diff --git a/Gopkg.lock b/Gopkg.lock index 0c063d49d..154515d23 100644 --- a/Gopkg.lock +++ b/Gopkg.lock @@ -9,14 +9,6 @@ revision = "ed0bb0e1557548aa028307f48728767cfe8f6345" version = "v1.0.0" -[[projects]] - digest = "1:b13707423743d41665fd23f0c36b2f37bb49c30e94adb813319c44188a51ba22" - name = "github.com/ghodss/yaml" - packages = ["."] - pruneopts = "" - revision = "0ca9ea5df5451ffdf184b4428c902747c2c11cd7" - version = "v1.0.0" - [[projects]] digest = "1:527e1e468c5586ef2645d143e9f5fbd50b4fe5abc8b1e25d9f1c416d22d24895" name = "github.com/gogo/protobuf" @@ -40,6 +32,7 @@ digest = "1:3dd078fda7500c341bc26cfbc6c6a34614f295a2457149fc1045cab767cbcf18" name = "github.com/golang/protobuf" packages = [ + "descriptor", "proto", "protoc-gen-go/descriptor", "ptypes", @@ -52,6 +45,22 @@ revision = "aa810b61a9c79d51363740d207bb46cf8e620ed5" version = "v1.2.0" +[[projects]] + branch = "master" + digest = "1:1e5b1e14524ed08301977b7b8e10c719ed853cbf3f24ecb66fae783a46f207a6" + name = "github.com/google/btree" + packages = ["."] + pruneopts = "" + revision = "4030bb1f1f0c35b30ca7009e9ebd06849dd45306" + +[[projects]] + branch = "master" + digest = "1:754f77e9c839b24778a4b64422236d38515301d2baeb63113aa3edc42e6af692" + name = "github.com/google/gofuzz" + packages = ["."] + pruneopts = "" + revision = "24818f796faf91cd76ec7bddd72458fbced7a6c1" + [[projects]] digest = "1:a25a2c5ae694b01713fb6cd03c3b1ac1ccc1902b9f0a922680a88ec254f968e1" name = "github.com/google/uuid" @@ -60,15 +69,6 @@ revision = "9b3b1e0f5f99ae461456d768e7d301a7acdaa2d8" version = "v1.1.0" -[[projects]] - branch = "master" - digest = "1:01f6264649510cce626f907688df44f80c8ba788d064756701d85c51f21eb0d6" - digest = "1:754f77e9c839b24778a4b64422236d38515301d2baeb63113aa3edc42e6af692" - name = "github.com/google/gofuzz" - packages = ["."] - pruneopts = "" - revision = "24818f796faf91cd76ec7bddd72458fbced7a6c1" - [[projects]] digest = "1:16b2837c8b3cf045fa2cdc82af0cf78b19582701394484ae76b2c3bc3c99ad73" name = "github.com/googleapis/gnostic" @@ -83,11 +83,14 @@ [[projects]] branch = "master" - digest = "1:f81c8d7354cc0c6340f2f7a48724ee6c2b3db3e918ecd441c985b4d2d97dd3e7" - name = "github.com/howeyc/gopass" - packages = ["."] + digest = "1:5e345eb75d8bfb2b91cfbfe02a82a79c0b2ea55cf06c5a4d180a9321f36973b4" + name = "github.com/gregjones/httpcache" + packages = [ + ".", + "diskcache", + ] pruneopts = "" - revision = "bf9dde6d0d2c004a008c27aaee91170c786f6db8" + revision = "c63ab54fda8f77302f8d414e19933f2b6026a089" [[projects]] digest = "1:7ab38c15bd21e056e3115c8b526d201eaf74e0308da9370997c6b3c187115d36" @@ -105,19 +108,23 @@ revision = "1624edc4454b8682399def8740d46db5e4362ba4" version = "v1.1.5" +[[projects]] + digest = "1:d1f1992c09d7b77bc5102cd8c369025d31d28dd5e6ca2a3a1a4ec9434724a4f5" + name = "github.com/kubernetes-csi/csi-lib-utils" + packages = ["protosanitizer"] + pruneopts = "" + revision = "5853414e1d4771302e0df10d1870c444c2135799" + version = "v0.2.0" + [[projects]] branch = "master" - digest = "1:941f9605aec45f9e849500c1d315662401982efe492277d1a3bbf5488567321d" ->>>>>>> master + digest = "1:5031afaa62ff480905e90bed2d2fd74f07b12f4c0c30304bc4ab9472b55439d1" name = "github.com/kubernetes-csi/drivers" packages = ["pkg/csi-common"] pruneopts = "" - revision = "8a7f2d3a4057ddcff31b7898bd4413dfdf3a3b67" + revision = "05e1ea84df03b90296869812fa42f4244bd5ab53" [[projects]] -<<<<<<< HEAD - digest = "1:a5484d4fa43127138ae6e7b2299a6a52ae006c7f803d98d717f60abf3e97192e" -======= digest = "1:0c0ff2a89c1bb0d01887e1dac043ad7efbf3ec77482ef058ac423d13497e16fd" name = "github.com/modern-go/concurrent" packages = ["."] @@ -134,8 +141,7 @@ version = "1.0.1" [[projects]] - digest = "1:63e142fc50307bcb3c57494913cfc9c12f6061160bdf97a678f78c71615f939b" ->>>>>>> master + digest = "1:a5484d4fa43127138ae6e7b2299a6a52ae006c7f803d98d717f60abf3e97192e" name = "github.com/pborman/uuid" packages = ["."] pruneopts = "" @@ -143,12 +149,28 @@ version = "v1.2" [[projects]] - digest = "1:7365acd48986e205ccb8652cc746f09c8b7876030d53710ea6ef7d0bd0dcd7ca" + branch = "master" + digest = "1:c24598ffeadd2762552269271b3b1510df2d83ee6696c1e543a0ff653af494bc" + name = "github.com/petar/GoLLRB" + packages = ["llrb"] + pruneopts = "" + revision = "53be0d36a84c2a886ca057d34b6aa4468df9ccb4" + +[[projects]] + digest = "1:b46305723171710475f2dd37547edd57b67b9de9f2a6267cafdd98331fd6897f" + name = "github.com/peterbourgon/diskv" + packages = ["."] + pruneopts = "" + revision = "5f041e8faa004a95c88a202771f4cc3e991971e6" + version = "v2.0.1" + +[[projects]] + digest = "1:1d7e1867c49a6dd9856598ef7c3123604ea3daabf5b83f303ff457bcbc410b1d" name = "github.com/pkg/errors" packages = ["."] pruneopts = "" - revision = "645ef00459ed84a119197bfb8d8205042c6df63d" - version = "v0.8.0" + revision = "ba968bfe8b2f7e042a574c888954fccecfa385b4" + version = "v0.8.1" [[projects]] digest = "1:cbaf13cdbfef0e4734ed8a7504f57fe893d471d62a35b982bf6fb3f036449a66" @@ -160,18 +182,19 @@ [[projects]] branch = "master" - digest = "1:887074c37fcefc2f49b5ae9c6f9f36107341aec23185613d0e9f1ee81db7f94a" + digest = "1:59b49c47c11a48f1054529207f65907c014ecf5f9a7c0d9c0f1616dec7b062ed" name = "golang.org/x/crypto" packages = ["ssh/terminal"] pruneopts = "" - revision = "505ab145d0a99da450461ae2c1a9f6cd10d1f447" + revision = "ff983b9c42bc9fbf91556e191cc8efb585c16908" [[projects]] branch = "master" - digest = "1:ea539c13b066dac72a940b62f37600a20ab8e88057397c78f3197c1a48475425" + digest = "1:7ec13687f85b25087fe05f6ea8dd116013a8263f8eb7e057da7664bc7599d2d4" name = "golang.org/x/net" packages = [ "context", + "context/ctxhttp", "http/httpguts", "http2", "http2/hpack", @@ -180,18 +203,29 @@ "trace", ] pruneopts = "" - revision = "351d144fa1fc0bd934e2408202be0c29f25e35a0" + revision = "915654e7eabcea33ae277abbecf52f0d8b7a9fdc" [[projects]] branch = "master" - digest = "1:f358024b019f87eecaadcb098113a40852c94fe58ea670ef3c3e2d2c7bd93db1" + digest = "1:790c83515921619a461cf47449bbdd5f58e35f689edc8164262cce7db4ae29ca" + name = "golang.org/x/oauth2" + packages = [ + ".", + "internal", + ] + pruneopts = "" + revision = "36a7019397c4c86cf59eeab3bc0d188bac444277" + +[[projects]] + branch = "master" + digest = "1:69b7ecfaddca30f8e8d97798822ff2b8ddfa7634ed16661561b54f30c63c2a42" name = "golang.org/x/sys" packages = [ "unix", "windows", ] pruneopts = "" - revision = "4ed8d59d0b35e1e29334a206d1b3f38b1e5dfb31" + revision = "a457fd036447854c0c02e89ea439481bdcf941a2" [[projects]] digest = "1:5acd3512b047305d49e8763eef7ba423901e85d5dd2fd1e71778a0ea8de10bd4" @@ -218,43 +252,60 @@ [[projects]] branch = "master" -<<<<<<< HEAD - digest = "1:5fc6c317675b746d0c641b29aa0aab5fcb403c0d07afdbf0de86b0d447a0502a" -======= digest = "1:14cb1d4240bcbbf1386ae763957e04e2765ec4e4ce7bb2769d05fa6faccd774e" name = "golang.org/x/time" packages = ["rate"] pruneopts = "" revision = "85acf8d2951cb2a3bde7632f9ff273ef0379bcbd" +[[projects]] + digest = "1:bc09e719c4e2a15d17163f5272d9a3131c45d77542b7fdc53ff518815bc19ab3" + name = "google.golang.org/appengine" + packages = [ + "internal", + "internal/base", + "internal/datastore", + "internal/log", + "internal/remote_api", + "internal/urlfetch", + "urlfetch", + ] + pruneopts = "" + revision = "e9657d882bb81064595ca3b56cbe2546bbabf7b1" + version = "v1.4.0" + [[projects]] branch = "master" - digest = "1:282b4a7158a161508e442b0a1c24fcf771c66ada2c93921f4b8ddc6b0a5e0c9b" ->>>>>>> master + digest = "1:1aa609a0033ef2927e083f2e5e07203ca35fe21c4a24b563de9fea16ddaae9ba" name = "google.golang.org/genproto" packages = ["googleapis/rpc/status"] pruneopts = "" - revision = "bd91e49a0898e27abb88c339b432fa53d7497ac0" + revision = "db91494dd46c1fdcbbde05e5ff5eb56df8f7d79a" [[projects]] - digest = "1:1293087271e314cfa2b3decededba2ecba0ff327e7b7809e00f73f616449191c" + digest = "1:d141efe4aaad714e3059c340901aab3147b6253e58c85dafbcca3dd8b0e88ad6" name = "google.golang.org/grpc" packages = [ ".", "balancer", "balancer/base", "balancer/roundrobin", + "binarylog/grpc_binarylog_v1", "codes", "connectivity", "credentials", + "credentials/internal", "encoding", "encoding/proto", "grpclog", "internal", "internal/backoff", + "internal/binarylog", "internal/channelz", "internal/envconfig", "internal/grpcrand", + "internal/grpcsync", + "internal/syscall", "internal/transport", "keepalive", "metadata", @@ -268,13 +319,10 @@ "tap", ] pruneopts = "" - revision = "2e463a05d100327ca47ac218281906921038fd95" - version = "v1.16.0" + revision = "df014850f6dee74ba2fc94874043a9f3f75fbfd8" + version = "v1.17.0" [[projects]] -<<<<<<< HEAD - digest = "1:66b0292f815d508d11ed5fe94fdeb0bcc5a988703a08e73bf3cb3a415de676cf" -======= digest = "1:75fb3fcfc73a8c723efde7777b40e8e8ff9babf30d8c56160d01beffea8a95a6" name = "gopkg.in/inf.v0" packages = ["."] @@ -291,7 +339,7 @@ version = "v2.2.2" [[projects]] - digest = "1:2412b59688d0e4d359397d277a7fc68703c47666dd2498b43cc79acef84a64d7" + digest = "1:be67264067c68b1f601bfc4a6c102b1380ed0743147381de81ed11da88d2e246" name = "k8s.io/api" packages = [ "admissionregistration/v1alpha1", @@ -299,16 +347,19 @@ "apps/v1", "apps/v1beta1", "apps/v1beta2", + "auditregistration/v1alpha1", "authentication/v1", "authentication/v1beta1", "authorization/v1", "authorization/v1beta1", "autoscaling/v1", "autoscaling/v2beta1", + "autoscaling/v2beta2", "batch/v1", "batch/v1beta1", "batch/v2alpha1", "certificates/v1beta1", + "coordination/v1beta1", "core/v1", "events/v1beta1", "extensions/v1beta1", @@ -318,18 +369,18 @@ "rbac/v1alpha1", "rbac/v1beta1", "scheduling/v1alpha1", + "scheduling/v1beta1", "settings/v1alpha1", "storage/v1", "storage/v1alpha1", "storage/v1beta1", ] pruneopts = "" - revision = "7aac3e00a1b32fa476b83078cebaaca606b2fb48" - version = "kubernetes-1.10.0-beta.1" + revision = "89a74a8d264df0e993299876a8cde88379b940ee" + version = "kubernetes-1.13.0" [[projects]] - digest = "1:9b07c796baf391a2dfa8c64bd5ddc28cbeb00723389f2f3da2e3d09b961f2e31" ->>>>>>> master + digest = "1:66b0292f815d508d11ed5fe94fdeb0bcc5a988703a08e73bf3cb3a415de676cf" name = "k8s.io/apimachinery" packages = [ "pkg/api/errors", @@ -357,6 +408,7 @@ "pkg/util/framer", "pkg/util/intstr", "pkg/util/json", + "pkg/util/naming", "pkg/util/net", "pkg/util/runtime", "pkg/util/sets", @@ -373,18 +425,7 @@ version = "kubernetes-1.13.0" [[projects]] -<<<<<<< HEAD - digest = "1:4f5eb833037cc0ba0bf8fe9cae6be9df62c19dd1c869415275c708daa8ccfda5" - name = "k8s.io/klog" - packages = ["."] - pruneopts = "" - revision = "a5bc97fbc634d635061f3146511332c7e313a55a" - version = "v0.1.0" - -[[projects]] - digest = "1:a53c39a815a31aceb509f9987d7d8c65e74fcb1fcd5077eaf723a8defec1af90" -======= - digest = "1:4e43ae063c506514708f015c8ebf145456174116dd04c7fd3eab89ebb22def35" + digest = "1:96ab89894f66b77a0137bba12e607c6a9be992acadfb075b5602939e8519a157" name = "k8s.io/client-go" packages = [ "discovery", @@ -395,16 +436,19 @@ "kubernetes/typed/apps/v1", "kubernetes/typed/apps/v1beta1", "kubernetes/typed/apps/v1beta2", + "kubernetes/typed/auditregistration/v1alpha1", "kubernetes/typed/authentication/v1", "kubernetes/typed/authentication/v1beta1", "kubernetes/typed/authorization/v1", "kubernetes/typed/authorization/v1beta1", "kubernetes/typed/autoscaling/v1", "kubernetes/typed/autoscaling/v2beta1", + "kubernetes/typed/autoscaling/v2beta2", "kubernetes/typed/batch/v1", "kubernetes/typed/batch/v1beta1", "kubernetes/typed/batch/v2alpha1", "kubernetes/typed/certificates/v1beta1", + "kubernetes/typed/coordination/v1beta1", "kubernetes/typed/core/v1", "kubernetes/typed/events/v1beta1", "kubernetes/typed/extensions/v1beta1", @@ -414,11 +458,16 @@ "kubernetes/typed/rbac/v1alpha1", "kubernetes/typed/rbac/v1beta1", "kubernetes/typed/scheduling/v1alpha1", + "kubernetes/typed/scheduling/v1beta1", "kubernetes/typed/settings/v1alpha1", "kubernetes/typed/storage/v1", "kubernetes/typed/storage/v1alpha1", "kubernetes/typed/storage/v1beta1", + "pkg/apis/clientauthentication", + "pkg/apis/clientauthentication/v1alpha1", + "pkg/apis/clientauthentication/v1beta1", "pkg/version", + "plugin/pkg/client/auth/exec", "rest", "rest/watch", "tools/auth", @@ -430,17 +479,25 @@ "tools/reference", "transport", "util/cert", + "util/connrotation", "util/flowcontrol", "util/homedir", "util/integer", ] pruneopts = "" - revision = "82eadfdc39007c2eb47e3ddeb7ed7d96365e409d" - version = "kubernetes-1.10.0-beta.1" + revision = "e64494209f554a6723674bd494d69445fb76a1d4" + version = "kubernetes-1.13.0" [[projects]] - digest = "1:7107d2e83c67ac0dbd9b62e8e2bfe1a75b194864ea4fe30778f4842151cd356d" ->>>>>>> master + digest = "1:4f5eb833037cc0ba0bf8fe9cae6be9df62c19dd1c869415275c708daa8ccfda5" + name = "k8s.io/klog" + packages = ["."] + pruneopts = "" + revision = "a5bc97fbc634d635061f3146511332c7e313a55a" + version = "v0.1.0" + +[[projects]] + digest = "1:9ac53939e57f04ea4886ed3c7b23612c65258de122c028a6c5ee8f9bdc0c51dd" name = "k8s.io/kubernetes" packages = [ "pkg/util/file", @@ -450,16 +507,24 @@ "pkg/util/nsenter", ] pruneopts = "" - revision = "ddf47ac13c1a9483ea035a79cd7c10005ff21a6d" - version = "v1.13.0" + revision = "cff46ab41ff0bb44d8584413b598ad8360ec1def" + version = "v1.13.2" [[projects]] branch = "master" - digest = "1:bea542e853f98bfcc80ecbe8fe0f32bc52c97664102aacdd7dca676354ef2faa" + digest = "1:8b4b9c29be72c176988b04d5acc665c093b1efac228835f0a4716531c1f7563e" name = "k8s.io/utils" packages = ["exec"] pruneopts = "" - revision = "0d26856f57b32ec3398579285e5c8a2bfe8c5243" + revision = "8a16e7dd8fb6d97d1331b0c79a16722f934b00b1" + +[[projects]] + digest = "1:321081b4a44256715f2b68411d8eda9a17f17ebfe6f0cc61d2cc52d11c08acfa" + name = "sigs.k8s.io/yaml" + packages = ["."] + pruneopts = "" + revision = "fd68e9863619f6ec2fdd8625fe1f02e7c877e480" + version = "v1.1.0" [solve-meta] analyzer-name = "dep" diff --git a/Gopkg.toml b/Gopkg.toml index fd5c3a075..86f3aedaa 100644 --- a/Gopkg.toml +++ b/Gopkg.toml @@ -36,4 +36,4 @@ [[constraint]] name = "k8s.io/client-go" - version = "kubernetes-1.10.0-beta.1" + version = "kubernetes-1.13.0" diff --git a/pkg/rbd/controllerserver.go b/pkg/rbd/controllerserver.go index 7b323bc79..e0a9fe119 100644 --- a/pkg/rbd/controllerserver.go +++ b/pkg/rbd/controllerserver.go @@ -23,8 +23,8 @@ import ( "syscall" "time" - "github.com/container-storage-interface/spec/lib/go/csi" "github.com/ceph/ceph-csi/pkg/util" + "github.com/container-storage-interface/spec/lib/go/csi" "github.com/golang/glog" "github.com/golang/protobuf/ptypes/timestamp" "github.com/kubernetes-csi/drivers/pkg/csi-common" @@ -170,7 +170,7 @@ func (cs *controllerServer) CreateVolume(ctx context.Context, req *csi.CreateVol } if err := cs.MetadataStore.Create(volumeID, rbdVol); err != nil { glog.Warningf("failed to store volume metadata with error: %v", err) - if err := deleteRBDImage(rbdVol, rbdVol.AdminId, req.GetControllerCreateSecrets()); err != nil { + if err := deleteRBDImage(rbdVol, rbdVol.AdminId, req.GetSecrets()); err != nil { glog.V(3).Infof("failed to delete rbd image: %s/%s with error: %v", rbdVol.Pool, rbdVol.VolName, err) return nil, err } diff --git a/pkg/rbd/rbd_util.go b/pkg/rbd/rbd_util.go index b2e4e88ef..96efb80f9 100644 --- a/pkg/rbd/rbd_util.go +++ b/pkg/rbd/rbd_util.go @@ -73,17 +73,17 @@ type rbdSnapshot struct { var ( // serializes operations based on "/" as key - attachdetachMutex = keymutex.NewKeyMutex() + attachdetachMutex = keymutex.NewHashed(0) // serializes operations based on "volume name" as key - volumeNameMutex = keymutex.NewKeyMutex() + volumeNameMutex = keymutex.NewHashed(0) // serializes operations based on "volume id" as key - volumeIDMutex = keymutex.NewKeyMutex() + volumeIDMutex = keymutex.NewHashed(0) // serializes operations based on "snapshot name" as key - snapshotNameMutex = keymutex.NewKeyMutex() + snapshotNameMutex = keymutex.NewHashed(0) // serializes operations based on "snapshot id" as key - snapshotIDMutex = keymutex.NewKeyMutex() + snapshotIDMutex = keymutex.NewHashed(0) // serializes operations based on "mount target path" as key - targetPathMutex = keymutex.NewKeyMutex() + targetPathMutex = keymutex.NewHashed(0) supportedFeatures = sets.NewString("layering") ) diff --git a/vendor/github.com/ghodss/yaml/.travis.yml b/vendor/github.com/ghodss/yaml/.travis.yml deleted file mode 100644 index 0e9d6edc0..000000000 --- a/vendor/github.com/ghodss/yaml/.travis.yml +++ /dev/null @@ -1,7 +0,0 @@ -language: go -go: - - 1.3 - - 1.4 -script: - - go test - - go build diff --git a/vendor/github.com/google/btree/.travis.yml b/vendor/github.com/google/btree/.travis.yml new file mode 100644 index 000000000..4f2ee4d97 --- /dev/null +++ b/vendor/github.com/google/btree/.travis.yml @@ -0,0 +1 @@ +language: go diff --git a/vendor/github.com/google/btree/LICENSE b/vendor/github.com/google/btree/LICENSE new file mode 100644 index 000000000..d64569567 --- /dev/null +++ b/vendor/github.com/google/btree/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendor/github.com/google/btree/README.md b/vendor/github.com/google/btree/README.md new file mode 100644 index 000000000..6062a4dac --- /dev/null +++ b/vendor/github.com/google/btree/README.md @@ -0,0 +1,12 @@ +# BTree implementation for Go + +![Travis CI Build Status](https://api.travis-ci.org/google/btree.svg?branch=master) + +This package provides an in-memory B-Tree implementation for Go, useful as +an ordered, mutable data structure. + +The API is based off of the wonderful +http://godoc.org/github.com/petar/GoLLRB/llrb, and is meant to allow btree to +act as a drop-in replacement for gollrb trees. + +See http://godoc.org/github.com/google/btree for documentation. diff --git a/vendor/github.com/google/btree/btree.go b/vendor/github.com/google/btree/btree.go new file mode 100644 index 000000000..6ff062f9b --- /dev/null +++ b/vendor/github.com/google/btree/btree.go @@ -0,0 +1,890 @@ +// Copyright 2014 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Package btree implements in-memory B-Trees of arbitrary degree. +// +// btree implements an in-memory B-Tree for use as an ordered data structure. +// It is not meant for persistent storage solutions. +// +// It has a flatter structure than an equivalent red-black or other binary tree, +// which in some cases yields better memory usage and/or performance. +// See some discussion on the matter here: +// http://google-opensource.blogspot.com/2013/01/c-containers-that-save-memory-and-time.html +// Note, though, that this project is in no way related to the C++ B-Tree +// implementation written about there. +// +// Within this tree, each node contains a slice of items and a (possibly nil) +// slice of children. For basic numeric values or raw structs, this can cause +// efficiency differences when compared to equivalent C++ template code that +// stores values in arrays within the node: +// * Due to the overhead of storing values as interfaces (each +// value needs to be stored as the value itself, then 2 words for the +// interface pointing to that value and its type), resulting in higher +// memory use. +// * Since interfaces can point to values anywhere in memory, values are +// most likely not stored in contiguous blocks, resulting in a higher +// number of cache misses. +// These issues don't tend to matter, though, when working with strings or other +// heap-allocated structures, since C++-equivalent structures also must store +// pointers and also distribute their values across the heap. +// +// This implementation is designed to be a drop-in replacement to gollrb.LLRB +// trees, (http://github.com/petar/gollrb), an excellent and probably the most +// widely used ordered tree implementation in the Go ecosystem currently. +// Its functions, therefore, exactly mirror those of +// llrb.LLRB where possible. Unlike gollrb, though, we currently don't +// support storing multiple equivalent values. +package btree + +import ( + "fmt" + "io" + "sort" + "strings" + "sync" +) + +// Item represents a single object in the tree. +type Item interface { + // Less tests whether the current item is less than the given argument. + // + // This must provide a strict weak ordering. + // If !a.Less(b) && !b.Less(a), we treat this to mean a == b (i.e. we can only + // hold one of either a or b in the tree). + Less(than Item) bool +} + +const ( + DefaultFreeListSize = 32 +) + +var ( + nilItems = make(items, 16) + nilChildren = make(children, 16) +) + +// FreeList represents a free list of btree nodes. By default each +// BTree has its own FreeList, but multiple BTrees can share the same +// FreeList. +// Two Btrees using the same freelist are safe for concurrent write access. +type FreeList struct { + mu sync.Mutex + freelist []*node +} + +// NewFreeList creates a new free list. +// size is the maximum size of the returned free list. +func NewFreeList(size int) *FreeList { + return &FreeList{freelist: make([]*node, 0, size)} +} + +func (f *FreeList) newNode() (n *node) { + f.mu.Lock() + index := len(f.freelist) - 1 + if index < 0 { + f.mu.Unlock() + return new(node) + } + n = f.freelist[index] + f.freelist[index] = nil + f.freelist = f.freelist[:index] + f.mu.Unlock() + return +} + +// freeNode adds the given node to the list, returning true if it was added +// and false if it was discarded. +func (f *FreeList) freeNode(n *node) (out bool) { + f.mu.Lock() + if len(f.freelist) < cap(f.freelist) { + f.freelist = append(f.freelist, n) + out = true + } + f.mu.Unlock() + return +} + +// ItemIterator allows callers of Ascend* to iterate in-order over portions of +// the tree. When this function returns false, iteration will stop and the +// associated Ascend* function will immediately return. +type ItemIterator func(i Item) bool + +// New creates a new B-Tree with the given degree. +// +// New(2), for example, will create a 2-3-4 tree (each node contains 1-3 items +// and 2-4 children). +func New(degree int) *BTree { + return NewWithFreeList(degree, NewFreeList(DefaultFreeListSize)) +} + +// NewWithFreeList creates a new B-Tree that uses the given node free list. +func NewWithFreeList(degree int, f *FreeList) *BTree { + if degree <= 1 { + panic("bad degree") + } + return &BTree{ + degree: degree, + cow: ©OnWriteContext{freelist: f}, + } +} + +// items stores items in a node. +type items []Item + +// insertAt inserts a value into the given index, pushing all subsequent values +// forward. +func (s *items) insertAt(index int, item Item) { + *s = append(*s, nil) + if index < len(*s) { + copy((*s)[index+1:], (*s)[index:]) + } + (*s)[index] = item +} + +// removeAt removes a value at a given index, pulling all subsequent values +// back. +func (s *items) removeAt(index int) Item { + item := (*s)[index] + copy((*s)[index:], (*s)[index+1:]) + (*s)[len(*s)-1] = nil + *s = (*s)[:len(*s)-1] + return item +} + +// pop removes and returns the last element in the list. +func (s *items) pop() (out Item) { + index := len(*s) - 1 + out = (*s)[index] + (*s)[index] = nil + *s = (*s)[:index] + return +} + +// truncate truncates this instance at index so that it contains only the +// first index items. index must be less than or equal to length. +func (s *items) truncate(index int) { + var toClear items + *s, toClear = (*s)[:index], (*s)[index:] + for len(toClear) > 0 { + toClear = toClear[copy(toClear, nilItems):] + } +} + +// find returns the index where the given item should be inserted into this +// list. 'found' is true if the item already exists in the list at the given +// index. +func (s items) find(item Item) (index int, found bool) { + i := sort.Search(len(s), func(i int) bool { + return item.Less(s[i]) + }) + if i > 0 && !s[i-1].Less(item) { + return i - 1, true + } + return i, false +} + +// children stores child nodes in a node. +type children []*node + +// insertAt inserts a value into the given index, pushing all subsequent values +// forward. +func (s *children) insertAt(index int, n *node) { + *s = append(*s, nil) + if index < len(*s) { + copy((*s)[index+1:], (*s)[index:]) + } + (*s)[index] = n +} + +// removeAt removes a value at a given index, pulling all subsequent values +// back. +func (s *children) removeAt(index int) *node { + n := (*s)[index] + copy((*s)[index:], (*s)[index+1:]) + (*s)[len(*s)-1] = nil + *s = (*s)[:len(*s)-1] + return n +} + +// pop removes and returns the last element in the list. +func (s *children) pop() (out *node) { + index := len(*s) - 1 + out = (*s)[index] + (*s)[index] = nil + *s = (*s)[:index] + return +} + +// truncate truncates this instance at index so that it contains only the +// first index children. index must be less than or equal to length. +func (s *children) truncate(index int) { + var toClear children + *s, toClear = (*s)[:index], (*s)[index:] + for len(toClear) > 0 { + toClear = toClear[copy(toClear, nilChildren):] + } +} + +// node is an internal node in a tree. +// +// It must at all times maintain the invariant that either +// * len(children) == 0, len(items) unconstrained +// * len(children) == len(items) + 1 +type node struct { + items items + children children + cow *copyOnWriteContext +} + +func (n *node) mutableFor(cow *copyOnWriteContext) *node { + if n.cow == cow { + return n + } + out := cow.newNode() + if cap(out.items) >= len(n.items) { + out.items = out.items[:len(n.items)] + } else { + out.items = make(items, len(n.items), cap(n.items)) + } + copy(out.items, n.items) + // Copy children + if cap(out.children) >= len(n.children) { + out.children = out.children[:len(n.children)] + } else { + out.children = make(children, len(n.children), cap(n.children)) + } + copy(out.children, n.children) + return out +} + +func (n *node) mutableChild(i int) *node { + c := n.children[i].mutableFor(n.cow) + n.children[i] = c + return c +} + +// split splits the given node at the given index. The current node shrinks, +// and this function returns the item that existed at that index and a new node +// containing all items/children after it. +func (n *node) split(i int) (Item, *node) { + item := n.items[i] + next := n.cow.newNode() + next.items = append(next.items, n.items[i+1:]...) + n.items.truncate(i) + if len(n.children) > 0 { + next.children = append(next.children, n.children[i+1:]...) + n.children.truncate(i + 1) + } + return item, next +} + +// maybeSplitChild checks if a child should be split, and if so splits it. +// Returns whether or not a split occurred. +func (n *node) maybeSplitChild(i, maxItems int) bool { + if len(n.children[i].items) < maxItems { + return false + } + first := n.mutableChild(i) + item, second := first.split(maxItems / 2) + n.items.insertAt(i, item) + n.children.insertAt(i+1, second) + return true +} + +// insert inserts an item into the subtree rooted at this node, making sure +// no nodes in the subtree exceed maxItems items. Should an equivalent item be +// be found/replaced by insert, it will be returned. +func (n *node) insert(item Item, maxItems int) Item { + i, found := n.items.find(item) + if found { + out := n.items[i] + n.items[i] = item + return out + } + if len(n.children) == 0 { + n.items.insertAt(i, item) + return nil + } + if n.maybeSplitChild(i, maxItems) { + inTree := n.items[i] + switch { + case item.Less(inTree): + // no change, we want first split node + case inTree.Less(item): + i++ // we want second split node + default: + out := n.items[i] + n.items[i] = item + return out + } + } + return n.mutableChild(i).insert(item, maxItems) +} + +// get finds the given key in the subtree and returns it. +func (n *node) get(key Item) Item { + i, found := n.items.find(key) + if found { + return n.items[i] + } else if len(n.children) > 0 { + return n.children[i].get(key) + } + return nil +} + +// min returns the first item in the subtree. +func min(n *node) Item { + if n == nil { + return nil + } + for len(n.children) > 0 { + n = n.children[0] + } + if len(n.items) == 0 { + return nil + } + return n.items[0] +} + +// max returns the last item in the subtree. +func max(n *node) Item { + if n == nil { + return nil + } + for len(n.children) > 0 { + n = n.children[len(n.children)-1] + } + if len(n.items) == 0 { + return nil + } + return n.items[len(n.items)-1] +} + +// toRemove details what item to remove in a node.remove call. +type toRemove int + +const ( + removeItem toRemove = iota // removes the given item + removeMin // removes smallest item in the subtree + removeMax // removes largest item in the subtree +) + +// remove removes an item from the subtree rooted at this node. +func (n *node) remove(item Item, minItems int, typ toRemove) Item { + var i int + var found bool + switch typ { + case removeMax: + if len(n.children) == 0 { + return n.items.pop() + } + i = len(n.items) + case removeMin: + if len(n.children) == 0 { + return n.items.removeAt(0) + } + i = 0 + case removeItem: + i, found = n.items.find(item) + if len(n.children) == 0 { + if found { + return n.items.removeAt(i) + } + return nil + } + default: + panic("invalid type") + } + // If we get to here, we have children. + if len(n.children[i].items) <= minItems { + return n.growChildAndRemove(i, item, minItems, typ) + } + child := n.mutableChild(i) + // Either we had enough items to begin with, or we've done some + // merging/stealing, because we've got enough now and we're ready to return + // stuff. + if found { + // The item exists at index 'i', and the child we've selected can give us a + // predecessor, since if we've gotten here it's got > minItems items in it. + out := n.items[i] + // We use our special-case 'remove' call with typ=maxItem to pull the + // predecessor of item i (the rightmost leaf of our immediate left child) + // and set it into where we pulled the item from. + n.items[i] = child.remove(nil, minItems, removeMax) + return out + } + // Final recursive call. Once we're here, we know that the item isn't in this + // node and that the child is big enough to remove from. + return child.remove(item, minItems, typ) +} + +// growChildAndRemove grows child 'i' to make sure it's possible to remove an +// item from it while keeping it at minItems, then calls remove to actually +// remove it. +// +// Most documentation says we have to do two sets of special casing: +// 1) item is in this node +// 2) item is in child +// In both cases, we need to handle the two subcases: +// A) node has enough values that it can spare one +// B) node doesn't have enough values +// For the latter, we have to check: +// a) left sibling has node to spare +// b) right sibling has node to spare +// c) we must merge +// To simplify our code here, we handle cases #1 and #2 the same: +// If a node doesn't have enough items, we make sure it does (using a,b,c). +// We then simply redo our remove call, and the second time (regardless of +// whether we're in case 1 or 2), we'll have enough items and can guarantee +// that we hit case A. +func (n *node) growChildAndRemove(i int, item Item, minItems int, typ toRemove) Item { + if i > 0 && len(n.children[i-1].items) > minItems { + // Steal from left child + child := n.mutableChild(i) + stealFrom := n.mutableChild(i - 1) + stolenItem := stealFrom.items.pop() + child.items.insertAt(0, n.items[i-1]) + n.items[i-1] = stolenItem + if len(stealFrom.children) > 0 { + child.children.insertAt(0, stealFrom.children.pop()) + } + } else if i < len(n.items) && len(n.children[i+1].items) > minItems { + // steal from right child + child := n.mutableChild(i) + stealFrom := n.mutableChild(i + 1) + stolenItem := stealFrom.items.removeAt(0) + child.items = append(child.items, n.items[i]) + n.items[i] = stolenItem + if len(stealFrom.children) > 0 { + child.children = append(child.children, stealFrom.children.removeAt(0)) + } + } else { + if i >= len(n.items) { + i-- + } + child := n.mutableChild(i) + // merge with right child + mergeItem := n.items.removeAt(i) + mergeChild := n.children.removeAt(i + 1) + child.items = append(child.items, mergeItem) + child.items = append(child.items, mergeChild.items...) + child.children = append(child.children, mergeChild.children...) + n.cow.freeNode(mergeChild) + } + return n.remove(item, minItems, typ) +} + +type direction int + +const ( + descend = direction(-1) + ascend = direction(+1) +) + +// iterate provides a simple method for iterating over elements in the tree. +// +// When ascending, the 'start' should be less than 'stop' and when descending, +// the 'start' should be greater than 'stop'. Setting 'includeStart' to true +// will force the iterator to include the first item when it equals 'start', +// thus creating a "greaterOrEqual" or "lessThanEqual" rather than just a +// "greaterThan" or "lessThan" queries. +func (n *node) iterate(dir direction, start, stop Item, includeStart bool, hit bool, iter ItemIterator) (bool, bool) { + var ok, found bool + var index int + switch dir { + case ascend: + if start != nil { + index, _ = n.items.find(start) + } + for i := index; i < len(n.items); i++ { + if len(n.children) > 0 { + if hit, ok = n.children[i].iterate(dir, start, stop, includeStart, hit, iter); !ok { + return hit, false + } + } + if !includeStart && !hit && start != nil && !start.Less(n.items[i]) { + hit = true + continue + } + hit = true + if stop != nil && !n.items[i].Less(stop) { + return hit, false + } + if !iter(n.items[i]) { + return hit, false + } + } + if len(n.children) > 0 { + if hit, ok = n.children[len(n.children)-1].iterate(dir, start, stop, includeStart, hit, iter); !ok { + return hit, false + } + } + case descend: + if start != nil { + index, found = n.items.find(start) + if !found { + index = index - 1 + } + } else { + index = len(n.items) - 1 + } + for i := index; i >= 0; i-- { + if start != nil && !n.items[i].Less(start) { + if !includeStart || hit || start.Less(n.items[i]) { + continue + } + } + if len(n.children) > 0 { + if hit, ok = n.children[i+1].iterate(dir, start, stop, includeStart, hit, iter); !ok { + return hit, false + } + } + if stop != nil && !stop.Less(n.items[i]) { + return hit, false // continue + } + hit = true + if !iter(n.items[i]) { + return hit, false + } + } + if len(n.children) > 0 { + if hit, ok = n.children[0].iterate(dir, start, stop, includeStart, hit, iter); !ok { + return hit, false + } + } + } + return hit, true +} + +// Used for testing/debugging purposes. +func (n *node) print(w io.Writer, level int) { + fmt.Fprintf(w, "%sNODE:%v\n", strings.Repeat(" ", level), n.items) + for _, c := range n.children { + c.print(w, level+1) + } +} + +// BTree is an implementation of a B-Tree. +// +// BTree stores Item instances in an ordered structure, allowing easy insertion, +// removal, and iteration. +// +// Write operations are not safe for concurrent mutation by multiple +// goroutines, but Read operations are. +type BTree struct { + degree int + length int + root *node + cow *copyOnWriteContext +} + +// copyOnWriteContext pointers determine node ownership... a tree with a write +// context equivalent to a node's write context is allowed to modify that node. +// A tree whose write context does not match a node's is not allowed to modify +// it, and must create a new, writable copy (IE: it's a Clone). +// +// When doing any write operation, we maintain the invariant that the current +// node's context is equal to the context of the tree that requested the write. +// We do this by, before we descend into any node, creating a copy with the +// correct context if the contexts don't match. +// +// Since the node we're currently visiting on any write has the requesting +// tree's context, that node is modifiable in place. Children of that node may +// not share context, but before we descend into them, we'll make a mutable +// copy. +type copyOnWriteContext struct { + freelist *FreeList +} + +// Clone clones the btree, lazily. Clone should not be called concurrently, +// but the original tree (t) and the new tree (t2) can be used concurrently +// once the Clone call completes. +// +// The internal tree structure of b is marked read-only and shared between t and +// t2. Writes to both t and t2 use copy-on-write logic, creating new nodes +// whenever one of b's original nodes would have been modified. Read operations +// should have no performance degredation. Write operations for both t and t2 +// will initially experience minor slow-downs caused by additional allocs and +// copies due to the aforementioned copy-on-write logic, but should converge to +// the original performance characteristics of the original tree. +func (t *BTree) Clone() (t2 *BTree) { + // Create two entirely new copy-on-write contexts. + // This operation effectively creates three trees: + // the original, shared nodes (old b.cow) + // the new b.cow nodes + // the new out.cow nodes + cow1, cow2 := *t.cow, *t.cow + out := *t + t.cow = &cow1 + out.cow = &cow2 + return &out +} + +// maxItems returns the max number of items to allow per node. +func (t *BTree) maxItems() int { + return t.degree*2 - 1 +} + +// minItems returns the min number of items to allow per node (ignored for the +// root node). +func (t *BTree) minItems() int { + return t.degree - 1 +} + +func (c *copyOnWriteContext) newNode() (n *node) { + n = c.freelist.newNode() + n.cow = c + return +} + +type freeType int + +const ( + ftFreelistFull freeType = iota // node was freed (available for GC, not stored in freelist) + ftStored // node was stored in the freelist for later use + ftNotOwned // node was ignored by COW, since it's owned by another one +) + +// freeNode frees a node within a given COW context, if it's owned by that +// context. It returns what happened to the node (see freeType const +// documentation). +func (c *copyOnWriteContext) freeNode(n *node) freeType { + if n.cow == c { + // clear to allow GC + n.items.truncate(0) + n.children.truncate(0) + n.cow = nil + if c.freelist.freeNode(n) { + return ftStored + } else { + return ftFreelistFull + } + } else { + return ftNotOwned + } +} + +// ReplaceOrInsert adds the given item to the tree. If an item in the tree +// already equals the given one, it is removed from the tree and returned. +// Otherwise, nil is returned. +// +// nil cannot be added to the tree (will panic). +func (t *BTree) ReplaceOrInsert(item Item) Item { + if item == nil { + panic("nil item being added to BTree") + } + if t.root == nil { + t.root = t.cow.newNode() + t.root.items = append(t.root.items, item) + t.length++ + return nil + } else { + t.root = t.root.mutableFor(t.cow) + if len(t.root.items) >= t.maxItems() { + item2, second := t.root.split(t.maxItems() / 2) + oldroot := t.root + t.root = t.cow.newNode() + t.root.items = append(t.root.items, item2) + t.root.children = append(t.root.children, oldroot, second) + } + } + out := t.root.insert(item, t.maxItems()) + if out == nil { + t.length++ + } + return out +} + +// Delete removes an item equal to the passed in item from the tree, returning +// it. If no such item exists, returns nil. +func (t *BTree) Delete(item Item) Item { + return t.deleteItem(item, removeItem) +} + +// DeleteMin removes the smallest item in the tree and returns it. +// If no such item exists, returns nil. +func (t *BTree) DeleteMin() Item { + return t.deleteItem(nil, removeMin) +} + +// DeleteMax removes the largest item in the tree and returns it. +// If no such item exists, returns nil. +func (t *BTree) DeleteMax() Item { + return t.deleteItem(nil, removeMax) +} + +func (t *BTree) deleteItem(item Item, typ toRemove) Item { + if t.root == nil || len(t.root.items) == 0 { + return nil + } + t.root = t.root.mutableFor(t.cow) + out := t.root.remove(item, t.minItems(), typ) + if len(t.root.items) == 0 && len(t.root.children) > 0 { + oldroot := t.root + t.root = t.root.children[0] + t.cow.freeNode(oldroot) + } + if out != nil { + t.length-- + } + return out +} + +// AscendRange calls the iterator for every value in the tree within the range +// [greaterOrEqual, lessThan), until iterator returns false. +func (t *BTree) AscendRange(greaterOrEqual, lessThan Item, iterator ItemIterator) { + if t.root == nil { + return + } + t.root.iterate(ascend, greaterOrEqual, lessThan, true, false, iterator) +} + +// AscendLessThan calls the iterator for every value in the tree within the range +// [first, pivot), until iterator returns false. +func (t *BTree) AscendLessThan(pivot Item, iterator ItemIterator) { + if t.root == nil { + return + } + t.root.iterate(ascend, nil, pivot, false, false, iterator) +} + +// AscendGreaterOrEqual calls the iterator for every value in the tree within +// the range [pivot, last], until iterator returns false. +func (t *BTree) AscendGreaterOrEqual(pivot Item, iterator ItemIterator) { + if t.root == nil { + return + } + t.root.iterate(ascend, pivot, nil, true, false, iterator) +} + +// Ascend calls the iterator for every value in the tree within the range +// [first, last], until iterator returns false. +func (t *BTree) Ascend(iterator ItemIterator) { + if t.root == nil { + return + } + t.root.iterate(ascend, nil, nil, false, false, iterator) +} + +// DescendRange calls the iterator for every value in the tree within the range +// [lessOrEqual, greaterThan), until iterator returns false. +func (t *BTree) DescendRange(lessOrEqual, greaterThan Item, iterator ItemIterator) { + if t.root == nil { + return + } + t.root.iterate(descend, lessOrEqual, greaterThan, true, false, iterator) +} + +// DescendLessOrEqual calls the iterator for every value in the tree within the range +// [pivot, first], until iterator returns false. +func (t *BTree) DescendLessOrEqual(pivot Item, iterator ItemIterator) { + if t.root == nil { + return + } + t.root.iterate(descend, pivot, nil, true, false, iterator) +} + +// DescendGreaterThan calls the iterator for every value in the tree within +// the range (pivot, last], until iterator returns false. +func (t *BTree) DescendGreaterThan(pivot Item, iterator ItemIterator) { + if t.root == nil { + return + } + t.root.iterate(descend, nil, pivot, false, false, iterator) +} + +// Descend calls the iterator for every value in the tree within the range +// [last, first], until iterator returns false. +func (t *BTree) Descend(iterator ItemIterator) { + if t.root == nil { + return + } + t.root.iterate(descend, nil, nil, false, false, iterator) +} + +// Get looks for the key item in the tree, returning it. It returns nil if +// unable to find that item. +func (t *BTree) Get(key Item) Item { + if t.root == nil { + return nil + } + return t.root.get(key) +} + +// Min returns the smallest item in the tree, or nil if the tree is empty. +func (t *BTree) Min() Item { + return min(t.root) +} + +// Max returns the largest item in the tree, or nil if the tree is empty. +func (t *BTree) Max() Item { + return max(t.root) +} + +// Has returns true if the given key is in the tree. +func (t *BTree) Has(key Item) bool { + return t.Get(key) != nil +} + +// Len returns the number of items currently in the tree. +func (t *BTree) Len() int { + return t.length +} + +// Clear removes all items from the btree. If addNodesToFreelist is true, +// t's nodes are added to its freelist as part of this call, until the freelist +// is full. Otherwise, the root node is simply dereferenced and the subtree +// left to Go's normal GC processes. +// +// This can be much faster +// than calling Delete on all elements, because that requires finding/removing +// each element in the tree and updating the tree accordingly. It also is +// somewhat faster than creating a new tree to replace the old one, because +// nodes from the old tree are reclaimed into the freelist for use by the new +// one, instead of being lost to the garbage collector. +// +// This call takes: +// O(1): when addNodesToFreelist is false, this is a single operation. +// O(1): when the freelist is already full, it breaks out immediately +// O(freelist size): when the freelist is empty and the nodes are all owned +// by this tree, nodes are added to the freelist until full. +// O(tree size): when all nodes are owned by another tree, all nodes are +// iterated over looking for nodes to add to the freelist, and due to +// ownership, none are. +func (t *BTree) Clear(addNodesToFreelist bool) { + if t.root != nil && addNodesToFreelist { + t.root.reset(t.cow) + } + t.root, t.length = nil, 0 +} + +// reset returns a subtree to the freelist. It breaks out immediately if the +// freelist is full, since the only benefit of iterating is to fill that +// freelist up. Returns true if parent reset call should continue. +func (n *node) reset(c *copyOnWriteContext) bool { + for _, child := range n.children { + if !child.reset(c) { + return false + } + } + return c.freeNode(n) != ftFreelistFull +} + +// Int implements the Item interface for integers. +type Int int + +// Less returns true if int(a) < int(b). +func (a Int) Less(b Item) bool { + return a < b.(Int) +} diff --git a/vendor/github.com/google/btree/btree_mem.go b/vendor/github.com/google/btree/btree_mem.go new file mode 100644 index 000000000..cb95b7fa1 --- /dev/null +++ b/vendor/github.com/google/btree/btree_mem.go @@ -0,0 +1,76 @@ +// Copyright 2014 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// +build ignore + +// This binary compares memory usage between btree and gollrb. +package main + +import ( + "flag" + "fmt" + "math/rand" + "runtime" + "time" + + "github.com/google/btree" + "github.com/petar/GoLLRB/llrb" +) + +var ( + size = flag.Int("size", 1000000, "size of the tree to build") + degree = flag.Int("degree", 8, "degree of btree") + gollrb = flag.Bool("llrb", false, "use llrb instead of btree") +) + +func main() { + flag.Parse() + vals := rand.Perm(*size) + var t, v interface{} + v = vals + var stats runtime.MemStats + for i := 0; i < 10; i++ { + runtime.GC() + } + fmt.Println("-------- BEFORE ----------") + runtime.ReadMemStats(&stats) + fmt.Printf("%+v\n", stats) + start := time.Now() + if *gollrb { + tr := llrb.New() + for _, v := range vals { + tr.ReplaceOrInsert(llrb.Int(v)) + } + t = tr // keep it around + } else { + tr := btree.New(*degree) + for _, v := range vals { + tr.ReplaceOrInsert(btree.Int(v)) + } + t = tr // keep it around + } + fmt.Printf("%v inserts in %v\n", *size, time.Since(start)) + fmt.Println("-------- AFTER ----------") + runtime.ReadMemStats(&stats) + fmt.Printf("%+v\n", stats) + for i := 0; i < 10; i++ { + runtime.GC() + } + fmt.Println("-------- AFTER GC ----------") + runtime.ReadMemStats(&stats) + fmt.Printf("%+v\n", stats) + if t == v { + fmt.Println("to make sure vals and tree aren't GC'd") + } +} diff --git a/vendor/github.com/google/btree/btree_test.go b/vendor/github.com/google/btree/btree_test.go new file mode 100644 index 000000000..78a90cd8a --- /dev/null +++ b/vendor/github.com/google/btree/btree_test.go @@ -0,0 +1,785 @@ +// Copyright 2014 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package btree + +import ( + "flag" + "fmt" + "math/rand" + "reflect" + "sort" + "sync" + "testing" + "time" +) + +func init() { + seed := time.Now().Unix() + fmt.Println(seed) + rand.Seed(seed) +} + +// perm returns a random permutation of n Int items in the range [0, n). +func perm(n int) (out []Item) { + for _, v := range rand.Perm(n) { + out = append(out, Int(v)) + } + return +} + +// rang returns an ordered list of Int items in the range [0, n). +func rang(n int) (out []Item) { + for i := 0; i < n; i++ { + out = append(out, Int(i)) + } + return +} + +// all extracts all items from a tree in order as a slice. +func all(t *BTree) (out []Item) { + t.Ascend(func(a Item) bool { + out = append(out, a) + return true + }) + return +} + +// rangerev returns a reversed ordered list of Int items in the range [0, n). +func rangrev(n int) (out []Item) { + for i := n - 1; i >= 0; i-- { + out = append(out, Int(i)) + } + return +} + +// allrev extracts all items from a tree in reverse order as a slice. +func allrev(t *BTree) (out []Item) { + t.Descend(func(a Item) bool { + out = append(out, a) + return true + }) + return +} + +var btreeDegree = flag.Int("degree", 32, "B-Tree degree") + +func TestBTree(t *testing.T) { + tr := New(*btreeDegree) + const treeSize = 10000 + for i := 0; i < 10; i++ { + if min := tr.Min(); min != nil { + t.Fatalf("empty min, got %+v", min) + } + if max := tr.Max(); max != nil { + t.Fatalf("empty max, got %+v", max) + } + for _, item := range perm(treeSize) { + if x := tr.ReplaceOrInsert(item); x != nil { + t.Fatal("insert found item", item) + } + } + for _, item := range perm(treeSize) { + if x := tr.ReplaceOrInsert(item); x == nil { + t.Fatal("insert didn't find item", item) + } + } + if min, want := tr.Min(), Item(Int(0)); min != want { + t.Fatalf("min: want %+v, got %+v", want, min) + } + if max, want := tr.Max(), Item(Int(treeSize-1)); max != want { + t.Fatalf("max: want %+v, got %+v", want, max) + } + got := all(tr) + want := rang(treeSize) + if !reflect.DeepEqual(got, want) { + t.Fatalf("mismatch:\n got: %v\nwant: %v", got, want) + } + + gotrev := allrev(tr) + wantrev := rangrev(treeSize) + if !reflect.DeepEqual(gotrev, wantrev) { + t.Fatalf("mismatch:\n got: %v\nwant: %v", got, want) + } + + for _, item := range perm(treeSize) { + if x := tr.Delete(item); x == nil { + t.Fatalf("didn't find %v", item) + } + } + if got = all(tr); len(got) > 0 { + t.Fatalf("some left!: %v", got) + } + } +} + +func ExampleBTree() { + tr := New(*btreeDegree) + for i := Int(0); i < 10; i++ { + tr.ReplaceOrInsert(i) + } + fmt.Println("len: ", tr.Len()) + fmt.Println("get3: ", tr.Get(Int(3))) + fmt.Println("get100: ", tr.Get(Int(100))) + fmt.Println("del4: ", tr.Delete(Int(4))) + fmt.Println("del100: ", tr.Delete(Int(100))) + fmt.Println("replace5: ", tr.ReplaceOrInsert(Int(5))) + fmt.Println("replace100:", tr.ReplaceOrInsert(Int(100))) + fmt.Println("min: ", tr.Min()) + fmt.Println("delmin: ", tr.DeleteMin()) + fmt.Println("max: ", tr.Max()) + fmt.Println("delmax: ", tr.DeleteMax()) + fmt.Println("len: ", tr.Len()) + // Output: + // len: 10 + // get3: 3 + // get100: + // del4: 4 + // del100: + // replace5: 5 + // replace100: + // min: 0 + // delmin: 0 + // max: 100 + // delmax: 100 + // len: 8 +} + +func TestDeleteMin(t *testing.T) { + tr := New(3) + for _, v := range perm(100) { + tr.ReplaceOrInsert(v) + } + var got []Item + for v := tr.DeleteMin(); v != nil; v = tr.DeleteMin() { + got = append(got, v) + } + if want := rang(100); !reflect.DeepEqual(got, want) { + t.Fatalf("ascendrange:\n got: %v\nwant: %v", got, want) + } +} + +func TestDeleteMax(t *testing.T) { + tr := New(3) + for _, v := range perm(100) { + tr.ReplaceOrInsert(v) + } + var got []Item + for v := tr.DeleteMax(); v != nil; v = tr.DeleteMax() { + got = append(got, v) + } + // Reverse our list. + for i := 0; i < len(got)/2; i++ { + got[i], got[len(got)-i-1] = got[len(got)-i-1], got[i] + } + if want := rang(100); !reflect.DeepEqual(got, want) { + t.Fatalf("ascendrange:\n got: %v\nwant: %v", got, want) + } +} + +func TestAscendRange(t *testing.T) { + tr := New(2) + for _, v := range perm(100) { + tr.ReplaceOrInsert(v) + } + var got []Item + tr.AscendRange(Int(40), Int(60), func(a Item) bool { + got = append(got, a) + return true + }) + if want := rang(100)[40:60]; !reflect.DeepEqual(got, want) { + t.Fatalf("ascendrange:\n got: %v\nwant: %v", got, want) + } + got = got[:0] + tr.AscendRange(Int(40), Int(60), func(a Item) bool { + if a.(Int) > 50 { + return false + } + got = append(got, a) + return true + }) + if want := rang(100)[40:51]; !reflect.DeepEqual(got, want) { + t.Fatalf("ascendrange:\n got: %v\nwant: %v", got, want) + } +} + +func TestDescendRange(t *testing.T) { + tr := New(2) + for _, v := range perm(100) { + tr.ReplaceOrInsert(v) + } + var got []Item + tr.DescendRange(Int(60), Int(40), func(a Item) bool { + got = append(got, a) + return true + }) + if want := rangrev(100)[39:59]; !reflect.DeepEqual(got, want) { + t.Fatalf("descendrange:\n got: %v\nwant: %v", got, want) + } + got = got[:0] + tr.DescendRange(Int(60), Int(40), func(a Item) bool { + if a.(Int) < 50 { + return false + } + got = append(got, a) + return true + }) + if want := rangrev(100)[39:50]; !reflect.DeepEqual(got, want) { + t.Fatalf("descendrange:\n got: %v\nwant: %v", got, want) + } +} +func TestAscendLessThan(t *testing.T) { + tr := New(*btreeDegree) + for _, v := range perm(100) { + tr.ReplaceOrInsert(v) + } + var got []Item + tr.AscendLessThan(Int(60), func(a Item) bool { + got = append(got, a) + return true + }) + if want := rang(100)[:60]; !reflect.DeepEqual(got, want) { + t.Fatalf("ascendrange:\n got: %v\nwant: %v", got, want) + } + got = got[:0] + tr.AscendLessThan(Int(60), func(a Item) bool { + if a.(Int) > 50 { + return false + } + got = append(got, a) + return true + }) + if want := rang(100)[:51]; !reflect.DeepEqual(got, want) { + t.Fatalf("ascendrange:\n got: %v\nwant: %v", got, want) + } +} + +func TestDescendLessOrEqual(t *testing.T) { + tr := New(*btreeDegree) + for _, v := range perm(100) { + tr.ReplaceOrInsert(v) + } + var got []Item + tr.DescendLessOrEqual(Int(40), func(a Item) bool { + got = append(got, a) + return true + }) + if want := rangrev(100)[59:]; !reflect.DeepEqual(got, want) { + t.Fatalf("descendlessorequal:\n got: %v\nwant: %v", got, want) + } + got = got[:0] + tr.DescendLessOrEqual(Int(60), func(a Item) bool { + if a.(Int) < 50 { + return false + } + got = append(got, a) + return true + }) + if want := rangrev(100)[39:50]; !reflect.DeepEqual(got, want) { + t.Fatalf("descendlessorequal:\n got: %v\nwant: %v", got, want) + } +} +func TestAscendGreaterOrEqual(t *testing.T) { + tr := New(*btreeDegree) + for _, v := range perm(100) { + tr.ReplaceOrInsert(v) + } + var got []Item + tr.AscendGreaterOrEqual(Int(40), func(a Item) bool { + got = append(got, a) + return true + }) + if want := rang(100)[40:]; !reflect.DeepEqual(got, want) { + t.Fatalf("ascendrange:\n got: %v\nwant: %v", got, want) + } + got = got[:0] + tr.AscendGreaterOrEqual(Int(40), func(a Item) bool { + if a.(Int) > 50 { + return false + } + got = append(got, a) + return true + }) + if want := rang(100)[40:51]; !reflect.DeepEqual(got, want) { + t.Fatalf("ascendrange:\n got: %v\nwant: %v", got, want) + } +} + +func TestDescendGreaterThan(t *testing.T) { + tr := New(*btreeDegree) + for _, v := range perm(100) { + tr.ReplaceOrInsert(v) + } + var got []Item + tr.DescendGreaterThan(Int(40), func(a Item) bool { + got = append(got, a) + return true + }) + if want := rangrev(100)[:59]; !reflect.DeepEqual(got, want) { + t.Fatalf("descendgreaterthan:\n got: %v\nwant: %v", got, want) + } + got = got[:0] + tr.DescendGreaterThan(Int(40), func(a Item) bool { + if a.(Int) < 50 { + return false + } + got = append(got, a) + return true + }) + if want := rangrev(100)[:50]; !reflect.DeepEqual(got, want) { + t.Fatalf("descendgreaterthan:\n got: %v\nwant: %v", got, want) + } +} + +const benchmarkTreeSize = 10000 + +func BenchmarkInsert(b *testing.B) { + b.StopTimer() + insertP := perm(benchmarkTreeSize) + b.StartTimer() + i := 0 + for i < b.N { + tr := New(*btreeDegree) + for _, item := range insertP { + tr.ReplaceOrInsert(item) + i++ + if i >= b.N { + return + } + } + } +} + +func BenchmarkSeek(b *testing.B) { + b.StopTimer() + size := 100000 + insertP := perm(size) + tr := New(*btreeDegree) + for _, item := range insertP { + tr.ReplaceOrInsert(item) + } + b.StartTimer() + + for i := 0; i < b.N; i++ { + tr.AscendGreaterOrEqual(Int(i%size), func(i Item) bool { return false }) + } +} + +func BenchmarkDeleteInsert(b *testing.B) { + b.StopTimer() + insertP := perm(benchmarkTreeSize) + tr := New(*btreeDegree) + for _, item := range insertP { + tr.ReplaceOrInsert(item) + } + b.StartTimer() + for i := 0; i < b.N; i++ { + tr.Delete(insertP[i%benchmarkTreeSize]) + tr.ReplaceOrInsert(insertP[i%benchmarkTreeSize]) + } +} + +func BenchmarkDeleteInsertCloneOnce(b *testing.B) { + b.StopTimer() + insertP := perm(benchmarkTreeSize) + tr := New(*btreeDegree) + for _, item := range insertP { + tr.ReplaceOrInsert(item) + } + tr = tr.Clone() + b.StartTimer() + for i := 0; i < b.N; i++ { + tr.Delete(insertP[i%benchmarkTreeSize]) + tr.ReplaceOrInsert(insertP[i%benchmarkTreeSize]) + } +} + +func BenchmarkDeleteInsertCloneEachTime(b *testing.B) { + b.StopTimer() + insertP := perm(benchmarkTreeSize) + tr := New(*btreeDegree) + for _, item := range insertP { + tr.ReplaceOrInsert(item) + } + b.StartTimer() + for i := 0; i < b.N; i++ { + tr = tr.Clone() + tr.Delete(insertP[i%benchmarkTreeSize]) + tr.ReplaceOrInsert(insertP[i%benchmarkTreeSize]) + } +} + +func BenchmarkDelete(b *testing.B) { + b.StopTimer() + insertP := perm(benchmarkTreeSize) + removeP := perm(benchmarkTreeSize) + b.StartTimer() + i := 0 + for i < b.N { + b.StopTimer() + tr := New(*btreeDegree) + for _, v := range insertP { + tr.ReplaceOrInsert(v) + } + b.StartTimer() + for _, item := range removeP { + tr.Delete(item) + i++ + if i >= b.N { + return + } + } + if tr.Len() > 0 { + panic(tr.Len()) + } + } +} + +func BenchmarkGet(b *testing.B) { + b.StopTimer() + insertP := perm(benchmarkTreeSize) + removeP := perm(benchmarkTreeSize) + b.StartTimer() + i := 0 + for i < b.N { + b.StopTimer() + tr := New(*btreeDegree) + for _, v := range insertP { + tr.ReplaceOrInsert(v) + } + b.StartTimer() + for _, item := range removeP { + tr.Get(item) + i++ + if i >= b.N { + return + } + } + } +} + +func BenchmarkGetCloneEachTime(b *testing.B) { + b.StopTimer() + insertP := perm(benchmarkTreeSize) + removeP := perm(benchmarkTreeSize) + b.StartTimer() + i := 0 + for i < b.N { + b.StopTimer() + tr := New(*btreeDegree) + for _, v := range insertP { + tr.ReplaceOrInsert(v) + } + b.StartTimer() + for _, item := range removeP { + tr = tr.Clone() + tr.Get(item) + i++ + if i >= b.N { + return + } + } + } +} + +type byInts []Item + +func (a byInts) Len() int { + return len(a) +} + +func (a byInts) Less(i, j int) bool { + return a[i].(Int) < a[j].(Int) +} + +func (a byInts) Swap(i, j int) { + a[i], a[j] = a[j], a[i] +} + +func BenchmarkAscend(b *testing.B) { + arr := perm(benchmarkTreeSize) + tr := New(*btreeDegree) + for _, v := range arr { + tr.ReplaceOrInsert(v) + } + sort.Sort(byInts(arr)) + b.ResetTimer() + for i := 0; i < b.N; i++ { + j := 0 + tr.Ascend(func(item Item) bool { + if item.(Int) != arr[j].(Int) { + b.Fatalf("mismatch: expected: %v, got %v", arr[j].(Int), item.(Int)) + } + j++ + return true + }) + } +} + +func BenchmarkDescend(b *testing.B) { + arr := perm(benchmarkTreeSize) + tr := New(*btreeDegree) + for _, v := range arr { + tr.ReplaceOrInsert(v) + } + sort.Sort(byInts(arr)) + b.ResetTimer() + for i := 0; i < b.N; i++ { + j := len(arr) - 1 + tr.Descend(func(item Item) bool { + if item.(Int) != arr[j].(Int) { + b.Fatalf("mismatch: expected: %v, got %v", arr[j].(Int), item.(Int)) + } + j-- + return true + }) + } +} +func BenchmarkAscendRange(b *testing.B) { + arr := perm(benchmarkTreeSize) + tr := New(*btreeDegree) + for _, v := range arr { + tr.ReplaceOrInsert(v) + } + sort.Sort(byInts(arr)) + b.ResetTimer() + for i := 0; i < b.N; i++ { + j := 100 + tr.AscendRange(Int(100), arr[len(arr)-100], func(item Item) bool { + if item.(Int) != arr[j].(Int) { + b.Fatalf("mismatch: expected: %v, got %v", arr[j].(Int), item.(Int)) + } + j++ + return true + }) + if j != len(arr)-100 { + b.Fatalf("expected: %v, got %v", len(arr)-100, j) + } + } +} + +func BenchmarkDescendRange(b *testing.B) { + arr := perm(benchmarkTreeSize) + tr := New(*btreeDegree) + for _, v := range arr { + tr.ReplaceOrInsert(v) + } + sort.Sort(byInts(arr)) + b.ResetTimer() + for i := 0; i < b.N; i++ { + j := len(arr) - 100 + tr.DescendRange(arr[len(arr)-100], Int(100), func(item Item) bool { + if item.(Int) != arr[j].(Int) { + b.Fatalf("mismatch: expected: %v, got %v", arr[j].(Int), item.(Int)) + } + j-- + return true + }) + if j != 100 { + b.Fatalf("expected: %v, got %v", len(arr)-100, j) + } + } +} +func BenchmarkAscendGreaterOrEqual(b *testing.B) { + arr := perm(benchmarkTreeSize) + tr := New(*btreeDegree) + for _, v := range arr { + tr.ReplaceOrInsert(v) + } + sort.Sort(byInts(arr)) + b.ResetTimer() + for i := 0; i < b.N; i++ { + j := 100 + k := 0 + tr.AscendGreaterOrEqual(Int(100), func(item Item) bool { + if item.(Int) != arr[j].(Int) { + b.Fatalf("mismatch: expected: %v, got %v", arr[j].(Int), item.(Int)) + } + j++ + k++ + return true + }) + if j != len(arr) { + b.Fatalf("expected: %v, got %v", len(arr), j) + } + if k != len(arr)-100 { + b.Fatalf("expected: %v, got %v", len(arr)-100, k) + } + } +} +func BenchmarkDescendLessOrEqual(b *testing.B) { + arr := perm(benchmarkTreeSize) + tr := New(*btreeDegree) + for _, v := range arr { + tr.ReplaceOrInsert(v) + } + sort.Sort(byInts(arr)) + b.ResetTimer() + for i := 0; i < b.N; i++ { + j := len(arr) - 100 + k := len(arr) + tr.DescendLessOrEqual(arr[len(arr)-100], func(item Item) bool { + if item.(Int) != arr[j].(Int) { + b.Fatalf("mismatch: expected: %v, got %v", arr[j].(Int), item.(Int)) + } + j-- + k-- + return true + }) + if j != -1 { + b.Fatalf("expected: %v, got %v", -1, j) + } + if k != 99 { + b.Fatalf("expected: %v, got %v", 99, k) + } + } +} + +const cloneTestSize = 10000 + +func cloneTest(t *testing.T, b *BTree, start int, p []Item, wg *sync.WaitGroup, trees *[]*BTree) { + t.Logf("Starting new clone at %v", start) + *trees = append(*trees, b) + for i := start; i < cloneTestSize; i++ { + b.ReplaceOrInsert(p[i]) + if i%(cloneTestSize/5) == 0 { + wg.Add(1) + go cloneTest(t, b.Clone(), i+1, p, wg, trees) + } + } + wg.Done() +} + +func TestCloneConcurrentOperations(t *testing.T) { + b := New(*btreeDegree) + trees := []*BTree{} + p := perm(cloneTestSize) + var wg sync.WaitGroup + wg.Add(1) + go cloneTest(t, b, 0, p, &wg, &trees) + wg.Wait() + want := rang(cloneTestSize) + t.Logf("Starting equality checks on %d trees", len(trees)) + for i, tree := range trees { + if !reflect.DeepEqual(want, all(tree)) { + t.Errorf("tree %v mismatch", i) + } + } + t.Log("Removing half from first half") + toRemove := rang(cloneTestSize)[cloneTestSize/2:] + for i := 0; i < len(trees)/2; i++ { + tree := trees[i] + wg.Add(1) + go func() { + for _, item := range toRemove { + tree.Delete(item) + } + wg.Done() + }() + } + wg.Wait() + t.Log("Checking all values again") + for i, tree := range trees { + var wantpart []Item + if i < len(trees)/2 { + wantpart = want[:cloneTestSize/2] + } else { + wantpart = want + } + if got := all(tree); !reflect.DeepEqual(wantpart, got) { + t.Errorf("tree %v mismatch, want %v got %v", i, len(want), len(got)) + } + } +} + +func BenchmarkDeleteAndRestore(b *testing.B) { + items := perm(16392) + b.ResetTimer() + b.Run(`CopyBigFreeList`, func(b *testing.B) { + fl := NewFreeList(16392) + tr := NewWithFreeList(*btreeDegree, fl) + for _, v := range items { + tr.ReplaceOrInsert(v) + } + b.ReportAllocs() + b.ResetTimer() + for i := 0; i < b.N; i++ { + dels := make([]Item, 0, tr.Len()) + tr.Ascend(ItemIterator(func(b Item) bool { + dels = append(dels, b) + return true + })) + for _, del := range dels { + tr.Delete(del) + } + // tr is now empty, we make a new empty copy of it. + tr = NewWithFreeList(*btreeDegree, fl) + for _, v := range items { + tr.ReplaceOrInsert(v) + } + } + }) + b.Run(`Copy`, func(b *testing.B) { + tr := New(*btreeDegree) + for _, v := range items { + tr.ReplaceOrInsert(v) + } + b.ReportAllocs() + b.ResetTimer() + for i := 0; i < b.N; i++ { + dels := make([]Item, 0, tr.Len()) + tr.Ascend(ItemIterator(func(b Item) bool { + dels = append(dels, b) + return true + })) + for _, del := range dels { + tr.Delete(del) + } + // tr is now empty, we make a new empty copy of it. + tr = New(*btreeDegree) + for _, v := range items { + tr.ReplaceOrInsert(v) + } + } + }) + b.Run(`ClearBigFreelist`, func(b *testing.B) { + fl := NewFreeList(16392) + tr := NewWithFreeList(*btreeDegree, fl) + for _, v := range items { + tr.ReplaceOrInsert(v) + } + b.ReportAllocs() + b.ResetTimer() + for i := 0; i < b.N; i++ { + tr.Clear(true) + for _, v := range items { + tr.ReplaceOrInsert(v) + } + } + }) + b.Run(`Clear`, func(b *testing.B) { + tr := New(*btreeDegree) + for _, v := range items { + tr.ReplaceOrInsert(v) + } + b.ReportAllocs() + b.ResetTimer() + for i := 0; i < b.N; i++ { + tr.Clear(true) + for _, v := range items { + tr.ReplaceOrInsert(v) + } + } + }) +} diff --git a/vendor/github.com/gregjones/httpcache/.travis.yml b/vendor/github.com/gregjones/httpcache/.travis.yml new file mode 100644 index 000000000..b5ffbe03d --- /dev/null +++ b/vendor/github.com/gregjones/httpcache/.travis.yml @@ -0,0 +1,19 @@ +sudo: false +language: go +go: + - 1.6.x + - 1.7.x + - 1.8.x + - 1.9.x + - master +matrix: + allow_failures: + - go: master + fast_finish: true +install: + - # Do nothing. This is needed to prevent default install action "go get -t -v ./..." from happening here (we want it to happen inside script step). +script: + - go get -t -v ./... + - diff -u <(echo -n) <(gofmt -d .) + - go tool vet . + - go test -v -race ./... diff --git a/vendor/github.com/gregjones/httpcache/LICENSE.txt b/vendor/github.com/gregjones/httpcache/LICENSE.txt new file mode 100644 index 000000000..81316beb0 --- /dev/null +++ b/vendor/github.com/gregjones/httpcache/LICENSE.txt @@ -0,0 +1,7 @@ +Copyright © 2012 Greg Jones (greg.jones@gmail.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Softwareâ€), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS ISâ€, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/vendor/github.com/gregjones/httpcache/README.md b/vendor/github.com/gregjones/httpcache/README.md new file mode 100644 index 000000000..09c9e7c17 --- /dev/null +++ b/vendor/github.com/gregjones/httpcache/README.md @@ -0,0 +1,25 @@ +httpcache +========= + +[![Build Status](https://travis-ci.org/gregjones/httpcache.svg?branch=master)](https://travis-ci.org/gregjones/httpcache) [![GoDoc](https://godoc.org/github.com/gregjones/httpcache?status.svg)](https://godoc.org/github.com/gregjones/httpcache) + +Package httpcache provides a http.RoundTripper implementation that works as a mostly [RFC 7234](https://tools.ietf.org/html/rfc7234) compliant cache for http responses. + +It is only suitable for use as a 'private' cache (i.e. for a web-browser or an API-client and not for a shared proxy). + +Cache Backends +-------------- + +- The built-in 'memory' cache stores responses in an in-memory map. +- [`github.com/gregjones/httpcache/diskcache`](https://github.com/gregjones/httpcache/tree/master/diskcache) provides a filesystem-backed cache using the [diskv](https://github.com/peterbourgon/diskv) library. +- [`github.com/gregjones/httpcache/memcache`](https://github.com/gregjones/httpcache/tree/master/memcache) provides memcache implementations, for both App Engine and 'normal' memcache servers. +- [`sourcegraph.com/sourcegraph/s3cache`](https://sourcegraph.com/github.com/sourcegraph/s3cache) uses Amazon S3 for storage. +- [`github.com/gregjones/httpcache/leveldbcache`](https://github.com/gregjones/httpcache/tree/master/leveldbcache) provides a filesystem-backed cache using [leveldb](https://github.com/syndtr/goleveldb/leveldb). +- [`github.com/die-net/lrucache`](https://github.com/die-net/lrucache) provides an in-memory cache that will evict least-recently used entries. +- [`github.com/die-net/lrucache/twotier`](https://github.com/die-net/lrucache/tree/master/twotier) allows caches to be combined, for example to use lrucache above with a persistent disk-cache. +- [`github.com/birkelund/boltdbcache`](https://github.com/birkelund/boltdbcache) provides a BoltDB implementation (based on the [bbolt](https://github.com/coreos/bbolt) fork). + +License +------- + +- [MIT License](LICENSE.txt) diff --git a/vendor/github.com/gregjones/httpcache/diskcache/diskcache.go b/vendor/github.com/gregjones/httpcache/diskcache/diskcache.go new file mode 100644 index 000000000..42e3129d8 --- /dev/null +++ b/vendor/github.com/gregjones/httpcache/diskcache/diskcache.go @@ -0,0 +1,61 @@ +// Package diskcache provides an implementation of httpcache.Cache that uses the diskv package +// to supplement an in-memory map with persistent storage +// +package diskcache + +import ( + "bytes" + "crypto/md5" + "encoding/hex" + "github.com/peterbourgon/diskv" + "io" +) + +// Cache is an implementation of httpcache.Cache that supplements the in-memory map with persistent storage +type Cache struct { + d *diskv.Diskv +} + +// Get returns the response corresponding to key if present +func (c *Cache) Get(key string) (resp []byte, ok bool) { + key = keyToFilename(key) + resp, err := c.d.Read(key) + if err != nil { + return []byte{}, false + } + return resp, true +} + +// Set saves a response to the cache as key +func (c *Cache) Set(key string, resp []byte) { + key = keyToFilename(key) + c.d.WriteStream(key, bytes.NewReader(resp), true) +} + +// Delete removes the response with key from the cache +func (c *Cache) Delete(key string) { + key = keyToFilename(key) + c.d.Erase(key) +} + +func keyToFilename(key string) string { + h := md5.New() + io.WriteString(h, key) + return hex.EncodeToString(h.Sum(nil)) +} + +// New returns a new Cache that will store files in basePath +func New(basePath string) *Cache { + return &Cache{ + d: diskv.New(diskv.Options{ + BasePath: basePath, + CacheSizeMax: 100 * 1024 * 1024, // 100MB + }), + } +} + +// NewWithDiskv returns a new Cache using the provided Diskv as underlying +// storage. +func NewWithDiskv(d *diskv.Diskv) *Cache { + return &Cache{d} +} diff --git a/vendor/github.com/gregjones/httpcache/diskcache/diskcache_test.go b/vendor/github.com/gregjones/httpcache/diskcache/diskcache_test.go new file mode 100644 index 000000000..35c76cbd1 --- /dev/null +++ b/vendor/github.com/gregjones/httpcache/diskcache/diskcache_test.go @@ -0,0 +1,42 @@ +package diskcache + +import ( + "bytes" + "io/ioutil" + "os" + "testing" +) + +func TestDiskCache(t *testing.T) { + tempDir, err := ioutil.TempDir("", "httpcache") + if err != nil { + t.Fatalf("TempDir: %v", err) + } + defer os.RemoveAll(tempDir) + + cache := New(tempDir) + + key := "testKey" + _, ok := cache.Get(key) + if ok { + t.Fatal("retrieved key before adding it") + } + + val := []byte("some bytes") + cache.Set(key, val) + + retVal, ok := cache.Get(key) + if !ok { + t.Fatal("could not retrieve an element we just added") + } + if !bytes.Equal(retVal, val) { + t.Fatal("retrieved a different value than what we put in") + } + + cache.Delete(key) + + _, ok = cache.Get(key) + if ok { + t.Fatal("deleted key still present") + } +} diff --git a/vendor/github.com/gregjones/httpcache/httpcache.go b/vendor/github.com/gregjones/httpcache/httpcache.go new file mode 100644 index 000000000..f6a2ec4a5 --- /dev/null +++ b/vendor/github.com/gregjones/httpcache/httpcache.go @@ -0,0 +1,551 @@ +// Package httpcache provides a http.RoundTripper implementation that works as a +// mostly RFC-compliant cache for http responses. +// +// It is only suitable for use as a 'private' cache (i.e. for a web-browser or an API-client +// and not for a shared proxy). +// +package httpcache + +import ( + "bufio" + "bytes" + "errors" + "io" + "io/ioutil" + "net/http" + "net/http/httputil" + "strings" + "sync" + "time" +) + +const ( + stale = iota + fresh + transparent + // XFromCache is the header added to responses that are returned from the cache + XFromCache = "X-From-Cache" +) + +// A Cache interface is used by the Transport to store and retrieve responses. +type Cache interface { + // Get returns the []byte representation of a cached response and a bool + // set to true if the value isn't empty + Get(key string) (responseBytes []byte, ok bool) + // Set stores the []byte representation of a response against a key + Set(key string, responseBytes []byte) + // Delete removes the value associated with the key + Delete(key string) +} + +// cacheKey returns the cache key for req. +func cacheKey(req *http.Request) string { + if req.Method == http.MethodGet { + return req.URL.String() + } else { + return req.Method + " " + req.URL.String() + } +} + +// CachedResponse returns the cached http.Response for req if present, and nil +// otherwise. +func CachedResponse(c Cache, req *http.Request) (resp *http.Response, err error) { + cachedVal, ok := c.Get(cacheKey(req)) + if !ok { + return + } + + b := bytes.NewBuffer(cachedVal) + return http.ReadResponse(bufio.NewReader(b), req) +} + +// MemoryCache is an implemtation of Cache that stores responses in an in-memory map. +type MemoryCache struct { + mu sync.RWMutex + items map[string][]byte +} + +// Get returns the []byte representation of the response and true if present, false if not +func (c *MemoryCache) Get(key string) (resp []byte, ok bool) { + c.mu.RLock() + resp, ok = c.items[key] + c.mu.RUnlock() + return resp, ok +} + +// Set saves response resp to the cache with key +func (c *MemoryCache) Set(key string, resp []byte) { + c.mu.Lock() + c.items[key] = resp + c.mu.Unlock() +} + +// Delete removes key from the cache +func (c *MemoryCache) Delete(key string) { + c.mu.Lock() + delete(c.items, key) + c.mu.Unlock() +} + +// NewMemoryCache returns a new Cache that will store items in an in-memory map +func NewMemoryCache() *MemoryCache { + c := &MemoryCache{items: map[string][]byte{}} + return c +} + +// Transport is an implementation of http.RoundTripper that will return values from a cache +// where possible (avoiding a network request) and will additionally add validators (etag/if-modified-since) +// to repeated requests allowing servers to return 304 / Not Modified +type Transport struct { + // The RoundTripper interface actually used to make requests + // If nil, http.DefaultTransport is used + Transport http.RoundTripper + Cache Cache + // If true, responses returned from the cache will be given an extra header, X-From-Cache + MarkCachedResponses bool +} + +// NewTransport returns a new Transport with the +// provided Cache implementation and MarkCachedResponses set to true +func NewTransport(c Cache) *Transport { + return &Transport{Cache: c, MarkCachedResponses: true} +} + +// Client returns an *http.Client that caches responses. +func (t *Transport) Client() *http.Client { + return &http.Client{Transport: t} +} + +// varyMatches will return false unless all of the cached values for the headers listed in Vary +// match the new request +func varyMatches(cachedResp *http.Response, req *http.Request) bool { + for _, header := range headerAllCommaSepValues(cachedResp.Header, "vary") { + header = http.CanonicalHeaderKey(header) + if header != "" && req.Header.Get(header) != cachedResp.Header.Get("X-Varied-"+header) { + return false + } + } + return true +} + +// RoundTrip takes a Request and returns a Response +// +// If there is a fresh Response already in cache, then it will be returned without connecting to +// the server. +// +// If there is a stale Response, then any validators it contains will be set on the new request +// to give the server a chance to respond with NotModified. If this happens, then the cached Response +// will be returned. +func (t *Transport) RoundTrip(req *http.Request) (resp *http.Response, err error) { + cacheKey := cacheKey(req) + cacheable := (req.Method == "GET" || req.Method == "HEAD") && req.Header.Get("range") == "" + var cachedResp *http.Response + if cacheable { + cachedResp, err = CachedResponse(t.Cache, req) + } else { + // Need to invalidate an existing value + t.Cache.Delete(cacheKey) + } + + transport := t.Transport + if transport == nil { + transport = http.DefaultTransport + } + + if cacheable && cachedResp != nil && err == nil { + if t.MarkCachedResponses { + cachedResp.Header.Set(XFromCache, "1") + } + + if varyMatches(cachedResp, req) { + // Can only use cached value if the new request doesn't Vary significantly + freshness := getFreshness(cachedResp.Header, req.Header) + if freshness == fresh { + return cachedResp, nil + } + + if freshness == stale { + var req2 *http.Request + // Add validators if caller hasn't already done so + etag := cachedResp.Header.Get("etag") + if etag != "" && req.Header.Get("etag") == "" { + req2 = cloneRequest(req) + req2.Header.Set("if-none-match", etag) + } + lastModified := cachedResp.Header.Get("last-modified") + if lastModified != "" && req.Header.Get("last-modified") == "" { + if req2 == nil { + req2 = cloneRequest(req) + } + req2.Header.Set("if-modified-since", lastModified) + } + if req2 != nil { + req = req2 + } + } + } + + resp, err = transport.RoundTrip(req) + if err == nil && req.Method == "GET" && resp.StatusCode == http.StatusNotModified { + // Replace the 304 response with the one from cache, but update with some new headers + endToEndHeaders := getEndToEndHeaders(resp.Header) + for _, header := range endToEndHeaders { + cachedResp.Header[header] = resp.Header[header] + } + resp = cachedResp + } else if (err != nil || (cachedResp != nil && resp.StatusCode >= 500)) && + req.Method == "GET" && canStaleOnError(cachedResp.Header, req.Header) { + // In case of transport failure and stale-if-error activated, returns cached content + // when available + return cachedResp, nil + } else { + if err != nil || resp.StatusCode != http.StatusOK { + t.Cache.Delete(cacheKey) + } + if err != nil { + return nil, err + } + } + } else { + reqCacheControl := parseCacheControl(req.Header) + if _, ok := reqCacheControl["only-if-cached"]; ok { + resp = newGatewayTimeoutResponse(req) + } else { + resp, err = transport.RoundTrip(req) + if err != nil { + return nil, err + } + } + } + + if cacheable && canStore(parseCacheControl(req.Header), parseCacheControl(resp.Header)) { + for _, varyKey := range headerAllCommaSepValues(resp.Header, "vary") { + varyKey = http.CanonicalHeaderKey(varyKey) + fakeHeader := "X-Varied-" + varyKey + reqValue := req.Header.Get(varyKey) + if reqValue != "" { + resp.Header.Set(fakeHeader, reqValue) + } + } + switch req.Method { + case "GET": + // Delay caching until EOF is reached. + resp.Body = &cachingReadCloser{ + R: resp.Body, + OnEOF: func(r io.Reader) { + resp := *resp + resp.Body = ioutil.NopCloser(r) + respBytes, err := httputil.DumpResponse(&resp, true) + if err == nil { + t.Cache.Set(cacheKey, respBytes) + } + }, + } + default: + respBytes, err := httputil.DumpResponse(resp, true) + if err == nil { + t.Cache.Set(cacheKey, respBytes) + } + } + } else { + t.Cache.Delete(cacheKey) + } + return resp, nil +} + +// ErrNoDateHeader indicates that the HTTP headers contained no Date header. +var ErrNoDateHeader = errors.New("no Date header") + +// Date parses and returns the value of the Date header. +func Date(respHeaders http.Header) (date time.Time, err error) { + dateHeader := respHeaders.Get("date") + if dateHeader == "" { + err = ErrNoDateHeader + return + } + + return time.Parse(time.RFC1123, dateHeader) +} + +type realClock struct{} + +func (c *realClock) since(d time.Time) time.Duration { + return time.Since(d) +} + +type timer interface { + since(d time.Time) time.Duration +} + +var clock timer = &realClock{} + +// getFreshness will return one of fresh/stale/transparent based on the cache-control +// values of the request and the response +// +// fresh indicates the response can be returned +// stale indicates that the response needs validating before it is returned +// transparent indicates the response should not be used to fulfil the request +// +// Because this is only a private cache, 'public' and 'private' in cache-control aren't +// signficant. Similarly, smax-age isn't used. +func getFreshness(respHeaders, reqHeaders http.Header) (freshness int) { + respCacheControl := parseCacheControl(respHeaders) + reqCacheControl := parseCacheControl(reqHeaders) + if _, ok := reqCacheControl["no-cache"]; ok { + return transparent + } + if _, ok := respCacheControl["no-cache"]; ok { + return stale + } + if _, ok := reqCacheControl["only-if-cached"]; ok { + return fresh + } + + date, err := Date(respHeaders) + if err != nil { + return stale + } + currentAge := clock.since(date) + + var lifetime time.Duration + var zeroDuration time.Duration + + // If a response includes both an Expires header and a max-age directive, + // the max-age directive overrides the Expires header, even if the Expires header is more restrictive. + if maxAge, ok := respCacheControl["max-age"]; ok { + lifetime, err = time.ParseDuration(maxAge + "s") + if err != nil { + lifetime = zeroDuration + } + } else { + expiresHeader := respHeaders.Get("Expires") + if expiresHeader != "" { + expires, err := time.Parse(time.RFC1123, expiresHeader) + if err != nil { + lifetime = zeroDuration + } else { + lifetime = expires.Sub(date) + } + } + } + + if maxAge, ok := reqCacheControl["max-age"]; ok { + // the client is willing to accept a response whose age is no greater than the specified time in seconds + lifetime, err = time.ParseDuration(maxAge + "s") + if err != nil { + lifetime = zeroDuration + } + } + if minfresh, ok := reqCacheControl["min-fresh"]; ok { + // the client wants a response that will still be fresh for at least the specified number of seconds. + minfreshDuration, err := time.ParseDuration(minfresh + "s") + if err == nil { + currentAge = time.Duration(currentAge + minfreshDuration) + } + } + + if maxstale, ok := reqCacheControl["max-stale"]; ok { + // Indicates that the client is willing to accept a response that has exceeded its expiration time. + // If max-stale is assigned a value, then the client is willing to accept a response that has exceeded + // its expiration time by no more than the specified number of seconds. + // If no value is assigned to max-stale, then the client is willing to accept a stale response of any age. + // + // Responses served only because of a max-stale value are supposed to have a Warning header added to them, + // but that seems like a hassle, and is it actually useful? If so, then there needs to be a different + // return-value available here. + if maxstale == "" { + return fresh + } + maxstaleDuration, err := time.ParseDuration(maxstale + "s") + if err == nil { + currentAge = time.Duration(currentAge - maxstaleDuration) + } + } + + if lifetime > currentAge { + return fresh + } + + return stale +} + +// Returns true if either the request or the response includes the stale-if-error +// cache control extension: https://tools.ietf.org/html/rfc5861 +func canStaleOnError(respHeaders, reqHeaders http.Header) bool { + respCacheControl := parseCacheControl(respHeaders) + reqCacheControl := parseCacheControl(reqHeaders) + + var err error + lifetime := time.Duration(-1) + + if staleMaxAge, ok := respCacheControl["stale-if-error"]; ok { + if staleMaxAge != "" { + lifetime, err = time.ParseDuration(staleMaxAge + "s") + if err != nil { + return false + } + } else { + return true + } + } + if staleMaxAge, ok := reqCacheControl["stale-if-error"]; ok { + if staleMaxAge != "" { + lifetime, err = time.ParseDuration(staleMaxAge + "s") + if err != nil { + return false + } + } else { + return true + } + } + + if lifetime >= 0 { + date, err := Date(respHeaders) + if err != nil { + return false + } + currentAge := clock.since(date) + if lifetime > currentAge { + return true + } + } + + return false +} + +func getEndToEndHeaders(respHeaders http.Header) []string { + // These headers are always hop-by-hop + hopByHopHeaders := map[string]struct{}{ + "Connection": struct{}{}, + "Keep-Alive": struct{}{}, + "Proxy-Authenticate": struct{}{}, + "Proxy-Authorization": struct{}{}, + "Te": struct{}{}, + "Trailers": struct{}{}, + "Transfer-Encoding": struct{}{}, + "Upgrade": struct{}{}, + } + + for _, extra := range strings.Split(respHeaders.Get("connection"), ",") { + // any header listed in connection, if present, is also considered hop-by-hop + if strings.Trim(extra, " ") != "" { + hopByHopHeaders[http.CanonicalHeaderKey(extra)] = struct{}{} + } + } + endToEndHeaders := []string{} + for respHeader, _ := range respHeaders { + if _, ok := hopByHopHeaders[respHeader]; !ok { + endToEndHeaders = append(endToEndHeaders, respHeader) + } + } + return endToEndHeaders +} + +func canStore(reqCacheControl, respCacheControl cacheControl) (canStore bool) { + if _, ok := respCacheControl["no-store"]; ok { + return false + } + if _, ok := reqCacheControl["no-store"]; ok { + return false + } + return true +} + +func newGatewayTimeoutResponse(req *http.Request) *http.Response { + var braw bytes.Buffer + braw.WriteString("HTTP/1.1 504 Gateway Timeout\r\n\r\n") + resp, err := http.ReadResponse(bufio.NewReader(&braw), req) + if err != nil { + panic(err) + } + return resp +} + +// cloneRequest returns a clone of the provided *http.Request. +// The clone is a shallow copy of the struct and its Header map. +// (This function copyright goauth2 authors: https://code.google.com/p/goauth2) +func cloneRequest(r *http.Request) *http.Request { + // shallow copy of the struct + r2 := new(http.Request) + *r2 = *r + // deep copy of the Header + r2.Header = make(http.Header) + for k, s := range r.Header { + r2.Header[k] = s + } + return r2 +} + +type cacheControl map[string]string + +func parseCacheControl(headers http.Header) cacheControl { + cc := cacheControl{} + ccHeader := headers.Get("Cache-Control") + for _, part := range strings.Split(ccHeader, ",") { + part = strings.Trim(part, " ") + if part == "" { + continue + } + if strings.ContainsRune(part, '=') { + keyval := strings.Split(part, "=") + cc[strings.Trim(keyval[0], " ")] = strings.Trim(keyval[1], ",") + } else { + cc[part] = "" + } + } + return cc +} + +// headerAllCommaSepValues returns all comma-separated values (each +// with whitespace trimmed) for header name in headers. According to +// Section 4.2 of the HTTP/1.1 spec +// (http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2), +// values from multiple occurrences of a header should be concatenated, if +// the header's value is a comma-separated list. +func headerAllCommaSepValues(headers http.Header, name string) []string { + var vals []string + for _, val := range headers[http.CanonicalHeaderKey(name)] { + fields := strings.Split(val, ",") + for i, f := range fields { + fields[i] = strings.TrimSpace(f) + } + vals = append(vals, fields...) + } + return vals +} + +// cachingReadCloser is a wrapper around ReadCloser R that calls OnEOF +// handler with a full copy of the content read from R when EOF is +// reached. +type cachingReadCloser struct { + // Underlying ReadCloser. + R io.ReadCloser + // OnEOF is called with a copy of the content of R when EOF is reached. + OnEOF func(io.Reader) + + buf bytes.Buffer // buf stores a copy of the content of R. +} + +// Read reads the next len(p) bytes from R or until R is drained. The +// return value n is the number of bytes read. If R has no data to +// return, err is io.EOF and OnEOF is called with a full copy of what +// has been read so far. +func (r *cachingReadCloser) Read(p []byte) (n int, err error) { + n, err = r.R.Read(p) + r.buf.Write(p[:n]) + if err == io.EOF { + r.OnEOF(bytes.NewReader(r.buf.Bytes())) + } + return n, err +} + +func (r *cachingReadCloser) Close() error { + return r.R.Close() +} + +// NewMemoryCacheTransport returns a new Transport using the in-memory cache implementation +func NewMemoryCacheTransport() *Transport { + c := NewMemoryCache() + t := NewTransport(c) + return t +} diff --git a/vendor/github.com/gregjones/httpcache/httpcache_test.go b/vendor/github.com/gregjones/httpcache/httpcache_test.go new file mode 100644 index 000000000..a50464180 --- /dev/null +++ b/vendor/github.com/gregjones/httpcache/httpcache_test.go @@ -0,0 +1,1475 @@ +package httpcache + +import ( + "bytes" + "errors" + "flag" + "io" + "io/ioutil" + "net/http" + "net/http/httptest" + "os" + "strconv" + "testing" + "time" +) + +var s struct { + server *httptest.Server + client http.Client + transport *Transport + done chan struct{} // Closed to unlock infinite handlers. +} + +type fakeClock struct { + elapsed time.Duration +} + +func (c *fakeClock) since(t time.Time) time.Duration { + return c.elapsed +} + +func TestMain(m *testing.M) { + flag.Parse() + setup() + code := m.Run() + teardown() + os.Exit(code) +} + +func setup() { + tp := NewMemoryCacheTransport() + client := http.Client{Transport: tp} + s.transport = tp + s.client = client + s.done = make(chan struct{}) + + mux := http.NewServeMux() + s.server = httptest.NewServer(mux) + + mux.HandleFunc("/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Cache-Control", "max-age=3600") + })) + + mux.HandleFunc("/method", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Cache-Control", "max-age=3600") + w.Write([]byte(r.Method)) + })) + + mux.HandleFunc("/range", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + lm := "Fri, 14 Dec 2010 01:01:50 GMT" + if r.Header.Get("if-modified-since") == lm { + w.WriteHeader(http.StatusNotModified) + return + } + w.Header().Set("last-modified", lm) + if r.Header.Get("range") == "bytes=4-9" { + w.WriteHeader(http.StatusPartialContent) + w.Write([]byte(" text ")) + return + } + w.Write([]byte("Some text content")) + })) + + mux.HandleFunc("/nostore", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Cache-Control", "no-store") + })) + + mux.HandleFunc("/etag", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + etag := "124567" + if r.Header.Get("if-none-match") == etag { + w.WriteHeader(http.StatusNotModified) + return + } + w.Header().Set("etag", etag) + })) + + mux.HandleFunc("/lastmodified", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + lm := "Fri, 14 Dec 2010 01:01:50 GMT" + if r.Header.Get("if-modified-since") == lm { + w.WriteHeader(http.StatusNotModified) + return + } + w.Header().Set("last-modified", lm) + })) + + mux.HandleFunc("/varyaccept", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Cache-Control", "max-age=3600") + w.Header().Set("Content-Type", "text/plain") + w.Header().Set("Vary", "Accept") + w.Write([]byte("Some text content")) + })) + + mux.HandleFunc("/doublevary", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Cache-Control", "max-age=3600") + w.Header().Set("Content-Type", "text/plain") + w.Header().Set("Vary", "Accept, Accept-Language") + w.Write([]byte("Some text content")) + })) + mux.HandleFunc("/2varyheaders", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Cache-Control", "max-age=3600") + w.Header().Set("Content-Type", "text/plain") + w.Header().Add("Vary", "Accept") + w.Header().Add("Vary", "Accept-Language") + w.Write([]byte("Some text content")) + })) + mux.HandleFunc("/varyunused", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Cache-Control", "max-age=3600") + w.Header().Set("Content-Type", "text/plain") + w.Header().Set("Vary", "X-Madeup-Header") + w.Write([]byte("Some text content")) + })) + + mux.HandleFunc("/cachederror", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + etag := "abc" + if r.Header.Get("if-none-match") == etag { + w.WriteHeader(http.StatusNotModified) + return + } + w.Header().Set("etag", etag) + w.WriteHeader(http.StatusNotFound) + w.Write([]byte("Not found")) + })) + + updateFieldsCounter := 0 + mux.HandleFunc("/updatefields", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("X-Counter", strconv.Itoa(updateFieldsCounter)) + w.Header().Set("Etag", `"e"`) + updateFieldsCounter++ + if r.Header.Get("if-none-match") != "" { + w.WriteHeader(http.StatusNotModified) + return + } + w.Write([]byte("Some text content")) + })) + + // Take 3 seconds to return 200 OK (for testing client timeouts). + mux.HandleFunc("/3seconds", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + time.Sleep(3 * time.Second) + })) + + mux.HandleFunc("/infinite", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + for { + select { + case <-s.done: + return + default: + w.Write([]byte{0}) + } + } + })) +} + +func teardown() { + close(s.done) + s.server.Close() +} + +func resetTest() { + s.transport.Cache = NewMemoryCache() + clock = &realClock{} +} + +// TestCacheableMethod ensures that uncacheable method does not get stored +// in cache and get incorrectly used for a following cacheable method request. +func TestCacheableMethod(t *testing.T) { + resetTest() + { + req, err := http.NewRequest("POST", s.server.URL+"/method", nil) + if err != nil { + t.Fatal(err) + } + resp, err := s.client.Do(req) + if err != nil { + t.Fatal(err) + } + var buf bytes.Buffer + _, err = io.Copy(&buf, resp.Body) + if err != nil { + t.Fatal(err) + } + err = resp.Body.Close() + if err != nil { + t.Fatal(err) + } + if got, want := buf.String(), "POST"; got != want { + t.Errorf("got %q, want %q", got, want) + } + if resp.StatusCode != http.StatusOK { + t.Errorf("response status code isn't 200 OK: %v", resp.StatusCode) + } + } + { + req, err := http.NewRequest("GET", s.server.URL+"/method", nil) + if err != nil { + t.Fatal(err) + } + resp, err := s.client.Do(req) + if err != nil { + t.Fatal(err) + } + var buf bytes.Buffer + _, err = io.Copy(&buf, resp.Body) + if err != nil { + t.Fatal(err) + } + err = resp.Body.Close() + if err != nil { + t.Fatal(err) + } + if got, want := buf.String(), "GET"; got != want { + t.Errorf("got wrong body %q, want %q", got, want) + } + if resp.StatusCode != http.StatusOK { + t.Errorf("response status code isn't 200 OK: %v", resp.StatusCode) + } + if resp.Header.Get(XFromCache) != "" { + t.Errorf("XFromCache header isn't blank") + } + } +} + +func TestDontServeHeadResponseToGetRequest(t *testing.T) { + resetTest() + url := s.server.URL + "/" + req, err := http.NewRequest(http.MethodHead, url, nil) + if err != nil { + t.Fatal(err) + } + _, err = s.client.Do(req) + if err != nil { + t.Fatal(err) + } + req, err = http.NewRequest(http.MethodGet, url, nil) + if err != nil { + t.Fatal(err) + } + resp, err := s.client.Do(req) + if err != nil { + t.Fatal(err) + } + if resp.Header.Get(XFromCache) != "" { + t.Errorf("Cache should not match") + } +} + +func TestDontStorePartialRangeInCache(t *testing.T) { + resetTest() + { + req, err := http.NewRequest("GET", s.server.URL+"/range", nil) + if err != nil { + t.Fatal(err) + } + req.Header.Set("range", "bytes=4-9") + resp, err := s.client.Do(req) + if err != nil { + t.Fatal(err) + } + var buf bytes.Buffer + _, err = io.Copy(&buf, resp.Body) + if err != nil { + t.Fatal(err) + } + err = resp.Body.Close() + if err != nil { + t.Fatal(err) + } + if got, want := buf.String(), " text "; got != want { + t.Errorf("got %q, want %q", got, want) + } + if resp.StatusCode != http.StatusPartialContent { + t.Errorf("response status code isn't 206 Partial Content: %v", resp.StatusCode) + } + } + { + req, err := http.NewRequest("GET", s.server.URL+"/range", nil) + if err != nil { + t.Fatal(err) + } + resp, err := s.client.Do(req) + if err != nil { + t.Fatal(err) + } + var buf bytes.Buffer + _, err = io.Copy(&buf, resp.Body) + if err != nil { + t.Fatal(err) + } + err = resp.Body.Close() + if err != nil { + t.Fatal(err) + } + if got, want := buf.String(), "Some text content"; got != want { + t.Errorf("got %q, want %q", got, want) + } + if resp.StatusCode != http.StatusOK { + t.Errorf("response status code isn't 200 OK: %v", resp.StatusCode) + } + if resp.Header.Get(XFromCache) != "" { + t.Error("XFromCache header isn't blank") + } + } + { + req, err := http.NewRequest("GET", s.server.URL+"/range", nil) + if err != nil { + t.Fatal(err) + } + resp, err := s.client.Do(req) + if err != nil { + t.Fatal(err) + } + var buf bytes.Buffer + _, err = io.Copy(&buf, resp.Body) + if err != nil { + t.Fatal(err) + } + err = resp.Body.Close() + if err != nil { + t.Fatal(err) + } + if got, want := buf.String(), "Some text content"; got != want { + t.Errorf("got %q, want %q", got, want) + } + if resp.StatusCode != http.StatusOK { + t.Errorf("response status code isn't 200 OK: %v", resp.StatusCode) + } + if resp.Header.Get(XFromCache) != "1" { + t.Errorf(`XFromCache header isn't "1": %v`, resp.Header.Get(XFromCache)) + } + } + { + req, err := http.NewRequest("GET", s.server.URL+"/range", nil) + if err != nil { + t.Fatal(err) + } + req.Header.Set("range", "bytes=4-9") + resp, err := s.client.Do(req) + if err != nil { + t.Fatal(err) + } + var buf bytes.Buffer + _, err = io.Copy(&buf, resp.Body) + if err != nil { + t.Fatal(err) + } + err = resp.Body.Close() + if err != nil { + t.Fatal(err) + } + if got, want := buf.String(), " text "; got != want { + t.Errorf("got %q, want %q", got, want) + } + if resp.StatusCode != http.StatusPartialContent { + t.Errorf("response status code isn't 206 Partial Content: %v", resp.StatusCode) + } + } +} + +func TestCacheOnlyIfBodyRead(t *testing.T) { + resetTest() + { + req, err := http.NewRequest("GET", s.server.URL, nil) + if err != nil { + t.Fatal(err) + } + resp, err := s.client.Do(req) + if err != nil { + t.Fatal(err) + } + if resp.Header.Get(XFromCache) != "" { + t.Fatal("XFromCache header isn't blank") + } + // We do not read the body + resp.Body.Close() + } + { + req, err := http.NewRequest("GET", s.server.URL, nil) + if err != nil { + t.Fatal(err) + } + resp, err := s.client.Do(req) + if err != nil { + t.Fatal(err) + } + defer resp.Body.Close() + if resp.Header.Get(XFromCache) != "" { + t.Fatalf("XFromCache header isn't blank") + } + } +} + +func TestOnlyReadBodyOnDemand(t *testing.T) { + resetTest() + + req, err := http.NewRequest("GET", s.server.URL+"/infinite", nil) + if err != nil { + t.Fatal(err) + } + resp, err := s.client.Do(req) // This shouldn't hang forever. + if err != nil { + t.Fatal(err) + } + buf := make([]byte, 10) // Only partially read the body. + _, err = resp.Body.Read(buf) + if err != nil { + t.Fatal(err) + } + resp.Body.Close() +} + +func TestGetOnlyIfCachedHit(t *testing.T) { + resetTest() + { + req, err := http.NewRequest("GET", s.server.URL, nil) + if err != nil { + t.Fatal(err) + } + resp, err := s.client.Do(req) + if err != nil { + t.Fatal(err) + } + defer resp.Body.Close() + if resp.Header.Get(XFromCache) != "" { + t.Fatal("XFromCache header isn't blank") + } + _, err = ioutil.ReadAll(resp.Body) + if err != nil { + t.Fatal(err) + } + } + { + req, err := http.NewRequest("GET", s.server.URL, nil) + if err != nil { + t.Fatal(err) + } + req.Header.Add("cache-control", "only-if-cached") + resp, err := s.client.Do(req) + if err != nil { + t.Fatal(err) + } + defer resp.Body.Close() + if resp.Header.Get(XFromCache) != "1" { + t.Fatalf(`XFromCache header isn't "1": %v`, resp.Header.Get(XFromCache)) + } + if resp.StatusCode != http.StatusOK { + t.Fatalf("response status code isn't 200 OK: %v", resp.StatusCode) + } + } +} + +func TestGetOnlyIfCachedMiss(t *testing.T) { + resetTest() + req, err := http.NewRequest("GET", s.server.URL, nil) + if err != nil { + t.Fatal(err) + } + req.Header.Add("cache-control", "only-if-cached") + resp, err := s.client.Do(req) + if err != nil { + t.Fatal(err) + } + defer resp.Body.Close() + if resp.Header.Get(XFromCache) != "" { + t.Fatal("XFromCache header isn't blank") + } + if resp.StatusCode != http.StatusGatewayTimeout { + t.Fatalf("response status code isn't 504 GatewayTimeout: %v", resp.StatusCode) + } +} + +func TestGetNoStoreRequest(t *testing.T) { + resetTest() + req, err := http.NewRequest("GET", s.server.URL, nil) + if err != nil { + t.Fatal(err) + } + req.Header.Add("Cache-Control", "no-store") + { + resp, err := s.client.Do(req) + if err != nil { + t.Fatal(err) + } + defer resp.Body.Close() + if resp.Header.Get(XFromCache) != "" { + t.Fatal("XFromCache header isn't blank") + } + } + { + resp, err := s.client.Do(req) + if err != nil { + t.Fatal(err) + } + defer resp.Body.Close() + if resp.Header.Get(XFromCache) != "" { + t.Fatal("XFromCache header isn't blank") + } + } +} + +func TestGetNoStoreResponse(t *testing.T) { + resetTest() + req, err := http.NewRequest("GET", s.server.URL+"/nostore", nil) + if err != nil { + t.Fatal(err) + } + { + resp, err := s.client.Do(req) + if err != nil { + t.Fatal(err) + } + defer resp.Body.Close() + if resp.Header.Get(XFromCache) != "" { + t.Fatal("XFromCache header isn't blank") + } + } + { + resp, err := s.client.Do(req) + if err != nil { + t.Fatal(err) + } + defer resp.Body.Close() + if resp.Header.Get(XFromCache) != "" { + t.Fatal("XFromCache header isn't blank") + } + } +} + +func TestGetWithEtag(t *testing.T) { + resetTest() + req, err := http.NewRequest("GET", s.server.URL+"/etag", nil) + if err != nil { + t.Fatal(err) + } + { + resp, err := s.client.Do(req) + if err != nil { + t.Fatal(err) + } + defer resp.Body.Close() + if resp.Header.Get(XFromCache) != "" { + t.Fatal("XFromCache header isn't blank") + } + _, err = ioutil.ReadAll(resp.Body) + if err != nil { + t.Fatal(err) + } + + } + { + resp, err := s.client.Do(req) + if err != nil { + t.Fatal(err) + } + defer resp.Body.Close() + if resp.Header.Get(XFromCache) != "1" { + t.Fatalf(`XFromCache header isn't "1": %v`, resp.Header.Get(XFromCache)) + } + // additional assertions to verify that 304 response is converted properly + if resp.StatusCode != http.StatusOK { + t.Fatalf("response status code isn't 200 OK: %v", resp.StatusCode) + } + if _, ok := resp.Header["Connection"]; ok { + t.Fatalf("Connection header isn't absent") + } + } +} + +func TestGetWithLastModified(t *testing.T) { + resetTest() + req, err := http.NewRequest("GET", s.server.URL+"/lastmodified", nil) + if err != nil { + t.Fatal(err) + } + { + resp, err := s.client.Do(req) + if err != nil { + t.Fatal(err) + } + defer resp.Body.Close() + if resp.Header.Get(XFromCache) != "" { + t.Fatal("XFromCache header isn't blank") + } + _, err = ioutil.ReadAll(resp.Body) + if err != nil { + t.Fatal(err) + } + } + { + resp, err := s.client.Do(req) + if err != nil { + t.Fatal(err) + } + defer resp.Body.Close() + if resp.Header.Get(XFromCache) != "1" { + t.Fatalf(`XFromCache header isn't "1": %v`, resp.Header.Get(XFromCache)) + } + } +} + +func TestGetWithVary(t *testing.T) { + resetTest() + req, err := http.NewRequest("GET", s.server.URL+"/varyaccept", nil) + if err != nil { + t.Fatal(err) + } + req.Header.Set("Accept", "text/plain") + { + resp, err := s.client.Do(req) + if err != nil { + t.Fatal(err) + } + defer resp.Body.Close() + if resp.Header.Get("Vary") != "Accept" { + t.Fatalf(`Vary header isn't "Accept": %v`, resp.Header.Get("Vary")) + } + _, err = ioutil.ReadAll(resp.Body) + if err != nil { + t.Fatal(err) + } + } + { + resp, err := s.client.Do(req) + if err != nil { + t.Fatal(err) + } + defer resp.Body.Close() + if resp.Header.Get(XFromCache) != "1" { + t.Fatalf(`XFromCache header isn't "1": %v`, resp.Header.Get(XFromCache)) + } + } + req.Header.Set("Accept", "text/html") + { + resp, err := s.client.Do(req) + if err != nil { + t.Fatal(err) + } + defer resp.Body.Close() + if resp.Header.Get(XFromCache) != "" { + t.Fatal("XFromCache header isn't blank") + } + } + req.Header.Set("Accept", "") + { + resp, err := s.client.Do(req) + if err != nil { + t.Fatal(err) + } + defer resp.Body.Close() + if resp.Header.Get(XFromCache) != "" { + t.Fatal("XFromCache header isn't blank") + } + } +} + +func TestGetWithDoubleVary(t *testing.T) { + resetTest() + req, err := http.NewRequest("GET", s.server.URL+"/doublevary", nil) + if err != nil { + t.Fatal(err) + } + req.Header.Set("Accept", "text/plain") + req.Header.Set("Accept-Language", "da, en-gb;q=0.8, en;q=0.7") + { + resp, err := s.client.Do(req) + if err != nil { + t.Fatal(err) + } + defer resp.Body.Close() + if resp.Header.Get("Vary") == "" { + t.Fatalf(`Vary header is blank`) + } + _, err = ioutil.ReadAll(resp.Body) + if err != nil { + t.Fatal(err) + } + } + { + resp, err := s.client.Do(req) + if err != nil { + t.Fatal(err) + } + defer resp.Body.Close() + if resp.Header.Get(XFromCache) != "1" { + t.Fatalf(`XFromCache header isn't "1": %v`, resp.Header.Get(XFromCache)) + } + } + req.Header.Set("Accept-Language", "") + { + resp, err := s.client.Do(req) + if err != nil { + t.Fatal(err) + } + defer resp.Body.Close() + if resp.Header.Get(XFromCache) != "" { + t.Fatal("XFromCache header isn't blank") + } + } + req.Header.Set("Accept-Language", "da") + { + resp, err := s.client.Do(req) + if err != nil { + t.Fatal(err) + } + defer resp.Body.Close() + if resp.Header.Get(XFromCache) != "" { + t.Fatal("XFromCache header isn't blank") + } + } +} + +func TestGetWith2VaryHeaders(t *testing.T) { + resetTest() + // Tests that multiple Vary headers' comma-separated lists are + // merged. See https://github.com/gregjones/httpcache/issues/27. + const ( + accept = "text/plain" + acceptLanguage = "da, en-gb;q=0.8, en;q=0.7" + ) + req, err := http.NewRequest("GET", s.server.URL+"/2varyheaders", nil) + if err != nil { + t.Fatal(err) + } + req.Header.Set("Accept", accept) + req.Header.Set("Accept-Language", acceptLanguage) + { + resp, err := s.client.Do(req) + if err != nil { + t.Fatal(err) + } + defer resp.Body.Close() + if resp.Header.Get("Vary") == "" { + t.Fatalf(`Vary header is blank`) + } + _, err = ioutil.ReadAll(resp.Body) + if err != nil { + t.Fatal(err) + } + } + { + resp, err := s.client.Do(req) + if err != nil { + t.Fatal(err) + } + defer resp.Body.Close() + if resp.Header.Get(XFromCache) != "1" { + t.Fatalf(`XFromCache header isn't "1": %v`, resp.Header.Get(XFromCache)) + } + } + req.Header.Set("Accept-Language", "") + { + resp, err := s.client.Do(req) + if err != nil { + t.Fatal(err) + } + defer resp.Body.Close() + if resp.Header.Get(XFromCache) != "" { + t.Fatal("XFromCache header isn't blank") + } + } + req.Header.Set("Accept-Language", "da") + { + resp, err := s.client.Do(req) + if err != nil { + t.Fatal(err) + } + defer resp.Body.Close() + if resp.Header.Get(XFromCache) != "" { + t.Fatal("XFromCache header isn't blank") + } + } + req.Header.Set("Accept-Language", acceptLanguage) + req.Header.Set("Accept", "") + { + resp, err := s.client.Do(req) + if err != nil { + t.Fatal(err) + } + defer resp.Body.Close() + if resp.Header.Get(XFromCache) != "" { + t.Fatal("XFromCache header isn't blank") + } + } + req.Header.Set("Accept", "image/png") + { + resp, err := s.client.Do(req) + if err != nil { + t.Fatal(err) + } + defer resp.Body.Close() + if resp.Header.Get(XFromCache) != "" { + t.Fatal("XFromCache header isn't blank") + } + _, err = ioutil.ReadAll(resp.Body) + if err != nil { + t.Fatal(err) + } + } + { + resp, err := s.client.Do(req) + if err != nil { + t.Fatal(err) + } + defer resp.Body.Close() + if resp.Header.Get(XFromCache) != "1" { + t.Fatalf(`XFromCache header isn't "1": %v`, resp.Header.Get(XFromCache)) + } + } +} + +func TestGetVaryUnused(t *testing.T) { + resetTest() + req, err := http.NewRequest("GET", s.server.URL+"/varyunused", nil) + if err != nil { + t.Fatal(err) + } + req.Header.Set("Accept", "text/plain") + { + resp, err := s.client.Do(req) + if err != nil { + t.Fatal(err) + } + defer resp.Body.Close() + if resp.Header.Get("Vary") == "" { + t.Fatalf(`Vary header is blank`) + } + _, err = ioutil.ReadAll(resp.Body) + if err != nil { + t.Fatal(err) + } + } + { + resp, err := s.client.Do(req) + if err != nil { + t.Fatal(err) + } + defer resp.Body.Close() + if resp.Header.Get(XFromCache) != "1" { + t.Fatalf(`XFromCache header isn't "1": %v`, resp.Header.Get(XFromCache)) + } + } +} + +func TestUpdateFields(t *testing.T) { + resetTest() + req, err := http.NewRequest("GET", s.server.URL+"/updatefields", nil) + if err != nil { + t.Fatal(err) + } + var counter, counter2 string + { + resp, err := s.client.Do(req) + if err != nil { + t.Fatal(err) + } + defer resp.Body.Close() + counter = resp.Header.Get("x-counter") + _, err = ioutil.ReadAll(resp.Body) + if err != nil { + t.Fatal(err) + } + } + { + resp, err := s.client.Do(req) + if err != nil { + t.Fatal(err) + } + defer resp.Body.Close() + if resp.Header.Get(XFromCache) != "1" { + t.Fatalf(`XFromCache header isn't "1": %v`, resp.Header.Get(XFromCache)) + } + counter2 = resp.Header.Get("x-counter") + } + if counter == counter2 { + t.Fatalf(`both "x-counter" values are equal: %v %v`, counter, counter2) + } +} + +// This tests the fix for https://github.com/gregjones/httpcache/issues/74. +// Previously, after validating a cached response, its StatusCode +// was incorrectly being replaced. +func TestCachedErrorsKeepStatus(t *testing.T) { + resetTest() + req, err := http.NewRequest("GET", s.server.URL+"/cachederror", nil) + if err != nil { + t.Fatal(err) + } + { + resp, err := s.client.Do(req) + if err != nil { + t.Fatal(err) + } + defer resp.Body.Close() + io.Copy(ioutil.Discard, resp.Body) + } + { + resp, err := s.client.Do(req) + if err != nil { + t.Fatal(err) + } + defer resp.Body.Close() + if resp.StatusCode != http.StatusNotFound { + t.Fatalf("Status code isn't 404: %d", resp.StatusCode) + } + } +} + +func TestParseCacheControl(t *testing.T) { + resetTest() + h := http.Header{} + for range parseCacheControl(h) { + t.Fatal("cacheControl should be empty") + } + + h.Set("cache-control", "no-cache") + { + cc := parseCacheControl(h) + if _, ok := cc["foo"]; ok { + t.Error(`Value "foo" shouldn't exist`) + } + noCache, ok := cc["no-cache"] + if !ok { + t.Fatalf(`"no-cache" value isn't set`) + } + if noCache != "" { + t.Fatalf(`"no-cache" value isn't blank: %v`, noCache) + } + } + h.Set("cache-control", "no-cache, max-age=3600") + { + cc := parseCacheControl(h) + noCache, ok := cc["no-cache"] + if !ok { + t.Fatalf(`"no-cache" value isn't set`) + } + if noCache != "" { + t.Fatalf(`"no-cache" value isn't blank: %v`, noCache) + } + if cc["max-age"] != "3600" { + t.Fatalf(`"max-age" value isn't "3600": %v`, cc["max-age"]) + } + } +} + +func TestNoCacheRequestExpiration(t *testing.T) { + resetTest() + respHeaders := http.Header{} + respHeaders.Set("Cache-Control", "max-age=7200") + + reqHeaders := http.Header{} + reqHeaders.Set("Cache-Control", "no-cache") + if getFreshness(respHeaders, reqHeaders) != transparent { + t.Fatal("freshness isn't transparent") + } +} + +func TestNoCacheResponseExpiration(t *testing.T) { + resetTest() + respHeaders := http.Header{} + respHeaders.Set("Cache-Control", "no-cache") + respHeaders.Set("Expires", "Wed, 19 Apr 3000 11:43:00 GMT") + + reqHeaders := http.Header{} + if getFreshness(respHeaders, reqHeaders) != stale { + t.Fatal("freshness isn't stale") + } +} + +func TestReqMustRevalidate(t *testing.T) { + resetTest() + // not paying attention to request setting max-stale means never returning stale + // responses, so always acting as if must-revalidate is set + respHeaders := http.Header{} + + reqHeaders := http.Header{} + reqHeaders.Set("Cache-Control", "must-revalidate") + if getFreshness(respHeaders, reqHeaders) != stale { + t.Fatal("freshness isn't stale") + } +} + +func TestRespMustRevalidate(t *testing.T) { + resetTest() + respHeaders := http.Header{} + respHeaders.Set("Cache-Control", "must-revalidate") + + reqHeaders := http.Header{} + if getFreshness(respHeaders, reqHeaders) != stale { + t.Fatal("freshness isn't stale") + } +} + +func TestFreshExpiration(t *testing.T) { + resetTest() + now := time.Now() + respHeaders := http.Header{} + respHeaders.Set("date", now.Format(time.RFC1123)) + respHeaders.Set("expires", now.Add(time.Duration(2)*time.Second).Format(time.RFC1123)) + + reqHeaders := http.Header{} + if getFreshness(respHeaders, reqHeaders) != fresh { + t.Fatal("freshness isn't fresh") + } + + clock = &fakeClock{elapsed: 3 * time.Second} + if getFreshness(respHeaders, reqHeaders) != stale { + t.Fatal("freshness isn't stale") + } +} + +func TestMaxAge(t *testing.T) { + resetTest() + now := time.Now() + respHeaders := http.Header{} + respHeaders.Set("date", now.Format(time.RFC1123)) + respHeaders.Set("cache-control", "max-age=2") + + reqHeaders := http.Header{} + if getFreshness(respHeaders, reqHeaders) != fresh { + t.Fatal("freshness isn't fresh") + } + + clock = &fakeClock{elapsed: 3 * time.Second} + if getFreshness(respHeaders, reqHeaders) != stale { + t.Fatal("freshness isn't stale") + } +} + +func TestMaxAgeZero(t *testing.T) { + resetTest() + now := time.Now() + respHeaders := http.Header{} + respHeaders.Set("date", now.Format(time.RFC1123)) + respHeaders.Set("cache-control", "max-age=0") + + reqHeaders := http.Header{} + if getFreshness(respHeaders, reqHeaders) != stale { + t.Fatal("freshness isn't stale") + } +} + +func TestBothMaxAge(t *testing.T) { + resetTest() + now := time.Now() + respHeaders := http.Header{} + respHeaders.Set("date", now.Format(time.RFC1123)) + respHeaders.Set("cache-control", "max-age=2") + + reqHeaders := http.Header{} + reqHeaders.Set("cache-control", "max-age=0") + if getFreshness(respHeaders, reqHeaders) != stale { + t.Fatal("freshness isn't stale") + } +} + +func TestMinFreshWithExpires(t *testing.T) { + resetTest() + now := time.Now() + respHeaders := http.Header{} + respHeaders.Set("date", now.Format(time.RFC1123)) + respHeaders.Set("expires", now.Add(time.Duration(2)*time.Second).Format(time.RFC1123)) + + reqHeaders := http.Header{} + reqHeaders.Set("cache-control", "min-fresh=1") + if getFreshness(respHeaders, reqHeaders) != fresh { + t.Fatal("freshness isn't fresh") + } + + reqHeaders = http.Header{} + reqHeaders.Set("cache-control", "min-fresh=2") + if getFreshness(respHeaders, reqHeaders) != stale { + t.Fatal("freshness isn't stale") + } +} + +func TestEmptyMaxStale(t *testing.T) { + resetTest() + now := time.Now() + respHeaders := http.Header{} + respHeaders.Set("date", now.Format(time.RFC1123)) + respHeaders.Set("cache-control", "max-age=20") + + reqHeaders := http.Header{} + reqHeaders.Set("cache-control", "max-stale") + clock = &fakeClock{elapsed: 10 * time.Second} + if getFreshness(respHeaders, reqHeaders) != fresh { + t.Fatal("freshness isn't fresh") + } + + clock = &fakeClock{elapsed: 60 * time.Second} + if getFreshness(respHeaders, reqHeaders) != fresh { + t.Fatal("freshness isn't fresh") + } +} + +func TestMaxStaleValue(t *testing.T) { + resetTest() + now := time.Now() + respHeaders := http.Header{} + respHeaders.Set("date", now.Format(time.RFC1123)) + respHeaders.Set("cache-control", "max-age=10") + + reqHeaders := http.Header{} + reqHeaders.Set("cache-control", "max-stale=20") + clock = &fakeClock{elapsed: 5 * time.Second} + if getFreshness(respHeaders, reqHeaders) != fresh { + t.Fatal("freshness isn't fresh") + } + + clock = &fakeClock{elapsed: 15 * time.Second} + if getFreshness(respHeaders, reqHeaders) != fresh { + t.Fatal("freshness isn't fresh") + } + + clock = &fakeClock{elapsed: 30 * time.Second} + if getFreshness(respHeaders, reqHeaders) != stale { + t.Fatal("freshness isn't stale") + } +} + +func containsHeader(headers []string, header string) bool { + for _, v := range headers { + if http.CanonicalHeaderKey(v) == http.CanonicalHeaderKey(header) { + return true + } + } + return false +} + +func TestGetEndToEndHeaders(t *testing.T) { + resetTest() + var ( + headers http.Header + end2end []string + ) + + headers = http.Header{} + headers.Set("content-type", "text/html") + headers.Set("te", "deflate") + + end2end = getEndToEndHeaders(headers) + if !containsHeader(end2end, "content-type") { + t.Fatal(`doesn't contain "content-type" header`) + } + if containsHeader(end2end, "te") { + t.Fatal(`doesn't contain "te" header`) + } + + headers = http.Header{} + headers.Set("connection", "content-type") + headers.Set("content-type", "text/csv") + headers.Set("te", "deflate") + end2end = getEndToEndHeaders(headers) + if containsHeader(end2end, "connection") { + t.Fatal(`doesn't contain "connection" header`) + } + if containsHeader(end2end, "content-type") { + t.Fatal(`doesn't contain "content-type" header`) + } + if containsHeader(end2end, "te") { + t.Fatal(`doesn't contain "te" header`) + } + + headers = http.Header{} + end2end = getEndToEndHeaders(headers) + if len(end2end) != 0 { + t.Fatal(`non-zero end2end headers`) + } + + headers = http.Header{} + headers.Set("connection", "content-type") + end2end = getEndToEndHeaders(headers) + if len(end2end) != 0 { + t.Fatal(`non-zero end2end headers`) + } +} + +type transportMock struct { + response *http.Response + err error +} + +func (t transportMock) RoundTrip(req *http.Request) (resp *http.Response, err error) { + return t.response, t.err +} + +func TestStaleIfErrorRequest(t *testing.T) { + resetTest() + now := time.Now() + tmock := transportMock{ + response: &http.Response{ + Status: http.StatusText(http.StatusOK), + StatusCode: http.StatusOK, + Header: http.Header{ + "Date": []string{now.Format(time.RFC1123)}, + "Cache-Control": []string{"no-cache"}, + }, + Body: ioutil.NopCloser(bytes.NewBuffer([]byte("some data"))), + }, + err: nil, + } + tp := NewMemoryCacheTransport() + tp.Transport = &tmock + + // First time, response is cached on success + r, _ := http.NewRequest("GET", "http://somewhere.com/", nil) + r.Header.Set("Cache-Control", "stale-if-error") + resp, err := tp.RoundTrip(r) + if err != nil { + t.Fatal(err) + } + if resp == nil { + t.Fatal("resp is nil") + } + _, err = ioutil.ReadAll(resp.Body) + if err != nil { + t.Fatal(err) + } + + // On failure, response is returned from the cache + tmock.response = nil + tmock.err = errors.New("some error") + resp, err = tp.RoundTrip(r) + if err != nil { + t.Fatal(err) + } + if resp == nil { + t.Fatal("resp is nil") + } +} + +func TestStaleIfErrorRequestLifetime(t *testing.T) { + resetTest() + now := time.Now() + tmock := transportMock{ + response: &http.Response{ + Status: http.StatusText(http.StatusOK), + StatusCode: http.StatusOK, + Header: http.Header{ + "Date": []string{now.Format(time.RFC1123)}, + "Cache-Control": []string{"no-cache"}, + }, + Body: ioutil.NopCloser(bytes.NewBuffer([]byte("some data"))), + }, + err: nil, + } + tp := NewMemoryCacheTransport() + tp.Transport = &tmock + + // First time, response is cached on success + r, _ := http.NewRequest("GET", "http://somewhere.com/", nil) + r.Header.Set("Cache-Control", "stale-if-error=100") + resp, err := tp.RoundTrip(r) + if err != nil { + t.Fatal(err) + } + if resp == nil { + t.Fatal("resp is nil") + } + _, err = ioutil.ReadAll(resp.Body) + if err != nil { + t.Fatal(err) + } + + // On failure, response is returned from the cache + tmock.response = nil + tmock.err = errors.New("some error") + resp, err = tp.RoundTrip(r) + if err != nil { + t.Fatal(err) + } + if resp == nil { + t.Fatal("resp is nil") + } + + // Same for http errors + tmock.response = &http.Response{StatusCode: http.StatusInternalServerError} + tmock.err = nil + resp, err = tp.RoundTrip(r) + if err != nil { + t.Fatal(err) + } + if resp == nil { + t.Fatal("resp is nil") + } + + // If failure last more than max stale, error is returned + clock = &fakeClock{elapsed: 200 * time.Second} + _, err = tp.RoundTrip(r) + if err != tmock.err { + t.Fatalf("got err %v, want %v", err, tmock.err) + } +} + +func TestStaleIfErrorResponse(t *testing.T) { + resetTest() + now := time.Now() + tmock := transportMock{ + response: &http.Response{ + Status: http.StatusText(http.StatusOK), + StatusCode: http.StatusOK, + Header: http.Header{ + "Date": []string{now.Format(time.RFC1123)}, + "Cache-Control": []string{"no-cache, stale-if-error"}, + }, + Body: ioutil.NopCloser(bytes.NewBuffer([]byte("some data"))), + }, + err: nil, + } + tp := NewMemoryCacheTransport() + tp.Transport = &tmock + + // First time, response is cached on success + r, _ := http.NewRequest("GET", "http://somewhere.com/", nil) + resp, err := tp.RoundTrip(r) + if err != nil { + t.Fatal(err) + } + if resp == nil { + t.Fatal("resp is nil") + } + _, err = ioutil.ReadAll(resp.Body) + if err != nil { + t.Fatal(err) + } + + // On failure, response is returned from the cache + tmock.response = nil + tmock.err = errors.New("some error") + resp, err = tp.RoundTrip(r) + if err != nil { + t.Fatal(err) + } + if resp == nil { + t.Fatal("resp is nil") + } +} + +func TestStaleIfErrorResponseLifetime(t *testing.T) { + resetTest() + now := time.Now() + tmock := transportMock{ + response: &http.Response{ + Status: http.StatusText(http.StatusOK), + StatusCode: http.StatusOK, + Header: http.Header{ + "Date": []string{now.Format(time.RFC1123)}, + "Cache-Control": []string{"no-cache, stale-if-error=100"}, + }, + Body: ioutil.NopCloser(bytes.NewBuffer([]byte("some data"))), + }, + err: nil, + } + tp := NewMemoryCacheTransport() + tp.Transport = &tmock + + // First time, response is cached on success + r, _ := http.NewRequest("GET", "http://somewhere.com/", nil) + resp, err := tp.RoundTrip(r) + if err != nil { + t.Fatal(err) + } + if resp == nil { + t.Fatal("resp is nil") + } + _, err = ioutil.ReadAll(resp.Body) + if err != nil { + t.Fatal(err) + } + + // On failure, response is returned from the cache + tmock.response = nil + tmock.err = errors.New("some error") + resp, err = tp.RoundTrip(r) + if err != nil { + t.Fatal(err) + } + if resp == nil { + t.Fatal("resp is nil") + } + + // If failure last more than max stale, error is returned + clock = &fakeClock{elapsed: 200 * time.Second} + _, err = tp.RoundTrip(r) + if err != tmock.err { + t.Fatalf("got err %v, want %v", err, tmock.err) + } +} + +// This tests the fix for https://github.com/gregjones/httpcache/issues/74. +// Previously, after a stale response was used after encountering an error, +// its StatusCode was being incorrectly replaced. +func TestStaleIfErrorKeepsStatus(t *testing.T) { + resetTest() + now := time.Now() + tmock := transportMock{ + response: &http.Response{ + Status: http.StatusText(http.StatusNotFound), + StatusCode: http.StatusNotFound, + Header: http.Header{ + "Date": []string{now.Format(time.RFC1123)}, + "Cache-Control": []string{"no-cache"}, + }, + Body: ioutil.NopCloser(bytes.NewBuffer([]byte("some data"))), + }, + err: nil, + } + tp := NewMemoryCacheTransport() + tp.Transport = &tmock + + // First time, response is cached on success + r, _ := http.NewRequest("GET", "http://somewhere.com/", nil) + r.Header.Set("Cache-Control", "stale-if-error") + resp, err := tp.RoundTrip(r) + if err != nil { + t.Fatal(err) + } + if resp == nil { + t.Fatal("resp is nil") + } + _, err = ioutil.ReadAll(resp.Body) + if err != nil { + t.Fatal(err) + } + + // On failure, response is returned from the cache + tmock.response = nil + tmock.err = errors.New("some error") + resp, err = tp.RoundTrip(r) + if err != nil { + t.Fatal(err) + } + if resp == nil { + t.Fatal("resp is nil") + } + if resp.StatusCode != http.StatusNotFound { + t.Fatalf("Status wasn't 404: %d", resp.StatusCode) + } +} + +// Test that http.Client.Timeout is respected when cache transport is used. +// That is so as long as request cancellation is propagated correctly. +// In the past, that required CancelRequest to be implemented correctly, +// but modern http.Client uses Request.Cancel (or request context) instead, +// so we don't have to do anything. +func TestClientTimeout(t *testing.T) { + if testing.Short() { + t.Skip("skipping timeout test in short mode") // Because it takes at least 3 seconds to run. + } + resetTest() + client := &http.Client{ + Transport: NewMemoryCacheTransport(), + Timeout: time.Second, + } + started := time.Now() + resp, err := client.Get(s.server.URL + "/3seconds") + taken := time.Since(started) + if err == nil { + t.Error("got nil error, want timeout error") + } + if resp != nil { + t.Error("got non-nil resp, want nil resp") + } + if taken >= 2*time.Second { + t.Error("client.Do took 2+ seconds, want < 2 seconds") + } +} diff --git a/vendor/github.com/gregjones/httpcache/leveldbcache/leveldbcache.go b/vendor/github.com/gregjones/httpcache/leveldbcache/leveldbcache.go new file mode 100644 index 000000000..9bcb7e277 --- /dev/null +++ b/vendor/github.com/gregjones/httpcache/leveldbcache/leveldbcache.go @@ -0,0 +1,51 @@ +// Package leveldbcache provides an implementation of httpcache.Cache that +// uses github.com/syndtr/goleveldb/leveldb +package leveldbcache + +import ( + "github.com/syndtr/goleveldb/leveldb" +) + +// Cache is an implementation of httpcache.Cache with leveldb storage +type Cache struct { + db *leveldb.DB +} + +// Get returns the response corresponding to key if present +func (c *Cache) Get(key string) (resp []byte, ok bool) { + var err error + resp, err = c.db.Get([]byte(key), nil) + if err != nil { + return []byte{}, false + } + return resp, true +} + +// Set saves a response to the cache as key +func (c *Cache) Set(key string, resp []byte) { + c.db.Put([]byte(key), resp, nil) +} + +// Delete removes the response with key from the cache +func (c *Cache) Delete(key string) { + c.db.Delete([]byte(key), nil) +} + +// New returns a new Cache that will store leveldb in path +func New(path string) (*Cache, error) { + cache := &Cache{} + + var err error + cache.db, err = leveldb.OpenFile(path, nil) + + if err != nil { + return nil, err + } + return cache, nil +} + +// NewWithDB returns a new Cache using the provided leveldb as underlying +// storage. +func NewWithDB(db *leveldb.DB) *Cache { + return &Cache{db} +} diff --git a/vendor/github.com/gregjones/httpcache/leveldbcache/leveldbcache_test.go b/vendor/github.com/gregjones/httpcache/leveldbcache/leveldbcache_test.go new file mode 100644 index 000000000..b885c0169 --- /dev/null +++ b/vendor/github.com/gregjones/httpcache/leveldbcache/leveldbcache_test.go @@ -0,0 +1,46 @@ +package leveldbcache + +import ( + "bytes" + "io/ioutil" + "os" + "path/filepath" + "testing" +) + +func TestDiskCache(t *testing.T) { + tempDir, err := ioutil.TempDir("", "httpcache") + if err != nil { + t.Fatalf("TempDir: %v", err) + } + defer os.RemoveAll(tempDir) + + cache, err := New(filepath.Join(tempDir, "db")) + if err != nil { + t.Fatalf("New leveldb,: %v", err) + } + + key := "testKey" + _, ok := cache.Get(key) + if ok { + t.Fatal("retrieved key before adding it") + } + + val := []byte("some bytes") + cache.Set(key, val) + + retVal, ok := cache.Get(key) + if !ok { + t.Fatal("could not retrieve an element we just added") + } + if !bytes.Equal(retVal, val) { + t.Fatal("retrieved a different value than what we put in") + } + + cache.Delete(key) + + _, ok = cache.Get(key) + if ok { + t.Fatal("deleted key still present") + } +} diff --git a/vendor/github.com/gregjones/httpcache/memcache/appengine.go b/vendor/github.com/gregjones/httpcache/memcache/appengine.go new file mode 100644 index 000000000..e68d9bc09 --- /dev/null +++ b/vendor/github.com/gregjones/httpcache/memcache/appengine.go @@ -0,0 +1,61 @@ +// +build appengine + +// Package memcache provides an implementation of httpcache.Cache that uses App +// Engine's memcache package to store cached responses. +// +// When not built for Google App Engine, this package will provide an +// implementation that connects to a specified memcached server. See the +// memcache.go file in this package for details. +package memcache + +import ( + "appengine" + "appengine/memcache" +) + +// Cache is an implementation of httpcache.Cache that caches responses in App +// Engine's memcache. +type Cache struct { + appengine.Context +} + +// cacheKey modifies an httpcache key for use in memcache. Specifically, it +// prefixes keys to avoid collision with other data stored in memcache. +func cacheKey(key string) string { + return "httpcache:" + key +} + +// Get returns the response corresponding to key if present. +func (c *Cache) Get(key string) (resp []byte, ok bool) { + item, err := memcache.Get(c.Context, cacheKey(key)) + if err != nil { + if err != memcache.ErrCacheMiss { + c.Context.Errorf("error getting cached response: %v", err) + } + return nil, false + } + return item.Value, true +} + +// Set saves a response to the cache as key. +func (c *Cache) Set(key string, resp []byte) { + item := &memcache.Item{ + Key: cacheKey(key), + Value: resp, + } + if err := memcache.Set(c.Context, item); err != nil { + c.Context.Errorf("error caching response: %v", err) + } +} + +// Delete removes the response with key from the cache. +func (c *Cache) Delete(key string) { + if err := memcache.Delete(c.Context, cacheKey(key)); err != nil { + c.Context.Errorf("error deleting cached response: %v", err) + } +} + +// New returns a new Cache for the given context. +func New(ctx appengine.Context) *Cache { + return &Cache{ctx} +} diff --git a/vendor/github.com/gregjones/httpcache/memcache/appengine_test.go b/vendor/github.com/gregjones/httpcache/memcache/appengine_test.go new file mode 100644 index 000000000..818b2776e --- /dev/null +++ b/vendor/github.com/gregjones/httpcache/memcache/appengine_test.go @@ -0,0 +1,44 @@ +// +build appengine + +package memcache + +import ( + "bytes" + "testing" + + "appengine/aetest" +) + +func TestAppEngine(t *testing.T) { + ctx, err := aetest.NewContext(nil) + if err != nil { + t.Fatal(err) + } + defer ctx.Close() + + cache := New(ctx) + + key := "testKey" + _, ok := cache.Get(key) + if ok { + t.Fatal("retrieved key before adding it") + } + + val := []byte("some bytes") + cache.Set(key, val) + + retVal, ok := cache.Get(key) + if !ok { + t.Fatal("could not retrieve an element we just added") + } + if !bytes.Equal(retVal, val) { + t.Fatal("retrieved a different value than what we put in") + } + + cache.Delete(key) + + _, ok = cache.Get(key) + if ok { + t.Fatal("deleted key still present") + } +} diff --git a/vendor/github.com/gregjones/httpcache/memcache/memcache.go b/vendor/github.com/gregjones/httpcache/memcache/memcache.go new file mode 100644 index 000000000..462f0e541 --- /dev/null +++ b/vendor/github.com/gregjones/httpcache/memcache/memcache.go @@ -0,0 +1,60 @@ +// +build !appengine + +// Package memcache provides an implementation of httpcache.Cache that uses +// gomemcache to store cached responses. +// +// When built for Google App Engine, this package will provide an +// implementation that uses App Engine's memcache service. See the +// appengine.go file in this package for details. +package memcache + +import ( + "github.com/bradfitz/gomemcache/memcache" +) + +// Cache is an implementation of httpcache.Cache that caches responses in a +// memcache server. +type Cache struct { + *memcache.Client +} + +// cacheKey modifies an httpcache key for use in memcache. Specifically, it +// prefixes keys to avoid collision with other data stored in memcache. +func cacheKey(key string) string { + return "httpcache:" + key +} + +// Get returns the response corresponding to key if present. +func (c *Cache) Get(key string) (resp []byte, ok bool) { + item, err := c.Client.Get(cacheKey(key)) + if err != nil { + return nil, false + } + return item.Value, true +} + +// Set saves a response to the cache as key. +func (c *Cache) Set(key string, resp []byte) { + item := &memcache.Item{ + Key: cacheKey(key), + Value: resp, + } + c.Client.Set(item) +} + +// Delete removes the response with key from the cache. +func (c *Cache) Delete(key string) { + c.Client.Delete(cacheKey(key)) +} + +// New returns a new Cache using the provided memcache server(s) with equal +// weight. If a server is listed multiple times, it gets a proportional amount +// of weight. +func New(server ...string) *Cache { + return NewWithClient(memcache.New(server...)) +} + +// NewWithClient returns a new Cache with the given memcache client. +func NewWithClient(client *memcache.Client) *Cache { + return &Cache{client} +} diff --git a/vendor/github.com/gregjones/httpcache/memcache/memcache_test.go b/vendor/github.com/gregjones/httpcache/memcache/memcache_test.go new file mode 100644 index 000000000..4dcc547c6 --- /dev/null +++ b/vendor/github.com/gregjones/httpcache/memcache/memcache_test.go @@ -0,0 +1,47 @@ +// +build !appengine + +package memcache + +import ( + "bytes" + "net" + "testing" +) + +const testServer = "localhost:11211" + +func TestMemCache(t *testing.T) { + conn, err := net.Dial("tcp", testServer) + if err != nil { + // TODO: rather than skip the test, fall back to a faked memcached server + t.Skipf("skipping test; no server running at %s", testServer) + } + conn.Write([]byte("flush_all\r\n")) // flush memcache + conn.Close() + + cache := New(testServer) + + key := "testKey" + _, ok := cache.Get(key) + if ok { + t.Fatal("retrieved key before adding it") + } + + val := []byte("some bytes") + cache.Set(key, val) + + retVal, ok := cache.Get(key) + if !ok { + t.Fatal("could not retrieve an element we just added") + } + if !bytes.Equal(retVal, val) { + t.Fatal("retrieved a different value than what we put in") + } + + cache.Delete(key) + + _, ok = cache.Get(key) + if ok { + t.Fatal("deleted key still present") + } +} diff --git a/vendor/github.com/gregjones/httpcache/redis/redis.go b/vendor/github.com/gregjones/httpcache/redis/redis.go new file mode 100644 index 000000000..3d69c6c7b --- /dev/null +++ b/vendor/github.com/gregjones/httpcache/redis/redis.go @@ -0,0 +1,43 @@ +// Package redis provides a redis interface for http caching. +package redis + +import ( + "github.com/gomodule/redigo/redis" + "github.com/gregjones/httpcache" +) + +// cache is an implementation of httpcache.Cache that caches responses in a +// redis server. +type cache struct { + redis.Conn +} + +// cacheKey modifies an httpcache key for use in redis. Specifically, it +// prefixes keys to avoid collision with other data stored in redis. +func cacheKey(key string) string { + return "rediscache:" + key +} + +// Get returns the response corresponding to key if present. +func (c cache) Get(key string) (resp []byte, ok bool) { + item, err := redis.Bytes(c.Do("GET", cacheKey(key))) + if err != nil { + return nil, false + } + return item, true +} + +// Set saves a response to the cache as key. +func (c cache) Set(key string, resp []byte) { + c.Do("SET", cacheKey(key), resp) +} + +// Delete removes the response with key from the cache. +func (c cache) Delete(key string) { + c.Do("DEL", cacheKey(key)) +} + +// NewWithClient returns a new Cache with the given redis connection. +func NewWithClient(client redis.Conn) httpcache.Cache { + return cache{client} +} diff --git a/vendor/github.com/gregjones/httpcache/redis/redis_test.go b/vendor/github.com/gregjones/httpcache/redis/redis_test.go new file mode 100644 index 000000000..56f7dd520 --- /dev/null +++ b/vendor/github.com/gregjones/httpcache/redis/redis_test.go @@ -0,0 +1,43 @@ +package redis + +import ( + "bytes" + "testing" + + "github.com/gomodule/redigo/redis" +) + +func TestRedisCache(t *testing.T) { + conn, err := redis.Dial("tcp", "localhost:6379") + if err != nil { + // TODO: rather than skip the test, fall back to a faked redis server + t.Skipf("skipping test; no server running at localhost:6379") + } + conn.Do("FLUSHALL") + + cache := NewWithClient(conn) + + key := "testKey" + _, ok := cache.Get(key) + if ok { + t.Fatal("retrieved key before adding it") + } + + val := []byte("some bytes") + cache.Set(key, val) + + retVal, ok := cache.Get(key) + if !ok { + t.Fatal("could not retrieve an element we just added") + } + if !bytes.Equal(retVal, val) { + t.Fatal("retrieved a different value than what we put in") + } + + cache.Delete(key) + + _, ok = cache.Get(key) + if ok { + t.Fatal("deleted key still present") + } +} diff --git a/vendor/github.com/howeyc/gopass/.travis.yml b/vendor/github.com/howeyc/gopass/.travis.yml deleted file mode 100644 index cc5d509fd..000000000 --- a/vendor/github.com/howeyc/gopass/.travis.yml +++ /dev/null @@ -1,11 +0,0 @@ -language: go - -os: - - linux - - osx - -go: - - 1.3 - - 1.4 - - 1.5 - - tip diff --git a/vendor/github.com/howeyc/gopass/LICENSE.txt b/vendor/github.com/howeyc/gopass/LICENSE.txt deleted file mode 100644 index 14f74708a..000000000 --- a/vendor/github.com/howeyc/gopass/LICENSE.txt +++ /dev/null @@ -1,15 +0,0 @@ -ISC License - -Copyright (c) 2012 Chris Howey - -Permission to use, copy, modify, and distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/vendor/github.com/howeyc/gopass/OPENSOLARIS.LICENSE b/vendor/github.com/howeyc/gopass/OPENSOLARIS.LICENSE deleted file mode 100644 index da23621dc..000000000 --- a/vendor/github.com/howeyc/gopass/OPENSOLARIS.LICENSE +++ /dev/null @@ -1,384 +0,0 @@ -Unless otherwise noted, all files in this distribution are released -under the Common Development and Distribution License (CDDL). -Exceptions are noted within the associated source files. - --------------------------------------------------------------------- - - -COMMON DEVELOPMENT AND DISTRIBUTION LICENSE Version 1.0 - -1. Definitions. - - 1.1. "Contributor" means each individual or entity that creates - or contributes to the creation of Modifications. - - 1.2. "Contributor Version" means the combination of the Original - Software, prior Modifications used by a Contributor (if any), - and the Modifications made by that particular Contributor. - - 1.3. "Covered Software" means (a) the Original Software, or (b) - Modifications, or (c) the combination of files containing - Original Software with files containing Modifications, in - each case including portions thereof. - - 1.4. "Executable" means the Covered Software in any form other - than Source Code. - - 1.5. "Initial Developer" means the individual or entity that first - makes Original Software available under this License. - - 1.6. "Larger Work" means a work which combines Covered Software or - portions thereof with code not governed by the terms of this - License. - - 1.7. "License" means this document. - - 1.8. "Licensable" means having the right to grant, to the maximum - extent possible, whether at the time of the initial grant or - subsequently acquired, any and all of the rights conveyed - herein. - - 1.9. "Modifications" means the Source Code and Executable form of - any of the following: - - A. Any file that results from an addition to, deletion from or - modification of the contents of a file containing Original - Software or previous Modifications; - - B. Any new file that contains any part of the Original - Software or previous Modifications; or - - C. Any new file that is contributed or otherwise made - available under the terms of this License. - - 1.10. "Original Software" means the Source Code and Executable - form of computer software code that is originally released - under this License. - - 1.11. "Patent Claims" means any patent claim(s), now owned or - hereafter acquired, including without limitation, method, - process, and apparatus claims, in any patent Licensable by - grantor. - - 1.12. "Source Code" means (a) the common form of computer software - code in which modifications are made and (b) associated - documentation included in or with such code. - - 1.13. "You" (or "Your") means an individual or a legal entity - exercising rights under, and complying with all of the terms - of, this License. For legal entities, "You" includes any - entity which controls, is controlled by, or is under common - control with You. For purposes of this definition, - "control" means (a) the power, direct or indirect, to cause - the direction or management of such entity, whether by - contract or otherwise, or (b) ownership of more than fifty - percent (50%) of the outstanding shares or beneficial - ownership of such entity. - -2. License Grants. - - 2.1. The Initial Developer Grant. - - Conditioned upon Your compliance with Section 3.1 below and - subject to third party intellectual property claims, the Initial - Developer hereby grants You a world-wide, royalty-free, - non-exclusive license: - - (a) under intellectual property rights (other than patent or - trademark) Licensable by Initial Developer, to use, - reproduce, modify, display, perform, sublicense and - distribute the Original Software (or portions thereof), - with or without Modifications, and/or as part of a Larger - Work; and - - (b) under Patent Claims infringed by the making, using or - selling of Original Software, to make, have made, use, - practice, sell, and offer for sale, and/or otherwise - dispose of the Original Software (or portions thereof). - - (c) The licenses granted in Sections 2.1(a) and (b) are - effective on the date Initial Developer first distributes - or otherwise makes the Original Software available to a - third party under the terms of this License. - - (d) Notwithstanding Section 2.1(b) above, no patent license is - granted: (1) for code that You delete from the Original - Software, or (2) for infringements caused by: (i) the - modification of the Original Software, or (ii) the - combination of the Original Software with other software - or devices. - - 2.2. Contributor Grant. - - Conditioned upon Your compliance with Section 3.1 below and - subject to third party intellectual property claims, each - Contributor hereby grants You a world-wide, royalty-free, - non-exclusive license: - - (a) under intellectual property rights (other than patent or - trademark) Licensable by Contributor to use, reproduce, - modify, display, perform, sublicense and distribute the - Modifications created by such Contributor (or portions - thereof), either on an unmodified basis, with other - Modifications, as Covered Software and/or as part of a - Larger Work; and - - (b) under Patent Claims infringed by the making, using, or - selling of Modifications made by that Contributor either - alone and/or in combination with its Contributor Version - (or portions of such combination), to make, use, sell, - offer for sale, have made, and/or otherwise dispose of: - (1) Modifications made by that Contributor (or portions - thereof); and (2) the combination of Modifications made by - that Contributor with its Contributor Version (or portions - of such combination). - - (c) The licenses granted in Sections 2.2(a) and 2.2(b) are - effective on the date Contributor first distributes or - otherwise makes the Modifications available to a third - party. - - (d) Notwithstanding Section 2.2(b) above, no patent license is - granted: (1) for any code that Contributor has deleted - from the Contributor Version; (2) for infringements caused - by: (i) third party modifications of Contributor Version, - or (ii) the combination of Modifications made by that - Contributor with other software (except as part of the - Contributor Version) or other devices; or (3) under Patent - Claims infringed by Covered Software in the absence of - Modifications made by that Contributor. - -3. Distribution Obligations. - - 3.1. Availability of Source Code. - - Any Covered Software that You distribute or otherwise make - available in Executable form must also be made available in Source - Code form and that Source Code form must be distributed only under - the terms of this License. You must include a copy of this - License with every copy of the Source Code form of the Covered - Software You distribute or otherwise make available. You must - inform recipients of any such Covered Software in Executable form - as to how they can obtain such Covered Software in Source Code - form in a reasonable manner on or through a medium customarily - used for software exchange. - - 3.2. Modifications. - - The Modifications that You create or to which You contribute are - governed by the terms of this License. You represent that You - believe Your Modifications are Your original creation(s) and/or - You have sufficient rights to grant the rights conveyed by this - License. - - 3.3. Required Notices. - - You must include a notice in each of Your Modifications that - identifies You as the Contributor of the Modification. You may - not remove or alter any copyright, patent or trademark notices - contained within the Covered Software, or any notices of licensing - or any descriptive text giving attribution to any Contributor or - the Initial Developer. - - 3.4. Application of Additional Terms. - - You may not offer or impose any terms on any Covered Software in - Source Code form that alters or restricts the applicable version - of this License or the recipients' rights hereunder. You may - choose to offer, and to charge a fee for, warranty, support, - indemnity or liability obligations to one or more recipients of - Covered Software. However, you may do so only on Your own behalf, - and not on behalf of the Initial Developer or any Contributor. - You must make it absolutely clear that any such warranty, support, - indemnity or liability obligation is offered by You alone, and You - hereby agree to indemnify the Initial Developer and every - Contributor for any liability incurred by the Initial Developer or - such Contributor as a result of warranty, support, indemnity or - liability terms You offer. - - 3.5. Distribution of Executable Versions. - - You may distribute the Executable form of the Covered Software - under the terms of this License or under the terms of a license of - Your choice, which may contain terms different from this License, - provided that You are in compliance with the terms of this License - and that the license for the Executable form does not attempt to - limit or alter the recipient's rights in the Source Code form from - the rights set forth in this License. If You distribute the - Covered Software in Executable form under a different license, You - must make it absolutely clear that any terms which differ from - this License are offered by You alone, not by the Initial - Developer or Contributor. You hereby agree to indemnify the - Initial Developer and every Contributor for any liability incurred - by the Initial Developer or such Contributor as a result of any - such terms You offer. - - 3.6. Larger Works. - - You may create a Larger Work by combining Covered Software with - other code not governed by the terms of this License and - distribute the Larger Work as a single product. In such a case, - You must make sure the requirements of this License are fulfilled - for the Covered Software. - -4. Versions of the License. - - 4.1. New Versions. - - Sun Microsystems, Inc. is the initial license steward and may - publish revised and/or new versions of this License from time to - time. Each version will be given a distinguishing version number. - Except as provided in Section 4.3, no one other than the license - steward has the right to modify this License. - - 4.2. Effect of New Versions. - - You may always continue to use, distribute or otherwise make the - Covered Software available under the terms of the version of the - License under which You originally received the Covered Software. - If the Initial Developer includes a notice in the Original - Software prohibiting it from being distributed or otherwise made - available under any subsequent version of the License, You must - distribute and make the Covered Software available under the terms - of the version of the License under which You originally received - the Covered Software. Otherwise, You may also choose to use, - distribute or otherwise make the Covered Software available under - the terms of any subsequent version of the License published by - the license steward. - - 4.3. Modified Versions. - - When You are an Initial Developer and You want to create a new - license for Your Original Software, You may create and use a - modified version of this License if You: (a) rename the license - and remove any references to the name of the license steward - (except to note that the license differs from this License); and - (b) otherwise make it clear that the license contains terms which - differ from this License. - -5. DISCLAIMER OF WARRANTY. - - COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" - BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, - INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED - SOFTWARE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR - PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND - PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU. SHOULD ANY - COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE - INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY - NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF - WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF - ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS - DISCLAIMER. - -6. TERMINATION. - - 6.1. This License and the rights granted hereunder will terminate - automatically if You fail to comply with terms herein and fail to - cure such breach within 30 days of becoming aware of the breach. - Provisions which, by their nature, must remain in effect beyond - the termination of this License shall survive. - - 6.2. If You assert a patent infringement claim (excluding - declaratory judgment actions) against Initial Developer or a - Contributor (the Initial Developer or Contributor against whom You - assert such claim is referred to as "Participant") alleging that - the Participant Software (meaning the Contributor Version where - the Participant is a Contributor or the Original Software where - the Participant is the Initial Developer) directly or indirectly - infringes any patent, then any and all rights granted directly or - indirectly to You by such Participant, the Initial Developer (if - the Initial Developer is not the Participant) and all Contributors - under Sections 2.1 and/or 2.2 of this License shall, upon 60 days - notice from Participant terminate prospectively and automatically - at the expiration of such 60 day notice period, unless if within - such 60 day period You withdraw Your claim with respect to the - Participant Software against such Participant either unilaterally - or pursuant to a written agreement with Participant. - - 6.3. In the event of termination under Sections 6.1 or 6.2 above, - all end user licenses that have been validly granted by You or any - distributor hereunder prior to termination (excluding licenses - granted to You by any distributor) shall survive termination. - -7. LIMITATION OF LIABILITY. - - UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT - (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE - INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF - COVERED SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE - LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR - CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT - LIMITATION, DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, WORK - STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER - COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN - INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF - LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL - INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT - APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO - NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR - CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT - APPLY TO YOU. - -8. U.S. GOVERNMENT END USERS. - - The Covered Software is a "commercial item," as that term is - defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial - computer software" (as that term is defined at 48 - C.F.R. 252.227-7014(a)(1)) and "commercial computer software - documentation" as such terms are used in 48 C.F.R. 12.212 - (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 - C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all - U.S. Government End Users acquire Covered Software with only those - rights set forth herein. This U.S. Government Rights clause is in - lieu of, and supersedes, any other FAR, DFAR, or other clause or - provision that addresses Government rights in computer software - under this License. - -9. MISCELLANEOUS. - - This License represents the complete agreement concerning subject - matter hereof. If any provision of this License is held to be - unenforceable, such provision shall be reformed only to the extent - necessary to make it enforceable. This License shall be governed - by the law of the jurisdiction specified in a notice contained - within the Original Software (except to the extent applicable law, - if any, provides otherwise), excluding such jurisdiction's - conflict-of-law provisions. Any litigation relating to this - License shall be subject to the jurisdiction of the courts located - in the jurisdiction and venue specified in a notice contained - within the Original Software, with the losing party responsible - for costs, including, without limitation, court costs and - reasonable attorneys' fees and expenses. The application of the - United Nations Convention on Contracts for the International Sale - of Goods is expressly excluded. Any law or regulation which - provides that the language of a contract shall be construed - against the drafter shall not apply to this License. You agree - that You alone are responsible for compliance with the United - States export administration regulations (and the export control - laws and regulation of any other countries) when You use, - distribute or otherwise make available any Covered Software. - -10. RESPONSIBILITY FOR CLAIMS. - - As between Initial Developer and the Contributors, each party is - responsible for claims and damages arising, directly or - indirectly, out of its utilization of rights under this License - and You agree to work with Initial Developer and Contributors to - distribute such responsibility on an equitable basis. Nothing - herein is intended or shall be deemed to constitute any admission - of liability. - --------------------------------------------------------------------- - -NOTICE PURSUANT TO SECTION 9 OF THE COMMON DEVELOPMENT AND -DISTRIBUTION LICENSE (CDDL) - -For Covered Software in this distribution, this License shall -be governed by the laws of the State of California (excluding -conflict-of-law provisions). - -Any litigation relating to this License shall be subject to the -jurisdiction of the Federal Courts of the Northern District of -California and the state courts of the State of California, with -venue lying in Santa Clara County, California. diff --git a/vendor/github.com/howeyc/gopass/README.md b/vendor/github.com/howeyc/gopass/README.md deleted file mode 100644 index 2d6a4e72c..000000000 --- a/vendor/github.com/howeyc/gopass/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# getpasswd in Go [![GoDoc](https://godoc.org/github.com/howeyc/gopass?status.svg)](https://godoc.org/github.com/howeyc/gopass) [![Build Status](https://secure.travis-ci.org/howeyc/gopass.png?branch=master)](http://travis-ci.org/howeyc/gopass) - -Retrieve password from user terminal or piped input without echo. - -Verified on BSD, Linux, and Windows. - -Example: -```go -package main - -import "fmt" -import "github.com/howeyc/gopass" - -func main() { - fmt.Printf("Password: ") - - // Silent. For printing *'s use gopass.GetPasswdMasked() - pass, err := gopass.GetPasswd() - if err != nil { - // Handle gopass.ErrInterrupted or getch() read error - } - - // Do something with pass -} -``` - -Caution: Multi-byte characters not supported! diff --git a/vendor/github.com/howeyc/gopass/pass.go b/vendor/github.com/howeyc/gopass/pass.go deleted file mode 100644 index f5bd5a51a..000000000 --- a/vendor/github.com/howeyc/gopass/pass.go +++ /dev/null @@ -1,110 +0,0 @@ -package gopass - -import ( - "errors" - "fmt" - "io" - "os" -) - -type FdReader interface { - io.Reader - Fd() uintptr -} - -var defaultGetCh = func(r io.Reader) (byte, error) { - buf := make([]byte, 1) - if n, err := r.Read(buf); n == 0 || err != nil { - if err != nil { - return 0, err - } - return 0, io.EOF - } - return buf[0], nil -} - -var ( - maxLength = 512 - ErrInterrupted = errors.New("interrupted") - ErrMaxLengthExceeded = fmt.Errorf("maximum byte limit (%v) exceeded", maxLength) - - // Provide variable so that tests can provide a mock implementation. - getch = defaultGetCh -) - -// getPasswd returns the input read from terminal. -// If prompt is not empty, it will be output as a prompt to the user -// If masked is true, typing will be matched by asterisks on the screen. -// Otherwise, typing will echo nothing. -func getPasswd(prompt string, masked bool, r FdReader, w io.Writer) ([]byte, error) { - var err error - var pass, bs, mask []byte - if masked { - bs = []byte("\b \b") - mask = []byte("*") - } - - if isTerminal(r.Fd()) { - if oldState, err := makeRaw(r.Fd()); err != nil { - return pass, err - } else { - defer func() { - restore(r.Fd(), oldState) - fmt.Fprintln(w) - }() - } - } - - if prompt != "" { - fmt.Fprint(w, prompt) - } - - // Track total bytes read, not just bytes in the password. This ensures any - // errors that might flood the console with nil or -1 bytes infinitely are - // capped. - var counter int - for counter = 0; counter <= maxLength; counter++ { - if v, e := getch(r); e != nil { - err = e - break - } else if v == 127 || v == 8 { - if l := len(pass); l > 0 { - pass = pass[:l-1] - fmt.Fprint(w, string(bs)) - } - } else if v == 13 || v == 10 { - break - } else if v == 3 { - err = ErrInterrupted - break - } else if v != 0 { - pass = append(pass, v) - fmt.Fprint(w, string(mask)) - } - } - - if counter > maxLength { - err = ErrMaxLengthExceeded - } - - return pass, err -} - -// GetPasswd returns the password read from the terminal without echoing input. -// The returned byte array does not include end-of-line characters. -func GetPasswd() ([]byte, error) { - return getPasswd("", false, os.Stdin, os.Stdout) -} - -// GetPasswdMasked returns the password read from the terminal, echoing asterisks. -// The returned byte array does not include end-of-line characters. -func GetPasswdMasked() ([]byte, error) { - return getPasswd("", true, os.Stdin, os.Stdout) -} - -// GetPasswdPrompt prompts the user and returns the password read from the terminal. -// If mask is true, then asterisks are echoed. -// The returned byte array does not include end-of-line characters. -func GetPasswdPrompt(prompt string, mask bool, r FdReader, w io.Writer) ([]byte, error) { - return getPasswd(prompt, mask, r, w) -} diff --git a/vendor/github.com/howeyc/gopass/pass_test.go b/vendor/github.com/howeyc/gopass/pass_test.go deleted file mode 100644 index 7ac315135..000000000 --- a/vendor/github.com/howeyc/gopass/pass_test.go +++ /dev/null @@ -1,225 +0,0 @@ -package gopass - -import ( - "bufio" - "bytes" - "fmt" - "io" - "io/ioutil" - "os" - "testing" - "time" -) - -// TestGetPasswd tests the password creation and output based on a byte buffer -// as input to mock the underlying getch() methods. -func TestGetPasswd(t *testing.T) { - type testData struct { - input []byte - - // Due to how backspaces are written, it is easier to manually write - // each expected output for the masked cases. - masked string - password string - byesLeft int - reason string - } - - ds := []testData{ - testData{[]byte("abc\n"), "***", "abc", 0, "Password parsing should stop at \\n"}, - testData{[]byte("abc\r"), "***", "abc", 0, "Password parsing should stop at \\r"}, - testData{[]byte("a\nbc\n"), "*", "a", 3, "Password parsing should stop at \\n"}, - testData{[]byte("*!]|\n"), "****", "*!]|", 0, "Special characters shouldn't affect the password."}, - - testData{[]byte("abc\r\n"), "***", "abc", 1, - "Password parsing should stop at \\r; Windows LINE_MODE should be unset so \\r is not converted to \\r\\n."}, - - testData{[]byte{'a', 'b', 'c', 8, '\n'}, "***\b \b", "ab", 0, "Backspace byte should remove the last read byte."}, - testData{[]byte{'a', 'b', 127, 'c', '\n'}, "**\b \b*", "ac", 0, "Delete byte should remove the last read byte."}, - testData{[]byte{'a', 'b', 127, 'c', 8, 127, '\n'}, "**\b \b*\b \b\b \b", "", 0, "Successive deletes continue to delete."}, - testData{[]byte{8, 8, 8, '\n'}, "", "", 0, "Deletes before characters are noops."}, - testData{[]byte{8, 8, 8, 'a', 'b', 'c', '\n'}, "***", "abc", 0, "Deletes before characters are noops."}, - - testData{[]byte{'a', 'b', 0, 'c', '\n'}, "***", "abc", 0, - "Nil byte should be ignored due; may get unintended nil bytes from syscalls on Windows."}, - } - - // Redirecting output for tests as they print to os.Stdout but we want to - // capture and test the output. - for _, masked := range []bool{true, false} { - for _, d := range ds { - pipeBytesToStdin(d.input) - - r, w, err := os.Pipe() - if err != nil { - t.Fatal(err.Error()) - } - - result, err := getPasswd("", masked, os.Stdin, w) - if err != nil { - t.Errorf("Error getting password: %s", err.Error()) - } - leftOnBuffer := flushStdin() - - // Test output (masked and unmasked). Delete/backspace actually - // deletes, overwrites and deletes again. As a result, we need to - // remove those from the pipe afterwards to mimic the console's - // interpretation of those bytes. - w.Close() - output, err := ioutil.ReadAll(r) - if err != nil { - t.Fatal(err.Error()) - } - var expectedOutput []byte - if masked { - expectedOutput = []byte(d.masked) - } else { - expectedOutput = []byte("") - } - if bytes.Compare(expectedOutput, output) != 0 { - t.Errorf("Expected output to equal %v (%q) but got %v (%q) instead when masked=%v. %s", expectedOutput, string(expectedOutput), output, string(output), masked, d.reason) - } - - if string(result) != d.password { - t.Errorf("Expected %q but got %q instead when masked=%v. %s", d.password, result, masked, d.reason) - } - - if leftOnBuffer != d.byesLeft { - t.Errorf("Expected %v bytes left on buffer but instead got %v when masked=%v. %s", d.byesLeft, leftOnBuffer, masked, d.reason) - } - } - } -} - -// TestPipe ensures we get our expected pipe behavior. -func TestPipe(t *testing.T) { - type testData struct { - input string - password string - expError error - } - ds := []testData{ - testData{"abc", "abc", io.EOF}, - testData{"abc\n", "abc", nil}, - testData{"abc\r", "abc", nil}, - testData{"abc\r\n", "abc", nil}, - } - - for _, d := range ds { - _, err := pipeToStdin(d.input) - if err != nil { - t.Log("Error writing input to stdin:", err) - t.FailNow() - } - pass, err := GetPasswd() - if string(pass) != d.password { - t.Errorf("Expected %q but got %q instead.", d.password, string(pass)) - } - if err != d.expError { - t.Errorf("Expected %v but got %q instead.", d.expError, err) - } - } -} - -// flushStdin reads from stdin for .5 seconds to ensure no bytes are left on -// the buffer. Returns the number of bytes read. -func flushStdin() int { - ch := make(chan byte) - go func(ch chan byte) { - reader := bufio.NewReader(os.Stdin) - for { - b, err := reader.ReadByte() - if err != nil { // Maybe log non io.EOF errors, if you want - close(ch) - return - } - ch <- b - } - close(ch) - }(ch) - - numBytes := 0 - for { - select { - case _, ok := <-ch: - if !ok { - return numBytes - } - numBytes++ - case <-time.After(500 * time.Millisecond): - return numBytes - } - } - return numBytes -} - -// pipeToStdin pipes the given string onto os.Stdin by replacing it with an -// os.Pipe. The write end of the pipe is closed so that EOF is read after the -// final byte. -func pipeToStdin(s string) (int, error) { - pipeReader, pipeWriter, err := os.Pipe() - if err != nil { - fmt.Println("Error getting os pipes:", err) - os.Exit(1) - } - os.Stdin = pipeReader - w, err := pipeWriter.WriteString(s) - pipeWriter.Close() - return w, err -} - -func pipeBytesToStdin(b []byte) (int, error) { - return pipeToStdin(string(b)) -} - -// TestGetPasswd_Err tests errors are properly handled from getch() -func TestGetPasswd_Err(t *testing.T) { - var inBuffer *bytes.Buffer - getch = func(io.Reader) (byte, error) { - b, err := inBuffer.ReadByte() - if err != nil { - return 13, err - } - if b == 'z' { - return 'z', fmt.Errorf("Forced error; byte returned should not be considered accurate.") - } - return b, nil - } - defer func() { getch = defaultGetCh }() - - for input, expectedPassword := range map[string]string{"abc": "abc", "abzc": "ab"} { - inBuffer = bytes.NewBufferString(input) - p, err := GetPasswdMasked() - if string(p) != expectedPassword { - t.Errorf("Expected %q but got %q instead.", expectedPassword, p) - } - if err == nil { - t.Errorf("Expected error to be returned.") - } - } -} - -func TestMaxPasswordLength(t *testing.T) { - type testData struct { - input []byte - expectedErr error - - // Helper field to output in case of failure; rather than hundreds of - // bytes. - inputDesc string - } - - ds := []testData{ - testData{append(bytes.Repeat([]byte{'a'}, maxLength), '\n'), nil, fmt.Sprintf("%v 'a' bytes followed by a newline", maxLength)}, - testData{append(bytes.Repeat([]byte{'a'}, maxLength+1), '\n'), ErrMaxLengthExceeded, fmt.Sprintf("%v 'a' bytes followed by a newline", maxLength+1)}, - testData{append(bytes.Repeat([]byte{0x00}, maxLength+1), '\n'), ErrMaxLengthExceeded, fmt.Sprintf("%v 0x00 bytes followed by a newline", maxLength+1)}, - } - - for _, d := range ds { - pipeBytesToStdin(d.input) - _, err := GetPasswd() - if err != d.expectedErr { - t.Errorf("Expected error to be %v; isntead got %v from %v", d.expectedErr, err, d.inputDesc) - } - } -} diff --git a/vendor/github.com/howeyc/gopass/terminal.go b/vendor/github.com/howeyc/gopass/terminal.go deleted file mode 100644 index 083564146..000000000 --- a/vendor/github.com/howeyc/gopass/terminal.go +++ /dev/null @@ -1,25 +0,0 @@ -// +build !solaris - -package gopass - -import "golang.org/x/crypto/ssh/terminal" - -type terminalState struct { - state *terminal.State -} - -func isTerminal(fd uintptr) bool { - return terminal.IsTerminal(int(fd)) -} - -func makeRaw(fd uintptr) (*terminalState, error) { - state, err := terminal.MakeRaw(int(fd)) - - return &terminalState{ - state: state, - }, err -} - -func restore(fd uintptr, oldState *terminalState) error { - return terminal.Restore(int(fd), oldState.state) -} diff --git a/vendor/github.com/howeyc/gopass/terminal_solaris.go b/vendor/github.com/howeyc/gopass/terminal_solaris.go deleted file mode 100644 index 257e1b4e8..000000000 --- a/vendor/github.com/howeyc/gopass/terminal_solaris.go +++ /dev/null @@ -1,69 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License, Version 1.0 only - * (the "License"). You may not use this file except in compliance - * with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -// Below is derived from Solaris source, so CDDL license is included. - -package gopass - -import ( - "syscall" - - "golang.org/x/sys/unix" -) - -type terminalState struct { - state *unix.Termios -} - -// isTerminal returns true if there is a terminal attached to the given -// file descriptor. -// Source: http://src.illumos.org/source/xref/illumos-gate/usr/src/lib/libbc/libc/gen/common/isatty.c -func isTerminal(fd uintptr) bool { - var termio unix.Termio - err := unix.IoctlSetTermio(int(fd), unix.TCGETA, &termio) - return err == nil -} - -// makeRaw puts the terminal connected to the given file descriptor into raw -// mode and returns the previous state of the terminal so that it can be -// restored. -// Source: http://src.illumos.org/source/xref/illumos-gate/usr/src/lib/libast/common/uwin/getpass.c -func makeRaw(fd uintptr) (*terminalState, error) { - oldTermiosPtr, err := unix.IoctlGetTermios(int(fd), unix.TCGETS) - if err != nil { - return nil, err - } - oldTermios := *oldTermiosPtr - - newTermios := oldTermios - newTermios.Lflag &^= syscall.ECHO | syscall.ECHOE | syscall.ECHOK | syscall.ECHONL - if err := unix.IoctlSetTermios(int(fd), unix.TCSETS, &newTermios); err != nil { - return nil, err - } - - return &terminalState{ - state: oldTermiosPtr, - }, nil -} - -func restore(fd uintptr, oldState *terminalState) error { - return unix.IoctlSetTermios(int(fd), unix.TCSETS, oldState.state) -} diff --git a/vendor/github.com/kubernetes-csi/csi-lib-utils/CONTRIBUTING.md b/vendor/github.com/kubernetes-csi/csi-lib-utils/CONTRIBUTING.md new file mode 100644 index 000000000..de4711513 --- /dev/null +++ b/vendor/github.com/kubernetes-csi/csi-lib-utils/CONTRIBUTING.md @@ -0,0 +1,31 @@ +# Contributing Guidelines + +Welcome to Kubernetes. We are excited about the prospect of you joining our [community](https://github.com/kubernetes/community)! The Kubernetes community abides by the CNCF [code of conduct](code-of-conduct.md). Here is an excerpt: + +_As contributors and maintainers of this project, and in the interest of fostering an open and welcoming community, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities._ + +## Getting Started + +We have full documentation on how to get started contributing here: + + + +- [Contributor License Agreement](https://git.k8s.io/community/CLA.md) Kubernetes projects require that you sign a Contributor License Agreement (CLA) before we can accept your pull requests +- [Kubernetes Contributor Guide](http://git.k8s.io/community/contributors/guide) - Main contributor documentation, or you can just jump directly to the [contributing section](http://git.k8s.io/community/contributors/guide#contributing) +- [Contributor Cheat Sheet](https://git.k8s.io/community/contributors/guide/contributor-cheatsheet.md) - Common resources for existing developers + +## Mentorship + +- [Mentoring Initiatives](https://git.k8s.io/community/mentoring) - We have a diverse set of mentorship programs available that are always looking for volunteers! + + diff --git a/vendor/github.com/kubernetes-csi/csi-lib-utils/Gopkg.lock b/vendor/github.com/kubernetes-csi/csi-lib-utils/Gopkg.lock new file mode 100644 index 000000000..8d4120d88 --- /dev/null +++ b/vendor/github.com/kubernetes-csi/csi-lib-utils/Gopkg.lock @@ -0,0 +1,149 @@ +# This file is autogenerated, do not edit; changes may be undone by the next 'dep ensure'. + + +[[projects]] + digest = "1:ffe9824d294da03b391f44e1ae8281281b4afc1bdaa9588c9097785e3af10cec" + name = "github.com/davecgh/go-spew" + packages = ["spew"] + pruneopts = "UT" + revision = "8991bc29aa16c548c550c7ff78260e27b9ab7c73" + version = "v1.1.1" + +[[projects]] + digest = "1:9cab16c200148edbdc9f314f69bf71987085f618ec107385bd6634be21d1aae8" + name = "github.com/golang/protobuf" + packages = [ + "descriptor", + "proto", + "protoc-gen-go/descriptor", + "ptypes", + "ptypes/any", + "ptypes/duration", + "ptypes/timestamp", + "ptypes/wrappers", + ] + pruneopts = "UT" + revision = "aa810b61a9c79d51363740d207bb46cf8e620ed5" + version = "v1.2.0" + +[[projects]] + digest = "1:0028cb19b2e4c3112225cd871870f2d9cf49b9b4276531f03438a88e94be86fe" + name = "github.com/pmezard/go-difflib" + packages = ["difflib"] + pruneopts = "UT" + revision = "792786c7400a136282c1664665ae0a8db921c6c2" + version = "v1.0.0" + +[[projects]] + digest = "1:18752d0b95816a1b777505a97f71c7467a8445b8ffb55631a7bf779f6ba4fa83" + name = "github.com/stretchr/testify" + packages = ["assert"] + pruneopts = "UT" + revision = "f35b8ab0b5a2cef36673838d662e249dd9c94686" + version = "v1.2.2" + +[[projects]] + branch = "master" + digest = "1:6ca51c5d8a610b3da56856df7a8f8f3e075eba8d5f7a4acbadd79b2d2a368054" + name = "golang.org/x/net" + packages = [ + "context", + "http/httpguts", + "http2", + "http2/hpack", + "idna", + "internal/timeseries", + "trace", + ] + pruneopts = "UT" + revision = "fae4c4e3ad76c295c3d6d259f898136b4bf833a8" + +[[projects]] + branch = "master" + digest = "1:8775d8a768d9e65e8b659172804aac5db1fc8d563ba766470a6c2698c57c61a7" + name = "golang.org/x/sys" + packages = ["unix"] + pruneopts = "UT" + revision = "4ed8d59d0b35e1e29334a206d1b3f38b1e5dfb31" + +[[projects]] + digest = "1:a2ab62866c75542dd18d2b069fec854577a20211d7c0ea6ae746072a1dccdd18" + name = "golang.org/x/text" + packages = [ + "collate", + "collate/build", + "internal/colltab", + "internal/gen", + "internal/tag", + "internal/triegen", + "internal/ucd", + "language", + "secure/bidirule", + "transform", + "unicode/bidi", + "unicode/cldr", + "unicode/norm", + "unicode/rangetable", + ] + pruneopts = "UT" + revision = "f21a4dfb5e38f5895301dc265a8def02365cc3d0" + version = "v0.3.0" + +[[projects]] + branch = "master" + digest = "1:56b0bca90b7e5d1facf5fbdacba23e4e0ce069d25381b8e2f70ef1e7ebfb9c1a" + name = "google.golang.org/genproto" + packages = ["googleapis/rpc/status"] + pruneopts = "UT" + revision = "31ac5d88444a9e7ad18077db9a165d793ad06a2e" + +[[projects]] + digest = "1:c3ad9841823db6da420a5625b367913b4ff54bbe60e8e3c98bd20e243e62e2d2" + name = "google.golang.org/grpc" + packages = [ + ".", + "balancer", + "balancer/base", + "balancer/roundrobin", + "codes", + "connectivity", + "credentials", + "encoding", + "encoding/proto", + "grpclog", + "internal", + "internal/backoff", + "internal/channelz", + "internal/envconfig", + "internal/grpcrand", + "internal/transport", + "keepalive", + "metadata", + "naming", + "peer", + "resolver", + "resolver/dns", + "resolver/passthrough", + "stats", + "status", + "tap", + ] + pruneopts = "UT" + revision = "2e463a05d100327ca47ac218281906921038fd95" + version = "v1.16.0" + +[solve-meta] + analyzer-name = "dep" + analyzer-version = 1 + input-imports = [ + "github.com/golang/protobuf/descriptor", + "github.com/golang/protobuf/proto", + "github.com/golang/protobuf/protoc-gen-go/descriptor", + "github.com/golang/protobuf/ptypes/timestamp", + "github.com/golang/protobuf/ptypes/wrappers", + "github.com/stretchr/testify/assert", + "golang.org/x/net/context", + "google.golang.org/grpc", + ] + solver-name = "gps-cdcl" + solver-version = 1 diff --git a/vendor/github.com/kubernetes-csi/csi-lib-utils/Gopkg.toml b/vendor/github.com/kubernetes-csi/csi-lib-utils/Gopkg.toml new file mode 100644 index 000000000..2922e60b6 --- /dev/null +++ b/vendor/github.com/kubernetes-csi/csi-lib-utils/Gopkg.toml @@ -0,0 +1,6 @@ +# Refer to https://golang.github.io/dep/docs/Gopkg.toml.html +# for detailed Gopkg.toml documentation. + +[prune] + go-tests = true + unused-packages = true diff --git a/vendor/github.com/kubernetes-csi/csi-lib-utils/LICENSE b/vendor/github.com/kubernetes-csi/csi-lib-utils/LICENSE new file mode 100644 index 000000000..8dada3eda --- /dev/null +++ b/vendor/github.com/kubernetes-csi/csi-lib-utils/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendor/github.com/kubernetes-csi/csi-lib-utils/Makefile b/vendor/github.com/kubernetes-csi/csi-lib-utils/Makefile new file mode 100644 index 000000000..8bfef97e8 --- /dev/null +++ b/vendor/github.com/kubernetes-csi/csi-lib-utils/Makefile @@ -0,0 +1,35 @@ +# Copyright 2018 The Kubernetes Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +.PHONY: all clean test + +ifdef V +TESTARGS = -v +else +TESTARGS = +endif + +all: + go build `go list ./... | grep -v 'vendor'` + +clean: + true + +test: + go test `go list ./... | grep -v ^vendor` $(TESTARGS) + go vet `go list ./... | grep -v ^vendor` + diff="$$(gofmt -d $$(find . -name '*.go' | grep -v ^./vendor))" && \ + ( [ -z "$$diff" ] || ( \ + echo "\nvvvvvv formatting errors, fix with patch -p1 vvvvvvvvvv\n$$diff\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n"; \ + false ) ) diff --git a/vendor/github.com/kubernetes-csi/csi-lib-utils/OWNERS b/vendor/github.com/kubernetes-csi/csi-lib-utils/OWNERS new file mode 100644 index 000000000..2a442eb60 --- /dev/null +++ b/vendor/github.com/kubernetes-csi/csi-lib-utils/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs: https://git.k8s.io/community/contributors/guide/owners.md + +approvers: + - saad-ali diff --git a/vendor/github.com/kubernetes-csi/csi-lib-utils/README.md b/vendor/github.com/kubernetes-csi/csi-lib-utils/README.md new file mode 100644 index 000000000..86b84d335 --- /dev/null +++ b/vendor/github.com/kubernetes-csi/csi-lib-utils/README.md @@ -0,0 +1,19 @@ +# csi-lib-utils + +TBD + +## Community, discussion, contribution, and support + +Learn how to engage with the Kubernetes community on the [community page](http://kubernetes.io/community/). + +You can reach the maintainers of this project at: + +- [Slack](http://slack.k8s.io/) +- [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-dev) + +### Code of conduct + +Participation in the Kubernetes community is governed by the [Kubernetes Code of Conduct](code-of-conduct.md). + +[owners]: https://git.k8s.io/community/contributors/guide/owners.md +[Creative Commons 4.0]: https://git.k8s.io/website/LICENSE diff --git a/vendor/github.com/kubernetes-csi/csi-lib-utils/SECURITY_CONTACTS b/vendor/github.com/kubernetes-csi/csi-lib-utils/SECURITY_CONTACTS new file mode 100644 index 000000000..585f480fe --- /dev/null +++ b/vendor/github.com/kubernetes-csi/csi-lib-utils/SECURITY_CONTACTS @@ -0,0 +1,13 @@ +# Defined below are the security contacts for this repo. +# +# They are the contact point for the Product Security Team to reach out +# to for triaging and handling of incoming issues. +# +# The below names agree to abide by the +# [Embargo Policy](https://github.com/kubernetes/sig-release/blob/master/security-release-process-documentation/security-release-process.md#embargo-policy) +# and will be removed and replaced if they violate that agreement. +# +# DO NOT REPORT SECURITY VULNERABILITIES DIRECTLY TO THESE NAMES, FOLLOW THE +# INSTRUCTIONS AT https://kubernetes.io/security/ + +saad-ali diff --git a/vendor/github.com/kubernetes-csi/csi-lib-utils/code-of-conduct.md b/vendor/github.com/kubernetes-csi/csi-lib-utils/code-of-conduct.md new file mode 100644 index 000000000..0d15c00cf --- /dev/null +++ b/vendor/github.com/kubernetes-csi/csi-lib-utils/code-of-conduct.md @@ -0,0 +1,3 @@ +# Kubernetes Community Code of Conduct + +Please refer to our [Kubernetes Community Code of Conduct](https://git.k8s.io/community/code-of-conduct.md) diff --git a/vendor/github.com/kubernetes-csi/csi-lib-utils/protosanitizer/protosanitizer.go b/vendor/github.com/kubernetes-csi/csi-lib-utils/protosanitizer/protosanitizer.go new file mode 100644 index 000000000..af64a7b27 --- /dev/null +++ b/vendor/github.com/kubernetes-csi/csi-lib-utils/protosanitizer/protosanitizer.go @@ -0,0 +1,177 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Package protosanitizer supports logging of gRPC messages without +// accidentally revealing sensitive fields. +package protosanitizer + +import ( + "encoding/json" + "fmt" + "reflect" + "strings" + + "github.com/golang/protobuf/descriptor" + "github.com/golang/protobuf/proto" + protobuf "github.com/golang/protobuf/protoc-gen-go/descriptor" + protobufdescriptor "github.com/golang/protobuf/protoc-gen-go/descriptor" +) + +// StripSecrets returns a wrapper around the original CSI gRPC message +// which has a Stringer implementation that serializes the message +// as one-line JSON, but without including secret information. +// Instead of the secret value(s), the string "***stripped***" is +// included in the result. +// +// StripSecrets relies on an extension in CSI 1.0 and thus can only +// be used for messages based on that or a more recent spec! +// +// StripSecrets itself is fast and therefore it is cheap to pass the +// result to logging functions which may or may not end up serializing +// the parameter depending on the current log level. +func StripSecrets(msg interface{}) fmt.Stringer { + return &stripSecrets{msg, isCSI1Secret} +} + +// StripSecretsCSI03 is like StripSecrets, except that it works +// for messages based on CSI 0.3 and older. It does not work +// for CSI 1.0, use StripSecrets for that. +func StripSecretsCSI03(msg interface{}) fmt.Stringer { + return &stripSecrets{msg, isCSI03Secret} +} + +type stripSecrets struct { + msg interface{} + + isSecretField func(field *protobuf.FieldDescriptorProto) bool +} + +func (s *stripSecrets) String() string { + // First convert to a generic representation. That's less efficient + // than using reflect directly, but easier to work with. + var parsed interface{} + b, err := json.Marshal(s.msg) + if err != nil { + return fmt.Sprintf("<>", s.msg, err) + } + if err := json.Unmarshal(b, &parsed); err != nil { + return fmt.Sprintf("<>", s.msg, err) + } + + // Now remove secrets from the generic representation of the message. + s.strip(parsed, s.msg) + + // Re-encoded the stripped representation and return that. + b, err = json.Marshal(parsed) + if err != nil { + return fmt.Sprintf("<>", s.msg, err) + } + return string(b) +} + +func (s *stripSecrets) strip(parsed interface{}, msg interface{}) { + protobufMsg, ok := msg.(descriptor.Message) + if !ok { + // Not a protobuf message, so we are done. + return + } + + // The corresponding map in the parsed JSON representation. + parsedFields, ok := parsed.(map[string]interface{}) + if !ok { + // Probably nil. + return + } + + // Walk through all fields and replace those with ***stripped*** that + // are marked as secret. This relies on protobuf adding "json:" tags + // on each field where the name matches the field name in the protobuf + // spec (like volume_capabilities). The field.GetJsonName() method returns + // a different name (volumeCapabilities) which we don't use. + _, md := descriptor.ForMessage(protobufMsg) + fields := md.GetField() + if fields != nil { + for _, field := range fields { + if s.isSecretField(field) { + // Overwrite only if already set. + if _, ok := parsedFields[field.GetName()]; ok { + parsedFields[field.GetName()] = "***stripped***" + } + } else if field.GetType() == protobuf.FieldDescriptorProto_TYPE_MESSAGE { + // When we get here, + // the type name is something like ".csi.v1.CapacityRange" (leading dot!) + // and looking up "csi.v1.CapacityRange" + // returns the type of a pointer to a pointer + // to CapacityRange. We need a pointer to such + // a value for recursive stripping. + typeName := field.GetTypeName() + if strings.HasPrefix(typeName, ".") { + typeName = typeName[1:] + } + t := proto.MessageType(typeName) + if t == nil || t.Kind() != reflect.Ptr { + // Shouldn't happen, but + // better check anyway instead + // of panicking. + continue + } + v := reflect.New(t.Elem()) + + // Recursively strip the message(s) that + // the field contains. + i := v.Interface() + entry := parsedFields[field.GetName()] + if slice, ok := entry.([]interface{}); ok { + // Array of values, like VolumeCapabilities in CreateVolumeRequest. + for _, entry := range slice { + s.strip(entry, i) + } + } else { + // Single value. + s.strip(entry, i) + } + } + } + } +} + +// isCSI1Secret uses the csi.E_CsiSecret extension from CSI 1.0 to +// determine whether a field contains secrets. +func isCSI1Secret(field *protobuf.FieldDescriptorProto) bool { + ex, err := proto.GetExtension(field.Options, e_CsiSecret) + return err == nil && ex != nil && *ex.(*bool) +} + +// Copied from the CSI 1.0 spec (https://github.com/container-storage-interface/spec/blob/37e74064635d27c8e33537c863b37ccb1182d4f8/lib/go/csi/csi.pb.go#L4520-L4527) +// to avoid a package dependency that would prevent usage of this package +// in repos using an older version of the spec. +// +// Future revision of the CSI spec must not change this extensions, otherwise +// they will break filtering in binaries based on the 1.0 version of the spec. +var e_CsiSecret = &proto.ExtensionDesc{ + ExtendedType: (*protobufdescriptor.FieldOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 1059, + Name: "csi.v1.csi_secret", + Tag: "varint,1059,opt,name=csi_secret,json=csiSecret", + Filename: "github.com/container-storage-interface/spec/csi.proto", +} + +// isCSI03Secret relies on the naming convention in CSI <= 0.3 +// to determine whether a field contains secrets. +func isCSI03Secret(field *protobuf.FieldDescriptorProto) bool { + return strings.HasSuffix(field.GetName(), "_secrets") +} diff --git a/vendor/github.com/kubernetes-csi/csi-lib-utils/protosanitizer/protosanitizer_test.go b/vendor/github.com/kubernetes-csi/csi-lib-utils/protosanitizer/protosanitizer_test.go new file mode 100644 index 000000000..944943c07 --- /dev/null +++ b/vendor/github.com/kubernetes-csi/csi-lib-utils/protosanitizer/protosanitizer_test.go @@ -0,0 +1,224 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package protosanitizer + +import ( + "fmt" + "testing" + + "github.com/golang/protobuf/proto" + csi03 "github.com/kubernetes-csi/csi-lib-utils/protosanitizer/test/csi03" + csi "github.com/kubernetes-csi/csi-lib-utils/protosanitizer/test/csi10" + "github.com/kubernetes-csi/csi-lib-utils/protosanitizer/test/csitest" + "github.com/stretchr/testify/assert" +) + +func TestStripSecrets(t *testing.T) { + secretName := "secret-abc" + secretValue := "123" + + // CSI 0.3.0. + createVolumeCSI03 := &csi03.CreateVolumeRequest{ + AccessibilityRequirements: &csi03.TopologyRequirement{ + Requisite: []*csi03.Topology{ + &csi03.Topology{ + Segments: map[string]string{ + "foo": "bar", + "x": "y", + }, + }, + &csi03.Topology{ + Segments: map[string]string{ + "a": "b", + }, + }, + }, + }, + Name: "foo", + VolumeCapabilities: []*csi03.VolumeCapability{ + &csi03.VolumeCapability{ + AccessType: &csi03.VolumeCapability_Mount{ + Mount: &csi03.VolumeCapability_MountVolume{ + FsType: "ext4", + }, + }, + }, + }, + CapacityRange: &csi03.CapacityRange{ + RequiredBytes: 1024, + }, + ControllerCreateSecrets: map[string]string{ + secretName: secretValue, + "secret-xyz": "987", + }, + } + + // Current spec. + createVolume := &csi.CreateVolumeRequest{ + AccessibilityRequirements: &csi.TopologyRequirement{ + Requisite: []*csi.Topology{ + &csi.Topology{ + Segments: map[string]string{ + "foo": "bar", + "x": "y", + }, + }, + &csi.Topology{ + Segments: map[string]string{ + "a": "b", + }, + }, + }, + }, + Name: "foo", + VolumeCapabilities: []*csi.VolumeCapability{ + &csi.VolumeCapability{ + AccessType: &csi.VolumeCapability_Mount{ + Mount: &csi.VolumeCapability_MountVolume{ + FsType: "ext4", + }, + }, + }, + }, + CapacityRange: &csi.CapacityRange{ + RequiredBytes: 1024, + }, + Secrets: map[string]string{ + secretName: secretValue, + "secret-xyz": "987", + }, + } + + // Revised spec with more secret fields. + createVolumeFuture := &csitest.CreateVolumeRequest{ + CapacityRange: &csitest.CapacityRange{ + RequiredBytes: 1024, + }, + MaybeSecretMap: map[int64]*csitest.VolumeCapability{ + 1: &csitest.VolumeCapability{ArraySecret: "aaa"}, + 2: &csitest.VolumeCapability{ArraySecret: "bbb"}, + }, + Name: "foo", + NewSecretInt: 42, + Seecreets: map[string]string{ + secretName: secretValue, + "secret-xyz": "987", + }, + VolumeCapabilities: []*csitest.VolumeCapability{ + &csitest.VolumeCapability{ + AccessType: &csitest.VolumeCapability_Mount{ + Mount: &csitest.VolumeCapability_MountVolume{ + FsType: "ext4", + }, + }, + ArraySecret: "knock knock", + }, + &csitest.VolumeCapability{ + ArraySecret: "Who's there?", + }, + }, + VolumeContentSource: &csitest.VolumeContentSource{ + Type: &csitest.VolumeContentSource_Volume{ + Volume: &csitest.VolumeContentSource_VolumeSource{ + VolumeId: "abc", + OneofSecretField: "hello", + }, + }, + NestedSecretField: "world", + }, + } + + type testcase struct { + original, stripped interface{} + } + + cases := []testcase{ + {nil, "null"}, + {1, "1"}, + {"hello world", `"hello world"`}, + {true, "true"}, + {false, "false"}, + {&csi.CreateVolumeRequest{}, `{}`}, + // Test case from https://github.com/kubernetes-csi/csi-lib-utils/pull/1#pullrequestreview-180126394. + {&csi.CreateVolumeRequest{ + Name: "test-volume", + CapacityRange: &csi.CapacityRange{ + RequiredBytes: int64(1024), + LimitBytes: int64(1024), + }, + VolumeCapabilities: []*csi.VolumeCapability{ + &csi.VolumeCapability{ + AccessType: &csi.VolumeCapability_Mount{ + Mount: &csi.VolumeCapability_MountVolume{ + FsType: "ext4", + MountFlags: []string{"flag1", "flag2", "flag3"}, + }, + }, + AccessMode: &csi.VolumeCapability_AccessMode{ + Mode: csi.VolumeCapability_AccessMode_MULTI_NODE_MULTI_WRITER, + }, + }, + }, + Secrets: map[string]string{"secret1": "secret1", "secret2": "secret2"}, + Parameters: map[string]string{"param1": "param1", "param2": "param2"}, + VolumeContentSource: &csi.VolumeContentSource{}, + AccessibilityRequirements: &csi.TopologyRequirement{}, + }, `{"accessibility_requirements":{},"capacity_range":{"limit_bytes":1024,"required_bytes":1024},"name":"test-volume","parameters":{"param1":"param1","param2":"param2"},"secrets":"***stripped***","volume_capabilities":[{"AccessType":{"Mount":{"fs_type":"ext4","mount_flags":["flag1","flag2","flag3"]}},"access_mode":{"mode":5}}],"volume_content_source":{"Type":null}}`}, + {createVolume, `{"accessibility_requirements":{"requisite":[{"segments":{"foo":"bar","x":"y"}},{"segments":{"a":"b"}}]},"capacity_range":{"required_bytes":1024},"name":"foo","secrets":"***stripped***","volume_capabilities":[{"AccessType":{"Mount":{"fs_type":"ext4"}}}]}`}, + {createVolumeCSI03, `{"accessibility_requirements":{"requisite":[{"segments":{"foo":"bar","x":"y"}},{"segments":{"a":"b"}}]},"capacity_range":{"required_bytes":1024},"controller_create_secrets":"***stripped***","name":"foo","volume_capabilities":[{"AccessType":{"Mount":{"fs_type":"ext4"}}}]}`}, + {&csitest.CreateVolumeRequest{}, `{}`}, + {createVolumeFuture, + // Secrets are *not* removed from all fields yet. This will have to be fixed one way or another + // before the CSI spec can start using secrets there (currently it doesn't). + // The test is still useful because it shows that also complicated fields get serialized. + // `{"capacity_range":{"required_bytes":1024},"maybe_secret_map":{"1":{"AccessType":null,"array_secret":"***stripped***"},"2":{"AccessType":null,"array_secret":"***stripped***"}},"name":"foo","new_secret_int":"***stripped***","seecreets":"***stripped***","volume_capabilities":[{"AccessType":{"Mount":{"fs_type":"ext4"}},"array_secret":"***stripped***"},{"AccessType":null,"array_secret":"***stripped***"}],"volume_content_source":{"Type":{"Volume":{"oneof_secret_field":"***stripped***","volume_id":"abc"}},"nested_secret_field":"***stripped***"}}`, + `{"capacity_range":{"required_bytes":1024},"maybe_secret_map":{"1":{"AccessType":null,"array_secret":"aaa"},"2":{"AccessType":null,"array_secret":"bbb"}},"name":"foo","new_secret_int":"***stripped***","seecreets":"***stripped***","volume_capabilities":[{"AccessType":{"Mount":{"fs_type":"ext4"}},"array_secret":"***stripped***"},{"AccessType":null,"array_secret":"***stripped***"}],"volume_content_source":{"Type":{"Volume":{"oneof_secret_field":"hello","volume_id":"abc"}},"nested_secret_field":"***stripped***"}}`, + }, + } + + // Message from revised spec as received by a sidecar based on the current spec. + // The XXX_unrecognized field contains secrets and must not get logged. + unknownFields := &csi.CreateVolumeRequest{} + data, err := proto.Marshal(createVolumeFuture) + if assert.NoError(t, err, "marshall future message") && + assert.NoError(t, proto.Unmarshal(data, unknownFields), "unmarshal with unknown fields") { + cases = append(cases, testcase{unknownFields, + `{"capacity_range":{"required_bytes":1024},"name":"foo","secrets":"***stripped***","volume_capabilities":[{"AccessType":{"Mount":{"fs_type":"ext4"}}},{"AccessType":null}],"volume_content_source":{"Type":{"Volume":{"volume_id":"abc"}}}}`, + }) + } + + for _, c := range cases { + before := fmt.Sprint(c.original) + var stripped fmt.Stringer + if _, ok := c.original.(*csi03.CreateVolumeRequest); ok { + stripped = StripSecretsCSI03(c.original) + } else { + stripped = StripSecrets(c.original) + } + if assert.Equal(t, c.stripped, fmt.Sprintf("%s", stripped), "unexpected result for fmt s of %s", c.original) { + if assert.Equal(t, c.stripped, fmt.Sprintf("%v", stripped), "unexpected result for fmt v of %s", c.original) { + assert.Equal(t, c.stripped, fmt.Sprintf("%+v", stripped), "unexpected result for fmt +v of %s", c.original) + } + } + assert.Equal(t, before, fmt.Sprint(c.original), "original value modified") + } + + // The secret is hidden because StripSecrets is a struct referencing it. + dump := fmt.Sprintf("%#v", StripSecrets(createVolume)) + assert.NotContains(t, dump, secretName) + assert.NotContains(t, dump, secretValue) +} diff --git a/vendor/github.com/kubernetes-csi/csi-lib-utils/protosanitizer/test/.gitignore b/vendor/github.com/kubernetes-csi/csi-lib-utils/protosanitizer/test/.gitignore new file mode 100644 index 000000000..77d72bc23 --- /dev/null +++ b/vendor/github.com/kubernetes-csi/csi-lib-utils/protosanitizer/test/.gitignore @@ -0,0 +1,5 @@ +/protoc +/protoc-gen-go +/csi.a +/.protoc +.build diff --git a/vendor/github.com/kubernetes-csi/csi-lib-utils/protosanitizer/test/Makefile b/vendor/github.com/kubernetes-csi/csi-lib-utils/protosanitizer/test/Makefile new file mode 100644 index 000000000..a2a87fede --- /dev/null +++ b/vendor/github.com/kubernetes-csi/csi-lib-utils/protosanitizer/test/Makefile @@ -0,0 +1,136 @@ +all: build + +######################################################################## +## GOLANG ## +######################################################################## + +# If GOPATH isn't defined then set its default location. +ifeq (,$(strip $(GOPATH))) +GOPATH := $(HOME)/go +else +# If GOPATH is already set then update GOPATH to be its own +# first element. +GOPATH := $(word 1,$(subst :, ,$(GOPATH))) +endif +export GOPATH + + +######################################################################## +## PROTOC ## +######################################################################## + +# Only set PROTOC_VER if it has an empty value. +ifeq (,$(strip $(PROTOC_VER))) +PROTOC_VER := 3.5.1 +endif + +PROTOC_OS := $(shell uname -s) +ifeq (Darwin,$(PROTOC_OS)) +PROTOC_OS := osx +endif + +PROTOC_ARCH := $(shell uname -m) +ifeq (i386,$(PROTOC_ARCH)) +PROTOC_ARCH := x86_32 +endif + +PROTOC := ./protoc +PROTOC_ZIP := protoc-$(PROTOC_VER)-$(PROTOC_OS)-$(PROTOC_ARCH).zip +PROTOC_URL := https://github.com/google/protobuf/releases/download/v$(PROTOC_VER)/$(PROTOC_ZIP) +PROTOC_TMP_DIR := .protoc +PROTOC_TMP_BIN := $(PROTOC_TMP_DIR)/bin/protoc + +$(PROTOC): + -mkdir -p "$(PROTOC_TMP_DIR)" && \ + curl -L $(PROTOC_URL) -o "$(PROTOC_TMP_DIR)/$(PROTOC_ZIP)" && \ + unzip "$(PROTOC_TMP_DIR)/$(PROTOC_ZIP)" -d "$(PROTOC_TMP_DIR)" && \ + chmod 0755 "$(PROTOC_TMP_BIN)" && \ + cp -f "$(PROTOC_TMP_BIN)" "$@" + stat "$@" > /dev/null 2>&1 + + +######################################################################## +## PROTOC-GEN-GO ## +######################################################################## + +# This is the recipe for getting and installing the go plug-in +# for protoc +PROTOC_GEN_GO_PKG := github.com/golang/protobuf/protoc-gen-go +PROTOC_GEN_GO := protoc-gen-go +$(PROTOC_GEN_GO): PROTOBUF_PKG := $(dir $(PROTOC_GEN_GO_PKG)) +$(PROTOC_GEN_GO): PROTOBUF_VERSION := v1.2.0 +$(PROTOC_GEN_GO): + mkdir -p $(dir $(GOPATH)/src/$(PROTOBUF_PKG)) + test -d $(GOPATH)/src/$(PROTOBUF_PKG)/.git || git clone https://$(PROTOBUF_PKG) $(GOPATH)/src/$(PROTOBUF_PKG) + (cd $(GOPATH)/src/$(PROTOBUF_PKG) && \ + (test "$$(git describe --tags | head -1)" = "$(PROTOBUF_VERSION)" || \ + (git fetch && git checkout tags/$(PROTOBUF_VERSION)))) + (cd $(GOPATH)/src/$(PROTOBUF_PKG) && go get -v -d $$(go list -f '{{ .ImportPath }}' ./...)) && \ + go build -o "$@" $(PROTOC_GEN_GO_PKG) + + +######################################################################## +## PATH ## +######################################################################## + +# Update PATH with the current directory. This enables the protoc +# binary to discover the protoc-gen-go binary, built inside this +# directory. +export PATH := $(shell pwd):$(PATH) + + +######################################################################## +## BUILD ## +######################################################################## +CSI_PROTO := ./csitest.proto +CSI_PKG_ROOT := github.com/kubernetes-csi/csi-lib-utils/protosanitizer/test +CSI_PKG_SUB := $(shell cat $(CSI_PROTO) | sed -n -e 's/^package.\([^;]*\).v[0-9]\+;$$/\1/p'|tr '.' '/') +CSI_BUILD := $(CSI_PKG_SUB)/.build +CSI_GO := $(CSI_PKG_SUB)/csitest.pb.go +CSI_A := csi.a +CSI_GO_TMP := $(CSI_BUILD)/$(CSI_PKG_ROOT)/csitest.pb.go + +# This recipe generates the go language bindings to a temp area. +$(CSI_GO_TMP): HERE := $(shell pwd) +$(CSI_GO_TMP): PTYPES_PKG := github.com/golang/protobuf/ptypes +$(CSI_GO_TMP): GO_OUT := plugins=grpc +$(CSI_GO_TMP): GO_OUT := $(GO_OUT),Mgoogle/protobuf/descriptor.proto=github.com/golang/protobuf/protoc-gen-go/descriptor +$(CSI_GO_TMP): GO_OUT := $(GO_OUT),Mgoogle/protobuf/wrappers.proto=$(PTYPES_PKG)/wrappers +$(CSI_GO_TMP): GO_OUT := $(GO_OUT):"$(HERE)/$(CSI_BUILD)" +$(CSI_GO_TMP): INCLUDE := -I$(GOPATH)/src -I$(HERE)/$(PROTOC_TMP_DIR)/include +$(CSI_GO_TMP): $(CSI_PROTO) | $(PROTOC) $(PROTOC_GEN_GO) + @mkdir -p "$(@D)" + (cd "$(GOPATH)/src" && \ + $(HERE)/$(PROTOC) $(INCLUDE) --go_out=$(GO_OUT) "$(CSI_PKG_ROOT)/$( /dev/null 2>&1 || cp -f "$?" "$@" +endif + +# This recipe builds the Go archive from the sources in three steps: +# +# 1. Go get any missing dependencies. +# 2. Cache the packages. +# 3. Build the archive file. +$(CSI_A): $(CSI_GO) + go get -v -d ./... + go install ./$(CSI_PKG_SUB) + go build -o "$@" ./$(CSI_PKG_SUB) + +build: $(CSI_A) + +clean: + go clean -i ./... + rm -rf "$(CSI_A)" "$(CSI_GO)" "$(CSI_BUILD)" + +clobber: clean + rm -fr "$(PROTOC)" "$(PROTOC_GEN_GO)" "$(CSI_PKG_SUB)" "$(PROTOC_TMP_DIR)" + +.PHONY: clean clobber diff --git a/vendor/github.com/kubernetes-csi/csi-lib-utils/protosanitizer/test/README.md b/vendor/github.com/kubernetes-csi/csi-lib-utils/protosanitizer/test/README.md new file mode 100644 index 000000000..259214e1c --- /dev/null +++ b/vendor/github.com/kubernetes-csi/csi-lib-utils/protosanitizer/test/README.md @@ -0,0 +1,2 @@ +This is a *modified* version of the CSI 1.0.0 spec. It's only purpose is +to test the stripping of secret fields. diff --git a/vendor/github.com/kubernetes-csi/csi-lib-utils/protosanitizer/test/csi.proto b/vendor/github.com/kubernetes-csi/csi-lib-utils/protosanitizer/test/csi.proto new file mode 100644 index 000000000..5a6dddbc6 --- /dev/null +++ b/vendor/github.com/kubernetes-csi/csi-lib-utils/protosanitizer/test/csi.proto @@ -0,0 +1,1203 @@ +// Code generated by make; DO NOT EDIT. +syntax = "proto3"; +package csi.v1; + +import "google/protobuf/descriptor.proto"; +import "google/protobuf/timestamp.proto"; +import "google/protobuf/wrappers.proto"; + +option go_package = "csi"; + +extend google.protobuf.FieldOptions { + // Indicates that a field MAY contain information that is sensitive + // and MUST be treated as such (e.g. not logged). + bool csi_secret = 1059; +} +service Identity { + rpc GetPluginInfo(GetPluginInfoRequest) + returns (GetPluginInfoResponse) {} + + rpc GetPluginCapabilities(GetPluginCapabilitiesRequest) + returns (GetPluginCapabilitiesResponse) {} + + rpc Probe (ProbeRequest) + returns (ProbeResponse) {} +} + +service Controller { + rpc CreateVolume (CreateVolumeRequest) + returns (CreateVolumeResponse) {} + + rpc DeleteVolume (DeleteVolumeRequest) + returns (DeleteVolumeResponse) {} + + rpc ControllerPublishVolume (ControllerPublishVolumeRequest) + returns (ControllerPublishVolumeResponse) {} + + rpc ControllerUnpublishVolume (ControllerUnpublishVolumeRequest) + returns (ControllerUnpublishVolumeResponse) {} + + rpc ValidateVolumeCapabilities (ValidateVolumeCapabilitiesRequest) + returns (ValidateVolumeCapabilitiesResponse) {} + + rpc ListVolumes (ListVolumesRequest) + returns (ListVolumesResponse) {} + + rpc GetCapacity (GetCapacityRequest) + returns (GetCapacityResponse) {} + + rpc ControllerGetCapabilities (ControllerGetCapabilitiesRequest) + returns (ControllerGetCapabilitiesResponse) {} + + rpc CreateSnapshot (CreateSnapshotRequest) + returns (CreateSnapshotResponse) {} + + rpc DeleteSnapshot (DeleteSnapshotRequest) + returns (DeleteSnapshotResponse) {} + + rpc ListSnapshots (ListSnapshotsRequest) + returns (ListSnapshotsResponse) {} +} + +service Node { + rpc NodeStageVolume (NodeStageVolumeRequest) + returns (NodeStageVolumeResponse) {} + + rpc NodeUnstageVolume (NodeUnstageVolumeRequest) + returns (NodeUnstageVolumeResponse) {} + + rpc NodePublishVolume (NodePublishVolumeRequest) + returns (NodePublishVolumeResponse) {} + + rpc NodeUnpublishVolume (NodeUnpublishVolumeRequest) + returns (NodeUnpublishVolumeResponse) {} + + rpc NodeGetVolumeStats (NodeGetVolumeStatsRequest) + returns (NodeGetVolumeStatsResponse) {} + + rpc NodeGetCapabilities (NodeGetCapabilitiesRequest) + returns (NodeGetCapabilitiesResponse) {} + + rpc NodeGetInfo (NodeGetInfoRequest) + returns (NodeGetInfoResponse) {} +} +message GetPluginInfoRequest { + // Intentionally empty. +} + +message GetPluginInfoResponse { + // The name MUST follow domain name notation format + // (https://tools.ietf.org/html/rfc1035#section-2.3.1). It SHOULD + // include the plugin's host company name and the plugin name, + // to minimize the possibility of collisions. It MUST be 63 + // characters or less, beginning and ending with an alphanumeric + // character ([a-z0-9A-Z]) with dashes (-), dots (.), and + // alphanumerics between. This field is REQUIRED. + string name = 1; + + // This field is REQUIRED. Value of this field is opaque to the CO. + string vendor_version = 2; + + // This field is OPTIONAL. Values are opaque to the CO. + map manifest = 3; +} +message GetPluginCapabilitiesRequest { + // Intentionally empty. +} + +message GetPluginCapabilitiesResponse { + // All the capabilities that the controller service supports. This + // field is OPTIONAL. + repeated PluginCapability capabilities = 1; +} + +// Specifies a capability of the plugin. +message PluginCapability { + message Service { + enum Type { + UNKNOWN = 0; + + // CONTROLLER_SERVICE indicates that the Plugin provides RPCs for + // the ControllerService. Plugins SHOULD provide this capability. + // In rare cases certain plugins MAY wish to omit the + // ControllerService entirely from their implementation, but such + // SHOULD NOT be the common case. + // The presence of this capability determines whether the CO will + // attempt to invoke the REQUIRED ControllerService RPCs, as well + // as specific RPCs as indicated by ControllerGetCapabilities. + CONTROLLER_SERVICE = 1; + + // VOLUME_ACCESSIBILITY_CONSTRAINTS indicates that the volumes for + // this plugin MAY NOT be equally accessible by all nodes in the + // cluster. The CO MUST use the topology information returned by + // CreateVolumeRequest along with the topology information + // returned by NodeGetInfo to ensure that a given volume is + // accessible from a given node when scheduling workloads. + VOLUME_ACCESSIBILITY_CONSTRAINTS = 2; + } + Type type = 1; + } + + oneof type { + // Service that the plugin supports. + Service service = 1; + } +} +message ProbeRequest { + // Intentionally empty. +} + +message ProbeResponse { + // Readiness allows a plugin to report its initialization status back + // to the CO. Initialization for some plugins MAY be time consuming + // and it is important for a CO to distinguish between the following + // cases: + // + // 1) The plugin is in an unhealthy state and MAY need restarting. In + // this case a gRPC error code SHALL be returned. + // 2) The plugin is still initializing, but is otherwise perfectly + // healthy. In this case a successful response SHALL be returned + // with a readiness value of `false`. Calls to the plugin's + // Controller and/or Node services MAY fail due to an incomplete + // initialization state. + // 3) The plugin has finished initializing and is ready to service + // calls to its Controller and/or Node services. A successful + // response is returned with a readiness value of `true`. + // + // This field is OPTIONAL. If not present, the caller SHALL assume + // that the plugin is in a ready state and is accepting calls to its + // Controller and/or Node services (according to the plugin's reported + // capabilities). + .google.protobuf.BoolValue ready = 1; +} +message CreateVolumeRequest { + // The suggested name for the storage space. This field is REQUIRED. + // It serves two purposes: + // 1) Idempotency - This name is generated by the CO to achieve + // idempotency. The Plugin SHOULD ensure that multiple + // `CreateVolume` calls for the same name do not result in more + // than one piece of storage provisioned corresponding to that + // name. If a Plugin is unable to enforce idempotency, the CO's + // error recovery logic could result in multiple (unused) volumes + // being provisioned. + // In the case of error, the CO MUST handle the gRPC error codes + // per the recovery behavior defined in the "CreateVolume Errors" + // section below. + // The CO is responsible for cleaning up volumes it provisioned + // that it no longer needs. If the CO is uncertain whether a volume + // was provisioned or not when a `CreateVolume` call fails, the CO + // MAY call `CreateVolume` again, with the same name, to ensure the + // volume exists and to retrieve the volume's `volume_id` (unless + // otherwise prohibited by "CreateVolume Errors"). + // 2) Suggested name - Some storage systems allow callers to specify + // an identifier by which to refer to the newly provisioned + // storage. If a storage system supports this, it can optionally + // use this name as the identifier for the new volume. + // Any Unicode string that conforms to the length limit is allowed + // except those containing the following banned characters: + // U+0000-U+0008, U+000B, U+000C, U+000E-U+001F, U+007F-U+009F. + // (These are control characters other than commonly used whitespace.) + string name = 1; + + // This field is OPTIONAL. This allows the CO to specify the capacity + // requirement of the volume to be provisioned. If not specified, the + // Plugin MAY choose an implementation-defined capacity range. If + // specified it MUST always be honored, even when creating volumes + // from a source; which MAY force some backends to internally extend + // the volume after creating it. + CapacityRange capacity_range = 2; + + // The capabilities that the provisioned volume MUST have. SP MUST + // provision a volume that will satisfy ALL of the capabilities + // specified in this list. Otherwise SP MUST return the appropriate + // gRPC error code. + // The Plugin MUST assume that the CO MAY use the provisioned volume + // with ANY of the capabilities specified in this list. + // For example, a CO MAY specify two volume capabilities: one with + // access mode SINGLE_NODE_WRITER and another with access mode + // MULTI_NODE_READER_ONLY. In this case, the SP MUST verify that the + // provisioned volume can be used in either mode. + // This also enables the CO to do early validation: If ANY of the + // specified volume capabilities are not supported by the SP, the call + // MUST return the appropriate gRPC error code. + // This field is REQUIRED. + repeated VolumeCapability volume_capabilities = 3; + + // Plugin specific parameters passed in as opaque key-value pairs. + // This field is OPTIONAL. The Plugin is responsible for parsing and + // validating these parameters. COs will treat these as opaque. + map parameters = 4; + + // Secrets required by plugin to complete volume creation request. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. + map secrets = 5 [(csi_secret) = true]; + + // If specified, the new volume will be pre-populated with data from + // this source. This field is OPTIONAL. + VolumeContentSource volume_content_source = 6; + + // Specifies where (regions, zones, racks, etc.) the provisioned + // volume MUST be accessible from. + // An SP SHALL advertise the requirements for topological + // accessibility information in documentation. COs SHALL only specify + // topological accessibility information supported by the SP. + // This field is OPTIONAL. + // This field SHALL NOT be specified unless the SP has the + // VOLUME_ACCESSIBILITY_CONSTRAINTS plugin capability. + // If this field is not specified and the SP has the + // VOLUME_ACCESSIBILITY_CONSTRAINTS plugin capability, the SP MAY + // choose where the provisioned volume is accessible from. + TopologyRequirement accessibility_requirements = 7; +} + +// Specifies what source the volume will be created from. One of the +// type fields MUST be specified. +message VolumeContentSource { + message SnapshotSource { + // Contains identity information for the existing source snapshot. + // This field is REQUIRED. Plugin is REQUIRED to support creating + // volume from snapshot if it supports the capability + // CREATE_DELETE_SNAPSHOT. + string snapshot_id = 1; + } + + message VolumeSource { + // Contains identity information for the existing source volume. + // This field is REQUIRED. Plugins reporting CLONE_VOLUME + // capability MUST support creating a volume from another volume. + string volume_id = 1; + } + + oneof type { + SnapshotSource snapshot = 1; + VolumeSource volume = 2; + } +} + +message CreateVolumeResponse { + // Contains all attributes of the newly created volume that are + // relevant to the CO along with information required by the Plugin + // to uniquely identify the volume. This field is REQUIRED. + Volume volume = 1; +} + +// Specify a capability of a volume. +message VolumeCapability { + // Indicate that the volume will be accessed via the block device API. + message BlockVolume { + // Intentionally empty, for now. + } + + // Indicate that the volume will be accessed via the filesystem API. + message MountVolume { + // The filesystem type. This field is OPTIONAL. + // An empty string is equal to an unspecified field value. + string fs_type = 1; + + // The mount options that can be used for the volume. This field is + // OPTIONAL. `mount_flags` MAY contain sensitive information. + // Therefore, the CO and the Plugin MUST NOT leak this information + // to untrusted entities. The total size of this repeated field + // SHALL NOT exceed 4 KiB. + repeated string mount_flags = 2; + } + + // Specify how a volume can be accessed. + message AccessMode { + enum Mode { + UNKNOWN = 0; + + // Can only be published once as read/write on a single node, at + // any given time. + SINGLE_NODE_WRITER = 1; + + // Can only be published once as readonly on a single node, at + // any given time. + SINGLE_NODE_READER_ONLY = 2; + + // Can be published as readonly at multiple nodes simultaneously. + MULTI_NODE_READER_ONLY = 3; + + // Can be published at multiple nodes simultaneously. Only one of + // the node can be used as read/write. The rest will be readonly. + MULTI_NODE_SINGLE_WRITER = 4; + + // Can be published as read/write at multiple nodes + // simultaneously. + MULTI_NODE_MULTI_WRITER = 5; + } + + // This field is REQUIRED. + Mode mode = 1; + } + + // Specifies what API the volume will be accessed using. One of the + // following fields MUST be specified. + oneof access_type { + BlockVolume block = 1; + MountVolume mount = 2; + } + + // This is a REQUIRED field. + AccessMode access_mode = 3; +} + +// The capacity of the storage space in bytes. To specify an exact size, +// `required_bytes` and `limit_bytes` SHALL be set to the same value. At +// least one of the these fields MUST be specified. +message CapacityRange { + // Volume MUST be at least this big. This field is OPTIONAL. + // A value of 0 is equal to an unspecified field value. + // The value of this field MUST NOT be negative. + int64 required_bytes = 1; + + // Volume MUST not be bigger than this. This field is OPTIONAL. + // A value of 0 is equal to an unspecified field value. + // The value of this field MUST NOT be negative. + int64 limit_bytes = 2; +} + +// Information about a specific volume. +message Volume { + // The capacity of the volume in bytes. This field is OPTIONAL. If not + // set (value of 0), it indicates that the capacity of the volume is + // unknown (e.g., NFS share). + // The value of this field MUST NOT be negative. + int64 capacity_bytes = 1; + + // The identifier for this volume, generated by the plugin. + // This field is REQUIRED. + // This field MUST contain enough information to uniquely identify + // this specific volume vs all other volumes supported by this plugin. + // This field SHALL be used by the CO in subsequent calls to refer to + // this volume. + // The SP is NOT responsible for global uniqueness of volume_id across + // multiple SPs. + string volume_id = 2; + + // Opaque static properties of the volume. SP MAY use this field to + // ensure subsequent volume validation and publishing calls have + // contextual information. + // The contents of this field SHALL be opaque to a CO. + // The contents of this field SHALL NOT be mutable. + // The contents of this field SHALL be safe for the CO to cache. + // The contents of this field SHOULD NOT contain sensitive + // information. + // The contents of this field SHOULD NOT be used for uniquely + // identifying a volume. The `volume_id` alone SHOULD be sufficient to + // identify the volume. + // A volume uniquely identified by `volume_id` SHALL always report the + // same volume_context. + // This field is OPTIONAL and when present MUST be passed to volume + // validation and publishing calls. + map volume_context = 3; + + // If specified, indicates that the volume is not empty and is + // pre-populated with data from the specified source. + // This field is OPTIONAL. + VolumeContentSource content_source = 4; + + // Specifies where (regions, zones, racks, etc.) the provisioned + // volume is accessible from. + // A plugin that returns this field MUST also set the + // VOLUME_ACCESSIBILITY_CONSTRAINTS plugin capability. + // An SP MAY specify multiple topologies to indicate the volume is + // accessible from multiple locations. + // COs MAY use this information along with the topology information + // returned by NodeGetInfo to ensure that a given volume is accessible + // from a given node when scheduling workloads. + // This field is OPTIONAL. If it is not specified, the CO MAY assume + // the volume is equally accessible from all nodes in the cluster and + // MAY schedule workloads referencing the volume on any available + // node. + // + // Example 1: + // accessible_topology = {"region": "R1", "zone": "Z2"} + // Indicates a volume accessible only from the "region" "R1" and the + // "zone" "Z2". + // + // Example 2: + // accessible_topology = + // {"region": "R1", "zone": "Z2"}, + // {"region": "R1", "zone": "Z3"} + // Indicates a volume accessible from both "zone" "Z2" and "zone" "Z3" + // in the "region" "R1". + repeated Topology accessible_topology = 5; +} + +message TopologyRequirement { + // Specifies the list of topologies the provisioned volume MUST be + // accessible from. + // This field is OPTIONAL. If TopologyRequirement is specified either + // requisite or preferred or both MUST be specified. + // + // If requisite is specified, the provisioned volume MUST be + // accessible from at least one of the requisite topologies. + // + // Given + // x = number of topologies provisioned volume is accessible from + // n = number of requisite topologies + // The CO MUST ensure n >= 1. The SP MUST ensure x >= 1 + // If x==n, then the SP MUST make the provisioned volume available to + // all topologies from the list of requisite topologies. If it is + // unable to do so, the SP MUST fail the CreateVolume call. + // For example, if a volume should be accessible from a single zone, + // and requisite = + // {"region": "R1", "zone": "Z2"} + // then the provisioned volume MUST be accessible from the "region" + // "R1" and the "zone" "Z2". + // Similarly, if a volume should be accessible from two zones, and + // requisite = + // {"region": "R1", "zone": "Z2"}, + // {"region": "R1", "zone": "Z3"} + // then the provisioned volume MUST be accessible from the "region" + // "R1" and both "zone" "Z2" and "zone" "Z3". + // + // If xn, then the SP MUST make the provisioned volume available from + // all topologies from the list of requisite topologies and MAY choose + // the remaining x-n unique topologies from the list of all possible + // topologies. If it is unable to do so, the SP MUST fail the + // CreateVolume call. + // For example, if a volume should be accessible from two zones, and + // requisite = + // {"region": "R1", "zone": "Z2"} + // then the provisioned volume MUST be accessible from the "region" + // "R1" and the "zone" "Z2" and the SP may select the second zone + // independently, e.g. "R1/Z4". + repeated Topology requisite = 1; + + // Specifies the list of topologies the CO would prefer the volume to + // be provisioned in. + // + // This field is OPTIONAL. If TopologyRequirement is specified either + // requisite or preferred or both MUST be specified. + // + // An SP MUST attempt to make the provisioned volume available using + // the preferred topologies in order from first to last. + // + // If requisite is specified, all topologies in preferred list MUST + // also be present in the list of requisite topologies. + // + // If the SP is unable to to make the provisioned volume available + // from any of the preferred topologies, the SP MAY choose a topology + // from the list of requisite topologies. + // If the list of requisite topologies is not specified, then the SP + // MAY choose from the list of all possible topologies. + // If the list of requisite topologies is specified and the SP is + // unable to to make the provisioned volume available from any of the + // requisite topologies it MUST fail the CreateVolume call. + // + // Example 1: + // Given a volume should be accessible from a single zone, and + // requisite = + // {"region": "R1", "zone": "Z2"}, + // {"region": "R1", "zone": "Z3"} + // preferred = + // {"region": "R1", "zone": "Z3"} + // then the the SP SHOULD first attempt to make the provisioned volume + // available from "zone" "Z3" in the "region" "R1" and fall back to + // "zone" "Z2" in the "region" "R1" if that is not possible. + // + // Example 2: + // Given a volume should be accessible from a single zone, and + // requisite = + // {"region": "R1", "zone": "Z2"}, + // {"region": "R1", "zone": "Z3"}, + // {"region": "R1", "zone": "Z4"}, + // {"region": "R1", "zone": "Z5"} + // preferred = + // {"region": "R1", "zone": "Z4"}, + // {"region": "R1", "zone": "Z2"} + // then the the SP SHOULD first attempt to make the provisioned volume + // accessible from "zone" "Z4" in the "region" "R1" and fall back to + // "zone" "Z2" in the "region" "R1" if that is not possible. If that + // is not possible, the SP may choose between either the "zone" + // "Z3" or "Z5" in the "region" "R1". + // + // Example 3: + // Given a volume should be accessible from TWO zones (because an + // opaque parameter in CreateVolumeRequest, for example, specifies + // the volume is accessible from two zones, aka synchronously + // replicated), and + // requisite = + // {"region": "R1", "zone": "Z2"}, + // {"region": "R1", "zone": "Z3"}, + // {"region": "R1", "zone": "Z4"}, + // {"region": "R1", "zone": "Z5"} + // preferred = + // {"region": "R1", "zone": "Z5"}, + // {"region": "R1", "zone": "Z3"} + // then the the SP SHOULD first attempt to make the provisioned volume + // accessible from the combination of the two "zones" "Z5" and "Z3" in + // the "region" "R1". If that's not possible, it should fall back to + // a combination of "Z5" and other possibilities from the list of + // requisite. If that's not possible, it should fall back to a + // combination of "Z3" and other possibilities from the list of + // requisite. If that's not possible, it should fall back to a + // combination of other possibilities from the list of requisite. + repeated Topology preferred = 2; +} + +// Topology is a map of topological domains to topological segments. +// A topological domain is a sub-division of a cluster, like "region", +// "zone", "rack", etc. +// A topological segment is a specific instance of a topological domain, +// like "zone3", "rack3", etc. +// For example {"com.company/zone": "Z1", "com.company/rack": "R3"} +// Valid keys have two segments: an OPTIONAL prefix and name, separated +// by a slash (/), for example: "com.company.example/zone". +// The key name segment is REQUIRED. The prefix is OPTIONAL. +// The key name MUST be 63 characters or less, begin and end with an +// alphanumeric character ([a-z0-9A-Z]), and contain only dashes (-), +// underscores (_), dots (.), or alphanumerics in between, for example +// "zone". +// The key prefix MUST be 63 characters or less, begin and end with a +// lower-case alphanumeric character ([a-z0-9]), contain only +// dashes (-), dots (.), or lower-case alphanumerics in between, and +// follow domain name notation format +// (https://tools.ietf.org/html/rfc1035#section-2.3.1). +// The key prefix SHOULD include the plugin's host company name and/or +// the plugin name, to minimize the possibility of collisions with keys +// from other plugins. +// If a key prefix is specified, it MUST be identical across all +// topology keys returned by the SP (across all RPCs). +// Keys MUST be case-insensitive. Meaning the keys "Zone" and "zone" +// MUST not both exist. +// Each value (topological segment) MUST contain 1 or more strings. +// Each string MUST be 63 characters or less and begin and end with an +// alphanumeric character with '-', '_', '.', or alphanumerics in +// between. +message Topology { + map segments = 1; +} +message DeleteVolumeRequest { + // The ID of the volume to be deprovisioned. + // This field is REQUIRED. + string volume_id = 1; + + // Secrets required by plugin to complete volume deletion request. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. + map secrets = 2 [(csi_secret) = true]; +} + +message DeleteVolumeResponse { + // Intentionally empty. +} +message ControllerPublishVolumeRequest { + // The ID of the volume to be used on a node. + // This field is REQUIRED. + string volume_id = 1; + + // The ID of the node. This field is REQUIRED. The CO SHALL set this + // field to match the node ID returned by `NodeGetInfo`. + string node_id = 2; + + // Volume capability describing how the CO intends to use this volume. + // SP MUST ensure the CO can use the published volume as described. + // Otherwise SP MUST return the appropriate gRPC error code. + // This is a REQUIRED field. + VolumeCapability volume_capability = 3; + + // Indicates SP MUST publish the volume in readonly mode. + // CO MUST set this field to false if SP does not have the + // PUBLISH_READONLY controller capability. + // This is a REQUIRED field. + bool readonly = 4; + + // Secrets required by plugin to complete controller publish volume + // request. This field is OPTIONAL. Refer to the + // `Secrets Requirements` section on how to use this field. + map secrets = 5 [(csi_secret) = true]; + + // Volume context as returned by CO in CreateVolumeRequest. This field + // is OPTIONAL and MUST match the volume_context of the volume + // identified by `volume_id`. + map volume_context = 6; +} + +message ControllerPublishVolumeResponse { + // Opaque static publish properties of the volume. SP MAY use this + // field to ensure subsequent `NodeStageVolume` or `NodePublishVolume` + // calls calls have contextual information. + // The contents of this field SHALL be opaque to a CO. + // The contents of this field SHALL NOT be mutable. + // The contents of this field SHALL be safe for the CO to cache. + // The contents of this field SHOULD NOT contain sensitive + // information. + // The contents of this field SHOULD NOT be used for uniquely + // identifying a volume. The `volume_id` alone SHOULD be sufficient to + // identify the volume. + // This field is OPTIONAL and when present MUST be passed to + // subsequent `NodeStageVolume` or `NodePublishVolume` calls + map publish_context = 1; +} +message ControllerUnpublishVolumeRequest { + // The ID of the volume. This field is REQUIRED. + string volume_id = 1; + + // The ID of the node. This field is OPTIONAL. The CO SHOULD set this + // field to match the node ID returned by `NodeGetInfo` or leave it + // unset. If the value is set, the SP MUST unpublish the volume from + // the specified node. If the value is unset, the SP MUST unpublish + // the volume from all nodes it is published to. + string node_id = 2; + + // Secrets required by plugin to complete controller unpublish volume + // request. This SHOULD be the same secrets passed to the + // ControllerPublishVolume call for the specified volume. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. + map secrets = 3 [(csi_secret) = true]; +} + +message ControllerUnpublishVolumeResponse { + // Intentionally empty. +} +message ValidateVolumeCapabilitiesRequest { + // The ID of the volume to check. This field is REQUIRED. + string volume_id = 1; + + // Volume context as returned by CO in CreateVolumeRequest. This field + // is OPTIONAL and MUST match the volume_context of the volume + // identified by `volume_id`. + map volume_context = 2; + + // The capabilities that the CO wants to check for the volume. This + // call SHALL return "confirmed" only if all the volume capabilities + // specified below are supported. This field is REQUIRED. + repeated VolumeCapability volume_capabilities = 3; + + // See CreateVolumeRequest.parameters. + // This field is OPTIONAL. + map parameters = 4; + + // Secrets required by plugin to complete volume validation request. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. + map secrets = 5 [(csi_secret) = true]; +} + +message ValidateVolumeCapabilitiesResponse { + message Confirmed { + // Volume context validated by the plugin. + // This field is OPTIONAL. + map volume_context = 1; + + // Volume capabilities supported by the plugin. + // This field is REQUIRED. + repeated VolumeCapability volume_capabilities = 2; + + // The volume creation parameters validated by the plugin. + // This field is OPTIONAL. + map parameters = 3; + } + + // Confirmed indicates to the CO the set of capabilities that the + // plugin has validated. This field SHALL only be set to a non-empty + // value for successful validation responses. + // For successful validation responses, the CO SHALL compare the + // fields of this message to the originally requested capabilities in + // order to guard against an older plugin reporting "valid" for newer + // capability fields that it does not yet understand. + // This field is OPTIONAL. + Confirmed confirmed = 1; + + // Message to the CO if `confirmed` above is empty. This field is + // OPTIONAL. + // An empty string is equal to an unspecified field value. + string message = 2; +} +message ListVolumesRequest { + // If specified (non-zero value), the Plugin MUST NOT return more + // entries than this number in the response. If the actual number of + // entries is more than this number, the Plugin MUST set `next_token` + // in the response which can be used to get the next page of entries + // in the subsequent `ListVolumes` call. This field is OPTIONAL. If + // not specified (zero value), it means there is no restriction on the + // number of entries that can be returned. + // The value of this field MUST NOT be negative. + int32 max_entries = 1; + + // A token to specify where to start paginating. Set this field to + // `next_token` returned by a previous `ListVolumes` call to get the + // next page of entries. This field is OPTIONAL. + // An empty string is equal to an unspecified field value. + string starting_token = 2; +} + +message ListVolumesResponse { + message Entry { + Volume volume = 1; + } + + repeated Entry entries = 1; + + // This token allows you to get the next page of entries for + // `ListVolumes` request. If the number of entries is larger than + // `max_entries`, use the `next_token` as a value for the + // `starting_token` field in the next `ListVolumes` request. This + // field is OPTIONAL. + // An empty string is equal to an unspecified field value. + string next_token = 2; +} +message GetCapacityRequest { + // If specified, the Plugin SHALL report the capacity of the storage + // that can be used to provision volumes that satisfy ALL of the + // specified `volume_capabilities`. These are the same + // `volume_capabilities` the CO will use in `CreateVolumeRequest`. + // This field is OPTIONAL. + repeated VolumeCapability volume_capabilities = 1; + + // If specified, the Plugin SHALL report the capacity of the storage + // that can be used to provision volumes with the given Plugin + // specific `parameters`. These are the same `parameters` the CO will + // use in `CreateVolumeRequest`. This field is OPTIONAL. + map parameters = 2; + + // If specified, the Plugin SHALL report the capacity of the storage + // that can be used to provision volumes that in the specified + // `accessible_topology`. This is the same as the + // `accessible_topology` the CO returns in a `CreateVolumeResponse`. + // This field is OPTIONAL. This field SHALL NOT be set unless the + // plugin advertises the VOLUME_ACCESSIBILITY_CONSTRAINTS capability. + Topology accessible_topology = 3; +} + +message GetCapacityResponse { + // The available capacity, in bytes, of the storage that can be used + // to provision volumes. If `volume_capabilities` or `parameters` is + // specified in the request, the Plugin SHALL take those into + // consideration when calculating the available capacity of the + // storage. This field is REQUIRED. + // The value of this field MUST NOT be negative. + int64 available_capacity = 1; +} +message ControllerGetCapabilitiesRequest { + // Intentionally empty. +} + +message ControllerGetCapabilitiesResponse { + // All the capabilities that the controller service supports. This + // field is OPTIONAL. + repeated ControllerServiceCapability capabilities = 1; +} + +// Specifies a capability of the controller service. +message ControllerServiceCapability { + message RPC { + enum Type { + UNKNOWN = 0; + CREATE_DELETE_VOLUME = 1; + PUBLISH_UNPUBLISH_VOLUME = 2; + LIST_VOLUMES = 3; + GET_CAPACITY = 4; + // Currently the only way to consume a snapshot is to create + // a volume from it. Therefore plugins supporting + // CREATE_DELETE_SNAPSHOT MUST support creating volume from + // snapshot. + CREATE_DELETE_SNAPSHOT = 5; + LIST_SNAPSHOTS = 6; + // Plugins supporting volume cloning at the storage level MAY + // report this capability. The source volume MUST be managed by + // the same plugin. Not all volume sources and parameters + // combinations MAY work. + CLONE_VOLUME = 7; + // Indicates the SP supports ControllerPublishVolume.readonly + // field. + PUBLISH_READONLY = 8; + } + + Type type = 1; + } + + oneof type { + // RPC that the controller supports. + RPC rpc = 1; + } +} +message CreateSnapshotRequest { + // The ID of the source volume to be snapshotted. + // This field is REQUIRED. + string source_volume_id = 1; + + // The suggested name for the snapshot. This field is REQUIRED for + // idempotency. + // Any Unicode string that conforms to the length limit is allowed + // except those containing the following banned characters: + // U+0000-U+0008, U+000B, U+000C, U+000E-U+001F, U+007F-U+009F. + // (These are control characters other than commonly used whitespace.) + string name = 2; + + // Secrets required by plugin to complete snapshot creation request. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. + map secrets = 3 [(csi_secret) = true]; + + // Plugin specific parameters passed in as opaque key-value pairs. + // This field is OPTIONAL. The Plugin is responsible for parsing and + // validating these parameters. COs will treat these as opaque. + // Use cases for opaque parameters: + // - Specify a policy to automatically clean up the snapshot. + // - Specify an expiration date for the snapshot. + // - Specify whether the snapshot is readonly or read/write. + // - Specify if the snapshot should be replicated to some place. + // - Specify primary or secondary for replication systems that + // support snapshotting only on primary. + map parameters = 4; +} + +message CreateSnapshotResponse { + // Contains all attributes of the newly created snapshot that are + // relevant to the CO along with information required by the Plugin + // to uniquely identify the snapshot. This field is REQUIRED. + Snapshot snapshot = 1; +} + +// Information about a specific snapshot. +message Snapshot { + // This is the complete size of the snapshot in bytes. The purpose of + // this field is to give CO guidance on how much space is needed to + // create a volume from this snapshot. The size of the volume MUST NOT + // be less than the size of the source snapshot. This field is + // OPTIONAL. If this field is not set, it indicates that this size is + // unknown. The value of this field MUST NOT be negative and a size of + // zero means it is unspecified. + int64 size_bytes = 1; + + // The identifier for this snapshot, generated by the plugin. + // This field is REQUIRED. + // This field MUST contain enough information to uniquely identify + // this specific snapshot vs all other snapshots supported by this + // plugin. + // This field SHALL be used by the CO in subsequent calls to refer to + // this snapshot. + // The SP is NOT responsible for global uniqueness of snapshot_id + // across multiple SPs. + string snapshot_id = 2; + + // Identity information for the source volume. Note that creating a + // snapshot from a snapshot is not supported here so the source has to + // be a volume. This field is REQUIRED. + string source_volume_id = 3; + + // Timestamp when the point-in-time snapshot is taken on the storage + // system. This field is REQUIRED. + .google.protobuf.Timestamp creation_time = 4; + + // Indicates if a snapshot is ready to use as a + // `volume_content_source` in a `CreateVolumeRequest`. The default + // value is false. This field is REQUIRED. + bool ready_to_use = 5; +} +message DeleteSnapshotRequest { + // The ID of the snapshot to be deleted. + // This field is REQUIRED. + string snapshot_id = 1; + + // Secrets required by plugin to complete snapshot deletion request. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. + map secrets = 2 [(csi_secret) = true]; +} + +message DeleteSnapshotResponse {} +// List all snapshots on the storage system regardless of how they were +// created. +message ListSnapshotsRequest { + // If specified (non-zero value), the Plugin MUST NOT return more + // entries than this number in the response. If the actual number of + // entries is more than this number, the Plugin MUST set `next_token` + // in the response which can be used to get the next page of entries + // in the subsequent `ListSnapshots` call. This field is OPTIONAL. If + // not specified (zero value), it means there is no restriction on the + // number of entries that can be returned. + // The value of this field MUST NOT be negative. + int32 max_entries = 1; + + // A token to specify where to start paginating. Set this field to + // `next_token` returned by a previous `ListSnapshots` call to get the + // next page of entries. This field is OPTIONAL. + // An empty string is equal to an unspecified field value. + string starting_token = 2; + + // Identity information for the source volume. This field is OPTIONAL. + // It can be used to list snapshots by volume. + string source_volume_id = 3; + + // Identity information for a specific snapshot. This field is + // OPTIONAL. It can be used to list only a specific snapshot. + // ListSnapshots will return with current snapshot information + // and will not block if the snapshot is being processed after + // it is cut. + string snapshot_id = 4; +} + +message ListSnapshotsResponse { + message Entry { + Snapshot snapshot = 1; + } + + repeated Entry entries = 1; + + // This token allows you to get the next page of entries for + // `ListSnapshots` request. If the number of entries is larger than + // `max_entries`, use the `next_token` as a value for the + // `starting_token` field in the next `ListSnapshots` request. This + // field is OPTIONAL. + // An empty string is equal to an unspecified field value. + string next_token = 2; +} +message NodeStageVolumeRequest { + // The ID of the volume to publish. This field is REQUIRED. + string volume_id = 1; + + // The CO SHALL set this field to the value returned by + // `ControllerPublishVolume` if the corresponding Controller Plugin + // has `PUBLISH_UNPUBLISH_VOLUME` controller capability, and SHALL be + // left unset if the corresponding Controller Plugin does not have + // this capability. This is an OPTIONAL field. + map publish_context = 2; + + // The path to which the volume MAY be staged. It MUST be an + // absolute path in the root filesystem of the process serving this + // request, and MUST be a directory. The CO SHALL ensure that there + // is only one `staging_target_path` per volume. The CO SHALL ensure + // that the path is directory and that the process serving the + // request has `read` and `write` permission to that directory. The + // CO SHALL be responsible for creating the directory if it does not + // exist. + // This is a REQUIRED field. + string staging_target_path = 3; + + // Volume capability describing how the CO intends to use this volume. + // SP MUST ensure the CO can use the staged volume as described. + // Otherwise SP MUST return the appropriate gRPC error code. + // This is a REQUIRED field. + VolumeCapability volume_capability = 4; + + // Secrets required by plugin to complete node stage volume request. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. + map secrets = 5 [(csi_secret) = true]; + + // Volume context as returned by CO in CreateVolumeRequest. This field + // is OPTIONAL and MUST match the volume_context of the volume + // identified by `volume_id`. + map volume_context = 6; +} + +message NodeStageVolumeResponse { + // Intentionally empty. +} +message NodeUnstageVolumeRequest { + // The ID of the volume. This field is REQUIRED. + string volume_id = 1; + + // The path at which the volume was staged. It MUST be an absolute + // path in the root filesystem of the process serving this request. + // This is a REQUIRED field. + string staging_target_path = 2; +} + +message NodeUnstageVolumeResponse { + // Intentionally empty. +} +message NodePublishVolumeRequest { + // The ID of the volume to publish. This field is REQUIRED. + string volume_id = 1; + + // The CO SHALL set this field to the value returned by + // `ControllerPublishVolume` if the corresponding Controller Plugin + // has `PUBLISH_UNPUBLISH_VOLUME` controller capability, and SHALL be + // left unset if the corresponding Controller Plugin does not have + // this capability. This is an OPTIONAL field. + map publish_context = 2; + + // The path to which the volume was staged by `NodeStageVolume`. + // It MUST be an absolute path in the root filesystem of the process + // serving this request. + // It MUST be set if the Node Plugin implements the + // `STAGE_UNSTAGE_VOLUME` node capability. + // This is an OPTIONAL field. + string staging_target_path = 3; + + // The path to which the volume will be published. It MUST be an + // absolute path in the root filesystem of the process serving this + // request. The CO SHALL ensure uniqueness of target_path per volume. + // The CO SHALL ensure that the parent directory of this path exists + // and that the process serving the request has `read` and `write` + // permissions to that parent directory. + // For volumes with an access type of block, the SP SHALL place the + // block device at target_path. + // For volumes with an access type of mount, the SP SHALL place the + // mounted directory at target_path. + // Creation of target_path is the responsibility of the SP. + // This is a REQUIRED field. + string target_path = 4; + + // Volume capability describing how the CO intends to use this volume. + // SP MUST ensure the CO can use the published volume as described. + // Otherwise SP MUST return the appropriate gRPC error code. + // This is a REQUIRED field. + VolumeCapability volume_capability = 5; + + // Indicates SP MUST publish the volume in readonly mode. + // This field is REQUIRED. + bool readonly = 6; + + // Secrets required by plugin to complete node publish volume request. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. + map secrets = 7 [(csi_secret) = true]; + + // Volume context as returned by CO in CreateVolumeRequest. This field + // is OPTIONAL and MUST match the volume_context of the volume + // identified by `volume_id`. + map volume_context = 8; +} + +message NodePublishVolumeResponse { + // Intentionally empty. +} +message NodeUnpublishVolumeRequest { + // The ID of the volume. This field is REQUIRED. + string volume_id = 1; + + // The path at which the volume was published. It MUST be an absolute + // path in the root filesystem of the process serving this request. + // The SP MUST delete the file or directory it created at this path. + // This is a REQUIRED field. + string target_path = 2; +} + +message NodeUnpublishVolumeResponse { + // Intentionally empty. +} +message NodeGetVolumeStatsRequest { + // The ID of the volume. This field is REQUIRED. + string volume_id = 1; + + // It can be any valid path where volume was previously + // staged or published. + // It MUST be an absolute path in the root filesystem of + // the process serving this request. + // This is a REQUIRED field. + string volume_path = 2; +} + +message NodeGetVolumeStatsResponse { + // This field is OPTIONAL. + repeated VolumeUsage usage = 1; +} + +message VolumeUsage { + enum Unit { + UNKNOWN = 0; + BYTES = 1; + INODES = 2; + } + // The available capacity in specified Unit. This field is OPTIONAL. + // The value of this field MUST NOT be negative. + int64 available = 1; + + // The total capacity in specified Unit. This field is REQUIRED. + // The value of this field MUST NOT be negative. + int64 total = 2; + + // The used capacity in specified Unit. This field is OPTIONAL. + // The value of this field MUST NOT be negative. + int64 used = 3; + + // Units by which values are measured. This field is REQUIRED. + Unit unit = 4; +} +message NodeGetCapabilitiesRequest { + // Intentionally empty. +} + +message NodeGetCapabilitiesResponse { + // All the capabilities that the node service supports. This field + // is OPTIONAL. + repeated NodeServiceCapability capabilities = 1; +} + +// Specifies a capability of the node service. +message NodeServiceCapability { + message RPC { + enum Type { + UNKNOWN = 0; + STAGE_UNSTAGE_VOLUME = 1; + // If Plugin implements GET_VOLUME_STATS capability + // then it MUST implement NodeGetVolumeStats RPC + // call for fetching volume statistics. + GET_VOLUME_STATS = 2; + } + + Type type = 1; + } + + oneof type { + // RPC that the controller supports. + RPC rpc = 1; + } +} +message NodeGetInfoRequest { +} + +message NodeGetInfoResponse { + // The identifier of the node as understood by the SP. + // This field is REQUIRED. + // This field MUST contain enough information to uniquely identify + // this specific node vs all other nodes supported by this plugin. + // This field SHALL be used by the CO in subsequent calls, including + // `ControllerPublishVolume`, to refer to this node. + // The SP is NOT responsible for global uniqueness of node_id across + // multiple SPs. + string node_id = 1; + + // Maximum number of volumes that controller can publish to the node. + // If value is not set or zero CO SHALL decide how many volumes of + // this type can be published by the controller to the node. The + // plugin MUST NOT set negative values here. + // This field is OPTIONAL. + int64 max_volumes_per_node = 2; + + // Specifies where (regions, zones, racks, etc.) the node is + // accessible from. + // A plugin that returns this field MUST also set the + // VOLUME_ACCESSIBILITY_CONSTRAINTS plugin capability. + // COs MAY use this information along with the topology information + // returned in CreateVolumeResponse to ensure that a given volume is + // accessible from a given node when scheduling workloads. + // This field is OPTIONAL. If it is not specified, the CO MAY assume + // the node is not subject to any topological constraint, and MAY + // schedule workloads that reference any volume V, such that there are + // no topological constraints declared for V. + // + // Example 1: + // accessible_topology = + // {"region": "R1", "zone": "R2"} + // Indicates the node exists within the "region" "R1" and the "zone" + // "Z2". + Topology accessible_topology = 3; +} diff --git a/vendor/github.com/kubernetes-csi/csi-lib-utils/protosanitizer/test/csi03/csi.pb.go b/vendor/github.com/kubernetes-csi/csi-lib-utils/protosanitizer/test/csi03/csi.pb.go new file mode 100644 index 000000000..612cfdd71 --- /dev/null +++ b/vendor/github.com/kubernetes-csi/csi-lib-utils/protosanitizer/test/csi03/csi.pb.go @@ -0,0 +1,4991 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: csi.proto + +package csi + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +type PluginCapability_Service_Type int32 + +const ( + PluginCapability_Service_UNKNOWN PluginCapability_Service_Type = 0 + // CONTROLLER_SERVICE indicates that the Plugin provides RPCs for + // the ControllerService. Plugins SHOULD provide this capability. + // In rare cases certain plugins may wish to omit the + // ControllerService entirely from their implementation, but such + // SHOULD NOT be the common case. + // The presence of this capability determines whether the CO will + // attempt to invoke the REQUIRED ControllerService RPCs, as well + // as specific RPCs as indicated by ControllerGetCapabilities. + PluginCapability_Service_CONTROLLER_SERVICE PluginCapability_Service_Type = 1 + // ACCESSIBILITY_CONSTRAINTS indicates that the volumes for this + // plugin may not be equally accessible by all nodes in the + // cluster. The CO MUST use the topology information returned by + // CreateVolumeRequest along with the topology information + // returned by NodeGetInfo to ensure that a given volume is + // accessible from a given node when scheduling workloads. + PluginCapability_Service_ACCESSIBILITY_CONSTRAINTS PluginCapability_Service_Type = 2 +) + +var PluginCapability_Service_Type_name = map[int32]string{ + 0: "UNKNOWN", + 1: "CONTROLLER_SERVICE", + 2: "ACCESSIBILITY_CONSTRAINTS", +} +var PluginCapability_Service_Type_value = map[string]int32{ + "UNKNOWN": 0, + "CONTROLLER_SERVICE": 1, + "ACCESSIBILITY_CONSTRAINTS": 2, +} + +func (x PluginCapability_Service_Type) String() string { + return proto.EnumName(PluginCapability_Service_Type_name, int32(x)) +} +func (PluginCapability_Service_Type) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{4, 0, 0} +} + +type VolumeCapability_AccessMode_Mode int32 + +const ( + VolumeCapability_AccessMode_UNKNOWN VolumeCapability_AccessMode_Mode = 0 + // Can only be published once as read/write on a single node, at + // any given time. + VolumeCapability_AccessMode_SINGLE_NODE_WRITER VolumeCapability_AccessMode_Mode = 1 + // Can only be published once as readonly on a single node, at + // any given time. + VolumeCapability_AccessMode_SINGLE_NODE_READER_ONLY VolumeCapability_AccessMode_Mode = 2 + // Can be published as readonly at multiple nodes simultaneously. + VolumeCapability_AccessMode_MULTI_NODE_READER_ONLY VolumeCapability_AccessMode_Mode = 3 + // Can be published at multiple nodes simultaneously. Only one of + // the node can be used as read/write. The rest will be readonly. + VolumeCapability_AccessMode_MULTI_NODE_SINGLE_WRITER VolumeCapability_AccessMode_Mode = 4 + // Can be published as read/write at multiple nodes + // simultaneously. + VolumeCapability_AccessMode_MULTI_NODE_MULTI_WRITER VolumeCapability_AccessMode_Mode = 5 +) + +var VolumeCapability_AccessMode_Mode_name = map[int32]string{ + 0: "UNKNOWN", + 1: "SINGLE_NODE_WRITER", + 2: "SINGLE_NODE_READER_ONLY", + 3: "MULTI_NODE_READER_ONLY", + 4: "MULTI_NODE_SINGLE_WRITER", + 5: "MULTI_NODE_MULTI_WRITER", +} +var VolumeCapability_AccessMode_Mode_value = map[string]int32{ + "UNKNOWN": 0, + "SINGLE_NODE_WRITER": 1, + "SINGLE_NODE_READER_ONLY": 2, + "MULTI_NODE_READER_ONLY": 3, + "MULTI_NODE_SINGLE_WRITER": 4, + "MULTI_NODE_MULTI_WRITER": 5, +} + +func (x VolumeCapability_AccessMode_Mode) String() string { + return proto.EnumName(VolumeCapability_AccessMode_Mode_name, int32(x)) +} +func (VolumeCapability_AccessMode_Mode) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{10, 2, 0} +} + +type ControllerServiceCapability_RPC_Type int32 + +const ( + ControllerServiceCapability_RPC_UNKNOWN ControllerServiceCapability_RPC_Type = 0 + ControllerServiceCapability_RPC_CREATE_DELETE_VOLUME ControllerServiceCapability_RPC_Type = 1 + ControllerServiceCapability_RPC_PUBLISH_UNPUBLISH_VOLUME ControllerServiceCapability_RPC_Type = 2 + ControllerServiceCapability_RPC_LIST_VOLUMES ControllerServiceCapability_RPC_Type = 3 + ControllerServiceCapability_RPC_GET_CAPACITY ControllerServiceCapability_RPC_Type = 4 + // Currently the only way to consume a snapshot is to create + // a volume from it. Therefore plugins supporting + // CREATE_DELETE_SNAPSHOT MUST support creating volume from + // snapshot. + ControllerServiceCapability_RPC_CREATE_DELETE_SNAPSHOT ControllerServiceCapability_RPC_Type = 5 + // LIST_SNAPSHOTS is NOT REQUIRED. For plugins that need to upload + // a snapshot after it is being cut, LIST_SNAPSHOTS COULD be used + // with the snapshot_id as the filter to query whether the + // uploading process is complete or not. + ControllerServiceCapability_RPC_LIST_SNAPSHOTS ControllerServiceCapability_RPC_Type = 6 +) + +var ControllerServiceCapability_RPC_Type_name = map[int32]string{ + 0: "UNKNOWN", + 1: "CREATE_DELETE_VOLUME", + 2: "PUBLISH_UNPUBLISH_VOLUME", + 3: "LIST_VOLUMES", + 4: "GET_CAPACITY", + 5: "CREATE_DELETE_SNAPSHOT", + 6: "LIST_SNAPSHOTS", +} +var ControllerServiceCapability_RPC_Type_value = map[string]int32{ + "UNKNOWN": 0, + "CREATE_DELETE_VOLUME": 1, + "PUBLISH_UNPUBLISH_VOLUME": 2, + "LIST_VOLUMES": 3, + "GET_CAPACITY": 4, + "CREATE_DELETE_SNAPSHOT": 5, + "LIST_SNAPSHOTS": 6, +} + +func (x ControllerServiceCapability_RPC_Type) String() string { + return proto.EnumName(ControllerServiceCapability_RPC_Type_name, int32(x)) +} +func (ControllerServiceCapability_RPC_Type) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{29, 0, 0} +} + +type SnapshotStatus_Type int32 + +const ( + SnapshotStatus_UNKNOWN SnapshotStatus_Type = 0 + // A snapshot is ready for use. + SnapshotStatus_READY SnapshotStatus_Type = 1 + // A snapshot is cut and is now being uploaded. + // Some cloud providers and storage systems uploads the snapshot + // to the cloud after the snapshot is cut. During this phase, + // `thaw` can be done so the application can be running again if + // `freeze` was done before taking the snapshot. + SnapshotStatus_UPLOADING SnapshotStatus_Type = 2 + // An error occurred during the snapshot uploading process. + // This error status is specific for uploading because + // `CreateSnaphot` is a blocking call before the snapshot is + // cut and therefore it SHOULD NOT come back with an error + // status when an error occurs. Instead a gRPC error code SHALL + // be returned by `CreateSnapshot` when an error occurs before + // a snapshot is cut. + SnapshotStatus_ERROR_UPLOADING SnapshotStatus_Type = 3 +) + +var SnapshotStatus_Type_name = map[int32]string{ + 0: "UNKNOWN", + 1: "READY", + 2: "UPLOADING", + 3: "ERROR_UPLOADING", +} +var SnapshotStatus_Type_value = map[string]int32{ + "UNKNOWN": 0, + "READY": 1, + "UPLOADING": 2, + "ERROR_UPLOADING": 3, +} + +func (x SnapshotStatus_Type) String() string { + return proto.EnumName(SnapshotStatus_Type_name, int32(x)) +} +func (SnapshotStatus_Type) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{33, 0} +} + +type NodeServiceCapability_RPC_Type int32 + +const ( + NodeServiceCapability_RPC_UNKNOWN NodeServiceCapability_RPC_Type = 0 + NodeServiceCapability_RPC_STAGE_UNSTAGE_VOLUME NodeServiceCapability_RPC_Type = 1 +) + +var NodeServiceCapability_RPC_Type_name = map[int32]string{ + 0: "UNKNOWN", + 1: "STAGE_UNSTAGE_VOLUME", +} +var NodeServiceCapability_RPC_Type_value = map[string]int32{ + "UNKNOWN": 0, + "STAGE_UNSTAGE_VOLUME": 1, +} + +func (x NodeServiceCapability_RPC_Type) String() string { + return proto.EnumName(NodeServiceCapability_RPC_Type_name, int32(x)) +} +func (NodeServiceCapability_RPC_Type) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{50, 0, 0} +} + +type GetPluginInfoRequest struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetPluginInfoRequest) Reset() { *m = GetPluginInfoRequest{} } +func (m *GetPluginInfoRequest) String() string { return proto.CompactTextString(m) } +func (*GetPluginInfoRequest) ProtoMessage() {} +func (*GetPluginInfoRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{0} +} +func (m *GetPluginInfoRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetPluginInfoRequest.Unmarshal(m, b) +} +func (m *GetPluginInfoRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetPluginInfoRequest.Marshal(b, m, deterministic) +} +func (dst *GetPluginInfoRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetPluginInfoRequest.Merge(dst, src) +} +func (m *GetPluginInfoRequest) XXX_Size() int { + return xxx_messageInfo_GetPluginInfoRequest.Size(m) +} +func (m *GetPluginInfoRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetPluginInfoRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetPluginInfoRequest proto.InternalMessageInfo + +type GetPluginInfoResponse struct { + // The name MUST follow reverse domain name notation format + // (https://en.wikipedia.org/wiki/Reverse_domain_name_notation). + // It SHOULD include the plugin's host company name and the plugin + // name, to minimize the possibility of collisions. It MUST be 63 + // characters or less, beginning and ending with an alphanumeric + // character ([a-z0-9A-Z]) with dashes (-), underscores (_), + // dots (.), and alphanumerics between. This field is REQUIRED. + Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + // This field is REQUIRED. Value of this field is opaque to the CO. + VendorVersion string `protobuf:"bytes,2,opt,name=vendor_version,json=vendorVersion" json:"vendor_version,omitempty"` + // This field is OPTIONAL. Values are opaque to the CO. + Manifest map[string]string `protobuf:"bytes,3,rep,name=manifest" json:"manifest,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetPluginInfoResponse) Reset() { *m = GetPluginInfoResponse{} } +func (m *GetPluginInfoResponse) String() string { return proto.CompactTextString(m) } +func (*GetPluginInfoResponse) ProtoMessage() {} +func (*GetPluginInfoResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{1} +} +func (m *GetPluginInfoResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetPluginInfoResponse.Unmarshal(m, b) +} +func (m *GetPluginInfoResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetPluginInfoResponse.Marshal(b, m, deterministic) +} +func (dst *GetPluginInfoResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetPluginInfoResponse.Merge(dst, src) +} +func (m *GetPluginInfoResponse) XXX_Size() int { + return xxx_messageInfo_GetPluginInfoResponse.Size(m) +} +func (m *GetPluginInfoResponse) XXX_DiscardUnknown() { + xxx_messageInfo_GetPluginInfoResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_GetPluginInfoResponse proto.InternalMessageInfo + +func (m *GetPluginInfoResponse) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *GetPluginInfoResponse) GetVendorVersion() string { + if m != nil { + return m.VendorVersion + } + return "" +} + +func (m *GetPluginInfoResponse) GetManifest() map[string]string { + if m != nil { + return m.Manifest + } + return nil +} + +type GetPluginCapabilitiesRequest struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetPluginCapabilitiesRequest) Reset() { *m = GetPluginCapabilitiesRequest{} } +func (m *GetPluginCapabilitiesRequest) String() string { return proto.CompactTextString(m) } +func (*GetPluginCapabilitiesRequest) ProtoMessage() {} +func (*GetPluginCapabilitiesRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{2} +} +func (m *GetPluginCapabilitiesRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetPluginCapabilitiesRequest.Unmarshal(m, b) +} +func (m *GetPluginCapabilitiesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetPluginCapabilitiesRequest.Marshal(b, m, deterministic) +} +func (dst *GetPluginCapabilitiesRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetPluginCapabilitiesRequest.Merge(dst, src) +} +func (m *GetPluginCapabilitiesRequest) XXX_Size() int { + return xxx_messageInfo_GetPluginCapabilitiesRequest.Size(m) +} +func (m *GetPluginCapabilitiesRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetPluginCapabilitiesRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetPluginCapabilitiesRequest proto.InternalMessageInfo + +type GetPluginCapabilitiesResponse struct { + // All the capabilities that the controller service supports. This + // field is OPTIONAL. + Capabilities []*PluginCapability `protobuf:"bytes,2,rep,name=capabilities" json:"capabilities,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetPluginCapabilitiesResponse) Reset() { *m = GetPluginCapabilitiesResponse{} } +func (m *GetPluginCapabilitiesResponse) String() string { return proto.CompactTextString(m) } +func (*GetPluginCapabilitiesResponse) ProtoMessage() {} +func (*GetPluginCapabilitiesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{3} +} +func (m *GetPluginCapabilitiesResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetPluginCapabilitiesResponse.Unmarshal(m, b) +} +func (m *GetPluginCapabilitiesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetPluginCapabilitiesResponse.Marshal(b, m, deterministic) +} +func (dst *GetPluginCapabilitiesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetPluginCapabilitiesResponse.Merge(dst, src) +} +func (m *GetPluginCapabilitiesResponse) XXX_Size() int { + return xxx_messageInfo_GetPluginCapabilitiesResponse.Size(m) +} +func (m *GetPluginCapabilitiesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_GetPluginCapabilitiesResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_GetPluginCapabilitiesResponse proto.InternalMessageInfo + +func (m *GetPluginCapabilitiesResponse) GetCapabilities() []*PluginCapability { + if m != nil { + return m.Capabilities + } + return nil +} + +// Specifies a capability of the plugin. +type PluginCapability struct { + // Types that are valid to be assigned to Type: + // *PluginCapability_Service_ + Type isPluginCapability_Type `protobuf_oneof:"type"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PluginCapability) Reset() { *m = PluginCapability{} } +func (m *PluginCapability) String() string { return proto.CompactTextString(m) } +func (*PluginCapability) ProtoMessage() {} +func (*PluginCapability) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{4} +} +func (m *PluginCapability) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PluginCapability.Unmarshal(m, b) +} +func (m *PluginCapability) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PluginCapability.Marshal(b, m, deterministic) +} +func (dst *PluginCapability) XXX_Merge(src proto.Message) { + xxx_messageInfo_PluginCapability.Merge(dst, src) +} +func (m *PluginCapability) XXX_Size() int { + return xxx_messageInfo_PluginCapability.Size(m) +} +func (m *PluginCapability) XXX_DiscardUnknown() { + xxx_messageInfo_PluginCapability.DiscardUnknown(m) +} + +var xxx_messageInfo_PluginCapability proto.InternalMessageInfo + +type isPluginCapability_Type interface { + isPluginCapability_Type() +} + +type PluginCapability_Service_ struct { + Service *PluginCapability_Service `protobuf:"bytes,1,opt,name=service,oneof"` +} + +func (*PluginCapability_Service_) isPluginCapability_Type() {} + +func (m *PluginCapability) GetType() isPluginCapability_Type { + if m != nil { + return m.Type + } + return nil +} + +func (m *PluginCapability) GetService() *PluginCapability_Service { + if x, ok := m.GetType().(*PluginCapability_Service_); ok { + return x.Service + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*PluginCapability) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _PluginCapability_OneofMarshaler, _PluginCapability_OneofUnmarshaler, _PluginCapability_OneofSizer, []interface{}{ + (*PluginCapability_Service_)(nil), + } +} + +func _PluginCapability_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*PluginCapability) + // type + switch x := m.Type.(type) { + case *PluginCapability_Service_: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Service); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("PluginCapability.Type has unexpected type %T", x) + } + return nil +} + +func _PluginCapability_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*PluginCapability) + switch tag { + case 1: // type.service + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(PluginCapability_Service) + err := b.DecodeMessage(msg) + m.Type = &PluginCapability_Service_{msg} + return true, err + default: + return false, nil + } +} + +func _PluginCapability_OneofSizer(msg proto.Message) (n int) { + m := msg.(*PluginCapability) + // type + switch x := m.Type.(type) { + case *PluginCapability_Service_: + s := proto.Size(x.Service) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +type PluginCapability_Service struct { + Type PluginCapability_Service_Type `protobuf:"varint,1,opt,name=type,enum=csi.v0.PluginCapability_Service_Type" json:"type,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PluginCapability_Service) Reset() { *m = PluginCapability_Service{} } +func (m *PluginCapability_Service) String() string { return proto.CompactTextString(m) } +func (*PluginCapability_Service) ProtoMessage() {} +func (*PluginCapability_Service) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{4, 0} +} +func (m *PluginCapability_Service) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PluginCapability_Service.Unmarshal(m, b) +} +func (m *PluginCapability_Service) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PluginCapability_Service.Marshal(b, m, deterministic) +} +func (dst *PluginCapability_Service) XXX_Merge(src proto.Message) { + xxx_messageInfo_PluginCapability_Service.Merge(dst, src) +} +func (m *PluginCapability_Service) XXX_Size() int { + return xxx_messageInfo_PluginCapability_Service.Size(m) +} +func (m *PluginCapability_Service) XXX_DiscardUnknown() { + xxx_messageInfo_PluginCapability_Service.DiscardUnknown(m) +} + +var xxx_messageInfo_PluginCapability_Service proto.InternalMessageInfo + +func (m *PluginCapability_Service) GetType() PluginCapability_Service_Type { + if m != nil { + return m.Type + } + return PluginCapability_Service_UNKNOWN +} + +type ProbeRequest struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ProbeRequest) Reset() { *m = ProbeRequest{} } +func (m *ProbeRequest) String() string { return proto.CompactTextString(m) } +func (*ProbeRequest) ProtoMessage() {} +func (*ProbeRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{5} +} +func (m *ProbeRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ProbeRequest.Unmarshal(m, b) +} +func (m *ProbeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ProbeRequest.Marshal(b, m, deterministic) +} +func (dst *ProbeRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProbeRequest.Merge(dst, src) +} +func (m *ProbeRequest) XXX_Size() int { + return xxx_messageInfo_ProbeRequest.Size(m) +} +func (m *ProbeRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ProbeRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ProbeRequest proto.InternalMessageInfo + +type ProbeResponse struct { + // Readiness allows a plugin to report its initialization status back + // to the CO. Initialization for some plugins MAY be time consuming + // and it is important for a CO to distinguish between the following + // cases: + // + // 1) The plugin is in an unhealthy state and MAY need restarting. In + // this case a gRPC error code SHALL be returned. + // 2) The plugin is still initializing, but is otherwise perfectly + // healthy. In this case a successful response SHALL be returned + // with a readiness value of `false`. Calls to the plugin's + // Controller and/or Node services MAY fail due to an incomplete + // initialization state. + // 3) The plugin has finished initializing and is ready to service + // calls to its Controller and/or Node services. A successful + // response is returned with a readiness value of `true`. + // + // This field is OPTIONAL. If not present, the caller SHALL assume + // that the plugin is in a ready state and is accepting calls to its + // Controller and/or Node services (according to the plugin's reported + // capabilities). + Ready *wrappers.BoolValue `protobuf:"bytes,1,opt,name=ready" json:"ready,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ProbeResponse) Reset() { *m = ProbeResponse{} } +func (m *ProbeResponse) String() string { return proto.CompactTextString(m) } +func (*ProbeResponse) ProtoMessage() {} +func (*ProbeResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{6} +} +func (m *ProbeResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ProbeResponse.Unmarshal(m, b) +} +func (m *ProbeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ProbeResponse.Marshal(b, m, deterministic) +} +func (dst *ProbeResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProbeResponse.Merge(dst, src) +} +func (m *ProbeResponse) XXX_Size() int { + return xxx_messageInfo_ProbeResponse.Size(m) +} +func (m *ProbeResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ProbeResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ProbeResponse proto.InternalMessageInfo + +func (m *ProbeResponse) GetReady() *wrappers.BoolValue { + if m != nil { + return m.Ready + } + return nil +} + +type CreateVolumeRequest struct { + // The suggested name for the storage space. This field is REQUIRED. + // It serves two purposes: + // 1) Idempotency - This name is generated by the CO to achieve + // idempotency. If `CreateVolume` fails, the volume may or may not + // be provisioned. In this case, the CO may call `CreateVolume` + // again, with the same name, to ensure the volume exists. The + // Plugin should ensure that multiple `CreateVolume` calls for the + // same name do not result in more than one piece of storage + // provisioned corresponding to that name. If a Plugin is unable to + // enforce idempotency, the CO's error recovery logic could result + // in multiple (unused) volumes being provisioned. + // 2) Suggested name - Some storage systems allow callers to specify + // an identifier by which to refer to the newly provisioned + // storage. If a storage system supports this, it can optionally + // use this name as the identifier for the new volume. + Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + CapacityRange *CapacityRange `protobuf:"bytes,2,opt,name=capacity_range,json=capacityRange" json:"capacity_range,omitempty"` + // The capabilities that the provisioned volume MUST have: the Plugin + // MUST provision a volume that could satisfy ALL of the + // capabilities specified in this list. The Plugin MUST assume that + // the CO MAY use the provisioned volume later with ANY of the + // capabilities specified in this list. This also enables the CO to do + // early validation: if ANY of the specified volume capabilities are + // not supported by the Plugin, the call SHALL fail. This field is + // REQUIRED. + VolumeCapabilities []*VolumeCapability `protobuf:"bytes,3,rep,name=volume_capabilities,json=volumeCapabilities" json:"volume_capabilities,omitempty"` + // Plugin specific parameters passed in as opaque key-value pairs. + // This field is OPTIONAL. The Plugin is responsible for parsing and + // validating these parameters. COs will treat these as opaque. + Parameters map[string]string `protobuf:"bytes,4,rep,name=parameters" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + // Secrets required by plugin to complete volume creation request. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. + ControllerCreateSecrets map[string]string `protobuf:"bytes,5,rep,name=controller_create_secrets,json=controllerCreateSecrets" json:"controller_create_secrets,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + // If specified, the new volume will be pre-populated with data from + // this source. This field is OPTIONAL. + VolumeContentSource *VolumeContentSource `protobuf:"bytes,6,opt,name=volume_content_source,json=volumeContentSource" json:"volume_content_source,omitempty"` + // Specifies where (regions, zones, racks, etc.) the provisioned + // volume MUST be accessible from. + // An SP SHALL advertise the requirements for topological + // accessibility information in documentation. COs SHALL only specify + // topological accessibility information supported by the SP. + // This field is OPTIONAL. + // This field SHALL NOT be specified unless the SP has the + // ACCESSIBILITY_CONSTRAINTS plugin capability. + // If this field is not specified and the SP has the + // ACCESSIBILITY_CONSTRAINTS plugin capability, the SP MAY choose + // where the provisioned volume is accessible from. + AccessibilityRequirements *TopologyRequirement `protobuf:"bytes,7,opt,name=accessibility_requirements,json=accessibilityRequirements" json:"accessibility_requirements,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CreateVolumeRequest) Reset() { *m = CreateVolumeRequest{} } +func (m *CreateVolumeRequest) String() string { return proto.CompactTextString(m) } +func (*CreateVolumeRequest) ProtoMessage() {} +func (*CreateVolumeRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{7} +} +func (m *CreateVolumeRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreateVolumeRequest.Unmarshal(m, b) +} +func (m *CreateVolumeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreateVolumeRequest.Marshal(b, m, deterministic) +} +func (dst *CreateVolumeRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateVolumeRequest.Merge(dst, src) +} +func (m *CreateVolumeRequest) XXX_Size() int { + return xxx_messageInfo_CreateVolumeRequest.Size(m) +} +func (m *CreateVolumeRequest) XXX_DiscardUnknown() { + xxx_messageInfo_CreateVolumeRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_CreateVolumeRequest proto.InternalMessageInfo + +func (m *CreateVolumeRequest) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *CreateVolumeRequest) GetCapacityRange() *CapacityRange { + if m != nil { + return m.CapacityRange + } + return nil +} + +func (m *CreateVolumeRequest) GetVolumeCapabilities() []*VolumeCapability { + if m != nil { + return m.VolumeCapabilities + } + return nil +} + +func (m *CreateVolumeRequest) GetParameters() map[string]string { + if m != nil { + return m.Parameters + } + return nil +} + +func (m *CreateVolumeRequest) GetControllerCreateSecrets() map[string]string { + if m != nil { + return m.ControllerCreateSecrets + } + return nil +} + +func (m *CreateVolumeRequest) GetVolumeContentSource() *VolumeContentSource { + if m != nil { + return m.VolumeContentSource + } + return nil +} + +func (m *CreateVolumeRequest) GetAccessibilityRequirements() *TopologyRequirement { + if m != nil { + return m.AccessibilityRequirements + } + return nil +} + +// Specifies what source the volume will be created from. One of the +// type fields MUST be specified. +type VolumeContentSource struct { + // Types that are valid to be assigned to Type: + // *VolumeContentSource_Snapshot + Type isVolumeContentSource_Type `protobuf_oneof:"type"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *VolumeContentSource) Reset() { *m = VolumeContentSource{} } +func (m *VolumeContentSource) String() string { return proto.CompactTextString(m) } +func (*VolumeContentSource) ProtoMessage() {} +func (*VolumeContentSource) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{8} +} +func (m *VolumeContentSource) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VolumeContentSource.Unmarshal(m, b) +} +func (m *VolumeContentSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VolumeContentSource.Marshal(b, m, deterministic) +} +func (dst *VolumeContentSource) XXX_Merge(src proto.Message) { + xxx_messageInfo_VolumeContentSource.Merge(dst, src) +} +func (m *VolumeContentSource) XXX_Size() int { + return xxx_messageInfo_VolumeContentSource.Size(m) +} +func (m *VolumeContentSource) XXX_DiscardUnknown() { + xxx_messageInfo_VolumeContentSource.DiscardUnknown(m) +} + +var xxx_messageInfo_VolumeContentSource proto.InternalMessageInfo + +type isVolumeContentSource_Type interface { + isVolumeContentSource_Type() +} + +type VolumeContentSource_Snapshot struct { + Snapshot *VolumeContentSource_SnapshotSource `protobuf:"bytes,1,opt,name=snapshot,oneof"` +} + +func (*VolumeContentSource_Snapshot) isVolumeContentSource_Type() {} + +func (m *VolumeContentSource) GetType() isVolumeContentSource_Type { + if m != nil { + return m.Type + } + return nil +} + +func (m *VolumeContentSource) GetSnapshot() *VolumeContentSource_SnapshotSource { + if x, ok := m.GetType().(*VolumeContentSource_Snapshot); ok { + return x.Snapshot + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*VolumeContentSource) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _VolumeContentSource_OneofMarshaler, _VolumeContentSource_OneofUnmarshaler, _VolumeContentSource_OneofSizer, []interface{}{ + (*VolumeContentSource_Snapshot)(nil), + } +} + +func _VolumeContentSource_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*VolumeContentSource) + // type + switch x := m.Type.(type) { + case *VolumeContentSource_Snapshot: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Snapshot); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("VolumeContentSource.Type has unexpected type %T", x) + } + return nil +} + +func _VolumeContentSource_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*VolumeContentSource) + switch tag { + case 1: // type.snapshot + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(VolumeContentSource_SnapshotSource) + err := b.DecodeMessage(msg) + m.Type = &VolumeContentSource_Snapshot{msg} + return true, err + default: + return false, nil + } +} + +func _VolumeContentSource_OneofSizer(msg proto.Message) (n int) { + m := msg.(*VolumeContentSource) + // type + switch x := m.Type.(type) { + case *VolumeContentSource_Snapshot: + s := proto.Size(x.Snapshot) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +type VolumeContentSource_SnapshotSource struct { + // Contains identity information for the existing source snapshot. + // This field is REQUIRED. Plugin is REQUIRED to support creating + // volume from snapshot if it supports the capability + // CREATE_DELETE_SNAPSHOT. + Id string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *VolumeContentSource_SnapshotSource) Reset() { *m = VolumeContentSource_SnapshotSource{} } +func (m *VolumeContentSource_SnapshotSource) String() string { return proto.CompactTextString(m) } +func (*VolumeContentSource_SnapshotSource) ProtoMessage() {} +func (*VolumeContentSource_SnapshotSource) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{8, 0} +} +func (m *VolumeContentSource_SnapshotSource) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VolumeContentSource_SnapshotSource.Unmarshal(m, b) +} +func (m *VolumeContentSource_SnapshotSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VolumeContentSource_SnapshotSource.Marshal(b, m, deterministic) +} +func (dst *VolumeContentSource_SnapshotSource) XXX_Merge(src proto.Message) { + xxx_messageInfo_VolumeContentSource_SnapshotSource.Merge(dst, src) +} +func (m *VolumeContentSource_SnapshotSource) XXX_Size() int { + return xxx_messageInfo_VolumeContentSource_SnapshotSource.Size(m) +} +func (m *VolumeContentSource_SnapshotSource) XXX_DiscardUnknown() { + xxx_messageInfo_VolumeContentSource_SnapshotSource.DiscardUnknown(m) +} + +var xxx_messageInfo_VolumeContentSource_SnapshotSource proto.InternalMessageInfo + +func (m *VolumeContentSource_SnapshotSource) GetId() string { + if m != nil { + return m.Id + } + return "" +} + +type CreateVolumeResponse struct { + // Contains all attributes of the newly created volume that are + // relevant to the CO along with information required by the Plugin + // to uniquely identify the volume. This field is REQUIRED. + Volume *Volume `protobuf:"bytes,1,opt,name=volume" json:"volume,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CreateVolumeResponse) Reset() { *m = CreateVolumeResponse{} } +func (m *CreateVolumeResponse) String() string { return proto.CompactTextString(m) } +func (*CreateVolumeResponse) ProtoMessage() {} +func (*CreateVolumeResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{9} +} +func (m *CreateVolumeResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreateVolumeResponse.Unmarshal(m, b) +} +func (m *CreateVolumeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreateVolumeResponse.Marshal(b, m, deterministic) +} +func (dst *CreateVolumeResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateVolumeResponse.Merge(dst, src) +} +func (m *CreateVolumeResponse) XXX_Size() int { + return xxx_messageInfo_CreateVolumeResponse.Size(m) +} +func (m *CreateVolumeResponse) XXX_DiscardUnknown() { + xxx_messageInfo_CreateVolumeResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_CreateVolumeResponse proto.InternalMessageInfo + +func (m *CreateVolumeResponse) GetVolume() *Volume { + if m != nil { + return m.Volume + } + return nil +} + +// Specify a capability of a volume. +type VolumeCapability struct { + // Specifies what API the volume will be accessed using. One of the + // following fields MUST be specified. + // + // Types that are valid to be assigned to AccessType: + // *VolumeCapability_Block + // *VolumeCapability_Mount + AccessType isVolumeCapability_AccessType `protobuf_oneof:"access_type"` + // This is a REQUIRED field. + AccessMode *VolumeCapability_AccessMode `protobuf:"bytes,3,opt,name=access_mode,json=accessMode" json:"access_mode,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *VolumeCapability) Reset() { *m = VolumeCapability{} } +func (m *VolumeCapability) String() string { return proto.CompactTextString(m) } +func (*VolumeCapability) ProtoMessage() {} +func (*VolumeCapability) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{10} +} +func (m *VolumeCapability) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VolumeCapability.Unmarshal(m, b) +} +func (m *VolumeCapability) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VolumeCapability.Marshal(b, m, deterministic) +} +func (dst *VolumeCapability) XXX_Merge(src proto.Message) { + xxx_messageInfo_VolumeCapability.Merge(dst, src) +} +func (m *VolumeCapability) XXX_Size() int { + return xxx_messageInfo_VolumeCapability.Size(m) +} +func (m *VolumeCapability) XXX_DiscardUnknown() { + xxx_messageInfo_VolumeCapability.DiscardUnknown(m) +} + +var xxx_messageInfo_VolumeCapability proto.InternalMessageInfo + +type isVolumeCapability_AccessType interface { + isVolumeCapability_AccessType() +} + +type VolumeCapability_Block struct { + Block *VolumeCapability_BlockVolume `protobuf:"bytes,1,opt,name=block,oneof"` +} +type VolumeCapability_Mount struct { + Mount *VolumeCapability_MountVolume `protobuf:"bytes,2,opt,name=mount,oneof"` +} + +func (*VolumeCapability_Block) isVolumeCapability_AccessType() {} +func (*VolumeCapability_Mount) isVolumeCapability_AccessType() {} + +func (m *VolumeCapability) GetAccessType() isVolumeCapability_AccessType { + if m != nil { + return m.AccessType + } + return nil +} + +func (m *VolumeCapability) GetBlock() *VolumeCapability_BlockVolume { + if x, ok := m.GetAccessType().(*VolumeCapability_Block); ok { + return x.Block + } + return nil +} + +func (m *VolumeCapability) GetMount() *VolumeCapability_MountVolume { + if x, ok := m.GetAccessType().(*VolumeCapability_Mount); ok { + return x.Mount + } + return nil +} + +func (m *VolumeCapability) GetAccessMode() *VolumeCapability_AccessMode { + if m != nil { + return m.AccessMode + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*VolumeCapability) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _VolumeCapability_OneofMarshaler, _VolumeCapability_OneofUnmarshaler, _VolumeCapability_OneofSizer, []interface{}{ + (*VolumeCapability_Block)(nil), + (*VolumeCapability_Mount)(nil), + } +} + +func _VolumeCapability_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*VolumeCapability) + // access_type + switch x := m.AccessType.(type) { + case *VolumeCapability_Block: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Block); err != nil { + return err + } + case *VolumeCapability_Mount: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Mount); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("VolumeCapability.AccessType has unexpected type %T", x) + } + return nil +} + +func _VolumeCapability_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*VolumeCapability) + switch tag { + case 1: // access_type.block + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(VolumeCapability_BlockVolume) + err := b.DecodeMessage(msg) + m.AccessType = &VolumeCapability_Block{msg} + return true, err + case 2: // access_type.mount + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(VolumeCapability_MountVolume) + err := b.DecodeMessage(msg) + m.AccessType = &VolumeCapability_Mount{msg} + return true, err + default: + return false, nil + } +} + +func _VolumeCapability_OneofSizer(msg proto.Message) (n int) { + m := msg.(*VolumeCapability) + // access_type + switch x := m.AccessType.(type) { + case *VolumeCapability_Block: + s := proto.Size(x.Block) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *VolumeCapability_Mount: + s := proto.Size(x.Mount) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// Indicate that the volume will be accessed via the block device API. +type VolumeCapability_BlockVolume struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *VolumeCapability_BlockVolume) Reset() { *m = VolumeCapability_BlockVolume{} } +func (m *VolumeCapability_BlockVolume) String() string { return proto.CompactTextString(m) } +func (*VolumeCapability_BlockVolume) ProtoMessage() {} +func (*VolumeCapability_BlockVolume) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{10, 0} +} +func (m *VolumeCapability_BlockVolume) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VolumeCapability_BlockVolume.Unmarshal(m, b) +} +func (m *VolumeCapability_BlockVolume) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VolumeCapability_BlockVolume.Marshal(b, m, deterministic) +} +func (dst *VolumeCapability_BlockVolume) XXX_Merge(src proto.Message) { + xxx_messageInfo_VolumeCapability_BlockVolume.Merge(dst, src) +} +func (m *VolumeCapability_BlockVolume) XXX_Size() int { + return xxx_messageInfo_VolumeCapability_BlockVolume.Size(m) +} +func (m *VolumeCapability_BlockVolume) XXX_DiscardUnknown() { + xxx_messageInfo_VolumeCapability_BlockVolume.DiscardUnknown(m) +} + +var xxx_messageInfo_VolumeCapability_BlockVolume proto.InternalMessageInfo + +// Indicate that the volume will be accessed via the filesystem API. +type VolumeCapability_MountVolume struct { + // The filesystem type. This field is OPTIONAL. + // An empty string is equal to an unspecified field value. + FsType string `protobuf:"bytes,1,opt,name=fs_type,json=fsType" json:"fs_type,omitempty"` + // The mount options that can be used for the volume. This field is + // OPTIONAL. `mount_flags` MAY contain sensitive information. + // Therefore, the CO and the Plugin MUST NOT leak this information + // to untrusted entities. The total size of this repeated field + // SHALL NOT exceed 4 KiB. + MountFlags []string `protobuf:"bytes,2,rep,name=mount_flags,json=mountFlags" json:"mount_flags,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *VolumeCapability_MountVolume) Reset() { *m = VolumeCapability_MountVolume{} } +func (m *VolumeCapability_MountVolume) String() string { return proto.CompactTextString(m) } +func (*VolumeCapability_MountVolume) ProtoMessage() {} +func (*VolumeCapability_MountVolume) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{10, 1} +} +func (m *VolumeCapability_MountVolume) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VolumeCapability_MountVolume.Unmarshal(m, b) +} +func (m *VolumeCapability_MountVolume) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VolumeCapability_MountVolume.Marshal(b, m, deterministic) +} +func (dst *VolumeCapability_MountVolume) XXX_Merge(src proto.Message) { + xxx_messageInfo_VolumeCapability_MountVolume.Merge(dst, src) +} +func (m *VolumeCapability_MountVolume) XXX_Size() int { + return xxx_messageInfo_VolumeCapability_MountVolume.Size(m) +} +func (m *VolumeCapability_MountVolume) XXX_DiscardUnknown() { + xxx_messageInfo_VolumeCapability_MountVolume.DiscardUnknown(m) +} + +var xxx_messageInfo_VolumeCapability_MountVolume proto.InternalMessageInfo + +func (m *VolumeCapability_MountVolume) GetFsType() string { + if m != nil { + return m.FsType + } + return "" +} + +func (m *VolumeCapability_MountVolume) GetMountFlags() []string { + if m != nil { + return m.MountFlags + } + return nil +} + +// Specify how a volume can be accessed. +type VolumeCapability_AccessMode struct { + // This field is REQUIRED. + Mode VolumeCapability_AccessMode_Mode `protobuf:"varint,1,opt,name=mode,enum=csi.v0.VolumeCapability_AccessMode_Mode" json:"mode,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *VolumeCapability_AccessMode) Reset() { *m = VolumeCapability_AccessMode{} } +func (m *VolumeCapability_AccessMode) String() string { return proto.CompactTextString(m) } +func (*VolumeCapability_AccessMode) ProtoMessage() {} +func (*VolumeCapability_AccessMode) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{10, 2} +} +func (m *VolumeCapability_AccessMode) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VolumeCapability_AccessMode.Unmarshal(m, b) +} +func (m *VolumeCapability_AccessMode) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VolumeCapability_AccessMode.Marshal(b, m, deterministic) +} +func (dst *VolumeCapability_AccessMode) XXX_Merge(src proto.Message) { + xxx_messageInfo_VolumeCapability_AccessMode.Merge(dst, src) +} +func (m *VolumeCapability_AccessMode) XXX_Size() int { + return xxx_messageInfo_VolumeCapability_AccessMode.Size(m) +} +func (m *VolumeCapability_AccessMode) XXX_DiscardUnknown() { + xxx_messageInfo_VolumeCapability_AccessMode.DiscardUnknown(m) +} + +var xxx_messageInfo_VolumeCapability_AccessMode proto.InternalMessageInfo + +func (m *VolumeCapability_AccessMode) GetMode() VolumeCapability_AccessMode_Mode { + if m != nil { + return m.Mode + } + return VolumeCapability_AccessMode_UNKNOWN +} + +// The capacity of the storage space in bytes. To specify an exact size, +// `required_bytes` and `limit_bytes` SHALL be set to the same value. At +// least one of the these fields MUST be specified. +type CapacityRange struct { + // Volume MUST be at least this big. This field is OPTIONAL. + // A value of 0 is equal to an unspecified field value. + // The value of this field MUST NOT be negative. + RequiredBytes int64 `protobuf:"varint,1,opt,name=required_bytes,json=requiredBytes" json:"required_bytes,omitempty"` + // Volume MUST not be bigger than this. This field is OPTIONAL. + // A value of 0 is equal to an unspecified field value. + // The value of this field MUST NOT be negative. + LimitBytes int64 `protobuf:"varint,2,opt,name=limit_bytes,json=limitBytes" json:"limit_bytes,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CapacityRange) Reset() { *m = CapacityRange{} } +func (m *CapacityRange) String() string { return proto.CompactTextString(m) } +func (*CapacityRange) ProtoMessage() {} +func (*CapacityRange) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{11} +} +func (m *CapacityRange) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CapacityRange.Unmarshal(m, b) +} +func (m *CapacityRange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CapacityRange.Marshal(b, m, deterministic) +} +func (dst *CapacityRange) XXX_Merge(src proto.Message) { + xxx_messageInfo_CapacityRange.Merge(dst, src) +} +func (m *CapacityRange) XXX_Size() int { + return xxx_messageInfo_CapacityRange.Size(m) +} +func (m *CapacityRange) XXX_DiscardUnknown() { + xxx_messageInfo_CapacityRange.DiscardUnknown(m) +} + +var xxx_messageInfo_CapacityRange proto.InternalMessageInfo + +func (m *CapacityRange) GetRequiredBytes() int64 { + if m != nil { + return m.RequiredBytes + } + return 0 +} + +func (m *CapacityRange) GetLimitBytes() int64 { + if m != nil { + return m.LimitBytes + } + return 0 +} + +// The information about a provisioned volume. +type Volume struct { + // The capacity of the volume in bytes. This field is OPTIONAL. If not + // set (value of 0), it indicates that the capacity of the volume is + // unknown (e.g., NFS share). + // The value of this field MUST NOT be negative. + CapacityBytes int64 `protobuf:"varint,1,opt,name=capacity_bytes,json=capacityBytes" json:"capacity_bytes,omitempty"` + // Contains identity information for the created volume. This field is + // REQUIRED. The identity information will be used by the CO in + // subsequent calls to refer to the provisioned volume. + Id string `protobuf:"bytes,2,opt,name=id" json:"id,omitempty"` + // Attributes reflect static properties of a volume and MUST be passed + // to volume validation and publishing calls. + // Attributes SHALL be opaque to a CO. Attributes SHALL NOT be mutable + // and SHALL be safe for the CO to cache. Attributes SHOULD NOT + // contain sensitive information. Attributes MAY NOT uniquely identify + // a volume. A volume uniquely identified by `id` SHALL always report + // the same attributes. This field is OPTIONAL and when present MUST + // be passed to volume validation and publishing calls. + Attributes map[string]string `protobuf:"bytes,3,rep,name=attributes" json:"attributes,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + // If specified, indicates that the volume is not empty and is + // pre-populated with data from the specified source. + // This field is OPTIONAL. + ContentSource *VolumeContentSource `protobuf:"bytes,4,opt,name=content_source,json=contentSource" json:"content_source,omitempty"` + // Specifies where (regions, zones, racks, etc.) the provisioned + // volume is accessible from. + // A plugin that returns this field MUST also set the + // ACCESSIBILITY_CONSTRAINTS plugin capability. + // An SP MAY specify multiple topologies to indicate the volume is + // accessible from multiple locations. + // COs MAY use this information along with the topology information + // returned by NodeGetInfo to ensure that a given volume is accessible + // from a given node when scheduling workloads. + // This field is OPTIONAL. If it is not specified, the CO MAY assume + // the volume is equally accessible from all nodes in the cluster and + // may schedule workloads referencing the volume on any available + // node. + // + // Example 1: + // accessible_topology = {"region": "R1", "zone": "Z2"} + // Indicates a volume accessible only from the "region" "R1" and the + // "zone" "Z2". + // + // Example 2: + // accessible_topology = + // {"region": "R1", "zone": "Z2"}, + // {"region": "R1", "zone": "Z3"} + // Indicates a volume accessible from both "zone" "Z2" and "zone" "Z3" + // in the "region" "R1". + AccessibleTopology []*Topology `protobuf:"bytes,5,rep,name=accessible_topology,json=accessibleTopology" json:"accessible_topology,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Volume) Reset() { *m = Volume{} } +func (m *Volume) String() string { return proto.CompactTextString(m) } +func (*Volume) ProtoMessage() {} +func (*Volume) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{12} +} +func (m *Volume) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Volume.Unmarshal(m, b) +} +func (m *Volume) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Volume.Marshal(b, m, deterministic) +} +func (dst *Volume) XXX_Merge(src proto.Message) { + xxx_messageInfo_Volume.Merge(dst, src) +} +func (m *Volume) XXX_Size() int { + return xxx_messageInfo_Volume.Size(m) +} +func (m *Volume) XXX_DiscardUnknown() { + xxx_messageInfo_Volume.DiscardUnknown(m) +} + +var xxx_messageInfo_Volume proto.InternalMessageInfo + +func (m *Volume) GetCapacityBytes() int64 { + if m != nil { + return m.CapacityBytes + } + return 0 +} + +func (m *Volume) GetId() string { + if m != nil { + return m.Id + } + return "" +} + +func (m *Volume) GetAttributes() map[string]string { + if m != nil { + return m.Attributes + } + return nil +} + +func (m *Volume) GetContentSource() *VolumeContentSource { + if m != nil { + return m.ContentSource + } + return nil +} + +func (m *Volume) GetAccessibleTopology() []*Topology { + if m != nil { + return m.AccessibleTopology + } + return nil +} + +type TopologyRequirement struct { + // Specifies the list of topologies the provisioned volume MUST be + // accessible from. + // This field is OPTIONAL. If TopologyRequirement is specified either + // requisite or preferred or both MUST be specified. + // + // If requisite is specified, the provisioned volume MUST be + // accessible from at least one of the requisite topologies. + // + // Given + // x = number of topologies provisioned volume is accessible from + // n = number of requisite topologies + // The CO MUST ensure n >= 1. The SP MUST ensure x >= 1 + // If x==n, than the SP MUST make the provisioned volume available to + // all topologies from the list of requisite topologies. If it is + // unable to do so, the SP MUST fail the CreateVolume call. + // For example, if a volume should be accessible from a single zone, + // and requisite = + // {"region": "R1", "zone": "Z2"} + // then the provisioned volume MUST be accessible from the "region" + // "R1" and the "zone" "Z2". + // Similarly, if a volume should be accessible from two zones, and + // requisite = + // {"region": "R1", "zone": "Z2"}, + // {"region": "R1", "zone": "Z3"} + // then the provisioned volume MUST be accessible from the "region" + // "R1" and both "zone" "Z2" and "zone" "Z3". + // + // If xn, than the SP MUST make the provisioned volume available from + // all topologies from the list of requisite topologies and MAY choose + // the remaining x-n unique topologies from the list of all possible + // topologies. If it is unable to do so, the SP MUST fail the + // CreateVolume call. + // For example, if a volume should be accessible from two zones, and + // requisite = + // {"region": "R1", "zone": "Z2"} + // then the provisioned volume MUST be accessible from the "region" + // "R1" and the "zone" "Z2" and the SP may select the second zone + // independently, e.g. "R1/Z4". + Requisite []*Topology `protobuf:"bytes,1,rep,name=requisite" json:"requisite,omitempty"` + // Specifies the list of topologies the CO would prefer the volume to + // be provisioned in. + // + // This field is OPTIONAL. If TopologyRequirement is specified either + // requisite or preferred or both MUST be specified. + // + // An SP MUST attempt to make the provisioned volume available using + // the preferred topologies in order from first to last. + // + // If requisite is specified, all topologies in preferred list MUST + // also be present in the list of requisite topologies. + // + // If the SP is unable to to make the provisioned volume available + // from any of the preferred topologies, the SP MAY choose a topology + // from the list of requisite topologies. + // If the list of requisite topologies is not specified, then the SP + // MAY choose from the list of all possible topologies. + // If the list of requisite topologies is specified and the SP is + // unable to to make the provisioned volume available from any of the + // requisite topologies it MUST fail the CreateVolume call. + // + // Example 1: + // Given a volume should be accessible from a single zone, and + // requisite = + // {"region": "R1", "zone": "Z2"}, + // {"region": "R1", "zone": "Z3"} + // preferred = + // {"region": "R1", "zone": "Z3"} + // then the the SP SHOULD first attempt to make the provisioned volume + // available from "zone" "Z3" in the "region" "R1" and fall back to + // "zone" "Z2" in the "region" "R1" if that is not possible. + // + // Example 2: + // Given a volume should be accessible from a single zone, and + // requisite = + // {"region": "R1", "zone": "Z2"}, + // {"region": "R1", "zone": "Z3"}, + // {"region": "R1", "zone": "Z4"}, + // {"region": "R1", "zone": "Z5"} + // preferred = + // {"region": "R1", "zone": "Z4"}, + // {"region": "R1", "zone": "Z2"} + // then the the SP SHOULD first attempt to make the provisioned volume + // accessible from "zone" "Z4" in the "region" "R1" and fall back to + // "zone" "Z2" in the "region" "R1" if that is not possible. If that + // is not possible, the SP may choose between either the "zone" + // "Z3" or "Z5" in the "region" "R1". + // + // Example 3: + // Given a volume should be accessible from TWO zones (because an + // opaque parameter in CreateVolumeRequest, for example, specifies + // the volume is accessible from two zones, aka synchronously + // replicated), and + // requisite = + // {"region": "R1", "zone": "Z2"}, + // {"region": "R1", "zone": "Z3"}, + // {"region": "R1", "zone": "Z4"}, + // {"region": "R1", "zone": "Z5"} + // preferred = + // {"region": "R1", "zone": "Z5"}, + // {"region": "R1", "zone": "Z3"} + // then the the SP SHOULD first attempt to make the provisioned volume + // accessible from the combination of the two "zones" "Z5" and "Z3" in + // the "region" "R1". If that's not possible, it should fall back to + // a combination of "Z5" and other possibilities from the list of + // requisite. If that's not possible, it should fall back to a + // combination of "Z3" and other possibilities from the list of + // requisite. If that's not possible, it should fall back to a + // combination of other possibilities from the list of requisite. + Preferred []*Topology `protobuf:"bytes,2,rep,name=preferred" json:"preferred,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TopologyRequirement) Reset() { *m = TopologyRequirement{} } +func (m *TopologyRequirement) String() string { return proto.CompactTextString(m) } +func (*TopologyRequirement) ProtoMessage() {} +func (*TopologyRequirement) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{13} +} +func (m *TopologyRequirement) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TopologyRequirement.Unmarshal(m, b) +} +func (m *TopologyRequirement) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TopologyRequirement.Marshal(b, m, deterministic) +} +func (dst *TopologyRequirement) XXX_Merge(src proto.Message) { + xxx_messageInfo_TopologyRequirement.Merge(dst, src) +} +func (m *TopologyRequirement) XXX_Size() int { + return xxx_messageInfo_TopologyRequirement.Size(m) +} +func (m *TopologyRequirement) XXX_DiscardUnknown() { + xxx_messageInfo_TopologyRequirement.DiscardUnknown(m) +} + +var xxx_messageInfo_TopologyRequirement proto.InternalMessageInfo + +func (m *TopologyRequirement) GetRequisite() []*Topology { + if m != nil { + return m.Requisite + } + return nil +} + +func (m *TopologyRequirement) GetPreferred() []*Topology { + if m != nil { + return m.Preferred + } + return nil +} + +// Topology is a map of topological domains to topological segments. +// A topological domain is a sub-division of a cluster, like "region", +// "zone", "rack", etc. +// A topological segment is a specific instance of a topological domain, +// like "zone3", "rack3", etc. +// For example {"com.company/zone": "Z1", "com.company/rack": "R3"} +// Valid keys have two segments: an optional prefix and name, separated +// by a slash (/), for example: "com.company.example/zone". +// The key name segment is required. The prefix is optional. +// Both the key name and the prefix MUST each be 63 characters or less, +// begin and end with an alphanumeric character ([a-z0-9A-Z]) and +// contain only dashes (-), underscores (_), dots (.), or alphanumerics +// in between, for example "zone". +// The key prefix MUST follow reverse domain name notation format +// (https://en.wikipedia.org/wiki/Reverse_domain_name_notation). +// The key prefix SHOULD include the plugin's host company name and/or +// the plugin name, to minimize the possibility of collisions with keys +// from other plugins. +// If a key prefix is specified, it MUST be identical across all +// topology keys returned by the SP (across all RPCs). +// Keys MUST be case-insensitive. Meaning the keys "Zone" and "zone" +// MUST not both exist. +// Each value (topological segment) MUST contain 1 or more strings. +// Each string MUST be 63 characters or less and begin and end with an +// alphanumeric character with '-', '_', '.', or alphanumerics in +// between. +type Topology struct { + Segments map[string]string `protobuf:"bytes,1,rep,name=segments" json:"segments,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Topology) Reset() { *m = Topology{} } +func (m *Topology) String() string { return proto.CompactTextString(m) } +func (*Topology) ProtoMessage() {} +func (*Topology) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{14} +} +func (m *Topology) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Topology.Unmarshal(m, b) +} +func (m *Topology) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Topology.Marshal(b, m, deterministic) +} +func (dst *Topology) XXX_Merge(src proto.Message) { + xxx_messageInfo_Topology.Merge(dst, src) +} +func (m *Topology) XXX_Size() int { + return xxx_messageInfo_Topology.Size(m) +} +func (m *Topology) XXX_DiscardUnknown() { + xxx_messageInfo_Topology.DiscardUnknown(m) +} + +var xxx_messageInfo_Topology proto.InternalMessageInfo + +func (m *Topology) GetSegments() map[string]string { + if m != nil { + return m.Segments + } + return nil +} + +type DeleteVolumeRequest struct { + // The ID of the volume to be deprovisioned. + // This field is REQUIRED. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId" json:"volume_id,omitempty"` + // Secrets required by plugin to complete volume deletion request. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. + ControllerDeleteSecrets map[string]string `protobuf:"bytes,2,rep,name=controller_delete_secrets,json=controllerDeleteSecrets" json:"controller_delete_secrets,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DeleteVolumeRequest) Reset() { *m = DeleteVolumeRequest{} } +func (m *DeleteVolumeRequest) String() string { return proto.CompactTextString(m) } +func (*DeleteVolumeRequest) ProtoMessage() {} +func (*DeleteVolumeRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{15} +} +func (m *DeleteVolumeRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteVolumeRequest.Unmarshal(m, b) +} +func (m *DeleteVolumeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteVolumeRequest.Marshal(b, m, deterministic) +} +func (dst *DeleteVolumeRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteVolumeRequest.Merge(dst, src) +} +func (m *DeleteVolumeRequest) XXX_Size() int { + return xxx_messageInfo_DeleteVolumeRequest.Size(m) +} +func (m *DeleteVolumeRequest) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteVolumeRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_DeleteVolumeRequest proto.InternalMessageInfo + +func (m *DeleteVolumeRequest) GetVolumeId() string { + if m != nil { + return m.VolumeId + } + return "" +} + +func (m *DeleteVolumeRequest) GetControllerDeleteSecrets() map[string]string { + if m != nil { + return m.ControllerDeleteSecrets + } + return nil +} + +type DeleteVolumeResponse struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DeleteVolumeResponse) Reset() { *m = DeleteVolumeResponse{} } +func (m *DeleteVolumeResponse) String() string { return proto.CompactTextString(m) } +func (*DeleteVolumeResponse) ProtoMessage() {} +func (*DeleteVolumeResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{16} +} +func (m *DeleteVolumeResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteVolumeResponse.Unmarshal(m, b) +} +func (m *DeleteVolumeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteVolumeResponse.Marshal(b, m, deterministic) +} +func (dst *DeleteVolumeResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteVolumeResponse.Merge(dst, src) +} +func (m *DeleteVolumeResponse) XXX_Size() int { + return xxx_messageInfo_DeleteVolumeResponse.Size(m) +} +func (m *DeleteVolumeResponse) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteVolumeResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_DeleteVolumeResponse proto.InternalMessageInfo + +type ControllerPublishVolumeRequest struct { + // The ID of the volume to be used on a node. + // This field is REQUIRED. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId" json:"volume_id,omitempty"` + // The ID of the node. This field is REQUIRED. The CO SHALL set this + // field to match the node ID returned by `NodeGetInfo`. + NodeId string `protobuf:"bytes,2,opt,name=node_id,json=nodeId" json:"node_id,omitempty"` + // The capability of the volume the CO expects the volume to have. + // This is a REQUIRED field. + VolumeCapability *VolumeCapability `protobuf:"bytes,3,opt,name=volume_capability,json=volumeCapability" json:"volume_capability,omitempty"` + // Whether to publish the volume in readonly mode. This field is + // REQUIRED. + Readonly bool `protobuf:"varint,4,opt,name=readonly" json:"readonly,omitempty"` + // Secrets required by plugin to complete controller publish volume + // request. This field is OPTIONAL. Refer to the + // `Secrets Requirements` section on how to use this field. + ControllerPublishSecrets map[string]string `protobuf:"bytes,5,rep,name=controller_publish_secrets,json=controllerPublishSecrets" json:"controller_publish_secrets,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + // Attributes of the volume to be used on a node. This field is + // OPTIONAL and MUST match the attributes of the Volume identified + // by `volume_id`. + VolumeAttributes map[string]string `protobuf:"bytes,6,rep,name=volume_attributes,json=volumeAttributes" json:"volume_attributes,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ControllerPublishVolumeRequest) Reset() { *m = ControllerPublishVolumeRequest{} } +func (m *ControllerPublishVolumeRequest) String() string { return proto.CompactTextString(m) } +func (*ControllerPublishVolumeRequest) ProtoMessage() {} +func (*ControllerPublishVolumeRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{17} +} +func (m *ControllerPublishVolumeRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ControllerPublishVolumeRequest.Unmarshal(m, b) +} +func (m *ControllerPublishVolumeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ControllerPublishVolumeRequest.Marshal(b, m, deterministic) +} +func (dst *ControllerPublishVolumeRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerPublishVolumeRequest.Merge(dst, src) +} +func (m *ControllerPublishVolumeRequest) XXX_Size() int { + return xxx_messageInfo_ControllerPublishVolumeRequest.Size(m) +} +func (m *ControllerPublishVolumeRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerPublishVolumeRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerPublishVolumeRequest proto.InternalMessageInfo + +func (m *ControllerPublishVolumeRequest) GetVolumeId() string { + if m != nil { + return m.VolumeId + } + return "" +} + +func (m *ControllerPublishVolumeRequest) GetNodeId() string { + if m != nil { + return m.NodeId + } + return "" +} + +func (m *ControllerPublishVolumeRequest) GetVolumeCapability() *VolumeCapability { + if m != nil { + return m.VolumeCapability + } + return nil +} + +func (m *ControllerPublishVolumeRequest) GetReadonly() bool { + if m != nil { + return m.Readonly + } + return false +} + +func (m *ControllerPublishVolumeRequest) GetControllerPublishSecrets() map[string]string { + if m != nil { + return m.ControllerPublishSecrets + } + return nil +} + +func (m *ControllerPublishVolumeRequest) GetVolumeAttributes() map[string]string { + if m != nil { + return m.VolumeAttributes + } + return nil +} + +type ControllerPublishVolumeResponse struct { + // The SP specific information that will be passed to the Plugin in + // the subsequent `NodeStageVolume` or `NodePublishVolume` calls + // for the given volume. + // This information is opaque to the CO. This field is OPTIONAL. + PublishInfo map[string]string `protobuf:"bytes,1,rep,name=publish_info,json=publishInfo" json:"publish_info,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ControllerPublishVolumeResponse) Reset() { *m = ControllerPublishVolumeResponse{} } +func (m *ControllerPublishVolumeResponse) String() string { return proto.CompactTextString(m) } +func (*ControllerPublishVolumeResponse) ProtoMessage() {} +func (*ControllerPublishVolumeResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{18} +} +func (m *ControllerPublishVolumeResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ControllerPublishVolumeResponse.Unmarshal(m, b) +} +func (m *ControllerPublishVolumeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ControllerPublishVolumeResponse.Marshal(b, m, deterministic) +} +func (dst *ControllerPublishVolumeResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerPublishVolumeResponse.Merge(dst, src) +} +func (m *ControllerPublishVolumeResponse) XXX_Size() int { + return xxx_messageInfo_ControllerPublishVolumeResponse.Size(m) +} +func (m *ControllerPublishVolumeResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerPublishVolumeResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerPublishVolumeResponse proto.InternalMessageInfo + +func (m *ControllerPublishVolumeResponse) GetPublishInfo() map[string]string { + if m != nil { + return m.PublishInfo + } + return nil +} + +type ControllerUnpublishVolumeRequest struct { + // The ID of the volume. This field is REQUIRED. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId" json:"volume_id,omitempty"` + // The ID of the node. This field is OPTIONAL. The CO SHOULD set this + // field to match the node ID returned by `NodeGetInfo` or leave it + // unset. If the value is set, the SP MUST unpublish the volume from + // the specified node. If the value is unset, the SP MUST unpublish + // the volume from all nodes it is published to. + NodeId string `protobuf:"bytes,2,opt,name=node_id,json=nodeId" json:"node_id,omitempty"` + // Secrets required by plugin to complete controller unpublish volume + // request. This SHOULD be the same secrets passed to the + // ControllerPublishVolume call for the specified volume. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. + ControllerUnpublishSecrets map[string]string `protobuf:"bytes,3,rep,name=controller_unpublish_secrets,json=controllerUnpublishSecrets" json:"controller_unpublish_secrets,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ControllerUnpublishVolumeRequest) Reset() { *m = ControllerUnpublishVolumeRequest{} } +func (m *ControllerUnpublishVolumeRequest) String() string { return proto.CompactTextString(m) } +func (*ControllerUnpublishVolumeRequest) ProtoMessage() {} +func (*ControllerUnpublishVolumeRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{19} +} +func (m *ControllerUnpublishVolumeRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ControllerUnpublishVolumeRequest.Unmarshal(m, b) +} +func (m *ControllerUnpublishVolumeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ControllerUnpublishVolumeRequest.Marshal(b, m, deterministic) +} +func (dst *ControllerUnpublishVolumeRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerUnpublishVolumeRequest.Merge(dst, src) +} +func (m *ControllerUnpublishVolumeRequest) XXX_Size() int { + return xxx_messageInfo_ControllerUnpublishVolumeRequest.Size(m) +} +func (m *ControllerUnpublishVolumeRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerUnpublishVolumeRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerUnpublishVolumeRequest proto.InternalMessageInfo + +func (m *ControllerUnpublishVolumeRequest) GetVolumeId() string { + if m != nil { + return m.VolumeId + } + return "" +} + +func (m *ControllerUnpublishVolumeRequest) GetNodeId() string { + if m != nil { + return m.NodeId + } + return "" +} + +func (m *ControllerUnpublishVolumeRequest) GetControllerUnpublishSecrets() map[string]string { + if m != nil { + return m.ControllerUnpublishSecrets + } + return nil +} + +type ControllerUnpublishVolumeResponse struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ControllerUnpublishVolumeResponse) Reset() { *m = ControllerUnpublishVolumeResponse{} } +func (m *ControllerUnpublishVolumeResponse) String() string { return proto.CompactTextString(m) } +func (*ControllerUnpublishVolumeResponse) ProtoMessage() {} +func (*ControllerUnpublishVolumeResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{20} +} +func (m *ControllerUnpublishVolumeResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ControllerUnpublishVolumeResponse.Unmarshal(m, b) +} +func (m *ControllerUnpublishVolumeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ControllerUnpublishVolumeResponse.Marshal(b, m, deterministic) +} +func (dst *ControllerUnpublishVolumeResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerUnpublishVolumeResponse.Merge(dst, src) +} +func (m *ControllerUnpublishVolumeResponse) XXX_Size() int { + return xxx_messageInfo_ControllerUnpublishVolumeResponse.Size(m) +} +func (m *ControllerUnpublishVolumeResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerUnpublishVolumeResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerUnpublishVolumeResponse proto.InternalMessageInfo + +type ValidateVolumeCapabilitiesRequest struct { + // The ID of the volume to check. This field is REQUIRED. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId" json:"volume_id,omitempty"` + // The capabilities that the CO wants to check for the volume. This + // call SHALL return "supported" only if all the volume capabilities + // specified below are supported. This field is REQUIRED. + VolumeCapabilities []*VolumeCapability `protobuf:"bytes,2,rep,name=volume_capabilities,json=volumeCapabilities" json:"volume_capabilities,omitempty"` + // Attributes of the volume to check. This field is OPTIONAL and MUST + // match the attributes of the Volume identified by `volume_id`. + VolumeAttributes map[string]string `protobuf:"bytes,3,rep,name=volume_attributes,json=volumeAttributes" json:"volume_attributes,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + // Specifies where (regions, zones, racks, etc.) the caller believes + // the volume is accessible from. + // A caller MAY specify multiple topologies to indicate they believe + // the volume to be accessible from multiple locations. + // This field is OPTIONAL. This field SHALL NOT be set unless the + // plugin advertises the ACCESSIBILITY_CONSTRAINTS capability. + AccessibleTopology []*Topology `protobuf:"bytes,4,rep,name=accessible_topology,json=accessibleTopology" json:"accessible_topology,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ValidateVolumeCapabilitiesRequest) Reset() { *m = ValidateVolumeCapabilitiesRequest{} } +func (m *ValidateVolumeCapabilitiesRequest) String() string { return proto.CompactTextString(m) } +func (*ValidateVolumeCapabilitiesRequest) ProtoMessage() {} +func (*ValidateVolumeCapabilitiesRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{21} +} +func (m *ValidateVolumeCapabilitiesRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ValidateVolumeCapabilitiesRequest.Unmarshal(m, b) +} +func (m *ValidateVolumeCapabilitiesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ValidateVolumeCapabilitiesRequest.Marshal(b, m, deterministic) +} +func (dst *ValidateVolumeCapabilitiesRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ValidateVolumeCapabilitiesRequest.Merge(dst, src) +} +func (m *ValidateVolumeCapabilitiesRequest) XXX_Size() int { + return xxx_messageInfo_ValidateVolumeCapabilitiesRequest.Size(m) +} +func (m *ValidateVolumeCapabilitiesRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ValidateVolumeCapabilitiesRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ValidateVolumeCapabilitiesRequest proto.InternalMessageInfo + +func (m *ValidateVolumeCapabilitiesRequest) GetVolumeId() string { + if m != nil { + return m.VolumeId + } + return "" +} + +func (m *ValidateVolumeCapabilitiesRequest) GetVolumeCapabilities() []*VolumeCapability { + if m != nil { + return m.VolumeCapabilities + } + return nil +} + +func (m *ValidateVolumeCapabilitiesRequest) GetVolumeAttributes() map[string]string { + if m != nil { + return m.VolumeAttributes + } + return nil +} + +func (m *ValidateVolumeCapabilitiesRequest) GetAccessibleTopology() []*Topology { + if m != nil { + return m.AccessibleTopology + } + return nil +} + +type ValidateVolumeCapabilitiesResponse struct { + // True if the Plugin supports the specified capabilities for the + // given volume. This field is REQUIRED. + Supported bool `protobuf:"varint,1,opt,name=supported" json:"supported,omitempty"` + // Message to the CO if `supported` above is false. This field is + // OPTIONAL. + // An empty string is equal to an unspecified field value. + Message string `protobuf:"bytes,2,opt,name=message" json:"message,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ValidateVolumeCapabilitiesResponse) Reset() { *m = ValidateVolumeCapabilitiesResponse{} } +func (m *ValidateVolumeCapabilitiesResponse) String() string { return proto.CompactTextString(m) } +func (*ValidateVolumeCapabilitiesResponse) ProtoMessage() {} +func (*ValidateVolumeCapabilitiesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{22} +} +func (m *ValidateVolumeCapabilitiesResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ValidateVolumeCapabilitiesResponse.Unmarshal(m, b) +} +func (m *ValidateVolumeCapabilitiesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ValidateVolumeCapabilitiesResponse.Marshal(b, m, deterministic) +} +func (dst *ValidateVolumeCapabilitiesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ValidateVolumeCapabilitiesResponse.Merge(dst, src) +} +func (m *ValidateVolumeCapabilitiesResponse) XXX_Size() int { + return xxx_messageInfo_ValidateVolumeCapabilitiesResponse.Size(m) +} +func (m *ValidateVolumeCapabilitiesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ValidateVolumeCapabilitiesResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ValidateVolumeCapabilitiesResponse proto.InternalMessageInfo + +func (m *ValidateVolumeCapabilitiesResponse) GetSupported() bool { + if m != nil { + return m.Supported + } + return false +} + +func (m *ValidateVolumeCapabilitiesResponse) GetMessage() string { + if m != nil { + return m.Message + } + return "" +} + +type ListVolumesRequest struct { + // If specified (non-zero value), the Plugin MUST NOT return more + // entries than this number in the response. If the actual number of + // entries is more than this number, the Plugin MUST set `next_token` + // in the response which can be used to get the next page of entries + // in the subsequent `ListVolumes` call. This field is OPTIONAL. If + // not specified (zero value), it means there is no restriction on the + // number of entries that can be returned. + // The value of this field MUST NOT be negative. + MaxEntries int32 `protobuf:"varint,1,opt,name=max_entries,json=maxEntries" json:"max_entries,omitempty"` + // A token to specify where to start paginating. Set this field to + // `next_token` returned by a previous `ListVolumes` call to get the + // next page of entries. This field is OPTIONAL. + // An empty string is equal to an unspecified field value. + StartingToken string `protobuf:"bytes,2,opt,name=starting_token,json=startingToken" json:"starting_token,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListVolumesRequest) Reset() { *m = ListVolumesRequest{} } +func (m *ListVolumesRequest) String() string { return proto.CompactTextString(m) } +func (*ListVolumesRequest) ProtoMessage() {} +func (*ListVolumesRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{23} +} +func (m *ListVolumesRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListVolumesRequest.Unmarshal(m, b) +} +func (m *ListVolumesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListVolumesRequest.Marshal(b, m, deterministic) +} +func (dst *ListVolumesRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListVolumesRequest.Merge(dst, src) +} +func (m *ListVolumesRequest) XXX_Size() int { + return xxx_messageInfo_ListVolumesRequest.Size(m) +} +func (m *ListVolumesRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ListVolumesRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ListVolumesRequest proto.InternalMessageInfo + +func (m *ListVolumesRequest) GetMaxEntries() int32 { + if m != nil { + return m.MaxEntries + } + return 0 +} + +func (m *ListVolumesRequest) GetStartingToken() string { + if m != nil { + return m.StartingToken + } + return "" +} + +type ListVolumesResponse struct { + Entries []*ListVolumesResponse_Entry `protobuf:"bytes,1,rep,name=entries" json:"entries,omitempty"` + // This token allows you to get the next page of entries for + // `ListVolumes` request. If the number of entries is larger than + // `max_entries`, use the `next_token` as a value for the + // `starting_token` field in the next `ListVolumes` request. This + // field is OPTIONAL. + // An empty string is equal to an unspecified field value. + NextToken string `protobuf:"bytes,2,opt,name=next_token,json=nextToken" json:"next_token,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListVolumesResponse) Reset() { *m = ListVolumesResponse{} } +func (m *ListVolumesResponse) String() string { return proto.CompactTextString(m) } +func (*ListVolumesResponse) ProtoMessage() {} +func (*ListVolumesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{24} +} +func (m *ListVolumesResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListVolumesResponse.Unmarshal(m, b) +} +func (m *ListVolumesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListVolumesResponse.Marshal(b, m, deterministic) +} +func (dst *ListVolumesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListVolumesResponse.Merge(dst, src) +} +func (m *ListVolumesResponse) XXX_Size() int { + return xxx_messageInfo_ListVolumesResponse.Size(m) +} +func (m *ListVolumesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ListVolumesResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ListVolumesResponse proto.InternalMessageInfo + +func (m *ListVolumesResponse) GetEntries() []*ListVolumesResponse_Entry { + if m != nil { + return m.Entries + } + return nil +} + +func (m *ListVolumesResponse) GetNextToken() string { + if m != nil { + return m.NextToken + } + return "" +} + +type ListVolumesResponse_Entry struct { + Volume *Volume `protobuf:"bytes,1,opt,name=volume" json:"volume,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListVolumesResponse_Entry) Reset() { *m = ListVolumesResponse_Entry{} } +func (m *ListVolumesResponse_Entry) String() string { return proto.CompactTextString(m) } +func (*ListVolumesResponse_Entry) ProtoMessage() {} +func (*ListVolumesResponse_Entry) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{24, 0} +} +func (m *ListVolumesResponse_Entry) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListVolumesResponse_Entry.Unmarshal(m, b) +} +func (m *ListVolumesResponse_Entry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListVolumesResponse_Entry.Marshal(b, m, deterministic) +} +func (dst *ListVolumesResponse_Entry) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListVolumesResponse_Entry.Merge(dst, src) +} +func (m *ListVolumesResponse_Entry) XXX_Size() int { + return xxx_messageInfo_ListVolumesResponse_Entry.Size(m) +} +func (m *ListVolumesResponse_Entry) XXX_DiscardUnknown() { + xxx_messageInfo_ListVolumesResponse_Entry.DiscardUnknown(m) +} + +var xxx_messageInfo_ListVolumesResponse_Entry proto.InternalMessageInfo + +func (m *ListVolumesResponse_Entry) GetVolume() *Volume { + if m != nil { + return m.Volume + } + return nil +} + +type GetCapacityRequest struct { + // If specified, the Plugin SHALL report the capacity of the storage + // that can be used to provision volumes that satisfy ALL of the + // specified `volume_capabilities`. These are the same + // `volume_capabilities` the CO will use in `CreateVolumeRequest`. + // This field is OPTIONAL. + VolumeCapabilities []*VolumeCapability `protobuf:"bytes,1,rep,name=volume_capabilities,json=volumeCapabilities" json:"volume_capabilities,omitempty"` + // If specified, the Plugin SHALL report the capacity of the storage + // that can be used to provision volumes with the given Plugin + // specific `parameters`. These are the same `parameters` the CO will + // use in `CreateVolumeRequest`. This field is OPTIONAL. + Parameters map[string]string `protobuf:"bytes,2,rep,name=parameters" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + // If specified, the Plugin SHALL report the capacity of the storage + // that can be used to provision volumes that in the specified + // `accessible_topology`. This is the same as the + // `accessible_topology` the CO returns in a `CreateVolumeResponse`. + // This field is OPTIONAL. This field SHALL NOT be set unless the + // plugin advertises the ACCESSIBILITY_CONSTRAINTS capability. + AccessibleTopology *Topology `protobuf:"bytes,3,opt,name=accessible_topology,json=accessibleTopology" json:"accessible_topology,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetCapacityRequest) Reset() { *m = GetCapacityRequest{} } +func (m *GetCapacityRequest) String() string { return proto.CompactTextString(m) } +func (*GetCapacityRequest) ProtoMessage() {} +func (*GetCapacityRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{25} +} +func (m *GetCapacityRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetCapacityRequest.Unmarshal(m, b) +} +func (m *GetCapacityRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetCapacityRequest.Marshal(b, m, deterministic) +} +func (dst *GetCapacityRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetCapacityRequest.Merge(dst, src) +} +func (m *GetCapacityRequest) XXX_Size() int { + return xxx_messageInfo_GetCapacityRequest.Size(m) +} +func (m *GetCapacityRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetCapacityRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetCapacityRequest proto.InternalMessageInfo + +func (m *GetCapacityRequest) GetVolumeCapabilities() []*VolumeCapability { + if m != nil { + return m.VolumeCapabilities + } + return nil +} + +func (m *GetCapacityRequest) GetParameters() map[string]string { + if m != nil { + return m.Parameters + } + return nil +} + +func (m *GetCapacityRequest) GetAccessibleTopology() *Topology { + if m != nil { + return m.AccessibleTopology + } + return nil +} + +type GetCapacityResponse struct { + // The available capacity, in bytes, of the storage that can be used + // to provision volumes. If `volume_capabilities` or `parameters` is + // specified in the request, the Plugin SHALL take those into + // consideration when calculating the available capacity of the + // storage. This field is REQUIRED. + // The value of this field MUST NOT be negative. + AvailableCapacity int64 `protobuf:"varint,1,opt,name=available_capacity,json=availableCapacity" json:"available_capacity,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetCapacityResponse) Reset() { *m = GetCapacityResponse{} } +func (m *GetCapacityResponse) String() string { return proto.CompactTextString(m) } +func (*GetCapacityResponse) ProtoMessage() {} +func (*GetCapacityResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{26} +} +func (m *GetCapacityResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetCapacityResponse.Unmarshal(m, b) +} +func (m *GetCapacityResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetCapacityResponse.Marshal(b, m, deterministic) +} +func (dst *GetCapacityResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetCapacityResponse.Merge(dst, src) +} +func (m *GetCapacityResponse) XXX_Size() int { + return xxx_messageInfo_GetCapacityResponse.Size(m) +} +func (m *GetCapacityResponse) XXX_DiscardUnknown() { + xxx_messageInfo_GetCapacityResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_GetCapacityResponse proto.InternalMessageInfo + +func (m *GetCapacityResponse) GetAvailableCapacity() int64 { + if m != nil { + return m.AvailableCapacity + } + return 0 +} + +type ControllerGetCapabilitiesRequest struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ControllerGetCapabilitiesRequest) Reset() { *m = ControllerGetCapabilitiesRequest{} } +func (m *ControllerGetCapabilitiesRequest) String() string { return proto.CompactTextString(m) } +func (*ControllerGetCapabilitiesRequest) ProtoMessage() {} +func (*ControllerGetCapabilitiesRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{27} +} +func (m *ControllerGetCapabilitiesRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ControllerGetCapabilitiesRequest.Unmarshal(m, b) +} +func (m *ControllerGetCapabilitiesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ControllerGetCapabilitiesRequest.Marshal(b, m, deterministic) +} +func (dst *ControllerGetCapabilitiesRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerGetCapabilitiesRequest.Merge(dst, src) +} +func (m *ControllerGetCapabilitiesRequest) XXX_Size() int { + return xxx_messageInfo_ControllerGetCapabilitiesRequest.Size(m) +} +func (m *ControllerGetCapabilitiesRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerGetCapabilitiesRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerGetCapabilitiesRequest proto.InternalMessageInfo + +type ControllerGetCapabilitiesResponse struct { + // All the capabilities that the controller service supports. This + // field is OPTIONAL. + Capabilities []*ControllerServiceCapability `protobuf:"bytes,2,rep,name=capabilities" json:"capabilities,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ControllerGetCapabilitiesResponse) Reset() { *m = ControllerGetCapabilitiesResponse{} } +func (m *ControllerGetCapabilitiesResponse) String() string { return proto.CompactTextString(m) } +func (*ControllerGetCapabilitiesResponse) ProtoMessage() {} +func (*ControllerGetCapabilitiesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{28} +} +func (m *ControllerGetCapabilitiesResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ControllerGetCapabilitiesResponse.Unmarshal(m, b) +} +func (m *ControllerGetCapabilitiesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ControllerGetCapabilitiesResponse.Marshal(b, m, deterministic) +} +func (dst *ControllerGetCapabilitiesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerGetCapabilitiesResponse.Merge(dst, src) +} +func (m *ControllerGetCapabilitiesResponse) XXX_Size() int { + return xxx_messageInfo_ControllerGetCapabilitiesResponse.Size(m) +} +func (m *ControllerGetCapabilitiesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerGetCapabilitiesResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerGetCapabilitiesResponse proto.InternalMessageInfo + +func (m *ControllerGetCapabilitiesResponse) GetCapabilities() []*ControllerServiceCapability { + if m != nil { + return m.Capabilities + } + return nil +} + +// Specifies a capability of the controller service. +type ControllerServiceCapability struct { + // Types that are valid to be assigned to Type: + // *ControllerServiceCapability_Rpc + Type isControllerServiceCapability_Type `protobuf_oneof:"type"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ControllerServiceCapability) Reset() { *m = ControllerServiceCapability{} } +func (m *ControllerServiceCapability) String() string { return proto.CompactTextString(m) } +func (*ControllerServiceCapability) ProtoMessage() {} +func (*ControllerServiceCapability) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{29} +} +func (m *ControllerServiceCapability) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ControllerServiceCapability.Unmarshal(m, b) +} +func (m *ControllerServiceCapability) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ControllerServiceCapability.Marshal(b, m, deterministic) +} +func (dst *ControllerServiceCapability) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerServiceCapability.Merge(dst, src) +} +func (m *ControllerServiceCapability) XXX_Size() int { + return xxx_messageInfo_ControllerServiceCapability.Size(m) +} +func (m *ControllerServiceCapability) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerServiceCapability.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerServiceCapability proto.InternalMessageInfo + +type isControllerServiceCapability_Type interface { + isControllerServiceCapability_Type() +} + +type ControllerServiceCapability_Rpc struct { + Rpc *ControllerServiceCapability_RPC `protobuf:"bytes,1,opt,name=rpc,oneof"` +} + +func (*ControllerServiceCapability_Rpc) isControllerServiceCapability_Type() {} + +func (m *ControllerServiceCapability) GetType() isControllerServiceCapability_Type { + if m != nil { + return m.Type + } + return nil +} + +func (m *ControllerServiceCapability) GetRpc() *ControllerServiceCapability_RPC { + if x, ok := m.GetType().(*ControllerServiceCapability_Rpc); ok { + return x.Rpc + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*ControllerServiceCapability) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _ControllerServiceCapability_OneofMarshaler, _ControllerServiceCapability_OneofUnmarshaler, _ControllerServiceCapability_OneofSizer, []interface{}{ + (*ControllerServiceCapability_Rpc)(nil), + } +} + +func _ControllerServiceCapability_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*ControllerServiceCapability) + // type + switch x := m.Type.(type) { + case *ControllerServiceCapability_Rpc: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Rpc); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("ControllerServiceCapability.Type has unexpected type %T", x) + } + return nil +} + +func _ControllerServiceCapability_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*ControllerServiceCapability) + switch tag { + case 1: // type.rpc + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(ControllerServiceCapability_RPC) + err := b.DecodeMessage(msg) + m.Type = &ControllerServiceCapability_Rpc{msg} + return true, err + default: + return false, nil + } +} + +func _ControllerServiceCapability_OneofSizer(msg proto.Message) (n int) { + m := msg.(*ControllerServiceCapability) + // type + switch x := m.Type.(type) { + case *ControllerServiceCapability_Rpc: + s := proto.Size(x.Rpc) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +type ControllerServiceCapability_RPC struct { + Type ControllerServiceCapability_RPC_Type `protobuf:"varint,1,opt,name=type,enum=csi.v0.ControllerServiceCapability_RPC_Type" json:"type,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ControllerServiceCapability_RPC) Reset() { *m = ControllerServiceCapability_RPC{} } +func (m *ControllerServiceCapability_RPC) String() string { return proto.CompactTextString(m) } +func (*ControllerServiceCapability_RPC) ProtoMessage() {} +func (*ControllerServiceCapability_RPC) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{29, 0} +} +func (m *ControllerServiceCapability_RPC) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ControllerServiceCapability_RPC.Unmarshal(m, b) +} +func (m *ControllerServiceCapability_RPC) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ControllerServiceCapability_RPC.Marshal(b, m, deterministic) +} +func (dst *ControllerServiceCapability_RPC) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerServiceCapability_RPC.Merge(dst, src) +} +func (m *ControllerServiceCapability_RPC) XXX_Size() int { + return xxx_messageInfo_ControllerServiceCapability_RPC.Size(m) +} +func (m *ControllerServiceCapability_RPC) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerServiceCapability_RPC.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerServiceCapability_RPC proto.InternalMessageInfo + +func (m *ControllerServiceCapability_RPC) GetType() ControllerServiceCapability_RPC_Type { + if m != nil { + return m.Type + } + return ControllerServiceCapability_RPC_UNKNOWN +} + +type CreateSnapshotRequest struct { + // The ID of the source volume to be snapshotted. + // This field is REQUIRED. + SourceVolumeId string `protobuf:"bytes,1,opt,name=source_volume_id,json=sourceVolumeId" json:"source_volume_id,omitempty"` + // The suggested name for the snapshot. This field is REQUIRED for + // idempotency. + Name string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` + // Secrets required by plugin to complete snapshot creation request. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. + CreateSnapshotSecrets map[string]string `protobuf:"bytes,3,rep,name=create_snapshot_secrets,json=createSnapshotSecrets" json:"create_snapshot_secrets,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + // Plugin specific parameters passed in as opaque key-value pairs. + // This field is OPTIONAL. The Plugin is responsible for parsing and + // validating these parameters. COs will treat these as opaque. + // Use cases for opaque parameters: + // - Specify a policy to automatically clean up the snapshot. + // - Specify an expiration date for the snapshot. + // - Specify whether the snapshot is readonly or read/write. + // - Specify if the snapshot should be replicated to some place. + // - Specify primary or secondary for replication systems that + // support snapshotting only on primary. + Parameters map[string]string `protobuf:"bytes,4,rep,name=parameters" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CreateSnapshotRequest) Reset() { *m = CreateSnapshotRequest{} } +func (m *CreateSnapshotRequest) String() string { return proto.CompactTextString(m) } +func (*CreateSnapshotRequest) ProtoMessage() {} +func (*CreateSnapshotRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{30} +} +func (m *CreateSnapshotRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreateSnapshotRequest.Unmarshal(m, b) +} +func (m *CreateSnapshotRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreateSnapshotRequest.Marshal(b, m, deterministic) +} +func (dst *CreateSnapshotRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateSnapshotRequest.Merge(dst, src) +} +func (m *CreateSnapshotRequest) XXX_Size() int { + return xxx_messageInfo_CreateSnapshotRequest.Size(m) +} +func (m *CreateSnapshotRequest) XXX_DiscardUnknown() { + xxx_messageInfo_CreateSnapshotRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_CreateSnapshotRequest proto.InternalMessageInfo + +func (m *CreateSnapshotRequest) GetSourceVolumeId() string { + if m != nil { + return m.SourceVolumeId + } + return "" +} + +func (m *CreateSnapshotRequest) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *CreateSnapshotRequest) GetCreateSnapshotSecrets() map[string]string { + if m != nil { + return m.CreateSnapshotSecrets + } + return nil +} + +func (m *CreateSnapshotRequest) GetParameters() map[string]string { + if m != nil { + return m.Parameters + } + return nil +} + +type CreateSnapshotResponse struct { + // Contains all attributes of the newly created snapshot that are + // relevant to the CO along with information required by the Plugin + // to uniquely identify the snapshot. This field is REQUIRED. + Snapshot *Snapshot `protobuf:"bytes,1,opt,name=snapshot" json:"snapshot,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CreateSnapshotResponse) Reset() { *m = CreateSnapshotResponse{} } +func (m *CreateSnapshotResponse) String() string { return proto.CompactTextString(m) } +func (*CreateSnapshotResponse) ProtoMessage() {} +func (*CreateSnapshotResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{31} +} +func (m *CreateSnapshotResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreateSnapshotResponse.Unmarshal(m, b) +} +func (m *CreateSnapshotResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreateSnapshotResponse.Marshal(b, m, deterministic) +} +func (dst *CreateSnapshotResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateSnapshotResponse.Merge(dst, src) +} +func (m *CreateSnapshotResponse) XXX_Size() int { + return xxx_messageInfo_CreateSnapshotResponse.Size(m) +} +func (m *CreateSnapshotResponse) XXX_DiscardUnknown() { + xxx_messageInfo_CreateSnapshotResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_CreateSnapshotResponse proto.InternalMessageInfo + +func (m *CreateSnapshotResponse) GetSnapshot() *Snapshot { + if m != nil { + return m.Snapshot + } + return nil +} + +// The information about a provisioned snapshot. +type Snapshot struct { + // This is the complete size of the snapshot in bytes. The purpose of + // this field is to give CO guidance on how much space is needed to + // create a volume from this snapshot. The size of the volume MUST NOT + // be less than the size of the source snapshot. This field is + // OPTIONAL. If this field is not set, it indicates that this size is + // unknown. The value of this field MUST NOT be negative and a size of + // zero means it is unspecified. + SizeBytes int64 `protobuf:"varint,1,opt,name=size_bytes,json=sizeBytes" json:"size_bytes,omitempty"` + // Uniquely identifies a snapshot and is generated by the plugin. It + // will not change over time. This field is REQUIRED. The identity + // information will be used by the CO in subsequent calls to refer to + // the provisioned snapshot. + Id string `protobuf:"bytes,2,opt,name=id" json:"id,omitempty"` + // Identity information for the source volume. Note that creating a + // snapshot from a snapshot is not supported here so the source has to + // be a volume. This field is REQUIRED. + SourceVolumeId string `protobuf:"bytes,3,opt,name=source_volume_id,json=sourceVolumeId" json:"source_volume_id,omitempty"` + // Timestamp when the point-in-time snapshot is taken on the storage + // system. The format of this field should be a Unix nanoseconds time + // encoded as an int64. On Unix, the command `date +%s%N` returns the + // current time in nanoseconds since 1970-01-01 00:00:00 UTC. This + // field is REQUIRED. + CreatedAt int64 `protobuf:"varint,4,opt,name=created_at,json=createdAt" json:"created_at,omitempty"` + // The status of a snapshot. + Status *SnapshotStatus `protobuf:"bytes,5,opt,name=status" json:"status,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Snapshot) Reset() { *m = Snapshot{} } +func (m *Snapshot) String() string { return proto.CompactTextString(m) } +func (*Snapshot) ProtoMessage() {} +func (*Snapshot) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{32} +} +func (m *Snapshot) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Snapshot.Unmarshal(m, b) +} +func (m *Snapshot) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Snapshot.Marshal(b, m, deterministic) +} +func (dst *Snapshot) XXX_Merge(src proto.Message) { + xxx_messageInfo_Snapshot.Merge(dst, src) +} +func (m *Snapshot) XXX_Size() int { + return xxx_messageInfo_Snapshot.Size(m) +} +func (m *Snapshot) XXX_DiscardUnknown() { + xxx_messageInfo_Snapshot.DiscardUnknown(m) +} + +var xxx_messageInfo_Snapshot proto.InternalMessageInfo + +func (m *Snapshot) GetSizeBytes() int64 { + if m != nil { + return m.SizeBytes + } + return 0 +} + +func (m *Snapshot) GetId() string { + if m != nil { + return m.Id + } + return "" +} + +func (m *Snapshot) GetSourceVolumeId() string { + if m != nil { + return m.SourceVolumeId + } + return "" +} + +func (m *Snapshot) GetCreatedAt() int64 { + if m != nil { + return m.CreatedAt + } + return 0 +} + +func (m *Snapshot) GetStatus() *SnapshotStatus { + if m != nil { + return m.Status + } + return nil +} + +// The status of a snapshot. +type SnapshotStatus struct { + // This field is REQUIRED. + Type SnapshotStatus_Type `protobuf:"varint,1,opt,name=type,enum=csi.v0.SnapshotStatus_Type" json:"type,omitempty"` + // Additional information to describe why a snapshot ended up in the + // `ERROR_UPLOADING` status. This field is OPTIONAL. + Details string `protobuf:"bytes,2,opt,name=details" json:"details,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SnapshotStatus) Reset() { *m = SnapshotStatus{} } +func (m *SnapshotStatus) String() string { return proto.CompactTextString(m) } +func (*SnapshotStatus) ProtoMessage() {} +func (*SnapshotStatus) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{33} +} +func (m *SnapshotStatus) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SnapshotStatus.Unmarshal(m, b) +} +func (m *SnapshotStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SnapshotStatus.Marshal(b, m, deterministic) +} +func (dst *SnapshotStatus) XXX_Merge(src proto.Message) { + xxx_messageInfo_SnapshotStatus.Merge(dst, src) +} +func (m *SnapshotStatus) XXX_Size() int { + return xxx_messageInfo_SnapshotStatus.Size(m) +} +func (m *SnapshotStatus) XXX_DiscardUnknown() { + xxx_messageInfo_SnapshotStatus.DiscardUnknown(m) +} + +var xxx_messageInfo_SnapshotStatus proto.InternalMessageInfo + +func (m *SnapshotStatus) GetType() SnapshotStatus_Type { + if m != nil { + return m.Type + } + return SnapshotStatus_UNKNOWN +} + +func (m *SnapshotStatus) GetDetails() string { + if m != nil { + return m.Details + } + return "" +} + +type DeleteSnapshotRequest struct { + // The ID of the snapshot to be deleted. + // This field is REQUIRED. + SnapshotId string `protobuf:"bytes,1,opt,name=snapshot_id,json=snapshotId" json:"snapshot_id,omitempty"` + // Secrets required by plugin to complete snapshot deletion request. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. + DeleteSnapshotSecrets map[string]string `protobuf:"bytes,2,rep,name=delete_snapshot_secrets,json=deleteSnapshotSecrets" json:"delete_snapshot_secrets,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DeleteSnapshotRequest) Reset() { *m = DeleteSnapshotRequest{} } +func (m *DeleteSnapshotRequest) String() string { return proto.CompactTextString(m) } +func (*DeleteSnapshotRequest) ProtoMessage() {} +func (*DeleteSnapshotRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{34} +} +func (m *DeleteSnapshotRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteSnapshotRequest.Unmarshal(m, b) +} +func (m *DeleteSnapshotRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteSnapshotRequest.Marshal(b, m, deterministic) +} +func (dst *DeleteSnapshotRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteSnapshotRequest.Merge(dst, src) +} +func (m *DeleteSnapshotRequest) XXX_Size() int { + return xxx_messageInfo_DeleteSnapshotRequest.Size(m) +} +func (m *DeleteSnapshotRequest) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteSnapshotRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_DeleteSnapshotRequest proto.InternalMessageInfo + +func (m *DeleteSnapshotRequest) GetSnapshotId() string { + if m != nil { + return m.SnapshotId + } + return "" +} + +func (m *DeleteSnapshotRequest) GetDeleteSnapshotSecrets() map[string]string { + if m != nil { + return m.DeleteSnapshotSecrets + } + return nil +} + +type DeleteSnapshotResponse struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DeleteSnapshotResponse) Reset() { *m = DeleteSnapshotResponse{} } +func (m *DeleteSnapshotResponse) String() string { return proto.CompactTextString(m) } +func (*DeleteSnapshotResponse) ProtoMessage() {} +func (*DeleteSnapshotResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{35} +} +func (m *DeleteSnapshotResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteSnapshotResponse.Unmarshal(m, b) +} +func (m *DeleteSnapshotResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteSnapshotResponse.Marshal(b, m, deterministic) +} +func (dst *DeleteSnapshotResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteSnapshotResponse.Merge(dst, src) +} +func (m *DeleteSnapshotResponse) XXX_Size() int { + return xxx_messageInfo_DeleteSnapshotResponse.Size(m) +} +func (m *DeleteSnapshotResponse) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteSnapshotResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_DeleteSnapshotResponse proto.InternalMessageInfo + +// List all snapshots on the storage system regardless of how they were +// created. +type ListSnapshotsRequest struct { + // If specified (non-zero value), the Plugin MUST NOT return more + // entries than this number in the response. If the actual number of + // entries is more than this number, the Plugin MUST set `next_token` + // in the response which can be used to get the next page of entries + // in the subsequent `ListSnapshots` call. This field is OPTIONAL. If + // not specified (zero value), it means there is no restriction on the + // number of entries that can be returned. + // The value of this field MUST NOT be negative. + MaxEntries int32 `protobuf:"varint,1,opt,name=max_entries,json=maxEntries" json:"max_entries,omitempty"` + // A token to specify where to start paginating. Set this field to + // `next_token` returned by a previous `ListSnapshots` call to get the + // next page of entries. This field is OPTIONAL. + // An empty string is equal to an unspecified field value. + StartingToken string `protobuf:"bytes,2,opt,name=starting_token,json=startingToken" json:"starting_token,omitempty"` + // Identity information for the source volume. This field is OPTIONAL. + // It can be used to list snapshots by volume. + SourceVolumeId string `protobuf:"bytes,3,opt,name=source_volume_id,json=sourceVolumeId" json:"source_volume_id,omitempty"` + // Identity information for a specific snapshot. This field is + // OPTIONAL. It can be used to list only a specific snapshot. + // ListSnapshots will return with current snapshot information + // and will not block if the snapshot is being uploaded. + SnapshotId string `protobuf:"bytes,4,opt,name=snapshot_id,json=snapshotId" json:"snapshot_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListSnapshotsRequest) Reset() { *m = ListSnapshotsRequest{} } +func (m *ListSnapshotsRequest) String() string { return proto.CompactTextString(m) } +func (*ListSnapshotsRequest) ProtoMessage() {} +func (*ListSnapshotsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{36} +} +func (m *ListSnapshotsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListSnapshotsRequest.Unmarshal(m, b) +} +func (m *ListSnapshotsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListSnapshotsRequest.Marshal(b, m, deterministic) +} +func (dst *ListSnapshotsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListSnapshotsRequest.Merge(dst, src) +} +func (m *ListSnapshotsRequest) XXX_Size() int { + return xxx_messageInfo_ListSnapshotsRequest.Size(m) +} +func (m *ListSnapshotsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ListSnapshotsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ListSnapshotsRequest proto.InternalMessageInfo + +func (m *ListSnapshotsRequest) GetMaxEntries() int32 { + if m != nil { + return m.MaxEntries + } + return 0 +} + +func (m *ListSnapshotsRequest) GetStartingToken() string { + if m != nil { + return m.StartingToken + } + return "" +} + +func (m *ListSnapshotsRequest) GetSourceVolumeId() string { + if m != nil { + return m.SourceVolumeId + } + return "" +} + +func (m *ListSnapshotsRequest) GetSnapshotId() string { + if m != nil { + return m.SnapshotId + } + return "" +} + +type ListSnapshotsResponse struct { + Entries []*ListSnapshotsResponse_Entry `protobuf:"bytes,1,rep,name=entries" json:"entries,omitempty"` + // This token allows you to get the next page of entries for + // `ListSnapshots` request. If the number of entries is larger than + // `max_entries`, use the `next_token` as a value for the + // `starting_token` field in the next `ListSnapshots` request. This + // field is OPTIONAL. + // An empty string is equal to an unspecified field value. + NextToken string `protobuf:"bytes,2,opt,name=next_token,json=nextToken" json:"next_token,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListSnapshotsResponse) Reset() { *m = ListSnapshotsResponse{} } +func (m *ListSnapshotsResponse) String() string { return proto.CompactTextString(m) } +func (*ListSnapshotsResponse) ProtoMessage() {} +func (*ListSnapshotsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{37} +} +func (m *ListSnapshotsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListSnapshotsResponse.Unmarshal(m, b) +} +func (m *ListSnapshotsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListSnapshotsResponse.Marshal(b, m, deterministic) +} +func (dst *ListSnapshotsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListSnapshotsResponse.Merge(dst, src) +} +func (m *ListSnapshotsResponse) XXX_Size() int { + return xxx_messageInfo_ListSnapshotsResponse.Size(m) +} +func (m *ListSnapshotsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ListSnapshotsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ListSnapshotsResponse proto.InternalMessageInfo + +func (m *ListSnapshotsResponse) GetEntries() []*ListSnapshotsResponse_Entry { + if m != nil { + return m.Entries + } + return nil +} + +func (m *ListSnapshotsResponse) GetNextToken() string { + if m != nil { + return m.NextToken + } + return "" +} + +type ListSnapshotsResponse_Entry struct { + Snapshot *Snapshot `protobuf:"bytes,1,opt,name=snapshot" json:"snapshot,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListSnapshotsResponse_Entry) Reset() { *m = ListSnapshotsResponse_Entry{} } +func (m *ListSnapshotsResponse_Entry) String() string { return proto.CompactTextString(m) } +func (*ListSnapshotsResponse_Entry) ProtoMessage() {} +func (*ListSnapshotsResponse_Entry) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{37, 0} +} +func (m *ListSnapshotsResponse_Entry) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListSnapshotsResponse_Entry.Unmarshal(m, b) +} +func (m *ListSnapshotsResponse_Entry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListSnapshotsResponse_Entry.Marshal(b, m, deterministic) +} +func (dst *ListSnapshotsResponse_Entry) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListSnapshotsResponse_Entry.Merge(dst, src) +} +func (m *ListSnapshotsResponse_Entry) XXX_Size() int { + return xxx_messageInfo_ListSnapshotsResponse_Entry.Size(m) +} +func (m *ListSnapshotsResponse_Entry) XXX_DiscardUnknown() { + xxx_messageInfo_ListSnapshotsResponse_Entry.DiscardUnknown(m) +} + +var xxx_messageInfo_ListSnapshotsResponse_Entry proto.InternalMessageInfo + +func (m *ListSnapshotsResponse_Entry) GetSnapshot() *Snapshot { + if m != nil { + return m.Snapshot + } + return nil +} + +type NodeStageVolumeRequest struct { + // The ID of the volume to publish. This field is REQUIRED. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId" json:"volume_id,omitempty"` + // The CO SHALL set this field to the value returned by + // `ControllerPublishVolume` if the corresponding Controller Plugin + // has `PUBLISH_UNPUBLISH_VOLUME` controller capability, and SHALL be + // left unset if the corresponding Controller Plugin does not have + // this capability. This is an OPTIONAL field. + PublishInfo map[string]string `protobuf:"bytes,2,rep,name=publish_info,json=publishInfo" json:"publish_info,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + // The path to which the volume will be published. It MUST be an + // absolute path in the root filesystem of the process serving this + // request. The CO SHALL ensure that there is only one + // staging_target_path per volume. + // This is a REQUIRED field. + StagingTargetPath string `protobuf:"bytes,3,opt,name=staging_target_path,json=stagingTargetPath" json:"staging_target_path,omitempty"` + // The capability of the volume the CO expects the volume to have. + // This is a REQUIRED field. + VolumeCapability *VolumeCapability `protobuf:"bytes,4,opt,name=volume_capability,json=volumeCapability" json:"volume_capability,omitempty"` + // Secrets required by plugin to complete node stage volume request. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. + NodeStageSecrets map[string]string `protobuf:"bytes,5,rep,name=node_stage_secrets,json=nodeStageSecrets" json:"node_stage_secrets,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + // Attributes of the volume to publish. This field is OPTIONAL and + // MUST match the attributes of the `Volume` identified by + // `volume_id`. + VolumeAttributes map[string]string `protobuf:"bytes,6,rep,name=volume_attributes,json=volumeAttributes" json:"volume_attributes,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeStageVolumeRequest) Reset() { *m = NodeStageVolumeRequest{} } +func (m *NodeStageVolumeRequest) String() string { return proto.CompactTextString(m) } +func (*NodeStageVolumeRequest) ProtoMessage() {} +func (*NodeStageVolumeRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{38} +} +func (m *NodeStageVolumeRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeStageVolumeRequest.Unmarshal(m, b) +} +func (m *NodeStageVolumeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeStageVolumeRequest.Marshal(b, m, deterministic) +} +func (dst *NodeStageVolumeRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeStageVolumeRequest.Merge(dst, src) +} +func (m *NodeStageVolumeRequest) XXX_Size() int { + return xxx_messageInfo_NodeStageVolumeRequest.Size(m) +} +func (m *NodeStageVolumeRequest) XXX_DiscardUnknown() { + xxx_messageInfo_NodeStageVolumeRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeStageVolumeRequest proto.InternalMessageInfo + +func (m *NodeStageVolumeRequest) GetVolumeId() string { + if m != nil { + return m.VolumeId + } + return "" +} + +func (m *NodeStageVolumeRequest) GetPublishInfo() map[string]string { + if m != nil { + return m.PublishInfo + } + return nil +} + +func (m *NodeStageVolumeRequest) GetStagingTargetPath() string { + if m != nil { + return m.StagingTargetPath + } + return "" +} + +func (m *NodeStageVolumeRequest) GetVolumeCapability() *VolumeCapability { + if m != nil { + return m.VolumeCapability + } + return nil +} + +func (m *NodeStageVolumeRequest) GetNodeStageSecrets() map[string]string { + if m != nil { + return m.NodeStageSecrets + } + return nil +} + +func (m *NodeStageVolumeRequest) GetVolumeAttributes() map[string]string { + if m != nil { + return m.VolumeAttributes + } + return nil +} + +type NodeStageVolumeResponse struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeStageVolumeResponse) Reset() { *m = NodeStageVolumeResponse{} } +func (m *NodeStageVolumeResponse) String() string { return proto.CompactTextString(m) } +func (*NodeStageVolumeResponse) ProtoMessage() {} +func (*NodeStageVolumeResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{39} +} +func (m *NodeStageVolumeResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeStageVolumeResponse.Unmarshal(m, b) +} +func (m *NodeStageVolumeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeStageVolumeResponse.Marshal(b, m, deterministic) +} +func (dst *NodeStageVolumeResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeStageVolumeResponse.Merge(dst, src) +} +func (m *NodeStageVolumeResponse) XXX_Size() int { + return xxx_messageInfo_NodeStageVolumeResponse.Size(m) +} +func (m *NodeStageVolumeResponse) XXX_DiscardUnknown() { + xxx_messageInfo_NodeStageVolumeResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeStageVolumeResponse proto.InternalMessageInfo + +type NodeUnstageVolumeRequest struct { + // The ID of the volume. This field is REQUIRED. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId" json:"volume_id,omitempty"` + // The path at which the volume was published. It MUST be an absolute + // path in the root filesystem of the process serving this request. + // This is a REQUIRED field. + StagingTargetPath string `protobuf:"bytes,2,opt,name=staging_target_path,json=stagingTargetPath" json:"staging_target_path,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeUnstageVolumeRequest) Reset() { *m = NodeUnstageVolumeRequest{} } +func (m *NodeUnstageVolumeRequest) String() string { return proto.CompactTextString(m) } +func (*NodeUnstageVolumeRequest) ProtoMessage() {} +func (*NodeUnstageVolumeRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{40} +} +func (m *NodeUnstageVolumeRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeUnstageVolumeRequest.Unmarshal(m, b) +} +func (m *NodeUnstageVolumeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeUnstageVolumeRequest.Marshal(b, m, deterministic) +} +func (dst *NodeUnstageVolumeRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeUnstageVolumeRequest.Merge(dst, src) +} +func (m *NodeUnstageVolumeRequest) XXX_Size() int { + return xxx_messageInfo_NodeUnstageVolumeRequest.Size(m) +} +func (m *NodeUnstageVolumeRequest) XXX_DiscardUnknown() { + xxx_messageInfo_NodeUnstageVolumeRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeUnstageVolumeRequest proto.InternalMessageInfo + +func (m *NodeUnstageVolumeRequest) GetVolumeId() string { + if m != nil { + return m.VolumeId + } + return "" +} + +func (m *NodeUnstageVolumeRequest) GetStagingTargetPath() string { + if m != nil { + return m.StagingTargetPath + } + return "" +} + +type NodeUnstageVolumeResponse struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeUnstageVolumeResponse) Reset() { *m = NodeUnstageVolumeResponse{} } +func (m *NodeUnstageVolumeResponse) String() string { return proto.CompactTextString(m) } +func (*NodeUnstageVolumeResponse) ProtoMessage() {} +func (*NodeUnstageVolumeResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{41} +} +func (m *NodeUnstageVolumeResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeUnstageVolumeResponse.Unmarshal(m, b) +} +func (m *NodeUnstageVolumeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeUnstageVolumeResponse.Marshal(b, m, deterministic) +} +func (dst *NodeUnstageVolumeResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeUnstageVolumeResponse.Merge(dst, src) +} +func (m *NodeUnstageVolumeResponse) XXX_Size() int { + return xxx_messageInfo_NodeUnstageVolumeResponse.Size(m) +} +func (m *NodeUnstageVolumeResponse) XXX_DiscardUnknown() { + xxx_messageInfo_NodeUnstageVolumeResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeUnstageVolumeResponse proto.InternalMessageInfo + +type NodePublishVolumeRequest struct { + // The ID of the volume to publish. This field is REQUIRED. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId" json:"volume_id,omitempty"` + // The CO SHALL set this field to the value returned by + // `ControllerPublishVolume` if the corresponding Controller Plugin + // has `PUBLISH_UNPUBLISH_VOLUME` controller capability, and SHALL be + // left unset if the corresponding Controller Plugin does not have + // this capability. This is an OPTIONAL field. + PublishInfo map[string]string `protobuf:"bytes,2,rep,name=publish_info,json=publishInfo" json:"publish_info,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + // The path to which the device was mounted by `NodeStageVolume`. + // It MUST be an absolute path in the root filesystem of the process + // serving this request. + // It MUST be set if the Node Plugin implements the + // `STAGE_UNSTAGE_VOLUME` node capability. + // This is an OPTIONAL field. + StagingTargetPath string `protobuf:"bytes,3,opt,name=staging_target_path,json=stagingTargetPath" json:"staging_target_path,omitempty"` + // The path to which the volume will be published. It MUST be an + // absolute path in the root filesystem of the process serving this + // request. The CO SHALL ensure uniqueness of target_path per volume. + // The CO SHALL ensure that the path exists, and that the process + // serving the request has `read` and `write` permissions to the path. + // This is a REQUIRED field. + TargetPath string `protobuf:"bytes,4,opt,name=target_path,json=targetPath" json:"target_path,omitempty"` + // The capability of the volume the CO expects the volume to have. + // This is a REQUIRED field. + VolumeCapability *VolumeCapability `protobuf:"bytes,5,opt,name=volume_capability,json=volumeCapability" json:"volume_capability,omitempty"` + // Whether to publish the volume in readonly mode. This field is + // REQUIRED. + Readonly bool `protobuf:"varint,6,opt,name=readonly" json:"readonly,omitempty"` + // Secrets required by plugin to complete node publish volume request. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. + NodePublishSecrets map[string]string `protobuf:"bytes,7,rep,name=node_publish_secrets,json=nodePublishSecrets" json:"node_publish_secrets,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + // Attributes of the volume to publish. This field is OPTIONAL and + // MUST match the attributes of the Volume identified by + // `volume_id`. + VolumeAttributes map[string]string `protobuf:"bytes,8,rep,name=volume_attributes,json=volumeAttributes" json:"volume_attributes,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodePublishVolumeRequest) Reset() { *m = NodePublishVolumeRequest{} } +func (m *NodePublishVolumeRequest) String() string { return proto.CompactTextString(m) } +func (*NodePublishVolumeRequest) ProtoMessage() {} +func (*NodePublishVolumeRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{42} +} +func (m *NodePublishVolumeRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodePublishVolumeRequest.Unmarshal(m, b) +} +func (m *NodePublishVolumeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodePublishVolumeRequest.Marshal(b, m, deterministic) +} +func (dst *NodePublishVolumeRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodePublishVolumeRequest.Merge(dst, src) +} +func (m *NodePublishVolumeRequest) XXX_Size() int { + return xxx_messageInfo_NodePublishVolumeRequest.Size(m) +} +func (m *NodePublishVolumeRequest) XXX_DiscardUnknown() { + xxx_messageInfo_NodePublishVolumeRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_NodePublishVolumeRequest proto.InternalMessageInfo + +func (m *NodePublishVolumeRequest) GetVolumeId() string { + if m != nil { + return m.VolumeId + } + return "" +} + +func (m *NodePublishVolumeRequest) GetPublishInfo() map[string]string { + if m != nil { + return m.PublishInfo + } + return nil +} + +func (m *NodePublishVolumeRequest) GetStagingTargetPath() string { + if m != nil { + return m.StagingTargetPath + } + return "" +} + +func (m *NodePublishVolumeRequest) GetTargetPath() string { + if m != nil { + return m.TargetPath + } + return "" +} + +func (m *NodePublishVolumeRequest) GetVolumeCapability() *VolumeCapability { + if m != nil { + return m.VolumeCapability + } + return nil +} + +func (m *NodePublishVolumeRequest) GetReadonly() bool { + if m != nil { + return m.Readonly + } + return false +} + +func (m *NodePublishVolumeRequest) GetNodePublishSecrets() map[string]string { + if m != nil { + return m.NodePublishSecrets + } + return nil +} + +func (m *NodePublishVolumeRequest) GetVolumeAttributes() map[string]string { + if m != nil { + return m.VolumeAttributes + } + return nil +} + +type NodePublishVolumeResponse struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodePublishVolumeResponse) Reset() { *m = NodePublishVolumeResponse{} } +func (m *NodePublishVolumeResponse) String() string { return proto.CompactTextString(m) } +func (*NodePublishVolumeResponse) ProtoMessage() {} +func (*NodePublishVolumeResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{43} +} +func (m *NodePublishVolumeResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodePublishVolumeResponse.Unmarshal(m, b) +} +func (m *NodePublishVolumeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodePublishVolumeResponse.Marshal(b, m, deterministic) +} +func (dst *NodePublishVolumeResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodePublishVolumeResponse.Merge(dst, src) +} +func (m *NodePublishVolumeResponse) XXX_Size() int { + return xxx_messageInfo_NodePublishVolumeResponse.Size(m) +} +func (m *NodePublishVolumeResponse) XXX_DiscardUnknown() { + xxx_messageInfo_NodePublishVolumeResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_NodePublishVolumeResponse proto.InternalMessageInfo + +type NodeUnpublishVolumeRequest struct { + // The ID of the volume. This field is REQUIRED. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId" json:"volume_id,omitempty"` + // The path at which the volume was published. It MUST be an absolute + // path in the root filesystem of the process serving this request. + // This is a REQUIRED field. + TargetPath string `protobuf:"bytes,2,opt,name=target_path,json=targetPath" json:"target_path,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeUnpublishVolumeRequest) Reset() { *m = NodeUnpublishVolumeRequest{} } +func (m *NodeUnpublishVolumeRequest) String() string { return proto.CompactTextString(m) } +func (*NodeUnpublishVolumeRequest) ProtoMessage() {} +func (*NodeUnpublishVolumeRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{44} +} +func (m *NodeUnpublishVolumeRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeUnpublishVolumeRequest.Unmarshal(m, b) +} +func (m *NodeUnpublishVolumeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeUnpublishVolumeRequest.Marshal(b, m, deterministic) +} +func (dst *NodeUnpublishVolumeRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeUnpublishVolumeRequest.Merge(dst, src) +} +func (m *NodeUnpublishVolumeRequest) XXX_Size() int { + return xxx_messageInfo_NodeUnpublishVolumeRequest.Size(m) +} +func (m *NodeUnpublishVolumeRequest) XXX_DiscardUnknown() { + xxx_messageInfo_NodeUnpublishVolumeRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeUnpublishVolumeRequest proto.InternalMessageInfo + +func (m *NodeUnpublishVolumeRequest) GetVolumeId() string { + if m != nil { + return m.VolumeId + } + return "" +} + +func (m *NodeUnpublishVolumeRequest) GetTargetPath() string { + if m != nil { + return m.TargetPath + } + return "" +} + +type NodeUnpublishVolumeResponse struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeUnpublishVolumeResponse) Reset() { *m = NodeUnpublishVolumeResponse{} } +func (m *NodeUnpublishVolumeResponse) String() string { return proto.CompactTextString(m) } +func (*NodeUnpublishVolumeResponse) ProtoMessage() {} +func (*NodeUnpublishVolumeResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{45} +} +func (m *NodeUnpublishVolumeResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeUnpublishVolumeResponse.Unmarshal(m, b) +} +func (m *NodeUnpublishVolumeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeUnpublishVolumeResponse.Marshal(b, m, deterministic) +} +func (dst *NodeUnpublishVolumeResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeUnpublishVolumeResponse.Merge(dst, src) +} +func (m *NodeUnpublishVolumeResponse) XXX_Size() int { + return xxx_messageInfo_NodeUnpublishVolumeResponse.Size(m) +} +func (m *NodeUnpublishVolumeResponse) XXX_DiscardUnknown() { + xxx_messageInfo_NodeUnpublishVolumeResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeUnpublishVolumeResponse proto.InternalMessageInfo + +type NodeGetIdRequest struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeGetIdRequest) Reset() { *m = NodeGetIdRequest{} } +func (m *NodeGetIdRequest) String() string { return proto.CompactTextString(m) } +func (*NodeGetIdRequest) ProtoMessage() {} +func (*NodeGetIdRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{46} +} +func (m *NodeGetIdRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeGetIdRequest.Unmarshal(m, b) +} +func (m *NodeGetIdRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeGetIdRequest.Marshal(b, m, deterministic) +} +func (dst *NodeGetIdRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeGetIdRequest.Merge(dst, src) +} +func (m *NodeGetIdRequest) XXX_Size() int { + return xxx_messageInfo_NodeGetIdRequest.Size(m) +} +func (m *NodeGetIdRequest) XXX_DiscardUnknown() { + xxx_messageInfo_NodeGetIdRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeGetIdRequest proto.InternalMessageInfo + +type NodeGetIdResponse struct { + // The ID of the node as understood by the SP which SHALL be used by + // CO in subsequent `ControllerPublishVolume`. + // This is a REQUIRED field. + NodeId string `protobuf:"bytes,1,opt,name=node_id,json=nodeId" json:"node_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeGetIdResponse) Reset() { *m = NodeGetIdResponse{} } +func (m *NodeGetIdResponse) String() string { return proto.CompactTextString(m) } +func (*NodeGetIdResponse) ProtoMessage() {} +func (*NodeGetIdResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{47} +} +func (m *NodeGetIdResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeGetIdResponse.Unmarshal(m, b) +} +func (m *NodeGetIdResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeGetIdResponse.Marshal(b, m, deterministic) +} +func (dst *NodeGetIdResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeGetIdResponse.Merge(dst, src) +} +func (m *NodeGetIdResponse) XXX_Size() int { + return xxx_messageInfo_NodeGetIdResponse.Size(m) +} +func (m *NodeGetIdResponse) XXX_DiscardUnknown() { + xxx_messageInfo_NodeGetIdResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeGetIdResponse proto.InternalMessageInfo + +func (m *NodeGetIdResponse) GetNodeId() string { + if m != nil { + return m.NodeId + } + return "" +} + +type NodeGetCapabilitiesRequest struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeGetCapabilitiesRequest) Reset() { *m = NodeGetCapabilitiesRequest{} } +func (m *NodeGetCapabilitiesRequest) String() string { return proto.CompactTextString(m) } +func (*NodeGetCapabilitiesRequest) ProtoMessage() {} +func (*NodeGetCapabilitiesRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{48} +} +func (m *NodeGetCapabilitiesRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeGetCapabilitiesRequest.Unmarshal(m, b) +} +func (m *NodeGetCapabilitiesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeGetCapabilitiesRequest.Marshal(b, m, deterministic) +} +func (dst *NodeGetCapabilitiesRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeGetCapabilitiesRequest.Merge(dst, src) +} +func (m *NodeGetCapabilitiesRequest) XXX_Size() int { + return xxx_messageInfo_NodeGetCapabilitiesRequest.Size(m) +} +func (m *NodeGetCapabilitiesRequest) XXX_DiscardUnknown() { + xxx_messageInfo_NodeGetCapabilitiesRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeGetCapabilitiesRequest proto.InternalMessageInfo + +type NodeGetCapabilitiesResponse struct { + // All the capabilities that the node service supports. This field + // is OPTIONAL. + Capabilities []*NodeServiceCapability `protobuf:"bytes,1,rep,name=capabilities" json:"capabilities,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeGetCapabilitiesResponse) Reset() { *m = NodeGetCapabilitiesResponse{} } +func (m *NodeGetCapabilitiesResponse) String() string { return proto.CompactTextString(m) } +func (*NodeGetCapabilitiesResponse) ProtoMessage() {} +func (*NodeGetCapabilitiesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{49} +} +func (m *NodeGetCapabilitiesResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeGetCapabilitiesResponse.Unmarshal(m, b) +} +func (m *NodeGetCapabilitiesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeGetCapabilitiesResponse.Marshal(b, m, deterministic) +} +func (dst *NodeGetCapabilitiesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeGetCapabilitiesResponse.Merge(dst, src) +} +func (m *NodeGetCapabilitiesResponse) XXX_Size() int { + return xxx_messageInfo_NodeGetCapabilitiesResponse.Size(m) +} +func (m *NodeGetCapabilitiesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_NodeGetCapabilitiesResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeGetCapabilitiesResponse proto.InternalMessageInfo + +func (m *NodeGetCapabilitiesResponse) GetCapabilities() []*NodeServiceCapability { + if m != nil { + return m.Capabilities + } + return nil +} + +// Specifies a capability of the node service. +type NodeServiceCapability struct { + // Types that are valid to be assigned to Type: + // *NodeServiceCapability_Rpc + Type isNodeServiceCapability_Type `protobuf_oneof:"type"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeServiceCapability) Reset() { *m = NodeServiceCapability{} } +func (m *NodeServiceCapability) String() string { return proto.CompactTextString(m) } +func (*NodeServiceCapability) ProtoMessage() {} +func (*NodeServiceCapability) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{50} +} +func (m *NodeServiceCapability) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeServiceCapability.Unmarshal(m, b) +} +func (m *NodeServiceCapability) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeServiceCapability.Marshal(b, m, deterministic) +} +func (dst *NodeServiceCapability) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeServiceCapability.Merge(dst, src) +} +func (m *NodeServiceCapability) XXX_Size() int { + return xxx_messageInfo_NodeServiceCapability.Size(m) +} +func (m *NodeServiceCapability) XXX_DiscardUnknown() { + xxx_messageInfo_NodeServiceCapability.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeServiceCapability proto.InternalMessageInfo + +type isNodeServiceCapability_Type interface { + isNodeServiceCapability_Type() +} + +type NodeServiceCapability_Rpc struct { + Rpc *NodeServiceCapability_RPC `protobuf:"bytes,1,opt,name=rpc,oneof"` +} + +func (*NodeServiceCapability_Rpc) isNodeServiceCapability_Type() {} + +func (m *NodeServiceCapability) GetType() isNodeServiceCapability_Type { + if m != nil { + return m.Type + } + return nil +} + +func (m *NodeServiceCapability) GetRpc() *NodeServiceCapability_RPC { + if x, ok := m.GetType().(*NodeServiceCapability_Rpc); ok { + return x.Rpc + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*NodeServiceCapability) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _NodeServiceCapability_OneofMarshaler, _NodeServiceCapability_OneofUnmarshaler, _NodeServiceCapability_OneofSizer, []interface{}{ + (*NodeServiceCapability_Rpc)(nil), + } +} + +func _NodeServiceCapability_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*NodeServiceCapability) + // type + switch x := m.Type.(type) { + case *NodeServiceCapability_Rpc: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Rpc); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("NodeServiceCapability.Type has unexpected type %T", x) + } + return nil +} + +func _NodeServiceCapability_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*NodeServiceCapability) + switch tag { + case 1: // type.rpc + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(NodeServiceCapability_RPC) + err := b.DecodeMessage(msg) + m.Type = &NodeServiceCapability_Rpc{msg} + return true, err + default: + return false, nil + } +} + +func _NodeServiceCapability_OneofSizer(msg proto.Message) (n int) { + m := msg.(*NodeServiceCapability) + // type + switch x := m.Type.(type) { + case *NodeServiceCapability_Rpc: + s := proto.Size(x.Rpc) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +type NodeServiceCapability_RPC struct { + Type NodeServiceCapability_RPC_Type `protobuf:"varint,1,opt,name=type,enum=csi.v0.NodeServiceCapability_RPC_Type" json:"type,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeServiceCapability_RPC) Reset() { *m = NodeServiceCapability_RPC{} } +func (m *NodeServiceCapability_RPC) String() string { return proto.CompactTextString(m) } +func (*NodeServiceCapability_RPC) ProtoMessage() {} +func (*NodeServiceCapability_RPC) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{50, 0} +} +func (m *NodeServiceCapability_RPC) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeServiceCapability_RPC.Unmarshal(m, b) +} +func (m *NodeServiceCapability_RPC) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeServiceCapability_RPC.Marshal(b, m, deterministic) +} +func (dst *NodeServiceCapability_RPC) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeServiceCapability_RPC.Merge(dst, src) +} +func (m *NodeServiceCapability_RPC) XXX_Size() int { + return xxx_messageInfo_NodeServiceCapability_RPC.Size(m) +} +func (m *NodeServiceCapability_RPC) XXX_DiscardUnknown() { + xxx_messageInfo_NodeServiceCapability_RPC.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeServiceCapability_RPC proto.InternalMessageInfo + +func (m *NodeServiceCapability_RPC) GetType() NodeServiceCapability_RPC_Type { + if m != nil { + return m.Type + } + return NodeServiceCapability_RPC_UNKNOWN +} + +type NodeGetInfoRequest struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeGetInfoRequest) Reset() { *m = NodeGetInfoRequest{} } +func (m *NodeGetInfoRequest) String() string { return proto.CompactTextString(m) } +func (*NodeGetInfoRequest) ProtoMessage() {} +func (*NodeGetInfoRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{51} +} +func (m *NodeGetInfoRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeGetInfoRequest.Unmarshal(m, b) +} +func (m *NodeGetInfoRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeGetInfoRequest.Marshal(b, m, deterministic) +} +func (dst *NodeGetInfoRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeGetInfoRequest.Merge(dst, src) +} +func (m *NodeGetInfoRequest) XXX_Size() int { + return xxx_messageInfo_NodeGetInfoRequest.Size(m) +} +func (m *NodeGetInfoRequest) XXX_DiscardUnknown() { + xxx_messageInfo_NodeGetInfoRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeGetInfoRequest proto.InternalMessageInfo + +type NodeGetInfoResponse struct { + // The ID of the node as understood by the SP which SHALL be used by + // CO in subsequent calls to `ControllerPublishVolume`. + // This is a REQUIRED field. + NodeId string `protobuf:"bytes,1,opt,name=node_id,json=nodeId" json:"node_id,omitempty"` + // Maximum number of volumes that controller can publish to the node. + // If value is not set or zero CO SHALL decide how many volumes of + // this type can be published by the controller to the node. The + // plugin MUST NOT set negative values here. + // This field is OPTIONAL. + MaxVolumesPerNode int64 `protobuf:"varint,2,opt,name=max_volumes_per_node,json=maxVolumesPerNode" json:"max_volumes_per_node,omitempty"` + // Specifies where (regions, zones, racks, etc.) the node is + // accessible from. + // A plugin that returns this field MUST also set the + // ACCESSIBILITY_CONSTRAINTS plugin capability. + // COs MAY use this information along with the topology information + // returned in CreateVolumeResponse to ensure that a given volume is + // accessible from a given node when scheduling workloads. + // This field is OPTIONAL. If it is not specified, the CO MAY assume + // the node is not subject to any topological constraint, and MAY + // schedule workloads that reference any volume V, such that there are + // no topological constraints declared for V. + // + // Example 1: + // accessible_topology = + // {"region": "R1", "zone": "R2"} + // Indicates the node exists within the "region" "R1" and the "zone" + // "Z2". + AccessibleTopology *Topology `protobuf:"bytes,3,opt,name=accessible_topology,json=accessibleTopology" json:"accessible_topology,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeGetInfoResponse) Reset() { *m = NodeGetInfoResponse{} } +func (m *NodeGetInfoResponse) String() string { return proto.CompactTextString(m) } +func (*NodeGetInfoResponse) ProtoMessage() {} +func (*NodeGetInfoResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_31237507707d37ec, []int{52} +} +func (m *NodeGetInfoResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeGetInfoResponse.Unmarshal(m, b) +} +func (m *NodeGetInfoResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeGetInfoResponse.Marshal(b, m, deterministic) +} +func (dst *NodeGetInfoResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeGetInfoResponse.Merge(dst, src) +} +func (m *NodeGetInfoResponse) XXX_Size() int { + return xxx_messageInfo_NodeGetInfoResponse.Size(m) +} +func (m *NodeGetInfoResponse) XXX_DiscardUnknown() { + xxx_messageInfo_NodeGetInfoResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeGetInfoResponse proto.InternalMessageInfo + +func (m *NodeGetInfoResponse) GetNodeId() string { + if m != nil { + return m.NodeId + } + return "" +} + +func (m *NodeGetInfoResponse) GetMaxVolumesPerNode() int64 { + if m != nil { + return m.MaxVolumesPerNode + } + return 0 +} + +func (m *NodeGetInfoResponse) GetAccessibleTopology() *Topology { + if m != nil { + return m.AccessibleTopology + } + return nil +} + +func init() { + proto.RegisterType((*GetPluginInfoRequest)(nil), "csi.v0.GetPluginInfoRequest") + proto.RegisterType((*GetPluginInfoResponse)(nil), "csi.v0.GetPluginInfoResponse") + proto.RegisterMapType((map[string]string)(nil), "csi.v0.GetPluginInfoResponse.ManifestEntry") + proto.RegisterType((*GetPluginCapabilitiesRequest)(nil), "csi.v0.GetPluginCapabilitiesRequest") + proto.RegisterType((*GetPluginCapabilitiesResponse)(nil), "csi.v0.GetPluginCapabilitiesResponse") + proto.RegisterType((*PluginCapability)(nil), "csi.v0.PluginCapability") + proto.RegisterType((*PluginCapability_Service)(nil), "csi.v0.PluginCapability.Service") + proto.RegisterType((*ProbeRequest)(nil), "csi.v0.ProbeRequest") + proto.RegisterType((*ProbeResponse)(nil), "csi.v0.ProbeResponse") + proto.RegisterType((*CreateVolumeRequest)(nil), "csi.v0.CreateVolumeRequest") + proto.RegisterMapType((map[string]string)(nil), "csi.v0.CreateVolumeRequest.ControllerCreateSecretsEntry") + proto.RegisterMapType((map[string]string)(nil), "csi.v0.CreateVolumeRequest.ParametersEntry") + proto.RegisterType((*VolumeContentSource)(nil), "csi.v0.VolumeContentSource") + proto.RegisterType((*VolumeContentSource_SnapshotSource)(nil), "csi.v0.VolumeContentSource.SnapshotSource") + proto.RegisterType((*CreateVolumeResponse)(nil), "csi.v0.CreateVolumeResponse") + proto.RegisterType((*VolumeCapability)(nil), "csi.v0.VolumeCapability") + proto.RegisterType((*VolumeCapability_BlockVolume)(nil), "csi.v0.VolumeCapability.BlockVolume") + proto.RegisterType((*VolumeCapability_MountVolume)(nil), "csi.v0.VolumeCapability.MountVolume") + proto.RegisterType((*VolumeCapability_AccessMode)(nil), "csi.v0.VolumeCapability.AccessMode") + proto.RegisterType((*CapacityRange)(nil), "csi.v0.CapacityRange") + proto.RegisterType((*Volume)(nil), "csi.v0.Volume") + proto.RegisterMapType((map[string]string)(nil), "csi.v0.Volume.AttributesEntry") + proto.RegisterType((*TopologyRequirement)(nil), "csi.v0.TopologyRequirement") + proto.RegisterType((*Topology)(nil), "csi.v0.Topology") + proto.RegisterMapType((map[string]string)(nil), "csi.v0.Topology.SegmentsEntry") + proto.RegisterType((*DeleteVolumeRequest)(nil), "csi.v0.DeleteVolumeRequest") + proto.RegisterMapType((map[string]string)(nil), "csi.v0.DeleteVolumeRequest.ControllerDeleteSecretsEntry") + proto.RegisterType((*DeleteVolumeResponse)(nil), "csi.v0.DeleteVolumeResponse") + proto.RegisterType((*ControllerPublishVolumeRequest)(nil), "csi.v0.ControllerPublishVolumeRequest") + proto.RegisterMapType((map[string]string)(nil), "csi.v0.ControllerPublishVolumeRequest.ControllerPublishSecretsEntry") + proto.RegisterMapType((map[string]string)(nil), "csi.v0.ControllerPublishVolumeRequest.VolumeAttributesEntry") + proto.RegisterType((*ControllerPublishVolumeResponse)(nil), "csi.v0.ControllerPublishVolumeResponse") + proto.RegisterMapType((map[string]string)(nil), "csi.v0.ControllerPublishVolumeResponse.PublishInfoEntry") + proto.RegisterType((*ControllerUnpublishVolumeRequest)(nil), "csi.v0.ControllerUnpublishVolumeRequest") + proto.RegisterMapType((map[string]string)(nil), "csi.v0.ControllerUnpublishVolumeRequest.ControllerUnpublishSecretsEntry") + proto.RegisterType((*ControllerUnpublishVolumeResponse)(nil), "csi.v0.ControllerUnpublishVolumeResponse") + proto.RegisterType((*ValidateVolumeCapabilitiesRequest)(nil), "csi.v0.ValidateVolumeCapabilitiesRequest") + proto.RegisterMapType((map[string]string)(nil), "csi.v0.ValidateVolumeCapabilitiesRequest.VolumeAttributesEntry") + proto.RegisterType((*ValidateVolumeCapabilitiesResponse)(nil), "csi.v0.ValidateVolumeCapabilitiesResponse") + proto.RegisterType((*ListVolumesRequest)(nil), "csi.v0.ListVolumesRequest") + proto.RegisterType((*ListVolumesResponse)(nil), "csi.v0.ListVolumesResponse") + proto.RegisterType((*ListVolumesResponse_Entry)(nil), "csi.v0.ListVolumesResponse.Entry") + proto.RegisterType((*GetCapacityRequest)(nil), "csi.v0.GetCapacityRequest") + proto.RegisterMapType((map[string]string)(nil), "csi.v0.GetCapacityRequest.ParametersEntry") + proto.RegisterType((*GetCapacityResponse)(nil), "csi.v0.GetCapacityResponse") + proto.RegisterType((*ControllerGetCapabilitiesRequest)(nil), "csi.v0.ControllerGetCapabilitiesRequest") + proto.RegisterType((*ControllerGetCapabilitiesResponse)(nil), "csi.v0.ControllerGetCapabilitiesResponse") + proto.RegisterType((*ControllerServiceCapability)(nil), "csi.v0.ControllerServiceCapability") + proto.RegisterType((*ControllerServiceCapability_RPC)(nil), "csi.v0.ControllerServiceCapability.RPC") + proto.RegisterType((*CreateSnapshotRequest)(nil), "csi.v0.CreateSnapshotRequest") + proto.RegisterMapType((map[string]string)(nil), "csi.v0.CreateSnapshotRequest.CreateSnapshotSecretsEntry") + proto.RegisterMapType((map[string]string)(nil), "csi.v0.CreateSnapshotRequest.ParametersEntry") + proto.RegisterType((*CreateSnapshotResponse)(nil), "csi.v0.CreateSnapshotResponse") + proto.RegisterType((*Snapshot)(nil), "csi.v0.Snapshot") + proto.RegisterType((*SnapshotStatus)(nil), "csi.v0.SnapshotStatus") + proto.RegisterType((*DeleteSnapshotRequest)(nil), "csi.v0.DeleteSnapshotRequest") + proto.RegisterMapType((map[string]string)(nil), "csi.v0.DeleteSnapshotRequest.DeleteSnapshotSecretsEntry") + proto.RegisterType((*DeleteSnapshotResponse)(nil), "csi.v0.DeleteSnapshotResponse") + proto.RegisterType((*ListSnapshotsRequest)(nil), "csi.v0.ListSnapshotsRequest") + proto.RegisterType((*ListSnapshotsResponse)(nil), "csi.v0.ListSnapshotsResponse") + proto.RegisterType((*ListSnapshotsResponse_Entry)(nil), "csi.v0.ListSnapshotsResponse.Entry") + proto.RegisterType((*NodeStageVolumeRequest)(nil), "csi.v0.NodeStageVolumeRequest") + proto.RegisterMapType((map[string]string)(nil), "csi.v0.NodeStageVolumeRequest.NodeStageSecretsEntry") + proto.RegisterMapType((map[string]string)(nil), "csi.v0.NodeStageVolumeRequest.PublishInfoEntry") + proto.RegisterMapType((map[string]string)(nil), "csi.v0.NodeStageVolumeRequest.VolumeAttributesEntry") + proto.RegisterType((*NodeStageVolumeResponse)(nil), "csi.v0.NodeStageVolumeResponse") + proto.RegisterType((*NodeUnstageVolumeRequest)(nil), "csi.v0.NodeUnstageVolumeRequest") + proto.RegisterType((*NodeUnstageVolumeResponse)(nil), "csi.v0.NodeUnstageVolumeResponse") + proto.RegisterType((*NodePublishVolumeRequest)(nil), "csi.v0.NodePublishVolumeRequest") + proto.RegisterMapType((map[string]string)(nil), "csi.v0.NodePublishVolumeRequest.NodePublishSecretsEntry") + proto.RegisterMapType((map[string]string)(nil), "csi.v0.NodePublishVolumeRequest.PublishInfoEntry") + proto.RegisterMapType((map[string]string)(nil), "csi.v0.NodePublishVolumeRequest.VolumeAttributesEntry") + proto.RegisterType((*NodePublishVolumeResponse)(nil), "csi.v0.NodePublishVolumeResponse") + proto.RegisterType((*NodeUnpublishVolumeRequest)(nil), "csi.v0.NodeUnpublishVolumeRequest") + proto.RegisterType((*NodeUnpublishVolumeResponse)(nil), "csi.v0.NodeUnpublishVolumeResponse") + proto.RegisterType((*NodeGetIdRequest)(nil), "csi.v0.NodeGetIdRequest") + proto.RegisterType((*NodeGetIdResponse)(nil), "csi.v0.NodeGetIdResponse") + proto.RegisterType((*NodeGetCapabilitiesRequest)(nil), "csi.v0.NodeGetCapabilitiesRequest") + proto.RegisterType((*NodeGetCapabilitiesResponse)(nil), "csi.v0.NodeGetCapabilitiesResponse") + proto.RegisterType((*NodeServiceCapability)(nil), "csi.v0.NodeServiceCapability") + proto.RegisterType((*NodeServiceCapability_RPC)(nil), "csi.v0.NodeServiceCapability.RPC") + proto.RegisterType((*NodeGetInfoRequest)(nil), "csi.v0.NodeGetInfoRequest") + proto.RegisterType((*NodeGetInfoResponse)(nil), "csi.v0.NodeGetInfoResponse") + proto.RegisterEnum("csi.v0.PluginCapability_Service_Type", PluginCapability_Service_Type_name, PluginCapability_Service_Type_value) + proto.RegisterEnum("csi.v0.VolumeCapability_AccessMode_Mode", VolumeCapability_AccessMode_Mode_name, VolumeCapability_AccessMode_Mode_value) + proto.RegisterEnum("csi.v0.ControllerServiceCapability_RPC_Type", ControllerServiceCapability_RPC_Type_name, ControllerServiceCapability_RPC_Type_value) + proto.RegisterEnum("csi.v0.SnapshotStatus_Type", SnapshotStatus_Type_name, SnapshotStatus_Type_value) + proto.RegisterEnum("csi.v0.NodeServiceCapability_RPC_Type", NodeServiceCapability_RPC_Type_name, NodeServiceCapability_RPC_Type_value) +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// Client API for Identity service + +type IdentityClient interface { + GetPluginInfo(ctx context.Context, in *GetPluginInfoRequest, opts ...grpc.CallOption) (*GetPluginInfoResponse, error) + GetPluginCapabilities(ctx context.Context, in *GetPluginCapabilitiesRequest, opts ...grpc.CallOption) (*GetPluginCapabilitiesResponse, error) + Probe(ctx context.Context, in *ProbeRequest, opts ...grpc.CallOption) (*ProbeResponse, error) +} + +type identityClient struct { + cc *grpc.ClientConn +} + +func NewIdentityClient(cc *grpc.ClientConn) IdentityClient { + return &identityClient{cc} +} + +func (c *identityClient) GetPluginInfo(ctx context.Context, in *GetPluginInfoRequest, opts ...grpc.CallOption) (*GetPluginInfoResponse, error) { + out := new(GetPluginInfoResponse) + err := grpc.Invoke(ctx, "/csi.v0.Identity/GetPluginInfo", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *identityClient) GetPluginCapabilities(ctx context.Context, in *GetPluginCapabilitiesRequest, opts ...grpc.CallOption) (*GetPluginCapabilitiesResponse, error) { + out := new(GetPluginCapabilitiesResponse) + err := grpc.Invoke(ctx, "/csi.v0.Identity/GetPluginCapabilities", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *identityClient) Probe(ctx context.Context, in *ProbeRequest, opts ...grpc.CallOption) (*ProbeResponse, error) { + out := new(ProbeResponse) + err := grpc.Invoke(ctx, "/csi.v0.Identity/Probe", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// Server API for Identity service + +type IdentityServer interface { + GetPluginInfo(context.Context, *GetPluginInfoRequest) (*GetPluginInfoResponse, error) + GetPluginCapabilities(context.Context, *GetPluginCapabilitiesRequest) (*GetPluginCapabilitiesResponse, error) + Probe(context.Context, *ProbeRequest) (*ProbeResponse, error) +} + +func RegisterIdentityServer(s *grpc.Server, srv IdentityServer) { + s.RegisterService(&_Identity_serviceDesc, srv) +} + +func _Identity_GetPluginInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetPluginInfoRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(IdentityServer).GetPluginInfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v0.Identity/GetPluginInfo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(IdentityServer).GetPluginInfo(ctx, req.(*GetPluginInfoRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Identity_GetPluginCapabilities_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetPluginCapabilitiesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(IdentityServer).GetPluginCapabilities(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v0.Identity/GetPluginCapabilities", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(IdentityServer).GetPluginCapabilities(ctx, req.(*GetPluginCapabilitiesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Identity_Probe_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ProbeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(IdentityServer).Probe(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v0.Identity/Probe", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(IdentityServer).Probe(ctx, req.(*ProbeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _Identity_serviceDesc = grpc.ServiceDesc{ + ServiceName: "csi.v0.Identity", + HandlerType: (*IdentityServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetPluginInfo", + Handler: _Identity_GetPluginInfo_Handler, + }, + { + MethodName: "GetPluginCapabilities", + Handler: _Identity_GetPluginCapabilities_Handler, + }, + { + MethodName: "Probe", + Handler: _Identity_Probe_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "csi.proto", +} + +// Client API for Controller service + +type ControllerClient interface { + CreateVolume(ctx context.Context, in *CreateVolumeRequest, opts ...grpc.CallOption) (*CreateVolumeResponse, error) + DeleteVolume(ctx context.Context, in *DeleteVolumeRequest, opts ...grpc.CallOption) (*DeleteVolumeResponse, error) + ControllerPublishVolume(ctx context.Context, in *ControllerPublishVolumeRequest, opts ...grpc.CallOption) (*ControllerPublishVolumeResponse, error) + ControllerUnpublishVolume(ctx context.Context, in *ControllerUnpublishVolumeRequest, opts ...grpc.CallOption) (*ControllerUnpublishVolumeResponse, error) + ValidateVolumeCapabilities(ctx context.Context, in *ValidateVolumeCapabilitiesRequest, opts ...grpc.CallOption) (*ValidateVolumeCapabilitiesResponse, error) + ListVolumes(ctx context.Context, in *ListVolumesRequest, opts ...grpc.CallOption) (*ListVolumesResponse, error) + GetCapacity(ctx context.Context, in *GetCapacityRequest, opts ...grpc.CallOption) (*GetCapacityResponse, error) + ControllerGetCapabilities(ctx context.Context, in *ControllerGetCapabilitiesRequest, opts ...grpc.CallOption) (*ControllerGetCapabilitiesResponse, error) + CreateSnapshot(ctx context.Context, in *CreateSnapshotRequest, opts ...grpc.CallOption) (*CreateSnapshotResponse, error) + DeleteSnapshot(ctx context.Context, in *DeleteSnapshotRequest, opts ...grpc.CallOption) (*DeleteSnapshotResponse, error) + ListSnapshots(ctx context.Context, in *ListSnapshotsRequest, opts ...grpc.CallOption) (*ListSnapshotsResponse, error) +} + +type controllerClient struct { + cc *grpc.ClientConn +} + +func NewControllerClient(cc *grpc.ClientConn) ControllerClient { + return &controllerClient{cc} +} + +func (c *controllerClient) CreateVolume(ctx context.Context, in *CreateVolumeRequest, opts ...grpc.CallOption) (*CreateVolumeResponse, error) { + out := new(CreateVolumeResponse) + err := grpc.Invoke(ctx, "/csi.v0.Controller/CreateVolume", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controllerClient) DeleteVolume(ctx context.Context, in *DeleteVolumeRequest, opts ...grpc.CallOption) (*DeleteVolumeResponse, error) { + out := new(DeleteVolumeResponse) + err := grpc.Invoke(ctx, "/csi.v0.Controller/DeleteVolume", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controllerClient) ControllerPublishVolume(ctx context.Context, in *ControllerPublishVolumeRequest, opts ...grpc.CallOption) (*ControllerPublishVolumeResponse, error) { + out := new(ControllerPublishVolumeResponse) + err := grpc.Invoke(ctx, "/csi.v0.Controller/ControllerPublishVolume", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controllerClient) ControllerUnpublishVolume(ctx context.Context, in *ControllerUnpublishVolumeRequest, opts ...grpc.CallOption) (*ControllerUnpublishVolumeResponse, error) { + out := new(ControllerUnpublishVolumeResponse) + err := grpc.Invoke(ctx, "/csi.v0.Controller/ControllerUnpublishVolume", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controllerClient) ValidateVolumeCapabilities(ctx context.Context, in *ValidateVolumeCapabilitiesRequest, opts ...grpc.CallOption) (*ValidateVolumeCapabilitiesResponse, error) { + out := new(ValidateVolumeCapabilitiesResponse) + err := grpc.Invoke(ctx, "/csi.v0.Controller/ValidateVolumeCapabilities", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controllerClient) ListVolumes(ctx context.Context, in *ListVolumesRequest, opts ...grpc.CallOption) (*ListVolumesResponse, error) { + out := new(ListVolumesResponse) + err := grpc.Invoke(ctx, "/csi.v0.Controller/ListVolumes", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controllerClient) GetCapacity(ctx context.Context, in *GetCapacityRequest, opts ...grpc.CallOption) (*GetCapacityResponse, error) { + out := new(GetCapacityResponse) + err := grpc.Invoke(ctx, "/csi.v0.Controller/GetCapacity", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controllerClient) ControllerGetCapabilities(ctx context.Context, in *ControllerGetCapabilitiesRequest, opts ...grpc.CallOption) (*ControllerGetCapabilitiesResponse, error) { + out := new(ControllerGetCapabilitiesResponse) + err := grpc.Invoke(ctx, "/csi.v0.Controller/ControllerGetCapabilities", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controllerClient) CreateSnapshot(ctx context.Context, in *CreateSnapshotRequest, opts ...grpc.CallOption) (*CreateSnapshotResponse, error) { + out := new(CreateSnapshotResponse) + err := grpc.Invoke(ctx, "/csi.v0.Controller/CreateSnapshot", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controllerClient) DeleteSnapshot(ctx context.Context, in *DeleteSnapshotRequest, opts ...grpc.CallOption) (*DeleteSnapshotResponse, error) { + out := new(DeleteSnapshotResponse) + err := grpc.Invoke(ctx, "/csi.v0.Controller/DeleteSnapshot", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controllerClient) ListSnapshots(ctx context.Context, in *ListSnapshotsRequest, opts ...grpc.CallOption) (*ListSnapshotsResponse, error) { + out := new(ListSnapshotsResponse) + err := grpc.Invoke(ctx, "/csi.v0.Controller/ListSnapshots", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// Server API for Controller service + +type ControllerServer interface { + CreateVolume(context.Context, *CreateVolumeRequest) (*CreateVolumeResponse, error) + DeleteVolume(context.Context, *DeleteVolumeRequest) (*DeleteVolumeResponse, error) + ControllerPublishVolume(context.Context, *ControllerPublishVolumeRequest) (*ControllerPublishVolumeResponse, error) + ControllerUnpublishVolume(context.Context, *ControllerUnpublishVolumeRequest) (*ControllerUnpublishVolumeResponse, error) + ValidateVolumeCapabilities(context.Context, *ValidateVolumeCapabilitiesRequest) (*ValidateVolumeCapabilitiesResponse, error) + ListVolumes(context.Context, *ListVolumesRequest) (*ListVolumesResponse, error) + GetCapacity(context.Context, *GetCapacityRequest) (*GetCapacityResponse, error) + ControllerGetCapabilities(context.Context, *ControllerGetCapabilitiesRequest) (*ControllerGetCapabilitiesResponse, error) + CreateSnapshot(context.Context, *CreateSnapshotRequest) (*CreateSnapshotResponse, error) + DeleteSnapshot(context.Context, *DeleteSnapshotRequest) (*DeleteSnapshotResponse, error) + ListSnapshots(context.Context, *ListSnapshotsRequest) (*ListSnapshotsResponse, error) +} + +func RegisterControllerServer(s *grpc.Server, srv ControllerServer) { + s.RegisterService(&_Controller_serviceDesc, srv) +} + +func _Controller_CreateVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControllerServer).CreateVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v0.Controller/CreateVolume", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControllerServer).CreateVolume(ctx, req.(*CreateVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Controller_DeleteVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControllerServer).DeleteVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v0.Controller/DeleteVolume", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControllerServer).DeleteVolume(ctx, req.(*DeleteVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Controller_ControllerPublishVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ControllerPublishVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControllerServer).ControllerPublishVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v0.Controller/ControllerPublishVolume", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControllerServer).ControllerPublishVolume(ctx, req.(*ControllerPublishVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Controller_ControllerUnpublishVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ControllerUnpublishVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControllerServer).ControllerUnpublishVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v0.Controller/ControllerUnpublishVolume", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControllerServer).ControllerUnpublishVolume(ctx, req.(*ControllerUnpublishVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Controller_ValidateVolumeCapabilities_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ValidateVolumeCapabilitiesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControllerServer).ValidateVolumeCapabilities(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v0.Controller/ValidateVolumeCapabilities", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControllerServer).ValidateVolumeCapabilities(ctx, req.(*ValidateVolumeCapabilitiesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Controller_ListVolumes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListVolumesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControllerServer).ListVolumes(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v0.Controller/ListVolumes", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControllerServer).ListVolumes(ctx, req.(*ListVolumesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Controller_GetCapacity_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetCapacityRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControllerServer).GetCapacity(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v0.Controller/GetCapacity", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControllerServer).GetCapacity(ctx, req.(*GetCapacityRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Controller_ControllerGetCapabilities_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ControllerGetCapabilitiesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControllerServer).ControllerGetCapabilities(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v0.Controller/ControllerGetCapabilities", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControllerServer).ControllerGetCapabilities(ctx, req.(*ControllerGetCapabilitiesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Controller_CreateSnapshot_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateSnapshotRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControllerServer).CreateSnapshot(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v0.Controller/CreateSnapshot", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControllerServer).CreateSnapshot(ctx, req.(*CreateSnapshotRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Controller_DeleteSnapshot_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteSnapshotRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControllerServer).DeleteSnapshot(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v0.Controller/DeleteSnapshot", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControllerServer).DeleteSnapshot(ctx, req.(*DeleteSnapshotRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Controller_ListSnapshots_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListSnapshotsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControllerServer).ListSnapshots(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v0.Controller/ListSnapshots", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControllerServer).ListSnapshots(ctx, req.(*ListSnapshotsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _Controller_serviceDesc = grpc.ServiceDesc{ + ServiceName: "csi.v0.Controller", + HandlerType: (*ControllerServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "CreateVolume", + Handler: _Controller_CreateVolume_Handler, + }, + { + MethodName: "DeleteVolume", + Handler: _Controller_DeleteVolume_Handler, + }, + { + MethodName: "ControllerPublishVolume", + Handler: _Controller_ControllerPublishVolume_Handler, + }, + { + MethodName: "ControllerUnpublishVolume", + Handler: _Controller_ControllerUnpublishVolume_Handler, + }, + { + MethodName: "ValidateVolumeCapabilities", + Handler: _Controller_ValidateVolumeCapabilities_Handler, + }, + { + MethodName: "ListVolumes", + Handler: _Controller_ListVolumes_Handler, + }, + { + MethodName: "GetCapacity", + Handler: _Controller_GetCapacity_Handler, + }, + { + MethodName: "ControllerGetCapabilities", + Handler: _Controller_ControllerGetCapabilities_Handler, + }, + { + MethodName: "CreateSnapshot", + Handler: _Controller_CreateSnapshot_Handler, + }, + { + MethodName: "DeleteSnapshot", + Handler: _Controller_DeleteSnapshot_Handler, + }, + { + MethodName: "ListSnapshots", + Handler: _Controller_ListSnapshots_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "csi.proto", +} + +// Client API for Node service + +type NodeClient interface { + NodeStageVolume(ctx context.Context, in *NodeStageVolumeRequest, opts ...grpc.CallOption) (*NodeStageVolumeResponse, error) + NodeUnstageVolume(ctx context.Context, in *NodeUnstageVolumeRequest, opts ...grpc.CallOption) (*NodeUnstageVolumeResponse, error) + NodePublishVolume(ctx context.Context, in *NodePublishVolumeRequest, opts ...grpc.CallOption) (*NodePublishVolumeResponse, error) + NodeUnpublishVolume(ctx context.Context, in *NodeUnpublishVolumeRequest, opts ...grpc.CallOption) (*NodeUnpublishVolumeResponse, error) + // NodeGetId is being deprecated in favor of NodeGetInfo and will be + // removed in CSI 1.0. Existing drivers, however, may depend on this + // RPC call and hence this RPC call MUST be implemented by the CSI + // plugin prior to v1.0. + NodeGetId(ctx context.Context, in *NodeGetIdRequest, opts ...grpc.CallOption) (*NodeGetIdResponse, error) + NodeGetCapabilities(ctx context.Context, in *NodeGetCapabilitiesRequest, opts ...grpc.CallOption) (*NodeGetCapabilitiesResponse, error) + // Prior to CSI 1.0 - CSI plugins MUST implement both NodeGetId and + // NodeGetInfo RPC calls. + NodeGetInfo(ctx context.Context, in *NodeGetInfoRequest, opts ...grpc.CallOption) (*NodeGetInfoResponse, error) +} + +type nodeClient struct { + cc *grpc.ClientConn +} + +func NewNodeClient(cc *grpc.ClientConn) NodeClient { + return &nodeClient{cc} +} + +func (c *nodeClient) NodeStageVolume(ctx context.Context, in *NodeStageVolumeRequest, opts ...grpc.CallOption) (*NodeStageVolumeResponse, error) { + out := new(NodeStageVolumeResponse) + err := grpc.Invoke(ctx, "/csi.v0.Node/NodeStageVolume", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) NodeUnstageVolume(ctx context.Context, in *NodeUnstageVolumeRequest, opts ...grpc.CallOption) (*NodeUnstageVolumeResponse, error) { + out := new(NodeUnstageVolumeResponse) + err := grpc.Invoke(ctx, "/csi.v0.Node/NodeUnstageVolume", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) NodePublishVolume(ctx context.Context, in *NodePublishVolumeRequest, opts ...grpc.CallOption) (*NodePublishVolumeResponse, error) { + out := new(NodePublishVolumeResponse) + err := grpc.Invoke(ctx, "/csi.v0.Node/NodePublishVolume", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) NodeUnpublishVolume(ctx context.Context, in *NodeUnpublishVolumeRequest, opts ...grpc.CallOption) (*NodeUnpublishVolumeResponse, error) { + out := new(NodeUnpublishVolumeResponse) + err := grpc.Invoke(ctx, "/csi.v0.Node/NodeUnpublishVolume", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// Deprecated: Do not use. +func (c *nodeClient) NodeGetId(ctx context.Context, in *NodeGetIdRequest, opts ...grpc.CallOption) (*NodeGetIdResponse, error) { + out := new(NodeGetIdResponse) + err := grpc.Invoke(ctx, "/csi.v0.Node/NodeGetId", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) NodeGetCapabilities(ctx context.Context, in *NodeGetCapabilitiesRequest, opts ...grpc.CallOption) (*NodeGetCapabilitiesResponse, error) { + out := new(NodeGetCapabilitiesResponse) + err := grpc.Invoke(ctx, "/csi.v0.Node/NodeGetCapabilities", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) NodeGetInfo(ctx context.Context, in *NodeGetInfoRequest, opts ...grpc.CallOption) (*NodeGetInfoResponse, error) { + out := new(NodeGetInfoResponse) + err := grpc.Invoke(ctx, "/csi.v0.Node/NodeGetInfo", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// Server API for Node service + +type NodeServer interface { + NodeStageVolume(context.Context, *NodeStageVolumeRequest) (*NodeStageVolumeResponse, error) + NodeUnstageVolume(context.Context, *NodeUnstageVolumeRequest) (*NodeUnstageVolumeResponse, error) + NodePublishVolume(context.Context, *NodePublishVolumeRequest) (*NodePublishVolumeResponse, error) + NodeUnpublishVolume(context.Context, *NodeUnpublishVolumeRequest) (*NodeUnpublishVolumeResponse, error) + // NodeGetId is being deprecated in favor of NodeGetInfo and will be + // removed in CSI 1.0. Existing drivers, however, may depend on this + // RPC call and hence this RPC call MUST be implemented by the CSI + // plugin prior to v1.0. + NodeGetId(context.Context, *NodeGetIdRequest) (*NodeGetIdResponse, error) + NodeGetCapabilities(context.Context, *NodeGetCapabilitiesRequest) (*NodeGetCapabilitiesResponse, error) + // Prior to CSI 1.0 - CSI plugins MUST implement both NodeGetId and + // NodeGetInfo RPC calls. + NodeGetInfo(context.Context, *NodeGetInfoRequest) (*NodeGetInfoResponse, error) +} + +func RegisterNodeServer(s *grpc.Server, srv NodeServer) { + s.RegisterService(&_Node_serviceDesc, srv) +} + +func _Node_NodeStageVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NodeStageVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).NodeStageVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v0.Node/NodeStageVolume", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).NodeStageVolume(ctx, req.(*NodeStageVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_NodeUnstageVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NodeUnstageVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).NodeUnstageVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v0.Node/NodeUnstageVolume", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).NodeUnstageVolume(ctx, req.(*NodeUnstageVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_NodePublishVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NodePublishVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).NodePublishVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v0.Node/NodePublishVolume", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).NodePublishVolume(ctx, req.(*NodePublishVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_NodeUnpublishVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NodeUnpublishVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).NodeUnpublishVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v0.Node/NodeUnpublishVolume", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).NodeUnpublishVolume(ctx, req.(*NodeUnpublishVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_NodeGetId_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NodeGetIdRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).NodeGetId(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v0.Node/NodeGetId", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).NodeGetId(ctx, req.(*NodeGetIdRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_NodeGetCapabilities_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NodeGetCapabilitiesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).NodeGetCapabilities(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v0.Node/NodeGetCapabilities", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).NodeGetCapabilities(ctx, req.(*NodeGetCapabilitiesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_NodeGetInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NodeGetInfoRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).NodeGetInfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v0.Node/NodeGetInfo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).NodeGetInfo(ctx, req.(*NodeGetInfoRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _Node_serviceDesc = grpc.ServiceDesc{ + ServiceName: "csi.v0.Node", + HandlerType: (*NodeServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "NodeStageVolume", + Handler: _Node_NodeStageVolume_Handler, + }, + { + MethodName: "NodeUnstageVolume", + Handler: _Node_NodeUnstageVolume_Handler, + }, + { + MethodName: "NodePublishVolume", + Handler: _Node_NodePublishVolume_Handler, + }, + { + MethodName: "NodeUnpublishVolume", + Handler: _Node_NodeUnpublishVolume_Handler, + }, + { + MethodName: "NodeGetId", + Handler: _Node_NodeGetId_Handler, + }, + { + MethodName: "NodeGetCapabilities", + Handler: _Node_NodeGetCapabilities_Handler, + }, + { + MethodName: "NodeGetInfo", + Handler: _Node_NodeGetInfo_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "csi.proto", +} + +func init() { proto.RegisterFile("csi.proto", fileDescriptor_csi_31237507707d37ec) } + +var fileDescriptor_csi_31237507707d37ec = []byte{ + // 2932 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x1a, 0x4d, 0x73, 0x23, 0x47, + 0xd5, 0xa3, 0x0f, 0xdb, 0x7a, 0x5e, 0x3b, 0xda, 0xf6, 0x97, 0x3c, 0xb6, 0x77, 0xbd, 0xb3, 0xd9, + 0x64, 0x13, 0x12, 0x6d, 0x30, 0x24, 0x15, 0x92, 0x4d, 0x40, 0x96, 0x15, 0x5b, 0x59, 0x5b, 0x36, + 0x23, 0xd9, 0xa9, 0x5d, 0x42, 0x4d, 0xc6, 0x52, 0x5b, 0x3b, 0xac, 0x3c, 0xa3, 0xcc, 0x8c, 0xcc, + 0x9a, 0x1b, 0x70, 0x01, 0x4e, 0xf0, 0x0b, 0x52, 0x95, 0x1b, 0x14, 0xb9, 0x50, 0xdc, 0xa8, 0xe2, + 0x46, 0x15, 0x27, 0xce, 0x9c, 0xb8, 0xa7, 0xe0, 0xc8, 0x89, 0x2a, 0xaa, 0xa8, 0x9e, 0xee, 0x19, + 0x4d, 0xb7, 0x7a, 0xf4, 0x91, 0xdd, 0x4a, 0x71, 0x92, 0xe6, 0x7d, 0xf5, 0xeb, 0xd7, 0xef, 0xbd, + 0x7e, 0xef, 0xcd, 0x40, 0xae, 0xe9, 0x59, 0xc5, 0xae, 0xeb, 0xf8, 0x0e, 0x9a, 0x26, 0x7f, 0x2f, + 0xdf, 0x50, 0x6f, 0xb4, 0x1d, 0xa7, 0xdd, 0xc1, 0xf7, 0x02, 0xe8, 0x59, 0xef, 0xfc, 0xde, 0x8f, + 0x5d, 0xb3, 0xdb, 0xc5, 0xae, 0x47, 0xe9, 0xb4, 0x15, 0x58, 0xda, 0xc3, 0xfe, 0x71, 0xa7, 0xd7, + 0xb6, 0xec, 0xaa, 0x7d, 0xee, 0xe8, 0xf8, 0xd3, 0x1e, 0xf6, 0x7c, 0xed, 0xef, 0x0a, 0x2c, 0x0b, + 0x08, 0xaf, 0xeb, 0xd8, 0x1e, 0x46, 0x08, 0x32, 0xb6, 0x79, 0x81, 0x0b, 0xca, 0x96, 0x72, 0x37, + 0xa7, 0x07, 0xff, 0xd1, 0x1d, 0x58, 0xb8, 0xc4, 0x76, 0xcb, 0x71, 0x8d, 0x4b, 0xec, 0x7a, 0x96, + 0x63, 0x17, 0x52, 0x01, 0x76, 0x9e, 0x42, 0x4f, 0x29, 0x10, 0xed, 0xc1, 0xec, 0x85, 0x69, 0x5b, + 0xe7, 0xd8, 0xf3, 0x0b, 0xe9, 0xad, 0xf4, 0xdd, 0xb9, 0xed, 0x6f, 0x14, 0xa9, 0x9e, 0x45, 0xe9, + 0x5a, 0xc5, 0x43, 0x46, 0x5d, 0xb1, 0x7d, 0xf7, 0x4a, 0x8f, 0x98, 0xd5, 0x77, 0x61, 0x9e, 0x43, + 0xa1, 0x3c, 0xa4, 0x9f, 0xe0, 0x2b, 0xa6, 0x13, 0xf9, 0x8b, 0x96, 0x20, 0x7b, 0x69, 0x76, 0x7a, + 0x98, 0x69, 0x42, 0x1f, 0xde, 0x49, 0xbd, 0xad, 0x68, 0x37, 0x60, 0x23, 0x5a, 0xad, 0x6c, 0x76, + 0xcd, 0x33, 0xab, 0x63, 0xf9, 0x16, 0xf6, 0xc2, 0xad, 0xff, 0x10, 0x36, 0x13, 0xf0, 0xcc, 0x02, + 0xf7, 0xe1, 0x5a, 0x33, 0x06, 0x2f, 0xa4, 0x82, 0xad, 0x14, 0xc2, 0xad, 0x08, 0x9c, 0x57, 0x3a, + 0x47, 0xad, 0xfd, 0x53, 0x81, 0xbc, 0x48, 0x82, 0xee, 0xc3, 0x8c, 0x87, 0xdd, 0x4b, 0xab, 0x49, + 0xed, 0x3a, 0xb7, 0xbd, 0x95, 0x24, 0xad, 0x58, 0xa7, 0x74, 0xfb, 0x53, 0x7a, 0xc8, 0xa2, 0xfe, + 0x5a, 0x81, 0x19, 0x06, 0x46, 0xdf, 0x81, 0x8c, 0x7f, 0xd5, 0xa5, 0x62, 0x16, 0xb6, 0xef, 0x8c, + 0x12, 0x53, 0x6c, 0x5c, 0x75, 0xb1, 0x1e, 0xb0, 0x68, 0x1f, 0x42, 0x86, 0x3c, 0xa1, 0x39, 0x98, + 0x39, 0xa9, 0x3d, 0xa8, 0x1d, 0x7d, 0x54, 0xcb, 0x4f, 0xa1, 0x15, 0x40, 0xe5, 0xa3, 0x5a, 0x43, + 0x3f, 0x3a, 0x38, 0xa8, 0xe8, 0x46, 0xbd, 0xa2, 0x9f, 0x56, 0xcb, 0x95, 0xbc, 0x82, 0x36, 0x61, + 0xad, 0x54, 0x2e, 0x57, 0xea, 0xf5, 0xea, 0x4e, 0xf5, 0xa0, 0xda, 0x78, 0x68, 0x94, 0x8f, 0x6a, + 0xf5, 0x86, 0x5e, 0xaa, 0xd6, 0x1a, 0xf5, 0x7c, 0x6a, 0x67, 0x9a, 0xaa, 0xa1, 0x2d, 0xc0, 0xb5, + 0x63, 0xd7, 0x39, 0xc3, 0xa1, 0x71, 0x4b, 0x30, 0xcf, 0x9e, 0x99, 0x31, 0xdf, 0x80, 0xac, 0x8b, + 0xcd, 0xd6, 0x15, 0xdb, 0xb7, 0x5a, 0xa4, 0x0e, 0x5b, 0x0c, 0x1d, 0xb6, 0xb8, 0xe3, 0x38, 0x9d, + 0x53, 0x72, 0x78, 0x3a, 0x25, 0xd4, 0xbe, 0xc8, 0xc2, 0x62, 0xd9, 0xc5, 0xa6, 0x8f, 0x4f, 0x9d, + 0x4e, 0xef, 0x22, 0x14, 0x2d, 0x75, 0xcc, 0xfb, 0xb0, 0x40, 0x8c, 0xdf, 0xb4, 0xfc, 0x2b, 0xc3, + 0x35, 0xed, 0x36, 0x75, 0x87, 0xb9, 0xed, 0xe5, 0xd0, 0x2e, 0x65, 0x86, 0xd5, 0x09, 0x52, 0x9f, + 0x6f, 0xc6, 0x1f, 0x51, 0x15, 0x16, 0x2f, 0x83, 0x25, 0x0c, 0xee, 0xbc, 0xd3, 0xfc, 0x79, 0x53, + 0x2d, 0x62, 0xe7, 0x8d, 0x2e, 0x79, 0x88, 0x85, 0x3d, 0xf4, 0x00, 0xa0, 0x6b, 0xba, 0xe6, 0x05, + 0xf6, 0xb1, 0xeb, 0x15, 0x32, 0xbc, 0xf3, 0x4b, 0x76, 0x53, 0x3c, 0x8e, 0xa8, 0xa9, 0xf3, 0xc7, + 0xd8, 0x91, 0x0f, 0x6b, 0x4d, 0xc7, 0xf6, 0x5d, 0xa7, 0xd3, 0xc1, 0xae, 0xd1, 0x0c, 0xb8, 0x0d, + 0x0f, 0x37, 0x5d, 0xec, 0x7b, 0x85, 0x6c, 0x20, 0xfb, 0xed, 0x61, 0xb2, 0xcb, 0x11, 0x33, 0xc5, + 0xd6, 0x29, 0x2b, 0x5d, 0x68, 0xb5, 0x29, 0xc7, 0xa2, 0x23, 0x58, 0x0e, 0xad, 0xe1, 0xd8, 0x3e, + 0xb6, 0x7d, 0xc3, 0x73, 0x7a, 0x6e, 0x13, 0x17, 0xa6, 0x03, 0x93, 0xae, 0x0b, 0xf6, 0xa0, 0x34, + 0xf5, 0x80, 0x44, 0x67, 0x76, 0xe4, 0x80, 0xe8, 0x11, 0xa8, 0x66, 0xb3, 0x89, 0x3d, 0xcf, 0xa2, + 0x86, 0x33, 0x5c, 0xfc, 0x69, 0xcf, 0x72, 0xf1, 0x05, 0xb6, 0x7d, 0xaf, 0x30, 0xc3, 0x4b, 0x6d, + 0x38, 0x5d, 0xa7, 0xe3, 0xb4, 0xaf, 0xf4, 0x3e, 0x8d, 0xbe, 0xc6, 0xb1, 0xc7, 0x30, 0x9e, 0xfa, + 0x1e, 0xbc, 0x20, 0x58, 0x70, 0x92, 0x1c, 0xa1, 0x7e, 0x08, 0x1b, 0xc3, 0x8c, 0x34, 0x51, 0xbe, + 0xf9, 0xa5, 0x02, 0x8b, 0x12, 0x9b, 0xa0, 0x7d, 0x98, 0xf5, 0x6c, 0xb3, 0xeb, 0x3d, 0x76, 0x7c, + 0xe6, 0xfc, 0xaf, 0x0e, 0x31, 0x61, 0xb1, 0xce, 0x68, 0xe9, 0xe3, 0xfe, 0x94, 0x1e, 0x71, 0xab, + 0x5b, 0xb0, 0xc0, 0x63, 0xd1, 0x02, 0xa4, 0xac, 0x16, 0x53, 0x2f, 0x65, 0xb5, 0xa2, 0x70, 0x7c, + 0x1f, 0x96, 0x78, 0x87, 0x60, 0x51, 0xf8, 0x12, 0x4c, 0xd3, 0x13, 0x62, 0x9a, 0x2c, 0xf0, 0x9a, + 0xe8, 0x0c, 0xab, 0xfd, 0x2e, 0x03, 0x79, 0xd1, 0xdf, 0xd1, 0x7d, 0xc8, 0x9e, 0x75, 0x9c, 0xe6, + 0x13, 0xc6, 0xfb, 0x62, 0x52, 0x60, 0x14, 0x77, 0x08, 0x15, 0x85, 0xee, 0x4f, 0xe9, 0x94, 0x89, + 0x70, 0x5f, 0x38, 0x3d, 0xdb, 0x67, 0x91, 0x99, 0xcc, 0x7d, 0x48, 0xa8, 0xfa, 0xdc, 0x01, 0x13, + 0xda, 0x85, 0x39, 0xea, 0x04, 0xc6, 0x85, 0xd3, 0xc2, 0x85, 0x74, 0x20, 0xe3, 0x76, 0xa2, 0x8c, + 0x52, 0x40, 0x7b, 0xe8, 0xb4, 0xb0, 0x0e, 0x66, 0xf4, 0x5f, 0x9d, 0x87, 0xb9, 0x98, 0x6e, 0xea, + 0x1e, 0xcc, 0xc5, 0x16, 0x43, 0xab, 0x30, 0x73, 0xee, 0x19, 0x51, 0x56, 0xcd, 0xe9, 0xd3, 0xe7, + 0x5e, 0x90, 0x28, 0x6f, 0xc2, 0x5c, 0xa0, 0x85, 0x71, 0xde, 0x31, 0xdb, 0xf4, 0x1e, 0xc8, 0xe9, + 0x10, 0x80, 0x3e, 0x20, 0x10, 0xf5, 0x5f, 0x0a, 0x40, 0x7f, 0x49, 0x74, 0x1f, 0x32, 0x81, 0x96, + 0x34, 0x37, 0xdf, 0x1d, 0x43, 0xcb, 0x62, 0xa0, 0x6a, 0xc0, 0xa5, 0x7d, 0xa6, 0x40, 0x26, 0x10, + 0x23, 0xe6, 0xe7, 0x7a, 0xb5, 0xb6, 0x77, 0x50, 0x31, 0x6a, 0x47, 0xbb, 0x15, 0xe3, 0x23, 0xbd, + 0xda, 0xa8, 0xe8, 0x79, 0x05, 0xad, 0xc3, 0x6a, 0x1c, 0xae, 0x57, 0x4a, 0xbb, 0x15, 0xdd, 0x38, + 0xaa, 0x1d, 0x3c, 0xcc, 0xa7, 0x90, 0x0a, 0x2b, 0x87, 0x27, 0x07, 0x8d, 0xea, 0x20, 0x2e, 0x8d, + 0x36, 0xa0, 0x10, 0xc3, 0x31, 0x19, 0x4c, 0x6c, 0x86, 0x88, 0x8d, 0x61, 0xe9, 0x5f, 0x86, 0xcc, + 0xee, 0xcc, 0x47, 0x87, 0x11, 0x38, 0xdb, 0x47, 0x30, 0xcf, 0xa5, 0x57, 0x52, 0x26, 0xb0, 0x10, + 0x6f, 0x19, 0x67, 0x57, 0x3e, 0xf6, 0x02, 0x4b, 0xa4, 0xf5, 0xf9, 0x10, 0xba, 0x43, 0x80, 0xc4, + 0xac, 0x1d, 0xeb, 0xc2, 0xf2, 0x19, 0x4d, 0x2a, 0xa0, 0x81, 0x00, 0x14, 0x10, 0x68, 0x7f, 0x49, + 0xc1, 0x34, 0x3b, 0x9b, 0x3b, 0xb1, 0x04, 0xcf, 0x89, 0x0c, 0xa1, 0x54, 0x24, 0x8d, 0x87, 0x54, + 0x18, 0x0f, 0xe8, 0x7d, 0x00, 0xd3, 0xf7, 0x5d, 0xeb, 0xac, 0xe7, 0x47, 0x09, 0xfd, 0x06, 0x7f, + 0x1e, 0xc5, 0x52, 0x44, 0xc0, 0x32, 0x70, 0x9f, 0x03, 0xed, 0xc0, 0x82, 0x90, 0x04, 0x33, 0xa3, + 0x93, 0xe0, 0x7c, 0x93, 0x8b, 0xff, 0x12, 0x2c, 0x86, 0xf9, 0xab, 0x83, 0x0d, 0x9f, 0xe5, 0x37, + 0x96, 0xbf, 0xf3, 0x03, 0x79, 0x0f, 0xf5, 0x89, 0x43, 0x18, 0xc9, 0x72, 0x82, 0x96, 0x13, 0x65, + 0xa6, 0x1e, 0x2c, 0x4a, 0xd2, 0x2a, 0x2a, 0x42, 0x2e, 0x38, 0x10, 0xcf, 0xf2, 0x89, 0xaf, 0xca, + 0xd5, 0xe9, 0x93, 0x10, 0xfa, 0xae, 0x8b, 0xcf, 0xb1, 0xeb, 0xe2, 0x16, 0x2b, 0x86, 0x24, 0xf4, + 0x11, 0x89, 0xf6, 0x73, 0x05, 0x66, 0x43, 0x38, 0x7a, 0x07, 0x66, 0x3d, 0xdc, 0xa6, 0x29, 0x5f, + 0xe1, 0xcf, 0x21, 0xa4, 0x29, 0xd6, 0x19, 0x01, 0x2b, 0x03, 0x43, 0x7a, 0x52, 0x06, 0x72, 0xa8, + 0x89, 0x36, 0xff, 0x6f, 0x05, 0x16, 0x77, 0x71, 0x07, 0x8b, 0x65, 0xc4, 0x3a, 0xe4, 0xd8, 0x35, + 0x17, 0x65, 0xd0, 0x59, 0x0a, 0xa8, 0xb6, 0x84, 0x9b, 0xb7, 0x15, 0xb0, 0x47, 0x37, 0x6f, 0x8a, + 0xbf, 0x79, 0x25, 0xc2, 0x63, 0x37, 0x2f, 0xc5, 0x26, 0xdd, 0xbc, 0x1c, 0x96, 0xbf, 0x8d, 0x06, + 0x19, 0x27, 0xda, 0xf6, 0x0a, 0x2c, 0xf1, 0x8a, 0xd1, 0x1b, 0x40, 0xfb, 0x53, 0x06, 0x6e, 0xf4, + 0x17, 0x39, 0xee, 0x9d, 0x75, 0x2c, 0xef, 0xf1, 0x04, 0x96, 0x59, 0x85, 0x19, 0xdb, 0x69, 0x05, + 0x28, 0xba, 0xe6, 0x34, 0x79, 0xac, 0xb6, 0x50, 0x05, 0xae, 0x8b, 0x45, 0xd4, 0x15, 0xcb, 0xd3, + 0xc9, 0x25, 0x54, 0xfe, 0x52, 0xbc, 0x64, 0x54, 0x98, 0x25, 0xe5, 0x9f, 0x63, 0x77, 0xae, 0x82, + 0x58, 0x9b, 0xd5, 0xa3, 0x67, 0xf4, 0x33, 0x05, 0xd4, 0xd8, 0xb1, 0x74, 0xa9, 0xf2, 0x42, 0x45, + 0xb4, 0x1b, 0x55, 0x44, 0x43, 0x77, 0x39, 0x88, 0xe6, 0xce, 0xa8, 0xd0, 0x4c, 0x40, 0x23, 0x2b, + 0xda, 0x67, 0x2c, 0xb3, 0x4c, 0x07, 0x4b, 0xdf, 0x1f, 0x73, 0x69, 0xfa, 0x24, 0xe6, 0x1d, 0x66, + 0x8b, 0x3e, 0x58, 0x7d, 0x00, 0x9b, 0x43, 0xb5, 0x9c, 0xa8, 0xd4, 0x29, 0xc3, 0xb2, 0x74, 0xdd, + 0x89, 0xbc, 0xea, 0xcf, 0x0a, 0xdc, 0x4c, 0xdc, 0x1c, 0xab, 0x31, 0x7e, 0x00, 0xd7, 0xc2, 0x93, + 0xb1, 0xec, 0x73, 0x87, 0x45, 0xfb, 0xdb, 0x23, 0x6d, 0xc3, 0x7a, 0x41, 0x06, 0x25, 0xfd, 0x21, + 0xb5, 0xcb, 0x5c, 0xb7, 0x0f, 0x51, 0xdf, 0x87, 0xbc, 0x48, 0x30, 0xd1, 0x06, 0xfe, 0x98, 0x82, + 0xad, 0xbe, 0x06, 0x27, 0x76, 0xf7, 0xf9, 0x05, 0xc0, 0xaf, 0x14, 0xd8, 0x88, 0x79, 0x67, 0xcf, + 0x16, 0xfd, 0x93, 0x5e, 0x3f, 0xfb, 0x83, 0x86, 0x90, 0xab, 0x21, 0x23, 0xe0, 0x7c, 0x34, 0x16, + 0x0b, 0x22, 0x81, 0x7a, 0x18, 0x3f, 0x27, 0x29, 0xfb, 0x44, 0x66, 0xbb, 0x0d, 0xb7, 0x86, 0xa8, + 0xcb, 0x52, 0xcb, 0x4f, 0xd3, 0x70, 0xeb, 0xd4, 0xec, 0x58, 0xad, 0xa8, 0xee, 0x94, 0xb4, 0xdd, + 0xc3, 0x8d, 0x9b, 0xd0, 0x89, 0xa5, 0xbe, 0x42, 0x27, 0xd6, 0x91, 0xc5, 0x29, 0x3d, 0x82, 0xef, + 0x46, 0x82, 0x46, 0x69, 0x3b, 0x6e, 0xa8, 0x26, 0x5d, 0xf2, 0x99, 0x09, 0x2e, 0xf9, 0xe7, 0x12, + 0xa0, 0x1f, 0x83, 0x36, 0x6c, 0x53, 0x2c, 0x44, 0x37, 0x20, 0xe7, 0xf5, 0xba, 0x5d, 0xc7, 0xf5, + 0x31, 0x3d, 0x83, 0x59, 0xbd, 0x0f, 0x40, 0x05, 0x98, 0xb9, 0xc0, 0x9e, 0x67, 0xb6, 0x43, 0xf9, + 0xe1, 0xa3, 0xf6, 0x31, 0xa0, 0x03, 0xcb, 0x63, 0xf5, 0x72, 0x74, 0xa2, 0xa4, 0x3c, 0x36, 0x9f, + 0x1a, 0xd8, 0xf6, 0x5d, 0x8b, 0x15, 0x66, 0x59, 0x1d, 0x2e, 0xcc, 0xa7, 0x15, 0x0a, 0x21, 0xc5, + 0x9b, 0xe7, 0x9b, 0xae, 0x6f, 0xd9, 0x6d, 0xc3, 0x77, 0x9e, 0xe0, 0x68, 0x6c, 0x14, 0x42, 0x1b, + 0x04, 0xa8, 0x7d, 0xae, 0xc0, 0x22, 0x27, 0x9e, 0x69, 0xfb, 0x2e, 0xcc, 0xf4, 0x65, 0x13, 0x7b, + 0xde, 0x0a, 0xed, 0x29, 0xa1, 0x2e, 0xd2, 0x13, 0x0a, 0x39, 0xd0, 0x26, 0x80, 0x8d, 0x9f, 0xfa, + 0xdc, 0xba, 0x39, 0x02, 0x09, 0xd6, 0x54, 0xef, 0x41, 0x96, 0x1a, 0x79, 0xdc, 0xce, 0xe8, 0x8b, + 0x14, 0xa0, 0x3d, 0xec, 0x47, 0x05, 0x2f, 0xb3, 0x41, 0x82, 0xe3, 0x2a, 0x5f, 0xc1, 0x71, 0x3f, + 0xe4, 0x46, 0x08, 0xd4, 0xf5, 0x5f, 0x8d, 0xcd, 0xcf, 0x84, 0xa5, 0x87, 0x4e, 0x10, 0x12, 0xdc, + 0x92, 0x5e, 0xcb, 0x63, 0xd7, 0x9e, 0xcf, 0xd0, 0x61, 0x6b, 0xbb, 0xb0, 0xc8, 0xe9, 0xcc, 0xce, + 0xf4, 0x75, 0x40, 0xe6, 0xa5, 0x69, 0x75, 0x4c, 0xa2, 0x57, 0x58, 0xc3, 0xb3, 0x9a, 0xfe, 0x7a, + 0x84, 0x09, 0xd9, 0x34, 0x2d, 0x9e, 0xb5, 0x99, 0x3c, 0x71, 0x9e, 0xd7, 0x89, 0xe7, 0xa8, 0x01, + 0x1a, 0xb6, 0xee, 0x9e, 0x74, 0xa6, 0x77, 0x7b, 0x30, 0x27, 0xb3, 0xb9, 0x59, 0xe2, 0x78, 0xef, + 0x6f, 0x29, 0x58, 0x1f, 0x42, 0x8d, 0xde, 0x85, 0xb4, 0xdb, 0x6d, 0x32, 0x67, 0x7a, 0x79, 0x0c, + 0xf9, 0x45, 0xfd, 0xb8, 0xbc, 0x3f, 0xa5, 0x13, 0x2e, 0xf5, 0x4b, 0x05, 0xd2, 0xfa, 0x71, 0x19, + 0x7d, 0x8f, 0x1b, 0xf2, 0xbd, 0x36, 0xa6, 0x94, 0xf8, 0xac, 0x8f, 0x34, 0x93, 0x83, 0xc3, 0xbe, + 0x02, 0x2c, 0x95, 0xf5, 0x4a, 0xa9, 0x51, 0x31, 0x76, 0x2b, 0x07, 0x95, 0x46, 0xc5, 0x38, 0x3d, + 0x3a, 0x38, 0x39, 0xac, 0xe4, 0x15, 0xd2, 0x15, 0x1e, 0x9f, 0xec, 0x1c, 0x54, 0xeb, 0xfb, 0xc6, + 0x49, 0x2d, 0xfc, 0xc7, 0xb0, 0x29, 0x94, 0x87, 0x6b, 0x07, 0xd5, 0x7a, 0x83, 0x01, 0xea, 0xf9, + 0x34, 0x81, 0xec, 0x55, 0x1a, 0x46, 0xb9, 0x74, 0x5c, 0x2a, 0x57, 0x1b, 0x0f, 0xf3, 0x19, 0xd2, + 0x73, 0xf2, 0xb2, 0xeb, 0xb5, 0xd2, 0x71, 0x7d, 0xff, 0xa8, 0x91, 0xcf, 0x22, 0x04, 0x0b, 0x01, + 0x7f, 0x08, 0xaa, 0xe7, 0xa7, 0xa3, 0x91, 0xc5, 0x67, 0x69, 0x58, 0x66, 0x13, 0x18, 0x36, 0xe3, + 0x08, 0x63, 0xeb, 0x2e, 0xe4, 0x69, 0xf3, 0x65, 0x88, 0x17, 0xc7, 0x02, 0x85, 0x9f, 0x86, 0xd7, + 0x47, 0x38, 0x1a, 0x4c, 0xc5, 0x46, 0x83, 0x5d, 0x58, 0x0d, 0x27, 0x67, 0x4c, 0xae, 0x70, 0x21, + 0x0b, 0x23, 0x34, 0x61, 0x75, 0x01, 0xca, 0x5d, 0xc0, 0xcb, 0x4d, 0x19, 0x0e, 0x1d, 0x4a, 0x66, + 0x80, 0xaf, 0x0f, 0x5f, 0x64, 0x48, 0x0c, 0xab, 0xfb, 0xa0, 0x26, 0xeb, 0x30, 0x51, 0x09, 0xf8, + 0x8c, 0xa1, 0xfc, 0x01, 0xac, 0x88, 0xda, 0xb3, 0xa8, 0x7a, 0x6d, 0x60, 0xc4, 0x15, 0xe5, 0x96, + 0x88, 0x36, 0xa2, 0xd0, 0xfe, 0xa0, 0xc0, 0x6c, 0x08, 0x26, 0xf9, 0xd9, 0xb3, 0x7e, 0x82, 0xb9, + 0xa6, 0x3e, 0x47, 0x20, 0xf2, 0x86, 0x5e, 0xe6, 0x0b, 0x69, 0xa9, 0x2f, 0x6c, 0x02, 0xd0, 0xe3, + 0x69, 0x19, 0xa6, 0x1f, 0xb4, 0x12, 0x69, 0x3d, 0xc7, 0x20, 0x25, 0xd2, 0xfc, 0x4e, 0x7b, 0xbe, + 0xe9, 0xf7, 0x48, 0xdb, 0x40, 0x14, 0x5e, 0x11, 0x15, 0xae, 0x07, 0x58, 0x9d, 0x51, 0x91, 0x40, + 0x5a, 0xe0, 0x51, 0xe8, 0x1e, 0x17, 0x9d, 0xeb, 0x72, 0x01, 0xb1, 0x60, 0x24, 0x17, 0x6b, 0x0b, + 0xfb, 0xa6, 0xd5, 0xf1, 0xc2, 0x8b, 0x95, 0x3d, 0x6a, 0x3b, 0xb2, 0x28, 0xcd, 0x41, 0x56, 0xaf, + 0x94, 0x76, 0x1f, 0xe6, 0x15, 0x34, 0x0f, 0xb9, 0x93, 0xe3, 0x83, 0xa3, 0xd2, 0x6e, 0xb5, 0xb6, + 0x97, 0x4f, 0xa1, 0x45, 0x78, 0xa1, 0xa2, 0xeb, 0x47, 0xba, 0xd1, 0x07, 0xa6, 0x49, 0xa3, 0xbb, + 0xcc, 0x9a, 0x46, 0x21, 0x80, 0x6e, 0xc2, 0x5c, 0xe4, 0xfb, 0x51, 0xec, 0x40, 0x08, 0xaa, 0xb6, + 0x48, 0x8c, 0x84, 0x3d, 0xae, 0x18, 0x23, 0xd2, 0x66, 0x57, 0x74, 0x5f, 0x1e, 0xca, 0xc7, 0x48, + 0x4b, 0x86, 0x23, 0x4e, 0x9d, 0xcc, 0x34, 0x91, 0x57, 0x16, 0x60, 0x45, 0x54, 0x8a, 0xd5, 0xa3, + 0xbf, 0x55, 0x60, 0x89, 0x54, 0x08, 0x21, 0xe2, 0x79, 0x17, 0x2c, 0x13, 0x38, 0xa3, 0x70, 0x02, + 0x19, 0xf1, 0x04, 0xb4, 0xdf, 0x2b, 0xb0, 0x2c, 0xe8, 0xca, 0x62, 0xeb, 0x3d, 0xb1, 0xfa, 0xb9, + 0x1d, 0xaf, 0x7e, 0x06, 0xe8, 0x27, 0xac, 0x7f, 0xde, 0x0c, 0xeb, 0x9f, 0xc9, 0x42, 0xf8, 0x37, + 0x59, 0x58, 0xa9, 0x39, 0x2d, 0x5c, 0xf7, 0xcd, 0xf6, 0x24, 0x73, 0x15, 0x5d, 0xe8, 0x0d, 0xa9, + 0x77, 0xdd, 0x0b, 0x57, 0x92, 0x8b, 0x1c, 0xde, 0x12, 0xa2, 0x22, 0x2c, 0x7a, 0xbe, 0xd9, 0x0e, + 0xce, 0xca, 0x74, 0xdb, 0xd8, 0x37, 0xba, 0xa6, 0xff, 0x98, 0x1d, 0xc4, 0x75, 0x86, 0x6a, 0x04, + 0x98, 0x63, 0xd3, 0x7f, 0x2c, 0x1f, 0x54, 0x64, 0x26, 0x1e, 0x54, 0x9c, 0x01, 0x0a, 0xfa, 0x40, + 0xb2, 0x80, 0xf8, 0x56, 0xe6, 0xdb, 0x23, 0x36, 0x14, 0x81, 0xb9, 0x50, 0xc9, 0xdb, 0x02, 0x18, + 0x99, 0xc9, 0xb3, 0x86, 0x51, 0x4b, 0x8c, 0x3b, 0x63, 0x78, 0xc6, 0x86, 0x9a, 0x74, 0x2d, 0xd2, + 0xdd, 0x7c, 0xfd, 0xb3, 0x89, 0x35, 0x58, 0x1d, 0xb0, 0x05, 0xcb, 0x04, 0x6d, 0x28, 0x10, 0xd4, + 0x89, 0xed, 0x4d, 0xe8, 0xaf, 0x09, 0xbe, 0x95, 0x4a, 0xf0, 0x2d, 0x6d, 0x1d, 0xd6, 0x24, 0x0b, + 0x31, 0x2d, 0xfe, 0x91, 0xa5, 0x6a, 0x4c, 0x3e, 0x74, 0x6b, 0x48, 0xc3, 0xe6, 0x9b, 0x71, 0x17, + 0x90, 0x0e, 0x9a, 0x9e, 0x6f, 0xe0, 0xdc, 0x84, 0xb9, 0x38, 0x1d, 0x4b, 0x62, 0xfe, 0x88, 0xc8, + 0xca, 0x3e, 0xd3, 0x08, 0x70, 0x5a, 0x18, 0x01, 0xfe, 0x08, 0x96, 0x82, 0xa8, 0x13, 0x67, 0x2b, + 0x33, 0xfc, 0x35, 0x95, 0x68, 0x91, 0x18, 0x82, 0x8b, 0xbd, 0x20, 0x96, 0x85, 0x49, 0x5f, 0x53, + 0x16, 0x7d, 0xb3, 0xc1, 0x42, 0x6f, 0x8d, 0x5c, 0xe8, 0xeb, 0x8a, 0xbf, 0x0a, 0xf5, 0xfa, 0xff, + 0x8b, 0xe9, 0x20, 0xf3, 0x7e, 0xe9, 0x5c, 0x4f, 0x7b, 0x04, 0x2a, 0x0d, 0x8d, 0xc9, 0x47, 0x6e, + 0x82, 0xe3, 0xa5, 0x44, 0xc7, 0xd3, 0x36, 0x61, 0x5d, 0x2a, 0x9b, 0x2d, 0x8d, 0x20, 0x4f, 0xd0, + 0x7b, 0xd8, 0xaf, 0xb6, 0xc2, 0x6e, 0xf1, 0x35, 0xb8, 0x1e, 0x83, 0xb1, 0xbb, 0x36, 0x36, 0xdb, + 0x53, 0xe2, 0xb3, 0x3d, 0x6d, 0x83, 0x2a, 0x9f, 0xd0, 0x79, 0x7e, 0x42, 0x97, 0x4f, 0xea, 0x39, + 0x4b, 0x42, 0xcf, 0x49, 0xaf, 0xf1, 0x4d, 0x2e, 0x81, 0x8f, 0xe8, 0x36, 0xff, 0xaa, 0xb0, 0x34, + 0x3b, 0xd0, 0x67, 0xbe, 0x19, 0xef, 0x33, 0x6f, 0x0d, 0x95, 0x19, 0xef, 0x30, 0xbb, 0xb4, 0xc1, + 0x7c, 0x87, 0x2b, 0x61, 0x5f, 0x1a, 0xc9, 0x1e, 0x6f, 0x2d, 0x5f, 0x4f, 0xe8, 0x2c, 0xeb, 0x8d, + 0xd2, 0x5e, 0xc5, 0x38, 0xa9, 0xd1, 0xdf, 0xb0, 0xb3, 0x8c, 0xfa, 0xbc, 0x25, 0x40, 0xa1, 0xe1, + 0x63, 0xdf, 0x21, 0x7d, 0xae, 0xc0, 0x22, 0x07, 0x1e, 0x71, 0x22, 0xe8, 0x1e, 0x2c, 0x91, 0x1a, + 0x8e, 0xfa, 0x88, 0x67, 0x74, 0xb1, 0x6b, 0x10, 0x0c, 0x7b, 0x8b, 0x78, 0xfd, 0xc2, 0x7c, 0xca, + 0x06, 0x43, 0xc7, 0xd8, 0x25, 0x82, 0x9f, 0xc3, 0x28, 0x64, 0xfb, 0x3f, 0x0a, 0xcc, 0x56, 0x5b, + 0xd8, 0xf6, 0x89, 0xe1, 0x6b, 0x30, 0xcf, 0x7d, 0xcc, 0x84, 0x36, 0x12, 0xbe, 0x71, 0x0a, 0x36, + 0xa8, 0x6e, 0x0e, 0xfd, 0x02, 0x4a, 0x9b, 0x42, 0xe7, 0xb1, 0x0f, 0xb1, 0xb8, 0x79, 0xd0, 0x8b, + 0x03, 0x9c, 0x12, 0x1f, 0x54, 0xef, 0x8c, 0xa0, 0x8a, 0xd6, 0x79, 0x0b, 0xb2, 0xc1, 0x97, 0x39, + 0x68, 0x29, 0xfa, 0x66, 0x28, 0xf6, 0xe1, 0x8e, 0xba, 0x2c, 0x40, 0x43, 0xbe, 0xed, 0xff, 0xce, + 0x00, 0xf4, 0x07, 0x0f, 0xe8, 0x01, 0x5c, 0x8b, 0x7f, 0x61, 0x80, 0xd6, 0x87, 0x7c, 0x88, 0xa2, + 0x6e, 0xc8, 0x91, 0x91, 0x4e, 0x0f, 0xe0, 0x5a, 0xfc, 0x65, 0x55, 0x5f, 0x98, 0xe4, 0xdd, 0x5a, + 0x5f, 0x98, 0xf4, 0xfd, 0xd6, 0x14, 0xea, 0xc0, 0x6a, 0xc2, 0x3b, 0x06, 0xf4, 0xd2, 0x78, 0x2f, + 0x68, 0xd4, 0x97, 0xc7, 0x7c, 0x59, 0xa1, 0x4d, 0x21, 0x17, 0xd6, 0x12, 0x27, 0xe3, 0xe8, 0xee, + 0xb8, 0xb3, 0x7e, 0xf5, 0x95, 0x31, 0x28, 0xa3, 0x35, 0x7b, 0xa0, 0x26, 0x0f, 0x79, 0xd1, 0x2b, + 0x63, 0x4f, 0xb7, 0xd5, 0x57, 0xc7, 0x21, 0x8d, 0x96, 0xdd, 0x87, 0xb9, 0xd8, 0xc0, 0x15, 0xa9, + 0xd2, 0x29, 0x2c, 0x15, 0xbc, 0x3e, 0x64, 0x42, 0x4b, 0x25, 0xc5, 0x86, 0x82, 0x7d, 0x49, 0x83, + 0xd3, 0xcd, 0xbe, 0x24, 0xc9, 0x14, 0x51, 0x34, 0xbf, 0x90, 0x80, 0x65, 0xe6, 0x97, 0x67, 0x70, + 0x99, 0xf9, 0x13, 0xb2, 0xb9, 0x36, 0x85, 0xbe, 0x0f, 0x0b, 0xfc, 0x1c, 0x04, 0x6d, 0x0e, 0x9d, + 0xee, 0xa8, 0x37, 0x92, 0xd0, 0x71, 0x91, 0x7c, 0x13, 0xdb, 0x17, 0x29, 0xed, 0xb8, 0xfb, 0x22, + 0x13, 0x7a, 0xdf, 0x29, 0x92, 0x9f, 0xb8, 0x06, 0xb1, 0x9f, 0x9f, 0x64, 0x3d, 0x71, 0x3f, 0x3f, + 0x49, 0xbb, 0x4a, 0x6d, 0x6a, 0xfb, 0xcb, 0x0c, 0x64, 0x82, 0x44, 0xda, 0x80, 0x17, 0x84, 0x3a, + 0x1b, 0xdd, 0x18, 0xde, 0x8c, 0xa8, 0x37, 0x13, 0xf1, 0x91, 0xba, 0x8f, 0xe8, 0x7d, 0xcc, 0x55, + 0xce, 0x68, 0x2b, 0xce, 0x27, 0xab, 0xde, 0xd5, 0x5b, 0x43, 0x28, 0x44, 0xd9, 0x7c, 0x2e, 0xd8, + 0x1a, 0x55, 0xc2, 0xf1, 0xb2, 0x93, 0xe2, 0xff, 0x13, 0x7a, 0x6f, 0x89, 0x91, 0xaf, 0xf1, 0x7a, + 0x49, 0x63, 0xfe, 0xf6, 0x50, 0x9a, 0x68, 0x85, 0x0a, 0xe4, 0xa2, 0x4a, 0x05, 0x15, 0xe2, 0x3c, + 0xf1, 0x82, 0x46, 0x5d, 0x93, 0x60, 0x98, 0x8c, 0xf4, 0x2f, 0x52, 0x4a, 0xa8, 0xa8, 0x18, 0x23, + 0x9a, 0xc0, 0x26, 0x8b, 0x8e, 0xdb, 0x43, 0x69, 0xe2, 0x51, 0x1d, 0xbb, 0xc2, 0xfb, 0x51, 0x3d, + 0x78, 0xdd, 0xf7, 0xa3, 0x5a, 0x72, 0xe7, 0x6b, 0x53, 0x3b, 0xd9, 0x47, 0xe9, 0xa6, 0x67, 0x9d, + 0x4d, 0x07, 0x1f, 0x87, 0x7e, 0xeb, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x9c, 0x3b, 0x5a, 0x51, + 0xf0, 0x2c, 0x00, 0x00, +} diff --git a/vendor/github.com/kubernetes-csi/csi-lib-utils/protosanitizer/test/csi10/csi.pb.go b/vendor/github.com/kubernetes-csi/csi-lib-utils/protosanitizer/test/csi10/csi.pb.go new file mode 100644 index 000000000..0652b822f --- /dev/null +++ b/vendor/github.com/kubernetes-csi/csi-lib-utils/protosanitizer/test/csi10/csi.pb.go @@ -0,0 +1,5277 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: github.com/container-storage-interface/spec/csi.proto + +package csi + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import descriptor "github.com/golang/protobuf/protoc-gen-go/descriptor" +import timestamp "github.com/golang/protobuf/ptypes/timestamp" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +type PluginCapability_Service_Type int32 + +const ( + PluginCapability_Service_UNKNOWN PluginCapability_Service_Type = 0 + // CONTROLLER_SERVICE indicates that the Plugin provides RPCs for + // the ControllerService. Plugins SHOULD provide this capability. + // In rare cases certain plugins MAY wish to omit the + // ControllerService entirely from their implementation, but such + // SHOULD NOT be the common case. + // The presence of this capability determines whether the CO will + // attempt to invoke the REQUIRED ControllerService RPCs, as well + // as specific RPCs as indicated by ControllerGetCapabilities. + PluginCapability_Service_CONTROLLER_SERVICE PluginCapability_Service_Type = 1 + // VOLUME_ACCESSIBILITY_CONSTRAINTS indicates that the volumes for + // this plugin MAY NOT be equally accessible by all nodes in the + // cluster. The CO MUST use the topology information returned by + // CreateVolumeRequest along with the topology information + // returned by NodeGetInfo to ensure that a given volume is + // accessible from a given node when scheduling workloads. + PluginCapability_Service_VOLUME_ACCESSIBILITY_CONSTRAINTS PluginCapability_Service_Type = 2 +) + +var PluginCapability_Service_Type_name = map[int32]string{ + 0: "UNKNOWN", + 1: "CONTROLLER_SERVICE", + 2: "VOLUME_ACCESSIBILITY_CONSTRAINTS", +} +var PluginCapability_Service_Type_value = map[string]int32{ + "UNKNOWN": 0, + "CONTROLLER_SERVICE": 1, + "VOLUME_ACCESSIBILITY_CONSTRAINTS": 2, +} + +func (x PluginCapability_Service_Type) String() string { + return proto.EnumName(PluginCapability_Service_Type_name, int32(x)) +} +func (PluginCapability_Service_Type) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{4, 0, 0} +} + +type VolumeCapability_AccessMode_Mode int32 + +const ( + VolumeCapability_AccessMode_UNKNOWN VolumeCapability_AccessMode_Mode = 0 + // Can only be published once as read/write on a single node, at + // any given time. + VolumeCapability_AccessMode_SINGLE_NODE_WRITER VolumeCapability_AccessMode_Mode = 1 + // Can only be published once as readonly on a single node, at + // any given time. + VolumeCapability_AccessMode_SINGLE_NODE_READER_ONLY VolumeCapability_AccessMode_Mode = 2 + // Can be published as readonly at multiple nodes simultaneously. + VolumeCapability_AccessMode_MULTI_NODE_READER_ONLY VolumeCapability_AccessMode_Mode = 3 + // Can be published at multiple nodes simultaneously. Only one of + // the node can be used as read/write. The rest will be readonly. + VolumeCapability_AccessMode_MULTI_NODE_SINGLE_WRITER VolumeCapability_AccessMode_Mode = 4 + // Can be published as read/write at multiple nodes + // simultaneously. + VolumeCapability_AccessMode_MULTI_NODE_MULTI_WRITER VolumeCapability_AccessMode_Mode = 5 +) + +var VolumeCapability_AccessMode_Mode_name = map[int32]string{ + 0: "UNKNOWN", + 1: "SINGLE_NODE_WRITER", + 2: "SINGLE_NODE_READER_ONLY", + 3: "MULTI_NODE_READER_ONLY", + 4: "MULTI_NODE_SINGLE_WRITER", + 5: "MULTI_NODE_MULTI_WRITER", +} +var VolumeCapability_AccessMode_Mode_value = map[string]int32{ + "UNKNOWN": 0, + "SINGLE_NODE_WRITER": 1, + "SINGLE_NODE_READER_ONLY": 2, + "MULTI_NODE_READER_ONLY": 3, + "MULTI_NODE_SINGLE_WRITER": 4, + "MULTI_NODE_MULTI_WRITER": 5, +} + +func (x VolumeCapability_AccessMode_Mode) String() string { + return proto.EnumName(VolumeCapability_AccessMode_Mode_name, int32(x)) +} +func (VolumeCapability_AccessMode_Mode) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{10, 2, 0} +} + +type ControllerServiceCapability_RPC_Type int32 + +const ( + ControllerServiceCapability_RPC_UNKNOWN ControllerServiceCapability_RPC_Type = 0 + ControllerServiceCapability_RPC_CREATE_DELETE_VOLUME ControllerServiceCapability_RPC_Type = 1 + ControllerServiceCapability_RPC_PUBLISH_UNPUBLISH_VOLUME ControllerServiceCapability_RPC_Type = 2 + ControllerServiceCapability_RPC_LIST_VOLUMES ControllerServiceCapability_RPC_Type = 3 + ControllerServiceCapability_RPC_GET_CAPACITY ControllerServiceCapability_RPC_Type = 4 + // Currently the only way to consume a snapshot is to create + // a volume from it. Therefore plugins supporting + // CREATE_DELETE_SNAPSHOT MUST support creating volume from + // snapshot. + ControllerServiceCapability_RPC_CREATE_DELETE_SNAPSHOT ControllerServiceCapability_RPC_Type = 5 + ControllerServiceCapability_RPC_LIST_SNAPSHOTS ControllerServiceCapability_RPC_Type = 6 + // Plugins supporting volume cloning at the storage level MAY + // report this capability. The source volume MUST be managed by + // the same plugin. Not all volume sources and parameters + // combinations MAY work. + ControllerServiceCapability_RPC_CLONE_VOLUME ControllerServiceCapability_RPC_Type = 7 + // Indicates the SP supports ControllerPublishVolume.readonly + // field. + ControllerServiceCapability_RPC_PUBLISH_READONLY ControllerServiceCapability_RPC_Type = 8 +) + +var ControllerServiceCapability_RPC_Type_name = map[int32]string{ + 0: "UNKNOWN", + 1: "CREATE_DELETE_VOLUME", + 2: "PUBLISH_UNPUBLISH_VOLUME", + 3: "LIST_VOLUMES", + 4: "GET_CAPACITY", + 5: "CREATE_DELETE_SNAPSHOT", + 6: "LIST_SNAPSHOTS", + 7: "CLONE_VOLUME", + 8: "PUBLISH_READONLY", +} +var ControllerServiceCapability_RPC_Type_value = map[string]int32{ + "UNKNOWN": 0, + "CREATE_DELETE_VOLUME": 1, + "PUBLISH_UNPUBLISH_VOLUME": 2, + "LIST_VOLUMES": 3, + "GET_CAPACITY": 4, + "CREATE_DELETE_SNAPSHOT": 5, + "LIST_SNAPSHOTS": 6, + "CLONE_VOLUME": 7, + "PUBLISH_READONLY": 8, +} + +func (x ControllerServiceCapability_RPC_Type) String() string { + return proto.EnumName(ControllerServiceCapability_RPC_Type_name, int32(x)) +} +func (ControllerServiceCapability_RPC_Type) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{29, 0, 0} +} + +type VolumeUsage_Unit int32 + +const ( + VolumeUsage_UNKNOWN VolumeUsage_Unit = 0 + VolumeUsage_BYTES VolumeUsage_Unit = 1 + VolumeUsage_INODES VolumeUsage_Unit = 2 +) + +var VolumeUsage_Unit_name = map[int32]string{ + 0: "UNKNOWN", + 1: "BYTES", + 2: "INODES", +} +var VolumeUsage_Unit_value = map[string]int32{ + "UNKNOWN": 0, + "BYTES": 1, + "INODES": 2, +} + +func (x VolumeUsage_Unit) String() string { + return proto.EnumName(VolumeUsage_Unit_name, int32(x)) +} +func (VolumeUsage_Unit) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{47, 0} +} + +type NodeServiceCapability_RPC_Type int32 + +const ( + NodeServiceCapability_RPC_UNKNOWN NodeServiceCapability_RPC_Type = 0 + NodeServiceCapability_RPC_STAGE_UNSTAGE_VOLUME NodeServiceCapability_RPC_Type = 1 + // If Plugin implements GET_VOLUME_STATS capability + // then it MUST implement NodeGetVolumeStats RPC + // call for fetching volume statistics. + NodeServiceCapability_RPC_GET_VOLUME_STATS NodeServiceCapability_RPC_Type = 2 +) + +var NodeServiceCapability_RPC_Type_name = map[int32]string{ + 0: "UNKNOWN", + 1: "STAGE_UNSTAGE_VOLUME", + 2: "GET_VOLUME_STATS", +} +var NodeServiceCapability_RPC_Type_value = map[string]int32{ + "UNKNOWN": 0, + "STAGE_UNSTAGE_VOLUME": 1, + "GET_VOLUME_STATS": 2, +} + +func (x NodeServiceCapability_RPC_Type) String() string { + return proto.EnumName(NodeServiceCapability_RPC_Type_name, int32(x)) +} +func (NodeServiceCapability_RPC_Type) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{50, 0, 0} +} + +type GetPluginInfoRequest struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetPluginInfoRequest) Reset() { *m = GetPluginInfoRequest{} } +func (m *GetPluginInfoRequest) String() string { return proto.CompactTextString(m) } +func (*GetPluginInfoRequest) ProtoMessage() {} +func (*GetPluginInfoRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{0} +} +func (m *GetPluginInfoRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetPluginInfoRequest.Unmarshal(m, b) +} +func (m *GetPluginInfoRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetPluginInfoRequest.Marshal(b, m, deterministic) +} +func (dst *GetPluginInfoRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetPluginInfoRequest.Merge(dst, src) +} +func (m *GetPluginInfoRequest) XXX_Size() int { + return xxx_messageInfo_GetPluginInfoRequest.Size(m) +} +func (m *GetPluginInfoRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetPluginInfoRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetPluginInfoRequest proto.InternalMessageInfo + +type GetPluginInfoResponse struct { + // The name MUST follow domain name notation format + // (https://tools.ietf.org/html/rfc1035#section-2.3.1). It SHOULD + // include the plugin's host company name and the plugin name, + // to minimize the possibility of collisions. It MUST be 63 + // characters or less, beginning and ending with an alphanumeric + // character ([a-z0-9A-Z]) with dashes (-), dots (.), and + // alphanumerics between. This field is REQUIRED. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // This field is REQUIRED. Value of this field is opaque to the CO. + VendorVersion string `protobuf:"bytes,2,opt,name=vendor_version,json=vendorVersion,proto3" json:"vendor_version,omitempty"` + // This field is OPTIONAL. Values are opaque to the CO. + Manifest map[string]string `protobuf:"bytes,3,rep,name=manifest,proto3" json:"manifest,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetPluginInfoResponse) Reset() { *m = GetPluginInfoResponse{} } +func (m *GetPluginInfoResponse) String() string { return proto.CompactTextString(m) } +func (*GetPluginInfoResponse) ProtoMessage() {} +func (*GetPluginInfoResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{1} +} +func (m *GetPluginInfoResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetPluginInfoResponse.Unmarshal(m, b) +} +func (m *GetPluginInfoResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetPluginInfoResponse.Marshal(b, m, deterministic) +} +func (dst *GetPluginInfoResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetPluginInfoResponse.Merge(dst, src) +} +func (m *GetPluginInfoResponse) XXX_Size() int { + return xxx_messageInfo_GetPluginInfoResponse.Size(m) +} +func (m *GetPluginInfoResponse) XXX_DiscardUnknown() { + xxx_messageInfo_GetPluginInfoResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_GetPluginInfoResponse proto.InternalMessageInfo + +func (m *GetPluginInfoResponse) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *GetPluginInfoResponse) GetVendorVersion() string { + if m != nil { + return m.VendorVersion + } + return "" +} + +func (m *GetPluginInfoResponse) GetManifest() map[string]string { + if m != nil { + return m.Manifest + } + return nil +} + +type GetPluginCapabilitiesRequest struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetPluginCapabilitiesRequest) Reset() { *m = GetPluginCapabilitiesRequest{} } +func (m *GetPluginCapabilitiesRequest) String() string { return proto.CompactTextString(m) } +func (*GetPluginCapabilitiesRequest) ProtoMessage() {} +func (*GetPluginCapabilitiesRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{2} +} +func (m *GetPluginCapabilitiesRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetPluginCapabilitiesRequest.Unmarshal(m, b) +} +func (m *GetPluginCapabilitiesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetPluginCapabilitiesRequest.Marshal(b, m, deterministic) +} +func (dst *GetPluginCapabilitiesRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetPluginCapabilitiesRequest.Merge(dst, src) +} +func (m *GetPluginCapabilitiesRequest) XXX_Size() int { + return xxx_messageInfo_GetPluginCapabilitiesRequest.Size(m) +} +func (m *GetPluginCapabilitiesRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetPluginCapabilitiesRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetPluginCapabilitiesRequest proto.InternalMessageInfo + +type GetPluginCapabilitiesResponse struct { + // All the capabilities that the controller service supports. This + // field is OPTIONAL. + Capabilities []*PluginCapability `protobuf:"bytes,1,rep,name=capabilities,proto3" json:"capabilities,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetPluginCapabilitiesResponse) Reset() { *m = GetPluginCapabilitiesResponse{} } +func (m *GetPluginCapabilitiesResponse) String() string { return proto.CompactTextString(m) } +func (*GetPluginCapabilitiesResponse) ProtoMessage() {} +func (*GetPluginCapabilitiesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{3} +} +func (m *GetPluginCapabilitiesResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetPluginCapabilitiesResponse.Unmarshal(m, b) +} +func (m *GetPluginCapabilitiesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetPluginCapabilitiesResponse.Marshal(b, m, deterministic) +} +func (dst *GetPluginCapabilitiesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetPluginCapabilitiesResponse.Merge(dst, src) +} +func (m *GetPluginCapabilitiesResponse) XXX_Size() int { + return xxx_messageInfo_GetPluginCapabilitiesResponse.Size(m) +} +func (m *GetPluginCapabilitiesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_GetPluginCapabilitiesResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_GetPluginCapabilitiesResponse proto.InternalMessageInfo + +func (m *GetPluginCapabilitiesResponse) GetCapabilities() []*PluginCapability { + if m != nil { + return m.Capabilities + } + return nil +} + +// Specifies a capability of the plugin. +type PluginCapability struct { + // Types that are valid to be assigned to Type: + // *PluginCapability_Service_ + Type isPluginCapability_Type `protobuf_oneof:"type"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PluginCapability) Reset() { *m = PluginCapability{} } +func (m *PluginCapability) String() string { return proto.CompactTextString(m) } +func (*PluginCapability) ProtoMessage() {} +func (*PluginCapability) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{4} +} +func (m *PluginCapability) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PluginCapability.Unmarshal(m, b) +} +func (m *PluginCapability) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PluginCapability.Marshal(b, m, deterministic) +} +func (dst *PluginCapability) XXX_Merge(src proto.Message) { + xxx_messageInfo_PluginCapability.Merge(dst, src) +} +func (m *PluginCapability) XXX_Size() int { + return xxx_messageInfo_PluginCapability.Size(m) +} +func (m *PluginCapability) XXX_DiscardUnknown() { + xxx_messageInfo_PluginCapability.DiscardUnknown(m) +} + +var xxx_messageInfo_PluginCapability proto.InternalMessageInfo + +type isPluginCapability_Type interface { + isPluginCapability_Type() +} + +type PluginCapability_Service_ struct { + Service *PluginCapability_Service `protobuf:"bytes,1,opt,name=service,proto3,oneof"` +} + +func (*PluginCapability_Service_) isPluginCapability_Type() {} + +func (m *PluginCapability) GetType() isPluginCapability_Type { + if m != nil { + return m.Type + } + return nil +} + +func (m *PluginCapability) GetService() *PluginCapability_Service { + if x, ok := m.GetType().(*PluginCapability_Service_); ok { + return x.Service + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*PluginCapability) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _PluginCapability_OneofMarshaler, _PluginCapability_OneofUnmarshaler, _PluginCapability_OneofSizer, []interface{}{ + (*PluginCapability_Service_)(nil), + } +} + +func _PluginCapability_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*PluginCapability) + // type + switch x := m.Type.(type) { + case *PluginCapability_Service_: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Service); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("PluginCapability.Type has unexpected type %T", x) + } + return nil +} + +func _PluginCapability_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*PluginCapability) + switch tag { + case 1: // type.service + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(PluginCapability_Service) + err := b.DecodeMessage(msg) + m.Type = &PluginCapability_Service_{msg} + return true, err + default: + return false, nil + } +} + +func _PluginCapability_OneofSizer(msg proto.Message) (n int) { + m := msg.(*PluginCapability) + // type + switch x := m.Type.(type) { + case *PluginCapability_Service_: + s := proto.Size(x.Service) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +type PluginCapability_Service struct { + Type PluginCapability_Service_Type `protobuf:"varint,1,opt,name=type,proto3,enum=csi.v1.PluginCapability_Service_Type" json:"type,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PluginCapability_Service) Reset() { *m = PluginCapability_Service{} } +func (m *PluginCapability_Service) String() string { return proto.CompactTextString(m) } +func (*PluginCapability_Service) ProtoMessage() {} +func (*PluginCapability_Service) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{4, 0} +} +func (m *PluginCapability_Service) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PluginCapability_Service.Unmarshal(m, b) +} +func (m *PluginCapability_Service) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PluginCapability_Service.Marshal(b, m, deterministic) +} +func (dst *PluginCapability_Service) XXX_Merge(src proto.Message) { + xxx_messageInfo_PluginCapability_Service.Merge(dst, src) +} +func (m *PluginCapability_Service) XXX_Size() int { + return xxx_messageInfo_PluginCapability_Service.Size(m) +} +func (m *PluginCapability_Service) XXX_DiscardUnknown() { + xxx_messageInfo_PluginCapability_Service.DiscardUnknown(m) +} + +var xxx_messageInfo_PluginCapability_Service proto.InternalMessageInfo + +func (m *PluginCapability_Service) GetType() PluginCapability_Service_Type { + if m != nil { + return m.Type + } + return PluginCapability_Service_UNKNOWN +} + +type ProbeRequest struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ProbeRequest) Reset() { *m = ProbeRequest{} } +func (m *ProbeRequest) String() string { return proto.CompactTextString(m) } +func (*ProbeRequest) ProtoMessage() {} +func (*ProbeRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{5} +} +func (m *ProbeRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ProbeRequest.Unmarshal(m, b) +} +func (m *ProbeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ProbeRequest.Marshal(b, m, deterministic) +} +func (dst *ProbeRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProbeRequest.Merge(dst, src) +} +func (m *ProbeRequest) XXX_Size() int { + return xxx_messageInfo_ProbeRequest.Size(m) +} +func (m *ProbeRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ProbeRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ProbeRequest proto.InternalMessageInfo + +type ProbeResponse struct { + // Readiness allows a plugin to report its initialization status back + // to the CO. Initialization for some plugins MAY be time consuming + // and it is important for a CO to distinguish between the following + // cases: + // + // 1) The plugin is in an unhealthy state and MAY need restarting. In + // this case a gRPC error code SHALL be returned. + // 2) The plugin is still initializing, but is otherwise perfectly + // healthy. In this case a successful response SHALL be returned + // with a readiness value of `false`. Calls to the plugin's + // Controller and/or Node services MAY fail due to an incomplete + // initialization state. + // 3) The plugin has finished initializing and is ready to service + // calls to its Controller and/or Node services. A successful + // response is returned with a readiness value of `true`. + // + // This field is OPTIONAL. If not present, the caller SHALL assume + // that the plugin is in a ready state and is accepting calls to its + // Controller and/or Node services (according to the plugin's reported + // capabilities). + Ready *wrappers.BoolValue `protobuf:"bytes,1,opt,name=ready,proto3" json:"ready,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ProbeResponse) Reset() { *m = ProbeResponse{} } +func (m *ProbeResponse) String() string { return proto.CompactTextString(m) } +func (*ProbeResponse) ProtoMessage() {} +func (*ProbeResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{6} +} +func (m *ProbeResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ProbeResponse.Unmarshal(m, b) +} +func (m *ProbeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ProbeResponse.Marshal(b, m, deterministic) +} +func (dst *ProbeResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProbeResponse.Merge(dst, src) +} +func (m *ProbeResponse) XXX_Size() int { + return xxx_messageInfo_ProbeResponse.Size(m) +} +func (m *ProbeResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ProbeResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ProbeResponse proto.InternalMessageInfo + +func (m *ProbeResponse) GetReady() *wrappers.BoolValue { + if m != nil { + return m.Ready + } + return nil +} + +type CreateVolumeRequest struct { + // The suggested name for the storage space. This field is REQUIRED. + // It serves two purposes: + // 1) Idempotency - This name is generated by the CO to achieve + // idempotency. The Plugin SHOULD ensure that multiple + // `CreateVolume` calls for the same name do not result in more + // than one piece of storage provisioned corresponding to that + // name. If a Plugin is unable to enforce idempotency, the CO's + // error recovery logic could result in multiple (unused) volumes + // being provisioned. + // In the case of error, the CO MUST handle the gRPC error codes + // per the recovery behavior defined in the "CreateVolume Errors" + // section below. + // The CO is responsible for cleaning up volumes it provisioned + // that it no longer needs. If the CO is uncertain whether a volume + // was provisioned or not when a `CreateVolume` call fails, the CO + // MAY call `CreateVolume` again, with the same name, to ensure the + // volume exists and to retrieve the volume's `volume_id` (unless + // otherwise prohibited by "CreateVolume Errors"). + // 2) Suggested name - Some storage systems allow callers to specify + // an identifier by which to refer to the newly provisioned + // storage. If a storage system supports this, it can optionally + // use this name as the identifier for the new volume. + // Any Unicode string that conforms to the length limit is allowed + // except those containing the following banned characters: + // U+0000-U+0008, U+000B, U+000C, U+000E-U+001F, U+007F-U+009F. + // (These are control characters other than commonly used whitespace.) + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // This field is OPTIONAL. This allows the CO to specify the capacity + // requirement of the volume to be provisioned. If not specified, the + // Plugin MAY choose an implementation-defined capacity range. If + // specified it MUST always be honored, even when creating volumes + // from a source; which MAY force some backends to internally extend + // the volume after creating it. + CapacityRange *CapacityRange `protobuf:"bytes,2,opt,name=capacity_range,json=capacityRange,proto3" json:"capacity_range,omitempty"` + // The capabilities that the provisioned volume MUST have. SP MUST + // provision a volume that will satisfy ALL of the capabilities + // specified in this list. Otherwise SP MUST return the appropriate + // gRPC error code. + // The Plugin MUST assume that the CO MAY use the provisioned volume + // with ANY of the capabilities specified in this list. + // For example, a CO MAY specify two volume capabilities: one with + // access mode SINGLE_NODE_WRITER and another with access mode + // MULTI_NODE_READER_ONLY. In this case, the SP MUST verify that the + // provisioned volume can be used in either mode. + // This also enables the CO to do early validation: If ANY of the + // specified volume capabilities are not supported by the SP, the call + // MUST return the appropriate gRPC error code. + // This field is REQUIRED. + VolumeCapabilities []*VolumeCapability `protobuf:"bytes,3,rep,name=volume_capabilities,json=volumeCapabilities,proto3" json:"volume_capabilities,omitempty"` + // Plugin specific parameters passed in as opaque key-value pairs. + // This field is OPTIONAL. The Plugin is responsible for parsing and + // validating these parameters. COs will treat these as opaque. + Parameters map[string]string `protobuf:"bytes,4,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Secrets required by plugin to complete volume creation request. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. + Secrets map[string]string `protobuf:"bytes,5,rep,name=secrets,proto3" json:"secrets,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // If specified, the new volume will be pre-populated with data from + // this source. This field is OPTIONAL. + VolumeContentSource *VolumeContentSource `protobuf:"bytes,6,opt,name=volume_content_source,json=volumeContentSource,proto3" json:"volume_content_source,omitempty"` + // Specifies where (regions, zones, racks, etc.) the provisioned + // volume MUST be accessible from. + // An SP SHALL advertise the requirements for topological + // accessibility information in documentation. COs SHALL only specify + // topological accessibility information supported by the SP. + // This field is OPTIONAL. + // This field SHALL NOT be specified unless the SP has the + // VOLUME_ACCESSIBILITY_CONSTRAINTS plugin capability. + // If this field is not specified and the SP has the + // VOLUME_ACCESSIBILITY_CONSTRAINTS plugin capability, the SP MAY + // choose where the provisioned volume is accessible from. + AccessibilityRequirements *TopologyRequirement `protobuf:"bytes,7,opt,name=accessibility_requirements,json=accessibilityRequirements,proto3" json:"accessibility_requirements,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CreateVolumeRequest) Reset() { *m = CreateVolumeRequest{} } +func (m *CreateVolumeRequest) String() string { return proto.CompactTextString(m) } +func (*CreateVolumeRequest) ProtoMessage() {} +func (*CreateVolumeRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{7} +} +func (m *CreateVolumeRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreateVolumeRequest.Unmarshal(m, b) +} +func (m *CreateVolumeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreateVolumeRequest.Marshal(b, m, deterministic) +} +func (dst *CreateVolumeRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateVolumeRequest.Merge(dst, src) +} +func (m *CreateVolumeRequest) XXX_Size() int { + return xxx_messageInfo_CreateVolumeRequest.Size(m) +} +func (m *CreateVolumeRequest) XXX_DiscardUnknown() { + xxx_messageInfo_CreateVolumeRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_CreateVolumeRequest proto.InternalMessageInfo + +func (m *CreateVolumeRequest) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *CreateVolumeRequest) GetCapacityRange() *CapacityRange { + if m != nil { + return m.CapacityRange + } + return nil +} + +func (m *CreateVolumeRequest) GetVolumeCapabilities() []*VolumeCapability { + if m != nil { + return m.VolumeCapabilities + } + return nil +} + +func (m *CreateVolumeRequest) GetParameters() map[string]string { + if m != nil { + return m.Parameters + } + return nil +} + +func (m *CreateVolumeRequest) GetSecrets() map[string]string { + if m != nil { + return m.Secrets + } + return nil +} + +func (m *CreateVolumeRequest) GetVolumeContentSource() *VolumeContentSource { + if m != nil { + return m.VolumeContentSource + } + return nil +} + +func (m *CreateVolumeRequest) GetAccessibilityRequirements() *TopologyRequirement { + if m != nil { + return m.AccessibilityRequirements + } + return nil +} + +// Specifies what source the volume will be created from. One of the +// type fields MUST be specified. +type VolumeContentSource struct { + // Types that are valid to be assigned to Type: + // *VolumeContentSource_Snapshot + // *VolumeContentSource_Volume + Type isVolumeContentSource_Type `protobuf_oneof:"type"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *VolumeContentSource) Reset() { *m = VolumeContentSource{} } +func (m *VolumeContentSource) String() string { return proto.CompactTextString(m) } +func (*VolumeContentSource) ProtoMessage() {} +func (*VolumeContentSource) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{8} +} +func (m *VolumeContentSource) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VolumeContentSource.Unmarshal(m, b) +} +func (m *VolumeContentSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VolumeContentSource.Marshal(b, m, deterministic) +} +func (dst *VolumeContentSource) XXX_Merge(src proto.Message) { + xxx_messageInfo_VolumeContentSource.Merge(dst, src) +} +func (m *VolumeContentSource) XXX_Size() int { + return xxx_messageInfo_VolumeContentSource.Size(m) +} +func (m *VolumeContentSource) XXX_DiscardUnknown() { + xxx_messageInfo_VolumeContentSource.DiscardUnknown(m) +} + +var xxx_messageInfo_VolumeContentSource proto.InternalMessageInfo + +type isVolumeContentSource_Type interface { + isVolumeContentSource_Type() +} + +type VolumeContentSource_Snapshot struct { + Snapshot *VolumeContentSource_SnapshotSource `protobuf:"bytes,1,opt,name=snapshot,proto3,oneof"` +} + +type VolumeContentSource_Volume struct { + Volume *VolumeContentSource_VolumeSource `protobuf:"bytes,2,opt,name=volume,proto3,oneof"` +} + +func (*VolumeContentSource_Snapshot) isVolumeContentSource_Type() {} + +func (*VolumeContentSource_Volume) isVolumeContentSource_Type() {} + +func (m *VolumeContentSource) GetType() isVolumeContentSource_Type { + if m != nil { + return m.Type + } + return nil +} + +func (m *VolumeContentSource) GetSnapshot() *VolumeContentSource_SnapshotSource { + if x, ok := m.GetType().(*VolumeContentSource_Snapshot); ok { + return x.Snapshot + } + return nil +} + +func (m *VolumeContentSource) GetVolume() *VolumeContentSource_VolumeSource { + if x, ok := m.GetType().(*VolumeContentSource_Volume); ok { + return x.Volume + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*VolumeContentSource) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _VolumeContentSource_OneofMarshaler, _VolumeContentSource_OneofUnmarshaler, _VolumeContentSource_OneofSizer, []interface{}{ + (*VolumeContentSource_Snapshot)(nil), + (*VolumeContentSource_Volume)(nil), + } +} + +func _VolumeContentSource_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*VolumeContentSource) + // type + switch x := m.Type.(type) { + case *VolumeContentSource_Snapshot: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Snapshot); err != nil { + return err + } + case *VolumeContentSource_Volume: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Volume); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("VolumeContentSource.Type has unexpected type %T", x) + } + return nil +} + +func _VolumeContentSource_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*VolumeContentSource) + switch tag { + case 1: // type.snapshot + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(VolumeContentSource_SnapshotSource) + err := b.DecodeMessage(msg) + m.Type = &VolumeContentSource_Snapshot{msg} + return true, err + case 2: // type.volume + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(VolumeContentSource_VolumeSource) + err := b.DecodeMessage(msg) + m.Type = &VolumeContentSource_Volume{msg} + return true, err + default: + return false, nil + } +} + +func _VolumeContentSource_OneofSizer(msg proto.Message) (n int) { + m := msg.(*VolumeContentSource) + // type + switch x := m.Type.(type) { + case *VolumeContentSource_Snapshot: + s := proto.Size(x.Snapshot) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *VolumeContentSource_Volume: + s := proto.Size(x.Volume) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +type VolumeContentSource_SnapshotSource struct { + // Contains identity information for the existing source snapshot. + // This field is REQUIRED. Plugin is REQUIRED to support creating + // volume from snapshot if it supports the capability + // CREATE_DELETE_SNAPSHOT. + SnapshotId string `protobuf:"bytes,1,opt,name=snapshot_id,json=snapshotId,proto3" json:"snapshot_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *VolumeContentSource_SnapshotSource) Reset() { *m = VolumeContentSource_SnapshotSource{} } +func (m *VolumeContentSource_SnapshotSource) String() string { return proto.CompactTextString(m) } +func (*VolumeContentSource_SnapshotSource) ProtoMessage() {} +func (*VolumeContentSource_SnapshotSource) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{8, 0} +} +func (m *VolumeContentSource_SnapshotSource) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VolumeContentSource_SnapshotSource.Unmarshal(m, b) +} +func (m *VolumeContentSource_SnapshotSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VolumeContentSource_SnapshotSource.Marshal(b, m, deterministic) +} +func (dst *VolumeContentSource_SnapshotSource) XXX_Merge(src proto.Message) { + xxx_messageInfo_VolumeContentSource_SnapshotSource.Merge(dst, src) +} +func (m *VolumeContentSource_SnapshotSource) XXX_Size() int { + return xxx_messageInfo_VolumeContentSource_SnapshotSource.Size(m) +} +func (m *VolumeContentSource_SnapshotSource) XXX_DiscardUnknown() { + xxx_messageInfo_VolumeContentSource_SnapshotSource.DiscardUnknown(m) +} + +var xxx_messageInfo_VolumeContentSource_SnapshotSource proto.InternalMessageInfo + +func (m *VolumeContentSource_SnapshotSource) GetSnapshotId() string { + if m != nil { + return m.SnapshotId + } + return "" +} + +type VolumeContentSource_VolumeSource struct { + // Contains identity information for the existing source volume. + // This field is REQUIRED. Plugins reporting CLONE_VOLUME + // capability MUST support creating a volume from another volume. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *VolumeContentSource_VolumeSource) Reset() { *m = VolumeContentSource_VolumeSource{} } +func (m *VolumeContentSource_VolumeSource) String() string { return proto.CompactTextString(m) } +func (*VolumeContentSource_VolumeSource) ProtoMessage() {} +func (*VolumeContentSource_VolumeSource) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{8, 1} +} +func (m *VolumeContentSource_VolumeSource) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VolumeContentSource_VolumeSource.Unmarshal(m, b) +} +func (m *VolumeContentSource_VolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VolumeContentSource_VolumeSource.Marshal(b, m, deterministic) +} +func (dst *VolumeContentSource_VolumeSource) XXX_Merge(src proto.Message) { + xxx_messageInfo_VolumeContentSource_VolumeSource.Merge(dst, src) +} +func (m *VolumeContentSource_VolumeSource) XXX_Size() int { + return xxx_messageInfo_VolumeContentSource_VolumeSource.Size(m) +} +func (m *VolumeContentSource_VolumeSource) XXX_DiscardUnknown() { + xxx_messageInfo_VolumeContentSource_VolumeSource.DiscardUnknown(m) +} + +var xxx_messageInfo_VolumeContentSource_VolumeSource proto.InternalMessageInfo + +func (m *VolumeContentSource_VolumeSource) GetVolumeId() string { + if m != nil { + return m.VolumeId + } + return "" +} + +type CreateVolumeResponse struct { + // Contains all attributes of the newly created volume that are + // relevant to the CO along with information required by the Plugin + // to uniquely identify the volume. This field is REQUIRED. + Volume *Volume `protobuf:"bytes,1,opt,name=volume,proto3" json:"volume,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CreateVolumeResponse) Reset() { *m = CreateVolumeResponse{} } +func (m *CreateVolumeResponse) String() string { return proto.CompactTextString(m) } +func (*CreateVolumeResponse) ProtoMessage() {} +func (*CreateVolumeResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{9} +} +func (m *CreateVolumeResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreateVolumeResponse.Unmarshal(m, b) +} +func (m *CreateVolumeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreateVolumeResponse.Marshal(b, m, deterministic) +} +func (dst *CreateVolumeResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateVolumeResponse.Merge(dst, src) +} +func (m *CreateVolumeResponse) XXX_Size() int { + return xxx_messageInfo_CreateVolumeResponse.Size(m) +} +func (m *CreateVolumeResponse) XXX_DiscardUnknown() { + xxx_messageInfo_CreateVolumeResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_CreateVolumeResponse proto.InternalMessageInfo + +func (m *CreateVolumeResponse) GetVolume() *Volume { + if m != nil { + return m.Volume + } + return nil +} + +// Specify a capability of a volume. +type VolumeCapability struct { + // Specifies what API the volume will be accessed using. One of the + // following fields MUST be specified. + // + // Types that are valid to be assigned to AccessType: + // *VolumeCapability_Block + // *VolumeCapability_Mount + AccessType isVolumeCapability_AccessType `protobuf_oneof:"access_type"` + // This is a REQUIRED field. + AccessMode *VolumeCapability_AccessMode `protobuf:"bytes,3,opt,name=access_mode,json=accessMode,proto3" json:"access_mode,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *VolumeCapability) Reset() { *m = VolumeCapability{} } +func (m *VolumeCapability) String() string { return proto.CompactTextString(m) } +func (*VolumeCapability) ProtoMessage() {} +func (*VolumeCapability) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{10} +} +func (m *VolumeCapability) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VolumeCapability.Unmarshal(m, b) +} +func (m *VolumeCapability) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VolumeCapability.Marshal(b, m, deterministic) +} +func (dst *VolumeCapability) XXX_Merge(src proto.Message) { + xxx_messageInfo_VolumeCapability.Merge(dst, src) +} +func (m *VolumeCapability) XXX_Size() int { + return xxx_messageInfo_VolumeCapability.Size(m) +} +func (m *VolumeCapability) XXX_DiscardUnknown() { + xxx_messageInfo_VolumeCapability.DiscardUnknown(m) +} + +var xxx_messageInfo_VolumeCapability proto.InternalMessageInfo + +type isVolumeCapability_AccessType interface { + isVolumeCapability_AccessType() +} + +type VolumeCapability_Block struct { + Block *VolumeCapability_BlockVolume `protobuf:"bytes,1,opt,name=block,proto3,oneof"` +} + +type VolumeCapability_Mount struct { + Mount *VolumeCapability_MountVolume `protobuf:"bytes,2,opt,name=mount,proto3,oneof"` +} + +func (*VolumeCapability_Block) isVolumeCapability_AccessType() {} + +func (*VolumeCapability_Mount) isVolumeCapability_AccessType() {} + +func (m *VolumeCapability) GetAccessType() isVolumeCapability_AccessType { + if m != nil { + return m.AccessType + } + return nil +} + +func (m *VolumeCapability) GetBlock() *VolumeCapability_BlockVolume { + if x, ok := m.GetAccessType().(*VolumeCapability_Block); ok { + return x.Block + } + return nil +} + +func (m *VolumeCapability) GetMount() *VolumeCapability_MountVolume { + if x, ok := m.GetAccessType().(*VolumeCapability_Mount); ok { + return x.Mount + } + return nil +} + +func (m *VolumeCapability) GetAccessMode() *VolumeCapability_AccessMode { + if m != nil { + return m.AccessMode + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*VolumeCapability) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _VolumeCapability_OneofMarshaler, _VolumeCapability_OneofUnmarshaler, _VolumeCapability_OneofSizer, []interface{}{ + (*VolumeCapability_Block)(nil), + (*VolumeCapability_Mount)(nil), + } +} + +func _VolumeCapability_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*VolumeCapability) + // access_type + switch x := m.AccessType.(type) { + case *VolumeCapability_Block: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Block); err != nil { + return err + } + case *VolumeCapability_Mount: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Mount); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("VolumeCapability.AccessType has unexpected type %T", x) + } + return nil +} + +func _VolumeCapability_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*VolumeCapability) + switch tag { + case 1: // access_type.block + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(VolumeCapability_BlockVolume) + err := b.DecodeMessage(msg) + m.AccessType = &VolumeCapability_Block{msg} + return true, err + case 2: // access_type.mount + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(VolumeCapability_MountVolume) + err := b.DecodeMessage(msg) + m.AccessType = &VolumeCapability_Mount{msg} + return true, err + default: + return false, nil + } +} + +func _VolumeCapability_OneofSizer(msg proto.Message) (n int) { + m := msg.(*VolumeCapability) + // access_type + switch x := m.AccessType.(type) { + case *VolumeCapability_Block: + s := proto.Size(x.Block) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *VolumeCapability_Mount: + s := proto.Size(x.Mount) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// Indicate that the volume will be accessed via the block device API. +type VolumeCapability_BlockVolume struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *VolumeCapability_BlockVolume) Reset() { *m = VolumeCapability_BlockVolume{} } +func (m *VolumeCapability_BlockVolume) String() string { return proto.CompactTextString(m) } +func (*VolumeCapability_BlockVolume) ProtoMessage() {} +func (*VolumeCapability_BlockVolume) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{10, 0} +} +func (m *VolumeCapability_BlockVolume) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VolumeCapability_BlockVolume.Unmarshal(m, b) +} +func (m *VolumeCapability_BlockVolume) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VolumeCapability_BlockVolume.Marshal(b, m, deterministic) +} +func (dst *VolumeCapability_BlockVolume) XXX_Merge(src proto.Message) { + xxx_messageInfo_VolumeCapability_BlockVolume.Merge(dst, src) +} +func (m *VolumeCapability_BlockVolume) XXX_Size() int { + return xxx_messageInfo_VolumeCapability_BlockVolume.Size(m) +} +func (m *VolumeCapability_BlockVolume) XXX_DiscardUnknown() { + xxx_messageInfo_VolumeCapability_BlockVolume.DiscardUnknown(m) +} + +var xxx_messageInfo_VolumeCapability_BlockVolume proto.InternalMessageInfo + +// Indicate that the volume will be accessed via the filesystem API. +type VolumeCapability_MountVolume struct { + // The filesystem type. This field is OPTIONAL. + // An empty string is equal to an unspecified field value. + FsType string `protobuf:"bytes,1,opt,name=fs_type,json=fsType,proto3" json:"fs_type,omitempty"` + // The mount options that can be used for the volume. This field is + // OPTIONAL. `mount_flags` MAY contain sensitive information. + // Therefore, the CO and the Plugin MUST NOT leak this information + // to untrusted entities. The total size of this repeated field + // SHALL NOT exceed 4 KiB. + MountFlags []string `protobuf:"bytes,2,rep,name=mount_flags,json=mountFlags,proto3" json:"mount_flags,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *VolumeCapability_MountVolume) Reset() { *m = VolumeCapability_MountVolume{} } +func (m *VolumeCapability_MountVolume) String() string { return proto.CompactTextString(m) } +func (*VolumeCapability_MountVolume) ProtoMessage() {} +func (*VolumeCapability_MountVolume) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{10, 1} +} +func (m *VolumeCapability_MountVolume) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VolumeCapability_MountVolume.Unmarshal(m, b) +} +func (m *VolumeCapability_MountVolume) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VolumeCapability_MountVolume.Marshal(b, m, deterministic) +} +func (dst *VolumeCapability_MountVolume) XXX_Merge(src proto.Message) { + xxx_messageInfo_VolumeCapability_MountVolume.Merge(dst, src) +} +func (m *VolumeCapability_MountVolume) XXX_Size() int { + return xxx_messageInfo_VolumeCapability_MountVolume.Size(m) +} +func (m *VolumeCapability_MountVolume) XXX_DiscardUnknown() { + xxx_messageInfo_VolumeCapability_MountVolume.DiscardUnknown(m) +} + +var xxx_messageInfo_VolumeCapability_MountVolume proto.InternalMessageInfo + +func (m *VolumeCapability_MountVolume) GetFsType() string { + if m != nil { + return m.FsType + } + return "" +} + +func (m *VolumeCapability_MountVolume) GetMountFlags() []string { + if m != nil { + return m.MountFlags + } + return nil +} + +// Specify how a volume can be accessed. +type VolumeCapability_AccessMode struct { + // This field is REQUIRED. + Mode VolumeCapability_AccessMode_Mode `protobuf:"varint,1,opt,name=mode,proto3,enum=csi.v1.VolumeCapability_AccessMode_Mode" json:"mode,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *VolumeCapability_AccessMode) Reset() { *m = VolumeCapability_AccessMode{} } +func (m *VolumeCapability_AccessMode) String() string { return proto.CompactTextString(m) } +func (*VolumeCapability_AccessMode) ProtoMessage() {} +func (*VolumeCapability_AccessMode) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{10, 2} +} +func (m *VolumeCapability_AccessMode) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VolumeCapability_AccessMode.Unmarshal(m, b) +} +func (m *VolumeCapability_AccessMode) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VolumeCapability_AccessMode.Marshal(b, m, deterministic) +} +func (dst *VolumeCapability_AccessMode) XXX_Merge(src proto.Message) { + xxx_messageInfo_VolumeCapability_AccessMode.Merge(dst, src) +} +func (m *VolumeCapability_AccessMode) XXX_Size() int { + return xxx_messageInfo_VolumeCapability_AccessMode.Size(m) +} +func (m *VolumeCapability_AccessMode) XXX_DiscardUnknown() { + xxx_messageInfo_VolumeCapability_AccessMode.DiscardUnknown(m) +} + +var xxx_messageInfo_VolumeCapability_AccessMode proto.InternalMessageInfo + +func (m *VolumeCapability_AccessMode) GetMode() VolumeCapability_AccessMode_Mode { + if m != nil { + return m.Mode + } + return VolumeCapability_AccessMode_UNKNOWN +} + +// The capacity of the storage space in bytes. To specify an exact size, +// `required_bytes` and `limit_bytes` SHALL be set to the same value. At +// least one of the these fields MUST be specified. +type CapacityRange struct { + // Volume MUST be at least this big. This field is OPTIONAL. + // A value of 0 is equal to an unspecified field value. + // The value of this field MUST NOT be negative. + RequiredBytes int64 `protobuf:"varint,1,opt,name=required_bytes,json=requiredBytes,proto3" json:"required_bytes,omitempty"` + // Volume MUST not be bigger than this. This field is OPTIONAL. + // A value of 0 is equal to an unspecified field value. + // The value of this field MUST NOT be negative. + LimitBytes int64 `protobuf:"varint,2,opt,name=limit_bytes,json=limitBytes,proto3" json:"limit_bytes,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CapacityRange) Reset() { *m = CapacityRange{} } +func (m *CapacityRange) String() string { return proto.CompactTextString(m) } +func (*CapacityRange) ProtoMessage() {} +func (*CapacityRange) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{11} +} +func (m *CapacityRange) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CapacityRange.Unmarshal(m, b) +} +func (m *CapacityRange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CapacityRange.Marshal(b, m, deterministic) +} +func (dst *CapacityRange) XXX_Merge(src proto.Message) { + xxx_messageInfo_CapacityRange.Merge(dst, src) +} +func (m *CapacityRange) XXX_Size() int { + return xxx_messageInfo_CapacityRange.Size(m) +} +func (m *CapacityRange) XXX_DiscardUnknown() { + xxx_messageInfo_CapacityRange.DiscardUnknown(m) +} + +var xxx_messageInfo_CapacityRange proto.InternalMessageInfo + +func (m *CapacityRange) GetRequiredBytes() int64 { + if m != nil { + return m.RequiredBytes + } + return 0 +} + +func (m *CapacityRange) GetLimitBytes() int64 { + if m != nil { + return m.LimitBytes + } + return 0 +} + +// Information about a specific volume. +type Volume struct { + // The capacity of the volume in bytes. This field is OPTIONAL. If not + // set (value of 0), it indicates that the capacity of the volume is + // unknown (e.g., NFS share). + // The value of this field MUST NOT be negative. + CapacityBytes int64 `protobuf:"varint,1,opt,name=capacity_bytes,json=capacityBytes,proto3" json:"capacity_bytes,omitempty"` + // The identifier for this volume, generated by the plugin. + // This field is REQUIRED. + // This field MUST contain enough information to uniquely identify + // this specific volume vs all other volumes supported by this plugin. + // This field SHALL be used by the CO in subsequent calls to refer to + // this volume. + // The SP is NOT responsible for global uniqueness of volume_id across + // multiple SPs. + VolumeId string `protobuf:"bytes,2,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` + // Opaque static properties of the volume. SP MAY use this field to + // ensure subsequent volume validation and publishing calls have + // contextual information. + // The contents of this field SHALL be opaque to a CO. + // The contents of this field SHALL NOT be mutable. + // The contents of this field SHALL be safe for the CO to cache. + // The contents of this field SHOULD NOT contain sensitive + // information. + // The contents of this field SHOULD NOT be used for uniquely + // identifying a volume. The `volume_id` alone SHOULD be sufficient to + // identify the volume. + // A volume uniquely identified by `volume_id` SHALL always report the + // same volume_context. + // This field is OPTIONAL and when present MUST be passed to volume + // validation and publishing calls. + VolumeContext map[string]string `protobuf:"bytes,3,rep,name=volume_context,json=volumeContext,proto3" json:"volume_context,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // If specified, indicates that the volume is not empty and is + // pre-populated with data from the specified source. + // This field is OPTIONAL. + ContentSource *VolumeContentSource `protobuf:"bytes,4,opt,name=content_source,json=contentSource,proto3" json:"content_source,omitempty"` + // Specifies where (regions, zones, racks, etc.) the provisioned + // volume is accessible from. + // A plugin that returns this field MUST also set the + // VOLUME_ACCESSIBILITY_CONSTRAINTS plugin capability. + // An SP MAY specify multiple topologies to indicate the volume is + // accessible from multiple locations. + // COs MAY use this information along with the topology information + // returned by NodeGetInfo to ensure that a given volume is accessible + // from a given node when scheduling workloads. + // This field is OPTIONAL. If it is not specified, the CO MAY assume + // the volume is equally accessible from all nodes in the cluster and + // MAY schedule workloads referencing the volume on any available + // node. + // + // Example 1: + // accessible_topology = {"region": "R1", "zone": "Z2"} + // Indicates a volume accessible only from the "region" "R1" and the + // "zone" "Z2". + // + // Example 2: + // accessible_topology = + // {"region": "R1", "zone": "Z2"}, + // {"region": "R1", "zone": "Z3"} + // Indicates a volume accessible from both "zone" "Z2" and "zone" "Z3" + // in the "region" "R1". + AccessibleTopology []*Topology `protobuf:"bytes,5,rep,name=accessible_topology,json=accessibleTopology,proto3" json:"accessible_topology,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Volume) Reset() { *m = Volume{} } +func (m *Volume) String() string { return proto.CompactTextString(m) } +func (*Volume) ProtoMessage() {} +func (*Volume) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{12} +} +func (m *Volume) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Volume.Unmarshal(m, b) +} +func (m *Volume) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Volume.Marshal(b, m, deterministic) +} +func (dst *Volume) XXX_Merge(src proto.Message) { + xxx_messageInfo_Volume.Merge(dst, src) +} +func (m *Volume) XXX_Size() int { + return xxx_messageInfo_Volume.Size(m) +} +func (m *Volume) XXX_DiscardUnknown() { + xxx_messageInfo_Volume.DiscardUnknown(m) +} + +var xxx_messageInfo_Volume proto.InternalMessageInfo + +func (m *Volume) GetCapacityBytes() int64 { + if m != nil { + return m.CapacityBytes + } + return 0 +} + +func (m *Volume) GetVolumeId() string { + if m != nil { + return m.VolumeId + } + return "" +} + +func (m *Volume) GetVolumeContext() map[string]string { + if m != nil { + return m.VolumeContext + } + return nil +} + +func (m *Volume) GetContentSource() *VolumeContentSource { + if m != nil { + return m.ContentSource + } + return nil +} + +func (m *Volume) GetAccessibleTopology() []*Topology { + if m != nil { + return m.AccessibleTopology + } + return nil +} + +type TopologyRequirement struct { + // Specifies the list of topologies the provisioned volume MUST be + // accessible from. + // This field is OPTIONAL. If TopologyRequirement is specified either + // requisite or preferred or both MUST be specified. + // + // If requisite is specified, the provisioned volume MUST be + // accessible from at least one of the requisite topologies. + // + // Given + // x = number of topologies provisioned volume is accessible from + // n = number of requisite topologies + // The CO MUST ensure n >= 1. The SP MUST ensure x >= 1 + // If x==n, than the SP MUST make the provisioned volume available to + // all topologies from the list of requisite topologies. If it is + // unable to do so, the SP MUST fail the CreateVolume call. + // For example, if a volume should be accessible from a single zone, + // and requisite = + // {"region": "R1", "zone": "Z2"} + // then the provisioned volume MUST be accessible from the "region" + // "R1" and the "zone" "Z2". + // Similarly, if a volume should be accessible from two zones, and + // requisite = + // {"region": "R1", "zone": "Z2"}, + // {"region": "R1", "zone": "Z3"} + // then the provisioned volume MUST be accessible from the "region" + // "R1" and both "zone" "Z2" and "zone" "Z3". + // + // If xn, than the SP MUST make the provisioned volume available from + // all topologies from the list of requisite topologies and MAY choose + // the remaining x-n unique topologies from the list of all possible + // topologies. If it is unable to do so, the SP MUST fail the + // CreateVolume call. + // For example, if a volume should be accessible from two zones, and + // requisite = + // {"region": "R1", "zone": "Z2"} + // then the provisioned volume MUST be accessible from the "region" + // "R1" and the "zone" "Z2" and the SP may select the second zone + // independently, e.g. "R1/Z4". + Requisite []*Topology `protobuf:"bytes,1,rep,name=requisite,proto3" json:"requisite,omitempty"` + // Specifies the list of topologies the CO would prefer the volume to + // be provisioned in. + // + // This field is OPTIONAL. If TopologyRequirement is specified either + // requisite or preferred or both MUST be specified. + // + // An SP MUST attempt to make the provisioned volume available using + // the preferred topologies in order from first to last. + // + // If requisite is specified, all topologies in preferred list MUST + // also be present in the list of requisite topologies. + // + // If the SP is unable to to make the provisioned volume available + // from any of the preferred topologies, the SP MAY choose a topology + // from the list of requisite topologies. + // If the list of requisite topologies is not specified, then the SP + // MAY choose from the list of all possible topologies. + // If the list of requisite topologies is specified and the SP is + // unable to to make the provisioned volume available from any of the + // requisite topologies it MUST fail the CreateVolume call. + // + // Example 1: + // Given a volume should be accessible from a single zone, and + // requisite = + // {"region": "R1", "zone": "Z2"}, + // {"region": "R1", "zone": "Z3"} + // preferred = + // {"region": "R1", "zone": "Z3"} + // then the the SP SHOULD first attempt to make the provisioned volume + // available from "zone" "Z3" in the "region" "R1" and fall back to + // "zone" "Z2" in the "region" "R1" if that is not possible. + // + // Example 2: + // Given a volume should be accessible from a single zone, and + // requisite = + // {"region": "R1", "zone": "Z2"}, + // {"region": "R1", "zone": "Z3"}, + // {"region": "R1", "zone": "Z4"}, + // {"region": "R1", "zone": "Z5"} + // preferred = + // {"region": "R1", "zone": "Z4"}, + // {"region": "R1", "zone": "Z2"} + // then the the SP SHOULD first attempt to make the provisioned volume + // accessible from "zone" "Z4" in the "region" "R1" and fall back to + // "zone" "Z2" in the "region" "R1" if that is not possible. If that + // is not possible, the SP may choose between either the "zone" + // "Z3" or "Z5" in the "region" "R1". + // + // Example 3: + // Given a volume should be accessible from TWO zones (because an + // opaque parameter in CreateVolumeRequest, for example, specifies + // the volume is accessible from two zones, aka synchronously + // replicated), and + // requisite = + // {"region": "R1", "zone": "Z2"}, + // {"region": "R1", "zone": "Z3"}, + // {"region": "R1", "zone": "Z4"}, + // {"region": "R1", "zone": "Z5"} + // preferred = + // {"region": "R1", "zone": "Z5"}, + // {"region": "R1", "zone": "Z3"} + // then the the SP SHOULD first attempt to make the provisioned volume + // accessible from the combination of the two "zones" "Z5" and "Z3" in + // the "region" "R1". If that's not possible, it should fall back to + // a combination of "Z5" and other possibilities from the list of + // requisite. If that's not possible, it should fall back to a + // combination of "Z3" and other possibilities from the list of + // requisite. If that's not possible, it should fall back to a + // combination of other possibilities from the list of requisite. + Preferred []*Topology `protobuf:"bytes,2,rep,name=preferred,proto3" json:"preferred,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TopologyRequirement) Reset() { *m = TopologyRequirement{} } +func (m *TopologyRequirement) String() string { return proto.CompactTextString(m) } +func (*TopologyRequirement) ProtoMessage() {} +func (*TopologyRequirement) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{13} +} +func (m *TopologyRequirement) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TopologyRequirement.Unmarshal(m, b) +} +func (m *TopologyRequirement) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TopologyRequirement.Marshal(b, m, deterministic) +} +func (dst *TopologyRequirement) XXX_Merge(src proto.Message) { + xxx_messageInfo_TopologyRequirement.Merge(dst, src) +} +func (m *TopologyRequirement) XXX_Size() int { + return xxx_messageInfo_TopologyRequirement.Size(m) +} +func (m *TopologyRequirement) XXX_DiscardUnknown() { + xxx_messageInfo_TopologyRequirement.DiscardUnknown(m) +} + +var xxx_messageInfo_TopologyRequirement proto.InternalMessageInfo + +func (m *TopologyRequirement) GetRequisite() []*Topology { + if m != nil { + return m.Requisite + } + return nil +} + +func (m *TopologyRequirement) GetPreferred() []*Topology { + if m != nil { + return m.Preferred + } + return nil +} + +// Topology is a map of topological domains to topological segments. +// A topological domain is a sub-division of a cluster, like "region", +// "zone", "rack", etc. +// A topological segment is a specific instance of a topological domain, +// like "zone3", "rack3", etc. +// For example {"com.company/zone": "Z1", "com.company/rack": "R3"} +// Valid keys have two segments: an OPTIONAL prefix and name, separated +// by a slash (/), for example: "com.company.example/zone". +// The key name segment is REQUIRED. The prefix is OPTIONAL. +// The key name MUST be 63 characters or less, begin and end with an +// alphanumeric character ([a-z0-9A-Z]), and contain only dashes (-), +// underscores (_), dots (.), or alphanumerics in between, for example +// "zone". +// The key prefix MUST be 63 characters or less, begin and end with a +// lower-case alphanumeric character ([a-z0-9]), contain only +// dashes (-), dots (.), or lower-case alphanumerics in between, and +// follow domain name notation format +// (https://tools.ietf.org/html/rfc1035#section-2.3.1). +// The key prefix SHOULD include the plugin's host company name and/or +// the plugin name, to minimize the possibility of collisions with keys +// from other plugins. +// If a key prefix is specified, it MUST be identical across all +// topology keys returned by the SP (across all RPCs). +// Keys MUST be case-insensitive. Meaning the keys "Zone" and "zone" +// MUST not both exist. +// Each value (topological segment) MUST contain 1 or more strings. +// Each string MUST be 63 characters or less and begin and end with an +// alphanumeric character with '-', '_', '.', or alphanumerics in +// between. +type Topology struct { + Segments map[string]string `protobuf:"bytes,1,rep,name=segments,proto3" json:"segments,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Topology) Reset() { *m = Topology{} } +func (m *Topology) String() string { return proto.CompactTextString(m) } +func (*Topology) ProtoMessage() {} +func (*Topology) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{14} +} +func (m *Topology) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Topology.Unmarshal(m, b) +} +func (m *Topology) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Topology.Marshal(b, m, deterministic) +} +func (dst *Topology) XXX_Merge(src proto.Message) { + xxx_messageInfo_Topology.Merge(dst, src) +} +func (m *Topology) XXX_Size() int { + return xxx_messageInfo_Topology.Size(m) +} +func (m *Topology) XXX_DiscardUnknown() { + xxx_messageInfo_Topology.DiscardUnknown(m) +} + +var xxx_messageInfo_Topology proto.InternalMessageInfo + +func (m *Topology) GetSegments() map[string]string { + if m != nil { + return m.Segments + } + return nil +} + +type DeleteVolumeRequest struct { + // The ID of the volume to be deprovisioned. + // This field is REQUIRED. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` + // Secrets required by plugin to complete volume deletion request. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. + Secrets map[string]string `protobuf:"bytes,2,rep,name=secrets,proto3" json:"secrets,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DeleteVolumeRequest) Reset() { *m = DeleteVolumeRequest{} } +func (m *DeleteVolumeRequest) String() string { return proto.CompactTextString(m) } +func (*DeleteVolumeRequest) ProtoMessage() {} +func (*DeleteVolumeRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{15} +} +func (m *DeleteVolumeRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteVolumeRequest.Unmarshal(m, b) +} +func (m *DeleteVolumeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteVolumeRequest.Marshal(b, m, deterministic) +} +func (dst *DeleteVolumeRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteVolumeRequest.Merge(dst, src) +} +func (m *DeleteVolumeRequest) XXX_Size() int { + return xxx_messageInfo_DeleteVolumeRequest.Size(m) +} +func (m *DeleteVolumeRequest) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteVolumeRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_DeleteVolumeRequest proto.InternalMessageInfo + +func (m *DeleteVolumeRequest) GetVolumeId() string { + if m != nil { + return m.VolumeId + } + return "" +} + +func (m *DeleteVolumeRequest) GetSecrets() map[string]string { + if m != nil { + return m.Secrets + } + return nil +} + +type DeleteVolumeResponse struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DeleteVolumeResponse) Reset() { *m = DeleteVolumeResponse{} } +func (m *DeleteVolumeResponse) String() string { return proto.CompactTextString(m) } +func (*DeleteVolumeResponse) ProtoMessage() {} +func (*DeleteVolumeResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{16} +} +func (m *DeleteVolumeResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteVolumeResponse.Unmarshal(m, b) +} +func (m *DeleteVolumeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteVolumeResponse.Marshal(b, m, deterministic) +} +func (dst *DeleteVolumeResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteVolumeResponse.Merge(dst, src) +} +func (m *DeleteVolumeResponse) XXX_Size() int { + return xxx_messageInfo_DeleteVolumeResponse.Size(m) +} +func (m *DeleteVolumeResponse) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteVolumeResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_DeleteVolumeResponse proto.InternalMessageInfo + +type ControllerPublishVolumeRequest struct { + // The ID of the volume to be used on a node. + // This field is REQUIRED. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` + // The ID of the node. This field is REQUIRED. The CO SHALL set this + // field to match the node ID returned by `NodeGetInfo`. + NodeId string `protobuf:"bytes,2,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"` + // Volume capability describing how the CO intends to use this volume. + // SP MUST ensure the CO can use the published volume as described. + // Otherwise SP MUST return the appropriate gRPC error code. + // This is a REQUIRED field. + VolumeCapability *VolumeCapability `protobuf:"bytes,3,opt,name=volume_capability,json=volumeCapability,proto3" json:"volume_capability,omitempty"` + // Indicates SP MUST publish the volume in readonly mode. + // CO MUST set this field to false if SP does not have the + // PUBLISH_READONLY controller capability. + // This is a REQUIRED field. + Readonly bool `protobuf:"varint,4,opt,name=readonly,proto3" json:"readonly,omitempty"` + // Secrets required by plugin to complete controller publish volume + // request. This field is OPTIONAL. Refer to the + // `Secrets Requirements` section on how to use this field. + Secrets map[string]string `protobuf:"bytes,5,rep,name=secrets,proto3" json:"secrets,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Volume context as returned by CO in CreateVolumeRequest. This field + // is OPTIONAL and MUST match the volume_context of the volume + // identified by `volume_id`. + VolumeContext map[string]string `protobuf:"bytes,6,rep,name=volume_context,json=volumeContext,proto3" json:"volume_context,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ControllerPublishVolumeRequest) Reset() { *m = ControllerPublishVolumeRequest{} } +func (m *ControllerPublishVolumeRequest) String() string { return proto.CompactTextString(m) } +func (*ControllerPublishVolumeRequest) ProtoMessage() {} +func (*ControllerPublishVolumeRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{17} +} +func (m *ControllerPublishVolumeRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ControllerPublishVolumeRequest.Unmarshal(m, b) +} +func (m *ControllerPublishVolumeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ControllerPublishVolumeRequest.Marshal(b, m, deterministic) +} +func (dst *ControllerPublishVolumeRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerPublishVolumeRequest.Merge(dst, src) +} +func (m *ControllerPublishVolumeRequest) XXX_Size() int { + return xxx_messageInfo_ControllerPublishVolumeRequest.Size(m) +} +func (m *ControllerPublishVolumeRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerPublishVolumeRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerPublishVolumeRequest proto.InternalMessageInfo + +func (m *ControllerPublishVolumeRequest) GetVolumeId() string { + if m != nil { + return m.VolumeId + } + return "" +} + +func (m *ControllerPublishVolumeRequest) GetNodeId() string { + if m != nil { + return m.NodeId + } + return "" +} + +func (m *ControllerPublishVolumeRequest) GetVolumeCapability() *VolumeCapability { + if m != nil { + return m.VolumeCapability + } + return nil +} + +func (m *ControllerPublishVolumeRequest) GetReadonly() bool { + if m != nil { + return m.Readonly + } + return false +} + +func (m *ControllerPublishVolumeRequest) GetSecrets() map[string]string { + if m != nil { + return m.Secrets + } + return nil +} + +func (m *ControllerPublishVolumeRequest) GetVolumeContext() map[string]string { + if m != nil { + return m.VolumeContext + } + return nil +} + +type ControllerPublishVolumeResponse struct { + // Opaque static publish properties of the volume. SP MAY use this + // field to ensure subsequent `NodeStageVolume` or `NodePublishVolume` + // calls calls have contextual information. + // The contents of this field SHALL be opaque to a CO. + // The contents of this field SHALL NOT be mutable. + // The contents of this field SHALL be safe for the CO to cache. + // The contents of this field SHOULD NOT contain sensitive + // information. + // The contents of this field SHOULD NOT be used for uniquely + // identifying a volume. The `volume_id` alone SHOULD be sufficient to + // identify the volume. + // This field is OPTIONAL and when present MUST be passed to + // subsequent `NodeStageVolume` or `NodePublishVolume` calls + PublishContext map[string]string `protobuf:"bytes,1,rep,name=publish_context,json=publishContext,proto3" json:"publish_context,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ControllerPublishVolumeResponse) Reset() { *m = ControllerPublishVolumeResponse{} } +func (m *ControllerPublishVolumeResponse) String() string { return proto.CompactTextString(m) } +func (*ControllerPublishVolumeResponse) ProtoMessage() {} +func (*ControllerPublishVolumeResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{18} +} +func (m *ControllerPublishVolumeResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ControllerPublishVolumeResponse.Unmarshal(m, b) +} +func (m *ControllerPublishVolumeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ControllerPublishVolumeResponse.Marshal(b, m, deterministic) +} +func (dst *ControllerPublishVolumeResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerPublishVolumeResponse.Merge(dst, src) +} +func (m *ControllerPublishVolumeResponse) XXX_Size() int { + return xxx_messageInfo_ControllerPublishVolumeResponse.Size(m) +} +func (m *ControllerPublishVolumeResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerPublishVolumeResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerPublishVolumeResponse proto.InternalMessageInfo + +func (m *ControllerPublishVolumeResponse) GetPublishContext() map[string]string { + if m != nil { + return m.PublishContext + } + return nil +} + +type ControllerUnpublishVolumeRequest struct { + // The ID of the volume. This field is REQUIRED. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` + // The ID of the node. This field is OPTIONAL. The CO SHOULD set this + // field to match the node ID returned by `NodeGetInfo` or leave it + // unset. If the value is set, the SP MUST unpublish the volume from + // the specified node. If the value is unset, the SP MUST unpublish + // the volume from all nodes it is published to. + NodeId string `protobuf:"bytes,2,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"` + // Secrets required by plugin to complete controller unpublish volume + // request. This SHOULD be the same secrets passed to the + // ControllerPublishVolume call for the specified volume. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. + Secrets map[string]string `protobuf:"bytes,3,rep,name=secrets,proto3" json:"secrets,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ControllerUnpublishVolumeRequest) Reset() { *m = ControllerUnpublishVolumeRequest{} } +func (m *ControllerUnpublishVolumeRequest) String() string { return proto.CompactTextString(m) } +func (*ControllerUnpublishVolumeRequest) ProtoMessage() {} +func (*ControllerUnpublishVolumeRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{19} +} +func (m *ControllerUnpublishVolumeRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ControllerUnpublishVolumeRequest.Unmarshal(m, b) +} +func (m *ControllerUnpublishVolumeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ControllerUnpublishVolumeRequest.Marshal(b, m, deterministic) +} +func (dst *ControllerUnpublishVolumeRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerUnpublishVolumeRequest.Merge(dst, src) +} +func (m *ControllerUnpublishVolumeRequest) XXX_Size() int { + return xxx_messageInfo_ControllerUnpublishVolumeRequest.Size(m) +} +func (m *ControllerUnpublishVolumeRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerUnpublishVolumeRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerUnpublishVolumeRequest proto.InternalMessageInfo + +func (m *ControllerUnpublishVolumeRequest) GetVolumeId() string { + if m != nil { + return m.VolumeId + } + return "" +} + +func (m *ControllerUnpublishVolumeRequest) GetNodeId() string { + if m != nil { + return m.NodeId + } + return "" +} + +func (m *ControllerUnpublishVolumeRequest) GetSecrets() map[string]string { + if m != nil { + return m.Secrets + } + return nil +} + +type ControllerUnpublishVolumeResponse struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ControllerUnpublishVolumeResponse) Reset() { *m = ControllerUnpublishVolumeResponse{} } +func (m *ControllerUnpublishVolumeResponse) String() string { return proto.CompactTextString(m) } +func (*ControllerUnpublishVolumeResponse) ProtoMessage() {} +func (*ControllerUnpublishVolumeResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{20} +} +func (m *ControllerUnpublishVolumeResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ControllerUnpublishVolumeResponse.Unmarshal(m, b) +} +func (m *ControllerUnpublishVolumeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ControllerUnpublishVolumeResponse.Marshal(b, m, deterministic) +} +func (dst *ControllerUnpublishVolumeResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerUnpublishVolumeResponse.Merge(dst, src) +} +func (m *ControllerUnpublishVolumeResponse) XXX_Size() int { + return xxx_messageInfo_ControllerUnpublishVolumeResponse.Size(m) +} +func (m *ControllerUnpublishVolumeResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerUnpublishVolumeResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerUnpublishVolumeResponse proto.InternalMessageInfo + +type ValidateVolumeCapabilitiesRequest struct { + // The ID of the volume to check. This field is REQUIRED. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` + // Volume context as returned by CO in CreateVolumeRequest. This field + // is OPTIONAL and MUST match the volume_context of the volume + // identified by `volume_id`. + VolumeContext map[string]string `protobuf:"bytes,2,rep,name=volume_context,json=volumeContext,proto3" json:"volume_context,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // The capabilities that the CO wants to check for the volume. This + // call SHALL return "confirmed" only if all the volume capabilities + // specified below are supported. This field is REQUIRED. + VolumeCapabilities []*VolumeCapability `protobuf:"bytes,3,rep,name=volume_capabilities,json=volumeCapabilities,proto3" json:"volume_capabilities,omitempty"` + // See CreateVolumeRequest.parameters. + // This field is OPTIONAL. + Parameters map[string]string `protobuf:"bytes,4,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Secrets required by plugin to complete volume validation request. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. + Secrets map[string]string `protobuf:"bytes,5,rep,name=secrets,proto3" json:"secrets,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ValidateVolumeCapabilitiesRequest) Reset() { *m = ValidateVolumeCapabilitiesRequest{} } +func (m *ValidateVolumeCapabilitiesRequest) String() string { return proto.CompactTextString(m) } +func (*ValidateVolumeCapabilitiesRequest) ProtoMessage() {} +func (*ValidateVolumeCapabilitiesRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{21} +} +func (m *ValidateVolumeCapabilitiesRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ValidateVolumeCapabilitiesRequest.Unmarshal(m, b) +} +func (m *ValidateVolumeCapabilitiesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ValidateVolumeCapabilitiesRequest.Marshal(b, m, deterministic) +} +func (dst *ValidateVolumeCapabilitiesRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ValidateVolumeCapabilitiesRequest.Merge(dst, src) +} +func (m *ValidateVolumeCapabilitiesRequest) XXX_Size() int { + return xxx_messageInfo_ValidateVolumeCapabilitiesRequest.Size(m) +} +func (m *ValidateVolumeCapabilitiesRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ValidateVolumeCapabilitiesRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ValidateVolumeCapabilitiesRequest proto.InternalMessageInfo + +func (m *ValidateVolumeCapabilitiesRequest) GetVolumeId() string { + if m != nil { + return m.VolumeId + } + return "" +} + +func (m *ValidateVolumeCapabilitiesRequest) GetVolumeContext() map[string]string { + if m != nil { + return m.VolumeContext + } + return nil +} + +func (m *ValidateVolumeCapabilitiesRequest) GetVolumeCapabilities() []*VolumeCapability { + if m != nil { + return m.VolumeCapabilities + } + return nil +} + +func (m *ValidateVolumeCapabilitiesRequest) GetParameters() map[string]string { + if m != nil { + return m.Parameters + } + return nil +} + +func (m *ValidateVolumeCapabilitiesRequest) GetSecrets() map[string]string { + if m != nil { + return m.Secrets + } + return nil +} + +type ValidateVolumeCapabilitiesResponse struct { + // Confirmed indicates to the CO the set of capabilities that the + // plugin has validated. This field SHALL only be set to a non-empty + // value for successful validation responses. + // For successful validation responses, the CO SHALL compare the + // fields of this message to the originally requested capabilities in + // order to guard against an older plugin reporting "valid" for newer + // capability fields that it does not yet understand. + // This field is OPTIONAL. + Confirmed *ValidateVolumeCapabilitiesResponse_Confirmed `protobuf:"bytes,1,opt,name=confirmed,proto3" json:"confirmed,omitempty"` + // Message to the CO if `confirmed` above is empty. This field is + // OPTIONAL. + // An empty string is equal to an unspecified field value. + Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ValidateVolumeCapabilitiesResponse) Reset() { *m = ValidateVolumeCapabilitiesResponse{} } +func (m *ValidateVolumeCapabilitiesResponse) String() string { return proto.CompactTextString(m) } +func (*ValidateVolumeCapabilitiesResponse) ProtoMessage() {} +func (*ValidateVolumeCapabilitiesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{22} +} +func (m *ValidateVolumeCapabilitiesResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ValidateVolumeCapabilitiesResponse.Unmarshal(m, b) +} +func (m *ValidateVolumeCapabilitiesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ValidateVolumeCapabilitiesResponse.Marshal(b, m, deterministic) +} +func (dst *ValidateVolumeCapabilitiesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ValidateVolumeCapabilitiesResponse.Merge(dst, src) +} +func (m *ValidateVolumeCapabilitiesResponse) XXX_Size() int { + return xxx_messageInfo_ValidateVolumeCapabilitiesResponse.Size(m) +} +func (m *ValidateVolumeCapabilitiesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ValidateVolumeCapabilitiesResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ValidateVolumeCapabilitiesResponse proto.InternalMessageInfo + +func (m *ValidateVolumeCapabilitiesResponse) GetConfirmed() *ValidateVolumeCapabilitiesResponse_Confirmed { + if m != nil { + return m.Confirmed + } + return nil +} + +func (m *ValidateVolumeCapabilitiesResponse) GetMessage() string { + if m != nil { + return m.Message + } + return "" +} + +type ValidateVolumeCapabilitiesResponse_Confirmed struct { + // Volume context validated by the plugin. + // This field is OPTIONAL. + VolumeContext map[string]string `protobuf:"bytes,1,rep,name=volume_context,json=volumeContext,proto3" json:"volume_context,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Volume capabilities supported by the plugin. + // This field is REQUIRED. + VolumeCapabilities []*VolumeCapability `protobuf:"bytes,2,rep,name=volume_capabilities,json=volumeCapabilities,proto3" json:"volume_capabilities,omitempty"` + // The volume creation parameters validated by the plugin. + // This field is OPTIONAL. + Parameters map[string]string `protobuf:"bytes,3,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ValidateVolumeCapabilitiesResponse_Confirmed) Reset() { + *m = ValidateVolumeCapabilitiesResponse_Confirmed{} +} +func (m *ValidateVolumeCapabilitiesResponse_Confirmed) String() string { + return proto.CompactTextString(m) +} +func (*ValidateVolumeCapabilitiesResponse_Confirmed) ProtoMessage() {} +func (*ValidateVolumeCapabilitiesResponse_Confirmed) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{22, 0} +} +func (m *ValidateVolumeCapabilitiesResponse_Confirmed) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ValidateVolumeCapabilitiesResponse_Confirmed.Unmarshal(m, b) +} +func (m *ValidateVolumeCapabilitiesResponse_Confirmed) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ValidateVolumeCapabilitiesResponse_Confirmed.Marshal(b, m, deterministic) +} +func (dst *ValidateVolumeCapabilitiesResponse_Confirmed) XXX_Merge(src proto.Message) { + xxx_messageInfo_ValidateVolumeCapabilitiesResponse_Confirmed.Merge(dst, src) +} +func (m *ValidateVolumeCapabilitiesResponse_Confirmed) XXX_Size() int { + return xxx_messageInfo_ValidateVolumeCapabilitiesResponse_Confirmed.Size(m) +} +func (m *ValidateVolumeCapabilitiesResponse_Confirmed) XXX_DiscardUnknown() { + xxx_messageInfo_ValidateVolumeCapabilitiesResponse_Confirmed.DiscardUnknown(m) +} + +var xxx_messageInfo_ValidateVolumeCapabilitiesResponse_Confirmed proto.InternalMessageInfo + +func (m *ValidateVolumeCapabilitiesResponse_Confirmed) GetVolumeContext() map[string]string { + if m != nil { + return m.VolumeContext + } + return nil +} + +func (m *ValidateVolumeCapabilitiesResponse_Confirmed) GetVolumeCapabilities() []*VolumeCapability { + if m != nil { + return m.VolumeCapabilities + } + return nil +} + +func (m *ValidateVolumeCapabilitiesResponse_Confirmed) GetParameters() map[string]string { + if m != nil { + return m.Parameters + } + return nil +} + +type ListVolumesRequest struct { + // If specified (non-zero value), the Plugin MUST NOT return more + // entries than this number in the response. If the actual number of + // entries is more than this number, the Plugin MUST set `next_token` + // in the response which can be used to get the next page of entries + // in the subsequent `ListVolumes` call. This field is OPTIONAL. If + // not specified (zero value), it means there is no restriction on the + // number of entries that can be returned. + // The value of this field MUST NOT be negative. + MaxEntries int32 `protobuf:"varint,1,opt,name=max_entries,json=maxEntries,proto3" json:"max_entries,omitempty"` + // A token to specify where to start paginating. Set this field to + // `next_token` returned by a previous `ListVolumes` call to get the + // next page of entries. This field is OPTIONAL. + // An empty string is equal to an unspecified field value. + StartingToken string `protobuf:"bytes,2,opt,name=starting_token,json=startingToken,proto3" json:"starting_token,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListVolumesRequest) Reset() { *m = ListVolumesRequest{} } +func (m *ListVolumesRequest) String() string { return proto.CompactTextString(m) } +func (*ListVolumesRequest) ProtoMessage() {} +func (*ListVolumesRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{23} +} +func (m *ListVolumesRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListVolumesRequest.Unmarshal(m, b) +} +func (m *ListVolumesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListVolumesRequest.Marshal(b, m, deterministic) +} +func (dst *ListVolumesRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListVolumesRequest.Merge(dst, src) +} +func (m *ListVolumesRequest) XXX_Size() int { + return xxx_messageInfo_ListVolumesRequest.Size(m) +} +func (m *ListVolumesRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ListVolumesRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ListVolumesRequest proto.InternalMessageInfo + +func (m *ListVolumesRequest) GetMaxEntries() int32 { + if m != nil { + return m.MaxEntries + } + return 0 +} + +func (m *ListVolumesRequest) GetStartingToken() string { + if m != nil { + return m.StartingToken + } + return "" +} + +type ListVolumesResponse struct { + Entries []*ListVolumesResponse_Entry `protobuf:"bytes,1,rep,name=entries,proto3" json:"entries,omitempty"` + // This token allows you to get the next page of entries for + // `ListVolumes` request. If the number of entries is larger than + // `max_entries`, use the `next_token` as a value for the + // `starting_token` field in the next `ListVolumes` request. This + // field is OPTIONAL. + // An empty string is equal to an unspecified field value. + NextToken string `protobuf:"bytes,2,opt,name=next_token,json=nextToken,proto3" json:"next_token,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListVolumesResponse) Reset() { *m = ListVolumesResponse{} } +func (m *ListVolumesResponse) String() string { return proto.CompactTextString(m) } +func (*ListVolumesResponse) ProtoMessage() {} +func (*ListVolumesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{24} +} +func (m *ListVolumesResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListVolumesResponse.Unmarshal(m, b) +} +func (m *ListVolumesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListVolumesResponse.Marshal(b, m, deterministic) +} +func (dst *ListVolumesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListVolumesResponse.Merge(dst, src) +} +func (m *ListVolumesResponse) XXX_Size() int { + return xxx_messageInfo_ListVolumesResponse.Size(m) +} +func (m *ListVolumesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ListVolumesResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ListVolumesResponse proto.InternalMessageInfo + +func (m *ListVolumesResponse) GetEntries() []*ListVolumesResponse_Entry { + if m != nil { + return m.Entries + } + return nil +} + +func (m *ListVolumesResponse) GetNextToken() string { + if m != nil { + return m.NextToken + } + return "" +} + +type ListVolumesResponse_Entry struct { + Volume *Volume `protobuf:"bytes,1,opt,name=volume,proto3" json:"volume,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListVolumesResponse_Entry) Reset() { *m = ListVolumesResponse_Entry{} } +func (m *ListVolumesResponse_Entry) String() string { return proto.CompactTextString(m) } +func (*ListVolumesResponse_Entry) ProtoMessage() {} +func (*ListVolumesResponse_Entry) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{24, 0} +} +func (m *ListVolumesResponse_Entry) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListVolumesResponse_Entry.Unmarshal(m, b) +} +func (m *ListVolumesResponse_Entry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListVolumesResponse_Entry.Marshal(b, m, deterministic) +} +func (dst *ListVolumesResponse_Entry) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListVolumesResponse_Entry.Merge(dst, src) +} +func (m *ListVolumesResponse_Entry) XXX_Size() int { + return xxx_messageInfo_ListVolumesResponse_Entry.Size(m) +} +func (m *ListVolumesResponse_Entry) XXX_DiscardUnknown() { + xxx_messageInfo_ListVolumesResponse_Entry.DiscardUnknown(m) +} + +var xxx_messageInfo_ListVolumesResponse_Entry proto.InternalMessageInfo + +func (m *ListVolumesResponse_Entry) GetVolume() *Volume { + if m != nil { + return m.Volume + } + return nil +} + +type GetCapacityRequest struct { + // If specified, the Plugin SHALL report the capacity of the storage + // that can be used to provision volumes that satisfy ALL of the + // specified `volume_capabilities`. These are the same + // `volume_capabilities` the CO will use in `CreateVolumeRequest`. + // This field is OPTIONAL. + VolumeCapabilities []*VolumeCapability `protobuf:"bytes,1,rep,name=volume_capabilities,json=volumeCapabilities,proto3" json:"volume_capabilities,omitempty"` + // If specified, the Plugin SHALL report the capacity of the storage + // that can be used to provision volumes with the given Plugin + // specific `parameters`. These are the same `parameters` the CO will + // use in `CreateVolumeRequest`. This field is OPTIONAL. + Parameters map[string]string `protobuf:"bytes,2,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // If specified, the Plugin SHALL report the capacity of the storage + // that can be used to provision volumes that in the specified + // `accessible_topology`. This is the same as the + // `accessible_topology` the CO returns in a `CreateVolumeResponse`. + // This field is OPTIONAL. This field SHALL NOT be set unless the + // plugin advertises the VOLUME_ACCESSIBILITY_CONSTRAINTS capability. + AccessibleTopology *Topology `protobuf:"bytes,3,opt,name=accessible_topology,json=accessibleTopology,proto3" json:"accessible_topology,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetCapacityRequest) Reset() { *m = GetCapacityRequest{} } +func (m *GetCapacityRequest) String() string { return proto.CompactTextString(m) } +func (*GetCapacityRequest) ProtoMessage() {} +func (*GetCapacityRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{25} +} +func (m *GetCapacityRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetCapacityRequest.Unmarshal(m, b) +} +func (m *GetCapacityRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetCapacityRequest.Marshal(b, m, deterministic) +} +func (dst *GetCapacityRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetCapacityRequest.Merge(dst, src) +} +func (m *GetCapacityRequest) XXX_Size() int { + return xxx_messageInfo_GetCapacityRequest.Size(m) +} +func (m *GetCapacityRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetCapacityRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetCapacityRequest proto.InternalMessageInfo + +func (m *GetCapacityRequest) GetVolumeCapabilities() []*VolumeCapability { + if m != nil { + return m.VolumeCapabilities + } + return nil +} + +func (m *GetCapacityRequest) GetParameters() map[string]string { + if m != nil { + return m.Parameters + } + return nil +} + +func (m *GetCapacityRequest) GetAccessibleTopology() *Topology { + if m != nil { + return m.AccessibleTopology + } + return nil +} + +type GetCapacityResponse struct { + // The available capacity, in bytes, of the storage that can be used + // to provision volumes. If `volume_capabilities` or `parameters` is + // specified in the request, the Plugin SHALL take those into + // consideration when calculating the available capacity of the + // storage. This field is REQUIRED. + // The value of this field MUST NOT be negative. + AvailableCapacity int64 `protobuf:"varint,1,opt,name=available_capacity,json=availableCapacity,proto3" json:"available_capacity,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetCapacityResponse) Reset() { *m = GetCapacityResponse{} } +func (m *GetCapacityResponse) String() string { return proto.CompactTextString(m) } +func (*GetCapacityResponse) ProtoMessage() {} +func (*GetCapacityResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{26} +} +func (m *GetCapacityResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetCapacityResponse.Unmarshal(m, b) +} +func (m *GetCapacityResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetCapacityResponse.Marshal(b, m, deterministic) +} +func (dst *GetCapacityResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetCapacityResponse.Merge(dst, src) +} +func (m *GetCapacityResponse) XXX_Size() int { + return xxx_messageInfo_GetCapacityResponse.Size(m) +} +func (m *GetCapacityResponse) XXX_DiscardUnknown() { + xxx_messageInfo_GetCapacityResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_GetCapacityResponse proto.InternalMessageInfo + +func (m *GetCapacityResponse) GetAvailableCapacity() int64 { + if m != nil { + return m.AvailableCapacity + } + return 0 +} + +type ControllerGetCapabilitiesRequest struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ControllerGetCapabilitiesRequest) Reset() { *m = ControllerGetCapabilitiesRequest{} } +func (m *ControllerGetCapabilitiesRequest) String() string { return proto.CompactTextString(m) } +func (*ControllerGetCapabilitiesRequest) ProtoMessage() {} +func (*ControllerGetCapabilitiesRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{27} +} +func (m *ControllerGetCapabilitiesRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ControllerGetCapabilitiesRequest.Unmarshal(m, b) +} +func (m *ControllerGetCapabilitiesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ControllerGetCapabilitiesRequest.Marshal(b, m, deterministic) +} +func (dst *ControllerGetCapabilitiesRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerGetCapabilitiesRequest.Merge(dst, src) +} +func (m *ControllerGetCapabilitiesRequest) XXX_Size() int { + return xxx_messageInfo_ControllerGetCapabilitiesRequest.Size(m) +} +func (m *ControllerGetCapabilitiesRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerGetCapabilitiesRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerGetCapabilitiesRequest proto.InternalMessageInfo + +type ControllerGetCapabilitiesResponse struct { + // All the capabilities that the controller service supports. This + // field is OPTIONAL. + Capabilities []*ControllerServiceCapability `protobuf:"bytes,1,rep,name=capabilities,proto3" json:"capabilities,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ControllerGetCapabilitiesResponse) Reset() { *m = ControllerGetCapabilitiesResponse{} } +func (m *ControllerGetCapabilitiesResponse) String() string { return proto.CompactTextString(m) } +func (*ControllerGetCapabilitiesResponse) ProtoMessage() {} +func (*ControllerGetCapabilitiesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{28} +} +func (m *ControllerGetCapabilitiesResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ControllerGetCapabilitiesResponse.Unmarshal(m, b) +} +func (m *ControllerGetCapabilitiesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ControllerGetCapabilitiesResponse.Marshal(b, m, deterministic) +} +func (dst *ControllerGetCapabilitiesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerGetCapabilitiesResponse.Merge(dst, src) +} +func (m *ControllerGetCapabilitiesResponse) XXX_Size() int { + return xxx_messageInfo_ControllerGetCapabilitiesResponse.Size(m) +} +func (m *ControllerGetCapabilitiesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerGetCapabilitiesResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerGetCapabilitiesResponse proto.InternalMessageInfo + +func (m *ControllerGetCapabilitiesResponse) GetCapabilities() []*ControllerServiceCapability { + if m != nil { + return m.Capabilities + } + return nil +} + +// Specifies a capability of the controller service. +type ControllerServiceCapability struct { + // Types that are valid to be assigned to Type: + // *ControllerServiceCapability_Rpc + Type isControllerServiceCapability_Type `protobuf_oneof:"type"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ControllerServiceCapability) Reset() { *m = ControllerServiceCapability{} } +func (m *ControllerServiceCapability) String() string { return proto.CompactTextString(m) } +func (*ControllerServiceCapability) ProtoMessage() {} +func (*ControllerServiceCapability) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{29} +} +func (m *ControllerServiceCapability) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ControllerServiceCapability.Unmarshal(m, b) +} +func (m *ControllerServiceCapability) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ControllerServiceCapability.Marshal(b, m, deterministic) +} +func (dst *ControllerServiceCapability) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerServiceCapability.Merge(dst, src) +} +func (m *ControllerServiceCapability) XXX_Size() int { + return xxx_messageInfo_ControllerServiceCapability.Size(m) +} +func (m *ControllerServiceCapability) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerServiceCapability.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerServiceCapability proto.InternalMessageInfo + +type isControllerServiceCapability_Type interface { + isControllerServiceCapability_Type() +} + +type ControllerServiceCapability_Rpc struct { + Rpc *ControllerServiceCapability_RPC `protobuf:"bytes,1,opt,name=rpc,proto3,oneof"` +} + +func (*ControllerServiceCapability_Rpc) isControllerServiceCapability_Type() {} + +func (m *ControllerServiceCapability) GetType() isControllerServiceCapability_Type { + if m != nil { + return m.Type + } + return nil +} + +func (m *ControllerServiceCapability) GetRpc() *ControllerServiceCapability_RPC { + if x, ok := m.GetType().(*ControllerServiceCapability_Rpc); ok { + return x.Rpc + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*ControllerServiceCapability) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _ControllerServiceCapability_OneofMarshaler, _ControllerServiceCapability_OneofUnmarshaler, _ControllerServiceCapability_OneofSizer, []interface{}{ + (*ControllerServiceCapability_Rpc)(nil), + } +} + +func _ControllerServiceCapability_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*ControllerServiceCapability) + // type + switch x := m.Type.(type) { + case *ControllerServiceCapability_Rpc: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Rpc); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("ControllerServiceCapability.Type has unexpected type %T", x) + } + return nil +} + +func _ControllerServiceCapability_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*ControllerServiceCapability) + switch tag { + case 1: // type.rpc + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(ControllerServiceCapability_RPC) + err := b.DecodeMessage(msg) + m.Type = &ControllerServiceCapability_Rpc{msg} + return true, err + default: + return false, nil + } +} + +func _ControllerServiceCapability_OneofSizer(msg proto.Message) (n int) { + m := msg.(*ControllerServiceCapability) + // type + switch x := m.Type.(type) { + case *ControllerServiceCapability_Rpc: + s := proto.Size(x.Rpc) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +type ControllerServiceCapability_RPC struct { + Type ControllerServiceCapability_RPC_Type `protobuf:"varint,1,opt,name=type,proto3,enum=csi.v1.ControllerServiceCapability_RPC_Type" json:"type,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ControllerServiceCapability_RPC) Reset() { *m = ControllerServiceCapability_RPC{} } +func (m *ControllerServiceCapability_RPC) String() string { return proto.CompactTextString(m) } +func (*ControllerServiceCapability_RPC) ProtoMessage() {} +func (*ControllerServiceCapability_RPC) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{29, 0} +} +func (m *ControllerServiceCapability_RPC) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ControllerServiceCapability_RPC.Unmarshal(m, b) +} +func (m *ControllerServiceCapability_RPC) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ControllerServiceCapability_RPC.Marshal(b, m, deterministic) +} +func (dst *ControllerServiceCapability_RPC) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerServiceCapability_RPC.Merge(dst, src) +} +func (m *ControllerServiceCapability_RPC) XXX_Size() int { + return xxx_messageInfo_ControllerServiceCapability_RPC.Size(m) +} +func (m *ControllerServiceCapability_RPC) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerServiceCapability_RPC.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerServiceCapability_RPC proto.InternalMessageInfo + +func (m *ControllerServiceCapability_RPC) GetType() ControllerServiceCapability_RPC_Type { + if m != nil { + return m.Type + } + return ControllerServiceCapability_RPC_UNKNOWN +} + +type CreateSnapshotRequest struct { + // The ID of the source volume to be snapshotted. + // This field is REQUIRED. + SourceVolumeId string `protobuf:"bytes,1,opt,name=source_volume_id,json=sourceVolumeId,proto3" json:"source_volume_id,omitempty"` + // The suggested name for the snapshot. This field is REQUIRED for + // idempotency. + // Any Unicode string that conforms to the length limit is allowed + // except those containing the following banned characters: + // U+0000-U+0008, U+000B, U+000C, U+000E-U+001F, U+007F-U+009F. + // (These are control characters other than commonly used whitespace.) + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + // Secrets required by plugin to complete snapshot creation request. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. + Secrets map[string]string `protobuf:"bytes,3,rep,name=secrets,proto3" json:"secrets,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Plugin specific parameters passed in as opaque key-value pairs. + // This field is OPTIONAL. The Plugin is responsible for parsing and + // validating these parameters. COs will treat these as opaque. + // Use cases for opaque parameters: + // - Specify a policy to automatically clean up the snapshot. + // - Specify an expiration date for the snapshot. + // - Specify whether the snapshot is readonly or read/write. + // - Specify if the snapshot should be replicated to some place. + // - Specify primary or secondary for replication systems that + // support snapshotting only on primary. + Parameters map[string]string `protobuf:"bytes,4,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CreateSnapshotRequest) Reset() { *m = CreateSnapshotRequest{} } +func (m *CreateSnapshotRequest) String() string { return proto.CompactTextString(m) } +func (*CreateSnapshotRequest) ProtoMessage() {} +func (*CreateSnapshotRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{30} +} +func (m *CreateSnapshotRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreateSnapshotRequest.Unmarshal(m, b) +} +func (m *CreateSnapshotRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreateSnapshotRequest.Marshal(b, m, deterministic) +} +func (dst *CreateSnapshotRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateSnapshotRequest.Merge(dst, src) +} +func (m *CreateSnapshotRequest) XXX_Size() int { + return xxx_messageInfo_CreateSnapshotRequest.Size(m) +} +func (m *CreateSnapshotRequest) XXX_DiscardUnknown() { + xxx_messageInfo_CreateSnapshotRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_CreateSnapshotRequest proto.InternalMessageInfo + +func (m *CreateSnapshotRequest) GetSourceVolumeId() string { + if m != nil { + return m.SourceVolumeId + } + return "" +} + +func (m *CreateSnapshotRequest) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *CreateSnapshotRequest) GetSecrets() map[string]string { + if m != nil { + return m.Secrets + } + return nil +} + +func (m *CreateSnapshotRequest) GetParameters() map[string]string { + if m != nil { + return m.Parameters + } + return nil +} + +type CreateSnapshotResponse struct { + // Contains all attributes of the newly created snapshot that are + // relevant to the CO along with information required by the Plugin + // to uniquely identify the snapshot. This field is REQUIRED. + Snapshot *Snapshot `protobuf:"bytes,1,opt,name=snapshot,proto3" json:"snapshot,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CreateSnapshotResponse) Reset() { *m = CreateSnapshotResponse{} } +func (m *CreateSnapshotResponse) String() string { return proto.CompactTextString(m) } +func (*CreateSnapshotResponse) ProtoMessage() {} +func (*CreateSnapshotResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{31} +} +func (m *CreateSnapshotResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreateSnapshotResponse.Unmarshal(m, b) +} +func (m *CreateSnapshotResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreateSnapshotResponse.Marshal(b, m, deterministic) +} +func (dst *CreateSnapshotResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateSnapshotResponse.Merge(dst, src) +} +func (m *CreateSnapshotResponse) XXX_Size() int { + return xxx_messageInfo_CreateSnapshotResponse.Size(m) +} +func (m *CreateSnapshotResponse) XXX_DiscardUnknown() { + xxx_messageInfo_CreateSnapshotResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_CreateSnapshotResponse proto.InternalMessageInfo + +func (m *CreateSnapshotResponse) GetSnapshot() *Snapshot { + if m != nil { + return m.Snapshot + } + return nil +} + +// Information about a specific snapshot. +type Snapshot struct { + // This is the complete size of the snapshot in bytes. The purpose of + // this field is to give CO guidance on how much space is needed to + // create a volume from this snapshot. The size of the volume MUST NOT + // be less than the size of the source snapshot. This field is + // OPTIONAL. If this field is not set, it indicates that this size is + // unknown. The value of this field MUST NOT be negative and a size of + // zero means it is unspecified. + SizeBytes int64 `protobuf:"varint,1,opt,name=size_bytes,json=sizeBytes,proto3" json:"size_bytes,omitempty"` + // The identifier for this snapshot, generated by the plugin. + // This field is REQUIRED. + // This field MUST contain enough information to uniquely identify + // this specific snapshot vs all other snapshots supported by this + // plugin. + // This field SHALL be used by the CO in subsequent calls to refer to + // this snapshot. + // The SP is NOT responsible for global uniqueness of snapshot_id + // across multiple SPs. + SnapshotId string `protobuf:"bytes,2,opt,name=snapshot_id,json=snapshotId,proto3" json:"snapshot_id,omitempty"` + // Identity information for the source volume. Note that creating a + // snapshot from a snapshot is not supported here so the source has to + // be a volume. This field is REQUIRED. + SourceVolumeId string `protobuf:"bytes,3,opt,name=source_volume_id,json=sourceVolumeId,proto3" json:"source_volume_id,omitempty"` + // Timestamp when the point-in-time snapshot is taken on the storage + // system. This field is REQUIRED. + CreationTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=creation_time,json=creationTime,proto3" json:"creation_time,omitempty"` + // Indicates if a snapshot is ready to use as a + // `volume_content_source` in a `CreateVolumeRequest`. The default + // value is false. This field is REQUIRED. + ReadyToUse bool `protobuf:"varint,5,opt,name=ready_to_use,json=readyToUse,proto3" json:"ready_to_use,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Snapshot) Reset() { *m = Snapshot{} } +func (m *Snapshot) String() string { return proto.CompactTextString(m) } +func (*Snapshot) ProtoMessage() {} +func (*Snapshot) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{32} +} +func (m *Snapshot) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Snapshot.Unmarshal(m, b) +} +func (m *Snapshot) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Snapshot.Marshal(b, m, deterministic) +} +func (dst *Snapshot) XXX_Merge(src proto.Message) { + xxx_messageInfo_Snapshot.Merge(dst, src) +} +func (m *Snapshot) XXX_Size() int { + return xxx_messageInfo_Snapshot.Size(m) +} +func (m *Snapshot) XXX_DiscardUnknown() { + xxx_messageInfo_Snapshot.DiscardUnknown(m) +} + +var xxx_messageInfo_Snapshot proto.InternalMessageInfo + +func (m *Snapshot) GetSizeBytes() int64 { + if m != nil { + return m.SizeBytes + } + return 0 +} + +func (m *Snapshot) GetSnapshotId() string { + if m != nil { + return m.SnapshotId + } + return "" +} + +func (m *Snapshot) GetSourceVolumeId() string { + if m != nil { + return m.SourceVolumeId + } + return "" +} + +func (m *Snapshot) GetCreationTime() *timestamp.Timestamp { + if m != nil { + return m.CreationTime + } + return nil +} + +func (m *Snapshot) GetReadyToUse() bool { + if m != nil { + return m.ReadyToUse + } + return false +} + +type DeleteSnapshotRequest struct { + // The ID of the snapshot to be deleted. + // This field is REQUIRED. + SnapshotId string `protobuf:"bytes,1,opt,name=snapshot_id,json=snapshotId,proto3" json:"snapshot_id,omitempty"` + // Secrets required by plugin to complete snapshot deletion request. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. + Secrets map[string]string `protobuf:"bytes,2,rep,name=secrets,proto3" json:"secrets,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DeleteSnapshotRequest) Reset() { *m = DeleteSnapshotRequest{} } +func (m *DeleteSnapshotRequest) String() string { return proto.CompactTextString(m) } +func (*DeleteSnapshotRequest) ProtoMessage() {} +func (*DeleteSnapshotRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{33} +} +func (m *DeleteSnapshotRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteSnapshotRequest.Unmarshal(m, b) +} +func (m *DeleteSnapshotRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteSnapshotRequest.Marshal(b, m, deterministic) +} +func (dst *DeleteSnapshotRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteSnapshotRequest.Merge(dst, src) +} +func (m *DeleteSnapshotRequest) XXX_Size() int { + return xxx_messageInfo_DeleteSnapshotRequest.Size(m) +} +func (m *DeleteSnapshotRequest) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteSnapshotRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_DeleteSnapshotRequest proto.InternalMessageInfo + +func (m *DeleteSnapshotRequest) GetSnapshotId() string { + if m != nil { + return m.SnapshotId + } + return "" +} + +func (m *DeleteSnapshotRequest) GetSecrets() map[string]string { + if m != nil { + return m.Secrets + } + return nil +} + +type DeleteSnapshotResponse struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DeleteSnapshotResponse) Reset() { *m = DeleteSnapshotResponse{} } +func (m *DeleteSnapshotResponse) String() string { return proto.CompactTextString(m) } +func (*DeleteSnapshotResponse) ProtoMessage() {} +func (*DeleteSnapshotResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{34} +} +func (m *DeleteSnapshotResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteSnapshotResponse.Unmarshal(m, b) +} +func (m *DeleteSnapshotResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteSnapshotResponse.Marshal(b, m, deterministic) +} +func (dst *DeleteSnapshotResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteSnapshotResponse.Merge(dst, src) +} +func (m *DeleteSnapshotResponse) XXX_Size() int { + return xxx_messageInfo_DeleteSnapshotResponse.Size(m) +} +func (m *DeleteSnapshotResponse) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteSnapshotResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_DeleteSnapshotResponse proto.InternalMessageInfo + +// List all snapshots on the storage system regardless of how they were +// created. +type ListSnapshotsRequest struct { + // If specified (non-zero value), the Plugin MUST NOT return more + // entries than this number in the response. If the actual number of + // entries is more than this number, the Plugin MUST set `next_token` + // in the response which can be used to get the next page of entries + // in the subsequent `ListSnapshots` call. This field is OPTIONAL. If + // not specified (zero value), it means there is no restriction on the + // number of entries that can be returned. + // The value of this field MUST NOT be negative. + MaxEntries int32 `protobuf:"varint,1,opt,name=max_entries,json=maxEntries,proto3" json:"max_entries,omitempty"` + // A token to specify where to start paginating. Set this field to + // `next_token` returned by a previous `ListSnapshots` call to get the + // next page of entries. This field is OPTIONAL. + // An empty string is equal to an unspecified field value. + StartingToken string `protobuf:"bytes,2,opt,name=starting_token,json=startingToken,proto3" json:"starting_token,omitempty"` + // Identity information for the source volume. This field is OPTIONAL. + // It can be used to list snapshots by volume. + SourceVolumeId string `protobuf:"bytes,3,opt,name=source_volume_id,json=sourceVolumeId,proto3" json:"source_volume_id,omitempty"` + // Identity information for a specific snapshot. This field is + // OPTIONAL. It can be used to list only a specific snapshot. + // ListSnapshots will return with current snapshot information + // and will not block if the snapshot is being processed after + // it is cut. + SnapshotId string `protobuf:"bytes,4,opt,name=snapshot_id,json=snapshotId,proto3" json:"snapshot_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListSnapshotsRequest) Reset() { *m = ListSnapshotsRequest{} } +func (m *ListSnapshotsRequest) String() string { return proto.CompactTextString(m) } +func (*ListSnapshotsRequest) ProtoMessage() {} +func (*ListSnapshotsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{35} +} +func (m *ListSnapshotsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListSnapshotsRequest.Unmarshal(m, b) +} +func (m *ListSnapshotsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListSnapshotsRequest.Marshal(b, m, deterministic) +} +func (dst *ListSnapshotsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListSnapshotsRequest.Merge(dst, src) +} +func (m *ListSnapshotsRequest) XXX_Size() int { + return xxx_messageInfo_ListSnapshotsRequest.Size(m) +} +func (m *ListSnapshotsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ListSnapshotsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ListSnapshotsRequest proto.InternalMessageInfo + +func (m *ListSnapshotsRequest) GetMaxEntries() int32 { + if m != nil { + return m.MaxEntries + } + return 0 +} + +func (m *ListSnapshotsRequest) GetStartingToken() string { + if m != nil { + return m.StartingToken + } + return "" +} + +func (m *ListSnapshotsRequest) GetSourceVolumeId() string { + if m != nil { + return m.SourceVolumeId + } + return "" +} + +func (m *ListSnapshotsRequest) GetSnapshotId() string { + if m != nil { + return m.SnapshotId + } + return "" +} + +type ListSnapshotsResponse struct { + Entries []*ListSnapshotsResponse_Entry `protobuf:"bytes,1,rep,name=entries,proto3" json:"entries,omitempty"` + // This token allows you to get the next page of entries for + // `ListSnapshots` request. If the number of entries is larger than + // `max_entries`, use the `next_token` as a value for the + // `starting_token` field in the next `ListSnapshots` request. This + // field is OPTIONAL. + // An empty string is equal to an unspecified field value. + NextToken string `protobuf:"bytes,2,opt,name=next_token,json=nextToken,proto3" json:"next_token,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListSnapshotsResponse) Reset() { *m = ListSnapshotsResponse{} } +func (m *ListSnapshotsResponse) String() string { return proto.CompactTextString(m) } +func (*ListSnapshotsResponse) ProtoMessage() {} +func (*ListSnapshotsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{36} +} +func (m *ListSnapshotsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListSnapshotsResponse.Unmarshal(m, b) +} +func (m *ListSnapshotsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListSnapshotsResponse.Marshal(b, m, deterministic) +} +func (dst *ListSnapshotsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListSnapshotsResponse.Merge(dst, src) +} +func (m *ListSnapshotsResponse) XXX_Size() int { + return xxx_messageInfo_ListSnapshotsResponse.Size(m) +} +func (m *ListSnapshotsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ListSnapshotsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ListSnapshotsResponse proto.InternalMessageInfo + +func (m *ListSnapshotsResponse) GetEntries() []*ListSnapshotsResponse_Entry { + if m != nil { + return m.Entries + } + return nil +} + +func (m *ListSnapshotsResponse) GetNextToken() string { + if m != nil { + return m.NextToken + } + return "" +} + +type ListSnapshotsResponse_Entry struct { + Snapshot *Snapshot `protobuf:"bytes,1,opt,name=snapshot,proto3" json:"snapshot,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListSnapshotsResponse_Entry) Reset() { *m = ListSnapshotsResponse_Entry{} } +func (m *ListSnapshotsResponse_Entry) String() string { return proto.CompactTextString(m) } +func (*ListSnapshotsResponse_Entry) ProtoMessage() {} +func (*ListSnapshotsResponse_Entry) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{36, 0} +} +func (m *ListSnapshotsResponse_Entry) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListSnapshotsResponse_Entry.Unmarshal(m, b) +} +func (m *ListSnapshotsResponse_Entry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListSnapshotsResponse_Entry.Marshal(b, m, deterministic) +} +func (dst *ListSnapshotsResponse_Entry) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListSnapshotsResponse_Entry.Merge(dst, src) +} +func (m *ListSnapshotsResponse_Entry) XXX_Size() int { + return xxx_messageInfo_ListSnapshotsResponse_Entry.Size(m) +} +func (m *ListSnapshotsResponse_Entry) XXX_DiscardUnknown() { + xxx_messageInfo_ListSnapshotsResponse_Entry.DiscardUnknown(m) +} + +var xxx_messageInfo_ListSnapshotsResponse_Entry proto.InternalMessageInfo + +func (m *ListSnapshotsResponse_Entry) GetSnapshot() *Snapshot { + if m != nil { + return m.Snapshot + } + return nil +} + +type NodeStageVolumeRequest struct { + // The ID of the volume to publish. This field is REQUIRED. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` + // The CO SHALL set this field to the value returned by + // `ControllerPublishVolume` if the corresponding Controller Plugin + // has `PUBLISH_UNPUBLISH_VOLUME` controller capability, and SHALL be + // left unset if the corresponding Controller Plugin does not have + // this capability. This is an OPTIONAL field. + PublishContext map[string]string `protobuf:"bytes,2,rep,name=publish_context,json=publishContext,proto3" json:"publish_context,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // The path to which the volume MAY be staged. It MUST be an + // absolute path in the root filesystem of the process serving this + // request, and MUST be a directory. The CO SHALL ensure that there + // is only one `staging_target_path` per volume. The CO SHALL ensure + // that the path is directory and that the process serving the + // request has `read` and `write` permission to that directory. The + // CO SHALL be responsible for creating the directory if it does not + // exist. + // This is a REQUIRED field. + StagingTargetPath string `protobuf:"bytes,3,opt,name=staging_target_path,json=stagingTargetPath,proto3" json:"staging_target_path,omitempty"` + // Volume capability describing how the CO intends to use this volume. + // SP MUST ensure the CO can use the staged volume as described. + // Otherwise SP MUST return the appropriate gRPC error code. + // This is a REQUIRED field. + VolumeCapability *VolumeCapability `protobuf:"bytes,4,opt,name=volume_capability,json=volumeCapability,proto3" json:"volume_capability,omitempty"` + // Secrets required by plugin to complete node stage volume request. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. + Secrets map[string]string `protobuf:"bytes,5,rep,name=secrets,proto3" json:"secrets,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Volume context as returned by CO in CreateVolumeRequest. This field + // is OPTIONAL and MUST match the volume_context of the volume + // identified by `volume_id`. + VolumeContext map[string]string `protobuf:"bytes,6,rep,name=volume_context,json=volumeContext,proto3" json:"volume_context,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeStageVolumeRequest) Reset() { *m = NodeStageVolumeRequest{} } +func (m *NodeStageVolumeRequest) String() string { return proto.CompactTextString(m) } +func (*NodeStageVolumeRequest) ProtoMessage() {} +func (*NodeStageVolumeRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{37} +} +func (m *NodeStageVolumeRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeStageVolumeRequest.Unmarshal(m, b) +} +func (m *NodeStageVolumeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeStageVolumeRequest.Marshal(b, m, deterministic) +} +func (dst *NodeStageVolumeRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeStageVolumeRequest.Merge(dst, src) +} +func (m *NodeStageVolumeRequest) XXX_Size() int { + return xxx_messageInfo_NodeStageVolumeRequest.Size(m) +} +func (m *NodeStageVolumeRequest) XXX_DiscardUnknown() { + xxx_messageInfo_NodeStageVolumeRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeStageVolumeRequest proto.InternalMessageInfo + +func (m *NodeStageVolumeRequest) GetVolumeId() string { + if m != nil { + return m.VolumeId + } + return "" +} + +func (m *NodeStageVolumeRequest) GetPublishContext() map[string]string { + if m != nil { + return m.PublishContext + } + return nil +} + +func (m *NodeStageVolumeRequest) GetStagingTargetPath() string { + if m != nil { + return m.StagingTargetPath + } + return "" +} + +func (m *NodeStageVolumeRequest) GetVolumeCapability() *VolumeCapability { + if m != nil { + return m.VolumeCapability + } + return nil +} + +func (m *NodeStageVolumeRequest) GetSecrets() map[string]string { + if m != nil { + return m.Secrets + } + return nil +} + +func (m *NodeStageVolumeRequest) GetVolumeContext() map[string]string { + if m != nil { + return m.VolumeContext + } + return nil +} + +type NodeStageVolumeResponse struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeStageVolumeResponse) Reset() { *m = NodeStageVolumeResponse{} } +func (m *NodeStageVolumeResponse) String() string { return proto.CompactTextString(m) } +func (*NodeStageVolumeResponse) ProtoMessage() {} +func (*NodeStageVolumeResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{38} +} +func (m *NodeStageVolumeResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeStageVolumeResponse.Unmarshal(m, b) +} +func (m *NodeStageVolumeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeStageVolumeResponse.Marshal(b, m, deterministic) +} +func (dst *NodeStageVolumeResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeStageVolumeResponse.Merge(dst, src) +} +func (m *NodeStageVolumeResponse) XXX_Size() int { + return xxx_messageInfo_NodeStageVolumeResponse.Size(m) +} +func (m *NodeStageVolumeResponse) XXX_DiscardUnknown() { + xxx_messageInfo_NodeStageVolumeResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeStageVolumeResponse proto.InternalMessageInfo + +type NodeUnstageVolumeRequest struct { + // The ID of the volume. This field is REQUIRED. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` + // The path at which the volume was staged. It MUST be an absolute + // path in the root filesystem of the process serving this request. + // This is a REQUIRED field. + StagingTargetPath string `protobuf:"bytes,2,opt,name=staging_target_path,json=stagingTargetPath,proto3" json:"staging_target_path,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeUnstageVolumeRequest) Reset() { *m = NodeUnstageVolumeRequest{} } +func (m *NodeUnstageVolumeRequest) String() string { return proto.CompactTextString(m) } +func (*NodeUnstageVolumeRequest) ProtoMessage() {} +func (*NodeUnstageVolumeRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{39} +} +func (m *NodeUnstageVolumeRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeUnstageVolumeRequest.Unmarshal(m, b) +} +func (m *NodeUnstageVolumeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeUnstageVolumeRequest.Marshal(b, m, deterministic) +} +func (dst *NodeUnstageVolumeRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeUnstageVolumeRequest.Merge(dst, src) +} +func (m *NodeUnstageVolumeRequest) XXX_Size() int { + return xxx_messageInfo_NodeUnstageVolumeRequest.Size(m) +} +func (m *NodeUnstageVolumeRequest) XXX_DiscardUnknown() { + xxx_messageInfo_NodeUnstageVolumeRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeUnstageVolumeRequest proto.InternalMessageInfo + +func (m *NodeUnstageVolumeRequest) GetVolumeId() string { + if m != nil { + return m.VolumeId + } + return "" +} + +func (m *NodeUnstageVolumeRequest) GetStagingTargetPath() string { + if m != nil { + return m.StagingTargetPath + } + return "" +} + +type NodeUnstageVolumeResponse struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeUnstageVolumeResponse) Reset() { *m = NodeUnstageVolumeResponse{} } +func (m *NodeUnstageVolumeResponse) String() string { return proto.CompactTextString(m) } +func (*NodeUnstageVolumeResponse) ProtoMessage() {} +func (*NodeUnstageVolumeResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{40} +} +func (m *NodeUnstageVolumeResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeUnstageVolumeResponse.Unmarshal(m, b) +} +func (m *NodeUnstageVolumeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeUnstageVolumeResponse.Marshal(b, m, deterministic) +} +func (dst *NodeUnstageVolumeResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeUnstageVolumeResponse.Merge(dst, src) +} +func (m *NodeUnstageVolumeResponse) XXX_Size() int { + return xxx_messageInfo_NodeUnstageVolumeResponse.Size(m) +} +func (m *NodeUnstageVolumeResponse) XXX_DiscardUnknown() { + xxx_messageInfo_NodeUnstageVolumeResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeUnstageVolumeResponse proto.InternalMessageInfo + +type NodePublishVolumeRequest struct { + // The ID of the volume to publish. This field is REQUIRED. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` + // The CO SHALL set this field to the value returned by + // `ControllerPublishVolume` if the corresponding Controller Plugin + // has `PUBLISH_UNPUBLISH_VOLUME` controller capability, and SHALL be + // left unset if the corresponding Controller Plugin does not have + // this capability. This is an OPTIONAL field. + PublishContext map[string]string `protobuf:"bytes,2,rep,name=publish_context,json=publishContext,proto3" json:"publish_context,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // The path to which the volume was staged by `NodeStageVolume`. + // It MUST be an absolute path in the root filesystem of the process + // serving this request. + // It MUST be set if the Node Plugin implements the + // `STAGE_UNSTAGE_VOLUME` node capability. + // This is an OPTIONAL field. + StagingTargetPath string `protobuf:"bytes,3,opt,name=staging_target_path,json=stagingTargetPath,proto3" json:"staging_target_path,omitempty"` + // The path to which the volume will be published. It MUST be an + // absolute path in the root filesystem of the process serving this + // request. The CO SHALL ensure uniqueness of target_path per volume. + // The CO SHALL ensure that the parent directory of this path exists + // and that the process serving the request has `read` and `write` + // permissions to that parent directory. + // For volumes with an access type of block, the SP SHALL place the + // block device at target_path. + // For volumes with an access type of mount, the SP SHALL place the + // mounted directory at target_path. + // Creation of target_path is the responsibility of the SP. + // This is a REQUIRED field. + TargetPath string `protobuf:"bytes,4,opt,name=target_path,json=targetPath,proto3" json:"target_path,omitempty"` + // Volume capability describing how the CO intends to use this volume. + // SP MUST ensure the CO can use the published volume as described. + // Otherwise SP MUST return the appropriate gRPC error code. + // This is a REQUIRED field. + VolumeCapability *VolumeCapability `protobuf:"bytes,5,opt,name=volume_capability,json=volumeCapability,proto3" json:"volume_capability,omitempty"` + // Indicates SP MUST publish the volume in readonly mode. + // This field is REQUIRED. + Readonly bool `protobuf:"varint,6,opt,name=readonly,proto3" json:"readonly,omitempty"` + // Secrets required by plugin to complete node publish volume request. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. + Secrets map[string]string `protobuf:"bytes,7,rep,name=secrets,proto3" json:"secrets,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Volume context as returned by CO in CreateVolumeRequest. This field + // is OPTIONAL and MUST match the volume_context of the volume + // identified by `volume_id`. + VolumeContext map[string]string `protobuf:"bytes,8,rep,name=volume_context,json=volumeContext,proto3" json:"volume_context,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodePublishVolumeRequest) Reset() { *m = NodePublishVolumeRequest{} } +func (m *NodePublishVolumeRequest) String() string { return proto.CompactTextString(m) } +func (*NodePublishVolumeRequest) ProtoMessage() {} +func (*NodePublishVolumeRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{41} +} +func (m *NodePublishVolumeRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodePublishVolumeRequest.Unmarshal(m, b) +} +func (m *NodePublishVolumeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodePublishVolumeRequest.Marshal(b, m, deterministic) +} +func (dst *NodePublishVolumeRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodePublishVolumeRequest.Merge(dst, src) +} +func (m *NodePublishVolumeRequest) XXX_Size() int { + return xxx_messageInfo_NodePublishVolumeRequest.Size(m) +} +func (m *NodePublishVolumeRequest) XXX_DiscardUnknown() { + xxx_messageInfo_NodePublishVolumeRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_NodePublishVolumeRequest proto.InternalMessageInfo + +func (m *NodePublishVolumeRequest) GetVolumeId() string { + if m != nil { + return m.VolumeId + } + return "" +} + +func (m *NodePublishVolumeRequest) GetPublishContext() map[string]string { + if m != nil { + return m.PublishContext + } + return nil +} + +func (m *NodePublishVolumeRequest) GetStagingTargetPath() string { + if m != nil { + return m.StagingTargetPath + } + return "" +} + +func (m *NodePublishVolumeRequest) GetTargetPath() string { + if m != nil { + return m.TargetPath + } + return "" +} + +func (m *NodePublishVolumeRequest) GetVolumeCapability() *VolumeCapability { + if m != nil { + return m.VolumeCapability + } + return nil +} + +func (m *NodePublishVolumeRequest) GetReadonly() bool { + if m != nil { + return m.Readonly + } + return false +} + +func (m *NodePublishVolumeRequest) GetSecrets() map[string]string { + if m != nil { + return m.Secrets + } + return nil +} + +func (m *NodePublishVolumeRequest) GetVolumeContext() map[string]string { + if m != nil { + return m.VolumeContext + } + return nil +} + +type NodePublishVolumeResponse struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodePublishVolumeResponse) Reset() { *m = NodePublishVolumeResponse{} } +func (m *NodePublishVolumeResponse) String() string { return proto.CompactTextString(m) } +func (*NodePublishVolumeResponse) ProtoMessage() {} +func (*NodePublishVolumeResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{42} +} +func (m *NodePublishVolumeResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodePublishVolumeResponse.Unmarshal(m, b) +} +func (m *NodePublishVolumeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodePublishVolumeResponse.Marshal(b, m, deterministic) +} +func (dst *NodePublishVolumeResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodePublishVolumeResponse.Merge(dst, src) +} +func (m *NodePublishVolumeResponse) XXX_Size() int { + return xxx_messageInfo_NodePublishVolumeResponse.Size(m) +} +func (m *NodePublishVolumeResponse) XXX_DiscardUnknown() { + xxx_messageInfo_NodePublishVolumeResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_NodePublishVolumeResponse proto.InternalMessageInfo + +type NodeUnpublishVolumeRequest struct { + // The ID of the volume. This field is REQUIRED. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` + // The path at which the volume was published. It MUST be an absolute + // path in the root filesystem of the process serving this request. + // The SP MUST delete the file or directory it created at this path. + // This is a REQUIRED field. + TargetPath string `protobuf:"bytes,2,opt,name=target_path,json=targetPath,proto3" json:"target_path,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeUnpublishVolumeRequest) Reset() { *m = NodeUnpublishVolumeRequest{} } +func (m *NodeUnpublishVolumeRequest) String() string { return proto.CompactTextString(m) } +func (*NodeUnpublishVolumeRequest) ProtoMessage() {} +func (*NodeUnpublishVolumeRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{43} +} +func (m *NodeUnpublishVolumeRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeUnpublishVolumeRequest.Unmarshal(m, b) +} +func (m *NodeUnpublishVolumeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeUnpublishVolumeRequest.Marshal(b, m, deterministic) +} +func (dst *NodeUnpublishVolumeRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeUnpublishVolumeRequest.Merge(dst, src) +} +func (m *NodeUnpublishVolumeRequest) XXX_Size() int { + return xxx_messageInfo_NodeUnpublishVolumeRequest.Size(m) +} +func (m *NodeUnpublishVolumeRequest) XXX_DiscardUnknown() { + xxx_messageInfo_NodeUnpublishVolumeRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeUnpublishVolumeRequest proto.InternalMessageInfo + +func (m *NodeUnpublishVolumeRequest) GetVolumeId() string { + if m != nil { + return m.VolumeId + } + return "" +} + +func (m *NodeUnpublishVolumeRequest) GetTargetPath() string { + if m != nil { + return m.TargetPath + } + return "" +} + +type NodeUnpublishVolumeResponse struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeUnpublishVolumeResponse) Reset() { *m = NodeUnpublishVolumeResponse{} } +func (m *NodeUnpublishVolumeResponse) String() string { return proto.CompactTextString(m) } +func (*NodeUnpublishVolumeResponse) ProtoMessage() {} +func (*NodeUnpublishVolumeResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{44} +} +func (m *NodeUnpublishVolumeResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeUnpublishVolumeResponse.Unmarshal(m, b) +} +func (m *NodeUnpublishVolumeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeUnpublishVolumeResponse.Marshal(b, m, deterministic) +} +func (dst *NodeUnpublishVolumeResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeUnpublishVolumeResponse.Merge(dst, src) +} +func (m *NodeUnpublishVolumeResponse) XXX_Size() int { + return xxx_messageInfo_NodeUnpublishVolumeResponse.Size(m) +} +func (m *NodeUnpublishVolumeResponse) XXX_DiscardUnknown() { + xxx_messageInfo_NodeUnpublishVolumeResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeUnpublishVolumeResponse proto.InternalMessageInfo + +type NodeGetVolumeStatsRequest struct { + // The ID of the volume. This field is REQUIRED. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` + // It can be any valid path where volume was previously + // staged or published. + // It MUST be an absolute path in the root filesystem of + // the process serving this request. + // This is a REQUIRED field. + VolumePath string `protobuf:"bytes,2,opt,name=volume_path,json=volumePath,proto3" json:"volume_path,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeGetVolumeStatsRequest) Reset() { *m = NodeGetVolumeStatsRequest{} } +func (m *NodeGetVolumeStatsRequest) String() string { return proto.CompactTextString(m) } +func (*NodeGetVolumeStatsRequest) ProtoMessage() {} +func (*NodeGetVolumeStatsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{45} +} +func (m *NodeGetVolumeStatsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeGetVolumeStatsRequest.Unmarshal(m, b) +} +func (m *NodeGetVolumeStatsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeGetVolumeStatsRequest.Marshal(b, m, deterministic) +} +func (dst *NodeGetVolumeStatsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeGetVolumeStatsRequest.Merge(dst, src) +} +func (m *NodeGetVolumeStatsRequest) XXX_Size() int { + return xxx_messageInfo_NodeGetVolumeStatsRequest.Size(m) +} +func (m *NodeGetVolumeStatsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_NodeGetVolumeStatsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeGetVolumeStatsRequest proto.InternalMessageInfo + +func (m *NodeGetVolumeStatsRequest) GetVolumeId() string { + if m != nil { + return m.VolumeId + } + return "" +} + +func (m *NodeGetVolumeStatsRequest) GetVolumePath() string { + if m != nil { + return m.VolumePath + } + return "" +} + +type NodeGetVolumeStatsResponse struct { + // This field is OPTIONAL. + Usage []*VolumeUsage `protobuf:"bytes,1,rep,name=usage,proto3" json:"usage,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeGetVolumeStatsResponse) Reset() { *m = NodeGetVolumeStatsResponse{} } +func (m *NodeGetVolumeStatsResponse) String() string { return proto.CompactTextString(m) } +func (*NodeGetVolumeStatsResponse) ProtoMessage() {} +func (*NodeGetVolumeStatsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{46} +} +func (m *NodeGetVolumeStatsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeGetVolumeStatsResponse.Unmarshal(m, b) +} +func (m *NodeGetVolumeStatsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeGetVolumeStatsResponse.Marshal(b, m, deterministic) +} +func (dst *NodeGetVolumeStatsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeGetVolumeStatsResponse.Merge(dst, src) +} +func (m *NodeGetVolumeStatsResponse) XXX_Size() int { + return xxx_messageInfo_NodeGetVolumeStatsResponse.Size(m) +} +func (m *NodeGetVolumeStatsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_NodeGetVolumeStatsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeGetVolumeStatsResponse proto.InternalMessageInfo + +func (m *NodeGetVolumeStatsResponse) GetUsage() []*VolumeUsage { + if m != nil { + return m.Usage + } + return nil +} + +type VolumeUsage struct { + // The available capacity in specified Unit. This field is OPTIONAL. + // The value of this field MUST NOT be negative. + Available int64 `protobuf:"varint,1,opt,name=available,proto3" json:"available,omitempty"` + // The total capacity in specified Unit. This field is REQUIRED. + // The value of this field MUST NOT be negative. + Total int64 `protobuf:"varint,2,opt,name=total,proto3" json:"total,omitempty"` + // The used capacity in specified Unit. This field is OPTIONAL. + // The value of this field MUST NOT be negative. + Used int64 `protobuf:"varint,3,opt,name=used,proto3" json:"used,omitempty"` + // Units by which values are measured. This field is REQUIRED. + Unit VolumeUsage_Unit `protobuf:"varint,4,opt,name=unit,proto3,enum=csi.v1.VolumeUsage_Unit" json:"unit,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *VolumeUsage) Reset() { *m = VolumeUsage{} } +func (m *VolumeUsage) String() string { return proto.CompactTextString(m) } +func (*VolumeUsage) ProtoMessage() {} +func (*VolumeUsage) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{47} +} +func (m *VolumeUsage) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VolumeUsage.Unmarshal(m, b) +} +func (m *VolumeUsage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VolumeUsage.Marshal(b, m, deterministic) +} +func (dst *VolumeUsage) XXX_Merge(src proto.Message) { + xxx_messageInfo_VolumeUsage.Merge(dst, src) +} +func (m *VolumeUsage) XXX_Size() int { + return xxx_messageInfo_VolumeUsage.Size(m) +} +func (m *VolumeUsage) XXX_DiscardUnknown() { + xxx_messageInfo_VolumeUsage.DiscardUnknown(m) +} + +var xxx_messageInfo_VolumeUsage proto.InternalMessageInfo + +func (m *VolumeUsage) GetAvailable() int64 { + if m != nil { + return m.Available + } + return 0 +} + +func (m *VolumeUsage) GetTotal() int64 { + if m != nil { + return m.Total + } + return 0 +} + +func (m *VolumeUsage) GetUsed() int64 { + if m != nil { + return m.Used + } + return 0 +} + +func (m *VolumeUsage) GetUnit() VolumeUsage_Unit { + if m != nil { + return m.Unit + } + return VolumeUsage_UNKNOWN +} + +type NodeGetCapabilitiesRequest struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeGetCapabilitiesRequest) Reset() { *m = NodeGetCapabilitiesRequest{} } +func (m *NodeGetCapabilitiesRequest) String() string { return proto.CompactTextString(m) } +func (*NodeGetCapabilitiesRequest) ProtoMessage() {} +func (*NodeGetCapabilitiesRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{48} +} +func (m *NodeGetCapabilitiesRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeGetCapabilitiesRequest.Unmarshal(m, b) +} +func (m *NodeGetCapabilitiesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeGetCapabilitiesRequest.Marshal(b, m, deterministic) +} +func (dst *NodeGetCapabilitiesRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeGetCapabilitiesRequest.Merge(dst, src) +} +func (m *NodeGetCapabilitiesRequest) XXX_Size() int { + return xxx_messageInfo_NodeGetCapabilitiesRequest.Size(m) +} +func (m *NodeGetCapabilitiesRequest) XXX_DiscardUnknown() { + xxx_messageInfo_NodeGetCapabilitiesRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeGetCapabilitiesRequest proto.InternalMessageInfo + +type NodeGetCapabilitiesResponse struct { + // All the capabilities that the node service supports. This field + // is OPTIONAL. + Capabilities []*NodeServiceCapability `protobuf:"bytes,1,rep,name=capabilities,proto3" json:"capabilities,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeGetCapabilitiesResponse) Reset() { *m = NodeGetCapabilitiesResponse{} } +func (m *NodeGetCapabilitiesResponse) String() string { return proto.CompactTextString(m) } +func (*NodeGetCapabilitiesResponse) ProtoMessage() {} +func (*NodeGetCapabilitiesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{49} +} +func (m *NodeGetCapabilitiesResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeGetCapabilitiesResponse.Unmarshal(m, b) +} +func (m *NodeGetCapabilitiesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeGetCapabilitiesResponse.Marshal(b, m, deterministic) +} +func (dst *NodeGetCapabilitiesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeGetCapabilitiesResponse.Merge(dst, src) +} +func (m *NodeGetCapabilitiesResponse) XXX_Size() int { + return xxx_messageInfo_NodeGetCapabilitiesResponse.Size(m) +} +func (m *NodeGetCapabilitiesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_NodeGetCapabilitiesResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeGetCapabilitiesResponse proto.InternalMessageInfo + +func (m *NodeGetCapabilitiesResponse) GetCapabilities() []*NodeServiceCapability { + if m != nil { + return m.Capabilities + } + return nil +} + +// Specifies a capability of the node service. +type NodeServiceCapability struct { + // Types that are valid to be assigned to Type: + // *NodeServiceCapability_Rpc + Type isNodeServiceCapability_Type `protobuf_oneof:"type"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeServiceCapability) Reset() { *m = NodeServiceCapability{} } +func (m *NodeServiceCapability) String() string { return proto.CompactTextString(m) } +func (*NodeServiceCapability) ProtoMessage() {} +func (*NodeServiceCapability) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{50} +} +func (m *NodeServiceCapability) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeServiceCapability.Unmarshal(m, b) +} +func (m *NodeServiceCapability) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeServiceCapability.Marshal(b, m, deterministic) +} +func (dst *NodeServiceCapability) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeServiceCapability.Merge(dst, src) +} +func (m *NodeServiceCapability) XXX_Size() int { + return xxx_messageInfo_NodeServiceCapability.Size(m) +} +func (m *NodeServiceCapability) XXX_DiscardUnknown() { + xxx_messageInfo_NodeServiceCapability.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeServiceCapability proto.InternalMessageInfo + +type isNodeServiceCapability_Type interface { + isNodeServiceCapability_Type() +} + +type NodeServiceCapability_Rpc struct { + Rpc *NodeServiceCapability_RPC `protobuf:"bytes,1,opt,name=rpc,proto3,oneof"` +} + +func (*NodeServiceCapability_Rpc) isNodeServiceCapability_Type() {} + +func (m *NodeServiceCapability) GetType() isNodeServiceCapability_Type { + if m != nil { + return m.Type + } + return nil +} + +func (m *NodeServiceCapability) GetRpc() *NodeServiceCapability_RPC { + if x, ok := m.GetType().(*NodeServiceCapability_Rpc); ok { + return x.Rpc + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*NodeServiceCapability) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _NodeServiceCapability_OneofMarshaler, _NodeServiceCapability_OneofUnmarshaler, _NodeServiceCapability_OneofSizer, []interface{}{ + (*NodeServiceCapability_Rpc)(nil), + } +} + +func _NodeServiceCapability_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*NodeServiceCapability) + // type + switch x := m.Type.(type) { + case *NodeServiceCapability_Rpc: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Rpc); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("NodeServiceCapability.Type has unexpected type %T", x) + } + return nil +} + +func _NodeServiceCapability_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*NodeServiceCapability) + switch tag { + case 1: // type.rpc + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(NodeServiceCapability_RPC) + err := b.DecodeMessage(msg) + m.Type = &NodeServiceCapability_Rpc{msg} + return true, err + default: + return false, nil + } +} + +func _NodeServiceCapability_OneofSizer(msg proto.Message) (n int) { + m := msg.(*NodeServiceCapability) + // type + switch x := m.Type.(type) { + case *NodeServiceCapability_Rpc: + s := proto.Size(x.Rpc) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +type NodeServiceCapability_RPC struct { + Type NodeServiceCapability_RPC_Type `protobuf:"varint,1,opt,name=type,proto3,enum=csi.v1.NodeServiceCapability_RPC_Type" json:"type,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeServiceCapability_RPC) Reset() { *m = NodeServiceCapability_RPC{} } +func (m *NodeServiceCapability_RPC) String() string { return proto.CompactTextString(m) } +func (*NodeServiceCapability_RPC) ProtoMessage() {} +func (*NodeServiceCapability_RPC) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{50, 0} +} +func (m *NodeServiceCapability_RPC) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeServiceCapability_RPC.Unmarshal(m, b) +} +func (m *NodeServiceCapability_RPC) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeServiceCapability_RPC.Marshal(b, m, deterministic) +} +func (dst *NodeServiceCapability_RPC) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeServiceCapability_RPC.Merge(dst, src) +} +func (m *NodeServiceCapability_RPC) XXX_Size() int { + return xxx_messageInfo_NodeServiceCapability_RPC.Size(m) +} +func (m *NodeServiceCapability_RPC) XXX_DiscardUnknown() { + xxx_messageInfo_NodeServiceCapability_RPC.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeServiceCapability_RPC proto.InternalMessageInfo + +func (m *NodeServiceCapability_RPC) GetType() NodeServiceCapability_RPC_Type { + if m != nil { + return m.Type + } + return NodeServiceCapability_RPC_UNKNOWN +} + +type NodeGetInfoRequest struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeGetInfoRequest) Reset() { *m = NodeGetInfoRequest{} } +func (m *NodeGetInfoRequest) String() string { return proto.CompactTextString(m) } +func (*NodeGetInfoRequest) ProtoMessage() {} +func (*NodeGetInfoRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{51} +} +func (m *NodeGetInfoRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeGetInfoRequest.Unmarshal(m, b) +} +func (m *NodeGetInfoRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeGetInfoRequest.Marshal(b, m, deterministic) +} +func (dst *NodeGetInfoRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeGetInfoRequest.Merge(dst, src) +} +func (m *NodeGetInfoRequest) XXX_Size() int { + return xxx_messageInfo_NodeGetInfoRequest.Size(m) +} +func (m *NodeGetInfoRequest) XXX_DiscardUnknown() { + xxx_messageInfo_NodeGetInfoRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeGetInfoRequest proto.InternalMessageInfo + +type NodeGetInfoResponse struct { + // The identifier of the node as understood by the SP. + // This field is REQUIRED. + // This field MUST contain enough information to uniquely identify + // this specific node vs all other nodes supported by this plugin. + // This field SHALL be used by the CO in subsequent calls, including + // `ControllerPublishVolume`, to refer to this node. + // The SP is NOT responsible for global uniqueness of node_id across + // multiple SPs. + NodeId string `protobuf:"bytes,1,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"` + // Maximum number of volumes that controller can publish to the node. + // If value is not set or zero CO SHALL decide how many volumes of + // this type can be published by the controller to the node. The + // plugin MUST NOT set negative values here. + // This field is OPTIONAL. + MaxVolumesPerNode int64 `protobuf:"varint,2,opt,name=max_volumes_per_node,json=maxVolumesPerNode,proto3" json:"max_volumes_per_node,omitempty"` + // Specifies where (regions, zones, racks, etc.) the node is + // accessible from. + // A plugin that returns this field MUST also set the + // VOLUME_ACCESSIBILITY_CONSTRAINTS plugin capability. + // COs MAY use this information along with the topology information + // returned in CreateVolumeResponse to ensure that a given volume is + // accessible from a given node when scheduling workloads. + // This field is OPTIONAL. If it is not specified, the CO MAY assume + // the node is not subject to any topological constraint, and MAY + // schedule workloads that reference any volume V, such that there are + // no topological constraints declared for V. + // + // Example 1: + // accessible_topology = + // {"region": "R1", "zone": "R2"} + // Indicates the node exists within the "region" "R1" and the "zone" + // "Z2". + AccessibleTopology *Topology `protobuf:"bytes,3,opt,name=accessible_topology,json=accessibleTopology,proto3" json:"accessible_topology,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeGetInfoResponse) Reset() { *m = NodeGetInfoResponse{} } +func (m *NodeGetInfoResponse) String() string { return proto.CompactTextString(m) } +func (*NodeGetInfoResponse) ProtoMessage() {} +func (*NodeGetInfoResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csi_1092d4f3f3c8dc30, []int{52} +} +func (m *NodeGetInfoResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeGetInfoResponse.Unmarshal(m, b) +} +func (m *NodeGetInfoResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeGetInfoResponse.Marshal(b, m, deterministic) +} +func (dst *NodeGetInfoResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeGetInfoResponse.Merge(dst, src) +} +func (m *NodeGetInfoResponse) XXX_Size() int { + return xxx_messageInfo_NodeGetInfoResponse.Size(m) +} +func (m *NodeGetInfoResponse) XXX_DiscardUnknown() { + xxx_messageInfo_NodeGetInfoResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeGetInfoResponse proto.InternalMessageInfo + +func (m *NodeGetInfoResponse) GetNodeId() string { + if m != nil { + return m.NodeId + } + return "" +} + +func (m *NodeGetInfoResponse) GetMaxVolumesPerNode() int64 { + if m != nil { + return m.MaxVolumesPerNode + } + return 0 +} + +func (m *NodeGetInfoResponse) GetAccessibleTopology() *Topology { + if m != nil { + return m.AccessibleTopology + } + return nil +} + +var E_CsiSecret = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.FieldOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 1059, + Name: "csi.v1.csi_secret", + Tag: "varint,1059,opt,name=csi_secret,json=csiSecret", + Filename: "github.com/container-storage-interface/spec/csi.proto", +} + +func init() { + proto.RegisterType((*GetPluginInfoRequest)(nil), "csi.v1.GetPluginInfoRequest") + proto.RegisterType((*GetPluginInfoResponse)(nil), "csi.v1.GetPluginInfoResponse") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.GetPluginInfoResponse.ManifestEntry") + proto.RegisterType((*GetPluginCapabilitiesRequest)(nil), "csi.v1.GetPluginCapabilitiesRequest") + proto.RegisterType((*GetPluginCapabilitiesResponse)(nil), "csi.v1.GetPluginCapabilitiesResponse") + proto.RegisterType((*PluginCapability)(nil), "csi.v1.PluginCapability") + proto.RegisterType((*PluginCapability_Service)(nil), "csi.v1.PluginCapability.Service") + proto.RegisterType((*ProbeRequest)(nil), "csi.v1.ProbeRequest") + proto.RegisterType((*ProbeResponse)(nil), "csi.v1.ProbeResponse") + proto.RegisterType((*CreateVolumeRequest)(nil), "csi.v1.CreateVolumeRequest") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.CreateVolumeRequest.ParametersEntry") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.CreateVolumeRequest.SecretsEntry") + proto.RegisterType((*VolumeContentSource)(nil), "csi.v1.VolumeContentSource") + proto.RegisterType((*VolumeContentSource_SnapshotSource)(nil), "csi.v1.VolumeContentSource.SnapshotSource") + proto.RegisterType((*VolumeContentSource_VolumeSource)(nil), "csi.v1.VolumeContentSource.VolumeSource") + proto.RegisterType((*CreateVolumeResponse)(nil), "csi.v1.CreateVolumeResponse") + proto.RegisterType((*VolumeCapability)(nil), "csi.v1.VolumeCapability") + proto.RegisterType((*VolumeCapability_BlockVolume)(nil), "csi.v1.VolumeCapability.BlockVolume") + proto.RegisterType((*VolumeCapability_MountVolume)(nil), "csi.v1.VolumeCapability.MountVolume") + proto.RegisterType((*VolumeCapability_AccessMode)(nil), "csi.v1.VolumeCapability.AccessMode") + proto.RegisterType((*CapacityRange)(nil), "csi.v1.CapacityRange") + proto.RegisterType((*Volume)(nil), "csi.v1.Volume") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.Volume.VolumeContextEntry") + proto.RegisterType((*TopologyRequirement)(nil), "csi.v1.TopologyRequirement") + proto.RegisterType((*Topology)(nil), "csi.v1.Topology") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.Topology.SegmentsEntry") + proto.RegisterType((*DeleteVolumeRequest)(nil), "csi.v1.DeleteVolumeRequest") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.DeleteVolumeRequest.SecretsEntry") + proto.RegisterType((*DeleteVolumeResponse)(nil), "csi.v1.DeleteVolumeResponse") + proto.RegisterType((*ControllerPublishVolumeRequest)(nil), "csi.v1.ControllerPublishVolumeRequest") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.ControllerPublishVolumeRequest.SecretsEntry") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.ControllerPublishVolumeRequest.VolumeContextEntry") + proto.RegisterType((*ControllerPublishVolumeResponse)(nil), "csi.v1.ControllerPublishVolumeResponse") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.ControllerPublishVolumeResponse.PublishContextEntry") + proto.RegisterType((*ControllerUnpublishVolumeRequest)(nil), "csi.v1.ControllerUnpublishVolumeRequest") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.ControllerUnpublishVolumeRequest.SecretsEntry") + proto.RegisterType((*ControllerUnpublishVolumeResponse)(nil), "csi.v1.ControllerUnpublishVolumeResponse") + proto.RegisterType((*ValidateVolumeCapabilitiesRequest)(nil), "csi.v1.ValidateVolumeCapabilitiesRequest") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.ValidateVolumeCapabilitiesRequest.ParametersEntry") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.ValidateVolumeCapabilitiesRequest.SecretsEntry") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.ValidateVolumeCapabilitiesRequest.VolumeContextEntry") + proto.RegisterType((*ValidateVolumeCapabilitiesResponse)(nil), "csi.v1.ValidateVolumeCapabilitiesResponse") + proto.RegisterType((*ValidateVolumeCapabilitiesResponse_Confirmed)(nil), "csi.v1.ValidateVolumeCapabilitiesResponse.Confirmed") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.ValidateVolumeCapabilitiesResponse.Confirmed.ParametersEntry") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.ValidateVolumeCapabilitiesResponse.Confirmed.VolumeContextEntry") + proto.RegisterType((*ListVolumesRequest)(nil), "csi.v1.ListVolumesRequest") + proto.RegisterType((*ListVolumesResponse)(nil), "csi.v1.ListVolumesResponse") + proto.RegisterType((*ListVolumesResponse_Entry)(nil), "csi.v1.ListVolumesResponse.Entry") + proto.RegisterType((*GetCapacityRequest)(nil), "csi.v1.GetCapacityRequest") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.GetCapacityRequest.ParametersEntry") + proto.RegisterType((*GetCapacityResponse)(nil), "csi.v1.GetCapacityResponse") + proto.RegisterType((*ControllerGetCapabilitiesRequest)(nil), "csi.v1.ControllerGetCapabilitiesRequest") + proto.RegisterType((*ControllerGetCapabilitiesResponse)(nil), "csi.v1.ControllerGetCapabilitiesResponse") + proto.RegisterType((*ControllerServiceCapability)(nil), "csi.v1.ControllerServiceCapability") + proto.RegisterType((*ControllerServiceCapability_RPC)(nil), "csi.v1.ControllerServiceCapability.RPC") + proto.RegisterType((*CreateSnapshotRequest)(nil), "csi.v1.CreateSnapshotRequest") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.CreateSnapshotRequest.ParametersEntry") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.CreateSnapshotRequest.SecretsEntry") + proto.RegisterType((*CreateSnapshotResponse)(nil), "csi.v1.CreateSnapshotResponse") + proto.RegisterType((*Snapshot)(nil), "csi.v1.Snapshot") + proto.RegisterType((*DeleteSnapshotRequest)(nil), "csi.v1.DeleteSnapshotRequest") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.DeleteSnapshotRequest.SecretsEntry") + proto.RegisterType((*DeleteSnapshotResponse)(nil), "csi.v1.DeleteSnapshotResponse") + proto.RegisterType((*ListSnapshotsRequest)(nil), "csi.v1.ListSnapshotsRequest") + proto.RegisterType((*ListSnapshotsResponse)(nil), "csi.v1.ListSnapshotsResponse") + proto.RegisterType((*ListSnapshotsResponse_Entry)(nil), "csi.v1.ListSnapshotsResponse.Entry") + proto.RegisterType((*NodeStageVolumeRequest)(nil), "csi.v1.NodeStageVolumeRequest") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.NodeStageVolumeRequest.PublishContextEntry") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.NodeStageVolumeRequest.SecretsEntry") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.NodeStageVolumeRequest.VolumeContextEntry") + proto.RegisterType((*NodeStageVolumeResponse)(nil), "csi.v1.NodeStageVolumeResponse") + proto.RegisterType((*NodeUnstageVolumeRequest)(nil), "csi.v1.NodeUnstageVolumeRequest") + proto.RegisterType((*NodeUnstageVolumeResponse)(nil), "csi.v1.NodeUnstageVolumeResponse") + proto.RegisterType((*NodePublishVolumeRequest)(nil), "csi.v1.NodePublishVolumeRequest") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.NodePublishVolumeRequest.PublishContextEntry") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.NodePublishVolumeRequest.SecretsEntry") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.NodePublishVolumeRequest.VolumeContextEntry") + proto.RegisterType((*NodePublishVolumeResponse)(nil), "csi.v1.NodePublishVolumeResponse") + proto.RegisterType((*NodeUnpublishVolumeRequest)(nil), "csi.v1.NodeUnpublishVolumeRequest") + proto.RegisterType((*NodeUnpublishVolumeResponse)(nil), "csi.v1.NodeUnpublishVolumeResponse") + proto.RegisterType((*NodeGetVolumeStatsRequest)(nil), "csi.v1.NodeGetVolumeStatsRequest") + proto.RegisterType((*NodeGetVolumeStatsResponse)(nil), "csi.v1.NodeGetVolumeStatsResponse") + proto.RegisterType((*VolumeUsage)(nil), "csi.v1.VolumeUsage") + proto.RegisterType((*NodeGetCapabilitiesRequest)(nil), "csi.v1.NodeGetCapabilitiesRequest") + proto.RegisterType((*NodeGetCapabilitiesResponse)(nil), "csi.v1.NodeGetCapabilitiesResponse") + proto.RegisterType((*NodeServiceCapability)(nil), "csi.v1.NodeServiceCapability") + proto.RegisterType((*NodeServiceCapability_RPC)(nil), "csi.v1.NodeServiceCapability.RPC") + proto.RegisterType((*NodeGetInfoRequest)(nil), "csi.v1.NodeGetInfoRequest") + proto.RegisterType((*NodeGetInfoResponse)(nil), "csi.v1.NodeGetInfoResponse") + proto.RegisterEnum("csi.v1.PluginCapability_Service_Type", PluginCapability_Service_Type_name, PluginCapability_Service_Type_value) + proto.RegisterEnum("csi.v1.VolumeCapability_AccessMode_Mode", VolumeCapability_AccessMode_Mode_name, VolumeCapability_AccessMode_Mode_value) + proto.RegisterEnum("csi.v1.ControllerServiceCapability_RPC_Type", ControllerServiceCapability_RPC_Type_name, ControllerServiceCapability_RPC_Type_value) + proto.RegisterEnum("csi.v1.VolumeUsage_Unit", VolumeUsage_Unit_name, VolumeUsage_Unit_value) + proto.RegisterEnum("csi.v1.NodeServiceCapability_RPC_Type", NodeServiceCapability_RPC_Type_name, NodeServiceCapability_RPC_Type_value) + proto.RegisterExtension(E_CsiSecret) +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// IdentityClient is the client API for Identity service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type IdentityClient interface { + GetPluginInfo(ctx context.Context, in *GetPluginInfoRequest, opts ...grpc.CallOption) (*GetPluginInfoResponse, error) + GetPluginCapabilities(ctx context.Context, in *GetPluginCapabilitiesRequest, opts ...grpc.CallOption) (*GetPluginCapabilitiesResponse, error) + Probe(ctx context.Context, in *ProbeRequest, opts ...grpc.CallOption) (*ProbeResponse, error) +} + +type identityClient struct { + cc *grpc.ClientConn +} + +func NewIdentityClient(cc *grpc.ClientConn) IdentityClient { + return &identityClient{cc} +} + +func (c *identityClient) GetPluginInfo(ctx context.Context, in *GetPluginInfoRequest, opts ...grpc.CallOption) (*GetPluginInfoResponse, error) { + out := new(GetPluginInfoResponse) + err := c.cc.Invoke(ctx, "/csi.v1.Identity/GetPluginInfo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *identityClient) GetPluginCapabilities(ctx context.Context, in *GetPluginCapabilitiesRequest, opts ...grpc.CallOption) (*GetPluginCapabilitiesResponse, error) { + out := new(GetPluginCapabilitiesResponse) + err := c.cc.Invoke(ctx, "/csi.v1.Identity/GetPluginCapabilities", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *identityClient) Probe(ctx context.Context, in *ProbeRequest, opts ...grpc.CallOption) (*ProbeResponse, error) { + out := new(ProbeResponse) + err := c.cc.Invoke(ctx, "/csi.v1.Identity/Probe", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// IdentityServer is the server API for Identity service. +type IdentityServer interface { + GetPluginInfo(context.Context, *GetPluginInfoRequest) (*GetPluginInfoResponse, error) + GetPluginCapabilities(context.Context, *GetPluginCapabilitiesRequest) (*GetPluginCapabilitiesResponse, error) + Probe(context.Context, *ProbeRequest) (*ProbeResponse, error) +} + +func RegisterIdentityServer(s *grpc.Server, srv IdentityServer) { + s.RegisterService(&_Identity_serviceDesc, srv) +} + +func _Identity_GetPluginInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetPluginInfoRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(IdentityServer).GetPluginInfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v1.Identity/GetPluginInfo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(IdentityServer).GetPluginInfo(ctx, req.(*GetPluginInfoRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Identity_GetPluginCapabilities_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetPluginCapabilitiesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(IdentityServer).GetPluginCapabilities(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v1.Identity/GetPluginCapabilities", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(IdentityServer).GetPluginCapabilities(ctx, req.(*GetPluginCapabilitiesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Identity_Probe_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ProbeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(IdentityServer).Probe(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v1.Identity/Probe", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(IdentityServer).Probe(ctx, req.(*ProbeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _Identity_serviceDesc = grpc.ServiceDesc{ + ServiceName: "csi.v1.Identity", + HandlerType: (*IdentityServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetPluginInfo", + Handler: _Identity_GetPluginInfo_Handler, + }, + { + MethodName: "GetPluginCapabilities", + Handler: _Identity_GetPluginCapabilities_Handler, + }, + { + MethodName: "Probe", + Handler: _Identity_Probe_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "github.com/container-storage-interface/spec/csi.proto", +} + +// ControllerClient is the client API for Controller service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type ControllerClient interface { + CreateVolume(ctx context.Context, in *CreateVolumeRequest, opts ...grpc.CallOption) (*CreateVolumeResponse, error) + DeleteVolume(ctx context.Context, in *DeleteVolumeRequest, opts ...grpc.CallOption) (*DeleteVolumeResponse, error) + ControllerPublishVolume(ctx context.Context, in *ControllerPublishVolumeRequest, opts ...grpc.CallOption) (*ControllerPublishVolumeResponse, error) + ControllerUnpublishVolume(ctx context.Context, in *ControllerUnpublishVolumeRequest, opts ...grpc.CallOption) (*ControllerUnpublishVolumeResponse, error) + ValidateVolumeCapabilities(ctx context.Context, in *ValidateVolumeCapabilitiesRequest, opts ...grpc.CallOption) (*ValidateVolumeCapabilitiesResponse, error) + ListVolumes(ctx context.Context, in *ListVolumesRequest, opts ...grpc.CallOption) (*ListVolumesResponse, error) + GetCapacity(ctx context.Context, in *GetCapacityRequest, opts ...grpc.CallOption) (*GetCapacityResponse, error) + ControllerGetCapabilities(ctx context.Context, in *ControllerGetCapabilitiesRequest, opts ...grpc.CallOption) (*ControllerGetCapabilitiesResponse, error) + CreateSnapshot(ctx context.Context, in *CreateSnapshotRequest, opts ...grpc.CallOption) (*CreateSnapshotResponse, error) + DeleteSnapshot(ctx context.Context, in *DeleteSnapshotRequest, opts ...grpc.CallOption) (*DeleteSnapshotResponse, error) + ListSnapshots(ctx context.Context, in *ListSnapshotsRequest, opts ...grpc.CallOption) (*ListSnapshotsResponse, error) +} + +type controllerClient struct { + cc *grpc.ClientConn +} + +func NewControllerClient(cc *grpc.ClientConn) ControllerClient { + return &controllerClient{cc} +} + +func (c *controllerClient) CreateVolume(ctx context.Context, in *CreateVolumeRequest, opts ...grpc.CallOption) (*CreateVolumeResponse, error) { + out := new(CreateVolumeResponse) + err := c.cc.Invoke(ctx, "/csi.v1.Controller/CreateVolume", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controllerClient) DeleteVolume(ctx context.Context, in *DeleteVolumeRequest, opts ...grpc.CallOption) (*DeleteVolumeResponse, error) { + out := new(DeleteVolumeResponse) + err := c.cc.Invoke(ctx, "/csi.v1.Controller/DeleteVolume", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controllerClient) ControllerPublishVolume(ctx context.Context, in *ControllerPublishVolumeRequest, opts ...grpc.CallOption) (*ControllerPublishVolumeResponse, error) { + out := new(ControllerPublishVolumeResponse) + err := c.cc.Invoke(ctx, "/csi.v1.Controller/ControllerPublishVolume", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controllerClient) ControllerUnpublishVolume(ctx context.Context, in *ControllerUnpublishVolumeRequest, opts ...grpc.CallOption) (*ControllerUnpublishVolumeResponse, error) { + out := new(ControllerUnpublishVolumeResponse) + err := c.cc.Invoke(ctx, "/csi.v1.Controller/ControllerUnpublishVolume", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controllerClient) ValidateVolumeCapabilities(ctx context.Context, in *ValidateVolumeCapabilitiesRequest, opts ...grpc.CallOption) (*ValidateVolumeCapabilitiesResponse, error) { + out := new(ValidateVolumeCapabilitiesResponse) + err := c.cc.Invoke(ctx, "/csi.v1.Controller/ValidateVolumeCapabilities", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controllerClient) ListVolumes(ctx context.Context, in *ListVolumesRequest, opts ...grpc.CallOption) (*ListVolumesResponse, error) { + out := new(ListVolumesResponse) + err := c.cc.Invoke(ctx, "/csi.v1.Controller/ListVolumes", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controllerClient) GetCapacity(ctx context.Context, in *GetCapacityRequest, opts ...grpc.CallOption) (*GetCapacityResponse, error) { + out := new(GetCapacityResponse) + err := c.cc.Invoke(ctx, "/csi.v1.Controller/GetCapacity", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controllerClient) ControllerGetCapabilities(ctx context.Context, in *ControllerGetCapabilitiesRequest, opts ...grpc.CallOption) (*ControllerGetCapabilitiesResponse, error) { + out := new(ControllerGetCapabilitiesResponse) + err := c.cc.Invoke(ctx, "/csi.v1.Controller/ControllerGetCapabilities", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controllerClient) CreateSnapshot(ctx context.Context, in *CreateSnapshotRequest, opts ...grpc.CallOption) (*CreateSnapshotResponse, error) { + out := new(CreateSnapshotResponse) + err := c.cc.Invoke(ctx, "/csi.v1.Controller/CreateSnapshot", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controllerClient) DeleteSnapshot(ctx context.Context, in *DeleteSnapshotRequest, opts ...grpc.CallOption) (*DeleteSnapshotResponse, error) { + out := new(DeleteSnapshotResponse) + err := c.cc.Invoke(ctx, "/csi.v1.Controller/DeleteSnapshot", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controllerClient) ListSnapshots(ctx context.Context, in *ListSnapshotsRequest, opts ...grpc.CallOption) (*ListSnapshotsResponse, error) { + out := new(ListSnapshotsResponse) + err := c.cc.Invoke(ctx, "/csi.v1.Controller/ListSnapshots", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// ControllerServer is the server API for Controller service. +type ControllerServer interface { + CreateVolume(context.Context, *CreateVolumeRequest) (*CreateVolumeResponse, error) + DeleteVolume(context.Context, *DeleteVolumeRequest) (*DeleteVolumeResponse, error) + ControllerPublishVolume(context.Context, *ControllerPublishVolumeRequest) (*ControllerPublishVolumeResponse, error) + ControllerUnpublishVolume(context.Context, *ControllerUnpublishVolumeRequest) (*ControllerUnpublishVolumeResponse, error) + ValidateVolumeCapabilities(context.Context, *ValidateVolumeCapabilitiesRequest) (*ValidateVolumeCapabilitiesResponse, error) + ListVolumes(context.Context, *ListVolumesRequest) (*ListVolumesResponse, error) + GetCapacity(context.Context, *GetCapacityRequest) (*GetCapacityResponse, error) + ControllerGetCapabilities(context.Context, *ControllerGetCapabilitiesRequest) (*ControllerGetCapabilitiesResponse, error) + CreateSnapshot(context.Context, *CreateSnapshotRequest) (*CreateSnapshotResponse, error) + DeleteSnapshot(context.Context, *DeleteSnapshotRequest) (*DeleteSnapshotResponse, error) + ListSnapshots(context.Context, *ListSnapshotsRequest) (*ListSnapshotsResponse, error) +} + +func RegisterControllerServer(s *grpc.Server, srv ControllerServer) { + s.RegisterService(&_Controller_serviceDesc, srv) +} + +func _Controller_CreateVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControllerServer).CreateVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v1.Controller/CreateVolume", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControllerServer).CreateVolume(ctx, req.(*CreateVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Controller_DeleteVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControllerServer).DeleteVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v1.Controller/DeleteVolume", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControllerServer).DeleteVolume(ctx, req.(*DeleteVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Controller_ControllerPublishVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ControllerPublishVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControllerServer).ControllerPublishVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v1.Controller/ControllerPublishVolume", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControllerServer).ControllerPublishVolume(ctx, req.(*ControllerPublishVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Controller_ControllerUnpublishVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ControllerUnpublishVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControllerServer).ControllerUnpublishVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v1.Controller/ControllerUnpublishVolume", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControllerServer).ControllerUnpublishVolume(ctx, req.(*ControllerUnpublishVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Controller_ValidateVolumeCapabilities_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ValidateVolumeCapabilitiesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControllerServer).ValidateVolumeCapabilities(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v1.Controller/ValidateVolumeCapabilities", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControllerServer).ValidateVolumeCapabilities(ctx, req.(*ValidateVolumeCapabilitiesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Controller_ListVolumes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListVolumesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControllerServer).ListVolumes(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v1.Controller/ListVolumes", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControllerServer).ListVolumes(ctx, req.(*ListVolumesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Controller_GetCapacity_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetCapacityRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControllerServer).GetCapacity(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v1.Controller/GetCapacity", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControllerServer).GetCapacity(ctx, req.(*GetCapacityRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Controller_ControllerGetCapabilities_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ControllerGetCapabilitiesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControllerServer).ControllerGetCapabilities(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v1.Controller/ControllerGetCapabilities", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControllerServer).ControllerGetCapabilities(ctx, req.(*ControllerGetCapabilitiesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Controller_CreateSnapshot_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateSnapshotRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControllerServer).CreateSnapshot(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v1.Controller/CreateSnapshot", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControllerServer).CreateSnapshot(ctx, req.(*CreateSnapshotRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Controller_DeleteSnapshot_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteSnapshotRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControllerServer).DeleteSnapshot(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v1.Controller/DeleteSnapshot", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControllerServer).DeleteSnapshot(ctx, req.(*DeleteSnapshotRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Controller_ListSnapshots_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListSnapshotsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControllerServer).ListSnapshots(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v1.Controller/ListSnapshots", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControllerServer).ListSnapshots(ctx, req.(*ListSnapshotsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _Controller_serviceDesc = grpc.ServiceDesc{ + ServiceName: "csi.v1.Controller", + HandlerType: (*ControllerServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "CreateVolume", + Handler: _Controller_CreateVolume_Handler, + }, + { + MethodName: "DeleteVolume", + Handler: _Controller_DeleteVolume_Handler, + }, + { + MethodName: "ControllerPublishVolume", + Handler: _Controller_ControllerPublishVolume_Handler, + }, + { + MethodName: "ControllerUnpublishVolume", + Handler: _Controller_ControllerUnpublishVolume_Handler, + }, + { + MethodName: "ValidateVolumeCapabilities", + Handler: _Controller_ValidateVolumeCapabilities_Handler, + }, + { + MethodName: "ListVolumes", + Handler: _Controller_ListVolumes_Handler, + }, + { + MethodName: "GetCapacity", + Handler: _Controller_GetCapacity_Handler, + }, + { + MethodName: "ControllerGetCapabilities", + Handler: _Controller_ControllerGetCapabilities_Handler, + }, + { + MethodName: "CreateSnapshot", + Handler: _Controller_CreateSnapshot_Handler, + }, + { + MethodName: "DeleteSnapshot", + Handler: _Controller_DeleteSnapshot_Handler, + }, + { + MethodName: "ListSnapshots", + Handler: _Controller_ListSnapshots_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "github.com/container-storage-interface/spec/csi.proto", +} + +// NodeClient is the client API for Node service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type NodeClient interface { + NodeStageVolume(ctx context.Context, in *NodeStageVolumeRequest, opts ...grpc.CallOption) (*NodeStageVolumeResponse, error) + NodeUnstageVolume(ctx context.Context, in *NodeUnstageVolumeRequest, opts ...grpc.CallOption) (*NodeUnstageVolumeResponse, error) + NodePublishVolume(ctx context.Context, in *NodePublishVolumeRequest, opts ...grpc.CallOption) (*NodePublishVolumeResponse, error) + NodeUnpublishVolume(ctx context.Context, in *NodeUnpublishVolumeRequest, opts ...grpc.CallOption) (*NodeUnpublishVolumeResponse, error) + NodeGetVolumeStats(ctx context.Context, in *NodeGetVolumeStatsRequest, opts ...grpc.CallOption) (*NodeGetVolumeStatsResponse, error) + NodeGetCapabilities(ctx context.Context, in *NodeGetCapabilitiesRequest, opts ...grpc.CallOption) (*NodeGetCapabilitiesResponse, error) + NodeGetInfo(ctx context.Context, in *NodeGetInfoRequest, opts ...grpc.CallOption) (*NodeGetInfoResponse, error) +} + +type nodeClient struct { + cc *grpc.ClientConn +} + +func NewNodeClient(cc *grpc.ClientConn) NodeClient { + return &nodeClient{cc} +} + +func (c *nodeClient) NodeStageVolume(ctx context.Context, in *NodeStageVolumeRequest, opts ...grpc.CallOption) (*NodeStageVolumeResponse, error) { + out := new(NodeStageVolumeResponse) + err := c.cc.Invoke(ctx, "/csi.v1.Node/NodeStageVolume", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) NodeUnstageVolume(ctx context.Context, in *NodeUnstageVolumeRequest, opts ...grpc.CallOption) (*NodeUnstageVolumeResponse, error) { + out := new(NodeUnstageVolumeResponse) + err := c.cc.Invoke(ctx, "/csi.v1.Node/NodeUnstageVolume", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) NodePublishVolume(ctx context.Context, in *NodePublishVolumeRequest, opts ...grpc.CallOption) (*NodePublishVolumeResponse, error) { + out := new(NodePublishVolumeResponse) + err := c.cc.Invoke(ctx, "/csi.v1.Node/NodePublishVolume", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) NodeUnpublishVolume(ctx context.Context, in *NodeUnpublishVolumeRequest, opts ...grpc.CallOption) (*NodeUnpublishVolumeResponse, error) { + out := new(NodeUnpublishVolumeResponse) + err := c.cc.Invoke(ctx, "/csi.v1.Node/NodeUnpublishVolume", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) NodeGetVolumeStats(ctx context.Context, in *NodeGetVolumeStatsRequest, opts ...grpc.CallOption) (*NodeGetVolumeStatsResponse, error) { + out := new(NodeGetVolumeStatsResponse) + err := c.cc.Invoke(ctx, "/csi.v1.Node/NodeGetVolumeStats", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) NodeGetCapabilities(ctx context.Context, in *NodeGetCapabilitiesRequest, opts ...grpc.CallOption) (*NodeGetCapabilitiesResponse, error) { + out := new(NodeGetCapabilitiesResponse) + err := c.cc.Invoke(ctx, "/csi.v1.Node/NodeGetCapabilities", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) NodeGetInfo(ctx context.Context, in *NodeGetInfoRequest, opts ...grpc.CallOption) (*NodeGetInfoResponse, error) { + out := new(NodeGetInfoResponse) + err := c.cc.Invoke(ctx, "/csi.v1.Node/NodeGetInfo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// NodeServer is the server API for Node service. +type NodeServer interface { + NodeStageVolume(context.Context, *NodeStageVolumeRequest) (*NodeStageVolumeResponse, error) + NodeUnstageVolume(context.Context, *NodeUnstageVolumeRequest) (*NodeUnstageVolumeResponse, error) + NodePublishVolume(context.Context, *NodePublishVolumeRequest) (*NodePublishVolumeResponse, error) + NodeUnpublishVolume(context.Context, *NodeUnpublishVolumeRequest) (*NodeUnpublishVolumeResponse, error) + NodeGetVolumeStats(context.Context, *NodeGetVolumeStatsRequest) (*NodeGetVolumeStatsResponse, error) + NodeGetCapabilities(context.Context, *NodeGetCapabilitiesRequest) (*NodeGetCapabilitiesResponse, error) + NodeGetInfo(context.Context, *NodeGetInfoRequest) (*NodeGetInfoResponse, error) +} + +func RegisterNodeServer(s *grpc.Server, srv NodeServer) { + s.RegisterService(&_Node_serviceDesc, srv) +} + +func _Node_NodeStageVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NodeStageVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).NodeStageVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v1.Node/NodeStageVolume", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).NodeStageVolume(ctx, req.(*NodeStageVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_NodeUnstageVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NodeUnstageVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).NodeUnstageVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v1.Node/NodeUnstageVolume", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).NodeUnstageVolume(ctx, req.(*NodeUnstageVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_NodePublishVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NodePublishVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).NodePublishVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v1.Node/NodePublishVolume", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).NodePublishVolume(ctx, req.(*NodePublishVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_NodeUnpublishVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NodeUnpublishVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).NodeUnpublishVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v1.Node/NodeUnpublishVolume", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).NodeUnpublishVolume(ctx, req.(*NodeUnpublishVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_NodeGetVolumeStats_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NodeGetVolumeStatsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).NodeGetVolumeStats(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v1.Node/NodeGetVolumeStats", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).NodeGetVolumeStats(ctx, req.(*NodeGetVolumeStatsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_NodeGetCapabilities_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NodeGetCapabilitiesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).NodeGetCapabilities(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v1.Node/NodeGetCapabilities", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).NodeGetCapabilities(ctx, req.(*NodeGetCapabilitiesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_NodeGetInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NodeGetInfoRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).NodeGetInfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v1.Node/NodeGetInfo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).NodeGetInfo(ctx, req.(*NodeGetInfoRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _Node_serviceDesc = grpc.ServiceDesc{ + ServiceName: "csi.v1.Node", + HandlerType: (*NodeServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "NodeStageVolume", + Handler: _Node_NodeStageVolume_Handler, + }, + { + MethodName: "NodeUnstageVolume", + Handler: _Node_NodeUnstageVolume_Handler, + }, + { + MethodName: "NodePublishVolume", + Handler: _Node_NodePublishVolume_Handler, + }, + { + MethodName: "NodeUnpublishVolume", + Handler: _Node_NodeUnpublishVolume_Handler, + }, + { + MethodName: "NodeGetVolumeStats", + Handler: _Node_NodeGetVolumeStats_Handler, + }, + { + MethodName: "NodeGetCapabilities", + Handler: _Node_NodeGetCapabilities_Handler, + }, + { + MethodName: "NodeGetInfo", + Handler: _Node_NodeGetInfo_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "github.com/container-storage-interface/spec/csi.proto", +} + +func init() { + proto.RegisterFile("github.com/container-storage-interface/spec/csi.proto", fileDescriptor_csi_1092d4f3f3c8dc30) +} + +var fileDescriptor_csi_1092d4f3f3c8dc30 = []byte{ + // 3070 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x1a, 0x4d, 0x6f, 0xe3, 0xc6, + 0xd5, 0xd4, 0x87, 0x3f, 0x9e, 0x6d, 0x45, 0x3b, 0xfe, 0x58, 0x2d, 0x6d, 0xef, 0x7a, 0xb9, 0xd9, + 0xc4, 0xd9, 0x64, 0xe5, 0xc6, 0xc9, 0x06, 0xcd, 0xee, 0xa6, 0x8d, 0x24, 0x2b, 0xb6, 0xb2, 0x5a, + 0xd9, 0xa1, 0x64, 0xa7, 0xbb, 0x6d, 0xc0, 0xd0, 0xd2, 0x58, 0x4b, 0x44, 0x22, 0x15, 0x72, 0xe4, + 0xae, 0x7b, 0x2b, 0x0a, 0xf4, 0xd2, 0x53, 0x4f, 0xed, 0xad, 0x40, 0x7a, 0x6a, 0xd1, 0xa0, 0xa7, + 0xa2, 0xc7, 0x02, 0xbd, 0x14, 0xe8, 0x1f, 0x68, 0x6f, 0xb9, 0x07, 0x2d, 0x10, 0xf4, 0xd0, 0x43, + 0x81, 0x02, 0x05, 0x39, 0x43, 0x8a, 0x43, 0x91, 0x94, 0xb4, 0xde, 0x20, 0x87, 0x9e, 0x24, 0xbe, + 0x79, 0x5f, 0xf3, 0xe6, 0xbd, 0x37, 0xef, 0x3d, 0x12, 0xee, 0xb4, 0x35, 0xf2, 0xa4, 0x7f, 0x92, + 0x6f, 0x1a, 0xdd, 0xed, 0xa6, 0xa1, 0x13, 0x55, 0xd3, 0xb1, 0x79, 0xdb, 0x22, 0x86, 0xa9, 0xb6, + 0xf1, 0x6d, 0x4d, 0x27, 0xd8, 0x3c, 0x55, 0x9b, 0x78, 0xdb, 0xea, 0xe1, 0xe6, 0x76, 0xd3, 0xd2, + 0xf2, 0x3d, 0xd3, 0x20, 0x06, 0x9a, 0xb6, 0xff, 0x9e, 0xbd, 0x2e, 0x6e, 0xb6, 0x0d, 0xa3, 0xdd, + 0xc1, 0xdb, 0x0e, 0xf4, 0xa4, 0x7f, 0xba, 0xdd, 0xc2, 0x56, 0xd3, 0xd4, 0x7a, 0xc4, 0x30, 0x29, + 0xa6, 0x78, 0x2d, 0x88, 0x41, 0xb4, 0x2e, 0xb6, 0x88, 0xda, 0xed, 0x31, 0x84, 0xab, 0x41, 0x84, + 0x1f, 0x9a, 0x6a, 0xaf, 0x87, 0x4d, 0x8b, 0xae, 0x4b, 0xab, 0xb0, 0xbc, 0x87, 0xc9, 0x61, 0xa7, + 0xdf, 0xd6, 0xf4, 0x8a, 0x7e, 0x6a, 0xc8, 0xf8, 0xd3, 0x3e, 0xb6, 0x88, 0xf4, 0x77, 0x01, 0x56, + 0x02, 0x0b, 0x56, 0xcf, 0xd0, 0x2d, 0x8c, 0x10, 0xa4, 0x74, 0xb5, 0x8b, 0x73, 0xc2, 0xa6, 0xb0, + 0x35, 0x27, 0x3b, 0xff, 0xd1, 0x4d, 0xc8, 0x9c, 0x61, 0xbd, 0x65, 0x98, 0xca, 0x19, 0x36, 0x2d, + 0xcd, 0xd0, 0x73, 0x09, 0x67, 0x75, 0x91, 0x42, 0x8f, 0x29, 0x10, 0xed, 0xc1, 0x6c, 0x57, 0xd5, + 0xb5, 0x53, 0x6c, 0x91, 0x5c, 0x72, 0x33, 0xb9, 0x35, 0xbf, 0xf3, 0x6a, 0x9e, 0x6e, 0x35, 0x1f, + 0x2a, 0x2b, 0xff, 0x90, 0x61, 0x97, 0x75, 0x62, 0x9e, 0xcb, 0x1e, 0xb1, 0x78, 0x0f, 0x16, 0xb9, + 0x25, 0x94, 0x85, 0xe4, 0x27, 0xf8, 0x9c, 0xe9, 0x64, 0xff, 0x45, 0xcb, 0x90, 0x3e, 0x53, 0x3b, + 0x7d, 0xcc, 0x34, 0xa1, 0x0f, 0x77, 0x13, 0xdf, 0x16, 0xa4, 0xab, 0xb0, 0xee, 0x49, 0x2b, 0xa9, + 0x3d, 0xf5, 0x44, 0xeb, 0x68, 0x44, 0xc3, 0x96, 0xbb, 0xf5, 0x8f, 0x60, 0x23, 0x62, 0x9d, 0x59, + 0xe0, 0x3e, 0x2c, 0x34, 0x7d, 0xf0, 0x9c, 0xe0, 0x6c, 0x25, 0xe7, 0x6e, 0x25, 0x40, 0x79, 0x2e, + 0x73, 0xd8, 0xd2, 0xbf, 0x04, 0xc8, 0x06, 0x51, 0xd0, 0x7d, 0x98, 0xb1, 0xb0, 0x79, 0xa6, 0x35, + 0xa9, 0x5d, 0xe7, 0x77, 0x36, 0xa3, 0xb8, 0xe5, 0xeb, 0x14, 0x6f, 0x7f, 0x4a, 0x76, 0x49, 0xc4, + 0x5f, 0x08, 0x30, 0xc3, 0xc0, 0xe8, 0x6d, 0x48, 0x91, 0xf3, 0x1e, 0x65, 0x93, 0xd9, 0xb9, 0x39, + 0x8a, 0x4d, 0xbe, 0x71, 0xde, 0xc3, 0xb2, 0x43, 0x22, 0x7d, 0x00, 0x29, 0xfb, 0x09, 0xcd, 0xc3, + 0xcc, 0x51, 0xed, 0x41, 0xed, 0xe0, 0xc3, 0x5a, 0x76, 0x0a, 0xad, 0x02, 0x2a, 0x1d, 0xd4, 0x1a, + 0xf2, 0x41, 0xb5, 0x5a, 0x96, 0x95, 0x7a, 0x59, 0x3e, 0xae, 0x94, 0xca, 0x59, 0x01, 0xbd, 0x08, + 0x9b, 0xc7, 0x07, 0xd5, 0xa3, 0x87, 0x65, 0xa5, 0x50, 0x2a, 0x95, 0xeb, 0xf5, 0x4a, 0xb1, 0x52, + 0xad, 0x34, 0x1e, 0x29, 0xa5, 0x83, 0x5a, 0xbd, 0x21, 0x17, 0x2a, 0xb5, 0x46, 0x3d, 0x9b, 0x28, + 0x4e, 0x53, 0x6d, 0xa4, 0x0c, 0x2c, 0x1c, 0x9a, 0xc6, 0x09, 0x76, 0x6d, 0x5c, 0x80, 0x45, 0xf6, + 0xcc, 0x6c, 0xfa, 0x2d, 0x48, 0x9b, 0x58, 0x6d, 0x9d, 0xb3, 0xed, 0x8b, 0x79, 0xea, 0xb7, 0x79, + 0xd7, 0x6f, 0xf3, 0x45, 0xc3, 0xe8, 0x1c, 0xdb, 0x67, 0x28, 0x53, 0x44, 0xe9, 0xab, 0x14, 0x2c, + 0x95, 0x4c, 0xac, 0x12, 0x7c, 0x6c, 0x74, 0xfa, 0x5d, 0x97, 0x75, 0xa8, 0x7f, 0xde, 0x87, 0x8c, + 0x7d, 0x06, 0x4d, 0x8d, 0x9c, 0x2b, 0xa6, 0xaa, 0xb7, 0xa9, 0x57, 0xcc, 0xef, 0xac, 0xb8, 0xe6, + 0x29, 0xb1, 0x55, 0xd9, 0x5e, 0x94, 0x17, 0x9b, 0xfe, 0x47, 0x54, 0x81, 0xa5, 0x33, 0x47, 0x84, + 0xc2, 0x1d, 0x7b, 0x92, 0x3f, 0x76, 0xaa, 0x85, 0xef, 0xd8, 0xd1, 0x19, 0x0f, 0xd1, 0xb0, 0x85, + 0x1e, 0x00, 0xf4, 0x54, 0x53, 0xed, 0x62, 0x82, 0x4d, 0x2b, 0x97, 0xe2, 0x63, 0x20, 0x64, 0x37, + 0xf9, 0x43, 0x0f, 0x9b, 0xc6, 0x80, 0x8f, 0x1c, 0xed, 0xd9, 0x4e, 0xd3, 0x34, 0x31, 0xb1, 0x72, + 0x69, 0x87, 0xd3, 0x56, 0x1c, 0xa7, 0x3a, 0x45, 0x75, 0xd8, 0x14, 0x93, 0xbf, 0x2c, 0x0a, 0xb2, + 0x4b, 0x8d, 0x0e, 0x60, 0xc5, 0xdd, 0xa0, 0xa1, 0x13, 0xac, 0x13, 0xc5, 0x32, 0xfa, 0x66, 0x13, + 0xe7, 0xa6, 0x1d, 0x2b, 0xad, 0x05, 0xb6, 0x48, 0x71, 0xea, 0x0e, 0x8a, 0xcc, 0x4c, 0xc3, 0x01, + 0xd1, 0x63, 0x10, 0xd5, 0x66, 0x13, 0x5b, 0x96, 0x46, 0x6d, 0xa1, 0x98, 0xf8, 0xd3, 0xbe, 0x66, + 0xe2, 0x2e, 0xd6, 0x89, 0x95, 0x9b, 0xe1, 0xb9, 0x36, 0x8c, 0x9e, 0xd1, 0x31, 0xda, 0xe7, 0xf2, + 0x00, 0x47, 0xbe, 0xc2, 0x91, 0xfb, 0x56, 0x2c, 0xf1, 0x1d, 0x78, 0x21, 0x60, 0x94, 0x49, 0xa2, + 0x5f, 0xbc, 0x0b, 0x0b, 0x7e, 0x4b, 0x4c, 0x94, 0x39, 0x7e, 0x96, 0x80, 0xa5, 0x10, 0x1b, 0xa0, + 0x7d, 0x98, 0xb5, 0x74, 0xb5, 0x67, 0x3d, 0x31, 0x08, 0xf3, 0xdf, 0x5b, 0x31, 0x26, 0xcb, 0xd7, + 0x19, 0x2e, 0x7d, 0xdc, 0x9f, 0x92, 0x3d, 0x6a, 0x54, 0x84, 0x69, 0x6a, 0x4f, 0xe6, 0xa0, 0x5b, + 0x71, 0x7c, 0x28, 0xcc, 0xe3, 0xc2, 0x28, 0xc5, 0xd7, 0x21, 0xc3, 0x4b, 0x40, 0xd7, 0x60, 0xde, + 0x95, 0xa0, 0x68, 0x2d, 0xb6, 0x57, 0x70, 0x41, 0x95, 0x96, 0xf8, 0x2a, 0x2c, 0xf8, 0x99, 0xa1, + 0x35, 0x98, 0x63, 0x0e, 0xe1, 0xa1, 0xcf, 0x52, 0x40, 0xa5, 0xe5, 0xc5, 0xf4, 0x77, 0x60, 0x99, + 0xf7, 0x33, 0x16, 0xca, 0x2f, 0x79, 0x7b, 0xa0, 0xb6, 0xc8, 0xf0, 0x7b, 0x70, 0xf5, 0x94, 0x7e, + 0x9b, 0x82, 0x6c, 0x30, 0x68, 0xd0, 0x7d, 0x48, 0x9f, 0x74, 0x8c, 0xe6, 0x27, 0x8c, 0xf6, 0xc5, + 0xa8, 0xe8, 0xca, 0x17, 0x6d, 0x2c, 0x0a, 0xdd, 0x9f, 0x92, 0x29, 0x91, 0x4d, 0xdd, 0x35, 0xfa, + 0x3a, 0x61, 0xd6, 0x8b, 0xa6, 0x7e, 0x68, 0x63, 0x0d, 0xa8, 0x1d, 0x22, 0xb4, 0x0b, 0xf3, 0xd4, + 0xed, 0x94, 0xae, 0xd1, 0xc2, 0xb9, 0xa4, 0xc3, 0xe3, 0x46, 0x24, 0x8f, 0x82, 0x83, 0xfb, 0xd0, + 0x68, 0x61, 0x19, 0x54, 0xef, 0xbf, 0xb8, 0x08, 0xf3, 0x3e, 0xdd, 0xc4, 0x3d, 0x98, 0xf7, 0x09, + 0x43, 0x97, 0x61, 0xe6, 0xd4, 0x52, 0xbc, 0x0c, 0x3d, 0x27, 0x4f, 0x9f, 0x5a, 0x4e, 0xd2, 0xbd, + 0x06, 0xf3, 0x8e, 0x16, 0xca, 0x69, 0x47, 0x6d, 0x5b, 0xb9, 0xc4, 0x66, 0xd2, 0x3e, 0x23, 0x07, + 0xf4, 0x9e, 0x0d, 0x11, 0xff, 0x21, 0x00, 0x0c, 0x44, 0xa2, 0xfb, 0x90, 0x72, 0xb4, 0xa4, 0x79, + 0x7e, 0x6b, 0x0c, 0x2d, 0xf3, 0x8e, 0xaa, 0x0e, 0x95, 0xf4, 0x2b, 0x01, 0x52, 0x0e, 0x9b, 0x60, + 0xae, 0xaf, 0x57, 0x6a, 0x7b, 0xd5, 0xb2, 0x52, 0x3b, 0xd8, 0x2d, 0x2b, 0x1f, 0xca, 0x95, 0x46, + 0x59, 0xce, 0x0a, 0x68, 0x0d, 0x2e, 0xfb, 0xe1, 0x72, 0xb9, 0xb0, 0x5b, 0x96, 0x95, 0x83, 0x5a, + 0xf5, 0x51, 0x36, 0x81, 0x44, 0x58, 0x7d, 0x78, 0x54, 0x6d, 0x54, 0x86, 0xd7, 0x92, 0x68, 0x1d, + 0x72, 0xbe, 0x35, 0xc6, 0x83, 0xb1, 0x4d, 0xd9, 0x6c, 0x7d, 0xab, 0xf4, 0x2f, 0x5b, 0x4c, 0x17, + 0x17, 0xbd, 0xc3, 0x70, 0x9c, 0xed, 0x43, 0x58, 0xe4, 0x72, 0xb4, 0x5d, 0x72, 0xb0, 0xa4, 0xd2, + 0x52, 0x4e, 0xce, 0x89, 0x73, 0x0d, 0x0b, 0x5b, 0x49, 0x79, 0xd1, 0x85, 0x16, 0x6d, 0xa0, 0x6d, + 0xd6, 0x8e, 0xd6, 0xd5, 0x08, 0xc3, 0x49, 0x38, 0x38, 0xe0, 0x80, 0x1c, 0x04, 0xe9, 0x8b, 0x04, + 0x4c, 0xb3, 0xb3, 0xb9, 0xe9, 0xbb, 0x25, 0x38, 0x96, 0x2e, 0x94, 0xb2, 0xe4, 0x82, 0x23, 0xc1, + 0x07, 0x07, 0xda, 0x87, 0x8c, 0x3f, 0x95, 0x3e, 0x75, 0x0b, 0x9d, 0xeb, 0xfc, 0x01, 0xf9, 0xe3, + 0xf9, 0x29, 0x2b, 0x6f, 0x16, 0xcf, 0xfc, 0x30, 0x54, 0x84, 0x4c, 0x20, 0x1b, 0xa7, 0x46, 0x67, + 0xe3, 0xc5, 0x26, 0x97, 0x98, 0x0a, 0xb0, 0xe4, 0x26, 0xd2, 0x0e, 0x56, 0x08, 0x4b, 0xb4, 0xec, + 0xb6, 0xc8, 0x0e, 0x25, 0x60, 0x34, 0x40, 0x76, 0x61, 0xe2, 0xbb, 0x80, 0x86, 0x75, 0x9d, 0x28, + 0x6b, 0xf6, 0x61, 0x29, 0x24, 0xc5, 0xa3, 0x3c, 0xcc, 0x39, 0x47, 0x65, 0x69, 0x04, 0xb3, 0x12, + 0x6a, 0x58, 0xa3, 0x01, 0x8a, 0x8d, 0xdf, 0x33, 0xf1, 0x29, 0x36, 0x4d, 0xdc, 0x72, 0xc2, 0x23, + 0x14, 0xdf, 0x43, 0x91, 0x7e, 0x22, 0xc0, 0xac, 0x0b, 0x47, 0x77, 0x61, 0xd6, 0xc2, 0x6d, 0x7a, + 0xfd, 0x50, 0x59, 0x57, 0x83, 0xb4, 0xf9, 0x3a, 0x43, 0x60, 0xc5, 0xa6, 0x8b, 0x6f, 0x17, 0x9b, + 0xdc, 0xd2, 0x44, 0x9b, 0xff, 0xa3, 0x00, 0x4b, 0xbb, 0xb8, 0x83, 0x83, 0x55, 0x4a, 0x5c, 0x86, + 0xf5, 0x5f, 0xec, 0x09, 0xfe, 0x62, 0x0f, 0x61, 0x15, 0x73, 0xb1, 0x5f, 0xe8, 0xb2, 0x5b, 0x85, + 0x65, 0x5e, 0x1a, 0x4d, 0xef, 0xd2, 0x3f, 0x93, 0x70, 0xd5, 0xf6, 0x05, 0xd3, 0xe8, 0x74, 0xb0, + 0x79, 0xd8, 0x3f, 0xe9, 0x68, 0xd6, 0x93, 0x09, 0x36, 0x77, 0x19, 0x66, 0x74, 0xa3, 0xe5, 0x0b, + 0x9e, 0x69, 0xfb, 0xb1, 0xd2, 0x42, 0x65, 0xb8, 0x14, 0x2c, 0xb3, 0xce, 0x59, 0x12, 0x8e, 0x2e, + 0xb2, 0xb2, 0x67, 0xc1, 0x1b, 0x44, 0x84, 0x59, 0xbb, 0x40, 0x34, 0xf4, 0xce, 0xb9, 0x13, 0x31, + 0xb3, 0xb2, 0xf7, 0x8c, 0xe4, 0x60, 0xc5, 0xf4, 0x86, 0x57, 0x31, 0xc5, 0xee, 0x28, 0xae, 0x78, + 0xfa, 0x78, 0x28, 0xe2, 0xa7, 0x1d, 0xd6, 0x6f, 0x8f, 0xc9, 0x7a, 0x64, 0x26, 0xb8, 0xc8, 0x29, + 0x3e, 0x87, 0xf0, 0xfd, 0xab, 0x00, 0xd7, 0x22, 0xb7, 0xc0, 0xae, 0xfc, 0x16, 0xbc, 0xd0, 0xa3, + 0x0b, 0x9e, 0x11, 0x68, 0x94, 0xdd, 0x1b, 0x69, 0x04, 0xd6, 0xe9, 0x31, 0x28, 0x67, 0x86, 0x4c, + 0x8f, 0x03, 0x8a, 0x05, 0x58, 0x0a, 0x41, 0x9b, 0x68, 0x33, 0x5f, 0x0a, 0xb0, 0x39, 0x50, 0xe5, + 0x48, 0xef, 0x3d, 0x3f, 0xf7, 0x6d, 0x0c, 0x7c, 0x8b, 0xa6, 0xfc, 0x3b, 0xc3, 0x7b, 0x0f, 0x17, + 0xf8, 0x75, 0x45, 0xf0, 0x0d, 0xb8, 0x1e, 0x23, 0x9a, 0x85, 0xf3, 0x17, 0x29, 0xb8, 0x7e, 0xac, + 0x76, 0xb4, 0x96, 0x57, 0xc8, 0x85, 0xf4, 0xc4, 0xf1, 0x26, 0x69, 0x0e, 0x45, 0x00, 0xcd, 0x5a, + 0xf7, 0xbd, 0xa8, 0x1d, 0xc5, 0x7f, 0x8c, 0xeb, 0xf0, 0x39, 0x36, 0x61, 0x8f, 0x42, 0x9a, 0xb0, + 0xb7, 0xc7, 0xd7, 0x35, 0xae, 0x25, 0x3b, 0x0a, 0x26, 0x98, 0xb7, 0xc6, 0xe7, 0x1b, 0xe3, 0x05, + 0x17, 0x8e, 0xe2, 0x6f, 0xb2, 0x6b, 0xfa, 0x73, 0x0a, 0xa4, 0xb8, 0xdd, 0xb3, 0x1c, 0x22, 0xc3, + 0x5c, 0xd3, 0xd0, 0x4f, 0x35, 0xb3, 0x8b, 0x5b, 0xac, 0xfa, 0x7f, 0x73, 0x1c, 0xe3, 0xb1, 0x04, + 0x52, 0x72, 0x69, 0xe5, 0x01, 0x1b, 0x94, 0x83, 0x99, 0x2e, 0xb6, 0x2c, 0xb5, 0xed, 0xaa, 0xe5, + 0x3e, 0x8a, 0x9f, 0x27, 0x61, 0xce, 0x23, 0x41, 0xfa, 0x90, 0x07, 0xd3, 0xf4, 0xb5, 0xf7, 0x2c, + 0x0a, 0x3c, 0xbb, 0x33, 0x27, 0x9e, 0xc1, 0x99, 0x5b, 0x9c, 0x33, 0xd3, 0x70, 0xd8, 0x7d, 0x26, + 0xb5, 0x63, 0xfc, 0xfa, 0x1b, 0x77, 0x40, 0xe9, 0x07, 0x80, 0xaa, 0x9a, 0xc5, 0xba, 0x28, 0x2f, + 0x2d, 0xd9, 0x4d, 0x93, 0xfa, 0x54, 0xc1, 0x3a, 0x31, 0x35, 0x56, 0xae, 0xa7, 0x65, 0xe8, 0xaa, + 0x4f, 0xcb, 0x14, 0x62, 0x97, 0xf4, 0x16, 0x51, 0x4d, 0xa2, 0xe9, 0x6d, 0x85, 0x18, 0x9f, 0x60, + 0x6f, 0x30, 0xe9, 0x42, 0x1b, 0x36, 0x50, 0xfa, 0x4c, 0x80, 0x25, 0x8e, 0x3d, 0xf3, 0xc9, 0x7b, + 0x30, 0x33, 0xe0, 0xcd, 0x95, 0xf1, 0x21, 0xd8, 0x79, 0x6a, 0x36, 0x97, 0x02, 0x6d, 0x00, 0xe8, + 0xf8, 0x29, 0xe1, 0xe4, 0xce, 0xd9, 0x10, 0x47, 0xa6, 0xb8, 0x0d, 0x69, 0x6a, 0x86, 0x71, 0xfb, + 0xe5, 0xcf, 0x13, 0x80, 0xf6, 0x30, 0xf1, 0xda, 0x20, 0x66, 0x83, 0x08, 0x5f, 0x12, 0x9e, 0xc1, + 0x97, 0xde, 0xe7, 0x7c, 0x89, 0x7a, 0xe3, 0x2d, 0xdf, 0x84, 0x36, 0x20, 0x3a, 0x36, 0x13, 0x46, + 0xb4, 0x1e, 0xb4, 0x9e, 0x1b, 0xaf, 0xf5, 0xb8, 0xa0, 0xcb, 0xec, 0xc2, 0x12, 0xa7, 0x33, 0x3b, + 0xd3, 0xdb, 0x80, 0xd4, 0x33, 0x55, 0xeb, 0xa8, 0xb6, 0x5e, 0x6e, 0x67, 0xc7, 0x3a, 0xbd, 0x4b, + 0xde, 0x8a, 0x4b, 0x26, 0x49, 0xfe, 0x82, 0x81, 0xf1, 0x0b, 0x4e, 0x8c, 0x3b, 0xfe, 0x8b, 0x76, + 0x08, 0x87, 0xc9, 0xdd, 0x0b, 0x9d, 0x1a, 0xdf, 0x18, 0x2e, 0x12, 0xd8, 0x64, 0x36, 0x72, 0x80, + 0xfc, 0xef, 0x04, 0xac, 0xc5, 0x60, 0xa3, 0x7b, 0x90, 0x34, 0x7b, 0x4d, 0xe6, 0x4c, 0x2f, 0x8f, + 0xc1, 0x3f, 0x2f, 0x1f, 0x96, 0xf6, 0xa7, 0x64, 0x9b, 0x4a, 0xfc, 0x79, 0x02, 0x92, 0xf2, 0x61, + 0x09, 0xbd, 0xcb, 0x8d, 0x91, 0x5f, 0x1b, 0x93, 0x8b, 0x7f, 0x9a, 0xfc, 0x17, 0x21, 0x6c, 0x9c, + 0x9c, 0x83, 0xe5, 0x92, 0x5c, 0x2e, 0x34, 0xca, 0xca, 0x6e, 0xb9, 0x5a, 0x6e, 0x94, 0x15, 0x3a, + 0x44, 0xce, 0x0a, 0x68, 0x1d, 0x72, 0x87, 0x47, 0xc5, 0x6a, 0xa5, 0xbe, 0xaf, 0x1c, 0xd5, 0xdc, + 0x7f, 0x6c, 0x35, 0x81, 0xb2, 0xb0, 0x50, 0xad, 0xd4, 0x1b, 0x0c, 0x50, 0xcf, 0x26, 0x6d, 0xc8, + 0x5e, 0xb9, 0xa1, 0x94, 0x0a, 0x87, 0x85, 0x52, 0xa5, 0xf1, 0x28, 0x9b, 0x42, 0x22, 0xac, 0xf2, + 0xbc, 0xeb, 0xb5, 0xc2, 0x61, 0x7d, 0xff, 0xa0, 0x91, 0x4d, 0x23, 0x04, 0x19, 0x87, 0xde, 0x05, + 0xd5, 0xb3, 0xd3, 0x36, 0x87, 0x52, 0xf5, 0xa0, 0xe6, 0xe9, 0x30, 0x83, 0x96, 0x21, 0xeb, 0x4a, + 0x96, 0xcb, 0x85, 0x5d, 0x67, 0x8a, 0x31, 0xeb, 0x0d, 0xbc, 0xbe, 0x4c, 0xc0, 0x0a, 0x9d, 0x78, + 0xb9, 0xf3, 0x35, 0x37, 0x06, 0xb7, 0x20, 0x4b, 0x7b, 0x74, 0x25, 0x58, 0x25, 0x65, 0x28, 0xfc, + 0xd8, 0xad, 0x95, 0xdc, 0xe9, 0x74, 0xc2, 0x37, 0x9d, 0xae, 0x04, 0x2b, 0xc7, 0x5b, 0xfc, 0x1c, + 0x37, 0x20, 0x2d, 0xae, 0x19, 0x79, 0x18, 0x52, 0xda, 0xdc, 0x8e, 0xe7, 0x16, 0x97, 0xf6, 0x2f, + 0xd2, 0x79, 0x5c, 0x30, 0x7a, 0xdf, 0x83, 0xd5, 0xa0, 0xbe, 0x2c, 0x90, 0x5e, 0x1b, 0x9a, 0xb6, + 0x7a, 0xe9, 0xc4, 0xc3, 0xf5, 0x30, 0xa4, 0xbf, 0x09, 0x30, 0xeb, 0x82, 0xed, 0x94, 0x6c, 0x69, + 0x3f, 0xc2, 0xdc, 0x74, 0x67, 0xce, 0x86, 0x78, 0xc3, 0x22, 0xff, 0x9c, 0x34, 0x11, 0x9c, 0x93, + 0x86, 0x9e, 0x73, 0x32, 0xf4, 0x9c, 0xbf, 0x0b, 0x8b, 0x4d, 0x5b, 0x7d, 0xcd, 0xd0, 0x15, 0xa2, + 0x75, 0xdd, 0xe1, 0xcd, 0xf0, 0x7b, 0x8d, 0x86, 0xfb, 0xc2, 0x4e, 0x5e, 0x70, 0x09, 0x6c, 0x10, + 0xda, 0x84, 0x05, 0xe7, 0x3d, 0x87, 0x42, 0x0c, 0xa5, 0x6f, 0xe1, 0x5c, 0xda, 0x69, 0x65, 0xc1, + 0x81, 0x35, 0x8c, 0x23, 0x0b, 0x4b, 0x7f, 0x12, 0x60, 0x85, 0x76, 0xe8, 0x41, 0x77, 0x1c, 0x35, + 0xef, 0xf5, 0x7b, 0x5c, 0x20, 0xcb, 0x87, 0x32, 0xfc, 0xba, 0x1a, 0x94, 0x1c, 0xac, 0x06, 0xe5, + 0xb1, 0xae, 0xe4, 0x37, 0x02, 0x2c, 0xdb, 0x57, 0xac, 0xbb, 0xf0, 0xbc, 0x6f, 0xfc, 0x09, 0x4e, + 0x32, 0x60, 0xcc, 0x54, 0xd0, 0x98, 0xd2, 0xef, 0x04, 0x58, 0x09, 0xe8, 0xca, 0x3c, 0xf5, 0x9d, + 0x60, 0xf9, 0x70, 0xc3, 0x5f, 0x3e, 0x0c, 0xe1, 0x4f, 0x58, 0x40, 0xdc, 0x71, 0x0b, 0x88, 0xc9, + 0x02, 0xe2, 0xab, 0x14, 0xac, 0xd6, 0x8c, 0x16, 0xae, 0x13, 0xb5, 0x3d, 0xc9, 0x50, 0xea, 0xfb, + 0xc3, 0x3d, 0x3e, 0xf5, 0x9d, 0x1d, 0x57, 0x58, 0x38, 0xd7, 0x71, 0x5a, 0x7b, 0x94, 0x87, 0x25, + 0x8b, 0xa8, 0x6d, 0xe7, 0xd0, 0x54, 0xb3, 0x8d, 0x89, 0xd2, 0x53, 0xc9, 0x13, 0x76, 0x22, 0x97, + 0xd8, 0x52, 0xc3, 0x59, 0x39, 0x54, 0xc9, 0x93, 0xf0, 0x59, 0x51, 0x6a, 0xe2, 0x59, 0xd1, 0xfb, + 0xc1, 0x76, 0xed, 0xd5, 0x11, 0x7b, 0x89, 0x49, 0xbd, 0xdf, 0x8b, 0x98, 0x03, 0xbd, 0x3e, 0x82, + 0xe5, 0xe8, 0xf9, 0xcf, 0xc5, 0xe7, 0x1e, 0xdf, 0xf0, 0x08, 0xe9, 0x0a, 0x5c, 0x1e, 0xda, 0x3c, + 0x0b, 0xf4, 0x36, 0xe4, 0xec, 0xa5, 0x23, 0xdd, 0x9a, 0xd0, 0x1d, 0x23, 0x3c, 0x26, 0x11, 0xe1, + 0x31, 0xd2, 0x1a, 0x5c, 0x09, 0x11, 0xc4, 0xb4, 0xf8, 0x43, 0x9a, 0xaa, 0x31, 0xf9, 0x34, 0xf3, + 0xa3, 0xa8, 0xa8, 0x78, 0xd3, 0x7f, 0xec, 0xa1, 0x83, 0xbf, 0xaf, 0x23, 0x2e, 0xae, 0xc1, 0xbc, + 0x1f, 0x8f, 0x25, 0x2b, 0x32, 0x22, 0x70, 0xd2, 0x17, 0x1a, 0xb2, 0x4e, 0x07, 0x86, 0xac, 0xd5, + 0x41, 0x50, 0xcd, 0xf0, 0x05, 0x48, 0xa4, 0x29, 0x62, 0xc2, 0xea, 0xf1, 0x50, 0x58, 0xcd, 0xf2, + 0x93, 0xdb, 0x48, 0xa6, 0xff, 0x07, 0x81, 0xc5, 0x9c, 0x3a, 0x74, 0xa4, 0x2a, 0x3d, 0x06, 0x91, + 0x7a, 0xfc, 0xe4, 0x43, 0xce, 0x80, 0x1b, 0x25, 0x82, 0x6e, 0x24, 0x6d, 0xc0, 0x5a, 0x28, 0x6f, + 0x26, 0xfa, 0x11, 0xd5, 0x6b, 0x0f, 0xb3, 0x1e, 0xb9, 0x4e, 0x54, 0x62, 0x8d, 0x2b, 0x99, 0x2d, + 0xfa, 0x25, 0x53, 0x90, 0x23, 0x79, 0x8f, 0xee, 0x2a, 0xc8, 0x9a, 0xdd, 0xb8, 0xaf, 0x40, 0xba, + 0xef, 0x8c, 0x7b, 0xe8, 0x7d, 0xbb, 0xc4, 0xbb, 0xf4, 0x91, 0xbd, 0x24, 0x53, 0x0c, 0xe9, 0xf7, + 0x02, 0xcc, 0xfb, 0xc0, 0x68, 0x1d, 0xe6, 0xbc, 0xee, 0xcf, 0x2d, 0x0d, 0x3d, 0x80, 0x7d, 0x06, + 0xc4, 0x20, 0x6a, 0x87, 0xbd, 0x41, 0xa4, 0x0f, 0x76, 0x35, 0xdf, 0xb7, 0x30, 0xad, 0x1c, 0x92, + 0xb2, 0xf3, 0x1f, 0xbd, 0x06, 0xa9, 0xbe, 0xae, 0x11, 0x27, 0xf6, 0x32, 0xc1, 0xa0, 0x72, 0x44, + 0xe5, 0x8f, 0x74, 0x8d, 0xc8, 0x0e, 0x96, 0x74, 0x0b, 0x52, 0xf6, 0x13, 0xdf, 0x24, 0xcd, 0x41, + 0xba, 0xf8, 0xa8, 0x51, 0xae, 0x67, 0x05, 0x04, 0x30, 0x5d, 0xa9, 0x1d, 0xec, 0x96, 0xeb, 0xd9, + 0x84, 0xb4, 0xee, 0x6d, 0x3d, 0xac, 0x09, 0xfd, 0x98, 0x1e, 0x49, 0x54, 0xfb, 0x59, 0x08, 0x6d, + 0x3f, 0x37, 0xb8, 0xcb, 0x69, 0x44, 0xe3, 0xf9, 0x85, 0x00, 0x2b, 0xa1, 0x78, 0xe8, 0x8e, 0xbf, + 0xe5, 0xbc, 0x1e, 0xcb, 0xd3, 0xdf, 0x6c, 0xfe, 0x54, 0xa0, 0xcd, 0xe6, 0x5d, 0xae, 0xd9, 0x7c, + 0x69, 0x24, 0xbd, 0xbf, 0xcd, 0x2c, 0x45, 0x74, 0x99, 0xf5, 0x46, 0x61, 0xaf, 0xac, 0x1c, 0xd5, + 0xe8, 0xaf, 0xd7, 0x65, 0x2e, 0x43, 0xd6, 0xee, 0x1a, 0xd9, 0xa7, 0x4b, 0xf5, 0x46, 0x81, 0xfb, + 0x4c, 0x69, 0x19, 0x10, 0xb3, 0xa1, 0xff, 0x5b, 0xb8, 0xcf, 0x04, 0x58, 0xe2, 0xc0, 0xcc, 0xa4, + 0xbe, 0x57, 0x01, 0x02, 0xf7, 0x2a, 0x60, 0x1b, 0x96, 0xed, 0x22, 0x95, 0x7a, 0xad, 0xa5, 0xf4, + 0xb0, 0xa9, 0xd8, 0x2b, 0xcc, 0x77, 0x2e, 0x75, 0xd5, 0xa7, 0x6c, 0x74, 0x74, 0x88, 0x4d, 0x9b, + 0xf1, 0x73, 0x18, 0x96, 0xec, 0xfc, 0x47, 0x80, 0xd9, 0x4a, 0x0b, 0xeb, 0xc4, 0x3e, 0x8f, 0x1a, + 0x2c, 0x72, 0x1f, 0xd4, 0xa1, 0xf5, 0x88, 0xef, 0xec, 0x9c, 0x0d, 0x8a, 0x1b, 0xb1, 0x5f, 0xe1, + 0x49, 0x53, 0xe8, 0xd4, 0xf7, 0x31, 0x20, 0x37, 0x31, 0x7a, 0x71, 0x88, 0x32, 0xc4, 0x35, 0xc5, + 0x9b, 0x23, 0xb0, 0x3c, 0x39, 0x6f, 0x41, 0xda, 0xf9, 0x2c, 0x0c, 0x2d, 0x7b, 0xdf, 0xad, 0xf9, + 0xbe, 0x1a, 0x13, 0x57, 0x02, 0x50, 0x97, 0x6e, 0xe7, 0xbf, 0x33, 0x00, 0x83, 0xd1, 0x04, 0x7a, + 0x00, 0x0b, 0xfe, 0x2f, 0x53, 0xd0, 0x5a, 0xcc, 0x77, 0x51, 0xe2, 0x7a, 0xf8, 0xa2, 0xa7, 0xd3, + 0x03, 0x58, 0xf0, 0xbf, 0x07, 0x1d, 0x30, 0x0b, 0x79, 0x17, 0x3b, 0x60, 0x16, 0xfa, 0xea, 0x74, + 0x0a, 0x75, 0xe0, 0x72, 0xc4, 0x9b, 0x30, 0xf4, 0xd2, 0x78, 0xef, 0x0b, 0xc5, 0x97, 0xc7, 0x7c, + 0xa5, 0x26, 0x4d, 0x21, 0x13, 0xae, 0x44, 0xbe, 0x00, 0x42, 0x5b, 0xe3, 0xbe, 0x9e, 0x12, 0x5f, + 0x19, 0x03, 0xd3, 0x93, 0xd9, 0x07, 0x31, 0x7a, 0xea, 0x8c, 0x5e, 0x19, 0xfb, 0x75, 0x88, 0x78, + 0x6b, 0xfc, 0x21, 0xb6, 0x34, 0x85, 0xf6, 0x61, 0xde, 0x37, 0x92, 0x45, 0x62, 0xe8, 0x9c, 0x96, + 0x32, 0x5e, 0x8b, 0x99, 0xe1, 0x52, 0x4e, 0xbe, 0xb1, 0xe1, 0x80, 0xd3, 0xf0, 0xfc, 0x73, 0xc0, + 0x29, 0x64, 0xce, 0x18, 0x34, 0x7f, 0x20, 0x2f, 0x87, 0x99, 0x3f, 0x3c, 0xb1, 0x87, 0x99, 0x3f, + 0x22, 0xc9, 0x4b, 0x53, 0xe8, 0x03, 0xc8, 0xf0, 0x63, 0x13, 0xb4, 0x11, 0x3b, 0xfe, 0x11, 0xaf, + 0x46, 0x2d, 0xfb, 0x59, 0xf2, 0x5d, 0xfa, 0x80, 0x65, 0xe8, 0xb4, 0x60, 0xc0, 0x32, 0xa2, 0xb9, + 0x9f, 0xb2, 0xf3, 0x13, 0xd7, 0x01, 0x0f, 0xf2, 0x53, 0x58, 0xd3, 0x3f, 0xc8, 0x4f, 0xa1, 0x6d, + 0xb3, 0x34, 0xb5, 0xf3, 0xe3, 0x34, 0xa4, 0x9c, 0x44, 0xda, 0x80, 0x17, 0x02, 0x9d, 0x06, 0xba, + 0x1a, 0xdf, 0x7f, 0x89, 0xd7, 0x22, 0xd7, 0x3d, 0x75, 0x1f, 0xc3, 0xa5, 0xa1, 0xde, 0x01, 0x6d, + 0xfa, 0xe9, 0xc2, 0xfa, 0x17, 0xf1, 0x7a, 0x0c, 0x46, 0x90, 0x37, 0x9f, 0x0b, 0x36, 0x47, 0x15, + 0xb7, 0x3c, 0xef, 0xa8, 0xf8, 0xff, 0x98, 0xde, 0x5b, 0xc1, 0xc8, 0x97, 0x78, 0xbd, 0x42, 0x63, + 0xfe, 0x46, 0x2c, 0x8e, 0x27, 0xe1, 0x23, 0xef, 0xc2, 0xf4, 0x55, 0x63, 0x88, 0x53, 0x2e, 0xb4, + 0x08, 0x14, 0xa5, 0x38, 0x94, 0xe0, 0x06, 0x82, 0xb1, 0x13, 0x24, 0x0e, 0x8b, 0x9a, 0x1b, 0xb1, + 0x38, 0xfe, 0x68, 0xf7, 0x5d, 0xed, 0x83, 0x68, 0x1f, 0x2e, 0x03, 0x06, 0xd1, 0x1e, 0x52, 0x0b, + 0x48, 0x53, 0x77, 0xdf, 0x01, 0x68, 0x5a, 0x9a, 0x42, 0xfb, 0x16, 0xb4, 0x31, 0x34, 0xe8, 0x7b, + 0x4f, 0xc3, 0x9d, 0xd6, 0x41, 0x8f, 0x68, 0x86, 0x6e, 0xe5, 0x7e, 0x3d, 0xeb, 0x34, 0x4d, 0x73, + 0x4d, 0x4b, 0xa3, 0xed, 0x43, 0x31, 0xfd, 0x38, 0xd9, 0xb4, 0xb4, 0x93, 0x69, 0x07, 0xff, 0x8d, + 0xff, 0x05, 0x00, 0x00, 0xff, 0xff, 0x47, 0x5d, 0xbf, 0x76, 0x3a, 0x30, 0x00, 0x00, +} diff --git a/vendor/github.com/kubernetes-csi/csi-lib-utils/protosanitizer/test/csitest.proto b/vendor/github.com/kubernetes-csi/csi-lib-utils/protosanitizer/test/csitest.proto new file mode 100644 index 000000000..7d8fccc75 --- /dev/null +++ b/vendor/github.com/kubernetes-csi/csi-lib-utils/protosanitizer/test/csitest.proto @@ -0,0 +1,1217 @@ +// Code generated by make; DO NOT EDIT. +syntax = "proto3"; +package csitest.v1; + +option go_package = "csitest"; + +import "google/protobuf/descriptor.proto"; +import "google/protobuf/timestamp.proto"; +import "google/protobuf/wrappers.proto"; +import "github.com/kubernetes-csi/csi-lib-utils/protosanitizer/test/csi.proto"; // required for csi_secret + +service Identity { + rpc GetPluginInfo(GetPluginInfoRequest) + returns (GetPluginInfoResponse) {} + + rpc GetPluginCapabilities(GetPluginCapabilitiesRequest) + returns (GetPluginCapabilitiesResponse) {} + + rpc Probe (ProbeRequest) + returns (ProbeResponse) {} +} + +service Controller { + rpc CreateVolume (CreateVolumeRequest) + returns (CreateVolumeResponse) {} + + rpc DeleteVolume (DeleteVolumeRequest) + returns (DeleteVolumeResponse) {} + + rpc ControllerPublishVolume (ControllerPublishVolumeRequest) + returns (ControllerPublishVolumeResponse) {} + + rpc ControllerUnpublishVolume (ControllerUnpublishVolumeRequest) + returns (ControllerUnpublishVolumeResponse) {} + + rpc ValidateVolumeCapabilities (ValidateVolumeCapabilitiesRequest) + returns (ValidateVolumeCapabilitiesResponse) {} + + rpc ListVolumes (ListVolumesRequest) + returns (ListVolumesResponse) {} + + rpc GetCapacity (GetCapacityRequest) + returns (GetCapacityResponse) {} + + rpc ControllerGetCapabilities (ControllerGetCapabilitiesRequest) + returns (ControllerGetCapabilitiesResponse) {} + + rpc CreateSnapshot (CreateSnapshotRequest) + returns (CreateSnapshotResponse) {} + + rpc DeleteSnapshot (DeleteSnapshotRequest) + returns (DeleteSnapshotResponse) {} + + rpc ListSnapshots (ListSnapshotsRequest) + returns (ListSnapshotsResponse) {} +} + +service Node { + rpc NodeStageVolume (NodeStageVolumeRequest) + returns (NodeStageVolumeResponse) {} + + rpc NodeUnstageVolume (NodeUnstageVolumeRequest) + returns (NodeUnstageVolumeResponse) {} + + rpc NodePublishVolume (NodePublishVolumeRequest) + returns (NodePublishVolumeResponse) {} + + rpc NodeUnpublishVolume (NodeUnpublishVolumeRequest) + returns (NodeUnpublishVolumeResponse) {} + + rpc NodeGetVolumeStats (NodeGetVolumeStatsRequest) + returns (NodeGetVolumeStatsResponse) {} + + rpc NodeGetCapabilities (NodeGetCapabilitiesRequest) + returns (NodeGetCapabilitiesResponse) {} + + rpc NodeGetInfo (NodeGetInfoRequest) + returns (NodeGetInfoResponse) {} +} +message GetPluginInfoRequest { + // Intentionally empty. +} + +message GetPluginInfoResponse { + // The name MUST follow domain name notation format + // (https://tools.ietf.org/html/rfc1035#section-2.3.1). It SHOULD + // include the plugin's host company name and the plugin name, + // to minimize the possibility of collisions. It MUST be 63 + // characters or less, beginning and ending with an alphanumeric + // character ([a-z0-9A-Z]) with dashes (-), dots (.), and + // alphanumerics between. This field is REQUIRED. + string name = 1; + + // This field is REQUIRED. Value of this field is opaque to the CO. + string vendor_version = 2; + + // This field is OPTIONAL. Values are opaque to the CO. + map manifest = 3; +} +message GetPluginCapabilitiesRequest { + // Intentionally empty. +} + +message GetPluginCapabilitiesResponse { + // All the capabilities that the controller service supports. This + // field is OPTIONAL. + repeated PluginCapability capabilities = 1; +} + +// Specifies a capability of the plugin. +message PluginCapability { + message Service { + enum Type { + UNKNOWN = 0; + + // CONTROLLER_SERVICE indicates that the Plugin provides RPCs for + // the ControllerService. Plugins SHOULD provide this capability. + // In rare cases certain plugins MAY wish to omit the + // ControllerService entirely from their implementation, but such + // SHOULD NOT be the common case. + // The presence of this capability determines whether the CO will + // attempt to invoke the REQUIRED ControllerService RPCs, as well + // as specific RPCs as indicated by ControllerGetCapabilities. + CONTROLLER_SERVICE = 1; + + // VOLUME_ACCESSIBILITY_CONSTRAINTS indicates that the volumes for + // this plugin MAY NOT be equally accessible by all nodes in the + // cluster. The CO MUST use the topology information returned by + // CreateVolumeRequest along with the topology information + // returned by NodeGetInfo to ensure that a given volume is + // accessible from a given node when scheduling workloads. + VOLUME_ACCESSIBILITY_CONSTRAINTS = 2; + } + Type type = 1; + } + + oneof type { + // Service that the plugin supports. + Service service = 1; + } +} +message ProbeRequest { + // Intentionally empty. +} + +message ProbeResponse { + // Readiness allows a plugin to report its initialization status back + // to the CO. Initialization for some plugins MAY be time consuming + // and it is important for a CO to distinguish between the following + // cases: + // + // 1) The plugin is in an unhealthy state and MAY need restarting. In + // this case a gRPC error code SHALL be returned. + // 2) The plugin is still initializing, but is otherwise perfectly + // healthy. In this case a successful response SHALL be returned + // with a readiness value of `false`. Calls to the plugin's + // Controller and/or Node services MAY fail due to an incomplete + // initialization state. + // 3) The plugin has finished initializing and is ready to service + // calls to its Controller and/or Node services. A successful + // response is returned with a readiness value of `true`. + // + // This field is OPTIONAL. If not present, the caller SHALL assume + // that the plugin is in a ready state and is accepting calls to its + // Controller and/or Node services (according to the plugin's reported + // capabilities). + .google.protobuf.BoolValue ready = 1; +} +message CreateVolumeRequest { + // The suggested name for the storage space. This field is REQUIRED. + // It serves two purposes: + // 1) Idempotency - This name is generated by the CO to achieve + // idempotency. The Plugin SHOULD ensure that multiple + // `CreateVolume` calls for the same name do not result in more + // than one piece of storage provisioned corresponding to that + // name. If a Plugin is unable to enforce idempotency, the CO's + // error recovery logic could result in multiple (unused) volumes + // being provisioned. + // In the case of error, the CO MUST handle the gRPC error codes + // per the recovery behavior defined in the "CreateVolume Errors" + // section below. + // The CO is responsible for cleaning up volumes it provisioned + // that it no longer needs. If the CO is uncertain whether a volume + // was provisioned or not when a `CreateVolume` call fails, the CO + // MAY call `CreateVolume` again, with the same name, to ensure the + // volume exists and to retrieve the volume's `volume_id` (unless + // otherwise prohibited by "CreateVolume Errors"). + // 2) Suggested name - Some storage systems allow callers to specify + // an identifier by which to refer to the newly provisioned + // storage. If a storage system supports this, it can optionally + // use this name as the identifier for the new volume. + // Any Unicode string that conforms to the length limit is allowed + // except those containing the following banned characters: + // U+0000-U+0008, U+000B, U+000C, U+000E-U+001F, U+007F-U+009F. + // (These are control characters other than commonly used whitespace.) + string name = 1; + + // This field is OPTIONAL. This allows the CO to specify the capacity + // requirement of the volume to be provisioned. If not specified, the + // Plugin MAY choose an implementation-defined capacity range. If + // specified it MUST always be honored, even when creating volumes + // from a source; which MAY force some backends to internally extend + // the volume after creating it. + CapacityRange capacity_range = 2; + + // The capabilities that the provisioned volume MUST have. SP MUST + // provision a volume that will satisfy ALL of the capabilities + // specified in this list. Otherwise SP MUST return the appropriate + // gRPC error code. + // The Plugin MUST assume that the CO MAY use the provisioned volume + // with ANY of the capabilities specified in this list. + // For example, a CO MAY specify two volume capabilities: one with + // access mode SINGLE_NODE_WRITER and another with access mode + // MULTI_NODE_READER_ONLY. In this case, the SP MUST verify that the + // provisioned volume can be used in either mode. + // This also enables the CO to do early validation: If ANY of the + // specified volume capabilities are not supported by the SP, the call + // MUST return the appropriate gRPC error code. + // This field is REQUIRED. + repeated VolumeCapability volume_capabilities = 3; + + // Plugin specific parameters passed in as opaque key-value pairs. + // This field is OPTIONAL. The Plugin is responsible for parsing and + // validating these parameters. COs will treat these as opaque. + map parameters = 4; + + // Secrets required by plugin to complete volume creation request. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. Renamed to test whether secret + // stripping is really based on the csi_secret option. + map seecreets = 5 [(csi.v1.csi_secret) = true]; + + // If specified, the new volume will be pre-populated with data from + // this source. This field is OPTIONAL. + VolumeContentSource volume_content_source = 6; + + // Specifies where (regions, zones, racks, etc.) the provisioned + // volume MUST be accessible from. + // An SP SHALL advertise the requirements for topological + // accessibility information in documentation. COs SHALL only specify + // topological accessibility information supported by the SP. + // This field is OPTIONAL. + // This field SHALL NOT be specified unless the SP has the + // VOLUME_ACCESSIBILITY_CONSTRAINTS plugin capability. + // If this field is not specified and the SP has the + // VOLUME_ACCESSIBILITY_CONSTRAINTS plugin capability, the SP MAY + // choose where the provisioned volume is accessible from. + TopologyRequirement accessibility_requirements = 7; + + // A secret value that isn't a string map. + int64 new_secret_int = 8 [(csi.v1.csi_secret) = true]; + + // We must recurse into maps. + map maybe_secret_map = 9; +} + +// Specifies what source the volume will be created from. One of the +// type fields MUST be specified. +message VolumeContentSource { + message SnapshotSource { + // Contains identity information for the existing source snapshot. + // This field is REQUIRED. Plugin is REQUIRED to support creating + // volume from snapshot if it supports the capability + // CREATE_DELETE_SNAPSHOT. + string snapshot_id = 1; + } + + message VolumeSource { + // Contains identity information for the existing source volume. + // This field is REQUIRED. Plugins reporting CLONE_VOLUME + // capability MUST support creating a volume from another volume. + string volume_id = 1; + + // A secret field that will only get stripped by code that + // can recurse into a oneof field. + string oneof_secret_field = 2 [(csi.v1.csi_secret) = true]; + } + + oneof type { + SnapshotSource snapshot = 1; + VolumeSource volume = 2; + } + + // A secret field that will only get stripped by code that + // can recurse into CreateVolumeRequest. + string nested_secret_field = 3 [(csi.v1.csi_secret) = true]; +} + +message CreateVolumeResponse { + // Contains all attributes of the newly created volume that are + // relevant to the CO along with information required by the Plugin + // to uniquely identify the volume. This field is REQUIRED. + Volume volume = 1; +} + +// Specify a capability of a volume. +message VolumeCapability { + // Indicate that the volume will be accessed via the block device API. + message BlockVolume { + // Intentionally empty, for now. + } + + // Indicate that the volume will be accessed via the filesystem API. + message MountVolume { + // The filesystem type. This field is OPTIONAL. + // An empty string is equal to an unspecified field value. + string fs_type = 1; + + // The mount options that can be used for the volume. This field is + // OPTIONAL. `mount_flags` MAY contain sensitive information. + // Therefore, the CO and the Plugin MUST NOT leak this information + // to untrusted entities. The total size of this repeated field + // SHALL NOT exceed 4 KiB. + repeated string mount_flags = 2; + } + + // Specify how a volume can be accessed. + message AccessMode { + enum Mode { + UNKNOWN = 0; + + // Can only be published once as read/write on a single node, at + // any given time. + SINGLE_NODE_WRITER = 1; + + // Can only be published once as readonly on a single node, at + // any given time. + SINGLE_NODE_READER_ONLY = 2; + + // Can be published as readonly at multiple nodes simultaneously. + MULTI_NODE_READER_ONLY = 3; + + // Can be published at multiple nodes simultaneously. Only one of + // the node can be used as read/write. The rest will be readonly. + MULTI_NODE_SINGLE_WRITER = 4; + + // Can be published as read/write at multiple nodes + // simultaneously. + MULTI_NODE_MULTI_WRITER = 5; + } + + // This field is REQUIRED. + Mode mode = 1; + } + + // Specifies what API the volume will be accessed using. One of the + // following fields MUST be specified. + oneof access_type { + BlockVolume block = 1; + MountVolume mount = 2; + } + + // This is a REQUIRED field. + AccessMode access_mode = 3; + + // A secret inside a field that occurs in an array. + string array_secret = 4 [(csi.v1.csi_secret) = true]; +} + +// The capacity of the storage space in bytes. To specify an exact size, +// `required_bytes` and `limit_bytes` SHALL be set to the same value. At +// least one of the these fields MUST be specified. +message CapacityRange { + // Volume MUST be at least this big. This field is OPTIONAL. + // A value of 0 is equal to an unspecified field value. + // The value of this field MUST NOT be negative. + int64 required_bytes = 1; + + // Volume MUST not be bigger than this. This field is OPTIONAL. + // A value of 0 is equal to an unspecified field value. + // The value of this field MUST NOT be negative. + int64 limit_bytes = 2; +} + +// Information about a specific volume. +message Volume { + // The capacity of the volume in bytes. This field is OPTIONAL. If not + // set (value of 0), it indicates that the capacity of the volume is + // unknown (e.g., NFS share). + // The value of this field MUST NOT be negative. + int64 capacity_bytes = 1; + + // The identifier for this volume, generated by the plugin. + // This field is REQUIRED. + // This field MUST contain enough information to uniquely identify + // this specific volume vs all other volumes supported by this plugin. + // This field SHALL be used by the CO in subsequent calls to refer to + // this volume. + // The SP is NOT responsible for global uniqueness of volume_id across + // multiple SPs. + string volume_id = 2; + + // Opaque static properties of the volume. SP MAY use this field to + // ensure subsequent volume validation and publishing calls have + // contextual information. + // The contents of this field SHALL be opaque to a CO. + // The contents of this field SHALL NOT be mutable. + // The contents of this field SHALL be safe for the CO to cache. + // The contents of this field SHOULD NOT contain sensitive + // information. + // The contents of this field SHOULD NOT be used for uniquely + // identifying a volume. The `volume_id` alone SHOULD be sufficient to + // identify the volume. + // A volume uniquely identified by `volume_id` SHALL always report the + // same volume_context. + // This field is OPTIONAL and when present MUST be passed to volume + // validation and publishing calls. + map volume_context = 3; + + // If specified, indicates that the volume is not empty and is + // pre-populated with data from the specified source. + // This field is OPTIONAL. + VolumeContentSource content_source = 4; + + // Specifies where (regions, zones, racks, etc.) the provisioned + // volume is accessible from. + // A plugin that returns this field MUST also set the + // VOLUME_ACCESSIBILITY_CONSTRAINTS plugin capability. + // An SP MAY specify multiple topologies to indicate the volume is + // accessible from multiple locations. + // COs MAY use this information along with the topology information + // returned by NodeGetInfo to ensure that a given volume is accessible + // from a given node when scheduling workloads. + // This field is OPTIONAL. If it is not specified, the CO MAY assume + // the volume is equally accessible from all nodes in the cluster and + // MAY schedule workloads referencing the volume on any available + // node. + // + // Example 1: + // accessible_topology = {"region": "R1", "zone": "Z2"} + // Indicates a volume accessible only from the "region" "R1" and the + // "zone" "Z2". + // + // Example 2: + // accessible_topology = + // {"region": "R1", "zone": "Z2"}, + // {"region": "R1", "zone": "Z3"} + // Indicates a volume accessible from both "zone" "Z2" and "zone" "Z3" + // in the "region" "R1". + repeated Topology accessible_topology = 5; +} + +message TopologyRequirement { + // Specifies the list of topologies the provisioned volume MUST be + // accessible from. + // This field is OPTIONAL. If TopologyRequirement is specified either + // requisite or preferred or both MUST be specified. + // + // If requisite is specified, the provisioned volume MUST be + // accessible from at least one of the requisite topologies. + // + // Given + // x = number of topologies provisioned volume is accessible from + // n = number of requisite topologies + // The CO MUST ensure n >= 1. The SP MUST ensure x >= 1 + // If x==n, then the SP MUST make the provisioned volume available to + // all topologies from the list of requisite topologies. If it is + // unable to do so, the SP MUST fail the CreateVolume call. + // For example, if a volume should be accessible from a single zone, + // and requisite = + // {"region": "R1", "zone": "Z2"} + // then the provisioned volume MUST be accessible from the "region" + // "R1" and the "zone" "Z2". + // Similarly, if a volume should be accessible from two zones, and + // requisite = + // {"region": "R1", "zone": "Z2"}, + // {"region": "R1", "zone": "Z3"} + // then the provisioned volume MUST be accessible from the "region" + // "R1" and both "zone" "Z2" and "zone" "Z3". + // + // If xn, then the SP MUST make the provisioned volume available from + // all topologies from the list of requisite topologies and MAY choose + // the remaining x-n unique topologies from the list of all possible + // topologies. If it is unable to do so, the SP MUST fail the + // CreateVolume call. + // For example, if a volume should be accessible from two zones, and + // requisite = + // {"region": "R1", "zone": "Z2"} + // then the provisioned volume MUST be accessible from the "region" + // "R1" and the "zone" "Z2" and the SP may select the second zone + // independently, e.g. "R1/Z4". + repeated Topology requisite = 1; + + // Specifies the list of topologies the CO would prefer the volume to + // be provisioned in. + // + // This field is OPTIONAL. If TopologyRequirement is specified either + // requisite or preferred or both MUST be specified. + // + // An SP MUST attempt to make the provisioned volume available using + // the preferred topologies in order from first to last. + // + // If requisite is specified, all topologies in preferred list MUST + // also be present in the list of requisite topologies. + // + // If the SP is unable to to make the provisioned volume available + // from any of the preferred topologies, the SP MAY choose a topology + // from the list of requisite topologies. + // If the list of requisite topologies is not specified, then the SP + // MAY choose from the list of all possible topologies. + // If the list of requisite topologies is specified and the SP is + // unable to to make the provisioned volume available from any of the + // requisite topologies it MUST fail the CreateVolume call. + // + // Example 1: + // Given a volume should be accessible from a single zone, and + // requisite = + // {"region": "R1", "zone": "Z2"}, + // {"region": "R1", "zone": "Z3"} + // preferred = + // {"region": "R1", "zone": "Z3"} + // then the the SP SHOULD first attempt to make the provisioned volume + // available from "zone" "Z3" in the "region" "R1" and fall back to + // "zone" "Z2" in the "region" "R1" if that is not possible. + // + // Example 2: + // Given a volume should be accessible from a single zone, and + // requisite = + // {"region": "R1", "zone": "Z2"}, + // {"region": "R1", "zone": "Z3"}, + // {"region": "R1", "zone": "Z4"}, + // {"region": "R1", "zone": "Z5"} + // preferred = + // {"region": "R1", "zone": "Z4"}, + // {"region": "R1", "zone": "Z2"} + // then the the SP SHOULD first attempt to make the provisioned volume + // accessible from "zone" "Z4" in the "region" "R1" and fall back to + // "zone" "Z2" in the "region" "R1" if that is not possible. If that + // is not possible, the SP may choose between either the "zone" + // "Z3" or "Z5" in the "region" "R1". + // + // Example 3: + // Given a volume should be accessible from TWO zones (because an + // opaque parameter in CreateVolumeRequest, for example, specifies + // the volume is accessible from two zones, aka synchronously + // replicated), and + // requisite = + // {"region": "R1", "zone": "Z2"}, + // {"region": "R1", "zone": "Z3"}, + // {"region": "R1", "zone": "Z4"}, + // {"region": "R1", "zone": "Z5"} + // preferred = + // {"region": "R1", "zone": "Z5"}, + // {"region": "R1", "zone": "Z3"} + // then the the SP SHOULD first attempt to make the provisioned volume + // accessible from the combination of the two "zones" "Z5" and "Z3" in + // the "region" "R1". If that's not possible, it should fall back to + // a combination of "Z5" and other possibilities from the list of + // requisite. If that's not possible, it should fall back to a + // combination of "Z3" and other possibilities from the list of + // requisite. If that's not possible, it should fall back to a + // combination of other possibilities from the list of requisite. + repeated Topology preferred = 2; +} + +// Topology is a map of topological domains to topological segments. +// A topological domain is a sub-division of a cluster, like "region", +// "zone", "rack", etc. +// A topological segment is a specific instance of a topological domain, +// like "zone3", "rack3", etc. +// For example {"com.company/zone": "Z1", "com.company/rack": "R3"} +// Valid keys have two segments: an OPTIONAL prefix and name, separated +// by a slash (/), for example: "com.company.example/zone". +// The key name segment is REQUIRED. The prefix is OPTIONAL. +// The key name MUST be 63 characters or less, begin and end with an +// alphanumeric character ([a-z0-9A-Z]), and contain only dashes (-), +// underscores (_), dots (.), or alphanumerics in between, for example +// "zone". +// The key prefix MUST be 63 characters or less, begin and end with a +// lower-case alphanumeric character ([a-z0-9]), contain only +// dashes (-), dots (.), or lower-case alphanumerics in between, and +// follow domain name notation format +// (https://tools.ietf.org/html/rfc1035#section-2.3.1). +// The key prefix SHOULD include the plugin's host company name and/or +// the plugin name, to minimize the possibility of collisions with keys +// from other plugins. +// If a key prefix is specified, it MUST be identical across all +// topology keys returned by the SP (across all RPCs). +// Keys MUST be case-insensitive. Meaning the keys "Zone" and "zone" +// MUST not both exist. +// Each value (topological segment) MUST contain 1 or more strings. +// Each string MUST be 63 characters or less and begin and end with an +// alphanumeric character with '-', '_', '.', or alphanumerics in +// between. +message Topology { + map segments = 1; +} +message DeleteVolumeRequest { + // The ID of the volume to be deprovisioned. + // This field is REQUIRED. + string volume_id = 1; + + // Secrets required by plugin to complete volume deletion request. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. + map secrets = 2 [(csi.v1.csi_secret) = true]; +} + +message DeleteVolumeResponse { + // Intentionally empty. +} +message ControllerPublishVolumeRequest { + // The ID of the volume to be used on a node. + // This field is REQUIRED. + string volume_id = 1; + + // The ID of the node. This field is REQUIRED. The CO SHALL set this + // field to match the node ID returned by `NodeGetInfo`. + string node_id = 2; + + // Volume capability describing how the CO intends to use this volume. + // SP MUST ensure the CO can use the published volume as described. + // Otherwise SP MUST return the appropriate gRPC error code. + // This is a REQUIRED field. + VolumeCapability volume_capability = 3; + + // Indicates SP MUST publish the volume in readonly mode. + // CO MUST set this field to false if SP does not have the + // PUBLISH_READONLY controller capability. + // This is a REQUIRED field. + bool readonly = 4; + + // Secrets required by plugin to complete controller publish volume + // request. This field is OPTIONAL. Refer to the + // `Secrets Requirements` section on how to use this field. + map secrets = 5 [(csi.v1.csi_secret) = true]; + + // Volume context as returned by CO in CreateVolumeRequest. This field + // is OPTIONAL and MUST match the volume_context of the volume + // identified by `volume_id`. + map volume_context = 6; +} + +message ControllerPublishVolumeResponse { + // Opaque static publish properties of the volume. SP MAY use this + // field to ensure subsequent `NodeStageVolume` or `NodePublishVolume` + // calls calls have contextual information. + // The contents of this field SHALL be opaque to a CO. + // The contents of this field SHALL NOT be mutable. + // The contents of this field SHALL be safe for the CO to cache. + // The contents of this field SHOULD NOT contain sensitive + // information. + // The contents of this field SHOULD NOT be used for uniquely + // identifying a volume. The `volume_id` alone SHOULD be sufficient to + // identify the volume. + // This field is OPTIONAL and when present MUST be passed to + // subsequent `NodeStageVolume` or `NodePublishVolume` calls + map publish_context = 1; +} +message ControllerUnpublishVolumeRequest { + // The ID of the volume. This field is REQUIRED. + string volume_id = 1; + + // The ID of the node. This field is OPTIONAL. The CO SHOULD set this + // field to match the node ID returned by `NodeGetInfo` or leave it + // unset. If the value is set, the SP MUST unpublish the volume from + // the specified node. If the value is unset, the SP MUST unpublish + // the volume from all nodes it is published to. + string node_id = 2; + + // Secrets required by plugin to complete controller unpublish volume + // request. This SHOULD be the same secrets passed to the + // ControllerPublishVolume call for the specified volume. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. + map secrets = 3 [(csi.v1.csi_secret) = true]; +} + +message ControllerUnpublishVolumeResponse { + // Intentionally empty. +} +message ValidateVolumeCapabilitiesRequest { + // The ID of the volume to check. This field is REQUIRED. + string volume_id = 1; + + // Volume context as returned by CO in CreateVolumeRequest. This field + // is OPTIONAL and MUST match the volume_context of the volume + // identified by `volume_id`. + map volume_context = 2; + + // The capabilities that the CO wants to check for the volume. This + // call SHALL return "confirmed" only if all the volume capabilities + // specified below are supported. This field is REQUIRED. + repeated VolumeCapability volume_capabilities = 3; + + // See CreateVolumeRequest.parameters. + // This field is OPTIONAL. + map parameters = 4; + + // Secrets required by plugin to complete volume validation request. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. + map secrets = 5 [(csi.v1.csi_secret) = true]; +} + +message ValidateVolumeCapabilitiesResponse { + message Confirmed { + // Volume context validated by the plugin. + // This field is OPTIONAL. + map volume_context = 1; + + // Volume capabilities supported by the plugin. + // This field is REQUIRED. + repeated VolumeCapability volume_capabilities = 2; + + // The volume creation parameters validated by the plugin. + // This field is OPTIONAL. + map parameters = 3; + } + + // Confirmed indicates to the CO the set of capabilities that the + // plugin has validated. This field SHALL only be set to a non-empty + // value for successful validation responses. + // For successful validation responses, the CO SHALL compare the + // fields of this message to the originally requested capabilities in + // order to guard against an older plugin reporting "valid" for newer + // capability fields that it does not yet understand. + // This field is OPTIONAL. + Confirmed confirmed = 1; + + // Message to the CO if `confirmed` above is empty. This field is + // OPTIONAL. + // An empty string is equal to an unspecified field value. + string message = 2; +} +message ListVolumesRequest { + // If specified (non-zero value), the Plugin MUST NOT return more + // entries than this number in the response. If the actual number of + // entries is more than this number, the Plugin MUST set `next_token` + // in the response which can be used to get the next page of entries + // in the subsequent `ListVolumes` call. This field is OPTIONAL. If + // not specified (zero value), it means there is no restriction on the + // number of entries that can be returned. + // The value of this field MUST NOT be negative. + int32 max_entries = 1; + + // A token to specify where to start paginating. Set this field to + // `next_token` returned by a previous `ListVolumes` call to get the + // next page of entries. This field is OPTIONAL. + // An empty string is equal to an unspecified field value. + string starting_token = 2; +} + +message ListVolumesResponse { + message Entry { + Volume volume = 1; + } + + repeated Entry entries = 1; + + // This token allows you to get the next page of entries for + // `ListVolumes` request. If the number of entries is larger than + // `max_entries`, use the `next_token` as a value for the + // `starting_token` field in the next `ListVolumes` request. This + // field is OPTIONAL. + // An empty string is equal to an unspecified field value. + string next_token = 2; +} +message GetCapacityRequest { + // If specified, the Plugin SHALL report the capacity of the storage + // that can be used to provision volumes that satisfy ALL of the + // specified `volume_capabilities`. These are the same + // `volume_capabilities` the CO will use in `CreateVolumeRequest`. + // This field is OPTIONAL. + repeated VolumeCapability volume_capabilities = 1; + + // If specified, the Plugin SHALL report the capacity of the storage + // that can be used to provision volumes with the given Plugin + // specific `parameters`. These are the same `parameters` the CO will + // use in `CreateVolumeRequest`. This field is OPTIONAL. + map parameters = 2; + + // If specified, the Plugin SHALL report the capacity of the storage + // that can be used to provision volumes that in the specified + // `accessible_topology`. This is the same as the + // `accessible_topology` the CO returns in a `CreateVolumeResponse`. + // This field is OPTIONAL. This field SHALL NOT be set unless the + // plugin advertises the VOLUME_ACCESSIBILITY_CONSTRAINTS capability. + Topology accessible_topology = 3; +} + +message GetCapacityResponse { + // The available capacity, in bytes, of the storage that can be used + // to provision volumes. If `volume_capabilities` or `parameters` is + // specified in the request, the Plugin SHALL take those into + // consideration when calculating the available capacity of the + // storage. This field is REQUIRED. + // The value of this field MUST NOT be negative. + int64 available_capacity = 1; +} +message ControllerGetCapabilitiesRequest { + // Intentionally empty. +} + +message ControllerGetCapabilitiesResponse { + // All the capabilities that the controller service supports. This + // field is OPTIONAL. + repeated ControllerServiceCapability capabilities = 1; +} + +// Specifies a capability of the controller service. +message ControllerServiceCapability { + message RPC { + enum Type { + UNKNOWN = 0; + CREATE_DELETE_VOLUME = 1; + PUBLISH_UNPUBLISH_VOLUME = 2; + LIST_VOLUMES = 3; + GET_CAPACITY = 4; + // Currently the only way to consume a snapshot is to create + // a volume from it. Therefore plugins supporting + // CREATE_DELETE_SNAPSHOT MUST support creating volume from + // snapshot. + CREATE_DELETE_SNAPSHOT = 5; + LIST_SNAPSHOTS = 6; + // Plugins supporting volume cloning at the storage level MAY + // report this capability. The source volume MUST be managed by + // the same plugin. Not all volume sources and parameters + // combinations MAY work. + CLONE_VOLUME = 7; + // Indicates the SP supports ControllerPublishVolume.readonly + // field. + PUBLISH_READONLY = 8; + } + + Type type = 1; + } + + oneof type { + // RPC that the controller supports. + RPC rpc = 1; + } +} +message CreateSnapshotRequest { + // The ID of the source volume to be snapshotted. + // This field is REQUIRED. + string source_volume_id = 1; + + // The suggested name for the snapshot. This field is REQUIRED for + // idempotency. + // Any Unicode string that conforms to the length limit is allowed + // except those containing the following banned characters: + // U+0000-U+0008, U+000B, U+000C, U+000E-U+001F, U+007F-U+009F. + // (These are control characters other than commonly used whitespace.) + string name = 2; + + // Secrets required by plugin to complete snapshot creation request. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. + map secrets = 3 [(csi.v1.csi_secret) = true]; + + // Plugin specific parameters passed in as opaque key-value pairs. + // This field is OPTIONAL. The Plugin is responsible for parsing and + // validating these parameters. COs will treat these as opaque. + // Use cases for opaque parameters: + // - Specify a policy to automatically clean up the snapshot. + // - Specify an expiration date for the snapshot. + // - Specify whether the snapshot is readonly or read/write. + // - Specify if the snapshot should be replicated to some place. + // - Specify primary or secondary for replication systems that + // support snapshotting only on primary. + map parameters = 4; +} + +message CreateSnapshotResponse { + // Contains all attributes of the newly created snapshot that are + // relevant to the CO along with information required by the Plugin + // to uniquely identify the snapshot. This field is REQUIRED. + Snapshot snapshot = 1; +} + +// Information about a specific snapshot. +message Snapshot { + // This is the complete size of the snapshot in bytes. The purpose of + // this field is to give CO guidance on how much space is needed to + // create a volume from this snapshot. The size of the volume MUST NOT + // be less than the size of the source snapshot. This field is + // OPTIONAL. If this field is not set, it indicates that this size is + // unknown. The value of this field MUST NOT be negative and a size of + // zero means it is unspecified. + int64 size_bytes = 1; + + // The identifier for this snapshot, generated by the plugin. + // This field is REQUIRED. + // This field MUST contain enough information to uniquely identify + // this specific snapshot vs all other snapshots supported by this + // plugin. + // This field SHALL be used by the CO in subsequent calls to refer to + // this snapshot. + // The SP is NOT responsible for global uniqueness of snapshot_id + // across multiple SPs. + string snapshot_id = 2; + + // Identity information for the source volume. Note that creating a + // snapshot from a snapshot is not supported here so the source has to + // be a volume. This field is REQUIRED. + string source_volume_id = 3; + + // Timestamp when the point-in-time snapshot is taken on the storage + // system. This field is REQUIRED. + .google.protobuf.Timestamp creation_time = 4; + + // Indicates if a snapshot is ready to use as a + // `volume_content_source` in a `CreateVolumeRequest`. The default + // value is false. This field is REQUIRED. + bool ready_to_use = 5; +} +message DeleteSnapshotRequest { + // The ID of the snapshot to be deleted. + // This field is REQUIRED. + string snapshot_id = 1; + + // Secrets required by plugin to complete snapshot deletion request. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. + map secrets = 2 [(csi.v1.csi_secret) = true]; +} + +message DeleteSnapshotResponse {} +// List all snapshots on the storage system regardless of how they were +// created. +message ListSnapshotsRequest { + // If specified (non-zero value), the Plugin MUST NOT return more + // entries than this number in the response. If the actual number of + // entries is more than this number, the Plugin MUST set `next_token` + // in the response which can be used to get the next page of entries + // in the subsequent `ListSnapshots` call. This field is OPTIONAL. If + // not specified (zero value), it means there is no restriction on the + // number of entries that can be returned. + // The value of this field MUST NOT be negative. + int32 max_entries = 1; + + // A token to specify where to start paginating. Set this field to + // `next_token` returned by a previous `ListSnapshots` call to get the + // next page of entries. This field is OPTIONAL. + // An empty string is equal to an unspecified field value. + string starting_token = 2; + + // Identity information for the source volume. This field is OPTIONAL. + // It can be used to list snapshots by volume. + string source_volume_id = 3; + + // Identity information for a specific snapshot. This field is + // OPTIONAL. It can be used to list only a specific snapshot. + // ListSnapshots will return with current snapshot information + // and will not block if the snapshot is being processed after + // it is cut. + string snapshot_id = 4; +} + +message ListSnapshotsResponse { + message Entry { + Snapshot snapshot = 1; + } + + repeated Entry entries = 1; + + // This token allows you to get the next page of entries for + // `ListSnapshots` request. If the number of entries is larger than + // `max_entries`, use the `next_token` as a value for the + // `starting_token` field in the next `ListSnapshots` request. This + // field is OPTIONAL. + // An empty string is equal to an unspecified field value. + string next_token = 2; +} +message NodeStageVolumeRequest { + // The ID of the volume to publish. This field is REQUIRED. + string volume_id = 1; + + // The CO SHALL set this field to the value returned by + // `ControllerPublishVolume` if the corresponding Controller Plugin + // has `PUBLISH_UNPUBLISH_VOLUME` controller capability, and SHALL be + // left unset if the corresponding Controller Plugin does not have + // this capability. This is an OPTIONAL field. + map publish_context = 2; + + // The path to which the volume MAY be staged. It MUST be an + // absolute path in the root filesystem of the process serving this + // request, and MUST be a directory. The CO SHALL ensure that there + // is only one `staging_target_path` per volume. The CO SHALL ensure + // that the path is directory and that the process serving the + // request has `read` and `write` permission to that directory. The + // CO SHALL be responsible for creating the directory if it does not + // exist. + // This is a REQUIRED field. + string staging_target_path = 3; + + // Volume capability describing how the CO intends to use this volume. + // SP MUST ensure the CO can use the staged volume as described. + // Otherwise SP MUST return the appropriate gRPC error code. + // This is a REQUIRED field. + VolumeCapability volume_capability = 4; + + // Secrets required by plugin to complete node stage volume request. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. + map secrets = 5 [(csi.v1.csi_secret) = true]; + + // Volume context as returned by CO in CreateVolumeRequest. This field + // is OPTIONAL and MUST match the volume_context of the volume + // identified by `volume_id`. + map volume_context = 6; +} + +message NodeStageVolumeResponse { + // Intentionally empty. +} +message NodeUnstageVolumeRequest { + // The ID of the volume. This field is REQUIRED. + string volume_id = 1; + + // The path at which the volume was staged. It MUST be an absolute + // path in the root filesystem of the process serving this request. + // This is a REQUIRED field. + string staging_target_path = 2; +} + +message NodeUnstageVolumeResponse { + // Intentionally empty. +} +message NodePublishVolumeRequest { + // The ID of the volume to publish. This field is REQUIRED. + string volume_id = 1; + + // The CO SHALL set this field to the value returned by + // `ControllerPublishVolume` if the corresponding Controller Plugin + // has `PUBLISH_UNPUBLISH_VOLUME` controller capability, and SHALL be + // left unset if the corresponding Controller Plugin does not have + // this capability. This is an OPTIONAL field. + map publish_context = 2; + + // The path to which the volume was staged by `NodeStageVolume`. + // It MUST be an absolute path in the root filesystem of the process + // serving this request. + // It MUST be set if the Node Plugin implements the + // `STAGE_UNSTAGE_VOLUME` node capability. + // This is an OPTIONAL field. + string staging_target_path = 3; + + // The path to which the volume will be published. It MUST be an + // absolute path in the root filesystem of the process serving this + // request. The CO SHALL ensure uniqueness of target_path per volume. + // The CO SHALL ensure that the parent directory of this path exists + // and that the process serving the request has `read` and `write` + // permissions to that parent directory. + // For volumes with an access type of block, the SP SHALL place the + // block device at target_path. + // For volumes with an access type of mount, the SP SHALL place the + // mounted directory at target_path. + // Creation of target_path is the responsibility of the SP. + // This is a REQUIRED field. + string target_path = 4; + + // Volume capability describing how the CO intends to use this volume. + // SP MUST ensure the CO can use the published volume as described. + // Otherwise SP MUST return the appropriate gRPC error code. + // This is a REQUIRED field. + VolumeCapability volume_capability = 5; + + // Indicates SP MUST publish the volume in readonly mode. + // This field is REQUIRED. + bool readonly = 6; + + // Secrets required by plugin to complete node publish volume request. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. + map secrets = 7 [(csi.v1.csi_secret) = true]; + + // Volume context as returned by CO in CreateVolumeRequest. This field + // is OPTIONAL and MUST match the volume_context of the volume + // identified by `volume_id`. + map volume_context = 8; +} + +message NodePublishVolumeResponse { + // Intentionally empty. +} +message NodeUnpublishVolumeRequest { + // The ID of the volume. This field is REQUIRED. + string volume_id = 1; + + // The path at which the volume was published. It MUST be an absolute + // path in the root filesystem of the process serving this request. + // The SP MUST delete the file or directory it created at this path. + // This is a REQUIRED field. + string target_path = 2; +} + +message NodeUnpublishVolumeResponse { + // Intentionally empty. +} +message NodeGetVolumeStatsRequest { + // The ID of the volume. This field is REQUIRED. + string volume_id = 1; + + // It can be any valid path where volume was previously + // staged or published. + // It MUST be an absolute path in the root filesystem of + // the process serving this request. + // This is a REQUIRED field. + string volume_path = 2; +} + +message NodeGetVolumeStatsResponse { + // This field is OPTIONAL. + repeated VolumeUsage usage = 1; +} + +message VolumeUsage { + enum Unit { + UNKNOWN = 0; + BYTES = 1; + INODES = 2; + } + // The available capacity in specified Unit. This field is OPTIONAL. + // The value of this field MUST NOT be negative. + int64 available = 1; + + // The total capacity in specified Unit. This field is REQUIRED. + // The value of this field MUST NOT be negative. + int64 total = 2; + + // The used capacity in specified Unit. This field is OPTIONAL. + // The value of this field MUST NOT be negative. + int64 used = 3; + + // Units by which values are measured. This field is REQUIRED. + Unit unit = 4; +} +message NodeGetCapabilitiesRequest { + // Intentionally empty. +} + +message NodeGetCapabilitiesResponse { + // All the capabilities that the node service supports. This field + // is OPTIONAL. + repeated NodeServiceCapability capabilities = 1; +} + +// Specifies a capability of the node service. +message NodeServiceCapability { + message RPC { + enum Type { + UNKNOWN = 0; + STAGE_UNSTAGE_VOLUME = 1; + // If Plugin implements GET_VOLUME_STATS capability + // then it MUST implement NodeGetVolumeStats RPC + // call for fetching volume statistics. + GET_VOLUME_STATS = 2; + } + + Type type = 1; + } + + oneof type { + // RPC that the controller supports. + RPC rpc = 1; + } +} +message NodeGetInfoRequest { +} + +message NodeGetInfoResponse { + // The identifier of the node as understood by the SP. + // This field is REQUIRED. + // This field MUST contain enough information to uniquely identify + // this specific node vs all other nodes supported by this plugin. + // This field SHALL be used by the CO in subsequent calls, including + // `ControllerPublishVolume`, to refer to this node. + // The SP is NOT responsible for global uniqueness of node_id across + // multiple SPs. + string node_id = 1; + + // Maximum number of volumes that controller can publish to the node. + // If value is not set or zero CO SHALL decide how many volumes of + // this type can be published by the controller to the node. The + // plugin MUST NOT set negative values here. + // This field is OPTIONAL. + int64 max_volumes_per_node = 2; + + // Specifies where (regions, zones, racks, etc.) the node is + // accessible from. + // A plugin that returns this field MUST also set the + // VOLUME_ACCESSIBILITY_CONSTRAINTS plugin capability. + // COs MAY use this information along with the topology information + // returned in CreateVolumeResponse to ensure that a given volume is + // accessible from a given node when scheduling workloads. + // This field is OPTIONAL. If it is not specified, the CO MAY assume + // the node is not subject to any topological constraint, and MAY + // schedule workloads that reference any volume V, such that there are + // no topological constraints declared for V. + // + // Example 1: + // accessible_topology = + // {"region": "R1", "zone": "R2"} + // Indicates the node exists within the "region" "R1" and the "zone" + // "Z2". + Topology accessible_topology = 3; +} diff --git a/vendor/github.com/kubernetes-csi/csi-lib-utils/protosanitizer/test/csitest/csitest.pb.go b/vendor/github.com/kubernetes-csi/csi-lib-utils/protosanitizer/test/csitest/csitest.pb.go new file mode 100644 index 000000000..786c1d414 --- /dev/null +++ b/vendor/github.com/kubernetes-csi/csi-lib-utils/protosanitizer/test/csitest/csitest.pb.go @@ -0,0 +1,5326 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: github.com/kubernetes-csi/csi-lib-utils/protosanitizer/test/csitest.proto + +package csitest + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import _ "github.com/golang/protobuf/protoc-gen-go/descriptor" +import timestamp "github.com/golang/protobuf/ptypes/timestamp" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +type PluginCapability_Service_Type int32 + +const ( + PluginCapability_Service_UNKNOWN PluginCapability_Service_Type = 0 + // CONTROLLER_SERVICE indicates that the Plugin provides RPCs for + // the ControllerService. Plugins SHOULD provide this capability. + // In rare cases certain plugins MAY wish to omit the + // ControllerService entirely from their implementation, but such + // SHOULD NOT be the common case. + // The presence of this capability determines whether the CO will + // attempt to invoke the REQUIRED ControllerService RPCs, as well + // as specific RPCs as indicated by ControllerGetCapabilities. + PluginCapability_Service_CONTROLLER_SERVICE PluginCapability_Service_Type = 1 + // VOLUME_ACCESSIBILITY_CONSTRAINTS indicates that the volumes for + // this plugin MAY NOT be equally accessible by all nodes in the + // cluster. The CO MUST use the topology information returned by + // CreateVolumeRequest along with the topology information + // returned by NodeGetInfo to ensure that a given volume is + // accessible from a given node when scheduling workloads. + PluginCapability_Service_VOLUME_ACCESSIBILITY_CONSTRAINTS PluginCapability_Service_Type = 2 +) + +var PluginCapability_Service_Type_name = map[int32]string{ + 0: "UNKNOWN", + 1: "CONTROLLER_SERVICE", + 2: "VOLUME_ACCESSIBILITY_CONSTRAINTS", +} +var PluginCapability_Service_Type_value = map[string]int32{ + "UNKNOWN": 0, + "CONTROLLER_SERVICE": 1, + "VOLUME_ACCESSIBILITY_CONSTRAINTS": 2, +} + +func (x PluginCapability_Service_Type) String() string { + return proto.EnumName(PluginCapability_Service_Type_name, int32(x)) +} +func (PluginCapability_Service_Type) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{4, 0, 0} +} + +type VolumeCapability_AccessMode_Mode int32 + +const ( + VolumeCapability_AccessMode_UNKNOWN VolumeCapability_AccessMode_Mode = 0 + // Can only be published once as read/write on a single node, at + // any given time. + VolumeCapability_AccessMode_SINGLE_NODE_WRITER VolumeCapability_AccessMode_Mode = 1 + // Can only be published once as readonly on a single node, at + // any given time. + VolumeCapability_AccessMode_SINGLE_NODE_READER_ONLY VolumeCapability_AccessMode_Mode = 2 + // Can be published as readonly at multiple nodes simultaneously. + VolumeCapability_AccessMode_MULTI_NODE_READER_ONLY VolumeCapability_AccessMode_Mode = 3 + // Can be published at multiple nodes simultaneously. Only one of + // the node can be used as read/write. The rest will be readonly. + VolumeCapability_AccessMode_MULTI_NODE_SINGLE_WRITER VolumeCapability_AccessMode_Mode = 4 + // Can be published as read/write at multiple nodes + // simultaneously. + VolumeCapability_AccessMode_MULTI_NODE_MULTI_WRITER VolumeCapability_AccessMode_Mode = 5 +) + +var VolumeCapability_AccessMode_Mode_name = map[int32]string{ + 0: "UNKNOWN", + 1: "SINGLE_NODE_WRITER", + 2: "SINGLE_NODE_READER_ONLY", + 3: "MULTI_NODE_READER_ONLY", + 4: "MULTI_NODE_SINGLE_WRITER", + 5: "MULTI_NODE_MULTI_WRITER", +} +var VolumeCapability_AccessMode_Mode_value = map[string]int32{ + "UNKNOWN": 0, + "SINGLE_NODE_WRITER": 1, + "SINGLE_NODE_READER_ONLY": 2, + "MULTI_NODE_READER_ONLY": 3, + "MULTI_NODE_SINGLE_WRITER": 4, + "MULTI_NODE_MULTI_WRITER": 5, +} + +func (x VolumeCapability_AccessMode_Mode) String() string { + return proto.EnumName(VolumeCapability_AccessMode_Mode_name, int32(x)) +} +func (VolumeCapability_AccessMode_Mode) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{10, 2, 0} +} + +type ControllerServiceCapability_RPC_Type int32 + +const ( + ControllerServiceCapability_RPC_UNKNOWN ControllerServiceCapability_RPC_Type = 0 + ControllerServiceCapability_RPC_CREATE_DELETE_VOLUME ControllerServiceCapability_RPC_Type = 1 + ControllerServiceCapability_RPC_PUBLISH_UNPUBLISH_VOLUME ControllerServiceCapability_RPC_Type = 2 + ControllerServiceCapability_RPC_LIST_VOLUMES ControllerServiceCapability_RPC_Type = 3 + ControllerServiceCapability_RPC_GET_CAPACITY ControllerServiceCapability_RPC_Type = 4 + // Currently the only way to consume a snapshot is to create + // a volume from it. Therefore plugins supporting + // CREATE_DELETE_SNAPSHOT MUST support creating volume from + // snapshot. + ControllerServiceCapability_RPC_CREATE_DELETE_SNAPSHOT ControllerServiceCapability_RPC_Type = 5 + ControllerServiceCapability_RPC_LIST_SNAPSHOTS ControllerServiceCapability_RPC_Type = 6 + // Plugins supporting volume cloning at the storage level MAY + // report this capability. The source volume MUST be managed by + // the same plugin. Not all volume sources and parameters + // combinations MAY work. + ControllerServiceCapability_RPC_CLONE_VOLUME ControllerServiceCapability_RPC_Type = 7 + // Indicates the SP supports ControllerPublishVolume.readonly + // field. + ControllerServiceCapability_RPC_PUBLISH_READONLY ControllerServiceCapability_RPC_Type = 8 +) + +var ControllerServiceCapability_RPC_Type_name = map[int32]string{ + 0: "UNKNOWN", + 1: "CREATE_DELETE_VOLUME", + 2: "PUBLISH_UNPUBLISH_VOLUME", + 3: "LIST_VOLUMES", + 4: "GET_CAPACITY", + 5: "CREATE_DELETE_SNAPSHOT", + 6: "LIST_SNAPSHOTS", + 7: "CLONE_VOLUME", + 8: "PUBLISH_READONLY", +} +var ControllerServiceCapability_RPC_Type_value = map[string]int32{ + "UNKNOWN": 0, + "CREATE_DELETE_VOLUME": 1, + "PUBLISH_UNPUBLISH_VOLUME": 2, + "LIST_VOLUMES": 3, + "GET_CAPACITY": 4, + "CREATE_DELETE_SNAPSHOT": 5, + "LIST_SNAPSHOTS": 6, + "CLONE_VOLUME": 7, + "PUBLISH_READONLY": 8, +} + +func (x ControllerServiceCapability_RPC_Type) String() string { + return proto.EnumName(ControllerServiceCapability_RPC_Type_name, int32(x)) +} +func (ControllerServiceCapability_RPC_Type) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{29, 0, 0} +} + +type VolumeUsage_Unit int32 + +const ( + VolumeUsage_UNKNOWN VolumeUsage_Unit = 0 + VolumeUsage_BYTES VolumeUsage_Unit = 1 + VolumeUsage_INODES VolumeUsage_Unit = 2 +) + +var VolumeUsage_Unit_name = map[int32]string{ + 0: "UNKNOWN", + 1: "BYTES", + 2: "INODES", +} +var VolumeUsage_Unit_value = map[string]int32{ + "UNKNOWN": 0, + "BYTES": 1, + "INODES": 2, +} + +func (x VolumeUsage_Unit) String() string { + return proto.EnumName(VolumeUsage_Unit_name, int32(x)) +} +func (VolumeUsage_Unit) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{47, 0} +} + +type NodeServiceCapability_RPC_Type int32 + +const ( + NodeServiceCapability_RPC_UNKNOWN NodeServiceCapability_RPC_Type = 0 + NodeServiceCapability_RPC_STAGE_UNSTAGE_VOLUME NodeServiceCapability_RPC_Type = 1 + // If Plugin implements GET_VOLUME_STATS capability + // then it MUST implement NodeGetVolumeStats RPC + // call for fetching volume statistics. + NodeServiceCapability_RPC_GET_VOLUME_STATS NodeServiceCapability_RPC_Type = 2 +) + +var NodeServiceCapability_RPC_Type_name = map[int32]string{ + 0: "UNKNOWN", + 1: "STAGE_UNSTAGE_VOLUME", + 2: "GET_VOLUME_STATS", +} +var NodeServiceCapability_RPC_Type_value = map[string]int32{ + "UNKNOWN": 0, + "STAGE_UNSTAGE_VOLUME": 1, + "GET_VOLUME_STATS": 2, +} + +func (x NodeServiceCapability_RPC_Type) String() string { + return proto.EnumName(NodeServiceCapability_RPC_Type_name, int32(x)) +} +func (NodeServiceCapability_RPC_Type) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{50, 0, 0} +} + +type GetPluginInfoRequest struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetPluginInfoRequest) Reset() { *m = GetPluginInfoRequest{} } +func (m *GetPluginInfoRequest) String() string { return proto.CompactTextString(m) } +func (*GetPluginInfoRequest) ProtoMessage() {} +func (*GetPluginInfoRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{0} +} +func (m *GetPluginInfoRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetPluginInfoRequest.Unmarshal(m, b) +} +func (m *GetPluginInfoRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetPluginInfoRequest.Marshal(b, m, deterministic) +} +func (dst *GetPluginInfoRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetPluginInfoRequest.Merge(dst, src) +} +func (m *GetPluginInfoRequest) XXX_Size() int { + return xxx_messageInfo_GetPluginInfoRequest.Size(m) +} +func (m *GetPluginInfoRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetPluginInfoRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetPluginInfoRequest proto.InternalMessageInfo + +type GetPluginInfoResponse struct { + // The name MUST follow domain name notation format + // (https://tools.ietf.org/html/rfc1035#section-2.3.1). It SHOULD + // include the plugin's host company name and the plugin name, + // to minimize the possibility of collisions. It MUST be 63 + // characters or less, beginning and ending with an alphanumeric + // character ([a-z0-9A-Z]) with dashes (-), dots (.), and + // alphanumerics between. This field is REQUIRED. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // This field is REQUIRED. Value of this field is opaque to the CO. + VendorVersion string `protobuf:"bytes,2,opt,name=vendor_version,json=vendorVersion,proto3" json:"vendor_version,omitempty"` + // This field is OPTIONAL. Values are opaque to the CO. + Manifest map[string]string `protobuf:"bytes,3,rep,name=manifest,proto3" json:"manifest,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetPluginInfoResponse) Reset() { *m = GetPluginInfoResponse{} } +func (m *GetPluginInfoResponse) String() string { return proto.CompactTextString(m) } +func (*GetPluginInfoResponse) ProtoMessage() {} +func (*GetPluginInfoResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{1} +} +func (m *GetPluginInfoResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetPluginInfoResponse.Unmarshal(m, b) +} +func (m *GetPluginInfoResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetPluginInfoResponse.Marshal(b, m, deterministic) +} +func (dst *GetPluginInfoResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetPluginInfoResponse.Merge(dst, src) +} +func (m *GetPluginInfoResponse) XXX_Size() int { + return xxx_messageInfo_GetPluginInfoResponse.Size(m) +} +func (m *GetPluginInfoResponse) XXX_DiscardUnknown() { + xxx_messageInfo_GetPluginInfoResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_GetPluginInfoResponse proto.InternalMessageInfo + +func (m *GetPluginInfoResponse) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *GetPluginInfoResponse) GetVendorVersion() string { + if m != nil { + return m.VendorVersion + } + return "" +} + +func (m *GetPluginInfoResponse) GetManifest() map[string]string { + if m != nil { + return m.Manifest + } + return nil +} + +type GetPluginCapabilitiesRequest struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetPluginCapabilitiesRequest) Reset() { *m = GetPluginCapabilitiesRequest{} } +func (m *GetPluginCapabilitiesRequest) String() string { return proto.CompactTextString(m) } +func (*GetPluginCapabilitiesRequest) ProtoMessage() {} +func (*GetPluginCapabilitiesRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{2} +} +func (m *GetPluginCapabilitiesRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetPluginCapabilitiesRequest.Unmarshal(m, b) +} +func (m *GetPluginCapabilitiesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetPluginCapabilitiesRequest.Marshal(b, m, deterministic) +} +func (dst *GetPluginCapabilitiesRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetPluginCapabilitiesRequest.Merge(dst, src) +} +func (m *GetPluginCapabilitiesRequest) XXX_Size() int { + return xxx_messageInfo_GetPluginCapabilitiesRequest.Size(m) +} +func (m *GetPluginCapabilitiesRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetPluginCapabilitiesRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetPluginCapabilitiesRequest proto.InternalMessageInfo + +type GetPluginCapabilitiesResponse struct { + // All the capabilities that the controller service supports. This + // field is OPTIONAL. + Capabilities []*PluginCapability `protobuf:"bytes,1,rep,name=capabilities,proto3" json:"capabilities,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetPluginCapabilitiesResponse) Reset() { *m = GetPluginCapabilitiesResponse{} } +func (m *GetPluginCapabilitiesResponse) String() string { return proto.CompactTextString(m) } +func (*GetPluginCapabilitiesResponse) ProtoMessage() {} +func (*GetPluginCapabilitiesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{3} +} +func (m *GetPluginCapabilitiesResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetPluginCapabilitiesResponse.Unmarshal(m, b) +} +func (m *GetPluginCapabilitiesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetPluginCapabilitiesResponse.Marshal(b, m, deterministic) +} +func (dst *GetPluginCapabilitiesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetPluginCapabilitiesResponse.Merge(dst, src) +} +func (m *GetPluginCapabilitiesResponse) XXX_Size() int { + return xxx_messageInfo_GetPluginCapabilitiesResponse.Size(m) +} +func (m *GetPluginCapabilitiesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_GetPluginCapabilitiesResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_GetPluginCapabilitiesResponse proto.InternalMessageInfo + +func (m *GetPluginCapabilitiesResponse) GetCapabilities() []*PluginCapability { + if m != nil { + return m.Capabilities + } + return nil +} + +// Specifies a capability of the plugin. +type PluginCapability struct { + // Types that are valid to be assigned to Type: + // *PluginCapability_Service_ + Type isPluginCapability_Type `protobuf_oneof:"type"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PluginCapability) Reset() { *m = PluginCapability{} } +func (m *PluginCapability) String() string { return proto.CompactTextString(m) } +func (*PluginCapability) ProtoMessage() {} +func (*PluginCapability) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{4} +} +func (m *PluginCapability) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PluginCapability.Unmarshal(m, b) +} +func (m *PluginCapability) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PluginCapability.Marshal(b, m, deterministic) +} +func (dst *PluginCapability) XXX_Merge(src proto.Message) { + xxx_messageInfo_PluginCapability.Merge(dst, src) +} +func (m *PluginCapability) XXX_Size() int { + return xxx_messageInfo_PluginCapability.Size(m) +} +func (m *PluginCapability) XXX_DiscardUnknown() { + xxx_messageInfo_PluginCapability.DiscardUnknown(m) +} + +var xxx_messageInfo_PluginCapability proto.InternalMessageInfo + +type isPluginCapability_Type interface { + isPluginCapability_Type() +} + +type PluginCapability_Service_ struct { + Service *PluginCapability_Service `protobuf:"bytes,1,opt,name=service,proto3,oneof"` +} + +func (*PluginCapability_Service_) isPluginCapability_Type() {} + +func (m *PluginCapability) GetType() isPluginCapability_Type { + if m != nil { + return m.Type + } + return nil +} + +func (m *PluginCapability) GetService() *PluginCapability_Service { + if x, ok := m.GetType().(*PluginCapability_Service_); ok { + return x.Service + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*PluginCapability) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _PluginCapability_OneofMarshaler, _PluginCapability_OneofUnmarshaler, _PluginCapability_OneofSizer, []interface{}{ + (*PluginCapability_Service_)(nil), + } +} + +func _PluginCapability_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*PluginCapability) + // type + switch x := m.Type.(type) { + case *PluginCapability_Service_: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Service); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("PluginCapability.Type has unexpected type %T", x) + } + return nil +} + +func _PluginCapability_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*PluginCapability) + switch tag { + case 1: // type.service + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(PluginCapability_Service) + err := b.DecodeMessage(msg) + m.Type = &PluginCapability_Service_{msg} + return true, err + default: + return false, nil + } +} + +func _PluginCapability_OneofSizer(msg proto.Message) (n int) { + m := msg.(*PluginCapability) + // type + switch x := m.Type.(type) { + case *PluginCapability_Service_: + s := proto.Size(x.Service) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +type PluginCapability_Service struct { + Type PluginCapability_Service_Type `protobuf:"varint,1,opt,name=type,proto3,enum=csitest.v1.PluginCapability_Service_Type" json:"type,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PluginCapability_Service) Reset() { *m = PluginCapability_Service{} } +func (m *PluginCapability_Service) String() string { return proto.CompactTextString(m) } +func (*PluginCapability_Service) ProtoMessage() {} +func (*PluginCapability_Service) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{4, 0} +} +func (m *PluginCapability_Service) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PluginCapability_Service.Unmarshal(m, b) +} +func (m *PluginCapability_Service) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PluginCapability_Service.Marshal(b, m, deterministic) +} +func (dst *PluginCapability_Service) XXX_Merge(src proto.Message) { + xxx_messageInfo_PluginCapability_Service.Merge(dst, src) +} +func (m *PluginCapability_Service) XXX_Size() int { + return xxx_messageInfo_PluginCapability_Service.Size(m) +} +func (m *PluginCapability_Service) XXX_DiscardUnknown() { + xxx_messageInfo_PluginCapability_Service.DiscardUnknown(m) +} + +var xxx_messageInfo_PluginCapability_Service proto.InternalMessageInfo + +func (m *PluginCapability_Service) GetType() PluginCapability_Service_Type { + if m != nil { + return m.Type + } + return PluginCapability_Service_UNKNOWN +} + +type ProbeRequest struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ProbeRequest) Reset() { *m = ProbeRequest{} } +func (m *ProbeRequest) String() string { return proto.CompactTextString(m) } +func (*ProbeRequest) ProtoMessage() {} +func (*ProbeRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{5} +} +func (m *ProbeRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ProbeRequest.Unmarshal(m, b) +} +func (m *ProbeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ProbeRequest.Marshal(b, m, deterministic) +} +func (dst *ProbeRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProbeRequest.Merge(dst, src) +} +func (m *ProbeRequest) XXX_Size() int { + return xxx_messageInfo_ProbeRequest.Size(m) +} +func (m *ProbeRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ProbeRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ProbeRequest proto.InternalMessageInfo + +type ProbeResponse struct { + // Readiness allows a plugin to report its initialization status back + // to the CO. Initialization for some plugins MAY be time consuming + // and it is important for a CO to distinguish between the following + // cases: + // + // 1) The plugin is in an unhealthy state and MAY need restarting. In + // this case a gRPC error code SHALL be returned. + // 2) The plugin is still initializing, but is otherwise perfectly + // healthy. In this case a successful response SHALL be returned + // with a readiness value of `false`. Calls to the plugin's + // Controller and/or Node services MAY fail due to an incomplete + // initialization state. + // 3) The plugin has finished initializing and is ready to service + // calls to its Controller and/or Node services. A successful + // response is returned with a readiness value of `true`. + // + // This field is OPTIONAL. If not present, the caller SHALL assume + // that the plugin is in a ready state and is accepting calls to its + // Controller and/or Node services (according to the plugin's reported + // capabilities). + Ready *wrappers.BoolValue `protobuf:"bytes,1,opt,name=ready,proto3" json:"ready,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ProbeResponse) Reset() { *m = ProbeResponse{} } +func (m *ProbeResponse) String() string { return proto.CompactTextString(m) } +func (*ProbeResponse) ProtoMessage() {} +func (*ProbeResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{6} +} +func (m *ProbeResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ProbeResponse.Unmarshal(m, b) +} +func (m *ProbeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ProbeResponse.Marshal(b, m, deterministic) +} +func (dst *ProbeResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProbeResponse.Merge(dst, src) +} +func (m *ProbeResponse) XXX_Size() int { + return xxx_messageInfo_ProbeResponse.Size(m) +} +func (m *ProbeResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ProbeResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ProbeResponse proto.InternalMessageInfo + +func (m *ProbeResponse) GetReady() *wrappers.BoolValue { + if m != nil { + return m.Ready + } + return nil +} + +type CreateVolumeRequest struct { + // The suggested name for the storage space. This field is REQUIRED. + // It serves two purposes: + // 1) Idempotency - This name is generated by the CO to achieve + // idempotency. The Plugin SHOULD ensure that multiple + // `CreateVolume` calls for the same name do not result in more + // than one piece of storage provisioned corresponding to that + // name. If a Plugin is unable to enforce idempotency, the CO's + // error recovery logic could result in multiple (unused) volumes + // being provisioned. + // In the case of error, the CO MUST handle the gRPC error codes + // per the recovery behavior defined in the "CreateVolume Errors" + // section below. + // The CO is responsible for cleaning up volumes it provisioned + // that it no longer needs. If the CO is uncertain whether a volume + // was provisioned or not when a `CreateVolume` call fails, the CO + // MAY call `CreateVolume` again, with the same name, to ensure the + // volume exists and to retrieve the volume's `volume_id` (unless + // otherwise prohibited by "CreateVolume Errors"). + // 2) Suggested name - Some storage systems allow callers to specify + // an identifier by which to refer to the newly provisioned + // storage. If a storage system supports this, it can optionally + // use this name as the identifier for the new volume. + // Any Unicode string that conforms to the length limit is allowed + // except those containing the following banned characters: + // U+0000-U+0008, U+000B, U+000C, U+000E-U+001F, U+007F-U+009F. + // (These are control characters other than commonly used whitespace.) + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // This field is OPTIONAL. This allows the CO to specify the capacity + // requirement of the volume to be provisioned. If not specified, the + // Plugin MAY choose an implementation-defined capacity range. If + // specified it MUST always be honored, even when creating volumes + // from a source; which MAY force some backends to internally extend + // the volume after creating it. + CapacityRange *CapacityRange `protobuf:"bytes,2,opt,name=capacity_range,json=capacityRange,proto3" json:"capacity_range,omitempty"` + // The capabilities that the provisioned volume MUST have. SP MUST + // provision a volume that will satisfy ALL of the capabilities + // specified in this list. Otherwise SP MUST return the appropriate + // gRPC error code. + // The Plugin MUST assume that the CO MAY use the provisioned volume + // with ANY of the capabilities specified in this list. + // For example, a CO MAY specify two volume capabilities: one with + // access mode SINGLE_NODE_WRITER and another with access mode + // MULTI_NODE_READER_ONLY. In this case, the SP MUST verify that the + // provisioned volume can be used in either mode. + // This also enables the CO to do early validation: If ANY of the + // specified volume capabilities are not supported by the SP, the call + // MUST return the appropriate gRPC error code. + // This field is REQUIRED. + VolumeCapabilities []*VolumeCapability `protobuf:"bytes,3,rep,name=volume_capabilities,json=volumeCapabilities,proto3" json:"volume_capabilities,omitempty"` + // Plugin specific parameters passed in as opaque key-value pairs. + // This field is OPTIONAL. The Plugin is responsible for parsing and + // validating these parameters. COs will treat these as opaque. + Parameters map[string]string `protobuf:"bytes,4,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Secrets required by plugin to complete volume creation request. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. Renamed to test whether secret + // stripping is really based on the csi_secret option. + Seecreets map[string]string `protobuf:"bytes,5,rep,name=seecreets,proto3" json:"seecreets,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // If specified, the new volume will be pre-populated with data from + // this source. This field is OPTIONAL. + VolumeContentSource *VolumeContentSource `protobuf:"bytes,6,opt,name=volume_content_source,json=volumeContentSource,proto3" json:"volume_content_source,omitempty"` + // Specifies where (regions, zones, racks, etc.) the provisioned + // volume MUST be accessible from. + // An SP SHALL advertise the requirements for topological + // accessibility information in documentation. COs SHALL only specify + // topological accessibility information supported by the SP. + // This field is OPTIONAL. + // This field SHALL NOT be specified unless the SP has the + // VOLUME_ACCESSIBILITY_CONSTRAINTS plugin capability. + // If this field is not specified and the SP has the + // VOLUME_ACCESSIBILITY_CONSTRAINTS plugin capability, the SP MAY + // choose where the provisioned volume is accessible from. + AccessibilityRequirements *TopologyRequirement `protobuf:"bytes,7,opt,name=accessibility_requirements,json=accessibilityRequirements,proto3" json:"accessibility_requirements,omitempty"` + // A secret value that isn't a string map. + NewSecretInt int64 `protobuf:"varint,8,opt,name=new_secret_int,json=newSecretInt,proto3" json:"new_secret_int,omitempty"` + // We must recurse into maps. + MaybeSecretMap map[int64]*VolumeCapability `protobuf:"bytes,9,rep,name=maybe_secret_map,json=maybeSecretMap,proto3" json:"maybe_secret_map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CreateVolumeRequest) Reset() { *m = CreateVolumeRequest{} } +func (m *CreateVolumeRequest) String() string { return proto.CompactTextString(m) } +func (*CreateVolumeRequest) ProtoMessage() {} +func (*CreateVolumeRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{7} +} +func (m *CreateVolumeRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreateVolumeRequest.Unmarshal(m, b) +} +func (m *CreateVolumeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreateVolumeRequest.Marshal(b, m, deterministic) +} +func (dst *CreateVolumeRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateVolumeRequest.Merge(dst, src) +} +func (m *CreateVolumeRequest) XXX_Size() int { + return xxx_messageInfo_CreateVolumeRequest.Size(m) +} +func (m *CreateVolumeRequest) XXX_DiscardUnknown() { + xxx_messageInfo_CreateVolumeRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_CreateVolumeRequest proto.InternalMessageInfo + +func (m *CreateVolumeRequest) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *CreateVolumeRequest) GetCapacityRange() *CapacityRange { + if m != nil { + return m.CapacityRange + } + return nil +} + +func (m *CreateVolumeRequest) GetVolumeCapabilities() []*VolumeCapability { + if m != nil { + return m.VolumeCapabilities + } + return nil +} + +func (m *CreateVolumeRequest) GetParameters() map[string]string { + if m != nil { + return m.Parameters + } + return nil +} + +func (m *CreateVolumeRequest) GetSeecreets() map[string]string { + if m != nil { + return m.Seecreets + } + return nil +} + +func (m *CreateVolumeRequest) GetVolumeContentSource() *VolumeContentSource { + if m != nil { + return m.VolumeContentSource + } + return nil +} + +func (m *CreateVolumeRequest) GetAccessibilityRequirements() *TopologyRequirement { + if m != nil { + return m.AccessibilityRequirements + } + return nil +} + +func (m *CreateVolumeRequest) GetNewSecretInt() int64 { + if m != nil { + return m.NewSecretInt + } + return 0 +} + +func (m *CreateVolumeRequest) GetMaybeSecretMap() map[int64]*VolumeCapability { + if m != nil { + return m.MaybeSecretMap + } + return nil +} + +// Specifies what source the volume will be created from. One of the +// type fields MUST be specified. +type VolumeContentSource struct { + // Types that are valid to be assigned to Type: + // *VolumeContentSource_Snapshot + // *VolumeContentSource_Volume + Type isVolumeContentSource_Type `protobuf_oneof:"type"` + // A secret field that will only get stripped by code that + // can recurse into CreateVolumeRequest. + NestedSecretField string `protobuf:"bytes,3,opt,name=nested_secret_field,json=nestedSecretField,proto3" json:"nested_secret_field,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *VolumeContentSource) Reset() { *m = VolumeContentSource{} } +func (m *VolumeContentSource) String() string { return proto.CompactTextString(m) } +func (*VolumeContentSource) ProtoMessage() {} +func (*VolumeContentSource) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{8} +} +func (m *VolumeContentSource) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VolumeContentSource.Unmarshal(m, b) +} +func (m *VolumeContentSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VolumeContentSource.Marshal(b, m, deterministic) +} +func (dst *VolumeContentSource) XXX_Merge(src proto.Message) { + xxx_messageInfo_VolumeContentSource.Merge(dst, src) +} +func (m *VolumeContentSource) XXX_Size() int { + return xxx_messageInfo_VolumeContentSource.Size(m) +} +func (m *VolumeContentSource) XXX_DiscardUnknown() { + xxx_messageInfo_VolumeContentSource.DiscardUnknown(m) +} + +var xxx_messageInfo_VolumeContentSource proto.InternalMessageInfo + +type isVolumeContentSource_Type interface { + isVolumeContentSource_Type() +} + +type VolumeContentSource_Snapshot struct { + Snapshot *VolumeContentSource_SnapshotSource `protobuf:"bytes,1,opt,name=snapshot,proto3,oneof"` +} + +type VolumeContentSource_Volume struct { + Volume *VolumeContentSource_VolumeSource `protobuf:"bytes,2,opt,name=volume,proto3,oneof"` +} + +func (*VolumeContentSource_Snapshot) isVolumeContentSource_Type() {} + +func (*VolumeContentSource_Volume) isVolumeContentSource_Type() {} + +func (m *VolumeContentSource) GetType() isVolumeContentSource_Type { + if m != nil { + return m.Type + } + return nil +} + +func (m *VolumeContentSource) GetSnapshot() *VolumeContentSource_SnapshotSource { + if x, ok := m.GetType().(*VolumeContentSource_Snapshot); ok { + return x.Snapshot + } + return nil +} + +func (m *VolumeContentSource) GetVolume() *VolumeContentSource_VolumeSource { + if x, ok := m.GetType().(*VolumeContentSource_Volume); ok { + return x.Volume + } + return nil +} + +func (m *VolumeContentSource) GetNestedSecretField() string { + if m != nil { + return m.NestedSecretField + } + return "" +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*VolumeContentSource) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _VolumeContentSource_OneofMarshaler, _VolumeContentSource_OneofUnmarshaler, _VolumeContentSource_OneofSizer, []interface{}{ + (*VolumeContentSource_Snapshot)(nil), + (*VolumeContentSource_Volume)(nil), + } +} + +func _VolumeContentSource_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*VolumeContentSource) + // type + switch x := m.Type.(type) { + case *VolumeContentSource_Snapshot: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Snapshot); err != nil { + return err + } + case *VolumeContentSource_Volume: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Volume); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("VolumeContentSource.Type has unexpected type %T", x) + } + return nil +} + +func _VolumeContentSource_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*VolumeContentSource) + switch tag { + case 1: // type.snapshot + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(VolumeContentSource_SnapshotSource) + err := b.DecodeMessage(msg) + m.Type = &VolumeContentSource_Snapshot{msg} + return true, err + case 2: // type.volume + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(VolumeContentSource_VolumeSource) + err := b.DecodeMessage(msg) + m.Type = &VolumeContentSource_Volume{msg} + return true, err + default: + return false, nil + } +} + +func _VolumeContentSource_OneofSizer(msg proto.Message) (n int) { + m := msg.(*VolumeContentSource) + // type + switch x := m.Type.(type) { + case *VolumeContentSource_Snapshot: + s := proto.Size(x.Snapshot) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *VolumeContentSource_Volume: + s := proto.Size(x.Volume) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +type VolumeContentSource_SnapshotSource struct { + // Contains identity information for the existing source snapshot. + // This field is REQUIRED. Plugin is REQUIRED to support creating + // volume from snapshot if it supports the capability + // CREATE_DELETE_SNAPSHOT. + SnapshotId string `protobuf:"bytes,1,opt,name=snapshot_id,json=snapshotId,proto3" json:"snapshot_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *VolumeContentSource_SnapshotSource) Reset() { *m = VolumeContentSource_SnapshotSource{} } +func (m *VolumeContentSource_SnapshotSource) String() string { return proto.CompactTextString(m) } +func (*VolumeContentSource_SnapshotSource) ProtoMessage() {} +func (*VolumeContentSource_SnapshotSource) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{8, 0} +} +func (m *VolumeContentSource_SnapshotSource) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VolumeContentSource_SnapshotSource.Unmarshal(m, b) +} +func (m *VolumeContentSource_SnapshotSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VolumeContentSource_SnapshotSource.Marshal(b, m, deterministic) +} +func (dst *VolumeContentSource_SnapshotSource) XXX_Merge(src proto.Message) { + xxx_messageInfo_VolumeContentSource_SnapshotSource.Merge(dst, src) +} +func (m *VolumeContentSource_SnapshotSource) XXX_Size() int { + return xxx_messageInfo_VolumeContentSource_SnapshotSource.Size(m) +} +func (m *VolumeContentSource_SnapshotSource) XXX_DiscardUnknown() { + xxx_messageInfo_VolumeContentSource_SnapshotSource.DiscardUnknown(m) +} + +var xxx_messageInfo_VolumeContentSource_SnapshotSource proto.InternalMessageInfo + +func (m *VolumeContentSource_SnapshotSource) GetSnapshotId() string { + if m != nil { + return m.SnapshotId + } + return "" +} + +type VolumeContentSource_VolumeSource struct { + // Contains identity information for the existing source volume. + // This field is REQUIRED. Plugins reporting CLONE_VOLUME + // capability MUST support creating a volume from another volume. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` + // A secret field that will only get stripped by code that + // can recurse into a oneof field. + OneofSecretField string `protobuf:"bytes,2,opt,name=oneof_secret_field,json=oneofSecretField,proto3" json:"oneof_secret_field,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *VolumeContentSource_VolumeSource) Reset() { *m = VolumeContentSource_VolumeSource{} } +func (m *VolumeContentSource_VolumeSource) String() string { return proto.CompactTextString(m) } +func (*VolumeContentSource_VolumeSource) ProtoMessage() {} +func (*VolumeContentSource_VolumeSource) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{8, 1} +} +func (m *VolumeContentSource_VolumeSource) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VolumeContentSource_VolumeSource.Unmarshal(m, b) +} +func (m *VolumeContentSource_VolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VolumeContentSource_VolumeSource.Marshal(b, m, deterministic) +} +func (dst *VolumeContentSource_VolumeSource) XXX_Merge(src proto.Message) { + xxx_messageInfo_VolumeContentSource_VolumeSource.Merge(dst, src) +} +func (m *VolumeContentSource_VolumeSource) XXX_Size() int { + return xxx_messageInfo_VolumeContentSource_VolumeSource.Size(m) +} +func (m *VolumeContentSource_VolumeSource) XXX_DiscardUnknown() { + xxx_messageInfo_VolumeContentSource_VolumeSource.DiscardUnknown(m) +} + +var xxx_messageInfo_VolumeContentSource_VolumeSource proto.InternalMessageInfo + +func (m *VolumeContentSource_VolumeSource) GetVolumeId() string { + if m != nil { + return m.VolumeId + } + return "" +} + +func (m *VolumeContentSource_VolumeSource) GetOneofSecretField() string { + if m != nil { + return m.OneofSecretField + } + return "" +} + +type CreateVolumeResponse struct { + // Contains all attributes of the newly created volume that are + // relevant to the CO along with information required by the Plugin + // to uniquely identify the volume. This field is REQUIRED. + Volume *Volume `protobuf:"bytes,1,opt,name=volume,proto3" json:"volume,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CreateVolumeResponse) Reset() { *m = CreateVolumeResponse{} } +func (m *CreateVolumeResponse) String() string { return proto.CompactTextString(m) } +func (*CreateVolumeResponse) ProtoMessage() {} +func (*CreateVolumeResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{9} +} +func (m *CreateVolumeResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreateVolumeResponse.Unmarshal(m, b) +} +func (m *CreateVolumeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreateVolumeResponse.Marshal(b, m, deterministic) +} +func (dst *CreateVolumeResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateVolumeResponse.Merge(dst, src) +} +func (m *CreateVolumeResponse) XXX_Size() int { + return xxx_messageInfo_CreateVolumeResponse.Size(m) +} +func (m *CreateVolumeResponse) XXX_DiscardUnknown() { + xxx_messageInfo_CreateVolumeResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_CreateVolumeResponse proto.InternalMessageInfo + +func (m *CreateVolumeResponse) GetVolume() *Volume { + if m != nil { + return m.Volume + } + return nil +} + +// Specify a capability of a volume. +type VolumeCapability struct { + // Specifies what API the volume will be accessed using. One of the + // following fields MUST be specified. + // + // Types that are valid to be assigned to AccessType: + // *VolumeCapability_Block + // *VolumeCapability_Mount + AccessType isVolumeCapability_AccessType `protobuf_oneof:"access_type"` + // This is a REQUIRED field. + AccessMode *VolumeCapability_AccessMode `protobuf:"bytes,3,opt,name=access_mode,json=accessMode,proto3" json:"access_mode,omitempty"` + // A secret inside a field that occurs in an array. + ArraySecret string `protobuf:"bytes,4,opt,name=array_secret,json=arraySecret,proto3" json:"array_secret,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *VolumeCapability) Reset() { *m = VolumeCapability{} } +func (m *VolumeCapability) String() string { return proto.CompactTextString(m) } +func (*VolumeCapability) ProtoMessage() {} +func (*VolumeCapability) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{10} +} +func (m *VolumeCapability) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VolumeCapability.Unmarshal(m, b) +} +func (m *VolumeCapability) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VolumeCapability.Marshal(b, m, deterministic) +} +func (dst *VolumeCapability) XXX_Merge(src proto.Message) { + xxx_messageInfo_VolumeCapability.Merge(dst, src) +} +func (m *VolumeCapability) XXX_Size() int { + return xxx_messageInfo_VolumeCapability.Size(m) +} +func (m *VolumeCapability) XXX_DiscardUnknown() { + xxx_messageInfo_VolumeCapability.DiscardUnknown(m) +} + +var xxx_messageInfo_VolumeCapability proto.InternalMessageInfo + +type isVolumeCapability_AccessType interface { + isVolumeCapability_AccessType() +} + +type VolumeCapability_Block struct { + Block *VolumeCapability_BlockVolume `protobuf:"bytes,1,opt,name=block,proto3,oneof"` +} + +type VolumeCapability_Mount struct { + Mount *VolumeCapability_MountVolume `protobuf:"bytes,2,opt,name=mount,proto3,oneof"` +} + +func (*VolumeCapability_Block) isVolumeCapability_AccessType() {} + +func (*VolumeCapability_Mount) isVolumeCapability_AccessType() {} + +func (m *VolumeCapability) GetAccessType() isVolumeCapability_AccessType { + if m != nil { + return m.AccessType + } + return nil +} + +func (m *VolumeCapability) GetBlock() *VolumeCapability_BlockVolume { + if x, ok := m.GetAccessType().(*VolumeCapability_Block); ok { + return x.Block + } + return nil +} + +func (m *VolumeCapability) GetMount() *VolumeCapability_MountVolume { + if x, ok := m.GetAccessType().(*VolumeCapability_Mount); ok { + return x.Mount + } + return nil +} + +func (m *VolumeCapability) GetAccessMode() *VolumeCapability_AccessMode { + if m != nil { + return m.AccessMode + } + return nil +} + +func (m *VolumeCapability) GetArraySecret() string { + if m != nil { + return m.ArraySecret + } + return "" +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*VolumeCapability) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _VolumeCapability_OneofMarshaler, _VolumeCapability_OneofUnmarshaler, _VolumeCapability_OneofSizer, []interface{}{ + (*VolumeCapability_Block)(nil), + (*VolumeCapability_Mount)(nil), + } +} + +func _VolumeCapability_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*VolumeCapability) + // access_type + switch x := m.AccessType.(type) { + case *VolumeCapability_Block: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Block); err != nil { + return err + } + case *VolumeCapability_Mount: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Mount); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("VolumeCapability.AccessType has unexpected type %T", x) + } + return nil +} + +func _VolumeCapability_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*VolumeCapability) + switch tag { + case 1: // access_type.block + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(VolumeCapability_BlockVolume) + err := b.DecodeMessage(msg) + m.AccessType = &VolumeCapability_Block{msg} + return true, err + case 2: // access_type.mount + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(VolumeCapability_MountVolume) + err := b.DecodeMessage(msg) + m.AccessType = &VolumeCapability_Mount{msg} + return true, err + default: + return false, nil + } +} + +func _VolumeCapability_OneofSizer(msg proto.Message) (n int) { + m := msg.(*VolumeCapability) + // access_type + switch x := m.AccessType.(type) { + case *VolumeCapability_Block: + s := proto.Size(x.Block) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *VolumeCapability_Mount: + s := proto.Size(x.Mount) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// Indicate that the volume will be accessed via the block device API. +type VolumeCapability_BlockVolume struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *VolumeCapability_BlockVolume) Reset() { *m = VolumeCapability_BlockVolume{} } +func (m *VolumeCapability_BlockVolume) String() string { return proto.CompactTextString(m) } +func (*VolumeCapability_BlockVolume) ProtoMessage() {} +func (*VolumeCapability_BlockVolume) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{10, 0} +} +func (m *VolumeCapability_BlockVolume) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VolumeCapability_BlockVolume.Unmarshal(m, b) +} +func (m *VolumeCapability_BlockVolume) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VolumeCapability_BlockVolume.Marshal(b, m, deterministic) +} +func (dst *VolumeCapability_BlockVolume) XXX_Merge(src proto.Message) { + xxx_messageInfo_VolumeCapability_BlockVolume.Merge(dst, src) +} +func (m *VolumeCapability_BlockVolume) XXX_Size() int { + return xxx_messageInfo_VolumeCapability_BlockVolume.Size(m) +} +func (m *VolumeCapability_BlockVolume) XXX_DiscardUnknown() { + xxx_messageInfo_VolumeCapability_BlockVolume.DiscardUnknown(m) +} + +var xxx_messageInfo_VolumeCapability_BlockVolume proto.InternalMessageInfo + +// Indicate that the volume will be accessed via the filesystem API. +type VolumeCapability_MountVolume struct { + // The filesystem type. This field is OPTIONAL. + // An empty string is equal to an unspecified field value. + FsType string `protobuf:"bytes,1,opt,name=fs_type,json=fsType,proto3" json:"fs_type,omitempty"` + // The mount options that can be used for the volume. This field is + // OPTIONAL. `mount_flags` MAY contain sensitive information. + // Therefore, the CO and the Plugin MUST NOT leak this information + // to untrusted entities. The total size of this repeated field + // SHALL NOT exceed 4 KiB. + MountFlags []string `protobuf:"bytes,2,rep,name=mount_flags,json=mountFlags,proto3" json:"mount_flags,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *VolumeCapability_MountVolume) Reset() { *m = VolumeCapability_MountVolume{} } +func (m *VolumeCapability_MountVolume) String() string { return proto.CompactTextString(m) } +func (*VolumeCapability_MountVolume) ProtoMessage() {} +func (*VolumeCapability_MountVolume) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{10, 1} +} +func (m *VolumeCapability_MountVolume) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VolumeCapability_MountVolume.Unmarshal(m, b) +} +func (m *VolumeCapability_MountVolume) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VolumeCapability_MountVolume.Marshal(b, m, deterministic) +} +func (dst *VolumeCapability_MountVolume) XXX_Merge(src proto.Message) { + xxx_messageInfo_VolumeCapability_MountVolume.Merge(dst, src) +} +func (m *VolumeCapability_MountVolume) XXX_Size() int { + return xxx_messageInfo_VolumeCapability_MountVolume.Size(m) +} +func (m *VolumeCapability_MountVolume) XXX_DiscardUnknown() { + xxx_messageInfo_VolumeCapability_MountVolume.DiscardUnknown(m) +} + +var xxx_messageInfo_VolumeCapability_MountVolume proto.InternalMessageInfo + +func (m *VolumeCapability_MountVolume) GetFsType() string { + if m != nil { + return m.FsType + } + return "" +} + +func (m *VolumeCapability_MountVolume) GetMountFlags() []string { + if m != nil { + return m.MountFlags + } + return nil +} + +// Specify how a volume can be accessed. +type VolumeCapability_AccessMode struct { + // This field is REQUIRED. + Mode VolumeCapability_AccessMode_Mode `protobuf:"varint,1,opt,name=mode,proto3,enum=csitest.v1.VolumeCapability_AccessMode_Mode" json:"mode,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *VolumeCapability_AccessMode) Reset() { *m = VolumeCapability_AccessMode{} } +func (m *VolumeCapability_AccessMode) String() string { return proto.CompactTextString(m) } +func (*VolumeCapability_AccessMode) ProtoMessage() {} +func (*VolumeCapability_AccessMode) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{10, 2} +} +func (m *VolumeCapability_AccessMode) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VolumeCapability_AccessMode.Unmarshal(m, b) +} +func (m *VolumeCapability_AccessMode) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VolumeCapability_AccessMode.Marshal(b, m, deterministic) +} +func (dst *VolumeCapability_AccessMode) XXX_Merge(src proto.Message) { + xxx_messageInfo_VolumeCapability_AccessMode.Merge(dst, src) +} +func (m *VolumeCapability_AccessMode) XXX_Size() int { + return xxx_messageInfo_VolumeCapability_AccessMode.Size(m) +} +func (m *VolumeCapability_AccessMode) XXX_DiscardUnknown() { + xxx_messageInfo_VolumeCapability_AccessMode.DiscardUnknown(m) +} + +var xxx_messageInfo_VolumeCapability_AccessMode proto.InternalMessageInfo + +func (m *VolumeCapability_AccessMode) GetMode() VolumeCapability_AccessMode_Mode { + if m != nil { + return m.Mode + } + return VolumeCapability_AccessMode_UNKNOWN +} + +// The capacity of the storage space in bytes. To specify an exact size, +// `required_bytes` and `limit_bytes` SHALL be set to the same value. At +// least one of the these fields MUST be specified. +type CapacityRange struct { + // Volume MUST be at least this big. This field is OPTIONAL. + // A value of 0 is equal to an unspecified field value. + // The value of this field MUST NOT be negative. + RequiredBytes int64 `protobuf:"varint,1,opt,name=required_bytes,json=requiredBytes,proto3" json:"required_bytes,omitempty"` + // Volume MUST not be bigger than this. This field is OPTIONAL. + // A value of 0 is equal to an unspecified field value. + // The value of this field MUST NOT be negative. + LimitBytes int64 `protobuf:"varint,2,opt,name=limit_bytes,json=limitBytes,proto3" json:"limit_bytes,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CapacityRange) Reset() { *m = CapacityRange{} } +func (m *CapacityRange) String() string { return proto.CompactTextString(m) } +func (*CapacityRange) ProtoMessage() {} +func (*CapacityRange) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{11} +} +func (m *CapacityRange) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CapacityRange.Unmarshal(m, b) +} +func (m *CapacityRange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CapacityRange.Marshal(b, m, deterministic) +} +func (dst *CapacityRange) XXX_Merge(src proto.Message) { + xxx_messageInfo_CapacityRange.Merge(dst, src) +} +func (m *CapacityRange) XXX_Size() int { + return xxx_messageInfo_CapacityRange.Size(m) +} +func (m *CapacityRange) XXX_DiscardUnknown() { + xxx_messageInfo_CapacityRange.DiscardUnknown(m) +} + +var xxx_messageInfo_CapacityRange proto.InternalMessageInfo + +func (m *CapacityRange) GetRequiredBytes() int64 { + if m != nil { + return m.RequiredBytes + } + return 0 +} + +func (m *CapacityRange) GetLimitBytes() int64 { + if m != nil { + return m.LimitBytes + } + return 0 +} + +// Information about a specific volume. +type Volume struct { + // The capacity of the volume in bytes. This field is OPTIONAL. If not + // set (value of 0), it indicates that the capacity of the volume is + // unknown (e.g., NFS share). + // The value of this field MUST NOT be negative. + CapacityBytes int64 `protobuf:"varint,1,opt,name=capacity_bytes,json=capacityBytes,proto3" json:"capacity_bytes,omitempty"` + // The identifier for this volume, generated by the plugin. + // This field is REQUIRED. + // This field MUST contain enough information to uniquely identify + // this specific volume vs all other volumes supported by this plugin. + // This field SHALL be used by the CO in subsequent calls to refer to + // this volume. + // The SP is NOT responsible for global uniqueness of volume_id across + // multiple SPs. + VolumeId string `protobuf:"bytes,2,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` + // Opaque static properties of the volume. SP MAY use this field to + // ensure subsequent volume validation and publishing calls have + // contextual information. + // The contents of this field SHALL be opaque to a CO. + // The contents of this field SHALL NOT be mutable. + // The contents of this field SHALL be safe for the CO to cache. + // The contents of this field SHOULD NOT contain sensitive + // information. + // The contents of this field SHOULD NOT be used for uniquely + // identifying a volume. The `volume_id` alone SHOULD be sufficient to + // identify the volume. + // A volume uniquely identified by `volume_id` SHALL always report the + // same volume_context. + // This field is OPTIONAL and when present MUST be passed to volume + // validation and publishing calls. + VolumeContext map[string]string `protobuf:"bytes,3,rep,name=volume_context,json=volumeContext,proto3" json:"volume_context,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // If specified, indicates that the volume is not empty and is + // pre-populated with data from the specified source. + // This field is OPTIONAL. + ContentSource *VolumeContentSource `protobuf:"bytes,4,opt,name=content_source,json=contentSource,proto3" json:"content_source,omitempty"` + // Specifies where (regions, zones, racks, etc.) the provisioned + // volume is accessible from. + // A plugin that returns this field MUST also set the + // VOLUME_ACCESSIBILITY_CONSTRAINTS plugin capability. + // An SP MAY specify multiple topologies to indicate the volume is + // accessible from multiple locations. + // COs MAY use this information along with the topology information + // returned by NodeGetInfo to ensure that a given volume is accessible + // from a given node when scheduling workloads. + // This field is OPTIONAL. If it is not specified, the CO MAY assume + // the volume is equally accessible from all nodes in the cluster and + // MAY schedule workloads referencing the volume on any available + // node. + // + // Example 1: + // accessible_topology = {"region": "R1", "zone": "Z2"} + // Indicates a volume accessible only from the "region" "R1" and the + // "zone" "Z2". + // + // Example 2: + // accessible_topology = + // {"region": "R1", "zone": "Z2"}, + // {"region": "R1", "zone": "Z3"} + // Indicates a volume accessible from both "zone" "Z2" and "zone" "Z3" + // in the "region" "R1". + AccessibleTopology []*Topology `protobuf:"bytes,5,rep,name=accessible_topology,json=accessibleTopology,proto3" json:"accessible_topology,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Volume) Reset() { *m = Volume{} } +func (m *Volume) String() string { return proto.CompactTextString(m) } +func (*Volume) ProtoMessage() {} +func (*Volume) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{12} +} +func (m *Volume) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Volume.Unmarshal(m, b) +} +func (m *Volume) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Volume.Marshal(b, m, deterministic) +} +func (dst *Volume) XXX_Merge(src proto.Message) { + xxx_messageInfo_Volume.Merge(dst, src) +} +func (m *Volume) XXX_Size() int { + return xxx_messageInfo_Volume.Size(m) +} +func (m *Volume) XXX_DiscardUnknown() { + xxx_messageInfo_Volume.DiscardUnknown(m) +} + +var xxx_messageInfo_Volume proto.InternalMessageInfo + +func (m *Volume) GetCapacityBytes() int64 { + if m != nil { + return m.CapacityBytes + } + return 0 +} + +func (m *Volume) GetVolumeId() string { + if m != nil { + return m.VolumeId + } + return "" +} + +func (m *Volume) GetVolumeContext() map[string]string { + if m != nil { + return m.VolumeContext + } + return nil +} + +func (m *Volume) GetContentSource() *VolumeContentSource { + if m != nil { + return m.ContentSource + } + return nil +} + +func (m *Volume) GetAccessibleTopology() []*Topology { + if m != nil { + return m.AccessibleTopology + } + return nil +} + +type TopologyRequirement struct { + // Specifies the list of topologies the provisioned volume MUST be + // accessible from. + // This field is OPTIONAL. If TopologyRequirement is specified either + // requisite or preferred or both MUST be specified. + // + // If requisite is specified, the provisioned volume MUST be + // accessible from at least one of the requisite topologies. + // + // Given + // x = number of topologies provisioned volume is accessible from + // n = number of requisite topologies + // The CO MUST ensure n >= 1. The SP MUST ensure x >= 1 + // If x==n, then the SP MUST make the provisioned volume available to + // all topologies from the list of requisite topologies. If it is + // unable to do so, the SP MUST fail the CreateVolume call. + // For example, if a volume should be accessible from a single zone, + // and requisite = + // {"region": "R1", "zone": "Z2"} + // then the provisioned volume MUST be accessible from the "region" + // "R1" and the "zone" "Z2". + // Similarly, if a volume should be accessible from two zones, and + // requisite = + // {"region": "R1", "zone": "Z2"}, + // {"region": "R1", "zone": "Z3"} + // then the provisioned volume MUST be accessible from the "region" + // "R1" and both "zone" "Z2" and "zone" "Z3". + // + // If xn, then the SP MUST make the provisioned volume available from + // all topologies from the list of requisite topologies and MAY choose + // the remaining x-n unique topologies from the list of all possible + // topologies. If it is unable to do so, the SP MUST fail the + // CreateVolume call. + // For example, if a volume should be accessible from two zones, and + // requisite = + // {"region": "R1", "zone": "Z2"} + // then the provisioned volume MUST be accessible from the "region" + // "R1" and the "zone" "Z2" and the SP may select the second zone + // independently, e.g. "R1/Z4". + Requisite []*Topology `protobuf:"bytes,1,rep,name=requisite,proto3" json:"requisite,omitempty"` + // Specifies the list of topologies the CO would prefer the volume to + // be provisioned in. + // + // This field is OPTIONAL. If TopologyRequirement is specified either + // requisite or preferred or both MUST be specified. + // + // An SP MUST attempt to make the provisioned volume available using + // the preferred topologies in order from first to last. + // + // If requisite is specified, all topologies in preferred list MUST + // also be present in the list of requisite topologies. + // + // If the SP is unable to to make the provisioned volume available + // from any of the preferred topologies, the SP MAY choose a topology + // from the list of requisite topologies. + // If the list of requisite topologies is not specified, then the SP + // MAY choose from the list of all possible topologies. + // If the list of requisite topologies is specified and the SP is + // unable to to make the provisioned volume available from any of the + // requisite topologies it MUST fail the CreateVolume call. + // + // Example 1: + // Given a volume should be accessible from a single zone, and + // requisite = + // {"region": "R1", "zone": "Z2"}, + // {"region": "R1", "zone": "Z3"} + // preferred = + // {"region": "R1", "zone": "Z3"} + // then the the SP SHOULD first attempt to make the provisioned volume + // available from "zone" "Z3" in the "region" "R1" and fall back to + // "zone" "Z2" in the "region" "R1" if that is not possible. + // + // Example 2: + // Given a volume should be accessible from a single zone, and + // requisite = + // {"region": "R1", "zone": "Z2"}, + // {"region": "R1", "zone": "Z3"}, + // {"region": "R1", "zone": "Z4"}, + // {"region": "R1", "zone": "Z5"} + // preferred = + // {"region": "R1", "zone": "Z4"}, + // {"region": "R1", "zone": "Z2"} + // then the the SP SHOULD first attempt to make the provisioned volume + // accessible from "zone" "Z4" in the "region" "R1" and fall back to + // "zone" "Z2" in the "region" "R1" if that is not possible. If that + // is not possible, the SP may choose between either the "zone" + // "Z3" or "Z5" in the "region" "R1". + // + // Example 3: + // Given a volume should be accessible from TWO zones (because an + // opaque parameter in CreateVolumeRequest, for example, specifies + // the volume is accessible from two zones, aka synchronously + // replicated), and + // requisite = + // {"region": "R1", "zone": "Z2"}, + // {"region": "R1", "zone": "Z3"}, + // {"region": "R1", "zone": "Z4"}, + // {"region": "R1", "zone": "Z5"} + // preferred = + // {"region": "R1", "zone": "Z5"}, + // {"region": "R1", "zone": "Z3"} + // then the the SP SHOULD first attempt to make the provisioned volume + // accessible from the combination of the two "zones" "Z5" and "Z3" in + // the "region" "R1". If that's not possible, it should fall back to + // a combination of "Z5" and other possibilities from the list of + // requisite. If that's not possible, it should fall back to a + // combination of "Z3" and other possibilities from the list of + // requisite. If that's not possible, it should fall back to a + // combination of other possibilities from the list of requisite. + Preferred []*Topology `protobuf:"bytes,2,rep,name=preferred,proto3" json:"preferred,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TopologyRequirement) Reset() { *m = TopologyRequirement{} } +func (m *TopologyRequirement) String() string { return proto.CompactTextString(m) } +func (*TopologyRequirement) ProtoMessage() {} +func (*TopologyRequirement) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{13} +} +func (m *TopologyRequirement) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TopologyRequirement.Unmarshal(m, b) +} +func (m *TopologyRequirement) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TopologyRequirement.Marshal(b, m, deterministic) +} +func (dst *TopologyRequirement) XXX_Merge(src proto.Message) { + xxx_messageInfo_TopologyRequirement.Merge(dst, src) +} +func (m *TopologyRequirement) XXX_Size() int { + return xxx_messageInfo_TopologyRequirement.Size(m) +} +func (m *TopologyRequirement) XXX_DiscardUnknown() { + xxx_messageInfo_TopologyRequirement.DiscardUnknown(m) +} + +var xxx_messageInfo_TopologyRequirement proto.InternalMessageInfo + +func (m *TopologyRequirement) GetRequisite() []*Topology { + if m != nil { + return m.Requisite + } + return nil +} + +func (m *TopologyRequirement) GetPreferred() []*Topology { + if m != nil { + return m.Preferred + } + return nil +} + +// Topology is a map of topological domains to topological segments. +// A topological domain is a sub-division of a cluster, like "region", +// "zone", "rack", etc. +// A topological segment is a specific instance of a topological domain, +// like "zone3", "rack3", etc. +// For example {"com.company/zone": "Z1", "com.company/rack": "R3"} +// Valid keys have two segments: an OPTIONAL prefix and name, separated +// by a slash (/), for example: "com.company.example/zone". +// The key name segment is REQUIRED. The prefix is OPTIONAL. +// The key name MUST be 63 characters or less, begin and end with an +// alphanumeric character ([a-z0-9A-Z]), and contain only dashes (-), +// underscores (_), dots (.), or alphanumerics in between, for example +// "zone". +// The key prefix MUST be 63 characters or less, begin and end with a +// lower-case alphanumeric character ([a-z0-9]), contain only +// dashes (-), dots (.), or lower-case alphanumerics in between, and +// follow domain name notation format +// (https://tools.ietf.org/html/rfc1035#section-2.3.1). +// The key prefix SHOULD include the plugin's host company name and/or +// the plugin name, to minimize the possibility of collisions with keys +// from other plugins. +// If a key prefix is specified, it MUST be identical across all +// topology keys returned by the SP (across all RPCs). +// Keys MUST be case-insensitive. Meaning the keys "Zone" and "zone" +// MUST not both exist. +// Each value (topological segment) MUST contain 1 or more strings. +// Each string MUST be 63 characters or less and begin and end with an +// alphanumeric character with '-', '_', '.', or alphanumerics in +// between. +type Topology struct { + Segments map[string]string `protobuf:"bytes,1,rep,name=segments,proto3" json:"segments,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Topology) Reset() { *m = Topology{} } +func (m *Topology) String() string { return proto.CompactTextString(m) } +func (*Topology) ProtoMessage() {} +func (*Topology) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{14} +} +func (m *Topology) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Topology.Unmarshal(m, b) +} +func (m *Topology) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Topology.Marshal(b, m, deterministic) +} +func (dst *Topology) XXX_Merge(src proto.Message) { + xxx_messageInfo_Topology.Merge(dst, src) +} +func (m *Topology) XXX_Size() int { + return xxx_messageInfo_Topology.Size(m) +} +func (m *Topology) XXX_DiscardUnknown() { + xxx_messageInfo_Topology.DiscardUnknown(m) +} + +var xxx_messageInfo_Topology proto.InternalMessageInfo + +func (m *Topology) GetSegments() map[string]string { + if m != nil { + return m.Segments + } + return nil +} + +type DeleteVolumeRequest struct { + // The ID of the volume to be deprovisioned. + // This field is REQUIRED. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` + // Secrets required by plugin to complete volume deletion request. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. + Secrets map[string]string `protobuf:"bytes,2,rep,name=secrets,proto3" json:"secrets,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DeleteVolumeRequest) Reset() { *m = DeleteVolumeRequest{} } +func (m *DeleteVolumeRequest) String() string { return proto.CompactTextString(m) } +func (*DeleteVolumeRequest) ProtoMessage() {} +func (*DeleteVolumeRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{15} +} +func (m *DeleteVolumeRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteVolumeRequest.Unmarshal(m, b) +} +func (m *DeleteVolumeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteVolumeRequest.Marshal(b, m, deterministic) +} +func (dst *DeleteVolumeRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteVolumeRequest.Merge(dst, src) +} +func (m *DeleteVolumeRequest) XXX_Size() int { + return xxx_messageInfo_DeleteVolumeRequest.Size(m) +} +func (m *DeleteVolumeRequest) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteVolumeRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_DeleteVolumeRequest proto.InternalMessageInfo + +func (m *DeleteVolumeRequest) GetVolumeId() string { + if m != nil { + return m.VolumeId + } + return "" +} + +func (m *DeleteVolumeRequest) GetSecrets() map[string]string { + if m != nil { + return m.Secrets + } + return nil +} + +type DeleteVolumeResponse struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DeleteVolumeResponse) Reset() { *m = DeleteVolumeResponse{} } +func (m *DeleteVolumeResponse) String() string { return proto.CompactTextString(m) } +func (*DeleteVolumeResponse) ProtoMessage() {} +func (*DeleteVolumeResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{16} +} +func (m *DeleteVolumeResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteVolumeResponse.Unmarshal(m, b) +} +func (m *DeleteVolumeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteVolumeResponse.Marshal(b, m, deterministic) +} +func (dst *DeleteVolumeResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteVolumeResponse.Merge(dst, src) +} +func (m *DeleteVolumeResponse) XXX_Size() int { + return xxx_messageInfo_DeleteVolumeResponse.Size(m) +} +func (m *DeleteVolumeResponse) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteVolumeResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_DeleteVolumeResponse proto.InternalMessageInfo + +type ControllerPublishVolumeRequest struct { + // The ID of the volume to be used on a node. + // This field is REQUIRED. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` + // The ID of the node. This field is REQUIRED. The CO SHALL set this + // field to match the node ID returned by `NodeGetInfo`. + NodeId string `protobuf:"bytes,2,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"` + // Volume capability describing how the CO intends to use this volume. + // SP MUST ensure the CO can use the published volume as described. + // Otherwise SP MUST return the appropriate gRPC error code. + // This is a REQUIRED field. + VolumeCapability *VolumeCapability `protobuf:"bytes,3,opt,name=volume_capability,json=volumeCapability,proto3" json:"volume_capability,omitempty"` + // Indicates SP MUST publish the volume in readonly mode. + // CO MUST set this field to false if SP does not have the + // PUBLISH_READONLY controller capability. + // This is a REQUIRED field. + Readonly bool `protobuf:"varint,4,opt,name=readonly,proto3" json:"readonly,omitempty"` + // Secrets required by plugin to complete controller publish volume + // request. This field is OPTIONAL. Refer to the + // `Secrets Requirements` section on how to use this field. + Secrets map[string]string `protobuf:"bytes,5,rep,name=secrets,proto3" json:"secrets,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Volume context as returned by CO in CreateVolumeRequest. This field + // is OPTIONAL and MUST match the volume_context of the volume + // identified by `volume_id`. + VolumeContext map[string]string `protobuf:"bytes,6,rep,name=volume_context,json=volumeContext,proto3" json:"volume_context,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ControllerPublishVolumeRequest) Reset() { *m = ControllerPublishVolumeRequest{} } +func (m *ControllerPublishVolumeRequest) String() string { return proto.CompactTextString(m) } +func (*ControllerPublishVolumeRequest) ProtoMessage() {} +func (*ControllerPublishVolumeRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{17} +} +func (m *ControllerPublishVolumeRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ControllerPublishVolumeRequest.Unmarshal(m, b) +} +func (m *ControllerPublishVolumeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ControllerPublishVolumeRequest.Marshal(b, m, deterministic) +} +func (dst *ControllerPublishVolumeRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerPublishVolumeRequest.Merge(dst, src) +} +func (m *ControllerPublishVolumeRequest) XXX_Size() int { + return xxx_messageInfo_ControllerPublishVolumeRequest.Size(m) +} +func (m *ControllerPublishVolumeRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerPublishVolumeRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerPublishVolumeRequest proto.InternalMessageInfo + +func (m *ControllerPublishVolumeRequest) GetVolumeId() string { + if m != nil { + return m.VolumeId + } + return "" +} + +func (m *ControllerPublishVolumeRequest) GetNodeId() string { + if m != nil { + return m.NodeId + } + return "" +} + +func (m *ControllerPublishVolumeRequest) GetVolumeCapability() *VolumeCapability { + if m != nil { + return m.VolumeCapability + } + return nil +} + +func (m *ControllerPublishVolumeRequest) GetReadonly() bool { + if m != nil { + return m.Readonly + } + return false +} + +func (m *ControllerPublishVolumeRequest) GetSecrets() map[string]string { + if m != nil { + return m.Secrets + } + return nil +} + +func (m *ControllerPublishVolumeRequest) GetVolumeContext() map[string]string { + if m != nil { + return m.VolumeContext + } + return nil +} + +type ControllerPublishVolumeResponse struct { + // Opaque static publish properties of the volume. SP MAY use this + // field to ensure subsequent `NodeStageVolume` or `NodePublishVolume` + // calls calls have contextual information. + // The contents of this field SHALL be opaque to a CO. + // The contents of this field SHALL NOT be mutable. + // The contents of this field SHALL be safe for the CO to cache. + // The contents of this field SHOULD NOT contain sensitive + // information. + // The contents of this field SHOULD NOT be used for uniquely + // identifying a volume. The `volume_id` alone SHOULD be sufficient to + // identify the volume. + // This field is OPTIONAL and when present MUST be passed to + // subsequent `NodeStageVolume` or `NodePublishVolume` calls + PublishContext map[string]string `protobuf:"bytes,1,rep,name=publish_context,json=publishContext,proto3" json:"publish_context,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ControllerPublishVolumeResponse) Reset() { *m = ControllerPublishVolumeResponse{} } +func (m *ControllerPublishVolumeResponse) String() string { return proto.CompactTextString(m) } +func (*ControllerPublishVolumeResponse) ProtoMessage() {} +func (*ControllerPublishVolumeResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{18} +} +func (m *ControllerPublishVolumeResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ControllerPublishVolumeResponse.Unmarshal(m, b) +} +func (m *ControllerPublishVolumeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ControllerPublishVolumeResponse.Marshal(b, m, deterministic) +} +func (dst *ControllerPublishVolumeResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerPublishVolumeResponse.Merge(dst, src) +} +func (m *ControllerPublishVolumeResponse) XXX_Size() int { + return xxx_messageInfo_ControllerPublishVolumeResponse.Size(m) +} +func (m *ControllerPublishVolumeResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerPublishVolumeResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerPublishVolumeResponse proto.InternalMessageInfo + +func (m *ControllerPublishVolumeResponse) GetPublishContext() map[string]string { + if m != nil { + return m.PublishContext + } + return nil +} + +type ControllerUnpublishVolumeRequest struct { + // The ID of the volume. This field is REQUIRED. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` + // The ID of the node. This field is OPTIONAL. The CO SHOULD set this + // field to match the node ID returned by `NodeGetInfo` or leave it + // unset. If the value is set, the SP MUST unpublish the volume from + // the specified node. If the value is unset, the SP MUST unpublish + // the volume from all nodes it is published to. + NodeId string `protobuf:"bytes,2,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"` + // Secrets required by plugin to complete controller unpublish volume + // request. This SHOULD be the same secrets passed to the + // ControllerPublishVolume call for the specified volume. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. + Secrets map[string]string `protobuf:"bytes,3,rep,name=secrets,proto3" json:"secrets,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ControllerUnpublishVolumeRequest) Reset() { *m = ControllerUnpublishVolumeRequest{} } +func (m *ControllerUnpublishVolumeRequest) String() string { return proto.CompactTextString(m) } +func (*ControllerUnpublishVolumeRequest) ProtoMessage() {} +func (*ControllerUnpublishVolumeRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{19} +} +func (m *ControllerUnpublishVolumeRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ControllerUnpublishVolumeRequest.Unmarshal(m, b) +} +func (m *ControllerUnpublishVolumeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ControllerUnpublishVolumeRequest.Marshal(b, m, deterministic) +} +func (dst *ControllerUnpublishVolumeRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerUnpublishVolumeRequest.Merge(dst, src) +} +func (m *ControllerUnpublishVolumeRequest) XXX_Size() int { + return xxx_messageInfo_ControllerUnpublishVolumeRequest.Size(m) +} +func (m *ControllerUnpublishVolumeRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerUnpublishVolumeRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerUnpublishVolumeRequest proto.InternalMessageInfo + +func (m *ControllerUnpublishVolumeRequest) GetVolumeId() string { + if m != nil { + return m.VolumeId + } + return "" +} + +func (m *ControllerUnpublishVolumeRequest) GetNodeId() string { + if m != nil { + return m.NodeId + } + return "" +} + +func (m *ControllerUnpublishVolumeRequest) GetSecrets() map[string]string { + if m != nil { + return m.Secrets + } + return nil +} + +type ControllerUnpublishVolumeResponse struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ControllerUnpublishVolumeResponse) Reset() { *m = ControllerUnpublishVolumeResponse{} } +func (m *ControllerUnpublishVolumeResponse) String() string { return proto.CompactTextString(m) } +func (*ControllerUnpublishVolumeResponse) ProtoMessage() {} +func (*ControllerUnpublishVolumeResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{20} +} +func (m *ControllerUnpublishVolumeResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ControllerUnpublishVolumeResponse.Unmarshal(m, b) +} +func (m *ControllerUnpublishVolumeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ControllerUnpublishVolumeResponse.Marshal(b, m, deterministic) +} +func (dst *ControllerUnpublishVolumeResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerUnpublishVolumeResponse.Merge(dst, src) +} +func (m *ControllerUnpublishVolumeResponse) XXX_Size() int { + return xxx_messageInfo_ControllerUnpublishVolumeResponse.Size(m) +} +func (m *ControllerUnpublishVolumeResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerUnpublishVolumeResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerUnpublishVolumeResponse proto.InternalMessageInfo + +type ValidateVolumeCapabilitiesRequest struct { + // The ID of the volume to check. This field is REQUIRED. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` + // Volume context as returned by CO in CreateVolumeRequest. This field + // is OPTIONAL and MUST match the volume_context of the volume + // identified by `volume_id`. + VolumeContext map[string]string `protobuf:"bytes,2,rep,name=volume_context,json=volumeContext,proto3" json:"volume_context,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // The capabilities that the CO wants to check for the volume. This + // call SHALL return "confirmed" only if all the volume capabilities + // specified below are supported. This field is REQUIRED. + VolumeCapabilities []*VolumeCapability `protobuf:"bytes,3,rep,name=volume_capabilities,json=volumeCapabilities,proto3" json:"volume_capabilities,omitempty"` + // See CreateVolumeRequest.parameters. + // This field is OPTIONAL. + Parameters map[string]string `protobuf:"bytes,4,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Secrets required by plugin to complete volume validation request. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. + Secrets map[string]string `protobuf:"bytes,5,rep,name=secrets,proto3" json:"secrets,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ValidateVolumeCapabilitiesRequest) Reset() { *m = ValidateVolumeCapabilitiesRequest{} } +func (m *ValidateVolumeCapabilitiesRequest) String() string { return proto.CompactTextString(m) } +func (*ValidateVolumeCapabilitiesRequest) ProtoMessage() {} +func (*ValidateVolumeCapabilitiesRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{21} +} +func (m *ValidateVolumeCapabilitiesRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ValidateVolumeCapabilitiesRequest.Unmarshal(m, b) +} +func (m *ValidateVolumeCapabilitiesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ValidateVolumeCapabilitiesRequest.Marshal(b, m, deterministic) +} +func (dst *ValidateVolumeCapabilitiesRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ValidateVolumeCapabilitiesRequest.Merge(dst, src) +} +func (m *ValidateVolumeCapabilitiesRequest) XXX_Size() int { + return xxx_messageInfo_ValidateVolumeCapabilitiesRequest.Size(m) +} +func (m *ValidateVolumeCapabilitiesRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ValidateVolumeCapabilitiesRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ValidateVolumeCapabilitiesRequest proto.InternalMessageInfo + +func (m *ValidateVolumeCapabilitiesRequest) GetVolumeId() string { + if m != nil { + return m.VolumeId + } + return "" +} + +func (m *ValidateVolumeCapabilitiesRequest) GetVolumeContext() map[string]string { + if m != nil { + return m.VolumeContext + } + return nil +} + +func (m *ValidateVolumeCapabilitiesRequest) GetVolumeCapabilities() []*VolumeCapability { + if m != nil { + return m.VolumeCapabilities + } + return nil +} + +func (m *ValidateVolumeCapabilitiesRequest) GetParameters() map[string]string { + if m != nil { + return m.Parameters + } + return nil +} + +func (m *ValidateVolumeCapabilitiesRequest) GetSecrets() map[string]string { + if m != nil { + return m.Secrets + } + return nil +} + +type ValidateVolumeCapabilitiesResponse struct { + // Confirmed indicates to the CO the set of capabilities that the + // plugin has validated. This field SHALL only be set to a non-empty + // value for successful validation responses. + // For successful validation responses, the CO SHALL compare the + // fields of this message to the originally requested capabilities in + // order to guard against an older plugin reporting "valid" for newer + // capability fields that it does not yet understand. + // This field is OPTIONAL. + Confirmed *ValidateVolumeCapabilitiesResponse_Confirmed `protobuf:"bytes,1,opt,name=confirmed,proto3" json:"confirmed,omitempty"` + // Message to the CO if `confirmed` above is empty. This field is + // OPTIONAL. + // An empty string is equal to an unspecified field value. + Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ValidateVolumeCapabilitiesResponse) Reset() { *m = ValidateVolumeCapabilitiesResponse{} } +func (m *ValidateVolumeCapabilitiesResponse) String() string { return proto.CompactTextString(m) } +func (*ValidateVolumeCapabilitiesResponse) ProtoMessage() {} +func (*ValidateVolumeCapabilitiesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{22} +} +func (m *ValidateVolumeCapabilitiesResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ValidateVolumeCapabilitiesResponse.Unmarshal(m, b) +} +func (m *ValidateVolumeCapabilitiesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ValidateVolumeCapabilitiesResponse.Marshal(b, m, deterministic) +} +func (dst *ValidateVolumeCapabilitiesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ValidateVolumeCapabilitiesResponse.Merge(dst, src) +} +func (m *ValidateVolumeCapabilitiesResponse) XXX_Size() int { + return xxx_messageInfo_ValidateVolumeCapabilitiesResponse.Size(m) +} +func (m *ValidateVolumeCapabilitiesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ValidateVolumeCapabilitiesResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ValidateVolumeCapabilitiesResponse proto.InternalMessageInfo + +func (m *ValidateVolumeCapabilitiesResponse) GetConfirmed() *ValidateVolumeCapabilitiesResponse_Confirmed { + if m != nil { + return m.Confirmed + } + return nil +} + +func (m *ValidateVolumeCapabilitiesResponse) GetMessage() string { + if m != nil { + return m.Message + } + return "" +} + +type ValidateVolumeCapabilitiesResponse_Confirmed struct { + // Volume context validated by the plugin. + // This field is OPTIONAL. + VolumeContext map[string]string `protobuf:"bytes,1,rep,name=volume_context,json=volumeContext,proto3" json:"volume_context,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Volume capabilities supported by the plugin. + // This field is REQUIRED. + VolumeCapabilities []*VolumeCapability `protobuf:"bytes,2,rep,name=volume_capabilities,json=volumeCapabilities,proto3" json:"volume_capabilities,omitempty"` + // The volume creation parameters validated by the plugin. + // This field is OPTIONAL. + Parameters map[string]string `protobuf:"bytes,3,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ValidateVolumeCapabilitiesResponse_Confirmed) Reset() { + *m = ValidateVolumeCapabilitiesResponse_Confirmed{} +} +func (m *ValidateVolumeCapabilitiesResponse_Confirmed) String() string { + return proto.CompactTextString(m) +} +func (*ValidateVolumeCapabilitiesResponse_Confirmed) ProtoMessage() {} +func (*ValidateVolumeCapabilitiesResponse_Confirmed) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{22, 0} +} +func (m *ValidateVolumeCapabilitiesResponse_Confirmed) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ValidateVolumeCapabilitiesResponse_Confirmed.Unmarshal(m, b) +} +func (m *ValidateVolumeCapabilitiesResponse_Confirmed) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ValidateVolumeCapabilitiesResponse_Confirmed.Marshal(b, m, deterministic) +} +func (dst *ValidateVolumeCapabilitiesResponse_Confirmed) XXX_Merge(src proto.Message) { + xxx_messageInfo_ValidateVolumeCapabilitiesResponse_Confirmed.Merge(dst, src) +} +func (m *ValidateVolumeCapabilitiesResponse_Confirmed) XXX_Size() int { + return xxx_messageInfo_ValidateVolumeCapabilitiesResponse_Confirmed.Size(m) +} +func (m *ValidateVolumeCapabilitiesResponse_Confirmed) XXX_DiscardUnknown() { + xxx_messageInfo_ValidateVolumeCapabilitiesResponse_Confirmed.DiscardUnknown(m) +} + +var xxx_messageInfo_ValidateVolumeCapabilitiesResponse_Confirmed proto.InternalMessageInfo + +func (m *ValidateVolumeCapabilitiesResponse_Confirmed) GetVolumeContext() map[string]string { + if m != nil { + return m.VolumeContext + } + return nil +} + +func (m *ValidateVolumeCapabilitiesResponse_Confirmed) GetVolumeCapabilities() []*VolumeCapability { + if m != nil { + return m.VolumeCapabilities + } + return nil +} + +func (m *ValidateVolumeCapabilitiesResponse_Confirmed) GetParameters() map[string]string { + if m != nil { + return m.Parameters + } + return nil +} + +type ListVolumesRequest struct { + // If specified (non-zero value), the Plugin MUST NOT return more + // entries than this number in the response. If the actual number of + // entries is more than this number, the Plugin MUST set `next_token` + // in the response which can be used to get the next page of entries + // in the subsequent `ListVolumes` call. This field is OPTIONAL. If + // not specified (zero value), it means there is no restriction on the + // number of entries that can be returned. + // The value of this field MUST NOT be negative. + MaxEntries int32 `protobuf:"varint,1,opt,name=max_entries,json=maxEntries,proto3" json:"max_entries,omitempty"` + // A token to specify where to start paginating. Set this field to + // `next_token` returned by a previous `ListVolumes` call to get the + // next page of entries. This field is OPTIONAL. + // An empty string is equal to an unspecified field value. + StartingToken string `protobuf:"bytes,2,opt,name=starting_token,json=startingToken,proto3" json:"starting_token,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListVolumesRequest) Reset() { *m = ListVolumesRequest{} } +func (m *ListVolumesRequest) String() string { return proto.CompactTextString(m) } +func (*ListVolumesRequest) ProtoMessage() {} +func (*ListVolumesRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{23} +} +func (m *ListVolumesRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListVolumesRequest.Unmarshal(m, b) +} +func (m *ListVolumesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListVolumesRequest.Marshal(b, m, deterministic) +} +func (dst *ListVolumesRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListVolumesRequest.Merge(dst, src) +} +func (m *ListVolumesRequest) XXX_Size() int { + return xxx_messageInfo_ListVolumesRequest.Size(m) +} +func (m *ListVolumesRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ListVolumesRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ListVolumesRequest proto.InternalMessageInfo + +func (m *ListVolumesRequest) GetMaxEntries() int32 { + if m != nil { + return m.MaxEntries + } + return 0 +} + +func (m *ListVolumesRequest) GetStartingToken() string { + if m != nil { + return m.StartingToken + } + return "" +} + +type ListVolumesResponse struct { + Entries []*ListVolumesResponse_Entry `protobuf:"bytes,1,rep,name=entries,proto3" json:"entries,omitempty"` + // This token allows you to get the next page of entries for + // `ListVolumes` request. If the number of entries is larger than + // `max_entries`, use the `next_token` as a value for the + // `starting_token` field in the next `ListVolumes` request. This + // field is OPTIONAL. + // An empty string is equal to an unspecified field value. + NextToken string `protobuf:"bytes,2,opt,name=next_token,json=nextToken,proto3" json:"next_token,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListVolumesResponse) Reset() { *m = ListVolumesResponse{} } +func (m *ListVolumesResponse) String() string { return proto.CompactTextString(m) } +func (*ListVolumesResponse) ProtoMessage() {} +func (*ListVolumesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{24} +} +func (m *ListVolumesResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListVolumesResponse.Unmarshal(m, b) +} +func (m *ListVolumesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListVolumesResponse.Marshal(b, m, deterministic) +} +func (dst *ListVolumesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListVolumesResponse.Merge(dst, src) +} +func (m *ListVolumesResponse) XXX_Size() int { + return xxx_messageInfo_ListVolumesResponse.Size(m) +} +func (m *ListVolumesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ListVolumesResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ListVolumesResponse proto.InternalMessageInfo + +func (m *ListVolumesResponse) GetEntries() []*ListVolumesResponse_Entry { + if m != nil { + return m.Entries + } + return nil +} + +func (m *ListVolumesResponse) GetNextToken() string { + if m != nil { + return m.NextToken + } + return "" +} + +type ListVolumesResponse_Entry struct { + Volume *Volume `protobuf:"bytes,1,opt,name=volume,proto3" json:"volume,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListVolumesResponse_Entry) Reset() { *m = ListVolumesResponse_Entry{} } +func (m *ListVolumesResponse_Entry) String() string { return proto.CompactTextString(m) } +func (*ListVolumesResponse_Entry) ProtoMessage() {} +func (*ListVolumesResponse_Entry) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{24, 0} +} +func (m *ListVolumesResponse_Entry) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListVolumesResponse_Entry.Unmarshal(m, b) +} +func (m *ListVolumesResponse_Entry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListVolumesResponse_Entry.Marshal(b, m, deterministic) +} +func (dst *ListVolumesResponse_Entry) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListVolumesResponse_Entry.Merge(dst, src) +} +func (m *ListVolumesResponse_Entry) XXX_Size() int { + return xxx_messageInfo_ListVolumesResponse_Entry.Size(m) +} +func (m *ListVolumesResponse_Entry) XXX_DiscardUnknown() { + xxx_messageInfo_ListVolumesResponse_Entry.DiscardUnknown(m) +} + +var xxx_messageInfo_ListVolumesResponse_Entry proto.InternalMessageInfo + +func (m *ListVolumesResponse_Entry) GetVolume() *Volume { + if m != nil { + return m.Volume + } + return nil +} + +type GetCapacityRequest struct { + // If specified, the Plugin SHALL report the capacity of the storage + // that can be used to provision volumes that satisfy ALL of the + // specified `volume_capabilities`. These are the same + // `volume_capabilities` the CO will use in `CreateVolumeRequest`. + // This field is OPTIONAL. + VolumeCapabilities []*VolumeCapability `protobuf:"bytes,1,rep,name=volume_capabilities,json=volumeCapabilities,proto3" json:"volume_capabilities,omitempty"` + // If specified, the Plugin SHALL report the capacity of the storage + // that can be used to provision volumes with the given Plugin + // specific `parameters`. These are the same `parameters` the CO will + // use in `CreateVolumeRequest`. This field is OPTIONAL. + Parameters map[string]string `protobuf:"bytes,2,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // If specified, the Plugin SHALL report the capacity of the storage + // that can be used to provision volumes that in the specified + // `accessible_topology`. This is the same as the + // `accessible_topology` the CO returns in a `CreateVolumeResponse`. + // This field is OPTIONAL. This field SHALL NOT be set unless the + // plugin advertises the VOLUME_ACCESSIBILITY_CONSTRAINTS capability. + AccessibleTopology *Topology `protobuf:"bytes,3,opt,name=accessible_topology,json=accessibleTopology,proto3" json:"accessible_topology,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetCapacityRequest) Reset() { *m = GetCapacityRequest{} } +func (m *GetCapacityRequest) String() string { return proto.CompactTextString(m) } +func (*GetCapacityRequest) ProtoMessage() {} +func (*GetCapacityRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{25} +} +func (m *GetCapacityRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetCapacityRequest.Unmarshal(m, b) +} +func (m *GetCapacityRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetCapacityRequest.Marshal(b, m, deterministic) +} +func (dst *GetCapacityRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetCapacityRequest.Merge(dst, src) +} +func (m *GetCapacityRequest) XXX_Size() int { + return xxx_messageInfo_GetCapacityRequest.Size(m) +} +func (m *GetCapacityRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetCapacityRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetCapacityRequest proto.InternalMessageInfo + +func (m *GetCapacityRequest) GetVolumeCapabilities() []*VolumeCapability { + if m != nil { + return m.VolumeCapabilities + } + return nil +} + +func (m *GetCapacityRequest) GetParameters() map[string]string { + if m != nil { + return m.Parameters + } + return nil +} + +func (m *GetCapacityRequest) GetAccessibleTopology() *Topology { + if m != nil { + return m.AccessibleTopology + } + return nil +} + +type GetCapacityResponse struct { + // The available capacity, in bytes, of the storage that can be used + // to provision volumes. If `volume_capabilities` or `parameters` is + // specified in the request, the Plugin SHALL take those into + // consideration when calculating the available capacity of the + // storage. This field is REQUIRED. + // The value of this field MUST NOT be negative. + AvailableCapacity int64 `protobuf:"varint,1,opt,name=available_capacity,json=availableCapacity,proto3" json:"available_capacity,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetCapacityResponse) Reset() { *m = GetCapacityResponse{} } +func (m *GetCapacityResponse) String() string { return proto.CompactTextString(m) } +func (*GetCapacityResponse) ProtoMessage() {} +func (*GetCapacityResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{26} +} +func (m *GetCapacityResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetCapacityResponse.Unmarshal(m, b) +} +func (m *GetCapacityResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetCapacityResponse.Marshal(b, m, deterministic) +} +func (dst *GetCapacityResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetCapacityResponse.Merge(dst, src) +} +func (m *GetCapacityResponse) XXX_Size() int { + return xxx_messageInfo_GetCapacityResponse.Size(m) +} +func (m *GetCapacityResponse) XXX_DiscardUnknown() { + xxx_messageInfo_GetCapacityResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_GetCapacityResponse proto.InternalMessageInfo + +func (m *GetCapacityResponse) GetAvailableCapacity() int64 { + if m != nil { + return m.AvailableCapacity + } + return 0 +} + +type ControllerGetCapabilitiesRequest struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ControllerGetCapabilitiesRequest) Reset() { *m = ControllerGetCapabilitiesRequest{} } +func (m *ControllerGetCapabilitiesRequest) String() string { return proto.CompactTextString(m) } +func (*ControllerGetCapabilitiesRequest) ProtoMessage() {} +func (*ControllerGetCapabilitiesRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{27} +} +func (m *ControllerGetCapabilitiesRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ControllerGetCapabilitiesRequest.Unmarshal(m, b) +} +func (m *ControllerGetCapabilitiesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ControllerGetCapabilitiesRequest.Marshal(b, m, deterministic) +} +func (dst *ControllerGetCapabilitiesRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerGetCapabilitiesRequest.Merge(dst, src) +} +func (m *ControllerGetCapabilitiesRequest) XXX_Size() int { + return xxx_messageInfo_ControllerGetCapabilitiesRequest.Size(m) +} +func (m *ControllerGetCapabilitiesRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerGetCapabilitiesRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerGetCapabilitiesRequest proto.InternalMessageInfo + +type ControllerGetCapabilitiesResponse struct { + // All the capabilities that the controller service supports. This + // field is OPTIONAL. + Capabilities []*ControllerServiceCapability `protobuf:"bytes,1,rep,name=capabilities,proto3" json:"capabilities,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ControllerGetCapabilitiesResponse) Reset() { *m = ControllerGetCapabilitiesResponse{} } +func (m *ControllerGetCapabilitiesResponse) String() string { return proto.CompactTextString(m) } +func (*ControllerGetCapabilitiesResponse) ProtoMessage() {} +func (*ControllerGetCapabilitiesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{28} +} +func (m *ControllerGetCapabilitiesResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ControllerGetCapabilitiesResponse.Unmarshal(m, b) +} +func (m *ControllerGetCapabilitiesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ControllerGetCapabilitiesResponse.Marshal(b, m, deterministic) +} +func (dst *ControllerGetCapabilitiesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerGetCapabilitiesResponse.Merge(dst, src) +} +func (m *ControllerGetCapabilitiesResponse) XXX_Size() int { + return xxx_messageInfo_ControllerGetCapabilitiesResponse.Size(m) +} +func (m *ControllerGetCapabilitiesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerGetCapabilitiesResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerGetCapabilitiesResponse proto.InternalMessageInfo + +func (m *ControllerGetCapabilitiesResponse) GetCapabilities() []*ControllerServiceCapability { + if m != nil { + return m.Capabilities + } + return nil +} + +// Specifies a capability of the controller service. +type ControllerServiceCapability struct { + // Types that are valid to be assigned to Type: + // *ControllerServiceCapability_Rpc + Type isControllerServiceCapability_Type `protobuf_oneof:"type"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ControllerServiceCapability) Reset() { *m = ControllerServiceCapability{} } +func (m *ControllerServiceCapability) String() string { return proto.CompactTextString(m) } +func (*ControllerServiceCapability) ProtoMessage() {} +func (*ControllerServiceCapability) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{29} +} +func (m *ControllerServiceCapability) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ControllerServiceCapability.Unmarshal(m, b) +} +func (m *ControllerServiceCapability) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ControllerServiceCapability.Marshal(b, m, deterministic) +} +func (dst *ControllerServiceCapability) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerServiceCapability.Merge(dst, src) +} +func (m *ControllerServiceCapability) XXX_Size() int { + return xxx_messageInfo_ControllerServiceCapability.Size(m) +} +func (m *ControllerServiceCapability) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerServiceCapability.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerServiceCapability proto.InternalMessageInfo + +type isControllerServiceCapability_Type interface { + isControllerServiceCapability_Type() +} + +type ControllerServiceCapability_Rpc struct { + Rpc *ControllerServiceCapability_RPC `protobuf:"bytes,1,opt,name=rpc,proto3,oneof"` +} + +func (*ControllerServiceCapability_Rpc) isControllerServiceCapability_Type() {} + +func (m *ControllerServiceCapability) GetType() isControllerServiceCapability_Type { + if m != nil { + return m.Type + } + return nil +} + +func (m *ControllerServiceCapability) GetRpc() *ControllerServiceCapability_RPC { + if x, ok := m.GetType().(*ControllerServiceCapability_Rpc); ok { + return x.Rpc + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*ControllerServiceCapability) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _ControllerServiceCapability_OneofMarshaler, _ControllerServiceCapability_OneofUnmarshaler, _ControllerServiceCapability_OneofSizer, []interface{}{ + (*ControllerServiceCapability_Rpc)(nil), + } +} + +func _ControllerServiceCapability_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*ControllerServiceCapability) + // type + switch x := m.Type.(type) { + case *ControllerServiceCapability_Rpc: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Rpc); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("ControllerServiceCapability.Type has unexpected type %T", x) + } + return nil +} + +func _ControllerServiceCapability_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*ControllerServiceCapability) + switch tag { + case 1: // type.rpc + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(ControllerServiceCapability_RPC) + err := b.DecodeMessage(msg) + m.Type = &ControllerServiceCapability_Rpc{msg} + return true, err + default: + return false, nil + } +} + +func _ControllerServiceCapability_OneofSizer(msg proto.Message) (n int) { + m := msg.(*ControllerServiceCapability) + // type + switch x := m.Type.(type) { + case *ControllerServiceCapability_Rpc: + s := proto.Size(x.Rpc) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +type ControllerServiceCapability_RPC struct { + Type ControllerServiceCapability_RPC_Type `protobuf:"varint,1,opt,name=type,proto3,enum=csitest.v1.ControllerServiceCapability_RPC_Type" json:"type,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ControllerServiceCapability_RPC) Reset() { *m = ControllerServiceCapability_RPC{} } +func (m *ControllerServiceCapability_RPC) String() string { return proto.CompactTextString(m) } +func (*ControllerServiceCapability_RPC) ProtoMessage() {} +func (*ControllerServiceCapability_RPC) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{29, 0} +} +func (m *ControllerServiceCapability_RPC) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ControllerServiceCapability_RPC.Unmarshal(m, b) +} +func (m *ControllerServiceCapability_RPC) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ControllerServiceCapability_RPC.Marshal(b, m, deterministic) +} +func (dst *ControllerServiceCapability_RPC) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerServiceCapability_RPC.Merge(dst, src) +} +func (m *ControllerServiceCapability_RPC) XXX_Size() int { + return xxx_messageInfo_ControllerServiceCapability_RPC.Size(m) +} +func (m *ControllerServiceCapability_RPC) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerServiceCapability_RPC.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerServiceCapability_RPC proto.InternalMessageInfo + +func (m *ControllerServiceCapability_RPC) GetType() ControllerServiceCapability_RPC_Type { + if m != nil { + return m.Type + } + return ControllerServiceCapability_RPC_UNKNOWN +} + +type CreateSnapshotRequest struct { + // The ID of the source volume to be snapshotted. + // This field is REQUIRED. + SourceVolumeId string `protobuf:"bytes,1,opt,name=source_volume_id,json=sourceVolumeId,proto3" json:"source_volume_id,omitempty"` + // The suggested name for the snapshot. This field is REQUIRED for + // idempotency. + // Any Unicode string that conforms to the length limit is allowed + // except those containing the following banned characters: + // U+0000-U+0008, U+000B, U+000C, U+000E-U+001F, U+007F-U+009F. + // (These are control characters other than commonly used whitespace.) + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + // Secrets required by plugin to complete snapshot creation request. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. + Secrets map[string]string `protobuf:"bytes,3,rep,name=secrets,proto3" json:"secrets,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Plugin specific parameters passed in as opaque key-value pairs. + // This field is OPTIONAL. The Plugin is responsible for parsing and + // validating these parameters. COs will treat these as opaque. + // Use cases for opaque parameters: + // - Specify a policy to automatically clean up the snapshot. + // - Specify an expiration date for the snapshot. + // - Specify whether the snapshot is readonly or read/write. + // - Specify if the snapshot should be replicated to some place. + // - Specify primary or secondary for replication systems that + // support snapshotting only on primary. + Parameters map[string]string `protobuf:"bytes,4,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CreateSnapshotRequest) Reset() { *m = CreateSnapshotRequest{} } +func (m *CreateSnapshotRequest) String() string { return proto.CompactTextString(m) } +func (*CreateSnapshotRequest) ProtoMessage() {} +func (*CreateSnapshotRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{30} +} +func (m *CreateSnapshotRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreateSnapshotRequest.Unmarshal(m, b) +} +func (m *CreateSnapshotRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreateSnapshotRequest.Marshal(b, m, deterministic) +} +func (dst *CreateSnapshotRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateSnapshotRequest.Merge(dst, src) +} +func (m *CreateSnapshotRequest) XXX_Size() int { + return xxx_messageInfo_CreateSnapshotRequest.Size(m) +} +func (m *CreateSnapshotRequest) XXX_DiscardUnknown() { + xxx_messageInfo_CreateSnapshotRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_CreateSnapshotRequest proto.InternalMessageInfo + +func (m *CreateSnapshotRequest) GetSourceVolumeId() string { + if m != nil { + return m.SourceVolumeId + } + return "" +} + +func (m *CreateSnapshotRequest) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *CreateSnapshotRequest) GetSecrets() map[string]string { + if m != nil { + return m.Secrets + } + return nil +} + +func (m *CreateSnapshotRequest) GetParameters() map[string]string { + if m != nil { + return m.Parameters + } + return nil +} + +type CreateSnapshotResponse struct { + // Contains all attributes of the newly created snapshot that are + // relevant to the CO along with information required by the Plugin + // to uniquely identify the snapshot. This field is REQUIRED. + Snapshot *Snapshot `protobuf:"bytes,1,opt,name=snapshot,proto3" json:"snapshot,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CreateSnapshotResponse) Reset() { *m = CreateSnapshotResponse{} } +func (m *CreateSnapshotResponse) String() string { return proto.CompactTextString(m) } +func (*CreateSnapshotResponse) ProtoMessage() {} +func (*CreateSnapshotResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{31} +} +func (m *CreateSnapshotResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreateSnapshotResponse.Unmarshal(m, b) +} +func (m *CreateSnapshotResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreateSnapshotResponse.Marshal(b, m, deterministic) +} +func (dst *CreateSnapshotResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateSnapshotResponse.Merge(dst, src) +} +func (m *CreateSnapshotResponse) XXX_Size() int { + return xxx_messageInfo_CreateSnapshotResponse.Size(m) +} +func (m *CreateSnapshotResponse) XXX_DiscardUnknown() { + xxx_messageInfo_CreateSnapshotResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_CreateSnapshotResponse proto.InternalMessageInfo + +func (m *CreateSnapshotResponse) GetSnapshot() *Snapshot { + if m != nil { + return m.Snapshot + } + return nil +} + +// Information about a specific snapshot. +type Snapshot struct { + // This is the complete size of the snapshot in bytes. The purpose of + // this field is to give CO guidance on how much space is needed to + // create a volume from this snapshot. The size of the volume MUST NOT + // be less than the size of the source snapshot. This field is + // OPTIONAL. If this field is not set, it indicates that this size is + // unknown. The value of this field MUST NOT be negative and a size of + // zero means it is unspecified. + SizeBytes int64 `protobuf:"varint,1,opt,name=size_bytes,json=sizeBytes,proto3" json:"size_bytes,omitempty"` + // The identifier for this snapshot, generated by the plugin. + // This field is REQUIRED. + // This field MUST contain enough information to uniquely identify + // this specific snapshot vs all other snapshots supported by this + // plugin. + // This field SHALL be used by the CO in subsequent calls to refer to + // this snapshot. + // The SP is NOT responsible for global uniqueness of snapshot_id + // across multiple SPs. + SnapshotId string `protobuf:"bytes,2,opt,name=snapshot_id,json=snapshotId,proto3" json:"snapshot_id,omitempty"` + // Identity information for the source volume. Note that creating a + // snapshot from a snapshot is not supported here so the source has to + // be a volume. This field is REQUIRED. + SourceVolumeId string `protobuf:"bytes,3,opt,name=source_volume_id,json=sourceVolumeId,proto3" json:"source_volume_id,omitempty"` + // Timestamp when the point-in-time snapshot is taken on the storage + // system. This field is REQUIRED. + CreationTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=creation_time,json=creationTime,proto3" json:"creation_time,omitempty"` + // Indicates if a snapshot is ready to use as a + // `volume_content_source` in a `CreateVolumeRequest`. The default + // value is false. This field is REQUIRED. + ReadyToUse bool `protobuf:"varint,5,opt,name=ready_to_use,json=readyToUse,proto3" json:"ready_to_use,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Snapshot) Reset() { *m = Snapshot{} } +func (m *Snapshot) String() string { return proto.CompactTextString(m) } +func (*Snapshot) ProtoMessage() {} +func (*Snapshot) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{32} +} +func (m *Snapshot) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Snapshot.Unmarshal(m, b) +} +func (m *Snapshot) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Snapshot.Marshal(b, m, deterministic) +} +func (dst *Snapshot) XXX_Merge(src proto.Message) { + xxx_messageInfo_Snapshot.Merge(dst, src) +} +func (m *Snapshot) XXX_Size() int { + return xxx_messageInfo_Snapshot.Size(m) +} +func (m *Snapshot) XXX_DiscardUnknown() { + xxx_messageInfo_Snapshot.DiscardUnknown(m) +} + +var xxx_messageInfo_Snapshot proto.InternalMessageInfo + +func (m *Snapshot) GetSizeBytes() int64 { + if m != nil { + return m.SizeBytes + } + return 0 +} + +func (m *Snapshot) GetSnapshotId() string { + if m != nil { + return m.SnapshotId + } + return "" +} + +func (m *Snapshot) GetSourceVolumeId() string { + if m != nil { + return m.SourceVolumeId + } + return "" +} + +func (m *Snapshot) GetCreationTime() *timestamp.Timestamp { + if m != nil { + return m.CreationTime + } + return nil +} + +func (m *Snapshot) GetReadyToUse() bool { + if m != nil { + return m.ReadyToUse + } + return false +} + +type DeleteSnapshotRequest struct { + // The ID of the snapshot to be deleted. + // This field is REQUIRED. + SnapshotId string `protobuf:"bytes,1,opt,name=snapshot_id,json=snapshotId,proto3" json:"snapshot_id,omitempty"` + // Secrets required by plugin to complete snapshot deletion request. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. + Secrets map[string]string `protobuf:"bytes,2,rep,name=secrets,proto3" json:"secrets,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DeleteSnapshotRequest) Reset() { *m = DeleteSnapshotRequest{} } +func (m *DeleteSnapshotRequest) String() string { return proto.CompactTextString(m) } +func (*DeleteSnapshotRequest) ProtoMessage() {} +func (*DeleteSnapshotRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{33} +} +func (m *DeleteSnapshotRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteSnapshotRequest.Unmarshal(m, b) +} +func (m *DeleteSnapshotRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteSnapshotRequest.Marshal(b, m, deterministic) +} +func (dst *DeleteSnapshotRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteSnapshotRequest.Merge(dst, src) +} +func (m *DeleteSnapshotRequest) XXX_Size() int { + return xxx_messageInfo_DeleteSnapshotRequest.Size(m) +} +func (m *DeleteSnapshotRequest) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteSnapshotRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_DeleteSnapshotRequest proto.InternalMessageInfo + +func (m *DeleteSnapshotRequest) GetSnapshotId() string { + if m != nil { + return m.SnapshotId + } + return "" +} + +func (m *DeleteSnapshotRequest) GetSecrets() map[string]string { + if m != nil { + return m.Secrets + } + return nil +} + +type DeleteSnapshotResponse struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DeleteSnapshotResponse) Reset() { *m = DeleteSnapshotResponse{} } +func (m *DeleteSnapshotResponse) String() string { return proto.CompactTextString(m) } +func (*DeleteSnapshotResponse) ProtoMessage() {} +func (*DeleteSnapshotResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{34} +} +func (m *DeleteSnapshotResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteSnapshotResponse.Unmarshal(m, b) +} +func (m *DeleteSnapshotResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteSnapshotResponse.Marshal(b, m, deterministic) +} +func (dst *DeleteSnapshotResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteSnapshotResponse.Merge(dst, src) +} +func (m *DeleteSnapshotResponse) XXX_Size() int { + return xxx_messageInfo_DeleteSnapshotResponse.Size(m) +} +func (m *DeleteSnapshotResponse) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteSnapshotResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_DeleteSnapshotResponse proto.InternalMessageInfo + +// List all snapshots on the storage system regardless of how they were +// created. +type ListSnapshotsRequest struct { + // If specified (non-zero value), the Plugin MUST NOT return more + // entries than this number in the response. If the actual number of + // entries is more than this number, the Plugin MUST set `next_token` + // in the response which can be used to get the next page of entries + // in the subsequent `ListSnapshots` call. This field is OPTIONAL. If + // not specified (zero value), it means there is no restriction on the + // number of entries that can be returned. + // The value of this field MUST NOT be negative. + MaxEntries int32 `protobuf:"varint,1,opt,name=max_entries,json=maxEntries,proto3" json:"max_entries,omitempty"` + // A token to specify where to start paginating. Set this field to + // `next_token` returned by a previous `ListSnapshots` call to get the + // next page of entries. This field is OPTIONAL. + // An empty string is equal to an unspecified field value. + StartingToken string `protobuf:"bytes,2,opt,name=starting_token,json=startingToken,proto3" json:"starting_token,omitempty"` + // Identity information for the source volume. This field is OPTIONAL. + // It can be used to list snapshots by volume. + SourceVolumeId string `protobuf:"bytes,3,opt,name=source_volume_id,json=sourceVolumeId,proto3" json:"source_volume_id,omitempty"` + // Identity information for a specific snapshot. This field is + // OPTIONAL. It can be used to list only a specific snapshot. + // ListSnapshots will return with current snapshot information + // and will not block if the snapshot is being processed after + // it is cut. + SnapshotId string `protobuf:"bytes,4,opt,name=snapshot_id,json=snapshotId,proto3" json:"snapshot_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListSnapshotsRequest) Reset() { *m = ListSnapshotsRequest{} } +func (m *ListSnapshotsRequest) String() string { return proto.CompactTextString(m) } +func (*ListSnapshotsRequest) ProtoMessage() {} +func (*ListSnapshotsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{35} +} +func (m *ListSnapshotsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListSnapshotsRequest.Unmarshal(m, b) +} +func (m *ListSnapshotsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListSnapshotsRequest.Marshal(b, m, deterministic) +} +func (dst *ListSnapshotsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListSnapshotsRequest.Merge(dst, src) +} +func (m *ListSnapshotsRequest) XXX_Size() int { + return xxx_messageInfo_ListSnapshotsRequest.Size(m) +} +func (m *ListSnapshotsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ListSnapshotsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ListSnapshotsRequest proto.InternalMessageInfo + +func (m *ListSnapshotsRequest) GetMaxEntries() int32 { + if m != nil { + return m.MaxEntries + } + return 0 +} + +func (m *ListSnapshotsRequest) GetStartingToken() string { + if m != nil { + return m.StartingToken + } + return "" +} + +func (m *ListSnapshotsRequest) GetSourceVolumeId() string { + if m != nil { + return m.SourceVolumeId + } + return "" +} + +func (m *ListSnapshotsRequest) GetSnapshotId() string { + if m != nil { + return m.SnapshotId + } + return "" +} + +type ListSnapshotsResponse struct { + Entries []*ListSnapshotsResponse_Entry `protobuf:"bytes,1,rep,name=entries,proto3" json:"entries,omitempty"` + // This token allows you to get the next page of entries for + // `ListSnapshots` request. If the number of entries is larger than + // `max_entries`, use the `next_token` as a value for the + // `starting_token` field in the next `ListSnapshots` request. This + // field is OPTIONAL. + // An empty string is equal to an unspecified field value. + NextToken string `protobuf:"bytes,2,opt,name=next_token,json=nextToken,proto3" json:"next_token,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListSnapshotsResponse) Reset() { *m = ListSnapshotsResponse{} } +func (m *ListSnapshotsResponse) String() string { return proto.CompactTextString(m) } +func (*ListSnapshotsResponse) ProtoMessage() {} +func (*ListSnapshotsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{36} +} +func (m *ListSnapshotsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListSnapshotsResponse.Unmarshal(m, b) +} +func (m *ListSnapshotsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListSnapshotsResponse.Marshal(b, m, deterministic) +} +func (dst *ListSnapshotsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListSnapshotsResponse.Merge(dst, src) +} +func (m *ListSnapshotsResponse) XXX_Size() int { + return xxx_messageInfo_ListSnapshotsResponse.Size(m) +} +func (m *ListSnapshotsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ListSnapshotsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ListSnapshotsResponse proto.InternalMessageInfo + +func (m *ListSnapshotsResponse) GetEntries() []*ListSnapshotsResponse_Entry { + if m != nil { + return m.Entries + } + return nil +} + +func (m *ListSnapshotsResponse) GetNextToken() string { + if m != nil { + return m.NextToken + } + return "" +} + +type ListSnapshotsResponse_Entry struct { + Snapshot *Snapshot `protobuf:"bytes,1,opt,name=snapshot,proto3" json:"snapshot,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListSnapshotsResponse_Entry) Reset() { *m = ListSnapshotsResponse_Entry{} } +func (m *ListSnapshotsResponse_Entry) String() string { return proto.CompactTextString(m) } +func (*ListSnapshotsResponse_Entry) ProtoMessage() {} +func (*ListSnapshotsResponse_Entry) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{36, 0} +} +func (m *ListSnapshotsResponse_Entry) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListSnapshotsResponse_Entry.Unmarshal(m, b) +} +func (m *ListSnapshotsResponse_Entry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListSnapshotsResponse_Entry.Marshal(b, m, deterministic) +} +func (dst *ListSnapshotsResponse_Entry) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListSnapshotsResponse_Entry.Merge(dst, src) +} +func (m *ListSnapshotsResponse_Entry) XXX_Size() int { + return xxx_messageInfo_ListSnapshotsResponse_Entry.Size(m) +} +func (m *ListSnapshotsResponse_Entry) XXX_DiscardUnknown() { + xxx_messageInfo_ListSnapshotsResponse_Entry.DiscardUnknown(m) +} + +var xxx_messageInfo_ListSnapshotsResponse_Entry proto.InternalMessageInfo + +func (m *ListSnapshotsResponse_Entry) GetSnapshot() *Snapshot { + if m != nil { + return m.Snapshot + } + return nil +} + +type NodeStageVolumeRequest struct { + // The ID of the volume to publish. This field is REQUIRED. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` + // The CO SHALL set this field to the value returned by + // `ControllerPublishVolume` if the corresponding Controller Plugin + // has `PUBLISH_UNPUBLISH_VOLUME` controller capability, and SHALL be + // left unset if the corresponding Controller Plugin does not have + // this capability. This is an OPTIONAL field. + PublishContext map[string]string `protobuf:"bytes,2,rep,name=publish_context,json=publishContext,proto3" json:"publish_context,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // The path to which the volume MAY be staged. It MUST be an + // absolute path in the root filesystem of the process serving this + // request, and MUST be a directory. The CO SHALL ensure that there + // is only one `staging_target_path` per volume. The CO SHALL ensure + // that the path is directory and that the process serving the + // request has `read` and `write` permission to that directory. The + // CO SHALL be responsible for creating the directory if it does not + // exist. + // This is a REQUIRED field. + StagingTargetPath string `protobuf:"bytes,3,opt,name=staging_target_path,json=stagingTargetPath,proto3" json:"staging_target_path,omitempty"` + // Volume capability describing how the CO intends to use this volume. + // SP MUST ensure the CO can use the staged volume as described. + // Otherwise SP MUST return the appropriate gRPC error code. + // This is a REQUIRED field. + VolumeCapability *VolumeCapability `protobuf:"bytes,4,opt,name=volume_capability,json=volumeCapability,proto3" json:"volume_capability,omitempty"` + // Secrets required by plugin to complete node stage volume request. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. + Secrets map[string]string `protobuf:"bytes,5,rep,name=secrets,proto3" json:"secrets,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Volume context as returned by CO in CreateVolumeRequest. This field + // is OPTIONAL and MUST match the volume_context of the volume + // identified by `volume_id`. + VolumeContext map[string]string `protobuf:"bytes,6,rep,name=volume_context,json=volumeContext,proto3" json:"volume_context,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeStageVolumeRequest) Reset() { *m = NodeStageVolumeRequest{} } +func (m *NodeStageVolumeRequest) String() string { return proto.CompactTextString(m) } +func (*NodeStageVolumeRequest) ProtoMessage() {} +func (*NodeStageVolumeRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{37} +} +func (m *NodeStageVolumeRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeStageVolumeRequest.Unmarshal(m, b) +} +func (m *NodeStageVolumeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeStageVolumeRequest.Marshal(b, m, deterministic) +} +func (dst *NodeStageVolumeRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeStageVolumeRequest.Merge(dst, src) +} +func (m *NodeStageVolumeRequest) XXX_Size() int { + return xxx_messageInfo_NodeStageVolumeRequest.Size(m) +} +func (m *NodeStageVolumeRequest) XXX_DiscardUnknown() { + xxx_messageInfo_NodeStageVolumeRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeStageVolumeRequest proto.InternalMessageInfo + +func (m *NodeStageVolumeRequest) GetVolumeId() string { + if m != nil { + return m.VolumeId + } + return "" +} + +func (m *NodeStageVolumeRequest) GetPublishContext() map[string]string { + if m != nil { + return m.PublishContext + } + return nil +} + +func (m *NodeStageVolumeRequest) GetStagingTargetPath() string { + if m != nil { + return m.StagingTargetPath + } + return "" +} + +func (m *NodeStageVolumeRequest) GetVolumeCapability() *VolumeCapability { + if m != nil { + return m.VolumeCapability + } + return nil +} + +func (m *NodeStageVolumeRequest) GetSecrets() map[string]string { + if m != nil { + return m.Secrets + } + return nil +} + +func (m *NodeStageVolumeRequest) GetVolumeContext() map[string]string { + if m != nil { + return m.VolumeContext + } + return nil +} + +type NodeStageVolumeResponse struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeStageVolumeResponse) Reset() { *m = NodeStageVolumeResponse{} } +func (m *NodeStageVolumeResponse) String() string { return proto.CompactTextString(m) } +func (*NodeStageVolumeResponse) ProtoMessage() {} +func (*NodeStageVolumeResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{38} +} +func (m *NodeStageVolumeResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeStageVolumeResponse.Unmarshal(m, b) +} +func (m *NodeStageVolumeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeStageVolumeResponse.Marshal(b, m, deterministic) +} +func (dst *NodeStageVolumeResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeStageVolumeResponse.Merge(dst, src) +} +func (m *NodeStageVolumeResponse) XXX_Size() int { + return xxx_messageInfo_NodeStageVolumeResponse.Size(m) +} +func (m *NodeStageVolumeResponse) XXX_DiscardUnknown() { + xxx_messageInfo_NodeStageVolumeResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeStageVolumeResponse proto.InternalMessageInfo + +type NodeUnstageVolumeRequest struct { + // The ID of the volume. This field is REQUIRED. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` + // The path at which the volume was staged. It MUST be an absolute + // path in the root filesystem of the process serving this request. + // This is a REQUIRED field. + StagingTargetPath string `protobuf:"bytes,2,opt,name=staging_target_path,json=stagingTargetPath,proto3" json:"staging_target_path,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeUnstageVolumeRequest) Reset() { *m = NodeUnstageVolumeRequest{} } +func (m *NodeUnstageVolumeRequest) String() string { return proto.CompactTextString(m) } +func (*NodeUnstageVolumeRequest) ProtoMessage() {} +func (*NodeUnstageVolumeRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{39} +} +func (m *NodeUnstageVolumeRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeUnstageVolumeRequest.Unmarshal(m, b) +} +func (m *NodeUnstageVolumeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeUnstageVolumeRequest.Marshal(b, m, deterministic) +} +func (dst *NodeUnstageVolumeRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeUnstageVolumeRequest.Merge(dst, src) +} +func (m *NodeUnstageVolumeRequest) XXX_Size() int { + return xxx_messageInfo_NodeUnstageVolumeRequest.Size(m) +} +func (m *NodeUnstageVolumeRequest) XXX_DiscardUnknown() { + xxx_messageInfo_NodeUnstageVolumeRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeUnstageVolumeRequest proto.InternalMessageInfo + +func (m *NodeUnstageVolumeRequest) GetVolumeId() string { + if m != nil { + return m.VolumeId + } + return "" +} + +func (m *NodeUnstageVolumeRequest) GetStagingTargetPath() string { + if m != nil { + return m.StagingTargetPath + } + return "" +} + +type NodeUnstageVolumeResponse struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeUnstageVolumeResponse) Reset() { *m = NodeUnstageVolumeResponse{} } +func (m *NodeUnstageVolumeResponse) String() string { return proto.CompactTextString(m) } +func (*NodeUnstageVolumeResponse) ProtoMessage() {} +func (*NodeUnstageVolumeResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{40} +} +func (m *NodeUnstageVolumeResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeUnstageVolumeResponse.Unmarshal(m, b) +} +func (m *NodeUnstageVolumeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeUnstageVolumeResponse.Marshal(b, m, deterministic) +} +func (dst *NodeUnstageVolumeResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeUnstageVolumeResponse.Merge(dst, src) +} +func (m *NodeUnstageVolumeResponse) XXX_Size() int { + return xxx_messageInfo_NodeUnstageVolumeResponse.Size(m) +} +func (m *NodeUnstageVolumeResponse) XXX_DiscardUnknown() { + xxx_messageInfo_NodeUnstageVolumeResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeUnstageVolumeResponse proto.InternalMessageInfo + +type NodePublishVolumeRequest struct { + // The ID of the volume to publish. This field is REQUIRED. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` + // The CO SHALL set this field to the value returned by + // `ControllerPublishVolume` if the corresponding Controller Plugin + // has `PUBLISH_UNPUBLISH_VOLUME` controller capability, and SHALL be + // left unset if the corresponding Controller Plugin does not have + // this capability. This is an OPTIONAL field. + PublishContext map[string]string `protobuf:"bytes,2,rep,name=publish_context,json=publishContext,proto3" json:"publish_context,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // The path to which the volume was staged by `NodeStageVolume`. + // It MUST be an absolute path in the root filesystem of the process + // serving this request. + // It MUST be set if the Node Plugin implements the + // `STAGE_UNSTAGE_VOLUME` node capability. + // This is an OPTIONAL field. + StagingTargetPath string `protobuf:"bytes,3,opt,name=staging_target_path,json=stagingTargetPath,proto3" json:"staging_target_path,omitempty"` + // The path to which the volume will be published. It MUST be an + // absolute path in the root filesystem of the process serving this + // request. The CO SHALL ensure uniqueness of target_path per volume. + // The CO SHALL ensure that the parent directory of this path exists + // and that the process serving the request has `read` and `write` + // permissions to that parent directory. + // For volumes with an access type of block, the SP SHALL place the + // block device at target_path. + // For volumes with an access type of mount, the SP SHALL place the + // mounted directory at target_path. + // Creation of target_path is the responsibility of the SP. + // This is a REQUIRED field. + TargetPath string `protobuf:"bytes,4,opt,name=target_path,json=targetPath,proto3" json:"target_path,omitempty"` + // Volume capability describing how the CO intends to use this volume. + // SP MUST ensure the CO can use the published volume as described. + // Otherwise SP MUST return the appropriate gRPC error code. + // This is a REQUIRED field. + VolumeCapability *VolumeCapability `protobuf:"bytes,5,opt,name=volume_capability,json=volumeCapability,proto3" json:"volume_capability,omitempty"` + // Indicates SP MUST publish the volume in readonly mode. + // This field is REQUIRED. + Readonly bool `protobuf:"varint,6,opt,name=readonly,proto3" json:"readonly,omitempty"` + // Secrets required by plugin to complete node publish volume request. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. + Secrets map[string]string `protobuf:"bytes,7,rep,name=secrets,proto3" json:"secrets,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Volume context as returned by CO in CreateVolumeRequest. This field + // is OPTIONAL and MUST match the volume_context of the volume + // identified by `volume_id`. + VolumeContext map[string]string `protobuf:"bytes,8,rep,name=volume_context,json=volumeContext,proto3" json:"volume_context,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodePublishVolumeRequest) Reset() { *m = NodePublishVolumeRequest{} } +func (m *NodePublishVolumeRequest) String() string { return proto.CompactTextString(m) } +func (*NodePublishVolumeRequest) ProtoMessage() {} +func (*NodePublishVolumeRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{41} +} +func (m *NodePublishVolumeRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodePublishVolumeRequest.Unmarshal(m, b) +} +func (m *NodePublishVolumeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodePublishVolumeRequest.Marshal(b, m, deterministic) +} +func (dst *NodePublishVolumeRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodePublishVolumeRequest.Merge(dst, src) +} +func (m *NodePublishVolumeRequest) XXX_Size() int { + return xxx_messageInfo_NodePublishVolumeRequest.Size(m) +} +func (m *NodePublishVolumeRequest) XXX_DiscardUnknown() { + xxx_messageInfo_NodePublishVolumeRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_NodePublishVolumeRequest proto.InternalMessageInfo + +func (m *NodePublishVolumeRequest) GetVolumeId() string { + if m != nil { + return m.VolumeId + } + return "" +} + +func (m *NodePublishVolumeRequest) GetPublishContext() map[string]string { + if m != nil { + return m.PublishContext + } + return nil +} + +func (m *NodePublishVolumeRequest) GetStagingTargetPath() string { + if m != nil { + return m.StagingTargetPath + } + return "" +} + +func (m *NodePublishVolumeRequest) GetTargetPath() string { + if m != nil { + return m.TargetPath + } + return "" +} + +func (m *NodePublishVolumeRequest) GetVolumeCapability() *VolumeCapability { + if m != nil { + return m.VolumeCapability + } + return nil +} + +func (m *NodePublishVolumeRequest) GetReadonly() bool { + if m != nil { + return m.Readonly + } + return false +} + +func (m *NodePublishVolumeRequest) GetSecrets() map[string]string { + if m != nil { + return m.Secrets + } + return nil +} + +func (m *NodePublishVolumeRequest) GetVolumeContext() map[string]string { + if m != nil { + return m.VolumeContext + } + return nil +} + +type NodePublishVolumeResponse struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodePublishVolumeResponse) Reset() { *m = NodePublishVolumeResponse{} } +func (m *NodePublishVolumeResponse) String() string { return proto.CompactTextString(m) } +func (*NodePublishVolumeResponse) ProtoMessage() {} +func (*NodePublishVolumeResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{42} +} +func (m *NodePublishVolumeResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodePublishVolumeResponse.Unmarshal(m, b) +} +func (m *NodePublishVolumeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodePublishVolumeResponse.Marshal(b, m, deterministic) +} +func (dst *NodePublishVolumeResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodePublishVolumeResponse.Merge(dst, src) +} +func (m *NodePublishVolumeResponse) XXX_Size() int { + return xxx_messageInfo_NodePublishVolumeResponse.Size(m) +} +func (m *NodePublishVolumeResponse) XXX_DiscardUnknown() { + xxx_messageInfo_NodePublishVolumeResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_NodePublishVolumeResponse proto.InternalMessageInfo + +type NodeUnpublishVolumeRequest struct { + // The ID of the volume. This field is REQUIRED. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` + // The path at which the volume was published. It MUST be an absolute + // path in the root filesystem of the process serving this request. + // The SP MUST delete the file or directory it created at this path. + // This is a REQUIRED field. + TargetPath string `protobuf:"bytes,2,opt,name=target_path,json=targetPath,proto3" json:"target_path,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeUnpublishVolumeRequest) Reset() { *m = NodeUnpublishVolumeRequest{} } +func (m *NodeUnpublishVolumeRequest) String() string { return proto.CompactTextString(m) } +func (*NodeUnpublishVolumeRequest) ProtoMessage() {} +func (*NodeUnpublishVolumeRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{43} +} +func (m *NodeUnpublishVolumeRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeUnpublishVolumeRequest.Unmarshal(m, b) +} +func (m *NodeUnpublishVolumeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeUnpublishVolumeRequest.Marshal(b, m, deterministic) +} +func (dst *NodeUnpublishVolumeRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeUnpublishVolumeRequest.Merge(dst, src) +} +func (m *NodeUnpublishVolumeRequest) XXX_Size() int { + return xxx_messageInfo_NodeUnpublishVolumeRequest.Size(m) +} +func (m *NodeUnpublishVolumeRequest) XXX_DiscardUnknown() { + xxx_messageInfo_NodeUnpublishVolumeRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeUnpublishVolumeRequest proto.InternalMessageInfo + +func (m *NodeUnpublishVolumeRequest) GetVolumeId() string { + if m != nil { + return m.VolumeId + } + return "" +} + +func (m *NodeUnpublishVolumeRequest) GetTargetPath() string { + if m != nil { + return m.TargetPath + } + return "" +} + +type NodeUnpublishVolumeResponse struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeUnpublishVolumeResponse) Reset() { *m = NodeUnpublishVolumeResponse{} } +func (m *NodeUnpublishVolumeResponse) String() string { return proto.CompactTextString(m) } +func (*NodeUnpublishVolumeResponse) ProtoMessage() {} +func (*NodeUnpublishVolumeResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{44} +} +func (m *NodeUnpublishVolumeResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeUnpublishVolumeResponse.Unmarshal(m, b) +} +func (m *NodeUnpublishVolumeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeUnpublishVolumeResponse.Marshal(b, m, deterministic) +} +func (dst *NodeUnpublishVolumeResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeUnpublishVolumeResponse.Merge(dst, src) +} +func (m *NodeUnpublishVolumeResponse) XXX_Size() int { + return xxx_messageInfo_NodeUnpublishVolumeResponse.Size(m) +} +func (m *NodeUnpublishVolumeResponse) XXX_DiscardUnknown() { + xxx_messageInfo_NodeUnpublishVolumeResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeUnpublishVolumeResponse proto.InternalMessageInfo + +type NodeGetVolumeStatsRequest struct { + // The ID of the volume. This field is REQUIRED. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` + // It can be any valid path where volume was previously + // staged or published. + // It MUST be an absolute path in the root filesystem of + // the process serving this request. + // This is a REQUIRED field. + VolumePath string `protobuf:"bytes,2,opt,name=volume_path,json=volumePath,proto3" json:"volume_path,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeGetVolumeStatsRequest) Reset() { *m = NodeGetVolumeStatsRequest{} } +func (m *NodeGetVolumeStatsRequest) String() string { return proto.CompactTextString(m) } +func (*NodeGetVolumeStatsRequest) ProtoMessage() {} +func (*NodeGetVolumeStatsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{45} +} +func (m *NodeGetVolumeStatsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeGetVolumeStatsRequest.Unmarshal(m, b) +} +func (m *NodeGetVolumeStatsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeGetVolumeStatsRequest.Marshal(b, m, deterministic) +} +func (dst *NodeGetVolumeStatsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeGetVolumeStatsRequest.Merge(dst, src) +} +func (m *NodeGetVolumeStatsRequest) XXX_Size() int { + return xxx_messageInfo_NodeGetVolumeStatsRequest.Size(m) +} +func (m *NodeGetVolumeStatsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_NodeGetVolumeStatsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeGetVolumeStatsRequest proto.InternalMessageInfo + +func (m *NodeGetVolumeStatsRequest) GetVolumeId() string { + if m != nil { + return m.VolumeId + } + return "" +} + +func (m *NodeGetVolumeStatsRequest) GetVolumePath() string { + if m != nil { + return m.VolumePath + } + return "" +} + +type NodeGetVolumeStatsResponse struct { + // This field is OPTIONAL. + Usage []*VolumeUsage `protobuf:"bytes,1,rep,name=usage,proto3" json:"usage,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeGetVolumeStatsResponse) Reset() { *m = NodeGetVolumeStatsResponse{} } +func (m *NodeGetVolumeStatsResponse) String() string { return proto.CompactTextString(m) } +func (*NodeGetVolumeStatsResponse) ProtoMessage() {} +func (*NodeGetVolumeStatsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{46} +} +func (m *NodeGetVolumeStatsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeGetVolumeStatsResponse.Unmarshal(m, b) +} +func (m *NodeGetVolumeStatsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeGetVolumeStatsResponse.Marshal(b, m, deterministic) +} +func (dst *NodeGetVolumeStatsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeGetVolumeStatsResponse.Merge(dst, src) +} +func (m *NodeGetVolumeStatsResponse) XXX_Size() int { + return xxx_messageInfo_NodeGetVolumeStatsResponse.Size(m) +} +func (m *NodeGetVolumeStatsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_NodeGetVolumeStatsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeGetVolumeStatsResponse proto.InternalMessageInfo + +func (m *NodeGetVolumeStatsResponse) GetUsage() []*VolumeUsage { + if m != nil { + return m.Usage + } + return nil +} + +type VolumeUsage struct { + // The available capacity in specified Unit. This field is OPTIONAL. + // The value of this field MUST NOT be negative. + Available int64 `protobuf:"varint,1,opt,name=available,proto3" json:"available,omitempty"` + // The total capacity in specified Unit. This field is REQUIRED. + // The value of this field MUST NOT be negative. + Total int64 `protobuf:"varint,2,opt,name=total,proto3" json:"total,omitempty"` + // The used capacity in specified Unit. This field is OPTIONAL. + // The value of this field MUST NOT be negative. + Used int64 `protobuf:"varint,3,opt,name=used,proto3" json:"used,omitempty"` + // Units by which values are measured. This field is REQUIRED. + Unit VolumeUsage_Unit `protobuf:"varint,4,opt,name=unit,proto3,enum=csitest.v1.VolumeUsage_Unit" json:"unit,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *VolumeUsage) Reset() { *m = VolumeUsage{} } +func (m *VolumeUsage) String() string { return proto.CompactTextString(m) } +func (*VolumeUsage) ProtoMessage() {} +func (*VolumeUsage) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{47} +} +func (m *VolumeUsage) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VolumeUsage.Unmarshal(m, b) +} +func (m *VolumeUsage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VolumeUsage.Marshal(b, m, deterministic) +} +func (dst *VolumeUsage) XXX_Merge(src proto.Message) { + xxx_messageInfo_VolumeUsage.Merge(dst, src) +} +func (m *VolumeUsage) XXX_Size() int { + return xxx_messageInfo_VolumeUsage.Size(m) +} +func (m *VolumeUsage) XXX_DiscardUnknown() { + xxx_messageInfo_VolumeUsage.DiscardUnknown(m) +} + +var xxx_messageInfo_VolumeUsage proto.InternalMessageInfo + +func (m *VolumeUsage) GetAvailable() int64 { + if m != nil { + return m.Available + } + return 0 +} + +func (m *VolumeUsage) GetTotal() int64 { + if m != nil { + return m.Total + } + return 0 +} + +func (m *VolumeUsage) GetUsed() int64 { + if m != nil { + return m.Used + } + return 0 +} + +func (m *VolumeUsage) GetUnit() VolumeUsage_Unit { + if m != nil { + return m.Unit + } + return VolumeUsage_UNKNOWN +} + +type NodeGetCapabilitiesRequest struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeGetCapabilitiesRequest) Reset() { *m = NodeGetCapabilitiesRequest{} } +func (m *NodeGetCapabilitiesRequest) String() string { return proto.CompactTextString(m) } +func (*NodeGetCapabilitiesRequest) ProtoMessage() {} +func (*NodeGetCapabilitiesRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{48} +} +func (m *NodeGetCapabilitiesRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeGetCapabilitiesRequest.Unmarshal(m, b) +} +func (m *NodeGetCapabilitiesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeGetCapabilitiesRequest.Marshal(b, m, deterministic) +} +func (dst *NodeGetCapabilitiesRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeGetCapabilitiesRequest.Merge(dst, src) +} +func (m *NodeGetCapabilitiesRequest) XXX_Size() int { + return xxx_messageInfo_NodeGetCapabilitiesRequest.Size(m) +} +func (m *NodeGetCapabilitiesRequest) XXX_DiscardUnknown() { + xxx_messageInfo_NodeGetCapabilitiesRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeGetCapabilitiesRequest proto.InternalMessageInfo + +type NodeGetCapabilitiesResponse struct { + // All the capabilities that the node service supports. This field + // is OPTIONAL. + Capabilities []*NodeServiceCapability `protobuf:"bytes,1,rep,name=capabilities,proto3" json:"capabilities,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeGetCapabilitiesResponse) Reset() { *m = NodeGetCapabilitiesResponse{} } +func (m *NodeGetCapabilitiesResponse) String() string { return proto.CompactTextString(m) } +func (*NodeGetCapabilitiesResponse) ProtoMessage() {} +func (*NodeGetCapabilitiesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{49} +} +func (m *NodeGetCapabilitiesResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeGetCapabilitiesResponse.Unmarshal(m, b) +} +func (m *NodeGetCapabilitiesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeGetCapabilitiesResponse.Marshal(b, m, deterministic) +} +func (dst *NodeGetCapabilitiesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeGetCapabilitiesResponse.Merge(dst, src) +} +func (m *NodeGetCapabilitiesResponse) XXX_Size() int { + return xxx_messageInfo_NodeGetCapabilitiesResponse.Size(m) +} +func (m *NodeGetCapabilitiesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_NodeGetCapabilitiesResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeGetCapabilitiesResponse proto.InternalMessageInfo + +func (m *NodeGetCapabilitiesResponse) GetCapabilities() []*NodeServiceCapability { + if m != nil { + return m.Capabilities + } + return nil +} + +// Specifies a capability of the node service. +type NodeServiceCapability struct { + // Types that are valid to be assigned to Type: + // *NodeServiceCapability_Rpc + Type isNodeServiceCapability_Type `protobuf_oneof:"type"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeServiceCapability) Reset() { *m = NodeServiceCapability{} } +func (m *NodeServiceCapability) String() string { return proto.CompactTextString(m) } +func (*NodeServiceCapability) ProtoMessage() {} +func (*NodeServiceCapability) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{50} +} +func (m *NodeServiceCapability) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeServiceCapability.Unmarshal(m, b) +} +func (m *NodeServiceCapability) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeServiceCapability.Marshal(b, m, deterministic) +} +func (dst *NodeServiceCapability) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeServiceCapability.Merge(dst, src) +} +func (m *NodeServiceCapability) XXX_Size() int { + return xxx_messageInfo_NodeServiceCapability.Size(m) +} +func (m *NodeServiceCapability) XXX_DiscardUnknown() { + xxx_messageInfo_NodeServiceCapability.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeServiceCapability proto.InternalMessageInfo + +type isNodeServiceCapability_Type interface { + isNodeServiceCapability_Type() +} + +type NodeServiceCapability_Rpc struct { + Rpc *NodeServiceCapability_RPC `protobuf:"bytes,1,opt,name=rpc,proto3,oneof"` +} + +func (*NodeServiceCapability_Rpc) isNodeServiceCapability_Type() {} + +func (m *NodeServiceCapability) GetType() isNodeServiceCapability_Type { + if m != nil { + return m.Type + } + return nil +} + +func (m *NodeServiceCapability) GetRpc() *NodeServiceCapability_RPC { + if x, ok := m.GetType().(*NodeServiceCapability_Rpc); ok { + return x.Rpc + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*NodeServiceCapability) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _NodeServiceCapability_OneofMarshaler, _NodeServiceCapability_OneofUnmarshaler, _NodeServiceCapability_OneofSizer, []interface{}{ + (*NodeServiceCapability_Rpc)(nil), + } +} + +func _NodeServiceCapability_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*NodeServiceCapability) + // type + switch x := m.Type.(type) { + case *NodeServiceCapability_Rpc: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Rpc); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("NodeServiceCapability.Type has unexpected type %T", x) + } + return nil +} + +func _NodeServiceCapability_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*NodeServiceCapability) + switch tag { + case 1: // type.rpc + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(NodeServiceCapability_RPC) + err := b.DecodeMessage(msg) + m.Type = &NodeServiceCapability_Rpc{msg} + return true, err + default: + return false, nil + } +} + +func _NodeServiceCapability_OneofSizer(msg proto.Message) (n int) { + m := msg.(*NodeServiceCapability) + // type + switch x := m.Type.(type) { + case *NodeServiceCapability_Rpc: + s := proto.Size(x.Rpc) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +type NodeServiceCapability_RPC struct { + Type NodeServiceCapability_RPC_Type `protobuf:"varint,1,opt,name=type,proto3,enum=csitest.v1.NodeServiceCapability_RPC_Type" json:"type,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeServiceCapability_RPC) Reset() { *m = NodeServiceCapability_RPC{} } +func (m *NodeServiceCapability_RPC) String() string { return proto.CompactTextString(m) } +func (*NodeServiceCapability_RPC) ProtoMessage() {} +func (*NodeServiceCapability_RPC) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{50, 0} +} +func (m *NodeServiceCapability_RPC) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeServiceCapability_RPC.Unmarshal(m, b) +} +func (m *NodeServiceCapability_RPC) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeServiceCapability_RPC.Marshal(b, m, deterministic) +} +func (dst *NodeServiceCapability_RPC) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeServiceCapability_RPC.Merge(dst, src) +} +func (m *NodeServiceCapability_RPC) XXX_Size() int { + return xxx_messageInfo_NodeServiceCapability_RPC.Size(m) +} +func (m *NodeServiceCapability_RPC) XXX_DiscardUnknown() { + xxx_messageInfo_NodeServiceCapability_RPC.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeServiceCapability_RPC proto.InternalMessageInfo + +func (m *NodeServiceCapability_RPC) GetType() NodeServiceCapability_RPC_Type { + if m != nil { + return m.Type + } + return NodeServiceCapability_RPC_UNKNOWN +} + +type NodeGetInfoRequest struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeGetInfoRequest) Reset() { *m = NodeGetInfoRequest{} } +func (m *NodeGetInfoRequest) String() string { return proto.CompactTextString(m) } +func (*NodeGetInfoRequest) ProtoMessage() {} +func (*NodeGetInfoRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{51} +} +func (m *NodeGetInfoRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeGetInfoRequest.Unmarshal(m, b) +} +func (m *NodeGetInfoRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeGetInfoRequest.Marshal(b, m, deterministic) +} +func (dst *NodeGetInfoRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeGetInfoRequest.Merge(dst, src) +} +func (m *NodeGetInfoRequest) XXX_Size() int { + return xxx_messageInfo_NodeGetInfoRequest.Size(m) +} +func (m *NodeGetInfoRequest) XXX_DiscardUnknown() { + xxx_messageInfo_NodeGetInfoRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeGetInfoRequest proto.InternalMessageInfo + +type NodeGetInfoResponse struct { + // The identifier of the node as understood by the SP. + // This field is REQUIRED. + // This field MUST contain enough information to uniquely identify + // this specific node vs all other nodes supported by this plugin. + // This field SHALL be used by the CO in subsequent calls, including + // `ControllerPublishVolume`, to refer to this node. + // The SP is NOT responsible for global uniqueness of node_id across + // multiple SPs. + NodeId string `protobuf:"bytes,1,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"` + // Maximum number of volumes that controller can publish to the node. + // If value is not set or zero CO SHALL decide how many volumes of + // this type can be published by the controller to the node. The + // plugin MUST NOT set negative values here. + // This field is OPTIONAL. + MaxVolumesPerNode int64 `protobuf:"varint,2,opt,name=max_volumes_per_node,json=maxVolumesPerNode,proto3" json:"max_volumes_per_node,omitempty"` + // Specifies where (regions, zones, racks, etc.) the node is + // accessible from. + // A plugin that returns this field MUST also set the + // VOLUME_ACCESSIBILITY_CONSTRAINTS plugin capability. + // COs MAY use this information along with the topology information + // returned in CreateVolumeResponse to ensure that a given volume is + // accessible from a given node when scheduling workloads. + // This field is OPTIONAL. If it is not specified, the CO MAY assume + // the node is not subject to any topological constraint, and MAY + // schedule workloads that reference any volume V, such that there are + // no topological constraints declared for V. + // + // Example 1: + // accessible_topology = + // {"region": "R1", "zone": "R2"} + // Indicates the node exists within the "region" "R1" and the "zone" + // "Z2". + AccessibleTopology *Topology `protobuf:"bytes,3,opt,name=accessible_topology,json=accessibleTopology,proto3" json:"accessible_topology,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeGetInfoResponse) Reset() { *m = NodeGetInfoResponse{} } +func (m *NodeGetInfoResponse) String() string { return proto.CompactTextString(m) } +func (*NodeGetInfoResponse) ProtoMessage() {} +func (*NodeGetInfoResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_csitest_38acc6c7572d95d8, []int{52} +} +func (m *NodeGetInfoResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeGetInfoResponse.Unmarshal(m, b) +} +func (m *NodeGetInfoResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeGetInfoResponse.Marshal(b, m, deterministic) +} +func (dst *NodeGetInfoResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeGetInfoResponse.Merge(dst, src) +} +func (m *NodeGetInfoResponse) XXX_Size() int { + return xxx_messageInfo_NodeGetInfoResponse.Size(m) +} +func (m *NodeGetInfoResponse) XXX_DiscardUnknown() { + xxx_messageInfo_NodeGetInfoResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeGetInfoResponse proto.InternalMessageInfo + +func (m *NodeGetInfoResponse) GetNodeId() string { + if m != nil { + return m.NodeId + } + return "" +} + +func (m *NodeGetInfoResponse) GetMaxVolumesPerNode() int64 { + if m != nil { + return m.MaxVolumesPerNode + } + return 0 +} + +func (m *NodeGetInfoResponse) GetAccessibleTopology() *Topology { + if m != nil { + return m.AccessibleTopology + } + return nil +} + +func init() { + proto.RegisterType((*GetPluginInfoRequest)(nil), "csitest.v1.GetPluginInfoRequest") + proto.RegisterType((*GetPluginInfoResponse)(nil), "csitest.v1.GetPluginInfoResponse") + proto.RegisterMapType((map[string]string)(nil), "csitest.v1.GetPluginInfoResponse.ManifestEntry") + proto.RegisterType((*GetPluginCapabilitiesRequest)(nil), "csitest.v1.GetPluginCapabilitiesRequest") + proto.RegisterType((*GetPluginCapabilitiesResponse)(nil), "csitest.v1.GetPluginCapabilitiesResponse") + proto.RegisterType((*PluginCapability)(nil), "csitest.v1.PluginCapability") + proto.RegisterType((*PluginCapability_Service)(nil), "csitest.v1.PluginCapability.Service") + proto.RegisterType((*ProbeRequest)(nil), "csitest.v1.ProbeRequest") + proto.RegisterType((*ProbeResponse)(nil), "csitest.v1.ProbeResponse") + proto.RegisterType((*CreateVolumeRequest)(nil), "csitest.v1.CreateVolumeRequest") + proto.RegisterMapType((map[int64]*VolumeCapability)(nil), "csitest.v1.CreateVolumeRequest.MaybeSecretMapEntry") + proto.RegisterMapType((map[string]string)(nil), "csitest.v1.CreateVolumeRequest.ParametersEntry") + proto.RegisterMapType((map[string]string)(nil), "csitest.v1.CreateVolumeRequest.SeecreetsEntry") + proto.RegisterType((*VolumeContentSource)(nil), "csitest.v1.VolumeContentSource") + proto.RegisterType((*VolumeContentSource_SnapshotSource)(nil), "csitest.v1.VolumeContentSource.SnapshotSource") + proto.RegisterType((*VolumeContentSource_VolumeSource)(nil), "csitest.v1.VolumeContentSource.VolumeSource") + proto.RegisterType((*CreateVolumeResponse)(nil), "csitest.v1.CreateVolumeResponse") + proto.RegisterType((*VolumeCapability)(nil), "csitest.v1.VolumeCapability") + proto.RegisterType((*VolumeCapability_BlockVolume)(nil), "csitest.v1.VolumeCapability.BlockVolume") + proto.RegisterType((*VolumeCapability_MountVolume)(nil), "csitest.v1.VolumeCapability.MountVolume") + proto.RegisterType((*VolumeCapability_AccessMode)(nil), "csitest.v1.VolumeCapability.AccessMode") + proto.RegisterType((*CapacityRange)(nil), "csitest.v1.CapacityRange") + proto.RegisterType((*Volume)(nil), "csitest.v1.Volume") + proto.RegisterMapType((map[string]string)(nil), "csitest.v1.Volume.VolumeContextEntry") + proto.RegisterType((*TopologyRequirement)(nil), "csitest.v1.TopologyRequirement") + proto.RegisterType((*Topology)(nil), "csitest.v1.Topology") + proto.RegisterMapType((map[string]string)(nil), "csitest.v1.Topology.SegmentsEntry") + proto.RegisterType((*DeleteVolumeRequest)(nil), "csitest.v1.DeleteVolumeRequest") + proto.RegisterMapType((map[string]string)(nil), "csitest.v1.DeleteVolumeRequest.SecretsEntry") + proto.RegisterType((*DeleteVolumeResponse)(nil), "csitest.v1.DeleteVolumeResponse") + proto.RegisterType((*ControllerPublishVolumeRequest)(nil), "csitest.v1.ControllerPublishVolumeRequest") + proto.RegisterMapType((map[string]string)(nil), "csitest.v1.ControllerPublishVolumeRequest.SecretsEntry") + proto.RegisterMapType((map[string]string)(nil), "csitest.v1.ControllerPublishVolumeRequest.VolumeContextEntry") + proto.RegisterType((*ControllerPublishVolumeResponse)(nil), "csitest.v1.ControllerPublishVolumeResponse") + proto.RegisterMapType((map[string]string)(nil), "csitest.v1.ControllerPublishVolumeResponse.PublishContextEntry") + proto.RegisterType((*ControllerUnpublishVolumeRequest)(nil), "csitest.v1.ControllerUnpublishVolumeRequest") + proto.RegisterMapType((map[string]string)(nil), "csitest.v1.ControllerUnpublishVolumeRequest.SecretsEntry") + proto.RegisterType((*ControllerUnpublishVolumeResponse)(nil), "csitest.v1.ControllerUnpublishVolumeResponse") + proto.RegisterType((*ValidateVolumeCapabilitiesRequest)(nil), "csitest.v1.ValidateVolumeCapabilitiesRequest") + proto.RegisterMapType((map[string]string)(nil), "csitest.v1.ValidateVolumeCapabilitiesRequest.ParametersEntry") + proto.RegisterMapType((map[string]string)(nil), "csitest.v1.ValidateVolumeCapabilitiesRequest.SecretsEntry") + proto.RegisterMapType((map[string]string)(nil), "csitest.v1.ValidateVolumeCapabilitiesRequest.VolumeContextEntry") + proto.RegisterType((*ValidateVolumeCapabilitiesResponse)(nil), "csitest.v1.ValidateVolumeCapabilitiesResponse") + proto.RegisterType((*ValidateVolumeCapabilitiesResponse_Confirmed)(nil), "csitest.v1.ValidateVolumeCapabilitiesResponse.Confirmed") + proto.RegisterMapType((map[string]string)(nil), "csitest.v1.ValidateVolumeCapabilitiesResponse.Confirmed.ParametersEntry") + proto.RegisterMapType((map[string]string)(nil), "csitest.v1.ValidateVolumeCapabilitiesResponse.Confirmed.VolumeContextEntry") + proto.RegisterType((*ListVolumesRequest)(nil), "csitest.v1.ListVolumesRequest") + proto.RegisterType((*ListVolumesResponse)(nil), "csitest.v1.ListVolumesResponse") + proto.RegisterType((*ListVolumesResponse_Entry)(nil), "csitest.v1.ListVolumesResponse.Entry") + proto.RegisterType((*GetCapacityRequest)(nil), "csitest.v1.GetCapacityRequest") + proto.RegisterMapType((map[string]string)(nil), "csitest.v1.GetCapacityRequest.ParametersEntry") + proto.RegisterType((*GetCapacityResponse)(nil), "csitest.v1.GetCapacityResponse") + proto.RegisterType((*ControllerGetCapabilitiesRequest)(nil), "csitest.v1.ControllerGetCapabilitiesRequest") + proto.RegisterType((*ControllerGetCapabilitiesResponse)(nil), "csitest.v1.ControllerGetCapabilitiesResponse") + proto.RegisterType((*ControllerServiceCapability)(nil), "csitest.v1.ControllerServiceCapability") + proto.RegisterType((*ControllerServiceCapability_RPC)(nil), "csitest.v1.ControllerServiceCapability.RPC") + proto.RegisterType((*CreateSnapshotRequest)(nil), "csitest.v1.CreateSnapshotRequest") + proto.RegisterMapType((map[string]string)(nil), "csitest.v1.CreateSnapshotRequest.ParametersEntry") + proto.RegisterMapType((map[string]string)(nil), "csitest.v1.CreateSnapshotRequest.SecretsEntry") + proto.RegisterType((*CreateSnapshotResponse)(nil), "csitest.v1.CreateSnapshotResponse") + proto.RegisterType((*Snapshot)(nil), "csitest.v1.Snapshot") + proto.RegisterType((*DeleteSnapshotRequest)(nil), "csitest.v1.DeleteSnapshotRequest") + proto.RegisterMapType((map[string]string)(nil), "csitest.v1.DeleteSnapshotRequest.SecretsEntry") + proto.RegisterType((*DeleteSnapshotResponse)(nil), "csitest.v1.DeleteSnapshotResponse") + proto.RegisterType((*ListSnapshotsRequest)(nil), "csitest.v1.ListSnapshotsRequest") + proto.RegisterType((*ListSnapshotsResponse)(nil), "csitest.v1.ListSnapshotsResponse") + proto.RegisterType((*ListSnapshotsResponse_Entry)(nil), "csitest.v1.ListSnapshotsResponse.Entry") + proto.RegisterType((*NodeStageVolumeRequest)(nil), "csitest.v1.NodeStageVolumeRequest") + proto.RegisterMapType((map[string]string)(nil), "csitest.v1.NodeStageVolumeRequest.PublishContextEntry") + proto.RegisterMapType((map[string]string)(nil), "csitest.v1.NodeStageVolumeRequest.SecretsEntry") + proto.RegisterMapType((map[string]string)(nil), "csitest.v1.NodeStageVolumeRequest.VolumeContextEntry") + proto.RegisterType((*NodeStageVolumeResponse)(nil), "csitest.v1.NodeStageVolumeResponse") + proto.RegisterType((*NodeUnstageVolumeRequest)(nil), "csitest.v1.NodeUnstageVolumeRequest") + proto.RegisterType((*NodeUnstageVolumeResponse)(nil), "csitest.v1.NodeUnstageVolumeResponse") + proto.RegisterType((*NodePublishVolumeRequest)(nil), "csitest.v1.NodePublishVolumeRequest") + proto.RegisterMapType((map[string]string)(nil), "csitest.v1.NodePublishVolumeRequest.PublishContextEntry") + proto.RegisterMapType((map[string]string)(nil), "csitest.v1.NodePublishVolumeRequest.SecretsEntry") + proto.RegisterMapType((map[string]string)(nil), "csitest.v1.NodePublishVolumeRequest.VolumeContextEntry") + proto.RegisterType((*NodePublishVolumeResponse)(nil), "csitest.v1.NodePublishVolumeResponse") + proto.RegisterType((*NodeUnpublishVolumeRequest)(nil), "csitest.v1.NodeUnpublishVolumeRequest") + proto.RegisterType((*NodeUnpublishVolumeResponse)(nil), "csitest.v1.NodeUnpublishVolumeResponse") + proto.RegisterType((*NodeGetVolumeStatsRequest)(nil), "csitest.v1.NodeGetVolumeStatsRequest") + proto.RegisterType((*NodeGetVolumeStatsResponse)(nil), "csitest.v1.NodeGetVolumeStatsResponse") + proto.RegisterType((*VolumeUsage)(nil), "csitest.v1.VolumeUsage") + proto.RegisterType((*NodeGetCapabilitiesRequest)(nil), "csitest.v1.NodeGetCapabilitiesRequest") + proto.RegisterType((*NodeGetCapabilitiesResponse)(nil), "csitest.v1.NodeGetCapabilitiesResponse") + proto.RegisterType((*NodeServiceCapability)(nil), "csitest.v1.NodeServiceCapability") + proto.RegisterType((*NodeServiceCapability_RPC)(nil), "csitest.v1.NodeServiceCapability.RPC") + proto.RegisterType((*NodeGetInfoRequest)(nil), "csitest.v1.NodeGetInfoRequest") + proto.RegisterType((*NodeGetInfoResponse)(nil), "csitest.v1.NodeGetInfoResponse") + proto.RegisterEnum("csitest.v1.PluginCapability_Service_Type", PluginCapability_Service_Type_name, PluginCapability_Service_Type_value) + proto.RegisterEnum("csitest.v1.VolumeCapability_AccessMode_Mode", VolumeCapability_AccessMode_Mode_name, VolumeCapability_AccessMode_Mode_value) + proto.RegisterEnum("csitest.v1.ControllerServiceCapability_RPC_Type", ControllerServiceCapability_RPC_Type_name, ControllerServiceCapability_RPC_Type_value) + proto.RegisterEnum("csitest.v1.VolumeUsage_Unit", VolumeUsage_Unit_name, VolumeUsage_Unit_value) + proto.RegisterEnum("csitest.v1.NodeServiceCapability_RPC_Type", NodeServiceCapability_RPC_Type_name, NodeServiceCapability_RPC_Type_value) +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// IdentityClient is the client API for Identity service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type IdentityClient interface { + GetPluginInfo(ctx context.Context, in *GetPluginInfoRequest, opts ...grpc.CallOption) (*GetPluginInfoResponse, error) + GetPluginCapabilities(ctx context.Context, in *GetPluginCapabilitiesRequest, opts ...grpc.CallOption) (*GetPluginCapabilitiesResponse, error) + Probe(ctx context.Context, in *ProbeRequest, opts ...grpc.CallOption) (*ProbeResponse, error) +} + +type identityClient struct { + cc *grpc.ClientConn +} + +func NewIdentityClient(cc *grpc.ClientConn) IdentityClient { + return &identityClient{cc} +} + +func (c *identityClient) GetPluginInfo(ctx context.Context, in *GetPluginInfoRequest, opts ...grpc.CallOption) (*GetPluginInfoResponse, error) { + out := new(GetPluginInfoResponse) + err := c.cc.Invoke(ctx, "/csitest.v1.Identity/GetPluginInfo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *identityClient) GetPluginCapabilities(ctx context.Context, in *GetPluginCapabilitiesRequest, opts ...grpc.CallOption) (*GetPluginCapabilitiesResponse, error) { + out := new(GetPluginCapabilitiesResponse) + err := c.cc.Invoke(ctx, "/csitest.v1.Identity/GetPluginCapabilities", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *identityClient) Probe(ctx context.Context, in *ProbeRequest, opts ...grpc.CallOption) (*ProbeResponse, error) { + out := new(ProbeResponse) + err := c.cc.Invoke(ctx, "/csitest.v1.Identity/Probe", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// IdentityServer is the server API for Identity service. +type IdentityServer interface { + GetPluginInfo(context.Context, *GetPluginInfoRequest) (*GetPluginInfoResponse, error) + GetPluginCapabilities(context.Context, *GetPluginCapabilitiesRequest) (*GetPluginCapabilitiesResponse, error) + Probe(context.Context, *ProbeRequest) (*ProbeResponse, error) +} + +func RegisterIdentityServer(s *grpc.Server, srv IdentityServer) { + s.RegisterService(&_Identity_serviceDesc, srv) +} + +func _Identity_GetPluginInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetPluginInfoRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(IdentityServer).GetPluginInfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csitest.v1.Identity/GetPluginInfo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(IdentityServer).GetPluginInfo(ctx, req.(*GetPluginInfoRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Identity_GetPluginCapabilities_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetPluginCapabilitiesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(IdentityServer).GetPluginCapabilities(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csitest.v1.Identity/GetPluginCapabilities", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(IdentityServer).GetPluginCapabilities(ctx, req.(*GetPluginCapabilitiesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Identity_Probe_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ProbeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(IdentityServer).Probe(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csitest.v1.Identity/Probe", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(IdentityServer).Probe(ctx, req.(*ProbeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _Identity_serviceDesc = grpc.ServiceDesc{ + ServiceName: "csitest.v1.Identity", + HandlerType: (*IdentityServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetPluginInfo", + Handler: _Identity_GetPluginInfo_Handler, + }, + { + MethodName: "GetPluginCapabilities", + Handler: _Identity_GetPluginCapabilities_Handler, + }, + { + MethodName: "Probe", + Handler: _Identity_Probe_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "github.com/kubernetes-csi/csi-lib-utils/protosanitizer/test/csitest.proto", +} + +// ControllerClient is the client API for Controller service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type ControllerClient interface { + CreateVolume(ctx context.Context, in *CreateVolumeRequest, opts ...grpc.CallOption) (*CreateVolumeResponse, error) + DeleteVolume(ctx context.Context, in *DeleteVolumeRequest, opts ...grpc.CallOption) (*DeleteVolumeResponse, error) + ControllerPublishVolume(ctx context.Context, in *ControllerPublishVolumeRequest, opts ...grpc.CallOption) (*ControllerPublishVolumeResponse, error) + ControllerUnpublishVolume(ctx context.Context, in *ControllerUnpublishVolumeRequest, opts ...grpc.CallOption) (*ControllerUnpublishVolumeResponse, error) + ValidateVolumeCapabilities(ctx context.Context, in *ValidateVolumeCapabilitiesRequest, opts ...grpc.CallOption) (*ValidateVolumeCapabilitiesResponse, error) + ListVolumes(ctx context.Context, in *ListVolumesRequest, opts ...grpc.CallOption) (*ListVolumesResponse, error) + GetCapacity(ctx context.Context, in *GetCapacityRequest, opts ...grpc.CallOption) (*GetCapacityResponse, error) + ControllerGetCapabilities(ctx context.Context, in *ControllerGetCapabilitiesRequest, opts ...grpc.CallOption) (*ControllerGetCapabilitiesResponse, error) + CreateSnapshot(ctx context.Context, in *CreateSnapshotRequest, opts ...grpc.CallOption) (*CreateSnapshotResponse, error) + DeleteSnapshot(ctx context.Context, in *DeleteSnapshotRequest, opts ...grpc.CallOption) (*DeleteSnapshotResponse, error) + ListSnapshots(ctx context.Context, in *ListSnapshotsRequest, opts ...grpc.CallOption) (*ListSnapshotsResponse, error) +} + +type controllerClient struct { + cc *grpc.ClientConn +} + +func NewControllerClient(cc *grpc.ClientConn) ControllerClient { + return &controllerClient{cc} +} + +func (c *controllerClient) CreateVolume(ctx context.Context, in *CreateVolumeRequest, opts ...grpc.CallOption) (*CreateVolumeResponse, error) { + out := new(CreateVolumeResponse) + err := c.cc.Invoke(ctx, "/csitest.v1.Controller/CreateVolume", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controllerClient) DeleteVolume(ctx context.Context, in *DeleteVolumeRequest, opts ...grpc.CallOption) (*DeleteVolumeResponse, error) { + out := new(DeleteVolumeResponse) + err := c.cc.Invoke(ctx, "/csitest.v1.Controller/DeleteVolume", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controllerClient) ControllerPublishVolume(ctx context.Context, in *ControllerPublishVolumeRequest, opts ...grpc.CallOption) (*ControllerPublishVolumeResponse, error) { + out := new(ControllerPublishVolumeResponse) + err := c.cc.Invoke(ctx, "/csitest.v1.Controller/ControllerPublishVolume", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controllerClient) ControllerUnpublishVolume(ctx context.Context, in *ControllerUnpublishVolumeRequest, opts ...grpc.CallOption) (*ControllerUnpublishVolumeResponse, error) { + out := new(ControllerUnpublishVolumeResponse) + err := c.cc.Invoke(ctx, "/csitest.v1.Controller/ControllerUnpublishVolume", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controllerClient) ValidateVolumeCapabilities(ctx context.Context, in *ValidateVolumeCapabilitiesRequest, opts ...grpc.CallOption) (*ValidateVolumeCapabilitiesResponse, error) { + out := new(ValidateVolumeCapabilitiesResponse) + err := c.cc.Invoke(ctx, "/csitest.v1.Controller/ValidateVolumeCapabilities", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controllerClient) ListVolumes(ctx context.Context, in *ListVolumesRequest, opts ...grpc.CallOption) (*ListVolumesResponse, error) { + out := new(ListVolumesResponse) + err := c.cc.Invoke(ctx, "/csitest.v1.Controller/ListVolumes", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controllerClient) GetCapacity(ctx context.Context, in *GetCapacityRequest, opts ...grpc.CallOption) (*GetCapacityResponse, error) { + out := new(GetCapacityResponse) + err := c.cc.Invoke(ctx, "/csitest.v1.Controller/GetCapacity", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controllerClient) ControllerGetCapabilities(ctx context.Context, in *ControllerGetCapabilitiesRequest, opts ...grpc.CallOption) (*ControllerGetCapabilitiesResponse, error) { + out := new(ControllerGetCapabilitiesResponse) + err := c.cc.Invoke(ctx, "/csitest.v1.Controller/ControllerGetCapabilities", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controllerClient) CreateSnapshot(ctx context.Context, in *CreateSnapshotRequest, opts ...grpc.CallOption) (*CreateSnapshotResponse, error) { + out := new(CreateSnapshotResponse) + err := c.cc.Invoke(ctx, "/csitest.v1.Controller/CreateSnapshot", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controllerClient) DeleteSnapshot(ctx context.Context, in *DeleteSnapshotRequest, opts ...grpc.CallOption) (*DeleteSnapshotResponse, error) { + out := new(DeleteSnapshotResponse) + err := c.cc.Invoke(ctx, "/csitest.v1.Controller/DeleteSnapshot", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controllerClient) ListSnapshots(ctx context.Context, in *ListSnapshotsRequest, opts ...grpc.CallOption) (*ListSnapshotsResponse, error) { + out := new(ListSnapshotsResponse) + err := c.cc.Invoke(ctx, "/csitest.v1.Controller/ListSnapshots", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// ControllerServer is the server API for Controller service. +type ControllerServer interface { + CreateVolume(context.Context, *CreateVolumeRequest) (*CreateVolumeResponse, error) + DeleteVolume(context.Context, *DeleteVolumeRequest) (*DeleteVolumeResponse, error) + ControllerPublishVolume(context.Context, *ControllerPublishVolumeRequest) (*ControllerPublishVolumeResponse, error) + ControllerUnpublishVolume(context.Context, *ControllerUnpublishVolumeRequest) (*ControllerUnpublishVolumeResponse, error) + ValidateVolumeCapabilities(context.Context, *ValidateVolumeCapabilitiesRequest) (*ValidateVolumeCapabilitiesResponse, error) + ListVolumes(context.Context, *ListVolumesRequest) (*ListVolumesResponse, error) + GetCapacity(context.Context, *GetCapacityRequest) (*GetCapacityResponse, error) + ControllerGetCapabilities(context.Context, *ControllerGetCapabilitiesRequest) (*ControllerGetCapabilitiesResponse, error) + CreateSnapshot(context.Context, *CreateSnapshotRequest) (*CreateSnapshotResponse, error) + DeleteSnapshot(context.Context, *DeleteSnapshotRequest) (*DeleteSnapshotResponse, error) + ListSnapshots(context.Context, *ListSnapshotsRequest) (*ListSnapshotsResponse, error) +} + +func RegisterControllerServer(s *grpc.Server, srv ControllerServer) { + s.RegisterService(&_Controller_serviceDesc, srv) +} + +func _Controller_CreateVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControllerServer).CreateVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csitest.v1.Controller/CreateVolume", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControllerServer).CreateVolume(ctx, req.(*CreateVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Controller_DeleteVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControllerServer).DeleteVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csitest.v1.Controller/DeleteVolume", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControllerServer).DeleteVolume(ctx, req.(*DeleteVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Controller_ControllerPublishVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ControllerPublishVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControllerServer).ControllerPublishVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csitest.v1.Controller/ControllerPublishVolume", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControllerServer).ControllerPublishVolume(ctx, req.(*ControllerPublishVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Controller_ControllerUnpublishVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ControllerUnpublishVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControllerServer).ControllerUnpublishVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csitest.v1.Controller/ControllerUnpublishVolume", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControllerServer).ControllerUnpublishVolume(ctx, req.(*ControllerUnpublishVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Controller_ValidateVolumeCapabilities_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ValidateVolumeCapabilitiesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControllerServer).ValidateVolumeCapabilities(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csitest.v1.Controller/ValidateVolumeCapabilities", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControllerServer).ValidateVolumeCapabilities(ctx, req.(*ValidateVolumeCapabilitiesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Controller_ListVolumes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListVolumesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControllerServer).ListVolumes(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csitest.v1.Controller/ListVolumes", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControllerServer).ListVolumes(ctx, req.(*ListVolumesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Controller_GetCapacity_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetCapacityRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControllerServer).GetCapacity(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csitest.v1.Controller/GetCapacity", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControllerServer).GetCapacity(ctx, req.(*GetCapacityRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Controller_ControllerGetCapabilities_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ControllerGetCapabilitiesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControllerServer).ControllerGetCapabilities(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csitest.v1.Controller/ControllerGetCapabilities", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControllerServer).ControllerGetCapabilities(ctx, req.(*ControllerGetCapabilitiesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Controller_CreateSnapshot_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateSnapshotRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControllerServer).CreateSnapshot(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csitest.v1.Controller/CreateSnapshot", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControllerServer).CreateSnapshot(ctx, req.(*CreateSnapshotRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Controller_DeleteSnapshot_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteSnapshotRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControllerServer).DeleteSnapshot(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csitest.v1.Controller/DeleteSnapshot", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControllerServer).DeleteSnapshot(ctx, req.(*DeleteSnapshotRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Controller_ListSnapshots_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListSnapshotsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControllerServer).ListSnapshots(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csitest.v1.Controller/ListSnapshots", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControllerServer).ListSnapshots(ctx, req.(*ListSnapshotsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _Controller_serviceDesc = grpc.ServiceDesc{ + ServiceName: "csitest.v1.Controller", + HandlerType: (*ControllerServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "CreateVolume", + Handler: _Controller_CreateVolume_Handler, + }, + { + MethodName: "DeleteVolume", + Handler: _Controller_DeleteVolume_Handler, + }, + { + MethodName: "ControllerPublishVolume", + Handler: _Controller_ControllerPublishVolume_Handler, + }, + { + MethodName: "ControllerUnpublishVolume", + Handler: _Controller_ControllerUnpublishVolume_Handler, + }, + { + MethodName: "ValidateVolumeCapabilities", + Handler: _Controller_ValidateVolumeCapabilities_Handler, + }, + { + MethodName: "ListVolumes", + Handler: _Controller_ListVolumes_Handler, + }, + { + MethodName: "GetCapacity", + Handler: _Controller_GetCapacity_Handler, + }, + { + MethodName: "ControllerGetCapabilities", + Handler: _Controller_ControllerGetCapabilities_Handler, + }, + { + MethodName: "CreateSnapshot", + Handler: _Controller_CreateSnapshot_Handler, + }, + { + MethodName: "DeleteSnapshot", + Handler: _Controller_DeleteSnapshot_Handler, + }, + { + MethodName: "ListSnapshots", + Handler: _Controller_ListSnapshots_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "github.com/kubernetes-csi/csi-lib-utils/protosanitizer/test/csitest.proto", +} + +// NodeClient is the client API for Node service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type NodeClient interface { + NodeStageVolume(ctx context.Context, in *NodeStageVolumeRequest, opts ...grpc.CallOption) (*NodeStageVolumeResponse, error) + NodeUnstageVolume(ctx context.Context, in *NodeUnstageVolumeRequest, opts ...grpc.CallOption) (*NodeUnstageVolumeResponse, error) + NodePublishVolume(ctx context.Context, in *NodePublishVolumeRequest, opts ...grpc.CallOption) (*NodePublishVolumeResponse, error) + NodeUnpublishVolume(ctx context.Context, in *NodeUnpublishVolumeRequest, opts ...grpc.CallOption) (*NodeUnpublishVolumeResponse, error) + NodeGetVolumeStats(ctx context.Context, in *NodeGetVolumeStatsRequest, opts ...grpc.CallOption) (*NodeGetVolumeStatsResponse, error) + NodeGetCapabilities(ctx context.Context, in *NodeGetCapabilitiesRequest, opts ...grpc.CallOption) (*NodeGetCapabilitiesResponse, error) + NodeGetInfo(ctx context.Context, in *NodeGetInfoRequest, opts ...grpc.CallOption) (*NodeGetInfoResponse, error) +} + +type nodeClient struct { + cc *grpc.ClientConn +} + +func NewNodeClient(cc *grpc.ClientConn) NodeClient { + return &nodeClient{cc} +} + +func (c *nodeClient) NodeStageVolume(ctx context.Context, in *NodeStageVolumeRequest, opts ...grpc.CallOption) (*NodeStageVolumeResponse, error) { + out := new(NodeStageVolumeResponse) + err := c.cc.Invoke(ctx, "/csitest.v1.Node/NodeStageVolume", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) NodeUnstageVolume(ctx context.Context, in *NodeUnstageVolumeRequest, opts ...grpc.CallOption) (*NodeUnstageVolumeResponse, error) { + out := new(NodeUnstageVolumeResponse) + err := c.cc.Invoke(ctx, "/csitest.v1.Node/NodeUnstageVolume", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) NodePublishVolume(ctx context.Context, in *NodePublishVolumeRequest, opts ...grpc.CallOption) (*NodePublishVolumeResponse, error) { + out := new(NodePublishVolumeResponse) + err := c.cc.Invoke(ctx, "/csitest.v1.Node/NodePublishVolume", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) NodeUnpublishVolume(ctx context.Context, in *NodeUnpublishVolumeRequest, opts ...grpc.CallOption) (*NodeUnpublishVolumeResponse, error) { + out := new(NodeUnpublishVolumeResponse) + err := c.cc.Invoke(ctx, "/csitest.v1.Node/NodeUnpublishVolume", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) NodeGetVolumeStats(ctx context.Context, in *NodeGetVolumeStatsRequest, opts ...grpc.CallOption) (*NodeGetVolumeStatsResponse, error) { + out := new(NodeGetVolumeStatsResponse) + err := c.cc.Invoke(ctx, "/csitest.v1.Node/NodeGetVolumeStats", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) NodeGetCapabilities(ctx context.Context, in *NodeGetCapabilitiesRequest, opts ...grpc.CallOption) (*NodeGetCapabilitiesResponse, error) { + out := new(NodeGetCapabilitiesResponse) + err := c.cc.Invoke(ctx, "/csitest.v1.Node/NodeGetCapabilities", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) NodeGetInfo(ctx context.Context, in *NodeGetInfoRequest, opts ...grpc.CallOption) (*NodeGetInfoResponse, error) { + out := new(NodeGetInfoResponse) + err := c.cc.Invoke(ctx, "/csitest.v1.Node/NodeGetInfo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// NodeServer is the server API for Node service. +type NodeServer interface { + NodeStageVolume(context.Context, *NodeStageVolumeRequest) (*NodeStageVolumeResponse, error) + NodeUnstageVolume(context.Context, *NodeUnstageVolumeRequest) (*NodeUnstageVolumeResponse, error) + NodePublishVolume(context.Context, *NodePublishVolumeRequest) (*NodePublishVolumeResponse, error) + NodeUnpublishVolume(context.Context, *NodeUnpublishVolumeRequest) (*NodeUnpublishVolumeResponse, error) + NodeGetVolumeStats(context.Context, *NodeGetVolumeStatsRequest) (*NodeGetVolumeStatsResponse, error) + NodeGetCapabilities(context.Context, *NodeGetCapabilitiesRequest) (*NodeGetCapabilitiesResponse, error) + NodeGetInfo(context.Context, *NodeGetInfoRequest) (*NodeGetInfoResponse, error) +} + +func RegisterNodeServer(s *grpc.Server, srv NodeServer) { + s.RegisterService(&_Node_serviceDesc, srv) +} + +func _Node_NodeStageVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NodeStageVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).NodeStageVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csitest.v1.Node/NodeStageVolume", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).NodeStageVolume(ctx, req.(*NodeStageVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_NodeUnstageVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NodeUnstageVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).NodeUnstageVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csitest.v1.Node/NodeUnstageVolume", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).NodeUnstageVolume(ctx, req.(*NodeUnstageVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_NodePublishVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NodePublishVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).NodePublishVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csitest.v1.Node/NodePublishVolume", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).NodePublishVolume(ctx, req.(*NodePublishVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_NodeUnpublishVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NodeUnpublishVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).NodeUnpublishVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csitest.v1.Node/NodeUnpublishVolume", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).NodeUnpublishVolume(ctx, req.(*NodeUnpublishVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_NodeGetVolumeStats_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NodeGetVolumeStatsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).NodeGetVolumeStats(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csitest.v1.Node/NodeGetVolumeStats", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).NodeGetVolumeStats(ctx, req.(*NodeGetVolumeStatsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_NodeGetCapabilities_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NodeGetCapabilitiesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).NodeGetCapabilities(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csitest.v1.Node/NodeGetCapabilities", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).NodeGetCapabilities(ctx, req.(*NodeGetCapabilitiesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_NodeGetInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NodeGetInfoRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).NodeGetInfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csitest.v1.Node/NodeGetInfo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).NodeGetInfo(ctx, req.(*NodeGetInfoRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _Node_serviceDesc = grpc.ServiceDesc{ + ServiceName: "csitest.v1.Node", + HandlerType: (*NodeServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "NodeStageVolume", + Handler: _Node_NodeStageVolume_Handler, + }, + { + MethodName: "NodeUnstageVolume", + Handler: _Node_NodeUnstageVolume_Handler, + }, + { + MethodName: "NodePublishVolume", + Handler: _Node_NodePublishVolume_Handler, + }, + { + MethodName: "NodeUnpublishVolume", + Handler: _Node_NodeUnpublishVolume_Handler, + }, + { + MethodName: "NodeGetVolumeStats", + Handler: _Node_NodeGetVolumeStats_Handler, + }, + { + MethodName: "NodeGetCapabilities", + Handler: _Node_NodeGetCapabilities_Handler, + }, + { + MethodName: "NodeGetInfo", + Handler: _Node_NodeGetInfo_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "github.com/kubernetes-csi/csi-lib-utils/protosanitizer/test/csitest.proto", +} + +func init() { + proto.RegisterFile("github.com/kubernetes-csi/csi-lib-utils/protosanitizer/test/csitest.proto", fileDescriptor_csitest_38acc6c7572d95d8) +} + +var fileDescriptor_csitest_38acc6c7572d95d8 = []byte{ + // 3225 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x3a, 0x4d, 0x6c, 0x1b, 0xc7, + 0xd5, 0x5a, 0xfe, 0xe8, 0xe7, 0x51, 0x62, 0xe8, 0x91, 0x2c, 0xd3, 0x6b, 0xc7, 0x92, 0x37, 0x76, + 0xec, 0x38, 0x31, 0x15, 0xcb, 0xf8, 0xbe, 0x26, 0x69, 0x1d, 0x9b, 0xa2, 0x68, 0x89, 0x35, 0x45, + 0x29, 0xbb, 0x94, 0x52, 0x05, 0x49, 0x16, 0x2b, 0x72, 0x44, 0x2d, 0x4c, 0xee, 0x32, 0xbb, 0x4b, + 0xc5, 0x0a, 0x10, 0xa0, 0xb7, 0x02, 0x3d, 0x16, 0x28, 0x50, 0xa0, 0x87, 0xde, 0x0a, 0xb4, 0xd7, + 0xf6, 0x12, 0xf4, 0x58, 0x14, 0xbd, 0xf5, 0x50, 0xa0, 0xe8, 0xa5, 0xa7, 0x5e, 0x7a, 0x28, 0xd0, + 0x16, 0xbd, 0xb5, 0x01, 0x8a, 0x62, 0x76, 0x66, 0x97, 0x3b, 0xbb, 0xcb, 0x3f, 0xcb, 0x41, 0x0e, + 0x3d, 0x91, 0xfb, 0xe6, 0xbd, 0x37, 0x6f, 0xde, 0xbc, 0xf7, 0xe6, 0xbd, 0x37, 0x03, 0x95, 0x96, + 0xee, 0x9c, 0xf4, 0x8e, 0x0a, 0x0d, 0xb3, 0xb3, 0xf6, 0xb4, 0x77, 0x84, 0x2d, 0x03, 0x3b, 0xd8, + 0xbe, 0xdb, 0xb0, 0xf5, 0xb5, 0x86, 0xad, 0xdf, 0x6d, 0xeb, 0x47, 0x77, 0x7b, 0x8e, 0xde, 0xb6, + 0xd7, 0xba, 0x96, 0xe9, 0x98, 0xb6, 0x66, 0xe8, 0x8e, 0xfe, 0x19, 0xb6, 0xd6, 0x1c, 0x6c, 0x3b, + 0x04, 0x83, 0xfc, 0x16, 0xdc, 0x31, 0x04, 0xde, 0xe7, 0xe9, 0x3d, 0x71, 0xb5, 0x65, 0x9a, 0xad, + 0x36, 0xa6, 0x54, 0x47, 0xbd, 0xe3, 0xb5, 0x26, 0xb6, 0x1b, 0x96, 0xde, 0x75, 0x4c, 0x8b, 0x62, + 0x8b, 0x2b, 0x61, 0x0c, 0x47, 0xef, 0x60, 0xdb, 0xd1, 0x3a, 0x5d, 0x86, 0x70, 0x2d, 0x8c, 0xf0, + 0xa9, 0xa5, 0x75, 0xbb, 0xd8, 0xb2, 0xd9, 0x78, 0xf9, 0x9c, 0x92, 0x53, 0x36, 0xd2, 0x32, 0x2c, + 0x6d, 0x61, 0x67, 0xaf, 0xdd, 0x6b, 0xe9, 0x46, 0xc5, 0x38, 0x36, 0x65, 0xfc, 0x49, 0x0f, 0xdb, + 0x8e, 0xf4, 0x27, 0x01, 0x2e, 0x86, 0x06, 0xec, 0xae, 0x69, 0xd8, 0x18, 0x21, 0x48, 0x19, 0x5a, + 0x07, 0xe7, 0x85, 0x55, 0xe1, 0xf6, 0x9c, 0xec, 0xfe, 0x47, 0x37, 0x21, 0x7b, 0x8a, 0x8d, 0xa6, + 0x69, 0xa9, 0xa7, 0xd8, 0xb2, 0x75, 0xd3, 0xc8, 0x27, 0xdc, 0xd1, 0x05, 0x0a, 0x3d, 0xa0, 0x40, + 0xf4, 0x04, 0x66, 0x3b, 0x9a, 0xa1, 0x1f, 0x63, 0xdb, 0xc9, 0x27, 0x57, 0x93, 0xb7, 0x33, 0xeb, + 0x6b, 0x85, 0xbe, 0xd6, 0x0a, 0xb1, 0xf3, 0x15, 0x76, 0x18, 0x45, 0xd9, 0x70, 0xac, 0x33, 0xd9, + 0x67, 0x20, 0x7e, 0x13, 0x16, 0xb8, 0x21, 0x94, 0x83, 0xe4, 0x53, 0x7c, 0xc6, 0xe4, 0x22, 0x7f, + 0xd1, 0x12, 0xa4, 0x4f, 0xb5, 0x76, 0x0f, 0x33, 0x69, 0xe8, 0xc7, 0x3b, 0x89, 0xb7, 0x04, 0xe9, + 0x1a, 0x5c, 0xf5, 0x67, 0x2b, 0x69, 0x5d, 0xed, 0x48, 0x6f, 0xeb, 0x8e, 0x8e, 0x6d, 0x6f, 0xf9, + 0x1a, 0xbc, 0x3c, 0x60, 0x9c, 0x69, 0xe1, 0x11, 0xcc, 0x37, 0x02, 0xf0, 0xbc, 0xe0, 0x2e, 0xe7, + 0x6a, 0x70, 0x39, 0x21, 0xea, 0x33, 0x99, 0xa3, 0x90, 0xfe, 0x2d, 0x40, 0x2e, 0x8c, 0x82, 0x1e, + 0xc1, 0x8c, 0x8d, 0xad, 0x53, 0xbd, 0x41, 0xf5, 0x9b, 0x59, 0xbf, 0x31, 0x8c, 0x63, 0x41, 0xa1, + 0xb8, 0xdb, 0x53, 0xb2, 0x47, 0x26, 0xfe, 0x58, 0x80, 0x19, 0x06, 0x46, 0x0f, 0x20, 0xe5, 0x9c, + 0x75, 0x29, 0xab, 0xec, 0xfa, 0x6b, 0xe3, 0xb0, 0x2a, 0xd4, 0xcf, 0xba, 0x58, 0x76, 0xc9, 0xa4, + 0xf7, 0x20, 0x45, 0xbe, 0x50, 0x06, 0x66, 0xf6, 0x6b, 0x4f, 0x6a, 0xbb, 0xef, 0xd7, 0x72, 0x53, + 0x68, 0x19, 0x50, 0x69, 0xb7, 0x56, 0x97, 0x77, 0xab, 0xd5, 0xb2, 0xac, 0x2a, 0x65, 0xf9, 0xa0, + 0x52, 0x2a, 0xe7, 0x04, 0x74, 0x03, 0x56, 0x0f, 0x76, 0xab, 0xfb, 0x3b, 0x65, 0xb5, 0x58, 0x2a, + 0x95, 0x15, 0xa5, 0xb2, 0x51, 0xa9, 0x56, 0xea, 0x87, 0x6a, 0x69, 0xb7, 0xa6, 0xd4, 0xe5, 0x62, + 0xa5, 0x56, 0x57, 0x72, 0x89, 0x8d, 0x69, 0x2a, 0x91, 0x94, 0x85, 0xf9, 0x3d, 0xcb, 0x3c, 0xc2, + 0x9e, 0xbe, 0x8b, 0xb0, 0xc0, 0xbe, 0x99, 0x7e, 0xdf, 0x84, 0xb4, 0x85, 0xb5, 0xe6, 0x19, 0x53, + 0x83, 0x58, 0xa0, 0xee, 0x50, 0xf0, 0xdc, 0xa1, 0xb0, 0x61, 0x9a, 0xed, 0x03, 0xb2, 0x9f, 0x32, + 0x45, 0x94, 0xbe, 0x9c, 0x86, 0xc5, 0x92, 0x85, 0x35, 0x07, 0x1f, 0x98, 0xed, 0x5e, 0xc7, 0x63, + 0x1d, 0x6b, 0xaf, 0x8f, 0x20, 0x4b, 0xf6, 0xa2, 0xa1, 0x3b, 0x67, 0xaa, 0xa5, 0x19, 0x2d, 0x6a, + 0x21, 0x99, 0xf5, 0xcb, 0x41, 0x15, 0x95, 0x18, 0x86, 0x4c, 0x10, 0xe4, 0x85, 0x46, 0xf0, 0x13, + 0xed, 0xc0, 0xe2, 0xa9, 0x3b, 0x8d, 0xca, 0x99, 0x41, 0x32, 0x6a, 0x06, 0x54, 0x9a, 0x80, 0x19, + 0xa0, 0x53, 0x1e, 0xa2, 0x63, 0x1b, 0xed, 0x02, 0x74, 0x35, 0x4b, 0xeb, 0x60, 0x07, 0x5b, 0x76, + 0x3e, 0x15, 0xf5, 0x8d, 0x98, 0x95, 0x15, 0xf6, 0x7c, 0x0a, 0xea, 0x1b, 0x01, 0x16, 0xe8, 0x3d, + 0x98, 0xb3, 0x31, 0x6e, 0x58, 0x18, 0x3b, 0x76, 0x3e, 0xed, 0xf2, 0x2b, 0x8c, 0xe2, 0xa7, 0x78, + 0x04, 0x2e, 0xbb, 0x8d, 0xe4, 0x8f, 0x36, 0x04, 0xb9, 0xcf, 0x05, 0x29, 0x70, 0xd1, 0x5b, 0xb2, + 0x69, 0x38, 0xd8, 0x70, 0x54, 0xdb, 0xec, 0x59, 0x0d, 0x9c, 0x9f, 0x76, 0x75, 0xb7, 0x12, 0xb3, + 0x68, 0x8a, 0xa7, 0xb8, 0x68, 0x32, 0x53, 0x18, 0x07, 0x44, 0x1f, 0x83, 0xa8, 0x35, 0x1a, 0xd8, + 0xb6, 0x75, 0xaa, 0x1d, 0xd5, 0xc2, 0x9f, 0xf4, 0x74, 0x0b, 0x77, 0xb0, 0xe1, 0xd8, 0xf9, 0x99, + 0x28, 0xe7, 0xba, 0xd9, 0x35, 0xdb, 0x66, 0xeb, 0x4c, 0xee, 0xe3, 0xc9, 0x97, 0x39, 0x16, 0x81, + 0x11, 0x1b, 0xbd, 0x06, 0x59, 0x03, 0x7f, 0xaa, 0xda, 0x64, 0x11, 0x8e, 0xaa, 0x1b, 0x4e, 0x7e, + 0x76, 0x55, 0xb8, 0x9d, 0xa4, 0x8b, 0x9b, 0x37, 0xf0, 0xa7, 0x8a, 0x3b, 0x52, 0x31, 0x1c, 0xf4, + 0x11, 0xe4, 0x3a, 0xda, 0xd9, 0x11, 0xf6, 0x90, 0x3b, 0x5a, 0x37, 0x3f, 0xe7, 0x6a, 0xee, 0xfe, + 0x28, 0xcd, 0xed, 0x10, 0x3a, 0xca, 0x69, 0x47, 0xeb, 0xd2, 0xdd, 0xc8, 0x76, 0x38, 0xa0, 0xf8, + 0x00, 0x5e, 0x0a, 0x6d, 0xd8, 0x24, 0x11, 0x4b, 0xfc, 0x16, 0x64, 0xf9, 0xfd, 0x99, 0x88, 0x5a, + 0x85, 0xc5, 0x18, 0x19, 0x83, 0x2c, 0x92, 0x94, 0xc5, 0x7a, 0x90, 0xc5, 0x28, 0x4b, 0x0e, 0x04, + 0xd4, 0x2f, 0x13, 0xb0, 0x18, 0xb3, 0xe9, 0xa8, 0x0a, 0xb3, 0xb6, 0xa1, 0x75, 0xed, 0x13, 0xd3, + 0x61, 0xae, 0x5c, 0x18, 0x61, 0x27, 0x05, 0x85, 0xe1, 0xd3, 0xcf, 0xed, 0x29, 0xd9, 0xe7, 0x80, + 0x1e, 0xc3, 0x34, 0x35, 0x22, 0x26, 0xde, 0x1b, 0xa3, 0x78, 0x51, 0x98, 0xcf, 0x89, 0x51, 0xa3, + 0xfb, 0xb0, 0x68, 0x60, 0xdb, 0xc1, 0x4d, 0x6f, 0xaf, 0x8f, 0x75, 0xdc, 0x6e, 0xe6, 0x93, 0x44, + 0x6d, 0xd4, 0x34, 0x2e, 0xd0, 0x71, 0xaa, 0xaf, 0xc7, 0x64, 0x54, 0xbc, 0x07, 0x59, 0x5e, 0x34, + 0xb4, 0x02, 0x19, 0x4f, 0x34, 0x55, 0x6f, 0xb2, 0x9d, 0x00, 0x0f, 0x54, 0x69, 0x8a, 0x1f, 0xc3, + 0x7c, 0x50, 0x02, 0x74, 0x05, 0xe6, 0x98, 0x0b, 0xf9, 0xe8, 0xb3, 0x14, 0x50, 0x69, 0xa2, 0x7b, + 0x80, 0x4c, 0x03, 0x9b, 0xc7, 0xbc, 0x4c, 0x89, 0xbe, 0x4c, 0x39, 0x77, 0x38, 0x20, 0x92, 0x1f, + 0x4e, 0x37, 0x60, 0x89, 0x37, 0x4b, 0x16, 0x45, 0xef, 0xf8, 0xfa, 0xa2, 0xba, 0x47, 0x51, 0x7d, + 0x79, 0x3a, 0x91, 0xfe, 0x9c, 0x82, 0x5c, 0x78, 0x87, 0xd1, 0x23, 0x48, 0x1f, 0xb5, 0xcd, 0xc6, + 0x53, 0x46, 0x7f, 0x7b, 0x98, 0x39, 0x14, 0x36, 0x08, 0x26, 0x85, 0x6e, 0x4f, 0xc9, 0x94, 0x90, + 0x70, 0xe8, 0x98, 0x3d, 0xc3, 0x61, 0x3b, 0x36, 0x9c, 0xc3, 0x0e, 0xc1, 0xec, 0x73, 0x70, 0x09, + 0xd1, 0x36, 0x64, 0xa8, 0x7f, 0xab, 0x1d, 0xb3, 0x89, 0xdd, 0x4d, 0xca, 0xac, 0xdf, 0x1a, 0xca, + 0xa7, 0xe8, 0xe2, 0xef, 0x98, 0x4d, 0x2c, 0x83, 0xe6, 0xff, 0x47, 0xaf, 0xc2, 0xbc, 0x66, 0x59, + 0xda, 0x19, 0xd3, 0x70, 0x3e, 0xd5, 0xd7, 0x6d, 0xc6, 0x1d, 0xa0, 0xba, 0x15, 0x17, 0x20, 0x13, + 0x58, 0x8b, 0xb8, 0x05, 0x99, 0x80, 0x60, 0xe8, 0x12, 0xcc, 0x1c, 0xdb, 0xaa, 0x7f, 0xb0, 0xce, + 0xc9, 0xd3, 0xc7, 0xb6, 0x7b, 0x4e, 0xae, 0x40, 0xc6, 0x95, 0x58, 0x3d, 0x6e, 0x6b, 0x2d, 0x3b, + 0x9f, 0x58, 0x4d, 0x12, 0x73, 0x70, 0x41, 0x8f, 0x09, 0x44, 0xfc, 0x87, 0x00, 0xd0, 0x17, 0x0d, + 0x3d, 0x82, 0x94, 0xbb, 0x22, 0x7a, 0x3c, 0xbf, 0x31, 0xe6, 0x8a, 0x0a, 0xee, 0xb2, 0x5c, 0x4a, + 0xe9, 0x27, 0x02, 0xa4, 0x5c, 0x56, 0xe1, 0x23, 0x5a, 0xa9, 0xd4, 0xb6, 0xaa, 0x65, 0xb5, 0xb6, + 0xbb, 0x59, 0x56, 0xdf, 0x97, 0x2b, 0xf5, 0xb2, 0x9c, 0x13, 0xd0, 0x15, 0xb8, 0x14, 0x84, 0xcb, + 0xe5, 0xe2, 0x66, 0x59, 0x56, 0x77, 0x6b, 0xd5, 0xc3, 0x5c, 0x02, 0x89, 0xb0, 0xbc, 0xb3, 0x5f, + 0xad, 0x57, 0xa2, 0x63, 0x49, 0x74, 0x15, 0xf2, 0x81, 0x31, 0xc6, 0x83, 0xb1, 0x4d, 0x11, 0xb6, + 0x81, 0x51, 0xfa, 0x97, 0x0d, 0xa6, 0x37, 0x16, 0xfc, 0xcd, 0x73, 0x0d, 0xf5, 0x7d, 0x58, 0xe0, + 0x8e, 0x55, 0x92, 0x39, 0xb2, 0x88, 0xdf, 0x54, 0x8f, 0xce, 0x1c, 0x37, 0x93, 0x22, 0xc1, 0x68, + 0xc1, 0x83, 0x6e, 0x10, 0x20, 0x51, 0x6d, 0x5b, 0xef, 0xe8, 0x0e, 0xc3, 0x49, 0xb8, 0x38, 0xe0, + 0x82, 0x5c, 0x04, 0xe9, 0xaf, 0x09, 0x98, 0x66, 0xfb, 0x73, 0x33, 0x70, 0xb8, 0x73, 0x2c, 0x3d, + 0x28, 0x65, 0xc9, 0xf9, 0x62, 0x22, 0xe4, 0x8b, 0x55, 0xc8, 0x06, 0xcf, 0xba, 0x67, 0x5e, 0xbe, + 0x7a, 0x33, 0xba, 0x49, 0xc1, 0xb8, 0xf3, 0x8c, 0x65, 0xa9, 0x0b, 0xa7, 0x41, 0x18, 0x7a, 0x0c, + 0xd9, 0xd0, 0x91, 0x99, 0x1a, 0xef, 0xc8, 0x5c, 0x68, 0x70, 0xc1, 0xb4, 0x0c, 0x8b, 0xde, 0x49, + 0xd7, 0xc6, 0xaa, 0xc3, 0x4e, 0x42, 0x76, 0xbc, 0x2f, 0xc5, 0x9e, 0x92, 0xa8, 0x4f, 0xe0, 0xc1, + 0xc4, 0x47, 0x80, 0xa2, 0x32, 0x4f, 0x94, 0x3e, 0x7f, 0x0e, 0x8b, 0x31, 0xe7, 0x30, 0x5a, 0x87, + 0x39, 0x77, 0xdb, 0x88, 0x1c, 0x2c, 0x23, 0x8e, 0x97, 0xaa, 0x8f, 0x46, 0x68, 0xba, 0x16, 0x3e, + 0xc6, 0x96, 0x85, 0x9b, 0xae, 0xcb, 0x0c, 0xa4, 0xf1, 0xd1, 0xa4, 0xef, 0x09, 0x30, 0xeb, 0xc1, + 0xd1, 0xbb, 0x30, 0x6b, 0xe3, 0x16, 0xcd, 0x17, 0xe8, 0x9c, 0x52, 0x1c, 0x7d, 0x41, 0x61, 0x48, + 0xac, 0x8e, 0xf0, 0x68, 0x48, 0x1d, 0xc1, 0x0d, 0x4d, 0xa4, 0x88, 0x5f, 0x09, 0xb0, 0xb8, 0x89, + 0xdb, 0x38, 0x9c, 0x74, 0x0e, 0x0d, 0xf4, 0x4f, 0x48, 0x92, 0x4f, 0x02, 0x8d, 0xcd, 0x16, 0xcc, + 0xb9, 0x7e, 0x0c, 0xbb, 0x02, 0x8d, 0x4b, 0xc1, 0xbc, 0xcc, 0xe3, 0x20, 0xbe, 0x03, 0xf3, 0xc1, + 0xd1, 0x89, 0xa4, 0x5f, 0x86, 0x25, 0x7e, 0x36, 0x7a, 0x6c, 0x48, 0xff, 0x4a, 0xc2, 0x35, 0x62, + 0x1b, 0x96, 0xd9, 0x6e, 0x63, 0x6b, 0xaf, 0x77, 0xd4, 0xd6, 0xed, 0x93, 0x09, 0x16, 0x78, 0x09, + 0x66, 0x0c, 0xb3, 0x19, 0x70, 0xac, 0x69, 0xf2, 0x59, 0x69, 0xa2, 0x0a, 0x5c, 0x08, 0x67, 0xcd, + 0x67, 0x2c, 0xa0, 0x0f, 0xcf, 0x34, 0x72, 0xa7, 0xe1, 0x93, 0x49, 0x84, 0x59, 0x92, 0xf7, 0x9b, + 0x46, 0xfb, 0xcc, 0xf5, 0xa6, 0x59, 0xd9, 0xff, 0x46, 0x07, 0x7d, 0x05, 0x53, 0xdf, 0xf8, 0x06, + 0x97, 0xc0, 0x0d, 0x5d, 0xd9, 0x10, 0x5d, 0xa3, 0x66, 0x24, 0x2a, 0x4c, 0xbb, 0xec, 0x1f, 0x4c, + 0xc0, 0x7e, 0x64, 0xb4, 0x38, 0xcf, 0x8e, 0xbe, 0x00, 0xd7, 0xfe, 0x9d, 0x00, 0x2b, 0x03, 0x97, + 0xc0, 0xd2, 0x8a, 0x13, 0x78, 0xa9, 0x4b, 0x07, 0x7c, 0x45, 0x50, 0xcf, 0x7b, 0x38, 0x96, 0x22, + 0x58, 0x61, 0xcf, 0xa0, 0x9c, 0x2a, 0xb2, 0x5d, 0x0e, 0x28, 0x16, 0x61, 0x31, 0x06, 0x6d, 0xa2, + 0x05, 0xfd, 0x4d, 0x80, 0xd5, 0xbe, 0x28, 0xfb, 0x46, 0xf7, 0xc5, 0x99, 0xf3, 0x77, 0xfa, 0x76, + 0x46, 0x8f, 0x87, 0xb7, 0xe3, 0xd7, 0x1f, 0x3f, 0xe9, 0x57, 0xe5, 0xd5, 0xaf, 0xc0, 0xf5, 0x21, + 0x53, 0x33, 0x17, 0xff, 0x7b, 0x0a, 0xae, 0x1f, 0x68, 0x6d, 0xbd, 0xe9, 0x27, 0x8d, 0x31, 0x6d, + 0x90, 0xe1, 0x6a, 0x69, 0x45, 0xbc, 0x81, 0x46, 0xb3, 0x47, 0x9c, 0x27, 0x8f, 0x9a, 0x63, 0x8c, + 0xe3, 0xf3, 0x05, 0xd7, 0xda, 0x1f, 0xc5, 0xd4, 0xda, 0x0f, 0x26, 0x93, 0x79, 0x58, 0xe5, 0x7d, + 0x18, 0x0e, 0x3e, 0xef, 0x4c, 0xc6, 0x7b, 0x88, 0x55, 0x9c, 0xdb, 0xbb, 0xcf, 0x5b, 0x84, 0x9e, + 0xc7, 0x2c, 0x7f, 0x9f, 0x02, 0x69, 0xd8, 0xea, 0x59, 0x6c, 0x39, 0x80, 0xb9, 0x86, 0x69, 0x1c, + 0xeb, 0x56, 0x07, 0x37, 0x59, 0xd5, 0xf1, 0xd6, 0xb8, 0x0a, 0x64, 0x81, 0xa5, 0xe4, 0xd1, 0xcb, + 0x7d, 0x56, 0x28, 0x0f, 0x33, 0x1d, 0x6c, 0xdb, 0x5a, 0xcb, 0x13, 0xcd, 0xfb, 0x14, 0xbf, 0x48, + 0xc2, 0x9c, 0x4f, 0x82, 0xac, 0x88, 0x55, 0xd3, 0xd0, 0xf6, 0xe4, 0x79, 0x85, 0x78, 0x7e, 0x03, + 0x4f, 0x3c, 0xa7, 0x81, 0x9f, 0x70, 0x06, 0x4e, 0xdd, 0x64, 0xfb, 0xb9, 0xc5, 0x1f, 0x62, 0xeb, + 0x5f, 0xbb, 0x41, 0x4a, 0x1f, 0x02, 0xaa, 0xea, 0x36, 0xab, 0xcc, 0xfc, 0xb0, 0x45, 0x0a, 0x31, + 0xed, 0x99, 0x8a, 0x0d, 0xc7, 0xd2, 0x59, 0xfa, 0x9f, 0x96, 0xa1, 0xa3, 0x3d, 0x2b, 0x53, 0x08, + 0x29, 0x11, 0x6c, 0x47, 0xb3, 0x1c, 0xdd, 0x68, 0xa9, 0x8e, 0xf9, 0x14, 0xfb, 0xfd, 0x6a, 0x0f, + 0x5a, 0x27, 0x40, 0xe9, 0xe7, 0x02, 0x2c, 0x72, 0xec, 0x99, 0x8d, 0x3e, 0x84, 0x99, 0x3e, 0xef, + 0x48, 0x59, 0x10, 0x43, 0x51, 0xa0, 0xaa, 0xf3, 0xa8, 0xd0, 0xcb, 0x00, 0x06, 0x7e, 0xe6, 0x70, + 0x73, 0xcf, 0x11, 0x88, 0x3b, 0xaf, 0x78, 0x1f, 0xd2, 0x54, 0x15, 0x93, 0xd4, 0xef, 0x5f, 0x24, + 0x00, 0x6d, 0x61, 0xc7, 0x2f, 0xaf, 0x98, 0x2e, 0x06, 0xd8, 0x96, 0xf0, 0x9c, 0xb6, 0x55, 0xe3, + 0x6c, 0x2b, 0x11, 0x6d, 0x2c, 0x46, 0x45, 0x18, 0x1a, 0x2d, 0x07, 0x94, 0x34, 0x34, 0x27, 0x1c, + 0xbf, 0xa4, 0x39, 0xa7, 0x19, 0x6d, 0xc2, 0x22, 0x27, 0x37, 0xdb, 0xe7, 0xbb, 0x80, 0xb4, 0x53, + 0x4d, 0x6f, 0x6b, 0x44, 0x36, 0xaf, 0x7a, 0x64, 0xd5, 0xe4, 0x05, 0x7f, 0xc4, 0x23, 0x93, 0xa4, + 0x60, 0xa2, 0xc1, 0xf8, 0x85, 0x2f, 0x16, 0xba, 0xc1, 0xc3, 0x39, 0x82, 0xc3, 0xe6, 0x7d, 0x12, + 0x7b, 0xb9, 0x70, 0x2b, 0x3e, 0xb9, 0x60, 0x8d, 0xfb, 0x81, 0xf7, 0x0c, 0xff, 0x49, 0xc0, 0x95, + 0x21, 0xd8, 0xe8, 0x21, 0x24, 0xad, 0x6e, 0x83, 0x19, 0xd8, 0xeb, 0x63, 0xce, 0x51, 0x90, 0xf7, + 0x4a, 0xdb, 0x53, 0x32, 0xa1, 0x14, 0x7f, 0x98, 0x80, 0xa4, 0xbc, 0x57, 0x42, 0x9b, 0xdc, 0x6d, + 0xc3, 0x9b, 0x13, 0x70, 0x0a, 0x5e, 0x3a, 0xfc, 0x56, 0x88, 0xbb, 0x75, 0xc8, 0xc3, 0x52, 0x49, + 0x2e, 0x17, 0xeb, 0x65, 0x75, 0xb3, 0x5c, 0x2d, 0xd7, 0xcb, 0x2a, 0xbd, 0x6b, 0xc8, 0x09, 0xe8, + 0x2a, 0xe4, 0xf7, 0xf6, 0x37, 0xaa, 0x15, 0x65, 0x5b, 0xdd, 0xaf, 0x79, 0xff, 0xd8, 0x68, 0x02, + 0xe5, 0x60, 0xbe, 0x5a, 0x51, 0xea, 0x0c, 0xa0, 0xe4, 0x92, 0x04, 0xb2, 0x55, 0xae, 0xab, 0xa5, + 0xe2, 0x5e, 0xb1, 0x54, 0xa9, 0x1f, 0xe6, 0x52, 0x48, 0x84, 0x65, 0x9e, 0xb7, 0x52, 0x2b, 0xee, + 0x29, 0xdb, 0xbb, 0xf5, 0x5c, 0x1a, 0x21, 0xc8, 0xba, 0xf4, 0x1e, 0x48, 0xc9, 0x4d, 0x13, 0x0e, + 0xa5, 0xea, 0x6e, 0xcd, 0x97, 0x61, 0x06, 0x2d, 0x41, 0xce, 0x9b, 0x59, 0x2e, 0x17, 0x37, 0xdd, + 0xae, 0xc9, 0xac, 0xdf, 0x9c, 0xfb, 0x67, 0x02, 0x2e, 0xd2, 0xee, 0x9c, 0xd7, 0x3e, 0xf4, 0x7c, + 0xf3, 0x36, 0xe4, 0x68, 0x3f, 0x40, 0x0d, 0x67, 0x59, 0x59, 0x0a, 0x3f, 0xf0, 0x72, 0x2d, 0xef, + 0x12, 0x23, 0x11, 0xb8, 0xc4, 0xd8, 0x09, 0x67, 0x9f, 0x31, 0x0d, 0xfe, 0xd0, 0x8c, 0xc3, 0x8a, + 0x9b, 0xf7, 0x62, 0xd2, 0xa2, 0x7b, 0xa3, 0x39, 0x0e, 0x3b, 0x1e, 0xce, 0x53, 0xc9, 0x9c, 0xd3, + 0xa3, 0xbf, 0x0d, 0xcb, 0x61, 0x79, 0xfd, 0x9b, 0xa5, 0x70, 0x47, 0x9a, 0x0b, 0x33, 0x3e, 0xbe, + 0x8f, 0x25, 0xfd, 0x51, 0x80, 0x59, 0x0f, 0x4c, 0x42, 0xb7, 0xad, 0x7f, 0x86, 0xb9, 0xce, 0xd2, + 0x1c, 0x81, 0xf8, 0x8d, 0xaa, 0x60, 0x4b, 0x38, 0x11, 0x6e, 0x09, 0xc7, 0xee, 0x79, 0x32, 0x76, + 0xcf, 0x1f, 0xc2, 0x42, 0x83, 0x2c, 0x41, 0x37, 0x0d, 0xd5, 0xd1, 0x3b, 0x5e, 0xd3, 0x28, 0x7a, + 0x15, 0x56, 0xf7, 0xae, 0x8e, 0xe5, 0x79, 0x8f, 0x80, 0x80, 0xd0, 0x2a, 0xcc, 0xbb, 0x57, 0x63, + 0xaa, 0x63, 0xaa, 0x3d, 0x1b, 0xe7, 0xd3, 0x6e, 0x99, 0x0c, 0x2e, 0xac, 0x6e, 0xee, 0xdb, 0x58, + 0xfa, 0xb5, 0x00, 0x17, 0x69, 0x07, 0x20, 0x6c, 0x9a, 0xa3, 0x5a, 0xdb, 0x41, 0xeb, 0x8b, 0x39, + 0x05, 0x62, 0x99, 0x7e, 0x55, 0x05, 0x4f, 0x1e, 0x96, 0xc3, 0xf3, 0xb1, 0x2a, 0xe7, 0x67, 0x02, + 0x2c, 0x91, 0xe3, 0xd8, 0x1b, 0x78, 0xd1, 0x19, 0xc2, 0x04, 0xbb, 0x19, 0x52, 0x68, 0x2a, 0xac, + 0x50, 0xe9, 0x97, 0x02, 0x5c, 0x0c, 0xc9, 0xca, 0x2c, 0xb6, 0x18, 0x4e, 0x37, 0x6e, 0x85, 0xd3, + 0x8d, 0x08, 0xcd, 0x84, 0x09, 0xc7, 0xdb, 0x5e, 0xc2, 0x31, 0xb9, 0x73, 0x7c, 0x37, 0x0d, 0xcb, + 0x35, 0xb3, 0x89, 0x15, 0x47, 0x6b, 0x4d, 0xd2, 0x04, 0x53, 0xa3, 0x3d, 0x04, 0x6a, 0x47, 0xff, + 0x1f, 0x9c, 0x30, 0x9e, 0xf3, 0x38, 0xad, 0x03, 0x54, 0x80, 0x45, 0xdb, 0xd1, 0x5a, 0xee, 0x06, + 0x6a, 0x56, 0x0b, 0x3b, 0x6a, 0x57, 0x73, 0x4e, 0xd8, 0xee, 0x5c, 0x60, 0x43, 0x75, 0x77, 0x64, + 0x4f, 0x73, 0x4e, 0xe2, 0x7b, 0x53, 0xa9, 0xe7, 0xea, 0x4d, 0xd5, 0xc2, 0x25, 0xe0, 0xda, 0x18, + 0x6b, 0x1a, 0x12, 0x9a, 0x3f, 0x1c, 0xd0, 0x77, 0xfa, 0xbf, 0x31, 0xd8, 0x8e, 0xee, 0x37, 0x9d, + 0xbf, 0xc7, 0xf2, 0x35, 0xb7, 0xac, 0x2e, 0xc3, 0xa5, 0xc8, 0xe2, 0x59, 0x00, 0x68, 0x41, 0x9e, + 0x0c, 0xed, 0x1b, 0xf6, 0x84, 0xe6, 0x39, 0xc0, 0x7a, 0x12, 0x03, 0xac, 0x47, 0xba, 0x02, 0x97, + 0x63, 0x26, 0x62, 0x52, 0xfc, 0x26, 0x4d, 0xc5, 0x98, 0xbc, 0x93, 0xaa, 0x0d, 0xf2, 0x92, 0xb7, + 0xc2, 0x5b, 0x1f, 0xdb, 0x6c, 0xfc, 0x2a, 0xfc, 0x64, 0x05, 0x32, 0x41, 0x3c, 0x16, 0xc8, 0x9c, + 0x11, 0x8e, 0x94, 0x3e, 0x77, 0x93, 0x77, 0x3a, 0xd4, 0xe4, 0xdd, 0xeb, 0x3b, 0xd9, 0x4c, 0x34, + 0x59, 0x19, 0xa8, 0x92, 0x21, 0x6e, 0xf6, 0x71, 0xc4, 0xcd, 0x66, 0xa3, 0xdd, 0xe3, 0x81, 0x8c, + 0xff, 0x07, 0x1c, 0x8d, 0x19, 0x79, 0x6c, 0x3b, 0x57, 0xfa, 0x00, 0x44, 0xea, 0x01, 0x93, 0x37, + 0x58, 0x43, 0x26, 0x95, 0x08, 0x9b, 0x94, 0xf4, 0x32, 0x5c, 0x89, 0xe5, 0xcd, 0xa6, 0x3e, 0xa4, + 0x72, 0x6d, 0x61, 0x56, 0x77, 0x2b, 0x8e, 0xe6, 0xd8, 0xe3, 0xce, 0xcc, 0x06, 0x83, 0x33, 0x53, + 0x90, 0x3b, 0xf3, 0x13, 0xba, 0xaa, 0x30, 0x6b, 0xbf, 0x40, 0x4c, 0xf7, 0xdc, 0x96, 0x12, 0x3d, + 0x97, 0x2f, 0x45, 0xcd, 0x7b, 0x9f, 0x0c, 0xcb, 0x14, 0x4b, 0xfa, 0x85, 0x00, 0x99, 0x00, 0x18, + 0x5d, 0x85, 0x39, 0xbf, 0x8a, 0xf4, 0x52, 0x49, 0x1f, 0x40, 0xf6, 0xc1, 0x31, 0x1d, 0xad, 0xcd, + 0x6e, 0x3b, 0xe9, 0x07, 0xa9, 0x04, 0x7a, 0x36, 0xa6, 0x59, 0x46, 0x52, 0x76, 0xff, 0xa3, 0x37, + 0x21, 0xd5, 0x33, 0x74, 0x7a, 0x9f, 0x9d, 0x8d, 0x73, 0x32, 0x77, 0xba, 0xc2, 0xbe, 0xa1, 0x3b, + 0xb2, 0x8b, 0x29, 0xdd, 0x81, 0x14, 0xf9, 0xe2, 0x8b, 0xac, 0x39, 0x48, 0x6f, 0x1c, 0xd6, 0xcb, + 0x4a, 0x4e, 0x40, 0x00, 0xd3, 0x95, 0xda, 0xee, 0x66, 0x59, 0xc9, 0x25, 0xa4, 0xab, 0xbe, 0x0a, + 0xe2, 0x0a, 0xda, 0x26, 0xdd, 0x9a, 0x41, 0xa5, 0x6c, 0x39, 0xb6, 0x94, 0xbd, 0x1e, 0x39, 0xb8, + 0x46, 0x14, 0xb1, 0x7f, 0x11, 0xe0, 0x62, 0x2c, 0x1e, 0x7a, 0x3b, 0x58, 0xbe, 0xde, 0x1c, 0xc9, + 0x37, 0x58, 0xb8, 0x7e, 0x5f, 0xa0, 0x85, 0xeb, 0xbb, 0x5c, 0xe1, 0x7a, 0x67, 0x2c, 0x1e, 0xc1, + 0x92, 0xb5, 0x34, 0xa0, 0x62, 0x55, 0xea, 0xc5, 0xad, 0xb2, 0xba, 0x5f, 0xa3, 0xbf, 0x7e, 0xc5, + 0xba, 0x04, 0x39, 0x52, 0x81, 0xb2, 0xd7, 0x72, 0x4a, 0xbd, 0xc8, 0xbd, 0x8c, 0x5b, 0x02, 0xc4, + 0xf4, 0x19, 0x7c, 0x8e, 0xf9, 0x53, 0x01, 0x16, 0x39, 0x30, 0x53, 0x6f, 0xe0, 0x6a, 0x42, 0xe0, + 0xae, 0x26, 0xd6, 0x60, 0x89, 0x24, 0xb8, 0xd4, 0x92, 0x6d, 0xb5, 0x8b, 0x2d, 0x95, 0x8c, 0x30, + 0x5b, 0xba, 0xd0, 0xd1, 0x9e, 0xb1, 0x16, 0xd5, 0x1e, 0xb6, 0x08, 0xe3, 0x17, 0xd4, 0x88, 0x59, + 0xff, 0x41, 0x02, 0x66, 0x2b, 0x4d, 0x6c, 0x38, 0x64, 0x6f, 0x0e, 0x60, 0x81, 0x7b, 0xd3, 0x89, + 0x56, 0x87, 0x3c, 0xf7, 0x74, 0x17, 0x2a, 0x5e, 0x1f, 0xf9, 0x20, 0x54, 0x9a, 0x42, 0x46, 0xe0, + 0x6d, 0x2a, 0xd7, 0x9d, 0xba, 0x1d, 0x4b, 0x1d, 0x63, 0xb6, 0xe2, 0x6b, 0x63, 0x60, 0xfa, 0xf3, + 0xbd, 0x0b, 0x69, 0xf7, 0x75, 0x22, 0xca, 0x73, 0x4f, 0x28, 0x03, 0x0f, 0x18, 0xc5, 0xcb, 0x31, + 0x23, 0x1e, 0xfd, 0xfa, 0x1f, 0x66, 0x01, 0xfa, 0x2d, 0x10, 0xa4, 0xc0, 0x7c, 0xf0, 0xb5, 0x0e, + 0x5a, 0x19, 0xf1, 0xbc, 0x4c, 0x5c, 0x1d, 0x8c, 0xe0, 0xcb, 0xa8, 0xc0, 0x7c, 0xf0, 0x2e, 0x97, + 0x67, 0x1a, 0x73, 0xa7, 0xcc, 0x33, 0x8d, 0xbd, 0x06, 0x9e, 0x42, 0x0e, 0x5c, 0x1a, 0x70, 0x8b, + 0x87, 0xee, 0x8c, 0x7f, 0xe7, 0x29, 0xbe, 0x3e, 0xc1, 0xb5, 0xa0, 0x34, 0x85, 0x3e, 0x83, 0xcb, + 0x03, 0x2f, 0xb0, 0xd0, 0x1b, 0x93, 0x5c, 0xb1, 0x89, 0x77, 0xc7, 0xc4, 0xf6, 0xe7, 0xfe, 0x1c, + 0xc4, 0xc1, 0xdd, 0x71, 0x74, 0x77, 0xa2, 0xab, 0x1c, 0xb1, 0x30, 0x59, 0xd3, 0x5d, 0x9a, 0x42, + 0x7b, 0x90, 0x09, 0xb4, 0x8f, 0xd1, 0xb5, 0x81, 0x7d, 0x65, 0x3a, 0xc1, 0xca, 0x88, 0xbe, 0x33, + 0xe5, 0x18, 0x68, 0x6d, 0xf2, 0x1c, 0xa3, 0xbd, 0x5a, 0x9e, 0x63, 0x4c, 0x4f, 0x34, 0xbc, 0x3d, + 0xa1, 0xb8, 0x3f, 0x68, 0x7b, 0xe2, 0x0f, 0x8f, 0x41, 0xdb, 0x33, 0xe0, 0x30, 0x91, 0xa6, 0xd0, + 0x21, 0x64, 0xf9, 0xb6, 0x0e, 0xba, 0x3e, 0xb2, 0x45, 0x25, 0x4a, 0xc3, 0x50, 0x82, 0xac, 0xf9, + 0x2e, 0x02, 0xcf, 0x3a, 0xb6, 0xa3, 0xc1, 0xb3, 0x1e, 0xd0, 0x84, 0x98, 0x22, 0x71, 0x90, 0xab, + 0xd2, 0xf9, 0x38, 0x18, 0xd7, 0xa0, 0xe0, 0xe3, 0x60, 0x6c, 0x89, 0x2f, 0x4d, 0xad, 0x7f, 0x91, + 0x86, 0x94, 0x1b, 0xbc, 0x3f, 0x84, 0x97, 0x42, 0x15, 0x10, 0x92, 0x46, 0xd7, 0x86, 0xe2, 0x2b, + 0x43, 0x71, 0x7c, 0xf1, 0x8f, 0xe0, 0x42, 0xa4, 0xb6, 0x41, 0x37, 0xc2, 0xb4, 0x71, 0x35, 0x96, + 0x78, 0x73, 0x04, 0x56, 0x78, 0x0e, 0x3e, 0xc6, 0xdc, 0x18, 0x27, 0xf1, 0x8e, 0xce, 0x31, 0x28, + 0xae, 0x9c, 0xd0, 0x33, 0x34, 0x1c, 0x51, 0x5e, 0x8d, 0xca, 0x18, 0x1b, 0x4b, 0x6e, 0x8d, 0xc4, + 0xf3, 0x67, 0xc2, 0xfe, 0x21, 0x1e, 0xc8, 0x1a, 0x51, 0x44, 0xd0, 0xd8, 0x84, 0x55, 0x7c, 0x75, + 0x14, 0x5a, 0x78, 0x41, 0x61, 0x1f, 0x8c, 0x63, 0x10, 0xe7, 0x7d, 0xb7, 0x46, 0xe2, 0x05, 0xa3, + 0x48, 0x20, 0xfd, 0xe0, 0xa3, 0x48, 0x34, 0x5d, 0xe1, 0xa3, 0x48, 0x4c, 0xde, 0x22, 0x4d, 0x6d, + 0xcc, 0x7d, 0x30, 0xc3, 0x70, 0x8e, 0xa6, 0xdd, 0x4e, 0xe6, 0xfd, 0xff, 0x06, 0x00, 0x00, 0xff, + 0xff, 0xad, 0xaf, 0xe0, 0x83, 0x8d, 0x33, 0x00, 0x00, +} diff --git a/vendor/github.com/kubernetes-csi/drivers/Gopkg.lock b/vendor/github.com/kubernetes-csi/drivers/Gopkg.lock index ce164deb5..5573b3844 100644 --- a/vendor/github.com/kubernetes-csi/drivers/Gopkg.lock +++ b/vendor/github.com/kubernetes-csi/drivers/Gopkg.lock @@ -3,303 +3,245 @@ [[projects]] branch = "master" - digest = "1:c0bec5f9b98d0bc872ff5e834fac186b807b656683bd29cb82fb207a1513fabb" name = "github.com/beorn7/perks" packages = ["quantile"] - pruneopts = "" revision = "3a771d992973f24aa725d07868b467d1ddfceafb" [[projects]] - digest = "1:93147eb1d6f08d39f2c0efe3d29ee043bda72be7a8b3b367eb08c72c18524638" name = "github.com/container-storage-interface/spec" packages = ["lib/go/csi"] - pruneopts = "" revision = "ed0bb0e1557548aa028307f48728767cfe8f6345" version = "v1.0.0" [[projects]] - digest = "1:0deddd908b6b4b768cfc272c16ee61e7088a60f7fe2f06c547bd3d8e1f8b8e77" name = "github.com/davecgh/go-spew" packages = ["spew"] - pruneopts = "" revision = "8991bc29aa16c548c550c7ff78260e27b9ab7c73" version = "v1.1.1" [[projects]] - digest = "1:2c87cf00343faf42f84cbda2e475281542497a250a85c5cfa50747f55028e2d8" name = "github.com/docker/distribution" packages = [ "digestset", - "reference", + "reference" ] - pruneopts = "" revision = "5db89f0ca68677abc5eefce8f2a0a772c98ba52d" [[projects]] - digest = "1:6e73003ecd35f4487a5e88270d3ca0a81bc80dc88053ac7e4dcfec5fba30d918" name = "github.com/gogo/protobuf" packages = [ "proto", - "sortkeys", + "sortkeys" ] - pruneopts = "" revision = "636bf0302bc95575d69441b25a2603156ffdddf1" version = "v1.1.1" [[projects]] branch = "master" - digest = "1:107b233e45174dbab5b1324201d092ea9448e58243ab9f039e4c0f332e121e3a" name = "github.com/golang/glog" packages = ["."] - pruneopts = "" revision = "23def4e6c14b4da8ac2ed8007337bc5eb5007998" [[projects]] branch = "master" - digest = "1:aa2251148505e561bfa8cd6b69a319b37761da57b0b25529c4af08389559e3b9" name = "github.com/golang/groupcache" packages = ["lru"] - pruneopts = "" revision = "c65c006176ff7ff98bb916961c7abbc6b0afc0aa" [[projects]] - digest = "1:3dd078fda7500c341bc26cfbc6c6a34614f295a2457149fc1045cab767cbcf18" name = "github.com/golang/protobuf" packages = [ + "descriptor", "proto", "protoc-gen-go/descriptor", "ptypes", "ptypes/any", "ptypes/duration", "ptypes/timestamp", - "ptypes/wrappers", + "ptypes/wrappers" ] - pruneopts = "" revision = "aa810b61a9c79d51363740d207bb46cf8e620ed5" version = "v1.2.0" [[projects]] branch = "master" - digest = "1:1e5b1e14524ed08301977b7b8e10c719ed853cbf3f24ecb66fae783a46f207a6" name = "github.com/google/btree" packages = ["."] - pruneopts = "" revision = "4030bb1f1f0c35b30ca7009e9ebd06849dd45306" [[projects]] branch = "master" - digest = "1:754f77e9c839b24778a4b64422236d38515301d2baeb63113aa3edc42e6af692" name = "github.com/google/gofuzz" packages = ["."] - pruneopts = "" revision = "24818f796faf91cd76ec7bddd72458fbced7a6c1" [[projects]] - digest = "1:5247b135b5492aa232a731acdcb52b08f32b874cb398f21ab460396eadbe866b" name = "github.com/google/uuid" packages = ["."] - pruneopts = "" revision = "d460ce9f8df2e77fb1ba55ca87fafed96c607494" version = "v1.0.0" [[projects]] - digest = "1:16b2837c8b3cf045fa2cdc82af0cf78b19582701394484ae76b2c3bc3c99ad73" name = "github.com/googleapis/gnostic" packages = [ "OpenAPIv2", "compiler", - "extensions", + "extensions" ] - pruneopts = "" revision = "7c663266750e7d82587642f65e60bc4083f1f84e" version = "v0.2.0" [[projects]] branch = "master" - digest = "1:5e345eb75d8bfb2b91cfbfe02a82a79c0b2ea55cf06c5a4d180a9321f36973b4" name = "github.com/gregjones/httpcache" packages = [ ".", - "diskcache", + "diskcache" ] - pruneopts = "" revision = "c63ab54fda8f77302f8d414e19933f2b6026a089" [[projects]] - digest = "1:3313a63031ae281e5f6fd7b0bbca733dfa04d2429df86519e3b4d4c016ccb836" name = "github.com/hashicorp/golang-lru" packages = [ ".", - "simplelru", + "simplelru" ] - pruneopts = "" revision = "20f1fb78b0740ba8c3cb143a61e86ba5c8669768" version = "v0.5.0" [[projects]] - digest = "1:870d441fe217b8e689d7949fef6e43efbc787e50f200cb1e70dbca9204a1d6be" name = "github.com/inconshreveable/mousetrap" packages = ["."] - pruneopts = "" revision = "76626ae9c91c4f2a10f34cad8ce83ea42c93bb75" version = "v1.0" [[projects]] - digest = "1:b79fc583e4dc7055ed86742e22164ac41bf8c0940722dbcb600f1a3ace1a8cb5" name = "github.com/json-iterator/go" packages = ["."] - pruneopts = "" revision = "1624edc4454b8682399def8740d46db5e4362ba4" version = "v1.1.5" [[projects]] - digest = "1:63722a4b1e1717be7b98fc686e0b30d5e7f734b9e93d7dee86293b6deab7ea28" + name = "github.com/kubernetes-csi/csi-lib-utils" + packages = ["protosanitizer"] + revision = "5853414e1d4771302e0df10d1870c444c2135799" + version = "v0.2.0" + +[[projects]] name = "github.com/matttproud/golang_protobuf_extensions" packages = ["pbutil"] - pruneopts = "" revision = "c12348ce28de40eed0136aa2b644d0ee0650e56c" version = "v1.0.1" [[projects]] - digest = "1:0c0ff2a89c1bb0d01887e1dac043ad7efbf3ec77482ef058ac423d13497e16fd" name = "github.com/modern-go/concurrent" packages = ["."] - pruneopts = "" revision = "bacd9c7ef1dd9b15be4a9909b8ac7a4e313eec94" version = "1.0.3" [[projects]] - digest = "1:e32bdbdb7c377a07a9a46378290059822efdce5c8d96fe71940d87cb4f918855" name = "github.com/modern-go/reflect2" packages = ["."] - pruneopts = "" revision = "4b7aa43c6742a2c18fdef89dd197aaae7dac7ccd" version = "1.0.1" [[projects]] - digest = "1:5d9b668b0b4581a978f07e7d2e3314af18eb27b3fb5d19b70185b7c575723d11" name = "github.com/opencontainers/go-digest" packages = ["."] - pruneopts = "" revision = "279bed98673dd5bef374d3b6e4b09e2af76183bf" version = "v1.0.0-rc1" [[projects]] - digest = "1:a5484d4fa43127138ae6e7b2299a6a52ae006c7f803d98d717f60abf3e97192e" name = "github.com/pborman/uuid" packages = ["."] - pruneopts = "" revision = "adf5a7427709b9deb95d29d3fa8a2bf9cfd388f1" version = "v1.2" [[projects]] branch = "master" - digest = "1:c24598ffeadd2762552269271b3b1510df2d83ee6696c1e543a0ff653af494bc" name = "github.com/petar/GoLLRB" packages = ["llrb"] - pruneopts = "" revision = "53be0d36a84c2a886ca057d34b6aa4468df9ccb4" [[projects]] - digest = "1:b46305723171710475f2dd37547edd57b67b9de9f2a6267cafdd98331fd6897f" name = "github.com/peterbourgon/diskv" packages = ["."] - pruneopts = "" revision = "5f041e8faa004a95c88a202771f4cc3e991971e6" version = "v2.0.1" [[projects]] - digest = "1:256484dbbcd271f9ecebc6795b2df8cad4c458dd0f5fd82a8c2fa0c29f233411" name = "github.com/pmezard/go-difflib" packages = ["difflib"] - pruneopts = "" revision = "792786c7400a136282c1664665ae0a8db921c6c2" version = "v1.0.0" [[projects]] - digest = "1:8b2082f564fe20dbb43a621ee0d57ae2777656ab14111d100d3d92d1b5b958b9" name = "github.com/prometheus/client_golang" packages = [ "prometheus", - "prometheus/internal", + "prometheus/internal" ] - pruneopts = "" revision = "abad2d1bd44235a26707c172eab6bca5bf2dbad3" version = "v0.9.1" [[projects]] branch = "master" - digest = "1:185cf55b1f44a1bf243558901c3f06efa5c64ba62cfdcbb1bf7bbe8c3fb68561" name = "github.com/prometheus/client_model" packages = ["go"] - pruneopts = "" revision = "5c3871d89910bfb32f5fcab2aa4b9ec68e65a99f" [[projects]] branch = "master" - digest = "1:d522feb599bd02a4b76d3ad20b91668c87028a6b5fd19a1bed994e26f6cd3c6d" name = "github.com/prometheus/common" packages = [ "expfmt", "internal/bitbucket.org/ww/goautoneg", - "model", + "model" ] - pruneopts = "" revision = "41aa239b4cce3c56ab88fc366ae8b0a6423fa239" [[projects]] branch = "master" - digest = "1:1f62ed2c173c42c1edad2e94e127318ea11b0d28c62590c82a8d2d3cde189afe" name = "github.com/prometheus/procfs" packages = [ ".", "internal/util", "nfs", - "xfs", + "xfs" ] - pruneopts = "" revision = "185b4288413d2a0dd0806f78c90dde719829e5ae" [[projects]] - digest = "1:a1403cc8a94b8d7956ee5e9694badef0e7b051af289caad1cf668331e3ffa4f6" name = "github.com/spf13/cobra" packages = ["."] - pruneopts = "" revision = "ef82de70bb3f60c65fb8eebacbb2d122ef517385" version = "v0.0.3" [[projects]] - digest = "1:cbaf13cdbfef0e4734ed8a7504f57fe893d471d62a35b982bf6fb3f036449a66" name = "github.com/spf13/pflag" packages = ["."] - pruneopts = "" revision = "298182f68c66c05229eb03ac171abe6e309ee79a" version = "v1.0.3" [[projects]] - digest = "1:c587772fb8ad29ad4db67575dad25ba17a51f072ff18a22b4f0257a4d9c24f75" name = "github.com/stretchr/testify" packages = ["assert"] - pruneopts = "" revision = "f35b8ab0b5a2cef36673838d662e249dd9c94686" version = "v1.2.2" [[projects]] branch = "master" - digest = "1:f7be435e0ca22e2cd62b2d2542081a231685837170a87a3662abb7cdf9f3f1cd" name = "golang.org/x/crypto" packages = [ "ed25519", "ed25519/internal/edwards25519", "pbkdf2", - "ssh/terminal", + "ssh/terminal" ] - pruneopts = "" revision = "3d3f9f413869b949e48070b5bc593aa22cc2b8f2" [[projects]] branch = "master" - digest = "1:fbc2896199a45d32325e24ceb56624c7db49f9cfb068f739ee53339a8fb183b3" name = "golang.org/x/net" packages = [ "context", @@ -309,35 +251,29 @@ "http2/hpack", "idna", "internal/timeseries", - "trace", + "trace" ] - pruneopts = "" revision = "88d92db4c548972d942ac2a3531a8a9a34c82ca6" [[projects]] branch = "master" - digest = "1:51d339a1d79f5c617fba14414aefb7dfd184b8ba0ddbb9f95251430b67c8aab8" name = "golang.org/x/oauth2" packages = [ ".", - "internal", + "internal" ] - pruneopts = "" revision = "f42d05182288abf10faef86d16c0d07b8d40ea2d" [[projects]] branch = "master" - digest = "1:3f5c191d90f1cf365ff1f88e4b08eb766ee6ade1cb2e4efd7c316cf7e015ac17" name = "golang.org/x/sys" packages = [ "unix", - "windows", + "windows" ] - pruneopts = "" revision = "66b7b1311ac80bbafcd2daeef9a5e6e2cd1e2399" [[projects]] - digest = "1:5acd3512b047305d49e8763eef7ba423901e85d5dd2fd1e71778a0ea8de10bd4" name = "golang.org/x/text" packages = [ "collate", @@ -353,22 +289,18 @@ "unicode/bidi", "unicode/cldr", "unicode/norm", - "unicode/rangetable", + "unicode/rangetable" ] - pruneopts = "" revision = "f21a4dfb5e38f5895301dc265a8def02365cc3d0" version = "v0.3.0" [[projects]] branch = "master" - digest = "1:14cb1d4240bcbbf1386ae763957e04e2765ec4e4ce7bb2769d05fa6faccd774e" name = "golang.org/x/time" packages = ["rate"] - pruneopts = "" revision = "85acf8d2951cb2a3bde7632f9ff273ef0379bcbd" [[projects]] - digest = "1:77d3cff3a451d50be4b52db9c7766c0d8570ba47593f0c9dc72173adb208e788" name = "google.golang.org/appengine" packages = [ "internal", @@ -377,22 +309,18 @@ "internal/log", "internal/remote_api", "internal/urlfetch", - "urlfetch", + "urlfetch" ] - pruneopts = "" revision = "4a4468ece617fc8205e99368fa2200e9d1fad421" version = "v1.3.0" [[projects]] branch = "master" - digest = "1:212d4045ef941b209a154001718705dc723bd77e0200fcea36d15ec87ed49dec" name = "google.golang.org/genproto" packages = ["googleapis/rpc/status"] - pruneopts = "" revision = "b5d43981345bdb2c233eb4bf3277847b48c6fdc6" [[projects]] - digest = "1:1293087271e314cfa2b3decededba2ecba0ff327e7b7809e00f73f616449191c" name = "google.golang.org/grpc" packages = [ ".", @@ -420,43 +348,35 @@ "resolver/passthrough", "stats", "status", - "tap", + "tap" ] - pruneopts = "" revision = "2e463a05d100327ca47ac218281906921038fd95" version = "v1.16.0" [[projects]] - digest = "1:75fb3fcfc73a8c723efde7777b40e8e8ff9babf30d8c56160d01beffea8a95a6" name = "gopkg.in/inf.v0" packages = ["."] - pruneopts = "" revision = "d2d2541c53f18d2a059457998ce2876cc8e67cbf" version = "v0.9.1" [[projects]] - digest = "1:ddc5fa8f9159bea7d1ce58143e6d8fd8054018f7bc3709940aa7f7bc92855ed9" name = "gopkg.in/square/go-jose.v2" packages = [ ".", "cipher", "json", - "jwt", + "jwt" ] - pruneopts = "" revision = "ef984e69dd356202fd4e4910d4d9c24468bdf0b8" version = "v2.1.9" [[projects]] - digest = "1:f0620375dd1f6251d9973b5f2596228cc8042e887cd7f827e4220bc1ce8c30e2" name = "gopkg.in/yaml.v2" packages = ["."] - pruneopts = "" revision = "5420a8b6744d3b0345ab293f6fcba19c978f1183" version = "v2.2.1" [[projects]] - digest = "1:5f076f6f9c3ac4f2b99d79dc7974eabd3f51be35254aa0d8c4cf920fdb9c7ff8" name = "k8s.io/api" packages = [ "admissionregistration/v1alpha1", @@ -489,23 +409,19 @@ "settings/v1alpha1", "storage/v1", "storage/v1alpha1", - "storage/v1beta1", + "storage/v1beta1" ] - pruneopts = "" revision = "fd83cbc87e7632ccd8bbab63d2b673d4e0c631cc" version = "kubernetes-1.12.0" [[projects]] branch = "master" - digest = "1:570ce571245b39b4fc8a1a5552079e00b1be3aa2c3755b7be76d3eb7d7b8c0ad" name = "k8s.io/apiextensions-apiserver" packages = ["pkg/features"] - pruneopts = "" revision = "2c43ee60e25b6e421b37db431bad60e7416a6fd4" [[projects]] branch = "master" - digest = "1:cebe5f04ee0890c78c57a957e9d69892cebe60ccda4d1001d9f759a70b1e1bd1" name = "k8s.io/apimachinery" packages = [ "pkg/api/equality", @@ -553,27 +469,23 @@ "pkg/version", "pkg/watch", "third_party/forked/golang/json", - "third_party/forked/golang/reflect", + "third_party/forked/golang/reflect" ] - pruneopts = "" revision = "2a7c9300402896b3c073f2f47df85527c94f83a0" [[projects]] - digest = "1:f129d76e4103ddcd176f1a07051eb1826922e54f489032bef8283f7f9c32c4f0" name = "k8s.io/apiserver" packages = [ "pkg/authentication/authenticator", "pkg/authentication/serviceaccount", "pkg/authentication/user", "pkg/features", - "pkg/util/feature", + "pkg/util/feature" ] - pruneopts = "" revision = "e85ad7b666fef0476185731329f4cff1536efff8" version = "kubernetes-1.12.0" [[projects]] - digest = "1:5d4153d12c3aed2c90a94262520d2498d5afa4d692554af55e65a7c5af0bc399" name = "k8s.io/client-go" packages = [ "discovery", @@ -701,43 +613,35 @@ "util/connrotation", "util/flowcontrol", "util/integer", - "util/retry", + "util/retry" ] - pruneopts = "" revision = "1638f8970cefaa404ff3a62950f88b08292b2696" version = "v9.0.0" [[projects]] branch = "master" - digest = "1:ae938748bf72ccd682e9009b6a3dcfedb695ace9cca3ef2ea9f8fd31411b3a44" name = "k8s.io/csi-api" packages = [ "pkg/apis/csi/v1alpha1", "pkg/client/clientset/versioned", "pkg/client/clientset/versioned/scheme", - "pkg/client/clientset/versioned/typed/csi/v1alpha1", + "pkg/client/clientset/versioned/typed/csi/v1alpha1" ] - pruneopts = "" revision = "3ace7a84ffef58a17488dcefe2432bbeb74a5c7b" [[projects]] - digest = "1:4f5eb833037cc0ba0bf8fe9cae6be9df62c19dd1c869415275c708daa8ccfda5" name = "k8s.io/klog" packages = ["."] - pruneopts = "" revision = "a5bc97fbc634d635061f3146511332c7e313a55a" version = "v0.1.0" [[projects]] branch = "master" - digest = "1:d3fdd2e6dafedf0cd13d327cb62c8675d1f309d5587245e3ad35b083589675af" name = "k8s.io/kube-openapi" packages = ["pkg/util/proto"] - pruneopts = "" revision = "c59034cc13d587f5ef4e85ca0ade0c1866ae8e1d" [[projects]] - digest = "1:6061aa42761235df375f20fa4a1aa6d1845cba3687575f3adb2ef3f3bc540af5" name = "k8s.io/kubernetes" packages = [ "pkg/api/legacyscheme", @@ -785,49 +689,29 @@ "pkg/volume/util/fs", "pkg/volume/util/recyclerclient", "pkg/volume/util/types", - "pkg/volume/util/volumepathhandler", + "pkg/volume/util/volumepathhandler" ] - pruneopts = "" revision = "17c77c7898218073f14c8d573582e8d2313dc740" version = "v1.12.2" [[projects]] branch = "master" - digest = "1:1aa5e3a611782785b985a64a27254bf93e9a23b24a5b9f3c4dfc49fb6e07fa39" name = "k8s.io/utils" packages = [ "exec", - "pointer", + "pointer" ] - pruneopts = "" revision = "1bd4f387aa67de2eec07a362c10bc8bd7fe74237" [[projects]] - digest = "1:321081b4a44256715f2b68411d8eda9a17f17ebfe6f0cc61d2cc52d11c08acfa" name = "sigs.k8s.io/yaml" packages = ["."] - pruneopts = "" revision = "fd68e9863619f6ec2fdd8625fe1f02e7c877e480" version = "v1.1.0" [solve-meta] analyzer-name = "dep" analyzer-version = 1 - input-imports = [ - "github.com/container-storage-interface/spec/lib/go/csi", - "github.com/golang/glog", - "github.com/golang/protobuf/ptypes", - "github.com/golang/protobuf/ptypes/timestamp", - "github.com/pborman/uuid", - "github.com/spf13/cobra", - "github.com/stretchr/testify/assert", - "golang.org/x/net/context", - "google.golang.org/grpc", - "google.golang.org/grpc/codes", - "google.golang.org/grpc/status", - "k8s.io/kubernetes/pkg/util/mount", - "k8s.io/kubernetes/pkg/volume/util", - "k8s.io/utils/exec", - ] + inputs-digest = "def5c710353323b5914b2b6c19a4ffe3a328764a00ae74f8bca45931f1b2e3ca" solver-name = "gps-cdcl" solver-version = 1 diff --git a/vendor/github.com/kubernetes-csi/drivers/Gopkg.toml b/vendor/github.com/kubernetes-csi/drivers/Gopkg.toml index b9fb06153..2e27746a1 100644 --- a/vendor/github.com/kubernetes-csi/drivers/Gopkg.toml +++ b/vendor/github.com/kubernetes-csi/drivers/Gopkg.toml @@ -20,6 +20,9 @@ # name = "github.com/x/y" # version = "2.4.0" +[prune] + go-tests = true + unused-packages = true [[constraint]] name = "github.com/container-storage-interface/spec" @@ -76,3 +79,7 @@ [[override]] name = "gopkg.in/square/go-jose.v2" version = "2.1.7" + +[[constraint]] + name = "github.com/kubernetes-csi/csi-lib-utils" + version = "0.2.0" diff --git a/vendor/github.com/kubernetes-csi/drivers/SECURITY_CONTACTS b/vendor/github.com/kubernetes-csi/drivers/SECURITY_CONTACTS new file mode 100644 index 000000000..585f480fe --- /dev/null +++ b/vendor/github.com/kubernetes-csi/drivers/SECURITY_CONTACTS @@ -0,0 +1,13 @@ +# Defined below are the security contacts for this repo. +# +# They are the contact point for the Product Security Team to reach out +# to for triaging and handling of incoming issues. +# +# The below names agree to abide by the +# [Embargo Policy](https://github.com/kubernetes/sig-release/blob/master/security-release-process-documentation/security-release-process.md#embargo-policy) +# and will be removed and replaced if they violate that agreement. +# +# DO NOT REPORT SECURITY VULNERABILITIES DIRECTLY TO THESE NAMES, FOLLOW THE +# INSTRUCTIONS AT https://kubernetes.io/security/ + +saad-ali diff --git a/vendor/github.com/kubernetes-csi/drivers/deploy/hostpath/README.md b/vendor/github.com/kubernetes-csi/drivers/deploy/hostpath/README.md new file mode 100644 index 000000000..50d0df8ab --- /dev/null +++ b/vendor/github.com/kubernetes-csi/drivers/deploy/hostpath/README.md @@ -0,0 +1,6 @@ +The .yaml files in this directory depend on the RBAC files that were +released together the CSI sidecar containers. Check the repos and/or +release notes for the CSI sidecar containers for details. + +https://kubernetes-csi.github.io/docs/ has an example that puts all +pieces together. diff --git a/vendor/github.com/kubernetes-csi/drivers/deploy/hostpath/csi-hostpath-snpshotter.yaml b/vendor/github.com/kubernetes-csi/drivers/deploy/hostpath/csi-hostpath-snapshotter.yaml similarity index 100% rename from vendor/github.com/kubernetes-csi/drivers/deploy/hostpath/csi-hostpath-snpshotter.yaml rename to vendor/github.com/kubernetes-csi/drivers/deploy/hostpath/csi-hostpath-snapshotter.yaml diff --git a/vendor/github.com/kubernetes-csi/drivers/deploy/hostpath/csi-hostpathplugin.yaml b/vendor/github.com/kubernetes-csi/drivers/deploy/hostpath/csi-hostpathplugin.yaml index 237b759a1..0ac5fb770 100644 --- a/vendor/github.com/kubernetes-csi/drivers/deploy/hostpath/csi-hostpathplugin.yaml +++ b/vendor/github.com/kubernetes-csi/drivers/deploy/hostpath/csi-hostpathplugin.yaml @@ -11,7 +11,7 @@ spec: labels: app: csi-hostpathplugin spec: - serviceAccountName: csi-node-sa + serviceAccountName: csi-driver-registrar hostNetwork: true containers: - name: driver-registrar diff --git a/vendor/github.com/kubernetes-csi/drivers/pkg/csi-common/utils.go b/vendor/github.com/kubernetes-csi/drivers/pkg/csi-common/utils.go index 382e81cdc..b39132e0d 100644 --- a/vendor/github.com/kubernetes-csi/drivers/pkg/csi-common/utils.go +++ b/vendor/github.com/kubernetes-csi/drivers/pkg/csi-common/utils.go @@ -22,6 +22,7 @@ import ( "github.com/container-storage-interface/spec/lib/go/csi" "github.com/golang/glog" + "github.com/kubernetes-csi/csi-lib-utils/protosanitizer" "golang.org/x/net/context" "google.golang.org/grpc" ) @@ -94,12 +95,12 @@ func RunControllerandNodePublishServer(endpoint string, d *CSIDriver, cs csi.Con func logGRPC(ctx context.Context, req interface{}, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (interface{}, error) { glog.V(3).Infof("GRPC call: %s", info.FullMethod) - glog.V(5).Infof("GRPC request: %+v", req) + glog.V(5).Infof("GRPC request: %s", protosanitizer.StripSecrets(req)) resp, err := handler(ctx, req) if err != nil { glog.Errorf("GRPC error: %v", err) } else { - glog.V(5).Infof("GRPC response: %+v", resp) + glog.V(5).Infof("GRPC response: %s", protosanitizer.StripSecrets(resp)) } return resp, err } diff --git a/vendor/github.com/kubernetes-csi/drivers/pkg/hostpath/controllerserver.go b/vendor/github.com/kubernetes-csi/drivers/pkg/hostpath/controllerserver.go index 2bd8d7024..576cb1e24 100644 --- a/vendor/github.com/kubernetes-csi/drivers/pkg/hostpath/controllerserver.go +++ b/vendor/github.com/kubernetes-csi/drivers/pkg/hostpath/controllerserver.go @@ -57,9 +57,21 @@ func (cs *controllerServer) CreateVolume(ctx context.Context, req *csi.CreateVol if len(req.GetName()) == 0 { return nil, status.Error(codes.InvalidArgument, "Name missing in request") } - if req.GetVolumeCapabilities() == nil { + caps := req.GetVolumeCapabilities() + if caps == nil { return nil, status.Error(codes.InvalidArgument, "Volume Capabilities missing in request") } + for _, cap := range caps { + if cap.GetBlock() != nil { + return nil, status.Error(codes.Unimplemented, "Block Volume not supported") + } + } + // A real driver would also need to check that the other + // fields in VolumeCapabilities are sane. The check above is + // just enough to pass the "[Testpattern: Dynamic PV (block + // volmode)] volumeMode should fail in binding dynamic + // provisioned PV to PVC" storage E2E test. + // Need to check for already existing volume name, and if found // check for the requested capacity and already allocated capacity if exVol, err := getVolumeByName(req.GetName()); err == nil { diff --git a/vendor/github.com/petar/GoLLRB/.gitignore b/vendor/github.com/petar/GoLLRB/.gitignore new file mode 100644 index 000000000..e333b2dbf --- /dev/null +++ b/vendor/github.com/petar/GoLLRB/.gitignore @@ -0,0 +1,23 @@ +syntax:glob +*.[568ao] +*.ao +*.so +*.pyc +*.swp +*.swo +._* +.nfs.* +[568a].out +*~ +*.orig +*.pb.go +core +_obj +_test +src/pkg/Make.deps +_testmain.go + +syntax:regexp +^pkg/ +^src/cmd/(.*)/6?\1$ +^.*/core.[0-9]*$ diff --git a/vendor/github.com/petar/GoLLRB/AUTHORS b/vendor/github.com/petar/GoLLRB/AUTHORS new file mode 100644 index 000000000..78d1de495 --- /dev/null +++ b/vendor/github.com/petar/GoLLRB/AUTHORS @@ -0,0 +1,4 @@ +Petar Maymounkov +Vadim Vygonets +Ian Smith +Martin Bruse diff --git a/vendor/github.com/petar/GoLLRB/LICENSE b/vendor/github.com/petar/GoLLRB/LICENSE new file mode 100644 index 000000000..b75312c78 --- /dev/null +++ b/vendor/github.com/petar/GoLLRB/LICENSE @@ -0,0 +1,27 @@ +Copyright (c) 2010, Petar Maymounkov +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +(*) Redistributions of source code must retain the above copyright notice, this list +of conditions and the following disclaimer. + +(*) Redistributions in binary form must reproduce the above copyright notice, this +list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +(*) Neither the name of Petar Maymounkov nor the names of its contributors may be +used to endorse or promote products derived from this software without specific +prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/petar/GoLLRB/README.md b/vendor/github.com/petar/GoLLRB/README.md new file mode 100644 index 000000000..742ca0bd5 --- /dev/null +++ b/vendor/github.com/petar/GoLLRB/README.md @@ -0,0 +1,66 @@ +# GoLLRB + +GoLLRB is a Left-Leaning Red-Black (LLRB) implementation of 2-3 balanced binary +search trees in Go Language. + +## Overview + +As of this writing and to the best of the author's knowledge, +Go still does not have a balanced binary search tree (BBST) data structure. +These data structures are quite useful in a variety of cases. A BBST maintains +elements in sorted order under dynamic updates (inserts and deletes) and can +support various order-specific queries. Furthermore, in practice one often +implements other common data structures like Priority Queues, using BBST's. + +2-3 trees (a type of BBST's), as well as the runtime-similar 2-3-4 trees, are +the de facto standard BBST algoritms found in implementations of Python, Java, +and other libraries. The LLRB method of implementing 2-3 trees is a recent +improvement over the traditional implementation. The LLRB approach was +discovered relatively recently (in 2008) by Robert Sedgewick of Princeton +University. + +GoLLRB is a Go implementation of LLRB 2-3 trees. + +## Maturity + +GoLLRB has been used in some pretty heavy-weight machine learning tasks over many gigabytes of data. +I consider it to be in stable, perhaps even production, shape. There are no known bugs. + +## Installation + +With a healthy Go Language installed, simply run `go get github.com/petar/GoLLRB/llrb` + +## Example + + package main + + import ( + "fmt" + "github.com/petar/GoLLRB/llrb" + ) + + func lessInt(a, b interface{}) bool { return a.(int) < b.(int) } + + func main() { + tree := llrb.New(lessInt) + tree.ReplaceOrInsert(1) + tree.ReplaceOrInsert(2) + tree.ReplaceOrInsert(3) + tree.ReplaceOrInsert(4) + tree.DeleteMin() + tree.Delete(4) + c := tree.IterAscend() + for { + u := <-c + if u == nil { + break + } + fmt.Printf("%d\n", int(u.(int))) + } + } + +## About + +GoLLRB was written by [Petar Maymounkov](http://pdos.csail.mit.edu/~petar/). + +Follow me on [Twitter @maymounkov](http://www.twitter.com/maymounkov)! diff --git a/vendor/github.com/petar/GoLLRB/doc/Sedgewick-LLRB.pdf b/vendor/github.com/petar/GoLLRB/doc/Sedgewick-LLRB.pdf new file mode 100644 index 000000000..a399b06ae --- /dev/null +++ b/vendor/github.com/petar/GoLLRB/doc/Sedgewick-LLRB.pdf @@ -0,0 +1,4401 @@ +%PDF-1.4 %âãÏÓ +1 0 obj <>/Outlines 348 0 R/Metadata 406 0 R/Pages 2 0 R/Type/Catalog>> endobj 348 0 obj <> endobj 406 0 obj <>stream + + + + + uuid:a1e65d06-96f2-9a40-84d3-4ac4f901a7ea + adobe:docid:indd:e8dd818f-4504-11dd-9d3e-8aa37d5afcf2 + proof:pdf + + + + ReferenceStream + 72.00 + 72.00 + Inches + + uuid:1f382f0a-0ae0-7240-90c9-052bfa9b93bb + uuid:D604B9AA2016DD118D05AA6D720C964E + + + + ReferenceStream + 72.00 + 72.00 + Inches + + uuid:f2359209-ca4b-f145-bc24-11a32d3118e1 + uuid:92F9E1E974FFDC11AC15B6426E08541E + + + + ReferenceStream + 72.00 + 72.00 + Inches + + uuid:725ae99a-7e76-5e45-a638-be54a8b3e099 + uuid:96F9E1E974FFDC11AC15B6426E08541E + + + + ReferenceStream + 72.00 + 72.00 + Inches + + uuid:46ba4750-b6d0-a148-b72a-6aac87b46fcf + uuid:39AC52ADCAFFDC11AC15B6426E08541E + + + + ReferenceStream + 72.00 + 72.00 + Inches + + uuid:d81eb84f-0775-844f-8950-327b309a2838 + uuid:BD14D8DC7C16DD11BCFFD65EC7B1D34C + + + + ReferenceStream + 72.00 + 72.00 + Inches + + uuid:852ed07c-1a0d-af4f-b9f3-759b446c18bc + uuid:B4D572641149DD119EEFF96D7801BC77 + + + + ReferenceStream + 72.00 + 72.00 + Inches + + uuid:b46d8aee-c25e-b541-956c-22fa803ac69c + uuid:B7D572641149DD119EEFF96D7801BC77 + + + + ReferenceStream + 72.00 + 72.00 + Inches + + uuid:c81f585c-6684-f14a-ae05-056a473a74d0 + uuid:1C547E781A4ADD119EEFF96D7801BC77 + + + + ReferenceStream + 72.00 + 72.00 + Inches + + uuid:d1fde563-235e-8e47-a158-ac3cc76aa98f + uuid:23547E781A4ADD119EEFF96D7801BC77 + + + + ReferenceStream + 72.00 + 72.00 + Inches + + uuid:dbaaada4-048d-4642-b37f-5659c12203ae + uuid:DAD009446E4ADD119EEFF96D7801BC77 + + + + ReferenceStream + 72.00 + 72.00 + Inches + + uuid:a7a9523b-0c40-7d47-980c-c2d7a5d1ae87 + uuid:20547E781A4ADD119EEFF96D7801BC77 + + + + + + + 2008-09-14T13:43:34-04:00 + 2008-09-14T13:43:43-04:00 + 2008-09-14T13:43:43-04:00 + Adobe InDesign CS3 (5.0) + + + + JPEG + 256 + 256 + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4AE0Fkb2JlAGQAAAAAAQUAAuMM/9sAhAAMCAgICAgMCAgMEAsLCxAUDg0NDhQY EhMTExIYFBIUFBQUEhQUGx4eHhsUJCcnJyckMjU1NTI7Ozs7Ozs7Ozs7AQ0LCxAOECIYGCIyKCEo MjsyMjIyOzs7Ozs7Ozs7Ozs7Ozs7OztAQEBAQDtAQEBAQEBAQEBAQEBAQEBAQEBAQED/wAARCAEA AMYDAREAAhEBAxEB/8QBQgAAAQUBAQEBAQEAAAAAAAAAAwABAgQFBgcICQoLAQABBQEBAQEBAQAA AAAAAAABAAIDBAUGBwgJCgsQAAEEAQMCBAIFBwYIBQMMMwEAAhEDBCESMQVBUWETInGBMgYUkaGx QiMkFVLBYjM0coLRQwclklPw4fFjczUWorKDJkSTVGRFwqN0NhfSVeJl8rOEw9N14/NGJ5SkhbSV xNTk9KW1xdXl9VZmdoaWprbG1ub2N0dXZ3eHl6e3x9fn9xEAAgIBAgQEAwQFBgcHBgI7AQACEQMh MRIEQVFhcSITBTKBkRShsUIjwVLR8DMkYuFygpJDUxVjczTxJQYWorKDByY1wtJEk1SjF2RFVTZ0 ZeLys4TD03Xj80aUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9ic3R1dnd4eXp7fH1+f3/9oADAMB AAIRAxEAPwDrfqx9WPq3kfVvpN9/ScG223Bxn2WPxqnOc51TC5znFkkkpKdL/mn9Vf8Aym6f/wCw tP8A6TSUr/mn9Vf/ACm6f/7C0/8ApNJSv+af1V/8pun/APsLT/6TSUr/AJp/VX/ym6f/AOwtP/pN JSv+af1V/wDKbp//ALC0/wDpNJSv+af1V/8AKbp//sLT/wCk0lK/5p/VX/ym6f8A+wtP/pNJSv8A mn9Vf/Kbp/8A7C0/+k0lK/5p/VX/AMpun/8AsLT/AOk0lK/5p/VX/wApun/+wtP/AKTSUr/mn9Vf /Kbp/wD7C0/+k0lK/wCaf1V/8pun/wDsLT/6TSUr/mn9Vf8Aym6f/wCwtP8A6TSUr/mn9Vf/ACm6 f/7C0/8ApNJSv+af1V/8pun/APsLT/6TSUr/AJp/VX/ym6f/AOwtP/pNJSv+af1V/wDKbp//ALC0 /wDpNJSv+af1V/8AKbp//sLT/wCk0lK/5p/VX/ym6f8A+wtP/pNJSv8Amn9Vf/Kbp/8A7C0/+k0l K/5p/VX/AMpun/8AsLT/AOk0lK/5p/VX/wApun/+wtP/AKTSUr/mn9Vf/Kbp/wD7C0/+k0lOb1b6 sfVuvP6KyvpOCxt2c9ljW41QD2jDzX7XAM1G5gPxCSnS+qf/AIlejf8Apvxf/PNaSnWSUpJSklKS UpJSklKSUpJSklKSUpJSklKSUpJSklKSUpJSklKSUpJSklKSUpJTk9Z/5R6F/wCnCz/2xz0lK+qf /iV6N/6b8X/zzWkp1klKSUpJSklKSUpJSklLFwaJcQAO50SUx9an/SN+8JKV61P+kb94SUr1qf8A SN+8JKV61P8ApG/eElK9an/SN+8JKV61P+kb94SUr1qf32/eElM0lKSUpJSklKSUpJSklKSU5PWf +Uehf+nCz/2xz0lK+qf/AIlejf8Apvxf/PNaSnWSUpJSklKSUpJSklKSU1epdPp6rhWYGQ5za7du 41kB3tcHiJDhy1JThf8Ajf8ARv8ATZX+cz/0kkpDk/U36s4ZaMvOtoL52i26pkxzG6sJKQ/82fqb /wCWv/sxR/5BJSv+bP1N/wDLX/2Yo/8AIJKV/wA2fqb/AOWv/sxR/wCQSU2afqN0DIrF2PlX21un a+uytzTBgwRURyElJWfUHo7HteLsmWkES5nb/rSSnpUlKSUpJSklKSUpJSklKSU5PWf+Uehf+nCz /wBsc9JSvqn/AOJXo3/pvxf/ADzWkp1klKSUpJSklKSUpJSklKSU5/VczqeJ6X7Nwvtu/d6nvDNk bdvPMyUlOF1FvVOrFjuofV/1jUCGfrO2N0T9BzfBJTT/AGM//wCdn/2bf/5NJSv2M/8A+dn/ANm3 /wDk0lK/Yz//AJ2f/Zt//k0lOnh5nXun4zMTE6F6dNc7W/aA6NxLjq6TyUlO/hW5F+LXbl0/Z7nA 76p3bTJ7hJSdJSklKSUpJSklKSUpJSklOT1n/lHoX/pws/8AbHPSUr6p/wDiV6N/6b8X/wA81pKd ZJSklKSUpJSklKSUpJSklKSU431oxq8nBqFmHbnbbQRVQ7a4e13uMA6JKeZ/ZWN/5QZ3/bp/9JpK V+ysb/ygzv8At0/+k0lK/ZWN/wCUGd/26f8A0mkp7bptbaen41bK3UhtTAKnmXM9o9rj4hJTZSUp JSklKSUpJSklKSUpJSklOT1n/lHoX/pws/8AbHPSUr6p/wDiV6N/6b8X/wA81pKdZJSO976qLLK2 eo9jHOawfnECQ35pKed/5yfWL/yjt+93/pNJSv8AnJ9Yv/KO373f+k0lOp0bqPUOoNtdn4TsEsLQ wOJO6ZnlreElOkkpSSlJKUkpSSlJKUkpSSlJKUkpSSlJKUkpSSlJKUkpSSlJKcnrP/KPQv8A04Wf +2OekpX1T/8AEr0b/wBN+L/55rSU6ySkOW4sxbnNf6RbW4iwidsA+6PJJTxn7UzP/nkq/wC2T/6T SUr9qZn/AM8lX/bJ/wDSaSlftTM/+eSr/tk/+k0lK/amZ/8APJV/2yf/AEmkpX7UzP8A55Kv+2T/ AOk0lK/amZ/88lX/AGyf/SaSlftTM/8Ankq/7ZP/AKTSUr9qZn/zyVf9sn/0mkpX7UzP/nkq/wC2 T/6TSUr9qZn/AM8lX/bJ/wDSaSlftTM/+eSr/tk/+k0lK/amZ/8APJV/2yf/AEmkpX7UzP8A55Kv +2T/AOk0lK/amZ/88lX/AGyf/SaSlftTM/8Ankq/7ZP/AKTSUr9qZn/zyVf9sn/0mkpX7UzP/nkq /wC2T/6TSUr9qZn/AM8lX/bJ/wDSaSmz03qOVZn49b+vV5DXWNBpFRBfr9GfTHKSnsElKSU5PWf+ Uehf+nCz/wBsc9JSvqn/AOJXo3/pvxf/ADzWkp1klIsoOONaGNa9xY7ax/0XGDAd5Hukp5H7N1v/ AMp+j/5jP/SqSlfZut/+U/R/8xn/AKVSUr7N1v8A8p+j/wCYz/0qkpX2brf/AJT9H/zGf+lUlK+z db/8p+j/AOYz/wBKpKV9m63/AOU/R/8AMZ/6VSUr7N1v/wAp+j/5jP8A0qkpX2brf/lP0f8AzGf+ lUlK+zdb/wDKfo/+Yz/0qkpX2brf/lP0f/MZ/wClUlK+zdb/APKfo/8AmM/9KpKV9m63/wCU/R/8 xn/pVJSvs3W//Kfo/wDmM/8ASqSlfZut/wDlP0f/ADGf+lUlK+zdb/8AKfo/+Yz/ANKpKV9m63/5 T9H/AMxn/pVJSvs3W/8Ayn6P/mM/9KpKV9m63/5T9H/zGf8ApVJTY6fj9WbnUOu6V0umsPbuspYw WNE8siw6pKerSUpJTk9Z/wCUehf+nCz/ANsc9JSvqn/4lejf+m/F/wDPNaSnWSUhzQHYd7XMdYDU 8FjfpO9p9o51KSngvsGH/wDO/wBR/wA5/wD6SSUr7Bh//O/1H/Of/wCkklK+wYf/AM7/AFH/ADn/ APpJJSvsGH/87/Uf85//AKSSUr7Bh/8Azv8AUf8AOf8A+kklK+wYf/zv9R/zn/8ApJJSvsGH/wDO /wBR/wA5/wD6SSUr7Bh//O/1H/Of/wCkklK+wYf/AM7/AFH/ADn/APpJJSvsGH/87/Uf85//AKSS Ur7Bh/8Azv8AUf8AOf8A+kklK+wYf/zv9R/zn/8ApJJSvsGH/wDO/wBR/wA5/wD6SSUr7Bh//O/1 H/Of/wCkklK+wYf/AM7/AFH/ADn/APpJJSvsGH/87/Uf85//AKSSUr7Bh/8Azv8AUf8AOf8A+kkl K+wYf/zv9R/zn/8ApJJTb6Vh4rOpYz2dEzqHC1pFthfsZr9J01jRJT3CSlJKcnrP/KPQv/ThZ/7Y 56SlfVP/AMSvRv8A034v/nmtJTrJKQ5pDcO9znurAqeS9v0m+0+4cahJTwX2/D/+eDqP+a//ANKp KV9vw/8A54Oo/wCa/wD9KpKV9vw//ng6j/mv/wDSqSlfb8P/AOeDqP8Amv8A/SqSlfb8P/54Oo/5 r/8A0qkpX2/D/wDng6j/AJr/AP0qkpX2/D/+eDqP+a//ANKpKV9vw/8A54Oo/wCa/wD9KpKV9vw/ /ng6j/mv/wDSqSlfb8P/AOeDqP8Amv8A/SqSlfb8P/54Oo/5r/8A0qkpX2/D/wDng6j/AJr/AP0q kpX2/D/+eDqP+a//ANKpKV9vw/8A54Oo/wCa/wD9KpKV9vw//ng6j/mv/wDSqSlfb8P/AOeDqP8A mv8A/SqSlfb8P/54Oo/5r/8A0qkpX2/D/wDng6j/AJr/AP0qkpt9KzMV/UsZjOt517ja0CqwP2P1 +i6bDokp7hJSklOT1n/lHoX/AKcLP/bHPSUr6p/+JXo3/pvxf/PNaSnWSUiyt32W7Y5rHem6HWfQ Bg6umdPFJTx2/qv/AJa9F/zq/wD0kkpW/qv/AJa9F/zq/wD0kkpW/qv/AJa9F/zq/wD0kkpW/qv/ AJa9F/zq/wD0kkpW/qv/AJa9F/zq/wD0kkpW/qv/AJa9F/zq/wD0kkpW/qv/AJa9F/zq/wD0kkpW /qv/AJa9F/zq/wD0kkpW/qv/AJa9F/zq/wD0kkpW/qv/AJa9F/zq/wD0kkpW/qv/AJa9F/zq/wD0 kkpW/qv/AJa9F/zq/wD0kkpW/qv/AJa9F/zq/wD0kkpW/qv/AJa9F/zq/wD0kkpW/qv/AJa9F/zq /wD0kkpW/qv/AJa9F/zq/wD0kkplWOs3PbVV1Loz3vMNY01kknsAKUlNv9j/AFu/03Tv+2x/7zpK TYXS/rNVl02ZVuCaWvBsFdYDy0c7T6Ldfmkp6NJSklOT1n/lHoX/AKcLP/bHPSUr6p/+JXo3/pvx f/PNaSnWSUxsrZbW6qwbmPaWuHiCIISU42T9V+iV49tmPgMstaxzq69zhucAS1s7+5SU4P7LzP8A 526v+3j/AOlElK/ZeZ/87dX/AG8f/SiSlfsvM/8Anbq/7eP/AKUSUr9l5n/zt1f9vH/0okpX7LzP /nbq/wC3j/6USUr9l5n/AM7dX/bx/wDSiSlfsvM/+dur/t4/+lElK/ZeZ/8AO3V/28f/AEokpX7L zP8A526v+3j/AOlElK/ZeZ/87dX/AG8f/SiSlfsvM/8Anbq/7eP/AKUSUr9l5n/zt1f9vH/0okpX 7LzP/nbq/wC3j/6USUr9l5n/AM7dX/bx/wDSiSlfsvM/+dur/t4/+lElJKMLqONczIo+rtbLK3Bz HC46Ed9bElOl+1/rb/5Tt/7cH/kklJsTqf1mtyaq8rpbaaXOAssFgO1p5MbklO6kpSSnJ6z/AMo9 C/8AThZ/7Y56SlfVP/xK9G/9N+L/AOea0lOskpBm7Psd/q7tnpP3en9KNpnbPfwSU8B/2Nf+bj/w JJSv+xr/AM3H/gSSlf8AY1/5uP8AwJJTp9I6D0TrLbXY9vUqhUQD6zq2zuniGu8ElOh/zG6b/wBy sz/txn/pJJSv+Y3Tf+5WZ/24z/0kkpX/ADG6b/3KzP8Atxn/AKSSUr/mN03/ALlZn/bjP/SSSlf8 xum/9ysz/txn/pJJSv8AmN03/uVmf9uM/wDSSSlf8xum/wDcrM/7cZ/6SSUr/mN03/uVmf8AbjP/ AEkkpX/Mbpv/AHKzP+3Gf+kklK/5jdN/7lZn/bjP/SSSlf8AMbpv/crM/wC3Gf8ApJJSv+Y3Tf8A uVmf9uM/9JJKV/zG6b/3KzP+3Gf+kklK/wCY3Tf+5WZ/24z/ANJJKS4n1PwMPJqyq8nKc6lwe1r3 tLSR4gVhJTvJKUkpyes/8o9C/wDThZ/7Y56SlfVP/wASvRv/AE34v/nmtJTrJKUkpwvrPe6n7Nt6 p+zN3qfmF/qRs/d/d/ikpw/ttn/zz/8AgL0lK+22f/PP/wCAvSUr7bZ/88//AIC9JSvttn/zz/8A gL0lK+22f/PP/wCAvSUr7bZ/88//AIC9JT13S8irK6fRZVf9qAYGOvAI3uYNrnQfEhJTbSUpJSkl KSUpJSklKSUpJSklKSUpJSklKSU5PWf+Uehf+nCz/wBsc9JSvqn/AOJXo3/pvxf/ADzWkp1klLEh oLnGANSSkpwvrCbMr0PsDMDK2b9/2vY/bOyNm4941SU4/wBl6p/3D6L/AJlf96SlfZeqf9w+i/5l f96SlfZeqf8AcPov+ZX/AHpKV9l6p/3D6L/mV/3pKV9l6p/3D6L/AJlf96SlfZeqf9w+i/5lf96S mzRk/WbGrFOMOl01iYZW5rWideGvCSkn7Q+tv7/Tv88f+TSUr9ofW39/p3+eP/JpKV+0Prb+/wBO /wA8f+TSUr9ofW39/p3+eP8AyaSlftD62/v9O/zx/wCTSU2um5/XTltHVLMJuNB3Gp43THt/PPdJ Ts/bcP8A09X+e3+9JSvtuH/p6v8APb/ekpX23D/09X+e3+9JSvtuH/p6v89v96Sl25eK9way6tzj oAHAk/ikpKkpSSnJ6z/yj0L/ANOFn/tjnpKV9U//ABK9G/8ATfi/+ea0lOskpDmAHEvDmG0Gt4Nb eXDafaI7lJTwv2TA/wDnbzv863/yCSlfZMD/AOdvO/zrf/IJKV9kwP8A5287/Ot/8gkpX2TA/wDn bzv863/yCSlfZMD/AOdvO/zrf/IJKV9kwP8A5287/Ot/8gkpX2TA/wDnbzv863/yCSlfZMD/AOdv O/zrf/IJKV9kwP8A5287/Ot/8gkpX2TA/wDnbzv863/yCSlfZMD/AOdvO/zrf/IJKV9kwP8A5287 /Ot/8gkpX2TA/wDnbzv863/yCSlfZMD/AOdvO/zrf/IJKV9kwP8A5287/Ot/8gkpX2TA/wDnbzv8 63/yCSlfZMD/AOdvO/zrf/IJKV9kwP8A5287/Ot/8gkp3eh9A6TYyrqX2C7Cvrsltdz37gWnQw6P yJKejSUpJTk9Z/5R6F/6cLP/AGxz0lK+qf8A4lejf+m/F/8APNaSnWSUwutZRS++z6FbS90a6NEl JTz2T9cug5GPbji66s2scwPawhzdwI3DzCSnB+1dH/8ALnqP3O/8kkpX2ro//lz1H7nf+SSUr7V0 f/y56j9zv/JJKV9q6P8A+XPUfud/5JJSvtXR/wDy56j9zv8AySSlfauj/wDlz1H7nf8AkklK+1dH /wDLnqP3O/8AJJKV9q6P/wCXPUfud/5JJSvtXR//AC56j9zv/JJKUMno5IA6z1GT5O/8kkpX2ro/ /lz1H7nf+SSUr7V0f/y56j9zv/JJKW+1dH/8ueo/c7/ySSl/tXR//LnqP3O/8kkpX2ro/wD5c9R+ 53/kklK+1dH/APLnqP3O/wDJJKV9q6P/AOXPUfud/wCSSU2ulZHS3dSxm1dVzrnm1obXYDscZ4d7 uElPcJKUkpyes/8AKPQv/ThZ/wC2OekpX1T/APEr0b/034v/AJ5rSU6ySkOWXDFuLHtrcK3Fr3/R aYMOdodAkp4z7X1v/wAvOmf+B/8AvMkpX2vrf/l50z/wP/3mSUr7X1v/AMvOmf8Agf8A7zJKV9r6 3/5edM/8D/8AeZJSvtfW/wDy86Z/4H/7zJKV9r63/wCXnTP/AAP/AN5klK+19b/8vOmf+B/+8ySl fa+t/wDl50z/AMD/APeZJSvtfW//AC86Z/4H/wC8ySlfa+t/+XnTP/A//eZJSvtXW/8Ay86Z/wCB /wDvMkpX2vrf/l50z/wP/wB5klK+19b/APLzpn/gf/vMkpX2rrf/AJedM/8AA/8A3mSUr7X1v/y8 6Z/4H/7zJKV9r63/AOXnTP8AwP8A95klK+19b/8ALzpn/gf/ALzJKV9r63/5edM/8D/95klNnpuT 1d3UMdt3WOn31mxodVVs3uE/RbFDdfmkp7BJSklOT1n/AJR6F/6cLP8A2xz0lK+qf/iV6N/6b8X/ AM81pKdZJSLKBdi3NawWk1uArPDzB9vzSU8d9hz/AP52qP8APH/k0lK+wZ//AM7VH/bg/wDJpKV9 hz//AJ2qP88f+TSUr7Dn/wDztUf54/8AJpKV9hz/AP52qP8APH/k0lK+w5//AM7VH+eP/JpKV9hz /wD52qP88f8Ak0lK+w5//wA7VH+eP/JpKV9hz/8A52qP88f+TSUr7Dn/APztUf54/wDJpKV9hz// AJ2qP88f+TSUr7Dn/wDztUf54/8AJpKV9hz/AP52qP8APH/k0lK+w5//AM7VH+eP/JpKV9hz/wD5 2qP88f8Ak0lK+w5//wA7VH+eP/JpKV9hz/8A52qP88f+TSUr7Dn/APztUf54/wDJpKbPTsPNZn0P f0CnGaLGk3NeCWCfpD3dklPWpKUkpyes/wDKPQv/AE4Wf+2OekpX1T/8SvRv/Tfi/wDnmtJTrJKQ ZoYcO8WBzmGp+5rPpEbTIb5pKeA+zfV3/uB1P/o/3JKV9m+rv/cDqf8A0f7klK+zfV3/ALgdT/6P 9ySlfZvq7/3A6n/0f7klK+zfV3/uB1P/AKP9ySlfZvq7/wBwOp/9H+5JSvs31d/7gdT/AOj/AHJK V9m+rv8A3A6n/wBH+5JSvs31d/7gdT/6P9ySlfZvq7/3A6n/ANH+5JSvs31d/wC4HU/+j/ckpX2b 6u/9wOp/9H+5JSvs31d/7gdT/wCj/ckpX2b6u/8AcDqf/R/uSUr7N9Xf+4HU/wDo/wBySlfZvq7/ ANwOp/8AR/uSUr7N9Xf+4HU/+j/ckpX2b6u/9wOp/wDR/uSU2+k0dDb1PFdRhdQZYLW7H27dgM6F 2nCSnu0lKSU5PWf+Uehf+nCz/wBsc9JSvqn/AOJXo3/pvxf/ADzWkp1klIct23Eud6npRW8+pE7I B90DwSU8T+0z/wDPM7/2Gt/8ikpX7TP/AM8zv/Ya3/yKSm506vqXVi9vT/rC641AF/6FzY3TH09v gkpu/sH6yf8Al27/ALb/APMklK/YP1k/8u3f9t/+ZJKV+wfrJ/5du/7b/wDMklK/YP1k/wDLt3/b f/mSSlfsH6yf+Xbv+2//ADJJSv2D9ZP/AC7d/wBt/wDmSSlfsH6yf+Xbv+2//MklK/YP1k/8u3f9 t/8AmSSlfsH6yf8Al27/ALb/APMklK/YP1k/8u3f9t/+ZJKV+wfrJ/5du/7b/wDMklK/YP1k/wDL t3/bf/mSSlfsH6yf+Xbv+2//ADJJSv2D9ZP/AC7d/wBt/wDmSSlfsH6yf+Xbv+2//MklJcXo3Xqc iq2/qzrq2PDn1lkb2g6t+kkp3klKSU5PWf8AlHoX/pws/wDbHPSUr6p/+JXo3/pvxf8AzzWkp1kl LOa1zS1wDmuEEHUEFJTgdexzieh+zcfpzN+/1PtTWMmNu3ZO3xMpKcn1Oq/6Pov31/8AkklJac3r uMScc9IqLvpem9jZjxh4SUl/a/1n/wBP0z/t1v8A6USUr9r/AFn/ANP0z/t1v/pRJSv2v9Z/9P0z /t1v/pRJSv2v9Z/9P0z/ALdb/wClElK/a/1n/wBP0z/t1v8A6USUu3q31ocdou6aSdGgWt1P/biS mxu+vLSYbhuB1Ezp5chJSvU+vP8Ao8P7z/5JJTp9Id1tzbf2y2lrpHpej4a7p1KSnQSUpJSklKSU pJSklKSUpJSklOT1n/lHoX/pws/9sc9JSvqn/wCJXo3/AKb8X/zzWkp1klKSU8/9a8dl/wBl3dMt 6lt9SPSsdX6c7OdrXTu/gkp5/wDZ9X/zs5P/AG/Z/wCk0lK/Z9X/AM7OT/2/Z/6TSUr9n1f/ADs5 P/b9n/pNJSv2fV/87OT/ANv2f+k0lK/Z9X/zs5P/AG/Z/wCk0lK/Z9X/AM7OT/2/Z/6TSUuMCsGR 9WsmR/w9n/pNJTJmG2t7LG/VrJ3VkOb+ns0IM/6NJTtf85euf+UN/wDnn/0ikpX/ADl65/5Q3/55 /wDSKSlf85euf+UN/wDnn/0ikpX/ADl65/5Q3/55/wDSKSndxLrMjGqvuqNFljQ51TjJYSPonQcJ KTJKUkpSSlJKUkpSSlJKcnrP/KPQv/ThZ/7Y56SlfVP/AMSvRv8A034v/nmtJTrJKQZpa3Dvc9zm NFTyXM+kBtOrfNJTwH27pP8A5a9T/wBf+uJKV9u6T/5a9T/1/wCuJKV9u6T/AOWvU/8AX/riSlfb uk/+WvU/9f8AriSlfbuk/wDlr1P/AF/64kpX27pP/lr1P/X/AK4kpX27pP8A5a9T/wBf+uJKV9u6 T/5a9T/1/wCuJKV9u6T/AOWvU/8AX/riSlfbuk/+WvU/9f8AriSlfbuk/wDlr1P/AF/64kp6Cj6r WZFNd9fVs3ba1r2y8zDhI/OSUz/5o3f+W2Z/nn/ySSlf80bv/LbM/wA8/wDkklK/5o3f+W2Z/nn/ AMkkpX/NG7/y2zP88/8AkklK/wCaN3/ltmf55/8AJJKV/wA0bv8Ay2zP88/+SSUmxPqxbi5NWQep 5VoqcHGt7iWujsdUlO6kpSSnJ6z/AMo9C/8AThZ/7Y56SlfVP/xK9G/9N+L/AOea0lOskpi97K2O seQ1rAXOceABqSkpzcnr3Sn41rMbqOPXc5jhU8vaQ15B2uI14KSnA+39a/8Anjwfur/9JJKV9v61 /wDPHg/dX/6SSUr7f1r/AOePB+6v/wBJJKbWNT9bMyv1sTrONdXO3cxjHCR20pSUm/Z/12/8tKP+ 2m/+kUlK/Z/12/8ALSj/ALab/wCkUlK/Z/12/wDLSj/tpv8A6RSUr9n/AF2/8tKP+2m/+kUlK/Z/ 12/8tKP+2m/+kUlK/Z/12/8ALSj/ALab/wCkUlK/Z/12/wDLSj/tpv8A6RSUr9n/AF2/8tKP+2m/ +kUlK/Z/12/8tKP+2m/+kUlK/Z/12/8ALSj/ALab/wCkUlK/Z/12/wDLSj/tpv8A6RSUr9n/AF2/ 8tKP+2m/+kUlK/Z/12/8tKP+2m/+kUlJcTB+trMmp+X1Gm2hrgbWNraC5vcAioJKd5JSklOT1n/l HoX/AKcLP/bHPSUr6p/+JXo3/pvxf/PNaSnWSUxsYy1jq7BuY8Frge4OhCSnnOsdCZR6X7H6RjZW 7d6vqEN2xt2xNjOdUlOd+yusf/O7h/8Abjf/AEukpX7K6x/87uH/ANuN/wDS6SlfsrrH/wA7uH/2 43/0ukpuYln1rwKvQw+jY1Ncl21tjYk9/wCe8klJ/wBofXb/AMq6P+3W/wDpZJSv2h9dv/Kuj/t1 v/pZJSv2h9dv/Kuj/t1v/pZJSv2h9dv/ACro/wC3W/8ApZJSv2h9dv8Ayro/7db/AOlklK/aH12/ 8q6P+3W/+lklK/aH12/8q6P+3W/+lklK/aH12/8AKuj/ALdb/wClklK/aH12/wDKuj/t1v8A6WSU r9ofXb/yro/7db/6WSUr9ofXb/yro/7db/6WSUr9ofXb/wAq6P8At1v/AKWSU6HSMnrl7rR1jErx WtA9M1uDtxM7ph70lOmkpSSlJKcnrP8Ayj0L/wBOFn/tjnpKV9U//Er0b/034v8A55rSU6ySlJKe c+uFGJd9k+1YuVlbfV2/ZfzZ9Od/tdz2SU859h6T/wCVXU/9f+tpKV9h6T/5VdT/ANf+tpKV9h6T /wCVXU/9f+tpKV9h6T/5VdT/ANf+tpKV9h6T/wCVXU/9f+tpKV9h6T/5VdT/ANf+tpKV9h6T/wCV XU/9f+tpKV9h6T/5VdT/ANf+tpKV9h6T/wCVXU/9f+tpKV9h6T/5VdT/ANf+tpKV9h6T/wCVXU/9 f+tpKV9h6T/5VdT/ANf+tpKX+wdJmP2X1PmJnT/z2kpb7D0n/wAqup/6/wDW0lK+w9J/8qup/wCv /W0lK+w9J/8AKrqf+v8A1tJTrdE+rfSM6cn7Pl4rqXtLW3OAJI1/cHgkp7BJSklKSU5PWf8AlHoX /pws/wDbHPSUr6p/+JXo3/pvxf8AzzWkp1klIcshuJcTYaQK3k2gElmh90DwSU8R9sx//nqv/wDY e7/ySSlfbMf/AOeq/wD9h7v/ACSSlfbMf/56r/8A2Hu/8kkpX2zH/wDnqv8A/Ye7/wAkkpX2zH/+ eq//ANh7v/JJKV9sx/8A56r/AP2Hu/8AJJKV9sx//nqv/wDYe7/ySSlfbMf/AOeq/wD9h7v/ACSS lfbMf/56r/8A2Hu/8kkpX2zH/wDnqv8A/Ye7/wAkkpX2zH/+eq//ANh7v/JJKV9sx/8A56r/AP2H u/8AJJKV9sx//nqv/wDYe7/ySSlfbMf/AOeq/wD9h7v/ACSSk2Ift2QzExfrPfZdYSGN9C0TAnlz wOySnU/5tdc/8vr/APMP/pZJSv8Am11z/wAvr/8AMP8A6WSUr/m11z/y+v8A8w/+lklJcToHV8fJ qvu6zdfXW4OdU5hAeB+af0pSU7ySlJKcnrP/ACj0L/04Wf8AtjnpKV9U/wDxK9G/9N+L/wCea0lO skpZzWuaWuAc1wgg6ggpKa37M6b/ANxKP+22f+RSUr9mdN/7iUf9ts/8ikpX7M6b/wBxKP8Attn/ AJFJSv2Z03/uJR/22z/yKSlfszpv/cSj/ttn/kUlK/ZnTf8AuJR/22z/AMikpX7M6b/3Eo/7bZ/5 FJSv2Z03/uJR/wBts/8AIpKV+zOm/wDcSj/ttn/kUlK/ZnTf+4lH/bbP/IpKV+zOm/8AcSj/ALbZ /wCRSUr9mdN/7iUf9ts/8ikpX7M6b/3Eo/7bZ/5FJSv2Z03/ALiUf9ts/wDIpKZV4GDS8WVY1THt 4c1jQR8CAkpsJKUkpSSlJKUkpSSnJ6z/AMo9C/8AThZ/7Y56SlfVP/xK9G/9N+L/AOea0lOskpSS lJKUkpSSlJKUkpSSlJKUkpSSlJKUkpSSlJKUkpSSlJKUkpSSlJKUkpSSnJ6z/wAo9C/9OFn/ALY5 6SnN+rH1n+reP9W+k0X9WwarasHGZZW/Jqa5rm1MDmuaXyCCkp0v+dn1V/8ALnp//sVT/wClElK/ 52fVX/y56f8A+xVP/pRJSv8AnZ9Vf/Lnp/8A7FU/+lElK/52fVX/AMuen/8AsVT/AOlElK/52fVX /wAuen/+xVP/AKUSUr/nZ9Vf/Lnp/wD7FU/+lElK/wCdn1V/8uen/wDsVT/6USUr/nZ9Vf8Ay56f /wCxVP8A6USUr/nZ9Vf/AC56f/7FU/8ApRJSv+dn1V/8uen/APsVT/6USUr/AJ2fVX/y56f/AOxV P/pRJSv+dn1V/wDLnp//ALFU/wDpRJSv+dn1V/8ALnp//sVT/wClElK/52fVX/y56f8A+xVP/pRJ Sv8AnZ9Vf/Lnp/8A7FU/+lElK/52fVX/AMuen/8AsVT/AOlElK/52fVX/wAuen/+xVP/AKUSUr/n Z9Vf/Lnp/wD7FU/+lElK/wCdn1V/8uen/wDsVT/6USUr/nZ9Vf8Ay56f/wCxVP8A6USUr/nZ9Vf/ AC56f/7FU/8ApRJSv+dn1V/8uen/APsVT/6USUr/AJ2fVX/y56f/AOxVP/pRJTm9W+s/1bsz+ivr 6tgvbTnPfY5uTUQxpw81m5xD9BueB8Skp//Z + + + + + + application/pdf + + + Adobe PDF Library 8.0 + False + + + + endstream endobj 2 0 obj <> endobj 7 0 obj <>/Font<>/ProcSet[/PDF/Text]/ExtGState<>>>/Type/Page>> endobj 71 0 obj <>/Font<>/ProcSet[/PDF/Text]/Properties<>>>/ExtGState<>>>/Type/Page>> endobj 97 0 obj <>/Font<>/ProcSet[/PDF/Text]/Properties<>/MC1<>/MC2<>>>/ExtGState<>>>/Type/Page>> endobj 151 0 obj <>/Font<>/ProcSet[/PDF/Text]/Properties<>>>/ExtGState<>>>/Type/Page>> endobj 180 0 obj <>/Font<>/ProcSet[/PDF/Text]/ExtGState<>>>/Type/Page>> endobj 216 0 obj <>/Font<>/ProcSet[/PDF/Text]/ExtGState<>>>/Type/Page>> endobj 224 0 obj <>/Font<>/ProcSet[/PDF/Text]/Properties<>>>/ExtGState<>>>/Type/Page>> endobj 241 0 obj <>/Font<>/ProcSet[/PDF/Text]/Properties<>>>/ExtGState<>>>/Type/Page>> endobj 284 0 obj <>/Font<>/ProcSet[/PDF/Text]/Properties<>/MC1<>/MC2<>>>/ExtGState<>>>/Type/Page>> endobj 322 0 obj <>/Font<>/ProcSet[/PDF/Text]/Properties<>>>/ExtGState<>>>/Type/Page>> endobj 347 0 obj <>stream +H‰´WkoÛÊýî_ÁË"d¸»|A€¬ÄÒh[ƹÍP³Å™ŠÂÙÏ"™b“-ÀdÍw¸dDºä§à`úœ¡ÇðpäwÔÑ?×f¨ÉèC{Ö¨f®nê/¯å¡ß.[\íx?ž…çÕ½ ÐFZ5n¶»wjÕɃ†¿Ãªå$HoúðIا-M{¨†¼ä ¦Ï1&ibß@0Åî–‡>ò‡›¬ÝNzŒVmƒï&-Ø;³?sB¨jÄ-âh°íÄ'äÞ¦½’-õt«È5+*¶K>Ž(2æ÷)DU>5|³ap$øqù0ú½&S{›rÌ2Ó’õéAL™'jÏmôýoéå£qÇjùe:\Sl3 «Rí.ÉA˜«Û:>pÁ3Éà™ 2rõ[˜ªx• çQ˜©Mwàû†=Æ ¡×¾b¬¢jBV¸<¼š=į³{ÀUB‚üQ· \7>½øOC¨‡ðKŽ³r®2û,‹Scw›‚¢ N#_\oüXŠ|¯† ß{13Â1ì>øóÀ+o0ËøÜÊ¿Uâ;3‚§6íV½ÌMmûøE¥tçy1¡T™(µæð–ð3ÖÉ…QW‡F£L"\.)XÖVŒS~mÑ\^†+ŽYÛ±­öH)X†ŽÑ:þ\57!r¹,^Ë€ÂÚí©û½Õ/|÷>jå!ÀóàslÆ‚ÏR;)ØG»ŽÖ˜ÄÅ…Ò‚Wpø4yÅ‘¬RHäy©÷Þ¾Š·CìЕ [??%C¼iŽh×ÜHh"Ñ,|ð,r©Xp$ ß__„<Ô²[-xÌ —ùüöþåøy¡êÎ8©å¹F~7»­l–ÛÂqÔš!BÇ÷è û/ÆxYËEãho"Äd™º›‚.Þ'óÒÙ LÐÑ'Éwð+†‚Ëa^P9FaTNõ]ò/BGGx!<þMÅìÚ…¾(‹ â8ÎýÕ‚L˜¿Ä¹Ò›‚Jëë†*“> »ry)A¿Zxª 6Ý(-ÈL_˜åJb +Å>}ÝƼƒ>#èæ-6Ú5Zš”››4×±­ªŠ;\p¦ê¦uЪ”f4;ó‘U§69ijãÊËñå£ÍTM.¸"·>Çv×ÈO6óµ°¥ŒÛÞÐè¯Ü¸ ¾ e©úVÂçw-_T:ܽ®ÛÐ;ÀÇÔ‘ vŽþ¡¢Í‹¦›ïºŽ "VŒp~ ‚QwÓ´ìZBÍ&,rjÍŽT£úB åÞà » È@‹á.Œã2Ò×PÊ&Ï€ 9ÏYè'Ã~ú¬KBú½ÝøÝ–Äm  ›YÜ?.ã^bãÂâc‰r 2_¡Üó0¾ŽÀÍÀ­ +l™yX+£yŸžßÖí³gO_Ìû]½š-¿õÏÞüòæM’$Õóçσ—¯_gIœW¥ø$ÀC¿|€Ù1¦5 éb"å³z+Q ôƒ óCÊ×ã@˜Y,úG¨7®º›¦¡S„'øýåð"¾‡å¦{¶¾ÿ-&IŒ ”+YzÿcÄñI,øÃÀ·)¦Ôbu…xÞRkUÉšf/6[†°† ~¼Âÿê–€h³ák6àÀKš¡Ï¦å¨þ\{ñž2. A:gôžs´ì¡#ôÀu5ÛƒzèP~dÁ‘¹…ÞkJ67œàð–»cŠ&É‹Ä+º§œ€_YšžÕ…ÒUn\JÒ&«þ5ªû„Tqš±Ë…1¹6¹¬{ƒ#Ë|è)óÓ‚c$æ*ûÂØ +5J²P›pTœŽ¨ÄMu"´_äêö6ѨDÑaþXB-¨1Ž¯y¾§|¿E¾výκ^,å0!ÅíòصqỉØý;âs¿ÀTrGF½&åOåZXÊC ¶ø'HÉ(`å™d¸¢už± +Â?u[1—t%&‰ÓL; `¬×u_ç=Þ»E{ºªÕNêåq^Y‡sS%?smâ²ÁÜ&ùq”›<Öv\"ö“>‘ð‘%¼DŸk,¿×Ñ¿Ày BéÜÅ•>ßoÐÈÂÖ-R÷2¨ÛzN¼Ã|ÞAí@H• ²!¤£¦kz—‘§kD“'‚dÕ«Á«Kôõ-•yT4@urŽ ÆšÅh×4Aùr[º¡>qÌiŠædHež:“bNÇ©IÊĺå!h%Õ@ éO#Б/pi¦cXår‹#mÀé®´qfOØ9Ò#¶@…Z¯¥Fd~$ÌÍY§/ìÚzK8»E£YXz&ý3O.0hÔ %Ä)^"0*µä=ÜLVXºc m)­csÙ´_³<"ÖLëì¨[&°¦ NÞðëòÖ·È€k)Žçõ¬ŠX.àô~ùÙ*.‹tÄÆ…ùƒ4›Æyž=‚fM™ŒH0û 4;•ðÁѬϑڵŒ( ÒØœL°ç›õÚ§T}áz½(O¹R5”²]¥¯‰l0)Q$˜8IïWêˆG`ÇùüÞ*úW ß÷Ô[a=<´¤æ>â­îçÝ¢rËŠ¢ÝI9¦ÝìÖŲvàÃüg m"aV‰b)á—ÌØÜK®Yi×¥qcûBéÔyÛn†½Bäïùç#îC_rìú Oî;gÿÀŽG@Ûè¸JÓôv¤bsÁzÜ•nŠzܺ B“ÅTÓØ£‚ëVX n‚ïz…ðàJQjF¸0€G'TåWeâ_çsÛ‰AĆy+TM¥¶´)âö…ëŸVDØÂü“p‹¦¹! ñZû(W%iœ9®*W¤|þûe×ÜÆm…á{þ +\ÒèßXô®‘ãÌ$ñÔ)=Íô’¥e[E;Yg2í¯ï°»Ü]Š"éZ2y.¤Å‚ àÁ‹¸z®=âšü˜Ò©lû¼aŠ&¯ÓDÓæÉÇ@qY˜~=o³ï`³êé»|nüžf~w—·*ŠÙ8Ô¸é?ñ¼ ÓËcÊ9P¶§NX_"“ð%ˆÎóš,íýºÏ½ïBxÂÜ{`ÚµÙ“çÞ¼¹)çx²Ð/ŠF­—ÍÅu´W¦æ̪ªºŒvk©û£ôî +÷ÒΣ§ùw߶c¿é)ʼn\ø!™£Ù(j:ÿ¦7Ü«´´ófõÚ–*ÉhÿúLuŸ½H^IѲ¤VŸæ˺ßËóroÌüMò‚û¾ÍYTº5æœà›ñD7­Ów]þ®Ü2×Òô Õ; ^ÿ…<Ü` +îIëÍ^VàuvI”ÜÛ_˜FTöõ†éüµÃYyÏbL0mØy±œÿúaYn#e<Úlf<ÿWŽû©àVó%þôü«oê~˜ûš‰p€àÌþ–ñ­Ã1ø‡Ž4ŒÕ½Hâ~ù«Õpˆ¡YP¿õqz@Üoî·ëfÖû1­w“Và¿:IôWY,rªtw—œ±ºY´©ð‡$×âØïoõð>X,…±æýu}Sj›:”M®·„ì¯Ö¶–±w±Sæ1x0ÄËfŒ2ÍvN›£>à&e Üsì­r>EÀpèsÒÞ¸¸DqZì6(ª,æëµQMÂÛ„§»®‰öÛliw0ß»<µMèL”/‡¡¾{=¹|µœ/®ß¼zþB\¾¼’¥‹Ÿ'¿Mt´`ªJ8÷*ïñž‹Z“;üýzò‹XM¾}=‘eÑÅíäòû™ïê< ÛXBä­!‘£<Új#%îg'\PéðwYž…[L— nYÆwñ®Å*cwÿn;ü s—˜r—”dã‡jzý¦{¿çòüÓ{q30ÄO?ýãÛì=-Í®×é+è1Ï 5B{ÌÆ\TiÓÎ$ñ…§ñ{Òg‹¨T‹­ÀxüîùdjS… ­˜I .èdîåÿ¹SðG4þü§°â¥èÔüM4Û +Õ +˜iáq]¬7^,îrÛ»‰ƒ(ÓîX6¥‹Ê@’s‰¿¯Ë³´ª]oÎÐÚZá%bU¸Æ]wR”n–8A­¡Â¡6*dÛáž6¹¼šI§™¢^¬²Ð¾õH!’¢Ô1XT{1XÈvèo\Qßü3Óë¼X¹ÍEnnd•Â[E–Ü07É©zÝz½ %AÛ€†íI« ¨`½ÀaÁÜò=1мکü6=¬k®}[¤àŸL°þ5ÊØk™Þdù,ÛúÔfÐa¯¿4Zy•M™ûx;XÇÓ@w¸Ç¤ÙîF!º;ÝõÑÝÝ:† s.èìu6 £=:oS6 £3:£Ÿ:á¸N°aÑýèÑ98²aνΆatFgtFgtFgtF?ytNzYuR[ñ§PR¼Dþ_…?ˆÁ„4›µpj<¡¨*±LE>ØR‹-p¬åd†ý_^Íp¨{õb5RªrÞd¥œJ2:ö:OÛ¥Ù+P&Œ83ÁÛ®Zƒ¦kYÞ²RMësãÔ&5ñmËò’•J£•WÙ4X+%sõ³AÜ&bAI”Ø[ ÆýŠßKŽ¹à7Ðõg£ë-è‡n³]à,9K¾·ätÉÙ,l–3 g›³Yö&Ç‚SŠÒÝàÐÉnQç xò&çÀšŸƒætC ]r6 KÎ’­ä Îà Îà Îà|æŸINÎäœ!ò=br²f! Ž§Ô³ ùíÜn–}È·™Å€·ÎtSÙºS^¦¢…*ÆR‹-‚ÅÚöty5ÃNkìIÔ‹ÕH“Pi…+ðUÔ#M¼®ÒÃ¥y*9Œ8ÁÛ®-Lײ¼eMš"ÖçÆ©Í §®¿2Zy•Mƒµ&2—Q)Äí`"¤ö'â ·¹¸GëÊkìHÔ‹ÕH C•M(­¬F‚xÒÃ¥I*P&Œ8ÁÛ®Zƒ¦kYÞ² M±Ô—6ƒžºþÊhåU6 Ö’È\Fl·£‰D§\¨2z<‘#½ÝYÑ:FZtø´tBAî!gh…ß]áGi¿?ºæìôp:å˜N×é˜shOÑ.NƒÆ?]ô¡QŸê¥énQªÓ.„íB®Ó)£>I {Ñýt¾}Ãppd¯Ÿ‹×“Þ3AçÃ^çDàø Ãè_Ý>í JΚ³æ¬9]p’i—> +ï h£ô§¥*±LEm0?P¥ZØïr2þ.¯fØm}‰z±tíÁL)Ò2Ñ™‘*u‡K3U ðÃüíÎBAð¶ûUƒ¦kYÞ²*M±Ô—6½žBó’UI£•WÙ4X«"sµ²AÜŽ&R?‡ã®å=Ä—{-ï>IÒ¶åmÑ ~äÕfj: 7r3"7ò-à_,»kÁ1§ÆÙmÆßÏÞQON-ˆ€ËÉjî<„€ñ•Ðõ«E÷UñúHéÌ;§S ‹”5¯@šèGét²v!›·ö9atº Õ JÙ,t“.ª3:£Ÿ º‹`¤ÞÌ^ VÑ9õ:$õ¢›PF§jÊ[”îqD°a ~äÕ¦êr3 7#r3 ªèBXsgÓGáaÍ é¬9ûü5gtF?tŽél—½Ð­ÖAx@ÚèèÊ€“A,Sí$u,õV‚ÓëgØÙåÕ û­±3Q/Vƒ¾8­ðø½46Ždñ8,>\šªeÂèÓP¼íª5è`º–å-ËÒK}i3è©ë¯ŒV^eÓ`-‹ÌeËq;šH%Â3[C¨üx"G¼§Zp+ॡdÌNsQ¿ýÑ·¡qÕ)£Su:]p6 ›åÌBÝÑ=EÉ:ÁŸÜ¢àdgp>?÷ßž£?=ºW bØ ×Ÿ}òë-ä}pÛ·CpÛ€Ÿìepgð#§{|ÒÕœ,8a³Fw ½4;ÐÉX¶¡«CÑÕ «Nv“R÷ŒÑÕ˜eàó}RsöùñÙ…Á|Opˆ‚s\a—ŸƒYHýÆV.Çã¼ G\%–©h"øÊ”j!xƒõ3ìëòj†ÝÖØ—¨«A×`Ï4€S‰k Š×yŠ.ÍT2aôÀY(ÇvÕt0]Ëò–UiŠXŸ§6©‰o[–—¬J­¼Ê¦ÁZ™Ë¨• âv4‘ «*O$:½¹¥ŽøÓ¡;¨*ïH¢V.º7IrÊV÷U ŒÎè¼K®_ÑÏ%ƒáÃègƒNw›zܦ¹1=tŽ0ìõ³1 «ÎªŸ :áàÈ^gÃ0:£3úi¡Žë¬:Ÿ¦ç¢úÿد¢ìäy¸•¬@µ$[vž»–ÐÇöô…ýŸså$¤$ù¸@†ßO± VÆ“ÑH†,`èÀæؠߺä(%¦ÒûžcèFK÷U‡b”ú4.sO}4_ßy¬·÷‡Ý{¬nÿñ½ÝSdvRŠoÕµw™”úHõ L¬yõðC0e‹ó²8PwŽ³”ièëÃæºgiŽ7¾mœ†iÃ)a;U1wŸ«sXòóZ ¤¦H÷€\ë§He}|y€¸BÈO—kËàòFùÅ”7äMæÿ™ãRΤçó×æxóÄFyëYšXå?”kݲ.¿æ\N@?F®ÇÈu‰\'ä/«•(þ§lw¦<#Käñå)‡EŽk,òFyËϧKÞÒóå;–¦•få ù#o Ú(ÿP^(ZŸÎ@¿†ó‹ _R@ÏZ “r€dW/ˆÈeÐJ)q-ó⛿êP)ŠŒ«BÉÌWwæí}ç÷¦Û|GU§A-|pÖuÿi’ë#ÕC2±æÕÃÀ”-ÎËÞÅfwŽ³iè륛ö,"ÍñÆ·Ó0mø!$ c§)æîsuTœI‹êoÊ ôeôÇBŠAÏA¦ÊÑ ?:S’~ƒ\~-u9üZà/Ly³—Æú…õ½A¿ +z¢Ò÷ µ”6gl9zôHœ:°Ö…ú/DèÀ‚NS`­Co‚y먽WsÆ&ôÿŠ3¢æhzzkë­”¾ôÖ{=:j(ÔÓ5glBQ¡³¤2ØbN!¯€÷Zº¯:TÿUÆU¡Âê«;ôö¾ó {Ôí?¾™Äü­õ[–Ë*°I®TOÉÄšW?S¶4/‹w(:ïg#ÓÐ×K7íYDšão§aÚðÃIÆNTÌÝçê )˜øAÌ?qZ34~ˆ_iòć•k@N|Ú8^Å;‚Þ›’ýâË%QÎÿ(yOka3p%Õ~+–Û¿½Î3i_sX±Àvs`ÎaË°\€Y/¾¥ß Ö ¶NRXÎaë(,p`gNPX¹À‡Ö9,tØBì- zsô+”}¡ƒ•‹Q*iËú¯I?\®.ç€÷„·ŽŽÀ9°Òaåk‹°ŒÃns 0ëírÑÚÜ+8‡Õ9"ô؆–KÅút&MÝW%Ïß<.F +±øêν½ï<æÞuûïE\!.Eš”u‘ó¥úHõ˜L¬yõð#0eKó²dwŽ³’ièëÃæºgiŽ7¾mœ†iÃ%a;Q1wŸ«ƒDõO›<¶˜âë ·[o¯ý=¬÷f’ÄG^Èþq{yZç=ÀöTµTà$žü?ÌP·E|‰##ç©¥; 7Š¢çšÑ[è¼eèÌy_ÿ»õÄ¿õr=®Kàz™—Ãj8?‘‘ãº9.r\µ4ä÷FŽZ‡¢>s¥Ðj]¡ÖêV„^ôoTܸoÿîœßß`9‡Ö9.rTµ€–}\ÂQ "³t¦#¿ÆÉO þƒŽ¼™JÓxÓøsj—qÔÜlÈÛ5èòüDur£(jw`üfÎÂÔç±dŽKèL‘K÷U‡n˜YÆÕèÑ¢¯î<ÒÛû΃î=R·ÿø^Vbv*jþ”\Ö*4)õ‘B©¯aÍãÃ3?S¶8ÿ*$Yçãlàdúú£îYœão§aÚðÃIÆÎTÌÝçê šrDÉ"[Q>±ÌЋIîqêÝxòA‰ ç¢8÷¼²»8Áͼ÷tÞ 7w¹Ü]œó¢g9oIzs¥Ã²ž=œl•þôå¨ÉåAI + U0À­6tIº¾æý…5Þºß £l¡ÿšôÀo;jry„\pYGvu”˜ðZ¯$dù.rù iIzkD-GÀí.¬»4ÎÂ9löTα¡Ãº pï‚š¤°Àc¡ÈÜoÞòo¾Ò¡¦(²ŸãÞE“ºxH•áf5é:S,¥ûªÃD½ÇV#E˾ºóHoï;º÷HÝþã{8RÐ>ÙS^sbÎ’?R='»R—?S¶8/ IÖyç88™†ãú¸§nɇãdाmœ†iÃ'a;S1wŸ«ƒHQ?‡ÕSßVWuiÇqé·MÝ"àÂÇô¢²w@.ÄYNz. Ç•*Ó/T™ºE¤…*õ"U³³ð¯ÿÿÊq9ã§*ÇwpH[ÜZ)‘Ó©’÷ ä§JÞµRyaÆQ³U+ÈŒ7äwF.É£x®î?#rØü Ä–O^»ž·QI¼Uʯ…rõÍ»•è¹™·:i¸ÿ7j^j½AmqôX¨JiŒ7Æ/e9;rÝÖû§×JÃ}_ܨ}aóÂV}.í 9‹!Þ5qµ‚ê†Ñoµ‚«r\ä¨*W9o}åék~ ¢iË7€¢2Ž›› yC~9rÜÞÓWUãhZQ*RúÎ,ÖÁ1ðH¡çî«ÙHÍÆe’}}ç±ÞÞwvﱺýÇ÷Š’Þù¿f4YqbRê#Õs2±wxÃÃ3?SökÂá×úVwŽ³“ièëCŒºç(’M“”ú¶q¦ ?¬„aìTÅÜ}.’œÌRsµ¢3põ³†‚äGœw1$+xÖ…4•uÊ6Öÿ\ëÍ_îÍ90tX¹õ=N‹4ÃÎÿ¡”ì%뺂­-;¯“¸dÊš²Áf'®\p9îr[EX¹ø-WLC‹6Eq¹0Êù.ÐoŸ¦‰W0p-:æÍYå°5¸GÛÖÐÛ«¼ÕÐ×€Þš®Vþ¯ìÒ«(²1âvè©e6<¹ 7]ÀJ/´?§ôçd8Ia/t°Àa¯À*Çê["åsg–‰û´,DÙ·çî«¥§â1†eñVÞz_ßy¬·÷‡Ý{¬nÿñ½b¤T°•)º¢Ä¤ÔGªÇdbÍãÃ3?S¶8ÿêA²Î;ÇÙ@É4ôõ!FÝsɦÉÀI}Û8 Ó†RÂ0v¦œÏÅ9¼Îi´±àñúO]ïfäÙcomà‰ËÝŒ¼øGK@Ý 8×]ÃúEÐ/±ƒ³¬…â"dX0*°Ð±µn‰·]ëâ±1¡»Ös1 Niθrám«ôÔ™#OÇ v‚¢#`è°JW%Mþ/8à©P/õšõçbi¥èt Ø[¯ø€M”¸õŠ÷외Ïx„#‹·ö'£P¤@²Žš¡.ÌùÚÜåî‚ ¶YÄu—@&åKKÑ…§«‚6¸¬c—#LÁí3 ÷ R,«so`Yï)ö¼Uúú5•ô"è—hýt×I0í,'*—îÂB1Çî«ŽcOÅ?Ê°îç¾¾ó`oï;»÷`Ýþã{EKŽž­–Û€I®TÊĚLJf~ ¦ü?ö«%¹qîß)t„@€\ç>B–qeãûW=H²•ØrÆŸñ(î”V"en¶@Ãtú4tá2w-ûåø~\0ÀU¸4§)°oŒ¹´Zƒ„Ž,!aŸ³þô½²4áÜ™™çcè™{;ÖmûuÉT²Žï¥’EïÚþ·‰`/¯›ˆ»‹`Ýîíã(v|ͪ„w.õ„ãᎥ¿j¦,>>ì°‹käèï:}ÊÄ.ÓÉq7в_Æû!FæK$ÛoZú_·ià“–4¬ƒ,õîýä"-GÛèMžySa€K¡Z ª|.`%x’K3jðãÌ­È1çÀ)ŠÊy4HèJµÈÐ/#M’Y·hÒ™ç>éù“ÔbÑ|í£Ë&)°Ò…ØxÞŽ ‡O>#uóëuq…Ž\^pƒëv-#p’âBGíFÈ€‰%1 ç°Àe“Š¸…—¨-î—?+é¨z‰ââZæ9úx½<Þt᲎ì\”jæKV÷9YÇ­¬YbÀxxš®eý'Êúš¥?‘¥À‚AH™·ù@z·X–*‹«V–× +Kb@àp„kñÚ™Gë/ÅŽ€g¡lݶ_&“6¾–F.aûß&b½¼n"ì.bu»·£ÐJÓÜ™:©Øiƒ3®ý£ô÷ ÎÄNq‰Ln:½E¸L'ÇÝÀÉ~9¾ÏEšâ¿6nÓþÀ'+iXUêÝûÉEª¸GhÁ¸Î°§ýs'àÙ¤—f˜§*`èaI[–KCï³B×sµzƹByÒ º‘Ï=pd¹ r <üQãrÉ’>bòz˜›þ Í(SŸ—Å»I_ŠsàÚJWÉ@Sã<¦Æ–0« ®éBv.¸…ºElm€åEIdŠFÕ(éx”¯µeµº·å(ªw‘JžmÎ9ß-¾F.úºC×k•Ž:Ò!§¨‘T…”‹ _ž÷ÑçOÑUçëpqCŠ’f ]HssDèÈIŠªtäúÒ"Ü™fôø>zký½Õ%¬.3£&)ªÒסîG#k™W ¹ÀrŽiÂtµ,bÑDÖd^Ÿ¸‹JëÌK|×9ÏB)ºÓ¶_¦<¾#ÉK¼ÝD¨—×MDÝE¨n÷öñ5r0Qr«AI#M§¦±÷Òß2SvØÅ2¹éô)»L'ÇÝÀÈ~9¾Ïœâ¿6nÓþÀ''iXQêÝûÉ=ܤ ª,¦sŸñø¿6ßúß~£Ê zøŒ¦@ª\9ÿAÎ5“ä„4~}å\­-áì/—¨’ùŒAzV—¯sdà¨*7¥$ÖUŽšž±ƒ,æ¸Èõ¤– 1AqI‡ÍÐ~vlI!ûf.ÔªÎ?>?/§ÖΨ!AaåRâ»~‰ó§,縜£Esª\æÀŸžqX©àGu,fT½úŒ?~…MOT±à¶ZÀ#…Z+V –sÔ _Þ$ÏHPc²|ÆÞ@G¶[  +]1k ®ÊQÇBL+b,ªØ|BÈO`ëT˜‹uIM‡!Ô•»Δ-wÛ~­J¦6¾!­ï7ìåuqw¬Û½}ÅΤ?lZ¢â¶S1{ÿ(©Æ/QvØÅ5rðªÓ§Lì<w-ûe¼BõgŽNñÆ_·ià“–4¬ƒ,õîýä"V›IFÊðßÿ¿kèñG'KPµì7@gáKµì© +Â֘Û gä4…eZë% 1 x a¹äùH€ àê Úxµ6ƒ~7ék3úÕîX鸬›ÍFT€F +¬–ð–‚'¼º˜©z]B,k]ü-Ð1m:.pè]+úÂyÅ• pE· ˜u`è!Ø4ÌHYlµü‹ º9yµé0ÍKèÕë"§(n/R&®Ðç:`Ö•ÜF³€ÀYâ7ÌzÏUŽÒFâÞmû¥8•dãk®”¹ÅûMÄzyÝDØ]ÄêvoG¡C~`M•šòé¬k¡Ìx”þž™²øø°Ã..‘ÉM§O™Øy:9îNöËñýxæK$ÛoRú_·ià“•4¬ƒ*õîýä"–ƒš>¡4ÉéE®L(»#¡ì¯j‚ž©ðÜ#]%K»]–׿€»ïךçéª)æ,ð«(ÿ›)æ åÍÊVãgÕâQ´ÞÙ9~\訬ÇØëYçП>IcQ¥-Á9ßš¤ß™ê_ k”‚zH¹À¶Q¥R}.—»‘/¦sÔÚ %™Ï_ÏÏ8¨ãB®ˆFÕë\+ç|íý¿¡÷÷¡B©ÿâX´ +ægÆ¢µ-Ly"ëÏXÊqUŽ‰[)žkA\ ╶}›`Á EžH\+¤=Ç­‹©å²R¾ åÀEQ©TŸC¿ùbÀ{(p#‚fµ¸¬”¯SèïÄ-`[ào' +¯d‰»m¿%Íã[.T“ÇëMDzyÝDÐ]DêvoG…¸™!…´žºOc勵d¦,vòˆdrÓé5;O'ÇÝ@È~ïk·?ÓñÃÉq30ÒÿÚ¸MûŸ”¤a<©wï'÷(šêХㆪ_ — È~AÞÚ™tB = i­ +Êú*õ•ôëIrI+ë‹K:lY;“åÔÏ hµ6`èÀR_YÿÖ%5,븵Z/°Y +,õGS0™Œ‹C²ÎTkUDÖͨz³ÎwCç•õ_]'S`Ö™Ô¼@²Žë¾€I®¸zQjÛª—¥³º‘¹ah;Þª¢˜30ëk]_}À-Èç à,E”zªæ•Lœë±Òlݶ_f!3_爧5Þo"ÖËë&Âî"V·{û8 +­ÄÌeÈ"©3‹aìý£ô7Í”ÅLJvq‹L¿yø”‰#'ÇÝÀÊ~ïk·?spŠ7þÚ¸MûŸ¬¤aÝßÍ»÷“‹¨™ÅEœ¤ÕyRñ¹¿·\ó÷ò7ïa–? ó›?w)%Í~.¥þˆü;]NУ›§Ô¹b0åÁŸŠÁ7ÀùLB•?%_n”kºT nA~Kû[ί7ÖO½Ï•~¶_¥ô[*ðsz!±:·xk’þÃ$…V:&çmX.Qþœ¦ZKìÿÀU8C¡°`0ëb Mäʹ÷¯äò/Ú((ç«Î—çÜ©&)kY\zºp/ó>úüÞ8¬[DaÅlsau \¤ÍÛF‚ÂÖX¹×`èF¹¦¹?G€ÛESt˜žˆ`Å›žÀÕXçÀ–kÌOƨÔâÍ­‹¦Ì¦êõ˜pék|·í—¹PN<¾Î™$Tµýo¡^^7u¡ºÝÛÇQä8¢UÆäg?M~c勵g¦,>>ì°‹Kdò`òð);O'ÇÝÿìWMRó<¼ŠO0hô3#­9BŽÀŠMî_õ-ãÄTòð£æóÊ’ÀJ«ÝÓÓšH™‡¶ž‡ùÕ†Ë~õ×êÔÍ/\HqÓبŠ:¼Þ$k=…pšÞÜîì Š'µc…|Í|¸Av­§¸’ŒåóóœoÝÂç{лêøræØ]€=9ÊGø ++`g pyŠ–sà¤kŠÀ™ÖÚâýÈ-ÿÔŠ|þ8‚-¶"X±å÷`ü'z(¬·ÀÆÜLQ>Žà-Ðr-R`¥;ýärÑ+‚í¡À*‡ ly +1Â8B#†|µ€MèÀœgÊ)´ŽŽ¹€Yöt´0f-Í“Ò½wëË“sqx‡‘K] 6ô¶z²žžO¶éÙvÎ/ï«ÅE¥Ä³—JÄçñ‘Æc2qÐú™I%.õäÕ/oÖÙDÉ<´õiñ«džL”Œ¿V§n~áB‰›ÆFTÔáõ泯ßÖy¨Û×]í#$Ë¿= H}ÅyÕô®Š4úpë6?Ñô6ëГí-åž¿tÕ¯ÿB‘kSŸ¤¤þ‹º™/FPè°J·@#P¨þœ£¶£Ã_~ :lô::éoÄ]XO‡-Q`Ov`èy0 1âi²bnqû"Ý>3+¸“B³`/v‡§ÿÆÃŽ™wæ<\#käáaÎu.¥µ–þežH$µZAðDØún¡À + ½ÓTÝ8ç7QXc<ÂâÑŒîCO”%ÈT¢ZܺD™œ”ámFò¹.òlk'Ûçéùd[žmŸáüò~ÃH)%OŒHâ[Šmf4ž’‰í÷×;“J\–=yõË›u612ëz}gµÓ²_ýµ:uó FÜ46žìFûº:ˆÚZœª©ð—ÑnVýúû†›Vö‹ïú@´‹E»wr²—¯9ÿ—LúRä…ñ”\Ûîü +ù>þñ¯ÜJ.‡ööÂßƽ#ã7ë2ÙéºU +pmk_¶¹CâÛK\)³´÷­o+e¿ÒÄŠÕ¦Æòå¥[O1sŒ{*±ì@8ÿ+ã÷<%Qɱm??LùÈq]µácšŠÚ¿º=jów¸ÆÖ¸Ãc¸Au›RŽ+ÛþyµÝ31ï~÷Ù¦i‚Š™rÌœ‚ꇠ¸-_9–ˆ¨pÐŽÌ8j6ÄõBH…ã&,Ü bµé3$å°ÀqU~ ?dþð ÈQÈ~÷+Ð6f“í½o\ ×ÀÃxx,® J¸:A“–§ÆÒâî6‘ i.#p¦”ì¿®3†·q˜Ès¬«Á¾Œ-žl£§ç“íy¶†óËû Å'©2Þš•ø<>F/°aËwÓC>fv&µ+ÙÇ_=yõË›u6ñ1ëz}çj'™'!ã¯Õ©›_¸0⦱Ñux]Ã*Hì{ŽçPÑ{¥´…ën&Éè¦É}›¡¿|/àæ»9ø¶˜~¸Ó=RM_Ù>ç™\ÒÉ9“8ó&ï=t~xË787èìïBï*Õý.j¬Gýäп»;º£\²‡T:ª\€97èœïBïUé }4Sd.À[pvÁ´Å¨â']t{à?Á9¬\p‹¹ +•î±Þ'ô#ìßIqý™söw9ï²Dq#0ç°)7v%&q…ñtkŠÆx‘ ˆ8èÛ"pZÄÌ‘÷¶F`à°% +taÓ"p%eû£$OÃ8S”2¼ÃDYK]ݸz²žžO¶éÙvÎ/ï7Œäız­‹·ùYÌ ì‘Æc2qÐú™­½Ä寞¼úåÍ:›8™‡u½¾³ÚpÙ¯þZºù… 'nSQ‡×ÕA +¹b4Ž> %´iºÛO»÷¦ÉÔv»Žo0 t&òÐ72°+à!û{®"é•ÎmÒ^x Û@ìÆ‹Ôª¯ŠÔik.È9—Z©÷_£ilÚ@‰ôºÅ‚¢¾5—þÅÌ9°+¢z‹ Ë—ÆíÝ6sá—(ƶBû§üH-‡Êÿ/â9ª)"7"TSDÅͲo-ÀYÌ¥„¶}[ä»iÕW`Eˆ]ÜÃ"²€Š6kyŠœö¨ÎŸË#&ª—X¢ÇEîˆ[Ç-dµ`öPUÊ%·¹¥™=ô7*4¯;”èæJ™Šú–õî•œ[`9t—LmOI…²‹kÎ#¹†·qÈBžë*{⤶|²­žžO¶ëÙ¶Î/ï7¤¨ªŸ’…”[Š¹=ÒxN&Zò1³3Xx•¸üÕ“W¿¼Yg'óÐÖó0¿³ÚpÙ¯þZºù… 'nSQ‡×ësŒ‰Îs˜Î‘\hM¬×fý€GÊQîu¼ž,ìpÆ2I@)ãÝ[2…iàÞtÎ-çÀ““{—Æ> 4çSçL9hËzÿÞ’ˆ-d@ÊÖÏ-­©Ç,QXÎ-dJ¹wÝíÓ[€Û?°Ò¡ãjÝn¨±ä Éz0Á$ÄÄ›]`C‡.PÎqMñ¸Þò8ðH‰¹KÿÀ ÔYBçzÿ­?ZfQD±À2Î<´Àûgø‘Ëâ|qoÀ¥e#—Ögr5ÜÂ&–d)1µ7ÐþK4Ú]HZà% +ì.Þz¨? Ð·F¨ì %Œ‘à8S(<¼C³M uu¼:y[=ÙNOÏ'Ûôl; ç—÷FÔÕo¼ãBÄçñ‘ÆSZ3±þ==äcfG`R³»¿zòê—7ël¢dÚú´ÇøÎÕN2O&JÆ_«S7¿p¡ÄMc#*êðzsŽ•!;Ç ÒxL&ró°30©ÄeÙxU¿¼Yg'ó°®×wV;-ûÕ_«S7¿páÄMcc*êðzs¬¾LŸ6¤Üö¼ŽMl(¸Ø¦énUù87÷Ýã°‘÷âK¸ªÞK[hü'ÊÓE¿GÂ8Ês†ÇîÛ^u1 Ñ’‘@ê¸De_Ú,Ý¿-*AÚ$ tØVjŠ°·‹®äÖWúg:—ÃBâ(-t„¸H¼kK”¿ ý!Ö)Ò»Ðñ'®ˆ€<ŽÿÔÆóþ}Z- ½˜sÐØ™Ãjø + +{§8€ï¯r}Ûöb"ð…ØYJy!müÀ÷8`gƒÎ-ôþåœÌa“"0çÀíØ¡»(¬`ñ'  ë*œƒ!Wrr#u¦¤<¼C!ŸS]¤lõd;==ŸlÓ³í4œ_ÞW{J)¦*Dßth±ïk4ž“‰ƒÖ‡|Ìì L*qù«'¯~y³Î&Næ¡­ça~gµá²_ýµ:uó NÜ46¦¢¯7Ñ’u2(Þ-À£}<9€ï|ŒmÛèØ®DÎ>·ÞÛqž¾"=ñN-æZîÉ¥«V½@W +I÷€¾½\€•(H‚´—d¯è½kLŸRŠ`ú/@Çí¤ÀR?r×/¨4¼k”q\‘]à´+ôh;;n€›òÝÎ[À:$Ê(\CWrɵ7Ñí­e{èBbn ÆynÍ¥àJ!éÝû +µAr{¸âÿد–äÖax]` r#øY&•ï_5ÐÇŠmzÊ™”£§Ny%Š6©V«Ùh<ÞÐ9Ì¥õmèþåò¬þÛ‹¥ÄïÅ‚¸·èR ±†§\`±”¦}VDˆ¹Àå8¡Ã*ÝÉ,cVQÜVTI Ì]4râ$—ðÅ˼ȤbÃÇ8,¤ñäi6"Nå˜=ÄN/¯‡Øô; Ç·Ï‹•rM:§¹z M|¼”ñ5™Xýê¯Àä–×i!qYWÎw%Ë0æë°¬¹ØiÝo~Ú|›–_”¤iDeÞ¯ÞÃ%ç©Z;ob¿«Ö+ôÛ¥>!ýù†À9é½&fWçi…ž)qÛ¢ÿz<ëaX9ãìŒ2÷œÿrÌxrÔ#*ró{1cŸG4Rª÷rÆ>…îQk¯ôÝËÙÑ:xÖÑý¶1µ>Nï_å°À#¬s1HK„=ž°Àa}%ScÃL¸JY¸? ˜uà¤Ì:¬1WÑhç’ðíÜ㳋Qfn (h^4bî»9„jT¨rî-}ÿæR©¤æ²à¸ZÉdl½³ìþxZü©5ÌB„Ê9rjyÿpØà üÙÆ=“Ö·}4Û"GDØóéd©öjA€Žgçbm æ™R¾ +æ™XÛð1Ù¨„ñLÓ,”Ùcþ{½¼bÛcì5ß>/¶Î”“ñtøÝùúsšøx)ã‹r<Èæ‹Ÿîâ-˜Üòú«¸¬+绉•eóÓVãš³|¹™XŸ6ߦeÁ+iWÙ‡÷«±’°n¬À=¾²"º‘l às‚¿À9¨Ê%æ)–õ#mýé, p#«©¾ãŒqÆy)ùôÿ‡óoAÿNʸ =B©r}·ñè/"#­“s‘Þ‚pDc7q—dzëè°ÞRǧ/þ»nJæj€RAe9â¥æ˜©8+â +Ʊß8¤¬—¦ˆþ¹€»"`f¶ ³Û^TÊR1Ë‘Qót`kUz¡šl àçùJ+~™™jÌ|ŒC§Âyž-dj1{ˆ^^±é1vŽoŸ;qÕ< «½âÄÄÇKß“‰Õ¯.ñLTž¦…Äe]9ßMœ,Ãy~^s±Óºßü´ù6- ¾8IÓ8˜Ê>¼_½H·ÁT©´ÖÜÇ«òa÷=¾&é«ÝŽ[€z˜Ø­8 +=ŽT•t/×íºf²Ê÷Œl—Ð#M»öÝîn‹Þ™ÐÝRèÈöâÔrë3ÒŽ+öëÅûv¹%âJßm¼;3ô’[ß P¹§9 +6ªYïYË#(XûõΧFÄ¿Ññ"@O¤5÷zù1ò­Ôbш…Áà™'íqh9jEvsèxŽZˆ˜² ›‡ZD¤ZT©lG„j/ÀŽ®I …þ¤üIù7)7!ñÞû7,U,1àèå6VËwHÿ»yK(¥àå-§–AC nca™œµ— ëfT½:¢¥[¡2þ ïVÊ­Ç –DQ‰ž}è¦æ›¹ÂsÖ{Bé×K£¤‚xD€Qó°óQéù’u‹'ÔácJ”ªPÓ4-Ñ@‰Æü!özy=ĶÇØk8¾}^l]‰S“éü×Òy®I/e|SŽíW—x ŽP’×é ®+绉•eóÓâqÍÅNë~óÓæÛ´,øb%Mãà*ûð~õ"ZTãL1©T¨Ï{‚g*¾.$ôð`–Ð!LÝ[9¯ÔFÁÁôŽ+ãqP´`ŠEÃÏ8#BG>¢¸ÆîÒX1ÝÅjQ<àÁ¸•´E2}X;°rîcøð tþ¬kµ¾ ûÝb¤çÈõ¹~³{K¡R¬/Fû?¢ñ'ç¾Û=ð¨¡Ù+ )º9,pä›)·Ög„ + +Û1%˽%"”~¦Züô§\,—Òtë¸õàZˆƒvH±4ò,Žƒ,lˆ¬» °Ö£cI=ôK}«b¤J5çÞ)p'Ö(œ1ý¥P)–ñ” FM 0à/”nÔÿýãÆí-bÀ7*èî)×L¦Þ» +€—öá+âÜË|÷NÛ…§ÚbðTùSå÷UÞÈóò –€ž½ö:ß-çã¹ ¼æJåŠr§œdø‡ÒÈBIÓ´HlÞbþ[½¼b×cl5ß>/vn”âÔŒ–å"×õÍÄÇËèeÿabµù⧻x&°}ú5꺮œï&N–aÌ×aYs¶“/7'ãÓæÛ´,øâ$Mã`*ûð~õâ§O«µnQ¨öqOÐ-Gç’{軵°8ÿíSÝŽ»ÅzSSï¾ûçE˜ÊJ$B-¸ÑhKº?š»5¹‚±nCîÍäZQÆÔ±0$aZ /@ö¶~IbcG£@±çã? õòz±¨W Õ]ß>WI)Ôê^@sY·7ŽÒ?rÿ¡FSâñ!·}„±€ÓüW|„æ›ãnHÊ´´ó!Tç!’L›!)ýÛÆm˜.Ü“†µ¥*I÷þø!<$3 :@™È‘;ºCGû™e¯m´ ”°çI[ª©Gè¹ä=ŸÑdÖ‰âÕÛLzE­Ýt«]ïøßhÑz`9%ª¥¥ùœûCž%×=´ù”Û"ppé[ÌDjÐúÏ朑Ó9=s ž›æ_À>j„yÔĬùŒ¡ñ×n=@gÀö:Q“Ðm4tK˜JrÆhqx™úm£6ŠzE!H©‹´}M'%œÁóŸ˜æ¼zN€az›Yw<] õ(êCѽB7¦s°ÿò'Œn{‘ F¢K¯ëw¦C¿ óF…:`ºéb–\\ö"§ââ›-N“î¹çñ«ѵY4k–€Ÿsüô_š?m¹¼¦<€¢ÖfÑCÊݺ\R+K»C‘ÍB’Šv, +ƒ. #Úuý:%H…Çs²j´ó‹{y½XÜ«ë®oŸ«´¨r¶+ƒJÔUZ8JÿÈý§Ú‹ˆÇ‡ÜvöÂiþk„(4ßwCZ¦¥k7Ýyˆ$ÓfHKÿ¶q¦ ÷´„amÉJÒ½/>¤¿âðûb9£çTR3î>ZtÔñfà¨ðÞ ÐRAÝ¡'‹÷d¬Ièæ3$yÎ LƒÀ9-Ó +9-ÿtã˜3.)ù$‹€iûžEjºÍ0%æÚ•6ì4fèb­9­[êŠé‚ü4à +¶qdKÝ÷þ,¥–sÀQs-,í'@‰ujxh| 9¬ýVû9WÐœ='0ÛR늲8æ¹cènõÜ/ÓÍãÙhE [Ö RmØsËzÒfä!ë;‡îÜñDäWÒ‰¡¨Ô3‘èF˜DXw£ö™žAK¨;ÐEÇL·E2¾¸¤ ¦â³ùõ]œ€OéF?<—®‹˜B­. ä´@N+äôWJÔì¢DÝ3émæÜ­,:nE ¤©—ømºÄ_èÏX]ñiºkqñP¡ Ë^÷o3å~‹ÑÜÜbñÝ&:Ô\3ýxqùSäÿt À’¹c €¹,é‚r”î£_'ûMìuÃ9!dµã‹Åzy½XØ«Åê®oŸ«¬(Fê8»*ëÁ…£öÜiŸ?Y=ì+„Ó|! +Í7ÇÝ•iiçÃåþN…o7ÇÍ•þmã6LîY ÃÚr•¤{_|H„ЧÈ>(ç²çîšúuoÈ£ee×—¶ˆÜ5Ǹ7Åü°¶wC®[¬oXÄn\!(Â;6£¥áë†[ÀÖõÓ>ÇMW‚äºS7ì¥ïÕ©\ »;ÉS¡3R~pqf3Vº}ªXÆC(5W¾]gÉŠB—ªâ•âfç49Äí·4óö¸Õ|i2¨¨ÇŒ;vµæ²ÔÂyãŠg§â³oz#¼âFÐüñ„0Hô×î¨$MÓ¯&()¹tâ^G¯ÍÞ¨ÍÑ:´W¦âAòÃÏá$ ¬µ¶Ïr·ãO„¨é ®Ü9#äÈõÐq b`rÙöÝö  )Ê?Ü!2hQŽÜ˜‚fÉ=V'õÿ#«Ó1r¯Ý3Aâà1㤠„ê9ÀPê¾ß\îï,"ÍñÆ·Û0]¸g% kË•}óûêCŠ" ´ eÃÒM?/-õü˜~ÞüpüìÏ›»E¤E=Ñ“z‚®ö›mto#ÿçŠÊ¼LK^Ò“5§(_›£¥Ì¶DþG%õ<ôÝœ'$_ö¦¡[¹güJ€Û¦KÂ\ç¼yà6vÅêÖ±¾ÄO+àÒò~ ”cW}i¾ýŸíÑór¾¯,Ø¡šÛ‚q¸²X΋¦š,Ç7ÿã³îØ·$3w)º„N@Qj®·¯.6Z‘‡"%ȼA—ãs~<]2B—}” –=´Y¤ 2b ½ý"uÜŽÒ®¼4É(ecºðP£~—ã #ÀÈâ²ùu^6×Y¸½2mº¹€7Äq|ù´BN 䧉º€ÆìÑí"$"ò¨.&Œœé p|‰:†®Ø§Û5è‘b­éßF~–º8Vtƒ^ÒÓÛFýõ.çÒůˆ@Ø!Ï 2oÅÏ3B—“‘-0íÚ®6K´€ O`˜kèÍ©ùE”â•éŒ\OF »mFYµnFM—hŽ;VJ+¦£‰eHÝG¿N6~ ŽçÄ@†ãã? öòz±¸W Ö]ß>± ¬Ë•Ž³l‰.Gí¹ÿT$rÛÙg §ù¯ÑÜÍ7ÇÝ–i9žw"É´ÒÒ¿m܆éÂ=-aX[²’tï«)ApƒŒTËÁ7tL:¦÷ßWÔ±p`éCÿû L+ª‚}XEÍÀ:ê1楋Šª VQ3ôZŽ±§CW$‡Ì½§C÷KS—6ºGóEjÀ£î¥üOTñ©”ÿ§á^Iò®¸´™s×âBicŽiŸ.~+ÔqÍ ¨5[Ž‡~¼í2ëNxÈ szÖ ”k¾4_¢Æ–¤âÒ¸$ûç„ÑåXJÞ«Ð6uÑ1t‚6,zótñmº +g—‚îv,2·˜%¹d‹_ä **'hËOð¼ˆKçâUÏÍ·°D—¢(h]*yîy¢K }p%š¡äà’.cr˜sÓsI%êçuo¸8úáYOý• àÁ»d‘¢GèŽ;©•iÔÚ¼8Hºy]ÔFú³¾‹‘Ó9=ç»Ì¤X|Î~kÔí|ṑ&%ï5ÒVé’Ö’Þ<]l,Î@¯¬±¬RŽJ)ÝG¿ÎhkÏIm­v~±X/¯ {µXÝõís:AÖ"g +aÍDŽÃ'ö£Ádõ°¯@Îóq„(4ßwCV¦¥—û;‹Hs¼ñmã6LîY ÃÚr•¤{_}ˆ’½sèz¥þu¶é=£_ü¶¸S¤3,Òaõ]eÃS7<=ÎÐØ#[úe‹)M¿pÔ®oÐ{Qušu±p ÷LRS]o&Lö Ý«¼8f‹@æP1 gȘ빷yºðÂeoŒiRÒ.,OnƘ‡ NynÐòÜoÿ÷l§…Gu!ŸýŸ +°WUô)-nû®N¯r.~»¿8f:fDLOÑé[úì•Æ,GHÔÞWÌQE1•¾!]¢EgGL—îgX 9‡nÿM ЙڣYº9µfn¼j£\ÛX¤ó/1—$ Áñ’å™j²gèþœC+:ê,ê‰Ô3¤Õ YLÍÇ\Ÿ¾Haõ<'ª.c²ÌœI9a:t¡ªí¾eE‡ÍsÔ©8Ïû¢´†»D1{hL¢âΈé‚Ë9S³òŒ<ßÝæô"£¸LO¹Õ˜,Ú8MßBxNcr–+5•QY ƒ(*î¨Ïº@A\ž.Ä"£(Î/æF9óØ…~Ôü[%QÈäA>]‹Æ¿šµï8 åƇ÷¾Î-’ÉÖ÷ꔽÄûc{ùuŒ¸§v8½~ÜÄvŠø+‘‡õž“傥ߓ‰Õׇ}îâLnùò©ÄÐ#—“ën!弌÷KŒ~æ*’7 )ýÛÖm:ø"%-ë *ûáíîÆI–ß6%ëiÚ¾q\„¡¼Ñ'tŸ+¦FDèÁz5 —qÁ­”¼Ž¾r%iŠ™-[‹¦ °*ÂG–(NÌGíŸ=?’•ßFþÀwó£çVóäqÀ€^¢ !M»CÂ8¥&[¬O ØŸ»’r”FPM/a\lœ,¦7Ú¢£ ÏO8SqÆ(·;t‹\I¶%çsv"¥äõ¬‡]Ä-`g¹Lú€ðù•–p!+‰!u…É›ly­9¡K".ëÀsE,Š° +#p¦‡ËÞ²\³B‡ô-ÎÄ‘ë”ãÎÈ Þ‚>kÂèæ@7'rà|nG°¬W©PÖ¢€Æ+b?>±àb¼x€Èo€3“4?¼÷u.ĵ®ïU©6Ž÷ÇöòëqOìpzý¸‰]ã8× ¥Rn­Þ‘b²Ü°ô‹†Q_ö¹‹[ÄÐZýùiC—ËÉu·r^Æû%F?sÉΛ…•þmë6|Ñ’–up•ýðvw‘'zV¦l†¤ŸÈC€[ÛÞ´iù…Û5ã…‚ý ŒkzÀøÄí?W UŻƗû~4?îà»ek7džô§ ™ƒ×pkTeL”Ù…¶KäwÚê˜3æIŒ¶jFÛÙö(ȳ¤»2§¦iT•ùs%ž­ÊØfgÕ§Dmš{Áã[¨Öº•á3jŠU¯þ„LÙ]Ç eÖqö™Ÿs`W‹«‡3t%Û=œ¿sÂ2ž‰Ë?À8lÂå<ºg.6ö Ù³Ü™Rõqð‡¸zˆéÈakÓ…Š¥±ͯ‡Ö¨Ê˜*³‹JÀÎ 0ÃQ+·ß£2Š»?MF%œwðíšÆi"Ãñ§Ê-Úf¡¬w݇…Xï}™+eoëk5ŠË¾ÿç¡^~#ê)BN¯7‘ ‡×´ÂÄMî­„ÉrÃÒ/ÿoq &·|y-$.—“ën!å¼\߯gúÿ<¹nRú·­Ût>ðEJZÖAUöÃÛÝE²±Ç¯[ˆkÞrSy¢ ôLî<&æ´Rpn”8A9ÿ+èU‘†­«d)a3Tì]CˆŸ1µìf¢ÿä…´=~ùÓ€gjî¨z®ÅÇŸs‰p¹‚jKËe,ÑéõÜ…Rî0ÏQ9_&È4‰”rX +æ¸F1 œ+1{ƒóL\øwwè!Š rî‰jÊ£;Ÿ^])o¥ù”Œ«"²Ý‚Ž*ç^¨Y+ˆÐJôù™ L{ ¶õg‰hÒnáÎrJEŸáÍ&¢+è´B]Hr+tþ47ªê†Ç8p}«9,éÎ$l£9Ÿ¾@­"«¹¶4ªùüœ;r…º‚!O)y!/ê7ÐY(åvxïë…Ð|}¯Fœ=Þ#Ø˯cÄ=E°Ãéõã:v~ΚV˜¬Ü¿ÉrÅÒoÊÄjw¸“[¾¼Žïr9¹îVÎËõýz¦ñÏ“ëfa¥ÛºMç_¬¤e\ÅÕÞîî¡ÕË⦛ÉØ­çýy¯¡{i8üWpîd‰ÆÜ]€‡(püáï)‹7*µŒÀ§/ÏX4uÀ]ÑÈ cw ˃ò€Ê¢¬˜¬+µMS:'òBÅGÎç/ÑB13"¹éëdQm£kÙŸóïPP§X¨ùƒV„P¡ÐéRJL\ˆé©Š®¡Šu´Ši,-°×çºô% +Àº3yö1aæÏtØAT¨™Ú2½žOs°Éœ7“Ño( °ž[#çí:ªYü¡üOPÎü@ϧŽ<É©ÕöÆ÷—Äá2ê`:ÌÁWŠÎ?Ú­ù•Ec*c–Ï6Up nHb—+¨I –=!ɹðEKZÖAVöÃÛÝE”UW˻غvSPíëçm{ÔwøÑ죑þ ñm7y9ßM|¯ ·\v)© 軩ÁU¶ì¥ÿ†õÿg +¸@Wj…ÇLÿþ­Ð8gÝ¡ïµë¾÷”L/¹m™»99/Áy•'húîÐca½þ°þLÖzÉ¶Ë óÓKÿÂxn»Ì2O·^?œ?›sØ>Z‚ñ²¥è³j ª,Z£juË1N ={d:o vsZ‹„ÿßEz{½C®¤H­’¹@š]6+xˆmu5ûV‰N©.®ñO>fúôé‚ÜGsÈbƒT` \¤‘0-æe~“Š;zh´ÐQ[æE Q”-›;§² N¢.TKcH]Á•Ä`]ŒG›;}ºD‰rÎ +¨-ÉÉx Æ«<øþ¢ˆš,^(yF²|ç-Ë–žÏÙC¡ÝyËå¬Ç$ +«/Ð ƒÆzêFQB™šÉ-ë#GˆÎ{_g¡\××ÊT­¿>F¬—_Ç{ŠX‡ÓëÇ+­OZV©È½£3©ýQR<˜X}}Øç.nÁä–/Ÿ†¹rù/ûU“Ü:¯¢ | ¹Î|„,“ÊÆ÷¯èÇŠezÆùÞ(zì”W"™jÂFc}sÞMYY–~>ÅßÙ\ãÍ_›·ayá++aZ{®’ øÄÍô4:Jn;_·ncîBhvÄnÄ^XH û7@÷ÖÁr„þî\ .Ã)´Î!å> ÄåL¯ˆJmF÷ââ5– +Hsdiæy¡¤Ñ¡[& Ü +c÷%Šk\*©(`Æ]³Õßâ—àòw2žÈUõNÆ»®ðFÔ?Y +inSÞ}çW—ˆzÜ÷Qý­W§Åòhú7,ÿVοýÂÚ÷a+•šäI|ηef-ôî²(F -pQÄå9®Q4âr8BΕœè ’é™2 Ê"°å‚¦ ¨é2*v8‚ºÔÕJ‰3$ôT(i4H¦Û.`MÇͺeJµ¶ªþ³îE®‘˹|Ó½(éܧ<’¹”˜CÝ +£ke©ÃǸ£ê~:æQˆÆó“‡zy=yÔ³‡ÎoŸ79©lÐ(Ë- •§ æP†¢Ï“6?ô²ó;82/¼Ë_=ÃÆë›ónÊɲôó)ÆøÎU$]6SNƯÍÛ°¼ð•“0­=SɆ÷Í=„¢¦:2­¥î¶_¯À³ Á# 는äNȪž.ÐþšÌÝËC +GKïÿ18® $鎵Ûøî\ñœ£¹ÒºkHž»›®ˆÒâz^J¤ ¬ºD7v‹Áà9fÆ‘•XÍ“rëZÈ¢SÞ¥˜»O,©¶îÁ¶d×Dn5 ëÈÝ_)˜bB7baÆ“t/Ò`3çÀtu°ÝÈ%=ÕŠéA ¬?GsdY)ÉZ«ˆ1X B·è.WZ—Û?]ŒJ -Ï÷oCÏúˆŽ«‹…bÍ*t‹_n€ËSÐÿ%Y +… h[`Yž½qËrQ„-ÐL¥¤G¨Ï…+`É‚ª,Z¨„„Ù†”‚iEE&‹^—ªFšxK—BZÒð1.%‘‰ÌÇì·Ì~|òP/¯'zöPÃùíó&)%i4ûçMo+H¹Œìßþ'RôÞ==ô²óKD2Më_Ù£ðúæ¼›’²,çóù«Hºl¦¤Œ_›·ayá+)aZ;ÖdÃûæ"‰B 6i˜¥ÚjXÇÄ\¡»Šq9ÂíFÌ«¬g}87öšu­@¦ô*åU*C²Åm©æ¶F»íz+pÕ”Z² ÷¾¡ô¼ý¡ïÖBG(ÐX"”Eú tQÒˆÙˆ€ùÚC-R­ñÑ(ÐgÊWõ¡7·Dïž.À²èL‡u.%øçyn$0GQà¬×1B›õŸU¹F.[äòMu5º…"—#Úÿþ“(pE6ºÀºštc²T!“nBâ“ 0ûE\ºxÖYRK€¬{'-E[ÛÕ?Ó¡%½ÖX¡g­õ‘K߃é?a¼€ Rjíî'ý0uF`ºU©üœŽŽÍz!­GŒ¤{7Ò:þoKôŸ.×Àe \¾í`i^)Xn@ÿdÎ9ž  ©¸7WÍÄiÜe²ãJ‰¯§SöÊüøäq^^Oòìq†óÛçMFÌX&3Z±U.ã#{ªþ‰Åæ‡^v~ƒH¦iý+¯oλ)#ËÒϧã;›€k¼ùkó6,/|e$LkÏ“; ÷ÍE2…èAGéå{£cǬ¼@÷ß •|„CÚº‹˜¨>cº2w+tŸÀÒ¬ÿ1òÀ/Yiõ.æþ(Ñ:vêy¿ç…’äÖN#ð¼ºÑøßÀ·øå¸üàJÙÍ/]Ö§w"®E‘üÑo¨PwrAÚ±¡BQ=—ûêšµ…ÞÎÍ-r|T¢]ª °q1&Í‚iÑŠi«.šŽ*Œ–HøŽ0"ä¼r|½O¦W²„،ǢXâ9ß8p+2»C mAõ‹À„AžŒ +•P’ëÀ>¶ÓåÙIÿÏÅ“þ¤ËtÉþ?µ<’Å^s:^t¸ŠîL±EÞ}…&%Ë5Çu\IRmÅ€æÀYwè9ˆ5Ðÿù¾ÿX[¢x£h¢¬,ƒªºÏM[Ÿëü©:|ŒK $%ÍÇÌd¥øùÉc½¼ž<ìÙc ç·Ï›¬huû9vŠb|ÛŸÕOü‘Ç›F¯1›zÙù-"™gõòW&6^ßœwSV–¥ŸO1Æw®"é²™²2~mކ兯¬„ií¹J6¼ß\¤&æ© j­GKj†žÇß—±ÿO—¬ŸÌ#-Ð+…z§ïu¬À¿!çŒæ¨×¤ç ÚÞ +ünÛëx¥¤zDÆw4wk/R‘z×¾_\žL?žéÐtUt`ºCW"â|áY÷£…Þ?ÓaK´‰0¤ö.F%j›õ?F~Xk ¬é.Q`è•Šp„œu%‹wlWÿÂhTk=‚.?´ç¼Ìay¨5AòüitÎy¡s«-à[ür\þðX³@õº%’Ê-aúg:n'‚E+i8jÊ.Ý–þ3붔²H[œ]»­TJt²8tÛV§i>ÆeÌt>‘¸ŽÇ'ôòzò g4œß>7•”=Ó™Â- •m|äñž‘¢ØüÐËÎïýóiý+¯oλ)'ËÒÏË°¼³ ¸Æ›¿6oÃòÂWN´öL%Þo.R´L÷ŠSM_¸ÇV¾:îu r×/oÒPÕtAî,+ù/êIÀÜ®Ñò£i±G®ø“³µÕÙ±‰¾Ôgq_T[–÷Î`=ÌzgféŸã¸È]É“›#<® ÖfqVPý;§#/)¶èg™"×Àe \~¿ªTÈÚŒ±Ö¦ù e€¸Qµק¸Z:µåH9i«„G­M£*õ ßÛ©x×,œ =hu:dzò£9¢Çêt] !á°~€+˜ UQqãzÚÊ‚7ûd&Vkµ°cž¤(uPu)¼µX™Dòð1.9úºÌÇQ]5ÅÏOëåõäaÏk8¿}nB{;KU§Žì»É‰ry¼h¤è¿õöá·ˆdšÖcϬñúæ¼›²²,çóùM¤5Þüµy–¾²¦µç*Ùð~s«2ÿ¸KÄùqWàþãZ~䉺êÐè.‘ýw„î¼Ï‰oy@—@!†¶itl¡¯è¢‡ºÚÔ‰¢ÎD®-VjK—dñœ‡Ú}Bÿá-òPÑ»„î㜫zkö‡¾™BÕxÖE€‹:gi»Ñþmô)/W†1SHŠ8_x4>D\ö÷º•$ÜÀt/R µµéÝÓ[ÐaÛh¡ckÔ»oFØt‰¥0$]*iFìEÐó(pEu]Èm¬BEª ªB&ÛU +¢ÃǸäD1Ù| ÅèÇ'ôòzò g4œß>7½±™|ú%5ß’P–þÈã-#EŸj¦‡^v~— Më_™Øx}sÞMY–~>Åß¹Š¤ËfJÉøµy–¾r¦µ'ʯù~s‹U§‹H¼CɻմþÂ{USþ“jZ¡û?i•o¹Œo!ÿûU“œH¯÷,ÕJZûÁK;¼ñý#^u7nb¦ñ| £t°jµ@"•¤²²¾á`ö'ö nä¿ÕʶTZiW–»áT®jWÖŒÿÄù߀î-œ:¬Ò‘½…/%Òá‡ÊKnWvƒyKäÕ¾‚\PJÅQsKjÖ+}xo®•J»Gº½™K+ ³ +GcÊM¶ñ;ЯrÄkXÿÉÐq«?²»`v—àÜÕ*$ç\ZŸqJhÚB½žî1ðžq/.C]Õúâ`ŠÈ¬g’ܶ"×У›uÅóØÀ™SoŒÃ×PØR›Z‚qóÔûÊðÀójÏ8FÂLŠØõX.¨¬»áfEÜÀ,är„'.j»R25–r݈ã0oÓÃ9K]¦³QõóûØëéyÛ~Ä^»—÷“­iʼ°Â>=l:il.~öˆSdò¢ë4;¯+—·™•Ã0æëî°æd§u¿å×–×tXðÅJšÇÁ•úîõì A‘,%;ÙùA.Ù+ðLI*Psœsr@àB­h/•a-l·I¥/ã37Ÿ PóuÄxr¨šq„\³ÝÃVn="Fî¡#°ž¨–ÞYg2S½ô‡-©%»â…[a.¥$¨Öë'$E©¼e‹ß~ç×xËOÖù£ˆþƒZ[cPè Ý4ç mѣݿ¡r®uún||•ÃöÐ*-CÀ½S“¬ ú¸ Ûb‰¾¢”ÔsŽ·`û +dÒ™’gDäî‘έOçÐMIRÄþwÈö‚Ú!½ ÀŒƒOdœ©±È-MÀYʧjÑ#½MÃlá—ËlÎäj1½­žž÷±ëGlµûxy?Þ¹&öù¯,žÏ3h‰âaÓ13eñ³Gœ!~¦è:}óºry›99 c¾îkNvZ÷[~myM‡_œ¤yL©ï^ÏÎažsDHrêƨšü»Ãiv7ÙŒ£#õŒÇÐÙ¼ï¼ÄË9ì kŒ“/Ž·i;D±D¦óøçQÁ’õ cܦë¢LÍx«[Rçîä"½\Æmtå’*d eªé‚-Ž¯óø2—-?U,ÀÐam¶A'—’{µ ýá‹"ú"ª%÷MçBê 5sÁ*Ö]2©jߊ"pŽ\‹ŠäÞ ã’.TÔõ‚ ][ ¼z:lO{‹ hcÔŒ{±@kª[Ї¼¢Á:»õéeüXé°MtÔõÚ«ÁЭb[$Tsíµ2>pXGdÊÌõÀo;•„/Å9ÏÉ‹5ªOm%tïu÷6 ³‘eY¦s´}b1¿­žž÷±ëGlµûxy?Ù9OàëòoJ9¿ø%>Š‡MÇÌñ?{ÄÂ芮Óbæuåò6SrÆü¼xZs²ÓºßòkËk:,ø"%Íã`J}÷zvm¥Í÷©Ê…j7¬¬À•ª–¾ ¸Ú­ÐCŸÅç>­À9ÔV šÝ#[’žs§œúˆÀ9SJv$}{è¬Ë–» Õ¿à;zÔf•-¥ɹ6*ÅúpÙÓ‰@z:°12—{Èåö¬GÆ÷|Ö¿Kú6ç"m‹óQÝVéBÙ­/Gr©šGûZjïç¥øŠJ€»Ý%tFÕzvÆLŒÀÐ%ÒKÙº¦è7 ¬Ã³.$—Ì òSîå ¹œ ÿð¿ÑØÁvG°q7G~‘¾’þ1å±lC׸ bí2åÒ¶òâ˜)=Sïu>þ…uXàL"mËGUyñ|¤x{g›a‡urà6Î(eQ,KLšëœ½è)ôˆ1ÕvoÓ0>[f…,}ûß>vzzÞǦ±ÓîãåýdcŽ%VÏe¢>㤰O›Î?õïôgÈ uš‰×•ËÛÌÉaóuwXs²ÓºßòkËk:,øâ$Íã`J}÷zvåøÍ9GÎwhn¦Ëz$iß,ÕcBkyëJ ɳ9ðçVXll….T‹7H¹X$U<ŽX7©'$—8‚\$¶ã{(ýöþ,`Î9U‡„\Ž€ÓË”…³’³nT5:-¼Ì}'Dà°Å¸©SJÒúø”'2ÇLèÀ½¨séµ2>pX_Ž[|þ/ O{÷®8¾Ð™¤ZY +¨P-ŽÎYvF%)œAYO¥nA“õG=ú7ÐÅ¥O^Z‡öuÐC(©öJ?¿({oŒãÏÄ (`ÃZb&iµËßU¹#—Säru{Q½õbÁà6r¡]ÑL­x àFìgn>ɺ{›†JµÉ2+T<&÷±ÑÓó>öüˆv/ï'û +夲ÈÛùÕ/ÁUp¸jY*äõÌy+ÛŽI¹Rò{ X"~ W(_¨ú*gj& º‡µÜƒôÛëÙZPí8àâRÚÅÁ‡- ¸"Çõr¥êÚ÷·Ë£ôÿ€lÛ*IÓžñS±|GæWyË5Ð7ež©µ á|à*Tsû¼¡|Z‰2i­»·ihÑuè2«¤¥Äì>vzzÞǦ±ÓîãåýŒ“fÖæ¿3‹žßýÂ>=l:gŽ/”åáŸoq†L^tý”ƒb^W.o3'‡aÌ×ÝaÍÑN~x™9™~myM‡_œ¤yL©ï^Ob´ˆÒÙ¶Dù‹ëTþ à•ÿüÏ.¸#ù +²|?_\ú· •¬Ô?LEÿµ„¤Ro¸WùÖEÔWIä¿øÖ'ÛšZ¯‘áqG“x%QÕ h$L„=8f#±¨hõe]"dÇ»ŽB’´oÿö/PówÍïW9ùuÖ *y°ý—Ø4?#ËÖS=8jHª%¼ËnãumTü.¸oì"LU2`ÔF¬¨úæË8xµ)—käàˆ‰²Ü ÚŸ’³AÚ¦m+ij½º‡× f“À¦°HeD‘(Y©ͺÄþÏ~$·®ãÀ«øA¹Î|„,“ÊÆ÷¯HrKôûÊdd=ö¯D1!Õ„›Ý ‹ ÞYJP›IÔÜŠið¨õFÍ®˜±—%fÖ:N÷¸!{œDœïe÷ä.nðÒâþ5ì'Eþ!“¨¢#»·eþ†F‘LÊmqÎuw¦è3Ã0Suî³~ RòÙ³ïôòzöM/¾Óéòö¹*H)þ5IÜ\vexÈpN&ö–p|Ø×›ŸÉ4Ï-Î+§·±&×á4?­Yl8ï7}mz ×ß5 ãØ+•íô¾8ˆG)ãAJíÛq[òo€ŽÖTÍÀ=ÁÕ#‚Ðþ%W$‘,îZ·ô·«žð¦è®V-ÏøâÞbK˜n½_[2å8@nî4,ýãNT¥´q´àF©læÿ>Q¨–ˆH–HE P§ˆ_ñDšµÞ¿»>lÍC"pÒ‚²mùgŸ´FÈÌ’É’2Y¬R.åà‚§[ài <ýØ>smëÀqàÄÂV0þý%¶‚M,À&pa¯¨°´Ð®(ª¥·îhŸ]…RÎm6ߟ,°ж"SŽÃb¸ +lE°¹¸æFÁã¹P’M#êSÍ3E­ º%m«Þ¿œÃv™¤„)-hÞ/¤ì¤©X^ÖÜùcvú†ì—Àÿmœf¦ØçϾ×ËëÙ·½ø^§ËÛçª&%x“5æþÈkj,ÃC†ƒòÐŽ­~ +&Ó¢-Ú›èJK+Š±Å†%­¸ xh"5àY‘RNŠš[8ŶæêœÅÑ­®¨×¢ b' +LôJ!+&tñAF¤‹R©Ú^Ñþ½h„#2ד,7Àc°êD°ÝE&© ³;wh«Þ¿ºÀÇã¹:½UFE¯Q–Ͻý’Mýíº‘Ë%Xº»B¯¸U×Á=ÚKŠ}Iº¸ i<ýy1âÂmÿÕqFºa‹˜T¤ÖqæŠÿoK–ÇO·ÀÓxú!p¡ ¾‘,À6êƒT[UÜŸ.OA_T=—|„>"ë‚ê pêJ”jÚ’Æ>¡3]HXÚôÒP²¨-]~]òÃ*®”cRH²$*ÙZ²ô_s¡t‡+ÏÔõ`A—œ[èl©Z²æÀ a¡¨9Ç°•¹úT`/R•¶êê4`šl[+‹ÀÚÍs þãi‹RmïÏóý]4ûÞr¾ÄŸVÀÓß*ù&ÉŸ±e÷Ø-¶4G¨:¬´Àæ-Ø Š\bL¼PŠyœ)znü†®ó5O³‰,«Ïž}£—׳ïyñN—·Ïž…Ô³ÛÀÀuâ4–á!Ã)™Ø›™ña_o~&Ó<ÿ5Ú1¯œÞÆŠ\‡Óü´f±á¼ßôµé5\|W$Œc¯S¶Óûê5¤8$²ü±ëʇþ´ùG?í Ý;-ò§€±Äüà ½D¾ÜÉÃùɨkàUcK–_så÷º›¤»7À“¶LÙŸäû#¯Ä!ýQzÁ•ÿ!-¡oÞÏB%ä|Í÷—`¢ƒW*Ê ©‰° + X•ŒƒAš°º0·lAp"# ¥ÍŠwTIôNÕ +ãóŽ~G3UÖ#ýòRñ¢ý‘ +¢mw±x„ª‹RÔ¸Uõ^¡ç.ai«Þs„«éB…s›»ú/9,p`…­¹j*€a6å>¥üp)îC¡±Ô +Ht`Mž)kHªÀºh`ITôŽª "0Y"K üYóÖÑøs.ìÐ EÞ"gò} £LIê4™(šOž}›—׳ïxñmN—·ÏÅ®•¤ä2ÅÏÐDc2’‰“­~&ÓgÅu¿úìÙwzy=û¦ßétyû\lÌ”“'Ïá +ùæk&j´á!Ã9ýËÉV?ƒÝ×MGŠ–æ•ÓÛX“ëÐçËéºf±Ó¼ßôµé5\|×$Œc¯†ÿŽï«ƒøo*×î¥àHÁŒ» ‡jw,3t£PïôºÝÞMÍýJfèJ¡¸"àñ–,¨Â[pw3‰[áhÛù1/1AêJ¡ªÚƺþi.TBlcøgÕ`7Ö„ +k„$‹7/÷|¨ã¾ëF[8¤Vû§K!µº•û¤ 0ÓÍ;"5QP¢+Åt§æ—ÿï&ø†VJµlAï5¡Çl­"T¸/•t%‰ÜR½{IW&ýûUݶ÷=…O€ ëÁGÈ2yÙøþï}HrËt«´•ô9}é¢"“ÁÙÁº¸}ÍqÙ€µ4ªÞÒ’Åx0ÀŠg*!¶G0ÿB%¶Âò­‰»j"¦õûýT‹ +IØšWbÿ·€U±ú@1eÑHJ¬:ì%U +¥¶Âø |G+*¬-UºfyŒ^­A[jˆKE÷¿q:½ ÃD%Û´*¤I|õì'==ŸýЋŸtº¼¼/Ž$êç 5I–îexäá=™XìîáïÀdšæåHÑdÞ9ÍÆš\‡¾>nö [ôcç4k2|Û4 × Ÿ5 ãØ+•ìôz÷"\t‡dgeí·íJ|gäÞÁÄÚöŒÓr†®d5¶ÍW·RpÃÉÈ5>€ëxÅŽhw÷๭x5Ò‘>ˆÓÛkËöЫo±)‹nylˆÚ’)snõ|û+ú»%_¯¸¤FÔÅ‹G!i)Ë¡Í_ó!²¸GÕsLU7£.Š@˜B©®šQ¯ÐQ» TQWïëWtk5Ò”’+Ð> +›Ñ•bL€7ÔkÌZ+êÿŠÂV׆€WõØÂ߉ë`踄Ñ@ $tä}Ma«®~MkÌ•T"pó  -Ïÿ˜+?ý^þ‰–NÉjl½¨¶ÀÒÚ‡j<ćöɹU—þé‚ëýÊÄõˆ˜»±ƒz>¯üà†öÏ¥PâZ;×%Wr&±Uè©"gŽ#ÍCÒå eJ¬§·a˜Iýãj¸ðöãì==ŸýÌ‹tº¼¼/Îòæ°þìæ{ç8<òðš~¿üïãÃ>fþ +L¦iþk¤h2ïœfcI®Ãi}Ú³8p>oú¶i®>KƱ*ÙéõîE²D­º†À8B0w«NrðÍîÓMÍ-?è»:¾OÐù-ÚVº†É9n€ç"@^=÷þÅl,]EÒz¡¤¡­9Ï=MÇŠÞ?Ï‚ç.ŠYô/G»A%DHEÖ#‘ÕðÞ@Oö@]úg:jBwYŒ%µÚ‚Ð+o¹i®Ãq©üšæ²@.wÈåÿtÐ’#_PN©•D#öÐB¥0ª‡b&t¯yÚª"BÍ•‚åÖE˜®$ÙÚ¾h_ºÈ-rY"—/ c-Ú*:FÍÍl úLß>@C¯l˜v„ªéÊÕ#¥TÓG+…[3B€Ž«.À-†Ç¥–ë ä²@.wÈeü03*d‰ÛĈ Œ°)ÝÈCzFä96tÌìÛ¹‹²>Ж?¾¡‡‰b%‹’ µ¥—=x^"ºÄ;AgJþ«¿ ÃLêWEòo?Î~ÐÓóÙϼøA§ËËûâ\ÿ‹%I%Üß6<òðšL×&Ó4/Çñ[?vN³±$ס¯—ÓuÏâ¤ù¼éÛ¦i¸nø,IÇ^¨d§×»IÙÊHËš€®Ó nµ= pŸ´–±ÞSª›»×I9"íÝ¿{ zW ãz±ÐBßÞ¨7ÓÞº§éð ×uŽfàê; ª ¸©yI¡•EèÞîŠBu3òè™T ±è./¹ +dÕº°¶- t`Q÷øŒ(êF&“.™¬2¤¾àŠ:°“:ôX´m꺿£Ê”,%<àß ÆÿâE•˜­å9ÂÅÍ].é9Èšõ I92$aŠǘ\¯þ!…tR`®#ëz¡¬©êûƹE.KäòÅmHAÊZ‚Ùzü]¦ÇXqs£Kc(v„ªoO˜J…ƒ4ÐÿùQÀ5«®ÙQ¯L‡Õ%IÚv¥U–F¥TR›Õ»¿¤À­rfŽ^…8•£ãîW×¼¿šã!Ù…]óRÙ%¾žÞ†a¦šë´ê¯ªÃêÙOzz>û¡?étyy_œ‰ý¿±"Ê÷9Tý+ý‘‡—dÿ Nû˜ù0™›úÇ_#E“yç4 rNëÓž›“ì:+2|Û4 × Ÿ% ãØë”ìôz÷RÁp›RÉ­áu|›> {/ á„´™[ÏU÷˜a±…Þm̘»4´GaKJ”ìn€iÛÆŽƒ|Éå1KÛñîkwr‹\–Èå×vw£ææ~‡ãÓ3p£jµ Â’­¶íKÿ,G%‹‡:Žåèë¹ËqÖKbŽÖBï¿æF%qËòî¯'¬{:ðZ1I^IR9¢£øŽ·75×È­}ÔÖ@xäÐ(YJÕ6&~W|71dÆGTü[o"KÖr„ƒîáýAdùï°åKbþä«lAm*¼äôˆÐ²=[€knl­ó„ôÖâV—7Ô=4XËs9çÜVÀAs!UÁ$KñÉÑÒ"·Èe‰\¾,-%§6p!H‹Ÿ]ˆ-{=Gk¡woDÈÀ«ØZRì5µd)˜ªX©T=¢›Ûš.•RÉÚâªÈZ['B ‹QIÜÆÜ?.úQWÔé9´5ï8`3—¨Æ’ÇÆBøΊؗêémfŠÞÇU¡šÕWÏ~ÒÓóÙ½øI§ËËûâ`¥ žš†S­Þ×D£ <¼§·‘õ–&óR~,G óÎi6Öä:ôõrºîYœ4Ÿ7}Û4 × Ÿ5 ãØ+•ìôz÷"ÿpü›v£3ôòØ8º½PÀ•!˜g§?6s¼™,ÕÏŽî½þ"eÜ\Їô^›ÓÅ¡?É=j¾9]Üór L÷KÊ¢]ÿD/chƒ]Ç™ô¦ä"&[ü¸ ÇIÏYt\äÀL÷¢—$kúÒ¥‘ª(3â%6RØȨCÃW!55¼À¶tNòjõˆöbûi¡A–=RskEûÒ\n˸|‘æLIµÞ?Íjª’æ…R]óþ.‘;[ŠEL +$%»ŸCÕs¿£¡dÄÜHs[úÇÍ$˜4ÇÕsTQte‘[àlѨ€Êâ5Ï&ˆ4÷’Ç0ÙR©$Yƒ¾EÕ·¿£…LôDUw3âŠyEƒDÐ+*9·Ðûw"Tà©Ä°[º¼žNó$¬¨ÿšâŠ¸¯®È-pY—_ëJ¦’“Œ\±|×U0%N§·a˜Ç–c\MSôÕ³Ÿôô|öC/~Òéòò~Wê‰yø!k´û‚h´á‘‡—t!»{ø°[Kš—#E“yç4 rúz9]÷,NšÏ›¾mš†ë†Ï’„qìuJvz]¼‡QÿT…JØĦùö.ñü»ò¶²;ãfŠ*iø:î¿Q€w  a-Œö‡Û ïŽQñxIÃj½;ÄÍ”¥õ¸ß\¾ÕÛÝa{¨(ÙÚPÑ=îJSÙ÷ïÂ^G‡wۙܛ¥‰rûd‹¸ì¥tv»*œxé­¦Ýy²½‚š¥ã.ÚÂÞQLþ"*ß\Ê*Ü&ª?åÈaRé“FRt-v3{fÍÚj±;”?ÐÇmRâš»w 3»âRwÇý»°×È)) Âf@¡bë”}Û»K·W¼âI7nrM %¨wÒ‹¥eIßÕÆäˆû ×Ý…dj[\Í€ + “[N# j§€j“Ž›cjYÒwtÍæ,áÖnúFí²Í5µ€#܆€BQk‹û›Ý»°Û(ÇU–tˆS¹+IhÜvÔVc¸»W’@¹æ6Mõ]m¬öFÉJàQµÙlYk¦TãémfªjÓj¢äŸ{ûqö“žžÏ~èÅO:]^ÞïÊQYËÏ„Uc9ÔákXìîáïÀdšæåHÑdÞ9ÍÆ’\‡Óú´gØ¢;§ÉX“áÛ¦i¸nø¬IÇ^©ôûU“Ü8¯÷s +_à!ä:GÈf™T6¹Õƒ$G±LM)ó=ÛûU²ÑODªÕn4~zÝ|H%.<QªŒ2œAÇ•Šf˜©õ ¶5A)üOЙ¤îÌ~w-— e Z¾Z¨9+L|ø,ÆJmªf,„;eí¹Þ`– f¹Â,w°=õÚ'ž±m/š‚ NàVuŒ©É˽AßÚA¢%מëÁ/ØÎÎ}C»™˜ª§‘I3¢<4õfhªCÜz¯sÈC´ Æ&ÍÜ{õà}Q!A¼Þ}ðº¹@f†ˆPÒ‚—A±48Á”v]S20aÒ’ð™Fյ¥T¼.9(q¹·Üvˆ:UFu¢RüÈ@†ã´3‚ækÐat mkêQÝg‚jõÚ[öÐÞ*ëÈ!­=´<@c*fzb’\áT jÖÑÑÍôÇ­àÖ˜Ù)†/;_×1Ë0 Û»X º…œe«&Ózz›N q¼y¾«4ý,o¿^b§§ç—Øô#v:}ü~¿â£j.Ë Ä~m«%×é`©M¯añ«C|ÇïoëíEÖ•ËÕLÉùt¹¿¬™–”Ï•ËÅÌÉô¶å2|q’æó`Jýôºùi:->÷–Ô×јÅÚ«¢Äžu¦¤v”{Æ)þ·RJzäµâÎÒîÍvxm#V$ª¶!52E6‘>²Ú/p×¼ãÛë³&c;”Y]Ùá#¥ÁLYçˆCJ°Õj+@£ß…‘XÑŒW‘–¥G=:Ûˆ­&¸.ZZ4?Dij^¹Î‘²[Åc»îE¨ágƒxˆ‹¡µu#áÔk{pÔ¨îY‘æÔšõ¨×®”Ôú =¶FµèNg¾"ó¨ûÅ(–4¡ùH fç†::Ížù .ìT\„Òš3\9%¯.Œ4j¶F†oë¦]z• ®mÌ¡†‰%¡Y¶ÕØ:VÈÍG*áÅGJµ-Û<ýïô6²H†ó]¥Ú$î¾ÄNOÏ/±éGìtúøý~Eˆ—ªsÑh–ë¢)Ù§ƒ….ÿ3U•_â86°õv¦ì²®\®fJΧq¿žÎk6;­û-o[.ÓyÁ'i>¦ÔO¯¢)QâPÏ<ø¥vGùe/p ¥¤½k ;ÁȨ# s9rÛQRÛî(νm£‘âMñP'QŒ)j£T*?µ\¢–-jù&êx¦EË€«GÔn£d¦}E®mT•dÒz6ǃ!ÙØ1¢=~e³µÇ|ÑzÜý@3+¬°Í’¡¡ÎäjG­æ6¿{àkM­·©HH¶£"ÝKÏöè-2j²IÍp¸ƒïl­÷’Ñ´*™ª2œsƒj;ØnÎ}7¨wÃò]"½¶£ô: n!ËÜ×åਤÙz5“D£¼7ê{ä’⭯ɟŽóÃö…¸Ù߀0QMMðDÂdU¯½ƒÊ$§(!9šÌÄ­”›Ý]Þ÷ðn³8›!v¨IAZ i¸ÎÚöVËw¸¹Êém:-ľÜT*¹ÆÍ—Øèéù%öüˆN¿ß¯ø(Mó̇s.W|”ìÓÁR›ÞÂR–ƒ^Å'ĺbë3e—uår53r>A×\ìäç‹™’émËe:/ø¢$ÍçA”úéõêC"¯ÉlZ¥$³=ã6R×^£%gÔ™LJß’G-þ3êÈm^ú18꥟ÚÚHñgÅÍvä´ÂŽ‡› IÛU³~nu)áèˆ +)™+^«T6ªD؉d…‡;¶Óv$îq ©ìû±s”U2¯}Io%1{ìUåàVÂT[…k’J­t#Úð¨c$å̈ÊFÔH<´ÓÙÈÎ%îLyG#ÃÃNQ“|T“öv¥*æ÷îí÷wJÖ;÷Ø™$PATwõÒ«dlç¶F­j_“ƒk$“I%Sv4®C!žëQ=èÚ ™$QÉ\qÚ¦‘DI–”[$$Û˜#hcGu?&w>Él’LÆÓGCi;T¢m§·Ž2þê¼c~äQjl$[.a˶|“ì¶Þþ—ˆPÒZ`Pk•<+¤ðt4z•ÓÛtê$.Ë]‹Ð7_bŸ§ç—Øò#ö9}ü~ßl˱[k³£¶Ü®µdŸ“ΙXüêø£[oGѹ¬ —«™óérY³ÙiÝo~Ùr•ÎÏñ‘æó IýôzõµÇg(UûsÝ˦î×Ãù7µ‹Û-µË«Ï_u:ý*};mvÚü®ò­Ò_¡ 5×¾§m¡Ûº]A·¿‡n—Ðm ý¨_°î’{Öó?†žÆz$ ·¾'ßúß"?žãÙú§Áõý°óߊåOybnäÊ=ã:Cj;qsEÔ8SòÔGÏÛ»ùíÖúêŸòLVíÀïÑ@­YŸŒEHK;‚>fl‰ÄV 5qyÎ}â¿Hcri©Ÿ\8Ïaé­Ço¡ÀA±ýã˜;0p`Æ«ø#Êóö*Wʹ`yfɽ¯ X¢¨ôÍ| Uõ¾Ž/ŽíRï,ãΉ'ÑÍaÅ’H8cz9hFT*igx#¯½RƯMX¥$ª\q¥jµ—8@²FMÓ­š?@,·ïúšz#ŒB?SÜ¿¡ôœÊÑ÷7Jÿ–»|ú¡Ò•Ô¤1ë"ùˆõ!¡‡§kný:~Ê\Ž&¹[(ýC¨çŒÈ9S3íu~_àr \¶ÀåÛÀÍ­AÇgoÕز”B–ykæñM±çÛtê¤ñÏù®‘Åóöë%6zz~‰=?b£ÓÇï÷;‘à4Ü*¸›K˜o¦fb)ËÁ?¯â ˜<Ìâó¿Ñ%]Ö…ËÕÌÈùt¹¿¬Ùl¸î7¿l¹Jçç¿IóyФ~z½ú ¯uá'–ô‰tà>½B;Œu£BÏ{Ї­¦ àµæøÀÌ +]ÈRyÄp{è°r±xÈ!—µ»x [,¨¶˜¤X$ºØC¼åÖb‘ýòx +7×GŒ.7WyŒ‹¹p}|ÎaÅë+L²§òñŸb=$pd¾Óö|Wåñ”ó´_ ãsž‚óvÔ?o1RÜÃA½zŒó½ÖP¢¬×G(ýö¬3Lè9Œqg"Bð—¼sÇ÷ôFœ‹#l…• +ì(ÇñÌNn¸„—3fó·xh'Ÿ#p¸4†¹ÎÇwàÌkŠ™ê^غ=ð{x KBäx +U9lëgr@5’ùNy"Œq¶ßAÇ—‹EjÑŸÔò˜Ô"¢5€j9ù8S+rz›Njl1ß5š¾ôí×Kìôôü›~ÄN§ßï›…ÔÙæÖÜš¶+FJ®Óaú¦6âW‡ø„°Œbëí3]Ö…ËÕLÉùt¹¿¬™–”Ï•ËÅLI¼l¹Jçç¿Ióyð¤~z½ú ç¸9i²¶¤šü›bú–&¿óÓþI“+t&ɉ!¡gRážõaËi®±wF圫 NÛøà<Ú†”k“DйP´GjÕ:—T{#ÈeÞ¡Ê%rDÙÑùøÞ3c+ÈÒ·×yìÝå/­0i4ÿà4ó¤õ`xÙâ—+àò1b‰÷=hxàâ$æxÌq^vÿé@?Ik?˜¤•;¥ÄG¹|LÊ…”*to©Ïåã› ìüidÜ(®T ËÓ4÷ЇK¤-Ž?@±âÿ²_Éë:pÿNá äzŽ#d™T6¹Õ‡$G±L½¯Ì”íÇNÍJ-Q­v£Ñïƒ9ÿ1åßËBKË‹w‡~q¨¦ÜCGˆŠÀñœ=÷ñCéÉø(ž +½”‚é/Jl©\СYÏU{ÖÇ÷¦bÞGÎ+e…\¤°F¡4}\JG¶ÅL*ÜCŸs¡¤µ]à[ür\ <[²Sd\ÒæÛò,¤5ŸÞ¦ÓÌÔdYe#O}ûç9¶zúõ»~ÄV§—÷ÍÎJÒ"9Ï2”ë4g1öÆaRO#ÙÕ!>#x—u9SvY\®fJΧËúòÌf§u¿ùeËU:ßÿÅHšÏƒ§ø°×«¯0 šÍ‚nk@ƒÀ +¼DËp?pßþ-øŽ&ÿÍ~t ï5 [gò¬=ðñu®TSœ 2.Å3¤Ê…jFÔJÄ‹šzÊï \.˸|x³Ú‹üöÀoéVè1Z0e!Cv&€ƒôô:7œ+ÆÔ¥å¨÷É9SµÚ mÖ]8½V@Î ¹#j%GÎý ‹`çÀÐaC®QõÚÛ9‚µüˆ-X3ÏÄ,Æ"q³õ”ß>nÝ^-ÀÃ(p%n;À²9pÄE6—ÔÒQàS/B5ö~1jš’òBEq$*Äæ}ÆE¨Pب¨”¬é|LΙZìP'í¡_¡F<‡@Î…Š7Ä™8dëœhi'(ŽïåN)¥£þ9fu²ÒÜñ)ÏTç‡á€+•b}u œkà5gR×-ðø-Þð6²‘æe•3 OËϱÕÓ¯çØõ#¶:}¼¼ov.$Yxö«lrM‰eŸ“ä™Xl9øçU|“[YÍ”]Ö—«™“ói¬×Óù™‹ü|1s/[®Òùþ/JÒ|D©Ÿ^¯>£„—D×èŸ]yñ£)w¨(ºB—ø»&ôC—ôñº’HÃd=\LjFjÕ?A0BâùQú¬—lPÓîë)5 Œô8‡ Læ ¸RSÅK ¼ê¨ÍÈ­ +$t'KÒC_é…s{@ý]Ê°Îc;Î}Ô_,NbÓq‡:qr•¾D G‘êéã› ¬£nT½:ä0'ÔÜ´²•Œ\!—ÿD+žˆ5Å­1}EI-õrA€œ[2ÕZÇ9!m;t|[TÊ\ËÄr{ÎZksX•÷P¦RÚQ+Ó¤)bTT*• Ø rD±{K¦’!½E¦›0cn¢*‚ ](¥ÖûËøEZȬa©qOùø½È( Ø0Çœùdž)yÝÎDÑXƒÆ·é”RÜ6/s&7‹õçØëé×slû{>^Þ7[e§?³X½v\Ë>¦/aâ°†í!>‚ã5e]Δ]Ö—«™”ói¬×Óù™ÍNë~óË–«t¾ÿ‹“4ŸSê§×«ÏÐ6ýµVQM7Òä'îJ¹vvÞOäJ†Çx˜€¦>IHÏÈ=¶Öòˆltkä¡Ï;Iz`çýB^ç¯FS92ãYíõysä…$+žT +Õ”%>źü‰ßÜ™jQ¨ ú‰<Âb†L+ÇÒ»ÊÀÓ<å…Tå(® ‰\‰³õÃÄ—ç£|´eªÌY%“5î|x¡dÊ¡p<ÜJÍ´Ç `)LÍ°6ÿâ~,î8¦Ô7M€œâ”ÅÚý.^IEŽúÏ®‚:ºej€ÕéTZéùþÛ7ï¨p«;™ÀUŒª×~ˆpr%­:¸y.“„RJY¡B¹¶ŠÈy¡bùj¹µŸ;SôPHÎ+yËpÅwþL•ÔYªîd–ᇭN`GÄíüF…¤ZœœËQçR-BµV¨).‰·ÞȲm›P¦lvz›N¥¨yÕ¢[M«Ï±ÓÓ¯çØô#v:}¼¼o6vbñjò¬Ôχý.ÿL,¶üó*¾€É­¬¿—õÁåj&ä|ëít~æb'?_ÌŒÄË–«t¾ÿ‹‘4ŸMê§×«ÏPö:ÿ±ª¥·?Vä½Kiù_ýÈy‡ò¯ºSÍ¥áÓ +<ú´ï_,…DÔÈõ ]ZNëz4êêõÀÍÚÝ…`*KFêÔøEªÑ½vä22Å1˺dÌ-RICèœÇ¼ÁGÈÇìþÀ-4Æ´£—á…-” d̬Èæ€Í?€›fùÛüÙü1Û®ÆQ“yÏ®˜=È©©ôå9>ç°À•ZÕøíÅr{èBª;^>>çÀÓRëÛÐøœg’šú”ˆÐ?a£'y4ð[0ÞÈygB(OXÎaËÖ åœz•o€oñËpù¯œ\[­å)Tl'™ß^å÷€žÚN"°^¨²`ÎCÀé"”ÞÌ VèñÔ<ýÇö{o÷]—ØÎŽBÒPFpÁyJÔÀ%%ê!KTï¡X† +HЫp}|ΣkÈ#(¿‡Z@)‡5‹„‘ûh„`æeÌêä¹l‘ËÿOu?¡±¨ùe…Þ¦›ÿv¢»KÉΠñ¼VCL\°Q7¶Àv"ØTÉ­!ϤyÇVºQõú•ßº÷¬#@/Tj3ÈÄU(%9š-ÆttÖw×}ý;z96Æ&hŒ…Ô³B궋jʽX8/TAÕ’©¶Ò«!ë¶Fag ¡*;-t|ÆJv† ‹Ð9¸ÿ[ɽ`ÆWºRm€Àšì¸ùðñÜUcL©¸5Äþ©$)õ–8>p!g5@àF­•¾ñ[œN5ùµç-pŽØém:µ˜8ʲZˆ#Ù¼ýó;=ýzŽM?b§ÓÇËûfãFi?õ¶’Òu†³xUÊô•LÔmñ ñvÓu9Sö¼>¹\ÍŒœO—õå™ÍNë~ËÛ–Ët~à‹“4ŸQê§×«ÉÖt.¦ÔJ_L7éºP®Ò÷ºÇ®OèÒ¦?ªX/Q51^hÝ|GëÃÚØ +ÜHY¯­Þå +·<´q\è<×>!hXæÀÐc|);™ÀÒƒuñÔ×(ë9õ +¼FúaÌ6š#{&Lkt*®È+UmGÐoa/·—z‰›J?;ŽŸ]<î݉ºãbsLs1â*}½/çr‰\¶È始¸ûéÑø” ¹zOùíß#+jõ£æ?dÌÕD©å>+@¡§È]€1WI²7ÀÅç¤QÒÚç­áÅÀ¥Aªw¬€M-ṄCèõ£TµˆrßA‡/Ðp6=ʸcªv ¹B¹JŸZä‚›ÏÃÿÇ~Õ$7ÎëÀýw +á€ëÁGÈ2©l|ÿª×’Å•‘Çc{ˆW³¥ éfO£ÑÀ¢Uz÷îâv uÎ Ålm í_)…4Ú3FÐG´Ðd{¾ÒgjRI{«OKdœÝ¦sÈå²1Ëu ÝÈ"ÂX ±•^0™f>ÆeCp?'£#¾pÖËëÇqÖp|û\±Rñ³#)!¨¬H‘¤ã£Œ06Y=p‰óò9QÒ´ìœß&RNK|ŸŽ÷Œ[ôkçü2‘2þÚüN¾I ÓT±ïç÷ˆâ|&– »ªsÈïwùÃαç@YÚˆq•‹mâÞQ¥ü©‹S^“:¤ö”o Órƒ\|—s!Žµõßþ9WXX¼- mRþë”q½ÊHç*— »ÇtT$´ÆÒ½RtÜ!æqH<»1`üe[©Ä¡-Îîµâ¶ëC+ˆoëÜå£íe m}ÞŸóû˼ eÞ:½üå +UعîM»½B¯1¶q«ÿ"-TeC.ýÏd•ö~϶˜È$îhŸÐ %{Á¥WèšÃ32×ýãb!›6»dÝ­`˜BØHŒú(SL¹ ^> K>¡+þ8yL/Žåâ7§ë¸EZÖoFþ´vÄT“¶ÆèAç,ŽÞ?p!ak»hÿRqÜþ…‚rëæœEŒ,Õ=?ï“õJØa…:ºR æâAèJZE\²^(›xìE™ +×=Îû”‹ÇÚ†Åþ9÷š¸‹œ[à>ÄbjÏË#†"·ÍÈÝ<*)ãœÂW½~SÓð1.S!8Ïô5"ã¨âó'½¼pè' Ç·Ï'¦˜Çê/’òŠI6>Êxψ*Óù!_o¸C$^þ5AiÙ9¿Mœœ–ø>1î¹8p9oþµù5œ6|s¦5˜bÞ/.‚ Ç‹(þ›ýç~CGI™´ÓÀÍÈ~· lŽˆä8S,1º˘¨Kë¿ýsî¯çý?@¯džìQéL!{tTklw‘Ü·"EÈÓüŒÉñþƈXG0^°³Í^mÑ1t£bNÝ°ðÉ:üŧ1:š(;…ŽÄ(^ŒBœBÏ$õörïFZHœú"„þu£¿| +])ü˜¿.ÊTÙ!áì5¶h¤±ç×¾ò;Œ_å+×@¿¢Zq)r¥"n9N¡CéÑ¥—3%÷þþ¼˜X¥—Y«rlûƒúôœYBöØû<«Ó`ž©x‡—(“FŸÆ¨Á3ëNý¥PÔ,OË#¬Ñmvᣧ $"†eÄ.»t&Î6|ŒË¨¤`qú3¦VÆ÷Îzy=àØ#ÎŽoŸ+V,$+B¡ÆµqIÒñQÆ›‚?(õò[DRáås¢¤iÙ9¿M¬œ–ønÃiϸE¿vÎ/+ã¯Í¯á´á›•0­Áëð~q‘DEç¾²£)f>þç–gxÁÝt¹@GIŲ—5ºjgÐcm¦î_.JVCë¿Ýö¼3[ÉÙ£XæTÂÓÓÝ= #ÝEŽ­\<¸ 2µG q2W£ÀôPƒÏVÄHÔÚ²Þ¿\Þ’}Ê¥PIæ*QŸ)]·¦˜þåR‰A¼ÃÜ‚¹±ŸYQ°%U‡bqrR²½¬xgyç9¤Fty¼BžÿV#xŸÊT¥¸Ì--DrËzÿ%*´Õ@‹;ŸãΗ¸óÕÖBÖ'¿¿V" ‡º™#·Q±ÿêUæLVò^íÕÍŽrL%nˆÅAjµ¤$­\ºoCŠ¿Õ¤Ø¿X +™¸Œ,°ÄPƒKèš(i;Èy0E¡ÂÁk:×Öÿèã +4“±ÏÅj58TK®TÍgy +ºkŠ]¦©$5&¬k¤¬¶7Ëu ]Œ´î¶¢>£”·@÷öâÖá.u+Ÿw¬óH¥&Ä8·Kwô£ ã23òAœ?'¡Èã÷Îzy=àØ#ÎŽoŸ+V4Œ±C3¨Y±"IÇGo)fY=p‹H*¼|ÓlZvÎo+§%¾ÛpÚ3nѯóËÄÊøkók8møf%LkpÅ:¼¯.R"m¬”t×uÔ˜¡£¤bˆ®”¹@/Ø"­wì'à¨T€¯Öq‚nd–×%ëEé9íÕhŸBªm·N7OO£Üˆ³í%Ó>ÕR(G‹Í¥Bæµ5—ûËåw)ßWyN­V‹;ŸãΗ¸ó•¸DÂ3&Çû‹œ‰“î¹y¯ž˜BÝ›{e½dÛkÿ}²ÎpEyF‘>ºÛÐU½øÔºRÁŒçRë^)G +Ùgr)%µÝ¨ÂÛ¨Ïî×D1:$†(eCâ ±P5õ +]…Ù%tÇiQÉ,´´{sÁ\¤º1ÐyàÜÐúÅçH'ª¹,R´QÖ§øËýµî—uÌE@þŒ†ô‡)\÷†‹^Yw; +X綗öŸÝ7âl>;)'mGŒx3çWA¿FçW¯Â²ç.}B&g‡JwÜGœ—–srñ¼TÔ¡Ò9’ÔêsÄ(àü)ryt)ùa÷ŽÐK„#ŠásºdÝ(¨ã2'ÊøéésbJ¸äÇœõòzÀ±Gœ5ß>/ŽÎ ÉlÒImÍŠ žâQÆ›FŠYVÜ"ŽBX>'œ’–óÛÄÊi9Ÿ÷\œ´œ7ÿÚüN¾Y Ó\!ý¯.bÕòìÁ©¶Ê¼ù÷Ñ6¶¯kÙÓeWÍc.ƒ¸ +§ t£SÛ<ú—Ë8ɨ«Á÷¬D«¥V.Ý6ì3à9…¶Dûnh~¾ÒÝ™-r,æÑ‘©ëØÌüyK!ŒŽê‘sÈE²—ЕLC«ôry`‰FÄÍ èÝ;º2e {í¿KÎQ¢Vt/-ö Ýqèò›ÑTÍ¥Ö9Q(Á«OdtŸ½È¬ìõÿ.eÊSt]‹”=B‡¹Hª^-Ým7rÓ—©_Á(‚zŒ-ëý7$¿¹ EšCiËèpõhæ“u¿E* +è¡MéfkL?@ÿ]ä{1î²ú.†©ú?[o¹?ðû«Ü+ç˜ÔÛòôà,L™7Úÿc9ÏçÈó%ò|u +s;õ¼PΖè!æ*I ÑaVd,R+œ{5E$ÅTm/nõɹ©=#µ<")ª<ÝÏÿH.Ìœ±?_sJ¬:|ŒËTñÃ2N‰`üÿpÔËë§qÔp|û¼8™©h­sw®yíZ’t|”ñšˆL0äé!_o¸C•¼ük¢¤iÙ9¿M”œ–ønÃiÏÅËyó¯Í¯á´á›”0­Áë𾺈%ž¦F‰î{*¨µï^a¿2ø*Už#“j嶞n~{ßà #ø©o|1®”cùqØí˜q8sÜCþ$ó½ä|yµ'Ý€ßî_|}Ã.%´¾Û?á +7}Ér”g +âP+èÑ%ý8ôl+öËLwGäw·rφ(¥º¬O#›öz«O#­­8 \©êFº¹:ŸWœN›§_©`(RÙ£¼ÇÄ&Xýu}à5z9Æ·¢²×zÔ +ŒÅÔÚ¤u­Üy%‰!zä\)Dz—´ºD^¨@ì‘{õDÍ”»t–J¹FöˆÜ(hmµr3ðpß=$V<µÕJ÷¸;ÄamFbQ >n•³;¥ÀÅ«qÈ8'ŒAÙcçôªÅßï1Þã4áwòÄ4!¥î¥•.97²i¯³Üÿc¿Z’[ÇaàU|AHÈõ;‚eRÙäþUÓ’%6õFIFñSo¥-¸Õn4šúÑ‚ð’½·•ÈãŠÜ(%ñˆV^šì∌#°˜Ô~ +`+¹6§”À½wè7²œ‚E[1¨Ä*“¡?¯ #@eÏÓ©”y¸Î·Ù¨Çý3j=ü:£ì+j^_®J* ß3Sj¥Ýz­qezÓLYì怷Èä¦ëm&v^Ÿ\®fV.§Ëý噫Jk½å×–Ëtyà•4Ÿƒ+õÓÓÍ‹¸¶:o.©EJFoÀ᪥×å°öqWÙ3±#êpèp1ofÅRÉs¨rŸüj/Gå¾+ô¶^çÃ7(òhÚÚ]ÆK%iR,0E“|4>çFÕk¿tü'Ô‡Jvk‹"µlthäJÅv }¨&þEÐ÷¬åyþ{PK;ÿ§%Vzƈœ£Mk¼°•ö€k(Üœ«Œçˆ-ê³=Sæ˜c(nTŒ«óJÙ=àü„X’r¿ˆ¸C,Ât~ß Ê‰{àäbŠH,¢\”£æljìÉå·wQm÷€þË\L¹x&ÉÖ;úøS´Â[jÄñ_©I‰™ÏUK@#pµTÿ·\á–ÜòßàŽ*q…©ˆ÷sxà˜@‚«YËÈ,ÇŒ‰F™74t;hï‰Ã+Þ"Mú)!k•"{M:tnÅOV™²Û5ôJúót*L†Ÿžo³¢®ãþµ~QöµN¯/W¥1”ŽeV¨bZÜ°b\§C™Þ4Ó´‹]ð™Üt½ÍÄÎë“ËÕÌÊåt¹¿¹\Íœ\N—ûË3W×z˯-—éòÀ;'i>Sꧧ›÷°”u%—P+Ø +½RqïSõñ|˜.ß #(•VöFö¨¬«çPÉz…Þ(§ÖO¾aGö‡&ÍÙ„P‹*©µPÙt%óÏJÈ:z4î…~…\®Ë r¹BþàüUà¼ß¡)å^é€é—o«ün¸»yÜäâB­IŸ\@ë’¸7ôJ»Ç :9¢Ö=±üiуu>­†º3BGÔ¹+Ù>µülÆ•Àå¸|2ã62i1'QÔ¸¥L¥Ô>¶/–Ã9W!M÷ùñÈ{ÅF‡ï, <Õfw¶–ÏP¾\RŽ¹„V*îýð sº²÷¬G€nij?‚^OѨ‰+,pÏÿig—1·8 s@Æ…Z“½]nÈ…[hBv¹ƒ³ü„\TËžŸÿaý`[tÊÍ#’Ž!ÚJí¡t“(¢/"æzmýN!¶4*"ñ(‡³°{oŠâ¹3yn!÷9Œ¢jm/ 1׬ìõ蘆^©6Û›¢cBw*¹ì-tƒAÏêr²ªÄ&×ЉäÓót*NS†Ÿo³#3îŸQëá×e_QëôúørUºWT¶2±skºÆ>Êô¢™²ØÍ/‘ÉM×Û äõÉåj&årŠûõtyfzÄßž\.fR¦_[.ÓåwRÒ|ªÔOO7ïQ¦_˜öÊýðØ ÞÏéncéÿÚÞøª¥V½d²N÷1'’’¢J=¬^æ/‡ÊÕXo’ößб†y½‡Ô[ +VÒ 9§^êßF~7àRu‹Ž^RDàÈÔèQ¿ÃþøÕöÜ÷Äb“è +·\á–ÜòŸ0[iMúÝñxÆwD!I-æô¯äÎ{»ãб˜´#Ó¿r¹‡ÖvOµö~þ‡óuô$ÚÐÃ.tfT½Þcþ/tCà0hæŠ:‹À¹»ìASé•ZÝ`}x¹À\6—¢á ]•ÄrŽÇ8ÖÐÊ}à7V‹Zë^R³;£¦p.Ö¡áqCã¹Ißœ´‚ ¸éä2‹ƒuÝc}ÌÑï¤) )b|6n=ðá;T… •{ÈüxkáVïX~"ßF]‡ —Ô"êœgÝØã†îŒ4õÀ#ŒP¥RÚô!禿”]Ö‡„7ä +k½ç?±ËmÅ–)OŽXnµP*õZæyz®ž§sÍ”¤,÷¿ìŽûg{øuFÝW;½>¾\ÕÆ\Nµ‚t¿¦Û¿Ó¸N‡2½h¦,¾ìí +o‘ÉM×O™&†ßž\®fR.§¸?טž¹*¸Ö[~m¹L—ÞiIó9ÞYýôtó"Zdî'Ï*h¼!o”¬ö{À°²¼àžæFƒì¢á†Rç{(å#nùˆ[®qËçpãX7öÅoûîOÛnp}[%/%žN”Q8õ|Eß%“¹ôŒ®pD"½¿£ü{…ÏQ®õ¸ŽÏï®[qà¶T9 ãÐJJSR‹×›’}Ï GdËmJógtÆÃÎM!ÞÚ ÆŸ›ª˜›»ÈGÔ8´’¦/Åã<.rg²Ì!1h>ŒºqÆ͇@ÓJotçðÉ6èÔGÊÊyc“_ã`¼¨Ýƒñ@^K‹ØHZ¹äˆjq£Z­Üùì¼åå£;bèTêÆÜqä,K•v'4®2“Cå’="rG–Ö;âè*GbQÞØ‚FÇîôÌó +4ÞTâM ¸®‚ dmƒñ³3n¶-TÒÆ>B-Þ<$òȉ%M_ +¤óJ­Õv²ZÞ¢WÐs¦Êõô<«Óôñ|_ +i-¸F±‡_gÔ}E±ÓëãËÇÚœ(‹habïh1žß±L¯šñM_öv…×Èä¦ë§S^Ÿ\®fZ.§¸?טžùPÉ.3-Ó¯-—éòÀ;-i>Yꧧ›¯¾ì¦{Ê,7‡£þßòÿw…î™LÒ'ƒÆ§ %h”o4Õÿ‚õ©v½é_å|_-.úÉp7ph¥ºdCO§;à[3oõûšy¿Í_•8ï·”{àÇwçñÐZåÞXÆKE{ö"`ˆJUxúWtþ•l÷ïÆÂ].O-0ó”S‰È¹JX¡²ÒZ<µL{£ç€¦™WÙXx‡‘WÍ}Ü +€—=c²=Á9sîÍ<€'¢A›û^à:Z”³õ‚ù6òß?<)b“–z¹ bIºaŠÄx±;üa‹&ÕуFEU‚Ø="tìDÊÐÐa.ž4¤\¯s³_5ÉmóJpŸSèÆ`þ€µà#xi—7¾Õ×%E”ÐqQ æUVil¶zzz] +ïÑ6 ŠTMú±(€`H‰‚ +&¬ÖsÒækÆ‚ œàë¹jßK›¼ø9/‘ó×’:iÔJ—Æ}Ú ‡ÒÛÞjÙ §‡Í]˜ŒŠèZî2¸`ÀÈ}^,^Àyë9^,È\Ee¸¸¹'z r!±^ç ä¼@Î7ÈùïxK,3§–Zaà®ÞNx›·Ãû´FkTæç\RcÁóöôü‚s?qØáóõcÁ r³…™&jiY©ÓE§¥D˜ÈŽ?ßá+(¹Éå¯p/—óÝ‘”Ór~>ï¹:ÉO7GV¦·Í·ù´á'-ù¸W⇷›áŒ(: 1¹ÔPCÌ:~?aáˆÐ§¥Qí†mWr!Îkþ;T&=CwK¹Q lwѹ¤j¾6Œ©ó–ªøÚô5¤\D“Ô²G,Ýœu4ì\(P¢¾^ŠõŽþXà| œ—Àù‹À‘ \û}°X6±EŒ_vÇ#èÿlÔ'ÓÆ(ëÒ1ÇäÖBB·šŒêZ'zCØõÞ¿-õ_ß<½ø4qñš\†,RÇç9¤¿^LÖ²GCúSÒ×WÏ5"ç2)]÷æ|‹à5ý­Í£C–¨Oc]DC' Føº€”Ãs©!¡Žé`8¯Õè¾yÂàäB{Œ¤[·QI$^Br.ɬ¬%€!¡ taé;iÖEʽ^†¯Q”b6RJZ=f7¢–=Âîæ¡€YûFAéEyà°t¦ÒûâðœÃîBºKNYË1}{g©!mÑ<•ê!SWàùŽî"kqL螬õ¤ø^M4`êÊ©J“ƒUOMóR-DɼÞ§µXrÒù9kÊè¸ï?^pØÓó ÎýÄa‡Ï×ZZµ‚ŸS’6¾õÜiÃezéÿ(\^ð”Üäò¸¤âå²s¾;ÒrZâùqó´gqÒå¼ùmóm>møIK>®A–øámñ!xg>êRª‡ú}ÏÐí£Ò¼YUý?@§¹¼Â8Ù8œLÕŸæâ±D]HBŤ‹\4U¿3=€Že¹3€Žù±´Õ‘`Hc„¿°JÈ2ÅHPŠqDÖ=—;æ8¼«;èG+œëÍe‰\¿Ä9ý)ôU¹pÊVûÌX¾ ½üúŸ +}],Æ%&çqKT‰ÑûàõX¹ð5r^"ç/Ê…aŠ éèŒ9Wû°@Î ä|ƒœÿŠ-"1:µÙ%ì€oáâ-¢-‚s°ÖÃs·B}+¸7ü“í‘з.<ÕVú:<çK-¹\ÃER\‰†tˆÅÅlþqG «©æ;=tû¬¸=ë¡»¨ëÐ5¼¿¸&j}÷P£ ¼YÌQ5j™×FÑ!¡c,çÞ^&ð0ŠP]CB‡©C/}ò +З)#žû~´=ëJúº\*ßQúðÀ1a0ñZP³D)™xTè,¥×yè¸jHè`]%l;2Ž•)¹ÃÅ]à鲌^D‰J9¼Okb©6?gNlŠç/8ìéùç~â°ÃçëÇ -¨AŒ:ñskV|ºèô©xÛ|ñó>à0lžÿ +–½\vÎwGZNK<¯‡Óž«“üts¤ezÛ|›O~Ò’k%~x[|²Ÿjí{ö·•ù‹_w³Aì a£Tkq߸;*ª®M[TÔöœ£g·*à]É¥Öj»†pvïÀÃW(¬‹ßãæn¾ÁÍ·ŸLþñRÙº$Ôg¨n}å-Þd-# ‰ZLäˆ1E× }LWdT©Çd““­M2cB'l){¤®Í60¸Ô7ú¿hí+txàhEµÅtÅÀÐa-š¹—Ë·‘ÿøö¡‹S&îG‹Çꜯ‘ó9±@%©òZR,æ©U¡xbAJ»Ó@p.–²•Þ[†÷óØS·;œ€x*"'}âÞ\¼$Ê^âGT,ê}…+‹ßSÎ à|œÿN#ª©ÖÖ§–¦X­YËÐÑCÝ´g}ø +u ¡Â}à +`ç¨PÕÚ÷Ðá9ð¬¶Ç`ñ›ißB#dE-Ô·Ð:G÷Ïy—&º1ç˜C«jÏùƒu¾‰·HºgçÔ䬫“ÅM“…¶Õè2&ëžÈ|èòo¸¸Jº¥Z‹ç‹È¹ÒJ|à-8ÈkMù&,RÁ!~xŸÖ‚ÙƒçÇŒ zÿñ‚“žž_pè'N:|¾~ÜpRucÆÉè¶ÇY©ÓE§Ï¤DlóÅÏwøBî–Ë_ÅËeç|w¤ä´œŸÏ{®NòÓÍ‘’émóm>møII>®A”øámñ’r¥†j¢TàÁ‘~Û ôIŸ}´Ö.¸óýL:>pˆ_m-“Ž©O.¼‡÷n}*ÞcúºFÎ×Èy‰œß6ÎÀ1{e‘>c ¯sÌ»õ¸9N8ºˆ¥¤¦u-× I/Ð5©æ5Ö‡„ŽdWzG`Œ”Ô8¤§crti=ëÃæé+!©=çš‘&VâˆE6vAç"-ÔøuÅy¶J!åÂè¤wä€u¦JÛ;1n`ŒhFd’sk©Y ™^Üî·£ƨÒ,¢\0‰poŒãsxÔ´ˆ*.!ÏJk–8dy¢‰qHg +tPñܾ@¼8í1Îm ^^„ûÁ"‚T¢†­°m(ð*ššèÚºôÍ•7/EwPúöí_ïÛ+}ûªÓ?yD‰mMzƒÞQ£jÖ }ø6v–ãd²>é¼ïÿÃs; I9g©ý07¾± 1ÔÊÉŠÕƒÕš2f¢tâÄÚïÓZ9 ×ù¹ä”½âù {z~Á¹Ÿ8ìðùúqÊ+:%Îõ6Y©ÓE§O¥Dì7|á½<.ÚÊeç|w¤å´ÄóãæiÏâ¤ËyóÛæÛ|Úð“–|\ƒ,ÍÛâC Ç솟—R)¶G¶Û¬¤® ãÇÞCš›ùØ:š^.RÆ·&f[3à¡Üà +ºséR¡ÃÑZOúðjqI\«ì=|mAù”Jƒz lQ ï1òno.Ê‘f¯3pŒ»U¸w œ¯ó8‘q Ûü#Û9Gn½-þk¢Œ§LÞk}xwŸS¹“¹¾­–½QÔ¸>‘s–=bËöÐsÊ’ë?¹ìÈ9‚‹³CHè"MQS+»¨åƒ…•;:>çžjö +¹D5ø"†¢Þ\†— t^©QHÎ9Q怜ÃÎU¬.Ûwÿí9/I‰tçàÂ×Èy‰œ¿\¬&Ó¾…F¹&ö;#ÑðYvî\Ê +çüKœ¥B¿ óLÞ[Ëðœ‡õDˆ%lõ’÷pÄíU¸÷K*µFŒç¡3®1÷J’î[Ñð~ŽØâª}TÜžóG(=jûO÷Bîðæ‚ +-Ü›bÆ¡óª¨@%.€W›Nn àTk;¼OkiS®™Ÿ³§éc߼ధçœû‰ÃŸ¯7¤Xm RJ¢Æ·ýÙJ.:}(¡™øÍ_Hbzy\RñrÙ9ßI9-ñü¸yÚ3m±óÎùæÈÊô¶ù6Ÿ6ü¤%×àJüðvó!Yf]æÚ0Ô ¸!fì1lØñfäb°°,Û…‡Ž¹‘-X¸;!ç$B½_¢PKm²F­¥FÚ÷ëa›Þ…óiˆÉk©t° q‘‹µµˆ4f…þÇ~Õ$ÇÍëÀý;…N€Ä/×9‚e\ÙøþUšËÒPóäÏ%OˆW_6’‹jö4 +¬µ'}xµäŽ æÉÞEæR0câbÀj=ðœ‡\šÕ£î?ª+rI‰<1éá‹Åž’sϯRdïÓb‚ÐRßE‡ïF¼à¡ÒÇtF‚Ê;A7A‘FÔ•JÏPúÉr w-ý\”s…˜.rz:WL9™IÆȘY.ñÇ%å€B§f4¾-¦ef­€^Ê%­¹„Z¨Jo.ä´ANwÈéïP.A9bFÎCætr‡D® 4 =e&mD™eW+ÇÜèýÍv¢ 4ò¹¶žò¡ÕÂæ4©;Tçm +FÓë|+ñéøI.Ëä€m^‰½~ü|‰mßb¯éíןÍÖÁÆwU+x­w¤hµù"óAôz±÷§8‚©,ÿ[¡Z]Þ¼>]H¹ÝÆúe«ùÕNv{¸2íúXn/|R.÷AÛôûî.­^~\3º?Èwüº§¹Ø]@{Ö ÞC åÎQ†Æ¡Llᙎ’ݘÐÃjJíu>lÌX€‡9iK•¦WÐÉø¨é )—°E¬5QDZµ"·§d»Óåœï–hè1ò6,Gž>j‘ò^¦_黺ˡ+ä"u'/~/ç´FN[äôiwÁ† CW¨¼‰¥š¿Vy±(÷œùÓTÎ R"m€Ópú+ÀƒqeO¨ò(ÏÀ}4‡Ž¸È9a>à¥Q<çaŠªÒ›âøœ'ný\±ç†÷#0ÛiC9:(‰¦„nFÜËeø͸ÄZ}üM;Vxk9 ”ç?~¶XNàÜ*´¶S ã«\¡¶¦ÅÎR=©)8ãQÌ2r%†í_É8£`C25Ûé£ TpGëã»z´£Rú ‹_þ)¹|†ó#¹h*z¤ôQ¡K)–´H[$Þ”Ð%¶ÛÉŒ9ü…‘Ž ©õÈîµÏç[㉂áÂ8©Gn,¾-S$ ž^ç[‰[ñë2(Øbý%öúñó%¶}‹½¦·_6[ŸTÂ莭>_d>'’Ý]â ¦²,W¨V—7¯ONn·×õë;ó+úþæõáÂÉüµëc¹½ðÁI¹ÜSlÓï»c˜óµ{°<ì´©¨årûmeµÜŠodé¿­¯+J¦MmndIŸª¨ò°14z8ÍÐFŽ|§JÙ¨ò9þSäTùÎyüžÞZÁ‰œoó9o‘ÕÓ;ò¨yÜ°Gæ<ê„s:WyØ­n ÔJ/–úe±ÔÈÿ)ð ¸2>¤ÈÜJ/ò/KåIVnÑ­†é‘5S#KFäa+&;œ^1xE}F‡Åo9K3¦–|&«y­O0ñÓçxKÈxWy2nZã¦-nú\»W =#Ftð¬ù*J“w`î„¡§'åtäqŧWæ)­ž¼æÃÕ £0Í[ŸQX!‚»ö#ÛèJ OÑÃIsDÂxÕÖ›áè&nñ·Œ},wÎé!:OáÜ ê2g& à&hé·0Â"}]ŽŽ;®h-¡R"\¹ø>Ýᦿá(»iÉ'ð +×ÃVÿOpJ(Ÿaü([ˆžQâì1?x?i&àAšõÈÏWùéI¼Bµ€5>çÑ:YN›Y3V8yè<ßÆPõ(J\=ŸRBám§åOxLmŽµYC›!ÕÖ&uëâ!V¯Óë|/%þίë§eõ—ØëÇÏ—Øö-öšÞ~ýÙlíá¯1T©VÐvŸ'´^N(¥Å‡£¾¶—8‚©,ËsŸ©Ë›×§ )·ÛX¿¼<¿³ÙiÙïúµëc¹½ðAJ¹ÜUlÓï»sXi~iEËA„þ'²|ðÛž¡à1´8Ér¨‚ZA/(}0žóHt»¹hàD÷ —H£Œšªu¬Ü…xg¸w,¬GB¢Ã`TÖ½rªawå0¡:Oº[qÞ°õE:¾§çu—ÄÐC.J,ùtÓ€J?} /óèÿTjOx‚NZÊ4ñ®8wã„b‰ÞÏ5ðYåÍŸÐÏoŸV[δ•ušKÎ3ë<-ç¼3T|/å´N[àôé.T‹ö](åYe)‘ÕŽÒÖ¨vÎN VkÆ´•ÙózK”¨h¥„rq ¡øðš×YZ“Ч ‚–°8MÁ±<»8OH‰† rØ„FM,ÿžý|¹  ÉQNµ¢c/˜ñMQ ©hR¥'õsgêu><ð`\ÜsŠE¡èN+ÊÀy¾¡¢F÷œÔ£‹6ÜêkHˆ§×ù^ +P”Áe ,¸xýÏKlöãçKìû›Mo¿þlön@­ò–\é^ŠZm¾Hiñ%@²»KÁT–å +ÕêòæõéBËí6Ö}º½³ÙiÙïúµëc¹½ðAK¹ÜYlÓﻃ(…ïªUÐÞ7TI-ÈãèÁQš–÷Ž;FF-˜È +àQ#ÜRYÁ +zqµ”2y·ZªTº@WÒ–Oé67½Òß[¸é3¦¯ïйðSÂÝùr¡hÂÖC^.Ñü9ÙôµR:YÉÙŒ¼Ô”ŽЭØëC +&â"yÍX¤óèÈϺÿr¾ +MrêÈb›~ßDyR)PÔó¤¸ ö~öU– pvày¿ÿ |‹Ÿî€Óß®ÐÔ{àãö5çèí¨oœý|Öcj¬;r¾@ƒóÒ$¥\¬‚»÷ãnoɪsS Í3y­µB5Q®ûî@$ö„,ý2WñžóqÇ€uli~45iŠÜ@š˜âˆ¹%&/jØO –hþóÞßï-çë¼cëÝex[Ì›·,†¿§øùwÈ<+ôðóJŠùrKbk!VMY¡I­EÁs¦Gî'¢á9•“´ÞX†.ˆÛQÜS, +M½/ÐУ :el¡1Í•&)YÏ\* íŒs  Ï‚)xÄú˜‚I =qppÞÑúð½4€‹JŸ^2©AÑzÔÆ”‹J?_|™ó¸ÏéHÛ‘ùø?ݧ¿Ü¨aÖ^dRs&žQçVK‡·ó˜é¼ZË艦@Ú»ùðZ Ê‹éåCÖgȜɓ5,F“:A5à t¬à±Áë|/G¼¬Óœq0Ö_þË~$7®ëÀý;…O€ ëÁGÈ2©l|ÿª×’lÅ6ýK3¯4úDÕdc‰1©V»Ñhà°·÷3νà°Óåãûál&É`¥8OüÄŠÉüŠ%5ðLne]”uçr7³r½Äú¼yÚ3m±ÛÎåffezÚr›®~XIó5¸Ê~ú|z\AͤLsï]lØ’º‡.«[¨æºr}O è( Õ:V¡cИœOÈk?òî4vsà;¹´¦½^4 ¬jÁ, ­ç<€\N[¨@φ‹Ôga#õιlQ¾GFÚ_èF)ÙÐÿ„¹d-¦•óF%¿à|x™{ÁäØ¥ÞÖ:.†…ndV¶Úè˜Æ˜©U9¢ínŒ€.j}™> 4uÕZs9æ(§Ò¶ 鉑+´‘š}ÿ­$ù…`d®Â”²nÝ!ãJIl+u ÝÑKÈ2tnúw¾82`¤K‰û">„ /hFUåˆô²2UO¡ 'Õ“ÕB¢é9+ ·Ó×t]„ªçe]¤ñõÏg½½Ÿqìg.ßG ±¡3[Aí7y.!à +>Jjx±Úòá·;¼“[Yÿ+$.ëÎånfåz‰õù¨iÏÝI~½™Y™ž¶Ü¦ë†VÒ| ®²Ÿ>Ÿ^$3¾:)3eïMlàŸ÷}j¼™ð†ÊÕ+ë•Ì½7²a[Ç\¼åÜÉŒCBGÃõPÑôN險†dEÊܳ>|‘b’Á Ös>@é¿«–m±äô"+FйSÓ&Ýs‘O‡‡+Q輤Ö{K€…»“€A­¨”ASQò¾@÷÷–ý¡Ãa.ñüãœÎPâ(8/µl CB‡Ÿ[;B-ûw"]^„Å?+t½G®Èõ….ÔÜz;¾BáŠfÜ‹%€ÌQ¡,ÚÇ–a1l÷‡¡—vƘ-¦Î©ä-èc²®8;õóÜð¶è™ØoD{øyب˜§ïön>~ëªqøŠ%Ø„Y´æ¨SEÒ^+ãS^IØbúa{e+Ã2ÎÀ[ëɪ‘û£³’•¾¦ë¢”ñèy='JÅ°~ÆYoïg{ÁY§ËÇ÷ÃÑJ©áùfø¾wÂd~Ã’žD¬¶|øíoÁäÐÀí¿Bâºî\îfV®—Ëú²çáÀõ¼åiËmºnøa%Í×à*ûéóéET«Ï¡N$ÒÔuܪnXï£8õ ·ªÊðŒÃJI lÞˆËéw±z¶CšÆnƒË\RãPc-ÑL^ZHè`ÝUÐúî‚qômÆE@èˆÓÓÙaÒ]/*M¶„>$倎”w„Zög½P-­a"ØK#©}v €ÜžÎ[zú4€qÙ°—!£®sÚúöΫt^ èRr‹×g—¸¾ˆèbª1#£F-dzJ/ºQ„ôÑ JÒ»äÍä2¤Ì¡ËœCB˺g*^z_^é_ŠY¢q“ †Qëu.ÿÙÐå@ÿ]ä[ÀR–¨]Øá"®£c­ùEÒ_éBM,dDÜE •ª#:äÂMûˆ>>ðBI_Øâð +•»¨òܨ@æñ8GVôÜú¬8=tLŒ*ó"aYGT ëŠQ9¯)hTD8¯^ðóýu.¤*5¢\ÐD£BÛGá.’¹/ÑGÎGé¿Äù¯@ÿ¹4k%¤\ZTc”°rÉ=]ÃF€’"³ž {bj=hØEmG¨eÜ1 (šÈ•*§Œé¢ey„ÎpJñÓ×taµ$[Öµ‘zÃú‡½½Ÿqî‡.ßO´´l ÛÂ÷k{. “ùËôªL¬¾|Øí¯Áä–×ÿ¢[º¬;—»™–ëå²¾ì¹;É®73-ÓÓ–ÛtÝðCKš¯AVöÓçËâ>'ÿM¬½ üûÞ #kx|ØŠZagrÉOVRo¾§Œ•óFœsïbÃö¸RãX#ï*—FM&“ŠÆy`zS”ëî€KzìpîFl¾}̪ä*¯¡õ—`©4xj ë,¸ ä!g®FÆUá…œ­PœûsÞà+ÓW·!'ÕÖ'Åᕹh•€7®)†*U :ÈEmýn¥ì ‘ÛP&Ó|Dóß:X—”"Ê%l‚ñÆ[™eHS„ÎKÎ=ôœöµ^æÔ‚ +Õ–V¨ qj}PŒ Ãq5æ@Õ\¼éå²?ðý ½R–³\w) ¹Øô!•Žn”]Ž0ÆýcT¤O‹ãרSòtDî Zñü‚ñ +茿x£…Jµщö¯O¡Ä­º gW‰#—L®&'«ÞO¢¬ˆ|úš®‹PN²¬k#×Ï8ìíýŒs/8ìtùø~"¥:·“ã!陟>Êô¦L¬¾|Øí¯}˜nÿP+ëÎån¦åz‰õù¨iÏÃëyËÓ–ÛtÝðCKš¯AòÛçË<Àðã*ή[ØP6vE^¥rȶ›0—¤½ [PWÜÙ©J¤^ýÃ7gë làD9S®5`q"Y;"Hÿ?,MK@­€òäòÅRRëíp|Â!•VR/òч©hz¢„¦”Ó–ªäÃ#—}›~®¤å…«ŒŽÛfXûÚ_ã`¼¶J¹ÒòwVJ¡lµoøÃã$¬oŒ¨LRs<ÀÁÝekˆ±.ÃöžFš“dȽ¾˜ÛFgÜ3iË[½gÄ|…®)æGh|÷®)ÔL¶T¾ç{Ïè÷©å¾sŽ_ŸpÄÒt ù:oTÝ="çL ¼¯Ðÿ ü •ÃYœóõ¹û̉¤%)`²5|Uâ%ĸµY…ŠZÏøøç…[¼X¼¹õ…zàüæ‰Þ8P˵WÒRö¾9çS¹×º )t]Þ:^²‡4†`\8$ë†Ðë@Wè9Þ!½‘‡ÇJÔ<õ‰kx¥X!M7Jh€ÓV+…ZÕþp¯•¨„·¸—x„ÃÆSN}ý p8ÃFsˆ¥ªtòâd }±|…γ{Ïy£¦~ïˆ~FçA„õꧤîòÝS|1ô˜þb•JÊ} ƒó°Jwª)[¼:Z™J«S®±Ö>-ÆpôƹOè ›ÚÐÞ‡×yØæ"°)Fî‹*Uó:“ùnèÕ]rk!Y‡ÖE{©o/Vˆ‹†Œè \…û2:|-ðìÞÑœ#窵¾Œ˹Ru³ƒz¦\®8Ï™œíð:‹¡ÌÚò\ÐB9±ÖÓó˾a­ÃÛŸWœKÅç4Dh¹v-ÅʸÔiŸøoÑ« 6‘É´¬™Øx¹ÜÍœœ†x>/5Í™¦ØûÌåf&eú·å6&|°’æ1¨*vx¹ÚHƒõÎöÛ8õMÌкl=¦7 +ÔÀEû`Pºø½†àrr…\.ï¼ +i¯óœãˆÂC꼤PÌ‚»4ªÓ÷ ¼f*z£u PB§æ±ä˜I—ÉüFŠ­b®z¢„SúûJôä{Ùydw+}o#*ª¶˜½…’ ïÑÑ}ôwàž©•ÜÛâðÞ‚xnƒ¢ šP‹Y†B›¢dß»É9r¹D.÷!}bÉ9õŒÐ9RK•ˆÐ!æÒ]¬R͹¹1Ü¥¤¾þŒBèRbÝ7,vxûñóbm¼6ÍQ\®²M—:mŸ\l¹èû¶‘É´¬¿2±ñ:s¹›i9 —çËœ‹×õ–[nÓiÂ-iƒ¬b‡—«x“2›ÁV‰´]|ßöñ}Û¶ß÷:iÓÖpè¨U6éwÿr©¶ôÍ\øL/¬m‹¦—€Üÿƒt÷¹ü—twf/ÅÃ*=¬½dDS¹}HÁ€õ˜‡J—äQiÔ P”¼O§üǤó/øýÚ$÷­ÌðÀ'™7í }xà¨þš½ýÞX.¥.W¸å¯ ¤Â¯Ójº‡­|ç’Û&]ïî]‘Æ•KÜÊÓKäÈ’Šj@Î+Õ˜ýŒ%fd±¤Vûnhxà&¤ÍâáF(÷Tz¥ ïäPJvîG8…ª¥>± Ï9lÅjí|xàK)uÞss± z¶|ÃY†ç*Ï"½•8 h)JŠ)󘱄§ª{˜ùWtVª¬üX­•="Ëö´Æ­ýu¯€û®¨ê½`"°®$¹õõ?ôÀÖ‡©ÂI7'…9Æ3uT£ ­…QNµËðÀ2^Q]ð²]—Ì”µ^§qÁ¨my.JÇáõŸ#{z>bÝ7,vxûñób퉋Šƒß(sW)”}ºÔi£½-}¿Ã.2¬îýW&6^g.w3+§!žÏkLs.\×[þm¹M§ ¬¤y ®‚^®öá¹ñÒ|)ê΀[âvÇ{?c`yï#Ðå½ïÐQ5$§¾‰8!Awn}/0¼\j²^çÃÖ»3Ƶ†Š¤gÈ™%T³ª¥×i:À ‚)^ö€¾ñE˜®Þš‹UJ²G!Úw¡Â”hÀ‘ZJ‘€[øšsßvE`üfÛ àBånÚ‡–œÇTyEè¥ï†Tý©‘s¿Ãù%õr…\þçhãšöÎA,Ù¬¯žœÐS’ÞY†çý§z +Ù …åÀÝRD7O¤µ'<‚VRÐU(¥¶wG!çÀå¸<Yp:[ê{Ïb‰špaçÉz7^æ‘K?^b‰YACÏ$5K@¥ceH= ð°q+° µ–[<±XÅŒÚGÜ΂Äe‰{ÎÈ%ìçM¹‹Ã7#v ©óÊ$©ôÅÿùåä +¹ü-?ÛËÅT9wn½Ê.0CO'-|™3þÏåð: ê+òïü\˜ZÅã#Özz>bÙ7¬uxûñó|é‚0‘’ƒ%T¹ëŽEÙ§K6Š–^<_ôý»ÈdZÖ_™Øx¹Üͬœ†x>¯1͹Xp]où·å6&|°’æ1¸*vx¹Úˆ•Òf@ÎèU¹½…mõy? c· ,EÑå +ܧƋ{ïÕÂ>GÛå7,lÜp´B7¥:͉SªÏhM¹ÏuXŸJ‡îa.Û“ž(›]üWœÑÍ¡»P.­÷Ŭ£b7É{;£œ#—Käò 3â]©{ØËæÕΘû( Œ"PW»ÓÁŒˆÛ*:ë;˜ç³Pb ¹\Œµ?ŸãO”RíKèðYÑ„¼æ{Ž¸Ejù +±pN}àžó*è|{ÊÇÇ.–s@[A rahåà\JëËg„®"S­åôQÃV‘² u¼ìé^[1¤`[”5¢¡3¡öÕ?€Ò½ºÝƒ>¤\à/ž9`XDga¥öåh|vôJ’ë=[ÒÑZÍ-(ô"u:úƘ¿Ïè¾”b–= o.tF³þˆŽ¯¼£w)¶ü·ÓÑ…¬qt#œÑL™KL_,ê5¨ÒC7L¼Œ¸Œ®EÚ$ÇÓ +gÍýù8·äu!Ÿ'ŸÏȽ(M¯Ó¸8Õœ—ç¢$.x~ÄbOÏG¬û†Åo?~^¬ ¯bU|ÍFÕ›^‘¢X—:í•Dôê‚mÀ1´¬™Øx¹ÜÍ´œ†xî‡ÓœiŠ½Ï\nfZ¦[nÓiÂ-iƒb‡—«¨%›ei’îåŒÍÝ÷¿äŒÿtè(Ë9csèV§—¡ÊõÊ:“¦È‚Ï”ÞRîÜ œ)=×½µœ—Kàòûr}F¹–ÒG»ÒtÏÚûâ°é x­mοkÑtŸò‡4t3⬡Zdz2ªÖú,Â!ME¯“o Î Ré/LEn@_.L•KTγsD#@Ï”lµ|E{‘<õ1éq#£)U‰‰Ü©q ƒÚZÄS9©gB=êY§”ÍrPÁdá>5ŽŸ_ðN¶{þ2¤\ tÕv¯±ÒÕÁºgwãrnRÓ︻oÜ ¼ÀyÉÒõ¤êqëh&«uà_á.7[Œ?VËŽG4jÔôêÒ×Ñ ä—+äòW8·B©Ö˜U4‘$Ž©óÒ¼/E18o)÷-]èL®½¡G@X/Ë(gèDƒtU2ö•íð:‹RѶ<—Bd¯ÿ±ØÓóë¾a±Ã¿ìWMvã<ÜÏ)|„ø!@®s!Ëäeãû¿7d+–èo”tËjâ›^‰bLªX) +—·ÏÅÞœIœƒªem]J6<òpTôÜdÓCoo~ §Ó[žÛ_ Èh^9½´\‡Óü´f±á¼ßôµé5]|ђƱ“%vz_$WÍ㥢¤­4»õà¸ÿ'k5ºÍ¥w„#Q¨6æÝ*xºk£FèC2µÜ–½þåWæuØî—¼ŸÿVÉûŽ³|C+˜œ§˜2/ZŽ– ß#ç%rþ¶\d(ÌÒç5o6½}*=n-|Cu½ÿg =ô-5Ô–õþ3BPÊÍ eiíå—Ýå€ïß%ïc}ML_ [ŒBCgÓ#‚×îZ7…ĺå/½B/EZKïß_DCúKà˜u‚’DÆJ'Ë-çR–J[ŠŠGtÖV,Ýsî…(‹êÁ*ç{ä¼DÎÿv•örß›óVsÑk [ü +–€Þâ~N•Z?ï¿‚†nç[ =€»X­‘íèZPâ]QÏ-‰uËϻ̊&Îyj9 —â=¦€ŽnX¤íBp>TѤ­»t\þQH\,þãT–W=µû‰?†±ø=HešgöÕçϾÙËëÙ÷½øf§ËÛçbo²BNJLyþ•Æ#æá¤þ!¶é¡·7?‚©Ìujæ•ÓÛHËuèóãÚ»ôú2Ò2|mzM×_´¤qìd‰ÞWÉD<æÒR7#uW¼A÷;•Ki[ÇÐõœK¨Ff†ž ”NÖ­Üqž2‡²àYéٙܖ½Ð].UkHÖ]0b²•“º¼¤V Y T}_0µ¾¸À½Ô ¯póŸ1¯Ã²Y‹v×Êÿ»Ì3””bÖ¢juc¸"ƒ*µí@èƆ¡K«i‹õ./i(‚í%Ý¿=#¼êááe§˜Žd1##ùÞm)}nxá{à¼Îß /I¥5õþSW`™{`¬¹ Œdž"7uAsAÖÒ&€îòûæë?£neÝ^¡G Œƒ1bjq|y^!ç?sE¸¦¶0ÇÌèn/Òú3,˜ŽH]»ëÅ4®Ô£ÒÈö‚sÙʺ}úKØjDP(j«o/Šüm/uÅju+£÷©óÀõß|o=ù=p¾ÎKà|¾[ +â–µô©–Àå?A–ÒÊåɆþ{ГrÁd`KËΨ‚yaý†\Üïqš¦ +¨>}ö­^^ϾëÅ·:]Þ>;Ë€¡:)*7ÿO¥2<òpPd]=ü¦2O»‡Í+§·‘”ëpšŸÖ Kì¶rzI¾6½¦ë‚/RÒ8vªÄN遲ˆøÙ5  Y šw>˜Á!öûSQnàòQþwÑ«ƒd‡gŒß ¤3åÌõpëݺ˼XLè•d zW1c–zöʧ­ÖÈ{êwï䢆GgÒ=윇ܺb SÎ-çÝúÐîºÌ#^Ђ +•ˆÐ¥Wn•ÞÿõT¬¥M\8{ER•-[ì“sôòÿ Eptô=è-ö¿¢Ï`½ðƒ¼Ø½ÒKòŒžB:ºU@õÍBwcLé1ÆPzJ³…¶Æ  GŽ<ÅÔ9åÅèÉ:ßéŠFeÝ d«õê-acWè:jY¶.i¯JÇ°¤çr¼3îtKszpKY.ÿ|÷#³§.Ëñ€·F…±múgþsö½^^ϾíÅ÷:]Þ>[+¤ìß׬«ä+Jexäá¤Ⱥzø)Lež&¿Š4¯œÞFV®Ãi~Z3,±ÛÊéedeøÚôš® ¾XIãع;½¯BµêïŠù 2oн‘‘Ô"ÿeàÏ6à™r`IãN,¢e­úŽ{¸÷_YˆH;Õ¼Yãæ¿á-±ì~=w‹@ɪæÍЪ‰Ô9AÎéˆ º?ç UéŸݳR¨`z'eÚ*ÿ}#öAjYï¿þ{¢&8që/”nÀ”[é_.=AEø¹ìÏ:cŽ™^B{zQ‹ŠÕ-Ö{…U0Þ1綖FpuCi9ÿ üiÀèµtÛ°ðVíòvŽ‹Îzl¡w/—Øq1+…Tº×¡”ôoõ?Ø_JE É:ƒ‰XŽ* ”¶1Úß_~JùöEØ:gPJ%(ô$ÒôîåâÞ¢"[ÅhoÙ? i ½{o kŠ‘CWØ~ÎÅ’¨K„ ê}QÉ!û¢œÔbzKØíŠf(ÃÔ2 Ñ’ó +ÉÏô1 YýØ4Mæ‡EŸ?û^/¯gßöâ{.oŸ+NjAvN|@uý•lxäá È6=ôöæ§ðÚ¨2ÿ•€Œæ•ÓÛÈÊu8ÍOkÎûM_›^ÓuÁ+i;WÞñó’³;– §ïpÏÓ‘ Lä ÞóÛ¸Ò»P<×Öµ (€©0PYa<ò¸v(h+¯tJyP?$ —yD­„¥<¬±¸™3iÈ ÁLZgé¾íˆ­dòîÛ¾_yÅVzçÛ +¤’¶f ^’ÛáVëìxàDž™[3ì¾4 ÐJß [#ÒVÞäofñ. %ƒáJJé^)ÙCJÀ\èc[uè1‘K•œ£ÿ/Ö}….Ó8ÝÚ6%ä vns­¬¦ñî1hÄ +I%¢xÀ­B¡ÜzK÷ÀÝ™¤e¡g`E (—¨ƒœ¨IŽqç–°Y‘ ¶cEà1÷Ö_êÊ Aå’%`Ü +›ö!— +‰´*ÿ²È?€ŸmB¸-mK„ò$ÀœÚÖß¿XÈÒzy„̶"påÖY"èÜÛP¥V.ý{ C•²GÞŸsI+cEÿ:¨9oé¼WoQNmj¹‰Þ]é>…J¦-è½²4ry‰–TB:zà ³¶r鿤áõéœoqÆ—À X͇—aIþ±òôÈÈŸý¬‡Ç£{ò³§§×ÅÑ4'œJÈÒ5'Še¸Èðž2ÙÕÅ_"ƒùw¾=öÂpÞ9Ýœœ—þ|Ü<ìYœ4Ÿ7}Ût›ÎÞYIãÚ©b;<_½H¦éÇ]óßnU9' Ä1WRŠä¾Ð3[;ÃD€Î*o5Ž>¡»¤(g\ÈqSé]5뺸—¶çE §jŽ™¡+oÓ>¡óðOíØÛ};*žRÝCéw‡î³£qþ3ÆQ²´±+çIwqôû'F†R(fvñ+h/(XÛ^Ô½¡;p&iÍ¥àäÝ¥…F¹úBcFf{¨7Õ•æß¿Ì‹ÔÍ6Ô§™¶–¸ÐÍ “¶‚Y _ʆ®ÓO)] 5"çq»?—­¤Ø'åŽ<Å ¹^¡¦ekí•uY›çº.³¢g.b〜G6—”¥¥<€¹xrÑ[ì¿û;nLm@@9CIS- †+Á%Bd¶˜Ž^€m%|ùnEZ çMKïUéÙ¨.úï¢Ð,f䢲Ë<÷£(ÚJÌíÚ[¨Vto "[@/ E/Ã’ØÃ$NQÀDýùÑÏzx<ú±'?ëpzz] ^8cñ+^wèá‰_dxÑ Ùÿq¼ØÛ¿Döq‡çOÑ©Åyçt7’r^Nϧ='Ùùf$eø¶é67¼“’ƵSÅvx¾z+)OÂ4µ~ÝåÏúÝ.Æ7¹Ø }æGéŽ÷l|SA͸ Š~Ü8:§¼¦ÖÅú§Ü^âóÑÿƒ‡ñMvA¹¬_øeµ|½å-‘os^J‰ÜC†Ø‡½ºëú l-•·úÐNéÿÆÏ‹COÚÖhèC÷Oi‹õ>8sˆ¬t£”Á(ÇÌa[iܼÈÙbV(CU•€Zq‘§J!ë“Àj*;pþrÉÿ }_èVÃB÷EÅÒúKèH{$Æû# )1õâ“8&tÄ›3i—) ø?“Æl¦ +™±…!À„M^iø]"Æô°áE@²Déˆj;Óýÿ.à!% +Ù†\åaÛPèq9oÝ>ÃÀUJPèb{ô¢û·Qñ-iÁè/,ª”ÍbŒBá­wßJ­®Öè—ß±Bkj£KǸɿD@Tq»ø¬Q/Ã’²·©ñ1ú 2<>úIG?ôä'NO¯‹ƒ½f4›b É®QßO†×Ì=3-/þLy~Œ€†óÎénää¼ôçãæaÏ°EßvN7#'÷M·é¼á“4®)¶ÃóÕ‹X’:–Y +Õðfèï[Û±±c›¡{¯N¸©û„® ‰1$tÔÛŽwÿ¶ñ-Ðó&ë}–ihÖ0QrÆ…5*k+—nöohG¡u^}P牛£)`]‰ý—(í3|Ý¿DTëç´@NWÈég8¬sŒ3êhÖº³-Ò%rZ"§mñ/·ü—ýªInÇWñ!â‡ëw!ˤ²ñý«²Å2]¥©od=b&+Q,jÂFãxQLëÏÓæ\@õ,Ï , …6é2*t/›Y“é +ÈOœK†¬Wßœ‹Æ„΀֎Èú+¦Ñ¤]âõÎåø«€›ƒçlFZ¬ºÅðç­bÊœ‡²`íºáyž×-†CoÄ°üŠØ#_çp~Î%å±U3 +Kâi®‚JïËó…å)Ðœz¶ŒOó´ZžÖ—'ã¤QNƒËP[N›˜¯BI‚ߪ +¹®€ ”Øùœ–TcXºn£ŠýsÄzûsŽ°—ˆuº¼­BW`7™å¶sÎJ>=dº'Fl{xÄ%Lë²M@FËÉùíš”ÛrÞŸÏLGôûäürMÊôµùµÜü$¥\בªj§‡{(£Í£®÷ o`± ùuK¥b ô¨,Ö^ †-¨øÔ9¬‡5w4¯l9ynQÜ^æ<F¢DSÀ]ÆŸ» d©ÁsêÉ’A+4ã”Ð=ú¯µ-ècF@µõ\Ï .V±|¦‡•Ò1ã cÜæÓ×þÐÔ¸w.+ä¼BÎÈùïä<±Í`-©FÞ;¦S)G¨Ëþ²˜µ‹]¤aFYL=\J/‹袡.[½hȤ‡]4zÒÿ3´ÑÄT×ë•q|IðÍ‘nÌ”çE^Á±ýZ—Cyžx¢cÇÞ¤ÿc¶¦çXâWKT‚.šs0ªPªö®küM<ŒÖ(Q˘ó´ÀÓÎs±PΨæ±·†¹=Äü)¯¼iÇf¾59ÍÅH„­‡>>ÑóZE3ðmÇ5&]j0si^eT(¢}ÒnÿhámUš+®€Owi§ÏiI1¦ò¼‹G8¶ÏêíÏ9¢^"ÔéòþµŠ,ÀÈ|M‰[yìÏJ>=dº&²=<â™üÞ& £åäüvMÉmû×ÃÓ™U¤%ÞüµùµÜü$¥\ב©j§‡‹ˆX½¶oÞkÁ°ú»çÐ_O5Üåœ1ÓÄ»@Þ7ÍH—©qØiº8”êGtŽýé"qIJ)y=ÂßíÔôî˜.ø¤[gÈù4 kÌ0ñ颪f¸‚…úÞ& £åäüvÍÊmû×ÃÓ™U¤%ÞüµùµÜüd¥\ב«j§‡‹TgºJ˜p*!XO}ƒ%%t††œhÞ]€WÖú1``k·@wp+sn€¥&ðÐ×Vû†·?ðÝ Ô *[?ÂŒŸóèoÕ·Ìô˜jà…ŽÐóÝŒÆÓù™¶$Ⱥ#°z?ñ&€Y7ÁD†ú®H±W— Î% múÅ1é¢ÀÂ}Öǧ‹Ä‘Öóü—.¿êòœ.ElË£I¤š²ÆBŠôÆk|ºTp²ÞŒ\@PzžgðèTÊ–åÚ½@wEimK[Æ,ИFÑûñ"Á4ÐkÝêÿC&Ý ¨SÎ^”6é™»hZÓ•XÓÅ ö¦+ƒ¦'Îzjÿ’ÔìÓ›¥¤‹9h˘rr9œæÿïâ"àMéhIß©)§Ìz5釣ý¹¾™&îFèÜf|iL¬/ +âØC?ç5b÷ÆÀ¸ ùÔþT}=Ò”§ÏiIç]ÂضØ>G¨·?çˆz‰P§Ëû×*²jmW½UåÇ¿Rɦ‡L÷D@¶‡G\Á´.Ûd´œœß®I¹-çýùÌ*ÒoþÚüZn~’R®ëHUµÓÇÃEji³ø:¦š¿‘ XÅ-í¹£ã6ãøâí6pWŠôöhXøa +²ö#A¾›×ž'£oä!“iU¥r;|øo¯äMÛ6úÈ9×èr®ñD˘òpv­¥2Ñ7äÎЈ5£(V0±ùðmH@Z9"ã{³Üã7®½EüÇÀbÊ4â–ŒÕ9M¸&}Ƈçxd¼õBž¶ +áÐr®Ö{ÛÑEÅ1'î´î0ˆRjíE%AÂ¥'J14z”áó­@FýÈ™Bij"7À"=ò_®¼+¿ëà„çì÷y3îPZ„KˆðqC|îQ%‘ø£JTgo1Æ^£¿a¯+¨Rj®Iñ¾<›¡å{“Å€›n\Cé;èT)ÐWôOËÙ=SÂV°V{]¿8HŸxò Å)@xȘ»qV`?Ä—ïO—¤<ŒcÉhn»rQï]yeI:{VÖ–°<´<)Ï Zn „½GÌ=:¨ûô1K4µº4=¤ù¿‚0‰¡§,"áGL {+ºBmÔ·¢ ²&½gùþÐM׊é¬}…fàKV»è®Ë(¡¸T¨<_Æ3«¢ÕC:Ñ+ñÉX”C5a‰zD–rÓ_á¹ÒºÜÄú’•é!ŒRU3©‹[³“ªAu]ÛE;}NK* A¦ë6 +TÃØ?G¬·?ç{‰X§Ëû×*tƒ‚a㦬 ácV”lzLÂð/d{xÄ-,ÎoÑrr~»f嶌}?Ýά"-ñæ¯Í¯åvà'+庎\U;}<\„4R=]$þëÞk ¬ tíÿÞ¡mÒpDNšrsI%ÀwDçâ}ÖÇg‹A)­ï×ãwPI47æ/Oka2(%ô`¹:}'tœ¸ö]h`´@ ”-k7¦š ¨²'㜠4¼ï“Ùküo©˜;miN‰†Æ»Ö/割Œ<±®¸{ï¶2°\cA[ÐGÕD4ËèÍ +[Ïó 9‹ýEšT]»óâõ²ìÏs‡Ê%§,¦.Ѽþ¼:b}E7ª®=ôñuQ )õ>w|à¨nò|L»(PƒèKÔ (×Þ.fÈzb“žx42pÆŒ†1rŽµ/Òñ cZà D¨×–ñ+ 1Zì/,?öÞæf€Iw볞Á¡+0[ï¹2½°õbž¡…4§Œªh ÅSšÅ°è^±ôa{¿ƒ—ø‘ª—ºö[¬µÓç¿Ù¯–äÆqºŸSøA|¹Î|„,;•ï_5ä8–©i¥»l7Ñ5+Q´ ?ÂÓ`Óe(Öïÿ#ÖËë1ž"Öáôöq““ÆA¿éï ¤·%¤Õ§‡LE@²›GÜÁ”/ÛªÕËÉåmÎÊyûóáéÌ*Ò%ÞòkËk9øÊJ™×‘+¶Ãë‹h Ù ÓE7x9êŸû|1îÇq{ÞuΙû¾1®|!0êǨê{qãÚ“%CÊcòj˜iÞ½f iNžGk½œÿ +Ï¿…ü;²ø×V¨‚ËÆô•¡¥Îe¯:Çä¸F¸§¨ùý“óKàO©‰Ò¸þ‡þPèDÖf|A¨ -eγöPEëg¹ñ[peÃ)ŽßCCXjé›’;ÖúødÑPDìË3ƒqq¨Jý\‘!çU6ºP†œ‡Y4äf‘9§WdÐÖ÷þpZ§àôgô<í0× VßkDchâ柵<·P…V¥åÆg‹€jʩ EÚSò\¢BñÙ]#§5rúûý–Ͻïý9èRÑzmÉ=µ¢sÉIu‡Bm/écòÅÁ6ìâý…ñEÚ´ôú2~°”ý_@¼õ:>ð°Šm£<»:ÿö#‹TQ ŸFHóZ¦ +¾ŽPÂȼOKŠÂw)ÆջLjôòzŒ §ˆt8½}ÜdÄÕçÒ­Þþ“;ñé–Hvóˆ+ X$ôs»Bµz9¹¼Í)9/c><™ŽèçÉåeNÉôkËk9øJI™×‘(¶ÃÕ=âVœÄ[”¶–.À <þÚL ã}Ò]ÅLã*ë:];‰\ã/©ŒÑzH Ó3ˆ~ÿ +e¢ÞÒe ¹Zëy>~Î5€=e¹Íï_¡N’ÈE_¥\›ä̹@ÅÖKKUtÞÐó laãŒÊ~ËôÙõI×Ài œ¾ ÜÐûúümŽ?±:U±%c.nP%¬Ë[ÌC)¡KX\×”ÐubUV¤5¹ÌXŸ è UÉ)X¤Ïyº$ö¹R¬—ÆñM—©>£=bž£Vs +£Aõ uÉÐŽÐ0#Óœ©E3çRödqLž‡¢×â?BN7ÈéOuѤÀ œS²ç îÔ@½¦’E)®aÍ㻦kYD`öÃû´”˜9dÙe ÖØ=F¤—×c=E¤Ãéíc˜@'70eD¬Ýz +­óõdº%FêÖ¸BÌ +*—í +Õèrry›3r^Æþ|x:3ÑÏ“ËËœ’é×–×r>ð•“2¯#Ql‡7q»ÏêëúŒÆq·‚ú; ›ä2ÓèD¦™dì]¼öÐWÈGþºLNc£aÛ:®Õ{qŸ+a5 àáÔ1©°HÝ…>f}8•[#“:ZÛ›Æ$Œ€ dTÅ.–hp¼"K!~†,>¢…K_¢ÈR‹fî€z=¸M|²”’èPØ{sž!çX6$1Aη¼âðj®®jïÎs¨9aÙ,FÌyfQduI˜ñÄž%/ôÐä]=r"J Ý1Ž´=ç2$ôàºpémîøú" [í|EWÐèÿ)É’Øææ좙½¢Eì Ë•ç1YãŒSQ@§¦}žé™é’V(—œ´¶0…¤¨ +p•5Ï)þ;¼OKd@÷eK((Æþ1b½¼#ì)bNo«Ð bˆsVˆðöïÔjÓC¦›" ÙÍ#n`*—í +Õèrry›³r^.ûË™U¤K¼å×–×r>ð••2¯#Wqç7qZþ^¥TSÌz”TM48^á&ç=ùª¢® WNåí.Èg¥9aíGÇa;Ç'ð˜yÙ¬ž#çeúVÆ Wjò swwÂdÎzÖ"Íœó^[o©ïýY×R²JcR¦;ªSî Õ3f\ywt2åS-”1ç Ý£ù˜zžzbÓ•–éj3ÒE±Æñs¾Åª¦Tô_âœÐ‚í)Ùâî}…Öß®ÐúD¶ o¨âý¡ÿ*ò¿VΓEAíuÿ!;Qd½2fE/›õDO=’΢½ gà‹CSí©>¾¼x©9kTÁ¨gËø­(µ¢“™%—¬Ý+`•œY÷裖SÒƒëEŸQ¦÷×—¦¥§KàZJNë’X³¶ÑT¥e²\¤¥†Co€Üê +¸Þ§e- M–mŠ±ŒX/¯Ç{ŠX‡ÓÛÇ*´7m³ÜzÁ[7§Õ§‡LE@ÒåaŸoq  ÷úùi…ÄçÉåí_ö«&¹uîç>Bð×ï>B–IeãûW $ÙŠd*Ÿ^2²?vjVe“nµÆÈÊõvz>íY8Ÿ7ýÚ´ × Ÿ¬„ñ> ­áôv÷"šO©}‘¹žÒêßÍwÿnYý»¶ª'ûü{mYOå´:i%ËôWõtƒîX0û2hô Ý­€Ë—Í:ÝÕÒÚ +–ñ=äe‰¼¬‘ï5ëy¥œý[Ûfðο¿ ü+3˜›»oˆ€ÀÝ~ÿapìY,½Bk[¡ýs.TsnUŽ`-º­s¹8ëÅäËl×5ë°îbxcøBàÜ£‹Æ¶‹öϹ_ÅÚ@À¹¸£Ã–¨öQL1mûhü1ôøôï’¾ØÓb«–îq»ÌsN;)w-öt‡;ý;ÖÏuxÿR©^› S¨RÚj Ž ÝS.—½ÄÕ%tŸç¼ !ú9pâ†nÛEÚ5Š˜Óœz³‹n æÇÈŸf‹Àœ×íìÒ?çB¶ÕCJ´—Z±BW4ñnÄjX«…=äÓûpë/¨:=Í”Rò§g?èåÏÙϼøA§ËëÇê\¡£ŽßS"q|¿êð3œdºèmå¯À¤RæO#EMóÎi5Rr½žO{VÎçM¿6-ÃuÃ'%a¼w¢²žÞî^Dü%¦„”"”ÌÐ=PW…ª¨tOIþÿ¶c t÷±X¥5àn“é ¼zí2 p71ŽE!KÔÇÙÕyŸÐjL­\Ž‡~XÔ˜¡*¶+˜>ÝE)¨>#jí.BZcËùÕò4±À2n¤†i-B5•YŸ°2÷ÀÎO±óGt¢TJ«tÎQú=úÐ(Ÿ-2—–õþ ]=qÕ½Q´W¹ ö"%É»½¨Kè>…’aõÂ3¡YI­`ú·ó ÛÖhÿ¸+YÖVæÇD+Š!"θœ»¡ç÷\±OC÷/›ð u+Uk…@º#Ï•÷ ÷ÚŠ¢ågØË#ªTyw¾è’u¯ÒR6¼AëÐS]µÜzc÷­Ô +(pKkÿX+ÏêE°R.Ïa ³v¸@@.TSiç9€NäMt«u_ ÀbQŠÃáxÖ‚*%λZé¬:#³zRJYÖœgâOïÃ- e;ÆÇ)ñðüìg½ü9û±?ëtyýX=œheœY85B¢—ªŸ8|aºèmåoÁ¤¾íöi¤¨iÞ9­FV®·þÜN×=‹“ôºY~mZ†ë†OVÂxï\e=½Ý½H©,c«N–ێ׭.oÀý(I[#èØÃ~t#Ž¢8ö».•[;øñœ+UN­\ú/QïÕZŸ óG˜K•ÐÊ‚ò`-ðŽ»õ ÝÇ°Ùk!—Óë}Bws1ÿ t.ºa‹Ž[¥F%WÔ S¨:²7zb¬ÏŒ‡KÝý…CLˆ¤Sç6íŒCiy—¤»«[Nm‘þùÀBj5¨Ã&¯J¾@õtÞƒÞ«½ˆè3úÑwIÿµîb”’¶± 8GA”ŠQÕ”!¥R•ÐrÞ¿X€Ý\©r2@ΕrePÊc°½ØÒeÅU‹‘»ùÞ8×'ç•x#nõ߈PµbÙ¿Q'"ÑÚ6ÿîÅâÉœ5µ9±{àn,–¸U9†XR•ˆW E(‡#WέÊ1ºPÈi/´ô™·Œ²ÖVçЕRÞðóŽ•ÎÉ!im1‘å|zn¹PÒ8=f¦¡Û¾ÿçìg½ü9û±?ëtyýXí NsœòP.÷QNâø†%T?ÑAÈtÑÛÊß‚I¥ÌŸF?.Í;§ÕÈÊõvz>íYœ¤×ÅÈÊðkÓ2\7|²Æ{ç*ëéíîE +ku©™ÛœñƒžWW=¯~þ½õÈž·nÆ{6öW²¬«‚j€VP3tqñlô¼ã9?ºy»GxA]zAü0/˜W*¶Ñ:ú×y\j/Û}ø_éüi×Kè!¶S#t¥¼îÖjOwÀÓ¿"saÇ}H@zº)z¶‹ñ€ôtèæïF+êß[|rÄ ól7nC5¥û܈œe#'v\ü˱´M¡8-k«q„îiRÝË,½zy-:Ç€ŽiŠ^¢œskŠJN-ÀÐQ•Ûþ½D-otÑî;ãn-ü„öÿˆÅËà,•Å¢$lÏhþ˜ˆ`#W¥bIº‘FÍ-Iãž\º„î­¨HÌ-¸³¨ÛFàBàœÉªµrAJ7<ºøqÒBï>x‰V“6/£{: ·éóh¹Ž s£˜7J´{Î}È.!¶]£Da§Q¥à10»s^)Tn•Þ±»Ii ]ùÎЙb¬§÷á6Så8=M$VüéÙzùsö3/~Ðéòú±:·R-«Ö¦¿IÔáR†Wdâ$ÓEo+ÇϤRæO#EMóÎi5òq½õçãQÞÅIz]Œ| ¿6-ÃuÃ'a¼w–²žÞîÞÂ…§ŒQâ3úÝA¥´.:pŠã¼ èY2$tw^ 5ðÎÐ+U•¶iý0 [@ +¦—¸CUHµ¸Ðµµ»¸‘F† +ÓË + ˜jñ6Tè!À²nIÛ>Ú}v)B’"p{Öür0p¬T¨Áë7x‹QLP.Îy)¶—»Lèã¸ËmBGàVçÿï¡ÿ†£­†X¢ƒÒ­Eþc±|û£… ·v@¹$’À­¡÷Ï9°+*™åÉ9êjT8fHè®.mn€.‘ªæ=Ö»ôEà ;„. ˜Ý(PȺÜ_üp Cf)†ÚN-Ý«´:e¸¶t÷_œ³¶œ÷\’ï({m¿GäÎyȶW¡=zâÐöï¹y—œUÝàWÒÌÏpÅÃû† ÜŒ£ö!\­Ému>wZâNkÜéïpÃŽžÂÄQ´Aþãâüwü.îøk]¹RM½@+¨“ªV2öpJ©$Ê­RºÇm$)>CáG#ÿN”V)ýwNwC‘ˆ8wÊpÝÞº¤6{̲‘sØh Û<•LCË8„ʵ„v˜è߇ÆRÛ†«•¿þK ²ÆC1H¥hÞ;{Å-•*ç‰pa^·N¦è½·™jµéiò74zö“^þœýЋŸtº¼~¬þ@/™æxß“‡Hç—2¼%'™.z[ù+¸Ëy|º})jšwN«‘‘ëíô|Ú³8I¯‹‘’áצe¸nøä$Œ÷NTÖÓÛÝ‹Äê/ì)”RÂJ¢3t¦œhP¼wñ„ZÚÝ=pg¼Z«•îq{š3«Qä°ZqÎk±6ÏõÚ3–Œ³ì-]ŠE¼_§²—¡»š·rÉ*­™@‡íCCC.€Ò½Hs˜ÐÍ3)j/J!¶½ F‡™±ü—ý*Hnd×aûw +Ÿ@‘H‰”Ö9BŽeRÙäþUêvÛò<ÿ7ÕîR³·:#‚A4J½ÀÔ“Üh¤ÓÛK.â×3…\:ç2À]$âðÇÇ®‡D]R½§@W­F©ubÁ´ÐDXYW£9N߈MBoe ^ÓSà^3e7â]èE7Ês{Êÿ+ã?w.ª¡äÌ(t¡–ö(Ï­µÒB#2úJ—yÕ1*2p.šÇ´Åœ´{òNèžÑ"%t°^%Ž:Ÿ_.ÄÁ¼V ”C,­ÜH‰Ó›"8Ï®¬qËK9' X÷\)gP@W-”¬3÷ÑÔê˜Ð'†3ÏÑè¦~é0)DÌIïý1‡„BXÞjHÈ•ïÿ¼à¤§çú‰“Ÿ¯Wœ4·¼†ÿ¬×J4©ý£ âk’ÚÕîBßÿõZ‚¸œv®«…“ããú~ÝsqÒé¼õÛÖe d%yÏ,±ˆÀ§¿Î4n’¨3è¥è½64+ô*>¦ééå‚m2o™­6ªe~kAÆMvoÞ“sŒ$RGè 2/)1Š¥W;?G4o–m±<ÂÎ1Ðä’ cöÚlÔùôÀ™£9§%¸FË;ôÏG´~/mä|z•ÃWšº2r¹Ô’ïuÐYã–EgmþÑÇ¥0Ï•xŠé^…Ϊ•\ çJ̺‡¬é^:Xo"c<' é­qnú€VäYcåÕê=ès +=…–Gä Í(*§+b)g(Pó2ŽÛsþˆ©(Æ2Úùô2G ­9œOb©IÆe-ŽÀ§/OhÜZ"jüè÷fŒãv¥ñþôÞs0TîòVCn‚·/8ééù‡~â¤ÃçëÇ#-"uFšM¤öëò5êë‡}­p…Ž,Ÿþ +x.§ëjaäøˆ÷Ë}ÏÙIv\,”ôo[—ñ¸á›“¸<ƒ¨ì‡·‹‹hHÙt͹AzÚŸö 8Š©xç® Ü—f W¸uW8Çq¥‹Å¾Î€çz#þOŒÎT^Üö6›¹Ît®vúöº9t°n95êçÒo7–èü¦o‡QŽmµŒ~ÎQ¢î7 ”( ‹ÆÑÓ§/QÈ%YK”@.ÄJôœ™Ÿ]ZpÍ{¸ËÖœ—Ф”8DÐÔþ–èžrÎKóq%(QÚ‘bјY97Ôòà̵ rÄÅh•”ô”eœè¦7·äÒÐ[¨Ö8¡×àIî£[@ß>Ä ùFx™ßÒ[P)£\Jô~BŸR+ aw4ô÷¢-*”Væh¢5ë|z™ÓÖ'·™³vë[Ú8Z@'è]ŠZŸ¾HûT˽"“ó@9e‘Òz:ºh²4Ÿ¾ýC,–ó8ˆÎÓ\Lcn!P9¼¥”ȹX]>—` Sœ™„j—õ™‚V=¼÷ÇŠ¦õmÆM+޾ࠧçœù‰ƒŸ¯W„T©kJßðQú%áhêë‡}­pƒÜòé¯Äå´s]-Œñ~9£ï9;ÉŽ‹…‘þmë27|3—gð”ýðvq¢KZ ¬ƒýa/_½úau×ö xw¾‡ÈÀÎ8/¥î}sÖaa±µ{6+ôâœzÁ e¬QèÝ'³QÍgUšŠÜqÆ™ZÞpFëÿYˆ˜ŸQ¢.2Zúü:O!ZâÔ92¨¦Ji‹ ÇUß¡DÁºXÞ#¼l<Ô*ce0F2ŽJïÆØ"k‘–X8c±`R(šÇôÂÝ¢pöÒì†ÔçwFÖù¢W¨ßðÅé'N]}¦«Ni耮5†Î ó✖Ht[hÞ„zlmÖ7—z¯Ñäc/b`½ÛcݺÅÒh‹Å­ç¸õ·þŸ¹¥…¬7|q~?¯A$RNç¹?”\ZÓqžÛ¾D1•¾‡ÑÐ[°Ç6:¿¿°G\Ìf„ *—Ü8º¢%ÖM按+…ÔqÇQ L2×`©.Œ·"×´5;¼÷G ­ÚúVð/_pÎÓó ŽüÄ9‡Ï×+F¼¨¯S¢ÅëŸÒd¹^é·ÄOÿ¸|Ø× +7HÁ-Ÿþ*A\N;×ÕÂÈñï—3úž³“ì¸Xé߶.ãqÃ7#qyî&凷«‹4Œ¹ëO[}üi'Öä ¸5!›É9/\óÈùüÀ[¨µÜ›f ­ÎyTîEŒ©ÚÆI05xNãäõÛ¤ÿø†‰ôÈyo•,ÖŠÔËÐSY GwN¹Ä!qºbEi-íV$}çy®"ŒÐÑF3a}¢µ|#qqx"«Î!©µ2º ÝT)“.±»tè)ßÌ”¬#¤§˜GÖ #¼´]¦ºí}݃ÁÜ)’ù ΧOŒÐ9éî²5pœl7Æ" +©Dgž£ýíþ{wÿèÎÑ[HÙ8…8åzŒ£X C.%×Ñ]¦×9äb²KÆ}ô,:rÎ0YÔPÝÆîÿWé•KLMù€‹Ž®Æ8V¤ÐúqtÀ¡•†ˆ1*b”Óh™sâØÒ»J¹ å*{ôGt¾"-YëR¤&ñ2.¦Ðä{ì7\_jð,xù‚ƒžž_pæ':|¾~\œ[‚y+‹“ =Îd¹_é×L!©¯öµÂP{ðŒ¯¿J—ÓÎuµPr|Äû匾çì$;.Jú·­ËxÜðMI\žATöÃÛÕEšÁÒñš²œø·=ƒž-72à/à°‚&7bçzÓ±wLÏ9ÄRïR>UÏûj1 9Þh׿üÀ7aNÀqœT¢ÙëLæIÚè‰bÎSoÌŒÖRšƒÀöœo.foáU:BiÄ?„JG¾´D59žA/­ŒJŸŸsL0æדpÞ¨ˆYP0µ€qSËôŒóJ'K[ÿöÀÑ„’ÊØ? ÓÎr¼QBdÂÖRKãd<[Þ£>·öDâ`ƒŠö!¨<µ4N –˜Ày«|ÚC‹ÜmC³ê\,²B§M\ “œ*À1VŒœs¸ gnÎ~lEœsc‘:¦E襗»E:'ô¼‰3j¸“‚uˆæžÃÌ +5î:ÆÑQ0È/¹×+äúG±\Lîºú¬rÉ¥’Yc¶f ë)ëeôJ!y=¼÷Ǽ¼ÕPиÞÿyÁIOÏ/8ô'>_?.¶§ÕÅs½Úµ ¥ß_£võ;¤à–O¯%ˆËiçºZ89>â}=÷ô-þµs],œôo[—ñ¸á›“¸<ƒ©ì‡·«‹ÔŒ¦_¤j‚‰Kê z·±˜îér è›Ùë¹UJÖ=™íÁú#ã1Žíã·‘ï&LÍÇ\-¿íÀò èÿ•ò{Œc ˆyÔùôÀ»¿[¦šd~€· @Õî滩’ÆY‰¢õR…¤t Šy€ÐcˆWáŽw +ÒÌø\‘¹Vñ¿Æ²3ttáìþÒÚX -Ћ'Bèp—dRé€.jc %€NÛýÁy‰iAtûv”C®¤rIŒRa„Á uДîæŒA—Õ[\¤¶1¹tÑ[SA"»è±ˆƒtÚþŸº”4¤«r&Ý4Z&ä\0ÑåQ,Ó:ólQCñQæÓk…7z”Ìé+-˜f„‹&¤6f–ùµRFÐ{akÎ4…Øœ°Aä¤SrŽÿÜ*åXèÆ9AèÒnŒÓ ¸¶¢Ku\áx +Eòá½?ZHë»ü?ö«%»q^Å'@ð#H®s!Ëäeãû¿7 d+¶©i¥Ó¶š˜élD)&T„ +…‚„öìèq^^òäq§·Ï›°’MÌ’î‡,ãÒ.©ÑG±»‹€ »Ù¾A˜)(óm¨Óç£-“ÏO¸¶§Gôòzô 't8½}Þ® Åã5ÍJÆ÷õcÞ§ý’Ú)ɇ<_ìrçGðiÒG²Ë]?2/;ç»)#ç¥?Ÿb´=W‘ì|3¥¤½m¾Å󆯜à´öDi>¼ßÄØÊäD¹ìm åúËÊí—•_Ù7"ö”¸˜.Ð}¾-kþb`»Êz¦Èb,À½ß©ôÚ;¬‚-ÀÙ‹_4dÆ™1"U¼A¤Ü\”ÅZÀÞFÈyPàìSn Ù†ÜIµ~ì>ç>”Š½$FèŸþ#²ˆ¢(€íxsX[Èÿvð,ÏhDl‘çþcâ˜ÍßgF¥ˆW!óŠÅs‚ÄÒ÷вغ(kO—Y\¤%k}ü" «. Þý{u ÑŠr‘ˆÚâÐsŸññ©B€ˆ1‡9v5¯uÁ²Dtç +–¶zÐÕ™ +ä˜Í3lÀv¼€dqè’¨ïBã×'9ËWüíød «ˆÞ>½FwÈø3æ8a‹9 1ÿ…Ì:BR‰é·\]¨¤xEêÍ?••œÜÉÂd3îšM" Ç!×óʽk‰a¸´pßE‡†N™ó4¥{@ vøh«Ei~¨ …üéѽ¼=æÉNoŸ×q ‚`ÑékšvƸ´KjÇ$ ×´éb—;?‚‹´éò_Ÿ2/;ç»)%ç¥?Ÿb´=7—xóÛæ[«JLÇXZ<¶Õ­qnÌ^Ä€˜{®_¤ag¢¸>×É"Â[Їä¹7#,©§Ëøoâú'åYmÕîòa>ðú%µCäùb—;?A6]þËÀ™—óÝ”‘ór~>﹊dç›)#ímó-ž7|e§µçÉ+ýýîš‹ÌåÄt¡%lN-BÏÉÐÕëJ÷d2®r^”R¸žŠì1<:"‡a® “p¯.ãóœWÍtiñ—•ù%ÑJ–­¬JôL+D ‹5S߉"ä¼™SŒØ‹Ä­&÷oU,„=ðñ3¶<ÛS#ÅÂ¥†Ô—DŒi·Ì1Ås#Û⢎‹pE#dÝåE´Ïzy±Ä½Ë¸z‰jDA'HT·X>fŠÇîÇŠñ›¿kbÙôæc¦œ!kÚc”{FÖµl!5édºGÒŸá¹R‘=L×3¦9´Ú·¢YG(YbÆ¡ãf;z•Â!¡“s½ìm»ä¹Ü"—o»ª½¼Dp]$l3°`OòñGeJ`Ç…î[VÚÐø9'(J)àd¡ †1=KX{ž*d¢=<îã“.Nté‰A\Ä;è.Пa-–º +;îÔ \áöñŽåðÑ–XÓüT!exô8/¯Gyò8‡ÓÛçMØ6ÕÎÃ-æ{Ca\Ú%µ#6«”ç‹]î?A6]þë¶$ó²s¾›òq^úó)FÛsp‰7¿m¾Åó†¯|à´ö,i>¼ßCQiÒ^«©×Þï|VûýÏjüYà~ræÎ-«È7*Éþ¸’èÌ¥ŸÇϹ/´þÌÙï;£ïg| ·€EŽ€¹'JŽ 0•Ÿµ‹¿Íñlu+ç¿Ã•oåüO,Ý•®¬N.ãçÜ[´jDA Ü„ØíŽõš:A•ÔÓe|9ÈÕ,¤¶0cï#@ÜD 5¦¼xÖÚ÷¢çÖ¨\#—[äòÍ kÎÚ\‚¤uKGeyÖ•œ?ú3èRc’¥ iÐ>TqoE|DʈsZŸF[d9!†t-©BN´_/Š Õ¸oEãרËbÞE\/‹Ê1çkF1B'rq1éÙòãÝ­>J)½ ?™æÿßQع¢ý¶ô}h|à(i©â,ç5Q_Y’¬”gŒœ‡‰ mB3ë )[Ì" =¬sñØ™÷p.oFA3îÀ·üù˜,WHȽsº»Û4¯\oYN 9>Ú2ù±t~ª@\üéÑã¼¼=äÉãNoŸ7a°¤2Ies›óù%µSú×–<_ìrç' ÈÞ_þÃ~µd7®ëÀù[…W€‚ä8Kð2LN&Þÿ9úD±Dö•;WV}n&".Â…Báë¿”h99íÆŒÌËéýtfp‰7}Û´ óqmy’tyß\„©”Q2 +ùàhŸmŒsrN k%èxj\  „Õ“·[ ÛBw]FŸÐqç¨ç-ÀÃCÆ ý¹„N`½º†Þ­³û +Ôúu®›¨^$¡ÔIïŸ-hCc©5ÑC%H”ëþß¿œð²;ôY¡¹4J´ÿœÛ$£äÓq¹íD¦-kãâ,)á^#ê“,[œBg’ëíŸçÖüïô>}‹ô4dñ¿œŸéY9?úñ '­KÿŠNÐêDT‘ d©»¿è8„«g‹þÙ"À9û¤KÍÑãP$mÏÕ?pû—ˆj’÷ßúm¡º—ñ>«SÛ×t·S¨@æX{–ã_ ±éZú—D„\²O-ç@>­y„TÈ¡54„Ú±øh JTÜþ5‘,çXç܃&"`9CÍN¹}¶4|b÷õiý™jÏÒ?po£AN1R®×Àb¡ËÇ°T³¿ez;ÌLÉÞ^-ÒËëÕ‚Þ,Òåöö¹ +,ãXö‚i[Ç:„ÄZ{eš‹Ô„ùqÒO,R)ÉgC2º§6@†^ê-P¹fKÿÀ$P--ýGð“0®-S’.ï«‹˜12>NÎŽ©æåñZp/èÖ9¸¦e·*¶à&ˆ9ÖÉCʺa ýÇ"öl—±ª^kƒä,Ì´gJ»êwÒ"©¸jy_ÐcÅìÈ”Þi¢S²˜˜—ª¡vm2îJ”´Ô¨Q4Ãé ;}<ôAN~<Ó 6z¨èŽ‹Ô ~{CLŸY'0Ïåjþºƒ®’k àAÝjz ˆ.yŽSôhºT³OE·f”bM—þsnÑ¢ø4 8œu—r†”¥®O}È>$eo0êºc§‹ Nù‚ö¡âÕè&¦Úr//ÏhF\Ô'tŽìÓ££… u™þX_~üV7æXÛ.ta(ˆ­.ƒé¢OatËsÇ9w<*h.>›BD¬ ³B¾¾oóŸaº[à Ò<tÚŒú,PG‰Äa ÒÚ+ö߈OEdGtç}B÷V 6€’Š`à×ÐÑ&¼|ù–Ñ\LoÐhõñ¿«Ezy½ZЛEºÜÞ>7ÉÊ8þ˜Yuëä”ÒðˆÃ=Óæaw0hÀ¾^%-'§Ý˜“y9½ŸÎ¬"-ñ¦o›¶a>ð“0®-S’.ï«‹(`H<T ®X¹@·Û†°7ðvÅË:j©çFY˜\ùé;èsí§=@ÀR9»œÓ9?Ìk,ÐMì»ê{ tÄÆÐûcä§åÜ-p‚T’º$‹Agqšs¯À…Â^ûï•,^{h,6„zv\!_wRÞ ç?E¯97=ŠuÎ÷-O顉kEï_]"”RjßâÁ+JnèyÿÀ72î¡@ÍŸ©[Qÿ,`Õ²“óß!ËC9únÎ +f¯í?Hƒ.ý—h€‘]Ò… k¨eÑ]´‘ôþÅE!Ü«Ð>ÙbáHëœ÷_¡!ÒŽ=ï’,ÖB™Î°çÇCGˆ²Ëó^¥…J©í¹è…RÍtêB ¡ìõ¢>¡£&ì™ô>¡3Ä<ã9Ÿ’ñ'p…)üÒZôË‚¸»WqnwMùŽ¡Œû_L,ëŒ?P›-†;@nvSÎîø|›×¸ùáÒlQÅAiúl›h~F×<\QŠÄ3:ÏzfvÙ{ø—r¸ hi0Å‚K›)jÓ«Ÿˆš]rÅ«3DH1ÇŒÿŽ>”ñc¦¶fÆè¸Ïþã·ã“9ñÝtÇŸsm™Zzè·:›ãO÷:nî‚C¯‚éŒÒ<\Tbr <šúL9C º§†"÷©*ž{>·f =?µ:§ƒžÏ€å¶Îr¯.‹ 9ºTD‚ܪOʬñ“G²øƒ‚æùŸ'åÞH®Fî<šÄ1®#û >†¥Ø°ÁÓ[²·W ôòzµ˜7 t¹½}n2’PÒ”’bXÖ)QÊÃ#×D@N›‡]!©,¯mºL´œœvcJ楽g†#úurÚŒ)¾mÚ†ùÀwJ¸¶Dæ÷ÍEJÌy\$o/Ò¹ôÎÐRâZÂ:.§¸éáp^ç pþ3À­¬ZÖ±,Ðm¨êµóv·ÐccÐíŸæ‘÷Ì•˜CWǣ˜¹œ œïó8ÿíÀÕ>Ó Š–«”½Ù¥OÏ"fìB­‰ ›ÉÔ˜]6„‚ÜcÖ 4ž>zT¥„âS` ùžÀô AÖnÑÕ]O¢%ºÌºic¢Úíþù/€?Ã¥S>£“>c0Ê’÷Œ>ÙAY÷ˆÞ«2ª=€‡Ñ(sLNSžK®ûhÿ97m¡PÓ¼QŒ´܃´ðxo‡PçÎ`E‚˘"k1~F%zDÒBzdècBŽ¨ï/ÆWºWÑ'xâ#8O[D =k;ê­ôíèøE”²cCî9Ï ôˆ‹ÖŽzº1Y`±¬—T…úJ:~9Jn8úøŒ'¾ ´Ï.÷‡~ÖÐJVÖÍ[¯ôñ‰öUtü+ÊÀZºÑQÅ"{gKMZûÇÊ­è;ä¼CÎWÈùÏÜP”–ó†&N\ÂÂ)¡'¶tÆ„e¡ öqñþµèÆØŒ{cÌ!¦ÒË›õAÿ‰`~½xN{™¶£T±K¨i7Zö¾ˆ Ä§ihP.³j5fϱÓËë96ýŠN_oŸ»[ü™Ñl¸ÂzýcÍÇÓé”È~õˆ# x„©_ÓÑB8­+—·™‘Ë0æçÅÓši‰ýZ¹¼Ì”L_[^ËeÁ7'eQâ§÷«ƒT .'+P‘¾^ûÓ®À Ô½×ä÷HánœÛaÌÊÁVèqwšö%oØZ½ç°Þ\UcsA›ËQÿ5&t)9‘sü÷®8¾Ð¨Õ£d7&çiㆹ œ6BG­)Õ"„½Zna67Û¶1t”J å¢P9©+¦­¡¹ zÒÇWKô[X +ј”GÎ-‡ÐǬ¡æÞC¿ðÚúêŸóPzNà ÕjK(‚&}Í`-Ü„SBò”SèLšSèä؇ÜûsþˆúßL²vE.7:Ñ —4±`Ò6tE©Ï\ã±`éëèø¶¨ õ°³ DHÏÉ9ULi, ظ‡ž£1Zï‰ã«…À$ù€;XΔˠ†G½Å˜Ð:gTºAñ–6åæ . ÕjÆFT ²yÆpn þŒØrGcaUž‘GjÙ ‚²>¦¡E·ÄËlDʸ ÿœc§—×slú;¾Þ>··øx£‹Ë5%FuzètLd¿zÄ0ŒNÖé©Ñ¤uåò6Sr.óËši‰ýZ¹¼Ì”L_[^ËeÁ7%eQâ§÷«s8Í. µ<;ñö§åýOËÿz™¶ÀUJ&çý†½®¶£B—¦=ënîãNq÷Ý*Õ{àä]£Ò3ºÆû”ê­Î[•g”¼ûËe*yíH.cBc,Þw0ãË…c·ÒGÒ ÞB¬™¢ÝV,ìÔ—¢ œ#rJ;Ê‘rBj$I…îGÀÇä\ –¢ ohDE¤¾åàº$öD‚¢ôŒzkIˆ*'ÔyÆœKqæ¼RÙ_Q„bõô1 eJËl„„¢1{Ž^^ϱéWìtúzûÜmŒ èué+_ÿ˜Mo ï-dÚ·D98·ª=ç §mD3jµ‡~Êÿ +}'tñCèc +FÀ¸û¯¹¤ +I+t +^jªr½Bùp4MÕÛÈÅYS™Ø +Ý q£<&¶å¼i_órp^¸§<r©ÔCÏpC…¹wÅñeù¨bM<:^ñœ*ŸòŒöÀøœ TÊYúŠiNµL!™ûÔ2¾Z¢áEÌü6ò§WP©–Ò_¢9õÖøØrÄ[ä¼GÎ?Nº•¼¯£ã‹…ƒqëóâ8ï€ópþ3ÀJó^*ã3.ÑÝHèãG®´W ѾôÜ£#*¥" VŽ˘%H€¹¥­ž9›9[Æ’r‹*D}HÌÍ£€²e´sÞòñU΀\r:‹@yFw™'N-Åâ¯2rÎÀN}àºÿ}tlxÄú˜—4|ÑåÈ_FŒ³æôTÎ ¡”ÖWÒñ­1¢KsÉ™lK­²g¥ž>¦¡7\fã„Â1{Ž^^ϱéWìtúzûÜmÌ@Ödfk»¶-#Ÿ:‚-ÿõg@p“õ)r8­+—·™“Ë0æëé²f³“_^fN¦¯-¯å²à›“2ƒ)ñÓûÕAY—ª—é—]q´Vû’7° ¬Ð¤–¾ä ¨Wà ©KÎÃzo ”s+÷“w¸ù +7ÿ™û©‘ën$Œ#éæ~jk=Q€•9S–ÞÈEX³Bg—¾e :¥ê_6œ›k¢$½­ýØüÙ¶xÇÀ3¦ ʹ¿ŸãO\B£OrÌ(–©×ò¾o, Ön0>>𬠨‚ªæl†¬´ÞXÆçÜ¡JÉ™Xˆ)çý”¦Ë'ség‹‚7ëu>>ç¡òF}¼½?çÐyUë/h¹4½ÑŽ/‹˜è}!Âßþ#ÎïÒ %®¡i;Ð š&䜠yégèäTZÖÈ…N9¡[dÏJK›ÐY™S£Ô±‹Q³Æ.q–¤ÐÓj JëY?LìC@ÎIjß`üUúCY7°–Œô¢U棖«¼‹ ÜNÓÐc«yVÀâJ|üsŽ^^ϱéWìtúzûÜmI®ÅW§_Ó©³\£:=t:'²-ÿõg@p“õCÎNëÊåmæä2\æ—5» ×ý–¯-¯å²à›“2ƒ)ñÓûÕA„Ïe¯ýýjInW‚û9…NPêuÁGèe;¼ñý#¦H©iRÐÝõžWaJ¦ª2³¼¦²½tךhò]€34å½l:”¬8g¦žó Ð)®ó>›?Ê_éÿŒ-϶7°*©¦°U¥“c}|uÑøçvÆ v<çÒ¤O¦ãsÎ1 <>~ƒNI©¤šVœ3¦,–´Ê"PÃýV9‚ÒÆÇ. Š{CãZ~|±P<¥„Î10iªwÅ:—–1)* ÷sÅsqÓ7mqÓ— T¼--ÿçÀ÷ñv›6°é6}Ûþw­}oŽœAKüWFài ˆAXrNŸŽÖ{g†Ä¢ÐB\R²žvŒ#¨ÚvŒèø·ƒæV‚œUYÒÚ)Ö×ù–ó?‰æ_âü+Ðw9Ç0¢Ê çOÃiRHXçèí;-ž =„Ñ)§‹6¬½ºߢÏ(—¢ÖO¢ÊEAj;C_žaGM9§¥MŒR0•04 ¨jÓ‘­U@ÂËÛ´Œb¢ë&Á4…¼ýõ½üx;?â¢ËÇÏ÷ͽëìÐ÷ÁBѧ™^²B 9Þ~Ä T0åe —“ק™Û2öçÃÓ™éˆþ>y}˜ ™¾íúXn> )ó:hb»üº{ Òàn.x††V” ôoÝúp7pQ.а>‚5lNÁz9ïÿ”ô=àáÖ^ÏÈ¥ÇW:E.Õœåz)”*#­¤½HÚõªÐQ‹¤¤|4+ôÒhú˜=Ê f=ôñ%=±a‰«3 •²˜ÁFªRŸÆWtñrFt9^ œÈâøœ'Ž‹aED{ê2f¹x±œ3‚aJMa,ÒC?ÞGŸ»²Ö:¡œá¤ÏLZÖ°KÖú̘u!>£Ö·$lÚ³>~ Hܤ ÍxÏK¿›ôpC2¶½Ü8*ëjÖ«úñ1àOIßnÔe|àÞJߢãOv J­«£XpÏŠÆä\âŸKŸ\Æç<±%ê,Ô¥žýørIê ±xdDÿºÌÿöñù\+î5訢XˆÎçŽoÐÄSQZûh¨=ð9ô¦æ|WçØ.oÓJÀ­]7¸ÆækÜòòã5.üˆ[.?ß7—*V›µÖK7Þ*úô1…ø’Jv÷ø+XÐø{ —“ק™Û2öçÃÓ™ÍMË}×o»>–ÛO>ʼ–â…ݽ¶âWí¥ÝŒ1”„-ÐLZ_“ÃÚÆÜ@Ù%ŒxÒý!à8žsŠÖˆ&ËX,H!MùŠ%m•‡×QíãhI$ ´D£îJË çuWåb2™qÂrq=;ŽÒ9m‘Ó—Ë¥‘å4"© Ïùñ• ׌ê Þζ¢#ê~¹8”‚95=qæðJ9›”¡¡ôNz|D†Uµ¾ÖÇoREÏ<hg´è3c«­ç<Ã(ªÞzmy.pZ§-pú"ðVÔÎP–ã/¤:Š#t%Cà2@â~*¿X˜´gŽÔbB9ËE@LµhD’k>æ-ç¸ñåmZÆÄfÞe`ÇØ}›^~¼Æ¥qÓåãçû#Íþ̈tKÄŒéC¦×¬PãÇÞ~Ä;T0•ecÚÄåäõiæ䶌ýùðtfsÓrßõÛ®åvà““2¯ƒ©àà×æEBªê,bÊ¥½†U‚8G}0V‚tÁÝùe(%X•KkÔ+Áøå¢Àѵ K4(öCÀøÀS7¨WOVÅ‚TΞ^ŽiχÀ‡M+Æ9®ËˆÛb^LéAÕʲþ•*ß…®P"&ìϼe.ÈgÌ‹Ç×JP®œ‘sëpgZ¤ pºNÿU±Á>#ŽÏ8E^ÑŒî©àæ½”¯‡Ç·'ƒ¶¶g c* ÅHQrºPZçO«æ +ÄÞKÎ$渔h,3rËjʹ‚ SÊJÇ`½îÅÜQY¯µì̘¬ÇpátFzY#§5rÚ"§/6)…QoF8§Çš>¾02˜x?\äà¦ù·¸ŽÏPóïábë¡ø`¸È .i=q“* ·3*ýM=šÑŒ”¼/—aÍHÁ´Jw(\¶ÅRcÚh—·i)àÑó.‰Ý׸éåÇk\ú7]>~¾ß1µGsÕBtLj¢M2½f…3Íüa¿Ÿâj “å¯h´œ¼>͜ܖ±ï—Û™ÕMv{˜9™¾íúXn>9)ó:˜b»üÚ¼ˆCeäx õ¥^}‡­É¸I½ÿ†–°ô"žºEŸhÂjqÓÞ©vUµÔº }Ìj‰Á±Ëã+αa<ç‰u1LØ´‡>~¹p8lí[t|à +ÊÜ3>ðÄ»@@J5ð®;¦š½Vȋ➶ŒJzµ¶Çú˜Ðc £’3¢#q?ïf¨ôÄ.êÐÐ%eÔ%ðVú&ßGZk{n4f¹phºöê2>ç®-çH'¡.Òsž¡\Q¿Y?»Iݵ×ôñ›”AeN`•û:¸ÄHç9«ÜÀ{?èFn¡Ú¿X QsÇgœ«YBÆ%€SΤ!—kNea@®}V¿\ÒÖyZãO >ðH£H}¿A'—®‰âÅŠqaÝ)Ú§;àôßp·3lú’è­óÓиÖ>Õ Žþ´Ejëm(ƒƒ k_.ãsž¸Î°‰¥TŠ!,e¥3˜÷þ?~¡gÅMqsÆ„ŠˆÞ‹ùñ„?¥; ûI.tÉX.Z¼žÁùñýiÞzà\HA0cf‰œhvðgô'‡ó'ä<ñÚ@mb1aØR ¡ÞDÇ—óÈæt¶šÓ8mÓ—SbRÿL<€Š[ÏøøÀJ¥=ESVºõÓç“ýó(äyIw|Ç/tÛäÄñ5Q º÷už!³(°•œ™E@¥ïÐ ÕÂ^ÎPÅ£û“ Ï–ÃËܦò½2³CŠ×Œr.€¬=ð œ XÅ>+ýxu!hÊ{Їt­TºƒÜÙ ©l—·i)Ðb^šwX-v_㢗¯qçG\tùøù~G‰Ååó¯)Òyœ¢M2½f…Jv÷¯PÁT–m4ZN^ŸfJnËØ÷ËíÌæ¦å¾ë·]ËíÀ'%e^Ql—_w/ÒÍJàÜzÇ»)Ý•ãö§•ÍOë%ðÏŸÖ×?­¬Š· E_l¨+rŸ¯~>ð?Ž[#׌ûoö«&¹q^Å'@â\Ï|„,“ÊÆ÷¯ú ÉQ,Óó”É“9ÄWoeŠ ©f«ÙhÐ-nÚâ¦ïá6¨[ØÀ滟-lÞÀþ ê| [naËö¾y} +\MÚ*@'¦ù·ÍâÇ^sj¹8äÍ|À÷ðúöD$ÒÞËáÙ6Ðú c  ooYÊG €\€0·µg|‹Ÿî€Ó_ѸAIÚ#¤®qN w”ò'¸¿¥”ï0¾§±½â3$p¿œÙj<©ˆw%¶'•!M¥@F´ˆÈ w¯çÈÙ·I93õpÄ'䬘µSÀ°ôH+‡#'0¶}Ä: ,Ôjå¹EˆnÓ8}·Š‰›!ÕÝD>d\‰šlØrÈ€H ¥¶}çí°—*+mÍà†V”5ã FÔ*%DÊ*\{¸ÊÑÈ-‰íq>¤¯D­Ir[;Ÿ¬•#g l5^íH%µ¹6€¯ó^ß9d÷f€j-òák ìå¬!»7­)dõTHª"ƒ$ì‘öè•S@Sw܇ԟ¨.îŒkj+~O1Û³ñÁb­P©Ž¼@ݦ—Ïû4(—IFŸ<û>/¿Î¾åÅ÷9]^?n¶•”@Mt1Y´ûË£y>žø7ö— ÙÝŸÁTÖé Ùh]¹<ÍŒ\‡>?/žÖLKôsåò032½myL×_Œ¤yì<ùßîR±”ùË©çÓÞ@g<EƒØ päÒVèÀÉJë=^,,K[í†õÞÿÖr 16”ŠFÜ¥uËÜ&ŒßÎßÀ>(ÒÝ×)!íeº1/gyÌyèÎ:iT7ωË?+}{ºCNGé^†ò^P“ò)¬S+ôñ]Q=ù‡NßqÅ#Är¼Ì JP™ x;×»¢[ä´ENß.þšºô Ç«¥xPlóV µ„Š¹)Ï9c÷z çÈAÅb!ÐLÒÿ±¯t3D†j!9ƒü@áœÜSânG1(å¾CDàÕŠÜŠ<‚Xx?™‘µðOYÿ†Î…z{ùñV!sXÊ1—åxè.tÒV.î¨%”ÐjTKï¤ô?¥|?pi «óµÅv©’õ¨ À IPCgo‹zS~„-*(?èç†nþ?™ÛÞb`à¬lKSd[Ü轟ާ¡ç«Ë,—iöì½ü:ûžßètyýØì‹  yþ’©ð}eÖ<ŸNR^ƒ¤Ë}>ù Leýk†l´®\žfB®Ãe~Y³ÙpÝoyÛò˜® ¾(IóØyr¨ow)Ì:_%Nµ-wÃf£¸€kCÝÀöu½j +ën€»VZ¸J¯Ð+ˆI¨X·B'(¤­\b(]QC"7¿£¥MGãûb²Ôúâñæò γnjr9žõÀÐÕãÆ,¤J’¬=0ë”Ë^)º·RÛÎ1t)c¼‚ä½#WŠ™¼Ìû)ŽYK˜) \ÜÙ´Ç=:?ÊŒã÷uÂ5fNÜ’ + ´¤C³§.jeþŸZžªò2Š=R×3|1W±‚) Ò#íèVuÏÑǺWQ¿¤}±xÍ{2“s…b¥…!è:ômQoÈ^S/ÞŒjê¡—£}QÇ ³ K=€?Ã\Hÿs—þîb”rȨ+ é1FŒU¦€¹KM[àä–sƒœó^“s”¶3Ÿòˆ†NÕ·Q­`¹leŽ OïÓPÁ4/³ɲϞ}§—_gßôâ;.¯›3Höÿ›ë3Û½ 5Ï”T§× ÙÝŸý•²NgÈFëÊåiæä:ôùyñ´fZ¢Ÿ+—‡™“émËcº.øâ$ÍcgŠíôvw3'sñ°r„Ô[UÖ¯O[Uå +ÜÀÊ! ©nTÙ@?¬à­Ð¸<ˆ?È¥õfeèòûýèßbýßxÁ ôzL3°CúŸr¾ÛH{ýø;ªîª¥½£BÚúñ¬¾£æìÁ%=´`xJY,µÚ^Ó)À}=c`~,õŽɃrÛÊDDj!+©B%i;ŒWÔ=ݱÿ³Î·ÜÓrú;:]ŒÂÆ]v¥[«ôî¢÷ªè˜îRüŠb{E#¸‹BÉ=„~8éæÿÄÖêe|¡«û¢ÄlHÃFèf;Etа˜¹¶*8»T¬í,"¨Ü@’jHè9ç=ÖǬD ÅjLÖ¢ºbM=†-šR«ó ò!›¢Ð… +†ÌŠÎ:¦’CBW¨Û´!„•‹sN“a¬¢æJ·Véã×"ñ„^[G?ø3Ü…*·rŸsv[DàÒ´$¢·d÷siºá9·ÊœehÎ 5;ç’ðÖ[Øðô> J‘e–‘}öì;½ü:û¦ßétyýØlLs~œêb¾/qšËô#Ó1tù±Ï'?zz•õ¯²Ñºryš)¹—ùeÍfÃu¿åmËcº.ø¢$Íc'Šíôvw­F§ªA”[Qüm?¡úGÞµ‚¡jõ ë¢A¡ H¤”qƒ»ˆ´À¬óßÀ>,MÇXäª[f8‘{¥FÔ¶eŒ@y)1 Ñj@µ¸³äò@-ã;‹§: + \§(×£Õ=Z*¸bLc \?3V 鈡À"1S‹€qÐKª@4¸$.ÚAëÏh-*>ÌøÖ( ¹ôˆ\Ï°ÆšCZcà¼H¹Mã§.ª)b\@£žh)nu;× ©Ë5h% ÙÑ1Ê%¨X²iÌZ!QÈZ ÅÔ¹·ˆµ?n3g„¾& ôÈ%TsÌÌå®(\bB7P|`è´î]‘ë`ÏкiÈj¤€µåÇW#ÍAµ"þÏ3è20I°Bš9{HmzA0ÿêïÓБKq×ðg2¶Ü*ƈ1¬ +\ë4%©6Ý+t‘èvãsEÀù#Á|:[¬ïJËP6}…>eé³ÅœnÓ8}“- F=£$*ˆm£ Ê’VÍ]ZŠÅ…1p÷ýÈò š˜UX¦F£–/,iãmÞñTðñŒ”x¼ï§¶¡†Iƒ¢€Z‰ª8>ÓTNQÅG$\lRS)ûÉîŽÉt…μ×õ1¡»‘¶”CÚÀ¸Ç|žé´Ø^Ð:C«IC€AÁ¾B¾þºCN¿‡éJŨ.㨱”±+ëB—8ºôZsF*9¡Kƒ®='a:P7L¨‹ $xÆ:úˆž'‹Ö"ÍOèpQétÆ„þW²ü±¹…A¶Ü?p£‹ñ©’X°[ ¹ ”¡Xá”]ïаïæ=_AÿÎþ;ôbÄž¸üÉÖ²ˆ Ô.¯Óé4²Üísíמ½ÒÓg/úî•.ï/o«Â µ-Ó?]÷„«L‡^tz zíùÀŸWþ þvn×_ë”e¯O.WsO>Nýþ\jzfUðZoyÛrY>øêI™Ï½SnÇ?ï>¤ õ”K̺ÿ—)FÒiyEî; ¶(ÃzÇ pku¯çC©Ø [¤Ôèéò@º(ml0ã7.1Ng๠zM´Üà,9H9W@º‘–Ò8£´Pí{r~Ä„ÏôÄÐD£ýg—œ¢(.Šz¿fdÏîkEÉ*‰Z-+tÜõ¡1……Á¨QÊÀÕ<0fä‹ø—¨.šî+‘”œ|°V£‰f€îªŽ-£vÿ£ž1æ nˆËøWPÛôÇvœn‘Ó9};¹ ¥Tsç +™ÄéÌ ,ž¹”3æ\?QθTm……¤Å{÷Fy~Þ}™ÕYÁ*Ÿâ‘ò +\½E i`ûB÷õ±žü8ݧ5púvËé¡ô-¯ÅölcLè +‚¼·€ ¥¾7ââÊ•*Oߦ˜þ…~2td´TPd°æ?²tƶöþHõò:¢;Uåå6VÿÜî÷Ÿ½ÖÓg/ûîµ.ï/o«Ò +EîärV*Þu…«N‡>}©‹2ÉràÏ+ÿ +ávýµB•z}r¹š»òqê÷çÓ3«‚×zËÛ–ËòñÀWWÊ|î½jrùy÷!ä7R•ûïú¿û…¼2ïí^C"o¾5暨OäM[dË°ÖqÓñ-·>÷áïž32-ŒŸ¸ÝðzÐÇ¡ /¿®dîySÍÜ|ÙmqgL@q²D–'ЕF%åtz ®ÑôlAGp¼»ynXÐð¦ïë¢Y¤Êè¸eú;CSN_&÷†sH÷uN#ŨŠBo%Zçð:îŽODé†ÓÅPkKÉ”Uð :¼ã¥)gdxÒ€euÃ5h¸vÚ[†Mvï’¹¡Æž?VTè8­Ó÷DEýÝëø,wãÔè÷ €«ëaÝÏ!‘ë{üäóÒj¤ùƒ—ÎcÒŠ`‹®?zZ‘ +h–2²'ÛÈÇ.ºÕ½ñ9OÇr¶{Éóº'»¬Ô|²â®_™÷Rù¯fI³­0F]IÀªõlÏ?b8¨n çñT9=B…®֑볋D…Ö­o€cß[»Æ$ºú#Õòq1–=q“æ‰%AkŒÓšÞ@4 +zäâ»À†*Ž?¢šYFàTvõ|L²0p¡8¡í9Ý"§5rúfÏÙ0Œ:¾÷w—Ä –|ZD픥èyK£ù¯,J©9QOŠ]ööŠ!S‹ )1p­¯{OwÈé÷h‹B± ž¯-P(’exànCT9îC9”íŒMî ‘–šQÎeª½?[ JlI1 Z£²dàJ-­üŽ‹Kâ†{ŽßqwOÚÕò!‹÷œû^b’,]1*âødIÛqö]H(!pc‰®ŸÀ<ÅËY;c{D×±•–p@LZž çNãé’!š»ùKÛK¸cz(C3*Ú}Mhq]¬”°ã$|Ë×q§Š°ÝqºENkäôÍŽ+´©\BbTŠ=Ÿ,5nÇ÷üйz4Î×óielxÿ̧®‹LÏ@=#³OóŒkÑCÇ7†*=’e|à>Ÿq ŸåªrÜä2t¼iO ‰žÍ­a„>~Ï°•ŒÙÜYNd?›gÝ?§ñt)Ï8žÞsÓ½˜8*ò¤Y+ï +êb^¸Æ4ô´r.誘“.ÞóÚKÜ*2,¡Íkר.ºn ¦9W‹f4üˆºÿwÚØ+Žçù# 'Ýå ¨YÔóñYnÐYÏP–G$4Î(ç\zçÈ–r¾•[Æç¹@åº×ò!Ù2µ¼kÌ-Ç÷üpè Aˆ£ºŒJ—b Õdé ¨ë˜ÛÉ.¯Ó)²0.·±BÃæ÷Ÿ½ÖÓg/ûîµ.ï/ow=Ñî9hbbktß®:úôè/’åÀŸWþÞËÿ±_Éë:ð*>B$®ç9B–Ie“ûW}PrËÔ{Êä) +ñ+³Qr7ÛÍFÃ=ãýSRZÞœï&N®K>ÕhïÜT’ëÍDJû¶ù6]_ø`%Mk§*ëåyµ#ùIjþ[SŠóãÞOM»aRƼ¢õÉn|Æ<‘žI³°wèÞ« O™år#Ù˜¼¨¥ K?ÀD€nžìöH*“.ÈRâþˆŽï禱’Ýÿ…Z¤ìö¢1¡{t¤jä½nicä]!_o€ïóÏœQ£o.vÖìõæRt¯‰ŽyB}€TÞQË 2Jyè&*†½)F`½‘ñɳß"ç5rþÜláó–¾…F°ó,´×û‡ÔŠ"Ô²qBÇ缂g–Þ¿WäŸq–}॔=c2(ºXŸ‘ZŽ¦\K@àrÌ™"¬•WÉ‘r[¤ÚÏã¡Ïzšk<µ¸!bN½—o, +RcªÜ€ªá‰Ç«\¡¶zádîÀYj>#È%®Ðw›ÿC…ŸÑZ6šè¯-~§ÎµP?ÇE€.€¢GPϸû4 ,tìSîðjiCh’@¦8©›ç‹´fÕ./mYÀ÷8?Í€ÌþôÑ+=üyô¢o^éòöôzLjÚÜ%¸èýñ²v)m“þŬóEÞï|þ¾äåSò©‡–7绉ëÒŸO5Ú;7•äz31Ò¾m¾M×>(IÓÚyÊzy^íƒ ‘ÿÉ8õzØ_ö¸;o®ºgCؽ'ì³ôÀ¶@7@ósu%мÑ7VÈ×Üór>Õ|o”Ž(gL0ÇC/¦9Ôðu]kŠé/­[Ÿ2Â|‡¿˜7Ö¬W¨Ä;i\O ÝÛK iÊ37¬q|¥gÈŒ9d' lŒq©G/•ÚCÿ²^N“‹ž|Bù8¯ó'OhÜÀ¨^ŽŽŽ;;ï5®j‰ÜZ…½ÑbÌ6ÕWª”>œð§QΰÄïPK®º'ô!;¿ÇsK¹Šã›‹+±—ËøáÜ H¦€À=$bî½%‚T4oÏá+B)‡3€¯¸XDRÈ€+R¡¼5bÂm(™Fí ™ûÀ:›Eì qåâ³\!ì{hc¬-fTD@å½ÙbHè~FböQ,iÏÇ„8/JÍg4£ïÈ.&¶»Æ”‹µ +{Î8T;òx®Ù‘ ¯)'ï¬õòÒ–>í¡ÌO[PPúèeþ>ð¨#‘€wþ¨Ë +…´so¡dÒ®ñåâùœ6òÖðÀ[NDZÌÓ–äxÀ ÇŒæRÕ€œKñ…>ƒ¹AÛq–µhø9ÿTç7*¿^þëåŸ@ƒ¦[q÷~x¼•ˆ|ŠµS"Y;"úg——¶r»žfÈJþôÑ =üyôšo^èòöôºªË \d:õ˜å~8²v)m›þŬóEÞï| êÝüýSRZÞœï&J®K>ÕhïÜT’ëÍDIû¶ù6]_ø $Mk'Êg“绘VStÞèuÃjrö5p¾x‡î¢¤º1-ämsèÖXA.Ixú¬;tMÖ·¢òõø9ÿˆÒÝÏs«îˆ:ð¢3pq¶Þâ Õz±D€n+÷r‰`‹deú¬{3ÂTû ;ü!u¹°ÉžÒG• ×Ìñ‚®;z-Ùâ‰ÅUΔCа =lûwg‘„ýñ¸ç4è+"ÔûJ€ã¹å>äŽ\À( n%HÙ$d`©L4âù kæ5EåÜ4íÙùJ?õLEü¨U×Ð}[vyi+,ইˆ ýñ£WzøóèEß¼ÒåíéuU8C̳Ýò=%­çù¥´mzïf/ò~ç[@PÉ˧¤´¼9ßM”\—þ|ªÑÞY\êÍß6ߦë ”¤iíDe½<ßíÃ’³Ø¬ · +aÎÓ;ðÖ¨³õ9z`û] #¤TBuŽE.nÉEÒ¸O/„Æ®Æ+–Þ|#0ÎIû`7pûñ­ /‚XÐÿý:Ë™:7H%¦Î}ô*EÍ^74Ûôx™WOŸ©ïýã˼B5ݳ–1e®P·2îøœ›WÛAç>¡•Ð²l@^.Jà”Gl¡ +–ù Æ÷– +IKÌ#u$òx^Tö8³°šÆãÜÅ¢V÷"ל»-érùÖƒ&ñ´(}Zø¯·ü€·¤Ä1“RßAˆÅM±ZL™ (êÞd1&tϹU&.) yc²ˆÀ¹tŠyFz)¶Çú¨³æ ¥€î €¥'}üä’E»è©](õ½hx±´|ΘCŠEÓÆDÁX,KÏy'N‘uo¢F¥L¥G›ŠØÿ›G‹¼ÆþmvyiKu%•ùi%õ§^èáÏ£×|óB—·§×UÝÙ§_©Þ‹PÈÚ¥´]" ËÝÅ·€ ~ìÞSë6Ë›óÝDÉu9?ŸßYUZêÍß6ߦë ”¤iíD9ÏwQFž6’+~M’ò÷¿¬üç_vn€©|1ÕÉßØÀáÐ]”Ť?MŸ2ßMÒwLþ³ùÞ°^‹ýxÖýpà˜¿Ò þ-ò]Ò}l”æSÉnú¿'»ÏËe¸/R¶ˆœ»Z*óG¯å¼B©u/Ù ÉyËÓÕúd7|/ÒÖ…K@àmÜEê¯ò°À=8¢}qfüÙØ" +EÏ\Ç‹@RÝ#}ÔÔ‚¼!ô¬{B/»R3æ*`.{aqTèÊtFX<º{£îj}TÖ­Rĸh •0"çÍMbRg­é_F~Z0¯3vEŠÚ$jrÆ ýŽÄµÅÎ]µ˜LFz¡‡?^óÍ ]Þž^WuÅçCª³g%¼—¡¶Ki»D@Öù"ïw¾üûU”ܸŽ¯â ,†Hüž#äó™©ùÉý«”lÅ2•'OVÖ#ªö#eI©f»Ñh€z¹}K“–•óÝDÉõr~>¯Ym¸ì7¿m¾Mן”¤éºµ½¼?DŠâ4¸ô³×Àínî™T7BÆ°vÞú4å@úN,¢‰4ð,Ôû×ÀÖ{§òLz燨§£RR}…|¤¡qá\À¨Ô€:¯@˜÷t~D”>œsŸ»ž(ÑQ¡{âèý|Øttg‹›À#Ø¢'±B}‰Ϲ'R·µøÀÓîŸ#I?{hEnŒ(¸Çú˜J÷`)ÔØxtÙ6<}ø"m£aÄuKO5ÑF_ÝL÷ºÑ˜Ðªå^0à Ý+Ô÷”>¤¹x +×rñFj(½¥‡K28)p¢QtPÆ“ä½î?æX”QFtwsÁ^ä<Ñ¥÷Ýøút­”Zúú ÀyܬY-qEŠ…”¹BÍ»cè:1î }|¹TȤ½+_ ¯àÜ2Ÿý`oiv®¹/Ñá»›§¶$fbÙè¡+äëðrþ· +ÔÊFT¸€*…tóÈ©…zàã·!!ÜK-CŠÅ ´„ìüž¶*÷ w`‘·eHšW°Ñƒ]~·KžŸ(Ôž¾ù>?~¾ù–¾Ïåãןն¾‚Mç®ìUÿÀ‡µÒΈ€¬ó‡Üîü*yù–€”–•óÝÄÇõÒŸO{´5« —ýæ·Í·éºà“‘4];MY/ï)æïœr‘IŸ‹¶YVdùŽ"àÕòÞœ[>Ž]þúW&p½ÈF—Þô¯§Hÿÿ*ßñ¯zJæ)xŠô¿°¾‡[!' ɸA–üd¼ŒrUí ôxà‡sîɈŸGâÜ—v¼ˆ¦¨€uúðH R* ´z¦“'côX¦è:ÏX÷ü|H{"ÍL9"ëž[c"¯®—ÒK}üõ ª·—¼ÐÇ„îi±ìÚ˨Ð}Øë•>|õœ‹µÖœWH>‹†„nrŠ(.™‚r.Zúé"BxA¨…ú"¾zH/Ì!ÝÅc•3ë&À “QTC÷ +³¨¾è¿pÈÔ¥m‰õÐÇWº1ŸÁù+@²Ú»K_lSH_¤¯• ß#ç5r~R.þµDcö"ñî”är|…V§1ªZqDèn.˜O~¼`̇º áEÀô”ð +ÁäRCšºCç’c +Æ@´I ^|ñ#«ôómÒÏò^ -$pËl EÒ fZ‡„ÊvùÝ.ÔÃçô´€añ§o¾ÓŸo¾é‡ïtùøõgµ±O‰’Ë”.R¢…¦–vNôÑfýág@P§òö˜€”–•óÝÄÉõÒŸO‹Ûš¶Dn+盉“ö¶ù6]|r’¦kg*ëåýá %™L?.—*kÜ {×Så=ÿÊÄè +Õv¡ÉzªvÆ,s8twƒ"»ZR0ªô¬Û<à ÉJŸï†ÞæÇœöºÞb9žs‘Ò':wO§,{ÐG5F¬Œ!Y÷qûiàxKÿ[Î÷qSÞzs)‚1S—yt¡>º Ϲ·ÐÄ\#rÞfÞD½µDàÜ_³©F%:<ç|3 G®”"¶¡ +•ê^T<ÂY^ш’iD±TP¬½X¸yØ´å”+ìüaE®¾Z/•á‡ æÎøV.w(Ò†F0¬ÜGÛ q“óÐÃfÄjÜ÷ m߇8.©÷–Ði{þ pÝПÈæc©ylÙ(Ò‚AHœk¼väJwܽ\"#eéW±´°¸ÕŒ¸K‹][y1ë^¢›ÓÜñ%z¼`LUC²žÚÅ^fzìvTä”èu|~!÷uî;éÀ ).œ× ÁÈ.¿Û¥û›§§²‘?}ó~ü|óM?|§Ëǯ?«Û èšçŠêc ‰oüŸV\µ½Y>ü nx’—ÇΫҲr¾›8¹^úóiq[³ÚiÙo~Û|›® >9IÓµ3•õòþpÌ9Ï)}ÔØ€äÞ±CEêp·ß¤}Ï[_ãçà|j1Ý.ÅzØ{ʲJ(ï½+P´]¡ÉzβôÍ:€¹´Le/Ýa/¯(S—zHgt­k‰LïË”ÓZÿ[äûrAÓÖè”9‡ÁÖ}z$ ‰

¼·¸TØÍ%pw–$À‡×¸3Ž‚[`Æ…7\%‚“#Ô€¾âNÎYCf–f‰šöÿнDQOQú+ÜEë)ƒÅáEÚò9m  öôBÚP¤îéYJH¹(C)©Dd½Y#Ö½ItTÖ¹æ>`=pôrÁÔ‘ƒŽ8ù—³`*­ #(ÕËïv)PÑæ§ÐÌŸ¾ùN?~¾ù¦¾Óåãן')û’‰“œè!k¥Yæ½Ýùüí’—o HiY9ßMœ\/ççóšÕ†Ë~óÛæÛt]ðÉIš®©¬—÷‡ƒ‰DnvÆo{XNº"÷¬QØB…Óç Õv;öHõ´ Oj Õõ®ÈsöÿÉ¡ì÷¦swšŠ}…L_€¼hé‘›ò“œÅU^)¤Ê£2. +U¬g|ØáëÓÉSB‡o醒io4¯ Ætfì“Öð*÷M}qŽ/r/OÎ)by:å\ÊãX@*IbFr‚̾$ rKÖ[ùðZAȹôZ7IÚk@#*%3¨i߀ÆG®Ù[íùÊ M_«õ=ht•ûDRöüpHÆ+(Sß;ÇGî]ßBwÊ‹–Ú!ÿ¶¯|ûèY¢Å )rGnU÷´2¢•‹BëÛçè†Ø"y¢÷ðgÀtÊ(q¸R*¤TöÆ·#ªóhÎy&<»éó=p^çg5^0d´u•§„úW9ËUˆ”~”wû´½hÄŽØ ƒŽ@™ÝÅóãCº!¢õyüxä/蜄Ôs¾Î+àüœÿË~µ$¹±ãÀýœBšA\÷t„^ºÃ›¾Ä$«Ôe•¨yeÏH2ñâ­ê#‘J¦‰ÄŸðàn¥)kv? ›Æ9©ñ=“Nrò‚=Õ9qÓ½À5)læ£ß²¦ê¼¾¦®)Ãû3öúövƶŸØëôùþ㆒¦ö_;„²õKí¥DØpÁ)(™Êö·•ëÓÂÊåïýtY³ÛiÛoýµõ1_üd%/÷àJìô}wü!Ãõ&-‘ìë zÿZ;‚>U¾¸‚î&c4šÖ +6¹0ôvÇÃ&îÓçÞËý(ŽÎ +½µ;@Œ"U +•ë®œ‘µ•x5*’œÅ£¿Ê¡•Â™rÞUG¨OÆ—õH.s¶OVB"7ì]Ý"Öhw«DmEMòhé CêÂ6ÆéJ¯R_¡ôÇË¥$iAÝ¥6‹9ÑyR×1-þ#—ç¶Q÷±Nï-îB£)N?Z¨¥¦<öÐéGÍÊGå9«Ê£ŽE‹U ¹Kµ1rͯtNÔF;ŸÞZLR®>Vèã?#ãj‘ÑΘ ÔR5GõE+G¶8'ò–Dó8ZLï-ž[‹™Ï[r“Q.ÓûbØk}C)±ñS«1'PNNNñ8Üù½:¿b¬x¼\rRic‰€y¬`iÛPäÌâ©ImqÚJɪv±Xªâº^p–ÓG¿£šL×—Dèµx{ÆFßÞÎØó>ßÜâ­Èò_‚”Ûà¬p1\j?$%*º^ìë '0•íSðk¼­\ŸB.·ëûuÍnÃm¿õ×ÖÇ|Y𓒼܃'±Ó÷ÝAJߦ.½šZ `ÃSá±–¦䆛Û[¤Ž±A/©dÈ9ŠÄŽ:FÙá.7¸Ëù2q®;qø²­m”ùô¾Òc‘Üy„ú¤”…#z9€·ÃÙeNÎñeóqÔà‰1û'"Na Q:fãÏÉÝG±Lo,0s‘€MIë>i`ÉšG;œ8æ¹²©a»|ä+s†Ä¨Í2WÖ1iEàœ’¡ETºqò&£\"°ÎH[³ùSª¹Žkú& +K¯9‡T:üÅ y<Î!'áÀK¥ƒà2#pH¥•Ó£¶ÄsÎ3rnÿQK:¯ÖÜ|Æ¡ŒSµ2?ᡃ"1Gìü9“xÎÑ+Âù32nÓ2†óvž›ÔˆÐ‘¹˜$âHdØ;dó‡Ð‹¨„„v˜ã$^Æa.ç0—Z-¬\¼„òENê,Ë\TëÍ@G˜ñìôÑoko³ë[IRoÏØéÛÛ›~b§ÓçûNœ/áBs¹ tŠœ„Kíç¤ÎÞÍgÀ´Óøz͉·•ëÓÂÉåï—Å}Ín§m¿õ×ÖÇ|Y𓓼܃)±Ó÷ÝA$eþþçÂÅuŽ/àð‚Š¿ R¼Û8oø»òQFš:X7Šï6è5e4@çÿ™u~ôœ¨Ž½cú…Э騖ÇSþ»Œ÷TˆGs™8D®åÎ 3½T¬&s9y§ôD©)ÛJ§§"G…¾bøz¼Z‘¦ÌüõÉ=¯õ¸Ý3‚X0È0w¯T­D4sìm%Ô°û7¸ðóœïŒr Cé¥Ò˜·"(]µôˆ…5ÞA,ørncTœžs#Å:òúˆŒ ¹ˆÞñ–é9WKto z2çjETó¹æç¼¥vg”›7Œ…ê˜Z"àjˆ9åʧ!(œ½ŒŒÇèžFµñ—ìcJŒ )0ÞvàUæny æ{è¿£•_‚þˆ¬Õ+T[L™[Ó1$N\0~f;ÿãuþŒ9ÎøÎ7½µ@åU…ã‰Å–£³ìp—îrƒ»üÆKb³qžˆ0 +ao¦€ã§Qr)GikÎ6ÄhCwÆ¡ù ”R)³õ—ÔÚ¹bZÎKÒì|R§”moæþN§~ËœXÊúš4)V|ü댭¾½±ë'¶:}¾ÿ¸¡ÄDÚ*ZÍ·”({¿ôþM‰ŠÝ\p‚|e{ ÆÛÊõi¡är‹÷Ëâ¾f·Ó¶ßúkëc¾,øIJ^îÁ”ØéûÍAš7ZžÜIG÷ 85 +Õ©WàŽ—þç=ÝÎy¼¸ĺŘó>wU¡GÐysƒÝôbA§*c§ž:‘^ #LƒôH‰ôœ“¸¼b +x¼ÊÍK¬T·‹Jèúïˆå— ?Dæ=ÑP @z퉥Žr™¿>1½èˆ;á˜B‹áT}”x„êäT½¾"l=Ã[•±õ€®Ž/݉¸Ó[K*ÌŽZèœJœñ¥Æ!‹´G®ÂGÁeVèÄù‚y|;b¥úbàåxÙ/¿<§Ò$f@§äÆÅ‚Päñüá¶(’LyÌ‹š‘ ¢¿$1>~ºàTœ4"ëac—ÔTÍŽä2¥1‚s#~…\ž¡ôÖÊ+¬ñÑžžIqú€ÈÕ\é¯ ´ìp—Ü娕¤¹Ž17‚TDêã3Z"€çbcàŠÑ†¨òÈyKÌI¥sS²ŽÈŤ¯˜Š½$DôÑϧ/Røy1‹ôàO,Pn-Œ\n×÷ëš¾D¿V® %ý×ÖÇ|Y𓓼܃±Ó÷›ƒ4’¶ ”ËíA&v‚/à(§âuÔäÄå´qŽlgÚ݆[Ieé+¾Ý_~W)GoÈt¬ñ€ÃU”èh˜ªM_s®e¬Îi{Ýçö±<Þ‘/äãÑC-¢u$=t¸¹;€…^rñq|™Þ!—œ[ÀN6² õ—;C×ô„ 溓YbT'5â´Þ«Îœ &Þª1 Ô7S 'Êel ÓsŽ.dt¨ó9CKNêw8²\b‹%¹ùØŠ¦—KO[ÞN¡0Eª‡Sèœ:/)Óp>=çð–†àPå9•{å ù£©RÈ +¹0q@oé¨Ü@.ê‰Åü¶øŒVÔr=‚»°Ù+ZÑ38g‰ÙD\ŠBŸÞ\P¡zo²`.º»Ž³Åüœ·Tõ%úxkÊÐKDsëôšèòèþO©6•ˆr‰›¹8¡ù}úî?¯x +êçÌÒ[C‡`,ËQDŸL0R›ŸÔ9qó½»hª$§~ËèU`uyMh¹ýõ[}{;c×Oluú|ÿ±ÛY»ÓÖÕ·Œø†eë—ÚJ‰Š®ûzÂ!(œúëSà3ÞV®O )—[¼÷ÓeÍÕNvyXH鿶>æË‚Ÿ¤äå>÷ëôýæ .Ù–ƒxöQ˜Ï5àrýç–ýŸ[þÚ€¿€÷@Mm>­oÀ9‘ÓQ·žªž® »{Hè½í‰ê×çØN-ÔüuU¢µ+L¸»2E«(•^¨¸¼bp|¸ÎÁyɱréU‰þÂÌ;'tNµÈ8óF€NÉÙbB‡`r‹©uDM£€ÖˆK;caô»È9„|9®žk•>½\ sc 8^€qʇÍhJ±À«â€1¡Gut£7YŸ_éž´ÝüÖR“P9êDSj®ÈÆ!+j‘VƸ8½Ìa-a傽õЧ”‹•ÔÚa\œ“õš*õsG3ÆÀÑEâFôØþ¢ZGèó{:¥julFÓ—(€gjÇ¢ÿ°_5ÉÍë8p?§ð!×9‚eRÙøþUÓ”%ê2¯}ÄÔËÆcR­v£Ñ(‘’ˆCàZ¨˜zÌ-L)Ê–ø‘‹ñç¯<r¥®¨ÜCÊ5oeÅ1Û“õsÝvÐH¡¬äsÀEâVÜR,Èç5lP.3à².¦…VÒ¼ÕˆÆt¥ÕUjÕZŒê’óDQÊé«]²RÅ´4-s¤ÂX>㨷÷3N½à¨Óåã{vr¡£\Ç•ÊË<¤±´ÜÞ“‰;¦r¿ÃK0MÿFŠ%>v^ï&Rn—X·ÓmÏËIåv3‘Òžv½ · ORÂt ªR9}.^¤(Õ’(¨õ!cØßö!äöõ´:ÚÍÁœGâ•n7°<’T’?µÀÂòJ"6J?p£ö³¯®ñ¢ØN/sœkÀÃ܇%&óH8Âh0Gùâ¥yJYÉ¢ã3ŽÀcßõ÷·•ý9g² } žs-¤æ±µÁ¥¦-± 5+¾ˆ4—Ð…²ªÃ.„¨%ôÀ‡wsè\jì ÔCÖb’µ|ëzƨ›p—ý[‘PÒÔ‡ó”þ«JÏ9õíßô€>Z«ÇfÁä´ÒG‡W:J4²ô%ê€s(=eq)(Ý2uå¹Ì‘˳K N+¡k|xÝʹcºb¢ Ö÷ÿñ)G}‡s¨ç*¸(GûÊœ«‘˜f—"™{àšPÄÅ&ô1už¨Äè³DI æ¯D[:Ï¡ïCãØa}ï¸jî¥2¼)Âͳ•#†Šß˜‡²®ÜñÅâ5&j¥”Ä£¯´“¹î¡õ»ã2•²¢ò¡9æ]‰¥Ì3K$.|új—Fjùºª”±áë_gœôö~Æ¡œtº||Ï6Ô ¨h´Ô´ìoKûÈí=¹=yñwÀ>pz_F—,ñ±óz7qr»Äºn{f'=λ>íznžœ„éLêçâE´Æx¼Dª§÷ƒ—i}Ûz¦ æ(¾r.ê¨ã=€ +ÆŽrÝ ð"Ò· Š³EÄÓÄøÿÀ:z‡¥-G“õH*m³CÖZ°öЇ÷Œb|ÄÜøþ¢¶â/ãwÑ„]I.ËÅsZdD®^+ÃS®†N¯‰Ëiurý3õMh|CŒèž+Àd–”Û—ŠC±xížpD³°•X† œE×R¢è~K¶¡û,Ñ|H…þÆ8ä6áòš+z¹¬ Ãz³Ë;Ä’ÄãPá»%9D,û›"Î6Ÿ#‘Vd®Øg®ñKT(Xî{¿¥Ã],õc¨¥GÊk¬/&Y‹ŠäÐEcrê.*¼5Ñ ÝP¤aËÓ‡ Xgã^0üljÏNŠÉH­xÌŒÀ™F÷÷t³ä6ìZî#ÀÐ:RÐ+IHswIŠ¾Ú%+ ¼gZæˆ=ëgœõö~Ʊœuº||ώƉEêôƒr²eõkœ^1·7ÅÐÄçx ¦¢é±Œ§–øØy½›X¹]b}ÚÜö´-zßy½™XiO»Þ†Û†'+aºW©œ>/¢l“‡ÈG¸ØnfpCÞb’ºŠ7à)‘ÕN:»ïp¡’ÕUBz"·°¢•SÆSäEåä¯Àå¸ÌËoxwÜøŠ®$ŒýûÝî*Çw¸luê!U©fs57Þ‘ÃCì9wàˆ1—ÞGǦŸ¹:ÊÿO7L*.;b¯øᰃ˓qãèP)G‡~hoT&î>:n·úŽ"øìí(PJ*¡ï™Ã3ž(äìqnãUm+™¯œN`ÜÔªGƲxì‘_‚Zï‡gb>ÂwÉrõH¹YŒCåªÙü¥ÚH‰Ã–ŽØ;Á¸±öZÞ3aŒ(þ”‚<®+|[Hs?þ Û«L2Iæ~ls`ሴ{¥ìo…¿Pšm‹óAMÜ«©ä¬ýø3UnA}Š:Çhá1å‚õ¬÷ÐÁ:‡¶(TÊJ‰zà<"·x¤œI+÷Qq|à,Y‚ãÒfÆz®µg}†\fÈe\þŒ\œÖ§ãæè5ô½ø¼Käšû.4¾VŒteâ¿Mølå'È`+>'P$–`Ü[ùøÀ#©¥Þô È<±ÐÁºYÜš‡F-Q¯£ Kˆ.Z/¼Âú/·ÿ] W|Ù¶ÊtHÖ‘J Gôýsî? éxQ'Õ%ôHYRýo#?LçLµ‡=¾ÊÛwÃRÙŸqtÑÌ},•`è?j8®Ø|¸È-œ¾Úedœh×e΀‘±~ÆYoïg{ÁY§ËÇ÷ìhl‰x›Æ Y¶g¥}´ßùߘ%ñÿé£Üïðh0šÿ‹–þ.çòŠ\æÈ凜Ã{¹¸Jv/œÕèºß…‰l_c–(S..ÕÒ—=oèfýPyEÜÐÃÞ]Ä"Ø…Ò•K\<(˜Ôäz¡RW”>C.3ä²@.¤D[䊱oDÃ{ t®-êû.Brráç–Všÿø!7QõèæÄôÆÿqó'ô”)X=¢DÃ]$³¸Tz‡ÈeÎÅ-àcΉªñÖH4d‰–ˆ³·*tTÒCŠÅe…fY™,ÆŽ‹".;8wÛ‰Ðÿ­öæ2¾\Ðsêåâ!sEõØüýºy 5ñH9SŒ+ZñÀ¹Õäº×Åi·’â”k%­ø–?Î…JÊæ‘s¿S¨PNÖw"½ßo‰¢…èq°ÈTbÜ,ƤæRS?…Îÿ/sÅ_ß}¬€[’|°Xä¹Ì‘Ë[¨¿Q.pÊ'5Œri¸ ÷Õ.¹P½.3’|,X?㬷÷3Ž½à¬Óåã{vt$ΧÒϱ,»³Fk¹½)KY|à-˜ŠæÇr¤Xä±óz7±r»Äú´¹íi[ô¾óz3±Òžv½ · OVÂt ®P2Ÿ‹‘ + hÊd+V0¬‡ÝqC–™«£Vý)Kê»Æ°öΤqÃy9ñV·ÛÃÀvËFâTŒ]GôŒÝ‘û-O…±‡¸µ@èIÔ%txKI¥Ÿ=˜‹Xqi.žå¢¼l™¾|@TV/tº²öíà™ñ%â–’{Î=ô";¤ýï;”лùÀ#ã‹)Z±â²>³®‹ƒ¬è¹É:ëÃË¥M¬ÑŸ·xäSŸñŒÁ¢ïŸ×\}6~ûûU“ܶÒ÷ïºÀC?`Ö9‚e\ÙøþUHʲ¨‘CÛb_%U)‘4 5[F˜qc«àr¾AÎÊÌ YÆÄ’u àZ°ŸAã3^Ir2ε1öŸúQ«¦ ,K?>3@°æ[¬9ˆŒÀ˜z­ç€®,—P¢åˆ­bk$p.½§ghR„Z1§¿aË=v bÞò—!¡ëÍ|«MÇ´F²CXÄ‚áš“ô(§"I¥Îî=ô £T+öëhÎ+0·”¡Q[@·ú—I´¹ 4‰À¥nPå&¨c¬©Ì§çéX +ÄÍËu.ñ¶ן¢Ø·ïOQ÷%Š^~üZÕf(fÁ‰uÃBɧ:½'Æ×ØÍG¼†iÔËeš|ûòär6“r>ŒëóÃÓ3«J—zË·-§åüÀ)e>ªÄN?o^ƒ©à<° ýݘÄ7¿êZ–u%K_ÉÒß~]¿–e=­ +®~]þ,¯ ‡4ßI#CŽ2}?kð +óåc ]>]®¡Ëú–½BŸÆžØ»+ÁȬÇØ«¿YƆŽÑÙïO¡öeÖÏlú2ëôôÏ"ß–‹(õœgÞ*¶ŒbG¼÷ôñ9Gæ#>ë-磻 ô +RÞÕ#Ë%ßêžÓ#«Õr„-îýïý3s”\{W°`va=FZÊmêó{ß@ÿ2òÃ\=Ê5=B逮{>ÄZ'tG,ñ‘-ªkÎèÅaŒHùÜ%³Ò5öQî9Þ]¸˜÷:^,1þ¹Ò ºÿøP­žó(jIÙ qsÙ²–QÕâxÇZ2@G§„“(€WÆ”¸Ý¤oÐáÇPŒþøoùorÄZñ·;¯€7â­µbÌ1„€Þ2æD„"Ø7h†)Tî·èø:¯PêlžA縨äã\*4ä¤Ù¼é–)îÑ €Žñ/©Îµàãg?Ÿ•D:'ðP·z¡º^äõgN Ôq#Ô­_€oóŸa<-ð°mýÖ5¾Æ „=ë ròÞW2@WÀÆ}_.|_çoWÔkR¥§u¾Ÿ¶ö—Ë#Œ‘„rº AuÙjÒ1¡Ç¾U«¦ô…*‡h}wèѦ[nBäÚ>¢—=¤¾¿Á¸iÊQz©ˆ½`èËÐé0ƒ0;ÂÕw×Kø Ö’33¶B=ðýÕrœ¯‘ó9Ÿ‘o¯Pl+0ŽÙ xùøR!@Ñøc¥ò_ÙžC­–-_S+~ׇ§<´¢Ì[©eÌ”K÷G†þtº#– ÀÕQ~|Ÿo€óS_Ù{à Œ%<Ñ‹¤„ž9›c”Ó”khh½yI8ý¥‚iI9Š¦&­ÌåJGm§hÔ¶ºÅùr è¶å-£o¤)[4³\ +qÆE?|¤¼È` ¸T¼E 8šöy:äøs¬©óerÀxÅ瞢ַïOQö%j^~üºá¤‘×±(Öª7œ(Ùô1Uý7 ™uù°×³x‹H$Ñy¯% ãË“ËÙÌÊù0®ûéüÌU%;ŸÌ¬L߶œ–óo¬”ù8¸;ý\½H4´y(¤˜©¡® #QïÀÃ6Ô+ðÈR©ß›íø9¯‘óï³Ý…ñŹOûß_,a +¤ýà6O_g¶[§É<¼ÒÈG»÷§i` ÛNà9º œ¯ó8xÌêLÞ{ª½÷¼»\霵äd¡±o±>&t!ÖLëË+tmà´‘öÐúþžŽ1…KÎ6­±Ã`/˜ñ]=2CëÕ2þe×1ÑÒø +\B)²)ò1]‘ÀMúM`Î1‹´õ1wxµåF-§Zÿi­ªG»ù>riDGä–GD®ÂzDnÙ}ø‹ðf“ =”Žª½1fLoÄ ›AqSéC.á/Ô$ãE0”ŒŽžzŠæ\-$*g”JÜsOã|…¡¶Öos_F~ðéfíW¢£_=j§ìÏð•‚ýà_,•°÷òÇ2Î×Èyœ?¼VT®G$–Gl¡[/–¦Ø\1¡Î£œlšâ˜rQpn[3tH?wñÚz¹d€^„·üeLèÁ:–„ÃH„8kZäšt'"p:d’>‚õ¨2êë¥Fke„n Ø,“`*¨°œÔ#¿°¬­1L'¦ëótH5â,—±¸Çõ§¨õíûS”}‰Z§—¿nX1/8'Œ&t;ë”æW¬¥EEÀ0·ùÃ^Ïâ-Lëå¯d|yr9›Y9.×—gV/õ–o[NËù7VÊ|\‰~®^Ä óü"Üx—xÚV?o{ûyÛ¾VvÉÚ7£ÒÐwSæôIõÿ}f·ë™ýxÜÚ !î’“>£–ÿâcÊ ´öbžòhPeéG}™rzúgûóÿ•p»ñ‘x«w¶Þý•ò+7¼#– S(f¯ò.©ôpK¨,½›g°–ŠØ{âø-JÀ1DS÷R22áÙÛV{Žê,Ζ3߈Jý±ÎÂ×Èyœ?è,wsÛÓÍ ?oý:¼»ˆBÁ”îB@†”Ré +Ö1ÆG]1I¸\h cÄ>¹dK9ʽ§¯¯©çäü§ÜÅZË©óÔ±K*¥TzÆÃ^2BcDöz†]´pŸ†ÇZÑbýüxôgQOÈxH\Ñ{c~öÇmŒ {S ˆ©×øøŒhíÿø¸Óö&Æ=­&d<ï.+E5Ù +ZCB·q’3Þt¯ý6´?ôýµ7‰çdÝ¢vo/S”“žôý-}ÿAÛl>¾©7P7>xŒò5r^#çßQ…ªNê1H×À°ñéy:äÐ’ár™$Ü¿Åõÿ±_-ÉãJpߧРʨPÀºà#ô²Þøþ/IJ´$0‚=ý(*bVüX嬬ÌwìõöóÛ~a¯Ëׯϧš_››_-=º"uºä霌éO‚ÉK^_ ‰ëºryškr½]Þ/k¦%å¶ry˜‹2}myL×ßUIóý$T~ùýtfË9’Éžþþ“ÿí ú» WÒÌ=+G~ ,È…ªôù%p¦ÊÞ+ØÐscE^öÞˆ%·B­¦>3¾xÞQr¥æ¶GóÁœÝMKɽÇxP/\™öFÜ ÑžV¹gyäz–7:ù´õ³‰ ‰(yÞ²,£·g`’ÛôÛ3B×=ðÿ#|3…sk'ãþ“‚ï3E5¢µ…]©šö¦RõzF :\ 8¢YA*Þz{8:îÒp I%×ÑÂ×æä!­ +“Ö¼—;G¬9Ú³q Ésré1@Í™¸iß¡£K"pg÷€6+S +‰ÛHŠô£3ÃkÙ“Ã!E%*UðS·=ª Yqü¦öèø‚Îq%k†|tªX¦æª2úôAäÌ)í9•!Õ0hBÅýŒés¸OˆK¯á£—{²W°CÔÛ‚:ñLìÚ'ÎÓ§Pa™!¢¦6¡ºkƇtXL^ZP‹•Mú‘?<É…Ì’Ä"¹ÍЫSÖG®4.—éV r/¯Å ïß±ÕÛÏwìú…­._¿>v®T”ýRJ#NòLÃ-À%Oebõ§ 1Ñ7¯¯…Äu]¹<ÍE¹Þ.ï—5Ó’r[¹<ÌE™¾¶<¦ë‚ù¥2¿ü~:Hu«óШ©²s7àæ¤ Ÿ $akÍ™JÖ~Ü ÜQ7èà}ÕÚ{ŒÐQu¹VèBmÏKÊô¦íŒÙq¸¾€é–Ëž·³êŠéá½¾ï‘î‘ë=r}D®WäûÀ3ç~ lîîÕÅsÌq„횆F+0xµoÒ×2ýOﻃ2ÆŽQ”KêóWžqÕ=èC#£ÁªGlQ sé5=BÕÃÚ.äÀ´Áôá dQRPÓedÂ}2úkšŸÆòDÉ=æ(Ré³Åø¸öœÏþŠ ª¥îiâ˜bžˆÅzi¿?Ûmhâðb²°o˜–Ü…×'ÜúoU\÷¦Ð˜n‹©šîÔ|P–'õ5G-j}ÍÇD~²;Šålýø~A[\ Ér!‘Ò›ÅñÉ1†š$¿”š©©<òÜ©¡rÓ­"¥B2ç×¢TÑÊ?Þ±×ÛÏwlû…½._¿>¶nè·¹…’t¢U¤N—<TUºàL^òú¤p]W.OsU®·x?/žÖ<ì´î·|myL×ßUIó=je~ùýtšRYon¡BÌ +ã±7’IZ¡ãÇ{7°§¾A7G§´~\;<ÖšWJ­í…ÞQknÞB¹»µêˆEÎЗã nµ×—„™^õ3¤ñ ·q¼ºòÔ+p#«åŒóŠa$Y{W=¾¢ƒåZ{²Œ¦‹9^à#êŠÁæÖ@ñkÞ(!i„ýíÒ´Ào©–˜EgjìÅÜ&{î!í9ˆ^亼Âã&Ö˜UWâÜ#žè`KJ­þã¢Dš6\KU4rç½Y4&Í ‰Y Yuì º‡„.X"}Õ?@Ÿë¿£.àÇ¢Œ%ÖçÐÐ .GL¢ +m‘>‰Pt¤‹šÇ«9€K­=χŽM[^q|Ëe$-G ¢©ˆ†EŒ"-ý Ÿ.™8i_ó ÚJ9;é=r}D®XqÁül1•Åjé‡ÐñÀ_¡,AÉ’ÉK‹)‰<ý(ä ²BÙs¯æœ"ªn;Qn,5WC_–êÔø)5âV/Ó­rØßùµ8etÄÇwìõöóÛ~a¯ËׯÏû­ Ÿ¯0¥4ÊܵP‘:]òtP&FŠœ/åö„S0ZÏÖ¿ +‰Ëºryš«r½ÅûyiÍÆë~Ë×–Çt]ð]•4ߣVæ—ßOqÁ¦Ó¿V½ô 5®þ~CGôÒ —1nC}C7üÛ8fÕ3%Og ìcœÆ7p¡¤Rã=ÏÙsï3"ð\ Lv¶E:‚,™„7t\Ÿ±B7Œ²’bÊbÙN1 WÒ’éBn­—Å5‡K’Ú3}|EGÍ°E¯³EmÚ¡gúk[Tï‘ë#rýí°õ)f‹bŽæQ4·ÞæhQk$%÷-:~Í™Zã”ç¾× CºEðÍ…’Ö~ _p+T“ì‘|ÌÑ_H!Š¡£êžCʹ±{<žO4õ¸hyds·èFÅTCBwª\Θ¡¯p¹bA©®ÄžC#ÌÑZjȪÃ窧Þv€>ɺáWñ,Sj»ŽqLi,”ŠÅ”F&Qëér|Õ_’éd£ê“¨p4i½@ÐÉ\ìz£ŒõÓ­bÔr]^K¥‚Ó~üxÇ^o?ß±íöº|ýú|Øšáæê\-ÏÖ¨ˆO—<“‰Õ—K¹=á LŽ¯Üþ*Îuåò4×äz‹÷õr]ó°áºßòµå1]|×$Í÷¨†ùå÷Ó1J™R®jx¬Ð™²•3òãa-µB¯”Rî¡ÿµ¼ZÆVà™R•=º %c7èVÐøÅâx»š[ÙHãWªÙÏpGJì}ð¿=R¯¡Fõ$jÕPŽúŽ.m«A¶¥wU7¯=Ó‡oÑ:µ¨õj.½¢ýðФæø1ïé˘UÏpÊ~†[¤GGÕ‹¦½x1¦¾ÄMF^à½OFãK£SõÒ[ÆácþK=CÒ§¹QÝrã—<“ˆYÈþT’–Σ¯ K²|F¨{E¼.g0ýГ[/èªßeÞ·é_#?é‰Jë‰>>n%ΩŸEã ºsØ\d­ÆÌE‘nc½–.z\‘ëÒ&×m¯æcÎD ßð\ãkK†&æ¾E€?â×'àz2pnðå¥6„9y sœ 7zù˜îmÚL–÷šHµáý;6{ûùŽ}¿°Ùåë×çÃÞlªõRJCQžsb‘:]òtP€@Ž|¼àL^l}-$.ëÊåi®Êõvy¿¬™–ømåò0WeúÚò˜® ¾«’æ{ÔÊüòûéÙë<ïÜ÷þ·#‘ò†[àH5”#½!WÊVž™3ð¤¾á6ö€¸s°¨{Å wá7øÝJ 4æ¾¥é4¸‚ážx‚¢ÇãIE_æ>"Pp¦,¾Y†ò 7ä°ýžö&|Måž+£ã¶ÊýÌ Àd[Óx¾jhuÃφP•‚²Ÿ€üðîÌ”‘cÖ\šô5~v&JÞ|xØm-íÉáDq˜Ú(FµpD«!WÓxV¸[ª'å¿ùs—8¥ØIâT(TkçÈQñÄ©—•\ ¶Òýá+þ?ê«%É^E˜ø ×>BÁK;¼éûGLR¥.K¢<åñSë«"«ETH$”Šôÿ û½ÞÁÖ¶ Z™q'(M#OèUPš5RʸÄL•å^Ékχ»1é£Þ“ÀcUbM§á0µÐñypû\¦è5p½®ÊðR8¥§M;¸¹ÔòŠœ?½:áTÂZþŠÈ­“òo˜€ç°Y†EBäø-Ä%c…¦5ZÖþDÏWÌyÂÊ¢f«Sç¸M9ã èM?Æ?læÛ{Å!­xÿ†`_¾¾!î;‚Þ¿ý¼‰­øl÷“{#ëv/¸.m<ê¸(#`lÿØáLá¶ÿu¸oÙOn»sR.Ëíývæ*’_6笌¯mÛr9ð+-å¼F®,Nßï.R Œž§0vyœô¼âV}–ßõ+©òQßXJ ® Wîó°~Îj·š©o\ñ¼—TãUÒñãWWè?h;p§Ö|fKšwá¹Ug–´}È(Ôf3ý×ÊòØO®€‹”#M\“,•L}îCä¼caG%º&t8®"÷ž7G‰}[ž_£Wû+|Ëó¡+YÈ+ŒË'z˨ç:ÂÍk* Zð§4¹LÆ:g}yºX@Z8RJ‹ƒ/ËÈzy0e K©9Ý¢5Œ:„‘ ð /™õÑŽª¼B_žŸu!vIÙIQ¦Üy&Ìú®+oÎÃI9Æ Ð•œ_ỞÍ¥Òc.–o£x1ÏÈ•ÑFk?Œn/ wÈõ_É94±7Ÿ/ÏrdÜÊÌ•õI.‘² )I³žÑn+¡vÔ„–„ž8ëCÎMEë—h£*f¢õKT¨ˆäæ„z¬×KÍ9‡¹ñl3d„ár$Œ‹A/Öýä­S~KÆÁæ§cmLl²½×B­Ž÷oöåëâ¾#ØéýÛÏ›ØFÜÀ½ÃÝ—‘KŒG7El¤ïüðnÁnû_C›ì'·Ý9+—%iôræ&àoûÚ¶-—¿²RÎk\Ùâôýî&½âß[ÉðÇ4½ã +w“’Êj|@3Lë©Ä`‡Ð1Ótì§C‡ók ?ÉlìÀ'ú\¢ è‚ÞQY˜¾f‘F™8Ò—5³ŽVÖtž2@¯$ÎGЗ$ Ü©IÍ \ÏÉuÅ8ãó8ó×ÈüéþúÒÂT}IºÀ¿T9–DŽVÊì3ôõ=€¹Ïâ²<ÍæÇ+Èòü Ã(¬ÏÒ²>Yàt{‘ŒrUì‚ñ6£¶U“YЗ/Q´Pæ–SϱðžÓé¦U%³zdפ º¨”#ϵ$]๊kJM‡éêÕf¦ç LWÕ|EŠ>Z‹flFLUmnFËGƽó\ ËS%*±ðQy®©,JZÆáœÐ{{…žF‰†Èœõõ™.¤¡9™ž×¹Àèb¢›ýâ òÛ èrýwZ‘P±6Ï¢ŸËs½F®·Èõºk™gÈxX tùæA%bv-ϧÊgXܦ}&KwŽ™ˆK?P–%é‚œ7¯¯¦Ë“Qžsmäί(Ò'ë9x.Ý_݈þáRp¿ñŽß½-Pf*ÞO?Æ7¨æù½* ãõb}ùú†°ïˆuzÿöó&4†Ɣ厜¸Þ›P—:îÉÄÛÃ?v¸Ì«ÛþWÙOn»sN.Ëíývæ&àoûÚ¶-—¿²RÎk¤Êâôýî"ZA€ÁÊè\ÆÂú»C‡)5›õwa-Ø¡µ#̲ã·UõYÃ2°Å!¿–júºÊ:û_š!ëÁœ‰ž éÁTÙSB_BÈK¾uŽÈã5và•º÷ÙS'   —³X¾9†kªaàJ]ºª&̹R´6÷¢õ7*åA®\H‹%4‹Ð Ës}àèŸÑró`Í:Î1·y¶XŸ.Èyo)âPs“£ynIèÖ¨ÖÈ™uxEѹH×7¹Jæ–S]@—q&#]”J×£Ñbͬ Uõ#}Yº’÷Œƒ(~[fY\wn™M×úÀ[® +ŽóìÐ@·À‚ô|IèhE×2¶"˜.•:ëy†"5–”9Ç4ÊQçö¿|ÎA–¬Ã|Kãz$ŒËBwžûè_#ÿ pùeQŽy*sΗçùè¢fs+Z?ãi©Âd#ÞçSåù,™ýyßbÄ|„|MMdt¢˜»ÿúD¯$Å<À !1PxGlo·Ê8ˆïÇX[¡Öd{¯…ÜÇû7ûòõ qßìôþíçMl§¢ÞÏn•¸—-—:nÊÄêw\,pÛ_ R+ûÉmwNËe‰÷çPãÌ8'·Í9-ãkÛ¶\üJK9¯qg‹Ó÷»‹Hƒìz(ÕxগýïîÀ+E9È#×9?š×nhÖ=•›Þ¡;r~”ô¥ZÞUÒ­÷DãºBKÉ(-Š=–e§€x#îž±<[¡bIÕ<È[$½®Ø"­Í²>Íîˆémâõ·þ+ÇàÕµÏÀž¯ +ÔÍf–'€B¥·TCãUïÇæHÑ—´-©°eýП/ŒFê|?ÜePt&e9hE+ +#Üy/2güù%úе?Æ% +Ÿ[P§)K”©×žÓ/qDMh»”zçyžËQ¤ ÌÜG3¸¥z¤.kò¼Ã$äy%™}Ëú°J¼¢…~SªÙ–%ý(n1ÏsrnTšem VZJÃe# ýsµE¯‘ë-rýCmòâ9‰žØ乶¹­¯‹‰-®{K©ŠÖÈõ|MUTüHgèë³¥P¹<3¤Ü1ÊÙ+F¹ç빓5Ÿõ|}QlĵÌÀקy¥Rí<ÿŒœ—ã]“çFÍ{ª­Ô$NÞ*…·ÛqÂ~Œ¥@î¹m¯9ÈXñþ ¡¾|}CÔw„:½ûy—”îâ›±¨SR\ÚxÔqQ&F+9?üc‡K0 ÙþW! ÙOn»sR.K¼?Çg®"ùesNÊøÚ¶-—¿’RÎk¤ + ùûÍEÉô~îyÆ<ÿw—ƒ¸PWÿ|Z>M vè Eª!æºuRë‰&+ºÔ–ÉÛ](kG˜dCâ`ÏäK¯²^KRº4©õ<¨…¶”<¯dZ5i+jMsªK%éq¤.kBÇBËlÖ/R¡N5Æ\ c”Y_þù«JÔF9åëseŒ¼mVÅåÃãb"J5ð^E%¥šƒå‘TÍCo…´¶œ“hPÍ9\yJEO«.àyˆ9ô5Éâ(Ñ:—è_'ý7ÀŸ?Z(Õ¢‘æmü¶ÌýyàÑñ›_Ÿ*°ŠÌ³²¬œ©•’¸>p#ÉØ*U ΗoÌá:g|yàèùì=¡Šƒál‘ÒÚ¢s²Ö”F Úº q]ëì—Ž 0&£µEÎ-¸òõµÅ‘óž“,fuîŸ È‚œ7öYYÖ'‹P4N<_Í?e„ë‡hIºÀpÁ{ʬçòæÐÂ*íäI«ÜŠ"ã ÑN?ÆÚàjض÷*¤êxÿ†`_¾¾!î;‚Þ¿ý¼KIk­žÜaŸ»Ý»P—Q\ÿaX&¿{à ¡¶ýµ„ì'·Ý9)—%Þ·ÓåÌ8'·Í9+ãkÛ¶\üJK9¯‘+@ý~s‘†âgÃü’ÈíÀ±ø/÷U7ï~…>†H<»rÌVmÍaÚS\>¬ûýmJ3ã‘([Δ¬{I“œfh4|ãsâe[~ãâ”Zè¸ ¸"G:åÐV¼þƒ\œ§¼å¥ûä<:VÙ +—=Jõþ¬DLu07‘˜pû 9 ÁPóu`8Š)Szù¹  œGiÛÆþqÇô^}Æ +»¨Þ¦*f¸{YºuÐkÛèWjÑÝz~XÎËŠçê?Eƒ“Žèww/¡á¼¥.}Vÿä¥6E-„‹Omº?åûg(C©mD?—r¹E.säòAÊÙ‘'ƒšˆA¡Ø2>>Ç/ àò{ÄœF>Âoí/,ârέœw,Iè–ÝêSX`·R1Ù„bàCÜrŠ]BGŽ&DºÁ@4¹îÐèm¤[ôœý)úETVJ‘… µ«‹p¹ãô^s” ·’Þ¿.¢%RÞ—£ ÕÛí8,—ÊŠW´åÁ¥X¢IèvkQŠN|9¤†¢‡,&i‚º5ŠAh“”ïNR> º IW¤±ÿp1 <8enû¹ýƒåWcå àÈ˔㠹¸˜æ„Ç"ÃSŠº"<-sMå‚õ®úúx­/¸jxùñ¼ $SPBŽ|â% +s‡O¬ÏÄÑÅo —4\—ÙqâëÉi6Rrb=ç3õHºœœ&#'õצ©?x%Åc0Òðsöâ|Ì2–¼R¤XªÖWèâB([л’ßÖ£h ½[)¸Ç±¸åKûä¾4É2empNÛ¶ÑçBÉ”CºaÝKhS´Û¢w#‹”t«ÿê’óÚÄØòÓ7‚ +-ûCÏØêÿ ÇÆ@ZF¿’¤ý—Qx÷HmœwQžxÅsõ*„ö+[MO¦ÜÑþ9Gõ¯û9$(ÇÎ-„Kr€o°·p£Í~N$Ÿ-F:,W +²%Œ}Bõ†–õÏF¹E.säòaa,+ºØ}†bÀtH;·¿¸` Òª¢qI—•0·¡â2E›¬›uº àÞ¢]Œ0.þˆú¿¿º8Ý°%Œ}¦hpB‰L¦ht>¤­þ¢Oèv5½še›6=¹”CëugÈçr™!?L_²‹´ÒÝMùQÀ-K@ÅÀ^e¸ôlÑ° …ÚôÜøîÁ‚qL&ãÍhI&KRT³Qu‰.kncÝëê©©XÏN}àA 6{ž›]òðî4<Õqð.B¦ÆuñNJÄú —}}<áÞ\6¼üx^Ð’‚'ÐRï)Ë`TÎõëS tñÁ3È% ×eˆwâëÉi6ÒrNëÓ™z$]NN“‘–úkÓÔŸ¼ÒâÇ1È +iø¹xHÉ•$d‡þPhê¡©;„æÿè,¼¥eo„¦Þšºƒ œYÕ·vÃë€XîìÃ~‰uþUèoûÓ3ôäüš±þåXeý}¯ôñxÙŠôb7\‚eèV¥-¤7Êz$')·†cÿ$Ý_ÕQµ³¶s·2&ŒÑn%Mvà M9ùÎÕan–r»æºH»ì‰KB?f¸šUE ‚¢Ÿ5µ(u]hHF:Õ0n5ÎÝjw½‹Tßm͹Ô5é¸Ô(ᶭ"<Y”@·j\jÀX….ÎÛLÒh·ú§¬m í¸eY FKL‹U¿…p1ÚWˆ ,z€šFŠFÅ‹á’¬†K4›¢°ÉRd·†ÂµíåŒfgpÙ®i1ëpíqÅÓ ÅÃ(ÊÜ(¹~ô2Ã+ðó®elj¯'§ÙÈÊyˆõ<œÏÌ.¼Þ7ýÚ4õ篬|ûþ8TrF +â2èøç†çúJOøÃpzüãjLý;¾7O¦8dºñ _¨ÎÓƒrç*eœãý©ðyÃ8œöœWë¶Ëê ua`'XÍãüKý¬Pž6à;mÁ಩§mõÿDr?!7úχÿ'å÷ endstream endobj 12 0 obj <> endobj 68 0 obj <> endobj 333 0 obj <>stream + + + + + application/pdf + + + RBPassUp + + + + + Adobe Illustrator CS3 + 2008-07-03T00:35:39-04:00 + 2008-07-03T00:42:04-04:00 + 2008-07-03T00:42:04-04:00 + + + + 256 + 132 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAhAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A7Z+WOpecr3VPNZ8zWl5Z uL6JrCK5SkCQtboDFbOCUkVHRqumzH4upIxVker6h5otGuJbPTbG4soUMiyTX00MrBU5NWNbSZRv UD4z9GKpjpd8L/TLO+CemLuCOcRk14+ogaldq0riqJxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K uxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxVbNNFDE0szrHEgq8jkKoHiSdhiq23uLe5hWa3lSaF68Z I2DKaGhoRUdRiqpiqE1f/jk3v/GCX/iBxVDeVP8AlFtH/wCYG2/5MriqaYq7FXYq7FXYqpQXdrO0 iwTJK0LGOYIwYo46q1DsfY4qq4q7FXYq7FXYqgNb13SND06XUdVuVtbOAAySsGagZlQfCoZj8Tgb DFXzlqf/ADk95h1HXbhvL0ccGhLMYrUTxgzuqRn42JqF5seXGm1B74VT+w/5yHutNs7fUvMH7+O8 +rQW9lAsatya/uIp5+zHjbwf6vPiPh5VxVnnkv8ANSx1Kz086tLHatqME93b3EzpFyX9ISWsMIj3 q/ELWhOKvQQQRUdMCrBPCUZw6lU+0wNQNq4q4zxBinMFxQlBu1CaA0G9MVdDIZIwxUo3RlPYjY/P 54qvxV2KuxV2KuxV2Kqd1dW1pbTXV1Mlva26NLPPKwSOONByZ3ZqBVUCpJxV4p5x/PbXdC82a3pE dvaNDpSy+h6iSAyMYlaEMwk3o5PIACowq8G81/mDr/mnz7qd9d3Uy2cyp6OniR/QjjjCBFWMsVHU k/5RJ74q9q/5xuvnvfMnmG4LOUe1tzErmpVGllYKOtKV7YlD37AlCav/AMcm9/4wS/8AEDiqG8qf 8oto/wDzA23/ACZXFU0xVD6hqFnp1jPfXsqwWlshknlbYKqipJxVS0bWtM1nT4dQ024S4tZlVlZC CV5KH4uOqsAwqp3GKowFuZBWigCjV61rX7sVYZ+bvnb/AAh5MnvonMd/duLPTmC8qXEiO4O4ZfhS Nm38PHFXlP5B/mJY2V3rq+Yr0RNdQRajcandPRSUJVzI7dyXFPE7YVfQrXVssckhkUpEaSMDXidt jT54FdbTmeL1AhQH7BJVgR4/CTiqovLiORBam5AoK/LfFW8VY3+YutS6P5M1S9trkWt8lvIbJ6ry MqoZKIG+0wRGangCcVfLv5o+e9U80a3WS6eXSY3ml0yCRY1aKKf024MU6kBVBBY0IwqwLyvpl8un x3T28qQPMTHMyMEcFONVenHqMQpa1KG5udV0+3dndbaWSik1CIJg7AVOwqxNB3OKsj9bUdNtSxlP qclW2dWH7veORGWnf91ih7t5D/Nee88ovLJcpc3Wm29i14tu0fqlri2tvUkZPhCAz3DVp8PJT3BX FXomnWkmp2bGK/Fxb+oyJcQSKV/dOAVIUv8AECoPWoI47YpT6KxiSJI2JcoR8X2ahSeAIFBRcCon FXYq7FXYq7FUvl8w6HGsztfQlbeCS6mKuG4wQsUkkPGuyMpU+4pirCfzn167tPK8UVm9bbUobwTl RVmSOyknTge3xIMIV475t/NDW5dR87WkCm9Gu2I0vSbeevNUu7j0hEioacxHdORv1HcYqkFj5R88 +cI312+4Nc6lCnqXc7LH6jLGU5lUBI3X4vhG/bFCb6V+RKpdxajf6kBKyD65aInJdmX4UkqP2V32 69MaW3q/5OeSrby3rupPaTPLbXNpCgEhBcNFIxPQKONHFMSr1nAlCav/AMcm9/4wS/8AEDiqG8qf 8oto/wDzA23/ACZXFUyaaJZEjZ1WSSvpoSAzcRU8R3pirA/zx1uPS/y51NSEaS+UWkcbNxJ9U0Zl H7RUb0whUh/5x01At5FjtldJJhcSPKrseQUpEF8ewb7sVeuYFfLX/ORfmTUfMH5j6F5Z0q6e402G GRhZLWNDqImubaTlz4BmUQ8EJ2HxcftGqrz/AMx6bqXlqzu7G7jUS6jpSq4rui+oJPv5QUwq+hP+ cfteXzV5OsxcXAlfRU+pyW5pXj8SxPse6DjyO9VPzKr2BVCqFGwAoPowK3irTEhSQORA2Hj7b4q+ YNa85a35o82an5QupJH0621G5u7C6ZfUMcFyl5YEszSVZVbULfgqCgQE/Mqnnlb8utE0ZVnuIkvb 4FyjyfHHGHJ2RTsarSpYH2woZPZaJZmKOxsrCMxRu0sVtHGCquWMhZUAovxMTt0xVJIvyJudb8wO 2pA2Olad6yxVoZZmltLOOJkYArxRoJC58dqGpoFSPzl+TWtLf3EMCv6M2oJb6OSUJuFNjLIoY8lV T60PFmb+auKvKfIVtrnlybzPbXVvJa3ccMME8LDdhFqkUUqKdwwEkTJVe4OISWZwfmkvl/8AKLzN pnrSjUtfu7u30mJg0kUcbmIXe9R6Z9K4YqR+1viVD6Zm88eWlsri8trxL6C1kto5mtCJVBvJViiI cHgwLNvRtsCpza3VrdwJcWsyXFvIKxzRMHRgDTZlJBxVVxVTuLm2tonmuJUhijBZ5HYKqqOpJPTF Uh138wfKOhyGG+1GIXAVHMEZ5yBJK8GKrU0PHr/XFXl3nj86rfWIoNJ0HTjcmO+s7y4luXNvFJBY TLfPGjMpPKT0EjoVP2+m2AkBnDHKXIEsQvvMF/HA0cV4sMVylzZXcUCmR1tLu5eeZeRDKxrctTp9 imROaIcrH2dml0r37KHl7XdX1KVjq99cavGha2t7TmECD0Ui4KPU+FnDjlt+2e3UeKe4sp6KMeeS Hw3/AB+Amy3esSNoEcelIkkUsUVrcT8X9eR4GCJHIQrKzpGR48uIpg4pnoyGLTRFmXFxcu+Pmfx3 p7HresTTfUrGxl1K+tKvqPooTHRV5SIjIXAkUn7LfLuMHinl1ZR0MSOInhjL6f0X5eaH1DW9egiW 01fy9cWjX4CQLJX02RiI35sBVTyNKU7jp1wHMaojm2w7OhfFDICI7n72dflXd3t1LcTahDFaTTQR 3FhCs8ckklpOeSyNGpLKPhX4uhr0ycJk7Fw9Tp4QAlAmQPWtrZtresW2j6ZLqN0GNtAU9YrSqq8i oXNSPhTlyb2GSlKhbRhxHJLhHMpfbeYLPXPLl/d20csPCKSOSGdQsiMYRKvIKzjdJFbr33odsYS4 k58Bxmj9iK8qf8oto/8AzA23/Jlck0sV8z39zJ+aXlvTFCrHFa3FyshrXnKfSKmjDbilR74UJL+f WnJrJ8taGkwiubm6nuRVS1IbeIeo9NhQNKgpXviEsZ/I66vdH86S+Vbm1CxS2KXsTSBllibiB0YD 7Sca/LEoeyeZdcFnomuvYTI2q6ZYS3Qh+2yN6UjQlk8GaM08aYEvD/JqWyG51XXfQ/xHGrR3d5I4 9QQ3L/XWDoxCxsJ7hlNFG4+WPEO9s8DIa9J9XLbmnH5jflHB5hs9DkkuGtdR1O6XTzMqh1S2lhml 5Ov7RBj+H4gByNa9i1vNvy6XV/y187ahp2oSOjaVb39Qob0p2QOttNwqOSNzDDwBxV9I+UfPen+Y PKEetQyxSXMduj3sCMKR3DRBzGSK0JJ6dsCpLqf51+XdHstLm1SCY3Go6bFqRt7Qes6mQLWFVPGr VY/QMUgEmg8284/mfr/mi1AjQ6XpDkFLfkVd0dOVLh60r2KR18K+NfiX9O7mR0gjvlPCO7+I/Dp8 UPoFh5p1I2MelpHcCLTRJbW9tLxEaK0CxLKZDxE00XOSMP2jb4TTaJjLmW4ZdOKhEbE7yl923yLN fK/5XWPmTT31HVb64FqZZraxs7c+iIktJHt1LVMlWVlbj7detAPBvmkdpcAHBEX1J6nr827by1+Y XlgW2t2b3GoX5kezn0q4n9a3aNhwjuiymJYkpGjMCDTuRvSHDMbuSc2ny3jIEY87Ao+7zT/SPzMu INOXU/NKWdto8+1nq1jK80UshkKekISplBUKWZum2Tjl73Hy9ngy4cVmY5xP6+SN0780/LskVqdW J0iS8ia4tzMyvC8XrGFCsyfAWbZiv7I6+OSGYddmrJ2bkBPD6q28+V8kg/MHyF5eutU0NbRBYSaj Pdi5vkc0YcbjUlEjNyHpteuZCPfam1LbcDhJNMU8y/kRpV15v0q+lEFp5c0TTo59VJqLe5vkDodm 5ooLQxGVePxL7nGwoiSaA3SQeVNR8qJp9rfayjWSend6nBYT842NjLJN6TLVfUfm0IAK9W2rTCSA sYEmgLTnyr+ZUPk3yvH5Zs4F1ZLBpXjvuXpRTfWbqW5fhxaRh6aSqvT7Ve1K1nJHvckaHMTXCfuS DzR+c3nHVrx7ddUi0HSrh5AYYwvqPC0VBGZpQHDDiSGjAJJ6dBg8S+QbjoRAXOcR5DcpRqJ8wa5G 9vEb3WllCvJBC1xdFyHIV+Pw/tHqNsfWe5jE6WPPjl8gE/0D8pfzGlhmSXRhZO5cm5ubyMGRm5uG YxepL14qQ1dz7Vx8MnmUHVxif3cIj3+r70bffkhr2lvHquqarbpEbm2tIIbVHnIuL+dLKCRzJ6Jd IZbhZipPxcePvhGKKy7RzkVxbeVBEW/lSLULSZLI3DX9jYXWpWgXjI73On3klukaJEkY4zPbo/Gh o2y9TWwABw5SMuZtNPMflHyj5C0211LStDiGoanZzxXUkzSvLHJb2b3KSQ+ozLFKJokJbjX4R0O+ LFi2oap581C719JriKSTyDarqUQuApT1LG4t7z0n9Lg8vM6eV5F679cUsg0P8wYvKX5deXlkuo21 yb6jq+s7RI11b6p6twxFQzEooVXYL8O1NsACTInn0Z7o/wCaXk7zN5W1K9t7+K2a1iMd/byt+8ga SD1BVQObLxJ+JVIPFqfZOFCv+W9zos+nC0hSFtZ0CCDRtQuowrF/q0YUFJKBjEzKxWv3YK3tlxnh 4b2d+Y3lvQ7vT5NbvJJLW+so0jgvIjMGAM6FVpBWTdiVqAaciaHKcsBVudoNROMuAbg9Nu7z/Gyh 5Ltbu28nawl1dC7laa6f1PXNyeLRKV5SmKAsWX4q8fiB5d8OHl8WPaEgZihXpHSv0lkvlT/lFtH/ AOYG2/5MrlrgvOfzOvrfT/zL8p3wuVtzEyLqDCTiwtXmoOS13UtXoPnjY5MvDlw8Vem6tF/mT5i0 O383aTaXBl+twRNE7pw9JIr2WMyM5Zl4mMWqseRAow96QlkEXJ0+inmBI5D8U680Wz0T8zbDzuk6 NoWpWdppMLLIrs11czJb2yxL1ZCrKxNTsGPTJg24sokGjzYn+ZXmcf4qvV0fUTFFcm3j1GUqGWN9 PaQAKa/Eq+ozOP8AMwlI8hzcnDiiBx5Pp6DrL9nmi/LP5f8AlHXrcxW3mCHUdZuRBqfqOjNOLCXl byoQWTlyeN9ytYzQbVBMJYQR5uTi7TlGRNenpEch3ft72W6dd+U/y81SfSr291AR3kAu11DUZPWg PpEoYoygFHFRtx32HhgBjA0yyRy6qIkBHY1Udiln5lz+SNe0qx1K1vrNpbmVLa6v0McsyWB/ezjg TzBHBa0AcdO5BtGSPe4R0eUS4eE37nmNvr9p5Ya80Ly1rCx6BcXa3BvZAwmcksq24WnxqkaKW4/b 3Gw6x8S9otstEcdHL6R3dT+r8bJjov5R+cfNLLOZhpmkXPOVNSkUSFqkcHhty/xB68gzbU6HHw7+ rdkNcYCsQ4B8z83qvln8lvJ2kQRG+jfW75I0R7m+PNOSoFZo4P7uMGm2xIG1csGzgykZEk8ywO30 G90rW9a85TSBtJTW7mNkhQg2ltpmn6vZoSFAHDldRInHCh5ldfmB5j0i50ldGuWsl0+1jEVD6nJ3 HrSs/MEOJJZ3bi1abeAxQ+hPIn5v6b5m1mHQpLc2movp9rfBpJFpJ9Zsra84IKLVgt01QOyE/IJT qXyLoj64dX1WY3scRYabp9wEFrbB4wriOIAKxPEncfjvlfhC7LmfnZiHDH0956n4sa1jyZ+Xryyv BLKgnnSe5toTyjaMjjJFHyVvSVg1TwI6AClBQHAG2HamUDfeh+D5sPXydPCk+n22o3LabciSts5D W4o6mFTbtzqQFX4uVfh98j4B5W5Eu1gfVwjiFe/z3/HNEDyHaRfuZ797bSSPXOn3FysSO4Vg07iR gz04cthsQflkvAHwaT2rMi6HH/O8u4fd7mG30vlqa8t7ez/0pb+R7RbsmST02uXaK3mCScFYxtGd u60Na7ZLwYtX8pZhyNe4D8b83oP5Y/l/5c82+WbfzPqizqb97iNdJgl9Gyh+rXbQq0aRBHJb6vyb kxWrNtkgAOTiTySl9RJ97P7L8r/y9s3MkWgWcjsyvyuIxcEMn2WHrepQimxGFgydERF4ooVdzQCg qTU4q3iqhe2FnfQrDdxCaJJYZ1Ruglt5Vmib5pJGrD5YqugtLS3HG3hjhUcqCNQo+Ni7dAOrEk++ KpT5u8q2PmXSJbG5pHKUkS2uuPJoWlQxsyrVa1RiMVUb/wAi6HfXWszSoY013TzpmoRQhY+cbmXn JyUV9RhMRyPgMVfPP5j6dqGsfmV5tSSs6w2k/wBUMjbItpbeswXw4qSR88KHk0Y1HSfOOpaf6zRv FWG4WNjwZlAibwr8LsvyJ8cUvpH/AJx5urmPXPM2nyRhI39K6RiCGNZJU29sSh635n0Q65oV1pYu Dam5C0nVQ5Uo6v8AZbYg8aEZCcbFN+nzeHMSq6QGm+Xl0HytfWCtA68J5A1vbpag8k/bRCVLbfaF NqCm2MI8Iplqc/iy4t/ibR/lT/lFtH/5gbb/AJMrknHeSec7f/FHnHzRplkfVutLTT7qE8QABA3C 4i5uycftq56ii++4F35NpMeAAXxXv3eVJf5P8x29957v9R19vV8ved57qw0+2ubb1VaezksxZ1ZO VAyXDRlSBRouVa1pERsb9W7JkOOURE0Y/eefu7vgt86Je6HpEfl2XT71tQ03UV1u01C1RjatcQxs 0Atom9XikX2uAHVONN9qokx2pz8uOGeshmIxA3H8VD7yT96ceRfIt9qP+ItK802lvBrC2CpYyH/S ns11MTqxYhvTeQekrcl6bqrUy+IoOpyz4pXyedeYNP8AN/5T+eNJvbeR7bTp9M1LS7fUOEM3rcJ7 m5hVlIk4MWa3k3A7joGGSa3s0vnbyr520uzu7Ceb6vazR3FxZTW8ZWU8CywTCQOtOXEngTTtvQiE oW34c/h3Q3Ir3MT8y6d5Y0aFfMF7YJZW89wpSO2VVEjqCaJEWFUVviPHatK4PCi2fn8xFGV7V+Pu TX8mrPTvM9pq3mG70eO3eSQ2ej3ckCiaOx4khI5CtNmkbkU6n6MnycUkk2XqejaZFpWj2Olwu0kV hbxW0bvTkywoEBam1SFxQjMVYv8Amh/5L3X/APmDk/ViFed+b/yROrTa1q93eRWdxc3dzLbNIC6h JZITE/wEH7KyAqa9cKHzx5LtL3SoDdSXP1C7LOFjB4zcJYijbAhl2OISXoafm/a6HZJEzS3z3Uh+ pWHPZHkvrj1mkkIPE+iYuxJ22pUhRSIg/OswpCx01bkg8JlmLCrCTlsY3XYwbdPt79NsKpbc/wDO R/mnWKw6JZ22gW6iITmBVklkkf7Z9Rx8Kh6lOIqB3wJYL51tPO/mXT380Xhu9Vs7CSWC7vpGaUW6 804qxNeCFpvhA26++AqH1V5Q/JPTNH0p7W/ujdXMqWnKaJQjRNbTi5ZUZuQZWlUblAePzw2r0iGG KGJYoUWOJBRI0AVQPAAbDAq7FXYq7FXYq0zKqlmNFAqSewGKqVzd29sgeZwimtDua0Bbt7DFVH9J gmVVtp2aIcgvpkcu3wk0GKsPsPKN3HrmrapLpNrPcahcTSR3F1RikM0EcLwlQ24b0zXbvhQkXm/8 mZPMXmXT9enhs/XgCwXKo0iBoRMrgenTgeCl/dtgTiqbeTvKtn5d/MG9tbeRpf8AcLaF3YAFibmd eRA70jGKXoeBUJq//HJvf+MEv/EDiqG8qf8AKLaP/wAwNt/yZXFXkF9o2pXFrq3mvyvfNJF5huL2 yns5UjHpRS8kcySiSXiOcfJOC1oV6ZSd/pdlAiO2cbxiOHp8Nu/vR/5k6JceUfJ3k6extPrkXlnU La5vVjYJ6jruxqQW/eS9+JpXLgNnXzlxSJ71ur65qHmfzNocOi3DrqMer2s1/ZpKqNHYWUyNeK5Y oWT4+IoKSfEB0IwsHs2BLyz/AJyI0f8AS/lDTbZLhYZotVgljRhUycopbfiKe84P4d8IV4T5d/Mq bytp97HZ20c0C2hnsYp0LD61sA0nFlqvBale5A6b4oV/INzr35r+bLW28x6i8k01pciGYJ+7t/To VMcKGNAPhFQKVxS+sPLOhw6D5f0/RoJGli0+BIFlYULcBTlTtXAqZYq7FUHcm6uYpYYYxEd0LzqC p2O6qCa7069sVQ6eX7d5hPfSveyjceoaIPGiDantirxr8zfynNvoNtJp8UcmtX+uXBCxkKJI7y6v J7aMFyioUS5Ct2qPADCr5u8x2lxaavZQ3CcJROWK1B2Z1I3BI6HFQmH+6v8Ant/zLxVn/wCRP5Ke YNe07V77U4m0uwnW2js3uom9SVlliuuaRtwPptFQc+h5bV3wKX0v5J8g6H5R0mfTrBTIt3K813JJ U+oz1FOJJUAL8NBirJMVdirsVdirsVadeQpUruDUexrT6cVaWJVbkCSdxuxPU17nFV2KuxV2KuxV 2KuxVCav/wAcm9/4wS/8QOKobyp/yi2j/wDMDbf8mVxVjPny5tPKvli2TTIRarHdCW0NaxrO83qF SGDV5mRyBUe2EKSi/wA2rya2/L/WWt2C3Jt2MRqKgp8ZIB60C4Arwr/nG+O4k/MNZuLvHHpr+pJQ kAuwpyb/ACqYVfUbEhSQCxAqFFKn23pgVK77y9purojavapNKjI6AM44GN/UjoQRup798VfJf53e RbPybrs1hZyl7S5smubeM1rHGXlRYyxJLEBOuFXuP/OOn5b3XlDyWl1q9u1vr2qVe5t5QoeCFXb0 o9i1Cynm3Q7hSKrgV6xirsVdirsVdiqlcWlrcen9YhSb0XWWH1FDcJF+y61BowrsRirzG7/5x78o 6hrkN7qkktzptlNLPZ6aGKAvNBBEfWkUh2CPb81CkdRWoBBVZhpn5c+SNODeho9vI7KiNLcJ9Yci OEQL8UvPj+7UKQtK4qyJVVFCqAqqKKo2AA7DFW8VdirsVdirsVdirsVdirsVdirsVdirsVdiqE1f /jk3v/GCX/iBxVDeVP8AlFtH/wCYG2/5MrirA/zg0631DzL5Hs7qr2txqDRyRg8ag+nU8hvhCvRt T0ux1Oynsb6P1rW5jaGaEkhWR+oIBHh1wKwP8m/y5l8o2N5c3QC3WoFAICo9SGOFnCoXDNyBBDYS r0bArsVQd/o+l6hJay31rHcSWUnrWrSKGMclCOS/QcVRmKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K uxV2KuxV2KuxV2KuxV2KuxV2KoLTNa03U5L6OylMr6bctZXqlHQpOiJIU+NV5fBKp5LUGuxxVR1z UNPi06+iluYklEEgMbOobdCRsTXFWvKn/KLaP/zA23/JlcVSvzLob6j5t8rXL2xntNPkuppZN+Mc npL6LGhH7Y2wqyjArsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi rsVdirsVSLy15buNGvtfuZLtLlNa1A6ikawmIwloIoPTLGST1PhgU1ou9dvBVHXXl/Qbudri6021 uJ3pzmlgjdzQUFWZSTQCmKo5EREVEUKigBVAoABsAAMVY7c6n5nufMF9p2lmyigsYrd2e6SV3Zpw 529N0AA4YVX+n5//AN/6V/yJuf8AqrirvT8//wC/9K/5E3P/AFVxV3p+f/8Af+lf8ibn/qrirvT8 /wD+/wDSv+RNz/1VxV3p+f8A/f8ApX/Im5/6q4q70/P/APv/AEr/AJE3P/VXFXen5/8A9/6V/wAi bn/qrirvT8//AO/9K/5E3P8A1VxV3p+f/wDf+lf8ibn/AKq4q70/P/8Av/Sv+RNz/wBVcVd6fn// AH/pX/Im5/6q4q70/P8A/v8A0r/kTc/9VcVd6fn/AP3/AKV/yJuf+quKu9Pz/wD7/wBK/wCRNz/1 VxVTt5fO1zEJre90eaIllEkcc7qSrFWFRKRswIPvgBBTKJBo7Knp+f8A/f8ApX/Im5/6q4UO9Pz/ AP7/ANK/5E3P/VXFXen5/wD9/wClf8ibn/qrirvT8/8A+/8ASv8AkTc/9VcVd6fn/wD3/pX/ACJu f+quKu9Pz/8A7/0r/kTc/wDVXFXen5//AN/6V/yJuf8AqrirvT8//wC/9K/5E3P/AFVxV3p+f/8A f+lf8ibn/qrirvT8/wD+/wDSv+RNz/1VxV3p+f8A/f8ApX/Im5/6q4q70/P/APv/AEr/AJE3P/VX FUX5Y1K91HSfrF8sS3cdzd2svoBhGTaXUtvyUMSw5CKu5wKmuKuxVbK7JE7qjSsqkrGnEMxArxHI qtT7kDFWD2H5j+THlsdVhhuI38wWtjczzuopBBdTG2sjcj1CqepM7IOHLfdtt8VZ1irsVdirsVdi rsVdirsVdirsVdirEvPGi63qV5psmmpKyWcd5MWiuTb8bn0QlttyHI8malRTxoDlWSJNU5+jywgJ cXXh6Xte7HX8t/mRaC5S1vby5eCCBbOZ7tWWRnRFuiyySDk4Yv6YIQCinnXbK+CblDUaeVWIjc3t 8unuvn7mST6d5ii0jQ7W3+tSzQ3UcuoO9yDIYQxLpLJzRm2eqhS26qrclqcsqVBxBkxmcya5bbdf L8efNicvl/8AMgWVqIUv476GLk7rfx+i0s0rSy8o1liDlVkIXkN2/aVVHKrgnTnDPp7N8NH+jvy2 6H8dCTt0fy/aXNpo9tb3TyvcIp9RriT1pasxajSb1pWnU06VPXMiAIG7qM8hKZIqvLZMMk1OxV2K uxV2KuxV2KuxV2KuxVi3mj8xtA8t6tb6bqXJXmt5LySf1bWNIoIa83KzTRSyUCk8YUdtumKpVbfm f5O0y0kjW2u7QxyXN1qNq6KZLVHaG7uLqf8AeMBEf0jE/wADMfjoF+EhVWfYq7FVsqM8TortEzKQ sicSykinIcgy1HuCMVYZYflL5ZtLXSbYTXU8WlQW1rSV4/8ASYbG4+tWiXIWNAwhm+JeIWv7XIYq zXFXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqkHmnyVpfml EtdZlmuNJFDLpP7oW8rrUrI7en69Vr0WULtuMVSiT8ovLE0TLcTXc8s/qJf3DyJ6l1BKlvG9vPRA vpGOyhX4Ap+HrUtVVmruiIzuwVFBZmY0AA3JJOKt4q7FXYq7FXYq7FVlxcQW8Dz3EiQwRAtJLIwV FUdSzGgAxVba3Vrd28dzazJcW0yh4p4mDo6noyspIIPtiqriqnc3Nta28lxcypBbwqXlmkYIiKNy zM1AAPfFXW1zb3VvHc20qT28yiSGaNg6OjCqsrLUEEdCMVU7/UdP062a61C6hs7VKB57iRYoxXpV nIGKojFXYq7FXYqsuLiC3gee4kSGCIFpJZGCoqjqWY0AGKrbW6tbu3jubWZLi2mUPFPEwdHU9GVl JBB9sVXQXEE6F4JElQMyFkYMAyMVZajurAgjxxVfirsVQ9/qOn6dbNdahdQ2dqlA89xIsUYr0qzk DFURirsVUWvbJJTC1xGsyjk0ZdQwAFSSK1pTfFVv6R0/0fX+tRehy4+r6i8OXhyrSuKtyahYRRpJ JcxJHLvG7OoVh/kknfFVcEEVG4PQ4q7FXYq7FXmv5zy61rGg6h5U0WCYyz2Fzc6jc+ncKnoxpSOC OSOKUPLLI6ngOqqymnKuKsYg82/nAujanqFpb3MkOm2NjfW1vNZcHkkksiktkI2T1nMdwwlkYb0S gPx7FUwXU/zWY6bHFql5NA1tqWp3866akbtHAY/qlmjT28XxyEsFLQoxFTxOxxVI4vzH/M2z0nVN X1iS7s4FGkcYZ7GOFgbp/U1AaerxBpZIYmCokpbYM7YqnHk3zD+Z2p+YNIsL3Vmm09YbW/n1O3tE mt75LgSPLEk8VskCJEAicvURuVaB6gKqiNT8x/mh/wArAeCze6Xy2dXS0iRNOEg+q29kZbhy5Utw e4kWNX5bkGjDpirHtO86/nVf6SIli1C11KS0sIoJ59MUI95fagxllP7oBFtrQhTXagLU3DYq658y /nFPpusLfR3t1aT6RrE9varpvptWSdrawVysfIOI0eULyqVp164q3oN/+bdle6f5Ytp7my8vlY10 fVP0byb0LUW8HoiIW7BEekrL9YZG48SZP5lWWQa1+Z1v5Q81eZ3ae+vYpb6Py9oL2SxERQzmOCYo qieQsilgvLdadTvgVI9THnTXE0PR9T1C7a31HzSH0+Z4ILeabS9Pg+tGaaJoQAPXg5Rhk3BHLl8O FU689ax+YunaxrMnlsTLo2gaRBcWunw2SOl1eSSOvorIUdmSKNQ7rEQaUAp1IVhWtX/5ma9CfLmq rqN9pN1fadyuItMeNZbae6Ms5kZra3b04I4AopGjEsS3w0wqy5fOvnGDyR578w6jJcW31ITPoEst uIYwAH9JY4ZoIZgwYpHJ6nqDkKqx3GKpHDr35wafotpZLPezW2pXK21nrd1ZtNeQRxWIaR3ihtpW Ky3lREZYqlBuRUOFWZ+X7vzwdX8w32t6tPDoOiKsNrE9jDB9YZLJJLi5qQWKrKxoEfjUEVpsFWB+ VPN35ur5Zh1YPfana6uLFBPLaLLLb3N9cvJczWsaRo0kENqUVedU9Q7fCCMVQPmPVvzR1PytozXK 6695La61cT20dkE5OT9W0+CdIrcBvgmqagV6rvRgq9H/ACoPmrT9C1rTtZ9YW+hSLp+jobT00+r2 drGhaCio06NKr8TyJPjgV57pOvfnBb6VYLYQ3NgkkVk17BFo8cZ+ualqUktw3AQqD6VolZGC/tAk VPIlWcefte/Miy13WrnQTcNpWi6Xb3MFlHZLKt5fTyunpCQo7ukaBXkERDU2FOpCpBB5m/NprMqs 2oiY65LGHutMjVhpVnaGWV/gjRf30yFV92VQ3iVSbUtZ/M/zPoel+X9dsNS9K5/Q41SRNOKev9Yu DPdvNSIBFt44lj4RgGtWY8cVTS782fnVfetLpyXNnLcyNZtayWAMdpcPqggg9Jmj5OBYo80shLIA R9mq0VTr8vtd/NK+832sWvyXP6Gmg1C64SWC26hPrZhsUlkEYKOYonkA5bqV69cVS/W9YhsPO/nv X30e/u7pdPtdI0RINOuZTO/pyNOwb0+PASOqs1eg2rtiqV39l6v5WeUvJGlaVdPdC60oX8txp9yt sJV/0i5MhKK3FZFVXbwegJ+KiqUT6TdS6B5VsW06+tr763q+tazA+lT3UVpfSRyIltDbonD0pJnP pICRQcj1xVmcul+aLH8vfy68v20Op6VNJdWcWsR2RE8kMEMbzOssjJIFDOiji3wAVVqqKYqhNQ8x fm+kKzrdXUUOsapqFlaEabX6laWxkFrMY47a4mZ52UceYK8e9TzCqhr3m/8ANxb3UY7aW7tzpsq2 FvbJpsjG9HpxH6x6y2tzFC8zeoIyrOoYqCgALFV7TpBuzpVkbzn9bMERufV4ep6nAc+fpBY+XLrx FPDbAqLxV2KuxVjnnP8Awhx0z/EPL1/rX+4j0PrH1v6z6bV+r/VP39fT5cuO1OuKppoH6F/Qtn+g /R/RPpL9S+r09L0+3Gn4+/XFUfirsVdirsVdiqTN/hr/ABavqcf8R/Ux6Pqc+X1Xm1fS5fu/tfb4 fF05bUxVOcVdirH/AD3/AIT/AMOy/wCK+X6E9SL16fWOHLmPT9T6v8XHnT7Xw1p3piqe2/D0I+HL hxXj6nLnSm3Ln8dfHlv44ql/mf8AQ3+HtQ/TfP8ARHoP+kPT9avoU/eV9D95x4/ap2rXauKr/Lv6 J/QVj+h+X6K9FPqPL1P7mn7unrfHx4/Zr26bYqmGKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K v//Z + + + + + + uuid:20547E781A4ADD119EEFF96D7801BC77 + uuid:a7a9523b-0c40-7d47-980c-c2d7a5d1ae87 + + uuid:0742cf20-2206-9d4e-9e3d-e542f631a88a + uuid:B7D572641149DD119EEFF96D7801BC77 + + + + Document + + + 1 + False + False + + 23.000000 + 12.000000 + Picas + + + + + Minion-Italic + Minion + Italic + Type 1 + 001.001 + False + MinioIta; Minion + + + Minion-BoldItalic + Minion + Bold Italic + Type 1 + 001.001 + False + MinioBolIta; Minion + + + Minion-Regular + Minion + Regular + Type 1 + 001.001 + False + MinioReg; Minion + + + + + + Black + Red 2 + + + + + + Default Swatch Group + 0 + + + + White + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + Black + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 100.000000 + + + Yellow + CMYK + PROCESS + 0.000000 + 0.000000 + 100.000000 + 0.000000 + + + Lime + CMYK + PROCESS + 33.000000 + 0.000000 + 72.999992 + 0.000000 + + + Night Blue + CMYK + PROCESS + 100.000000 + 50.000000 + 0.000000 + 0.000000 + + + Pigeon + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 30.000002 + + + Red + SPOT + 100.000000 + CMYK + 0.000000 + 100.000000 + 0.000000 + 0.000000 + + + Red 2 + SPOT + 100.000000 + CMYK + 9.000000 + 82.000000 + 60.000004 + 14.999999 + + + + + + + + + + endstream endobj 54 0 obj <> endobj 52 0 obj <> endobj 57 0 obj <> endobj 335 0 obj <> endobj 337 0 obj <> endobj 339 0 obj <> endobj 341 0 obj <> endobj 342 0 obj <> endobj 405 0 obj <>stream +H‰|PmL[e¾·ìÖ»9»È]•õ}ï2hÐ…9ƒF'™Î°n%²A +…ví¥]ùè½£ÃÉh Ú[ +Œ¯•BË(EØ2ç”83&†á\Âtf™SÙßnwŠEÿ{Nr~<çEJr ÅÑÅÛ»Æê +s‚âÉßÒ*Î?9ãûnø*ôÏü}^²Ý×ïòƒáÁ†ú.h;`Üj*׫ e Cª—Tš€dŠ½‚þšÀ'‘òfZF©"ý€¥¤qó3-¯Ý  ·¯ý"›(;s @¡×äËS”ª“dºot‘3·ù‡ËrÁŠHi7Š›šv‘-m¾fô±Åð0”ìn7E™Ñ¶ßãçn}²ôá굌¸E_V¨Å²ó.HÝ›G"ÒîÕf{næ>è1}SƒÐÖdSǾ¸¼[9¬íÂAHý\­‘†úƒ'aÏIk¯›5z¬²wÕø¤³Ý„Vîã~‡2£J©!573ë_ÕþÉ@LµÑ²ŸƒeÂ6.‹Ë²îßtkÐñ]ïým“7Òö’áÁN—¸½'lnØvÜmw»Ü­íïò4u4¸É[µ§ +IW$eÃF±w–øÜce€ÄÂ^B¾ðÕO_Æ!+½sgéæ(7˜1µ=C!ÙXàt`Äo1uÊ]6½ÃÃ{š½v/ÙkWŸ.y¹UF˜[ðq¡Y–}‰9[&¿XÒj4ÈŠË •ºò¶p…¼Þm³[“56«¥VVn¿z$ $Eì\žioá°l3‡Å¿@é©1Ô†6HMLN.Žè»à†WQçŸ-CABØ(¡çê])Š£;ˆÄ:c+Kü ÎƉwªO•vƒ‹wφ ä v.o6Ç·NPcQ %HÓK uZp(¹Ÿ×@êÆÃûè-´'r¤ÆXž nXkL à MÎlèL395ÀRcUéa]ÇpÚžc ÓC}¡+çO§«ÉáƒÛBÀ’N$ËKšpú]-±âO5ÆÅYËYCI­ï‘Ü'ÔðhW÷> endobj 404 0 obj <>stream +H‰bd`ab`ddóð‹tñÓöÍÌËÌÏÓ JM/ÍI,É(üfü!Áò[ñw߯'?°Ê20LÙÅû=šÿ{’à¦K„@jêó *‹2Ó3J4’5 -- t@¤‘‚cJ~RªBpeqIjn±‚g^r~QA~QbIjŠž‚‚cNŽBHW±BPjqjQPâ…Ìb…D…’¢Ä”ÔÜÄ¢l…ü4|&100222ˆ22°=ÃÀÌàËÐÆp–ÑD¯~å+×?ü^ÿù{Ë\QÝâïúßå¿Ë/þ®ÿòÅâßú¿åËÿÖדÿñå·Nøo·ßj¿Õöÿvû®ó]{ÿw·ïjßÕ¿»ýÖ–çë^ôcÂýåŒßSo2gûqBôB'ë®þ¶t©?NìÁmm†­r%ß,b7œØ6á°Ômì~¥þUáu@ßuwýÐê\yƒyÑwÑï“LÙ`¦.b·kxøz—öíxvíßr:¿•µ«qœž/züÓ©÷g>pôþ>ÂÆW¿÷û¹£ßU/0~ÿp›ù;ûOÑìß;X'ÌÝ8k‹ôwŽýžzæ±.æYËæ•È7NnèijmhnihÂÞú©Mó×Vn•>Ûs~éÇö-;rVê¾ï³ßùqõ5IrK¾;°~oa›y•¯fÖO¹Y¿«~·™{¾›í{ó¤?5ÓÙå8WŠÿçáÜÈu“ûG‰È÷§¢L«õ‚ endstream endobj 338 0 obj <> endobj 403 0 obj <>stream +H‰|” PgÇ7ÂÆU4=X·%Ù6ëyÓ­V-½Ó¶§â·UAP”*H‘¯˜`>ò€„ˆ„@ˆ" +Š|@üD¸Zµ­­´v::wȵsz7½gí:7·A{×»éÝìÌ»3ï¾û¾¿ÿÿyÿ œp8þ战Øõ;mO•§*äo†+dI[ÔbYªÄÿq!Mrèyú93˜ŒåÕ@ÝÓ1ô5©.› ’—@ÜûꜲÿBý:EF¶259E-zCòkѲ•+ßZì—‹Ö&)¥¢èl•ZzH%Ú"—(” +¥X-MZ"­•ÉDQþ¿T¢(©JªÔ°³ÏAD©*‘X¤VŠ“¤‡ÄÊt‘âàÿÛ A8샼ÎAÞDÎA6 ÈŽ$:y…•‰Ì@9'€;›q:`M¸?ð{ô7’;:Ó‰-ÆÊg½>ëÄìù³³‚ƒóxYÖÛ/ÐB-'å)S/ÃqneûîÊl«n’/‡u +XÏŽ{òBß³c{–éÌ‘F¾)…v•Êo-©iâ»{Ž÷Õ·b°™ëfx¶¦B©™ŸQŒ–л ·“IA™E\¬(ë…îsPЛÞBoŠ ‚P|òÈËàá~zïXÛejìtÿÅ{‚©ðÞ5Âò™øÛµzÿ,ði;ÓŽ =)±öõ$SÇÅÇé_š¬F ƒð·0ß²¯ã£ôiÂRo©©¬À*lŽ£.r`XþÞžˆ”ŒÛ(!ðÉ;ŸÉ–,Ú²ié>uõǪRQÞeýô'íÝAO…„)}ÜdûÉÞEÆwM~½´Œ[×yzÊq&ÙªŠS§fj1µò€1‘|§°ñ®“ºwb·Wò+ÛQ¬-òæ´k5Ðwº§å¦ÿN¥Kˆ-òȘta–Ln:H怅EvTZø~d9v.i3Ť0 +¢™Ûf7¤Û)|•k·k§[ܶ½5Mm%¡¸³Ê«­Ò9r›øyǵ]ê‹Ÿê–ÁƒýÉóùÇð +ƒµ0ˆ©ââ1¦ô;ÿ%gí´èfË·ºÒdc©ù¼+Õúí|mH„‚ðq:P"K¬5Æ£vw…÷»õÂÌÆ¿š+BññÜRm¹ÊŠU¨U–<2,,>!Žú 2‘A– +Þ?•Ôqj°³é„°­¹g µ+ç漃¾ŸÛVPG6=è¾rb6ÂbB%‘‰U +,1%3¿ˆ,4¹¼=öÏ›G©æÑfOƒ³;,ÒU_ltPGÒ” Yϧ€É»eZ´öhC†!(ˆq˜‡ÑËè½>°­ô­•T ÷3x€vØŽÔ†_*sVQòî™e&©‘‡žmÎÛXª¶iøÉ5}™#äÙöO¨ûWG„Y‚±CñB|"†á Ãà2„}Ž9—LSy¾tPõ+¯îÂεtºH—=KJñ>e} óÑÂA?ÒiÀa>ðt@à÷ip‰,UŠÆÈúwÌïß ôÐσ)˜_¡ø}KaaY¹-,-~/µ)âÀüÅ‚ßv‰»N^èpÔ Ïvõ{»X+³–£tî/é}Ð}õÅ<9Kô9î4]z.{Zk±*‡Ëâ$Ýæ"'eŒS2H¶\“–¥ÌTaâ$U¾žÌ7xÚ(žTù8]ð,,€ž ¡DÜž=™2&{¸ÏZf;j¥¦NÂêS_ò™u[#dé‰Âµ;Å —˜ ÛòK¾qýå[!ßaÂî-’F‰ˆ©:˜yÖç­Ç*«UØI³Œ9¬¡ÿq¶~¿c4d}Ÿ=‡È +ø]3Wͼ›³AŸ‡Œ†’"R¯rZõ”ÞZ`6™Myº’C˜ÒchhöÕ^ð}×ï¹Õ|Usû‰=´©ef³möµ»ZØRxõÊf +Ÿ¬Ñ/·Wcöê—WÐxTÞ$&7mÇ‹©ø}ª¹¿Á"¸²dK!Ê33fý¸·XÛ¤ Q&Ù@—A§ðÈ€· U†gä|#Ìý¨Ã%[¿-ÂÛb™MDƒ©-ï¤ë9\¯Ôâc²¢Ä[Ü×»ÚÎ6ák:™ÀGrŒ©ÆÕF¬N-«N"ã"´ÉqÔn±**F°¾'áv¾0^‘™_ª-ÍnP{ò1|ì”î„?J{8C‰ƒ¢aar½ÖY-¨ª´Z+„ø±ÛžÁ†æÆS-ƒ¥w0gI­¹Vh;Ú\Ñêì8Ãç}ÁÞ¾¤q€¥@ÔAð6Æ€åNâ(·òJÚZ°‰þ‰ñ&Ò}D#)¢ðg±ŒݤsiÚÈl¯Qº”½¥þ”[¦SþÃ%¨@'\‰Î 2[mÌJ¥Ò²£“v®ÁØXÑÈÏßÞÏöî-Œ-ÜËç1ËŸ#ÍAÈ„DÁ ð>‰?~¢'دùÔ(R^´+[¶ßƒv˜;%dܺýQ”Sº»š«HkYA2‹ü8Š1¡›rÝ,2Û≧ۈ½ 2iSæ™þ“]'µ-I¾cÏ ™(c}˜ÇÞéy0÷Ìó{áƒuNÂæw¢ªÿš¼7î!]Ųìbê ³J­ßŇà¶+Íþ%ü‰?Œ{ɺçf Ƽ0ë¤?mWF¦Íb[¢‰4—N³û.ý£[âT9™Fœ’ë>Hˆ\]R긊N4$:³I ;¯ 2tâ¢ÃYkGÑëµæŽƒdü†i=Ó\MV²Z T2³R¿+‹Ä›œ6rZÎG0o;ü‚MO¸¿¬?Š™ð}=ÞH6<'}Qô†©+wØt†|ƒTëÑܬ5pÒS ­’ãó+² %¥*{¾‘+ªÖYT~}»ÐîooP-ûÞàÐÚ»«U†dˆ‰Xwò!ŸÁ[+úUä@`ä g³T#Q“áñëwâ#c—^ªßçÜGXÉ —ÃBÛføäâ¯?Ø"#CpB¶MþŽßÂòÿËàdôhsU&÷‹(oŸoS‘1éñÅžH ´HõÎWòQ°Z¨xøÛRC»=Œ·p¥BeÐì]—-K¬é™<êZÀuÕH‹¹§0I{§¾z;ù‘¼¯a£rèhÏNº¨édë%u¬MŠF;O—7Óäï¹[$œ¼! bs“úr^Ds<·âä1:[ëgÆ×ånXa¢,žŽ!9ª‰[`ĆCg:ÌÔáôÿû!ÂS|­]&”œÊC ¥˜*£²÷x)ÊD¥øí‡dYVd`ûlAÝUªõ÷®sýºhžÃ4fSu?ÿÒš8„’ ‰|9%9þôå; ž¼ÁÄÃ]1õs[aa±‘õÐÎ¥ÖD×êÌzMIA•µ(WÞ¡î‹{„uWõë(í¶½š> endobj 402 0 obj <>stream +H‰\ÑKkÃ0 à»…Ží¡8>!F×A{°¬? µ•Î°8Æqù÷“ìÒÁ ‰?[VPdylžkÈ?ªôÆjÓxó +á‚WcE^€6*ÜWñ­†Î IÉí<Û¢ª@~Rp +~†Å“/¸òÝkôÆ^aq>¶Kí͹ÐÈ ®AcOzíÜ[7 Ș¶j4ÅM˜W”ówâkvE\ç©5jœ\§ÐwöŠ¢ÊhÔP½Ð¨Zý/N?Ó.½ú +>œe4‘OÉ'r™öKÞ/óäœ]$ì2¹d¯“×ìMò†½MÞ²wÉ;ö>yÏ>$bÁ÷ʸtê0<ú¢nÞSKâ5Ä^pŒÅÇM¹Ñeñ#~ˆˆÐ endstream endobj 401 0 obj <>stream +H‰|SLSg}ÒöÉ´ +å9mç{o±NQ¦qÈ08†B:Fˆt 2£¦–§4Pª-ÒTŠYeLHµLÓTÄ®üЙ¦‚¬*A42aÌÌd°çtK6Üûð#ÙšìÏåKîß½÷䜓sq,6Ãq|•º(gWá»ëó SEŠ†5šÊKR4Ùi©© ¯òJœWÄ¢dÔôìÙÜWâUÖzs è—‚1¾÷•Ø‘„…!.ÛtÄf6.­dTúuÌëéé©êf&«Äte46K%k´0ê +½É|ÄdÖU²%&«¼œ)\ز0…¬…5W ¿/ˆ0 £c*ͺÖ¨3—1¦Cÿ‡„a¸ð°¥¿["èÂD˜KÂŽ`Ø<^ƒß‰Ùs.fJT!úš‘1²78XßJ‹92Ôè »ô¬Ñ¨?Ðe +Ò2.ÈñnÀˆàÿ„|àô3ˆ²"Uæv+¨€ÆÉßÑÁX”VŒr„nrå@l C$Cr1ä ­´¬1Àû×­8ìùSƒsËÈVµM}‚8*uŠ6;õŠùÍÒÝ Î-õ” ‚éWCó°BÖåË¿Ááö_¢_KvØÄÁÀ•Qåý 6w]~ºFMhwk5„_.õôzž~SË +ÍÑší”@<(Å3¿Üz¬xšI)8`)+£dÜm¾#’Wgó“Eø3d»U,Ÿùƒ¡Ï•á«eEù¹ì:Ýb·x»\~¥|ìÆ8»vMñ~­†íöYhG ×è¨çê¸jgÓÞä8SKX}![H9åãPxwÏ„ê Ý,•O_ñúÏ}â!|^w{‡bâ½Á×vï3—›(Á X=Ä«7.ü!‚»sqäz”¸%­E 4eýçCg@šñ܇û†6ñ*)êœW‘C³Ã†¦ˆÓ¨["ã†áú8È¢8L HÄ\,©G×Å.o¯'¤œÌß”VZ©e{Òµ­\cm]íIÎî¬ùÀÞÌyÏI÷*ïLøûé‘›]w#Šhn)lE\ÍAêSP‰á¤Ä 9€Û£pÊŠ_¢°0ÿÖÜrÒàTÛ Î""P…¥>J8ˆŸ™…%gM"Ìj«s£4¦¬˜þrÈ¿ò³sÁ¶ÞšÿžÌ+ž‚e—;\´»Ýï +('C;¶½]•MËZ«.Uñ—¢wB¿M^:*ˆª×9÷rj¢Gñ5»F”P*IC9)h'ÂÐ;„¼ÍÅ=qÿìO°ÿ èVÖ»Å/¢›šÍø2gý&Ÿ‘?€&!ußþfª:\)£å3Æš½¦êjÂf;fÔ*-€Ø‡7‰ó»‚”üçþÀE_«›ðúÜN…üÁä®/ÖP=¨ÌíÑ\U„:ÂáCvžÅpÌF pè)©Õ üñ‡ûüôøáöt±ã°®€’¹ªÀ5 +׎ ƒ÷…c¶“Á‰6ß5”·~2@å‚Q(q+ŠIJO±×ÛÜvê®@ôƒ’Ž®„è'3÷MGÎ{oê"ŠKµ5XÌtÝq‹Ã¨”ÙÏÎQgQu;l÷Þk”@ÝÇóv”:Ÿm{ùŸÅ‹úãž¾ôÑb<&ÉÈ€K” endstream endobj 58 0 obj <> endobj 361 0 obj <>stream +H‰\“ËnÛ0D÷ú +.“E yo »¼èuû²D»jIå…ÿ¾Ž ëÐ$gæò‘îûÃÐ/&ý1íÑ/æÜÝìoã}n½9ùK?$yaº¾]ÖVüm¯Í”¤aòñq[üõ0œÇ¤ªLú3tÞ–ùaž¶ÝxòÏIú}îüÜóô{w|6éñ>MýÕ‹ÉL]›ÎŸƒÐ×fúÖ\½Iã´—Cúûåñæ|Žøõ˜¼)b;g˜vìümjZ?7ÃÅ'UžÚTïá©?tÿõ;å´Ó¹ýÓÌI• ƒ³L$¼›:´ß?Û»Ð.²ØŸÀ;rüOÞƒ©>IUr|‰ñeNÎÁ¹—älÉìȬd¿’_Á2²–[ò6°¥—…—¥—…—¥—…—¥—…—²€©i¡i©i£&벨Ër]Â'©kt¨ÑÑËÁËÑËÁËÑËÁ˱.‡ºkq¨E˜YY¨#Ðêt„:¡Ž@GdÝ'0×J°VB}‰ú¬+‘ßÀÜǸ¿Â}죬gõÊzP¯²^E½ÊœŠœÊœŠœÊœŠœÊœŠœÊœŠœÊœŠœÊœŠœÊœŠœÊõW¬ÿs‹,‡þFÉ6êõôâx‡[h>îN{ŸçpmâU÷7¥üÇmžÆÉ„Yx“ R›ôn endstream endobj 352 0 obj <> endobj 360 0 obj <>stream +H‰|”yTSWÇ_ï‘¢DÉãÕ¼d&/:­"Š¨Õ©µ®,b "0E¶Dd–`ˆ¡(²'@1„D! ¬#›êÊfµ —ªE±#§ÌL—ߣ—ê¼èxæÌ?sÞrÏùÝwïû}~÷ûýñ0k+ŒÇãQx}âé¾ä㨸(eœóVµ"&*Ô2ñ+å±bëÔÙVˆA†_L÷à¿Ç°¢;øt²ïøÔ$²|—ºYŸ¤ŠŠˆTËCËW¸º._jy¯”oÜ£Ü&÷KJP‡Å&È·Æ…*UñJ•B¶g™\¾1&F¾Ã²*A¾#,!L¥á¢¯sG%ÈrµJ±',V¡Š–+ÃÿßNÆã.ÌÎ +³Ç11[ÀÇa˜s±ÂÞãc®¶I€}„c~,Ö +ËÅ°÷9l̳ÁÖaþX2v›çÀ‹äMY¹Y5[=ãgðÿn½Òº÷Ä›ˆùDñÀf•M—`– û­åo}i»Ð¶nÖºY³#f÷Úií&…ûç„Ìy27ÚÞÎ>Pä(:OÊÈó«ê^PzêùÛeó¶Ìë{Órú‰ÄV² +-·7B)/Vó HH]©¾}ºô¶àvIÐÉp©†«c6“›lÒæÑœY«Ô†iâ£ö +„Þ4À»¥ü[PHÜC.Q>€s›¥‚­“FÔVdÈD*ÕØ`î`Èê96J.#CbªÕ2aj#;ÞÈëÚQ>(ª('#¸sœáž à2%ýA‹\ÏpÏ'ÈÅY +6ì +9®DîhuTAžÀ…?wXXÏ€SC"lBÎRaž™m«¾È†“|ØÄ^¦Frk¾0è²"è53›ÓüuºZ:[C%‘o^aÔ”ôÑOÙ®íšmI^)´0oˆ-í籂1>¼|»ªóHkUǾBñŸ#ê¤(€€õà‚?™¹úÉã€AÇ»4Ñá2/×Ãðö–ΫÒûÇüæ#ÞâõëO_Ïí‚aêöÌYüóþúarVÂ(eª £`‡8>›©ÇIuð“Ò¶kuj1Dæ]±ù9%Ç{ióWÃÇ  êÑÆ°Ìte6­ÐáYl)e ¾DFyBXš×—ÀÔ 6‹X¿IÏä#°Ÿ–QäúžÖ”¥AíŽ^pCzÖûZZÇéû qûzics¹åTï°drýÏb™Þ†|4Ryïü÷’É-H$ã„ÞJ‚Ãa}a‘žÖWèK‡.%¸®ññB|&9Ž"'GG£-õ^‹lÜ +¯”2]pBlr ûkËÞDÑ•IVYGÞ™^Ä&SdwþC—¡O@Þ1îÝvô)JFŸrMM‡|Aä ®c׫M Lmû_G«O© âw¼¼ýÞ•¢E¾€ÃBð{ؾ?÷Ä"‘«{[^ ;þ +÷Ùcò̵À¶½åq°3ÜñVI€í“Ú¾û `ׇ@³%Ü_$þùÈ}(ÃáCŸ@_\®?+…å÷=ÑŸ²CkQD\|~ÁfŸ1¯¶è´@8ɵ“mPÓ’P+bKëÈIx £èµtLÑA¸ŠØ ÊÖ­–"ÑÍ•¢Õ¤Ïk—ƒ¹9åI¥ûõ{í¬3ˆMý¦›†Ã‚7‚;¡„ÿžÐo‰òôÌÿä\ÏÉÀјYXýœn†µ¸p)×Ç2ó ì\þ+\ ¬ñ¬Çÿ–r ׳LÕÀ£¯Â 7›îé3.\ˆhóô>³(œuE[Áƒ áÊ`ÑI¶z\[˜•Èíµ ý”²9%è@(½wkL´GfZl"ŠŽLõ̳†S50ëë > +¼BÓˆ1ß,BOž9C3-4‹À¿lìUj¹êdG+PLâ‚”€´:%RyÐ?'›Ó·–ë¬^ùª2}­o0ö}zÊÅz‚Œ‡›3xqëßt—{PÓÙÇELö·î4Îò›´$¿NîhYDZZÛu]±[]Eå¡°yÉ›@€„„Wž†‡äAÈH"<€„ò`q£â[Ä]kE‘Š[뺎•­ÓçâNÄéNÿhç÷ßoîÌ9ß{>ßsÎõÿºõÉgp1Œ=ÎfŸšŒ‚ÔjÞÍj»¨6›Q›'®a£†ÐZ*ºí7“¸]àD–ö<~_A‡Yð3ø%Ì…a(~„¶"úŠDÙh;\†>€aÀè¦#ƒ nýl†pÍ0Â…m ™ÜM¶Š,umœ0ÆŸ'KÝ럧¿wB€+ñÆŽÖ£U™Q9Åz­¬sÿÃq?×ÅFÖeVÑÐ +—1:à'Ó|JcSÒ ^é 1 ×2ñçÿü‡V³h0BÖ"µBSéé¥èOpt/E7© è&•ƒ˜M Û››x™¹UiÄQêX>½[_ÍiøP »+¢3Öy¸+÷EýT¨¦%C/mØüN¡»ÀÇ÷äßwcós“ Ì«Åý6–53¡á¤T<ïÿ +Ðÿ Ö’€ÕÚDàÞs!ƒvß=¸eFeÇgÉYªŒ!?>–o¹•ÿW?„Ëf >“8¾{™)Óû.1§FÎßgá3 ¦°è`WQp¯ò\݈zXªi˵þ¨)+O“C •ÃÑŠ¾¯|YÀQN™Jq³£˜»Ø~‹–¥ÿ8)'okiŒgî ÿ;{0íñ‚[W»ÿÖú¯¦oB[Þ˜¿6¸Œ½N“Oµ„µ| ë{em‰µ"N°Fz4%صÑ Âþ;ÜÖ †`.™šþ?†©uvÿ+k÷ml0|óK¨$Óß®­nÈ›fdæ~÷yFcç›ë'ë—BäP«x^Ekm­T,d°÷ÄíOˆL›OZm”¸Ôº^ÍM¨ÆJAòÔ5¹±Îqˆ±€Ê¶}²wKJ"#î`¡ìPÕÒHâ‘ANh +Uµ&»›áòøfÿüb +­³¤5e9'%ùÕÕ¡´1ñmv‰ÿ÷‘ ¤w~þσÃ^ú1i‹¤‘0ÍŽŽŸ¸EÒJás2 e„LÕìª-j‡”ö…*M¨¤\­ïn¶°Î žõz.`*j>,¥÷œ®RX@M:o­¨ÃÝ幩ŅXʉN!”w ôèîv^ΛîÎN†çiÍAŸ.’ ö èò}÷<üðaðü[@§v«I2ðéb¦ìø)nC #½q¤b€èñ5]s“7È}iÓÇsg¥¬Oût «–ú¾£Øê• !ûSqÙ0¾è ›žêí}£Øפo˜°›+bÑG{ÑÇ_q€´B(/"Ø\çl3 í_‚W¾?>2ôˆl˜3pWCÄ G'ï´ÞwzA¿ÕÑÞEt8Ê‹-¿c¨lÒ4é1üŒÙh4™˜m[æ¾È¬ŒTÖž«·37Æ_~Öwç&‹vW|=¥Ä¿e ZKI…!ý³ðàÌ™'x>'E^ v«–DâI’<´™BþÖð„u"j[rfˆ8”ð›ÕÌ­ýëD_£™u®ÿìÈÈ-r­-FeOe ŽGÇÇÁû*òd„\etiAŒî‡‡a4f«WYÄ„<¼¸l'Àû$(jñ':_âðL˜¾q^Ž‰NG{¦7YµÂÙ¡Y€<¾xCI.7½(‡ÇÃRR3óKZªø"|7ä™Ñ‚ákH£GEÆ—f’©‰zU“R ~è„;n‡ylOqkni;ºž#ÈL ©…‡b™ûÒ.‹X‰yâr¦Ä$p Xø= ZÃf3w?Íyx~6ô^ÎО!VŠ=ªËÊT4Úf†Ï‡_±zÚí˜ÓÞïfž®>-7³ôÊz¥^‰á×Ã[TænW•1”<È—qŸ+02ASi¡KÐfô%~p½NùKpÂ?>š˜‘ÞÇÏÂ_˜èZŸ.×uaøƒ‹.¸®œ ºjrÙ€{c‘œrD¬-²Í$}çôå/Ñ'U] ÿ*(/Ú2 „DT#/1E_²wnÂj©ý,Š½¾–t¨ü‹â²pPzáW€ÿ ‹ÉÒxi¼8žACÉœŽ à¦W!·Õ<Ùÿ’|ÿ¼†nN—D\ÙhÓ’o™)ØIé×{¹osbÌa`PÚmcFBW'O'õz/rQŽ‰Mb3á|ù— àßeøËéÝí®S õ”¨­€ÈdsU€¯´”;šM|-µÄϸèD!p×¼?監ñKe"B"ý7áåÕÔ•†ažxjÔá4Ùkr¼­™®åšŽ3YUÆbm«Ö BƒÆ€ áž›1;¹'Bp¿ÓpU)‚‚:*Z-EA­v´¶ãŒŽí>öt-ç$Xµ¿šu~íßλßï{÷³­µ¹xvïÞLJÇÚÚÜu.Ô^å.«•¦â"îÔ{Z+X6U%?qÍû·°KK…é”äoˆ¨g¡¤Þ <‰Ë†žIN'/ ÿÄ'WªâTå®õ‹JkÍö‹Ïìèòy?8¶Õ‡ÆÔר=ÀÓVqa’,’'+ü9yj²÷‹(„óÂ,n’èŠm5å8¤“Ô^ÅþãÝ$’E¼ØkÉOV$RîUƒÊodž{(˜z0>.†ë&Ï觰ÇñDôˆ!NO¦œÔ•œ|ì¾é™©º†þÇ›â7S^¨‘â{%ïp#–Sʪo#ÿò¬r ‘¨©uñÆ„ˆ? …´š»ÈˆÃà÷e=/&Öï‹×Ûí¥|)”Q¾$‘«s7kâæzãHœcr3GZá+1 ¼EÙ5øArµ"V›Ëœ®7Ô~mébŽ6QOÆ' I/ˆ§î$b›¿óŒ9Þ@áôoŸõq(\<ýp: +óÁßù[8PŸêwª…çÁ°O@}~ …û£IÂQ” ëf4#é…pŸû¦{Vx*%P=+\ºv÷ª_˜ü\ ½NÙI„u÷ÍÀŒ™x‚ØÉÈ> À£¼û&¹˜µ¡õ{}ç»zØÇ»}źµwôm6¹–ìfÀ7&§›ì2‹³Ì +N6&Eâ¥døFrÞþ<´P«Ð«AŒh|§Ÿ!µOƒ–SïÚ§Óª n¸Ã§’+zB?‚„M·°v˜L,f˜jªK<`tP´’\¸’ _“.v¸”ø=‚ÃP›r"©DÌTïKS¦jø2f™¨ÁZgi21ùäúCO½K«Û¤BEs¡ÚŽÔÌÅâÊù†B«u˜é… ¬]ç®-ª\WzOŒ c—o³fxÃË„izu +›þžEŸÞ†ø•C©ÏÙÄ‹áõXOu^E²8žJþYÅQqqÌ™zCWÅEÏ¿™Ž®ÊŽºv´£Þe´«C¯µâfµÄj´š,6£Ýh;êÌ·¢Ní›d¸}%/¢9Î"#¶’v /VAòxðÔø?ÇBà%ãË/ï\oWÕoõáiÕû[X Þ†Ö:™ÄÅ6jm%N›ÝVæ(q ž’$o*ˆç¥‹…8o_A¢”Åõ¦²™„9¬dANF¦ÀÜ‘ÎÖXµ% +*×*d¹,AÉ™ì@'Ãü¨õ4¸œò"h‰*(tr +Ë¢H _gHD{x" Ö× Xñ3ÐõCyc3B†ÑZ`¸Æ¸nûáµÈFZ¦Ð¤D¦i[Én$òˆ;¥ + ~}£·§?ÀC‚4ôæçÊéï§0ññ6C+{O+B1GDbäª8mh§žiÃP‹t[Š½Y@¼áiÑûñÈ$d‰°;ÏêZª\µø9ßÈÄàyŠ'2É°@¢×Çmÿ8(©qÈôƒ&èŸÃˆšF7‚9.»ÿFÀ%ãܵ;pþø zêjec#«MZ-ΖŠ„%lE)fLásÙYSy‚ýT\ÝÕÿO?†^.Èï‚”Ûx{q« ió¹]và,ÍH(à I&2º”º{¡‚Úi§´…ç¥ã>…ub—‰%Dc‰l%çl&ƒ©zÅWõ0¨h Åú' +ó;Å€½ƒ»Ï_²õãªJ°„» xi’‘Übú+ZG¾s.˜€¯P¬ê$ƒ-äërjõÔ5ø[ÝÔz»ªêšXD,ŠÙ‹‚µG˜ÈNã¤r…‡¨ ±ËJøªÎW~Ò[•?…ƒ÷¢.o¾@¥N‘ƒEa;/À댾^·ÙÌÖb¡"ÙHD g]:ÐèÊŒ¸± À®’#’l<£Ø+jm£|ƒrÈQy 4´^9cÅòJ„Ÿ’&ËbùñF5¾¾VUïöV×2[ëk«ÀjÖçQ)u@[f,2WMUÃ1i­à`â^] /!§¥ŠŽ,½›ÃÅéF?Z­§|{ó,\v7„XáŸD¡Pˆ—èìªÂL}ª89s· 6•+àúmz¨yTxš²Iç·)z/á…MCF‚/?ä"?*ŠÚ³>vý«,¹‹t?ß1:ò³oþniîCÛLÉÉK «ÙùK?¼ÿ·uýƒ¢i¥Á.+ä’|På5pqÃf‰drÅþ,> endobj 355 0 obj <>stream +H‰\“Ájã0†ïz +ÛC±ãÈ£Œa›´CÛeÓ}ÇV²†mç·ïüúMÖàèš’&Ùf·Ý ýl³Ÿql÷a¶Ç~èb¸Œ×Ø{§~0«Âv};/³ôÛž›Édš¼¿]æpÞ ÇÑT•Í~éâeŽ7{÷£áÞd± ±Nöî÷fo³ýušþ†sf›Ûº¶]8j¡·fzoÎÁf)ía×éz?ß4ç_Äçm +¶HóeÚ± —©iCl†S0U®Om«W}j†î¿u·¤ŽíŸ&šjõªÁy.¢ï¦6U‘§¹Ê[òüB~Q^¯ë \ ðš¼;²{²?‘Ÿ”ë8Ôq¬ãPÇ1×!×=’ÁÌu)wC†sIçÎ%딨S²N‰:Âo ¾%ŒÄÎÂxIñ%¹ËrF`îE°¡›ÀMè&p“gò3˜žél…ç)8Oáy +ÎS–;Ð «<÷â±OOOOOOOOOOOOOOOOOOO7ÐËÍ£5´ƒíwßµ×µåR›§^C—õCøþ'Lãd5 ¯ù`µ\Íô endstream endobj 350 0 obj <> endobj 354 0 obj <>stream +H‰|UyPgÿ†9ºEi”Þ±pZ§g1Ï$àjPWÔ ` +"÷9ÈÀÊ r_Ã9¢È5äEqEâÅD’òJeMܘìák«­r{”ªÄýc«»ºª¿÷½ßïý~ïõ×<$°@<ôðtsßê²ô‹è¸hEÜrEl˜yÙŽ¡xÌŸì"¶h¾ ýÕmá„ ‡­ÀÏŠæ Ì·ñ·1ïÒº*âÕÊèȨ$Ù¢ÐÅ2ÇÕ«?Yf~:É6„)BÂe;Õ‰Iáûeîq¡ +e¼Bœö‘L¶!6VæmÎJ”y‡'†+UÜê;~Yt¢,X–¤  ߬”Ëÿ !w!‚‡løÈ! Bvù^ü³‚•‚Á˜ðSá¤ÈUôæ×â¹3$–¶–Ù–÷fÆÏ<>ËkÖy+Ü*ÇêáI´Xl­³þÏì”93؇„ùÞÞ“¼>¨ç÷Aƒø3¨ŸÄ¶O Ž¼Ó°œ„V|ªÓ44Ó³oo§|€&òMo,,3Ñ´ Oáü˜ñÕÃBS^±.HòúClGÞáUz©†Lت’¼¢¯$L'¶6y£ÚM‹ù/ßG<k>³fnåɪK5g# ¶Þ š¼»R–0[øäÙ™±G°X{uÉÖ ®iÒ펭É“mý—¨ ÓîMŽÛ¶8Ó{<¼½||qFh¯3å·m  ,×Àrœ|_Í{ú+b´ÿÖ–Dao뉞!êLßþ=ž›C–FÒ‘²†öÒfŠ?3²xYX¸¯O`gC"­-×dé45©ú4}z±¶:OmPŸ¤®CÂMð¾±ûö¢ +º#vÕ«1Öà õUGI&¼.,”ùoÙ™‚Lt…YÀyÓ3ùuà*†B'QdN–2Wê¥ʡׄí.*‹r*º%OŸ\YÁ,pÁ>fgÙ³öì2üñ1ñÈÓ‹ÏMá…l…ˆ0¨˜Î™•6½Ì&rüÚ+X¤óË؈w‹F›ŠK®S ZÍ~¾„uû3ëRª±Q•<ñ„ü?CPv¥-Qª‚¢ èà5ÃØ sùˆ +¦Œ½FŽþ4¬—ÀüM€³ ÙÅ.,¹ÂþΧ0Ãh,©j’·$°¤kÁ.T΃ÍÌ„xò8ËwJËKÒÇк µNI¹Üšk¼7J`•o‚/Î1Ò^>üLÃg¬çB‹Iä[š^õ,ü×@˜ 3ÝÁÃÖOÃî{]嘡ߑ=O*¦, +(É­¬žW=P}ªª ‡¢Úˆ†]Õ1uAúÌ}BŽí +ÆC\$ºÃ†Yñ(Nôá¹ÉpNÙ* ì`!ùœ{Y.fÑ¡ìÏuÜVcäO“·*ÛÎÒ#]C’ëFìj¤…ùükÃÁ'’—Îý¬TÊvˆÈ)96®+Ïf‘„ØsNÜRÐTZ,-.­*‡Ü£3×wêw—¿åtkgjoÎgc~÷‹Æ:uiFÚ˜^©¨ðé.²ÕßÔ“wO¥ª3u ÔkQ|VáQ5*ÊÝ­Û”ãÆ,UÃU­Õ5x]mKÕÕüz·È̵ÒÌuÏ„9Ns¹iïù¨ SËFòSl:8#`IÆ0sáøDvwD³´^k¥>ËØ“€'©µê4I|_Jƒ”TÕËŒEtyoU«±7TT—TP=-I»èHL®Z»ß?÷INŠÞ#ñ>ë~¿~¤§¥_ª(oŒ¥]Êlêµ½–ÒdÔž¤É.ÖR.V'« ’£ŽŸî®=Ò^G7V¶Ô5Và„A;/o€o[W +op‡y|ØõÊOì®Y¯ ÌÆã°«9…yž’×°øg³þFÁbnŠ|«~a±¤ä,í~:,]!(­i,¬ &/ïa­ØÙ»<½éðÂä] žcÈ­¬‘2íS¸=Ê3Á,>c„8&J® ¡ö-í +xÃ_ö´ve† Ї*ŠóŠ©šãM}\–Ö@UÁ†8*tK†ÿvÚco”›«„EßÙôë+§¯ H‰jíUüë”>œHadJ&Y• ¿~/NONÎN¡‚ܸ)8=¨;ÒfÒ„iNéKñ6ÍM€Yâ·IE&Ka\ÚÙ®Òম+l×H÷AMF/,½ŽBh2M + mhHR6`c›ÅÆ áM›­Í¶ôdyÓnK²¼ Ë›žc0Áö6ÒÄe—»¸4´– 5É„öŠ\¦ôÊ&¤ £y¿tî¹ç;ç|ß9·NYZk¡ÐP¢Ð"8gí— ¾º@˜Æn?;ÆIá{ GìD$ä[\ƒ4ï5 nù)8·œ ß„ †‘äï“÷S«Öƒ³è);züuD‹½®¶O4ñÞµeˆ‡âðï4kb¤z'Zÿ:"F˜&¸êÅpȱ¡æ†ÖgÐâIÄî¶fYvÚòÄP“l¿'—ZürâlÜúG ]¤—ïÕTéE ¥^]H}BOý«õå©Ku„ÁhÖ«E8ŽÔ‹kà<1Žisô#Á¥ž£='#©Ék¥²¼½Ï_ÿ]`£î6›9L÷”…Š¤¢LEæ[k¶ÿ¤Ã×äoˆô7í/Œ«1õù e&q#-ÁËÜóʨAc]“ ²Œ}D«@(Ôåí¤ú{ 6Òh H³ZwÆ,Œ,HŸ±Ø îíYœ±ýL&æ¡J¬VËÕáBþ|ñqÝïÞ~ Hc˜¤éÁÍ‚$'ãÀ§‚dýûú” +"Œšk«6‰Èo†à¿¹²¼œ}ä?Á²žÈcshž;OžLƪ¶À³b´™Ä¥®"ÏÂL dƒ~•~o È(3 D‰0kc6³`ýÌ…qàªqYëK¡¥&Âß°\µ]e7z”mBùÑ× @ÙÛ;ØÜÒz„ý ÙÕãêu%²å”sÈ›y dmª´ZLZai4S§6êJt…‚‡\8´ïŸf5aò9(£ÿô+þ34ÁÕ¸ÿEöéêõ(:%…JZ#Ö¨uE5a›â¾“˜ú#+PØÂ0ɱ…cÛ㸠â¡3©:÷Íw0>NÁ Íg¸f +ÞâCî=Š·mÜ°R´âÖþñ°êˆB.ÚŸ_p =}ô÷±ÂÆÙç}Ï©kš‡”#Ô­©“ßÞHé{§“Î +w‰"áöžÈqå»,æò.ã•,Ut!rþMLd)ÌÆ~‡Ûä®e õÄÏà> endobj 359 0 obj <>stream +H‰\ÔÍŠâ@à}ž¢–Ý‹&?uëÞ‚`ë4¸˜Æ™Фtc 1.|û©“#Ý0‚æ&¹‡¤òõv³í»Éå?ÆK³‹“;v};Æëå66Ñâ©ë³²rm×LÕüÛœ÷C–§‹w÷ëÏÛþxÉêÚå?ÓŸ×i¼»§U{9Äç,ÿ>¶qìú“{ú½Þ=»|w†¿ñûÉn¹tm<¦}Ýßöçèòù²—m›þï¦ûKºæóŒ_÷!ºj^—Ä4—6^‡}Ç}ŠY]¤ÏÒÕïé³Ìbßþ÷¿-xÙáØüÙY]nÒÉUUVË”¿¤\ªé»Æúýs½H몘×érÉ\"¿2¿"/˜çóߘß×̸oµaÞ sf:¤ÌyéÕž³…} +úö)èSh˜û è3Ð`4˜Íæ@s€9Ð`4˜Î@[€-ÐàQv¥èJ9W1W9W1W9W1W9W1Wõñü!s®b®²+EWJÃü|*»Rt¥ô(<Ê®ægZiÓÙöxÞÑ•>žuteìÊЕÑoðý¿Ñoðý¿Ñoðý¿Ñoðý¿Ñoðýÿ÷¯Šæ…0üPf?¿Ü·¯yÚÜÇÒÜÆ1mó–5ïØ1º>~ìjÃepé*|³ ÜÄ(® endstream endobj 351 0 obj <> endobj 358 0 obj <>stream +H‰„TiPTÙ}¦PèçCxïµqA\Æ∣Èà†HelÙA»›E@Yd§¶fˆ j*‚b@éœQÅ…™1£™AËÔ÷˜ë$éŽe~Ī¤êÖýñÝ{N}ß©ï34Àp7w“nóÙâj»#4*4:ÊÎK ׿ÌcÅ8kaˆæ¡¼_&§{¸s1¬¤kì5,³‹V’x‘þ“jSô¡#òÐà¥dQÐbÉJGÇKõ÷g’¢e’]GJY¤B²5*(Z~(Z ”X&‘lŒˆxéQ +‰—L!“Çêª:„*$¥<à€,2@.‰>ø¿˜0 ×uáØLSL‚aÖ&Ø*.¶ÃÖaØz s¶ÄB1,ҋð óÐMŒb|l?VŠ coðyøoqo< +ïÄ߸Üå˜qâ9“† /p ®·œ'ä%ñø!ü¯JÁ+££ cKã}Æ?ÎX?£wæÆ™¥³Œf5 m…§MÄ&I&È4δÚôŽ™Ù5‘©è¬ˆ%’g‡Ìþš\Dž1ÿÂ\1ÇjÎñ9w-Ü-,Yž°¥~GµˆWŠïYí·˜»`níG¢‡èg(T¨?Î*0foʼnߥžx +”Šl©«m=/¯ —ËCCêçB;íh–›˜«ÌdÊQ 2V#‹‚ŒÓ9……j°(ã20ä_ÊÕœ¡ª +Ãh¡ó´oþôB- zÁéÝC:¹Š‹l–ì@h3…6ßA`³„.¯äZKÁ 6PP ÐÁ:Ú ENÖëèòx.ؼ¾°™‚Í;ÀÙ¼¦“ã¸ïœz‘ÒÁÀ¹:Š:qhíåÀ¤9Ab'J„)J@I~„ŠøBäfCä0ç6šMÕŒ^}Ly^–ÉñòÄâŒülº=­)êµ?2l÷!Zè¾}x?œàôC1é'úô*˜…À ÌT‘çëkÛZ×…†–‡¬W´0Bd2m‡W†óÀ„Ði_®…þê˪šÙ§Íø…g zÆô +ÒN˦–ÿõe-ZŽÄ(Ðòe ûC´Ô¹"ds¹ÂR°½®`6>àŠlaŽ†m«¾¡IöÉaŽ–ÍïÇalœÃ.4/½¨¾TÚ!/²ðRÍö#)h°ã>{Õ5ü‚šrº»zç>yxíýye"÷Bc[ßøÛN©½ËjOWf§ÔÓÛC̪®C_7H¯‹ ûÛÀ'ÄKX¢"ÇÀw ¶í±-frùÄT‡¦áì©rAe…ZSCz÷¬ðñ‹‰Œ¦·U阫;ºnŠ{.Gxlß.C¸?S¨äžm(i/G†Â† ¾”zîŠh¨T2ÇŠSN¦f¤¤¥§d¥d¦ä©Ô©‚øªóG:Ä:EÀ®‹µÕIÒü€£ŠVó>*¡Öð?ÿ·ºÑlY[¾-¢—¢ù¶ÈF0XEö¿½ûóД õñôÃÜ» ´8L=âÚ GÜ‚ŠöÓ—Ä ¸±u™Ã>°ÿî%+%÷c/—ÅÃ'Gê{þ(øSwCß05±ã{dí§J +¤ë`Òy§´úM€oº!/¿øTO8ìÚis2 ÝW%;*ø Ù"C$§ÐŠÉe`¦§`ÆÏ.‹‰ËH§·†5‚äÅÈÝfËöŠŽÒs…´þý+ÒÑ÷˜Ùv²¾ š9]ÛZÖ.þ¡c½K¼ƒ=#,‰eµ)¥¢ÖšÐjueî?îŸæ+¨åÝ©È+ƒœgÜ£ÖȽà˜Å¸šK´M@À÷ô#ø§—Z|X[Ñõq¯1ð¸¿û>1I<€cì[òZ×Ag×CÁ!‡·sn-cTWý­aš˜,}ÿ”ÜîÝýÝPóµ›ç™‘ûûÖPk÷ú»Ó)‘äàƒ`öܽsãe†xÐÝÚP]T,¨Ð”4×QãÛ—J6;®ÙzÕw$DG¿/âXŠ .&&JJ!ì±Ç;ZX e7¡¿ïx ‰Ï9ÃIdS_IM/â[?錴‰«MÀCfÈÜ –Yßs¼º2¿¬†Öv„¢5 — %a–°–}MNiå-?~„IŠ• ;øŽ¾¼Uûì óÁÞ°ÿ?g]ÉÞþèu=4ü¤¦Â0ÌéP»‡‰}ºÕÿ/_ˆžQ¶ýS~¡>3D£cþÀoè%´:[YOÛ‘GƒSQÌQUFªŠŠmHPÓ%-âÖ:eð÷ ðÃŒÇWñáÔ.­g[}ú,7º9®¶•êïjª§Ï7««[©§_Œ¯£ í™_? x!øé\¤lgMãðÀ8ëS25¼ÉEáÞø±ð²P¦¢À÷!Ÿ¥elK·TB˜†™ç—ŸZ^yÛòÔåú‡êzøó759)ÔY)³Â³,æ³d.ïÊæ¢/yB˜Ÿó{èo‚¢&ˆ& hÒû5ñ®cš&•üñŒÂô“ ÷|„§¥;è=œÀÿfPÝØÍÜni½þjʱwE9­‹öjÙ“+/¨ëG.„ÖÒš°À²MâÅîdU^~a.W|*¯E Æu[v:~åg˸ñnG‘Ä»·ö |žK€㜬¹GA_I-ì/-‡ãDW~"´ì?Ù$’h˸‘õ‡´›B[½¥Ê^Œ¢Ñ*4¢UG ðÏßU52gÚk•_‘çYXûúH‘¡Ù/‚Ù …•À +¶üm0ñ›uÊ^ÌùßUÕĹš™9.©Ç¼¼3ÇÄb]Z«=Gª–Zk‘ºûª(¨ jµ²”˜ö5»1„!ˆ2ŒÙÁ ]·b]°¢b£Ï>ß³r´ÏåÝá|éñMBÔ.§ïÏ™ï›ïw÷Þßï~ÓÀÞ®õ䈲¯ñFXÞT)‘'é&9{„$dCðAÿ¯¨Þ°ãâs+¦W£Ñzm%ÇÈäfôÕ:[~Düh}ÕÄ)$zû4EÅJM%Y¢L‹v7yúH‘´ô'ÃÆíÊoceÈÆÃd¡ÏiŒl^d­úOA ƦôØ´TBš¡^CEDë-)â‹êÐiýŒ·WérJÅ¥9ùÉQá»°À\­j65R°Zƒ¡Ft œo”iåâ²ô‰9ŒÉ÷QŸR÷î® Ë1xÈðþºü«\“µ¶í +L`‡íL#;®yÎ<ÔÒøt“¢µ…G+ëâzwéx„g/ qšŠÓÓÏ_ Ëñxîá›ãánC,Ø^3à fŸ ·ÿ&˜Áì£ñÙn~ÁxO,B‘'Ö0Æ6¤ZBNoéàš`̬§? öõ6×_ü–)è64RÉpAßQµU›Ÿ&÷Ý°’»SM ÿœàßåxïw©¸ãD§îtvý¯…‘›>"Œ0*2ÊP ì®9GòÙuîü’lÉ [Õ÷•…9JDæ (õ4Õ*U¼2Jž»VMÈ ›Æ—HÍêM¾Ëxß õ> Òû½ tl£·3:¦îA^Zí\§§råð/ÔækÁK-ðLÆrp”ç° 5kñæÃ×z:O>Ìw&·•ý U`&X¡ð©ñ¤±NTÐt°¬ËÀ}¡”áµÖÌ‚Âo õ#‘B‡;Ø=Ü=\†µi­ÊJ)±O¶'=ˆD ¸Ÿ&T/RÇH2Bt\ÔJ_–Ÿ¸WÝDhê4'Ÿ’PĹn +»ØQí}3ñ.—oz¶±‘C<ö/ÜŒBR4 +-A¢` Ñ› ka2¼Û! MæÞŠAâð¢Oßš‰Æ )S8› …Õ†`Lz‚F£xpN-ºèá sœïó`;{‡³À‚ 4ÔROoAžè¯q+cwšLYâ¯k)Þ– +½¡\üÀòð"¼NžßÕ±½FT·uMÉR +™dXßû½žÆßv÷;,É«Ì¥¡¼ÎŽŒ£ø +2¸Fù5j#uýÆV¿ðŒðÏbÅI‰_¨·QÁد“X]y®¤\,ø²&¢-°nóá¦ÀµÄ^ÌP]œZ.g|É­Ñ Ç¶õ¤"¾>{‹<#±}Έ˜¨5Å+(T(Ãú_F'Èx9ò*_é±Á•fiòø 7@òÃZFÐ× + Í¡%ŸI,ê} +FA(˜Fe3‚ŸnãüŽ.«/h\×p<ÛòÍ÷"AzE«+ÄL¾·à¨âœªUÓ”cÈ,È2‚¾By¬i'…þöñœih P éâïâ/ÄÌ!çoÜ°à À;žÎe.×ì÷<›÷BŒbÓ½oòþÔØõ§ÍâG†âs³ýãÂD¿XŸ¸’Zº‰9/Ž·å|w›„H—{õ¸WR™|x,ÍÝ„Âcx“TÂë°ÆÁW¥u-w‹ /9µ¸S†ÒÚÔ欔5¾IËg£äõH´V}a’k9u&sKA½Ñ‡F~NµWYÿ~;â=@úËh ÁguÀh&7y¼ …‰ÜµZÇÑD:vZU¦´¾ŽFŸ æ²é,udz[1;ÔôBZ1Óp¯Ðx±ˆ‹ F†×jlê‚ìÌ`ß´ `½ 't˜À†–±:o)†ÞsìöæžûÅ~”yÌTl3ùÖ9çxgļ8ð[vÀ`îA•ð€ÁTfµ÷î±]i»XPzÉiª‰2¼U}XS”›í°9`ë¼ðÁM·6ÛÓê +‹c‡ÉÇå»g”Fm{`{à‘ Û|¢2.?/•D˜Kmï:‹{ôåLç/Dsª‡ÏVsÆÙÉã,aŽü«±IE:ýMr˜ÄoôOŠDÕȵq·1g8Dˆü¥Ø…A?Ÿü…Äçëô“")p•Ù](‡Ù힇í0ã jæUy祦iTFVE‹’ðfuSÜAQYr|ñNꓬՑÒT")=;3‹Lµ¦——ZòEm%Ú¾¤:kãþ.ŽÅä;“‰õriì&2äøªÞ'[ÛD¦]e±*"ä¾Pž•*£¢™ÎæŠýM•âJó9kU1Á¿š]ÏòO@äþ¦dÏk7!÷.ÞFæ.OßœG$ã—ՆݫIÇy\ÒiË=E ø3˜ +^³þí—‘­ÓäˆgÆxïò2W0E‡¨ÇÝÜï >º8Ô ©W•šb¹ŒäK²/Àãÿ^íAM¥WÜ,†{wµQ¹½ÉÉõÕÝmë*­»«ÝßU‘± ¨<}$>gL~-NìünÞR8´YIŠy½J PÁ(|….ì¸ÂÍÅ¥™qy"pëçpOZ;Ývº§_•l']`OPæ†3ŽxÄô +z O¥)jªg/ +—&Áü­ª,µí$&Q<<ÍD®7¹Ž×ëQ;r¨œQ®®<Ããˆä·@´,<ÉrŒ€ˆ1/÷¢¿â‚£By2±ý½ðó +,ÖƒÅÐ jÕWèNðîìù“?½ð=šMóhôËÕk²¹ùt+ˆÅGL/‘GÓ‹5ùpW{ÿ›§À®™ƒŸ•I|f]ØmpÁ½ ¯6è5Õ(½¸ß.«½b±¢Öš:s-ÑÕ!ÛIlܬ2•¯2ÍU&½YgRVËlÂÚt]¬Fw,,:‘UËŠSŽðò¢´4½’}¾áªÑÁGO!ëšÊA¸pjhÍyyë~Ht·IM>'?ö +6ßľڂým‹ÛϽÇ&¶X -&‹Æä ÿŪc5ÑZÔf¦˜ÄÖwÂé7‚ú#>—’ØÔe±ìPF’¼T©Ë3å×d·g; +QlzYª4RP‡Ê T9Y¼°Ë;,ÈW/Ÿ¯³Dñ±—ã— +‰h™ÅVÛj³›ÈÒZS™ø¦]Ñ)¦HˆE/ï¯÷„lÝx8ñèïâ]#ýÎ>znÿö5îÚÿûÎzÊVOÖÙZM=„³K«h';ä™±¼è„U|μîùƒsbÂb\^`£çAæF1õ2¤Ö•ó¾-F>Õh>ašE"…4•W¡Ü@šÛ{kûtèpKÔv’Þóo“&$¸Òc’ˆŒï¿ö–¦ ;–$@9ôo!œ¿Ê–ÏÄK?6Ü¡øY„ yN³ óµÅ…|ìN|Nœ4^‚b“ÂùÔ‰KñôzTð?Ù¾/:¹®ILr†<ιQ§Â31.lÆžàØ£/t å6~ Ÿ3*©²DC(‹ËõrR©Ï×3 ô&…}›X}›FÀòU7›^ÏPÜÀPTÂÄCÑ„â +™¨(‹X»ñ`)XpwðnC‘ÝHr6Ã…áÁ×[G˜N>„õ‚phiih"¬Õ…r ‰ U©Y]‰6š«©zž-«U'âkg½¬Fý8« r…ø{9ëæòså6àÞ÷:xxœ!ÔÇÏm8'¾D|9vöÙHǶ2Öz¨­×ÕØ}öT§( ƒßdÐÖ+¯*)®Y’fï…lLºJfQ©Gx‰™‚˜[סº¦yòà>Åš‚¥¶"Àò>^]Q§‚³x÷žö'‘H*3N†i§÷ÇÝGnk**«øû”v¶Bš­’é É™‘_ŠÛ)ðM“Uâ3Í/Vá^ð<ñH|n"sÈ>E‚“H¼z›R‡Hµ9¡aS%fU!ï\I¸×Ül¬oçcÁ-pPVtbP³±5UöþJ«°#±:¶¸\UáäYŸè9?ÔìFmôñXÄî)V9X bÀ›^ ¬¿ ~öx«o¢y°\?ÈHÊM"¤O]£Õ+•Bnêúä_ ?JM|~쉢Ã`¬ÑdDs¤¹V¤+i Ëé¿ûr€Ü"þŽec:"W1ODùèÁ*÷ÀÆÎQÞ¾¯{gÀbú–o«÷Àíh÷´ý†ÑxQÉ;EöÀ¡i+Ö)‹Ò¸²mÉ+²v@•LsÀv¶w ýVüJÁZøc¨(l©4Ûô\ìlŸ‘MчEÈ¥"}©5,¤_ûrZ`Sð¥|*¡j]>8ØB¯+°ql¸Î½n(7Uº’îÐqšï››ž ¢ØÔÁ=¥e»T¨RˆP/Ò—í=\{ÕK¼O£¾u™ê¬bQ±¯¤Rÿd¼Lbš£8žŠ©@jÂÝ’6^¼¢Ô‚…DAA6´mÊN±-¥tß÷uJ ¥) )K¢RÐjUR\õà‚ M8iÌ7dHpJ \ËpŒ88äøê;P´ +f~DRûK/SštV7j°ª­ 9ï*~ªû‰Ÿ&å„)±1¦ˆ#C`žÂ2§”Þ°(g;Ž¬Áøy +g@Ïé‡U³¬BÕ1ª¦ûÇÉ ‘¡Ð2ë/tgœÃi§qš]E?¡àÜà,úè2!ùfk—ô 'AÈäwÀØ´ ¯óÒ©JŒ,¤Ä2È]Î?/8ŽF}§ÖÂáºù#qæâôDbŒ­ +‘ËúJo3+^5/°AUþaʨv]%L8ž³» õßÄÅS0auåi«kßQ  +á«ú÷ÿÇ.ž FÖ•Õ7ŒçY…¡Íp28Ì …Ð(kñ1·sŒãQ¹Í¨u{P›Óî6z4ÞaîÌekƒ¾^Ò"¨¬“Tk»)z±¾»•)Þ³Ë=¡óC£ì?˜`E§údA²éQ{­¡Êöë4Iš_¼¿Í‘u ‡uŽ6ù=M¯†Ñ?È÷õXnk¹-‚ªZYVBx¯®íÀ{©K >I2c† à>] endobj 67 0 obj [/Separation/All/DeviceGray<>] endobj 321 0 obj <>stream +H‰ŒWYsÛ8~ׯÀ#¹5‚ð®ry+vâÙMRI¬ª<ÄS[ŒD[\K”#R›dýö’qg£Ñýõ×o3güK­SYáÔ¾š}VÍìr1;»º1jÙ*«T»lfg¿C÷¾-ì¿ .îf°ÅÀ_ø‘Ê"§ÛÙ—àuÝvá< öáܦAý5Œ‚ü§±z­F‡.þ˜Ý<–ÍùùÙ«ew(7‹êGw~ýæúÚã...Ôåë+5Ktœã!‹Õ,Páâ?³7ï`Ôð±ê•²^)ËJð†/Á"œ»`]©pždÁ­‰²}肶ã>(YUhƒGîw¡5ÁŽÛ+вB}ÿÂ*³Ù…IðX7÷¼¢ä϶ìÖ,†o8‚zYndb‡}‘»åŒu)§WaüxÜ”uÓú©ªM÷¡uAÕ¢Ý6L×íTK4à<ÑXgnµãû>0 +ø¢e³‚]Ö8”N-P‰¼“’wìÄ;‘xGbûFM ƒŒG:ÁÆ°Æ_K”Qoja£à'ë†q‚’BÛÈŠщ©.Š”|È­Èå:Êb tjbÄQð€+„E‘Õ‰s1¬ÉtJ+ÏGQä}/¦+î¼ÒpÕŸ$Ã>y_°P”ÍÃÉ… + ÄXÉ‘ +_‚ßÂAÂwpY@øðF-åûöí§KiÞn݆âÒÈh“Ž\*¾B@ Žð"qÌJ×¼Wo:îÝÉõŽ< 7XrG£¡ÍQZü„ÁV‹Â. >¸Œ?ã¡ï&Áwîukæ_8ŸûP"ÁÚ"Òˆž![{ÏÝv[nÐP›Cƒ1¬I½©OÝÄÝ õSá›r’ÝŽd³D=Q<ü†âÃJ9|ἿéPcîb#?}‡x&”%Úx#rÙ[OÕòí íÞ@Ð^×÷ðÎâî?ÇQeušÇÏÂPÎkV²Úë4U¹ïíé%ê"õ÷|"ðÌ P¢xàUh#­Þ¡4€aŸMf¿ãv»f(`z…è°Î)F37%?šDf†µìãíã@]DÌ™ÑÑQÁïbä¬×CL=ÏÞ‰åà¿MH膙À ÷kB»>F‚$xgÿ8FÂ\¦‡‹—?ˆk#— +­a«ÝxnðXäaª`Jfzv»h†³»:貤% Ó)bÓ9gÚ!Àš²‚Ô@`bRfkÓ–Q=BGP†¿¬Î€…ËÒ·&„NíK™†· ÏðÝ„‡ú‡*Ï@y| O™qpØ”¢Kb'ãÒF]¿û ý<"rÉ€$qëE‹OrHçýU±Ûìè3¢, Æ9Ú]u—$KyT0¬+n÷ù"*žN/ÇÒ¢Z9²yËóõ (æùTòpCöÕµ°fZ›úÚ&n8ßyg´¿±,EX–yÒÎNÙ?;bÿÌ×<+"þ (\ŒQÇÕR«b¬„Í3È®-1Ãc¬×¦Øn¥N¤ü‹ÕDŽU•Z7N/ƒ_ËÖ»ƒ³]4 +oþÄñ+ IÄc (xØrH £c$î—.koCïXùÏÐ~ÈYˆµ0u}Á +k|CM´;lVÜÝÔ\5rox*¹ íëÒĽœ8èòH[ËÀW68K—zutÚàš„M`ö—Ð ,»•Zj×ò¶Q ¯º±ý²`` X(&ñ|˦$Û‚0XÝ$ýBïÙšŠÆt( NJ,ñHà(ÚújÐYªáC±qótFÛ±ždDºÚ°më§esQ`ŠE§8¼y‰ympÀȇ©»“ x )ý¾ÄK”<xXÉ>#@“î]wðÞ4òP‰^yÒA,P­äÉP M’1¥BcZ®¢M»“»Ãö5Û­›0Ã]»¬9tÊi£ç¡9\–!`HBcÚ¯—}Ñ….Z2*õ¡ïQ…/²zx“ÅÁ«Xµëßsh>_ðþ]ÖÙX]5ƒC½ôXvkjP†nf©7es~~öjÙO.ªÝùõ›ëkgŒ»¸¸P—¯¯<˜ÒT(ŸJÿ7ï`Ð(ükÕjb½&ýÛ0ñ§ "lp ©Øè—@Ità õ›þ9„DRéy.öU‡p$ŒŠç……àšž3ŸÚñ,%ü¦‡Ð‚Î7@ÕÁ?`Q£ºBÞ|6壱›Á‡fÈ%Ô^&õU;´¸6Au~>µ bCÞÇðůOœ|ûöÓe¿é¨zô´“£W†9N##ÝpÕÆ;ŒÆ§#šS¶àfíG'E{åGo“2îÍbvöaS.«Õ‡××êìÝ•a´}œ}›¨ˆTœä:Ï”-rµ¯fŸU3»\L‘×Ç@$/U£ ø£æFkàÉÊ?ì¢LG.Oœ`cpÙ\ö!Œ“ã6G«€†Èšß‘[åg°ún«ÈÜ…çž +(öŸŠOÐ)fŠA%S8%L® “úy¡ñ¢¤Ò~xILÈ),D-–Êj›«y¤£8gäí+2ü +ïÀ‹KÜ{#°æ\JuH¹Ä4ñÐö…^":ÓÖ é¼€ŠËZ«‹ØŨ_àŒÎ²\x!ŧÓÜ…38ë"·2Ç8Rè$Êd¤ 5€ƒ½¦ÿB©‰ú®bõNõþý¦¬ÌƒëtT$ Ž³ÚdàÁå–6ão†LÕ+y¬£(=0йùk„=ïJ+Šå\ªã"H¶lGì¸# ŽÞK¸¬‚Áo°‚ðEΩÐÖÆH08Y=ŽPYBÂìG+öÙ Úb`ÉIèûŽ¤Õ»ÆGØÇ™cŽ h- Üäb õ"Ðê}~‚›¦ÆßÛà“,@ªñ—¤\Y² J(°„ù[S1Ð’ÓŸ\c1LopN#g„Œ1½WཤvI¸õÎóïo~hæðÖâo+=¼tëñI …\¢ì’d}Uúˆý×:ŽðJ7]BÒ6UNòìP•- Õú¥ÕÂn‡ÊÚ•™¢áM;¨*-=úþ ’ö!ùþrÌ'h)ÓC U¨‘”i]LÓAÄ2-$ÝŠ%®ó±Å'#•ú±Ã3­íQú¬.j20òr䨠¿/°½IËè«…ªÏŠ &´\FQé÷w9jÛÒ ]뿱n®=N1HèK4 ê +·ë +å GÇZÀOõ¾· î­ð&Ê^ÎåueÇŸóáa8(Ótuy·L2%pCnL¼¶¼£ê/Øéë1¦e¶Lk¥×Uûo¼Äž)e¹opKm­sïóì6J–­‰«Ý¡|Ýs›æ% T™¨„ì6ßï+oø–^"ííkó~ºŒçý;ïË°ÖÆ {ƒ²T_’¥Þ­(SZ£0Q*æþ¼ò?&í½ŒWÄkóá·.‚Æð£VeÌArX=b§³ž–i¼Ëú{%)‰·ê˜å+’¦òuÞöµÈႧnB[A­˜ù#…>^bÏÍ¡æåh{±p–žkgÛx7:SÿýMF¢rié’å†ÁUF$¾üïÏßþqùÏëgþëq‚’a„­ÝÂå›ÔÄåGZŠ2È,·ùço,±”×W£\:Ûë“·ßÂím/ÿ•¿ÇËý™‡•òýyãíÓî¼?^Ö¸._Ð'ú?o»ó/7©¶•½¶àKO{à/÷Gž,ìënÀµóåJÖf÷óLoݺöβ(®%ì/+™Ý53òî]yòÞå¾²¯hLø'ö7ôc¥»áÖÆeÜ ”„c¯Ü ¸vž!Éé«¥Wî…[—{GRWš³J¯Û´v]¡6ÌúŽ÷Lž*’mì<ãÚ´vÝ€Jª›¹ƒû€Ã>O…‰#tåe¶Še«Zm÷N¶ëν`kß R­ÉÁaßw®B¡“GbïÛ´v]!†Ð\„aoܺöÎЗ!K’±!B$îÎÄ‘wGèÊ{ +ÀR0ûN¢Ĺnm˜mÓÞݦâÅ ·6ž¡dÞ:ú ÆcÎP?àÚ9AÍÁ„Û+÷­3`¼ÙŸFâîLIw„®¼çÒ¨Ò¤UJ‡å†qÖ\¼:åÖÆ#´V6{ôëS±7î…[OÀ…ö6è)¦sOèÚ{[ܾ~Ìí­»×Î+Žùüsn¯Ü ·6Þ g¬¤¥!B0&ݺò^"¤ à!¯~ѵ÷‘(;ÇÞºpí¼@@®Î^f830ú€Ö® d÷<‡>+Íý€kç µÄ$Qƒ?!÷¦áÀ¸lå›PL´Õš_Ÿ„W§ÜÚ8B®åÐöü”¹Ü ·6žå½5í<îûöüh±¼#Uü€kç±1¹l{ëŽÐµw†@¡m^ä ÆÝÉ8òî]{oÐ0áùÓ±—î…[¯*˳çÇ«Wpí<åeØ3u`•Kî~<“ç§r‰ƒrÁGø×®5ñV.åéŽÐ•wŽZŠçÏÆ«Snm¡•’]c/ݺöž% ·*æ¨hÜ›Œã. µk©Ú¢ƒ!·÷í\;g(9äó'b¯Ü ·2ÞäÅå¼÷‡W¿èÚ;R9y&öÂ=0kÓ’‚Hé‚¡4äOˆÃÝy8î]{/иîmÏ…âîTyw„®½Wà²óðÿP(îÍÄs'ØÚwƒ1<{Û. {×$k¢6æWd¹+tí=AN¥ÉAÔ@ÆÜsVK/ܳ6][Ei̼L·=w|*“ÜUË3w~*“8(|d/ìå¹LÊ¡kïUÖign{ã. µkiHùÇEöÆ¡+ï13îmÐ×Ïcí®-—'û³ÅºöŽË£›múõ³m/Ý ·6žñæuâ\qî„ZÛ&ÈÄòÌ + g­Cqo&„»×ÎYÞ*cíV æŽù×[?óÑÎrGèÊ;ˆ-òù3ñê”[GE^>°\žª¥OÅ£ÊÜ ·6ž Å’] ¹½tGèÚ{Z©îëÑž½<±ó;¿±óC–iôt/ÜÚxJr›£¥!B*îŽÅ‘s?äÚzƒbÚlÒ£æÜ݃îȹne\Ž DrmÝ,¾~нz×ÎH2Y,tèT;"×Ö &éÑ*w;®éÌÁØkw„®½´Ì´5{ëe`Ü´vÍr¡hÍÅÛw„®¼çT,—wœEï(s7ÜÚ8BI‰vÿ¿}fnñ®gH­´“‡bïÛ´vMB[ÑEöÆ¡kï 1¶rþDì¥{áÖÆ4|AŠPò™‡Û^º#tå½DàœâɃñêZ»NPƒ<ê!{ãŽÐµ÷…ˆÏŸŠ½t/ÜÚx…ŒŒ·½r7àÚ¹I ùä¡Øûv­\Ó²L¬.âðê]{O¢T 5¢9möÊ}PkÛ¸–¥9eÞ +Xz|*•ÜUÌ3z~Bt|d/ìå¹TÊÊ¡kï5ÕzòP컀֮YîlÍEöÂý+ëU^¥˜Î?Ù^rkã ‘ ¶½r7àÚ¹³äÕ¹#±÷íZ»&™­(¹ˆÃÞ¸#tí½B LçOÄ^ºnm¼A¥åà—›\iÈŸˆ»q$ݺòÎHN¢“ãÕ#´vdÅT\Dboܺö^ •Â›ÃÖ×ÇboÝ ¸v^cÅÓ£—wL1ØçjÝúÍûß¾ÿ—ï?þòãûß¾K (Ëb½Ä ~:›ÇË_/+„û¿Ï>œJ¾?l||†óê1€ *-˜â¥`Yð߯¿³ ìhÒמ„“¬2¡®Ò!ðO8ìàðBluÆÚ RhÛtjªëòcnÅ'‘Éä3VŸäk@ëpØ¢!OÊ>5n´ôY” 8ØWémæ±9ÙYN¦9kõI¾ Ó@CHdÈK—M>kõ¶#é=™}V—h“]zM"ôVŸ¬r·”„^[ƒÄB1Ë/ ½ÃÆê³€|»‡­.I_Œòl1Õ'ÅR­a}p9n¬ ™-@kõY@¼ø@ΆÀˆ¦@kñY¾,±œÑ«|²|¨¦ÀšÌãÃZ}n³ã* ªh\>ÞÞacõY@–1K —l” !3­Õ'åÉPÛ`‹3$²Î‘ò2Á€Öê³€’9¶8C!+å”.æ)l­> (ÛÒ`‹ `²j 3§­Õg Ð2*­ƒ¸BÄdâkÏâU(HëSšàµ·”^ñW¥‡M>cñY>xxpˆ³Ö!R7ü—"oâå(5»K÷YÍ8DÌ곟åKãà~%|…šy†;`¬Õg3´:ôÇ1šþ8ØÇ‹ÏâÑ2¬¯â(ƒ~´n!yòL>cõY@y[«ƒ1PúÓò'GðŸ±ø$_‘'K4°ÄC³ dß1­Õg2.[XÉš£³ìŸ9eY«Ïf¹On[x» +‡˜Ì´VŸ$Nl±ÌHh1S–µú, ÜxÃè.Çò'+ ä @cõYÀ&ŸÅƒ1å¢c›c µú$àÿ©/—$NJνŠÚ@!2ü®ÇžxÿÓ‡”TÉ$.AUõksàhK%A‡¿ =«Ã6j Ù]Ó°GPp/Ÿ®ªn¹À®6 +}-0f¢{µŒ²qmé[‘3È°ú8Qp/_%‰Æ±5ø:Ú#úÝ‚3 ¢{5‹Õ8¶ô­Â 2¬{á­‰¢;kÔmo˜µX1`ËE÷2õ÷Íš¾Õ3vú=`@Ý ˜tÛm¦—b ¨GÅoÝ X´ÎŒsK¥ 7’§ Šîl”Z5R¬€¹U]„+¢;[Pöw¹òeF%¨¿ÀЭ‚à^ îåÓ2ÊlXA¦Üðe‚V÷òJ1N©Ák$S,¨‡at/`Óà ʲ‡wÇ©At'`Ô£R¬{NCœaÜÃ0ºPGqïFŠ5Dé°6¨ Šî”ñ[fŠS@Sp¼†MŒ¢{U6L/wù:<çPp/^Õ9’ /(T*:F +Ý®Q÷òu5Äv ·!g\€ ºõ¢ †M-o4uÂeF| ¸O(Öhä7©KBõWÔëCýPt/ .*±®9츛ÀFѽ€ú#]Œ « €¶ŠîlTs1Œ`zÜ“vŠ;žÑ(ºP¿Yônµ3¬ÁJ¡‚(ºPÍ^µÎ9l¤X¼@>Ü˧YŠf†Ë_NE÷ê¤ Ö5§N9à ó ˆîlJ6¬¾Îˆ€Æt¥·0 +îåëÔ¹F0Ÿ 3œq£èNÀÕÌ5ÃǨUf4«¾†Fѽ€jV²uÌe}«€ k±“Aѽ€ +ÅLñbÈì6¬ ˆî¬$Õ:çîFÓNq;š2(º°K6¼ A<¹€b;ñr¤ÐÍìa~¥A'‚{ñ˜z †T¾„ë/ã-‡¢{5¶N9=5"NpfX(º°èª5T>¸…•¯Ã%‚{ñô7’uÊ)ßA‚ î_Ý X‚ºåjXý¢ä+Dѽ€<¬ˆá°v˜áš ‚(º0©Ù †T—Ô3„#÷òåqñ>P¯Ý‚g`«8à ºpX‘df8dT»öÒ(º°SÖ1—MjeXs„€ :×ak¤\«‘bu ‚\‚è„5ˆ¢{…’Ø{¸eauyf÷òeõ"lúÀV¬¸GPt/à¸ÅðºG TÀŽѽ€}@‹MA¡Ž{Ew¶@­YלRœÔé@Qt/ ë²êfŠ90¬PAÝ ˜¨Ä`zAÎhëcèµPt/ .‹j.b‰¨G”¯Á)‚ŸÄÓ¥ˆ,#ŒSã˧¼¾!5h_ª¬,êT›ç7nÔŸ•RB“G*kßèÃI+<§µÜnÇ[„ñË°üz>èX«Y€}:vàµL¡„¤;P/©Ô’D¡ =C<—‹çþ|]xÒó^#Ø3ýÿÜXƒ’)Fu&MôAb\.=(£8殦¦¥±9Þ3'Ÿ÷†¸ 2Š0èT"mÁÖùÕå²·So?ãÁ¯M©ÙòVÙ…Ô©÷”„çÑ,TSc2RsïÞ*éÕš=ŸåàqíŸXl²ãºiú±b÷¶Ãqh;ëˆKd +±é¾ýž|hüTàþþkxmþüù°¢k?X_9ºwTØù‹3{9§Ù< ¶^É’$‡D<î—#­£¸ôižl–ÉúõY–ƒŽwµQF3EÏtj­YpØL/f=¯êžEÆá½;¶ËÿØ„ßØ™'µëXCE«ždÙÃ;•ìÐÒŽÁZhÍ‹¢ÏÜ$g gaŠ)YÊ®)/+v/…Í|åênX6þeÕ¦iizN·©dÅëV›z2cF8qSdé”ûh•Ù§o/.$éÖŽYN¹Ì8ù§ôCÛê³ÈZÔﮪ{˜u3N'Qñt£ý##{¥V£WXvS¾3Ø^_”ÒõgõYæ«4||jHt­è?ãb¸ýó|õ÷ˆs~þ5j߶ç7ï¯Âýc·ÿÕ÷‡P·ï¬>ãÝíþ2<¾n1~"^ê!þÙf ¶tÚH=ÿ4zöêIðYóq»ê‡çqÿ€ç;|:ߟ߼¿zÂ÷çCaø´‚†êBŸuOT$—ÃF]× |]Â÷eͼÐû²bêÇ* ·Jý*ܳâEcê½tÐ¥gÀãŠ<¾ÐãÏj~òYõFjH÷\˺IyŸ6ðe ïlÒò± +¸‚g×|¹ú¤{ ÄËQÍl‡âO¶éf0fO©_{Ö›)´Ø—Ñ&€ àXFâ©ó+¡Ïº õ¤‡Å©ÙÙ=ã7V_{Ö;S %ï\iÈtÁeäŠþedÕù…ÐgÝ+•¢ÝÃ,Ô"çÿ² Øê~!ôY÷NYB<ô»x8þèFr¤—ážï‘ô¿|n4º\W4º”]—«Ð/D>«.Z&Üë›Ý] °·” Ùµd¿ú¬{¦s<4_'œ€s)ùÍ€±O¯„>ë^¨×šÎõêv'­zÕ3WúÎ.½ +ö¬w£&½~p*㘯/À† ø)ßx%ô­î)视 8ð^Üüº&ö¬7S.’—Ñù7’g—àWážO”XêÑHÄ¥òííÿV‘_‡|V½·rò¦síþ¯ëßý–ê×!ŸUoS“Ã.=±ŠœðþUdÉ~!ôI÷(ÄPNZÝÿ‚{¹ú¬{¤Vc?,š?_…{V\¨ŽŸ:0Ò|u`8»tuc¤7Ì…ÈgÕ3å®=Â¥iJK±šT ü®`à +Ä¥”PÉXóåBè³î•R.ýäpt™6ŠfšK÷ ¡Ïºw’Øøƒ³P }Eó»á}õ~!ôIwÖ8-æK˜_×EŸu +‰›ɨÿÓå½¢Ùó¼ëöÈß)öËpÏŠ'êAø°\Öä²!ÿöZ’wD¿ú¬{¡Z4ÐOŽÇ7àß*ö ¡Ïº7*\Û9÷ëÚJî×ï ß~!òIu #h<Ùªøèð• ::\Õ~%ôYw&É1}pÍÔ“8á·E³‚÷ì¥òÝsîYñD¥ž,—?ï`.Ã=+^(Ôr¸¶Ä¿<»¿ö¬w¥.%]Âvm5¿ú¬{§Úk=yclQz>}¬¾¡û…Ð'ÝS¤R¾9ÿˆO¿ø¬¹PfýðÑt\›Ý²_OǸñ5£9 Ë>¹T¿ú¬{&iÃàƒOx]ß¼.{®£ ‘ϪWbýÔQ§®ÙñVZy™ýÔ—K’$¹ D¯Ò'€~@r=K™iÓw˜Õèþ[yVõG x 3K¦álÚº§Êó¥G`+åP±ïC¾º>ESG£Ú@'aRþäÙöÐß[’iÓî:õ8Ïz`?4ê9øæ ðS›ÖÈ€Ù{õ;Ë(i>øhŒ ¡:ß }õ½ŠM £» ðD“F.¼·‡Ë6Ü«ã& ÿ½yû³äýmÇwá^ÇþQ›·‡ŸŠö,9ëÎPH߆{qÜ’ä>ò—F®Vÿ+aq'ôÕ÷,Zf{r*ž+¦¾_IÑ„ÆËNè«ïURÒñæl|ûÄxe¬ï„¾úÞdXÕoy)S_LïMÈ—Lß…{u¼KÏVïŒçC=0â!À¹‹vÁ^ýžÒÆè·íYŸ ×C©èov¯P|Ù }ñ½Cô¡š‹Jns…UÌe PgågÇ¢Së;¡¯¾c ªÞ6*¼WgmÔ8¼žç›`¯~7Ñžû›±Ë®Šå&v±3#´DwB_}ï’J{o]†.uB×—M—mÀWχŒÙË›Q÷*ÐÔO^¡ï½8>ðSínVŸ‹W9—ÎEÖŸ¡q¾ ÷êxËwÝ™Øå„ývw–#y9¾ ÷êx…hFwšJª³¼s/ãÖÍb#1”ÐwB_}7)µØ›èlû>ä«ëCrjóÉ]™Œt½·á^ŸI’üdÌýÿ§–m¸WÇUfv[+Ϭ£Æ"]Gžé¡¯¾éSÑ£6ð¨f¯­£÷zô•5º ÷êxkå6wñ˜ûö&z%¡oD¾ºÞ¥)~ì wQ°Iß^£;¡¯¾O)Ýƹëlû>äg×[RÉeêß?ü¹)÷êxMZo›ôŒÌÈõ€®¿Ù5 +ßB¦o„¾ú^eš¢KM%!|Eø:”ÌÚ¦_”·B_}7¹¢S Z¶Íµh.Ãã0—¥‘³úêû­î°•Î¶ïC¾¸®IZíýÉö?½6BûtîÕñ,}"‹%œ2ß|õ¼Jî¹¹^(šW‚ËNè«ïMfÎý¹ñ` ÜÉ.»`¯~wéã~!ñc¤¿Ñ5šBwèFä«ëS¬6´¨á°«³xðù@]NðÇÑkÑÃh,Gø²}#ôÅ÷¦ÒÒèO͹Oß»éì…Z߆{u¼H±ùæ.ª‡j‰e€Jº4´F7"ÿtý|Oßþøöoßÿø×}„_) ÛYó”iíP>&ŒöׇBúñ ÿŒþrî_7ß“¨µy© I†A߶&‚ÿþù×!:2ƒcÒA¸,)ãC.᲌Ÿlù—¿~Ó¨uL{ÂÕyOWdŒym¾Vyü¯|zâÃßñµQ>¢äkÒ›Žk>“<‰}(ü2)âu1­z×e¶BŸw£|D=È7¥v«×|CR1ÂW1­åcêÿtßC1tÌyß)ZšÛ»øb‚Gµƒx'æ¼~œ$i£õ—2}_¦lŸ·Ø%àg˜tû€3ÑþeêQ@û<\Àž•8Xi2õ(àøˆù—|ïÃ46·ÒõAăx3!÷âñYê´ƒÓ ©Gógt¼,’{&x;b˜z°JqñÆÇ÷ð–¡x®v;¬¨ó¼x¾Éñ:ß¿L= +ˆ-1±&Àfl6d¿J‰z¿Ùœ„–¾&€&µÑÍÔc€5á³Ô id¸‹fVT;Š‡!Ö‡óÀ ·Ã¯ˆuÞÀÀ«lºPi¤ÓqOפÕä¾îPöºë…½.U„”×5ÑDôí~£êQÀ)Ùª³à ã‹ NÔÊU*bJvb|Sñ(_Æó2`G†f%ˆ^i 2õ( î´–œF)©ÀŠç£=ÌÄ£|&]3 |ݘ´‰zpHëÅ}áÏ3ÃE) QâÔ¨¥9)`DZxb¨z0KžÝIYøþ™ÖÎRUV¸p7AØŒAÊ2ŽçjGá —¢wÄM±¿Ü[V0ø‡·>ÑŽâuÃ;ápàTv"Ù£ø) QÎ ìðÍ›×啉ñŠâL3'ãc² >Ó„ÀÄ£|Eªy pb6°æ½KÐT= +ØÐ^„½R@ãHÕ°7€ê³8!öIñǃL=ˆ!×¼+nþpèzÂdIF÷ÕŽáÕ$S«ûÀŸþx-‚åÐhSõ N‰Þ¯Ÿ ¤› ˜ÑB´‡™z9©Ìë1@ŽgÊý#ÚQ<¬ä„4àvƒÀœA3>ò 08wøLôÇä'Óâ5¼`nîëZû5_ʉ¯ÓŽâáÇš¹¯ÛëŠöœ¨GqÆêõߘ¬=ªäAÛƒˆGñ w„^ÇpðÍÁ`EB¤ÝÁÔ£€CFuRZyÌ×B[§©;Ö„7ÿ¯¹ýxbôy‰t.K{„d‡®æ_'æÅ®2 +í_¦D eçÊú¬¤›¤DO$¦Ä%;¦ÓÀøþCoé|fêQÀ!Ú¼ˆ ZØ‘‰ùaÜA¢¸3´: .ËlâÆå ©GñYÝ ERæV£3©G žÑ»âÊ'¼ž1MŒW ÓŽâ5is8 ¼Æ{¸WþÀD= +ØñHÞ‰ÑÉ`áõ(à”’‹“ò‹TmÔÁÇÁ‰zpªèðR R<ï9éaâQ>´iõb B¼±)m¢9S@¢¬2Ót_¸Ó+K¢Ò)ÍÔ£€/Çà̘,H›ðaâQ¾!VÔyaùĆŒ!¨Ò!ÃÔc€-%Á;x|ªlËrãcâQ¼,¥™“‡ųÉêŠGùÀ ^DŒ«,çÛÇ33@¢4IÝÉCèס´ìàŽÁ_×—ŽÂu™5¹¯;ç$Ý>cóªG§Œ”çE +­ÏKÂä§Ä3 +,’Qg8·ú©€Y~ÝÛÐ.QÏ`…½¹V¹¹¯«ÜßÜ]\]»¿J>p»õ$ Xgœ•m÷9ËRçë_.þ¼¹Þ:ë7Ÿ·Îon·—ò§Ûz»ùjû—ëo/$'ºìåë×?>yç›þ®o®›ÈÆp÷k×<ˆ³5mQݬÔ>Ã¥zä$œqßúÇT(¤rÊídƒ ¤c·‹$è]Xý›wo»‹«ï?ýpsûã÷_ÿ®»z÷Öuo¾–‹Òœæ7j¤Â†ˆŸ +Éf”Q½.I:mßVÿ¼ ™’Ä¡*ÚQ’¾•}”½ø|{ñ§îîñ¶Ç]ÇÙzWé.­±ÒsÝîe™œŒU_,Z¼nÃó_¼Ž$VkÏOx^¡5^?³áDÕ+”=ÍÃù„vŸ1˜OÀÕÐ'ð¼OJ¬I^½X½øüjŒGŒ§ +¼ GŒ§c8b¼ §cJÖPI§Æš‚tÞÁãù„vj]Ãx³/Áu^±¼°¾pÄx]§ÄšÙiñÒêWÏðÄp§$¼,Õu€õÅ#†Rž«á)χ•Xó¼O`Õï„GŒ¥¥UÚm²†JŠ@‰nZ槼®Ó0œ"°ê‹E‹×mªßuOEž¥°ryXßÀú¬?GùB‰°¾xÄPŠ`Ǧ°ó´§².rCÊ#R^Önt†,g AG w ‚oÚlkJWs¤æHX”/1Žýb5”áÉï„%_ÀYFÌ6šíêM×j‚bÓÆ À8ÓM-x} Æó¼ã¹’GÀéW‰_€X'Çê“NÇx“ƒr61•4E|òì°KÓ㨠+Ÿ†µ¾êÈŠÀ«/1àÔÀËk`]W_<âè YÎ@Īáu}ر)ìüñ©¼ µå†•G¬|DmÑfb²DÓ/ £áÕ®ó4]ª»ƒŽñjÌž¥°r‰\ßàú®ï#\yñˆ­Î&ðBêxuㆠœML%Mû“‰ýSħòªOè„>gb¬®ÃËJüÄ:ëVí:(Zvl +;?A{*ë)7¤<"ååºâe(%€Ñª‹­ë ž¥°ryXßÀú¬?7éÂÅ^¶ÑähWo¶–˜bÓ1ÄŒ ´<,bKÇÄq‰¸©ü‘ +v÷ 4 g¿€F²`¼òjžT‹@Ì`ŠÀ¢ÅÓ/T}'F²F¶Åàýð/õaȦÃûbËP +ù$¶à\·»Ý™ìj%†×úŒlÝþª|-ïnÞïÚª?1|£­Äð^*D©û8J.l,yö`lü ükÜI@âŒ÷䀈ú…¸ôZž&~¾SÎs{\¤©Î Üó˜˜Û?yfxVUÔ“ä‹–˜`óQÀp2†37v´~óı%Žcâ¸DÜhEn÷ ±ûñ Ç3±cìÇϧò¹Ïåæç_WÛ)ÎÕ{>™”ËšªÕÐëy“ç¿F\z}œ]^´(?•ÔûéååžÌÏ¿wùwþ#«gËÛìååËãë]šÅõ×¾I±<.Iš~¿¢žØ«?DÍ(¦œZÄ|˜øÝkò¨õ¶G¥«¾·•l~8¢“#Ô3eö¹³¾-W´¼¢åmÿSôÖÔö|þÅ›8ÉB)äÐ >Ê»9mûh'Ñ°ôùÛ{#GR5?üÛ)°h‡úê‹• P´ê™+GßÝšäçhá.M‰¼n7u­‰uM¬÷ÌÀî€×&áˆÁr‚•œ´Ö[X®`yËÁH´`Ë8xòŽ(zÕ(¤Øø†ÑkLÑ[Ó'$†;/kÞBöL™ýv±<ŎÛ:<ãm¼SªXâ d¡rKߣ¼›fØGÛÔ‹Î x<1OìÈœ³ûí¸]žxŒŒwÊá•J8bÄÑ+#ðŽ"<ÿJr$9E b8••œ´ªðɆNÌ(¦Ü”÷pu¯†g†Q|îÃjRìN|ËPCš:°@ƒ‹8b¬,Y(…ÜòïQÖÍ0Û§íXÈÿ“w¡n",懲dÑ ®köÂiŒW½Q6¤1VN`e0^F`é›ING_ÀD ž¼cJ45 +)v'¾¡+°2¯G`éËJNZ°g‹`¬£/~‡º™*ð¶š:GæœÝÏ»ŸqàVÚ6<ÿ‚ÝBp«Íeó@‡G ¶ã° nâ°Ü8mxŽÀš8,ÿ:¬þ EËJNZF8[5CÖ¯2$G’S‘; ͺƒvtÇjÿF²èˆƒ'ïXqˆÁ<Œç8bÄ‹)zkÖ‡Ãi v ©¥ý(‚#˼®†·çàˆ±<Œ—x{NYÉIë@ê`®py…ËÛ¡æ²y¤âu€‚ÑÂÅbqGÓ/‚ÁN ¼Òã™2ûŒ±ãý‹æÄTƒ#V£b÷ô†9T…ñbìöŒB2 /…Ñ$s0ž!ñŠÜÞðFÙ¼ô&®çN*bYKEü@“—…RÈ­îs”wSß}´£¯OÞq÷2|;«gÊì3FÆÚÌX´bF1åæ´N÷n>ÜŒ-ÀôMŽ$§ˆ£/Ö´å.Þ^ƒrX6`ÑBu^,ß‚Ñ–‹lK檕ßõF[ŽOͱ<þóí{ +–çU)™]ž*öãçSùÜçòaÓó¯¿ÿr™„4'¤+ÃáòJ uaQ"ûù—Þ~Èók¿½üèIÊ_ÞáÉüü«—ç¿R¿>[Þg//__?éúÓüK–wÔj,‹F’¦ßµ6œ(†¢@Œ¹ˆ©üñ7Éõ7>ø&ÓË7™V“’ V ÏNŠXñž•u&öñÝVî[ˆÛ %’E'8Ï-Å©¦ñQÞwh}Îõ½¼ãAô•\b3Åñ•—k^^óòÇúÞÒ¿b‘œyÅ™8ØÆëïCâþã%žÆÉB«axvŸ¼í™ƒ b¨ Tr$I®A»¼ïˆ*¶æÀíÓ·Ý.á.$¸½ŒçF +W¦Ø)qSà¥p:’œºßðæÀ<¨MW}°ŽP¼M§>7Ü{J^¸=‡·5ð2Oã¤3çMb­‰uM¬[Ä·,ñX'âI‡Ä€«.%F]Ý6 °ÄE‚E,XÞ‹1À²ƒT&«œ#Š¾$9u/g7œ:,›#³ò"}§¯®Ã¹B§›1q>‰¯N<‰Ñæ‘ÍÆb‘œùÖMwÂlÃ#tET +Ž6àŽÍx4ãµ#‚‘ãÜØwñNï@ŒV‚Má"Yt‚³<40Yhí磖؄Ýgˆæ¦Ã3\+ÆklxÛ/&ð&ÐDZ¼ÆÅ DŒ7ycÝ¡Ã^ÐPVŸˆ¬g40àfNJ1óöÖКX×ĺE\)¿ÓË·;BâjñÙ§Øòñ•—k^^óòVJ|éç`°FŽsãȨöÅN/Ü¡ÃEXO_°ô…›8¼Þ.æȬ¼‡x´´þ-ÂyŠ± |¾`<æà¢B}"n”µs* h +cÕ5¨kïòÄkÃH†³ÖoÖðœ‹ÖÏð$FlLNµÑ_Þ»0zÓÂEbŽÌÊ‹`;ÖÎ@¼áà2bìå¾µÇÈqnWÞý-Œe¼£ŽoËá•a8`¨ÀÛpUìÔ´Ýh×…Ťv!NlZûLZ–µ›þ|ûžæ*·<­Fê—§ŸÊgýøùT>ö¹|Öôüëï*Øõ%ØÌ—Xk¡×äÉÎ + ”Cçõ‡ìò¢Åü£'ñ~zy‡/dó‡_þÿÊêYÊþåÕ—‡×Ïyùaþ ×_û&Äò¸$iúý¯êSžm—Ê_R+6w‘ïÆæѯ±9$J¹LJƒöCR“jEª+RÝ&uLÁGÙÔu÷Ø{IÄ,q“ø< Æ bPSÆJNB öFÙ^ÁrË+XÞ!­;hwÚ{´7Ý©¬KÍh8áîôeÝ8mi|ååš—×¼<}옂Mb>¬qoW(Ïé¶mŠÏI|p}´P4 #V6¸åUÙ 1š‡•jßÐøÊË5/¯y¹R¸ûÒ¸,æÜ[ß[#é 8qx›Ù+eõ¼áˆ½;ccchŪ+V¶6†zOâ´¥íɼ‹ØxЦ +Íð¶b@ÓÌÃaÜC_Àî0tí¢«¤Kz5'ìV-熣-Øf£Ur;δÏÙ¶Âå +—W¸çƒsvyÇûÞ͉R´Æ1±¼ïˆ*¶æ’ˆq\ÇiÇ"6¨ØÅs\ÑÁó0XªAmcÄÚ{™¸ÜÛ¿_yÏaÕ_8yÇÒ¸CñI—¥Ñ >£Æ€Á†µ˜áVØ%Ù¶sXkb]ëñ:ÙöhüÑâÀó0ҪÂ…J¼aF1åÔ"æÃnxW㣠+?LúbùoWHÄ,͆öª°ÔIJ&–iË¿·ÌA#ÆkÁ€®€K6¼kN½RVÏY¼Wá=§«®XuzÀ=ç=‰ÓÖæ8Ýž­§¯`&- 9Ë·€‚•ÜŽúû¹A«p÷oa]¼ó/V<ŒÊÐQÛ äƒØæ´Åš6®iã´1m•£wfÙ25ïë{!ÞÎ^­‰uM¬Çˆ÷(üXÄPfG%ƒ=F>àí7•@ÌÒØo•äöË&¹mÂûœBxüÌ €uŽà#d™T6¾ÕIË\‚–I[ææEö³èÏ­žžž’˜kb¾ôÜ°e‡DÃîoH ×!Äͧ½‰¿µÆpYqnŽ7‡Jb]‡vTÙŽ®R°JÅ*}]#oµéÛwÖáƳ»¶p=ë*” `)†¥mBk“€i†³)`Ho +¨ã8oàÖ>ûÐwxÊúx„÷ÎÆkçç´»Æ8‰†Ö Ñ:^ÓÁË<ÅÊ:[”©Cêâ掖ööï·¾- ü ˜hP­p+Ÿúîª/X«d!Í’f1”°6N»$¿þûã¿À4}ó÷Er¢Ìß~Éúùë%?õ5?êòúû_•ìÒ¢ƒRÒ+äúÉ%“› _$“%¦/³˜Ö^ÞÞa)Ú‰bùwú+Åøëw)YûöãËëë“®_M¿dyG©Åò:kÄáòçÓfŠÎLüBªÎÞoV~´YÅ·Ï2VŸeú,ýýÏ2b)Znºýè­ø™ØĽ[ÑßÍzqŒ:¹M\l§A¯s|Oã1âv_QŠj€4æÄ|jùx-o—vÌÃÏB)ÄfF¬Mˆ[´kYŸgÒ¼e¯8“†— â-YÓrʼn9Ì××î®Øp+ù+ƒõ=·ÆÙÏÞÝ•TRèKI,5±ôˆ å=Ѿp9:RûćÉ`œ‰Ã!Eœ44ßæ¯Odc«µă?€Ø2%¶M¯ž9s»ñlH ç +œT"…»„ðò—C$ H¦1«‹6ò÷®ð–¬imŒ#v5±†’iºb‹6«“¸Ý,á³çÄ8Š®IºK>|»=ãLâõ¡÷…¼Rñʈ¶€"RŠí|Àmá<×ÜoGÛ§#öwÞÖH†4E‡¤±RTä +ÄÍŒç +¸ÉÌc¦Äí<ÞCã1W´}Ì|ê5ÌQ…»þÚ†Ô.Ùð:G%•Ô×XJb©‰¥G\\$ƒ/WÏsh ÖäS¤›»n Úµ¬M'J¦é„ƒéŠæ¨Ý†×ÚÁôÅë¿LâµÑ—í²Fábƒ5‰¥ –ŠX†ˆÑ;Þ‡×(9âtºâÌbdGÀ4JÈh«£[cudkŒy·¥-Z«„qÔm–`P´€Ý7*©¤~Ë‘’Xjb¹t6D‘mƒÄK~>Á´Áé 6q6RŠM7œ ò›å¯RTƒä¼†"I8‰÷$Ûq8Mïf;÷ÛÙØQ§Í2%n{wm¿6m@Ú6¸-Œ— xãí·¨¤’B—XJb©‰¥G\4‹A—öò,®@ê¿â<×j•‡£ÅÛpwnŽs;?1Cœ \×'’!MÑá‹·dMsß‘Ø2Ú"^r|Í仢éã¯]¢x[/ÝÄ'²Ñ7Ò­pÅ Æû»‚£#µ±ß„Ž“Çx®Ü ‘Blj¼Vá[´kÕ}ÿ²*±èî»nCâóZz@FJ¦™[LœY=swò)øÔˇQïM —â…,·zÄ7ÞÄá¹kêï ¨ Fl•†4E‡CŒ—j€SGÌ!’„°ûvþÎ 1+à| §1"1Tgû; :&ñÚÐwIÃ5ú‰ÛÜRKE,—Íå_¸ ó/`þžÄ»«KŽœ>Œ×àá\–lx±xKÖ¸ÝsbË›ÎQt¦Õ~Ìj›Û>Þ.'‰Ïζog‹bÓ[Юe}ïB9pÒต-S⦇wÑxÌí. “hΓqÍÆs´|ÀJ3<ßÂeGGjcŸø‹cË)Ŷ+ηÁŽS%ÝýŽÛ81Ÿzc”÷Ìalÿ†H‚âøOcñž„5ebÍH¸ ¶y jȯÿþøO§×²|Ÿ¥yýýñ’öó×K~îk~Øåõ÷¿Jü›­O³Öª«Ôëç—Ìô‡° _$“5¦/-±µ—·wXŠvRcùwú;%ËýöÝâÇë'•¿dyG©Æò:³r¸ü©¶j~–‘˜ù}þFï?N‰$†t›xékˆ‹Ž²ÛŒçO%Í3Ž¢±Ì3qJb]ƒx‹­Z°JÁ*«|°67*“õÜŸ8-YµfÕž¶uóv¯«xÝ;ï½æIÃ|+Ü$^­îíÄ_ë…æ´ +úÐx²Ã3aŽÛ±®+y]Íë.Šµe˜¡ÉËžœãfú°¯à%D®NQ P‹¯El–i›öîYãÝwr™Ã\sEÌqûC›<¸pã(dØ ÎàVKmÜÚÏ'ñÄpG`»)+üÎÀîH§h·ø¹õi¥¤•šVz´u1Ä$ÓjWÒ1—Ô]F ·˜O}w^qŽ¼ÕæÂx×w8ÑvoÃxÄÑAºC¡–2ÜÐá xÄ€1}è±ñµ¦†wlöw¬þƒ7tp˃ƒ!N¡Å$Æò0 #Їƒ2ÜÀ‰ Ä6ÅÕŽˆ7‰K…µ ÖŠX/ýÅ,v^ÌýIKb­‰µ§q½˜GnŽ;‹Î¬s]:CñˆÁ’- %±®A»–µC:´3ðI¡ÊŽOÎq3ÅÞi¹¤åš–»´ß»°C9‚S"‰á¡mò»9B̼×xoâÒ\sEÌ—~?Ã;1à*0Þà.˜¨-\ ãMÜéßµE[q,³}woßѾ¬³}-¶pñ+Ö§ÐÒøÊëJ^W󺎾/­›Üàw6Cë +\WáºKwØÐ’ð~ƒ«:xqg0YϱK¬%±ÖÄÚ#.Ü=mË=‡ÆfûËCJb©‰eÆ#ÄO¥1±LÝÝœ-·ó8Zb#ýt;Ž+ðˆáʦ€c£VØWÇ›ÄeÙÔ‚X+b-ˆ[eSÜlŠÖ¹ëTâICj[QÛ†-|“x-o3Ô¦¶®£í(k‡tȹOT‡áÂ Ç p)ÆÉ‘·ùí=ÿ×àÝý q +͉; uÎ DŒWÜñ\7ypÄb”¢š&ñV®(ó˜ b®ˆù2ÇpÛ­£% ‡Ï,~@Ãtb<ÿÂe`ÃL‰$†Ôº”ÒJâùgÃü4y³+šÄï)Á%1×Ä|yd_Ãê€[Ž80YÏ-G|LÝ0ñ­©+ÒcxI¨'™:8bŽ‘4¤Ð%Îâ^âmékçÍÑÚÎGK5¸ Ë X´âïõ´Íh7Ýqçe´Ûe„×tÖ)ÍðTk?§îìgðúâeÞæÖÞ$>Þæ@L¶{írqÓâ±»%›a'8®ÀéìsFX$mÑü+6PÐØH5›âjâØÍ-ˆµ"ÖŒ;çpËGk—§¾gþžñhõKÀ®wsÃ]¢bgcWc-‰µ&Öu»‚ØUÄn@c¼¬Üy1’†º÷îŽ!Þ§ÙЀŽÀ¹BÃ܇›ùp@m±¦ o+ŸÓ¶ß´é܃ûýáÔv½¶X¹×}9Zb#HÞ•¹éì~unH¬s[·@Ä!PЇ–É¡xšú&¯ø{×Åfòn:sh;YÌœÍÎþ®1—Ä\óC5†kÁbfWì¾;Ê à‚˜+b.4nE…Øù’kíŽ+¯+y]Íë.÷›Ú–v9ØX'ÚlàcAkóÿ +ùåßÿK&¤åÛâÉ›4ÿ%?ë篗üØ×ü¬Ëë•3ºá4ÏI)„\?º4=+7šðñÅôßYŠéEn;Ö^ÞÞa³¢“Ë¿ÓŸ™‡ðúÝüãñíÇ—××']¿š~ÉòŽRŒåu‰ÃåϧñáiCÙܽÓ>™¿Öw­ÉNJ‰ß„=šé¦mjML·a˜ôXêÆ@ÆiWÝÃd<0œñž—¨â(œ<©·—ÅVÀµÂ®v°QÎ1[ÂúÛ–8â Æ)ÿ¤·vgo×\ñ,qÝ9tŸ€% Œ£°8%MâÀïå’K`®¹î×˱”hw 4KÀ ^¬¡Yn5«§ó‡ãa4`±J!¤nßÊáM'¾› ÝZ?M¤¡cÙ!²&vWòó·\#Ãv¯Cøü$ӳ㳥ÿÙ/ƒä8nŠîsŠ¹€@p#øY&•ï_ŽF#±“¦»»Ütñ{ek4Óz‚>þÿHº]zæ.FE¢¬?qc‹—¸±Á ‹WÚ­~:—õ†6¥r­”%_ÀŽÁ:0œÃžW,ŽHrèÔÊÉR*’á +»X]¶ÂHËV.¤õ„;íÂXk¬ `ÝŒæ¿p†ëxÀ—Ó¯r"UY>ÍÒŽŠ¡‰Üm³ìLdgPÚE‚Å;6Ñœª¨Ã53¸嬳•u´ëB¹~W;¸ '-®,q¥Å¿r©>‰7ÃxšùâC¹ÖŽëžÑÔÐŒfiŒr.ik»¼6áSŒVܸؕÓgŒe´Z‰W|à&ŒV|àšž£"±ck·Én9¸…CÓ¯d&)Ùp€Ñ,MC"É¡£áÉNs'‘gcE,Üʼn5]ͳàLîÞ ¶zor\~üaŽ7ü.°6ÀºÖ=ÀV? P{­!­Ï8a,Kƒs8`¤KH9‘ª¬k÷´ekp¥Á•®|⾌àÂ-Ž±¼.ÙR¡¶NZ`YËmCËþ»Ç¾Óá +;š$ÀÒ­~W;bˆ‡Õ{áþ粨q\'ŽÑæ WwJ}g +a0ðá:ÉýB‰ÖÏà€á$×€±.80ýjL”¼¬÷³)õ‹¶pÊFnÜ)”ðÀH!™ŠyÂñßpÏæ·³Uîq´}jèó&’ÖÕ0Ý6\±úé<<.N¬ìž‰£mÞÚëX·€›¹ï~ümד” 4a¸+MÊõ§h÷ÃÑvzD¼£æ‹×ЀúÃÕήûmaf©>‰×§t_4wbT$vn²>‰Æpu­=ZZ•DH›GÑ<ÀPaÕ! +ã8„†û{6Õ°³þîQþ¼x€Ãs4´Ì°úé\€€/ Ö0ÖU„6]¸…Ó`”sIàxxÂk5âÜ £Õ6rãNI›ÐÒ°©cM6×EcÇY´ëÞ Œv)×ïêV´íÄ]¶sí +.‰¥$²äëö{ð²ëÄ8.€ãð Ý›h +†;/<Õ'ñzÄ]‚øqÜëîÁõ)˜kÐ#à€ÁL îÐsa¸ÚwÈ6a°•Ã›ð¥áÁV6rcª>hÁlÕ%Ü6§©>ïO +w GJ1¦†¸ž"±®#ßþþí‹ É×Å)³¿½þµ>ì÷?¾Öç~«»}ûóŸÅ_ÏŸ¡_÷:,f¡ÏÔ/áþ+ +çÏ/î×ÄÛ,î_Þ?nïŸäáþƒÿÞKåð|µ~ÎßßþøÿóIϯî?äñ‰vÿ×Y×_ï¯õPÈYÄ'$)»’I.ëÄSZ~½vÅꛀfÉ‚#©oñJ¦lÞ!>OÇm°ZCl bÛ¬ÙHÕÎŒ5h Ô;ÄGy×hºDw¶‰4ZÇÕ¦œíg/J|b1,B9•žŸ¡†í¾ùöh«l©Ä0Z ïž;á5f+%Ô6:ºBn7Œ,—n.oٮᾎ-àÅ׃1qx¢XSfr®‡ÔO3±Ñ.ž‰U)‰ö*Ù„ÄÊ…¼ÄíÓÂZb[Ûq“!;£ø‘Sëª(¤ž‡{ð‰ª°LbÖ«3CUˆK— p;% |¡æ{õÉK·°]Ç#Yðî¦Í7cñ2Ï&ðTQ2eóNxœ§ŠÖÚ¬!¶±5ÄÝò•XF‹¢ÁÝsjô›P­Ä3adÁ‘ˆ-°:ñÕ.‡+'òT¿=îÞhXw…òËXÖ)—Æ`ó…“/^žh™¬ÌäÌ£‰ò¾ˆE µÀ£SR®Ë‰CìN–Kׇ«˜·ZÚlœ²‘Ëèù><û[‡—spU"RÏÃEq&±‘ª÷΢‰K Ì£»ÏÑ­{¦å€)‡×$°º%’=€pqŒwgà&1^IÃËåë:_$2es½xmÞYCl bkˆ»‰'F)èvYÓ–X—Äú3g¬läÆÃ/Ðà ¨?c<;ƳŠÌT·¯³ySãy1ØõuØò·ÎZZ[ÒÚÖh›ß¡¾=6¼qÁ?xsZ75'Ë¥kjñ°âÆ|D x1§A©hˆ⣼³Ýp/ddpÛ†wÑAùÞ|58e•G¾Õ¾–âP¯Z7ùö÷o_LIůK©}{ùk}Öï|­ýVŸuûöç?ÿiØÅC}´–Jt1 }þé +ß©?ùã‹Róöm÷/I·÷Oòp§xü{ÿ5›W›·/ŸÔþçOþÆãÿuH’o-ø™kýcªSÔzŽM!”Hžu¸Ùie ,·­]9õ@pr÷Ø#žo_Ä3E¿—Wb©ºÉFŸ×YgüÑ aflµmqõÃ-bm‰uI¬[ÄËî²gÆßë.p^QÛ—pˆ•EËÛ^1O£-Lœs'¤§Ü<¸Z˜ Bâ© ¹šWHÑz™…íÿñQ¿L§Ì;8gL¬­tµHžµŸÀÒËXZà8®Èk4 Ýci§:çNx4Æ[â¸$Ž·CÆf ±-ˆm±²[êéø ïðùf&);ÎŽylnëë 1\Ü™Pá^˜²²áÍï…«ÅœXwœwÖÛ’Ø~Š<\ÞiLd’†wŠO;¼䙢ïغyˆáòÐÙÔHCêm™¼ZȵwJ‰ä¹wŒòÇ€¥–%°4æñi¢XD$\(&]‹†Ýˇ²‘WÄ™uíPœ1š±iÐ +Ú9즌Žìäî@e1žáˆáN%Do»T1Þ+”,÷ÎÑ­m×1ÚÕp¡ +Úõâ ãŽEÛ¡k‰mIl[óm”ÝH~¹ í¢<·ç5¶NYˆ-õJÐAÞá—ZcòÀº&õ=¡>êM!ê'1? ¾,X—ÿ¼1¿Ó¾¿|ûüäþímâ÷×?‘ÿ?ƒðñ%7ðÿC÷LѹãSnûðô¬FZ D 7cÀ2ïÌ5lÖŠÄ{jÅ®ùŽUÀ¡ t{ÄÓã‰oñ.âŸA ud#.!áÄ]µaÊÌy“X[b]ëqã;‰õ3ÖI´çÅñ(ïmÃÖ¸`Ÿ¬¯£½ÿ¬ÎöYÕΫjù<8#qºdN£_¶jéÈ“¬3‰,¯,xå6“ÈéŠ{¾‘Oé2.¡*”Á±›wEU*˜âéÍòÈ.œNÇN`-ªÂ¬Ü Ìât½'”±°¶ÀÜ«˜<‘f¬Bb]ëÄŒó©"!±(H)‰ˆ…˜K¸y×s·|ÇRÂBŸoóò•Í| ’Ž8c¯@ÀÖ‚Ãô“øbA‡ºÛõ2¯o4Ä–(A\@[ÙμçT1ðÊÀ+ ^ù1áH…€E" ïeÝ i!)9Pµú~sÚµ°GT çÓý÷çNåT›† ¨U66mrº§ûn>ý6ôr¶?üäÙ–Î#Ò] R °Æ­’v¯yEqÛMl§é ðe,„`}ór„Gºñ²28FMb žTð ñT—ø@i'X€´é&±ŽÄº$Ö-â¥ÏÜæ’KÖ/Ø'Ôpý¦²à|þÀV@m"5.ãÁùbN*ÚéEígnéºpÂîãÖ¢ ûq ñÌK`G|º§³¶|ñœpñ¬Z¦'[¼|ñ‘ÏŒz[ræD{—Ð)Ò¹±ôë.˜ñ%½"q>kƒ†Ø6‰e$–%±l“Ÿ$~üuW#*(×Ó›Û›×ÐKM¤Šf`f”ˆ8aJ§»@òÍ8_ÛtmñaªØËûqæ›Î‹Lñô6`Þå󉄪(@:‘:ë’X·ˆ—½bZÓ+qÜÛθ°D:¦½¼><3Ýhã„š|»”´xHK?I¤õÇýò«: ñãu)ÐÔ^^ÿÒ?ì·ß¿ôÏýÚ?ìöõ¿ÿuéë} +ýT(‹ÖǼÜÇÎýŽx}âè)ÜŸàB·oï(`åþƒÿÞÇ®æï¯ö÷Ù·o<þþIߟÝÈãã,ï¤íöçb2ÈwÑigpvœ>ógd¨Ht2í‘•°ŸæîyˆïK"- >`©’ð‘E"›*RÅF¾Tfw@mAOˆ'›Ú ñ“6aÚ<¼5h·"V­ø EH!@‘ˆv/ë醖‹ÖÁzu¯CZ]ÐêT¼e»:–à|n–­gŒ¸l#NXÒL1Ø»+:…ÆÍýøZI.-pén8^ÒVž«Ñf[…þuö‘qèÂeR›Z -øzóí­Ì=‘"X r¦Ð¨ý«½£?sÈ%Ôp3 ³@CS›$žij2Ë‚Xfˆ ¡oŸH×™qºäHx"¥S…‰Òy/ï +í0õIÚÇ_öcœ oÐtf¨H™ˆ½5¶¶u‡z0KØ~h§†‡{èsë^}˜A…·g,#±,‰ekÆGz±T«QÉÜ+‰Õñî.ÄVâ& NÛågz¼kqèx±€j˜tŸ;wÄÎ5 @ÀWäMx×å#–‚øð/Ñ\>œÎ$²UµZýô‰vÏ7TDºs#_Uc¯`-tᣀm7°}ˆ¥Kx¦[:nÔ‘år!@‘ êhï„O¶ˆ„¦Ö* Ë¶†/sÒ±; ¶ÀÕ OúÚŒ†ŸÝ:övz80œ±€j¼»¯ÊøØ ¨“ç‘qB«HwR¸NÜIOÆÝØãu Ö±ÄQO¨Š|›—ÎÜL­„—ÇL1º<#b^ómbñÐe[ÅÏïpè (Ãàj“ž)@sà å@›ÚñÃ¥—¸´9Ü„1—k¼Ú<:èp÷I·n¿mZ¾tËì¨i·}çÜÙa,µÿoµwܶ§’"]'ó‡tÛ&È@ZÃù^--²…q¾Äj ÕÃè‚‘*1¸U@—m _G™Ž!¶ +ýëlÚCÀÞN_¸‰• !g"vÔXÄCú{LbX¯³ˆÓU öÚ0¨ÃŒy$æ%1ï›ñ\pÄÄ©‚#ÝÖIq0Ö¨\>_huA«O Í€zÞܶI5Ìl› IJ – â\§F.Z6mÒÒnÚUýîUo4[¸3æmºEëŽ æž©Ö³óø¨…ÄMû½ñƒ¸ôìÿúå×Æý<µÇë" ­¾¼þ¥Øo¿éŸûµØíë/þ~¯f)`b¼˜†`}LÃñþ‹p¯ˆ¯Oý1ûÓ\èöí¬Ü1ÿÞOé¿Û·W_Þ÷øöÇãïŸôýÙý‡<Þ1Nãñ¸O‰ÛíÏ™=×vŸ ƒµÈ>Wª+¯T×À>7þš¼ë¯)àÒýuâ7ÔÇkêÛðÏÿúÿ×ÂÝfhÕ뉤øv0­Íõ­ØÏ¥öÖ¿‡KDü–­Nø¤éwÞ‰ZE}kQ¶Ô°âó¼âóŸ[ö#ú©e®ë¤åÅÐ÷°¾¼ccÓ¦xÃMãFàTødݺiÔTCâW=ÈH,Kb¹½gJP«yÕô›ÊÅØ°jäbWÔ®Ýwšm“xZ»kÄCïž$~tû±m =Ø´XË£c©µŸ*¡*ï:Ðê‚V?äÖ `©ÛŠÐ‘X—ĺxÆ‰ß .Z¿ù‚¥óÝKç+ÀãÊñ€Ë \¾m‡†R'q¡ñjµÀÔž¶ˆÏÒþ#âÄÚÙÚ=r¶ùìH8˜ñ!±wº‘Ä ¶.›4¬5±n‰µ§áÊçª/dû]Õ_ã»—¾ÆÖfrôäÝùÝrâ}wm ö÷DIÏ.?౿N@Ùñfì™|dšqNå5ìOžñAÞ¦±e¦sKGY»6<¦†6m&±ôTWûÍlXB$‹®%ß‚8ÊÚì=F1µNÐåàqÔRAKjäÒ@N r}áÝñ°/Õž¦Ú`¤)7Åp˜õó«s’t+VüâÝPó•IByþ/„š5lYÃÒ©7õlµbÕ «ÌV‚'vÒ+cÓhT‚e2ËöÙ§„}J|ØyÛõoÛR |K¿_Ĉ±°šA™œ|93¥˜{ó}¤úºÃâm[°:2çZ´œ¯x- Öº3gÙÃT £Y„S2u§/]-c®ˆyCÌ#2¶@ê­]FÆœEßl¿d,5±l‰ey¦Œ-«YÞŒñÌMÇÔìðÄ\󖘟JŒU€àœ P.ó±?c­‰uK¬½W¹]Ih«®ZxïÝàóJ!YŽ*ðt ˜Ñ“w¡¹yWìmBŽÏ'þÝ °·}ŸOœåàO¿ñfº›'Oìk`odý—|û#Er!ßÿ^^˜’¿ýý{yÖŸ}/ýYžµüüûßÕeÉ·';§¶™EÙøû,²_? »ôë—ìï£X+­Ò‡åí žÌ¯@÷ÿ®Rœÿ+ego/¿ÿüö ÷_Öâþ†z÷ŸË„8-ÿlúlyG.S%Prå¡Wî³²~WµA{EÿÔqk¾Ü6#M9ugüØy”·¥ˆP ÕŠðÙÒÞÞÑi-Zñê†W—~kY{–©ã³1±gái87:®6ÊÛѯT¬²a•¥§_6&9vg;|'|6Ûíõ82Ûöõ(NÁô+!“XÊ-ȇ="J<³­ÀyDŽ`É Ö|\^}ºŠÐšW·¼ºò‰P‡ qXú>Á¦¥‹JŸø2©çE¿»ígñÄöE¯MgûØ»á¼;ó¹€~LÆ×®]'ð–Ɇ9­çÆSb¨]¾@ÆsV)³u G P^†W‚%2ZIËä¾xóÔ0’E°iÊ ®2c˜¶—pCnŽ–Ñî À„C›±x£¸qÃU暘·Ä¼<±÷`Uv,CƒÊc0û…kl7â¾v‡O¢>ñÈ„÷úd¢¤Ö0³yö[kB+bÝëâº}‡sD³ß¨ÄNZª¸šG¤[X4ç;«O$ÆSD»[g‡·ÎNÞ:ñk±, ûÕD'5†*åˤV=ãìP”àãnÛ™ß$i;lžL]_·×ñ]½Í·¥„+Ãõ3qºª‚Ïžq­b®ˆyCÌË+%Ž“}Ým''0ŒfÅe´Ù†DÑkÓÁ>¦;ì¹ç_@™ÄÒéž;ñžk:Jì¨éˆãU¹u¯åƒÄÕ~¦áõÂ|*ð­íHÇ‚á*\ srÄ9)ŽEÚ²pÖ ž·qµ*´"Ö ±.}UœxÁ W×€Ž"À»ùpìªa¸ +÷Õ0¢ßò¡Oo7SブkZÞÒr—vjjÀl\¡Œ·+£µlAæ [ÞÐíT!ÈZx<­8GnÀǦ›#™öJ®Áˆ®7À[HʲÁi½xYát=…N?,jsEÌb®ˆÛ¦æÒ pépŠ™0‰¥Óµû;««ï`ÁÂ9/£•3°Û®®ã³ùuëú|™Ì`Ékfô]MjbÙKx›#Ä{µ­CUJÎh6,Á!Ù0\0³iÊ©«ˆaâ^mšðËX°¸@ÑkSó¶àó7.¯§ÑS=øÑ`ÖÕƒ‘Tá…²Ð}WåílÜP½Œ~YoŲ•WTƒCº=}Ü Œù´\ááìP¬!"Ua”¹âi)ÎÐ +ºDE:0¡Î ¨àÅk¹œ…8§V»˜tÅeò‘ûóÕšW·¼Ú›ou êá~q½È¥– +¨>x(-Ú¢ˆ,/ðÚ¯‹×·á᳿x#Ä{‹·ÊØ3öÙëغªÐŠX7ĺôU!ÞCµˆÛÖ!ETïùªgßCqW ó‹åcj@ó_058 + +–S¢è¥Ñ'g)w®B!ÖfŸ ‡‰OWoAˆÊR ÷a”µC:tZ´Hñ ¸˜à€b‚ÓzT4¼ìþ!ݹ <$à×ȵ¢ƒÝ“mÖx'žlñ¶oý’®5±n‰µ7ßí¾LxgßpÜ7„]5Øa5ØÙj™ÄÒSíáÑ#È(n̸ª:\ó–˜—gV§h™œ#،ٌ4åÔ%žqÏ'†x_¤AÀCPówµ;¿ñ<¢]Î%±æjJì¤ßËL‰™[¶ú‚6síC þpú¦Aùg¢—Áî +N·î{z/›8ãˆÔrŠvw¯¡Y·ÅÄkNÃx÷¢*lÆâ9ŽÏ+>#"~š&Ñ“©;=4j^®xyÃËòå$E Apb0˜½_Ë{kã®VÕ°h]@;3œ‚y˜s¤äÓZÓ"9®h}¦Ëc—ßþ(6’¢Ýÿ.™ìöñ|û^öç_ßËs–‡-?ÿþwóÝE2Î÷zâ¥,I=‰òï“ÈnýìÒ¯_²¿bý­ìW™áÛJ`ø•âþßõCI¿ÿu}ÛýÕ·ßóöóúüû«ëAÜ.ãá´üóŸµöÑÖ/ÑÝ?çk=úžùlå²Måc}NzEƒLªöœÑJ…*TéŽvuK1îNvâ32Ù ¸,&‡qu æçÈ90vÀ4û”%RghÝB±ÇØÅeâ(Öí‡=pMË[Z^žYPJ܇”c—ø¡J5uéPü·°•W iÎÎ$–Äêv‡g\Í .«$žù£ ¾£ÞA8}×ðÜ=9“ÍÁ…ðíÓ­XYH]Ò5a¯—ÆœKñµfRœbÀ#yñÍ °è„H9ù†.I —mx ÇÙ(:nO +¸£–Ö¢ML)1R^àŸHDÎ{á +_yM¼×éëÁèì—Ar7…÷9Å\ $°Î|„,ÿT6¾ÕOY‘ÃN5Bv ©jHZÙÏô|‚Þ{ IQ¦«‘½l[eÀWyÝÑ&Ð<ηçÌa,†k¾qŠN,!p{Nõ.Ž •«ã_·”m$ÕdPLÆýñ>y뼌×Ïs{§šÛpVUÞ~ÆÜó˜'fÌZ¡ Z ’KÃèŽö~öðb‹%†xK¾­óò²xîÛÛ{Ü€»Ÿ( hÁÝ÷ÅÊH®(mgÄKå‹îxj—{X>Âòh×Ö:o¨]Ãæewwô1wÄ| æ)bÑ1ðSîð™Í× ˜Œ‹ï}.3”âÅÅâ¦#ªPå1ŠŠ`6N±öŒHÒv²óî-›BFöF‹—‡{.†«¼îhã]-ÓÈÆËöÜ|?ç}‡4Þ]ÉÄ„hÞÝtWyr{Žçaw-kÛ1#·Þ¬º"V–ÆxŽ­± +pm_󥊯ØÊX+Ô@®ÆjP¹:|ÇÇʹP}§ñµ÷ŒÛämòB2C)ú>V&ªPeheñÖ,^Ç3ßPæ ¹½SÍu‡UãíWŽ;b>sGìö‡pÄmိn'^ +ÙKãUý÷*¯ÛÚ|™8Ž K. ¨ãL.=q9—Ñ|»ßcr¯³úý,µ˜K^ƒøgá¦Ç{ºpîSQª ";O7¼¼jÈ~ƒÍ7’t¹ ð¸NJO+GZÑ®ô16¤âdÅÝ|,X§)ëÎE[e¹±Ò,ÒAïÂŒ—h\›|+[ GJµx‚x!¨Ë±ôJÅ$£˜{b>ócÅKØ rurã–¢7c¡)e—x½±=UÐÚD4b¶ªn Þâl3a÷_'QÓpqÓî†KN‚´à8îîÓ((ƒUïBºçŒ£©‚5µo¡¯¿©Æ‡„¤ +"âeÇU9 -bN îª +j(ùFë—ñ²95OËnýY!áEöÀÕ…i(_éYåÈ*#ù.=Aãçö$|QCJÙ:â^×>þøó—_k{HJ¯¯ Aýñú·ö°ß~ÿÖžû½=ìñý¿ÓP(‰_—9#×Ã4äíÿÏðåa,ÿü`h¯Óxù1µ@K¿?Ѫ{«<ø÷Ÿ/¿§`~{,¥¿ßþú÷·'½ýôò%¯Ÿè§ñú÷ö 6ÂÿôWÚ4= ++˜éýÝ“ žóîß³VÄ`œØðïœëÜ~ƒ}»¶*bÝ‘ÀÚV°ZMxxä÷S‚ø°B°Œ–mR»3Ëö¬v ”šõ½ß²=Ù¬´´œqåp¿ôgc¨Ùœ ¯(V o¡V®t³“}Ú]#doÕÖ÷™–.Ó$°B¶5&Öú‚BUÏy¯úîÆ=㪠µ–8…—ÛÑ‚²¹¡¯Z´œ ¡ãb÷\´—ûÉ«ç+t»2Ï¢ÙX¼ëQcT†\Û;8ˆ3¤Æ¨Þ¢ÝP»‚ +Zí<‚»BF=0éq©=©Ýp 2$ÍçQÜOJâ=€£¥[4àx‘Œ][»Ü N‹úR ‡ëZ ˆÕ°ôÀr–ðÊSHHÙ¹„n–ÊlªØûõç`Š)Å‘®)TEG +W­a0Ù§š$e@òrbèÊ+ˆSûW‰Q{YÛg­žkvOÇ‘W¸ò˜ÈJ€x>Ü[¶^ u±EëcÑ,7ÞÕ­IΈÞÓ!J\Àef‘ò"œý†. çÝaœ;ܹ0ΞýV¶Z6›ÃB9äÚÞÃAä@¨›÷êh]%(H ¤Ö¥5ß°ôÀr–p·“À¯[~®dçV»™rYJu‡K—a÷—q+ Á09žð†Ê=*Q¹C=]±Ëcý®éô ×sS+t~I¬Ú±¥í¸”Ô8Õ[¶;s"öBø²?œÛîÒf(YÏ ï[ƒ$cW;&<' 8š†£¹µ'á°ëLÉsÖË>¬nß tV„.2('¯ó¬^—Êl 5›S¯Ša¸kO6Êpö‹*p¸4fC(¶xeV¥ßxÕ¡ÑfáâµÉhÁV Š½ßÂQ‡K\F8;£ +X‡xíHWäÐõ°Mr,8—@N€xîhÝ€©ç¥#/]ðgs´hfmŸ¶znðä„g€¥–°L(x$‰éîL+O8A%tN¸-!÷do¯’j ÞméÂÙW¶º;èj8Z÷aS¨ê¹ÄU8ƒ½:[wÙ P7Kw+*hmë¥ï°2”¼]¶Ÿ¸ q- ¢_á¶1Ü +X¡ó¥ëúÎô„ÏÜleA‹×(Qò&¼Þƒ©Ã¥.=ƬþJHœww…7g¸”‹VÎ$1»)·CÃOz0%@<¹;*B‚¡7àí/wJ_ á™2 9Àw›.µ'¡—Æ?q§Óø¼>èEàŸøÚ–¡¦¯Iæ =g¸c‡k“X@ zÕá~fmŸ¶z^Î:‡˜žqé€å,q¡,MÈuóp¯ÒzÒ­ ’ËùåvGé²2”¼ýZèfáò"×ö>¿„vè—:\:àÒc¨_S¨ê…Û +cX¶h +Rëù¢ÝQ·a&ï¶L Æ^˜m)dÏ°BçP<­ÝóûraG6á0ËƪPª{®­‘Â2gÈIó{–›'2 y]án575Fu—ì~ņ ¡Øö기‰‘²c +w+bñú µ'áÐɤ–#°<†¡¦—CM?J¨…æZ@D7_> 5,H äÕ†-þ$GEPIFÉëæ÷ +‰pz•œ ¡WÈîX•2mŸ¶z^Êötté€å,IÔöÞ«.°Bž;¬9׺™O—û0ÀœÚ·H9PÄsÖnרg¥#+=.íÚ³u!ØÅÆÆP³ jÃ,îvnº¾õ2”¼}º Ó8Z¸ *hµs7»çÂÒ¯$COW»änØpÕ”“Ž€¥–#°Œ€W&1×"º9‰WN8\+Tõ$¼bß®¢~”Á† ✠!I  . #5‡`î+Œ)’§ß›ÁrUZK wȈÞÓK\Àe*Ø +T1oÙM¸Ã¥—¸ô†[´›"Ô² {-ý^J`%(Ië—1ì2†HjˆWq²AÒ|žk&gÔ0ìÆÄ×¹™— L/Š°—ïÎqj©×2þòkÈ?Ò^—íÿåÇëßÚÃ~ûý[{î÷ö°Ç÷?þúWlÚÿÙ/ƒäXnˆîç}Á$’kÁG˜¥Þøþî¶þgy"+š%WJÚø«%Wë5”ÈL(?n,iÌnÚ®Úm5Ü?ˆ„üóE õ1ûK&a¾ýõSá|÷íßûçlµýí»ÛsÿýñõÛ;½½ºÿ’Çý4_·)I¾ýö·ÈÊ÷ØÏÄÒÊýùë¢Ý_SwMR_¦ÊÂω¯fŸRr{ŸO¦]¹-Üâ?$õˆW+çF,‰·'žÏ¸&KŽ†—TÁ£ÓuôPÎ*ÃÙN«áyq]§@à@VŠ§ßƒétö|5 +…!쬞®»b€ i¬XŠÅ¦8É#qö¼ö»Ù¼¬Ü(˜ž=ߥĕ,i>›¸×ÄÜ1ë«B©„rv;_êgíìË6,8 ÏYë€mlSÀLÚšäÇÙÄ—Ib´Ñfª,gïÚ¢¼ÀJ7 FÅ‚{©};Ó~ªÙݶÃ]2<÷>Ǥ"³zî.ìæðåÊzÍ«“‚'G<£à×ü«ôHM$–<Ú£7 }­ú"ÍëÂ둉)KŒCbë‰mOlCâEÒ•ZÛoPo¾+Ôð%e›…RœHß˔ɅX=ëÒlrÂ3i¦±îˆõ6¿Ù(&ï`»"±ÆL•ål3[µp©RªæmÜ ´/e0-\u”’¨Tç¼¼d #kPÙ5YÀEƒ+¼±R‰ùtâxxƾ‚ÛOÕkçÈøEUàÔô”ÈTÓ€tv²Ò—²2tÝØ“Æ=i.52¥”çíŒlwÆȬ¶°McW“¶§³Sp®8_KI˜ÝÖð# ´gÕ=«ÞÑM|R ¿ê'i `õo•I5¸aшe9Àõ]¸]kª¥œÕ%>,‡Ó¯6™*ËÙ¢X$a¼sBYHÙk“Ý|­'¶=±æ»Oä™ ¿“ÈY(µ!ãt°þ‹§˜ˆÓ T%§o7;ÉÍ ÒB²QLÞ|»ê;I;S}µãÕ¯NÌ°ð$ +)Å”ð—«hÉBòâmÑŒ¹–ƒÄÛN`(%/ẽ›L䙽³ØvÀ61b)Lõìƒs¡$Ðxñ$ h1g®Ù¬l$)xWÆQ=öýù|‰¥ +rÉBrOÌìá-×rx¶Å#–D1Šsg®"^»m0w )gw¶kÊï~ÓfxýMÓ‰3{›v‚“½4ßX©Ä|z¶-Lc'ÃKa™*ËÙjX¤]¼ê‹UrðŠzUJ^V\óÚ„ÉáT)Us[Ùµ¤‹–Áígš][8£?¾fdŒŠÁ± BUrÂPž‘e£˜< wÄ“ã!ÖŽXwÄ:#a.”$Ž‰/3c LÌÅ«“+Â"6`á ,O¿€ÇEHRr‰Ïˆ¹W‰ å¬nÌÞ¹ †›q +Åë•35©‰Ä’gjG‡;0´—Ž·HªW!.iÑ…½¢j`¥$*õô²¾ÒÅà΋X©ÄÌ8Ä€§fŠÕq<¹w3Às#ö÷Ž©:¾äÚ¥D¦š®ŸnX§¥Êéæð• ¥’%Í8Æ«‰)ËÄáf=±í‰mH¼j¾U)y5²3ÝØÃÆ=lý*úÊE ®½ƒ%X«L$–ªC{Ô N$Õèžô1aJ¡zÄWìÛuÿ81e™¨g/›_pÉsñæzTCÌéöóÜll$)äó„Ð}†Éñ>æôt¼Y(Eõh.™ö¼ºçÕÑ’­$VRöºÍ*[ØÏt…wˆ[PD±‡†•›4~·fëýWÿþ¯çÔÞ$>¾¯B¥¦íû¿¶7ûÏ/¿¶÷ý³½ÙíÏÿþñ·Þdí?í½,°í¦ÑŽƒÇ4j¸i¿úÇ‹êc÷—LÂ|ûë ¦ÂùþîÛ¿÷ÏÙ,ãí»ÛsÿýñõÛ;½½ºÿ’Çý4_·iK¾ý¶O|*¶ñk›„ÔËÇ’Ôöë¤Ïˆ/û’+iɧÏwaQá¸>'î’xÆñ_±RÕÍñ?ŒX;bÝëÌŒ›Y­ž*.§áH‰ÕQĪŒZJ\”‚DÅÙ:)‰bÏÕ®H\ï[Çq áWjìÑ}{§±p’2œíe‹X!ËÕ›íÕ qÓ¯yć{w8ÝÕ€ô —Èpn†×ƒ5 c5w›;­²s´éùŽ×ñÖ~¼>|µ­ƒk>Rñ’£åš‡ÄÓ[7êkS¼ŸÇÕð•Ì æÖ€SXZ„{ð`WÕ‡w&Š?‘”-ðûAQE9;(l bÏÈ.XÑPsFÅ‚ëd«tÛOW:bÙËm¼i*P±çdÐÎ6ßÕáT WÒ’ëÙWÛ—½Xˆ“”¡~­çµ=¯Ýúí¦>©àÇ_¾ô] ^¥ß…e²Ü -*P™„ó P5.”¥lQOkxTÚ§x]À9/ðÒÎóæf§EßÛvõmÃóÝ6V´ûé|Óˆ&¼2‰ffh¬Œb¿xÚEô¤mÓ€ ͤj}Ö{Þ¸ç·÷­aå²%´®#e³o¾44)FÅÂX×!V~ÿÞ,‰·'þÇ~µ$InëÀ½OÑ0L¬}„9‚—vx3÷x¬®® j¦P¤ž¤Â3›îúHªT*‘™¸vß´÷}Ó<Ķ±]Íqy®»5y½Ž©CLÄô6Öq@U„s7’w¯¸\g&H´Ïc•x²p>a¯;ÅYŠ8±S„›ºˆyg@%ݧ®²å1*´GÐ^ÿóÛïRÀŠÝ?gâûç_ÚÅþøóK»î×v±·¯ý»a#ÝôF ¼a‚LXºÝµßÿöÆ’Ý™¸½E Ä·3oLÜÿßî‘Sy| +†øqøýõãJw·¹ŸÑ3qÝ"yûû»ù–b·®U€¨Ðó-rö9ŸâœîܧØö…÷9y‚µ›lêÑÒ-½íòú9ÕùéT ¥ª»—Ì wˆyƒ˜'¦* +Éñ2Ý›” áP'6€9Ž]÷Ì-SÅUÅé3wÐ9‘ñ=O?MÃ'6tø½FÇ|¢¹5ÇÙVsaª¥mŸÊïÁ‰K ˜Õ< cx29œÎ}frh†Š:öáu:a(W#«@’~—ìb€Ìã.q(™OU¶#sÉ‘’¡V7ê®°‰ƒL^%^‘âˆu­] ‹{5ñ í^=¸ÜVHŠ—«á<ý’0¹Ü.¨ßˆU"Ç—P \JœÉ Ψ`Šq¼É‹çnŒ³ç{¾Ø'šŽÝ†¹ž"È ¬‡x¯?C»×Ó\í(&^û9A [^çü×w³pJ×ÜIfãP8­¼ó*Äbòm:€,Õãö6÷hóm¡=±ìIJ†œHvËä!|´L +d‡ÝÎ&ñÎÃÁÒ@ÆÕ±²Î¦/3ˆ_‡L€Rõ³|´ªÇÒi…¤èùÊë[Qb€ÌãTæ1oóñyÇk›ªƒô˜ÕÄ3´{õàv´Åd´w.Ò9 Ôb¯+úC¸Ôèh±ö8­½‰[Pœ*hM¿ºÚ¥Í‡¡uâ@ÎÆ(w™<Ù-g2y¯ïRªc_;‘á¹áª8âxý=šŠ3$f¹.ëº{˜tµ;OÏѧ¹/¹…”½.qÍ®ñS)"Ô¾AjÀT,Ÿ%„ZݱÞÀ‘f¨¨ž|¬j¤Šã6|l?Ú ×õ³ +Ù$’‚sn@ÙÛæV”p¼žŽcÎE²×$öâ½râB%gZ,ÐÞIš@µ^¾cüÔþJÃ$È<æ÷X"Ÿª„,Õ뼹Ǜ·xóˆß½71`V·C\‘w¢Ü®„no_*-Âq[R6§;Ü7¿=îÐm—!èáÇÛ;ÍÀ +yˆ÷|¡E°šÆ ç2…' ©…*<×·‚€){ü^R®U ’k-¸ ¿IŽïûœã +Ùĺ9ÊÅÕñ‚ήüpª Ÿ'ªB¨¶'Œ*"¶)ÕqÁ08UКÆh—±N +lèÈ÷šÎs°AX’$CÄ“¾q ÈÙmÀ šZ¬ ƒQÁf•âÖ¬©$OÂgØCÚ-े!‘«àµ²‚³Bi5øê,ÖÝòU×ÏJ»Rû™0ò ¶e ¾/¸Q +peࢮ„D¸Êq¼\3ä‚ÇK"gÅœ*hMžŸ†¸ç9wó—¹pª©HñtLV u—ºsoýx¦fþ—ü˜± Ž¶Ž_µíÿ¬mÂ@\]Ä VŠxC§ ‹SWº€‡ÚîH0é¸È¯uÊP$GZïâqlíÈ‚¨›º HIᦎ Ber +f×€¦_^ÙJ’ØɺóÒ¹ŸºÚ!®ÄufêÂu¶pµ˜“BÛ<..@½$fêoà ÙÜܸ‚ÞŸ/›› lÂ%&9žéðG7»¶u˜ÊŽ€ýG¤bŽÄq¤ÆÆ©‚Öä¡]Qá|‚As7¶uÒ#žOTÅí'qTmÉ ZÆ^HáÊO³OftñYĽ&æn:¿Âg(Y/öá½*fœø'ªçÅB ’òë¢î=6a¡ \qtRÏJ{VêX/_8„¦ìÍöèdsŠ ·T(˜ÝR¹˜ +’Í5áh®ïRÁaV×Ä$eaG³§U‡£¦û1ª¯$k9qì6`‘Œi¨À9Râ=¾û ûC-éê¾pj‰LÑjo­€IC¹Z¤cS2BvÛÎI´gÎ7œ"$‰ýß‹÷—Û ðO.·p·¦@òU¼ZSËöž©E„K:¡ Y›Ó-—$Žæ‚JiÜóž˜o/ŒŽ€2HŒÐzÄo¼ÔóÒž—:Þ!íûŽXe-`.‡Rƒ`ZÛØѤç•=¯ŒÔpjSӌى¹í¹#ŠèØ\–ŽXvÄr{0— ªe\~¦g|y.”ÑIæ5g¬ œ¯H,¨À9yÎvÔ×®ö‰¤ ˜/öáÓÎp©Á­@cº45Nl•™Á=4Žvà‹•ËU€ÅV2ŽûVävñ]t¦¸*Ô‚ã„[‡Xr%OÃ+‡Ó± ‚RwËY§x~iœék±R.ž"r‚dKˆcÍö¦ÈÔ$Ð’¼qq/`îˆyGÌ·‰pV‚Tj ¨‹7c¡fçç·ºÖ¤`GŒ¨©}ýÏo¿—ömsíçbŸ|üô‹½ê?¿Ø[¿Ú«n_ÿúwWZÅßÖ9qi»QÈ›¿7¼ÿ†l—Î÷oZjÛ(îß"°ýùí K ¼ólÿ½ÿ’ÝOí¹úíãÛ×oozûŽÊF±}m#âzû{—O2sûÜ ²Õ—¥íÈ.܆"í‚«ro…œ°"n&d+åuçkæYk 4ßjæIxõ|OUDµ;Á]º+,”zùÒu¼ïª°Z-›”>qáÎY.¶P.OÊö&kVaˆ­#¢;ã£*~B{æÝh% rŽ3ß`MBññìçx¯¯4`jβm²?BÛ­–;_éxeÇ+Sóµ‘'ŠÚtÌ=›ïÞ"f®\ß"$ dJyÌÒËžXn¯ æp3æ&P[wËeˆ%e(íú*A‰7=~Œ£N’=«[~V¬Ä”[3cÖ ÈcQL›ÛxñÞ×ØŠ"œ¹qmÐt‚xK²Å³!¿²ÍÙñGRE4sD()ËP“3~*Âm« 5¹ª8§cÓà ¢®*Hj/<ñ¨ã¥/ý˜°;ß9©›wë%t@ <˜É1žñå-¨H×&´tIJ#–âp›ÍÙØÞSÆó]Ç'¢KÜ*äêôŸo%!Íü:OáºA—¡H¤BÌŠ§ã7…&âyÄQÞ¦º»ë½æfÅ3‡­Ë7}:Ûžw.ß>q@ÿ¨m¢ +¯S,«' TÞ…¬¼×ˉ;Þw•žb††âFòzó§aIöt®n±\¯öÄ3¶Jj¯#ã€5;÷çŠÄ‚çš»&Ÿ§ŸÏáf§_²Z[£âšÚz³BHª^p¼ñRÏK{^Ìv§ÝÒÑ–m™Ñn- „ζ-9ßdUѹæ6ï>s]>¸Äsþà;šÅœº9wŠ"~Io(¶ih€a´ËZ '»Ù:'` 6G+Éñ‡óTqbˆ³qÍ6Î øuGçÔ¾} ^i¾’2”¦—ûï/¹iÕZN±ﮣ]mÀ5Uøût§³íÙ|»kn:Ûôƒl›Y{ï$í zo"@týáhsxª†›Nµùææêw½Ð|uÑ9I¾,fÔ1\#_éxeÇ+ãåjE’ðj{8Ó‚ã…F«« 3cúºxšÉgÎrùuñ«vJÖ9©×Ð~ÐN·ˆg´§æ†VP½¾Ÿ˜Él‚ÑÑpgÅ“[w}“àJj-qfÌÊö¦2ÖñBÄáú»f@‹b«D();q·äâ5‚’':Ðt@gš»Å#´¢©nÓ|㥞—ö¼ôó¼ûuÓYR†Ò®o˜'öµÆ@HmèjÓÄ—»ZÀÓ.šGp¨’%‡PF¾úîèx©ã¥/ýàuÑ€krûVÄsgÓƒóÝ.Êçó5Ÿg¼›ŽÄF'ÖË‚#\ÁÄ’ÚØØÖp¼à·t‰ÙÞT®¶áS}B€jËCg›$žq¶9Ÿð …sËîæ-X€šB/=;ÅÀÕ¦¦ë‘V+ðÒÜ[O¿¬T¯?9Î,ðr•¡©MË÷ú‹#p¼ƒ# §…#® +œpL¼S”ŒãF¼ÌŒ% øn¼¢WDë˜B¦Šz¹Ž;Þ÷ÜIñîЀ[K˜ y}âŒ6¼SÃœ?¸jçF VÙJ œ« šNt‰eˆ%Y—`t\mÛÔ#ѹK<çj.1Z'æâéø—z^ÚóÒm°u'*¢HÃ<œï¤"fæ+±ìˆe†¸ZÎÑDj,£aV|<X’ÙÍñJQ¼oélß g 5ã ¥ùþ³®½¿®Å[¼,)9‹wV:7?Š×1œ±56ÈÕ¦Ã*¾zÄÝX+¨^ïm'Š¢ZÍL—v§– +«™IqH“m[ íJ³Êá‘n +:ÂÚ©ÔíïOÔ@PPÇÛ¶Œâó‡fuZØ˶3h²ºIQ@D½¹®¨„xM=ÜŒÙNÀ&Éñ‡%=8\ã‰çÁ\-\?ã*˜\W[8ÜŒ8IŽÑ!$%Дôâùž´qB„ìáͶt¬eÇZ¦¶íAë9Ù‚Ú ¸m¡ôû?öË ¹‘›‡ÂûœBB‚¬s„9B–Ie3÷¯úÙRd³«7ûW·ŠÐx33öHòçפ +RÍÝƸ›öÜýÆ TÿÎØÏ8Ð’¶î·Qu7´b}Ÿl°ˆäfÃ|'„’ÝmñI<ÜÖO¿áÂå/)A.äµOâ‰.¢xÄán¸pÄœL³›G÷ûƒ:bZSGìn@&oƒÑ…÷ªû&­'­P 4hñ¢!^ñiXëéav$±³zÅ}Fb#¨Å¼±—wsYŒÑz1é0RHu Ñæ©gñ¼«rÚnÀó”8Ü•nð¯®Ø^ÌÏ5µC—F…*ñí7ÝCÜ©é.éˆeE,#‹#žÆ•!r ¬V% +ñö}4Q.Ð|l‘‘¡&ø°˜èp©Ã¥.}â¾M›Pi7ÒÙ)ÜUbŸ˜ Ô¼ú>%±T ‘oWœ©1 ”ÌÛ¹öTc;Tc! Š9)lyìÚwKühÙeÓÄ×w8Ë΀µÒ·Æ'j¬ +Rm»=WŠ÷*ìê+€L^LÜY±gÅ5+^¾®—G‘Æ‹àxÇF¼.€HÛè<÷F˜ãŒ`˜Ï¾Œ:ZìhqE‹Û´©€¯ïÝ Ò¡`pƒŒ Ún¿O5³.Þ†Wš¹ž uq†Ú¿¢`zú`-’m9_W¯[&ÜdŠ Y#µ…pÃOã@ñP 0J 7pÎ@‰½æpDw<Ò»Õ€µR}Ik{Mq¯‰ ‰Ã\ñ´åÌ`í +dq\`µØV‚=£iÚÍšür^D¶/µy<›hJz2ñAnà|Õ×¥=èTû¥7Äw;S[…R=3Ì»5™K:¡´djr¼Ív_ßñ¥¼ÔáÒ +—¶åýN…óRA r¡íÌ=+¯YyKÛ΃ÚÞ<ønˆG©›@$WÛVêYiÍJ—vN*‰ÎvÃîôõ{z`V/Í&ô/)ƒP={¿­ˆ‡\üÅBŽu¹P© Q XëéC÷«64[~»-âÿÃ-⑃³éNy¯ïpR¡dq q ñ±†ˆ¦ñw¦}³L3ä´}MãªÅ‘wJâxGgEH¹xÑŒÄf€J['ö¼¸æÅ­ð=2Ë ÔÐ=ã>ô•žWÖ¼²O_ìˆqEŒ#úÆk”á¦.`I çŠ@-B s mÉ + ’›jêROLkbº¼Ò¿ZÛkÊvÏ£qUHu ·O“jdÈäõµ#6ó^uÝlPI§OÜîêîq±NN[|ÂîF>f¿eÓÝÞU7ƒ h`ئ‰ÆëqäYøð,­¬he€–ª³zËxF}sÑM Ÿ~jൢ9ñ{‹í=ÄÝj8kÅY…*ê,åãˆû`ó±¿8JõZÄT.¦äÚ÷ ;Š6g äî‹ÃÃìÙf†rÁHÍ,Ü a‚F½u½Mãˆkô†ºàÂ5´€7'‚d T*I¤šK|Pé9hk2½¶ðpÇË+^Ñ7\ ¦z=3§$6dòˆ'êhHNZ´ŽÆ™Á8{Ä{çlà CêzÚ +•@k-Øy¯šÅ[ñˆãp ¡dq¢c||hNàuil'›ôIJ&–Ë®¥1®ˆñ²½4Hk{Mq¢}ïŒË“ÇJ,K“HŽ§lk‚`˜Ý¨˜PcËPÓÙ…¸Ã¥—V¸ô‰ën»mDJ‰h“Ø@­ýw˜™ã$ ’NŸ¹Ý&v ™2y¥ír@ßë·H¤¦mYv†6d´Ž´yÒF1]þùí÷{õúë¶ïS…„·ïÿhöÇŸ?Úçþlvùù׿«udÀ÷’R¨èJnôªƒååqPÛ_XË««Ë—í"jþ÷Ž š—rû{ù-9åûwÛûô¿—ßþ}ÿ¤ûW˹½£Wãöï¦ÕËß«§È÷ Šæù €¥û¤<$žoRÚ³€Dådàw¤Åú°v¿lÐÞ®Î}Ñ©›ò>wÙ´å=O˜õ-tXëK‰Ÿ-Ýe!>}æŽL iÁnu3׆‰ÏÜPË¡Ä^D±KÔ–.6Ç %•{Ýâ]FäÝZïj}ã5Ò´8i¬Ü:r âpM8X¯ µ4̾+ÚéöU(Y\âOpOÌkb¾¼pàÆ°X´®5Ö5GV°:{ã8â>ˆ¥#–±\¶Ûg ÅÑÚZ¬UÇ©€qöBm¯ºh÷Κë‰t~¯·Ó³!šÆ±²jZhÝ›h>GDJ³x'†DsC&È…t“XzbYËq§|7žëÉí‡úþtO\J¼M<ÆTiégˆ™Ò ¶F6ÝI|}‡3yíŒÓ²¤Ûé­ýHKs;yÜ»âüt uÇÔ7"¹ûîCaê‰iML—¶K²´dñéS×w êˆiEL±Û‚î;[\áMÝ„ÄœkÛådàw¤ùµ˜£ ]ÍíäHõ•E~èðøb9G+òñêgwÞÕ—ûX:bYËÆát¸c‰!—íñTmë¼2H|óãCW¤Ò|œq£*¼±ë†’ømR-Þ®ã”ã”Né¢3]¢a;̤ç•5¯li»Ž†uýhˆ¸â¤šC|†‡<áêkË5çMÛtþE(YÜøýà^mgGsCZh½E<ãz“ U^ÚÙŸ½äÂI¯óHF\m¹‹¼1#±q¸K.œÆb­ #"6ùrÝí¾å»â¨ug TÒé9ÑóRÇK+^êôõ‰£ RY$7'æó0§ÒNŽìmè½¼þjoãNmâ„¢õ5i¯ÌìtâŽxا+Ûsœs´öÏ5·NN—˜ñ¶ã”›ËÉ6îp±ÃÅ.n/Èe€ö)Ct¢âö`ߣJĪÃ\8JñQJìy÷NŠ=)®IqƒôPè2iºé[éyeÍ+û&m$ÞkÒ8ØBŽµ,ÂÉK•–Kc{覱0'ƒ*êhœMw÷}HÜ{B:bYKGìÇp}yC#~“…œ8ÒšÓ´hëÕ‡ 'Ž£Uàx9,ÖÖr$W„*—áªg rfpÂEÛÄ Ò^™ÙÎM³c½[€µR$ïR¸S.TšIYö›7q3:"ÒðĨ.ÔÂÕàp¥’±#¦š‚Õ42 ·ê8Ø©Á9‡ó±…[Ð%ȹqsÈB\7ý;L¼¥ï¯ë]•´hßúþ_úrÖeÇyÙp™ìÔ¨¹åBr´½m™}]Ø6‰‡Òá‹$“Å¿t¶{?PGL+bêˆý‰«íÞpÊûŒ“¥h‡+露ËrîI·.–#Ä_Ëx®ŠV%´¾<Ž¥#–± ÇZwœ(±7u“Ñ’Ê¢­›j3ú7ÚñðÜW'jŠfc3`­/ÕøÉ`î•EãÓëÄ/bÁâ˜Fª%Ë 2„’ź…‡ÏŽÓs¢–¥²ỉo_@í´‹W4YA%²1'ÇBáÏ–p+A*E*-&²§ï^uÑî74ãâ'ÐsÂ^eßgʼn@.äùö“x8w©úV[¦.òp¼œ°UÔ!¾=›=wÏEÜ»X:bYKGình,€VíJL)SGœÊõÿüö»´GÑZÝõû¤`I®ßÿÑ>ì?´ÏýÙ>ìòó¯Wj´ëËpiVíÌ5Ä•|wœ-ŸÛ~výüÂ’ýý²Éq,Çð~Ná G¢HŠ\Ïú³ìÁlúþÀÈù«˜)=X¯ ºkQ¨tú§>³‚Áˆ÷iÜf œoïÈ ùŽñþ÷ý{¶4ôù[°üñê·??çãÁý_xy?Š÷ŸÛˆ¨Þþ<,xÔ· Û2Œ¶]Ý~]”AËoâk-Ij¶‹‰;Þ§âw"HmùÚOVìYñÈŠëÕ³ek~£9jÒ·È„˜SsbAW¿‹BÖÒ#ÀŠ# ?SvÓéPèžSjGÇó‡u Ÿï”C¼ˆ£¼Ò>)‰§ß ‰[Ì”·²û3±ôÄr$–ñ±Ú`GŒbü"þ¡ÚhQv.Ç–[W[?°IÇf ¢8ðáÙ*6Tije·å}›Ðð6ó –Õj«\i¼¹Ø ‡˜œïŒCH,`™™p¼þnçH¤5ô<훘{b>óˆx­¯iË?® o9ck—Î"µ:¥ÖêÊ8xù'TëàÄ@‚.íéš.¿Ïá4pÆñî]<â€ÎV[Ž·Ë›ÝioK¾»i‹ÆvuÒìx±ãÅ/ÞF^0Ôp‚Tëå™­×uÄt ¦ Ç»w’2E"æÖ=ðrg[yïjS…ÕHÄÒÚRŽ4c!°ä%ù-ÝM*ԔƪØgóD $Ä8ÄŒ ´ Ú!þäÅž¼Øñ^®ak[g—ß»…ÄáR&ƒTÏ'®H™S¼.-Vä~gY‡³SƒK¯×™ŠzŽöÉK=/yéçù.õ_ShfætŽîÆMúÙÌ“ŽXÄ25ßxÄZú¹ZÃïS-4à|´z†–N¯\zljçðÎ A|¯q6=íkú;§DÙIi[6ª ê^¹%œ (Ç&ºOjxfÆÔÓ˜ffO³{´kÇ)ÊD"–žXŽÄ2šñ1cÎxÛS,yýhKÇkª­ƒú‘ât¯{‚Îò¾LœPj‰­8îÁ=1‰ùvjéž,vñˆãp!(V,æÄí8£«áE¦¶4dM(bÚÙÆž ™þŒ©m‹¿&<®žoªbFÅ?xp¸"PÇá¼"`¬bhqtLUAuBÇû[…$v¹Wôª˜Ë¾*4ê±o4ãP)Ó´z°ß~ÚŠ¯/·Ê‘¯¶‰³~¡… gjB`ÉSÄŽE‰´¶j—®.J+g®ŒÆ‹lœÄñ*+Φ§õu2&”¤—¯[î1=à±"füBI@%yŠXådxøÅ„-˜b`1Èd‘²"ØÎEsáhæÔ^3ê»D²"HÖgÛª!??߶V†’¯öß•fP¥@6„ÔRãZà÷C}ÛëJrúúÿ°ÒÃÊVF°GóÁ}a¾ñö-zÑŽ¼UkuâbGàh“¶ïy®Ü¯ÎDí5Ã~¶…ŸÅ;/‚•Iby¼ã¶‘Æ!0õÀt¦ðqÝfñbÝ2’—·Íúz­€%Íl£ãM¡jrúÃY1 œlj¶Ÿ'‡£9C-M(ã Þ˜“3Õ–ÄÑ/§ TÉÓïéUKÏ–-›žvõäÀ +¥FÒ¯0!º¸;ôÀÜó˜g€Ã•3¶áÂm“nœÚwÑٹݪƒU R®5ˆµöi¸ÁÎ +E¬GÛÒ‡é‘ Úªê‘ÑjÙ¯X»:ÖH +ã°šMGÅxf¯®Ìp’Ö%C…±2”|µVò*¤D¸fÐÖ%è—4ÖgÀáüÌ +ùÃ,î3Ø;T< âÿ¨ŸÅ¢)!TPÔ +XòÐx÷)fq® ¾Ÿ¢Q‚çâtôÅ6…Þi2??"¶”@.ÀÆÞ™vz½ÒÕöŹB}Ì÷-"þçÍ éþ;ßþùíwioÁòø:q›#¾}ýK{«?þüÒÞõk{«Û׿þ=¤dÁ7‘åf8–³àDYØýw¡T¿lÉ“hŸåö×Ï·o/o}1ëý­ßþ¿ÿŠÜÆóí«í1ýöòÇÇïoôþÙýG<žèñø¸ývTo÷ðÔà3ÝÿŽíQ-´½­sFHÌñ‚¥^Bµ@2ÆHómžÉoVôšXzb9Ë9âë|1c© f6$Þ¨¨ÞO¬öøk ïÒü!+ç@ó•v¸$oÝ>Ä-DŠ&O·„“âmÝ ŸnØî¥lãjƒ´*qÔ@†ÀUÆ·OjX+„¢ÎŒ×uî^ÃÒËXn®¬5GÄÓ1·kÀZż®]®ºm¹bÑrñlÏNÖMd„š(Èš~;£ó‡É×󇞘:b:Ó ±*H5÷–;­Þ4ÒïGÁÈèÊw&.|ëeÃñ‰±ÍG’k …cÌ^^È=ñ”¿X¸r txrº¿²^}µ´OTxÂùD¸Ã3^0s"@)n0o–uñN9®ÀÉœ.±er„;Œ¨ÛÄ>Æ& %áÕQ·rÄáê™A/ »ÅÞÄx;µx,@¹½W·¿‘&Ãù‘V7P,ú¥\uÃ#^@B9†ªB¬}W¯®lK:ܱ¤V+_M|úMþA*`jc¯Ø¦hÌ»`ÇR¬âmÝÉþs½Pá¾ãN—øgÀÍ6O¿=ñÆÎ"Zpd<®û¢¡4Ì ÁÄ=B—О>6\5pÊ ­†I7ª bèwGùª@Ò|¹E¬ì•Y9G"N :qmCnñbùZÀóS2Pb÷ÐظóbyK'ŽæËš–;è8ŸÍø…¸BuÂcÝ™ÔÛ±tÄr – ;æte½zó:Þ©#É¥PIcgÛç¨S©æÆž&~ÐgwîS¨!`j˜A’êè·ó‡É²æùÃBâPú xUVO[Ç›±V(z}j¬#æd@|uU[µtñL­ +˜z¦¶®¦õÄÜó˜gˆ¥‚šE*ï&@5gL=1‰é܌窚KÌ +šÔ1¶-Ua ¹âX“3ž9ffüê5°Z9NçD€RÜ´Þ‹±ãÅ/ÞÆ^í%A¨‰â--^zÄó‰pµ˜·§Ñu6<=㧇ÒJbdHTb'•ë;üºà hmâò¨[hlá.;Î +ܼ³b=mÅzuÜųb+ ~cûîkÜó˜o_ë?)ŠÇ÷s\œ „}+^5c;=ãÏ”Ï&Å[¼w^ìyñÈ‹ïÐ&æh]›¨’1ç;­ˆ±M|PZ¡èõ½2îÂ[¬â/ÑðÊù*Hõî¤ÎÕ¦çû”ø,¯ë÷×ÕñÆ-«ÃS™áÎÖÀªŸÊÖá*`ê©¡Kåéª6Neîˆù@Ì·™T6PO¿Ë·m®Xú´ +óXÒóÊ‘Wn§cæ {U, ’x¢SÄä„gñSù¯!p•±£m£N(ÅMŒõ<Ãë;Zƒ´*qúC´ù†ëÀá6î—£ýšodG‹×ƒ9S^EÓ®öL+]³S5¯§éÉ¿=1˜ñ\v“à +¨/ŠU#ÖÓ#VWÆUñê`^ºxY9Ç!æ”AÄõ¶ï¢ ˜ŽÀtˆbmÚ…»ªª:3bLÌ1ˆy†8ÞâÌèMãÖ¶q…¢Ékm;× ÕÜž¹%±€©9›·¥WC®èô nÆÓ òlÆÇæ6Ó5_]ª\ïÇ ›[¸ÍcD âqŸß¦Wp6P/óN¶Š1íœ"üÚ†`R¼­[B‹§gëê7œ«qº¿²^Î'=Í÷‡r‡{ð6þ@†Àu¢ýHO,GbS;b<ãm"5j8ÜiW@+¹æ#0€³éIà·'M°z·è–{¯‡ë>$ %a¨ËN iv7oGb«¾W¬">Ð/:|¼ŒwÙ AJ%’WÄóc±{"zwÒ†ÄÁn%%¨ŠæKV¡Š:Es]3îg,±ˆejÆ T'®}fïúÈ +Ü +²G¬§‰õ)ñBUH{M’H ΋mÞõ›GfÄ»J;âÉÄ›!þÙÚ<§û+ëÕ:>ËëúD5‹älÕ€ÕÓðŽÄ\´x¾<•†òý`É4ªilj“¼31·p¾©…;FÃ'”ruèx±ãÅ/ÞƦ¯üD‹9ª +¨×Ÿv+5*˜kd<¦åž–´<¢=ºÚŒ†_¹A±q.ï¬Y9G² ¤ùr›XØ}ðþô·ò£­mvÄ™[-ºëÿŸß~—õñuªÐZÈÛ׿´7ûãÏ/í}¿¶7»}ýëßÃ4,¥¦8lîYš{öÓàTÓ°|ÿu¨UšïŸX²Ç4îŸf öï·'2h¾c<þ¿ÿžœòûWÛsúíåßßéý³ûy<ÑOãñq›ÕÛßþ¶âEš…¢‚”ûÏÛý¯™$ ]M¼0¦ÚÆTÓiÆ +9“G|–÷êùZÓ°TOï´ØÓâ‘G´ ý³ÝŽXÉ⨬=ÍæyÄvóUH˜#·«ëg§·-=ðY\Ïr+XJzñx;Úa³Âî9ï*!vM˜èòù®\¶¦_Ä«³x•~sËaO Ð~ÄÈ J©n²-r²¥YÑšCâPúmWÛ‹Bè÷~¥&âHþÉúo¸[ˆ*²E"ÖæÉëºÞæh] Ç›¯4b¼ÜÔÖsj5"“7âå‚ø™*0ç‚î½¹-ISó¬aCí’¶e³tu^XÉ­Á‡Ú¸x¥Óì—ArÉ E÷>E_`àL$€Ö>ÂÁK;¼™ûGÝ-JY +BU5]ÉHP\‰¤ºšèÿØLv‹Ä´%¦‘xþŒ=¦I\mÁ“ h+³‰Þ—‚{¾Ð“®jpqW£0¯¸u o]6/&swQ +ŸÈw9²uTW#WNKèfî µÍö†ß7õ˜Ak=lF§ÝaþE6šCÿ]lã¸øÓæiæËÕ¯Él8Ë©A¼5绞?äš/)2=M^˜òõ¸TŽFêO£fÚ8, æß=8ßÕ(üd+ÊFL½Y›çz›—˜«{b”ÞWóâ\í3]V#A°N³»Ü¥®æ鲆·î,ï»´×eµ„wî˾´û-{Ï°2»Ç]z+t®™ˆ­A‘µÏåô›-QrP)Ñ|/SÄ…[—/Ct…ŒÍ5ÔÄE7ù,îç¸Çùn†ø͸„iˆ¹xæ!îy\˜Ô=Í4Ê=+θ6¨h–eë˜hú•»Ò‚ ZëÑ|ìE¤~48nr &‰„3v/V mA«?š)­™{E—Ù÷nàÅ7¼xÛK?_ýèˇ&öF×Êìºq•~óùCºÏ(`ˆ¡†¼Ì_ª˜¯ŠâO[œ×t6õ[×Dò̘̟f‹ˆ»ÎÙh+h ³Äj´ÝSem³Så¥óÍ•ƒS©!ݵ õ\8jžgyߥÅÓ´±ri7m®Mè¦-ϦqQ¨•"âË7íÕ¤^¡+F¾°à|“9Y/@Ö3eÞ„ŠH×+Äg|M"b÷áÆaÛ\8ßæ%Ë qöe¾Š6_K—|¨`'ËCœ+«1¶ûkj4ßï¼4òÒ–—ÆùÎOï¾uD”GÔ}뤇3^Ø<·nÝi€*²9•2]Çöº|ªøJ˜ cÏlÜ8ÑI7ã„D<·Qëyˆ¹0H‘L~¬ºb¢'lLâ^!’(Wäó +.”8Ôñz$ßÍãâO[ “ÐzÙÍ}*Z”6ßxqäÅ-/¼Ó·Îï]§0¯·ud ŠôèÞ­6_U(ëwÁ뜰{xžàºÚ‚Ä& ­Ì¾u/¼¸áż¡†ýYÔLŠ¦–)aš?Íu»Õ\Í‹àZ@0œñr ç´ËìzÕÂu§­m6ío;_.-< Ö¸„œJ k\¾Ð. ¤5ÕŒ³ÅqSK”Û¹¸±‰F6q–÷]Zt‰ÃcáIºp›xˆ/53‚Þlv•TÖ;t™-„Íx]ã_Œ÷+”ÍR®v ‘H¹+6 JPéש˜w*ò©‚ŒÁ¸F3¾ÂÏÚY8ÛÇeÛ×ï:³ÍGL^5­åb͇мí^‰yKÌ·¼" R©‚ ƒPçJi2ÐʆVÚÐ'„€4¢eÆKÁ°†^X¤jª 0k`lK«‚t g|zíÞ7¶³¼¡ °öíF¯šB©|b™8Lzÿßþð©Û'>2ã_¨ZPëªéiUèîñ8'â"j€J{qG^ÜòâmçÔ]è¬ÐºD‡yEWË׬cH|¹"Ž…ŸØÕ R°qÃ|iä¥-/}è|ó¹ZghÄ‘G¬¸u]Á´×yIb«P Nw¶ñrÐ@Lbºí_2ãºw9^)Ig¯ÜçQC>âqDÇ¿ð #èÍ"â³*Þï±­‹5œM¹\´žÝ.½z±É¦vÖ„?'“o®PY +h)³—íìt£Ù²kŸx.´¼o‡Çø»ã÷1œÃÇX??dÛ¸t¡½#ÖD[Gò˜q¢A Ôggˆ+·.Ÿ„R[ß%–‘X¶Ä²G¼-F8ã†o?¼8,F¢Púâ…ªÜCªã7¯+˜Ö€xMgÊlùî]²ùæ*Ÿü8‡qx½e#@æ}ù.cÁù*#‚TÅT»öpLŸ's1@¥½ù^V^¥}Daþ(5«sŸÇѸ4@$Ùõ‰iKL·¸6¢uè’¨%´à|¢Pév£ÓFñ>ñYÞp¾&Yð›8<ßýq$¨ý¢É¥ëEd½Y´uËň{n×àÌ­èjÄ Æ%ظ%‰õþ[h¿É­Þë#\ÎÞº^ÜðâmßÕ2KÒGÍ/ÆŠŽÖý5Ts¨!_L˵l©h½JÙ·Þe–ëý Ï–ï€{$Ÿ}çåzw Úų•œ›­¾KÛ>âþ†~÷ÇmFToïè„_~KC­Þžxÿ-Ëø·|¾–Aâ—æš6–øÑÒõð~éšö—.ª¸Põˆóá?oEGÌ©‰É$EÀp&¹šøˆ‰–Ç&Ž˜*AÊÕÕñ1÷ļ'æñ©^ÎŽ9a»F]?~›1õÄ´'¦c3žQÅ#?V¨I9WäyiBëdžeìgÓƒ3~yÇÀ+¤#–±Ü&¼"17ÐÖPÇ·ª\•Ð!~åÅž÷¼Øñ^îl +µÕ ŒÇÓ0)¢;âZ,›kÅë…UÙÎÍxÆËs²ö×HÆ8–“*$»Ú'ð(¯;Ûp%>T)u †YÞÁl¹cå+g«í¤I¨%T ¸º³]Ðãeç Ì^U»¦ø<™%Yùï3'.ö³Ï¤ápLl`Å< Ûa ÛxʈŒ8T…ƒ‚‘$ÜÔ œcE]´à kËQ"Wo*–žXöÄ2´‰£¼î|3$vOÜ’ó-`ì˜ÚYãí¬nøn§ïºfþ&·`nT…š”㈂!g?›ßˆ©'¦=1ˆ÷ª˜16_±¢ŽsòÊði‚èp±ÃÅ.ÞÆž/3 ±\XÝ;Ö©Žö)dKZ ˜¹a±ž4¹'í %œÙÎ*CÖ@ã ¸uªJ¨Ê.Ü$ìYÄ’k§2TbgÆk‡‹¸p'Ñ 7‡û(+ž£õNcÛ2ŠKûs˘nÀ×oD< ¯yêR#j˜{bÞóí@ žš°[ÕZ8£[~V«jµ +äs΄“›‡=í<‚ 嚯=qÝä'‰ï¿nìUŽSs³RÆúLŒýÎ5K_¿qf‹íŠ‰Íh:Ǻ™­¯[Î ©º³=Ë;^ìxqÇ‹ÃùÜŠbu‡ÚNšzI±d¶UÙ”3žï:ý!œ†9·+ë¥ò,ý†Û6ƒùCÀ&ÏÑÚþ6Q!–‘0c+=ÙÅz¥‡Ä `(›¨ Èêå¡q"±Uhá|5qÇûµŠ%#Cë=®O¼Yñô©[ñ“k\%H¹æk£nï3~àáTA–A\/Φ‡ãN‡ÄÒËŽXftœ +ÊnZ°RXóâ¢|a>3Só ­íŠ>j¾¤xu?ÓÔ8µº&s™ºÆ)™¸Á±žEpj[])8Ü:&g<³uO+—VÀxÜ"¤‡•=¬Ü‚Øï3¸þÞIJÀµÔ86Lš!1aœùrjó-Å!î,b² ÏXÄsM˜ªªgÃkšš +]Þ„ñðŒýî­NĪkœزëj V‰pQOÂÃA´º3~SÅdxÌÈø¹ðàÜ®¬—ÚÄÑé~šªÆ( É5µ£¼Gç +ä;ðIãíp±ÃÅ.Þ†b°¶Èe¿óèáΣÃñJÇ+;^™o<ùÆ ÎH’¯ ås#NÀ²9:^qÆd ¨¸ªX¬Wþ¢½²ì$0›8mËtvNØ®Q·´¿¶ézöÞiÛ—ö™P~PÚÅ `¨Ô¥aR†J,^°Ã=†ÄÜóŽ˜§æ« ì5ŸOUÙ~Ô«›åw¶¶jˆ¯Š³f|ÞºAµ +ålU c8'kõ5¼ž"¦³0vÏY7öÀ3¢xn¥#QÈœÇ¢àž˜÷Ä<">sÆœ›M 8•â´w¼ØñâŽNØ¥ÍÀœpΦ‡ ^Á +&NtŸuä‹ ­¬MmÚ…Ç#ž„ŸËŠX‚˜=nƒÃ6ÕÞ]1($»Z =í”x?Qƒ àLW[ï×nÁñˆµéXB©B ³qéYfƜەÕ%>#”Orµ€j¨JÅË·Õ@• å:NŽeZO¬dŽè +lޚѵÊiâë‹{†Ä„qfnÕ (ɯo¢žXöÄ2ÅY‡®Ê–Rãù.$ˆpQgŒÇ»çS‚8W ¨(_Ø{Nua†Tñê&ÑñbÇ‹;^¼œj¢÷iï¿ÉÚîwwçË/ïxyf¾©µˆRœÌ舩'¦=1#ž;p®EX…flW[ÄYŠøehWglwŠ"Æ +V=A¬xàbY0ç Ì^mϦ‡-X¯>pJÀµ¸r½–Æ)™ä8«7P./«vÀMÝ¥útûç·ß%CQ½¿N‰òËëßÚ½þøó[»í÷v¯Û÷¿þýŸ_jÑ»a–öh7 ~ýù,m߃’ü|²ýû2ŒíA†öa?ÞAóFtÿû–œÊë«`9߯¾?|½Ïë³í#îoèGqÜFÔ¾êßÿË'Ͳ5–ÒNyÍÞO9½‚]¿åäBÅ#·‰ß;.§fB:$žŽÔ1ñŒ…>Ú’Vªb™NÚŽ‡¤ñŒ—1Qbnw¢ˆ¸mŽÖÚ–C|”÷=ÚŽuj¯ù<ú­­u'Ž¤_Ujõâåý4©Aš¢ùCU NŽ"ºÕfºzW›)—øL©®¯qjÕÛõâkTñ䌅[Î…ÒqœdèÃmc”•ï³¦*˜+B4^.fÕËåW^ìyqÏ‹·Çgík»¯Õ&•«‰{KG,;béˆ} gXž&e³//–ì=‘L­•‡H9Ìlã5àx‡qÛäBôÉÊ9Ž“qÙîDN¾uú¥ž˜öÄô±ú}i<.ñz3&¡æì´ž³NܹÄÖ®LhÆñT¡”8ÒŒ !¹íý´dþÒ:æ„P‚õ‰H]˜4ƒ†RD¬ùÔoÍ ¡ú0…Ùç¨Ö¦ˆPíÇ,±§ˆÕæ«8ÔÎAÕ€µº±1§ºµË('N­í¡<8^*Wj²xŸøîÝGˆ»|p‰¹#æ1OsÆæã˜{nÄ.v¸¸ÃÅÛ°Fä¼-GA,˜¡Š:Ëg6=,}—¸Ÿ®tIJ#–ŽØ­ÁBÍ""…2ç—UîòÐègL1íˆibÆŒ9Lq'a°P†F•!…*>œh+>Ω»fÆ_ªø„*îÑf[‘œŒëÜŒz^ÚóÒíKeÀÄH©9ZŠ¯B!$×~O äS‹¥ RÜL͵‰õB™”åCGüdï1 +ækdõá~tÖŒÏÛ8om8ã ›g'<°á)=¸¤ío¡vONùá^t~Ì=µÕ R&Bù©˜ë=É{?5ñç˹>å#Ž±BÉâú/VÄõ›FŠáfÁ´»UàPJÈn‹Cà0;‘ä_aqaoÖjç”l»'áxÄœ¤0žfé?öË 9Žc¢{Ÿb.`¸€ +ÀÚGм´ÃÝ?âW“¦\í°«ƒ]Œõ79¶s€ÌD’SˆÛK• ãø"]/­’–¤˜±+è;gæUFvå™ÙÀZY> #1ļ#æ)bIv +Uð"‘“½ñÒÈK{^z¼?¿Wfqº à¶•_’<Ž–¯¡IÅd>‘oŽ“ù„"´Tú² ô„Æ$úæs5ÓtÄÙ<‚À]ƒ†yK½‡Ä?öŽGbÞóH¼zó [˜utz*Ö{1õ»ãS+ñÔ™ôŽÄšº.㳇ò6@õè½áÒ ½‡úÒiâ§#|™¾Ùê0«@IuB/u͉ÛHÜöÄí\ÔÑ@L;bzÌDÝö$ŽêÚ 5fódÁ!¥%;넶Í;nl—Ç̇°…AL?5˜º«.]8³5à"ÇV|bçþÎL6Á®½[pu\·y#qˆÛŽ¸ÍkÏ5ùˆ „~|Y-¾4 e+AÁÄ<óž˜?—¸ä è|—GªþÃÆ€¹ÚDó-éyZ>‡HØ&LA˜$ÏT°Û–ÍÑæ½ñÒÈK{^x—Ó¶íê8Þº6ò¶=o;Òwï3¾öžOèÖ$–Ïð…ç»:L€ZÍ×UøX`ÙË° n'Y:Aꦖ¦I8¶pß~ˆ;Ý$Ö÷à–+åRe†fË /à}ëô‡ƒm›²²PÛí,Jµm©ÌL XŠ&J¶¢àÞASXkÝŒ,UÕIW仆gçýˆ¥P2SKxy"§â‡Æ<óž˜?UãtÅ’¶Ó3¸‹âéÍ[Îý_›Sn§óΞùÜâ¶#nq\…³T5Ö—|Ü|¦ç÷Ø#f¦á+Ô`6ÚZO¢Œc“¾i5ܱX&´_m€êÑøÞq(œû;K¨ñUÄãÚñ@Ì;b~ÌØoºâcÖJ¦ŸŽXŠ¦š +)¸y….Öø¬ÂÑDpIW%²RÚ¶u‰¼XJ21—ðÌÊÅmX¡¢„·Ñ5#|ímT¡å±S&Iä ¦ŸZ‰ºŸ­Iä»:¤p¶1v‚OOÅòË.ßTu;ÆàÞÞxF…Ö¶÷ýõ˯Ú{ËëëBàV_^ÿÖŸõÛïßúc¿÷g=¾ÿñ÷«ê¶ÔR‰vbÈÛR{Ù~.íßo¶?_Äؾ@èxÿü@w Ôíá/o¿¥”úö*8âë»_¿|{ÎÛwÛñú£¯_w‰Xþ'UYqKUì QÚþ£|û iü iÿAÒðA.ÿÄÉrв cD{ÃÒÍÞGV9Ðw–÷)íé†nÖ +VúÂ=¥½c¢àüp"îcõ¹&ºÿamy&‚[ëáïMÄý*¡`mh<O»Úsâq*x æ1?Ž§B:(OÅdnÌLEˆÛŽ¸}Íä°ÚŸT/¾ã'ôŠ~> +*j<]»Ÿi<ü“¿jõ5æX¨t?^mÇgqCyûP£^S'æ¬8a£x îg¹"Ÿ kï?EkbÁ +¬¨InÐt!D@æÇ)×Fâ¶'nGÄû”£˜vÄô˜H9u¨˜IâRA„ƒ¾¬úœMp„œj`·,jÁMS¥\ƒæÚðŠ¢öÑ&¡P¨y¢2l - +ŽNEĈ °§GžƒƒÕ€°¬.˜W»AáhŒn§ýØžù1çÇQ‚ä«‚Û{‚Ãnˆ¼É1ž‰¼Ù± õÈÃåc|ºTÄC‘Ž˜½B««äÒ1®}ñŠ/ÞÇ4>ÉMªErÐJ!`¡ÕÚ^9¿¢@ʉ*›`VŒ6î—F^ÚóÒÀ{èÁ­ké +f:Gc0Æð´»_ÁÌçR*ˆp0Cû™.˜OÛÏYÞ/AËVûsºôÿ÷ˆu¡I,¥µõ7è•å½ª×Cž®ÏløÊ*Áf€ýÍìR5 Ž«4¶Ó[¸x ^$ çûÌ\'G¯Â îË«Ä••8•¾ù¢Î +µD']Âdk[\0wÄ2ËŽX&ˆ…zÔûD‰Ûž¸}æ'+ñZÁ +3|lj`pªA_»#q†Ùzû1=n?·q6) +Þè¸O¯îÄ‚M£†¹Â'¦¦8ô ÂõwÝ•AÀBËæ…—hA¨Ý,’4Ì|W¨ööãºZßKûƒfòa¬Ðo»èîx㥑—ö¼4𮦭XhõMw¡Gä»9¤ +–Å—èÏ­1+–õ_élاBÓyº?#¾´{gŠÐÍœM¡P Óù~úækðù.QöþΊ‰:qFŸÈ¦±‚º{Åt“?Öx†ø=5êmgyõó‰/Ô'Œ ¡%ê½aö÷§Ý`Å“#1cÅsK+˜z´tw«ÚmØ}¹©]Hì Z=çÓebµE¸AáLº®vH”FÞ6ð¶o›ñbu¨˜Ê&2 D¾:!¥‚¯áwªb†•¸@±Õòž÷ë$\¾áƱÆ+n¤.\¾ÌÈwq‚`|qܯ÷¸áòà8mÄïLEgÅcoC,XƒÍûá4òÒž—ÞÕ> T½:Ûô ?#¾´»+–é{Ëô¨Ðª-&Þk;«õ5§ÌðuY7Ï%G¼u ¢uyºÐ‡µ»¶D[gk@|Ç©`S(Ô‚tÇ>‘¯%l™ AÕ˜˜N/O5 ,Ë{ñ•Ä +XìØ+îClµ?©,ϼ »qA¨½ /&xgZ[|æKlÄR¼QH|Cgsc´Cb‰yOÌŸJ¬ÙDF+ζxìRã¢yú$}:ÆC™›&¶/¤±²J@|Ö(žÎ0¤}¯d6Põºz".Ô·!4ËälB šË±Æ†ÇÜéãöž ±½~4g€‡pVÔƒ¥£‘—ö¼ô8Xº+ƒƒ ¡E´wáJý_% Ž»uølú²÷wV\­ï.8æ6.Ô8]•$èÀÇÄ÷¹:Ò•)*ÞIwó £øª»ŸOHÅ~$QT.oè ·®9TÊÏ=—NÁ…6q?‰… ¼^K|©ÆéÆXP ©æ6”øIâ Ä¼2ðÊŽW‡Vì œ)šˆÇÍ +¼`×c¸Mp°#p­!ñŠùýØIÇΠÕëÁDÌòÆÜœ¾ñü®¿–ÒsÛf‡ÄSû3U¨6‘s·©ùê0[íOê¿P"Ÿ¨ÐªéZâ½Æ3þ+i,¡ +®Þ¼“ +‡>QX‹»Úý|BêË;_“CÌ| F…JýÇýòëÖó__W~yõ[Ôo¿ëOýÞõøþÇß»íèç-¾¸|fEwZÈ›^¶_ƒKû÷›íÏ-¶/zããŸ@0Ôíá/o¿¤”úöêÿØ/ƒäVrˆîçºÀ`@õ¡0ËžèMß?b(«m³æEV«è(øÿ•%«ªü'3à)=®~¼|Îû»ûŸxÜÐNâñºNˆËí÷Mk0–zRRýæõûÎÿ#ù´ƒÂ‡JýŠo¥p¸i°;­ð¸i…»ÖX7À:ãž…ª{jœ ³X-YÉÃK2PÒ}Þ'ùÿAÛæÿÀ5§H»Ò­9*i_ºÏÖ™=áþòº7Ôn±úXg‚¨ ÂeéL÷˜[`Þóx[R~Œ¤wàÏHê—©¹#"å¹fç»XBÒ=Ü"ÀÞë_ÎIâh×ê5Ô³°+—Z°Q‡žu݉Ã6üd#ˆÖsص^ÓSÄlj›v³ý3wfkPÏ9΀µ|ÆH5 ö&|=I /VDCûãFûN;±Ñ2yªá¥ö0ZhlO2.\ÝA±!¯¶¼ºåÕc¼/&F¸L¶ºïT4<\Òöýá(nO ¹ª¡¸µ°§NW îD¿ +ĺG+íÑ:°`•Ô±àw\jqi‹K î0ß^Üአ+ÏÛu¦›ë•æ«óâ¼!ˆÀLûrx|Ï#‚hfÙ=pÚëXo3Q@Ñâ4öp\R½[öÜ(brÀ3ŠX6À2o%Bâi4àIÞ™¿ªà;g/â®7ßp©Á.€.û¥}"æR㵞ž±³Uðj9D+Á¡:¥$…ºÇõÎ7¿XÑÕOž£ãí*ësÒàœ½¤„eK$û9|5Vö”;ªmT0ÂcÇQí3Ç%òjË«[^=ÆûbB„C´¾¬A +H6ª ³Ž»8Щ!T“”Š·Ë骻¼=z3ëLw‰óRL`š™0"0S¯}èwÒ|gô« °n€õ6áfEÀX†ûåeú9—Tï–ý +ÙLxºòŽ', °l€eØ \´“ƧMøLŽp53¸gjçï3ñ]fËšSÚÃtb¬®¾l\0ŽŸEÛ-Ø,•ðÁ|[n ¨`ŠÃéžè½su²ëF@:>oבoåT—a¥¼Œ£I®çÆxzÂËCfl9pìZ¯Ñ0jˆ9ƒ¸š°3 iŒ¼`7ÈȽ}ó$s8ŠÛ5†)ÛÀfQ ?Ué gbZ<†jÙ„±§† n%Õ»Åw·™nƒÖ•ƒ4À²–ÛDD`­­a¡ãC¿ðFr\.Üò¾®Ø¸K zC’áÂL;Q»’TíKòwʾKžë ’J¶ÞJyÒ);Ëô®ØÐî“¿.€.û–Ðäï¤fò—`ÞómF¾ÑŽ[,ÞPÁŽ`©¬,c?³2xICk˜ïŒ5h¬`NX°—œp¢úéâÂ{V²…So 6þºÖ@ -mhi8[ɬtf{1$ë8îç\µ¥Õ-­ŽæzfÁ ¥L )w²÷b°\Ø{ª= ö'V.c¡@V0Åá„_n<·Kô%ì€Âà _g[3-Þ3ˆÃõ|?… +â»è·ºP–¡~§;ÎX3ú}"Hì‹ ä™V¦H&Pƒ.°¤"Òqˆ£¸Cÿƒí:„eÈ9I éÛ0ÙRõ +䥀[Ž,¹¶Jò¡$^‹äS%Q@ÑâL˜]ë5½=ãzg.Üžá.š¾°¶¿Ñ€%Õ‘l©"ZZjhiCKŸ´Ýá"X*ù¾£R‹J[Tº +ę֭±;’™®*P²ýh{|Ç#笙cX`ÙË pQð”÷£âšÀ(<\/¤–-°Ü¾2+Š€±ڇȀ¤W;o%CA®C×QƒÕ\+H ¹^iÞë’+šÃL^<«:‘ÒØ ´xY» +ÅíCe$†Ûdu˜ÉŠ9)tµ‹TÒJ)œXÑã-™‘š'0³ÞAû˜î‰+æÌJñ,( +—ýnÛä|g›6ÀºÖ‰ K* " UïêÃæèØ+ZY¼µ-ž…Ú3˜Jœn +ç’j•¤NO¿܃öXŽ¶«*á2+›$,ÚÛtôië]¿T³^ÁžqPfç»Xᚤd‚ºº õûÚŽyj¸)P²áž9 m³¹LòÎl.SÓý&.&T T*#Ý^%ÓTê’E¡<7Cé:Ù±¶Äº%ÖñöÄÍèáɉ‹—k–jÍ—Õ÷Ô&™¡<ö—Uit˜¶ï4ûjGÛsCÌbž!þÕÔë7\?3dûðe<‚1wUqAb¯Ÿf[íÃGy»V0Ååó=ÓÕÂg7ï("¹$~»c@¬ ±nˆu†8ÖväbÅ¿r;zÑ#Šƒq‰Ô.Ar÷u¼Â'^s¶x}B2ƒ'JC¯˜ìl3^17ã~òûr¹ŽOTEaPÉ6$žnò{Äg&ˆ$†”yL¬-±n‰õ15Ä´!¦ bö +ŠÞ#>!¡[=HÃ*Vù`ý>}] vÚÏ=BPÀˆ¾pç˜Qo¾œ'æ{b_›ëÃýùx¶^νóRËK[^º=?m§öˆT´wâ.G­½ "(é¯ñ./)(¦Þ|/ff’ ,œa2)öÅ@‡GÛ…­½¶~É\#~€®k9gN7 ¸¤^S¿P'ã’@îÑgo‹e +É€Ì;[楔`I|ùvyfúÆÛ'Âìj¹>GJçî{p¿²¬ÖïQ-ô”  ¤9Ðic+#%”ž÷^-)"ÕÇ@F–P¤¬#mÊïä\û{„0;ANÚ á KK,[b¹}aP°;ˆ.?“3žY~^%ÎEzÞð© +m‰uK¬#Ulu….` Xûs/íðfîaj4ï Ë!ˆ¬PQA¼Þ̼ª:;;‘ *Ëùýe÷"y÷•z¨t„J·×ÞûK·Ê`bH ©’Ó;´Óö;n”3ùöªQ&0â@ý,bk·>Ã4Êx‹È X«ãk:廬`Y½‹Û-ãT5ýaEÄóàj ¥†r´hË3T±ä,`jŽ„“éiSÓ§ˆûرK‡Ø_qájDœP– +YÑûÙ§ hìØC7Œ¦‹û3~;UO"~\ÎÑo¼¯\DNµB•ö÷)3þIÝ'dªiµ(NÞ‹:A“¸‘÷ Ü#æ#b¾ äÚó{¼,?¼žã9Ux,™UAÛãœTóÜíªZÑ3æ ÀL +RÍÝGtZO%|¡ R¦G^¨JíÐþ¿¶¯ÿó·¿×ö"ÔÇϹ @Müü·ö²üó·öÞßÛËn¿ÿë¿ÿ·bPñ.6«õÈc~0aéN~AùëC{0qÿ6Aiÿýó‰šî0ÿ¿ÿ-›#ý´=§~üñõ×›¾¾»ÿ!'z6_7ŽJ½ýû`D´¤;7mÜÔû›žÿKNošgÿ’×.Ý´ü±Ÿ ÞñZŠÖ–§V<ŽW´Ø÷ ‰smŸ)i1âï;»‘±uM.Ú‹ÜèÂ@åd`Fô9~ßÚ¦P³ƒöl¹Zéô)·Z…u€t–Õ§*8Õ_·ÕZÈÔú»ºM_Õêõ¥m4 îÕJeuZôª±Ëm¬Š{·ÂšÇÞpᘙI‹•È­µU %cÊæÖ´½9bá¹O„2æWzÄrD,#ÄÇ£›aøÕш*¢Žz¼tÄK·AÔ]©_1]]x6<§¿ôD³ˆ*À÷ͧMÜž„4Pc‹wxœ +XI.Ç+.ï½ð(µßí?PÿÉP3záqQÜ]U'b­:ÆŠæ¨a·`æ¤`ê_Û†þ@ ˜ëŽm’à™cûå&((aT~âqœŒ’Yt¡#Þþ,ÆP]vw¼·PzÆ.c­i<>§õ»¾FT°šFm—ÒC +XóxM+â™zÃsÆ~Òð VÚHk‘¼m‡uj¼yH3Z{QKÀ¶1>¥‚w§….?²³äº–P@²ŽMlK(fPmœjûäp20£Õ_%“ÖrÌ»µÍwbî6Þ `$PB—ß-T…̵}¦¸f¶™~M¡ª«†³ZXibÒ>g'Ôñƒ®û^i ¤Þ‘íÈoR0MË­÷ºY4 Ú1÷ˆùˆ˜Gˆër†c]2U@!~Žøñ܃è°-Š·`]' ˜«ˆÓ;èi_©ˆRŠÕ@>\ª×Pˆ­BuwW7‰Ø»º^ÅÒ!–b™p6F5s,=b9"–ÇGÏÜÝ+´b¹º¦]Ú'T0RÞ™A5—âý–F¼5WTPskÛ5rUÉddЖyAÂ9ZbÀâ ¹ÝÀbÍèYÃY¬¤Ü!åR"-j ªNþFJ=R:"¥ÒK3¢‚Ö4¶Ü÷ìàJÄ$€mÊ-TÂ¥ N@Ø·Ûï+ÛfÁÅÛœ¥fhª#Þ¦™•ÊÀEÇÞ» ÇLhäj³ÅlxusüúWמ¶J«÷P¯ˆ©Ìða•ÍsµÝÒ8Ru(† ¦Ž¶œA5A æÕü^ʉÀ(­¶à«j1h;sl …¦<.=Ò#–#b9‡xF/*„T·àÙ|û@ Ž”ÇÁÐæ ]´—Ô~Ë®~7³ßp†¯OrB0L%ÈÅ¡€ +zhw¼¸pˆc•Î‘ãhÝÅQ–Žhévêâ¤Ã+¼r_\±wœk-â¬\{(`ŵ‡%…gN¾?ea¼~s^W(‹ˆê¨¢MžÛêú[¬@Í–hgÙ]o”ñ£^ö®êøضihL¨«ãøªp 羱7á¸êLË÷âdzZ¾ú#øçgÆP½h[rnïâ Ô%#†EÌÙmgû "^b0"(¢FIä +V“—Ûµß +UTûÃ!1¤C,Ä2‘¥"4Ôâ÷c­É ¹îâ¦/÷Ì Ù‹åK:D‡•;¬|ÀÊ·ñµ)˜únv•N'Ü‹F©Ÿ¼¶œ !¹mCETÖº\ÃW¦FnÆ1ÇÒ#–#b"îðR‡—xé6òˆXh9˜‘Û(7k;Ä€Å3³`ߣ6R5 †6H¹ŒKú[Gvœn3Zð§[±wœk›ïÙ”p﬊—jÚÉÕæõôt¯/ˆpˆ‹ T¶îÌ·RM $©g¶Î)å†Å;É«§3(¡Ëí7ÞÉk[¿1ãé·h{ÚªÓÌ.KŒbîó1Ï ®µ=]ŒÛ‘c¦˜³Û~7ÔqUàZ%ÇX@Krsî›cîó18>VµįªZ(/&LyìlûTaQ(UR g UÞsmŸ(½ÛËx¡ +Zm¬êÓ1ÝNÉ÷ÝÐ0`­%Ç Í‹¹“ ¯eF\Îïi‡pC£¨6 æ†Æé{^|Î2ì¢Í ¤¡ôm 1àrŠ¯D¸\Œ¡r9ö â›áéÖ>n•ÿc¿ +’ܸaàݯЂ ç<ÁOÈ1©\üÿªP+{Í©–œ¹5tY—•´3T«Õht¿šÚ µ@óRe«amë±Þú&,Ù-/GܪblmÄ*Þª¥TCD +›çŬ±Š!ëÏØr!&<Ý¿'ýùÂï¬}ùþ«bß®¯‡á‡Çßû7”Ù¾¿ ^/{\üxþ㜯îñ¸£åáñ¼òÃåöÏa°+sò=רA+˜•áfólVÐíäïøvÇóß‘Ä$|±@(T ‚zÅ8X{nNo‹ÿ)â Nõ^KÎ]CÄósÊÞp-USÑìYLÚËg­úºZ×^B;qÔÜ !ëêQ;ª>àWjÔ¾9 OÛrÄ|ßåu“|Ú´½Ò +î³”}Á.´pgâF£ÃJ'£Úh±¬ž¶iJ(5¡fÚh¯a=ÉÃ9§¿Ì¢w¯¹ërÑšq"S¸b†¬@KŽÔûh"g7mg™ñÖ ++éÛk1ÒÀH#;›1p³œa+Û*ïJ&`äÕÕr·{¡ÝnGHv A»½l¥~Âúª6oØØ m¥ãNEkp=¿÷¯)P}ì£! ºŸÎ8Þ™8iðʯܺ·—~K‚ZÙ6òA„R$Ìè§^^0Ù¨.Œ… rÌîà†ýôÒRnæpÐÕ³¾èaË@…|EЂ«OâWÈ€Gô{™­,\ÿ[4B|vÞ:Üi!äÖ5Jh¶ñ`y ¶ñ[mðꯎp»Ÿör3WHa>[ö%ý&síocmÑê­öÐwÛÞvr=)îïî -b9"–['ñ ÛiÄöë¤Ê­:†d…ÌRºŠÎg«3°‚&Zž'zpÊàH7Šä8ÚsxqÈqfÈÅú›ù:ˆScŠ6ÇÉ$±\ÃÛñËž®öáïK©}»‰c ì¡Ïáwf–`S úØg3³åÚŒhu󜊘D‚¾1-K¥‰| aœ0¯·÷ãXR×éxÊ®;Ý‘b~Ñ"Ÿ8«‡ÕçRΡ«]/³×k„óFn¿Í¡byy瘩 +…¶Ðymoèh[¥wràЛ1ˆ7Ú-»Ú ÖbÚq»Mœ‚`Ù¤opqÈœC~G;ìÁ«Ó» דâœvÅ­A@žvòà ûÆvˆ‹AûTį6$†d«ëFw¨…6QÏñ¾¯i V`µËî$–ÌK¤…†ÚÁì>Òäƺg¬ÞRëFž¶WRÛjÖö3_!ªµ(RïY¸OÁžnq. +Ù-\“ÝZ:3G¡ýl@[>jRÎaÅxÇ;h¾Ïå\+#pòòycï/Ä/‚s采kT8c ‘Õ»bj¬×‡ü^¯Â 9°æ~@ŒÇ­&´A¬Äzë/ A’»žºç[ãt†ˆ×Üv>ÁŽ€YVûðLŽ !'ë«â2Y‚Í­„Eオ(ÕŒ+2¼Ÿ£ƒfë϶ˆõˆX{7=¸¡{à9Ç0¡î’(êu´Þ×f6‘LÝ´ ÔàJ@Úœk¡ÓÐÓ®•ß%%ð0û¼»Ã`òy±Æ¹‡r½»ixÚ‰ºÍ ¹X?Wn·‘ì>– â}œ +Ejøí ¯zЂ«ù´)öBË®B%\Îw¡‰œìg.F»¾ýN’«“¤$'_Ífi80òê¾9ËŒ$š¸i›â0qC»âš86Ê«õ{œ¸1ÄñÄep¤@×Ìhû©ÂÜ0Üux’ãUŒp«‚­^I²Ú‡§v¼x¿ô#HP¤„é’Nkxy^+ Ø‹n¤aR¨c5âY&qµùmñŽmŽqJàš£>÷/µx鈗¼]´cjóZQȾœÞ‰g +T!ö ˜p—K–¬Üå«‚êVåÍ ´xYÌñ$wd,aq{çW[´zD«=~enäÇôìŸ X (i€/¨_IܼWÞFñ>E;1OfÅÜWÃDýŽðë—Ýë§H”Ðfð;I»ò?ûå’$InѽNQhˆÄkaŽ ¥dÚÌýÍÄ윙Ž%Š %£ŒœžU×'3Ò íp¨T¾’s†¸ìO‘» Œ5¡Þs—½ ½Û Sá AŠöÒÙÈ„G²ì“fC„jžX£ÙœÁ¥Þ~iNl6 p´ÛÏk76l’»Šå¨XΊ¥§xj»Yîóä2®Ø-פˆD6á«©vcÇ U0F¼·ã¦5²(*w§ïÔ†«Í _ÉgïÍ7@IúY¶NúîE”-Ç +âFþ4ˆÊw÷ñAï[¼È=<ñÛñQßΟòí(àÛ©uÓùêA¯žôêÈ|‰A+ÑWÞïу†`ë+^ÂR¯À¾#»xÄon\¡Æ:‘Í÷êtïÎß `¥,Ñ"}”>PˆR&»¬õu§ý´-!@Ñn®-˜ldž@(¦ý›b 7`ûXJèwlÛXææ7E´ßJ¶m3bÖl›@å»7mªwQ!DïN²© ,@¦;!/Šôg"fW0MmÁs- O çà†AÅ#nƒb9)–7`bÝ9g?C8ÚFy¶!ý’{åléüòÒywÆcK÷ÙŒ÷¹1÷£ö%±¶n? +Þ¯êAÃûwÑðŒowÅ~·g`ã>SÈQ±œËGÇLJ„Vìi?^ƒIC|<芿˰R²yLxðàè·Ç˜Úâ <’r^ÙØÔ"-Ëõü:Š¯êMÍ°¿3xÉ}Ì 5€JI{y’â«—Í7Ú{3µS’á§æöÍÜPAä+Õ¾dÈÖïáA÷Žô°ôêI¯~Œdƒyve¬èßÍò ¢òÝmqЋ½xÒ‹}ÿ +%e¼¦} ¨»ìb…½&oe»Ãb/G(L7súTü-PT²ÃmAüݬ0¨=É÷P»á1TŠi6ßÕ +ÙjñdÛù;Œgýüó<Ø8aˆC¢ÉQ±œËG'ј9èˆ'ʾvAxd|Õ/ç;¯‘9X)Ëß‹}üRíÕ]K•"HÑþé6ªõå¦=8ÛçÖ¼Î^Aá¯Ü¶17äDÉPº°3ͺcÑ›­= ïŽÞ©ÀŽP­Þ ;³ÊÂÔÂn†ÉIñ ÅÁ,[¶%Ñw+d³@œ¨]ÈéëN7=¨Õ“Zš¯’m5_éÎè°’íwƒVÊæûC±ëY±öŸÑl ÒS4Û t *fWÛ¡Ú†É÷î²tpË-¼b; [¢ø¿ƒu1¿ï†T-”yx’+¾ß¹—ÎÓ`S0•‚m?W°x¤¼Þˆ +÷«c“( 0úv\¹;Œ±DN•è˜ÞpŒWŽŠå¬XzãÙÌ›]Õ ‰Úg^£v¥öcÔž³ðã5ø¥~3!j•’\FwDÄЄS6`¯I¯è6kŸÂ]žû)~\ …wBøzYªSÉJãêpo®8)ñÉlW¼ŽˆÒL›´o¹CÔ“¦CÖ˜Ú¾Ý=ß©\¹ÝŒ¹6ŠˆLñǵCîö…ÛîŒ+f™…×Ì´ +"_‰•ï;r +¦’Kzx¿cn»cC +B1MAx-®d£ö:ßhë¤(¸–Û›ã2¬åŽÀö[±4‡ï8Þ„ŸÝÊ™C€,AŸ^ÂÏ^êA°žëˆ`-hw§ÄTþ!(D©â;\ü.b +xñúy¿£ƒÝA-Òþ˜DÅWõ~âáð Î‰4ªõæÞà``¬ÑuƒõêY¯~\êæ–ø¤›‰@EzóMˆ;@ÒÞk)W®×RŒ2^‘{8ˆú#F÷—#¾*7…4·š–Ť ›Ê<Øc# c€c¦xE KˆÂY -è +©"‘!ÄBÌní9¸ïWÈÑ>E²›<µ¦›Æ­â¼)Exœ?„ÖâǧþûoßÌ€¿}ÿ¹8–ï?ÿ¥=ëïÿø¥=ö×ö¬_ÿùŸÿ¡>¯(߇ÀˆqBûís QýñM”xŽáñm{o«‡ßÞQÛ’žÿ>þHiÿ™¿ýôûûž/~ýû“~ÿîñ!Ïw‡ñüºŠ¥´W\1ÏÿÅ<ì\¥¯x!CXx¡3°StËQ±œË×*ÞíîÜ/ØÅŒY²]DŸÛ1˜Ly£r–Ê@Xú¨¶  :P‘ÌÃ3P­\nº|¾„PÈ’ãó0ßáT{¥¸†_N5Oç»Û$Õ!½±«%Š—Ì5à*©+ap’,&VT‚q“`ÛK­`’!÷ aZºmí9ByWJTÓ®b=*Ö³bí)>gðY~–Á{ù׊؇[ÆÀ}üËn€þ_öË&¹‘†ÂûœBB‚¬çs„,“Êfî_¶ä2EvÔT52Þx,%‚Þ{ãñEüÓw…Àó=ÐÑžk•TÂòÔØrÿ#ŸðwÎ1Ðrl8ÙºP~syñÙ‹ÛCy®õÏáNž÷Æ{¨E¤ú±»H,—/Y€stdj–@»UíöÙì!®>ÿ"–†Xffœ3D{%1WÄÜó ±*`ìŸÑ†}d ’cw¾Çû𔺮!d?Á©üÎÌ|Ÿ*—5/V¼ØðâÄ|Lr/çN¦]”"/×ï‘ÄÞü—S9>Mº=âƒxzãÖw5W#0v=x¯‚‡þ;§†~G+jÑIsÀ¢EGùˆ¹·mG¨á0Ýz»á( ‹Ý|;_ZpPé_'Ô¯»#H”;Äg¼á8 +D%ñâÁ6Ó¦±œ¥Þ|O¨agŠ@„<ÓÏÓ(Ý]FþfLjIÆ·ÜS­ýXUxjîþ\4‚h¯ Ÿ2™1CÊ8&žtâb©ˆ¥!–bw}‘€³ôˆØºŠõ™ É_³ôGÌh€IWßt{ÕûÿH W´d8åñqžŽ–L²:iíî:0eÅØ›ï§7pMÌ-1_^Ø(Ér²ÞŒO·q"ùÐ/儶¼éI¬ º¾›Hlxñ ÷óö3Ž +¦Ý;e[gà`c>¬Ÿ=¥cíu´SzèÒ&ÐÀù•ú}îÚô•oŒDým;_ãqÖ(C‚ˆÖÙ¶J¿“¼ëõË!ç®~Ãn¯W•ËMTÌ¢.YBaûËþòkN h·Ÿ3bºþü{y­ß¾}//û£¼ÖåÇï5_‰ON%ìƒ瘚aðû0,nï†Bþ|`ÁnÃØ–VV¾¾=#‚Æ éöïö6«Ÿ–çå·_¿}ÿþJïèú•ÿ±Ð·ïË(_þhø b¢2› €Âò¸¬`]VR[VRmöùíÃÌÍy«pJU8¥&œ®_»ç§òm;qï·ë‚õº¤v]Òçz·´Õ{ø^ª¤—éá`½3dQ¹OMÛeÁzYR»,éòþŒ;ÄXKE, ±TÄâ?P +bø¾ jÜ9tÓ) ¨ZLÛŒ—*^jxib¼½“"¤È6$暘[b·t['D¤ÎÒý«³`ÝY>ˆ©&^mdÅÒ÷¶ît¦¶)BºÆÝŠX?_W¦æM¾œÜµˆèjáÜ…'É–‡ž&¾;ã½îÑ¢¿–æMk„?WóFLêÊ'¢»dvx°æŽOÜ”´ØÏØß¹á1ïŒ#úÚ¬K <‚+VnXù2òÒm¶/•ïÜhûáe´Ü-Zpuf §0&½ª!®®ÀE¾ªa\ÏND¼yCè(b›M9D_Ãi;3¤{}hxúÌX¿uÞN9NÈroóNæj¤ +åa®ö¥GŠðæÃœÜt4t¥„|õ†å›v ±ŸCÈ\)Á_›tGìçÒ,º…,Ú¹4ë½5¯T¼ÒðÊeœÀ¤ ý¨ìQ/[s[ü,úåè¯AÄDãN&5±´Ä2"®4RÅK›Á5-·´|y¥ Л H…F5ãiE,Ÿqp§ŠàÏØÜÅ]tS%‚»šFÞ\ññ¹¡»g¬Cý>yndÉÖÓï Ï >ìÅ#È®jÈ‹Syïd»ÞëO Èr(k^lyñòX Ò’l¥Ù“7xëdî2Ε†9ù»3"Pàäd¾n²Í¡7ä-߸«Ýâé|[î¿ÉÛÅé¯ÿ’¹»ã’§Ä s§aÛzZ/0Ž’p…;S ú¥Ý›|ɼ“§ +ñ%߯›ó“3dÑŽûFÓÝóÕá²IE, ±\Æ˶É×INîŒÌ]gç´uvéèaº³¯oÀÛƽÔЦDüÀ"|š¿Àð&an,8zê:þ¤›—2AL´Ó{v¶úäxo¬ó=CoÅòuÙ–¸l”‘:U½Ê ª‰©%¦ËKsÂÛqáËÐÌ,‡¸G{²I扖ÉUC×Ö¡n¥æ•–W.»rxF¹ý&}TÌ*çÞ´õ3ö–nj޲£*ÜÑ*ì1ñQ3>RÇW¯ûñyš°;w#ó×ݽ“¹ër%7x®‰¹%æ}Ä33~@œ·“Ù‘W|]tË`]ÝHQA²å×ÍvŠ·›ÉîöÌ_^ècEÔßR„y¢åàiÛ8z²]wg§³ ÞNN‡ÄÉ]U÷ÔÌ8>²ˆÛ›Ü'»G{h;s'aôÖw˜Ü-]¾Î8zjÁ)–Ïu¤ +®‰¹%æWª‚r²ÜÕñùfL& º3>Š¸ö +ªˆ©!¦ËLܹs·à)î’7AP¾Zñx¾Ó61¶â™¥ë[1'oÆÆñjl½ð¸œíêPlùu7ÅÛ­»òƒ Æj˜î`¶\±rÃÊãÙ¢»šf^fK÷|÷džàÖ +ܹ—«,#}œe»µp¾eY™ëÃrn;i+gmæ{`9GW¾ ×v>γ˜ŽŽ2wÇ¿… žì—ƒ·ÉÁKuð¥ÒmÓlõ¢ÕÀs‹Ö—®«ñº32?BŠÒµV®Y¹eå˨Ci»äïª0`Í/õ‡g‰ýE›§®Îññåv|õ}êrËWý.¯¾GòvY û!f|¬ˆÝ™qßÕRÄæÁÂoÛ&¨VÑi³–D¸üù˯™ ß~Î ™óõçßË‹ýöí{yÝåÅ.?~ÿ«ÙdRÚÔVb?–‘Ô“àn“°¸ ŸBþ|`Án“Ø;(_ßžA£n¯~ýw{—Å/ÞZž§o¿~ûþý•ÞmäöŒz·ïËŒ(_þhv;ossûòF"ŃòIß>Im´§GlK9m1fíïmËi¨ ÷æû_wûÄ{y»Ndã`¶»riálE .í‘ÀZþ—ù!Þª•Ž–í$‚ØE)È+iw¯Z÷ìÚ¢C%,WCML15Ä4CŒ†±ÿµh·ÄïEûFü\Ñöf¿XÚ@?þ@YzîðÉ;Æëý¬^œ¬p ôÀ/7¼|W_~†lÖUï «¤7õÆ­Þk§ñÜ\pÏ„+§]6aÛ,?;r4Ë`†«[åa‰¡€‰¿:ÄÊ‘4æqµu“3žÙº©Ôx aÍÚñùœ˜CÐÞŒ+âiÿ[óè–›M»ÕóÅãˆvVÁC˜qµ¡ œyœsOu‰–xf¾}b&„”<é—c‚COÏxýÆeˆ_x}Î$]ÿÚ í/,n>‡&³»öCF@„âªKLÞt3]B*biˆå2±u)É05žºAÜ85ˆˆÑ­¿{ÎW*sB`=5œÐüµÊØ2‰£[ ØÌq + AÇÄRKK,/%vØ%Ü5x^¢¦Å:>rÆ”KB[î• GºÛö;ã?u$EÓÝ#Ö•Â’öŽ¤#*ÛÞávå›C/Üi‚ÃÙŠmT.gY’’1¤4Q,§•°:,È„Ðíé”àêÌ@”݉ W³Ã< c×s?h§+Ãò"i":&>ÏÑéoÆ!Rûïiji$Gç"(Ê }â©Ä%5^Øtžq5oiìì¤ E°Ø¿3Ïgœ2„HâÛ;ÝC\M³\sCÌ—‰ÐH©ZU´³”ž( 1;)=Ï‹Ìœ{úµÝúµ{óm!±4Är™PD`°ÜÛ¸ÊÕ¦g¼¾¸ûó…ü7ûÕ’$GnC÷>E]À0 ¸öæ^ÚáÍÜ?¬.iœé(ˆL'YAŒ´P¨Õ]•zýêá}ª+ãƒÃ€²ô[Ú6Ý=ÞÚà’¥8V±e8ó×»½n¹YÔ=»¥U Ò„cs0´dÐòÂQ´P¾ê n 0‰S(W  +·„qmiÜE;è +Ÿ(<‘øåŠP,»—¶a= X(ƒÕ3É-Ú’õ)Ö#b=#ÖRL Rk$Q‹¸$Õ15ºŠµƒ”Hé„”úHãi7ñ󧋕pˆ‘A†_Q¿ð°å¦ˆ” ¡œµô®m“!$ŒÀ²Z¿Óü*TÂÚE;ì¿®í\([a¯%ׂd¿›ÍG{k …R‚d$s/mE'Âûƒ$Î1;ü^îé+u§¥ +Bèqº0‰ÃëŠ »å±6dó7Ú¬v™Ýäg™a·‡Ýñƒ©;Â@3{h7ëa\2 ”¨•Çâ×Ôz§Ù‰Þ±cóé a˜­¶F^Å}ì5&¹20wu;ˆwD·z@¬'Ä:€XRtÏá÷²jýHSkOâþà µ·Wv`}ñë“}¯ˆ +Eù£µalFøµ@Õ>".ÁvKs]¡Xv‹ïŠiy³<‘~°ªßm˜!•”»ü+b=¿Ï׸&10V»lkæÆrK>Åûõ_® Ú| RÐ"ÆF¨µIÒ"C¼Ú³%¿Ñ!¹@BñË[®8ë"q.âX#®4M4,ˆ@5;ÕrKE`NæŸÃ ¬j#ƒîf΃Z馸xŒbߊ šK8G7 ñU»h+¤ìu÷5‚;:—ßxGGHj¯JŒÚZG ÷–FI·;.¹X5ø¹äª(Š¸p¡Ì5ƒˆ|41ô€XOˆuÄÑÂq,É@3{Ž¶àêî¸[©Ôçwt̽E{ÐÉ K¼´ø±åXs.ÜÕBì¥òhÒu1¯¯ˆxÉÁ•@ÕÜ.ñ ñϘÎñö—Ö‰kÎqÒC2Cnf#Ÿ>\³yh¿c¥#V:c¥Ç}xZ{wm\Jbýd*˱œËc •1'û¨?Ü[ ’˜ÄéÓ8¾Ê°Û, d®Ë{Ä<~¦2V ¢ŽO1èië»0WÂÒë£ ·\½Ž«m©ˆx­'Üþz÷Ê1UÃ9c߇G÷çZ¥19^Ñ*ït5®VüÔ Ëü®V„ Õì Æj—{„u/n¬«ù'H©z©±ÙÎ`cP+ªp¨ƒ‹(ßh̵@­QñD‹I¼@ÞÌ$#h•'0Øéòaô3#Žçj’3°v§Ü¯üÿzpÓpż||NÔ01H­.â -VÎY̵¯á}Ê#„3ù63J)ù€ ²¿ó»ðÒ /=Fº•aß}åVÎ`å +Ø[·†mÖÔJ&°ìEñÕ+ëšî˜j]” +(âEÄ,!L½³h6®7Ä2ª áÂ{›…4´…H]éóú-V»ˆ÷ë‚L“”ÀRê{Ù4´÷Bͱ¸jø­Ñê­~ -#puµ;áÊxX·õ·Ÿç–¯N³I–Ðh+^ÛÑq»5™£…ìTÃȬ¼ÛÇB¹.1`QíU¬o¹=båV>aå·¾|íùS¯ÛL«Žó 2¨øö0ëâ&úY¨ŽÃ֮ʹŸlÛŒ ɘÈõàý4Ì–¡ý©8n}§Ž,¶8V¨ìúð†³ êêâ35™C9[)À”#ñ‹í•äööM¯..÷â‰W¯ÀWÈÅ­lûcnZ'_IHæóevߪá,ß1ľ|¨¨ÌßñÒ/ñÒãÇj˜jhŠwn¬à÷&bFháixµM$üm´W‡˵BÍìU«)±Òu“‚5”q\7·\* HT ·…õõFK*ᅵ䊃ÜjQ¢In?ÍöA_¸umd ‰½Æ°]þ –~#Ó#^=ãÕq¯-´þX«öó»q~uûㆳ!”{­Ome)¥ÔOM-P- xpÔž„¹7Å´²ïРzÜî¦]ÊSujï¡š –‡‘j¦¼z«ëmE=iq±ñÝúeZÄñIª¥6É­G&ì·Þ=l!\#“ÔŒ¬éHw”Ý·h/‹7¹±ÎÄ+kùÔƼ±Ú.WMâiw3oàZ çâœË·¶~­Õœªã½;–Áäèá€wÐ}Gðò/ŸðòÃá4aÍ!LWçñÔ€ÉSÅ<ÄGŸS…?Þ +.ÞnÓL¸4®Ôßmû,Í$P«b÷èôˆXψõñÑ£ $ˆ'½HÖ÷´‰øž G„a{iF‚JØ·‰=ºšh©^kŸ•ËÓ.NÁÒ@ ¬¹+pIŽvì•B’Ø»¶ÇìÕyÓ8’›J{’zh·“n¬C‹6‡3+ýê0±ìülsHR3³ŠÖµßAÄŸ°ßö$Ì=ûÕDçânU‡,Ày Únr{Ä«¼z«ê` +Ép¹~g&ivËä^«¨ 0‹;„öóßxe’k…š¹×ÏäˆWÎxåCn–2äZüÿ ÝÀ›¢ §R^§Y M4õ Š{ÛPÂ^¬Hu4í«ivZܤ¤¼vRAGÝŠ‡¥©eÜþD¼Ý¦^„X¯&Žns¸ØµMYmü:´OùB¬-¤Ôs{¡}°¶6œ!߇ÅÁ„R5Œ¨ß©r9J”oçZ]â­k¼u‹ßGýïsÄŸì+@FÉÅ-öáN ïÙ‡»2ã y°4Žýl›èYÏ HQæ f%•ºÍñîÃ;·¬¨<‰§‰µhi™§èJz]«™|Gã7:2é[HŒ¡””ÛŸ‡¦K´ºF«—Cë™pÊ +RëvçÙøôLna¿¸#0†áX ¡î(ÂÃVŽOzjÁ2yxOb|B±—8¼ø5s ¹j`XÏr]„Aì¨e‡êœXñ"˜wÝž`® Äu…¸î⸩¦Q7XKChÚ£zxÈíáXÆm!(&YÌõ@»Àº« ¥º­PÐïQ·b.­ÌÀít¹fõ7[nC΋¢P©dj8!‰eWVxe[¥ÅµI2߆›­–퀽1¼ÒAôÁ¯,˱lòûK#¯”ÓAÔIÃ]OÕÖÍ€U^êÁÏ6É5¹ƒâüƒ«`Óƒëej‡##/“X@š¥E}D‹h jiñ±²IVƒˆu‰X׈u 1¹D|{" g„àùärÙ•ãÂÀÏœp ¬O÷ù.ÎzRÕF,îâSƒ¶9¢ ++4$žgÊi‰§‹g¥g kã¨gm;‘w{ï6·û¼7綀3¥¸¡|Ž_ Væñ†ù:Ú|óž-QÅHþ HЬ¥óm¼4VD@×$ÇD¬ñ;ÛÑz®"æðà¬ñ,8®KÄu¸nqÜ55Сx;³ÿ®øݧˆÔÑš‚FlLähÍÀU¶Ñ0ˆ'ÜNP‹¥W׿ùìiÁ©†½D*cš£¡e“³[O'´“uàVÀìüFÙñÒLÀ'n6dkg‡êœp¼@ÌKļFÌÇ×âºB\÷ Ž´#1†i=êØx¢„Ób@š3|¸§˜˜jÊñ‡&v7áSsƒ+ôm_Ç%¨@ÍŒ˜Â=½ Y½==Oj jº3Ž^ÛÉþ@¡!ñ¹þ»Þ{®í“Á\¬œë]WQá@Œ™ŸõPÄQõ~¬˜±{M7Ü€ˆÉA¥n/£Aò¸…",u´~u‰V×hu‹_r;ì–FœƒGßÄ,º¯$J8'Ÿë:óÕ‡iÂBœALΞn½lAJ³ÔÄÆnâ5€ò6âa‚Bœ ks(b>k ´T—ÃmIî>1äô ˖ŘüN·…¡ZËÂb@S›¯ýJ ÄQ7U±»Ož½7Å4€ZÒ'G¼N¿çu‰«¯…àø±WþE7ßz:„¯^Ej'œÔ´r§•GÃÐtp¼ßžpŽ,/Wï̼ òtôf<:á¥Y‘!Pj϶[ íܧ·g…œð NÉZ6®pœ®ut +ÄóO3B\ýù]b©ˆåF,Äèú¤ƒj;›Ss;ĆÀÙ@4%ãŒÑi–;Êø<7>oñ¯÷´EÑ Ü#Š¾2á·K„ÅY¼gm“±¾$®+EªˆÓ8UÄ?Ï$Ázæö˜qo W6Ÿ8'Ÿitº‹i«?ÇÝžšÔ«Ã›iᢠk¡Â¥ +—n¸ô×…=åŠÌ‚¸)¼Ù\ÿO»P³¡™µì`šyõ×¼‚‚`ô‚l·Ùb‚œÍu¯aGxÙu§¶óh õœ²ËË'O¿;¶…óê¹H`ïÊÜ®àœäh¬cû¼ìVC{ã¤"–±ôÌ—”ÆÛvµîk5O<˜­$†‰“;:š ’[hØïLà€rZmÁ“!È@–=3›4<_—8Hyu1ðÌÁV€ ¿RÁŸEŠº +ÞX°„œÅVÈõJb± γ4ŠÕœTÞÒ$ˆÊÓÑ›ñcðÒhp—xÝe#Ð5|xé ï³y{ò5Á…ËV϶«y³Í¥MZ^®Û™FF8¹j˜_>ÑîY¶ËZ6ÍœCsK1ƒX|·YÖ;7¯¬×rè;ßü…K@JÎy±åŒ1AÎÖ>ß>´ß™uÁ”=od¿×%d[¤ê}]r†­ìvX:¬·[ « ‰ÁP›þÐY$=˜X$C‚¹)b¢7Bd¿öîXÍN +ä³üAH °ó›U¸tÃ¥GÓz)A2iÇÚ67&›‚˜8ÕaG3;¯Ožçg±€RÆÕ3®×®On‹0&r:û,â» ÷¿;‹r]íkSG\Þñ QHÌÀQ½j¹YíaË“:6Q9qç|ן‚Hnsß0ìŽÛ9å“‚W,7 ;6NÑ3âÍÊeIe0¦¥Uxæl æÕjåý)f+!fst[¹o'oOîs_ŸXÊ«_Úx~¥»óÀºƒR7çÛU¼tã¥GË$j[¿Ýíauc¢òtlÕÉÞ+n©õžv ]gÞ²m–¬%‡Móê¦^KE,7bé >ËzälnO^µ—‡ÅÌh;¬õ*AHy±=ÌÝ8)íŒÒ9ÄBÅÐÔ[¸ÍªºDó†;šÃ«ÅkÅÊ”[VÖ;×ÆT»l×j„dyLÔ¼}'…O,5»wX /wîÙ¦ o×yjèWL¨­¶°_ÕsÙJ‰ÄL§ÐUpŽ»XJ#s}l8×^;ï$5œåcBšÔÛ´aæñ $ù<Ëvkâí¾#fÀÈÚ$N5qº§ñ}Ûzôðî\;Ë{3ä¤N?ß³G&Hãó `úÃ]»=¬¾v*9¤áåŠ]¿åþö÷L€„Ïï C0úöýßʇý㟿•Ïý½|Øã÷ý÷VýSùÈðŒÌˆQn“òC¿MÂÂõkpyß÷/,Øs×—Œøøã ÅkϯßRÊ|þøî·çžoþÿÏOúó«ë‡<Ÿ¨§ñü™çÇ¿ok­åØ*?TJ[ !ëkÙ=86O­ÿŠñ­%ˆRâþ5é_5?לT´r£•&í÷ÌÙ›ëÚV½§-Ïš%ö»¤¦•;­<ÅMµðí G ÂÙšóíUî„rßZ&ëµÁåǬUÄïöîÛ_œ¢ö6‚€17‰SM¼¶Rµf\J¶àA3f-%E¬=ãîÍkϸoóÜè/‰¤DÑûÄèðËùŽœÏù¾«U%È[´TÓÒ–Z´ÕPJ6&^­ßY©Á±tn§F·¯žïyŽ&¡¼ÓÒ¶žO:š„ )i;•?¢™ÊB¥KiõßMü¡Ø.`¦Åóë¿Ù\CÛÓ"”܃hKâ“,‚CˆÔ¶à*šeásÁJPšñyÆÆ)ÓAÅ2„DŽO<ŸÑqÅ檢oƾ*X@oóF÷®©ˆ> »ŠÈQS[Ûl[$rÒ¹RDgýéQDªˆÓ8u "äàØDÜ9bxTÀ? ŸW~¢BÌÞ :êÁ 1|t¤Üï8dÀÈÚ$N5qº§1bªˆéFL]ħU ÄÑ ¸i¾÷Å…K P£cóˆ'Vžã6s„ì&ƆG HØ›ð`åYdPŽÏöl'zÚ‡'FH )x…}GO;*–#CŒÎG£³mNöÃs¨ƒ×~§ÐNt…ãÒ˜5SnŸ›½åw¹;pÍ«—mª* ²áAçÐq3ƒ\oýBQHE,7bé˜1+ABõŒmÃÊÃzÍ¥ã8ÚÆ*Î+l ¢ˆγˆGUìVË !‘C[m]§³­?Œ8#Ä‚|Ž†Y ¨®–ð¨Iüò½º%9Á\É·óŠë‘o_̹ÁLy 7\$šföYwBà Þå98Ýå¥'–W-º½R‡+„. ‰†ž~·,–(]wØ7dHIßs÷¸èÑÄ»ÊC0¶keª‰Ó8SEL7bê"VàìUwð¼*Ïšy¤?ôÛ]^ÑV¾Ñ]ÔÝ7ctÛÊû° YËèéw»Ì0A¯Nî¤ÝPÞgé ›Ù'=R"•Ï ®‹m¸i$Àœ½®³`¾=®ë«á¼”H )¬¾ƒ&¶3Ö œÒjELt³Ã®7PA·ýî8ßÉÔK‹ 5,Q!æV5ë5á•9¸·› N¶r.¶k®nVz—朎3$éH!esii˜veegSȼÔÕÂBR‰å5óœ Mçú퉥 âÊ7‹ÁS¨–û‚€ ÒBÚŠU*V¹±Ê£©Ž@ÄnJlè`ˆƒ+]–îË¢3*\W¶ÂÙ« ?ì¶{¼¯ìöì—M’#» „÷>….`\ûï^ÚáÍ»„©ÖtË!ˆ,‹ÕAÎx5ý£Ò|B'2Ígä}Ìéym0 M¾Om'pÂ0„×#V6`•+‹ä¬ à ž©_pÞ à©³- îýÓÍZb;ÛíÔÆ¿Ø8¯ ~õ4KµñrØÑg-ۼ栘ÁÌûüñL ¾/Z4ã&âC#ˆ¸ÃÒÍ8´à‚`Å£¾³¤*Rÿšh#—Ð Ul·y÷ÎNÌAx4: º[Clb»è8CÉÔ»2Þ æ©Q§ ’ûQ7-9Fªa«˜ÃìÒ;à‚†DÎö‹W[^=òêí;[š0Wç’ —3d»úê<k¬`™0¨z0â%›;:Ôë3">ËÛq‡¡é¾(Î/Ÿ”ïõ³70-ýº3ìýºóÞU¤‰ë;aH<ÇÓ¨øib7ŽA)‡·Vïèûr /¤ Xñ«Ãyj*À.ñŒ*ü{'ÇvVv°ûðé£ãùŒÏN8T„KTןò m3Épã¬áµ¯ lÜý¤#æÀƒâÁ‹ˆé4qÜ%8k˜sëmr´èmfÌ <…}ø¬CtüAV=°ê­ë‰€0RŠ‰,…@ï ûl[ÕnÁ°ŸåíÎwŒ6T%HlWw´†÷¬©þ®¤ ?PñÓùæëWÑÀ /¿Š&ï¥"È +bRá9;ÜV!‡æ»ž•‰ß'"¡ù~IA[b=ë­#…c]!~Uט"ƒ˜S景xáÜ_µuæ»Ý±S9H)²‡ 3{2 ¥Ü•®µ¼väµÛ)éŽäÄ éƒR¶Mr­Þlž)’-žÖÃõ½ë+‹]}[œå Õ°UKGÉiw)Ûí¬žpeúΛâÝH«O—:Ù—†kÃ3E4Ÿc¸6ø/St¤0$²ðn›3ã©þ[‹r¸yË9Z3Šú$Ÿ8*bÄ'^Ußíˆ)Abëoݧ6Jg |¸Ù¸Q_¾qâTA)ظyÇPK<”ͱG$®ï„ak_/96kíRM-ÔH÷úþ“–Prýú_ùkf ·ÇÏU€RùøùõÍþö÷?êûþYßìöç?þý_þ“MeШ&¡Ÿ“(xÿRÿÆ_ß,IÜ¿%Šõã §û$ÿÞ?¥ÖüñS(D?^þøúó>¿»ÿ''Úi<¾®3ªöŸ‡D­?«ì•?é}ª‹vX1…¬IÒivbö ƒ¤dω¯q¢±Ö{§ƒå’£OºoÏNøE·ãÒ¥µ–ÖŽ´Ö£Ù_5%ÈÉÓÅž5_!¨'X ß†v8û¯îVR˜ñž~gz`ÆPëõ«ýˆ%[í°eÜ‚É!4eÝhÄ¥Z1S¸xóí*¡©>›?N°o¢}«¾Öƒ‘\"þdå–•¬|{]ÑfÚÈž©«ÝuŽ™T›»S¿X.sõH€ÄñŒgŸ$~üuŸkXAU£by–·K;¦áðÔp†¤¡ý®—J4yØÛ¿ˆ‡›p_Â#–öª©¨;7í4:;àÐÓ¸žEß™nïäÅ~åÁ¥¾“]ng3ëŽbêßëÌx¯‚&HaåY0àÄkÀÑõ‘<13¡ ‡%x= +$±^‰X¤×JùñôF‚0pÃˉ'.]!p!ßHÂìPJu§›ð7,2Guâ,oWï5w¥äap,f{ªÁ)õÔðÎ|ϲþ2Þp'FÅx~E{ï&ª¯ÃÚ‰'çï‹“3sÍ7ê‰,Åëk¼ „½€d GüE¬-±‰µGLÅO‹Â;X.ý¿—Ó\"ƒ\}5´ÜÐò–»´â°äà$z8ËÚƽB5hë^½4Ö`¼ ð` ¿kiRŽúÂû¦¬€’vp­¿aûý ;l¿—gr1PNÎi 7ÉÌö«”Ê Ä¸t‰‡KÚó<ž)ˆýfÌ5)œñZ¡h€C?[q¾¥XX!&ž©>žÞæÎPÌ`JñYI<¥=mÂKX ‘„ÏN·khÒÐÊVn†¶U_ßÏ~%;^n¿3·*hòP_ÄáÜoi#‘kXSδö+jÚÈÎÅ%¸€dìoÜp ~î~RO<'6Êéê#ã·M É¥N?®ÁëÍw«»H‘Èù:1̼0”kÄå‰á“–[Z>ÒòkÚ¹‹ÆP0œí‚¼WX즆:ÛÚî4#;=ݸ¬‹€£Fa¼œ7°§f#ÝA9Ò*ˆn!%ƒ$ÖÃ"Ë&Ù†·Ðz­a¿°Â`)¾7é4qÿzSÃHj¾ícÁâôñô>2æÙã/xÀy‚’‚ã½Îs˜±6Äz Öï' +RPí‰7’næÅ©©žDº“+! sPÛW›¯¸Ôw²Ë]xbÒy÷X —Z†‰£ÓOkâÚêåí,oèµIX¾Z³h¹6µL¡æÓrCËZîÒÞ•à÷Êý·:š‰EÂOWJÜNx¬B„ŠØ® ßï#¢ÐƒÏjâ íñÒ+•Ñ¥!E1õýw! #8¥^‡à–—¼üz¾ÓÜ p¢ËûïÄ+.(«a½þ \ÓØ="ž¡†Ã|­¡µ­x{ýmt­–oÊõu8Ðt¬¥µ#­õhgºÙ^ó•ì xyÛ™ºm{õ3‡¢¡βvH‡œ7$Íri+†ðvµLÜ«tK¾øÐ<;áÐ 0]~dNT„xÉØŸ¯¶Äz$ÖÞ|›ƒc8,<Ô°ç’¢c¨œœqdáŒÇ4θ0q¿¬¿§á©>ÁP0<†Vt6J@.ve¡œ[=—KëïL §·15e”À!þ_wþ׺³_{PrÈ”£<^nϤ¾“]>߉‹–¸‚î”›õÉí!žKqM;Ó†XÄ:@¬XŸN±«-¨a«í9ܺ/U wögªh&?Hüøë>¿‹2EwÑŠªRg,^r ª¢ö²¨¯¼•+)¨jD;£¦áiÖ°øˆ$ô~p,c÷Îîéê#c’Ä”uöýl³&¼Ÿ—í'ˆZ-M‚SñÓÄÞõ´1âpéŠB.©t-bX}O9?_xZªµ§PhjëéXE)RżƒƒOÎ8V…2×A}UL nxùÀË·^p(g’«ºI´n¸áÕ5b¢~ïQW4JŽ)½ò,k¨Ýbªá‹ÕZV;²ZÏͦžVk×pÙ¦K1Pä;­Fœ‹0Þ”Kºø€û{¥¢çhÄ×ôÊ1?û•ˆëÓ)‡™¼¢* +:oD¼]vÜ›fì›ÛB3®M¢X_ÇËرbª÷Q¬ãÛš3$íŠ7gŠ‚Ý£Åûäå–—¼|{]/㵆Ö´62ÞLÀîýós™Â¶Û|k8§’÷ѯd)¹¯ˆuˆK:¦0ê&7¼ÚðêWòþ´Ê –¿“–ÿÃ~$7rÃÀ{^¡!HÏyÂ>!ǤrÙÿWc­½œZÁäD¤ŠÜäbK²H·ZîF…6žÐÆ6ÚÄbG…èv³éœ¬XRö_ewªnBHíB¹N=à %Šz‹‘^d÷íÄÔ²³_¦"ÀJ“wÏ«p]°2uôõuèU²›|Ä †±&(‰ÄÃqBÜekŸHØ".¡cÇݪhWà›ð+ðVCÇÁΦ¼ÓÐ…ž„GgrWb¸ÃÆ`)·“=lØ"„y¢ÂåYóD´íBb›_©ñʯ´ø=›YâÏÌLí=ž 6Ìäý†.ZSÓŽÐxj‘« +}·ŒÕCLŠ–{ug,\!F=^±Çýòk&kørͽYÞ^ÿb—ýöû»÷«]vûúÇߧµNÅínÁ@'6ì¯w6J8>…üýI åÎÆñoßN (Ÿåþûøœl÷~{õíÜýí÷Çï7½?;þÉýDÍÆý±±Mùöç T;Â&Äì¯s:á@¥tgüâa3^áÞxÂ;j@MZ´ïXc5ž±ÆÛË"Š +BRvÔ0Î?kÄ}‚X!Yénê·Ó?{vš®ZøéNS9ˆ/»gC»Ï­Lè‰aE£73.ÙC€9X—øÂ6Ù¥a72„Ùãw±€#M 6tû¨T ·®Û"!šË1ª]µOÒmµí×QIÜ”û°ÔˆåŒX^*áA¹^«Zërq£ª=î©=Rá•^¹õD\ÂÜÚŠzÙmpËV>aånw+h›y™Ñ«!ÏnìãS±­Óì>y¯ÇoÊ AÝöpyԦ뗣ݤ¹½Ãu¶‡3{¶¯›"2Î‚Ñ@flóûäÄÕüví?‰£‘Úi¦vä·+à|~sżÕN´“"8$ÈBŽßkó5EhqŸ"~žÒ“é0“é5bàÐíF1£­D%ÒÌ™(£WKöø½êh³‚Äè9D¥†ÎÎó5„¥D'åftž®áª!);ö0.áF:°@ˆÅÝ2ìí[ùGŠÅUÄ ~¯âu§ÍÔ ~C[O ¤0¸ò]¯RkgÀ4Û"*¼O-qŒm2l¤dÖ6R«ìaò¼U%³ð½È>.À HöyZw÷ÉGE¼ÅÛYš¥†JðLbJëéji~$£+ŠÅLhL³;ðH~S„T¢·g\Å;“ÛP XʽiWWwU @"ºQ7+0rpwTÌ_-ì¦\ă&5b9#–káÖ#^?+öÅ~S±V©¸Q¼Q‰Pµì·wî¦öÔÂ-Ú4¶õK5V:c¥Û+õ»M´*@.Nm¸ëýÊöV͔˭Txå„Wz¸EšÑ ã +q'»=ˆû&ÍWC‚B¾7ŒÉ8,zQ¿o'œÂƒ@Äîz±ÞÄíW#ö£8Èž3x]]Øç8ÚMšÛVÑÉqâ'9Ö Ü±rv˸Ý{úœÂí=j½'&WÆ£zÏÈÁ‹1{mâbÞÍ:Ѽ½¶lu +Åÿ¾6Ä×Crmb=Ž9e‰4²çPQH¦†æœuʶgÎúÄàÎY¶9KÉåx½¸ ÍÀØÜm¾¯(¿&=7.FQü_tN”ØíêëuÊBÈíd[hàØÔ-^º-‰8‚fqwŒõ3Z£,âéøo¬ñÆ3Þxk4ˆ‘h8ø¡±àÔí§áB@ŠÓ÷¸©‘“i·r¶šÔÓñ©»œtŸ¤rÁ4›ß«xšbÉÉzš·K¬7q›¥F(€êñ[-GüzËѸ‰ãh7ivšûœuîYŽdñš;½Ì±69æ +1ŸsÇûåÜ¡ãÂìísWñ6<¸‹]×ÑÐCãD¤#§Í÷ÄëjßÁâ1iýòkÛâý5[úŽ×¾Ø¿ýþÅ®ûjwܾþñ÷é«ŠïWdV=`Ãr§ à¡2kúxRB¹SpSÃ#K<ÞãêxAÄ´è|Ž?ÏÐuü‰×'{'qÞGÇ;zE<ÒßåxEg˜Úˆ¥F,gÄrãžÄûŒc«*ôV0 þ|§yÄqφðc#|GÌ=›oæn¢‡»9¯ˆx«ÚfË`˜ v¤¸€–€ûÌœÕ}`Öv3îæxzk+9̶µ‹Qç/´Y)fL ¹ÌŽæ«x]f(´k\MžE\··]X=¤Ä`µ§…4ÖHãiìGúLNìgbŒñX=g‡AüR)•¼c„†D0OÀÚ&l¤"$´­ ã+Ÿ±òí•5a»îh@m—p)…ørµ ¾|3Líª 5b9#–â*’;mìû·„ÈäÙîàH{ªØ”$¢ûÇõ«ÀÑ5µá±&Z9¡•~÷[%þa¿Z’ÜØàÞ§à\ +õÃÚGxGðÒoÞý#Œ&% ú™E ƒ´ÒÌMåädå‡ðâíKÝ¡Ñö‡Ä/ü!(H´™.;„«_,×#›jyúœ\L¦s;±ÞñFi¬A;šÎ2NFÆ ¤·ç®¨¡Â檡k`¼è[Ìí®í›1³»ˆÆL¸˜í²†ÍÍ79&ÜfGe§£ÛPÆ I6…éññ‚ÄçO¹‘ˆw‹»‚±˜ºæ6ŠãºQ…˜Nˆ©BìÎt蘼? +q…+¼x‹_x]Eˆf·²]sÏ}⪂]W‹ a¶|¯JÁÍe¶ÏÛ»¹Ì`!¸Ýg=CãÈ9¶Úp/Þ†º¬ÌCºÍŠc +»pÓKóoµo™—•÷{¼.x]ûÕ^©¤ïÜõ61êfˆK,ü +½ULÔ€+¸TÁ¥\ú‚ûƒØ“ù=!æ +1Ÿsb&,µ­9:ºÛS _eØ=6†Ìqf¾Ê¬‹TD\뽌uú˜ãíò§–†Thå„V*´.¿oø襽É/%@$·º´_º¢q”}âcM¹Õ†\µnÛ±; óûDÞw§ƒx½fF[©A¢é>ÕŒC‚ É«_ˆ»í÷âJÕîð¸œçGˆÁÄŠ#ƒ…0{n^Åë +"l„v/{Ø*‡d‹‰Ú‡öVÍ9;C½¾3pˆÀlí*¹Ì¸ EPùh[³<ĸuo‹”‡½ÐRæŠcdòVд¿d¢qÈeP kb?ÐJVÎhåšíb…OxñÖ¶]R†@È;52…Ë#­ èŽ¶ß×ö…!ÄÔž@Ëè÷¸¸RtÚþ° ⣚YNR¬Ø¨E¤v5ëž™óÓ8áiLj´ãê–)ëdbh¯‹eBƒ2‰¸6± „õnÅž„WÅv3òFå’LŽA4íH~£ö)¢ñtE¤òNb׊×Óð†V,›´aÊ +*æôžqM­Æ+^9á•ŠÛWˆ÷êï”#hpÄ0Œâ +.Upé—n-ApàÝÜ¡Íi¶=\fØ•0„ÅEüƒãîÞ3=3bÑÜ>º%Z“°“"ƒr#0zñN¶àõ^éUˆ<´ïèñ'”W,<ÇÊ4»¡Up{ÙoÐÈ›‹‰_64»\l²=%H*ž™-(ß­eF×}‡Ë·O ?µ’AÓôš3ÒBfϪ(îF<ÝÏ›ÎVÄPw@&ñƒ»ŠÕå6ìöôH@Émé_ÇF5b:#¦Û +Ðlq+ŽïÜjêÖP¿~äîŠAK¨ªlˆµÐ³ Á>çïÚ~ü’!H´**¤èöÉA­ ,•—çyD…•+¬|ÂÊ·fÆ¥»ZSs7ãD`Ý2ùC»Rã•3^¹5´[¶Îñ(…ÏkyyJX¬ñÊQÖg£Úh§4¶IÅíg ò«‡÷²7-¾w{ïô´HwŽ7ØBQ@Ãì™Yíê½?Å1Þ}Ì͉Ëxç7†7Ûš”És†…m/í’ÄDî¢ã¸çŽÓ·(ÜŽƒhÔêï(aä¥Å¼•(°íÓPÖÖöYD d¢Y''Å 'ÛgW’&()ÜîËè–ìžÀ]‚Dsµ»bz n%Å"ÞË!@èâ÷è­àbOpñÖ.92ǙԎ²†l‡5xUwx@H…UNX¥G²é^ÇÚ¶ 5^9ã•Û¥:Ö£ƒu,`²‡n-*Uˆ£Ã·ÿüíïÊe#ÅÇÏY@Ž-?ÿ£|Ø?þùGùÜ?ˇÝþü×ÿr$xØ:BŠ'6J<=ØÈáøE(è×79>È8¾‹@1Þ¾=P\7d<þ=~M.}ûiy{þööÇ×ß>èû7Çñx æâñuášôöï¿ÚOH\ÐÇòE/ì©þ[ÒùoI·VØ´x-fñ‚Tîd#ŽsJæ¨âqgW©ºåYˆ-AŒh;©Â ™xAUX™‰Ù•ñjá ´‰¶›ÞvHQ…—NxéÖ)Ê\>IÝ£³‹üÞŸh´Á®Òâ·Á!qÚâø­"0J\’^ÑçôûÞZÔ’ë¾òe5´-¸O ¯,ØØm :p(@ÅUïz¼aYˤž W*îDÜ£â~…!Dk{Ú›2ÆË»¾¶›Œ÷£˜´ Ýc ¶s˜Ïˆ¹…ø\&z¿X¼±” ÑÉÑ|FÜίêÏnVÁX6‡y½äåYyÏô44ñ +Å\ÄxñüŒÎLóFˆQÀ²+ã«xg[±!$ ÓÃcdÜ•§aƒ_¬ñâ/¶ø«_Kåå­¤w6Y¹6ö9´]ìzhEÑf£©†Xª³Ê#¼ahé ’èƒjxG»Œ i“Kc,Û3å–ö¾zæ^[Î@Éœ\« +e§óöÊw“Â@²z3cDSCy-ªwiÃ3M*¬rÂ*?¯ÉÐu°'…RyÕ»²Ê¸FÌgÄÜò…‘)AY‹vÑiè•/têaþÐ$ÅòII± Çœ¸ô/-æxï{ÁAÎNã‘ù¦ +9z»mŽŽ¹BÌ'ÄÜÁ1åâ$.Ç?ÜMjÄrF,·†»Ål—ulbK`Ü6·e +; ¨å‘-Æ&CJÙC»"¿V€¢m„˜AÂà•Ÿ¯£ëÙGÇ(`Ù3¶!uídÃ}üº•m«Ñ¹a]3Ί;]\VmW‰îß渧J¼ªkûyÅŽJ¼ÆÕm—$¥øDuFÒŠˆ9•YgÞÕUu¸óêæÏ:N¡Þ~†ix·*Ì©c‚.3 ’¡Û$𢂟»ðPŠÕ@J8ïÃ1™–§y'_à Ý»[Q +9zõ}EQp(@ÅqŠ5)@Y]Ä ª8!„ìzÛÕ~9›ß,P8nûÚ2]bGÄEѦk¸î?}ªðÐnK” !iØÉ'B‚ÈÁíÄxñïôÿªÈ 9m2;ö3¶ý*&!ÅÙCôdÅ}{ª` àM»Ë1=62î¬o]x]´Å€£?BToÈ`©¼¼‰Ÿ%(!çºÃå*ü4àb¶‹üÞŸp!`˜^R[b ˆ]~œŸV€¢MÏ‹_9á(—Z™Õki#2n£q4ÐD³¹­ÐvÕ_—W.Ÿ£ìõI»ˆ¶rZW }uÝG¬€Ę30ÞlÀ™ ;Š˜Ã±Tˆå„Xz8Ö²2Rr:Ä’#N3Pˆ]ïÎNΊ¥ÆV+C Xt|mIvCËèñ»Zo×âiÚ-¸»·?C[ùF'¿ozîÂPÅËåïx±Æ‹g¼xû` &D³wç(5l·â8–MÄîÊàfcµ[ÐF›í ý—#ZrÓm=E”Ä é½} GlØ„•ËŠó¯˜Œ +`7ç.;ÅS_¾»ŸÆ'H „=~—\Ûõv²\².|°K¼£áÍš•ÖÎÍ RJ)îspœ"$ŽmS“±œËÇ‘sá×ETüv~ÿÇ}Ù$7r+AxïSð†Bý®}„9‚—vx3÷xÕ¢$£_40ˆftÍjD>•²2³^·±cß,)Ÿî¾‹¼ ÍÓͤ7ÛgYO•mI Ük¿OŠöt¡dƒ]oì F貈e¹”½ß¨t¯ŠE}¥å²$=»ã¬TDÎ~M\n /‹¹[³ßÌ8)Ôîåv½£H*B´¸d5ËœJÑ^¯È·•·f¬;¨P–“=xŸs3.ü çü*¹ +y?›p5j‰iOLÏÍøµ.AX’Ôn[¿ØÆ@Bì9Z“ÌØòâžoïLfñ\-PjxMKÞ€Æ[w!Ÿ`ïk…âÌxKfóh”ÌÅß-ÐݼõY÷ZƒÖ.)פãt¾Æ|ÁçÛc½Zfx§TÎG ñ. Êâ µëÀ×Ëeª”4—NÊ­sàVÜóŽ˜o¿šC aä2TÄt‹8RD1}Rïèd2&s!Çéî(–0—ÓSn]‹@ÿ$ìªâz3¦BIXÆ[w6lœPz:nœmÒ‹gºå\ÞuU¡â醴êøÅþnšØ¤×†W4 E>¼55(Ò»æ¾H¡%…=) Hws˸¾,eÊãÛsYÆMé ;[JX&Ü쉬ި[Ñ®¸dn½ â{?WÑô¸ð\¼õGœ“ªÿ-â̘}áJDlàÄzv ^x€¢H²Ò×ñªSceMó +QkÇØ.Ilâ1 +qñ‹¥Ç¼¼W«b2šgˆ_Û<*N,üÆtJ] G;5P9e-šËéhÃûZŠ6߈YW’ééŠX©á,Z»ªø>‘°%Æ=1¶Äã#éEâJI]gg]«Š¹³®« +CWá;›ü«Ä5Q®]«b:=ŽTÑüÓé¡]/¶¤,g7ùgUüÀÙ„³ i§·nœÎ3}íq:+Ô1ñ…œ fí*âšÎ–É:ywN'žó‰~Bkb“Ú™ñ³šlÜ+퇲öËûõÄÏ‚·#Ôˆz'Çb1LŸÝ°¨ÉÀºfö4ë±…AI’a|Ê-¬ÁSÓíÖªšJÉ÷ÂcLÚKÞ’ýç~û]$©ÂýyÒ„>žÿáöÇŸ?üsú‡Ý~þõïNeæ߯÷½ÈD²›}MÃòæ}èûýÀÊ}Û£òñeŸo(IË6Œû¿Û¯é‹÷õ¬¿\?_~ÿùóƒ¾l_qC;‹ûÏ>#”Ûßÿ·#˜É S- oȤ½Ÿï@ê•jû+°^Pu¨9±œË»v¾¥¢x¹åå=/x÷p&@ûŠ¯¨ùîFЮê¦9žíµü6{Â:˜Îù±ær¾«ƒZ©ØoSR§ÙqI}õàX{˜jáŽï®é}Kç[<ä©ûîâÖG )íHé6Ü3oÔÂÊç궥;®ú¾ ýö‚yFâäƒWOá7ZØ”p™ª€Ânat8ßU‘¶VºÊrÑr¨jîWVÊÆóî“âíß®J +Ts(k Êqš¹QˆfC5çÖhŒòáßþœØk`}›Å0†j$Ö&0LrÅÛ.I˜éx¶WSl± [¶™ŽÚÀenÆP ’Í[ZÜÓâíÍ0Ú†Š¡x)Cí¢ÔP¾@™C¸hŒ7ζi!Ô…[4Ž/¨ÒAœ*¨Ö Y"•ÃØ=çlxµ†ÕP¼È5¡S¯½h9–Ýb qšEá ÷÷Ï'dkáǬ‹ÊÊf#]cTK¨Ù¢–P×#*¦Zèp¾ /µ¼´ç¥wòä0-•’ð¥;•eÚ %ì´¯ïÑbË‹{^Žv©t?¤pÜ®¸jB›•a^Ê1Ze +S¶Æ¨œOÖ@;YlxqÇ‹ ‰—²zœq‡÷[ Óqv¾4Ö|bñÖXúEÆP™¶]”ÂzØŠéÓG‡ó冗w¼<åg#ÓJs¢¡qœJnõ^Wuòuz% ”ñ¸Ú¬²ƒXØÁÂp´Qê"ÆY-Õ8«%æÿ|ÈzÅs7Z•A-Û™£QªjVe¢øW  Ǿ(—8c¥P¥;Ú‘@YS-ÜI†oÙRËK{^ºd»Ò¹JÝ’áX»Wk4¡RÍ©ØûZÍ«¼þšŠ£–À-/ïyy4ßæ·˜t²û¤Žµ+al7ãƒ4[ÏúZ¯¡ÊâVÆCÉ6s(ÞP‡¤ÖÍrO>ÌVÆoIxXošÙbË‹{^Îv%oå8Z0 +r”•nMX6Ó•ðk'R%VkPÅu›wìœÚ87ß¾jˆ=£b!8QlË„%ÃÐ4Ô~mz”¹(œj¡N>|Ï—Z^ÚóÒh¾Kyõ£î²—x÷z˜á}à·&Û½sÌûE --ìiáöØ–fo°ÛÁꃮ°*ËVv…(1PwÄ(ûµeï{»×” +Ü«‹+¥Œ@QºM”nË$V¿ å_›VÅ+ÚjM¤‚a¤àõ ÔélÕ¨X» à ªP6¯£Ëñ5¹6°3·M_êÛ$ɺ¢Í7œÕÖ(—nb ¡Jx´&cš”óÉM±.6¼¸ãÅÛ8ÉÐr,ûMhÒÑÃõìk;t2Åáýˆ³‘QËK{^ñîõ0Ãû .d¥_Ê5˜ŸÅÉ +‚‡5Õ‚a|²$R±ã Ížäm6ê4³`57‡ê TJ0ß7îÌ÷›w:×NçÚöíd=,äU +Õsxë‘ÇþðE --ìi¡¡=5N®ùLf:î›ë¦Yá7F5¸´Ã¥\‹ñN5Kæ='Žâ¬ÚvöxÈ:«„}MMµk è5=¡ÑìtM8=ÆŠxìK`ÕŠ5°ÐÀÂ&F+o^/nhyGË¿¢h Õ)[éRæT*ꀕ[VÞ³òˆµÈ$í]„¿DòZÙ¤ÛqÝEwiSXű†Ù´@yfÊ(«WîäÃ÷’MW›ó¯3 To1±ØaW8C·S´ÝãP: г]‹f‹ +›'Œüë¥óaï 3´<¡ä­(”;aXQiÖsL9Ÿ|7´´ØÐ⎛Ùvý 0–UrLñž`þââæð±·*Û ÿùíwÉÞ|àþßP’–m÷·_“rùz6YÖÏ—ßþü ¯ÛWÜßÐÎâþ³Ïåö÷n2>CµíL‘¤¦xyí¡QB‚‰¸¤"¤Câ…=õÅLòýfÅŽ*šûjÒëgî+nˆyGÌ·™drUÔñõ²Igµ³5¼ÖA«X‡ø’ŠðŽ] G|5EDôap —³‰^hxaÇ ·QâêŽÆ= ~uJ (í@i Zj±Úëšrµ4,²w@ß´!ñkU{éƒþIEbXªG›øP„*§7xÙB`«~ÏT +"qA¨Œûäeæ¯O¢°ÿoîYÄg\ÜÔ2|íƒc&‘ûÁð’:–1ñt8güj8kí{¶Ä¸'ÆÛÃÍÃCú·Ñ‰Å¯9àNz4î6©ãw›ª˜f\’ªŽÝ[bÞóí­^‘òDÉœ&>½ךŒº~ü¬·)âÉév]M5U€ÞÉñì¾ H_9Ž&F¼òN–²"×ÕÐ|ã2v‰Ÿv‡ãŒ{–·KëͲÚÈ^q²ü4kwã(cÊÙN¾ŽÖf›$²Ò%¾bã‰ÖƒQ9­§'ǺSõWªq¤¬+É2¼yKg\ÜÙr·£]Ñ+Øß]Î&^êìéì«è: +×Ù,±poó–'ôk>A  †‡´°°‡…ìBùªGö¢®‘ï$ïŒ|¹!æÿ±_6ÉqåFÞû}—Býa=G˜#xi‡7sÿW“/‚EàE +€¡•ÄÖëîT1+ó«‹bRìDtÀWS«Ðqñt…²F¿¥âÓj†¬$­b¹*–žâ™X| ù1šP¢tÛ¬=8ùi§eyNÌ„ø +©P x˾;nëHj.Ái·'+HŠúwOÈâäXliîHAœ|ÆÌýÓn›¬àä}‡YOiïºTûÞ§-CM[·ONXêëåV/_õò½ ¿ØNØS¢âIÝqÞåáÔ¦uÇžIb¿¢#u(抷Œ 1(<lÛ(>Š€% 0¾Q<Œ˜Ÿ)ž[§•iêïÝ>AìI¡»xÇÕ³-Qñ{7¬øÓ¤¸«7J‰ì;‡Ëç;Kmrµ„tHœ×Íœ +`•~7÷FÏ#G]䪞ÁŒËa¸ÕK^ºè¥½)Vì–øàØ°—UAÐ]ØÛºÁl7Šù¢˜[gJÉâ-[Ã:«!¬í(˜ Q¼¥bÀlåsR`-Ësb¸©Ç±éI¸&ŽÄãÚ†Š«n™a¬Õbf÷x(ÔïámsÉ.?äf²ÎI&ÍP±„ô°_sò>.ÑÖáM¯N´³X‡”@•N*äƒ8Ý“¬XtgÎÈ…FéKX¦Že(gw„ª>[åÅ>õ:}+ºâ|ÈiÁ˜ÁJÀé+Ä 7¬4·/sb;bÙ0§Õó‰ nˆŒ9w¡aÅëÑá¸Ps|H\[š¢T®‘âíXÒY'QD³,<)Ô¨:K–Ú#³]î óe«xRÈêÙJÁ*ß8 4nóU1÷ÏåÊÔ¯Œmôr*€Uú~©ä¦]FÕ,!ß>7×3„UP‡µsÈ’‹qÂàøœ­%¨QLÅô¨Žê3.iµâF/7zù¢—= sö…Ó°–?<<Ÿyx.UúáYŽÂÊäŽÈ1Lìxkœ„–œXËrGÌ̈£æ‹ªæ@í–­‘Œ0Ÿ›zWoƒJfðüÆx z +”\¢~Ûl¶¤¾i¥R×»ƒ³ñîPÑ T(¢ÊÍæËÉ Âþ|·Éª>_ÆågçĶ0gàóÆăb‘‡·t…¤“ ’¤BÒU܇âapÿLñTpw×Ä}Åû̸:F¨õÁZÅtUL¦ME T¹–/žsvÛÎØϹ”£ºÛ ~Ìá§ä~¶ô0–Áå]½ÝªSŸr®£Sc7ø9íŒó4ÃÕwmŒ‘]û¢1j3 çûS±´ŠåªX~¥â§Sª‹;nꌵ‚ŠöqxŽàd€+Þ¯•ÉœÕ +›·#s.P+ö³bâæ½J—¾yDÁ!ºe3[:‰ßUü[R?÷™°³OB‰<±M˜@¶ÒOâmæ{^sA` ix±M±3X¿;GÝÑRæXw„7’fÀœŽJbçxÄÞ4êâÏÔ6Z¹ÑÊ­ü¡5ìeÊýÒx©–[±#pùŒpÖAWü9«²z¾­^jôÒE/=¢AÊÓ€!— +Â5áÝBüÝ™Bˆƒ¢Ý *QöÞìâM{bCfæºåɉ:euYÌŠÞó¨ì¸ë‚¬B*ÔŸñ>>îzÎX)R¼åŒý‚«ÅØû°µQœý•ôüêÿþ㟊ž&åýu&ä·×ÿôû×úçþåöøëßÿ»àŸøu˜ùm…ý-í4ø}õù @I?~¨ù}ÏŸ²ó9>Þ÷ˆÈO5ï>ÿ‹ì0üãU¸þxøýï?>æïž_ðþ†vï÷ù8£þçRü +)½)H$5Únn|ý=ò£³ÝÍowÐyïú|W˜ßàõ3Å»•‹d˜ï6éÉø ¿šï+¸Òh}åLä’¡”`´[V©ÇDÑvIÌÑ`h_õ¬Xϱ/iõ…S:Hqõ–ZV+¾}ÏÄ7BΘuaD\ÔŽÍ7ÞºI5ܺó}í## +ý­Û¦”ÉÌp¹‡gn*Fż™‡ÑÑMúÍ1<ßåàS .­ÛÎûg¥š_h)˜ï–w +§ U$œñœ­›šÃ•A4¯æµFïI„óE‰.¹I8œ«Ý¯…‚ËóQÍMˆ×0‚{Çð¾aih¬t¼ÿ†ËÕpÉ©‚°áÚœ˜[u +õ¨jN®—û°6¨xÖÆNÐo¤¸VÆú{7ìâþÞ$ÅW0‘4îçù0^¼èÅ k(ÚW+­Z¹ª•{óÑûÕ|²F^1ß¡”ˆæ› —ß›ôïÈÆ5]¼qXKØvóqüùQÜÍsRmîŒ ò@ ï3â¤À\£`û[/¶zñª½‹Õº Xt"íXÌŒH"ü†g’P#= áÅŸÁþŒ÷Ax?ìT%Šâݶ® +Í¿t¾/–³ X¢ååꉻZo— ¥ðêEkK#X.‚e@0U‚ª9:†¶³®‚Š˜³ã|918¬‡Ë¶æœXod¥hÜ*æ«bî)¾ÂïÈŒcø%-€•¢ÂØñ* \bWüô1µŠéª˜çj·gl¡â꟤Aoéãã6s†ÄÜkiå<æáx¾L,šï]/ÎNâjÓòŒ˜é_TŒ6n77X‚j¿¢—#$‰Xx7µgy÷¼6>k¾çÝÏnËb}vDŸGÚâ 6ѱìËè®'Â4S`®#öK³ßþ]î_­À¦'Ýp¨`%œñÏä³ bœÏá3Î 8 xpÀ#‚Ç–.Œ c0ÃrŽ…© +ÍÁŒgÏUñØQ+f¯¹Ü¶×f|×Ä¡#Ô¢“üpZÑq®@d!ºÏ)º«â1ÇÕl@¢+¶Ì5‡ “pÆw'ü‰Ú+HŒFH0Š;"‡ ±"Ó^Ü:К¢cnÇœ0²ÒOanóU1÷OuEiÓ½šÅÜщ´ é°Ñ‹½øè6]%@ÅÈÃwµv3ø5>0#Ĺ'E¤¶#¾ŸÇ$–¨Ïåpu~OÐ }ÌÅ ”æð^©ÆÈ.rõA7-‚ýsT¢P»‰•ËͲ•¾6Bˆ U$<çn—ܧË6W1y=Ä¿Rƒmõ¶ME4…$u¹âvÂc¥ÏX $ìWÜ6[wXæ ÊòfÌ…  +í§¤Õ+W½ò¸å†‘„ø*јktí6_o íŸpÛÌ—Ì@´†1§ãnï[¨¶€õûmŸ4s¡l9J³ ;ŽIBN›äˆ©­\€µ,?ãZS£˜.Šé1Òˆ¬¯xøŒ[¯˜#WÌhå›™ö]®¢ bÑ\ßsåÎd›ì +å÷aR†R±yn“Áçµ™ÿ«I@>[ú8û“æĆ­AÆ`†Ë¯Ï™<\žïˆÏh©ó-ŒûŽØ†.ÿÏ~Ù$ÇmQxŸSÌÒAý»ö|„,“ÊÆ÷¯ +¨±l25-‚E@$YY’‡ôSûõëïq2ÈìçY|Ï“8dˆ¥Ü°q°‡ÛöCo3£ g ­BÊr‚¬9ºsÝѦ6Ì5@ó…Æ»\’ ÅóòÙqéÚb"V¬ bÃÁgocÙ)–ƒby4ØXªâ”t3·ž+s4ã ƒÍ*Y.”lJ ž—Êb¯Ž¯Ç|8Á ÁEB¸¼ìâ—Šûâ0A’r†y¯7õæÇÉÖõœïö´Fuãj +¿R{Uk˜¿&a>\uîpHU›ÎkÜÍlèX5R‘!zEº]±ýkÀ’I|0ú„YßnÄ Š£OÜÕ ‡Àã@ԀͿtë9"ƒitÝ&$2´rû|Mƒ“ó'îܽ³\ߣrÿãÎÕ¹Ö:„1©Ï×-ä‹Å|&U¨N×QÌ™ PŽf<[6 ×Øų‚Ñ:Ý“l¸Ç9õsfî„å‚\ (†Gx6´)ŽÝP™Êg¶‹ÿÒ¶­Æ .^‹>œÞ"×Û¸õ@Üëg íVß<*n™ñGÕÂAØ¢7c}S¶Øg¤žå²bSœECvÿ1cÙ+–£b¹æã¼SœŠs“â²=\ç.¬Ö“~,Õ¦Á#Æ°D_~pDqtý¼ª7ÌñÂFõ®p´ÚýŽéöŸ¹ýv/ïni£÷Zn©ìËA°´¸ë¾¹ïåˆûdº]Ü—·'‚í.€ÅF›b§·…Ã,âjˆ7TêàŽÇÉêþ*[xÔ Ì’OgÌ{Å|TÌg3îYiÖ3ÅR;Ç)ÉB)œȬ ^º«+FÕsþÖWñoE+¢…"B+RI´qsÆp©°ªç1<+”@0>žrÆfPJkWüRl¿Æ%é`²ì{å2St—/^ájE X:Ï´‰ö ­h9£âZxJX@¯:xôͨ”f¹„e¯WŽzål¾GÅ-œöâIÂ!å|Á“8‚S†:Þ€„wÜ<ßÑ©¶žâÅ®†Õ7Y<ß 7n­ùªA¢†¦1Ï|ÅÁ0WyN +È*#¦T\]¡e!O,×å¸0ˆJDWõ¾T»¯F´SKµ´SV£ä ‰ÃnÔi¾;½-œªÍÜܲn²“+¹òh1C/e)ˆ`0Ãá ¼·D[¤E¦ ¯ŸôxÆ#ß\:B0Ñý§âVx©øˆï-Š?Âw2 G·CwÕ¡#2ç 'ftÄz°ÆhP-*ž1ÙÖsZ®¸£+’£EiÆ›‚WŒ—Ç3.@%é `¶ÞŽÓËÑâˆ.GHšGWŽÞ;€IÂRTf,t‡¡h˜j‰øe_M‡… J¢À·#¢iÏÂk¡à„ç÷­™ÑFß7N–Br¿ºgƒswÁK¡\ý›F'YWâAHÕq5ÇBšT@·­GŠ¥Ë9öw3(•üY›vS-&pµ°möI2t»¨øí‰ÕoZ0IÃ{[OÞ%ÈÛ_Ÿ)æ½b>*æ3Å= ’4³¬¤x¹¦ÉY(>Þ±Yãεp¯ìËA±4ܶµhgAG¬[ç2ò"wdߥø¬—4¡I’ÑÁ\†˜­»1HEÃmûá‡æ‹1žx$qÈh±Ó›wzóAo>Ÿo¥TŽ²÷§ZÙ«•£Z¹¢ö£%£ Éf¼mä +Našu"ö®MS sàˆnùpPÜÔ7?˜q,6:ƒ»mœ“øjÉR…³lvÕ\ŠZ4#LF9¤Z¢†¢U/‡96!õVŽ´¢ÁžÉ±6Å1™Õ¿õ`Õv‚OÅxÁ V¡ìÀQšÍȵ[€—u·t9ÇóÃr¦X‘ÑL"♑ј +ä‘ûŒ3^¯y®ÅÁ«iÏšWR¼Ø„«Ð¼­É™âæ{¥x—uÍçÿÆLÛJŸÖ |88e¨~(_žï躱¼“HF{€;S4 +n1E›àØ õ#R†’Òh¾ìšÄ«9˜Œ—š1ƒYØ‘†ÐD[‡)‘¤ÞŽtžÄóð& o Ši\Á¨`EƒdsŸoFqM77î㎛W‰"«|êŒo2ÐzÍcAj+`¹Òø:írmùª#NýжsñíX­)q60”ÐÁ?&ÜÌ@¯gÜ“( +>qDㄇ«µú&³…ns% ÈLQë˜n¾¹~Ïç;O/§x#bÔö¹u3ºõÐõGa@’g¢1»ì£}ÿ§ÿüåW%ðÄÏŸóö_òüù×ú²ß¾|­ïýV_öøöû_ÿØfqÚcáZköÓà÷|÷íw¤¤?¾öäÏYÔïññýãXÏ…n¯~ûsû%9•÷ŸÖÇìûÇŸ_¿¿èý»íŸx>±Åóë:"ÒLJӿ=‡ÛqÊP¨Øë(j=M§ÿw®h•J vÂSÊ!%|-x ­ÜMûòÎÛ+žªÓ¤zN?Sñ½¦»Ùø{T|Uo¨¶†¼X´sÂ~'¶¥ÌÄuÁ‰F«íºp«)f”ÙOS¸Yñ«î‹Wõo³œ¹Yx[30jp3¦4ÄjGn£žœ-à)9b-0©¤yæàiúiÅk*³_-É•Ü8p?§Ð€¬}a–31ß?bøZ–\åxYñX +²íMwKýª”ÊHä')–+¶Å6ªdŠ˜$a +¿Ì±§A§®¸µA[é8 XÓ´ÇÊ +(w>À}¥]*(ܱáQ¬O©åËÔæ]x¿)ÇíM˜Ü'ÃÃw»©U&L8^ñà$ 0«>óDq”±Û ° ɘ€wªÃb%s‰cC±‚–ñ‚õ’Óý¹ "Zõ)ÔÄ2€·JåýJ˜·òn‰§­™Ìh–æÜœ¹1UÂÔþ—³ [±x{:jb+ªB‘Äî.¼rÀ+'¼òÖõ‰P’~“°#Z;£µ·ïr5°â;…*(•¬½_ÅÛávH¹)ÒUIwÆü|b6Í7kh}£¬ˆ­£ïÂo…À’ ]Ñw®j|#¿¯8™b‰Ò[¯ø^ÖB>7ƒÛ›0õ†O¼Ãëíb +¿ˆøÇ b‹û“ârço—m‹Ã¬Lγˆ#Åvl'À6BquÐZm'Šj‰lÆ­f^€Ûêìò;lÏø=èdØ&"µao?%îm¿3‹+ÚÈ$“3¤£àÑÁy{Ðí{‰½J°KÍFÆV>bå3Vîq;ñÒŠx–ïUéZûSÄ3óÂQúö»Ž›¡yM=-ÂSD5PõLÃ+rÌÅ£ßÒ†9î‡òˆÊ¦Æv:Þ­ø<ª;šeÅgIŠw«ï-›Á¥¤‘7k‚9Öb=!ÖŽ7«ÃÖ*…Z_Ë\’[ÍÂcF¾ª…/®-L%¬¨]© +L˜:Úzj70º‘£msÛ¶ +T¶RqTmkì^ļ|ÀË'¼üÖóµýª¥·*ÑÉ >âå3^~ëdò̃s°š{ÚåŒ{ÎïU¼if0(¥Ü.xmŠÒ:%¥×öÉïpf<ãwff()IÒ‚§tž‰ÓSÁÂoOŒyˆµ¸æKnAÄ *ýÞ3-1^òoÏFM±dÞ­ô(:xm¼ô( ¹Š_¹íD±UM ɱ¢†Å¬Ü×né¼b @ñ¤J¬yuÜÛÝ:žuu!€–W‰Ç?€†íƒøQ0‘5áø Õµ¯Ò™±/a;¶3`ëIxêâ@gÌÇ‚¢x &±ÄŠ§‰âª$¾°áʼSÔµF®w—Ÿ™Š ƒ0N¯Ž/#~¦á©WW¨9Û>;t?+(:Àñ°³õ½xq® +1ÑÌÙV¼¼ ‹¼)aßÝôˆXψµ‡xnB#8 žV‹‡ÎømC)XÓ>±ž"éÁ´ÇìP$*7—x +¿¬_ÿB¬´‘«)VÐ"™«}àå#^>ãåÞÛ=ØÁjÔ{ÛÏ4ˆ%8ÓïU¬·^ÚV¾»¯T@Cûzý{q¾ó?5ß í~Û¢"HÔ4ÓÖKˆý¶…RmM]27›ìzÀª'¬úÖu²í¤T&”»iÞ>/³‚Ä BRý®Èq”ÊÙ®X¬E*¸Ý¯á¿tjì¥2ã¸wWLõˆðÖ|l# +*´>œùðJ©Ü¸­ŽY*_í;¤¯-!ƒªñ»í•5$Áí=Ø_CÃIüüÊüò•yê»Zwò]---6Zœâ +…xŠ¥¨zm+"ÞnÂí83¸n$ +Åöάmµ‚Æ +(Y"¯–sµ4icÚ&Ô9ô4çæôß¹&, ÅÄïÆrñÁ¼RÄCò ƒ`0ò4™TW@ËbãÀñ`lŒp<¶1òöà zw™8݈SäA·Ñ*r«Ño–¯yÄUõþ<þP ¨R¿ò ¯£¾vÇÖQZÒ¢@‰n…˜¤ÝWYYÚç<ó…Hñ²r1ÕnTm£t‹¶£€~wSŸe V ZÙim†@-‘UßÕ¤ë +åîüÝqjÑÛ‡æ‘ⱎ“ÞÛ6A‘ åpU öÇçÂ/'š§ò-&‰Vl r\Ü%3´=‚¬©‚ãÞæ;µ™íhÃ{MM BÛ)8ˆ@kÖ}Þöš¹yñ˜¹å#®´Ÿ‚éá­§c±ç4œWDÜú%Z®ã921rVÙî é½Â L£¯ +="Ö3b}ë¨bj€ÔVJüxE++àí­â—pù—ÿ€ûÓä3VÐ"â¼|ÄËg¼|À{7ÚVØ؃6C(ÁY…¿ŠõVÙÍZÚ×á¬èû؈ó~ác-+,üöK›×ÒÚ˜k—f‰Vœ â¥Í#ùÖ<~ ±bvu=7{åâNŠs³´·³C”ú~u`©y{úí¿ÿø§yûyúþ}mM_ôÇ÷mïú×/¿¶×þÖÞõöÛ¿ÿ÷§ò÷û$ ¨ág"ôã<kC(íÏÏ/­ü/ „èí÷'œêãí?þ~üšîïBýþñ÷¼éã+ùñöÇG2ÞÿÝH’úöŸ#~ö\<¤× æõ‹• ”¶vB€Ø¶^ñ"a*ÀQãf´ _¹…jññÁ>ËUfŸGÄv@l'Ä6Qònø·r<±–6‘À ¾}ßîgQÁPu‹¨ªõïm™ºÒ@BÔ•pzµØÈŽm1´ûå…¸¶(}5,d!œåÅjök­T?Jé6éö¹¥ÐÝ7UÃXµîñR€0߬ŠóÕpüUoo¡ìßJñ˜(RŠÑÀ o¯•e¼_xüÝ}nm»Ýœx€Uê+ØŽˆíŒØzˆÏ¶6BðW¶¶]t ƒG¹[Â]B±‚2%{nšM\Å›¡å +åñð6üŠiKºïõ‰W+æV~³Ðh )ó‡UC¹P~qŸzž ·+¢ áÛ'ÒÄÔ Ò¼ óeÄwsüèïΙŽý²Ž½ëÃc:N“cÃQGP‹úF^QªßîÅS/Ï Ö(÷ºÛY#ˆ¿REb$ªX-ï ¨JÒ~–k—ä@H}ý¾´¦u‰j b;ùƒ7@éó;|m}~ñÚ¶s´Gj`Õö†@Ã~_[GáÀ6 ã‰+ôµö#µ¥FP’sKzE(SªŠÏd–#b9#–·oìÄÝáÈi'^c¯`þ­V1Ï_P¼Œ­‚kÚ/×sãG#&ª‰Šïè—CxSA8H¡»ÑÎä—¹¥]•ñ^>âå3^>à½ÛÓ\ 8÷õ»P6#D”LWSãf´Š \(Q…_64ªˆyMB±‚2é‹NB€£Æw6µ±ˆû‰šÚ~«n¿nÙ8FáäêV̹ý6Ò^ζ_rlØÕ°u Œ^—˜ÖÕì€ÖNhmèâ"»·«Üvµ0Ælª Š¬¯˜Û©÷Ñ„KÉSnÁîãXµîñ + ÷UaGÄvFl=Äs»Ao³?+˜« Æ$œ®bÒ7¶e$,VÁ5Ù+Vz|& ºCM,ï#é5M(¶Jæݹ1LñÝg·a¹Œf¨w¤^>àå^þﶆl±QýÙ͈·s ©"™KL›Ÿ'Äc7—SÌàÄéÍñe?óµƒw «ØS—hNµwËTbe…R9)ñU ¶UügG-ºÕåÕ»ÇèUM¤ü*T”Ä‹—L»€AI)^Q⥽ ïVÄTŸø?ûe“äFnDá½OÁ (LäÖs„9‚—vx3÷0(N·P“@™(Ðã…¢Õ-õuòå{/wób6θь%aÐÓt|vÂ/¶Î$WÇŠóåâ@:àl5üæä Ù)p¶5½Ø“_îU±ÝŒ…r%.¿TÇïv6½¿ò—¤oªB3¸k?=ÖQEÎPÔ‚^üyÝ ^Ïn»¹[ç9Öð'¯¶¼zäÕv¾W_£‚˜èbg;*bdë^(b«>q¿’ÌJèߊ޸犘˜uµOÒÞÆêáb–D@ƒ¾öÐý95x—ø½ö#©ÞÎ7žðSEÌuµ +Š9pµ%/ÑR_™÷é‚Ø0ê«åÜ~WÒvÉÌ.˜‚œ[sÆ–.ÑeÚ%›_Ý%f:ÛvÄ’\Óå^1ñ®3óyÁ½ÛÏ‹€RœÏŸnÌ-1‰ùö ;ä)EÀËÅs5b×¾¯#GH&QýY‘Ø 0yÙˆØK•p¹ÚØ^jxéÀK?x#Z-€ÕÕ6šï~Ä¥ž¢Å.×ðÄ3)!ˆÑÕ3ž¥áê¦Áx—ìj¤ %–ð¹<&ˆx+AHÊ ÂAÌMSÄÙ醴”1è•Ëõ­wíaL¿á‡BEÜY-\lf{Ñ +z5³tyEû ßqµ ©a?Žµ%Ö#±öˆÏt³‡/=Ï‹úN¬ý;n˜øòÓ¨VžFÓ7nŒ5Ôï^…½dÐìûÃLõr) ÕßkúÙ{êT@4úuŠâ õ‹L.OŒ™î` Idb0¤0/NûÙõîk ¬4Ê%¡‚ùê›:cæ¨U.yuVW3+ý«SZb9Ë­£ãcrŒÌøUr(¦HǼÔòÒ‘—n1³WäåÜ’V׫»ÄlbJÞOŽa ÷ÛÏ»&(¦Q^,ëX \B‹XO’(c`Xü´ ûSâvÀc6x·¨“äàÌYÁá'‰ŸnDŒžÃ¥[±²Õ#´`°ykÖ‰ l©bµp–%]}rÌ$®å‡<ö‰Ï sKÌGbþ¥Þ/<$Ü#›ïQç%6µYómy¹áå/ßúQ'¤2G^Ì"$!ˆÑÕú¤¶;¤]®†‰öà–Å÷‰8vƒDÚ¿è–¹6 0ÑÅ7è‘xÄ#^'! ‚yš*ÎzÚ '‹«ð‚[g +\oŽ¶Î2x¢ 5–$.\Ë¥]¼u3“™ï u‰%gl¨xŽ¬'hÂ~>kK¬Gbí7¼oµ‰" „a^ðØp½?±‘  $îÎx˜øò—¥„'èYM<¡Ú}êµÁÙMÂïï󃵞Nu›nÿúÛ·z¥JyüXh¡ï?þ½¾×ßû½¾íõ½nüã߇A(S]f+Pj@!)?FQÒý÷àd?¾)©¾»ÿ''Úa<þ^G]÷âŸót(¹æSýª\Méå®P«¼übWìÏÏÒʳà³Ì‡Ï’:Ê«Ÿ¥Õßñ)q“OÜó‘¸ÑÞ‡Î^ÿœ¨ÄJ=ÒT9È&+šTß^¤é®~‚™‰ 1¤é5í¼xr"– ±¼u,Þ~Å2+p´‘*4ƒqÚÈ+ç”Ú^1PÇ}3®ê8)dËmUt÷¨¢oóêå=`® ».ÑÞeýÿña f•º¶¢ØR¥º/É« ‚_t§˜¥íÂr&–+±¼Ýê?=.ü¬ÿìâÇ1’¿yâ±1²AìD»‘ +T bØ©çd ¡â»ÃˆO¼=Q5‡ù¿Ž¶kºUÝÈóÌ-»ÍZíB¢H{¶zæÕ+¯ÞK‡-ÔÓ3ƒ„P#á çËI@s¨©aÉô%P­TÈÇ/z§ôž†9ËÌüŠL³Íl(ñ»¡m¼ÕÎmx·m5ßC¾)W{ä’úUà„iE-"R}ÆŸšèÎé}=@³#é2 r>“ºßáÛ_¿üªìã£ÇÏÙÜÃûÏ¿ùÃ~ûý›?÷»?ìíûŸÿ~–!çøhØ~̦Ë4äCqÍÙÿΟßdÌiß0ÑÛwÙñô÷ßS0~üÔýƒ~¼üñõÇ“>¾;>äñŽó4_û”8½ýùýáÃñÕWgÒ¾„Ûê«o¸9&Ê\Þ‘êBÊ%ÞÓvwòölw×½øÔï i®N´¯\_læ¯Cn°ì¯=Ú}vdÿ¡"ïˆ$5Wˆ¹5ÖeVL0AÅÆde» ûþŽJHäðT½´ tµê[8ä2ç”Ýzí6älþîTím8Ó†+møš¹ +ú\À³6°–õÄð³¹—$Hu¾KÖe Ò´?ì⻚ÁÄö©»õ±Mt DÞœ­¼È‰·Ië^àˆ!&ÛÆ vÓlP¤m:¹G,fÈ»ö„Ö'=Á{˜Ÿ;Å=[R»ž»Id£{r·; çTÞµ!¾;pÏZZèÝ´ù<{gDÒ©Ú=цm¸Ð†·fþb‚Êñð)ƒîc§lböv×Ĭ*ZTÙ§4&®»î.¼‚bÖÖ1©g^½òê½E{-Ô½zÀÃLLO¬zaÕŽÙ²&ˆh--tïÚìÙ²E•^1Ð$$n–Ý—´;êèáœý*¾p×f†¹b®”»­+±^´žà}r å9ä²àíÉól˜,ƒF©°ŽÊ†³Ýì8;üËòF÷ÃfUÄïÉò½3lÕFÎW Äb«Ú,3ߣ.dfÛ…WЀv²³€,õpª77eO½éã­ûCÖ°ŸIpýÏõ³í+5‡ r¬xÙ'ëBÕ\ÝÐöá5È9=¯»Ãδ}7G`ù)k§+̬‚|œ“úuçÙ‹þµS5W?ÏŽø²ÙʉV.´Ò1[ þ¿’*~p[µ]ìU-ì±cœÈ;M¹ã.© ³¶:®žyõÊ«_š É;£PQkÎw/Ï=:yJRéŒ Þh Ás¢8ß;.§LÔâ]§‡%EšÛɇÎ7²µzù:¼ÞL¬œk+òZ%«t²y3asßÖ¸)³ÿ_ +Å,—gZ=Ñê…VO³­òú+Y1ÃËz²­îe»u!ô@þ*í¾vÿ(¨æ–ÖñÇ´ÔÔÂ2¼‚~WïËÛ­¬é }¬u_pݪl“i‚4•oŠÕ2Bˆ k,³~†3i¸’†·/ÓÁ1WŒ±¬ÙŸ·ŸiùJËç¹Î¾%¶»}4ÏM‡‘Ó%o Š¼§vÓ©ÝZ»9óöµ›*o`˜ËÍqȦl¹¼”·šcç¦õ̶§‰=»"")oÚ¸¦{敯\x¥ƒW}Ó¨Õnºl~Ó+—›»°ÓC"S m¤« "Z‘wÎÑóâá6F•›t^ɽk5 $’òLW´/¶êù°KU`3È9•wl±è• þJ¬D™ÝÖ‚5ý¶Ï¿ê;† ÖȆUf»ÑÑ+‘!G,ïØb¬l ÐbY úÁ~õk³CÒPenG|îX­'¬Öi\ eröŽË‡­²ùèâúu=ìÕ³Wü5y£³— I²†uûî|S`Ö +ïç®-s›qöOI¡˜Ããôpö=ñê…W;¼AÈï¬õ†1z85àîùZµ“‰¿;µö­ÓÍzö­o¾õ\c ¤¢Ÿ­–kœä+¹6¨ãÜu†ª/¸nÉ&gðH#È-[ˆ–AbØgºIÜŨÜpþãý÷¥°f‡mÒÊ8g0åùÞÌ´é,ˆŸ@_•h¯¥„?ynúœ­ ‚)ÛÍŠ—åq­eNq‹v“05›Ø2&ˆà­¡¥…îfÞæíÑÂÏ5CÛ'Ór/­K­s¾=Ñ·kU^ˆy²5Œ¬ ÉŸŠ¼"¯„!Ie¾ƒŽŸ¡¼–µ(ßåbØëM@)[Ã]Ò™aæ¯kÆïÀˆøwY®Ÿ•”Z¬g^½òê½ùö¨áÙ¡€qrÕ½Ì÷Å3"™câ\O™I@‘¶Ñïn™ÆŽiirF õ‚´<ßÁ9ѵi5ÎèÕ\cnTÇp& WÒðÖ¬ŽgZ=Ñê…VOs­çªyWÔÁv>–ýSh¼_ ‡Í|W0‚&š«ßí+RнÁ¨Õ!;ÏÊ/èÛtóAÊ÷Ù¸ÙÅ\³–vY±mdR +ûD™ˆÅm¢l;ûÒ &¶²ëASy¾7‹ckϺH«œ „¤;Dî^¬™B¥z}* {¿Š©×ÍNÁ17O^=óê•W[¼Wÿêá}â_›åÙQÅ1Æ°~C Òêaræ•+¯´æ;Tš 3Û.z`cöé¹@i§^À‚VömµlÛ£Ûš{nù”ã‘ÁŸý•[×ËÛTDmµ®‰¤iº«T„¦º"U«»¼Õù&ÏIÞh¼ÞU<™«Ä+Z„Š'þ66Ì9~tí-‚Ùi£êžY%"$IU ¯GÌ$ïT×Жvp¬3c?²-ï4ãý +æng‡Ÿt@«3^øؼ@Uw[-ï’÷‰°U#Þ. 5ƒ%܈XPÁ§ù%Ó/;bÜIÇ›€¢n¤ŠýZÐßëç]¸=ãùµ-CàX-šë阓'Þ©h’—ùT ÕE6H5#¾;Ú¦Aô±Ö B!Džmi'Þpâ Þð“·Z}<äM7à‘ZpP¶°OdpJóN#NBqúˆGfœ‡ÙÄwy«Kg )WómP"£u5üý2H²ä¶èÞ§ø0L‚¬uÁK;¼Ñý#Œš¯±©ªh²ƒi£™nýª~ƒNd&h¹¡ÍÔ¯:h•D=˜Ø-¢ÕLÄ&@Ü—_Gó‚9_G;ˆ­ÔLÄæ­²†×Ñfµ2WUãÒü==ªì›Ñ’º? ·DÚõT.\5Q±TƒV8êOyWû/»ÿVLÔ#¼CE‹üw37#‡D¶Lg¾q +b³ìª=ÑQD].7´™®¾p”©ç#Ö¥-¯S‰³s\„pµWLs6…î·Fžù’õÃí¿ôøü\Uã⇅Uí¬£‘˜ÎÄôºÊº¿®†{iœ(ë¸8¨–Õ®6ð~ Š¡~÷›/AC\]‡'Í—+—zðŽþàóåêwCbdè]—çܼÔÈ—s¤„œê5h-n?“®Ð™ÄjÚ¿!±_IÂ5QƒOx%%ôŠl3ö„ö7-'x?ÕÙ„k[Ýà§j¸BUIÔ)ÈA‘-UÞ5èFˉçùc+êxCUtW&;Fs•yR77"Ê4c¯mÖÀް¶™—yŽ‰WXÅ=âÐ*ª4K¸yê8ÝùÁÅŸ¶z=ãˆ+` UñG^<óâÀû7íɇº˜,VÃSÞp¶ +B¸ºO¢MX.S©ÄÏ ¤°õl8ß.Çz'j–ǹQºD=m;7ó³’H\J-áÆ­èhŸ=çØ8‡3z£T[ÝZhñD‹—´Gb¨öÕùö×M w³n´<‘çmÛ1ßÂq[ߘ[}ƒæH ë ­$ñ‡#-zÓÕi1ËÍÌû™J˜Æ?´@#-iéuå “ûƒÕ˜xCÿ5ëÍVnÛc÷ݬ#˜Ðêm›9_ñÄh˜é†3O +ûnœï„®-UEsb¢PAÃåK7+æÄ+0IdÁ[Î×!ËÏŒIóåâÏZ\'9ÚÌùv¤¶º¦M$æR«D3žR#fê7ß×ALÕˆãÔ(µ,×ðÄ B“¸ùì7ãd9—ï8RƒV8ÒðSÞKý~ò82š­'ñàî\j¦S®W(ÖypÂœ3߸wá »šxWJÔÞ¹.ïOyCZ!üÂ[ã3´Ç-W0“©Y­- +åÝB#Ÿ¡¥;åÎØ£*5UqwS‹\b·Z)®‡¶üȘÉÄïÏDĆ@+ø‡&h$¦31½¾°ö0¶ã3aÒíGLÚ ´G[ª"‘K¨+¸X¢œãâ͇8$ÞSÁ½·D +vöìÐÕªxqàÅ/þÁî[?~‹ËÛûÜæ#¶ü”›ªaÏfÅD>‘ï¤EƒcGb3°Þlå:1êºÏ·±æ™ïuX%"ž2߉´X|ázT†7£=ÔP‹FÚÝP ¹j¥?šj×·ðøÜ°VŠF…ÃãsÇ7ÓòSnàýT­ìr|.‘†I ÐJ¨á ‰»JIt‘20Q¢­ËçÇA§­¬n³|Â\âù›v:-ÖjèÁ{Ϥ²÷JZ®Ý©ÄM4•?øÓlQj¼6»4RuùÆM¯õÝFSæ;óÖÈ–ÈÜê4‡~s¥±6è½ej”†@TCýîwy2-âÄ ® ˆ+ÊñÁÿþ㟽BQyŸÔÿÇ÷õ—ýë—_ý½¿ùË^¿ýûòö¦*ß¦Ñ ûi~A¾§aõøç3üøŠ½§q|Yü¿¿?QýGëñöoÿN.õûwý9ýýãï¿Ó÷¯Žò~bœÆûï>%’×þ´-M¿5¯ÝÚíÄ_MêïÛþÉÃo“O¿M¾ãŸÞ¥Kÿ˜x»ý– +Ò³NMƒŠ/‰y$æ31_W³‡ÄßžûJ5 +¼çŒ›D°ûÙýQé]?"Þ®î‰ÄÀE¡F ·[ÌgZ­f + SP²0’çxÄP-n‡††•Ð»^“šÈÕÔ žP@üŽÇgEÍ.‰ïµ˜˜½’r¦ÍKs]ü +à릶Íx¹úÓ¬×6q›øzÆ4Ó‰˜î—îS ÂyÞÒu¢ÄýDÜ_7êD& s1h¸¼û ¼Ÿ:åý'D§Ñ–LÞ}XBEìgdìÄ…¾Ò">K\¼N¬žñ¨â{¦é˜K ûå†3–ÅÅœIÇþ±$òâ|3>ÂY{ìûm Bs³H” â b”©Ã«@mººSÌ$ö”!ËCÌE¡Fªø΋#/žyqà]îlÙ4Ì…¡£†ŠØ0= ¡t ¼xp¶›š¸ãl÷¥¸+t’D[G" vw<󘯀‡Áß~ÿr?¶b‚.-,šû8ãâ¥ê˜ „’)›EK|+íGÌ AH¢{ô©&>¢}Ê‘V¼"Ý¥E¤K8×-4ì«·màÅO¼øºRõµÔH n©’ã°Ø¸¨–ë +± 1— +­6NâéæKÖ¡i n£júøÛ.Á1Ÿˆy }B•ë­Û§›»[DvâŸTw…bs»5 ®žËv]-iÄ¥3.½-ܽñƦæE­bž}#)@&«÷m&±1TŽ= /Wq)Ð-ì—OyWú™6 *×Í}ŸLV‚.-Qw§^ ÔLÇ‘‡œR\Ô~ø¦ ¼pÕô±(4…@mšÉ†­€¶åí}ô‰{Íòg=B‚`~,ˆKÖ{Ã[7ŠäðÔÓVKA zÁ@ ;vJ’MÝž]€*/ŸñÌž–¬Xú çoª(v;4H+°ÕL5B%“"J g¼_q'AhÄÁŒ·46·‰j¤yTAR¡V ˆwœñqέQùÙ1 ­CÓÎXÏX/‰ïÍ8®— —WŠ§³N 5 nº5¾§ˆXÙæKJÐ¥eJç|%^ ˜Pàj;ú0YçD>œ°©€0ÓåŒy$æ31_ÍxÐÊMâ·?öâ +b×2¦˜ÎÀôúB+>J¦u¼ñFæÆ€ª=1¦ô4â^<ñâë:îÒY±Tì×q·M$+@ÙêD²ë +¢¿¥£ùÉaÌ«ËϬù¦«j$:/÷‡‰Ì… Ù þÔŒgz0ƒtYÝ#¦i¸A+UÚ‡½ò£â~žíýþl¶t‡+ã.êò+ÃJ“Ðö#&#àFx!†»ug9mm3Ìó²qÓúÜOÀýŽû¦Ro)ÐMÚ…îšØB ãÂÐQÚ³ßlSÓ +G¦»a1ËXÕ‹ƒÖLå,•û§f«‘ýþ Å‘Ï´øu´¤Øjäfn\BWË¥ßÚýM5JäÝô+jt)ß»ÃýP¾s¯ „®]AÛ×@(ÆökÙH¬ãµ~7šo¶ãB +÷H[ŽXAÉ"‹˜”pÕô±©iH\uÊl)—͆ùÿì—Ar#7…÷9….`„\çs„,“Êfî_õ³[ã1;1Dv©©"üÏ&#Ë’òéùáá!VPd3Ø~*,-±‰åÖõð…‹9Sý-yº=‹iˆK°2”Àžäu7tT +$ë4º$Ôð4­¹˜Y aôäˆÚ݃d#Ôšò3¨°U~Zâ±òc'(Ó%np±ÁÅ.~àZ;#D(h…Úeݲ¡ê-Ö}µwhŒ*;}»¹ 3 P*òìK£%憘Ę2O»!獵©›&eaK(D À½%±ÈÀq`V³>žŽ²ùW»ŠÎ!¦Ð[m ,‹´vǾ¨e¥#+Ý^醒!‹åßËò÷°0¤!–±ÜFM4 Á‘·²“ˆ³'W¸«y¿Ø‘+r®¯IfV¬GÌA¢Î,í—žožŠ¥*„œ,i§Ô´ÞG5€R6nÁPËÛÍŒ¾nÕµÄCeâAUÛÎ\+F„?Wì«Îȉ5vèãÅ1àôåü«NxªþQ‡“— +Î/òWº¢*õJ&¶¼xäÅ[§dþßÒúKµ²¥ÅÉÄ /6¼xàÅÞ¯£¯&@œ®ï¥ŽØ28Î<ªpgâ†læC†êSÛÓ¬/èj®n¼9!×ç’‰VöD›(ïeË‚!÷£u‚¬.‹¢ÓÏ+ëYÌRŽ;1—" qLPbuÔíïßÞ˜A˜ïÏSÝá”öç¿Õûýoõs¿×»}ÿóŸrØÄ Zø ‡t£ÔMêq¦?”x×bû©Þmq×i{Cº}öþïö-¹~³ÏÖ——/¿?þñAï?ÐþÙü/)î«D”orSë7Þz«HZ—“‘›Òþ)åø§”^n^º“ꋨðzKt_M,±K¼ÔiBuJxØÓ‹Š&èÉ›S_ãe2”JªhûøgTPKLGbº½°bq@%š®X°ˆÕ4Ÿ/V +ë’JÜwÄ:úÖ梔’£©s˜ œ¶ÃƇ‡ýeD®O­Œ¸ÈÇ]7Ò'ìºë+­’‹ž$ÞßÑi@ÒËXÍ›¬îK¼LÚ*[ =~3âS4׉Ù6®§hv³œ#ÖųW]Ë /xñƒ÷« )ÅÒ·ï:{Y3L_×»;êüH±@Éut¦Þu)Q [ß«<|a‘¨ %ÄþÔ­ãaÄZ€s²Ž)®i¶+’£ÝLÈ:‘î—3©ÖüíÍTÓ×ÜEê' ¤ÚeúrÃË^îë+œhš¸ê_7MØßV&‘š);êjþ<ìÏî +|fP(ð + eG6怊µœk<ýäˆ_[⟫k¤Ð×ë+YMOJ¼¿cêÄ!:jÿc¿l’+Ém ¼÷)tà €ÀÚG˜#xi‡7sÿ£¤Q‹5ñ ²¢X +rµ~Þ+} %2ìiGÑűm%Hu«6aþ$¡§ûûL‹8@S¤ˆæFÞ¸þ4ts|Ó& ¸–HÃ+ÎX $äǃc¦Ž«÷ø\:>1ÊûŠöªBRÌûøof +mRé¹Êê–¡X8ÛuË™ü6Š¼až›Íë¤ +VÃûs¥Ms@KØWÃ:mr»ú»_´A¡èŠkŽZb:ÓÛ¥ú0F[°AM?{ÅÝ=1Ç3^ð(BÁèŒ[SÇÆ}o“XÎÀÒžkÅG¼“¹qBð¶.Þ¤î3µ­àV2>úRåÛĉvl¾q÷Ù.Ÿ3Ú゘(a%ÿ©F‚X’As O¤‰ÍŸ$UømbÃk‚Th#bÎþîšËÃÄ onxó‰7ñFóåêghߊ×oÊ %ÝŠ‡'¼™M$õŸfÆÇGÆÜó‰˜fLj¾t%ï4ã +¨ýÃcÅCt'ŽF¼äâíUŠ÷kU!Sí/Óã9U ŽOÑg, XoS[±bKÎØ­¸êN“”ÁŒƒÍ[2 k²¯XgÆFPƒj¼dÞ%…Ä1±^V…v7Ob9ËP‚dÈáæ-©ccàBQÑüäÍ-o>óæ·N§˜ésÿ¼[&¡Ó#•¼xÇNQÀJpz¬¸tœR KÐÕ¿¢mXsÚO¬ù‹õCS¨kë,\5 H +îÛÑ/kúÙ}»—rŒžrYžî>“$¼-Õê'Ìãõˬö#y`Àl‘E¬Vyª‚Ré;ðBóõ' =~Í,†Fû4ˆã˜³¢ÜÑðh*w mH¡ý$,QžÜu†¦Î4s\Õ/³¦'çJªPê6.v@¦(Ö–Ü0?5òãµl¦ïV(ù§®Š{›ÆÀ%,9«i·2d©}%¬sIñt¬aÍe`(9ëŒØ + § 2L ‹™2VÍa¯hhJþÓ°ä¬H¼]õå”!†çÛz:æÄ ¢Qñùš1µÄt&¦ÞŒÏ^12ãï¼b?U$°´“»qRHéM/gžvg, ±œˆehÆ»ïèÇäE($¾Ú*^Ñ^e K&ˆ©­3Z­P•¶ªsu –LM %²á‹<§Z-ÒñÛj—]õN¼‘"ªñV¼ß-š •­ŒÍŒûÙ!-°œ¥ñæ/Þ0;ÄŸó“´CéÎÖ¯¤üh½¼ªƒ”|ÓJä W§úàLIØÊF%˜ÑÀê€foùî¼ C]|Äéå¬/¬å•†WN¼òÅ›bâã5Ú/”7=·%¦†˜NÄ4Bì –°O¼Œ†IŠ…N¶`®‘”°Ÿ5—µÄt&¦·FÇýKnLqißÎÙCª9"žœ÷\­BÉ?Ez+ߪ•­Í1 +Œí—SÑ”ô%­A˜ýEûX +˜IxºýZ¹áÒójéf›™ŒÔˆAUŒÌxDß„r-@5H¸­‚S­ÞCS-ûÒQt¥Ë©ñR³.82ñç \÷Ô0-åȗ͉j74Œˆ›Ð¾‹ú¡14áo¶Í Ó€ßÓïÔÛJÃZ@0÷ýw™P&+PG1qO+‚‘AStÅMéí3‹%"¤R‚š¶b±dÌ ñ]ôÀÆݹâ8 ¨ìujT Ž7n=bÒ +UãÖ³`2oÖÓŽW œ )"¹«m¥5àùð’3ödFŽmÅ®æOzº«M±âNéAÊPÌ÷Š‰}-'«}¢ž€‘—öÏÿó·¿³BFüø>y‹f{ÿþoþ¬üó7ìïþ¬·ßÿõßÓŸí½ +*h©v§ò1 ;ž ”ôë ÃY_!¾Ïéx‚úóÒÿÿKNøù]0ÆÇË?>ÿãAŸ_ÐûGþÓ(>>÷¹_þûOÕ%W>ÄWŽøÄ‚O=*¾çÔKàõ´G®‹ZªnDì9¥Œ_å}EÛ°Þºu}ùR~Z¾Sg[Ð÷Ö²‰8çOï|’¸á½s‹‘1T/²¯i—¼uSþlÞßÏwøõ|ÏZqeÚ%êÔ@#E\ÕÃ+Ú†•V>±òë_£BT9~aK†²"$¦¾ý®Cl‚‰~2”¥!–±¼õÝìðß’¨>›ùê„#Z°º•„  -bEb—pÊH¸Ä0ñÓƶ_ ÷‘¡…3^PÂQË>ÄŒUJdlKÕ÷ˆŠø“ú½ë +ÂQÌ­èV OӬ㖘ÏÄÜ#ž{Êmw{î¶xœœ˜0Åz‹ÇI קëÄTU¨›[µ~#¾7ã«5œ¡jhlo‹Ý ,@w*>{ÝG•@ÒN--% d=ùŽfÜÓb¨"Qoÿ°”+óml+$j–ßÈ×ç[4ºV³‡ªPSH» ~I ¸†WÆŠÄÛ͘“ùO%¬i³ˆ[¦†˜NÄÔÇ¡Ì€Ù¢*¼ØÖqAð*ÜóàÑévg;FÎVÝÑDwʸœA¬>MÜðæ†7Ÿxó[¯BlXØÍ ;§‡‰ç–Ê­RÙ<ã¨Dn¶¢ÿª÷4JAb¬ØÓ8ùÇ´Ibì•o¤rÖ®|GŒ—òkh¨úÕ¸E`”¼UÞË~Õ!SÈ+Η¡¢×Ø/µÄt&¦·Kö;!±$ÿðxÈ#ªÏkÿ„[g¾Š;- +ÚFÄŒì½]ƒ»ó›¸klªöôÒMl Z£¨ûºg¯­·GÀím#ðVÄï”ñýËF]åT­%ÅŒ2f%P¼|…þ§ã£{|°öDˆÝ)jÇÀW‡ÇkÄüˆ˜ß^yxÍ7^aJtxÞ ö㟪5byD,oªiÇÌ®ã‚a€L¨ã^€­_žÑãKqÄÅÓQM\~uþjj™Ñ *ÕD^,h^)ê]jþõ~"Fîòö÷o¿·÷ÿcy˜˜êíñïþ^|ûîoûÃßëíÇŸÿü²v¹ÑòõùeëkE†·¯;†Ë§á¢Ÿ¿Þ¹X~C`¼ñ´¼½Lèòæ·¿—O)?u÷Ð÷§ß~£_øö§üBÅýg§ˆûÛ_Ä8t3P¦Øæ/àZÝ^YŸ#ž3¤¼¨k)b?ps’¯VÅHK"0»YRĽ/¨bNÄ î9•°õvÈ-¹¹mCk!à'C¶»ó€ë‘(Vn¼“ã=n|1ƒ‰GG¾X¬ Š¢äQ×ix¿#]ØM­ìàwšÉ»˜ZQ‚㨧mêw¿±~ „ëå17ðâ:–F™.Ž¡W‹ºÏpG;©ˆt·ô÷Ê©º¥ŠoÖ,Ž7’ /÷ù2 ŸôïiŒhxF~Ù|ƒÖ°¼½¹ghª7ôDNÔv´î¸FËhVýÖåå‰z„/£V.G…8SÊujdyD!¥Bµ.9r™M¡kÙj¤œ^Úå†6®A$SBS@Muhž/¨ì#Ñ«n b‚µ)Å+%×(‹'“îb H±v'ì“¡ôš¨O.ff=pSvkÀ½_ƒø¤*<Œ]{‰".ßô,ݯoþ¾ÃÝÛƒRÐÌfä6¡©¡ˆ¦6— P$¸´Qõl¬ýÔååiÌ,aH³ÞýöŠÛóboXü×^0/þˈý™ÎŒ)=‚=10òá£x/FËÚ ‰m'ò©ÔX5‹Š¸·—犨îha?»ÄƒÏj¸BXÙ‡ëaÖX½Þ)­K´lÔÃñ–Öhé-m¡é¾ÙÚo¹ټï4¹ñXwÈåg¬·KĹ¡qnVXwÜ<‚(nŽŒ£r¸Ü‚ý9´o3 c¶5…&‰6)þj,—ëv`ñ¥¥QPî…îˆV¥1¼´}ˆc##(\¢²3¡7,×ÖLÍ!VõÉÙ·æÐÞ¬¸Ôò8Y‡F-¥y¾üLFJÒ¸À”NÛ(÷mß:ÅïêsìdøÎÕsŽ +rtdS:­pz㌈ÓøXïÀT£ê8eQÐ…øpUN(†FÀ(Ûõq'â=¦&+Äò€XöpÜÍ^~pU‘ІŠjÄñˆR6p´-W×µlMÌ *¤ ^sm'+„5à^z¦ÒS½ý–íR9‘?¤s4CP¡ 5¦Ì¹.€ÈŽgäXзõD]B¨B¡PÓ¥†£-M_Éï¾æ#f÷ Ûʹ½x/ç·CqkË£_Võäè‘"Ž¶´gh²ûEãI¶3ܛѶ¦éÀì@«ÛY¢Ä( +bèwÊv©Ü8QWòæÓ4RŪa+~u!Ú}"_³L‡XPÀ—h˃˜•¡:ѯt¶}]-t6ïjþœmÄ;ÛðÄgWhj™FhBQ PoQÜ}à¥5^zÄK_‡ÇXAT¨JÁܘ’_%Ÿår+Èqóç”TW× P$IŸˆOù±whX¶ÏÃq30´Dµ˜UÝ+,S¥èØúåˆÇq,…@©~|ÿ¤G*ÅŠÍ«c+¸•w{ñn*bÚ°“ÿ«ÔÅ‹›ÇÛ +­7ærû¯ÿþí÷Ųý3ÝgÜ‹ôòøw³?¾}÷÷ýáoööãÏ~bhýþÝae}`B>¾;s—rYúŸ?ñ~s£bù ñFÓò_¨Ë›ßþ^>¦øñþ¨?ÝÞŸ~ÿùý>~áÛ{Ë/ßÜýggûÛ_èýºk_˜© Õ_u}8éGæM@#Ä«[Ù}Ý—·-ï.LFâùüˆµ¹ŽnM b?¾ª\7Ÿê.+uïD|¿ ç)åÃ$‰8VyŸ‘/³Šs£AJm…¯¦x\u‘ ¡¹ýoÇc¬‚@ÒžÖ~¹ŽG"fè¥ô<^‘ÎÜXq1·LíMÙ£tï3´GÙlˆ¸mšÚD{Ìü™™¢ŽÛc̤ß½i Šq±æ¸­·ÄmÇ ƒcy§Lªbu)\­Tl¡~bݽ‘.¯jÝ `ªPN×"²6NtR*pŠÚÃÚÀz&óeUhÝ‚1l}Å)JKeÀ ‘ÍÐzU®›ïÅ3ŠWŸc'Åw®¢æÞ$(¤ HÄñ^Zã¥G¼´aÁ#%Ü%Ðð(E å—tî‘MLÆï¢ßÁŽ[Ù0¯ñò#^~{¥ ·MD]Ö/ƒyâ£x¿Ð/¦©¬„3ù/«ýË~Ù$7’ÜPxïSð#‘ø]ûs/íðfîá,qF“eªªP£ÐÓ‹VKj’ýññáá¨L>Ô«ÑŠZŒGb¥@CŠí–vZžÑ„K+\zlæYÃioµð7 1,lUä­W€Ùûxv¥JÉA€žYø´•|jBT«•µÎ"A¦*•’Cu6ü;½•ò©U6q##.¯錰X|\Hãeò°yRzZøáÉó—Äs®éD¬+bˆÓ]ç}<[’¬˜4–™XÖÄòNÙšEVÓîèŠf€¥ò¸àTêå@)qj¨Ã6©3m¬2´Å¤YÞñ:b‘Z›¹^—pàZ®Ž:7Gú–H4WàRÞ”ñJœ´ÊçNüe^”Ÿ?LÄ<_¿ßTªlci Â~ê{ÝFŽñH,4q +Úy›Xgb]ëñ´C¦dýYÍã{*»Šl|©£±4â:û›'ú¶ðÃýÁ_Ï[N'b]ëDœí¹%Õ¸ÎEdâvùÅyfªÙ’Á…RMÚøW-åajÐðãúäñßužˆ›Æ¨{ÿí/èôü= ÛÇï/ö÷ü:^÷·ñbßþùŸUÆ#D£gþwZ©1úìSÀåMòøúùC´§ËOcÆÚ‡PËx[D|þ½¼Moí÷ß.O{>úãÛß_æ÷ïùã…å„x~KL>þµ’EÀë-ÍÅ%+,2²þ åñÎÂ2ίN¡ñý†…ƒA¤%Ÿw0ž7,":%Uøj}ÝÆÔaêá:ÂûÒó­ñ8Üd3&ns×P÷~±Ä/O¼¼âå?y¿è„Jä«»KÃö êWk{êÒ5Eàóx– XVÀ²Kâ1oÈYßPbAæ=ÝËŸ&Þ}è^ˆ>EzµÆ/M¼´â¥ÇVD°KšFðQJ_õÑ®-êd„4…n-[NÜn}·'n×’û‘b¸\Q3Çl«´›5† ‡A`lG·ik:ÓÒÅ|C}ëM]è¸6ÚÅžòng?3õuNPÃJSWУÄ[ÚØ>ƒ‚g`^ó㘭ÊåíT‰ÇÕÑ.?Eò¦F@´JËÙ ¼Çå1qXaüq²©´äò˜ˆe&–5±l¯—Çâ/–‡ò(@ñ-‹¼"„‹"v†±ò*¹ÂxF¡ÉSoVÉÇ6\ÑúÏ2©+˜¬R *xâÕkB!Ûq|¢i#ØÜ+YØ:¸$~¸c 2 ö¬gþÁK3/­yiøjyc´â¸|Þ&^šxiÅK-ûJo0ZñÕyvmÁ¦Vo'—ò/A³,Ín©oµøå@é›X¸…&ö—Ät˜8 5TpE¾Ú31Oļ"æĬˆ¸²ñ¶ ^jð¬‹Z?Ãíòp+x8r¥ƒc4 +ÎZÛãfýÝGÿ!Í®[ê n‰¾×LÝ÷ˆT<õð§'x&æ51Ï_î + ˆžv ›2t®´Ÿ¤ÇÕhâýÖá +ÔÛÅsÝ&öt̼M6 5Ý$Ö™X×ÄzŒxÂ_ôg=3[wllÖ[ø~¹&HгR|ÔÄ·+ÒÒ@C`²J½Ç †{ßz†î#þqB­X·´(ZÉÃf`úÖjù݃΀³@»¡ÄÒx\~påMõE@´B½r9"%>¼ä®?6ªµö.·ðɦ··Û÷/Ðn~y›8“˜ a%S(Cç^)ÛT`È\É1ö‡YngÏûnOÅÌK± Aøå>žxiâ¥/=6÷stˆèYÅ<ÊúÓ¿ÿç†ñ¶Ì §è{âAçŠ-™¶[ö÷‘ÚÅ2b?Lì›ï#þ±)¨´¤üLÄ2ËšX¶ˆ'¯ì$~úñµÆŒ˜æÄçÜéL¬kb}lTâS‰Å†sâº"FVØWœ¶çvÍÝ´­]ÞÕŽª›ú×€½|ôªÔ…¥é8²]7eÄnâíö³¯YæxË3âÄ> +ÔÛÅÄëÞ£qžÃÒôžÔµó +Ð,±NÀºÖ=;þBËY:öü¤£Ãį—³&ö§²9±hbA‚`I5þtÏļ&æÇ¡8þn-vpwª£1ƒHKjÅÓMäD㣠+¿¢Xib¥+ýÉúÅÄ9r!7ŽJì=͈sŽ¤¿zª9Ht×D|–‡­6µ:]¢ÞÙ±t Q+Ô×W h¡d«w( *¸â[‰÷£ù¾ Ub;‹w÷µmó´ÃŒØÞwßj˜§ÞÑ;gÄG“bcsìrpFªª"u2BA‰¶š%ͼ´æ¥ mOmî½iš‡½ð†ëHFó¡J]Âx€R©='0NŽBSWX0‰;‡‚åÇ9[î\`í’$Ås;‘xÚÀ+ây×ÉDü_ö«&Éq›‡îsŠ¾@@`#̲L*›¹Õµ§{¨¯“*K]äTÓc»eùùõãûábnÿ:;‰solÑN:+â.¿¯vKu›XèЉA©z{¿Ò‰3d”…œØ׆ïФ]ÄÒ"–=bùÊS·ÇT (6ñø¢ç¬Øº€Ç¬8l@¤}+ž†âŬأ.±¬dÅH, !¶ •ÉÖ˜¢œ\¿Y´3Ö5N YK¨ˆO†‡ƒã~ŽWCL!×(9æ’D¹xž>¬äí²D]bBUŠß)§î?Ž/áØ[¼d鯤y¯§Š* œWR…9ǘ[S€íø +× * ³¡=‹5ŠºäåÒâªv ·ÍtƒFÜ +A¡²Pç$ ’ènÄ­&¨AL;ÄÔ U´ý6¬zÚÔ´‹xÌÔ"Ä› gOŽuTA–—z·Ž¼ØàÅ^|ëúDfÀ~9¸9FRN¸²ƒ+#ôŠ‚æ¤Ü”¹ì)‡%ßlû\±‰';ÉE¡y`æTÀÿ…ÝçÄcV#Π(A¿œÏ&œßZîF{aÔQ%Š·#¾28¼²¡…Á§ßê–+™† u!cÛdL¹,Õ*hlÒ"–=bé!ÞÇ݈µ=›¡+56+u¥þS€ +E‚øÀË-^Þãå†ÜµCâªgíKwØînj+vKļé¡PÖ±×΢ÛGÿóÛïþ}˜èñ:ùd}ý›ßì?¿ù}¿ûÍÞ¾ÿõïîï§@¤Ì§âÔ²ÁlXÚ…üççË2¶gþÖüNÔö/iyûäÇÿÛ×ôšùñª¿-ÿ¸üñøÇ>žÐû½·7´\<;×Tßþþ?«/¼¹ó·1?ý¹VHôÞ¹ëiÀzO·%PE=,·/HJ½;‘/\!¡tsc“X°( !¡†¹Ì;Àüö jxÛœ)•Hw$ó«3.Cá¼JowýæÛCãJKK`◮✠¸)7g,#p ›%žføèÀeÓÓ k8ƒ)>Ëoç° ¹o$DÐ͸³FÖ•ÁØA‹a±ÍI&Pìîd»ÊwWÛ›œpJàëÙ‚†Dñ+l¡TsíaÇ°…‹{¸øÖq† ÁV„L¶3xÉ©’ïŽà+“WÈãŽ3å¨p7+%G•aÆŽc.áz<Û¦Kb󤵻€¤…+{¸ÒËŠ++/©‚T«=ÀÃr蕲—²BÄÙ])+Ä<+¤›Äó, DÞ$¥Ëðp×éq‡'ú•âvÆ]À1ìÕ7YP}§«–xýnû’J‰†ÅEv¶cx,Ýb‡JwÇñu’àŒPjØî`øõ5„A{˜p¼Q5P Öæ”…RÙÑ‘›OÁ¤X×9qd +l|\ÑE JxD/zZÍH7Ñ” {M+Q$ÿ—r(Â*ø4Â/4µW‘ ¡v‹Ï4æLÀ5`ø:Àí’“D¸å4ç¾ Osè8g@Ñ®K¼4.eØкEm¢æ#À¬ ³"HÖã`ž°(¨ÇRÝÒp!À› 'ŒæÆYAt bL¡AHuJ’­£ßÅš;'oî¹Ül \làâ.þ„‚õ¸¸Y —–àÕv'gõÖž5Ìæ –@£|øÒÒ¾ZpPUÀœhI0f¨…?¾ç9—ÐCÀmÒIXv€e é8p-w÷à £ÙƒÃ”Iœ…{ö¬?ñ_ ÏÚ|Ò]ÏÍ|Âe±uÌD éJ€½ó”ŠÝÞ> `Nþ[^gÈ©AÕtÜ)?áb ÷pñí¹—]ª^,ÙÖ)ÀâåÁ9Ìx5õZ)7÷õ}``w€ñð“À¨ÅùÍÃóÙi üaÂHvrA*wˆËŽÜÙê—A)G…gÂW+d/ëèW¨Ük×,À¬ uv­PºŠ˜Æ ¶ÌHZ#ÀŸgNZÀ²,o3wíÈ@HžQ«®…3nÆ–F!“-D°Põ‹–1 W„¥ EL Ø’3Œ 5 -~Ñ:Vò’K,V%8«wµ”µ³pÁâi°QuçTœ]:{ÇΠ.íàÒO¸¡vÜÒŽ¥0¥vÕ j +fç\láâ.ö¤p¥3,ÇîjV¶\g76îºÃ`0<ä¿Ns@TîIb¸¡KBOKBCIC¹—á.6pqò‚%ȱ;›ÿÖdõff/ŒPSTtfÌ +¥JtØæÌÉ@2E §§N·ÇMÀ², ม¡Ö…$!ævÖ=sÃö{„÷ÊDÞò¢V åeyqe…XÉ‚ÍÏ›)Þ,ßÓ{(>oæW–|ÜÙ§\+ä¤QžÐ –cx¹çl$ºŒ“e0¥`dœÄ»g¹Â+T ÷æ'³ƒóm„Ùí>aV0å…êÃzQ@ÊÍm/‰‘÷L jצ‘'ÿm41>ÝaøÈÝ^y4‰D…r>÷åÄPÙnÄIýÆœ¡>ŽŠ§Ìtì—µ‡³všƒRŽ¤0ßaã¬@%î{EsØIa l,•Ôœ³m¹¨XIë ¡Õ¦&£_™~Ø™Ó âÌ@i‹‹~û]²W8|¼Nˆôþú7¿Ù~óû~÷›½}ÿëß]ÌnAĬ¸#ƒ?È°í#üƒäç“íç;Ûƒ ¾+¼!ƒfÙîýþÿö-=;>^ËùqõãáÇ}>žmñxCKÅã±Säùó÷NzžIþ—d¬þ-æמn5ïF|mm-¾¿Äx±Å‹{¼øÖ1£íXM [k-€y˦Uø%õb…x»†/D\ÍïäGxÄÊ FÚE<ٜ͘-% +TÑôíÁsôíK9¨UûÏ£ +S¿SŠœí¢™ÐL³aUhÈ1‚­Ä°&ýÔwŠiÎ'ƒTJ˜Ïxñíšð­KåGリqŠ±çGuo³ò•ˆ¹AÌ;Ä<€Øû($A¾×)®=yø?öË&9–ÜÂ{ŸB0Lø]ûs/íðfîa–4UM4š¬è*ñäÕ“ÔÝ¥^"óC¿ Ãh[0*¤BccÐ2Q±Ù˜;¹%š±c¿w1ˆã%£BœIò̘Q §qäã“ØvLôWEôæa‘ÛÞºÓ[zëׄÌ^Î’¨êÈK Ø !˜SžˆH¸tjPœ3UÖ^uÛŠ‹Ç¥£Ý^uûh›+ç8ÜÐ0“+Üú“JˆÅ×pü•áÆX@Ø£¯† 뮂&ºë¸0è&t¤xzçî÷[ g¼`Ûƒ8Y"Å"€]mž$æ‚à*w·ÝNïKïÜë.O732”!æjµáŽŒ÷£ÏÕ† Ç;W1ú0xå è–Œˆ^tµÈøè¸ÐÂs®ˆgœ­8+XÃñŒ§qâv„OXb6>ì&³m1e§XŠe&ݬ‚§š0µVó‚ˆi +­b¢o×4j¼ÝŒ§³íöà ¬”`Æ—v;½S ý ¥„‚ i¦~V`®5ÓÖ5¨>†¶EnŽ1ýœ•z³”bº\°3¼@i:VüRï.‘iº´P±ªD-w¹#^=@³±p>îáÒßIuÆÉŽ«}µáT-¥1vòLÉ ãk´p—©=ŒwnáBC¨AqNÙ°´vWЄ/tŸ?™±“†3¾„_+B ‹cA³÷Íóq9¯£8 “Rë”i¼µ¿óûK÷úõYJtÌ­l­™ùí1ñ“ž´¹fŠbé3ö¨î–ô1j¿Ck¦‚6‚"ȯè +. +T(H·oQ®’hÆd=±ŒÓmæ)Þíã¤âÿE@S¸ož["ÅÚ bÉÄn6«K&ÅVš&¬Ÿ+FE·*š)ÜòMb`b™|l# _6;̃4º»@vzëNo=è­_zC; aÍäñ‰ù®“Ž Bãd[Â\ È<ùO­´×JG­´Ó:œíÌ¡ô,ƒ +•T=×úÙqÿ1zÝÆuµ eâe¯XŽŠåÜŒgüÌÖ3Ø¥—þN’¨™?õÖ½ÞzÔ[ßžnÝQ­ìÔÊA­L¨Í—ÁŒ +¨÷oÝ>…g’íýa3k½½5®læN>Å1tÅéî(c¿Êà EünV»4'*0Ú8‹—òñÿ ón¦p oÑŒÏNx船ùÆŽ °æ”È©n:.ÔZ˜§ýp³€WgÄKwmFPoNEñ\ñÛóGñ° +ôì1éàG¼ºq#Ÿf÷á|g¨òñTÈÄí¤Ö Â2QpºÛˆ»ÐqH,#˜ ƒnBó€š#ˆÐÝ3Þé} „3Acƒ¦<4ÃtÇ=Î`;Ýqf0Bc Ì°"õ÷Oké9ÅöPq=­8$ŸT—çÖrÅ9QËqh¨Q_?é*Ê5[R†hÿ.èÝ-Šc˜ §™ýv|Èvctµ%föõæÛg ä-R|ÖÁÃn›Sw[¾6¦Žhæ÷2ÚÏuD²~Ã.’}Ìf²×+G½ò6hŒc¢ÍÐÙ“Dìj3uœƒ9â²Æ˜»ˆÂùºõ'•HíEqé §h˜ˆØ© -%Ú’W§XóˆƒWœ±VQΣ˜ ƒnBG›7­øþ{£ôfVÉ4c$ \qÙæíôÎð{ÈjÖ€k YmÍùŠÙx¾“ü3“l¯YÃünÆÓ<<& :7Âã~‰0÷zgøò½›ùí‰v:!â{Îcx.ÈÆàqœjël\ºž#Ážjc\[gÄŽ×hïø¢˜ 1h5<éV4D?B«´±â—bø舙 ?q„lO²<#f(¦a®­Èï +¥xËÔhÂÅ˘"_=sh¨Qw¼øÛ-ì jäàåjÃû¾9†™öçpi¯–Žjéí; œ1º5–›oº’ËÇÂ.À·ÜU|á…”¯åºbæz÷Öýàœ(Pš†ÇÆŸ9<½urÝNo…¥¬à¤7÷ܥɦ… +gJ¶l® g ©Aß“lsY愈۸¡—qņÃ&%ÂáûÎD(ôñZYÌhÐô#&¤ug|‰E£þŸýöŸ¿ýýý]ï?'nõýç¿õgý㟿õÇþÞŸõöû¿þû—R{¶‚¶žEûApiƒð²¹…Š|}ãÅ>±}‹ÐgùÇ e{øû¿ÛßÈ}:üôýcïïþøòó9Ÿßm¿âãûQ||ÝDúöï¿\6äï @µÙíÿSÆ=÷«±àÍj¯D–YDïQ”Fqº[íÞíá o Õ\8ÉÖåʈ-Õë§Õ>¬ëf«PÓp¶´WKGµ4šíUfŠÿr;¦±Ö«ÚK+߸m¯¡ +¶°1Îj½Ui?e´´á¦M{÷¡ÚKs·¢Þ½ì”9¹kq6ô׬…›¶Þ|É +k*ÚéÄì*‰»€–Ûi碌 g(Î#v7éá`ãó;lŸÍ%4Ä‚K'.uŒËXx‹aaŒê­{½õ¨·¾=¯¸RO« k®"X»{¼gå†î­]$ú÷Ðï”òA)•jë96q­Ã‘iÈ,_$wÅÅ£V;ë…;7Ì´So7Úk y˜íÔž=¡2¦‰ûg™MÛf,Å¢[Ñ¿FÐÜÅ+º‚K'_Š2b§x²†gËN±ËÌŒEû=d™X ´…m¼¢bsPRÌä +„n–gÆ\´gÅù,A”¹ÔnT‰ž º¤€uÎÓäÔ?]CGœ¦µòˆ×ÐíäŒß?(Fh+¾Ê{ÓN1ÓnÆñ—†‡¡´]EKÒ¥R»#®tCg ZùÅs©_Iý=µfb5¨h-Q§»9H Ìë˜.×Q¬ª”ŠàJáDÄXûÍÑF]7«÷îöLÌwEwðÖè¦[²ïÒy8ßÝÁ¥+F ¶î2ŸõÄfõ2O§ÄÛã2&N—¤È5¯qQðV"G|꥽^:ꥷïk ÃþjÍÄ=Ñ´tóä¹ëœú§k¨¸žVüØvZ±… qÚÀíG‚K…BzûÒ]>ŽÐ8¶ðzŠ»…à½îõÖ£Þú<†¯õpWkšÓÈšŽ3m™˜à* ÅÄr\©"¬eêe£Î=|û5w¥…û«Ö¢ˆXÐÃdJÌxçáÉX›áwÙ)–ƒbù%gÌ…A}<âIÁ3#~Õ +R,UT(mÁ‰´æJP›'RÌ¥Q ˆbŨب˜mŒ@²,GÁò6°ñµw]òfÛE‹wví"µl  3Å„´~' »cZñÃî¸j¾V¡ +Þí†Kc¸AkxûQw¥#jzø¬Þ¦8,Œ +X0 w7˜H¸m *v©>rÃdÁÝÏ•ÔŸ„Ñ|SK꽌uÜÆK¹¡8íBp§b:(¦Å ó7ߌódÛõ4®à¢à­Œ’mÒ’íRjïŽb™88a+¨˜Ü½u{Z›;>C^s-·ÓûNoÝé­½õKo¤VþÇ~¹$×’Û@tîUh†Iø½„^‚‡vxÒû0®ô¤fE\ˆ,_RA¶=zúU)…—È<ðˈÞeT僫']î7î¼S#P©?vj¼ŽÁÙÖÏwf ãÕÇÑ]½ßô[2 +R­aàÁÆaà1ÿÆó% .¹5‚_5iÄ“KøµK®J‚jrToH•¾)SmÄÜ(æ‹bRœýMÚ1µ‚é*˜z#žk +¯ Ï¢ Má%Ìш7"K*j´m7ãì™Î©6°êOcÿÂ6îsÅz[±†›–€INâvŸqBŽVm;B+PJ^Í;S ¹¸#òÒùÞæ³ox½@ÎðzÓmƒó º­Ñ;Äg¡wŒ8hâ5÷Ðkó­ÊTlÕŠóFÜnÆqùPÍÀ’Eó½Ûp+gkì?‚úmxxZÆsGKÀè tDµw¹q«)ï–»æßÕfÙ†ö[séYø^Ÿ—¼Ù½‚'¹A’”€Õ§±ÎEñÐåö'ŠˆóêXr-aË­@Ê!þÙÏ90ª"ˆ…ç掎ð#£bîEð¨ÞNDä„œe}Ïóîy¡·¤Õ‰ÖèÅF/^ôâ[·”Y@1ª¸-·M +Hâþ|G¢õ'ÕYâ¤W÷°>•„ÊQ­áŠSOÝr"úÚäˆã8­šøÖQßÃÃÇg?ÙFÇÉF)ååí1ÉÔ’ç0óm<>ö yšÿó²re_Ëö¦{,´ççŠ +´ÝP`róq¡`Æo÷8{u'Q¢Ç”“æ[‘ûžv×¾E¸ Äž^ Ít»’RLÙîÝÍv¨QLÅô6PøV¼FÃDÛlÛiV%IäÝÛ×Sfͦ·óW#ÅU€ ù°#RV¨DAcì–üÕD#æmÜÄŒ odâ(Ñ6tÄãîÂbáÖí¨Øg¬ïgÌAŠëQ®8Œ#!Y>(‡+{3œÛ¦ŒÀ¤Ø-çÚ*®WÅõ­SÎsqB@5V¼ßŒOŒ‰ dY»®VüÙì¦â4xŽÄ^w,‹7ïªx$Ú¾Q,Žl)ŸTwæ>Ö\#lÓÛئO·õQÅõ¢¸6ŠãQ°ŠâÝ%J>_ãâçlÝìÓÎBÅó@¾U<æˆØÃçåÄiíQÍ!HC +ÚlëªùÓˆÑ|ïN·›h/¢æ­ñY÷¥—[½|ÕËÝŒ¸«7ô®³šÔ`¶kò½tÑKC‰&þ“)$Ÿ ·íÀ#©B–r’b÷q©6ó—bjÓU1õÏåá +˜1¤ËYŸι×m4ã£zî0ö§‹ôY¸¶zëUo}ûAÿRÊ@–Ã昳qSý{\;Svz·ÕÅÑÈA÷~8AÕFðŽ5WAr;⬦„Àµ,>>¯ç7Šù¢˜Å1ÀÈOB5ó–¸8V̸6ŠëEq™±2h)Åða[‡8K,§µÆÞp¶–ò!˜VÕÀŒƒm[ãݱm‹3ØO9U9„!„xjä† ó÷Dp÷È%÷Ý6N2$¬}ª¤V/]õÒ[ÇsÏ …šòI¬~fP9hëªxŸukøŒES´u;*„$²œÞç&[­K4í<˜ÅëÛ¹ªÏØòI÷†P•òÄW çñ³ɦ·óXCÂd(Ù‚ª=FäÕí1ËæW¢ŒÀ»Z»ù06Û02ƒ +ÕüiÄHñfã}”2g=(ýHR +ãmÆI×Ηµ|QËCó-À2€iÃ…ÜÇ´±BŽý«`Dy¡­CHÎV@Uñï>f[1.ã¯ér«˜¯Šù­—fwõ†óõè-%H²=½{TöŠoÚQþõì¥åh6Ë¿†…ì°–±I:É ’(…ÇæŽù`P5nc½­X»1Ôp1þ¦éœc“ÝEû‡Ð0­/÷0+”!¶ô°`‰b¿œ ìŠÃ{s; g« %œïnÐsÎyq\½Q’‡wWGäM£T‘ûe±‡Úœn8}!‰¬žíÌ"öc³$ra:4;8¨øcÏÿ$À®ÞÈýo¤ØŸÎ¹?ã}\¡¢ËsbæŒ%Aµ“²â¬£È²d;Cm5„œˆÎPKÉO ‰Øw £ 1e¼mæT)²<ƒoSpHì”Ýh‘?õb«¯z±Ñ»<Í<yý|'¦b´qŸzk«·^õÖïç;µßÈ ¢¼åUTüÎຼßæm\UŸ±¤ðŽûòÄ0õˆ*©8£U Zc#¸QÌÅ<âÉ°ö9mŸ[ÃJŽégŌDzø»­+Âåí²{lsÏÀ´¬†÷™Š™Ï:@µ€[Å;"ÅaåáóÍü³Q®!ph»á˜è+¡‰ï;±iláýø‡°<~KÀñ³f<•Ø<Š+qXû%' +.½Ëîÿ1ñßÆØ@7ïêÀ–4Ÿ3cJŽñÉVÓD£½xÑ‹_zãˆ@H"}oU¬â)$ÁˆøwKR;ð¨; %ªúÖYÎÐ=·î¸‹C<'Ðú¸¶ÏŒâs¢Õ¸6­9ŽË aP8’¶qewZ4ãݺN=‡%I4_¼íˆgŠ›tv„†§PÑúŠ¹UÌWÅÜSŒw'ªuδƚžËàHñƒ…©HHï_ó¾7~ÂÃf?Ëkc,÷œ€J ZcÇf¦ä>.À/¨¹W–Žr,ÑÒÝ6p·âFÌð]ÅÇ ·_Å–çE„¹‡#º1<ìŠõ1ì‘´ïã}àÒŠ„ì¾aÓ1âÏÚøÕÞ𫆴¶Ù}¤®–ÓA×F6-ý‹nÅ”4Qàˆy¾ !W.órÏœ1 +X +zËd3.¹¿yÊûåñ"¶‘gq®«‘xjV0 ¥XÝgm^2¨!hîˆm”2$.}êÅV/^õb£w¹‡ ÏqD?–è?ì—Ar#¹D÷} +]`0 €ÀzŽÐG˜åțïñYRÛfE.V¨¨ {þ¶$«ÊÏP23áKi˜@<öâk4|i‘·z5ѱ*¦Y=„êz—=œºÞ´u%–¢+iXÁ‡g]:9ã¸e +Ö–Yht“oxŸÙ”¶ùæíÓí×–t»ùýçöoÖ–ùöj}·?ÞýxøvŸ·gÛŸx\ÐÎâñ¸ÎˆËíŸÝgɵpç­¾¦:l,Óû';AqõCâIòÉ@Ëý¬|J{ÑŠ{ÑɬE[sH;Ûl«ý¤4Z Wæ’ 'Y‡x-EVHZƒ–Í«ÏY­†ëÖ®-ùÕ;NÜ4H‘…B™m{§Ž®Á—® ˆ9TŌĞ$/Dì +\0PEãéÑã}î×ßf=ã³þmÒCˆ@r ÐkúDót;›…ŠÈEäPÚëžXÏyqjˆÓŽ8ÝŽ½x«Ã¦QB_çª,¥žºž ‡ ¨&‡¤5Ì)}ØA¬Äc:Û³Y'€œŽOÝT3F-ǽ¸sóxÁŒk“/Á™›²Çöî¢j¢Zv3ÎXÐe´µph”1,#ñ\½¬ (£‰/ +:!ãp©;ihŸµýlµaÕ«vÍ–¡XNc«å|u'>Öï4ex#ΞC£[ÇÄ} GXß3A*ÑRwý©{R"À9+BZ^ÙóÊKç‹Ä:ºZ^•q%Š†®6¡G¨“/äj[*S º5NÜZþ ¤(…ò·;1>#¾ÒØꪴž¦´w&FOi®UnÄn®rvòÄݯø„¸õ´¾®»Zt9vµ‰R#CJ¡GÌØ.—Ó±¤ºÏe?îjO&G:MoH’KØ~®QEs»ul‘*,+/”Îì 2…y÷1ãn¯xÅ^')μùf,Ä ÂA‚\5ãkSš ¸ŽžqÃÛ³‡†y·\B %2zïØ+¢gÂ_(¢8X]—Ö9u›³YŽѳÑ1úÀÕñæºwÖ‰n × iˆeG,=ã5³Ñ¾68jb ëÄâ'WM@&/%~vÆê×BáÌ…rÎïÄ-Kõ·U¶1q÷\‘gS@£È‹§TEõŸ9íx9s[/òV…`G<^îºE1|¹sÔzÛûŒSKœöÄéÜŒŸ_Gs8ã½m[G³­“x[•Ï%^£ãnâá:VS<žñ<ªð Vˆ¾fÄMÕè……2POÇUs"ä2Q4¼©áM;ÞôΕ¶k¦f(œËB‡Î¶wêRÄ…Jdl'ãy¸ ›‰§uæ+hÀd£=âÂS'$@¥Ã‡¹%æ=1ï}¸‡ø ®®n4\Î TƒU© çîïñ N|¼ŽjK¬{b='Šž°ûBŠ IÃ4£U'>Ëû{G!@*ÇúF \2(ñq•˜¨; –°`úIM4lÃf¼E]Î ÍX,ÑJ{h=y’㬛Ø2Ô¯á•íÂä öÐݦób…œ¹Æ%º×Ðc—†Wv¼Ò5]‡œÆgG:Mfsa ÌKùCÒ¼Ðb·e‡zÇš4ÏŒKÄôËOC NޔĦPÿ¿uŒÚ:œ ¸ŽÎ憶g ýʇUòq[›È# ’YÐÖ¦v3myuÏ«·Sͧ§·ÿ&‹'»—ùvÖ´ùöÙClh(áqž&Þ 8bP!š*ÜM<\µXz’¼ÎŒYî" ž²¼Ë½X¾´Jo϶?ñ¸ Åãq5—Û?;áÈ%mƒA0uú\x©ý ÓþƒLG»Ò<½ŽXísÚÆŠºÍós+jŠ6ĺ#Öó¬V”kà +æ;¡m«Fê1q§ÝGÄWÚQU…ÜOàתèTqO@õ©"®-uÇ ˆç¬†ÕéÍt!—ªE"ö5¨Bâw7Ö–X÷Äz{a¬²IMO©c­ÄfiUÖ“§¹ &nxSÛv¼éƒ7,Z[õ.az¼k¸;=ÆwŠºôŠDó=;ÝájpàD¾†XdL 6ö”<šïY?;˜mkè½õwÖ;Ïh oÅ2ˆ·ëÊ{K, ±ìˆ¥ƒXP §<\¾­$¸!æ17Ä¡(Ö[Š‚òBMx…å:ðŒ-m¹înVS.N¹+Þz3®û‰, k5á-îÄå8<¦q6V…ìa÷™P¬Õ'ØF+âÒ~¹Z@ %`JÐŒÄëÍ­QÆã4Ž·=Ôsó.&þûeInCѽO¡ L€¬çs/íðfîaTË­fFŠÌ©Ìr¢WÝR)KO¨ÿ?žÞJ⹄ÎgìÐ0ÙgÆM³x2ãNÇÔÓ‘˜>NéxnórwÃð +ÅŸ©Šw›&?ÚüF›ÇM@q§Ì U´’©‚{b>óÇÏTE«ñ´oÕCÇHIæ­8cA~Œ·7¡+U±[£¤4ÞÝè;Þw.&)•²¦yÝÖõ¼s"ošXt§‹ÉâUÚÈØØâÄ#º}ÄŠb»ô(šäm§o·x‚Jiéæ}©b:<îèíj›)D—OKÐzª`W¥ît~µ½6¯G£kO¬GbkÛL ÊkÛ†:æÅêNÄ­ŠìÔ„šCCëxâб™Þ^è/$öðŠ†YæÍèg´gY3W+Õ[¶qg³ùé\O³¾èÄÁ˜æÜ‚]b?°öPÄFÉ›Bé¡´°T·\ÆxZÆã*1s(½¨.Ì8žñ[Ä—ZEœvŠ–žë©‚U"æl£˜4@²Ô*V´c¬e«CÉçÎŽ÷ˆ;Þ™£#Ý:Ch*yñ†G’Å«´S£Ø¦ ohÊPe"˜×!n â2Ž¹Y=L”ŸâWå'ˆµ%ªø|î·Þ¿¾èˆéqÇ–ÎX;b=ëÔÆÑ£§¦öµsÚë‘X?Á|錛ÇoaÝH­ÆÓ¾“qÛÉ+¬B-%)?ÝæMÏlžtÄr –bo Lc/S×Hê8ïÖÙ:3`¢ôä¸JÃý„¹#æ1ÿ˜p~ˆA3»[—nÆ!ª;¢åÛ'p»³]¨ +(6ÑÛ¸'æ#1Ÿ#ž›ñ+SÓÛ7ïB{´ù"wŸvWyñfÉ!PÙý®™Ì¥hÒ×0ŠÜYbnÜq6ã ]­5@‘:±9¸$¦v™ŒÏ8ƒÕå§îT‡÷;ë<Ž¤ZÓòC§ƒ™†3~·üÔfIJü=ªxséÔmT0Y+Xõñ¡´ñ~›×äþ´»pñ°sKì¸#ÖžXÄznÄ3핹pã»e|’÷U›Pmw÷÷KmÂÀµü²‰[m¢ÆÓþ«cÞÓ1 ´úÝgè•G‡!ÔñÒ-$a¬[ÙÄv­˜M¡6Þ)<,£¦Vü—z^:òRÇ{3­ F•ÀÛ5|OH‰wšøð5ó¥ÓóÍ]-^¥RNËœ ¯C¼EH!hZÛý]J3éÈÐfY¤Ò‘ÊT†¤ììšÞž§Yï7(†)ñ—¦yl¿oZ\ ãG·Ù6v‚R4ñ`Œälq·áŒ§Tü"4öª%¿‹î0³)Ü X8m+ö”xºe¼š¨‰ß]. +ŒÍ¤k€¡ÝÒͬ¦Ò]1+ £™É8×!öÊ”eÅb]’Mrâ’žVŽ´2¢E÷“óýöDÒwbëšÓFŠØ®¡Iq`ŸèÃoiØ pÃìz;«àC°–*Yóõs×E·W©æÊNª]up“üA¨€š%3^­ž=ÜL½$›Ö)bú+bîʽ!¹zæfga¨†ý¾H 5`¶Ìô^v!Ìôû£UjO¬Gbý´ÊK7®Ä;azÂ]²q§8?ߊ<:pšmëÍ7² JI7nE A3»»_I¬ Up§;c»VÉ TJ¼xŬc(6¡ŠÉ¾–ÍøJwc0¤qzLßÞ€¼†*jzÏ­HìÑÙ÷!ä˜qu¶E:±” +Ô$™ï=>ñ¾†…Ót™÷>1w×e>ÁMâÕÛ‰¯Lª-u¶‰­†§6± pÄ8Ù6W8â¸dJÏ+G^Í÷Òct?›pŽ§ÛØŠ'51cÅÚëX?æTQ=?ïܺíŒM +‘f›w–÷mÇ:Uá³Ùª‡$ö™-»‚bKêðeåç¬C¤´B8>7´§Õ#­~ ªðуgæûƒ[8šKznÜ‘oEÞªªiøC³¬G¬8ãɬ>&^gƯ¦UmE`&ˆåÃ}ˆÛ +¾Œø,ï A´h>7Ça¾SÑü"ê"îREœ.OÃãêâ3®÷ŸkÏ ‚R4ñ ·;«{:ßÓe-?7ÌÀ+Šå¯ô/*B(~²>ÚZt%î€Q@%Þãã?ÿøM ”ðóû¬à†ßÿ#Þ럿ÿoûg¼×ÇŸÿúïa…äóRŒ·¦Ã0¤ÔÏaļ‚‹þø‹}ãñe8~üÿÇF?ÿ}ü•±ß¿ûí±o?ýùßïïóý«Ç¯ø| ÅçÿcÔÜ>þ}L zŠÉpüØô¹ð¸ÿ ùøAòHx§>]“X?í5í +÷—1h5JH }Ö +LmL¼Lw}„’×1Ím-ÒîÛ´«o/ÄGÍÞF¿J¨5SÂĂÏFÞÅ{ÛãÖç´÷”*íˆõ@¬“iQIïöàŽ—:^:ðÒÇ(1¤8˜ÓX¿ÚÓê‘VG´G˜á}á-@­fÝaÅÛOÃÄ µ%§;n']b温Ú'fupÇ,™W$öê÷·Ë^ÇsªHûp3ÖvR…K\K5™q·yÓ^1Þ¼9¯H‰EÁ´lÔÙ¤•Ä?Õtª•ç-èJU0´êñÙ ·îÝÎfPÓ¥û¸à@:‹šÆ\!UáËN¹7Mx£Ûí÷ÊEC°âw*áâxC—±-HÏ+G^ÙBWÞ&‰? âsëý¶h;Uá­ŽO¶ +J–Ñ.9_'ô]ŽÏxÍkB{Ïaô^¡Ü˜kv|vŠ˜vµgŠèjæ´«yêÃ5ÊN»šöÄz$ÖñUæÖâÙv÷Æ]™sæ fÙ|KeAç41n)ës—÷ˆ­ô»•6LäâPMÚÝÄ&Fc‡“ŒóÓçÃKG,b™˜ñ~ÄR´øXÇ‹x–q…Xhé¾F7zÚYÔî‹VªrßM7„VÒ|ðYÜt¼ +(ÕöQ.;Å;•4.¾Ä;]ןɷ;;&‰?O›¿IöMíö¥ëU¬±ˆµ#ÎÏNÓr{í¹²D6ÜHÚÀÑ>ÄRj5÷YÜ¡ æ`s W¨¤w·ã}§ñ=e&ßÎ"&¯ÎŸ‘Ë +´ëwÁ +Lš…òÉÉ>7?9×ÏOô¹‘”VÇ÷Ût ?Óí‘x.3bAWJù´3$â:bÖ^p\!–™1¢U±LXp« ¤;Õ´¸Ôl”oï8Ú¥óe(•6RÄ^õ œ&,búeÇjÉÚï³íH¥#•© IÙ+qr ua1ÇOÃâÚE PKu»à¢=¬·PÈëoe l-~¦¦^o¼l:^“Ä3×Å”I¼ fÀÊu£†Ö +ÓN6aZl«¼±‚ŠotÍqkñtæKêØ4µÄ¯s·>A´#Ö±Î$H3(­î¤Š¸?ÉvR…A³’%ÈÙšùŒö,ë RjÂÃJ<=ÛÛ+ñv HŠB¹;;Þ÷Ž$…&~÷¶u´ïŸlŠ×qWû¥†¿¦†Æ `Ù¨½W@¢ˆ¥>òív _•jà†u4©ñ´{š_7Ýxže†ežm<–z°CsψŸÊj–™Úw^êyéÈK¯ Ï¥ìPMÆøM ÷+Ç1ˆ¹#ΖNŠ@åœx=EHA°’.ÝbŠ`/ð?öË ÉrÜ¢{Ÿâ_À0  ¸öæ^Úáïa¨ÊÕC9„O*$ý Æ^Mwuýê7ÙÉÌ„4Å8ŽØOz|ßHl‘ÕîÏó±ïŠµ¤ñT“žXöÄ2Ô¸ã½2…9!”,ãSîRÍÝšÈÀTÇSb:ÕŽôí|2éˆo/{X@¸›cZã1ñÜ”ð‰¤úÄ¿\1‡®8ë —¶Úwx±â¸Üš#7vÇûŠãR+sâš#îÔØŽÐTðñ½v#±4J=’®¡ñˆ9)hmq·'&7æÌž¸êcÕ2ÞËø˜3åñd›,èOL6ÌųñIKÛé²{3‰ r!·<œ5CJÙ±ð3#þb°54ÚqÖ®2ä46Ã:é +h±?~/í,ï@Ú)¸í¦Ð4´Ý®îÊ +(ôøîž‹^WãÆ€Tð“Ñ ±ìˆeÆ¿ˆZÆ»RzbÙËHã}übGŒ;b|Mį4°I† +û÷ç‚ÄU€Y½T[1+!g»bbF®õqïL7ÊíiO&Å;Ú £§~9áñž»óµÙ§[ýhÏ]œÀ6Ú9Õ@Ë’jµO×H{Íz.s ”ÁÛË3SDjfU0S¸Ä§/Žôl²eH)sœœà¤PÜ(^©4”AÈ‹‡¥¥–¡¦§;Ü©µó&}“D*¸@s§k¥@5! +v9Sýÿn¸ä††€¹šhsû÷@Âç]qçqmïpF ìLɘz`ÚÓ9àk¦à\€P¼ûí$ïñ£k'iß]BrrSbAÛ¤dñ¼$±I,IÇÄÓI|D¼7Å\»¦¨ ‰Ð98WÔ˜‹€°Ž/eb"`?ÇYÊ Ykÿ¼æZ¶?eçš»¸ãÅŽw¼ø;¢AÖ2ž7îž«3‚€Ju3øô8̇[38)”êH¼T<A£ôÑ qmS#¨¥yeq–÷ö´ºþé) s 0cd`÷,ꈧÛx¢]Ý홋we,¨1‰±•ñ†;§Z’WÊwäÄÙL{£m¨»““€Jz<Ôzç„+q¨…Æ¥€ ÿØÖÛ;Ô + ’7x–$®PE_Á½'¤#–±Lxx{u…ùéÒ¸)Ô8g Ä£™veß™h9AKîL;ëÞ¡®JN …¸ÆymœJ·1~Oχçó!Cõî¢ÛâálÁ¹ ‚ OˆeÖY(yã½·­ÝPü>^o¡1Håï#®¨Yãwâl÷ÝæˆüéÏBPY¾¿Lj_ýúúoö³þò×ßìÇþË~Öë_ûçN l_­}Áwbð-m¢$¿ÿ¦%ýcû­õY~ýç4ëöÿþ»ý_Ú¹ñóÕ¯}}÷÷/~ÎÏﶿâû½ß¿6‰¨¾þþ_ÓŠ2nÓµšŠ¼§ b;ÎMO?mZïÚ°"1àÖØQx½û‹ÄœŸ˜FÀë¤}­öðìàØwmí^á©íú¶ý[Ö‘ÀÒóÊžWÎ &ÕÔJ®ÄxsD³ã3 0çšqxe,ÃŒšÒà +w¸Üáò—Çuß›BaöÔ½v¦“]ØbV=+œEÃœ |e‹uÅж—ªâÞäÍ µ9Ývwà‚)T7¬„‹SÂßsîÌNï&£ëépe‡+¯¹Šh…#ÝA + ’w…B¶;‹7Ó\ µ 'Ît2ùîj‰Ëûd˜|nÏAán +Ù¾ÓQ÷Çv){±Y{ó|9+°Y!y×ÚzV jÛ\K `+ +ÕöpQüOg¯ 0J KÔ ÔJ¬Sàmð”‡O‡{mU[gÉk·_•A=,ía©‡}ü +7'ã u>‹;TwÖ<µ+yڿ㘱ÛÂÐbvÐ@q–ì;ÕóïvèP¹Cå*¿FQFšl;¤@Û!ÚØÙN!Px™ìåÔ@ÉÝ¿ëµiƒ†xg¹éI…¿>1PX:`ÙËL»5Ê‘VXŽÓìÛùçnO l7')šÙnÎ,^H,h‰ªÃr<ï³D°$ÌaAµB $p°PÛ&š*CmxFà¹^öÁЪ²°š…KþäÕyí. +wfP%hqZŽ$—¸PRÏÁë…š{rÇKxE9ÐêÕò.ö¸¸ÇÅ÷ö,êeQ’Š9ã´§ +Êî~¢-æúØ·Dªé8–\hU ˜âX‚*Z½Õ@Î6pËO+Üáb‡‹;\|"mËÞRyÔmܳòž•_ì6FôÊ-Û :ûÞtsï͈pï-ÖœŒvq"BIyxq^,ŒûŽÚ:s>›ƒ$»4΂T¡¡|ÒÒËXf’¬5PåúÁmv1z£]šœ4»ëw=s6Kd·u€±BÕr<×—Î ”œG×¥Ä$ðÌ}qu>$h½^ïÑ‘2¥ãE¹$pÍ@­<Ã÷N´0©ÍÆ8þå¤P˜½ ^KÝP°¤ ùá…ÖÁNÍ?L*¨ëÃV¸5ƲÅØpMJÏ+{^ñv™4ï·a±«5ÎüÝš¸•HE\ÁæÎñ˜¼ï‚ëç"·*r¶1éXø`ê€iL3 +[F$ï úe îy̯SonÆoÞ\³PÃ<ôð2!Á©€Vt¶Ù.ö¸¸ÇÅwÐoSÏ͵‚Z·á!t[O9÷±¤ÙÅÖ"±Môì-ô_¦¥ž—ö¼ÔóÚöV^JnŠáiŸæTA·?ëˆÓ¯-¹ŽuaÚŽdŠsaƾ–¾BqV'´v q–vàÜk\€H#ݘVmˆÇs,7=ÝÃ: 2é€e,¯‰ «Ån¶@7ÐfÝRÕ>íÞÃnëtŸ~kúÇQ˜LáìuÛzëš­‡Vžî·Ó¡öf=ÛgTZE|ö¼ØO¾‡1CIìÇY}¶'…Âüð=Ôá^“‚P‡ãl™8Û›¶ê¨»˜¨Vh¢%ÌC£Ö@Õ{hdï°?)É&%ò¯4H©Ä9.^CöêY⎄8ë^WY»0"C¶}Iâ<6Î +še¸Ì¨¦=0½>¹Ì¤Z:´H…a +kûäX§˜vÀôš) …†Ž‡ïS¸–XvÀ2ÌÖp)ÐÁ™´Ôcàg<,º³¸®¸öÞ½’ÓÓ%§ÃÎWv¸2Õ¶z—cup±ÇÅ=.vÚ>É&„w½N^º€“lßçˆz׻˲vÙ¥©„ÛqâÞ6$O„ÿ¾¢]A`‚4rÃì+›èß`¿9ÿ›ýjIrㆡûœBB‚®s!ˤ²ñý«‚–³²0Ô‡aF†DWîàbwpñ6ªXœ*”‡y>EûéžÓfôÌ=sÓÃf¤®{²]o¾\Àg”Ø+ï÷ñi¥{wrsˆ–“ÛZ!Vlq3{wõ‚ã/öxq;¼WókE‹ïëñKU¬v‹ss+–,jmëÝÞÕexèBÖ:ÎuZ·Ú+‘k [5t‚®‹I“˜™ŽÒ–`™1µbAG>Å+Š"CIšãˆ‚³=Éu‰ï€¥,{À2ÜÁ}«]æ +RóÕ¹|Zs_sèŠa=ù†šKšÉ7kòü쨞 =³@p²’–š7ŒN@{x`¸åŒ åæ•ß•/'H°¥H•½™™'Ñla¿P¿œ-(ŠŽ«ä[!¼÷†ç}1.Tí_$5$*ž›†ø¼Iª™Q#à*W â$´œ24ªQŠŽ0°–@ÖËI@%]È'[(EÛAÕÔ Þ0Åñö^õ¥ZM¿¼ÌÅmþ›Ô9¸Ç/zpG¦#ˆ©ssÁ*´VöÛ¡Å-îÑâíŽ^éðʯLÐË™ìI䶇Ãmò»uí$¬‡%¬nCC¨Š¡$\ §|uC;Ë‚-0ˆÙ[pG±r‡”wHyˆt³ßÒ.Ïâ… Õ¾ëÛ‚ˆ›@â¤?NºïÌMR››‚žt¿›õhi–n3;•ßjÇv5»§ö_*ê5ö£aq©,ØÌ!âp»!Fæ««Îñ”ý¾PC´5P• åH)ÇÙ\¸Ll é˱ŒïWÑLáyµŠ¤ä]ÞŠ“ÀŠ-â +ÒdœuÓCc¬Š¹¡áª"\›àTA =ŽoÇÆçåÝG¤6×'Oçüžùp*@˜¯ö†ƒîë&rË Ób¡Í{ÉV\óZÏb¾°U6fu[å‚Ivu9ÇŒ +­R$Ž­g/1.ðá·R#–GdÌÅóàSÐföEbԌε=è%t-×å—;ļCÌünÝ7‹:ü榇ëã9Ä>ÇöJ¼¾GüwÛ:¶tµ›‰X*°•µ8ˆ¹hÍãÅùÞ":“ãÖÀ¼Âãø(Þ¡G¼ÛÜ 9”'Ð̶F<Ž9e fïêÎÐðQ¬.Òp˨fkíˆCÄÜ#æ=b!î42©ß‡Ÿ;šíŒV5túÌåýJ‡XvˆeJ¿–mbgHXöˆåGslZöšÏ‚:æ, ªÇ‹uµ€>Ñì5LnWûdxÚ'žqÜ­i «Ë±Õë÷Æ™í'[HÔ¸Ê8=ÞCÜáÅ/îðâmœÎñ|˜ éÕUí¨€]ùF œ]ùž\,ß“.•a¼Íšïé«® +ˆ WÖ¿õXi•nƒ 8UÙžÔÜd;ÇÎi*îZðȨ2´”[ ½™ÍȤỂM¼È ­ m¢¯¯³ââé¸10««Š 3äiepni¢¡Ö'ß‹:„ª©¯Çó‰x»+¸^Ñ$Š½»z&ñ{¼¸Ç‹·×ÍòÔÆ^€Ð+ë Î +…ËX ˈ7žAp"Ð6'–µw«@Íè\Ü’…8ÇÛå)¡§ãÅ\4CI© +A¥‰‰´âjߥ@ˆ9Û“šÛ|Î9ºó¢N¡¸Iw”̮ۧíîÌ e¨cb—QÂ6=Ó¸£Ífò@oM¢Ö iOÎéþ;NŠ™ÉùÓ$ECÈYñÊ;û/çÚfcŠr%¿§n¸ma.Ƭn"žö†Ë×&VH©:ÞÐ5õIÄ3M}ÆÍ^\\e œµj +œ&盈ñ0ÇnÆIƒ„Øq,öšZ=W[qHfÆ#>Š÷§é“¡ZD¸Ü V‘Ýü‰xzº=Ïæv±ß‚IªÚ£Âh8bÿ±ï2¹>±bËePIã5·N67®n¿ 7Þéð¤ DÐÝG :[­¦ äñ8æl^ÌÞêXqB ¢žõµÁŽÕÔbõÊjþ«n6ÏОÙ#¸b7”O)–=¹Ò•X¹ýlaÁÙŒ¬LXït©‹aï‹RìØ2ÐÕXÏ4]DH]=¬W'I¤¶1âiŽ¯Š ¹øü®X~ pCOÃx±Ç‹{¼x¸ï™Å¬Vlq.ŽÔ^‰×+âLÄ +Y«—Ç VIj šæñäœF9–±ìˈã½EÌDò‹m[ÌÔò„©-ƒ˜”!r × +¨©Xj¶×÷òDÜÄ4Cãí9ícÏ¤Ý W…ZÚÿª¸²§´U6¯/¨ +N*éò”>ÜÚÜ‘D­AN×ûñ‰ˆ¥â±U¬#ãL Y¯\u;zçÐú‚´:¶ª%VÇ;Ôž„”%öd{[li †VÕ_szX³:<²¹5çªP©®ë.¸¶`j5Pß¡*P2;ÞÛ!æ1ïóEÌ è_ÞIi±CñòO)†x7…2$B·JîGÌ)ñÓ#^dÀT34NŽï¸sŒ¶sJ^‰Ø­›…CKGQ§§w­ç¥Ž—N¼Ô×íVԛ濈%& R]Þ0äÆrý¸ KG,'b™"n Úœ禗‰u¨ã¹àð£ÎzpæñeÄ=1Ÿ‰ùõÉî#)1§b:Σpžõ¶AÖMéÁUC:|x<Ûmz%545ˆ›xY Ïû0A-Ík?+Ôpò‡9Z¿ýT{†r”®–AKòhoÚTƒxÓxR.N¶us•žUά2šk—x““ýJÕo‰s†škXÆ‹ÆKMA²>i¹K‹£„²Ý9¡[ÿ*ì+jƒ„;<3$ò’m³¬8`mé¼ñþ`ÅžϬøºÃs—…K‹ Uô£—Å=bªÕˆŸÎ‹Ó¾ÍB¾ gª¡ˆ ˜õér¶ÔÓ"9R´Û¢ârqôOÁT +±×,w$¶Î|Ík>Kºð ³ÃȈG'Ü­X^©ßR[ 5pbІN‘ØòðĬ¹SCДôs17ÅëÒ2 ’«ˆ ç[ji‘r®‰)|¢øLÏx¼u3·œ¿u¤ TÛGŽ¹6ìrlÝÓår©*°~öâ¸I,¦ã2¡ãéJ<Öñ ñ›ôH R-ã„Þjó(±7ãÝe]°#©¨¢®³­Úºµ¸ivg¼ÊÙzâ ÿ4-¾âÑ0#‡‚dõLí*ïã´Õž!O ÔᙃïÃt”Ë‘ýÞšíåêþ¦ô´£¼?=Û•jP9ÌÌ)=[‹bìÛ”Òj © +× “3ãgªðܹás¢#4xX|¦‹åã>l›g^ìŸUÁ9}Ô‹ï•ž€5‚™<+^ÑÒ®²º¤´¤QŸ¼#„«2øy¬7q¼Ò#VS sQPINÎ`½]5\{``”P½½D³ Í ænqZðaÅ5©£ã=‰¤\0Ð5WJæñæÝ"^[,ÙTñ´Œ¯FÇ›lf­GÝÂpÆ…ؽ4ö Æ-îšB.¤CUHO,gb¹fØã‰_6ÑÄ^¥qÉœžñ˜xfï|bF†ÒP~#V´§ÿ$Îæ ¬öõþöwËñTðëûTmWïÿböþbŸû«}Øë×ý÷4 ûÈz|4BËzšÿ˜EKö€’üùãÏßfq|‘ÁÚÃïo°4<_ÿI¶BÿûwíG䯧¿¾üñ9?þuüˆ¯7ô“øúÚ&MõõïÓ\2`.‡Zȹ|_e±ÿ=âù÷ˆ¯ÏUÙj“¦Ší†Ê ™êøžã_°»×F›D‡´ûìuÊÀM¼ù.ÑïB§¯õðMg¾;VØxó•ZJœù’êñªëh‹ÚÊÅäwý!-g²0oyèfÛô*Î JJcÿ]–Sê}3ßÖŠ£†uÛÖóJÇ+'^ù“×ïí¨«Ã¶3«ÞÁlo%±"+?¬„•wWbk¢äxoç ÓÄÏß]öî†Þ¶m—m ¨8n’ût_DNGq®Ùó‡ü÷^Û5ÔÜñîhÅÙ ŒeõaåÒi¤òôù¶ÔÔÔ>ÉÒ0D…8Φ<Öð6'Iƒ$®„w„€ftšD×Ò&G™µÚ/‘œûhËLF»6 +y±™ ¨) ÕñÂMòÎÌw.,|E(dÎ-Ž"¨ +`©‘4œ³=ã/K¸;\<áâk”ÔÔ5µg2c®¡¹‚¥ìÖö  +˜»Á±c &;’ÛÒþ0bé‰åL,¯AÔuZ™œñ—Ž¨;¬XŠ7ã-‰µZÜEº?©!4åñµ1énߟu<³y¾Ž9™‹¿y;zE¼W˼êïV25§üxz,Ì»í ˜wªÇÿ‡ÄÓ[÷­Ž;Þ[-ÓJ|Íât¶-³Îzq)O‡óUv ¦‚Öì,\'†i‹xÚÔâg‡Iýé³n© ÛšÕ³ˆ«¼ßÒâeZWÉ͂É=ëöS§È¥=lÁ+5\‹=©ãÏ=1Ÿ‰ùu©ªÝ9T‹Ö0[GÚ ³»uª‚³•ŸVâuáÜ{…tÄr"–×Ø+H ”ýôØO‡»òÓéq•÷"8×ñÖM×á±OÌÔËw'iØìísó½U‡%Ñ„o£_jhG¨Œõ;íjcEÌ4â7ÉшWÃOøðT‡ÿIú5{&»}m7ÚZAj‰t€j¤Ê#J¡‡G|uÝÜñª ¢¹ã]tn\®k ÑN kgöÌûέ<×'©ª]ÙÄŽ~Æ©@Óö±¼˜Ëb¿¡5Hâqû "be·JÉôtÀ-r`R*É"Vv;âRrD—rÓþÎ&ÎÄ33~G¬VÒª£ŠÎ†±'Æ31¾.Ù°tÄr"–׌ gà&ÞÖ]ä}¼E„¢¥Ú€µºúÝÑ#¬W&×ÕV„òżðpµãB½¼D ÏÍpÇÛQÏR)nãÙï fÏdúX¡¼©ˆZÍÝÉIã- {FTøYEä¦güÛ;ÜŽ†*ã¼ÏÖe*i”o³þv¾+ÛN’2òà´ËÚº$hXÝo¤Ú¸«oÃ{\o©ÊÓîxï´j z¼9Ì-Ä(ÐX¿7ñ"ñ›„kÙ^o¦ÎlóÍž~7ß©$vçj]²OÌIé·9!¼³2;ÜÜâ°Ÿ™Å$Nˆ^ÿE¼„XWŸ>‰–Z¶'žn«`íÚlÚ>v»ÝM64ZÔ5õª %9³íâíì—A’7E÷>E]À0 ¸öt/íðF÷d—äfNšÌhf9ž…-u++õ…þøÿaÐ #õ6ÔÆq,” +b¥ï†u‚¬ú§+EÙðS/µz鬗m›§Ö‹íN2K—Ýfƒ¿)dÃ:œ®”ÃlXÑ¿û¡CUÈùîP»j‰p¼ ’ÊFã=ð!å|7™Mµ°@¦ªûÌø°°!7Ñ’wgu^ç‚]ŃE7¢XÅzR¬#>FM9¼;çø«]tÅÛ'þP‚‹Wù«z['­^9ë•GgëÎà>6ßÜ€ÅBG,˜E¡ §ÜšPsrbÉûÖ!r0ãÕ˜­xçþÖ-4_rÀ¬Ñ|Óå ßÎB,d¶õH’ϸhÈl“\Ñè¥F/ôÒ»Þ0#<‡û¼¶LsHò“ÃÂf^Ð\3T¦àJ¢«î¸aHk8[& g;ß»ŸS[$ï” äoÊ9aZc´»5Â|Ø«‘K‚„¡!,dGˆBtwYLµ0û§ÃSî±Öa$TÀÝû¬·ZXµè=Bǃýò«÷S}~Ÿ êqÕú÷¿ùË~ûý›¿÷»¿ìñý¿O«á“x{qRØŽAR~¢¦ã$å¤ï_ÿÄñôò}üø‚áqŽ>=þâÿ®ß}úüžö¯x~ Äó÷> .?ÿËv‰Ô%W(RmùÖçâ?•Z´«x™Ey³‡!Þ­¸MOmëI±¤§`ÍVÅ3²¾Ñúj}ã–Íö2S½l~¬vÙ¿ÎVÀ2ßl†«æ —­‚W)í³l‚ÙcϺ‹´ƒªÈ>ñ+È`öUÑ V9i•G߻ޒœ‚j{þ ¯hm¦ºaHïEáOæ¯-ŠOV!ÇnxW¬­b=+Öžâ³GêâÿÆ2§"Bë#Ú:œÌ…n4á¢þLÞ)Û+G1-Ú®Ê íà÷¡†Ó]Ï +ö?Ýhá$±þ„‡kã5µÏÄž¨}?ªôÃJý@äöVÓF±žëcdåÓÝŽ˜Êj¸–`é–äa­´Óõ¹ùTÑ;œ¯cØ.ç„…Ü“ýÞ¨·“ÚÄ­ó SÑ('.æÚý$\¡2õoešc?Å’íëP‚¹t’KÿÈíë"o¶ïeì —M’‚éN¥,9AJ¸I:Xö7¥úØy̬ì±l’*a¤v17ì×Å‚ù+ÑlLl ¿Ù­«ýe[§ØP!'éÙwÔwwfùRG|Î48b¡ø ÓaÎm1÷vCPí ^ÈI(ðÃsO¯ø¡É‚P±4Šå¤X†³C܇õ…L^É)ˆõ\!‰¡–] bC«øE´•‡­:¨ @°¶Šõ¬X{ŠÏ$1‚Á1Ip) †²ÓŒéW¬éc…‚ðÏŠŠ… sHls||™0#µ™ý=¼OÔ–¸ßuÃ[÷Rñ¤ù²Tüÿxoo®%˜ïŠñÀ.ýã{€Oå£âðîŠký b=)ÖFqèeÈ¢;Uœ;¢„1çEï5O¼}"¨ ³fÚžàF1Ÿó£ï É ü¨»9…gΘ‹€Vêãû°+ú0<¦8‚aÁã™~ŽxdíÆL¯]ߟڹ™9,‰¡ŒZyµÖ0UéF ¹—ѾŽÙG.Ï0ÎRqD“žFÃìîÑ’ZºjGË¢[cÖ²‚IíáÙgÔ6Z‡À!Tª ûKöÉž Eý™|;8ÌÄ_Ëþ΃Éyø+I€YòF8™0[xpNrŤìÝÑ~ÂÝK¾sCÂ@ˆûä»NHx¬éá}{ÉeX¹OáÎ"F–.†6óX£^-/ÿ~½%ÛÉÃÛÅ[®¥p~Rq;ã!\û`ÆD)ܺõ²ø¨ŽDzëÖMD÷*„ûóÞº¾éf‹ +¥ÔÛAmÞ!·!¾— +\ÒFÍ,XA1÷„èk©f/OÄK4ÿ[ŽeR«?vÝH"`÷{Êã“ìnì?ÚÊÇD©ß õ]ögv*èB`b™BÒñ&ŒLq5(^©½ª5¬:M³]§œ-9_æÀ¿+–³PÓÇ?3ÖV±žë—Îx+$–”A$R;ÍÚ¡ )R‹é#ð¹:ÙŽÒä‰/9.Qµ5slŠ‘M»=ãMcÈ™¿Îÿ®è¬€¹öoÏatè+1ÄAVÔŸ‰ÊbEt`3¨¸Å~Xñ"HaU¬Vl¾P‹ÿÛ$«£ŽéFŠ÷©cIÌbäœmCïÕÙZ˜e¸–P=(¦€ æõÅe˜L1¤%°mP-qäˆ%ûx«z3q@‹âwÅ…óxÞ w²?³‘`AÜ+ÒLA„û±NHXrGgÆ’{ç +^rÆE€h†×Q\&*E›÷S/µz鬗£åTïWÍTt›ù²ï5Õæk¥p xÉT«ò60,TÁÿëtŸS;•%ÌŠ'è2ôÃ¥&ÛhëÅŸÜ‹×TEºŠ‡ï¤WŠ›ôœñ3¡^Î8¡+Þ âSuøÁ(Ø–«:a³0†ÿ1„¶zõ¬W¯‚ÅtRLCà—fÚؾ…fÈ +˜ëí¤63! ˜·!aï 1ìçÙ2Á&î n£%I­Tà²Ó5'äìƒ9̉9¡6‹-vwîÏw™Nf•®q\åæûó²â Þ„“‚mFÂô‡—ÌáJ–)DµQ+(F®@ÿúꌭë +mëI±>\Qè朘˜jêŸ.÷Óå¿5‡%‰³°ôïáf~¥¸qõp3[Ø …ËFŽ8XM,ŒˆI1|µ6Â@;ž¦ÛˆLà‘ÎøÜýɆe'’`K`ÝGk*Þß…\h®žkìQn£“§Ÿûë—_Õ@ ŸßA|ûþ7×o¿ó×~÷w=¾ÿñ÷)à=2ÓÊ'äó0Äÿàmõx—?¨ï_ÔdÏa_"0>~|ÁðÈ»ç¯Ç¿RþüîÛÇÞž~þöç{~~uüÏ´£xþÞGÍåñçéGÉÀ–u)Ç h‹%eË]ÅŸ[—Iùy¬ +:Þ¬v*°dÈìN ¯Ý\Ù–$P|uÂ/ÕÎD,†¤¹§và–”Aª–=Ô:Bªxw6L­Ò É„7Ê_?*ÕÈU¬gÅú¥Š©@.„¯7;èâˆÕF±žëc`ëÐOd½ÛÇmªI£XNŠå1’jæoÒ»7z©ÑK'½ôèµ²Ó–¾Ú‰Ñ{˜UÀò@N,“lÇ™›“ôšc•VF‚%¢žÕz®*h’ˆ!&ùwÞ¶1ÔªAþ6D9ìÝÛ©‡2(ç/Íß¡+#ô/«Ï8EwFÓqƒŠG:n¬1b¤_ž+ÞVÂ¥[O°dg÷]BͼâŒv‚÷RÁ£ù.ïÇÒÕ‚åjŽ¨ %×È‹!× +œ0B´Õfk^lý3nmóøåCh¯âów¤âþÃ~$7šÛPxŸSèAõaŽeRÙÌý«BÙí ÿŠaò/‘.²{6ݲeÉÏÐÃÃ÷ÆŽr˜¿X‹Dà3ÿÖ×í¤úöL1ïZã„Á]q‚6zõ¢W#ÞÍ`aZƒg/*6Å“òA²y ØnÏغãEh‡œ,,Fû͘KDtRÍøëÎ-¿sOΣG|ŸgaÍ )(¼eL%<¼¥b0£¨mè +I©BP +°mdé ÕVŠ‰ø!1˜Â 74bÆ”ûÎ1Ÿ‡šæå1Ñè}‰á žC9ƾ\2žbiËU±ô7Á1ì‘ •²œ/'±)wcGS:0G°Ö(Ž‰å#>+&J¯‡ù »|^E:°pÅ…À¨„8±a²e‹¾¬­`½ +ÖﱤJ:0≊G¢í S˜²¥cÏ(¾ºsÜM¶H,eÀ¢Q߸«õÓ}›‰>u´,}·¼êÜ—ãåD„?oáAˆ"ÅÓ=<6ߘ-ë«9ì3‹†¯óÙº/"X8¯†á©.@–¢PÛR1ƒóòÂ1}jtÛÅŸíºÝN ],•Õ¤kÛŒ˜½¶$]Né6K„Ùvž)ÜÁ4ªu·õ®>tµnd-ýJ7 -‡ Î6ƒ% 2m ¬i£W/zõ1iU¨’G§ùC/µz骗˜ç¡e10 ·mCÅ‚IHb>/ œ°¯xZªQ£—.zéÑM53 ¤Píœ÷‹º¤õ*§å¨ÖzbÄÃ_€'0Ï!ùì·u¬˜ú¦Ø(Š+NH7818âœ3EÌï +˜——ºYÁæVBCì—k‚na=º«wù•ÃJ Ó]+tóll¶±Ž«ž9gŽx‚¦õ¢âå ä= žö­bÃj´_˜gŠZŠê;iŸxö8n…HCC¬˜ïXž…†P˲œg:‚Á=žñí·ž ªb¡èÊ5H9¨x=R + x‰®Ü–\*VRYS¹²b»uI‚Z½tÕK©Íôpmž)Ù÷åðkìSEÊJìã†TáÇ1Èá=7ŽAüœ³ hÁÕŠ½C·9T[_˹¯v.?S;³{>·®B|Ô=wtÄyŠ€ŸBÏÉ w0ß®H]¿XéŒeyFL½'5$I‹½m‡OáÝnÂBΠœ—ƒe;à±… ‡9(¦å•n¢â‚`~»³(,ý~4±Ñ ±Ä—®²q@Ä{*¦g¢ô‡´ŠåªX·øçµÛ!I qŸ&´U¬WÅúŠŸü“(bø]!HuÆßÉð¯\;. ØËAÉ&I+­u<Ü ¥¸'ÍAŠ_œáÕ!¹ã9>fg(Ùs§uŒêízxLíÏäá –$¸uk.‡6Šõ¢XGk/)ê¡;zØ2ˆ¤ÈÃ*T@ãèÞ}è¥V/]õÒ£³u3=\ÕfëóÚ,q^çp©Ïjÿj §Új®ËHÞçáA¯O5ÁšÃ’û½n–¨©–Lú„¹O¯C·.KŒº¸«vd¾_y˜ê³]îHð’’FÞíjHFÀD‘Úç{^Fœu™kG’3pîrÚ ‰v»E³-Qÿ"ïC=ÆPo\Øåö»olŠ©‘÷I42(%ÌàéùE~¨CJÜãnëM«oÜÓÃÎËów¦â’À•ï˜Ï®!®ÑŒ7£6Ãå1Q°×á!´/ µ1CÄ¡†5ÔbÅt[ñrF†b%Ÿƒ ž¿æ[­s‚}œØF±Pãc‚í<Àt~ +=¦Î x‰êÆ–Š³‚z‰²øîÎ}¦ö® 6ðo¸Ìóབ#‰qxÇDã +ð]Én F+]´Ò£ç†çl“Iß •Ï…¥Ÿ ûä¯JýɳʑSîoÜ>®ð©Äd¹cªhñГèý®'¾ ¶Xí~–T3˜¢v´&'^dˆTÂÁB”sÃ{nÜq—Cr²å©6ñr8CÉÑÖM!Ÿt;ÓbG”“R QY¾uƒóYôãuÆh'ÑAJÙ»,Á­b¾*æG%¦æ„ÔgµŸlÊ—ϸ0¨S8ãý|,™€ž-Ô€ +J£+|²ÖÇÿþÛß˳¬úû÷EÀ3¿}ÿ÷úfÿøí÷ú¾Ô7{üñÏÿüßçGïŸ_•“/ÓiÔ9U‰œôÏ/žÿ¾MãùññãVw.ýøÿùgV úø.8âûO¿?üxŸ¯ž¿âýí,Þ×qyü뢾ÔOšŸWJ!‰êþìâoÓþLïfWõé;Ío‰¿pº×ݦF1]Ócd·+$Œæ»iâ#†ÞÌl +XÏêAó­ÔR´åˆÚ1[‡n7=ñöŠŽ+ÆÚMœiTûîg}:ãý¨EAÁ)þÐK­^ºê¥Ggëfrìq©f ”XNR|Z² þÀ×c¶Ž‹A¦8'6$o¬]Á*_Yì7“¢ùüCÅÚ(Ö‹b™±;¤ß;ºíãÏ\ÑÜ”a[˜Å9Ç›w›¾¥óf¡~ºmÓ:$Õ:ÈÈ縂EëæÇì œs;Æñ‰á¦@Eú6ÖV±^koÆ¿6Vœw¤¹$pÑ Ž¦¾Ç +S¨Øž?gÅ~3–ÄÜOJ·”A³•Å3nôR£—.zéO½?#°æ„†õã®ÞOÕÒmµá|‹”Ã’ +–(‡oÞæõÛv”ZÌÙ0íb4z‡ð=¤$¼»#§ +hÒÓf¥ÙÄ‚tVšUª¬óí;bâB©rVÈÁZj×àþÅØæ"ךĹO<ÛÜ8vÃûvW#%` ­YºAYº±P W¡™R>ÚŸ.‰ÂàgL”,a°m¨Ø +Y_ñK1ñëV !/©—ûäÄa8\Ÿs<(ÔÜ]ORlŒ%Z¸-CMëõ8ˆ}ÌÀ“÷BmöaK Ä©m:_æðhLóð¼z˜#J†‚À厔‹A1ê÷£R !YØ6T,HÏËÎxέC·Û9a‘âœ!¹FŠ§o6jõ¢V‡<ì@œûÞ&‡…Ä1¬t[ñ玘y9*›ö/Ç63fP;)Ø +AÎ…Ï9‚% â ^ ´`0á5žxñ<[·ÅŽžx®Q\ì6Ü;{þLÖƒ»BɼÚÇ^jôÒE/ý©÷ ÄÌ»ç›Â\kvn0×Fvn¬$…9œX‰ <Ö^®ƒËú€˜ÙAJ½±OQpN~ÎÊ Yu…¬vŬH3‚”¤Àû8¢Fy8Þ YÍKýs8ŸÇ™â<ò©3v’官¨¸0¥>ýlã +A¬>Îáñø++&dEeâbõ­ÎñqŶÚ;º B¤d:ÈÊ ¸^ñLW T2^ šÞW°í¬žd•ˆ“GfØL­P Ib¿t`Ïu×RÀèvÓ¹o¯è¤ƒ4Šå¢Xép ­Õ&[Ì>Smœ +j ø™îø¸á²e>®ï$ß©wìÆý$±–2`ñ>§i«W¯zµçà©ôžJ%˱ðôùj£V/jud¾˜¡(/Ï´™ä®àœVÏÔL#Ðl‹»ÆÕÃ#”ö…‡+Lô9môh|6޻à Ã,C6íûKnf<° òÙ/ƒ$Gnˆî}Šº€i‚@bí#̼´Ã›¹Ä'KVË!Y!–‚˜ïÕtk$õ”ÈLôìaT +Ýe“®:_ ‚(ËÖÄÛ ÄÛ{††©de¾ ñp­ìÕJ½@GjI[°º—Zé9Y²`(¯V—nðUI¨ ¢t`ï° ú¦6’É'¦–’C–á©´ÀîÒ Ç«¥knÒáàÈj&'É+-bÍK£´ˆèás[7Òzô*.ú*±Œ†QÄ¡°:ßõ‚Ô £ ÃÕÓhÁñ†ì„Èʱ”&Ì7ŸEsŽ]Š¨†Æbó-¡\N#µW~Ñ.t¥ò¿·ûÃá>‹¸³ÐHœú·ÎŒ3 ¾]ÃS]-9Jñö`ž¨Š$.ù &Çz3FÆ”7årx¤\e³® +_ˆE,¥³çr$ùþÉ1¬Š»‰1''9) ²¢*0g‡˜-yEöŽ’¥aÅâì“—d€xØ+úÄ#ª8kB寈¡ËΞ(P¢“Úùñä -o8ò††÷öùš³ [Ç’ärŒª§ÇUÖnhŒ©A/˜è Éí1÷ÿí貨%~†".Æ…¦ŠåyQ³†éÒ啨< ] +¥¡ ÷£[^>òòÖ‰¶Ùí!F]º öv Ž”Þ¾d}H¡ÎX ‹/ òRŸ£è¸!œññ»÷§µLÆ*Ä°Wô‰GJÄÙm”œç¯ÌåÒHJvܣ⡨;Qq¬ÕG«í·hâÍ"aO‰Ê«½šÑ çìÄ«…xûï˜{WÃìس¢á%ó9æ2cèçóDâ7 ’CLwž W§«z0;ô^Íåq, j#ž1ÛÃ4¦u¾P ™ûmx™TÆä÷{Ä2þ€™ç~X&â(„êÕ£nñUÞ SÐ$<'/³ª g0Þ ºèQÑï4â«¡Fp’ªÝ/= Ÿž·F +.IÖÂxA@Éï¬S7]âÔ?1Ö©ÀB.CÔJûG›©ßRÑ2ôÎuækN“K´£ó†D o8ð†­ëÁ]¤Ð?:‡=¸?ß‘Ì8Û8[ŽV9s_ Ëè³w°¯ˆeˆÉƒ‹1©®¶âáYþWTS[¯øPD‡)©—\¾\,swñÆnÏŸ§\–+Î  ŽwN9LàrÊÚ)·`&_Ê÷*ñz6AÑ;Þ±úß`H‰ËÏýò+K© éñ8…Gì—Ç¿•÷úí÷oåm¿—÷Ú¾ÿñ÷¿zkH]ò”—·Ã ç0Ä×Ïžü">?†Q…µý󂢨>ðø·~Jòñùhy¶<žýøñù>ÏßêŸx¼ Åãç2¢rÒþyÈ(q”wÇÇ2?‚ó¯G¿Jùç«”ÃW)C_%ž•PÁ»ø^ÃebxIâžâ©ÖŒÚ{ì+⫼¯hVjXéÀJ?XURt1wgË-+Y¹7Ûgcyðö:÷>a½c±w÷Ö}«&ê·Z§ØQChy{wî´áÌßË•ù6ßýMÄÕQؘ¯o¨·!ÝzoHä“‹õI½¦–÷ìR¼ßJÅÈ]bl‰ûGÁ›Æ»“ÝÞ&'sÙæ­¸¦ºq¤öÞ¯ÙoÜýj°FL­y„˜óáhfãÄÚÝFÁš0Ÿµõ†xxÆ·ë,]C(â bîj˜[^>òrOÃÍÔ|¼ã'o‡ò¼Ã´!¥^~ò~r‰Ó[»8íx0YºŠŠÿ&ÎJÉ—•»‰Á 1ˆyI Sn–³ã$Š7LK‹«¼'Úõ¨vV}¸h¼:¬µ  ÏÆêf2md$((kÖkîØ$ð†Â3VGëûïð1Ôw´â3GCcŒ¼×3Uó4aU ç´“nÏY´LÖ¼¼¡mÃŒµÿÞžÆ3³-Ú6Š¦Ô hìBû½[b>óÖQCó9š/äø]µ_ãsV¯õkI-]C䓵î£ Õ|ûš0¶Äx$Æ­—ÆSóͱGcQ/N)bþ¤]?Á5D‘Œb"c*¨ þÑ&‰36Äøò&Û_¿üš‚CHÇ ]„°?þ­¼Ùo¿+ïû½¼Ùöý¿ +KN<àn™ÌÅ5ÚiÐs‹Åׂžü">?¦Q-qÛ?/—¡FÂãßú1ÉÇç£ûËög?~|¾Ïó·ú'/hgñø¹ÌÓöç¿’)z©®\,\;G–!ìWZŽ%E…ö†‹`ÄÝÕ­ÎÙyr3íÔü'!ô‰‡¿ŸŸØã·±üÌòkâ%’ƒœH›ñ×ÎQKLGbÚ:­ªé³ƒªxtæ×é”\ˆÐWÅ0q_cÄúåUì<¡æÁ“šëÌSB_ëTíÀŽ5+¾Ê{³ PÀ‘p²s•Pµˆ«±ñ’6\¦=‹9$#¡ÌÁeFM +†r —€•ˆ[ÓÊ;%VJeʃû6ÊÜó˜‡6]ŠÒs³e6®x/I_ÃËrõñjZø˾]Ã(ä8æþŒ¹%æ#1_›ñˆ¯•.7lP}x=Ÿ0–æ4LÑŸ°DlðÔ€¢Š JÖÍë­Š±!Æ1n#éá] ô‰&‰GÒ™b:Ó6¢ct¹ïlëèXØêð©{ãÍöé@ªÇçz•stžSß&–!¶hÅÙAÈ·ÛÄ{p>J¼àŒíUŠýýjIŽ$·¡{Ÿ¢.`Xûs/íðfîa¦4ža: +Ef$SAÚÞtKꬪ×OïSrdl Æ$Îù«x»hïM;Áúê¢OóÛà½S‰`V—¾~×™^«„ï´‘<¸öä;­Iܵ`ªÝwD9)E7Š9*àÞÅìŒÝ çÞ[º¬‡~\Ü4àT@3ëh +¿ Ö¡]ÞZR{\¹£˜jm'Š†ÆU-<®Ýú¯Ö¯Í{ í×+:¾0ÆnœɬÇî"IÁVŸ,ÜÒâ•3^yuÔÛ°>ˆøû7û_âe¨À‰¶j; +nüôèlðÞ©¿l +*u³5,hõS¼ X[Àz¬?{tX†m´7÷³‰ý6‘yöˆIŸe<"ŠO2–Ú*­ïoÄÙ>!&p¦À‰›þ3Ø'Fú6ˆõ„X_#Ù‘Á8EÍ}A Õ'3ö­bUÕgüé|žÚ(ˆJØãí"â¯WtìxhÕ}XI ´H¨ãùhˆáP\;f~|…N¼º” ×¢¹Ï²LÀ…CŽç8[£ìáÚf!Lj9,šëyñŽ>‘Á“¯ˆ˜KÊ©??ÖÙKUÇŽ)Ê»«*îò{¯È 9áP v¶â€¤}E¬“Y@œ¢t¾ªàwh¯b S#CI¥‡tP ûo!(œú i%ì·7ØSÕ®F/¦IÙ¢ž6Oí½õ´Ø öà÷h“­xqV a”M¾ 7ž~¾5ž8-Ô%ïã’ ЂÂ3âi'€šÃÒ¾bá©ãÓŸ¦w¢‚ÙÈÓ>fó +”M4¶6Œ¸?2FbãÓÈpàŒ½XµánÈÝluv*o$aÁRg‘?tgEPƒ˜NˆéÕW;ÖØ°¨H,X}6,ªÀ¢}ŸXqÙ)*Ä3|⢂ã"\ŸË¦ÆïÜj‹UÏXµÇíÌ‹;€:bàjMÎ #~Çïñˆ>¥FÍ]Üd5 9pè F)@ºdbl7=7œF 1ˆ—l–®à5Ÿiª˜äÁZ´þ4º)ˆîØ4ŠÇ\.ÝA¤Ú¯Z°…¡‘¡xtt« â88ÇÉ÷*»]5Ü›ûÄ›¤™£°h.mÙë ‹Øz·œî E¯óÂX°úB*=íR‹—Îx©ÇïÄX³Tß ›ó r}æé­9Ív+½^Âff—åkoéØ%·;8v«{3õ÷æpuè÷õ»ñ¶›*„r­g©Òâ•3^y ò»¡=Ô'(ê‘‹¹¯Ög6*½G\PéŸÚ:i‘ˆCÄ‹éMAÅ£3ûƒßÑC{ËocÉÂðÐ|’EKs=~wk;l ¦ôtÝ™‰Ø$.=E,²/+È•‡yugÞ~c3@ä <¬©¢HÏÔiË ±¼T±YjP}Æy'E0”ìy`GP·ÇScâ$*(§¾G,Ó#8Qñ­wF<Âñ‡æSŠQ¿«-tu +nü´O4x©ÁK'¼ôÞЃkWó(â™Ô¸yu•_Œªð¼*ÑÖ°žë àAõ¹Œýñ©-Z=£ÕÚ³EŒàý`jäÑ4BL—?_% X¤ÏñŠ`(š6šs‚ŠøÃsnª†{Ž8¾Ë]´÷j$Ýiiõ`”‡1WÃ*Ò+ïÓÆÑXÆ}*=[…òqpÈy§&ìT-BÃИsM¶ ƒ9‘†Áíhè¹ß'–ñ ¡Dêx’O4xïtøêðMnIj ÔTéØÿøÓŸÕ ¡}ÿ\R­wùëç¿ÔwúË_©oúk}§×¯ûçé‡À,‡ÔØq×- ‚ù›?ÞõoŽ?¿h8¾HÀéõÛ êû¤Å÷ßÇÿPêÅüöSðôýð×Wÿ~—ß¾9Þÿûé–…ï¯+7\^ÿ»Æ‚ùkæ/ +ÎZÚ_ œòúɳFå¬àß7ìC7Xç*â·€—<êªf•ôðœ$mÙ“CxÓÕ<m°‡À^…úAf_Cæ£n—I#.^ÝSð2PPÁÝN<Ïí¢$û¬ÝQ#ëÊaì‡rB¹Æ&y/(†Ù}>(j’{dc+ÖTGWÆÀÊèR#þÚY©uƒ1’Ã‚î ²y·7Lt‡¡®ú¡7p'ú19ÜJ·Â5†ÓÃ`'ÊkϧZÕ{€‡{o?ŽG‡»õ^Ëu …Ëb=IHVHdÝ„›c ‡vÎHbF÷ypÛõßÝv›×Wë>…ç`1W øÉpsJ¥ÓÓïý_®½ìXUàÝ$^£öîvc‚XJpdÔÞ›µa»a $ûà 7p‡fŇc«#èç6æ-ß5Ö Wìèl)c·2 ²;RÆ6fì½E£¹ ;8ë“Á¨¸ +÷a9Hªì¾¯¼ÃbD÷…`=¸´G 98¥nN,´'6»56$Ý'‰÷cx·‰)9Ig± ¢}¼ùfƒֲ˳ímSOu¶\M ­@Aúɦ>Vb0 ,Ýz¶Î¹?tþ>×4´Ýü!UÀàæè†~Þ$r͸PÃëf7àeÜbÌ®@©…òª?.b¢k¿CpC++ žƒôØátë·ß{[hCïÍRÀp㽃€zmawH€-·×µù¾èøE¨Ÿ¤ `©¼ßÓ˜=Ia¬è„RÐÙƒf¶"`I +šÊV&èPõ+{€%‡ê½]°£§6à»7­F°j¸*.{ÃsÝCìU ÏÖÇ™1,¹€cÚhQ ÕO ¯©ß "ò¾è<w&`’÷Ýቢ3”m!»µFu{ï4w ,ÀR¬ G¥l5¬Ù x7&†÷Ä{#³ËFfrm›iÉVO¬àÃ}lª‰1˜Yw­i XÏ€µøœk#âýPs¬~Šä(&ÖcXA²¬½ƒføéæphI߯¶%Þ*×*»žB9¬Ènô~Íìe#5箥í… $ÞÇθ8X¨?,x'9Hb`Äggæ\w0ÐÌ›Tßje’Ãî;ì Ø +,›@Ên§EðI·CpcÝR®¾KQÉYðÐ’í2L-`:¦k kXO€uðNÎÀV 8É6©¶•;lX!k 3ísl`3{Ïp#‡á‘ùNç‘9rnñÈðÂÑ ¢‹’ø‰¢#€V6 + ª–†ôtQ¿ìzpÈ…Òƒovˆ” dÏŸ—Ũ‚»Ç X>åWÿà¸8åì¢ ·Uh"hpŸå0ïÝ.ƒ #¹º‰íì_ì—M²¹ „÷>E_À0$°öæ^ÚáÍÜ?¬×#‰å(4YQä rìô~º«?A‰ÌÄ]1\ÁÞŒ +42D‘É®0–-AJ®ç®˜j•tA‚DNeøA*5©œIåÕ-Ù®±ºC5°ª0Üúšã§n¾Í!ÁÊœ–[EB'kO$Àeº Å|·é Û•t ’ ãr=ÝéQì,nêw˜÷>jeÄ f^P¬7]VÑ8¹FŒÀq‹$feHz­ÜaÇÏi¶]çÏ1”ßJÜÇy9EP–jzNNó]2ŒM FtÊä/ànC›¬ +7*”lãµ£ s‰»¸žûF†(29.Ù¯ A"'‹ïnZƒóIiØO²%'’%ÝÆv·;Ú3ñzäkÄI1rº!çfF,4]+O +ÍbÖj=ŬØï9ZžÄÍ /T¤DðzwÐqefö4¼Ø±1„Ð`] Ø$(¤È“s¢‚}Ö¢z–;ÅÅú®µO×%qÜë¼Ü«6D,Àr]Í—t1,¶‹™¾máž¹Ÿ0öj=þð)ÔTõzá*àT§3púNàãBž¥Ñmà+ýŽ¬ Çy™-Û6M’³3jJbKc%ÍžðHK ÀA¯]bNW$»É¥òÈyA ôxÉ6i ©·k3€Ÿ™G_GÃ}&\6Pʳ;ûHûE“n(°•wï´t$`d^"Óí _²46œ¥9ÝG°C rIã0x¬C0Xœ|dü;„BÊ»,\Î ckºRÃÊVZÓºpÛ•,¥çxÔ.'œ„ ¹‰m +{¦ßVØ©Â¥.½zÒ-Ft&û ¶[»³—ËtJ赆™.¦E²Fûd„PÔTÂ@S +XNÀòê0…h@‘=Ûý œjàtN÷¤Û³iŸ¤K’{k®h»²dÏÉn¯›S}õ¶9¨«a-ÅÌ™ðû?æNRTÿùî„SœNÀ©gÂdå¦$–Ñ°Ä ù- MRcËÇ ÿõ—¿fÕüþ¹D0”¯ŸÿVö·¿ÿVžû{yØë÷üû$7,ŸŒüžŠäÓ0Šßðpè…CúõÍñç×0Ž/_¼¡@à¡•÷ßÇ¿²|ÆŸ¨÷‹¿¾úñ”?¾9žÿ~u=‡÷×eÎœ_ÿü¯-o§/&)·×úðë#ã5ñ{Ãî˜QµÅ³V%ðîù}ÄÏŠ5%xÅ +À)B`uEa·G|íŸx{Ä®ŒCY<=:ÀÔßåu B9=Ú›é4Ý"ˆ!j±áÖlÞ=}åSÁ1´õû0ÿë÷™š?ã²q™â [. æEÝp ?œïVþ !Yžžã.¶R¸cÆ}Š[¹i0iÓ#:‰{<¢oÆ>12:Ä+θdHNn¿u=žæß` Jq6íЭÛíÜàT®EñÊûŠ]x·ä@H!Ê>ŠH@]âñóíâõô«\zš¥&­Ô´r¦•í¹§õð~èiJ©£½/´q qöÆ ô᣽çv{_$çrÀvÎ-skHDˆ–Ú1øáÖY‚¬ÜºŽz]bòÆ‘“¸í}=W, ªŽ"ªöÞyö´÷gè~3æl@b³]mh»ÌÀ±ÃÙ–™±„šÂNY‡‰ÈÓñͽ›ïlªþ…´ž†%%mÌ·—w²Ø,E†ÛÝýƒvcñ‡è¶÷Ÿ¼Ý=búu„ 1h›¸[¿mâ>E¸gØMÛÝç’Mo{°º9©£].“œKƒi§Æ2ÄË»Ñ×ñz9w8›Pòf¼XÎIˆ1;>\õáÎùöôág>!áx’×à—ô‰íº«U´¤‡¢¨—®ïHús,ç !™WÕ´á#œ•Ñ%þ9a®‰ùL̯o.@™sëÜèå½¢½Ëê.[yÅ¡¿}ì!˜[Õ$N4iÞ‡ø8çŠ {3¾ËÛôߧ¥GÀ‚q úC(ÄÊí*üL¯T¼râ•WÓ#¶+îlˆÐÛ¸ÕÙ²¥ßn5L'Þ®¢í|œžAÑk¿v®ÛÓ®3c¤ 3ˆ‘×ÒÛ9 ²Eçô—Éãæ+H€è¦ÜðLKRé<¾§­7_Öxü6íÕÒŒRkãii‚©Üäxp•rÝ-âŠËa{·E¨«ˆòî·êí»¹2z^±»SŒÓ¯¹Š—*^:ñÒ/Þ®–8´{Ä2fC°äjxH˜s2§<;5F©¡t4‰›t4  ¿qÓºx]ZoÑ-+Kh¶;Œ¯F[IÝal®t‚™»hc‚bd}@`~²-æ Rº¤âôæ0PÂ){÷ЊĖ «K|wå¦Ó2ˆQëºXÄÐöZ6-^FèBw¬AÚUÐÝPCHÙœœx»õ¹V‰0öÿÕqžf…²äö¡ÖݦX.‡šÑN‘–3ólûß&.!T^´E¬•!²´ý·3+ÿ=w9°O¬D£—m *B0Çؾ,RMœÎÄé;­0Eô48gv`c°’Ëh=b.ÅG¬wVÊ™µ§* æ¨ö¬ËH`XpŸ…c,PIû.üñ¤”Û«²ïÕ öÚ4ªjmÚ;-·´|¦åï£åä¹|ã– ñ† ±[W'¯—ÂdÌìö¤˜¹qFÙ6º9÷Ê6CPáà¼hhG=íSÚ™÷iäz÷|§vßü~UH¹hCœ +ÿ9ÿö?á篓¿ËÛ×øÃ~ÿã‡?÷§?ìñóÏNûQ!¿{|Ņiø)öœFM戔äã“ãï·idð ó×Ü"|ßÒ¯_“ýWûõÕWŸŸÓþˆçÚYþ:Ñ'ßn<¶Ûƒµš-þœ% ÍÕ.*ïí÷¶žPÕªFÄõ2qíΘb>óÈŒýNÔ”1PÄjîY ´¼yÑWú]åª5õ%¦îh_²úiuÐcT©DBXm´JPêÍ£š¢Þ«²›Ù{Æèß³ÔÛ³er‚ýÝÈÑl×ë¬T ¤%Û¼NÕêa,'Â…/$#·N L +øl_«¢ï#í!öoq ZÄz2æìOb e¼ ± õe,-±œ‰åš(FŒø QdóJ9Ð"&ZÅ‹%Ø£ŽUú•r¡{€d»;œ'Îø¸l‹bîôèÞ}F{uçB50Hâ0œ×*>{Uöí¬‘4Ž¸9Ö0­§ +Äý1M¹/í™U`¨;ëˆ!+ˆ•~ß&¾½=8h¡¼Qß!E¯”ùöd›9c†š,hÏ ¿2ã¦'ÜEœÅ3C#~çÅ–ϼøø:‹g*Âó8Úæ,"U ,e “e(¹†>± ±ûbÜ,Ý ðÈÒqÌ'`Þ1ówsR’ì½3nxGÂ9.lÉòíV<3îÜ'J-61ÊÛ Ž×Û„‰õëåp…ï×˱ +ÏUú®¶N½Ìþ$ÖÐ#Ö+@œŽWjÆÓ.iX^9ñÊÐ|‹ç\ŠÎÐqußÂÙnWÞ·#æL LQb|wˆÏˆÏŽ6Bü…£«ÒOå‰ü1Õ ¨©â¢CÜ®ˆ’¡J˜Ói_s³ã2*>à}:Ä‘o–R¿µOË·!=„jÀªõî|9ÃV¹Ÿ£‘1E3^QÃûµ/°i˜Ì³t<³KìtË­²TRy9Ú㕻ܜ2ZèÁw´Ê1µ+èû©1ìÁ·w4¨$w§òT0ÂÚ%VÅýÉÌÀÙdŸ.AUA%"ž—Ì-ñXÎ…Äê:¶¨bÉ.¡Þàk?˜—± +FR.‘¹]]»Np¼TÞs†l„ò’5Í2”\w²a-P%íT,…ÀÄv²ˆí¢ŽÌU‘Ã:¼¢*Ì$ +]mÁpfdHÝG7txlpñ„‹ž“ù5gØ—ð2‚à” õMZb9KøÌ#þ¢Ã»M¸\ò>ÞÐ&¼­Xñ:ƇkÔáŸï»6ã[KfI bAp]îj°î|ÇêD\‹ý•Xp#Ÿ¨ˆrèÅ—ŽÏ1uë +¤$·ùyªØÏ'81Ô*aÞý«Šá„¾[œ,k¤ãǵsôvZ,PR•î¡4È;r(IC,'b ¦JNjøêÎ}ƒGX\~þÅå—ϸüèÈ·‰“Aàgd}\!I$ß{ñ¢„K¼ëd†% ¦`ßDÿâDtqp©þ]=nPõûéñAœ+PušÇß¿ýOªÖç×Ù€ìùõþ°ßÿøáÏýé{üüóŸ“»¿Á/wGÿI§iðû4j:ôMI>>9þ~›ÆñAÊøøõŽìî{ˆûùïñ{r*ï_õK$ÿzùóã÷'½vüç;ÚiGûù#¹#†Ó=¤·O¾!½û•«À”‚µ¹&ÇÉ-"¬ÁS8Öb½ Ö.ŽŠÖ€ã#î¨lÑå­¨cMÈê.¡L j)aq_‘_ÞHRÙƒ9Öð¯ÑÜ]%¦‡³—Ë¥=@‡¥sÞÐÕ²'‡¶«Ú2®&Å “WwʺNÄ=Y×—±"´”Ù®6Ò'ØP²öÕukøÙÕ] |*â¯(€,“;ñqOv¼@œÔÚ%s à÷(–Z †qw{…>·âAÆv„³zÞ}_•x ­$!¬ýÙ‹µ´ËÎB „µýnÏ6…­ê¤ä „ÖqëúSã°ê,XÎPAprJŒÛTBõŽa«Ý¾7{QÍ°æ€Þ,¦„¦O¸õ· +˜uHx2I¤‘Œ¿àÒ.]áÒãu´ ]o ¬`€vŽ„ûègævW¯–ý©%,E ‰êÙŠ6aÐ0Œæõe­`+êxÃgÀIÊ. Ž½þpptŸ-äžÛ3´›èkñ6H”#E¬uÕËùõR c|pë¹°˜äøèêMGŸ.Ÿç âüèÉf©¸ǵ¸M`8:ֲ᭕¨^®æiÉÅÀQ;í(ZK1lWJ=cÕ+V}|g{ØÏ̪'\¥¨R.¦ÝÃz­RëÒzÙmh·+Ø¢+C ¤ÉÕa¬/$H(·Ã´;°KnkŠ>9ÉBG[OR\¹†“sAŽÉ —ºÉ‚“¢Ç¿0ýêòË l2['¼tÂK¼Ôæ׊VÞˆß$þI¡«-–ÈŠBaG[)‘ú焽÷‡/t·ÉghÑ­òn›´ðÒ”bír²¡ýÌóÍö¹6± +L)àø³éßIäÓšË ±\˱rñ§ùˆfƤ'Ä^“ÉüõøÏßþîu9~_Lñãû?ù‡ýãŸ?ùçþìöøù_ÿý¿ÖšÙ>ÝR]Ùð­ûÉFMÇYJÊ?þrüþÁÆñeýñË; ›üüóøºw|}×_^yùç×_Ÿôõ·ãù|Ǚϯ%‡ÿ¾ä¿¦FȪ–W‡m\½³q«;¾‰4?¹qí¿ñÇ«üÿÂÛÎM+ìÖ—¢O.å¹ßdÖÀ,Íf¶áž¿EüÊ‹üLËG{}‚øäEˆ{¼è·à ±ö ÞïÞ¶C¬nê%}´€‰:¾"îñˆˆ=˜’ð–v/Æ@+ÝÒ.ŠÀ&Nüöq‡ ~[Y¾ÿ¨,¯Bî˜Ýíèø]Õû–ž­áˆ½jAR-{„³b”|«má·º~+Ô\"~¿ðÒ/]ñÒã¥Æ^›'šqCoçhŠ4”ð]‚Ÿ‚¥Û`_ÜFfÆêO1\ë‰aǃËPÚ×xþÁN- /rqòKÄÖ®hùŒ8_疆ǖ>xÁÙWwVEßԈǑÕ:ÛŠ>Qv*jž§Þž)æ2û,2iÕÊw<í®v_4ˆšR ÜϽƒõ䡺˜•kV('â>wµ»ß,r ìMxÙ)VÀ˜C~g¸ï»Þ ñfþ‹Ša§\°A(ûÒpÉ-éæu¸‰XψõŠX[ˆ±ÚMÄï:€ÖÄËp,UADÚW׸­ã>Ÿˆ½˜€¹´›p·*ž!º6R£p|êÏo@ŠÅ"Ä¿ª˜Îx銗¯ÛåH —©ðt/ˆx? “¿²FxÇWÄ=íbäÃEp£„F*L7ÝmŸ†C®ªa[ÃÑãj±"¤’/Q‹ø]1­¦p%PÄ]õ†Ü"d¶Ù|Ó^µ÷ÊÒâu‘|Ó”AØ¢-w7+¼va S‚@“Ô=x=Ú:µïÓì{Ü*˜íraÇ®ðð4›n{×s¯Ä­”évÁ©Ég›Žxàn+UCÏ]°ó YÛ×ÝæsìK3…»mAŽ5áñk-Í^†›hßlÞÇ܇ÃÎ;ÈÕFú„7d¡O Iäq›â@ë+hvÆÜlÌй…EcϺ>K‹KZª8—b¬vÛÑ,¼ßÊ4pS <âÓ ïˆâä¸!â|Bœ/ˆs§( +RØ~ôaÊÀ©íçÄq§ÇY ÖXÅUôyqÈ1£· æzªŠy—M§È)¢wH•ij깑ê6#éÞÃnÁáU H8B|—á§hÇ•Ë c®('ÛGdzI„x„"îÆŦBˆùSÿµ‘’Sèß5Ñ·6bØ.5ììWKr,¹ Üûº€a`í#̼´Ã›¹„Q¯çyªmAUM*ˆ˜Y½ªK©T"? phªãý‡£AkºZ¯âM3.ø5ËøÒzæeÜqqÊÚ.ÐÞm+yEç–^Ú†m)Ê:¥i¼!â(ìñ]25,ñß{.UEÆ£¥ÃZ—ë w[Ë«ƒ!öKÄrF,ψå +ñ©ßÔñ£ŠxX •š ð×^q›ãϼb&ÇÒ;HkcóˆÍDüª .‚î­¡QîÜ +•ˆ†0Æøèã|ê‰ÄU¾€X­Ô¡ h³D¾'ŽožÚŽïuˆœc|­Ã±°ñêÕyÂK'¼ô„—>® ¡#UJclǯô*,Þ0´gû½ÓϾ°ßÙ¥%®¶lüøl{`hÊuä{X0yÆñžˆXðzmƒX˜ «¥ªØ04LÁzO«Ä +Žï ϯ‚Ù¹¥:Þc ÄÍ ]žôx¦éêp~ïQ§*׊g´ãí¸RÄÌmÄf@‰O¬É»qB<žv‡q¼êJ·¯î3EL-@-8Ö4ï~â¥3^zÆK_Öµ“Nn_\ªaTPmµGЋüæˆÙZÏÒELEl ÓJü*ÃŽv«_¦ÜÆsÚR5¼ŒuyÆ :t׬GÌàvâµ± µ´õLâwV¾u긒Ûiº-ç NàhiÓÙ¯MIAÖħîpñîð^cgeèH«ÛäTŽ¨¤:~UŸ Ù&¥0#+¤a20ö,‰G,gÄòŒX®7·—9¶/ÃF•ET§éH—`½]o·´J0»Î¸iJ ^zÂK×ü¢+'JØ3-Pûj~'*‚MÑÄ'Žo"¾Ãñ­›Ë×ÛÍ@±-ößçT¾sw_¤rk —ëøe'þ¢ —kïCÁ¦é±¡Wx4Òôò6äØz×kŽowµëË{³SèXnlº?Ûå×*N;Áè•öFL ¿Ž»·Ï3÷B6áŽ7ŽnQH·°‰<<ö+Aµl‚½GpàuÔm1”ØP•L­àì¨æjÒ;H%I4ðÖG¡>¬¢-=»ÛeØš´Õϲ53š™Ä´›BLr­†-Nú³Z=ØC ñª¥ü|mw 8¿6V¾¾¶mü=Ög—ôâö 96‰u4Ò"¼_jöYu_S}îqœ'³ '—·ñ8!OˆÇŽEÎeªxL××Ûr7À»Z:FI½âU§Xìl‚‘w#»ºyüάï?OKï—Ђ Ô´ÕA\¯SÇ“Ù ~uo6 NŒ)ÚY ~¦†©uKÿWãŒx<#ßØÙ„¾ xþìxgÒ !X4Ì ùÒ+=c¥/å;;â¢Ägh·44qO'džˆÍÁY¯ í®z/´+'¬ò„U>®´[[¡°_û>o¸…7åWAÄ*ñÛtôGæ~BÜ ;ã_ù«Úãÿ…¡[ûñÿ¿ÄËþö÷_⽿ÆË>~ýÇ¿ÿ'èýøÝŧŸÙŸløñÞÈØñû?¼=È8þÕ€}üöÖ{ xüyü˜ñM~þo<î¿=þøûo/úùã[<>pæâñ÷àˆõãŸçßeüÈm8?ò”¹˜3ñ k?rô3Ä3|hê8`à‡k®äwRêßñÇTünï)!÷! 雯ÖîD5PT*¢!ã9ú)Ú }>*6I»ï&¥•-B_1;¶éíÃ8ÄfüJc0lV#(ØT83³Ý¸å®U.Í ¨·å%g¢Œ`4K½a¿ZÆ: ³gŠØ± ø RÕ7ž9^UFÇGbÐдBlVxAµÉ÷¡½¥‡íXÊÕÚñd!W;Ñ¥§ŠØ°£…*$UÅ˽çZ¥‚æÁ±!ÅD Ü黊å=´ùÑ…©¡­6µ©ÁU˜Ò™±¡"Ø\u9ǃ=ž´">@¢R¯Q#Ø:˜ÒêÒ3S¿c€v±Bˆc b©*Ÿö–r¼_0©Ñ¨”®T³.ñ/ñÒ3^ú¸pµ™h ‹€$–ÜfÁê@Ê^Iºah½Zs!]`™¡MWÄ›hÉ{ýšÂ輺ðLõ‡˜ÚV‡Å«xÓk`=õÞÍ +¥P'(E»á R1]îf3õ[ÉÍýr+¥wPIy³¶sø/µQÉ;A?>^¦?T+ë1†Ä¨ÎÅkìåøe‹Æƒ¶ºñLÕp¥‹«èhñL”ˆ­²ÞÆ`7´´o&_V†¡šÚ~ô +Ƨ½e_ŽŒ?-øÿ9n1V#~o†–âk]*Yp(‚ )‚­ ¯?6â(—¢cµŸð¾Ì*€.•’£! ¢*ÉloÊõ»ßÔnñU¯G vÕåóa-tu‚qu^ɇVÌ}9ÅEÃ0¯â½Ä=´¹ âÓ‘ulBÐãI£"ü6‚páBÁÏ0­¶áI1ÇΠ=¹ÍÔÀÊ0T3ínéfÁ¯¶ÕûóU¼i…ˆkÃÔ{7ä÷(îhi žd¿ÓèUÓN¹½Bñ&© öë; \s \CcóxS>4ö£XƒaÚÒ¦§Ü»#£q¥£c –¼ï×ÒŽ•A£¯NºÞwZZ½•Á.àÞ—®Œ?h‹µ2 ŒŸX錕ž±Ò÷Q+m„5¤f6Ýzßœ›µêºGŸ•r8’ ÑWçÄ$×=ö³ ¶H9i«KÚL›Ð@œ;ñ~šà1@»,§x®(̬È22h:2~§7‰÷ä+4@0õ´Í2C0>í¹=LjÁ“·ãUe M°Sýöèí*«wÑÔ–VhÈIëQÒ´|<ƨSy¤# ã ñfÌCÀÜÿÃ~µ$9nÃÐ}Ná !@€Ö9Â!ˤ²™ûWjwOä”aR%ÊE&Yµí–ägðá}ÊÀ¬²¦…z†$*y•¼“¼uVË )°2%Y‡¬9IĈážÜ‡6–`‚"ñÆÍÇÉ…>U­$ãb4@ÆíŸ~®ž•)ß?– +Ùèãóoþ¬_~ýæýîϺ}ÿíÏÄ©\”üÑ®óæ·ì‡!_d³´ýNåï7†÷Ylï<’!Ý>o@PÀéóïö+%å¯Oýrý¼üþúóA_o¶¯¸ß°Åýµˆëí÷‡v[ý'o9À¶Ÿ[À£ÙÁ“ü¸£q’²;Iy8IéÙ3O¯[Þ~†xÔnï~Gg`¹Ïê9÷œrÂ9B<á¶$o¸ KsÆe¸<".oó§¬PªÕ‹ç{tºZ,o"6 Wú“aÛ³š³RÜIÝš"}¸M–¶]Í4Ë»ÈpÎöÝ‚(µ…lšêÅJÀz­UŒ^ÁJÙ\ŀͯË„‡qó'gBH3-Ä`cHN‹÷1┹eª5dÄ„ó-^e¸t¦‘6]ŠÂë!ÎPr”z®é=Bw 6²•ön½‡HQT»dÄ}fŽ¸`•0®Í§m’ü¿oðY¼´$^)!dŠÐ|ˆ·Z +ñ¬ ˜¹½w²G,ˆå˜´õ ~áZA¯Š‘¤XnÄÞ•*—¶CwÏør‡^Ï>r†œ$ˆm÷³9‚xwþ!Ëqy@\zxlëÕr|t¡ÝU *¡ÝýàpÙ£-hË­ÁáÑ–¨´SæD:Á$]mwƒÁ¦€šËB‘>Tm™ùV¨EƒùΨh’ +áB>'ù#K´Ñ­jm bz@L]ª†@ŒÏͨj[QJ™#ŸûÂK{¼ôˆ—vx/׈ +–9RµÉÐrõ‚dü˜Ód‡XKb#P$ijD7Ÿç=Ì_ ù«à8£pSƒÿkíH¸³M”,¨„1lëƱBA)…¬˜/«q­€IÛé}šºõ Î+6©Ô–Šaq¸'ú„ÎTbãÀÃn [ÏÒ½. KB(·ŽH‰gË>KÑ—!y”X£{ +*(KØ2æKilš#uÒú¨kƒp¹ZF)oB`µhÑŽêîåªk`ئñ É©T^EvW26±HÈîgr„ »sçÛÕã™!'?ÑâÎùö –by@,]ˆ“—‹zyt,Y0ãñWvhËÚÒƒÖõ×^ª½2[Ȇù¢ÃZlð€µh0ßqú@‡ÇŒ0À*‹8ÆZhYˆ1 ê?Ðvo[;íôm[˜v¼Z$ Ýâèt³=•{QÀ[º0i—¿H9¨¹­¹Ý™÷ê)I bq÷–]ž{—Û4®Jõ¶ s+Ztf¼^½° D¼’TdÌÜ6ä²G\—Û¡Åë±ç2éÕ4>:àp¼8«¼+ýž'CØ-ŽR÷)ÖMÈA’Ô¸®‘ß[\èu¸ YËZ¶F×Þ“-h?Û®„öÂÛª–Pxg47‚únÄÒÐ3â¾¢F@Ñ(°O¹p„0X¸a4ÞáíJ!ZÑjï\º³ÒÀPÄ»¥ëfD;;ôLøEv@Ê„—¼Ã3Ö¦Íõ [ÌŠÅâšqÅÖËÀ’œâ1b$#6ãÈ•V2ŽŠ)æ<#bI +˜°=ãSc¿s= # ?Þ:QóbnØÎP‘BÏ Ãì½zº¬4àQëv8F„#þðÕ€%äí¢‰{»Ü$"#cC$z'Üß®Èó‚ œÛ™r*wsœzáh‡îšAòÐÞl~ÑÓ2ÎæÉ +T¥½lÝé¡){ñ*S.Ga„T=]‹x‡÷\@s +'‹n2´[à!«—³a »yœÄÌíùžŠë ×3á çŒ`ŠC嘭µ‚P`Ç;îÜ£Â]¦ü"gÈ)’ˆ)[cŠ|ã /íñÒ#^º5|y¤T‰Mc¾ÖÉš@©F½sB›c%P ƒÄ„€Í¯Ì¥ö ½ƒKHã!KG‡ç‡a\i! +KÞ(œ/G<0M‡ÚJˆ}Æ©ÔUŒc¹´&¨ ,µiu²G,ˆåÖ°:ô‚p´Ðiˆxµ ÏU¡¼ºÑ @þ_Y'þHF /ïÜ»>Ç{Wý¿æŸùf¼^¯ò§Ë3æA-ŽÓÚjùrÁ4Á¦ÜJ½xlVyÀ*·6ÈÖHƒG ˜Ý%'`䈻ÍUr…D¥Å€^Õm íšjÄ50Ô¶Þv;Äåz‹…K˜Æëí™ù +%°dQf¸ne‡µ<`-·÷­ž!5ÐÚû™™íîÜCMèCÏ!S¾<õtDà$y®ÉªàB¶’û:P’ªëdÞµ¤$ç¯Z‹¿'¼m¤[lŠ–%tâù›hŽy§Á +q½³ðlv!#Fo›»F†yÜQ>„l(À\[³ ó®·i¬©Ôvö=‰x¤HâñdÙÁ‘B®v¹’Ë¿‚Û5íøÛ)e=€û("û“Òåñw$…ªF3ž±C¡ˆÆ?–Nöxå¯Üº%øLÙäêò õr 9ÛIߘ|ÏŒw#aYªY$°d‘< ÷‹“êë~Q-_îdz:(&Q:»„g CÁ#Om"îžñ¥‚f(ÚÛ„çí­JÌáù¯gÈ›Ía·nBÄËñxksµh; +wÎ8ŠÂ{¥èsX+2qÈã g\²S£ÉãÞhù”Ç»Éw"¾Ÿî¿C+ +ïZ¯?#­ŽüI* -œj{ÆÝˆÛ ××â…“”A„ƒ¸6L†â ãpRpŒQA:Êà¦aœ ï Áň£\¸œ â¿åbyë Â~Ñ:‚– 4§»W©ºCŒ +©úË?~ú¹Òýca ÄÏ¿ù³~ùõ›?ö»?ëöý·?ÿ±ÇE?´RA¹Ö‡aÈ×0,©#äTþ~ãñàcÛ;ç+ÒíóEÝþñwû•þ%_Ÿúmøyùýõ烾Þl_q¿a?Šûk‘ Îï{ô¸™è¾ú‘b¤óÝ1åù®èaêix¹–çx'²ü­,flv"UàÊÁd§,PðÃ?ŸžOƒ¶Þ¥•ð5wi—áÒ›¸‹âBfëPAÐEA$Z¶ATØÁ¥\z€KÍéú`²æ·=Õ\,»Ü~ÄêEüaË©‰£éª×s×[l"|wϹZ–H†iî¸"°Ô² ¹£‰`GÄHÞzìEÍM“˜fѶÒR­M…n){F…±-«xg1~ +ø~Û‘ ï …–`y,ôÂõ}ËvʆՀ¬‰µì±–G¬åzо`ƒwSát±O Ý7ƒš¼¥®À†­®UJÏËÄn×:#oÏ®¼̬t8:Û§`ÛZèÂF5Š¼b2*¸ ×jš‡1-é¹?ÌÆ$ù•”/V„¡éÑ5W,àíl ˜1¢Ã¸ö†@f +¤i¸»X!ƒœ›Â00ÛœKº’ýnÑ…º„UHÂÏãÂ0ÀGuì…Š¡DÂ0u‚‰-C]6ñ’–‚´0[´É ¹ vžÒ£Ã=›¯ôHv:TŒ&L‡'|ý¾­V|HSY)õ2(ÖEäדCeº8¢…ªƒƒMø>°çjeöokb¨öZÊ$ÞÙ¨`æÎÖ §ºšDûqÇs6`¿Ø/ƒäHvˆî}Š¾€a@`í#ü#xi‡7ÿþfI3úU&+šTÞÌh¤®Š&‘ù jÛ±¤ZÁŸ¿æ3œF9)uYCG¬GìXo6yݽþmºáMèÝ)x¹8¤Röq )º(~ª•³Z¹ª•×N•¹’”óìÁ$±º$% +±¬Û'8tSEÇuÇÔÚЫÁ@ÞD†uj ðxUCp÷€Û‚{ñB0Õl jb9(Ë‹EÓ½eó©¬N—ÉKKp÷tgÆ/[)ØdÈuz-çÚk¾+·1Ù·NµªÏœ&Û(±É žjÑ]ù5×îÌÝ‚ˆÀã¤Û+#CNàÑ¡6Þm`ËþN‚»µ¶`9 –‹`é,T/Kì°"EnUn@–"û)•ÎRé*•e™ ;å.V¸ñØj1VOJËـ½kås"ìÍ3rý©D<Æ·CϞݘ½Ö0I³†ß³ÄÝN‹Ä‡TÊä™»œA3E—Ä—:!ç².œbZmBQ¼SÁÂZ—-OœQ­–0ûl1âDÙˆfeƒä‘^XpÉŽ³àX1ÅêŽA.öN–³`¹ +–Ö€Ñí¦à'Gd@ËÑ® :$†N¸›kpù §H=‰Õ‹Xí‹P8ŠÝ»³]h5 +¥ç“=ñMg8ô ï»á  ¤Qš}¥C÷²µ‘·oÙBä­:Ùxrœä¾ÓÂ[y—Í ©F“]°Ø¶+ +Ò:á,ÛðÜ}ß\¸ÙjËØA*󶲷s¾Qöž³¡¯Ùât°œä],Ê„ 0…é°ÞAqL—1H‡Ï½#ø”¡`9 –‹`é|¤ƒŸíßd¦5ÎRnZbv zºµõêY¯^õêwêe¯pÆ!œ :,îpØõ +Òð +#ñ¡~&ù&$Y²á°ât4ã‚ßuc¾Ë:õMH%YÆŠ¾Á®ÝUûÿP¸¶7.¶w&;Rlòú¦ô|ÇNÄЉè=Äðnä*P¶üm‘ûŽw%¤ +d­öíÆ…ççåÀPHuÙ,\¶A¸04vÈ›nÈc=ü‚Ǭ:BÃèkÀûö .©D=±`ü²!x aE½ÎÕ/<9Ð.G&ŸóE0Ÿ‡¡¶U¿‘=O`t»9Ý'ÓÕ“`½ÖŽéÁ…› ¼L@H¦:–|‹Qz1 úâ„;Ývh㎜ËE°ôL7 hf{=ÝÞlx&ö®Ôpј<ÊÝAäp׿M©9kynƒ“o;׬Ƿ}1 6P3Ù"$gHÉ¿gÉzø1¾'ˆt²o‰eËÍtÑCÁMzÌ °†X3£Çú ñ÷9#¼>³Zµ¼[u‚RÐ BïñNœÞ©÷óˆ¬Ë&;%™£}çÍÓ¹1ŽíFå˜!{iÐÍ;Àp™nŸBhÈ ”%‡aþ= îëŠP0 +¤œ©•|ÌWÁüh$ÄÐ…3¤´O¹m7aIÐr4áA×åÐ #Íe |r(L‘Æ‹íšm¸ltÅI«žµêU«¶´ž¤s´Ÿ-õ{àCM3ŸíÜÁ¸c9᫶êw&ŸLæ›kêÊd+ nVŠP}†úØ,ìµL  '£Î0;HÅt>Ý%£L¼¤çE¼b:HR`¡Ù 7î¶8Ê‚Ñ¢…³Û¶¦à¾ ÇÇA æû¸‰éO¤^I§Ç½1éePÌM4[#%°käܯÙvsäô‹¢N—Òän ¾‚n©ß•;=D<赟bé,–®b©%v$¡ä»ÕD}SÆÉ9Ð’3¤äÁÑ6»7×,Zõ¥ÜÈΊ˜¬ˆ‚Á.ˆd’%&ôQ=1²…±œ&#Ù û²sýUx22Œ † +¼‰ƒ}; îE²Žîü–ëgòäƒmh¹Õ“"ãór[R° + M³¡‚kB$Lå—!gÙâ:@%BÅ@²’ˆãó6ž’oÒƒ! ¥}ÒL°¶1GwEºíÞég濉BÞYpÂTk+–Y¸J¿j³ý;òRP+Átô¯äú´„¾}»}ÃÂÕ .A/¹pÈ@Ø>9;W.*³‡õ$X/‚õÑáaFPýt„ר8 F?ûÏßþ^¤>¿- +E?¿ÿG}Õ?þùG}ëŸõU?ÿõß_úÓHVUp×ë,êO?gáÇð9Ù××õAÔ¿¸²îO#X5Búñ÷ñJŸ߭ÚíÇÇ?¿þñžŸÿà?å—ÿ·Ï¯ëx¸<þýKlª}4”šKôßعÙó»_ˆA³•çŠ×»lëZ“r vx/õ­È+®2L8y¶#c³8O²bÉTß”Bÿ~yBΊåªXjB·›Š?ž6®Âk¶=6n·|ØÎ µ,±|\S7n ¼bmE/Qª Ïà7ͽ2<ÿ]zÃü(ìå/[+ivš ô/›ogÄ{ÇÌ(Gx9>1›!Fµ"”„Ù ;Åø{× +¡’E,¹Z2¸rþÖ=ëK†W"%ÙŹTŸ­Çæ>äÀŽõT¥p¾_Š;oÍ Ç†v1AÆðz4ã¡×Eͳœ$ꊻ~ê¿©ö3FŸÏW¡H5ÌÇ&À¬³ÕŽt3¤œC–\oã„3(Yx]¬§x«R–T€”w‚_O n³Ï¡¡Š0Ñô“hœb!œíŠa1¼ÓÂÕÑ&Î{LöHÕ8|Ǩ½Ds_„ƒX™}¿,¸dJ\É_3î.¸Ù3–äU¨EyöS/õÒU/=^"åXdG¨>!mE€@H ƒùÎñ°œËE±t(RP‰:ù¤¸sÆ=Šû.Þ:Ž +nIÁX ¨…Ší¶)ì©âsuèI±^ëIqÜt6nŽ¸3'æ'1{9>(^­›Ù +°êl’ÙtÁ‘Âù®—Äv3eHÞwõ6#¢o¾¯ÈÝÌ¿5Ôúš.T\Ê¥é9+–«byÜrDÏŒ_±;µ=¼Ìy´Ïå)™¡d2ø®ÖÉÛvp;GN¸ÙÇÓ)¸8dÓÙ¾ÙTÀ +¶û­[ñüKc7†`Ïà9Eù;dãFªÝíö$¨§Æ.ù‹%yóÄèƇ§'ÆIl× ŠMœ"3,¿‡óìh¸«7\´^° «Ì–ج=[=ëÕ«^mÍv$DJ@γc!ÝÞµvðÀiƒú:Š·:Ý$ïVm: Q€g§¶èL‰ -.Šõ¤X/ŠµCñne¼ScœŒw»S4e,Z¢Ù.WÆ,§èj»ëƒ† ä¤U.Z¥í‚ZÂÂ%ÀÝ“g»#· =•öj$8a[ñ–¼Š´Ö–-â[6E›8#3h6ÚG±$²aAˆ+BNÄr!–q¬‰ +dÖVðÀÞÛ3ãozoòWV U±Và²[Èm¨åÂüAE¼WÔ¨låj¥@F N¡“«už=±Üçj¿†s…b¬³³ù¬â¾ê;[ZRD|—·IÛ§áøÛNÃÕ¿[KÐÖ²_!w»„5gÜåkßÌ8Ô¨¾¯¨áC~tDé|Sm~OŒÇ_‘CWÓ%N:év5 ³®EŠ>ßw›B’éåý Ü·pñ¹‘ÀR²Mª°ŸT¢ãhÅâCVÀ°ÊFŠ( L„ÆIÝ3nŸ Ž‹”ù¡1P•@Klxµâ£YK» +/4_õ§õc¡üæq„‘~Oѹq=ÑWzbWc0ÎA^QœÄIçt5.%‡ÅrPUºuÊ ä Û¨‚ 3…3^˜i§¾FµB­8;™Ñ2~•÷@¿+ú0ã¡ß¹ÚœØ#Ì@´jÓѺÕð’x”r‚šr«Cô¶àÙ³­þÝ)!W»9Û¯'Ä}wFÜ*3_·¦7tç[;‘{füÍQ3ÔŒaëYïúäT‘‚ësUbÁ¸§-Hœõø‘Áu4góäD,béØfò¥ãtÌW 1é‰8›»‡Ó<þý·¿k\ÊóëL`üõåßý½þñÛïþ¶ø{=þøç.à à9?[®³àTž³¨éP7ù¿??ñ6û5Šã3wÚd°|(ûùÿñK²èÇWýåõÇËŸÿx£??¡¯÷æÿÚócŸÿæÿ:/Š˜Ùa¬h]Q’ÿåkµ_/x `¡"³g9t'ñ3¢ÍóÖêx½Íã„Þ€$ôãõˆ!«¡»ÑñU}d¨Š¯3Áûök⻼³5옢´Àzu9±Ê…Uz¢øÉX0šì‚êåL@ŒA¿\Ñ…I«7â`Ý–,Ä䖆ܶ´îÏEò +›ðz¢àâ³pÃ%z·® Û7Þv»ãä‚ÝÕîN8l=î„»\ æ~¦dÆ8C˜rûÙÃF‚L]5صŽjÔÙ7´—ô݆˜Ô\óä+cè]džrVÂÿ$æ31_‰¹Eó•˜[ĹÚMâ¯'U(`°sKºDÚ©öPM® =-ßVp»öôÌ÷›Ú³Õ¡AÆ€†ºQ‰P²:™øªˆ>‡ˆáú¬©­áuf\]¹ÚíÔxI;°º#zuçPë¥Üql$NöÉcîM ›—aËix»\.¾s%O?çð6q¸wÉ5!¡K,¸w$ +šR;;ºÛåô½Û®Sõ| ¼í´yx&Æ+1>nmžœˆåB,ŽÍKÞ1EÚÄ›7ß+7&Ëu''Hªá%ºž»H´cÆÃz<ŸxùÂËñ†Š00µvA/®Â¥›1^<áâ;Æëò5ÎÇ»aas SmGÝ2æìá̸‘©qö¥#mv½¼MÚ7»Í*<–}vÎKˆq à9Õ§+澉 ó££NŸñØ"žIw]möΡ¸ ç0—taD âP+g@’nÝ›ÎVýàФûx1ï?%ªXò ÍîÅêø&ïüúîóÕéYwâ}«¿{jhàjKª!‘ç\i¥Æ2jØo¾îÁ¢áµñS¿r&–+±<ú=ý +~ÎêõŒýÚPjßG|&æ+1?9—«ÝTÅ×A»tUXjß Ë̘K,D{¸—ô„l)¢›öµ"ÎóíSD¨aU¿7àÏ ÎÕ«š¶«Ú2ƶŸSE¯þ3·X:2³éÅgd8›kXkû@zË&ÆHæ ‘OÜ>è^ÒâmÚ؆½Jžâ¾ã(&f'Γ) ¥ÀÕÖÜ:¯Fº1#ƒ¶+ñ>ì©A*xFDí*Ñik=ÁÜ·t¡„ÕƒÃl¶ F.—Ÿ$qÔ­glœ’kdÅ7ËÚì`>ækbQU»;ÝÙ†–3s¤†åfë´Ê³#îÄÛu…´âö›‚x[ÒͪWÍ<·_£GßFQ¬­¼Œ~wSÄÈDq ¾}hÌ?ŒþË~$¹qóPxŸSô‚@‚ëÁGÈ2©l|ÿª-͌ٱ ²Kl™?Û3–zÞ@ï} pºŽ‡ƒaZ"GqåŠN{®¨s-UŠÓAqÚÚlP Z‚Ãi3RC rZyÊÍC#KÎm~ѵâ>Wøé¶Þ¹AYÜt¾tã¬ÀZ\Åc6odº­ÅlÂ9ß®#¶EX©Ål`oJ¶¿~ù5#°Ü¿-¢zûö7{Öo¿³Ç~·gmßÿøûóvÛ +ß?ºh?¢žƒºÏ¡àþëqÐ_¼aÿÊ~,Æíã Šû¾ÿ½ÿŠðó»Pì÷—ßÿýñ Ï/øö§üÃi÷‡=y¶?ëOQí·ä ·ƒ¡ìc˜?ñí“L7ÖºTñiç=¹s‹±¬OñWI­XŽŠek’‹žÞmu;Jâ­UŸÏ¸;?Û3îkU—\Ô^™•×ñ1—™6]1MG E(œÉQ|v¦ý~‰g† +±:¥:ˆuv°.¬HE¼±Nh.T²W#ŒNO×_ëw$mÆ<øJÄQóí<®wÃJËf×W Ü^¶îž¸@óÕ»å:°}Gäñê ÙË–šØ94âY½Íùö©õ[#C@m#û4Ž!‰ëáíäáyñ|-Í DzfcJµ'íz#Cô1¥«8+„½m›03 i»ãR­8§–âjòÜsÿtoœý/ÇvFÌ£˜Ð^™ãûȲËÿŽÆ07ò8x\FÔŠû¨ÇŸ¯@A¼¼ãFæp„Ìårr˜jkÝr™Œ!ÊJw%(!¸ä~:%^Ÿc[Ndôfü©Wj½rÔ+ÛóT•¿…!Ñ°èéDÓf¢õQ¯XA¤x‰6UJ,5cÓ»½^xèÝjêŠïŸì㎳«3ùÛ6ãUQ=âÙ^¿ŠŽ|Ö7_Ÿ(Ú9-Ò»Zfï⬈§sº=WQŸü›ïÕGÑ ñ.;”!ÏU õ®ÛåeÌ… D¯â¦+Œåæ+¤ y•>¶ñÆÒ‘¾©Ö›ŽzÓÖX¸c_ô„ß\‚ñºx6Ù|WS»Kb†“¾“Õ_#3.Áâ}eüÊ-$D@=µ³¹Á8“ç†q—Å8òÝ‹X1_Yăœ°V.¬3W‰ +¥$lz¶;.ŸmfK0önË=(róbën‰Ç[í‰T)NÅik·„›qy_îö©}†»¬> 9¢ÐÛÙÓÂ~îîóUå7¶pñún°ìø÷Bµ×RðÌk¸L*ÅrP,Û¿mãX#d.²NïŠIVlŽhZ¦˜%f¨¢ ›ñ¸ch?ßô­ÁÖÄOŠƒìÝ9] ?ƒŠƒK±¥Ã«1J­™.Ëqþåbÿ+¥U½z³í*8·Þ +¤¨í4“Z«µÊÖH³ª¦»BÝÙ +äB®â ¡2 +¦E–mëR‚‚{]ÌWÄ\DŠ»ÃYòElÀd,ßXi]zÝ’PH¹¸È0È ƒÔî¸P2zjφî•s].n¹d ì^ñ´àwÄ&Æf ‰xö_Ž½’  ìÚ÷îú3n¨6ËoìºnÈ +°/âù@ÿª=iTkÆŠ{fÜE:¾‡Ú“š}1ËÆ;ÚZùðCŽí‹¥ÒŒJô½«§½«Ç“ó½÷ÔãDcHìòÙvkªí›¯« º×ÚµGïö¨}â]M@A±™½½$ÙAg/*6ž¤ÒtÃ+÷å@7pÎ0èBM +©M;/ñúØ|ÈÀÈmã³Xé½ñ‡^7X¿y´ó_[¼êS,Ñe‡p:!.¿†$FˆYøñ"±— î‰1çÁ™LhpEDª§£âô¾ˆ`@b§4F©=–rÞgA€œÖ¡ ö¿ÛŠ§± CNÞŒ¯Iâ>’ðmŒöÊÜ&‰a½ÜnD¨½Â5Ä|™&!¦àÔÆ°ñ¬f.ŠÙS<}™ABAÊ« %Z4„«ÕŒ. )$yæ 3V…¨ÞYTAZg>\ivd€jEÌáaK³CÛ§É_V±ŒÈWŸ#g´Ë`ÚÞÑ9?¯ðpWJ¸óµc¹x†z8BæÒ¾‹¦Q¼ƒ»¿uóå„ kˆùÄrJv•«n¨…3XL\?—l¸¦î%WN*öP¢ŽµT)NÅikÃ0Bbr#<íãvqôÀ_ë!±` e\#ŒäåÄ6à”;̶oãüÙš957#¼s‰Iœéÿö)öOºb(‘*æ½9BÉí“îÅ®÷e„Ù;’ÎN¸™Á¯ÁûZ‰Æj"ShoÜDÇÑj'DI=ÿ^àˆ.½®# +b›z¦!KAŠÔ>@_â´±­±\Ïi;fVc%@n—ÇD8!‚{ÒMˆûˆ…ƒsÖMYÐÁ°ââº;º¢'*ž„30Ñîã$FC?[J25Û_¿üšàM†}_ö»*ݾÿÍöÛïßì¹ßíaÛ÷?þ®Ÿ’©Ð{•2#¦!ŸÓ(aÿEØ–ÿë‹‚÷aì_Ù[1no@PÜóöþ÷þkJ ÏïÚËõãå÷<èó ¾ý¹¿¡žÅýß6kÎÛŸ÷Ù÷ö! Ú)åçë §'ž?>Ë|ø,³ã>:¸/6>KÌ%{Š¿6œjÅtT|p_| 8žÔû¬¤4åøXíO‘ßT[MÒQûó¦ÐaSž©È…7üjõ‘ÚPëý¹ >õʽ>2Y¥Þ ë‘Îz¡©¶Ë ¾ZKÎŒY›nˆµÞxÔ·–~ìàCdùTœ*ÅnÖs%nÆC÷²=Š‡QË&d©ìŒwˆÎ×5‚BÏ?aJ¬1åKëLyf„>ëºF ¶/v±(z¢ì +j´hP·(yw䌗s‚".=| NµàtœZ‚‡ÒCPèäÚx¾ *HÁ¶)^ãÿkSP4vMqÖWWXR¸†˜/×vÅHê@ð”GF,€œe¬4î±¥óæ;™Z.1†ö7OAM+EpÀ¸ÐˆC´ÎÀvD ;4b¥7ôÆzÝxˆ€Ú0Ü=ßËa¸»ã‚ëˆÉæKöºéÇFÞ'óÍJGñý}gWÚÜë:@Ÿ„Új3ÞOУçáO½±Özãö6L[ÛÕj.”‹1tÆ‘A9y(1›#"BþûÕ’\É÷s +]`0ÀÚGðf9³ñý#%ÙrU„ðÈr‘ +ÒÝ›nIO¯”J%òƒ5PÄÉ#:ñöxD9!.Ä¥1×rüȦ†#¨q¼dó!7Û%™T9â÷.ÖÒ®„ Oö÷–°£ÍPBOG{¥„ +¢àaâ®pÃx+@\Ú£œÑ–+ÚrÞ§›(V™mf£øõA$bÑæ\-Ú6«fþÕ"Ëv” +Ün1‘Ìà3Þ>‹}AŸBMÄݾ0{V°*°r‹ðV•—µ€¡Íæv¤7$WýL‰9j¨,Úa 炸«B¾Pƒ%É{ð+œ@«†Sb½ñÃf D-~Ή¿0'X +j” z/[œ8Dš)Y‡5t£N¯!ï’!âöÛÈq`x=Ëi6âaŠÈP3…Mo¢}Gƒß¾²ó[!©Lì’#³Ø®$‰Ð.&V*ü­]çé± aÀï°­yW¡²Êô®>Žß½ºÎ†ñ¶aWH˜gkxX¼àšÚ[³»ýÎ/<…4ìë3÷yDŒ¸ºoRP!Vó6¢½Q …wº¸nøêâ® ®ñ‹— H­•vÉl™öh•¬ +ɨ=:åŒW®x¥Éï]¼áÅ)Xí#5\õÛ“/ôKj4»Ê86‚lù[[ûSýúµ1OVĬì<½§ ElPDrsËu6‰`Ë]—ârA\z[-5Hë³+å"WcwµÕ´ ¦ö$4$˜`È‹Yð^õABV™n cë™j#ø=a•V¹`•·–¸fŸo”õa–p1±.¼±‰U†jØîšAQ¨¶½áQý9ˆØüå×úí ¶ùÕa«yáh½ì|c®=+ërâv‘,g´åŠ¶¼µŠä n%°R[¾»ŠnýÊ„p¶÷Žâ–”K¤„¹ÝÈÁª¹'ØFãG’Ï5ä²Q'#o:•E éíkÓéˆ*Fn¶âÀ”ä¯bn]Ÿñò/¿u÷ÞGn† ESËÍ~. ¿ªÝT@KšÝrF"F<¾›M§W½_7‘ì&› øds€?¬ôëêË^ϦW߶F +p‰"n~¿£ø$‹5¼ž"$P-‘†GDÜP´5IÄ;a•V¹`•?±†eG¡J8ÝV´ß$^!j0ßæ ØÍ ”(o F ¢Í‹¬x‡·X¶IlÕ³Ó꼶ž1ôìÚ$)0Ièhƒq—áÝLjž>1F¶ò'•ÙqÂK'¼tÁKM~… +$Â0->Ñ–3ÚrE[ZhOªîä÷ãr¾Ö¯ÿÌ­îû¤éŒÒ®1Ôl3s-ÝÆÍdþj™ž³Í{çyÃ~Gö²ýø­4²†Õä붛s ì£ý3,[¬ÛdðfhwRm6¨I"Sö„õÑô!k›íƒZ¨ú«Ä»Œˆ +\·©ŒÙŸƒ°t[µi>¿D¡vÓmõÎG¬Åg¥Eú]qöd†BÔr²E.Nƒ%iUóEÐlÒ>¸î6ß~ <ÚfwÝAѶ½Þ26Ëî"ꕤÀ´K}*  #´Ãû㳉¶_KFÀD‘v‡%Û@Ž)yó­!âõÚƒ$‹úäbþÀFP•i´’Õ£-GhWTÃÏ-4m ±PáÙhGº™{ oë÷+Ä׶ӃøEÛÙ«?¤ +…©å½Oúà í¹&\ÚJXâÒöê¼l 5[k_k‘}hã” qÝÉH€²Fü®æ è3¥(—\˜ªþýA|ÂïÏ–÷_éO>>vžý"þs9sVä=ÿI…¢+éþ3Î/* (œç";i3·=±ÞF¬!Çõ +ˆßÖª®Çì²|”•—h{ÙèòRyŸ´_+áÓ4š´»Ù +Tqe·(îŽý6Å=5å…=P‚„¹6¯Q«!“EǶ`î³E>¶bÅN.ßäѾ…„|ÔŠDY¼ZNÔc¤°9Œšˆ#“­‚ +òâCò÷V5÷ÚP¿TÝ~[Åa(–ŒPP£C»+…/i½5[&P˜Ú®»†-d†Š9ª9wMw2·Èj!Úa¶pFÜwd1¿Ræ–v±]!¬±‰émÓ&¿å„¸\—~½1@­Qëg»ã ÕÖÅ=RÄX´VË7º™œðʯ¼5Ý ÛœÃJ6fTÝÝx5DìßÉl %kC*´†|;çõ­VÛ^þÀf€‘ýŽ:¸<â”wšB’°Ì.iwá†` ²…uý.Ö‰ÆÀêUK[Ý·6[lPµ]Î:ͬ'Ü"VjmŠ{÷ÐÔ¤8ºoV™k+ëjg/Ò‚ÁeÌí7o”È% ¸OÄ匸\—â“°»¥ýTa V#ŽGXðmŸE¼R„aØÏñ{UD†_)b7Ì ï¸}"+X©í7ã¾Zùª¥)Ç>ñywÝY7½º'‚’¤íÅkì8d ÜÃӎ̨5šq'õv¢¯Õ;rw*Ô¬í¦¶L.  sã¦?´ñ”ßí2ƒ 4×0—oßÜt?óZ \:4ü0årLžrºÚ Ì@ÓÛW§afÐ’vZd>Ac¯‡˜•|ÕÙôÅ1ðòÔ€%ÖñzK2w t¼d¿¤ ólUœð>jk¹ξºAhY d)Úq}í¬9á• ^鹸Z}mÔé‹n G˜›Z´6îâmúÃÓ¿]NjáiXokX›÷i8ö`NjxLûÚ×’¿ª!¾™óÑ¢7xÜ(•÷ëlµR{×=LŽKT1–¶³É±\K›ã:ÎìˆsÔ%îºÄää8šOÊ»x›¿J%HÕzÚ±åŠF··‚”òôŽ6Ò+`¦ÉÞ0´õ @¯*ßØÓz#Þíâ2`2žËï0´ŒPj‰Ôp—ÙÉ×&YAt§~&ÙÕI÷Tv:£8*;xp\È뙆6®ž RNA¡\ÓÐÔk;4"~l ɤn4<©¸Uh«?*>ã&†$Œ9Òð´w™ •` V[H‡ÆÃiAþ$­A`Ìñߧó‚@¸FºýÓº/­í =‰ñªAîè;3y 5dÊ8ñÈ‘ ÕŽ•±H6 ëð:ü&ö£ k姫u¸¯| }sÝÍc )f ¢³'Ñ@ŠYÕ‡†µD7â¹)—!SÇÁ­Ó)«€wžöÑukxz§TG¬Q癳4ä„X.ˆå­#›]Ö¾ºu86ÿ)íÏÕ‚c¿]$˜AÿO~$IrÛPtïSÔ  @€kAGðÒotÿ£ºFSQ(2#™äh1ÒtWUöoÌÇÿ”i§&0-¿/ˆkl +˜²x­sÅ‚[Eq +h=KÊ …ƒ`{Ó¹ò°®â±ò£?)§þâ­ƒîŒÙÖ‹ +Ar[Š×K­^:ê¥Fo×cjã;ÉÙ$¼Cé´#ÞŸëÎï¤êwGg¾Üêå£^þ<ߣڑŒø –T¢P;ÂïÌpÖ +?M_ÔŒ!Už6Âû[nj0T \#†8dwCòñjTnkÎ×€K éô„oWÌÕwNKDî3ÑhB‡¥V +ß gÚ+7Ü6¡»×XÙÄr@¯¤>Ç»õÚÂñn ”ÁŒú‘°Lˆq­€úióÞŸº™@5jµ{LqQ1ù“Lƒ¥kšâ;3‘9\:)&ªMüþ ÈáëÈ=é{«øt·…¬Ã•¥=Ü8bpÂ#Ž(ârP\FfLLUofY5·_F¸â”8:‡Û8® lÈ7cÄaã¸QÌÅüèoœ$â(ƒW›¯$‰)mN)717(ø¥ï¹’zÃ]äÐäêu‘¢M›”dMb ·†‚ÌQßíײò^ÙàGQ’×:Š ¸”þ‰q­‰§¦B ølIň€¨Ÿ5Ž(­ârT\ß´q¬.2ç0ÑfmÜLGø«ÆÑ|kc6ÃÖñŠóÝŒØ2®;Y³‡Z +cx±RNÕ?«A)/ypæìï :£Ì­`> +æs‚Ç("N‰ +,!/È=\ XÂÈÂgõÞ¬ö)’“…L'ñ A|Æý^‡{¨<ÊV/ +Ùr1v÷ùVRíµÒ¨•ƒZéªõ>¤ð,šC³ ˸“}­@–pOSsƒŠGjnÈz¹øÂiäŠé¥1æˆx¾þi‰%çëNbaD,XÛmÝ~ç‘· GçÑã¼ßm6Ì”»†žï;C4«8<߆Zrv¿ûú<;àp¼R)Á-·$g„‚!º/Ö‚þ¤œBîùà ¥Õ[ŽzË9ûŽ@el_®ª©Ík¹vÆ¥Q\ŠËÈŒ)A¬û`û^g‘d‚\óhÆÆM›­x·uÓlxÛÞ—ñIJ ŸmîðhøÞ-6`å>N.S®Tðö0›‡ìOÞ©ÎìwÇÃÌ;B$íÚ:ŠkD5T¼ÞYÄFà¨vwÅM±AöAw7o0+F6o¬æb°Ü¥æXHo'ˆ‰ÌŽˆ1û$ +žuIò׌{µZ騕Ÿ05~ õî{sj˜ù§%šïŠ¥ìbÁŒ^¥\ظQŒ‰Ÿ’ÿûú?V{}_íëû¿úÃþõ˯þÜßüaßþý¿¿@•Z~NCýT´|˜†¤üšFMþ,`ÿï_T| ãùã× ž@7Äó'¿þÿü5ŵßõ·×oýýǃ~ÿ‚¿ž-™Åëï>#ÖÇÿ–ÅåT_l˜sYß}~ßÖ§Ð@ñzå/ÄLÁ3z)ŽÎøXLRþ²óçñ®s#Ô +U“¾W|©\ULPª…3ÆÓ3~·tÇËq„­âËñIƒœ#73,Õ‘—Fq9(.#3Vó\Ô¾âuJ +ýªaíGñ2®ÄPùër¼³<½—¨Û28Èö·n¡ªS(J#^¤rÎÃÖm±­ g\3pÉ‘‡Ï:¸ã†KG‚_‹NlÖí9iµÊQ«<¾µç¶Ÿ,þiåZ£ú“^§ã'ÿ.r:JV`Ãp¾wäÃXÇÅ\@4¬¶fû}(ҧˉqÍÃBþª $ÛD‚ሊ“Ï8ÕPñb± [fÛhëý)ÚºÓM×Mµ1µ!K@A½›,Ïê ý+5Àˆ%í»û©a5èå%÷ÈÙRƒL»§3®²¿Š›äCFP¦~>”Vo9ê-ïÊCz{šMu/B"ŠÜ»˜Ø L1òîŠw"XÖ €g)nŠdPñ«¬~FÛêò|V2ÕÀÂÍxëbd¼×NŒýOI hiN^©×Ç«¸×ñÌ3m«†S¨ÈagÌ¿0¨ÑK½ôè„dqëòN'†U Éý†[†ÙrÞëÆ`ࢶIF(VîÏWZ½rÔ+½ùÎd¡ +©„¼ ‡…2dJy#ÅNÂI)T¼Vs© ÃT[1#Ð)8Ëåæ»Wô÷D ¼Øt% (ÒÍWçT÷æ ¤aŸM³·jg"»ª„ ·à|ÑS ¸òÿJ£WzåÑOƒ$pM< ªý +Þ)Y+Ëw÷ÅÔ†+ ^‘yüöìßr]Ünݘ‹Ã½³ Îi´'ØüÖ`¹;צzÂß™¢l;Ý·7CeÝ…Ú«sÔ(!fÌvVÃy_(ÑN›¶]_pÍ`\z›&­^9ê•Ç°†´†ô+þY è¡i +jµÒQ+=¾‘w$û«‘Ë°çéVŸ"÷¡õ줓ûv¸\näòA.?ú¡»ÍšB¢î‘¹ˆm…’m"–´Ô}ÚAH€2ß}±5z¯‘¹ÈÈ +6« +Ž˜wý´Š‡ˆ,vÄS¨†·â}™="rí3Yi—£âòèx¸™ü ‹_ÿºQYpÉQNœðeÁÕ/ŸšB¿Ç¿W™ŒÃvûÓ¾£M|»}¹TÐEÄš¥á`f˜KF„Bª5€ßÆƃŠGl±Ë­3ßäOÊ1ö¬·u’20†K·ÞuÄÆ@Zú¦X'&œ,Íbb¹˜84T»ÛÂÇ¥±ð§¥sÎ9"÷=,˜ýÝ[cTow¾#j?Íw§ËèÉî’4ܶõàÕ%ª¹%q"´œ§·õDiô–ƒÞòð + $Ä%O`µÓ;gáΤTwé W›+Ýî“Ôr%(5̳?Õ÷Åí ·W_äŠ%ðn“ƒzGòl ‚cBû?÷U“ä¸ÍC÷9…/$Xçs„,“Êfî_õAv&#¥ S.S]Ä·˜ž¶%±Ÿá‡÷c`µ^ž)'ÆöR{ŠÜb—K¶¼ãÿËV÷Pëj½ âÎÄ(ٚסÊ×IÃÔp†~R»º\L]´J€:ï"Ù—´B'¾zÏff_(*ÃŒù¾K…ºhÜó´Ì-ç´"Ჭׄ¸)Têôî’ÃIñ=“Î5‹¸ y–ÄéÃ$VLmUAºy|Z#F[wŠ/¼X•Òô DÉ´Ckv¹O”ª‚™Òô‡ñaAÓàV ñ VȱËpƳ®y:kmÜ$´;9‰÷aUÏå—AJ¯_'hÉoAÆße@8¶¶õÌü*cRüýÌÚš…A}9#öûøêX6UwɃŽõânb;Ä¥ûÙå¯_~íVúã}nPTïïóÃ~ûý›ŸûÝ»}ÿãïÿºP»o1{š’~˜ÿøî ·”Iþóß®¬÷al¯ +P¹j{ÀÁ–í/?þß>&cûñ®?Vþ¹ýñû?ýxA÷³·ö³xüŽ[¸ýùŸœR¤mÌ#`­Ë/µó„î_åÀ3vúPΘpSˆ¡­_öÔR¿ˆS&¢&U—©úÞKë#î.OH]*£ ¯·ld k°l VÒ²•˜<Þœ¿3Ùk…ø$¾ 5œ¬S72ŠõÔÁ8àvç.¥Y6.°Jxw'Z1™?Ý[`Å?§{:³ŽÍâÌt_˜…·*×ÒáMo‹³C³€B…™®V 5€T y•Py¬¹éì×¼õ@r23n˜ZŠÕ"½žç á!ï€ÝIT¸^§8ûXe Z‚H³Útíò†63Ò4Ð ÂÅůI½Šéۜաp}– 8S•äbЛ6…·o‹í‹é&)9\ñj5˜8Õ"YbLÔÀÁ–lbÔ VVÇÓ]á+Œs•›˜Io©¨ÌA×ý ˜÷€ù˜ß|†/+Z +ÆF¸~UŸ—s3@BÎ’²V· _\$Þ”ˆØ‰ˆË…N<ÍÜ yÄ>É63Ð +–¡Š}VÍðm„‡L@iŸàâtH5á® Õ¢ª¶ ìzÖÑ ±—+R ³˜ð&qã=£áÔUÄ¡ìNãî)¸¡©U¨i¸ëq«þ0=.ȬÀÊí\\PÁwÒ"^…ìcÀ§'<|nÂ!`•¿ש&Q ¦È¹éÒ˜OV ©°Ì²16ЬÔ:§Ib`¹6‰MŽŽ–kÂXåâê35;0h±ì2v0ëQX$q­Ð%سG,zÏ#ô)àýleX€e8œ®nV#aXÏ#¶@FΉ<.ŒJ·a‚üL¦-›Ó¡HÔ-犹²ëÓŨ-¨ºŽWóÄsêÄÆ!r™ÄmcD’ì ï7Žv€é˜nc &ë€e\1ב`ó§{«#À§³Ùð™ ¿¬jA¯XÕ38U\o%SÕL×q¤ë"® +˜J%¬‰D^pˆ@µ\Ìá7W.t9õWK”,×[82ÊL÷6¡w¾ 5Ô^B2ð  S9ë4°þÜŠW+E {—±OÁ¾M‚8F*CdhKfœÂ`\.î»PC(´d±…t ]àZ¡YRîz€©+‹BžC‚ÓDRLU|°6øÙ*¶¥[MÕÒøC)Е@W‰4­S« Ü +¨àÕ•a÷LƒŒ#·=EeðH“èæÔz"ëUi–©¹\„¢ ÏÙÂɬÀÊíÄ‚!‚"ê—É×GKæòEZ2É—V O7²sTy[5Gðò¾f}t•xP:H´`+æï gîd×T²Oozû•€?ìµgQ…t-']áuGÛ\-ˆŽ 2†RôÂ9SΪùÕ‹Åa‡öT`™à÷ƒ]‘ Ùo8Ó°ÁjŠJÙ°·aCã=T>BåÛ€»YŸ„ûø>Ÿg2W\ä–#@V +Òî¬ÛÁ­;¸õ·ÞFTàb~fjhÛI4L ËÄ®”¦ü´šŠE¡æ¢ƒåjk\+`›…ìË°ÜÞ2‹3‚›)>_¸ëe>À^1IDÓ,)ƒÐ—.ÝgæÊ@õêŠùæÊ…œ)£ë=>\ΦR·‚Êï2€7ê"Q}5æ¿&ú<=Ó·©«O‡»‡+;¸r€+»á¾ª˜Ò(RÞõ̘Q `ãDVáUS¯VÞ™ûæ ®7 î]¸Cþž··ûtóô ²– 0c‡úutølë`Yb‚q©×MvôT|Œ€vE¼Ø‚gJš ú܆Wt52…âcþ¢%û,3l¬‚™$ Ó$È-.øp‡l™]#Uh8|:¦{ +nÈ„ c¿¸ZÎœ®Q¢0V°·ÀÐ&Qá(»g„áE™H—U +õ<êÐ;´ÂÃ@Æ{À|Ì_ x£D.sk +Ò-¢ÄÛOUb–þVNãÄÜt¦€º? Ö=Ôz„Zo¯¥wš©áÏ/Ž “À’y—èA2_i¨­‚½°œÍ4^ge©½\Zò|íÝâ q¹³€‚eJj@-ª¹?½êt@|¾X3ã‹€µ¦í¯E·Ãïÿo“ý{øçÝÝ퇃öâñÀ~ß}F^ìþ<Èe‡Ne“ŸêŸÝ?ðõús®ŒÄíÉïÁÊW#žXŸŠÏ¸J„¸:Ù¶ÇGˆO»è3ÄÅìMÄ÷'‚WGlWÏx’-‘ÖMé¿të>•{õ­;Áˆe8LF>cjâÕ¼_ŵùkuøCFx´2åTŒP¨M#F\ §ð†\}¾ùÜ þî~VbùÒÅ´—«³ öm1}íý‰oOM÷…6˜Õ:œ¯ì˱Œæ{tã3Úð·L,˜JÌ~¥6œRß07O;'2ð2ù,™özÚ9•×áoï eˆ˜÷ˆùˆ˜Gˆçj„_--ÉÆ‘±ó×’¤I®-Ô‡k<îó´®’%­çÓß-M +r†4麠’Fº€kÃXw×émÍÀQ_x‡÷“´NÊÎéyæ»)Y)Y”,WîÝ\Xò̶{ ê'2Ù:ÜU¿J-Ѷq%pÔc'^Cͬ¼H9×ä2Ùá•^9¥ +¦yô!UËD×ÁT-=íôDŠÆØ\8˜ñŠÇhžN°bn~µdIìܺ7¡’$ÿr1W´’H#ò4MÒÊ—¦s³ýÿèŒrNÉþG~µ$IŽÛнOQ0L€H®çs/íðfîa¨äé¦&)*DeíEªR™ýêõÃû¬£ÝT ¨—³Ïõ^s³X#Y"óÓˆgù/Ûk¤çi¡=Z=¢Õ3´GEŒàõ±y„¿1–ófÈÜ\~àn;¯Ol”(€©ë÷–"¦é×üw´¹.50Aû¨£Ýk=Ù£ž·éÑÊ­œ¡=:ÚÈŽs4|Óz–Üp„–q­}™ ÇMLQR# †+Y* ž¸5næ\â7Íò™«»éÙ yËsÅäÈbˆÑk?3®nZj =J¿¹—æ¾ÆÎHh=­zþûÚ!v]5(ŒUÃØ¥yj还?Ü*ïèw[~G[®?CKæ -ZAK +iAt+9AՈ̒‡x¡Î Y“ÛnVSÂ7ÈÖ­ÑêÚ¹›"Z +o-§Õ(-G’5È*çNÆ=Z>¢å3´GEŒðûN +ôaEÜk9ܶ' ººVA1Ñ0%:÷`éÑÊ­|’_Éy,‘—¹:IbO¦§ÏÄÁ-Ð8R-5Ðá[½ˆ÷ûÏò[ÅÖ¦òaIɲ.L2cMa6†õˆ:âë8m‹Ó»¸sc㘃8W´æž#ù"d‰rq\´‰_Ö¹ ô´e Ç…Äû¥^ñˆÎ \Ä7×'!`Ò‡5<Õ‡³½šºðBÍR·'Ï|x47Nù½¹5H,çÒÓüNr5I +ˆ‘v†¤büJ Ä\ˆ1PrH6U$|:9&ixã·µXüæ`kqs5uÑõˆA´#=B:¼rÀ+Š`ÍÖÞÛ㊘Ø.›!Î-È:ª¦_ïâ°ÕËŠ¨§ˆÇáçmïðøý©íë±^¹¸!†=5¶Œ“H[ƒìIyº¹ÏîêºÚšë4Dj6k–I­ÐzîÓø½ã›•HœZQÏÕfdÜU¬R&¨Ü\ÿý•{¬|ÄÊÖôíÌþPª5ž¨£ µí“>ªß›þP¬TJåÍцZÏŽÆ5Y"×H‰œÄ€J Œ‹µ<%ã›±$¿¹ZƧ=b¿\-ç4ÒÅqÉá<8oÚñì¿ýnŸû‡}Ø×ÿüÏ_\3QÛ=kÖöîl´í³€SýùEÃŒí+Æo¢¶7 TÜín?¦$üó»Ðì3öÇ÷¿ÿïƒþü‚¿—¿8ÐþwãÚ~¼€Beû\I j©ÍsÐÁ{qÐ{ëö»³´’_#ž²¼fyÑv¥yHÓe¬é%Ú·7W­5ز§ÓKijÀ<ÄÛú¢šé”cé˱œqÜyê âÝ·½@šËÃOÓpƒTK ¤aó‡Lê)b²? µA7•Ä¸Mø9%ÜZd¼Vr’¢SÂp³z\ Å’Bšsik®ƒfeä“Š¸ã Ö‹8ù¶"¿Ü¶g8¿Bd•OÝ4^ðâ¬?äÜ"õŠ5=î—]Ø__”A¤jœDÞF—Jœc´Që¶öýa¦²¡%ôÚäÕöû´?„ÙnÜZÇÉövÍêKn{¼ÚáÕ^Q$‘3%Üà¶ó¶A%ìþù:)2Ø/wW¬—Ül iqñ#)¨GLGÄôu©íÜMãLø4ÇÓ.κojN®­É¯B¥ì]Ü‚N äU‡‹?^H­6¸õw1´›R}¼äLå·€fïàæ!î ‚;Ä|@Ì_—íÕ\½ú°X‘ÜÁâ^Û‚Šàjõ¬4×Ð&M‹Iü +6@k<ŸSƒthå€VÐ"dÌÚÝ,–vƒE[‘êÒ;éЦ¶_Cœü¾~yi¾DÜ­¤AÄû{A¹œÜ­™.[Ù/³Þ¢•® M¯3—¥ÐÓëm¦«%¶BÉ5ÆÞ474ÈqzÆ…ï9D¬ý),&†ä¡.Ý›ÜfÖìi÷bZ<ß‚ãi×ø%õZðUåžæÄZ?'6´IÄióÑÞLµšÁ~…jg¹6/Ö~"½·ÿ’_¹‘Ü<Þç}0ERÔ:G˜#dùÙÌýŸåÎxTƒfK…’ ÙŒív»ðšóøÞGGq½q}þuÓ,Ú…‘ÔsÄOÅR+–³bi)>»¢'}ßx8$»‰‚Ã:ÏOzÍÓñ!1hˆÓï¢t†¬4Ú>¾¹y}ŒrÀ¸b* ÌËnº}ú¸ûÊxÇú¸šÇênž€Š¿y+ÎX!¡´XíFßÕZ¹ÒÊ'­üS«Ûu6[Lí^§ë´K|»Š‘=²\Ñ»Œ"r3ºQbzÍÙÇÓgi¶¨£Ùö +—û„™!ZÄ­f[ Ñ<à© kÅxVŒ&¢Ü6†€ÜÆànpŸ~Εã=4ÑåS´÷éÌm;•EŸÞÁdLÞ‰±âáIJPDg·Åzã $ÇÙÐ3jãÐúMýÖX“x +¡çˆ‹1]mb œ£ê¸N7xWûA*ÅrR,ŽŒÈ Ba/ƒú—kÅ|V̆Çn\fu8¢òp÷ÆMw…m]æäfÄ‚[¶;åB ¹=ãe\qðpì$Û’SÎþŒ$J Ö>* ±R-E²}ìÇß¿ýnÄ,Ÿ¯sÆ—¿Ù³þøó›=ö»=ëñý¯~VóÛs)áiÒs%ÍHöïç%>GqüË>ÆtüAGó>¿ÒTÿxÕÞ^þ}ûóûôãúx6ÿò÷üÞ&Mùñ¿S"à"ùiB´1¬]§ljQ÷PK9%ŽŽÚÓþ8qƒLW<.íIŠ²çˆ%gl˜˜'+®ôÞ¹Á(gSk¿Í|©‹pÅ}<Ì!©z¼š#¶j *9•ÔP»È v·RØS;…]û¼ë7ræèäoÅ®öصž±TŠå¤Xº£@‘ä%ÚÿŽsÄ!RÕ%ž¯X([ó½³q•V®´òI+7“Œ£¢ÒÌÝ[WÌPÚ)…vÉ^…¬¡•½½Óm8¡K«› X‚ÃdãR¬žm—sýÙj†T<#ü´.ׂù,˜ ëV£sÀÏQ½Ž•ÐV¼–a2,+íxXF1)¢WÆkºg™ ë•Þ;èkœéË`ò¦SÉèq,z9Ô´©øšq°ß:!¼$ê`† žâª6:÷ÔÆM\h áVòŠ3¦ ’ÂLœyÀíæà”!Ç}Ž!‚hªÚ‘‡Ð^^ Ì â>LIZ È6îÝKmÛµì6ÅŠ,ISù2:»›e…л‡V˲ˆrt³áòt秙¢±ºæü»áõ–ÁÐLšüÛéâþ½ÛqbP/ƒ—œ1erf¼$G…¬îqUï+µWµºJÑÞá-܈¨„r%”OB¹)”S²Ec'̪EëÔê-Z­W*½rÒ+=õf°ÃE¼ø]¬Þ‘ªèFïzKƱØáæzwEÅI¬•gGoíaªÓI1=z<¬Ñ/‹gŒ¢ze1§ûrâ+‚ú`¹¢+°žÅõŒ»ºã XÚæÙ Þ·;>9¡ý–gû¸Ò‹•^<éÅG“'C*èB嵕³;õ>·çuC BÚƒ'˜Œ€Z|‡,O‰Ö§Öu’õœhkÖœ‚!±‹ŸŠ¹VÌgÅÜR‹^TüñNÙ·ÎÞ-\@ׇ´Ûåé¾Au¶ôÅÉ(9²Ý8$`&'~‡áäU?¸e¡P4ÎΆ‘ÇE,Œ€÷) *l…ìðŠŠ9 F+"z-1;"ö³0ÚÅéÙaµéîeÉìÀäŒìåJ/Ÿôò£M:¢z¹P©íDuGí)¤Ò+'½Ò“dÙVÈ…õQ«60ɶrÄ~·f(K.Þxõòxµ}öG¬QÅK–q"ÈY÷úé€P¥“ õØòr[Ìž¯Ú¡AâìÚŠé@Ù¹f§ÃPJ³w¦­˜'%HLçŠZ±TŠå¤XzBDôf¼X'÷'a™=ß«~ðÔ†døRq”â F\#0£a° £â¼"} ˆÆâØ+s)bN2IíT¬#H'M¿ÃL" ù’ø¹² qbÏŒŽôH/yobHa(Çéä§'×u7Íž ·7'ÍbñUæØ‹vö†<ßlË~]‰ë«8LÈ# ¨Z…xòw~{.0tΛã¬LÕÈ“qUm—c¬c‹/™crQbÌV£²Ê#&Ä/7oLÂ;ÈaÐ3ISÖVpÇÉp²‘xñld@MhÔ±áø¨1×87cSF0hiH¶x]×µx]wÜÏÚI™é Šä7ë‹Y„¤Ìœaò&sS>·žÕ9¦ +15ˆiBŽ…”âÀèyÄÏd…%E +ŒŽäw61k~‰9¯¾<_èjÉ„Î0XÐQpä"K0¸´SÙ;ÂÝIâ;„Ôgm Ùr$„Á†¼CL5bjÓe;Ó¨š…qh‡nDÍ*Õ˜¨g½2=Ù0¢ŒD´ç:ˆ¨ªg%ò€©LšãÔ}¦û±ØXДy5lÈŠªŒÀkB뼊¼¹=`õô«ÈŽc"e] SüÚòëC,&W#È¢²!s0!æxf_s*ÞÁ¡ ­SÆ‚ãù¿¯=+¿Ö*Ë/fRÓ‰ƒ¶Üƨ¬Ë„ævã]Ž±FŒ-b¼¨>¸¤ŒäHQ×—^Ìɤ`ÏUtu†±BŒ b¬æUMn¨-½@Ê4M_Ž1{=Ž! r:mY1’ÞPá Þ0‰ÂV!þ0kç6k˜"[w;0AÎ'ó8"žÆãágC)žÇ3š5›…CʶÅëj¼®Åë*¼ggD0 t°Õ]a~½–ñ“t|Éb›w8µà5Q—=x—ßPã -ÞÐP·ÊúDÑïìï¥)G=. SÖ–\^PRkœZ]3¨›á@Ic#•å–¬5!æã{m˜„w0¿š,¤2Û³:îF.ê#Ÿ‰œñ}Î.ÇT#¦1]4Çq<³õ·Y»JGR´Ùf9=„:##¾¨ žÔ:ŽÈÄq›6)N¥Ä`Ñ%E¢F6j±6i“_ç41AÕ0„ɉ¡†öš0™ ã†r +ÞaC)²ËãÛ¸¾šÖ†Ñš¬"ÄÊ e”ñÍTÜ5vbÌI1¨Ás1¢V ¬cƒ»q³CpÌŸ'ÇÏå0(3”äâ9>sŽ1‘±èH‘ûÒï†:ôÕiqq팸Æüb&%Î]êaŠ³w=¡ÆZ¼¡;ÉYº +±k»â#Î2û£j6—þΩfN[µE¯Ì½Ë<ç! zµ]ÝMžÎ?fe]™üñÊ»BÄ`MHäœ:-&Ä<0ÓUU7Y'Æ:ó¤ ñhºø‹ÙiS5ôÆeßOGä3Tˆ!ñÇðáÝbÍýÅ¡ë/š¼¹þŽŸõâÕ;~ì#?«{üù¡c„l.÷¬s)7É myd+»‚üww"(›30%O²LÙõþW¾’¬ß^åe° ï7Úž`y¶,¨Sñæí«nñâû»Ÿ~¾}ÿýë?u/Þ¾rÝË×|ñÏòøîß]õI¼µ†@™²É¼ÛûOâoA“œÛd埋̎’X€©ŒÆ2zçy×æçÛÅÝÃâåÍÂnžûiñâþžùèæÂ50K³…²Õåg{Yì”O,:ù»y®½¹_üuùí·yÙ}Y­Á-?¯–··ÝçUZþºZ{þã—_øpùÓçîýÇÇm oñòã?Vnù/¹b—}Xýí曂l§×ÆÞð—°×–g=~ïÒ®n~Y¬“#Ë6¸îæýbIåª(¹ïø‹–«(ùŽ«b l©\¹þ榤;æÛz‰s%&1²%Ûå›Ç  + û£5ïyâs[¿kÈî˜ÑÉqEÈ<•­óõöõa®ËK9Ã__°'ííA]””Âv‡{@üŸ¸4  âÌDè³úéÅw’”T¢R”9¹!E~ B¿å`ù_w+;üŸÕ:-“#>¥íÆÞßÊå‡/]u«{üøßò‰ìsÁ°†ŒçœyW&ŒY*ËK„Ę̀ÍÒøÍ–¿ek˜Ãõ¾eà˜¤IHÊd©ë¤×#d–¨H·?¥ú7¸¹]ªVÊ™íÃÊáöú^¿î°;µ•$ +¢@}˜,6Fj꽄ûq ïÅ:m$<5M=M’pÿDSÿJ=ëÕ¹$Œ¤¢U@Lö]ÁÚ®¸oÞâ×|ÅЦ«BqÑx&A"ÔÝz_x›Cæšß—Þþä]òHTôsìUùcGAÔÄÇ‚ö·-ï|*1qÃE—ü¦Xú˜'ž­ ɇžÈݬƒqùáÃjËÇÕ:J=äå—W;2µçg¼et¿t®û¦‘"níä;"0žˆj)⛫ Ï¡O pÓ3HØõ!ECŒOüYú4î‚ä6ŠÜɲhÊýa8ð†E¶ .âÒ¼?X!¼ Š‡Ÿä½+8ÂCÑo'’\ ´K$"Ï™wœ@'í +@ऎ‰åÊ;šr?0§%ÍÉýA¼dJ/®êÀ;Ì zЮà¡GÆ:¢Y"Ñ`¢*¢]"n†bÑ,‘–­«ˆvÉÝÂI{+’øç~Qr·çw Þëru¿‰¿[pƒêµ£¿Ý†ß-ÐØ,ÞÇÉs,l)v4t²Mu¬|¾IL .[þ¹oceiŸ ×wçû6\î‹åî¸üÊê&\hÆmŠ÷Ò[“ +½›r?qÍ¥Ž™ãzž¶ „dÈjÂKð…ëí‰ÈÒ;!)Éo—Ï8]©ÊþÁ!W3RÑ.‘ˆÀ»Ú¡ƒ%’I6“ëˆf‰D#ÞyÑ.驆Ö×Í’Šj»ˆvI¡$±W+¦õ§L4,[»»[ß-8µ´¿ÙÄòƒMJ,“ì°„Fu¨l$ßdb°zÈÔ¡|Sb;‡\ ½T±Â!yìxveƒëè^ÊÄB{¡VaP¾W2¾ol”l¿ ²ÈíŒe)!UB¶Y!\Ï,É\UìË6JV-1-Ã.1 ä~æ‚Œû€:þ®Ì@1Wë›p!†-%»»ßÄ÷įµ»ßÄ÷´ên½§Ìî~Í„àoä\üëjIv‡aûœ"'HYéSs„Ù¦}ÿÍ"%’©·y6;AÄúYL-rù¥ÿ’£@÷µp ô\¥j:Š´ÕeÐb¬¡þËQd˜.¨ë~çEÜù„0D¤w3ÝIÿPœ‘2D ìd•§Q<³¸±©××_Ÿp„s6ÞP@ÞF ëÛúžÙ)<­.³ÑC­Œ Ë!ö/dÅêøè;MŠ$Rn,\uÁr›k\KŸj-PÎßž¯û!Èáç4"RÜá"PpøX( JØÈá;^Ó¯>˜x7á{…)ÍÑ\ú¥„áT“¬/µ¡yŒåãJƒ#‡AíxôêZ Ž"ýŠÓ³ÑùÈQŠl ÊÈ´ºM–£ˆ‰`‘Þù¡ð°á²GDŠ;싈6må7B[êZ³2ço8ÂwãIËÂíæ>Zé™èà¦éÑ?¹%?÷…`S}´Å?¿$ž–ÙÊruS] 6¶ïo "v@lCwˆ)8D®²ønTlhrý}AÙsX8ÂOS0¶Góè3úeòL3O×%wµOY"è@¸eÔϾ—¤Èp{íù ‘á× ˆ wH)w×ÀkîŒär¯8·3ôÏS—ì'¤ZXHåJ~[¬9ýE#‘|”b-ï¼ý‡qÝú¼}÷{øµeÜ,|yéõõ^˜a#U³fW¯´`wd¨‚y'|Ð\Ź+e˜3º¿á‡bÖÇ‘â¾ò""åLÄ e—æ¾S®¯ÄóÄÏ.w,ZØÒҖӸ⯄ïó6š î. 2N«Ëm÷•kkf‰Ç÷ÌÛí  ­gu¼(»nvÖŒîK~8îg^D¤ìJ™x\v?Q®í¬Aîb0,xf5ÛÖpgxÐîåç?œïëß×?¯¿ïô~ð‡"1Á%«ãÿñ•,D©ÂÛ¾÷ȱÇèsÄÜä®n ûöAð6ÊIï^„•…ÜWˆì‘¹½} n£¯º< +NŒmï\egöÊì)°m SRWkx±½ÏPÿ°nyÂÙ]vÃÖ Ô½ÊâG%±Åq*x—KŸ;-‘qrK@ÓÕ50lûáhp}ì0€ÇA²¥7·ÿ(Ã/H½Š6C†Ä@¨~ò¨aC"álPozÉ¢Âà W¼ û¤j ”Â6U7Êî’v¡Iìàx¿}2¾ß¿ÞG“_Iï î¯üékéýƒáýþ©êêb(ÃGL›ܦö(Ñb‹]k¦ Ð]ÔÕz°TI‡y¹aÖ•ì½Î8RÖ]ØÃY +¨âÇÓœa·Õwÿhy´¸â)[g©pxYO˜ïDÉ©%vxÖîu|FOºŸƒu^öXšâf#CÌ`¦y@*ʶ:‘Bã¼9ÐUt ]AMö’(¤…Ï´k/§»€^‚l¨¿¿š_ÿç—AÎ'Ç.[uAu Ù¢Jci4i@‘”]øxà\ºB^jå©ÅÉÄã©ýœ.îñŒãà‹“YÀKý4.U7îñRG5»÷¼ÔSîŽð®® à »¾2z~A¥÷S_rA ¡ýÆt‘ŒŠ¸Q³™{µ°G3Ì­cX8ÀŪ£-ìá ãmÕ~v€3<÷Éé·?:ÀYxw·„y'O’óÞ\–ŽšÀY”ÄŒÎ\§úG‘a”Ÿµå¾¦#GqÓh}–ža °D8—:-'?Ž„BšÂÜ”²¤FEü\B[FÑT©Hcž;Ž9¯Hùîe7±jªœ@`™à¥¨;ˆW:’Ç3Œ76—Η*J8‹{¼T瓉É㥊Rñbóx©"8`÷x©¢”–ÞU‘nˆKxÙ7&Û]8 /~¨ÂÓeͬ ‡Ä-Ô3½½IdH£ßM‘.)D — b,Ñh¤H·‡NP£ì&ÒìV\,+«-möÆ `A0c7ÿzz½cˆ×aOÇ Œ±?5RÄë4,8ã^ŽÛqY—ËH¥¡U'•?m¸°‡3. èÆ^TþL÷ø€•»h@;Àà ð©hnl±ªp½Úb‚%ÀûÑ»™X<à ÀhëD@ùøµ¸ÑEª‘"Ö¿?8íë"EM§ Éêþƒj®{übi†A\·‘¼ÍÆŸ_†tõÊe½/‹ýkëø™ÚÖEÚú‚‰Ä}Ý^#å»÷ÝN‹ûÒø#E¬ ݆RÖÆ(DÀÄpcœŸ>†zGï2–Ok¤ˆoÉç-R¨Ù´(‡"PÌÍ#"…º…i(¢ì²<"Rü¾kÀÙ +ÏðPtå*|_ð°8òN( IÄ@ä†wÂ,íÓǾ®»7¸ôg¿jŒ©;­#ˆK_p¸_ZR£n ³*pMÍx`ˆW™Xt¡çªÂ Ù[ék Â*_)Ò§9í°‹>ê6Eút‡K°¯Ó¨…„p8t2­i£vÙJ–CL‰Ö¥SŠÔÜ*]·RG¡,Ñ=šËG ˆéæ†{/[g).Ý.Šåp»ñ€½æ<\ÜãE­É…ÜKõ~ë´òi îÚm½ÚJí£X4¢E¬³{@ Ø.™˜‘¢zuŒïëß×?¯¿ïô~ð‡7#¹%c’7ôÛÑþçº\’¶u :÷*î +\üS\F*KÈÔ¼ýO^wC&Uª’øâ@ +h40Lÿû¾ú¾pÞøê ßÞJý„ÿI™ÅAF£cA÷_#ÅÃF.üï}Üec‚Y¨ 5x€˜ao<Ã=b +=IÄRÌiMx÷!ÅöŽsDH±ù4Â]bÊçuÍ ’Å/C—üûõyÁmÐnï g…ß¡0ßÑ#še¨vÔßWç‘æõ0¢Ð‰z®`D 4âJ½„MÖ‚p„+\1ά°§åÄ®tSy°nF+à„iÛ4R#Ž8^²0¼•*â›G–npô+Z‹ç¶Þ<∣li ®ÖîGÜìì‚ Q8àŸ×%ÉáûòâÆ©C-Ùÿ³òÁ<ŠëbD·A[$ÞŽ”‰©M•¡íÄ£tšï†>ûÕI`éÞ°Èœ °íšó:Eh†!=P¬smßî¦úÄ=o=_Š»|à­çë<½yëy®?'îùÓô'îyt½}TØê¹v×Û/u=ÊfÇ<ª¦oeì¨gÕóƒw=‹¾ÅÄ…¿ÝQ#ÚÐHeGŒh¦µÞAϪåKÒ&ÄÛ}Œ(JÆZìšÖðF8«»2u€aO£#Ñ×SÁ¤¨‡íú*ø8MN+КíÀØwŽ´fû¬Ú'¨›ßˆk¶7¼d—Ív‡ïÙ^XîÕf»ã5Û^”•‘Ïh¿q„q>ƒN`ÔËFû¡-¨—F¤nõìç…®å®}Ððv({*S^!âÑ"èꮓtÊG‚j…鑦:;ç{&Â¥EÏ“ZSV?EãYëá¼N%Øz¸µ|Âg|¨NÜóŒ/Øåâž·Îs¸¸ç­‡›{ö€Ÿ>q‡«ƒ¯œq€Óyxû¥nÃ=«Î.5ÀˆÚ±£V7Óõ°z8¾£Fð~Èo„чó]Q (µdsÛÓêâDߌ’R#Z&}pÖ%ü¹X\&½¢çÐ[åªfÒ®±¼†zÖÿûà5˜Áq`ÎnsÙá¨ì©B§ÈÚX>°¦ò‚óAû¦"î` å>ACÿ5U#­©\Ð(ÅVÉ¿lJOIPäåÂ{ÑAÒ͆;u„¢Ã9A1—qGÓ‰_8?¢¶ÏÒ‰7´)dzéÄ)+~MUÍeVü jÚ’×®ƒÀ" +Ç4\ÔÃlº‚qt°§­gËpá€[ÏŽÜ]Üó|î"Ïtâž·ž­>?ð§iOÜóêÚ‰C­ížµ_êYžÝ1èÚ<±€ªckvQ£ëÔ°Ÿ¨‡…Þ¯±£FW-¹–õ0¢¤)kœµ\a¬lxiªž*;âÛI£‰ª¥^N›.¸§uœô# ã]Yçl—o¤ÑVØTÙ¡“Gü°F+ç 3ÊÞƒã8{°…9 ™G—÷\Î`½q ÖÊüutäå“/HÒÒÕl¸:žF¹%S«Ëœ²ÃV™CwfyeGÓ,7tÛX D€e—×d—^vi¸ö¶ÊèЩøí÷¢ó«…[_ÖSGf#ëÓ{Úº’+Ü {ܺrbòž¸ç­+¹^íxàOWž¸çÕ•Ý„ÿù5æýý5´!pÀÕÌ;q´˜à‰{\ýYƉFZËî˜.;àêÐäŸ-âZwayP×u·hòÏ?K—­i0mÛ=¸Üoí²œM39âˆcC‰ A²¼uäe€é¨0̚ů¹9 îh õˆ#Œ!ŽÛaÚ–4mr\£³án°Õ©²É#Ž^Àk`<ó÷°ÉépM΂-ÜÔ‡§Éå€T%ÙØt0mn†kØÝÓèvÜ(›ýFVM˜ð?h´Ìí:Z[ëÀ-ð‰8x¾\}ȵiñÈóòYžì!Áš±6Ä Ø`J BŠudO)Ö“¬CĔӕŽ)Ÿ×¿¯^ÿûË ÿ`˜˜ JÕá‘ZÅGúÎ!!ê»ÁÈfñ{üÁι0R7oæDi?Ðï*—`Û$*Ï…©dOߦu ›}{“8¸xGCàS–Ô¶d'Ø£¡p׺ÏÛ%ðh´Ç¾eUÁÅ [6jÇ#ãð¬)D°5a¸óæ³_÷Êá“È\¨ÆüÇ]§ÞZ³¸¡MÛ0fd11‹ Ê*ç˜Gx#ô«gb”Um‰YlÔK‰×‰Yd é¥{æ‘Ef¼gɉYdìSx÷G *™Ã»?²È4­·Žyd‘Iá:,2À301‹veÕÀÄ,2Ø–GI²c\[X+MzªCîûZ¢FZžˆ)Z£V»<S Ø«y"¦È»RñH‘[Ã?é#E“#\!&héìÝmG¶ +NÊÛÕ#GîNòQ:3ò-ú¡j# 4GË’¶\ej²–æ¯â¯H•w ßp‘ÿ—Œßñu“ FX1ÛwH¶Ø›öê-Õð¨VµÊmÿ–8V“háà!Æ&Zžµ94ðå ù¶„‡fQGö{Ú¹…=—2=Íó9þ^äX}óÞä\‚¨²:¿Jý·Ëø.m¶§ˆ9DÌrðñª¦õ3‰˜äFU&‡1‰άuWr$"(Ò4“L ËX‰YT(|Áš³ÈT ?ßÏ,SÃÒ[`b|Óžù‘ejØ瘘ejXZxæG|ßžù‘ejØG8æGÖ­†%<Ï#Ë©áFI¦†TÙõnk:1´ßÒBZ•¼”prŠíxृ &öÄ/,ÓÝ?òÒÀγÙñÀC-°f$÷|‘—&J•SšxI`m­,y-¹#S .uMĹã^ØRðGmš–·nÁ¡'ó(Î ÝÒÿàÎZ5g½ÉÏ n ó»¨'e ä…‹/êQYî‰^ì»Å+kØ¡IXz3¿}`³†¾çÛnkxèc +ÄoÝÖðàf §dͤ#àf ›jN±ÞÎpó|-LÈϽõÛº3†+IÒê4ãRÌ©ªo[®|ÛB—bN½N«ŽíÔ]Š \†¹ßõôH!žªžˆ)$ptcz"¤˜¶q sDH1eKÕÕý#…DײãˆbªÖ°8"¤˜¦IRHà‡ëÏGŠéÙ š"¤˜šQlRLËr÷'SŽ’m fHÇ2‹çXœŽÙoé‡ú‰^:Ö©å;xè6%êÆŽqLSÁ/yéX¢SÝñÀKÇ +úðÄøÀÖé +¸°}<âp4²;‰ÇiD1㱆 ˜ù<SÃ~ÑuÈãyôóBÃQ"Ø«4ì x§wëã‚©–÷¤¬Z… „‡o—ۃʪñãý'°Zpébç»Ù +ëa™µ‰g¸¤>ß›Yë“w*&Sž¾ÍDÅd‹cÀÇCÀSå÷üYµM›W[KÇš‡¥ÜŒÚd‹BL"o›ëàWç ÎÛ§¹Û[[VݵÞïµÕ¥ØÖZîÊûí¬.Ã*WJ1ÃöÕ«,„ ·Ã ’S=y÷1£sTr:÷yV$£#:ñÙªûŒìdüO Û¡ÝáÉ +"=-ìì¼²,>EAħ‰S°oîð´ñHOC±þÕëž<æÃŽ ‰Çf„øûàc:¬<öÑG»‡C«°Ù°¿"<æ +Ü”cï’\®ã=ðQCáU›¹ ~² Þ×€TA™ö°Nù(!–\þ˜¹$\GÌ&RI¸Níþ ¹$\ç¬~\®SNÒ\r»ÎáOšK¶ë<@®€oðlD+Âñ®n¶ײƒ¯þ艗ï\ÞGO¼|çH÷O¼|§øý3/ß)ûyþ>xO±Ûg\Æý‡ik\a<ÅnŽ:ëDÕuûΆ¿hàìÏUGøÎf9·ÕCÍ9Ov“³ÜjÕåPêI,G7«Ù­£g×14¼%‚$SØ´#¦7£|:z–Ù-z4ñ}ú/sÇT᧱‚ÙîôcJ`_ãºUð ðÌ°Düæp¼ †´Êó鸆ÓxAÌh•ÁþÄ_×=£YEÌhJ¶´‡vÏhV3¯ù^ëѬâ÷럯ÿ}ý÷]¾üÁÃ7ȃ£êq¼æÄûþ‹¥‡ÄTZ¦·z¿œ.™FuâÑÉ0JÛÿš)v!N¤bzâ¡ã×ÏËôÄ߉p©€@}­V È$0ÌtRE Ö¯ˆï:‡?D®ˆ/{0íuH%nëôÉ%qÌŒåšKâã_—¿k.‰__ï\ùwøwü(A#ÌvîIöZ ^æ} µi¤|T‡¡"Ë×µU‡1-]ØaVë0Ô©óú­&jÇiwmÕa¨èÑËj†ŠWC÷pfdË$ai"LP]2ŽCÅq Ùiÿ2 µ²×pWZab!b9|Â…vö—§MW¾ºøÀ U .ÈNÖ;?¬Î%yêŠ4¼Y¨0­!Óº”ñCåR´„<õ¶‡>*]ñ’e^‡íÎwÞ>óбn°zè×¼-ãqî`‚ ¡Áx™‡>ãÄ@‚»tö$:@äRèM§ZÂu¬uôƒ,[åŽ+OŸH¦…®»âd3œ‘z¡g9FõÈÔFc½:ÿU¦Þ$O½­XJn ã7×Ân)Ú†)nwôÛ{Ë:É.űµÅÄÊTéèê°NÂIöQC=ŠÉN‡Öi?ìt$ñy^¦Nz,—#mÍuç©£±ìÙZ†•;Úýáö¹ü韜Í^>ñÛ:÷º;Ɖ^Á÷•ÍÜÆ—2Næ§Gu*"À´Z‡eœ~ö¨Ë8KÛµ †Úô ÕagÅyü¨ÃÁpxÀÎbŒL¨l³¡ihyr·Ê4y´Í˜† ÝÖ ëí™*Ë<1Y2NÆ]E›¡ëÙÞé(ÓJô Oˆ=Ù媙‡—»ù®v'zã•èû’[LÞ>ãð6EhzMk‘ç7 ãQáT—vG¢!£Qäcoa¨ð°³rªØh%ý[`šì2åDCZ÷ÂãcEÖ7:²`<éкezQ†‡=…+&ü÷káˆçs-©sh8-ß–é(¾&¼½Ó ÇÒ,°Iü&Z‰m)ë;‰FÃ…«¿7¥£²Æ³ìýœX £î^H°¬ñhVë0ÝëÐaøÈNS†ÛÌÝÁo¤ÓnÝù¦½VæË—;ÞÈ\ûèŽSÆQg7OtxcÍtÃÃþMv<¬±ø»%~[ã^wçemÐ5=Ö—²Æs–­:,k\˜{ÕaYc=çV†Êx:5Á²F†“Gu*\¶ìßM°¬‘ÛyÈþ2 •ÍÍ>æmŽ†zÇb̶§ ÒiäqÊ–™AÆaS4ø“™iÌ&i¼lòÀ·¡1IÏ<ô¦†¢ù(ƒe^6Yx¨`lÎÌ+C*“ÁàÎÛ'‡>•T±×j‘!W†œðkÎPUf—xeH«°eîÌ+CÎÙ¾OÚþ!ßÑUFyeÈUe±~™Wˆ¬]ëÑj‹iüï× +N¹äßÎÙ°·/͘¦%2âuÂ8Š÷~µÉ-_ÅIÉg:Åƽ/C<žøÃúú‰ƒ¿ü¨CåC›êpø`íkËNSærínÎxØ`=šéÎSççê¦;>ÈϽuçÃmE2FHgÚºáa„cøº9~aµ§Kü6ÂGO¼Œîº}PW²ÁÒË£)ç#(øX«È÷ŽMóºpJà¬Ñ·I0Ö>6°K–b¢£ð6Eä{³9H3@<{Û@ÜÞ¾Îýrä}k”µ»ÿüÕ°»Þíø—аµÚÖþAc©";¬²UƒÃÒZ©[5˜–S4`<ªÁag GÀ[u8ÜìØ?ëlxYo{Œ #;æ^ g·½U‡ÃÄ +¿ß©6½],.ecŒ#ê°Œ¬Õ-:‹-„Ž­Vj¬Ìì¬ûW µª ÕaÚÑæV–¥5$4r)ái›Ö4Ë\X8©Î05Ãåj41Ä›qO´†k¦eüA›¶ÂÕ6.S;î.=j µ†ÇPËô‚µPyæ•ÖÖÔõ¡´’ù߯¾þ÷õßwù>ð‡! ¦s`õušì_¦†CÁ¢`D'5µóO\c›ËLÈDÓUþãŒ)Àµ]íœz/wß½Y^mrYò–ÄÆèÕ/ÊS¿–èˆ>Âè?îÑkãïÌq~#e]óΛö¼ðCEÏû÷ÁGƒrQ1L6Åù\=Z`0˜'Ëœw—Z 8ׂvØïNµ óû‡]TE¤’èæÞÆ7ÞþR>ü(Ùñä‡Y·ÜMm%ì\,ø%:OK(w ‰ +û-FäC£„©„¶os Up£àúrÂ+ b]6+HpîN¤ô–îD*!ÁÃÝ4—€è8Uz"R ‰+ç+šKH ×/_¯\BbÂ#‘JHp6½œH%l/¶´¯X.‘Óœ\ã…ƒkÄ`¨õŠë°šnrÂå4 òžðˆO§•g\ñ‰9bë‰×ØX¯ËôÄkl<«=}æ¡ÓPƒï15®©‘¡âgÝS_Â!ð!=í!›Íx„+œöšutûÄ+\¡Ïa[‘\3®™ò„ŸýttÒˆlµq”2$dvÉßΑò‚Ñ1•ì2Α’ŸñD^Š‘Ò`æ®qpË¿ú=Sn–¹‹öt`%»ŒÄCÁ1šbªUîz@l5lpœKÍ@¶>GZïÕe„ŽrcOqÚÑAšXMurVšC.l¬’YGÚ…èyÙŒaºã[„³MSÆQ1à÷qÄf:üÿ8+σ._uœ2v®1)ÞÞ¿az.VgÞ´l<æÑŽ¼†%¿VXrâ# œCxߧ[.!D¨ÝTâèÌáû܇ ÖyÍ+ÂöË°æý¨Û—[¶´ÊŸoÔü9[ +¸çCŠâ`3è挩§Ùa:zYt,ç1-º£åÑ;6O;¶EÍ(>ª ³JhYô‚‰BU .~ÚÚ”–§Kß¼\ú`;Ô–\‚0Y.ÇY§K_<㨠<£X1¦\»8'—]²Ü%è!E&}Pïsÿ–"½Î©y"¤H° Ïò"b +‰=º<RHà¾õ@„ vö7ø-E‚]ü#b†ôºUÿ)!ƒŒ¤¡· É5ÛG„Éu ßS$×Ö)m"¤€e,~EcŠä:ð–âäz!Åä:¡îã,T;>·^ë·éuç¼W<ð¦Øõ¬;y“ì\»‹qœæêžy“ì³øçÞ$ûÀ_ñÈ#mÍ6ß<¦d;qØV Üéj’x“lÞVܦjV7òˆ73ä¸lf…"Ž0¶ 2€E5hDsÌð æjl’°Ýl¼¶¦ÉÆ6Ö¢þŒè×C’Šw‡™ìEb½_ù¤í…!Òc,=ê9'ãA³ØµQPG’Å^$¯-¶ÅtÈ´:Ö,v‚̳¬T¨€›É.X|ïPä§ÕÆ^eÕKnÛ%Èr_(æ´Ûsï Ùî’(Ùµ_Óv» ùnLåüêÓvo^¶ûʬb)Óv/œúyØ¡ÊVq¾áŒWÊbMP‘zú„¯ÇçãÇãïg~&ü‡ýÇ)©éD ¸¸¸¦`ÅbßÃmNª–Ty& TÛ°¤â¨˜ú›¢Á;®ÇÖ¤ÙÖ b1Ê85zZ\îfšë*DU‘U2Íå£rÈÞ Rþpq*…ÜHaê³nV¥]"âæ"¯u•|ëw)ܼ֙—ËZó\æÍ«µ¹..{W·xÕÁ„ŽRMîÏ7ž=›8Á阞q´HèÃp ‹Í/ðŒóX¸‹½é&x^-MÁ—´×8­P^ Åÿªû ülg +OõÐú^µ±%»—ùט0kãÀç5K£KPmìØilj)ã®+ƒ®=¿¯Öfit,Zx”úŠ˜Bñú8@#bŠJc‚ýü†LOL! +[¢¦k–F—›÷›éÓº&3à’b÷a…l3Ï0fÓl^Ö<Î0.q¥ÝîAÀ§™Æë^9ÛüOG‹S›2ÏvÕë=Ï8º»)‘e¬¢HL-XÇqRŽ;çf8>`_ڿꚇ1åc1/¯_‡O󴟇a·ó|ÊB8ŽúyÖøÍЬgØÂû17ÃqÜ£:•h1?_gž_µŽÓÄÎç,†ãVdÎg1&€ÙJŽ7dMKªtÜ—Ýji°~™çVV0°&ÊKÕõ°‰s¹®õ°©4§¼¢žU±¸°§%Û  +\ò̓¶ãž—ŒKú.îÀ«"fl>ènj6ÎU¦Z™£ßqájjÊÉŸWÓºx\MM5aíéîi6?[ ,˜t,ðòžÌôèò^BÎæWî¨SÈ7/!¿*ë2cyµ2˜½R¦o^L&¬MTðýþñdÝ·úMs6°²ÿüùøýù×ã—ÏüüøDàùùñÛƒÍÞó_<îùýéŒB>Ÿ‹ºÜl‹Øvèî·¢›“žßúuLÀþ3G‰Ý£O~n{Z¹köû߃œ0ð!øã†ø§0~]ÖÌ“fþ?™ôÇ:qé[ endstream endobj 298 0 obj <>stream + + + + + application/pdf + + + RBPassUp + + + + + Adobe Illustrator CS3 + 2008-07-03T09:32:55-04:00 + 2008-07-03T10:03:55-04:00 + 2008-07-03T10:03:55-04:00 + + + + 188 + 256 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAC8AwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7 FUj85yXo0ZYbJrlLi5urWD1bRJHkSN509Zz6YYqqxciTt4V3yGTk5OkA47NUAefu2+157L/j64Mm 2qILq1dXC/WUpqp9b0lSnH0reP6xHVxxjb0+rftUerzdqPAH8zY+X07X75bHz3ak/wAf3HOv6UT6 1ausnH6zHTVj63pKlOPpW6fWI6uOMben1b9p9Xmo8AfzNj5fRt85bHz3ZL5n81+drHVrm20nSfrN taJGy8rW6la6JT1H9KWLjBHxFV+JieQ2BrTLJzkDsHD0+mwygDOVE+Y2945oGfzp54F3evp1rHqV rbPDbuosbuIozRQmSUgNK5Ky3HxQgM4VD0pUx8SV7No0mGhxHhJs/VHvO3yHPluiTrvn5tNS5vbF GBuXj+rWtreRzUtreSdJTSbl6clzEsfEr8SmnxcsPFKrph4ODiqJ6dTGtzVcuYBv3+5Bf4y/NJCY ptDiEklEjkS0vGjjbmFLvxZiy1VxQU2KtXjg8Sfc2flNNzE/tj+PwQir/wA1fmCmtyWkenCPTvrf pxXaWN1M31dJuJd+LU+JUfoOhUjqMTOd1TCGmwcF8XqrlxAb0vvfNvnRNF0dktUj17UZbqtl9UmK lLdHMY4tIsiK8gjBd+NFbkQtKYTOVDvRDTYeOW/ojW9jr8Pft5dURo3mLz5qd/arJYQ2FnPNKZhN a3XqQQRCvB3kaFGkcsArKCvUitCAYzkTyY5cGCETRMiAOo3P27faoax5n83x3l16GnSNBay3I0+S OzvnDPF6EcZmVHjMsbrcTfs05JyTlxDFlOXcyxafEQLluav1R8+Xcdh896tOfJ2teZNUe+OsWi2k UBjjtR9XuLd5DQ+pIRMSOLbFVWpXoxrksciebj6vDjhXAbvnuD9zJcscN2KuxV2KuxV2KuxV2Kux V2KuxV2KuxV2KofUb+20+xnvblisFuhd6CrGnRVHdmOyjudsVS7yvfavdW93Hq6ol9bXJR0jpRVl ijuUjqCQxiWcRlh9rjXviqYWFtpkSyyafFBGtxK8s7wKgEkpYiR3KfafkPiJ3rgAplKcpVZukThY uxV2KqMljZSXUV5JbxvdwBlguGRTIiv9oI5HJQ3emCgyE5AVexVsLF2KuxV2KuxV2KuxV2KuxV2K uxV2KuxV2KuxV2KuxVI7kHVdfS0pXT9IKXF0ez3hAeCI7biJSJT/AJRjPjiqX6zcXVv5jm0yyLRX mv28It5k/wB1/V2kW7ud+jRQyRBexfgD1wqj/KFpBp1jd6RBGI4NNvJooUUUAjmIuo1H+qlwF+jA qe4q7FXYq7FWPwea7q5eU2egahc28VxPa/WkewVGe2maCQqJLpJOPONuqg4qwm6816npn5kXL6nf y21hb3sqXVq7N9Vj0caZHJDc8KFeTX7cPU61JT2wqnP5Z300l7rNnPL+kJ42SeXV7fUrjU7KQzSz UhjE54W0sQX44ohQArU9MCs9xV2KuxV2KuxV2KuxV2KuxV2KpONW1e5vL2LT7K2mt7OYW5mmuniL v6aSNxVIJhRfU4/a6g4quL+a3NRDYQDsnqzTfTy9OH7uOKuP+LabfUK/89sKpX5o1nzH5f0abU5L qxuTFx9O0FrNE0pJ3VWFxKQeNWJ4NQAmlBiqeaLpqabpscBkEsp5S3VzQL6s0hLyykDpyYk07Dbo MCsds3kudf03zM7MI9SeXTrGFqhVsWia4jloejzSWwetK8WVTuuFU5sP3PmTVoFPwTRWl4R39SQS W7f8JapgVN8VdirsVdiqReTP+OPcf9tPVv8Aup3OKp7irsVdirsVdirsVdirsVdirsVdiqldXMFr azXU7BIIEaWVz0VEBZj9AGKoHy1bXEGh2oukMd3OGuruM/sT3LtPKnyWSQgYqmeKuxVIrRRrGszX 0g56dp5ktLJGHwyT7pczUI347wr/AM9OzDFUptJXvtMtPKfMmWL1LXVXFeQsbNzDVq9Gu1CAf5LO yn4cKp35pVY9FNyAFTT5be8YjbjFbTJJLxp/xUrDArd3SLzRp0h+Fbi1urcmuzSBoZY1p7IkpH04 qm+KuxV2KuxVIvJn/HHuP+2nq3/dTucVT3FXYq7FXYq7FXYq7FXYq7FXYq7FUn80Az2dvpgFf0pc x2sgPQw7zXKn/Wt4pF+nFU4xV2KpT5hvLhYYtOsXKalqTGG3kWhMKAVmuKH/AH0m4rsXKqftYqil Gm6LpFKrbadp8G5NSEiiXqTuTRRirH/K0N1ba/qFxfx+jea/DFqIhKqHj9E+gYCV/wB8wtAG3I5s xGxxVkmoWUV9p9zZS/3V1E8MlOvGRSp/A4qkP1ya50Xy1q81GlSe1e5UUP7y6ia0Ye3GS53+WFWT YFdirsVdiqReTP8Ajj3H/bT1b/up3OKp7irsVdirsVdirsVdirsVdirsVdiqTVF35sp1TSrT5gy3 r/cGSO3+58VTnFVskiRRvJIeMaAs7HoABUnFXkup/W9R0tdU1S8ubhrya0sYrJRAiyskIvpreOkV R6twpt6V3KrzLU2KG9S8s3baDZWmn31/b67aXL289kLy6ubR57GN76MmC7kmJimMUfFQ2yyAVxVk er63qdhb6T5lvFtrvSYJYzNqNmXik+p34EVTbycwI1keKRyJiaJsuKWcYFYlcgw+Vtehpxm0i5ub uPrTmkn6SgpTsBIg/wA6YVZaCCKjcHocCuxV2KuxVIvJn/HHuP8Atp6t/wB1O5xVPcVdirsVdirs VdirsVdirsVdirsVSfyuTPZ3Gpk1/SlzJdRkdDDtDbMP9a3ijb6cVTjFUi89XsNn5P1eaY8Y2tnh 5eBnHoqf+CcYqkWn6dHc69oOlXJrcaJbSa1qluKMgvr52WIn5SG5dR2ouFUXcPFbfmZDMVIhnsFt pGr8AuZ3keJuNPtNHZuhav8AIvfFUVZ6VDqXlTU/Lc+yR/WtLKsOXCFq/V9j1pbyRnAq/wDL/Vp9 S8rWZutr+0UWl6pJLCWIAVYn9p04ufniVRFvHGvmPVbRxWG9tre5MbdGc+pby0/55xRA4qq+VZWk 8t6Z6hLTR28cU5JqfViURygnxDqRiqa4q7FXYqkXkz/jj3H/AG09W/7qdziqe4q7FXYq7FXYq7FX Yq7FXYq7FUs8y3NxBod0bVzHdzhbW0kH7E9y6wRP8lkkBOKo61toLW1htYFCQQIsUSDoqIAqj6AM VVcVYx5/WC4sNOsLiRY7S5v4Zb1mOwtrHlfy8u/Fha8DT+bFVHyNbzyX+uatdxtFfX00Czwt1RRA s8SHtyjiulianUpXvhVTNxpF/DrMMuo29nfajftHp4klT1Y57Jo7aAhCQWpc2/qKnetO+Ko3y5qI uNVmlKGD9J20d09uTXhd2zG1vY67bxcYUOBUFog/RHnbVNPNVttSb6xAp7SOGnrUdWlb6yN+iwgY VTrUqw+YdHuK1SYXVjx/ypUW5DfQLMj6cCt+XaxpqNmw+K1v7ireP1lvri/ctyBiqbYq7FXYqkXk z/jj3H/bT1b/ALqdziqe4q7FXYq7FXYq7FXYq7FXYq7FUn1Kl15g0qypVLYS6hN3AMa+hErD/Kad nX3T2xVOMVdirzzzE02t/mjpuhxkPYWNhNNqQHQerNC5VvEssSJx/klY4Vb8t22kXuiaz5s1ayiv raWe9uLFbiJHIs4JZShCupoz/FuOq8fDFDI9O8q2sPlBNEMUdtNLZrBcywooIm4UMopSrLISw98C WOWeoPDruj6jIht01N2NxEOkVxIBa3tvQ/8AL2luw9+ZwoTXznazx39hqFpHzuqOkKJ9uSe2Bu4E r2DRxTw/89cUpjrt1bzaLZ6tbuGhhntLyK4ANBA0qCV9xWn1eR6+2BVXTw0PmXV4B/dzRWl4f+Mk gkt2/wCFtUxVN8VdirsVSLyZ/wAce4/7aerf91O5xVPcVdirsVdirsVdirsVdirSqFrSu5J3JPX5 4q3iqT6LW51TV9SJJRplsbc0oDFZghvpFxLMK+wxVOMVdirzCHWZNP03zd5xgUNf3SxQWCNQlpXU y2VRvTlBd24cD+U+GFCdeYZYbPTtL8kaKA17P9WtVDKXhgtYfjdrjiV2kht3VUDBn3pQAsFKZMmo eXDJdy3VxqekOOd761Zbi3enxzR8RVom6tGq/B1QcfhAVjvmmEvHcLp7LMRc22r6OY2+FnvQ1qvp sNmC3TLcMQafEMKGU65Mt/5XOpWQMpjjh1OzWlC5gK3KJtuPUCcD7HAlB6ZbQ3mjax5djcegUkFj IPsmyv0Z4GWgpwQs8S07JhVVsL763qWg6m6iI6ppkvMCpBkb0J407/ZX1SMVZHgV2KuxVIvJn/HH uP8Atp6t/wB1O5xVPcVdirsVdirsVW+mta715cup60p4/hiq7FXYq7FUNql/Fp+m3d/KC0dpDJO6 jqRGpYgfOmKqWhWElho9pazHlcpGGupAa853+OZ9/wCeRmb6cVR2KpV5ollXRLiGFuFxelLKBx1R 7pxAJB4+n6nP5DFXlcl613o+n/o6MA3Wqm8swwBiEtxeyW+mhgDvGLK1cOte64UMzu4bm1826Rou jlHngt7rVNQuLwNJzdylukrshSsr8pFHZVqAtABilPm1PzBbryu9HEyf9q+4WZh4kpOtp9ylj7YF YP5oFugtrzQpq6TeSTaZdQcSpsbq/ASImJwrQcrsQs4cDiwFAObYUMv8iX8d35fjWNWRLd2jijb9 mBwJrVa96W0seApS7S/9xlzYMaqljPLoF3UdIGYSac7lR8RCmJB7ynCqpb/6Na2QKlV0nW5YXiJp xjumlgtwPYR3sRHt9+KsuwK7FXYqkXkz/jj3H/bT1b/up3OKp7irsVdirsVdirsVdirsVdiqT+Yv 9IfTdMAB+u3cbzd6Q2v+ksSO6s0SRn/XxVOMVdirD/P2qi1jeRXKNpVncX4dRulzMhtLME7U5tLL T3XCFY75G8v/ALvyXBJGEW2tZdZmipQKy20VhYh0oKN9XlZt/wBtWPXFWZeX4o7rXNc1oHn6sqab bv29GwDBwPldSzg/LAq3T7nzDqNsdUt7+2trK6dms4Z7ZpQLevGFw6zQH96B6m/TlTtiqB8x+WNV 1q0uIbq1tEuZYWtzqlrdzWk3ptvQr6E4Kg7hXZgDuN8KvL/If5r6tpDXOlXFhBqN4gWH1obox281 1CzR8UPouA7K0MCAVWqj4utFDLV8w65NreoaT5j0EaQNWtoZX4XQlA9O5W1a7hkWNkaSIXFuSCVK 8K+FVU0TULibTfMZuKLqNlFb6ndxqNlvbPkhCgn7D/o+ORK/suDirP8AAl2KuxVjPly9e00CeRLW a8kbVdVRILcKXJOp3J6u0aKNurMBgJpnjhxHmB70ws/MSTXKW15Y3WmTzbQC6WMpIaE8Vlgkni5U FeJevtkRPdsngoWCJDy/UQCm2TaHYq7FXYq7FXYq7FXYqk9tW7803c+5i0y3S0iPQCW5InnB8f3a W5HhviqcYq7FXlf5gXiXVuLJx6n+KNbt9FijrRvqdqxilavb07n1JPeo8cKE/tdfjtrrzn5hkp9S 0n09Ot4x8PP6hAZ2A92nu2jHywJdp1peWvkTRtEkkYavrKJHeSioYSXIa51CXrVSA0pU/wA5Ud8K pnrMdjd30GkTrEmj6dCL/VI5AqwCNOS2sbA0XhzjaQ+HpiuxwKln6P0uaxfUB5X0aDSiGeOa+ZbZ jB2kkT6q4jD9eLNWn2qGoBV5tqel6z/iq+802+lxWUK8L2z0+5QzJc28yJp9/S3KwkrQxv8AvClO RIA5sSoVPOUV/Jb6RFLfieC3v5bTTtRgLQrHFfWpljUs7ys0bRXEZUM3SJgSa7Ks30rUbS91XQPM dyVgtfNunvp15Z7hP0gEEqiviY4Jo99/hUDFLL/KsrS+W9MaRuUy20Uc5/4tjUJIPodSMCppirsV Y/5ThSfQbyGSvpy6jrCPxZkajalcg0ZSGU+4NcSExNG2HflXdSvqf6NnuLu5azsFEqSOJbJQrxNb SQsQxbmrH0yHIAUn9oUxsJ3p3PaUQI8QAFy/zut3+nbr5PUcyXSuxV2KuxV2KoXVdV0/SdNudT1K dbaws42muZ3+yiIKk7VJ+Q3OKoiKWOaJJYzyjkUOjeKsKg4quZgoLMQFAqSegGKpP5UHqaQuoMP3 mqSPfsT9rhcNyhVv8pIPTT/Y4qnGKoPWdQGnaTeX/EObaF5UjJpzZVJVB7s1FGKvPdUhs9P1/RVn YXEflWzZ51UV5zPbyXM0hJ6OHtYGr1/ee+FCGNjM3k3R9BlIe41+/kudUlVjWaF7qhuFPUsWlhk+ QPvirOYbmGXV9S1q5dY9P0mJ7OCUn4RxpLeS1HbkqR+xjbxwJeaa958ig1n9CTmG31G9uYrvUYrx uUazzQia2t5oYyLiRLa2jj5JGvxyU5Mq15lDJIZH5x6pc6q+svGwkRtR028t7OORDs0LRqIIAp6S OkjjpzxVA+eZ9T1OHTdYg1HT0sfXl0u8NmxvI0tL+ErM00/KEFVaONyoRTt9quKsaErXdl5g8v38 fq6hb2D3kUBBipd6PMWnjhcqtUmklk9Nh/ukhf2GAVTDyJcrr/5VQUl9KXSdZEdvOQFaF3uAvqFa 0Bh+tMwr/KMVeieQdRkvNIulnQRXlrfXUd7EDUJPJKbiRAfBDPxB70rgKWSYq7FWBrZ6jP5bSawW Rp7LXNWuOVusT3CL9dvY+UKTlYmb95Qhv2eXH4uOQyA1s5WklEEiXIit7rmOdb/juSXyL62lT6ZI Q/rXC+lJBeWVxYyN9aMAd0uHd7aX0xCvFBQ8RxXqBlGPanZaypiXl3SEuV9OY5/rerZlOjdirsVd irsVYd+a3k7WfN3lG50bS7uC3kmDh4boP6M3KNkQSPHVl9N3Eq0VvjRailcVTOPy9qE+madFdapc Wd3bW0cVyNOdUheRVAYqJUkalele2KoHSBc3XlbXLO9u5bn0ptQtFuZXCy+khZFq6RtQhf2gh+Rw q5fOM6KFWCwVVFFUXN0AAOw/0LGkN/40uv8AfNj/ANJV1/2RY0toa98yC+NtHfPZ2thDcRXN1Ik1 xK/G2b1kCq1rEv8AeolSW6VxpXnkHmy3m+tarKT69299q96sivxit45ovqsUh48TyTSY4j4hyafC 2Ksl0q9RY9PvrMG5uLeHhpqyIyACKMWGnwOxC09drx5nPUDY/YxV35o+YB5V8uaR5X05vX1TU3pz k4bxw0luLmfkQpV5WDShtmUvUjchSxP8tNDex0JtcvHmjl1IFzNdHU4GMMjlluJ9QjjNqxeqV5RM jIq1PXFDNdOutTstQEcLLY3juEf1UWOCeSSgt/rMUPKJlnpwju7fj8VEdKjhiqO822dvrvlq81i1 iaK/sU/3J6ZJt64tHW4eyuAh3b4P3bg7cqqSjnkpYjd6okWk/wCKhAbvUdHH1yVXWs0q2jrp2sQy LvQSW3pTKp/bPLfrihS/L/SI7z9PaPpeqyQwazp6X9iIfReGRqyWs87F4pHpJdI0gKkGh9hiqcyX PmzQfN91a3d4YLbWY4rqOZZYyhu0RopFaQaawLGG3QgBBQLuTUYqmv6b1r/q7/8AJaP/ALxONKjN I1bVpdTt45dS9WNnAaP1UbkPCg02D/k4vzxVG+Xb8WGgT3DwySwrq2qicwqZGRDqdz8fBQWYA0rx Fe/bIyNNmOHEavdJPKFxapqn1KTW7TVrSRRwt1u5r65kuUkWSO4e3lEhtSvBmbi3ENQ/DQZTDnzt 2WqiTGxExPuERXdY+r76ehZe6p2KuxV2KuxV2KuxVimiU/QXmKrKo+vanVnYKo+Nt2ZiAB7nChiX +i/8t1j/ANJtr/1Uwq7/AEX/AJbrH/pNtf8AqpiqXa7Dc3loNL0pra/1HUmFvFaw3UDn02/vnfg7 MiJFy5PTbbqSAVU50n8sdLsDb6HcOdSvb1YrjWrmWoC2tuxYRUU7+tK5jXn1TnvVcFqzZ/8Acj5m RNza6IvqOexvLhCqL84rdmJH/FqntgS+d9c1L/lZH5jTiCcx2V7L+i7GdWKhNLty7XU5PFaJJEkz FWIr6kfYMCUPbFlvTbLPokmr30Ea8YJ0jsEtXiWnwrBILX1I6L8LRqOQ+y9DXFWNXsdldWLwI0Sx gSG3VecVtHzcRiaJSTLDbSSH6veW5P7piGotOZVT3Rry9mjF9BG9xqUECfW7STiJNQsDyChwSqC8 t3DRvU05Bg3FXUqqwvWJb3R5bDUHRZ/Lt5apa37rcLGr+mn6PnueThWRzDNG0kTDl+5qR+7NVWJ+ SdQv9C836WtreW1tGEvrFlWa3MSQTlLtRVjxUC7SZBX6MVeq3+t3N/b/AFe81PT5oeSuFa5sdmU1 VgQ1QQfDFUB/ov8Ay3WP/Sba/wDVTCqYeX/q/wCmrPjeWjn1BRI7q3dj8lWQsfoGBWV+TP8Ajj3H /bT1b/up3OBKG1PztFGrHRbKbXFiKGafTzDcRL+8pLEeEnP1RGCVHGlaVPXK5ZO7dzMejJ+siH9a x+jkmnl3VLrVdIhv7m0ksJZmk/0SZXSRFWRlQOrqjBuKgnangSN8lE2GnPjEJmIPF5plkml2KuxV 2KuxV2KsV0N+Gh+YX5cON9qR58uFKOxry9SDjTx9Rf8AWHXCrFv0t/2sv+n7/veYod+lv+1l/wBP 3/e8xVVs9S06K4kuZ9RuTNKoif0b7ThWNTXgJLm+u7hASan05VxVMrPW9PiWaS01LTtIjmAM1xdX o1K/cLsqkGVlUrVuP72Qf5OKpL5/8yXuh/l3q82niSyivi1uutap+5uZri+b0vVjgRY3HpK3KrhO KJ8KMBil5v8AlPp+lIWvHg+BEjt9Lspkdy5m/eNPcW8Y9SUIiIsUaj98VL0UKzqoet3Vyscj/pCd f0hRWCahrrafeFT4W9mvoRBuwVvi25b4qkepkmWadWeWjIZGnQNcAuhVI7qJKrK/plkSRCVuYeUd WkWNiqq+UdRuJJmt7YltTsZWn0+N5FYyc1Dz2bSniGW5gUOknR5Eeb7NKqsukm01E/SsSiXy5rYM OsQSAqsMj1jMzofsVb91cKehoxpxclS8d/MXyvq3lSafW7W4uprXQJkuZIhJLI5tJJg9o1frETke u8quV+IEM37QOKGdR60skayJqVUcBlP16mxFR11zFW/0t/2sv+n7/veYqmGg6l6msWifXvU5SAcP rnqV9uH6Xua/8im+WKsk8ox+poV3HyZOepauvNDRhXUrkVU9jgLIGilWl+R9e0e4sZdP1qOWK1jh tZYZ7OJGe1SSMuvqw8DyWNGCF1alTvvyymOMjq7DJrIZARKPOz9R579D9vJmmXOudirsVdirsVSz V9Yn06aGmnz3dq0cslxcwenSH0ylOauyV5B2Pw1Pw9PCMpU3YsQmDuAdufVfoWv6Zrunrf6bI0tq zFA7RvHVl605heQHTktR74xkCLCM2CWOXDLmkuhvw0PzC/LhxvtSPPlwpR2NeXqQcaePqL/rDrk2 pi36W/7WX/T9/wB7zFDv0t/2sv8Ap+/73mKu/S3/AGsv+n7/AL3mKu/S3/ay/wCn7/veYq8r/MS9 1Tzj5z07yfpU7XIs+M107TySRrJPRQxre3yERxt8RQ1Cu1Rtil6L5Z0S10zTQonlEXpCVrqBOFy8 V3J6cENsnLlHPeKlAeVYYQiCjEvihkWlLDHZFolv4LV2LyPpEMZsbetFVI0KF7rYDnKscis1SaL8 IVSPVbaG2eG49S1msbyKUW88IpYzwsC02yljHHX4p4eRC09eIgpIuKsZSdtJ8yQhZpIbNlP1a5mA MkAjdpE9YLsXs7iKRJPiq8YKIOJ3KvUrS8Rkn1KG09eyvF4eZNFC+pLBcFQryrER+8DJ9tQP3icX TlX4wlL7xXgWzpcwXWmzRtb6Pqs7Frea3uFAbT72ValfU4r6M4ruACC20qrH9KmutLhk0i4lnsBp z+ha29zeOkgtgB6P29WtQwVfg5onBippihG/pb/tZf8AT9/3vMVTDQdS9TWLRPr3qcpAOH1z1K+3 D9L3Nf8AkU3yxVk3kz/jj3H/AG09W/7qdzgSnuKuxV2KuxV2KuxVI/M/lWDzALZLq8ngtbcszW0R jMUzkrw9ZJFkSRU4misKb5CcOJydPqTiugCT9nuRmi2Wp2cM8V9dreD1QbRkiWHhCI0URlV22dWP 04Ygjm15pxkQYiu/ruk2gcv0L5g4Ehvr+pcSDxIPqNSjc4afP1F/1h1ybUx/nqf+/pv+kp/+83ih 3PU/9/Tf9JT/APebxV3PU/8Af03/AElP/wB5vFUv13Wr7SdOe6aS4llYrDa26XE8jS3Ep4RRKsOs TSHk5A+FGoN6bYqxH8u/L0VuL691CZrmS9eS71m9PKR3jkPGTjRnJkmVvRiCsSfVkAJaLFWXQzz3 pa7vPU43MjzvBFTnS4P1dY4Wqoaa5C/VIHBAWBGkDLzrirIrf1pnktpmu73UIwPU0zR5/q1np4AA jgMyvbBmUU5BmLHr6YWgClItQtNQtLyW3uRcxJqJ9SWG4jSXlNGK+tEbP0/UcUqGi4XC05Okij4F DzrzHHf6fHFPb3QnSxKzwlCJWQxqOFzbSKoSWNRbqXov2E+HgFliiVejeUtZgu9IttShY2YtlRLX U7cG4iitnUPHb3sIYO9uvI+k/wCwn2njcPVVMG1G0kluVszEt7LV7o6fd2V1p1wWpVpbS5ngKsx3 fgqt/wAWNiqGRLqL+4UWif74s3W1hBJ6iGDWUjHuQuKr+ep/7+m/6Sn/AO83iqN0Vr86ra+pLKyc xyDXDOKe6nVrmv8AyLb5Yqn/AJM/449x/wBtPVv+6nc4Ep7irsVdirsVdirsVSDz1bfW/LN1aC1F 807wKbY8t0+sRh5PgDt+6U8/ssNt1YbGGTk5Wjlw5Abqr3+B+/khfy/SeKy1O3me6keC+aPnelPW P7iE7iNUUUrQkV5mr1PLI4uRZ64gyiRW8enLmfx5cujtBUvonmFBWrX+pAUVnO8jdFQMx+SgnLnC Y5+i5f8Ai7/pB1H/ALJsNod+i5f+Lv8ApB1H/smxtXfouX/i7/pB1H/smxtWPaxbpNcNHHKTcRrJ DEocW5QyLxmlkWQ+vGEjDfE8Ua9QZOLFWVRNvBPFbfUYIl9M8GJi+B5JJR6Vtwr8SE8iLb1Nyxe6 kAoOQVMrb/RIucUoLxK7xXECg8QFFvPdwRnqW2s7FP5Ry+ME4qjGghtYvqdwY4Ui4pcQSTztZWrS /FFaC3hZPr1zJUyScjUk8q0KjFUHqcVvFbunpwWkT0LsttcaTbyMKMK2l6FtnkDAEOtzHIKfC4xV jHmKwuLhA91eW9lMh9ZDITHeK4Cn139T6u0nEopEtusrtRQzy0BxVg3lvzFfeSPMMcWqTwy+X751 t/0lp817BBHLKzOpMafVpVUtyYruq/FQfZCqva5oL+4RRLPdSou6CS11OQD5F7dj9OKqX6Ll/wCL v+kHUf8Asmw2rv0XL/xd/wBIOo/9k2NqjtD0+SPVrVz6tFcH4rS+jH0tJAiD6SMCsh8mf8ce4/7a erf91O5wJT3FXYq7FXYq7FXYqk3mnQYtX0uaFbW2uLp1RF+tAhWjWaOV4zIgZ0DekNwDRgDQ0yE4 2HI02Y45A2QPL3EKPkzRbvR9PubS5hiiZrhpU9B5njYPGnIqJ5JnUc+S05b05UFaYMcaDLV5hkkC D06159wCE0NOeh+YU48+V9qQ4cedauwpx9OflXw9Nv8AVPTLXFYt+if+1b/04/8AejxQ79E/9q3/ AKcf+9HirjpNB/xzf+nD/vR4quuIbiCBGaJoYICDELiJhBHKakSqLtNLtI3SlVYwycew7FV1IQkJ jDs0zSiB7eR3eVmUpKtlPJ6ck9xMCBLesAkcZorLu2KrDex2tst0gjaRKy25jQmCV7YLFHLClFJs 7IPwt16zykMoqQzKtK/1GJ15sNSRJmlkEi84gSfXSOdqxxNU1vb07BvgSrBVRVUihTT4o70M5mNG uL+K0ubB/ibkwF7OrRTxLsFF58LdTJXFUGtzpQmdNN1AcWbnLBdXVtBDG5HULYX1pBVhvVImqepx VL9c0jTtS0y5GoX9rqrTKUNrd6lbXAU/F/vKJ2aSGuw5fWif5lcbYqkf5X3Iu7G+0Ke3Fze6DN6A Y20UszWr/FbPL6emXjcuPwsXetVO2Ks2/RP/AGrf+nH/AL0eKu/RP/at/wCnH/vR4qmGg6b6esWj /UfT4yA8/qfp09+f6Itqf8jV+eKsm8mf8ce4/wC2nq3/AHU7nAlPcVdirsVdirsVdiqSedW4eWL5 +V2nBUbnYHjcLxkU8lPOL4V6v8a/DXcZDJ9Lk6T+9HL48v0/DzQnkDUm1HSLidtWXWCLkr9aSP0k A9KNgqjnL15cz8XwsxWi8eIGM2Getx8EwOHg25fP3e77VPQ056H5hTjz5X2pDhx51q7CnH05+VfD 02/1T0y1w2Lfon/tW/8ATj/3o8UO/RP/AGrf+nH/AL0eKu/RP/at/wCnH/vR4qqQWNxbSrLbWTwS j7MkVm0bCvcMmhhh9BxV1xE0ILXahY7393K14ssAuQtf3MzXTzahdKCfhgiiRW+yfhbFVt9dyWYa Qh5b8enLBDIi/WHmNY7e4uoRRIYomf8A0W1+0zfEaMHKqsSh1qY3EFrZKHFTcH96vxJbjaVpHUxF ISarLIvp8maX+8esKrK7W7uGRZprhpdOf91Ldy3919WhdtgJZbbUb/r/AMWKinpzBIBVRfqXdsir P5qI0xmZoYbq3u9Pgbq1F1J3MrDuD6rV9xiqJF60U0UNrdyCeZedsunauupSNxq1TBqHpl14g19O p8N98VeQaxFBof5q6XqSRRGz1z1NLuYVt6x+or8YmjiuLe8kiPqBF9Jo2ePdAfT4EqvS/wBE/wDa t/6cf+9Hirv0T/2rf+nH/vR4qmGg6b6esWj/AFH0+MgPP6n6dPfn+iLan/I1fnirJvJn/HHuP+2n q3/dTucCU9xV2KuxV2KuxV2Ksd8/C4fy3JDbw3Usk09svOxWN5oqTo/qhJPtcePQAn5faFeX6XL0 VeJZI5HnyO3JV8n3l3dabMbqS4kkiuHQNd2ZsZSOKtvHsGryrzAAP0YcZNbsdVARkKrl0lxILQ1V tD8xK3Hi19qYPOnGhdvtckmFPmjf6p6ZY4zFf0fY/wAtj/wNt/3h8UO/R9j/AC2P/A23/eHxV36P sf5bH/gbb/vD4q46fYEUK2NP9S2/7w+Kq1lby2rvJawO8b7SGzWaAOo3C+vYaRDJQH+WTFWM+ctT s9OtXjlPoLGjs6pGIWVZF4yiOCd3me5nHJGluKM67cRG0j4qx3yXf6hqV3e6gLUCyTg8s37yihGK wJHI0Nyiel8XGSUVLGR6+oaqqz24TS5JoZP0UlhqrgC3F7MlxBKrGhZjftayFiDy9S1YtU/ExPw4 qjSlvb+k+qaJEWmYRpJ6UltNC7MBC8GoGa5t1LtTiBPGQehZqAqo67N3a281lqkcbRXEgdoNWgiW K4cnbjqFoEgjkJ+x6sfMt0/mxV51+aukHUbN0IlMkTKyvcj/AEiGZEoFuVPIPIsS/bBIlRFflSJ2 ZVkmkJZ32l2d60VlG9zDHK0bJbAqzqCVI/RDdD7nFUX+j7H+Wx/4G2/7w+Ko/QLKzTWbRkFpyEgI 9NbcN9HHS7dvukX54qyjyZ/xx7j/ALaerf8AdTucCU9xV2KuxV2KuxV2KuxV2KsU0Sn6C8xVZVH1 7U6s7BVHxtuzMQAPc4UMS/0X/lusf+k21/6qYVd/ov8Ay3WP/Sba/wDVTFXf6L/y3WP/AEm2v/VT FXf6L/y3WP8A0m2v/VTFVsnocaLNaXROwhSWG7r7mGIXDMB/xjb5Yq8e806pHrGrfVY1VbGN6IKx xQt2YARJCvDYglETk3w05eopVejeTLN7awgW39G5uVf1WaKH154SqhOMapDfrBFxCoCtqoalEYoF YhU3ht0gmmtLVr6C/RfWTTyk7xGHl8fopHb20kYqSX9W1kjYnZXbbFUdosmnXsM1vbc7tZefrabb XX1K9jPSQmzR4bK4Wu7MFSv2XRm5DFVey9OCGaPTgC0Ipe/VIBR42+Guo6KwhdWKijNAvJqVFFPE KpPrgSSxT0Io/QMTNbwxOZomt0PNvqk6qfVgiYc1Xh6tuwrwaI8cVU9Ht4Le09EzW9vGGZ4RPLFb c0lPqB0WR/iQljRkd1PZ264VRv8Aov8Ay3WP/Sba/wDVTFUw8v8A1f8ATVnxvLRz6gokd1bux+Sr IWP0DArK/Jn/ABx7j/tp6t/3U7nAlPcVdirsVdirsVdirsVdirFdDfhofmF+XDjfakefLhSjsa8v Ug408fUX/WHXCrFv0t/2sv8Ap+/73mKHfpb/ALWX/T9/3vMVd+lv+1l/0/f97zFXfpb/ALWX/T9/ 3vMVSTzVqU0unSKkgvVoV4PK90vJhUCn1zUY12Hd43AqUJYDFWHeTdD1DWfMETpavcNHzKx8kkZg ooZJi7Rq0ah+IjLhST8QpRJSr2jTvy2t2gEmotElw4PJI7ezuCAezzXVvKzkf5CxoBsqAYLShNU8 lavZ8/q073mlrWaGGOKH1recGokSMCL4ePwn6q8L0pxBYlioSlLqKeRJJ1jneU+lLFc2xvnkWMen 8aARtfLCRTkAtzD0kUgtiqNuFtWtbe54qbZGKWzvcGax5E8a2epJyubF6jiA/FK/AB3xVSvIbkXE 1s8ExuJCZ5IZIik83p0PqyQwlUlmi/5abGUyj4ao1AMVQ1vLHp7PAlwlpU1MS3KwMCOvNPrOhuW3 3LwFvFjiqt+lv+1l/wBP3/e8xVMNB1L1NYtE+vepykA4fXPUr7cP0vc1/wCRTfLFWTeTP+OPcf8A bT1b/up3OBKe4q7FXYq7FXYq7FWOP+YflSO0nvJbmeG1gn+rGaWzvI1klHOq25eJfX4+i5YxcgAK nbFWQQTw3EEc8DrLDKoeKRCGVlYVVlI6gjFWMaG/DQ/ML8uHG+1I8+XClHY15epBxp4+ov8ArDrh Vi36W/7WX/T9/wB7zFDv0t/2sv8Ap+/73mKu/S3/AGsv+n7/AL3mKubWKKT+ka0FafX/AOuuYqxv WbHU/MWprYWqyX00sbcWE0kojjBC7NJLeRKGf7T/AFh0HH7AkChlXrflDyhpXljS47OzjBuGVfrd 2QTJM46lixZuNSeK1oMCU8xV2KpBrXlg3Ms9xZmItdcDd2NyvK3mePZZAyfvIZgoCiVK0oPhagoq xOaK80yUm5N1ZmdvSnDsis/IFF5XMvPTrrkKKvrrHMQBVi22FChcw29uht7tY7W1YiT6k0cNmnqA Efu7fUFnsXYblntrhK1+nFVqaoijimogINlC3qqAB/kpraoP9ioHtirf6W/7WX/T9/3vMVTDQdS9 TWLRPr3qcpAOH1z1K+3D9L3Nf+RTfLFWTeTP+OPcf9tPVv8Aup3OBKAh/MC3l84Hy+LRvq/1uTTU 1D1B8V9DZrfyRelSvAQP9vl9oUp3xVlmKuxV2KuxV2KvL5fyy8xrcJeafLBZrZTtLp2jTXt3e2iG a3u7a4kE0sayRGRbxW9NE4gx/wCUaFWW2HkuC20LR9J/SF6i6TZQWKyW0724kEEax83VD1PHAqYa Xoljpely2aPKIpWlmuJZZ3aUtMS0jmaocHfqCKYqgvqXlj/q5zf9xS6/6r4Vd9S8sf8AVzm/7il1 /wBV8Vd9S8sf9XOb/uKXX/VfFXfUvLH/AFc5v+4pdf8AVfFUTpv+GNNR1s7iBGlPKaV5/VlkYbBp JZGeRyBtVmOBUZ+l9J/5bYP+Rqf1xVBS+YLJdatbZbyD6tLbXEkp9RPtxyQKm9dtpHxVG/pfSf8A ltg/5Gp/XFXfpfSf+W2D/kan9cVWyanossbRyXds8bijI0kZBB7EE4qlQ0vyWhJtpYrEN9tbG6ez Vj4sttJErH3IrhVd9S8sf9XOb/uKXX/VfFXfUvLH/Vzm/wC4pdf9V8VVrW28vR3Mbw6hLJKGHpo2 o3EoLHYD03mZW+RGBVFPJVhHLK8F9qMCzTy3LQxXcqRiSeVppOKA0ALuTTFXR+SNFj8zt5iUy/Wj I1wLbkPq4ungW1a5CUr6jQIIz8VKdq74qyDFXYq7FXYqt5Sca8RyrSle1aVr8t8VXYq7FUn85Wtx eeUNctLaMy3Nxp91FBEu7M7wsqqPck4qqf4U8rf9Wex/6Rof+acVd/hTyt/1Z7H/AKRof+acVd/h Tyt/1Z7H/pGh/wCacVd/hTyt/wBWex/6Rof+acVd/hTyt/1Z7H/pGh/5pxVKvMNh5V0eGzlbQtPk W6u4bVy8UMYRZSeUlfTYHgoLEGmw65Gc6b8GHxCR3AlB6ze/l/pcLT/oO3vbeO3iu5Z7O1tpUWG4 lEULVJXl6hJK8a1Cn6RLIAzxaOczWwNkb943PyR9lYeTr3UpbK30K1eOK3huhei3tTA6XHL0whBL 1PAndenzFSJ2WqeExjZ7yK67Jl/hTyt/1Z7H/pGh/wCack1O/wAKeVv+rPY/9I0P/NOKu/wp5W/6 s9j/ANI0P/NOKu/wp5W/6s9j/wBI0P8AzTirv8KeVv8Aqz2P/SND/wA04qlfmHynpH1K2fTtItku 4tQ02ZXhgjV1SK/gkkYMqgjjGrE+2KsoxV2KuxV2KuxV2KuxV2KuxVjH5j2eoXflkxWkUlxGLyxk 1G1hBaSaxju4nu4kVd25QBqqPtCo74qu/Liz1Oz8nWNvqKPFOr3BihlqJI7Z7mRrWNgd1KW7RrxP SlMVZLirsVdirsVY/wCb/Kh8xwWcRvDaiymN1FRA4M6oVhZgWWqoWJK/tdMrnDicrS6nwiTV2K+H VQj8rarKFmu72D65NqCX2oFYWdJY7ei28KVePgFVFbfl8dTg4D1ZnUxGwBrhob9/M/jojfLPle00 Bb5LaRnhupzLDG3+6YuICwLufgQ8uPgDTtkoQEWrUak5avoPn5p1k3HdirsVdirsVYZ+bUNxL5SQ WsN3cXSajpsscdlHcSycY72J5iyW4YlBCrk8hx+mmKszBqK+OKuxV2KuxV2KuxV2KpEPOFi3nNvK S2tw2oR2a6hJcARfV1t3Yxqxb1OdTIpXjwr3+zviqXWn5l6Pc6Br+uizvI7Dy5LcwX5cQcmks6/W BCFmYP6dOtQG/ZqcVQEn5zeWYtNv72W0vo304WL3Vk0cPriPU6fVJFAl4MHLAUDcl7gYqyHy35w0 rX7PULmBZbX9FXU1jqMV0FRoZ7cAyKzKzxkKGB5KxGKo3TNf0XU7K3vrC8intbtedrKGoJF5BOSh qEgsQB8x44qiDf2KiZmuIgtt/vQS60j2r8e/w7eOKrpLu1jRJJJo0SQVR2YAMApbYk7/AAivyxVy Xdq7SokyM8G06hgShIr8YB+HbxxVB3XmPQrX6j699Cv6Tl+r6fRg3rSUJ4pxrWgU1PQd8VRpubcT egZUExpSLkOW4JHw9ein7sVWJqFhIXCXMTmNxFJxdTxkY0CGh2YnamKpHceeNOi8323lsRM7T2Uu oSagHj+rxxQyiAhjy5VMjcemKq/nbzdYeUfLV7r18jTQ2ac/QjZFkkNacU9RlBOKqsHmONr6S1ur WayWC1gu5rucxLbqbhmUQ8ufL1FKb1WnviqvbeYdEubu9tIL2KS406RIb1A393LIAVjY9ORqNq1x VIfNH5i2ug3kFsdMu736zNY29vcwGH0Hk1GV4olVjJzJHpljROmKsn+v2PpiT6xF6ZQyh+a0Ma0B etfsio3xVLNU83aPYNfwJIbzUtOtDfzabbFWnMO/GgYogL8TxDMK4qmUF9bylULCK59NZZLV2X1Y 1YftqpalOnhiqpFc20xpDKkhCq5CMG+FxVW27NTbFVTFXYq7FXYq84i0D8wbLz75j8yWlhps66qt ja2JnvJQYrW05eryRYPtS8yQA1FNK1puqxofl3+aC/lfdeSkttLSXUDcvqN/9cmLSSXV367FB9XH ECIshryrt71Vdd/lH5sSzn0iG2sb7S59fttYlmubuVbmWxgAZdPmkMMjv6TDgjlvseGFWR6V+XGv ab+V/mTy0klq+o6w2ozWNtyd7S0+u19OBJJE9R1iJqHZK17YFQOkfk09vrMeoXFtp0T6boVvpujN Chb0tQiZpDdlWQfEjBOL/aJBNBXCrHbb8kPNcei6RDJHam79eM+Y4/rz1vFigkjjkaY2rKvCWZpA vpM1TyMhejKqy/zN+U0es6l5djW2sU0fy/pd1aQQyK0g+sSwpDbAROJA8UPEtR26064FYtZ/kt5w h0QO0lomoGLSrS90+OaT0r6CwuGuLxriYxgmS6dyd1Pw7MdzQqnWiflBqthr3li9uBp9xbaZPqt/ qCEMypcajKrxx2yFBVIV5BCStGq1O2Kr9a/KnWbm688a5p4srbzLrZji8vXpLc7aFYBBMxfgTFJM ryVZKmhHhQBUit/yM195it7DphtjrUOplIHljpa2NoYba2WkYIrIF5MDUip6mmFUH5f/ACL876dc aNdXn6Kvk0mO2tW0mZmezuIHluri7aRWgoHSe5SSKi9V9lwKyH8xvyu86eaPM19dxTWMukzjTIrV Ll5BJFb20/r3kaKsbBTM6qxcGpAC/IqhPNP5Q+bNX8063qECWEdtq1/azwXDSszRx2luYQZ7WSCW G4R/Wm5RsdyV+IAYqvh/JO/uZIo9TtNLNrL5nn1y/wDSDc2s/j9C3HwLUGqAp0Cg/EeRGKqOsfk1 5hl813Wo2NlpZ0Z9Rs5rfTHlkiQ21hYSW9usirE68FmmLMgrVdvDFUu1X/nH/wAzxWsWnaLcWDWa 6Na6Tcz3DSRyyk3/ANbvSAkbhFfiAu5ovw03rgVOvNP5QeYdXn85SRwaWD5juNNS2cl0dLS09L1w WEZ4cuD7DlUmu1BhVBxfkx5vltNTlvZLCTVWtNXtba45yEXc2qzBkmuf3fwR28KoqR/FuPACqrK/ yr/La88malrruLcWN6lhb2Ihd3lMdhbelyl5qtCzs7dT17AAYFeiYq7FXYq7FX//2Q== + + + + + + uuid:DAD009446E4ADD119EEFF96D7801BC77 + uuid:dbaaada4-048d-4642-b37f-5659c12203ae + + uuid:D9D009446E4ADD119EEFF96D7801BC77 + uuid:23547E781A4ADD119EEFF96D7801BC77 + + + + Document + + + 1 + False + False + + 12.250000 + 20.000000 + Picas + + + + + Minion-Italic + Minion + Italic + Type 1 + 001.001 + False + MinioIta; Minion + + + Minion-BoldItalic + Minion + Bold Italic + Type 1 + 001.001 + False + MinioBolIta; Minion + + + Minion-Regular + Minion + Regular + Type 1 + 001.001 + False + MinioReg; Minion + + + + + + Black + Red 2 + + + + + + Default Swatch Group + 0 + + + + White + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + Black + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 100.000000 + + + Yellow + CMYK + PROCESS + 0.000000 + 0.000000 + 100.000000 + 0.000000 + + + Lime + CMYK + PROCESS + 33.000000 + 0.000000 + 72.999992 + 0.000000 + + + Night Blue + CMYK + PROCESS + 100.000000 + 50.000000 + 0.000000 + 0.000000 + + + Pigeon + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 30.000002 + + + Red + SPOT + 100.000000 + CMYK + 0.000000 + 100.000000 + 0.000000 + 0.000000 + + + Red 2 + SPOT + 100.000000 + CMYK + 9.000000 + 82.000000 + 60.000004 + 14.999999 + + + + + + + + + + endstream endobj 295 0 obj <>stream + + + + + application/pdf + + + RBPassUp + + + + + Adobe Illustrator CS3 + 2008-07-03T08:34:59-04:00 + 2008-07-03T10:05:07-04:00 + 2008-07-03T10:05:07-04:00 + + + + 156 + 256 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAACcAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7 FXYqwj8w7rVy8UGi/pGPU7eKS5hltorlrYsikrC/poYZGlYAUkNFWtKMRypyk9LdloYw5z4eE7bk X7+8V5fck+lwebzr6RB9TGnC7t5NNa4a54/VFkkF210z0qzrbrwjl3HqfCo/ZgBK+rfkli8O/TxU bque3DXz5ju5pjqHnDzpbtczDT1itIr2SChsryV4rSN2iN07Bo45BuknGM/EhND8LFZGcg1Q0uE0 L34b+qPPu+8b9fhYXR/OP5g3EGmvLp8ctvftHK999TulWONlEssfpoXaoWQLHIaKSp+11IGSfczy 6XADKpbx6cQ9w/aOfuX3nmD8x4FsbgadHPeNZxy3EcdreCKNrgtJJEVWZleSJLem4ryYAU5bpnPu RDBpzY4qHF3x6deXI39nkvTzb+YogQS6RGk4a4MrC0u2QrbQwt6aBWb4pJZJODMQrKm1WNMPHOuS DpdPe0ttusepP3Cr96lJ5s/MhLOOWXTFS5j+t+tDFY3ciu0KQpCgIdm+OWZyrbBgnVRyYDjn3Mhp tPdcW238Uet39gHz6o3zL5p83Wet3FrotvHqIsLKKa4s1tpmZ5ZPVdh6qOVQhIBwXcsXAAbqJSnK 6DXp9NilAGZ4eKXOx5dPjv7uiO0XWPOUyahPqUFukFnbK0AjtLtGnnZDJ8IYvLwQcVKiIuSSNiOO GMpb21ZcWEcIiTZPfHYfd9tJE/m3z5FdJP8AoqRmkht/Wg+oXxDFYBO6JxmeKJzJOY+ZB+z8RPED Icc+5yRpcBFcXU/xR767rPK/u5pv+nvOv+D/ANK/VYP0r6nL6p9Uvv7nj9j0f96PU5bcuHH/AGPx ZLilw31aPAw+Lw2eHvuPP38q/HkzLLnXsTn/ADK0WEXiNa3bXdnqUukiyRYmmmmhtReyPEBJxMYt zzqzA7UpWgKqdx+YtDfS7PVTfQxaffxxzWdxK6xLIkqCRCvMr1U1xVEWOqaZfhzY3kF2I6CQwSJJ xr0rxJpWmKonFXYq7FXYq7FXYq7FVk8EFxBJBPGs0EymOWKQBkdGFGVlOxBGxBxSCQbHN0EEFvCk EEawwxqFjijUKqqNgFUbAYgLKRJs81+KHYq7FVCKwsYbqe7it4o7q54/WbhUVZJOA4rzcDk3EbCu CmRnIgAnYK+Fi7FXYq7FWHy/ljpEst/M9/ffWL7UH1VJw1ur288tr9SkEBWEfA9t+7Ifl4/a3xVk droulWumWmmQ2sf1GxijgtYGUOqRxIEQDlXoopiqV6ZbW9v521hIIkhQ6ZppKxqFFfrF+K0GKshB BFQaj2xV5h5o/NDzdouqXMH6AjWwSZ4bW7uWmiEwUkVU+mVNaVFD0w0hJI/zz80lmR9GsuS719eY Ag9Kfu96DrjS2mvlvz5qvmWTUYdVv7Ly/ZVjVZYbxUvI2UB6wrPEYyr9GLe9MVT2Ly3dXjM9v5u1 ltORCZLwTWYRgRUNDItsVYLRg24ocUoW70HWzJcWGl+Y9c+tQwxyQX149stlIZdkVZltiXatAQMi ZdG2OMUJE7X8WR6U00drZWd1fSfpu3ikQRXMij61IqDnJxVYzLErNsyoMQe/mxlHmRfDbd55qNlG qyabe3lyrGO4jsYPV4soB50LAiN6/AT1phYMAfzx55g1nUL/AE7Qr+609qxCG+9ZI4vTd2JWOOJw ho1CeZ2GPDvbM5PSI0Pf1Q9n+cHmjVbiO0Fnp2nrMwCXct3JEiFWLVZzE68W4gdN6++GmtP5/Mmv aoYLa61vRNJtGlrcXOn6n/pYRa7RrPbmM19+2Ko620GO+eRdL89aleXCBS8cd3YyBV5faIS2anft vilMP8E3/wD1Nmt/8jLP/slwKyO0ga3tYYGle4aJFQzykGRyoA5uVCrybqaAYqq4q7FXYq7FXYqk Vn/ynOr/APbM0z/qIv8AFU9AAFAKD2xVKNfk8plY4deexFKyQpfGHbsXQS/rGKsY8xn8ql0W5Ytp 1Y03/R5s/rdDt+798KHjurtoaajcNov1n6rwj/3s9P1edD/vvanhhVMxF+YNtbCziGrw2lqoEsKf WVX4+icRRfjruKb1xVnHlCw/MK1+ryXFxbyw3HpH6tqz3LG24P8ADGiEUjnKPsvywKy5GsLiaN45 I5ryLlBZX7lHubec0kkt7iTfgWPFfTG9KjI7E22EzjGjYB3dp2sLqF87mC4sJK/o+8kkUQq85i9R XhqW5cCCtW3BNKY3dhJhwgGwb6frSuznbSNNvNO1a/jGnz3os7K7mlpdSKD/AKQ9w8nFSSo6qPnj EEMs04S3Aom77vglfmDzB+WWmzI6abZ3qAPFBDZQWkqmReNWlXkPg3XgR4PkmhiHmrzF5M1PTRFp +myWt8rGV5Y4LeIcygQpEYyW4Ch261wqgdE0Lz5HMh0yC/s2n4hbyNLiKN4zWnqSRjcDr4YqzNfI 35oi64HzGf3ic1BvbvbiQDtw/wAoYFZ35L03X9O0b6vrd4t9d+qzpcJJJNWNlWgLygN9qv0YEp9i rsVdirsVdiqRWf8AynOre2mab+Nxff0xVO0VhUsaknoOgHamKvAvzVk8xw63BJ5ia3jDRBbdrcyr bMoPxqpmO7itTT2whDBpb+xUEfWomLRshIkXqBVSd+tMKsq8g655Ej1EDVpI3urqSBOVy1ubONAy yMzGQ8lb93xr7kYq9jt9UikhW8tyZluib2Mni4kMzFLKMENuvD94Bv0BXAqWalBqcsyu91M2nWZW 5gWydvrFzLET6iysWIcSceNt3JFO1crkDz6OVilACq9UtiTyA7/erW95psiRQW4Wzub+MXDxuVjm 5saxXLBW/vA3FJ5DU8hxGSBDXkjL+tGO19EP5kGv3WnyfoxobOScxXM7yl4mjkDehKYileLc9zX6 ck0vMNe0rznBcT2+o/W763spZ5XuP380FRQO6u4A/boxwqx2w1DQ1vLcXl0ptUdVnMckfqcCQZWT kacuPSvfFXqfl7zl+UN20GntbWlsIo1Bu79LKMsqEAFpPUNZD9qTbffAr0fRfMXljUOUGj6haXQj qDFbTxSBANlHGNm4hgpZfauBKacEd0lG5UEKw8Gp/QYqvAAAAFANgBirsVdirsVdirsVSKz/AOU5 1f8A7Zmmf9RF/iqe4qh7mxgulAuIo5SjVj5oGAH04qwPzb+V15qWpi80e8SzjdV9eGWS8C81XhWN LeeBFqo323O+G0PP/NHlG88tx8r7XrM3a8GFot3dR3DrxKh1WfUIahT7jFUmsvNmo2FzBLDqnq/V wBFFNeerEOKmNBwbWCtE5My7bHfFWZ2n5waT6EC3qv8AWVHGf6rNYRxnei8A1+5HCMclqTSXfvir MtPeC8jttQEItZp4vgZ/T5xJPSoqs0p4CT05Vo1Ny3hgplxGqvZRMN6mkyW2mXBkfm0rzXsjSgpM VuZVVhJyDKYpAnWnf9o5HhIGzb4kZSuQ2r+Hbpt+1FnXLZ/MNxoMleRVpGJkTi0c92EZePrFtlQ1 +AdenieLekHCRjE+l0lur+XdG1QQvMsluIld3kspGt1JcGR1YRSrUjnGignrt4ZJpYj5p8mSWULX Wl3ss8MSAyRPdzzSM1aO6k31uoj7778MKsJg8wXlseVvqkkVTUlL5lPw9K01gb8SR+GKsvsPzk8x WsMcK3NhIsaJCHm9GR29MleTF9XqWPc98FK9Y8lebrHzBpUL/XbSfUxGHvLe2kiYoSepjjmuSg+b nAlkWKuxV2KuxV2KpFZ/8pzq/wD2zNM/6iL/ABVPcVaPKq0IpX4q+FO304q8+85fmzpGn2cf6C1G wvLx3PIie0njVFrWq/XLVqttx3wq8euNeuLpw1xqzyuNgzX5Y0r76ycKF1jFq+oKzad9Yu1UH1Xt p3l4GnLqmrtTZmO/9cVeneVvLNjp9h9avJWuL50InSWdp41r3SOW5k4ldxXn14UwKn0urJDLHavd w2zz/uoAHRUJKmoj/fjZQzUoNgieGAkBnGEiCQNhzSzWLnUr25bTVL2ummJmuL6GqFjKHIS3kS4C gxtLR6jpQdOsJWTXRvxGMI8exlew/WPuTd206G3l1CR1SW3R19cyqGWNfXcc5DOTQN8R3+Xjk6cc yJFdEp1Tz/5Qt7eeSDVLa4kQl0jivbZnc8qKFLXiDYen3/ZJ8MLF5Xqfm/Ub67lnOqGGNwEWCO89 KMIBx48E1gLuux28cVa07Ttf1CMzWC3V5EDxaWCaSRarQsCyauRUA1P+t74VZ/5D/L/VpZ49T1gT pDbuBHZSyXAkaRJUq0iteXUTx8VaoP8AZgV6jY2VtBxa3tUtlKBWHBRIdgRVlJ6bg174EozFXYq7 FXYq7FUis/8AlOdX/wC2Zpn/AFEX+Kp4vKnxEE77gU2rt3OKsa/MC+1S38tXT6UQZFPC8ccKxQMh Lvze/wBI9IgEHmLgMvUDuFXgH6R0j/q52/8A3Fk/8bPFVS11Dy+LmI3Gowm35j1lTWI42KFquA/+ MZOJI78W+RxV7dY2ul6ZbrbWTKkUfwqWuDI54k0LySXxd9mIqxr9G2FCH1zUWtdIu7m3vIoJo42d JZpvgDbGppfdTQfTkZmg36aAlkAIJB7lmjRWj2aXsvNZbpxdejcTAvDI0YRlSt7VQq1FOoqflggO qc8yDwgio7bdf1o+/wBTsrWzluJ72G1gSP8AeXFxcKIY6mtWrfIAuw2r9OTcd5Fr3nBL27ZJfMFj OkYMYmsb+G0hlUszElE83Wxbd23dK4EpRFd6ZNKkMWoQySyMEjjTVEZmYkABQPOdSScVet+TPJmn RwfW7/StQs7+KNeP16/lnhuCQTI0MH6V1OMCg25vVetT2VZ9a20CIFigEMbBiPTARaNQdEbdqAb4 qroSEjARgDsQSCV2/aNTX8cVX4q7FXYq7FXYq7FWPwGMeddYMjcE/RmmVblx/wCPm/71GKp+pJqe QZTulPCnjXfFWJfmJZPdaaJP07BokNkDPcSzS3kFVIKislpqGlUBP+/HK1xV4p/ir/v4f+53/wCP pilHaJ56h0/UorubWhcxJXnCdZgbkCpGwufN9zF98ZxQ9as9Ytb21iurW+SaCZeUcsd0roR7Ml+y n6DhQlvmn61NYLcWU3q3dm4ljtzPySUfZkRlN/Q1QmlR8sryRJGzl6TJESqW0Zde5MoNZtp55reO 8Bnt+Anj9fdOY5LX/Tu48MmCC0SxyABPI8kD5lR7vS5RFNdSXUYLW0dpfyW7lyOK19PVrLmorUq0 qg+xwsHmmpXeu6Wsbanf3VispIia51SSEMV68efnNa0r2wK7QvOb2+q27r5mtbfk3Bri+1Nbu3jV ti8kLeb7nkB7RsfAYq9as/zI8lTxW9sfNmizXTiNGSG8tg0rsACsSi6dlYtWnxN1G56lVlql2dqO hVWoVA3A49Ca9amvTp9+Kr8VdirsVdirsVdirsVSOzp/jfVhT4v0Zpu/anr31NvvxVPMVSPzbcXc GmSSw6tBo8cfx3F5cQ+uixUKsCBLCRVnWjA7fTirwXWvOOsane/WJ9flDKBEv1S9NnGVUni3pW+s wpU+JWvjhQlsmu39TTX7ynb/AHL3Hj/23MVehfl5qtjd2176DXEkwWATz3OpyXgZ+LcmVJNQuTH4 0rv03pirLFcrX95vyrHJ6vxCu60AufbFUmu7qTSdSm1mWX17OVYYJQszJ6EKc2klYC6PqUPYCvh7 1y2NuZirJAYxtLc+89B5fOmQW9zCYopRdhkuKIHErUQEkCtLncBRXbLHEIpK/NGiTarY/utUubO8 hciKWC8uogV41IMdvqFurE8QKsdsUPK9Vk8zaRLHFqeqahazSrzVJNXuASK0qP8Ac70qMVdp/m/W tMuDPb65M8hBULdX5u0Ck8iRHcazKgO3WlfvxV6V5Y/N7QZLKIa1qEFvPGAsjmaH96R8XMCO4mCD kehJ8MVemWt1BdQRzwuHjkVXUgg7OoYdPY4Er45I5EDxsHQ9GBqD2xVdirsVdirsVdiqRWf/ACnO r/8AbM0z/qIv8VT3FXYq8u/N26torOC4ubOZZXURWuqrfC3gDBuTL9XF5acyyqab7V9qYQh5OdTN WDahuRUD651/7nGFVKPV3inWWLUPjjIZOV2CKqe4bVyD8jir17yxq/6U0K1uri9Se6IZZZYmqpkD GsVEuZFFAwUkNTvgVMTKsqt8ezLRg0n2jy8DP2GKpTcXEnl27065tpydFmmKTcmZ+FzOVk5kvOzt SRwpWlN69MqPpruc6H74Sv8AvANvcOnyZLVA3996yOfhpIRUMa/8tHZwctcFJ9e0K31WIpPPLHcR owt7pbmZFWoqC0cd3GHoxrua4q8q8zRXOi6tLp0up+uIqGOf6y8QdGAPMI+rBx/shhVAQ65JDJFc Jf8AxxtzFbutCp22OrkH7sVei+W/zq+qwLbal6d3I05L3K3FlCqI7L+wbuYmm52PfptgpXsyOror oeSMAVYdCDuDgS3irsVdirsVYtd+dp9MvFs9U0qb17meSOwSzeG4kliWRlSQw81lAKAMxCkDuRlR yUdw5sdIJi4yFAb3Yr48kZZ/8pzq/wD2zNM/6iL/AC1wk9xVplDKVPQ9e36sVWSpIXQqaqpHJOlf ete3hirw/wDMjy15utdZ1DVq/wC4qaUMk3r3KUDkfD6cd4v2SQNkHjTChgT32prV/XIXj8P7+/8A bf8A3swqjfLeuXFhr1nd3Uv7pG4yuJbxyBJGV5cXuJVNK8qccVewC7Z44ruJyiPR1arGokq1aFq9 DTAq5WdZ+LSMWjryTk3bciofxxVLPJD3DafcacxM8em3k0ch5lSFlLTqxHqV3Vi1KnKsWwI7nO12 8oz6SiP1foZEsk4EV0kpBlLUl3pzLcgOJem7b9KZa4LA/wA1bqJ9LsWilK3zyPVTJciqcAxb91NE v2qbHpirzVL/AFP06icrxoQfWvq7in/LXhVGwXOtyNHGsxYyMqIDPfCpc0Uf72D2xV9LeUrXVLTy 1p1rqlPr8EKxTAGtOHwqKl5SfhA3LEnIpTbFXYq7FXYqxC78r6LBqOotY63NpevajG89xN60UkpS VykbcJg5ESOwRAnGmwBrvlRgL50XPjqZmMeKAlCPkenu6plZ/wDKc6v/ANszTP8AqIv8tcBPcVdi qDv9SsrS2mnu39O1jR2mkoxoF2bZQW+7FXz55zh8qLqYfy3L61jKoJh4zJ6RAFfim+JuRqfbJIYw 541IPJR17bEcRiqeeTrTXVvBqOm231uGAejdJzSP7dPhq5r1oagYq9Vnbk7mRyXLDlQEVJ2bp4NX Aqldajp9hFFcXMhEJYRk0fq5pCdgT9pqfrwSkBzbMeKUzUeaF8paTqVlamxNv6kccxSyn5KvrKW9 ZjxB+ChenxZDHEgU36vJHJITHMjcd1bfFO5UnlCwoaJtKIgOhkTb4j9H35Y4jz38w9Zt7mzGlxX1 Z7SZZJtP9Jt24EBvVIAHBWOwO/L2wqwFayEhhVT3+W5/ViqN0/Trm8vktbdPUuJgFSOoHIkdKkgY q+j/ACZp8NnokKx2P6MY8vXsfVM/CQMQf3hJrXrttkUp7irsVdirsVeU/mU8d9qs8lpeIQum8YEt LiL1ppPVuLeSNkJYugLcCFowLMVqylcxc3P4O87PBjEAj+LqDttE/t7uV87ZzZ/8pzq//bM0z/qI v8ynRp7iqjcesEkeGPnKsbeluAS3Zd9tz3xV4t+ZEHna/m/SOpaVLBZQERwW8bR3JQsFLCsA5sGI rUjbphCHn1xb6iWBOn3ZBP8AyzT7+A/u8Kr9Is7ea+A1JLq0th8Rc2d1Jz3AMdEjqOS1+LFXsdik Q0629GFlsDEv1dGWRTTiAteac/s9j+vAqsrT2r+sAVOxRipFfi2O6ewxVIdMt2u9bu7m8Vlvbb4Y LXi59KKZiARIqBX9b0+XT4emVR3kb5hzs3pxAR+mXM95Hl0q682YRiKS8V+BeRZfWikKuOQ+Ehac KfEykV7Za4KU+dLy40HRbi9tBI9zKaW7RwPIzS+ow58BHJx4LU0IocVeJumoynk9ldmR6lm+qz71 FRt6eFVzRXzs3+gXYLCoH1ac/wDMvFXr35T+UJ7Kxl1u9smS7uAn1DmxVmilX4wy1+Hlt9tajAVe lWyhIVVJDwNEUcaUZSeR3FdyO+BKJVVUUAoKk/STU4q3irsVdirFvNXk6fWZ2lgntkAg4C2ubSG4 UyBndTzkDlFZn/eALU8RxZTU5VPHbm6bVDGKIPPoSPx5fpRln/ynOr/9szTP+oi/y1wk9xVBa06R 6Tdu8AuUWJi1u3Kjim6ngsjb+ynFXgGtS6Dc2bQ2PlGDTpi6MtxFFdSsqr+zxm0t1IJ33FcKGPS6 coBA07t1+p+3/bHwqy3yL5c1d0kntpn0y0dlJCW0RMrIfiVlfToGACnrgV6F6HN5XMfwKxLExnsf +MP+ViqS+YLeG+t5NIEZN7JA0tsixsA0sXFlbkIeK/Ey7NleSiK6uXpeKEhk/hBF+4pvY2t0lvbR XSMbkwR/WV4Vq+1VqIKbnuBk43W7j5K4jw8r2VpbpdPh+vvyQRgc5EgZyqrShCpbMx/2IrhYPI9e sLN79p7P1dRmuavNNNpxiZWrSlDpUnL51wqljaZxaosfh34/6F2ND/1Z8VegeS/L+oWlpbalZ+UL Oe7Ks8eoPcC2m48nRv3YsI+NVBWnHpv3rgV6vZQzo8TtCEKw8AoO3OoMm/prT4vv8MCUyUsVBYUa nxAGoB+e2Kt4q7FXYq7FXl35pTGz16K6+snTBNYGH68E9VpuLSP9XiHwcZF+2h57yen8P7Qxs3P4 O67OHFAiuL1cu7lv7unLle7NLP8A5TnV/wDtmaZ/1EX+ZLpU9xVh/wCZ2lanqHlm4trBTN6siSXd sEjfnDEpJHFre7LHmEIUJyJG3hhCvCZNF1ChroN4QOhOkXAp/wByPFCyLRr2ORPW8vXckUZDPC2k 3K8lHVSw0QMK+OKva7PS41tIYrW1MUUUSekhhdOKKKgcGtgRQClDiq3U7TlY3AQPC7RsRcJCzNGa E8wn1X4qb7DBLk2YvrG178kF5UtI7i1TUbi09CW+VJZnERcyKF4RuaWy05xqDsB9+Qx8r727Vmp8 F3GOw8u8fNOPRlYgiIqIR8KmL7ILVP8Ax7eOWOK8l8yprN/emNrLU9VtIKtbzT6LcxEeoAHAQ6K5 H2AOvbFUnGg3zcSdAvfhFG/3EXPT/uB42r0n8vvJEAWG51XyxboyKbi1v5RwnWQENEDbixtChUqf tCo7jpir1NI2SkYjXkw9Zj/PIoXd/goDyINeu3TAlEKhMYEtGavIg0IBrUAbD7PbFV+KuxV2KuxV 2KsB80W3n2LzXPqeiQO1otnBBGIWtnEpWSR39VLj0iOPKgCP713IFExLisO000sBxCMzvxE9fLut P7aNJPO+sJIodG0vTKqwqD/pF/2OXurT5WDVpXY0NQR0+eKpbrj6Y2m3S6hZm8smjKXkH1WW6Lwk lSogSKYzb/sBTtv0xV4Jq3lXTP0lcHS9BkksC9bdpfL4gfid6GMeULrjxOw/ett1OKoWPykXdUXy +AWIALaMFFTtuzeSwB8zil7DpNjfpp8Ud9YQwTxAJ6cCGZOKiikN+i7br4CMAYWKzzEgh0a4l9OS 1VEAlmgtechUsAw4mxoeSnie1Mhk+lyNKLyAUD79m9F094tNihOnpbRxl1gijiLr6QYiM8jYHdko T/mMMOSNRK5k2Zd99/VdrOnymwkkjkubIRnm01lZxzTlV3KiJ9LueVf8lK+GSaHkNz5aaW4llbQ3 maR2YzSaJ8bkmvJv+dMb4j1O5wJRGlaJa2VyZrnybb6pGV4i3u9GuFjB5A8gbbyhbvWgp9qlD0rQ hV7n5c0fTbLT4be10ay0qJaSS2tnH6cSTsql/TBgt+Q5VHPiCadOwVTWKNVCh1Hq/bY0qOR2J5BV Fe3jiqrirsVdirsVdirsVdiqRWf/ACnOr/8AbM0z/qIv8VT3FWPedtUuNI0aW/g0221GP+6vYrhr kEwyUSgS0tNQllqSAV9OlNyaDFXz3+j9H/6ttv4f8cpP/GMxVE6Zo3l+61G3tZ7GKKOZwhePR4Xc FthRZPKEKdaV5OAMVe1W1lFY28VntKYF9L1GhiUtx+GtIdPSP/gFAwoS/wAyzfU9JecWSXEBZEuo jCORhkPBvTBsRyc8qAZDIaDk6SAlOro9PePuCK0nTYtO0y3sxWVYI1i9V4QGYDYA/wCg4YihTXmy cczKqtbrbR22kXUyWlvOY1o8NyhjjYE/EGKabO1eNaKIzU7d8k1PFDYaMzErpdsATso0pKD238mH AlUttJ0iaeOL9GREOwBEejo70rvxX/Bq8j7VxV9D6Raxw6Ta2kMkssaRgSzzQJBK6rT4WiS2hi6N 0WNfl1xVNUeUzCopG6kjrsQdtuApUHu30d8VVcVdirsVdirsVdirsVSKz/5TnV/+2Zpn/URf4qna lyW5AAA/DQ12p32FMVYd+Z92kXla9R7QXbzsltCjwvMq8xzLgLBc9ONa8GFQMIV4QdMACj9H9af8 eW//AHRsKF9jpUh1G39KzaJ/Uj4Sx2nFkbkPjDfogUp1rir2xEjKxq0a0VOJYxjkzIoHJj9W6nqf c9sCpd5kit10a4eW3UyQxc4VaIA+soJiZR9WO5cgL75DJycjS34gA68/d1VtHt5F020WZGmmSKMS lo6uz8RyJ5W1fHqK4Y8gwz1xyrlZVruwtLmCWG/s4Z7dTzdJbdGiPAE1YNbEU2rkmp4k+lqjuv1D 4QTwIsxuNqf9KfCqKtoLmzuI7i0tGt7mFg0E8NoUkUjoyMujgg/LFXvHkSbU5PK9tcaiZo7mpDB0 YSSBWKqzLJb2z7qF39Pp02wJZGr3D8lb4HKjhxJ40Pfkyfa67YFRGKuxV2KuxV2KuxV2KpDaKp89 asSASumaaVPh+/vxtiqehVWtABU1NO5xVKPNmhQazo09rJbwXUgR2torpEeITFSqv8cc/FlqaEIe vQ4q8G1/yLdaIsLXcNlM0taRWqRTulACPVRNIJStf2sKEjjsrm2nWS3tzBKh5RyJaFXBHdWGkA98 KvS/LOvW17DbWn1e9mnK8JriS0kCc1XlvJ9VRBuKVoK7bYqnl3bRXMIjuLZZQQCY3iB+yxYGhhpU UFMBALKMzE2DRS6xeTTY1g1NzcahfThmjt15i3Ej8AaNDzSJQvxHtlYNc+bk5ICZ9AqMRzO119nE nNxFbzx+k8MckUweNo/TVg6U4sGBgowfce++WOI8683eSXW4ub+DT9PtNOhrHbQwxRrJIgdirmP9 GzVfcA8T2xVi/wCjmRQV06vEdDZVNf8AuD4VZ95K81y2t3EdXl1i9eJWSz0+K1kuIOHABaKLG2cE UP2dqYFev26s0SzyM4CAGOOm9Bt9korBjuMCUXEwZerVq32xQ/aPbbbwxVfirsVdirsVdirsVSKz /wCU51f/ALZmmf8AURf4qnuKpbr2rjS7NZvqd3fF3CejYRetKBQnkVqPh+GhPvir5n12SHU9Yub2 e3jkkuX5u7oGIHQAk12C0ySEsksNPXY2sdd6ERp4keHTbFXof5W6ZHb6bdyI8Ci4ZWEMRAkUxkrR lC7Fq1HiMVZnMyOAaKsleiCmzKOvwfRgVItaSO18xaRdAq0lyWtZ3FOBjaMTDfhXnyXvt1yqe0gX OwerDOJ6VL48k/RArI0aBnP91HRWJqTxqOO/vlrgoXzJ5Ts9e0n6vcRxt6KmSOUohb1CaUVijd1H L2xV4m2mWUcsqGKCSjFAyKpU7kclPHcbbe2FUTYJFYXaXVogt54RWO4iUJIp+yaMoBG1QfbFXtfk b8xLzWY/TvbB3nPMG4giP1cGOrohZmYhhU7fLBSs9s5a8+QLSBghrQsBQdem1a4EorFXYq7FXYq7 FXYqkVn/AMpzq/8A2zNM/wCoi/xVPcVWuqlSSeOxHPoQPniryL8xPIOgabpt7rFr9aMruphjgEf1 aISdfUCoCqbUWh68cKHlsiKAuzEbGpofHbCqtpGvX+i3Bns2DAg1icsYzVacmVWXcV2xV6/YvPda Za3lxHHHJLHG86IKMOa+p8IJNKDbc4FUr+xguEihkILrXjMCvKNmHHkrH7LKp69sBFs4ZDE7f2+9 C6DeSrez2fqrPa2scZs9QVubOVbhIry1p6qsu4GQhLeujkZ8YERLlI3Y+0UO5kAmeUyxRmgUH0d6 K3FWDU33JrtTLHEYJ+YOiaJHDHcae9pa3dpEI5rJDFGZIw5COsSDk0xLHkenEDCrAC5GzU5P1C9d zv8AqxVNPLl95htrgHS3un9CRZ5LaAyGNgKBuaIRWv2Tir6J8tait9aesLK8s2YfEt7EInND4VPj t7ZFKbry35U67U8MVbxV2KuxV2KuxVIrP/lOdX/7Zmmf9RF/iqe4q4gEUPTFXi/5sWI0srHB5olI unJu9Hu7uJyEkJdGWKWe0URJwIWtd6UwhDzCWRCrj6/EIxuprZcu3/aw7YVbsrmK2u45pLi2nSI+ oYn+pSI1f2WX9ICo+nFXttrcTtYIeIgVgo9EsgdBxPwFVldQoBpsSMCqxUQyNLIilG2oOJRqKCP9 2b16nFUg0307PzRe6bzDQ3CR30aoykRgErL/ALsAXk3xfea5VHaRDm5Rx4Yz6g8Pv6hlapLZNG5M bNHIwjFQRUADf94PhPfLXCS3zbo1ve6He3cNtaSaq8LNG0cUcjINhxIaWMhlSpX46Bt+mKvDKxkp /p0Vfh5HlZV9/wDpYYVV7LUbuzbna6sLeRhR2iltFZh1oSuoAnfFXr/5R6yt/wDWJL7X57zUIVNL CW7hcGMENzSFLi5O32SWYYCr1VHRwSjBgNiQa74Et4q7FXYq7FXYqkVn/wApzq//AGzNM/6iL/FU 9xVocqtUilfhp4U7/TiqSea9IubzSbv6hHbfX5EIEt1G0lEpQhCjwsrU+yQ4od8VfP2ote2Fwba/ kktbhQC8FxcNG4DjkCUfWAfiGSQlr6kaml/1HxL9c71rSn6YxVnXkDzFZSwT2VzqbSX7sCizXiSB xQgCNWv7l6gVJ7YFZv8AWWMbK0nJQPstJ9Faev8Aa3GKpd5ks0TTnurKQPfWzwO5ikpJLCjh3iUr cKWFKilaZXkG1hy9JMcXDL6TfPlZHNNbTUFurdLyOZprSRSI51k5KWqK0YXHGuxGx65MGxbjzgYG jsUfI3okrLcIwZh6sUMhVlBrySjTihHTCweNefUg0vzHPHaTzQWU/GSEzXdCWajNwpqVsvFSaCiA DphVj36Ro3+99OtSLzfb/t8YqyTyT5kkstetnTUYB9akW3me4uRIipIwVmIOrS0PgeJPtgV9EW5l KKXUIaHktKGoNK7FtqYEquKuxV2KuxV2KpFZ/wDKc6v/ANszTP8AqIv8VT3FXYqtcV4ihIJFSDSl N99xttirwn80l0vRdZisrXUJ/rTx+tcyX+s2yVDNSMRpc6rp8w48GBqhHSh2OG1phB1YEkjUbcV6 n9NafX/xIcbWkw8va7exazarZ39lJczusERn1WxnXlKQgb0016RmO/7KlvAY2tPZIlujBF9Ynhad UUTOkyhTJT4ioN2xALCo3xQrqB0WZRRQFPrpWg/6O/bFUn8rTEQQxabMqaJC91EYpbhJJWlFwSjx sLviEFGp/Gtcqx+XJztXzPH/AHh4eWw5d3eyKSsieoZgFBB5LMoqzE/CT9Z6kJUb5a4LEPzC1by9 b2VnBqk4EkztLGYNRsrKb4V4fbutStSyeIVm3xV5O2rMzlv0jbCvhrVhv/4cGNppWt9UmaZI4NQh aV2Coia1YFixPwhQPMPU42tPoLyRpXnDTbZIdavILm1MZdVIuZLtZXKnjJNPcXIZVHIUU/I0wKyn FXYq7FXYq7FUis/+U51f/tmaZ/1EX+Kp7irsVULyee3t5p4rd7xo0LR2kPprLIw/ZVpXijqe3JgP fFXzvqut39hqM9pf6tLY3cTfvbS41cxSxlviAZD5yQrsf5RiqF/xV/38P/c7/wDH0xSyj8vPMtnJ rTrc+YI5WkiaOG0bVfWklc/F+7U+ZdWWq8Kn90DTo3XFD0hbyPmC9weAI5KLmhI70P140+7ChD31 0XsblBMzl4nHBLijt8J2U/X9ie2CXJsxGpD3pd5Lu0Xyzp3p3kcjxoRKsctAsiuQyuDe0LV+0e53 75DF9IcjXCs0mRS38kyepJKEpRXlWRUQg14gBLsUP2t+/wBGWOI8+/MrVFtBZ3A1KS1aQuhf9Jm2 iotCBw/xDpKljy6jkaDem2BQwf8AxV/38P8A3O//AB9MUu/xV/38P/c7/wDH0xV7/wCU9Rur3QrG 6vaevdxJKsymIRyh15KYhHdX604UPwzMD1qcUJ1irsVSTztb3Fx5XvoLe9n0+aQIFvLSG5uZk/eL XjFZtHcHkPhPpsCAa1FMVeV6iPzhGnwDSoLu31YWtuNEj9S5mtSwuLoXj3zXbzOHe39B41uHJUni p5BsKs08kxedpNNvgty9rbi6jOmvrdvPc3Jh+qQ+uGVpraQD636vAsTt0HHjgVkOjaTqcGqX2pal eQ3Vzcw29qBb2z2sapbNNIDSSa4LFjcncNTbFU6xV2KtFQSCa/CaihI7U3p164qkmpeTNI1G9kvb i41NJpePJbbVtTtYhxUKOMNvcRRLsN+Kip3O+KoX/lXegf8ALXrX/cd1n/srxVVtfImiWtxHcR3O rNJGaqJdZ1aZCf8AKjkunRvkRiqMvY7a3ubGH9+312doOX1mccaQSzcqct/7qn04qjP0db8i3Oar Vr+/mpv4DntiqFsPLmnWELQ27XIR5JJjyurhvilcu3V/FsERTZkyGZs91fJFiwgClQ01CKGs0pNK 16lvbrha0DqXlfTdRREuJr9BGeSm21G/tTUinxNbzxFvkcVS/wD5V3oH/LXrX/cd1n/srxV3/Ku9 A/5a9a/7jus/9leKshtbWK2ghgjaRkgjWJDLJJK5VQAC7yM7u227OSx7nFVXFXYq7FXYq7FXYqw3 yv5ftNU0dL+9u9SkuZprnmyanqES/DcyIoVI50RQFUCgGEqmv+DNH/5aNT/7i2p/9lOBXf4M0f8A 5aNT/wC4tqf/AGU4q7/Bmj/8tGp/9xbU/wDspxV3+DNH/wCWjU/+4tqf/ZTirv8ABmj/APLRqf8A 3FtT/wCynFUFJ5Z8qvq0OnSXOptqCRNeQI2p6qaIp9FnV/X4A/veNK1ofDBxb0z8M8PF0ukU3lPQ FmSBrzUVmlDNHEdY1IMwSnIqv1mpC8hX54bY8Jq+iEOleSxbR3Z1m6FrNJ6EM/6cv/TeWpX01b61 QtUEUG+DiHe2eBO64TfuR3+DNH/5aNT/AO4tqf8A2U4Wp3+DNH/5aNT/AO4tqf8A2U4q7/Bmj/8A LRqf/cW1P/spxV3+DNH/AOWjU/8AuLan/wBlOKpV5s8t2WneVtZ1Czu9Tju7Oxubi3kOqai4WSKF nRuL3DK1GHQimKsyxV2KuxV2KuxVQv7iW2sbi4hhNxLDG8kcC1q7KpIUUDHfpsD8jiqUeS/NQ8ya VNdPbGyvLS6msr2yYyFopYW2r6scEnxxski8o1PFhUYqn2KuxV2KpB5k0vVdR1HSktpriCwhaeW/ a2nNuXpFxiiYoQ5DO1dulPllcwSQ5WnyRhGVgGW1WL97FdM0T8xbmN/0nJd2ctze2Mtw0V4rcYYo WkufSUOVjV5j6fBR4dQK5WIz6udkzacfTRqMv4et7fZuq6PoXnL9OaJf6nbzeha2FrY3oW7UzNOn KWS4kkWQGSP1AodKnl4MBhEZWCWOXNh4JxiRZkSNtq5Vy51yPRk9hDdS6tqetT28haIGy023oFcw w/FIy8yq1nm6EkAqqGtMsA3JcKZAhGAPmfef1D7yx3QfKeu2t9pE8sRSzuZP0hrtpI6FotRSKRea cGZWWV5FJoeqA9zlccZBDl5tVCUZAcx6YnvjY+79LP8AL3VuxV2KuxVD6jNew2M8tjbrd3iIzW9s 0norI4HwqZCH4AnvxPyxVK/J+vajrmlSXt9ZQ2TLczQQi3uGuopUgb0/WSR4bZuLOrAfBuBUbHFU 8xV2KuxV2KoLUNGsNQlgmuRL6tsJRA8U00JX14zE5/dOm/FjxJ3U7rQ74qu0vSbDS7X6tZRlIyzS SM7vLI7t9p5JZWeSRj/MzE4qi8VdirsVdirsVdirsVdirsVdirsVdiqC1HRtP1CWCW6WQyWwlEJj mlip68Zif+7ZKngxoT9nqKHFVawsbPT7G3sLKJYLO1jSG3hX7KRxqFVR8gMVV8VSe8826LaeZ9O8 syyn9L6nDNcW8CitIoB8TOa7V34+ND4YqmJvrIRmQ3EQjVebPzWgUGnKteldq4quW7tWkWNZozIw DKgYEkMCQQK9wpI+WKqa6ppjQrOt3CYGf01lEiFC5/YDVpy9sVVBd2peNBMheZecShhV168lFdx7 jFXC6tS7xiZC8dfUTkKrxAJqK7UDD78VWrf2LJC63MRS4PG3YOpEh8ENfi+jFVGz1vSb27vbS0uo 57jTnEV9Ghr6Tsofix6V4kEjt3xVWOoWC27XJuYhbJTnOXXgOQBFWrTfkPvxVs3lp09ZCTwIXktT 6leFN/26fD44qkvkrzlZea9IGp20ElojyzxwwTshkdLeUwtKAjMOJdCAQcVR2k65DqFs88kEtiFu J7aNLoxq0n1d2VpE4O4KNwLDvTqMVQvm7zfpnlfQG129jlubFHhQ/VQjufrDrHGVDOnIF3UbHvXp XFVK/wDOlpY+YNE0Gewu/wBI67HJLbIvoMsSwBWn9ZvV+H0g4rx5A/s8jiqWXP5r+XbXzDcaJdW1 5C9rf22lzXpSJrcXV6nqWyckkZ/3i9+Hw/tUxVuf81vL9v5kl0G4tbyKaDULbSZLspE1uLu9j9S2 TkkjP+8Xvw+H9qmKsmuNb0m31S30qa6jTUbuN5re1J+No4qc3p2UcgKnFVZdQsGCFbmIiUhY6Op5 MQGAXfclSDirmv7FBKWuIlEBCzEuoCFtgG3+En3xVXxV5Pc/lx5wvPNmi+a7treTUVvrttXs2uSb ePT54WtYobci3V2IgYFqkDlVurbFUh/5UV5lj0fRLYzW121rczxX1n6v1ZP0c0lxJbRJL6FwT6cl 0Xf4N/hpQorYqidQ/IrUGk1C40620yCae+0yO0jJlCppNlAsNxCHKyOjT/EGoSWT4WPbFWEa55Tn 0e70/wAua+gv7iZru412zsGWMvBqt7GyyabFOE9S5HpcJBGDxj2Brir1ry5+Wuo2n5jah5i1WK3u LaO4aTQZxM3O3t2tlt0gS3ESBfTXkKmVloTxQElsCpQ/5N6lF5f1GS2t7Ea/qmtnUL4KzKs2mG7S Y6eZihZVaOJOS04luta1wqlWnfkN5lj1SdL26s30+9uba+9aJ3DWBjv5L24t7KMxiglZo1D1XYEk dFxVk2n/AJaa5a+TfO+nGDTRq/ma61Ca0dAwjCXTEQes/AHjGvEhAppTvWmBUj83fkl5gm0y00by v+jrXSoNIltZIp+Y5alOIoJbxgqNzdraMoJG+Ja1GKqF7+SPmb9NjWrGPTY7uLUbC6t19WUKkGl2 ZjhA/dN8clyeZNPsgCo3GFWQ/lT+WfmDyba6haX6WGomW0iW01ElvrQkaFfrFoz+mrfVhcKzr8X7 VeNa4FYzP+RXmWfytoOmumnfXNG0vVI+YkkCvqGpEhGJEe8cfqO52pWgowxVl/mnyL5luvJ/lHy7 p0FnNDotxp02pJJcSQo8OnBaQxn0ZC3MqPiYDp032VUZ9B/NCfzzH5qk07SWltdLuNP0+3+uz8Ip bi49QSv/AKPV+MSqrceNTWlKiiqVaN+VnnGHzpH5r1BbKaV9bub+709rmWWD6tPCkNvLEjxcFubT gSrUqQxHIbYq7TPyn81y+b01/UEsbG5HmKTXJb+C4lnna0MPox2AjMMaceI+Ny237IxVNPPX5a65 rvmfW9WtoNNkS78vnSNOa6DGRLmR5C0rUQ8aBl+Kp2HHjucVSaD8jLyz8wxvZw2S6Va2Vn+jZPUZ Db6jaoQ1w8SxFpneUI/Myr9kcg/FVwqgbX8kfMw8t2Fk9vZR6vJNBLqupPdtcc3to2jV5YZLX0bi OQTzViZeVWqZGNaKvduCcOHEcKceNNqdKUwK/wD/2Q== + + + + + + uuid:23547E781A4ADD119EEFF96D7801BC77 + uuid:d1fde563-235e-8e47-a158-ac3cc76aa98f + + uuid:0742cf20-2206-9d4e-9e3d-e542f631a88a + uuid:B7D572641149DD119EEFF96D7801BC77 + + + + Document + + + 1 + False + False + + 12.250000 + 20.000000 + Picas + + + + + Minion-Italic + Minion + Italic + Type 1 + 001.001 + False + MinioIta; Minion + + + Minion-BoldItalic + Minion + Bold Italic + Type 1 + 001.001 + False + MinioBolIta; Minion + + + Minion-Regular + Minion + Regular + Type 1 + 001.001 + False + MinioReg; Minion + + + + + + Black + Red 2 + + + + + + Default Swatch Group + 0 + + + + White + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + Black + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 100.000000 + + + Yellow + CMYK + PROCESS + 0.000000 + 0.000000 + 100.000000 + 0.000000 + + + Lime + CMYK + PROCESS + 33.000000 + 0.000000 + 72.999992 + 0.000000 + + + Night Blue + CMYK + PROCESS + 100.000000 + 50.000000 + 0.000000 + 0.000000 + + + Pigeon + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 30.000002 + + + Red + SPOT + 100.000000 + CMYK + 0.000000 + 100.000000 + 0.000000 + 0.000000 + + + Red 2 + SPOT + 100.000000 + CMYK + 9.000000 + 82.000000 + 60.000004 + 14.999999 + + + + + + + + + + endstream endobj 292 0 obj <>stream + + + + + application/pdf + + + RBPassUp + + + + + Adobe Illustrator CS3 + 2008-07-02T23:27:46-04:00 + 2008-07-03T00:02:28-04:00 + 2008-07-03T00:02:28-04:00 + + + + 256 + 112 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAcAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A7FH5G856W0v+GZ9O0dZJ rhpPTVGMkT3PqW6sWtWK+lE7rSpHT5ijw5Dls7c6zDOvEEp8vu3/AIupR1z5d/MC80nTo76/tJ9S sbwag0qu8McjQspghPpwj90wL89q/Z3O+ExkRu1Rz4IylwgiMo18+Z58+VM5y51qXXfmTQLSVoLj ULdLhNjbCRWmr4CJSXJ9gMVUf8ReoaWemX93QVY+h9WA/wCkxrav+xriqnFqnmj1JGn0NBbhgIhD eI9wy0BJaN0iiXckUEp6Yqq/p+aOhutIv7dD+3wiuP8AhbWSd+/8uKu/xVoikfWJZLNT0e8gntU/ 4OdI17+OKomy13RL5+FlqFtdP/LDNHIe56KT4HFUbirsVdirsVdirsVdirsVdiqF1SxhvtPuLSaG O4jmQqYZv7tj1AfZtq9djgkLDPHMxkCDTA9K8ofmRpGlwWWlanYWiRo6tAEQxchbRIjgi2ViWnWR mLf5J+L4lNIhMDYuzyarT5JEyjI/2n+l3V9qax+VNfbzhpGvXU1vIbSwitb6XkfVklVJ/UKqsKDi 0kykfGo2PwV48ZcB4gWk6mHhSgAd5WPs8/L9rMctde7FXEgAkmgG5JxVLm8w6NXjFci6cVDJaK1y y0/mWASFfpyPGG7wJ9RXv2+9D3et6wBC1hoVzdI8gErSSwW/GKhJdVd+ZaoACMq9eoxBtjOAj1B/ HyX/AKfnjobrSL+3jP8AuzhFcf8AC2ss7/8AC5Jrd/ivQlP+kTvZDs97DNaKdq7NcJEp+/FUXY6v pN+WFjewXZX7QglSSlPHiT44qi8VdirsVS/Xdah0mxNwyNPcyH07Kyj/AL24nIJSGMeLU3J2UVZq KCcVSTTdb8wavL9TuTB5dv8AhWTTnBubvjX4nikcRQED+ZElXxNdsKonUfIWgatHGut/WdVaJ/VR ri4lULIFKh1ihMMKMFYiqoMCoS6W88p2kUOmSRX0LkpZ6NJGsVxK/HZIZoFC0AFSZIj4s4G+FU60 LXF1O34zwNYapCqG/wBMlYNJA7DpyX4ZEJB4yL8LU26EAKmeKoe/1Cy0+1a5vJRFCtBUgkliaKqK oLMzHZVUEk9MVYufNfmtmP1jQX0e1Z39G9n53x9NWPFnt7IMY+SUYh5Fp0rhVWTR9P8AM9uXvdYi 1e2B4yQWiW6wD/JrSadD/wA9sVV7H8vPKmnSSy6bbS2M8yqss1tc3MbuELFOZWT4+Jc05VwKq3q6 tpFtJdtrcTWkYBkOqRRjetAqzW5tgvKtPijc1+7FULp3m/VXMsuraDc2GnDj9X1CItcpJWvIvAEj uogKDd4QPGndVkVpe2d7brc2c8dzbvXhNC6yI1DQ0ZSQcVVsVdirsVdirsVdirsVWyzRQxtLM6xx oKu7kKoHuTiSkAk0Ev8A8Q6a9RaNJfHt9UjeZCfD1VHpKf8AWcZDjHTdt8CXX0+/b7OaW2uqeYNY urmzjRdC+quVmSbjcXrRsT6ciIpNuiuFJV+Uo6qQGU0m0lZN+X+lNM97HPM2pyENLdXbfXFkZRQc 4J+USrt0hEZ8CMBAPNnHJKPIkLLPzi8F/LZahbp+j7Y+jJr1rX6iswbiIZA+8Tdmozoh+FnDGmGm FsqxV2KpHrfmpNPm+r2llPqlzFRr2O1HL6tGykrJNSrb7URFZyNwpAOJTGr3Q505fMltFd3DadLa SCsLwRJetxBP2J514da7ejtkal7m28Y5Ay9+32D9brbyBoFpMt1Z/WLS/RGjS7t5nioHKs37hKWx qUXYxU26YQKYTnxdAPc1qGp6/opSPlFrby1FtaAfV756d/gDwv1ALFYkXucTIBY45SBI5BN9I1e2 1O3MkQaGeMhLuzlAWaCWgJjlUE0O+xBKsPiUlSDhYMCj1uN/OKeaJIJXB1STyhBbVQiOIHn9aoXo C88Z6bmMrtthVPvN6Wet6rZeU7mEi3uVN1c3teJQRk8IIHU80nlCueS0IRXoa0oAUmJq+iYeWNZm up9R0e8Yy6hosqQTXVAFuI5Iw8UwC9CRVZBQDmrU2pihh/lnXYW80WPmOWCUL51WeBVlKN9SXT39 O2WodggnBpIErWUqMKph5xvkl164uYEb655MshqycCoe5e45hrVDUbNDAysrbcpI2/ZGKsrm16yj 8vNrqh5LQWv1tEWnqOpTmqKCQObdAK9cCsP1HUI4joPny9DNzdbZ7EkMtpa3g/eNxJoJrdkDTyDc Isi9MEQerOZjtTNdZ1WDStNmvpUeX0xSK3iAMs0rHjHDECVBeRyFUE9ThYMYOi6d51tpbm/UWjqG t2gtx6V/bScfszXFFmR15BgqcV93QgmIB6tplACgLPef0D8fBHaT5yWfySPMNzbyPNEssclrAFaS e4hla3VIF5UP1iRR6QLbhlrkmpLJbR5bSDz+WW71KO19eCyrWD6q6+oIIOWyzmu01KsxofgPERBo WW2QEpAQH7WUWuu2c+gJrbhoLU231qVJKc4lCc3SQKWAeOhVhXYjJNTE5B6mmS/mFa2zWmp20Es8 mmLSN5IIQfrFpd8aB7j92QGbaJ1AG3PmBfVnIxoAM20+9ivrC2vYQViuokmjDU5BZFDCvEsK0PY4 WCvirsVdirsVdirGte8wztrdt5X0xzBqF7G0kuosoaO3jFTxUGoa5dQzRowpRWc1C8WVQF3ov+F7 WXVCp12xs0Msi37evqKLGv8Ax73MtfVJpRY5CCSf7zoMHAGzxp1V7Ml0XW7HV7X17bnHIlBc2ky+ ncQSEV9OaM7ow+49RUb4WtinnPVGGtSzWokSfynY/pq4MTBWuY5GdTZghqsrR28hZW2D+i3bFUR5 q1WPWbPRdBs5bm0/xYjPFqFu4jeC3hiFy/xI4blItEHGo3P0qquk+bNLH5dSa61h6Npp1pN9a0uF YxQ2qsrxRJy4lZOFYqn4lZT3xVT8kzy6bey+V7h2mlW0i1a3mVg0McV07I9tFVi3CGWNvTAHFYyq 9t1UedebWNYv9B05nthYhPruomnxh6hktCCeToylJHP2G2oT0jIHo2YzEbnfyUvKTxaZfXvlOjSS adHFeRXrEM08F28gUzMTze4VomEjH7XwuTV6CTWl2kWk+qazrWvaLO+mTw3JsEtHAazuvRVWe5nh RiC0xf4JVIfgqdiVKDaTEg0Uwt/Plu3lrWtbuLGaP9AmdLuBGjk9ZreFZi1q/JRIjhwIywUt/KMA NplExNFB6c8/lq4s5b5m1FvMc6C4uFZZJILqf4qB2ILWQZuEYqTGSqjkG+F2tNyI8gg9R1T67qN5 5msYbhJvK1y2nmyjIWW+XmEnVlDhZU+M/V1c/wB6CdsG4O/JIAIoD1Jkv5W+VliiiDX4SKRJ0pf3 YpNHHHGsu0n95SIfF1rXxyTWk2iRavealPFqGmalCLvXf0nDeS/CIYYo5RFHyEhKqRZqjL9mk1Oj YCO5nGQrf4O/Rt4bF7iPTtTiu7jTriQhHkWQT69dcmiJEgPKy48jv+7U1XB6mYOO+tX9n7Udqv5f 6JZaclvYxajKLmaK1RYru4f6tHPeRTyzR8pP3XBoQ/NNwRkjbXCr3Rlj5T07VJLrVb+G7t7u5vJ3 aF5pY/ghuIFj+FXpwddNiYduLN2Y4Bayrox/WhqNvpXl2C00zUnludVfXrywjYmSOBLr12gkUygf C1zHxjHwVXtTEeaZAcxy2VNHsrx7HX7rUdH1J2tL2+1bS7CVm4TLdxT25t0iEjK3IB3KdAZAw3OE sY1e/JFanDc6XrOgRRJd3tr5YtraOVS5k+svqUn1BJPjf4poPTLln/ZdgD8WAFkYk7gbbr9Wuhe+ f4jZWt3z0Z4LLVmtSY/Xh1KCX02kKOheK1bi9W3UsxX3d7Rtw+bWpeXm0O88v2eiWd5cadbXiXt2 PUknU+nHBpiI5d+ipP8AWafzRFutcLFj8cnmdNOtIE0TV1ij18ayYUFP9DkZbv6sy+qAfTkueIT7 PKM+GGlBI5JjrSajD5dhS0sNQa51HWbjVZtOJZpBFZzPd+iI/UKqlz6CJwB4lpCf2siD3s5AHeI2 2/HzV1t9Vur/AFjTbrTL9NP1nVLedXQmOKGKGZ4phySRSscyacsrcftevv8Aawm+iI11Z1pOmWul 6bbadac/q1qgih9WR5XCL0BdyzGnbfFii8VdirsVdiqldXMVrazXM1RFAjSSEAk8UBY0A3OwxSBe weSxXOtR+XEtDZahcaxDe2uvPeLBM07LLA9+8DsoLCUC3ew4n9ho1/apjYUxIZT521X19UstMt1u pJNMex1q7t7aN3aaE3ggSPgoq4WjystNiinBvaRVHvd5k9LV9euItLka01jy1HDeXF0vOIzBqzQ2 TOtPUt5OBMw3pUUFTsm78kgCv6XREL5P0fXqa60+oQfpZI7p7Z5PSKpILR/RePiSopYoGQn9qT+b Y2wIQOj+RLHU47TWprnVbK4We5ubO1aVrc2yXFw8hjETLWOqMEYeG3TEE9WUwL2WW/l2KOZtKt11 FLNr7TbLk6yemY9ItlufrLMVCET+ktvI/wBl+Krg3ZDgrrdfaqal5KttA0e6v9MudVuNRhsHsLMR yNPL+9ggtYzxReXwNAktR9k82yTWk6X91YDRpoLO/wCPlFL2DUJEgl9O+WOaG0kCvsszzcmuFWpJ kSnvgsJ4TdUmuo6PcPY655gtTqUOrai15YWkUayB4RcvBYJcLFxEgWP6otwrDorM3fAL6plXRDzW E6+SYVs31LTtT80Np1o8QSQSWcixRwzOsdFaILBbsXJ8PDDtyW5E315ou1tbXWLLTb6G2vbMa5PZ Ld2aq6wW40lpJ68QoCRymARcjs6lKYPcmtzxXf6UInl+STzTHoL/AKVXRrLTbawtL4iQBZtPlgvB Ms/H06zBkRm/aMRHbYsbNV0R2neTLQa9LAt1qqQ6ZHaMZ5XYJdym9l1Al3KcZuDmhp0DEd8DIEAb c9/l+LZxhYOxV2KuxV2KoL9Fx/pn9KmaUyi2+qrblh6KqX9RnVaV5saAmvQDGk8RquiNxQlE3lu3 lvWu2urkM17FftGHXgWhgECQ0Kn91t6nGtee9e2CgyEz3pX5O0KJLu88yma/W61d5jNaXlYwsYnb 0KwuiurRxKFWp2BOItZgXsyvCxdiqEfTUfV4dTM0vOG3ktltwV9EiZ43ZytOXP8AdAA8qUrtimzV IvFDsVdirsVdirsVQesaaNT0u509riW1W6jMTzwcPUVW2bj6iyLuNt1xITGRBsN2OnC0mvZvXkna +n+sMJeFI6RJEI4+Cp8AEQPxVNSd8aUyJ+CRaLo6XfmW+8y/WrtHWa4sYrWRESIwxiGFxR4hKV9e 2aRGV6HkTuDgBKZAbUkVpo665qRcX+p2r6oNWuZrj6uICLaQxWMUAM9txWkcSSorfHVamqnBuebZ 6Y7g77ft+ReigACg6ZJpdirsVdiqTxeW1TSrbTjf3TiC6S8e5b0fWmdLn61xkIiCcWfY8FU0798F Blxm7+H2V9ycYWKA1HSTe3VncC8ntmszK0aQ+lwZ5YjEHcSRyVMYclKUFeoI2xpIkRfmraZYR6fp tpYRyPLHaQxwJLLxLsIlCBn4hV5Gm9ABiBSykSbPMonFDsVdirsVdirsVdirsVdirsVQ+pS3sWnX UtjCLi+SJ2tYGIUPKFJRSSVABag64DdbM8YBkBI0L3Ycmp/m6zRBtKsI1dWDsaMUcIhBZRcj4Szn 7LMfgP8AMDlV5O5zzj0n86X4/wA38Wldr50/M6fzNNoZ0qxjliCSspqzrAzR83NLjg3ESfzCvYbE ZEZJ3VN0tJphjE+KX7d/6Kb32rfmpHNcx2mi2kqCe7W0mLoF9BOH1NnBuVYs/wAfPYfs9N8mZT6B ohi0pAuR5C/f/F/D7qQsWofnGbm0eXTbRI2AS7RRGYl5OtXUG59Qsq8qfFQ+FcjeS+TM49JRqR8v xw0iNS1T8xUOlWrRWtq9+LaO6uo0DMk8sjNcRwo00vxQQLyqysrUZqj7OGRnsxx49P6jueG6Hl0v Ycz8Vmpav+biXF7HZaJaSQpcyrZz84/jtSSsTENcrSQUDGq0Nf2SN2Rn0CceLS0DKZ5b+/r/AA8l KLXvzKsfL93NrFlbxXcMaQ2crelWW5lmjgiL+nOU+MtybZFBIHbBxTA3ScOnlkAgTXXnsKJPT9av Jrv5h2emard6ta2VoYfTg0tY15+rPPP6CMWNzQLupowX7XbiakymAbYjDp5SiIGR7/IAX/N/Xy80 LLqf50S2soGlWVvcoOcRj9N1d4pIzwJe62SZPUFaVHsfiwXk7mYx6MH6pEf2/wBHpsq+Ydc/MtNR az0uwt0Y3UbWCH02ae0iLi5d2M1FUH0eoU/HQGuMpTvZGDDpuG5E8t/I9Onv7+SOXUfzOXTkmfTb OW8a4hV7VKJxg9D1Jn5G5ZSTMfSXfanKjA7Sudcmvw9NxVxSqjv53t/D3b/Zsg9L1L8259YtP0jp dta6eJJI7wL6JUxGSMpKCLqSQOEDilKCvRq/CAZ3yZ5MelEDwyJl05+e30/jy65dW/N2OO6ro1pM /qA2dXjX920crOHpcdUl9NVoN1rU1+LHin3KcWkJHqPn9n9Hut13qH5vIsBt9OspX9FZJV4rGvrO 7r6TcrpzSOPg549TsG7FJydyxhpN7lLn+P4fgybQbnzFM+orrVrFbiK7kXTnhIKyWlf3Tt+8kPPr yqF7bdcsiT1cPNHGOHgN7b+/5Jtkmh2KuxV2KuxV2KuxV2KrXljQqHcKXPFASBU+ArjaQCUJqGt6 Tp6lry7jh49UJq/Sv2BVuntkTMDm2QwznyCW6d540C/vHtopWjEcfqGebjHGRUCgLMDX4vDIjLEl tyaPJEWUZN5n0CEuJL6L92KvxPKm9P2a9zhOSPewGmyHolF5+ZPlyAfuDLdE/wC+0Kj6fU4fqyBz Rb4dn5DzoLNO/MSxvbhIxbNDG0ixtLI6gKHDHkf+B8cAzApyaCURdp3P5k0CBisuoQKwAYr6ik0I qOle2WGce9xo6fIeUShZfPHlWP7WoKa/ypI//EVODxY97MaPKeilcee/L0JlHqSSeiKvxjPZgtBy 49zgOaLKOiyGvNAy/mfoCr8ENy7eHFAPvL4PHDaOzsneFNPzNsHjeRLKXijKu7KCeQJ9/wCXB447 k/ydLvbj/Mm1bUYLRrMxpM0Smd5AAol4nkfh6Ly8cRn35Kezzwk2yRtf0JTRtRtVPgZox/xtlvGO 9w/An/NPyRkcscqB43DoejKQQabdRkrayCOay4u7W2VXuZkgR2CI0jBAXb7Kgkjc9hgJATGJPIWg U80eXnlnjXUIP9HSGSWQyKIwtwHMX7wngSwjY0B6b9xg4x3th0+Sh6Tvf2c27nzJoNtJBHNfwqbh 5Y4zzBXlbo0kvJhsvBUPItSh2648Y71jp5m6B2/TyR1vc21zCs1tKk8LVCyxsHU8SVNGWo2IphBt qlEg0diqYULTJGJFjLASMCypUciqkBiB4DkK/PFNdUDd+YdEtJDFcXkSyjlWIHm44gk1VakbDImY HVshgnLcBuw1zTb2yN7HKEtgxQyS0QVH+tiJgi1nhlGXCeaHu/N3lq1/vdQhPtGTKfpEYbAckR1Z x0uSXKJV9N1/SdSkMdlP6xCcyeLKOPIr+0B3GGMweTDJgnAeoI55Yo6c3VK9ORA/XkrawCUK2s6Q rcWvrdW8DKgOwr4+GR4x3s/Bn3H5KE3mfy9CoZ9Qh4klQVYNUjc/Zr44Dkj3sxpsh/hKFfzz5UTr fqf9VJG6/JTg8WPezGiy933LD578vVjEcskvqmkfGNhWrFa/Fx7jB40U/ksiXP8AmjoIB4W90xHS qxgH/hz+rI+OG0dmz7w6D8zdKlk4C0nB4s1Tw/ZUt4+2PjhT2dIdQsuPzNs44lkWxkbmzKoLqv2Q p32P82Pj+SY9nEnmrSeRtSlcyy60zTc/UjcQ8eBLO7cQJNqtITicJ70DWxGwj9v7EFdfle1xMZW1 Q8iqg1gqTxULWvqe2A4PNnHtGhXD9v7FL/lU/wD2tf8Akh/18x/L+bL+U/6P2/sRUv5a+obg/pGn r1/3T0q4f/fm/THwPNgO0Kr08vP9iF/5VP8A9rX/AJIf9fMfy/mz/lP+j9v7FaL8r/TheP8ASdeb K1fQ6cQw/wB+f5WPgebE9pWfp+39i24/K31pOf6T4/Cq09Cv2VC/789sfA80x7Sr+H7f2Kf/ACqf /ta/8kP+vmP5fzT/ACn/AEft/Yipfy19Q3B/SNPXr/unpVw/+/N+mPgebAdoVXp5ef7EL/yqf/ta /wDJD/r5j+X82f8AKf8AR+39itF+V/pwvH+k682Vq+h04hh/vz/Kx8DzYntKz9P2/sW3H5W+tJz/ AEnx+FVp6FfsqF/357Y+B5pj2lX8P2/sU/8AlU//AGtf+SH/AF8x/L+af5T/AKP2/sZvp1n9Ts47 bn6np1+OlK1Yt0qfHL4ihTrck+I2oa3oOl63aC01KH17cFyEqRu8Twk7f5MrU8DuNxglEHmyw5pY zcdj+2/0JNH+WXk2OzksxZu1rLKJpImnmZeQWRQBV/hA9dzRabmvWmR8KLkHtDMTd7+4eX6gpv8A lV5IdIkaykKRIkar9YnoRExZCw5/ERUirdtsHgxZDtLN3/YGR6VpdlpWnw2FkhjtYARGpZnIqSx3 Yk9TlkYgCg4eTIZyMjzKvOJjDIIWCTFSI3YclDU2JG1RXCWMavdhR8h68ZGl/TZEjwrbM4RgfRWl EqG6fCK+Pfqcx/CPe7L87jquDrfxQ9v+V9zDLzOoIfhdaemf2lK/ze+DwD3spdogjk3L+WNzJCkf 19AUZmr6Z/aCj+b/ACcfAPeo7RAPJR/5VTc/9XFP+RZ/5qx8A97L+Ux/NRtv+Xd5AbfjqAAioHoj DkA5f+b3w+Ae9rlrwb9KDb8q7tjVtSQk9SY2P/G2DwD3tn8pD+aqW/5X3MMvM6gh+F1p6Z/aUr/N 74+Ae9jLtEEcm5fyxuZIUj+voCjM1fTP7QUfzf5OPgHvUdogHko/8qpuf+rin/Is/wDNWPgHvZfy mP5qLh/Le4jNsfryH0KV/dnejl/5vfD4B72s9oA3tzQn/Kqbn/q4p/yLP/NWDwD3tn8pj+aq2/5X 3MMvM6gh+F1p6Z/aUr/N74+Ae9jLtEEcm5fyxuZIUj+voCjM1fTP7QUfzf5OPgHvUdogHkz/ADJd U7FXYq7FXYq7FXYq7FWnkRBV2CjxJpikC1CTUdPi/vbqFO/xSKP1nBxBkMcjyBUDr+hBWb9IWxCG jUlQ0PhsfbBxjvZeBP8Amn5KT+aPLyOqNqEAZqUBcftCoJ8B7nB4ke9kNNk/mlt/M/l1DQ6lbE9d pVb9ROPiR70DTZP5pTGKaKaMSRMHjboymoNDTJgtRBGxXYodirsVdirsVdirsVdirsVdirsVdirs VdirTMqirEKOlTtitIZtW0pKc72Ba9KyoP45HiHe2DFPuK1dZ0diQt9bsR1AlQ9BXx8MeMd6+DPu PyUpfMWgxAF9QtwGJAIkU7ilehPjjxx72Q0+Q/wlMck0pdqfmHRdMDfXLuON1oDEDykqRUfAtW/D IymBzbseCc+QY3dfmlpSNS2tJpgP2mKxj6PtHKjnDlx7NkeZAULr8x7tDciKyjBgrx5OzV+MJvQL 45E5yzj2eNrPNI7r8yPM01PTeG2p19KMGv8AyMMmQOaTkx7PxjnZQo85a8lnPdT6jKBE8ZLdgCH/ AGVHsO2ATkeqZ6fFHpslWp/mRcfWOH6ZuEHpxmiGVeqK37IHjkjxtcDgHQfJLJfO8E1fV1OaSta8 zM3Xr1GRMJNozYRyr5I6+8xaVz1EtcEkVqSrn/dyj+XHgKI54ADdKP8AEmi/8tH/AAkn/NODw5Nn 5rH3/ejbPzDo5s5yLjpJF+w/8sn+Th4CxOogTzUNX8yaWkjmObnKIYyiFXFW9JSBXj3x8Mo/MwAO ++6Rf4xuP+WZP+COT8INH52Xc+kPJty115bs52UKX9SoHTaVh/DMiA2dXmNyKdZJrSLzRb+bplhH l26gtWVX9YzqGDMzRqvVWpxQyP8A6wUHYnITEujk6aWIX4gJ/B/YgfKGn+e7a/upvMNzBLb3IMvo wyNIFmIjSico04xhYyQoO3LfkSSIwEr3bdVPAYgYwbH3b+fP8bMry1wXYq7FUruvNPl+2f05L6Np KE8Iz6hHEFjXhypsO+QOSI6t8dNkPRJbv8ytHhiDxW88pZmVahFB40JNeRP7XhkDnDkR7PmTuQk1 1+at63+8lhHH7yu0nfwUR9sgc57nIj2bHqVsv5naihs/VW2gW5IFeLk/bKkCreAxGWRYy0eON2Sx +X83tTcnjqUMVeyRoaf8EGwcc2Yw6f8AFqdr+ZWoXFzR9YJ+CVqLxUVEbHoqjpTBc2RhgralK989 XBtIi2syjk8imkrrUUTY0I8cHrZR8EHkPklknm2OQUk1RnHg0rnr8zkeGTaMmIdyOttb05304tdK xNKEkn/dzYeEsTlhvR/FJR+m9J/5ak+/I8BbfzEO9E6drWlG52uUP7uXv/xW2EQLGWeBHNfd61pY s4CblB+8l7/5MePAUDPAHmyvzv8AmcfU1Cx024MP1N0h+GtZWYOS3NRQKabUbp86C+UieXJ1+LFC As7yeaap5vvhd/3MZPpxEk8u8SnxyHhBuGskNqCWX/mO+u4RHQQ0YNyjLA7AinXpvko4wGGTVSkK 5Iy/vbwHU6TybVp8bf7/AE98NBrMzXNJPr99/wAtEv8Awbf1w0GPiS7yj7K7u3sLlXmkZTJFUMxI +zJ4nGgkSJ6oXVf97P8AnlD/AMmlwsCg8UJ5f9dU+n/k+mBmeSR4WCYaf/vDcf8AGWH/AIjJgLKK nqv+9n/PKH/k0uFBQeKH1X5B/wCUSsP+ev8AyefLI8nHyfUyDCweeeYPzk0nQfNGo6RqMCRWmlxr Nc3puEDkPHEVVIWVd/VuYkqzhfi5VoGoqt0H87fLmsaqbSCCQQSyWMFlOHicu+oBmj9RQ9E+FeWz MR0bi5CFV6LirTMqKWYhVUVZjsAB3OKgPDvPX5rzXU8sGnzEWqSGH6spaNmUV5NIab7jp0zGJMj3 B2kIwxD+dP7mJ6Z5wka7p9VA/dy/tntEx8MHhNh1hO1ILXNavZ4YJY5JIFMko9NHYDZY/CmSjANO TNImwaSj9J6l/wAtc3/Ix/65LhHcw8WfefmnFrdXMx0r1pnlpQjmxb/d7+OCl4iRuWPZJrRmlf72 f88pv+TTYpCpqH+8Nv8A8ZZv+Ix4AmSX4WKeWHXS/o/5PvgZjkkeFgjNK/3s/wCeU3/JpsUhU1D/ AHht/wDjLN/xGPAEyeg2/kDTDYXFwp1WWGltO8xjsq8JUJiNDdV+ISfRlnA0eP5I+6/Jn6xL6hi1 RTxRacdP/YQL/wAtftjwL43kg5/yct4JbeKRdVD3UhihHDTzVxG8pH+9e3wxtjwL4vkmc/5SGU3J MGpj6zWvw6ftVw//AC1/5ODgT43kgv8AlSI/33qn/Aaf/wBleHhR4vk3L+VEGm2E8k0eqCHlGzvw sCRSqjYXfcyY8CjNXRVuvyZ+sS+oYtUU8UWnHT/2EC/8tftjwL43ko/8qRH++9U/4DT/APsrx4V8 XyRs/wCUhlNyTBqY+s1r8On7VcP/AMtf+Tg4E+N5IL/lSI/33qn/AAGn/wDZXh4UeL5IiD8nPRhk iEOpn1GRqldP24Bh/wAtf+Xg4FGbyQ+rflJBFDPqFxHqiQ28POUhLBqJDGKmn1vwWuHgXxvJ3/Kk R/vvVP8AgNP/AOyvHhXxfJ615Rggh8tacLcyGCWETx+qFWQLP+9AcKWWo50NCcIFNUjZtN8KFjQQ OWLRqxb7RKg16dfuGKtLb26tyWJFbY1CgGoHEfcu2KqmKpV5rKf4a1NHMiia2kh5QhTIDMpjBQM0 a1Bbuw+eNWkGjbxMflOszRP6mpM11czWqMYLKrTQ+r6lSb7/AIoffI8Dac1pja/kvc283qU1Bvhd aejYD7aFf+W7tXHgXxvJTl/KV7iU6eBqIntlFw/7mxpwuCUX/j98bdsHApzX0W/8qPuf+1j/AMib D/suw8KPF8ldfyte1utOt3XUTL8XpL6Nj8XpsZW3+u7bNg4GXjeSh/yo+5/7WP8AyJsP+y7DwsfF 8la1/Je5t5vUpqDfC609GwH20K/8t3auPAnxvJdP+TV1NBHEV1AemztX0rDfmFH/AC3f5GDgU5r6 If8A5Ufc/wDax/5E2H/Zdh4UeL5I2D8orqE2p4agfq1P91WPxUkL/wDLbt9qmDgZDN5IL/lR9z/2 sf8AkTYf9l2HhY+L5K1r+S9zbzepTUG+F1p6NgPtoV/5bu1ceBPjeSzUvykeLTmmuf0hFb2Ylnlk 9GxaicVLGgvSdgnbBwKc3kzjzEnniBvMSaBpTXEIi01NIgkOnxRSFZKXgt2PJk4wEcPrKMA61UFa K02lnYrTfr3xVg35jr+YLS23+EYp2kSJ3aVRpzRJL6iKtPrZWVXMTSfEtVptSrVVVnK8uI5U5U3p 0rirsVY156/xobTTk8rWtpdSNfQ/pOO8cIn1QEl6VR/2uPIgFgK8QT0VRvk9/Mb+V9MbzLEIde9B BqSK0bD1gKMQYvg360XYYqnGKuxV2KuxVj3ny2803Pl54fLEiR6m00QIlSKSJ4S4E0cnrfCqslas FZvBTiqv5O/xF/h+3/xDzGq85vVEvoep6frP6PP6t+55elxrw2xVOI444o1jjUJGgCoigBVUCgAA 6AYquxV2KuxV2KrZIo5UKSIHQ9VYAg036HFWCaW/5hCTy6lxpcn1U3eoS6vLPJp0dzAjTH6oziAS xPyhlcP6AVi3VhvyVZ7irDNNt/zBfzzPc3ciw+XFe5jETQ23KaFUiNqVljd5vhkebZgNqk0qBirM 8VYN5uP5jxeZYZfL9mL7SjDbiTnJaRGFzcgTmEyI0nI29eXKq0+yOWFWc4FdirsVdirsVdirsVWy RxyxtHIoeNwVdGAKspFCCD1BxVdirsVdirsVdirsVdirsVdirFfzIXzbLolta+VjJFqN1fW0Ut1F w/c25krM786/DwHE0BO+KvL31r/nJu60+0Euhxw3dmY3HpmCMXDwpHL/AKSVujVZWSSMogUfFvxp irJ/MmsfnPp/mS7k8u6CupWd41pEhu5k+rwhIVMzxRiaNgWknIYk0/d961wqkNz+YX506pc3Okaf pNtDqFjbWr6raQRSC5Ek0QknWKeadIECk8B9o71UsQ3FVH6dq/59r5eFre6NH9e06W0jjnQq0l2k DytLJIxud/USGIMBQnm3yCqa3Ou/nidF0q4h0OzXWPXvf0nZfCYTFCeNqOZuSyerXlyUtvTalQQq J8u+YfzkuG1Ftd8u2Vmltp0k1msEhkaa+4q0MYrL9liXVlIWhA+LfZVJbPzZ/wA5EPqq2915UsEs lnijkuFIo0P1j05pF/01iP3ZDqCvj17qoTT/ADB/zkONT1G6/wAMwpBeSRvBa3UqSJBH6SoEj4XK 0IkNZK/aFSONKEqnGna5+bt2PL0+uaLLYyfX5W1S10v0OLWq2iiJJDNNLQNdSHkQw+FfpIVjzX35 5PeadLDaamlvA95PqiSCy/eLLclrWCFeXxKkCrGxJBBYsK8QMKEw0e7/AD9sPLOkK9sNQ1aW6mN8 16kDFYDHEkQcRzW/FfVeR9izbDoNsUou881/n3HqupwQeV7GSwtVdbC5BJNzIrCNH4m6Tgjn95Q7 hfh6gnAr1WH1DEhlp6vEc6Cg5U3oKt+vFV2KuxV2KuxV2KuxV2KuxV2Kv//Z + + + + + + uuid:1C547E781A4ADD119EEFF96D7801BC77 + uuid:c81f585c-6684-f14a-ae05-056a473a74d0 + + uuid:BAD572641149DD119EEFF96D7801BC77 + uuid:B7D572641149DD119EEFF96D7801BC77 + + + + Document + + + 1 + False + False + + 39.000000 + 16.500000 + Picas + + + + + Minion-Italic + Minion + Italic + Type 1 + 001.001 + False + MinioIta; Minion + + + Minion-BoldItalic + Minion + Bold Italic + Type 1 + 001.001 + False + MinioBolIta; Minion + + + Minion-Regular + Minion + Regular + Type 1 + 001.001 + False + MinioReg; Minion + + + + + + Black + Red 2 + + + + + + Default Swatch Group + 0 + + + + White + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + Black + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 100.000000 + + + Yellow + CMYK + PROCESS + 0.000000 + 0.000000 + 100.000000 + 0.000000 + + + Lime + CMYK + PROCESS + 33.000000 + 0.000000 + 72.999992 + 0.000000 + + + Night Blue + CMYK + PROCESS + 100.000000 + 50.000000 + 0.000000 + 0.000000 + + + Pigeon + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 30.000002 + + + Red + SPOT + 100.000000 + CMYK + 0.000000 + 100.000000 + 0.000000 + 0.000000 + + + Red 2 + SPOT + 100.000000 + CMYK + 9.000000 + 82.000000 + 60.000004 + 14.999999 + + + + + + + + + + endstream endobj 314 0 obj <> endobj 316 0 obj <> endobj 300 0 obj <> endobj 302 0 obj <> endobj 304 0 obj <> endobj 306 0 obj <> endobj 308 0 obj <> endobj 310 0 obj <> endobj 312 0 obj <> endobj 313 0 obj <> endobj 398 0 obj <>stream +H‰|•}TS÷Ço„nG…ë]I®æ¦sݺ£UkµSW‚¥ÃQ^ +ΊB€@$„„÷Iä=/!ð¢€! ‚”V¥Âjµø2±žºÓÊ:Êz:ÝvúÄÝý±Û­=;;;÷œ{Ϲ/¿ûý~žïóüXHà*„Åbq£’"ÄEo<,É‘Èr^ŽIÓ¢”B©Däø¢dùÖjž]EÇÒ ëKžÌ£ëÄT»Dk 2d|öPÿ‹šý²ÜB¹$#S)xIô Á+»vmÝä?o„§ÉRÅ‚øB…R|R!ˆÊÉä¹2¹P)NÛ,„K¥‚8ÿW +AœX!–«˜»ß +H¡@)¦‰O +åÙYúÿ[ AXÌl@—äU‰`!XÈ› 1,$> aÌ"«Ä‚|Ͳ­ŠXu' >àq  Aì@vuP@ÐÑ /8xµv¼£P>žíõŠ†0|¹úÇà`ß¼ßâºDÍŸxï>o%b<²•_„/]·>ÿ3oR=œÕÅwdþÖüI·³ñE]ö=}“NE#Ü(ú+æR®Û§çâK0ç;K4t4´67bKœšQD¼ž³’²»E¾|û–tóƨƒ[ÞQš>²P^ œß×NøÜ,½ÏÁOø„>{QoøÁÚ•º_é¹úlÔ'e·Ÿ]±ŒdÂÉJI¾SÊOèRÉ×*ºï¶Q7à; fÃb3·Ùr ¼²·È­VÁùð>µ+.~Ô'ñÕQ9o%fó ¤9út2= ŒdKs×/ÙAΦ¢èLZFô°]fm¶™ÂwÛÞ¶ÅÚ…®Ã¹¨wÕ„ámÆ^µ±ÄRìä–v©=Ê÷T“ŠZö'Ç–xð<õÓŸ6²ñD}öíÿ²þÔxÙÍî½Íz£šË¹lRù¶O•©C‡ ¸Œ/ú +% +”j-©«3Û)|Âh/uÿµª1 _,>­®W4aJEC)¹cÇñ”dê×o¥ÒÈÞž3iCg.;ûø®ž±©/VÏ.z ÝSì*o'½—¯Rt$l""©P!ÃR3óË*É +½­wÌ|§gŽê™ëqtZ0³¥³ÁBÚ:Né,Tu–|ƒ¶ãLj¦`ùn­DcêÐ.bÖâÓ¾W|G|êX¸xë.ª†} ¢C†êŽrRûSyÑn*Ç4T«ë(|zÇ?•FžVTÜŒÖóùç®™§¨W怄gxó'‡ŽóñOi.Ac‰4~"—¯ÕU“Y +Ç= Õñ·z“wuO ÛH›¹@Lqn2ÜvLV«!Ý/é,àðpJ€Àø´À& +™*ïÅÏoßôÿ&£†â**jËÉèYÇPcN¼°‰·Ó#ô ¾;diç_<ç™èõ0( ¶¡Jìå½dïCï•YŠ~|Ž8o¹í¼Äw\r t[1£ÅÖÐFÚ»«*Û(]²œF +sTYò|&LS”iÈ2­ÃEqÄš»ðå$Ëk`#`¾ÕF$'%å‹ÈÄ™óMµ†º&jeö^[áMfŒì3FšÊ¾¸™Gœóþ»ŸÙþòŸißÂÜ[)Ž¦lRítn²·k6µ4šI½“¦†/tBã X/ãkˆ¾‡ÞÙyª¤UÉ2¿‹X…/ÿ,茥jXD&ï?CµÉP{·§ÇH6Õ–gTRø£8Z,¶«\$ÓîÄ“hâHnŠTìÌ™ö ªûÓ(ŽË¤êSý5Äøk[˜SâËþ;¡Ì/¬¨ +´[9Uâ,ò•Œiû-­í»Ñnt7ŒVa5®ñ.^—¼]z41)6–/ËUæÉ2±v?¬ž xØYã©ŽRRûsyÑΧ¬óW0>&¢“SècF}°»š\† æK\ãX³ÝåÂð‹¶èÞƒíéØÛÝùƒ¤Ûk½?Kq–Ÿâ …µ°æCX{žÃ—!¢¨c.;!ÐØ}:ù‡Ån²³Z%ò;O¤KçŒs†Ýåüì˜x1쪾mÏå÷¡ +ýÂ.jË% •º’\*·ä@r|#Ý:‡^µœJ'…ÿa:Òc"›¦Z*ƒÞ¥IÐ$”%p9nÍv5!°B ^C\¹îòœ§®_=·òo)áÚfá±RE +?2-b+ÆÛwf`|x æˆzz]<ÍÊ*Ãjôúš +R’3~¶Î.º,T£ÉXg"û${)N„I\ðM-ã·@:Óº¢Èè2úueé( ½»<^¯IàBH_ƒ§u¡í°Îw ;0g§µÞLš¬§*[(|®¥Ò\k6˜ &c›Ãdmî©hÇ:5rs>™•ô›íG™‰Ðq“ùÕ˜I?”CršÁ ‡çCï>¸·„OÀ'°“˜>>œàâK;2ºûyk_ŸK©¶ññEƒÖRÝiÅð «¹ÕÖÁ;#t&‰Og¤ò¦èR³yѳò±<þ´´¥@Å;™W¤”‰í#~ykYc¦¸¢HQ§ÀÒêoÈFÉÇ>_¢8tSrþ…”ñÐfÄŽ€ž'ªÐ4¦¬%sˆìfò7ûïüé¿ÛnÁ#´ŒÍù+Ôÿ|šùšûu—÷@Ï‹÷ƒ’ü|— Cyÿ ¾ +÷ Œ ÷pø] ̆4« endstream endobj 311 0 obj <> endobj 397 0 obj <>stream +H‰„”XÓÇÇ¿¿!ëÖtåÛXÂY.u¬Óvì¶çjõ¡?P)Jå§" A@"|“ð›@HB!ü + D~"Tt`ukh×ù¡Ó®­Uçtc½/û®c¡îÙþÛî¹»?>w÷¹{½ï}ÇÀ6ø` ƒ³?1⽘¨7ò¢ümû¥éBAÆú@0TÀÕ|hH7üýîêeü ky¥¾€Ô/Žlúž¯ÿú<Õ;¢…Xp"[ÊÛ’±•·=,,ô§ëý›¼ðLÑq>/V!‘òó$¼ýù"qHœ.ågþŒÇ  +y1ë«$¼¾„/–y£ÏÎÀHxé<©8=“Ÿ—.Î割þW&Ì[ر1 ÁÞÆ"°H, +;ˆEc‡°X,‹ÇŽ`G1/+æƒùb›096ÈfüÍç°Ïœoá†ð óx1þ˜™ÎüÐ/Ãï1›³ºMÎÐP¾“©´´š„G3é¥o“pö}Uõ‡>ƹÔ½è‹ÒÛ8¯P‚.èm—PÈCð ‚¡aô¶D:d@~Ô?9ô–7éz³7ºEä ÷!oxë=^sCôz¯½Moìûu3”ušA±–}ÑÚƶ3Ž¡¶‘"S@BvYe< ã™h +ÁÿúpaîQàWño9’"ËÍ +Š ³—àÃýg®Ì;®øØWiÆÖ={`tô¾Cû>`)ýØèi]—F¶ÊîòGqÃÄi„­q*¥Ÿ×ؤúyn:-”oVÆ“B®2[TW]% @L}W¤^Ü\š[ßkøuûÊÔPÏ$ +ÐÍôáNæï©Mí+¶)³‡kèk™jÐwÐÌ*éL•SY#àÖµqÅ›Shc@ “ž¥Zqö#ÕlŠŒúÅY¥Üpí^$„hl‚sTí ­À¶|îâ$$ìd;^”w¢P4õ-žFè@L'Â;ŸVêÈ’†$„zùɆµ“Ÿ’£b“iFpà/‡ä­“ý-ö  gÆ'Î^fÕ3ó‘‚3ÐVYa‡Õ|i°²Eô—äf—²Ò3ÓóJA±Ö52`úÔ} öÍô»Ý6!4X[õ6À6©¦Ñ·£Œ³ (æ–/z‚Øœè¨ÃŠ,IÎ]j¬oÖàC7zë“/Gs§EŽ…Ǥ‡ÒÏ͈†n[Ÿ> ¢•ˆÅiC¾ç/zì¬F“Mo½ª¬ø´4‡l^“ŒJ•£íýg—ªï¾ÿˆ¸OÜd,ÒŸ'Ç‚9ÞÙ}Þe¦:-_‰'ûh~TeSµ‚¾Gó$þ˜E•pNuº<µ°½VÙ!YrAA=,ÒÙKzû¦ê·Çe÷º×­£r~—(%.P;ïpÄE +jsw),;¶R|u`ÐíèieYÛz;°kkŒ°¥ª£ßh!í‚Œ]ïì}?¨XV,—ä±j˜_Sxw£ÎNõ{’“»¡bÒÏS_qLóè×réJ&’ ªÃ ®€únÓ¸uªiÔÔ<<êÜ×uÀ™ÈŠuuª;@Ç€mf²©{•û£Í‹(ü³•¥ªyb… V¥áåeI5 ¼Þâ1BbűܱÔv“õgg¶¹%Õ9<&{+iG°÷8íwð/;rÍ%@#«T{ãE{Swü„UÍìü +ŸjnXóÝäظu1ΧWÌj…WL>V©IQ&p\†©äctp§úÑĹ œ5…™˜I‡)ã”qeqÜE—iªû‹¦aîtb!Î%ÐW•›âµ&uÖâ e±´Ü^·3=ã©óªÍ[|ºX1OŒ¢WlœoÀ"nN{Ðsè¥KÀU‘›BBâÜ!ºOPê%=ße¸ןC>ÿ¿ä£ŽeÇ3ò/¡ú¹|Ï‘_ý¬ÿ²¿¡µkX0‰­­-’Øú`””QoœõGÛPßmbeQ<Ž±³]צ'¤¡ôË¡ôÆ]yEÍ­*xŸJà¨b¥T.+âªÓ„ª@ÁÕKÝ枦>#W@¿{⻪>¬-ßO²¤~HmÅ;ýˆÔÄFACµÙ|™ëD/ãÄ`¹£»ÆfZoŒ]˜b]í½}-p)ùò$Â*uv[Ò$CkÞðE±T G¼?96á;ûwu{yj‰$Ì¡·“ d‚2‘»äj¶ý®ãOÜæaûPÏ kÈÕj0ss•Ö MåfÙ`66Y Vƒ¥®¥ÂÌjÑž´¨èÐ$XÃlþ >eÑ JûjÑçó×>¿ê‹|Tœ{÷îÞ$]F¡°=­÷Tài·ÓÝߣµ´]‹ÅjÑ7ëšY:¾3¤$çI`rZe†<0iR:–4qÂ(fåŠóE¹¦¡¼ Y«S–³J´JEi`®î£Â!ÀÞµþ#®1½W½JbþŸÍÞ¿Ù„^àȤG“¥@]Õ9n†¡Öo{=8ýóÚ¨1„GïÁ÷2E£ +_d GðÝ'Ùm`â‹…±S½¬šÛû)š¸q=rÆk½JJLD13èçÃ1‡ÉLæZIœ¤ƒð± áy@S®7TBCe¥Ud'e…0¿Ö)õ€ñi¾†ã4ŸhnuÏxÿ+¨-±ã‚l¡¢•œïUÃ4ôý6—ÃÙÞÍíwu··³©ªÌkÕãZ½¡ÆZ;ÛÜ]òîÜÌŒc4+ Jfñ+råP(<’›ÙvÕ,å/ï“ûG‰Ó†8QÙâ2!H ë² + qýé´þ„EœVYq⺲DVAR\×"e ‚qŽÿy{~ap}u€t€lŸ½¨¡«Ã£¸Šª–œ‹š3ûûû +kh§i«Ž¥‘™—‰ž…sÚÈy´²¨¬ð¯|šùšû{—÷FÏ—÷ƒ’ü|— Cyÿ ¬ +Ù ÷zø  Ñy=Ü endstream endobj 309 0 obj <> endobj 396 0 obj <>stream +H‰|[HSqÇÏqîRêDçll´s’t^{H„2s`^Ód`¤M=êt:=›–)©sV^ò^Šó6'™š%¨£,Œ´ ôÅŠL(±ž|ûûKµ½ôÐïáûð»|¾ßŽyz`8Ž&ª” ÉŠM¹FWžAUiÕ´{B²2œ•x¢¨ýÇ—;÷8†õ,øÀ_(ö{|âïÞaâu5´¦¨Ø@žÊ!£cc£ÂÜzšŒ+ÐåQdfÞ@•éÉÄò|]¡£Õª ‚$ã´Z2Ã}¥'3(=EW»º=©& ´º€*SÓ¥¤®ð$ÌU¾˜æ`˜ã»^Â8X¦Ål¸ïÂ7Ha(>ø*xqÀ›OÙ¬3*Ç5%•tq¡Mÿ2“ìçI|z˜˜,âp=D„"¿íYQ$"¡G‘ûÓ…©£àe¤„0P,ƒ‚!XJ¤ „-cìÌÈòu¨-ðØU±ówôî=s‘ôð> endobj 395 0 obj <>stream +H‰|”}TS÷Ço„nçŒ3×Û’\½7gÎ3wlÕv¶§º:-J"¯Q&HH ‰$$!ð^Þ ä Þ +QZµ¾uzÄÚÕu²²®³;=þâîþØEwvzöG<¿sîýÝç~?ßçy~ (t Ä`08QüÈ÷㣷ÇHs¤Šœ7"rQ”F — +W_n âŒàÆPÃ×Pq”yShÑóx3ÙëÖáz`Ü0± ¹Î^=h8¤P¨¤Y o›ð¼7÷ìÙõúj|‹wP¤Èó +Ôñ5/*G¨P)*F,ÚÁã”Ëyñ«_©yñbµX¥¥Ÿ¾“ªyžF%‰ÏT2ž"ó‡2Aôb@?…¶@o@¿„" Hè(ô ÅBÇ¡(J‚øÐZ…@9ŒFÊšWÖ …°C…Ƈþ n€¿aª˜;6ÂbŠºAs9Hè’çdXyt2-ƒI–‚¦¢eN8¤‡éÈ/§¦ÿÝ̳¨ò¸‘c’Á@OŸR›ÓšjZ|—8ž@ç…¶~ez(–õ´©L\ÉQVÁ5ÁDÌ̦$0µÉ™u`| ”NÈÙÁ@RkA8º\ý*ð2?}Ôì¿B.œ›üðw%b"²…hC—n¹žLü;­Îî$¼’“ŽÃ8åf¢‹FÙCS“QKAœ(êkz+50qÐ%0<‡™ÛÌ-–F¤Ñê¬oÇ/Ϊ#ÞãÇn!åÌ.!†.ßû½|Çö¨#;«±ßt’ã@ +³»n2xwa +†€µÏ Ì$[4Y¿—¼Üø+Ó*pPÎtŸ[qŽdYÃÕ©ižѨN3ðwʺ´’·Á3€ÖE Ç2H§Õ”÷èuZpaŒ¿à•š”k°¨œãÉ2"_žcÊÄs™™Öì´˜9«š½ø˜è(II(ÖÍô;*dÝÛžÔçøcú• Ôä¯ G[m=:[‘³ÐÇ)îÔj>ÔN«oWx‘¿zïß\â‚×(¤‚ÊÆD“M²{ÿ‡sð§ë·ßb²Òª9¬gvmp÷Å{°¬EƒÆò5Yº +ÜXïð4’è¤À= ¬ëŸ•áèba­®AÝ„4jÔæbüí·ÓÒSÉßÏ  Ü}gECgg†}½„¿;p±i`êß÷úKݸïÉøÕ9’Š¯cj¡\ V ’¼’r¼ÌÔÞpÜïž'»ç»½NÄáì0;ñö¶*£“¬ÎVm©ÈGXNÃðÕ4c¬Û\±T>?Oˆ'Ì^hª³Ö7‘+`ÿ'+Ü鬑CÄÊeÄÁ8ÁÖ\jíœ.Ùþ¯ ºéf1GO¹8^¾E@ºAØùéž6Äbontà¬)ªr:øt¢JçÓ±U‚0)x½”`7¦Vz¯Ouu7†ÚÅ©[Ó¢ÓIÔ’:‚u˜üÅ:$Û¦ÒrÓ’óãQž¹Qÿù™<faèu½QjÜoDܹ]„§Æê²RÉ$:>™{8~§„HSä•Ôêj :4Þ]Ø&9–’Äø*{iìk.eÌðf‰¬6]«k³455hóïLGw×Ù¾á™Ú{Hk«ÒEXë»û[‡F8,]Q‘Ž–Ïe/vÀ(lF—ѧß°Þ'ã×È¢>X«ü·¾M$ºü1p³ÎÊa!žzèT|,Ùª€=]£Ý6¼©®4«œDŸÆS&øH¡GëÇéaÞGc'”ér±/odr`xt@×'"YŸÛµ½Z@}bû:6ØIxQPö¦É+(+ÃË*¬í¥d‘O?ªèEŠ>g‹Ûé±ylƒæ±J¤£Æ?ÑÉíT¹å)Éü¸8B¡Ôä*$H ³lî\?à"çlUmÅxÅÏUúwÉœñ°¡z“ØHŠ¨SB*5:e3…fg“ß:å¸Â±,¿AgÚ£{Ž¸3‘¤®þ¼|pÜõèÉ?{álëo€1à'è2ˆhÅê™Ö«>jëCþ0ýx± ï¨Ö +WÑ“©"½ƒF§Í»z}Õ¼|õªy•/‡cù#P ÿÅ#lUâc‘’T½ŸšAkwÍÃsΪ¡L\ñ?SGºí¸…6µ‚Ì¢ö ‰%‰Ö†© 2Å€ àØ ØïnùG/·æί|É]Jüd‡àT±:ˆEì¢Â¹ξlóXµ)bd— 5&SM.Í™xv][ô;ÉF»­ÞŽôJ÷“¬<»ü ¼gu47 +`Ô 2ƒ'0aä÷tÙVueI)µ·4Á`Hä€ ½æÑ–»­·9h¿k¡sØ×ø:\ Üîª*o&ÑùærGÃê°Úm­^»ËÒ]æF: *GžÍ?¶;…¬a¶}Jÿ*`7 åà¬à 0Bcؾx¸„N‚ÏÀ»Ø¥´áD?!oËêêãö{]½½~®@­Îê‚Nº-ímܳ_|º0+ƒHI7fȸÑ×T\â’¼9_Ë=“«×(Äž)QÚRÒ˜o(,Ó«ëÕˆ¨á¶b ÿö韖HÖ^ºâÄTúû.}¿€QðVm†sÕ©’ÜPí´’W€{Å28S¯0Á¦bŒÞ¡Ö¾§? Ç1ÏdÛJà»ÌT#LAy>É(>ûô³Q?ɺü²º‚'©PŠþ$0ôÎûëãÏ‘+wÝýÜsZ¯L¦ÈQ×Fg~m.Q+ÑŠ¤|¥¨T/?MwÈœá»ê9âfué˜Oÿõ1¾€t©á÷<Ãÿ••sj–9–û-Ž9|šùšûu—÷@Ï‹÷ƒ’ü|— Cyÿ ¾ +÷ Œ ÷pø* À O endstream endobj 305 0 obj <> endobj 394 0 obj <>stream +H‰|”{LSWÇï¥ôÞ;uU©ñÖõ^uÁi)  ":–H†¨(0ñAxTäÍÚ¢ `‘G°…-B¤@yû:Á > 8Ÿdb êÔE£Ì˜ü®;ìѺìßå$¿?Îù_Î÷óýýŽ9:`8Ž;E®Ý(Û”˜–˜ž&U$d¦Ä(í'‹x λ8¢EHÿÇó…_`XMßç°c6dÎí](lt²'iüÓ3²•‰ {ÔÜWq˸>>žnö¸’[Ÿ«à²UjEªŠ J‹KWf¤+cÔŠxwŽ[—’Â…Úo©¸P…J¡ÜkÛý÷\¢Š‹áÔʘxEjŒ2™Kßý•0 ·-l®#6à [Œc^ˆaa&²éØ Áañ¼ÓažC–à JðÔñG3'âDš.þI~z4“(j å*ðØðøíU ò@,bUÈÃåÿrDn‘(¹"×n €@p×HD2VTná»›öá Á_¥GJ…ÍeÚfÚ ÓjWKÕÐd!W´•Wþ,¹93däJT>ÂW ã0ú@À/u6õ0Y•U.¡ê¼²H Š @ +ráä뾛Ϙ)ßk^!;•ÉiÒðµæáéŽîÁ’Gç"Vɼ¶²Û¶Fl ßB Eš 0Øœ ÿQì¸ø,×У5 +Á£a·eÕ¬ŽOY-íGëŽP棥™¹~Ñ3rWfjº4vC£­r“µï²äâ™”-ÁÁ +„G³µÐp´½¦K"~uûF2ÂÃúˆ­a)íf5{°:ÿpAq~aQ~I¾6_¯1PY'³­÷ñ2’®û ÐPåEüGÂh!×~"a“&ãeѤ IÝÐr¥®7ÒÃﯽ»1EéÐ a³îõƒ~Þû4ã~ÍGg:¦(J£È£¾T rDJy>w˜óx +f¾ ˜@Xæ¾â‚,iPRpÏn_ëZÐÓ`57Pè›é×´OÔK˜Õ}¸­²‰­o9UÛ#yi]½* Ë{+2ì…ÚË0Ü…[CÎSÁÍ\ºs°¦ù ’+ommáÏÀB Ð\äì‡(÷Å·|o2WÔ6KG¬‰hõÒåhyÒXÿ¡§,ˆñÞ_¦<”ÍæîUäí‘xGÝyu¥erœÁUu?g^L€ŸÝxÐZˆM•ª’'âñ@¨‹ºÅNwìYYX¼¡h’,dª~WEÁóЂº3mcÆ6 +¢‰ÿNß*•1¥$wIr‰Ë¾’ÖÏP™­'D +?ÃPÕéN÷<üøƒõ£”V“Š E‡N¡iá…EÞv[ö“÷®;úÙ¡§.üÂLù\ò<"µu ¾vüì3æBöéÄ©%)¶Ö_²l3ݨ¯0è¤úê:ý Ìhý6Ägû.»‘J£ÅÞ?܆ðE1Þ¬_ÙË-ÒH4Û¦äÅ üt와ÄV¼åÿ¤o?+Ê:ÊÖç˜ÒÛ[õ.Ú!íhÙ*ÈÊÑ/™v'2ê,¹lQú]qpÉfª•¨ý±¶ÃTG™ëÛ<—ôM§vr»‚sr™¡° +pF4®¹;{aÖI¼÷.D=ð³ßÑ q©š$‰¿|–éY˜SsŒuzª¡B¯;ÆÜÚpÇÍ’#!buÏ Äí#c—¥¨¢é»Õ?— ß—Q¢ÍcE]6ï¿]w×éý˜xDÜ Ap‰hk3·HLš:V> endobj 393 0 obj <>stream +H‰„•{TWÇ q¤mzÊ4]Élsã.§[×ÇjÝ]WZkEQ%¨øL B $!!yAä’ð’‰ $&BÁÇj­um냗«u]»zZíñœ:¶î=í»gΙ?îÜùÝû™ïçþ†L + "‘ÉdzÌžèñ±‹·eædææ,s²3S"üÙ¿ DñzðªïÎŽRÞ%‘ ž7`ò›0ë-Ïo_ ÌSlÈÈ„™‡Ä¬÷S±V¬^½|Iàþk}Z.—ÇbËDb_ÄŠÉIÍ +r…1/m‹µ>;›xKÄŠç‰xB 1úr¬L‹Ã 9i<>G˜ÅÊMÿ_•H$2q‘>FH±;„ôAE +"“œä¥äÒ ­A'ƒ£BÞ  ¬ |IeR¿›W2ï>R‚ü8Ÿ?ÿ\(;tˆF;£¸š$ñÿÙ'—†œ†k'ÑlØ7H߯jQÖc¦éþá³5+[)ùüŒ<5¦®ltÕ€HµCŠõéÑêʪ*@³«¥Gª +±ØyI{@,ûNŽ`ü¥Gjm:ÛÕhfô"•Ô(£w7ÕšAO!ÏCЮ¬t®(á¤qøEX¦ÝÓ­¿Þq8¯tut˜4[WßTmÂhýŠSðçqÈiöJÉçov݃ó'ƒïÍú0õD•6E =ÏP'— j%á¼úÓE¬{¬Ñ{ܹð ‡o2ÆÄ]‡8KR­b£NŸ(¶š +³S":² ?wÐMßì=ýH¯ëÂXfo*JÀ_ÛŒ¿µTE!–$pN7ZŒâ¼ømr˜w +í…0„.ÎÝ›ÂÆ ú/\k½éî6‡µkwŠÌ½f,n¨n0 hoS]ÉÄ°ðm1±‡Ò¹Ìèmé ?b¬<•ø÷¾=×®0i×—9ÿ*O©ÊÂ0÷4Ü>Ñ{ÍU‡ä(õDeMQfã+)Äpµ¸à¸‹‹<˜‘ +¶ìØûû…ŒÕî\GÛHO}sÈ=púôçHU„#”èâ¹gú‡‡ÁËÅjLSYçÒï†;OÁxÄVSiV`š(Ñ‘uíQâqϦç+¾Ó—ÎóÀ1Òá°6 S›Î9Ûµj3Ð$Š–I²<áa±áp3r$«‡?yɾ ;>4z\l¢,Û¢üb¤¦²¡BuÀ5Ÿ=`xw'Œd¦0×Çs"–3ðÐ+¹îî™ú§O˜¸"ôf|fØeFjô¦êzÌÒ©Hßu𠸀†€çIf‘¨$ÿÑï ¾î¤ òªT”ª|…bM&ÀãÄ1…ˆV«*ScŠƒN:U‰V‹hÔêb%CêP™[Î4ö1»}=PRëÓûÌ0è©qÕAÁC©p›Ó>Þ‡9í +‰Ô–Ô7ê}m}S#£µB`ÍÄvnÏÜËiòÖG"49~Ô ùÿo|êîRiXÎtÕí–z.Å}^‚ ¨§{Œ½ÍNf·ÅfnÇFZ¹ñK¶mMÎÈéº +Я”ƒÏSè±[,—úº}7;€¾ÔVÔU€ +:søŒýÑ¢]Ì;³L:Qç[šÁ{¹y;[=©çåÌÙEŠB†Ò$í’2ѯ•xH;)‰±ñ›Ã“Wà_½ßŸä{£½LŽ=®³Qa¬Ö5ô^ÔÅ6ŸÅaEœv÷à?͚ͥ&¦¡¢¦ÂP —£Z*;šN¸ŽÖ- &æ«ùÚµZ„Ø I–g`´ ƒÄ.—Âü€œðã©‘ ÕMt¾a¢ëÆì0H߉ ·Ç]0†Ž`eYIJ€&àÊn…Nhà û†æìË Ø§ªªsÕtøS¨¥üÇ’a,”ò2 °…›’Ö­@ŽQgüLŠ½æqB5DG¢€ltžkÎÿeϪU‰ŠÄp¾œØS²®ø.ìêTÙݭчè¨$ôNŠWÔÛt}øì ¸ u'˜xåöNP'¥XmgÚë0ýq 8QO6ã.Ê~…IÑ„9ßr¹z?Ý_H?amw•ƒÖr¹%K—f +*A~…¹ÐÑlŠK\‰?üÚ\' +ƒëï¢EèÿÃ;ta¾L-Ç”*£­äõ¥<+¸Ð}²£ÅÑ„Ô7·T›1smù±ZÐXjé21ê”æÌÔ6lÚÊ,HE|ù[ô«¦¤Ú(:²ÈξBæãïeáÊÄ—+÷(w+'ÚTÚôõc¯¾ÁíµonÛf߃°Û­* fé6]$Éfƒdvq O~z£ïŸÁP_§‹ûx +¬¤¼ÎZ ̓X«<ðycIJÈ_×ZøÜHY[Ø(nÅÌ.Œú >› > þn®¿ñlªôú õÏŠ çóÓ‰$K*ç’|Ö2m™jþ +ùÞ~(fa™Z +R$köEFd­w(,YÆBL-9ª"Æó7%Gþ)£ZÿMk¨ +äòÉvB »Ýc'r)“¹ððÕE[ÔIòÝáíº1 ªm ë‚!>ŠÙ奩A¾Zž O(NŸl×Ùþep‡;!é#˜³4+‰ø'ù· ,Ö ísž´G¯<ƒ¬É§“Ú[¨¾Px®>á;¡p(|{k×Î)Ü¿/¡ì–W‹s^6ÐÞ¯àÞ–é–—à‡ @ÕKp麽ûÿ€é¿ÒŠ^ÿÛ½äÓS0g*ùãéy\…ˆ ¢¹QËpccך‡§/wº}ÌÏ/z~¸Ï˜I_ÅÄ×á:|ÿƤ«Ymh¬6büµ gÊ)FÊ4òRÆ_¼hçqÍ R„’ô⍒ä;¼J‰±/l\ +3ÿ¥²ì_šˆã8î’›WÉç”íàNñ0"ê1²'„ÌÂØ–ù8ŸÝmkj»m7]«sºs·çÖSWÓ-e Yˆj†eR¤¦QùKÔwqû-øüŸ‡×ûó†@Y4MDûú)/òlÏdS3Ù”¬•ËC`ߢR‘nÔáµJl(®&ÆJ­¸fí÷hq%{²¬ë¿V…xôPôˆÈxQ›Câ°0"ÅY!{T†4Xƒó.ÎÔ¦ ÛoûëÕ©ÿÓnÞ=L!.gK¡tåøM'2ìõ ` ‘™¥ÉœOԱɱD÷!®O»8u»8c‰¾¶!_@Ç‚™2ÁaN²ÑÂÛM8¿?}ÓHF5ýª ®¤P“PIJ•…h}‰B^u‹ ËWóOóüº­5¬A*Ο“_Å-4éó8w{mQf-¥Ù íÜïméþƒv³ÍNpºwÉÉ$ý·Å™€zOhSw÷Žì[Ûš’£Ù¢ ƒ¿™E endstream endobj 301 0 obj <> endobj 392 0 obj <>stream +H‰|”}PgÇ7À†­žñ`Ù+Éj6=Ïž7Zµ¾tªwŽŠ/”Sª‚"Ú‚„ðHš„^^ o $€„×€" òâ»õ½Ú1ÖÃNGzG¹Þ½›ë/výã6 ×—¹»Ù™Ý™gwŸçó}yâ烰X,nØÁ;"v/KÅ2é[!2IB˜R(‹¼/—zH–'ÈOû z]¶È/ûù8ºĂ Zú€þEóîz?Ôn“¥gÉÅÉ)JÁ2ÑïooØ°z…÷¾F°5AŸ(ˆÌR(?R¤"™<]&*V +[%A„÷/… "Q‘(W1£s ±B (å„Ąò4,éÿÍ„ ,æB– È[ò6‚¬EÙÁBÞóAÂ}‘H$A‚½ˆâ‹T#c¥úûŒøfø>ös¢ëÐSlû¢ÿ(¶ »ñÿµ³ÎW†~è= 9ýižp èùŒOý +œìOŸT¹®Pã§.=áM‡ôï¬æ—úã“wlÏúÿÊTw¥žä;SY¶“t wëÒë+t*á†Ñß0Ý=Ÿ„1Ïi¢¬¶¬ÚXŽ•›¬%rè¢"ä÷,¡$ìO=| Y¹<,tÕJóm+Õ b”c4 xîw°ôž_˜ÿœOèÓÜzÓæÎÓý^ÏÕ§¡ »¦ëô´µ;Ù¬ˆQŠ3Ô˜R~DO¾“ÛðÈNÝ…ï걘ÜF®±å\7tÀÑ!™U*õª„[žÛ^8‹±«`àN’ºÅ[ÖîýíJ¹ºÂ¨¡òŽŸd£Uµ†’Z +WÿË ¯ón§6ò›cÃM‘$]ÈקÝÿNM#¹ºm³pp‰mìXmÔ›.çŸyÍG;Ô*8× ½³bàâ‡=bO1&Ý•ÆÏ”HõIäÇì!(cˆ¬Æ2®×.'9~6á=ŠN¡eDÛeÉO³PøFÇǾz¡+¼-üô®â`Ü^Ù¬®Ì¶kä?©îQ^R *îæ;±¿8?»=Ƀ×i¬•Føt%Ò§=ü™•[çh{Úͯh5f•gÝFØ À…ù¸Û“(‘©LV瓺K}9…ÔÚ þ ÿ((ÆÝÇN¨KX¹RQvœ\¿>6.†Úµ7žFVñ6Jè<5ÜÕØÂw5õ µõb¥ì£ï ›Ž¹rjÈÆg½WoPôNXA(D¡B†Å§dhòÈ\½£¹ÏòYÓÕ4Ö䬳bk]™•tÔê¬TQª|I~&Æ)e ש!©­Oxpx8Ù@àO=ùÀ&2)*[å…Ä3‚všŠjsÈüßÈn¤¤½þ}¢Ž’Ño¢øÓ²Ü\C¹{}jl4ºçÈ+xïö{Ú/tZkøÃgzš{îÌ5èŽìúœf²ùYïµëýíâœõaã¾óŠ³­Á†UZev²¾¡ ÏNébä4’%U¥fÊ3˜0A¡Ñ’š|§‹â´àëAV,„å€ùz@0sð`†ˆŒÊºx®Â`*© ¦Ûaó­iÞ`r÷¶?Åó·î.]É£çß“^¾ð¥ãïßð™}z‘°4ç%Fã–©ð?3Ø\‹ÍUå’³•.ôÌôªÕrÀD0(`Óè4> +é°ŽP¤;GÏ7À‚›ŽÄ˜¥±»ã(Üuˆ%êô®ãíj¬ïãZ¹Š•! «¿Ñã:3\LJ/<É>zT'ÖmÖa5J‰9ŒÙ£NŽ¡Q¼í}q÷4üXY†æ„úDVÒ©Áðñe)ï>À ù:uÒ ›Î‚ÏHü°à"?¹Vm7ó*å|¼êžs¸®©áTk×ð‰‡˜½ØV`ã›JšÊÛìÝ\Ž‘ 9A "oÄ° +ˆØ ø÷°ÆN”°WÁÏÔŠM L¸Éú"•(Â_¢³ÑÐl‡ÊE¶0ýºNe·¢L¼Í-›mî÷—¡pÄÛÓÉ,¥.SL¥fE&ìÛ‚³xÿ^’µ/>ÈÎ=”ÍåÐê9¤yÀ ‡ÀH hãSøÌ·Z‚Yðú¸wA•,ååV© ð©OÀŠ^´t‰È˜mFì¡ì2´¾¡§©’¬0ä$3È3´ =VÏ 3G&ñ|7'IlÌèhïêiW·&Pš±â9åõagj>ƒO=}Ž½ì9D|æÍv4TSûƒî¯îLÃ0«{ +Xž ?ÑÇ6FLà„17ˆéc,¸ A^ƒa›0yí­lÅðÏ'†Ÿ¸¤£P’UH%ѵ‘šHí~.´˜®6y?áN ýÉÝLÖÌ%0õ2vïN¹::›svèÉ‚³† ^†ôÏõ"»Œ<š¡Ë–RÒì]q{7—[¯¡uñö,RŌ˨ôì1‘!L2¶1ô†­ 3‰ŒÝñ»›Ì¤‘10ŸJ¦7h÷kö3HœÆÙtfåÜ„ pø%#;ÄÛ•Wb&¿p7us¤3³¤Çê^z6úCW +æN¹©W¤³]ÉNÿ)‘µ!†ü/"/—“¤=ïÁγú ¶@€/Dj‰kw\=ç¨;7ÎLÉ›Ük¥ðÃãŠ8þ΄Õt0oË©5€ñaŒ¥ô¢Hš•ªÁŠõúâ\R,í «¯»]VªÜ\Yb&Û[Ä›™füÚ¬‚¯|çÍ·B’'šíüX¥,UG‰é9‘Ú—é•õTß·ßåâm¶ñ“]mXc­ÔBšm…yU>V•g1XL“¹Òî4ÛŒM¹5XVnÉ S¾¿î0UÌ®ý”YªÏ¬ï”’z»ö&ô‚_øxࣧ'ñøÞ%Fb»ö»ø’Úä†V^›ÓÖÒâRª|ÜmÊ·ÕÙ0|Àf©vÔòþ V©þ¬a£We_{gbZ`„bkLÅrµq½l–xvmqztoeŸ°i€—~x{zsŒsdÏo³ñðâäû]”vø¹`¶Ñ÷ °÷²÷ˆŽqs]h~ˆ™«’Â÷›ê‘«³û «÷}™Ðû > endobj 400 0 obj <>stream +H‰„”{TSGÇoˆ7ÜzlÜ%^KrÛÜÔõ´Öî9]e},EQðADPÞ^ É%‘€ŠŠ +§ÚíRíÃz(®ö±®µ»Úåì\vÚu/ºg÷¿Ý3ó›?~3ó›ßç;¿²Ê a±XxXlèžÈoçŠ%¹~aTr¶8ueb#M°hßUê5^„Uÿ¸¿|} AjF^Ç×Í/G^}Éã³²N"‘ÊÄ'OQ¢M©o‰·m xge|Wœ&IIEÊ©ô¹(,7U"“JdÉTzÚ‘(8;[¹²K.ŠL—§ËŒ÷E"±\”,¢dÉié9ɲ,‘$ãEBÓ—XÈ/¼ e!árA±‘(/ä(‚CœAE¼6²ÉELÈÖë,·—·—‹½–=¼J‹ú¢>Çâí凭Â,\®q9^Éúá›.ÇãpKÈfø^& = ãÆ`ð®mòÝ~; ÄôÝ} d¼Ö|½Ø×Ø h9 Ÿ > dÂÝ™0d+ôƒkvÛ +|Á–/ƒ÷ú@è ˆKqÐûKŒ½ì§déh_öäq,,Ç£¸ðs<Ê}¤öÐô°ÎÏŽy6HnÂ7[? »HÆ®ÿï‰GèI)ÉX,ô÷#€7ýOnz†Â Œw“¤îŒû­ ¼ÑM‚Í=Jð>ô#¸*Úé¡Ö+JÖ]0ÊïÓásemåUÆ’“ü­?…h¢Æ@ßD¡ ci´«Sü%úÜŠý…á*>ü­¢]§Xæ¶û€èaÞ@–…¸‘úº¬ž’×ùÉ0[¹AuD“ÍW’G—š(_``â„[d®Ê!~eõZËÒ%Pç[ÉáIÁíŸ<¨›ó%ýjËRý”£—ïì÷ÔMUYÚ}¡c¢fLnU™˜_–­.Øm¾ex“n@¹õ4øy”56"ï²ÁÀÅ#Äfáš[Wª+]f+ù}7Øñ‡ï£™ýqIRñ apdòÆ\=#î_¬}úDUÛûâåÞF¬Ú^o©%Z{ÔG’’ ™BrE0O±Œ Ãk3íaNáÒ¼*-ºÈQªw@)Œ Â +Š0ƒA[ª#Ô5V©¶jK L¯ÓkÊNmcóņ«ãÂþ± G€Â6fk^O¾m(\Í=îéqÂãV+ÚH[‰³ÂaÇì¶Ú†:A‹YÚ&&M&ÓòvaÜ 5 +ú¸þÅçæBéýýyyO€†af¦Ju„Þ\Ûa%yont¸Æ9 %¨_'D&J´­ãb—“°WèÓu$ïÉ>Ø‹S׫ÏãÙÞ^’÷M]„Ÿmëê-'[ÊU­"C)–V’ùæÆ¢N‚{GýûÍÿ”)ÁQ¥¾Ï;ûDÿö.Ë/Ô©ÖÑq†Ì?±Tp½ »¹³«mj¶4¶ò2Ygjí«85âÔí!{÷ JyVÆù3ŠvT›5„vüôN²pÒ»·ÒpBGæÀ7² ¿hb51긹.ßÊû…Ú©šQ»kxÔ½¯ý ;‹êjÓ¶­ýõ3$—~“Q†üØl˜Áw–L³¼%½LýˆççdP:¢¤ÒÙk#yKÍ_µ.4ÝÆþê>å8ChŠJuJò„bG|ÐF&–{èw­YŽ"B§0jþÞãAob¥œ¶?¡S®ª1w'DE¯ˆév¸1K 1Óá¶3áºDU ®Ë:Õ ¼lÍü©>° +àW wY^šŽLƒÛTѪèâhþ|—}ªãÛšaþ´`¿BxLY‰j’G‚z4¦Ø*su‹ç/O’\ð‚§‚Q[4ÿtÞ0˯Õãÿ>ãÝžî«Áº+D—!+QCòΆ%hŒÊ"ï|á2©iAósÓÿK>ÚüUó òL†Pû‚\¹ëèÖÿO˜ñBî¬zˆ^7Ä:·rØà‰ç¥¨å)dhÊï¶@‘`Oߎ‡ç>î~rcäÇo‹'¦#„»à6Ý™ïu -5uq¹'}'Y ×ï…«“‹±R½Ê¤%¢¨wlÔ?C6jgÏæ5Èø`T£ ßó9ü€g‘72hnkk1·ÓT|%®ßž“ïjP“é\k“©(¥"Ÿ¯MÊVgêÄ…| Õíè¬ñØøb¸ûäó®Ó—„i0ÊhkÑ6oÞñØjqU©Ãq•ï¯ ¼’掲zb¦á³ñKSØõ›=‹7 W%Ï6iO ¹ù5 +ðì Ÿ±Aƒ/ KˆŠyþ¾ÚǺÁÊ +c5d& ÔÄhbT±ü…®ªáúOZໆ;°Á®«ƒp¸Lzi/q˜V‡­Æi­µ:+ê ¬NÚ™O䈈'Ë8®Ð)§y€"¸QêI/²fo|} ¼Ôøƒ÷ïhºŽ’Ù-I=gCÝîî¾ÎBEƒÐªwšëœµN‹ËìÂZÍéîL"1!'_N&$S•‚øIj> endobj 399 0 obj <>stream +H‰bd`ab`ddó ws òÑöÍÌËÌÏÓ JM/ÍI,É(üfü!Áò[ñw߯'?°Ê20LÙÅû=šÿ{ªà¦'„@jêó *‹2Ó3J4’5 -- t@¤‘‚cJ~RªBpeqIjn±‚g^r~QA~QbIjŠž‚‚cNŽBHW±BPjqjQPâ…Ìb…D…’¢Ä”ÔÜÄ¢l…ü4|&1002ð3022ˆ22°ýÃÀÌ Äð”á c°ŸVýw^Æß¹™¿óÔ‹®]ºxúÂ%™Y…EiK‹×ÈóÕ¯üñ`%ãú‡ßë2o™+ª[ü]ÿ»üwùÅßõ_¾Xü[ÿ·üoùâßúzò?þ±üÖ ÿíö[í·Úþßnßu¾kïÿîö]í»Zøw·ßÚò|Ý‹~lX°¿œñ{êMæïl?Nˆ^èd]ØÕß–.õlj=¸­Í°U®äû‚Eì†Û&–ú±Ý¯Ô¿*¼Ž¨ñ»î®Ú@+o0/úî"ú}’)LÃÔEìÖ` _ïÒþ¡Ï®ý[Nç·²öo5ŽÓóE:õþÌŽÞßGØøê÷~?wô»êÆïn3gÿÉ"šý{넹gm‘þαßSÏ<ÖÅ< kÙ¼ùÆÉ =M­ Í- í@Ø[?µ‰£bþÚÊ­Òg{Î/=°“ãؾeGÎJÝ÷}ö["?®¾&InÉwÖï-l3/°òÕÌú)7ëwõÂï6sÏw³}ožô§f:»ÜçJñÿ<œ¹nrÿ(ùþT ÀÀYF endstream endobj 283 0 obj <>stream +H‰¬WYoãF~ׯà¾5Cš‡xh1˜ s%»H‚Ùµ€ZiC3©Z¡òÓó:OKêkþ˜~ Ó WjÇCM'+äKFáKèT´œMc%ˆÒR5=lG•QÁŒÌŠxž• âr=S?…Ë_}íïDîQToÆŸv{vpgÉâê¹ñ`¦†àÑãÈ®¯•FáWaT B¹jVºt‘ŠðH0a\æE¥q†Ý©c Ky Z³3Öu­vôÿFM¥~ Á$Œµ¢TÞ:ö4<ï@oäèkY ¦Í O©:Šœ0C¨vÎ…¹Ý€@ö|´=!tçfІ¤Üã)ó¹E8´´ —@ƒ¯ãpêð‰Ì Ó(pz°¨A»\ÉI…H,bV¡/!-,3íƒH—O÷q[©=€íÞ÷/Eô×á5cü¢°C6Ýòïh³ÑŽ¸Úmä\èxÎs³Üð"3­Æ÷ã¾QØÔc¼GQȳö"€÷ˆ¯o—á¢$“Bωw`ùdÛ~ƒZö;N¯8£yá^û ŽC2!ŸÏ÷ÚØÀ¥:jõ; Š!Èò8oXµÓøŸyÔÌn‘\ìøEÒ£PÞå¤0G¤Ü¬5G—[àåÔSJ¥~÷á‚á²gÂEÍÓJðHò·½]r5ïyÉŽ DV¬/ßF—1Š£kµÄó2õŠçjo3Ã8ÍIÔ-òE¢Ç‘÷­‰RêË.¯ÏŽc˜}õÖ¯Ï8ßà`c¬„Ýæœu<É1Jª„k”OC5UL?(ª €&q¹î4Óf3ª8/± „^Ÿy¥‡«cj+4ŽÚs’_epÂkU™!?ÿ!ž`ÉOÑPK€ VT`ü£Ù9)lO yb”TžhZ)ºÚ8ˆ´Iäeê{6ÀÉ Gt ³ æ1q½îÈ Á±…Jh¼Ô%)¶¸{¢=¼0½GL} €Ç q>ÐDp—f¿pxÜ!¿"¯82Éì©8gìqÔËÚ7‰}âDI\\ò¾LxãÀÏ+©|¥*Nãy*ÕöÚÚp‚,„†ÿ¬Q³Þ•ÒC.™– IE§ôà¾Å6Â&è §ðÄnKâ²,ÿBí?ü)µ<2wìHü:9˜DýSzš<#Ûœ½™Ló?z%Lž4Ý1hR;&7Õ6¥g zÈbÀQ8R$à#ŸgT1S'umJ‡Û² šg–£ù1Éé~œGðjÆuŒMîÅÇî"s²ù« ÃtRy¸»Ÿö®ðR®÷üÁ:ž½cA!ö‹«2F—3÷$q‘{"’ï¶îá;¨wE%ÌÈæ(Âxé™»¹ŒÆR†àyCÒòÔ [ ,;íƒbD ?‡˜¤¡Z¹„jìÀ”ŒEùnOO˜·q؉ +hp(¡I[Žÿ´p‰¯™uƒk k~X\`@>n'"XÖ¢jE’ ^aUÀŽ—r ×È¡¯FüŠ›™Ç‡l˜Á%ëÀ UI—Ÿ¨%¦ãá ª\W——ùe>ìúÃüZæ“k‹g˜pUv0+nRò-Ýqh)X'ƒc„»ã1x/T¾¬g‰þ‚bEò¨Ã+¥Ÿ @ñk>K•ãë0Ì +/”ß­‡¬ðr÷F[Û¾önÌ¢ƒ2Í./tÆO:Ñò½ðúÂág=¿ÜýžIΞ_“——ø’ƒú6 VB80«nvót·†âZ8šPW1ê¾ «­ãÄZؤ„Š5M” ´ÃeâÍíQw/_Þ|»ê!–›ßû—ïß½Ÿ%IöêÕ«àõÛ7Ð|¾H™m¥Þw?Âhào|BÁR+˜pÍ L„¿ŒÊd|íXªá¥HìRÇ5\40Œ¤‚ª¸‚Êï9 Ê(·`DÀèèUù q(àÅ×ç…”•ðý eóicμu¥hOeP0Ò“ZMgy@ðïÆù{õÍ4záJW™Ù%Å€ZýH¾Œ Œ3h•ÆkŽ-¬ôÔÞ¹©Z#ëlüg-“7àr)›aKjÌé•9¢:hei62ÎdNÉCº‘u–ü¦E®haÔ¾ôó`#ß!N[Ñ‘ÃÞ½0È–Î4LÿÌ]oMÓæàé,ìa»Ñ¤±P»ùëuM{œ¶¹¬VȧB„Ÿd®°’{Ýv.9Uè“+a¯1˜0×Ôü>“ÕÙÔ¦5ËWg"™¦ ßi~¡òŒ ¡=§L—ˆ2 #°†4³c€p%B¾"3—ŸñƒN£Ùc3—¸¯’7«ï.†lErŽÓŠoI.GLr°'äúƒÙaî¼%É íŒ¯Ê(³Õ Æ_®F=ôÛm0­½árõSx¡­ÔªàV,ßž©Z_0ħvÍ].ŸMè©“‚ |µLž†JÈSÿ^·º†dÁ)²¬‡`j( cKhúÕ/@ñ Ɖ:¾ý Í1îËs4Öl.7Ȇùˆ3ì–ã€WšFžîôÚa²-èÁS•Å€áñ ƒ…æ¨þÐ ³£˜òè`G¡°ùÓÉúû0ãב«ÄžŸŽó8)E:N ‰tlÈë¨ÈFåÙ¾|ºE ^[×öì‹( mHà+mÈ”“ ÄC6ùÃ]†#ɽK Çíüq¨=‚óÓ÷^˼ËåNÐgÈÐ~€‚§›Ï'y—OJ.6‘;¸»wÏ è˜³ÔÂ=‹¸Óú…·ÈÓq“íΩ>8ï’nëâãAb6ïá$x;°¯?WrÉÉð¥R×zú;«’ è«,ÝÙÖ†WS©5*¬¡L€ ³ŠC”`ÍÃÈQ²Àæ’Twe?¹r7Š¯±C& -6sC;ãOÛ=“ç­üE!7CÃè½´ÆéG¨n²‹'7¤Iœ,6R5ª&CgŠ¨L–KA5M6päPMco\¾”=P¶I …”­nÅëÛ%7>ª¿} ãA? -[éÁæ "ÔóhQŽmш¢Ã’œÚ˜«¦q;Ú‰TÄ*«8`üê3”‹’ ;á¨y:Êeó”©Mï­ƒô€?zŽ^<ÆôʤØå°Yˆ±Ë=?³ãr$‹-JJˆ'Á0ÃO•™0}†cËùs¡É«¸Zd’¦pÀ”y°\\Ÿ¤ê…}öÀX$[C,‡²ê±­¡>¹Ðî'aMªðùŸøû3¾' E:%Ðì’Á¡ü9ùÀîÝ f†x—/‚uïÚÍ÷ïÎ,¤SKúé—"½O/zïºoº){ÛwVNFßÿ!ëšÈç)Oy1J[ßýÿÿÕÙîÏݸÿ`©‘E>’áΓS‘ðçãkÞáõÅCšx$ÒZê>½¼—G’üZ×,&p&'Ý3aµ2Âk㳓ç Å«¶ƒ¨,X…®½¶°°V…`¤ÄL*•‹Xå,‹…§ µ ,œQ1æ…`òµ‹X°ò.ÈBŠQ,j9>¾Ý*Ë>[T.bAŠ¼ òGí ÒÊÈctùµƒ¼÷ŠrˆBãòcyŸ”ÕQÞ{ŸÃY;À‚ +>ùÉ•‡Då P{¥c¶¨<`ðµ`ÅÀÛü¾rƒ€7, ó• ¢D¤{OÊd¦4bÀŠœ Ÿò7*aˆ+#lœiU{ˆ¡9a•E¦_[a–FìdWVóWjŸlHä!³òuâ”m’r:ˆ ‘+6•—Ø€´‘±Ñô¸ØT^Ù&*—°É'j|Ä´MpIJë²ÉØ%`7Ô",¨Ð£vÉõf•¤; _L*§lƒÃI0aÔG¦q#â‘xƒƒ”s7~ÙŠT¯Ä*q±jÅ +,¶ÓXÔvù`㘭<úÌRpÕ«Æ1[%åµT®G(‘lÅ +¤NbD8V Cã—WüÅ´ÉÏÚOŒ ä+äëÔ-aTJŒ‘0“ÊNµ_îtV™ ’ÂÙÖ/[± +±èŨñ#Ý¢çH£+¯qË6¨Ôã{L/êOW»IçÝØb:÷1oü² IJˆNé°c¶Ã4ã|ž¯SG±Bü% `‰-çký²QT,!æPŠ¥ñúôò÷µ²¥ÌBÐ öçÑØs qpèì.JÛÂQ†±§óøBáGû<¬ÊLý||ÉŠGË© ¶ÞSžt1Ë•¥®wwr,ÙN>Vu±×y‡嬗€ÆŠ™¯p» +·kp» +÷ l;ÆMcÜT㦷].¬H×qßï'â>,SÚÖ!#NÅ}<ŠCʈ9"U +"@ê!G»Pœû⸠Üw•éüñZn*Z®E쨬bjg%!Sû›?âúñWìÔýúñsµ1.cИe>xÍzcÆø!9&$¦£òNO8îj쇷¸u7x–§“þ/ÖóVâ3Ú)ô9&òµò¨{‡sLæ¥sÄMÇˉ¢žÓÍ©5£Ìš!±fÛ¼¨­ª-*ÉŒ ©Å}+ì%ÔHáVòDÔo(þQ¬½Æ=èÁ¨Á&ûpÜàˆãÅ|è'Å7ɸ…^~.jô>ÖSÔ»gšö¾ÝÇÚnæ^ç ô g^[ã[á ÷³~°*¤TV1–Õ©ÄÑå`DãÛ¡Ûª‡Ðüôêá,*V¨‡Ðõ>kÕCX¥’Š^ËA¢boç¸X§Ó7\St¥0¤®Ú¯J¬[•ØxRÁê¹6ë*:ú†Ž4¦ãÓGE!N¯›öî_¿C¬G¾ñk’íAÀݸ«/èŸ1p¶Ïˆø#ÈÅçˆ1÷ÆOc¾ÿòYlœBûã¼Ú/U¬Ø.4ò}M ÙÜa2 ¡{eáØ”EÌï°¬-°Y›r"mj+‡m>™Û•Eº[Y˜Û……õÊ%è.ë”[ÌêLUjq]Vù­Yp{(Â;G_bãõ"Z{¶Sì&2w]]„ý¬pw2ÓKÅîãí¡…\«ÿAocÜTOì·SÚ¤i¼Ë“û‡Ûáq[)LëòýÄß©—¿F?q*yì(…5·—+6á¤&<‡“šˆ´,&Hé òhgÔ„r4ý¹‘¾’¶’ö,'ìXNø¬è´ay(r_+·è‰ˆ%9CÑì¤ðUfi«Ì„©*ɯ©¤xPÑØÙð à4N5ðJŽ"în©sàD³"nÇT!Lœª¸í_ê»WC>×wÇå™Üœ¤ÄùfÂâÍÀ­;b_ae ?ƒ,ÛwþUŽÐW0¢ŸM•7÷ÉsAä'}…¼9‰ ƒSõâ‚­[V ·MãJ§å gÔEØL] ; ûÕE¸E]8¨#â÷r¢hZùµR7R•ÚX¥6žSÇ ŒºjÃÛïºö>=úùýWŒ1ðáþdà÷kõ1pcï¼c|}®8šJº»‘? ¸CÇY)ºkªÀc*EpÂ!.üÝP_¸lU°]Û5°Ý“‰¢}r™(œLÛÅ)œ¤…á$-‚¡Eiá¼2‘s8.H–•Ê‚îP´±²ˆJS49>‰ýÜÅh‡‰€‘½ê¹p«’¥#F\³¨‘ãUlzö´xCÓ·ŽI•DSÍ¿[Y1¦xxŠvÞš)VéKµ¹àFi¶j*A±ö¥‹ûÐ2%0aùÁ¦¬b”§Â"ⶉ%ñ†'Â"a+EÁ°ð—„E˜©ë}ª +a+a‘Ö os€æJïòWË·'–¯PÒ¯è]𔦽«Â=Óøö°÷L)ƒš³—ÐGÜ£DædÜžÎJçj9\ÀYáJ7eÊþ#N×î ûN6M…óÝLy"ðù+Ö¾n°VÑ!ÐÞE¥“›ccС¤ú¼Žkk¥¢¥®Ú¯J­[“Ú3ð$”jS;”ÿȯ+Ú“ˆ!w5òëŠvñäÃlßÚ1ð b´³êçAÀ×pe8™0í]û¥WMEШ’tœê CD<ñܽÄUcnz5n÷uÚaTÑØ#LjŽ~aí ¸ LyÑ„âŒ=³´°Š¡;zi‘²à¸.-Ø I9›3iµE’¦’ÃO¯,΂c…²]ï3«,L%,Â*aAH'2"y éÎñ\©óu€ßÚÜIiŠsB÷:ùv>®Ç=ÇÇxõ4âG~ð¦Ê¦Üˆ*6¤©’»÷Ó"ž”A9¯6ãå€ïŸ)ÐCŽ¦ÓyÿÀÿO}¹¥9ªÃ@x+ÙÀø³,ɲ÷tfÿ¯G\B|`HÂà§n: )¤’ê·ò„Ø¡U¢‘;³y§mHêp£ðè¤NOðä +V˜xr„}®ðÆzÇVz +[\1¼f¾ ÊÀÂe`á^`áR° GöÀ,ôÛŽ“…£¾):º°‰t¥'©Å“OáÚÚ€uÎe²¯±$5Y2)8‚Ý:[œ¨÷Uµàt…S¾_sP µõ±¨“{‹;f¹£Ëš#¿ÅÏwvy01^í”u¶x^¶:…×»(¸·5ÝX8-ô°TúŠD3if‹ˆaú«¹e-doðmyñݲ…¡H~Œ:rØæIþrkùDkSáŽZ£®Iù-ÀÇ·@*)–ÖéDø†®9è>³Š¢EàÍ3Ý*Þ¢|¿â¢ßÕ_ÁõŸÕàßCÁÙÅ2/:؆ÃIk°î–ʤC”õãq‹qZ*à«üÁˆZ€a™þ¨ÿ'aŸ,XÿMIeܲÊeå]\# )È‚×È"¾' éa¹sºÈÈ‚‘E4–Âô",´µ½0ëly.⬳!ílxu6¤å´³4bSgáúÎún#l±\>D%¦§«á__]»î´r·!=U¾~¢Ã–í•x<Úê|ÑGÅ߬Ý; (Öÿ­UZ”ï j&ºÿVq&w8›ºTv,~§‚ÃQór(¸'W½¦öHúiðÓ_±à÷ÑBkª‡‹¡œœ†¨Qø,h ,ä=XÐ#{àò¼éÛ¦Ë`Ðx;½‡Ù‰ç&?6ãÇ}Mu×m=5HMˆþé %º™v"®iŒ./7~%(®-·3Œ±Á‚p ö¹BW”÷<íª:G +H¸‚3¼à'Wðòi²Áñ1ß“Ø«¿Šëð¼‰r÷|D§u_fÎ|õpbªsåïá9õ¸@Ø<®|Qø/Æ“]Üäþ×Ük±Þ+wu9DÃ"W G.œþÛ“-"ú]¸Ð‚ˆ³n,H´Ûp2ªðÏ«.hù´.ä1ß“=0ƒ‹Á…4ÁŽ8Á—¸Eï£.£FH K_aO R¢šcìP5GçÆ?;[@:ý¥îTö³¿¨á,ÅSýA.'µŽºSŒ…kký ‡x#êX;+úºêa¼½h±'ùþ_n´¡Ÿm 'XS°/$¤¬ÿß öÏì@ûäÀšèDÓbÂ*p7È rÀä€ì“C4@&´"[wuÕ‹\x‘›½¸†„|¦¯‹n…pOõŽ=+û2ÕB®tã׫}Tö¾jpýÕÚ“û¹³SÙ˜Ê>¶eÕhuZ»S w’kÇBts6|w«k}{ÕˆRÓÃÍUM4l<5ýs_ã#Nª1P(T£²ýL,þIÜ>?DœJã+Ji=ïâÄ1ã_ðeüËÓÕÂò=ñóÅÌq¾<ÀˆZf„9Ñ|=ùs_ém_%í«icõêÙÙá×¥µò¦µÔÐÚLx ekûa3Ön­[­ÖgÁýfJœ½¡Ú¥²×Wîó$ôvå¾tëòbÜBä; ã<_añ_H×óáÕë°EùžðhlħS]Žv =é-IŠC×¹Ü)Q ºc´åQÝŒ΀>ïï“2Â.Z )ª`˜ò¥û´à -¸@ ž`Â-wNW Z¸ÇŒ/´-$G ™Ñ"6¡…’âðÂC…hlV/]„GƒÛõ [ ><¯› +÷¶>Ý_x\?ËÝ6.ÒŠ[WÏæý…G#5õ`€ØQÎ%Vñ€W[å;[± è\L°šÕƒS‚¯œÂžda5¿ŸdÁ¼OJ*y,H¨ +ò ȸB +®àŒ+0ã +|q¦\Á)WHÆp+È™ÀÓ n;QaG^³ãû¾ò#{Þñ¾¾„ ¶5¢¯’ +CòqC~Q¸VÜ…Æ”k*ùÎyî‹ÒuyE .kÞžsÕü¨òýŠÓ0Òýg4ÑÅFzþZÅ1U~(ç2« íÑ*ƒpßv@¼Õp²5ÖÓNÝK8²Ð(\\(…ë'3YD}ÒßéW²K„†"ÁØIW>u Èbù1“…_þ<edA/² ”,ü²8ƒbÐ{7­qõ +X¤’týñÝå?EÆE¸ö5p¬c®‰ÑW•¿_þCF ]ºÒaŇ˜ ÔåéÂ__´ +(a‡Âµâ¼¶toïñŸ½+Ïs¿ÞRòý­äþ§¾Ì²åu(<•Œ€e«q3§ÿÎÿõʘ78vrej¥ ³#mIŸÌý¬"WìjáÓG\¬"ÿà>íÐ,^ËÈ%†…=ç}\/€É‚¤Ë»x¥ýpŸ,Ü¢ÈøèATå:ñd å"pü0Ï«-hÿ6 dl/¶€”-(e “±…¼íc¶NûøCÈ«Nj‡˜Ñ¥©u¯ÔºS™1®´ít¡íâbá⡳:—u ¤ ˆºƒÍè|éŸ*ï›Å[Õá¹]vQïÜÅÇTùGt‘F\ƒ¤‹™¬f‡º!ÞA¸AºÚ*ç‹ßª«ay.Ð@.œYGº.„°1‡aÓ¥ ¡£ä­kD¨Z†VóÞG +°ÅÇF¼ßû“ñj§ |lÔŸÉNÊèÂgta‡èÂ,dÉlàx°Õ ožÚ!âÍRûñîÂ¥}É ôäi¿ßêRáhúî׺²&Ý7¨þ.í€ñËuôG\ó(ýIøé1—òD 1øß1è‹.6‹Waï¹ð°µ€¯Í2yJó'ÕY·fŒ¸X…ï4”ö¼vCçT‰N¦öŠ(ŒJñ®0è>ZXiRb·B(+g-ÜZØZø´pïР…æÅðC8„êعKh¤,³C+=²ó²Ìâˆ!_Â%µ¬ëJ‚¯•¿ÇÝç0K”c®üý K#no¡f-`o¹nüWtmÀG„÷Îí)7±Å¥ç‚€Å=-®«¶{«è8îîh–…å†—â´®Ó gŠxÐKdD3Vh¡v´)€ -ñõÐB"" §ˆÈª¬úúha2´ ýÉxµ£=6äˆÏ„G8E ÎÑ‚7´°ChÁ o–tØð6³eÆ"³0âÈD6˜«u7]iº›nñ£"WO¹Ùãf…i貪6¢·²[ ÑÍÜœq3Ç›ð€›oo­m]—™î6sòíÕº×~"Sá†ñOµ¿gwØRŒ¶wŠ·çWážKÝtä Xœüº'´Ì§.O‰›HXšË‚_§Í¶à Êx÷'ãÕΘò=²“öó^xñ-;Ö†èM$+¶†h(Wí9ü×øàGðS|àø#| Åx¤hFåZ DžOS¤Õ~hFûÈËÌÈCfÜUëÅÕnÌTc¦ ÕÃ…ªj¾Õ®&ŽµR•ÕokOšZýêó`¿ëWã²ûªÑÖ[ÚEc*sÑæÙEËß:Õ ó†Ú*lÏĶ6a߬…¼Ýöæ‹5 Å¦d6.²C˜Ð6ÞÕëk»ìÀRÛ1…†{‰6¢ƒ‹#ž3tà':àþmx¿ÞŸŒW;:èdžñ™ Bv‰o‹—j{`¼Üs«ðìUO—õ*éU/͆L‹>×ü­iȈOÑ°X[æôHŸ.[f™¢æ0›V¶œ*á^ѲRêÖJI—5ØO#mÙ·¦Â¬¢ïÙõÂç½4‡¦‡5¿ÏY†n±VÑ*~·J?‘Á)FºÈàå<¡½È U4vfð,ì3Ð~; dÌ/f€Çv?>ÓfŸ1ƒa‡òÓÕ6€­oñ+d5¿liM9ч߼çUù=±á¿¯ÌršYÌ3 #™M…À=…[‡Ðª~È* ‹JJŠ]94¤§Ê1UŽ¹ò÷ ~„=óG\öÕÆ_üB«(C5ßÁ*ÛîDῈ9)UϹ;Ä|s)ù‘÷«¼kQç”mÉÚØV¨ªNÞÙBáÆ|—--r6Å‘ å±%Zpü0Ï«-x-üZ˜whá‡ÐÂ-È&þ§\«íæ¥"±&Mì1š4«”g‡²šª6ج£½rRÙ\ȆsóÈb?Ž¢ÚkÕ„ŠYU ž£oη³TŸï\ت }.û2g{ä:Ú“×£lf¤:]dÆX[t7ì"†©ãëù"¾æzœ3ÔVxpm!èd¼S^ó“H~ÒFŽ¨O^xÃêX/ e×aŸàƒÍ(Â>ñ÷o%èýÉxµãƒ~lXŸÉ|ƒv¼Ì­ã!0ÒbZ)3£)ÌhS3Žq¡Mýhr?ÒˆSáº]E3 è£;Â9Î…pþg‡º̯[ŽMhûBøû•Í>2çeÍ‹šWoºciJÃjïš3;ö¶cñ)#.]üÍbò#(ï ƒM¬˜Q¸üInK²Ñÿ"N„)½Ýu"ªG^–¯]ì²®ÚVHÈ‚ ÀØÈ‚öo²° ²ðí™ä$ûŽ,üYØ… »ØÀ´VŠ¼˜øäbâoŠi.Ш\G8'µ¯¿ D÷0؆”0éø‹I—wt°\Ìo)VtcL4—UFØbJáÒ'©ÇSZEŠÓŸ¿8aqÚÑ-…³¡r’þBø‰fQZŽ .7–K³ùÉ+]È“ÿAÃYߧ ·h JEÀúà.\†æy•ÓÅÆѼèÛýŠ.LN.£ ;@¬@"äyB¯Ç’KEr9K®Ë’ë^Éu‰+9u%}ìÊD¸t^¬«ékÙ ÕÊæTöG–Ì® Ü3àlFÝ„øÁÝè4á#^é[E9u…U~árv“™å`bÜA¸DÜ "ô\ Q"®¹ƒÐ˜ ÇB8^*\ É“+\€.ËWŒX‰BNØØBc—-B@¬ÒAÑhüŽ-ø ¶à“ÙÂÄA$ÿêþõyf‡vŒ¿gö%üŒú¢ô?×ÿ®YÊȘ;Æzq̃ÛÅlGª'Å׺/Œ¸Òº3)¦´ŠtÈSÅõºÙÐ=-›Ê„Û«ãýà7‹áüP™ÖêR8I6¢xC +²‹VÞÉ~‡ç²âŸD¡ãàç (¸ +ŽPà (påß +ñ„á -O€õ¸46g3¾Í+eybszcG°c*üp‘ûZwC6¤ºýˆ#+nUñLx£å¦ ùzáÒ´é­¢¿£p‰8ºŽU&õ¸q¾žó{Ãh¸ºŽ(ï wZ5çóÜwMÐ*2c¥(E8 òÛäHÞ°ƒ…ÞÁBVƒXHDÖ †T‚ꀅ->r°°C`aÀ¾ ;,•&¶‚S8wÈåÜT¸œ\ò·Â¿'ÝT8r'ìrC•ôç]î%\*ÉÑ-ukkËJý…SΗŽ "×Ht‡˜ƒ©ºî=ÚŠAS›eþˆãb:Â? ø…ÂáHøÄVp¼zœªÚDѲE«X(ãú`a4¢}Í$Ý Ùì.D yÛÇlrå ë¤Ãæz‘'–ß&Ö§–ô¯¼ú¦%ù K¦Â`-†”CCú%ùsK¦Âí¤ßA7ÖlqáÎSsŸ›Z8×kѯ…çHÄÕ… >+¬YîVqJÕ ËùÂÑÈ-ß(æÚ/ÖÄÅT!'ÙB^ëŸ7-A-$^Ë#+ÝZ,Ï5àÐÂha2´ ýÉxµ£¥haÙF Z¬×Ut ÒS„d]JýX°.ùñ)[Ö9:ØDo Ûó-eV¦»±X¤­árݼh:qÓë–îÂ[Ýö áï7¹qá]ÝŽ|'ÞsúÛk(Å_Äûtå´0]!üd£ÈØ óöVG4~í) +lY›ä]$ +-Dñ®–»ÔG +^È¢‰1A]¼@òDpFüD +Þ¿ ä€û“ñjG +|l¨ŸIN²9R¸ )üRx™É2ÜVä¢ö*÷>¹eÅ'f¹íðy"ÜûÏ¿–ÝP}ç_Yr×Í‹Q¾CqS +íÀ4·Š©b|Õî \º—²7&4gúz«°QW7•?LºD8’¾cÄî‚5[ÌßU„BñFÝÐ-Îk۸ÒžY&éJ°ˆ‹6°0È]°@% â0–ŽÇÒ;Xø·`AXüŸýªé‘㸡wýŠ>ζ]EÖç5²/¬Ëî-c£X4v ¿>dÏLWÍÎ×j#y„°š©²úÉz|¤FXÐNXÐ\X„#¢^.,…è àŒ jRÏIí¬»YL©¥3Xwshñ‡æ¢gྠ$c[’tNIÎ#\8ØçþO?ùiàOÍE ì– +^Œt?7à™Ëu¼úzPÊý‰ï&"öÛó5œ¨ì“á5”xæ¿F2¬œ¯*âA^)í‡öK¼TÓèÇqó°$>­+@­…lʾÏãVV”£²‚YáYáw²ÂÏe‘å ¬øËý¤, aø ïñ÷ã0ËÕnÍw—àÆôñ¦AïÉl½ré\™]G–+MAžP’ + ÈLPËF5o»á¤ŸŸÒÌìY%ÅaÍ\``mföý€f&h{_óÒÌìYË$³Ž½2J_ŸÌ$Bˆ+ Þü$þ?ÆûÚÑCÆ?û¨&\×9+á–Û$gµ¥èÜ4³ÁÓªëÖ¦´ug%LÆhez•j·ÖA ¤Óh[¤•  2øBGF‘2ëÞC oµŠF?Ö Üteô¼uï!ÝF§Wi7ëÞEŽ’á*[ÒºˆEBOöb‚Z´.°ˆ"ª<¢Y÷.b…ñZÌ&èïëÞIH,ŠEÒh´bÀo0€äËú’ÆC *z>‰ADœ×½,ryëjGm=ÄŒ$|™ fã\³ ò0éMY÷b{†ìÜæQ1´RX¸hJø½zR‹™ƒüŽOÑb:ƒ&½uÊ’™RŠ±€PÕ¢qQ‹$Wh@QÊl¶î}ÄÄKס‹cå×:©MÔZ›œô¸›‘´a¯\\1£ÖO­"F)©]àÈfÕ9ªUEÇ.j•‹7«ÖQ¯^ÐñSnTô«sT+(¢Ó9Îsî>pLW¢n¦Ç„¹’¶ž¶Ò L_ñ\ÅG\âÆÓy›-Ýä° ÊaU‘Ń"Ì6£GŸ[²ä†£ÉMóäú™cõÛÜúa“q±?œÙÐdö@b7¨#4eþ’¨yŽš[Ô|êëŒõu¢^*d©oõÑV|9æ'!Ó¥˜õáë 5Z{qèñ1ŽÅ•Ô Ppu’úI>Ðx†xÈcñ©"âYhT:ÄF:p#x'x.âÐì´ÝO_f« ”aËLõ%“º‘…t@¾L^¯øËõ´K€?¿­-À¿ð¥Æ—ˆë¿BàÐŽ\ œ!bhqL¡L‡åtRZáí!ak€®Éïi‹¬ÚBÎyD\„F\ÐÖÓV[qAsq‹ ¼íru[ä]:™\n²ºäÆË“çÉ mrùœä.ÀàO~LΧÃÜônps‡›Ü`ÓwœãŽ-îóÜñ¯ñ«¾”Ê—ŠxkLÀÃX +6Au‘GW‰‘L|‰©ÉV]”FV¤ÏQõ u‘ZuQuQÏQìG*ŸJnh’»ä¦Ë“{¾V?ÜëžÓ˜#×ãÀ/ÑêKÄà ð—~¢I?ãvoÒih"Ñ4éMÏ>Ö¤w¯£Ï9__į®TÐqk ðx]*¡å‘£© ‚Òp4©‹­(ÒÈ’8ru}HHŠtTRP#)h')h˜žïIŠtLRäs$Ep#ËÃÌm™ç¶ìr[^4·ßðc¯øyÀssäzxl€Çxü:¿Ú_€/À¿MVá:–ŒÎ/¬â·êªþª.þÇ~Ù¦+Ëë`t*Nàä¢ùj2ÿ‰(ˆ”ýEÝõí/¥,r§í0Úd +ñ\p‚aÈtR.òJ.ä ¹K1ÒËrÁàJ|.[ÙÍö¼8Ê3M9ƒŸ˜M ¼ÙŠwðþéàÍ®*Í‚·×*2X(@f@ä²âª£[$÷™Ñ-‚"û±\(KTDZé‹[x[ð¿ÜÂ÷Ý‚oþ K·Ò-ä”[x´"¦£hy7Z]F›ɦ9Ø´ÌUwråª\;u§®¤Þ]kÿ*u¼ e‰%i—ZV%µôZt_wê N±_bÎðR@3Ð&{È1`šìáØ$îi±w£pòõ,¿mõ yBä.2ÿzuš¯fy Ë$ã5…†Ì2ò‡<Ƀ×ȃ„U‘çs±ò^¬u^X$ËO$ÛÁ;xï༃ÿ8A6Ñ‚7­x|? ÇÄ[%XËÄ´÷ëýh’ ž½:2™À¥Lð¥ðe™0°œ7äž%íf)E–¶ÌÒYÚ2KÙÉ’ª²¼ƒï¿´•V;¿Â•àÒÁÏ€÷VéÿôŠ7 Þl«4ÎHtA‹±%aNàŽ7£ø_ðœÆÓ)Åw?¶ OÑ…®j_ìÂG»°óváv‘—v!K»»]Øt8LTØ…HÒt.\Y…ûª)ÊáÎàgÖù£—ÞÁÿ2¸1 é 8>MŽègÉ?µâÍ‚÷Vù¹Š·‚+¤”¨àf@÷I.r x—‹…CµP†äÙ¢ 9*“Ö;òM®›½j‘kÔ"רÅ<Ò<Þx·ñðŒZ$!{§©W%û²7vð_?µzU‘ï¯^õä½â½â喝&Ð!iÕ›ßJð3oZ}Ui<ƒºç˜œ)î¶äÛ0Õ2ã¤"ùX. , c«$w¹H»n!…[Páôp Zº…l»E:¯!{æ Y.’ýfiäšd;xï༃—àúù¾…Ö“8Q渊aN\F·Hñ€9§ÄøP-2gNÑ„¨._Ôâö|r}Ìj·ÀùÊñhv ¬t‹¸Ûy¹ÈÀ4`{Ú8ƒ·öN×>xo•^ñÊŠwðŸW‡tÝÌvÁ©§8õŠ×€+xÖPË`’´ç0¦4ÉE¢:žN±e:¶ ƒ”’´ ]Ù?a|)|Õ. aP³ö\½ƒwðþ×Á=ÅØJ?ü>JKr*Éi×çÚ¯x³àêÿM­RC¾ž@]Á=þ³ª¸„Ðh8vÝhćr%ÉúƒÙaÀ¼ž=r‘wå‚ +¹ ‡\ÐW¹û•ãA!rJ.ôZg9™íZ_Í–ŸÈ¶yð3Ë@÷‰e`—{kèà¿~j~[Ó’üÜÝ'go•“­Ò xÜ‚\Á(—­¢ t— ¡»\8˜Û±]d 3ŒéC ¿ÚEþ—]è®]à|åx4Û~µ‹yÀy¼‡]ä3v™3M'ÚÍVŠlm9ì­-§“ìL'ª™N3øÁö9n Ÿ%ïàü=àÍNÎÞ—ÃOíñ!L! +f ˜K pÇÑ.’€ç4ÙETxÈ‘]8€â1tìê¼Îr– %@ +¹•\H•\ø±\X!^%ñè†~²)eî«/òDSÞÁÏ4e÷ö¿^2v¹·š²ƒÿx³=ÞÁ;x_ÿx8…}‹\(¨²É…r‘ß-¹” ?-<\ÿ9è[·j6½h¼ü÷Àß÷ŽQµ ¼úŽñï༃ÿ9ð¤*7¹ ¥R.B>F¹pÃñl†dv¤<$ 0&Œ´á©pŠùcR‹‡q\ ‚ +µ ‡ZÐe:?^³©©0‹\e¥s: –‹`¿ÙÓ¹&ØÞÁO‚ï+ÑÜûJTϽ¥D½â½â½â´â 6ðU(KÁM b£X$-ùv:CÎÇj!à¬hƒ¨n¨Åõ1wÜ‚ ·ÀÂ-ðáxs¿L×lºEÜm)^%æ¹Aiœ¸Ým¹4aSM+l:1—ê±·æÒ;ÅкVÒï®7-Á©§ºz7ʽ¿æ>Ýûd—»Õõ¤UîÞ'?VoæØZiˆ‘Kp¦É)Pb½ÁÉ)Â>:E¨‡dÓ¨‰AJ±ëo8…2¡ïv +-ÂÎ;Eø”h{¢;ƒ̦o]Z’SI¾?›fðÖ ½ýVi¼ÙVi¼ÙVi¼Áu|°á +~}‚D+»ÀÙ.Ð|új ©Ð‡ôЇt™Î×ÔêC®ÑF %: ‹`iì2v¼pC¸¡/²•e¶Tf‹Ù¶~°Ø~¸,Á¥ß_oÛ¯xï=^ÙãÍ‚7Û*ÍoŠ^åÂ%­åBÅ&¹`ÐØ“G¹ˆì‡rÁ³Gz\‹¶e^h…¼Û.¤´ Â.2 ƃ¸Û°Ö¤1 +¸UïG¥5R‘íF´¸Ç¿Zp1›p#Ü|¿+¹èÊ]ß­ëÊ=ååš®ìÿ­Šlß^SòO­xÿap⋨î¯*g¸jUinr*ëXqb* „CÓh˜ÁXÇÓ8€™ÛE5ÒèBNîv!+ɘì‚ç_¯…]àÃ.ð& ~™®YŒ”÷ìÂkìB(z2\^…ûª¬óùpgð3›ô|TrŸÙ¤ë¹7¦ÓTüÌÊû6pZ‚ŸZy;x? ÞêªÒlÅ\“©„] Z . >ÉEüßog“B·n!×ñÝ¢LlüÅ-¼p‹¼RŒÒ-rá¾áùn!{n‘«ÜBãFoíI+¢µG´öΞœÁ߶ +Ørø‚ý¶UàþÆÉt¢â/L¦ö[¥YðV{¼ÝŠ7 Þ[å‡*.`ÈnA0 ä8Cö4ÊErHª“\Ä’ŸåØ.\c7G'àäþÅ.òÍ.ÒÊ*¦£I.tþõê<_8ÍrÁ—I:Æk#åB.Rá^ã%OǺK?™,U$Û¹;÷‚{w« ŸÜ*¨f«h¾Þr¼¨|wM£|\½Y“ß&æÀf8dœŒ‚M&£ˆ§c£Ðâ¶Y“›Ä&?xáÿg¿ v$·qzï¯ð±çЊ(J”xÝA. H{X¹dd± ɻد]VÙ’»Ê–ª=ÝQE‡A•\–ý†¤È×óGTŠÅ4FsÀyç´š•‡¨ÓžÌQfE™Þ6-uÜPâN9'ÏÙ+Jó–EiJŠò ¾S•Ÿ ürUš’ªlµWÚ‰Û^žs7pß>çòJ¹6çZx?œo87].r¿ËýEj¼ApÍLÒbÃ>'Eˆ“]RN¾OvÁŠ÷Ý‚”A „a£ˆÌúÔŸL`œöar—¹…;»…MÜÂ_q âžÌRfW™Þ6-uÜPà^+`´»©uYji•ZŸ¦ÒÌÂœXHòêÓ¼RžWW×™z§é~j—R»œz»ã6ëív›6ÔWИB_d6µ¡¾Òk[¯ë~ﺩ +!Veú¢6 +-„ŒZ„Âûh(©0ѼˆFØõ HðcµBIãŽ>øÕGÔœ/–™>À¢0ÄëÓžR}ðEú`UóYåâóÇEç¤ci^¼¯º8Þàâ xÒâª"s¥å´$_¢§ä˜’W)í ^õ÷æaà%!ïï?&⽫ôˆßoÄQ5ª`q펣ZˆyDµ åe˜ïª…째a£ˆÌº]Ý&p™Z¸³Z¸ù×Ñ 0S \ÔO¦ÀCÜsU- 3 .2 )Db¿›X›%Ö­Kõ‰¥!«,±¶$±üÝÀ7›—]ý¼yQ}ó¢! @Ö¼lQój>â;Jô™ÀKB~¯ïཫìv –D-@gp.çUÃäàå‰g·0ŠwÍ"hNvÌBs¦´R ›©…ÉÔÂ,jaRµ°©ZP¦ò¶j·®ÚÛÊš´«š|­4Úúšìàü/^击¼Ê-Ú¯™tó*ç®™tåÜW&Ý€·v8Q‘C·0JkǸSÚE·0:q 'Ú°/VùÀp-$'q“øÌ-üÙ-Üüë¨8oœV³[àcÚ“ÉÊì*§—M+ï/Q‹ ¼updI†´$Ã’×plIÎàÇ•dÈJòúA%ÙÁ;xÿ³ƒ·Ú”¹Šˆ¿Bæ.a³ehé ·ä@G³Ÿ˜…Q¼/RyÆ{ ˆQDfÉ“Ȭý)^E³°ó¯‰Yø+fÁCÜ“<ɳ©Lo›–:n(P F…Á„ÝÌâffm–Ù"i´™Å‚Ì.à›M7›@Ú" +5Ýn%,iwñÞÁï¼Ñ®‚Ú+툶Ákþfí°µˆ‹'˜à%â¤ìºÆBÙr ¢ +Ý‚”ö»rÁVi&ÃN£Ý‘ ¿úˆr±8G\ø!î)• _$Ai®.·n•[ªÏ-¥¹u·ä6‚W¦ù#¯9M‡7ñº‰Qòí‰AC‰ú‰ÑÁß ¼áÃÙhÄo­z%•m¥ÆYQ€¼ÆI¤(V±LÝI.‚òûv!·i‰‰~!<ÉEØ” {I.x[.ì†\„j¹pÚ("m^—[Ÿæ’ÔÂœYHë_™ØNý.Ô¯i[>m[v­5wŠ}sÏj>ÖmR÷ +é±¾+j£ˆ>X™ÂÎfÔ(ï2“>€SdCÔ™Ñ'­ØÔ§Q¡•ym˜C´ö?ùgâ@+ÀÌ`Þ9­f€ÔpȘùßà¢?L¼wŠLvŠæ˜X—\æÑ™7 ‹†ô ¹!;ŽÙA2Eiß.I³:øyI¦•:“›+è)9¦ä˜“ïTeûàÍ–J³àÍ–J³à– +‚U„&¼AÄ{•“ +ƒÄ” ¹x&½0Aù³^¹“`_/¼bÏNB"±‘±¾¶ .± ›Ù…™wN«Ù.LjöX»À0’Û;Nv•Òü8eŽ®9=N¼$–K5Ý–Ôä¾]“6CÞÞ3¹¹‚ž’_v^[P“wÞK¥GüÞ#Þ,x³¥Ò¸ `ԨȳÏÀQ1ÛI.À‰)àtyüÏzÞ• 0Š@ƾa§ˆÑ¾° ³]ø·µ RÎ[S—\»J®«Onf¼ö–ävðw¯é¼óêâßE7ûãÜjk:oï༃ FƒØ…h‡•\E·°Š£[è2·ðòNÇ«À{Å-`S-\¦˜©.j'Sà!™—˜…eøÈ9Ò9–´†CçÜ~\E†¬"_ S‘wÞK¥GüÞ#ÞÁ{o׸<Åù faäË µ`0Ñ-œ"¢[ÈGÚu ‰I`ëNnÁèÖ19»…æL.üJ.l\ø!îÉž”Ê…¼-µ _dNË´—\¬H.§É}!ÉÅ¢ävðwßn`XÑÀ^ý–4°öÁ›-•ÞçÝNdy#j+3Zžp ]rhŒÄ„Ct“]¸ìÂk(a +“ëVÉ¥úäRš\WŸÜ;¯h`sÃʹk YêX?ðfk¼ƒ÷®r·‡S#± TäÙ¯í‚íl,#ülìy×.PÆ81KLÄLímva3»€Ì.`± HíÂlNÜy\n!I-Ì™…cÛ¡;tôaÒ±Æ>h<4éÝ¡ïå Z‘`±«Ð9·²`­Á(ïýt™• v_œ +Ú“ÄÃ+& +/¤/I­¤/IoKžÄÀ8-2ipUÒÀ£ˆP]5ÚM# ©†ÅÃÕ‚´·dGí•vDÛà.¿ò·ÃÛ‚7ñÞÁ;øŸ¼f@õCsýÂŒ¶7Ìè¦Àÿö¼–‚/žá'‹çŸÂéÆ0XÏŠˆí`•2¿ŸyøÇ#h­‡OžðñžÂã¿Ço²t¿}x‚ðøó/ŸÆË¿þç÷!ùiøýçÿ°²øþù«‘ x´…Ñ“Üðüã!Oýòùá˯?cZN‘'‰F@;üöéáïïãÿ†ßÉÃw¿y€1 ÿ•Õ?åßWC’J! +äï ÆÈýëŒ=­ ù´–¼z6ñ†Ó×éžxu¼í|u ñÂ`à´«á´~ß#W L7Èçt‹|9ß4~nM&x=Á7ýíà ÏsÙ” endstream endobj 264 0 obj <>stream + + + + + application/pdf + + + RBPassUp + + + + + Adobe Illustrator CS3 + 2008-07-02T12:00:47-04:00 + 2008-07-03T10:50:43-04:00 + 2008-07-03T10:50:43-04:00 + + + + 248 + 256 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAD4AwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A61H+bWqXMs4srK3njjnW 3j9NpHdnuI5Bajh8DUM8Yjdio+0DxHfGGcl3R7MiALJG1/Kr+zcK19+ZevQ6jcWMdrYK8F3FYFp5 /TPqvLHE0hiDNKIj6nIMV2X+bCcsrrZhDs/GYiVy3F7DyJ58rUNX/N+503Ub2wmis+dqVjaf1H4J IsgjlqjBJHFTtxG3iwBOA5yDTPF2WJxEgZb/AICc+Q/PeqeYr+W3u7a1gWGIs/ozxvIJF4dEDuzR n1NnpTpStdp48hkXH1ujjijYJO/d+N/JI/8Alb2oqt5JNb2kKRRSyW6u7fG0ctuBGH5cXLRXPL4d xTcDcZDxy5P8lx2AJP8AYf0hMo/zMmn9H05dOtvrskqw/WZWX6r6POsd5Q/DJJwHAD/K603Pinya T2eBf1Gu4c7/AJvkOqHP5p6mdGvdSWxt1WG4SKCNp0aRFPqmT1olcurKsHQ8Sd6Db4h4xq2X8mx4 xGzy7vdy+aS+Y/zI1W90iGUCO2CXVz69tBNNG0kUVk88SieJkO5ofgatePIDdTGWUkOTg0EYzPXY dB/Oo7FkUPm4at5o0VI7uMRw6tf2YW2mJingSxZ43dQxVviZae/TLBO5D3lxDpeDFLb+CJ3HI8SE P5sai1snCxthdS3UkSerMIoFjSJZVDTSMsZd1bajV8UrtkfHLZ/Jkb5mq7t+7l+Pe1p35ranqutQ 6Vp8NgJLi59KKSaWQD0zFJJ0A58gYSu6ipI2GMcxJoUuTs2MIGUjLYfpH60Pqvn3Ubu50nUrK5s4 TFNeMNOaeRWVIrW45JexqQOVYlKbbN95ByE7sseijESiRLlHevOP0/PdkWofmAYzpxt44Y/rmnpq fp3DkNMrkD6tbcftzb/q232sOXl7nEhob4rvaXDt08z5JTH+amo/WLSF7W2kinltjJdwO7xiK5VG KKoHNpI2kAbiD1B49aQ8cuQezY0TZ2vb3foP4KOt/Muq6h5UWW4uIxc3Gsfoy5ktf3bQQNfegVPx Eo5j2U9fiU9d8lxEx+LVLTxhloDYQ4hfU8NqvnrzbdaHqEK2yLI1tYXV9weaRFdk4xRpIirRgWkq CT1HbrhyTosdHpRkib6yA5fFAaf5tu7zzBYtqcq28emW2pXU720kn1e6ihZIkmSMmhXaUqWr0qDv kRks79LbZ6URxnh34jEb8xe9fcj9QutTX8vrT6zqD2ms6rJbiK59Qo8c17cK4UEU2hWSnHpxWnTJ Eng57lqhGPjmo3CN7f1R+lR8v3OqaydduNTludPns7dNPuUWaRYIruFWea4iAIA5AxOpX9n5nBGz dss8Y4+ARqQJvlvXQH7WWeXL25v/AC9pd9dDjc3VpBPOtKUkkiVmFPmctibAcHPARySiOQJTDJNT sVdirsVdirsVdirsVdirsVdiqxYIErwjVampoAKkHl+s1wUkyLT21tISzxI5JBJZQSSv2evhXbGg kSI6oDWvLum6vAsVwrRskqzpNCQkgkXYGtCDttRgRkZQBbMOeWM2PcidM0qw0y0jtLKERQxKEUDc kCp+JjudyeuSjEDkxyZJTNyKqbS1IoYUpUtTiOrbMenfvjQY8R72zbW5rWJDyYO3wjdh0Y+/vjQR xHvcbe3IZTEhVm5sCooW/mPvtjS8RaNnaGlYIzQlhVV2Zup6dTjQTxnvctrbKVKwoCm6EKBxNKbe GwpjQXiPe2Le3C8REgUNzA4inOteXzr3xpHEWhaWgcOIY+amqtxFQSSag08TjQTxnvc1naMSWgjY kkklVNSwoe3cbY0F4z3rvQg/d/u1/df3Ww+Hanw+G2NI4i0trbKFCxIArc1oo2Y/tD3xoJ4j3rLq ws7q1mtJ4Ve3nB9WOlK13rUUNa7161xIBTGZiQQdwhdb0Gz1mwNjdNIkJZGZo2Ac+mwdQWYNUclB I74JRBFM8OY45cQRr29vJG0ckSPG6GN0ZQVKEUKkHqPbDTUJEbrpIYpQokRXCkMoYA0YdCK98NKC RyU7uztru2ltrhOcE44zJUgOp2IalKgjYjuNsBFpjMxNjmFYAAAAUA2AGFi7FXYq7FXYq7FWmkjV lVmAZzRATQkgVoPHYYqpvdWqSxRPMiyzsywRswDOyAswQE1YqFJNMU0hYvMGhSwRTx6hbmGdpI4Z PVQB2hr6irU7leJrTBxBkcUh0OyAg8/+Rp/U9LzDpz+k5jci7hpyUAkA8t6V7YWCQ63+aDaX5iTR jpfrFtWg0tpxPTik8VtJ65T0yQFN4FoaLUAcwWUFVPNO80T3Xm7VNAmtBbJZRxzWdwzT8rqN0jZ5 EDQJBwR5fTPCdzUfEF2xV51ceR/OlzeaAv6NkjtdN8w6hqMrSzwSH0JdXhurdmPrMwX6r6hDJWQO oQjgzclXqGp2PmGe556fqsdnBxA9F7UTHl3PMyJ91MVXeV9RuNT8s6RqVzx+sXtlb3M3AUXnLErt xG9BVsVTPFXYq7FXYq7FXYq7FXYq7FXYqh7rUbC0jnkubiOJLWMT3JZgPTiPKjsOyng1D7HBbKMS TQCSan+YvkvTop3n1e2aSCD6x6CSoXkVgSiR1IVnfjsta9PHEyDOOGZqhzNfFLn/ADh8hjn6V61y UgE4W3jaUkmo9H4AaSCm4agHc4OIL4Evt4fioyfmray1Gm6Jqt4z2Zubf/QbpOUpNFiIaPden71O SeBOPEpxVzI51+33INfzB84X808Fj5Vv6Jp/71eMMUsN+wBALTzRL6SqwNKeqeoSmNllLHECyevd zHeP1O0zW/zXOnWSDy8xVdNWOWe7ubdJ2vOK/v2UNIaUqfTZAeXWmO6CMe9cXPy+n9atYS/nLK2m TyWumRKtgY7qO5uZC0lwfTPrTLDAoSSoNI4+Sgcvi+zjupOPegee3u/W3aad+cMkmnzXN/psDxWL w3BKyyBppPSPOWJGijMo4GjJ8K/EAKNjR71MsdGh12s9O5fb+UfzKR9O5+boeNjbtBUWcjFywUc5 w9y63Eg47OQtOvE8jiAe9ZZIm6jVnbc7eS618iec1ewkuPOdyZLGKSIGO2hLH1ONSzS+oHPwdZFb 2phA80SyA3UQL9+yp/yrfUmnsZZPN+sSGyWRUJa35j1FoxR/R5Gvf1fU/wAnjgEfNM8t3UQL+z3O g/KjSYmtD+mNZYWXqfVh9dZOHq/b4tGqOtf8kjERpZZib2HqroOnd3Ktt+U3k2GCCKRL25NryNu8 t/efuy5JYxokqRxlq/F6ary71xEQFlnnK/6XP4Ll/KX8vl4f7iuQjLFFae5YDl9rZpCKGvTERARL PM3Z58/gmGl+QfJml3C3Njo9tDcry4T8A8g5VrRn5EfaI+WGgxOSRvc7pxaWFjZLItnbRWyyuZZV hRYw0hABduIFWIUb4WCEl8seWpb030uk2Ul80qXDXTW8RlM0ahUlLleXNVAAatQMVX6ZoGg6U0ja XptrYNKsaStbQxwlkhQJGrcFWoRFCqOw2GKo/FUNb6nptzcSW9vdwzXEVfVhSRWdeLmNuSg1FHUr 8xgBDOWOQFkGkr8hf8oN5d/7Zll/1DphYJ7irsVdirsVUL3ULCwgNxfXMVrbghTNO6xpVjQDkxA3 xJSIk8mF3v5zeTYRf/VGn1IWBjHrWURuLeX1DQlLiLnEoQ7EyMoJ2WpyJkG2OCRrl6vMdPuaPnfz veXOow6R5SnYQLEbV76SO1PxpU81Zzy36BTt+1Q7YklYwhtcufPbkpava/nFqEerQxvp+nwywILJ LeWSV1f4uQhuONq6sduTOlP5R1OO6InGKsE9/wCxWHkXzhPf6pcXfmyeEX0EUSPYQxQHlGsgHJXE rIqGQEelIrN3YYkeaxyAV6Rt9vvRbflho88lw+palq2pC5jWGaKe/mSNlXlQMtuYA4/eN8L1X2xM bTHMY1Vek2rRflZ+XySGRtEguHoFDXPO5pSoBX1mk4t8R+Ib4eEI8adAXyN/FNYPKfla3Vlg0axi V1KOEtohyU7lTRdwa4WskpmkUSEFEVSFCCgAoo6L8hihdiqReWLGCO61vUIlZf0hfyE8nZ6/VgLd jRieP7yJ+nag6AZXAcz5uVqJkiMT/DH7909yxxXYq7FUPqF/a6dY3F/duY7W1jaaeQKz8UQVZuKB mNAK7DATTOEDOQiOZSqfzv5XgnmglveMsD+nKoimND8YYghCGVDC4dhshBDEZE5It0dHlIBA5+78 ddu/oiLXzX5cubV7tL+JLZJltzNMTChkdQ6BDKE5h1cFCtQ3auETDGWmyA1W9X3/AHOj81+V5XZI 9Xs3ZYjO3G4iIES15PUNTivE1PbHjHep02Ufwy7uS0+b/K1EYataOju0fqJMjorLTlzdSVShdVqx HxMq9WUF4x3r+Vy/zT8vx+L7l481eV2iWZdYsjC/LhILmLifTAL0PKh4h1J8KjHjHej8tkuuGXyK suvaG3pcdRtT63Ew0mjPPmnqLx33qg5CnbfHiHejwZ/zT8kP/i7yp9VjuzrNkttNX0pmuIlVuNA1 CWHTmtfmMeMd7L8rluuGV+4r7/zP5d0+aOG91K2t5JKUWSVRQMjyKz7/AAKViajNQGlOuJmB1RDT 5JCxElFWWqaZfFxZXcN0UVGf0ZEk4rKvOMniTQOp5L4jCCCwnjlH6gQicLB5t5G00w/mFr1xz4fv L791Is6yv69xE3IF1EJjT0/hKMT8XQZj4x6y7fWZL08B/V7ugPxv9TLPIX/KDeXf+2ZZf9Q6ZkOo T3FVk9xBbxNNcSJDCn2pJGCqKmm5NBirB7r8zZNRMsPkzTJtdaC8htZ9RQL+jwrSRiUidXLN8MnG qq3H7bAoN433NwxAVxGgR03U7ryh5+8wi6h8w67HYWTSwSwWWlorJ+74OQZpVWbZ0qNx8XxdPhxI tY5Ixogb0bvcJna/lX5IhuZ7mfT/ANI3M5VmuNRd7yVSoFeMs5eQcuNW+Lfp0oMeEIGeYqjXDy+L Kkiij/u0VKgD4QBsooBt4ZJqXYq7FXYq7FXYq7FXYq7FUq8rcm0K2uG2N6ZL3j4C7la4C/R6tMhj 5N+p+sju2+QpNcm0OxV2KoHW9Jh1fSbnTJpZIYbtPTlkh4h+BPxKOautGHwmq9DglGxTZhynHISH MJBL+Wfl+a8e6lluXeR3LoWj4mGSdrlrfZKiMyyMag89yOVMrOEFyh2hkAoV+BV/L4eSpH+XmkRa da2UVzcq1ncJdxXJ9B5PUitvqkVVeJoaRxBQv7v9kHxqfDFIOumZEkDcV177PW9z5pVb/lTZNLd2 15cSvpaQw22kqJEaSOONnkPqK0IQlWmdF5cwUJ5b5Dwe/k3y7SNAgDismX4vyHdunE/5faLNHbRm WdUtXmlVQYiGa4vI71uYaNgwWWFaDpx2Ncn4QceOumCTtvXf0iY9/cUBZ/lL5ZtY/SSW5eIxCBkk MLVjDq/En0q78OLUO4670IiMAbZdp5Dvt9v61e2/Lyy0tBcaRPINQto/9EM5iCtLHZLZRerIkPq8 AqBiAaciTxOww+EByYy10p7THpPPn/O4jW9KOkflfotpDp7zyTPeWsVskx5Iyu9tLHMu5jDcQYVS i8aoBUV3wRwgMsvaM5E1VEn7bHf5370dr3kHTdZuprme8ureWZ4nrB6ChfRilhAAeJ+XJZ25Fqno KgADJSxgtWHWyxgAAGr531IPf5Jh5f8ALVloa3QtpJJTeS+vM8vp8i5AHWNI/DvWnQbUGGEBFqz6 iWSr6Jtk2h515PfQv8d6xe216yGb6xElvKyMJH+tKJXVkmen748VV4lajClRmPjriJdtqhPwIxI5 V93u7vMhlHkL/lBvLv8A2zLL/qHTMh1KJ8yeZdK8u6Y2o6k7iLkI4ooY2llllYEpFFGgJZ3psMBI DKEJS5C2K2/lPW/NrT3fnRprawM8Uum+XY3i9GOJRHJ/pJQMZnYgxurMVHxceqkAi+bYMgjRhzqj dFnkcccUaxxqEjQBURQAqqBQAAdAMk0rsVdirsVdirsVdirsVdirsVdiqD1m9ex0e+vUAL2tvLMo PSsaFh+rIyNAlsxQ4pgd5C/S7IWOm2lkG5C1hjhDePpoFr+GGIoUjJPikZd5ROFg7FXYq7FXYq7F XYq7FXYq7FXYq7FXYq7FXmflfStPvvPutfpC0LyWt1NcWYnq4VkuEdJY/UiR1YN0MchWhp7tjQA4 y7nU5JRwR4TzAB+XLn94tl/kL/lBvLv/AGzLL/qHTMl0ySaaq+bvOF5f3ig6V5WuWstOszyPPUEI aW7k2C1jHFIhvSrMeowA2zlAxo3zHezjCwdirsVdirsVdirsVdirsVdirsVYX55/MGXytqdpD9Xi u4bmB39EyejIJBNHGp5nkvFhIRuvXqwFSKcmThLsdHoRmiTdUf0FS85eZtRj1WXQLa3gubS7itbW ZyJHaGfUJnjT1xFJGwhaOMiooQxXcg45JG6TpNPEx8Qkggk+8RHSxzv9LK/01p4e5EhlgSzV5Lie eCaGFUj+23rSokTAdahum/TLeIOD4Mtut9xBPy5pd5X1671S51eK4MTCxu5IYGgVTH6QdglZUmnD vxUcwQhU7FcjCVkt2owiAiR1HX9VD4c770/ybiuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KsF8q6bqF n561Z5LeaG3uFuZXf0mWF2e6DRM05PCVvSPwAboOSn9nKIAiRdnqckZYI0RYrrvy326b/PYp75C/ 5Qby7/2zLL/qHTL3WIL8say+TrbUGHxavPd6oTWtVvrqS4jofARyKB7YqyrFXYq7FXYq7FXYq7FX Yq7FXYq7FUDrGiaZrNoLTUofXtw3PhzdN6FeqFTQqxBHQjIyiDzbcWaWM3E0UcAAKDYDoMk1OxV2 KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KsGTU20v8kodQQ0ltvLsckNOplFkPTA9y9AMVZXoO mJpOh6dpaU4WFrDarTpSGMRin/A4qjsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs VdirsVdirsVdirsVdirsVYC/5qgTWaDSmAmvbuzu+U4DQpaarDpPqAKjCQtLcq/Gooob4iaBlWV6 j5i0/T7j6vPFeu/ENW2sL25Sh/4sghkSu3StcVYfqtvcw/ll5W0i4t5UluZNDsr2MIxaJVlgacOo BI+GJk37nAZUzx4zK6rYW9DwsHYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX Yq7FXYq7FXYq7FXYqx2P8vvKSSwSiydntrua/hL3Fw9Li4nS6lY8pDyVriFJeB+HmoYCoxVkWKpN 5m1LUrOKwi05oY7m/vI7US3EbzIisjuW9NJISx+Cn2xiqn9T88/9XfTP+4Zcf9l+Ku+p+ef+rvpn /cMuP+y/FXfU/PP/AFd9M/7hlx/2X4q76n55/wCrvpn/AHDLj/svxV31Pzz/ANXfTP8AuGXH/Zfi rvqfnn/q76Z/3DLj/svxV31Pzz/1d9M/7hlx/wBl+Ku+p+ef+rvpn/cMuP8AsvxV31Pzz/1d9M/7 hlx/2X4q76n55/6u+mf9wy4/7L8Vd9T88/8AV30z/uGXH/Zfirvqfnn/AKu+mf8AcMuP+y/FVNU8 5PcSWy63pRniVHkjGm3FVWQsEJ/0/vwb7sbSYmr6NXX+LrSMSXWvaRbxsyoHl0+ZFLuaKtW1Absd gMBICYwMtgLWW8nmq5mngtvMGjTTWrBLmKOwmdo2PRZFGoEqdu+IIWUJAAkUCiPqfnn/AKu+mf8A cMuP+y/Cxd9T88/9XfTP+4Zcf9l+Ku+p+ef+rvpn/cMuP+y/FXfU/PP/AFd9M/7hlx/2X4q76n55 /wCrvpn/AHDLj/svxV31Pzz/ANXfTP8AuGXH/Zfirvqfnn/q76Z/3DLj/svxV31Pzz/1d9M/7hlx /wBl+Ku+p+ef+rvpn/cMuP8AsvxVRhvvM1n5h0/T9SurK7t76K4ettaS2zo0AQjd7m5BB5+AxVke KuxV2KuxVQvpZ4rK4lt1VriOJ2hWQkIXCkqGIBIFetMVeOzfmz5gvl8uS/U9OH6UuNHtYVljlke3 vNUtIbk3gAlSsMYuWiVNiW/b3xVknkL8yNY8x6za291b20Vpd2P1hUhDmVJUs9MunYuzFWjc6qVX 4QQFU1PP4VXouKuxV2KuxV2KuxV2KuxVxFRTFXnUXkHzfBpsUNtq7QzpHWVY7y6VJJ5boyzvzYSF SYfhVirfESeNd8xxil3u2OtxGVmO3uHKqH2/2pjo/lbzdZxambvVZLq4mt5LbT2N3LwVSAI5CGib 05UA3ekhY77dMlGEhe7Vl1OKRjUaF2dh+vcfJAXPk/8AMF71JotXVUhhhSD/AEy8VRLDAql5IaMs oabkzK7Gu1TsQwMJ97ZHVaeqMep/hj39/TZMP8Ia3P5ah0W/uBerdXUcurtc3UszegpVmjhkMSk1 ZKgcUA/HD4Zqi1fmoDIZxFUPTQA389/1pz5U0O+0ixuIr+6F7dz3DSyXVKM6qiQxF/8AL9KJOXvk 4RIG7j6nNHJIGIoAcvtP2lOsm47sVdirsVdirsVdirsVYT+Y/nTW/Kotr+C1D6KsU5vZzD65a4oP q1uvG4heL1CGBk9KQdK064qwi4/N3zFBqWpG7tNLu5/L0ToLmFJlEr3GmXuoq8LNLJwiX9HrHIPi 5fEarxoVWSaJ+Y3mC680WWj3UVm0JupdPvJIY5FeSRJtWjWaENK4RANGHJG5fbb4vg+JV6TirsVd iqyeCG4hkgnjWWCVSksTgMjIwoysp2II2IOKpWfJ3lEoEOh6eUWAWgX6rDQW6mohpx/uwRUJ0xVF 22i6PaXTXdrY28F20SwNcRRIkhijACRl1AbgoAovQYqjMVdirsVdirsVdirsVdirsVdirsVdirsV dirsVdirsVdirsVdirsVdiqDudE0a6vodQubC3nv7dGjgu5IkeaNH+0qSMCyq3cA4qhrfyl5UtvT +r6LYw+lHJDF6dtCvGOavqItFFFfkeQ6Gu+Kqtr5d8v2kttNa6ZaW81nG0NnJFBGjQxsSWSMqoKK SxqFxVMMVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir sVdirsVdirsVdirzmD8yvML35099IBubd7lbplEnB/qJkadIfE+n6PA9y9O2Y/inudtLs/Hw8XFs ar/Oqr+35OtPzH1291Cw0+2g09pL6WNUujLJ6HGW1Nz6YIBJkj48W92XYVxGUk1smWghGJkTLbp1 518v2rdC/MnWNR19IJbeJbT0rplsoAHnmeIwGNYpHdI3b05udAfs1qAejHKSVzdnwhjsHexueQ58 /kmGtfmK9jd3cZW3shZQwySW1+5S5ka4QsvpJF6gIjagf6dxSuGWUhqw6DiA5mydxy29/f0SWy/O S6ntri4exhKwWrSBY5OdZ0kRH5MCVjRRIGPKgp0Y5AZy5E+ygCBZ3P2fj+xNNW/MbUdM0HSdSks4 JpL15frKQTLMvCGQR/ujEz8mfko+EtxPiKnJyykAFpxaCM5yiCdq5iuff+Agrj82by18vWupzW9m ZbmdlSOOcSBoUSN2HKMuiSD1dwz12+ya0ETmIFtkezInIYgy2Hd13+zb9rVt+Y+pajFJbzy6dZRX Edw0VwJ5ELxw3DWzLE4K/vjx5rQ9Cp77Pik9yZaCMDY4jVdPK9/LomHkHzhdz+Wpkv1W6uNH02zu TJA5kkmSW19UB+W/rVQht9ycnjnsfJp1ulAyDh2E5Ee7f7kK/wCZ1+sMUsSWF2HhS7C28rsZFd4k +qxeNwnq1Yf6u2+0fGPk2Ds6N16hvW/x3/qqvlb8wNW1rzTBYzi2tLJ4roiHdnkeL0GjCScuLNwm 5UXtWoB6GGUyLHU6GGPEZCydv0/qT/TNRuHn8y3k8hDWNwbeGF2PpxxQWySqSor9tpWYt1II8Bkw eZcXJjFQA/iF/M1+hhdr+aPmhLG2uJraxuYp47ZnnWQxBJb4zNFExcogESxfES1PfeuU+NJ2Euzs VkAyHP8A2Nb/ABtkfl/z5canc6j9Yghgs9Mt3a6ZJeUpmiVTIUT7Qi+JuLMATQEV3C2Ry24mfRCA jRJMjt7v1/j3xby/+YuuWGnW+jzwRT6nWIJNc3LMKzQi6k9eSQ8i371VVVqeoHIrQ1RykCnNz6CE pGYJEfIedbfJHXn5qXP1bWIbS2ne4i+tmGdjCDbiIOkZCqsiuplioGNQWYCp7SOY7tcezRcSSK27 9/wE18v+etTvtQ03R/0e3r1ni1C4nljD/wChcIpXCJtyMr9B4H5iUMhJApoz6OMYyne21UO/l9jI tNv7s+YdW0yZ/Vit0trq2f4eSpc+qpiPED7LW5IrvRssiTZDi5IDw4yHWx8q/Wm+Tcd2KuxV2Kux V2KuxV2KuxV2KuxV2KuxVoIgNQoB33p49f1YramLS1BUiFAUJZKKNmPUjbqcFBlxHvXLbwIQVjVS CSCFA3b7R+nvjSDIukt4JDWSNXJUqSyg/Ceo37Y0okQ0tvbqSViQFhxYhRuCa0P0nGgvEW/Qgog9 NaRU9IUHw0FBx8MaXiLRtrYoEMScFJKrxFAWrWg96nGgniPe0LO0ChRBHxBJC8VoCwoe3fGgvGe9 uK3t4iTFEkZYAMVULUKKCtPDEBBkTzcLW2HGkSDgSyUUbMepHgcaCeI97a28CEFY1UgkghQN2+0f p740gyKmljaJdzXaRhZ7hVSdxX4xHXjyHQkcqVpWm2NC7SZkgDoF/wBXt6EeklCQSOI6rQKfoptj SOIrhFEOdEUepvJsPi2pv47YaWy16MNQ3prVTyBoKg041+dNsFLZYta/l1pUGuz6iZC9rNWmn8FW IBiH4MF+FkWSsijjUMa1JrWsYRdubLXyMBHr3/jy29ye22gaHa3Qu7awt4boGQidI1V6zNyk+ICv xt1yYiA40s85CiTX6lW0023trm7uk5NcXrq88jkE0ReKIKAUVR0HzPUnCI0xlkMgB0CKwsHYq7FX Yq7FXYq7FXYq7FXYq7FXYq7FXl2ofmnrWjvaWmorYT3F9r0GmwXcXO3t2sfUtobuZFlkdneCe4eE UYcuDPxCqwxVnmp+YYtPufQaxvrg8Q3qW1tJMm/bkopXbpiqN06/ttR0+11C1Yta3kMdxAxBUmOV Q6kg7jY4qiMVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVUp7mGBoVkdEM7+ lGHYKWYqW4rX7Rop2GKquKuxV2KuxV2KuxVJrXyV5NtLYWtpoOnW9qJ0uhBFaQJH9Yi/u5uKoB6i fst1GKpziqReQv8AlBvLv/bMsv8AqHTFU9xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kpb5m1KfS /LeranbqjXFjZ3FzCsgJQvDEzqGAKmlV3ocVV7PUIpbSCSeSNJnt0uJUqBRSoLNQmoUHviqIt7iC 4gjuLeRZoJlWSGaNgyOjCqsrCoIINQRiqW+Wdfi1vy/o+qkLBLq9jDfpalgWVZY0kYDuQhlUE/LF UZpuo2Wp2EF/Yyia0uUEkEoBAZT0NGAOKohHR1DIwZT0YGo/DFWGL5g1DV28o30CSW0U+t31tewx OxRobaz1KJfVICgqZYI3owpy49wMVV9auBrj+XbvTEkuILLXpY7pwjfuzZpd2kzNXoqzJxr0O3ji rJLHUbK/SV7SUSpBNLbSkAjjLC5SRdwPssCMVUb3XtKtI0klnVlkuorAGP8AeUuJnEaxtxrxPJhW vTFVO58y6NbLctJPX6pe2um3IVWJS6vWgWCM7ftfXIjUbAN7HFUyHKrVIpX4aeFO/wBOKscXz1Yf pw6NLY3cFz9dWwSR1i9NnkgmuEkDLKx4NHbN1HL7NVAYHFUZB5jEvmi58vnT7qN7a3W6/SDegbV0 chVC8JWmVixYDnEoPB6E0xVOMVWRTQyqWikWRQSpKkMKqxVht4MpB98bSQRzSXyF/wAoN5d/7Zll /wBQ6YoT3FXYq7FXYq7FXYq7FXYqluia3Fqv1/04mi+oXk1i/Ig8mhpVhTseWKplirHPzBa8XyxI bNpFn+tWADQkh+JvoQ/2d6cK19sQqeW9/Z3FzdW0MqvPZMqXUY6ozoJFB+aMDiqXL5ls11fVrG64 WsGkQW1xNeyyKsfG59XryoFC+j1J74qt1/zZpuj2OuTtWe50LTTq11aKCrGArOY6ORwq5tJB12pv 1FVVLV9S069vdV8s6inpWR0r6xeXZkCKIblpoHXcfDxWInlXHkkAk0OaCm0Nm1x9UiuI00Y6CbFL supUH1OYkr0KiPflWmN7Lwm6rdd5bj1Owm0HSIJBd6Fb6GFe+jQGKS4hMEcTK4rTnHzYLXG7UxIN FZo3lZ9M1Tyqti/1jSNE0G60oXTMpZi76f6BIWleaWjklRT7xipFKWgeV73S5PKcEd8lxaaTYXdv cOrcfWaT0PTdUFeQXgd67V98bXhISzSbNdBTyxFqOsWVqmj/AKQ/SKPdRoG9blw2bjy4ct+lMKFP S/zM8kWdnp0GmalYWtq15cm+tLm9t1uY43eWQyejGZmYPK3IUI2I7GuViRPRyJYoRsGV7bVuCpaR +Y+hWtpBDpdtcLFJql3PexLFcXb+jdzzXLzJ9WguA3qSy1WMEHsNt8Ny7lOPGL9V+nah17kJqGu6 RaxWUUFprdtz8wfpJBd2EsRuHmleQwwl0hHxl/gR/j8d8Il3sDgP8Pq2vbp71fTb9LxL6G28u63f ga4NTk5pa2ginSWNxGPUnBbgQDuBXuQN8HH3MvAr6jVx4gpatqevxwapPb+WJ7ZtQ1rT7q5fVpbf 0heI1lbWscKxN8QZ7eGjB2UPX4vBsnkgQjGjLcEdD8rT/wAseWvNeo2k7efpxcTmd3gsrOZ47QxO QwWSOMr6gX7HGRmUqNwWLMZtKcJ5D8tJfvfiK5Ny99+lCzXt4yi79N4vUWNpiij05GTgoC8aClAK BUx03Q9N02SSW1R/WmjhilmmllnkZLZPTiDSTNIx4ivfcksasSSqraneGysJroWs14Ylr9WtlV5X FaEIrMgJ70rgJoM8cOKQFgeZYD+Xawf4n1MwaSumQAXCwj07qNyv1gEpRnltDwJo/Agq2wHHKMX1 Hanaa+/DjcuI7d3d/pmVeQv+UG8u/wDbMsv+odMyHUJ7irsVdirsVdiqFutUsbW7s7OeXhc6g7x2 acWPN442lYVAIFEQnemKpf5b8wfpKwM92YoJn1LUtPt4wePqfULy4gQKGNWcxWvNgPc9MVS2586G SG0ltYAofXjoswkYnaOWSJ5F4levCoBwqumktfKlvJLaH62dY1yJbgO4/dyahMkTgUB+wNwuBVT/ ABhP6OpyJY+s2n61aaOI0c1ZLqW1jac/C1PSF2XI8F6itQqhNR83XMMmu204s45NP1GCCwjubn6l 6tr9UtbmWYyOTy9N5pd1FKLTqDUSutmzEIE+o0GJ675w0C2t/Nd9pmuxzS6xNaT2M+mi5ueKQRww SVkto5FFTEw+EmtR44bphGJJoblW1zzRZatJ5nspNN1iawu7O2S4WCwNvc28ZEgDuLqSJyH34j0+ x27mJsb9G2MYzAiNpdSTsj9TvfMFzNrd5L5Wgso73S4rbUrnW7+FbRLOE3LD1ooRL8IFxKZPjHw9 SMST0WMIijI9dwOdfcs1a585C81ZtTn0G19HSvV1G19O8vaWSmUmQgfVC3Ihxx5dveuGj15I44ge kESvnfRBaymo2DQR33nGGKS+sktbPSbLT/Sie3kLcKRXE92q1C8eZqafdkTQ+5sx8cwaG49V9fms 8v8Al39K3Og293rersdQ8vC7VY5rOCGK3LQA2qxQWkXJT6w+Jmr8NDkuANfjzqr63537+acaR5B8 qX9tpM9hrWozaDd2gurXS2vbqKOeF1Vo5VjV4XjRROCyBQKleQqBg4e7kylm4geIXMm+JCad5c/K /ULvy+lv5bhuLPXLS5uoGuy0gRLf0qK0EhlRuXrV67Uw8A+TGWombs/Vz+CroWmfl2tx5YGmaBFJ HqJvTbXk4HrIbcNy9Wof1t6hebfCOmAQA+CZaiRvpxc68lfRNWvzZeTysnpi917U7W6VAFWSGG31 MxowHgbaM/7HJFpRzR6n5dh0SyMyyNqPmO+aVl5EfV76W+vUTem6qyKe22KttpXmmG3t1ZnnkbzF JduTIJeGnvPIyD4yeKrGV+FenbFbLf6B8w6lb3Ed3K0TQeYY7+2MrH4rK3mjkVV4V2KqQoP04VTG Dy9cXdzrkesM81jPq1pqGlJ6rHglnBZSRgCvwAXlq78Oh6/tYFZAqBSxFauampJ7AbV6dO2Kt4q7 FVO5FybeQWzolwQfSeVS6Bu3JVZCR9OApjV78nl+jeXBfeeryaHVIlhttQnvBaxI6sJIbpTMDG0c YZ258WmEjfC3GnEimPGNy5u6y5+HAAY84gX7xt1+yhvvzZv5C/5Qby7/ANsyy/6h0zJdInuKuxVp WDKGHRhUdtjiqlZ3lpe2sV3aTJcW06h4Zo2DIynoVI2OKrNM1Ox1OxivrGUTWs1fTlAK14sVOzAH qpxVhB81aKLby/rXmyU2F3Be6h9WlK+jBGqvPaI8/qfZVoioU92IwE0zhj4gTY2/GyGl8yeWrq40 Q+W9L1HUkstUu9Qh+qwNDBJdXMF4sw9e89GJizXcklFfbrsBTBxXyZnDV8Ro1fvt0F95uljCaZ5Y 0/S4ZNVkJfUZ3u5Rdu7PLciCNEUDlWjLP8qDfHiPcvhxHOX8N7d/cghoV6Y55E83QWwn1xItRS00 1YkN+8iq6xm5N5KsvIr6bh+IOPDXJPi8X12ajQ/QuP5c6deRamBdya7cw61aLItzdXtI4vVtjdrL H6ogab6szUdYx2+QeG+ajKI1wWDVHztUvdL8taFYeYLjQbNILzTNWsLEtLb2zJCLlrOWRLX4GIje O+PLlvzLHr8RIG7Cc7AFAV9vvT3zNDHFp3mSWyJ1q9kktDNpM8YuYomHpgKsQWu8Z59T44ODvZeO QBw+kx6jmfejvMvlH67p2vNpbi31fWrSK1Mzuyxj0OfpGqBmWnqtUgZJpW615RuNXuvM0VxciLTd f0WDSE4EtJE6m9E0nAjh9i8TjvvxNaUFVUR5k8qw6la61LbUXVNU0qTSkkkYiIKRKY+QAYj45jUg HbFUmuvKay+d/L9zciGaK1014pIGQOD9X+Co5DpzuVI27ZGW5DfiJjCR90fmb/QzOCztLdIo7eCO GOCMQwJGqqEiFAEQADio4jYbZJoYj5Z8p6tpM/k2O49ORNC8uz6TfTxNVPrLHTgvAMFdlb6pIQeP belcVT7QPLmn6NpWnafEomOmQ/V7a5lVTKENOVGAFOXEVp1piq7RvLmlaTYWdnbRB0sPU+qyyhWk T1mLPxagpXlTbtiqZMiMVLKCUNUJFaGhFR9BIxVDX2mWN9JaSXUXqPYzi6tTyZeEwRow3wkV+GRh Q7YqisVdirsVdirsVdiqG1IakbGYaY0K39P9Ha5V2h5V/bCFWpTwOA3WzPHw8Q4r4fLmxHyl5P1j TPNup63qYglm1CNwbm3ldh8UivwaKWPmtKfDxkoFFCOhyqECJElz9VqoTxRhG/T3j9IP6E68hf8A KDeXf+2ZZf8AUOmXOtT3FUNqUUkunXUUY5SSQyKi+JKkAYqxTRF1XRbTys2pSCw0XTvL8sWtNPJH HDFeJ9RWD1CzUqqrOAenXxGKsS8ta5qKx+VbDy6FvZdPsLm3Iu5JrG0u2f0v3tuzRu1wkAjYsUQ9 fhJ3okhlHHIgyA2CN8p+XfMU2kaJZ3+p6rFpl2Lgm10+JdNW24sz0upmL3Z5sSEaNkr4ZETutm2W Dh4rkLjXx9yI8reWtIguvLmp6DZPKj32oR6tql1FC14ywpcRKJ5lBYqJ0AT4vDCBQa8kxI2AB7mT 2XHzSNL1Yg2h0PWdR4wg+p6pszfaRu1E48w/q9DT7O/XCwSxYfNrWtvy+tCRfMsrv8bA/o36xLwr Q7w+nx26UwqjtP8AJpeK+i1Fyqya4dZtTAwqRHIksQfkp6tH8QH34qnel6Na6bLqEsDOzaldNezh yCBI0ccRCUC0XjEOtcCqv6K02tzW1ib65KlxdBkBEk0aoiSOD1ZVhQA/5I8MVSzQ9KvbTzD5kvJ0 C2+o3NvLaMCCWWOziiYkDcfGhG+Kp7irsVdiqVKGl81yFm+GysU9NadTeTPzJPt9UXIfxfBv5Yvf L7h/x5Ncm0OxVIfOvmOTy/oyX0SpJM1zbwpA4JMokkAkRKMvx+lyZeu46HIZJ8ItytJg8WfCe4/j 5sK/5Wl5iVgv1ezkA4/vVDiORJVmX6wreqwWC3nhCPISQ9duGU+MXYfybj75fituXMg7Dp5pnffm hc6bYWclxYRzXE9pJevWb6qHjExjhEETCZ3eVBz4122BO+S8ahyaodnCcjR2BrlfTe+XJo/mlc/p BrOLTra75XEVrFcQXtIOckAm+KSSFBQ0f06Cr8dl6VfG8l/k0cNmRG1/Tvzrv919yG/5WvrIKsdD ikMsFtNHbJdNzT6wgdecjRAfF60KBeGzHckHYeOe5n/JsP5/U9O74+RPuVm/Nmc6fJeQ6OJPTihl aM3QVv3mnPqEmxj5BY1RUDFfiJ28CfG8mA7MHFRl39P6XD39fsRUf5nLPpuo30NkkaWVi97H61wD yYTvFEjeksgj5qgb4mHWgqAWD41hiezqlGJPOVcvK+v4+5vS/wAxtS1LVYNPg0eNTJcJbSSveUpz t2uvVVBCZDGYVqjMq8q08cMcpJqkZNBGETIy6X9PnVc+d8+dIa6/NKdNXjtYbS0Ns88lsry3TJzI nMUciyCJ03WN24Lyr0DcgVMTm3Zx7NBhZJur5eV9/wCr5bst8ra4+u6Baau1uLUXitIkIkWaiciE JdQBUqASO3Ttl0JWLcHU4fDmYXdfBNck0OxVIvIX/KDeXf8AtmWX/UOmKpzcXENtby3E7iOGFGkl c9FVRVifkBirAtf806o3nSys/LZbU5rvSJSttHKVggaeaFoby65AoqLGG47F2rRVoScSkd9bKcHl K2bzhpdv5tkPmXVrqwvLuO7uFSO2tvqUtrFwgtUUJVvrnL1GPIFailRxjw97bLMdxHaJN1zTHy3c iUeUm0Sx9Py/NYXTu7qXaD+5MKeq3Jl51fau9PbCIgMcmaUySTz5p35OfW38t2ba2GGqH1PrAcAN /etxrQAfYpha0fpmmWOmWgs7GL0bdXkkCcmb4ppGlkNWLHd3JxVZo+lW2l2kltbqVjkubq7YFuX7 y8uZLmQ1IHV5jt26YqjcVdirsVdirsVdirsVdiqU6Pxk1TW7ivJvrUcCv24RW0R4j/Vkkk+muQjz Lfl2jAeV/af0Um2TaHYq7FXYq7FULp+l2WnpMlojItxNJcy8neQmWU8narlqVPYbYBEBnPJKdX0F IrCwdiqF1PS7LU7NrO9RpLdmR2RXeMkxsHX4oyrbMoPXAYg7FnjySgbjzRWFg7FXYq7FXYqkXkL/ AJQby7/2zLL/AKh0xVin5haprsHmRtL0+Ge/XV9HmgSxgcH0wstbm6MZJoUhbihK/E5VO5xJoJjG yBytb5f8u6Pot/a6Tpemenc3ugXN1Nd3K1v3nLwIRM5Lbt6m61otABQCmAAHdslKUQYXcb+HvZh5 Q0trPyzoMV5brHqNjptvayFgpkjPpRiWMMK7F4l5AGhoPDC1IvQdGtdE0az0m0Z3trKNYYnlILlV 6cioUV+QxVH4q7FXYq7FXYq7FXYq7FXYq7FWO6l5pu7FNdkexSSPRrdLlGWcn1Q3MtG/7ukThIw3 H4tmWtK5WZ1fk5ePTCXBv9Zrl+3f7OSXaf5vtIdI1Z9PsLiW7s7h3FrcGKNp5bu9liVUeNph/fI0 a8t9h23yImKNNs9KTOPERRHMXtUQfLpunnlrzAuvWct9DD6dl6pS0kLMWkUKpYsjKnBlcsjLvup3 ycJcW7jajB4R4Sd+v4+1N8m0OxV2KuxV2KuxV2KuxV2KuxV2KuxV2KsS0PVG0n8p9P1RYxK1hoMN 0sRPEMYbMScSd6V44qxjyzf3HmbVNZ1IJLBqWt6VOdDk9UrHFYK4t4KUrvJMjTq/ZXx4Rds/EPDw 9Lt6Rottc2ujWFrdP6l1BbxRTyFixaRECseR3NSOuLBGYq7FXYq7FXYq7FXYq7FXYq7FXYq7FUA3 l7QGa6dtMtGa+FL5jBGTOK1/enj8e/8ANkeEdzb4+Tb1Hblvy9zUflzy9ErpHpdoiyMkkirBEAzx sXRmAXcq7FgexJOPCO5TnyH+I/NGwwQwoUhjWNCzOVQBQXkYu7UHdmYsT3OSaySea/FDsVdirsVd irsVdirsVdirsVdiqQHz55T52iDUFY31xLaWpWOVlaaC4S0kBZUIQC4lSLk1FLMoB3GKp/irDtMk hj/KCzknuHtYI/L8Ty3MShpI0WyBZ1U9SAOmAhlCQBBIsdyeaLpOmw29heRKJbmOxitI7wgK7QKA wBA+EVPxUGEIkQTYFJrih2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV 2KuxV2KuxV58v5VTm4t5ZtWRhHqF5ezqlqV9SG71SDVvRBMzcWSa2CepvVGPwhqMFWXaj5X8s6nc fWdS0iyvbjiE9a5t4pX4jovJ1Y0FcVQ/mGfR9O0RNPuLF57C8A02LTrRAOSSRsvpIoaMKvpqRsRT FVCLzPJFEkUfl7VVjjUKi+lDsFFAP77Cq7/Flx/1L+q/8iof+q2NK7/Flx/1L+q/8iof+q2NK7/F lx/1L+q/8iof+q2NK7/Flx/1L+q/8iof+q2NK7/Flx/1L+q/8iof+q2NK7/Flx/1L+q/8iof+q2N K7/Flx/1L+q/8iof+q2NK7/Flx/1L+q/8iof+q2NK7/Flx/1L+q/8iof+q2NK7/Flx/1L+q/8iof +q2NK7/Flx/1L+q/8iof+q2NK7/Flx/1L+q/8iof+q2NK7/Flx/1L+q/8iof+q2NK7/Flx/1L+q/ 8iof+q2NK7/Flx/1L+q/8iof+q2NK7/Flx/1L+q/8iof+q2NK7/Flx/1L+q/8iof+q2NK7/Flx/1 L+q/8iof+q2NK7/Flx/1L+q/8iof+q2NK7/Flx/1L+q/8iof+q2NK7/Flx/1L+q/8iof+q2NK7/F lx/1L+q/8iof+q2NK7/Flx/1L+q/8iof+q2NKq2PmqK51OHTptOvbGe4SSSBrqNFRhFx5gFHfccx gVO8VdirsVdiqld3KWtrNcurOkEbSMkal3IQFiFUbk7bDFXnWq/mj5Uv20OQW2oyLLPYXGnNFHCF lvL6BZLayJklWkrQ3Su1aIB1fbFWReXPzF0LzBqUdjYRXKma2F3BcSoqRuPRtbh4x8ZcOkeoQlgV A3IBJVqKsoxV2KuxV2KuxV2KuxV2KuNabde2KvOovMv5lQ6bFO+nrPI8frzepZzq8ZmujEkXpxOz ERR1duKs/EDbflmOJz7nbHT6cyq6/wA4dBfXvO3d9yY6P5j863EWpy6hpsdv9St5BBCLe7DyXKAB SDR+cUhqQIg7Add+sozlvYasunwgxEZXZ748v1++ksm81eeYNWMkWiyMDb2xuVNndsZWSD1pIomE rQxN6kpQHfoalqKDHjlfJuGmwmNGXU/xR76vlZ5Wj7q+82an5WgSdZbHV7+8hjtp7GC7jFvFzRjJ Mkg5gABlb1Aqn5b4SZGPm1RhihlNbxjE8zHf3fsTbyZHrLW9/e6xHNb3t1cmtpJLJJHGsSLGfRDs wWN5FeRePUMO1Mnjvq0aswsCFEAc6+/zqgyLLHEdirsVdirsVdirsVdirHPM3nzRfLuo2ljfK7SX NvcXbOkluoigtFDSOyzSxSPs2ywo7bHbFWLT/mp5Tm1lLy7tdSs7rQ4bj65DJFD+5aa1lu1ilCSu TJJb2DunCo6BiCyjFWQab+ZWi3+r2mlLa3cF1dO8D+qsXCC4je7j9CVkkf4mbTJ6FOS7D4viWqrL MVdirsVUrqD6xazQCRovVRk9VOPNeQI5LzDLUdqgj2xVgqfkv5cSLT401DUFGlizeyIkg+C50+OO G3u6GHiZlhhWM1HAr1XfFU38ufl1oXl/Uo76wluWMNsLSC3ldXjQeja27yD4A5d49PhDEsRsSACz VVZRirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVSDzV5M07zQkdtq1xO+ mJvJpieisMkgrxkdzGZwy124SKPEHFWPr+S3lhpbqW5vdQupb+Nk1CSWWLlO5tp7NJXKRJR4re8k RONB9kkEqCFUz038tdFsNXtNVW6u57q1d539VouE9xI93J68qpGnxK2pz0CcV3Hw/CtFWWYq7FUm uPOXlq31o6JNeqmqKYVa2KSVBuDSGrBeI5nZTXrtiqcllBAJALGgHiaVxV2KoaDUrKe/urCKTld2 axtcx8WHETBjH8RHE14Hodu+KonFVk08MELzTyLFDGpaSRyFVVG5LE7ADFUHruvaVoOlzarqsxgs Lfj60yxyS8ebBF+GJXb7TAdMVR+KuxVLdS8yaJpmoWWn39yLe51BZntQ6v6bLbJ6kpaUL6acE3+N hiqYSSRxRvLK4SNAWd2ICqoFSST0AxVBaJrmna3YLf6c7yWkh/dSyRSwhxQEOglVCyMCCrDYjocV a1vX9I0O0S71W4FtbySpAkhVmrLIaIlEDGrHYe+2KqT+adBXUb3TWuv9O063F3ewBJC0cBHIOaLT cdKdaHwOKpfH+ZXkaWwN/Hq8T2okhhLqshPO6HK3+ELypKPsGlG7YqnFjrekX2lJq1peRS6Y6NIt 2GAj4qSGJY048SpDV6d8VRuKuxVL7HXtKvtU1DS7aZnvtKMQv4jHInAzqXjozqqvyUV+EnFVbUdU sdOSF7uQxrPNHbQ0R3LSynii0QMdz36Yqh9B8x6Lr9jHfaTdC5tpAWU8WjfiJHiq0cgR1BeJwKrv TbFW9H8waVrH1k6dK08drI0Mk4jkWJnVirelKyqkoVlKkoSARiqY4q7FXYqhr/U9N0+JJtQu4bOK SRYY5J5FiVpHNEQFyAWY9B3xVE4qpXV1a2lvJc3UyW9tCpeWeVgiIo6szMQAB74q3bXNtdW0V1ay pPbTossE8TB0dHHJXRlqGVgagjFVTFXYq8m1n8vvOl95r1/V1t7Zk1aa3hg/3JXduq2UFs9sfUig iAd+Uzyrvt0B3NSrFrj8vvM+o69pHlO8u+F9YWE895rUV3dyAzSzwxJcqJBQXP1WBv3a0C8hvTFD J7f8sPOtzpF9Dq2pMdV1TUrV7+9gv7lQbGC9eeT0kRIvTYwv6aqeX+sAAApUNX/KjznLdX66dfC2 sDdmfTIhqF5yWC201re0gfkGIDXTCR/ib4a091UN5d/KHz7ZeaLZ9T1P615ct2t3jRdRu/X52kds iO6tEQa/V3oEdftEVC/CVUPqH5M+e76edp72G4tr5vUvLe5vrt1Al1cXbxRqUccVs4I05Hckt23x VUj/ACm/Mm4u+eqXljc287Wa3ii5uPjit9SN5IvFoio/dRRRIFoFUcfFiqyjzl5B806trGv6zpl8 ba9bToLPy4DdXCRxT/vRdTPGtUR2jlCRsAaH4qA74FY5d/lN5+LlLG9SC1WOBFjl1G4lNTfx3VwU KQQ+nVPVRlA4sONFWmxtChqn5OefNX07RLXVJ7C6exSZ79nuLj95PeapDd3BU+mWp9WhMYB6A0Hj ilNvM3lbzJbaf5zDv6n+JY49J8uWUcs07xllaNTyVIhFGIwrlW5cSG+Oh3VQ11+U3ncLqsNhqSQI tteWejSLdXEZaC5hghto5FQD0ltfTkkPHlzdq9zVVkvmXyNqiaZ5Y0ry7DHcWOjanDqd59eu5fVl NvykUeo6TszPO4ck9KbDAqUTeV/zSebzfdpa6Ul95ntobVJRdzcbdILN4F4j0Kt++lZ9z098KpPb fk/5utLG108RWl1FFqVhey3n12e3uWtNOtPTtrP1I4SU+rzk+m6U+HenKuKsiu/yz1x/ym0ryYJr W4u7ae1a/cl4IZIY7sTzopRCxLJVeTLV9ydzgVKZvyj81HTrWCO9IN9f3k/mGIX9ytbV2m+owwSO k3FYFlHJQoJbflVVYFVth+V/5hi6tbi+1FZLttSS51O5N/PJFLbQTyPGn1YwpWsUxC/vOSsF+Ljs qq/Xfyo86X+ueZtZtr+O1vL43rabJFdXCep61lFaWqSqiqI/QCOxI5cmp+yMVVLX8ufzHt7a2rfW 73UGsS6i7C8ugrW8Vn9Xs4SDGQ3F0R2DDxNRyIxVf5B8h3v5eeXdfvdWjgnupra1gtzZPcTvJ6Vp HAY+PBWrJdcmHH+au2Kpfo/5N+abDQZPqt61rq0Gi2dppQF3cBEv2ErahM6KWjV3E3pxuAeP2qA7 4qpr+Tfnj9KS3qambe3a8huLewj1C7EUEKTXF00MdFHRjbxbUrR22JGKsli/LbXLny15K0HVbxng 0djJ5ikhvLlWuKW8iBFdfTZ1eaQE8qUUUB8QrHUs/wA9b++lMwutKW7+rRLJFNaPBAraiTMyxcmI EViigftMdyatxwqhdP0X84tYuNAtPM9hdyada6nZXc7ST2lPSSee7ka4WN/3hjZYI1XoqjYEtiqr e2P59XV4LuKa8swBcveWsclmYnlh+tvCluGLcI3X6rEpJ+IlmYfDXFU2tdG/NZvIPm/TdUe4v9Xv IIbDSGme2+JHtI4J5kMbDj+9aRzz327nFUDp9h+aFnDo1hqFxeaHolhHI+rapHJYlEe1njjT0/Ue kVp9Wi5IrRv9puSk0bFURotr+b82geW557m6mu725tn1KMmKNYrGFVRjNIxSRJJgxmPFH6cGFeqr 2DAr/9k= + + + + + + uuid:B7D572641149DD119EEFF96D7801BC77 + uuid:b46d8aee-c25e-b541-956c-22fa803ac69c + + uuid:d81eb84f-0775-844f-8950-327b309a2838 + uuid:BD14D8DC7C16DD11BCFFD65EC7B1D34C + + + + Document + + + 1 + False + False + + 23.000000 + 24.000000 + Picas + + + + + Minion-Italic + Minion + Italic + Type 1 + 001.001 + False + MinioIta; Minion + + + Minion-BoldItalic + Minion + Bold Italic + Type 1 + 001.001 + False + MinioBolIta; Minion + + + Minion-Regular + Minion + Regular + Type 1 + 001.001 + False + MinioReg; Minion + + + + + + Black + Red 2 + + + + + + Default Swatch Group + 0 + + + + White + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + Black + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 100.000000 + + + Yellow + CMYK + PROCESS + 0.000000 + 0.000000 + 100.000000 + 0.000000 + + + Lime + CMYK + PROCESS + 33.000000 + 0.000000 + 72.999992 + 0.000000 + + + Night Blue + CMYK + PROCESS + 100.000000 + 50.000000 + 0.000000 + 0.000000 + + + Pigeon + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 30.000002 + + + Red + SPOT + 100.000000 + CMYK + 0.000000 + 100.000000 + 0.000000 + 0.000000 + + + Red 2 + SPOT + 100.000000 + CMYK + 9.000000 + 82.000000 + 60.000004 + 14.999999 + + + + + + + + + + endstream endobj 60 0 obj <> endobj 266 0 obj <> endobj 271 0 obj <> endobj 273 0 obj <> endobj 276 0 obj <> endobj 277 0 obj <> endobj 391 0 obj <>stream +H‰„”{TgÆ'@Bê©é‘1•dÚ|©K][ë…v/Õ­wEQ\•  r   $!1¢¹ +„@  ä& ЀEwźÔj¢Òª]—Uw«=žýâŽ]wÀžÝÿvÏÌ7¼óÍ;ÏïyŸ„H$ztBÔÖؘe»øyüü¼åÑ®€höFD#ÂC”oá¯üç½ÃäwÄÔ3¦¼U zÞ™×6»O¹9_(ñ³²%쥇>`G®^½ê£ÙëÇìùé<6G.–ðrÅìè¼Cù"a¾ˆ+áe¬`³7 +ìØÙ§ÄìXž˜'’Õ×Ø|1›Ë–ˆ¸¼\®è0;?óuBq HÈJÙ„ [$ +A¶!»BN²A"@E‚`$i ±I—‚ØAÚ`~ðO!’!²²„Rº$ÔN}‹Ê{cÁvmFé |ç%õOÀÖÉ`Èm h„+!pb Á•±G:|%„€X øÊå ü‹Ž/ýÂÕ¥ùøvH”?¸£à7€zdp¾£Íœl t9†d¤;Ð 7.Ó'ÊšOT–g1>}¹YWR©cè%dh£Z"%U–ÆóÀ™=Òò + >;Ù¢‘¾ µ„Á¸n´ "/XôɃ2«DŒÏgpql±bŸJÀPdç+ÕK¡Žè³Ã ª«èbTxŒšžŸƒõáTo¼ô’”›wšž[GÌ>†¥Ã[?Rih Çu½dLïT”ñemÜ‘ÅÉxux¿°‘iO”W“¥_õ*dawáºITûèÕªZÌz·ð<@íª&ranVÓTÔûª@#¤8!¹ùY‰!\UTY©¨À ;ZY„ÅüŽ—œb8I8)‚ùëÓ²fÛùöz;ëÜç_ ôS+(yPNïh(ÑÙA)O¡( ¢íE‡3ÓÅTn7÷vDëêé¨ùÆ= +¼cín·•Š +Œµ6ƒ£UþŽþ5¥?Ì?EØ4Cè’üý©,ñHÿ¥kM·¼ »¥­Ùƒ¹ÚŠÄv€^3¯3Ô™¨h—Íb±Z™ŽÜÖ¬è˜ìÌtVÔ®Ì÷>c~òyâ徇§¯±h5Ê‹ð'?©wÆÞ †O!¾;&Qž‰íP}=TUQWnÝpíŸ2ý9‰i»…üTÖÆXnÄ*&>o,¿»cºöÙS®€Tz >;è³S«j¬†ZÌáQfîKKÃA: ÆKºa®4°¨WÓ¡—…åÝ­¼ÓX Á—»o¢ßl€LXCï1w5xYŽV» jJýh×Δ¬¼ö«½¡x™JÙáø²¯£÷–Ôè[µ¡=y¹ÌƒQâ}¬o‰Ì}²9²,.ØŸ^°'Ž¹³çЬ$Á1eSe•µËXèMÇINfn}39ãÿ¡3×ågq»=-Ìr³ÁXo¦¢÷7Œ¶ô:Úš©^g÷Àufƒ¾Akc™Ê«ÊMåTô栮 +·í”¯ÄNl,ÔäêÖ騄@«¼À,Ähp¡IWNÊ`aƒ_7M M¨o¡_ÀùVºqÄ ƒjAgЧPE K˜sH¨Á´åµ­F€Î| Ýän“¥SˆI>Iâì¹¹õ¬Ë‚ÕœÔò4}º÷‘*­Jæ}rÛçè÷™"ú©f—ïh:¡päc™2¾°–Û‹Ú0¾È$}±Œpta¼ï»`(†oÒÅÂ<%V|ÂÒ\ -0Nn­:1«=Z"_äçÖþÞK3y]Q½¤ ³?¾4Ü h÷ç\ ƒ‹'áÆñçSúÛès4ðBò#½07“°©¸bΦçwS 7¨?8³g**ÕÈ@ªtí5„SMß’:›‹0´DMÔ ·¥¬ù%µ”ÒüòH]å,õ–$NÜ,µÓÙã$¨Kå5_}l‡&YϘpGÚ`Pu#c¤†@ú0æ,+ÈЀ |µ"Nw<Ž1éªiý³©›qÑ ©>„yõ‡“‰ÿBà÷³ã=n9çÆ{Ðàû?§$ ²'ŸMên£~øîl@æ^@ĉÈ<¸pséæÒ¿/&Ç+ ⶹƒ¯Âû/¹¿ñnãkò‚Pýš\¶~ÿ§ÿŸ0ó?„´qeW`aéÌÌ› +†ç±ô‚t¥8D¥oX³™[Û×Îœ¹âéîe}5Úóã÷ÌéÔ‹¿eáëñ:\:>é«cLõ36èá­øÛÛðyÜãÔR­B¯Æ8’Ñq@û®}…D¨W¯&UHÜãWIËzÃöÁåÐ;vÂÌ›^ÝÜTîÀ.HVá‹Váo–[XgS‚™@<]]-RHdÒB†:M ÌÑðå ƒÄmn3y«||KÖÜ©NÔG«¨’P¨®%7‡¢) UüÊR³y˜á„‹Èhgqck™³]ï;7B½tÕ3=ÊœJþ…X Wg³hb“¾zD‚àz0äô¢è$NüÜwÐÒë&ü*“'¨@©ŠWÅ+S®ÊnëWŽ¿1êºí§Û:©§]6£3×éµfPSl.7ÍÕ&‹±Öh9Y¯3SëµG-…XAÌîU@¥î2yÄRÞ)Áh{•ç!~–t{ôÁ¥`¤¤ß¿ïN§ÊµËMižSÌ.·ÓÝÞ&—ÚXF­åßúþŒ™–—–˜Œ˜ Œe¤j]\mus\`†cwZ¾t¶jºg’srfkrnok“¯m‚•ƒŒ~„{ƒ~y|kŒÅq¯<Î]vÿ€ÿ!€ÖØp°÷“÷vt[\t‡¡¹•Å÷›ö¨ªû«÷‚‘AOx?Gos’ÛMû²>zžhºåÚ¶«ÝÏGÒ÷ºèFÐJÌ‹w†ørFRÌ÷Ù·¶ž“’“•Šs”¾û:SVAm‚„‘†‘††—‚vzvqnŠ¤tª¹­Ã÷é¹ûg˜Ÿo¢ª¹¬ÑÄŠ{œihly|u{»¨`÷ ¦ž¤Ÿ£¬¦£Ÿ™•“‡}’bƒ‘‰‘›¡§¢w£kdc_û9sÎÄw~¯pqY\SZœÎøw©w’´°ø÷Lhr}l^9¢—iÐñê÷;÷N±Ë°—Ð~{v…€€r‹ŽZŽJvŽiy{~ap}u€t€lŸ½¨¡«Ã£¸Šª–œ‹š3ûûû +kh§i«Ž¥‘™—‰ž…sÚÈy´²¨¬ð¯|šùšû{—÷FÏ—÷ƒ’ü|— Cyÿ ¬ +Ù ÷zø  FÏ endstream endobj 274 0 obj <> endobj 353 0 obj <> endobj 390 0 obj <>stream +H‰|”{TéÆg ÉŒ]6^rÆC'íLt·X¼´UÖ*§ •‹Dˆ¢ÜL¸E„.aA¹&d%á"”;‚E¼ÊŠPÎVÀݪ-ZÝZ×¥ö¼¡ŸíéDÚÓsúGÏwÎüñ}Ïó¾¿wf¾Ça8Ž¯ð ñþuÐ?E‚"1Á-H“©´Ÿ¬´‰q›“Z‰Jþ>;?Èÿ1†ú?„°% ]Öý£ô-·‹4;“ÔJELl²ä§Qk$·lÙàjþLâxD.Ù§V%ËãUß„¨DeR¢22Y½N"ñŠ‹“Ù]*I\%W¦r» …J)IVFFËã#•Ç%‰Gÿ_% ù…-Æ1!£pÌ Ç¶cØN óæa~€cûøX#†1ܬãc[1%–Õc×p÷ÄõøÌ"¯E9nc>“ 5Vbc¹®ì&m»Dø§œ É"…§Çm¥#8LÌðl«W»+{Œ•NAÉ™E!b,ÜøOÿÜ?öGúÇÝMáÊã Œtku¿ãBçð¨øë¾àÍn;7íõfî Þ+ $³ŽÜúm.LóÏ +;)¨Ø$øC¥•Øúž+êbs‰ \ãŠ>rAÎä= 52w÷»Ñ7d15×àþð“qÞ<â1ï@G}ü2s—©G ä€ï:÷ðîÇ«“Y­>ûLN~vn^v·Š5•9dº¥MÝ+;ó að2yëzãðýØï9rJ<¤9u„©O>ä ªÆùBCªíÞx¶qù m•h|œë¢;üYD®Œ¬Ü1—”ŠA)ØŒö¬A«™Öi¦’/ê| ‘Ï!ê[ˆÈ3:-|Äå×f‚& pòÀ¤hV4ZÛuµÿèv落Øìž–=­tÃÍ1F4k|÷„Ú-½þl´ùê6öAìdø'ô/Ã"ü™ìxê1à÷`Ùüû¼zYÑÔõöÆš +=i¶šëé™]÷\%>[>ñ½"{Ë•‰JÓf“i)) Á4¾ |Ë_kn@R*lº„w=·‡<ÛŽN*§–Ÿ£>Y+>•u¾“…¢C×~¬1¥ÅÅ;³å*5™’¡ÉÌ¢Õ猆ŠÏK˜^cMïUñ`Ó1?VAħnI¥‘!©*E8-혨êjìeÊ•&E[>)}I¥&U'‹ãcê;Î[Ú«ÙêÊ‘ÆZ)|¤…¹Kx÷#žœ +ߟ¢Ë$Áˆ/{µ¥57¶›Í¯(-*ŸµÔÖV~VžWΚS’Å +ïlY+=ó©'=rÑðÝËwzáï5÷ ¼ÛðîI=áÙ–|GÅDÅkŽ‰w¸ Àš––ÂÒʪÒ\ZRüúþ®ßy G7ÄG4"º‚¨qÜ2}ƒAAMê®^´„F%è2Ya$w‡wÏ«ƒ×N§-Ÿ›Â›„2–—ÖèŒ$ZÚ+M=1 U™IóÙs“¸µ9-µ–ÍrõEŸWVT*Kô¥†b½Ö¨¶Ä›’Š#t1ÑǃÃ3CòÒÈ|uAÜúT‘˜Xªå‰n ¤:w#2­„{…®ì ·!|€týzï« Û]p!]¿¼mÊÿÇð«™‚»¢—ž¢ï=mlË(Ñ3Ϫòš}•NïÄíEäGè IN`RÆbÄ^«÷£E~½²‘tVôb0U}ø„BS¤->¥Ï<›Ò”ÒCŠ¾•$¤‡Æd"5Y¹'Utð 7a /ÿú—ŸW…1¢7ƒòÈ¢xq¸ºÊbj´ÔêÙ"“þt¹xæÅÀßš²[R­,× ­l¥¾èôÚ$¿1=Ù{±‡å*7½›§<¤½·[Î[-çÙs–F}‡øbkavÛ¬©QFÐáG?f„p€{á7@niOßMÃ!.¹¶ÍË(¹vwFX™FŒçŸñ§ßØók=;b­„ÿûì=QßÔiê)&'Âv°h×%u„Ù{I,12¼© . >®ˆ!…›O[çí­f§y³Ï(Îàc7$[ Ÿ÷5ç1"F»+#ô}g]qQ -9GÈ»‰Ï-ÀùÚ¤ÔµL®%ÕÄXnqQ2ì½í…â¬Dà\9ÑÐ|±¦[¬d…Í\òN½öš´ÿ¼ã¢Nð…!j ¡¡ºNl6æhªXÑxY¡ÐXFÖŒÖó´EÕ*ó‹Nf +ç¹ÁÂþw°Ývì“VÂã=¶Ð¼@84 +?üŠ×4].-?ÅdT_N½.~ø¤ïO÷C»·7³æÃzèÖšö¾®–dßf¦®¼ð¼ö¦ö_÷ý¢”wo“g4MPCIÂiÌnÂs¢nbZhrgP^ËÅ{o¿÷ø±èÙ÷?ø ÷—–Ž›ƒ–û÷~JIL[noÔû³;®bË’˜Ž•Ý´¡€xuƒypf™Ù÷_Ämv¨¢÷õ£wêÙ÷^ÙŽø ëhbe{h^`¡è÷­e…Bm‰–vª†¢ˆ”ƒfût'ÁfÒ¤¤’œ¨N¥š¦Ÿ¢D‘….©•ÔŸµŽ¡_vŒƒŽ³÷òe…B]‰–v»… ‰•ƒf÷ ™vø6¢Œ÷,÷^÷ ÷‹„À÷%½÷ +´å¤ÂŒÂ‘¢û>t´…˜‰mn7j1m:jÚhíkÞ€©‘’˜­¢û[tÄ„ˆ U÷!ûö÷é™vÿŸ€ÿ€t¢÷$øD÷¸÷t„µ÷´î°ì÷û˦·÷µ÷®ê¡Æ’’»“¢ûFtز†§‡„oyBj"sD‰û÷Îu^û +e#g/‰8÷Ž‚¥”Ÿ¸´’¢ûat¾„ŠV÷ ûù÷¬÷’¸½ø™øË÷’¸ü™^|šùšû{¡÷<Ï‹÷ƒ’ü|— Cyÿ ± +Ù øt÷å %ßú endstream endobj 272 0 obj <> endobj 389 0 obj <>stream +H‰|” PéÆ7À.«œ±²l›d5›{önüöÊõü¸*Xàð°((z +H€ð•˜`ùP HˆÄ@bðëDOh=õN¯rZì8:-Ò»+¶×{ã¬Óé½ö®ÓvvfwæÝwßù=ÏÿÙ‡…A ƒ¿'6&)aùö|q¾D¼2Z"ÊŽ—óEùY—oø †?"DóZµ“2-Q?Ÿ€—@P£qÈZô‹†/ÀÃ5[%…%ÒüÜ<9ïͬ·xkׯ_³"p_Ç‹Ê–d +xÉ%2¹à Œ/Î’H %R¾\½ŠÇ‹‰xI¯d¼$L UЫ/Axù2Ÿ'—ò³ùR!O’óÿN‚ }AK!h­„ ·!(šÅAÛ (†’ƒ¡‹Ö AÁñC´*èNpN7¤ +&` ²©Í ýÝÎÌÏ{:Ëüa’°Y&¼mÞ3 bXØîßH* °°é#?.ä³Çnõ~yã'6Ò òaæ´q´_¼¯ñ#ªÈÛØ· ¬Äéƒ+uQzå?„4œœ±Ê5³dûåB¹-’Ð¥ëªZïÛÉ`3|yTkؤ#/(€s‘(©ÁIlCî7×Ï'›ZUy¬Ìr¨f߀‰e¾l¾gêB_ìC°¯ÿ­ˆù;ãˆÿÓ>†Þß žsq½pRoþžØ*ÝF=[/„ý¢ïA¥É󋔨\z@—I¼SÙ~ÏNÞß:d5O6°ú`&ˆªr«ú” +pöðÎùŸØØ>¾¿ïHr‹Eb}q&ÚC[ƒ‰ðÐELœÉ~Ÿ¤ò( Þ‰x¬Z¡•Ä68v;v:ùží=… Dï©fav‹[iQÛJ;ØemÊAùe…OvKëBÿäúü“'ð +í¦ .eA°½ðîȉš“¼HCßæ½™¦f3ÇþŸ–+ÃûA8`ƒ0lÒ_`¼Xž«Ôº«³ŽÄFœvƒÐö¿êXØdéQe­¬­“ËLeDddzFùÁŽL +ZÍyïDvÿ‰ó]\OçÐh­ETïÀï•z*š‰ŽÇÞ±ë$ Và²,_&A3óŠÊ«ˆJ½Ã=dý¼sœìïtµÚP«­Õd#-‡u6òHt©¶eú4£`úžQ ²z†”á—@˜ +à“ »à_ëß‹c£©Q‚5ëÉjäxLgàHK¡ý©Tµ{CûzŽÄ.D¾x¿,ö¨Ü¬`ç6-ú˜8}Ã:ú)ùðê8 À<ÎÄÁþt.6•B±q +M¡°…\­Fe(% +d®/ldËßj½Ð3}£Âa-ÌÏhß"}G” '€t`àuÀT{è×/–å)t´Çþ]ÿ“PË`ì¡©²ÒXA$D¤ï%ã¼¾‚óî °÷b¿­™{þôàˆ{¶²x£vV¸ ÷cïÕk$õì4~Öv·ã +×uÅÕÓ~µØ&;ál7TÙI]š”‚JÄŠ‚bi‘ ågËÊ5D¹Öå!™Í=ðÔÇ Ár€ûž¶gOQ‘Rrél½Ñ\SOÎô‚Í7f8¾ÜS[·%Š„™Ü¨ü7Vq¨°Ûâ.>rüåK.Ý'—p«»JÄÏXÊ'›AèiŸ»mh7ʽ8êûªlr>mºßtû™•Õ1Sóé^ûûÝô(Üi'‰M7iÚj­¨µ±Õáæ´×ˆ;øDÜ6~:ŸLß/‹-ýšˆˆrM•0“ZGO-[ æNøO8%Ø46ûLƒw=ö^› ÕÝ°B’÷*ûõôÙ¿6ø’Í0E¤mMMJ$íØÙ>Øi!ê¹U$6›Déá¸R§ÂCÐň?OÀ÷fˆE§Fz{•ÝÙ$ÓÓ¨èRêk XM—±Ú/ü—•TV•Z³£‚Tw¨UCª!õ¶ÛÖÔlsZœ–>ÓÚZínã´I›EûRöìÜÉ•ÊIòÐj¤,éà '-‡[ÊíϤªwç¢UˆV6•šE¥eP©= mõó9ë¶e¨Áéñ ØyG‚;®9ÝÝÞSÔKôy?¸F2©„FÅs2Àè Ëè0ÏbÓŸc¸yõÍ.{a‡ãÊ[h±´]c×HuLG½˜¶Ë8WÓ€á¿øƒ¨3ÁW´éáSFZxº°àˆH‹0ØjÇÍc ÄÒb÷§Î?˜tŽÃ¢’ÃdµA“\ž¬ÙÅ‹ºÌc-ì©ÑßOº‰æ#Š,Úöó)”ŽS;½ÿaìãÀ॥' Gççûà?:³ìBU¤S‹I±úƒŒ›«kY¶«ðTk¦½„PÐë²P“–Mûy|¾~ÜПC¤ÇükЧ:‰zÐZ2—Z¯ÙU¾‹FbNÏ¥hNÎoAÄvð#Zv´¯A¾3åûÃd;Ñú’tvŽ´´õ•g/Ieˆ^Öëôw¤…D‰\§.ü!‘í0MÄþ_D&6³OsΞc E` X ’5øÕ›žÁ³äÍë§gqžìº±ŠŸZ&ËàÆfG¯¡Xœ-'Ö” Þãx-µ8™bü“ɲi« +ã¸&;¥ÛX5\+kÏr/úÁÅÄÄEq3ê‹Ñeh„Å" £¼–ÖR +¥”®¥½-/£PÚÞöö¶–RhyYÇpÃÁŒ“ Ñð%ƒ…è²ÌMLð‹§Ë]¢ga‰~8_ÏIžç÷ÿÿŽYØãpôX¡R=¿…Ž-oN(ãu2p2¦Ì£Dwxúúp±UŸ~i9K†J×ïr¥³Å.–íÁ©›º<ŠØæ%ÇùçÎéŒÆNî¤åb‹§ª½TÕØ$±V©- ¶:ƒÄ«Œú¢Þ¨[rô±›–[é³6‰*ÅYÈøÌ¥ê¿Ìzç%Ä\½ˆŸìa®‡ƒ[¡õ/nÞ®¬ß½#½_ök´bôè7Däüý„-"€j±ªÞÿß°¼O†¥²SJþŽbËS¢úSìFpMBĹÕá™H\âú|áºl~ŠøÖoóõú<>ã Ž2œ;j ‡,M¾¨’}”[Š53ø~êã˜VCQŽå;4‡ö®fÝýeë!qÝCo‹/Ìœ› #ãÒø(‹M4·†IbÓCº‡8!qó±áAi²""«)oWT’¥r{e½ôìrÓ5-¹Øà7襵ÆfMÍç³J²ƒ5» –v«QçÔ «ûÖ4Wá_»â´Æ’7äóYØÛ³(…²ÅÝý@«+«3CK7—ðP_£ÐîÄUÀï$БK ÖùƒïOƒOU^3Ø”ð.À?Ó©KÁ[»÷RØ¿ïÑý3zþ„o>Dì¤_NŸ;Š[_ïÔ sËO¼¦…çØ"ÕæRƒå@Û˜žÏû¯#è¹lÅ„;¼ ð™Ú9S ›ÉÃŨ·ñåíXgíùàc³¿nŽìÉ^(Oÿ?¢]`ˆ¦-¾ŠöÓ#„ž=ñ+^³3ÝE¼ò=Ú§®„½ d¼¶ê 5Ï@tžú´¢Üí¶^—ƒ"Î ÐöêuÍõŠ¨~r)±„mSS¹ hdX“„‰ÕäÖ +Õ +E³ù4™'“fJ†Ž€oægfÃÐïutâ +yƒf~'tÑêŠÅÑÊ°néÛg°¶è|Q %¢±ëiÍ*Lñ3xŸXOÇVk5'egLi­±F]BêämŠœê® »—„Û¦™zX™_(“SA˜œ +±Ðק«vSîš/ï.(>]q!çM¶å0:ÄÑ~ ÐI|Þ•$¸‰˜ôJóˆ–™‚È ß¢üðZ¯ÑžÇ&6ƒ.hËþ'sÿÒ$:èÌ¡ÆÒeâ!è%¬ endstream endobj 267 0 obj [268 0 R] endobj 388 0 obj <>stream +H‰\ÁjÃ0 †ï~ +ÛCqÚRv ÑnÃÖ±làØJfXd£8‡¼ý7´0 òÿâ·ô¹¾Ôäè¶Á'Ç8†‰-B‹½'µ?€ó6­]¾í`¢Ò7ó˜p¨© ª,AŠ8&žaóìB‹[¥¯ì=õ°ù>7[ÐÍã/H +¨*pØÉ 7ßÍ€ 3¶«è>Í;aŽ¯9"r¿¿…±ÁáE6Ô£* © +ÊW©J!¹úJµý1¼¸OGq¿OÇì^ßN¾÷Pvb–> endobj 269 0 obj <> endobj 270 0 obj <> endobj 387 0 obj <>stream +H‰bd`ab`dd”ò ws òÑöM,ÉHÍM,ÉLNÌ ÈÔõÏKÉêÿþ!ÓÍ#÷C–ñ‡8Ë9ÑÜßi¿j~Îg•©]Æ{ŸGé{>ÿ÷RÁïE<ªßOò¨0°22²ñeÕ8¦ä'¥z¦¤æ•d–T:çTe¦g”(h$k*ZZ(€å‚+‹KRs‹<ó’ó‹ +ò‹KRSôsr‚@ê‹‚R‹S‹Ê€¢úþ@ÜòóJB* RôA¤¡BJjgA0ˆ`bddñÿÞÇ÷ã{ã’òK—¿ÿ^óžùÇíŸ³ýæÕ±ü­ð[ñ•åwÞOî~W<^¹'wƒüw{¶ßÏ÷‰Þ[cò›é7s–‰…EÖ£ïÌß™Ö<º'Ï +Îò>stream +H‰\ÁjÃ0 †ï~ +ÛCqêÊ FÇ ‡m¥ÙÀ±•Ì°ØFqyû*nÉ` ~~}â·ä¹ym‚Ï /m‹zág²>ˆ£çm~¨Òíh’ ·Ë”qlBE]ƒ¼²9eZ`÷âb‡{!?É!ù0ÀîûÜîA¶sJ¿8bÈPÖà°çEï&}˜AìÐ8ö}^ÌüM|- A}¼‡±ÑᔌE2a@QW\ê7.-0¸¾ºS]o mÓÜŸõªNO¬T¥TaSëþ,líLÄéÊEJ¬5¸-ÅL­OÜ%%rD endstream endobj 62 0 obj <> endobj 63 0 obj <> endobj 64 0 obj <> endobj 356 0 obj <>stream +H‰bd`ab`ddóuqsÑöÍÌËÌÏÓ JM/ÍI,Éÿþ!ÓÍ#÷C–ñ‡Ë9Ñߊ¿û~=ùy€U–aÊ.Þï>stream +H‰ÔW[oÇ~'Ðÿ0~ –…9žû¥©b9 KA,³ÈCŠ´²˜P¢BÑj‚ ÿ½ß™]R;Ë%¹l‹‚¤ qg8çþÍùÎ +&è—ì—Á«¯?öñq5Ããs&pÍæåàfðë@I†ÿN*棢ÍïÙýàÍx jžTŒå?“l|3ˆi;2)=óJsoÙønP06ÿ\ËÔF%-ØÃ|òt¹(Ù·³ë’ÝÍžÊóòú´¼Y\içöbXIŽ$Wlü–T±?X燎ÿšNàs5›Îæ_M'”|žÿ8¹aÅä¶ð+ŸO>Þ.ø”¬+{Ï'ÿÈ—øÔçÙk6Ÿ-àú9­VjÖL‘ÄêlÙº?»üý3_ÎËŧù=»mžú³Î“âf™§®ÜÖÞî›Ü–»[me—òº!¹Ùm$k™Ø®líð •¯Þ ûôÓtrÅžf“kv]NËEyQ¼+g¿”¿w¦ªU•ÙŒP±¤åËJôóõƒ<€ãoN¿8y·O!—ú«¾dý¬ +ƒ³0~÷p9/Ç3*Pfgb­<Jô¬ëEVehùì3ö¢Wå›*yvõ»K^M +!°ÊCµÓéN0”ÓÇrß@[qî §‚wVäõktK$tÕ[hçþÓtJö/þ²Åƒîtv«áy l×o[_ÜTÀÿ>ä­–6iå ºœÂ›åsK~Éî&÷ ùF¤äšpŒâZ“Ý-¹$ˆ +¢g™†mÒm¤.?„Ø5µø¶C?ï%ô©ñq3ùíþ™÷Ž$JÌ.+fÇØ[1e5·VF¾‰ß(ÞG®(‡#SLñ7‹¡.Jv5”Ål8Ò:ÕÍPhx§§ço˜i¶Ž¤*æC)‹²|þ8þfðåxðê»éåUyýÝۯث³ÁÞ¼=aƒ÷Ëi“ƒ¶‘+ËŒO_2’;’Ç—K×ÕàòêÃÎÉDÄ>œ|;Ðì_Ì°36ø;Õlb…‡œd^j%»ºKÖé¯T\kͦƒ+—${7ÐÒÔ`·Á0/$¾õ³) nØȧ¯JËû>.é¸R¨L|V8’±Ò_û8†Ðt4±IŽÄ˜¦& ƒøey4KEÍ `HR(îDlJjÍ•v,ráãRp{z‘QëjŒ¾™m€6Jú«­g#Ë•s­¯«Á(péÍjQX-—’õJйú?¯¤2]+•½j)j‘”ÜPr¹m%õ¨B¸MõYï²ÞUuÅCÚ ŠáÞiŒü"ðȤþ’®hU +°6°ç^Œ lnTLQÖQ¥*\;ïñ­29O°ÜmÈPM ©Àr+­K¦3 ˜únôS=Á#=÷Òj„dÑ—q!`;Wq€ÉßÀ€ÇB_ +t5jŒËwb7êŠGRWé›…CáÀcò½/ ºš t ÛIÐr%cÁû>4ˆ©Ùƒ ™hÂæ]#hOüTOT²r€”)%HWó l°jîzÐä9XÍÙ6 š,¨–Œš:1äahH:ŽlS­‚ÛÁ‚B dÛ­ÿïß6/¾Íac÷gÁã ¦? *[6bF’ÒneAŒbQØó CiÍsv‘`¬±ëÀ†Öø¦ ÇH$è· MÖÛ’i‹ñu=÷Yê[™ÏŸå½‘ö,ëMêÈ™c_î;Ïû6L˽ÑTÇ£S1k˜Ý÷ßol”}ƒ7yðªüŠ2Œ‘F“/rºèÍtÇàrß%½¥@mã»ÍF”µ×s'᧵‚ çM¯÷<Œ>Aºô>i[ÃmÀ[RÆoM9z‰Bÿ 9çElöƒSÏ Æ÷ãEømˆœÐVð`2–ÂÕQŽ¨ét8‘&òänLh³[U±`·Žæ(Š¦ø ÅدE»Øí˜bé‹Ë¥–`Œ¬„ߊa¸&‘œUºÅm¡ÅmÛ1 "l¸®|Å{+]4TvóIŃôväãæ½gì¯ÍÉ5-šH÷ß·ßûvó" ú ÕV^ìâ@ƒÂ™}9ìa°_{ÃÛ‹É6½G2qtèG¾Ü'ð t꣎íÈìÿ€úLÀû¤hNÏûR=ߧ ,óp{Ÿ‰ BùþÄ—b7ö _Ÿ6ß!»¼'ñ ÐÒ:xïê‘.îãÕ}†Wr×1>˜Mþ@¥© /OYêDæ%Z„qÍŽÉ%"ç:MaacZ…HNÍ À›´"˜ à "’áðè5MO‰GT‘ôáA9KR6¸zZZß&?[j¿@?¬ê}Ô)Pm|\XT „¡S¤"¤…J ‡Û¯d¢V,±H†ŠM™Ñi4PÂ…¬r‚နyZ¸@f´Uœ‘軕 JÖi Ú¢µ×«<- ŒøRÕ™U¤.·¨ïô-dä¹T©Ýcbãk`g6Ío¦“‡‹âöbHgžñ—Ø ½œŽ;ŸŽßÍžÊóòú´¼Y$FäƒÎqj”ãH¦L•„yøðCQGºøm8’²¸¼{ŽT1-ÿ6üqüM»]ai™"‘8ò'd¨°¿æ?yí¡Q.Z¼¾åóÉÇÛ{Íæ³Åå¢<§ÕÅr»Žt†:náuZÏ£ÅEûòì„ŠR®ƹ€az^¾g÷ˆ$lŠ +›À/‘‡ì¬É Ò² ›c#6êê„WÓýÉqÕôX©wéØr—¹„s%Ó»¡Â=ÙÁò•à»:‚‡å!z¬ŽÑå¨o•¨>stream + + + + + application/pdf + + + BSTsearchHit + + + + + Adobe Illustrator CS3 + 2008-07-01T16:47:31-04:00 + 2008-09-14T13:33:33-04:00 + 2008-09-14T13:33:33-04:00 + + + + 196 + 256 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAADEAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9FeevOml+TPLN15i1SKe aytDGskdsqNKTLIsa8RI8a9W/mxVilp+fPle4tpLv9F6pDaQXE1ncXEkVtSK4tVWS6jdVuGkHoQt 6rtx48QaEt8OKqPmj89dBsNNnGlxvJqsunXeoaX9YWP0ZFgW6aGR0WZZ2imWxd1ZF2UpzKM6gqrL H899AstN09vMUga7vfrcguLSIQRm2gu57aGY2txMbpTKLepjUSMn7fEYqj/KP5l6tr3m5tKl08WF kXvwkUwU3SraW+mTR8zDNPDVjqUleJ6BehDYql15+dn6YjtrbyTZSXl9cailgZpVtZ41V4J51cRr fW3xOlq9EkkjZaHkASgdVPV/MS/uvLt9qFvo8tjcw6quiWZvXikhe4k1EaaJD9Xkd+MUh5SKeNei s32sVSSP82dZGna2s9iqanoB1e7aZoeFnfWOiXZguFtitxJLFNxKbyKV5HYMOirP/MXmLT9A0aTV b0SvAjRRpDCheaSW4kWGKNI9iWeSRVFfppirDL789PLNhDdve6bqVu9lFHLPA62gkBltPrqR8frH 2zAsh8KoRWrR81VDU/z+8s6esjT6Pq1IhOWb0rZVpbXD20h5NcKKc4mIPcA03VgFVP8A5XfEmrvb 3GkXkSwQrFcaUsKS3/6Qk9SRY43SYwGP0bacsW40KbkH4cKvS7C7N5Y292YXtzcRpKbeXgZI+ahu D+m0ichWh4sR4HAqvirsVdiqS6r5pstL1ux027Rljvo3ZLpVd1WQTQwojhEbirtcD42IUHbvkDOj TkY9MZwMh06fAn9HJOsm46W+ZNfs/L+iXWsXiSSW1oFaRIQrSEM4QcQzIOreORlLhFt2DCcsxAcy q6Jq9trGkWmqWyulveRLNEsoAcKwqOQUsK/ThjKxbHNiOOZieYRuFrdirsVdirsVQ2paXpmqWb2W p2kN9ZyEGS2uY0miYqQy1RwymhFRtiqBi8n+UYrqa7i0TT47q5jkhuLhbWESSRzEtKjuFqyyFiWB 698VbufKPlS6aB7rRbCdrWA2ls0ttC5jt2UoYULKeMZVivAbU2xVq48n+Uri5S6uNEsJrqOR5knk tYWkWSU1kcMVJDOftHqcVUE/L/yGkMEKeW9LWG2lae2jFlbhY5nChpEXhRXb00qw3+EeAxVFWXlX yxYzNNZaRZWszz/Wnlhtoo2NxxdPWLKoPqcZXHLrRj4nFXTeVfLUseoxtpdqBq9DqjJCiPcMteLS uoDOy1qrE1B6YqpT+TfK88EME2nRPHAzOtQeTl5BNJ6rV5SiSVFkkEhYO4DNVhXFUw1HTNO1Ozks tStYb2yl4mW2uY1liYowdeSOGU8WUEbdRiqWSeRPI8n955d0x9mX4rO3Ozly43T9ozSV8eTeJxVC +Zvy68qeYNGn0ueyhtUnWOP6zbQW4mRI5GkCo0kUqgEyyD7P7b0oWriqNbyX5PdIVk0PT5Pq4T0S 9pAeHpF2Tj8FF4tNIRToWanU4qmtra21pbQ2trClva26LFBBEoSOONBxVEVaBVUCgAxVUxV2KuxV AajoOk6jcRXF5B6s0KhY25OtAJorgbKQP723jb6PCuRMQW3HmnAUD+KI+4lLNXg13SEnv9AhbUvU ZpJtHlkCgu5JMkEsh/d/Easm6n9kKesZAjcN2KUMlRyen+l+sfpSj8zL1NR/Lu6t4Y5E1DU44xZ6 bIhW6d1mjZ0WH7bMnfiD49MGS5Q2Z6OUcWoBkRQ6/BMvy1miPkvSrUOPrNnbxw3cFaSRSqu6SJ9p G9jksYqIatZMSyykORLJ8m4zsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV dirBfM95fWSeZLvTobmbX0eyhtDaIslzHYy+kOcatDd/uhL65YrBIag/C1AMKoHR/MOuJZeW9Xv9 IurvzNPprL5isbWKOC5CIyr6kkM7wA8Z+XAA9C5QEVxVkNt+ZXk951tr28bR7xjRbXVopNPkLeCf WVjWT/YM2BWTI6OiujBkYAqwNQQdwQRirU00UMTSzOscSCryOQqgeJJ2GKrLW8tLuET2k8dxA1Qs sTK6GnWjKSMVVcVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdiqWeYtT1DTtNMunafJqd /I6w2tqh4r6j7BppDtHEvV27DoCaDFUo0byHaRF9R1qVtQ8yXRD3eqxtJbulAaQWzRsrxW6AkBA2 /VqsScVT/TtI0/ThJ9Ui4POQ08zs0ksjAUBklkLO9BsORxVXubW2uoHt7mJJ4JBSSKRQ6MPAq1Qc VYy/5aeVo3aXSEuNAnYkl9Inks0qTUkwIfq7b7/FGcVSXVYtT0dNcutSupvNc2g6aNR0iyuIYUcy OZgeaW6RxyuPq68X9MFaniN9yqL0G+hupdK1i21PTdUvNQvJLS+utGT0YJYxbSS+nKpmuS0kDRhu TMGAqKLyIIVnOKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KpEPOuhPeXNpb NNdyWXE3htYJZxGHZlUn01ZmBaNhVARVT4HFWKebvzisbaVNJ8pxjXNbuaCEwfvIFLCo3T+8NOym nie2UZM1bDm7XR9mmcfEyHhxqfk78t/Mp1J/M/mfWrlNfnQqkdq6UhRiDwaqvGw2/uwvAe/Y4oSB sljrtVilEY8cfTHr1/HvZPqfkSw1ICa7v759ThPKx1VZhFPbN0rAsSpCvIbODGQ42fkMudYl3qfm vT9C+lY+pWn+Laj0/R/m/R9eX1n/ACeXpftcv2MVZtirsVdirsVdirsVdirsVdirsVdirsVdirsV dirsVdirsVdiqD1qG8n0a/hsWKXstvKlqwPEiVkIQhj0+Km+KvLxo2r3PnSLzB5cWW00Jo9Hia4j uY4Le3t9OknN9a3lr6quXEUgjVTGeDV+zTCrMvJGm6A8uqeYdLt4eOq3kzw3aAFnjQiNyG/leeN3 AHiMjwi76thzTMREn0joyrC1uxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux Vj/m/wDxFcw22kaHztpdRZku9YFKWdugHqOgJ3mflxi2oD8R2XdVUsfI3lCytLe1h0e0ZLZFSN5Y Y5JPh/aaRwWZidyxNSd8VS1NM1Dy55qNxplu9z5f1+auo2kQr9TvmH+9aL/vqelJh2ej93xVl2Ku xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KpP5t1q40bRH1C3RJJVntYQkleNL i6jgY7EGoWQke+KpxirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV Yn5xa61yxudE0m2e5uILi0kubgskcEbQTxXJiLseTOUToqmlRUjCqfaZq0V+ZozDJa3lsQLmznCi ROVSjVRnRlah4srEdR1BACo7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqh4NS064up7S3u oZrq1oLm3jkVpIuW6+ogPJa9q4AQzljkACQaKIwsEusPMnl7Ubg22n6paXlyoLNDbzxSuFBAJKox NATkRIHkW2eDJAXKJA8wjYLi3uI/Ut5Umj5MnONgy8o2KOtRXdWUqfA5IFrlEjYqUGp6bPcvawXc MtzEXWSBJEZ1MfHmGUGo4+ovLw5DxwAhkccgLINKlrd2l3AJ7SaO4gYkLLEwdCVNDRlJGxFMQbRK JiaIoqjukaM7sERAWZmNAANySThQBbxHzPqGledvK2oeXNI1bTbOWDU7yaS41LjFG8dybhop7aSS OZeaPMNwvP4TxZCVfIxmJcm7Ppp4iBMVbIdVk/MW9mtdU8ofV3+q2sVpfTSsGS8lSrN6DzInqRIz HjLVeRJp3yOTi/hbtF4Fnxb8kL/yt7zfonw+bvKs0EYNGvLXkI/o580b/kblXjSHMOf/ACXiyf3W QHyP4/QyPRfzi8garxUaiLKZv91XqmGnzc1i/wCHywZolxMvZWeHS/dv+1kM3mXSUMaW8hvpZU9S OKyU3BKVpzJjqqLWtCxANNt8tBt18omJoiiiNO1ey1D1VgLpPAVFxbzI8UsZYVXkjhTQ0NGHwmho TTFCMxV2KuxV2KuxV2KuxV2KuxV2KuxVhN95Y82y3V3JHc+okt366N+k7629S2JqLb04kZLfht+8 iqzcaH7Rykwl+C7GGoxADbp/Mid+/fn7ivk8qeZfRMgvkkvm07TLOeYTTQPNJZ3EktzWaNTJGJkk 4h1+IVO2HgP3IGpx3y24pHkDViht1ruX6T5P1qrNrOp3E/G0WCCOC9uwodjcCT1KGP1KJLEFkYcy UrtgjjPUrl1UP4Igb/zY+X6jty3VNC8m3GnL5fR5uaaZps9len153YzTrbAmBn+JUH1dqAFeO3ED tIQqmObVifHt9UgRsOnFz+fmk9r5a85ReYYLZbydrO0SKb6097eenxbU7iZk4kMtzIbXhE4lb4ag 1O2QEZX+O9yJajCcZNCze3DH+YB/mji32VLXyX5hA0kpItpcaKHg+sLPIn1kPe21w8xEX2lmhjlD pJ/uw9KUbGOM/JjLV4/V1E9+XL0yFb9xrcdGUeXbG8gk1W7uYfqv6RvDcxWnJWMaCGKH4ylV5SGE uaEj4uta5ZAc3DzzB4QDfDGr+JP2XSR/mV5a81+Y4LLStKvI7TSbiQrq7Gol9Mbgjf4l2pw2qaV2 rSGWMpbDk5Og1GLETKQuQ+lkHlvy3pPlzSYtM0yL04I92Y7vI5+1JI3dj/YNssjERFBxNRqJZZcU uaaZJpcQCKHpirG9Z/LjyRrHI3ukQeq1azQr6ElT3LRcCT865WcUT0czFr82PlI/f97CNPsLCz0j zB5Y8j3nrX8Oo207xRXKR3c1j/o5uo4LisYV6CWNTX4D1IJrhx0BQY6uWSU+PIKMgyTStX0SHzRo ul85bDUVsLtJLHUbkXN58csLpDJOZrkSyUVpABM7KvgDk3FZvirsVdirsVdirsVdirsVdirsVdir sVdirsVdirsVdirsVdirsVUL++t7CymvLlisMCl3oKsadFUDdmY7KB1O2KsP0v8AMe41G/1Kwi06 BNQ0u4MM+ktfR/pF0WKKdnit+HB6JOB/e8eQI5U3KrErrXfPX5l3MlhoMUmieV1Yx3OoSgrJIBsy kjqaf7rQ/wCs2Y0jKZobB32KGn00ROR45kWB+PvLOPLf5X+TtD05bRdPhvpTQz3V3Gkzu4HX4wQo 32C5dDGIus1etnnNy5dAm9/5U8t32kNo9xp0H6NLc1t40ESpJWokj9PiY3BNQ60IPfJuIlP+FfNP 6L/RH+J5/qnr/wC93or+kfqXCnofWa8fU5/7u9Plx/y/ixVleKuxV2KuxV2KuxV2KuxV2KuxV2Ku xV2KuxV2KuxV2KuxV2KpN5xmht/Ld5ezTxW6WAjvvVnPGLlaSLcKrkVIDNGFqATvsCcVYHpulWqe Yj5tRdSmE13Lq9top0m5huRdXNglkYpLpj6JRY16GihjXlhVm3kK9tb7ypY3lvKsn1kSTXAQFRHc SytJPFxNCpjlZk4ncU3wKn+KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux Vj+teWrjWtcsJL6ZG0DTwLldNANZ75WrG85OxjhADInd9z9lcVZBirHrby5eab5rm1PS5I49J1VW fWdPcsB9bVQI7qAAFQ8ijhMNg1A32geSrIcVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV dirsVdirsVQeo6tZad9V+tOU+uXEdpBQFqyy14g06dOuKozFXYq7FXYq7FXYq7FXYq7FXYq7FXYq 7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqw/8xb6ytv8O/WbiOD/AHM2kn7x1T4E5cm+IjZaipwhWXqy uoZSGVhVWG4IPcYFbxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV49 5y/MGfyho0GrWUdvca7qYvJ7+G5i5vK1pKEa0SZri1C+hyaNVQSvReQjPxHCrOND1TQLPzJeaDY3 kCwywQXtnYo68Vab1DKIANuBREk4r/MW/ayJkLrqzGKRiZAekdWU4WDsVdirsVdirHvOOkatqQ0g aZM9tNa3/wBYluY/SLRxi1njqFmDI1WkVfsnrXK8gJqnL0mWEOLi3uNde8dylcSec5/LkFtHE1rr Zg083F8ptmUSvKgvgiOXSscYY7rQ1+GuJ4q80xGEZCTvC5bb/wCb80BrEHmXSBq+oJeiUDT7GOLU rgWMLCSOaQXADMsSD4G5oJfgDt4bZGXELLbiljnwxr+KWw4j0Fd/u23oJN5Vi876pPDrqXM0cGox i2nnP1KrQRvqAilIVGHOLnblTGOLcqkMOkYcR3/HVyNScMBwULjv/Fz9G3x9XP7GXeWYvMcXlKGK +Mp12ODgTqDQuDOsYAJa1J5Rc+5POnXfLY3w+bgag4zluP0X/DfL49fsRfl3/FP1OT/En1H676h9 L9Het6XpcRTl63xcuVfalMMb6sM/hX+74q/pV+hirWn5owWGnSLfT3V9Nb8r2Hhpyxw3fKPirngh NvwMgf0yz1A4nKqnX9jmiWmMpbARvb6txv8Aby57LL+2/Mu20i/g02W9m1L6/M1rcyNprp9WYzvF 6YkCnj/dLIHoV/3WCo4lInW36EwlpjMGXDw8Iv6+e1/prv697tQT8zYU1WTTUvJ57i6imtYpJdOW OO2eFOccLOJOMkctVIdShUVBLHkU8fT9CwOmPDxVQG/1c76+RHxvy2S+Lyl5ze88x389ssV7qunM kMkRtWD3P1a3DQzJL6qNHJJGyLUfCOe45KciISsk9zadVhqEQdoy8+Vy3FdQN/l3LPOt15vv/M1r 5asLrik09nKYIGsW9KC3CTySyI9Z1dZU5LWiEAAVJxmZE0nSRxRxnJIdJfzuZ2ru5fFkegWfniHX ll1e5up7R4XiqDZegHinuBG80ahJAXgMLfuv2qhqAACyIle7iZ5YTCoAA3/SvkOXxvn8Em0HQPNV rf2l9Yxy2ckdvp1rrcciQ/6XcJdSG/lZ5Ku/7uT1FkRviqB1HEQjE3t8XIzZ8UomMt95GPPYUOEf oo/tZVqMXmnUL+yW0mm0ayVbwXjoLSZ2dHjW0P7wTfC683ou/Y0OWHiPk4UDijE2BM+mvqH9buYh 5uv/ADd5btr6S3u+DXd7O9nKP0clzcE21ulvVHRRIolDqwVPVoF7b5VMyj+A5+lhizEWOURf1UN5 X7tq61zRSaH5+tbG7gtprqKAXqXkENu9kJeL6ncPcRRNItKNbNHLSVqcvhrTkmSEZAfjvazmwSkC QL4a34v5gon42Nvf5sl8v2sya5qtxHby2tjNHbKyzIIzLeoZTczBV+H4laNWdRRiu1QKmcBuXEzy HBEWCd/hHah9+3RIvzN8467p8lp5c8uWksuu6upEFwFPCNK0Yqx+EuOp7KNzkcsyNhzcns/SwkDk yH0R/H471fyT+XV15f0f0JdZvPr9y7S3zwSKYi70qFSZJADt/eABz40oBLHExFFxtbqI5cnFEcIQ /mz8ndA1eFZ9OeTTtahq8WoB5JHkevIGdnYu5r+3y5D3ApgyYuLfq26LtCWH0kXA9GGaprGsaFHo F7ryReZGGna1cava3roEVdLkt0UQ+pE/75FZxTiGkdqM1AKWRBAouHmlGUyYio3s9V0CttqF3psT yNYR29rd2ccxZpIhcGZWi5OS3EehVQxqtSPsgAFrT3FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq 7FXYq7FXYq7FXYq0VUkMQKjoe4rireKpV5m8yWPl/TDe3KvNI7rBZ2UI5T3NxIaRwwptydj9AFSa AE4qxnTfIep3NuL/AF17GfVLieS7axuLOK8tLJ5ipKWZb05Vasas786O9W41OKpD5j038yPKGuXP mfSrt/MGm3IU6lZyqOapGKCiRgABRUhowKd1pWtGTjBscnb6MabLDw5Dhn/O7/x3fpZX5Z8/nzTp 8d1oemSSblLp7lxBBDIBUx+oBIzsQQRwjIp9rjlsJcQt1+q05wzMCbpPdL1lL2We1lgks9QtQhuL SXiSFkB4SI6lleNirAMD1BBAIIyTQmOKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2 KuxVDTabYT31tfzW6SXlmJFtJ2ALxiYAScD25BQDiqJxV2KvLfM0enzpP5aefT1fStVGqXFjqL+j YXttd+tMttcShJljbnNUIyEn01biVOKk2yDy1rGnX3mWOxtoIbE6XpSJDbwBlhlimkVa2jNHB6lv b/Vwiuq0+LoBSqrMsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdiqB12TW I9JuTosMU2qleNok7FIg7kLzkIBPGOvMgbmlBucVQ3lfy5b6BpYtEle6upna41C/lp6tzcybyTPT Ycj0UbKtFGwxVD+bvLMurwW93p0wsvMGmOZ9IvyCVVyKNFMBu0Ey/DIvhuPiAOKpt6mofo31PQj/ AEj6PL6t6h9L1uNeHq8a8eW3Lh03p2xVE4q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7 FXYq7FUo0DWpdTuNZikjWMaZftZRlSTyVYIpeTV71mIxVN8VdirsVdirsVdirsVdirsVdirsVU5L i3ikijklRJJ2KQozAM7BS5VQftEKpO3YY2kRJ37lTFDsVdirsVcSACSaAbknFVkE8M8Mc8EiywSq HilQhkZGFVZWGxBHQ4pIINHmpW+padc3FxbW11DPcWhC3UMciu8RavESKpJWtDSuAEFlLHIAEggH k1+k9N+uGx+tw/XQVBtfUT1asrOo4V5bpGzDboCe2Njkvhyrio13qlvd2lyJDbTRziKRoZTGwfjI ho6NxJoynqO2IKJRI5ilXCxdiqE1PVLTTbX6xcliCwjiijUvJJI2ypGi7sx/tOwOKsO8ia/C0N5q 8lrPBpHmW/F9pd+/pGIpcQQwxJLwd3jd3joOS03AryNMKs8wK7FXYq7FXYq7FXYq7FXYq7FXYqxv zt5b1HXLa0XT7gWtxaPcSxzCWWB1ke0mhhZXh+PaWVS2+6169DXOJPJy9JqI4yeIWDXQH+IE8/JG 6/pvmC+0+GHSdY/Q94jq010LeO65qFIKcJCoFWINfbJEEjYteHJjjImUeId101rOk6te+Xk06K/Z L8m1E9/GzWzusc0bXDKYqlDJGrgAeNOmCUSRScWWEcnER6d9ufQ1z7mNaj5E8w3E2o2sGqTDS7qG 4jgaa+vJZAs1sI44Xiaq8Y56yepzLFfgIplZxnv2cvHrMYAJiOIEfwx6Hnfu2qq6qw8rebH1XTJD dfV9LhtXtr+0TUr2Zm9QTqzBpEVpGHqRuj1RloV3HEg8Er/ax/M4uGW1yuweGPl8utjf70DZ+TPP lt+goIb+CGy0+KOHUIfrl7N6hQ0kdOSqhEqbem68Y/2PHI+HLbdtlq8B4yQSZHb0xH4rv69UVF5a 8+JZeWLSK5tLOLRRDBfJDc3JE8MPoD1BxihBZlikT05FZaN1rQrLhlt5MDqMF5CQTx2RsNrvzPeN xvs035e3sFtE1rM8l1Fq1xftG+o30KPBKZwi+opkKSBZl5ME+KhBJqTj4X396/ngTuNuAD6Ynfb7 NluqeS9evFureCQW0sd/eajaaks8kLO13azxwjlCfVVoJHRW7GMftbrg8Mpx6uEaJ39MYkVfIi+e 2+/xZHoenahHrGr6jdRiBLwwRRRBgxf6srI1w3GoBl5AAdeKrWh2ycAbJLiZskTCMRvV/b0+Cd5Y 4yT/AOLtCId0lmlgjJV7qK2uZbccdmPrpG0VFoeR5UHfFWI6n+aXlabzlpNhaSvew2rzvd3cCtLB ETCyBwU5cggJ5OBxVSTXrlYygypzZaDJHF4p5fr6sT8saFH5Q8oarb/WbLULq80aCwtdO0ORrs3E sCzc7+VeCkH96AzUICoBUniMsJoW4mOHFIR73oHlT81vKev2Dzm5XT7qBed1Z3LBWUDqUOwkX5b+ wyvHlEve5mr0GTAd9496fQ+ZdJluIoCZ7eSY8ITdWtzbI7noivPHGhc02WtTljgppirsVdirsVdi rsVdirsVdirsVdirsVdirsVdirsVdirsVdiqW+ZhO3lvVhbkic2dwISrcDz9JuNG7b98VAtg+pHz Nceb/Ler+Wlp5ItYovrVxb3QjtzbFJ0lV7aSeKJRDWJv7hn+E0ZCvB1WR+RdF0a0s7rUtPs47cap dXFxHMqUd4HlYwmpFRGy0ZFGwUjbBwgG2yWWUoiJOw5MkjhhjLmNFQyHk5UAcmPc06nC1sM8w+U/ Ken+ZtJ81yWsdtKl36d7cbLDWaKRIpZV+zy+sGMB/wCY1PiIiAu3Ilqshx+GT6Ur07VtVuvJOq/4 kmvjr1zEIf0XdWYt4IL5+awQ6fKLeH16yceL+rJSgaq75Nx3pWBXYq7FXYq7FXYq7FXYq7FXYq7F XYq7FXYq7FXYq7FXYq7FXl/5mT+bPMOuweR9Ht5LWyuEE2o6k4/dvDUVAYfsKdiOrNt064+UmR4Q 7ns+OLFA5pmyOQ82WaP+XflDTNMt7BdNt7lYFo0txEkjyP15yVFGavSv2e1MuhHhFOrz5jlmZnmU P5Y0/VvLmqv5dEUlz5ZaNp9Eu68jZqpAewlJNeC8qwN/LVD9kVk1MsxVhdnpV75s1ddX161e30LT 5D+hNFuU4tLKtUN7dxMOvX0I2+yPiI5EcVUy1L8vfJ9/Zm3bTYrZloba6tVEE9s6EMj28iAGIqw5 DjtXqDviqJ8snzLHbTWWvqk1xaOI4NUiKql5FSqytEDWKQdJFpxruuxoFU5xV2KuxV2KuxV2KuxV 2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxVivknz1/ie91q2+o/VP0PcC35+r6vq1Z15U4Jx/u+m +V48nFbm6vR+CIm74hbKsscJ2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K uxVDajqNlp1q11eSelCpVa0LMzOwVEVVBZmZiAqqCSemKvNPynSXS7/V72/QxWPmS5S50a8BWSCZ HeQpWWMuiM/qLxVyC3Qb5TixmN27LX6uGWMBH+EV9z1TLnWuxV2KuxV2KuxV2KuxV2KuxV2KuxV2 KuxVKLzzZodncXEE0k3O1ZI5zHbXMqCSXh6cQkjjZDI3qpRAeW42yJmA3w005AEVv5j58+W3NAHz 1YLeoZAg0aazlvINQVpTKTDNFA8T2xiV1f1J+IAJaopSuR8QfBt/Jyr+nxVW3UE3d9wVx568tNKs Ec08tw0Uk4gjtLpnCxNIjh1EVUcNbyLwajVFKYfEDH8nkq6Fe8eXn5hL9H88399Fot1PpawWWstI sbLLcNMnC2e6U+i9rD6gZY6VRiK/ZLDIjITWzbl0cYmQErMPdXOufEa+PxpGRefdAWygubuVoRcG 5KBIbqQLHaz+g7y1hRouLFefqKoUmlT1w+IK3azop2QN6rqOovbff4IO4/Maws9QjW/gNvpU7XyQ agpkmYnTpUhmZ4oo34JzZqOWpRamlcBy0d+TZHQSlH0m5Dh25fVuNyU+0bVpL83sM8At7zT7g21z Er+qtTGkyMj8UJVo5VO6jeo7ZOMrcbLi4aINiQv9H3hMck0pVL5q8vxSSI94vGFjHcXCq7QRODQr LOoMUbA9QzDFUn8zeZvL9p5m0S0urpGmgkkuJ4kq/wBWR4HijurjiCIo+T+mHeg+LwBIVYB5S0fz L5Z8j3mmazFcIJdHtrPStJe4W/mm1OJZTJNZRxSTFI1DQ/ClKcC9B1JV6xpPmfQNW0p9Vsb6KSxi 5fWJWPp+i0e7rOsnFomT9pXAI74Fbs/MuiXc8UENyBLOCbZZFeL1gASTCZFUSgAVqlcVTPFXYq7F XYq7FXYq7FXYq7FXYq7FXYqlF55T0O7uLieaObndskk4jubiJDJFw9OURxyKiyL6KUkA5bDfImAL fHUziABW3kPly5b8uS1vJ3lxrWO1a0rDFC9tH+8l5COWVJn+Pny5mWJX515VFa4PDin83ku76307 q+7pyV9O8uaNpzSPaQFHlj9GWRpJJHdPUkmPJpGYsxkndix+I13OEQAYz1E58z+Nh+gKkWh6XDFp sUcHGPSABpy8nPpAQtAOp+L905X4q/fh4Rt5IOaRMjf1c/nf3pVd+RNFur62kcOLG3julaxWSZVk ku7hLl2kZZF5rzRqxsCpr7DIHGC3R1sxE/zjW+3QV3fbzV5PJmhSyXRnjkmhuluENu0jCNFvSrXQ j4lWHrOgZt9j9mlTU+GGI1cxVbVX+x5fJMNL0qDTo5hG8k01zK1xc3EzBpJJGAWpoFUURFUBQAAB hjGmrJkM68hQU/MZul8vao1oXF0LSc25ir6gk9JuHCn7XLpkmtg+oa3r1n5z8sad5as7hvJ0kUCX LwW4lsDbzJOFZXjgd1KMsNWM6AA/YcFmRVkfkPSdIsdIuX0y0gt7W8vLqaN4UVfWiM7iN2IHxLw2 jPT0+NMVTmx0bR7CR5LGxt7SSQUkeCJIywrWhKgV3xVj/mLy75eTzDpOuS2yw3E12lvf3AJjjmX0 pDbC5UEJIVuViERcEhqBeuKpDp+o6pe+SNWm8yzX/wCnPSBNhdWf1aC1vwzC3j0+ZbeH1yZuHBhL KeXGhFaYVelYFdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVeX/mdrnmTVtZh8heXo JIp72MSahfOCifV26hX/AJP52HX7I3qMx8siTwh3PZ+HHCHj5Dy5Dz/HL5sn0L8uPLulaLDpRE11 Ao/0lJZ5hDO7bu0luH9Fgx/ZKnbrXLoRoU6zUZvEmZVVqflWLVPL+ot5VukmutJSNpvL+p0aThbo QrWVy+/F4OQETt9tP8pWrJpZbirB4rKbzzqQvNSgaPyfYS107Tp0KtqE8ZKm5uYnFfQjYfuY2HxH 42FOIxVMta/L7RtTsPq6T3drcwlZNPvUuriSS1mjPKOSFZXdBxI3WlCvwnbFUZ5Yu/MUltNaa/bL Hf2TiI30NBb3iUqs8S1LJUfbRvst0JFDiqdYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY q7FWuK8uVBypSvemKt4q7FXYq7FXYq7FXYq//9k= + + + + + + uuid:B4D572641149DD119EEFF96D7801BC77 + uuid:852ed07c-1a0d-af4f-b9f3-759b446c18bc + + uuid:1674efe0-8233-d14d-b102-fa10d8fdd283 + uuid:92F9E1E974FFDC11AC15B6426E08541E + + + + Document + + + 1 + False + False + + 16.000000 + 21.000000 + Picas + + + + + Minion-Italic + Minion + Italic + Type 1 + 001.001 + False + MinioIta; Minion + + + LucidaSansTypewriter + Lucida Sans Typewriter + Regular + Type 1 + 001.000 + False + LucidSanTyp; Lucida Sans Typewriter + + + + + + Black + Red 2 + + + + + + Default Swatch Group + 0 + + + + White + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + Black + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 100.000000 + + + Yellow + CMYK + PROCESS + 0.000000 + 0.000000 + 100.000000 + 0.000000 + + + Lime + CMYK + PROCESS + 33.000000 + 0.000000 + 72.999992 + 0.000000 + + + Night Blue + CMYK + PROCESS + 100.000000 + 50.000000 + 0.000000 + 0.000000 + + + Pigeon + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 30.000002 + + + Red 2 + SPOT + 100.000000 + CMYK + 9.000000 + 82.000000 + 60.000004 + 14.999999 + + + + + + + + + + endstream endobj 121 0 obj <> endobj 199 0 obj <> endobj 235 0 obj <> endobj 237 0 obj <> endobj 238 0 obj <> endobj 386 0 obj <>stream +H‰|SmLSg¾.Ü¡ë2n:,ïÖ÷º‘ìùà²ý€M¦Ã`ðc€ˆB¡-TZZÚKk-öËÇ„Ò–R(ý P’‚“¨ÈÀh²f1Sm?æ\ü1]LÞË® +.û»““óãyÎ99'Ï9,!ãp8¼Ü#9ŸæçmÛ/­“*ê¶çÒB™´jƒHg‡Ù’`ÜÇB¶ã¯_Öæñ×0¬kâEtü%$9újÂ…”<ãn…R§’V×ÐÔ[UoS;233Þ݈ïSÙ"E¥˜*Щi±\MåÖU)TJ…JH‹EïQT¶LFåoT©©|±Z¬ÒÄÐg ¤jJHÑ*¡H,ªj)…äÿ:a1Ø'X¶;€}†ňØ^XvCœcœ¡8M|jüUtŠ‹šŒ(ù ZAÉŸkS¾@q%(Ž,& Ñ&‡'U)%ÉúéHdd`B@F5rÙs€]yNþÇlÀËÔo”i˜¦ Ú”ñûh×2)CÓ³¼cæ€É¼÷¿¾<IŸ)ˆ7È«ë-ÀÒÞ;Ú (1ŒðЛ}‹IßÑa„¤Ì®=Õ¡y‰ËŽÀ¼‚R–“žöáym¨o.Úë\úrfvjžhO¬C:Þ˜ßvÆ[Ätº¡ž £úZI¥ºžŠ„òFpÒ:41æº=|F–¢ÃÃ^‚”9<}v/à2<ã"ú{’3uåßG—w0¯X'ûL7¯t¶÷œuÀGÃhçwÒ&OŒWTJËÙùÂôŒ46yIqalÕóä±€5 ‚çGñ/úˆN—×îý#FÉአ+VB.jëÒ¬móOj9ßÜ™þ9©ÑfžZY"6‚¦¶îP'D\æ>ØÙæ3k.­Ë‚º¹¤Ñö3å¸õ™ߥ弄À÷èÚü䮺4 ü6½¾Œ²ï<]iþ‘|J2kôŸ¼¹„¶€¦öîQ'$Ÿî÷¯ø þ׸IßbÑÂrÍÎ’¬t¢51øþ ¿Ö­ÍÃöÏz“hI ý†/ôtŒ+½§´ vkñpx"Ü \-:±ŠÙÌÆ}–2CÿÞcáŠsø Q”€xó ÜZ/²@›i(4ž.ä/¹íºÀ_Œ ñ®€HsmYLMækÅ‹N;Taлºq\æ$k]ÇÒMØúú² ›@‡&MfÛTÊa´EVÉq$a(ž3<Ûgé 65ƒ}åcyCOŸ>dŠxf§Ê@k5 |s…ÌxÂ"Õñíô°û\WÄÉ—²{ªŸ»¹ØÚ”k"è$döà¡$òø‘NiG‹Û=Ï£Tœo + ¶zÁRß­éK ĵ#«×ÓVJçßPËšÍ5.Sn¼¹÷6š}˜óý¾¥ØSØ™Cæ/¡»¼¯¦.'p¹ÛÔ]pŽàYEÙr`i²;lÐa³y,@sJSëÚÂô(˜[Dàw8Ã’xuOP1Fg¢·®B²MïÃ¥52]#hÐ_1à +´É?ùÑ¡Á`/p»šOÇ­´Ú­ÐòhkEUå,‘ Õ7ð«ZÃy%¨?ZZP¹Þ5—Õ{PŽÿ¦'YÏ=I‚þݺÔõÍ/D“ïnúG€ +¯ endstream endobj 236 0 obj <> endobj 385 0 obj <>stream +H‰„”TWÇgH2»˜žÍ03˜™ö¬›SVPÚãO"XÔ-.4«‚„š`0»¸h<Ò´.(l„.ZÀbU[¬¥Z( md\ËnA¬ÛQ»é¶{‡}œÝèûgÏÌ93ï½;÷~ßçÝïà˜< Ãqç£Ó®-_«Œ‰É@(R‹]BôlŒn&övŇåçdVmbýÎ[Ê”ÀB ä9»Ð ß +Ô÷Ô*çšd7‘žþ fªvfZ9;{ hX¤…È ˆˆ™Õ­˜^[—^­L"{*‡‡6+?M8‹dH¡EòHž’¨Û¹9±,«R©ò‚èeàÒ€ôHO¨€å÷‹ 2?°´ØÀÏ7‚üñSååçX©:.È׈ <šžc „ªÙ C<¼ÍãÓØ‚²iCw Ø‹†°€@aº£á|cG×âÎÞú«ÝÚÁ±mº¦}9Þd ÁHý?zQØs{Ö£ìBUñŶqxq~Á«GÂ!*ƒ¯á&¡(ÒħNß¼üöiÖV×°Œy§ùDíi–꫸¦¨ªp«`Ò¼þ÷Yx…„pËZ·Ëù»,Ý:òÍ3Ÿž™bónËc3Èd9U†´d¦)ãp³Éõñ{ÿ‚•Þ‹¬ÊÍïwŠ¹“à*Uß 1HõQew<4OP}£ŠÂÞ|aß× €} é°l(féîµ6ë!j*Àc …ùX:ÈyëÚÝ·õÈŽ\ ë¿8ÀÀÂ×Ђì×X©‡ÄL<ERwi1jxT3J\ñÞ‚È=eå§u_’µE9¾õ *ö".‘MEz#èI2ó°xJÔðîRõ`šêþ÷(þ}Ï•²[ÌÕ‘“çþÌ~õYí$¨µÔ„¸~ IÝOögósº70hãoÐ&¤\~ŪÇ›f.³5D¹A±©²l+ZÌÄïm~3…tÑÓ“‹³˜5&…îê‘w/³-M~&Гæhy¤~÷ŒD¿'€[Ý“ð19t©¥‡™òÍ,’œñ_ò‹Ê6û9]gñÞ†l&m£3Öôÿž eØÏÃBWC#„#L f¡C¢ÐŽüF0Ô?Ü`¢!\Z +n.Y"å—HùC‡Œú`M‹™·%½S  ÝQT_¯ôöw‚šnïé?ÍÔžª<\ÍþÁýzEºv^6ùq«ø,sòT¥»š=^ùz…U;1%F’ÃGßr·êZÝ…ÍùŒ)3i¿SÒú7Oæ{¦8¿<:EQ}’ö5Äã^Æ? +B_Pýn’OÁ’$àÐN´M∖"f= /°¼Ér¿þÐýHÿ‘îeO/Ïç‚U¡ÍNHâÅ¥7&Õß<òÝÄ7ÈD DxøŸ°u_b ´™¦&~Âx¢¬I pðÔ8¤£z@œišzÀ4ÖU;ÅnâIª $5^í(<‘ÅXWU!ܪÓû¨NhÉþ‰þH¡QTklóõ{}cº¿–œ£9Ì+éÇ[‹ØC Çš®h¡ÜŒøŸt'‡? endstream endobj 200 0 obj <> endobj 384 0 obj <>stream +H‰\’ÏŠƒ0ÆïyŠÛC±U“´ B±-xØ?¬»`uì +k Ñ|ûÉ”.l@óKòMø&3QQžJÛÏ2z÷cSÁ,»Þ¶¦ñîW¸õVìbÙöÍüX…3ÔND\-Ó Ci»Qd™Œ>ðpšý"WÇv¼ÂZDo¾ßÛ›\}ÕZFÕݹÀÎr+ó\¶ÐáE/µ{­QÛ”-ž÷ó²Á˜?Åçâ@Æa½c3ÍØÂäê|mo ²-Ž\f¹Ûþ;Ob»vÍwíE“x»Å yϼ'>0ˆOÌ'ä$ŒrÂœ §¼ŸÒ~š2§ÄGæ#qÁ\ +Ö+Ò+¾GÑ=ŠcÅê]`œY£I£Y£ƒF1+bͬ‰ ³!æ¼4å¥9/Myiö£Éæ5å¨ÏÌgâ 3>ffø­ ½•aÿ†üöfÈ›ao†¼öfÈ›ao†¼ö€èQ *v”|öAs÷[ ´]¨=U½·ðìL7:‰Qô‰_¢ ¸ endstream endobj 383 0 obj <>stream +H‰|”{PSWÇo€\."qå›äº¹±êjW««]|[Dy¨X©Bx!4 Ix™@« ÄD <Y… ˆ€ˆÏÊN)hQ·T«3«®ÎŽÛµç2§ÛÙ@ÿhgÿØ93çÌœs~¿ï÷û™9‡†xy 4¶;2<8le„@$È}˜•‘*åg’f—QZड़룠~‘Wþôý÷R¡óIó€~~÷¢ßyùÏ\TîÊ:‘#¤¦Iy+’>â­Ý´éO«fæu¼ÉY‰)¼˜‰4%S %e‰Od‰ùÒ”äÕ<ÞÎŒ ^ôL•„"IËÜ»¿á $<>O*æ'§dòÅB^Öñÿ× AhîøЂà4d ‚,C•ò1‚|â"HŠDx!1^ÈYìŽx žÈFD„h‘'´4Ú<¤·<Ùž÷¼"¼úè ôkh6:á-ƶ`Ã>»}*çdÌùÙ7Þ÷ßssð ó{ÄØŸÍ`,™>"§MMxRìé#L¸a×áÆ4ž +£`4À¶V7°BÆÒA¨ls‚¨oÁràñû¥È&<Á²é@æH` Âm©0r\=‚ÌØðÍ°± ìuWÑ›Ä<ý˜ÖZ<A 3;XÑÊÇt†S÷–Š›¢ +Ì÷¤-¬éª»ÕÐ/¬`E/8CÀµèä(, Þ>^œ·;n­Û'¦pƒÖÔËèWÚ¯všRBW|´<|?¹/*$*ü&óf8•C”ù?xèæáOÁ‡T½ììéè!:Z³ã6à áÙ¤>•Ž?5ÖÙ Ä_Ç>Ý‘¾uWp|·9ŸTU(‹U§óÔÊu®ö”.פÂÖ›ÒëÄ©‹ÝwÈ‘þ«s¦ö÷‡¹Å%t|Ôem¾PeÆìµ5¶6Îw›Z÷Æ +R¹Q{è °^× \—ª[èð§" } yf!°¡žœoºIµö >á¼ì6sK¼ñ__xÞýN¯Ü™^ǵ¥}f +"`Šk„Ú2 "ìPøƽ¨4;´lü¸Gµ2õÕz³¡+5ZŠ­DßuIàÖØýKÈ ´>‰‰¿û&cõÊÐ5qÒŠa é·©f]uwÖÑ8àá£ÀošËÄÛ•Øß+V¨4;µl¾@Áœ®?%ÇÈ@7Ç]YÏ Ÿ²ùWusq| ×Â8®Ÿææ—òHY¹®ÞèÄË!»e:ÑAãS|OÀtKj…O´Ü-_ª¢Š’ +ØÒ ÔÔíE¥BÖ¹r£®”»cu]!û{¿¬y7L!¬Z€˜Œ#ƒƒÅ˜p‡¸ï i)‡'ðí6®5þ†P‘f‹–­Ò© ´ÊÙúÚÒžjdIŽJÙrL*Ž×$ë ëW’#àÇÙ¦ã¶ÁáfTdÏuÈeàJ;pÍ"6~„Pg™¡¢ÈCB®"C¤=NœDû€ÞÝbгgÀÛˆ¡ËÉ{H˜³˜h“I-4‘øfëAkT-¿)âÒ à¥m:ËÂ+Ëíòò|K^» NÞ)”õJFÔ6ìﶇÃ/8àˆ]„–£ø!­pìâìœ\¨Á±Ý 5º]³½ù=Ô÷=¹?ðùÌÞÊ6|¬Ä1K‹cŠ³1Qí¤`’ÀÇÁý°¿?0ÜEfÖÐcÚ2}œÁæ1.>öª~KT9Ù¦§ã®âaÝåÒ˪ÒS††›ÓŽ2 ¸`éÈÜzûó¯Ȇ<ú­Ô¦”Î!ÑÞ€å±Àçf!—6éÔý5íô¤Bk cÛÞsê0Ý…ÞmÖæ\ ͹e'rœúŠÓ„±‹­@r­ö$ñÓjôDa‰­T ÊÃŠàœ Ì‰Ö_«¶WVbÖš&óß;úÉO‡góo˜Íϸ[!£þÜwJîßüøâãT 3ÒT¹šÐ›jKI¼§ÐíÀ»þ_§KYøxÞ9y‰¤ +•JôD@À±„£dxd"DÖp¶µ$·µô;þÂmjìê»äÂJÐÜõômyMª*¢á¹ëÖ—$ «˜’¤ ¾$ KLË>UDj­ö.ÓÃÆ{dã½F[3YjôÂZý…ÆBžI/Q+0F¤ò1p8xÿø»ŸË{àÇÌ•I:@$K/ “xûuÒÞÇí¬«;_E\¨UÇ·’ø¨±¨FSWÕT¯ªä´|ÞøYÔîôäxnpDÚ‡Û8«ºcŸ>sÞÿšËxè&Ð{FŽ_ê’û·,Œ|Àħ(5@™ +IšLã&q~†Ä5€P×èmÆ3Õ*B½Tœ»™¹¼ÛtÚ ™ÿ@ǧô……:±7 ýØa2düâUœüÎæ6K·¿£³ÇÞ醢XGß_«²öç®ÛwHø®ƒyÅ2Öp“k»i»T+·Xõ•Dmýé¢JRsT ‘‘,]!Ζ`üdÉ)%qJmk"in(¯zi`X 0OÊ°˜Gcc³“ˆC9ׯ”éŒÅeäëf°ý«×œÞÔö]aû3„‰ÜQüe«9ÐwTtcà™õŸo¸îô:Ód/J‰æ',á“UÀ»£×^*Ηš\ OʨŸ¯‚°÷ûîù¯¤ñ—€AÍe¨>Í…~R¸%w·²SkÔg‹¥¤²LI*ËT§ÕE§µùg31±M]ÓØ[uµ;Ð×û¶ l­}ež4¾3±œt8Çýƒ8‡õ¢•°Ú•âFiVÖ•˜*0SEÕΩ/5ð‰0þ1>y,Nœ÷_º«6¨ëŠÚ¯¼ql%fÙÚÒ¦»n2mó£­3‰›Ôi]lÇu‹íÆÂæ# d‚$’²„@ˆod}!­" !Ø€18†€Ý„&n4É»&N3n‡ºý¡ÌtzE–™ö HÌ´?ôgGsß9çžsï{/á§xEÒƯç,ãÑȵZM@Wx.ìxö˜ UŠ®™±NØu{ =/óYÉb†§sÇHMøBŸU¶•¨…Ygµ§³ẇ¯Løi¸•’ÄŒÎ\hN0ã¾Ò"§„Ê<¥‘f2g²U§Ï +ŒŠ t–¼ÌРi(÷—vpbîÙ‚“g„I“=X‚CWá;“9ûnÒÒ6×)tØ.^´ÒDëBׄ?Øy©gp¢ácÜ[ÏZXÚÞ´öz†ü;È} äƼûôÁîdØM|Ï{É&žm*Ûì=øòõå¥ÕQ§Î­bˆµtNÓ·«ÃT¥jšÑ÷`È¥±¼¶¬çõ«wÀŠ-·çxTy©Y[ÈÈÊE’WñzÞGÑ-ÿÛ½/¬½fJ3¥›Ò|nÿ¤ Œ›ƒ8Üø±BD¾4’èÀé¹ØjyÁ怸ˆÚö>x°›Ë`.•yøõÓ§¯ëè:¨‹•R9rš«ÁŽUt ÈhË’«ÉdšB\”(ºÞ78ܧé‘0|î¸S½ÊÄt‡'. üEˆ•ÏV r„·‘ˆüpÍ‹3´=âŠñÖ"ë¼W`kôÆ·øñ!‚ÈÄ-7"qãQPâa×<ÄLJÃ^Ò“×уw—'þ´ÔEµ×•×2ùÜËF‘AdLÀî}*û‹`ùí{KÝ”o£g7;ЋðÔÌzÐĬ¡, ë‚Œ¿ì¯¹^9¥+3ë‹™býoÅ¿K¨oÞëy[öçxË)5ú.gú£™¢$Ôö6ËZò©¬£ÿp(è¤lHÀjFÊ4¦R$þß×»³Nç6ÄŸ€'í¤˜W¾&³<~©“òo ¬#­ðoj6óÈ+–Ù¾ò5Òu¯èßFä©Eˆ²“þ¢&À8ÅǶŽ¢™ˆîž 2’ï}~‹ùpöÊÃ? ¤üá§Ù¯_P‰éW$IÏq{…‰—žœ†gáÙÌ=%â¶Ê x}MM½‰*,¾vž›^ +{«ÓÑä¤úB… «ƒã“uôûÓq©:ˆ'FÀÝCZÝîuyB•À÷8Á‹Ü)*Çi¦W¢bÒhÏ­È)J¦ÜbcQUVà( º‚Ž Mð£5[µØT\%m‡^7Ö¿=Ý*kip;® ˆ‘|#>6·³õ,uÇ·ðÖÄ>;ßóéÂÏ3ÏaŠüšj-Í?êTÃ_€Ø÷¯˜·ÀäGÓÈÜW¾!–#&–ÌÌr/WŠŒ›Žjv/zçD/;÷æ` øÙfådk«ZâVk•«ÑewÙo—“µM>Üo,q•Q²Ô“2˜z^ÛÑQ£ÎšbŠÿŒñ6ŒÀ¶sqŸ~vçqîÂÏÉɬÁ”0]Ô&íìöv±¡P¸TÓNKöjOŸÅ‰ë¬ËÝÞ&¼”HÍ;W!Í¡3ÄæœóÂäé’Q%=YÔªU ßPêJåyC…t¥Û`Õ+L:U“ +—4Ï˯R_F¾x€ÒJ"Òcâkq‹èÒ0ð‡¬kÁ”ªÌe¬cûíÌ»à{hë¿Šqñúá© ,ºÛsÿRw{•÷†ÌaÀyiœ㶔 +†©›‘»Ãh©ýcÃÝŸÀ“¿Ty±}:zˆ¬iö[Ôøs/ýXIi›º'‘TKãPŒM{Ê»ÕÔk †NÀNÙLÈ¡ÄJ6—Šq;•#úZ¦v6Ä„ØÅ·§¾@¸";eh- :¿9@k6/<A3ðø-X:£éÜ6؆^>gŒèásû“ûÀÿþ¯WxYÝuþ¼¼XÕD›=Ú%ÝP –¦*$•º¢s(C³ÆÖÍÒÔU^- Ä¿:™šÍ°*¬¯¯Ûç¢\Í*™•i=ØÊý¤å η E»úM܉h7‡!7}N,D_D~’(åò&ÆìÔË…ùº¼â4Z%®,—¦¡Úµ³Õ€×ÝÀïYôƒç©œÄ©bÆ‹ª_öûܱêcË pâºÃ¢#ÙYû^p—í…—PH†^‡Ðï‚þq6^)íTÒ|½w•örenHlŸoäAµ}MïÞN¿y¸|Ï¿w>vcðoÚÉE|4ƒüƒG— endstream endobj 122 0 obj <> endobj 367 0 obj <>stream +H‰\“Ñn£0Eßù +?¶ ¶gZ Ej“VÊCwW›ö8)RcCò÷õåV]i‘‚¹sƘr½Ýlc?™òOÚ]˜Ì¡] +çá’Ú`öáØÇbY™®o§ï«ù¿=5cQæâÝõ<…Ó6†¢®Mù7ß>stream +H‰„UmTWžÉdf‚™&ÚD3ÅjÙ¥âÇÑ®uÁ" µE¾"Ä‚ÐA¨HAm“v‘(ˆ€XQ¡`…Š_ˆ‹Œ¢PEü€ºÖ“SÝw²7»g'ØžÓûãž9çÞç}Þç}ÞûÎÅ1±Ãq|Jèªèˆ5+¼Ã²S“ÔQêͺ5†L^›š¥Ñ:ÏU¼ç'‹è+þ¿ÿžONÅ°šb7ˆ™_L¬ž2!ÔÃ‰É ÊÈ4hSS6f©f%ÎVù.\¸@µ4)cƒFeÐeiÒuª•›3´™Zu–&ÉG¥Zš–¦ŠtâuªHN£Ív_ P¥êTj•V“’*j5Iª,­:I“®Ö~¬ÊHV¦¦hÒ2ôª™ªié†á‚ŒÆ0sa1l +y’Ø_l†-a,ŒÄ¢h,ÃâÆvpL„Ø|ì>>ÏÂ+ñ&ü²È]"J}&:*ê'âˆ:â7±Lì'Nç‰ÏŠ‘óÈU¤…>`|þøÎñO]ÿêšäZé¶Ìígww#`<Ò{@ ¸"ÌÊ 3½P RŽ*ãÇ‘àå¼hfx«£_ +®€!WÊÝÀ­l~ŽÝ—óØû¢Ö +Ì“ Vf?³ˆO•Á›w6¯2µ¹hÿ˯K¼)“Δµ3­xANÚ–¬¨ÆãJ®Ôÿóâ+ù³Å-‹×Mûà€ºfµ’Ù©Ct4š)ŸÝ‹d°¨ñÎ?.ÝVª/JótêŒ÷Ó£m·ëKkªªÙ#u‡öÞ{¹w-¹$a"wž’Vg}ß*o:zêô‰c™1ÙÛBý•îö2=ïZ ¾Æ^&]¿ÝÛ_‰O,zM–£ImHúÔG9ê;Tô]‰ä°'¤<¬_Ù»  å@׃èb¯òZoyËÉk®Q+q yIÏšì‘<}ÚR˜$‡É±ð†ÏSåœÿÒõ_KVÒ-E½ÝïI.Ÿ@"åH¼ ‰#C”aï…ä'|& ÷ÂÁ^ÐéaSÓ—M-’ÓmæÎòÇÈ yuÑ%a;4KÜ¡‚Ãm¼'aƒ +)ïÉ9<©?ËÀ ¸³!<âðN´Øè4H!þ[ØSA%(ÅÅ¡bÄ"e+Úq,'Fž;!w𖠶 ˜aBŸ.þÐtÖIÅÿWÝŽE¹ºä~›øU9¼E7ó‚¿$»G#B@Xä=ÚaAe¤;°œ•;oVÊ[8‡…²Š_ÿ,,i v‚„Eм„èªPs|¤7ó³lˆº j*¨›HMÚ(d´§ÞÔ)$• +×ó&‰Ò“88Ò&ÎcÔ +úçËlÌËQDPàZ]zè$ÛQwìêey}á÷š•ñ­1ûÒvKþ„¥ÞR[/©«¯hi•_Èì^U£Ü·¹ÔOâ(k´•úùhaÁA¶ÆP‘®‘'d«?Ö+s6¥þM±‰ +7PÌKnžµ&17I»…Ýš›³Í_1_hÌ ÿ’ÃÛmÞ+=±zo¸bÕô<¿@öýà͈ž%GK†P<|ùðê¡} ÊAúÓQÙ+H†&ŽÀP]†÷`Ñýžô‚ãBk8þ‡_³Â%qM~xt»vÜS{äg¶Ûo+;Ó#@á”l3õ˜:’$ý¥Èm¥µ££¯rý˜9µäsø++ñJÆGpȵPÇ¡:ȇŸ8Ç"gK ƒr7+n2+ôA‡: lœ# °§èñ!+1$³òb +Zb$ºÀO3<#ߦ àM ùì¬0;¸À„Ëø`ØYï1 +âÅÜ'm7x|€im“Ý ˜»vÂDÃ4G ybZa¿Š4ýÇ}Àž"üvÐÇ;äšÊ¿C"ɸ¸0@p²¾ÝDÁ·Žvò±=å]ÇYx†?KΫ¥›ƒÃ>b… 1"Óýˆ‚P7 .ʆ‘:KCEÝÉ7[Ë/ž’w¥õ…V++cá +äôñ +ÕùʈD.F.ì‡c‰YÁ³PYfµ³PÂ9úƒ Ä9‡v_=Þo…êD¿=EêÐÑãÒo>P.o¾»yPñâ»–†¶ù¼¹Ã*çýŸÐ¾éÙÊM9ÑyjEB²¥AËæ-<úDÎgѿ׷‹&à+Ù3 +LÂ5_H¡Ç(ŠáGIaêŠ~\~ÖtÁÛœGϯkeòá!Ü’¢IhÊZ$›{7jäQWûáZ6£Ôק8RµkO-Ëœ+ºD~^´ug‘"ÚØ|†…OhpMº‚Þš»:gK‚r!½ÿøå〗§°±t¸˜ÉGr:~mlAªb‰áü7ÿ‚yÆÓ¬ûV..‡O¾½Ç°*lÌ9&¸Dx3˜s=¤™ÒV5ÅŠZ9éú„œ܉ò±ÕxLþw­!©ë–«ñ$Jò4 +í¿cï6\ÒAö—I³‹³ •5¾Ï“(ÎÏÛ-£3Ê"N$²qí]Ša¦›!·x«ïV”T—6rÔØᄦFS_M÷¦÷¬>Ê6lªÐ·9éO©M•tUQCAKu“(./hÒуêK¬á_Y– m¡Æ'Ñ\q7IT·_à 'ª:Zi}¾°ïÎzˆwêttÿù¦>¶ƒ'ׇ½~¤D«Ñâó«%åå'›èú|ÓžVÖ·©Ê›Ù"9‹+öÞ_œU°—Ë +…éûèO‚ïÈØ´ýiªÔ§ÔÝêð:û€¼TÆV®ÃH”¦)è¾êMl,v&µ¯âkQ¼2µ¨VM¢H­ˆŸby[ø}ÆŸ îç‡ endstream endobj 223 0 obj <>stream +H‰œWKs¤È¾ëWpÇÂPU@o^¯½1ŽñeVŽ9HÔÔìÐH+èyü{ç«ŠuKŽ5õ®¬||ùåWZEð¿R:²Žž»«OÑxõóõÕ»¿ÿ–G»)RQ4íÆ«w¿B÷aºzw­þ›Ãàõý•*¢þÁ§1‘5yVF×Ç«›ø—.Iu<À¯‰ç$µqÿ˜˜xL>_ÿë*ç-Ñ´î 9ƇDËQ=/?¶c¢Müƒ:Ó$UE|¼Ã3‡tnïâì[HQqš\ÿêJU¦£ë_@ <ÓO ½,-AÎqÏçDi~Ü>¥Ó[lïàa_xP«ºIà!îŒüíà}ßQþ]¢ôjG‡2d‹ï•Ç#êö4É%)ìêÛ!ÂKQMó÷¼bÀɽ\ç4:Ùá +‘íEúš¨ŠÅƒ*Ï#RÜõ_@WC?ÒóTÞ¬\vlðTÜÁé§X™Ø"×@%Ì2À¦£Ÿ/îh2:Š¼x »DB†§5tÇ´•Ð)»ãÐy_w?ZÔ+Ù kèxñâìàæm?°c8 ´“» ¤âÓ¾ïœOq”.n²£¯£ |ƒ-ˆñ€{m|âÇrï5ƒ:_e¿&ðsêïÚ‰û¢qÿF>IR²Zý}Î…aѽiâkHîeƒ?çÃü )e|oìç +¹C?‡?tŒ¢Œ{÷ø;>Ê€SøŒLbb Ë!Í‹“¬h°ðjñ‡q/G;1q5vâoðà]?R 4 Ž`ÄE\äq ËnÔ£è²@§†! °ôæ;§Ç#ݼ/y<9¹Qs>K|9GEÉÙFŸs ˜áßk„:ÇÇiæÖ‡„ÉihŸe–­{àÓx¬__ãÅæÑÓ$“µà ~è`L,måÞvQáZ¼k‰Dˉ·1Ÿ(ÝTŸo“À“H;ßP㇞ÕMšßƒ't¬»inGöÊvˆ6P‡XzèxC„³OJÖ% Z,Èx˜Øqf„»Nœ5¸@8˜"XA¨/Ù OËHx-a°‡7x;Ù­IqHiã,"$c)Äp+¹Ò’(hC0y#Hí +èP*dšDC¢‰Œ-²ª¶Hk2Ý45òˆxß ÝÜÝÆ· ¦Ö³¼£Pu–›Ü¬6ÞÄ$`ÂFÆ·ƯN =r›YÅ«-¦FÏË[CÑSm³¼®µz¬%=˜%³ÛÐÀádzüᾷ–œ÷¯Ã7:ÅQQ•©¼%‘ý8¡4žÈ‰möD§7"LïCÞ…ñ›²ÓªRð]€*Ó­ݨ󯸙ç¾ìò¼0a–‹ì”½âàÝ/È…ÖD—-`oD©Š©«þ‰ò•7rÉ;þÖbF£lŸyÙ²pêJœöáÛ™žÝ(BOËðˆv~㬠°Ïø-çí7²SšgXP<=¾Ìy,€¶NýÐÚµ#}O +¤}Ô>Ÿwµ |Ç% /§ºiæX³ø +€ÄQaãO0–Ë.Bñ`Û6\…"¯2›ë2*«&Ë›Æ*Ü÷ßÿóô:(&ÚÖ«}èß(‚XšÓÁ3é@¶بWPâV24™ÉõeWl*ñEn3chªKn3tkà—Ìà`Ú_Úz ¼Ý‰`¦Ç72ò ƒ4ÖÓŽIúLššà-gÔ¯s•ÕÆب,rÄVV?@I÷<¿ª]”™²ë}/$ÊY:Á‘­!¨@Ÿƒ|ípIB¥l¦óD—YÞdeu‹¤ª²™2¦ØàbK×¹Ç/lSA +h ^E¼’qL*†ø@¢S~ xâò&Ø9²=‹¦ k@JˆÊl Å„Öi¼k‡V8aˆ!.àÞ +ò9!Ý=†!hlq†Ô܃i…ó$ ‹`ZMùŠR4=k÷ýÆ›ëÚy¯¯:`È×SÐFFý#Ê+ ®è×J¥»à6tNOü•Ù—=¨vocÑO-ßδXðNí€(›Ú’Éú½ÃÍî䇯‚ºühË—ùÑéæÂêÄ–Áª?§{)žBQÈ+)vùd¬?yô ´ðSØn`ÕÑ–•ßòà +øýÝÄ\„ºàþµ;QzµµÑÊ#3‰À(ÿ†ÚB/ÑpT+ßo-s¤û&ºXâ>‹§M½/Sdn…bŽ©¬) `’VqŠ¿©24†$€+ Má¨ôØýÍrVæËàI!äпዹshà ;%6Â+¼½ad±·fãHÄ$‚½žÜUÞ•¡ÓŸ\|äøCwq…³ò¦×hyi êÐuéªÊ*GË_ƒW4YÙP¾­(ÿu»ý‡îþuÚ® + öQ‘.õ†·¿¨ØVÕ©+rG¦$Ô~j’…†ø;.ñ]ÊRÕzu=¾ëO o,äûr+»Ï,^Æ·Š¥­6DŠŸ- è²…€a¨¼\¿dß ! )ê¬i ÍÝ¿ûñuó˜zñÕ¾”…±‚—¢|ÅX¦ª€ýí&QÆdOTÃâ뎿à%[T:(…F—xFªW…̹ú³†W +lªMVlâcÿpxÃ#Ê*«v¬¶{—(7Ð]RÆÆÓû´RVËÊ‹i;Èz áIðÒ—/L5x(„í¢_—˨ˆÕÁˆ$ËÔ׋+¬Üó®¡EžÎ©uMë•Ù`Õ¦ TŠêÁí™  ¶žO_.âg*Á¾ótÔ«–"Ѫ³´×!¦ò_Ê.ØL%µñHŒÚ®.õÅ—òùÉzÝÂû·tŠ‡ÎrËŒˆ}ÿ‡»Vä`5 `ù“lÂê–ßOî¶%SYÔÇãä.Ý p uÐ1PÑš¥U’-Dºsuœ;”b[ƒÒ´dA¼×%ÔKu†#ÕJ¶E +7ûHqû´ë-âxÂiØGËžö9d„H~žÍÊ 4•™@žælã)ÒØ0` gLtHëœ ÆBìǾðä@ÎQ)Tq.4ÿmâk!ë(wîOÂÐ w¾ž{ìŸI>…ÕYmË&RUéÓ%Ÿ¹{/KUeZAú7ÞÄNOÄð ÅîšELf* û1…q^3uV™2@9©bˆýß måêÔ Ï÷2µï§Ý ¨ª{°‘ð†/W A®^–«Ùšx ‡0ÃlÙŽ¼Gš¹ Þ0ýújéiÂwÿŠé©1ñÚNŒ‡ªU¢¡êzHƒÁV8‰Úªâ¿÷›Ù‡×ro±g<;;³ûÍËÓU `’®‹F­EN'±9Ný q:¬1_6û•ßÏöàƒÔiàãáL)Ð{‰K•éàÂH€, ¦àLµ¬ÆŸÿ ˜Ö: 1ç,ÞËy«_t’ÕUJŸ ÊÜí.µ¯‹è%Þn¹ßQ˜.oÔÛn÷8ö‰ä›ñH# +o\\ä4‚t5Oní÷\þ½xšOÂ$k©^ {q º|•’2ñ,9á{¹Š̵âÚE>‹€Naow]T&:¼ZêQ¢äQˆ Hòê)TòñYqn¼œ Û©Í´M /Ʋßž-*7téFCoÚ… ?LªÜ=—2nØ»KÖÜvݯ€`I*'QÚ3ÓäÚMs•¿ÈÅ ‹¸–µ­zÚÖ®¡ìÆ@²ÁyþÎ-Ìý ƒ—L§Ÿ/¬ýšÓ:8æ®ÜàU.ÞÅêK•¦»æþÙÓ!&JqÖ$>@nN,±õ»f{¥]¹¬äO™ß+sš’jØ…qíÞ·¬~Õг‹ìÝ¡nïß_WÁPÒý0ŠéGpòa6¤‡6Pù8R%JE˜.ÆI4Æè¢Òi|[÷Á&PhÂc¡JŒ1V‚ù•VÁŵÑftŬë¥Á.ŽY}¦N(Fëý÷®?6ÕéÂäÍ>CƒÛË ücÒAHDÛ¦Ùѹ/ÎœÛã³™hÑÔÍ’Ów“îë“Q­Œêõ¶zœï +úÔܾR¡ËW-©îé6,£)ŸÓj_×·Ç8“Ý~»êÌí•Êb»æMÕbp±k±æèˆú<óáÙö$¿^™égÊraiÜïïeMóݲ[¾ n ¿¯~}Y÷TÚÍŸlÇ>›°â4RiS©n.ƒ‡iµè¶1ᶨ4áÂA¥B\˜„«$´“IJÜmÜ€m”¥”'©…àɨ›Ìðf“Oàì'Xªg”Ç -–²z‰7óF*z”œ + ÙZ@^µŒá²˜åÒˆL€› =à}ÀÁÀ)>stream +H‰ÔWmoÛ6þ. ÿáú¥†ˆI‰’¦À’vÚ¬@cû0ƒb3‘VYr-%N1ä¿ïŽ”m9R^¶o“ó"žîŽÏóÜ‘¢èÃ8|uÞþ|Àuã¤RÁbU*L˜„•v®œoŽà€?Š ˆSAÆß rŽ'NÐ%‰)É„ÿ‡É•“s +\Hˆ…da“…ã.o.Ëb³2k8==?~÷Y}×êjÞÀI½Xf«ì²Ôd~¿få~ïMþÂi|ÎL>8îß4žüà¸`ѧ#Á‰„»\·Y«¡i³§»*ª¬„˺.uVÁùÇyíêFör=t|úãÉg ºÊÊÆFíïÔC”‚…e/á—z®aU×íØlV +ry@}úL{!$ÙWýýpü©Ñ n³ò‘çM©¯ÚX×y{8®á0p#Ŭ.ëÕSp–¨xÃ/šqêv¨v§Þò5^m^4 cQÿ!ïÍsLˆÏ7¼Ÿ"´‰0D0âQ:»¨ûÞ´÷ð~±mg[rÎV³|ËyŒè–¦*wæaŸàµÎ‹RÃÔ½ƒ×GPÝ”p;‡¡bEÕÂl±´‚!QZWzRcfð 5,®prÁÔÃÞÞ¬*¸cÃNÂKã*Ø…¼3„þŽQg=çÿ¾ç¿ëÁq©ñê óÃá¶.æ(A£WíXßÝèÄnÒÐðÀ&êR<ßg³í2³ƒ<×g÷[\q¤F÷‘ 3Èà¿Ò3ÅÈ©Ú¶£ö¥ÖënÕ¾€ð~ ¶¹‹æ\Ïq +Ó˜ÿÍØšLѧZ:?•ÅÍ{3<¶ oí¼×ÚƒMeÐßtå»McÿUðX‹[2±-ƒµŒ4ÆÃL{W§@¯½:Ë‹:ì9Á;uIñת`‰çfŸÁל>%+)?}õ”nOÕ’L»ì»Ôçæ~õD]‡TºÌGàl·…ûq]èøÁíñ)æ©s–JiÂsùÝýä éfÜ[/v3˜yÜ­=_º¸¢ZOº5‹¥ç ·Ôž¯ÜþM]ì::¯ ƒÏ…»ò8wµnP<.Tó ÊÃñÅd/]QÁ5p +iNåÒÛàÉ'çí J0k/4³j«‘ nIpb¡&“}°±çxð>ë¥â + +ð`.”%\ò><´K’Z0…o ªŠe@ÈíÁ˜Œ3žp YÓÜ ++K£$Q1,ß)˜ä®­”)Îã]J<駡ÓM‚a¨ðH‘¤;ðHˉ$ä>öz(¿3„”Á—,‘)(&Ót˦>$*ðh…”dàÿïŠb‚TB‚9ºoCØœ)°Ä©ækàÁ~C¡nX»N4Ð4J„f¬djƸ÷Ñ7-ë`n­Og%·À®Èš˜±Oó …'Öÿ[¼Ù8Ñ­u#º%XäÿÐgÎ? ­äŽ‚ endstream endobj 179 0 obj <>stream +H‰”W[o£H~÷¯àF¡(0fEê[F;ÚÞyhKóÐi*IØ`ìqáéî¿çVP€;³ÛSUç~¾sΟ«Lðo­² ¬²àT¯~ºÕÛíêêݧ4ØÙ@Ýu««_àõÉ®®¶ê6·+•)ü…G¥ƒR§Il÷«Ïá¿ê( û¸­£¸M×tOÁ)*Cx͇ø¾¶fåáKÐGqßj}ÙþºJ™lð‚L•cª„iÆ_3bªt¢˜éoçSe*´½9E±*C ­Cd»G|9D¸ÑÓFcéÑ?×ôü5ÊÒÐDpí/¸>³?‚ +:ÜãOצˆT:úŽ«GØKCǹ{æ +”¤·Ÿ¶Qµ™“}>Dª¿ùµÜoº‰ OðI1â Kòvw‘BÉó°«ÆÓ»] 6üª±ýb•dÁö=˜åhžÀÜu‘”±¾¤*îš»T—;VΟ¢"ƒ˜œ1&§x²"\®•®“u•o‚u®’´ª*ÄgHR[Ÿú»ð.¤ºˆçª®z£&?cv–©â¸j¹™dÙ®’h'4ölŽ¶ ¤Ï_`š¯|:šîúúêÍ®?›v[ë¯o?ÜÞfiZÝÜÜoß¿ VÀÄúð–žl:É«ãðŒ¦¦PÞoŸyƒ]E› B†ÀaaM¨'vf@Oxë c€åWöé^dÃ}8=÷.¸hóÕç¨C‰¨£Ý’œÃ7xå´i<©Mã*ÉËÒóóÙºt¡d x ë!Þ‘±|&ȇ&-Ýkåâ#œæØÝóÆLÿ²èŽ‡Hyü&FBõ]ý‚í[ÜtÅ÷)¦áŽ«»?—>S‹ª\,:¨6³èØ|€Æ‹T8QñEmBkö²" ˆ2Ѐ1Ip”±ùàv?»H¸tèÙêÎv› LÎ X»¬­7á)åfcyµ,Ò(¸ h¦$€­ããÂ`CÙ-‹‡›ÇïLŸ®Ï,6°7tá+6²¼˜4L…k—ÄYþb¥¡GóŒY37Ži-Z<Ë0%yaøñ7ˆ'^Õx]Ê Ï”g›"ÉÖåÅ¡°¡ÜÖæ´{~Êu¶IÖ)@¹‘ <ãë1~d™3.©çä%Vèùž³WnÒ݈]”‹jø|€ÒLhéb–º ;TU²Ö¹âA ÚèûFšÆ =på~ó» èTÚt-ËŽb‹ +PûÞC÷…SÂt¢ï?EùÐ$(”fOÇ<Ï-ü~¡ ž‡´ÜIr‰šÑÛA»Á I$¸¸ˆ·¡%tòð|«(žqAv®B¹zo ÙæÚ2g >÷t2ŠþÙ¬?žï½ÑgÒÏ7öYš‚W€ÅN¨ ‡Öƒ¤y©iÍØqcVùì N‰¤²«¬]6ÉCžPšásƤ3BŒ÷DÃÜ3Ѐ¨q!izVÛuòs¬EkÍ¥¤äÿ(ÃØÈÈeŸ¶-,2Ré`ÿ¼”B™¼´õv0ÈB#î=v1¬Ž ©êe0ž’‚¼pkÄ:Ó9¶Œ÷þ97b€RÇ^]¶p„ã_y6¢‰´­Mç3ÔH ÜQ|FC\å#É E‚ò÷]úG:äoYpF^§i©Søs3-$tbÔ†J@Ä°Æ-å,èÌ#ÏZhk÷Õâè:qé¸(à-1@p>Òë2iþEP‡âæçëm³cà;ã·¥ÿ¸Cë +‡žØ©£j–¶ ýªXÑsG9¤¦ÏnÈ% pÇÕWÀs +qR_†ÊõëUù#ÌÃ3‹uœÓêB¡qçФ۟&ëE:6U®õ*ÂEZá¦_1ᕳ‹n æÅhƒÎØAi,8GÇÔBJˆALÅtäâÏ@ŒàÊjÜc`J¡_*9Ç-$MFSe­7ìÝÍlr8ƒŽUxîF¡3w¨ÀWåöû»ŸŒ ¸ßßSúȵI•9œ-eÃqñ¨0ˆª°3nõZÜq±ÎœíªðßøØòx‹_€ +‰LT"놂 +´$TTÞY£%ó˜û“h>(hûbaj뺻"üœ}¡ó<Ú¹á/—&|Œ¦Ú\àÔ¡ê š”X=ëðynÞY›IŒÑvßé…pž~[: >¡9”Ÿ« vx—Ëðcä:_¢OüüÆ?S$\¦ Å=¡bcÀÓìgXNºNµ Í µ ±Áà»ß‘*2t)2 =xKŸ¼MÄe×u-¥pr>˜Þ0Q—k%ÂiOÁ©¼¹Jy]õEæQÖ`ž"ØX bËð[µÿ)ÂÊ6FÛv&aë ‰ÖXÛì‚˽»D°4Õè´M$<íçb3’ýhFË+(C¥.]­“¬ªJšÑ s±õ©uH+t•:¯¦7:ÿîSì,Üì®[]ý¯O–ȸâ§KhݳÐÚU7•æ<Å\³±/âqŽòFJ¬ztãi(.–µût4ÝõõÕ›]6í¶þÖ_ß~¸½ÍÒ4»¹¹ Þ¾€f(߇°LY‘àåSN>Q³JtZ¸ÁSnÀC4Œx¥¤t.ìà×!./tùÃœZ p­›£­—­1skþÁ;\P^a¢ Õ¡—µÖ™1ß&ý•ì¹B ,!w]Ëã§"s¤\½¡ÕP¾æ“\šèÁRxW\6¼Øô1Ÿ÷Æ'âPêE™ç]áRsÇË‹MœÐãÀz:×ÀƬ夽;fÖ6{ÂßêRšÓ%"´;ûmÐØö ±jÚLà»×8H7é  ‹G§^€ HëlÇK6Võco¨*©R7°ž³äýzdðf,ç'ÓìÄ w‘€cIÿ±æ•¡Á:ĵýA©ÀHX†Ïx€ÍÛ€rhᨺ‰[Èl,4åÂYCWã\,}§”Eк4êjÖF‘š I¢ˆØ[|í|zÈ€/´³½Æ$×ó¤dÚC/Nm +³wýÏгLna³Ôq£ˆº+ÎÓ6ÌôýhWéÁb3N½£,ˆFz3 (ØÀ€rh¯œW°à4!²´Ï9|àªø–_†Dƒõ3Т‘ˆˆŒŽâ¶ Kñ4«sì`p€€JGõS6ý ’6 ?¦ªÀÆ©¯’ÝF’#zçWÔ‘:0;÷åêö°1Æns Z¢Fš–Z=Mÿ½_D$«²JT·l€‰¬b.±¾÷‚\‘oÌî뇈òæ6jíîÞt¹¡·w4Õ"…Âf)‰ÏýíóOòî®~V˜ôëë»í/"¨ÜêOòY¹œV ‹žÔp‰üÿ3™Ö#H{î¥}AlºÃJÏáã3dD¯¯Ïø¸­-»©\ kÁW*§ïDI¥©ñr›¬Þòÿ¥ö +ý-Ž“ƒíØFaßµ’øwZs»«ßé¸eBëîYÆÅeˆî=ôº¼üïÕ…S%õœù¢m2üfª¸þ¸å¦ =OƒR ¤ë‡G‚š¾‚ ¤¯Hî{!Q5´D†C³|Wç8…LbÔ„˜©E?NU™4éU¯œ28µ&XöŽï|9øýWh†£îa°¿ª•6ÐÄ5ÿúi9!ìë=¿Û~:é’f¾‹íÝ׆t~ý#œÖKb *.œ^oáû.ñ¦6¤•†DË=Â,‡Æ´=Ê[[©© /ûF‰Å Iì…õ‡ÊÀ;êöñ¶ñ€e+\à #­Mmg!Îd‚°2þí¶÷‡ã—(‡ã©s2^ŽÆ’Ö½ý#ŒîóH}^Ý `É KGî·»î t€ÂÒó‡.`íohåÔ 5¤-IÚê\·g8µàOqk_·!O÷ûÇúuÉ­¹€£•M‰ñóžjòî¦-Ó+½~|ºÝ5«¨›év.ø© åõ­¦¤Mf7ÓéSVÌÊúðþVx_o9ª#û‡n„W>˸ké¿ëA¢—ïªÆ’72ëà+´‹,þ>èa‰ „­Dj‰ð¨_èÑm;gáÕö_ûêqkCük›<Žãbý8’tÁ纂¼ÜiK…-£3îñ÷ïƒÂÛ¹æiCÅ!ú€/áõÇ L;²›õM//š!!ls¤`†l2x¶ø&¿ÊçV> D&ÔÝÏ‚8- i¬yøfæMP£jòáøÏ«wÝÂlGX!$s °éÌï.Wï~¸ß^í®ø㟺wß¿×ÂÉï©ø¯+ß}ßõ2à7¼’¼NªäÎé |Œ®»zà=ø¯t6°0Mw¿ú€Óšm ÃSñ¦s.ªè³?yc†èˆ6tÎâÆâÒ°1¨PºMQT,ÛXļÿ@"æÃû¿­\÷{×’2‘l0^Eíp”ÅHh”.¾4„ÁLψ*ùHgXÉÃØ“³”?M -EŨí’i¾-¥u¢€ke\LË÷¥U1‡ì™2FÞè„,X•m9˜±r­5Pb9 }¥31w_v«»O5D¢­uÒ+“` YK{‡$w‹»é¿ ¸'(ãäãjµÉØîû×FCošÃÎú¤i]ýŽ4–Ë®ÑYý‰rŸ<êºAó!7£<ãÀI°ÎÉ—ÛY×P{z”*ØXŽX_䎱ib}z;ëËÑLœ«í³ÈG£b*‰AÆÅdªõãÂy•ù'ÚZûørÂó±?3ëoOA=U²7¯¼--„“Ë {!Ç—Àße«P¾ƒkÊ×°ŸW)ò"Ç2qXP|È°¸k¦Øo^ƒáGçcg³V9lj7àexã•5åEop’‰uKë`ÆIŒä°áŒ—_b¤ö>DѧëbÌÏwuœÔW-¬0ÆS7êj×Ô•kë*t£#OD¤#œ“SXB¢ »Bà¬exp’õÏÓtBc=žzëñý á¼lŸºÒèÀècìÿ_F|œ‘åõ Â…5 ðe‚m]`¨*¯ÞàòºXèÁ ‰gƒ‘ˆXÄaTI/á.*L™-[…q$¶¸›½%£¢w'¥¡Û££LÇØ`a²Èˆ ¨ÈFXí]d¶döEo`Ía±Œt2ΩÇ,Ì50<]‚ÈÓ¡,n›ƒ!xÉ“¹ËáY*mƒž•+IŠ¹˜6NQH U¸¸1dJ*8¿¤Í»7QDcAÔ´Á·÷Îʃ)z´ÆâPàèš2g]ªW­­F–ÃSµ=õ¿²‰¶ßYëmk~jÁ¿ŒÀ?žÀ[çeû,òøajÙ ]þXÙäW”ÍvOäÝåÊÉ'p×¹Y¿È_Þå’† +Ói,B6 ²€®VÐpÏÆ—o Bj°ª8B¸—(F7s”*¼Ï*¸LîÄñIˆZ-ñbü‚?ó•µlC±º¼E'¹q'ß_…3>/f"68ªqA gsL‚çQõ P­w_%Á]7:r$Áó 0|^¶Käÿp)]yµ§®Ü_}Z½»4ÿôx¸¼Y™ÚaªÆÓ%¸hxm0]>¬Ö7÷wŸ/.]m hÈ+¼½^ý´¾ºØ¸õãEXß?~¹Ø„õþâçË¿°Ñ°`ƒ·NâW“×w¿àíoŸd™V&g}¹È8Ê­Ÿ¶Oø¿ã%ß]ÖÖÇh~;m~M¦¢,“Sà† :Á`c½I'}lQÝ$à‰V z²i$wáØPiǹ ƃénœòž~q@R‰=d#Þ†BˆgùÙAÓÃO}¬A4`ñ­aayµ2*"PX‘i¤ŽæŽÃR:§¢õt´ÕʪTh¯ÆF†Ä«4YÐç‰éõNEÄÄÐÒ(†ôþ´¾ß]lòú¦OL°æ¥Ä´y Ù9(V¦ aQ…”`º—Þˉ@­(ãIMƒˆ’kò‹“åÈw”„Ä_"„ÕøZ2ƒ|ÀL%ã„]€tpú Ò©‰UÀmP‰ø™ÃŠ4¤Lgª~Î…Ež(—1ËÉpŠŽ1Qú|äÄšdŽNfO)MH¼ãV¶1/°f.ʯsÄÖ +k2ÅRú­cCŠ'X`áÀñAôð¦b6+T9U„ZDkhŠ‚uÂ…Ãà»aŠçG1DI®Í)FT…Ø°¯¨p…lÇíá¬b-£œ]Ž„ƒ.°Ùs$’‰­GÖ +E;OóÞ<Ôš6Q]¤Ïø¶$t 3ì‡q@H¤„ëƒÒ„öKŒ‰²Øy–[÷üTF‘ÊÐÈìbxWË-,F™Dö¥—u ¼€Ëâ…ں̃¡ÑÁ5kA¿ÉkÛ†uÑîÊjÁ”n†é‰ìGÿSŸ7 5"U7´÷„1%IWP·IAPKæfö–ø‚$yêZb+øP¤!¢|8‘Òj¹£‚–ÐÏx*?ÛFñ¢¬"Z)Í›%SÀ!àE5‹‘LFÅÙF§! ¤#5Ñs¾½Š›Š…/4aªáýD÷>æjª':Ì¡½‘xñ˜‹‰R(¡}etcDhD²+ÍŒÙ^£T#Íp@#C’vY¸g·8n~$Ü\«ÛZ½<ßb;¾õª-.ùÏÈþ™ÞÏTÀˆwâÌô“¦•8žVìxZ±õ¶5?~ÍÀu®¶Ï"Ÿ(#KѸý‘¢)¯)3ªÓoN­›rJäÏÊv‰üD‡·eñGœ‡fÓ¡l…JS ž +‡ F†(Æ ÁeÛŠ‚Eœ›ñ2ÕLò¤ã )òœ?³¼%4‘'à>¨ÌŠ8”š%žs"ˆ™îJø/õeÌÛF Cáý~…F{H#òN:i‘¥HŠ¶> Câ$FR£°Ûÿ_¾GÙpí­2ÝI¦qz%~Ý4ª#'9Ü«;ÿÑ]ùý4@´@Å u0!‹%²\|úÇ„œƒ²Y§–Ø´£„À›AS_¸ Aæ¬÷;}/žŽìšµWÃÒì…:Žô]ÞÂ{2¥dM êì97ŠÛäËéÞ¡Ž¨ãl<î[ã‡jÈYa϶<¢šCc‹ªßàh!}S䪵m±Ðœfr$ ÎaN±ØªÌl,¸äÝàI‡æ(LwEX.îyI(%gjÃhõ´Xú?º—gº­.la¢'Â÷0Õx^“ ‰Hü˜¹“¶Ó£ñ-¢Y…ˆ_™¹h ^§t ÌIL^üÿ)ƒxå&Õí‘ +@sÅ·ä üj:`Ýkw9ɽù¦0=u‚lVÖ\”(¡=öÓ}à:K½å«BÀô£û>û<Òìa·[ožÃCØÎEf«Çð¶Þ¼†ß?Ãzc“77_¯Â¯ù…èÌ_Íï¦ÝõÔ]ß.’ÊeÛÖbX¾]u߇Qp£Fì«1†Äp{ v&‹{5´IÍ:pœûʱ]£Rà«Ç´Y„ígCÆ„ÉäÀf Ç…UœÏ`O±—}^= µÒ®‘è+'‹þÒý`DŒ endstream endobj 168 0 obj <>stream + + + + + application/pdf + + + RBPassUp + + + + + Adobe Illustrator CS3 + 2008-04-28T06:36:52-04:00 + 2008-07-01T14:52:53-04:00 + 2008-07-01T14:52:53-04:00 + + + + 256 + 232 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgA6AEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7 FXYq7FXYq7FXYq7FWCfml/vd5E/8Ce1/6g7vFWd4q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq 7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FUq8z6rc6Zo0txaIkl9K8NrZJJXgbi6lSCIvTfgr yBmp+yDiqXJ+Xvl+eNH1lX1rUAecl/eOzP6m/wAUSKVjgG54rEqgfPfFW9JF5ovmAaFJcS3el3sE l1pcty7SzQNAyLNbvK5Z5VIlV4y5LbMCSAMVZLirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs VdirsVdirsVdirsVdirsVdirsVdirTMqKWYhVUVZjsAB3OKsePn/AMr+mZo5rie0H/H9b2V5PaUH 7QuYoXgK/wCVzpirEvzU/Mzy1Z6LDbafdR6hqkklrfWX1dlkjT0JkuI3kdagK/ClBuVPhvlc8oi7 DSdm5M4sbR7z1ZFpH5oeUb7TILy6uxpU00Sy/U74GGQ17RcwBMK9DFyrlgN8nByQMJGMuYU/LWtW nm3zFPrdi5/RmiCfS4EdSkr3cjRvcPJE1Hi9NY0RA4DHk9RTjVYsxxV2KuxV2KuxV2KuxV2KuxV2 KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxVjvnK3S+Oi6ROf9B1TUBBfxf79hitbi69 I/5LvbqHHdajvirIVVUUKoCqooqjYADsMVebH8tPKVz+aN9eTWgkjFnb37WYoIBcyyzRs7oBT4/R 5cehbkTWuQljBNlzMOuyY8ZhE7F6UAAAAKAbADJuG8+1fT7/AMrfmJaeYtMt5bjR/M7x6f5itYEa QxXSilpfBFrtT93KewoxxV6DirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir sVdirsVdirsVdirEfzT1TTdK8ozX91JIl7DLEdEFuA1w+o8v9GjhQg8y7fCy90LA7VxVV0/VPzGf Trf67oVguovEhmKX7rAsjKCwI9CRxxPUDl8z1xVKvy61i8fzH5m0jzCFTzdDOs8zIf3M2nMKWb2o O6xICyspqQ5Yk1bFWfYq7FUg1e08xwXzajpk/rxkAPYP0ov8v+YOFVXR/NNjfv8AV5QbS+GzW8u1 T4KTSvy640qdYFdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirmZVU sxAUCpJ2AAxVhFp5V1jWPP0/mTzJGi2GjMbfyppyuJFHJR6t/JTb1ZPsoD9gDx3xVm+KsM/MDytq 13daZ5n8tIh80aHJ+5idhGl3ZynjcWkrnYBl+JCfssMVZkrgkKaB6AlK1IrireKuxVLdY8vabqiV nTjOB8Fwmzjwr4j2OKpKL3zB5ePC+U6jpg2W5X+8Qe9f+NvvwoZFp2qWOowetaSiRf2l6Mp8GHUY EorFXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqxrzRez3dxFoFif39zQ3 Tj9iPrQ08Rufb54QhP7K0itLSK1ir6cKhFJ3Jp3OBKtirsVY75h0m9iuhrelM31yIATQbkSINqAf Lt/HCqZaJrVrqtoJoTxkWgmhPVG/p4HAqYYq07oiM7sFRQSzE0AA3JJOKqVneWV/aRXdnPHdWdwg eG4hZZIpEYbMrqSrA+IxVI9R8pIJvrujymwvRvRdo29qDp+r2w2qyz81TWswstehNrcdFuAP3b++ 1fvG3yxpDJEdHQOjBkYVVlNQQe4IwJbxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku xVA61qsOl6fJdSULD4YkP7TnoP64ql3lTSpYYZNTvPiv7743J6qh3A9q9T9GEqn+BXYq7FXYqw7z HoOqQagdT0ePipCtNHEx5M6tyqU2qCQNhhQynTr2O+sorqPYSD4lPVWGzKfcHbAlLPM+vabY2slh I7y6jeQyC1sbeOSe4cFSvL04ldggJoXaijucVY9+VupQ6X5U8veVtVjm07XLazS3+rXUUkSyvCnx iCVh6UtAKkIxIG5FMVZ5iqhe2NpewGC6iWWM9m7e4PUH5Yqxt9H1zQnM2jSG6sq1exk3I8ePj9G/ zwoTTR/M+nakfSqbe8GzW0mzVHXif2v1+2CkpvirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs VdiriQBU7AdTirEogfMmvGY/FpGnGkY7SSf20+754UMtwJdirsVdirsVdiq1Y0QsVUKXPJqClTSl T92Kse8nRwztq+rORJf3eoXVvPJsSsVlO9tbxDwURxh6eLlv2sVRPnSytLvyvqQuWEQgge5huf2o JoFMkU6Hs0bqGGKphpNzPdaVZXVwnpzzwRSyx9OLugZl38CcVRWKuxVKtY8t6dqg5uvo3Q+zcx7N UdK/zYqlK6pr2gMItVQ3un1ol4m7qP8AKr/xt9+FDI7HUbK/gE1pKsqd6dQfBh1B+eBKIxV2KuxV 2KuxV2KuxV2KuxV2KuxV2KuxV2KuxVjvmvUp29LRbHe9vvhen7EZ61+f6q4Qqb6VpsGnWMVpD9mM fE3dmP2mPzwKi8VdirsVS3V/MmhaQ8Ueo3scE84Jgt93mkAIBKRIGkYCu5C7Yqu0nzDour+oNOvI 7iSEgTwg8ZYyenqRtR0r/lDFWL+bvzg8oeXS8Am/SWoLsbS1IYKf+LJPsL8tz7ZVLMA7LS9l5cu9 cMe8vM5vNX5rfmNO1to0L2OlElX+rkxRBTtSW5NC+3VV6/y5SZSnydwNNpdILmbl5/oH497PPI/5 e+b/ACXYuun6pbX5uX9W80u5WSK358QvKG4QSSI9FAJMTAinwilcyMcSBRdDrtRHNk4oilv5k3vn a38vjUdQs7T/AA9Z3EMnmDTLKSa6nn04N+/YSvHbUVBRnjCfEtQWpUGbhvRbS7try1hu7WRZra4j WWCZDVXjcBlYHwINcVUrbVbG5v7uwhkLXdiIzcxlHXiJgShDMArV4H7JOASBNM5Y5CIkeR5fBbqO safpxiF07B5iRFHHHJM5AIDNwiV24qWHJqUFRXAZAJx4pT5fq+9GZJraZVZSrAMpFCDuCMVY5feU 2hnN7ocxsrobmGv7pvanb5dMNq3YebDHP9S1uE2V2NhIR+6b3rvT59PfGkMiV0YAqwYEAgg12PQ4 Et4qlv8AiHTv8S/4dq/6S+p/pCnH4PQ9X0ftfzc+2KplirsVdirsVdirsVdirsVdirsVQuqajBp1 jLdzH4Yx8K92Y9FHzxVJvKmnTyGXW77e8vd4wf2Iz0p8/wBWEqyPArsVdirsVY15CtIpNFi8wTUl 1TXo0vru5O7BJh6kNupPSOBHCKo26n7RJKqVfm/5bttT8p3d7Gfq+qWaD6vdqSjGN5FEkDlaFo5B +yduVDTbBKNim7T5vDmJ9xSryl+QvlrS/TudZc6veLQmNhwtlP8Axj6v/sjQ/wAuUxwgc3Z6ntnJ PaHpH2vTIYYYIkhhjWKKMBY40AVVA6AAbAZeA6ckk2V+KFssUUsTxSoskUilZI2AZWVhQgg7EEYq x/yL5Tfypor6Kl413p8NzM+lo60a3tJG5pbFizGT0yWo221BTbFWHS+arm113U/QkW0l1XVLi2a/ mIijji023jiSNHkjlT1JJOZA4t3+GpGYxnRPv+53Y0wlCN78MAa/rE+Y2+SF8x/pk3OoTzaxcfW4 NP03Snnjhji5S6lL/pFEMXqRjgFcgUcHuOmCV77s8HBUQIijKUuf80bdd+7uerWEPoWUEQkkmCIA skqqjkU25KqxgGnbiMyQNnSTNyJV8LB2Koa/06yv4DDdxLKnavUHxU9RirFrHQPMWi35ubPjdWpq rW4k+Ix1JA+IKOQrtTChlUuoWkFi99dSC1to0Mk0lwRGI1HUuWoBTAl542txj8zV80LZX7+XjoZs TqC2V0VEv1tZlIT0/UMZQk8wvHavTfCr0WzvLS9tIbuzmS4tZ0EkE8TBkdGFQysNiDgVWxV2KuxV 2KuxV2KuxV2KuJAFTsB1OKsLF4nmrWoYB+7020HqvE5AaRunQfd8vnhQzQAAAAUA6DAl2KuxVZJN DEAZXVAxCqWIFWPQCvfFV+KsAbXbnyl5qtvKdlavrdvqq3GoWVlbsi3VjEr8pQ/qmOJrcySH0i0i kH4ByAFFWO/m35w862UOmTNov1LRFu455lndJnmkt3WWKKf0GeONCy8qB2LEdQAQ1WWZjydl2boo Z5ESNV06s10X8ytC1fy3+mrSK5ndKJc6dawyXNxHLSvArGp2NPhc0U+I6YRkBFteXs+cMnAaHmTQ /Hkv0Tztfaxpq3lr5evviZ1Ks9rGFKsRRvVmjkB40J+D7+uCOQkbBGbSRxyozj9v6v0o3635zmjr Hptjas3QzXcsjL80jgCn6JMlcu5r4cIP1SPw/b+htrDzfMoEmr2tuOrfVrJuY9g808q/TwxqXeon iH8JPvl+oD71WyubOwnayvNc+uXjFaQ3T2qSqWVmAVIY4T8Sqx3B2GIIHMsZxMhYhQ8r/TanqHnP yxZadNfvqVvLBC6xP6Mscjeo/wBmMAN9o9flv0xOQAXaYaTJKQjwmz5NabceXtLYQnVopr3USLgz XE0Pr3P7sKrgJ6asPSjFOK0oK+OIIHVOSOSe/CajtsDQ/BbsvOfli8s5b2PUreO0hme3aeWWNF5o xWoJbo3E8T3G42xGQFE9JkiQOE3V8k6BBAINQdwRk3HdirsVdirG/M8Ud5r3l3Tbk1sZZ5rqSI/Z lltI+cEbeIVm9Wnig8MVZJirHNAhjsvNGv6fbH/QmFrqHpD7MVzd+qs6L4cvQWUj+Zye+KsjxV2K uxV2KuxV2KuxViuu69qdp+YXlXRoJAun6pb6pLexlVJZrVbcxEMRyWnqt064qyHU4rmWxmhtqCaZ fTVj0XnsW/2INcVUNG0Ox0q3EdutZCP3s5+0x/gPbFUwxVBajrOmactbudY2pUR9XPyUb4qkZ8xa 7qp4aJZGOE7fXJ6U+gfZ/XhQq2vk/wBWZbnWLuS9uBuEDFUX5d/upjaWSYFYX+X3lnV7e81bzR5k iEXmTXJiGtw6yraWMJK21qjrVT8PxuV6sfbFWWahp9lqNlNY30K3FpcKUmhcVVlP+ex7YCLZwnKE hKJoh5D5N/K7UdO89avLoutz2Gj6e4tmniSN5pXliWUwfvVkiPpCRauyNvsByrxrhi4TbstZ2mc+ MRMRfU/qZ5qFr5l0C1fUrPUp9atLVTJeaZepAZWiX4pGtpoY4WEoWpCyclb7Pw9Ra6pk1tcwXVtF c27iW3nRZIZF6MjjkrD5g4qqYqwvWvIc9+fMN1GLZb/VHt1s3YH4YIAnqRu4Xkvr/vFfiD8J75TL Fd+bscOtEeAb8Mbv3n9Wzr3yZrF3eHUfVtobq5v7K4uYKyPClvp6P6SLRY2kb1WDmoUdtqVxOM8/ NYauERw70IyHncufu296lZeTvNMWrWl9Pd2cn1e7v7yTaQs8lyGSBzUDdIW9Pj0QDbl2Axyu2U9X iMTECW4iPlz+3fz8kJY/l7r0X6Mhu5bS7s7fTzY3EJkuERZJJfUmk4IB64lrR1ZkB2rtgGI7M566 B4iLBMr6d23ur4vQ1VVUKoAUCgA2AAzIdS3irsVdirxj82/zKZ9Us/L/AJZBn1iyvElN3EvNo7lK oIYhvyYh2STalCV7nKJ5qNB3ej7KE8ZnkPCK2/Wz2xu/zNl0yEXOn6Rb37opln+tXDKjkVP+jCE1 49OIuf8AZZcHTTABIBsPLtB89eZfJHn3UbDzkxlg1OcS3lyFqAxUJHcRcQOUYRVTj2A8VpmP4pEt 3f8A8m48unEsW8h9vke7y/Be8wzRTRJNC4kikUPHIpqrKwqCCOoIzJefIINFdih2KuxV2KuxVLfM GtrpFisywNd3c8iW1jZRkK008n2E5HZRsWdj9lQT2xVjt15M8z3+sad5iu9Zt4da0uO4Sxt4rUvZ xrdhBKjhpVmlr6S/FzT2C9MVTzy/rVzetdWOowLa6xpzIt5DGxeJlkBMU8LMFJjkANKioYMp6VxV Mru6S2hMjI8h/ZjiUu7HwAGKsTlbznqWoVVZdOs5P3dRT4ErXkdw3L3GFCbad5P0m0b1Zgby5O5l n+IV9l6ffXG0p4AAAAKAdBgV2KuxV2KuxVjGh3cOk69qeh3rCGW+upL/AEmRyFFzHOoeVEPeSKUO GXrw4t3xVG+afM9noNiGZkk1K6YQaVYcgJLm5c8Y40WoNCxHJuijc7Yqi/L+mNpWg6bpbOJGsLWC 1Mg2DGGNU5fTxxVH4q7FXYq7FXYq4kKCzGgG5J6AYqpi5tyKiVCD0IYYqkWvXWo32qWvl/TLlrIz wvd6jqEYDSRWysI1SHkGVZZnbZiDxVW2rTFVK68gaXJayR2t9qdlduvEX0eo3jy1pSr+rLIkn+zU 07UxKQaNsR/KH8trHRrnUb/USLvXbG7lsw5UhIgqq6yIrVPKaORXrXZWp41qhiANuy1fac80BHkO vn+x6plrrGD/AJveVtI1ryldXV2Cl7p0bS2E6Dk5kNAIQKiolai08aHK54+JzdDrZaeVjeJ5hryd +Wn6K0C0stV1TULm4iWrRW97c2tvCzfE0cS2zwllDHq9a9dumSjGhTRqM5yzM5cymlhJqeia7b6P eXUmoaXqKSfoy7uKG4inhHN7aVwF9UPFyeNiOQ4MGJ2OSaWS4q7FXYq7FWI+ftb0nRbvy3qWpXMc EFvqR5h2Aok1rPbmUDwjaZeTdFWuAyAZxxSkCQLA5stR0dFdGDIwBVgagg7ggjCwY1odzHqfm3WN Uszz0+C3t9MW4XdJriCSaSbiQaMsPrBK/wA3MdsVZNirsVdirsVdirsVdirsVec2+hy+dPP1/qev 2BPlzy2ZNN0XTryKsdxdOB9avWikFHULSOIkEEVYYqmfmX8q/K2p+X7zT9OsbfTNQkCSWWqQRKs8 NxA3O3k9UDmQjgbV6bYqjPy780XnmLy4s2pQG11uwmk0/WrYigS8tiFl4dij1DqR2bFWT4q7FWnd I1LuwVR1ZjQD6TiqUXnm3QLWoa6Erj9mEF/xHw/jjSoD/FWrXu2k6TI6n7M03wr/AAX/AIbDSGm0 nzdqKlb6/S0hcENDAKmh6g0p/wASxVfonkmxsj6t7S7uAfhBH7tfD4T1PzxtaUvM92nl3VIPNM+2 jR2zWWssBUwRcxJBcBRuUjbmrhd6MD+ycCVa8/MjyLbWL3n6bs7hERnEVrMlxM4UVISKIs7EDrQb d8Vd5Bla+0Ntfd1ZvMMv6TVUYMqRSRpHbx1XYslvFGHp+3XFWSYqlfmfS59V0C9sbZ1ju5E5Wrv9 gTxsJIi9P2fUQcvbFUv0H8wfK+rWzk39vZ39szRajp080azW80R4yo4JFQjAjmPhPY4qgLLzJpXm vzjDbaPdxXdj5aBu724iYMGurqGSC3SMj7SCGSVmcbV4gV+KirM8VdiqRX/mK9bVJNJ0SxF/fW6q 17NNIbe1t+a8kSSUJKzSMtGCIh2oWKgiqqUeZPOnmXyvpVxqGr6Ilzbxp+7udOnaVFkYhVE8cscT xpU/bXn70wSNDZtwQE5iJPCD1eS6P5b8y+fry583+ZfWfR7UF2jiHF5o4qsYbRCQAqiu9dz4tU5i AGW5eny58emAw464j+Lk9b8v+XPy81fSVk0Nnl0lgFNnb3l3HbdN1ktRKsYJ/aV0375lRkCNnmc+ GeOVTFFKfLQHkbz3P5Scen5a8xNLqHlnskF19u8sV7KDX1Y16dQMk0vScVdirsVdirsVdirsVdir sVdiqAvNd0ezqLi7jVh1QHk3/ArU4qlL+dY5mMel2M9647gcV+ewY/eBhpC3/neb/wD3zpsR+TPT /h9/uxVcnkqOZhJql9PeuOxPFfluWP3EY2qbWeg6PZ0+r2kasOjkcm/4JqnAlH4q7FXYq8380Ry+ ePO0PlAI3+GdBMN/5mc/Yubg/vLOx/ylBHqy9ug2OKvRhFGGZgg5PQO1BVgOlfHFWBeSNN1Hyl5q 1LykltK/la6V9U8vXSozQ2vN/wDSbFnFQnGR/UiB7E98VZ/irG/zC1XX9O8szDy9aPd65fSR2On8 VLRwy3DcBcTEA8I4gSxJ26Dviq7yv5F0LQfLen6J9XjvFshze4uI1d5LhzzlnYsD8cj/ABYqkPn3 S9Q0bzDpfnzQ7WW6ntAuna/p9sjPJc6dM4oyRoCXktpDzUAVpUYq9AxV2Ksd8mPCq6zakcdQg1W8 a+U/aPryma2Y+INq8QB9qdsVRPnKWwi8p6w1+oe0a0mjli6mT1EKCNR3ZywVR3JpiqL0G0mstD0+ zmVVmt7aGKVUpxDpGFalNqVGNJJJNnmkMdhB5MdZbFOHliXit9AD/vJJQKLla/7regEo7H4/58qr g9zmmZ1G0v7zp5+Xv7vl3Mnlt7WYxSSxpI0DepC7qGKNxK8lJ+yeLEVHbLXBY3e+fPLdxpt69hrC W7244tefV5Zkjf1DHQLxUSNVTRQa036ZUcorYubDRZBIcUbvpYCYXXm3QYL5NOa5f61LKbdDFDNI glVObqZVR4gyJ8TBm+EbnJGY5NUdNMx4q258x93NIfLv5gWI8pPf6pdPdX1paHULtUhPP0JpHMH9 2ix/ZAU06U+Km+Qhl9O/Nys+hl4vDEVEmhv16+f42Zdpl79e0+3uzE8DTIGaGVXR0b9pSrqjbHvT frlsTYcDJDhkRdonCwdiqhdX9laLyuZ44R1HNgtfkDiqTXPnfR429O2El5KdlWJTQn5tT8BhpVD9 KecL/wD3j09LKI/7suD8Q+g8f+I4od/hbV7zfVdWkdT9qGH4U/gv/C42qPs/KWgWtCLYSuP25jz/ AAPw/hgtKboiRqERQqjoqigH0DFW8VdirsVdirsVdiqF1HVLHToRNdyCNGIVe5JPgBiqJVlZQykF WFQR0IOKt4q7FXYq7FXYqgtU1zRdJjSTVdQttPjkPGN7qaOFWPgpkK1O+Ksb81fmn5U0XQW1O1vr fVJZGaKzgtJklEkygVBaMsFC1HI9vnTIZJ8IczRaOWedDl1Lzv8ALDQ/PHmjX7rzjfardaZb3AMf 1i34Bp+J+GNI5kliMUW/2kPgN6kVYTIm+jse1Y4McRjiPWPxuyXz1BqXljVtA806pqVzrflqxuRD q1veCALaGeiQagqW0Nuh9CQ0YuGIDVWmZDonqCsGAZSCpFQR0IxVqSNJEaORQ8bgq6MKgg7EEHFI NJRoOm32kyzaaD6ujRgPpsjNV4VJobZq7sqf7rb+X4T9kVhEEbdG/NkjMCX8fXz8/wBfzS//AAa0 Xlux0hLxitpcreXkiRKWuWWRpyvF2KqWmIb4uQ2yPh+mm383eQzrmKG/Lp9yReXtJvNRu9S9axls otSiurmKWWO5R9PubsBJYwk4SOV3DM3qRdN16EEwjGyfNyc+UQEaN8JA6eoDly3HuKb6v+X6X0uo G3vRZ297a2dmtssKskcdnMZafaFQ6krTale+Tlitoxa7hAsWQSefeGWRqyRqjOZGUAGRqcmIHU8Q q1PsMtcElILzXtea6lttO0pnMTlBcSkiM0NKj7I/4bChR/RHm6+3vdSW0jP+67cfF8qrx/4kcUK9 r5I0WJudwJLuU7s0rGhPyWn442lOrays7VeNtBHCvcRqF++mBVbFXYq7FXYq7FXYq7FXYq7FUv1r WrTSrUzTHlI20MIPxO39PE4qk+laJd6ldjV9bX4utrZn7KL1HIfw+/ChlGBLsVdirsVdirsVYv5I sIrqxi803iibWNaiW59d/iaG1m/eQW0VfsJHGy1C/aarHc4qlf5q+S/L2qaWutXdqDd6bJDLLLH8 Ek1sJFE0DsNyDGTw/lbptUESiJbFuwaieKXFA0Wb2trbWltFbW0Sw28KhIokAVVVRQAAYgU1ykZG zzavbK0vrSayvYUubS5Rori3lUOjo4oysp2IIwsVSOOOKNY41CRoAqIoAVVAoAAOgGKrsVSrzRrj aFoV1qi2zXZtwtLdWCFizBQORB6luwORnLhFt+mw+JMRurSO+8+39pa6lNJpAEmj+mdRhNyOSidv 3SRlY3V5DGQ5WoAqByOVnKRe3JyYaKMjEcX18tu7n15Naf5x1Rp757u3haKbUZNN0eCKU8me3UiV nYxiiAxyOz12AoFPdGQrPSxoUT9PFLbv5defLb7UI/n/AFW4g0e6gtra2tbk311eO1w0iiz04sru rCCvFyVYHjXt3qB4p2bBoogyBJJHCBt1l8WQeW/Md5rTSynTXtLD045bW6dmrJ6lSUKMiUZQASUL Lv8AarXLIT4ujiajAMe3Fcuo/H7D5J7k3GdirsVdirsVdirsVdirsVdirsVdiqWa7rttpNuGcepc SbQW4PxMf4DFUu0bQbm5uv0xrXx3jGsFufsxAdNvEdh2+eFWSYFSaLzh5dkuLiBbo8rWCS6lkaKV YvQhYLJIkrII5FVjQ8GOQ8QOQdLkABrma6cz5cwm0M0U8Mc0Tc4pVDxuOhVhUH7smC0EEGivxQ7F XYq7FXn+m+Y38t+Z7nyZbWc2s20EB1G2FiEMtlBPMQtvcCV40IDE+lxbnw6rReRVU/MPme71DzL5 e8v6ppdxo+h6rcMwurowFrm4s+NxDa8YpJPSWRl5Vf4n4lONDXCr0TArsVdirsVQ9/p1nqEAt7yP 1YRJHLwJYAvE4kQniRWjqDQ7YCLZwyGJsc0HL5Z0SXUZNRktuV1K0ck1Xk9N3gFIneHl6TMlBxYr UUHhgMBdsxqJiPCDt+vnvzUB5J8rBYl/R6EQzyXSVZz+9l5eoWJb4lb1GqrVXfpg8OPcz/OZf53S lkfkXylHFDCunRmOCGW2jVmdx6U9DIDyY8i1Bud/A4PCj3JOtykk8XM38kw0nRNN0mD0LGNkSiry kkkmfigoi+pKzvxUfZFaDtkoxA5NWXNKZuX6vuR2SanYq7FXYq7FXYq7FWLfmB58tvJun217cWj3 a3M3ohI2CEHiWrUg+GV5J8Lm6LRHUSIBqgnui6kmqaPYamiGJL63iuVjJqVEyBwpI8OWTBsW42XH wTMe4kfJGYWt2KpTr3mCHS41RF9e+m2gt16knappvSv34qhNC8vzC4/S2rn1tSkPJUO6xeG3So/D CrIcCpT5tvJLLyvq15FM0EtvaTSxSpx5B0QlacgwqTt0yMzsW/Sw4ssQRdkPOori90GLVIre4ddU 0nTtL0iwkeEScZZz6jiioENDMnWpopO5qcxrMb7wA7YxjlMSR6ZSnI7939ibWGr6/d+ZrpLHV5Lp 4NThsptOKQ+mtnBGGuZ5U4loiXdlUhl5MAKHoJiRvn1aJ4sccY4o1cSb35nkB3vRcyHUuxV2KuxV i/kPyhdaDBqF5qlyt95h1q6e71W+QEIxBKwRRht1jhioqj54qiPPflGHzX5bn0ozfVLsMlzpt+o5 PbXcDB4J16bqw333FR3xVPLZJ0t4kuJBLOqKJZVXgruB8TBKtxBO9KmmKqmKuxV2KuxV2KuxV2Ku xV2KuxV2KuxV2KuxV2KvIfz3lOtWFrpGjQz6pqNjc+pe29jBLcmFWianqmJXCE12VjXKc0CeTtuy dTjxTJmasM7/AC9v7S58oaVbwyBrmwtLe0vrc1WWCeKFVeKWNqMjA9mGWxFAOv1MxLLKQ5GR+9ke FpSPzXq89lZpb2fI6hdHjCqCrAA1ZqCvywhVDyxocqFtU1NHbVJWJrLQ8VPQqATT+HTEqyPArsVQ OqaTDqSxRXEsgtkcPLbLw9ObiwZVl5KzcQyg0UivQ1G2RlG2zHlMNxz+5R1fWJLK/wBKsY4hK+qT vByD8WjCQvM0gBVgwAjpuRuRjKVEDvZ4sXFGUv5ov7aX6DokOjWclrFcTXIknluXluPTMhkncyPU xpGDVmJ6fhTGMaRmzHIbIA2rbyTHJNLsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir sVdiqUecNRudN8q6vqFqwS5tbOeWGQiqo6xkq7D+VD8TewxVF6PpFjpGnQ6fZIVghH2mPJ3YmryS Md3d2JZmO5JriqT69FHZeZtA1K3BS6vbh9Nuwv8Au63a2muFDD9oxSQB1Y/ZXnT7RxVkmKqa20Cz vOEHrOArSdWoOgqeg9sVVMVdirsVecxeX/Mj2FlPeaP6mqi6Qa7cCaAzXlsZHkkjQ8wph5LHRHdf hqvGnXH4DXJ25z4+IgS9NenY1E/r5/esn8oebra2tV0uOOKaC21aeHjKFS2ub9wYIIR/xWhZVOy9 /YvBLp5pGqxEni5EwHLmI8yfevn8h3lzz9O0eysb6+09prITKskVvZIzSSyNE5VpJX+E8WY9G69H wmI1oHM3IRlvXWXTfoE20HyzLZebJrqKw+qaXbwNb2iymGQqQVVDaujNIkToGaRJAPj3FanJRhUr ac2oEsQBNyJs8/t6X3EdGYZc692KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KqF/f2en2 M99eyrBaWsbSzzN0VEFWJp7YqkcOqedb6MXVppNrZWzjlDDqNxIlyy9jJHFFIsJP8vJiO9DtirH/ ADH+Yd9wfyvD5bnvfN98jx/odiWshbuOLXct4AqfVfiIrQOW+HipxVMfLtt+YuhaNZ6bfx2Wvvbw on1yOeS0kBUAcGWRJvUC9BJzDN+0takqoDzHoP5mXdzZ+ZLG6so9U0lnaz8uGslpLFKvGZZLp1jf 13H2JAiqn2aEMxKqM0H8w9Q8xQGPR/L9ymp2r+jq9vqTGyhs51+1C0wjmMrkfEvpRsOJBYrUYqmn +JdUsLuCHzBpsdlb3Uiw2+oWlwbu3WWQ8UjnLxW0kRdvhU8ClaAsCQCqyHFXYq7FXYq7FXYq7FXY q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FWO+fmSPy79Ym/3jtLyxub4UqPq0F5FJMz f5KIpdv8kEYqyFWV1DKQysKqw3BB7jFWO3LRzfmBp625Bns9Nujfkb8YriaD0Ef3d4XZP9RvHFWR 4q7FWO+RjGNNvoGoL2HU9QF+vRvVkupJULd6PC8bJX9griq/8wDbf4J1tJ15ia0lhhjH2nnlX04E T/LaVlCf5VMVTyASiGMTENMFAkZeham5H04qvxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K uxV2KuxV2KuxV2KuxV2KpN5w8zaX5Z8t32tan8Vraxn9wKFpnb4Y4UB6tIxCge+KsX8heSvNNp5X tl1LXr7Tby55zy6VZi0a2s1lYulrB9YguHRYUISgem22KoXThP5E/MM6fdTzXPl3ziytZX105llh 1aKMI0EkrfEVuI0DR1OzDiopir0vFXYq8x0Ian5w88a15i0jUZ9J0HT1/RNncWiwkahdQMTPPKsy SrJFEf3UZp/NxYYqq/mB5e8z2GnWvmm01S71q/8ALtwuoPpUywJbzW0ass6RwxRoPWETFo3YswYf DSuKs90bV9P1nSbTVdOlE9jfRJPbyr3RxUV8COhHY4qjMVdirsVdirsVdirsVdirsVdirsVdirsV dirsVdirsVdirsVdirsVdirsVdiqT675V0rXL3SbrUfUkGjXP121tw9IWnVSsbyp+2Y68k8DiqcY ql+u+X9H12xFjq1st1aiWOdUJZSssLiSN1ZCrKVZex9uhxVMMVWyxJLE8T1KSKVYAkGhFDuKEfRi qE0TRdL0PSbXSdKt1tNOskEVtbpUhVHuxLEk7kk1J3OKo3FUu0Dy9pGgacNO0mD6tZCSWZIAzMqt NIZHCBieK8mNFGwxVMcVdirsVdirsVdirsVdirsVdirsVQ+oalp2m2r3eo3UNnaR09S4uJFijWpo Ku5CipxVDaV5j8vawXGk6paaiYgGkFpPFPxDfZLemzUr2xVMcVdiqC0/XNI1G4vbawu4rmfTZfq9 9HGwYwy8Q3B6dDQ4qjcVdirsVdirsVSseaNBPmL/AA2Lsfpv0TdfU+L8vRFAX5ceFKsB1xVTufOH lq11ttEuL9ItTS3e8kt3DDjbxgF5WcjgFUHqWxVHaXqmnarp1vqOnXCXVjdIJLe4jNUdD0IOKoTU fNOg6bq1hpF7drDqWqMVsLYq5aUgEmhVSNgprU4qmuKuxV2KoKHXNIn1e50eG7ik1S0jSa6s1YGS OOWvBmXtWn+dcVRuKuxVD6hqWnabatd6jdQ2VqlA9xcSLFGK7CruQoxVDf4l8ufov9LfpWz/AEVW n6Q+sRfV61pT1eXDrt1xV3+JPLv6L/S/6Us/0UDQ6h68X1eteP8Ae8uHXbrirWl+ZfLmrep+itVs 7/0VDy/VbiKbgp3DN6bNQH3xVQsvOnk6+u0s7LXtOuruQlY7eG7gkkZhuQEVyxIriqc4q7FXYq7F XYq7FXYq87/P+/ktvyr1e3h/3q1MwadbrWnJ7qZEI/4DlirCvMFv5h8nebNB1u6lsNMvL61t/Kmk wRu88FtZxN6txfXMrpbc2jVf3cfHjuKnY1Kqmn/mh5wuPJmt6nYX7apNHrc8FhEUs01NdHthWWeK 34RRyyjiTRoz8NfDFU5v/PvmNdR8m29vqE8mj6nFYC+1e3tbd7g3l4ytFFfWhJa2jni6MlKEnqFx Vjlr+YfneT8t59b0q+szrmueZ/0dphitIU5RyyCCMFQW4uRE7c5Q5p9BxVFf8rR88xy63699C+nw eZrbQpL+3t1Y2FvQi5kSICR35y/u42kDCvj0xVl2ieaPNnl/8s9V82ec3muLu2W4uLayliit5BBG xW2WRI0TjJL8JevSvQbjAqT/AJe+f/MWu/mFBpl1rEdxaHRI7/UbOOKFIE1C4k5Lb2rhfWZYYqhu UjHkp6bgKo6+8w+eL38yfMOl2GsxWHl7y3Z2d3e8bJJpS0pMzQgu32pIEPx9B2Wu+KsQ/wCVxee1 8vw+dWmto7DUIXjsNBm9Ah7ie69C3aMx1uPSgXeZ5GHJvhVQKHCqf/llMNV/ODzbqU+q/pafS9Ps tKhumWKP1AxNxc+gkSx/uUlpxJr1HxNscCpL538zT2Pnb8xvMtncwpd+WNCs9LshNGJlLXUgmkAj JUNR5EViagVFQemKpjrHnTztpF9oGl6fqFmlpZeV5ta15lto+Ci3h9P1E4HhT1vsJGFA71G2FWGa h+YfmCTVvImt6rMlzeadoxvdQ1RY0aGyk1q6FkLiWFDGpMMXVBT4uvfFXsnnrzBq/lf8qNR1m31a O91TT7Wq6rJDGVmmLCMN6URSNSXYDuB4HArznVvzf80paeZ/qurQq3lry9ZC4kaCNjLq9yVWWWMD hsrNx2qik9DthVl35V6n5z/xPqWg6lqUusaTpGnWAlvLlY/Wj1KaJXmgMqKhkopqedWXap8QqQX3 5h+ZLSz/ADU1yG+tFk0C4isNKZbSPmHiqjBwG9R/3kyqrOxUGtF3phVkH5c+aPO9/wCfdV0HzBfQ Sro+k2DXdpFHGhW+uEWSQhgAz0T7dKKCwoBtgVjv5j/nFrdvc+ZrPQ79dNm0O4s9N0xFiillu765 dTO83rJKEt4UPH4VBLH7XQYqyf8APjVGtfye1JI5lnudTS3sbeVSKStdSIpK8dqMnI7Yqgfzm1DT 9E/J/UvLFjOr30NpYaXHANiFuXEEddqDlHE5p1oMVb/OO+sdG/KLUPK2nzK+oR2un6VFADQgXTrB HXYgco4nNOtBiqA/LZIZPO3mLW9W4adqHkqwj8u/oqEloxYwL66XbzMEaT1eB4VReKjFWBeWLa+a z/LWXWBHc2PmPzFc6zHZ23KO9W6aQ+nPJKS4eFBRnVVTbvhV6j52ub++/OXyroUeryafYWtnNqtx ADEEkl5/V4BRwQ7MzGgatOq74qxrzB+Zn5g6f/izXI9TgbR9C1pdG0+xFmgWeZowjLJKzF0SGSRX Y1JenEFK4qmuoeevPPl+zgtr68XUNQ1/W49N0tAtm1zZW/ph5RMITHbG4YEGONmIXkOTNir0DyA3 mR/LccnmHUIdS1CSaY+vb+kVSMSFUid4FSJ5I6cXKqByrgVkeKuxV2KpXrnlfy5r6wLremW2pLbM Xt1uollCM1KleQNDtiqrd6Dol4tkt3YW9wunSLLYLLEjiGRF4q8YYHiVB2IxVAyeQ/JMtvFbSaDp 728Ez3MMTW0RVZpf7yQAr9p6fEe+KopvLHlxtX/TTaXaHVygjN+YY/X4BeIHqU5fZPHr02xVZa+U vK9pa2dpbaTZw22nS/WLGFIIwkMwBHqxrSivQn4hvirEfOX5XjVLq0j020046A0k8+s6DMr2sV3c zbrcvNbqzs8ZLEBhSu/WlFU/8q+TU0zyVB5Y1i4/TcCxyQzm6HqK0Ujswho5ZmSNW4LyJNB9GKpr YeXdA0+7a8sNNtbS6aFLYzwQpG/oRf3cVVA+Bey9MVVrbSdLtbq7u7a0hhutQZXvp0RVkmZF4IZG Aq/FdhXoMVSqHyB5GgsbjT4fL+nx2V1IstzbLaxCOSRG5IzrxoxU9K9MVTHT9C0XTp7m40+wt7Se 9YPdywxJG8rKOKl2UAtQdK4qhrryh5Vuxei60ezm/STxy6gXgjYzvCQY2lJHx8CopyxVVuPLPl25 Nw1xplrK11bCxuGaFCXtRWkDGlfT3+x0xVRbyb5SaG4hOi2PpXcC2tzGLeICSCP7ETALui/sr0GK oq70LRLzSTo11YW82klFiOnvEhg4RkFF9IjjRSooKbUxVhf5j/lgmv6QdO0Gy02w+u3NrLrM8iek 08FkyGKA+lGxZf3ajc/CBsMVZvpWmWOm2MdpZWkNlCoqbe2UJGGP2qABa796b4qhB5Q8qi2ubX9E WZtr2f63eQmCMpNcc/U9WRSKO3P4qnviqKtdG0i0vrrULWyggvr4q15dRxqsspVQq+o4HJqBR1xV B3Pk7yldS3M1zo1lNLeSx3F3JJbxs0ssApE8hK/EU/Zr0xVU13yr5a19YV1vS7XUltyWgW6iSUIW 6leYNOmKpfJ+Wv5fSwC3k8uac8IkMwja2iK+oVCl6FftcVArirn/AC2/L94Vhfy7pzRLKZwhtoiP VKhef2ftcVAriqMu/JvlO8knlutIs55LqBbS5d4ULSwIVKxSEj4lUoKA4q7R/J3lPRZRNpGjWVhM FKCW3gjjcKf2QyqG4+2KoxtG0h9WTWHsoG1WOL6vHfmNTOsNS3prIRyC1YmlcVQ0nlTyzLpl1pcm lWr6dfStPe2hhQxzTOwdpJFpRnLAHkd8VU7ryZ5RutIg0a50Wxl0i2YPb6e1vEYI2WtCkfHiD8R7 d8VTa3t4LeCOC3jWGCJQkUUahUVVFAqqKAADtiq/FX//2Q== + + + + + + uuid:BD14D8DC7C16DD11BCFFD65EC7B1D34C + uuid:d81eb84f-0775-844f-8950-327b309a2838 + + uuid:BC14D8DC7C16DD11BCFFD65EC7B1D34C + uuid:7D197ACA7416DD11BCFFD65EC7B1D34C + + + + Document + + + 1 + False + False + + 15.500000 + 14.000000 + Picas + + + + + Minion-Italic + Minion + Italic + Type 1 + 001.001 + False + MinioIta; Minion + + + Minion-BoldItalic + Minion + Bold Italic + Type 1 + 001.001 + False + MinioBolIta; Minion + + + + + + Black + Red 2 + + + + + + Default Swatch Group + 0 + + + + White + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + Black + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 100.000000 + + + Yellow + CMYK + PROCESS + 0.000000 + 0.000000 + 100.000000 + 0.000000 + + + Lime + CMYK + PROCESS + 33.000000 + 0.000000 + 72.999992 + 0.000000 + + + Night Blue + CMYK + PROCESS + 100.000000 + 50.000000 + 0.000000 + 0.000000 + + + Pigeon + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 30.000002 + + + Red + SPOT + 100.000000 + CMYK + 0.000000 + 100.000000 + 0.000000 + 0.000000 + + + Red 2 + SPOT + 100.000000 + CMYK + 9.000000 + 82.000000 + 60.000004 + 14.999999 + + + + + + + + + Adobe PDF library 8.00 + + + + endstream endobj 170 0 obj <> endobj 172 0 obj <> endobj 173 0 obj <> endobj 382 0 obj <>stream +H‰|”kTgÇdÂl]Öq*ÉÔL¬kí­ö¢u×UñB±Pä"¨+HH¸äR“@Œráb0ä +¹$¹ˆA­.*µ®ÚÚ#®»v÷hw©Ûݵ{é;žé‡`wÛÝ;fΙyç}~ÿÿóÞ(.Š‰‰aíÙµ÷ÝÝ{V¥ Ë…Òòד¥Aª’'ò£Wx ¹8N÷ÃX*“²¼§}6/… §yà'€†Ç^~a[bt¡n‡TV%––)¹¯ñÂ}sÓ¦7VGïoq· ¤EÅÜì*…²ø}7µœ/•Ë¤rž²X°†ËÝ.‘p³¢)¸YÅŠb¹Š~û„+Tpy\¥œ'(~Ÿ's¥%ÿo'ˆ¾b åÐëЛÐÛP2´ Ú ½íÒ t(Ê„²¡h” ¡´d(ZµBŽÅ&ÅN-¨Xp?.³áËŒ%ŒpüÏ㯠[‘–¼Âd~n‘3 fLÜŸH¦‚Z’й†—@€ññƒ–ðebf`üÒö“ä±Ý­œñèã_yý‰=¡ure\;qÊÇ@gâû&«QEA¬TêKúQcÜfb¡Áur³´YZmÍH³ÝÝÔŽŸ¿¨HþY^ÆrBÂèâcèÜÝO$kV¥¦¬ý…ÒyÓMD€fÚÌãäþÙ¿,|ÆÁLâY“ý{{ë?5±Lb˜”0|COÜÃ¥ö$E¾RX¡F”òÃÆ"|Cm×=/q |íË>kcÙúaæ´¹h΃©y¥åQ•à#òfÎe³"V®ÿdX¸íí½+×ÈÕV[5¡?Œ}¨…[ÚÌMmXÚúÏY°„}S|–ät¤Û³qªžnßùNMAµÆópàÃÖÿ†Íd§XÌ¿ë»5ýj8; "óBÀB’B²K-ß›+æTJÊM%øÆy`¡‰Ü6 +jWŸ9#x‡ Ê()b„]±‹@7·ïkÏôóÂé½2g +7&¡^G·Ú¡u ²ŽuªG”—TŠ[†òÇÀ§7³Á +é¡ å` ¹&ñÝÿ±rûsÚM»õß´ÕN¹î|µ:q$XˆÎ’UÆ*•¥jnlrù› tÜànßõ·ºæ$töèqõ …iV*,Çðõë +ó‰w÷QÐZö–S‚ÁS“CÁ“œphô|o9ÁÐl€· ×øðà£È•kµ¬Æ| O!EŠÊ*ªõx­©½{Ôõiè:º +t¸—»ÃâÆÛÛên¢A$_n¨D˜'hÈõ jPÒ;ªN(X˜Z€¡I``•Š2•‘†m‰ÂNˆœ‚í m5¸áÇrÍf¢<?h6 )õ*Œ>´ÔÖškð´õ¢‚ýDJÆáe«ÙGx#}Ý>Îäé‘ñîš»ò-x—Ö_Ów?Šürš ¾:uß ^æ.z»<ˆÃÝnñâþ®:½—0æË)¨ª\%ª”W(ž@Q­Ã« 0Áäêî/&bF@Xä"„åçåUðñܪ‹g­f{“•xÒ¶~ô„=Q:¼cO†D\ÄÙžÉ[±†M-¼]þÁ…ß·ÿõK=§1W·¾8‹W¸œGø@üé‰î6ÄæliváÌíTÝùt¬^T'ÊÂ/0(ø zÈÀ:L! \=×Ýl/Î_QVH áT +Öa +ëS#£GÚä*vAne/Õm$|z²ƒ>#K1ôªÆ(4n5">¥Ä)Àó3Ô¥ùÄ>ž"+—½s´ðv5§@ZQ}\}¼ªC¨FЙ×ÊÞ;¸ü…èñ,ØrÄNMr/rJÛÔ^'Ûa³Z›9hËíÀdG¨ëTÏÐäñ»ˆ·ÑSçáØ›BͽÞÁa“RÓ]¨i~vâ HÌ¥èúô+vòQdz†ÐöÀ*iÙ·Á´è܇À _t× ññü‡²2¯öw„¸Õ\Sª'ЧY” N9êW…qú€Âž¥aûe…’â`ÅðxßÐHŸºG@0NÕI þ2¢ákéãBKŠÿ)+ªjkñZƒ½½†Ð5#šQͨvÔÐãnõ¹ý¿£ßr¦éh u²;å>ÉÁܼÌLŽT¦<"-C=`i/`‡pÔ·à +åšóQlŠFQ@âSù…Ô!‡) 0:­aû9×e–cÔæ‡t²=­;ÅW‚ìëê­èÃû#žÓ“²9Uψ(ãH8F‡ÿ):÷ðŠEÏÓ>}õ/œRÝF‹¥íº2MhOÂôhTÒv™ççxÄþk4˜ÁyÏÁbp,N?¢%{±&†ýJÄ9zßN|6Û…w4¨øQ;s)-mgÇ·®FBW R÷ü¤˜ûÔÁðó½2¼JiÔÊ™vW~v2í‡ç:|Í]?X‚ó’ÿÓ¨á·Ñ2¥Ô&]Ž.§:‡Ål  ç@ê”ZE.›NÌû,F# ™\‚5·¶Z|øÀ¤b+þ†bm r·ÓÈ™# 1ô H&gÕòËu}Y%Ë! ¹BŽµò›¡°Ö¦g‰âAo+Ü Yd9Þêc¡‘ x FïÛ=ü¾ïöÙÉ+ȵ[=÷n²—‰‚e%&C%‡I½âTÏÊýÚL›…uƒr?Æßý=1Ž¨‘‘R›k²uÙºxñ¤e¤õŽ÷ íõÌt{‘`‡ç„ wzêõ-z½Eï2»ì.»Óá 8=¶P­éÐÉ]¸(ï½u‰FFÛÇt©Q§i°gR;u7@Ä¥Ï$Þ{xÿ1:~ 6bSC9aŽä_š“¾p¹ÔŠE3—-[YR>WNøƤæófrï˜9uúÜ9Rk‡§ÆW§'ÉE%´$eKù-ÚZ(·7gZE™TnaUI~êü ™r Óëú+ê««Š{Š9RzÏço–þøáÑ`â‹&¹ Û„.ëˆ ß7}íèc-,ŽÍ¨“®ï˜¹z’ü¡ï³_M\½™õ7'Ûêï2µ3Y…/ü涩ra dËÍš\Çz‘-âw?ëo†ÒÅ›¤÷¸µ X@.$¿«ß<¾Mæ~ñC釭hkp¹~[‡I¼¹N¡tEÏÒ½À°º±ë{ëÑ•Kˤ£íy}ñ$éI]À$$ü"ñw8ëožÂ-5Ë€ó¤™Ëä—ͼ¸ûð#`i^íÀê_7-côBH¾€¤ÚVhývùûÖ:6¾šY?åfý.þÝaîùn¶ïÍ“þÔLg—[à\)þŸ‡s×w>î¾ï"?‰×Ó< endstream endobj 171 0 obj <> endobj 381 0 obj <>stream +H‰|•ipS×ÇŸl?ñJ‰2õC€õ’wÅ”™¦%aLé2¡¬!˜ìšX,l°lËF¶emÏ’…Œž -O²%Ù–ð¢ï±›'”°MÃjÜB–! m¡zEWNû¹3wî‡{–ùó?sIKA8ëæíÛ²¶.Ï•ÖHå5ïdSâjiéœaY‚à$–¤Ñ RXÀ¶üëñËIôMq½÷¿•?{cž<}ÎÞ$WèTÒŠƒ”ð­ÒŸ W¾ûnæÛs÷/…Ëä%¡H§¦$2µ0»¦T®RÈUbJR¶B(ÜX]-ÌŸ‹R ó%j‰J“|ý/ƒPªŠ…”J\&‘‰UUByùÿË„ ä=yA²Ò\ÙÎAD)/Y’ŠD9iœ +N"e&U•úmÚª4º +pß઄<ø&}½H“øUÌ Mz×=Ä«áDœ¿ÏÔeôÞG§Î¸ßØÖÊ*”fÂÜÜm]Û Ñà‹#­KŒú–àÕ­ÚC-z"çw’¢Ý GTÈr– ~=¬ úÎtøɳŽÇ&±fn Ôñ;Xý IB-3(1|@_U^¢Vbâ2±¬ž¨³ô :o‡¦@äÚ@(äÅðj»Ç×ê%x'è?À©o÷ŸJŸÆGà˜Æ§ä{ˆˆ‚ºSWnvßÄÁ艾`˜èïÓ«ý¿ÉnomwaøˆÏíözYOEvÎÁò2+·|éÁª +>øføæ5’w†¾ÿ=Ή=€ù÷SásÈãçåèʉ­ÆÚšÛmvð}®ýã7‚ñÊÁ‚â<…ô¹1_¼,SÀο&œñ¼xN²ˆñ;aê™sQ?Öæô¶zˆ@˜.ßY\Ì‚ÀËb•š—Ø0´Æ9¿HDRo'VóÊ:Ã5¬¤×Ö±é +6Ê®ÓcV«©ÉLÐu.»ÐvSƒÕŠYÌæÃF¶Ïäï:㛜 c§ŸA#æŒùaÊ fI°eçsan¤÷Òé¥5Aàhpgœ˜ÓáñuºmŠ ”øð÷Ò=bPV¨\x5ƻ˅2MbqÌ<بM¯yÔr¿ËÁgy_à·7@tòǘ‘Î9èñ÷ºKòßÎݶ¿¢fà:ÀÿdŒ¿:ÀÏÙølb0v7œ=õuX\®‘ öe©w’~Iò“yŠ´b°§D¹}‡`ÛXéeYX]OëF¯v@Kâ_Ù´¢¢"Áæ/+^ƒ¿ÿûlVô»@SO M©¶­_‰åÎ$H´·í¨ßHX6©mºÉyÑfë3XñªØT`*  2x$‘ökáÊ¿¥_Ÿnz¼íþÉéQT–*Ì„Åæé±üé BG]î!A­*}ÜZ4Øs¦ßM8[$f€?ÿ€¢ûh/í#"ÏîE£ÿª<¡çŸ öGîc†€œ(×JÍ Öæ×÷¼L—æåòd8ŸÜ™øK*TÃ|µb¯„&Ž¹ƒmòwО¶csèÙ”n5ÐÿúÒW ºNßAuþï¯LÆI,á|< k¦SáÙD>_YB«K@VɆ¬P°y`íÓ¯†GcäçScÿøJ0sàÒoIv=;ƇoÝym'[]­ q.,YšÙE[ØùâÃX“ÅÐh"DÔÔÀƒ?c-³È2#2;ûЈŒÁíãFMby,}'|Ffð!XžòÁn[€¸§2ÙÅ™ì¢5²Úv ž&vñM•Òjj3LÅÕt¥YªËh¥BLŸ+âȲïWüpL–†l#F̓&œ‡ïßÝ&mib˜ÉŒ^¸ŇºzŽz‰k¾[g/bW®‡g¦Ó…“?UW7š’<ŸKg¿ã@p+Š’嫲 E»~ÐçD,”Ôç¨n·T²+»Œ» »3¦û[F½ŸþšÑ>êî†û}v†`Ú- p606ÆÎ8\n»Çî>Þae°Ë!w-¡ÌÉËÜ ŽrÛ?E/ºmCÁÓÑç!{†soêË+©0…æ?yòøþ±?wTw‡O +FB½¡>ÆGÚ-n[‡Ûãnm·µc›¤·’(*”ÕªAañ‘R­`ïyj¢’ŒW8Ô*Ay•ªF^å–‘fÆb34`z‹AW/¨²]V¼²¹½0ËiKJ,5"éwîáŠä×넯ó5Ô¾BŠ05O3à2ôý³-EÙ…Ü“p‘Ù¾1¯n=º…+W;hô!7—C×ê:ØIÄ¿~0qðê½/I/«÷À¬Î.´8^Õ{æ‘MºÅ³ ~40ÿþ á×üÿ0ÇÔÎ endstream endobj 150 0 obj <>stream +H‰œWY“ÛÆ~篘G bç0€sTE+Çe—­XZVùAJ¥`’»DD‚Ô´¤¤òßÓ×€Cp¹*ÙÇrº§ÑÓÓýõ1fÖ(ø¯4VùÚªÇõìÕÍ^,f7·wZ-{e”ê—Ýìæ; úÙÍÂüKsq?3¹Òð/üÔNy§³B-v³·É›Ôºd?4C:÷I»O]ÒõªéVj™“ì·ÈyTï´óí¡Oÿ¹øa¦Y‘zǘpŒ‘c,ïZ:ƸÌð1ÿèÖ*­“Mj|òY¨!5:Ù ñüI»NMòQX©±É:Ûd5ÿ5µÉ¶Áõ2-’÷"ñân!«fûæ  “´Ãf×Ë^MX욶àÿ¶{¶l‚÷ c¿MçE÷“>»LN’m—Ú‚ÌM9«éÙ<-)€%k1ÉÃuç.6°'ç&³jñtìV E’ªíúé'Š ‹¶k܉¶¿!¥V”®@é«ÔVàÝC3lÔ½Øä’› +9Çè+ òesHàhIþêÕð‘ ñ{2hyLƒ=øño)øŒÎ TÛ¶{ßgdæÍ­ÐœëÌ0ùÏZ6៿.þÊ$N÷Z :°µK}rÜ‘Åì9´æH¨)ZèlÅ~\#ØÙ>ö³EDö°>.Aå†=˜A‡ôÍný{lFsŸ0ºGzžÆP/›»Ã¬ùÌÔ°i†°’¯·hx÷VÝ›è§/H[t5±€þy>Õððt^FRb‰ä*%,;ŠLYˆ“ŠçÞy+–vAu¸{v䪳‡ÔJŒé˜¹(?¹œ„÷ñ‰¥¿Û‡K{2oóçÌñI–² =ÿá‘A>aÔ“;mÒÄ[6NŸˆ {§Ù¶ÿ±/ÿ8ª¤ªÂW˜ã®O>5çõI¢å4ô÷ w£PO6{9uâgöéè¤íº!+?®éš°0Úä~¸”høgjAuVCÇcÎÍp…˜A+±À'ý.´bW„lÅbUd`&¥.d¦åDœŸŒš3D¶Q]ËßSMâ‡Fs3Ï Ì`G—fÜd€Tâ’9)WÁiIÞiCNsÊ`'Ló~­œ5™Ö¹«³¼®=ÎýÉ«ýj=é´§‚ËmVú²8û„ç8 +kdFò(lÈ4äK>‘(ΫÌÅÍAƒЭê@ßF…ÐbžSe 5k?ç©y ‹È@ +` ¥À°›è÷Ƚ&¬ÄßñÙÛàydá Œ«oœöâ csE:Yñ<,DÏÅZ¨Ós ‰MbTm ÇõõW6Ó.7ÊÕefC„ß|ûòz€ë*³•¯Î¾ Ç¶Pô ¹kÎNñ“„4á9…Õ–f^Š½ uîÂWÖLÊz$ÚvcPwô˜; à»óÄñ(¿¼ÓS&´º¨ ãš“ÔE•ŽéS¢Qɹ‡öIh¨¸6òlõ0;ÑʲޠQûaš¸¬Ä +êP|¦I¿?öãë¢ÒS?’¯äõÆâA\ÉÛ©«o˜ñ’ýÀ¹%£?.Që¿œÅBOŸô†'ú±7×û±k5£m¿çÕ1ýóéLlo®5®žïÜ(1nx¶ñqy´!2ç\˜p–|}|Ó„wŒc(ÏÛÓ%]CEî7“Á +Ù\u==ý #ƒ£¾Œ“™§[rã#ÇêÞ¥Ùɯq€N3;vþž™g'mçnž9^21LÒÙSå+Û¯[9ƒï ‹u/UÔlƒ ÏEð¼èâSÇÑ[²áÀá‚OVáÜÍ°îÛv_ á#òóÉà‡¦ïù£xص«µ+¡/¾?žC2J’7Æ:Q$ãí‰_3úÖ“‚Ø\¥ë>6¥>Ù4$2gôAûÇ÷#>Øägø0ùåÓŸŒPŽûQ¸£UÓá[õ3­ù% ‹ûÇ ´#šŽ‡_aS +ð†¸,’¹È#mÁìRÛªåŸ `l@Û(ç§ ì^[xH¨“°Ž‚ýòxñl#:ÍÙ{–± ‚ Ï<¼Ç4¡ø +<ඵKK({ƒ’©àI¤³÷çErªÕ‚ iy~ƒA¸Z’Ë*yq·àŵç,l­Úûûè%ZVc׃%ÏSË&áä‰Æ/P Rü³(G´ò’ÃsÑ!ce“´§ÅX™€ÓvOôŒ}hš§QR0¶ƒqGF + ðLùÕéZÃœ´ÉA‚KÈ„ÔVQÎP½Ç´ëÛÅìæçm³\¯~~ùwuóÓ­V/^ÞªÙ뙦ILgF½ŸÝ|w§ÕC?«²µÍL镹»„_ç +jBëÙ}ø¾°6v® +[eõ(˜ÐjCŸhp&}% T‘À‡³ÓrŸô‹êf/rý.—®i˜ íOY¥A·­=‘óù#?P+·S†z¹¡¢J€ÿ +ho% ¡‘*ˆ°tÚ’Å¡ÃÎ¥-Œ³e]œÛ‚a¬xŒs8ÆÑÃqŸâKìª)Ö€“r]>mŠS6¶¥SæFkx@i« +m2oªÓãK="þ×?®ï‡wÌØ°-X~9Kþ+u(QJ}RQ›ì±}Ø ŠØ‚ÍOÙtÅ{ÌÁïιË=N9¨ŽVçêÂ&<âÇõp|ìÔ§‘÷?\À_Ïnn¿Ë.®úe7û $.ðÐû‚ ºÜ v3cNHÛ _ˆ‘6g3o=¼r<Ĩö‘NÈ#Øϸw‹DQU®¬Ô\gÎçDÁPUm”ͬ6èk +7¤‘ÚZµœÁ{ÊÒ¸UæUÕ´ç<< 2_ÐŽ®+ÄP•ª,ª@HçHoè’â£Û;ôÑÝí+°±PU®~R_á®»¯vWUº«¨Á¨È]º(à&eíÈ_º"ÂQ’ƒLU*Ï!Q2ƒî‚ûk‡.qDÔ¥/€7 ûÕ:RE(áct|Íî¨Ñ]ÀuiKg#;¢½ÝÅ'J%O‚ÛZŒ©uä#]8N¥ÍÃèê5ŽîðÊ­jH¾útñy aÛ\Vû«XY]@X”ÞFŠ!êìÄ Ž)€]²‚Û#flÅ)tNYž6ñd‚aY#Q™‚€W¼à"†ß †¾¨8®"kn}ßÄØëÁŠåÐÓëk£‡&§xÒbãT:jèÜCÔ—”4`VÔmá_m”jFv&|‰%=í\F{{¦Ê¦¢$°»4–- 2(M¿0ÎÆõçuE1µê¡à‘P Z/ðd8´<ê8¡Ñg„Œô¹Ç²}•¡nP¾5èÌûþ•ä7®¿ÑÇ».yئ`L­%_ï19Ô±ÿ:¹ÓbVF²+ªƒŒdqŽÿHÏ(ÇÇvžêãqžÑמ1<¿gÔe$ÖŒ=c¹÷aÁæÕpõVd%»‘Èà5Õø®ç@]äbômwÑÄrãÒ‹ `b‡?ž!«8ém—\åÛhQ¤v‘\KV²Ž;¬ÕÁïÄÎæ¡ý<›S»Ä8µ·³ßÞý8Ù`‰ bï°ë>R©÷©uŽÎE7üº9¿½lúãøÈ‚ 0ƒ;ùˆ#±;óFUÞò0oóFüñ0o<ÎóÆûøx’[:å`%¬ØàšríÍòáArÙ{:L¹Ž8oícå2±¸bcì¤û—9\éÐM‰ÓñàV +-ËÉ=¸µO÷àAÂáO +fƒ#›·«ú62a±S·¥ ™ÿ–]é!ûdó‹¤$ð0£ ³Ø +-jù}ê”Å>‘­?Åb3"F†ýôîp‹ÍÎáž¿igpœÉ>…“i³#º3Ú3}­ÍƵŒ!ã}¤=6;¹á×ûm¶MöÆGb9û&H.ØuçºsÝ¡_ÿysÙ”C6÷hå©ý(ݵ×ÍÝ}s£G½zü«Öb§¾kèïKÏ<.åË3joÎÖ·Ÿôã–?#už·³è¹¬M›þÙü‘¶_ +œ+bkûƒ”RÀNÛŠgËej—oþ_‚jì +V;IŠ“Úü‘¶ßK2×w¸ç´ýØ;^_ûæúÃëÍÙw?CS–—?¿üGóÝë¶ùûK<\w,éÚ^¾k(;µ[e‰^¢Vþ~‰\­ .êk˜ý¾ÉVÿë§ýÎry™äe(/ÿµo©6·›†"—3ÛŽ-¶ÁÅaáÐË('ènQof–+彟%çÇÛ¾ÓXÓEëÖ0‡¯$϶×®Çrú}ûkÛ?ÚÜOö ã}n¨þææãí§æy¾Ú± ÚĦwAÝ.®7÷5[=råQÖ˜¹ñIŽ°?[bþtw‰>u\–o>þ~ýøkyr]âÕÔ¼{yÖþ[Æïþ‚]4Í—æûæzq³¼zü[õ´<ù¾ù²¸—Hõ«îf Ÿ^ÜÝ ÓI0ý7ŒÖ¿|óÃËúÅýòñÏûÛæËêÙ:~ÿ2.¾µ¢xfåÚ6ºL¨4×w—S¡C(YÅ ¢7"F¸agRåÐ’“…K¢CˆwÈ1¤P¸Ü’d$W,ƒÂ…&#΢YR}à “(›YD1úX/«²Y¹Èè%è§uS7è¦vg;E¥‘¶Ó„…EúN­m*Øom´<ɼCÐ9ªÁ’4:§è˜ Úïk°vÐ`Ós4Øô¼ –µîÁ¸`IݸÁö·×¼:£‘Q‰B¸d* ½â­^W­é]O’ÜðÆ”ÞõôwWgv¸ C“½0Ž3Ä9ù¸,’’ 7¥äpmÙªeY‰ ²ÔZV£Vø\~'æ!mZÁ mÍÔÝL–J&—%c親ý}ñVìïÛ?¹Í *.ÇSm#æ.@ße„ò°Oáçú.XoŸXH¡lÜùT[Aé ¦è¾T£¸Âè¤J +eÜ=¶ ›³ýÌnd´6˼~Sf b­"–õÊÐtŒ¹d}Ó/ŸÔa®5s(·þDŸ…—ôi‚–€BÈ ‚É)¼ó®ð¦rʲ»Œü {|Î| ~ ` \Ã@y åj!Ìé©îýÀ2,®%¡.rœmIá‡)ôÐ>›PæìÆ"(;•oÄr/m•a‘¡ÌPNTú tQÖ}Cç]•‡£ +‡ÄP²ÐJ4M|mIM ¬Eˆ,Ñ’ÕéŃzÃn±ˆ8Ö—y›‚ÂÕ¨ 5¡ÑnBó‡ù£9ՓɾnÖYVѾxÑ~¸¸-©6£jQ”Çc´U›´M¾G®ç®]Îæ¹}œÍCûy6§v‰qjog¿½ûqºã"T‚•dO«H¥î'N°I6hðys~{Ù¬¦Œ@‰Á†øá”´äŒ-ÙgLžû/õUÓÛÈqDïüÛ0ÇýýÀ—híC‚5¼X>Ø>È"µRV‘“KÿžWUMrz8’(nì]^D6ÕÓSýêU½W¿7-O4ø#˜çñÒ„©kȼîvõøH Ýx=<²œuëë‹»§i 8d ÷‰÷”àÀ“ä‡}Šñd@›GÐæ +ml¡chÓÚ4„V›-¸f’'w×Ó#Ê*‚4¹á²Ò˜>ÌÆtóÒ­.ÖsîQKêI2©˜àh D=¿={ÔH66ÝCt+ A'¢¼¹1ëd_É9k´ùýA!nŸk†7AʳWŸš0È壴XÔ¯¹ucª[OºõŒ¡”Ž‹Aêž[GrunÆ–± ÇU uDn/įڹ¾hÃOé2ÛðÒkã`6’‡»ñ‡Øp$½äJ‹x +_‹ ?¡Ð6áè.6{ÜÉbŽJSMjlÂKs Y×_È¥ÆßÁŸÆ¥Ž±ÞhÝБì]ùs¬w¡kÜÇmzÎ{»>$È^³ýï]zS‚ky–·"ûêЄ¾Œs}O/îcwêK‚íq~ã7´%‚(Œèö¤ã†%”3¥õ>L%Ç1°ñpBœRìÇølÊe)œî“)éÿ골Ũá¬Ýž½mß½=S³o~¼½¸\-|ó½úæí™U}ƒwâ@â"˜“*<ꨅIÖ@ÙxX!_;Î…à8IF“—&PmTõ Þjmz˜_4¥ªÈ†¤ùlÞ0mGƒ.«ì¡ ¹G³Ý¹æŒºÂI8ÄàÏü™· ¹‰ØÑ[~RíÁš 9Ÿ¡ûûÒ'Ow?ˆ>Xjr$½Õôúâù½4¡ñºØDk'ö%’KATdc\oÁÈeO¸…ÿ‚X“ãé‹CÖªýa'ƒC-9Í´Æov£•NL4ºê»}K}0Tï€ÊZ/Pù†P9°‡œ9Pøº‘'1úb ‹cªèy»¶:L ÞUP_ˆ{éIðÇp8^Eãë[­´À14¦˜4‰l® íÜÙ]â¤#(ãK€95Œzí]D¶Âë$cÙñ2Ô‹[ÃW ÁÊ:—Ê!Kœ °ÑÄ jHàŒ`j7ÍÌ"f‚ òÉ«¯Äˆh†Xð[Äð#j Ék©A$êº ‰Mx©“h,Çêa7™¥r#ò5©3$à._;0^óÃV3Ž §f8/¼ÒžCבø 6ª섉g⪪X$+Ž .æiâŸ{K`˜\æ7ò„ƒÜ”RŽi6Á£©ÄÀ_‚oŠkˆš‘ÀDw¢ÅH½…š-³‘;:š‡œalˆZ$V³˜qö ÚÆ=)΢îVÛxJId¶Trɉ±TbZÇÈÆ1¥F½æ`¨^Ýl€P.òé©[¶HI6¥´5¼ª¥ MÄ8±HvŒ€ QÚU‹×ÌÃì‰!@" ¢trªíËJ+–’5´Ÿf~:+Mmû»®LòOšì[M6ð~–Îá*1V4ùºjò»™#økdÏan pù‰ìaŠÝÖë®1c@Y ,€&¦ì s½'»gãŽi|P–Lêc`Ë‚F¯&Å‘-S}íù^˜ˆ Ke2‹–Á³–©ÚQÛ=ÐÂà€ÓØ̼Œ™¶•’¸ª‰(© +®°4röD +\-–Hjb™OR÷P^Ý +RÒè¼Rt¦‰úq&ÉJ]ÇXÉ +QŽ(/Sbj³*JÙ–(òB 6Å +%³§m¥.nŸ…÷V0/b&­L,R(™^e|šl‚¾`NÍdŒöúL•å0E"Jg®6¡AVù¦£HV-{vÄòjÇ7"b®D$Pš’ö:añgÂòz…%Æ”8M›˜ çjÓršDnsÌ(m³?¤E˘!™v#ò¹J>ÚÓP“˜+½3 ES×èÿ>3£êÂ=!4ÞG¦ÍÁÍ #A¬CÌYô“¸[/èsÿ¹èèZ¨èèqÛ¡)ØýLšxW@_GœMºZãˆXeñiS¬ò|röžæ“÷g?ì7l\:Z3ѱÓ·~‘ »ájðG„°4ŒsjnŠã ý¥™/ÍÇ%ÍWÝül¨´ÌæɺÒÜ}廕§š³¶'Êûd©ëš¹jX²o Né.×{”ÃDSUèƒ÷£àm¼ÌŽ›à±ÚoË0x«š#Lĉ†.¸:ŒÕèù4ì÷‰Å³ÂjœíìDÍO–ü³’úk·˜&kƒÙˆª S¢xÚÐtÈÒ–¤/ÔÛ^•Bä’e²ÎÔd/©É>^Þ‰“â¤3ï…6ÉŠŽš½†“þ¹»œ/\w?wÝ¿n—ê7Z¬Ôíj¾ÈÝÕzþëùßxv «ó%¶ß?¨‡9²ÝÝ|À‡ë®×êöæî#ïô–|('Ç›æ¥ÃQ¶[î6Ñq9lÏ»X¯/‚ï®W›ÿgë¶ÿÿçÍrI'Ü®ÔÝ=E·\ñ6´@š¶ê®5â¿WŸèÿõ¥¹»«ñGŒ·<ÅÑüÆÛ›ã@yíGŽìQ=~â·Ü¬ëé…g½áév± @Åø1ð`QU†ÊÄ¢CÇð¬ ?¯‹¾ìIô‘lÅ“Òü´Ÿpp‰Mç —Î¼¤ÔC£ÑÔÒ£{VdZ•§4ׇØ'ö3x¿×ÆÕB5ÙNë +c­õÝÚÁsƒýºëê„cŸT[Ý—œÒD;x^mƒ…Ñ(•umá¾P·Ð=kÉOóõË‹Öd¥Dä[¹ÝôÜ¢´Q”ÖÐàXŠbÅÔ4!òÇæg‹fâb4ªdüÃVýý~¾HÐO¤O7wÔåÜ@ŽCw{ Ý£õÙꓺP~ÑH!‡à%„Âá]Ü+šÄ>ôɤL/ëþ}³TWxÙÙ=Žü¥ûá~¹R׿Ìççÿ`]é­:3ëþCëó?Ï:¥ÔuI›Õ·êOõë_šÿÞ®®ÖÛ-´g÷C»ñáæÃõzxØà‡íÎÿÒ(ëwoÏ{t.¨}ï œ†„S‹p"hâ’Ñêmãß‚ÊÆ K.àóv­çut…׸v*¶n௲§þJÛ6¿ªH?(½H¿f^/è=øÅdÙ€OÙ‚/›MôU¶I£àȵD~"A¿›ýO€Êlj endstream endobj 119 0 obj <>stream + + + + + application/pdf + + + RBrotation + + + + + Adobe Illustrator CS3 + 2008-03-30T09:43:48-04:00 + 2008-07-01T16:04:02-04:00 + 2008-07-01T16:04:02-04:00 + + + + 256 + 80 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAUAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9GWNmLkuC3HjTtXriqL/ AEKn+/T939uKu/Qqf79P3f24q79Cp/v0/d/birv0Kn+/T939uKu/Qqf79P3f24q79Cp/v0/d/bir v0Kn+/T939uKu/Qqf79P3f24qld60Nn6zzSLHBAGaSZyFVVQVZmJ2AA64oSa484+VIJBFJq9oZ2k SIQJMkkvOScWyj00LP8A3x4E0oD16HFVyebPLclpqV7HqML2ekM0eo3CtyjidEEjKXGxKqwrSu+3 XbFUDpv5jeS9Rtorm21NRBNK0EUk8ctuCy25u2P75I/gEA58/s074qirfzn5WuGk9HUonhjaNDeV ItC8wQxxpdEeg7sJFoiuW36Yq5POnlQ25uJdUt7SNTMGF4/1Vx9Wl9CYlLj03ASX4SaUr88VWXvn ryhZ2slzJqsEsMIZpjbMbkoqRmZmdYBIyqIxyqRTp4jFVOX8w/I8VnNeSa5ZrDbnjKDKvqA1YKBH /eEvwPABfiG61GKou482eWINKOryapbfooSrA1+kqvAsjuIwGkQsq/GwBJNB3piqL0vVtO1S1+tW Ewng5MhYAqQymhBVgCPEbbihGxGKovFXYq7FV0aF5FQbFiFB+ZpiqO/Q0/8AOv4/0xS79DT/AM6/ j/TFXfoaf+dfx/pirv0NP/Ov4/0xV36Gn/nX8f6Yq79DT/zr+P8ATFUlvta0GzlMB1O2nuklEElp BKkkyMSQ3OMNyXhxJavSmQlkAciGkyS3ogd55LdM1vRNSu7SztL6KS7uo5ZPQDrzjMHD1I5VBJWQ ep9nwBPQVxGQFOTSZIAkjYfp7vJNLuye24c2Dc60p7U/rk3GRei/al+S/wAcVTTFXYqleo641jqd tayWVxLa3EUskl9DG8qRNHxosgRWI5hjQ+2RMqLdjw8USbFjp3t3+rxjT47uwminR7q1g9RGEicZ rmOJ91PXi5wggtcomJoilh1q8kS7EOl3MbW7PEs1z6McJZRUSVMvIxb/AGgvjkeI9zb4IFXIb913 93Nhdz5o82S2scr635YSP1gUkt72dQWhKuUYgPzWjAyD4aL1NN8qMpd4dhHT4gfoy8usR1/GyW6Z 5p8wLoV7FJr2nXgib0Lm4jmmaeNxwgEolGyRMYJpKhK8aNQ8shxmubfk02PjB4JDryFd9V37gc/L oyb8ste1XWY9Wm1C8trqSO5ChbVnaNagkNEJCWETx8OHuG/a5ZbikTduF2hhjj4REEbdfxzu7TPU hG01wsi84yWDoRyqvccd6/LLnWsG8oeT/KN1oenapDpAshcW8UkNsLm4kVIxLHcRMwcp+9JgiaRi vKq8WLAbqp5ZeT/Ltlpt/pttastlqYYXsLTTSc1eIQFQXdmRREoVVQgKOlMVWar5L8v6na3dvPAy /XSzyyo7BxI1obH1FqWWot24iop3pXFULF+W/k+KB7dbOQwyOk0sbXV0VeVFCeq6mWjSOg4yMd3X 4WqDTFVefyH5Unu47uWx5TxTNcI3qzAeq1wbrmVD8SRMzMKjbkwGzEFVTn/L/wAsy3lzeCCSK4vp JJL90mkPriZBHJG4Zm4oyquycacRSmFUJ/yqfyD6RiXTWjiqSI47q7RV5R+kwVVlAVXj+FlGzAAG tBgVMNL8ieVNK0ddGsLAQaatwl4LcSSkevG6yK/JmLbNGppWm2Kovy95d07QNOFhYB/RB5FpG5ua KEUE+CRoqL7AYqmeKuxV2Kqtr/vVD/rr+sYqyLFLsVdirsVYr5Y8+2mr2avcwyQXbvcBYIYZ51Md vMYuXNIytfbrlUMtudqNEYHY2NuoHMX3p7HqsMsiRxQXLMxoS0EsSqO7FpVjWg9jX2yfE4pxECyR 8x+h53qa6ta6161zbeV/rs8gggjaGd3aS7uHWPlKsDP6kiRzIwrTkKnuMoN30dtj4DCgctDzHQd1 8hYKZeW/LXmzStTju9StfLyWMDzyPdW0Mwu4opObCOF2VVVEqFp/J+M4wI5006jUYpxqJyWa2JFf H8c2T6jcw3NtaXMDc4Z09SJqEVVwrKaGhGx75cDbrJRINHmFTRftS/Jf44oTTFVJbu0aJ5VmjMUZ IkkDAqpXc8jWgpikC+TFtQ/NDyvBcmy05ptc1EbfU9LjNy3zLikYHj8WVHKOm7nQ7OykXKoR75bK egLf3M13d635ai0qyuWWWG2j4XLvMSWea4SJf7xvho1KjcE5KF91NeqERQjMzr7Pcp3mv+btIlni v/Lcmq6C7MIZ7J1nuVhepCTWz7uQDxNDT55GUiDy2Z4cGKcRU+Gfny+ajb6j+WXmvTG0S1lgspSj QraelHa3UPPiHSNJUoCeIVuIIwXCQptlj1OCXGbPnzB+TJY9A8rxM1sbK0aecrNMJI4mlmdOVJpK jk71ZjzO9Scs4B3OEdRkJ+o/Pl7kbY6TpVg0rWNnBaNOQZ2giSMuVrQvxA5Ur3wiIHJhPLKX1Emk ovf965f9Y4WtB2dlZ2VuttZwR21upZlhhRY0Bdi7EKoA+JmJPvirEtIvvzMh8vTx6nYRXWuIita3 EYhWJh6cBdZY/rK8pQ8koXiURuG5jBFVVFLv81Jr1Xezigt7eRSsQEEa3CNbXFRKTNduvGdYPsFS vJh+8UcyVTbypc+ebgTzeY7e1s0VVW2tYU/es3BWaR5BcXCL8RZfTANKfbYbkK2t95vv/Kl/M2mf oXzB6cy2Nr68N1+8Cfun50EW7dm+nFUJbXv5hwR62txYR3j87hvL7qYUAXlctAlz++TkvGOEAqA3 7wBvss4VQi3P5o3N8iyWyWlnDcWcnqIltG00LPELqORWuL6gCPKfgKsCq8WfkQCrem6p+aLWl3da tYWtoLayeWO3gg+sTzXNHPBES94gIVWil/3gP2ozUKFZvirsVdirsVVbX/eqH/XX9YxVkWKXYqp3 N1bWsD3FzKkEEYrJLIwRFHiWagGKpNJ5mt70enpUVxdR8kE99DGRDHGWHJ1kk4ep8FaekHxVDWcu m6APQ0mzln0dyXla1KzLFM7EkgM/qSF/2ljDEGm3xYAAGc5ymbO5V72Lyh5utxYXfp34tpBO1i7P FNHIlUBkhJjlT7RFHGCUQebLDnnjNwNF5u3kuxWKyhl8gctXnWZ2sRrMi0htxEplV/UZKGS5px5V A+eUcH9H7Xd/m5WSM3pFb8HU3ty8k1m8iw3E8UT+RY44fWjhaYaq4C29Y1MnBGQ1WPktOo4gDkDj 4f8AR+1pGsIF+L0/mdd/0syfR9O0fTrPTdNh+r2Vv6giiDM1OTc2+JyzGrMTucyAABQdTlyyySMp GyUZov2pfkv8cLW3r98lvaC3UNLd3bCO2tE+3MQQXXtxTj9t/wBkb+GKpF5p0bQtWvNO/wAQadIm mRlow7OqxesxUQrN6Ln4PtBOXw8ttqisZQEubfg1M8RJgaJZPp2l6bptuLbT7WK0tx0igRY1+dFA wgAcmvJklM3IklE4WDsVSLzXoPk+/wBPmufMdpbSW0CFpLmYcXRR/LItJB8lO+RlAHm34dTkxfRI hLtJhnsfKkcFtpF2iRsZbdZDG1wsQlJjd1Z+frLFQhDv0U9xhiKFNeTIZyMjzLKLO8tb21jurWQS 28o5RyL0I/gR0IPTCwSS9/3rl/1jihRxV5p5c0PQbj8v9TsLbzRb6n5auLSSG4urnlKLR/qsKcqz TsIFjKtMYWA4lhThx+JSlWp6T5PvjqWp6/56+veXo76CeO0aeSKCIw2byLBbPFMvqErcRyj0gTVQ NzXCrINFtodR0Kz8t6X5vtr24063tZmmtWuDLLGDIGeV4731uEgKUCSrxZd6owQBCWXemaNDaXF5 J51SfUbO31GN76DlcXaQtLbyyLxt5mueMHpfvBGw4+oePpjiAVZBpJ03TLC60oeb0n8w6hLLDBd3 dys0qXDgtEkdpLKyBo0kT92iry2JG+Ksn0i21C102C31G9/SN7GtJ730lg9Q1Jr6aVVdttsCsB0L TdHXzXM+i+aETVytyw0yVJhHIhutQrytzNF64iuJdyu49PYqJMKobWtD8u3GoXMVj5yi0y21C61Y 3en2TARNPJp6JP8AWDDKgU2piM7l6fE1DQkEhKM8rSeTvL+qTQ6R5ns102eWytF02aWaUoz2dYFt 3kuTEBOAsiOIzy+JeTbcCqheeVbOwuLWHzF51hJtYLWUWt9K4rJb3yTrecbu7mKvJ6Zh5LTqeNB8 GKGrO2tI7e5uZvOrTTtHqq2VtqFxeaeomVFhd5ka5jmK2zW8hbiFVSxaMR0XAl6VompadfvDJY3c N5GrxcpLeRZF+NElTdS32o5Fcb7qQehxVlhIAqdgOpxVi82o21xpNxfwG5+ss0rW2oQQyOREJCEk Rijo8QT4uNCGG4DEipVA+Y9H1CLT7PUvLNqNc1RpC6Xl1PFMVjeCQpNC9wTGg9UxtxiChhtsN8rm ZVs5OkjiMv3hofHvHd5WhrhvPE+uSaja+XW0+dbC8tRdm6tJWmdQWsuaVpTnU023bc8R8VZ4runL j4IhwmfEOKJqpbfzvx+ldBP5xudfsNU1zy6tvbadbyASm9tmSGR6CS4qKNUxhgVPwgU360fVYJHJ SMIxmMJ2ZH+ad+4KMOoeaPM13YzXXliAaYk8lvO0txbzGAxyenNNHKpWUSRyRMq8Bv1r0wicyeWz HLp8EIkGdyqxsfh80/gisLbVJ7B7i71C1hjQ/V5PUu1t5GqaPJxeRmdCGAd2KjfbkK3utTPQr+K8 s34O5eCaWGSOUMssfFyUWRXo9fTKkE/aBDAkGuBVut/7p/2X8MVU9KMoS4MKq8oSsaOxRS29AzAM QK96H5Yqu0bRGtJpr++mF5rF2ALi648VWMGqwQIS3CJK7CtSfiYknFUymhhnheGZFlhlUpJG4DKy sKFWB2IIxVL9IsNRsJZrZ5xcaWoU2BkLG4i6hoXY19RF24OTy7NWnIqpnirsVSeTRbi+1kXuqOkl nZOraXYpUoJAAfrM1QOUoNRGv2U+1uxqqqcYqk7aPd2msC/0uREgun/3K2MhIif/AJeIqBuEw/a2 o4+1vRgqhdQMgnuDGA0gLcFY8QT2BIDUH0YoSry/q36X0Wz1IxGBrmMO8J5Hi3RgGZYyy8h8LcQG G42OKoKDyR5Zgs57GG1ZLO5hNtcW4nn9N4zFHBRl9ShIigRVb7Q3ofiaqqC80/lp5Y8yvy1BZ0Ek 63F4kErRi5okcZjl6n02W3jqqFfsg9d8VTGz8n6BZXL3NnDLbSycRJ6VzcIrcLl7sckWQKf30rk1 G6sUPwHjiqHH5f8AlMVBs3dTDLbBXuLh1WGdWR40VpCFUJIyoFpwDNxpyOKomw8o+XbDVpNWtLT0 9QkEitN6kjfDKVZwFZiqhmTlQD7VT1Zqqqtp5Z0S01y8123tuGq36LHd3POQ81QKFHAsUFAg6KMV Q58leWzcNcravHcuXb14p545A0nr8mV0dWU/6bNQrSnLbotFXah5N0C+0s6bJAyW9bp4mjdg8cl8 sqzyISW+I/WJKVqBXYbDFUFpv5a+UtPjg9C2l+sQC0AvPrEyTM1jD6ELlo3Sh9MlW4gBgSCKHFUT qPkTyzqIAvYJ5iLeO0LNd3YZoouYXmwlDO1JXUuxLFWYEkMRiq278geUrty89iWLfWOYE06qxujK ZSyq4Vq/WJONR8PI8aYqn2mWawajJMJZZDdTxylJHLpHxRI+MSnZF/d8iB+0Se+KUfeWOpatqMlt eJ9X0CCgaGqs98xANH4k8LdehT7Uh2aibOqnYAAoNgOgxVKIrC70y+Daenq6ZdSE3NlUL6Ejmpnh 5EDix3kj/wBkvxVDKoG88i2d3PeSzalftHfSxzzWzSpJAGicOoSOWN1T7KrtvQbHrWs4wepcyGsM QKjHYd2/3ofU/wAuotSFwLnzDrXC6VkuIku1WJldQrL6Xp+moIHRVA3OJx31LLHrjCqhDby/TaYR aXqunafDpmnXdzdPKx9XVr+VZ5IUAAqAQObn9gceNas1fstOMacXNl45XQj7tk00/T7XT7Vba2Uh ASzMxLO7sas7sd2djuzHcnC1oTVdMuWlGpaWyRarEnCkhIiuIxUiGfiCaVJ4OASh3FQWVlVK/mmm tbOWaBraaRC0lu5RmjYhaqWQshI9jTFUNBdTQEmM05ddq9MVVv0pefzj7hirv0pefzj7hirv0pef zj7hirv0pefzj7hirv0pefzj7hirv0pefzj7hirv0pefzj7hirv0pefzj7hiqFmPrFzIA3OvMEbG vXbFClb29vbQR29vEkNvCoSKGNQiIiiiqqigAA6AYq8s1bzz+Y0Wv6kljYNJpNvcXFvZ0spZGk9K OONSWVuW084b7NHA+E7NhVCw/nX5o1CsOneWHZpommt7iJpbj9zKxS2uPSESFo+amNvi3bdaqMVT PSfzmvr3XbnSZ/LFzaS2ttNeMry/vpIo4fWjEMLRI0jyfZC/dWhoq1qX5o+aI9VtI7fy1dGyhtzc 35SOdxIZI0EUaO0CFVV51Ltx5fCw47bqpnpH5ieY7+5vI7jypc2EdrYz3iPK8jM8sJ4/V+Ig48mf kBxc9KgHFUA35s69a+XLrVb7yrdRyWTwxSisscbVSR7iX4oS6RwiLlUgijLuDWiqWw/md+YUwN0n l2VEdVEdoYLl05LG1ZBMsYYpI00Liq1ABXrviqc61+ZnmS3s9fOn+VrqW40qaG1s5XWUxTySSSRS ShSkRaKNogQUY8uQ+zuQqjPNP5i6xod5awReVb+9juE5SyIQxhZjKED+gtwnE+jUkPUKfsk7YqlW i/mf5p1HzhFp8vle/s9OnEUB9eF1WGYNJ9ZlebgVYLRVVV2YfFyHTFXpuBW0ZkYMpoykEH3GKon9 J33+/P8AhV/pil36Tvv9+f8ACr/TFXfpO+/35/wq/wBMVd+k77/fn/Cr/TFXfpO+/wB+f8Kv9MVd +k77/fn/AAq/0xV36Tvv9+f8Kv8ATFXfpO+/35/wq/0xVSnuZ5+Pqty41psB1+WKE0/Q1r/M/wB4 /pil36Gtf5n+8f0xV36Gtf5n+8f0xV36Gtf5n+8f0xV36Gtf5n+8f0xV36Gtf5n+8f0xV36Gtf5n +8f0xV36Gtf5n+8f0xV36Gtf5n+8f0xV36Gtf5n+8f0xV36Gtf5n+8f0xVa+iWbqUcsyMCGU8SCD 1BFMVQ9p5S0KzbnaWyW78Fi5RJGh9NPspVVHwiuwxVU/w1pX1v656Y+t8PS+scU9T0614c+PLjXe mKq36Gtf5n+8f0xV36Gtf5n+8f0xVSufL2m3UD29ynrwSjjJFIFdGB7MrKQRiq9NEs0UIhZUUAKo 4gADoAKYqu/Q1r/M/wB4/pirv0Na/wAz/eP6Yq79DWv8z/eP6Yq79DWv8z/eP6Yq79DWv8z/AHj+ mKu/Q1r/ADP94/pirv0Na/zP94/pirv0Na/zP94/pirv0Na/zP8AeP6Yq79DWv8AM/3j+mKu/Q1r /M/3j+mKu/Q1r/M/3j+mKu/Q1r/M/wB4/pirv0Na/wAz/eP6YqjsVdirsVdirsVdirsVdirsVdir sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir/AP/Z + + + + + + uuid:39AC52ADCAFFDC11AC15B6426E08541E + uuid:46ba4750-b6d0-a148-b72a-6aac87b46fcf + + uuid:11ce5472-22d3-2e46-9483-571136a36a67 + uuid:96F9E1E974FFDC11AC15B6426E08541E + + + + Document + + + 1 + False + False + + 39.000000 + 7.750000 + Picas + + + + + Minion-Italic + Minion + Italic + Type 1 + 001.001 + False + MinioIta; Minion + + + LucidaSansTypewriter + Lucida Sans Typewriter + Regular + Type 1 + 001.000 + False + LucidSanTyp; Lucida Sans Typewriter + + + Minion-BoldItalic + Minion + Bold Italic + Type 1 + 001.001 + False + MinioBolIta; Minion + + + + + + Black + Red 2 + + + + + + Default Swatch Group + 0 + + + + White + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + Black + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 100.000000 + + + Yellow + CMYK + PROCESS + 0.000000 + 0.000000 + 100.000000 + 0.000000 + + + Lime + CMYK + PROCESS + 33.000000 + 0.000000 + 72.999992 + 0.000000 + + + Night Blue + CMYK + PROCESS + 100.000000 + 50.000000 + 0.000000 + 0.000000 + + + Pigeon + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 30.000002 + + + Red + SPOT + 100.000000 + CMYK + 0.000000 + 100.000000 + 0.000000 + 0.000000 + + + Red 2 + SPOT + 100.000000 + CMYK + 9.000000 + 82.000000 + 60.000004 + 14.999999 + + + + + + + + + + endstream endobj 116 0 obj <>stream + + + + + application/pdf + + + RBrotation + + + + + Adobe Illustrator CS3 + 2008-03-29T22:52:51-04:00 + 2008-07-01T16:04:40-04:00 + 2008-07-01T16:04:40-04:00 + + + + 108 + 256 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAABsAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9DQQPPJ6aU5Urv7YoRX6 Iu/FfvP9MUu/RF34r95/pirv0Rd+K/ef6Yq79EXfiv3n+mKu/RF34r95/pirv0Rd+K/ef6Yq79EX fiv3n+mKu/RF34r95/pirv0Rd+K/ef6Yq79EXfiv3n+mKu/RF34r95/piqjc2U1uoMlKMaChxVU/ 6VX/AD1/hirtJ/3sH+qcVTvFXYq7FXYq7FXYqtmlWKJ5WqVjUsQOtAK4qstbhLm1huYwQk6LIgbq A4BFaV8cVSPzh5rHl6C1uFhN0pnpe28XFplt/q88vNFZ4x1t/wBo9Aab5Cc+Fy9LpvFJHLbbuuwP 0sgRw6K6/ZYAj5HfJuKRTeKEu1r+6j/1j+rFUL/0qv8Anr/DFXaT/vYP9U4qneKuxV2KuxV2KuxV jHnrzM2i6VdPGgb0bK5vruQr6hjtbcKHKxBo+cjFwEUuoO/xbUKqX6LqV9rulRaXYaoLMxAGHUYr WSKWWG1la3miNvdUe3milj4SBw3UU60WMgTyNNuGcYm5DiZZp2lWGnRslpFwMh5TSsWeWRv5pJHL O7e7E4REBjkySnzReFg7FUu1r+6j/wBY/qxVC/8ASq/56/wxV2k/72D/AFTiqd4qgNe0W01vSp9M u2dbefgXaIgOPTdZBxLBqGq9eo7UO+RlGxTbhzHHISHMJbdnXdCSJ7KF9Y01RHFLZqIYriBUAUyQ iNYo5F4r/dcQa/ZNPhETceW4bo8GT6jwS796Pv8A1oiTzPB6k4tLG8vobVil1cW8alI3H2kCuySS sn7QiVqH4ftAjLHESDVvzi8nWki22nyy63fuP3drp8ZlJJG3x7L9xJ9sqllA2dhg7NyzHEajHvKA +v8A5w+Y/wDeOztvKmnt0muj692V6GiUIB9mRfnkbnLybuDSYuZOSXlsFaH8o0NveNqGuXmqX2ow SWd/JeFngltpgBJCYldJFU0FCkqsCBQ0qDZCFdbcXVaoZaAiIxHcibPytq/lSmo6Sx1WNVdb3Sjy DtG8sk7yWss8k0rXDSys8nrSt6pP2louTcNlmkaxpur2KX2nzCa3clSaFWV1NHjkRgGR1OzKwBB6 4qjMVdiqXa1/dR/6x/ViqF/6VX/PX+GKu0n/AHsH+qcVTvFXYqo3t9Z2FpLeXsyW9rAvOaeRgqKo 7knFXlTeWPNGo+aNG80W1k8EGlXV5c2VvLa2qz3Ed5JcH99PJPDc2q8bpvgCPtxZl5/ApVl/kE6d DBc2D2cVh5jt3Z9ZgVERmeZ2cTRsoHqW7kn0m7AcTRlIEaDIzkQATsGWYWLsVdirHdQ0Z08wR6ho kv1TUpuJ1RCOVtcQCigzoCv70BaRSL8XY1UUxVNWubu1Km7CPAxCmeMFOBOw5Ixb4a9wfoxVG4ql 2tf3Uf8ArH9WKoX/AKVX/PX+GKu0n/ewf6pxVO8VQrX9ZXit4XuGjPGRlKqit/LyYip+X04qkMOm XWt6891rYCWmmSq2maNXkPUG63lx+y71r6Siqp1qX+yqyjFUj8z6HHexR6jb3A07WNODPY6lSoQG heKVaj1IZKDmlfAijBSFURp+p6nJYQT3+nPBMyA3CRMJArU+LgDwkZfCqhvbFUyiljmiWWJg8biq sOhBxVbc3EdvA80n2UFSB1J7Ae5OwxVKI9e8v6fPJb6jqtnb6pJ++ubeW4iSRaryA4swbiqf1wGQ HVujp8khYjIj3FVk80eVGj4SatYtHKWiINxEVJAXkn2qVpItR7jxwcce9P5bL/Nl8iv0PUrS6g9O 3uo7yFKm3uonWRJYgStQ6kglGBRt+o98kDbVOEompCiu1r+6j/1j+rFihf8ApVf89f4Yq7Sf97B/ qnFUyv7iSONY4afWZz6cNegJFSx9lG+KugaytTFp6yqJvTLpCzD1GVSA8nH7R+JhybxONp4TV9Ft /DIOF3AvK4t6/AOrxn7afTSo9wMUImGWOaJJY25RyAMjDuDuMVS6S7tbvWBp3rRl7VRcS2/Ieoxr 8B4deKGhJ8eONp4TV1smeKECv+h3vDpbXbEp4JMd2HyfqPevjiq+6AkvrSJ/7sCSYDxePiFH0cy3 0Yq8l1+78tWPnnWl1+3k1C0uuYu2jRYmiaKOB4grJcKzD0ZACSoNV+EVLnMSVCRt6DDHJLDHwzwk cvtv+Hv/AByXLqf5dvYPNpWi3KS6RLb3kZup2Cf6RNaROyt9b6+mI6FyEBXc9anihWw5I8PUCVSk PVY2HcJH+b7/ADekWDWDaBot5psbW9qsdqLKJ/trbzBIxGxq9fgYftHcA1OZMarZ0ucSE5cX1WbR Wtf3Uf8ArH9WFqQv/Sq/56/wxV2k/wC9g/1TiqNheNrm7vZ2CR29YUZiAqIoDSMSelW6+wGKgWWE 6rf6X5l1OLU9P81Q6VDpUn1MqWQes09JF4yR3ETenMY0op+16ZHSuUEiRsGnbYoSwx4ZYzLi391f 5p3H6U88pyWGm6fDHc+ZotZfUZSLG6knB9X0kSJo4eUsvMh1LNxP2m6ZOG3W3G1IlORqHBw8xXx3 2CbSSnT2vAgrEImuoU8H35r8i1D9JyxwmL6/5TFzrluYvM50rUZ7VYLe2jYpNMyzNNcSUWaJnEik g8RVaAhtqZVONnnTsNNn4MdGHFEGyfhQ6JPc6Pbkt6X5kNFKkTtJCl2OJczcpHKtc8gOAZKchxPx AjplfD/ScqOU9cH2eX9X4qvkmyXUtQjaTzNeXcsNrHLLpty7rI63Mf1iO4ERuZ6emLqNa8SAyZLG N+bDWmoEeGBZ5jyNVfCO4/N6BDGL2yjNxtPGzKZEPErJGxjZkI6VIP0bZe6hd9UvBsL1z7skdfwU Yq39Vvf+W1v+Aj/pirksf3qS3Ez3DRmsYbiqKelQqhan51xVQ1r+6j/1j+rFUL/0qv8Anr/DFXaT /vYP9U4qjL3TZJVuUjKtBeKUubeQsobkvBiroQyErsf4YkWmMjE2OjG2/LXy2xDHRouQ4/EL+8BP GQyipA3o7E7/AKgMr8GPc5n8o5v532D9SLbyTpTfo0fouBRpEz3OnUu7mkUssonduIVQ1ZBWjbdu m2Hw47eTX+cy+rf6hR5d1J7HYl/Va7YTSTp6ThQVQR7/AAqKk99zXfJuMlV35WhuNVs9UuYUvL7T gVsrppp4JEBrXkIyyOTU1qu+RMATbdDUTjAwB9MufJKj+WPln0fR/QsQj4qlBf3gPFGLqKgV2ZiR kfBj3OR/KOe74vsH6k1sfLENnfG9s7aK0ujCLczevcXFI1SOP4Y5OCBuECDl1NN65IQANuPPUTlH hJ2u+nn+sp5bwJBCsSVKr3O5JJqSfcnfJNKpirsVdiqXa1/dR/6x/ViqF/6VX/PX+GKqNtcG3l9Q AMaEUPviqL/TUv8AvtfvOKu/TUv++1+84q79NS/77X7zirv01L/vtfvOKu/TUv8AvtfvOKu/TUv+ +1+84q79NS/77X7zirv01L/vtfvOKu/TUv8AvtfvOKu/TUv++1+84q79NS/77X7ziqhd3z3KqrKF 4mu2Krv+lV/z1/hiqDxQ7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqjP+lV/z1/hilJtZ1nTNF02bU9T nFtY2/H1p2DEKHYICeIJpyYb9sUIOLzn5SkeeP8ATFmktssr3MMsyRSRpA5jkd45CrKisp+Iinet MVW6F5z8ua1FbPZ3sPqXjXIs7d5YvVmS0meCSWJFZucZaIsGX9nfFKMvPMOgWV6lhe6la219JG00 drNPHHK0Shi0gRmDFQEYk0psfDFCD/xv5O+tWtr+m7EzXsLXNoBcRkSwoxVnRgeJFQe+/FqfZair Y87+T2nsoE1uyd9SV3sCs8bLMI39NvTcEqx5/DStSQadDRSozef/ACbHJYp+loJV1Ln9TngLTwN6 TrG5aeIPEgDyKtXYbmmKFa385eW5bC1vXv7aGG/llg0/ncW5+svFKYqQMkjpJzK/CFau4BAO2KoP T/zK8j3un6XfLrFrCmrkJaRSzRCQTeksrQSBWYJIgkUMpOzEDqwqpXS/mD5agmkS6me2jD3UdvcO hKXDaeD9bEPDm59EowPJRUg8eVMUKuqeffKOnaRqOqSarazQaXzW6SCeF5BMiswtwOYHrPwIVCQS cUppY6vpd/JPFZ3cNxPalVu4Y5EeSFmFQsqqSUb2OKEkX8wvLz2t7cxM0qaZevY6siNC0ln6c0kH rzxiTmsLPEeJALcfi40DUUsy/wClV/z1/hirGvOMWkv5Z1CTVw50y0j+u3aoqszR2bC5ZeLhlYN6 VCO4xQxHSPyc8tjSoEjuNUtLZnF9BYzSWrvb3TIirLyWOXk6JEqcTI8e24JqcKpppn5V6Lp+t6br EeoahLdacZm4SyxmKeSeS5lMk8axqpdGv5uBTjQN86hKb6t5P0fVbjU57v1GfVdPXSrgKVHGBTMa xnjVXP1lqmvhtihBRfl/ZQtayQanfRXNvHfxzXKm353A1ScXNwZawlVPrKHX0glOnTbFKFtvyt0y Cxt7M6tqU4hW+jknmkgkmmh1Nke6ilkMNSHeMNyFHB6NTFUPpf5PeX9Pn0+6XUNSub3TJpLi2vLm aOWbnKYefJjF8QMdsIv9RmHWhCrWu/lzLNLoyaVKUgs76W6vZZ5lDGG41OHU5oxGLaX1Kyw/BSSM rQVLioxVH2X5baTYx2K2V9ewS6fcW9zbzhoHettp66bwYSROnGS3X4/hryNVIxVR1T8rND1WKW2v p5msvVuZ7KBBGrW8l5cLdTskhViazJVa9AzLupoFCHuPyf0KeyktG1HUFUoIIZFa25Q2yxXUH1dK wFSnp6hMOThn3+1sMUpz5Z8jaZ5d1TVdRs7q7nk1Zw8sNzIskUP72WcrAAqlFaW5kcrU7n54qgn/ ACz0kSagYLq4iTV3rqsZ4H1YWuri8eFSFUoHku2VjueA49fixQzv/pVf89f4YpSLzJodtr2gaho1 zQQ6hbyW7OVV+BdSFkCttyRqMvuMUIuyju47SFLyVJ7pUAmmjQxI7AbsqM8pUHw5H54qrYq7FUMm pWT6lLpiyVvoIY7mWGjbRTPIkbcqcfiaFxStdsVUbvXNNtNUstLuHkS81EutmPRlMbtGjSsvrBTE rcI2bizAkDbFXatrmm6SLb668ga8m+r2sUMMtxJJJwaSixwpI+yRsxNKADfFUZBPBcQxzwSLLBKo eKVCGRlYVDKw2IIxVfirsVdirsVdiqM/6VX/AD1/hilB4odirD28u2Vz+Zh1qO/QXun2kIudM+rm npzrPHFOZSwBmqrqrAfDHySnxcsVX6rpmnXfn7TmfXdYs9RhtvrEOj28ksWm3EUElHaQekYpGDTK HX1OVOO1MUoLzLoGjL+Ymh+Ybm8aLVKJb2FtHaS3DskKXSTcpIq+lEx1BDIzgKOAqd9lU01Py3Nr +m6M8mrAzWiyynULSMKJmubCa09WKjuI/wDen1F3bpT3xQkGh/k1p1pp+k2esz2utLpd7cXnGXT4 YoXjuLYwGBYQXjjUPxlNB8TLUiu+KU08u+RJdB03QdNt/qE0Gk3bTSzram3laP6pJAsgAeUNcszr 6klRyFdh0xVlltdRXKM8QcKkkkR9RHjPKJyjUDhSV5Lsw2YbgkYoULDWdLv7Cyv7W4V7XUlV7GRq oZQ6GReKvxapRS1KVoMVRmKuxV2Koz/pVf8APX+GKUHih2KsXvPI6XHnm382LdKlxbxxxLD6ILFE hu42T1eQPF2u0crTrGPmFLtZ8nXmsRW7XWqFL2PSr7S5rqCH0+T36wBrhF5t6fE29QtT16imKGNa b+XXlix8vaZq3mCW31Kw0bT9RkuZbnTFgrDdyi75/VWDNB9XVXCxBNuRAC9MUo3Q/wAtbfT7fy/a f4hurSXSo0aKz0lhp1tfJAyFpbq1LTmV3qomfkOXLtXFU48zeThq3mDR9cN2luNGb1GhMHqeuvqJ IVlbmtVThyjFPhko+9KYoU08t6b5mutB8yX08Gq21rFc3OmhrYojJfSQz2soWRmKvDHCFqRVq1+H pilifnf8rbyTy1Bo2hwLcr9Z1F4IRb24trZNRmMisEkuLf02tlbjG8auQK/BviqJs/yN0mxhsFtp bR3sRZMUubFZoJprWK4imlli9VKtOLlWPxbNGh+KmKs80nTri0vtXnlW3VL67WeAwKVcottDFWcn q/ONun7NMUJnirsVRn/Sq/56/wAMUoPFDsVYxceS2l89Q+a1u40MMH1f6l6FQ3wSKJS/Mfvl9Tir 02j5JT4qhVoeQ9Pu9cXWteW21e9Gmw6cfVtlCAoZ/XkRXaUKJ1ueLJ4DqcUvNPzA/LtriTyp5Ljm kkknsoNMj1SSyDwRLZ8ppXilM6ejNJFG3KPi3NVAqKVxVmdv+UdhbNpZtp4E/Rj6gIWNoC8cGoXP 1hRbMJAYJbY7RSfEBUnjvirJPLXlb9BaXcaf+ltR1b13aT6zqtx9amTkgTgrcUog41p4k4qxry15 MtfLFzougW93bXMsU7aoUlt2jZYbfTo9Pmkt+JdFke4kSRqsP7xup3Kr0HFCA1XXNN0o2gvnkjF7 PHawOsMsietM4jjV3jV1j5OwUFyBXFUfirsVdiqM/wClV/z1/hilB4odirFJfKkE/wCYS+YotQgF 1aWyRzaYIgzcZFlSOdyJAwkqWVH4/YDoOpIVQmtfl7e6vctdXWo2z3c+l/oy4u3seU0TmOZHuLF/ XH1ZpPrH7wfHyCgVxSg7zyPpf6L0ryrNrsFnqCvqVxawQKkDut9b3cTLaWxlZkjtxdkoAWoqU98V RWg/ldp+n6lZ3941pdGyN1JbWkNmtvbQTXMlvIr2sZkmMHp/VTsGNS7Go6YqnOt+Uv0rrOn6p+mt VsPqDI31GxufRtZ+D86XEXFuYb7J3+ztiqG81+RYPMGr6Zqck6RS6XxNtyhWVlkW8tbr1EYsCjFL RoqjejnwoVWte8nXmsy6dPd3Vncy6dcXEqw3lj9Ytmjmasf7n1kpNCgCpLy8Tx3xQlmj/laNOtJ7 c6kH9bULC/5Jb+ny/R9ytxWUeo3qTzceMk21djx2xVCWf5Macssa6jcQX1kl1FcTWhtAi3Ihju0D 3VZZBLcOb0F5qCvBRxxSzTSNMns73V5pEt0jvbpZrf0FKuY1toYqzE9X5RN0/ZpihM8VRn/Sq/56 /wAMUoPFDsVYlc+VdbP5gx+ZLW6WOxMMFvdWollUyxxRXtVeIAxN++uIWRjuOLUpWjKUNrXl/wA8 ahctcxXMVtPNpf1aMw395DFZ3zRzB544Ei9O6Vmlj4mbiU4VXfFVC88l+bbnQNKt11FINWsJ9RnS 6aee5aEXdteQWqJPKolmMH1qMc3AJCk9dsVVdB8neZYtSs7jVtRmWxtTdSx2EOpX1xweSS3a3R5p fSa6RVimr6w258QKCuKpzrejea7zWdPu9L8xfovTLdkN/pv1OG4+shX5MPWch4uSfD8PTriqUeeP Iuo6/wCZNB1i1lt1TRD6vozj4pJBd204CuI5Gi+C3f40+Lou6MwxVhen/kv5jg0zTLJ4NKE9nFcR PqAkHqxyzfVeF5CIrC2LTQ/VXKeqzPVt5SNsVer6TFfpfau1zE8cMl2rWTPO0weIW0ILIhJEK+oH HAdwW74oTPFXYq7FUZ/0qv8Anr/DFKWX2oWGn2kl5f3MVpaRU9W4ndYo15EKOTuQoqSBihXxVinm Hytr2o6tqF/ZarNZ10v6rpMSXE6QxXrfWA880CERPtLFxLciCvTYYpYtJ+Xn5gyWFjM+poddi07V LGS4j1PUo44ZLqYS2ckRKyPMIl+BvV+L7JLOUXFUyu/JfnjULGT6zq72l6bfV2t1tNQvFSK8vLhZ bCrosHqRW8XJPiTb9lcVZL5a0bVtM8uyabf3T39wst2YJpLiZ5DDLNI9uj3DgzckjZVLbkU2rQYo Sfy1oPnHS7TSbbVrltVuY9QklvL5LyegtjZusfOOTjzCycY+G4JpKfiLUVZrirsVdirsVdirsVRn /Sq/56/wxSxzzdb3lz5W1a1srdru7urSaCC3RkQs8yGMfFI8SgDlU/ENum+KEw0+3mtrC2t5pmuJ oYkjkuHChpGVQC5CKigsd9lAxVXxV2KuxV2KuxV2KuxV2KuxV2KuxVGf9Kr/AJ6/wxSg8UOxV2Ku xV2KuxV2KuxV2KuxV2KuxV2Koz/pVf8APX+GKWtLVWuwGAYUOx3xVOfQg/32v/AjFVK7aytLWa6n QCGBGllKoXIVAWaiqGZjQdAK4k0yjEyIA5lT0+60zUbSK7s+MlvOgkicoU5I1eLhWCtxalVNNxuN sANpnjMDR5hrUJoLNYG9BX9aeOCmwp6jceXQ9MLBFehB/vtf+BGKu9CD/fa/8CMVd6EH++1/4EYq 70IP99r/AMCMVd6EH++1/wCBGKu9CD/fa/8AAjFXehB/vtf+BGKpfq8caRxlVC1J6ADtiqH/AOlV /wA9f4Yq7Sf97B/qnFU7xVZNDDPDJBPGssMqlJYnAZWVhRlZTsQR1GKQSDYSjUfLNvJEr6Q66PqM KMlreW8a0VXYuySQ/CkqFmLcW7mood8gYd2zfj1BB9frieYP6+jE/PXnS80TShd6oYYLbSbm3jvr xBHJ6l0IvrJ9KGa4s/3YTieKu8jE8VQ8eRmOW7TOrPDyZro2qtepPBcKkWo2Uno3tujcgrUDKyk0 PCRGVlqO9DuDiijVpjih2KuxVBa1rFlo+nPqF63C1jeJJHqoC+tKsQZixUBVL1Y12GCUqFtmLEck uGPP8FFW9xBcwR3FvIk0Eqh4pY2DI6sKhlYVBBHQjCwlEg0ea/FCXa1/dR/6x/ViqF/6VX/PX+GK u0n/AHsH+qcVTvFXYqg9W1fT9JsmvL6X04gVRFALPJI5okcaLVndzsqqKnFWJnyfqOvJdXeu22ni LUJ1uV0LUbRNSigaOL0YpWrIq/WTHs5Q8APhFaF2VW6j+UOgXsgvheXtrrlKvq9vMY5Wbt8A+BVX oqoFooA7ZXPGJG3O02vnijw0JQ7iEJ+jfzh8v/7w39r5osl6QXi+hdU67PUAn3Zz8shUxy3cjxNJ l+oHGfLcfj4Iiw/NOaS6XTNR8uahYa1KD6Fq6qYZOILMwnbgOKqCzHj0G1Ttk4ZLNEOPqdEMceOM 4zj9qM0jz+dd05ZtFSzvJr2MtpdzBdGazaUKrNFO5jimiljV+bRNHy49N6gTldbOJjETIcW0U1tv L093AH8w3BvbmQRNJbRM8VnG0UiyqI4wVLUdFPKSpPsDxyIhfNulnET+7FD7e78UmthY2thZQWVo npWtsixQx1LcUUUAqxJP05ICtmiczImR5lXwsUu1r+6j/wBY/qxVC/8ASq/56/wxV2k/72D/AFTi qd4qgzPdXM0kdqyxRRHg9ww5EuOqotQPh7k99qYqlf6GCeZIdU1SVr10T0dMLALDbOwIcrGP92Sj b1CTt8I41+JVkGKuxV2KsV843dzcXunaTo6ifXElF3wZuMENsUeCWS5YBmVXjkdYgBVn3AorUVY/ oPkrX/J9vazWyHVLKxdZJ7Ezia8kEdnHYxyRSLBZRM0FtCqLF6Y5/ExcuRirP9K1bT9WsY77T5hP bS1owqCGGzI6mjI6nZlYAg7HFUXirsVS7Wv7qP8A1j+rFUL/ANKr/nr/AAxV2k/72D/VOKplfzyR xrFCR9ZnPpw13oerOR4IN/w74qhL/VtL0GKxiu39C2nkaBbmRkWOMrE8xeZ3ZaAiM7/zfPIykBzb cWGU74en66VkvdH1RJrW3vIbllH71YJUd0+IgN8JJUhl2PiMIkDyYyxSjzBCrYXEjo0M/wDvTAeE vYNtVXHsw/Go7YWCIkdI0aR2CogLMx2AA3JOKoCW41ee2kksYYo2ZT9Wa5L7sR8LNGorxrvTkD8s VQvlbSbTTrSbizzalPJ6mq3c9PXluKCpfjsFC0CKvwqtAu2Kp1irGdb0eewvjrWgMkGq3Lqt1YNU W9/QUpKFBKSqv2ZgKgCjclFAqnJvrmFQ93bCKGnxSI/qBPd/hSg9xXFUb13GKpdrX91H/rH9WKoX /pVf89f4Yq7Sf97B/qnFUelG1abn9qOFPSB7KzNzI+ZUV+QxV5v5p87eUL7U54fMOnXMlhpqytYt G/B3ubW5MVytYrhF+HhGyB/fxUHGnOJO7u9NpMsYg45Dilz9xG3Me+0bpvnHyH5d0e61q0sLy1t5 r5NPn5t6sjuI2ulkAeeT93xmZ6g1PKtMlGcYiw15NLnyzECYk8PF+ju57M7uAqalaOh/eSB45F8Y wvKp/wBVgB/ssvdQh9QvbWTUrXS5Hp6zFnWhPIopkWOoFBXiWNewp3wXTIQJBI5BNAQSQDUjY+3f CxQV6DbTLfr9hRwuwO8fUP8A88ya/KuKo2opWu3jiqCsv9Jna/O8ZHp2g/4rru//AD0I+4DFUY3G lGpQ7UPevbFUHZE20rWDn4VHO0Y94q7p8460+VMVU9a/uo/9Y/qxVC/9Kr/nr/DFXaT/AL2D/VOK prc2cFxxLgh0r6ciMUda9aMtDv3GKqf1B/8Alrn/AOCX/mnFXfUH/wCWuf8A4Jf+acVX29lDAxkH J5WFGlkYsxHhU9B7DbFWE+btK8o6lp+kJ5jvZrWTUZSLUwDd7m54cfi9OXgYyECtUbbHaoyrKImr c/QZMsOI4wDW593zDHb/AMv/AJQw3RsbnVbuG5tnuI3aJHjCvHGsLFnit1j/ANH2Knop23G2VGOM dXPhn1ZHEIijX6+pvdry/wCWvI9rr+kXQ+uq8810bKWYKQHtL2O1jjkQWyNGJGAI5FeJPHq2MYxB Cc+ozSxyHp5C/jEn+dvT0mjCBtNUkR/WBbK1dxEYxMVr7ISgzKdA8+/MOx0hfO1rc62Fa0e3it7S O3ExmiT1DWbaGWNShd2AU8jxHSjVxctcW7vNBOXgkQ52SeVe7mPL5pZeaD+VdzbXP1LU767ubWza 5ht0QRK0dpbyLQSta8FEnpsSe7b4DGHQt0c2qBHFGIBNfMjpxPQ/L9jocHlo3OhqURZri75vH6Mh nEj+qkilIW2oYt1+yB4DMjGBWzptXKZn6+YA89q+PvTbV2DQQsOjGo+kZNxkN/0qv+ev8MVa0tlW 7BYhRQ7nbFU59eD/AH4v/BDFXevB/vxf+CGKu9eD/fi/8EMVd68H+/F/4IYqlF9oWlXZT1Ra3EcT mSGG7hjuEjdjUtFyIZN/A4CAebOGWUPpJF9yhL5Z0WVpGltNJkaVneVmsYyXaT7bNWTct3r1wcEe 5mNTkHKUvmVVdC09TbFU0+I2ZY2jxWkavCZDycwlmcIWO5oN8PCO5ic0zfqO/Pfmjza2P1X0BNQ8 vU9bkPU9StedfGv0dumFrQN3pNreSLLexadeyqoRZp7dWcKCSBUs3c9sBiDzDZDNOIqJI+KjD5e0 iAEQ2GkxAo0RCWyL8Dghk2/ZYMaj3wcEe5kdRkPOUvmUVb6fBFapZI9ra6elR9UtIxEpDEsy7NQB iTyou/jkgKa5TMjZNlU1eSN44wrBqE9CD2xYof8A6VX/AD1/hiqDxQkmo+c/Lem63b6Je3TQ6jde l6Mfozsh+sSGKKsyoYl5yKVHJhviqIuvMmkWmgNr9zK8WlpEJ3laGYOI2pQmHh6vfpwriqYGeATi 3MiidlMixchzKKQCwXrQFgK4q6eeC3hknnkWKCJS8srkKiqoqWZjsABirpp4IVDTSLErMsas5Cgu 7BUUV7sxAA7nFVl1e2tqsbXEgjEsiQxA1JaSRuKqAKn+g3OwxVC2XmDR73R21mC4H6MQTGS5kV4g ot3ZJSwkCMArRtuR2r0xVDr5t8vtY216Llvq93cx2MJMUwf6xMwWNHjKc4+RYEFwBQg1oQcVV5/M GlQaE+uzyPFpccP1mSZ4pVZYgKlmiKeqNt91xVMEdXRXWvFgCKgg0O/Q7jFUhufP3lC1u/qt1qUd u/rva+rMrxwevGjPJH9YZRDVBG3L49j8J3IGKpxaX1rdiU28gk9GRoZQKgrIh3Ug0PuPEUI2OKpn /wBKr/nr/DFKDxQwXWvyzn1Xzk3mWbVV+H0I7exe2LxrDDHMrK1ZgHdmuC6PxBRhtXfCrEdN/JfU n1uez1Oj6VbWlpaWerEqXeO3+q+ukcIkLxfWFhdDU0T4iORkNFWUaB+U0ekJcH69FNcTaTJpccwt FjMbzTTzyzgCRvttcbpX9n7WKpNe/wDOP2mzxJbxaksNrClusERtg5HoxxxyqzGUco5uDuV2o78q mlMVRJ/JFZNc/Sdzq63C/W47r0Xs0JEcMtxIkIPqcfh+sIqnhQCNRxpsFU38v/ltLoek2EEN8l1q VpqI1Ke+kjdPrDtbtaO0qtJMS/pSFvtULAdMVY7N+TV3aabcWq3Z1efUbWDSRM0QhFpbkxtdTHlO 1VcxF+KKW9RvCpCqcT/lIp0R9LtNQhtPU1K71N5Y7NQCbiOaOGPgsqbW/rAjffiBQYqlbfkLCIp4 4NZMH1mBrSVkt9xA31ReCfvaLSOy418Xr2piqa65+WEt55Y0nS3vTJFo8Eyz29rbpGbx5OLepErz JHDcko3GRnI5Ox2xVDf8qiW+8pabplzNFY3cQ1Ke99OFZla41W3nhY/ajqYDcAqe4QAU2ICWZeWd Bl0iO+9WUSyXtwsxK1oFhtobSPr3aO2Vm8CSN+uKGS/9Kr/nr/DFL//Z + + + + + + uuid:96F9E1E974FFDC11AC15B6426E08541E + uuid:725ae99a-7e76-5e45-a638-be54a8b3e099 + + uuid:713cf01d-bbe4-1349-a7d2-b732843c5112 + uuid:C78F7A50FFFEDC11AC15B6426E08541E + + + + Document + + + 1 + False + False + + 11.666667 + 28.000000 + Picas + + + + + Minion-Italic + Minion + Italic + Type 1 + 001.001 + False + MinioIta; Minion + + + LucidaSansTypewriter + Lucida Sans Typewriter + Regular + Type 1 + 001.000 + False + LucidSanTyp; Lucida Sans Typewriter + + + Minion-BoldItalic + Minion + Bold Italic + Type 1 + 001.001 + False + MinioBolIta; Minion + + + LucidaSansTypewriter-Bd + Lucida Sans Typewriter + Bold + Type 1 + 001.000 + False + LucidSanTypBd; Lucida Sans Typewriter + + + Minion-Bold + Minion + Bold + Type 1 + 001.001 + False + MinioBol; Minion + + + + + + Black + Red 2 + + + + + + Default Swatch Group + 0 + + + + White + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + Black + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 100.000000 + + + Yellow + CMYK + PROCESS + 0.000000 + 0.000000 + 100.000000 + 0.000000 + + + Lime + CMYK + PROCESS + 33.000000 + 0.000000 + 72.999992 + 0.000000 + + + Night Blue + CMYK + PROCESS + 100.000000 + 50.000000 + 0.000000 + 0.000000 + + + Pigeon + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 30.000002 + + + Red + SPOT + 100.000000 + CMYK + 0.000000 + 100.000000 + 0.000000 + 0.000000 + + + Red 2 + SPOT + 100.000000 + CMYK + 9.000000 + 82.000000 + 60.000004 + 14.999999 + + + + + + + + + + endstream endobj 113 0 obj <>stream + + + + + application/pdf + + + BSTsearchHit + + + + + Adobe Illustrator CS3 + 2008-03-29T22:50:52-04:00 + 2008-07-03T10:39:12-04:00 + 2008-07-03T10:39:12-04:00 + + + + 108 + 256 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAABsAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9DQQPPJ6aU5Urv7YoRX6 Iu/FfvP9MUu/RF34r95/pirv0Rd+K/ef6Yq79EXfiv3n+mKu/RF34r95/piqGuoRaSQxTyKklwXE KgMxYxoZG+yp6KpOAyAZxxmQJHRZYCG/JFpMshWKKc7Ov7u4UtGfiUfaA6dR3xEgeSZ4pR5+f2K1 xZm3DetLGhWN5uHIljHFTmwUDkQvIVoO4xJpjGBPJ1pZtd20VzbyI8M8aSxN8SkpIOSniwBFR4jE G0SgYmj0WTwiC8tbOWRVuLwuLZAHIb0l5vVgpVaL/MRiZC6THGSCRyDWnRLqNv8AWbORZIOTIHId ASpoSvNVqvgw2PbESB5JyY5QNHmqXNlNbqDJSjGgocLBU/6VX/PX+GKu0n/ewf6pxVO8VdirsVdi rFvOeleWdS9BtX1Q2QSOeGKNZIAXEhUScVlSRiw9Pj8G9CymoJGVZBE8y5ukyZIXwRvl3/o/HVjy /lj5Pu7We4N9qlpp9ur8xchLeJYi0s7bXMCngpnY8m+/bIeFE97lntDLEgVAyPdv3DofJUn0f8vL 3zTo99BqZvr8zIlqlrPaSxoLO29X98oBf0+MKt3o3Erx5bnhjY3YjLqI4pRMajW9iXU9PPf5d6U+ b/LXk69V7iw1Wzks7i9hn10pcQGQCa7ljSX4FoeD3zjlK1AETrxIaM4g8i36XUZY7SjKxEiOx6RG 3+xHLvKKtPL/AOWK6HqMEOqmO1llk9WEz2YlZLeadfTjHHeJ3dvT5f5LAg748MK5sJZ9TxxJjv7p dQPt7/im6+RfL2seXdLn0uSRYbeKS4tYOcKxXEszJMVvOEcqt+8hUPx6b9cl4YMRTQdZkx5JCXXY 89q29O46FOPJXky38q2b2lrcGWCVIi8ZjiX9+qlZJOSKrEOOOzVpTrvk8cOFx9XqzmNkb/oTLWv7 qP8A1j+rLHEQv/Sq/wCev8MVdpP+9g/1Tiqd4qlHmjSLzVdMS1s5/q06XNtOs+1UEEySkrySVS1F 2DKR45CcSRs36bKISsixRHzClba7LYLbWXmHjbXbrDEt+D/otzOyqGCPReDGStEcCo+zXegEq2LK WESs49xvt1A/HVW1ZwdU0q3aQolw06MiuULD0GO3Eg7ddumWOMDRVdG8uaHosRi0uyjtVapdlFXa pr8TtVjv4nIxgBybsuonkPqNou9s7a9s57O5T1La5jeGeOpXkkilWFVIIqD2wkW1wkYkEcwkFp+X Hk20uDPb2BSQxywn9/cMvpzBhIvFpCu/qN22rtkBij3OVLX5pCifsHT4ImPyT5Zj0+409LRha3Tx y3C+tNyd4nEiMZOfP7Y5ddz1w+HGqYHV5DISvceQQn/Ks/JIlmlTTzG9w7vL6dxcRgmVWR6KkihQ yyMCo2ocHhR7mf8AKGagOLl5D9Sf6fYWun2UNjaKUtrdRHCjOz8UHReTlmoOg32G2TArZxpzMiZH mURhYJdrX91H/rH9WKoX/pVf89f4Yq7Sf97B/qnFU7xV2Koe+06w1C3Nvf20V3bkgmKdFkSo6Hiw IrgIB5s4ZJRNxNF5Df3Ty+dLYiK3vdHgvb2LzZPdT6aRDCkk8dsjJcgXa+mvouphkCgK1VZy2SYJ 5p/5qR6JDFZeaNM1OygT4LXV7iFnWaGv7p5TQOJOHHmKE1rlJy0aIdji7NlkgJQlGR7r3Zvovmfy 9rcfqaTqEF4KVZY3BdR/lIfjX6Rk4zB5OJl0+TH9QITPJNLTMqirEKNhU7ddhioDEfM/nyWx0z67 oNg+tcZViJiWUxuCkjM0UkaSBxF6fxkfD2ry2yqWTu3c/T6ISlUzwfLy5+/oyyBzJDG5pV1DGlQN xXvQ/flgcGQor8KEu1r+6j/1j+rFUL/0qv8Anr/DFXaT/vYP9U4qneKqc9zbQAGeVIgdgXYLX78V Y3dare+YL+XSdDlMOmW7GPV9ajO/Lva2bDYy/wC/JOkfQfH9hVOrHQtGsbW0tbWyhjgsRxtF4AmP uSrNVuRO5atSdzviqMkjjkRo5FDowoyMAQQexBxSDTD9a/KTyRqcv1iOzOmXoNVutPb6u4PiFFY6 +/HKpYYlz8XaeaG18Q7juxbzDofnrQ9N1Oxg8y3+qf7i7y80WCNSLxry2CCOPmnKWWnqBuAI5EdK cgZQiRzNtWq1EMlGMBA9aTTynZz6/ayaZ5kjmubaRXupLOf65b8PSvJobWVobmWS6RLqKISiGZ24 MvbJSiCN2jFmljNxNF6MqqqhVACgUAGwAGFrbxV2KpdrX91H/rH9WKoX/pVf89f4Yq7Sf97B/qnF U2urhLeB5nBIQbKOrE7BR7k7DFVKys/TBnnAe8lFZZOtK/sKf5V6fj1xVSkjTT5xPEOFpK3G5jGy qzfZlA7b7N9/bFUfirsVUL+/s9Psp769mW3tLZDJPM5oqooqScVY1a6RL5ouE1fXYJYNPiqdG0eQ tGyVBX65cBSrCdlYhEr+7X/LJ4qoi98kaevC80MjSdagDelqEYLmXlSqXYY1uY24ivNuQ6qynfFU TofmNry4k0vUrf8AR2u26l5bItzSSMED17aSi+rESw3oGU7MAcVTvFXYql2tf3Uf+sf1Yqhf+lV/ z1/hirtJ/wB7B/qnFUcR9av6H+4syNv5pmWv3IrfefbFWPeYb7zUdftJvLdst/a2ySW+pUnjMauz I5VoTPD++RYwFJ6CT2oapGV7Ofghi8MjIeEncbfpo7fqTTy3N5kvNPm/xJZw2twzBFt4qMrRmJeZ JEkw3kLgb9B75KBl1aNRHGD+7JI/HkOiOsGeNpLKUlntwDG53LRNXgSfEcSp+Ve+Tcddezyr6dvb mlzOSEYioRR9uQj/ACe3vTFVCfy/pdxCI7iIzMrLIJpCWkEkbB0ep7qwDDsMVV7KeUmS3uCDcwU5 MBQOh+zIB70ofcHFUViqUahplprF9AJowU0yUSx3C/DKs5WlI5BRk+FqPxO9aeOKoma2mtR69q8k nDeS3d2kDqOvHmWIbwoaHviqMiljliSWNuUbgMjDuDuMVQGtf3Uf+sf1Yqhf+lV/z1/hirtJ/wB7 B/qnFVa7SeKG/twZIluw5t7yJWkMbyJx+JUo9Vb4gfDuMSLDKBAIJFsHt/Imp2qulp5vvIVmkjmm AhujykidjWvr8vijKo2/xUqa7UoGEjq7OXaOOXPGPs/4lNU0DUY00NI/M16V0m4lmuucVzI97HJM JFilJk34Rj0wTy8aDpk+A7btB1cDx+geobf0duY2+LK4WaW5e8dDDAkfBDIOLEV5MxB3UbCld+uW OCxDVvMXmnT/ADG95aaPc6nYS2UbLCisqo0k5SOjrDKxZV+KRQagNXieOVTlIHYWHP0+nxzx+qQj Li+yvePx1dN+YHm2Iink27mQo0gkjeTZTL6SKVMAfnvyZQNl+IVGDxZdzYNDiP8AlR+Bfeqad5s8 y6lqlmZPLNxYJ6byPcSNN9gGQNCyvBGOTekrLVh1X3wxyEmqas+kxwiSJiRHTby8/wAUy65vQLRJ LakklzxW1B6FnFQT7AfEfYZa4LFNR/MfQvL97daRLZ30zaaoa7uo0iMZZ0WUmryoxY+otfhpVvDK pZgDTn4ezp5IiQMfV7/1KUf5w+W5RamK1u3F3O9tDQQCroIG7zUAP1pOp8cHjhmey8guyNhfXz8v JP8Ay/qiXVtbXaQS21jqi/WbKOfhzXmOfE+m8ij1F/eKOXiDTploNi3By4+CRjd0ita/uo/9Y/qw taF/6VX/AD1/hirtJ/3sH+qcVTvFXYq7FVDUIXnsLmGP7ckTooOwJZSADiqQXlz5iuPMOmz6ZfW0 OjxKw1XTbghLhmIYCgMTsOOx+0K08MgRK9uTk45YvDkJA8fQ/gpA+mfm60T11/Tmd4+JiIj9MOXb kam1LU4EAV79a5Xw5O9zBm0l/TL8f5yO8q6LqXlzUH+s6hb/AKIa0t4haJIJJGuILa3twyr6SOf7 iTo55VHwA5KECC06rU48keR47PyJke/zHT4shi/0X6pPcr6UP7+vLpEZnDx8uwotVrlrgMNvdL87 6b5uvtW8u6XFNaT+oG5zGlxzWKVXYPdAAiUzKvwAKCTQ8tscxkJWA7eGXDPEI5Jbjy5c/wCj3Uin ufzWvLG7jubCC0lT6tJZtalRIzpPC8qNW6oRw9QFeS8hty3w3M9GAjpYyFEnnd+41/D7v1MnS4u5 tO06K/RI9Yk+rS3NtEaiN1KvNSheir8QryPhU5dG63ddkERI8P03t7lbWv7qP/WP6sLBC/8ASq/5 6/wxVRtrg28vqABjQih98VRf6al/32v3nFXfpqX/AH2v3nFXfpqX/fa/ecVd+mpf99r95xVZJqYl FJbeNx/lCv68VU/rdt/yxQ/8CP6Yqvj1FIjWK2jjJ68RT9WKqh1mQihiUg9RU4qhfVsCa/o+3qev 7tf6Yq71LD/q32//ACLX+mKq0GoRwKVgtoolPUIAo/DFVl3fPcqqsoXia7Yqu/6VX/PX+GKoPFDs VdirsVdirsVdirsVdirsVdirsVdiqM/6VX/PX+GKWMec9X1TSPLlzfaVDFc6ijwR2tvMSsbvPPHC FJBWleexrtihgFj+ezzQSyyaXF8MkyJG9wYLhEUqY5rm3Mcvo26rIEkm5tSRWHHCqL8n/mzNfaro uhX8Uc97rL38iXkUhMfpQ3V6sYhIhRJkjjtFUuWRjyU8T8XEJZJ5i856lpWq6ha22kre2mlaX+lr 24+sGOWjfWAkUUIik5kta0JLinLFUmi/NG9kvNLLWunQadf2upS/WJL56SS6bcCFhaOIKTo6ESJR QWQlqLxo6qFtPzjku4NK1CC0sm069j1H16XcnqGawlRUitudvGZJJon5xxOiM1f2ePxKq/lL84rD X7/TVmNrYWeoR3kcbNMx9W7t5bVYord5ktmcut03welyLL8NRuVUBZfmZr/m6LRT5fhTTo7nV5LC +czj1eMNgbwx/v7OYKRusn7v7ScVYq3qBVMrDz1reqWtpFcPZ6VNJrdxpWoT2dwty9sluLkqsizx IsTzPbJGvNTyD8gFLBQqkmn/AJ3awnCPVNIhE5SBiFkaBZPX5yJ9WY+v60ksJjMUXwnkJFLfDhQu 1n87ZtI1TW7ie1jl03T3isorMT/Gk6T36PJOyQO8TzizQRxmq0ZGLKGYgJZZ+YnmvVfLttpeoafG lxH6tzJe2kr+kJYLfTrm6ZfUEc7IwMIZaLuRxJAOKph5c1a7uta1yya5+u2do8MlvcFUDRtcKzva MY1VSYQFI/a4sORJ3xQy3/pVf89f4YpYz521W90jyfrWqWKF7yysrie3pwIV0jLK7ByqlUPxMPAb AnbFUzsI5Y7KCOa4a7lWNQ9zIEDSGm7kRrGm/wDkqB7YoV8VdirsVdirsVdiqyaCCeJop41lib7U bgMpoa7g7YqvxV2KuxVZFBDCrLDGsaszOwQBQXc8mY07sTUnFUf/ANKr/nr/AAxSgZYopYnilRZI pFKyRsAysrChBB2IIxQstLS0s7aK1tIY7a1hUJDBEoSNFHRVVQAAPAYqlMvm2wj82xeVmgn/AEjP b/W45KR+kYByDSV58vhdQlONasKArUhVT1Lz35U0zzJZ+Wr2+9LW9QVGtLT0pm5iRmRT6io0YqyH qwxShLzzsbL8wbfyvcWztbX1rA9reRqCEuJfrjskxLg8Wjsvg4od61PTFUw1HzRDaapYabb2NzqU +oQyXUb2htyiQRPEjSM0ssVRyuE+xy8emKEji/Mu2j0/T5bmzuXutRuLqARxxQp9XEGorpwM4+sS D4Zp40YxO/LdgoGwUoXy9+akup6b5ff9DXM1/qsyWd6kLW6JDObBb8unqT/FG8T80+KvGvL46Kyr N9PvRewNMIZIOMs0PCXhyJhlaIsODOOLFKrvWnUA7YoROKuxV2KuxVGf9Kr/AJ6/wxSg8UOxVhku uaXF+Zg0i60uFriWC2l0/VUhjMq3DxXpdJZC3qCtvbOIyq9OQJ3AKlNbrzdHHrn6Hs9NvNSnFml+ 09r9W9ARymURKXmmh+KRrdgtBTpUgb4qwnzL+Z+h6d5VtvMUukjUNal0mDUIrz6rCscL3CyRWnqh 5zKqNLLIvGN3KqX333VTrQfOWl3N9oNpp3luaA3MF9bI4S0hNklhcxW1xDwEu0YfiSIydgtAxrxV UvO0n5cw6/5c0jWbsWF8LxLvSrGG0R1muJLpHBMv1eZouc6/Hwkj5VPMkHFUx8yz+S9DbR9NvdCi nh1K9ij06KK2tmiW9RUhhPFygRxDsjgbKlKj4QVVXWZ28uadYvoItks59XhhvoZEklLnUr9Y7ho5 BKvB1knZtww/ZoMVY9dfm9+lUt4PKFm91eT362RllW2mjVWhmmVxGt5b/E62z0R5EZQDyAPEMqyb RvOUmo2Nzdvo93bJb6g2mqGe2f1GS7Nozrxm2CMtXrT/ACefdQyTFXYqjP8ApVf89f4YpQeKHYqx q41ny7/jiDQ5tN567Lbi7hvDFAR9XRZY+fqFvUHAyPHSlf3hoOJYhVA6nrdh5Z1u2eOGyh8v/oO7 uma2tws6RaW0TIkciOEaLhdtwjCbHofixSwnzHNpPmnUvJ82k6GbrSIY7udrAW2lTRtDplwkMkEb tPHxXkw+KKcxEcaLIOVFXoGhXHl3V/K2n+ZbzQ4tPgSM6rbpPFBK0JlX13uIjF6lC9eXIUc9wDti hGeW/Ovl3zRpVxqfl67+u2tu7QvIY5YgJUQPx4yrG3Rx0xSknlbzNpPnDRdJvdT0VZtQkMdpciSK 3eOCaW0i1FmQvJIfRcCNloS1ePIAqaKsuXStLWAW62cAgE31kRCNAnr+p63q8aU5+r8fLry364oU LTy35ds5WmtNLtLaV5vrLSRQRIxn4svqkqoPPjIw5daE+OKrZvLHl6X1i2nQK1zcQ3ly8aCNpbi2 kEsMkrJxZyrqD8RPgdsVTPFXYqjP+lV/z1/hilB4odirGLjVfLI89Q6LLpYbXpYPrkV8YYD+4VJI jJ6pb1BxqYqU5fHsOPIhVQ1XXvK2lma1/Q/1mw0jSmuri4torU29tp8ySERKrOjlZhZleESMuy8q DFKTz+adI0S30PVLDTLbTdBik1WzvLH6pGt3atZw3NxdLA9vKYV5TWFGVQwfryxVMvL/AJr0K3ur fy/o/l240+VpbhbmwgisoUtDA8CyySiKf0yP9Ljb9zzND7HFU113z15T0TWLDRNWvfQ1HVSqWNsY ppBIZH9JRyRGRauafERiqR+Yb/Q/L/mjy/ZfoaL6gedzHLaJHE1tdF7bSoJWX1IVaMRXnpEBXYfD xHw7Ksk1XzLBY3djZQWs+o3d+0oihtDB8K25Amd2nlhQBCwBAYtXoOuKGNyfmQ1/Bb3OjRejGmoa db3UV9CGae01K6W3jmgaGf8Ad/tMPUUttugxVVX819Kk9FbfSdSuJ7uSFbC3jW253Edwty8c6crh VVCLGXaQq4oPh3xSy2zvvrM13F6EkJtJRCzScKOTEkvJODOaASU+KhqD23xQicVRn/Sq/wCev8MU oPFDsVYZNrelJ+Zf6GvNKheeaC2ksNUWGJpFuJIr3mksjN6grb2zhCq9OQJ3AKlZrV95HsblhL5e ivYND0v65JfQ21m8VpYvHNwSPm6ScZVt5FVYVYfzUBxVLtR8z6Np+n6Hdx6Xa2vlmObU7W90uWzj NxavY2t41x6JhlaBd7Z42CqwYMfiocVR+g+Y/LUOpWekaT5Ymsb5DdQSW0MNjF9SRJLc3BcxTceD NcQufRL16kVGKpzrfnvypoes6fouqX31fU9UZFsLf0pn9QyP6ajmiMi1c0+IjFUo87eabDSvM3l/ S7jRoNRl1ZxGlzMaPCovLVfg/cyg0kkSX4nQVjFDz4jFWK/4+0+/0PTb298mWDadMl1rAgmaQGJI Wt3mmhjuLCJZZ3a+qpjPFzWkhJxV6RpumaB6moW1to8FosV4ks5EMCpPchY7hbgCOpLKWX4nAbkP kcUIi18ueXrSVprTS7S3leb6y8kUESMZyrL6pKqDz4yMOXWhPjiqvZ6ZY2c95PbRCOa/mFxduCSX lEaQhtyafBEooNvpriqJxVGf9Kr/AJ6/wxSg8UOxVjesa75K0/XTFqSRrq0Vr9ekuTaSS+lbRpOB JJcpGyRqEE4HJx1YD7W6lJLvzL+VSzWX1jTUaO2sLuW2uW0qUpa2tk5t7mE1g5QcG5I0dBTo1OSh lUde+Zfy20uxhtpooksLP68IoYdPmlht1s2a1vW4wwusSK0jRsxoG5U3BxVMvLDeTptIh1Py7ZwQ 2EQuIofq9obd0Cy0uIxD6ccqkyw/EvH4iBsdsVV9K83aBq1vbXOnXD3NvdzG2glWGfg0qxGZlLFA FCqpBJ2DAoTyFMUI680rTL1g15ZwXLBDGDNGkh4F1kK/EDtzjRqeKg9sVS6DyP5KgeJ4PL+mxPBJ 60DJZwKUl2/eIQnwt8I3G+2KUys9MsbOe8ntohHNfzC4u3BJLyiNIQ25NPgiUUG301xQicVdirsV Rn/Sq/56/wAMUpH5i1K50vQr7Ura3W7lsoXuPq7yNEHWMcnAdUmIPEHj8JqdtuuKEVZ3dteWkN3a yLNbXCLLDKjBlZHHJWVlJBBB6jFUJe+XtGvpL2S7tlmbUbVbC95FqSWyGQrGRWg3nfcb79emKpOn 5Y+SU0u20uOweOwtILq0hhS6uk/cXzBriJ2WUNIrsoNHJoRtTFKKi8ieVo7R7QWjvDLb3lnKZZ7i V3h1GQS3atJJIzsZXUEsW5eBGKpnY6Pp1hZy2dnGYLeaSaaRVd+XqXMjSysH5clLO5Ox27UxQl2n eS9C0xLKHS0lsbaxumvI7aKaT0nkeBrdg6uX+Eh+ZUUq/wAR3LVVT3FXYq7FXYq7FXYqjP8ApVf8 9f4YpSbW9Kj1fSLzS5ZpLeG9iaCWWH0/UEbji4X1EkT4lqN1/HFCLjjSONY0HFEAVVHYAUAxVdir sVdirsVdirsVdirsVdirsVdiqM/6VX/PX+GKUHih2KuxV2KuxV2KuxV2KuxV2KuxV2KuxVGf9Kr/ AJ6/wxS1paq12AwDCh2O+Kpz6EH++1/4EYq70IP99r/wIxV3oQf77X/gRirvQg/32v8AwIxV3oQf 77X/AIEYq70IP99r/wACMVUrlIoraWVYkLRozAFRSoFcVUrGSCbTLa7nSKMywxySGgCguoO1fc4l QLSfU/NEEenyXmjaa+sLHIsYMMcnpyBufJonjim9QR8PiKinZSX+E1nJ3buXj0tyqZEPl9u4q/xt uyL0IP8Afa/8CMscR3oQf77X/gRiqX6vHGkcZVQtSegA7Yqh/wDpVf8APX+GKu0n/ewf6pxVO8VS 3zDrcei6et7JE00frwQusYZmCzSrGWVUV2YryrxAqemRlKm7Bh8SXCO4/YEbaXVvd2sN3bOJLe4R ZYZBWjI4DK2/iDhBtrlExJB5hVwsXYq4kAEk0A3JOKvOfP8A57sjp2rQ6LqUM76TpV5qd3FBISJG gCiKF5YWDqhLEycGV+lDSuASB5NuTBOABkCLd5Pl0/zVp6WF7D9Z0co80Not3JdwRm0vJbVSlzSF 7m2n9H1YDIv7J7caMog80Ys0sZuJovRgABQdMLW7FXYql2tf3Uf+sf1Yqhf+lV/z1/hirtJ/3sH+ qcVTvFVOe2t7hAk8STIGVwsihgGQhlah7qRUHAQmMiOSSaj5buISt15amj0u8TgJIOFbSeOOgEck S0CnioUSIOQG3TIGH83ZyceoB2yDiH2j4/o5JbN5yvm1iCwQwWcl3PNa6dBcQXcq3U1t6vqq15Eo gtifq0nBWDMyry4/s5Y4qVv54/MLW5JLfy15ZNmkbtDLqOquFjV0Yo/FFI5cHBHwlunTKZSldAOz xafTxiJZJ8/4Y82h+Vuta0RL508x3Oog7tp1nS3tQfDYDl8+KnB4RP1Fn/KMMe2GAj5ncsmsvy/8 m2NukFlpcVt6TB47iIulwrCoqLlWE42JH2+hI6ZbGAHJwM2pyZT6ySpX3kuCNv0hoMrafr0dWW+k aScXApT0bz1GZ5ottqtyT9gjvJoRuheY01CabT7yE2Gt2o5XenO3I8CeKzQvQCWF6fC4+TBWqMVT jFXYql2tf3Uf+sf1Yqhf+lV/z1/hirtJ/wB7B/qnFU7xV2Kpdrmu2ukwIXVri8uGMdhYRcTPcS0r wjDEDpuzEhVHxMQBXFWFw/ldd3eq2XmHU7m3j1y1kmuLQxLct9Sa6keWWOB1uIY5RWU1M0TVJO3A hAqyHy9cSaNJB5b1LaQBhpd/0W8QVZg5PS5UVaRf293XbkqKskxV2KuxVJtU0q01jULbmpR9LkEs d7EzRzJIw3iR1IIVlp6gOzCgIPZVFzQz2ame3kkljTeW3kYyEr3KM1W5DrStD0xVGxukiLIjBkcB lYdCDuCMVS/Wv7qP/WP6sVQv/Sq/56/wxV2k/wC9g/1Tiqd4qgY5r27rJbskNrUiORlLtJT9oCqh V8OteuKpdpWkJa6/d3+oObrVrpSttdNQIlspB+rwJ/usBvicVJY7ljQBVU/xVLtftLC70yS2vYjM khURIhKyesDWNonFCjqwDKwPw9cVas7bXYLKJZruK5uI0CuXj4+oQOrMhUcj3IQD/JxVGWlytxFz ClHUlJI26o69VNP8z1xVq9uWggqg5TOQkCH9p26V9h1PtirEL/8AMbQ/L97d6TPaX08mngPeXcaR emXkRZSavKjEn1Fr8NBUdsqlmANOfh7OnkiJAx9Xv/Upx/nD5blFqYrW7cXc720NBAKuggbvNQA/ Wk6nxweOGZ7LyC7I2F9fPy8k/wDLuqJdWltOkEttZ6in1mwjn4cwrjlxPpvIo5L8ajl0NNqUy0Gx bg5cfBIxu6RWtf3Uf+sf1YWtC/8ASq/56/wxV2k/72D/AFTiqPv2aVksYyQ04JmYGhWEbMfm1eI+ /tiqhe69pWmX9rp93Itr9Zid4JpGjjh/dPHH6dWYHmxmXiAN98iZAHduhglKJlHev2/qX/WbDVrY vp15DcSQMGimhkWRUkpVeRQnZlbfxU4RIHkwnjlH6gQirS5FxAJKcW3WSM9VddmU/I4WCQT+a9Fi 8xm0v7mO1WC3ee2mnkijibi/pytV3DVG4Hw0oG3yJmAaLfDTTnDiiL3ra0ePNvlU1/3M2I4lwa3M QoYzR+rfs98eOPev5XL/ADZfIoZfMnl06kjWWqWlw9wONxbwzxO9FqFlCqxPw0IY+H+rhEgerGWn yRFmJA9xTO7ZI760ll2hAkQMfsrI/HhX5gMB88LUwS+0nzxpfm+/1Xy9pUUtrN6gcPMaXHJYpFZl e6UKyymZV+ABQTsa7Y5jISsB28MuGeIRyS3Hly5/0e6kS9z+a15Y3cdzYQWkqfVpLNrUqJGdJ4Xl Rq3VCOHqAryXkNuW+G5nowEdLGQok87v3Gv4fd+plAmu5dM0wahGkWrym2ea3j3Cygq0/Hd/hUch Xkdu5y6N1u67IIiR4fpvb3Kutf3Uf+sf1YWCF/6VX/PX+GKu0n/ewf6pxVEi7htY9Vv56/6MWaYC nIRQxB1AqR2Jb6cBNC2UImUgB1eZXPnryRrF2b/zDpt19bt5o49NMMjREW8rPEGJjuVRmjk9RXYe Pw13pjHJE7kO8jo82McOOQojf3/6XupkWhebvJmi2Wi21hY3VlF5iu5YLaCQh2SaB0sz6vKaQqKq qrxJ2HbLIziKrq4mbS5shkZEHwx9h9W2zKL5nglvmgJDvamVgP2XWqq/zI/4jlzrGN+Y4/IH+JtL 0jVbKSa+1OCOK0uFkZYUjtnaaGpEqcW5g8WVamtK0JyqfDxUXY6bxxiMoH0x/Tt3MQuvMX5PTxma XQ7pgluBFdOwPweuXQBvrIevqp7EDYkKSMp4sfc7CODVg1xjny+H9XuTv8vl8vS6ytk+mJBqkFhD NFJFLJJEIZ7eKaZGWSeVz+9vn4krxI/aqMniq+Tja7xOC+K4mRHLuJA6DpEPQdNCy6eqP+9jBeMF t+SI5RSa9aqBmQ6dv9E6b2t0A8AKD7hirf6K07/fC4qqQWdpbktDCkbNszKACfmeuKoTWv7qP/WP 6sVQv/Sq/wCev8MVa0tlW7BYhRQ7nbFUxnhs5ZPVE3ozU4+rG4UkDsRurfSMVW+kf+rlJ/07/wDV PFWvSJ66lLT/AJ4D9UeKqttHZW6sEkBZ95JHfk7H/KYmuKqK2ttHtbXb26f77RkZB/qrIHC/IYqu 9I/9XKT/AKd/+qeKrWtopBxmvpJY+6F40B+ZjVD+OKopJbVEVEdFRQAqggAAbADFV3rwf78X/ghi rvXg/wB+L/wQxV3rwf78X/ghiqX6vJG8cYVg1CehB7Yqh/8ApVf89f4Yqg8UICHXtLm1u50SOVm1 K0hjuLiL0pQqxykhD6pX0zyKmgDV2PhirV1r+kWuqQaXPcBL64UPHFxYgKxKoXYAonNlKpyI5NsK nFUwxVZFPBKZBFIshib05QrAlXAB4tToaMDTFXQTwTx+pBIssZLKHRgy1UlWFR4MCDiqFOtacNKk 1VZGksY1dzLFHJKWWMkEoiKzv024g16iuKt3er6faX9jYXEhS61JpEsowjsHaGMyuCygqtEUn4iK 9sVWX+vaTYQ+tc3AEYuI7NigaUrcTMqRxsIw5UszqN/EYqtn8waVBoT67PI8Wlxw/WZJnilVliAq WaIp6o233XFUwR1dFda8WAIqCDQ79DuMVSG68/eULS9+p3epJbSCZrb1Zlkjt/WRGkeP6wyiHkqx nl8exoDuQCqnFpfWt2JTbyCT0ZGhlAqCsiHdSDQ+48RQjY4qmf8A0qv+ev8ADFKDxQwu/wDImuXO peYruDXVs08wQrbt6NqwnhSK3khhCzGf9lpTIaIpJ6FcVY9oP5Owx6rDeXEUNtDpt7btbQvAkhni s45gWH72UxLLPctIoLs1FTkK7AqjNb/Jay1bV7vUpdQ4SX9zPNdAQVb0pUgREjb1BweL0CUkod3Y 06YqpR/ku6eYItW/TCcI7+TUXtPqScWkkmllpX1NjSSNK06RjbFUT5H/ACgh8savbahJqEd/9UgW K1X6sYWjf0fSlZWEzpSUszsCleRPxYqowfk3CtuHlu4zqEC6XBaziItxt9HZeCGrrvcCMF/5enxU qVWPaB+SF9qGiEa7x03UWklMwYLdtP6gtx6krpIqkrFFLEOpJYyn4jxxVmf/ACrBBpxs1vo1Muty a3dyLbAeqHaR0gYCQf3ZdaPX9n7OKsZuf+cfUnSAHXirRWsNk8i2tGMcEKwVU+t8LMjTb7/b/wAn dVPdb/K+S98taRpT33OHSIJluILW3SM3bycW9WNXmVIrj4W4yMxHJ2O2KoUflCt95VsdPuZorG8D anc3oSFZgZ9Vgnh3oyAm3+sLQ9+AAp1ClmflnQZdIjvvVlEsl7cLMStaBYbaG0j692jtlZvAkjfr gQyX/pVf89f4Ypf/2Q== + + + + + + uuid:92F9E1E974FFDC11AC15B6426E08541E + uuid:f2359209-ca4b-f145-bc24-11a32d3118e1 + + uuid:C88F7A50FFFEDC11AC15B6426E08541E + uuid:C78F7A50FFFEDC11AC15B6426E08541E + + + + Document + + + 1 + False + False + + 11.666667 + 28.000000 + Picas + + + + + Minion-Italic + Minion + Italic + Type 1 + 001.001 + False + MinioIta; Minion + + + LucidaSansTypewriter + Lucida Sans Typewriter + Regular + Type 1 + 001.000 + False + LucidSanTyp; Lucida Sans Typewriter + + + Minion-BoldItalic + Minion + Bold Italic + Type 1 + 001.001 + False + MinioBolIta; Minion + + + LucidaSansTypewriter-Bd + Lucida Sans Typewriter + Bold + Type 1 + 001.000 + False + LucidSanTypBd; Lucida Sans Typewriter + + + Minion-Bold + Minion + Bold + Type 1 + 001.001 + False + MinioBol; Minion + + + + + + Black + Red 2 + + + + + + Default Swatch Group + 0 + + + + White + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + Black + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 100.000000 + + + Yellow + CMYK + PROCESS + 0.000000 + 0.000000 + 100.000000 + 0.000000 + + + Lime + CMYK + PROCESS + 33.000000 + 0.000000 + 72.999992 + 0.000000 + + + Night Blue + CMYK + PROCESS + 100.000000 + 50.000000 + 0.000000 + 0.000000 + + + Pigeon + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 30.000002 + + + Red 2 + SPOT + 100.000000 + CMYK + 9.000000 + 82.000000 + 60.000004 + 14.999999 + + + + + + + + + + endstream endobj 135 0 obj <> endobj 137 0 obj <> endobj 139 0 obj <> endobj 141 0 obj <> endobj 143 0 obj <> endobj 145 0 obj <> endobj 147 0 obj <> endobj 123 0 obj <> endobj 125 0 obj <> endobj 127 0 obj <> endobj 129 0 obj <> endobj 131 0 obj <> endobj 133 0 obj <> endobj 134 0 obj <> endobj 373 0 obj <>stream +H‰|”}PùÇ7ʆ=ÑP²îH²šMÇóêWÏzÚV{VÅŠ‡"/â+ !AD“@H‹@€¼HHH$¼,`$(/Õó®*ô®ŠíÝ”^ëÝÜÔ¶è\[ì´÷Ä[§m"NïúOggvgv»Ï÷å³?µa0œC¾“xhËaq‰XZòÝ©D”¬HÄÂÈÃM!’Z¥[½‚N£M룴OçÐ bmZÂXÐÆM¬¦Ù‘…ºRY¹\\P¨äo¾ÊÿÞ®]Û^œ·ó÷‹¤yùüŒr…2ÿœ‚Ÿ\"”ÊeR¹@™/ÚÊçï—Høé‘·üô|E¾\¾»,„/Vð|¥\ Ê?'ó¥gÿß—„>7$A£’Ê@2ä‚Ćm"+•H€qœ1½"cåú•£Q¯DÝE7¢ÌuL'ó ‹ÊÚ>Í°ZWÇ`|¢x˜?‡‰ä’£Yż2I‰ñ,yž9 &S—ÉÞnâ´šíͽäÜÑO(º–>¦ß¦/¶Qøn×1WšGà?<(ƒ(£¿1wXúÔ­½ÂË©ìV”益÷ô½ØŸ{?þåC.¬£±áÑ&že,þÈh6¨h„“L¾Ôö9ÆbÆ™íÃ{Ûf Ö—VUhÇt•š=là@ ¾*”(S¨õ¤¡Ùæi¥ðk@û ºçïu­ñøBÅu‹¢ kU*L•äÎ9¹ÙÔ;Góhä îžK¢‘K3£Þ~žßœÇZ˜šï£{*üÕNÒû‡ñ÷ïPt"¼N(„BŠå–VÕ’5FW_Ðö±o–òÍúzÝvÌfw›ì¤««Þ`§ŠäõeË®û <šb ¶¶2´â‰ìãÇK…dVù«mMææ6êñìýð1wª`ìÀ¡TIqoš`ÓV.3_róú箿}Á£càaë«ÍOänPNˆ¾<Õ×…µ[/¶ÚHÖ·éóªÐ¿&áÐ?̲·„ÞÅZMTî¬þ±†^£¤¤9¨«Äô}c-©S8Út”®­ºN_[g¬Ô6žÃä½z·oÊ99Í»>=õ—xËó¨ã“Žù'¶xï(J¯bâ pzØ5à"]}:¹Â;tÝ-6+f³º]}ܞ毀L:$ÈP9§‰?ÀR™’S Êš¤ë¦BKõj¯š-L«€&>Æoƒ v +YïíÉXóÁˆ+?{SNJ.…ûOÒI„Ûè¯RcÁó]r7'«,]ì¹ð_žqóà³PßÖĆ½Ì©”XEdvªº ›:&P¤gqßæÎWñr¤¥UÔÊÝÊÞ* ŸÛ\xäÔ1n£¢‡ °ç +¬øYÞ ÿ¯ Kí°r-ímm­<üâ|ïŒÛ×si`tæÂG˜£±³®“gnöµ:FÆ8,`‡Q©A8T³á œ—qøW°ÝA43Ûß÷B”y{píÁ‚—ô4¨„µþì$­E“´.•Ÿìt‹Ò eŠÂš¦çh~uZÑ®<‡Œ,WÊÄTQy†(mÖÈüuAGÌ ]Õ¤þe¹f7U2=ÒdÌ7Po>;]s¢ædÍ ‹¿¬hpÙsÀ΂F`¾ˆ/=Ñáy·æ"óTÒ¿B[¸¶_€½a¯’ÙΤ§R)êé ø,d[SuAXñR:mD“*ˆ[ :âçwý«ÔÝ;—Î}˜ùáVÁ™JE./Q”°Žçî»´0l†Y¢…^ŸA3Šª°F£±±†—Lü¶ÝZðÛ©V«¥ÙJõ‹÷R¬R« +þ8ÿ˦°oPÜgC'aâ7tY"ºŠ ”˜Þ]¡ËÐer ®ßè¸ï¸ÇÁ;çºG½ƒ˜×ÝÙb#­õµ)|öb­­Éf¶™­G¯µ³ÝWãÄÜ:¹­”,:~dÇ)ª‘Ùõ«ð¨ Õ8RB²v‡cçMæN°ï‡7ù1À:¢Á„žWdV‘º†Îa3õ8·_A闘ð¾²Åç阷4o£iÌsE–*ô>óÝŠÒH©·0@ÞXú$à§XZÇSžƒ.í€}®{MLЛŸi;¢yÝÊ×ý{õK×W+¦y5 dkC¯ÿ`${¸u endstream endobj 132 0 obj <> endobj 372 0 obj <>stream +H‰”•kPWÇ»™éža I-q»gS¢qgŘUãÛ1Q"Š ¯áa@pÑQEC£‘AQŒŠ  (¨¨Ñ ¢Ä6 +Q‚@QiŽ®{š½Ôf{°¶²ûq«?tÕ½ÿsîïþï9÷â˜Ô ÃqÜc¹Ïg~K–kVlŒ‹ +_¾Ù°Æ˜¤KÕÇ%ëôŽyµ@ã‚»ÔŒ +„ýs:1ÃjöŒ ïAáx8û¸94Û´‰IF}\Ll²úÃÈÉjïY³>V/ŒJŒÐ©W ɺƒÚwsd¢>)Qž¬‹òR«ÆÇ«zƒ:@gÐéSÄÑwê8ƒ:\­×Åĉz]”:Y¥KסNŒV/Š‹ÑÅ'¦ª'ª—%Æ'è ^†‹æŒcïa˜†1æ‰cÅ°)ö†-’cŸb˜?Ž­Æ°@[‡a0,T”‰[Çœ0 æÙ°SØ .Á?Å“ðl¼Î sÚîôDâ-)’¼‘N‘ÖKßjba$.’Näb2—¼,‹–;»º[Sq˜ËK„ša«"xïÌŒ©Þr/¯ô>rW¡±-H1äÅ zÿ”y!K~[V´¤dÅ}y@÷&¡ÙIpºÚÍܼß]ÒT$—k—ÜCžŠó–þ¢ÁùÐP (`¬ +ÜCà}¯!fêÀÌâàB¹¯¬)³{GÇù·>'*$Ý„¤K˜ –˜ÂvË]Íà‰ƒ<%`T‚'x"OÒ1{~GSUùõ_Ö7ÉÏ´XÚo«ž!QuC–=;Í-2¤ÿ‰–ã9¼Q°IU6nÄFòÒwW3'<àð›<\³Kn*a nÇnv²½?Áø.ÕÙ½öȘö„€^äK£U$¯UØó»ò/FÉï¯*Fc|U¨ }böf‚™à(&ËKÞ*…U²ÃQ¨åP-˜à!72Û!fE‹p^¸RðáÐÀ0«!]+R†cRq®®ôJ8e¯Ð–O¹‘6âÙpÌÜ‘óy$:+œ'¦:tÐÁA‡ðh— (yèxJÂ:ÔA€3‰¶Â@­íTYíéquÍ%WT7âïúaÊ7Dšýi¤u _'Ûßš‘Ó'As3DºfÞYÚknÀŸ9·®_!§Lðî)ÐX䈔ÓzV<½ÑVu”M,¶…Þ¥Wì+:ÊR­™×ˆÜÌôœLz½¹ñ, [dàuMšöYÊö0f–¬ôø·ÇûiÀÌKcØ™¿”2!•lc`ÈŽ8z¾ñò7ÿ€ÌgX×t.4EˆîcªÛcÊìT+ezœ¥àHªµ¬‹°úŠú Oh û‚a’H9aíÌD#›EZ~% K#ãG¼v˜±­51‹wùEG±)iñÆX:yý¾[þŽU/NŸêöÐNuS§…#B‰‚ê>hõ¡Q¤1ˆ]eyÝŸ8s3HúqÛAë)ölW’ÿVQᶨ(pºò Œíº–º£^Ì×çó½0sPwØ¡œwP ‹”ü°UƒŒ¤EKd‘GRt-ÓH®Ö õ¢Yhò-$Å›‹jË ™uOá©Õš3h$5ƒ¦îîקØŠCµeuteëžåß9aÓ8¼û-ì·K„cpXñb,DÑ´©h<š¸ÖêÕµ’‰h¾eà韮•—4ŠÀÑS–›Óiã´/¯³±¹çskå0B¢aN(¾}æ: còsD+ÖÀA ‡C‚X… J^ ‡,]ä%ó}pÿ¾É”q”y +Jˆ´Î¡Q’©—°«‘§þ3é¼äg±^’}-•Mt¿YÎ"±3~“ÝÙ}D’©KZg‹ ×ÏKñü½fB9.nP.ã©!¨]¨AZ$©Wé¨qÊe´1ýE§E§‡ŒÚµN¾£=… zþ +ªYä;~´.ñ‹vhµK =]¾Ýà‚ñ¾ F+ÐRÑ4ÑèXÉrR$‰~mÿ{ÃKILŽU#bÔŒ°>4<8ª4"È òxeGÿ º¬87ç;Ÿ“QÍ ‘Q=…†ø}a´nz.µÿ ¢w$î0È£Ú–ZÛĮֻ̲́Ƚ‘ô–à‚ê6Í–S~IÕΡt 5ˆDîZp—¹¦®JjRÝžŒšÑ, 5 + zIþÍ/$-‚žaæYРßdK÷o©ŽcbjZMôÙ>M¬*-ëC‚u´&o¯èfås&C(ü…àB¢ PËÀ&Â" +B!ˆ@cHB6‰­hçà5çYÏüû¨!!G|Å>OqËlsL0µyçÆxÕ–¯ Ûjèàt"?«ÀdRù„lõc6jÏ‘-ßy;sÒYêÕ¶éDÞÞ¬/ ª´Â°cñLtÝ%S?}™‹"×Î6ÿ¸?¿ô«J–úú6Qp°àP©ª#¥}Áa¦j_ÕþêSòêæ¦bÕÜŠì*†zµë‘gÉ®²©õ˜¯0 äSö­|F½z&(.“ÔÐáGæº lñ玫ª³«sJÅèíOÅè›MÕÝRÕÉœã6’ËCw•ä[ ¬âú¥O‰|‹å›*Õ¡½M›3 Ñk̦ÿ­pç@ï¿ÝmÝÒUÝ^*ßèÎÚQÓQV%å» ôZ±\IKIsQGQvw|£T]oy±ÜT`Hô—ÔHYÙu‡È¥²ñUÎý™>÷wúôï•ÓÏífû8ý2×kîïD  endstream endobj 130 0 obj <> endobj 371 0 obj <>stream +H‰bd`ab`dd”÷r ðvóÒö)MÎLI NÌ+©,H-/Ê,I-ÒuJ+ù!ÍøC„¥ûwß÷¿LXe–µò~ãÿž(¸òûJ!’*çü‚Ê¢ÌôŒdMCKKSÇ”ü¤T…àÊâ’ÔÜbϼäü¢‚ü¢Ä’Ô=Çœ… úb… ÔâÔ¢2 (Ä +™Å +‰ +E©é™@E©) +%E‰)©¹‰EÙ +ùi +N™é©9ùå +j +ù9¹©Åz @àÉÀÄÈÈäÌ· ì‡îwÉï•åŒ¾«~÷ø®Ê|A ȸ˶jþŽ=‡¤NLN–ÿ}(òý]ÂßìFa‘^Er­l?±~oý­ÊÎW9÷gúÜßéÓ¿WNÿ=·›íwâtö×\ßU¹{xø~¼0tuç endstream endobj 128 0 obj <> endobj 370 0 obj <>stream +H‰bd`ab`ddör ðvóÒöÍÌËÌÏÓuÊÏI +þfü!Âò[ãwŸ KõÏK¬² S:x¿GòÜðýªHQ½s~AeQfzF‰‚F²¦‚¡¥¥ˆ4RpLÉOJU®,.IÍ-VðÌKÎ/*È/J,IMÑSPpÌÉQé*VJ-N-*ŠB¬WÈ,VHT()JLIÍM,ÊVÈOÃg#'#3##‹UÑ÷¾ïŸ~F•3ÞºË|ëûbÑßÞ§~ë}WQ•›¿˜ÕäràwûïRߎ~·tY®|1ëoUŸßz¿½¥ º¾Þeþ¾¨ï»·Ïw½ß*åÊ‹Y9ýmÿÛAê·Cào{g¹ùŬßU>žú®÷¨¯fÖO¹Y¿K§w˜¶›í{ó¤?5ÓÙå8WŠÿçáÜÇõ»‡‡ ÀySŒ¦ endstream endobj 126 0 obj <> endobj 369 0 obj <>stream +H‰|”{T“çÇ ñ•Õô”·Ù$ïš'žy¶º:§uÓVE­(ˆ¢ÄrM !!€¹¹ !7r’p‰ D¡XuZµÖµX¹è´žÎª›º³sž¸—v{ƒž³ÿvžsž?žËïù}ŸÏ÷÷#“¢"Hd2™ž¸u÷ŽøÄvæçñ‹— âæe‡7–†0rhq”ü­àÚ?x5NyD2.‚‡Þ†¢w}5&|N¾…/–æå±ÞÏ^ÆZµvíÊåáùCÖ¦#|.Å– +E¼"!+¡8›_*à—rD¼#+X¬M……¬”ð-!+…'ä•Š‰Õ×9°ò„,KTÊ9Â+â”°ø9ÿ/‰D&i‰´!%‘IÉd;’”N"Ñ y¤R$i-é>9›<¡Œx)ŽÊˆzNÉ¥.¤¦RŸ,H\0Ž¬FêÆ.÷/cáÛŒ QïQÎòìek˜uÔiø#ÅÝÔàP`ªO…ëÁ蜗nûÎèéF|—'†0½*ÿÙvüE@YU®.Å2=³V@K¯üph8&0ƒÀ)Eñ÷g±±ôòáË·ÚïôŒ‡×Õuz+…€Þ2kѵtÀn6Ûl g‘;7!éh—¿3gÉ'ŒÕ§Óÿ<ô}ÿ­ëLÚmù5Ž8´f°F¥„Âÿ,Ü55ðå+àcBä8õdcX$š¥(ÄWSˆe¨ü„K^w87$îÞÿ«%Œµ~¾·c¬ßbgž÷Ÿ=s梥 +q„lžã½áÑQðš¢H…©Í>=è‡)~¸ç4LAÜM9¦ŽVlh¿Ožû‰^¦ðÇlé¹¼c]^W b´uè½XO§Fåêtá +q€Wš/!nn±£qåárp +¦Ü„/ žœ”.ÍÁ_Ž55¶4èÁÓ.¸þ‹ïü¾ôÃÉ‚¼,æ¦ÎÒ• <ú:ßßwÏòò—A„Þ +#ÏúH“Á¦³`ÎnyÎÞÇqÀ4üC¼Dü +釚òoC=‘·Cëè‚­’r*[%__ŽÇðdQBy%¢Ñ(kU˜¼Ü¨—¹^Y­Ñ j•ê˜‚!ñ*mçìãC̾àÙgƒPÜ40â¥i±ËKÁ£©pgçâÖã‘‹] ¹Ú|Âd@ Í»•ÑÞ påa{våíç€#%­Ch2ü¸‰C¿ªúj$1ųڻm®&ƒÞŽƒ h šZ{˜}N·£kç¦,ß¹ãPnqïM€~­™Ë¢'%:¯õïtC»ª·t1Æ ÷2ï¿bÒ‰8GÙ’\ØÏ-ÙÊØ1˜}IÆÌ(¬’W26I¯„‰~£À£RÙ™™Œ­ßåO_‡ Øñ }Œ¾€ +Â>‚ülañ‹[ÐÇ_Â.Šßh>%ÀD«3Ø{€YBq¹Ïuš1à 5¨¨Ûqå Ü&·c=Ͼõùú('TI?éêôÕƒöz™“åHò ¬ÁQéÅhnùU®8{k¾ÅÀMÐ*ô|èãûôÒ2©J†)”&w(ÊúWùå¾S]m^;bimÓ90Gs}]3°Ö8{m ³Â‘—ýÉ–m;˜åâr‰°ˆüC(þMSRnVlÒ o$á¿.ÀŸ‡¯TìS¤ÉÓ§:7º g-Æ€¡ÅðlïØéÙ‡°;]J'æì³]!Šd»QüêƒpŸülr译Pߢ xr¬ºÞìjš$Þªo‚Hºîo-™3Q6TZEí˜ãéåñ  =}Ã=²¦_Nk¾Eð½0r/Œhn#üA †ïŽašyäÃ{ðjJšL'ôÎ#ÝpŠyòêÆyä¶Ù¶™Ö¯‘çž|S%¦¬¬UI@–dãþ?ý©¥ºþF™hцA}šÁN ƒòx=¨Z)*_[•¨Ê”¥ÅÒ¼òлä33°x&ž¥ÐK¸r!ÄsãVà,ÆÖÞõÏ\ëö™7® þóã^ÖÅ5L|#>H‡ïONûZ˜:£UgÂF»y@#þómx4çR«–Õ(1¶èÊ$ m6Šáž!ø*²‰è¥ ì´yãt»ˆ|ê¤û _¥HS¤ÉöÅÎtjý¶οǶøýÞSH§]oÂL-5j0T›LzS³Ñ¬·èÍ'¬bUW˜Ë°ÿªÐÇß J¾“mÆ ÖCÓzÖ•Hó)Ôïûþ{7ãã1gª}ôèáÍu Ë|·ÈçÌOX±ZjÃò%Ë×,­,›-7±yZÏÌiÓ§õÏè™Á± 'uI–tlLni±|LB[r¹TÔ¾’mYr»Ò'I¥eåågO^Ÿ+×4µ¹§®…£º¹®²F*»çházi¾ß" ªÿ?ㄆÿ Š B×nk¶ÉßùEËJ¢cJ¤Ûîœ*ôûìoV¬bý-¶ú»XÓDGÿ +{Vw¶üâIõ¬·Ù|obµ«š—1Wz×Ó[ÛVËó½WfqåBw¯×ßþzC¸ä‡ñsѦJ§æá-a%¿…[„Kö­>>Ør8ð½™uÓ”®%Ò¥®(?¥ñÂ%1¿SY‹7ÕN—^ºzîìÅò'·:¿ë°~Ëÿ-.aJϸJnõÀä–JnMàæú÷w¬l|ß뀩8¨|50+ÿ!Cxƒð…Š?ÜD=³úþfòúÍÌ]—Û¿3tãÞq¾£uC©tf`@T‚üÔJÖ5›çΙ!=­¯8²O¾7uâoïI&KÙ<¼ü]àüw`“fæoÆ)¿™¦ªE^ù.ø=påŽ%ç.])µ¾lAYiiq©\Ó”ºR©”‚èâd¹œ°¬¨ât …Âê¿sÖ}ç©ÿÊÁW3ë§Ü¬ßÕÓ¿»Í=?í{ó¤?5ÓÙå8WŠÿçá\Ãu“û{•È;Q€æt& endstream endobj 124 0 obj <> endobj 368 0 obj <>stream +H‰|”}PwÇ7†­h<²î”d5››Ö;[[ëyÚ;m=*Œ”JyðŽ #Á¼BH"ïy‘¼Hx X@$T“³­ŠgÇ—{™r½³Îy7ÈôîèÍOè:×Ûˆs½û§³3»3»¿ÝçûòÙ ‰^…°X,^ÊwßNJÙòŽ´L*/{5A.“T‰dRqäá¦0É +¯Ö¯YE§Ó­¢uË·ÐbkZ âu ‹›ÜãçFêåå• +iq‰J¸Yü’ðG»vm{%rÞ.Ü/‘ 3+•ª¢SJáÁ2±\Q.WˆTE’­Bá~™L˜yK)Ì(R)4ÌÝ!B©R(ª"IÑ)‘â¤P~⻾„ ,æ@^EIŠFRYH ÉDòŽ±‰¬B¢£È7,1‹^õQTNÔhMôm4e'²p›.‡ï³Ìáá(ˆ]æ“óf‹IC#¼ƒô—Ì¥Îô†™g>‰†el÷è{‹Ž±bK¼2O%Uk1•âç¦BòuCÏ'.ê.<öb·Ìwð:†QÎc›&¼ãJ–;\àA,>®”¨Pk¤©Ùîk£ðË>@û ¦çõmñøü™sÚe;Ö¦R¶V“;wæäQo¿[H#¯ñ÷\Œ\˜õ÷ ‚ЕÁ ¬…]õ:ºçL°ÖMúÿ4ñáMŠN‚W¥X&RʱÂuMi0{úBößæ¨À\ ×ëÀìo«ƒôt5˜ÔÙRÅ Æ +ŒãЦYã°¶^ ñD^NŽZLfWξßÞdin§‡`ïÇ‹üéâ±Ä”4ÙÉBÁþtѦ­|:ö^Ùµ«_xþþ¥€Ž…YÂÞWW”!*xAD¹!æât_Öa;ßf'9ߧOkÂÿž‚”šãn ÿ_Nx Q½³ögUôZýFÕ}5f4ëH½ÒÕ®§ôíµõƺzsµ®ñ¦è5zÓî©+‚«W¦ÿ:oúu~Úyï+{¼¥W³ñy86ìðž>½"@á úî» ³Û¼ž>~Os™_D&§ˆòETþ1eÒ™Ÿ`ilYq«åLÑõÓá¥É­_ËU&†Õ@›FñP;eyï©X{{ÄS”·)?µ€ÂƒGèdÂkVi±Ðé.…†ŸŸ]‘!:è»9¼8ãÀçáb¿Qe’šöš0·Jf“yiÚâ<ê°H™‘Í+Tp¯F/WלӞ«ôªzk0üÖæ’CGó•>œ‡=—`Õ/ +g„³‚â.­ËÆ·v´·· ðó÷zg¼ž £3ç~‹¹õN¥9Ð6èã13¨I´  i¹ðnˆK…8ükØî"šÙú!Ú2€=¸ü`ÞOúÎjÄuþä­C“uMìgºNéÐ +eIÍÖ§h~} ÚОBW9Y©2UH©ÒÊLIú>¬‘ý›0‚ŽXÎvÕ’ÆU»©²‰˜‘&s‘‰úñ“c†\ÃC.#\Q´øÜ[ÀÍ‚F`#¾€/}¥'˜y×oEæiä%Ï~…v¦¶_uԊɼÄãi”KŽúzÆV²½©¶˜Q¼”A›Ñä3>F1þˆåT"·¼@VäW]ÒH(Îmš~ Ѓ´gQÄãºðÉ*u¥Á@ŒO-¥óWW…ªBºqÀÑévø¬>ëpë¥zÌÛœìæw+ܲ£Ù9ééy¹ê´¼„1<>öžµ¡«š4þPQõÓ§¶›#¶%ôq1W@·šãÝÝ´LÙ?àYC¾`Ãg<©}ÉîØážAõ9<áüÃuŠCólše*¢qÖU/á Ÿ-ãÄ{%I|éO\hrM×·õôGê©`âjzZÏ°ÂWÿ¯¼ø4t.¬‡u·aý;ð=fUB„K„+CÀôçó=¤w…€¥ìg¼ÏFÜø–€ú•ÍiáÔ£ñ‰WЕSåºy™ L Î9ô¦£aä)JøoScÙÁ4e¤Šé]ú,}VMó™~*ŒM±Bû . +2õÄGw‚ãïSwn^\ü‚ÿ0ëã­¢ãÕÊA’$aÏßwa;`Ø sD ½!“f•Ö`fs£”–Mþ¶]Ÿ:¨6›µÙFõK÷RµM\ø¸‰ñŠ;àD8—'ý.kDW©‰’Ò»k3õ™ú,Äõ·ŽwÞwÝåáƒÎ[Ý£þAÌïu¶ØI›³¡î<…ϯ³7Ù-v‹Íêêµ9;7æÕ+ìj²4çÐŽ£T#»ë×̨ÍÏÝ&6-Ot1‚îÄÊç¿YóÜÕÕÀ‰m^Ãòõá—‰ÿ0„ü endstream endobj 148 0 obj <> endobj 380 0 obj <>stream +H‰|•}PéÇ7À.Û³†3ëöLVwc­wv´žgÅêMßNOÏP” +’ð.Á$$¼™I $Â[xG^" "øŽJ½SìЫJÅÎÞLñ¦í/ÎúG—ó¦ÓþÓyfö™yöÙßïûûü¾Ï><$ÀáñxÂ{¾ü|﵇S©¿ Q¤Èö«%)‰Ò…—«}Ï·4@ÿs?ök^óf] ¶âÅ Ó’Áåx­`a£~—"-S™Ÿ ¯‘þZüÉÖ­Ö-<7ŠwʱrqX¦J-?­ïO•*”i +¥D-—­‹w¦¤ˆC¾R‰Cå*¹Rí¾"NT‰%bµR"“Ÿ–(“ÅŠ¸ÿ AxÜ@øB"ÈG‚ »ýÏä‚BÃ~H˜"àêEüD„¤#?ðªxÿðëòßÿqÀ‘€t+êÂ>Æ.®4òù›!tŠ×]þ×ÁMælG¡sM¡ü±âNX5î[¡å¹}27ì"Á‚eÿ.ïDaá“ДŒB7VÞùiyI¹mXXý ÁªÆÑ`lÚ·ݱ‹YÄŠY’]‹¿l"ÍL>Ÿ|‰[°£¬å¿æB{®‚y(¹Sàkë!æ €ì‡d´Ûj.î£.a<†¬*¦òlÅ™’Èó2ëu딹‹Ó¦äI“Õ¨aá~ö{nÊ7îy'ç&'ç“r£µa;¬Eg±™Ò‚Lväh<¶Su® ˜âcÓø6]ÑiÝ !,"¦}™€’êx­2–Øë, 1Th36üP`YFLgŸ×–ªÊp‹Ze>KGÇD1ŸË"‹¶uɺ»FzšZèvÏÀ•¶~¼ËÚŒnËnÏ­¦š^ôߺ˰{a©’¦HT +<6!]—Oå™j›ìöÜc<÷Òmj?Û¡ÅÎÔ(5¢èc¡’ýuw½í}#nžùâIâN–1Ѹ݈W«Sl2*ê°6>Š9*Q…툙ÐÑÑŠtÝyíùL·ºQ‡ãk¾ˆ<* +ù.iv¶]¿ÑØñ5:¾F벉*ÊËÊ,4Q9Ñ8âö4tµöŒœŸÄ]EÎ'm-ñXÚ\ݽB>+äº,ÓrúE‚q„É"°‚˜#æ_ëÉ–ýcãLN+ªQ$üäú2†˜û#8ÐkŽ‚)µëdèaÆ¥@뼞 +ª¬87>Ÿ!æCYº/»NÓN³@¾9HO‹I‘7¥÷uôx;´­2†ÏþÖ¦yÃ,k‚Îr¦š'æž¾!È~ìkˆùߺÐ}º.'ãÖ“Ó‚r–Ëàdÿxøæ€ç»ú?–ãÃ{?#€¥t–‚÷¹]!.²³Þj‚€ŠVü/ÃϦ(w¡Fº ó›Ãétÿ”âÎB¥\ +®Ò‚wç{î ßÖI]iT¦Ú˜“Ƥåì‰ + Á‹0ç=ô®ã\w% ù^*ç˜xv«>\® òoë/ûð˼X;`‰?„éÉÛÚ½—˜wû^͈fÿZ/9yVCï•…l`—‰vtmœ†5p,e—‡±¼$^d2åQ‰©ƒaÃØt»ƒ±Ø*JlTGKâv†ÿ-k¸ ûGµßÊ1A‡,XJôƒÅ÷i©ª2WSFTÛâV¸™ +We9lFzÎCê­ÒìȤ4¥0OšªOÉOÈV$zìž +O¹ð£·å†˜<ÃÁ|aR ´U¡',IæóUƒB¢¿ ~“ÆZg‘“z\=qiä~÷aëÔ×¢çQ×Y4-ÎdÈ ù°ià%âsÍ %ç;NJ÷þ¬ŠXIF&‘ý47L¦Â’³·ê‘ë¡hsŽ×÷4µáMng©²9ÏåW2ĽÊ|{±Ýj·Ú*\6g¹'¯wë•öt*)â‹M‘LVó'.Õ€ÍÔJñ·êïC?L=}î¾ï"?\D aí3 endstream endobj 146 0 obj <> endobj 379 0 obj <>stream +H‰„•{XSçÇàÄ#mÓ§œf…œ5oÜÜVWgµnë U´VDQ. +*`€! È ÃMn!@!H!ÜE +^¦eê\½qÑi7ÛNŸWŸç ;´Û ú´ÿmÏyžóÇ{Þó¾ïç|?¿ß¡R|¼(T*•¾sßîðw÷ddgädÿ&LÌÉÊHñßÝdb8364‰VѲ¡ŒÑÓR¢12®x­<ź 2yÉ¢\”“ÊáâùÅý=º›—c¦»³ÓˆbYZCs§*à÷ÓÓ2(¥^¼Óý®žó~´ã´SÕš$5X·œ¦N¬ÔI¸†‘Â~¼gªiðxpé3_gN‰»Ó9ëSÖ}À*§ÍÁïöÚJ“W":¾Œ/ÛÆ/ô¶ÞQ´Ïyij·5Ư„oâUa~±O8š=Lq^þ:qÔop냳Ї!ΉOŠÆãòG/Ýh½ã®6»µ ï°ˆL»Q_ÔXÓ¨G±¾æ†£‘iá·§…E¤ó’Y!{xk>bnˆûãðãÞ3,úMÅUŽÄýA©ÊHB?×Ü;Û÷ËQ¯HÈIÚ©*$–¤Ì"6#äp8ÿ¤ :š–Â÷Åÿ| 3Еco›è54³Î¹ÎŒŒü ­¦‰ )ZÉñþèø8x‘¢XW58µ F¹àþ…¶×V™xñ6Ññ`€õ*‰ÈåïyJûЄñ/Ž‹À>Ñi·6¢zc›ÖŽ;:4j(Žmd +¸Âcb1ÊINË–àôdÅ4ün:4 £îyÃEHgDFÄÉxx¸òúDmUc¥<é„[>{Ì<Öw4R‘ÄÚÅY»‘IøÎä¸zîž-²9D-Ðûì¸Ó„ÖêŒ5ÜÒ¥àÅ=J€d@'Þ'r%Kh/ÔŒQívxßt1¹Õ*ä>M¾I±%Ÿð‘â°üT£Q•©qE¾^+ +­ê„Fƒ«ÕEJ¦Ô®2™Ï6O³z†Î<퇒º!Ý z=«÷·Ú—÷8lÓøæXA݉†“õ:TWghnb¶V +¬øþ½ñz$7¸(¥Ë‰äKÜo ©{J¥~Ù Õ÷Ì®DÞÂnnƒL²zûëûZ¬K»©ŸhMŽZ¿gwbZv÷5€}®[NbD„[® ÷ ÝéºÒöÂî|tLЕÍgŲ,±ä:éÑÒ4ˆOÎÝÃÜÝŸrQÎ:’U¨(`*Òn) »¥$|b¢˜;¿867?øÍiþ`È ‹c‹ìjcVÖ×h›êQìѶËmC»uØ\cf¶”¶7³ô•µ•úJ»ºÍ\ÕÙ|ÊYÒàONÌSó5[5(y@£,·^€Ógõ7¸zR +ó‚c)RñJC»`_]‡ˆKßpZ€‹7‰Þ¤ˆµýlG®;YÌ%+j1”p"‡FE3îxz×éØßxîÆ)k‡³´VÈ-98Oš!¨y•¦;NoW\I–¸n¬t"?¸ý!Vˆsø€!Ì“©å¸RUß^r‡“žç_ê9Ýi¶7£†s 7ÕU”צRK·‘Ù 4e¤|´c×nV¾$_*â“È_»C^6%ÕNÑñ­@vþ%2Ÿøe&ñ^±QyPy@7Ûá_Õ®;c˜Òê]ƒ¶Ð¶=¶ƒht‡UeÁ-=Æ™1²HBõ’¥w=}òÓÛÃõ†"ø*C$8ÄUà'*¬µÒݷɽ*<Ÿ7L, úq¯5ËõÈÖ‚&q+nzrirÐáó•àýàÏæàöÛÏçKïbÏ1÷’ø_Œ<>LòDÕJ’ÏÍ –ù–ÏÑoléž0 ÊÔR$Ùr(h-IÖúylɬ/ÀÕ’9ž·+1èWhÍú%2ÕXíÉå“#Ñ1ž\l¶~™K™ŒÌ…K†«äf;´SvèUg˜ê†>1‰ÛÊsSÕ •”ÇÈcŠbæ:tSí×»¦…Œ ÜQš™@þ“Ü{=i…¶Ïú“—ûAöܳ9Í]l¾íQxe}ÒwRa_øæÞ¡YQxt?q9 ¯ÙWxÑ@³¹?‚šÌ/À‘€ªàÒàø?ü@Þ€t»¢Ïýfudfÿ—ʲ{i*ãøLÎ\ œS¶ç(uData¥e©‰‘5£–™áÛÔæÜÙl¾lg;Ö´–º¹³·Ô-ߦ“™c™‰(º’L¼ñ%ÍÈ +$È‹ ~‹_°æî‚çxžçûùòÙŒ“+|Y¡F^ˆgž;„éÃgw^,¸FÇ°E¿÷çWáÖíÙd ¦B/]Ùb°VsG+¾v¥àO`\&Œ¾ÓÀi¢Ôz-šKøWp¬#$+Ü Y^pÙG*ÇÆb®ã`p‹çžÉÙmp ³DŒO‚qg*Œ]ƒïD|­©ZMÔ(mA…F¢+S Z‰ºÏ9ÙïÚò 7ÅÓ‡åzm)ÆM3+Að{À—#Anhûê,q®( 곱нšUy$.'I)Rç 6û[Fm‹ŽfôéHŸ‡3Òo7Ò(Íè)oo¤ ´‘6™-F«Ñò¸ãÍé j- +Tv)'éÞÌfÞ 3ƒ‡@¹ š)_E¬ù¿ÌG‚}þööçuÙŸíÃ+º \náóÞá>•ÒŽ)‹¡Ãbµ´2†ã0õJÐ[âJ…<¼[#¼1EŒK°‰“¼ZX\^}OZÞ>R‰éhÊ näÔQjU½°Ü0'A¹0vOµ‚m¡_°IVÌʯ*díà_IܨVï|IãsÀþ»Í5„ÀX¶ÄéŒçsî§"™l©Ü¤A6ØÙЋ¤Ôv•v¢ß>Œ»qînXòkb>®j6~­ñˆÀ©@2_wU•FžOD@<‡ÊZÜ~&djÓ€B¼æG½U¨"ý¿`šõ{ÁäbX„$ʽ V´ÏÝiïÁßúf–&B>!…±áFw¢Ì§=4!¤{8è¾ +v-›[oûƒÙ`dt.YÙ€2ý­·FaŽ ªøàÁýÃÑë@ml …ÿO€™Óš| endstream endobj 144 0 obj <> endobj 378 0 obj <>stream +H‰T”{TwÇgHf’Z§ƒtFgf»¤Õ“s¨ZÔh6š²$ëÛød3oàMÆÄd)ÐdŒç3L†xcªÁ´†OKà’)iþC~~ZJªÑìƒa¸ÔöŽÆ°qÆb˜7†}Œa$¶ÖâØ2,ÃVbØ* £%Ř&Ã|±ÍXÖƒÅ}qþmÈ,²6YŸìòy½üE"®)ŠÑ*•0YÔ#æ¦Q.¨€@:ÅhuH« Ù†:5004’T :-8ÌtËÄ£ƒNMäö鹓&+}|¢ÐäE£±mHÓïÃöM~¸å\žò¦"fßÜ‹:•¡®Õ ‚Å ðøÖÅþØé:кOù6WŸ[vi5g=ûúž(ûûÛ@ciðŠ‚1>ýì¤'ÓK"w+ƒ­[\›®ù+¿:Ždˆ ‘|5’‡ÎeùÏÍŽÙª”thq°‚VVOЂiÉalûŸMÒÔ5íljUžjs\ºI÷"ÉëE¾ßzsB¾RÌ•ÿ78Á-à-b™¬8X& •‘nùÛ¯Êz_|-àí2ñâ`”æàçK÷‡0‹ÿ¼aZ·$h-RL Ñì‡(v>¾Z]ÚÀÞWä$-Ë f'zï Äÿ=øƒ_÷ÔMõœª*k0Ñ‚ ÷àò=™àyOl/"áôP;Ñ;˜8sèl!‰þ"ž%&‘*› ú&‹úÁå¢NŠGÄÊUæ bPœ±ˆûÜ9ýJ{êÇ$ ™Gí ÜÏŠÍé!™’‡:àPàqù)Œ½ñeS§²uݽ°ZÔ× ÒM§²ÅO÷ S‡¬¤COä‘G²ŒmS¤äu(‚£Î£‰×‘ 4¿ÓUWÉ:ȼ;­^oÏeܺÆÛû;N6sU‡ê*™êóÛ\•J0_€)îúöJ¬ŽÁaÍóÍ0E£)“Ðxôa¸ÓçÆ6öÌu³›yø]å©á„ØmŒuÊÎ+‘\RËŽ³;ê”0D¢AA#JnžºÂÀ¨BôNlá091T€0‡T· R=Ýb(8ä¸A^°w‚×­Öìܯ؟ûR㜟1(ÝŽø¹Ü2¤ÕƒV¡BÞï=›EýÃT¹©g¯P&§õBv'ómÇÞ§¹W÷uƒš¦ºÄϦ)¨g!yŠãIqÍ34ë 4)'6¡Éà{îne_;ç suÄì­Ùè}&à˪òD\pR3+2$=†™¶ºÛݼ»ãX;×XÝXÙ¸Z#ÌÕoºï“è㿺Áæ–ýêé†ßÈîkmÕ­L]oàÐ7üKñÓÖ#¦lcú—e±LĬ¬Éa\éxA@žN1œa•£`¤ZšÖ7ƒÛu…£¨Ea$õÒaÃ;rxb¥g"‘j‘Hµ _2º¤Ã^þÍœÁ%›‚]0þãƒG‹ÐI°l4s«3ÓËiKñê£)lmZ³õÈÖß“½Îol±èC”ÏŒÀúƒ±ìp9O û + û +Õ qµÁ0ÏyÉî¼ÍþU±%>n{³.²¸6•[_VPy†Z° Ȥ‘ÈK^ +•ýõ´,ñ¨E]'6SéPìé&Aú'¦’ÔI<4Š3‰ ¤ +I£< À+AÚâ½!ÝT¿X ­æ/¤W°ÎÏžÉů͉N¡×í2o`©þƒ¾DQ^qv6•¹ÖŸ&;ÚÌÁ9…96Žz¹Á—(Üž·ÆL¯ßs,…Mh¼ÝÃ\âÉp?ûý½E廪9ªÿM¢ø`ñ¡rúZÖ%ÿÃlÍžš½µ ÊÚãöÖºtGU~ K½ÜüQèȯ)£»îÚ/³Íÿ×åîî%½ÔËWÈ[s‘¤úwÙÏqÍÇJO×ÓµùµåRôÆ_¤è‚²2ÚÕVÓÁž¢É«ß8Pä,vJõË!ŠŽ¯kèCÛ[×Ö³Í ËKý˜p}“¤ø»߶Âù™\î<¢ » k½¸*¬ÓÌflËØjJRšÖØ£s霖]f¶d¾DbWF6ýé,ûrÖ(­öŠÁÄ +”è«UØIdp*„îwÅcþ-ÀöM endstream endobj 142 0 obj <> endobj 377 0 obj <>stream +H‰”•TWÇgHfö =Ë43˜Éöˆ–Í.kW-þNk*JEäWøaA0A~hA‘Aj‚€bUAAE­¥ŽU¨PüQ8lG«q×½Ã>Îv'zöt÷Ï=óÇ;ç¾{ïûÜï»wŽ‰0ÇÝVø|æ¿l…zå¶È¸¨ð5á[ kÓ“t©ú¸dÞ¾¯âiœw›P!ÿ¯Î&¦bXíÞI°ñØÿûcnŽ.vŸíšÄ¤t}\Ll²êýH•×¼y©–D%FèTkÒ ÉºƒÊoKd¢>)Qž¬‹òT©–ÄÇ«ìþU€Î Ó§Ö·ª8ƒ*\¥×ÅÄ z]”*Y¥KסJŒV-‹ÑÅ'¦ª¦«–'Æ'è ž† æˆcï`˜†)1ÌÇ>À°1l©ûô8¶Ãql=†mÄ°P ›*Ô9`"L‹Y±ÓØ(.Â?Å“ðü¯QÝ"…h§hPì*¶Š GBEDuGþ™Ô“õ­ä•³ó¸%‡œˆ¯·È‚÷ÍÍœé%õô Aï"WšÜ†dcžÊQ¯³.fKoKŠ–•®¼/ èÛ "  9×ú”Ý÷ûJ[Š¤osr¢{È]vÁ<\4:"kLV€k¼ë9¦œ92·8ø€ÔOÒ’Õ·³k±ôŸ“H„oFâ€eÊ•‹—ÃöHMàŽC:¸‹ ]îàŽÜI» öþfG3eÕû[¤gÛÌ·O‘àuS’ãfˆÎ‘ò™âÿÄÃr,ÞÌ[EÍÀÈx+;a%9ñÛÕÙÄòX¼›ƒë6Q·æàÒu¼»‡ø¡¦ö*Îí³E~¯ìL@~4ZMr™­ ·àR”ôþêb4ÉO:ÐÇ&/e°=Ô±`dñל赜_Í"ÔA=‹êÁÙ oÒ¹2e<&gàꀈ•ð$œŸè žŽÇ,˜¸O¢süb¦ÝºX¨fñm¢9]OHXºp$Ñ6©·ž.¯?3¥¡µôZ“âfü]ÿcÊŠ‘&-4vÆdçkrø8h>rd‚Hç¬;¾ý°ö&ü‘uéýÒ8Êáž MFnH>«ÍÈ“›ÕuLb±5ô.}´ò`QCµg]'ò²2r³è ¦æs l•€SÔ 4cÖg);”ó$e'¾91LfòaB$Z1eD +ɦÀqô¢ô+_ÿ>4eœ3ØÐ>zÒS]qPn£Ú)ã£lKRí彄™ÔW6n|L ØÏ 3ü@òiëæ&¦3Ù¤ù²ÕnÂKfciFWóÉnÿè(&%->=–NÞpð–Ö~ +ïÉêS]Ú¨>ê Œ/•Q}%!Ej1«-soh™ˆ³Ý±@Ò:[N3$»“´Û—¥@ÃÕŸarïõÔB¾!Ÿïøi¬ºËœš_*çÆ-j”Nš5D6y,E×ö¤*5Ú ˆ…{ƒ†IùÈ1"Ÿzˆ`!Å!A‚œãÀÌ"s/yÙt\¿k1fÖ)HŠ"-ói”dBªeÌä®w‰3 +gaÊ0/g3R]nÚ ’£ž½B>²]-—÷ék=‡Ng~[4. +jŸ?GB=ÓfKNÆF6- ÑÂÏÑ"$õhD^0ûbÅhc&3ÕÄ¢=ÆOÐzéúʲúàŒla°6)Œž³yˆk:Ðs¼ƒi¨j¨h¦ûZ6ªÞЯÔÇâ ƒý$LÀ r¨«­ª…6iÂ$LƯ’;{ŽéO)’Ö[#è S¼ë{†P&“ ”ƒÂ8j êjQ³IêeÊÀIØrz3˜ZA©fA©fû%£N „“o) Þ@PýÿÕ*p¨É·}‰_²A»M2ðë7øLõZ‰|MÐ4D÷ ÷`Ê‘(ú•íïM/¼iÆ{±*D¼#lHÀ5–êµòœ7då® @¥e¿/<<öRjSñVá_Ü*F‚„ŸP(N$Ú•°¬,R  4‚4‰„ d%œ‘0Š6^±.ýT;Dñ¹Âsõ¹p‹[½M1ÁLÔ–]›â[¿4nWRc‡gÙ…F£Â'd›¿r“æ<ÙÓfðÛ•¿+7ƒ¡^nŸMäïËþ H;v<^ÝpÙ8L_a£ÈuÞ¦”}YÅPc_Ý& +)St¥t.>ª¬>X}¨æ´´æ¤©¥XQ’W™S­¤^î¾Cä›sª­ŠÁ~ÓUeùß”†V=¥^¾BÓdWHjìè ©á"Ót¼äü EMNMn™½ã‰kµ*úÚª{”çÙMäŠÐ£½¥–B‹p~Ù¢ÀlþºZqd_Ë–ʦèµ%Þô:M£Pñå‡&ï½ù;r¶1™¾Ä¿ÕQÓQV%å» ôZ±\IKIsQGQvw|£T]oy±ÜT`Hô—ÔHYÙu‡È¥²ñUÎý™>÷wúôï•ÓÏífû8ý2×kîïD ljv endstream endobj 140 0 obj <> endobj 376 0 obj <>stream +H‰bd`ab`dd”÷r ðvóÒö)MÎLI NÌ+©,H-/Ê,I-ÒuJ+ù!ÍøC„¥ûwß÷¿LXe–µò~ãÿž(¸òûJ!’*çü‚Ê¢ÌôŒdMCKKSÇ”ü¤T…àÊâ’ÔÜbϼäü¢‚ü¢Ä’Ô=Çœ… úb… ÔâÔ¢2 (Ä +™Å +‰ +E©é™@E©) +%E‰)©¹‰EÙ +ùi +N™é©9ùå +j +ù9¹©Åz @àÉÀÄÈÈäÌ· ì‡îwÉï•åŒ¾«~÷ø®Ê|A ȸ˶jþŽ=‡¤NLN–ÿ}(òý]ÂßìFa‘^Er­l?±~oý­ÊÎW9÷gúÜßéÓ¿WNÿ=·›íwâtö×\ßU¹{xø~¼0tuç endstream endobj 138 0 obj <> endobj 375 0 obj <>stream +H‰bd`ab`ddör ðvóÒöÍÌËÌÏÓuÊÏI +þfü!Âò[ãwŸ KõÏK¬² S:x¿GòÜðýªHQ½s~AeQfzF‰‚F²¦‚¡¥¥ˆ4RpLÉOJU®,.IÍ-VðÌKÎ/*È/J,IMÑSPpÌÉQé*VJ-N-*ŠB¬WÈ,VHT()JLIÍM,ÊVÈOÃg#'#3##‹UÑ÷¾ïŸ~F•3ÞºË|ëûbÑßÞ§~ë}WQ•›¿˜ÕäràwûïRߎ~·tY®|1ëoUŸßz¿½¥ º¾Þeþ¾¨ï»·Ïw½ß*åÊ‹Y9ýmÿÛAê·Cào{g¹ùŬßU>žú®÷¨¯fÖO¹Y¿K§w˜¶›í{ó¤?5ÓÙå8WŠÿçáÜÇõ»‡‡ ÀySŒ¦ endstream endobj 136 0 obj <> endobj 374 0 obj <>stream +H‰|TkTSW¾ Üxµ6Ž\3•ÜiNìØ5ãªu鴎ΪZiE) +AGäæA “\Ðò"!AЄg €€Hå!Ž:µZmµ¾;âšé¬vÍXÌœ8—Ö¹ÁþžuÖ:?öÙgŸïÛßw6 ‰e#,‹—¸cÏ®„Ä7’Š¤E2é›;•¢Ò¢üèÁêÁŠ¬Œ5,eÓ€¶ü÷ѳ)ôUq ¾ .ƒšåƒ¿Zd‹æ¶ËäZEQáa¥ð·ùk„6n\¿6ºÿN¸í,O,LÕ’J±„î”æËr™B¤Z'n+-¦Do‘Â1)V¨™è Â"R(*¢Cb‰HQ"”ü¿JÂbò> ÙÁB>b!I’Œ ©l$A¸ C„Ä ]¬7YOÙi1›b®Å®Œ £¯£Mè¿8V.÷†á‹luäía½&®onžÁKáÈï@U å&¼³£ã÷Q'P•¤°ÌHë=ÝVÐ9ˆ¶==Ú°’ª´X /mÐTX*‰Ýgï»S³hÖjþ;aM[óDÈãœ;}vlx +«çH¡–×ë?Zíµbåj}†‡*K +òÈ2LtH$Ñå¦öÁ^ûW—A×ÕPG‡ÃKmîæ/Á½f8 ºEþ! ëâÐ\<3÷ ðÆ9=–ê#X3_h‡ñpZ:,Z›¿æ]Agþˆž²š}aü€¬xŒÏyÞÇŽ@xëï¾4=BšuiôKÑË3% JWnRÙò®Yà~k¸"RGÞ¬Ñ@-ƒ#n`~|¿ÿ.£à?(Sœžú(<‡*¥ßB™pƒ²ü8E$oÊ-̉{öÿzã€,xr2ìnœ8{æÌ5ÌÂ!i MøÓB·ŽŽƒ½V S½«ÛÂ0eî= S°SÖzŸ0m%+¶½äªl ÷¡ûéZ1žÆ|:Þíìvoƒ›hí4|’›Kƒ<ÀµÓG DyeØØ[£‰“ÎZ!ø,ùkü«­í¼Ag¿¿KÐÛzÊ×NLžÈKY›´ë`¡4ôÀoQcó9¼Ý‰­ŸôßéöšSºP96&ï”JøÈOß<ð˜:‡S5…"°?¯lO×`þE½ «Tg¨äS^MH#À¿¦èØ´ÔìlþŽÇÅ3WáôI††¢@rçI¾ÙÙ`ó81|nëå“íÁ6¬+00ö%ß_ã75 f«ÙaÆð+[[ê;š{ººV2‰*£¤zs5ÆôjËœr‚ûÄ¡Ž€+Ç5Pµ|ÿÁäýª;øYø²—g›@¶½Ãï]è†l¸d’è¬-ɦ>–F›ÐtƒMqŠð0ZŸ[ÐZÕºÊâênøøyX~×ZèÔ”¾Ö¤©Š³·lÀê8#4`­c\kÚNVlÚ©EÝ n[7Ÿ[•Q•aȈçÒo9ÔÏÞˆþó·GþI¸”GÊ3ÅâÈ1W›@nä6cýcÑ";•ÚM@;ñs‘UóNts¥Gy‚ð}ijpáâŸéÅAáÌÓ™ê»ø|5Ê,Ù-LfKàŠI¢½zÙè^úš®o ƒ Ì^¸X*f˜©_`6Ô2ÛòÀ {(vVU•µF ÈÑlÙÿ‡ß`µœ¶oÑé&KŸœP~•š\4 ¸{­VlôF]¢1[ŸÏÝçPÃçß± ø2¦FRxŠY©éÑü¶“ÃL~vŠé T:•®ßÿ Ý2à½ÖúÏø¦_8؇…Û›mNÂÙTcrû§Ùis6:\6·ÍuÜSíÄ<¦ +—Š(Û¼>Ôqšþ‚N»Ì}J‚ûŽaÒŸ²î^~|)² ¼¹¹G÷ú¨ö¤!Pz"·³‡ßßèµêfÍä2{\nWC“¹ k5‹ÅDv–DE‚¬Ü£ù~æ„r¤X0VØH*ø% +©¬Ä–ŒN“Y«4éµ:~‰ùbY˜à +£Cù9ËJ!Ï‘Uwû..Çû¡.ã©•²”DUMÛY'¸›ÿcíìFéœøK£m[rùôCŽŒl4 3œ$zÝ\ÑrØOŒýíþH£ªQ5EÓèúÚ帋÷ã7"«" ¼4šD³iã´c7k Rw ÃG¯×V÷«ˆ¢½{2sS‹†Nû}M„ËBî·€z±ÞÕø6äL=º qÆ2ÓÝC³4Û¹š‰ž¿—ý]£X`Àìâ‡Õ­j•ŠT Œ½ŠH~€Ì”¦g’…̃ø \¬‡K ÿƸ:ï3—®tÃÿu7šçuîE‚ÖíÚWž/]Zrï%X±"²†÷?¤Í…ü endstream endobj 96 0 obj <>stream +H‰œWYsÛ8~÷¯à#¸2QÜM¥jrMÍÖQmìÔ,Ñ×å1¨Iüï·/€ %;3§D°Ùúüºû׫\Gð¡ó¨nòè±½úõWïVW¯ß΢µtÙuõúgxÝÚ«×+ýß ˆ«»+]FüÁ£)¢ºÈÒ*Z®®Õ/±ÎT?ÄI­ãZq±‰ uZ­;º¿®þ~•ñÑ=¯ÝñZŽÏùkNÇë"Õ|ü8>Sm'¹Vwp\P¨õÉ2¥ëù9ì:¡<˜‡8©T ¬L! ›œ´K<©Rf?2ÝÁÑ™’cp¬‘Kkõ[œèJu›®ßòç6ÎÕÝMVÔëoêçð°Ç÷̀² ìå{¼D¤ÛEÚÕ•úW.”¿ðWjT,N–ÊQU¯þ¦MtšG«`±É¬;XÉDö N,Õá¿÷Ñ`nA‰}­c]°‘Óõxã>rX [G÷±^®~²L¿‰Œµìtmðk®6š , "ŸZ›’œèêœ]‹°öskñúuœ”jÇœï3sI–ÖD°¾É2:ø÷Ô â¦HófÁ,×*âAÏ£]C1ž‘T¬<ìÀ@[Vãù·¨d‰Ö‹\i“äiU.• !0=‹cû B·Cá xúäÎç§Àl_Å%9 FÍ@ ΂}~ÝL’BÖNØ‚–[ý¬0 Õ·’©Ðsîr¤+ +¶ÖB$§Z𮲋êä69Ùq½³²îƒ¬vËfõŒPföÝÚ+‰Ô9L1• ˆ ¶ ­Šg²b¸SL'Ï#*‹yø@‰}I*V…v±¾@aŽqtèO)\è–b‰W&p'EµAŸ|¢J>]+á¼µ¦¨Ô´2Ú;ˆHoé&¨ž°óî$a½sÅéÀŠá‘Õ¹YL¶ÌÒË´^z×”„‡|V‰-ÍÛ>?˜þÍ›×?­‡“Ù¯ÚïÛO?}ʳ¬yûömôîÃûèJ‘E?þ– Ê´j<þ³ ¥j|ðÀr%@m·=Ž_ÎÔ€²œ6YÅL•ÆAáÌ/ˆ»?B Š=².¬ÖFH‚Wàã¢D[kuèú–¿Ã#wÌáýF×ayæõe¸¤OÓDǸ³üÜ·Öz¡zŸÈ'î¯Ð¨5B*+q^ª€í8ŠÂ× ny5ÆÃ$1Ï£Ëç%ŸÆÔ]õRÙ#?5—#z,]ߢ8 Ïu€K—ÿȉ®uòJb³ÎKÑ™×3Ž™gA._óŽxëFzßqÐîc‚¾„ B¿ :¿D.Cávð6ê«äôc»Î¬¥4g>!Ö²â€-¡™ÍÖÊ™5tžÖcº²8ýý\è$ áVëH½š£h†dhOòÆâš*ìMD³?|\YÍeÚb +ŠrxþyGzÙb\0`Wwdy¤õË(`‰GⶠêL9 ÀÜÒuóæ5†%52ºNË:¨î0w„é×8²´Øõ ô%Ž!—q©Åáî(ìþðò{@q‡¤¹{Rç`Ù˜ÁðÊ—£f>.EZ$™E,U^›ðûžç1?l »ƒl;zz…´³-/‡©K†;’@6í73‘(ÄIAš½¶s>M(PhÓùnŠÉx¨¤¸B¸Ò Üã´üb#ÞñíŸ"®ëÈM1Q·)ÜX‹¬Ó±¶‘–±).#Q‘KæÔ›=ÆE’«P ‡N—ëðˆ£I‰—M²Q„Í:‚ [•Ä-+Åï<Ì| ‚%5oEÉšÂS7‹ÌÒŠ¼H”:³’™…òn 2숺KS7P©nÃyÇÐïöd8Œz? 2|â9˜"Y˛٠}O^-Jqñ¡‘Ñ âTé4ÎÓx eªIe=Ö$Xƒ™@²í™ãéÂÁ¥úW<È8»ëiJÕGêüáíYå8%À9ëçs¸q®»¹¤û¸âÃò@#˦»ãYN ¦–Š]º4 J1ú+§‰Â‹•Ãë–2kdJ e[–FbIÖZÜÝ2õF½û¼¢|3E2y!Ü™â+X_Š+áât¡•H½~;ˆl“²°XL²…»¯Ùƒvç—ðÑÆZ}Ÿô˜½+*<ã±ñ¥VšážAÄV? +R`÷wÃú¹ Õࡼx6J]ŒÁ áÎïû/‘fbx§vÄù²ÒÏF!~òþ—<)œ¼Sç;¦¤ü1NZýøP©ÿüãe~.â¬ÿ¨2zfêë¸g»Ó±ñæ´smü¬,„ ¾yÜƹ+m…ëÿ9ùöwÉ›œ#§L¾9Í&ø€Wx0¦ØËÐqg ëéŒ0âBLvðzËåFkAÐäBŽÛEoý;™nb@Ø° Åþ @Ò­#ŠX¢t“ê&¥˜—èb"(Ãý†ã`q2PV€‚Œ‚ôsQelt½øÊÞ»ndÁÖ¹ÖÅ×óê’.oÔu-üøò3Ρ§¤¦Wr9LZïõ €1®>ªDVb ±„-ÖbìK_ ý~3˜ÓO|ˆx–ÀSÄÔÀÃÀ¯óÑi|¢tξ¦öÜÃB8üηâÏàó¿eóÁ× ö’Y¬Ñ÷³BBTr?<¥¾]â Ê)p‹Q£Qã°2öÚw¹ˆ9N8À;M `&Z^{á<éKf¬”µð,’ OqÇ 6^ÐrÂ1ÖÍœ.À•·0‘¦B"Å]û\vbë)Ë‚pº“Â$$ ôÖ¹Ms‘½¤7(¹ÏJëIÝEØ?RâÈÛ ™dK/‹©nâðX] Çyv½žI-S(<ûã ‹–CY¬u9ì:`ЀÓ"¼}ŠõrDÌ‚bwïvaaðû¹A–“gÕR²I²yÈRº@¬Héiè7¨ôìP MðÆP&ñ–Ùd!¢©J F‹ñ<¯|îç•·O(óìø9­ c“à Í£¥Ô¬’ô–ýå´M‡oCvåIÉ,Pœ—å`ÿñ´¥qf‡¯ïbW4¸³À"N÷\W_ñ„¡ƒÂ“ƒºÛN@ø`CO1wÅùR +ºQ©i””ùÕ4íæHc]cªP%GLÁŒ=Fg‚IƒÈúÚcDb±L(Ð,{¢—€ó4}“#j›>Î1.]ûH³ ÌÈ>˜1úÏ{Ã÷”{åtŒÑ¾bƒÕŽvàH<¶`~äO­™Îœ}±8ЭçÕn¶N(î +õ{b:³ÙðKt—ƒÊá`º€FÍxL-Ct›5ŠE™ÍÂ5Šk@‹M:f8ôˆ»yG˜diVD«õÿ©¯¶·$ú®¯èG é¾_ž±ìlàÝ œhâìƒv.ñÀ#%±f°ùü=ÕݤšEÓv0´Ù쪮®Ë©Slù5#œâô\)µ}j³Gíív»ˆf‘lA³l3ãšæˆi³¶¤Å°—ðS” JSE ¤}eeS€v<v(ö8²Úæ6- +"ߤcbШãÚåõöaK¿‡&+ 2UĨc¶´Åv Ê!©Ù%t¼¯í;ma¤Ö_}•.ûf%1ÚQ3L°šVßfS©Eé´üróŠýk¥AÖîþL+ÔÏwM…5ÃÙ§èV©Ö[ª'ŒÌ˜_ÖÙ»•`$ +y¤IÉ"ƒ 'àćbУ×m¹˜‚»Øíã}ü’¼K[FÜû·¸ã’¢1_.s¤›mÛ¤ì´KÈÇ8¦Q?­/âÚ( 8™ób)“áw·¿på@~ÒB;LľZI‘gƒÞ–ìÀÜJ«lýîãÄšžû1J« ƒ%&uÏv4ÆKí}HA+ +'N~Þï«Ä‚༒œgÑ»}D.):xœ®ú~V"ZŸÌ/¢ìïwWú8âãœvØÿ|K€÷xO¡ý¼lÜЖ´`ŽEŸ! _ŽyPK~M §Ãb>6l]Ée[ñmí»„äåk«LBÚÄñª¼tL™8m9·üEJEܬ†]Ãîm3q]g°K¯Œ§J¤Ið' OáD2?ÄçøEžðHm,…–R¦­MÊá±çȦÜ};ÙE]wé¸rr+f;|ɬ„ö´SÊ¡8q›4mékÞA½ ÊrÑFhˆgQ3<&Uœ7q—#ŠÉÐÐÝî·¸r“>¥®‡íÁ~HÏ.îìiúv•þ:õxWÒrk D®ÓKq»¶S÷Ì(IÕ×G5Ù‡…’Ò‰ÑþôsÛV½õÛ@ὑ*iε²èØ¿·CÊÝ!–À§E»LK‡]JK‘°Eõ÷Å89Ÿ?$׊s3¿iRé§Á-‚Z9Òb9(ð»1'Ž£‰ôÐãçœÆ=Ÿ•íKóZÓE-ØxmbßæöGÂQ:§ ÍEDíÁ¸»#g«.‰iCªÏNÂZ¢à(åCuDóèäO‡' n˜˜-ÐVvMàœ¼.jaüH³Ð¦ 3MÏ=̃Íb^W˜5¦ÉT-™úf kg“4æµ³”ùyx¡‡5³²}"ÖPñ6ä.ÓýÇÚ½âz ‚c-óyx¡×îgeûÄ” +sš‘±[p+c_-Ó +á™âƒ§N ›|×ÒÖtPÜ¿sýòöÝ˧s&Äm&O Î,:27µâ*Åk=/ßpTt}vÂ'í$~=+ÛÇ#ˆYR0‡Ñ!# è“2º6Î%–}1FdÎaŸiw£7 “§• +&—µMÙ}“ãÕçºÔ˜ÛÔ&¤.º„©)UCðŸ]‹LÀrE]Fê‚!ÃÆ÷KÝAÒ›û“pxÕñø•Ëùd9¥¹³ºÂD̶ª–A‡ÔbIÉóÏ3É£e‰0+©ÆÓK6 ¨8¥(µ4“ÓÎÃáâìy£‚Vó/>œ_Rv«gHQœ'|­5E XïÂÀÅ9ÉJ`¨”*Šz5 iRE©àkBÝVPÕ^ê(Fž===H­Çƒ°½öS)ÊŠ$ +¯ÎžT×9 1²OMu™ÑºKõ¤¢œÕ>œDQaîösÖÿÿ eØz6sµýÄó`m®©XTÏx<ýXŸìE£¬Ú'²È7/÷8TÔJ¨vm£@§ ධf'6hIIz›I]<5½Æ; {vöOlHÊ×Ê#l*X¨Häó5{CIÔÅ=áòz±üŽVe­ñÊã¹Æ°ŒÎJ`i o t&—ÐY+{ +³@ea“—CWø’ °ø óí  ØrGî–ˆyÀºñ©¨¼ðz¨s ôok3,Vu<#¼-}–“fÚqCë±q"€1£ö Rݙ霉DÐÍ—ˆhb©æ“÷rb÷GvK}†lHJÔ(ÇYcÎZ8Ø‚½JÒ§©ù û×p žÕúÀpVœVjÇúðÄÖ‡ -x^¶Ÿ´à ©®üh=‘õÃóT8;ÎÕö‰­×añ–F +Uçlì½¹ÇÆÆË‘bÔg¤Å +3Mý؉¸ü6·ß! 3å ýÐãaiÏc%_1 ]1ñb&?»ð-YÁjvY|ˆÞŠžJÜÅ·\…‘†FY¢&]¢ÝERƒE6çÅÙp6$129 «Z(Îöûy$~DÌdÓ•éµ¹‚qºGd¾iztÓLe›-Ù>stream + + + + + application/pdf + + + BSTdesign + + + + + Adobe Illustrator CS3 + 2008-04-27T19:25:19-04:00 + 2008-07-01T15:04:52-04:00 + 2008-07-01T15:04:52-04:00 + + + + 256 + 204 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAzAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7 FXYq7FXYq7FXYq7FXYq7FWL6pDNr/mObRJJZIdG0+3inv44XaJ7qa5ZxHCzoQ4ijSIs4UjmWUVoG BVeReTPNel+ZL/ybptvoNhouq6mtyddv9KiNncWjNaS3dibaSNq/v44ebLLzUjYg4Ve2+VtSvb3T ZI9QKtqNhPLZXsiLwR5IWoJVWp4iWMq/Gu1adsCpxirsVdirsVdirsVdirsVdirsVdirsVdirsVd irsVdirsVdirsVdirsVdirsVdirsVdirsVYx5r/Mfyx5amjsrmZ73WrigtdEsF+sX0pPTjCpqoP8 z0HviqQaNrHnWy1m88zeYtCXTdE1OOGFrW2ka9vLQW/MpcXKRKVKuJSriKvCi1FOTYVSzS7DyBpM flibRtTg1bWtFW3FxFpiLcXeotbaXLpkQeNJG9CizcuTnitKMR9oBU7/AC280xzXmqaDrNu+lebx dXF9eabOQRJFNIRFLauNpoliVU5DuNwMVZ9irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi rsVdirsVdirsVdirsVdirsVSDzZ578r+VIEk1m9WOec8bSxiBlup2OwWGBKyPU7VpTxOKsX/AOQo edDQc/I3ltyNzxk1u4j792is6/7JxirKPKnkTyx5WikGkWgS5uN7u/mZprqdu7TTyFnap3pWngMV T/FXYqxvzr5F0zzTawGSR7DWLB/W0nWragubWUd0bujdHQ7MPoOKpR5R89alHqy+T/Oscdj5qRa2 d1HtaapEo/v7YkAK+3xxHcdRt0VZvPcW8Cc55UiStOTsFFfCpxVUxV2KuxV2KuxV2KuxV2KuxV2K uxV2KuxV2KuxV2KuxV2KuxV2Ksb1SfVNX1yTQtPun0+ys4o5tVv4eJnLTcvTtoCwZUPFOcjkVClQ u7clVYnc2jTeb9R8v6RoX6S/RUNnPe6hqGu6hDIReeoECr6d0W4iA9XHbCrMP8B+WP8AfE3/AEl3 X/VXG1YvaWFn/j1/K17o72Ub2M+o2Gp2ms37SvFBcRQAPGBAYmb16/DI1KU3xVW8s+TdI8oec5S0 X1+fXvUltNdvGae/WaJeUlpJPIWJQxVaPjx2Vg1djgV6FirsVdirsVdirFPzQ0TRdU8magdUtmuD ZRNdWLxOYp4rqNT6LwzDeN+dBy6eO2KsQ806ZN5ePlqzkbTdT1zVzcRal5g8xQPeIgtLGS5f01Ek PpRsYacVNB1IZqklUz8oXb2ukeWPMVna/ovTvMaW8ep6Elfq8E1zGWhuLWM09KsnFWVdmVuRHIVK r0fArsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirFr29HlvzJd6jfKV0LVo4TPf0ql pcwAx1nI+xFLHxo5+FWU8j8QxVjGpeS77UfPV55v0zTPL/mO2uYbEafPf3MiyWstmZGLwtFa3a/G ZENQw+yMVeoYqw210nWovOknmzzHLYWNrZ6fNptmsE8jh45riOczTNNHCsbAQKOKlh1+LFVWw1e2 81+YbW60qVbjQdCeV2v0IMdxfPG1uEhb9tIopZC7j4SWWlaGirLcVdirsVdirsVQOvaUmr6LfaY8 hhF5C8ImUVMbOpCuBtUqd8VeXa1e+SfPn1C283XdvZSeXbu9tdXs5kJs7ic20lq/1e6fhHVHcSp1 dSACoNDhVEQeaY01HydoGqXdxdaWLhhF5luLVrSG+vIEItLakhryPMOZdlkdKJ1ICr1fArsVdirs VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirzLzFcT/mJ5in8n6dIU8paTIB5s1CM0+szKajT YWH3zkdPs7d1WYt5F8ktx5eX9NbiAq8rOA0A2A3TFWD/AJueUvKmk+XtP1210Swhi0fVrC5v1ito YxJaNMLeeN6KOSFZqkHbavbFWdQ+SfJkEiyw6Dp0Uq7q6WkCsPkQlcVYt5k8o6x5d1qbzl5GtxJd Tnl5h8uBhHDqKV3lir8Md0lahv2u/uqyryn5s0bzTo0eq6VIWiYmOeCQcJoJk2khmjO6SIdiD+rF U5xV2KuxV2KsZ/MbzTL5a8p3d9aJ62rTlbPRralTLfXJ9OBAvf4jyI8AcVRHkTyrD5W8qafoiP6s tvHyu7g7mW5lJknlJ/y5GY/LFUV5o8taT5m0K60XVovVs7teLU2ZGG6SI37LowDKfHFWL+QfM2r2 upTeRfNkvqeYtOj9Ww1E7LqdiDRLha/7tT7My+O/Q4qzzFXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F XYqoX19aWFlcX15KIbS1jaa4mb7KRxqWZj8gMVY59e8231jJqrzW/l3S0Rp0iuIGubv0VBb1J/3k ccPw7mMByO7VquKqehza7ruk2ur6V5ngutOvUEttONP48lO1eLyqw+RFcKoHzfPq+maYYdT83/UG 1DlbWzWemtLeM5Ulvq8cTTSFlXeqoadcVUPKFnqPlfylZN5fWHWfLcCFzapazWWo8eR9WVRM7erL yqxjkRGJr8XQYqzyxvbS/sre+s5BNaXUazW8q1o0cihlYV8QcCsF/MrUbfVdC8waNPLFY+XbS2Mf mLW545J/R9RA/pW8ERDPKqMjlq0Wq7OagKoiTWdc8v3z6d+kV8wNp9nHfahp725hvls2dohPDMn7 mVgYX/dFeTU+0NqlWa2t1b3dtDdW0glt50WWGVd1ZHHJWHsQcCvPPPfl278v6n/jjyk4g1qaaC31 PRySttqwlkESIyjZLgF/glpt+18NcVTaC68z3mqvpk+u22n65Hax37aTbWbTwxQTSPGhknlK+t8c TLVDH0+yNsVTXQ9bvpNQuNF1iOKHV7ZFnV4OXoXNs7FRNEH+JSGHGSMk8DTcgglVPMVefeYfN+pL ol35lFxc2Plu1njtrKPTYrabUL15LlbRZQbytvHE0r/CKVK/FyFeOKpD9Yk1PXNP13VLnUbqw8o3 7R6po2qRWkN1ZXVzEggvZPqY9CaKKObkOP2QxfkaUwq9fwKxy9v9a1XWrjSNInGn2mn+mNU1Tgsk vqyoJFt7ZZA0YcRsru7qwAZQFJJKqsS0/SPLvmzWopHi1+8/RFzcpY+Y5p0jgW4gcwzrCYpElT4k KH9yqtTvhVO/M9jpXlzSW1a/1DW3sYZI1upYbyRvRjkcIZ5AXU+nHWrlakDemKu0Sx0jWp9RSw1P WXg06f6q94b2T0ZZVUNIsLByW9MtxY0A5VArQ4qs8y6cdEtluIh5i1KPi7TS2V/CBAsYB5yfXLi3 Wn/BDbfFVPyr5q1NtN0nV7h7q58ua40cdpLqMUMN/aPM3p2/1j6ufRkinbiqMo5AsteXIlQrPMVd irsVdirsVdirsVdirsVdiqR+d7K4vPK19FbxG4lQRzi1UVaZYJVmaEA9TKqFKe+KpH+Ylze+YfIP 1Tyuv19vMjRWUVwjOsKW05/0iSaREkaNPRV0Y8diaUrtiqj+Uun6/osGueXtWsFsobLUHutM+rNJ JZfVb/8A0j0baaSKDmIZWdW+Hb7qqqvm6O80zz1oXmlrC51LSrayvdPuUs4nuZraS5eGRLhYIg0j qwgaNuIJFRirJ08wacNDOt3Rk0+wSNpZTexvbyRopIq8cgV1JpsCK4qhPI9rcW/lizFxAbWSYzXI tG2aBLmZ50hYb0MSSBD8sVYR5ztbq4/L7z95btreS41vldXMVrCjPNcQ3snrQSRooJcAVi+EdUIw qiLKz1Dyx+YOta3r2pXmp6ZD5ftf9y13BBGOaXdwfq0ZtYbeJ33BC0LkuPFcCsz8mWN1YeU9Is7p DHcQ2kKywn/dbcB+6+Uf2R8sVQ3nSVbOLStWmWtjpV+lzfk9EgeGW2MrdfhhadZGPYKT2xVjmp6r +hvzYuNWuLDUbnTbrQLO3hu7Cwu76MypeXMjIWto5QCEdTv4jFWQpeQX/nyD6rWRdK024jvnpT05 L6W2khiau4cpbMzKdwONftDFWSYq8t1LS9S138qG8n2AYeYdGl0yxvIA8aSoLG8gb6yvq/Bxkt4T NGSCGG1Cariqaaz5f03QfK2q6Ha3E2o675uaa3E146Pc3VxcQiBpX4LGvp28K8mCoFVF98VZ9irF 9NvYNG8z6lpd+wgGs3IvdJuJDRJmaGOKW3DUA9VHhLBepRhSvFqKpHpOha+n5hrqtho03l/TpXuT 5gZrqCW01GqkQSw28Ujsk3qUdpGRDSoPInFWT+dbfWrzy9cabo8CS3WpUspJZeBit4J/gmuHRyPU 9OMnigB5NQEUriqW/lp5f1byxpNx5YuYa6XpM7Joeoco63FnKTKokRCCJYWYo5KgNsw6nFUL+aVt 5l1G207R9O0e41TRLyYt5i+qzWsUrWsVGFqv1ma32uH2dlOyAj9rFVTUtUbWrXTvLsNg9hqktxbT 3+myNC72Fna3Ky85mtnmiQyrCFhAetWB/ZairNcVdirsVdirsVdirsVdirsVdirsVeX2trJr/wCZ upxeXrmfR9B0VGj125sXMa3uqzUPp8G5w1gj3kcJy5HiThVPfNGiahpnlnV9StvMGqfWLKyuLiHn LCV5xRM61HpCoquKu8r6JqGp+WdI1K58wap9YvbK3uJuEsIXnLErtQekaCrYqkN7ZvoH5maSvmG5 uNZ0HWgsOi3F+5dLHVYasqcF4Q1uE/u3KcwwoCMVeo4FeZtCfPX5kzS28slvoPk9JbJ760keCa51 K4UerEs8ZVvTtlA5qDQud6jFVbz75G1NNIh1vRby91LX9AuI9SsrW8neaK4EAPO39H4YgzxkhXCc uVN8VZn5Z8w6b5j0Cx1zTX52V/EssRPVa7MjeDIwKsPEYqlf5jeaz5b8tyTW8Iu9Xv3Ww0awO/1i 8uPhiSndRuzf5IOKpf5U/LMaP5csNMm1nUjLDCq3ogu5I4XkO7+ko/uEB2VYuG3viqX+Rnk8o+cN S8iXjFrK/aXWPLN3ISzzRyNW7tnkYkvJBIagklihqemKs18y6/Z+XtAv9bvAzW1hC8zpGCztxGyK BXdmoBirDfI35eLLp8nmDzVCx83a3Kb6+uIZZree1WQARWcc0TxyKkMaqhUGhIxVvzx+XaR6cmve VYX/AMXaLKL+wuJppria5EYIks5JZnkkZJo2ZApagJ+eKsw8seYLLzF5fsNbsgy22oQrMiSAq6E/ aRge6tVTirGvzb1C5/w/D5c062S61nzRN+jbBJo/ViiDKXmupAQRxt4lL/OmKo7Svy08r6fplpYh Lib6rEkRme6uQzlFALsFkAqx3NMNqxnTPLmly/mprukSfWG0210uwuLe2+tXPFZZpZ1kYH1K/EEX v2xVE/mf5Y0jSfy88w6lpwuLe+tLGaW2nW6uSUdVJVhWQjbG1T2w8i+WrjS7ZpoJnM0CGUm7utyy Dl/u3vXG1ST8p0k8vXGreQbyIC60aT61Y3oQKb3T7piYppGUANMjAxyE7kiu++BXouKuxV2KuxV2 KuxV2KuxV2KuxV2KqFnYWNkkiWdtFbJLI00qwosYaVzV3YKBVmPU9Tiq68tLa8tJ7O6jEttcxtDP E3Ro5FKsp+YOKus7S2s7SCztYxFbW0awwRL0WONQqqPkBiq28sLG9REvLaK5SKRZolmRZAssZqjq GBoyncHqMVV8VUrWztLRGjtYI7dHdpHSJVQF3PJ3IUD4mJqT3xVVxVbFDFDGI4UWONfsogCqKmuw GKrJrO0nlhlngjlltmMlvI6qzRuVKlkJFVPFiKjtiqriq1oomkWRkUyICEcgFlDUrQ9q0xVdirsV dirsVdirsVU1trdZ2uFiQTuoR5goDsq1KqW6kCppirc8EE8LwzxrLDICskbgMrA9QQdiMVXqoUBV ACgUAHQDFXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FVO5ube1t5bm5 lWG3hUyTTSEKiIoqzMx2AAxVIk83zzxfWbLy/ql3ZEco7pUtoQ69eSw3M8FxSnT93v2riqaaPrWn axafWrCQvGrtFKjq0csUqGjxyxuFeN17qwBxVG4q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7 FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqx3zfFFc3Xl2xuPis7vVFFzEfsyCC0uLqJW8R68EbUP WmKvEPzU0TzTcaz+Y7acsjaFqYI1qdfs250XRrTULevh9YeQxbde+KvYbCSzs/OunpHKkc+r6MXv ISQDJJaSQrbvSu7FJ5Vr1IUdlGFWYYFdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV dirsVdirsVdirsVSW885eXLS7ls2umnuYP8AemK0hmu2h7/vvq6S+ltv8dMVR+l6vperWgu9Nuo7 u2LFPUiYMA6/aRqfZZe6ncYqlXmnz/5R8rhV1nUY4bqWn1exSs11KTsojt4w0jVO32aYqxz/ABB+ aXmj4fL+kp5U0t+mra2vqXrL/NDp8Zoh/wCMz/Riqrbfk7orv+kNZ1PUdZ8xAcrfW7mciS2kB5B7 SFOMEPFhUDgfA1FRiqYnTfOC2l7YzabompLf8lvbyV5bYXQaJYC1zaC3uFcmJFRh61CopsKDFVGf 8q/LWsRSTebbaHW9VmKlrwo0HoLHX04bPg3qQRJU0AfkT8TEnFUCPy+846EOXk/zZcGFKcdI14HU bY0P2FnqlzEtPBmxVr/lYfnHQxx84eULlYUHxatoTfpK2NDuzQ0juYlp4of6Ksl8tee/J/mZSdD1 a3vZBXnbq3CdOOx5wPxlT/ZKMVT3FUDqmvaHpKo+q6jbaesp4xNdTRwhj4KZCtcVVdO1TTNTthda bdw3tsSVE9vIksZI6jkhYVGKonFXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqkvnG6v Lfy/MLKU293dS21jDcjdomvbiO19Va7Vj9bkPcYqx/8AMPy7Yaf+WmrnS5bvS20TTb27sX0+7uLR vXjt3kDytA6GYlxyb1OXI7nc4qgNb8uXN+PK89lq95ol1rwjstbubBljnuUSxlukZndXpKrW5USA cuLEVpQYVZN5W/Lzyh5XLy6Tp6Jey73GozFp7uUnqXuJS0hr4VpgVkeKuxV2KuxV2KuxVjnmb8uv JXmZhLrOkwXF0v2L1AYblSOnGeIpKKf62Ksav/KHnfyrZXF/5a83T3VjZxvO+k6+n1+MpGpYql0p juUFBtu2KpV5qnufLWh+W9budYXR9Y8w6nBF5i8wlLZ3jgmtLic28TXcc6RwxvGiooHav2mYlVE+ XbrUG8q2/nm4auoQ3kiSaisS2zano/1swxzXEMYVeRtyJY/h2IFPhYglXqmBXYq7FXYq7FXYq7FX Yq7FXYq7FXYq7FXYq7FXYqsmmhgieaaRYoowWkkchVUDqSTsBiSkAk0HmHnH8+tA0vna6Cg1a8FQ Z6lbZD/rdZP9jt/lZRPMBydzpexpz3n6R9v7GG2vln82PzFuYr7VLmTTtNDCSCSXlDGncNBAtGYj sx/4LIRE5G3L1E9JggcYFkjpz+f49z0fW9MuNTghsfN3l+81g2gdEu9LufTtbpH419e3FxbN8fAc 45VeMdmOZTzSW695q1vRfNmi6x5p0n9H+UAJLa2mSVZWsLuakaT3wjrGqvGWjQo7KnI1J5bKvTlZ XUMpDKwqrDcEHuMVbxV2KuxV2KuxV2KuxVB61faXYaReXmrSpDpkELveSy/YEQU8q+O3bvirzHy7 fJrXl3y8fMWj6xFp2k3YvNAvktjcm7toopba2N3BAtxNGWgmqwKANs3LcrhVGweVL+90KXy15Ykv dE8vfWDdw3+owjnAVcTRWtlaTLFL6CTKrH1/2aotQfhVV4vzF8weVplsvzG09ba1JCQ+a9PV5NOk J2H1hN5LVz/lVWvQ0wK9Btbu1u7eO5tJkuLaUBopomDo6noVZSQR8sVVcVdirsVdirsVdirsVdir sVdirsVUru7t7O0mu7lxFbW8bSzSHoqICzMaeAGKvPNc8xa7DY6Zq2pyanbx67dJZ6R5f0ZLMXIM sUk8Zuprwr8ZjhJYI6hT8PxfaxVR1zzr5z8p+XV1e6sZ7+zuGMSR6oLaG+tJSxCfWPqBkt5Yn4/C V4sNgSeW0ZkgWHJ0mGOTIISNAsHh0D81vzLlS51OVrLR2PKMzAw24HYxQD4pD4Mf+CzGqU3oTn0u kFR3n8z8T0/Gz1Dyd+UflPy0En9H9Iaku/125AbifGOPdU+f2vfLoYgHTartPLl2vhj3Bm2Wuudi qjfWNnf2c1lewpcWlwjRTwSqGR0YUZWU7EEYq8m09NS8qeW/MVzHrl7F5B0CaddOSCKGbUuEB9Oa 3hmuS8foRTB0TkvPb7QABZVmmor5g8tQNqqajNrGj2w56lZXaRfWI4BvJNbywpEWMY+IxyBuQ2Ug 0BVZUjo6K6MGRgCrA1BB3BBGKt4q7FXYqgNf1dNI0e61FozO0C/urdTRpZXISKJTvQySMqj54q89 8yy+Y7LV9H0+5SbXNc1q3vbmSKLV7rRbK1WyETNFAtqjGSv1igeY12rUA0CqBtNLi823Hk6+1W+v NQ8l6tE13YaNecGIv1iFxFFeSABriJI4pWTlX4l+IsCMKvXwABQbAdBgV2KrZYoponhmRZIpFKSR uAysrChVgdiCMVefXf5Z6loNzJqf5c366PK7GS48v3PKTSbgk1NIh8Vsx/mi29sVVdK8wec/M6Xl pPp8/lp9IrDrAge3uLie5MYkSGxlasSoY3VzJIob4lApuwVS/SNfj1F7D/B+rajcanc2st5Lp+pM s9vEsD+k0F9zPq28jTBo1MTH4lJoyjCr0DQtXg1jSLXU4EaNLlAzQyUDxuDxkiem3KNwVb3GBUdi rsVdirsVdirsVdiq2WWKKNpZXWONAWd2IVQB1JJ6Yq8184fmVoWuaVq/ljypDc+aNVvbWeyb9Fxi W1gaeMxhp7pyluqjl/OcVW+eFvfOnl7y3eaTYXd3NpusxXGs6bZ3UdlfWxitbiKaL1WmtuEkcsqj aQEjcVXFXeZ/NmjaT5b0fS9ahu9LJvrOW8h1GUahPbWlreRzfWLuaGW8/dyPGsYd36t/kmitvTIp YpokmhdZIpFDxyIQysrCoZSNiCMVXYq7FXYq7FXmGu6bqGqflv5q8k2cQfzFEt2lvZs6RmaGe4aW 3mQyFV4OjgFq0DhlrthVPtU83X50K9jvtCutL1K7U2mkWF1LaSveXEyMFSMWk9zRUpWQtTitW6A0 Csn0mx+oaVZ2PLn9Ugig59K+mgWv00xVFYq7FXYqlHmzT72/0G4isAGv4Xhu7NGICvPaTJcxIxPQ O8QUntXFWIajomh/mPreg6slwsumaPDqFrrGmi4ntryK4ufQUQTJAyMOBt3EiOwB22YYqmlvf6Nq XmbStD8vvA9n5UP1i++rspjg5W01nbWqha70kdjT7ISh3IxVmWKuxV2KtSSRxxtJIwSNAWd2NAAN yST0AxSBbznyr+Y/lu680+ZtPsZvrNxdTreaYKrGLtks4bd4IWkKqXDW1RyIqGqNlJyMZiXJyNRp MmEAzFWluh2eqfl9ql95m8wmBbDzNE995g9IxKbPUoyzxQQLVZJ0kik9IBQzF15ftHJOOASaCdfl D520rXtFktlb0tWjnurq7s2IqPrdzJcFo/5kUy8a/f1FYRyCTl6rQ5MIBlyP4pn+TcN2KuxVpmVF LMQqqKsx2AA7nFWC6n51vP0dFrsuo2vl7y3dTRW+nXN1by3VzdNO3GGTgrxrDHJ1UMGPH4mKbgFU ZqPm+78p0k84ywHSZarBrdpFKirIF5ejcW9Z2VmCng6MQx2op48gqVjzx588x/B5O8ttZWbfZ13z DytoiKV5RWaVuJK/sluIxVdF+UkeqyLc+etau/NUynktjJ/ommIwGxWzgIViPGRmxVnVjp9hp9ql pYW0VpaxikdvAixxqP8AJRAAMVQGo+VNB1C9F/PbGO/C8DfWsstrcFB0Vprd4pGUdgWpiq+w8s+X 7CyuLK1sIVtruv1xGUSGfkKH12fk0tRt8ZO22KsBg0nzH5C8yWejeVOGq+XtZMzQeXrqZ4304xqG eaGcpLS0DMoZG3VmHCpNMVTRPOWufUNP1ODU9K1CHU72TTrGzFpe2hmuoTMskC3LST8SptZAHeAK 1O1RirLtE1m11ewW7gV4iGeKe3lAWWGaJikkUigkBkYU2JB6gkEHFUfiqnc3EFtby3NxIsVvAjST SuaKqIOTMxPQADFXmfkrQ4PPN9feftdgc2+ogW/le2LPE9vp0LErOrIUdJblyXJBrxoK0xVM/Of5 YWN9osk+gqYPNVjIl9o+q3EslxOLm3JZI3nuHkk9KTdGUtxoa02xVP8AyN5stvNXlq11eJDBO/KG /s2+3b3UR4TwuOoKOD16ih74qn2KuxV2KsR/MzzLqWkaLDYaIvqeZdenGm6KhrRJZFJe4enRII1a Qn2GKr9C/K/yXpmg2Gkz6VZ6l9Si9Nru8t4ppZXYlpZGaRXNZHZmO/fFUg8+6cvk/VNO8/6NaiOz 01FsPMljbIFEmlu20qooAL2rnmKfs1HTFXpEckcsayRsHjcBkYbggioIxVLPMGttpcECW1ubzUr6 UW+n2Ybh6khUuS70bhHGil3ahoBsCSAVWKP5p1qPWTpLa/ZvrKvHFLZQ6RfTWcUsqhkhlu45Csbs GBq7DqDwpthVgnnfXPzH85eYn8l2+nnTVgKi+to5C8bbBvVkuOKcod+SCgrtUcthi5eImnoOzfy+ LH4sj6h9nu/W9D8m/lJ5X0DSntr21h1W8ulC309zEsiMK14JG4YBAR8z37Utx4xH3uu12vnnPdHo E/sfJvlSxm9e10m1jn4lBKY1ZwrCjKrNUgEdQOuWFwBs8g/Mb8ttQ8pX6ea/J7yQQJKPUt4qmSCS VuC+moqXjctx4UPWm4O2NPEQdnotL2nDJjMM/d8/2sv1Hzl5l0exguPNOoR6JP8AVhcTQ2mj6hqc UagHk1xdQFoVI41ZBTj/ADMKNmSHn51ZrkyTyz5puL6aGx1JIxc3Vqt/pt7ArxwXtqeNZEil/ewu nqJ6kTkleQ+I12WLJcVSzzPYXOoeWtWsLX/eq7sriCDen7yWJkXftucVeZef9L1b8xrfRtO0DT4H 0ZNPurqdr6SW1t4rueJ7KGINFBP/AKRaFpWMdBxIFabVVTe780n/AJV/5VbzKDp2tXt7piXFveAx OJrK8ikupWDgFU4wMwYinxLv8QwEgc2ePHKZqIsvSFZWUMpBUioI3BBwsG8VdirsVdirHWkitvzA BuQAdQ0xYtOc/wA9rNJJcxr/AJTpNG1O4Q+BxV5hoHk/zZb2Pky4nm1F4IPNN5PNokltEsNpE0uo FbkssK3AVuSkNJIV/ebdVxV6f5TZJ9Q8x31uQbG61KkDADjI9vbQ288it3/exNH8098VZFiqG1PT LDVNPudO1CFbmxu42huYH+y6OKMpp44qrQQQwQxwQIsUMShIo0ACqqiiqAOgAxVfiqlb2lpbep9X hjh9aRppvTUJzkf7TtQCrN3JxVVxV2KuxVxUEgkAkGo9j0xV2KuxV2Ksc12eOx82aBf3RC2ckd5p wlanFLm6MEkHIn7PP6s8YPdmC98VYlr36QsPOzXflK31eHV7y9tU1eye0kbRryEmKOa5a4ZfRhkj t12dHDErxKtirLdFmivPOPmC8thytoYbLTpJx9lrm2a5lmVT+1wW6RSf5qr+zirI8VdirH/PPJND S8ILwafeWV7dooJ/cW1zHLK1BufTRTJT/JxVi35kauL/AFfStAuLHUbjytKi6jrF5YWN5ex3Ko1b eyV7WKVeLuPUlr+wAP2sVT+6vbbVPNHlyOzR1ltoZdTuRJG8UsNrPA0EccsbhWjaWSSvBgD+7b+U 4qyrFUh88ebLbyr5au9YlQzzIBFY2a7vcXUp4QQoBuS7kDbtU4qx/wAmflveaboy3N9q19beZ9Rd r3XLq0mHpPdTku6LBKJrbjHXgrCOtB1xVS84/k1pGv2LPHd3P6cQExajdzST8u/pujHiie0arTrT rWvJDiDnaDW/l53Vg8+9gPlPz95r/L7VV8s+Z7Wa4sAwSCNQZJkDHiptiP71GOwQfRQ7ZTjlKJp2 +u02HPjOaBA/HXzel6h5/wBSsHiF7Z6XpbXW9nY6rrEdpfSqTQUhEM0fI9gJjvsSMynmmR6Fr9tq 8M3GKW0vbR/SvrC4AWaCQqGCsFLKwZSCrqxVh0OKpnirsVef/m9fyXFjpvlTS1VvM2vXKrpU2/Oy WE85tQDL8Segn2SCDyNN9xiqdzeTLu5szZXnmXV57Vk4SRh7SBmWlN5re3in+6TfvXFUl/KfUrmy tbzyJqxUaz5UK28bgBBdacwraXSqNt0+B6Vow364qz/FXYq7FXYq7FXYq7FXYq7FXYq7FXYqwf8A NvWJY9Ai8t6fDHda95qkOm6ZbygOihhWe5kU1+C3jq5268cVR9j5C+r2NvZTa/rFzbwxpHIjXZUy FAAzNKoFwOVKkLL8sVSL8vpZPKfmS+/Lu9Ym0/e6p5VuHNTJZSyFp7csT8UlvK567lTXFXo2KuxV JvOHmfT/ACv5bvtbv/jhtYyUgH25pW+GKFNjVpHIUbd8VYt5D8gazZ+Wrc6nq99Yalel7q90+xkS O1tzO5k+rQROkgiWINx/d03GFUEbcfl55+guPWmk8rebzHaXc11NJO9tq0a8YJHllLtwuUHDc/aA 6DAr0/FULfaVpuoNate2sdy1lMt1aGVQxinQELIlfssAx3xVFYq7FWMebLezfXfKk93EjRRak6pK yglZWs5/RBY9FLgU/wAvh3pjSeI1XRi+n6t5Y0Pzx5tj84SwWuoand28mlz3oAS408W0SRRW7ODy Mcyy8kH7RrTfChlgEX/KxCbevq/on/cmR9mn1kfUq+/+9NK4FZHirsVS/wDw/o/6eOvm3B1f6t9S F0WckW/P1PTVSeC1fckCpxVMMVS6Xy/pEuvQa+9uP0vbW8lnFdBmU+hKwdo2UEKw5LUcgaduuKpj irsVdirsVdirsVdirsVdirsVdirsVQkmk6ZJqcOqSWsT6lbxPBBeFAZUikILor9QCVGKovFUFfaJ pN9fWF/d2qTXmlu8thcNXnE8iGNypH8ymhHTFUbirsVQuoaVpuopCl/bR3K200d1biVQ3CeE8o5F r0ZT0OKorFUFrOi6VrenS6bqtst3YzFTLA9aExuHU7EHZlBxVG4q7FXYq7FWCfm7qsv6Cg8saaiz eYvM0os9JjNf3JQiSS9JX4lFoq+oGHRuOKpxDo3na3t1to/MVvNGqhRc3Wn+pddKEl4riCEnw/c/ OuKpH+U+oTFdc0fWfi84aZeka7cEkm6WQVtbpAfsxSQgBEGy0IoMVZ/irsVdirsVdirsVdirsVdi rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdiqTL5T0z/Fr+aZGlm1M2i2ECyMD FBCHMj+ilBxaViObEmtB0xVOcVSw+W9IPmRfMghK6utobAzqzKGgMgk4uoPFuLCq1G1TiqZ4q7FX Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq818yfmZ5k0/zjruhadY WM9toej/AKanuZ5pYyVH+6G4owV2ALA9KYqn+h/mV5YvvLWja5qN3Bo36ahSa3tL2eON6ueNByK8 hyNA1N6jxxVL/wA3fzFTyf5WvLrT72y/xBGIzaabcgyyTerIIwBEkkT9Wry6bHbFWY27340uJ51j bUBAplUkxxmbhVhyo5VeXehoPHFWN/l154uvOHlJdfayisnuXuPqNqZy6vFBIYlkMhjVuLOp34bD FV35bed5fOHlNfMdxax6fBNPOkCLKZVMUEhiEhkZYvtMh/ZGKsqM0Qj9Uuoj/nqOP34qxPRPO95q XnvzD5aksooLXy/HbNJfpOZOcl2OcSMpjjCN6YqRVvnirLmZVUsxAUCpJ2AAxVa0sSoXZ1CA0LEg AEGnX54qhhq+lnUW0wXcJ1FEWR7QOvqqj1CsUrUBqGnjiqKLoG4lhyPRa771/ocVcHQsyhgWWnJQ dxXpXFWhLE0fqB1MdCeYI40HXfFXCWI0o6mq8huPs+PyxVAal5i0XTbjT7a8ukjuNVmFvp0O7PNJ TkeIUHZV3Zug74qj2miV1jZ1WRvsoSAT8hiqWW/mXTL6TVrfS5Bf3ujn0ru3iNKT8C4h5tROfjv8 PfFV+g6peX2hWeo6nZfoq5uI1kmsnlSb0i3RTKlFbanTFUxLoG4lgGpypXeg74q2rKyhlIKkVBG4 IOKoe81Czs7K5vbiVUtbNHluZK1CLEpZyaeAGKpB5G806z5nsl1iXTYrHQr6GO40iT1zJcujs4/f xemqxkqquOLt9rrirJfWi9T0ua+rSvCo5U8adcVYr53/ADG0/wAowyXF1puoX9tbIs1/cWMSSR20 TtxDStI8Q/2K1am5FKYqyayvba9soL22b1La5iSaFwD8SSKGU0O+4OKsX0f8ydN1LzZ/hl9N1Cwv ZbRtQspbyJI47i2VxGXQK7yJuekqKcVZczKqlmICgVJOwAGKsd8oee9D82yar+hvUltdJuvqb3jA CKaQIrsYTUsyryAqQK9qjfFUx0/zFouo3mo2lldJPNpMgh1DjXjFKV5cC5HHkB9oA7d8VR7SxKhd nUIDQsSAAQadfnirbOiU5MF5HitTSpPYYq+fPMP5c+d/MuqedteGkXFlqlxdafc6DbXU0HoXVtp4 4NbTxxzPGRMPi4yKVqO2+KprpnkvzRq/nzV7zzL5cnfR9TOmy2ls1zax2UEFogYQT+nznb0JCSsc a8HfdtqHCqTz+QPzSvraW3vNGWWTUvNq6nrNy9xDynsbc1gUEMeECKlFBBbfZfFV6Xrvl3zHpGhe ZtVttb1TW7uXTr36lo8ogaNJnQtH6KxQxyEqRxUVO3vgV5ToPknUdP0uy8waRp18B5c8p3MbvNDN HPdareQtWCKGRRIY4OR+yvGvSp5HCqFGnecbLQYNHk8uX91Y6H5TL6fYy2zG3GqXTN61xMlGDSRj l6SULDwX4iFU48uaHcRap5f8t+aPLmo3vlu18tRw2GnfVHlhfUriQC6kmp+7hkpy4NK68F3qrHFU Do/l/V186S6rrnl68v8Ayj5g1m9txpItpSYvqaxrplzKlV5IVRlUv8C/E3vir0v89dFv9d8taVol jBcTTalq9lbyvbiQ+jBzLzTyBPhCIqbs4oK4FYN5u8lJH58fysmlXsPk2402R7VLO1mvvWvryX/S pRNK7RRXJQcRLOaIvSla4VYxaeSLbzXfeatN0KwkN9L5gtrKw1aRHYafY6SAss63bhl5OfhCI/Jj 2oK4qy2PyVqMifmN5xj0q6m1621Cc+Ukn9fnzs4DEl3DGxHqli7GMkMKj4cVQek+XLSDyHfas8et 2esatp9ppF1qcGmTD0izepK8lszNdXFZQfrExB5hqJttiqneaf5tt7DyTpV/of6M0a5fULnWIdN0 6a5t3u2JW1eWxjp6ZZSJFjccFc/Evw8QqlOufl5d2MXm6XSdI1b6lpGg2WiaNaSpJLLcz3rK87fu uayegXq4jPANTwxVlV55XnTzz5JhbyzcahY6B5ZYL6tsskbXXEwxxXDueAMYQuFZuQr8I5GmKpJ5 S0jzNq3mf8vr7W9AvjctPfatrurXFswme5YlYFZnA9K3hDJwViNq8V+zyVVNF8u6hB+Rvm64j8sX lv5j1m5uPShS1eK5Zbu5WOOKJY6TGKJAr0K+n4V3xVF63oWrpcW+hXuhXt9o1p5P+peW7D6u0sTa rIBAzTFecccyrvykI4rU7Yqx/Vvy/wDNFrZeZ5rm11DUbzRvLunaDaemlxKt5d3QT1zEaEyJbVp8 Pw1AJ3GKvUfPNl5m0z8jINN8uW92t9b2VlZyxQKzXiWy8I5yioWfn6YPTcCuBWDea/LK2Plj8x9b stNNl5e1SDTtO0DTZIjCZ5l4W/1sQOFZWLyURmXk32vfCr1PU9NvPJf5T3lr5XslOp6bppFtFbR8 me5WIIZeCirvUcvemBXn35a+XtUX8z9Hu7zQry0g07y8ofUbmEiWfULpq3E91M9Pjbi6has4FKhd wpVPPzF85Q6zqU3lGXQtbutDR0XUHtdPuCL+VXBW0jmZUWOHmo9SWu/Rfhq2BWV6i3nDQ7ubWJLy O48rWa1Hl/T9NaW99PgEVI5Fm+Lgx5bR/ZGKsR8veWdcuPzD1jzL5UuLzTtEv9JS3NxrKXcpm1Ey FlkW3vDHP6cMdO6ipIXauKp75j0P8wpPKrW+o65Y3YWczakyafcKs9oqrxtfRglklIZ6+pxNWX4e lcKpf/zjzY61D5MvbnV7f6pcanqN1ey2clvNbzxyzSHmJBNswZAhXiKU2qTgV5np/kjUNQ/LeK0X y5eWGteYvM6fWZxbNC8NnLcF2JC/EIIY4FNXX0xy+GprhVPvN3kpI/Pj+Vk0q9h8m3GmyPapZ2s1 9619eS/6VKJpXaKK5KDiJZzRF6UrXFV0vlW61z8w9U0DzBYaj+hbA6Zb+X4orV5ALO1VXJS/dvQh BkAac19R6cVO1MVe/YFdirsVdirsVdirsVdirsVUb31fqc/pep6vpv6fo+n6vLiaen6v7vlXpz+G vXbFWCfkp/hz/DN1/h39I/o767P6n6U+r+r9a5f6RT0N/t9eX0bYq9BxV2KuxV2KuxV2KuxV2Kux V2KsO82foP8AxTov6b/SH1XnH9UpT9E/XPVH1f6xT4vX9Snp8vhrTvirMcVdirsVdirsVdirsVdi rsVdir//2Q== + + + + + + uuid:D604B9AA2016DD118D05AA6D720C964E + uuid:1f382f0a-0ae0-7240-90c9-052bfa9b93bb + + uuid:29342be3-7e33-de4c-b6a3-50180e31c442 + uuid:A55D623089FEDC11AC15B6426E08541E + + + + Document + + + 1 + False + False + + 15.000000 + 12.000000 + Picas + + + + + LucidaSansTypewriter + Lucida Sans Typewriter + Regular + Type 1 + 001.000 + False + LucidSanTyp; Lucida Sans Typewriter + + + Minion-BoldItalic + Minion + Bold Italic + Type 1 + 001.001 + False + MinioBolIta; Minion + + + + + + Black + Red 2 + + + + + + Default Swatch Group + 0 + + + + White + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + Black + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 100.000000 + + + Yellow + CMYK + PROCESS + 0.000000 + 0.000000 + 100.000000 + 0.000000 + + + Lime + CMYK + PROCESS + 33.000000 + 0.000000 + 72.999992 + 0.000000 + + + Night Blue + CMYK + PROCESS + 100.000000 + 50.000000 + 0.000000 + 0.000000 + + + Pigeon + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 30.000002 + + + Red + SPOT + 100.000000 + CMYK + 0.000000 + 100.000000 + 0.000000 + 0.000000 + + + Red 2 + SPOT + 100.000000 + CMYK + 9.000000 + 82.000000 + 60.000004 + 14.999999 + + + + + + + + + + endstream endobj 91 0 obj <> endobj 93 0 obj <> endobj 94 0 obj <> endobj 365 0 obj <>stream +H‰|• PSÙÆo€®º†šËÝ’\Í«»ëŽÖWKWíº*VðÓ 5fi-ÙXšíªjŒ¼2Ó20N}1:tçžp&p4 BT\‚âS}¶¶êÚ*Ìé°7v +l<·÷P¨*>V´sNb;,›¤—h8vZên‡í”r3>Ìù¤ `ƒQ`LD¡“[Þ¾©¼¸Ü<,¨}€>âVM¢¾Üiz º•Ë,døŒ#ff%ö]qûÑ݇w¿ÃJ¹™j”ª\§¶]£†ÁnèHlçÓñ ÀÐñt!±+ù@X¢(-)ÙCžäŽ€ÉTg²–›¥ÖâFrò¼t'ÅÄ1r¢™ë²-¾ÉvÐä¸öµ¦€‡ÑUèƒ×T:5•:kF“ ³^Ó«º¬V~ahÄþÔøÕçO„ðskaSÉÅÃŒ‰wyjìb~`?¹yÛ^Këc¥m)7V8ðþaVÓ¿ÉÒð;X€OÓé€iªXÌ+¶8J)ü‚P'x6ü5¿ÔŸÎ8­)Q–a¥*¥)“ôõŒŠ ö8Î k„›;¤£]MgE®æþ‘Ö>¬„«ý5º9Õ]K6=î»vƒbüa¡ŒN’(åØñ¸Ô¬\2Çhsö[¾jž š'šíVÌbµ›¬¤­îTž•*HP,3¤a¼gú˜½W¤èÖ~  h˜oü"½Ž>Là#áÛdk7R…Ü/á1ÚYQP—M–+´›¨ä>ÏÎ"£,Â/úþ´3Óÿ´ªB-ˆ­Lý”ì¹i¹MÍ\Ÿæ 'OtFŠðoÃÁ`a ~,EdÐkó3Èeã7Vªîo%澋Øùö‘.i³¤É(^¶þ°ž¼Âï>>?ÂBB«:JJU­ŸSx÷¤í¾sDÔ[_¦–¬vŽ£ð©Š\{^}f¯=S[#ìoþ$hG‚ô˜È_Ü;›…«=¼ü¨ëö-x,ßá ÄÌ >8,ž|†6—HSÆ©óX:gæè\„¾ø¿eË™÷P|Æ”“S”MîõMˆM](3Ÿ‹OÃÑv[ ËÙ©W4Søl•¾¾ÄbÆ,f»Í)l(Nn’»%‘*ò¨Ò?ãC,›kÊAyb–™TóAÈŸ~ KðYüù =qöqßø$¥kAÕò¸7ûªŒú3°¢cÖü®h2b{xp U#G ½Í•dYQvl.…?fŒh@†Cí"ñ'@¼ÜKN‰J’5¥v_hëêmÓ´H)ÞÌê³j`þ sQ5àƒëèÄ¿ªÔôœ2ÇPa˦tMÚ^m¿¶_×oh±VÕZ•ŽÊvÓù|Ì^è¨Ö+j“Ž„ + +ÉST'åqX!·–´‚ÐBì\婺LÒð¾B»áU°Šç‚%e£™ˆ(&¼ÒèÜú2WÅ媠²¿Üáraø¨m¯3 6;ØКÚF¶÷Uÿ~œâ1³ú%5·ÆaðÊd£üŸy‰}Ü7[ôù{?Õ Yu¬XÖ®kã”î,Ê=µ«èÕ14 úÒË_™Îoðúx±£üjˆbnŵ&ð¨lÁ¾~0Ý@Ú ÔÑs~†1:ÖOû›ŸÎaK°Dò_Ÿt³W ý£#º&…LWåéR¨ÝŽˆ?Öê ô†õTg )ñû©îf3YÎ’2P±ÌF}¨>4+TÀ›ÑÑاÁVö…=qý–«wºu£çé#á“Л«%á™Ê(‘¿Ôo-ã#ÜÚ±0¬€ ¢„YÂp²°B£±0‡ŒOøÖŽO»þ $Ûý˜”“Œ”ª¦i?÷ ûƒ¹÷I½wvø!ÅW÷X÷z÷´÷ø——Ž›­¼s?Üû6ûTsz˜”„èø`’c{Zjprcnl‚hx“i¤•¤“¤‘'ü‘ƒ`ƒL‚j÷¨—«YjŽŠ—“¶´£÷Ô„™‰™ٛз¼ÃÇϧ×Íà]Àûpf…ƒxu”v÷å÷ ö‹w÷÷˜÷føXcF\ROšoŸ¡°¤“‘‹€j„iû:€SST÷¦Ž²—њϨ™É ¯£¨£ž™•”™‡‚–È–‚•‹•’•’”“š¢”™‘¤›žr•ujWN4Z‰œÒ˜µ”…®nSË÷´÷MÉ×ÞÙä¸÷Ú÷8½^¯T©lœg¡§¨¢™¦¦©twØ’ƒ˜ˆž™¸™•—œ¬a£We_{gbZ`„bkLÅrµq½l–xvmqztoeŸ°i€—~x{zsŒsdÏo³ñðâä:”vø¹`¶Ñ÷ °÷²÷ˆŽqs]h~ˆ™«’Â÷›ê‘«³û «÷}™Ðû > endobj 364 0 obj <>stream +H‰$’oL[UÆÏéåž:§ [µ½5Ë–f¹M­àÈ`( MkÜd\Kµåâm¡vÿbÔOvCP3†¡èPF0†!Ž¹‘¹1¢câ1A6%sY?,—l!¾§;uñßç}ÎóüÞ÷Œ2Lc¼ª|Ç ¯l-q•7×ùë½5ÞÆÐöh“ÑüaEK÷%æÀìáŒoewïl³:þÁýðÚ +hÉì½S¶2-Ù[¬6E5¿¯!,¯©[+¯w»7É…õêE®‰†ÂJ0$—5Ö©Z“ªyÃJ}®,ruZ’«•¢µ§ÿçËþì•5Åç7.jJ½Ö¼õJЫ½%«oÈE~ŸP#òjy«*¡\dF¢ÇÑj´¹Ð:”‹Ö£ h#r£|d1D&$ Mè]ô%º€îb+Þãø¦ÉcúÈôÅòE x)«ŽàvvMh·Í‘iðŠ'ÓÜ+.KúDâV+ >-ò ±D/³ÛŸZØ™ä.kWÕKG*í}ªHÚ¶¥‘›×Øùss¼ÿ}áØÑçeóÁ†šæ2·ñÌìù<ù] øZ²Ä(ôQØOñ¢.,ÚXå Ðý”÷Ã~¸BSù$Í7Oa"‚©ݺ@m:ÌC7Ÿ×“>ŸàÝ0á2(»A1p]˜o³¾70~à¬ãÇÓýƒÒÔxûï@ìl'¿X ÁT©¹$–Ë3•æ{7;ô¤Á€u°m¡<‘”\éĤpë‰ë+G§žÍµM‘¬?’Â!3䤊Ä?IÖä° +ñп–Ù¤ßGøªTžø!áÙ,Oä÷,SøÞàÉÐá“2 æáirû\ßÀ˜tfèØÌÏvØÎ bn'¯%z±U'#@b|¹'RФ°ªì{ÖQ¹ä3I¡‡â„ê‚0\&¯x•OŠ°ŒðfHô6ï|äÄHçÙ!ûDà·{Ý;ëb•^œö=OÆcÜôŒ§€/“>stream +H‰¬WmsÛ6þ®_û^C†à›¤ŽÇ7¶·—I;™X~¨nn`Y²˜P”jRuÜ_ûE)içúb‘¸»Ø}öÙÝßG‰ð_¡1ž&âi9úUÔ£ëÙ(ø¯ŸG¯¸‹Åc3z=SÿÅ•Ùj¤rÞÍE’N¢DM31N¦Ñ8³Íè7ù~$rÕ†Õ2s©ë²~ƒ$–ðžÈ‡ð:(d¥A&?‹Y0åS0æ½eügöŽT)£*eU©H&q”áaO"eT} T!·’÷A˜‚Œd…j,[qGòHác€OJ>ÃV!ËEËÏžÄèQ¬Ü‘Qò‹iMóX±¢7AX ¸©Ü¡&j”láo,7°>‘u+¶p-‰›@¥r»Ùê} iàŠ'q·€íT–üÅ‚mDS’(Ërª(³Ð÷!˜ÐU&²´Ç@7JÚÖâ— U².áÀµX4þiJ6è…DÆQ\dß(òU 2)~~'âIže윈û¢÷ˆfQ# Tû,ÓTY +°îº +’DÞ7`ÎuN¥^´,õn§ë‹‹×W‹v¯«ÙòK{qûöö6‰ãôòòR\¿¹#)‚Ù§ÑÛŸàq† ï&¤?)¢´Ó?Ãû­—"ÈЯ,Â{ˆG¥ñ™P@û-†Öâ6[ óG¾¡Åú +1FoåfW!â6ø§nñ<"·îu¥ÁÇJ½´Ø,5iYJÖƒš›WA +Ø!áµÝÌdgʾ/òß_èñ‡`¿/ïuC¯ºæGi€A!:86ØxþòSCÀs.ÛuiR‰û«/d,Ü®Ã+ú1@ “Lãq±4›5¤f.Ÿù…¼·G»X>ßmÿ¯«í¶[ÞÛîŸøaAY„>ÞѶf/ãJ­+£«^=a6éÆx Ž‚th!9öìÞÈÙL”ž„YÖŠ §Íþ ~âDðsG³`&( qhB ý4-D‚¿âõ6˜Â±±üÒ¢‰ôÅwû¹¡} +þzšÚ5ÿ‚ó‚Žå2YÁà hÏw¨Z·Ú¨=í :àA³˜ ›S…­&ÏðQÆù0n öý¸À5Ò± ¨¦÷›ï¾3ø€—wX 4ö8&µÛù`®¼´&inëúî ýþd1ß·C.ƒß®1¶/ô²§ñýpÇËæ”ÝÂfÁÅStÖ”66MÔ ýmdøruBcUaä…tú^¢]Ï=x(Œ½¬À@6K~ì±Gσxbm<„Jy¥a¨ÄÍãt|@t„²ÅœPï6Œ”Gþát‚-FµY®ySkyel›CìDlL5, æzµ¯I%ÎùÆ”êÔÖË,Cµ—‘t·”;<h©ù—Z‹•¥emôÊs¾ŠÏù—:'¶Î‰=Ò_â7ûIŽå?·(ÒñÄZþƒƒÏxh]¦§Ý»jÔ< ¤Ðú/–у—¤H» ÇäÜÎql7Pý© ÂÖN;³ç5kÒ–5ÿÔÔ&ñseh‰ßˆÑá÷g5AqXÉÄ^·êhþRó3°@slˆ—D,y,ÍM†˜õ¤L!欮[çŒ.º½&ÀùîˆÿÕûÃâZ·ø»Yšr +A£ —úê@¥â°¨SAQGy¦zY¦˜Ö  |`CLÚ(Ù`?på…!¨+üÔ ¶-þŸðÍ@Îr .y sGY7^ ýz(8`Õ²i8¥„üeȵÝbBØ7Ðäï9úÚa|–aߥɆ³vß¾¨WöšÚ+Øâ›cœÓó͈/.»r /ÐDué–³5?žêùp/ Swþ©[ ³³Š +%YblP4â:) ˆè² ÐèžÐ÷çcWYcŸáø·0ŠÜ"æ^ƒn«hA-éÔ+ ˆãBâÿµ ncOZñiØßÝZÙÁ–áŽÂõîE—çÅ1‚ ¢¤ÂUa#Ux£×¸˜”Ç뢳¨íšþ’äêæû#ˆÁ´5æ]háÎ/öÔûUç ž#3PÅvr +c˜•`tùq~qq0.F,u“^G¯&Ò Kf.XãÆÓ‰»Mtƒe8Tc •BdAyÕ܈zípGÒhÅŸ<½ØÏï±{aIô×kèpl a~TGš%+6-­2]÷†z ítjt9U¤I6ÝyÞñsMŒÝÔ0T,–R§ßQU¦¾a&'œÉIÅã g;¤ñašÿF_•ugÁ@ØTô„çQVœ—ýÈY‹c¤I±®s3-  ²êÂBN”[Û›m鈫RPï£<+|ÏáL”7ao·ƒŸ]7ô¦"žùhC?°®!i»rqÐ6†¶Ó…‡Foø»£¸ÀÚJ7Ž®Ígµyàð +=¬ØæEQbU[³oX. •I„^7ø£ ¢ÉGá»ÛéúââõÕ¢Ýëj¶üÒ^ܾ½½ã«øòòR\¿¹#P +BÞþ^´Ó(™æg¢J;™Puü +4ÔÅdÒùÐ&×¾2Ý$CÔ¾8Ù‰ -¥iH´àæN.¿Kë.~ CWºæ°û&õ o5Øâv«lN©qUÞÊ5ôÀs0E €K`Ìåø'ÏT¸öþ )…ǹ_ +á½ÆbL(U¶ ¥wÕÇæí{µ>šäÖTV,pe¤A×FïœC5W.»x"ËÕAßÞ±[b2èOî@Pm¼Éë`\MŠ¯Œ1Iq|9QØ»c”ŽðüŒôÏ:vÄÉŸÞ’«GƒPëoóÎ|"X—eìúÎÄÕž7yÑó$]Žá˜Ø È2ùÊÝz«>t³.˜8Ô½ü‹vè‡w í®G œÜ %NX>J©î;ØfŸ¦OVµü•á‚\6k7RÂö߃¼× ˜†ýr$ØLþ€ ¦A ]Ù,<àœ-. ïXF>Îwh¾Í%jÑ’Xrä¾a,œ¼3žA”–ó8û•%(?&¶„x-áÛ‰Úþ×¾’[Ð!›hÑ%9¼$y¯Æ§“(g'hŸ EhÎ8¢;vÓÇ#ä•8ú†PBÙÃ)Ô4«}%Û,W]`š³ÝÏ·:æ~ªˆ&ÅÙëáBj¾i‡£x’Òó$)‚þLŒß€ºˆ ~Yä–;TÐÃ~ÃY·'çx(\#¬]¢@ÆjÓpË Ì¤ièÇ^­­¸3õѹÆÈ(µ3¨8Òb4½(±$¬;¸@Zdv­ti ³E û +ÅeÅ#ª:Ù@ÑÉlо²nºkÔË᲌ÌÉÈÉå­ôÛIEâ;ÃÚ‚‹*á.ž°ÁYñxZ½åžÄ±W8ŽÉ¹ðsºå'7à ²“HDVÝZ +†½cÆ…Åó” :*\žË÷ï?^Ÿ8‚­n¬½¬9¸H ‘ßoL9Šÿ£¾jzÛ‚è_1ÇXŠÀãk£¨·J©zÈ ƒk“bÔt±¢üû¾ùX 6Ê!=õ» »³³oÞ›ÁìQlÜZ¤AlljHpa +ŸWV›¡–;‹ß? h¿“ª¶ªÑ1¹ŽµƒÍk-s…¬¿©ü¶íþT»©ØN⃆B¦Y¨l¢}Ðgr_,®R_ò„J”Ö°ÔG­¯ìÄ6©e¶,]ï$!­$'^à÷ÉuT¶(¨Þ¨ܨuž|,°ª}ÉŸ>J“:ç÷YÜ5µÒîÌà»æHçƒ ¬Í©Öç{²†üè;»:3àš»Õ@ ôž„aœÖøÂ}FÄâå"Icµy¾qLÑ;f°fW +wöuNÔ/B²Kº¹íUß– +y:^$Iæ—˜í¯ËEž-:¸¥«Bªÿk/7ªñ]r—‹A«$“׋èºN˜¥Ñí¹G5~™hd­mUÔìtprÂn§F‡C}`S}lÏä{*|mŽ/£>M»O¼ƒÇõóˆ™0vïx@Õ´6iæÏpÝMÀÓ€•GÐom5áýï!ÃèTÉ‚sÙòT…$¢ë³Ç°Gž~-–¡mÁêsŽÂ…ÃäÝrr¼îÍ»ÔÔÛÂ>$½Àý=dîSkM͇§à1x®BJW eË„þì‚ÔãyD÷9>P~ÿ-Âã‚»¯˜Þ»àÈà¿€eÑ’Ê£¬rDÂùÐiœÈ8]ndÒ|½‰Í@^ÕÆfÙÌÏRÊG2Àl&ã9(S<Õ/Þˆ_Õ,ÇÉ"u>4çÿ§ƒ¿ _ / endstream endobj 65 0 obj <> endobj 66 0 obj <> endobj 363 0 obj <>stream +H‰\ÝjÄ …ï}Š¹Ü½XL, +([ +¹èMûF'©Ð¨LÌEÞ¾£»l¡*Ã9ßpyîŸúà3ÈwŠvÀ “ŽpY„gD«Ày›¯]½íb’ ûšqéÃ…Ö ?X\3ípxtqÄ£oä|˜áðuŽ ‡-¥\0dh ëÀáă^Lz5 ‚¬Ø©w¬û¼Ÿ˜ùs|î AÕ¾½„±ÑᚌE2aF¡®ô3W'0¸ººPãd¿ ýpÏ^Õ´w]!U!ëSÈ«§Ìà¯Â- Ýˆ8[ÝG Uâø€·•¥˜€©rįZÒqä endstream endobj 362 0 obj <>stream +H‰bd`ab`dd”õ õ +÷pÓöÍÌËÌÏÓ NÍÍLÊÏIñ,IÌÉL)Pþ!ÍøCŠ¥ž‡é·Òï¾_ß~žd•e`˜r˜÷{*ÿ÷ Áõß;…@Êêó *‹2Ó3J4’5 -- t@¤‘‚cJ~RªBpeqIjn±‚g^r~QA~QbIjŠž‚‚cNŽBHW±BPjqjQPâ…Ìb…D…’¢Ä”ÔÜÄ¢l…ü4|&1A>##‹Ì÷4¾ß#Ž3öý˜Â<ëûÑzÖlÓ³òÕÌú)7ëwõôïnsÏw³}ožô§f:»ÜçJñÿ<œ;¹>q÷ðð–½dï endstream endobj 349 0 obj <> endobj xref 0 407 0000000003 65535 f +0000000016 00000 n +0000024323 00000 n +0000000004 00001 f +0000000005 00000 f +0000000006 00001 f +0000000008 00001 f +0000024445 00000 n +0000000009 00001 f +0000000010 00001 f +0000000011 00001 f +0000000013 00001 f +0000138717 00000 n +0000000014 00001 f +0000000015 00001 f +0000000016 00001 f +0000000017 00001 f +0000000018 00001 f +0000000019 00001 f +0000000020 00001 f +0000000021 00001 f +0000000022 00001 f +0000000023 00001 f +0000000024 00001 f +0000000025 00001 f +0000000026 00001 f +0000000027 00001 f +0000000028 00001 f +0000000029 00001 f +0000000030 00001 f +0000000031 00001 f +0000000032 00001 f +0000000033 00001 f +0000000034 00001 f +0000000035 00001 f +0000000036 00001 f +0000000037 00001 f +0000000038 00001 f +0000000039 00001 f +0000000040 00001 f +0000000041 00001 f +0000000042 00001 f +0000000043 00001 f +0000000044 00001 f +0000000045 00001 f +0000000046 00001 f +0000000047 00001 f +0000000048 00001 f +0000000049 00001 f +0000000050 00001 f +0000000051 00001 f +0000000056 00001 f +0000165105 00000 n +0000182194 00000 n +0000164536 00000 n +0000187269 00000 n +0000000069 00001 f +0000165533 00000 n +0000174804 00000 n +0000195546 00000 n +0000561297 00000 n +0000573423 00000 n +0000573753 00000 n +0000573905 00000 n +0000574158 00000 n +0000810366 00000 n +0000810553 00000 n +0000195732 00000 n +0000138828 00000 n +0000000072 00001 f +0000806794 00000 n +0000024831 00000 n +0000000073 00001 f +0000000074 00001 f +0000000075 00001 f +0000000076 00001 f +0000000077 00001 f +0000000078 00001 f +0000000079 00001 f +0000000080 00001 f +0000000081 00001 f +0000000082 00001 f +0000000083 00001 f +0000000084 00001 f +0000000085 00001 f +0000000086 00001 f +0000000087 00001 f +0000000088 00001 f +0000000090 00001 f +0000773703 00000 n +0000000095 00001 f +0000801823 00000 n +0000805497 00000 n +0000802129 00000 n +0000802501 00000 n +0000000098 00001 f +0000767969 00000 n +0000025269 00000 n +0000000099 00001 f +0000000100 00001 f +0000000101 00001 f +0000000102 00001 f +0000000103 00001 f +0000000104 00001 f +0000000105 00001 f +0000000106 00001 f +0000000107 00001 f +0000000108 00001 f +0000000109 00001 f +0000000110 00001 f +0000000111 00001 f +0000000112 00001 f +0000000114 00001 f +0000712938 00000 n +0000000115 00001 f +0000000117 00001 f +0000687704 00000 n +0000000118 00001 f +0000000120 00001 f +0000668808 00000 n +0000000149 00001 f +0000600704 00000 n +0000610492 00000 n +0000740694 00000 n +0000751689 00000 n +0000741054 00000 n +0000748677 00000 n +0000741428 00000 n +0000748008 00000 n +0000741591 00000 n +0000747339 00000 n +0000741764 00000 n +0000744803 00000 n +0000742175 00000 n +0000742535 00000 n +0000738446 00000 n +0000765751 00000 n +0000738806 00000 n +0000765082 00000 n +0000738969 00000 n +0000764413 00000 n +0000739142 00000 n +0000761898 00000 n +0000739551 00000 n +0000759549 00000 n +0000739954 00000 n +0000756329 00000 n +0000740328 00000 n +0000753876 00000 n +0000000152 00001 f +0000660788 00000 n +0000025924 00000 n +0000000153 00001 f +0000000154 00001 f +0000000155 00001 f +0000000156 00001 f +0000000157 00001 f +0000000158 00001 f +0000000159 00001 f +0000000160 00001 f +0000000161 00001 f +0000000162 00001 f +0000000163 00001 f +0000000164 00001 f +0000000165 00001 f +0000000166 00001 f +0000000167 00001 f +0000000169 00001 f +0000626397 00000 n +0000000174 00001 f +0000655168 00000 n +0000658571 00000 n +0000655392 00000 n +0000655762 00000 n +0000000175 00001 f +0000000176 00001 f +0000000177 00001 f +0000000178 00001 f +0000000181 00001 f +0000620083 00000 n +0000026380 00000 n +0000000182 00001 f +0000000183 00001 f +0000000184 00001 f +0000000185 00001 f +0000000186 00001 f +0000000187 00001 f +0000000188 00001 f +0000000189 00001 f +0000000190 00001 f +0000000191 00001 f +0000000192 00001 f +0000000193 00001 f +0000000194 00001 f +0000000195 00001 f +0000000196 00001 f +0000000197 00001 f +0000000198 00001 f +0000000201 00001 f +0000601179 00000 n +0000605916 00000 n +0000000202 00001 f +0000000203 00001 f +0000000204 00001 f +0000000205 00001 f +0000000206 00001 f +0000000207 00001 f +0000000208 00001 f +0000000209 00001 f +0000000210 00001 f +0000000211 00001 f +0000000212 00001 f +0000000213 00001 f +0000000214 00001 f +0000000217 00001 f +0000618700 00000 n +0000026747 00000 n +0000000218 00001 f +0000000219 00001 f +0000000220 00001 f +0000000221 00001 f +0000000222 00001 f +0000000225 00001 f +0000614894 00000 n +0000027138 00000 n +0000000226 00001 f +0000000227 00001 f +0000000228 00001 f +0000000229 00001 f +0000000230 00001 f +0000000231 00001 f +0000000232 00001 f +0000000234 00001 f +0000577031 00000 n +0000000239 00001 f +0000601603 00000 n +0000603822 00000 n +0000601988 00000 n +0000602286 00000 n +0000000242 00001 f +0000574643 00000 n +0000027559 00000 n +0000000243 00001 f +0000000244 00001 f +0000000245 00001 f +0000000246 00001 f +0000000247 00001 f +0000000248 00001 f +0000000249 00001 f +0000000250 00001 f +0000000251 00001 f +0000000252 00001 f +0000000253 00001 f +0000000254 00001 f +0000000255 00001 f +0000000256 00001 f +0000000257 00001 f +0000000258 00001 f +0000000259 00001 f +0000000260 00001 f +0000000261 00001 f +0000000262 00001 f +0000000263 00001 f +0000000265 00001 f +0000526140 00000 n +0000000275 00001 f +0000561434 00000 n +0000572191 00000 n +0000572519 00000 n +0000572671 00000 n +0000572938 00000 n +0000561577 00000 n +0000568747 00000 n +0000561965 00000 n +0000565693 00000 n +0000000278 00001 f +0000562352 00000 n +0000562732 00000 n +0000000279 00001 f +0000000280 00001 f +0000000281 00001 f +0000000282 00001 f +0000000285 00001 f +0000506173 00000 n +0000028028 00000 n +0000000286 00001 f +0000000287 00001 f +0000000288 00001 f +0000000289 00001 f +0000000290 00001 f +0000000291 00001 f +0000000293 00001 f +0000457874 00000 n +0000000294 00001 f +0000000296 00001 f +0000427865 00000 n +0000000297 00001 f +0000000299 00001 f +0000396945 00000 n +0000000318 00001 f +0000483761 00000 n +0000499707 00000 n +0000484137 00000 n +0000496507 00000 n +0000484511 00000 n +0000494748 00000 n +0000484862 00000 n +0000492252 00000 n +0000485230 00000 n +0000491204 00000 n +0000485420 00000 n +0000488660 00000 n +0000485794 00000 n +0000486160 00000 n +0000483197 00000 n +0000505250 00000 n +0000483381 00000 n +0000502543 00000 n +0000000319 00001 f +0000000320 00001 f +0000000323 00001 f +0000195845 00000 n +0000028602 00000 n +0000000324 00001 f +0000000325 00001 f +0000000326 00001 f +0000000327 00001 f +0000000328 00001 f +0000000329 00001 f +0000000330 00001 f +0000000331 00001 f +0000000332 00001 f +0000000334 00001 f +0000138941 00000 n +0000000343 00001 f +0000166058 00000 n +0000172891 00000 n +0000166317 00000 n +0000169587 00000 n +0000166697 00000 n +0000168701 00000 n +0000166875 00000 n +0000167231 00000 n +0000000344 00001 f +0000000345 00001 f +0000000346 00001 f +0000000000 00001 f +0000029059 00000 n +0000000131 00000 n +0000811464 00000 n +0000182946 00000 n +0000188174 00000 n +0000175626 00000 n +0000565948 00000 n +0000183030 00000 n +0000182451 00000 n +0000574227 00000 n +0000573448 00000 n +0000188267 00000 n +0000187523 00000 n +0000175713 00000 n +0000175059 00000 n +0000811123 00000 n +0000810816 00000 n +0000805769 00000 n +0000802761 00000 n +0000611297 00000 n +0000610763 00000 n +0000751950 00000 n +0000748933 00000 n +0000748261 00000 n +0000747616 00000 n +0000745076 00000 n +0000742796 00000 n +0000766007 00000 n +0000765335 00000 n +0000764690 00000 n +0000762171 00000 n +0000759822 00000 n +0000756585 00000 n +0000754137 00000 n +0000658827 00000 n +0000656023 00000 n +0000606630 00000 n +0000606182 00000 n +0000604095 00000 n +0000602542 00000 n +0000573008 00000 n +0000572218 00000 n +0000569008 00000 n +0000566035 00000 n +0000562988 00000 n +0000499968 00000 n +0000496763 00000 n +0000495003 00000 n +0000492513 00000 n +0000491459 00000 n +0000488916 00000 n +0000486421 00000 n +0000505505 00000 n +0000502799 00000 n +0000173505 00000 n +0000173154 00000 n +0000169848 00000 n +0000168956 00000 n +0000167487 00000 n +0000000175 00000 n +trailer <]>> startxref 811639 %%EOF \ No newline at end of file diff --git a/vendor/github.com/petar/GoLLRB/doc/Sedgewick-RedBlackBST.java b/vendor/github.com/petar/GoLLRB/doc/Sedgewick-RedBlackBST.java new file mode 100644 index 000000000..55ac177f8 --- /dev/null +++ b/vendor/github.com/petar/GoLLRB/doc/Sedgewick-RedBlackBST.java @@ -0,0 +1,475 @@ +public class RedBlackBST, Value> +{ + private static final int BST = 0; + private static final int TD234 = 1; + private static final int BU23 = 2; + private static final boolean RED = true; + private static final boolean BLACK = false; + + private Node root; // root of the BST + private int k; // ordinal for drawing + private final int species; // species kind of tree for insert + private int heightBLACK; // black height of tree + + RedBlackBST(int species) + { this.species = species; } + + private class Node + { + Key key; // key + Value value; // associated data + Node left, right; // left and right subtrees + boolean color; // color of parent link + private int N; // number of nodes in tree rooted here + private int height; // height of tree rooted here + private double xc, yc; // for drawing + + Node(Key key, Value value) + { + this.key = key; + this.value = value; + this.color = RED; + this.N = 1; + this.height = 1; + } + } + + public int size() + { return size(root); } + + private int size(Node x) + { + if (x == null) return 0; + else return x.N; + } + + public int rootRank() + { + if (root == null) return 0; + else return size(root.left); + } + + public int height() + { return height(root); } + + public int heightB() + { return heightBLACK; } + + private int height(Node x) + { + if (x == null) return 0; + else return x.height; + } + + public boolean contains(Key key) + { return (get(key) != null); } + + public Value get(Key key) + { return get(root, key); } + + private Value get(Node x, Key key) + { + if (x == null) return null; + if (eq (key, x.key)) return x.value; + if (less(key, x.key)) return get(x.left, key); + else return get(x.right, key); + } + + public Key min() + { + if (root == null) return null; + else return min(root); + } + + private Key min(Node x) + { + if (x.left == null) return x.key; + else return min(x.left); + } + + public Key max() + { + if (root == null) return null; + else return max(root); + } + + private Key max(Node x) + { + if (x.right == null) return x.key; + else return max(x.right); + } + + public void put(Key key, Value value) + { + root = insert(root, key, value); + if (isRed(root)) heightBLACK++; + root.color = BLACK; + } + + private Node insert(Node h, Key key, Value value) + { + if (h == null) + return new Node(key, value); + + if (species == TD234) + if (isRed(h.left) && isRed(h.right)) + colorFlip(h); + + if (eq(key, h.key)) + h.value = value; + else if (less(key, h.key)) + h.left = insert(h.left, key, value); + else + h.right = insert(h.right, key, value); + + if (species == BST) return setN(h); + + if (isRed(h.right)) + h = rotateLeft(h); + + if (isRed(h.left) && isRed(h.left.left)) + h = rotateRight(h); + + if (species == BU23) + if (isRed(h.left) && isRed(h.right)) + colorFlip(h); + + return setN(h); + } + + public void deleteMin() + { + root = deleteMin(root); + root.color = BLACK; + } + + private Node deleteMin(Node h) + { + if (h.left == null) + return null; + + if (!isRed(h.left) && !isRed(h.left.left)) + h = moveRedLeft(h); + + h.left = deleteMin(h.left); + + return fixUp(h); + } + + public void deleteMax() + { + root = deleteMax(root); + root.color = BLACK; + } + + private Node deleteMax(Node h) + { + // if (h.right == null) + // { + // if (h.left != null) + // h.left.color = BLACK; + // return h.left; + // } + + if (isRed(h.left)) + h = rotateRight(h); + + if (h.right == null) + return null; + + if (!isRed(h.right) && !isRed(h.right.left)) + h = moveRedRight(h); + + h.right = deleteMax(h.right); + + return fixUp(h); + } + + public void delete(Key key) + { + root = delete(root, key); + root.color = BLACK; + } + + private Node delete(Node h, Key key) + { + if (less(key, h.key)) + { + if (!isRed(h.left) && !isRed(h.left.left)) + h = moveRedLeft(h); + h.left = delete(h.left, key); + } + else + { + if (isRed(h.left)) + h = rotateRight(h); + if (eq(key, h.key) && (h.right == null)) + return null; + if (!isRed(h.right) && !isRed(h.right.left)) + h = moveRedRight(h); + if (eq(key, h.key)) + { + h.value = get(h.right, min(h.right)); + h.key = min(h.right); + h.right = deleteMin(h.right); + } + else h.right = delete(h.right, key); + } + + return fixUp(h); + } + +// Helper methods + + private boolean less(Key a, Key b) { return a.compareTo(b) < 0; } + private boolean eq (Key a, Key b) { return a.compareTo(b) == 0; } + + private boolean isRed(Node x) + { + if (x == null) return false; + return (x.color == RED); + } + + private void colorFlip(Node h) + { + h.color = !h.color; + h.left.color = !h.left.color; + h.right.color = !h.right.color; + } + + private Node rotateLeft(Node h) + { // Make a right-leaning 3-node lean to the left. + Node x = h.right; + h.right = x.left; + x.left = setN(h); + x.color = x.left.color; + x.left.color = RED; + return setN(x); + } + + private Node rotateRight(Node h) + { // Make a left-leaning 3-node lean to the right. + Node x = h.left; + h.left = x.right; + x.right = setN(h); + x.color = x.right.color; + x.right.color = RED; + return setN(x); + } + + private Node moveRedLeft(Node h) + { // Assuming that h is red and both h.left and h.left.left + // are black, make h.left or one of its children red. + colorFlip(h); + if (isRed(h.right.left)) + { + h.right = rotateRight(h.right); + h = rotateLeft(h); + colorFlip(h); + } + return h; + } + + private Node moveRedRight(Node h) + { // Assuming that h is red and both h.right and h.right.left + // are black, make h.right or one of its children red. + colorFlip(h); + if (isRed(h.left.left)) + { + h = rotateRight(h); + colorFlip(h); + } + return h; + } + + private Node fixUp(Node h) + { + if (isRed(h.right)) + h = rotateLeft(h); + + if (isRed(h.left) && isRed(h.left.left)) + h = rotateRight(h); + + if (isRed(h.left) && isRed(h.right)) + colorFlip(h); + + return setN(h); + } + + private Node setN(Node h) + { + h.N = size(h.left) + size(h.right) + 1; + if (height(h.left) > height(h.right)) h.height = height(h.left) + 1; + else h.height = height(h.right) + 1; + return h; + } + + public String toString() + { + if (root == null) return ""; + else return heightB() + " " + toString(root); + } + + public String toString(Node x) + { + String s = "("; + if (x.left == null) s += "("; else s += toString(x.left); + if (isRed(x)) s += "*"; + if (x.right == null) s += ")"; else s += toString(x.right); + return s + ")"; + } + +// Methods for tree drawing + + public void draw(double y, double lineWidth, double nodeSize) + { + k = 0; + setcoords(root, y); + StdDraw.setPenColor(StdDraw.BLACK); + StdDraw.setPenRadius(lineWidth); + drawlines(root); + StdDraw.setPenColor(StdDraw.WHITE); + drawnodes(root, nodeSize); + } + + public void setcoords(Node x, double d) + { + if (x == null) return; + setcoords(x.left, d-.04); + x.xc = (0.5 + k++)/size(); x.yc = d - .04; + setcoords(x.right, d-.04); + } + + public void drawlines(Node x) + { + if (x == null) return; + drawlines(x.left); + if (x.left != null) + { + if (x.left.color == RED) StdDraw.setPenColor(StdDraw.RED); + else StdDraw.setPenColor(StdDraw.BLACK); + StdDraw.line(x.xc, x.yc, x.left.xc, x.left.yc); + } + if (x.right != null) + { + if (x.right.color == RED) StdDraw.setPenColor(StdDraw.RED); + else StdDraw.setPenColor(StdDraw.BLACK); + StdDraw.line(x.xc, x.yc, x.right.xc, x.right.yc); + } + drawlines(x.right); + } + + public void drawnodes(Node x, double nodeSize) + { + if (x == null) return; + drawnodes(x.left, nodeSize); + StdDraw.filledCircle(x.xc, x.yc, nodeSize); + drawnodes(x.right, nodeSize); + } + + public void mark(Key key) + { + StdDraw.setPenColor(StdDraw.BLACK); + marknodes(key, root); + } + + public void marknodes(Key key, Node x) + { + if (x == null) return; + marknodes(key, x.left); + if (eq(key, x.key)) + StdDraw.filledCircle(x.xc, x.yc, .004); + marknodes(key, x.right); + } + + public int ipl() + { return ipl(root); } + + public int ipl(Node x) + { + if (x == null) return 0; + return size(x) - 1 + ipl(x.left) + ipl(x.right); + } + + public int sizeRed() + { return sizeRed(root); } + + public int sizeRed(Node x) + { + if (x == null) return 0; + if (isRed(x)) return 1 + sizeRed(x.left) + sizeRed(x.right); + else return sizeRed(x.left) + sizeRed(x.right); + } + +// Integrity checks + + public boolean check() + { // Is this tree a red-black tree? + return isBST() && is234() && isBalanced(); + } + + private boolean isBST() + { // Is this tree a BST? + return isBST(root, min(), max()); + } + + private boolean isBST(Node x, Key min, Key max) + { // Are all the values in the BST rooted at x between min and max, + // and does the same property hold for both subtrees? + if (x == null) return true; + if (less(x.key, min) || less(max, x.key)) return false; + return isBST(x.left, min, x.key) && isBST(x.right, x.key, max); + } + + private boolean is234() { return is234(root); } + private boolean is234(Node x) + { // Does the tree have no red right links, and at most two (left) + // red links in a row on any path? + if (x == null) return true; + if (isRed(x.right)) return false; + if (isRed(x)) + if (isRed(x.left)) + if (isRed(x.left.left)) return false; + return is234(x.left) && is234(x.right); + } + + private boolean isBalanced() + { // Do all paths from root to leaf have same number of black edges? + int black = 0; // number of black links on path from root to min + Node x = root; + while (x != null) + { + if (!isRed(x)) black++; + x = x.left; + } + return isBalanced(root, black); + } + + private boolean isBalanced(Node x, int black) + { // Does every path from the root to a leaf have the given number + // of black links? + if (x == null && black == 0) return true; + else if (x == null && black != 0) return false; + if (!isRed(x)) black--; + return isBalanced(x.left, black) && isBalanced(x.right, black); + } + + + public static void main(String[] args) + { + StdDraw.setPenRadius(.0025); + int species = Integer.parseInt(args[0]); + RedBlackBST st; + st = new RedBlackBST(species); + int[] a = { 3, 1, 4, 2, 5, 9, 6, 8, 7 }; + for (int i = 0; i < a.length; i++) + st.put(a[i], i); + StdOut.println(st); + StdDraw.clear(StdDraw.LIGHT_GRAY); + st.draw(.95, .0025, .008); + StdOut.println(st.min() + " " + st.max() + " " + st.check()); + StdOut.println(st.ipl()); + StdOut.println(st.heightB()); + } + +} diff --git a/vendor/github.com/petar/GoLLRB/doc/Sedgewick-Talk-Penn2008.pdf b/vendor/github.com/petar/GoLLRB/doc/Sedgewick-Talk-Penn2008.pdf new file mode 100644 index 000000000..07861abed Binary files /dev/null and b/vendor/github.com/petar/GoLLRB/doc/Sedgewick-Talk-Penn2008.pdf differ diff --git a/vendor/github.com/petar/GoLLRB/example/ex1.go b/vendor/github.com/petar/GoLLRB/example/ex1.go new file mode 100644 index 000000000..6ebe4a686 --- /dev/null +++ b/vendor/github.com/petar/GoLLRB/example/ex1.go @@ -0,0 +1,26 @@ +package main + +import ( + "fmt" + "github.com/petar/GoLLRB/llrb" +) + +func lessInt(a, b interface{}) bool { return a.(int) < b.(int) } + +func main() { + tree := llrb.New(lessInt) + tree.ReplaceOrInsert(1) + tree.ReplaceOrInsert(2) + tree.ReplaceOrInsert(3) + tree.ReplaceOrInsert(4) + tree.DeleteMin() + tree.Delete(4) + c := tree.IterAscend() + for { + u := <-c + if u == nil { + break + } + fmt.Printf("%d\n", int(u.(int))) + } +} diff --git a/vendor/github.com/petar/GoLLRB/llrb/avgvar.go b/vendor/github.com/petar/GoLLRB/llrb/avgvar.go new file mode 100644 index 000000000..2d7e2a326 --- /dev/null +++ b/vendor/github.com/petar/GoLLRB/llrb/avgvar.go @@ -0,0 +1,39 @@ +// Copyright 2010 Petar Maymounkov. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package llrb + +import "math" + +// avgVar maintains the average and variance of a stream of numbers +// in a space-efficient manner. +type avgVar struct { + count int64 + sum, sumsq float64 +} + +func (av *avgVar) Init() { + av.count = 0 + av.sum = 0.0 + av.sumsq = 0.0 +} + +func (av *avgVar) Add(sample float64) { + av.count++ + av.sum += sample + av.sumsq += sample * sample +} + +func (av *avgVar) GetCount() int64 { return av.count } + +func (av *avgVar) GetAvg() float64 { return av.sum / float64(av.count) } + +func (av *avgVar) GetTotal() float64 { return av.sum } + +func (av *avgVar) GetVar() float64 { + a := av.GetAvg() + return av.sumsq/float64(av.count) - a*a +} + +func (av *avgVar) GetStdDev() float64 { return math.Sqrt(av.GetVar()) } diff --git a/vendor/github.com/petar/GoLLRB/llrb/iterator.go b/vendor/github.com/petar/GoLLRB/llrb/iterator.go new file mode 100644 index 000000000..ee7b27f44 --- /dev/null +++ b/vendor/github.com/petar/GoLLRB/llrb/iterator.go @@ -0,0 +1,93 @@ +package llrb + +type ItemIterator func(i Item) bool + +//func (t *Tree) Ascend(iterator ItemIterator) { +// t.AscendGreaterOrEqual(Inf(-1), iterator) +//} + +func (t *LLRB) AscendRange(greaterOrEqual, lessThan Item, iterator ItemIterator) { + t.ascendRange(t.root, greaterOrEqual, lessThan, iterator) +} + +func (t *LLRB) ascendRange(h *Node, inf, sup Item, iterator ItemIterator) bool { + if h == nil { + return true + } + if !less(h.Item, sup) { + return t.ascendRange(h.Left, inf, sup, iterator) + } + if less(h.Item, inf) { + return t.ascendRange(h.Right, inf, sup, iterator) + } + + if !t.ascendRange(h.Left, inf, sup, iterator) { + return false + } + if !iterator(h.Item) { + return false + } + return t.ascendRange(h.Right, inf, sup, iterator) +} + +// AscendGreaterOrEqual will call iterator once for each element greater or equal to +// pivot in ascending order. It will stop whenever the iterator returns false. +func (t *LLRB) AscendGreaterOrEqual(pivot Item, iterator ItemIterator) { + t.ascendGreaterOrEqual(t.root, pivot, iterator) +} + +func (t *LLRB) ascendGreaterOrEqual(h *Node, pivot Item, iterator ItemIterator) bool { + if h == nil { + return true + } + if !less(h.Item, pivot) { + if !t.ascendGreaterOrEqual(h.Left, pivot, iterator) { + return false + } + if !iterator(h.Item) { + return false + } + } + return t.ascendGreaterOrEqual(h.Right, pivot, iterator) +} + +func (t *LLRB) AscendLessThan(pivot Item, iterator ItemIterator) { + t.ascendLessThan(t.root, pivot, iterator) +} + +func (t *LLRB) ascendLessThan(h *Node, pivot Item, iterator ItemIterator) bool { + if h == nil { + return true + } + if !t.ascendLessThan(h.Left, pivot, iterator) { + return false + } + if !iterator(h.Item) { + return false + } + if less(h.Item, pivot) { + return t.ascendLessThan(h.Left, pivot, iterator) + } + return true +} + +// DescendLessOrEqual will call iterator once for each element less than the +// pivot in descending order. It will stop whenever the iterator returns false. +func (t *LLRB) DescendLessOrEqual(pivot Item, iterator ItemIterator) { + t.descendLessOrEqual(t.root, pivot, iterator) +} + +func (t *LLRB) descendLessOrEqual(h *Node, pivot Item, iterator ItemIterator) bool { + if h == nil { + return true + } + if less(h.Item, pivot) || !less(pivot, h.Item) { + if !t.descendLessOrEqual(h.Right, pivot, iterator) { + return false + } + if !iterator(h.Item) { + return false + } + } + return t.descendLessOrEqual(h.Left, pivot, iterator) +} diff --git a/vendor/github.com/petar/GoLLRB/llrb/iterator_test.go b/vendor/github.com/petar/GoLLRB/llrb/iterator_test.go new file mode 100644 index 000000000..db5e12c92 --- /dev/null +++ b/vendor/github.com/petar/GoLLRB/llrb/iterator_test.go @@ -0,0 +1,76 @@ +package llrb + +import ( + "reflect" + "testing" +) + +func TestAscendGreaterOrEqual(t *testing.T) { + tree := New() + tree.InsertNoReplace(Int(4)) + tree.InsertNoReplace(Int(6)) + tree.InsertNoReplace(Int(1)) + tree.InsertNoReplace(Int(3)) + var ary []Item + tree.AscendGreaterOrEqual(Int(-1), func(i Item) bool { + ary = append(ary, i) + return true + }) + expected := []Item{Int(1), Int(3), Int(4), Int(6)} + if !reflect.DeepEqual(ary, expected) { + t.Errorf("expected %v but got %v", expected, ary) + } + ary = nil + tree.AscendGreaterOrEqual(Int(3), func(i Item) bool { + ary = append(ary, i) + return true + }) + expected = []Item{Int(3), Int(4), Int(6)} + if !reflect.DeepEqual(ary, expected) { + t.Errorf("expected %v but got %v", expected, ary) + } + ary = nil + tree.AscendGreaterOrEqual(Int(2), func(i Item) bool { + ary = append(ary, i) + return true + }) + expected = []Item{Int(3), Int(4), Int(6)} + if !reflect.DeepEqual(ary, expected) { + t.Errorf("expected %v but got %v", expected, ary) + } +} + +func TestDescendLessOrEqual(t *testing.T) { + tree := New() + tree.InsertNoReplace(Int(4)) + tree.InsertNoReplace(Int(6)) + tree.InsertNoReplace(Int(1)) + tree.InsertNoReplace(Int(3)) + var ary []Item + tree.DescendLessOrEqual(Int(10), func(i Item) bool { + ary = append(ary, i) + return true + }) + expected := []Item{Int(6), Int(4), Int(3), Int(1)} + if !reflect.DeepEqual(ary, expected) { + t.Errorf("expected %v but got %v", expected, ary) + } + ary = nil + tree.DescendLessOrEqual(Int(4), func(i Item) bool { + ary = append(ary, i) + return true + }) + expected = []Item{Int(4), Int(3), Int(1)} + if !reflect.DeepEqual(ary, expected) { + t.Errorf("expected %v but got %v", expected, ary) + } + ary = nil + tree.DescendLessOrEqual(Int(5), func(i Item) bool { + ary = append(ary, i) + return true + }) + expected = []Item{Int(4), Int(3), Int(1)} + if !reflect.DeepEqual(ary, expected) { + t.Errorf("expected %v but got %v", expected, ary) + } +} diff --git a/vendor/github.com/petar/GoLLRB/llrb/llrb-stats.go b/vendor/github.com/petar/GoLLRB/llrb/llrb-stats.go new file mode 100644 index 000000000..47126a3be --- /dev/null +++ b/vendor/github.com/petar/GoLLRB/llrb/llrb-stats.go @@ -0,0 +1,46 @@ +// Copyright 2010 Petar Maymounkov. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package llrb + +// GetHeight() returns an item in the tree with key @key, and it's height in the tree +func (t *LLRB) GetHeight(key Item) (result Item, depth int) { + return t.getHeight(t.root, key) +} + +func (t *LLRB) getHeight(h *Node, item Item) (Item, int) { + if h == nil { + return nil, 0 + } + if less(item, h.Item) { + result, depth := t.getHeight(h.Left, item) + return result, depth + 1 + } + if less(h.Item, item) { + result, depth := t.getHeight(h.Right, item) + return result, depth + 1 + } + return h.Item, 0 +} + +// HeightStats() returns the average and standard deviation of the height +// of elements in the tree +func (t *LLRB) HeightStats() (avg, stddev float64) { + av := &avgVar{} + heightStats(t.root, 0, av) + return av.GetAvg(), av.GetStdDev() +} + +func heightStats(h *Node, d int, av *avgVar) { + if h == nil { + return + } + av.Add(float64(d)) + if h.Left != nil { + heightStats(h.Left, d+1, av) + } + if h.Right != nil { + heightStats(h.Right, d+1, av) + } +} diff --git a/vendor/github.com/petar/GoLLRB/llrb/llrb.go b/vendor/github.com/petar/GoLLRB/llrb/llrb.go new file mode 100644 index 000000000..81373fbfd --- /dev/null +++ b/vendor/github.com/petar/GoLLRB/llrb/llrb.go @@ -0,0 +1,456 @@ +// Copyright 2010 Petar Maymounkov. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// A Left-Leaning Red-Black (LLRB) implementation of 2-3 balanced binary search trees, +// based on the following work: +// +// http://www.cs.princeton.edu/~rs/talks/LLRB/08Penn.pdf +// http://www.cs.princeton.edu/~rs/talks/LLRB/LLRB.pdf +// http://www.cs.princeton.edu/~rs/talks/LLRB/Java/RedBlackBST.java +// +// 2-3 trees (and the run-time equivalent 2-3-4 trees) are the de facto standard BST +// algoritms found in implementations of Python, Java, and other libraries. The LLRB +// implementation of 2-3 trees is a recent improvement on the traditional implementation, +// observed and documented by Robert Sedgewick. +// +package llrb + +// Tree is a Left-Leaning Red-Black (LLRB) implementation of 2-3 trees +type LLRB struct { + count int + root *Node +} + +type Node struct { + Item + Left, Right *Node // Pointers to left and right child nodes + Black bool // If set, the color of the link (incoming from the parent) is black + // In the LLRB, new nodes are always red, hence the zero-value for node +} + +type Item interface { + Less(than Item) bool +} + +// +func less(x, y Item) bool { + if x == pinf { + return false + } + if x == ninf { + return true + } + return x.Less(y) +} + +// Inf returns an Item that is "bigger than" any other item, if sign is positive. +// Otherwise it returns an Item that is "smaller than" any other item. +func Inf(sign int) Item { + if sign == 0 { + panic("sign") + } + if sign > 0 { + return pinf + } + return ninf +} + +var ( + ninf = nInf{} + pinf = pInf{} +) + +type nInf struct{} + +func (nInf) Less(Item) bool { + return true +} + +type pInf struct{} + +func (pInf) Less(Item) bool { + return false +} + +// New() allocates a new tree +func New() *LLRB { + return &LLRB{} +} + +// SetRoot sets the root node of the tree. +// It is intended to be used by functions that deserialize the tree. +func (t *LLRB) SetRoot(r *Node) { + t.root = r +} + +// Root returns the root node of the tree. +// It is intended to be used by functions that serialize the tree. +func (t *LLRB) Root() *Node { + return t.root +} + +// Len returns the number of nodes in the tree. +func (t *LLRB) Len() int { return t.count } + +// Has returns true if the tree contains an element whose order is the same as that of key. +func (t *LLRB) Has(key Item) bool { + return t.Get(key) != nil +} + +// Get retrieves an element from the tree whose order is the same as that of key. +func (t *LLRB) Get(key Item) Item { + h := t.root + for h != nil { + switch { + case less(key, h.Item): + h = h.Left + case less(h.Item, key): + h = h.Right + default: + return h.Item + } + } + return nil +} + +// Min returns the minimum element in the tree. +func (t *LLRB) Min() Item { + h := t.root + if h == nil { + return nil + } + for h.Left != nil { + h = h.Left + } + return h.Item +} + +// Max returns the maximum element in the tree. +func (t *LLRB) Max() Item { + h := t.root + if h == nil { + return nil + } + for h.Right != nil { + h = h.Right + } + return h.Item +} + +func (t *LLRB) ReplaceOrInsertBulk(items ...Item) { + for _, i := range items { + t.ReplaceOrInsert(i) + } +} + +func (t *LLRB) InsertNoReplaceBulk(items ...Item) { + for _, i := range items { + t.InsertNoReplace(i) + } +} + +// ReplaceOrInsert inserts item into the tree. If an existing +// element has the same order, it is removed from the tree and returned. +func (t *LLRB) ReplaceOrInsert(item Item) Item { + if item == nil { + panic("inserting nil item") + } + var replaced Item + t.root, replaced = t.replaceOrInsert(t.root, item) + t.root.Black = true + if replaced == nil { + t.count++ + } + return replaced +} + +func (t *LLRB) replaceOrInsert(h *Node, item Item) (*Node, Item) { + if h == nil { + return newNode(item), nil + } + + h = walkDownRot23(h) + + var replaced Item + if less(item, h.Item) { // BUG + h.Left, replaced = t.replaceOrInsert(h.Left, item) + } else if less(h.Item, item) { + h.Right, replaced = t.replaceOrInsert(h.Right, item) + } else { + replaced, h.Item = h.Item, item + } + + h = walkUpRot23(h) + + return h, replaced +} + +// InsertNoReplace inserts item into the tree. If an existing +// element has the same order, both elements remain in the tree. +func (t *LLRB) InsertNoReplace(item Item) { + if item == nil { + panic("inserting nil item") + } + t.root = t.insertNoReplace(t.root, item) + t.root.Black = true + t.count++ +} + +func (t *LLRB) insertNoReplace(h *Node, item Item) *Node { + if h == nil { + return newNode(item) + } + + h = walkDownRot23(h) + + if less(item, h.Item) { + h.Left = t.insertNoReplace(h.Left, item) + } else { + h.Right = t.insertNoReplace(h.Right, item) + } + + return walkUpRot23(h) +} + +// Rotation driver routines for 2-3 algorithm + +func walkDownRot23(h *Node) *Node { return h } + +func walkUpRot23(h *Node) *Node { + if isRed(h.Right) && !isRed(h.Left) { + h = rotateLeft(h) + } + + if isRed(h.Left) && isRed(h.Left.Left) { + h = rotateRight(h) + } + + if isRed(h.Left) && isRed(h.Right) { + flip(h) + } + + return h +} + +// Rotation driver routines for 2-3-4 algorithm + +func walkDownRot234(h *Node) *Node { + if isRed(h.Left) && isRed(h.Right) { + flip(h) + } + + return h +} + +func walkUpRot234(h *Node) *Node { + if isRed(h.Right) && !isRed(h.Left) { + h = rotateLeft(h) + } + + if isRed(h.Left) && isRed(h.Left.Left) { + h = rotateRight(h) + } + + return h +} + +// DeleteMin deletes the minimum element in the tree and returns the +// deleted item or nil otherwise. +func (t *LLRB) DeleteMin() Item { + var deleted Item + t.root, deleted = deleteMin(t.root) + if t.root != nil { + t.root.Black = true + } + if deleted != nil { + t.count-- + } + return deleted +} + +// deleteMin code for LLRB 2-3 trees +func deleteMin(h *Node) (*Node, Item) { + if h == nil { + return nil, nil + } + if h.Left == nil { + return nil, h.Item + } + + if !isRed(h.Left) && !isRed(h.Left.Left) { + h = moveRedLeft(h) + } + + var deleted Item + h.Left, deleted = deleteMin(h.Left) + + return fixUp(h), deleted +} + +// DeleteMax deletes the maximum element in the tree and returns +// the deleted item or nil otherwise +func (t *LLRB) DeleteMax() Item { + var deleted Item + t.root, deleted = deleteMax(t.root) + if t.root != nil { + t.root.Black = true + } + if deleted != nil { + t.count-- + } + return deleted +} + +func deleteMax(h *Node) (*Node, Item) { + if h == nil { + return nil, nil + } + if isRed(h.Left) { + h = rotateRight(h) + } + if h.Right == nil { + return nil, h.Item + } + if !isRed(h.Right) && !isRed(h.Right.Left) { + h = moveRedRight(h) + } + var deleted Item + h.Right, deleted = deleteMax(h.Right) + + return fixUp(h), deleted +} + +// Delete deletes an item from the tree whose key equals key. +// The deleted item is return, otherwise nil is returned. +func (t *LLRB) Delete(key Item) Item { + var deleted Item + t.root, deleted = t.delete(t.root, key) + if t.root != nil { + t.root.Black = true + } + if deleted != nil { + t.count-- + } + return deleted +} + +func (t *LLRB) delete(h *Node, item Item) (*Node, Item) { + var deleted Item + if h == nil { + return nil, nil + } + if less(item, h.Item) { + if h.Left == nil { // item not present. Nothing to delete + return h, nil + } + if !isRed(h.Left) && !isRed(h.Left.Left) { + h = moveRedLeft(h) + } + h.Left, deleted = t.delete(h.Left, item) + } else { + if isRed(h.Left) { + h = rotateRight(h) + } + // If @item equals @h.Item and no right children at @h + if !less(h.Item, item) && h.Right == nil { + return nil, h.Item + } + // PETAR: Added 'h.Right != nil' below + if h.Right != nil && !isRed(h.Right) && !isRed(h.Right.Left) { + h = moveRedRight(h) + } + // If @item equals @h.Item, and (from above) 'h.Right != nil' + if !less(h.Item, item) { + var subDeleted Item + h.Right, subDeleted = deleteMin(h.Right) + if subDeleted == nil { + panic("logic") + } + deleted, h.Item = h.Item, subDeleted + } else { // Else, @item is bigger than @h.Item + h.Right, deleted = t.delete(h.Right, item) + } + } + + return fixUp(h), deleted +} + +// Internal node manipulation routines + +func newNode(item Item) *Node { return &Node{Item: item} } + +func isRed(h *Node) bool { + if h == nil { + return false + } + return !h.Black +} + +func rotateLeft(h *Node) *Node { + x := h.Right + if x.Black { + panic("rotating a black link") + } + h.Right = x.Left + x.Left = h + x.Black = h.Black + h.Black = false + return x +} + +func rotateRight(h *Node) *Node { + x := h.Left + if x.Black { + panic("rotating a black link") + } + h.Left = x.Right + x.Right = h + x.Black = h.Black + h.Black = false + return x +} + +// REQUIRE: Left and Right children must be present +func flip(h *Node) { + h.Black = !h.Black + h.Left.Black = !h.Left.Black + h.Right.Black = !h.Right.Black +} + +// REQUIRE: Left and Right children must be present +func moveRedLeft(h *Node) *Node { + flip(h) + if isRed(h.Right.Left) { + h.Right = rotateRight(h.Right) + h = rotateLeft(h) + flip(h) + } + return h +} + +// REQUIRE: Left and Right children must be present +func moveRedRight(h *Node) *Node { + flip(h) + if isRed(h.Left.Left) { + h = rotateRight(h) + flip(h) + } + return h +} + +func fixUp(h *Node) *Node { + if isRed(h.Right) { + h = rotateLeft(h) + } + + if isRed(h.Left) && isRed(h.Left.Left) { + h = rotateRight(h) + } + + if isRed(h.Left) && isRed(h.Right) { + flip(h) + } + + return h +} diff --git a/vendor/github.com/petar/GoLLRB/llrb/llrb_test.go b/vendor/github.com/petar/GoLLRB/llrb/llrb_test.go new file mode 100644 index 000000000..b7bc97800 --- /dev/null +++ b/vendor/github.com/petar/GoLLRB/llrb/llrb_test.go @@ -0,0 +1,239 @@ +// Copyright 2010 Petar Maymounkov. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package llrb + +import ( + "math" + "math/rand" + "testing" +) + +func TestCases(t *testing.T) { + tree := New() + tree.ReplaceOrInsert(Int(1)) + tree.ReplaceOrInsert(Int(1)) + if tree.Len() != 1 { + t.Errorf("expecting len 1") + } + if !tree.Has(Int(1)) { + t.Errorf("expecting to find key=1") + } + + tree.Delete(Int(1)) + if tree.Len() != 0 { + t.Errorf("expecting len 0") + } + if tree.Has(Int(1)) { + t.Errorf("not expecting to find key=1") + } + + tree.Delete(Int(1)) + if tree.Len() != 0 { + t.Errorf("expecting len 0") + } + if tree.Has(Int(1)) { + t.Errorf("not expecting to find key=1") + } +} + +func TestReverseInsertOrder(t *testing.T) { + tree := New() + n := 100 + for i := 0; i < n; i++ { + tree.ReplaceOrInsert(Int(n - i)) + } + i := 0 + tree.AscendGreaterOrEqual(Int(0), func(item Item) bool { + i++ + if item.(Int) != Int(i) { + t.Errorf("bad order: got %d, expect %d", item.(Int), i) + } + return true + }) +} + +func TestRange(t *testing.T) { + tree := New() + order := []String{ + "ab", "aba", "abc", "a", "aa", "aaa", "b", "a-", "a!", + } + for _, i := range order { + tree.ReplaceOrInsert(i) + } + k := 0 + tree.AscendRange(String("ab"), String("ac"), func(item Item) bool { + if k > 3 { + t.Fatalf("returned more items than expected") + } + i1 := order[k] + i2 := item.(String) + if i1 != i2 { + t.Errorf("expecting %s, got %s", i1, i2) + } + k++ + return true + }) +} + +func TestRandomInsertOrder(t *testing.T) { + tree := New() + n := 1000 + perm := rand.Perm(n) + for i := 0; i < n; i++ { + tree.ReplaceOrInsert(Int(perm[i])) + } + j := 0 + tree.AscendGreaterOrEqual(Int(0), func(item Item) bool { + if item.(Int) != Int(j) { + t.Fatalf("bad order") + } + j++ + return true + }) +} + +func TestRandomReplace(t *testing.T) { + tree := New() + n := 100 + perm := rand.Perm(n) + for i := 0; i < n; i++ { + tree.ReplaceOrInsert(Int(perm[i])) + } + perm = rand.Perm(n) + for i := 0; i < n; i++ { + if replaced := tree.ReplaceOrInsert(Int(perm[i])); replaced == nil || replaced.(Int) != Int(perm[i]) { + t.Errorf("error replacing") + } + } +} + +func TestRandomInsertSequentialDelete(t *testing.T) { + tree := New() + n := 1000 + perm := rand.Perm(n) + for i := 0; i < n; i++ { + tree.ReplaceOrInsert(Int(perm[i])) + } + for i := 0; i < n; i++ { + tree.Delete(Int(i)) + } +} + +func TestRandomInsertDeleteNonExistent(t *testing.T) { + tree := New() + n := 100 + perm := rand.Perm(n) + for i := 0; i < n; i++ { + tree.ReplaceOrInsert(Int(perm[i])) + } + if tree.Delete(Int(200)) != nil { + t.Errorf("deleted non-existent item") + } + if tree.Delete(Int(-2)) != nil { + t.Errorf("deleted non-existent item") + } + for i := 0; i < n; i++ { + if u := tree.Delete(Int(i)); u == nil || u.(Int) != Int(i) { + t.Errorf("delete failed") + } + } + if tree.Delete(Int(200)) != nil { + t.Errorf("deleted non-existent item") + } + if tree.Delete(Int(-2)) != nil { + t.Errorf("deleted non-existent item") + } +} + +func TestRandomInsertPartialDeleteOrder(t *testing.T) { + tree := New() + n := 100 + perm := rand.Perm(n) + for i := 0; i < n; i++ { + tree.ReplaceOrInsert(Int(perm[i])) + } + for i := 1; i < n-1; i++ { + tree.Delete(Int(i)) + } + j := 0 + tree.AscendGreaterOrEqual(Int(0), func(item Item) bool { + switch j { + case 0: + if item.(Int) != Int(0) { + t.Errorf("expecting 0") + } + case 1: + if item.(Int) != Int(n-1) { + t.Errorf("expecting %d", n-1) + } + } + j++ + return true + }) +} + +func TestRandomInsertStats(t *testing.T) { + tree := New() + n := 100000 + perm := rand.Perm(n) + for i := 0; i < n; i++ { + tree.ReplaceOrInsert(Int(perm[i])) + } + avg, _ := tree.HeightStats() + expAvg := math.Log2(float64(n)) - 1.5 + if math.Abs(avg-expAvg) >= 2.0 { + t.Errorf("too much deviation from expected average height") + } +} + +func BenchmarkInsert(b *testing.B) { + tree := New() + for i := 0; i < b.N; i++ { + tree.ReplaceOrInsert(Int(b.N - i)) + } +} + +func BenchmarkDelete(b *testing.B) { + b.StopTimer() + tree := New() + for i := 0; i < b.N; i++ { + tree.ReplaceOrInsert(Int(b.N - i)) + } + b.StartTimer() + for i := 0; i < b.N; i++ { + tree.Delete(Int(i)) + } +} + +func BenchmarkDeleteMin(b *testing.B) { + b.StopTimer() + tree := New() + for i := 0; i < b.N; i++ { + tree.ReplaceOrInsert(Int(b.N - i)) + } + b.StartTimer() + for i := 0; i < b.N; i++ { + tree.DeleteMin() + } +} + +func TestInsertNoReplace(t *testing.T) { + tree := New() + n := 1000 + for q := 0; q < 2; q++ { + perm := rand.Perm(n) + for i := 0; i < n; i++ { + tree.InsertNoReplace(Int(perm[i])) + } + } + j := 0 + tree.AscendGreaterOrEqual(Int(0), func(item Item) bool { + if item.(Int) != Int(j/2) { + t.Fatalf("bad order") + } + j++ + return true + }) +} diff --git a/vendor/github.com/petar/GoLLRB/llrb/util.go b/vendor/github.com/petar/GoLLRB/llrb/util.go new file mode 100644 index 000000000..63dbdb2df --- /dev/null +++ b/vendor/github.com/petar/GoLLRB/llrb/util.go @@ -0,0 +1,17 @@ +// Copyright 2010 Petar Maymounkov. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package llrb + +type Int int + +func (x Int) Less(than Item) bool { + return x < than.(Int) +} + +type String string + +func (x String) Less(than Item) bool { + return x < than.(String) +} diff --git a/vendor/github.com/peterbourgon/diskv/LICENSE b/vendor/github.com/peterbourgon/diskv/LICENSE new file mode 100644 index 000000000..41ce7f16e --- /dev/null +++ b/vendor/github.com/peterbourgon/diskv/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2011-2012 Peter Bourgon + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/peterbourgon/diskv/README.md b/vendor/github.com/peterbourgon/diskv/README.md new file mode 100644 index 000000000..3474739ed --- /dev/null +++ b/vendor/github.com/peterbourgon/diskv/README.md @@ -0,0 +1,141 @@ +# What is diskv? + +Diskv (disk-vee) is a simple, persistent key-value store written in the Go +language. It starts with an incredibly simple API for storing arbitrary data on +a filesystem by key, and builds several layers of performance-enhancing +abstraction on top. The end result is a conceptually simple, but highly +performant, disk-backed storage system. + +[![Build Status][1]][2] + +[1]: https://drone.io/github.com/peterbourgon/diskv/status.png +[2]: https://drone.io/github.com/peterbourgon/diskv/latest + + +# Installing + +Install [Go 1][3], either [from source][4] or [with a prepackaged binary][5]. +Then, + +```bash +$ go get github.com/peterbourgon/diskv +``` + +[3]: http://golang.org +[4]: http://golang.org/doc/install/source +[5]: http://golang.org/doc/install + + +# Usage + +```go +package main + +import ( + "fmt" + "github.com/peterbourgon/diskv" +) + +func main() { + // Simplest transform function: put all the data files into the base dir. + flatTransform := func(s string) []string { return []string{} } + + // Initialize a new diskv store, rooted at "my-data-dir", with a 1MB cache. + d := diskv.New(diskv.Options{ + BasePath: "my-data-dir", + Transform: flatTransform, + CacheSizeMax: 1024 * 1024, + }) + + // Write three bytes to the key "alpha". + key := "alpha" + d.Write(key, []byte{'1', '2', '3'}) + + // Read the value back out of the store. + value, _ := d.Read(key) + fmt.Printf("%v\n", value) + + // Erase the key+value from the store (and the disk). + d.Erase(key) +} +``` + +More complex examples can be found in the "examples" subdirectory. + + +# Theory + +## Basic idea + +At its core, diskv is a map of a key (`string`) to arbitrary data (`[]byte`). +The data is written to a single file on disk, with the same name as the key. +The key determines where that file will be stored, via a user-provided +`TransformFunc`, which takes a key and returns a slice (`[]string`) +corresponding to a path list where the key file will be stored. The simplest +TransformFunc, + +```go +func SimpleTransform (key string) []string { + return []string{} +} +``` + +will place all keys in the same, base directory. The design is inspired by +[Redis diskstore][6]; a TransformFunc which emulates the default diskstore +behavior is available in the content-addressable-storage example. + +[6]: http://groups.google.com/group/redis-db/browse_thread/thread/d444bc786689bde9?pli=1 + +**Note** that your TransformFunc should ensure that one valid key doesn't +transform to a subset of another valid key. That is, it shouldn't be possible +to construct valid keys that resolve to directory names. As a concrete example, +if your TransformFunc splits on every 3 characters, then + +```go +d.Write("abcabc", val) // OK: written to /abc/abc/abcabc +d.Write("abc", val) // Error: attempted write to /abc/abc, but it's a directory +``` + +This will be addressed in an upcoming version of diskv. + +Probably the most important design principle behind diskv is that your data is +always flatly available on the disk. diskv will never do anything that would +prevent you from accessing, copying, backing up, or otherwise interacting with +your data via common UNIX commandline tools. + +## Adding a cache + +An in-memory caching layer is provided by combining the BasicStore +functionality with a simple map structure, and keeping it up-to-date as +appropriate. Since the map structure in Go is not threadsafe, it's combined +with a RWMutex to provide safe concurrent access. + +## Adding order + +diskv is a key-value store and therefore inherently unordered. An ordering +system can be injected into the store by passing something which satisfies the +diskv.Index interface. (A default implementation, using Google's +[btree][7] package, is provided.) Basically, diskv keeps an ordered (by a +user-provided Less function) index of the keys, which can be queried. + +[7]: https://github.com/google/btree + +## Adding compression + +Something which implements the diskv.Compression interface may be passed +during store creation, so that all Writes and Reads are filtered through +a compression/decompression pipeline. Several default implementations, +using stdlib compression algorithms, are provided. Note that data is cached +compressed; the cost of decompression is borne with each Read. + +## Streaming + +diskv also now provides ReadStream and WriteStream methods, to allow very large +data to be handled efficiently. + + +# Future plans + + * Needs plenty of robust testing: huge datasets, etc... + * More thorough benchmarking + * Your suggestions for use-cases I haven't thought of diff --git a/vendor/github.com/peterbourgon/diskv/basic_test.go b/vendor/github.com/peterbourgon/diskv/basic_test.go new file mode 100644 index 000000000..0ef0b17fe --- /dev/null +++ b/vendor/github.com/peterbourgon/diskv/basic_test.go @@ -0,0 +1,336 @@ +package diskv + +import ( + "bytes" + "errors" + "testing" + "time" +) + +func cmpBytes(a, b []byte) bool { + if len(a) != len(b) { + return false + } + for i := 0; i < len(a); i++ { + if a[i] != b[i] { + return false + } + } + return true +} + +func (d *Diskv) isCached(key string) bool { + d.mu.RLock() + defer d.mu.RUnlock() + _, ok := d.cache[key] + return ok +} + +func TestWriteReadErase(t *testing.T) { + d := New(Options{ + BasePath: "test-data", + CacheSizeMax: 1024, + }) + defer d.EraseAll() + k, v := "a", []byte{'b'} + if err := d.Write(k, v); err != nil { + t.Fatalf("write: %s", err) + } + if readVal, err := d.Read(k); err != nil { + t.Fatalf("read: %s", err) + } else if bytes.Compare(v, readVal) != 0 { + t.Fatalf("read: expected %s, got %s", v, readVal) + } + if err := d.Erase(k); err != nil { + t.Fatalf("erase: %s", err) + } +} + +func TestWRECache(t *testing.T) { + d := New(Options{ + BasePath: "test-data", + CacheSizeMax: 1024, + }) + defer d.EraseAll() + k, v := "xxx", []byte{' ', ' ', ' '} + if d.isCached(k) { + t.Fatalf("key cached before Write and Read") + } + if err := d.Write(k, v); err != nil { + t.Fatalf("write: %s", err) + } + if d.isCached(k) { + t.Fatalf("key cached before Read") + } + if readVal, err := d.Read(k); err != nil { + t.Fatalf("read: %s", err) + } else if bytes.Compare(v, readVal) != 0 { + t.Fatalf("read: expected %s, got %s", v, readVal) + } + for i := 0; i < 10 && !d.isCached(k); i++ { + time.Sleep(10 * time.Millisecond) + } + if !d.isCached(k) { + t.Fatalf("key not cached after Read") + } + if err := d.Erase(k); err != nil { + t.Fatalf("erase: %s", err) + } + if d.isCached(k) { + t.Fatalf("key cached after Erase") + } +} + +func TestStrings(t *testing.T) { + d := New(Options{ + BasePath: "test-data", + CacheSizeMax: 1024, + }) + defer d.EraseAll() + + keys := map[string]bool{"a": false, "b": false, "c": false, "d": false} + v := []byte{'1'} + for k := range keys { + if err := d.Write(k, v); err != nil { + t.Fatalf("write: %s: %s", k, err) + } + } + + for k := range d.Keys(nil) { + if _, present := keys[k]; present { + t.Logf("got: %s", k) + keys[k] = true + } else { + t.Fatalf("strings() returns unknown key: %s", k) + } + } + + for k, found := range keys { + if !found { + t.Errorf("never got %s", k) + } + } +} + +func TestZeroByteCache(t *testing.T) { + d := New(Options{ + BasePath: "test-data", + CacheSizeMax: 0, + }) + defer d.EraseAll() + + k, v := "a", []byte{'1', '2', '3'} + if err := d.Write(k, v); err != nil { + t.Fatalf("Write: %s", err) + } + + if d.isCached(k) { + t.Fatalf("key cached, expected not-cached") + } + + if _, err := d.Read(k); err != nil { + t.Fatalf("Read: %s", err) + } + + if d.isCached(k) { + t.Fatalf("key cached, expected not-cached") + } +} + +func TestOneByteCache(t *testing.T) { + d := New(Options{ + BasePath: "test-data", + CacheSizeMax: 1, + }) + defer d.EraseAll() + + k1, k2, v1, v2 := "a", "b", []byte{'1'}, []byte{'1', '2'} + if err := d.Write(k1, v1); err != nil { + t.Fatal(err) + } + + if v, err := d.Read(k1); err != nil { + t.Fatal(err) + } else if !cmpBytes(v, v1) { + t.Fatalf("Read: expected %s, got %s", string(v1), string(v)) + } + + for i := 0; i < 10 && !d.isCached(k1); i++ { + time.Sleep(10 * time.Millisecond) + } + if !d.isCached(k1) { + t.Fatalf("expected 1-byte value to be cached, but it wasn't") + } + + if err := d.Write(k2, v2); err != nil { + t.Fatal(err) + } + if _, err := d.Read(k2); err != nil { + t.Fatalf("--> %s", err) + } + + for i := 0; i < 10 && (!d.isCached(k1) || d.isCached(k2)); i++ { + time.Sleep(10 * time.Millisecond) // just wait for lazy-cache + } + if !d.isCached(k1) { + t.Fatalf("1-byte value was uncached for no reason") + } + + if d.isCached(k2) { + t.Fatalf("2-byte value was cached, but cache max size is 1") + } +} + +func TestStaleCache(t *testing.T) { + d := New(Options{ + BasePath: "test-data", + CacheSizeMax: 1, + }) + defer d.EraseAll() + + k, first, second := "a", "first", "second" + if err := d.Write(k, []byte(first)); err != nil { + t.Fatal(err) + } + + v, err := d.Read(k) + if err != nil { + t.Fatal(err) + } + if string(v) != first { + t.Errorf("expected '%s', got '%s'", first, v) + } + + if err := d.Write(k, []byte(second)); err != nil { + t.Fatal(err) + } + + v, err = d.Read(k) + if err != nil { + t.Fatal(err) + } + + if string(v) != second { + t.Errorf("expected '%s', got '%s'", second, v) + } +} + +func TestHas(t *testing.T) { + d := New(Options{ + BasePath: "test-data", + CacheSizeMax: 1024, + }) + defer d.EraseAll() + + for k, v := range map[string]string{ + "a": "1", + "foo": "2", + "012345": "3", + } { + d.Write(k, []byte(v)) + } + + d.Read("foo") // cache one of them + if !d.isCached("foo") { + t.Errorf("'foo' didn't get cached") + } + + for _, tuple := range []struct { + key string + expected bool + }{ + {"a", true}, + {"b", false}, + {"foo", true}, + {"bar", false}, + {"01234", false}, + {"012345", true}, + {"0123456", false}, + } { + if expected, got := tuple.expected, d.Has(tuple.key); expected != got { + t.Errorf("Has(%s): expected %v, got %v", tuple.key, expected, got) + } + } +} + +type BrokenReader struct{} + +func (BrokenReader) Read(p []byte) (n int, err error) { + return 0, errors.New("failed to read") +} + +func TestRemovesIncompleteFiles(t *testing.T) { + opts := Options{ + BasePath: "test-data", + CacheSizeMax: 1024, + } + d := New(opts) + defer d.EraseAll() + + key, stream, sync := "key", BrokenReader{}, false + + if err := d.WriteStream(key, stream, sync); err == nil { + t.Fatalf("Expected i/o copy error, none received.") + } + + if _, err := d.Read(key); err == nil { + t.Fatal("Could read the key, but it shouldn't exist") + } +} + +func TestTempDir(t *testing.T) { + opts := Options{ + BasePath: "test-data", + TempDir: "test-data-temp", + CacheSizeMax: 1024, + } + d := New(opts) + defer d.EraseAll() + + k, v := "a", []byte{'b'} + if err := d.Write(k, v); err != nil { + t.Fatalf("write: %s", err) + } + if readVal, err := d.Read(k); err != nil { + t.Fatalf("read: %s", err) + } else if bytes.Compare(v, readVal) != 0 { + t.Fatalf("read: expected %s, got %s", v, readVal) + } + if err := d.Erase(k); err != nil { + t.Fatalf("erase: %s", err) + } +} + +type CrashingReader struct{} + +func (CrashingReader) Read(p []byte) (n int, err error) { + panic("System has crashed while reading the stream") +} + +func TestAtomicWrite(t *testing.T) { + opts := Options{ + BasePath: "test-data", + // Test would fail if TempDir is not set here. + TempDir: "test-data-temp", + CacheSizeMax: 1024, + } + d := New(opts) + defer d.EraseAll() + + key := "key" + func() { + defer func() { + recover() // Ignore panicking error + }() + + stream := CrashingReader{} + d.WriteStream(key, stream, false) + }() + + if d.Has(key) { + t.Fatal("Has key, but it shouldn't exist") + } + if _, ok := <-d.Keys(nil); ok { + t.Fatal("Store isn't empty") + } +} diff --git a/vendor/github.com/peterbourgon/diskv/compression.go b/vendor/github.com/peterbourgon/diskv/compression.go new file mode 100644 index 000000000..5192b0273 --- /dev/null +++ b/vendor/github.com/peterbourgon/diskv/compression.go @@ -0,0 +1,64 @@ +package diskv + +import ( + "compress/flate" + "compress/gzip" + "compress/zlib" + "io" +) + +// Compression is an interface that Diskv uses to implement compression of +// data. Writer takes a destination io.Writer and returns a WriteCloser that +// compresses all data written through it. Reader takes a source io.Reader and +// returns a ReadCloser that decompresses all data read through it. You may +// define these methods on your own type, or use one of the NewCompression +// helpers. +type Compression interface { + Writer(dst io.Writer) (io.WriteCloser, error) + Reader(src io.Reader) (io.ReadCloser, error) +} + +// NewGzipCompression returns a Gzip-based Compression. +func NewGzipCompression() Compression { + return NewGzipCompressionLevel(flate.DefaultCompression) +} + +// NewGzipCompressionLevel returns a Gzip-based Compression with the given level. +func NewGzipCompressionLevel(level int) Compression { + return &genericCompression{ + wf: func(w io.Writer) (io.WriteCloser, error) { return gzip.NewWriterLevel(w, level) }, + rf: func(r io.Reader) (io.ReadCloser, error) { return gzip.NewReader(r) }, + } +} + +// NewZlibCompression returns a Zlib-based Compression. +func NewZlibCompression() Compression { + return NewZlibCompressionLevel(flate.DefaultCompression) +} + +// NewZlibCompressionLevel returns a Zlib-based Compression with the given level. +func NewZlibCompressionLevel(level int) Compression { + return NewZlibCompressionLevelDict(level, nil) +} + +// NewZlibCompressionLevelDict returns a Zlib-based Compression with the given +// level, based on the given dictionary. +func NewZlibCompressionLevelDict(level int, dict []byte) Compression { + return &genericCompression{ + func(w io.Writer) (io.WriteCloser, error) { return zlib.NewWriterLevelDict(w, level, dict) }, + func(r io.Reader) (io.ReadCloser, error) { return zlib.NewReaderDict(r, dict) }, + } +} + +type genericCompression struct { + wf func(w io.Writer) (io.WriteCloser, error) + rf func(r io.Reader) (io.ReadCloser, error) +} + +func (g *genericCompression) Writer(dst io.Writer) (io.WriteCloser, error) { + return g.wf(dst) +} + +func (g *genericCompression) Reader(src io.Reader) (io.ReadCloser, error) { + return g.rf(src) +} diff --git a/vendor/github.com/peterbourgon/diskv/compression_test.go b/vendor/github.com/peterbourgon/diskv/compression_test.go new file mode 100644 index 000000000..2d6142037 --- /dev/null +++ b/vendor/github.com/peterbourgon/diskv/compression_test.go @@ -0,0 +1,72 @@ +package diskv + +import ( + "compress/flate" + "fmt" + "math/rand" + "os" + "testing" + "time" +) + +func init() { + rand.Seed(time.Now().UnixNano()) +} + +func testCompressionWith(t *testing.T, c Compression, name string) { + d := New(Options{ + BasePath: "compression-test", + CacheSizeMax: 0, + Compression: c, + }) + defer d.EraseAll() + + sz := 4096 + val := make([]byte, sz) + for i := 0; i < sz; i++ { + val[i] = byte('a' + rand.Intn(26)) // {a-z}; should compress some + } + + key := "a" + if err := d.Write(key, val); err != nil { + t.Fatalf("write failed: %s", err) + } + + targetFile := fmt.Sprintf("%s%c%s", d.BasePath, os.PathSeparator, key) + fi, err := os.Stat(targetFile) + if err != nil { + t.Fatalf("%s: %s", targetFile, err) + } + + if fi.Size() >= int64(sz) { + t.Fatalf("%s: size=%d, expected smaller", targetFile, fi.Size()) + } + t.Logf("%s compressed %d to %d", name, sz, fi.Size()) + + readVal, err := d.Read(key) + if len(readVal) != sz { + t.Fatalf("read: expected size=%d, got size=%d", sz, len(readVal)) + } + + for i := 0; i < sz; i++ { + if readVal[i] != val[i] { + t.Fatalf("i=%d: expected %v, got %v", i, val[i], readVal[i]) + } + } +} + +func TestGzipDefault(t *testing.T) { + testCompressionWith(t, NewGzipCompression(), "gzip") +} + +func TestGzipBestCompression(t *testing.T) { + testCompressionWith(t, NewGzipCompressionLevel(flate.BestCompression), "gzip-max") +} + +func TestGzipBestSpeed(t *testing.T) { + testCompressionWith(t, NewGzipCompressionLevel(flate.BestSpeed), "gzip-min") +} + +func TestZlib(t *testing.T) { + testCompressionWith(t, NewZlibCompression(), "zlib") +} diff --git a/vendor/github.com/peterbourgon/diskv/diskv.go b/vendor/github.com/peterbourgon/diskv/diskv.go new file mode 100644 index 000000000..524dc0a6e --- /dev/null +++ b/vendor/github.com/peterbourgon/diskv/diskv.go @@ -0,0 +1,624 @@ +// Diskv (disk-vee) is a simple, persistent, key-value store. +// It stores all data flatly on the filesystem. + +package diskv + +import ( + "bytes" + "errors" + "fmt" + "io" + "io/ioutil" + "os" + "path/filepath" + "strings" + "sync" + "syscall" +) + +const ( + defaultBasePath = "diskv" + defaultFilePerm os.FileMode = 0666 + defaultPathPerm os.FileMode = 0777 +) + +var ( + defaultTransform = func(s string) []string { return []string{} } + errCanceled = errors.New("canceled") + errEmptyKey = errors.New("empty key") + errBadKey = errors.New("bad key") + errImportDirectory = errors.New("can't import a directory") +) + +// TransformFunction transforms a key into a slice of strings, with each +// element in the slice representing a directory in the file path where the +// key's entry will eventually be stored. +// +// For example, if TransformFunc transforms "abcdef" to ["ab", "cde", "f"], +// the final location of the data file will be /ab/cde/f/abcdef +type TransformFunction func(s string) []string + +// Options define a set of properties that dictate Diskv behavior. +// All values are optional. +type Options struct { + BasePath string + Transform TransformFunction + CacheSizeMax uint64 // bytes + PathPerm os.FileMode + FilePerm os.FileMode + // If TempDir is set, it will enable filesystem atomic writes by + // writing temporary files to that location before being moved + // to BasePath. + // Note that TempDir MUST be on the same device/partition as + // BasePath. + TempDir string + + Index Index + IndexLess LessFunction + + Compression Compression +} + +// Diskv implements the Diskv interface. You shouldn't construct Diskv +// structures directly; instead, use the New constructor. +type Diskv struct { + Options + mu sync.RWMutex + cache map[string][]byte + cacheSize uint64 +} + +// New returns an initialized Diskv structure, ready to use. +// If the path identified by baseDir already contains data, +// it will be accessible, but not yet cached. +func New(o Options) *Diskv { + if o.BasePath == "" { + o.BasePath = defaultBasePath + } + if o.Transform == nil { + o.Transform = defaultTransform + } + if o.PathPerm == 0 { + o.PathPerm = defaultPathPerm + } + if o.FilePerm == 0 { + o.FilePerm = defaultFilePerm + } + + d := &Diskv{ + Options: o, + cache: map[string][]byte{}, + cacheSize: 0, + } + + if d.Index != nil && d.IndexLess != nil { + d.Index.Initialize(d.IndexLess, d.Keys(nil)) + } + + return d +} + +// Write synchronously writes the key-value pair to disk, making it immediately +// available for reads. Write relies on the filesystem to perform an eventual +// sync to physical media. If you need stronger guarantees, see WriteStream. +func (d *Diskv) Write(key string, val []byte) error { + return d.WriteStream(key, bytes.NewBuffer(val), false) +} + +// WriteStream writes the data represented by the io.Reader to the disk, under +// the provided key. If sync is true, WriteStream performs an explicit sync on +// the file as soon as it's written. +// +// bytes.Buffer provides io.Reader semantics for basic data types. +func (d *Diskv) WriteStream(key string, r io.Reader, sync bool) error { + if len(key) <= 0 { + return errEmptyKey + } + + d.mu.Lock() + defer d.mu.Unlock() + + return d.writeStreamWithLock(key, r, sync) +} + +// createKeyFileWithLock either creates the key file directly, or +// creates a temporary file in TempDir if it is set. +func (d *Diskv) createKeyFileWithLock(key string) (*os.File, error) { + if d.TempDir != "" { + if err := os.MkdirAll(d.TempDir, d.PathPerm); err != nil { + return nil, fmt.Errorf("temp mkdir: %s", err) + } + f, err := ioutil.TempFile(d.TempDir, "") + if err != nil { + return nil, fmt.Errorf("temp file: %s", err) + } + + if err := f.Chmod(d.FilePerm); err != nil { + f.Close() // error deliberately ignored + os.Remove(f.Name()) // error deliberately ignored + return nil, fmt.Errorf("chmod: %s", err) + } + return f, nil + } + + mode := os.O_WRONLY | os.O_CREATE | os.O_TRUNC // overwrite if exists + f, err := os.OpenFile(d.completeFilename(key), mode, d.FilePerm) + if err != nil { + return nil, fmt.Errorf("open file: %s", err) + } + return f, nil +} + +// writeStream does no input validation checking. +func (d *Diskv) writeStreamWithLock(key string, r io.Reader, sync bool) error { + if err := d.ensurePathWithLock(key); err != nil { + return fmt.Errorf("ensure path: %s", err) + } + + f, err := d.createKeyFileWithLock(key) + if err != nil { + return fmt.Errorf("create key file: %s", err) + } + + wc := io.WriteCloser(&nopWriteCloser{f}) + if d.Compression != nil { + wc, err = d.Compression.Writer(f) + if err != nil { + f.Close() // error deliberately ignored + os.Remove(f.Name()) // error deliberately ignored + return fmt.Errorf("compression writer: %s", err) + } + } + + if _, err := io.Copy(wc, r); err != nil { + f.Close() // error deliberately ignored + os.Remove(f.Name()) // error deliberately ignored + return fmt.Errorf("i/o copy: %s", err) + } + + if err := wc.Close(); err != nil { + f.Close() // error deliberately ignored + os.Remove(f.Name()) // error deliberately ignored + return fmt.Errorf("compression close: %s", err) + } + + if sync { + if err := f.Sync(); err != nil { + f.Close() // error deliberately ignored + os.Remove(f.Name()) // error deliberately ignored + return fmt.Errorf("file sync: %s", err) + } + } + + if err := f.Close(); err != nil { + return fmt.Errorf("file close: %s", err) + } + + if f.Name() != d.completeFilename(key) { + if err := os.Rename(f.Name(), d.completeFilename(key)); err != nil { + os.Remove(f.Name()) // error deliberately ignored + return fmt.Errorf("rename: %s", err) + } + } + + if d.Index != nil { + d.Index.Insert(key) + } + + d.bustCacheWithLock(key) // cache only on read + + return nil +} + +// Import imports the source file into diskv under the destination key. If the +// destination key already exists, it's overwritten. If move is true, the +// source file is removed after a successful import. +func (d *Diskv) Import(srcFilename, dstKey string, move bool) (err error) { + if dstKey == "" { + return errEmptyKey + } + + if fi, err := os.Stat(srcFilename); err != nil { + return err + } else if fi.IsDir() { + return errImportDirectory + } + + d.mu.Lock() + defer d.mu.Unlock() + + if err := d.ensurePathWithLock(dstKey); err != nil { + return fmt.Errorf("ensure path: %s", err) + } + + if move { + if err := syscall.Rename(srcFilename, d.completeFilename(dstKey)); err == nil { + d.bustCacheWithLock(dstKey) + return nil + } else if err != syscall.EXDEV { + // If it failed due to being on a different device, fall back to copying + return err + } + } + + f, err := os.Open(srcFilename) + if err != nil { + return err + } + defer f.Close() + err = d.writeStreamWithLock(dstKey, f, false) + if err == nil && move { + err = os.Remove(srcFilename) + } + return err +} + +// Read reads the key and returns the value. +// If the key is available in the cache, Read won't touch the disk. +// If the key is not in the cache, Read will have the side-effect of +// lazily caching the value. +func (d *Diskv) Read(key string) ([]byte, error) { + rc, err := d.ReadStream(key, false) + if err != nil { + return []byte{}, err + } + defer rc.Close() + return ioutil.ReadAll(rc) +} + +// ReadStream reads the key and returns the value (data) as an io.ReadCloser. +// If the value is cached from a previous read, and direct is false, +// ReadStream will use the cached value. Otherwise, it will return a handle to +// the file on disk, and cache the data on read. +// +// If direct is true, ReadStream will lazily delete any cached value for the +// key, and return a direct handle to the file on disk. +// +// If compression is enabled, ReadStream taps into the io.Reader stream prior +// to decompression, and caches the compressed data. +func (d *Diskv) ReadStream(key string, direct bool) (io.ReadCloser, error) { + d.mu.RLock() + defer d.mu.RUnlock() + + if val, ok := d.cache[key]; ok { + if !direct { + buf := bytes.NewBuffer(val) + if d.Compression != nil { + return d.Compression.Reader(buf) + } + return ioutil.NopCloser(buf), nil + } + + go func() { + d.mu.Lock() + defer d.mu.Unlock() + d.uncacheWithLock(key, uint64(len(val))) + }() + } + + return d.readWithRLock(key) +} + +// read ignores the cache, and returns an io.ReadCloser representing the +// decompressed data for the given key, streamed from the disk. Clients should +// acquire a read lock on the Diskv and check the cache themselves before +// calling read. +func (d *Diskv) readWithRLock(key string) (io.ReadCloser, error) { + filename := d.completeFilename(key) + + fi, err := os.Stat(filename) + if err != nil { + return nil, err + } + if fi.IsDir() { + return nil, os.ErrNotExist + } + + f, err := os.Open(filename) + if err != nil { + return nil, err + } + + var r io.Reader + if d.CacheSizeMax > 0 { + r = newSiphon(f, d, key) + } else { + r = &closingReader{f} + } + + var rc = io.ReadCloser(ioutil.NopCloser(r)) + if d.Compression != nil { + rc, err = d.Compression.Reader(r) + if err != nil { + return nil, err + } + } + + return rc, nil +} + +// closingReader provides a Reader that automatically closes the +// embedded ReadCloser when it reaches EOF +type closingReader struct { + rc io.ReadCloser +} + +func (cr closingReader) Read(p []byte) (int, error) { + n, err := cr.rc.Read(p) + if err == io.EOF { + if closeErr := cr.rc.Close(); closeErr != nil { + return n, closeErr // close must succeed for Read to succeed + } + } + return n, err +} + +// siphon is like a TeeReader: it copies all data read through it to an +// internal buffer, and moves that buffer to the cache at EOF. +type siphon struct { + f *os.File + d *Diskv + key string + buf *bytes.Buffer +} + +// newSiphon constructs a siphoning reader that represents the passed file. +// When a successful series of reads ends in an EOF, the siphon will write +// the buffered data to Diskv's cache under the given key. +func newSiphon(f *os.File, d *Diskv, key string) io.Reader { + return &siphon{ + f: f, + d: d, + key: key, + buf: &bytes.Buffer{}, + } +} + +// Read implements the io.Reader interface for siphon. +func (s *siphon) Read(p []byte) (int, error) { + n, err := s.f.Read(p) + + if err == nil { + return s.buf.Write(p[0:n]) // Write must succeed for Read to succeed + } + + if err == io.EOF { + s.d.cacheWithoutLock(s.key, s.buf.Bytes()) // cache may fail + if closeErr := s.f.Close(); closeErr != nil { + return n, closeErr // close must succeed for Read to succeed + } + return n, err + } + + return n, err +} + +// Erase synchronously erases the given key from the disk and the cache. +func (d *Diskv) Erase(key string) error { + d.mu.Lock() + defer d.mu.Unlock() + + d.bustCacheWithLock(key) + + // erase from index + if d.Index != nil { + d.Index.Delete(key) + } + + // erase from disk + filename := d.completeFilename(key) + if s, err := os.Stat(filename); err == nil { + if s.IsDir() { + return errBadKey + } + if err = os.Remove(filename); err != nil { + return err + } + } else { + // Return err as-is so caller can do os.IsNotExist(err). + return err + } + + // clean up and return + d.pruneDirsWithLock(key) + return nil +} + +// EraseAll will delete all of the data from the store, both in the cache and on +// the disk. Note that EraseAll doesn't distinguish diskv-related data from non- +// diskv-related data. Care should be taken to always specify a diskv base +// directory that is exclusively for diskv data. +func (d *Diskv) EraseAll() error { + d.mu.Lock() + defer d.mu.Unlock() + d.cache = make(map[string][]byte) + d.cacheSize = 0 + if d.TempDir != "" { + os.RemoveAll(d.TempDir) // errors ignored + } + return os.RemoveAll(d.BasePath) +} + +// Has returns true if the given key exists. +func (d *Diskv) Has(key string) bool { + d.mu.Lock() + defer d.mu.Unlock() + + if _, ok := d.cache[key]; ok { + return true + } + + filename := d.completeFilename(key) + s, err := os.Stat(filename) + if err != nil { + return false + } + if s.IsDir() { + return false + } + + return true +} + +// Keys returns a channel that will yield every key accessible by the store, +// in undefined order. If a cancel channel is provided, closing it will +// terminate and close the keys channel. +func (d *Diskv) Keys(cancel <-chan struct{}) <-chan string { + return d.KeysPrefix("", cancel) +} + +// KeysPrefix returns a channel that will yield every key accessible by the +// store with the given prefix, in undefined order. If a cancel channel is +// provided, closing it will terminate and close the keys channel. If the +// provided prefix is the empty string, all keys will be yielded. +func (d *Diskv) KeysPrefix(prefix string, cancel <-chan struct{}) <-chan string { + var prepath string + if prefix == "" { + prepath = d.BasePath + } else { + prepath = d.pathFor(prefix) + } + c := make(chan string) + go func() { + filepath.Walk(prepath, walker(c, prefix, cancel)) + close(c) + }() + return c +} + +// walker returns a function which satisfies the filepath.WalkFunc interface. +// It sends every non-directory file entry down the channel c. +func walker(c chan<- string, prefix string, cancel <-chan struct{}) filepath.WalkFunc { + return func(path string, info os.FileInfo, err error) error { + if err != nil { + return err + } + + if info.IsDir() || !strings.HasPrefix(info.Name(), prefix) { + return nil // "pass" + } + + select { + case c <- info.Name(): + case <-cancel: + return errCanceled + } + + return nil + } +} + +// pathFor returns the absolute path for location on the filesystem where the +// data for the given key will be stored. +func (d *Diskv) pathFor(key string) string { + return filepath.Join(d.BasePath, filepath.Join(d.Transform(key)...)) +} + +// ensurePathWithLock is a helper function that generates all necessary +// directories on the filesystem for the given key. +func (d *Diskv) ensurePathWithLock(key string) error { + return os.MkdirAll(d.pathFor(key), d.PathPerm) +} + +// completeFilename returns the absolute path to the file for the given key. +func (d *Diskv) completeFilename(key string) string { + return filepath.Join(d.pathFor(key), key) +} + +// cacheWithLock attempts to cache the given key-value pair in the store's +// cache. It can fail if the value is larger than the cache's maximum size. +func (d *Diskv) cacheWithLock(key string, val []byte) error { + valueSize := uint64(len(val)) + if err := d.ensureCacheSpaceWithLock(valueSize); err != nil { + return fmt.Errorf("%s; not caching", err) + } + + // be very strict about memory guarantees + if (d.cacheSize + valueSize) > d.CacheSizeMax { + panic(fmt.Sprintf("failed to make room for value (%d/%d)", valueSize, d.CacheSizeMax)) + } + + d.cache[key] = val + d.cacheSize += valueSize + return nil +} + +// cacheWithoutLock acquires the store's (write) mutex and calls cacheWithLock. +func (d *Diskv) cacheWithoutLock(key string, val []byte) error { + d.mu.Lock() + defer d.mu.Unlock() + return d.cacheWithLock(key, val) +} + +func (d *Diskv) bustCacheWithLock(key string) { + if val, ok := d.cache[key]; ok { + d.uncacheWithLock(key, uint64(len(val))) + } +} + +func (d *Diskv) uncacheWithLock(key string, sz uint64) { + d.cacheSize -= sz + delete(d.cache, key) +} + +// pruneDirsWithLock deletes empty directories in the path walk leading to the +// key k. Typically this function is called after an Erase is made. +func (d *Diskv) pruneDirsWithLock(key string) error { + pathlist := d.Transform(key) + for i := range pathlist { + dir := filepath.Join(d.BasePath, filepath.Join(pathlist[:len(pathlist)-i]...)) + + // thanks to Steven Blenkinsop for this snippet + switch fi, err := os.Stat(dir); true { + case err != nil: + return err + case !fi.IsDir(): + panic(fmt.Sprintf("corrupt dirstate at %s", dir)) + } + + nlinks, err := filepath.Glob(filepath.Join(dir, "*")) + if err != nil { + return err + } else if len(nlinks) > 0 { + return nil // has subdirs -- do not prune + } + if err = os.Remove(dir); err != nil { + return err + } + } + + return nil +} + +// ensureCacheSpaceWithLock deletes entries from the cache in arbitrary order +// until the cache has at least valueSize bytes available. +func (d *Diskv) ensureCacheSpaceWithLock(valueSize uint64) error { + if valueSize > d.CacheSizeMax { + return fmt.Errorf("value size (%d bytes) too large for cache (%d bytes)", valueSize, d.CacheSizeMax) + } + + safe := func() bool { return (d.cacheSize + valueSize) <= d.CacheSizeMax } + + for key, val := range d.cache { + if safe() { + break + } + + d.uncacheWithLock(key, uint64(len(val))) + } + + if !safe() { + panic(fmt.Sprintf("%d bytes still won't fit in the cache! (max %d bytes)", valueSize, d.CacheSizeMax)) + } + + return nil +} + +// nopWriteCloser wraps an io.Writer and provides a no-op Close method to +// satisfy the io.WriteCloser interface. +type nopWriteCloser struct { + io.Writer +} + +func (wc *nopWriteCloser) Write(p []byte) (int, error) { return wc.Writer.Write(p) } +func (wc *nopWriteCloser) Close() error { return nil } diff --git a/vendor/github.com/peterbourgon/diskv/examples/content-addressable-store/cas.go b/vendor/github.com/peterbourgon/diskv/examples/content-addressable-store/cas.go new file mode 100644 index 000000000..a3abaaf77 --- /dev/null +++ b/vendor/github.com/peterbourgon/diskv/examples/content-addressable-store/cas.go @@ -0,0 +1,63 @@ +package main + +import ( + "crypto/md5" + "fmt" + "io" + + "github.com/peterbourgon/diskv" +) + +const transformBlockSize = 2 // grouping of chars per directory depth + +func blockTransform(s string) []string { + var ( + sliceSize = len(s) / transformBlockSize + pathSlice = make([]string, sliceSize) + ) + for i := 0; i < sliceSize; i++ { + from, to := i*transformBlockSize, (i*transformBlockSize)+transformBlockSize + pathSlice[i] = s[from:to] + } + return pathSlice +} + +func main() { + d := diskv.New(diskv.Options{ + BasePath: "data", + Transform: blockTransform, + CacheSizeMax: 1024 * 1024, // 1MB + }) + + for _, valueStr := range []string{ + "I am the very model of a modern Major-General", + "I've information vegetable, animal, and mineral", + "I know the kings of England, and I quote the fights historical", + "From Marathon to Waterloo, in order categorical", + "I'm very well acquainted, too, with matters mathematical", + "I understand equations, both the simple and quadratical", + "About binomial theorem I'm teeming with a lot o' news", + "With many cheerful facts about the square of the hypotenuse", + } { + d.Write(md5sum(valueStr), []byte(valueStr)) + } + + var keyCount int + for key := range d.Keys(nil) { + val, err := d.Read(key) + if err != nil { + panic(fmt.Sprintf("key %s had no value", key)) + } + fmt.Printf("%s: %s\n", key, val) + keyCount++ + } + fmt.Printf("%d total keys\n", keyCount) + + // d.EraseAll() // leave it commented out to see how data is kept on disk +} + +func md5sum(s string) string { + h := md5.New() + io.WriteString(h, s) + return fmt.Sprintf("%x", h.Sum(nil)) +} diff --git a/vendor/github.com/peterbourgon/diskv/examples/super-simple-store/super-simple-store.go b/vendor/github.com/peterbourgon/diskv/examples/super-simple-store/super-simple-store.go new file mode 100644 index 000000000..b5da11d64 --- /dev/null +++ b/vendor/github.com/peterbourgon/diskv/examples/super-simple-store/super-simple-store.go @@ -0,0 +1,30 @@ +package main + +import ( + "fmt" + + "github.com/peterbourgon/diskv" +) + +func main() { + d := diskv.New(diskv.Options{ + BasePath: "my-diskv-data-directory", + Transform: func(s string) []string { return []string{} }, + CacheSizeMax: 1024 * 1024, // 1MB + }) + + key := "alpha" + if err := d.Write(key, []byte{'1', '2', '3'}); err != nil { + panic(err) + } + + value, err := d.Read(key) + if err != nil { + panic(err) + } + fmt.Printf("%v\n", value) + + if err := d.Erase(key); err != nil { + panic(err) + } +} diff --git a/vendor/github.com/peterbourgon/diskv/import_test.go b/vendor/github.com/peterbourgon/diskv/import_test.go new file mode 100644 index 000000000..a08ac7c70 --- /dev/null +++ b/vendor/github.com/peterbourgon/diskv/import_test.go @@ -0,0 +1,76 @@ +package diskv_test + +import ( + "bytes" + "io/ioutil" + "os" + + "github.com/peterbourgon/diskv" + + "testing" +) + +func TestImportMove(t *testing.T) { + b := []byte(`0123456789`) + f, err := ioutil.TempFile("", "temp-test") + if err != nil { + t.Fatal(err) + } + if _, err := f.Write(b); err != nil { + t.Fatal(err) + } + f.Close() + + d := diskv.New(diskv.Options{ + BasePath: "test-import-move", + }) + defer d.EraseAll() + + key := "key" + + if err := d.Write(key, []byte(`TBD`)); err != nil { + t.Fatal(err) + } + + if err := d.Import(f.Name(), key, true); err != nil { + t.Fatal(err) + } + + if _, err := os.Stat(f.Name()); err == nil || !os.IsNotExist(err) { + t.Errorf("expected temp file to be gone, but err = %v", err) + } + + if !d.Has(key) { + t.Errorf("%q not present", key) + } + + if buf, err := d.Read(key); err != nil || bytes.Compare(b, buf) != 0 { + t.Errorf("want %q, have %q (err = %v)", string(b), string(buf), err) + } +} + +func TestImportCopy(t *testing.T) { + b := []byte(`¡åéîòü!`) + + f, err := ioutil.TempFile("", "temp-test") + if err != nil { + t.Fatal(err) + } + if _, err := f.Write(b); err != nil { + t.Fatal(err) + } + f.Close() + + d := diskv.New(diskv.Options{ + BasePath: "test-import-copy", + }) + defer d.EraseAll() + + if err := d.Import(f.Name(), "key", false); err != nil { + t.Fatal(err) + } + + if _, err := os.Stat(f.Name()); err != nil { + t.Errorf("expected temp file to remain, but got err = %v", err) + } +} diff --git a/vendor/github.com/peterbourgon/diskv/index.go b/vendor/github.com/peterbourgon/diskv/index.go new file mode 100644 index 000000000..96fee5152 --- /dev/null +++ b/vendor/github.com/peterbourgon/diskv/index.go @@ -0,0 +1,115 @@ +package diskv + +import ( + "sync" + + "github.com/google/btree" +) + +// Index is a generic interface for things that can +// provide an ordered list of keys. +type Index interface { + Initialize(less LessFunction, keys <-chan string) + Insert(key string) + Delete(key string) + Keys(from string, n int) []string +} + +// LessFunction is used to initialize an Index of keys in a specific order. +type LessFunction func(string, string) bool + +// btreeString is a custom data type that satisfies the BTree Less interface, +// making the strings it wraps sortable by the BTree package. +type btreeString struct { + s string + l LessFunction +} + +// Less satisfies the BTree.Less interface using the btreeString's LessFunction. +func (s btreeString) Less(i btree.Item) bool { + return s.l(s.s, i.(btreeString).s) +} + +// BTreeIndex is an implementation of the Index interface using google/btree. +type BTreeIndex struct { + sync.RWMutex + LessFunction + *btree.BTree +} + +// Initialize populates the BTree tree with data from the keys channel, +// according to the passed less function. It's destructive to the BTreeIndex. +func (i *BTreeIndex) Initialize(less LessFunction, keys <-chan string) { + i.Lock() + defer i.Unlock() + i.LessFunction = less + i.BTree = rebuild(less, keys) +} + +// Insert inserts the given key (only) into the BTree tree. +func (i *BTreeIndex) Insert(key string) { + i.Lock() + defer i.Unlock() + if i.BTree == nil || i.LessFunction == nil { + panic("uninitialized index") + } + i.BTree.ReplaceOrInsert(btreeString{s: key, l: i.LessFunction}) +} + +// Delete removes the given key (only) from the BTree tree. +func (i *BTreeIndex) Delete(key string) { + i.Lock() + defer i.Unlock() + if i.BTree == nil || i.LessFunction == nil { + panic("uninitialized index") + } + i.BTree.Delete(btreeString{s: key, l: i.LessFunction}) +} + +// Keys yields a maximum of n keys in order. If the passed 'from' key is empty, +// Keys will return the first n keys. If the passed 'from' key is non-empty, the +// first key in the returned slice will be the key that immediately follows the +// passed key, in key order. +func (i *BTreeIndex) Keys(from string, n int) []string { + i.RLock() + defer i.RUnlock() + + if i.BTree == nil || i.LessFunction == nil { + panic("uninitialized index") + } + + if i.BTree.Len() <= 0 { + return []string{} + } + + btreeFrom := btreeString{s: from, l: i.LessFunction} + skipFirst := true + if len(from) <= 0 || !i.BTree.Has(btreeFrom) { + // no such key, so fabricate an always-smallest item + btreeFrom = btreeString{s: "", l: func(string, string) bool { return true }} + skipFirst = false + } + + keys := []string{} + iterator := func(i btree.Item) bool { + keys = append(keys, i.(btreeString).s) + return len(keys) < n + } + i.BTree.AscendGreaterOrEqual(btreeFrom, iterator) + + if skipFirst && len(keys) > 0 { + keys = keys[1:] + } + + return keys +} + +// rebuildIndex does the work of regenerating the index +// with the given keys. +func rebuild(less LessFunction, keys <-chan string) *btree.BTree { + tree := btree.New(2) + for key := range keys { + tree.ReplaceOrInsert(btreeString{s: key, l: less}) + } + return tree +} diff --git a/vendor/github.com/peterbourgon/diskv/index_test.go b/vendor/github.com/peterbourgon/diskv/index_test.go new file mode 100644 index 000000000..72f52a9ff --- /dev/null +++ b/vendor/github.com/peterbourgon/diskv/index_test.go @@ -0,0 +1,148 @@ +package diskv + +import ( + "bytes" + "reflect" + "testing" + "time" +) + +func strLess(a, b string) bool { return a < b } + +func cmpStrings(a, b []string) bool { + if len(a) != len(b) { + return false + } + for i := 0; i < len(a); i++ { + if a[i] != b[i] { + return false + } + } + return true +} + +func (d *Diskv) isIndexed(key string) bool { + if d.Index == nil { + return false + } + + for _, got := range d.Index.Keys("", 1000) { + if got == key { + return true + } + } + return false +} + +func TestIndexOrder(t *testing.T) { + d := New(Options{ + BasePath: "index-test", + Transform: func(string) []string { return []string{} }, + CacheSizeMax: 1024, + Index: &BTreeIndex{}, + IndexLess: strLess, + }) + defer d.EraseAll() + + v := []byte{'1', '2', '3'} + d.Write("a", v) + if !d.isIndexed("a") { + t.Fatalf("'a' not indexed after write") + } + d.Write("1", v) + d.Write("m", v) + d.Write("-", v) + d.Write("A", v) + + expectedKeys := []string{"-", "1", "A", "a", "m"} + keys := []string{} + for _, key := range d.Index.Keys("", 100) { + keys = append(keys, key) + } + + if !cmpStrings(keys, expectedKeys) { + t.Fatalf("got %s, expected %s", keys, expectedKeys) + } +} + +func TestIndexLoad(t *testing.T) { + d1 := New(Options{ + BasePath: "index-test", + Transform: func(string) []string { return []string{} }, + CacheSizeMax: 1024, + }) + defer d1.EraseAll() + + val := []byte{'1', '2', '3'} + keys := []string{"a", "b", "c", "d", "e", "f", "g"} + for _, key := range keys { + d1.Write(key, val) + } + + d2 := New(Options{ + BasePath: "index-test", + Transform: func(string) []string { return []string{} }, + CacheSizeMax: 1024, + Index: &BTreeIndex{}, + IndexLess: strLess, + }) + defer d2.EraseAll() + + // check d2 has properly loaded existing d1 data + for _, key := range keys { + if !d2.isIndexed(key) { + t.Fatalf("key '%s' not indexed on secondary", key) + } + } + + // cache one + if readValue, err := d2.Read(keys[0]); err != nil { + t.Fatalf("%s", err) + } else if bytes.Compare(val, readValue) != 0 { + t.Fatalf("%s: got %s, expected %s", keys[0], readValue, val) + } + + // make sure it got cached + for i := 0; i < 10 && !d2.isCached(keys[0]); i++ { + time.Sleep(10 * time.Millisecond) + } + if !d2.isCached(keys[0]) { + t.Fatalf("key '%s' not cached", keys[0]) + } + + // kill the disk + d1.EraseAll() + + // cached value should still be there in the second + if readValue, err := d2.Read(keys[0]); err != nil { + t.Fatalf("%s", err) + } else if bytes.Compare(val, readValue) != 0 { + t.Fatalf("%s: got %s, expected %s", keys[0], readValue, val) + } + + // but not in the original + if _, err := d1.Read(keys[0]); err == nil { + t.Fatalf("expected error reading from flushed store") + } +} + +func TestIndexKeysEmptyFrom(t *testing.T) { + d := New(Options{ + BasePath: "index-test", + Transform: func(string) []string { return []string{} }, + CacheSizeMax: 1024, + Index: &BTreeIndex{}, + IndexLess: strLess, + }) + defer d.EraseAll() + + for _, k := range []string{"a", "c", "z", "b", "x", "b", "y"} { + d.Write(k, []byte("1")) + } + + want := []string{"a", "b", "c", "x", "y", "z"} + have := d.Index.Keys("", 99) + if !reflect.DeepEqual(want, have) { + t.Errorf("want %v, have %v", want, have) + } +} diff --git a/vendor/github.com/peterbourgon/diskv/issues_test.go b/vendor/github.com/peterbourgon/diskv/issues_test.go new file mode 100644 index 000000000..0b0b10908 --- /dev/null +++ b/vendor/github.com/peterbourgon/diskv/issues_test.go @@ -0,0 +1,121 @@ +package diskv + +import ( + "bytes" + "io/ioutil" + "sync" + "testing" + "time" +) + +// ReadStream from cache shouldn't panic on a nil dereference from a nonexistent +// Compression :) +func TestIssue2A(t *testing.T) { + d := New(Options{ + BasePath: "test-issue-2a", + Transform: func(string) []string { return []string{} }, + CacheSizeMax: 1024, + }) + defer d.EraseAll() + + input := "abcdefghijklmnopqrstuvwxy" + key, writeBuf, sync := "a", bytes.NewBufferString(input), false + if err := d.WriteStream(key, writeBuf, sync); err != nil { + t.Fatal(err) + } + + for i := 0; i < 2; i++ { + began := time.Now() + rc, err := d.ReadStream(key, false) + if err != nil { + t.Fatal(err) + } + buf, err := ioutil.ReadAll(rc) + if err != nil { + t.Fatal(err) + } + if !cmpBytes(buf, []byte(input)) { + t.Fatalf("read #%d: '%s' != '%s'", i+1, string(buf), input) + } + rc.Close() + t.Logf("read #%d in %s", i+1, time.Since(began)) + } +} + +// ReadStream on a key that resolves to a directory should return an error. +func TestIssue2B(t *testing.T) { + blockTransform := func(s string) []string { + transformBlockSize := 3 + sliceSize := len(s) / transformBlockSize + pathSlice := make([]string, sliceSize) + for i := 0; i < sliceSize; i++ { + from, to := i*transformBlockSize, (i*transformBlockSize)+transformBlockSize + pathSlice[i] = s[from:to] + } + return pathSlice + } + + d := New(Options{ + BasePath: "test-issue-2b", + Transform: blockTransform, + CacheSizeMax: 0, + }) + defer d.EraseAll() + + v := []byte{'1', '2', '3'} + if err := d.Write("abcabc", v); err != nil { + t.Fatal(err) + } + + _, err := d.ReadStream("abc", false) + if err == nil { + t.Fatal("ReadStream('abc') should return error") + } + t.Logf("ReadStream('abc') returned error: %v", err) +} + +// Ensure ReadStream with direct=true isn't racy. +func TestIssue17(t *testing.T) { + var ( + basePath = "test-data" + ) + + dWrite := New(Options{ + BasePath: basePath, + CacheSizeMax: 0, + }) + defer dWrite.EraseAll() + + dRead := New(Options{ + BasePath: basePath, + CacheSizeMax: 50, + }) + + cases := map[string]string{ + "a": `1234567890`, + "b": `2345678901`, + "c": `3456789012`, + "d": `4567890123`, + "e": `5678901234`, + } + + for k, v := range cases { + if err := dWrite.Write(k, []byte(v)); err != nil { + t.Fatalf("during write: %s", err) + } + dRead.Read(k) // ensure it's added to cache + } + + var wg sync.WaitGroup + start := make(chan struct{}) + for k, v := range cases { + wg.Add(1) + go func(k, v string) { + <-start + dRead.ReadStream(k, true) + wg.Done() + }(k, v) + } + close(start) + wg.Wait() +} diff --git a/vendor/github.com/peterbourgon/diskv/keys_test.go b/vendor/github.com/peterbourgon/diskv/keys_test.go new file mode 100644 index 000000000..222e1c444 --- /dev/null +++ b/vendor/github.com/peterbourgon/diskv/keys_test.go @@ -0,0 +1,231 @@ +package diskv_test + +import ( + "reflect" + "runtime" + "strings" + "testing" + + "github.com/peterbourgon/diskv" +) + +var ( + keysTestData = map[string]string{ + "ab01cd01": "When we started building CoreOS", + "ab01cd02": "we looked at all the various components available to us", + "ab01cd03": "re-using the best tools", + "ef01gh04": "and building the ones that did not exist", + "ef02gh05": "We believe strongly in the Unix philosophy", + "xxxxxxxx": "tools should be independently useful", + } + + prefixes = []string{ + "", // all + "a", + "ab", + "ab0", + "ab01", + "ab01cd0", + "ab01cd01", + "ab01cd01x", // none + "b", // none + "b0", // none + "0", // none + "01", // none + "e", + "ef", + "efx", // none + "ef01gh0", + "ef01gh04", + "ef01gh05", + "ef01gh06", // none + } +) + +func TestKeysFlat(t *testing.T) { + transform := func(s string) []string { + if s == "" { + t.Fatalf(`transform should not be called with ""`) + } + return []string{} + } + d := diskv.New(diskv.Options{ + BasePath: "test-data", + Transform: transform, + }) + defer d.EraseAll() + + for k, v := range keysTestData { + d.Write(k, []byte(v)) + } + + checkKeys(t, d.Keys(nil), keysTestData) +} + +func TestKeysNested(t *testing.T) { + d := diskv.New(diskv.Options{ + BasePath: "test-data", + Transform: blockTransform(2), + }) + defer d.EraseAll() + + for k, v := range keysTestData { + d.Write(k, []byte(v)) + } + + checkKeys(t, d.Keys(nil), keysTestData) +} + +func TestKeysPrefixFlat(t *testing.T) { + d := diskv.New(diskv.Options{ + BasePath: "test-data", + }) + defer d.EraseAll() + + for k, v := range keysTestData { + d.Write(k, []byte(v)) + } + + for _, prefix := range prefixes { + checkKeys(t, d.KeysPrefix(prefix, nil), filterPrefix(keysTestData, prefix)) + } +} + +func TestKeysPrefixNested(t *testing.T) { + d := diskv.New(diskv.Options{ + BasePath: "test-data", + Transform: blockTransform(2), + }) + defer d.EraseAll() + + for k, v := range keysTestData { + d.Write(k, []byte(v)) + } + + for _, prefix := range prefixes { + checkKeys(t, d.KeysPrefix(prefix, nil), filterPrefix(keysTestData, prefix)) + } +} + +func TestKeysCancel(t *testing.T) { + d := diskv.New(diskv.Options{ + BasePath: "test-data", + }) + defer d.EraseAll() + + for k, v := range keysTestData { + d.Write(k, []byte(v)) + } + + var ( + cancel = make(chan struct{}) + received = 0 + cancelAfter = len(keysTestData) / 2 + ) + + for key := range d.Keys(cancel) { + received++ + + if received >= cancelAfter { + close(cancel) + runtime.Gosched() // allow walker to detect cancel + } + + t.Logf("received %d: %q", received, key) + } + + if want, have := cancelAfter, received; want != have { + t.Errorf("want %d, have %d") + } +} + +func checkKeys(t *testing.T, c <-chan string, want map[string]string) { + for k := range c { + if _, ok := want[k]; !ok { + t.Errorf("%q yielded but not expected", k) + continue + } + + delete(want, k) + t.Logf("%q yielded OK", k) + } + + if len(want) != 0 { + t.Errorf("%d expected key(s) not yielded: %s", len(want), strings.Join(flattenKeys(want), ", ")) + } +} + +func blockTransform(blockSize int) func(string) []string { + return func(s string) []string { + var ( + sliceSize = len(s) / blockSize + pathSlice = make([]string, sliceSize) + ) + for i := 0; i < sliceSize; i++ { + from, to := i*blockSize, (i*blockSize)+blockSize + pathSlice[i] = s[from:to] + } + return pathSlice + } +} + +func filterPrefix(in map[string]string, prefix string) map[string]string { + out := map[string]string{} + for k, v := range in { + if strings.HasPrefix(k, prefix) { + out[k] = v + } + } + return out +} + +func TestFilterPrefix(t *testing.T) { + input := map[string]string{ + "all": "", + "and": "", + "at": "", + "available": "", + "best": "", + "building": "", + "components": "", + "coreos": "", + "did": "", + "exist": "", + "looked": "", + "not": "", + "ones": "", + "re-using": "", + "started": "", + "that": "", + "the": "", + "to": "", + "tools": "", + "us": "", + "various": "", + "we": "", + "when": "", + } + + for prefix, want := range map[string]map[string]string{ + "a": map[string]string{"all": "", "and": "", "at": "", "available": ""}, + "al": map[string]string{"all": ""}, + "all": map[string]string{"all": ""}, + "alll": map[string]string{}, + "c": map[string]string{"components": "", "coreos": ""}, + "co": map[string]string{"components": "", "coreos": ""}, + "com": map[string]string{"components": ""}, + } { + have := filterPrefix(input, prefix) + if !reflect.DeepEqual(want, have) { + t.Errorf("%q: want %v, have %v", prefix, flattenKeys(want), flattenKeys(have)) + } + } +} + +func flattenKeys(m map[string]string) []string { + a := make([]string, 0, len(m)) + for k := range m { + a = append(a, k) + } + return a +} diff --git a/vendor/github.com/peterbourgon/diskv/speed_test.go b/vendor/github.com/peterbourgon/diskv/speed_test.go new file mode 100644 index 000000000..67d05ff27 --- /dev/null +++ b/vendor/github.com/peterbourgon/diskv/speed_test.go @@ -0,0 +1,153 @@ +package diskv + +import ( + "fmt" + "math/rand" + "testing" +) + +func shuffle(keys []string) { + ints := rand.Perm(len(keys)) + for i := range keys { + keys[i], keys[ints[i]] = keys[ints[i]], keys[i] + } +} + +func genValue(size int) []byte { + v := make([]byte, size) + for i := 0; i < size; i++ { + v[i] = uint8((rand.Int() % 26) + 97) // a-z + } + return v +} + +const ( + keyCount = 1000 +) + +func genKeys() []string { + keys := make([]string, keyCount) + for i := 0; i < keyCount; i++ { + keys[i] = fmt.Sprintf("%d", i) + } + return keys +} + +func (d *Diskv) load(keys []string, val []byte) { + for _, key := range keys { + d.Write(key, val) + } +} + +func benchRead(b *testing.B, size, cachesz int) { + b.StopTimer() + d := New(Options{ + BasePath: "speed-test", + Transform: func(string) []string { return []string{} }, + CacheSizeMax: uint64(cachesz), + }) + defer d.EraseAll() + + keys := genKeys() + value := genValue(size) + d.load(keys, value) + shuffle(keys) + b.SetBytes(int64(size)) + + b.StartTimer() + for i := 0; i < b.N; i++ { + _, _ = d.Read(keys[i%len(keys)]) + } + b.StopTimer() +} + +func benchWrite(b *testing.B, size int, withIndex bool) { + b.StopTimer() + + options := Options{ + BasePath: "speed-test", + Transform: func(string) []string { return []string{} }, + CacheSizeMax: 0, + } + if withIndex { + options.Index = &BTreeIndex{} + options.IndexLess = strLess + } + + d := New(options) + defer d.EraseAll() + keys := genKeys() + value := genValue(size) + shuffle(keys) + b.SetBytes(int64(size)) + + b.StartTimer() + for i := 0; i < b.N; i++ { + d.Write(keys[i%len(keys)], value) + } + b.StopTimer() +} + +func BenchmarkWrite__32B_NoIndex(b *testing.B) { + benchWrite(b, 32, false) +} + +func BenchmarkWrite__1KB_NoIndex(b *testing.B) { + benchWrite(b, 1024, false) +} + +func BenchmarkWrite__4KB_NoIndex(b *testing.B) { + benchWrite(b, 4096, false) +} + +func BenchmarkWrite_10KB_NoIndex(b *testing.B) { + benchWrite(b, 10240, false) +} + +func BenchmarkWrite__32B_WithIndex(b *testing.B) { + benchWrite(b, 32, true) +} + +func BenchmarkWrite__1KB_WithIndex(b *testing.B) { + benchWrite(b, 1024, true) +} + +func BenchmarkWrite__4KB_WithIndex(b *testing.B) { + benchWrite(b, 4096, true) +} + +func BenchmarkWrite_10KB_WithIndex(b *testing.B) { + benchWrite(b, 10240, true) +} + +func BenchmarkRead__32B_NoCache(b *testing.B) { + benchRead(b, 32, 0) +} + +func BenchmarkRead__1KB_NoCache(b *testing.B) { + benchRead(b, 1024, 0) +} + +func BenchmarkRead__4KB_NoCache(b *testing.B) { + benchRead(b, 4096, 0) +} + +func BenchmarkRead_10KB_NoCache(b *testing.B) { + benchRead(b, 10240, 0) +} + +func BenchmarkRead__32B_WithCache(b *testing.B) { + benchRead(b, 32, keyCount*32*2) +} + +func BenchmarkRead__1KB_WithCache(b *testing.B) { + benchRead(b, 1024, keyCount*1024*2) +} + +func BenchmarkRead__4KB_WithCache(b *testing.B) { + benchRead(b, 4096, keyCount*4096*2) +} + +func BenchmarkRead_10KB_WithCache(b *testing.B) { + benchRead(b, 10240, keyCount*4096*2) +} diff --git a/vendor/github.com/peterbourgon/diskv/stream_test.go b/vendor/github.com/peterbourgon/diskv/stream_test.go new file mode 100644 index 000000000..7991dbff2 --- /dev/null +++ b/vendor/github.com/peterbourgon/diskv/stream_test.go @@ -0,0 +1,117 @@ +package diskv + +import ( + "bytes" + "io/ioutil" + "testing" +) + +func TestBasicStreamCaching(t *testing.T) { + d := New(Options{ + BasePath: "test-data", + CacheSizeMax: 1024, + }) + defer d.EraseAll() + + input := "a1b2c3" + key, writeBuf, sync := "a", bytes.NewBufferString(input), true + if err := d.WriteStream(key, writeBuf, sync); err != nil { + t.Fatal(err) + } + + if d.isCached(key) { + t.Fatalf("'%s' cached, but shouldn't be (yet)", key) + } + + rc, err := d.ReadStream(key, false) + if err != nil { + t.Fatal(err) + } + + readBuf, err := ioutil.ReadAll(rc) + if err != nil { + t.Fatal(err) + } + + if !cmpBytes(readBuf, []byte(input)) { + t.Fatalf("'%s' != '%s'", string(readBuf), input) + } + + if !d.isCached(key) { + t.Fatalf("'%s' isn't cached, but should be", key) + } +} + +func TestReadStreamDirect(t *testing.T) { + var ( + basePath = "test-data" + ) + dWrite := New(Options{ + BasePath: basePath, + CacheSizeMax: 0, + }) + defer dWrite.EraseAll() + dRead := New(Options{ + BasePath: basePath, + CacheSizeMax: 1024, + }) + + // Write + key, val1, val2 := "a", []byte(`1234567890`), []byte(`aaaaaaaaaa`) + if err := dWrite.Write(key, val1); err != nil { + t.Fatalf("during first write: %s", err) + } + + // First, caching read. + val, err := dRead.Read(key) + if err != nil { + t.Fatalf("during initial read: %s", err) + } + t.Logf("read 1: %s => %s", key, string(val)) + if !cmpBytes(val1, val) { + t.Errorf("expected %q, got %q", string(val1), string(val)) + } + if !dRead.isCached(key) { + t.Errorf("%q should be cached, but isn't", key) + } + + // Write a different value. + if err := dWrite.Write(key, val2); err != nil { + t.Fatalf("during second write: %s", err) + } + + // Second read, should hit cache and get the old value. + val, err = dRead.Read(key) + if err != nil { + t.Fatalf("during second (cache-hit) read: %s", err) + } + t.Logf("read 2: %s => %s", key, string(val)) + if !cmpBytes(val1, val) { + t.Errorf("expected %q, got %q", string(val1), string(val)) + } + + // Third, direct read, should get the updated value. + rc, err := dRead.ReadStream(key, true) + if err != nil { + t.Fatalf("during third (direct) read, ReadStream: %s", err) + } + defer rc.Close() + val, err = ioutil.ReadAll(rc) + if err != nil { + t.Fatalf("during third (direct) read, ReadAll: %s", err) + } + t.Logf("read 3: %s => %s", key, string(val)) + if !cmpBytes(val2, val) { + t.Errorf("expected %q, got %q", string(val1), string(val)) + } + + // Fourth read, should hit cache and get the new value. + val, err = dRead.Read(key) + if err != nil { + t.Fatalf("during fourth (cache-hit) read: %s", err) + } + t.Logf("read 4: %s => %s", key, string(val)) + if !cmpBytes(val2, val) { + t.Errorf("expected %q, got %q", string(val1), string(val)) + } +} diff --git a/vendor/github.com/pkg/errors/.travis.yml b/vendor/github.com/pkg/errors/.travis.yml index 588ceca18..d4b92663b 100644 --- a/vendor/github.com/pkg/errors/.travis.yml +++ b/vendor/github.com/pkg/errors/.travis.yml @@ -1,10 +1,14 @@ language: go go_import_path: github.com/pkg/errors go: - - 1.4.3 - - 1.5.4 - - 1.6.2 - - 1.7.1 + - 1.4.x + - 1.5.x + - 1.6.x + - 1.7.x + - 1.8.x + - 1.9.x + - 1.10.x + - 1.11.x - tip script: diff --git a/vendor/github.com/pkg/errors/README.md b/vendor/github.com/pkg/errors/README.md index 273db3c98..6483ba2af 100644 --- a/vendor/github.com/pkg/errors/README.md +++ b/vendor/github.com/pkg/errors/README.md @@ -1,4 +1,4 @@ -# errors [![Travis-CI](https://travis-ci.org/pkg/errors.svg)](https://travis-ci.org/pkg/errors) [![AppVeyor](https://ci.appveyor.com/api/projects/status/b98mptawhudj53ep/branch/master?svg=true)](https://ci.appveyor.com/project/davecheney/errors/branch/master) [![GoDoc](https://godoc.org/github.com/pkg/errors?status.svg)](http://godoc.org/github.com/pkg/errors) [![Report card](https://goreportcard.com/badge/github.com/pkg/errors)](https://goreportcard.com/report/github.com/pkg/errors) +# errors [![Travis-CI](https://travis-ci.org/pkg/errors.svg)](https://travis-ci.org/pkg/errors) [![AppVeyor](https://ci.appveyor.com/api/projects/status/b98mptawhudj53ep/branch/master?svg=true)](https://ci.appveyor.com/project/davecheney/errors/branch/master) [![GoDoc](https://godoc.org/github.com/pkg/errors?status.svg)](http://godoc.org/github.com/pkg/errors) [![Report card](https://goreportcard.com/badge/github.com/pkg/errors)](https://goreportcard.com/report/github.com/pkg/errors) [![Sourcegraph](https://sourcegraph.com/github.com/pkg/errors/-/badge.svg)](https://sourcegraph.com/github.com/pkg/errors?badge) Package errors provides simple error handling primitives. @@ -47,6 +47,6 @@ We welcome pull requests, bug fixes and issue reports. With that said, the bar f Before proposing a change, please discuss your change by raising an issue. -## Licence +## License BSD-2-Clause diff --git a/vendor/github.com/pkg/errors/bench_test.go b/vendor/github.com/pkg/errors/bench_test.go index 0416a3cbb..903b5f2d4 100644 --- a/vendor/github.com/pkg/errors/bench_test.go +++ b/vendor/github.com/pkg/errors/bench_test.go @@ -15,6 +15,7 @@ func noErrors(at, depth int) error { } return noErrors(at+1, depth) } + func yesErrors(at, depth int) error { if at >= depth { return New("ye error") @@ -22,8 +23,11 @@ func yesErrors(at, depth int) error { return yesErrors(at+1, depth) } +// GlobalE is an exported global to store the result of benchmark results, +// preventing the compiler from optimising the benchmark functions away. +var GlobalE error + func BenchmarkErrors(b *testing.B) { - var toperr error type run struct { stack int std bool @@ -53,7 +57,7 @@ func BenchmarkErrors(b *testing.B) { err = f(0, r.stack) } b.StopTimer() - toperr = err + GlobalE = err }) } } diff --git a/vendor/github.com/pkg/errors/errors.go b/vendor/github.com/pkg/errors/errors.go index 842ee8045..7421f326f 100644 --- a/vendor/github.com/pkg/errors/errors.go +++ b/vendor/github.com/pkg/errors/errors.go @@ -6,7 +6,7 @@ // return err // } // -// which applied recursively up the call stack results in error reports +// which when applied recursively up the call stack results in error reports // without context or debugging information. The errors package allows // programmers to add context to the failure path in their code in a way // that does not destroy the original value of the error. @@ -15,16 +15,17 @@ // // The errors.Wrap function returns a new error that adds context to the // original error by recording a stack trace at the point Wrap is called, -// and the supplied message. For example +// together with the supplied message. For example // // _, err := ioutil.ReadAll(r) // if err != nil { // return errors.Wrap(err, "read failed") // } // -// If additional control is required the errors.WithStack and errors.WithMessage -// functions destructure errors.Wrap into its component operations of annotating -// an error with a stack trace and an a message, respectively. +// If additional control is required, the errors.WithStack and +// errors.WithMessage functions destructure errors.Wrap into its component +// operations: annotating an error with a stack trace and with a message, +// respectively. // // Retrieving the cause of an error // @@ -38,7 +39,7 @@ // } // // can be inspected by errors.Cause. errors.Cause will recursively retrieve -// the topmost error which does not implement causer, which is assumed to be +// the topmost error that does not implement causer, which is assumed to be // the original cause. For example: // // switch err := errors.Cause(err).(type) { @@ -48,16 +49,16 @@ // // unknown error // } // -// causer interface is not exported by this package, but is considered a part -// of stable public API. +// Although the causer interface is not exported by this package, it is +// considered a part of its stable public interface. // // Formatted printing of errors // // All error values returned from this package implement fmt.Formatter and can -// be formatted by the fmt package. The following verbs are supported +// be formatted by the fmt package. The following verbs are supported: // // %s print the error. If the error has a Cause it will be -// printed recursively +// printed recursively. // %v see %s // %+v extended format. Each Frame of the error's StackTrace will // be printed in detail. @@ -65,13 +66,13 @@ // Retrieving the stack trace of an error or wrapper // // New, Errorf, Wrap, and Wrapf record a stack trace at the point they are -// invoked. This information can be retrieved with the following interface. +// invoked. This information can be retrieved with the following interface: // // type stackTracer interface { // StackTrace() errors.StackTrace // } // -// Where errors.StackTrace is defined as +// The returned errors.StackTrace type is defined as // // type StackTrace []Frame // @@ -85,8 +86,8 @@ // } // } // -// stackTracer interface is not exported by this package, but is considered a part -// of stable public API. +// Although the stackTracer interface is not exported by this package, it is +// considered a part of its stable public interface. // // See the documentation for Frame.Format for more details. package errors @@ -192,7 +193,7 @@ func Wrap(err error, message string) error { } // Wrapf returns an error annotating err with a stack trace -// at the point Wrapf is call, and the format specifier. +// at the point Wrapf is called, and the format specifier. // If err is nil, Wrapf returns nil. func Wrapf(err error, format string, args ...interface{}) error { if err == nil { @@ -220,6 +221,18 @@ func WithMessage(err error, message string) error { } } +// WithMessagef annotates err with the format specifier. +// If err is nil, WithMessagef returns nil. +func WithMessagef(err error, format string, args ...interface{}) error { + if err == nil { + return nil + } + return &withMessage{ + cause: err, + msg: fmt.Sprintf(format, args...), + } +} + type withMessage struct { cause error msg string diff --git a/vendor/github.com/pkg/errors/errors_test.go b/vendor/github.com/pkg/errors/errors_test.go index 1d8c63558..2089b2f76 100644 --- a/vendor/github.com/pkg/errors/errors_test.go +++ b/vendor/github.com/pkg/errors/errors_test.go @@ -196,7 +196,32 @@ func TestWithMessage(t *testing.T) { t.Errorf("WithMessage(%v, %q): got: %q, want %q", tt.err, tt.message, got, tt.want) } } +} +func TestWithMessagefNil(t *testing.T) { + got := WithMessagef(nil, "no error") + if got != nil { + t.Errorf("WithMessage(nil, \"no error\"): got %#v, expected nil", got) + } +} + +func TestWithMessagef(t *testing.T) { + tests := []struct { + err error + message string + want string + }{ + {io.EOF, "read error", "read error: EOF"}, + {WithMessagef(io.EOF, "read error without format specifier"), "client error", "client error: read error without format specifier: EOF"}, + {WithMessagef(io.EOF, "read error with %d format specifier", 1), "client error", "client error: read error with 1 format specifier: EOF"}, + } + + for _, tt := range tests { + got := WithMessagef(tt.err, tt.message).Error() + if got != tt.want { + t.Errorf("WithMessage(%v, %q): got: %q, want %q", tt.err, tt.message, got, tt.want) + } + } } // errors.New, etc values are not expected to be compared by value diff --git a/vendor/github.com/pkg/errors/format_test.go b/vendor/github.com/pkg/errors/format_test.go index 15fd7d89d..c2eef5f04 100644 --- a/vendor/github.com/pkg/errors/format_test.go +++ b/vendor/github.com/pkg/errors/format_test.go @@ -491,7 +491,7 @@ type wrapper struct { want []string } -func prettyBlocks(blocks []string, prefix ...string) string { +func prettyBlocks(blocks []string) string { var out []string for _, b := range blocks { diff --git a/vendor/github.com/pkg/errors/stack.go b/vendor/github.com/pkg/errors/stack.go index 6b1f2891a..2874a048c 100644 --- a/vendor/github.com/pkg/errors/stack.go +++ b/vendor/github.com/pkg/errors/stack.go @@ -46,7 +46,8 @@ func (f Frame) line() int { // // Format accepts flags that alter the printing of some verbs, as follows: // -// %+s path of source file relative to the compile time GOPATH +// %+s function name and path of source file relative to the compile time +// GOPATH separated by \n\t (\n\t) // %+v equivalent to %+s:%d func (f Frame) Format(s fmt.State, verb rune) { switch verb { @@ -79,6 +80,14 @@ func (f Frame) Format(s fmt.State, verb rune) { // StackTrace is stack of Frames from innermost (newest) to outermost (oldest). type StackTrace []Frame +// Format formats the stack of Frames according to the fmt.Formatter interface. +// +// %s lists source files for each Frame in the stack +// %v lists the source file and line number for each Frame in the stack +// +// Format accepts flags that alter the printing of some verbs, as follows: +// +// %+v Prints filename, function, and line number for each Frame in the stack. func (st StackTrace) Format(s fmt.State, verb rune) { switch verb { case 'v': @@ -136,43 +145,3 @@ func funcname(name string) string { i = strings.Index(name, ".") return name[i+1:] } - -func trimGOPATH(name, file string) string { - // Here we want to get the source file path relative to the compile time - // GOPATH. As of Go 1.6.x there is no direct way to know the compiled - // GOPATH at runtime, but we can infer the number of path segments in the - // GOPATH. We note that fn.Name() returns the function name qualified by - // the import path, which does not include the GOPATH. Thus we can trim - // segments from the beginning of the file path until the number of path - // separators remaining is one more than the number of path separators in - // the function name. For example, given: - // - // GOPATH /home/user - // file /home/user/src/pkg/sub/file.go - // fn.Name() pkg/sub.Type.Method - // - // We want to produce: - // - // pkg/sub/file.go - // - // From this we can easily see that fn.Name() has one less path separator - // than our desired output. We count separators from the end of the file - // path until it finds two more than in the function name and then move - // one character forward to preserve the initial path segment without a - // leading separator. - const sep = "/" - goal := strings.Count(name, sep) + 2 - i := len(file) - for n := 0; n < goal; n++ { - i = strings.LastIndex(file[:i], sep) - if i == -1 { - // not enough separators found, set i so that the slice expression - // below leaves file unmodified - i = -len(sep) - break - } - } - // get back to 0 or trim the leading separator - file = file[i+len(sep):] - return file -} diff --git a/vendor/github.com/pkg/errors/stack_test.go b/vendor/github.com/pkg/errors/stack_test.go index 510c27a9f..85fc41959 100644 --- a/vendor/github.com/pkg/errors/stack_test.go +++ b/vendor/github.com/pkg/errors/stack_test.go @@ -146,24 +146,6 @@ func TestFuncname(t *testing.T) { } } -func TestTrimGOPATH(t *testing.T) { - var tests = []struct { - Frame - want string - }{{ - Frame(initpc), - "github.com/pkg/errors/stack_test.go", - }} - - for i, tt := range tests { - pc := tt.Frame.pc() - fn := runtime.FuncForPC(pc) - file, _ := fn.FileLine(pc) - got := trimGOPATH(fn.Name(), file) - testFormatRegexp(t, i, got, "%s", tt.want) - } -} - func TestStackTrace(t *testing.T) { tests := []struct { err error @@ -171,24 +153,24 @@ func TestStackTrace(t *testing.T) { }{{ New("ooh"), []string{ "github.com/pkg/errors.TestStackTrace\n" + - "\t.+/github.com/pkg/errors/stack_test.go:172", + "\t.+/github.com/pkg/errors/stack_test.go:154", }, }, { Wrap(New("ooh"), "ahh"), []string{ "github.com/pkg/errors.TestStackTrace\n" + - "\t.+/github.com/pkg/errors/stack_test.go:177", // this is the stack of Wrap, not New + "\t.+/github.com/pkg/errors/stack_test.go:159", // this is the stack of Wrap, not New }, }, { Cause(Wrap(New("ooh"), "ahh")), []string{ "github.com/pkg/errors.TestStackTrace\n" + - "\t.+/github.com/pkg/errors/stack_test.go:182", // this is the stack of New + "\t.+/github.com/pkg/errors/stack_test.go:164", // this is the stack of New }, }, { func() error { return New("ooh") }(), []string{ `github.com/pkg/errors.(func·009|TestStackTrace.func1)` + - "\n\t.+/github.com/pkg/errors/stack_test.go:187", // this is the stack of New + "\n\t.+/github.com/pkg/errors/stack_test.go:169", // this is the stack of New "github.com/pkg/errors.TestStackTrace\n" + - "\t.+/github.com/pkg/errors/stack_test.go:187", // this is the stack of New's caller + "\t.+/github.com/pkg/errors/stack_test.go:169", // this is the stack of New's caller }, }, { Cause(func() error { @@ -197,11 +179,11 @@ func TestStackTrace(t *testing.T) { }() }()), []string{ `github.com/pkg/errors.(func·010|TestStackTrace.func2.1)` + - "\n\t.+/github.com/pkg/errors/stack_test.go:196", // this is the stack of Errorf + "\n\t.+/github.com/pkg/errors/stack_test.go:178", // this is the stack of Errorf `github.com/pkg/errors.(func·011|TestStackTrace.func2)` + - "\n\t.+/github.com/pkg/errors/stack_test.go:197", // this is the stack of Errorf's caller + "\n\t.+/github.com/pkg/errors/stack_test.go:179", // this is the stack of Errorf's caller "github.com/pkg/errors.TestStackTrace\n" + - "\t.+/github.com/pkg/errors/stack_test.go:198", // this is the stack of Errorf's caller's caller + "\t.+/github.com/pkg/errors/stack_test.go:180", // this is the stack of Errorf's caller's caller }, }} for i, tt := range tests { @@ -271,19 +253,19 @@ func TestStackTraceFormat(t *testing.T) { }, { stackTrace()[:2], "%v", - `\[stack_test.go:225 stack_test.go:272\]`, + `\[stack_test.go:207 stack_test.go:254\]`, }, { stackTrace()[:2], "%+v", "\n" + "github.com/pkg/errors.stackTrace\n" + - "\t.+/github.com/pkg/errors/stack_test.go:225\n" + + "\t.+/github.com/pkg/errors/stack_test.go:207\n" + "github.com/pkg/errors.TestStackTraceFormat\n" + - "\t.+/github.com/pkg/errors/stack_test.go:276", + "\t.+/github.com/pkg/errors/stack_test.go:258", }, { stackTrace()[:2], "%#v", - `\[\]errors.Frame{stack_test.go:225, stack_test.go:284}`, + `\[\]errors.Frame{stack_test.go:207, stack_test.go:266}`, }} for i, tt := range tests { diff --git a/vendor/golang.org/x/crypto/bn256/gfp12.go b/vendor/golang.org/x/crypto/bn256/gfp12.go index f084eddf2..2b0151ebc 100644 --- a/vendor/golang.org/x/crypto/bn256/gfp12.go +++ b/vendor/golang.org/x/crypto/bn256/gfp12.go @@ -125,8 +125,8 @@ func (e *gfP12) Mul(a, b *gfP12, pool *bnPool) *gfP12 { } func (e *gfP12) MulScalar(a *gfP12, b *gfP6, pool *bnPool) *gfP12 { - e.x.Mul(e.x, b, pool) - e.y.Mul(e.y, b, pool) + e.x.Mul(a.x, b, pool) + e.y.Mul(a.y, b, pool) return e } diff --git a/vendor/golang.org/x/crypto/sha3/hashes.go b/vendor/golang.org/x/crypto/sha3/hashes.go index 4fb38c0ab..0d8043fd2 100644 --- a/vendor/golang.org/x/crypto/sha3/hashes.go +++ b/vendor/golang.org/x/crypto/sha3/hashes.go @@ -58,6 +58,12 @@ func New512() hash.Hash { // that uses non-standard padding. All other users should use New256 instead. func NewLegacyKeccak256() hash.Hash { return &state{rate: 136, outputLen: 32, dsbyte: 0x01} } +// NewLegacyKeccak512 creates a new Keccak-512 hash. +// +// Only use this function if you require compatibility with an existing cryptosystem +// that uses non-standard padding. All other users should use New512 instead. +func NewLegacyKeccak512() hash.Hash { return &state{rate: 72, outputLen: 64, dsbyte: 0x01} } + // Sum224 returns the SHA3-224 digest of the data. func Sum224(data []byte) (digest [28]byte) { h := New224() diff --git a/vendor/golang.org/x/crypto/sha3/sha3_test.go b/vendor/golang.org/x/crypto/sha3/sha3_test.go index c1f6ca399..26d1549b5 100644 --- a/vendor/golang.org/x/crypto/sha3/sha3_test.go +++ b/vendor/golang.org/x/crypto/sha3/sha3_test.go @@ -44,6 +44,7 @@ var testDigests = map[string]func() hash.Hash{ "SHA3-384": New384, "SHA3-512": New512, "Keccak-256": NewLegacyKeccak256, + "Keccak-512": NewLegacyKeccak512, "SHAKE128": newHashShake128, "SHAKE256": newHashShake256, } @@ -137,6 +138,11 @@ func TestKeccak(t *testing.T) { []byte("abc"), "4e03657aea45a94fc7d47ba826c8d667c0d1e6e33a64a036ec44f58fa12d6c45", }, + { + NewLegacyKeccak512, + []byte("abc"), + "18587dc2ea106b9a1563e32b3312421ca164c7f1f07bc922a9c83d77cea3a1e5d0c69910739025372dc14ac9642629379540c17e2a65b19d77aa511a9d00bb96", + }, } for _, u := range tests { diff --git a/vendor/golang.org/x/net/http2/h2c/h2c.go b/vendor/golang.org/x/net/http2/h2c/h2c.go index 03a31c80e..07c5c9a60 100644 --- a/vendor/golang.org/x/net/http2/h2c/h2c.go +++ b/vendor/golang.org/x/net/http2/h2c/h2c.go @@ -118,6 +118,9 @@ func initH2CWithPriorKnowledge(w http.ResponseWriter) (net.Conn, error) { buf := make([]byte, len(expectedBody)) n, err := io.ReadFull(rw, buf) + if err != nil { + return nil, fmt.Errorf("could not read from the buffer: %s", err) + } if string(buf[:n]) == expectedBody { c := &rwConn{ diff --git a/vendor/golang.org/x/net/http2/hpack/hpack.go b/vendor/golang.org/x/net/http2/hpack/hpack.go index 166788cee..85f18a2b0 100644 --- a/vendor/golang.org/x/net/http2/hpack/hpack.go +++ b/vendor/golang.org/x/net/http2/hpack/hpack.go @@ -92,6 +92,8 @@ type Decoder struct { // saveBuf is previous data passed to Write which we weren't able // to fully parse before. Unlike buf, we own this data. saveBuf bytes.Buffer + + firstField bool // processing the first field of the header block } // NewDecoder returns a new decoder with the provided maximum dynamic @@ -101,6 +103,7 @@ func NewDecoder(maxDynamicTableSize uint32, emitFunc func(f HeaderField)) *Decod d := &Decoder{ emit: emitFunc, emitEnabled: true, + firstField: true, } d.dynTab.table.init() d.dynTab.allowedMaxSize = maxDynamicTableSize @@ -226,11 +229,15 @@ func (d *Decoder) DecodeFull(p []byte) ([]HeaderField, error) { return hf, nil } +// Close declares that the decoding is complete and resets the Decoder +// to be reused again for a new header block. If there is any remaining +// data in the decoder's buffer, Close returns an error. func (d *Decoder) Close() error { if d.saveBuf.Len() > 0 { d.saveBuf.Reset() return DecodingError{errors.New("truncated headers")} } + d.firstField = true return nil } @@ -266,6 +273,7 @@ func (d *Decoder) Write(p []byte) (n int, err error) { d.saveBuf.Write(d.buf) return len(p), nil } + d.firstField = false if err != nil { break } @@ -391,7 +399,7 @@ func (d *Decoder) callEmit(hf HeaderField) error { func (d *Decoder) parseDynamicTableSizeUpdate() error { // RFC 7541, sec 4.2: This dynamic table size update MUST occur at the // beginning of the first header block following the change to the dynamic table size. - if d.dynTab.size > 0 { + if !d.firstField && d.dynTab.size > 0 { return DecodingError{errors.New("dynamic table size update MUST occur at the beginning of a header block")} } diff --git a/vendor/golang.org/x/net/http2/hpack/hpack_test.go b/vendor/golang.org/x/net/http2/hpack/hpack_test.go index 3f2227442..a361a2a7c 100644 --- a/vendor/golang.org/x/net/http2/hpack/hpack_test.go +++ b/vendor/golang.org/x/net/http2/hpack/hpack_test.go @@ -748,14 +748,22 @@ func TestDynamicSizeUpdate(t *testing.T) { enc.SetMaxDynamicTableSize(255) enc.WriteField(HeaderField{Name: "foo", Value: "bar"}) - d := NewDecoder(4096, nil) - _, err := d.DecodeFull(buf.Bytes()) + d := NewDecoder(4096, func(_ HeaderField) {}) + _, err := d.Write(buf.Bytes()) + if err != nil { + t.Fatalf("unexpected error: got = %v", err) + } + + d.Close() + + // Start a new header + _, err = d.Write(buf.Bytes()) if err != nil { t.Fatalf("unexpected error: got = %v", err) } // must fail since the dynamic table update must be at the beginning - _, err = d.DecodeFull(buf.Bytes()) + _, err = d.Write(buf.Bytes()) if err == nil { t.Fatalf("dynamic table size update not at the beginning of a header block") } diff --git a/vendor/golang.org/x/net/internal/nettest/helper_bsd.go b/vendor/golang.org/x/net/internal/nettest/helper_bsd.go index a6e433b58..4025bd289 100644 --- a/vendor/golang.org/x/net/internal/nettest/helper_bsd.go +++ b/vendor/golang.org/x/net/internal/nettest/helper_bsd.go @@ -8,28 +8,8 @@ package nettest import ( "runtime" - "strconv" - "strings" - "syscall" ) -var darwinVersion int - -func init() { - if runtime.GOOS == "darwin" { - // See http://support.apple.com/kb/HT1633. - s, err := syscall.Sysctl("kern.osrelease") - if err != nil { - return - } - ss := strings.Split(s, ".") - if len(ss) == 0 { - return - } - darwinVersion, _ = strconv.Atoi(ss[0]) - } -} - func supportsIPv6MulticastDeliveryOnLoopback() bool { switch runtime.GOOS { case "freebsd": @@ -38,16 +18,7 @@ func supportsIPv6MulticastDeliveryOnLoopback() bool { // kernels don't deliver link-local scoped multicast // packets correctly. return false - case "darwin": - return !causesIPv6Crash() default: return true } } - -func causesIPv6Crash() bool { - // We see some kernel crash when running IPv6 with IP-level - // options on Darwin kernel version 12 or below. - // See golang.org/issues/17015. - return darwinVersion < 13 -} diff --git a/vendor/golang.org/x/net/internal/nettest/helper_nobsd.go b/vendor/golang.org/x/net/internal/nettest/helper_nobsd.go index 1611a907f..bfcaee972 100644 --- a/vendor/golang.org/x/net/internal/nettest/helper_nobsd.go +++ b/vendor/golang.org/x/net/internal/nettest/helper_nobsd.go @@ -9,7 +9,3 @@ package nettest func supportsIPv6MulticastDeliveryOnLoopback() bool { return true } - -func causesIPv6Crash() bool { - return false -} diff --git a/vendor/golang.org/x/net/internal/nettest/helper_stub.go b/vendor/golang.org/x/net/internal/nettest/helper_stub.go index d89cf2996..2eeeb3537 100644 --- a/vendor/golang.org/x/net/internal/nettest/helper_stub.go +++ b/vendor/golang.org/x/net/internal/nettest/helper_stub.go @@ -23,10 +23,6 @@ func supportsIPv6MulticastDeliveryOnLoopback() bool { return false } -func causesIPv6Crash() bool { - return false -} - func protocolNotSupported(err error) bool { return false } diff --git a/vendor/golang.org/x/net/internal/nettest/helper_windows.go b/vendor/golang.org/x/net/internal/nettest/helper_windows.go index 3dcb727c9..b0a6a30c4 100644 --- a/vendor/golang.org/x/net/internal/nettest/helper_windows.go +++ b/vendor/golang.org/x/net/internal/nettest/helper_windows.go @@ -36,7 +36,3 @@ func supportsRawIPSocket() (string, bool) { func supportsIPv6MulticastDeliveryOnLoopback() bool { return true } - -func causesIPv6Crash() bool { - return false -} diff --git a/vendor/golang.org/x/net/internal/socket/sys_bsdvar.go b/vendor/golang.org/x/net/internal/socket/sys_bsdvar.go index f723fa36a..164ddfce8 100644 --- a/vendor/golang.org/x/net/internal/socket/sys_bsdvar.go +++ b/vendor/golang.org/x/net/internal/socket/sys_bsdvar.go @@ -6,9 +6,15 @@ package socket -import "unsafe" +import ( + "runtime" + "unsafe" +) func probeProtocolStack() int { + if runtime.GOOS == "openbsd" && runtime.GOARCH == "arm" { + return 8 + } var p uintptr return int(unsafe.Sizeof(p)) } diff --git a/vendor/golang.org/x/net/ipv4/sys_darwin.go b/vendor/golang.org/x/net/ipv4/sys_darwin.go index e8fb19169..ac213c735 100644 --- a/vendor/golang.org/x/net/ipv4/sys_darwin.go +++ b/vendor/golang.org/x/net/ipv4/sys_darwin.go @@ -6,8 +6,6 @@ package ipv4 import ( "net" - "strconv" - "strings" "syscall" "unsafe" @@ -17,59 +15,33 @@ import ( var ( ctlOpts = [ctlMax]ctlOpt{ - ctlTTL: {sysIP_RECVTTL, 1, marshalTTL, parseTTL}, - ctlDst: {sysIP_RECVDSTADDR, net.IPv4len, marshalDst, parseDst}, - ctlInterface: {sysIP_RECVIF, syscall.SizeofSockaddrDatalink, marshalInterface, parseInterface}, + ctlTTL: {sysIP_RECVTTL, 1, marshalTTL, parseTTL}, + ctlDst: {sysIP_RECVDSTADDR, net.IPv4len, marshalDst, parseDst}, + ctlInterface: {sysIP_RECVIF, syscall.SizeofSockaddrDatalink, marshalInterface, parseInterface}, + ctlPacketInfo: {sysIP_PKTINFO, sizeofInetPktinfo, marshalPacketInfo, parsePacketInfo}, } sockOpts = map[int]*sockOpt{ ssoTOS: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_TOS, Len: 4}}, ssoTTL: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_TTL, Len: 4}}, ssoMulticastTTL: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_MULTICAST_TTL, Len: 1}}, - ssoMulticastInterface: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_MULTICAST_IF, Len: 4}}, + ssoMulticastInterface: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_MULTICAST_IF, Len: sizeofIPMreqn}, typ: ssoTypeIPMreqn}, ssoMulticastLoopback: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_MULTICAST_LOOP, Len: 4}}, ssoReceiveTTL: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_RECVTTL, Len: 4}}, ssoReceiveDst: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_RECVDSTADDR, Len: 4}}, ssoReceiveInterface: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_RECVIF, Len: 4}}, ssoHeaderPrepend: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_HDRINCL, Len: 4}}, ssoStripHeader: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_STRIPHDR, Len: 4}}, - ssoJoinGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_ADD_MEMBERSHIP, Len: sizeofIPMreq}, typ: ssoTypeIPMreq}, - ssoLeaveGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_DROP_MEMBERSHIP, Len: sizeofIPMreq}, typ: ssoTypeIPMreq}, + ssoJoinGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_JOIN_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq}, + ssoLeaveGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_LEAVE_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq}, + ssoJoinSourceGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_JOIN_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}, + ssoLeaveSourceGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_LEAVE_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}, + ssoBlockSourceGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_BLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}, + ssoUnblockSourceGroup: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_UNBLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}, + ssoPacketInfo: {Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_RECVPKTINFO, Len: 4}}, } ) -func init() { - // Seems like kern.osreldate is veiled on latest OS X. We use - // kern.osrelease instead. - s, err := syscall.Sysctl("kern.osrelease") - if err != nil { - return - } - ss := strings.Split(s, ".") - if len(ss) == 0 { - return - } - // The IP_PKTINFO and protocol-independent multicast API were - // introduced in OS X 10.7 (Darwin 11). But it looks like - // those features require OS X 10.8 (Darwin 12) or above. - // See http://support.apple.com/kb/HT1633. - if mjver, err := strconv.Atoi(ss[0]); err != nil || mjver < 12 { - return - } - ctlOpts[ctlPacketInfo].name = sysIP_PKTINFO - ctlOpts[ctlPacketInfo].length = sizeofInetPktinfo - ctlOpts[ctlPacketInfo].marshal = marshalPacketInfo - ctlOpts[ctlPacketInfo].parse = parsePacketInfo - sockOpts[ssoPacketInfo] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_RECVPKTINFO, Len: 4}} - sockOpts[ssoMulticastInterface] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIP, Name: sysIP_MULTICAST_IF, Len: sizeofIPMreqn}, typ: ssoTypeIPMreqn} - sockOpts[ssoJoinGroup] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_JOIN_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq} - sockOpts[ssoLeaveGroup] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_LEAVE_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq} - sockOpts[ssoJoinSourceGroup] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_JOIN_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq} - sockOpts[ssoLeaveSourceGroup] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_LEAVE_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq} - sockOpts[ssoBlockSourceGroup] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_BLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq} - sockOpts[ssoUnblockSourceGroup] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIP, Name: sysMCAST_UNBLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq} -} - func (pi *inetPktinfo) setIfindex(i int) { pi.Ifindex = uint32(i) } diff --git a/vendor/golang.org/x/net/ipv6/sys_darwin.go b/vendor/golang.org/x/net/ipv6/sys_darwin.go index e3d044392..12cc5cb2c 100644 --- a/vendor/golang.org/x/net/ipv6/sys_darwin.go +++ b/vendor/golang.org/x/net/ipv6/sys_darwin.go @@ -6,8 +6,6 @@ package ipv6 import ( "net" - "strconv" - "strings" "syscall" "unsafe" @@ -17,61 +15,35 @@ import ( var ( ctlOpts = [ctlMax]ctlOpt{ - ctlHopLimit: {sysIPV6_2292HOPLIMIT, 4, marshal2292HopLimit, parseHopLimit}, - ctlPacketInfo: {sysIPV6_2292PKTINFO, sizeofInet6Pktinfo, marshal2292PacketInfo, parsePacketInfo}, + ctlTrafficClass: {sysIPV6_TCLASS, 4, marshalTrafficClass, parseTrafficClass}, + ctlHopLimit: {sysIPV6_HOPLIMIT, 4, marshalHopLimit, parseHopLimit}, + ctlPacketInfo: {sysIPV6_PKTINFO, sizeofInet6Pktinfo, marshalPacketInfo, parsePacketInfo}, + ctlNextHop: {sysIPV6_NEXTHOP, sizeofSockaddrInet6, marshalNextHop, parseNextHop}, + ctlPathMTU: {sysIPV6_PATHMTU, sizeofIPv6Mtuinfo, marshalPathMTU, parsePathMTU}, } sockOpts = map[int]*sockOpt{ - ssoHopLimit: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_UNICAST_HOPS, Len: 4}}, - ssoMulticastInterface: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_IF, Len: 4}}, - ssoMulticastHopLimit: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_HOPS, Len: 4}}, - ssoMulticastLoopback: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_LOOP, Len: 4}}, - ssoReceiveHopLimit: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_2292HOPLIMIT, Len: 4}}, - ssoReceivePacketInfo: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_2292PKTINFO, Len: 4}}, - ssoChecksum: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_CHECKSUM, Len: 4}}, - ssoICMPFilter: {Option: socket.Option{Level: iana.ProtocolIPv6ICMP, Name: sysICMP6_FILTER, Len: sizeofICMPv6Filter}}, - ssoJoinGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_JOIN_GROUP, Len: sizeofIPv6Mreq}, typ: ssoTypeIPMreq}, - ssoLeaveGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_LEAVE_GROUP, Len: sizeofIPv6Mreq}, typ: ssoTypeIPMreq}, + ssoHopLimit: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_UNICAST_HOPS, Len: 4}}, + ssoMulticastInterface: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_IF, Len: 4}}, + ssoMulticastHopLimit: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_HOPS, Len: 4}}, + ssoMulticastLoopback: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_MULTICAST_LOOP, Len: 4}}, + ssoTrafficClass: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_TCLASS, Len: 4}}, + ssoReceiveTrafficClass: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVTCLASS, Len: 4}}, + ssoReceiveHopLimit: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVHOPLIMIT, Len: 4}}, + ssoReceivePacketInfo: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVPKTINFO, Len: 4}}, + ssoReceivePathMTU: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVPATHMTU, Len: 4}}, + ssoPathMTU: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_PATHMTU, Len: sizeofIPv6Mtuinfo}}, + ssoChecksum: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_CHECKSUM, Len: 4}}, + ssoICMPFilter: {Option: socket.Option{Level: iana.ProtocolIPv6ICMP, Name: sysICMP6_FILTER, Len: sizeofICMPv6Filter}}, + ssoJoinGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_JOIN_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq}, + ssoLeaveGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_LEAVE_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq}, + ssoJoinSourceGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_JOIN_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}, + ssoLeaveSourceGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_LEAVE_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}, + ssoBlockSourceGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_BLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}, + ssoUnblockSourceGroup: {Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_UNBLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq}, } ) -func init() { - // Seems like kern.osreldate is veiled on latest OS X. We use - // kern.osrelease instead. - s, err := syscall.Sysctl("kern.osrelease") - if err != nil { - return - } - ss := strings.Split(s, ".") - if len(ss) == 0 { - return - } - // The IP_PKTINFO and protocol-independent multicast API were - // introduced in OS X 10.7 (Darwin 11). But it looks like - // those features require OS X 10.8 (Darwin 12) or above. - // See http://support.apple.com/kb/HT1633. - if mjver, err := strconv.Atoi(ss[0]); err != nil || mjver < 12 { - return - } - ctlOpts[ctlTrafficClass] = ctlOpt{sysIPV6_TCLASS, 4, marshalTrafficClass, parseTrafficClass} - ctlOpts[ctlHopLimit] = ctlOpt{sysIPV6_HOPLIMIT, 4, marshalHopLimit, parseHopLimit} - ctlOpts[ctlPacketInfo] = ctlOpt{sysIPV6_PKTINFO, sizeofInet6Pktinfo, marshalPacketInfo, parsePacketInfo} - ctlOpts[ctlNextHop] = ctlOpt{sysIPV6_NEXTHOP, sizeofSockaddrInet6, marshalNextHop, parseNextHop} - ctlOpts[ctlPathMTU] = ctlOpt{sysIPV6_PATHMTU, sizeofIPv6Mtuinfo, marshalPathMTU, parsePathMTU} - sockOpts[ssoTrafficClass] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_TCLASS, Len: 4}} - sockOpts[ssoReceiveTrafficClass] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVTCLASS, Len: 4}} - sockOpts[ssoReceiveHopLimit] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVHOPLIMIT, Len: 4}} - sockOpts[ssoReceivePacketInfo] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVPKTINFO, Len: 4}} - sockOpts[ssoReceivePathMTU] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_RECVPATHMTU, Len: 4}} - sockOpts[ssoPathMTU] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysIPV6_PATHMTU, Len: sizeofIPv6Mtuinfo}} - sockOpts[ssoJoinGroup] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_JOIN_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq} - sockOpts[ssoLeaveGroup] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_LEAVE_GROUP, Len: sizeofGroupReq}, typ: ssoTypeGroupReq} - sockOpts[ssoJoinSourceGroup] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_JOIN_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq} - sockOpts[ssoLeaveSourceGroup] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_LEAVE_SOURCE_GROUP, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq} - sockOpts[ssoBlockSourceGroup] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_BLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq} - sockOpts[ssoUnblockSourceGroup] = &sockOpt{Option: socket.Option{Level: iana.ProtocolIPv6, Name: sysMCAST_UNBLOCK_SOURCE, Len: sizeofGroupSourceReq}, typ: ssoTypeGroupSourceReq} -} - func (sa *sockaddrInet6) setSockaddr(ip net.IP, i int) { sa.Len = sizeofSockaddrInet6 sa.Family = syscall.AF_INET6 diff --git a/vendor/golang.org/x/net/proxy/proxy.go b/vendor/golang.org/x/net/proxy/proxy.go index 553ead7cf..f6026b902 100644 --- a/vendor/golang.org/x/net/proxy/proxy.go +++ b/vendor/golang.org/x/net/proxy/proxy.go @@ -79,8 +79,13 @@ func FromURL(u *url.URL, forward Dialer) (Dialer, error) { } switch u.Scheme { - case "socks5": - return SOCKS5("tcp", u.Host, auth, forward) + case "socks5", "socks5h": + addr := u.Hostname() + port := u.Port() + if port == "" { + port = "1080" + } + return SOCKS5("tcp", net.JoinHostPort(addr, port), auth, forward) } // If the scheme doesn't match any of the built-in schemes, see if it diff --git a/vendor/golang.org/x/net/proxy/proxy_test.go b/vendor/golang.org/x/net/proxy/proxy_test.go index 0be1b422a..d260d6992 100644 --- a/vendor/golang.org/x/net/proxy/proxy_test.go +++ b/vendor/golang.org/x/net/proxy/proxy_test.go @@ -12,6 +12,7 @@ import ( "strings" "testing" + "golang.org/x/net/internal/socks" "golang.org/x/net/internal/sockstest" ) @@ -53,6 +54,7 @@ func TestFromEnvironment(t *testing.T) { {allProxyEnv: "127.0.0.1:8080", noProxyEnv: "localhost, 127.0.0.1", wantTypeOf: direct{}}, {allProxyEnv: "ftp://example.com:8000", noProxyEnv: "localhost, 127.0.0.1", wantTypeOf: direct{}}, {allProxyEnv: "socks5://example.com:8080", noProxyEnv: "localhost, 127.0.0.1", wantTypeOf: &PerHost{}}, + {allProxyEnv: "socks5h://example.com", wantTypeOf: &socks.Dialer{}}, {allProxyEnv: "irc://example.com:8000", wantTypeOf: dummyDialer{}}, {noProxyEnv: "localhost, 127.0.0.1", wantTypeOf: direct{}}, {wantTypeOf: direct{}}, diff --git a/vendor/golang.org/x/net/publicsuffix/gen.go b/vendor/golang.org/x/net/publicsuffix/gen.go index f85a3c32b..372ffbb24 100644 --- a/vendor/golang.org/x/net/publicsuffix/gen.go +++ b/vendor/golang.org/x/net/publicsuffix/gen.go @@ -100,6 +100,7 @@ var ( labelsList = []string{} labelsMap = map[string]bool{} rules = []string{} + numICANNRules = 0 // validSuffixRE is used to check that the entries in the public suffix // list are in canonical form (after Punycode encoding). Specifically, @@ -167,11 +168,14 @@ func main1() error { } s = strings.TrimSpace(s) if strings.Contains(s, "BEGIN ICANN DOMAINS") { + if len(rules) != 0 { + return fmt.Errorf(`expected no rules before "BEGIN ICANN DOMAINS"`) + } icann = true continue } if strings.Contains(s, "END ICANN DOMAINS") { - icann = false + icann, numICANNRules = false, len(rules) continue } if s == "" || strings.HasPrefix(s, "//") { @@ -287,7 +291,7 @@ func gitCommit() (sha, date string, retErr error) { func printTest(w io.Writer, n *node) error { fmt.Fprintf(w, "// generated by go run gen.go; DO NOT EDIT\n\n") - fmt.Fprintf(w, "package publicsuffix\n\nvar rules = [...]string{\n") + fmt.Fprintf(w, "package publicsuffix\n\nconst numICANNRules = %d\n\nvar rules = [...]string{\n", numICANNRules) for _, rule := range rules { fmt.Fprintf(w, "%q,\n", rule) } diff --git a/vendor/golang.org/x/net/publicsuffix/list.go b/vendor/golang.org/x/net/publicsuffix/list.go index fea98a8fd..8405ac1b7 100644 --- a/vendor/golang.org/x/net/publicsuffix/list.go +++ b/vendor/golang.org/x/net/publicsuffix/list.go @@ -72,20 +72,24 @@ func (list) String() string { // publicsuffix.org database compiled into the library. // // icann is whether the public suffix is managed by the Internet Corporation -// for Assigned Names and Numbers. If not, the public suffix is privately -// managed. For example, foo.org and foo.co.uk are ICANN domains, -// foo.dyndns.org and foo.blogspot.co.uk are private domains. +// for Assigned Names and Numbers. If not, the public suffix is either a +// privately managed domain (and in practice, not a top level domain) or an +// unmanaged top level domain (and not explicitly mentioned in the +// publicsuffix.org list). For example, "foo.org" and "foo.co.uk" are ICANN +// domains, "foo.dyndns.org" and "foo.blogspot.co.uk" are private domains and +// "cromulent" is an unmanaged top level domain. // -// Use cases for distinguishing ICANN domains like foo.com from private -// domains like foo.appspot.com can be found at +// Use cases for distinguishing ICANN domains like "foo.com" from private +// domains like "foo.appspot.com" can be found at // https://wiki.mozilla.org/Public_Suffix_List/Use_Cases func PublicSuffix(domain string) (publicSuffix string, icann bool) { lo, hi := uint32(0), uint32(numTLD) - s, suffix, wildcard := domain, len(domain), false + s, suffix, icannNode, wildcard := domain, len(domain), false, false loop: for { dot := strings.LastIndex(s, ".") if wildcard { + icann = icannNode suffix = 1 + dot } if lo == hi { @@ -97,7 +101,7 @@ loop: } u := nodes[f] >> (nodesBitsTextOffset + nodesBitsTextLength) - icann = u&(1<>= nodesBitsICANN u = children[u&(1<>= childrenBitsNodeType wildcard = u&(1<= len(rules) { + t.Fatal("no Private rules") + } + // Check the last ICANN and first Private rules. If the underlying public + // suffix list changes, we may need to update these hard-coded checks. + if got, want := rules[numICANNRules-1], "zuerich"; got != want { + t.Errorf("last ICANN rule: got %q, wawnt %q", got, want) + } + if got, want := rules[numICANNRules], "cc.ua"; got != want { + t.Errorf("first Private rule: got %q, wawnt %q", got, want) + } +} + +type slowPublicSuffixRule struct { + ruleParts []string + icann bool +} + // slowPublicSuffix implements the canonical (but O(number of rules)) public // suffix algorithm described at http://publicsuffix.org/list/. // @@ -269,7 +347,7 @@ func TestSlowPublicSuffix(t *testing.T) { // // This function returns the public suffix, not the registrable domain, and so // it stops after step 6. -func slowPublicSuffix(domain string) string { +func slowPublicSuffix(domain string) (string, bool) { match := func(rulePart, domainPart string) bool { switch rulePart[0] { case '*': @@ -281,10 +359,10 @@ func slowPublicSuffix(domain string) string { } domainParts := strings.Split(domain, ".") - var matchingRules [][]string + var matchingRules []slowPublicSuffixRule loop: - for _, rule := range rules { + for i, rule := range rules { ruleParts := strings.Split(rule, ".") if len(domainParts) < len(ruleParts) { continue @@ -296,36 +374,43 @@ loop: continue loop } } - matchingRules = append(matchingRules, ruleParts) + matchingRules = append(matchingRules, slowPublicSuffixRule{ + ruleParts: ruleParts, + icann: i < numICANNRules, + }) } if len(matchingRules) == 0 { - matchingRules = append(matchingRules, []string{"*"}) + matchingRules = append(matchingRules, slowPublicSuffixRule{ + ruleParts: []string{"*"}, + icann: false, + }) } else { sort.Sort(byPriority(matchingRules)) } + prevailing := matchingRules[0] - if prevailing[0][0] == '!' { - prevailing = prevailing[1:] + if prevailing.ruleParts[0][0] == '!' { + prevailing.ruleParts = prevailing.ruleParts[1:] } - if prevailing[0][0] == '*' { - replaced := domainParts[len(domainParts)-len(prevailing)] - prevailing = append([]string{replaced}, prevailing[1:]...) + if prevailing.ruleParts[0][0] == '*' { + replaced := domainParts[len(domainParts)-len(prevailing.ruleParts)] + prevailing.ruleParts = append([]string{replaced}, prevailing.ruleParts[1:]...) } - return strings.Join(prevailing, ".") + return strings.Join(prevailing.ruleParts, "."), prevailing.icann } -type byPriority [][]string +type byPriority []slowPublicSuffixRule func (b byPriority) Len() int { return len(b) } func (b byPriority) Swap(i, j int) { b[i], b[j] = b[j], b[i] } func (b byPriority) Less(i, j int) bool { - if b[i][0][0] == '!' { + if b[i].ruleParts[0][0] == '!' { return true } - if b[j][0][0] == '!' { + if b[j].ruleParts[0][0] == '!' { return false } - return len(b[i]) > len(b[j]) + return len(b[i].ruleParts) > len(b[j].ruleParts) } // eTLDPlusOneTestCases come from diff --git a/vendor/golang.org/x/net/publicsuffix/table_test.go b/vendor/golang.org/x/net/publicsuffix/table_test.go index d2c4ea96c..97ca2c917 100644 --- a/vendor/golang.org/x/net/publicsuffix/table_test.go +++ b/vendor/golang.org/x/net/publicsuffix/table_test.go @@ -2,6 +2,8 @@ package publicsuffix +const numICANNRules = 7334 + var rules = [...]string{ "ac", "com.ac", diff --git a/vendor/golang.org/x/net/route/message_test.go b/vendor/golang.org/x/net/route/message_test.go index e848dabf4..9a8d2c47e 100644 --- a/vendor/golang.org/x/net/route/message_test.go +++ b/vendor/golang.org/x/net/route/message_test.go @@ -162,20 +162,20 @@ func TestRouteMessage(t *testing.T) { { Type: sysRTM_GET, Addrs: []Addr{ - &Inet4Addr{IP: [4]byte{127, 0, 0, 1}}, - nil, - nil, - nil, - &LinkAddr{}, - &Inet4Addr{}, - nil, - &Inet4Addr{}, + sysRTAX_DST: &Inet4Addr{IP: [4]byte{127, 0, 0, 1}}, + sysRTAX_GATEWAY: nil, + sysRTAX_NETMASK: nil, + sysRTAX_GENMASK: nil, + sysRTAX_IFP: &LinkAddr{}, + sysRTAX_IFA: &Inet4Addr{}, + sysRTAX_AUTHOR: nil, + sysRTAX_BRD: &Inet4Addr{}, }, }, { Type: sysRTM_GET, Addrs: []Addr{ - &Inet4Addr{IP: [4]byte{127, 0, 0, 1}}, + sysRTAX_DST: &Inet4Addr{IP: [4]byte{127, 0, 0, 1}}, }, }, }...) @@ -184,20 +184,20 @@ func TestRouteMessage(t *testing.T) { { Type: sysRTM_GET, Addrs: []Addr{ - &Inet6Addr{IP: [16]byte{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}}, - nil, - nil, - nil, - &LinkAddr{}, - &Inet6Addr{}, - nil, - &Inet6Addr{}, + sysRTAX_DST: &Inet6Addr{IP: [16]byte{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}}, + sysRTAX_GATEWAY: nil, + sysRTAX_NETMASK: nil, + sysRTAX_GENMASK: nil, + sysRTAX_IFP: &LinkAddr{}, + sysRTAX_IFA: &Inet6Addr{}, + sysRTAX_AUTHOR: nil, + sysRTAX_BRD: &Inet6Addr{}, }, }, { Type: sysRTM_GET, Addrs: []Addr{ - &Inet6Addr{IP: [16]byte{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}}, + sysRTAX_DST: &Inet6Addr{IP: [16]byte{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}}, }, }, }...) @@ -223,9 +223,8 @@ func TestRouteMessage(t *testing.T) { t.Fatalf("%v: %v", m, err) } for _, rm := range rms { - err := rm.(*RouteMessage).Err - if err != nil { - t.Errorf("%v: %v", m, err) + if rm, ok := rm.(*RouteMessage); ok && rm.Err != nil { + t.Errorf("%v: %v", m, rm.Err) } } ss, err := msgs(rms).validate() diff --git a/vendor/golang.org/x/net/route/route.go b/vendor/golang.org/x/net/route/route.go index 081da0d5c..8cb64f789 100644 --- a/vendor/golang.org/x/net/route/route.go +++ b/vendor/golang.org/x/net/route/route.go @@ -8,8 +8,8 @@ // packet routing facilities on BSD variants. // // The package supports any version of Darwin, any version of -// DragonFly BSD, FreeBSD 7 through 11, NetBSD 6 and above, and -// OpenBSD 5.6 and above. +// DragonFly BSD, FreeBSD 7 and above, NetBSD 6 and above, and OpenBSD +// 5.6 and above. package route import ( diff --git a/vendor/golang.org/x/net/route/zsys_freebsd_arm64.go b/vendor/golang.org/x/net/route/zsys_freebsd_arm64.go new file mode 100644 index 000000000..4c639b82e --- /dev/null +++ b/vendor/golang.org/x/net/route/zsys_freebsd_arm64.go @@ -0,0 +1,123 @@ +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs defs_freebsd.go + +package route + +const ( + sysAF_UNSPEC = 0x0 + sysAF_INET = 0x2 + sysAF_ROUTE = 0x11 + sysAF_LINK = 0x12 + sysAF_INET6 = 0x1c + + sysSOCK_RAW = 0x3 + + sysNET_RT_DUMP = 0x1 + sysNET_RT_FLAGS = 0x2 + sysNET_RT_IFLIST = 0x3 + sysNET_RT_IFMALIST = 0x4 + sysNET_RT_IFLISTL = 0x5 +) + +const ( + sysCTL_MAXNAME = 0x18 + + sysCTL_UNSPEC = 0x0 + sysCTL_KERN = 0x1 + sysCTL_VM = 0x2 + sysCTL_VFS = 0x3 + sysCTL_NET = 0x4 + sysCTL_DEBUG = 0x5 + sysCTL_HW = 0x6 + sysCTL_MACHDEP = 0x7 + sysCTL_USER = 0x8 + sysCTL_P1003_1B = 0x9 +) + +const ( + sysRTM_VERSION = 0x5 + + sysRTM_ADD = 0x1 + sysRTM_DELETE = 0x2 + sysRTM_CHANGE = 0x3 + sysRTM_GET = 0x4 + sysRTM_LOSING = 0x5 + sysRTM_REDIRECT = 0x6 + sysRTM_MISS = 0x7 + sysRTM_LOCK = 0x8 + sysRTM_RESOLVE = 0xb + sysRTM_NEWADDR = 0xc + sysRTM_DELADDR = 0xd + sysRTM_IFINFO = 0xe + sysRTM_NEWMADDR = 0xf + sysRTM_DELMADDR = 0x10 + sysRTM_IFANNOUNCE = 0x11 + sysRTM_IEEE80211 = 0x12 + + sysRTA_DST = 0x1 + sysRTA_GATEWAY = 0x2 + sysRTA_NETMASK = 0x4 + sysRTA_GENMASK = 0x8 + sysRTA_IFP = 0x10 + sysRTA_IFA = 0x20 + sysRTA_AUTHOR = 0x40 + sysRTA_BRD = 0x80 + + sysRTAX_DST = 0x0 + sysRTAX_GATEWAY = 0x1 + sysRTAX_NETMASK = 0x2 + sysRTAX_GENMASK = 0x3 + sysRTAX_IFP = 0x4 + sysRTAX_IFA = 0x5 + sysRTAX_AUTHOR = 0x6 + sysRTAX_BRD = 0x7 + sysRTAX_MAX = 0x8 +) + +const ( + sizeofIfMsghdrlFreeBSD10 = 0xb0 + sizeofIfaMsghdrFreeBSD10 = 0x14 + sizeofIfaMsghdrlFreeBSD10 = 0xb0 + sizeofIfmaMsghdrFreeBSD10 = 0x10 + sizeofIfAnnouncemsghdrFreeBSD10 = 0x18 + + sizeofRtMsghdrFreeBSD10 = 0x98 + sizeofRtMetricsFreeBSD10 = 0x70 + + sizeofIfMsghdrFreeBSD7 = 0xa8 + sizeofIfMsghdrFreeBSD8 = 0xa8 + sizeofIfMsghdrFreeBSD9 = 0xa8 + sizeofIfMsghdrFreeBSD10 = 0xa8 + sizeofIfMsghdrFreeBSD11 = 0xa8 + + sizeofIfDataFreeBSD7 = 0x98 + sizeofIfDataFreeBSD8 = 0x98 + sizeofIfDataFreeBSD9 = 0x98 + sizeofIfDataFreeBSD10 = 0x98 + sizeofIfDataFreeBSD11 = 0x98 + + sizeofIfMsghdrlFreeBSD10Emu = 0xb0 + sizeofIfaMsghdrFreeBSD10Emu = 0x14 + sizeofIfaMsghdrlFreeBSD10Emu = 0xb0 + sizeofIfmaMsghdrFreeBSD10Emu = 0x10 + sizeofIfAnnouncemsghdrFreeBSD10Emu = 0x18 + + sizeofRtMsghdrFreeBSD10Emu = 0x98 + sizeofRtMetricsFreeBSD10Emu = 0x70 + + sizeofIfMsghdrFreeBSD7Emu = 0xa8 + sizeofIfMsghdrFreeBSD8Emu = 0xa8 + sizeofIfMsghdrFreeBSD9Emu = 0xa8 + sizeofIfMsghdrFreeBSD10Emu = 0xa8 + sizeofIfMsghdrFreeBSD11Emu = 0xa8 + + sizeofIfDataFreeBSD7Emu = 0x98 + sizeofIfDataFreeBSD8Emu = 0x98 + sizeofIfDataFreeBSD9Emu = 0x98 + sizeofIfDataFreeBSD10Emu = 0x98 + sizeofIfDataFreeBSD11Emu = 0x98 + + sizeofSockaddrStorage = 0x80 + sizeofSockaddrInet = 0x10 + sizeofSockaddrInet6 = 0x1c +) diff --git a/vendor/golang.org/x/net/trace/trace.go b/vendor/golang.org/x/net/trace/trace.go index 43711c67d..3ebf6f2da 100644 --- a/vendor/golang.org/x/net/trace/trace.go +++ b/vendor/golang.org/x/net/trace/trace.go @@ -86,6 +86,12 @@ import ( // FOR DEBUGGING ONLY. This will slow down the program. var DebugUseAfterFinish = false +// HTTP ServeMux paths. +const ( + debugRequestsPath = "/debug/requests" + debugEventsPath = "/debug/events" +) + // AuthRequest determines whether a specific request is permitted to load the // /debug/requests or /debug/events pages. // @@ -112,8 +118,8 @@ var AuthRequest = func(req *http.Request) (any, sensitive bool) { } func init() { - _, pat := http.DefaultServeMux.Handler(&http.Request{URL: &url.URL{Path: "/debug/requests"}}) - if pat != "" { + _, pat := http.DefaultServeMux.Handler(&http.Request{URL: &url.URL{Path: debugRequestsPath}}) + if pat == debugRequestsPath { panic("/debug/requests is already registered. You may have two independent copies of " + "golang.org/x/net/trace in your binary, trying to maintain separate state. This may " + "involve a vendored copy of golang.org/x/net/trace.") @@ -121,8 +127,8 @@ func init() { // TODO(jbd): Serve Traces from /debug/traces in the future? // There is no requirement for a request to be present to have traces. - http.HandleFunc("/debug/requests", Traces) - http.HandleFunc("/debug/events", Events) + http.HandleFunc(debugRequestsPath, Traces) + http.HandleFunc(debugEventsPath, Events) } // NewContext returns a copy of the parent context diff --git a/vendor/golang.org/x/oauth2/.travis.yml b/vendor/golang.org/x/oauth2/.travis.yml new file mode 100644 index 000000000..fa139db22 --- /dev/null +++ b/vendor/golang.org/x/oauth2/.travis.yml @@ -0,0 +1,13 @@ +language: go + +go: + - tip + +install: + - export GOPATH="$HOME/gopath" + - mkdir -p "$GOPATH/src/golang.org/x" + - mv "$TRAVIS_BUILD_DIR" "$GOPATH/src/golang.org/x/oauth2" + - go get -v -t -d golang.org/x/oauth2/... + +script: + - go test -v golang.org/x/oauth2/... diff --git a/vendor/golang.org/x/oauth2/AUTHORS b/vendor/golang.org/x/oauth2/AUTHORS new file mode 100644 index 000000000..15167cd74 --- /dev/null +++ b/vendor/golang.org/x/oauth2/AUTHORS @@ -0,0 +1,3 @@ +# This source code refers to The Go Authors for copyright purposes. +# The master list of authors is in the main Go distribution, +# visible at http://tip.golang.org/AUTHORS. diff --git a/vendor/golang.org/x/oauth2/CONTRIBUTING.md b/vendor/golang.org/x/oauth2/CONTRIBUTING.md new file mode 100644 index 000000000..dfbed62cf --- /dev/null +++ b/vendor/golang.org/x/oauth2/CONTRIBUTING.md @@ -0,0 +1,26 @@ +# Contributing to Go + +Go is an open source project. + +It is the work of hundreds of contributors. We appreciate your help! + +## Filing issues + +When [filing an issue](https://github.com/golang/oauth2/issues), make sure to answer these five questions: + +1. What version of Go are you using (`go version`)? +2. What operating system and processor architecture are you using? +3. What did you do? +4. What did you expect to see? +5. What did you see instead? + +General questions should go to the [golang-nuts mailing list](https://groups.google.com/group/golang-nuts) instead of the issue tracker. +The gophers there will answer or ask you to file an issue if you've tripped over a bug. + +## Contributing code + +Please read the [Contribution Guidelines](https://golang.org/doc/contribute.html) +before sending patches. + +Unless otherwise noted, the Go source files are distributed under +the BSD-style license found in the LICENSE file. diff --git a/vendor/golang.org/x/oauth2/CONTRIBUTORS b/vendor/golang.org/x/oauth2/CONTRIBUTORS new file mode 100644 index 000000000..1c4577e96 --- /dev/null +++ b/vendor/golang.org/x/oauth2/CONTRIBUTORS @@ -0,0 +1,3 @@ +# This source code was written by the Go contributors. +# The master list of contributors is in the main Go distribution, +# visible at http://tip.golang.org/CONTRIBUTORS. diff --git a/vendor/golang.org/x/oauth2/LICENSE b/vendor/golang.org/x/oauth2/LICENSE new file mode 100644 index 000000000..6a66aea5e --- /dev/null +++ b/vendor/golang.org/x/oauth2/LICENSE @@ -0,0 +1,27 @@ +Copyright (c) 2009 The Go Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/golang.org/x/oauth2/README.md b/vendor/golang.org/x/oauth2/README.md new file mode 100644 index 000000000..68f436ed9 --- /dev/null +++ b/vendor/golang.org/x/oauth2/README.md @@ -0,0 +1,86 @@ +# OAuth2 for Go + +[![Build Status](https://travis-ci.org/golang/oauth2.svg?branch=master)](https://travis-ci.org/golang/oauth2) +[![GoDoc](https://godoc.org/golang.org/x/oauth2?status.svg)](https://godoc.org/golang.org/x/oauth2) + +oauth2 package contains a client implementation for OAuth 2.0 spec. + +## Installation + +~~~~ +go get golang.org/x/oauth2 +~~~~ + +Or you can manually git clone the repository to +`$(go env GOPATH)/src/golang.org/x/oauth2`. + +See godoc for further documentation and examples. + +* [godoc.org/golang.org/x/oauth2](http://godoc.org/golang.org/x/oauth2) +* [godoc.org/golang.org/x/oauth2/google](http://godoc.org/golang.org/x/oauth2/google) + + +## App Engine + +In change 96e89be (March 2015), we removed the `oauth2.Context2` type in favor +of the [`context.Context`](https://golang.org/x/net/context#Context) type from +the `golang.org/x/net/context` package. Later replaced by the standard `context` package +of the [`context.Context`](https://golang.org/pkg/context#Context) type. + + +This means it's no longer possible to use the "Classic App Engine" +`appengine.Context` type with the `oauth2` package. (You're using +Classic App Engine if you import the package `"appengine"`.) + +To work around this, you may use the new `"google.golang.org/appengine"` +package. This package has almost the same API as the `"appengine"` package, +but it can be fetched with `go get` and used on "Managed VMs" and well as +Classic App Engine. + +See the [new `appengine` package's readme](https://github.com/golang/appengine#updating-a-go-app-engine-app) +for information on updating your app. + +If you don't want to update your entire app to use the new App Engine packages, +you may use both sets of packages in parallel, using only the new packages +with the `oauth2` package. + +```go +import ( + "context" + "golang.org/x/oauth2" + "golang.org/x/oauth2/google" + newappengine "google.golang.org/appengine" + newurlfetch "google.golang.org/appengine/urlfetch" + + "appengine" +) + +func handler(w http.ResponseWriter, r *http.Request) { + var c appengine.Context = appengine.NewContext(r) + c.Infof("Logging a message with the old package") + + var ctx context.Context = newappengine.NewContext(r) + client := &http.Client{ + Transport: &oauth2.Transport{ + Source: google.AppEngineTokenSource(ctx, "scope"), + Base: &newurlfetch.Transport{Context: ctx}, + }, + } + client.Get("...") +} +``` + +## Policy for new packages + +We no longer accept new provider-specific packages in this repo. For +defining provider endpoints and provider-specific OAuth2 behavior, we +encourage you to create packages elsewhere. We'll keep the existing +packages for compatibility. + +## Report Issues / Send Patches + +This repository uses Gerrit for code changes. To learn how to submit changes to +this repository, see https://golang.org/doc/contribute.html. + +The main issue tracker for the oauth2 repository is located at +https://github.com/golang/oauth2/issues. diff --git a/vendor/golang.org/x/oauth2/amazon/amazon.go b/vendor/golang.org/x/oauth2/amazon/amazon.go new file mode 100644 index 000000000..d21da11af --- /dev/null +++ b/vendor/golang.org/x/oauth2/amazon/amazon.go @@ -0,0 +1,16 @@ +// Copyright 2017 The oauth2 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 amazon provides constants for using OAuth2 to access Amazon. +package amazon + +import ( + "golang.org/x/oauth2" +) + +// Endpoint is Amazon's OAuth 2.0 endpoint. +var Endpoint = oauth2.Endpoint{ + AuthURL: "https://www.amazon.com/ap/oa", + TokenURL: "https://api.amazon.com/auth/o2/token", +} diff --git a/vendor/golang.org/x/oauth2/bitbucket/bitbucket.go b/vendor/golang.org/x/oauth2/bitbucket/bitbucket.go new file mode 100644 index 000000000..44af1f1a9 --- /dev/null +++ b/vendor/golang.org/x/oauth2/bitbucket/bitbucket.go @@ -0,0 +1,16 @@ +// Copyright 2015 The oauth2 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 bitbucket provides constants for using OAuth2 to access Bitbucket. +package bitbucket + +import ( + "golang.org/x/oauth2" +) + +// Endpoint is Bitbucket's OAuth 2.0 endpoint. +var Endpoint = oauth2.Endpoint{ + AuthURL: "https://bitbucket.org/site/oauth2/authorize", + TokenURL: "https://bitbucket.org/site/oauth2/access_token", +} diff --git a/vendor/golang.org/x/oauth2/cern/cern.go b/vendor/golang.org/x/oauth2/cern/cern.go new file mode 100644 index 000000000..8be718078 --- /dev/null +++ b/vendor/golang.org/x/oauth2/cern/cern.go @@ -0,0 +1,16 @@ +// Copyright 2018 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 cern provides constants for using OAuth2 to access CERN services. +package cern // import "golang.org/x/oauth2/cern" + +import ( + "golang.org/x/oauth2" +) + +// Endpoint is CERN's OAuth 2.0 endpoint. +var Endpoint = oauth2.Endpoint{ + AuthURL: "https://oauth.web.cern.ch/OAuth/Authorize", + TokenURL: "https://oauth.web.cern.ch/OAuth/Token", +} diff --git a/vendor/golang.org/x/oauth2/clientcredentials/clientcredentials.go b/vendor/golang.org/x/oauth2/clientcredentials/clientcredentials.go new file mode 100644 index 000000000..3c816bb8b --- /dev/null +++ b/vendor/golang.org/x/oauth2/clientcredentials/clientcredentials.go @@ -0,0 +1,112 @@ +// Copyright 2014 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 clientcredentials implements the OAuth2.0 "client credentials" token flow, +// also known as the "two-legged OAuth 2.0". +// +// This should be used when the client is acting on its own behalf or when the client +// is the resource owner. It may also be used when requesting access to protected +// resources based on an authorization previously arranged with the authorization +// server. +// +// See https://tools.ietf.org/html/rfc6749#section-4.4 +package clientcredentials // import "golang.org/x/oauth2/clientcredentials" + +import ( + "context" + "fmt" + "net/http" + "net/url" + "strings" + + "golang.org/x/oauth2" + "golang.org/x/oauth2/internal" +) + +// Config describes a 2-legged OAuth2 flow, with both the +// client application information and the server's endpoint URLs. +type Config struct { + // ClientID is the application's ID. + ClientID string + + // ClientSecret is the application's secret. + ClientSecret string + + // TokenURL is the resource server's token endpoint + // URL. This is a constant specific to each server. + TokenURL string + + // Scope specifies optional requested permissions. + Scopes []string + + // EndpointParams specifies additional parameters for requests to the token endpoint. + EndpointParams url.Values +} + +// Token uses client credentials to retrieve a token. +// +// The provided context optionally controls which HTTP client is used. See the oauth2.HTTPClient variable. +func (c *Config) Token(ctx context.Context) (*oauth2.Token, error) { + return c.TokenSource(ctx).Token() +} + +// Client returns an HTTP client using the provided token. +// The token will auto-refresh as necessary. +// +// The provided context optionally controls which HTTP client +// is returned. See the oauth2.HTTPClient variable. +// +// The returned Client and its Transport should not be modified. +func (c *Config) Client(ctx context.Context) *http.Client { + return oauth2.NewClient(ctx, c.TokenSource(ctx)) +} + +// TokenSource returns a TokenSource that returns t until t expires, +// automatically refreshing it as necessary using the provided context and the +// client ID and client secret. +// +// Most users will use Config.Client instead. +func (c *Config) TokenSource(ctx context.Context) oauth2.TokenSource { + source := &tokenSource{ + ctx: ctx, + conf: c, + } + return oauth2.ReuseTokenSource(nil, source) +} + +type tokenSource struct { + ctx context.Context + conf *Config +} + +// Token refreshes the token by using a new client credentials request. +// tokens received this way do not include a refresh token +func (c *tokenSource) Token() (*oauth2.Token, error) { + v := url.Values{ + "grant_type": {"client_credentials"}, + } + if len(c.conf.Scopes) > 0 { + v.Set("scope", strings.Join(c.conf.Scopes, " ")) + } + for k, p := range c.conf.EndpointParams { + if _, ok := v[k]; ok { + return nil, fmt.Errorf("oauth2: cannot overwrite parameter %q", k) + } + v[k] = p + } + tk, err := internal.RetrieveToken(c.ctx, c.conf.ClientID, c.conf.ClientSecret, c.conf.TokenURL, v) + if err != nil { + if rErr, ok := err.(*internal.RetrieveError); ok { + return nil, (*oauth2.RetrieveError)(rErr) + } + return nil, err + } + t := &oauth2.Token{ + AccessToken: tk.AccessToken, + TokenType: tk.TokenType, + RefreshToken: tk.RefreshToken, + Expiry: tk.Expiry, + } + return t.WithExtra(tk.Raw), nil +} diff --git a/vendor/golang.org/x/oauth2/clientcredentials/clientcredentials_test.go b/vendor/golang.org/x/oauth2/clientcredentials/clientcredentials_test.go new file mode 100644 index 000000000..108520c16 --- /dev/null +++ b/vendor/golang.org/x/oauth2/clientcredentials/clientcredentials_test.go @@ -0,0 +1,97 @@ +// Copyright 2014 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 clientcredentials + +import ( + "context" + "io/ioutil" + "net/http" + "net/http/httptest" + "net/url" + "testing" +) + +func newConf(serverURL string) *Config { + return &Config{ + ClientID: "CLIENT_ID", + ClientSecret: "CLIENT_SECRET", + Scopes: []string{"scope1", "scope2"}, + TokenURL: serverURL + "/token", + EndpointParams: url.Values{"audience": {"audience1"}}, + } +} + +type mockTransport struct { + rt func(req *http.Request) (resp *http.Response, err error) +} + +func (t *mockTransport) RoundTrip(req *http.Request) (resp *http.Response, err error) { + return t.rt(req) +} + +func TestTokenRequest(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if r.URL.String() != "/token" { + t.Errorf("authenticate client request URL = %q; want %q", r.URL, "/token") + } + headerAuth := r.Header.Get("Authorization") + if headerAuth != "Basic Q0xJRU5UX0lEOkNMSUVOVF9TRUNSRVQ=" { + t.Errorf("Unexpected authorization header, %v is found.", headerAuth) + } + if got, want := r.Header.Get("Content-Type"), "application/x-www-form-urlencoded"; got != want { + t.Errorf("Content-Type header = %q; want %q", got, want) + } + body, err := ioutil.ReadAll(r.Body) + if err != nil { + r.Body.Close() + } + if err != nil { + t.Errorf("failed reading request body: %s.", err) + } + if string(body) != "audience=audience1&grant_type=client_credentials&scope=scope1+scope2" { + t.Errorf("payload = %q; want %q", string(body), "grant_type=client_credentials&scope=scope1+scope2") + } + w.Header().Set("Content-Type", "application/x-www-form-urlencoded") + w.Write([]byte("access_token=90d64460d14870c08c81352a05dedd3465940a7c&token_type=bearer")) + })) + defer ts.Close() + conf := newConf(ts.URL) + tok, err := conf.Token(context.Background()) + if err != nil { + t.Error(err) + } + if !tok.Valid() { + t.Fatalf("token invalid. got: %#v", tok) + } + if tok.AccessToken != "90d64460d14870c08c81352a05dedd3465940a7c" { + t.Errorf("Access token = %q; want %q", tok.AccessToken, "90d64460d14870c08c81352a05dedd3465940a7c") + } + if tok.TokenType != "bearer" { + t.Errorf("token type = %q; want %q", tok.TokenType, "bearer") + } +} + +func TestTokenRefreshRequest(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if r.URL.String() == "/somethingelse" { + return + } + if r.URL.String() != "/token" { + t.Errorf("Unexpected token refresh request URL, %v is found.", r.URL) + } + headerContentType := r.Header.Get("Content-Type") + if headerContentType != "application/x-www-form-urlencoded" { + t.Errorf("Unexpected Content-Type header, %v is found.", headerContentType) + } + body, _ := ioutil.ReadAll(r.Body) + if string(body) != "audience=audience1&grant_type=client_credentials&scope=scope1+scope2" { + t.Errorf("Unexpected refresh token payload, %v is found.", string(body)) + } + })) + defer ts.Close() + conf := newConf(ts.URL) + c := conf.Client(context.Background()) + c.Get(ts.URL + "/somethingelse") +} diff --git a/vendor/golang.org/x/oauth2/example_test.go b/vendor/golang.org/x/oauth2/example_test.go new file mode 100644 index 000000000..fc2f793b2 --- /dev/null +++ b/vendor/golang.org/x/oauth2/example_test.go @@ -0,0 +1,89 @@ +// Copyright 2014 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 oauth2_test + +import ( + "context" + "fmt" + "log" + "net/http" + "time" + + "golang.org/x/oauth2" +) + +func ExampleConfig() { + ctx := context.Background() + conf := &oauth2.Config{ + ClientID: "YOUR_CLIENT_ID", + ClientSecret: "YOUR_CLIENT_SECRET", + Scopes: []string{"SCOPE1", "SCOPE2"}, + Endpoint: oauth2.Endpoint{ + AuthURL: "https://provider.com/o/oauth2/auth", + TokenURL: "https://provider.com/o/oauth2/token", + }, + } + + // Redirect user to consent page to ask for permission + // for the scopes specified above. + url := conf.AuthCodeURL("state", oauth2.AccessTypeOffline) + fmt.Printf("Visit the URL for the auth dialog: %v", url) + + // Use the authorization code that is pushed to the redirect + // URL. Exchange will do the handshake to retrieve the + // initial access token. The HTTP Client returned by + // conf.Client will refresh the token as necessary. + var code string + if _, err := fmt.Scan(&code); err != nil { + log.Fatal(err) + } + tok, err := conf.Exchange(ctx, code) + if err != nil { + log.Fatal(err) + } + + client := conf.Client(ctx, tok) + client.Get("...") +} + +func ExampleConfig_customHTTP() { + ctx := context.Background() + + conf := &oauth2.Config{ + ClientID: "YOUR_CLIENT_ID", + ClientSecret: "YOUR_CLIENT_SECRET", + Scopes: []string{"SCOPE1", "SCOPE2"}, + Endpoint: oauth2.Endpoint{ + TokenURL: "https://provider.com/o/oauth2/token", + AuthURL: "https://provider.com/o/oauth2/auth", + }, + } + + // Redirect user to consent page to ask for permission + // for the scopes specified above. + url := conf.AuthCodeURL("state", oauth2.AccessTypeOffline) + fmt.Printf("Visit the URL for the auth dialog: %v", url) + + // Use the authorization code that is pushed to the redirect + // URL. Exchange will do the handshake to retrieve the + // initial access token. The HTTP Client returned by + // conf.Client will refresh the token as necessary. + var code string + if _, err := fmt.Scan(&code); err != nil { + log.Fatal(err) + } + + // Use the custom HTTP client when requesting a token. + httpClient := &http.Client{Timeout: 2 * time.Second} + ctx = context.WithValue(ctx, oauth2.HTTPClient, httpClient) + + tok, err := conf.Exchange(ctx, code) + if err != nil { + log.Fatal(err) + } + + client := conf.Client(ctx, tok) + _ = client +} diff --git a/vendor/golang.org/x/oauth2/facebook/facebook.go b/vendor/golang.org/x/oauth2/facebook/facebook.go new file mode 100644 index 000000000..21c49e7f2 --- /dev/null +++ b/vendor/golang.org/x/oauth2/facebook/facebook.go @@ -0,0 +1,16 @@ +// Copyright 2015 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 facebook provides constants for using OAuth2 to access Facebook. +package facebook // import "golang.org/x/oauth2/facebook" + +import ( + "golang.org/x/oauth2" +) + +// Endpoint is Facebook's OAuth 2.0 endpoint. +var Endpoint = oauth2.Endpoint{ + AuthURL: "https://www.facebook.com/v3.1/dialog/oauth", + TokenURL: "https://graph.facebook.com/v3.1/oauth/access_token", +} diff --git a/vendor/golang.org/x/oauth2/fitbit/fitbit.go b/vendor/golang.org/x/oauth2/fitbit/fitbit.go new file mode 100644 index 000000000..b31b82aca --- /dev/null +++ b/vendor/golang.org/x/oauth2/fitbit/fitbit.go @@ -0,0 +1,16 @@ +// Copyright 2016 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 fitbit provides constants for using OAuth2 to access the Fitbit API. +package fitbit // import "golang.org/x/oauth2/fitbit" + +import ( + "golang.org/x/oauth2" +) + +// Endpoint is the Fitbit API's OAuth 2.0 endpoint. +var Endpoint = oauth2.Endpoint{ + AuthURL: "https://www.fitbit.com/oauth2/authorize", + TokenURL: "https://api.fitbit.com/oauth2/token", +} diff --git a/vendor/golang.org/x/oauth2/foursquare/foursquare.go b/vendor/golang.org/x/oauth2/foursquare/foursquare.go new file mode 100644 index 000000000..d2fa09902 --- /dev/null +++ b/vendor/golang.org/x/oauth2/foursquare/foursquare.go @@ -0,0 +1,16 @@ +// Copyright 2016 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 foursquare provides constants for using OAuth2 to access Foursquare. +package foursquare // import "golang.org/x/oauth2/foursquare" + +import ( + "golang.org/x/oauth2" +) + +// Endpoint is Foursquare's OAuth 2.0 endpoint. +var Endpoint = oauth2.Endpoint{ + AuthURL: "https://foursquare.com/oauth2/authorize", + TokenURL: "https://foursquare.com/oauth2/access_token", +} diff --git a/vendor/golang.org/x/oauth2/github/github.go b/vendor/golang.org/x/oauth2/github/github.go new file mode 100644 index 000000000..f2978015b --- /dev/null +++ b/vendor/golang.org/x/oauth2/github/github.go @@ -0,0 +1,16 @@ +// Copyright 2014 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 github provides constants for using OAuth2 to access Github. +package github // import "golang.org/x/oauth2/github" + +import ( + "golang.org/x/oauth2" +) + +// Endpoint is Github's OAuth 2.0 endpoint. +var Endpoint = oauth2.Endpoint{ + AuthURL: "https://github.com/login/oauth/authorize", + TokenURL: "https://github.com/login/oauth/access_token", +} diff --git a/vendor/golang.org/x/oauth2/gitlab/gitlab.go b/vendor/golang.org/x/oauth2/gitlab/gitlab.go new file mode 100644 index 000000000..1231d75ac --- /dev/null +++ b/vendor/golang.org/x/oauth2/gitlab/gitlab.go @@ -0,0 +1,16 @@ +// Copyright 2018 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 gitlab provides constants for using OAuth2 to access GitLab. +package gitlab // import "golang.org/x/oauth2/gitlab" + +import ( + "golang.org/x/oauth2" +) + +// Endpoint is GitLab's OAuth 2.0 endpoint. +var Endpoint = oauth2.Endpoint{ + AuthURL: "https://gitlab.com/oauth/authorize", + TokenURL: "https://gitlab.com/oauth/token", +} diff --git a/vendor/golang.org/x/oauth2/go.mod b/vendor/golang.org/x/oauth2/go.mod new file mode 100644 index 000000000..b34578155 --- /dev/null +++ b/vendor/golang.org/x/oauth2/go.mod @@ -0,0 +1,10 @@ +module golang.org/x/oauth2 + +go 1.11 + +require ( + cloud.google.com/go v0.34.0 + golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e + golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4 // indirect + google.golang.org/appengine v1.4.0 +) diff --git a/vendor/golang.org/x/oauth2/go.sum b/vendor/golang.org/x/oauth2/go.sum new file mode 100644 index 000000000..6f0079b0d --- /dev/null +++ b/vendor/golang.org/x/oauth2/go.sum @@ -0,0 +1,12 @@ +cloud.google.com/go v0.34.0 h1:eOI3/cP2VTU6uZLDYAoic+eyzzB9YyGmJ7eIjl8rOPg= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +github.com/golang/protobuf v1.2.0 h1:P3YflyNX/ehuJFLhxviNdFxQPkGK5cDcApsge1SqnvM= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e h1:bRhVy7zSSasaqNksaRZiA5EEI+Ei4I1nO5Jh72wfHlg= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4 h1:YUO/7uOKsKeq9UokNS62b8FYywz3ker1l1vDZRCRefw= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +google.golang.org/appengine v1.4.0 h1:/wp5JvzpHIxhs/dumFmF7BXTf3Z+dd4uXta4kVyO508= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= diff --git a/vendor/golang.org/x/oauth2/google/appengine.go b/vendor/golang.org/x/oauth2/google/appengine.go new file mode 100644 index 000000000..feb1157b1 --- /dev/null +++ b/vendor/golang.org/x/oauth2/google/appengine.go @@ -0,0 +1,38 @@ +// Copyright 2014 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 google + +import ( + "context" + "time" + + "golang.org/x/oauth2" +) + +// Set at init time by appengine_gen1.go. If nil, we're not on App Engine standard first generation (<= Go 1.9) or App Engine flexible. +var appengineTokenFunc func(c context.Context, scopes ...string) (token string, expiry time.Time, err error) + +// Set at init time by appengine_gen1.go. If nil, we're not on App Engine standard first generation (<= Go 1.9) or App Engine flexible. +var appengineAppIDFunc func(c context.Context) string + +// AppEngineTokenSource returns a token source that fetches tokens from either +// the current application's service account or from the metadata server, +// depending on the App Engine environment. See below for environment-specific +// details. If you are implementing a 3-legged OAuth 2.0 flow on App Engine that +// involves user accounts, see oauth2.Config instead. +// +// First generation App Engine runtimes (<= Go 1.9): +// AppEngineTokenSource returns a token source that fetches tokens issued to the +// current App Engine application's service account. The provided context must have +// come from appengine.NewContext. +// +// Second generation App Engine runtimes (>= Go 1.11) and App Engine flexible: +// AppEngineTokenSource is DEPRECATED on second generation runtimes and on the +// flexible environment. It delegates to ComputeTokenSource, and the provided +// context and scopes are not used. Please use DefaultTokenSource (or ComputeTokenSource, +// which DefaultTokenSource will use in this case) instead. +func AppEngineTokenSource(ctx context.Context, scope ...string) oauth2.TokenSource { + return appEngineTokenSource(ctx, scope...) +} diff --git a/vendor/golang.org/x/oauth2/google/appengine_gen1.go b/vendor/golang.org/x/oauth2/google/appengine_gen1.go new file mode 100644 index 000000000..83dacac32 --- /dev/null +++ b/vendor/golang.org/x/oauth2/google/appengine_gen1.go @@ -0,0 +1,77 @@ +// Copyright 2018 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. + +// +build appengine + +// This file applies to App Engine first generation runtimes (<= Go 1.9). + +package google + +import ( + "context" + "sort" + "strings" + "sync" + + "golang.org/x/oauth2" + "google.golang.org/appengine" +) + +func init() { + appengineTokenFunc = appengine.AccessToken + appengineAppIDFunc = appengine.AppID +} + +// See comment on AppEngineTokenSource in appengine.go. +func appEngineTokenSource(ctx context.Context, scope ...string) oauth2.TokenSource { + scopes := append([]string{}, scope...) + sort.Strings(scopes) + return &gaeTokenSource{ + ctx: ctx, + scopes: scopes, + key: strings.Join(scopes, " "), + } +} + +// aeTokens helps the fetched tokens to be reused until their expiration. +var ( + aeTokensMu sync.Mutex + aeTokens = make(map[string]*tokenLock) // key is space-separated scopes +) + +type tokenLock struct { + mu sync.Mutex // guards t; held while fetching or updating t + t *oauth2.Token +} + +type gaeTokenSource struct { + ctx context.Context + scopes []string + key string // to aeTokens map; space-separated scopes +} + +func (ts *gaeTokenSource) Token() (*oauth2.Token, error) { + aeTokensMu.Lock() + tok, ok := aeTokens[ts.key] + if !ok { + tok = &tokenLock{} + aeTokens[ts.key] = tok + } + aeTokensMu.Unlock() + + tok.mu.Lock() + defer tok.mu.Unlock() + if tok.t.Valid() { + return tok.t, nil + } + access, exp, err := appengineTokenFunc(ts.ctx, ts.scopes...) + if err != nil { + return nil, err + } + tok.t = &oauth2.Token{ + AccessToken: access, + Expiry: exp, + } + return tok.t, nil +} diff --git a/vendor/golang.org/x/oauth2/google/appengine_gen2_flex.go b/vendor/golang.org/x/oauth2/google/appengine_gen2_flex.go new file mode 100644 index 000000000..04c2c2216 --- /dev/null +++ b/vendor/golang.org/x/oauth2/google/appengine_gen2_flex.go @@ -0,0 +1,27 @@ +// Copyright 2018 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. + +// +build !appengine + +// This file applies to App Engine second generation runtimes (>= Go 1.11) and App Engine flexible. + +package google + +import ( + "context" + "log" + "sync" + + "golang.org/x/oauth2" +) + +var logOnce sync.Once // only spam about deprecation once + +// See comment on AppEngineTokenSource in appengine.go. +func appEngineTokenSource(ctx context.Context, scope ...string) oauth2.TokenSource { + logOnce.Do(func() { + log.Print("google: AppEngineTokenSource is deprecated on App Engine standard second generation runtimes (>= Go 1.11) and App Engine flexible. Please use DefaultTokenSource or ComputeTokenSource.") + }) + return ComputeTokenSource("") +} diff --git a/vendor/golang.org/x/oauth2/google/default.go b/vendor/golang.org/x/oauth2/google/default.go new file mode 100644 index 000000000..5087d845f --- /dev/null +++ b/vendor/golang.org/x/oauth2/google/default.go @@ -0,0 +1,155 @@ +// Copyright 2015 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 google + +import ( + "context" + "encoding/json" + "fmt" + "io/ioutil" + "net/http" + "os" + "path/filepath" + "runtime" + + "cloud.google.com/go/compute/metadata" + "golang.org/x/oauth2" +) + +// Credentials holds Google credentials, including "Application Default Credentials". +// For more details, see: +// https://developers.google.com/accounts/docs/application-default-credentials +type Credentials struct { + ProjectID string // may be empty + TokenSource oauth2.TokenSource + + // JSON contains the raw bytes from a JSON credentials file. + // This field may be nil if authentication is provided by the + // environment and not with a credentials file, e.g. when code is + // running on Google Cloud Platform. + JSON []byte +} + +// DefaultCredentials is the old name of Credentials. +// +// Deprecated: use Credentials instead. +type DefaultCredentials = Credentials + +// DefaultClient returns an HTTP Client that uses the +// DefaultTokenSource to obtain authentication credentials. +func DefaultClient(ctx context.Context, scope ...string) (*http.Client, error) { + ts, err := DefaultTokenSource(ctx, scope...) + if err != nil { + return nil, err + } + return oauth2.NewClient(ctx, ts), nil +} + +// DefaultTokenSource returns the token source for +// "Application Default Credentials". +// It is a shortcut for FindDefaultCredentials(ctx, scope).TokenSource. +func DefaultTokenSource(ctx context.Context, scope ...string) (oauth2.TokenSource, error) { + creds, err := FindDefaultCredentials(ctx, scope...) + if err != nil { + return nil, err + } + return creds.TokenSource, nil +} + +// FindDefaultCredentials searches for "Application Default Credentials". +// +// It looks for credentials in the following places, +// preferring the first location found: +// +// 1. A JSON file whose path is specified by the +// GOOGLE_APPLICATION_CREDENTIALS environment variable. +// 2. A JSON file in a location known to the gcloud command-line tool. +// On Windows, this is %APPDATA%/gcloud/application_default_credentials.json. +// On other systems, $HOME/.config/gcloud/application_default_credentials.json. +// 3. On Google App Engine standard first generation runtimes (<= Go 1.9) it uses +// the appengine.AccessToken function. +// 4. On Google Compute Engine, Google App Engine standard second generation runtimes +// (>= Go 1.11), and Google App Engine flexible environment, it fetches +// credentials from the metadata server. +// (In this final case any provided scopes are ignored.) +func FindDefaultCredentials(ctx context.Context, scopes ...string) (*Credentials, error) { + // First, try the environment variable. + const envVar = "GOOGLE_APPLICATION_CREDENTIALS" + if filename := os.Getenv(envVar); filename != "" { + creds, err := readCredentialsFile(ctx, filename, scopes) + if err != nil { + return nil, fmt.Errorf("google: error getting credentials using %v environment variable: %v", envVar, err) + } + return creds, nil + } + + // Second, try a well-known file. + filename := wellKnownFile() + if creds, err := readCredentialsFile(ctx, filename, scopes); err == nil { + return creds, nil + } else if !os.IsNotExist(err) { + return nil, fmt.Errorf("google: error getting credentials using well-known file (%v): %v", filename, err) + } + + // Third, if we're on a Google App Engine standard first generation runtime (<= Go 1.9) + // use those credentials. App Engine standard second generation runtimes (>= Go 1.11) + // and App Engine flexible use ComputeTokenSource and the metadata server. + if appengineTokenFunc != nil { + return &DefaultCredentials{ + ProjectID: appengineAppIDFunc(ctx), + TokenSource: AppEngineTokenSource(ctx, scopes...), + }, nil + } + + // Fourth, if we're on Google Compute Engine, an App Engine standard second generation runtime, + // or App Engine flexible, use the metadata server. + if metadata.OnGCE() { + id, _ := metadata.ProjectID() + return &DefaultCredentials{ + ProjectID: id, + TokenSource: ComputeTokenSource(""), + }, nil + } + + // None are found; return helpful error. + const url = "https://developers.google.com/accounts/docs/application-default-credentials" + return nil, fmt.Errorf("google: could not find default credentials. See %v for more information.", url) +} + +// CredentialsFromJSON obtains Google credentials from a JSON value. The JSON can +// represent either a Google Developers Console client_credentials.json file (as in +// ConfigFromJSON) or a Google Developers service account key file (as in +// JWTConfigFromJSON). +func CredentialsFromJSON(ctx context.Context, jsonData []byte, scopes ...string) (*Credentials, error) { + var f credentialsFile + if err := json.Unmarshal(jsonData, &f); err != nil { + return nil, err + } + ts, err := f.tokenSource(ctx, append([]string(nil), scopes...)) + if err != nil { + return nil, err + } + return &DefaultCredentials{ + ProjectID: f.ProjectID, + TokenSource: ts, + JSON: jsonData, + }, nil +} + +func wellKnownFile() string { + const f = "application_default_credentials.json" + if runtime.GOOS == "windows" { + return filepath.Join(os.Getenv("APPDATA"), "gcloud", f) + } + return filepath.Join(guessUnixHomeDir(), ".config", "gcloud", f) +} + +func readCredentialsFile(ctx context.Context, filename string, scopes []string) (*DefaultCredentials, error) { + b, err := ioutil.ReadFile(filename) + if err != nil { + return nil, err + } + return CredentialsFromJSON(ctx, b, scopes...) +} diff --git a/vendor/golang.org/x/oauth2/google/doc.go b/vendor/golang.org/x/oauth2/google/doc.go new file mode 100644 index 000000000..73be62903 --- /dev/null +++ b/vendor/golang.org/x/oauth2/google/doc.go @@ -0,0 +1,40 @@ +// Copyright 2018 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 google provides support for making OAuth2 authorized and authenticated +// HTTP requests to Google APIs. It supports the Web server flow, client-side +// credentials, service accounts, Google Compute Engine service accounts, and Google +// App Engine service accounts. +// +// A brief overview of the package follows. For more information, please read +// https://developers.google.com/accounts/docs/OAuth2 +// and +// https://developers.google.com/accounts/docs/application-default-credentials. +// +// OAuth2 Configs +// +// Two functions in this package return golang.org/x/oauth2.Config values from Google credential +// data. Google supports two JSON formats for OAuth2 credentials: one is handled by ConfigFromJSON, +// the other by JWTConfigFromJSON. The returned Config can be used to obtain a TokenSource or +// create an http.Client. +// +// +// Credentials +// +// The Credentials type represents Google credentials, including Application Default +// Credentials. +// +// Use FindDefaultCredentials to obtain Application Default Credentials. +// FindDefaultCredentials looks in some well-known places for a credentials file, and +// will call AppEngineTokenSource or ComputeTokenSource as needed. +// +// DefaultClient and DefaultTokenSource are convenience methods. They first call FindDefaultCredentials, +// then use the credentials to construct an http.Client or an oauth2.TokenSource. +// +// Use CredentialsFromJSON to obtain credentials from either of the two JSON formats +// described in OAuth2 Configs, above. The TokenSource in the returned value is the +// same as the one obtained from the oauth2.Config returned from ConfigFromJSON or +// JWTConfigFromJSON, but the Credentials may contain additional information +// that is useful is some circumstances. +package google // import "golang.org/x/oauth2/google" diff --git a/vendor/golang.org/x/oauth2/google/example_test.go b/vendor/golang.org/x/oauth2/google/example_test.go new file mode 100644 index 000000000..d9c5a104d --- /dev/null +++ b/vendor/golang.org/x/oauth2/google/example_test.go @@ -0,0 +1,162 @@ +// Copyright 2014 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 google_test + +import ( + "context" + "fmt" + "io/ioutil" + "log" + "net/http" + + "golang.org/x/oauth2" + "golang.org/x/oauth2/google" + "golang.org/x/oauth2/jwt" + "google.golang.org/appengine" + "google.golang.org/appengine/urlfetch" +) + +func ExampleDefaultClient() { + client, err := google.DefaultClient(oauth2.NoContext, + "https://www.googleapis.com/auth/devstorage.full_control") + if err != nil { + log.Fatal(err) + } + client.Get("...") +} + +func Example_webServer() { + // Your credentials should be obtained from the Google + // Developer Console (https://console.developers.google.com). + conf := &oauth2.Config{ + ClientID: "YOUR_CLIENT_ID", + ClientSecret: "YOUR_CLIENT_SECRET", + RedirectURL: "YOUR_REDIRECT_URL", + Scopes: []string{ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/blogger", + }, + Endpoint: google.Endpoint, + } + // Redirect user to Google's consent page to ask for permission + // for the scopes specified above. + url := conf.AuthCodeURL("state") + fmt.Printf("Visit the URL for the auth dialog: %v", url) + + // Handle the exchange code to initiate a transport. + tok, err := conf.Exchange(oauth2.NoContext, "authorization-code") + if err != nil { + log.Fatal(err) + } + client := conf.Client(oauth2.NoContext, tok) + client.Get("...") +} + +func ExampleJWTConfigFromJSON() { + // Your credentials should be obtained from the Google + // Developer Console (https://console.developers.google.com). + // Navigate to your project, then see the "Credentials" page + // under "APIs & Auth". + // To create a service account client, click "Create new Client ID", + // select "Service Account", and click "Create Client ID". A JSON + // key file will then be downloaded to your computer. + data, err := ioutil.ReadFile("/path/to/your-project-key.json") + if err != nil { + log.Fatal(err) + } + conf, err := google.JWTConfigFromJSON(data, "https://www.googleapis.com/auth/bigquery") + if err != nil { + log.Fatal(err) + } + // Initiate an http.Client. The following GET request will be + // authorized and authenticated on the behalf of + // your service account. + client := conf.Client(oauth2.NoContext) + client.Get("...") +} + +func ExampleSDKConfig() { + // The credentials will be obtained from the first account that + // has been authorized with `gcloud auth login`. + conf, err := google.NewSDKConfig("") + if err != nil { + log.Fatal(err) + } + // Initiate an http.Client. The following GET request will be + // authorized and authenticated on the behalf of the SDK user. + client := conf.Client(oauth2.NoContext) + client.Get("...") +} + +func Example_serviceAccount() { + // Your credentials should be obtained from the Google + // Developer Console (https://console.developers.google.com). + conf := &jwt.Config{ + Email: "xxx@developer.gserviceaccount.com", + // The contents of your RSA private key or your PEM file + // that contains a private key. + // If you have a p12 file instead, you + // can use `openssl` to export the private key into a pem file. + // + // $ openssl pkcs12 -in key.p12 -passin pass:notasecret -out key.pem -nodes + // + // The field only supports PEM containers with no passphrase. + // The openssl command will convert p12 keys to passphrase-less PEM containers. + PrivateKey: []byte("-----BEGIN RSA PRIVATE KEY-----..."), + Scopes: []string{ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/blogger", + }, + TokenURL: google.JWTTokenURL, + // If you would like to impersonate a user, you can + // create a transport with a subject. The following GET + // request will be made on the behalf of user@example.com. + // Optional. + Subject: "user@example.com", + } + // Initiate an http.Client, the following GET request will be + // authorized and authenticated on the behalf of user@example.com. + client := conf.Client(oauth2.NoContext) + client.Get("...") +} + +func ExampleAppEngineTokenSource() { + var req *http.Request // from the ServeHTTP handler + ctx := appengine.NewContext(req) + client := &http.Client{ + Transport: &oauth2.Transport{ + Source: google.AppEngineTokenSource(ctx, "https://www.googleapis.com/auth/bigquery"), + Base: &urlfetch.Transport{ + Context: ctx, + }, + }, + } + client.Get("...") +} + +func ExampleComputeTokenSource() { + client := &http.Client{ + Transport: &oauth2.Transport{ + // Fetch from Google Compute Engine's metadata server to retrieve + // an access token for the provided account. + // If no account is specified, "default" is used. + Source: google.ComputeTokenSource(""), + }, + } + client.Get("...") +} + +func ExampleCredentialsFromJSON() { + ctx := context.Background() + data, err := ioutil.ReadFile("/path/to/key-file.json") + if err != nil { + log.Fatal(err) + } + creds, err := google.CredentialsFromJSON(ctx, data, "https://www.googleapis.com/auth/bigquery") + if err != nil { + log.Fatal(err) + } + _ = creds // TODO: Use creds. +} diff --git a/vendor/golang.org/x/oauth2/google/google.go b/vendor/golang.org/x/oauth2/google/google.go new file mode 100644 index 000000000..ca7d208d7 --- /dev/null +++ b/vendor/golang.org/x/oauth2/google/google.go @@ -0,0 +1,192 @@ +// Copyright 2014 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 google + +import ( + "context" + "encoding/json" + "errors" + "fmt" + "strings" + "time" + + "cloud.google.com/go/compute/metadata" + "golang.org/x/oauth2" + "golang.org/x/oauth2/jwt" +) + +// Endpoint is Google's OAuth 2.0 endpoint. +var Endpoint = oauth2.Endpoint{ + AuthURL: "https://accounts.google.com/o/oauth2/auth", + TokenURL: "https://accounts.google.com/o/oauth2/token", +} + +// JWTTokenURL is Google's OAuth 2.0 token URL to use with the JWT flow. +const JWTTokenURL = "https://accounts.google.com/o/oauth2/token" + +// ConfigFromJSON uses a Google Developers Console client_credentials.json +// file to construct a config. +// client_credentials.json can be downloaded from +// https://console.developers.google.com, under "Credentials". Download the Web +// application credentials in the JSON format and provide the contents of the +// file as jsonKey. +func ConfigFromJSON(jsonKey []byte, scope ...string) (*oauth2.Config, error) { + type cred struct { + ClientID string `json:"client_id"` + ClientSecret string `json:"client_secret"` + RedirectURIs []string `json:"redirect_uris"` + AuthURI string `json:"auth_uri"` + TokenURI string `json:"token_uri"` + } + var j struct { + Web *cred `json:"web"` + Installed *cred `json:"installed"` + } + if err := json.Unmarshal(jsonKey, &j); err != nil { + return nil, err + } + var c *cred + switch { + case j.Web != nil: + c = j.Web + case j.Installed != nil: + c = j.Installed + default: + return nil, fmt.Errorf("oauth2/google: no credentials found") + } + if len(c.RedirectURIs) < 1 { + return nil, errors.New("oauth2/google: missing redirect URL in the client_credentials.json") + } + return &oauth2.Config{ + ClientID: c.ClientID, + ClientSecret: c.ClientSecret, + RedirectURL: c.RedirectURIs[0], + Scopes: scope, + Endpoint: oauth2.Endpoint{ + AuthURL: c.AuthURI, + TokenURL: c.TokenURI, + }, + }, nil +} + +// JWTConfigFromJSON uses a Google Developers service account JSON key file to read +// the credentials that authorize and authenticate the requests. +// Create a service account on "Credentials" for your project at +// https://console.developers.google.com to download a JSON key file. +func JWTConfigFromJSON(jsonKey []byte, scope ...string) (*jwt.Config, error) { + var f credentialsFile + if err := json.Unmarshal(jsonKey, &f); err != nil { + return nil, err + } + if f.Type != serviceAccountKey { + return nil, fmt.Errorf("google: read JWT from JSON credentials: 'type' field is %q (expected %q)", f.Type, serviceAccountKey) + } + scope = append([]string(nil), scope...) // copy + return f.jwtConfig(scope), nil +} + +// JSON key file types. +const ( + serviceAccountKey = "service_account" + userCredentialsKey = "authorized_user" +) + +// credentialsFile is the unmarshalled representation of a credentials file. +type credentialsFile struct { + Type string `json:"type"` // serviceAccountKey or userCredentialsKey + + // Service Account fields + ClientEmail string `json:"client_email"` + PrivateKeyID string `json:"private_key_id"` + PrivateKey string `json:"private_key"` + TokenURL string `json:"token_uri"` + ProjectID string `json:"project_id"` + + // User Credential fields + // (These typically come from gcloud auth.) + ClientSecret string `json:"client_secret"` + ClientID string `json:"client_id"` + RefreshToken string `json:"refresh_token"` +} + +func (f *credentialsFile) jwtConfig(scopes []string) *jwt.Config { + cfg := &jwt.Config{ + Email: f.ClientEmail, + PrivateKey: []byte(f.PrivateKey), + PrivateKeyID: f.PrivateKeyID, + Scopes: scopes, + TokenURL: f.TokenURL, + } + if cfg.TokenURL == "" { + cfg.TokenURL = JWTTokenURL + } + return cfg +} + +func (f *credentialsFile) tokenSource(ctx context.Context, scopes []string) (oauth2.TokenSource, error) { + switch f.Type { + case serviceAccountKey: + cfg := f.jwtConfig(scopes) + return cfg.TokenSource(ctx), nil + case userCredentialsKey: + cfg := &oauth2.Config{ + ClientID: f.ClientID, + ClientSecret: f.ClientSecret, + Scopes: scopes, + Endpoint: Endpoint, + } + tok := &oauth2.Token{RefreshToken: f.RefreshToken} + return cfg.TokenSource(ctx, tok), nil + case "": + return nil, errors.New("missing 'type' field in credentials") + default: + return nil, fmt.Errorf("unknown credential type: %q", f.Type) + } +} + +// ComputeTokenSource returns a token source that fetches access tokens +// from Google Compute Engine (GCE)'s metadata server. It's only valid to use +// this token source if your program is running on a GCE instance. +// If no account is specified, "default" is used. +// Further information about retrieving access tokens from the GCE metadata +// server can be found at https://cloud.google.com/compute/docs/authentication. +func ComputeTokenSource(account string) oauth2.TokenSource { + return oauth2.ReuseTokenSource(nil, computeSource{account: account}) +} + +type computeSource struct { + account string +} + +func (cs computeSource) Token() (*oauth2.Token, error) { + if !metadata.OnGCE() { + return nil, errors.New("oauth2/google: can't get a token from the metadata service; not running on GCE") + } + acct := cs.account + if acct == "" { + acct = "default" + } + tokenJSON, err := metadata.Get("instance/service-accounts/" + acct + "/token") + if err != nil { + return nil, err + } + var res struct { + AccessToken string `json:"access_token"` + ExpiresInSec int `json:"expires_in"` + TokenType string `json:"token_type"` + } + err = json.NewDecoder(strings.NewReader(tokenJSON)).Decode(&res) + if err != nil { + return nil, fmt.Errorf("oauth2/google: invalid token JSON from metadata: %v", err) + } + if res.ExpiresInSec == 0 || res.AccessToken == "" { + return nil, fmt.Errorf("oauth2/google: incomplete token received from metadata") + } + return &oauth2.Token{ + AccessToken: res.AccessToken, + TokenType: res.TokenType, + Expiry: time.Now().Add(time.Duration(res.ExpiresInSec) * time.Second), + }, nil +} diff --git a/vendor/golang.org/x/oauth2/google/google_test.go b/vendor/golang.org/x/oauth2/google/google_test.go new file mode 100644 index 000000000..287c699e7 --- /dev/null +++ b/vendor/golang.org/x/oauth2/google/google_test.go @@ -0,0 +1,116 @@ +// Copyright 2015 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 google + +import ( + "strings" + "testing" +) + +var webJSONKey = []byte(` +{ + "web": { + "auth_uri": "https://google.com/o/oauth2/auth", + "client_secret": "3Oknc4jS_wA2r9i", + "token_uri": "https://google.com/o/oauth2/token", + "client_email": "222-nprqovg5k43uum874cs9osjt2koe97g8@developer.gserviceaccount.com", + "redirect_uris": ["https://www.example.com/oauth2callback"], + "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/222-nprqovg5k43uum874cs9osjt2koe97g8@developer.gserviceaccount.com", + "client_id": "222-nprqovg5k43uum874cs9osjt2koe97g8.apps.googleusercontent.com", + "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", + "javascript_origins": ["https://www.example.com"] + } +}`) + +var installedJSONKey = []byte(`{ + "installed": { + "client_id": "222-installed.apps.googleusercontent.com", + "redirect_uris": ["https://www.example.com/oauth2callback"] + } +}`) + +var jwtJSONKey = []byte(`{ + "private_key_id": "268f54e43a1af97cfc71731688434f45aca15c8b", + "private_key": "super secret key", + "client_email": "gopher@developer.gserviceaccount.com", + "client_id": "gopher.apps.googleusercontent.com", + "token_uri": "https://accounts.google.com/o/gophers/token", + "type": "service_account" +}`) + +var jwtJSONKeyNoTokenURL = []byte(`{ + "private_key_id": "268f54e43a1af97cfc71731688434f45aca15c8b", + "private_key": "super secret key", + "client_email": "gopher@developer.gserviceaccount.com", + "client_id": "gopher.apps.googleusercontent.com", + "type": "service_account" +}`) + +func TestConfigFromJSON(t *testing.T) { + conf, err := ConfigFromJSON(webJSONKey, "scope1", "scope2") + if err != nil { + t.Error(err) + } + if got, want := conf.ClientID, "222-nprqovg5k43uum874cs9osjt2koe97g8.apps.googleusercontent.com"; got != want { + t.Errorf("ClientID = %q; want %q", got, want) + } + if got, want := conf.ClientSecret, "3Oknc4jS_wA2r9i"; got != want { + t.Errorf("ClientSecret = %q; want %q", got, want) + } + if got, want := conf.RedirectURL, "https://www.example.com/oauth2callback"; got != want { + t.Errorf("RedictURL = %q; want %q", got, want) + } + if got, want := strings.Join(conf.Scopes, ","), "scope1,scope2"; got != want { + t.Errorf("Scopes = %q; want %q", got, want) + } + if got, want := conf.Endpoint.AuthURL, "https://google.com/o/oauth2/auth"; got != want { + t.Errorf("AuthURL = %q; want %q", got, want) + } + if got, want := conf.Endpoint.TokenURL, "https://google.com/o/oauth2/token"; got != want { + t.Errorf("TokenURL = %q; want %q", got, want) + } +} + +func TestConfigFromJSON_Installed(t *testing.T) { + conf, err := ConfigFromJSON(installedJSONKey) + if err != nil { + t.Error(err) + } + if got, want := conf.ClientID, "222-installed.apps.googleusercontent.com"; got != want { + t.Errorf("ClientID = %q; want %q", got, want) + } +} + +func TestJWTConfigFromJSON(t *testing.T) { + conf, err := JWTConfigFromJSON(jwtJSONKey, "scope1", "scope2") + if err != nil { + t.Fatal(err) + } + if got, want := conf.Email, "gopher@developer.gserviceaccount.com"; got != want { + t.Errorf("Email = %q, want %q", got, want) + } + if got, want := string(conf.PrivateKey), "super secret key"; got != want { + t.Errorf("PrivateKey = %q, want %q", got, want) + } + if got, want := conf.PrivateKeyID, "268f54e43a1af97cfc71731688434f45aca15c8b"; got != want { + t.Errorf("PrivateKeyID = %q, want %q", got, want) + } + if got, want := strings.Join(conf.Scopes, ","), "scope1,scope2"; got != want { + t.Errorf("Scopes = %q; want %q", got, want) + } + if got, want := conf.TokenURL, "https://accounts.google.com/o/gophers/token"; got != want { + t.Errorf("TokenURL = %q; want %q", got, want) + } +} + +func TestJWTConfigFromJSONNoTokenURL(t *testing.T) { + conf, err := JWTConfigFromJSON(jwtJSONKeyNoTokenURL, "scope1", "scope2") + if err != nil { + t.Fatal(err) + } + if got, want := conf.TokenURL, "https://accounts.google.com/o/oauth2/token"; got != want { + t.Errorf("TokenURL = %q; want %q", got, want) + } +} diff --git a/vendor/golang.org/x/oauth2/google/jwt.go b/vendor/golang.org/x/oauth2/google/jwt.go new file mode 100644 index 000000000..b0fdb3a88 --- /dev/null +++ b/vendor/golang.org/x/oauth2/google/jwt.go @@ -0,0 +1,74 @@ +// Copyright 2015 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 google + +import ( + "crypto/rsa" + "fmt" + "time" + + "golang.org/x/oauth2" + "golang.org/x/oauth2/internal" + "golang.org/x/oauth2/jws" +) + +// JWTAccessTokenSourceFromJSON uses a Google Developers service account JSON +// key file to read the credentials that authorize and authenticate the +// requests, and returns a TokenSource that does not use any OAuth2 flow but +// instead creates a JWT and sends that as the access token. +// The audience is typically a URL that specifies the scope of the credentials. +// +// Note that this is not a standard OAuth flow, but rather an +// optimization supported by a few Google services. +// Unless you know otherwise, you should use JWTConfigFromJSON instead. +func JWTAccessTokenSourceFromJSON(jsonKey []byte, audience string) (oauth2.TokenSource, error) { + cfg, err := JWTConfigFromJSON(jsonKey) + if err != nil { + return nil, fmt.Errorf("google: could not parse JSON key: %v", err) + } + pk, err := internal.ParseKey(cfg.PrivateKey) + if err != nil { + return nil, fmt.Errorf("google: could not parse key: %v", err) + } + ts := &jwtAccessTokenSource{ + email: cfg.Email, + audience: audience, + pk: pk, + pkID: cfg.PrivateKeyID, + } + tok, err := ts.Token() + if err != nil { + return nil, err + } + return oauth2.ReuseTokenSource(tok, ts), nil +} + +type jwtAccessTokenSource struct { + email, audience string + pk *rsa.PrivateKey + pkID string +} + +func (ts *jwtAccessTokenSource) Token() (*oauth2.Token, error) { + iat := time.Now() + exp := iat.Add(time.Hour) + cs := &jws.ClaimSet{ + Iss: ts.email, + Sub: ts.email, + Aud: ts.audience, + Iat: iat.Unix(), + Exp: exp.Unix(), + } + hdr := &jws.Header{ + Algorithm: "RS256", + Typ: "JWT", + KeyID: string(ts.pkID), + } + msg, err := jws.Encode(hdr, cs, ts.pk) + if err != nil { + return nil, fmt.Errorf("google: could not encode JWT: %v", err) + } + return &oauth2.Token{AccessToken: msg, TokenType: "Bearer", Expiry: exp}, nil +} diff --git a/vendor/golang.org/x/oauth2/google/jwt_test.go b/vendor/golang.org/x/oauth2/google/jwt_test.go new file mode 100644 index 000000000..f844436fc --- /dev/null +++ b/vendor/golang.org/x/oauth2/google/jwt_test.go @@ -0,0 +1,91 @@ +// Copyright 2016 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 google + +import ( + "bytes" + "crypto/rand" + "crypto/rsa" + "crypto/x509" + "encoding/base64" + "encoding/json" + "encoding/pem" + "strings" + "testing" + "time" + + "golang.org/x/oauth2/jws" +) + +func TestJWTAccessTokenSourceFromJSON(t *testing.T) { + // Generate a key we can use in the test data. + privateKey, err := rsa.GenerateKey(rand.Reader, 2048) + if err != nil { + t.Fatal(err) + } + + // Encode the key and substitute into our example JSON. + enc := pem.EncodeToMemory(&pem.Block{ + Type: "PRIVATE KEY", + Bytes: x509.MarshalPKCS1PrivateKey(privateKey), + }) + enc, err = json.Marshal(string(enc)) + if err != nil { + t.Fatalf("json.Marshal: %v", err) + } + jsonKey := bytes.Replace(jwtJSONKey, []byte(`"super secret key"`), enc, 1) + + ts, err := JWTAccessTokenSourceFromJSON(jsonKey, "audience") + if err != nil { + t.Fatalf("JWTAccessTokenSourceFromJSON: %v\nJSON: %s", err, string(jsonKey)) + } + + tok, err := ts.Token() + if err != nil { + t.Fatalf("Token: %v", err) + } + + if got, want := tok.TokenType, "Bearer"; got != want { + t.Errorf("TokenType = %q, want %q", got, want) + } + if got := tok.Expiry; tok.Expiry.Before(time.Now()) { + t.Errorf("Expiry = %v, should not be expired", got) + } + + err = jws.Verify(tok.AccessToken, &privateKey.PublicKey) + if err != nil { + t.Errorf("jws.Verify on AccessToken: %v", err) + } + + claim, err := jws.Decode(tok.AccessToken) + if err != nil { + t.Fatalf("jws.Decode on AccessToken: %v", err) + } + + if got, want := claim.Iss, "gopher@developer.gserviceaccount.com"; got != want { + t.Errorf("Iss = %q, want %q", got, want) + } + if got, want := claim.Sub, "gopher@developer.gserviceaccount.com"; got != want { + t.Errorf("Sub = %q, want %q", got, want) + } + if got, want := claim.Aud, "audience"; got != want { + t.Errorf("Aud = %q, want %q", got, want) + } + + // Finally, check the header private key. + parts := strings.Split(tok.AccessToken, ".") + hdrJSON, err := base64.RawURLEncoding.DecodeString(parts[0]) + if err != nil { + t.Fatalf("base64 DecodeString: %v\nString: %q", err, parts[0]) + } + var hdr jws.Header + if err := json.Unmarshal([]byte(hdrJSON), &hdr); err != nil { + t.Fatalf("json.Unmarshal: %v (%q)", err, hdrJSON) + } + + if got, want := hdr.KeyID, "268f54e43a1af97cfc71731688434f45aca15c8b"; got != want { + t.Errorf("Header KeyID = %q, want %q", got, want) + } +} diff --git a/vendor/golang.org/x/oauth2/google/sdk.go b/vendor/golang.org/x/oauth2/google/sdk.go new file mode 100644 index 000000000..456224bc7 --- /dev/null +++ b/vendor/golang.org/x/oauth2/google/sdk.go @@ -0,0 +1,201 @@ +// Copyright 2015 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 google + +import ( + "bufio" + "context" + "encoding/json" + "errors" + "fmt" + "io" + "net/http" + "os" + "os/user" + "path/filepath" + "runtime" + "strings" + "time" + + "golang.org/x/oauth2" +) + +type sdkCredentials struct { + Data []struct { + Credential struct { + ClientID string `json:"client_id"` + ClientSecret string `json:"client_secret"` + AccessToken string `json:"access_token"` + RefreshToken string `json:"refresh_token"` + TokenExpiry *time.Time `json:"token_expiry"` + } `json:"credential"` + Key struct { + Account string `json:"account"` + Scope string `json:"scope"` + } `json:"key"` + } +} + +// An SDKConfig provides access to tokens from an account already +// authorized via the Google Cloud SDK. +type SDKConfig struct { + conf oauth2.Config + initialToken *oauth2.Token +} + +// NewSDKConfig creates an SDKConfig for the given Google Cloud SDK +// account. If account is empty, the account currently active in +// Google Cloud SDK properties is used. +// Google Cloud SDK credentials must be created by running `gcloud auth` +// before using this function. +// The Google Cloud SDK is available at https://cloud.google.com/sdk/. +func NewSDKConfig(account string) (*SDKConfig, error) { + configPath, err := sdkConfigPath() + if err != nil { + return nil, fmt.Errorf("oauth2/google: error getting SDK config path: %v", err) + } + credentialsPath := filepath.Join(configPath, "credentials") + f, err := os.Open(credentialsPath) + if err != nil { + return nil, fmt.Errorf("oauth2/google: failed to load SDK credentials: %v", err) + } + defer f.Close() + + var c sdkCredentials + if err := json.NewDecoder(f).Decode(&c); err != nil { + return nil, fmt.Errorf("oauth2/google: failed to decode SDK credentials from %q: %v", credentialsPath, err) + } + if len(c.Data) == 0 { + return nil, fmt.Errorf("oauth2/google: no credentials found in %q, run `gcloud auth login` to create one", credentialsPath) + } + if account == "" { + propertiesPath := filepath.Join(configPath, "properties") + f, err := os.Open(propertiesPath) + if err != nil { + return nil, fmt.Errorf("oauth2/google: failed to load SDK properties: %v", err) + } + defer f.Close() + ini, err := parseINI(f) + if err != nil { + return nil, fmt.Errorf("oauth2/google: failed to parse SDK properties %q: %v", propertiesPath, err) + } + core, ok := ini["core"] + if !ok { + return nil, fmt.Errorf("oauth2/google: failed to find [core] section in %v", ini) + } + active, ok := core["account"] + if !ok { + return nil, fmt.Errorf("oauth2/google: failed to find %q attribute in %v", "account", core) + } + account = active + } + + for _, d := range c.Data { + if account == "" || d.Key.Account == account { + if d.Credential.AccessToken == "" && d.Credential.RefreshToken == "" { + return nil, fmt.Errorf("oauth2/google: no token available for account %q", account) + } + var expiry time.Time + if d.Credential.TokenExpiry != nil { + expiry = *d.Credential.TokenExpiry + } + return &SDKConfig{ + conf: oauth2.Config{ + ClientID: d.Credential.ClientID, + ClientSecret: d.Credential.ClientSecret, + Scopes: strings.Split(d.Key.Scope, " "), + Endpoint: Endpoint, + RedirectURL: "oob", + }, + initialToken: &oauth2.Token{ + AccessToken: d.Credential.AccessToken, + RefreshToken: d.Credential.RefreshToken, + Expiry: expiry, + }, + }, nil + } + } + return nil, fmt.Errorf("oauth2/google: no such credentials for account %q", account) +} + +// Client returns an HTTP client using Google Cloud SDK credentials to +// authorize requests. The token will auto-refresh as necessary. The +// underlying http.RoundTripper will be obtained using the provided +// context. The returned client and its Transport should not be +// modified. +func (c *SDKConfig) Client(ctx context.Context) *http.Client { + return &http.Client{ + Transport: &oauth2.Transport{ + Source: c.TokenSource(ctx), + }, + } +} + +// TokenSource returns an oauth2.TokenSource that retrieve tokens from +// Google Cloud SDK credentials using the provided context. +// It will returns the current access token stored in the credentials, +// and refresh it when it expires, but it won't update the credentials +// with the new access token. +func (c *SDKConfig) TokenSource(ctx context.Context) oauth2.TokenSource { + return c.conf.TokenSource(ctx, c.initialToken) +} + +// Scopes are the OAuth 2.0 scopes the current account is authorized for. +func (c *SDKConfig) Scopes() []string { + return c.conf.Scopes +} + +func parseINI(ini io.Reader) (map[string]map[string]string, error) { + result := map[string]map[string]string{ + "": {}, // root section + } + scanner := bufio.NewScanner(ini) + currentSection := "" + for scanner.Scan() { + line := strings.TrimSpace(scanner.Text()) + if strings.HasPrefix(line, ";") { + // comment. + continue + } + if strings.HasPrefix(line, "[") && strings.HasSuffix(line, "]") { + currentSection = strings.TrimSpace(line[1 : len(line)-1]) + result[currentSection] = map[string]string{} + continue + } + parts := strings.SplitN(line, "=", 2) + if len(parts) == 2 && parts[0] != "" { + result[currentSection][strings.TrimSpace(parts[0])] = strings.TrimSpace(parts[1]) + } + } + if err := scanner.Err(); err != nil { + return nil, fmt.Errorf("error scanning ini: %v", err) + } + return result, nil +} + +// sdkConfigPath tries to guess where the gcloud config is located. +// It can be overridden during tests. +var sdkConfigPath = func() (string, error) { + if runtime.GOOS == "windows" { + return filepath.Join(os.Getenv("APPDATA"), "gcloud"), nil + } + homeDir := guessUnixHomeDir() + if homeDir == "" { + return "", errors.New("unable to get current user home directory: os/user lookup failed; $HOME is empty") + } + return filepath.Join(homeDir, ".config", "gcloud"), nil +} + +func guessUnixHomeDir() string { + // Prefer $HOME over user.Current due to glibc bug: golang.org/issue/13470 + if v := os.Getenv("HOME"); v != "" { + return v + } + // Else, fall back to user.Current: + if u, err := user.Current(); err == nil { + return u.HomeDir + } + return "" +} diff --git a/vendor/golang.org/x/oauth2/google/sdk_test.go b/vendor/golang.org/x/oauth2/google/sdk_test.go new file mode 100644 index 000000000..52b8ecada --- /dev/null +++ b/vendor/golang.org/x/oauth2/google/sdk_test.go @@ -0,0 +1,107 @@ +// Copyright 2015 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 google + +import ( + "reflect" + "strings" + "testing" +) + +func TestSDKConfig(t *testing.T) { + sdkConfigPath = func() (string, error) { + return "testdata/gcloud", nil + } + + tests := []struct { + account string + accessToken string + err bool + }{ + {"", "bar_access_token", false}, + {"foo@example.com", "foo_access_token", false}, + {"bar@example.com", "bar_access_token", false}, + {"baz@serviceaccount.example.com", "", true}, + } + for _, tt := range tests { + c, err := NewSDKConfig(tt.account) + if got, want := err != nil, tt.err; got != want { + if !tt.err { + t.Errorf("got %v, want nil", err) + } else { + t.Errorf("got nil, want error") + } + continue + } + if err != nil { + continue + } + tok := c.initialToken + if tok == nil { + t.Errorf("got nil, want %q", tt.accessToken) + continue + } + if tok.AccessToken != tt.accessToken { + t.Errorf("got %q, want %q", tok.AccessToken, tt.accessToken) + } + } +} + +func TestParseINI(t *testing.T) { + tests := []struct { + ini string + want map[string]map[string]string + }{ + { + `root = toor +[foo] +bar = hop +ini = nin +`, + map[string]map[string]string{ + "": {"root": "toor"}, + "foo": {"bar": "hop", "ini": "nin"}, + }, + }, + { + "\t extra \t = whitespace \t\r\n \t [everywhere] \t \r\n here \t = \t there \t \r\n", + map[string]map[string]string{ + "": {"extra": "whitespace"}, + "everywhere": {"here": "there"}, + }, + }, + { + `[empty] +[section] +empty= +`, + map[string]map[string]string{ + "": {}, + "empty": {}, + "section": {"empty": ""}, + }, + }, + { + `ignore +[invalid +=stuff +;comment=true +`, + map[string]map[string]string{ + "": {}, + }, + }, + } + for _, tt := range tests { + result, err := parseINI(strings.NewReader(tt.ini)) + if err != nil { + t.Errorf("parseINI(%q) error %v, want: no error", tt.ini, err) + continue + } + if !reflect.DeepEqual(result, tt.want) { + t.Errorf("parseINI(%q) = %#v, want: %#v", tt.ini, result, tt.want) + } + } +} diff --git a/vendor/golang.org/x/oauth2/google/testdata/gcloud/credentials b/vendor/golang.org/x/oauth2/google/testdata/gcloud/credentials new file mode 100644 index 000000000..ff5eefbd0 --- /dev/null +++ b/vendor/golang.org/x/oauth2/google/testdata/gcloud/credentials @@ -0,0 +1,122 @@ +{ + "data": [ + { + "credential": { + "_class": "OAuth2Credentials", + "_module": "oauth2client.client", + "access_token": "foo_access_token", + "client_id": "foo_client_id", + "client_secret": "foo_client_secret", + "id_token": { + "at_hash": "foo_at_hash", + "aud": "foo_aud", + "azp": "foo_azp", + "cid": "foo_cid", + "email": "foo@example.com", + "email_verified": true, + "exp": 1420573614, + "iat": 1420569714, + "id": "1337", + "iss": "accounts.google.com", + "sub": "1337", + "token_hash": "foo_token_hash", + "verified_email": true + }, + "invalid": false, + "refresh_token": "foo_refresh_token", + "revoke_uri": "https://accounts.google.com/o/oauth2/revoke", + "token_expiry": "2015-01-09T00:51:51Z", + "token_response": { + "access_token": "foo_access_token", + "expires_in": 3600, + "id_token": "foo_id_token", + "token_type": "Bearer" + }, + "token_uri": "https://accounts.google.com/o/oauth2/token", + "user_agent": "Cloud SDK Command Line Tool" + }, + "key": { + "account": "foo@example.com", + "clientId": "foo_client_id", + "scope": "https://www.googleapis.com/auth/appengine.admin https://www.googleapis.com/auth/bigquery https://www.googleapis.com/auth/compute https://www.googleapis.com/auth/devstorage.full_control https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/ndev.cloudman https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/sqlservice.admin https://www.googleapis.com/auth/prediction https://www.googleapis.com/auth/projecthosting", + "type": "google-cloud-sdk" + } + }, + { + "credential": { + "_class": "OAuth2Credentials", + "_module": "oauth2client.client", + "access_token": "bar_access_token", + "client_id": "bar_client_id", + "client_secret": "bar_client_secret", + "id_token": { + "at_hash": "bar_at_hash", + "aud": "bar_aud", + "azp": "bar_azp", + "cid": "bar_cid", + "email": "bar@example.com", + "email_verified": true, + "exp": 1420573614, + "iat": 1420569714, + "id": "1337", + "iss": "accounts.google.com", + "sub": "1337", + "token_hash": "bar_token_hash", + "verified_email": true + }, + "invalid": false, + "refresh_token": "bar_refresh_token", + "revoke_uri": "https://accounts.google.com/o/oauth2/revoke", + "token_expiry": "2015-01-09T00:51:51Z", + "token_response": { + "access_token": "bar_access_token", + "expires_in": 3600, + "id_token": "bar_id_token", + "token_type": "Bearer" + }, + "token_uri": "https://accounts.google.com/o/oauth2/token", + "user_agent": "Cloud SDK Command Line Tool" + }, + "key": { + "account": "bar@example.com", + "clientId": "bar_client_id", + "scope": "https://www.googleapis.com/auth/appengine.admin https://www.googleapis.com/auth/bigquery https://www.googleapis.com/auth/compute https://www.googleapis.com/auth/devstorage.full_control https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/ndev.cloudman https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/sqlservice.admin https://www.googleapis.com/auth/prediction https://www.googleapis.com/auth/projecthosting", + "type": "google-cloud-sdk" + } + }, + { + "credential": { + "_class": "ServiceAccountCredentials", + "_kwargs": {}, + "_module": "oauth2client.client", + "_private_key_id": "00000000000000000000000000000000", + "_private_key_pkcs8_text": "-----BEGIN RSA PRIVATE KEY-----\nMIICWwIBAAKBgQCt3fpiynPSaUhWSIKMGV331zudwJ6GkGmvQtwsoK2S2LbvnSwU\nNxgj4fp08kIDR5p26wF4+t/HrKydMwzftXBfZ9UmLVJgRdSswmS5SmChCrfDS5OE\nvFFcN5+6w1w8/Nu657PF/dse8T0bV95YrqyoR0Osy8WHrUOMSIIbC3hRuwIDAQAB\nAoGAJrGE/KFjn0sQ7yrZ6sXmdLawrM3mObo/2uI9T60+k7SpGbBX0/Pi6nFrJMWZ\nTVONG7P3Mu5aCPzzuVRYJB0j8aldSfzABTY3HKoWCczqw1OztJiEseXGiYz4QOyr\nYU3qDyEpdhS6q6wcoLKGH+hqRmz6pcSEsc8XzOOu7s4xW8kCQQDkc75HjhbarCnd\nJJGMe3U76+6UGmdK67ltZj6k6xoB5WbTNChY9TAyI2JC+ppYV89zv3ssj4L+02u3\nHIHFGxsHAkEAwtU1qYb1tScpchPobnYUFiVKJ7KA8EZaHVaJJODW/cghTCV7BxcJ\nbgVvlmk4lFKn3lPKAgWw7PdQsBTVBUcCrQJATPwoIirizrv3u5soJUQxZIkENAqV\nxmybZx9uetrzP7JTrVbFRf0SScMcyN90hdLJiQL8+i4+gaszgFht7sNMnwJAAbfj\nq0UXcauQwALQ7/h2oONfTg5S+MuGC/AxcXPSMZbMRGGoPh3D5YaCv27aIuS/ukQ+\n6dmm/9AGlCb64fsIWQJAPaokbjIifo+LwC5gyK73Mc4t8nAOSZDenzd/2f6TCq76\nS1dcnKiPxaED7W/y6LJiuBT2rbZiQ2L93NJpFZD/UA==\n-----END RSA PRIVATE KEY-----\n", + "_revoke_uri": "https://accounts.google.com/o/oauth2/revoke", + "_scopes": "https://www.googleapis.com/auth/appengine.admin https://www.googleapis.com/auth/bigquery https://www.googleapis.com/auth/compute https://www.googleapis.com/auth/devstorage.full_control https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/ndev.cloudman https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/sqlservice.admin https://www.googleapis.com/auth/prediction https://www.googleapis.com/auth/projecthosting", + "_service_account_email": "baz@serviceaccount.example.com", + "_service_account_id": "baz.serviceaccount.example.com", + "_token_uri": "https://accounts.google.com/o/oauth2/token", + "_user_agent": "Cloud SDK Command Line Tool", + "access_token": null, + "assertion_type": null, + "client_id": null, + "client_secret": null, + "id_token": null, + "invalid": false, + "refresh_token": null, + "revoke_uri": "https://accounts.google.com/o/oauth2/revoke", + "service_account_name": "baz@serviceaccount.example.com", + "token_expiry": null, + "token_response": null, + "user_agent": "Cloud SDK Command Line Tool" + }, + "key": { + "account": "baz@serviceaccount.example.com", + "clientId": "baz_client_id", + "scope": "https://www.googleapis.com/auth/appengine.admin https://www.googleapis.com/auth/bigquery https://www.googleapis.com/auth/compute https://www.googleapis.com/auth/devstorage.full_control https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/ndev.cloudman https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/sqlservice.admin https://www.googleapis.com/auth/prediction https://www.googleapis.com/auth/projecthosting", + "type": "google-cloud-sdk" + } + } + ], + "file_version": 1 +} diff --git a/vendor/golang.org/x/oauth2/google/testdata/gcloud/properties b/vendor/golang.org/x/oauth2/google/testdata/gcloud/properties new file mode 100644 index 000000000..025de886c --- /dev/null +++ b/vendor/golang.org/x/oauth2/google/testdata/gcloud/properties @@ -0,0 +1,2 @@ +[core] +account = bar@example.com \ No newline at end of file diff --git a/vendor/golang.org/x/oauth2/heroku/heroku.go b/vendor/golang.org/x/oauth2/heroku/heroku.go new file mode 100644 index 000000000..5b4fdb890 --- /dev/null +++ b/vendor/golang.org/x/oauth2/heroku/heroku.go @@ -0,0 +1,16 @@ +// Copyright 2016 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 heroku provides constants for using OAuth2 to access Heroku. +package heroku // import "golang.org/x/oauth2/heroku" + +import ( + "golang.org/x/oauth2" +) + +// Endpoint is Heroku's OAuth 2.0 endpoint. +var Endpoint = oauth2.Endpoint{ + AuthURL: "https://id.heroku.com/oauth/authorize", + TokenURL: "https://id.heroku.com/oauth/token", +} diff --git a/vendor/golang.org/x/oauth2/hipchat/hipchat.go b/vendor/golang.org/x/oauth2/hipchat/hipchat.go new file mode 100644 index 000000000..594fe072c --- /dev/null +++ b/vendor/golang.org/x/oauth2/hipchat/hipchat.go @@ -0,0 +1,60 @@ +// Copyright 2016 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 hipchat provides constants for using OAuth2 to access HipChat. +package hipchat // import "golang.org/x/oauth2/hipchat" + +import ( + "encoding/json" + "errors" + + "golang.org/x/oauth2" + "golang.org/x/oauth2/clientcredentials" +) + +// Endpoint is HipChat's OAuth 2.0 endpoint. +var Endpoint = oauth2.Endpoint{ + AuthURL: "https://www.hipchat.com/users/authorize", + TokenURL: "https://api.hipchat.com/v2/oauth/token", +} + +// ServerEndpoint returns a new oauth2.Endpoint for a HipChat Server instance +// running on the given domain or host. +func ServerEndpoint(host string) oauth2.Endpoint { + return oauth2.Endpoint{ + AuthURL: "https://" + host + "/users/authorize", + TokenURL: "https://" + host + "/v2/oauth/token", + } +} + +// ClientCredentialsConfigFromCaps generates a Config from a HipChat API +// capabilities descriptor. It does not verify the scopes against the +// capabilities document at this time. +// +// For more information see: https://www.hipchat.com/docs/apiv2/method/get_capabilities +func ClientCredentialsConfigFromCaps(capsJSON []byte, clientID, clientSecret string, scopes ...string) (*clientcredentials.Config, error) { + var caps struct { + Caps struct { + Endpoint struct { + TokenURL string `json:"tokenUrl"` + } `json:"oauth2Provider"` + } `json:"capabilities"` + } + + if err := json.Unmarshal(capsJSON, &caps); err != nil { + return nil, err + } + + // Verify required fields. + if caps.Caps.Endpoint.TokenURL == "" { + return nil, errors.New("oauth2/hipchat: missing OAuth2 token URL in the capabilities descriptor JSON") + } + + return &clientcredentials.Config{ + ClientID: clientID, + ClientSecret: clientSecret, + Scopes: scopes, + TokenURL: caps.Caps.Endpoint.TokenURL, + }, nil +} diff --git a/vendor/golang.org/x/oauth2/instagram/instagram.go b/vendor/golang.org/x/oauth2/instagram/instagram.go new file mode 100644 index 000000000..75a74ebb9 --- /dev/null +++ b/vendor/golang.org/x/oauth2/instagram/instagram.go @@ -0,0 +1,16 @@ +// Copyright 2018 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 instagram provides constants for using OAuth2 to access Instagram. +package instagram // import "golang.org/x/oauth2/instagram" + +import ( + "golang.org/x/oauth2" +) + +// Endpoint is Instagram's OAuth 2.0 endpoint. +var Endpoint = oauth2.Endpoint{ + AuthURL: "https://api.instagram.com/oauth/authorize", + TokenURL: "https://api.instagram.com/oauth/access_token", +} diff --git a/vendor/golang.org/x/oauth2/internal/client_appengine.go b/vendor/golang.org/x/oauth2/internal/client_appengine.go new file mode 100644 index 000000000..743487188 --- /dev/null +++ b/vendor/golang.org/x/oauth2/internal/client_appengine.go @@ -0,0 +1,13 @@ +// Copyright 2018 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. + +// +build appengine + +package internal + +import "google.golang.org/appengine/urlfetch" + +func init() { + appengineClientHook = urlfetch.Client +} diff --git a/vendor/golang.org/x/oauth2/internal/doc.go b/vendor/golang.org/x/oauth2/internal/doc.go new file mode 100644 index 000000000..03265e888 --- /dev/null +++ b/vendor/golang.org/x/oauth2/internal/doc.go @@ -0,0 +1,6 @@ +// 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 internal contains support packages for oauth2 package. +package internal diff --git a/vendor/golang.org/x/oauth2/internal/oauth2.go b/vendor/golang.org/x/oauth2/internal/oauth2.go new file mode 100644 index 000000000..c0ab196cf --- /dev/null +++ b/vendor/golang.org/x/oauth2/internal/oauth2.go @@ -0,0 +1,37 @@ +// Copyright 2014 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 internal + +import ( + "crypto/rsa" + "crypto/x509" + "encoding/pem" + "errors" + "fmt" +) + +// ParseKey converts the binary contents of a private key file +// to an *rsa.PrivateKey. It detects whether the private key is in a +// PEM container or not. If so, it extracts the the private key +// from PEM container before conversion. It only supports PEM +// containers with no passphrase. +func ParseKey(key []byte) (*rsa.PrivateKey, error) { + block, _ := pem.Decode(key) + if block != nil { + key = block.Bytes + } + parsedKey, err := x509.ParsePKCS8PrivateKey(key) + if err != nil { + parsedKey, err = x509.ParsePKCS1PrivateKey(key) + if err != nil { + return nil, fmt.Errorf("private key should be a PEM or plain PKCS1 or PKCS8; parse error: %v", err) + } + } + parsed, ok := parsedKey.(*rsa.PrivateKey) + if !ok { + return nil, errors.New("private key is invalid") + } + return parsed, nil +} diff --git a/vendor/golang.org/x/oauth2/internal/token.go b/vendor/golang.org/x/oauth2/internal/token.go new file mode 100644 index 000000000..a831b7746 --- /dev/null +++ b/vendor/golang.org/x/oauth2/internal/token.go @@ -0,0 +1,277 @@ +// Copyright 2014 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 internal + +import ( + "context" + "encoding/json" + "errors" + "fmt" + "io" + "io/ioutil" + "mime" + "net/http" + "net/url" + "strconv" + "strings" + "time" + + "golang.org/x/net/context/ctxhttp" +) + +// Token represents the credentials used to authorize +// the requests to access protected resources on the OAuth 2.0 +// provider's backend. +// +// This type is a mirror of oauth2.Token and exists to break +// an otherwise-circular dependency. Other internal packages +// should convert this Token into an oauth2.Token before use. +type Token struct { + // AccessToken is the token that authorizes and authenticates + // the requests. + AccessToken string + + // TokenType is the type of token. + // The Type method returns either this or "Bearer", the default. + TokenType string + + // RefreshToken is a token that's used by the application + // (as opposed to the user) to refresh the access token + // if it expires. + RefreshToken string + + // Expiry is the optional expiration time of the access token. + // + // If zero, TokenSource implementations will reuse the same + // token forever and RefreshToken or equivalent + // mechanisms for that TokenSource will not be used. + Expiry time.Time + + // Raw optionally contains extra metadata from the server + // when updating a token. + Raw interface{} +} + +// tokenJSON is the struct representing the HTTP response from OAuth2 +// providers returning a token in JSON form. +type tokenJSON struct { + AccessToken string `json:"access_token"` + TokenType string `json:"token_type"` + RefreshToken string `json:"refresh_token"` + ExpiresIn expirationTime `json:"expires_in"` // at least PayPal returns string, while most return number + Expires expirationTime `json:"expires"` // broken Facebook spelling of expires_in +} + +func (e *tokenJSON) expiry() (t time.Time) { + if v := e.ExpiresIn; v != 0 { + return time.Now().Add(time.Duration(v) * time.Second) + } + if v := e.Expires; v != 0 { + return time.Now().Add(time.Duration(v) * time.Second) + } + return +} + +type expirationTime int32 + +func (e *expirationTime) UnmarshalJSON(b []byte) error { + var n json.Number + err := json.Unmarshal(b, &n) + if err != nil { + return err + } + i, err := n.Int64() + if err != nil { + return err + } + *e = expirationTime(i) + return nil +} + +var brokenAuthHeaderProviders = []string{ + "https://accounts.google.com/", + "https://api.codeswholesale.com/oauth/token", + "https://api.dropbox.com/", + "https://api.dropboxapi.com/", + "https://api.instagram.com/", + "https://api.netatmo.net/", + "https://api.odnoklassniki.ru/", + "https://api.pushbullet.com/", + "https://api.soundcloud.com/", + "https://api.twitch.tv/", + "https://id.twitch.tv/", + "https://app.box.com/", + "https://api.box.com/", + "https://connect.stripe.com/", + "https://login.mailchimp.com/", + "https://login.microsoftonline.com/", + "https://login.salesforce.com/", + "https://login.windows.net", + "https://login.live.com/", + "https://login.live-int.com/", + "https://oauth.sandbox.trainingpeaks.com/", + "https://oauth.trainingpeaks.com/", + "https://oauth.vk.com/", + "https://openapi.baidu.com/", + "https://slack.com/", + "https://test-sandbox.auth.corp.google.com", + "https://test.salesforce.com/", + "https://user.gini.net/", + "https://www.douban.com/", + "https://www.googleapis.com/", + "https://www.linkedin.com/", + "https://www.strava.com/oauth/", + "https://www.wunderlist.com/oauth/", + "https://api.patreon.com/", + "https://sandbox.codeswholesale.com/oauth/token", + "https://api.sipgate.com/v1/authorization/oauth", + "https://api.medium.com/v1/tokens", + "https://log.finalsurge.com/oauth/token", + "https://multisport.todaysplan.com.au/rest/oauth/access_token", + "https://whats.todaysplan.com.au/rest/oauth/access_token", + "https://stackoverflow.com/oauth/access_token", + "https://account.health.nokia.com", + "https://accounts.zoho.com", + "https://gitter.im/login/oauth/token", + "https://openid-connect.onelogin.com/oidc", + "https://api.dailymotion.com/oauth/token", +} + +// brokenAuthHeaderDomains lists broken providers that issue dynamic endpoints. +var brokenAuthHeaderDomains = []string{ + ".auth0.com", + ".force.com", + ".myshopify.com", + ".okta.com", + ".oktapreview.com", +} + +func RegisterBrokenAuthHeaderProvider(tokenURL string) { + brokenAuthHeaderProviders = append(brokenAuthHeaderProviders, tokenURL) +} + +// providerAuthHeaderWorks reports whether the OAuth2 server identified by the tokenURL +// implements the OAuth2 spec correctly +// See https://code.google.com/p/goauth2/issues/detail?id=31 for background. +// In summary: +// - Reddit only accepts client secret in the Authorization header +// - Dropbox accepts either it in URL param or Auth header, but not both. +// - Google only accepts URL param (not spec compliant?), not Auth header +// - Stripe only accepts client secret in Auth header with Bearer method, not Basic +func providerAuthHeaderWorks(tokenURL string) bool { + for _, s := range brokenAuthHeaderProviders { + if strings.HasPrefix(tokenURL, s) { + // Some sites fail to implement the OAuth2 spec fully. + return false + } + } + + if u, err := url.Parse(tokenURL); err == nil { + for _, s := range brokenAuthHeaderDomains { + if strings.HasSuffix(u.Host, s) { + return false + } + } + } + + // Assume the provider implements the spec properly + // otherwise. We can add more exceptions as they're + // discovered. We will _not_ be adding configurable hooks + // to this package to let users select server bugs. + return true +} + +func RetrieveToken(ctx context.Context, clientID, clientSecret, tokenURL string, v url.Values) (*Token, error) { + bustedAuth := !providerAuthHeaderWorks(tokenURL) + if bustedAuth { + if clientID != "" { + v.Set("client_id", clientID) + } + if clientSecret != "" { + v.Set("client_secret", clientSecret) + } + } + req, err := http.NewRequest("POST", tokenURL, strings.NewReader(v.Encode())) + if err != nil { + return nil, err + } + req.Header.Set("Content-Type", "application/x-www-form-urlencoded") + if !bustedAuth { + req.SetBasicAuth(url.QueryEscape(clientID), url.QueryEscape(clientSecret)) + } + r, err := ctxhttp.Do(ctx, ContextClient(ctx), req) + if err != nil { + return nil, err + } + defer r.Body.Close() + body, err := ioutil.ReadAll(io.LimitReader(r.Body, 1<<20)) + if err != nil { + return nil, fmt.Errorf("oauth2: cannot fetch token: %v", err) + } + if code := r.StatusCode; code < 200 || code > 299 { + return nil, &RetrieveError{ + Response: r, + Body: body, + } + } + + var token *Token + content, _, _ := mime.ParseMediaType(r.Header.Get("Content-Type")) + switch content { + case "application/x-www-form-urlencoded", "text/plain": + vals, err := url.ParseQuery(string(body)) + if err != nil { + return nil, err + } + token = &Token{ + AccessToken: vals.Get("access_token"), + TokenType: vals.Get("token_type"), + RefreshToken: vals.Get("refresh_token"), + Raw: vals, + } + e := vals.Get("expires_in") + if e == "" { + // TODO(jbd): Facebook's OAuth2 implementation is broken and + // returns expires_in field in expires. Remove the fallback to expires, + // when Facebook fixes their implementation. + e = vals.Get("expires") + } + expires, _ := strconv.Atoi(e) + if expires != 0 { + token.Expiry = time.Now().Add(time.Duration(expires) * time.Second) + } + default: + var tj tokenJSON + if err = json.Unmarshal(body, &tj); err != nil { + return nil, err + } + token = &Token{ + AccessToken: tj.AccessToken, + TokenType: tj.TokenType, + RefreshToken: tj.RefreshToken, + Expiry: tj.expiry(), + Raw: make(map[string]interface{}), + } + json.Unmarshal(body, &token.Raw) // no error checks for optional fields + } + // Don't overwrite `RefreshToken` with an empty value + // if this was a token refreshing request. + if token.RefreshToken == "" { + token.RefreshToken = v.Get("refresh_token") + } + if token.AccessToken == "" { + return token, errors.New("oauth2: server response missing access_token") + } + return token, nil +} + +type RetrieveError struct { + Response *http.Response + Body []byte +} + +func (r *RetrieveError) Error() string { + return fmt.Sprintf("oauth2: cannot fetch token: %v\nResponse: %s", r.Response.Status, r.Body) +} diff --git a/vendor/golang.org/x/oauth2/internal/token_test.go b/vendor/golang.org/x/oauth2/internal/token_test.go new file mode 100644 index 000000000..d1da8bb04 --- /dev/null +++ b/vendor/golang.org/x/oauth2/internal/token_test.go @@ -0,0 +1,111 @@ +// Copyright 2014 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 internal + +import ( + "context" + "fmt" + "io" + "net/http" + "net/http/httptest" + "net/url" + "testing" +) + +func TestRegisterBrokenAuthHeaderProvider(t *testing.T) { + RegisterBrokenAuthHeaderProvider("https://aaa.com/") + tokenURL := "https://aaa.com/token" + if providerAuthHeaderWorks(tokenURL) { + t.Errorf("got %q as unbroken; want broken", tokenURL) + } +} + +func TestRetrieveTokenBustedNoSecret(t *testing.T) { + const clientID = "client-id" + + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if got, want := r.FormValue("client_id"), clientID; got != want { + t.Errorf("client_id = %q; want %q", got, want) + } + if got, want := r.FormValue("client_secret"), ""; got != want { + t.Errorf("client_secret = %q; want empty", got) + } + w.Header().Set("Content-Type", "application/json") + io.WriteString(w, `{"access_token": "ACCESS_TOKEN", "token_type": "bearer"}`) + })) + defer ts.Close() + + RegisterBrokenAuthHeaderProvider(ts.URL) + _, err := RetrieveToken(context.Background(), clientID, "", ts.URL, url.Values{}) + if err != nil { + t.Errorf("RetrieveToken = %v; want no error", err) + } +} + +func Test_providerAuthHeaderWorks(t *testing.T) { + for _, p := range brokenAuthHeaderProviders { + if providerAuthHeaderWorks(p) { + t.Errorf("got %q as unbroken; want broken", p) + } + p := fmt.Sprintf("%ssomesuffix", p) + if providerAuthHeaderWorks(p) { + t.Errorf("got %q as unbroken; want broken", p) + } + } + p := "https://api.not-in-the-list-example.com/" + if !providerAuthHeaderWorks(p) { + t.Errorf("got %q as unbroken; want broken", p) + } +} + +func TestProviderAuthHeaderWorksDomain(t *testing.T) { + tests := []struct { + tokenURL string + wantWorks bool + }{ + {"https://dev-12345.okta.com/token-url", false}, + {"https://dev-12345.oktapreview.com/token-url", false}, + {"https://dev-12345.okta.org/token-url", true}, + {"https://foo.bar.force.com/token-url", false}, + {"https://foo.force.com/token-url", false}, + {"https://force.com/token-url", true}, + } + + for _, test := range tests { + got := providerAuthHeaderWorks(test.tokenURL) + if got != test.wantWorks { + t.Errorf("providerAuthHeaderWorks(%q) = %v; want %v", test.tokenURL, got, test.wantWorks) + } + } +} + +func TestRetrieveTokenWithContexts(t *testing.T) { + const clientID = "client-id" + + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "application/json") + io.WriteString(w, `{"access_token": "ACCESS_TOKEN", "token_type": "bearer"}`) + })) + defer ts.Close() + + _, err := RetrieveToken(context.Background(), clientID, "", ts.URL, url.Values{}) + if err != nil { + t.Errorf("RetrieveToken (with background context) = %v; want no error", err) + } + + retrieved := make(chan struct{}) + cancellingts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + <-retrieved + })) + defer cancellingts.Close() + + ctx, cancel := context.WithCancel(context.Background()) + cancel() + _, err = RetrieveToken(ctx, clientID, "", cancellingts.URL, url.Values{}) + close(retrieved) + if err == nil { + t.Errorf("RetrieveToken (with cancelled context) = nil; want error") + } +} diff --git a/vendor/golang.org/x/oauth2/internal/transport.go b/vendor/golang.org/x/oauth2/internal/transport.go new file mode 100644 index 000000000..572074a63 --- /dev/null +++ b/vendor/golang.org/x/oauth2/internal/transport.go @@ -0,0 +1,33 @@ +// Copyright 2014 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 internal + +import ( + "context" + "net/http" +) + +// HTTPClient is the context key to use with golang.org/x/net/context's +// WithValue function to associate an *http.Client value with a context. +var HTTPClient ContextKey + +// ContextKey is just an empty struct. It exists so HTTPClient can be +// an immutable public variable with a unique type. It's immutable +// because nobody else can create a ContextKey, being unexported. +type ContextKey struct{} + +var appengineClientHook func(context.Context) *http.Client + +func ContextClient(ctx context.Context) *http.Client { + if ctx != nil { + if hc, ok := ctx.Value(HTTPClient).(*http.Client); ok { + return hc + } + } + if appengineClientHook != nil { + return appengineClientHook(ctx) + } + return http.DefaultClient +} diff --git a/vendor/golang.org/x/oauth2/jira/jira.go b/vendor/golang.org/x/oauth2/jira/jira.go new file mode 100644 index 000000000..34415607c --- /dev/null +++ b/vendor/golang.org/x/oauth2/jira/jira.go @@ -0,0 +1,167 @@ +// Copyright 2018 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 jira provides claims and JWT signing for OAuth2 to access JIRA/Confluence. +package jira + +import ( + "context" + "crypto/hmac" + "crypto/sha256" + "encoding/base64" + "encoding/json" + "fmt" + "io" + "io/ioutil" + "net/http" + "net/url" + "strings" + "time" + + "golang.org/x/oauth2" +) + +// ClaimSet contains information about the JWT signature according +// to Atlassian's documentation +// https://developer.atlassian.com/cloud/jira/software/oauth-2-jwt-bearer-token-authorization-grant-type/ +type ClaimSet struct { + Issuer string `json:"iss"` + Subject string `json:"sub"` + InstalledURL string `json:"tnt"` // URL of installed app + AuthURL string `json:"aud"` // URL of auth server + ExpiresIn int64 `json:"exp"` // Must be no later that 60 seconds in the future + IssuedAt int64 `json:"iat"` +} + +var ( + defaultGrantType = "urn:ietf:params:oauth:grant-type:jwt-bearer" + defaultHeader = map[string]string{ + "typ": "JWT", + "alg": "HS256", + } +) + +// Config is the configuration for using JWT to fetch tokens, +// commonly known as "two-legged OAuth 2.0". +type Config struct { + // BaseURL for your app + BaseURL string + + // Subject is the userkey as defined by Atlassian + // Different than username (ex: /rest/api/2/user?username=alex) + Subject string + + oauth2.Config +} + +// TokenSource returns a JWT TokenSource using the configuration +// in c and the HTTP client from the provided context. +func (c *Config) TokenSource(ctx context.Context) oauth2.TokenSource { + return oauth2.ReuseTokenSource(nil, jwtSource{ctx, c}) +} + +// Client returns an HTTP client wrapping the context's +// HTTP transport and adding Authorization headers with tokens +// obtained from c. +// +// The returned client and its Transport should not be modified. +func (c *Config) Client(ctx context.Context) *http.Client { + return oauth2.NewClient(ctx, c.TokenSource(ctx)) +} + +// jwtSource is a source that always does a signed JWT request for a token. +// It should typically be wrapped with a reuseTokenSource. +type jwtSource struct { + ctx context.Context + conf *Config +} + +func (js jwtSource) Token() (*oauth2.Token, error) { + exp := time.Duration(59) * time.Second + claimSet := &ClaimSet{ + Issuer: fmt.Sprintf("urn:atlassian:connect:clientid:%s", js.conf.ClientID), + Subject: fmt.Sprintf("urn:atlassian:connect:userkey:%s", js.conf.Subject), + InstalledURL: js.conf.BaseURL, + AuthURL: js.conf.Endpoint.AuthURL, + IssuedAt: time.Now().Unix(), + ExpiresIn: time.Now().Add(exp).Unix(), + } + + v := url.Values{} + v.Set("grant_type", defaultGrantType) + + // Add scopes if they exist; If not, it defaults to app scopes + if scopes := js.conf.Scopes; scopes != nil { + upperScopes := make([]string, len(scopes)) + for i, k := range scopes { + upperScopes[i] = strings.ToUpper(k) + } + v.Set("scope", strings.Join(upperScopes, "+")) + } + + // Sign claims for assertion + assertion, err := sign(js.conf.ClientSecret, claimSet) + if err != nil { + return nil, err + } + v.Set("assertion", string(assertion)) + + // Fetch access token from auth server + hc := oauth2.NewClient(js.ctx, nil) + resp, err := hc.PostForm(js.conf.Endpoint.TokenURL, v) + if err != nil { + return nil, fmt.Errorf("oauth2: cannot fetch token: %v", err) + } + defer resp.Body.Close() + body, err := ioutil.ReadAll(io.LimitReader(resp.Body, 1<<20)) + if err != nil { + return nil, fmt.Errorf("oauth2: cannot fetch token: %v", err) + } + if c := resp.StatusCode; c < 200 || c > 299 { + return nil, fmt.Errorf("oauth2: cannot fetch token: %v\nResponse: %s", resp.Status, body) + } + + // tokenRes is the JSON response body. + var tokenRes struct { + AccessToken string `json:"access_token"` + TokenType string `json:"token_type"` + ExpiresIn int64 `json:"expires_in"` // relative seconds from now + } + if err := json.Unmarshal(body, &tokenRes); err != nil { + return nil, fmt.Errorf("oauth2: cannot fetch token: %v", err) + } + token := &oauth2.Token{ + AccessToken: tokenRes.AccessToken, + TokenType: tokenRes.TokenType, + } + + if secs := tokenRes.ExpiresIn; secs > 0 { + token.Expiry = time.Now().Add(time.Duration(secs) * time.Second) + } + return token, nil +} + +// Sign the claim set with the shared secret +// Result to be sent as assertion +func sign(key string, claims *ClaimSet) (string, error) { + b, err := json.Marshal(defaultHeader) + if err != nil { + return "", err + } + header := base64.RawURLEncoding.EncodeToString(b) + + jsonClaims, err := json.Marshal(claims) + if err != nil { + return "", err + } + encodedClaims := strings.TrimRight(base64.URLEncoding.EncodeToString(jsonClaims), "=") + + ss := fmt.Sprintf("%s.%s", header, encodedClaims) + + mac := hmac.New(sha256.New, []byte(key)) + mac.Write([]byte(ss)) + signature := mac.Sum(nil) + + return fmt.Sprintf("%s.%s", ss, base64.RawURLEncoding.EncodeToString(signature)), nil +} diff --git a/vendor/golang.org/x/oauth2/jira/jira_test.go b/vendor/golang.org/x/oauth2/jira/jira_test.go new file mode 100644 index 000000000..c49940dfc --- /dev/null +++ b/vendor/golang.org/x/oauth2/jira/jira_test.go @@ -0,0 +1,185 @@ +// Copyright 2018 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 jira + +import ( + "context" + "encoding/base64" + "encoding/json" + "net/http" + "net/http/httptest" + "strings" + "testing" + + "golang.org/x/oauth2" + "golang.org/x/oauth2/jws" +) + +func TestJWTFetch_JSONResponse(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "application/json") + w.Write([]byte(`{ + "access_token": "90d64460d14870c08c81352a05dedd3465940a7c", + "token_type": "Bearer", + "expires_in": 3600 + }`)) + })) + defer ts.Close() + + conf := &Config{ + BaseURL: "https://my.app.com", + Subject: "userkey", + Config: oauth2.Config{ + ClientID: "super_secret_client_id", + ClientSecret: "super_shared_secret", + Scopes: []string{"read", "write"}, + Endpoint: oauth2.Endpoint{ + AuthURL: "https://example.com", + TokenURL: ts.URL, + }, + }, + } + + tok, err := conf.TokenSource(context.Background()).Token() + if err != nil { + t.Fatal(err) + } + if !tok.Valid() { + t.Errorf("got invalid token: %v", tok) + } + if got, want := tok.AccessToken, "90d64460d14870c08c81352a05dedd3465940a7c"; got != want { + t.Errorf("access token = %q; want %q", got, want) + } + if got, want := tok.TokenType, "Bearer"; got != want { + t.Errorf("token type = %q; want %q", got, want) + } + if got := tok.Expiry.IsZero(); got { + t.Errorf("token expiry = %v, want none", got) + } +} + +func TestJWTFetch_BadResponse(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "application/json") + w.Write([]byte(`{"token_type": "Bearer"}`)) + })) + defer ts.Close() + + conf := &Config{ + BaseURL: "https://my.app.com", + Subject: "userkey", + Config: oauth2.Config{ + ClientID: "super_secret_client_id", + ClientSecret: "super_shared_secret", + Scopes: []string{"read", "write"}, + Endpoint: oauth2.Endpoint{ + AuthURL: "https://example.com", + TokenURL: ts.URL, + }, + }, + } + + tok, err := conf.TokenSource(context.Background()).Token() + if err != nil { + t.Fatal(err) + } + if tok == nil { + t.Fatalf("got nil token; want token") + } + if tok.Valid() { + t.Errorf("got invalid token: %v", tok) + } + if got, want := tok.AccessToken, ""; got != want { + t.Errorf("access token = %q; want %q", got, want) + } + if got, want := tok.TokenType, "Bearer"; got != want { + t.Errorf("token type = %q; want %q", got, want) + } +} + +func TestJWTFetch_BadResponseType(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "application/json") + w.Write([]byte(`{"access_token":123, "token_type": "Bearer"}`)) + })) + defer ts.Close() + + conf := &Config{ + BaseURL: "https://my.app.com", + Subject: "userkey", + Config: oauth2.Config{ + ClientID: "super_secret_client_id", + ClientSecret: "super_shared_secret", + Endpoint: oauth2.Endpoint{ + AuthURL: "https://example.com", + TokenURL: ts.URL, + }, + }, + } + + tok, err := conf.TokenSource(context.Background()).Token() + if err == nil { + t.Error("got a token; expected error") + if got, want := tok.AccessToken, ""; got != want { + t.Errorf("access token = %q; want %q", got, want) + } + } +} + +func TestJWTFetch_Assertion(t *testing.T) { + var assertion string + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + r.ParseForm() + assertion = r.Form.Get("assertion") + + w.Header().Set("Content-Type", "application/json") + w.Write([]byte(`{ + "access_token": "90d64460d14870c08c81352a05dedd3465940a7c", + "token_type": "Bearer", + "expires_in": 3600 + }`)) + })) + defer ts.Close() + + conf := &Config{ + BaseURL: "https://my.app.com", + Subject: "userkey", + Config: oauth2.Config{ + ClientID: "super_secret_client_id", + ClientSecret: "super_shared_secret", + Endpoint: oauth2.Endpoint{ + AuthURL: "https://example.com", + TokenURL: ts.URL, + }, + }, + } + + _, err := conf.TokenSource(context.Background()).Token() + if err != nil { + t.Fatalf("Failed to fetch token: %v", err) + } + + parts := strings.Split(assertion, ".") + if len(parts) != 3 { + t.Fatalf("assertion = %q; want 3 parts", assertion) + } + gotjson, err := base64.RawURLEncoding.DecodeString(parts[0]) + if err != nil { + t.Fatalf("invalid token header; err = %v", err) + } + + got := jws.Header{} + if err := json.Unmarshal(gotjson, &got); err != nil { + t.Errorf("failed to unmarshal json token header = %q; err = %v", gotjson, err) + } + + want := jws.Header{ + Algorithm: "HS256", + Typ: "JWT", + } + if got != want { + t.Errorf("access token header = %q; want %q", got, want) + } +} diff --git a/vendor/golang.org/x/oauth2/jws/jws.go b/vendor/golang.org/x/oauth2/jws/jws.go new file mode 100644 index 000000000..683d2d271 --- /dev/null +++ b/vendor/golang.org/x/oauth2/jws/jws.go @@ -0,0 +1,182 @@ +// Copyright 2014 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 jws provides a partial implementation +// of JSON Web Signature encoding and decoding. +// It exists to support the golang.org/x/oauth2 package. +// +// See RFC 7515. +// +// Deprecated: this package is not intended for public use and might be +// removed in the future. It exists for internal use only. +// Please switch to another JWS package or copy this package into your own +// source tree. +package jws // import "golang.org/x/oauth2/jws" + +import ( + "bytes" + "crypto" + "crypto/rand" + "crypto/rsa" + "crypto/sha256" + "encoding/base64" + "encoding/json" + "errors" + "fmt" + "strings" + "time" +) + +// ClaimSet contains information about the JWT signature including the +// permissions being requested (scopes), the target of the token, the issuer, +// the time the token was issued, and the lifetime of the token. +type ClaimSet struct { + Iss string `json:"iss"` // email address of the client_id of the application making the access token request + Scope string `json:"scope,omitempty"` // space-delimited list of the permissions the application requests + Aud string `json:"aud"` // descriptor of the intended target of the assertion (Optional). + Exp int64 `json:"exp"` // the expiration time of the assertion (seconds since Unix epoch) + Iat int64 `json:"iat"` // the time the assertion was issued (seconds since Unix epoch) + Typ string `json:"typ,omitempty"` // token type (Optional). + + // Email for which the application is requesting delegated access (Optional). + Sub string `json:"sub,omitempty"` + + // The old name of Sub. Client keeps setting Prn to be + // complaint with legacy OAuth 2.0 providers. (Optional) + Prn string `json:"prn,omitempty"` + + // See http://tools.ietf.org/html/draft-jones-json-web-token-10#section-4.3 + // This array is marshalled using custom code (see (c *ClaimSet) encode()). + PrivateClaims map[string]interface{} `json:"-"` +} + +func (c *ClaimSet) encode() (string, error) { + // Reverting time back for machines whose time is not perfectly in sync. + // If client machine's time is in the future according + // to Google servers, an access token will not be issued. + now := time.Now().Add(-10 * time.Second) + if c.Iat == 0 { + c.Iat = now.Unix() + } + if c.Exp == 0 { + c.Exp = now.Add(time.Hour).Unix() + } + if c.Exp < c.Iat { + return "", fmt.Errorf("jws: invalid Exp = %v; must be later than Iat = %v", c.Exp, c.Iat) + } + + b, err := json.Marshal(c) + if err != nil { + return "", err + } + + if len(c.PrivateClaims) == 0 { + return base64.RawURLEncoding.EncodeToString(b), nil + } + + // Marshal private claim set and then append it to b. + prv, err := json.Marshal(c.PrivateClaims) + if err != nil { + return "", fmt.Errorf("jws: invalid map of private claims %v", c.PrivateClaims) + } + + // Concatenate public and private claim JSON objects. + if !bytes.HasSuffix(b, []byte{'}'}) { + return "", fmt.Errorf("jws: invalid JSON %s", b) + } + if !bytes.HasPrefix(prv, []byte{'{'}) { + return "", fmt.Errorf("jws: invalid JSON %s", prv) + } + b[len(b)-1] = ',' // Replace closing curly brace with a comma. + b = append(b, prv[1:]...) // Append private claims. + return base64.RawURLEncoding.EncodeToString(b), nil +} + +// Header represents the header for the signed JWS payloads. +type Header struct { + // The algorithm used for signature. + Algorithm string `json:"alg"` + + // Represents the token type. + Typ string `json:"typ"` + + // The optional hint of which key is being used. + KeyID string `json:"kid,omitempty"` +} + +func (h *Header) encode() (string, error) { + b, err := json.Marshal(h) + if err != nil { + return "", err + } + return base64.RawURLEncoding.EncodeToString(b), nil +} + +// Decode decodes a claim set from a JWS payload. +func Decode(payload string) (*ClaimSet, error) { + // decode returned id token to get expiry + s := strings.Split(payload, ".") + if len(s) < 2 { + // TODO(jbd): Provide more context about the error. + return nil, errors.New("jws: invalid token received") + } + decoded, err := base64.RawURLEncoding.DecodeString(s[1]) + if err != nil { + return nil, err + } + c := &ClaimSet{} + err = json.NewDecoder(bytes.NewBuffer(decoded)).Decode(c) + return c, err +} + +// Signer returns a signature for the given data. +type Signer func(data []byte) (sig []byte, err error) + +// EncodeWithSigner encodes a header and claim set with the provided signer. +func EncodeWithSigner(header *Header, c *ClaimSet, sg Signer) (string, error) { + head, err := header.encode() + if err != nil { + return "", err + } + cs, err := c.encode() + if err != nil { + return "", err + } + ss := fmt.Sprintf("%s.%s", head, cs) + sig, err := sg([]byte(ss)) + if err != nil { + return "", err + } + return fmt.Sprintf("%s.%s", ss, base64.RawURLEncoding.EncodeToString(sig)), nil +} + +// Encode encodes a signed JWS with provided header and claim set. +// This invokes EncodeWithSigner using crypto/rsa.SignPKCS1v15 with the given RSA private key. +func Encode(header *Header, c *ClaimSet, key *rsa.PrivateKey) (string, error) { + sg := func(data []byte) (sig []byte, err error) { + h := sha256.New() + h.Write(data) + return rsa.SignPKCS1v15(rand.Reader, key, crypto.SHA256, h.Sum(nil)) + } + return EncodeWithSigner(header, c, sg) +} + +// Verify tests whether the provided JWT token's signature was produced by the private key +// associated with the supplied public key. +func Verify(token string, key *rsa.PublicKey) error { + parts := strings.Split(token, ".") + if len(parts) != 3 { + return errors.New("jws: invalid token received, token must have 3 parts") + } + + signedContent := parts[0] + "." + parts[1] + signatureString, err := base64.RawURLEncoding.DecodeString(parts[2]) + if err != nil { + return err + } + + h := sha256.New() + h.Write([]byte(signedContent)) + return rsa.VerifyPKCS1v15(key, crypto.SHA256, h.Sum(nil), []byte(signatureString)) +} diff --git a/vendor/golang.org/x/oauth2/jws/jws_test.go b/vendor/golang.org/x/oauth2/jws/jws_test.go new file mode 100644 index 000000000..39a136a29 --- /dev/null +++ b/vendor/golang.org/x/oauth2/jws/jws_test.go @@ -0,0 +1,46 @@ +// Copyright 2016 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 jws + +import ( + "crypto/rand" + "crypto/rsa" + "testing" +) + +func TestSignAndVerify(t *testing.T) { + header := &Header{ + Algorithm: "RS256", + Typ: "JWT", + } + payload := &ClaimSet{ + Iss: "http://google.com/", + Aud: "", + Exp: 3610, + Iat: 10, + } + + privateKey, err := rsa.GenerateKey(rand.Reader, 2048) + if err != nil { + t.Fatal(err) + } + + token, err := Encode(header, payload, privateKey) + if err != nil { + t.Fatal(err) + } + + err = Verify(token, &privateKey.PublicKey) + if err != nil { + t.Fatal(err) + } +} + +func TestVerifyFailsOnMalformedClaim(t *testing.T) { + err := Verify("abc.def", nil) + if err == nil { + t.Error("got no errors; want improperly formed JWT not to be verified") + } +} diff --git a/vendor/golang.org/x/oauth2/jwt/example_test.go b/vendor/golang.org/x/oauth2/jwt/example_test.go new file mode 100644 index 000000000..58503d80d --- /dev/null +++ b/vendor/golang.org/x/oauth2/jwt/example_test.go @@ -0,0 +1,33 @@ +// Copyright 2014 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 jwt_test + +import ( + "context" + + "golang.org/x/oauth2/jwt" +) + +func ExampleJWTConfig() { + ctx := context.Background() + conf := &jwt.Config{ + Email: "xxx@developer.com", + // The contents of your RSA private key or your PEM file + // that contains a private key. + // If you have a p12 file instead, you + // can use `openssl` to export the private key into a pem file. + // + // $ openssl pkcs12 -in key.p12 -out key.pem -nodes + // + // It only supports PEM containers with no passphrase. + PrivateKey: []byte("-----BEGIN RSA PRIVATE KEY-----..."), + Subject: "user@example.com", + TokenURL: "https://provider.com/o/oauth2/token", + } + // Initiate an http.Client, the following GET request will be + // authorized and authenticated on the behalf of user@example.com. + client := conf.Client(ctx) + client.Get("...") +} diff --git a/vendor/golang.org/x/oauth2/jwt/jwt.go b/vendor/golang.org/x/oauth2/jwt/jwt.go new file mode 100644 index 000000000..0783a94c4 --- /dev/null +++ b/vendor/golang.org/x/oauth2/jwt/jwt.go @@ -0,0 +1,162 @@ +// Copyright 2014 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 jwt implements the OAuth 2.0 JSON Web Token flow, commonly +// known as "two-legged OAuth 2.0". +// +// See: https://tools.ietf.org/html/draft-ietf-oauth-jwt-bearer-12 +package jwt + +import ( + "context" + "encoding/json" + "fmt" + "io" + "io/ioutil" + "net/http" + "net/url" + "strings" + "time" + + "golang.org/x/oauth2" + "golang.org/x/oauth2/internal" + "golang.org/x/oauth2/jws" +) + +var ( + defaultGrantType = "urn:ietf:params:oauth:grant-type:jwt-bearer" + defaultHeader = &jws.Header{Algorithm: "RS256", Typ: "JWT"} +) + +// Config is the configuration for using JWT to fetch tokens, +// commonly known as "two-legged OAuth 2.0". +type Config struct { + // Email is the OAuth client identifier used when communicating with + // the configured OAuth provider. + Email string + + // PrivateKey contains the contents of an RSA private key or the + // contents of a PEM file that contains a private key. The provided + // private key is used to sign JWT payloads. + // PEM containers with a passphrase are not supported. + // Use the following command to convert a PKCS 12 file into a PEM. + // + // $ openssl pkcs12 -in key.p12 -out key.pem -nodes + // + PrivateKey []byte + + // PrivateKeyID contains an optional hint indicating which key is being + // used. + PrivateKeyID string + + // Subject is the optional user to impersonate. + Subject string + + // Scopes optionally specifies a list of requested permission scopes. + Scopes []string + + // TokenURL is the endpoint required to complete the 2-legged JWT flow. + TokenURL string + + // Expires optionally specifies how long the token is valid for. + Expires time.Duration +} + +// TokenSource returns a JWT TokenSource using the configuration +// in c and the HTTP client from the provided context. +func (c *Config) TokenSource(ctx context.Context) oauth2.TokenSource { + return oauth2.ReuseTokenSource(nil, jwtSource{ctx, c}) +} + +// Client returns an HTTP client wrapping the context's +// HTTP transport and adding Authorization headers with tokens +// obtained from c. +// +// The returned client and its Transport should not be modified. +func (c *Config) Client(ctx context.Context) *http.Client { + return oauth2.NewClient(ctx, c.TokenSource(ctx)) +} + +// jwtSource is a source that always does a signed JWT request for a token. +// It should typically be wrapped with a reuseTokenSource. +type jwtSource struct { + ctx context.Context + conf *Config +} + +func (js jwtSource) Token() (*oauth2.Token, error) { + pk, err := internal.ParseKey(js.conf.PrivateKey) + if err != nil { + return nil, err + } + hc := oauth2.NewClient(js.ctx, nil) + claimSet := &jws.ClaimSet{ + Iss: js.conf.Email, + Scope: strings.Join(js.conf.Scopes, " "), + Aud: js.conf.TokenURL, + } + if subject := js.conf.Subject; subject != "" { + claimSet.Sub = subject + // prn is the old name of sub. Keep setting it + // to be compatible with legacy OAuth 2.0 providers. + claimSet.Prn = subject + } + if t := js.conf.Expires; t > 0 { + claimSet.Exp = time.Now().Add(t).Unix() + } + h := *defaultHeader + h.KeyID = js.conf.PrivateKeyID + payload, err := jws.Encode(&h, claimSet, pk) + if err != nil { + return nil, err + } + v := url.Values{} + v.Set("grant_type", defaultGrantType) + v.Set("assertion", payload) + resp, err := hc.PostForm(js.conf.TokenURL, v) + if err != nil { + return nil, fmt.Errorf("oauth2: cannot fetch token: %v", err) + } + defer resp.Body.Close() + body, err := ioutil.ReadAll(io.LimitReader(resp.Body, 1<<20)) + if err != nil { + return nil, fmt.Errorf("oauth2: cannot fetch token: %v", err) + } + if c := resp.StatusCode; c < 200 || c > 299 { + return nil, &oauth2.RetrieveError{ + Response: resp, + Body: body, + } + } + // tokenRes is the JSON response body. + var tokenRes struct { + AccessToken string `json:"access_token"` + TokenType string `json:"token_type"` + IDToken string `json:"id_token"` + ExpiresIn int64 `json:"expires_in"` // relative seconds from now + } + if err := json.Unmarshal(body, &tokenRes); err != nil { + return nil, fmt.Errorf("oauth2: cannot fetch token: %v", err) + } + token := &oauth2.Token{ + AccessToken: tokenRes.AccessToken, + TokenType: tokenRes.TokenType, + } + raw := make(map[string]interface{}) + json.Unmarshal(body, &raw) // no error checks for optional fields + token = token.WithExtra(raw) + + if secs := tokenRes.ExpiresIn; secs > 0 { + token.Expiry = time.Now().Add(time.Duration(secs) * time.Second) + } + if v := tokenRes.IDToken; v != "" { + // decode returned id token to get expiry + claimSet, err := jws.Decode(v) + if err != nil { + return nil, fmt.Errorf("oauth2: error decoding JWT token: %v", err) + } + token.Expiry = time.Unix(claimSet.Exp, 0) + } + return token, nil +} diff --git a/vendor/golang.org/x/oauth2/jwt/jwt_test.go b/vendor/golang.org/x/oauth2/jwt/jwt_test.go new file mode 100644 index 000000000..1fbb9aa7d --- /dev/null +++ b/vendor/golang.org/x/oauth2/jwt/jwt_test.go @@ -0,0 +1,221 @@ +// Copyright 2014 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 jwt + +import ( + "context" + "encoding/base64" + "encoding/json" + "fmt" + "net/http" + "net/http/httptest" + "strings" + "testing" + + "golang.org/x/oauth2" + "golang.org/x/oauth2/jws" +) + +var dummyPrivateKey = []byte(`-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEAx4fm7dngEmOULNmAs1IGZ9Apfzh+BkaQ1dzkmbUgpcoghucE +DZRnAGd2aPyB6skGMXUytWQvNYav0WTR00wFtX1ohWTfv68HGXJ8QXCpyoSKSSFY +fuP9X36wBSkSX9J5DVgiuzD5VBdzUISSmapjKm+DcbRALjz6OUIPEWi1Tjl6p5RK +1w41qdbmt7E5/kGhKLDuT7+M83g4VWhgIvaAXtnhklDAggilPPa8ZJ1IFe31lNlr +k4DRk38nc6sEutdf3RL7QoH7FBusI7uXV03DC6dwN1kP4GE7bjJhcRb/7jYt7CQ9 +/E9Exz3c0yAp0yrTg0Fwh+qxfH9dKwN52S7SBwIDAQABAoIBAQCaCs26K07WY5Jt +3a2Cw3y2gPrIgTCqX6hJs7O5ByEhXZ8nBwsWANBUe4vrGaajQHdLj5OKfsIDrOvn +2NI1MqflqeAbu/kR32q3tq8/Rl+PPiwUsW3E6Pcf1orGMSNCXxeducF2iySySzh3 +nSIhCG5uwJDWI7a4+9KiieFgK1pt/Iv30q1SQS8IEntTfXYwANQrfKUVMmVF9aIK +6/WZE2yd5+q3wVVIJ6jsmTzoDCX6QQkkJICIYwCkglmVy5AeTckOVwcXL0jqw5Kf +5/soZJQwLEyBoQq7Kbpa26QHq+CJONetPP8Ssy8MJJXBT+u/bSseMb3Zsr5cr43e +DJOhwsThAoGBAPY6rPKl2NT/K7XfRCGm1sbWjUQyDShscwuWJ5+kD0yudnT/ZEJ1 +M3+KS/iOOAoHDdEDi9crRvMl0UfNa8MAcDKHflzxg2jg/QI+fTBjPP5GOX0lkZ9g +z6VePoVoQw2gpPFVNPPTxKfk27tEzbaffvOLGBEih0Kb7HTINkW8rIlzAoGBAM9y +1yr+jvfS1cGFtNU+Gotoihw2eMKtIqR03Yn3n0PK1nVCDKqwdUqCypz4+ml6cxRK +J8+Pfdh7D+ZJd4LEG6Y4QRDLuv5OA700tUoSHxMSNn3q9As4+T3MUyYxWKvTeu3U +f2NWP9ePU0lV8ttk7YlpVRaPQmc1qwooBA/z/8AdAoGAW9x0HWqmRICWTBnpjyxx +QGlW9rQ9mHEtUotIaRSJ6K/F3cxSGUEkX1a3FRnp6kPLcckC6NlqdNgNBd6rb2rA +cPl/uSkZP42Als+9YMoFPU/xrrDPbUhu72EDrj3Bllnyb168jKLa4VBOccUvggxr +Dm08I1hgYgdN5huzs7y6GeUCgYEAj+AZJSOJ6o1aXS6rfV3mMRve9bQ9yt8jcKXw +5HhOCEmMtaSKfnOF1Ziih34Sxsb7O2428DiX0mV/YHtBnPsAJidL0SdLWIapBzeg +KHArByIRkwE6IvJvwpGMdaex1PIGhx5i/3VZL9qiq/ElT05PhIb+UXgoWMabCp84 +OgxDK20CgYAeaFo8BdQ7FmVX2+EEejF+8xSge6WVLtkaon8bqcn6P0O8lLypoOhd +mJAYH8WU+UAy9pecUnDZj14LAGNVmYcse8HFX71MoshnvCTFEPVo4rZxIAGwMpeJ +5jgQ3slYLpqrGlcbLgUXBUgzEO684Wk/UV9DFPlHALVqCfXQ9dpJPg== +-----END RSA PRIVATE KEY-----`) + +func TestJWTFetch_JSONResponse(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "application/json") + w.Write([]byte(`{ + "access_token": "90d64460d14870c08c81352a05dedd3465940a7c", + "scope": "user", + "token_type": "bearer", + "expires_in": 3600 + }`)) + })) + defer ts.Close() + + conf := &Config{ + Email: "aaa@xxx.com", + PrivateKey: dummyPrivateKey, + TokenURL: ts.URL, + } + tok, err := conf.TokenSource(context.Background()).Token() + if err != nil { + t.Fatal(err) + } + if !tok.Valid() { + t.Errorf("got invalid token: %v", tok) + } + if got, want := tok.AccessToken, "90d64460d14870c08c81352a05dedd3465940a7c"; got != want { + t.Errorf("access token = %q; want %q", got, want) + } + if got, want := tok.TokenType, "bearer"; got != want { + t.Errorf("token type = %q; want %q", got, want) + } + if got := tok.Expiry.IsZero(); got { + t.Errorf("token expiry = %v, want none", got) + } + scope := tok.Extra("scope") + if got, want := scope, "user"; got != want { + t.Errorf("scope = %q; want %q", got, want) + } +} + +func TestJWTFetch_BadResponse(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "application/json") + w.Write([]byte(`{"scope": "user", "token_type": "bearer"}`)) + })) + defer ts.Close() + + conf := &Config{ + Email: "aaa@xxx.com", + PrivateKey: dummyPrivateKey, + TokenURL: ts.URL, + } + tok, err := conf.TokenSource(context.Background()).Token() + if err != nil { + t.Fatal(err) + } + if tok == nil { + t.Fatalf("got nil token; want token") + } + if tok.Valid() { + t.Errorf("got invalid token: %v", tok) + } + if got, want := tok.AccessToken, ""; got != want { + t.Errorf("access token = %q; want %q", got, want) + } + if got, want := tok.TokenType, "bearer"; got != want { + t.Errorf("token type = %q; want %q", got, want) + } + scope := tok.Extra("scope") + if got, want := scope, "user"; got != want { + t.Errorf("token scope = %q; want %q", got, want) + } +} + +func TestJWTFetch_BadResponseType(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "application/json") + w.Write([]byte(`{"access_token":123, "scope": "user", "token_type": "bearer"}`)) + })) + defer ts.Close() + conf := &Config{ + Email: "aaa@xxx.com", + PrivateKey: dummyPrivateKey, + TokenURL: ts.URL, + } + tok, err := conf.TokenSource(context.Background()).Token() + if err == nil { + t.Error("got a token; expected error") + if got, want := tok.AccessToken, ""; got != want { + t.Errorf("access token = %q; want %q", got, want) + } + } +} + +func TestJWTFetch_Assertion(t *testing.T) { + var assertion string + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + r.ParseForm() + assertion = r.Form.Get("assertion") + + w.Header().Set("Content-Type", "application/json") + w.Write([]byte(`{ + "access_token": "90d64460d14870c08c81352a05dedd3465940a7c", + "scope": "user", + "token_type": "bearer", + "expires_in": 3600 + }`)) + })) + defer ts.Close() + + conf := &Config{ + Email: "aaa@xxx.com", + PrivateKey: dummyPrivateKey, + PrivateKeyID: "ABCDEFGHIJKLMNOPQRSTUVWXYZ", + TokenURL: ts.URL, + } + + _, err := conf.TokenSource(context.Background()).Token() + if err != nil { + t.Fatalf("Failed to fetch token: %v", err) + } + + parts := strings.Split(assertion, ".") + if len(parts) != 3 { + t.Fatalf("assertion = %q; want 3 parts", assertion) + } + gotjson, err := base64.RawURLEncoding.DecodeString(parts[0]) + if err != nil { + t.Fatalf("invalid token header; err = %v", err) + } + + got := jws.Header{} + if err := json.Unmarshal(gotjson, &got); err != nil { + t.Errorf("failed to unmarshal json token header = %q; err = %v", gotjson, err) + } + + want := jws.Header{ + Algorithm: "RS256", + Typ: "JWT", + KeyID: "ABCDEFGHIJKLMNOPQRSTUVWXYZ", + } + if got != want { + t.Errorf("access token header = %q; want %q", got, want) + } +} + +func TestTokenRetrieveError(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-type", "application/json") + w.WriteHeader(http.StatusBadRequest) + w.Write([]byte(`{"error": "invalid_grant"}`)) + })) + defer ts.Close() + + conf := &Config{ + Email: "aaa@xxx.com", + PrivateKey: dummyPrivateKey, + TokenURL: ts.URL, + } + + _, err := conf.TokenSource(context.Background()).Token() + if err == nil { + t.Fatalf("got no error, expected one") + } + _, ok := err.(*oauth2.RetrieveError) + if !ok { + t.Fatalf("got %T error, expected *RetrieveError", err) + } + // Test error string for backwards compatibility + expected := fmt.Sprintf("oauth2: cannot fetch token: %v\nResponse: %s", "400 Bad Request", `{"error": "invalid_grant"}`) + if errStr := err.Error(); errStr != expected { + t.Fatalf("got %#v, expected %#v", errStr, expected) + } +} diff --git a/vendor/golang.org/x/oauth2/kakao/kakao.go b/vendor/golang.org/x/oauth2/kakao/kakao.go new file mode 100644 index 000000000..6d211260c --- /dev/null +++ b/vendor/golang.org/x/oauth2/kakao/kakao.go @@ -0,0 +1,16 @@ +// Copyright 2018 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 kakao provides constants for using OAuth2 to access Kakao. +package kakao // import "golang.org/x/oauth2/kakao" + +import ( + "golang.org/x/oauth2" +) + +// Endpoint is Kakao's OAuth 2.0 endpoint. +var Endpoint = oauth2.Endpoint{ + AuthURL: "https://kauth.kakao.com/oauth/authorize", + TokenURL: "https://kauth.kakao.com/oauth/token", +} diff --git a/vendor/golang.org/x/oauth2/linkedin/linkedin.go b/vendor/golang.org/x/oauth2/linkedin/linkedin.go new file mode 100644 index 000000000..62d1de817 --- /dev/null +++ b/vendor/golang.org/x/oauth2/linkedin/linkedin.go @@ -0,0 +1,16 @@ +// Copyright 2015 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 linkedin provides constants for using OAuth2 to access LinkedIn. +package linkedin // import "golang.org/x/oauth2/linkedin" + +import ( + "golang.org/x/oauth2" +) + +// Endpoint is LinkedIn's OAuth 2.0 endpoint. +var Endpoint = oauth2.Endpoint{ + AuthURL: "https://www.linkedin.com/oauth/v2/authorization", + TokenURL: "https://www.linkedin.com/oauth/v2/accessToken", +} diff --git a/vendor/golang.org/x/oauth2/mailchimp/mailchimp.go b/vendor/golang.org/x/oauth2/mailchimp/mailchimp.go new file mode 100644 index 000000000..647787ec6 --- /dev/null +++ b/vendor/golang.org/x/oauth2/mailchimp/mailchimp.go @@ -0,0 +1,17 @@ +// Copyright 2018 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 mailchimp provides constants for using OAuth2 to access MailChimp. +package mailchimp // import "golang.org/x/oauth2/mailchimp" + +import ( + "golang.org/x/oauth2" +) + +// Endpoint is MailChimp's OAuth 2.0 endpoint. +// See http://developer.mailchimp.com/documentation/mailchimp/guides/how-to-use-oauth2/ +var Endpoint = oauth2.Endpoint{ + AuthURL: "https://login.mailchimp.com/oauth2/authorize", + TokenURL: "https://login.mailchimp.com/oauth2/token", +} diff --git a/vendor/golang.org/x/oauth2/mailru/mailru.go b/vendor/golang.org/x/oauth2/mailru/mailru.go new file mode 100644 index 000000000..dddd9dd0f --- /dev/null +++ b/vendor/golang.org/x/oauth2/mailru/mailru.go @@ -0,0 +1,16 @@ +// 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 mailru provides constants for using OAuth2 to access Mail.Ru. +package mailru // import "golang.org/x/oauth2/mailru" + +import ( + "golang.org/x/oauth2" +) + +// Endpoint is Mail.Ru's OAuth 2.0 endpoint. +var Endpoint = oauth2.Endpoint{ + AuthURL: "https://o2.mail.ru/login", + TokenURL: "https://o2.mail.ru/token", +} diff --git a/vendor/golang.org/x/oauth2/mediamath/mediamath.go b/vendor/golang.org/x/oauth2/mediamath/mediamath.go new file mode 100644 index 000000000..3ebce5da1 --- /dev/null +++ b/vendor/golang.org/x/oauth2/mediamath/mediamath.go @@ -0,0 +1,22 @@ +// Copyright 2016 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 mediamath provides constants for using OAuth2 to access MediaMath. +package mediamath // import "golang.org/x/oauth2/mediamath" + +import ( + "golang.org/x/oauth2" +) + +// Endpoint is MediaMath's OAuth 2.0 endpoint for production. +var Endpoint = oauth2.Endpoint{ + AuthURL: "https://api.mediamath.com/oauth2/v1.0/authorize", + TokenURL: "https://api.mediamath.com/oauth2/v1.0/token", +} + +// SandboxEndpoint is MediaMath's OAuth 2.0 endpoint for sandbox. +var SandboxEndpoint = oauth2.Endpoint{ + AuthURL: "https://t1sandbox.mediamath.com/oauth2/v1.0/authorize", + TokenURL: "https://t1sandbox.mediamath.com/oauth2/v1.0/token", +} diff --git a/vendor/golang.org/x/oauth2/microsoft/microsoft.go b/vendor/golang.org/x/oauth2/microsoft/microsoft.go new file mode 100644 index 000000000..3ffbc57a6 --- /dev/null +++ b/vendor/golang.org/x/oauth2/microsoft/microsoft.go @@ -0,0 +1,31 @@ +// Copyright 2016 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 microsoft provides constants for using OAuth2 to access Windows Live ID. +package microsoft // import "golang.org/x/oauth2/microsoft" + +import ( + "golang.org/x/oauth2" +) + +// LiveConnectEndpoint is Windows's Live ID OAuth 2.0 endpoint. +var LiveConnectEndpoint = oauth2.Endpoint{ + AuthURL: "https://login.live.com/oauth20_authorize.srf", + TokenURL: "https://login.live.com/oauth20_token.srf", +} + +// AzureADEndpoint returns a new oauth2.Endpoint for the given tenant at Azure Active Directory. +// If tenant is empty, it uses the tenant called `common`. +// +// For more information see: +// https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-protocols#endpoints +func AzureADEndpoint(tenant string) oauth2.Endpoint { + if tenant == "" { + tenant = "common" + } + return oauth2.Endpoint{ + AuthURL: "https://login.microsoftonline.com/" + tenant + "/oauth2/v2.0/authorize", + TokenURL: "https://login.microsoftonline.com/" + tenant + "/oauth2/v2.0/token", + } +} diff --git a/vendor/golang.org/x/oauth2/nokiahealth/nokiahealth.go b/vendor/golang.org/x/oauth2/nokiahealth/nokiahealth.go new file mode 100644 index 000000000..c181ccd0f --- /dev/null +++ b/vendor/golang.org/x/oauth2/nokiahealth/nokiahealth.go @@ -0,0 +1,16 @@ +// Copyright 2018 The oauth2 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 nokiahealth provides constants for using OAuth2 to access the Nokia Health Mate API. +package nokiahealth + +import ( + "golang.org/x/oauth2" +) + +// Endpoint is Nokia Health Mate's OAuth 2.0 endpoint. +var Endpoint = oauth2.Endpoint{ + AuthURL: "https://account.health.nokia.com/oauth2_user/authorize2", + TokenURL: "https://account.health.nokia.com/oauth2/token", +} diff --git a/vendor/golang.org/x/oauth2/oauth2.go b/vendor/golang.org/x/oauth2/oauth2.go new file mode 100644 index 000000000..1e8e1b741 --- /dev/null +++ b/vendor/golang.org/x/oauth2/oauth2.go @@ -0,0 +1,360 @@ +// Copyright 2014 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 oauth2 provides support for making +// OAuth2 authorized and authenticated HTTP requests, +// as specified in RFC 6749. +// It can additionally grant authorization with Bearer JWT. +package oauth2 // import "golang.org/x/oauth2" + +import ( + "bytes" + "context" + "errors" + "net/http" + "net/url" + "strings" + "sync" + + "golang.org/x/oauth2/internal" +) + +// NoContext is the default context you should supply if not using +// your own context.Context (see https://golang.org/x/net/context). +// +// Deprecated: Use context.Background() or context.TODO() instead. +var NoContext = context.TODO() + +// RegisterBrokenAuthHeaderProvider registers an OAuth2 server +// identified by the tokenURL prefix as an OAuth2 implementation +// which doesn't support the HTTP Basic authentication +// scheme to authenticate with the authorization server. +// Once a server is registered, credentials (client_id and client_secret) +// will be passed as query parameters rather than being present +// in the Authorization header. +// See https://code.google.com/p/goauth2/issues/detail?id=31 for background. +func RegisterBrokenAuthHeaderProvider(tokenURL string) { + internal.RegisterBrokenAuthHeaderProvider(tokenURL) +} + +// Config describes a typical 3-legged OAuth2 flow, with both the +// client application information and the server's endpoint URLs. +// For the client credentials 2-legged OAuth2 flow, see the clientcredentials +// package (https://golang.org/x/oauth2/clientcredentials). +type Config struct { + // ClientID is the application's ID. + ClientID string + + // ClientSecret is the application's secret. + ClientSecret string + + // Endpoint contains the resource server's token endpoint + // URLs. These are constants specific to each server and are + // often available via site-specific packages, such as + // google.Endpoint or github.Endpoint. + Endpoint Endpoint + + // RedirectURL is the URL to redirect users going through + // the OAuth flow, after the resource owner's URLs. + RedirectURL string + + // Scope specifies optional requested permissions. + Scopes []string +} + +// A TokenSource is anything that can return a token. +type TokenSource interface { + // Token returns a token or an error. + // Token must be safe for concurrent use by multiple goroutines. + // The returned Token must not be modified. + Token() (*Token, error) +} + +// Endpoint contains the OAuth 2.0 provider's authorization and token +// endpoint URLs. +type Endpoint struct { + AuthURL string + TokenURL string +} + +var ( + // AccessTypeOnline and AccessTypeOffline are options passed + // to the Options.AuthCodeURL method. They modify the + // "access_type" field that gets sent in the URL returned by + // AuthCodeURL. + // + // Online is the default if neither is specified. If your + // application needs to refresh access tokens when the user + // is not present at the browser, then use offline. This will + // result in your application obtaining a refresh token the + // first time your application exchanges an authorization + // code for a user. + AccessTypeOnline AuthCodeOption = SetAuthURLParam("access_type", "online") + AccessTypeOffline AuthCodeOption = SetAuthURLParam("access_type", "offline") + + // ApprovalForce forces the users to view the consent dialog + // and confirm the permissions request at the URL returned + // from AuthCodeURL, even if they've already done so. + ApprovalForce AuthCodeOption = SetAuthURLParam("approval_prompt", "force") +) + +// An AuthCodeOption is passed to Config.AuthCodeURL. +type AuthCodeOption interface { + setValue(url.Values) +} + +type setParam struct{ k, v string } + +func (p setParam) setValue(m url.Values) { m.Set(p.k, p.v) } + +// SetAuthURLParam builds an AuthCodeOption which passes key/value parameters +// to a provider's authorization endpoint. +func SetAuthURLParam(key, value string) AuthCodeOption { + return setParam{key, value} +} + +// AuthCodeURL returns a URL to OAuth 2.0 provider's consent page +// that asks for permissions for the required scopes explicitly. +// +// State is a token to protect the user from CSRF attacks. You must +// always provide a non-empty string and validate that it matches the +// the state query parameter on your redirect callback. +// See http://tools.ietf.org/html/rfc6749#section-10.12 for more info. +// +// Opts may include AccessTypeOnline or AccessTypeOffline, as well +// as ApprovalForce. +// It can also be used to pass the PKCE challange. +// See https://www.oauth.com/oauth2-servers/pkce/ for more info. +func (c *Config) AuthCodeURL(state string, opts ...AuthCodeOption) string { + var buf bytes.Buffer + buf.WriteString(c.Endpoint.AuthURL) + v := url.Values{ + "response_type": {"code"}, + "client_id": {c.ClientID}, + } + if c.RedirectURL != "" { + v.Set("redirect_uri", c.RedirectURL) + } + if len(c.Scopes) > 0 { + v.Set("scope", strings.Join(c.Scopes, " ")) + } + if state != "" { + // TODO(light): Docs say never to omit state; don't allow empty. + v.Set("state", state) + } + for _, opt := range opts { + opt.setValue(v) + } + if strings.Contains(c.Endpoint.AuthURL, "?") { + buf.WriteByte('&') + } else { + buf.WriteByte('?') + } + buf.WriteString(v.Encode()) + return buf.String() +} + +// PasswordCredentialsToken converts a resource owner username and password +// pair into a token. +// +// Per the RFC, this grant type should only be used "when there is a high +// degree of trust between the resource owner and the client (e.g., the client +// is part of the device operating system or a highly privileged application), +// and when other authorization grant types are not available." +// See https://tools.ietf.org/html/rfc6749#section-4.3 for more info. +// +// The provided context optionally controls which HTTP client is used. See the HTTPClient variable. +func (c *Config) PasswordCredentialsToken(ctx context.Context, username, password string) (*Token, error) { + v := url.Values{ + "grant_type": {"password"}, + "username": {username}, + "password": {password}, + } + if len(c.Scopes) > 0 { + v.Set("scope", strings.Join(c.Scopes, " ")) + } + return retrieveToken(ctx, c, v) +} + +// Exchange converts an authorization code into a token. +// +// It is used after a resource provider redirects the user back +// to the Redirect URI (the URL obtained from AuthCodeURL). +// +// The provided context optionally controls which HTTP client is used. See the HTTPClient variable. +// +// The code will be in the *http.Request.FormValue("code"). Before +// calling Exchange, be sure to validate FormValue("state"). +// +// Opts may include the PKCE verifier code if previously used in AuthCodeURL. +// See https://www.oauth.com/oauth2-servers/pkce/ for more info. +func (c *Config) Exchange(ctx context.Context, code string, opts ...AuthCodeOption) (*Token, error) { + v := url.Values{ + "grant_type": {"authorization_code"}, + "code": {code}, + } + if c.RedirectURL != "" { + v.Set("redirect_uri", c.RedirectURL) + } + for _, opt := range opts { + opt.setValue(v) + } + return retrieveToken(ctx, c, v) +} + +// Client returns an HTTP client using the provided token. +// The token will auto-refresh as necessary. The underlying +// HTTP transport will be obtained using the provided context. +// The returned client and its Transport should not be modified. +func (c *Config) Client(ctx context.Context, t *Token) *http.Client { + return NewClient(ctx, c.TokenSource(ctx, t)) +} + +// TokenSource returns a TokenSource that returns t until t expires, +// automatically refreshing it as necessary using the provided context. +// +// Most users will use Config.Client instead. +func (c *Config) TokenSource(ctx context.Context, t *Token) TokenSource { + tkr := &tokenRefresher{ + ctx: ctx, + conf: c, + } + if t != nil { + tkr.refreshToken = t.RefreshToken + } + return &reuseTokenSource{ + t: t, + new: tkr, + } +} + +// tokenRefresher is a TokenSource that makes "grant_type"=="refresh_token" +// HTTP requests to renew a token using a RefreshToken. +type tokenRefresher struct { + ctx context.Context // used to get HTTP requests + conf *Config + refreshToken string +} + +// WARNING: Token is not safe for concurrent access, as it +// updates the tokenRefresher's refreshToken field. +// Within this package, it is used by reuseTokenSource which +// synchronizes calls to this method with its own mutex. +func (tf *tokenRefresher) Token() (*Token, error) { + if tf.refreshToken == "" { + return nil, errors.New("oauth2: token expired and refresh token is not set") + } + + tk, err := retrieveToken(tf.ctx, tf.conf, url.Values{ + "grant_type": {"refresh_token"}, + "refresh_token": {tf.refreshToken}, + }) + + if err != nil { + return nil, err + } + if tf.refreshToken != tk.RefreshToken { + tf.refreshToken = tk.RefreshToken + } + return tk, err +} + +// reuseTokenSource is a TokenSource that holds a single token in memory +// and validates its expiry before each call to retrieve it with +// Token. If it's expired, it will be auto-refreshed using the +// new TokenSource. +type reuseTokenSource struct { + new TokenSource // called when t is expired. + + mu sync.Mutex // guards t + t *Token +} + +// Token returns the current token if it's still valid, else will +// refresh the current token (using r.Context for HTTP client +// information) and return the new one. +func (s *reuseTokenSource) Token() (*Token, error) { + s.mu.Lock() + defer s.mu.Unlock() + if s.t.Valid() { + return s.t, nil + } + t, err := s.new.Token() + if err != nil { + return nil, err + } + s.t = t + return t, nil +} + +// StaticTokenSource returns a TokenSource that always returns the same token. +// Because the provided token t is never refreshed, StaticTokenSource is only +// useful for tokens that never expire. +func StaticTokenSource(t *Token) TokenSource { + return staticTokenSource{t} +} + +// staticTokenSource is a TokenSource that always returns the same Token. +type staticTokenSource struct { + t *Token +} + +func (s staticTokenSource) Token() (*Token, error) { + return s.t, nil +} + +// HTTPClient is the context key to use with golang.org/x/net/context's +// WithValue function to associate an *http.Client value with a context. +var HTTPClient internal.ContextKey + +// NewClient creates an *http.Client from a Context and TokenSource. +// The returned client is not valid beyond the lifetime of the context. +// +// Note that if a custom *http.Client is provided via the Context it +// is used only for token acquisition and is not used to configure the +// *http.Client returned from NewClient. +// +// As a special case, if src is nil, a non-OAuth2 client is returned +// using the provided context. This exists to support related OAuth2 +// packages. +func NewClient(ctx context.Context, src TokenSource) *http.Client { + if src == nil { + return internal.ContextClient(ctx) + } + return &http.Client{ + Transport: &Transport{ + Base: internal.ContextClient(ctx).Transport, + Source: ReuseTokenSource(nil, src), + }, + } +} + +// ReuseTokenSource returns a TokenSource which repeatedly returns the +// same token as long as it's valid, starting with t. +// When its cached token is invalid, a new token is obtained from src. +// +// ReuseTokenSource is typically used to reuse tokens from a cache +// (such as a file on disk) between runs of a program, rather than +// obtaining new tokens unnecessarily. +// +// The initial token t may be nil, in which case the TokenSource is +// wrapped in a caching version if it isn't one already. This also +// means it's always safe to wrap ReuseTokenSource around any other +// TokenSource without adverse effects. +func ReuseTokenSource(t *Token, src TokenSource) TokenSource { + // Don't wrap a reuseTokenSource in itself. That would work, + // but cause an unnecessary number of mutex operations. + // Just build the equivalent one. + if rt, ok := src.(*reuseTokenSource); ok { + if t == nil { + // Just use it directly. + return rt + } + src = rt.new + } + return &reuseTokenSource{ + t: t, + new: src, + } +} diff --git a/vendor/golang.org/x/oauth2/oauth2_test.go b/vendor/golang.org/x/oauth2/oauth2_test.go new file mode 100644 index 000000000..19aaf6b2b --- /dev/null +++ b/vendor/golang.org/x/oauth2/oauth2_test.go @@ -0,0 +1,550 @@ +// Copyright 2014 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 oauth2 + +import ( + "context" + "errors" + "fmt" + "io/ioutil" + "net/http" + "net/http/httptest" + "net/url" + "testing" + "time" +) + +type mockTransport struct { + rt func(req *http.Request) (resp *http.Response, err error) +} + +func (t *mockTransport) RoundTrip(req *http.Request) (resp *http.Response, err error) { + return t.rt(req) +} + +func newConf(url string) *Config { + return &Config{ + ClientID: "CLIENT_ID", + ClientSecret: "CLIENT_SECRET", + RedirectURL: "REDIRECT_URL", + Scopes: []string{"scope1", "scope2"}, + Endpoint: Endpoint{ + AuthURL: url + "/auth", + TokenURL: url + "/token", + }, + } +} + +func TestAuthCodeURL(t *testing.T) { + conf := newConf("server") + url := conf.AuthCodeURL("foo", AccessTypeOffline, ApprovalForce) + const want = "server/auth?access_type=offline&approval_prompt=force&client_id=CLIENT_ID&redirect_uri=REDIRECT_URL&response_type=code&scope=scope1+scope2&state=foo" + if got := url; got != want { + t.Errorf("got auth code URL = %q; want %q", got, want) + } +} + +func TestAuthCodeURL_CustomParam(t *testing.T) { + conf := newConf("server") + param := SetAuthURLParam("foo", "bar") + url := conf.AuthCodeURL("baz", param) + const want = "server/auth?client_id=CLIENT_ID&foo=bar&redirect_uri=REDIRECT_URL&response_type=code&scope=scope1+scope2&state=baz" + if got := url; got != want { + t.Errorf("got auth code = %q; want %q", got, want) + } +} + +func TestAuthCodeURL_Optional(t *testing.T) { + conf := &Config{ + ClientID: "CLIENT_ID", + Endpoint: Endpoint{ + AuthURL: "/auth-url", + TokenURL: "/token-url", + }, + } + url := conf.AuthCodeURL("") + const want = "/auth-url?client_id=CLIENT_ID&response_type=code" + if got := url; got != want { + t.Fatalf("got auth code = %q; want %q", got, want) + } +} + +func TestURLUnsafeClientConfig(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if got, want := r.Header.Get("Authorization"), "Basic Q0xJRU5UX0lEJTNGJTNGOkNMSUVOVF9TRUNSRVQlM0YlM0Y="; got != want { + t.Errorf("Authorization header = %q; want %q", got, want) + } + + w.Header().Set("Content-Type", "application/x-www-form-urlencoded") + w.Write([]byte("access_token=90d64460d14870c08c81352a05dedd3465940a7c&scope=user&token_type=bearer")) + })) + defer ts.Close() + conf := newConf(ts.URL) + conf.ClientID = "CLIENT_ID??" + conf.ClientSecret = "CLIENT_SECRET??" + _, err := conf.Exchange(context.Background(), "exchange-code") + if err != nil { + t.Error(err) + } +} + +func TestExchangeRequest(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if r.URL.String() != "/token" { + t.Errorf("Unexpected exchange request URL, %v is found.", r.URL) + } + headerAuth := r.Header.Get("Authorization") + if headerAuth != "Basic Q0xJRU5UX0lEOkNMSUVOVF9TRUNSRVQ=" { + t.Errorf("Unexpected authorization header, %v is found.", headerAuth) + } + headerContentType := r.Header.Get("Content-Type") + if headerContentType != "application/x-www-form-urlencoded" { + t.Errorf("Unexpected Content-Type header, %v is found.", headerContentType) + } + body, err := ioutil.ReadAll(r.Body) + if err != nil { + t.Errorf("Failed reading request body: %s.", err) + } + if string(body) != "code=exchange-code&grant_type=authorization_code&redirect_uri=REDIRECT_URL" { + t.Errorf("Unexpected exchange payload, %v is found.", string(body)) + } + w.Header().Set("Content-Type", "application/x-www-form-urlencoded") + w.Write([]byte("access_token=90d64460d14870c08c81352a05dedd3465940a7c&scope=user&token_type=bearer")) + })) + defer ts.Close() + conf := newConf(ts.URL) + tok, err := conf.Exchange(context.Background(), "exchange-code") + if err != nil { + t.Error(err) + } + if !tok.Valid() { + t.Fatalf("Token invalid. Got: %#v", tok) + } + if tok.AccessToken != "90d64460d14870c08c81352a05dedd3465940a7c" { + t.Errorf("Unexpected access token, %#v.", tok.AccessToken) + } + if tok.TokenType != "bearer" { + t.Errorf("Unexpected token type, %#v.", tok.TokenType) + } + scope := tok.Extra("scope") + if scope != "user" { + t.Errorf("Unexpected value for scope: %v", scope) + } +} + +func TestExchangeRequest_CustomParam(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if r.URL.String() != "/token" { + t.Errorf("Unexpected exchange request URL, %v is found.", r.URL) + } + headerAuth := r.Header.Get("Authorization") + if headerAuth != "Basic Q0xJRU5UX0lEOkNMSUVOVF9TRUNSRVQ=" { + t.Errorf("Unexpected authorization header, %v is found.", headerAuth) + } + headerContentType := r.Header.Get("Content-Type") + if headerContentType != "application/x-www-form-urlencoded" { + t.Errorf("Unexpected Content-Type header, %v is found.", headerContentType) + } + body, err := ioutil.ReadAll(r.Body) + if err != nil { + t.Errorf("Failed reading request body: %s.", err) + } + if string(body) != "code=exchange-code&foo=bar&grant_type=authorization_code&redirect_uri=REDIRECT_URL" { + t.Errorf("Unexpected exchange payload, %v is found.", string(body)) + } + w.Header().Set("Content-Type", "application/x-www-form-urlencoded") + w.Write([]byte("access_token=90d64460d14870c08c81352a05dedd3465940a7c&scope=user&token_type=bearer")) + })) + defer ts.Close() + conf := newConf(ts.URL) + + param := SetAuthURLParam("foo", "bar") + tok, err := conf.Exchange(context.Background(), "exchange-code", param) + if err != nil { + t.Error(err) + } + if !tok.Valid() { + t.Fatalf("Token invalid. Got: %#v", tok) + } + if tok.AccessToken != "90d64460d14870c08c81352a05dedd3465940a7c" { + t.Errorf("Unexpected access token, %#v.", tok.AccessToken) + } + if tok.TokenType != "bearer" { + t.Errorf("Unexpected token type, %#v.", tok.TokenType) + } + scope := tok.Extra("scope") + if scope != "user" { + t.Errorf("Unexpected value for scope: %v", scope) + } +} + +func TestExchangeRequest_JSONResponse(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if r.URL.String() != "/token" { + t.Errorf("Unexpected exchange request URL, %v is found.", r.URL) + } + headerAuth := r.Header.Get("Authorization") + if headerAuth != "Basic Q0xJRU5UX0lEOkNMSUVOVF9TRUNSRVQ=" { + t.Errorf("Unexpected authorization header, %v is found.", headerAuth) + } + headerContentType := r.Header.Get("Content-Type") + if headerContentType != "application/x-www-form-urlencoded" { + t.Errorf("Unexpected Content-Type header, %v is found.", headerContentType) + } + body, err := ioutil.ReadAll(r.Body) + if err != nil { + t.Errorf("Failed reading request body: %s.", err) + } + if string(body) != "code=exchange-code&grant_type=authorization_code&redirect_uri=REDIRECT_URL" { + t.Errorf("Unexpected exchange payload, %v is found.", string(body)) + } + w.Header().Set("Content-Type", "application/json") + w.Write([]byte(`{"access_token": "90d64460d14870c08c81352a05dedd3465940a7c", "scope": "user", "token_type": "bearer", "expires_in": 86400}`)) + })) + defer ts.Close() + conf := newConf(ts.URL) + tok, err := conf.Exchange(context.Background(), "exchange-code") + if err != nil { + t.Error(err) + } + if !tok.Valid() { + t.Fatalf("Token invalid. Got: %#v", tok) + } + if tok.AccessToken != "90d64460d14870c08c81352a05dedd3465940a7c" { + t.Errorf("Unexpected access token, %#v.", tok.AccessToken) + } + if tok.TokenType != "bearer" { + t.Errorf("Unexpected token type, %#v.", tok.TokenType) + } + scope := tok.Extra("scope") + if scope != "user" { + t.Errorf("Unexpected value for scope: %v", scope) + } + expiresIn := tok.Extra("expires_in") + if expiresIn != float64(86400) { + t.Errorf("Unexpected non-numeric value for expires_in: %v", expiresIn) + } +} + +func TestExtraValueRetrieval(t *testing.T) { + values := url.Values{} + kvmap := map[string]string{ + "scope": "user", "token_type": "bearer", "expires_in": "86400.92", + "server_time": "1443571905.5606415", "referer_ip": "10.0.0.1", + "etag": "\"afZYj912P4alikMz_P11982\"", "request_id": "86400", + "untrimmed": " untrimmed ", + } + for key, value := range kvmap { + values.Set(key, value) + } + + tok := Token{raw: values} + scope := tok.Extra("scope") + if got, want := scope, "user"; got != want { + t.Errorf("got scope = %q; want %q", got, want) + } + serverTime := tok.Extra("server_time") + if got, want := serverTime, 1443571905.5606415; got != want { + t.Errorf("got server_time value = %v; want %v", got, want) + } + refererIP := tok.Extra("referer_ip") + if got, want := refererIP, "10.0.0.1"; got != want { + t.Errorf("got referer_ip value = %v, want %v", got, want) + } + expiresIn := tok.Extra("expires_in") + if got, want := expiresIn, 86400.92; got != want { + t.Errorf("got expires_in value = %v, want %v", got, want) + } + requestID := tok.Extra("request_id") + if got, want := requestID, int64(86400); got != want { + t.Errorf("got request_id value = %v, want %v", got, want) + } + untrimmed := tok.Extra("untrimmed") + if got, want := untrimmed, " untrimmed "; got != want { + t.Errorf("got untrimmed = %q; want %q", got, want) + } +} + +const day = 24 * time.Hour + +func TestExchangeRequest_JSONResponse_Expiry(t *testing.T) { + seconds := int32(day.Seconds()) + for _, c := range []struct { + expires string + want bool + }{ + {fmt.Sprintf(`"expires_in": %d`, seconds), true}, + {fmt.Sprintf(`"expires_in": "%d"`, seconds), true}, // PayPal case + {fmt.Sprintf(`"expires": %d`, seconds), true}, // Facebook case + {`"expires": false`, false}, // wrong type + {`"expires": {}`, false}, // wrong type + {`"expires": "zzz"`, false}, // wrong value + } { + testExchangeRequest_JSONResponse_expiry(t, c.expires, c.want) + } +} + +func testExchangeRequest_JSONResponse_expiry(t *testing.T, exp string, want bool) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "application/json") + w.Write([]byte(fmt.Sprintf(`{"access_token": "90d", "scope": "user", "token_type": "bearer", %s}`, exp))) + })) + defer ts.Close() + conf := newConf(ts.URL) + t1 := time.Now().Add(day) + tok, err := conf.Exchange(context.Background(), "exchange-code") + t2 := time.Now().Add(day) + + if got := (err == nil); got != want { + if want { + t.Errorf("unexpected error: got %v", err) + } else { + t.Errorf("unexpected success") + } + } + if !want { + return + } + if !tok.Valid() { + t.Fatalf("Token invalid. Got: %#v", tok) + } + expiry := tok.Expiry + if expiry.Before(t1) || expiry.After(t2) { + t.Errorf("Unexpected value for Expiry: %v (shold be between %v and %v)", expiry, t1, t2) + } +} + +func TestExchangeRequest_BadResponse(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "application/json") + w.Write([]byte(`{"scope": "user", "token_type": "bearer"}`)) + })) + defer ts.Close() + conf := newConf(ts.URL) + _, err := conf.Exchange(context.Background(), "code") + if err == nil { + t.Error("expected error from missing access_token") + } +} + +func TestExchangeRequest_BadResponseType(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "application/json") + w.Write([]byte(`{"access_token":123, "scope": "user", "token_type": "bearer"}`)) + })) + defer ts.Close() + conf := newConf(ts.URL) + _, err := conf.Exchange(context.Background(), "exchange-code") + if err == nil { + t.Error("expected error from non-string access_token") + } +} + +func TestExchangeRequest_NonBasicAuth(t *testing.T) { + tr := &mockTransport{ + rt: func(r *http.Request) (w *http.Response, err error) { + headerAuth := r.Header.Get("Authorization") + if headerAuth != "" { + t.Errorf("Unexpected authorization header, %v is found.", headerAuth) + } + return nil, errors.New("no response") + }, + } + c := &http.Client{Transport: tr} + conf := &Config{ + ClientID: "CLIENT_ID", + Endpoint: Endpoint{ + AuthURL: "https://accounts.google.com/auth", + TokenURL: "https://accounts.google.com/token", + }, + } + + ctx := context.WithValue(context.Background(), HTTPClient, c) + conf.Exchange(ctx, "code") +} + +func TestPasswordCredentialsTokenRequest(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + defer r.Body.Close() + expected := "/token" + if r.URL.String() != expected { + t.Errorf("URL = %q; want %q", r.URL, expected) + } + headerAuth := r.Header.Get("Authorization") + expected = "Basic Q0xJRU5UX0lEOkNMSUVOVF9TRUNSRVQ=" + if headerAuth != expected { + t.Errorf("Authorization header = %q; want %q", headerAuth, expected) + } + headerContentType := r.Header.Get("Content-Type") + expected = "application/x-www-form-urlencoded" + if headerContentType != expected { + t.Errorf("Content-Type header = %q; want %q", headerContentType, expected) + } + body, err := ioutil.ReadAll(r.Body) + if err != nil { + t.Errorf("Failed reading request body: %s.", err) + } + expected = "grant_type=password&password=password1&scope=scope1+scope2&username=user1" + if string(body) != expected { + t.Errorf("res.Body = %q; want %q", string(body), expected) + } + w.Header().Set("Content-Type", "application/x-www-form-urlencoded") + w.Write([]byte("access_token=90d64460d14870c08c81352a05dedd3465940a7c&scope=user&token_type=bearer")) + })) + defer ts.Close() + conf := newConf(ts.URL) + tok, err := conf.PasswordCredentialsToken(context.Background(), "user1", "password1") + if err != nil { + t.Error(err) + } + if !tok.Valid() { + t.Fatalf("Token invalid. Got: %#v", tok) + } + expected := "90d64460d14870c08c81352a05dedd3465940a7c" + if tok.AccessToken != expected { + t.Errorf("AccessToken = %q; want %q", tok.AccessToken, expected) + } + expected = "bearer" + if tok.TokenType != expected { + t.Errorf("TokenType = %q; want %q", tok.TokenType, expected) + } +} + +func TestTokenRefreshRequest(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if r.URL.String() == "/somethingelse" { + return + } + if r.URL.String() != "/token" { + t.Errorf("Unexpected token refresh request URL, %v is found.", r.URL) + } + headerContentType := r.Header.Get("Content-Type") + if headerContentType != "application/x-www-form-urlencoded" { + t.Errorf("Unexpected Content-Type header, %v is found.", headerContentType) + } + body, _ := ioutil.ReadAll(r.Body) + if string(body) != "grant_type=refresh_token&refresh_token=REFRESH_TOKEN" { + t.Errorf("Unexpected refresh token payload, %v is found.", string(body)) + } + })) + defer ts.Close() + conf := newConf(ts.URL) + c := conf.Client(context.Background(), &Token{RefreshToken: "REFRESH_TOKEN"}) + c.Get(ts.URL + "/somethingelse") +} + +func TestFetchWithNoRefreshToken(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if r.URL.String() == "/somethingelse" { + return + } + if r.URL.String() != "/token" { + t.Errorf("Unexpected token refresh request URL, %v is found.", r.URL) + } + headerContentType := r.Header.Get("Content-Type") + if headerContentType != "application/x-www-form-urlencoded" { + t.Errorf("Unexpected Content-Type header, %v is found.", headerContentType) + } + body, _ := ioutil.ReadAll(r.Body) + if string(body) != "client_id=CLIENT_ID&grant_type=refresh_token&refresh_token=REFRESH_TOKEN" { + t.Errorf("Unexpected refresh token payload, %v is found.", string(body)) + } + })) + defer ts.Close() + conf := newConf(ts.URL) + c := conf.Client(context.Background(), nil) + _, err := c.Get(ts.URL + "/somethingelse") + if err == nil { + t.Errorf("Fetch should return an error if no refresh token is set") + } +} + +func TestTokenRetrieveError(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if r.URL.String() != "/token" { + t.Errorf("Unexpected token refresh request URL, %v is found.", r.URL) + } + w.Header().Set("Content-type", "application/json") + w.WriteHeader(http.StatusBadRequest) + w.Write([]byte(`{"error": "invalid_grant"}`)) + })) + defer ts.Close() + conf := newConf(ts.URL) + _, err := conf.Exchange(context.Background(), "exchange-code") + if err == nil { + t.Fatalf("got no error, expected one") + } + _, ok := err.(*RetrieveError) + if !ok { + t.Fatalf("got %T error, expected *RetrieveError", err) + } + // Test error string for backwards compatibility + expected := fmt.Sprintf("oauth2: cannot fetch token: %v\nResponse: %s", "400 Bad Request", `{"error": "invalid_grant"}`) + if errStr := err.Error(); errStr != expected { + t.Fatalf("got %#v, expected %#v", errStr, expected) + } +} + +func TestRefreshToken_RefreshTokenReplacement(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "application/json") + w.Write([]byte(`{"access_token":"ACCESS_TOKEN", "scope": "user", "token_type": "bearer", "refresh_token": "NEW_REFRESH_TOKEN"}`)) + return + })) + defer ts.Close() + conf := newConf(ts.URL) + tkr := conf.TokenSource(context.Background(), &Token{RefreshToken: "OLD_REFRESH_TOKEN"}) + tk, err := tkr.Token() + if err != nil { + t.Errorf("got err = %v; want none", err) + return + } + if want := "NEW_REFRESH_TOKEN"; tk.RefreshToken != want { + t.Errorf("RefreshToken = %q; want %q", tk.RefreshToken, want) + } +} + +func TestRefreshToken_RefreshTokenPreservation(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "application/json") + w.Write([]byte(`{"access_token":"ACCESS_TOKEN", "scope": "user", "token_type": "bearer"}`)) + return + })) + defer ts.Close() + conf := newConf(ts.URL) + const oldRefreshToken = "OLD_REFRESH_TOKEN" + tkr := conf.TokenSource(context.Background(), &Token{RefreshToken: oldRefreshToken}) + tk, err := tkr.Token() + if err != nil { + t.Fatalf("got err = %v; want none", err) + } + if tk.RefreshToken != oldRefreshToken { + t.Errorf("RefreshToken = %q; want %q", tk.RefreshToken, oldRefreshToken) + } +} + +func TestConfigClientWithToken(t *testing.T) { + tok := &Token{ + AccessToken: "abc123", + } + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if got, want := r.Header.Get("Authorization"), fmt.Sprintf("Bearer %s", tok.AccessToken); got != want { + t.Errorf("Authorization header = %q; want %q", got, want) + } + return + })) + defer ts.Close() + conf := newConf(ts.URL) + + c := conf.Client(context.Background(), tok) + req, err := http.NewRequest("GET", ts.URL, nil) + if err != nil { + t.Error(err) + } + _, err = c.Do(req) + if err != nil { + t.Error(err) + } +} diff --git a/vendor/golang.org/x/oauth2/odnoklassniki/odnoklassniki.go b/vendor/golang.org/x/oauth2/odnoklassniki/odnoklassniki.go new file mode 100644 index 000000000..c0d093ccc --- /dev/null +++ b/vendor/golang.org/x/oauth2/odnoklassniki/odnoklassniki.go @@ -0,0 +1,16 @@ +// Copyright 2015 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 odnoklassniki provides constants for using OAuth2 to access Odnoklassniki. +package odnoklassniki // import "golang.org/x/oauth2/odnoklassniki" + +import ( + "golang.org/x/oauth2" +) + +// Endpoint is Odnoklassniki's OAuth 2.0 endpoint. +var Endpoint = oauth2.Endpoint{ + AuthURL: "https://www.odnoklassniki.ru/oauth/authorize", + TokenURL: "https://api.odnoklassniki.ru/oauth/token.do", +} diff --git a/vendor/golang.org/x/oauth2/paypal/paypal.go b/vendor/golang.org/x/oauth2/paypal/paypal.go new file mode 100644 index 000000000..2e713c53c --- /dev/null +++ b/vendor/golang.org/x/oauth2/paypal/paypal.go @@ -0,0 +1,22 @@ +// Copyright 2015 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 paypal provides constants for using OAuth2 to access PayPal. +package paypal // import "golang.org/x/oauth2/paypal" + +import ( + "golang.org/x/oauth2" +) + +// Endpoint is PayPal's OAuth 2.0 endpoint in live (production) environment. +var Endpoint = oauth2.Endpoint{ + AuthURL: "https://www.paypal.com/webapps/auth/protocol/openidconnect/v1/authorize", + TokenURL: "https://api.paypal.com/v1/identity/openidconnect/tokenservice", +} + +// SandboxEndpoint is PayPal's OAuth 2.0 endpoint in sandbox (testing) environment. +var SandboxEndpoint = oauth2.Endpoint{ + AuthURL: "https://www.sandbox.paypal.com/webapps/auth/protocol/openidconnect/v1/authorize", + TokenURL: "https://api.sandbox.paypal.com/v1/identity/openidconnect/tokenservice", +} diff --git a/vendor/golang.org/x/oauth2/slack/slack.go b/vendor/golang.org/x/oauth2/slack/slack.go new file mode 100644 index 000000000..593d2f607 --- /dev/null +++ b/vendor/golang.org/x/oauth2/slack/slack.go @@ -0,0 +1,16 @@ +// Copyright 2016 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 slack provides constants for using OAuth2 to access Slack. +package slack // import "golang.org/x/oauth2/slack" + +import ( + "golang.org/x/oauth2" +) + +// Endpoint is Slack's OAuth 2.0 endpoint. +var Endpoint = oauth2.Endpoint{ + AuthURL: "https://slack.com/oauth/authorize", + TokenURL: "https://slack.com/api/oauth.access", +} diff --git a/vendor/golang.org/x/oauth2/spotify/spotify.go b/vendor/golang.org/x/oauth2/spotify/spotify.go new file mode 100644 index 000000000..c75416c00 --- /dev/null +++ b/vendor/golang.org/x/oauth2/spotify/spotify.go @@ -0,0 +1,16 @@ +// Copyright 2018 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 spotify provides constants for using OAuth2 to access Spotify. +package spotify // import "golang.org/x/oauth2/spotify" + +import ( + "golang.org/x/oauth2" +) + +// Endpoint is Spotify's OAuth 2.0 endpoint. +var Endpoint = oauth2.Endpoint{ + AuthURL: "https://accounts.spotify.com/authorize", + TokenURL: "https://accounts.spotify.com/api/token", +} diff --git a/vendor/golang.org/x/oauth2/stackoverflow/stackoverflow.go b/vendor/golang.org/x/oauth2/stackoverflow/stackoverflow.go new file mode 100644 index 000000000..82711f777 --- /dev/null +++ b/vendor/golang.org/x/oauth2/stackoverflow/stackoverflow.go @@ -0,0 +1,16 @@ +// Copyright 2018 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 stackoverflow provides constants for using OAuth2 to access Stack Overflow. +package stackoverflow // import "golang.org/x/oauth2/stackoverflow" + +import ( + "golang.org/x/oauth2" +) + +// Endpoint is Stack Overflow's OAuth 2.0 endpoint. +var Endpoint = oauth2.Endpoint{ + AuthURL: "https://stackoverflow.com/oauth", + TokenURL: "https://stackoverflow.com/oauth/access_token", +} diff --git a/vendor/golang.org/x/oauth2/token.go b/vendor/golang.org/x/oauth2/token.go new file mode 100644 index 000000000..ee4be545f --- /dev/null +++ b/vendor/golang.org/x/oauth2/token.go @@ -0,0 +1,178 @@ +// Copyright 2014 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 oauth2 + +import ( + "context" + "fmt" + "net/http" + "net/url" + "strconv" + "strings" + "time" + + "golang.org/x/oauth2/internal" +) + +// expiryDelta determines how earlier a token should be considered +// expired than its actual expiration time. It is used to avoid late +// expirations due to client-server time mismatches. +const expiryDelta = 10 * time.Second + +// Token represents the credentials used to authorize +// the requests to access protected resources on the OAuth 2.0 +// provider's backend. +// +// Most users of this package should not access fields of Token +// directly. They're exported mostly for use by related packages +// implementing derivative OAuth2 flows. +type Token struct { + // AccessToken is the token that authorizes and authenticates + // the requests. + AccessToken string `json:"access_token"` + + // TokenType is the type of token. + // The Type method returns either this or "Bearer", the default. + TokenType string `json:"token_type,omitempty"` + + // RefreshToken is a token that's used by the application + // (as opposed to the user) to refresh the access token + // if it expires. + RefreshToken string `json:"refresh_token,omitempty"` + + // Expiry is the optional expiration time of the access token. + // + // If zero, TokenSource implementations will reuse the same + // token forever and RefreshToken or equivalent + // mechanisms for that TokenSource will not be used. + Expiry time.Time `json:"expiry,omitempty"` + + // raw optionally contains extra metadata from the server + // when updating a token. + raw interface{} +} + +// Type returns t.TokenType if non-empty, else "Bearer". +func (t *Token) Type() string { + if strings.EqualFold(t.TokenType, "bearer") { + return "Bearer" + } + if strings.EqualFold(t.TokenType, "mac") { + return "MAC" + } + if strings.EqualFold(t.TokenType, "basic") { + return "Basic" + } + if t.TokenType != "" { + return t.TokenType + } + return "Bearer" +} + +// SetAuthHeader sets the Authorization header to r using the access +// token in t. +// +// This method is unnecessary when using Transport or an HTTP Client +// returned by this package. +func (t *Token) SetAuthHeader(r *http.Request) { + r.Header.Set("Authorization", t.Type()+" "+t.AccessToken) +} + +// WithExtra returns a new Token that's a clone of t, but using the +// provided raw extra map. This is only intended for use by packages +// implementing derivative OAuth2 flows. +func (t *Token) WithExtra(extra interface{}) *Token { + t2 := new(Token) + *t2 = *t + t2.raw = extra + return t2 +} + +// Extra returns an extra field. +// Extra fields are key-value pairs returned by the server as a +// part of the token retrieval response. +func (t *Token) Extra(key string) interface{} { + if raw, ok := t.raw.(map[string]interface{}); ok { + return raw[key] + } + + vals, ok := t.raw.(url.Values) + if !ok { + return nil + } + + v := vals.Get(key) + switch s := strings.TrimSpace(v); strings.Count(s, ".") { + case 0: // Contains no "."; try to parse as int + if i, err := strconv.ParseInt(s, 10, 64); err == nil { + return i + } + case 1: // Contains a single "."; try to parse as float + if f, err := strconv.ParseFloat(s, 64); err == nil { + return f + } + } + + return v +} + +// timeNow is time.Now but pulled out as a variable for tests. +var timeNow = time.Now + +// expired reports whether the token is expired. +// t must be non-nil. +func (t *Token) expired() bool { + if t.Expiry.IsZero() { + return false + } + return t.Expiry.Round(0).Add(-expiryDelta).Before(timeNow()) +} + +// Valid reports whether t is non-nil, has an AccessToken, and is not expired. +func (t *Token) Valid() bool { + return t != nil && t.AccessToken != "" && !t.expired() +} + +// tokenFromInternal maps an *internal.Token struct into +// a *Token struct. +func tokenFromInternal(t *internal.Token) *Token { + if t == nil { + return nil + } + return &Token{ + AccessToken: t.AccessToken, + TokenType: t.TokenType, + RefreshToken: t.RefreshToken, + Expiry: t.Expiry, + raw: t.Raw, + } +} + +// retrieveToken takes a *Config and uses that to retrieve an *internal.Token. +// This token is then mapped from *internal.Token into an *oauth2.Token which is returned along +// with an error.. +func retrieveToken(ctx context.Context, c *Config, v url.Values) (*Token, error) { + tk, err := internal.RetrieveToken(ctx, c.ClientID, c.ClientSecret, c.Endpoint.TokenURL, v) + if err != nil { + if rErr, ok := err.(*internal.RetrieveError); ok { + return nil, (*RetrieveError)(rErr) + } + return nil, err + } + return tokenFromInternal(tk), nil +} + +// RetrieveError is the error returned when the token endpoint returns a +// non-2XX HTTP status code. +type RetrieveError struct { + Response *http.Response + // Body is the body that was consumed by reading Response.Body. + // It may be truncated. + Body []byte +} + +func (r *RetrieveError) Error() string { + return fmt.Sprintf("oauth2: cannot fetch token: %v\nResponse: %s", r.Response.Status, r.Body) +} diff --git a/vendor/golang.org/x/oauth2/token_test.go b/vendor/golang.org/x/oauth2/token_test.go new file mode 100644 index 000000000..ee97b4f01 --- /dev/null +++ b/vendor/golang.org/x/oauth2/token_test.go @@ -0,0 +1,76 @@ +// Copyright 2014 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 oauth2 + +import ( + "testing" + "time" +) + +func TestTokenExtra(t *testing.T) { + type testCase struct { + key string + val interface{} + want interface{} + } + const key = "extra-key" + cases := []testCase{ + {key: key, val: "abc", want: "abc"}, + {key: key, val: 123, want: 123}, + {key: key, val: "", want: ""}, + {key: "other-key", val: "def", want: nil}, + } + for _, tc := range cases { + extra := make(map[string]interface{}) + extra[tc.key] = tc.val + tok := &Token{raw: extra} + if got, want := tok.Extra(key), tc.want; got != want { + t.Errorf("Extra(%q) = %q; want %q", key, got, want) + } + } +} + +func TestTokenExpiry(t *testing.T) { + now := time.Now() + timeNow = func() time.Time { return now } + defer func() { timeNow = time.Now }() + + cases := []struct { + name string + tok *Token + want bool + }{ + {name: "12 seconds", tok: &Token{Expiry: now.Add(12 * time.Second)}, want: false}, + {name: "10 seconds", tok: &Token{Expiry: now.Add(expiryDelta)}, want: false}, + {name: "10 seconds-1ns", tok: &Token{Expiry: now.Add(expiryDelta - 1*time.Nanosecond)}, want: true}, + {name: "-1 hour", tok: &Token{Expiry: now.Add(-1 * time.Hour)}, want: true}, + } + for _, tc := range cases { + if got, want := tc.tok.expired(), tc.want; got != want { + t.Errorf("expired (%q) = %v; want %v", tc.name, got, want) + } + } +} + +func TestTokenTypeMethod(t *testing.T) { + cases := []struct { + name string + tok *Token + want string + }{ + {name: "bearer-mixed_case", tok: &Token{TokenType: "beAREr"}, want: "Bearer"}, + {name: "default-bearer", tok: &Token{}, want: "Bearer"}, + {name: "basic", tok: &Token{TokenType: "basic"}, want: "Basic"}, + {name: "basic-capitalized", tok: &Token{TokenType: "Basic"}, want: "Basic"}, + {name: "mac", tok: &Token{TokenType: "mac"}, want: "MAC"}, + {name: "mac-caps", tok: &Token{TokenType: "MAC"}, want: "MAC"}, + {name: "mac-mixed_case", tok: &Token{TokenType: "mAc"}, want: "MAC"}, + } + for _, tc := range cases { + if got, want := tc.tok.Type(), tc.want; got != want { + t.Errorf("TokenType(%q) = %v; want %v", tc.name, got, want) + } + } +} diff --git a/vendor/golang.org/x/oauth2/transport.go b/vendor/golang.org/x/oauth2/transport.go new file mode 100644 index 000000000..aa0d34f1e --- /dev/null +++ b/vendor/golang.org/x/oauth2/transport.go @@ -0,0 +1,144 @@ +// Copyright 2014 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 oauth2 + +import ( + "errors" + "io" + "net/http" + "sync" +) + +// Transport is an http.RoundTripper that makes OAuth 2.0 HTTP requests, +// wrapping a base RoundTripper and adding an Authorization header +// with a token from the supplied Sources. +// +// Transport is a low-level mechanism. Most code will use the +// higher-level Config.Client method instead. +type Transport struct { + // Source supplies the token to add to outgoing requests' + // Authorization headers. + Source TokenSource + + // Base is the base RoundTripper used to make HTTP requests. + // If nil, http.DefaultTransport is used. + Base http.RoundTripper + + mu sync.Mutex // guards modReq + modReq map[*http.Request]*http.Request // original -> modified +} + +// RoundTrip authorizes and authenticates the request with an +// access token from Transport's Source. +func (t *Transport) RoundTrip(req *http.Request) (*http.Response, error) { + reqBodyClosed := false + if req.Body != nil { + defer func() { + if !reqBodyClosed { + req.Body.Close() + } + }() + } + + if t.Source == nil { + return nil, errors.New("oauth2: Transport's Source is nil") + } + token, err := t.Source.Token() + if err != nil { + return nil, err + } + + req2 := cloneRequest(req) // per RoundTripper contract + token.SetAuthHeader(req2) + t.setModReq(req, req2) + res, err := t.base().RoundTrip(req2) + + // req.Body is assumed to have been closed by the base RoundTripper. + reqBodyClosed = true + + if err != nil { + t.setModReq(req, nil) + return nil, err + } + res.Body = &onEOFReader{ + rc: res.Body, + fn: func() { t.setModReq(req, nil) }, + } + return res, nil +} + +// CancelRequest cancels an in-flight request by closing its connection. +func (t *Transport) CancelRequest(req *http.Request) { + type canceler interface { + CancelRequest(*http.Request) + } + if cr, ok := t.base().(canceler); ok { + t.mu.Lock() + modReq := t.modReq[req] + delete(t.modReq, req) + t.mu.Unlock() + cr.CancelRequest(modReq) + } +} + +func (t *Transport) base() http.RoundTripper { + if t.Base != nil { + return t.Base + } + return http.DefaultTransport +} + +func (t *Transport) setModReq(orig, mod *http.Request) { + t.mu.Lock() + defer t.mu.Unlock() + if t.modReq == nil { + t.modReq = make(map[*http.Request]*http.Request) + } + if mod == nil { + delete(t.modReq, orig) + } else { + t.modReq[orig] = mod + } +} + +// cloneRequest returns a clone of the provided *http.Request. +// The clone is a shallow copy of the struct and its Header map. +func cloneRequest(r *http.Request) *http.Request { + // shallow copy of the struct + r2 := new(http.Request) + *r2 = *r + // deep copy of the Header + r2.Header = make(http.Header, len(r.Header)) + for k, s := range r.Header { + r2.Header[k] = append([]string(nil), s...) + } + return r2 +} + +type onEOFReader struct { + rc io.ReadCloser + fn func() +} + +func (r *onEOFReader) Read(p []byte) (n int, err error) { + n, err = r.rc.Read(p) + if err == io.EOF { + r.runFunc() + } + return +} + +func (r *onEOFReader) Close() error { + err := r.rc.Close() + r.runFunc() + return err +} + +func (r *onEOFReader) runFunc() { + if fn := r.fn; fn != nil { + fn() + r.fn = nil + } +} diff --git a/vendor/golang.org/x/oauth2/transport_test.go b/vendor/golang.org/x/oauth2/transport_test.go new file mode 100644 index 000000000..faa87d514 --- /dev/null +++ b/vendor/golang.org/x/oauth2/transport_test.go @@ -0,0 +1,168 @@ +package oauth2 + +import ( + "errors" + "io" + "net/http" + "net/http/httptest" + "testing" + "time" +) + +type tokenSource struct{ token *Token } + +func (t *tokenSource) Token() (*Token, error) { + return t.token, nil +} + +func TestTransportNilTokenSource(t *testing.T) { + tr := &Transport{} + server := newMockServer(func(w http.ResponseWriter, r *http.Request) {}) + defer server.Close() + client := &http.Client{Transport: tr} + resp, err := client.Get(server.URL) + if err == nil { + t.Errorf("got no errors, want an error with nil token source") + } + if resp != nil { + t.Errorf("Response = %v; want nil", resp) + } +} + +type readCloseCounter struct { + CloseCount int + ReadErr error +} + +func (r *readCloseCounter) Read(b []byte) (int, error) { + return 0, r.ReadErr +} + +func (r *readCloseCounter) Close() error { + r.CloseCount++ + return nil +} + +func TestTransportCloseRequestBody(t *testing.T) { + tr := &Transport{} + server := newMockServer(func(w http.ResponseWriter, r *http.Request) {}) + defer server.Close() + client := &http.Client{Transport: tr} + body := &readCloseCounter{ + ReadErr: errors.New("readCloseCounter.Read not implemented"), + } + resp, err := client.Post(server.URL, "application/json", body) + if err == nil { + t.Errorf("got no errors, want an error with nil token source") + } + if resp != nil { + t.Errorf("Response = %v; want nil", resp) + } + if expected := 1; body.CloseCount != expected { + t.Errorf("Body was closed %d times, expected %d", body.CloseCount, expected) + } +} + +func TestTransportCloseRequestBodySuccess(t *testing.T) { + tr := &Transport{ + Source: StaticTokenSource(&Token{ + AccessToken: "abc", + }), + } + server := newMockServer(func(w http.ResponseWriter, r *http.Request) {}) + defer server.Close() + client := &http.Client{Transport: tr} + body := &readCloseCounter{ + ReadErr: io.EOF, + } + resp, err := client.Post(server.URL, "application/json", body) + if err != nil { + t.Errorf("got error %v; expected none", err) + } + if resp == nil { + t.Errorf("Response is nil; expected non-nil") + } + if expected := 1; body.CloseCount != expected { + t.Errorf("Body was closed %d times, expected %d", body.CloseCount, expected) + } +} + +func TestTransportTokenSource(t *testing.T) { + ts := &tokenSource{ + token: &Token{ + AccessToken: "abc", + }, + } + tr := &Transport{ + Source: ts, + } + server := newMockServer(func(w http.ResponseWriter, r *http.Request) { + if got, want := r.Header.Get("Authorization"), "Bearer abc"; got != want { + t.Errorf("Authorization header = %q; want %q", got, want) + } + }) + defer server.Close() + client := &http.Client{Transport: tr} + res, err := client.Get(server.URL) + if err != nil { + t.Fatal(err) + } + res.Body.Close() +} + +// Test for case-sensitive token types, per https://github.com/golang/oauth2/issues/113 +func TestTransportTokenSourceTypes(t *testing.T) { + const val = "abc" + tests := []struct { + key string + val string + want string + }{ + {key: "bearer", val: val, want: "Bearer abc"}, + {key: "mac", val: val, want: "MAC abc"}, + {key: "basic", val: val, want: "Basic abc"}, + } + for _, tc := range tests { + ts := &tokenSource{ + token: &Token{ + AccessToken: tc.val, + TokenType: tc.key, + }, + } + tr := &Transport{ + Source: ts, + } + server := newMockServer(func(w http.ResponseWriter, r *http.Request) { + if got, want := r.Header.Get("Authorization"), tc.want; got != want { + t.Errorf("Authorization header (%q) = %q; want %q", val, got, want) + } + }) + defer server.Close() + client := &http.Client{Transport: tr} + res, err := client.Get(server.URL) + if err != nil { + t.Fatal(err) + } + res.Body.Close() + } +} + +func TestTokenValidNoAccessToken(t *testing.T) { + token := &Token{} + if token.Valid() { + t.Errorf("got valid with no access token; want invalid") + } +} + +func TestExpiredWithExpiry(t *testing.T) { + token := &Token{ + Expiry: time.Now().Add(-5 * time.Hour), + } + if token.Valid() { + t.Errorf("got valid with expired token; want invalid") + } +} + +func newMockServer(handler func(w http.ResponseWriter, r *http.Request)) *httptest.Server { + return httptest.NewServer(http.HandlerFunc(handler)) +} diff --git a/vendor/golang.org/x/oauth2/twitch/twitch.go b/vendor/golang.org/x/oauth2/twitch/twitch.go new file mode 100644 index 000000000..0838e7c15 --- /dev/null +++ b/vendor/golang.org/x/oauth2/twitch/twitch.go @@ -0,0 +1,19 @@ +// 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 twitch provides constants for using OAuth2 to access Twitch. +package twitch // import "golang.org/x/oauth2/twitch" + +import ( + "golang.org/x/oauth2" +) + +// Endpoint is Twitch's OAuth 2.0 endpoint. +// +// For more information see: +// https://dev.twitch.tv/docs/authentication +var Endpoint = oauth2.Endpoint{ + AuthURL: "https://id.twitch.tv/oauth2/authorize", + TokenURL: "https://id.twitch.tv/oauth2/token", +} diff --git a/vendor/golang.org/x/oauth2/uber/uber.go b/vendor/golang.org/x/oauth2/uber/uber.go new file mode 100644 index 000000000..5520a6455 --- /dev/null +++ b/vendor/golang.org/x/oauth2/uber/uber.go @@ -0,0 +1,16 @@ +// Copyright 2016 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 uber provides constants for using OAuth2 to access Uber. +package uber // import "golang.org/x/oauth2/uber" + +import ( + "golang.org/x/oauth2" +) + +// Endpoint is Uber's OAuth 2.0 endpoint. +var Endpoint = oauth2.Endpoint{ + AuthURL: "https://login.uber.com/oauth/v2/authorize", + TokenURL: "https://login.uber.com/oauth/v2/token", +} diff --git a/vendor/golang.org/x/oauth2/vk/vk.go b/vendor/golang.org/x/oauth2/vk/vk.go new file mode 100644 index 000000000..bd8e15948 --- /dev/null +++ b/vendor/golang.org/x/oauth2/vk/vk.go @@ -0,0 +1,16 @@ +// Copyright 2015 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 vk provides constants for using OAuth2 to access VK.com. +package vk // import "golang.org/x/oauth2/vk" + +import ( + "golang.org/x/oauth2" +) + +// Endpoint is VK's OAuth 2.0 endpoint. +var Endpoint = oauth2.Endpoint{ + AuthURL: "https://oauth.vk.com/authorize", + TokenURL: "https://oauth.vk.com/access_token", +} diff --git a/vendor/golang.org/x/oauth2/yahoo/yahoo.go b/vendor/golang.org/x/oauth2/yahoo/yahoo.go new file mode 100644 index 000000000..9fa78a23c --- /dev/null +++ b/vendor/golang.org/x/oauth2/yahoo/yahoo.go @@ -0,0 +1,17 @@ +// 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 yahoo provides constants for using OAuth2 to access Yahoo. +package yahoo // import "golang.org/x/oauth2/yahoo" + +import ( + "golang.org/x/oauth2" +) + +// Endpoint is Yahoo's OAuth 2.0 endpoint. +// See https://developer.yahoo.com/oauth2/guide/ +var Endpoint = oauth2.Endpoint{ + AuthURL: "https://api.login.yahoo.com/oauth2/request_auth", + TokenURL: "https://api.login.yahoo.com/oauth2/get_token", +} diff --git a/vendor/golang.org/x/oauth2/yandex/yandex.go b/vendor/golang.org/x/oauth2/yandex/yandex.go new file mode 100644 index 000000000..5ebf666d2 --- /dev/null +++ b/vendor/golang.org/x/oauth2/yandex/yandex.go @@ -0,0 +1,16 @@ +// 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 yandex provides constants for using OAuth2 to access Yandex APIs. +package yandex // import "golang.org/x/oauth2/yandex" + +import ( + "golang.org/x/oauth2" +) + +// Endpoint is the Yandex OAuth 2.0 endpoint. +var Endpoint = oauth2.Endpoint{ + AuthURL: "https://oauth.yandex.com/authorize", + TokenURL: "https://oauth.yandex.com/token", +} diff --git a/vendor/golang.org/x/sys/cpu/cpu.go b/vendor/golang.org/x/sys/cpu/cpu.go index 3d88f8667..84962cf0f 100644 --- a/vendor/golang.org/x/sys/cpu/cpu.go +++ b/vendor/golang.org/x/sys/cpu/cpu.go @@ -36,3 +36,52 @@ var X86 struct { HasSSE42 bool // Streaming SIMD extension 4 and 4.2 _ CacheLinePad } + +// ARM64 contains the supported CPU features of the +// current ARMv8(aarch64) platform. If the current platform +// is not arm64 then all feature flags are false. +var ARM64 struct { + _ CacheLinePad + HasFP bool // Floating-point instruction set (always available) + HasASIMD bool // Advanced SIMD (always available) + HasEVTSTRM bool // Event stream support + HasAES bool // AES hardware implementation + HasPMULL bool // Polynomial multiplication instruction set + HasSHA1 bool // SHA1 hardware implementation + HasSHA2 bool // SHA2 hardware implementation + HasCRC32 bool // CRC32 hardware implementation + HasATOMICS bool // Atomic memory operation instruction set + HasFPHP bool // Half precision floating-point instruction set + HasASIMDHP bool // Advanced SIMD half precision instruction set + HasCPUID bool // CPUID identification scheme registers + HasASIMDRDM bool // Rounding double multiply add/subtract instruction set + HasJSCVT bool // Javascript conversion from floating-point to integer + HasFCMA bool // Floating-point multiplication and addition of complex numbers + HasLRCPC bool // Release Consistent processor consistent support + HasDCPOP bool // Persistent memory support + HasSHA3 bool // SHA3 hardware implementation + HasSM3 bool // SM3 hardware implementation + HasSM4 bool // SM4 hardware implementation + HasASIMDDP bool // Advanced SIMD double precision instruction set + HasSHA512 bool // SHA512 hardware implementation + HasSVE bool // Scalable Vector Extensions + HasASIMDFHM bool // Advanced SIMD multiplication FP16 to FP32 + _ CacheLinePad +} + +// PPC64 contains the supported CPU features of the current ppc64/ppc64le platforms. +// If the current platform is not ppc64/ppc64le then all feature flags are false. +// +// For ppc64/ppc64le, it is safe to check only for ISA level starting on ISA v3.00, +// since there are no optional categories. There are some exceptions that also +// require kernel support to work (DARN, SCV), so there are feature bits for +// those as well. The minimum processor requirement is POWER8 (ISA 2.07). +// The struct is padded to avoid false sharing. +var PPC64 struct { + _ CacheLinePad + HasDARN bool // Hardware random number generator (requires kernel enablement) + HasSCV bool // Syscall vectored (requires kernel enablement) + IsPOWER8 bool // ISA v2.07 (POWER8) + IsPOWER9 bool // ISA v3.00 (POWER9) + _ CacheLinePad +} diff --git a/vendor/golang.org/x/sys/cpu/cpu_arm.go b/vendor/golang.org/x/sys/cpu/cpu_arm.go index d93036f75..7f2348b7d 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_arm.go +++ b/vendor/golang.org/x/sys/cpu/cpu_arm.go @@ -5,3 +5,5 @@ package cpu const cacheLineSize = 32 + +func doinit() {} diff --git a/vendor/golang.org/x/sys/cpu/cpu_arm64.go b/vendor/golang.org/x/sys/cpu/cpu_arm64.go index 1d2ab2902..02ed58b30 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_arm64.go +++ b/vendor/golang.org/x/sys/cpu/cpu_arm64.go @@ -5,3 +5,63 @@ package cpu const cacheLineSize = 64 + +// HWCAP/HWCAP2 bits. These are exposed by Linux. +const ( + hwcap_FP = 1 << 0 + hwcap_ASIMD = 1 << 1 + hwcap_EVTSTRM = 1 << 2 + hwcap_AES = 1 << 3 + hwcap_PMULL = 1 << 4 + hwcap_SHA1 = 1 << 5 + hwcap_SHA2 = 1 << 6 + hwcap_CRC32 = 1 << 7 + hwcap_ATOMICS = 1 << 8 + hwcap_FPHP = 1 << 9 + hwcap_ASIMDHP = 1 << 10 + hwcap_CPUID = 1 << 11 + hwcap_ASIMDRDM = 1 << 12 + hwcap_JSCVT = 1 << 13 + hwcap_FCMA = 1 << 14 + hwcap_LRCPC = 1 << 15 + hwcap_DCPOP = 1 << 16 + hwcap_SHA3 = 1 << 17 + hwcap_SM3 = 1 << 18 + hwcap_SM4 = 1 << 19 + hwcap_ASIMDDP = 1 << 20 + hwcap_SHA512 = 1 << 21 + hwcap_SVE = 1 << 22 + hwcap_ASIMDFHM = 1 << 23 +) + +func doinit() { + // HWCAP feature bits + ARM64.HasFP = isSet(HWCap, hwcap_FP) + ARM64.HasASIMD = isSet(HWCap, hwcap_ASIMD) + ARM64.HasEVTSTRM = isSet(HWCap, hwcap_EVTSTRM) + ARM64.HasAES = isSet(HWCap, hwcap_AES) + ARM64.HasPMULL = isSet(HWCap, hwcap_PMULL) + ARM64.HasSHA1 = isSet(HWCap, hwcap_SHA1) + ARM64.HasSHA2 = isSet(HWCap, hwcap_SHA2) + ARM64.HasCRC32 = isSet(HWCap, hwcap_CRC32) + ARM64.HasATOMICS = isSet(HWCap, hwcap_ATOMICS) + ARM64.HasFPHP = isSet(HWCap, hwcap_FPHP) + ARM64.HasASIMDHP = isSet(HWCap, hwcap_ASIMDHP) + ARM64.HasCPUID = isSet(HWCap, hwcap_CPUID) + ARM64.HasASIMDRDM = isSet(HWCap, hwcap_ASIMDRDM) + ARM64.HasJSCVT = isSet(HWCap, hwcap_JSCVT) + ARM64.HasFCMA = isSet(HWCap, hwcap_FCMA) + ARM64.HasLRCPC = isSet(HWCap, hwcap_LRCPC) + ARM64.HasDCPOP = isSet(HWCap, hwcap_DCPOP) + ARM64.HasSHA3 = isSet(HWCap, hwcap_SHA3) + ARM64.HasSM3 = isSet(HWCap, hwcap_SM3) + ARM64.HasSM4 = isSet(HWCap, hwcap_SM4) + ARM64.HasASIMDDP = isSet(HWCap, hwcap_ASIMDDP) + ARM64.HasSHA512 = isSet(HWCap, hwcap_SHA512) + ARM64.HasSVE = isSet(HWCap, hwcap_SVE) + ARM64.HasASIMDFHM = isSet(HWCap, hwcap_ASIMDFHM) +} + +func isSet(hwc uint, value uint) bool { + return hwc&value != 0 +} diff --git a/vendor/golang.org/x/sys/cpu/cpu_linux.go b/vendor/golang.org/x/sys/cpu/cpu_linux.go new file mode 100644 index 000000000..a8452e094 --- /dev/null +++ b/vendor/golang.org/x/sys/cpu/cpu_linux.go @@ -0,0 +1,61 @@ +// Copyright 2018 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. + +//+build !amd64,!amd64p32,!386 + +package cpu + +import ( + "encoding/binary" + "io/ioutil" + "runtime" +) + +const ( + _AT_HWCAP = 16 + _AT_HWCAP2 = 26 + + procAuxv = "/proc/self/auxv" + + uintSize uint = 32 << (^uint(0) >> 63) +) + +// For those platforms don't have a 'cpuid' equivalent we use HWCAP/HWCAP2 +// These are initialized in cpu_$GOARCH.go +// and should not be changed after they are initialized. +var HWCap uint +var HWCap2 uint + +func init() { + buf, err := ioutil.ReadFile(procAuxv) + if err != nil { + panic("read proc auxv failed: " + err.Error()) + } + + pb := int(uintSize / 8) + + for i := 0; i < len(buf)-pb*2; i += pb * 2 { + var tag, val uint + switch uintSize { + case 32: + tag = uint(binary.LittleEndian.Uint32(buf[i:])) + val = uint(binary.LittleEndian.Uint32(buf[i+pb:])) + case 64: + if runtime.GOARCH == "ppc64" { + tag = uint(binary.BigEndian.Uint64(buf[i:])) + val = uint(binary.BigEndian.Uint64(buf[i+pb:])) + } else { + tag = uint(binary.LittleEndian.Uint64(buf[i:])) + val = uint(binary.LittleEndian.Uint64(buf[i+pb:])) + } + } + switch tag { + case _AT_HWCAP: + HWCap = val + case _AT_HWCAP2: + HWCap2 = val + } + } + doinit() +} diff --git a/vendor/golang.org/x/sys/cpu/cpu_mips64x.go b/vendor/golang.org/x/sys/cpu/cpu_mips64x.go index 6165f1212..f55e0c82c 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_mips64x.go +++ b/vendor/golang.org/x/sys/cpu/cpu_mips64x.go @@ -7,3 +7,5 @@ package cpu const cacheLineSize = 32 + +func doinit() {} diff --git a/vendor/golang.org/x/sys/cpu/cpu_mipsx.go b/vendor/golang.org/x/sys/cpu/cpu_mipsx.go index 1269eee88..cda87b1a1 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_mipsx.go +++ b/vendor/golang.org/x/sys/cpu/cpu_mipsx.go @@ -7,3 +7,5 @@ package cpu const cacheLineSize = 32 + +func doinit() {} diff --git a/vendor/golang.org/x/sys/cpu/cpu_ppc64x.go b/vendor/golang.org/x/sys/cpu/cpu_ppc64x.go index d10759a52..ed975de62 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_ppc64x.go +++ b/vendor/golang.org/x/sys/cpu/cpu_ppc64x.go @@ -7,3 +7,26 @@ package cpu const cacheLineSize = 128 + +// HWCAP/HWCAP2 bits. These are exposed by the kernel. +const ( + // ISA Level + _PPC_FEATURE2_ARCH_2_07 = 0x80000000 + _PPC_FEATURE2_ARCH_3_00 = 0x00800000 + + // CPU features + _PPC_FEATURE2_DARN = 0x00200000 + _PPC_FEATURE2_SCV = 0x00100000 +) + +func doinit() { + // HWCAP2 feature bits + PPC64.IsPOWER8 = isSet(HWCap2, _PPC_FEATURE2_ARCH_2_07) + PPC64.IsPOWER9 = isSet(HWCap2, _PPC_FEATURE2_ARCH_3_00) + PPC64.HasDARN = isSet(HWCap2, _PPC_FEATURE2_DARN) + PPC64.HasSCV = isSet(HWCap2, _PPC_FEATURE2_SCV) +} + +func isSet(hwc uint, value uint) bool { + return hwc&value != 0 +} diff --git a/vendor/golang.org/x/sys/cpu/cpu_s390x.go b/vendor/golang.org/x/sys/cpu/cpu_s390x.go index 684c4f005..ce8a2289e 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_s390x.go +++ b/vendor/golang.org/x/sys/cpu/cpu_s390x.go @@ -5,3 +5,5 @@ package cpu const cacheLineSize = 256 + +func doinit() {} diff --git a/vendor/golang.org/x/sys/cpu/cpu_test.go b/vendor/golang.org/x/sys/cpu/cpu_test.go index baf4b87b8..e4b0f0d1d 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_test.go +++ b/vendor/golang.org/x/sys/cpu/cpu_test.go @@ -26,3 +26,29 @@ func TestAVX2hasAVX(t *testing.T) { } } } + +func TestARM64minimalFeatures(t *testing.T) { + if runtime.GOARCH != "arm64" || runtime.GOOS != "linux" { + return + } + if !cpu.ARM64.HasASIMD { + t.Fatal("HasASIMD expected true, got false") + } + if !cpu.ARM64.HasFP { + t.Fatal("HasFP expected true, got false") + } +} + +// On ppc64x, the ISA bit for POWER8 should always be set on POWER8 and beyond. +func TestPPC64minimalFeatures(t *testing.T) { + // Do not run this with gccgo on ppc64, as it doesn't have POWER8 as a minimum + // requirement. + if runtime.Compiler == "gccgo" && runtime.GOARCH == "ppc64" { + t.Skip("gccgo does not require POWER8 on ppc64; skipping") + } + if runtime.GOARCH == "ppc64" || runtime.GOARCH == "ppc64le" { + if !cpu.PPC64.IsPOWER8 { + t.Fatal("IsPOWER8 expected true, got false") + } + } +} diff --git a/vendor/golang.org/x/sys/plan9/mksyscall.go b/vendor/golang.org/x/sys/plan9/mksyscall.go new file mode 100644 index 000000000..c403de16b --- /dev/null +++ b/vendor/golang.org/x/sys/plan9/mksyscall.go @@ -0,0 +1,393 @@ +// Copyright 2018 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. + +// +build ignore + +/* +This program reads a file containing function prototypes +(like syscall_plan9.go) and generates system call bodies. +The prototypes are marked by lines beginning with "//sys" +and read like func declarations if //sys is replaced by func, but: + * The parameter lists must give a name for each argument. + This includes return parameters. + * The parameter lists must give a type for each argument: + the (x, y, z int) shorthand is not allowed. + * If the return parameter is an error number, it must be named errno. + +A line beginning with //sysnb is like //sys, except that the +goroutine will not be suspended during the execution of the system +call. This must only be used for system calls which can never +block, as otherwise the system call could cause all goroutines to +hang. +*/ +package main + +import ( + "bufio" + "flag" + "fmt" + "os" + "regexp" + "strings" +) + +var ( + b32 = flag.Bool("b32", false, "32bit big-endian") + l32 = flag.Bool("l32", false, "32bit little-endian") + plan9 = flag.Bool("plan9", false, "plan9") + openbsd = flag.Bool("openbsd", false, "openbsd") + netbsd = flag.Bool("netbsd", false, "netbsd") + dragonfly = flag.Bool("dragonfly", false, "dragonfly") + arm = flag.Bool("arm", false, "arm") // 64-bit value should use (even, odd)-pair + tags = flag.String("tags", "", "build tags") + filename = flag.String("output", "", "output file name (standard output if omitted)") +) + +// cmdLine returns this programs's commandline arguments +func cmdLine() string { + return "go run mksyscall.go " + strings.Join(os.Args[1:], " ") +} + +// buildTags returns build tags +func buildTags() string { + return *tags +} + +// Param is function parameter +type Param struct { + Name string + Type string +} + +// usage prints the program usage +func usage() { + fmt.Fprintf(os.Stderr, "usage: go run mksyscall.go [-b32 | -l32] [-tags x,y] [file ...]\n") + os.Exit(1) +} + +// parseParamList parses parameter list and returns a slice of parameters +func parseParamList(list string) []string { + list = strings.TrimSpace(list) + if list == "" { + return []string{} + } + return regexp.MustCompile(`\s*,\s*`).Split(list, -1) +} + +// parseParam splits a parameter into name and type +func parseParam(p string) Param { + ps := regexp.MustCompile(`^(\S*) (\S*)$`).FindStringSubmatch(p) + if ps == nil { + fmt.Fprintf(os.Stderr, "malformed parameter: %s\n", p) + os.Exit(1) + } + return Param{ps[1], ps[2]} +} + +func main() { + // Get the OS and architecture (using GOARCH_TARGET if it exists) + goos := os.Getenv("GOOS") + goarch := os.Getenv("GOARCH_TARGET") + if goarch == "" { + goarch = os.Getenv("GOARCH") + } + + // Check that we are using the Docker-based build system if we should + if goos == "linux" { + if os.Getenv("GOLANG_SYS_BUILD") != "docker" { + fmt.Fprintf(os.Stderr, "In the Docker-based build system, mksyscall should not be called directly.\n") + fmt.Fprintf(os.Stderr, "See README.md\n") + os.Exit(1) + } + } + + flag.Usage = usage + flag.Parse() + if len(flag.Args()) <= 0 { + fmt.Fprintf(os.Stderr, "no files to parse provided\n") + usage() + } + + endianness := "" + if *b32 { + endianness = "big-endian" + } else if *l32 { + endianness = "little-endian" + } + + libc := false + if goos == "darwin" && strings.Contains(buildTags(), ",go1.12") { + libc = true + } + trampolines := map[string]bool{} + + text := "" + for _, path := range flag.Args() { + file, err := os.Open(path) + if err != nil { + fmt.Fprintf(os.Stderr, err.Error()) + os.Exit(1) + } + s := bufio.NewScanner(file) + for s.Scan() { + t := s.Text() + t = strings.TrimSpace(t) + t = regexp.MustCompile(`\s+`).ReplaceAllString(t, ` `) + nonblock := regexp.MustCompile(`^\/\/sysnb `).FindStringSubmatch(t) + if regexp.MustCompile(`^\/\/sys `).FindStringSubmatch(t) == nil && nonblock == nil { + continue + } + + // Line must be of the form + // func Open(path string, mode int, perm int) (fd int, errno error) + // Split into name, in params, out params. + f := regexp.MustCompile(`^\/\/sys(nb)? (\w+)\(([^()]*)\)\s*(?:\(([^()]+)\))?\s*(?:=\s*((?i)SYS_[A-Z0-9_]+))?$`).FindStringSubmatch(t) + if f == nil { + fmt.Fprintf(os.Stderr, "%s:%s\nmalformed //sys declaration\n", path, t) + os.Exit(1) + } + funct, inps, outps, sysname := f[2], f[3], f[4], f[5] + + // Split argument lists on comma. + in := parseParamList(inps) + out := parseParamList(outps) + + // Try in vain to keep people from editing this file. + // The theory is that they jump into the middle of the file + // without reading the header. + text += "// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\n" + + // Go function header. + outDecl := "" + if len(out) > 0 { + outDecl = fmt.Sprintf(" (%s)", strings.Join(out, ", ")) + } + text += fmt.Sprintf("func %s(%s)%s {\n", funct, strings.Join(in, ", "), outDecl) + + // Check if err return available + errvar := "" + for _, param := range out { + p := parseParam(param) + if p.Type == "error" { + errvar = p.Name + break + } + } + + // Prepare arguments to Syscall. + var args []string + n := 0 + for _, param := range in { + p := parseParam(param) + if regexp.MustCompile(`^\*`).FindStringSubmatch(p.Type) != nil { + args = append(args, "uintptr(unsafe.Pointer("+p.Name+"))") + } else if p.Type == "string" && errvar != "" { + text += fmt.Sprintf("\tvar _p%d *byte\n", n) + text += fmt.Sprintf("\t_p%d, %s = BytePtrFromString(%s)\n", n, errvar, p.Name) + text += fmt.Sprintf("\tif %s != nil {\n\t\treturn\n\t}\n", errvar) + args = append(args, fmt.Sprintf("uintptr(unsafe.Pointer(_p%d))", n)) + n++ + } else if p.Type == "string" { + fmt.Fprintf(os.Stderr, path+":"+funct+" uses string arguments, but has no error return\n") + text += fmt.Sprintf("\tvar _p%d *byte\n", n) + text += fmt.Sprintf("\t_p%d, _ = BytePtrFromString(%s)\n", n, p.Name) + args = append(args, fmt.Sprintf("uintptr(unsafe.Pointer(_p%d))", n)) + n++ + } else if regexp.MustCompile(`^\[\](.*)`).FindStringSubmatch(p.Type) != nil { + // Convert slice into pointer, length. + // Have to be careful not to take address of &a[0] if len == 0: + // pass dummy pointer in that case. + // Used to pass nil, but some OSes or simulators reject write(fd, nil, 0). + text += fmt.Sprintf("\tvar _p%d unsafe.Pointer\n", n) + text += fmt.Sprintf("\tif len(%s) > 0 {\n\t\t_p%d = unsafe.Pointer(&%s[0])\n\t}", p.Name, n, p.Name) + text += fmt.Sprintf(" else {\n\t\t_p%d = unsafe.Pointer(&_zero)\n\t}\n", n) + args = append(args, fmt.Sprintf("uintptr(_p%d)", n), fmt.Sprintf("uintptr(len(%s))", p.Name)) + n++ + } else if p.Type == "int64" && (*openbsd || *netbsd) { + args = append(args, "0") + if endianness == "big-endian" { + args = append(args, fmt.Sprintf("uintptr(%s>>32)", p.Name), fmt.Sprintf("uintptr(%s)", p.Name)) + } else if endianness == "little-endian" { + args = append(args, fmt.Sprintf("uintptr(%s)", p.Name), fmt.Sprintf("uintptr(%s>>32)", p.Name)) + } else { + args = append(args, fmt.Sprintf("uintptr(%s)", p.Name)) + } + } else if p.Type == "int64" && *dragonfly { + if regexp.MustCompile(`^(?i)extp(read|write)`).FindStringSubmatch(funct) == nil { + args = append(args, "0") + } + if endianness == "big-endian" { + args = append(args, fmt.Sprintf("uintptr(%s>>32)", p.Name), fmt.Sprintf("uintptr(%s)", p.Name)) + } else if endianness == "little-endian" { + args = append(args, fmt.Sprintf("uintptr(%s)", p.Name), fmt.Sprintf("uintptr(%s>>32)", p.Name)) + } else { + args = append(args, fmt.Sprintf("uintptr(%s)", p.Name)) + } + } else if p.Type == "int64" && endianness != "" { + if len(args)%2 == 1 && *arm { + // arm abi specifies 64-bit argument uses + // (even, odd) pair + args = append(args, "0") + } + if endianness == "big-endian" { + args = append(args, fmt.Sprintf("uintptr(%s>>32)", p.Name), fmt.Sprintf("uintptr(%s)", p.Name)) + } else { + args = append(args, fmt.Sprintf("uintptr(%s)", p.Name), fmt.Sprintf("uintptr(%s>>32)", p.Name)) + } + } else { + args = append(args, fmt.Sprintf("uintptr(%s)", p.Name)) + } + } + + // Determine which form to use; pad args with zeros. + asm := "Syscall" + if nonblock != nil { + if errvar == "" && goos == "linux" { + asm = "RawSyscallNoError" + } else { + asm = "RawSyscall" + } + } else { + if errvar == "" && goos == "linux" { + asm = "SyscallNoError" + } + } + if len(args) <= 3 { + for len(args) < 3 { + args = append(args, "0") + } + } else if len(args) <= 6 { + asm += "6" + for len(args) < 6 { + args = append(args, "0") + } + } else if len(args) <= 9 { + asm += "9" + for len(args) < 9 { + args = append(args, "0") + } + } else { + fmt.Fprintf(os.Stderr, "%s:%s too many arguments to system call\n", path, funct) + } + + // System call number. + if sysname == "" { + sysname = "SYS_" + funct + sysname = regexp.MustCompile(`([a-z])([A-Z])`).ReplaceAllString(sysname, `${1}_$2`) + sysname = strings.ToUpper(sysname) + } + + var libcFn string + if libc { + asm = "syscall_" + strings.ToLower(asm[:1]) + asm[1:] // internal syscall call + sysname = strings.TrimPrefix(sysname, "SYS_") // remove SYS_ + sysname = strings.ToLower(sysname) // lowercase + if sysname == "getdirentries64" { + // Special case - libSystem name and + // raw syscall name don't match. + sysname = "__getdirentries64" + } + libcFn = sysname + sysname = "funcPC(libc_" + sysname + "_trampoline)" + } + + // Actual call. + arglist := strings.Join(args, ", ") + call := fmt.Sprintf("%s(%s, %s)", asm, sysname, arglist) + + // Assign return values. + body := "" + ret := []string{"_", "_", "_"} + doErrno := false + for i := 0; i < len(out); i++ { + p := parseParam(out[i]) + reg := "" + if p.Name == "err" && !*plan9 { + reg = "e1" + ret[2] = reg + doErrno = true + } else if p.Name == "err" && *plan9 { + ret[0] = "r0" + ret[2] = "e1" + break + } else { + reg = fmt.Sprintf("r%d", i) + ret[i] = reg + } + if p.Type == "bool" { + reg = fmt.Sprintf("%s != 0", reg) + } + if p.Type == "int64" && endianness != "" { + // 64-bit number in r1:r0 or r0:r1. + if i+2 > len(out) { + fmt.Fprintf(os.Stderr, "%s:%s not enough registers for int64 return\n", path, funct) + } + if endianness == "big-endian" { + reg = fmt.Sprintf("int64(r%d)<<32 | int64(r%d)", i, i+1) + } else { + reg = fmt.Sprintf("int64(r%d)<<32 | int64(r%d)", i+1, i) + } + ret[i] = fmt.Sprintf("r%d", i) + ret[i+1] = fmt.Sprintf("r%d", i+1) + } + if reg != "e1" || *plan9 { + body += fmt.Sprintf("\t%s = %s(%s)\n", p.Name, p.Type, reg) + } + } + if ret[0] == "_" && ret[1] == "_" && ret[2] == "_" { + text += fmt.Sprintf("\t%s\n", call) + } else { + if errvar == "" && goos == "linux" { + // raw syscall without error on Linux, see golang.org/issue/22924 + text += fmt.Sprintf("\t%s, %s := %s\n", ret[0], ret[1], call) + } else { + text += fmt.Sprintf("\t%s, %s, %s := %s\n", ret[0], ret[1], ret[2], call) + } + } + text += body + + if *plan9 && ret[2] == "e1" { + text += "\tif int32(r0) == -1 {\n" + text += "\t\terr = e1\n" + text += "\t}\n" + } else if doErrno { + text += "\tif e1 != 0 {\n" + text += "\t\terr = errnoErr(e1)\n" + text += "\t}\n" + } + text += "\treturn\n" + text += "}\n\n" + + if libc && !trampolines[libcFn] { + // some system calls share a trampoline, like read and readlen. + trampolines[libcFn] = true + // Declare assembly trampoline. + text += fmt.Sprintf("func libc_%s_trampoline()\n", libcFn) + // Assembly trampoline calls the libc_* function, which this magic + // redirects to use the function from libSystem. + text += fmt.Sprintf("//go:linkname libc_%s libc_%s\n", libcFn, libcFn) + text += fmt.Sprintf("//go:cgo_import_dynamic libc_%s %s \"/usr/lib/libSystem.B.dylib\"\n", libcFn, libcFn) + text += "\n" + } + } + if err := s.Err(); err != nil { + fmt.Fprintf(os.Stderr, err.Error()) + os.Exit(1) + } + file.Close() + } + fmt.Printf(srcTemplate, cmdLine(), buildTags(), text) +} + +const srcTemplate = `// %s +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build %s + +package plan9 + +import "unsafe" + +%s +` diff --git a/vendor/golang.org/x/sys/plan9/mksyscall.pl b/vendor/golang.org/x/sys/plan9/mksyscall.pl deleted file mode 100755 index 252e89e14..000000000 --- a/vendor/golang.org/x/sys/plan9/mksyscall.pl +++ /dev/null @@ -1,319 +0,0 @@ -#!/usr/bin/env perl -# Copyright 2009 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. - -# This program reads a file containing function prototypes -# (like syscall_plan9.go) and generates system call bodies. -# The prototypes are marked by lines beginning with "//sys" -# and read like func declarations if //sys is replaced by func, but: -# * The parameter lists must give a name for each argument. -# This includes return parameters. -# * The parameter lists must give a type for each argument: -# the (x, y, z int) shorthand is not allowed. -# * If the return parameter is an error number, it must be named errno. - -# A line beginning with //sysnb is like //sys, except that the -# goroutine will not be suspended during the execution of the system -# call. This must only be used for system calls which can never -# block, as otherwise the system call could cause all goroutines to -# hang. - -use strict; - -my $cmdline = "mksyscall.pl " . join(' ', @ARGV); -my $errors = 0; -my $_32bit = ""; -my $plan9 = 0; -my $openbsd = 0; -my $netbsd = 0; -my $dragonfly = 0; -my $nacl = 0; -my $arm = 0; # 64-bit value should use (even, odd)-pair - -if($ARGV[0] eq "-b32") { - $_32bit = "big-endian"; - shift; -} elsif($ARGV[0] eq "-l32") { - $_32bit = "little-endian"; - shift; -} -if($ARGV[0] eq "-plan9") { - $plan9 = 1; - shift; -} -if($ARGV[0] eq "-openbsd") { - $openbsd = 1; - shift; -} -if($ARGV[0] eq "-netbsd") { - $netbsd = 1; - shift; -} -if($ARGV[0] eq "-dragonfly") { - $dragonfly = 1; - shift; -} -if($ARGV[0] eq "-nacl") { - $nacl = 1; - shift; -} -if($ARGV[0] eq "-arm") { - $arm = 1; - shift; -} - -if($ARGV[0] =~ /^-/) { - print STDERR "usage: mksyscall.pl [-b32 | -l32] [file ...]\n"; - exit 1; -} - -sub parseparamlist($) { - my ($list) = @_; - $list =~ s/^\s*//; - $list =~ s/\s*$//; - if($list eq "") { - return (); - } - return split(/\s*,\s*/, $list); -} - -sub parseparam($) { - my ($p) = @_; - if($p !~ /^(\S*) (\S*)$/) { - print STDERR "$ARGV:$.: malformed parameter: $p\n"; - $errors = 1; - return ("xx", "int"); - } - return ($1, $2); -} - -my $text = ""; -while(<>) { - chomp; - s/\s+/ /g; - s/^\s+//; - s/\s+$//; - my $nonblock = /^\/\/sysnb /; - next if !/^\/\/sys / && !$nonblock; - - # Line must be of the form - # func Open(path string, mode int, perm int) (fd int, errno error) - # Split into name, in params, out params. - if(!/^\/\/sys(nb)? (\w+)\(([^()]*)\)\s*(?:\(([^()]+)\))?\s*(?:=\s*((?i)SYS_[A-Z0-9_]+))?$/) { - print STDERR "$ARGV:$.: malformed //sys declaration\n"; - $errors = 1; - next; - } - my ($func, $in, $out, $sysname) = ($2, $3, $4, $5); - - # Split argument lists on comma. - my @in = parseparamlist($in); - my @out = parseparamlist($out); - - # Try in vain to keep people from editing this file. - # The theory is that they jump into the middle of the file - # without reading the header. - $text .= "// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\n"; - - # Go function header. - my $out_decl = @out ? sprintf(" (%s)", join(', ', @out)) : ""; - $text .= sprintf "func %s(%s)%s {\n", $func, join(', ', @in), $out_decl; - - # Check if err return available - my $errvar = ""; - foreach my $p (@out) { - my ($name, $type) = parseparam($p); - if($type eq "error") { - $errvar = $name; - last; - } - } - - # Prepare arguments to Syscall. - my @args = (); - my @uses = (); - my $n = 0; - foreach my $p (@in) { - my ($name, $type) = parseparam($p); - if($type =~ /^\*/) { - push @args, "uintptr(unsafe.Pointer($name))"; - } elsif($type eq "string" && $errvar ne "") { - $text .= "\tvar _p$n *byte\n"; - $text .= "\t_p$n, $errvar = BytePtrFromString($name)\n"; - $text .= "\tif $errvar != nil {\n\t\treturn\n\t}\n"; - push @args, "uintptr(unsafe.Pointer(_p$n))"; - push @uses, "use(unsafe.Pointer(_p$n))"; - $n++; - } elsif($type eq "string") { - print STDERR "$ARGV:$.: $func uses string arguments, but has no error return\n"; - $text .= "\tvar _p$n *byte\n"; - $text .= "\t_p$n, _ = BytePtrFromString($name)\n"; - push @args, "uintptr(unsafe.Pointer(_p$n))"; - push @uses, "use(unsafe.Pointer(_p$n))"; - $n++; - } elsif($type =~ /^\[\](.*)/) { - # Convert slice into pointer, length. - # Have to be careful not to take address of &a[0] if len == 0: - # pass dummy pointer in that case. - # Used to pass nil, but some OSes or simulators reject write(fd, nil, 0). - $text .= "\tvar _p$n unsafe.Pointer\n"; - $text .= "\tif len($name) > 0 {\n\t\t_p$n = unsafe.Pointer(\&${name}[0])\n\t}"; - $text .= " else {\n\t\t_p$n = unsafe.Pointer(&_zero)\n\t}"; - $text .= "\n"; - push @args, "uintptr(_p$n)", "uintptr(len($name))"; - $n++; - } elsif($type eq "int64" && ($openbsd || $netbsd)) { - push @args, "0"; - if($_32bit eq "big-endian") { - push @args, "uintptr($name>>32)", "uintptr($name)"; - } elsif($_32bit eq "little-endian") { - push @args, "uintptr($name)", "uintptr($name>>32)"; - } else { - push @args, "uintptr($name)"; - } - } elsif($type eq "int64" && $dragonfly) { - if ($func !~ /^extp(read|write)/i) { - push @args, "0"; - } - if($_32bit eq "big-endian") { - push @args, "uintptr($name>>32)", "uintptr($name)"; - } elsif($_32bit eq "little-endian") { - push @args, "uintptr($name)", "uintptr($name>>32)"; - } else { - push @args, "uintptr($name)"; - } - } elsif($type eq "int64" && $_32bit ne "") { - if(@args % 2 && $arm) { - # arm abi specifies 64-bit argument uses - # (even, odd) pair - push @args, "0" - } - if($_32bit eq "big-endian") { - push @args, "uintptr($name>>32)", "uintptr($name)"; - } else { - push @args, "uintptr($name)", "uintptr($name>>32)"; - } - } else { - push @args, "uintptr($name)"; - } - } - - # Determine which form to use; pad args with zeros. - my $asm = "Syscall"; - if ($nonblock) { - $asm = "RawSyscall"; - } - if(@args <= 3) { - while(@args < 3) { - push @args, "0"; - } - } elsif(@args <= 6) { - $asm .= "6"; - while(@args < 6) { - push @args, "0"; - } - } elsif(@args <= 9) { - $asm .= "9"; - while(@args < 9) { - push @args, "0"; - } - } else { - print STDERR "$ARGV:$.: too many arguments to system call\n"; - } - - # System call number. - if($sysname eq "") { - $sysname = "SYS_$func"; - $sysname =~ s/([a-z])([A-Z])/${1}_$2/g; # turn FooBar into Foo_Bar - $sysname =~ y/a-z/A-Z/; - if($nacl) { - $sysname =~ y/A-Z/a-z/; - } - } - - # Actual call. - my $args = join(', ', @args); - my $call = "$asm($sysname, $args)"; - - # Assign return values. - my $body = ""; - my @ret = ("_", "_", "_"); - my $do_errno = 0; - for(my $i=0; $i<@out; $i++) { - my $p = $out[$i]; - my ($name, $type) = parseparam($p); - my $reg = ""; - if($name eq "err" && !$plan9) { - $reg = "e1"; - $ret[2] = $reg; - $do_errno = 1; - } elsif($name eq "err" && $plan9) { - $ret[0] = "r0"; - $ret[2] = "e1"; - next; - } else { - $reg = sprintf("r%d", $i); - $ret[$i] = $reg; - } - if($type eq "bool") { - $reg = "$reg != 0"; - } - if($type eq "int64" && $_32bit ne "") { - # 64-bit number in r1:r0 or r0:r1. - if($i+2 > @out) { - print STDERR "$ARGV:$.: not enough registers for int64 return\n"; - } - if($_32bit eq "big-endian") { - $reg = sprintf("int64(r%d)<<32 | int64(r%d)", $i, $i+1); - } else { - $reg = sprintf("int64(r%d)<<32 | int64(r%d)", $i+1, $i); - } - $ret[$i] = sprintf("r%d", $i); - $ret[$i+1] = sprintf("r%d", $i+1); - } - if($reg ne "e1" || $plan9) { - $body .= "\t$name = $type($reg)\n"; - } - } - if ($ret[0] eq "_" && $ret[1] eq "_" && $ret[2] eq "_") { - $text .= "\t$call\n"; - } else { - $text .= "\t$ret[0], $ret[1], $ret[2] := $call\n"; - } - foreach my $use (@uses) { - $text .= "\t$use\n"; - } - $text .= $body; - - if ($plan9 && $ret[2] eq "e1") { - $text .= "\tif int32(r0) == -1 {\n"; - $text .= "\t\terr = e1\n"; - $text .= "\t}\n"; - } elsif ($do_errno) { - $text .= "\tif e1 != 0 {\n"; - $text .= "\t\terr = e1\n"; - $text .= "\t}\n"; - } - $text .= "\treturn\n"; - $text .= "}\n\n"; -} - -chomp $text; -chomp $text; - -if($errors) { - exit 1; -} - -print <= 3 && os.Args[1] == "testDarwinLoader" { + for _, test := range darwinTests { + if test.name == os.Args[2] { + test.f() + } + } + // Panic with a "success" label, so the parent process can check it. + panic("success") + } +} + +// All the _trampoline functions in zsyscall_darwin_$ARCH.s +var darwinTests = [...]darwinTest{ + {"getgroups", libc_getgroups_trampoline}, + {"setgroups", libc_setgroups_trampoline}, + {"wait4", libc_wait4_trampoline}, + {"accept", libc_accept_trampoline}, + {"bind", libc_bind_trampoline}, + {"connect", libc_connect_trampoline}, + {"socket", libc_socket_trampoline}, + {"getsockopt", libc_getsockopt_trampoline}, + {"setsockopt", libc_setsockopt_trampoline}, + {"getpeername", libc_getpeername_trampoline}, + {"getsockname", libc_getsockname_trampoline}, + {"shutdown", libc_shutdown_trampoline}, + {"socketpair", libc_socketpair_trampoline}, + {"recvfrom", libc_recvfrom_trampoline}, + {"sendto", libc_sendto_trampoline}, + {"recvmsg", libc_recvmsg_trampoline}, + {"sendmsg", libc_sendmsg_trampoline}, + {"kevent", libc_kevent_trampoline}, + {"__sysctl", libc___sysctl_trampoline}, + {"utimes", libc_utimes_trampoline}, + {"futimes", libc_futimes_trampoline}, + {"fcntl", libc_fcntl_trampoline}, + {"poll", libc_poll_trampoline}, + {"madvise", libc_madvise_trampoline}, + {"mlock", libc_mlock_trampoline}, + {"mlockall", libc_mlockall_trampoline}, + {"mprotect", libc_mprotect_trampoline}, + {"msync", libc_msync_trampoline}, + {"munlock", libc_munlock_trampoline}, + {"munlockall", libc_munlockall_trampoline}, + {"ptrace", libc_ptrace_trampoline}, + {"pipe", libc_pipe_trampoline}, + {"getxattr", libc_getxattr_trampoline}, + {"fgetxattr", libc_fgetxattr_trampoline}, + {"setxattr", libc_setxattr_trampoline}, + {"fsetxattr", libc_fsetxattr_trampoline}, + {"removexattr", libc_removexattr_trampoline}, + {"fremovexattr", libc_fremovexattr_trampoline}, + {"listxattr", libc_listxattr_trampoline}, + {"flistxattr", libc_flistxattr_trampoline}, + {"kill", libc_kill_trampoline}, + {"ioctl", libc_ioctl_trampoline}, + {"access", libc_access_trampoline}, + {"adjtime", libc_adjtime_trampoline}, + {"chdir", libc_chdir_trampoline}, + {"chflags", libc_chflags_trampoline}, + {"chmod", libc_chmod_trampoline}, + {"chown", libc_chown_trampoline}, + {"chroot", libc_chroot_trampoline}, + {"close", libc_close_trampoline}, + {"dup", libc_dup_trampoline}, + {"dup2", libc_dup2_trampoline}, + {"exchangedata", libc_exchangedata_trampoline}, + {"exit", libc_exit_trampoline}, + {"faccessat", libc_faccessat_trampoline}, + {"fchdir", libc_fchdir_trampoline}, + {"fchflags", libc_fchflags_trampoline}, + {"fchmod", libc_fchmod_trampoline}, + {"fchmodat", libc_fchmodat_trampoline}, + {"fchown", libc_fchown_trampoline}, + {"fchownat", libc_fchownat_trampoline}, + {"flock", libc_flock_trampoline}, + {"fpathconf", libc_fpathconf_trampoline}, + {"fstat64", libc_fstat64_trampoline}, + {"fstatat64", libc_fstatat64_trampoline}, + {"fstatfs64", libc_fstatfs64_trampoline}, + {"fsync", libc_fsync_trampoline}, + {"ftruncate", libc_ftruncate_trampoline}, + {"__getdirentries64", libc___getdirentries64_trampoline}, + {"getdtablesize", libc_getdtablesize_trampoline}, + {"getegid", libc_getegid_trampoline}, + {"geteuid", libc_geteuid_trampoline}, + {"getgid", libc_getgid_trampoline}, + {"getpgid", libc_getpgid_trampoline}, + {"getpgrp", libc_getpgrp_trampoline}, + {"getpid", libc_getpid_trampoline}, + {"getppid", libc_getppid_trampoline}, + {"getpriority", libc_getpriority_trampoline}, + {"getrlimit", libc_getrlimit_trampoline}, + {"getrusage", libc_getrusage_trampoline}, + {"getsid", libc_getsid_trampoline}, + {"getuid", libc_getuid_trampoline}, + {"issetugid", libc_issetugid_trampoline}, + {"kqueue", libc_kqueue_trampoline}, + {"lchown", libc_lchown_trampoline}, + {"link", libc_link_trampoline}, + {"linkat", libc_linkat_trampoline}, + {"listen", libc_listen_trampoline}, + {"lstat64", libc_lstat64_trampoline}, + {"mkdir", libc_mkdir_trampoline}, + {"mkdirat", libc_mkdirat_trampoline}, + {"mkfifo", libc_mkfifo_trampoline}, + {"mknod", libc_mknod_trampoline}, + {"open", libc_open_trampoline}, + {"openat", libc_openat_trampoline}, + {"pathconf", libc_pathconf_trampoline}, + {"pread", libc_pread_trampoline}, + {"pwrite", libc_pwrite_trampoline}, + {"read", libc_read_trampoline}, + {"readlink", libc_readlink_trampoline}, + {"readlinkat", libc_readlinkat_trampoline}, + {"rename", libc_rename_trampoline}, + {"renameat", libc_renameat_trampoline}, + {"revoke", libc_revoke_trampoline}, + {"rmdir", libc_rmdir_trampoline}, + {"lseek", libc_lseek_trampoline}, + {"select", libc_select_trampoline}, + {"setegid", libc_setegid_trampoline}, + {"seteuid", libc_seteuid_trampoline}, + {"setgid", libc_setgid_trampoline}, + {"setlogin", libc_setlogin_trampoline}, + {"setpgid", libc_setpgid_trampoline}, + {"setpriority", libc_setpriority_trampoline}, + {"setprivexec", libc_setprivexec_trampoline}, + {"setregid", libc_setregid_trampoline}, + {"setreuid", libc_setreuid_trampoline}, + {"setrlimit", libc_setrlimit_trampoline}, + {"setsid", libc_setsid_trampoline}, + {"settimeofday", libc_settimeofday_trampoline}, + {"setuid", libc_setuid_trampoline}, + {"stat64", libc_stat64_trampoline}, + {"statfs64", libc_statfs64_trampoline}, + {"symlink", libc_symlink_trampoline}, + {"symlinkat", libc_symlinkat_trampoline}, + {"sync", libc_sync_trampoline}, + {"truncate", libc_truncate_trampoline}, + {"umask", libc_umask_trampoline}, + {"undelete", libc_undelete_trampoline}, + {"unlink", libc_unlink_trampoline}, + {"unlinkat", libc_unlinkat_trampoline}, + {"unmount", libc_unmount_trampoline}, + {"write", libc_write_trampoline}, + {"mmap", libc_mmap_trampoline}, + {"munmap", libc_munmap_trampoline}, + {"gettimeofday", libc_gettimeofday_trampoline}, + {"getfsstat64", libc_getfsstat64_trampoline}, +} diff --git a/vendor/golang.org/x/sys/unix/example_exec_test.go b/vendor/golang.org/x/sys/unix/example_exec_test.go new file mode 100644 index 000000000..bb4d3bf5d --- /dev/null +++ b/vendor/golang.org/x/sys/unix/example_exec_test.go @@ -0,0 +1,19 @@ +// Copyright 2018 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. + +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris + +package unix_test + +import ( + "log" + "os" + + "golang.org/x/sys/unix" +) + +func ExampleExec() { + err := unix.Exec("/bin/ls", []string{"ls", "-al"}, os.Environ()) + log.Fatal(err) +} diff --git a/vendor/golang.org/x/sys/unix/example_test.go b/vendor/golang.org/x/sys/unix/example_flock_test.go similarity index 75% rename from vendor/golang.org/x/sys/unix/example_test.go rename to vendor/golang.org/x/sys/unix/example_flock_test.go index ae008f5ba..6c9174859 100644 --- a/vendor/golang.org/x/sys/unix/example_test.go +++ b/vendor/golang.org/x/sys/unix/example_flock_test.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris +// +build darwin dragonfly freebsd linux netbsd openbsd solaris package unix_test @@ -13,11 +13,6 @@ import ( "golang.org/x/sys/unix" ) -func ExampleExec() { - err := unix.Exec("/bin/ls", []string{"ls", "-al"}, os.Environ()) - log.Fatal(err) -} - func ExampleFlock() { f, _ := os.Create("example.lock") if err := unix.Flock(int(f.Fd()), unix.LOCK_EX); err != nil { diff --git a/vendor/golang.org/x/sys/unix/fcntl.go b/vendor/golang.org/x/sys/unix/fcntl.go index 9379ba9ce..39c03f1ef 100644 --- a/vendor/golang.org/x/sys/unix/fcntl.go +++ b/vendor/golang.org/x/sys/unix/fcntl.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build darwin dragonfly freebsd linux netbsd openbsd +// +build dragonfly freebsd linux netbsd openbsd package unix diff --git a/vendor/golang.org/x/sys/unix/fcntl_darwin.go b/vendor/golang.org/x/sys/unix/fcntl_darwin.go new file mode 100644 index 000000000..5868a4a47 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/fcntl_darwin.go @@ -0,0 +1,18 @@ +// Copyright 2019 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 + +import "unsafe" + +// FcntlInt performs a fcntl syscall on fd with the provided command and argument. +func FcntlInt(fd uintptr, cmd, arg int) (int, error) { + return fcntl(int(fd), cmd, arg) +} + +// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command. +func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error { + _, err := fcntl(int(fd), cmd, int(uintptr(unsafe.Pointer(lk)))) + return err +} diff --git a/vendor/golang.org/x/sys/unix/linux/Dockerfile b/vendor/golang.org/x/sys/unix/linux/Dockerfile index 29c89f30b..997fc2d8f 100644 --- a/vendor/golang.org/x/sys/unix/linux/Dockerfile +++ b/vendor/golang.org/x/sys/unix/linux/Dockerfile @@ -11,15 +11,15 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ # Get the git sources. If not cached, this takes O(5 minutes). WORKDIR /git RUN git config --global advice.detachedHead false -# Linux Kernel: Released 22 Oct 2018 -RUN git clone --branch v4.19 --depth 1 https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux +# Linux Kernel: Released 23 Dec 2018 +RUN git clone --branch v4.20 --depth 1 https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux # GNU C library: Released 01 Aug 2018 (we should try to get a secure way to clone this) RUN git clone --branch glibc-2.28 --depth 1 git://sourceware.org/git/glibc.git # Get Go -ENV GOLANG_VERSION 1.11 +ENV GOLANG_VERSION 1.12beta1 ENV GOLANG_DOWNLOAD_URL https://golang.org/dl/go$GOLANG_VERSION.linux-amd64.tar.gz -ENV GOLANG_DOWNLOAD_SHA256 b3fcf280ff86558e0559e185b601c9eade0fd24c900b4c63cd14d1d38613e499 +ENV GOLANG_DOWNLOAD_SHA256 65bfd4a99925f1f85d712f4c1109977aa24ee4c6e198162bf8e819fdde19e875 RUN curl -fsSL "$GOLANG_DOWNLOAD_URL" -o golang.tar.gz \ && echo "$GOLANG_DOWNLOAD_SHA256 golang.tar.gz" | sha256sum -c - \ diff --git a/vendor/golang.org/x/sys/unix/linux/mkall.go b/vendor/golang.org/x/sys/unix/linux/mkall.go index 9a30a41eb..88d9c82e7 100644 --- a/vendor/golang.org/x/sys/unix/linux/mkall.go +++ b/vendor/golang.org/x/sys/unix/linux/mkall.go @@ -52,8 +52,9 @@ type target struct { Bits int } -// List of all Linux targets supported by the go compiler. sparc64 is not -// currently supported, though a port is in progress. +// List of all Linux targets supported by the go compiler. Currently, riscv64 +// and sparc64 are not fully supported, but there is enough support already to +// generate Go type and error definitions. var targets = []target{ { GoArch: "386", @@ -133,13 +134,13 @@ var targets = []target{ SignedChar: true, Bits: 64, }, - // { - // GoArch: "sparc64", - // LinuxArch: "sparc", - // GNUArch: "sparc64-linux-gnu", - // BigEndian: true, - // Bits: 64, - // }, + { + GoArch: "sparc64", + LinuxArch: "sparc", + GNUArch: "sparc64-linux-gnu", + BigEndian: true, + Bits: 64, + }, } // ptracePairs is a list of pairs of targets that can, in some cases, @@ -222,6 +223,10 @@ func (t *target) commandFormatOutput(formatter string, outputFile string, args = append([]string{"run", "mksyscall.go"}, args...) mainCmd = makeCommand("go", args...) t.setTargetBuildArch(mainCmd) + } else if name == "mksysnum" { + args = append([]string{"run", "linux/mksysnum.go"}, args...) + mainCmd = makeCommand("go", args...) + t.setTargetBuildArch(mainCmd) } fmtCmd := makeCommand(formatter) @@ -467,7 +472,7 @@ func (t *target) makeZSysnumFile() error { unistdFile := filepath.Join(IncludeDir, "asm/unistd.h") args := append(t.cFlags(), unistdFile) - return t.commandFormatOutput("gofmt", zsysnumFile, "linux/mksysnum.pl", args...) + return t.commandFormatOutput("gofmt", zsysnumFile, "mksysnum", args...) } // makes the zsyscall_linux_$GOARCH.go file @@ -528,7 +533,7 @@ func (t *target) mksyscallFlags() (flags []string) { } } - // This flag menas a 64-bit value should use (even, odd)-pair. + // This flag means a 64-bit value should use (even, odd)-pair. if t.GoArch == "arm" || (t.LinuxArch == "mips" && t.Bits == 32) { flags = append(flags, "-arm") } diff --git a/vendor/golang.org/x/sys/unix/linux/mksysnum.go b/vendor/golang.org/x/sys/unix/linux/mksysnum.go new file mode 100644 index 000000000..e1ad597d7 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/linux/mksysnum.go @@ -0,0 +1,143 @@ +// Copyright 2018 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. + +// +build ignore + +package main + +import ( + "bufio" + "fmt" + "os" + "os/exec" + "regexp" + "strconv" + "strings" +) + +var ( + goos, goarch string +) + +// cmdLine returns this programs's commandline arguments +func cmdLine() string { + return "go run linux/mksysnum.go " + strings.Join(os.Args[1:], " ") +} + +// buildTags returns build tags +func buildTags() string { + return fmt.Sprintf("%s,%s", goarch, goos) +} + +func format(name string, num int, offset int) string { + if num > 999 { + // ignore deprecated syscalls that are no longer implemented + // https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/include/uapi/asm-generic/unistd.h?id=refs/heads/master#n716 + return "" + } + name = strings.ToUpper(name) + num = num + offset + return fmt.Sprintf(" SYS_%s = %d;\n", name, num) +} + +func checkErr(err error) { + if err != nil { + fmt.Fprintf(os.Stderr, "%v\n", err) + os.Exit(1) + } +} + +// source string and substring slice for regexp +type re struct { + str string // source string + sub []string // matched sub-string +} + +// Match performs regular expression match +func (r *re) Match(exp string) bool { + r.sub = regexp.MustCompile(exp).FindStringSubmatch(r.str) + if r.sub != nil { + return true + } + return false +} + +func main() { + // Get the OS and architecture (using GOARCH_TARGET if it exists) + goos = os.Getenv("GOOS") + goarch = os.Getenv("GOARCH_TARGET") + if goarch == "" { + goarch = os.Getenv("GOARCH") + } + // Check if GOOS and GOARCH environment variables are defined + if goarch == "" || goos == "" { + fmt.Fprintf(os.Stderr, "GOARCH or GOOS not defined in environment\n") + os.Exit(1) + } + // Check that we are using the new build system if we should + if os.Getenv("GOLANG_SYS_BUILD") != "docker" { + fmt.Fprintf(os.Stderr, "In the new build system, mksysnum should not be called directly.\n") + fmt.Fprintf(os.Stderr, "See README.md\n") + os.Exit(1) + } + + cc := os.Getenv("CC") + if cc == "" { + fmt.Fprintf(os.Stderr, "CC is not defined in environment\n") + os.Exit(1) + } + args := os.Args[1:] + args = append([]string{"-E", "-dD"}, args...) + cmd, err := exec.Command(cc, args...).Output() // execute command and capture output + if err != nil { + fmt.Fprintf(os.Stderr, "can't run %s", cc) + os.Exit(1) + } + text := "" + s := bufio.NewScanner(strings.NewReader(string(cmd))) + var offset, prev int + for s.Scan() { + t := re{str: s.Text()} + if t.Match(`^#define __NR_Linux\s+([0-9]+)`) { + // mips/mips64: extract offset + offset, _ = strconv.Atoi(t.sub[1]) // Make offset=0 if empty or non-numeric + } else if t.Match(`^#define __NR(\w*)_SYSCALL_BASE\s+([0-9]+)`) { + // arm: extract offset + offset, _ = strconv.Atoi(t.sub[1]) // Make offset=0 if empty or non-numeric + } else if t.Match(`^#define __NR_syscalls\s+`) { + // ignore redefinitions of __NR_syscalls + } else if t.Match(`^#define __NR_(\w*)Linux_syscalls\s+`) { + // mips/mips64: ignore definitions about the number of syscalls + } else if t.Match(`^#define __NR_(\w+)\s+([0-9]+)`) { + prev, err = strconv.Atoi(t.sub[2]) + checkErr(err) + text += format(t.sub[1], prev, offset) + } else if t.Match(`^#define __NR3264_(\w+)\s+([0-9]+)`) { + prev, err = strconv.Atoi(t.sub[2]) + checkErr(err) + text += format(t.sub[1], prev, offset) + } else if t.Match(`^#define __NR_(\w+)\s+\(\w+\+\s*([0-9]+)\)`) { + r2, err := strconv.Atoi(t.sub[2]) + checkErr(err) + text += format(t.sub[1], prev+r2, offset) + } else if t.Match(`^#define __NR_(\w+)\s+\(__NR_(?:SYSCALL_BASE|Linux) \+ ([0-9]+)`) { + r2, err := strconv.Atoi(t.sub[2]) + checkErr(err) + text += format(t.sub[1], r2, offset) + } + } + err = s.Err() + checkErr(err) + fmt.Printf(template, cmdLine(), buildTags(), text) +} + +const template = `// %s +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build %s + +package unix + +const( +%s)` diff --git a/vendor/golang.org/x/sys/unix/linux/mksysnum.pl b/vendor/golang.org/x/sys/unix/linux/mksysnum.pl deleted file mode 100755 index 63fd800bc..000000000 --- a/vendor/golang.org/x/sys/unix/linux/mksysnum.pl +++ /dev/null @@ -1,85 +0,0 @@ -#!/usr/bin/env perl -# Copyright 2009 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. - -use strict; - -if($ENV{'GOARCH'} eq "" || $ENV{'GOOS'} eq "") { - print STDERR "GOARCH or GOOS not defined in environment\n"; - exit 1; -} - -# Check that we are using the new build system if we should -if($ENV{'GOLANG_SYS_BUILD'} ne "docker") { - print STDERR "In the new build system, mksysnum should not be called directly.\n"; - print STDERR "See README.md\n"; - exit 1; -} - -my $command = "$0 ". join(' ', @ARGV); - -print < 999){ - # ignore deprecated syscalls that are no longer implemented - # https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/include/uapi/asm-generic/unistd.h?id=refs/heads/master#n716 - return; - } - $name =~ y/a-z/A-Z/; - $num = $num + $offset; - print " SYS_$name = $num;\n"; -} - -my $prev; -open(CC, "$ENV{'CC'} -E -dD @ARGV |") || die "can't run $ENV{'CC'}"; -while(){ - if(/^#define __NR_Linux\s+([0-9]+)/){ - # mips/mips64: extract offset - $offset = $1; - } - elsif(/^#define __NR(\w*)_SYSCALL_BASE\s+([0-9]+)/){ - # arm: extract offset - $offset = $1; - } - elsif(/^#define __NR_syscalls\s+/) { - # ignore redefinitions of __NR_syscalls - } - elsif(/^#define __NR_(\w*)Linux_syscalls\s+/) { - # mips/mips64: ignore definitions about the number of syscalls - } - elsif(/^#define __NR_(\w+)\s+([0-9]+)/){ - $prev = $2; - fmt($1, $2); - } - elsif(/^#define __NR3264_(\w+)\s+([0-9]+)/){ - $prev = $2; - fmt($1, $2); - } - elsif(/^#define __NR_(\w+)\s+\(\w+\+\s*([0-9]+)\)/){ - fmt($1, $prev+$2) - } - elsif(/^#define __NR_(\w+)\s+\(__NR_Linux \+ ([0-9]+)/){ - fmt($1, $2); - } - elsif(/^#define __NR_(\w+)\s+\(__NR_SYSCALL_BASE \+ ([0-9]+)/){ - fmt($1, $2); - } -} - -print < #include #include +#include #include #include #include @@ -57,7 +58,28 @@ package unix #include #include #include +#if defined(__sparc__) +// On sparc{,64}, the kernel defines struct termios2 itself which clashes with the +// definition in glibc. Duplicate the kernel version here. +#if defined(__arch64__) +typedef unsigned int tcflag_t; +#else +typedef unsigned long tcflag_t; +#endif + +struct termios2 { + tcflag_t c_iflag; + tcflag_t c_oflag; + tcflag_t c_cflag; + tcflag_t c_lflag; + unsigned char c_line; + unsigned char c_cc[19]; + unsigned int c_ispeed; + unsigned int c_ospeed; +}; +#else #include +#endif #include #include #include @@ -727,6 +749,8 @@ const ( type Sigset_t C.sigset_t +type SignalfdSiginfo C.struct_signalfd_siginfo + const RNDGETENTCNT = C.RNDGETENTCNT const PERF_IOC_FLAG_GROUP = C.PERF_IOC_FLAG_GROUP diff --git a/vendor/golang.org/x/sys/unix/mkall.sh b/vendor/golang.org/x/sys/unix/mkall.sh index 4f92537ca..76f9cdd70 100755 --- a/vendor/golang.org/x/sys/unix/mkall.sh +++ b/vendor/golang.org/x/sys/unix/mkall.sh @@ -17,6 +17,7 @@ mksysctl="" zsysctl="zsysctl_$GOOSARCH.go" mksysnum= mktypes= +mkasm= run="sh" cmd="" @@ -45,8 +46,8 @@ case "$#" in exit 2 esac -if [[ "$GOOS" = "linux" ]] && [[ "$GOARCH" != "sparc64" ]]; then - # Use then new build system +if [[ "$GOOS" = "linux" ]]; then + # Use the Docker-based build system # Files generated through docker (use $cmd so you can Ctl-C the build or run) $cmd docker build --tag generate:$GOOS $GOOS $cmd docker run --interactive --tty --volume $(dirname "$(readlink -f "$0")"):/build generate:$GOOS @@ -61,7 +62,7 @@ _* | *_ | _) ;; aix_ppc) mkerrors="$mkerrors -maix32" - mksyscall="./mksyscall_aix_ppc.pl -aix" + mksyscall="go run mksyscall_aix_ppc.go -aix" mktypes="GOARCH=$GOARCH go tool cgo -godefs" ;; aix_ppc64) @@ -72,72 +73,75 @@ aix_ppc64) darwin_386) mkerrors="$mkerrors -m32" mksyscall="go run mksyscall.go -l32" - mksysnum="./mksysnum_darwin.pl $(xcrun --show-sdk-path --sdk macosx)/usr/include/sys/syscall.h" + mksysnum="go run mksysnum.go $(xcrun --show-sdk-path --sdk macosx)/usr/include/sys/syscall.h" mktypes="GOARCH=$GOARCH go tool cgo -godefs" + mkasm="go run mkasm_darwin.go" ;; darwin_amd64) mkerrors="$mkerrors -m64" - mksysnum="./mksysnum_darwin.pl $(xcrun --show-sdk-path --sdk macosx)/usr/include/sys/syscall.h" + mksysnum="go run mksysnum.go $(xcrun --show-sdk-path --sdk macosx)/usr/include/sys/syscall.h" mktypes="GOARCH=$GOARCH go tool cgo -godefs" + mkasm="go run mkasm_darwin.go" ;; darwin_arm) mkerrors="$mkerrors" - mksysnum="./mksysnum_darwin.pl $(xcrun --show-sdk-path --sdk iphoneos)/usr/include/sys/syscall.h" + mksyscall="go run mksyscall.go -l32" + mksysnum="go run mksysnum.go $(xcrun --show-sdk-path --sdk iphoneos)/usr/include/sys/syscall.h" mktypes="GOARCH=$GOARCH go tool cgo -godefs" + mkasm="go run mkasm_darwin.go" ;; darwin_arm64) mkerrors="$mkerrors -m64" - mksysnum="./mksysnum_darwin.pl $(xcrun --show-sdk-path --sdk iphoneos)/usr/include/sys/syscall.h" + mksysnum="go run mksysnum.go $(xcrun --show-sdk-path --sdk iphoneos)/usr/include/sys/syscall.h" mktypes="GOARCH=$GOARCH go tool cgo -godefs" + mkasm="go run mkasm_darwin.go" ;; dragonfly_amd64) mkerrors="$mkerrors -m64" mksyscall="go run mksyscall.go -dragonfly" - mksysnum="curl -s 'http://gitweb.dragonflybsd.org/dragonfly.git/blob_plain/HEAD:/sys/kern/syscalls.master' | ./mksysnum_dragonfly.pl" + mksysnum="go run mksysnum.go 'https://gitweb.dragonflybsd.org/dragonfly.git/blob_plain/HEAD:/sys/kern/syscalls.master'" mktypes="GOARCH=$GOARCH go tool cgo -godefs" ;; freebsd_386) mkerrors="$mkerrors -m32" mksyscall="go run mksyscall.go -l32" - mksysnum="curl -s 'http://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master' | ./mksysnum_freebsd.pl" + mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master'" mktypes="GOARCH=$GOARCH go tool cgo -godefs" ;; freebsd_amd64) mkerrors="$mkerrors -m64" - mksysnum="curl -s 'http://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master' | ./mksysnum_freebsd.pl" + mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master'" mktypes="GOARCH=$GOARCH go tool cgo -godefs" ;; freebsd_arm) mkerrors="$mkerrors" mksyscall="go run mksyscall.go -l32 -arm" - mksysnum="curl -s 'http://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master' | ./mksysnum_freebsd.pl" + mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master'" # Let the type of C char be signed for making the bare syscall # API consistent across platforms. mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" ;; -linux_sparc64) - GOOSARCH_in=syscall_linux_sparc64.go - unistd_h=/usr/include/sparc64-linux-gnu/asm/unistd.h +freebsd_arm64) mkerrors="$mkerrors -m64" - mksysnum="./mksysnum_linux.pl $unistd_h" + mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master'" mktypes="GOARCH=$GOARCH go tool cgo -godefs" ;; netbsd_386) mkerrors="$mkerrors -m32" mksyscall="go run mksyscall.go -l32 -netbsd" - mksysnum="curl -s 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master' | ./mksysnum_netbsd.pl" + mksysnum="go run mksysnum.go 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master'" mktypes="GOARCH=$GOARCH go tool cgo -godefs" ;; netbsd_amd64) mkerrors="$mkerrors -m64" mksyscall="go run mksyscall.go -netbsd" - mksysnum="curl -s 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master' | ./mksysnum_netbsd.pl" + mksysnum="go run mksysnum.go 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master'" mktypes="GOARCH=$GOARCH go tool cgo -godefs" ;; netbsd_arm) mkerrors="$mkerrors" mksyscall="go run mksyscall.go -l32 -netbsd -arm" - mksysnum="curl -s 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master' | ./mksysnum_netbsd.pl" + mksysnum="go run mksysnum.go 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master'" # Let the type of C char be signed for making the bare syscall # API consistent across platforms. mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" @@ -146,21 +150,21 @@ openbsd_386) mkerrors="$mkerrors -m32" mksyscall="go run mksyscall.go -l32 -openbsd" mksysctl="./mksysctl_openbsd.pl" - mksysnum="curl -s 'http://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master' | ./mksysnum_openbsd.pl" + mksysnum="go run mksysnum.go 'https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master'" mktypes="GOARCH=$GOARCH go tool cgo -godefs" ;; openbsd_amd64) mkerrors="$mkerrors -m64" mksyscall="go run mksyscall.go -openbsd" mksysctl="./mksysctl_openbsd.pl" - mksysnum="curl -s 'http://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master' | ./mksysnum_openbsd.pl" + mksysnum="go run mksysnum.go 'https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master'" mktypes="GOARCH=$GOARCH go tool cgo -godefs" ;; openbsd_arm) mkerrors="$mkerrors" mksyscall="go run mksyscall.go -l32 -openbsd -arm" mksysctl="./mksysctl_openbsd.pl" - mksysnum="curl -s 'http://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master' | ./mksysnum_openbsd.pl" + mksysnum="go run mksysnum.go 'https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master'" # Let the type of C char be signed for making the bare syscall # API consistent across platforms. mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" @@ -191,6 +195,11 @@ esac if [ "$GOOSARCH" == "aix_ppc64" ]; then # aix/ppc64 script generates files instead of writing to stdin. echo "$mksyscall -tags $GOOS,$GOARCH $syscall_goos $GOOSARCH_in && gofmt -w zsyscall_$GOOSARCH.go && gofmt -w zsyscall_"$GOOSARCH"_gccgo.go && gofmt -w zsyscall_"$GOOSARCH"_gc.go " ; + elif [ "$GOOS" == "darwin" ]; then + # pre-1.12, direct syscalls + echo "$mksyscall -tags $GOOS,$GOARCH,!go1.12 $syscall_goos $GOOSARCH_in |gofmt >zsyscall_$GOOSARCH.1_11.go"; + # 1.12 and later, syscalls via libSystem + echo "$mksyscall -tags $GOOS,$GOARCH,go1.12 $syscall_goos $GOOSARCH_in |gofmt >zsyscall_$GOOSARCH.go"; else echo "$mksyscall -tags $GOOS,$GOARCH $syscall_goos $GOOSARCH_in |gofmt >zsyscall_$GOOSARCH.go"; fi @@ -200,5 +209,6 @@ esac if [ -n "$mksysnum" ]; then echo "$mksysnum |gofmt >zsysnum_$GOOSARCH.go"; fi if [ -n "$mktypes" ]; then echo "$mktypes types_$GOOS.go | go run mkpost.go > ztypes_$GOOSARCH.go"; + if [ -n "$mkasm" ]; then echo "$mkasm $GOARCH"; fi fi ) | $run diff --git a/vendor/golang.org/x/sys/unix/mkasm_darwin.go b/vendor/golang.org/x/sys/unix/mkasm_darwin.go new file mode 100644 index 000000000..4548b993d --- /dev/null +++ b/vendor/golang.org/x/sys/unix/mkasm_darwin.go @@ -0,0 +1,61 @@ +// Copyright 2018 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. + +// +build ignore + +// mkasm_darwin.go generates assembly trampolines to call libSystem routines from Go. +//This program must be run after mksyscall.go. +package main + +import ( + "bytes" + "fmt" + "io/ioutil" + "log" + "os" + "strings" +) + +func main() { + in1, err := ioutil.ReadFile("syscall_darwin.go") + if err != nil { + log.Fatalf("can't open syscall_darwin.go: %s", err) + } + arch := os.Args[1] + in2, err := ioutil.ReadFile(fmt.Sprintf("syscall_darwin_%s.go", arch)) + if err != nil { + log.Fatalf("can't open syscall_darwin_%s.go: %s", arch, err) + } + in3, err := ioutil.ReadFile(fmt.Sprintf("zsyscall_darwin_%s.go", arch)) + if err != nil { + log.Fatalf("can't open zsyscall_darwin_%s.go: %s", arch, err) + } + in := string(in1) + string(in2) + string(in3) + + trampolines := map[string]bool{} + + var out bytes.Buffer + + fmt.Fprintf(&out, "// go run mkasm_darwin.go %s\n", strings.Join(os.Args[1:], " ")) + fmt.Fprintf(&out, "// Code generated by the command above; DO NOT EDIT.\n") + fmt.Fprintf(&out, "\n") + fmt.Fprintf(&out, "// +build go1.12\n") + fmt.Fprintf(&out, "\n") + fmt.Fprintf(&out, "#include \"textflag.h\"\n") + for _, line := range strings.Split(in, "\n") { + if !strings.HasPrefix(line, "func ") || !strings.HasSuffix(line, "_trampoline()") { + continue + } + fn := line[5 : len(line)-13] + if !trampolines[fn] { + trampolines[fn] = true + fmt.Fprintf(&out, "TEXT ·%s_trampoline(SB),NOSPLIT,$0-0\n", fn) + fmt.Fprintf(&out, "\tJMP\t%s(SB)\n", fn) + } + } + err = ioutil.WriteFile(fmt.Sprintf("zsyscall_darwin_%s.s", arch), out.Bytes(), 0644) + if err != nil { + log.Fatalf("can't write zsyscall_darwin_%s.s: %s", arch, err) + } +} diff --git a/vendor/golang.org/x/sys/unix/mkerrors.sh b/vendor/golang.org/x/sys/unix/mkerrors.sh index 955dd50f9..c652b1c84 100755 --- a/vendor/golang.org/x/sys/unix/mkerrors.sh +++ b/vendor/golang.org/x/sys/unix/mkerrors.sh @@ -17,12 +17,10 @@ if test -z "$GOARCH" -o -z "$GOOS"; then fi # Check that we are using the new build system if we should -if [[ "$GOOS" = "linux" ]] && [[ "$GOARCH" != "sparc64" ]]; then - if [[ "$GOLANG_SYS_BUILD" != "docker" ]]; then - echo 1>&2 "In the new build system, mkerrors should not be called directly." - echo 1>&2 "See README.md" - exit 1 - fi +if [[ "$GOOS" = "linux" ]] && [[ "$GOLANG_SYS_BUILD" != "docker" ]]; then + echo 1>&2 "In the Docker based build system, mkerrors should not be called directly." + echo 1>&2 "See README.md" + exit 1 fi if [[ "$GOOS" = "aix" ]]; then @@ -181,6 +179,7 @@ struct ltchars { #include #include #include +#include #include #include #include @@ -223,7 +222,15 @@ struct ltchars { #include #include #include + +#if defined(__sparc__) +// On sparc{,64}, the kernel defines struct termios2 itself which clashes with the +// definition in glibc. As only the error constants are needed here, include the +// generic termibits.h (which is included by termbits.h on sparc). +#include +#else #include +#endif #ifndef MSG_FASTOPEN #define MSG_FASTOPEN 0x20000000 @@ -447,7 +454,7 @@ ccflags="$@" $2 !~ "MNT_BITS" && $2 ~ /^(MS|MNT|UMOUNT)_/ || $2 ~ /^TUN(SET|GET|ATTACH|DETACH)/ || - $2 ~ /^(O|F|E?FD|NAME|S|PTRACE|PT)_/ || + $2 ~ /^(O|F|[ES]?FD|NAME|S|PTRACE|PT)_/ || $2 ~ /^KEXEC_/ || $2 ~ /^LINUX_REBOOT_CMD_/ || $2 ~ /^LINUX_REBOOT_MAGIC[12]$/ || @@ -468,7 +475,7 @@ ccflags="$@" $2 ~ /^CLONE_[A-Z_]+/ || $2 !~ /^(BPF_TIMEVAL)$/ && $2 ~ /^(BPF|DLT)_/ || - $2 ~ /^CLOCK_/ || + $2 ~ /^(CLOCK|TIMER)_/ || $2 ~ /^CAN_/ || $2 ~ /^CAP_/ || $2 ~ /^ALG_/ || diff --git a/vendor/golang.org/x/sys/unix/mkpost.go b/vendor/golang.org/x/sys/unix/mkpost.go index 6d263cf15..9feddd00c 100644 --- a/vendor/golang.org/x/sys/unix/mkpost.go +++ b/vendor/golang.org/x/sys/unix/mkpost.go @@ -28,10 +28,10 @@ func main() { if goarch == "" { goarch = os.Getenv("GOARCH") } - // Check that we are using the new build system if we should be. - if goos == "linux" && goarch != "sparc64" { + // Check that we are using the Docker-based build system if we should be. + if goos == "linux" { if os.Getenv("GOLANG_SYS_BUILD") != "docker" { - os.Stderr.WriteString("In the new build system, mkpost should not be called directly.\n") + os.Stderr.WriteString("In the Docker-based build system, mkpost should not be called directly.\n") os.Stderr.WriteString("See README.md\n") os.Exit(1) } diff --git a/vendor/golang.org/x/sys/unix/mksyscall.go b/vendor/golang.org/x/sys/unix/mksyscall.go index 36c0b5ac4..890652ca8 100644 --- a/vendor/golang.org/x/sys/unix/mksyscall.go +++ b/vendor/golang.org/x/sys/unix/mksyscall.go @@ -93,10 +93,10 @@ func main() { goarch = os.Getenv("GOARCH") } - // Check that we are using the new build system if we should - if goos == "linux" && goarch != "sparc64" { + // Check that we are using the Docker-based build system if we should + if goos == "linux" { if os.Getenv("GOLANG_SYS_BUILD") != "docker" { - fmt.Fprintf(os.Stderr, "In the new build system, mksyscall should not be called directly.\n") + fmt.Fprintf(os.Stderr, "In the Docker-based build system, mksyscall should not be called directly.\n") fmt.Fprintf(os.Stderr, "See README.md\n") os.Exit(1) } @@ -116,6 +116,12 @@ func main() { endianness = "little-endian" } + libc := false + if goos == "darwin" && strings.Contains(buildTags(), ",go1.12") { + libc = true + } + trampolines := map[string]bool{} + text := "" for _, path := range flag.Args() { file, err := os.Open(path) @@ -272,6 +278,20 @@ func main() { sysname = strings.ToUpper(sysname) } + var libcFn string + if libc { + asm = "syscall_" + strings.ToLower(asm[:1]) + asm[1:] // internal syscall call + sysname = strings.TrimPrefix(sysname, "SYS_") // remove SYS_ + sysname = strings.ToLower(sysname) // lowercase + if sysname == "getdirentries64" { + // Special case - libSystem name and + // raw syscall name don't match. + sysname = "__getdirentries64" + } + libcFn = sysname + sysname = "funcPC(libc_" + sysname + "_trampoline)" + } + // Actual call. arglist := strings.Join(args, ", ") call := fmt.Sprintf("%s(%s, %s)", asm, sysname, arglist) @@ -339,6 +359,17 @@ func main() { text += "\treturn\n" text += "}\n\n" + if libc && !trampolines[libcFn] { + // some system calls share a trampoline, like read and readlen. + trampolines[libcFn] = true + // Declare assembly trampoline. + text += fmt.Sprintf("func libc_%s_trampoline()\n", libcFn) + // Assembly trampoline calls the libc_* function, which this magic + // redirects to use the function from libSystem. + text += fmt.Sprintf("//go:linkname libc_%s libc_%s\n", libcFn, libcFn) + text += fmt.Sprintf("//go:cgo_import_dynamic libc_%s %s \"/usr/lib/libSystem.B.dylib\"\n", libcFn, libcFn) + text += "\n" + } } if err := s.Err(); err != nil { fmt.Fprintf(os.Stderr, err.Error()) diff --git a/vendor/golang.org/x/sys/unix/mksyscall_aix_ppc.go b/vendor/golang.org/x/sys/unix/mksyscall_aix_ppc.go new file mode 100644 index 000000000..f2c58fb7c --- /dev/null +++ b/vendor/golang.org/x/sys/unix/mksyscall_aix_ppc.go @@ -0,0 +1,404 @@ +// Copyright 2019 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. + +// +build ignore + +/* +This program reads a file containing function prototypes +(like syscall_aix.go) and generates system call bodies. +The prototypes are marked by lines beginning with "//sys" +and read like func declarations if //sys is replaced by func, but: + * The parameter lists must give a name for each argument. + This includes return parameters. + * The parameter lists must give a type for each argument: + the (x, y, z int) shorthand is not allowed. + * If the return parameter is an error number, it must be named err. + * If go func name needs to be different than its libc name, + * or the function is not in libc, name could be specified + * at the end, after "=" sign, like + //sys getsockopt(s int, level int, name int, val uintptr, vallen *_Socklen) (err error) = libsocket.getsockopt +*/ +package main + +import ( + "bufio" + "flag" + "fmt" + "os" + "regexp" + "strings" +) + +var ( + b32 = flag.Bool("b32", false, "32bit big-endian") + l32 = flag.Bool("l32", false, "32bit little-endian") + aix = flag.Bool("aix", false, "aix") + tags = flag.String("tags", "", "build tags") +) + +// cmdLine returns this programs's commandline arguments +func cmdLine() string { + return "go run mksyscall_aix_ppc.go " + strings.Join(os.Args[1:], " ") +} + +// buildTags returns build tags +func buildTags() string { + return *tags +} + +// Param is function parameter +type Param struct { + Name string + Type string +} + +// usage prints the program usage +func usage() { + fmt.Fprintf(os.Stderr, "usage: go run mksyscall_aix_ppc.go [-b32 | -l32] [-tags x,y] [file ...]\n") + os.Exit(1) +} + +// parseParamList parses parameter list and returns a slice of parameters +func parseParamList(list string) []string { + list = strings.TrimSpace(list) + if list == "" { + return []string{} + } + return regexp.MustCompile(`\s*,\s*`).Split(list, -1) +} + +// parseParam splits a parameter into name and type +func parseParam(p string) Param { + ps := regexp.MustCompile(`^(\S*) (\S*)$`).FindStringSubmatch(p) + if ps == nil { + fmt.Fprintf(os.Stderr, "malformed parameter: %s\n", p) + os.Exit(1) + } + return Param{ps[1], ps[2]} +} + +func main() { + flag.Usage = usage + flag.Parse() + if len(flag.Args()) <= 0 { + fmt.Fprintf(os.Stderr, "no files to parse provided\n") + usage() + } + + endianness := "" + if *b32 { + endianness = "big-endian" + } else if *l32 { + endianness = "little-endian" + } + + pack := "" + text := "" + cExtern := "/*\n#include \n#include \n" + for _, path := range flag.Args() { + file, err := os.Open(path) + if err != nil { + fmt.Fprintf(os.Stderr, err.Error()) + os.Exit(1) + } + s := bufio.NewScanner(file) + for s.Scan() { + t := s.Text() + t = strings.TrimSpace(t) + t = regexp.MustCompile(`\s+`).ReplaceAllString(t, ` `) + if p := regexp.MustCompile(`^package (\S+)$`).FindStringSubmatch(t); p != nil && pack == "" { + pack = p[1] + } + nonblock := regexp.MustCompile(`^\/\/sysnb `).FindStringSubmatch(t) + if regexp.MustCompile(`^\/\/sys `).FindStringSubmatch(t) == nil && nonblock == nil { + continue + } + + // Line must be of the form + // func Open(path string, mode int, perm int) (fd int, err error) + // Split into name, in params, out params. + f := regexp.MustCompile(`^\/\/sys(nb)? (\w+)\(([^()]*)\)\s*(?:\(([^()]+)\))?\s*(?:=\s*(?:(\w*)\.)?(\w*))?$`).FindStringSubmatch(t) + if f == nil { + fmt.Fprintf(os.Stderr, "%s:%s\nmalformed //sys declaration\n", path, t) + os.Exit(1) + } + funct, inps, outps, modname, sysname := f[2], f[3], f[4], f[5], f[6] + + // Split argument lists on comma. + in := parseParamList(inps) + out := parseParamList(outps) + + inps = strings.Join(in, ", ") + outps = strings.Join(out, ", ") + + // Try in vain to keep people from editing this file. + // The theory is that they jump into the middle of the file + // without reading the header. + text += "// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\n" + + // Check if value return, err return available + errvar := "" + retvar := "" + rettype := "" + for _, param := range out { + p := parseParam(param) + if p.Type == "error" { + errvar = p.Name + } else { + retvar = p.Name + rettype = p.Type + } + } + + // System call name. + if sysname == "" { + sysname = funct + } + sysname = regexp.MustCompile(`([a-z])([A-Z])`).ReplaceAllString(sysname, `${1}_$2`) + sysname = strings.ToLower(sysname) // All libc functions are lowercase. + + cRettype := "" + if rettype == "unsafe.Pointer" { + cRettype = "uintptr_t" + } else if rettype == "uintptr" { + cRettype = "uintptr_t" + } else if regexp.MustCompile(`^_`).FindStringSubmatch(rettype) != nil { + cRettype = "uintptr_t" + } else if rettype == "int" { + cRettype = "int" + } else if rettype == "int32" { + cRettype = "int" + } else if rettype == "int64" { + cRettype = "long long" + } else if rettype == "uint32" { + cRettype = "unsigned int" + } else if rettype == "uint64" { + cRettype = "unsigned long long" + } else { + cRettype = "int" + } + if sysname == "exit" { + cRettype = "void" + } + + // Change p.Types to c + var cIn []string + for _, param := range in { + p := parseParam(param) + if regexp.MustCompile(`^\*`).FindStringSubmatch(p.Type) != nil { + cIn = append(cIn, "uintptr_t") + } else if p.Type == "string" { + cIn = append(cIn, "uintptr_t") + } else if regexp.MustCompile(`^\[\](.*)`).FindStringSubmatch(p.Type) != nil { + cIn = append(cIn, "uintptr_t", "size_t") + } else if p.Type == "unsafe.Pointer" { + cIn = append(cIn, "uintptr_t") + } else if p.Type == "uintptr" { + cIn = append(cIn, "uintptr_t") + } else if regexp.MustCompile(`^_`).FindStringSubmatch(p.Type) != nil { + cIn = append(cIn, "uintptr_t") + } else if p.Type == "int" { + cIn = append(cIn, "int") + } else if p.Type == "int32" { + cIn = append(cIn, "int") + } else if p.Type == "int64" { + cIn = append(cIn, "long long") + } else if p.Type == "uint32" { + cIn = append(cIn, "unsigned int") + } else if p.Type == "uint64" { + cIn = append(cIn, "unsigned long long") + } else { + cIn = append(cIn, "int") + } + } + + if funct != "fcntl" && funct != "FcntlInt" && funct != "readlen" && funct != "writelen" { + // Imports of system calls from libc + cExtern += fmt.Sprintf("%s %s", cRettype, sysname) + cIn := strings.Join(cIn, ", ") + cExtern += fmt.Sprintf("(%s);\n", cIn) + } + + // So file name. + if *aix { + if modname == "" { + modname = "libc.a/shr_64.o" + } else { + fmt.Fprintf(os.Stderr, "%s: only syscall using libc are available\n", funct) + os.Exit(1) + } + } + + strconvfunc := "C.CString" + + // Go function header. + if outps != "" { + outps = fmt.Sprintf(" (%s)", outps) + } + if text != "" { + text += "\n" + } + + text += fmt.Sprintf("func %s(%s)%s {\n", funct, strings.Join(in, ", "), outps) + + // Prepare arguments to Syscall. + var args []string + n := 0 + argN := 0 + for _, param := range in { + p := parseParam(param) + if regexp.MustCompile(`^\*`).FindStringSubmatch(p.Type) != nil { + args = append(args, "C.uintptr_t(uintptr(unsafe.Pointer("+p.Name+")))") + } else if p.Type == "string" && errvar != "" { + text += fmt.Sprintf("\t_p%d := uintptr(unsafe.Pointer(%s(%s)))\n", n, strconvfunc, p.Name) + args = append(args, fmt.Sprintf("C.uintptr_t(_p%d)", n)) + n++ + } else if p.Type == "string" { + fmt.Fprintf(os.Stderr, path+":"+funct+" uses string arguments, but has no error return\n") + text += fmt.Sprintf("\t_p%d := uintptr(unsafe.Pointer(%s(%s)))\n", n, strconvfunc, p.Name) + args = append(args, fmt.Sprintf("C.uintptr_t(_p%d)", n)) + n++ + } else if m := regexp.MustCompile(`^\[\](.*)`).FindStringSubmatch(p.Type); m != nil { + // Convert slice into pointer, length. + // Have to be careful not to take address of &a[0] if len == 0: + // pass nil in that case. + text += fmt.Sprintf("\tvar _p%d *%s\n", n, m[1]) + text += fmt.Sprintf("\tif len(%s) > 0 {\n\t\t_p%d = &%s[0]\n\t}\n", p.Name, n, p.Name) + args = append(args, fmt.Sprintf("C.uintptr_t(uintptr(unsafe.Pointer(_p%d)))", n)) + n++ + text += fmt.Sprintf("\tvar _p%d int\n", n) + text += fmt.Sprintf("\t_p%d = len(%s)\n", n, p.Name) + args = append(args, fmt.Sprintf("C.size_t(_p%d)", n)) + n++ + } else if p.Type == "int64" && endianness != "" { + if endianness == "big-endian" { + args = append(args, fmt.Sprintf("uintptr(%s>>32)", p.Name), fmt.Sprintf("uintptr(%s)", p.Name)) + } else { + args = append(args, fmt.Sprintf("uintptr(%s)", p.Name), fmt.Sprintf("uintptr(%s>>32)", p.Name)) + } + n++ + } else if p.Type == "bool" { + text += fmt.Sprintf("\tvar _p%d uint32\n", n) + text += fmt.Sprintf("\tif %s {\n\t\t_p%d = 1\n\t} else {\n\t\t_p%d = 0\n\t}\n", p.Name, n, n) + args = append(args, fmt.Sprintf("_p%d", n)) + } else if regexp.MustCompile(`^_`).FindStringSubmatch(p.Type) != nil { + args = append(args, fmt.Sprintf("C.uintptr_t(uintptr(%s))", p.Name)) + } else if p.Type == "unsafe.Pointer" { + args = append(args, fmt.Sprintf("C.uintptr_t(uintptr(%s))", p.Name)) + } else if p.Type == "int" { + if (argN == 2) && ((funct == "readlen") || (funct == "writelen")) { + args = append(args, fmt.Sprintf("C.size_t(%s)", p.Name)) + } else if argN == 0 && funct == "fcntl" { + args = append(args, fmt.Sprintf("C.uintptr_t(%s)", p.Name)) + } else if (argN == 2) && ((funct == "fcntl") || (funct == "FcntlInt")) { + args = append(args, fmt.Sprintf("C.uintptr_t(%s)", p.Name)) + } else { + args = append(args, fmt.Sprintf("C.int(%s)", p.Name)) + } + } else if p.Type == "int32" { + args = append(args, fmt.Sprintf("C.int(%s)", p.Name)) + } else if p.Type == "int64" { + args = append(args, fmt.Sprintf("C.longlong(%s)", p.Name)) + } else if p.Type == "uint32" { + args = append(args, fmt.Sprintf("C.uint(%s)", p.Name)) + } else if p.Type == "uint64" { + args = append(args, fmt.Sprintf("C.ulonglong(%s)", p.Name)) + } else if p.Type == "uintptr" { + args = append(args, fmt.Sprintf("C.uintptr_t(%s)", p.Name)) + } else { + args = append(args, fmt.Sprintf("C.int(%s)", p.Name)) + } + argN++ + } + + // Actual call. + arglist := strings.Join(args, ", ") + call := "" + if sysname == "exit" { + if errvar != "" { + call += "er :=" + } else { + call += "" + } + } else if errvar != "" { + call += "r0,er :=" + } else if retvar != "" { + call += "r0,_ :=" + } else { + call += "" + } + call += fmt.Sprintf("C.%s(%s)", sysname, arglist) + + // Assign return values. + body := "" + for i := 0; i < len(out); i++ { + p := parseParam(out[i]) + reg := "" + if p.Name == "err" { + reg = "e1" + } else { + reg = "r0" + } + if reg != "e1" { + body += fmt.Sprintf("\t%s = %s(%s)\n", p.Name, p.Type, reg) + } + } + + // verify return + if sysname != "exit" && errvar != "" { + if regexp.MustCompile(`^uintptr`).FindStringSubmatch(cRettype) != nil { + body += "\tif (uintptr(r0) ==^uintptr(0) && er != nil) {\n" + body += fmt.Sprintf("\t\t%s = er\n", errvar) + body += "\t}\n" + } else { + body += "\tif (r0 ==-1 && er != nil) {\n" + body += fmt.Sprintf("\t\t%s = er\n", errvar) + body += "\t}\n" + } + } else if errvar != "" { + body += "\tif (er != nil) {\n" + body += fmt.Sprintf("\t\t%s = er\n", errvar) + body += "\t}\n" + } + + text += fmt.Sprintf("\t%s\n", call) + text += body + + text += "\treturn\n" + text += "}\n" + } + if err := s.Err(); err != nil { + fmt.Fprintf(os.Stderr, err.Error()) + os.Exit(1) + } + file.Close() + } + imp := "" + if pack != "unix" { + imp = "import \"golang.org/x/sys/unix\"\n" + + } + fmt.Printf(srcTemplate, cmdLine(), buildTags(), pack, cExtern, imp, text) +} + +const srcTemplate = `// %s +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build %s + +package %s + + +%s +*/ +import "C" +import ( + "unsafe" +) + + +%s + +%s +` diff --git a/vendor/golang.org/x/sys/unix/mksyscall_aix_ppc.pl b/vendor/golang.org/x/sys/unix/mksyscall_aix_ppc.pl deleted file mode 100755 index c44de8d31..000000000 --- a/vendor/golang.org/x/sys/unix/mksyscall_aix_ppc.pl +++ /dev/null @@ -1,384 +0,0 @@ -#!/usr/bin/env perl -# Copyright 2018 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. - -# This program reads a file containing function prototypes -# (like syscall_aix.go) and generates system call bodies. -# The prototypes are marked by lines beginning with "//sys" -# and read like func declarations if //sys is replaced by func, but: -# * The parameter lists must give a name for each argument. -# This includes return parameters. -# * The parameter lists must give a type for each argument: -# the (x, y, z int) shorthand is not allowed. -# * If the return parameter is an error number, it must be named err. -# * If go func name needs to be different than its libc name, -# * or the function is not in libc, name could be specified -# * at the end, after "=" sign, like -# //sys getsockopt(s int, level int, name int, val uintptr, vallen *_Socklen) (err error) = libsocket.getsockopt - -use strict; - -my $cmdline = "mksyscall_aix_ppc.pl " . join(' ', @ARGV); -my $errors = 0; -my $_32bit = ""; -my $tags = ""; # build tags -my $aix = 0; -my $solaris = 0; - -binmode STDOUT; - -if($ARGV[0] eq "-b32") { - $_32bit = "big-endian"; - shift; -} elsif($ARGV[0] eq "-l32") { - $_32bit = "little-endian"; - shift; -} -if($ARGV[0] eq "-aix") { - $aix = 1; - shift; -} -if($ARGV[0] eq "-tags") { - shift; - $tags = $ARGV[0]; - shift; -} - -if($ARGV[0] =~ /^-/) { - print STDERR "usage: mksyscall_aix.pl [-b32 | -l32] [-tags x,y] [file ...]\n"; - exit 1; -} - -sub parseparamlist($) { - my ($list) = @_; - $list =~ s/^\s*//; - $list =~ s/\s*$//; - if($list eq "") { - return (); - } - return split(/\s*,\s*/, $list); -} - -sub parseparam($) { - my ($p) = @_; - if($p !~ /^(\S*) (\S*)$/) { - print STDERR "$ARGV:$.: malformed parameter: $p\n"; - $errors = 1; - return ("xx", "int"); - } - return ($1, $2); -} - -my $package = ""; -my $text = ""; -my $c_extern = "/*\n#include \n#include \n"; -my @vars = (); -while(<>) { - chomp; - s/\s+/ /g; - s/^\s+//; - s/\s+$//; - $package = $1 if !$package && /^package (\S+)$/; - my $nonblock = /^\/\/sysnb /; - next if !/^\/\/sys / && !$nonblock; - - # Line must be of the form - # func Open(path string, mode int, perm int) (fd int, err error) - # Split into name, in params, out params. - if(!/^\/\/sys(nb)? (\w+)\(([^()]*)\)\s*(?:\(([^()]+)\))?\s*(?:=\s*(?:(\w*)\.)?(\w*))?$/) { - print STDERR "$ARGV:$.: malformed //sys declaration\n"; - $errors = 1; - next; - } - my ($nb, $func, $in, $out, $modname, $sysname) = ($1, $2, $3, $4, $5, $6); - - # Split argument lists on comma. - my @in = parseparamlist($in); - my @out = parseparamlist($out); - - $in = join(', ', @in); - $out = join(', ', @out); - - # Try in vain to keep people from editing this file. - # The theory is that they jump into the middle of the file - # without reading the header. - $text .= "// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\n"; - - # Check if value return, err return available - my $errvar = ""; - my $retvar = ""; - my $rettype = ""; - foreach my $p (@out) { - my ($name, $type) = parseparam($p); - if($type eq "error") { - $errvar = $name; - } else { - $retvar = $name; - $rettype = $type; - } - } - - # System call name. - #if($func ne "fcntl") { - - if($sysname eq "") { - $sysname = "$func"; - } - - $sysname =~ s/([a-z])([A-Z])/${1}_$2/g; - $sysname =~ y/A-Z/a-z/; # All libc functions are lowercase. - - my $C_rettype = ""; - if($rettype eq "unsafe.Pointer") { - $C_rettype = "uintptr_t"; - } elsif($rettype eq "uintptr") { - $C_rettype = "uintptr_t"; - } elsif($rettype =~ /^_/) { - $C_rettype = "uintptr_t"; - } elsif($rettype eq "int") { - $C_rettype = "int"; - } elsif($rettype eq "int32") { - $C_rettype = "int"; - } elsif($rettype eq "int64") { - $C_rettype = "long long"; - } elsif($rettype eq "uint32") { - $C_rettype = "unsigned int"; - } elsif($rettype eq "uint64") { - $C_rettype = "unsigned long long"; - } else { - $C_rettype = "int"; - } - if($sysname eq "exit") { - $C_rettype = "void"; - } - - # Change types to c - my @c_in = (); - foreach my $p (@in) { - my ($name, $type) = parseparam($p); - if($type =~ /^\*/) { - push @c_in, "uintptr_t"; - } elsif($type eq "string") { - push @c_in, "uintptr_t"; - } elsif($type =~ /^\[\](.*)/) { - push @c_in, "uintptr_t", "size_t"; - } elsif($type eq "unsafe.Pointer") { - push @c_in, "uintptr_t"; - } elsif($type eq "uintptr") { - push @c_in, "uintptr_t"; - } elsif($type =~ /^_/) { - push @c_in, "uintptr_t"; - } elsif($type eq "int") { - push @c_in, "int"; - } elsif($type eq "int32") { - push @c_in, "int"; - } elsif($type eq "int64") { - push @c_in, "long long"; - } elsif($type eq "uint32") { - push @c_in, "unsigned int"; - } elsif($type eq "uint64") { - push @c_in, "unsigned long long"; - } else { - push @c_in, "int"; - } - } - - if ($func ne "fcntl" && $func ne "FcntlInt" && $func ne "readlen" && $func ne "writelen") { - # Imports of system calls from libc - $c_extern .= "$C_rettype $sysname"; - my $c_in = join(', ', @c_in); - $c_extern .= "($c_in);\n"; - } - - # So file name. - if($aix) { - if($modname eq "") { - $modname = "libc.a/shr_64.o"; - } else { - print STDERR "$func: only syscall using libc are available\n"; - $errors = 1; - next; - } - } - - my $strconvfunc = "C.CString"; - my $strconvtype = "*byte"; - - # Go function header. - if($out ne "") { - $out = " ($out)"; - } - if($text ne "") { - $text .= "\n" - } - - $text .= sprintf "func %s(%s)%s {\n", $func, join(', ', @in), $out ; - - # Prepare arguments to call. - my @args = (); - my $n = 0; - my $arg_n = 0; - foreach my $p (@in) { - my ($name, $type) = parseparam($p); - if($type =~ /^\*/) { - push @args, "C.uintptr_t(uintptr(unsafe.Pointer($name)))"; - } elsif($type eq "string" && $errvar ne "") { - $text .= "\t_p$n := uintptr(unsafe.Pointer($strconvfunc($name)))\n"; - push @args, "C.uintptr_t(_p$n)"; - $n++; - } elsif($type eq "string") { - print STDERR "$ARGV:$.: $func uses string arguments, but has no error return\n"; - $text .= "\t_p$n := uintptr(unsafe.Pointer($strconvfunc($name)))\n"; - push @args, "C.uintptr_t(_p$n)"; - $n++; - } elsif($type =~ /^\[\](.*)/) { - # Convert slice into pointer, length. - # Have to be careful not to take address of &a[0] if len == 0: - # pass nil in that case. - $text .= "\tvar _p$n *$1\n"; - $text .= "\tif len($name) > 0 {\n\t\t_p$n = \&$name\[0]\n\t}\n"; - push @args, "C.uintptr_t(uintptr(unsafe.Pointer(_p$n)))"; - $n++; - $text .= "\tvar _p$n int\n"; - $text .= "\t_p$n = len($name)\n"; - push @args, "C.size_t(_p$n)"; - $n++; - } elsif($type eq "int64" && $_32bit ne "") { - if($_32bit eq "big-endian") { - push @args, "uintptr($name >> 32)", "uintptr($name)"; - } else { - push @args, "uintptr($name)", "uintptr($name >> 32)"; - } - $n++; - } elsif($type eq "bool") { - $text .= "\tvar _p$n uint32\n"; - $text .= "\tif $name {\n\t\t_p$n = 1\n\t} else {\n\t\t_p$n = 0\n\t}\n"; - push @args, "_p$n"; - $n++; - } elsif($type =~ /^_/) { - push @args, "C.uintptr_t(uintptr($name))"; - } elsif($type eq "unsafe.Pointer") { - push @args, "C.uintptr_t(uintptr($name))"; - } elsif($type eq "int") { - if (($arg_n == 2) && (($func eq "readlen") || ($func eq "writelen"))) { - push @args, "C.size_t($name)"; - } elsif ($arg_n == 0 && $func eq "fcntl") { - push @args, "C.uintptr_t($name)"; - } elsif (($arg_n == 2) && (($func eq "fcntl") || ($func eq "FcntlInt"))) { - push @args, "C.uintptr_t($name)"; - } else { - push @args, "C.int($name)"; - } - } elsif($type eq "int32") { - push @args, "C.int($name)"; - } elsif($type eq "int64") { - push @args, "C.longlong($name)"; - } elsif($type eq "uint32") { - push @args, "C.uint($name)"; - } elsif($type eq "uint64") { - push @args, "C.ulonglong($name)"; - } elsif($type eq "uintptr") { - push @args, "C.uintptr_t($name)"; - } else { - push @args, "C.int($name)"; - } - $arg_n++; - } - my $nargs = @args; - - - # Determine which form to use; pad args with zeros. - if ($nonblock) { - } - - my $args = join(', ', @args); - my $call = ""; - if ($sysname eq "exit") { - if ($errvar ne "") { - $call .= "er :="; - } else { - $call .= ""; - } - } elsif ($errvar ne "") { - $call .= "r0,er :="; - } elsif ($retvar ne "") { - $call .= "r0,_ :="; - } else { - $call .= "" - } - $call .= "C.$sysname($args)"; - - # Assign return values. - my $body = ""; - my $failexpr = ""; - - for(my $i=0; $i<@out; $i++) { - my $p = $out[$i]; - my ($name, $type) = parseparam($p); - my $reg = ""; - if($name eq "err") { - $reg = "e1"; - } else { - $reg = "r0"; - } - if($reg ne "e1" ) { - $body .= "\t$name = $type($reg)\n"; - } - } - - # verify return - if ($sysname ne "exit" && $errvar ne "") { - if ($C_rettype =~ /^uintptr/) { - $body .= "\tif \(uintptr\(r0\) ==\^uintptr\(0\) && er != nil\) {\n"; - $body .= "\t\t$errvar = er\n"; - $body .= "\t}\n"; - } else { - $body .= "\tif \(r0 ==-1 && er != nil\) {\n"; - $body .= "\t\t$errvar = er\n"; - $body .= "\t}\n"; - } - } elsif ($errvar ne "") { - $body .= "\tif \(er != nil\) {\n"; - $body .= "\t\t$errvar = er\n"; - $body .= "\t}\n"; - } - - $text .= "\t$call\n"; - $text .= $body; - - $text .= "\treturn\n"; - $text .= "}\n"; -} - -if($errors) { - exit 1; -} - -print <){ - if(/^#define\s+SYS_(\w+)\s+([0-9]+)/){ - my $name = $1; - my $num = $2; - $name =~ y/a-z/A-Z/; - print " SYS_$name = $num;" - } -} - -print <){ - if(/^([0-9]+)\s+STD\s+({ \S+\s+(\w+).*)$/){ - my $num = $1; - my $proto = $2; - my $name = "SYS_$3"; - $name =~ y/a-z/A-Z/; - - # There are multiple entries for enosys and nosys, so comment them out. - if($name =~ /^SYS_E?NOSYS$/){ - $name = "// $name"; - } - if($name eq 'SYS_SYS_EXIT'){ - $name = 'SYS_EXIT'; - } - - print " $name = $num; // $proto\n"; - } -} - -print <){ - if(/^([0-9]+)\s+\S+\s+(?:NO)?STD\s+({ \S+\s+(\w+).*)$/){ - my $num = $1; - my $proto = $2; - my $name = "SYS_$3"; - $name =~ y/a-z/A-Z/; - - # There are multiple entries for enosys and nosys, so comment them out. - if($name =~ /^SYS_E?NOSYS$/){ - $name = "// $name"; - } - if($name eq 'SYS_SYS_EXIT'){ - $name = 'SYS_EXIT'; - } - - print " $name = $num; // $proto\n"; - } -} - -print <){ - if($line =~ /^(.*)\\$/) { - # Handle continuation - $line = $1; - $_ =~ s/^\s+//; - $line .= $_; - } else { - # New line - $line = $_; - } - next if $line =~ /\\$/; - if($line =~ /^([0-9]+)\s+((STD)|(NOERR))\s+(RUMP\s+)?({\s+\S+\s*\*?\s*\|(\S+)\|(\S*)\|(\w+).*\s+})(\s+(\S+))?$/) { - my $num = $1; - my $proto = $6; - my $compat = $8; - my $name = "$7_$9"; - - $name = "$7_$11" if $11 ne ''; - $name =~ y/a-z/A-Z/; - - if($compat eq '' || $compat eq '13' || $compat eq '30' || $compat eq '50') { - print " $name = $num; // $proto\n"; - } - } -} - -print <){ - if(/^([0-9]+)\s+STD\s+(NOLOCK\s+)?({ \S+\s+\*?(\w+).*)$/){ - my $num = $1; - my $proto = $3; - my $name = $4; - $name =~ y/a-z/A-Z/; - - # There are multiple entries for enosys and nosys, so comment them out. - if($name =~ /^SYS_E?NOSYS$/){ - $name = "// $name"; - } - if($name eq 'SYS_SYS_EXIT'){ - $name = 'SYS_EXIT'; - } - - print " $name = $num; // $proto\n"; - } -} - -print <>32), uintptr(unsafe.Pointer(&length)), 0, 0, 0, 0) - - written = int(length) - - if e1 != 0 { - err = e1 - } - return -} - func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) // SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions // of darwin/386 the syscall is called sysctl instead of __sysctl. const SYS___SYSCTL = SYS_SYSCTL + +//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 +//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 +//sys Fstatfs(fd int, stat *Statfs_t) (err error) = SYS_FSTATFS64 +//sys Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) = SYS_GETDIRENTRIES64 +//sys getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT64 +//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 +//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 +//sys Statfs(path string, stat *Statfs_t) (err error) = SYS_STATFS64 diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go b/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go index 75219444a..914b89bde 100644 --- a/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go +++ b/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go @@ -8,7 +8,6 @@ package unix import ( "syscall" - "unsafe" ) func setTimespec(sec, nsec int64) Timespec { @@ -48,21 +47,17 @@ func (cmsg *Cmsghdr) SetLen(length int) { cmsg.Len = uint32(length) } -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - var length = uint64(count) - - _, _, e1 := Syscall6(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(unsafe.Pointer(&length)), 0, 0) - - written = int(length) - - if e1 != 0 { - err = e1 - } - return -} - func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) // SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions // of darwin/amd64 the syscall is called sysctl instead of __sysctl. const SYS___SYSCTL = SYS_SYSCTL + +//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 +//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 +//sys Fstatfs(fd int, stat *Statfs_t) (err error) = SYS_FSTATFS64 +//sys Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) = SYS_GETDIRENTRIES64 +//sys getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT64 +//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 +//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 +//sys Statfs(path string, stat *Statfs_t) (err error) = SYS_STATFS64 diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_arm.go b/vendor/golang.org/x/sys/unix/syscall_darwin_arm.go index faae207a4..4a284cf50 100644 --- a/vendor/golang.org/x/sys/unix/syscall_darwin_arm.go +++ b/vendor/golang.org/x/sys/unix/syscall_darwin_arm.go @@ -6,7 +6,6 @@ package unix import ( "syscall" - "unsafe" ) func setTimespec(sec, nsec int64) Timespec { @@ -46,21 +45,20 @@ func (cmsg *Cmsghdr) SetLen(length int) { cmsg.Len = uint32(length) } -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - var length = uint64(count) - - _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(*offset>>32), uintptr(unsafe.Pointer(&length)), 0, 0, 0, 0) - - written = int(length) - - if e1 != 0 { - err = e1 - } - return -} - func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) // sic // SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions // of darwin/arm the syscall is called sysctl instead of __sysctl. const SYS___SYSCTL = SYS_SYSCTL + +//sys Fstat(fd int, stat *Stat_t) (err error) +//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) +//sys Fstatfs(fd int, stat *Statfs_t) (err error) +//sys getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT +//sys Lstat(path string, stat *Stat_t) (err error) +//sys Stat(path string, stat *Stat_t) (err error) +//sys Statfs(path string, stat *Statfs_t) (err error) + +func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { + return 0, ENOSYS +} diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go b/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go index d6d962801..52dcd88f6 100644 --- a/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go +++ b/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go @@ -8,7 +8,6 @@ package unix import ( "syscall" - "unsafe" ) func setTimespec(sec, nsec int64) Timespec { @@ -48,21 +47,20 @@ func (cmsg *Cmsghdr) SetLen(length int) { cmsg.Len = uint32(length) } -func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - var length = uint64(count) - - _, _, e1 := Syscall6(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(unsafe.Pointer(&length)), 0, 0) - - written = int(length) - - if e1 != 0 { - err = e1 - } - return -} - func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) // sic // SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions // of darwin/arm64 the syscall is called sysctl instead of __sysctl. const SYS___SYSCTL = SYS_SYSCTL + +//sys Fstat(fd int, stat *Stat_t) (err error) +//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) +//sys Fstatfs(fd int, stat *Statfs_t) (err error) +//sys getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT +//sys Lstat(path string, stat *Stat_t) (err error) +//sys Stat(path string, stat *Stat_t) (err error) +//sys Statfs(path string, stat *Statfs_t) (err error) + +func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { + return 0, ENOSYS +} diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go b/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go new file mode 100644 index 000000000..4b4ae460f --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go @@ -0,0 +1,31 @@ +// Copyright 2018 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. + +// +build darwin,go1.12 + +package unix + +import "unsafe" + +// Implemented in the runtime package (runtime/sys_darwin.go) +func syscall_syscall(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) +func syscall_syscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) +func syscall_syscall6X(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) +func syscall_syscall9(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err Errno) // 32-bit only +func syscall_rawSyscall(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) +func syscall_rawSyscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) + +//go:linkname syscall_syscall syscall.syscall +//go:linkname syscall_syscall6 syscall.syscall6 +//go:linkname syscall_syscall6X syscall.syscall6X +//go:linkname syscall_syscall9 syscall.syscall9 +//go:linkname syscall_rawSyscall syscall.rawSyscall +//go:linkname syscall_rawSyscall6 syscall.rawSyscall6 + +// Find the entry point for f. See comments in runtime/proc.go for the +// function of the same name. +//go:nosplit +func funcPC(f func()) uintptr { + return **(**uintptr)(unsafe.Pointer(&f)) +} diff --git a/vendor/golang.org/x/sys/unix/syscall_dragonfly.go b/vendor/golang.org/x/sys/unix/syscall_dragonfly.go index 756510575..891c94d7e 100644 --- a/vendor/golang.org/x/sys/unix/syscall_dragonfly.go +++ b/vendor/golang.org/x/sys/unix/syscall_dragonfly.go @@ -234,6 +234,13 @@ func Uname(uname *Utsname) error { return nil } +func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + if raceenabled { + raceReleaseMerge(unsafe.Pointer(&ioSync)) + } + return sendfile(outfd, infd, offset, count) +} + /* * Exposed directly */ diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd.go b/vendor/golang.org/x/sys/unix/syscall_freebsd.go index 085a808cc..a7ca1ebea 100644 --- a/vendor/golang.org/x/sys/unix/syscall_freebsd.go +++ b/vendor/golang.org/x/sys/unix/syscall_freebsd.go @@ -500,6 +500,13 @@ func convertFromDirents11(buf []byte, old []byte) int { return dstPos } +func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + if raceenabled { + raceReleaseMerge(unsafe.Pointer(&ioSync)) + } + return sendfile(outfd, infd, offset, count) +} + /* * Exposed directly */ diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go new file mode 100644 index 000000000..a31805487 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go @@ -0,0 +1,52 @@ +// Copyright 2018 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. + +// +build arm64,freebsd + +package unix + +import ( + "syscall" + "unsafe" +) + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: usec} +} + +func SetKevent(k *Kevent_t, fd, mode, flags int) { + k.Ident = uint64(fd) + k.Filter = int16(mode) + k.Flags = uint16(flags) +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + var writtenOut uint64 = 0 + _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0) + + written = int(writtenOut) + + if e1 != 0 { + err = e1 + } + return +} + +func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux.go b/vendor/golang.org/x/sys/unix/syscall_linux.go index 466b2576d..761062b87 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux.go @@ -1360,6 +1360,13 @@ func Mount(source string, target string, fstype string, flags uintptr, data stri return mount(source, target, fstype, flags, datap) } +func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + if raceenabled { + raceReleaseMerge(unsafe.Pointer(&ioSync)) + } + return sendfile(outfd, infd, offset, count) +} + // Sendto // Recvfrom // Socketpair @@ -1374,6 +1381,7 @@ func Mount(source string, target string, fstype string, flags uintptr, data stri //sys Chroot(path string) (err error) //sys ClockGetres(clockid int32, res *Timespec) (err error) //sys ClockGettime(clockid int32, time *Timespec) (err error) +//sys ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) //sys Close(fd int) (err error) //sys CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) //sys DeleteModule(name string, flags int) (err error) @@ -1459,6 +1467,7 @@ func Setgid(uid int) (err error) { //sys Setpriority(which int, who int, prio int) (err error) //sys Setxattr(path string, attr string, data []byte, flags int) (err error) +//sys Signalfd(fd int, mask *Sigset_t, flags int) = SYS_SIGNALFD4 //sys Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) //sys Sync() //sys Syncfs(fd int) (err error) @@ -1503,15 +1512,12 @@ func Munmap(b []byte) (err error) { // Vmsplice splices user pages from a slice of Iovecs into a pipe specified by fd, // using the specified flags. func Vmsplice(fd int, iovs []Iovec, flags int) (int, error) { - n, _, errno := Syscall6( - SYS_VMSPLICE, - uintptr(fd), - uintptr(unsafe.Pointer(&iovs[0])), - uintptr(len(iovs)), - uintptr(flags), - 0, - 0, - ) + var p unsafe.Pointer + if len(iovs) > 0 { + p = unsafe.Pointer(&iovs[0]) + } + + n, _, errno := Syscall6(SYS_VMSPLICE, uintptr(fd), uintptr(p), uintptr(len(iovs)), uintptr(flags), 0, 0) if errno != 0 { return 0, syscall.Errno(errno) } @@ -1678,7 +1684,6 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { // Shmdt // Shmget // Sigaltstack -// Signalfd // Swapoff // Swapon // Sysfs diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go b/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go index 5247d9f90..615f2918a 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go @@ -20,12 +20,26 @@ package unix //sysnb Getgid() (gid int) //sysnb Getrlimit(resource int, rlim *Rlimit) (err error) //sysnb Getuid() (uid int) -//sysnb InotifyInit() (fd int, err error) +//sysnb inotifyInit() (fd int, err error) + +func InotifyInit() (fd int, err error) { + // First try inotify_init1, because Android's seccomp policy blocks the latter. + fd, err = InotifyInit1(0) + if err == ENOSYS { + fd, err = inotifyInit() + } + return +} + //sys Ioperm(from int, num int, on int) (err error) //sys Iopl(level int) (err error) //sys Lchown(path string, uid int, gid int) (err error) //sys Listen(s int, n int) (err error) -//sys Lstat(path string, stat *Stat_t) (err error) + +func Lstat(path string, stat *Stat_t) (err error) { + return Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW) +} + //sys Pause() (err error) //sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 //sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_arm.go b/vendor/golang.org/x/sys/unix/syscall_linux_arm.go index 3ec7a9329..ad2bd2582 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_arm.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_arm.go @@ -257,3 +257,11 @@ func Poll(fds []PollFd, timeout int) (n int, err error) { } return poll(&fds[0], len(fds), timeout) } + +//sys armSyncFileRange(fd int, flags int, off int64, n int64) (err error) = SYS_ARM_SYNC_FILE_RANGE + +func SyncFileRange(fd int, off int64, n int64, flags int) error { + // The sync_file_range and arm_sync_file_range syscalls differ only in the + // order of their arguments. + return armSyncFileRange(fd, flags, off, n) +} diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go b/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go index ad991031c..18541dc57 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go @@ -12,7 +12,6 @@ package unix //sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) //sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 //sys Fchown(fd int, uid int, gid int) (err error) -//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_NEWFSTATAT //sys Fstatfs(fd int, buf *Statfs_t) (err error) //sys Ftruncate(fd int, length int64) (err error) //sysnb Getegid() (egid int) @@ -148,6 +147,7 @@ type stat_t struct { } //sys fstat(fd int, st *stat_t) (err error) +//sys fstatat(dirfd int, path string, st *stat_t, flags int) (err error) = SYS_NEWFSTATAT //sys lstat(path string, st *stat_t) (err error) //sys stat(path string, st *stat_t) (err error) @@ -158,6 +158,13 @@ func Fstat(fd int, s *Stat_t) (err error) { return } +func Fstatat(dirfd int, path string, s *Stat_t, flags int) (err error) { + st := &stat_t{} + err = fstatat(dirfd, path, st, flags) + fillStat_t(s, st) + return +} + func Lstat(path string, s *Stat_t) (err error) { st := &stat_t{} err = lstat(path, st) diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_test.go b/vendor/golang.org/x/sys/unix/syscall_linux_test.go index 758efa66e..c7c6c0584 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux_test.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux_test.go @@ -482,3 +482,36 @@ func TestSyncFileRange(t *testing.T) { t.Fatalf("SyncFileRange: unexpected error: %v, want EINVAL", err) } } + +func TestClockNanosleep(t *testing.T) { + delay := 100 * time.Millisecond + + // Relative timespec. + start := time.Now() + rel := unix.NsecToTimespec(delay.Nanoseconds()) + err := unix.ClockNanosleep(unix.CLOCK_MONOTONIC, 0, &rel, nil) + if err == unix.ENOSYS || err == unix.EPERM { + t.Skip("clock_nanosleep syscall is not available, skipping test") + } else if err != nil { + t.Errorf("ClockNanosleep(CLOCK_MONOTONIC, 0, %#v, nil) = %v", &rel, err) + } else if slept := time.Now().Sub(start); slept < delay { + t.Errorf("ClockNanosleep(CLOCK_MONOTONIC, 0, %#v, nil) slept only %v", &rel, slept) + } + + // Absolute timespec. + start = time.Now() + until := start.Add(delay) + abs := unix.NsecToTimespec(until.UnixNano()) + err = unix.ClockNanosleep(unix.CLOCK_REALTIME, unix.TIMER_ABSTIME, &abs, nil) + if err != nil { + t.Errorf("ClockNanosleep(CLOCK_REALTIME, TIMER_ABSTIME, %#v (=%v), nil) = %v", &abs, until, err) + } else if slept := time.Now().Sub(start); slept < delay { + t.Errorf("ClockNanosleep(CLOCK_REALTIME, TIMER_ABSTIME, %#v (=%v), nil) slept only %v", &abs, until, slept) + } + + // Invalid clock. clock_nanosleep(2) says EINVAL, but it’s actually EOPNOTSUPP. + err = unix.ClockNanosleep(unix.CLOCK_THREAD_CPUTIME_ID, 0, &rel, nil) + if err != unix.EINVAL && err != unix.EOPNOTSUPP { + t.Errorf("ClockNanosleep(CLOCK_THREAD_CPUTIME_ID, 0, %#v, nil) = %v, want EINVAL or EOPNOTSUPP", &rel, err) + } +} diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd.go b/vendor/golang.org/x/sys/unix/syscall_netbsd.go index 059327a36..5240e16e4 100644 --- a/vendor/golang.org/x/sys/unix/syscall_netbsd.go +++ b/vendor/golang.org/x/sys/unix/syscall_netbsd.go @@ -244,6 +244,13 @@ func Uname(uname *Utsname) error { return nil } +func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + if raceenabled { + raceReleaseMerge(unsafe.Pointer(&ioSync)) + } + return sendfile(outfd, infd, offset, count) +} + /* * Exposed directly */ diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd.go b/vendor/golang.org/x/sys/unix/syscall_openbsd.go index 5a398f817..687999549 100644 --- a/vendor/golang.org/x/sys/unix/syscall_openbsd.go +++ b/vendor/golang.org/x/sys/unix/syscall_openbsd.go @@ -94,6 +94,13 @@ func Getwd() (string, error) { return string(buf[:n]), nil } +func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + if raceenabled { + raceReleaseMerge(unsafe.Pointer(&ioSync)) + } + return sendfile(outfd, infd, offset, count) +} + // TODO func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { return -1, ENOSYS diff --git a/vendor/golang.org/x/sys/unix/syscall_solaris.go b/vendor/golang.org/x/sys/unix/syscall_solaris.go index 53b807828..e47801275 100644 --- a/vendor/golang.org/x/sys/unix/syscall_solaris.go +++ b/vendor/golang.org/x/sys/unix/syscall_solaris.go @@ -585,6 +585,13 @@ func Poll(fds []PollFd, timeout int) (n int, err error) { return poll(&fds[0], len(fds), timeout) } +func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + if raceenabled { + raceReleaseMerge(unsafe.Pointer(&ioSync)) + } + return sendfile(outfd, infd, offset, count) +} + /* * Exposed directly */ diff --git a/vendor/golang.org/x/sys/unix/syscall_unix.go b/vendor/golang.org/x/sys/unix/syscall_unix.go index 64fcda4ae..33583a22b 100644 --- a/vendor/golang.org/x/sys/unix/syscall_unix.go +++ b/vendor/golang.org/x/sys/unix/syscall_unix.go @@ -8,7 +8,6 @@ package unix import ( "bytes" - "runtime" "sort" "sync" "syscall" @@ -21,13 +20,6 @@ var ( Stderr = 2 ) -const ( - darwin64Bit = runtime.GOOS == "darwin" && SizeofPtr == 8 - dragonfly64Bit = runtime.GOOS == "dragonfly" && SizeofPtr == 8 - netbsd32Bit = runtime.GOOS == "netbsd" && SizeofPtr == 4 - solaris64Bit = runtime.GOOS == "solaris" && SizeofPtr == 8 -) - // Do the interface allocations only once for common // Errno values. var ( @@ -359,13 +351,6 @@ func Socketpair(domain, typ, proto int) (fd [2]int, err error) { return } -func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - if raceenabled { - raceReleaseMerge(unsafe.Pointer(&ioSync)) - } - return sendfile(outfd, infd, offset, count) -} - var ioSync int64 func CloseOnExec(fd int) { fcntl(fd, F_SETFD, FD_CLOEXEC) } diff --git a/vendor/golang.org/x/sys/unix/syscall_unix_test.go b/vendor/golang.org/x/sys/unix/syscall_unix_test.go index 0a28f6e5d..c1b1ea59a 100644 --- a/vendor/golang.org/x/sys/unix/syscall_unix_test.go +++ b/vendor/golang.org/x/sys/unix/syscall_unix_test.go @@ -337,6 +337,12 @@ func TestRlimit(t *testing.T) { } set := rlimit set.Cur = set.Max - 1 + if runtime.GOOS == "darwin" && set.Cur > 10240 { + // The max file limit is 10240, even though + // the max returned by Getrlimit is 1<<63-1. + // This is OPEN_MAX in sys/syslimits.h. + set.Cur = 10240 + } err = unix.Setrlimit(unix.RLIMIT_NOFILE, &set) if err != nil { t.Fatalf("Setrlimit: set failed: %#v %v", set, err) diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go new file mode 100644 index 000000000..d4a192fef --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go @@ -0,0 +1,1794 @@ +// mkerrors.sh -m64 +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build arm64,freebsd + +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs -- -m64 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_ARP = 0x23 + AF_ATM = 0x1e + AF_BLUETOOTH = 0x24 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_HYLINK = 0xf + AF_IEEE80211 = 0x25 + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x1c + AF_INET6_SDP = 0x2a + AF_INET_SDP = 0x28 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x2a + AF_NATM = 0x1d + AF_NETBIOS = 0x6 + AF_NETGRAPH = 0x20 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x11 + AF_SCLUSTER = 0x22 + AF_SIP = 0x18 + AF_SLOW = 0x21 + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_VENDOR00 = 0x27 + AF_VENDOR01 = 0x29 + AF_VENDOR02 = 0x2b + AF_VENDOR03 = 0x2d + AF_VENDOR04 = 0x2f + AF_VENDOR05 = 0x31 + AF_VENDOR06 = 0x33 + AF_VENDOR07 = 0x35 + AF_VENDOR08 = 0x37 + AF_VENDOR09 = 0x39 + AF_VENDOR10 = 0x3b + AF_VENDOR11 = 0x3d + AF_VENDOR12 = 0x3f + AF_VENDOR13 = 0x41 + AF_VENDOR14 = 0x43 + AF_VENDOR15 = 0x45 + AF_VENDOR16 = 0x47 + AF_VENDOR17 = 0x49 + AF_VENDOR18 = 0x4b + AF_VENDOR19 = 0x4d + AF_VENDOR20 = 0x4f + AF_VENDOR21 = 0x51 + AF_VENDOR22 = 0x53 + AF_VENDOR23 = 0x55 + AF_VENDOR24 = 0x57 + AF_VENDOR25 = 0x59 + AF_VENDOR26 = 0x5b + AF_VENDOR27 = 0x5d + AF_VENDOR28 = 0x5f + AF_VENDOR29 = 0x61 + AF_VENDOR30 = 0x63 + AF_VENDOR31 = 0x65 + AF_VENDOR32 = 0x67 + AF_VENDOR33 = 0x69 + AF_VENDOR34 = 0x6b + AF_VENDOR35 = 0x6d + AF_VENDOR36 = 0x6f + AF_VENDOR37 = 0x71 + AF_VENDOR38 = 0x73 + AF_VENDOR39 = 0x75 + AF_VENDOR40 = 0x77 + AF_VENDOR41 = 0x79 + AF_VENDOR42 = 0x7b + AF_VENDOR43 = 0x7d + AF_VENDOR44 = 0x7f + AF_VENDOR45 = 0x81 + AF_VENDOR46 = 0x83 + AF_VENDOR47 = 0x85 + ALTWERASE = 0x200 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B460800 = 0x70800 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B921600 = 0xe1000 + B9600 = 0x2580 + BIOCFEEDBACK = 0x8004427c + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDIRECTION = 0x40044276 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc0104279 + BIOCGETBUFMODE = 0x4004427d + BIOCGETIF = 0x4020426b + BIOCGETZMAX = 0x4008427f + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044272 + BIOCGRTIMEOUT = 0x4010426e + BIOCGSEESENT = 0x40044276 + BIOCGSTATS = 0x4008426f + BIOCGTSTAMP = 0x40044283 + BIOCIMMEDIATE = 0x80044270 + BIOCLOCK = 0x2000427a + BIOCPROMISC = 0x20004269 + BIOCROTZBUF = 0x40184280 + BIOCSBLEN = 0xc0044266 + BIOCSDIRECTION = 0x80044277 + BIOCSDLT = 0x80044278 + BIOCSETBUFMODE = 0x8004427e + BIOCSETF = 0x80104267 + BIOCSETFNR = 0x80104282 + BIOCSETIF = 0x8020426c + BIOCSETWF = 0x8010427b + BIOCSETZBUF = 0x80184281 + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044273 + BIOCSRTIMEOUT = 0x8010426d + BIOCSSEESENT = 0x80044277 + BIOCSTSTAMP = 0x80044284 + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x8 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_BUFMODE_BUFFER = 0x1 + BPF_BUFMODE_ZBUF = 0x2 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x80000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MOD = 0x90 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_T_BINTIME = 0x2 + BPF_T_BINTIME_FAST = 0x102 + BPF_T_BINTIME_MONOTONIC = 0x202 + BPF_T_BINTIME_MONOTONIC_FAST = 0x302 + BPF_T_FAST = 0x100 + BPF_T_FLAG_MASK = 0x300 + BPF_T_FORMAT_MASK = 0x3 + BPF_T_MICROTIME = 0x0 + BPF_T_MICROTIME_FAST = 0x100 + BPF_T_MICROTIME_MONOTONIC = 0x200 + BPF_T_MICROTIME_MONOTONIC_FAST = 0x300 + BPF_T_MONOTONIC = 0x200 + BPF_T_MONOTONIC_FAST = 0x300 + BPF_T_NANOTIME = 0x1 + BPF_T_NANOTIME_FAST = 0x101 + BPF_T_NANOTIME_MONOTONIC = 0x201 + BPF_T_NANOTIME_MONOTONIC_FAST = 0x301 + BPF_T_NONE = 0x3 + BPF_T_NORMAL = 0x0 + BPF_W = 0x0 + BPF_X = 0x8 + BPF_XOR = 0xa0 + BRKINT = 0x2 + CAP_ACCEPT = 0x200000020000000 + CAP_ACL_CHECK = 0x400000000010000 + CAP_ACL_DELETE = 0x400000000020000 + CAP_ACL_GET = 0x400000000040000 + CAP_ACL_SET = 0x400000000080000 + CAP_ALL0 = 0x20007ffffffffff + CAP_ALL1 = 0x4000000001fffff + CAP_BIND = 0x200000040000000 + CAP_BINDAT = 0x200008000000400 + CAP_CHFLAGSAT = 0x200000000001400 + CAP_CONNECT = 0x200000080000000 + CAP_CONNECTAT = 0x200010000000400 + CAP_CREATE = 0x200000000000040 + CAP_EVENT = 0x400000000000020 + CAP_EXTATTR_DELETE = 0x400000000001000 + CAP_EXTATTR_GET = 0x400000000002000 + CAP_EXTATTR_LIST = 0x400000000004000 + CAP_EXTATTR_SET = 0x400000000008000 + CAP_FCHDIR = 0x200000000000800 + CAP_FCHFLAGS = 0x200000000001000 + CAP_FCHMOD = 0x200000000002000 + CAP_FCHMODAT = 0x200000000002400 + CAP_FCHOWN = 0x200000000004000 + CAP_FCHOWNAT = 0x200000000004400 + CAP_FCNTL = 0x200000000008000 + CAP_FCNTL_ALL = 0x78 + CAP_FCNTL_GETFL = 0x8 + CAP_FCNTL_GETOWN = 0x20 + CAP_FCNTL_SETFL = 0x10 + CAP_FCNTL_SETOWN = 0x40 + CAP_FEXECVE = 0x200000000000080 + CAP_FLOCK = 0x200000000010000 + CAP_FPATHCONF = 0x200000000020000 + CAP_FSCK = 0x200000000040000 + CAP_FSTAT = 0x200000000080000 + CAP_FSTATAT = 0x200000000080400 + CAP_FSTATFS = 0x200000000100000 + CAP_FSYNC = 0x200000000000100 + CAP_FTRUNCATE = 0x200000000000200 + CAP_FUTIMES = 0x200000000200000 + CAP_FUTIMESAT = 0x200000000200400 + CAP_GETPEERNAME = 0x200000100000000 + CAP_GETSOCKNAME = 0x200000200000000 + CAP_GETSOCKOPT = 0x200000400000000 + CAP_IOCTL = 0x400000000000080 + CAP_IOCTLS_ALL = 0x7fffffffffffffff + CAP_KQUEUE = 0x400000000100040 + CAP_KQUEUE_CHANGE = 0x400000000100000 + CAP_KQUEUE_EVENT = 0x400000000000040 + CAP_LINKAT_SOURCE = 0x200020000000400 + CAP_LINKAT_TARGET = 0x200000000400400 + CAP_LISTEN = 0x200000800000000 + CAP_LOOKUP = 0x200000000000400 + CAP_MAC_GET = 0x400000000000001 + CAP_MAC_SET = 0x400000000000002 + CAP_MKDIRAT = 0x200000000800400 + CAP_MKFIFOAT = 0x200000001000400 + CAP_MKNODAT = 0x200000002000400 + CAP_MMAP = 0x200000000000010 + CAP_MMAP_R = 0x20000000000001d + CAP_MMAP_RW = 0x20000000000001f + CAP_MMAP_RWX = 0x20000000000003f + CAP_MMAP_RX = 0x20000000000003d + CAP_MMAP_W = 0x20000000000001e + CAP_MMAP_WX = 0x20000000000003e + CAP_MMAP_X = 0x20000000000003c + CAP_PDGETPID = 0x400000000000200 + CAP_PDKILL = 0x400000000000800 + CAP_PDWAIT = 0x400000000000400 + CAP_PEELOFF = 0x200001000000000 + CAP_POLL_EVENT = 0x400000000000020 + CAP_PREAD = 0x20000000000000d + CAP_PWRITE = 0x20000000000000e + CAP_READ = 0x200000000000001 + CAP_RECV = 0x200000000000001 + CAP_RENAMEAT_SOURCE = 0x200000004000400 + CAP_RENAMEAT_TARGET = 0x200040000000400 + CAP_RIGHTS_VERSION = 0x0 + CAP_RIGHTS_VERSION_00 = 0x0 + CAP_SEEK = 0x20000000000000c + CAP_SEEK_TELL = 0x200000000000004 + CAP_SEM_GETVALUE = 0x400000000000004 + CAP_SEM_POST = 0x400000000000008 + CAP_SEM_WAIT = 0x400000000000010 + CAP_SEND = 0x200000000000002 + CAP_SETSOCKOPT = 0x200002000000000 + CAP_SHUTDOWN = 0x200004000000000 + CAP_SOCK_CLIENT = 0x200007780000003 + CAP_SOCK_SERVER = 0x200007f60000003 + CAP_SYMLINKAT = 0x200000008000400 + CAP_TTYHOOK = 0x400000000000100 + CAP_UNLINKAT = 0x200000010000400 + CAP_UNUSED0_44 = 0x200080000000000 + CAP_UNUSED0_57 = 0x300000000000000 + CAP_UNUSED1_22 = 0x400000000200000 + CAP_UNUSED1_57 = 0x500000000000000 + CAP_WRITE = 0x200000000000002 + CFLUSH = 0xf + CLOCAL = 0x8000 + CLOCK_MONOTONIC = 0x4 + CLOCK_MONOTONIC_FAST = 0xc + CLOCK_MONOTONIC_PRECISE = 0xb + CLOCK_PROCESS_CPUTIME_ID = 0xf + CLOCK_PROF = 0x2 + CLOCK_REALTIME = 0x0 + CLOCK_REALTIME_FAST = 0xa + CLOCK_REALTIME_PRECISE = 0x9 + CLOCK_SECOND = 0xd + CLOCK_THREAD_CPUTIME_ID = 0xe + CLOCK_UPTIME = 0x5 + CLOCK_UPTIME_FAST = 0x8 + CLOCK_UPTIME_PRECISE = 0x7 + CLOCK_VIRTUAL = 0x1 + CREAD = 0x800 + CRTSCTS = 0x30000 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_HW = 0x6 + CTL_KERN = 0x1 + CTL_MAXNAME = 0x18 + CTL_NET = 0x4 + DLT_A429 = 0xb8 + DLT_A653_ICM = 0xb9 + DLT_AIRONET_HEADER = 0x78 + DLT_AOS = 0xde + DLT_APPLE_IP_OVER_IEEE1394 = 0x8a + DLT_ARCNET = 0x7 + DLT_ARCNET_LINUX = 0x81 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + DLT_AX25 = 0x3 + DLT_AX25_KISS = 0xca + DLT_BACNET_MS_TP = 0xa5 + DLT_BLUETOOTH_BREDR_BB = 0xff + DLT_BLUETOOTH_HCI_H4 = 0xbb + DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 + DLT_BLUETOOTH_LE_LL = 0xfb + DLT_BLUETOOTH_LE_LL_WITH_PHDR = 0x100 + DLT_BLUETOOTH_LINUX_MONITOR = 0xfe + DLT_CAN20B = 0xbe + DLT_CAN_SOCKETCAN = 0xe3 + DLT_CHAOS = 0x5 + DLT_CHDLC = 0x68 + DLT_CISCO_IOS = 0x76 + DLT_C_HDLC = 0x68 + DLT_C_HDLC_WITH_DIR = 0xcd + DLT_DBUS = 0xe7 + DLT_DECT = 0xdd + DLT_DOCSIS = 0x8f + DLT_DVB_CI = 0xeb + DLT_ECONET = 0x73 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0x6d + DLT_EPON = 0x103 + DLT_ERF = 0xc5 + DLT_ERF_ETH = 0xaf + DLT_ERF_POS = 0xb0 + DLT_FC_2 = 0xe0 + DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 + DLT_FDDI = 0xa + DLT_FLEXRAY = 0xd2 + DLT_FRELAY = 0x6b + DLT_FRELAY_WITH_DIR = 0xce + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + DLT_GPF_F = 0xab + DLT_GPF_T = 0xaa + DLT_GPRS_LLC = 0xa9 + DLT_GSMTAP_ABIS = 0xda + DLT_GSMTAP_UM = 0xd9 + DLT_HHDLC = 0x79 + DLT_IBM_SN = 0x92 + DLT_IBM_SP = 0x91 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_IEEE802_11_RADIO_AVS = 0xa3 + DLT_IEEE802_15_4 = 0xc3 + DLT_IEEE802_15_4_LINUX = 0xbf + DLT_IEEE802_15_4_NOFCS = 0xe6 + DLT_IEEE802_15_4_NONASK_PHY = 0xd7 + DLT_IEEE802_16_MAC_CPS = 0xbc + DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 + DLT_INFINIBAND = 0xf7 + DLT_IPFILTER = 0x74 + DLT_IPMB = 0xc7 + DLT_IPMB_LINUX = 0xd1 + DLT_IPMI_HPM_2 = 0x104 + DLT_IPNET = 0xe2 + DLT_IPOIB = 0xf2 + DLT_IPV4 = 0xe4 + DLT_IPV6 = 0xe5 + DLT_IP_OVER_FC = 0x7a + DLT_JUNIPER_ATM1 = 0x89 + DLT_JUNIPER_ATM2 = 0x87 + DLT_JUNIPER_ATM_CEMIC = 0xee + DLT_JUNIPER_CHDLC = 0xb5 + DLT_JUNIPER_ES = 0x84 + DLT_JUNIPER_ETHER = 0xb2 + DLT_JUNIPER_FIBRECHANNEL = 0xea + DLT_JUNIPER_FRELAY = 0xb4 + DLT_JUNIPER_GGSN = 0x85 + DLT_JUNIPER_ISM = 0xc2 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + DLT_JUNIPER_PPPOE = 0xa7 + DLT_JUNIPER_PPPOE_ATM = 0xa8 + DLT_JUNIPER_SERVICES = 0x88 + DLT_JUNIPER_SRX_E2E = 0xe9 + DLT_JUNIPER_ST = 0xc8 + DLT_JUNIPER_VP = 0xb7 + DLT_JUNIPER_VS = 0xe8 + DLT_LAPB_WITH_DIR = 0xcf + DLT_LAPD = 0xcb + DLT_LIN = 0xd4 + DLT_LINUX_EVDEV = 0xd8 + DLT_LINUX_IRDA = 0x90 + DLT_LINUX_LAPD = 0xb1 + DLT_LINUX_PPP_WITHDIRECTION = 0xa6 + DLT_LINUX_SLL = 0x71 + DLT_LOOP = 0x6c + DLT_LTALK = 0x72 + DLT_MATCHING_MAX = 0x104 + DLT_MATCHING_MIN = 0x68 + DLT_MFR = 0xb6 + DLT_MOST = 0xd3 + DLT_MPEG_2_TS = 0xf3 + DLT_MPLS = 0xdb + DLT_MTP2 = 0x8c + DLT_MTP2_WITH_PHDR = 0x8b + DLT_MTP3 = 0x8d + DLT_MUX27010 = 0xec + DLT_NETANALYZER = 0xf0 + DLT_NETANALYZER_TRANSPARENT = 0xf1 + DLT_NETLINK = 0xfd + DLT_NFC_LLCP = 0xf5 + DLT_NFLOG = 0xef + DLT_NG40 = 0xf4 + DLT_NULL = 0x0 + DLT_PCI_EXP = 0x7d + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x79 + DLT_PKTAP = 0x102 + DLT_PPI = 0xc0 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0x10 + DLT_PPP_ETHER = 0x33 + DLT_PPP_PPPD = 0xa6 + DLT_PPP_SERIAL = 0x32 + DLT_PPP_WITH_DIR = 0xcc + DLT_PPP_WITH_DIRECTION = 0xa6 + DLT_PRISM_HEADER = 0x77 + DLT_PROFIBUS_DL = 0x101 + DLT_PRONET = 0x4 + DLT_RAIF1 = 0xc6 + DLT_RAW = 0xc + DLT_RIO = 0x7c + DLT_RTAC_SERIAL = 0xfa + DLT_SCCP = 0x8e + DLT_SCTP = 0xf8 + DLT_SITA = 0xc4 + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xf + DLT_STANAG_5066_D_PDU = 0xed + DLT_SUNATM = 0x7b + DLT_SYMANTEC_FIREWALL = 0x63 + DLT_TZSP = 0x80 + DLT_USB = 0xba + DLT_USBPCAP = 0xf9 + DLT_USB_LINUX = 0xbd + DLT_USB_LINUX_MMAPPED = 0xdc + DLT_USER0 = 0x93 + DLT_USER1 = 0x94 + DLT_USER10 = 0x9d + DLT_USER11 = 0x9e + DLT_USER12 = 0x9f + DLT_USER13 = 0xa0 + DLT_USER14 = 0xa1 + DLT_USER15 = 0xa2 + DLT_USER2 = 0x95 + DLT_USER3 = 0x96 + DLT_USER4 = 0x97 + DLT_USER5 = 0x98 + DLT_USER6 = 0x99 + DLT_USER7 = 0x9a + DLT_USER8 = 0x9b + DLT_USER9 = 0x9c + DLT_WIHART = 0xdf + DLT_WIRESHARK_UPPER_PDU = 0xfc + DLT_X2E_SERIAL = 0xd5 + DLT_X2E_XORAYA = 0xd6 + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EVFILT_AIO = -0x3 + EVFILT_FS = -0x9 + EVFILT_LIO = -0xa + EVFILT_PROC = -0x5 + EVFILT_PROCDESC = -0x8 + EVFILT_READ = -0x1 + EVFILT_SENDFILE = -0xc + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0xc + EVFILT_TIMER = -0x7 + EVFILT_USER = -0xb + EVFILT_VNODE = -0x4 + EVFILT_WRITE = -0x2 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 + EV_DROP = 0x1000 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_FLAG2 = 0x4000 + EV_FORCEONESHOT = 0x100 + EV_ONESHOT = 0x10 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTATTR_NAMESPACE_EMPTY = 0x0 + EXTATTR_NAMESPACE_SYSTEM = 0x2 + EXTATTR_NAMESPACE_USER = 0x1 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x800000 + F_CANCEL = 0x5 + F_DUP2FD = 0xa + F_DUP2FD_CLOEXEC = 0x12 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x11 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0xb + F_GETOWN = 0x5 + F_OGETLK = 0x7 + F_OK = 0x0 + F_OSETLK = 0x8 + F_OSETLKW = 0x9 + F_RDAHEAD = 0x10 + F_RDLCK = 0x1 + F_READAHEAD = 0xf + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0xc + F_SETLKW = 0xd + F_SETLK_REMOTE = 0xe + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_UNLCKSYS = 0x4 + F_WRLCK = 0x3 + HUPCL = 0x4000 + HW_MACHINE = 0x1 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFF_ALLMULTI = 0x200 + IFF_ALTPHYS = 0x4000 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x218f52 + IFF_CANTCONFIG = 0x10000 + IFF_DEBUG = 0x4 + IFF_DRV_OACTIVE = 0x400 + IFF_DRV_RUNNING = 0x40 + IFF_DYING = 0x200000 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MONITOR = 0x40000 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PPROMISC = 0x20000 + IFF_PROMISC = 0x100 + IFF_RENAMING = 0x400000 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_STATICARP = 0x80000 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_BRIDGE = 0xd1 + IFT_CARP = 0xf8 + IFT_IEEE1394 = 0x90 + IFT_INFINIBAND = 0xc7 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_PPP = 0x17 + IFT_PROPVIRTUAL = 0x35 + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IN_RFC3021_MASK = 0xfffffffe + IPPROTO_3PC = 0x22 + IPPROTO_ADFS = 0x44 + IPPROTO_AH = 0x33 + IPPROTO_AHIP = 0x3d + IPPROTO_APES = 0x63 + IPPROTO_ARGUS = 0xd + IPPROTO_AX25 = 0x5d + IPPROTO_BHA = 0x31 + IPPROTO_BLT = 0x1e + IPPROTO_BRSATMON = 0x4c + IPPROTO_CARP = 0x70 + IPPROTO_CFTP = 0x3e + IPPROTO_CHAOS = 0x10 + IPPROTO_CMTP = 0x26 + IPPROTO_CPHB = 0x49 + IPPROTO_CPNX = 0x48 + IPPROTO_DDP = 0x25 + IPPROTO_DGP = 0x56 + IPPROTO_DIVERT = 0x102 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_EMCON = 0xe + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GMTP = 0x64 + IPPROTO_GRE = 0x2f + IPPROTO_HELLO = 0x3f + IPPROTO_HIP = 0x8b + IPPROTO_HMP = 0x14 + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IDPR = 0x23 + IPPROTO_IDRP = 0x2d + IPPROTO_IGMP = 0x2 + IPPROTO_IGP = 0x55 + IPPROTO_IGRP = 0x58 + IPPROTO_IL = 0x28 + IPPROTO_INLSP = 0x34 + IPPROTO_INP = 0x20 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPCV = 0x47 + IPPROTO_IPEIP = 0x5e + IPPROTO_IPIP = 0x4 + IPPROTO_IPPC = 0x43 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_IRTP = 0x1c + IPPROTO_KRYPTOLAN = 0x41 + IPPROTO_LARP = 0x5b + IPPROTO_LEAF1 = 0x19 + IPPROTO_LEAF2 = 0x1a + IPPROTO_MAX = 0x100 + IPPROTO_MEAS = 0x13 + IPPROTO_MH = 0x87 + IPPROTO_MHRP = 0x30 + IPPROTO_MICP = 0x5f + IPPROTO_MOBILE = 0x37 + IPPROTO_MPLS = 0x89 + IPPROTO_MTP = 0x5c + IPPROTO_MUX = 0x12 + IPPROTO_ND = 0x4d + IPPROTO_NHRP = 0x36 + IPPROTO_NONE = 0x3b + IPPROTO_NSP = 0x1f + IPPROTO_NVPII = 0xb + IPPROTO_OLD_DIVERT = 0xfe + IPPROTO_OSPFIGP = 0x59 + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PGM = 0x71 + IPPROTO_PIGP = 0x9 + IPPROTO_PIM = 0x67 + IPPROTO_PRM = 0x15 + IPPROTO_PUP = 0xc + IPPROTO_PVP = 0x4b + IPPROTO_RAW = 0xff + IPPROTO_RCCMON = 0xa + IPPROTO_RDP = 0x1b + IPPROTO_RESERVED_253 = 0xfd + IPPROTO_RESERVED_254 = 0xfe + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_RVD = 0x42 + IPPROTO_SATEXPAK = 0x40 + IPPROTO_SATMON = 0x45 + IPPROTO_SCCSP = 0x60 + IPPROTO_SCTP = 0x84 + IPPROTO_SDRP = 0x2a + IPPROTO_SEND = 0x103 + IPPROTO_SEP = 0x21 + IPPROTO_SHIM6 = 0x8c + IPPROTO_SKIP = 0x39 + IPPROTO_SPACER = 0x7fff + IPPROTO_SRPC = 0x5a + IPPROTO_ST = 0x7 + IPPROTO_SVMTP = 0x52 + IPPROTO_SWIPE = 0x35 + IPPROTO_TCF = 0x57 + IPPROTO_TCP = 0x6 + IPPROTO_TLSP = 0x38 + IPPROTO_TP = 0x1d + IPPROTO_TPXX = 0x27 + IPPROTO_TRUNK1 = 0x17 + IPPROTO_TRUNK2 = 0x18 + IPPROTO_TTP = 0x54 + IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 + IPPROTO_VINES = 0x53 + IPPROTO_VISA = 0x46 + IPPROTO_VMTP = 0x51 + IPPROTO_WBEXPAK = 0x4f + IPPROTO_WBMON = 0x4e + IPPROTO_WSN = 0x4a + IPPROTO_XNET = 0xf + IPPROTO_XTP = 0x24 + IPV6_AUTOFLOWLABEL = 0x3b + IPV6_BINDANY = 0x40 + IPV6_BINDMULTI = 0x41 + IPV6_BINDV6ONLY = 0x1b + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_FLOWID = 0x43 + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FLOWTYPE = 0x44 + IPV6_FRAGTTL = 0x78 + IPV6_FW_ADD = 0x1e + IPV6_FW_DEL = 0x1f + IPV6_FW_FLUSH = 0x20 + IPV6_FW_GET = 0x22 + IPV6_FW_ZERO = 0x21 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPSEC_POLICY = 0x1c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXOPTHDR = 0x800 + IPV6_MAXPACKET = 0xffff + IPV6_MAX_GROUP_SRC_FILTER = 0x200 + IPV6_MAX_MEMBERSHIPS = 0xfff + IPV6_MAX_SOCK_SRC_FILTER = 0x80 + IPV6_MIN_MEMBERSHIPS = 0x1f + IPV6_MMTU = 0x500 + IPV6_MSFILTER = 0x4a + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_PATHMTU = 0x2c + IPV6_PKTINFO = 0x2e + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_PREFER_TEMPADDR = 0x3f + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVFLOWID = 0x46 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRSSBUCKETID = 0x47 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RSSBUCKETID = 0x45 + IPV6_RSS_LISTEN_BUCKET = 0x42 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_ADD_SOURCE_MEMBERSHIP = 0x46 + IP_BINDANY = 0x18 + IP_BINDMULTI = 0x19 + IP_BLOCK_SOURCE = 0x48 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DONTFRAG = 0x43 + IP_DROP_MEMBERSHIP = 0xd + IP_DROP_SOURCE_MEMBERSHIP = 0x47 + IP_DUMMYNET3 = 0x31 + IP_DUMMYNET_CONFIGURE = 0x3c + IP_DUMMYNET_DEL = 0x3d + IP_DUMMYNET_FLUSH = 0x3e + IP_DUMMYNET_GET = 0x40 + IP_FLOWID = 0x5a + IP_FLOWTYPE = 0x5b + IP_FW3 = 0x30 + IP_FW_ADD = 0x32 + IP_FW_DEL = 0x33 + IP_FW_FLUSH = 0x34 + IP_FW_GET = 0x36 + IP_FW_NAT_CFG = 0x38 + IP_FW_NAT_DEL = 0x39 + IP_FW_NAT_GET_CONFIG = 0x3a + IP_FW_NAT_GET_LOG = 0x3b + IP_FW_RESETLOG = 0x37 + IP_FW_TABLE_ADD = 0x28 + IP_FW_TABLE_DEL = 0x29 + IP_FW_TABLE_FLUSH = 0x2a + IP_FW_TABLE_GETSIZE = 0x2b + IP_FW_TABLE_LIST = 0x2c + IP_FW_ZERO = 0x35 + IP_HDRINCL = 0x2 + IP_IPSEC_POLICY = 0x15 + IP_MAXPACKET = 0xffff + IP_MAX_GROUP_SRC_FILTER = 0x200 + IP_MAX_MEMBERSHIPS = 0xfff + IP_MAX_SOCK_MUTE_FILTER = 0x80 + IP_MAX_SOCK_SRC_FILTER = 0x80 + IP_MAX_SOURCE_FILTER = 0x400 + IP_MF = 0x2000 + IP_MINTTL = 0x42 + IP_MIN_MEMBERSHIPS = 0x1f + IP_MSFILTER = 0x4a + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_MULTICAST_VIF = 0xe + IP_OFFMASK = 0x1fff + IP_ONESBCAST = 0x17 + IP_OPTIONS = 0x1 + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVFLOWID = 0x5d + IP_RECVIF = 0x14 + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVRSSBUCKETID = 0x5e + IP_RECVTOS = 0x44 + IP_RECVTTL = 0x41 + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RSSBUCKETID = 0x5c + IP_RSS_LISTEN_BUCKET = 0x1a + IP_RSVP_OFF = 0x10 + IP_RSVP_ON = 0xf + IP_RSVP_VIF_OFF = 0x12 + IP_RSVP_VIF_ON = 0x11 + IP_SENDSRCADDR = 0x7 + IP_TOS = 0x3 + IP_TTL = 0x4 + IP_UNBLOCK_SOURCE = 0x49 + ISIG = 0x80 + ISTRIP = 0x20 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_AUTOSYNC = 0x7 + MADV_CORE = 0x9 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x5 + MADV_NOCORE = 0x8 + MADV_NORMAL = 0x0 + MADV_NOSYNC = 0x6 + MADV_PROTECT = 0xa + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_WILLNEED = 0x3 + MAP_32BIT = 0x80000 + MAP_ALIGNED_SUPER = 0x1000000 + MAP_ALIGNMENT_MASK = -0x1000000 + MAP_ALIGNMENT_SHIFT = 0x18 + MAP_ANON = 0x1000 + MAP_ANONYMOUS = 0x1000 + MAP_COPY = 0x2 + MAP_EXCL = 0x4000 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_HASSEMAPHORE = 0x200 + MAP_NOCORE = 0x20000 + MAP_NOSYNC = 0x800 + MAP_PREFAULT_READ = 0x40000 + MAP_PRIVATE = 0x2 + MAP_RESERVED0020 = 0x20 + MAP_RESERVED0040 = 0x40 + MAP_RESERVED0080 = 0x80 + MAP_RESERVED0100 = 0x100 + MAP_SHARED = 0x1 + MAP_STACK = 0x400 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_ACLS = 0x8000000 + MNT_ASYNC = 0x40 + MNT_AUTOMOUNTED = 0x200000000 + MNT_BYFSID = 0x8000000 + MNT_CMDFLAGS = 0xd0f0000 + MNT_DEFEXPORTED = 0x200 + MNT_DELEXPORT = 0x20000 + MNT_EXKERB = 0x800 + MNT_EXPORTANON = 0x400 + MNT_EXPORTED = 0x100 + MNT_EXPUBLIC = 0x20000000 + MNT_EXRDONLY = 0x80 + MNT_FORCE = 0x80000 + MNT_GJOURNAL = 0x2000000 + MNT_IGNORE = 0x800000 + MNT_LAZY = 0x3 + MNT_LOCAL = 0x1000 + MNT_MULTILABEL = 0x4000000 + MNT_NFS4ACLS = 0x10 + MNT_NOATIME = 0x10000000 + MNT_NOCLUSTERR = 0x40000000 + MNT_NOCLUSTERW = 0x80000000 + MNT_NOEXEC = 0x4 + MNT_NONBUSY = 0x4000000 + MNT_NOSUID = 0x8 + MNT_NOSYMFOLLOW = 0x400000 + MNT_NOWAIT = 0x2 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SNAPSHOT = 0x1000000 + MNT_SOFTDEP = 0x200000 + MNT_SUIDDIR = 0x100000 + MNT_SUJ = 0x100000000 + MNT_SUSPEND = 0x4 + MNT_SYNCHRONOUS = 0x2 + MNT_UNION = 0x20 + MNT_UPDATE = 0x10000 + MNT_UPDATEMASK = 0x2d8d0807e + MNT_USER = 0x8000 + MNT_VISFLAGMASK = 0x3fef0ffff + MNT_WAIT = 0x1 + MSG_CMSG_CLOEXEC = 0x40000 + MSG_COMPAT = 0x8000 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOF = 0x100 + MSG_EOR = 0x8 + MSG_NBIO = 0x4000 + MSG_NOSIGNAL = 0x20000 + MSG_NOTIFICATION = 0x2000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MSG_WAITFORONE = 0x80000 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x2 + MS_SYNC = 0x0 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x3 + NET_RT_IFLISTL = 0x5 + NET_RT_IFMALIST = 0x4 + NOFLSH = 0x80000000 + NOKERNINFO = 0x2000000 + NOTE_ATTRIB = 0x8 + NOTE_CHILD = 0x4 + NOTE_CLOSE = 0x100 + NOTE_CLOSE_WRITE = 0x200 + NOTE_DELETE = 0x1 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FFAND = 0x40000000 + NOTE_FFCOPY = 0xc0000000 + NOTE_FFCTRLMASK = 0xc0000000 + NOTE_FFLAGSMASK = 0xffffff + NOTE_FFNOP = 0x0 + NOTE_FFOR = 0x80000000 + NOTE_FILE_POLL = 0x2 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_MSECONDS = 0x2 + NOTE_NSECONDS = 0x8 + NOTE_OPEN = 0x80 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_READ = 0x400 + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_SECONDS = 0x1 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRIGGER = 0x1000000 + NOTE_USECONDS = 0x4 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + ONLCR = 0x2 + ONLRET = 0x40 + ONOCR = 0x20 + ONOEOT = 0x8 + OPOST = 0x1 + OXTABS = 0x4 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x100000 + O_CREAT = 0x200 + O_DIRECT = 0x10000 + O_DIRECTORY = 0x20000 + O_EXCL = 0x800 + O_EXEC = 0x40000 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_TTY_INIT = 0x80000 + O_VERIFY = 0x200000 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + RLIMIT_AS = 0xa + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_MEMLOCK = 0x6 + RLIMIT_NOFILE = 0x8 + RLIMIT_NPROC = 0x7 + RLIMIT_RSS = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x8 + RTAX_NETMASK = 0x2 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_FIXEDMTU = 0x80000 + RTF_FMASK = 0x1004d808 + RTF_GATEWAY = 0x2 + RTF_GWFLAG_COMPAT = 0x80000000 + RTF_HOST = 0x4 + RTF_LLDATA = 0x400 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MODIFIED = 0x20 + RTF_MULTICAST = 0x800000 + RTF_PINNED = 0x100000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x40000 + RTF_REJECT = 0x8 + RTF_RNH_LOCKED = 0x40000000 + RTF_STATIC = 0x800 + RTF_STICKY = 0x10000000 + RTF_UP = 0x1 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DELMADDR = 0x10 + RTM_GET = 0x4 + RTM_IEEE80211 = 0x12 + RTM_IFANNOUNCE = 0x11 + RTM_IFINFO = 0xe + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_NEWMADDR = 0xf + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_VERSION = 0x5 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RTV_WEIGHT = 0x100 + RT_ALL_FIBS = -0x1 + RT_BLACKHOLE = 0x40 + RT_CACHING_CONTEXT = 0x1 + RT_DEFAULT_FIB = 0x0 + RT_HAS_GW = 0x80 + RT_HAS_HEADER = 0x10 + RT_HAS_HEADER_BIT = 0x4 + RT_L2_ME = 0x4 + RT_L2_ME_BIT = 0x2 + RT_LLE_CACHE = 0x100 + RT_MAY_LOOP = 0x8 + RT_MAY_LOOP_BIT = 0x3 + RT_NORTREF = 0x2 + RT_REJECT = 0x20 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_BINTIME = 0x4 + SCM_CREDS = 0x3 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x2 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCAIFGROUP = 0x80286987 + SIOCATMARK = 0x40047307 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFGROUP = 0x80286989 + SIOCDIFPHYADDR = 0x80206949 + SIOCGDRVSPEC = 0xc028697b + SIOCGETSGCNT = 0xc0207210 + SIOCGETVIFCNT = 0xc028720f + SIOCGHIWAT = 0x40047301 + SIOCGI2C = 0xc020693d + SIOCGIFADDR = 0xc0206921 + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCAP = 0xc020691f + SIOCGIFCONF = 0xc0106924 + SIOCGIFDESCR = 0xc020692a + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFIB = 0xc020695c + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGENERIC = 0xc020693a + SIOCGIFGMEMB = 0xc028698a + SIOCGIFGROUP = 0xc0286988 + SIOCGIFINDEX = 0xc0206920 + SIOCGIFMAC = 0xc0206926 + SIOCGIFMEDIA = 0xc0306938 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc0206933 + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPDSTADDR = 0xc0206948 + SIOCGIFPHYS = 0xc0206935 + SIOCGIFPSRCADDR = 0xc0206947 + SIOCGIFSTATUS = 0xc331693b + SIOCGIFXMEDIA = 0xc030698b + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCGPRIVATE_0 = 0xc0206950 + SIOCGPRIVATE_1 = 0xc0206951 + SIOCGTUNFIB = 0xc020695e + SIOCIFCREATE = 0xc020697a + SIOCIFCREATE2 = 0xc020697c + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc0106978 + SIOCSDRVSPEC = 0x8028697b + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8020690c + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFCAP = 0x8020691e + SIOCSIFDESCR = 0x80206929 + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFIB = 0x8020695d + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGENERIC = 0x80206939 + SIOCSIFLLADDR = 0x8020693c + SIOCSIFMAC = 0x80206927 + SIOCSIFMEDIA = 0xc0206937 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x80206934 + SIOCSIFNAME = 0x80206928 + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPHYADDR = 0x80406946 + SIOCSIFPHYS = 0x80206936 + SIOCSIFRVNET = 0xc020695b + SIOCSIFVNET = 0xc020695a + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SIOCSTUNFIB = 0x8020695f + SOCK_CLOEXEC = 0x10000000 + SOCK_DGRAM = 0x2 + SOCK_MAXADDRLEN = 0xff + SOCK_NONBLOCK = 0x20000000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_ACCEPTFILTER = 0x1000 + SO_BINTIME = 0x2000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LABEL = 0x1009 + SO_LINGER = 0x80 + SO_LISTENINCQLEN = 0x1013 + SO_LISTENQLEN = 0x1012 + SO_LISTENQLIMIT = 0x1011 + SO_NOSIGPIPE = 0x800 + SO_NO_DDP = 0x8000 + SO_NO_OFFLOAD = 0x4000 + SO_OOBINLINE = 0x100 + SO_PEERLABEL = 0x1010 + SO_PROTOCOL = 0x1016 + SO_PROTOTYPE = 0x1016 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_SETFIB = 0x1014 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_TIMESTAMP = 0x400 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SO_USER_COOKIE = 0x1015 + SO_VENDOR = 0x80000000 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IFWHT = 0xe000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISTXT = 0x200 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TAB0 = 0x0 + TAB3 = 0x4 + TABDLY = 0x4 + TCIFLUSH = 0x1 + TCIOFF = 0x3 + TCIOFLUSH = 0x3 + TCION = 0x4 + TCOFLUSH = 0x2 + TCOOFF = 0x1 + TCOON = 0x2 + TCP_CA_NAME_MAX = 0x10 + TCP_CCALGOOPT = 0x41 + TCP_CONGESTION = 0x40 + TCP_FASTOPEN = 0x401 + TCP_FUNCTION_BLK = 0x2000 + TCP_FUNCTION_NAME_LEN_MAX = 0x20 + TCP_INFO = 0x20 + TCP_KEEPCNT = 0x400 + TCP_KEEPIDLE = 0x100 + TCP_KEEPINIT = 0x80 + TCP_KEEPINTVL = 0x200 + TCP_MAXBURST = 0x4 + TCP_MAXHLEN = 0x3c + TCP_MAXOLEN = 0x28 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x4 + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x10 + TCP_MINMSS = 0xd8 + TCP_MSS = 0x218 + TCP_NODELAY = 0x1 + TCP_NOOPT = 0x8 + TCP_NOPUSH = 0x4 + TCP_PCAP_IN = 0x1000 + TCP_PCAP_OUT = 0x800 + TCP_VENDOR = 0x80000000 + TCSAFLUSH = 0x2 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLUSH = 0x80047410 + TIOCGDRAINWAIT = 0x40047456 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGPGRP = 0x40047477 + TIOCGPTN = 0x4004740f + TIOCGSID = 0x40047463 + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGDTRWAIT = 0x4004745a + TIOCMGET = 0x4004746a + TIOCMSDTRWAIT = 0x8004745b + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DCD = 0x40 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCPTMASTER = 0x2000741c + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDRAINWAIT = 0x80047457 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSIG = 0x2004745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x20007465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCTIMESTAMP = 0x40107459 + TIOCUCNTL = 0x80047466 + TOSTOP = 0x400000 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VERASE2 = 0x7 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WCONTINUED = 0x4 + WCOREFLAG = 0x80 + WEXITED = 0x10 + WLINUXCLONE = 0x80000000 + WNOHANG = 0x1 + WNOWAIT = 0x8 + WSTOPPED = 0x2 + WTRAPPED = 0x20 + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x30) + EADDRNOTAVAIL = syscall.Errno(0x31) + EAFNOSUPPORT = syscall.Errno(0x2f) + EAGAIN = syscall.Errno(0x23) + EALREADY = syscall.Errno(0x25) + EAUTH = syscall.Errno(0x50) + EBADF = syscall.Errno(0x9) + EBADMSG = syscall.Errno(0x59) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x55) + ECAPMODE = syscall.Errno(0x5e) + ECHILD = syscall.Errno(0xa) + ECONNABORTED = syscall.Errno(0x35) + ECONNREFUSED = syscall.Errno(0x3d) + ECONNRESET = syscall.Errno(0x36) + EDEADLK = syscall.Errno(0xb) + EDESTADDRREQ = syscall.Errno(0x27) + EDOM = syscall.Errno(0x21) + EDOOFUS = syscall.Errno(0x58) + EDQUOT = syscall.Errno(0x45) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EFTYPE = syscall.Errno(0x4f) + EHOSTDOWN = syscall.Errno(0x40) + EHOSTUNREACH = syscall.Errno(0x41) + EIDRM = syscall.Errno(0x52) + EILSEQ = syscall.Errno(0x56) + EINPROGRESS = syscall.Errno(0x24) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x60) + ELOOP = syscall.Errno(0x3e) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + EMULTIHOP = syscall.Errno(0x5a) + ENAMETOOLONG = syscall.Errno(0x3f) + ENEEDAUTH = syscall.Errno(0x51) + ENETDOWN = syscall.Errno(0x32) + ENETRESET = syscall.Errno(0x34) + ENETUNREACH = syscall.Errno(0x33) + ENFILE = syscall.Errno(0x17) + ENOATTR = syscall.Errno(0x57) + ENOBUFS = syscall.Errno(0x37) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOLINK = syscall.Errno(0x5b) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x53) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCAPABLE = syscall.Errno(0x5d) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTRECOVERABLE = syscall.Errno(0x5f) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x2d) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x2d) + EOVERFLOW = syscall.Errno(0x54) + EOWNERDEAD = syscall.Errno(0x60) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x2e) + EPIPE = syscall.Errno(0x20) + EPROCLIM = syscall.Errno(0x43) + EPROCUNAVAIL = syscall.Errno(0x4c) + EPROGMISMATCH = syscall.Errno(0x4b) + EPROGUNAVAIL = syscall.Errno(0x4a) + EPROTO = syscall.Errno(0x5c) + EPROTONOSUPPORT = syscall.Errno(0x2b) + EPROTOTYPE = syscall.Errno(0x29) + ERANGE = syscall.Errno(0x22) + EREMOTE = syscall.Errno(0x47) + EROFS = syscall.Errno(0x1e) + ERPCMISMATCH = syscall.Errno(0x49) + ESHUTDOWN = syscall.Errno(0x3a) + ESOCKTNOSUPPORT = syscall.Errno(0x2c) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESTALE = syscall.Errno(0x46) + ETIMEDOUT = syscall.Errno(0x3c) + ETOOMANYREFS = syscall.Errno(0x3b) + ETXTBSY = syscall.Errno(0x1a) + EUSERS = syscall.Errno(0x44) + EWOULDBLOCK = syscall.Errno(0x23) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x14) + SIGCONT = syscall.Signal(0x13) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINFO = syscall.Signal(0x1d) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x17) + SIGIOT = syscall.Signal(0x6) + SIGKILL = syscall.Signal(0x9) + SIGLIBRT = syscall.Signal(0x21) + SIGLWP = syscall.Signal(0x20) + SIGPIPE = syscall.Signal(0xd) + SIGPROF = syscall.Signal(0x1b) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGTERM = syscall.Signal(0xf) + SIGTHR = syscall.Signal(0x20) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x12) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x10) + SIGUSR1 = syscall.Signal(0x1e) + SIGUSR2 = syscall.Signal(0x1f) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "device not configured"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EDEADLK", "resource deadlock avoided"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "cross-device link"}, + {19, "ENODEV", "operation not supported by device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "result too large"}, + {35, "EAGAIN", "resource temporarily unavailable"}, + {36, "EINPROGRESS", "operation now in progress"}, + {37, "EALREADY", "operation already in progress"}, + {38, "ENOTSOCK", "socket operation on non-socket"}, + {39, "EDESTADDRREQ", "destination address required"}, + {40, "EMSGSIZE", "message too long"}, + {41, "EPROTOTYPE", "protocol wrong type for socket"}, + {42, "ENOPROTOOPT", "protocol not available"}, + {43, "EPROTONOSUPPORT", "protocol not supported"}, + {44, "ESOCKTNOSUPPORT", "socket type not supported"}, + {45, "EOPNOTSUPP", "operation not supported"}, + {46, "EPFNOSUPPORT", "protocol family not supported"}, + {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, + {48, "EADDRINUSE", "address already in use"}, + {49, "EADDRNOTAVAIL", "can't assign requested address"}, + {50, "ENETDOWN", "network is down"}, + {51, "ENETUNREACH", "network is unreachable"}, + {52, "ENETRESET", "network dropped connection on reset"}, + {53, "ECONNABORTED", "software caused connection abort"}, + {54, "ECONNRESET", "connection reset by peer"}, + {55, "ENOBUFS", "no buffer space available"}, + {56, "EISCONN", "socket is already connected"}, + {57, "ENOTCONN", "socket is not connected"}, + {58, "ESHUTDOWN", "can't send after socket shutdown"}, + {59, "ETOOMANYREFS", "too many references: can't splice"}, + {60, "ETIMEDOUT", "operation timed out"}, + {61, "ECONNREFUSED", "connection refused"}, + {62, "ELOOP", "too many levels of symbolic links"}, + {63, "ENAMETOOLONG", "file name too long"}, + {64, "EHOSTDOWN", "host is down"}, + {65, "EHOSTUNREACH", "no route to host"}, + {66, "ENOTEMPTY", "directory not empty"}, + {67, "EPROCLIM", "too many processes"}, + {68, "EUSERS", "too many users"}, + {69, "EDQUOT", "disc quota exceeded"}, + {70, "ESTALE", "stale NFS file handle"}, + {71, "EREMOTE", "too many levels of remote in path"}, + {72, "EBADRPC", "RPC struct is bad"}, + {73, "ERPCMISMATCH", "RPC version wrong"}, + {74, "EPROGUNAVAIL", "RPC prog. not avail"}, + {75, "EPROGMISMATCH", "program version wrong"}, + {76, "EPROCUNAVAIL", "bad procedure for program"}, + {77, "ENOLCK", "no locks available"}, + {78, "ENOSYS", "function not implemented"}, + {79, "EFTYPE", "inappropriate file type or format"}, + {80, "EAUTH", "authentication error"}, + {81, "ENEEDAUTH", "need authenticator"}, + {82, "EIDRM", "identifier removed"}, + {83, "ENOMSG", "no message of desired type"}, + {84, "EOVERFLOW", "value too large to be stored in data type"}, + {85, "ECANCELED", "operation canceled"}, + {86, "EILSEQ", "illegal byte sequence"}, + {87, "ENOATTR", "attribute not found"}, + {88, "EDOOFUS", "programming error"}, + {89, "EBADMSG", "bad message"}, + {90, "EMULTIHOP", "multihop attempted"}, + {91, "ENOLINK", "link has been severed"}, + {92, "EPROTO", "protocol error"}, + {93, "ENOTCAPABLE", "capabilities insufficient"}, + {94, "ECAPMODE", "not permitted in capability mode"}, + {95, "ENOTRECOVERABLE", "state not recoverable"}, + {96, "EOWNERDEAD", "previous owner died"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/BPT trap"}, + {6, "SIGIOT", "abort trap"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGURG", "urgent I/O condition"}, + {17, "SIGSTOP", "suspended (signal)"}, + {18, "SIGTSTP", "suspended"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible"}, + {24, "SIGXCPU", "cputime limit exceeded"}, + {25, "SIGXFSZ", "filesize limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window size changes"}, + {29, "SIGINFO", "information request"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, + {32, "SIGTHR", "unknown signal"}, + {33, "SIGLIBRT", "unknown signal"}, +} diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go index db3c31ef8..700897547 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go @@ -639,7 +639,7 @@ const ( IFA_F_STABLE_PRIVACY = 0x800 IFA_F_TEMPORARY = 0x1 IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0x9 + IFA_MAX = 0xa IFF_ALLMULTI = 0x200 IFF_ATTACH_QUEUE = 0x200 IFF_AUTOMEDIA = 0x4000 @@ -913,6 +913,11 @@ const ( KEYCTL_JOIN_SESSION_KEYRING = 0x1 KEYCTL_LINK = 0x8 KEYCTL_NEGATE = 0xd + KEYCTL_PKEY_DECRYPT = 0x1a + KEYCTL_PKEY_ENCRYPT = 0x19 + KEYCTL_PKEY_QUERY = 0x18 + KEYCTL_PKEY_SIGN = 0x1b + KEYCTL_PKEY_VERIFY = 0x1c KEYCTL_READ = 0xb KEYCTL_REJECT = 0x13 KEYCTL_RESTRICT_KEYRING = 0x1d @@ -922,6 +927,10 @@ const ( KEYCTL_SETPERM = 0x5 KEYCTL_SET_REQKEY_KEYRING = 0xe KEYCTL_SET_TIMEOUT = 0xf + KEYCTL_SUPPORTS_DECRYPT = 0x2 + KEYCTL_SUPPORTS_ENCRYPT = 0x1 + KEYCTL_SUPPORTS_SIGN = 0x4 + KEYCTL_SUPPORTS_VERIFY = 0x8 KEYCTL_UNLINK = 0x9 KEYCTL_UPDATE = 0x2 KEY_REQKEY_DEFL_DEFAULT = 0x0 @@ -1101,6 +1110,7 @@ const ( NETLINK_FIB_LOOKUP = 0xa NETLINK_FIREWALL = 0x3 NETLINK_GENERIC = 0x10 + NETLINK_GET_STRICT_CHK = 0xc NETLINK_INET_DIAG = 0x4 NETLINK_IP6_FW = 0xd NETLINK_ISCSI = 0x8 @@ -1244,6 +1254,7 @@ const ( PACKET_FASTROUTE = 0x6 PACKET_HDRLEN = 0xb PACKET_HOST = 0x0 + PACKET_IGNORE_OUTGOING = 0x17 PACKET_KERNEL = 0x7 PACKET_LOOPBACK = 0x5 PACKET_LOSS = 0xe @@ -1424,6 +1435,7 @@ const ( PR_SPEC_DISABLE = 0x4 PR_SPEC_ENABLE = 0x2 PR_SPEC_FORCE_DISABLE = 0x8 + PR_SPEC_INDIRECT_BRANCH = 0x1 PR_SPEC_NOT_AFFECTED = 0x0 PR_SPEC_PRCTL = 0x1 PR_SPEC_STORE_BYPASS = 0x0 @@ -1732,6 +1744,8 @@ const ( SECCOMP_MODE_STRICT = 0x1 SECURITYFS_MAGIC = 0x73636673 SELINUX_MAGIC = 0xf97cff8c + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x800 SHUT_RD = 0x0 SHUT_RDWR = 0x2 SHUT_WR = 0x1 @@ -2012,7 +2026,7 @@ const ( TASKSTATS_GENL_NAME = "TASKSTATS" TASKSTATS_GENL_VERSION = 0x1 TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0x8 + TASKSTATS_VERSION = 0x9 TCFLSH = 0x540b TCGETA = 0x5405 TCGETS = 0x5401 @@ -2089,6 +2103,7 @@ const ( TCSETXF = 0x5434 TCSETXW = 0x5435 TCXONC = 0x540a + TIMER_ABSTIME = 0x1 TIOCCBRK = 0x5428 TIOCCONS = 0x541d TIOCEXCL = 0x540c @@ -2096,6 +2111,7 @@ const ( TIOCGETD = 0x5424 TIOCGEXCL = 0x80045440 TIOCGICOUNT = 0x545d + TIOCGISO7816 = 0x80285442 TIOCGLCKTRMIOS = 0x5456 TIOCGPGRP = 0x540f TIOCGPKT = 0x80045438 @@ -2149,6 +2165,7 @@ const ( TIOCSER_TEMT = 0x1 TIOCSETD = 0x5423 TIOCSIG = 0x40045436 + TIOCSISO7816 = 0xc0285443 TIOCSLCKTRMIOS = 0x5457 TIOCSPGRP = 0x5410 TIOCSPTLCK = 0x40045431 @@ -2379,6 +2396,7 @@ const ( XDP_UMEM_REG = 0x4 XDP_ZEROCOPY = 0x4 XENFS_SUPER_MAGIC = 0xabba1974 + XFS_SUPER_MAGIC = 0x58465342 XTABS = 0x1800 ZSMALLOC_MAGIC = 0x58295829 ) diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go index 4785835b6..3e8a67bb3 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go @@ -639,7 +639,7 @@ const ( IFA_F_STABLE_PRIVACY = 0x800 IFA_F_TEMPORARY = 0x1 IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0x9 + IFA_MAX = 0xa IFF_ALLMULTI = 0x200 IFF_ATTACH_QUEUE = 0x200 IFF_AUTOMEDIA = 0x4000 @@ -913,6 +913,11 @@ const ( KEYCTL_JOIN_SESSION_KEYRING = 0x1 KEYCTL_LINK = 0x8 KEYCTL_NEGATE = 0xd + KEYCTL_PKEY_DECRYPT = 0x1a + KEYCTL_PKEY_ENCRYPT = 0x19 + KEYCTL_PKEY_QUERY = 0x18 + KEYCTL_PKEY_SIGN = 0x1b + KEYCTL_PKEY_VERIFY = 0x1c KEYCTL_READ = 0xb KEYCTL_REJECT = 0x13 KEYCTL_RESTRICT_KEYRING = 0x1d @@ -922,6 +927,10 @@ const ( KEYCTL_SETPERM = 0x5 KEYCTL_SET_REQKEY_KEYRING = 0xe KEYCTL_SET_TIMEOUT = 0xf + KEYCTL_SUPPORTS_DECRYPT = 0x2 + KEYCTL_SUPPORTS_ENCRYPT = 0x1 + KEYCTL_SUPPORTS_SIGN = 0x4 + KEYCTL_SUPPORTS_VERIFY = 0x8 KEYCTL_UNLINK = 0x9 KEYCTL_UPDATE = 0x2 KEY_REQKEY_DEFL_DEFAULT = 0x0 @@ -1101,6 +1110,7 @@ const ( NETLINK_FIB_LOOKUP = 0xa NETLINK_FIREWALL = 0x3 NETLINK_GENERIC = 0x10 + NETLINK_GET_STRICT_CHK = 0xc NETLINK_INET_DIAG = 0x4 NETLINK_IP6_FW = 0xd NETLINK_ISCSI = 0x8 @@ -1244,6 +1254,7 @@ const ( PACKET_FASTROUTE = 0x6 PACKET_HDRLEN = 0xb PACKET_HOST = 0x0 + PACKET_IGNORE_OUTGOING = 0x17 PACKET_KERNEL = 0x7 PACKET_LOOPBACK = 0x5 PACKET_LOSS = 0xe @@ -1424,6 +1435,7 @@ const ( PR_SPEC_DISABLE = 0x4 PR_SPEC_ENABLE = 0x2 PR_SPEC_FORCE_DISABLE = 0x8 + PR_SPEC_INDIRECT_BRANCH = 0x1 PR_SPEC_NOT_AFFECTED = 0x0 PR_SPEC_PRCTL = 0x1 PR_SPEC_STORE_BYPASS = 0x0 @@ -1733,6 +1745,8 @@ const ( SECCOMP_MODE_STRICT = 0x1 SECURITYFS_MAGIC = 0x73636673 SELINUX_MAGIC = 0xf97cff8c + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x800 SHUT_RD = 0x0 SHUT_RDWR = 0x2 SHUT_WR = 0x1 @@ -2013,7 +2027,7 @@ const ( TASKSTATS_GENL_NAME = "TASKSTATS" TASKSTATS_GENL_VERSION = 0x1 TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0x8 + TASKSTATS_VERSION = 0x9 TCFLSH = 0x540b TCGETA = 0x5405 TCGETS = 0x5401 @@ -2090,6 +2104,7 @@ const ( TCSETXF = 0x5434 TCSETXW = 0x5435 TCXONC = 0x540a + TIMER_ABSTIME = 0x1 TIOCCBRK = 0x5428 TIOCCONS = 0x541d TIOCEXCL = 0x540c @@ -2097,6 +2112,7 @@ const ( TIOCGETD = 0x5424 TIOCGEXCL = 0x80045440 TIOCGICOUNT = 0x545d + TIOCGISO7816 = 0x80285442 TIOCGLCKTRMIOS = 0x5456 TIOCGPGRP = 0x540f TIOCGPKT = 0x80045438 @@ -2150,6 +2166,7 @@ const ( TIOCSER_TEMT = 0x1 TIOCSETD = 0x5423 TIOCSIG = 0x40045436 + TIOCSISO7816 = 0xc0285443 TIOCSLCKTRMIOS = 0x5457 TIOCSPGRP = 0x5410 TIOCSPTLCK = 0x40045431 @@ -2379,6 +2396,7 @@ const ( XDP_UMEM_REG = 0x4 XDP_ZEROCOPY = 0x4 XENFS_SUPER_MAGIC = 0xabba1974 + XFS_SUPER_MAGIC = 0x58465342 XTABS = 0x1800 ZSMALLOC_MAGIC = 0x58295829 ) diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go index 5e902423a..70e97dfbe 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go @@ -638,7 +638,7 @@ const ( IFA_F_STABLE_PRIVACY = 0x800 IFA_F_TEMPORARY = 0x1 IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0x9 + IFA_MAX = 0xa IFF_ALLMULTI = 0x200 IFF_ATTACH_QUEUE = 0x200 IFF_AUTOMEDIA = 0x4000 @@ -912,6 +912,11 @@ const ( KEYCTL_JOIN_SESSION_KEYRING = 0x1 KEYCTL_LINK = 0x8 KEYCTL_NEGATE = 0xd + KEYCTL_PKEY_DECRYPT = 0x1a + KEYCTL_PKEY_ENCRYPT = 0x19 + KEYCTL_PKEY_QUERY = 0x18 + KEYCTL_PKEY_SIGN = 0x1b + KEYCTL_PKEY_VERIFY = 0x1c KEYCTL_READ = 0xb KEYCTL_REJECT = 0x13 KEYCTL_RESTRICT_KEYRING = 0x1d @@ -921,6 +926,10 @@ const ( KEYCTL_SETPERM = 0x5 KEYCTL_SET_REQKEY_KEYRING = 0xe KEYCTL_SET_TIMEOUT = 0xf + KEYCTL_SUPPORTS_DECRYPT = 0x2 + KEYCTL_SUPPORTS_ENCRYPT = 0x1 + KEYCTL_SUPPORTS_SIGN = 0x4 + KEYCTL_SUPPORTS_VERIFY = 0x8 KEYCTL_UNLINK = 0x9 KEYCTL_UPDATE = 0x2 KEY_REQKEY_DEFL_DEFAULT = 0x0 @@ -1099,6 +1108,7 @@ const ( NETLINK_FIB_LOOKUP = 0xa NETLINK_FIREWALL = 0x3 NETLINK_GENERIC = 0x10 + NETLINK_GET_STRICT_CHK = 0xc NETLINK_INET_DIAG = 0x4 NETLINK_IP6_FW = 0xd NETLINK_ISCSI = 0x8 @@ -1242,6 +1252,7 @@ const ( PACKET_FASTROUTE = 0x6 PACKET_HDRLEN = 0xb PACKET_HOST = 0x0 + PACKET_IGNORE_OUTGOING = 0x17 PACKET_KERNEL = 0x7 PACKET_LOOPBACK = 0x5 PACKET_LOSS = 0xe @@ -1422,6 +1433,7 @@ const ( PR_SPEC_DISABLE = 0x4 PR_SPEC_ENABLE = 0x2 PR_SPEC_FORCE_DISABLE = 0x8 + PR_SPEC_INDIRECT_BRANCH = 0x1 PR_SPEC_NOT_AFFECTED = 0x0 PR_SPEC_PRCTL = 0x1 PR_SPEC_STORE_BYPASS = 0x0 @@ -1739,6 +1751,8 @@ const ( SECCOMP_MODE_STRICT = 0x1 SECURITYFS_MAGIC = 0x73636673 SELINUX_MAGIC = 0xf97cff8c + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x800 SHUT_RD = 0x0 SHUT_RDWR = 0x2 SHUT_WR = 0x1 @@ -2019,7 +2033,7 @@ const ( TASKSTATS_GENL_NAME = "TASKSTATS" TASKSTATS_GENL_VERSION = 0x1 TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0x8 + TASKSTATS_VERSION = 0x9 TCFLSH = 0x540b TCGETA = 0x5405 TCGETS = 0x5401 @@ -2096,6 +2110,7 @@ const ( TCSETXF = 0x5434 TCSETXW = 0x5435 TCXONC = 0x540a + TIMER_ABSTIME = 0x1 TIOCCBRK = 0x5428 TIOCCONS = 0x541d TIOCEXCL = 0x540c @@ -2103,6 +2118,7 @@ const ( TIOCGETD = 0x5424 TIOCGEXCL = 0x80045440 TIOCGICOUNT = 0x545d + TIOCGISO7816 = 0x80285442 TIOCGLCKTRMIOS = 0x5456 TIOCGPGRP = 0x540f TIOCGPKT = 0x80045438 @@ -2156,6 +2172,7 @@ const ( TIOCSER_TEMT = 0x1 TIOCSETD = 0x5423 TIOCSIG = 0x40045436 + TIOCSISO7816 = 0xc0285443 TIOCSLCKTRMIOS = 0x5457 TIOCSPGRP = 0x5410 TIOCSPTLCK = 0x40045431 @@ -2385,6 +2402,7 @@ const ( XDP_UMEM_REG = 0x4 XDP_ZEROCOPY = 0x4 XENFS_SUPER_MAGIC = 0xabba1974 + XFS_SUPER_MAGIC = 0x58465342 XTABS = 0x1800 ZSMALLOC_MAGIC = 0x58295829 ) diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go index ebe9d8b41..b7a15ff38 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go @@ -641,7 +641,7 @@ const ( IFA_F_STABLE_PRIVACY = 0x800 IFA_F_TEMPORARY = 0x1 IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0x9 + IFA_MAX = 0xa IFF_ALLMULTI = 0x200 IFF_ATTACH_QUEUE = 0x200 IFF_AUTOMEDIA = 0x4000 @@ -915,6 +915,11 @@ const ( KEYCTL_JOIN_SESSION_KEYRING = 0x1 KEYCTL_LINK = 0x8 KEYCTL_NEGATE = 0xd + KEYCTL_PKEY_DECRYPT = 0x1a + KEYCTL_PKEY_ENCRYPT = 0x19 + KEYCTL_PKEY_QUERY = 0x18 + KEYCTL_PKEY_SIGN = 0x1b + KEYCTL_PKEY_VERIFY = 0x1c KEYCTL_READ = 0xb KEYCTL_REJECT = 0x13 KEYCTL_RESTRICT_KEYRING = 0x1d @@ -924,6 +929,10 @@ const ( KEYCTL_SETPERM = 0x5 KEYCTL_SET_REQKEY_KEYRING = 0xe KEYCTL_SET_TIMEOUT = 0xf + KEYCTL_SUPPORTS_DECRYPT = 0x2 + KEYCTL_SUPPORTS_ENCRYPT = 0x1 + KEYCTL_SUPPORTS_SIGN = 0x4 + KEYCTL_SUPPORTS_VERIFY = 0x8 KEYCTL_UNLINK = 0x9 KEYCTL_UPDATE = 0x2 KEY_REQKEY_DEFL_DEFAULT = 0x0 @@ -1102,6 +1111,7 @@ const ( NETLINK_FIB_LOOKUP = 0xa NETLINK_FIREWALL = 0x3 NETLINK_GENERIC = 0x10 + NETLINK_GET_STRICT_CHK = 0xc NETLINK_INET_DIAG = 0x4 NETLINK_IP6_FW = 0xd NETLINK_ISCSI = 0x8 @@ -1245,6 +1255,7 @@ const ( PACKET_FASTROUTE = 0x6 PACKET_HDRLEN = 0xb PACKET_HOST = 0x0 + PACKET_IGNORE_OUTGOING = 0x17 PACKET_KERNEL = 0x7 PACKET_LOOPBACK = 0x5 PACKET_LOSS = 0xe @@ -1425,6 +1436,7 @@ const ( PR_SPEC_DISABLE = 0x4 PR_SPEC_ENABLE = 0x2 PR_SPEC_FORCE_DISABLE = 0x8 + PR_SPEC_INDIRECT_BRANCH = 0x1 PR_SPEC_NOT_AFFECTED = 0x0 PR_SPEC_PRCTL = 0x1 PR_SPEC_STORE_BYPASS = 0x0 @@ -1723,6 +1735,8 @@ const ( SECCOMP_MODE_STRICT = 0x1 SECURITYFS_MAGIC = 0x73636673 SELINUX_MAGIC = 0xf97cff8c + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x800 SHUT_RD = 0x0 SHUT_RDWR = 0x2 SHUT_WR = 0x1 @@ -2004,7 +2018,7 @@ const ( TASKSTATS_GENL_NAME = "TASKSTATS" TASKSTATS_GENL_VERSION = 0x1 TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0x8 + TASKSTATS_VERSION = 0x9 TCFLSH = 0x540b TCGETA = 0x5405 TCGETS = 0x5401 @@ -2081,6 +2095,7 @@ const ( TCSETXF = 0x5434 TCSETXW = 0x5435 TCXONC = 0x540a + TIMER_ABSTIME = 0x1 TIOCCBRK = 0x5428 TIOCCONS = 0x541d TIOCEXCL = 0x540c @@ -2088,6 +2103,7 @@ const ( TIOCGETD = 0x5424 TIOCGEXCL = 0x80045440 TIOCGICOUNT = 0x545d + TIOCGISO7816 = 0x80285442 TIOCGLCKTRMIOS = 0x5456 TIOCGPGRP = 0x540f TIOCGPKT = 0x80045438 @@ -2141,6 +2157,7 @@ const ( TIOCSER_TEMT = 0x1 TIOCSETD = 0x5423 TIOCSIG = 0x40045436 + TIOCSISO7816 = 0xc0285443 TIOCSLCKTRMIOS = 0x5457 TIOCSPGRP = 0x5410 TIOCSPTLCK = 0x40045431 @@ -2370,6 +2387,7 @@ const ( XDP_UMEM_REG = 0x4 XDP_ZEROCOPY = 0x4 XENFS_SUPER_MAGIC = 0xabba1974 + XFS_SUPER_MAGIC = 0x58465342 XTABS = 0x1800 ZSMALLOC_MAGIC = 0x58295829 ) diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go index d467d211b..fe4cd19f5 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go @@ -638,7 +638,7 @@ const ( IFA_F_STABLE_PRIVACY = 0x800 IFA_F_TEMPORARY = 0x1 IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0x9 + IFA_MAX = 0xa IFF_ALLMULTI = 0x200 IFF_ATTACH_QUEUE = 0x200 IFF_AUTOMEDIA = 0x4000 @@ -912,6 +912,11 @@ const ( KEYCTL_JOIN_SESSION_KEYRING = 0x1 KEYCTL_LINK = 0x8 KEYCTL_NEGATE = 0xd + KEYCTL_PKEY_DECRYPT = 0x1a + KEYCTL_PKEY_ENCRYPT = 0x19 + KEYCTL_PKEY_QUERY = 0x18 + KEYCTL_PKEY_SIGN = 0x1b + KEYCTL_PKEY_VERIFY = 0x1c KEYCTL_READ = 0xb KEYCTL_REJECT = 0x13 KEYCTL_RESTRICT_KEYRING = 0x1d @@ -921,6 +926,10 @@ const ( KEYCTL_SETPERM = 0x5 KEYCTL_SET_REQKEY_KEYRING = 0xe KEYCTL_SET_TIMEOUT = 0xf + KEYCTL_SUPPORTS_DECRYPT = 0x2 + KEYCTL_SUPPORTS_ENCRYPT = 0x1 + KEYCTL_SUPPORTS_SIGN = 0x4 + KEYCTL_SUPPORTS_VERIFY = 0x8 KEYCTL_UNLINK = 0x9 KEYCTL_UPDATE = 0x2 KEY_REQKEY_DEFL_DEFAULT = 0x0 @@ -1099,6 +1108,7 @@ const ( NETLINK_FIB_LOOKUP = 0xa NETLINK_FIREWALL = 0x3 NETLINK_GENERIC = 0x10 + NETLINK_GET_STRICT_CHK = 0xc NETLINK_INET_DIAG = 0x4 NETLINK_IP6_FW = 0xd NETLINK_ISCSI = 0x8 @@ -1242,6 +1252,7 @@ const ( PACKET_FASTROUTE = 0x6 PACKET_HDRLEN = 0xb PACKET_HOST = 0x0 + PACKET_IGNORE_OUTGOING = 0x17 PACKET_KERNEL = 0x7 PACKET_LOOPBACK = 0x5 PACKET_LOSS = 0xe @@ -1422,6 +1433,7 @@ const ( PR_SPEC_DISABLE = 0x4 PR_SPEC_ENABLE = 0x2 PR_SPEC_FORCE_DISABLE = 0x8 + PR_SPEC_INDIRECT_BRANCH = 0x1 PR_SPEC_NOT_AFFECTED = 0x0 PR_SPEC_PRCTL = 0x1 PR_SPEC_STORE_BYPASS = 0x0 @@ -1732,6 +1744,8 @@ const ( SECCOMP_MODE_STRICT = 0x1 SECURITYFS_MAGIC = 0x73636673 SELINUX_MAGIC = 0xf97cff8c + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x80 SHUT_RD = 0x0 SHUT_RDWR = 0x2 SHUT_WR = 0x1 @@ -2013,7 +2027,7 @@ const ( TASKSTATS_GENL_NAME = "TASKSTATS" TASKSTATS_GENL_VERSION = 0x1 TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0x8 + TASKSTATS_VERSION = 0x9 TCFLSH = 0x5407 TCGETA = 0x5401 TCGETS = 0x540d @@ -2086,6 +2100,7 @@ const ( TCSETSW = 0x540f TCSETSW2 = 0x8030542c TCXONC = 0x5406 + TIMER_ABSTIME = 0x1 TIOCCBRK = 0x5428 TIOCCONS = 0x80047478 TIOCEXCL = 0x740d @@ -2094,6 +2109,7 @@ const ( TIOCGETP = 0x7408 TIOCGEXCL = 0x40045440 TIOCGICOUNT = 0x5492 + TIOCGISO7816 = 0x40285442 TIOCGLCKTRMIOS = 0x548b TIOCGLTC = 0x7474 TIOCGPGRP = 0x40047477 @@ -2150,6 +2166,7 @@ const ( TIOCSETN = 0x740a TIOCSETP = 0x7409 TIOCSIG = 0x80045436 + TIOCSISO7816 = 0xc0285443 TIOCSLCKTRMIOS = 0x548c TIOCSLTC = 0x7475 TIOCSPGRP = 0x80047476 @@ -2381,6 +2398,7 @@ const ( XDP_UMEM_REG = 0x4 XDP_ZEROCOPY = 0x4 XENFS_SUPER_MAGIC = 0xabba1974 + XFS_SUPER_MAGIC = 0x58465342 XTABS = 0x1800 ZSMALLOC_MAGIC = 0x58295829 ) diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go index 9c293ed13..07914ea49 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go @@ -638,7 +638,7 @@ const ( IFA_F_STABLE_PRIVACY = 0x800 IFA_F_TEMPORARY = 0x1 IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0x9 + IFA_MAX = 0xa IFF_ALLMULTI = 0x200 IFF_ATTACH_QUEUE = 0x200 IFF_AUTOMEDIA = 0x4000 @@ -912,6 +912,11 @@ const ( KEYCTL_JOIN_SESSION_KEYRING = 0x1 KEYCTL_LINK = 0x8 KEYCTL_NEGATE = 0xd + KEYCTL_PKEY_DECRYPT = 0x1a + KEYCTL_PKEY_ENCRYPT = 0x19 + KEYCTL_PKEY_QUERY = 0x18 + KEYCTL_PKEY_SIGN = 0x1b + KEYCTL_PKEY_VERIFY = 0x1c KEYCTL_READ = 0xb KEYCTL_REJECT = 0x13 KEYCTL_RESTRICT_KEYRING = 0x1d @@ -921,6 +926,10 @@ const ( KEYCTL_SETPERM = 0x5 KEYCTL_SET_REQKEY_KEYRING = 0xe KEYCTL_SET_TIMEOUT = 0xf + KEYCTL_SUPPORTS_DECRYPT = 0x2 + KEYCTL_SUPPORTS_ENCRYPT = 0x1 + KEYCTL_SUPPORTS_SIGN = 0x4 + KEYCTL_SUPPORTS_VERIFY = 0x8 KEYCTL_UNLINK = 0x9 KEYCTL_UPDATE = 0x2 KEY_REQKEY_DEFL_DEFAULT = 0x0 @@ -1099,6 +1108,7 @@ const ( NETLINK_FIB_LOOKUP = 0xa NETLINK_FIREWALL = 0x3 NETLINK_GENERIC = 0x10 + NETLINK_GET_STRICT_CHK = 0xc NETLINK_INET_DIAG = 0x4 NETLINK_IP6_FW = 0xd NETLINK_ISCSI = 0x8 @@ -1242,6 +1252,7 @@ const ( PACKET_FASTROUTE = 0x6 PACKET_HDRLEN = 0xb PACKET_HOST = 0x0 + PACKET_IGNORE_OUTGOING = 0x17 PACKET_KERNEL = 0x7 PACKET_LOOPBACK = 0x5 PACKET_LOSS = 0xe @@ -1422,6 +1433,7 @@ const ( PR_SPEC_DISABLE = 0x4 PR_SPEC_ENABLE = 0x2 PR_SPEC_FORCE_DISABLE = 0x8 + PR_SPEC_INDIRECT_BRANCH = 0x1 PR_SPEC_NOT_AFFECTED = 0x0 PR_SPEC_PRCTL = 0x1 PR_SPEC_STORE_BYPASS = 0x0 @@ -1732,6 +1744,8 @@ const ( SECCOMP_MODE_STRICT = 0x1 SECURITYFS_MAGIC = 0x73636673 SELINUX_MAGIC = 0xf97cff8c + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x80 SHUT_RD = 0x0 SHUT_RDWR = 0x2 SHUT_WR = 0x1 @@ -2013,7 +2027,7 @@ const ( TASKSTATS_GENL_NAME = "TASKSTATS" TASKSTATS_GENL_VERSION = 0x1 TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0x8 + TASKSTATS_VERSION = 0x9 TCFLSH = 0x5407 TCGETA = 0x5401 TCGETS = 0x540d @@ -2086,6 +2100,7 @@ const ( TCSETSW = 0x540f TCSETSW2 = 0x8030542c TCXONC = 0x5406 + TIMER_ABSTIME = 0x1 TIOCCBRK = 0x5428 TIOCCONS = 0x80047478 TIOCEXCL = 0x740d @@ -2094,6 +2109,7 @@ const ( TIOCGETP = 0x7408 TIOCGEXCL = 0x40045440 TIOCGICOUNT = 0x5492 + TIOCGISO7816 = 0x40285442 TIOCGLCKTRMIOS = 0x548b TIOCGLTC = 0x7474 TIOCGPGRP = 0x40047477 @@ -2150,6 +2166,7 @@ const ( TIOCSETN = 0x740a TIOCSETP = 0x7409 TIOCSIG = 0x80045436 + TIOCSISO7816 = 0xc0285443 TIOCSLCKTRMIOS = 0x548c TIOCSLTC = 0x7475 TIOCSPGRP = 0x80047476 @@ -2381,6 +2398,7 @@ const ( XDP_UMEM_REG = 0x4 XDP_ZEROCOPY = 0x4 XENFS_SUPER_MAGIC = 0xabba1974 + XFS_SUPER_MAGIC = 0x58465342 XTABS = 0x1800 ZSMALLOC_MAGIC = 0x58295829 ) diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go index e2162508c..235c5649b 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go @@ -638,7 +638,7 @@ const ( IFA_F_STABLE_PRIVACY = 0x800 IFA_F_TEMPORARY = 0x1 IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0x9 + IFA_MAX = 0xa IFF_ALLMULTI = 0x200 IFF_ATTACH_QUEUE = 0x200 IFF_AUTOMEDIA = 0x4000 @@ -912,6 +912,11 @@ const ( KEYCTL_JOIN_SESSION_KEYRING = 0x1 KEYCTL_LINK = 0x8 KEYCTL_NEGATE = 0xd + KEYCTL_PKEY_DECRYPT = 0x1a + KEYCTL_PKEY_ENCRYPT = 0x19 + KEYCTL_PKEY_QUERY = 0x18 + KEYCTL_PKEY_SIGN = 0x1b + KEYCTL_PKEY_VERIFY = 0x1c KEYCTL_READ = 0xb KEYCTL_REJECT = 0x13 KEYCTL_RESTRICT_KEYRING = 0x1d @@ -921,6 +926,10 @@ const ( KEYCTL_SETPERM = 0x5 KEYCTL_SET_REQKEY_KEYRING = 0xe KEYCTL_SET_TIMEOUT = 0xf + KEYCTL_SUPPORTS_DECRYPT = 0x2 + KEYCTL_SUPPORTS_ENCRYPT = 0x1 + KEYCTL_SUPPORTS_SIGN = 0x4 + KEYCTL_SUPPORTS_VERIFY = 0x8 KEYCTL_UNLINK = 0x9 KEYCTL_UPDATE = 0x2 KEY_REQKEY_DEFL_DEFAULT = 0x0 @@ -1099,6 +1108,7 @@ const ( NETLINK_FIB_LOOKUP = 0xa NETLINK_FIREWALL = 0x3 NETLINK_GENERIC = 0x10 + NETLINK_GET_STRICT_CHK = 0xc NETLINK_INET_DIAG = 0x4 NETLINK_IP6_FW = 0xd NETLINK_ISCSI = 0x8 @@ -1242,6 +1252,7 @@ const ( PACKET_FASTROUTE = 0x6 PACKET_HDRLEN = 0xb PACKET_HOST = 0x0 + PACKET_IGNORE_OUTGOING = 0x17 PACKET_KERNEL = 0x7 PACKET_LOOPBACK = 0x5 PACKET_LOSS = 0xe @@ -1422,6 +1433,7 @@ const ( PR_SPEC_DISABLE = 0x4 PR_SPEC_ENABLE = 0x2 PR_SPEC_FORCE_DISABLE = 0x8 + PR_SPEC_INDIRECT_BRANCH = 0x1 PR_SPEC_NOT_AFFECTED = 0x0 PR_SPEC_PRCTL = 0x1 PR_SPEC_STORE_BYPASS = 0x0 @@ -1732,6 +1744,8 @@ const ( SECCOMP_MODE_STRICT = 0x1 SECURITYFS_MAGIC = 0x73636673 SELINUX_MAGIC = 0xf97cff8c + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x80 SHUT_RD = 0x0 SHUT_RDWR = 0x2 SHUT_WR = 0x1 @@ -2013,7 +2027,7 @@ const ( TASKSTATS_GENL_NAME = "TASKSTATS" TASKSTATS_GENL_VERSION = 0x1 TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0x8 + TASKSTATS_VERSION = 0x9 TCFLSH = 0x5407 TCGETA = 0x5401 TCGETS = 0x540d @@ -2086,6 +2100,7 @@ const ( TCSETSW = 0x540f TCSETSW2 = 0x8030542c TCXONC = 0x5406 + TIMER_ABSTIME = 0x1 TIOCCBRK = 0x5428 TIOCCONS = 0x80047478 TIOCEXCL = 0x740d @@ -2094,6 +2109,7 @@ const ( TIOCGETP = 0x7408 TIOCGEXCL = 0x40045440 TIOCGICOUNT = 0x5492 + TIOCGISO7816 = 0x40285442 TIOCGLCKTRMIOS = 0x548b TIOCGLTC = 0x7474 TIOCGPGRP = 0x40047477 @@ -2150,6 +2166,7 @@ const ( TIOCSETN = 0x740a TIOCSETP = 0x7409 TIOCSIG = 0x80045436 + TIOCSISO7816 = 0xc0285443 TIOCSLCKTRMIOS = 0x548c TIOCSLTC = 0x7475 TIOCSPGRP = 0x80047476 @@ -2381,6 +2398,7 @@ const ( XDP_UMEM_REG = 0x4 XDP_ZEROCOPY = 0x4 XENFS_SUPER_MAGIC = 0xabba1974 + XFS_SUPER_MAGIC = 0x58465342 XTABS = 0x1800 ZSMALLOC_MAGIC = 0x58295829 ) diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go index 836c0c654..cd3164f0d 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go @@ -638,7 +638,7 @@ const ( IFA_F_STABLE_PRIVACY = 0x800 IFA_F_TEMPORARY = 0x1 IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0x9 + IFA_MAX = 0xa IFF_ALLMULTI = 0x200 IFF_ATTACH_QUEUE = 0x200 IFF_AUTOMEDIA = 0x4000 @@ -912,6 +912,11 @@ const ( KEYCTL_JOIN_SESSION_KEYRING = 0x1 KEYCTL_LINK = 0x8 KEYCTL_NEGATE = 0xd + KEYCTL_PKEY_DECRYPT = 0x1a + KEYCTL_PKEY_ENCRYPT = 0x19 + KEYCTL_PKEY_QUERY = 0x18 + KEYCTL_PKEY_SIGN = 0x1b + KEYCTL_PKEY_VERIFY = 0x1c KEYCTL_READ = 0xb KEYCTL_REJECT = 0x13 KEYCTL_RESTRICT_KEYRING = 0x1d @@ -921,6 +926,10 @@ const ( KEYCTL_SETPERM = 0x5 KEYCTL_SET_REQKEY_KEYRING = 0xe KEYCTL_SET_TIMEOUT = 0xf + KEYCTL_SUPPORTS_DECRYPT = 0x2 + KEYCTL_SUPPORTS_ENCRYPT = 0x1 + KEYCTL_SUPPORTS_SIGN = 0x4 + KEYCTL_SUPPORTS_VERIFY = 0x8 KEYCTL_UNLINK = 0x9 KEYCTL_UPDATE = 0x2 KEY_REQKEY_DEFL_DEFAULT = 0x0 @@ -1099,6 +1108,7 @@ const ( NETLINK_FIB_LOOKUP = 0xa NETLINK_FIREWALL = 0x3 NETLINK_GENERIC = 0x10 + NETLINK_GET_STRICT_CHK = 0xc NETLINK_INET_DIAG = 0x4 NETLINK_IP6_FW = 0xd NETLINK_ISCSI = 0x8 @@ -1242,6 +1252,7 @@ const ( PACKET_FASTROUTE = 0x6 PACKET_HDRLEN = 0xb PACKET_HOST = 0x0 + PACKET_IGNORE_OUTGOING = 0x17 PACKET_KERNEL = 0x7 PACKET_LOOPBACK = 0x5 PACKET_LOSS = 0xe @@ -1422,6 +1433,7 @@ const ( PR_SPEC_DISABLE = 0x4 PR_SPEC_ENABLE = 0x2 PR_SPEC_FORCE_DISABLE = 0x8 + PR_SPEC_INDIRECT_BRANCH = 0x1 PR_SPEC_NOT_AFFECTED = 0x0 PR_SPEC_PRCTL = 0x1 PR_SPEC_STORE_BYPASS = 0x0 @@ -1732,6 +1744,8 @@ const ( SECCOMP_MODE_STRICT = 0x1 SECURITYFS_MAGIC = 0x73636673 SELINUX_MAGIC = 0xf97cff8c + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x80 SHUT_RD = 0x0 SHUT_RDWR = 0x2 SHUT_WR = 0x1 @@ -2013,7 +2027,7 @@ const ( TASKSTATS_GENL_NAME = "TASKSTATS" TASKSTATS_GENL_VERSION = 0x1 TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0x8 + TASKSTATS_VERSION = 0x9 TCFLSH = 0x5407 TCGETA = 0x5401 TCGETS = 0x540d @@ -2086,6 +2100,7 @@ const ( TCSETSW = 0x540f TCSETSW2 = 0x8030542c TCXONC = 0x5406 + TIMER_ABSTIME = 0x1 TIOCCBRK = 0x5428 TIOCCONS = 0x80047478 TIOCEXCL = 0x740d @@ -2094,6 +2109,7 @@ const ( TIOCGETP = 0x7408 TIOCGEXCL = 0x40045440 TIOCGICOUNT = 0x5492 + TIOCGISO7816 = 0x40285442 TIOCGLCKTRMIOS = 0x548b TIOCGLTC = 0x7474 TIOCGPGRP = 0x40047477 @@ -2150,6 +2166,7 @@ const ( TIOCSETN = 0x740a TIOCSETP = 0x7409 TIOCSIG = 0x80045436 + TIOCSISO7816 = 0xc0285443 TIOCSLCKTRMIOS = 0x548c TIOCSLTC = 0x7475 TIOCSPGRP = 0x80047476 @@ -2381,6 +2398,7 @@ const ( XDP_UMEM_REG = 0x4 XDP_ZEROCOPY = 0x4 XENFS_SUPER_MAGIC = 0xabba1974 + XFS_SUPER_MAGIC = 0x58465342 XTABS = 0x1800 ZSMALLOC_MAGIC = 0x58295829 ) diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go index 7ca618431..9813b22cf 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go @@ -638,7 +638,7 @@ const ( IFA_F_STABLE_PRIVACY = 0x800 IFA_F_TEMPORARY = 0x1 IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0x9 + IFA_MAX = 0xa IFF_ALLMULTI = 0x200 IFF_ATTACH_QUEUE = 0x200 IFF_AUTOMEDIA = 0x4000 @@ -912,6 +912,11 @@ const ( KEYCTL_JOIN_SESSION_KEYRING = 0x1 KEYCTL_LINK = 0x8 KEYCTL_NEGATE = 0xd + KEYCTL_PKEY_DECRYPT = 0x1a + KEYCTL_PKEY_ENCRYPT = 0x19 + KEYCTL_PKEY_QUERY = 0x18 + KEYCTL_PKEY_SIGN = 0x1b + KEYCTL_PKEY_VERIFY = 0x1c KEYCTL_READ = 0xb KEYCTL_REJECT = 0x13 KEYCTL_RESTRICT_KEYRING = 0x1d @@ -921,6 +926,10 @@ const ( KEYCTL_SETPERM = 0x5 KEYCTL_SET_REQKEY_KEYRING = 0xe KEYCTL_SET_TIMEOUT = 0xf + KEYCTL_SUPPORTS_DECRYPT = 0x2 + KEYCTL_SUPPORTS_ENCRYPT = 0x1 + KEYCTL_SUPPORTS_SIGN = 0x4 + KEYCTL_SUPPORTS_VERIFY = 0x8 KEYCTL_UNLINK = 0x9 KEYCTL_UPDATE = 0x2 KEY_REQKEY_DEFL_DEFAULT = 0x0 @@ -1098,6 +1107,7 @@ const ( NETLINK_FIB_LOOKUP = 0xa NETLINK_FIREWALL = 0x3 NETLINK_GENERIC = 0x10 + NETLINK_GET_STRICT_CHK = 0xc NETLINK_INET_DIAG = 0x4 NETLINK_IP6_FW = 0xd NETLINK_ISCSI = 0x8 @@ -1243,6 +1253,7 @@ const ( PACKET_FASTROUTE = 0x6 PACKET_HDRLEN = 0xb PACKET_HOST = 0x0 + PACKET_IGNORE_OUTGOING = 0x17 PACKET_KERNEL = 0x7 PACKET_LOOPBACK = 0x5 PACKET_LOSS = 0xe @@ -1424,6 +1435,7 @@ const ( PR_SPEC_DISABLE = 0x4 PR_SPEC_ENABLE = 0x2 PR_SPEC_FORCE_DISABLE = 0x8 + PR_SPEC_INDIRECT_BRANCH = 0x1 PR_SPEC_NOT_AFFECTED = 0x0 PR_SPEC_PRCTL = 0x1 PR_SPEC_STORE_BYPASS = 0x0 @@ -1502,6 +1514,8 @@ const ( PTRACE_SINGLEBLOCK = 0x100 PTRACE_SINGLESTEP = 0x9 PTRACE_SYSCALL = 0x18 + PTRACE_SYSEMU = 0x1d + PTRACE_SYSEMU_SINGLESTEP = 0x1e PTRACE_TRACEME = 0x0 PT_CCR = 0x26 PT_CTR = 0x23 @@ -1788,6 +1802,8 @@ const ( SECCOMP_MODE_STRICT = 0x1 SECURITYFS_MAGIC = 0x73636673 SELINUX_MAGIC = 0xf97cff8c + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x800 SHUT_RD = 0x0 SHUT_RDWR = 0x2 SHUT_WR = 0x1 @@ -2068,7 +2084,7 @@ const ( TASKSTATS_GENL_NAME = "TASKSTATS" TASKSTATS_GENL_VERSION = 0x1 TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0x8 + TASKSTATS_VERSION = 0x9 TCFLSH = 0x2000741f TCGETA = 0x40147417 TCGETS = 0x402c7413 @@ -2137,6 +2153,7 @@ const ( TCSETSF = 0x802c7416 TCSETSW = 0x802c7415 TCXONC = 0x2000741e + TIMER_ABSTIME = 0x1 TIOCCBRK = 0x5428 TIOCCONS = 0x541d TIOCEXCL = 0x540c @@ -2146,6 +2163,7 @@ const ( TIOCGETP = 0x40067408 TIOCGEXCL = 0x40045440 TIOCGICOUNT = 0x545d + TIOCGISO7816 = 0x40285442 TIOCGLCKTRMIOS = 0x5456 TIOCGLTC = 0x40067474 TIOCGPGRP = 0x40047477 @@ -2206,6 +2224,7 @@ const ( TIOCSETN = 0x8006740a TIOCSETP = 0x80067409 TIOCSIG = 0x80045436 + TIOCSISO7816 = 0xc0285443 TIOCSLCKTRMIOS = 0x5457 TIOCSLTC = 0x80067475 TIOCSPGRP = 0x80047476 @@ -2438,6 +2457,7 @@ const ( XDP_UMEM_REG = 0x4 XDP_ZEROCOPY = 0x4 XENFS_SUPER_MAGIC = 0xabba1974 + XFS_SUPER_MAGIC = 0x58465342 XTABS = 0xc00 ZSMALLOC_MAGIC = 0x58295829 ) diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go index 839ac214c..b0e1d9d55 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go @@ -638,7 +638,7 @@ const ( IFA_F_STABLE_PRIVACY = 0x800 IFA_F_TEMPORARY = 0x1 IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0x9 + IFA_MAX = 0xa IFF_ALLMULTI = 0x200 IFF_ATTACH_QUEUE = 0x200 IFF_AUTOMEDIA = 0x4000 @@ -912,6 +912,11 @@ const ( KEYCTL_JOIN_SESSION_KEYRING = 0x1 KEYCTL_LINK = 0x8 KEYCTL_NEGATE = 0xd + KEYCTL_PKEY_DECRYPT = 0x1a + KEYCTL_PKEY_ENCRYPT = 0x19 + KEYCTL_PKEY_QUERY = 0x18 + KEYCTL_PKEY_SIGN = 0x1b + KEYCTL_PKEY_VERIFY = 0x1c KEYCTL_READ = 0xb KEYCTL_REJECT = 0x13 KEYCTL_RESTRICT_KEYRING = 0x1d @@ -921,6 +926,10 @@ const ( KEYCTL_SETPERM = 0x5 KEYCTL_SET_REQKEY_KEYRING = 0xe KEYCTL_SET_TIMEOUT = 0xf + KEYCTL_SUPPORTS_DECRYPT = 0x2 + KEYCTL_SUPPORTS_ENCRYPT = 0x1 + KEYCTL_SUPPORTS_SIGN = 0x4 + KEYCTL_SUPPORTS_VERIFY = 0x8 KEYCTL_UNLINK = 0x9 KEYCTL_UPDATE = 0x2 KEY_REQKEY_DEFL_DEFAULT = 0x0 @@ -1098,6 +1107,7 @@ const ( NETLINK_FIB_LOOKUP = 0xa NETLINK_FIREWALL = 0x3 NETLINK_GENERIC = 0x10 + NETLINK_GET_STRICT_CHK = 0xc NETLINK_INET_DIAG = 0x4 NETLINK_IP6_FW = 0xd NETLINK_ISCSI = 0x8 @@ -1243,6 +1253,7 @@ const ( PACKET_FASTROUTE = 0x6 PACKET_HDRLEN = 0xb PACKET_HOST = 0x0 + PACKET_IGNORE_OUTGOING = 0x17 PACKET_KERNEL = 0x7 PACKET_LOOPBACK = 0x5 PACKET_LOSS = 0xe @@ -1424,6 +1435,7 @@ const ( PR_SPEC_DISABLE = 0x4 PR_SPEC_ENABLE = 0x2 PR_SPEC_FORCE_DISABLE = 0x8 + PR_SPEC_INDIRECT_BRANCH = 0x1 PR_SPEC_NOT_AFFECTED = 0x0 PR_SPEC_PRCTL = 0x1 PR_SPEC_STORE_BYPASS = 0x0 @@ -1502,6 +1514,8 @@ const ( PTRACE_SINGLEBLOCK = 0x100 PTRACE_SINGLESTEP = 0x9 PTRACE_SYSCALL = 0x18 + PTRACE_SYSEMU = 0x1d + PTRACE_SYSEMU_SINGLESTEP = 0x1e PTRACE_TRACEME = 0x0 PT_CCR = 0x26 PT_CTR = 0x23 @@ -1788,6 +1802,8 @@ const ( SECCOMP_MODE_STRICT = 0x1 SECURITYFS_MAGIC = 0x73636673 SELINUX_MAGIC = 0xf97cff8c + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x800 SHUT_RD = 0x0 SHUT_RDWR = 0x2 SHUT_WR = 0x1 @@ -2068,7 +2084,7 @@ const ( TASKSTATS_GENL_NAME = "TASKSTATS" TASKSTATS_GENL_VERSION = 0x1 TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0x8 + TASKSTATS_VERSION = 0x9 TCFLSH = 0x2000741f TCGETA = 0x40147417 TCGETS = 0x402c7413 @@ -2137,6 +2153,7 @@ const ( TCSETSF = 0x802c7416 TCSETSW = 0x802c7415 TCXONC = 0x2000741e + TIMER_ABSTIME = 0x1 TIOCCBRK = 0x5428 TIOCCONS = 0x541d TIOCEXCL = 0x540c @@ -2146,6 +2163,7 @@ const ( TIOCGETP = 0x40067408 TIOCGEXCL = 0x40045440 TIOCGICOUNT = 0x545d + TIOCGISO7816 = 0x40285442 TIOCGLCKTRMIOS = 0x5456 TIOCGLTC = 0x40067474 TIOCGPGRP = 0x40047477 @@ -2206,6 +2224,7 @@ const ( TIOCSETN = 0x8006740a TIOCSETP = 0x80067409 TIOCSIG = 0x80045436 + TIOCSISO7816 = 0xc0285443 TIOCSLCKTRMIOS = 0x5457 TIOCSLTC = 0x80067475 TIOCSPGRP = 0x80047476 @@ -2438,6 +2457,7 @@ const ( XDP_UMEM_REG = 0x4 XDP_ZEROCOPY = 0x4 XENFS_SUPER_MAGIC = 0xabba1974 + XFS_SUPER_MAGIC = 0x58465342 XTABS = 0xc00 ZSMALLOC_MAGIC = 0x58295829 ) diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go index a747aa1b7..e247244bb 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go @@ -638,7 +638,7 @@ const ( IFA_F_STABLE_PRIVACY = 0x800 IFA_F_TEMPORARY = 0x1 IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0x9 + IFA_MAX = 0xa IFF_ALLMULTI = 0x200 IFF_ATTACH_QUEUE = 0x200 IFF_AUTOMEDIA = 0x4000 @@ -912,6 +912,11 @@ const ( KEYCTL_JOIN_SESSION_KEYRING = 0x1 KEYCTL_LINK = 0x8 KEYCTL_NEGATE = 0xd + KEYCTL_PKEY_DECRYPT = 0x1a + KEYCTL_PKEY_ENCRYPT = 0x19 + KEYCTL_PKEY_QUERY = 0x18 + KEYCTL_PKEY_SIGN = 0x1b + KEYCTL_PKEY_VERIFY = 0x1c KEYCTL_READ = 0xb KEYCTL_REJECT = 0x13 KEYCTL_RESTRICT_KEYRING = 0x1d @@ -921,6 +926,10 @@ const ( KEYCTL_SETPERM = 0x5 KEYCTL_SET_REQKEY_KEYRING = 0xe KEYCTL_SET_TIMEOUT = 0xf + KEYCTL_SUPPORTS_DECRYPT = 0x2 + KEYCTL_SUPPORTS_ENCRYPT = 0x1 + KEYCTL_SUPPORTS_SIGN = 0x4 + KEYCTL_SUPPORTS_VERIFY = 0x8 KEYCTL_UNLINK = 0x9 KEYCTL_UPDATE = 0x2 KEY_REQKEY_DEFL_DEFAULT = 0x0 @@ -1099,6 +1108,7 @@ const ( NETLINK_FIB_LOOKUP = 0xa NETLINK_FIREWALL = 0x3 NETLINK_GENERIC = 0x10 + NETLINK_GET_STRICT_CHK = 0xc NETLINK_INET_DIAG = 0x4 NETLINK_IP6_FW = 0xd NETLINK_ISCSI = 0x8 @@ -1242,6 +1252,7 @@ const ( PACKET_FASTROUTE = 0x6 PACKET_HDRLEN = 0xb PACKET_HOST = 0x0 + PACKET_IGNORE_OUTGOING = 0x17 PACKET_KERNEL = 0x7 PACKET_LOOPBACK = 0x5 PACKET_LOSS = 0xe @@ -1422,6 +1433,7 @@ const ( PR_SPEC_DISABLE = 0x4 PR_SPEC_ENABLE = 0x2 PR_SPEC_FORCE_DISABLE = 0x8 + PR_SPEC_INDIRECT_BRANCH = 0x1 PR_SPEC_NOT_AFFECTED = 0x0 PR_SPEC_PRCTL = 0x1 PR_SPEC_STORE_BYPASS = 0x0 @@ -1720,6 +1732,8 @@ const ( SECCOMP_MODE_STRICT = 0x1 SECURITYFS_MAGIC = 0x73636673 SELINUX_MAGIC = 0xf97cff8c + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x800 SHUT_RD = 0x0 SHUT_RDWR = 0x2 SHUT_WR = 0x1 @@ -2000,7 +2014,7 @@ const ( TASKSTATS_GENL_NAME = "TASKSTATS" TASKSTATS_GENL_VERSION = 0x1 TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0x8 + TASKSTATS_VERSION = 0x9 TCFLSH = 0x540b TCGETA = 0x5405 TCGETS = 0x5401 @@ -2077,6 +2091,7 @@ const ( TCSETXF = 0x5434 TCSETXW = 0x5435 TCXONC = 0x540a + TIMER_ABSTIME = 0x1 TIOCCBRK = 0x5428 TIOCCONS = 0x541d TIOCEXCL = 0x540c @@ -2084,6 +2099,7 @@ const ( TIOCGETD = 0x5424 TIOCGEXCL = 0x80045440 TIOCGICOUNT = 0x545d + TIOCGISO7816 = 0x80285442 TIOCGLCKTRMIOS = 0x5456 TIOCGPGRP = 0x540f TIOCGPKT = 0x80045438 @@ -2137,6 +2153,7 @@ const ( TIOCSER_TEMT = 0x1 TIOCSETD = 0x5423 TIOCSIG = 0x40045436 + TIOCSISO7816 = 0xc0285443 TIOCSLCKTRMIOS = 0x5457 TIOCSPGRP = 0x5410 TIOCSPTLCK = 0x40045431 @@ -2366,6 +2383,7 @@ const ( XDP_UMEM_REG = 0x4 XDP_ZEROCOPY = 0x4 XENFS_SUPER_MAGIC = 0xabba1974 + XFS_SUPER_MAGIC = 0x58465342 XTABS = 0x1800 ZSMALLOC_MAGIC = 0x58295829 ) diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go index 96aff5083..710cfa715 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go @@ -638,7 +638,7 @@ const ( IFA_F_STABLE_PRIVACY = 0x800 IFA_F_TEMPORARY = 0x1 IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0x9 + IFA_MAX = 0xa IFF_ALLMULTI = 0x200 IFF_ATTACH_QUEUE = 0x200 IFF_AUTOMEDIA = 0x4000 @@ -912,6 +912,11 @@ const ( KEYCTL_JOIN_SESSION_KEYRING = 0x1 KEYCTL_LINK = 0x8 KEYCTL_NEGATE = 0xd + KEYCTL_PKEY_DECRYPT = 0x1a + KEYCTL_PKEY_ENCRYPT = 0x19 + KEYCTL_PKEY_QUERY = 0x18 + KEYCTL_PKEY_SIGN = 0x1b + KEYCTL_PKEY_VERIFY = 0x1c KEYCTL_READ = 0xb KEYCTL_REJECT = 0x13 KEYCTL_RESTRICT_KEYRING = 0x1d @@ -921,6 +926,10 @@ const ( KEYCTL_SETPERM = 0x5 KEYCTL_SET_REQKEY_KEYRING = 0xe KEYCTL_SET_TIMEOUT = 0xf + KEYCTL_SUPPORTS_DECRYPT = 0x2 + KEYCTL_SUPPORTS_ENCRYPT = 0x1 + KEYCTL_SUPPORTS_SIGN = 0x4 + KEYCTL_SUPPORTS_VERIFY = 0x8 KEYCTL_UNLINK = 0x9 KEYCTL_UPDATE = 0x2 KEY_REQKEY_DEFL_DEFAULT = 0x0 @@ -1099,6 +1108,7 @@ const ( NETLINK_FIB_LOOKUP = 0xa NETLINK_FIREWALL = 0x3 NETLINK_GENERIC = 0x10 + NETLINK_GET_STRICT_CHK = 0xc NETLINK_INET_DIAG = 0x4 NETLINK_IP6_FW = 0xd NETLINK_ISCSI = 0x8 @@ -1242,6 +1252,7 @@ const ( PACKET_FASTROUTE = 0x6 PACKET_HDRLEN = 0xb PACKET_HOST = 0x0 + PACKET_IGNORE_OUTGOING = 0x17 PACKET_KERNEL = 0x7 PACKET_LOOPBACK = 0x5 PACKET_LOSS = 0xe @@ -1422,6 +1433,7 @@ const ( PR_SPEC_DISABLE = 0x4 PR_SPEC_ENABLE = 0x2 PR_SPEC_FORCE_DISABLE = 0x8 + PR_SPEC_INDIRECT_BRANCH = 0x1 PR_SPEC_NOT_AFFECTED = 0x0 PR_SPEC_PRCTL = 0x1 PR_SPEC_STORE_BYPASS = 0x0 @@ -1793,6 +1805,8 @@ const ( SECCOMP_MODE_STRICT = 0x1 SECURITYFS_MAGIC = 0x73636673 SELINUX_MAGIC = 0xf97cff8c + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x800 SHUT_RD = 0x0 SHUT_RDWR = 0x2 SHUT_WR = 0x1 @@ -2073,7 +2087,7 @@ const ( TASKSTATS_GENL_NAME = "TASKSTATS" TASKSTATS_GENL_VERSION = 0x1 TASKSTATS_TYPE_MAX = 0x6 - TASKSTATS_VERSION = 0x8 + TASKSTATS_VERSION = 0x9 TCFLSH = 0x540b TCGETA = 0x5405 TCGETS = 0x5401 @@ -2150,6 +2164,7 @@ const ( TCSETXF = 0x5434 TCSETXW = 0x5435 TCXONC = 0x540a + TIMER_ABSTIME = 0x1 TIOCCBRK = 0x5428 TIOCCONS = 0x541d TIOCEXCL = 0x540c @@ -2157,6 +2172,7 @@ const ( TIOCGETD = 0x5424 TIOCGEXCL = 0x80045440 TIOCGICOUNT = 0x545d + TIOCGISO7816 = 0x80285442 TIOCGLCKTRMIOS = 0x5456 TIOCGPGRP = 0x540f TIOCGPKT = 0x80045438 @@ -2210,6 +2226,7 @@ const ( TIOCSER_TEMT = 0x1 TIOCSETD = 0x5423 TIOCSIG = 0x40045436 + TIOCSISO7816 = 0xc0285443 TIOCSLCKTRMIOS = 0x5457 TIOCSPGRP = 0x5410 TIOCSPTLCK = 0x40045431 @@ -2439,6 +2456,7 @@ const ( XDP_UMEM_REG = 0x4 XDP_ZEROCOPY = 0x4 XENFS_SUPER_MAGIC = 0xabba1974 + XFS_SUPER_MAGIC = 0x58465342 XTABS = 0x1800 ZSMALLOC_MAGIC = 0x58295829 ) diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go index ba93f3e53..70eb41b72 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go @@ -11,1782 +11,2444 @@ package unix import "syscall" const ( - AF_ALG = 0x26 - AF_APPLETALK = 0x5 - AF_ASH = 0x12 - AF_ATMPVC = 0x8 - AF_ATMSVC = 0x14 - AF_AX25 = 0x3 - AF_BLUETOOTH = 0x1f - AF_BRIDGE = 0x7 - AF_CAIF = 0x25 - AF_CAN = 0x1d - AF_DECnet = 0xc - AF_ECONET = 0x13 - AF_FILE = 0x1 - AF_IB = 0x1b - AF_IEEE802154 = 0x24 - AF_INET = 0x2 - AF_INET6 = 0xa - AF_IPX = 0x4 - AF_IRDA = 0x17 - AF_ISDN = 0x22 - AF_IUCV = 0x20 - AF_KCM = 0x29 - AF_KEY = 0xf - AF_LLC = 0x1a - AF_LOCAL = 0x1 - AF_MAX = 0x2a - AF_MPLS = 0x1c - AF_NETBEUI = 0xd - AF_NETLINK = 0x10 - AF_NETROM = 0x6 - AF_NFC = 0x27 - AF_PACKET = 0x11 - AF_PHONET = 0x23 - AF_PPPOX = 0x18 - AF_RDS = 0x15 - AF_ROSE = 0xb - AF_ROUTE = 0x10 - AF_RXRPC = 0x21 - AF_SECURITY = 0xe - AF_SNA = 0x16 - AF_TIPC = 0x1e - AF_UNIX = 0x1 - AF_UNSPEC = 0x0 - AF_VSOCK = 0x28 - AF_WANPIPE = 0x19 - AF_X25 = 0x9 - ALG_OP_DECRYPT = 0x0 - ALG_OP_ENCRYPT = 0x1 - ALG_SET_AEAD_ASSOCLEN = 0x4 - ALG_SET_AEAD_AUTHSIZE = 0x5 - ALG_SET_IV = 0x2 - ALG_SET_KEY = 0x1 - ALG_SET_OP = 0x3 - ARPHRD_6LOWPAN = 0x339 - ARPHRD_ADAPT = 0x108 - ARPHRD_APPLETLK = 0x8 - ARPHRD_ARCNET = 0x7 - ARPHRD_ASH = 0x30d - ARPHRD_ATM = 0x13 - ARPHRD_AX25 = 0x3 - ARPHRD_BIF = 0x307 - ARPHRD_CAIF = 0x336 - ARPHRD_CAN = 0x118 - ARPHRD_CHAOS = 0x5 - ARPHRD_CISCO = 0x201 - ARPHRD_CSLIP = 0x101 - ARPHRD_CSLIP6 = 0x103 - ARPHRD_DDCMP = 0x205 - ARPHRD_DLCI = 0xf - ARPHRD_ECONET = 0x30e - ARPHRD_EETHER = 0x2 - ARPHRD_ETHER = 0x1 - ARPHRD_EUI64 = 0x1b - ARPHRD_FCAL = 0x311 - ARPHRD_FCFABRIC = 0x313 - ARPHRD_FCPL = 0x312 - ARPHRD_FCPP = 0x310 - ARPHRD_FDDI = 0x306 - ARPHRD_FRAD = 0x302 - ARPHRD_HDLC = 0x201 - ARPHRD_HIPPI = 0x30c - ARPHRD_HWX25 = 0x110 - ARPHRD_IEEE1394 = 0x18 - ARPHRD_IEEE802 = 0x6 - ARPHRD_IEEE80211 = 0x321 - ARPHRD_IEEE80211_PRISM = 0x322 - ARPHRD_IEEE80211_RADIOTAP = 0x323 - ARPHRD_IEEE802154 = 0x324 - ARPHRD_IEEE802154_MONITOR = 0x325 - ARPHRD_IEEE802_TR = 0x320 - ARPHRD_INFINIBAND = 0x20 - ARPHRD_IP6GRE = 0x337 - ARPHRD_IPDDP = 0x309 - ARPHRD_IPGRE = 0x30a - ARPHRD_IRDA = 0x30f - ARPHRD_LAPB = 0x204 - ARPHRD_LOCALTLK = 0x305 - ARPHRD_LOOPBACK = 0x304 - ARPHRD_METRICOM = 0x17 - ARPHRD_NETLINK = 0x338 - ARPHRD_NETROM = 0x0 - ARPHRD_NONE = 0xfffe - ARPHRD_PHONET = 0x334 - ARPHRD_PHONET_PIPE = 0x335 - ARPHRD_PIMREG = 0x30b - ARPHRD_PPP = 0x200 - ARPHRD_PRONET = 0x4 - ARPHRD_RAWHDLC = 0x206 - ARPHRD_ROSE = 0x10e - ARPHRD_RSRVD = 0x104 - ARPHRD_SIT = 0x308 - ARPHRD_SKIP = 0x303 - ARPHRD_SLIP = 0x100 - ARPHRD_SLIP6 = 0x102 - ARPHRD_TUNNEL = 0x300 - ARPHRD_TUNNEL6 = 0x301 - ARPHRD_VOID = 0xffff - ARPHRD_X25 = 0x10f - ASI_LEON_DFLUSH = 0x11 - ASI_LEON_IFLUSH = 0x10 - ASI_LEON_MMUFLUSH = 0x18 - B0 = 0x0 - B1000000 = 0x100c - B110 = 0x3 - B115200 = 0x1002 - B1152000 = 0x100d - B1200 = 0x9 - B134 = 0x4 - B150 = 0x5 - B1500000 = 0x100e - B153600 = 0x1006 - B1800 = 0xa - B19200 = 0xe - B200 = 0x6 - B2000000 = 0x100f - B230400 = 0x1003 - B2400 = 0xb - B300 = 0x7 - B307200 = 0x1007 - B38400 = 0xf - B460800 = 0x1004 - B4800 = 0xc - B50 = 0x1 - B500000 = 0x100a - B57600 = 0x1001 - B576000 = 0x100b - B600 = 0x8 - B614400 = 0x1008 - B75 = 0x2 - B76800 = 0x1005 - B921600 = 0x1009 - B9600 = 0xd - BLKBSZGET = 0x80081270 - BLKBSZSET = 0x40081271 - BLKFLSBUF = 0x1261 - BLKFRAGET = 0x1265 - BLKFRASET = 0x1264 - BLKGETSIZE = 0x1260 - BLKGETSIZE64 = 0x80081272 - BLKRAGET = 0x1263 - BLKRASET = 0x1262 - BLKROGET = 0x125e - BLKROSET = 0x125d - BLKRRPART = 0x125f - BLKSECTGET = 0x1267 - BLKSECTSET = 0x1266 - BLKSSZGET = 0x1268 - BOTHER = 0x1000 - BPF_A = 0x10 - BPF_ABS = 0x20 - BPF_ADD = 0x0 - BPF_ALU = 0x4 - BPF_AND = 0x50 - BPF_B = 0x10 - BPF_DIV = 0x30 - BPF_H = 0x8 - BPF_IMM = 0x0 - BPF_IND = 0x40 - BPF_JA = 0x0 - BPF_JEQ = 0x10 - BPF_JGE = 0x30 - BPF_JGT = 0x20 - BPF_JMP = 0x5 - BPF_JSET = 0x40 - BPF_K = 0x0 - BPF_LD = 0x0 - BPF_LDX = 0x1 - BPF_LEN = 0x80 - BPF_LL_OFF = -0x200000 - BPF_LSH = 0x60 - BPF_MAJOR_VERSION = 0x1 - BPF_MAXINSNS = 0x1000 - BPF_MEM = 0x60 - BPF_MEMWORDS = 0x10 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 - BPF_MOD = 0x90 - BPF_MSH = 0xa0 - BPF_MUL = 0x20 - BPF_NEG = 0x80 - BPF_NET_OFF = -0x100000 - BPF_OR = 0x40 - BPF_RET = 0x6 - BPF_RSH = 0x70 - BPF_ST = 0x2 - BPF_STX = 0x3 - BPF_SUB = 0x10 - BPF_TAX = 0x0 - BPF_TXA = 0x80 - BPF_W = 0x0 - BPF_X = 0x8 - BPF_XOR = 0xa0 - BRKINT = 0x2 - BS0 = 0x0 - BS1 = 0x2000 - BSDLY = 0x2000 - CAN_BCM = 0x2 - CAN_EFF_FLAG = 0x80000000 - CAN_EFF_ID_BITS = 0x1d - CAN_EFF_MASK = 0x1fffffff - CAN_ERR_FLAG = 0x20000000 - CAN_ERR_MASK = 0x1fffffff - CAN_INV_FILTER = 0x20000000 - CAN_ISOTP = 0x6 - CAN_MAX_DLC = 0x8 - CAN_MAX_DLEN = 0x8 - CAN_MCNET = 0x5 - CAN_MTU = 0x10 - CAN_NPROTO = 0x7 - CAN_RAW = 0x1 - CAN_RTR_FLAG = 0x40000000 - CAN_SFF_ID_BITS = 0xb - CAN_SFF_MASK = 0x7ff - CAN_TP16 = 0x3 - CAN_TP20 = 0x4 - CBAUD = 0x100f - CBAUDEX = 0x1000 - CFLUSH = 0xf - CIBAUD = 0x100f0000 - CLOCAL = 0x800 - CLOCK_BOOTTIME = 0x7 - CLOCK_BOOTTIME_ALARM = 0x9 - CLOCK_DEFAULT = 0x0 - CLOCK_EXT = 0x1 - CLOCK_INT = 0x2 - CLOCK_MONOTONIC = 0x1 - CLOCK_MONOTONIC_COARSE = 0x6 - CLOCK_MONOTONIC_RAW = 0x4 - CLOCK_PROCESS_CPUTIME_ID = 0x2 - CLOCK_REALTIME = 0x0 - CLOCK_REALTIME_ALARM = 0x8 - CLOCK_REALTIME_COARSE = 0x5 - CLOCK_TAI = 0xb - CLOCK_THREAD_CPUTIME_ID = 0x3 - CLOCK_TXFROMRX = 0x4 - CLOCK_TXINT = 0x3 - CLONE_CHILD_CLEARTID = 0x200000 - CLONE_CHILD_SETTID = 0x1000000 - CLONE_DETACHED = 0x400000 - CLONE_FILES = 0x400 - CLONE_FS = 0x200 - CLONE_IO = 0x80000000 - CLONE_NEWCGROUP = 0x2000000 - CLONE_NEWIPC = 0x8000000 - CLONE_NEWNET = 0x40000000 - CLONE_NEWNS = 0x20000 - CLONE_NEWPID = 0x20000000 - CLONE_NEWUSER = 0x10000000 - CLONE_NEWUTS = 0x4000000 - CLONE_PARENT = 0x8000 - CLONE_PARENT_SETTID = 0x100000 - CLONE_PTRACE = 0x2000 - CLONE_SETTLS = 0x80000 - CLONE_SIGHAND = 0x800 - CLONE_SYSVSEM = 0x40000 - CLONE_THREAD = 0x10000 - CLONE_UNTRACED = 0x800000 - CLONE_VFORK = 0x4000 - CLONE_VM = 0x100 - CMSPAR = 0x40000000 - CR0 = 0x0 - CR1 = 0x200 - CR2 = 0x400 - CR3 = 0x600 - CRDLY = 0x600 - CREAD = 0x80 - CRTSCTS = 0x80000000 - CS5 = 0x0 - CS6 = 0x10 - CS7 = 0x20 - CS8 = 0x30 - CSIGNAL = 0xff - CSIZE = 0x30 - CSTART = 0x11 - CSTATUS = 0x0 - CSTOP = 0x13 - CSTOPB = 0x40 - CSUSP = 0x1a - DT_BLK = 0x6 - DT_CHR = 0x2 - DT_DIR = 0x4 - DT_FIFO = 0x1 - DT_LNK = 0xa - DT_REG = 0x8 - DT_SOCK = 0xc - DT_UNKNOWN = 0x0 - DT_WHT = 0xe - ECHO = 0x8 - ECHOCTL = 0x200 - ECHOE = 0x10 - ECHOK = 0x20 - ECHOKE = 0x800 - ECHONL = 0x40 - ECHOPRT = 0x400 - EMT_TAGOVF = 0x1 - ENCODING_DEFAULT = 0x0 - ENCODING_FM_MARK = 0x3 - ENCODING_FM_SPACE = 0x4 - ENCODING_MANCHESTER = 0x5 - ENCODING_NRZ = 0x1 - ENCODING_NRZI = 0x2 - EPOLLERR = 0x8 - EPOLLET = 0x80000000 - EPOLLEXCLUSIVE = 0x10000000 - EPOLLHUP = 0x10 - EPOLLIN = 0x1 - EPOLLMSG = 0x400 - EPOLLONESHOT = 0x40000000 - EPOLLOUT = 0x4 - EPOLLPRI = 0x2 - EPOLLRDBAND = 0x80 - EPOLLRDHUP = 0x2000 - EPOLLRDNORM = 0x40 - EPOLLWAKEUP = 0x20000000 - EPOLLWRBAND = 0x200 - EPOLLWRNORM = 0x100 - EPOLL_CLOEXEC = 0x400000 - EPOLL_CTL_ADD = 0x1 - EPOLL_CTL_DEL = 0x2 - EPOLL_CTL_MOD = 0x3 - ETH_P_1588 = 0x88f7 - ETH_P_8021AD = 0x88a8 - ETH_P_8021AH = 0x88e7 - ETH_P_8021Q = 0x8100 - ETH_P_80221 = 0x8917 - ETH_P_802_2 = 0x4 - ETH_P_802_3 = 0x1 - ETH_P_802_3_MIN = 0x600 - ETH_P_802_EX1 = 0x88b5 - ETH_P_AARP = 0x80f3 - ETH_P_AF_IUCV = 0xfbfb - ETH_P_ALL = 0x3 - ETH_P_AOE = 0x88a2 - ETH_P_ARCNET = 0x1a - ETH_P_ARP = 0x806 - ETH_P_ATALK = 0x809b - ETH_P_ATMFATE = 0x8884 - ETH_P_ATMMPOA = 0x884c - ETH_P_AX25 = 0x2 - ETH_P_BATMAN = 0x4305 - ETH_P_BPQ = 0x8ff - ETH_P_CAIF = 0xf7 - ETH_P_CAN = 0xc - ETH_P_CANFD = 0xd - ETH_P_CONTROL = 0x16 - ETH_P_CUST = 0x6006 - ETH_P_DDCMP = 0x6 - ETH_P_DEC = 0x6000 - ETH_P_DIAG = 0x6005 - ETH_P_DNA_DL = 0x6001 - ETH_P_DNA_RC = 0x6002 - ETH_P_DNA_RT = 0x6003 - ETH_P_DSA = 0x1b - ETH_P_ECONET = 0x18 - ETH_P_EDSA = 0xdada - ETH_P_FCOE = 0x8906 - ETH_P_FIP = 0x8914 - ETH_P_HDLC = 0x19 - ETH_P_HSR = 0x892f - ETH_P_IEEE802154 = 0xf6 - ETH_P_IEEEPUP = 0xa00 - ETH_P_IEEEPUPAT = 0xa01 - ETH_P_IP = 0x800 - ETH_P_IPV6 = 0x86dd - ETH_P_IPX = 0x8137 - ETH_P_IRDA = 0x17 - ETH_P_LAT = 0x6004 - ETH_P_LINK_CTL = 0x886c - ETH_P_LOCALTALK = 0x9 - ETH_P_LOOP = 0x60 - ETH_P_LOOPBACK = 0x9000 - ETH_P_MACSEC = 0x88e5 - ETH_P_MOBITEX = 0x15 - ETH_P_MPLS_MC = 0x8848 - ETH_P_MPLS_UC = 0x8847 - ETH_P_MVRP = 0x88f5 - ETH_P_PAE = 0x888e - ETH_P_PAUSE = 0x8808 - ETH_P_PHONET = 0xf5 - ETH_P_PPPTALK = 0x10 - ETH_P_PPP_DISC = 0x8863 - ETH_P_PPP_MP = 0x8 - ETH_P_PPP_SES = 0x8864 - ETH_P_PRP = 0x88fb - ETH_P_PUP = 0x200 - ETH_P_PUPAT = 0x201 - ETH_P_QINQ1 = 0x9100 - ETH_P_QINQ2 = 0x9200 - ETH_P_QINQ3 = 0x9300 - ETH_P_RARP = 0x8035 - ETH_P_SCA = 0x6007 - ETH_P_SLOW = 0x8809 - ETH_P_SNAP = 0x5 - ETH_P_TDLS = 0x890d - ETH_P_TEB = 0x6558 - ETH_P_TIPC = 0x88ca - ETH_P_TRAILER = 0x1c - ETH_P_TR_802_2 = 0x11 - ETH_P_TSN = 0x22f0 - ETH_P_WAN_PPP = 0x7 - ETH_P_WCCP = 0x883e - ETH_P_X25 = 0x805 - ETH_P_XDSA = 0xf8 - EXTA = 0xe - EXTB = 0xf - EXTPROC = 0x10000 - FALLOC_FL_COLLAPSE_RANGE = 0x8 - FALLOC_FL_INSERT_RANGE = 0x20 - FALLOC_FL_KEEP_SIZE = 0x1 - FALLOC_FL_NO_HIDE_STALE = 0x4 - FALLOC_FL_PUNCH_HOLE = 0x2 - FALLOC_FL_ZERO_RANGE = 0x10 - FD_CLOEXEC = 0x1 - FD_SETSIZE = 0x400 - FF0 = 0x0 - FF1 = 0x8000 - FFDLY = 0x8000 - FLUSHO = 0x2000 - F_DUPFD = 0x0 - F_DUPFD_CLOEXEC = 0x406 - F_EXLCK = 0x4 - F_GETFD = 0x1 - F_GETFL = 0x3 - F_GETLEASE = 0x401 - F_GETLK = 0x7 - F_GETLK64 = 0x7 - F_GETOWN = 0x5 - F_GETOWN_EX = 0x10 - F_GETPIPE_SZ = 0x408 - F_GETSIG = 0xb - F_LOCK = 0x1 - F_NOTIFY = 0x402 - F_OFD_GETLK = 0x24 - F_OFD_SETLK = 0x25 - F_OFD_SETLKW = 0x26 - F_OK = 0x0 - F_RDLCK = 0x1 - F_SETFD = 0x2 - F_SETFL = 0x4 - F_SETLEASE = 0x400 - F_SETLK = 0x8 - F_SETLK64 = 0x8 - F_SETLKW = 0x9 - F_SETLKW64 = 0x9 - F_SETOWN = 0x6 - F_SETOWN_EX = 0xf - F_SETPIPE_SZ = 0x407 - F_SETSIG = 0xa - F_SHLCK = 0x8 - F_TEST = 0x3 - F_TLOCK = 0x2 - F_ULOCK = 0x0 - F_UNLCK = 0x3 - F_WRLCK = 0x2 - GRND_NONBLOCK = 0x1 - GRND_RANDOM = 0x2 - HUPCL = 0x400 - IBSHIFT = 0x10 - ICANON = 0x2 - ICMPV6_FILTER = 0x1 - ICRNL = 0x100 - IEXTEN = 0x8000 - IFA_F_DADFAILED = 0x8 - IFA_F_DEPRECATED = 0x20 - IFA_F_HOMEADDRESS = 0x10 - IFA_F_MANAGETEMPADDR = 0x100 - IFA_F_MCAUTOJOIN = 0x400 - IFA_F_NODAD = 0x2 - IFA_F_NOPREFIXROUTE = 0x200 - IFA_F_OPTIMISTIC = 0x4 - IFA_F_PERMANENT = 0x80 - IFA_F_SECONDARY = 0x1 - IFA_F_STABLE_PRIVACY = 0x800 - IFA_F_TEMPORARY = 0x1 - IFA_F_TENTATIVE = 0x40 - IFA_MAX = 0x8 - IFF_ALLMULTI = 0x200 - IFF_ATTACH_QUEUE = 0x200 - IFF_AUTOMEDIA = 0x4000 - IFF_BROADCAST = 0x2 - IFF_DEBUG = 0x4 - IFF_DETACH_QUEUE = 0x400 - IFF_DORMANT = 0x20000 - IFF_DYNAMIC = 0x8000 - IFF_ECHO = 0x40000 - IFF_LOOPBACK = 0x8 - IFF_LOWER_UP = 0x10000 - IFF_MASTER = 0x400 - IFF_MULTICAST = 0x1000 - IFF_MULTI_QUEUE = 0x100 - IFF_NOARP = 0x80 - IFF_NOFILTER = 0x1000 - IFF_NOTRAILERS = 0x20 - IFF_NO_PI = 0x1000 - IFF_ONE_QUEUE = 0x2000 - IFF_PERSIST = 0x800 - IFF_POINTOPOINT = 0x10 - IFF_PORTSEL = 0x2000 - IFF_PROMISC = 0x100 - IFF_RUNNING = 0x40 - IFF_SLAVE = 0x800 - IFF_TAP = 0x2 - IFF_TUN = 0x1 - IFF_TUN_EXCL = 0x8000 - IFF_UP = 0x1 - IFF_VNET_HDR = 0x4000 - IFF_VOLATILE = 0x70c5a - IFNAMSIZ = 0x10 - IGNBRK = 0x1 - IGNCR = 0x80 - IGNPAR = 0x4 - IMAXBEL = 0x2000 - INLCR = 0x40 - INPCK = 0x10 - IN_ACCESS = 0x1 - IN_ALL_EVENTS = 0xfff - IN_ATTRIB = 0x4 - IN_CLASSA_HOST = 0xffffff - IN_CLASSA_MAX = 0x80 - IN_CLASSA_NET = 0xff000000 - IN_CLASSA_NSHIFT = 0x18 - IN_CLASSB_HOST = 0xffff - IN_CLASSB_MAX = 0x10000 - IN_CLASSB_NET = 0xffff0000 - IN_CLASSB_NSHIFT = 0x10 - IN_CLASSC_HOST = 0xff - IN_CLASSC_NET = 0xffffff00 - IN_CLASSC_NSHIFT = 0x8 - IN_CLOEXEC = 0x400000 - IN_CLOSE = 0x18 - IN_CLOSE_NOWRITE = 0x10 - IN_CLOSE_WRITE = 0x8 - IN_CREATE = 0x100 - IN_DELETE = 0x200 - IN_DELETE_SELF = 0x400 - IN_DONT_FOLLOW = 0x2000000 - IN_EXCL_UNLINK = 0x4000000 - IN_IGNORED = 0x8000 - IN_ISDIR = 0x40000000 - IN_LOOPBACKNET = 0x7f - IN_MASK_ADD = 0x20000000 - IN_MODIFY = 0x2 - IN_MOVE = 0xc0 - IN_MOVED_FROM = 0x40 - IN_MOVED_TO = 0x80 - IN_MOVE_SELF = 0x800 - IN_NONBLOCK = 0x4000 - IN_ONESHOT = 0x80000000 - IN_ONLYDIR = 0x1000000 - IN_OPEN = 0x20 - IN_Q_OVERFLOW = 0x4000 - IN_UNMOUNT = 0x2000 - IPPROTO_AH = 0x33 - IPPROTO_BEETPH = 0x5e - IPPROTO_COMP = 0x6c - IPPROTO_DCCP = 0x21 - IPPROTO_DSTOPTS = 0x3c - IPPROTO_EGP = 0x8 - IPPROTO_ENCAP = 0x62 - IPPROTO_ESP = 0x32 - IPPROTO_FRAGMENT = 0x2c - IPPROTO_GRE = 0x2f - IPPROTO_HOPOPTS = 0x0 - IPPROTO_ICMP = 0x1 - IPPROTO_ICMPV6 = 0x3a - IPPROTO_IDP = 0x16 - IPPROTO_IGMP = 0x2 - IPPROTO_IP = 0x0 - IPPROTO_IPIP = 0x4 - IPPROTO_IPV6 = 0x29 - IPPROTO_MH = 0x87 - IPPROTO_MPLS = 0x89 - IPPROTO_MTP = 0x5c - IPPROTO_NONE = 0x3b - IPPROTO_PIM = 0x67 - IPPROTO_PUP = 0xc - IPPROTO_RAW = 0xff - IPPROTO_ROUTING = 0x2b - IPPROTO_RSVP = 0x2e - IPPROTO_SCTP = 0x84 - IPPROTO_TCP = 0x6 - IPPROTO_TP = 0x1d - IPPROTO_UDP = 0x11 - IPPROTO_UDPLITE = 0x88 - IPV6_2292DSTOPTS = 0x4 - IPV6_2292HOPLIMIT = 0x8 - IPV6_2292HOPOPTS = 0x3 - IPV6_2292PKTINFO = 0x2 - IPV6_2292PKTOPTIONS = 0x6 - IPV6_2292RTHDR = 0x5 - IPV6_ADDRFORM = 0x1 - IPV6_ADD_MEMBERSHIP = 0x14 - IPV6_AUTHHDR = 0xa - IPV6_CHECKSUM = 0x7 - IPV6_DONTFRAG = 0x3e - IPV6_DROP_MEMBERSHIP = 0x15 - IPV6_DSTOPTS = 0x3b - IPV6_HDRINCL = 0x24 - IPV6_HOPLIMIT = 0x34 - IPV6_HOPOPTS = 0x36 - IPV6_IPSEC_POLICY = 0x22 - IPV6_JOIN_ANYCAST = 0x1b - IPV6_JOIN_GROUP = 0x14 - IPV6_LEAVE_ANYCAST = 0x1c - IPV6_LEAVE_GROUP = 0x15 - IPV6_MTU = 0x18 - IPV6_MTU_DISCOVER = 0x17 - IPV6_MULTICAST_HOPS = 0x12 - IPV6_MULTICAST_IF = 0x11 - IPV6_MULTICAST_LOOP = 0x13 - IPV6_NEXTHOP = 0x9 - IPV6_PATHMTU = 0x3d - IPV6_PKTINFO = 0x32 - IPV6_PMTUDISC_DO = 0x2 - IPV6_PMTUDISC_DONT = 0x0 - IPV6_PMTUDISC_INTERFACE = 0x4 - IPV6_PMTUDISC_OMIT = 0x5 - IPV6_PMTUDISC_PROBE = 0x3 - IPV6_PMTUDISC_WANT = 0x1 - IPV6_RECVDSTOPTS = 0x3a - IPV6_RECVERR = 0x19 - IPV6_RECVHOPLIMIT = 0x33 - IPV6_RECVHOPOPTS = 0x35 - IPV6_RECVPATHMTU = 0x3c - IPV6_RECVPKTINFO = 0x31 - IPV6_RECVRTHDR = 0x38 - IPV6_RECVTCLASS = 0x42 - IPV6_ROUTER_ALERT = 0x16 - IPV6_RTHDR = 0x39 - IPV6_RTHDRDSTOPTS = 0x37 - IPV6_RTHDR_LOOSE = 0x0 - IPV6_RTHDR_STRICT = 0x1 - IPV6_RTHDR_TYPE_0 = 0x0 - IPV6_RXDSTOPTS = 0x3b - IPV6_RXHOPOPTS = 0x36 - IPV6_TCLASS = 0x43 - IPV6_UNICAST_HOPS = 0x10 - IPV6_V6ONLY = 0x1a - IPV6_XFRM_POLICY = 0x23 - IP_ADD_MEMBERSHIP = 0x23 - IP_ADD_SOURCE_MEMBERSHIP = 0x27 - IP_BIND_ADDRESS_NO_PORT = 0x18 - IP_BLOCK_SOURCE = 0x26 - IP_CHECKSUM = 0x17 - IP_DEFAULT_MULTICAST_LOOP = 0x1 - IP_DEFAULT_MULTICAST_TTL = 0x1 - IP_DF = 0x4000 - IP_DROP_MEMBERSHIP = 0x24 - IP_DROP_SOURCE_MEMBERSHIP = 0x28 - IP_FREEBIND = 0xf - IP_HDRINCL = 0x3 - IP_IPSEC_POLICY = 0x10 - IP_MAXPACKET = 0xffff - IP_MAX_MEMBERSHIPS = 0x14 - IP_MF = 0x2000 - IP_MINTTL = 0x15 - IP_MSFILTER = 0x29 - IP_MSS = 0x240 - IP_MTU = 0xe - IP_MTU_DISCOVER = 0xa - IP_MULTICAST_ALL = 0x31 - IP_MULTICAST_IF = 0x20 - IP_MULTICAST_LOOP = 0x22 - IP_MULTICAST_TTL = 0x21 - IP_NODEFRAG = 0x16 - IP_OFFMASK = 0x1fff - IP_OPTIONS = 0x4 - IP_ORIGDSTADDR = 0x14 - IP_PASSSEC = 0x12 - IP_PKTINFO = 0x8 - IP_PKTOPTIONS = 0x9 - IP_PMTUDISC = 0xa - IP_PMTUDISC_DO = 0x2 - IP_PMTUDISC_DONT = 0x0 - IP_PMTUDISC_INTERFACE = 0x4 - IP_PMTUDISC_OMIT = 0x5 - IP_PMTUDISC_PROBE = 0x3 - IP_PMTUDISC_WANT = 0x1 - IP_RECVERR = 0xb - IP_RECVOPTS = 0x6 - IP_RECVORIGDSTADDR = 0x14 - IP_RECVRETOPTS = 0x7 - IP_RECVTOS = 0xd - IP_RECVTTL = 0xc - IP_RETOPTS = 0x7 - IP_RF = 0x8000 - IP_ROUTER_ALERT = 0x5 - IP_TOS = 0x1 - IP_TRANSPARENT = 0x13 - IP_TTL = 0x2 - IP_UNBLOCK_SOURCE = 0x25 - IP_UNICAST_IF = 0x32 - IP_XFRM_POLICY = 0x11 - ISIG = 0x1 - ISTRIP = 0x20 - IUCLC = 0x200 - IUTF8 = 0x4000 - IXANY = 0x800 - IXOFF = 0x1000 - IXON = 0x400 - LINUX_REBOOT_CMD_CAD_OFF = 0x0 - LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef - LINUX_REBOOT_CMD_HALT = 0xcdef0123 - LINUX_REBOOT_CMD_KEXEC = 0x45584543 - LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc - LINUX_REBOOT_CMD_RESTART = 0x1234567 - LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 - LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 - LINUX_REBOOT_MAGIC1 = 0xfee1dead - LINUX_REBOOT_MAGIC2 = 0x28121969 - LOCK_EX = 0x2 - LOCK_NB = 0x4 - LOCK_SH = 0x1 - LOCK_UN = 0x8 - MADV_DODUMP = 0x11 - MADV_DOFORK = 0xb - MADV_DONTDUMP = 0x10 - MADV_DONTFORK = 0xa - MADV_DONTNEED = 0x4 - MADV_FREE = 0x8 - MADV_HUGEPAGE = 0xe - MADV_HWPOISON = 0x64 - MADV_MERGEABLE = 0xc - MADV_NOHUGEPAGE = 0xf - MADV_NORMAL = 0x0 - MADV_RANDOM = 0x1 - MADV_REMOVE = 0x9 - MADV_SEQUENTIAL = 0x2 - MADV_UNMERGEABLE = 0xd - MADV_WILLNEED = 0x3 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MAP_DENYWRITE = 0x800 - MAP_EXECUTABLE = 0x1000 - MAP_FILE = 0x0 - MAP_FIXED = 0x10 - MAP_GROWSDOWN = 0x200 - MAP_HUGETLB = 0x40000 - MAP_HUGE_MASK = 0x3f - MAP_HUGE_SHIFT = 0x1a - MAP_LOCKED = 0x100 - MAP_NONBLOCK = 0x10000 - MAP_NORESERVE = 0x40 - MAP_POPULATE = 0x8000 - MAP_PRIVATE = 0x2 - MAP_RENAME = 0x20 - MAP_SHARED = 0x1 - MAP_STACK = 0x20000 - MAP_TYPE = 0xf - MCL_CURRENT = 0x2000 - MCL_FUTURE = 0x4000 - MCL_ONFAULT = 0x8000 - MNT_DETACH = 0x2 - MNT_EXPIRE = 0x4 - MNT_FORCE = 0x1 - MSG_BATCH = 0x40000 - MSG_CMSG_CLOEXEC = 0x40000000 - MSG_CONFIRM = 0x800 - MSG_CTRUNC = 0x8 - MSG_DONTROUTE = 0x4 - MSG_DONTWAIT = 0x40 - MSG_EOR = 0x80 - MSG_ERRQUEUE = 0x2000 - MSG_FASTOPEN = 0x20000000 - MSG_FIN = 0x200 - MSG_MORE = 0x8000 - MSG_NOSIGNAL = 0x4000 - MSG_OOB = 0x1 - MSG_PEEK = 0x2 - MSG_PROXY = 0x10 - MSG_RST = 0x1000 - MSG_SYN = 0x400 - MSG_TRUNC = 0x20 - MSG_TRYHARD = 0x4 - MSG_WAITALL = 0x100 - MSG_WAITFORONE = 0x10000 - MS_ACTIVE = 0x40000000 - MS_ASYNC = 0x1 - MS_BIND = 0x1000 - MS_DIRSYNC = 0x80 - MS_INVALIDATE = 0x2 - MS_I_VERSION = 0x800000 - MS_KERNMOUNT = 0x400000 - MS_LAZYTIME = 0x2000000 - MS_MANDLOCK = 0x40 - MS_MGC_MSK = 0xffff0000 - MS_MGC_VAL = 0xc0ed0000 - MS_MOVE = 0x2000 - MS_NOATIME = 0x400 - MS_NODEV = 0x4 - MS_NODIRATIME = 0x800 - MS_NOEXEC = 0x8 - MS_NOSUID = 0x2 - MS_NOUSER = -0x80000000 - MS_POSIXACL = 0x10000 - MS_PRIVATE = 0x40000 - MS_RDONLY = 0x1 - MS_REC = 0x4000 - MS_RELATIME = 0x200000 - MS_REMOUNT = 0x20 - MS_RMT_MASK = 0x2800051 - MS_SHARED = 0x100000 - MS_SILENT = 0x8000 - MS_SLAVE = 0x80000 - MS_STRICTATIME = 0x1000000 - MS_SYNC = 0x4 - MS_SYNCHRONOUS = 0x10 - MS_UNBINDABLE = 0x20000 - NAME_MAX = 0xff - NETLINK_ADD_MEMBERSHIP = 0x1 - NETLINK_AUDIT = 0x9 - NETLINK_BROADCAST_ERROR = 0x4 - NETLINK_CAP_ACK = 0xa - NETLINK_CONNECTOR = 0xb - NETLINK_CRYPTO = 0x15 - NETLINK_DNRTMSG = 0xe - NETLINK_DROP_MEMBERSHIP = 0x2 - NETLINK_ECRYPTFS = 0x13 - NETLINK_FIB_LOOKUP = 0xa - NETLINK_FIREWALL = 0x3 - NETLINK_GENERIC = 0x10 - NETLINK_INET_DIAG = 0x4 - NETLINK_IP6_FW = 0xd - NETLINK_ISCSI = 0x8 - NETLINK_KOBJECT_UEVENT = 0xf - NETLINK_LISTEN_ALL_NSID = 0x8 - NETLINK_LIST_MEMBERSHIPS = 0x9 - NETLINK_NETFILTER = 0xc - NETLINK_NFLOG = 0x5 - NETLINK_NO_ENOBUFS = 0x5 - NETLINK_PKTINFO = 0x3 - NETLINK_RDMA = 0x14 - NETLINK_ROUTE = 0x0 - NETLINK_RX_RING = 0x6 - NETLINK_SCSITRANSPORT = 0x12 - NETLINK_SELINUX = 0x7 - NETLINK_SOCK_DIAG = 0x4 - NETLINK_TX_RING = 0x7 - NETLINK_UNUSED = 0x1 - NETLINK_USERSOCK = 0x2 - NETLINK_XFRM = 0x6 - NL0 = 0x0 - NL1 = 0x100 - NLA_ALIGNTO = 0x4 - NLA_F_NESTED = 0x8000 - NLA_F_NET_BYTEORDER = 0x4000 - NLA_HDRLEN = 0x4 - NLDLY = 0x100 - NLMSG_ALIGNTO = 0x4 - NLMSG_DONE = 0x3 - NLMSG_ERROR = 0x2 - NLMSG_HDRLEN = 0x10 - NLMSG_MIN_TYPE = 0x10 - NLMSG_NOOP = 0x1 - NLMSG_OVERRUN = 0x4 - NLM_F_ACK = 0x4 - NLM_F_APPEND = 0x800 - NLM_F_ATOMIC = 0x400 - NLM_F_CREATE = 0x400 - NLM_F_DUMP = 0x300 - NLM_F_DUMP_FILTERED = 0x20 - NLM_F_DUMP_INTR = 0x10 - NLM_F_ECHO = 0x8 - NLM_F_EXCL = 0x200 - NLM_F_MATCH = 0x200 - NLM_F_MULTI = 0x2 - NLM_F_REPLACE = 0x100 - NLM_F_REQUEST = 0x1 - NLM_F_ROOT = 0x100 - NOFLSH = 0x80 - OCRNL = 0x8 - OFDEL = 0x80 - OFILL = 0x40 - OLCUC = 0x2 - ONLCR = 0x4 - ONLRET = 0x20 - ONOCR = 0x10 - OPOST = 0x1 - O_ACCMODE = 0x3 - O_APPEND = 0x8 - O_ASYNC = 0x40 - O_CLOEXEC = 0x400000 - O_CREAT = 0x200 - O_DIRECT = 0x100000 - O_DIRECTORY = 0x10000 - O_DSYNC = 0x2000 - O_EXCL = 0x800 - O_FSYNC = 0x802000 - O_LARGEFILE = 0x0 - O_NDELAY = 0x4004 - O_NOATIME = 0x200000 - O_NOCTTY = 0x8000 - O_NOFOLLOW = 0x20000 - O_NONBLOCK = 0x4000 - O_PATH = 0x1000000 - O_RDONLY = 0x0 - O_RDWR = 0x2 - O_RSYNC = 0x802000 - O_SYNC = 0x802000 - O_TMPFILE = 0x2010000 - O_TRUNC = 0x400 - O_WRONLY = 0x1 - PACKET_ADD_MEMBERSHIP = 0x1 - PACKET_AUXDATA = 0x8 - PACKET_BROADCAST = 0x1 - PACKET_COPY_THRESH = 0x7 - PACKET_DROP_MEMBERSHIP = 0x2 - PACKET_FANOUT = 0x12 - PACKET_FANOUT_CBPF = 0x6 - PACKET_FANOUT_CPU = 0x2 - PACKET_FANOUT_DATA = 0x16 - PACKET_FANOUT_EBPF = 0x7 - PACKET_FANOUT_FLAG_DEFRAG = 0x8000 - PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 - PACKET_FANOUT_HASH = 0x0 - PACKET_FANOUT_LB = 0x1 - PACKET_FANOUT_QM = 0x5 - PACKET_FANOUT_RND = 0x4 - PACKET_FANOUT_ROLLOVER = 0x3 - PACKET_FASTROUTE = 0x6 - PACKET_HDRLEN = 0xb - PACKET_HOST = 0x0 - PACKET_KERNEL = 0x7 - PACKET_LOOPBACK = 0x5 - PACKET_LOSS = 0xe - PACKET_MR_ALLMULTI = 0x2 - PACKET_MR_MULTICAST = 0x0 - PACKET_MR_PROMISC = 0x1 - PACKET_MR_UNICAST = 0x3 - PACKET_MULTICAST = 0x2 - PACKET_ORIGDEV = 0x9 - PACKET_OTHERHOST = 0x3 - PACKET_OUTGOING = 0x4 - PACKET_QDISC_BYPASS = 0x14 - PACKET_RECV_OUTPUT = 0x3 - PACKET_RESERVE = 0xc - PACKET_ROLLOVER_STATS = 0x15 - PACKET_RX_RING = 0x5 - PACKET_STATISTICS = 0x6 - PACKET_TIMESTAMP = 0x11 - PACKET_TX_HAS_OFF = 0x13 - PACKET_TX_RING = 0xd - PACKET_TX_TIMESTAMP = 0x10 - PACKET_USER = 0x6 - PACKET_VERSION = 0xa - PACKET_VNET_HDR = 0xf - PARENB = 0x100 - PARITY_CRC16_PR0 = 0x2 - PARITY_CRC16_PR0_CCITT = 0x4 - PARITY_CRC16_PR1 = 0x3 - PARITY_CRC16_PR1_CCITT = 0x5 - PARITY_CRC32_PR0_CCITT = 0x6 - PARITY_CRC32_PR1_CCITT = 0x7 - PARITY_DEFAULT = 0x0 - PARITY_NONE = 0x1 - PARMRK = 0x8 - PARODD = 0x200 - PENDIN = 0x4000 - PRIO_PGRP = 0x1 - PRIO_PROCESS = 0x0 - PRIO_USER = 0x2 - PROT_EXEC = 0x4 - PROT_GROWSDOWN = 0x1000000 - PROT_GROWSUP = 0x2000000 - PROT_NONE = 0x0 - PROT_READ = 0x1 - PROT_WRITE = 0x2 - PR_CAPBSET_DROP = 0x18 - PR_CAPBSET_READ = 0x17 - PR_CAP_AMBIENT = 0x2f - PR_CAP_AMBIENT_CLEAR_ALL = 0x4 - PR_CAP_AMBIENT_IS_SET = 0x1 - PR_CAP_AMBIENT_LOWER = 0x3 - PR_CAP_AMBIENT_RAISE = 0x2 - PR_ENDIAN_BIG = 0x0 - PR_ENDIAN_LITTLE = 0x1 - PR_ENDIAN_PPC_LITTLE = 0x2 - PR_FPEMU_NOPRINT = 0x1 - PR_FPEMU_SIGFPE = 0x2 - PR_FP_EXC_ASYNC = 0x2 - PR_FP_EXC_DISABLED = 0x0 - PR_FP_EXC_DIV = 0x10000 - PR_FP_EXC_INV = 0x100000 - PR_FP_EXC_NONRECOV = 0x1 - PR_FP_EXC_OVF = 0x20000 - PR_FP_EXC_PRECISE = 0x3 - PR_FP_EXC_RES = 0x80000 - PR_FP_EXC_SW_ENABLE = 0x80 - PR_FP_EXC_UND = 0x40000 - PR_FP_MODE_FR = 0x1 - PR_FP_MODE_FRE = 0x2 - PR_GET_CHILD_SUBREAPER = 0x25 - PR_GET_DUMPABLE = 0x3 - PR_GET_ENDIAN = 0x13 - PR_GET_FPEMU = 0x9 - PR_GET_FPEXC = 0xb - PR_GET_FP_MODE = 0x2e - PR_GET_KEEPCAPS = 0x7 - PR_GET_NAME = 0x10 - PR_GET_NO_NEW_PRIVS = 0x27 - PR_GET_PDEATHSIG = 0x2 - PR_GET_SECCOMP = 0x15 - PR_GET_SECUREBITS = 0x1b - PR_GET_THP_DISABLE = 0x2a - PR_GET_TID_ADDRESS = 0x28 - PR_GET_TIMERSLACK = 0x1e - PR_GET_TIMING = 0xd - PR_GET_TSC = 0x19 - PR_GET_UNALIGN = 0x5 - PR_MCE_KILL = 0x21 - PR_MCE_KILL_CLEAR = 0x0 - PR_MCE_KILL_DEFAULT = 0x2 - PR_MCE_KILL_EARLY = 0x1 - PR_MCE_KILL_GET = 0x22 - PR_MCE_KILL_LATE = 0x0 - PR_MCE_KILL_SET = 0x1 - PR_MPX_DISABLE_MANAGEMENT = 0x2c - PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_SET_CHILD_SUBREAPER = 0x24 - PR_SET_DUMPABLE = 0x4 - PR_SET_ENDIAN = 0x14 - PR_SET_FPEMU = 0xa - PR_SET_FPEXC = 0xc - PR_SET_FP_MODE = 0x2d - PR_SET_KEEPCAPS = 0x8 - PR_SET_MM = 0x23 - PR_SET_MM_ARG_END = 0x9 - PR_SET_MM_ARG_START = 0x8 - PR_SET_MM_AUXV = 0xc - PR_SET_MM_BRK = 0x7 - PR_SET_MM_END_CODE = 0x2 - PR_SET_MM_END_DATA = 0x4 - PR_SET_MM_ENV_END = 0xb - PR_SET_MM_ENV_START = 0xa - PR_SET_MM_EXE_FILE = 0xd - PR_SET_MM_MAP = 0xe - PR_SET_MM_MAP_SIZE = 0xf - PR_SET_MM_START_BRK = 0x6 - PR_SET_MM_START_CODE = 0x1 - PR_SET_MM_START_DATA = 0x3 - PR_SET_MM_START_STACK = 0x5 - PR_SET_NAME = 0xf - PR_SET_NO_NEW_PRIVS = 0x26 - PR_SET_PDEATHSIG = 0x1 - PR_SET_PTRACER = 0x59616d61 - PR_SET_PTRACER_ANY = -0x1 - PR_SET_SECCOMP = 0x16 - PR_SET_SECUREBITS = 0x1c - PR_SET_THP_DISABLE = 0x29 - PR_SET_TIMERSLACK = 0x1d - PR_SET_TIMING = 0xe - PR_SET_TSC = 0x1a - PR_SET_UNALIGN = 0x6 - PR_TASK_PERF_EVENTS_DISABLE = 0x1f - PR_TASK_PERF_EVENTS_ENABLE = 0x20 - PR_TIMING_STATISTICAL = 0x0 - PR_TIMING_TIMESTAMP = 0x1 - PR_TSC_ENABLE = 0x1 - PR_TSC_SIGSEGV = 0x2 - PR_UNALIGN_NOPRINT = 0x1 - PR_UNALIGN_SIGBUS = 0x2 - PTRACE_ATTACH = 0x10 - PTRACE_CONT = 0x7 - PTRACE_DETACH = 0x11 - PTRACE_EVENT_CLONE = 0x3 - PTRACE_EVENT_EXEC = 0x4 - PTRACE_EVENT_EXIT = 0x6 - PTRACE_EVENT_FORK = 0x1 - PTRACE_EVENT_SECCOMP = 0x7 - PTRACE_EVENT_STOP = 0x80 - PTRACE_EVENT_VFORK = 0x2 - PTRACE_EVENT_VFORK_DONE = 0x5 - PTRACE_GETEVENTMSG = 0x4201 - PTRACE_GETFPAREGS = 0x14 - PTRACE_GETFPREGS = 0xe - PTRACE_GETFPREGS64 = 0x19 - PTRACE_GETREGS = 0xc - PTRACE_GETREGS64 = 0x16 - PTRACE_GETREGSET = 0x4204 - PTRACE_GETSIGINFO = 0x4202 - PTRACE_GETSIGMASK = 0x420a - PTRACE_INTERRUPT = 0x4207 - PTRACE_KILL = 0x8 - PTRACE_LISTEN = 0x4208 - PTRACE_O_EXITKILL = 0x100000 - PTRACE_O_MASK = 0x3000ff - PTRACE_O_SUSPEND_SECCOMP = 0x200000 - PTRACE_O_TRACECLONE = 0x8 - PTRACE_O_TRACEEXEC = 0x10 - PTRACE_O_TRACEEXIT = 0x40 - PTRACE_O_TRACEFORK = 0x2 - PTRACE_O_TRACESECCOMP = 0x80 - PTRACE_O_TRACESYSGOOD = 0x1 - PTRACE_O_TRACEVFORK = 0x4 - PTRACE_O_TRACEVFORKDONE = 0x20 - PTRACE_PEEKDATA = 0x2 - PTRACE_PEEKSIGINFO = 0x4209 - PTRACE_PEEKSIGINFO_SHARED = 0x1 - PTRACE_PEEKTEXT = 0x1 - PTRACE_PEEKUSR = 0x3 - PTRACE_POKEDATA = 0x5 - PTRACE_POKETEXT = 0x4 - PTRACE_POKEUSR = 0x6 - PTRACE_READDATA = 0x10 - PTRACE_READTEXT = 0x12 - PTRACE_SECCOMP_GET_FILTER = 0x420c - PTRACE_SEIZE = 0x4206 - PTRACE_SETFPAREGS = 0x15 - PTRACE_SETFPREGS = 0xf - PTRACE_SETFPREGS64 = 0x1a - PTRACE_SETOPTIONS = 0x4200 - PTRACE_SETREGS = 0xd - PTRACE_SETREGS64 = 0x17 - PTRACE_SETREGSET = 0x4205 - PTRACE_SETSIGINFO = 0x4203 - PTRACE_SETSIGMASK = 0x420b - PTRACE_SINGLESTEP = 0x9 - PTRACE_SPARC_DETACH = 0xb - PTRACE_SYSCALL = 0x18 - PTRACE_TRACEME = 0x0 - PTRACE_WRITEDATA = 0x11 - PTRACE_WRITETEXT = 0x13 - PT_FP = 0x48 - PT_G0 = 0x10 - PT_G1 = 0x14 - PT_G2 = 0x18 - PT_G3 = 0x1c - PT_G4 = 0x20 - PT_G5 = 0x24 - PT_G6 = 0x28 - PT_G7 = 0x2c - PT_I0 = 0x30 - PT_I1 = 0x34 - PT_I2 = 0x38 - PT_I3 = 0x3c - PT_I4 = 0x40 - PT_I5 = 0x44 - PT_I6 = 0x48 - PT_I7 = 0x4c - PT_NPC = 0x8 - PT_PC = 0x4 - PT_PSR = 0x0 - PT_REGS_MAGIC = 0x57ac6c00 - PT_TNPC = 0x90 - PT_TPC = 0x88 - PT_TSTATE = 0x80 - PT_V9_FP = 0x70 - PT_V9_G0 = 0x0 - PT_V9_G1 = 0x8 - PT_V9_G2 = 0x10 - PT_V9_G3 = 0x18 - PT_V9_G4 = 0x20 - PT_V9_G5 = 0x28 - PT_V9_G6 = 0x30 - PT_V9_G7 = 0x38 - PT_V9_I0 = 0x40 - PT_V9_I1 = 0x48 - PT_V9_I2 = 0x50 - PT_V9_I3 = 0x58 - PT_V9_I4 = 0x60 - PT_V9_I5 = 0x68 - PT_V9_I6 = 0x70 - PT_V9_I7 = 0x78 - PT_V9_MAGIC = 0x9c - PT_V9_TNPC = 0x90 - PT_V9_TPC = 0x88 - PT_V9_TSTATE = 0x80 - PT_V9_Y = 0x98 - PT_WIM = 0x10 - PT_Y = 0xc - RLIMIT_AS = 0x9 - RLIMIT_CORE = 0x4 - RLIMIT_CPU = 0x0 - RLIMIT_DATA = 0x2 - RLIMIT_FSIZE = 0x1 - RLIMIT_NOFILE = 0x6 - RLIMIT_STACK = 0x3 - RLIM_INFINITY = -0x1 - RTAX_ADVMSS = 0x8 - RTAX_CC_ALGO = 0x10 - RTAX_CWND = 0x7 - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 - RTAX_FEATURE_MASK = 0xf - RTAX_FEATURE_SACK = 0x2 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb - RTAX_INITRWND = 0xe - RTAX_LOCK = 0x1 - RTAX_MAX = 0x10 - RTAX_MTU = 0x2 - RTAX_QUICKACK = 0xf - RTAX_REORDERING = 0x9 - RTAX_RTO_MIN = 0xd - RTAX_RTT = 0x4 - RTAX_RTTVAR = 0x5 - RTAX_SSTHRESH = 0x6 - RTAX_UNSPEC = 0x0 - RTAX_WINDOW = 0x3 - RTA_ALIGNTO = 0x4 - RTA_MAX = 0x18 - RTCF_DIRECTSRC = 0x4000000 - RTCF_DOREDIRECT = 0x1000000 - RTCF_LOG = 0x2000000 - RTCF_MASQ = 0x400000 - RTCF_NAT = 0x800000 - RTCF_VALVE = 0x200000 - RTF_ADDRCLASSMASK = 0xf8000000 - RTF_ADDRCONF = 0x40000 - RTF_ALLONLINK = 0x20000 - RTF_BROADCAST = 0x10000000 - RTF_CACHE = 0x1000000 - RTF_DEFAULT = 0x10000 - RTF_DYNAMIC = 0x10 - RTF_FLOW = 0x2000000 - RTF_GATEWAY = 0x2 - RTF_HOST = 0x4 - RTF_INTERFACE = 0x40000000 - RTF_IRTT = 0x100 - RTF_LINKRT = 0x100000 - RTF_LOCAL = 0x80000000 - RTF_MODIFIED = 0x20 - RTF_MSS = 0x40 - RTF_MTU = 0x40 - RTF_MULTICAST = 0x20000000 - RTF_NAT = 0x8000000 - RTF_NOFORWARD = 0x1000 - RTF_NONEXTHOP = 0x200000 - RTF_NOPMTUDISC = 0x4000 - RTF_POLICY = 0x4000000 - RTF_REINSTATE = 0x8 - RTF_REJECT = 0x200 - RTF_STATIC = 0x400 - RTF_THROW = 0x2000 - RTF_UP = 0x1 - RTF_WINDOW = 0x80 - RTF_XRESOLVE = 0x800 - RTM_BASE = 0x10 - RTM_DELACTION = 0x31 - RTM_DELADDR = 0x15 - RTM_DELADDRLABEL = 0x49 - RTM_DELLINK = 0x11 - RTM_DELMDB = 0x55 - RTM_DELNEIGH = 0x1d - RTM_DELNSID = 0x59 - RTM_DELQDISC = 0x25 - RTM_DELROUTE = 0x19 - RTM_DELRULE = 0x21 - RTM_DELTCLASS = 0x29 - RTM_DELTFILTER = 0x2d - RTM_F_CLONED = 0x200 - RTM_F_EQUALIZE = 0x400 - RTM_F_LOOKUP_TABLE = 0x1000 - RTM_F_NOTIFY = 0x100 - RTM_F_PREFIX = 0x800 - RTM_GETACTION = 0x32 - RTM_GETADDR = 0x16 - RTM_GETADDRLABEL = 0x4a - RTM_GETANYCAST = 0x3e - RTM_GETDCB = 0x4e - RTM_GETLINK = 0x12 - RTM_GETMDB = 0x56 - RTM_GETMULTICAST = 0x3a - RTM_GETNEIGH = 0x1e - RTM_GETNEIGHTBL = 0x42 - RTM_GETNETCONF = 0x52 - RTM_GETNSID = 0x5a - RTM_GETQDISC = 0x26 - RTM_GETROUTE = 0x1a - RTM_GETRULE = 0x22 - RTM_GETSTATS = 0x5e - RTM_GETTCLASS = 0x2a - RTM_GETTFILTER = 0x2e - RTM_MAX = 0x5f - RTM_NEWACTION = 0x30 - RTM_NEWADDR = 0x14 - RTM_NEWADDRLABEL = 0x48 - RTM_NEWLINK = 0x10 - RTM_NEWMDB = 0x54 - RTM_NEWNDUSEROPT = 0x44 - RTM_NEWNEIGH = 0x1c - RTM_NEWNEIGHTBL = 0x40 - RTM_NEWNETCONF = 0x50 - RTM_NEWNSID = 0x58 - RTM_NEWPREFIX = 0x34 - RTM_NEWQDISC = 0x24 - RTM_NEWROUTE = 0x18 - RTM_NEWRULE = 0x20 - RTM_NEWSTATS = 0x5c - RTM_NEWTCLASS = 0x28 - RTM_NEWTFILTER = 0x2c - RTM_NR_FAMILIES = 0x14 - RTM_NR_MSGTYPES = 0x50 - RTM_SETDCB = 0x4f - RTM_SETLINK = 0x13 - RTM_SETNEIGHTBL = 0x43 - RTNH_ALIGNTO = 0x4 - RTNH_COMPARE_MASK = 0x11 - RTNH_F_DEAD = 0x1 - RTNH_F_LINKDOWN = 0x10 - RTNH_F_OFFLOAD = 0x8 - RTNH_F_ONLINK = 0x4 - RTNH_F_PERVASIVE = 0x2 - RTN_MAX = 0xb - RTPROT_BABEL = 0x2a - RTPROT_BIRD = 0xc - RTPROT_BOOT = 0x3 - RTPROT_DHCP = 0x10 - RTPROT_DNROUTED = 0xd - RTPROT_GATED = 0x8 - RTPROT_KERNEL = 0x2 - RTPROT_MROUTED = 0x11 - RTPROT_MRT = 0xa - RTPROT_NTK = 0xf - RTPROT_RA = 0x9 - RTPROT_REDIRECT = 0x1 - RTPROT_STATIC = 0x4 - RTPROT_UNSPEC = 0x0 - RTPROT_XORP = 0xe - RTPROT_ZEBRA = 0xb - RT_CLASS_DEFAULT = 0xfd - RT_CLASS_LOCAL = 0xff - RT_CLASS_MAIN = 0xfe - RT_CLASS_MAX = 0xff - RT_CLASS_UNSPEC = 0x0 - RUSAGE_CHILDREN = -0x1 - RUSAGE_SELF = 0x0 - RUSAGE_THREAD = 0x1 - SCM_CREDENTIALS = 0x2 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x1d - SCM_TIMESTAMPING = 0x23 - SCM_TIMESTAMPNS = 0x21 - SCM_WIFI_STATUS = 0x25 - SHUT_RD = 0x0 - SHUT_RDWR = 0x2 - SHUT_WR = 0x1 - SIOCADDDLCI = 0x8980 - SIOCADDMULTI = 0x8931 - SIOCADDRT = 0x890b - SIOCATMARK = 0x8905 - SIOCBONDCHANGEACTIVE = 0x8995 - SIOCBONDENSLAVE = 0x8990 - SIOCBONDINFOQUERY = 0x8994 - SIOCBONDRELEASE = 0x8991 - SIOCBONDSETHWADDR = 0x8992 - SIOCBONDSLAVEINFOQUERY = 0x8993 - SIOCBRADDBR = 0x89a0 - SIOCBRADDIF = 0x89a2 - SIOCBRDELBR = 0x89a1 - SIOCBRDELIF = 0x89a3 - SIOCDARP = 0x8953 - SIOCDELDLCI = 0x8981 - SIOCDELMULTI = 0x8932 - SIOCDELRT = 0x890c - SIOCDEVPRIVATE = 0x89f0 - SIOCDIFADDR = 0x8936 - SIOCDRARP = 0x8960 - SIOCETHTOOL = 0x8946 - SIOCGARP = 0x8954 - SIOCGHWTSTAMP = 0x89b1 - SIOCGIFADDR = 0x8915 - SIOCGIFBR = 0x8940 - SIOCGIFBRDADDR = 0x8919 - SIOCGIFCONF = 0x8912 - SIOCGIFCOUNT = 0x8938 - SIOCGIFDSTADDR = 0x8917 - SIOCGIFENCAP = 0x8925 - SIOCGIFFLAGS = 0x8913 - SIOCGIFHWADDR = 0x8927 - SIOCGIFINDEX = 0x8933 - SIOCGIFMAP = 0x8970 - SIOCGIFMEM = 0x891f - SIOCGIFMETRIC = 0x891d - SIOCGIFMTU = 0x8921 - SIOCGIFNAME = 0x8910 - SIOCGIFNETMASK = 0x891b - SIOCGIFPFLAGS = 0x8935 - SIOCGIFSLAVE = 0x8929 - SIOCGIFTXQLEN = 0x8942 - SIOCGIFVLAN = 0x8982 - SIOCGMIIPHY = 0x8947 - SIOCGMIIREG = 0x8948 - SIOCGPGRP = 0x8904 - SIOCGRARP = 0x8961 - SIOCGSTAMP = 0x8906 - SIOCGSTAMPNS = 0x8907 - SIOCINQ = 0x4004667f - SIOCOUTQ = 0x40047473 - SIOCOUTQNSD = 0x894b - SIOCPROTOPRIVATE = 0x89e0 - SIOCRTMSG = 0x890d - SIOCSARP = 0x8955 - SIOCSHWTSTAMP = 0x89b0 - SIOCSIFADDR = 0x8916 - SIOCSIFBR = 0x8941 - SIOCSIFBRDADDR = 0x891a - SIOCSIFDSTADDR = 0x8918 - SIOCSIFENCAP = 0x8926 - SIOCSIFFLAGS = 0x8914 - SIOCSIFHWADDR = 0x8924 - SIOCSIFHWBROADCAST = 0x8937 - SIOCSIFLINK = 0x8911 - SIOCSIFMAP = 0x8971 - SIOCSIFMEM = 0x8920 - SIOCSIFMETRIC = 0x891e - SIOCSIFMTU = 0x8922 - SIOCSIFNAME = 0x8923 - SIOCSIFNETMASK = 0x891c - SIOCSIFPFLAGS = 0x8934 - SIOCSIFSLAVE = 0x8930 - SIOCSIFTXQLEN = 0x8943 - SIOCSIFVLAN = 0x8983 - SIOCSMIIREG = 0x8949 - SIOCSPGRP = 0x8902 - SIOCSRARP = 0x8962 - SIOCWANDEV = 0x894a - SOCK_CLOEXEC = 0x400000 - SOCK_DCCP = 0x6 - SOCK_DGRAM = 0x2 - SOCK_NONBLOCK = 0x4000 - SOCK_PACKET = 0xa - SOCK_RAW = 0x3 - SOCK_RDM = 0x4 - SOCK_SEQPACKET = 0x5 - SOCK_STREAM = 0x1 - SOL_AAL = 0x109 - SOL_ALG = 0x117 - SOL_ATM = 0x108 - SOL_CAIF = 0x116 - SOL_DCCP = 0x10d - SOL_DECNET = 0x105 - SOL_ICMPV6 = 0x3a - SOL_IP = 0x0 - SOL_IPV6 = 0x29 - SOL_IRDA = 0x10a - SOL_IUCV = 0x115 - SOL_KCM = 0x119 - SOL_LLC = 0x10c - SOL_NETBEUI = 0x10b - SOL_NETLINK = 0x10e - SOL_NFC = 0x118 - SOL_PACKET = 0x107 - SOL_PNPIPE = 0x113 - SOL_PPPOL2TP = 0x111 - SOL_RAW = 0xff - SOL_RDS = 0x114 - SOL_RXRPC = 0x110 - SOL_SOCKET = 0xffff - SOL_TCP = 0x6 - SOL_TIPC = 0x10f - SOL_X25 = 0x106 - SOMAXCONN = 0x80 - SO_ACCEPTCONN = 0x8000 - SO_ATTACH_BPF = 0x34 - SO_ATTACH_FILTER = 0x1a - SO_ATTACH_REUSEPORT_CBPF = 0x35 - SO_ATTACH_REUSEPORT_EBPF = 0x36 - SO_BINDTODEVICE = 0xd - SO_BPF_EXTENSIONS = 0x32 - SO_BROADCAST = 0x20 - SO_BSDCOMPAT = 0x400 - SO_BUSY_POLL = 0x30 - SO_CNX_ADVICE = 0x37 - SO_DEBUG = 0x1 - SO_DETACH_BPF = 0x1b - SO_DETACH_FILTER = 0x1b - SO_DOMAIN = 0x1029 - SO_DONTROUTE = 0x10 - SO_ERROR = 0x1007 - SO_GET_FILTER = 0x1a - SO_INCOMING_CPU = 0x33 - SO_KEEPALIVE = 0x8 - SO_LINGER = 0x80 - SO_LOCK_FILTER = 0x28 - SO_MARK = 0x22 - SO_MAX_PACING_RATE = 0x31 - SO_NOFCS = 0x27 - SO_NO_CHECK = 0xb - SO_OOBINLINE = 0x100 - SO_PASSCRED = 0x2 - SO_PASSSEC = 0x1f - SO_PEEK_OFF = 0x26 - SO_PEERCRED = 0x40 - SO_PEERNAME = 0x1c - SO_PEERSEC = 0x1e - SO_PRIORITY = 0xc - SO_PROTOCOL = 0x1028 - SO_RCVBUF = 0x1002 - SO_RCVBUFFORCE = 0x100b - SO_RCVLOWAT = 0x800 - SO_RCVTIMEO = 0x2000 - SO_REUSEADDR = 0x4 - SO_REUSEPORT = 0x200 - SO_RXQ_OVFL = 0x24 - SO_SECURITY_AUTHENTICATION = 0x5001 - SO_SECURITY_ENCRYPTION_NETWORK = 0x5004 - SO_SECURITY_ENCRYPTION_TRANSPORT = 0x5002 - SO_SELECT_ERR_QUEUE = 0x29 - SO_SNDBUF = 0x1001 - SO_SNDBUFFORCE = 0x100a - SO_SNDLOWAT = 0x1000 - SO_SNDTIMEO = 0x4000 - SO_TIMESTAMP = 0x1d - SO_TIMESTAMPING = 0x23 - SO_TIMESTAMPNS = 0x21 - SO_TYPE = 0x1008 - SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 - SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 - SO_VM_SOCKETS_BUFFER_SIZE = 0x0 - SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 - SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 - SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 - SO_VM_SOCKETS_TRUSTED = 0x5 - SO_WIFI_STATUS = 0x25 - SPLICE_F_GIFT = 0x8 - SPLICE_F_MORE = 0x4 - SPLICE_F_MOVE = 0x1 - SPLICE_F_NONBLOCK = 0x2 - S_BLKSIZE = 0x200 - S_IEXEC = 0x40 - S_IFBLK = 0x6000 - S_IFCHR = 0x2000 - S_IFDIR = 0x4000 - S_IFIFO = 0x1000 - S_IFLNK = 0xa000 - S_IFMT = 0xf000 - S_IFREG = 0x8000 - S_IFSOCK = 0xc000 - S_IREAD = 0x100 - S_IRGRP = 0x20 - S_IROTH = 0x4 - S_IRUSR = 0x100 - S_IRWXG = 0x38 - S_IRWXO = 0x7 - S_IRWXU = 0x1c0 - S_ISGID = 0x400 - S_ISUID = 0x800 - S_ISVTX = 0x200 - S_IWGRP = 0x10 - S_IWOTH = 0x2 - S_IWRITE = 0x80 - S_IWUSR = 0x80 - S_IXGRP = 0x8 - S_IXOTH = 0x1 - S_IXUSR = 0x40 - TAB0 = 0x0 - TAB1 = 0x800 - TAB2 = 0x1000 - TAB3 = 0x1800 - TABDLY = 0x1800 - TCFLSH = 0x20005407 - TCGETA = 0x40125401 - TCGETS = 0x40245408 - TCGETS2 = 0x402c540c - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 - TCION = 0x3 - TCOFLUSH = 0x1 - TCOOFF = 0x0 - TCOON = 0x1 - TCP_CC_INFO = 0x1a - TCP_CONGESTION = 0xd - TCP_COOKIE_IN_ALWAYS = 0x1 - TCP_COOKIE_MAX = 0x10 - TCP_COOKIE_MIN = 0x8 - TCP_COOKIE_OUT_NEVER = 0x2 - TCP_COOKIE_PAIR_SIZE = 0x20 - TCP_COOKIE_TRANSACTIONS = 0xf - TCP_CORK = 0x3 - TCP_DEFER_ACCEPT = 0x9 - TCP_FASTOPEN = 0x17 - TCP_INFO = 0xb - TCP_KEEPCNT = 0x6 - TCP_KEEPIDLE = 0x4 - TCP_KEEPINTVL = 0x5 - TCP_LINGER2 = 0x8 - TCP_MAXSEG = 0x2 - TCP_MAXWIN = 0xffff - TCP_MAX_WINSHIFT = 0xe - TCP_MD5SIG = 0xe - TCP_MD5SIG_MAXKEYLEN = 0x50 - TCP_MSS = 0x200 - TCP_MSS_DEFAULT = 0x218 - TCP_MSS_DESIRED = 0x4c4 - TCP_NODELAY = 0x1 - TCP_NOTSENT_LOWAT = 0x19 - TCP_QUEUE_SEQ = 0x15 - TCP_QUICKACK = 0xc - TCP_REPAIR = 0x13 - TCP_REPAIR_OPTIONS = 0x16 - TCP_REPAIR_QUEUE = 0x14 - TCP_SAVED_SYN = 0x1c - TCP_SAVE_SYN = 0x1b - TCP_SYNCNT = 0x7 - TCP_S_DATA_IN = 0x4 - TCP_S_DATA_OUT = 0x8 - TCP_THIN_DUPACK = 0x11 - TCP_THIN_LINEAR_TIMEOUTS = 0x10 - TCP_TIMESTAMP = 0x18 - TCP_USER_TIMEOUT = 0x12 - TCP_WINDOW_CLAMP = 0xa - TCSAFLUSH = 0x2 - TCSBRK = 0x20005405 - TCSBRKP = 0x5425 - TCSETA = 0x80125402 - TCSETAF = 0x80125404 - TCSETAW = 0x80125403 - TCSETS = 0x80245409 - TCSETS2 = 0x802c540d - TCSETSF = 0x8024540b - TCSETSF2 = 0x802c540f - TCSETSW = 0x8024540a - TCSETSW2 = 0x802c540e - TCXONC = 0x20005406 - TIOCCBRK = 0x2000747a - TIOCCONS = 0x20007424 - TIOCEXCL = 0x2000740d - TIOCGDEV = 0x40045432 - TIOCGETD = 0x40047400 - TIOCGEXCL = 0x40045440 - TIOCGICOUNT = 0x545d - TIOCGLCKTRMIOS = 0x5456 - TIOCGPGRP = 0x40047483 - TIOCGPKT = 0x40045438 - TIOCGPTLCK = 0x40045439 - TIOCGPTN = 0x40047486 - TIOCGRS485 = 0x40205441 - TIOCGSERIAL = 0x541e - TIOCGSID = 0x40047485 - TIOCGSOFTCAR = 0x40047464 - TIOCGWINSZ = 0x40087468 - TIOCINQ = 0x4004667f - TIOCLINUX = 0x541c - TIOCMBIC = 0x8004746b - TIOCMBIS = 0x8004746c - TIOCMGET = 0x4004746a - TIOCMIWAIT = 0x545c - TIOCMSET = 0x8004746d - TIOCM_CAR = 0x40 - TIOCM_CD = 0x40 - TIOCM_CTS = 0x20 - TIOCM_DSR = 0x100 - TIOCM_DTR = 0x2 - TIOCM_LE = 0x1 - TIOCM_LOOP = 0x8000 - TIOCM_OUT1 = 0x2000 - TIOCM_OUT2 = 0x4000 - TIOCM_RI = 0x80 - TIOCM_RNG = 0x80 - TIOCM_RTS = 0x4 - TIOCM_SR = 0x10 - TIOCM_ST = 0x8 - TIOCNOTTY = 0x20007471 - TIOCNXCL = 0x2000740e - TIOCOUTQ = 0x40047473 - TIOCPKT = 0x80047470 - TIOCPKT_DATA = 0x0 - TIOCPKT_DOSTOP = 0x20 - TIOCPKT_FLUSHREAD = 0x1 - TIOCPKT_FLUSHWRITE = 0x2 - TIOCPKT_IOCTL = 0x40 - TIOCPKT_NOSTOP = 0x10 - TIOCPKT_START = 0x8 - TIOCPKT_STOP = 0x4 - TIOCSBRK = 0x2000747b - TIOCSCTTY = 0x20007484 - TIOCSERCONFIG = 0x5453 - TIOCSERGETLSR = 0x5459 - TIOCSERGETMULTI = 0x545a - TIOCSERGSTRUCT = 0x5458 - TIOCSERGWILD = 0x5454 - TIOCSERSETMULTI = 0x545b - TIOCSERSWILD = 0x5455 - TIOCSER_TEMT = 0x1 - TIOCSETD = 0x80047401 - TIOCSIG = 0x80047488 - TIOCSLCKTRMIOS = 0x5457 - TIOCSPGRP = 0x80047482 - TIOCSPTLCK = 0x80047487 - TIOCSRS485 = 0xc0205442 - TIOCSSERIAL = 0x541f - TIOCSSOFTCAR = 0x80047465 - TIOCSTART = 0x2000746e - TIOCSTI = 0x80017472 - TIOCSTOP = 0x2000746f - TIOCSWINSZ = 0x80087467 - TIOCVHANGUP = 0x20005437 - TOSTOP = 0x100 - TUNATTACHFILTER = 0x801054d5 - TUNDETACHFILTER = 0x801054d6 - TUNGETFEATURES = 0x400454cf - TUNGETFILTER = 0x401054db - TUNGETIFF = 0x400454d2 - TUNGETSNDBUF = 0x400454d3 - TUNGETVNETBE = 0x400454df - TUNGETVNETHDRSZ = 0x400454d7 - TUNGETVNETLE = 0x400454dd - TUNSETDEBUG = 0x800454c9 - TUNSETGROUP = 0x800454ce - TUNSETIFF = 0x800454ca - TUNSETIFINDEX = 0x800454da - TUNSETLINK = 0x800454cd - TUNSETNOCSUM = 0x800454c8 - TUNSETOFFLOAD = 0x800454d0 - TUNSETOWNER = 0x800454cc - TUNSETPERSIST = 0x800454cb - TUNSETQUEUE = 0x800454d9 - TUNSETSNDBUF = 0x800454d4 - TUNSETTXFILTER = 0x800454d1 - TUNSETVNETBE = 0x800454de - TUNSETVNETHDRSZ = 0x800454d8 - TUNSETVNETLE = 0x800454dc - VDISCARD = 0xd - VDSUSP = 0xb - VEOF = 0x4 - VEOL = 0x5 - VEOL2 = 0x6 - VERASE = 0x2 - VINTR = 0x0 - VKILL = 0x3 - VLNEXT = 0xf - VMADDR_CID_ANY = 0xffffffff - VMADDR_CID_HOST = 0x2 - VMADDR_CID_HYPERVISOR = 0x0 - VMADDR_CID_RESERVED = 0x1 - VMADDR_PORT_ANY = 0xffffffff - VMIN = 0x4 - VQUIT = 0x1 - VREPRINT = 0xc - VSTART = 0x8 - VSTOP = 0x9 - VSUSP = 0xa - VSWTC = 0x7 - VT0 = 0x0 - VT1 = 0x4000 - VTDLY = 0x4000 - VTIME = 0x5 - VWERASE = 0xe - WALL = 0x40000000 - WCLONE = 0x80000000 - WCONTINUED = 0x8 - WEXITED = 0x4 - WNOHANG = 0x1 - WNOTHREAD = 0x20000000 - WNOWAIT = 0x1000000 - WORDSIZE = 0x40 - WRAP = 0x20000 - WSTOPPED = 0x2 - WUNTRACED = 0x2 - XCASE = 0x4 - XTABS = 0x1800 - __TIOCFLUSH = 0x80047410 + AAFS_MAGIC = 0x5a3c69f0 + ADFS_SUPER_MAGIC = 0xadf5 + AFFS_SUPER_MAGIC = 0xadff + AFS_FS_MAGIC = 0x6b414653 + AFS_SUPER_MAGIC = 0x5346414f + AF_ALG = 0x26 + AF_APPLETALK = 0x5 + AF_ASH = 0x12 + AF_ATMPVC = 0x8 + AF_ATMSVC = 0x14 + AF_AX25 = 0x3 + AF_BLUETOOTH = 0x1f + AF_BRIDGE = 0x7 + AF_CAIF = 0x25 + AF_CAN = 0x1d + AF_DECnet = 0xc + AF_ECONET = 0x13 + AF_FILE = 0x1 + AF_IB = 0x1b + AF_IEEE802154 = 0x24 + AF_INET = 0x2 + AF_INET6 = 0xa + AF_IPX = 0x4 + AF_IRDA = 0x17 + AF_ISDN = 0x22 + AF_IUCV = 0x20 + AF_KCM = 0x29 + AF_KEY = 0xf + AF_LLC = 0x1a + AF_LOCAL = 0x1 + AF_MAX = 0x2c + AF_MPLS = 0x1c + AF_NETBEUI = 0xd + AF_NETLINK = 0x10 + AF_NETROM = 0x6 + AF_NFC = 0x27 + AF_PACKET = 0x11 + AF_PHONET = 0x23 + AF_PPPOX = 0x18 + AF_QIPCRTR = 0x2a + AF_RDS = 0x15 + AF_ROSE = 0xb + AF_ROUTE = 0x10 + AF_RXRPC = 0x21 + AF_SECURITY = 0xe + AF_SMC = 0x2b + AF_SNA = 0x16 + AF_TIPC = 0x1e + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_VSOCK = 0x28 + AF_WANPIPE = 0x19 + AF_X25 = 0x9 + AF_XDP = 0x2c + ALG_OP_DECRYPT = 0x0 + ALG_OP_ENCRYPT = 0x1 + ALG_SET_AEAD_ASSOCLEN = 0x4 + ALG_SET_AEAD_AUTHSIZE = 0x5 + ALG_SET_IV = 0x2 + ALG_SET_KEY = 0x1 + ALG_SET_OP = 0x3 + ANON_INODE_FS_MAGIC = 0x9041934 + ARPHRD_6LOWPAN = 0x339 + ARPHRD_ADAPT = 0x108 + ARPHRD_APPLETLK = 0x8 + ARPHRD_ARCNET = 0x7 + ARPHRD_ASH = 0x30d + ARPHRD_ATM = 0x13 + ARPHRD_AX25 = 0x3 + ARPHRD_BIF = 0x307 + ARPHRD_CAIF = 0x336 + ARPHRD_CAN = 0x118 + ARPHRD_CHAOS = 0x5 + ARPHRD_CISCO = 0x201 + ARPHRD_CSLIP = 0x101 + ARPHRD_CSLIP6 = 0x103 + ARPHRD_DDCMP = 0x205 + ARPHRD_DLCI = 0xf + ARPHRD_ECONET = 0x30e + ARPHRD_EETHER = 0x2 + ARPHRD_ETHER = 0x1 + ARPHRD_EUI64 = 0x1b + ARPHRD_FCAL = 0x311 + ARPHRD_FCFABRIC = 0x313 + ARPHRD_FCPL = 0x312 + ARPHRD_FCPP = 0x310 + ARPHRD_FDDI = 0x306 + ARPHRD_FRAD = 0x302 + ARPHRD_HDLC = 0x201 + ARPHRD_HIPPI = 0x30c + ARPHRD_HWX25 = 0x110 + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + ARPHRD_IEEE80211 = 0x321 + ARPHRD_IEEE80211_PRISM = 0x322 + ARPHRD_IEEE80211_RADIOTAP = 0x323 + ARPHRD_IEEE802154 = 0x324 + ARPHRD_IEEE802154_MONITOR = 0x325 + ARPHRD_IEEE802_TR = 0x320 + ARPHRD_INFINIBAND = 0x20 + ARPHRD_IP6GRE = 0x337 + ARPHRD_IPDDP = 0x309 + ARPHRD_IPGRE = 0x30a + ARPHRD_IRDA = 0x30f + ARPHRD_LAPB = 0x204 + ARPHRD_LOCALTLK = 0x305 + ARPHRD_LOOPBACK = 0x304 + ARPHRD_METRICOM = 0x17 + ARPHRD_NETLINK = 0x338 + ARPHRD_NETROM = 0x0 + ARPHRD_NONE = 0xfffe + ARPHRD_PHONET = 0x334 + ARPHRD_PHONET_PIPE = 0x335 + ARPHRD_PIMREG = 0x30b + ARPHRD_PPP = 0x200 + ARPHRD_PRONET = 0x4 + ARPHRD_RAWHDLC = 0x206 + ARPHRD_RAWIP = 0x207 + ARPHRD_ROSE = 0x10e + ARPHRD_RSRVD = 0x104 + ARPHRD_SIT = 0x308 + ARPHRD_SKIP = 0x303 + ARPHRD_SLIP = 0x100 + ARPHRD_SLIP6 = 0x102 + ARPHRD_TUNNEL = 0x300 + ARPHRD_TUNNEL6 = 0x301 + ARPHRD_VOID = 0xffff + ARPHRD_VSOCKMON = 0x33a + ARPHRD_X25 = 0x10f + ASI_LEON_DFLUSH = 0x11 + ASI_LEON_IFLUSH = 0x10 + ASI_LEON_MMUFLUSH = 0x18 + AUTOFS_SUPER_MAGIC = 0x187 + B0 = 0x0 + B1000000 = 0x1008 + B110 = 0x3 + B115200 = 0x1002 + B1152000 = 0x1009 + B1200 = 0x9 + B134 = 0x4 + B150 = 0x5 + B1500000 = 0x100a + B1800 = 0xa + B19200 = 0xe + B200 = 0x6 + B2000000 = 0x100b + B230400 = 0x1003 + B2400 = 0xb + B2500000 = 0x100c + B300 = 0x7 + B3000000 = 0x100d + B3500000 = 0x100e + B38400 = 0xf + B4000000 = 0x100f + B460800 = 0x1004 + B4800 = 0xc + B50 = 0x1 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B600 = 0x8 + B75 = 0x2 + B921600 = 0x1007 + B9600 = 0xd + BALLOON_KVM_MAGIC = 0x13661366 + BDEVFS_MAGIC = 0x62646576 + BINFMTFS_MAGIC = 0x42494e4d + BLKBSZGET = 0x40081270 + BLKBSZSET = 0x80081271 + BLKFLSBUF = 0x20001261 + BLKFRAGET = 0x20001265 + BLKFRASET = 0x20001264 + BLKGETSIZE = 0x20001260 + BLKGETSIZE64 = 0x40081272 + BLKPBSZGET = 0x2000127b + BLKRAGET = 0x20001263 + BLKRASET = 0x20001262 + BLKROGET = 0x2000125e + BLKROSET = 0x2000125d + BLKRRPART = 0x2000125f + BLKSECTGET = 0x20001267 + BLKSECTSET = 0x20001266 + BLKSSZGET = 0x20001268 + BOTHER = 0x1000 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DIV = 0x30 + BPF_FS_MAGIC = 0xcafe4a11 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LL_OFF = -0x200000 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXINSNS = 0x1000 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MOD = 0x90 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_NET_OFF = -0x100000 + BPF_OR = 0x40 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BPF_XOR = 0xa0 + BRKINT = 0x2 + BS0 = 0x0 + BS1 = 0x2000 + BSDLY = 0x2000 + BTRFS_SUPER_MAGIC = 0x9123683e + BTRFS_TEST_MAGIC = 0x73727279 + CAN_BCM = 0x2 + CAN_EFF_FLAG = 0x80000000 + CAN_EFF_ID_BITS = 0x1d + CAN_EFF_MASK = 0x1fffffff + CAN_ERR_FLAG = 0x20000000 + CAN_ERR_MASK = 0x1fffffff + CAN_INV_FILTER = 0x20000000 + CAN_ISOTP = 0x6 + CAN_MAX_DLC = 0x8 + CAN_MAX_DLEN = 0x8 + CAN_MCNET = 0x5 + CAN_MTU = 0x10 + CAN_NPROTO = 0x7 + CAN_RAW = 0x1 + CAN_RAW_FILTER_MAX = 0x200 + CAN_RTR_FLAG = 0x40000000 + CAN_SFF_ID_BITS = 0xb + CAN_SFF_MASK = 0x7ff + CAN_TP16 = 0x3 + CAN_TP20 = 0x4 + CBAUD = 0x100f + CBAUDEX = 0x1000 + CFLUSH = 0xf + CGROUP2_SUPER_MAGIC = 0x63677270 + CGROUP_SUPER_MAGIC = 0x27e0eb + CIBAUD = 0x100f0000 + CLOCAL = 0x800 + CLOCK_BOOTTIME = 0x7 + CLOCK_BOOTTIME_ALARM = 0x9 + CLOCK_DEFAULT = 0x0 + CLOCK_EXT = 0x1 + CLOCK_INT = 0x2 + CLOCK_MONOTONIC = 0x1 + CLOCK_MONOTONIC_COARSE = 0x6 + CLOCK_MONOTONIC_RAW = 0x4 + CLOCK_PROCESS_CPUTIME_ID = 0x2 + CLOCK_REALTIME = 0x0 + CLOCK_REALTIME_ALARM = 0x8 + CLOCK_REALTIME_COARSE = 0x5 + CLOCK_TAI = 0xb + CLOCK_THREAD_CPUTIME_ID = 0x3 + CLOCK_TXFROMRX = 0x4 + CLOCK_TXINT = 0x3 + CLONE_CHILD_CLEARTID = 0x200000 + CLONE_CHILD_SETTID = 0x1000000 + CLONE_DETACHED = 0x400000 + CLONE_FILES = 0x400 + CLONE_FS = 0x200 + CLONE_IO = 0x80000000 + CLONE_NEWCGROUP = 0x2000000 + CLONE_NEWIPC = 0x8000000 + CLONE_NEWNET = 0x40000000 + CLONE_NEWNS = 0x20000 + CLONE_NEWPID = 0x20000000 + CLONE_NEWUSER = 0x10000000 + CLONE_NEWUTS = 0x4000000 + CLONE_PARENT = 0x8000 + CLONE_PARENT_SETTID = 0x100000 + CLONE_PTRACE = 0x2000 + CLONE_SETTLS = 0x80000 + CLONE_SIGHAND = 0x800 + CLONE_SYSVSEM = 0x40000 + CLONE_THREAD = 0x10000 + CLONE_UNTRACED = 0x800000 + CLONE_VFORK = 0x4000 + CLONE_VM = 0x100 + CMSPAR = 0x40000000 + CODA_SUPER_MAGIC = 0x73757245 + CR0 = 0x0 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRAMFS_MAGIC = 0x28cd3d45 + CRDLY = 0x600 + CREAD = 0x80 + CRTSCTS = 0x80000000 + CS5 = 0x0 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIGNAL = 0xff + CSIZE = 0x30 + CSTART = 0x11 + CSTATUS = 0x0 + CSTOP = 0x13 + CSTOPB = 0x40 + CSUSP = 0x1a + DAXFS_MAGIC = 0x64646178 + DEBUGFS_MAGIC = 0x64626720 + DEVPTS_SUPER_MAGIC = 0x1cd1 + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + ECRYPTFS_SUPER_MAGIC = 0xf15f + EFD_CLOEXEC = 0x400000 + EFD_NONBLOCK = 0x4000 + EFD_SEMAPHORE = 0x1 + EFIVARFS_MAGIC = 0xde5e81e4 + EFS_SUPER_MAGIC = 0x414a53 + EMT_TAGOVF = 0x1 + ENCODING_DEFAULT = 0x0 + ENCODING_FM_MARK = 0x3 + ENCODING_FM_SPACE = 0x4 + ENCODING_MANCHESTER = 0x5 + ENCODING_NRZ = 0x1 + ENCODING_NRZI = 0x2 + EPOLLERR = 0x8 + EPOLLET = 0x80000000 + EPOLLEXCLUSIVE = 0x10000000 + EPOLLHUP = 0x10 + EPOLLIN = 0x1 + EPOLLMSG = 0x400 + EPOLLONESHOT = 0x40000000 + EPOLLOUT = 0x4 + EPOLLPRI = 0x2 + EPOLLRDBAND = 0x80 + EPOLLRDHUP = 0x2000 + EPOLLRDNORM = 0x40 + EPOLLWAKEUP = 0x20000000 + EPOLLWRBAND = 0x200 + EPOLLWRNORM = 0x100 + EPOLL_CLOEXEC = 0x400000 + EPOLL_CTL_ADD = 0x1 + EPOLL_CTL_DEL = 0x2 + EPOLL_CTL_MOD = 0x3 + ETH_P_1588 = 0x88f7 + ETH_P_8021AD = 0x88a8 + ETH_P_8021AH = 0x88e7 + ETH_P_8021Q = 0x8100 + ETH_P_80221 = 0x8917 + ETH_P_802_2 = 0x4 + ETH_P_802_3 = 0x1 + ETH_P_802_3_MIN = 0x600 + ETH_P_802_EX1 = 0x88b5 + ETH_P_AARP = 0x80f3 + ETH_P_AF_IUCV = 0xfbfb + ETH_P_ALL = 0x3 + ETH_P_AOE = 0x88a2 + ETH_P_ARCNET = 0x1a + ETH_P_ARP = 0x806 + ETH_P_ATALK = 0x809b + ETH_P_ATMFATE = 0x8884 + ETH_P_ATMMPOA = 0x884c + ETH_P_AX25 = 0x2 + ETH_P_BATMAN = 0x4305 + ETH_P_BPQ = 0x8ff + ETH_P_CAIF = 0xf7 + ETH_P_CAN = 0xc + ETH_P_CANFD = 0xd + ETH_P_CONTROL = 0x16 + ETH_P_CUST = 0x6006 + ETH_P_DDCMP = 0x6 + ETH_P_DEC = 0x6000 + ETH_P_DIAG = 0x6005 + ETH_P_DNA_DL = 0x6001 + ETH_P_DNA_RC = 0x6002 + ETH_P_DNA_RT = 0x6003 + ETH_P_DSA = 0x1b + ETH_P_ECONET = 0x18 + ETH_P_EDSA = 0xdada + ETH_P_ERSPAN = 0x88be + ETH_P_ERSPAN2 = 0x22eb + ETH_P_FCOE = 0x8906 + ETH_P_FIP = 0x8914 + ETH_P_HDLC = 0x19 + ETH_P_HSR = 0x892f + ETH_P_IBOE = 0x8915 + ETH_P_IEEE802154 = 0xf6 + ETH_P_IEEEPUP = 0xa00 + ETH_P_IEEEPUPAT = 0xa01 + ETH_P_IFE = 0xed3e + ETH_P_IP = 0x800 + ETH_P_IPV6 = 0x86dd + ETH_P_IPX = 0x8137 + ETH_P_IRDA = 0x17 + ETH_P_LAT = 0x6004 + ETH_P_LINK_CTL = 0x886c + ETH_P_LOCALTALK = 0x9 + ETH_P_LOOP = 0x60 + ETH_P_LOOPBACK = 0x9000 + ETH_P_MACSEC = 0x88e5 + ETH_P_MAP = 0xf9 + ETH_P_MOBITEX = 0x15 + ETH_P_MPLS_MC = 0x8848 + ETH_P_MPLS_UC = 0x8847 + ETH_P_MVRP = 0x88f5 + ETH_P_NCSI = 0x88f8 + ETH_P_NSH = 0x894f + ETH_P_PAE = 0x888e + ETH_P_PAUSE = 0x8808 + ETH_P_PHONET = 0xf5 + ETH_P_PPPTALK = 0x10 + ETH_P_PPP_DISC = 0x8863 + ETH_P_PPP_MP = 0x8 + ETH_P_PPP_SES = 0x8864 + ETH_P_PREAUTH = 0x88c7 + ETH_P_PRP = 0x88fb + ETH_P_PUP = 0x200 + ETH_P_PUPAT = 0x201 + ETH_P_QINQ1 = 0x9100 + ETH_P_QINQ2 = 0x9200 + ETH_P_QINQ3 = 0x9300 + ETH_P_RARP = 0x8035 + ETH_P_SCA = 0x6007 + ETH_P_SLOW = 0x8809 + ETH_P_SNAP = 0x5 + ETH_P_TDLS = 0x890d + ETH_P_TEB = 0x6558 + ETH_P_TIPC = 0x88ca + ETH_P_TRAILER = 0x1c + ETH_P_TR_802_2 = 0x11 + ETH_P_TSN = 0x22f0 + ETH_P_WAN_PPP = 0x7 + ETH_P_WCCP = 0x883e + ETH_P_X25 = 0x805 + ETH_P_XDSA = 0xf8 + EXABYTE_ENABLE_NEST = 0xf0 + EXT2_SUPER_MAGIC = 0xef53 + EXT3_SUPER_MAGIC = 0xef53 + EXT4_SUPER_MAGIC = 0xef53 + EXTA = 0xe + EXTB = 0xf + EXTPROC = 0x10000 + F2FS_SUPER_MAGIC = 0xf2f52010 + FALLOC_FL_COLLAPSE_RANGE = 0x8 + FALLOC_FL_INSERT_RANGE = 0x20 + FALLOC_FL_KEEP_SIZE = 0x1 + FALLOC_FL_NO_HIDE_STALE = 0x4 + FALLOC_FL_PUNCH_HOLE = 0x2 + FALLOC_FL_UNSHARE_RANGE = 0x40 + FALLOC_FL_ZERO_RANGE = 0x10 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FF0 = 0x0 + FF1 = 0x8000 + FFDLY = 0x8000 + FLUSHO = 0x1000 + FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 + FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 + FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 + FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 + FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 + FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 + FS_ENCRYPTION_MODE_INVALID = 0x0 + FS_ENCRYPTION_MODE_SPECK128_256_CTS = 0x8 + FS_ENCRYPTION_MODE_SPECK128_256_XTS = 0x7 + FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 + FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 + FS_KEY_DESCRIPTOR_SIZE = 0x8 + FS_KEY_DESC_PREFIX = "fscrypt:" + FS_KEY_DESC_PREFIX_SIZE = 0x8 + FS_MAX_KEY_SIZE = 0x40 + FS_POLICY_FLAGS_PAD_16 = 0x2 + FS_POLICY_FLAGS_PAD_32 = 0x3 + FS_POLICY_FLAGS_PAD_4 = 0x0 + FS_POLICY_FLAGS_PAD_8 = 0x1 + FS_POLICY_FLAGS_PAD_MASK = 0x3 + FS_POLICY_FLAGS_VALID = 0x3 + FUTEXFS_SUPER_MAGIC = 0xbad1dea + F_ADD_SEALS = 0x409 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x406 + F_EXLCK = 0x4 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLEASE = 0x401 + F_GETLK = 0x7 + F_GETLK64 = 0x7 + F_GETOWN = 0x5 + F_GETOWN_EX = 0x10 + F_GETPIPE_SZ = 0x408 + F_GETSIG = 0xb + F_GET_FILE_RW_HINT = 0x40d + F_GET_RW_HINT = 0x40b + F_GET_SEALS = 0x40a + F_LOCK = 0x1 + F_NOTIFY = 0x402 + F_OFD_GETLK = 0x24 + F_OFD_SETLK = 0x25 + F_OFD_SETLKW = 0x26 + F_OK = 0x0 + F_RDLCK = 0x1 + F_SEAL_GROW = 0x4 + F_SEAL_SEAL = 0x1 + F_SEAL_SHRINK = 0x2 + F_SEAL_WRITE = 0x8 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLEASE = 0x400 + F_SETLK = 0x8 + F_SETLK64 = 0x8 + F_SETLKW = 0x9 + F_SETLKW64 = 0x9 + F_SETOWN = 0x6 + F_SETOWN_EX = 0xf + F_SETPIPE_SZ = 0x407 + F_SETSIG = 0xa + F_SET_FILE_RW_HINT = 0x40e + F_SET_RW_HINT = 0x40c + F_SHLCK = 0x8 + F_TEST = 0x3 + F_TLOCK = 0x2 + F_ULOCK = 0x0 + F_UNLCK = 0x3 + F_WRLCK = 0x2 + GENL_ADMIN_PERM = 0x1 + GENL_CMD_CAP_DO = 0x2 + GENL_CMD_CAP_DUMP = 0x4 + GENL_CMD_CAP_HASPOL = 0x8 + GENL_HDRLEN = 0x4 + GENL_ID_CTRL = 0x10 + GENL_ID_PMCRAID = 0x12 + GENL_ID_VFS_DQUOT = 0x11 + GENL_MAX_ID = 0x3ff + GENL_MIN_ID = 0x10 + GENL_NAMSIZ = 0x10 + GENL_START_ALLOC = 0x13 + GENL_UNS_ADMIN_PERM = 0x10 + GRND_NONBLOCK = 0x1 + GRND_RANDOM = 0x2 + HDIO_DRIVE_CMD = 0x31f + HDIO_DRIVE_CMD_AEB = 0x31e + HDIO_DRIVE_CMD_HDR_SIZE = 0x4 + HDIO_DRIVE_HOB_HDR_SIZE = 0x8 + HDIO_DRIVE_RESET = 0x31c + HDIO_DRIVE_TASK = 0x31e + HDIO_DRIVE_TASKFILE = 0x31d + HDIO_DRIVE_TASK_HDR_SIZE = 0x8 + HDIO_GETGEO = 0x301 + HDIO_GET_32BIT = 0x309 + HDIO_GET_ACOUSTIC = 0x30f + HDIO_GET_ADDRESS = 0x310 + HDIO_GET_BUSSTATE = 0x31a + HDIO_GET_DMA = 0x30b + HDIO_GET_IDENTITY = 0x30d + HDIO_GET_KEEPSETTINGS = 0x308 + HDIO_GET_MULTCOUNT = 0x304 + HDIO_GET_NICE = 0x30c + HDIO_GET_NOWERR = 0x30a + HDIO_GET_QDMA = 0x305 + HDIO_GET_UNMASKINTR = 0x302 + HDIO_GET_WCACHE = 0x30e + HDIO_OBSOLETE_IDENTITY = 0x307 + HDIO_SCAN_HWIF = 0x328 + HDIO_SET_32BIT = 0x324 + HDIO_SET_ACOUSTIC = 0x32c + HDIO_SET_ADDRESS = 0x32f + HDIO_SET_BUSSTATE = 0x32d + HDIO_SET_DMA = 0x326 + HDIO_SET_KEEPSETTINGS = 0x323 + HDIO_SET_MULTCOUNT = 0x321 + HDIO_SET_NICE = 0x329 + HDIO_SET_NOWERR = 0x325 + HDIO_SET_PIO_MODE = 0x327 + HDIO_SET_QDMA = 0x32e + HDIO_SET_UNMASKINTR = 0x322 + HDIO_SET_WCACHE = 0x32b + HDIO_SET_XFER = 0x306 + HDIO_TRISTATE_HWIF = 0x31b + HDIO_UNREGISTER_HWIF = 0x32a + HOSTFS_SUPER_MAGIC = 0xc0ffee + HPFS_SUPER_MAGIC = 0xf995e849 + HUGETLBFS_MAGIC = 0x958458f6 + HUPCL = 0x400 + IBSHIFT = 0x10 + ICANON = 0x2 + ICMPV6_FILTER = 0x1 + ICRNL = 0x100 + IEXTEN = 0x8000 + IFA_F_DADFAILED = 0x8 + IFA_F_DEPRECATED = 0x20 + IFA_F_HOMEADDRESS = 0x10 + IFA_F_MANAGETEMPADDR = 0x100 + IFA_F_MCAUTOJOIN = 0x400 + IFA_F_NODAD = 0x2 + IFA_F_NOPREFIXROUTE = 0x200 + IFA_F_OPTIMISTIC = 0x4 + IFA_F_PERMANENT = 0x80 + IFA_F_SECONDARY = 0x1 + IFA_F_STABLE_PRIVACY = 0x800 + IFA_F_TEMPORARY = 0x1 + IFA_F_TENTATIVE = 0x40 + IFA_MAX = 0xa + IFF_ALLMULTI = 0x200 + IFF_ATTACH_QUEUE = 0x200 + IFF_AUTOMEDIA = 0x4000 + IFF_BROADCAST = 0x2 + IFF_DEBUG = 0x4 + IFF_DETACH_QUEUE = 0x400 + IFF_DORMANT = 0x20000 + IFF_DYNAMIC = 0x8000 + IFF_ECHO = 0x40000 + IFF_LOOPBACK = 0x8 + IFF_LOWER_UP = 0x10000 + IFF_MASTER = 0x400 + IFF_MULTICAST = 0x1000 + IFF_MULTI_QUEUE = 0x100 + IFF_NAPI = 0x10 + IFF_NAPI_FRAGS = 0x20 + IFF_NOARP = 0x80 + IFF_NOFILTER = 0x1000 + IFF_NOTRAILERS = 0x20 + IFF_NO_PI = 0x1000 + IFF_ONE_QUEUE = 0x2000 + IFF_PERSIST = 0x800 + IFF_POINTOPOINT = 0x10 + IFF_PORTSEL = 0x2000 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SLAVE = 0x800 + IFF_TAP = 0x2 + IFF_TUN = 0x1 + IFF_TUN_EXCL = 0x8000 + IFF_UP = 0x1 + IFF_VNET_HDR = 0x4000 + IFF_VOLATILE = 0x70c5a + IFNAMSIZ = 0x10 + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_ACCESS = 0x1 + IN_ALL_EVENTS = 0xfff + IN_ATTRIB = 0x4 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLOEXEC = 0x400000 + IN_CLOSE = 0x18 + IN_CLOSE_NOWRITE = 0x10 + IN_CLOSE_WRITE = 0x8 + IN_CREATE = 0x100 + IN_DELETE = 0x200 + IN_DELETE_SELF = 0x400 + IN_DONT_FOLLOW = 0x2000000 + IN_EXCL_UNLINK = 0x4000000 + IN_IGNORED = 0x8000 + IN_ISDIR = 0x40000000 + IN_LOOPBACKNET = 0x7f + IN_MASK_ADD = 0x20000000 + IN_MODIFY = 0x2 + IN_MOVE = 0xc0 + IN_MOVED_FROM = 0x40 + IN_MOVED_TO = 0x80 + IN_MOVE_SELF = 0x800 + IN_NONBLOCK = 0x4000 + IN_ONESHOT = 0x80000000 + IN_ONLYDIR = 0x1000000 + IN_OPEN = 0x20 + IN_Q_OVERFLOW = 0x4000 + IN_UNMOUNT = 0x2000 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + IPPROTO_AH = 0x33 + IPPROTO_BEETPH = 0x5e + IPPROTO_COMP = 0x6c + IPPROTO_DCCP = 0x21 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_ESP = 0x32 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPIP = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_MH = 0x87 + IPPROTO_MPLS = 0x89 + IPPROTO_MTP = 0x5c + IPPROTO_NONE = 0x3b + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 + IPV6_2292DSTOPTS = 0x4 + IPV6_2292HOPLIMIT = 0x8 + IPV6_2292HOPOPTS = 0x3 + IPV6_2292PKTINFO = 0x2 + IPV6_2292PKTOPTIONS = 0x6 + IPV6_2292RTHDR = 0x5 + IPV6_ADDRFORM = 0x1 + IPV6_ADDR_PREFERENCES = 0x48 + IPV6_ADD_MEMBERSHIP = 0x14 + IPV6_AUTHHDR = 0xa + IPV6_AUTOFLOWLABEL = 0x46 + IPV6_CHECKSUM = 0x7 + IPV6_DONTFRAG = 0x3e + IPV6_DROP_MEMBERSHIP = 0x15 + IPV6_DSTOPTS = 0x3b + IPV6_FREEBIND = 0x4e + IPV6_HDRINCL = 0x24 + IPV6_HOPLIMIT = 0x34 + IPV6_HOPOPTS = 0x36 + IPV6_IPSEC_POLICY = 0x22 + IPV6_JOIN_ANYCAST = 0x1b + IPV6_JOIN_GROUP = 0x14 + IPV6_LEAVE_ANYCAST = 0x1c + IPV6_LEAVE_GROUP = 0x15 + IPV6_MINHOPCOUNT = 0x49 + IPV6_MTU = 0x18 + IPV6_MTU_DISCOVER = 0x17 + IPV6_MULTICAST_HOPS = 0x12 + IPV6_MULTICAST_IF = 0x11 + IPV6_MULTICAST_LOOP = 0x13 + IPV6_NEXTHOP = 0x9 + IPV6_ORIGDSTADDR = 0x4a + IPV6_PATHMTU = 0x3d + IPV6_PKTINFO = 0x32 + IPV6_PMTUDISC_DO = 0x2 + IPV6_PMTUDISC_DONT = 0x0 + IPV6_PMTUDISC_INTERFACE = 0x4 + IPV6_PMTUDISC_OMIT = 0x5 + IPV6_PMTUDISC_PROBE = 0x3 + IPV6_PMTUDISC_WANT = 0x1 + IPV6_RECVDSTOPTS = 0x3a + IPV6_RECVERR = 0x19 + IPV6_RECVFRAGSIZE = 0x4d + IPV6_RECVHOPLIMIT = 0x33 + IPV6_RECVHOPOPTS = 0x35 + IPV6_RECVORIGDSTADDR = 0x4a + IPV6_RECVPATHMTU = 0x3c + IPV6_RECVPKTINFO = 0x31 + IPV6_RECVRTHDR = 0x38 + IPV6_RECVTCLASS = 0x42 + IPV6_ROUTER_ALERT = 0x16 + IPV6_RTHDR = 0x39 + IPV6_RTHDRDSTOPTS = 0x37 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_RXDSTOPTS = 0x3b + IPV6_RXHOPOPTS = 0x36 + IPV6_TCLASS = 0x43 + IPV6_TRANSPARENT = 0x4b + IPV6_UNICAST_HOPS = 0x10 + IPV6_UNICAST_IF = 0x4c + IPV6_V6ONLY = 0x1a + IPV6_XFRM_POLICY = 0x23 + IP_ADD_MEMBERSHIP = 0x23 + IP_ADD_SOURCE_MEMBERSHIP = 0x27 + IP_BIND_ADDRESS_NO_PORT = 0x18 + IP_BLOCK_SOURCE = 0x26 + IP_CHECKSUM = 0x17 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0x24 + IP_DROP_SOURCE_MEMBERSHIP = 0x28 + IP_FREEBIND = 0xf + IP_HDRINCL = 0x3 + IP_IPSEC_POLICY = 0x10 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0x14 + IP_MF = 0x2000 + IP_MINTTL = 0x15 + IP_MSFILTER = 0x29 + IP_MSS = 0x240 + IP_MTU = 0xe + IP_MTU_DISCOVER = 0xa + IP_MULTICAST_ALL = 0x31 + IP_MULTICAST_IF = 0x20 + IP_MULTICAST_LOOP = 0x22 + IP_MULTICAST_TTL = 0x21 + IP_NODEFRAG = 0x16 + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x4 + IP_ORIGDSTADDR = 0x14 + IP_PASSSEC = 0x12 + IP_PKTINFO = 0x8 + IP_PKTOPTIONS = 0x9 + IP_PMTUDISC = 0xa + IP_PMTUDISC_DO = 0x2 + IP_PMTUDISC_DONT = 0x0 + IP_PMTUDISC_INTERFACE = 0x4 + IP_PMTUDISC_OMIT = 0x5 + IP_PMTUDISC_PROBE = 0x3 + IP_PMTUDISC_WANT = 0x1 + IP_RECVERR = 0xb + IP_RECVFRAGSIZE = 0x19 + IP_RECVOPTS = 0x6 + IP_RECVORIGDSTADDR = 0x14 + IP_RECVRETOPTS = 0x7 + IP_RECVTOS = 0xd + IP_RECVTTL = 0xc + IP_RETOPTS = 0x7 + IP_RF = 0x8000 + IP_ROUTER_ALERT = 0x5 + IP_TOS = 0x1 + IP_TRANSPARENT = 0x13 + IP_TTL = 0x2 + IP_UNBLOCK_SOURCE = 0x25 + IP_UNICAST_IF = 0x32 + IP_XFRM_POLICY = 0x11 + ISIG = 0x1 + ISOFS_SUPER_MAGIC = 0x9660 + ISTRIP = 0x20 + IUCLC = 0x200 + IUTF8 = 0x4000 + IXANY = 0x800 + IXOFF = 0x1000 + IXON = 0x400 + JFFS2_SUPER_MAGIC = 0x72b6 + KEXEC_ARCH_386 = 0x30000 + KEXEC_ARCH_68K = 0x40000 + KEXEC_ARCH_AARCH64 = 0xb70000 + KEXEC_ARCH_ARM = 0x280000 + KEXEC_ARCH_DEFAULT = 0x0 + KEXEC_ARCH_IA_64 = 0x320000 + KEXEC_ARCH_MASK = 0xffff0000 + KEXEC_ARCH_MIPS = 0x80000 + KEXEC_ARCH_MIPS_LE = 0xa0000 + KEXEC_ARCH_PPC = 0x140000 + KEXEC_ARCH_PPC64 = 0x150000 + KEXEC_ARCH_S390 = 0x160000 + KEXEC_ARCH_SH = 0x2a0000 + KEXEC_ARCH_X86_64 = 0x3e0000 + KEXEC_FILE_NO_INITRAMFS = 0x4 + KEXEC_FILE_ON_CRASH = 0x2 + KEXEC_FILE_UNLOAD = 0x1 + KEXEC_ON_CRASH = 0x1 + KEXEC_PRESERVE_CONTEXT = 0x2 + KEXEC_SEGMENT_MAX = 0x10 + KEYCTL_ASSUME_AUTHORITY = 0x10 + KEYCTL_CHOWN = 0x4 + KEYCTL_CLEAR = 0x7 + KEYCTL_DESCRIBE = 0x6 + KEYCTL_DH_COMPUTE = 0x17 + KEYCTL_GET_KEYRING_ID = 0x0 + KEYCTL_GET_PERSISTENT = 0x16 + KEYCTL_GET_SECURITY = 0x11 + KEYCTL_INSTANTIATE = 0xc + KEYCTL_INSTANTIATE_IOV = 0x14 + KEYCTL_INVALIDATE = 0x15 + KEYCTL_JOIN_SESSION_KEYRING = 0x1 + KEYCTL_LINK = 0x8 + KEYCTL_NEGATE = 0xd + KEYCTL_PKEY_DECRYPT = 0x1a + KEYCTL_PKEY_ENCRYPT = 0x19 + KEYCTL_PKEY_QUERY = 0x18 + KEYCTL_PKEY_SIGN = 0x1b + KEYCTL_PKEY_VERIFY = 0x1c + KEYCTL_READ = 0xb + KEYCTL_REJECT = 0x13 + KEYCTL_RESTRICT_KEYRING = 0x1d + KEYCTL_REVOKE = 0x3 + KEYCTL_SEARCH = 0xa + KEYCTL_SESSION_TO_PARENT = 0x12 + KEYCTL_SETPERM = 0x5 + KEYCTL_SET_REQKEY_KEYRING = 0xe + KEYCTL_SET_TIMEOUT = 0xf + KEYCTL_SUPPORTS_DECRYPT = 0x2 + KEYCTL_SUPPORTS_ENCRYPT = 0x1 + KEYCTL_SUPPORTS_SIGN = 0x4 + KEYCTL_SUPPORTS_VERIFY = 0x8 + KEYCTL_UNLINK = 0x9 + KEYCTL_UPDATE = 0x2 + KEY_REQKEY_DEFL_DEFAULT = 0x0 + KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 + KEY_REQKEY_DEFL_NO_CHANGE = -0x1 + KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 + KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 + KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 + KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 + KEY_REQKEY_DEFL_USER_KEYRING = 0x4 + KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 + KEY_SPEC_GROUP_KEYRING = -0x6 + KEY_SPEC_PROCESS_KEYRING = -0x2 + KEY_SPEC_REQKEY_AUTH_KEY = -0x7 + KEY_SPEC_REQUESTOR_KEYRING = -0x8 + KEY_SPEC_SESSION_KEYRING = -0x3 + KEY_SPEC_THREAD_KEYRING = -0x1 + KEY_SPEC_USER_KEYRING = -0x4 + KEY_SPEC_USER_SESSION_KEYRING = -0x5 + LINUX_REBOOT_CMD_CAD_OFF = 0x0 + LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef + LINUX_REBOOT_CMD_HALT = 0xcdef0123 + LINUX_REBOOT_CMD_KEXEC = 0x45584543 + LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc + LINUX_REBOOT_CMD_RESTART = 0x1234567 + LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 + LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 + LINUX_REBOOT_MAGIC1 = 0xfee1dead + LINUX_REBOOT_MAGIC2 = 0x28121969 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DODUMP = 0x11 + MADV_DOFORK = 0xb + MADV_DONTDUMP = 0x10 + MADV_DONTFORK = 0xa + MADV_DONTNEED = 0x4 + MADV_FREE = 0x8 + MADV_HUGEPAGE = 0xe + MADV_HWPOISON = 0x64 + MADV_KEEPONFORK = 0x13 + MADV_MERGEABLE = 0xc + MADV_NOHUGEPAGE = 0xf + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_REMOVE = 0x9 + MADV_SEQUENTIAL = 0x2 + MADV_UNMERGEABLE = 0xd + MADV_WILLNEED = 0x3 + MADV_WIPEONFORK = 0x12 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 + MAP_EXECUTABLE = 0x1000 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_FIXED_NOREPLACE = 0x100000 + MAP_GROWSDOWN = 0x200 + MAP_HUGETLB = 0x40000 + MAP_HUGE_MASK = 0x3f + MAP_HUGE_SHIFT = 0x1a + MAP_LOCKED = 0x100 + MAP_NONBLOCK = 0x10000 + MAP_NORESERVE = 0x40 + MAP_POPULATE = 0x8000 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x20 + MAP_SHARED = 0x1 + MAP_SHARED_VALIDATE = 0x3 + MAP_STACK = 0x20000 + MAP_TYPE = 0xf + MCL_CURRENT = 0x2000 + MCL_FUTURE = 0x4000 + MCL_ONFAULT = 0x8000 + MFD_ALLOW_SEALING = 0x2 + MFD_CLOEXEC = 0x1 + MFD_HUGETLB = 0x4 + MFD_HUGE_16GB = -0x78000000 + MFD_HUGE_16MB = 0x60000000 + MFD_HUGE_1GB = 0x78000000 + MFD_HUGE_1MB = 0x50000000 + MFD_HUGE_256MB = 0x70000000 + MFD_HUGE_2GB = 0x7c000000 + MFD_HUGE_2MB = 0x54000000 + MFD_HUGE_32MB = 0x64000000 + MFD_HUGE_512KB = 0x4c000000 + MFD_HUGE_512MB = 0x74000000 + MFD_HUGE_64KB = 0x40000000 + MFD_HUGE_8MB = 0x5c000000 + MFD_HUGE_MASK = 0x3f + MFD_HUGE_SHIFT = 0x1a + MINIX2_SUPER_MAGIC = 0x2468 + MINIX2_SUPER_MAGIC2 = 0x2478 + MINIX3_SUPER_MAGIC = 0x4d5a + MINIX_SUPER_MAGIC = 0x137f + MINIX_SUPER_MAGIC2 = 0x138f + MNT_DETACH = 0x2 + MNT_EXPIRE = 0x4 + MNT_FORCE = 0x1 + MODULE_INIT_IGNORE_MODVERSIONS = 0x1 + MODULE_INIT_IGNORE_VERMAGIC = 0x2 + MSDOS_SUPER_MAGIC = 0x4d44 + MSG_BATCH = 0x40000 + MSG_CMSG_CLOEXEC = 0x40000000 + MSG_CONFIRM = 0x800 + MSG_CTRUNC = 0x8 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x40 + MSG_EOR = 0x80 + MSG_ERRQUEUE = 0x2000 + MSG_FASTOPEN = 0x20000000 + MSG_FIN = 0x200 + MSG_MORE = 0x8000 + MSG_NOSIGNAL = 0x4000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_PROXY = 0x10 + MSG_RST = 0x1000 + MSG_SYN = 0x400 + MSG_TRUNC = 0x20 + MSG_TRYHARD = 0x4 + MSG_WAITALL = 0x100 + MSG_WAITFORONE = 0x10000 + MSG_ZEROCOPY = 0x4000000 + MS_ACTIVE = 0x40000000 + MS_ASYNC = 0x1 + MS_BIND = 0x1000 + MS_BORN = 0x20000000 + MS_DIRSYNC = 0x80 + MS_INVALIDATE = 0x2 + MS_I_VERSION = 0x800000 + MS_KERNMOUNT = 0x400000 + MS_LAZYTIME = 0x2000000 + MS_MANDLOCK = 0x40 + MS_MGC_MSK = 0xffff0000 + MS_MGC_VAL = 0xc0ed0000 + MS_MOVE = 0x2000 + MS_NOATIME = 0x400 + MS_NODEV = 0x4 + MS_NODIRATIME = 0x800 + MS_NOEXEC = 0x8 + MS_NOREMOTELOCK = 0x8000000 + MS_NOSEC = 0x10000000 + MS_NOSUID = 0x2 + MS_NOUSER = -0x80000000 + MS_POSIXACL = 0x10000 + MS_PRIVATE = 0x40000 + MS_RDONLY = 0x1 + MS_REC = 0x4000 + MS_RELATIME = 0x200000 + MS_REMOUNT = 0x20 + MS_RMT_MASK = 0x2800051 + MS_SHARED = 0x100000 + MS_SILENT = 0x8000 + MS_SLAVE = 0x80000 + MS_STRICTATIME = 0x1000000 + MS_SUBMOUNT = 0x4000000 + MS_SYNC = 0x4 + MS_SYNCHRONOUS = 0x10 + MS_UNBINDABLE = 0x20000 + MS_VERBOSE = 0x8000 + MTD_INODE_FS_MAGIC = 0x11307854 + NAME_MAX = 0xff + NCP_SUPER_MAGIC = 0x564c + NETLINK_ADD_MEMBERSHIP = 0x1 + NETLINK_AUDIT = 0x9 + NETLINK_BROADCAST_ERROR = 0x4 + NETLINK_CAP_ACK = 0xa + NETLINK_CONNECTOR = 0xb + NETLINK_CRYPTO = 0x15 + NETLINK_DNRTMSG = 0xe + NETLINK_DROP_MEMBERSHIP = 0x2 + NETLINK_ECRYPTFS = 0x13 + NETLINK_EXT_ACK = 0xb + NETLINK_FIB_LOOKUP = 0xa + NETLINK_FIREWALL = 0x3 + NETLINK_GENERIC = 0x10 + NETLINK_GET_STRICT_CHK = 0xc + NETLINK_INET_DIAG = 0x4 + NETLINK_IP6_FW = 0xd + NETLINK_ISCSI = 0x8 + NETLINK_KOBJECT_UEVENT = 0xf + NETLINK_LISTEN_ALL_NSID = 0x8 + NETLINK_LIST_MEMBERSHIPS = 0x9 + NETLINK_NETFILTER = 0xc + NETLINK_NFLOG = 0x5 + NETLINK_NO_ENOBUFS = 0x5 + NETLINK_PKTINFO = 0x3 + NETLINK_RDMA = 0x14 + NETLINK_ROUTE = 0x0 + NETLINK_RX_RING = 0x6 + NETLINK_SCSITRANSPORT = 0x12 + NETLINK_SELINUX = 0x7 + NETLINK_SMC = 0x16 + NETLINK_SOCK_DIAG = 0x4 + NETLINK_TX_RING = 0x7 + NETLINK_UNUSED = 0x1 + NETLINK_USERSOCK = 0x2 + NETLINK_XFRM = 0x6 + NETNSA_MAX = 0x3 + NETNSA_NSID_NOT_ASSIGNED = -0x1 + NFNETLINK_V0 = 0x0 + NFNLGRP_ACCT_QUOTA = 0x8 + NFNLGRP_CONNTRACK_DESTROY = 0x3 + NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6 + NFNLGRP_CONNTRACK_EXP_NEW = 0x4 + NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5 + NFNLGRP_CONNTRACK_NEW = 0x1 + NFNLGRP_CONNTRACK_UPDATE = 0x2 + NFNLGRP_MAX = 0x9 + NFNLGRP_NFTABLES = 0x7 + NFNLGRP_NFTRACE = 0x9 + NFNLGRP_NONE = 0x0 + NFNL_BATCH_MAX = 0x1 + NFNL_MSG_BATCH_BEGIN = 0x10 + NFNL_MSG_BATCH_END = 0x11 + NFNL_NFA_NEST = 0x8000 + NFNL_SUBSYS_ACCT = 0x7 + NFNL_SUBSYS_COUNT = 0xc + NFNL_SUBSYS_CTHELPER = 0x9 + NFNL_SUBSYS_CTNETLINK = 0x1 + NFNL_SUBSYS_CTNETLINK_EXP = 0x2 + NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8 + NFNL_SUBSYS_IPSET = 0x6 + NFNL_SUBSYS_NFTABLES = 0xa + NFNL_SUBSYS_NFT_COMPAT = 0xb + NFNL_SUBSYS_NONE = 0x0 + NFNL_SUBSYS_OSF = 0x5 + NFNL_SUBSYS_QUEUE = 0x3 + NFNL_SUBSYS_ULOG = 0x4 + NFS_SUPER_MAGIC = 0x6969 + NILFS_SUPER_MAGIC = 0x3434 + NL0 = 0x0 + NL1 = 0x100 + NLA_ALIGNTO = 0x4 + NLA_F_NESTED = 0x8000 + NLA_F_NET_BYTEORDER = 0x4000 + NLA_HDRLEN = 0x4 + NLDLY = 0x100 + NLMSG_ALIGNTO = 0x4 + NLMSG_DONE = 0x3 + NLMSG_ERROR = 0x2 + NLMSG_HDRLEN = 0x10 + NLMSG_MIN_TYPE = 0x10 + NLMSG_NOOP = 0x1 + NLMSG_OVERRUN = 0x4 + NLM_F_ACK = 0x4 + NLM_F_ACK_TLVS = 0x200 + NLM_F_APPEND = 0x800 + NLM_F_ATOMIC = 0x400 + NLM_F_CAPPED = 0x100 + NLM_F_CREATE = 0x400 + NLM_F_DUMP = 0x300 + NLM_F_DUMP_FILTERED = 0x20 + NLM_F_DUMP_INTR = 0x10 + NLM_F_ECHO = 0x8 + NLM_F_EXCL = 0x200 + NLM_F_MATCH = 0x200 + NLM_F_MULTI = 0x2 + NLM_F_NONREC = 0x100 + NLM_F_REPLACE = 0x100 + NLM_F_REQUEST = 0x1 + NLM_F_ROOT = 0x100 + NOFLSH = 0x80 + NSFS_MAGIC = 0x6e736673 + OCFS2_SUPER_MAGIC = 0x7461636f + OCRNL = 0x8 + OFDEL = 0x80 + OFILL = 0x40 + OLCUC = 0x2 + ONLCR = 0x4 + ONLRET = 0x20 + ONOCR = 0x10 + OPENPROM_SUPER_MAGIC = 0x9fa1 + OPOST = 0x1 + OVERLAYFS_SUPER_MAGIC = 0x794c7630 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x400000 + O_CREAT = 0x200 + O_DIRECT = 0x100000 + O_DIRECTORY = 0x10000 + O_DSYNC = 0x2000 + O_EXCL = 0x800 + O_FSYNC = 0x802000 + O_LARGEFILE = 0x0 + O_NDELAY = 0x4004 + O_NOATIME = 0x200000 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x20000 + O_NONBLOCK = 0x4000 + O_PATH = 0x1000000 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x802000 + O_SYNC = 0x802000 + O_TMPFILE = 0x2010000 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PACKET_ADD_MEMBERSHIP = 0x1 + PACKET_AUXDATA = 0x8 + PACKET_BROADCAST = 0x1 + PACKET_COPY_THRESH = 0x7 + PACKET_DROP_MEMBERSHIP = 0x2 + PACKET_FANOUT = 0x12 + PACKET_FANOUT_CBPF = 0x6 + PACKET_FANOUT_CPU = 0x2 + PACKET_FANOUT_DATA = 0x16 + PACKET_FANOUT_EBPF = 0x7 + PACKET_FANOUT_FLAG_DEFRAG = 0x8000 + PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 + PACKET_FANOUT_FLAG_UNIQUEID = 0x2000 + PACKET_FANOUT_HASH = 0x0 + PACKET_FANOUT_LB = 0x1 + PACKET_FANOUT_QM = 0x5 + PACKET_FANOUT_RND = 0x4 + PACKET_FANOUT_ROLLOVER = 0x3 + PACKET_FASTROUTE = 0x6 + PACKET_HDRLEN = 0xb + PACKET_HOST = 0x0 + PACKET_IGNORE_OUTGOING = 0x17 + PACKET_KERNEL = 0x7 + PACKET_LOOPBACK = 0x5 + PACKET_LOSS = 0xe + PACKET_MR_ALLMULTI = 0x2 + PACKET_MR_MULTICAST = 0x0 + PACKET_MR_PROMISC = 0x1 + PACKET_MR_UNICAST = 0x3 + PACKET_MULTICAST = 0x2 + PACKET_ORIGDEV = 0x9 + PACKET_OTHERHOST = 0x3 + PACKET_OUTGOING = 0x4 + PACKET_QDISC_BYPASS = 0x14 + PACKET_RECV_OUTPUT = 0x3 + PACKET_RESERVE = 0xc + PACKET_ROLLOVER_STATS = 0x15 + PACKET_RX_RING = 0x5 + PACKET_STATISTICS = 0x6 + PACKET_TIMESTAMP = 0x11 + PACKET_TX_HAS_OFF = 0x13 + PACKET_TX_RING = 0xd + PACKET_TX_TIMESTAMP = 0x10 + PACKET_USER = 0x6 + PACKET_VERSION = 0xa + PACKET_VNET_HDR = 0xf + PARENB = 0x100 + PARITY_CRC16_PR0 = 0x2 + PARITY_CRC16_PR0_CCITT = 0x4 + PARITY_CRC16_PR1 = 0x3 + PARITY_CRC16_PR1_CCITT = 0x5 + PARITY_CRC32_PR0_CCITT = 0x6 + PARITY_CRC32_PR1_CCITT = 0x7 + PARITY_DEFAULT = 0x0 + PARITY_NONE = 0x1 + PARMRK = 0x8 + PARODD = 0x200 + PENDIN = 0x4000 + PERF_EVENT_IOC_DISABLE = 0x20002401 + PERF_EVENT_IOC_ENABLE = 0x20002400 + PERF_EVENT_IOC_ID = 0x40082407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 + PERF_EVENT_IOC_PERIOD = 0x80082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc008240a + PERF_EVENT_IOC_REFRESH = 0x20002402 + PERF_EVENT_IOC_RESET = 0x20002403 + PERF_EVENT_IOC_SET_BPF = 0x80042408 + PERF_EVENT_IOC_SET_FILTER = 0x80082406 + PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 + PIPEFS_MAGIC = 0x50495045 + PPPIOCATTACH = 0x8004743d + PPPIOCATTCHAN = 0x80047438 + PPPIOCCONNECT = 0x8004743a + PPPIOCDETACH = 0x8004743c + PPPIOCDISCONN = 0x20007439 + PPPIOCGASYNCMAP = 0x40047458 + PPPIOCGCHAN = 0x40047437 + PPPIOCGDEBUG = 0x40047441 + PPPIOCGFLAGS = 0x4004745a + PPPIOCGIDLE = 0x4010743f + PPPIOCGL2TPSTATS = 0x40487436 + PPPIOCGMRU = 0x40047453 + PPPIOCGNPMODE = 0xc008744c + PPPIOCGRASYNCMAP = 0x40047455 + PPPIOCGUNIT = 0x40047456 + PPPIOCGXASYNCMAP = 0x40207450 + PPPIOCNEWUNIT = 0xc004743e + PPPIOCSACTIVE = 0x80107446 + PPPIOCSASYNCMAP = 0x80047457 + PPPIOCSCOMPRESS = 0x8010744d + PPPIOCSDEBUG = 0x80047440 + PPPIOCSFLAGS = 0x80047459 + PPPIOCSMAXCID = 0x80047451 + PPPIOCSMRRU = 0x8004743b + PPPIOCSMRU = 0x80047452 + PPPIOCSNPMODE = 0x8008744b + PPPIOCSPASS = 0x80107447 + PPPIOCSRASYNCMAP = 0x80047454 + PPPIOCSXASYNCMAP = 0x8020744f + PPPIOCXFERUNIT = 0x2000744e + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROC_SUPER_MAGIC = 0x9fa0 + PROT_EXEC = 0x4 + PROT_GROWSDOWN = 0x1000000 + PROT_GROWSUP = 0x2000000 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PR_CAPBSET_DROP = 0x18 + PR_CAPBSET_READ = 0x17 + PR_CAP_AMBIENT = 0x2f + PR_CAP_AMBIENT_CLEAR_ALL = 0x4 + PR_CAP_AMBIENT_IS_SET = 0x1 + PR_CAP_AMBIENT_LOWER = 0x3 + PR_CAP_AMBIENT_RAISE = 0x2 + PR_ENDIAN_BIG = 0x0 + PR_ENDIAN_LITTLE = 0x1 + PR_ENDIAN_PPC_LITTLE = 0x2 + PR_FPEMU_NOPRINT = 0x1 + PR_FPEMU_SIGFPE = 0x2 + PR_FP_EXC_ASYNC = 0x2 + PR_FP_EXC_DISABLED = 0x0 + PR_FP_EXC_DIV = 0x10000 + PR_FP_EXC_INV = 0x100000 + PR_FP_EXC_NONRECOV = 0x1 + PR_FP_EXC_OVF = 0x20000 + PR_FP_EXC_PRECISE = 0x3 + PR_FP_EXC_RES = 0x80000 + PR_FP_EXC_SW_ENABLE = 0x80 + PR_FP_EXC_UND = 0x40000 + PR_FP_MODE_FR = 0x1 + PR_FP_MODE_FRE = 0x2 + PR_GET_CHILD_SUBREAPER = 0x25 + PR_GET_DUMPABLE = 0x3 + PR_GET_ENDIAN = 0x13 + PR_GET_FPEMU = 0x9 + PR_GET_FPEXC = 0xb + PR_GET_FP_MODE = 0x2e + PR_GET_KEEPCAPS = 0x7 + PR_GET_NAME = 0x10 + PR_GET_NO_NEW_PRIVS = 0x27 + PR_GET_PDEATHSIG = 0x2 + PR_GET_SECCOMP = 0x15 + PR_GET_SECUREBITS = 0x1b + PR_GET_SPECULATION_CTRL = 0x34 + PR_GET_THP_DISABLE = 0x2a + PR_GET_TID_ADDRESS = 0x28 + PR_GET_TIMERSLACK = 0x1e + PR_GET_TIMING = 0xd + PR_GET_TSC = 0x19 + PR_GET_UNALIGN = 0x5 + PR_MCE_KILL = 0x21 + PR_MCE_KILL_CLEAR = 0x0 + PR_MCE_KILL_DEFAULT = 0x2 + PR_MCE_KILL_EARLY = 0x1 + PR_MCE_KILL_GET = 0x22 + PR_MCE_KILL_LATE = 0x0 + PR_MCE_KILL_SET = 0x1 + PR_MPX_DISABLE_MANAGEMENT = 0x2c + PR_MPX_ENABLE_MANAGEMENT = 0x2b + PR_SET_CHILD_SUBREAPER = 0x24 + PR_SET_DUMPABLE = 0x4 + PR_SET_ENDIAN = 0x14 + PR_SET_FPEMU = 0xa + PR_SET_FPEXC = 0xc + PR_SET_FP_MODE = 0x2d + PR_SET_KEEPCAPS = 0x8 + PR_SET_MM = 0x23 + PR_SET_MM_ARG_END = 0x9 + PR_SET_MM_ARG_START = 0x8 + PR_SET_MM_AUXV = 0xc + PR_SET_MM_BRK = 0x7 + PR_SET_MM_END_CODE = 0x2 + PR_SET_MM_END_DATA = 0x4 + PR_SET_MM_ENV_END = 0xb + PR_SET_MM_ENV_START = 0xa + PR_SET_MM_EXE_FILE = 0xd + PR_SET_MM_MAP = 0xe + PR_SET_MM_MAP_SIZE = 0xf + PR_SET_MM_START_BRK = 0x6 + PR_SET_MM_START_CODE = 0x1 + PR_SET_MM_START_DATA = 0x3 + PR_SET_MM_START_STACK = 0x5 + PR_SET_NAME = 0xf + PR_SET_NO_NEW_PRIVS = 0x26 + PR_SET_PDEATHSIG = 0x1 + PR_SET_PTRACER = 0x59616d61 + PR_SET_PTRACER_ANY = 0xffffffffffffffff + PR_SET_SECCOMP = 0x16 + PR_SET_SECUREBITS = 0x1c + PR_SET_SPECULATION_CTRL = 0x35 + PR_SET_THP_DISABLE = 0x29 + PR_SET_TIMERSLACK = 0x1d + PR_SET_TIMING = 0xe + PR_SET_TSC = 0x1a + PR_SET_UNALIGN = 0x6 + PR_SPEC_DISABLE = 0x4 + PR_SPEC_ENABLE = 0x2 + PR_SPEC_FORCE_DISABLE = 0x8 + PR_SPEC_INDIRECT_BRANCH = 0x1 + PR_SPEC_NOT_AFFECTED = 0x0 + PR_SPEC_PRCTL = 0x1 + PR_SPEC_STORE_BYPASS = 0x0 + PR_SVE_GET_VL = 0x33 + PR_SVE_SET_VL = 0x32 + PR_SVE_SET_VL_ONEXEC = 0x40000 + PR_SVE_VL_INHERIT = 0x20000 + PR_SVE_VL_LEN_MASK = 0xffff + PR_TASK_PERF_EVENTS_DISABLE = 0x1f + PR_TASK_PERF_EVENTS_ENABLE = 0x20 + PR_TIMING_STATISTICAL = 0x0 + PR_TIMING_TIMESTAMP = 0x1 + PR_TSC_ENABLE = 0x1 + PR_TSC_SIGSEGV = 0x2 + PR_UNALIGN_NOPRINT = 0x1 + PR_UNALIGN_SIGBUS = 0x2 + PSTOREFS_MAGIC = 0x6165676c + PTRACE_ATTACH = 0x10 + PTRACE_CONT = 0x7 + PTRACE_DETACH = 0x11 + PTRACE_EVENT_CLONE = 0x3 + PTRACE_EVENT_EXEC = 0x4 + PTRACE_EVENT_EXIT = 0x6 + PTRACE_EVENT_FORK = 0x1 + PTRACE_EVENT_SECCOMP = 0x7 + PTRACE_EVENT_STOP = 0x80 + PTRACE_EVENT_VFORK = 0x2 + PTRACE_EVENT_VFORK_DONE = 0x5 + PTRACE_GETEVENTMSG = 0x4201 + PTRACE_GETFPAREGS = 0x14 + PTRACE_GETFPREGS = 0xe + PTRACE_GETFPREGS64 = 0x19 + PTRACE_GETREGS = 0xc + PTRACE_GETREGS64 = 0x16 + PTRACE_GETREGSET = 0x4204 + PTRACE_GETSIGINFO = 0x4202 + PTRACE_GETSIGMASK = 0x420a + PTRACE_INTERRUPT = 0x4207 + PTRACE_KILL = 0x8 + PTRACE_LISTEN = 0x4208 + PTRACE_O_EXITKILL = 0x100000 + PTRACE_O_MASK = 0x3000ff + PTRACE_O_SUSPEND_SECCOMP = 0x200000 + PTRACE_O_TRACECLONE = 0x8 + PTRACE_O_TRACEEXEC = 0x10 + PTRACE_O_TRACEEXIT = 0x40 + PTRACE_O_TRACEFORK = 0x2 + PTRACE_O_TRACESECCOMP = 0x80 + PTRACE_O_TRACESYSGOOD = 0x1 + PTRACE_O_TRACEVFORK = 0x4 + PTRACE_O_TRACEVFORKDONE = 0x20 + PTRACE_PEEKDATA = 0x2 + PTRACE_PEEKSIGINFO = 0x4209 + PTRACE_PEEKSIGINFO_SHARED = 0x1 + PTRACE_PEEKTEXT = 0x1 + PTRACE_PEEKUSR = 0x3 + PTRACE_POKEDATA = 0x5 + PTRACE_POKETEXT = 0x4 + PTRACE_POKEUSR = 0x6 + PTRACE_READDATA = 0x10 + PTRACE_READTEXT = 0x12 + PTRACE_SECCOMP_GET_FILTER = 0x420c + PTRACE_SECCOMP_GET_METADATA = 0x420d + PTRACE_SEIZE = 0x4206 + PTRACE_SETFPAREGS = 0x15 + PTRACE_SETFPREGS = 0xf + PTRACE_SETFPREGS64 = 0x1a + PTRACE_SETOPTIONS = 0x4200 + PTRACE_SETREGS = 0xd + PTRACE_SETREGS64 = 0x17 + PTRACE_SETREGSET = 0x4205 + PTRACE_SETSIGINFO = 0x4203 + PTRACE_SETSIGMASK = 0x420b + PTRACE_SINGLESTEP = 0x9 + PTRACE_SPARC_DETACH = 0xb + PTRACE_SYSCALL = 0x18 + PTRACE_TRACEME = 0x0 + PTRACE_WRITEDATA = 0x11 + PTRACE_WRITETEXT = 0x13 + PT_FP = 0x48 + PT_G0 = 0x10 + PT_G1 = 0x14 + PT_G2 = 0x18 + PT_G3 = 0x1c + PT_G4 = 0x20 + PT_G5 = 0x24 + PT_G6 = 0x28 + PT_G7 = 0x2c + PT_I0 = 0x30 + PT_I1 = 0x34 + PT_I2 = 0x38 + PT_I3 = 0x3c + PT_I4 = 0x40 + PT_I5 = 0x44 + PT_I6 = 0x48 + PT_I7 = 0x4c + PT_NPC = 0x8 + PT_PC = 0x4 + PT_PSR = 0x0 + PT_REGS_MAGIC = 0x57ac6c00 + PT_TNPC = 0x90 + PT_TPC = 0x88 + PT_TSTATE = 0x80 + PT_V9_FP = 0x70 + PT_V9_G0 = 0x0 + PT_V9_G1 = 0x8 + PT_V9_G2 = 0x10 + PT_V9_G3 = 0x18 + PT_V9_G4 = 0x20 + PT_V9_G5 = 0x28 + PT_V9_G6 = 0x30 + PT_V9_G7 = 0x38 + PT_V9_I0 = 0x40 + PT_V9_I1 = 0x48 + PT_V9_I2 = 0x50 + PT_V9_I3 = 0x58 + PT_V9_I4 = 0x60 + PT_V9_I5 = 0x68 + PT_V9_I6 = 0x70 + PT_V9_I7 = 0x78 + PT_V9_MAGIC = 0x9c + PT_V9_TNPC = 0x90 + PT_V9_TPC = 0x88 + PT_V9_TSTATE = 0x80 + PT_V9_Y = 0x98 + PT_WIM = 0x10 + PT_Y = 0xc + QNX4_SUPER_MAGIC = 0x2f + QNX6_SUPER_MAGIC = 0x68191122 + RAMFS_MAGIC = 0x858458f6 + RDTGROUP_SUPER_MAGIC = 0x7655821 + REISERFS_SUPER_MAGIC = 0x52654973 + RENAME_EXCHANGE = 0x2 + RENAME_NOREPLACE = 0x1 + RENAME_WHITEOUT = 0x4 + RLIMIT_AS = 0x9 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_LOCKS = 0xa + RLIMIT_MEMLOCK = 0x8 + RLIMIT_MSGQUEUE = 0xc + RLIMIT_NICE = 0xd + RLIMIT_NOFILE = 0x6 + RLIMIT_NPROC = 0x7 + RLIMIT_RSS = 0x5 + RLIMIT_RTPRIO = 0xe + RLIMIT_RTTIME = 0xf + RLIMIT_SIGPENDING = 0xb + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0xffffffffffffffff + RTAX_ADVMSS = 0x8 + RTAX_CC_ALGO = 0x10 + RTAX_CWND = 0x7 + RTAX_FASTOPEN_NO_COOKIE = 0x11 + RTAX_FEATURES = 0xc + RTAX_FEATURE_ALLFRAG = 0x8 + RTAX_FEATURE_ECN = 0x1 + RTAX_FEATURE_MASK = 0xf + RTAX_FEATURE_SACK = 0x2 + RTAX_FEATURE_TIMESTAMP = 0x4 + RTAX_HOPLIMIT = 0xa + RTAX_INITCWND = 0xb + RTAX_INITRWND = 0xe + RTAX_LOCK = 0x1 + RTAX_MAX = 0x11 + RTAX_MTU = 0x2 + RTAX_QUICKACK = 0xf + RTAX_REORDERING = 0x9 + RTAX_RTO_MIN = 0xd + RTAX_RTT = 0x4 + RTAX_RTTVAR = 0x5 + RTAX_SSTHRESH = 0x6 + RTAX_UNSPEC = 0x0 + RTAX_WINDOW = 0x3 + RTA_ALIGNTO = 0x4 + RTA_MAX = 0x1d + RTCF_DIRECTSRC = 0x4000000 + RTCF_DOREDIRECT = 0x1000000 + RTCF_LOG = 0x2000000 + RTCF_MASQ = 0x400000 + RTCF_NAT = 0x800000 + RTCF_VALVE = 0x200000 + RTC_AF = 0x20 + RTC_AIE_OFF = 0x20007002 + RTC_AIE_ON = 0x20007001 + RTC_ALM_READ = 0x40247008 + RTC_ALM_SET = 0x80247007 + RTC_EPOCH_READ = 0x4008700d + RTC_EPOCH_SET = 0x8008700e + RTC_IRQF = 0x80 + RTC_IRQP_READ = 0x4008700b + RTC_IRQP_SET = 0x8008700c + RTC_MAX_FREQ = 0x2000 + RTC_PF = 0x40 + RTC_PIE_OFF = 0x20007006 + RTC_PIE_ON = 0x20007005 + RTC_PLL_GET = 0x40207011 + RTC_PLL_SET = 0x80207012 + RTC_RD_TIME = 0x40247009 + RTC_SET_TIME = 0x8024700a + RTC_UF = 0x10 + RTC_UIE_OFF = 0x20007004 + RTC_UIE_ON = 0x20007003 + RTC_VL_CLR = 0x20007014 + RTC_VL_READ = 0x40047013 + RTC_WIE_OFF = 0x20007010 + RTC_WIE_ON = 0x2000700f + RTC_WKALM_RD = 0x40287010 + RTC_WKALM_SET = 0x8028700f + RTF_ADDRCLASSMASK = 0xf8000000 + RTF_ADDRCONF = 0x40000 + RTF_ALLONLINK = 0x20000 + RTF_BROADCAST = 0x10000000 + RTF_CACHE = 0x1000000 + RTF_DEFAULT = 0x10000 + RTF_DYNAMIC = 0x10 + RTF_FLOW = 0x2000000 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_INTERFACE = 0x40000000 + RTF_IRTT = 0x100 + RTF_LINKRT = 0x100000 + RTF_LOCAL = 0x80000000 + RTF_MODIFIED = 0x20 + RTF_MSS = 0x40 + RTF_MTU = 0x40 + RTF_MULTICAST = 0x20000000 + RTF_NAT = 0x8000000 + RTF_NOFORWARD = 0x1000 + RTF_NONEXTHOP = 0x200000 + RTF_NOPMTUDISC = 0x4000 + RTF_POLICY = 0x4000000 + RTF_REINSTATE = 0x8 + RTF_REJECT = 0x200 + RTF_STATIC = 0x400 + RTF_THROW = 0x2000 + RTF_UP = 0x1 + RTF_WINDOW = 0x80 + RTF_XRESOLVE = 0x800 + RTM_BASE = 0x10 + RTM_DELACTION = 0x31 + RTM_DELADDR = 0x15 + RTM_DELADDRLABEL = 0x49 + RTM_DELCHAIN = 0x65 + RTM_DELLINK = 0x11 + RTM_DELMDB = 0x55 + RTM_DELNEIGH = 0x1d + RTM_DELNETCONF = 0x51 + RTM_DELNSID = 0x59 + RTM_DELQDISC = 0x25 + RTM_DELROUTE = 0x19 + RTM_DELRULE = 0x21 + RTM_DELTCLASS = 0x29 + RTM_DELTFILTER = 0x2d + RTM_F_CLONED = 0x200 + RTM_F_EQUALIZE = 0x400 + RTM_F_FIB_MATCH = 0x2000 + RTM_F_LOOKUP_TABLE = 0x1000 + RTM_F_NOTIFY = 0x100 + RTM_F_PREFIX = 0x800 + RTM_GETACTION = 0x32 + RTM_GETADDR = 0x16 + RTM_GETADDRLABEL = 0x4a + RTM_GETANYCAST = 0x3e + RTM_GETCHAIN = 0x66 + RTM_GETDCB = 0x4e + RTM_GETLINK = 0x12 + RTM_GETMDB = 0x56 + RTM_GETMULTICAST = 0x3a + RTM_GETNEIGH = 0x1e + RTM_GETNEIGHTBL = 0x42 + RTM_GETNETCONF = 0x52 + RTM_GETNSID = 0x5a + RTM_GETQDISC = 0x26 + RTM_GETROUTE = 0x1a + RTM_GETRULE = 0x22 + RTM_GETSTATS = 0x5e + RTM_GETTCLASS = 0x2a + RTM_GETTFILTER = 0x2e + RTM_MAX = 0x67 + RTM_NEWACTION = 0x30 + RTM_NEWADDR = 0x14 + RTM_NEWADDRLABEL = 0x48 + RTM_NEWCACHEREPORT = 0x60 + RTM_NEWCHAIN = 0x64 + RTM_NEWLINK = 0x10 + RTM_NEWMDB = 0x54 + RTM_NEWNDUSEROPT = 0x44 + RTM_NEWNEIGH = 0x1c + RTM_NEWNEIGHTBL = 0x40 + RTM_NEWNETCONF = 0x50 + RTM_NEWNSID = 0x58 + RTM_NEWPREFIX = 0x34 + RTM_NEWQDISC = 0x24 + RTM_NEWROUTE = 0x18 + RTM_NEWRULE = 0x20 + RTM_NEWSTATS = 0x5c + RTM_NEWTCLASS = 0x28 + RTM_NEWTFILTER = 0x2c + RTM_NR_FAMILIES = 0x16 + RTM_NR_MSGTYPES = 0x58 + RTM_SETDCB = 0x4f + RTM_SETLINK = 0x13 + RTM_SETNEIGHTBL = 0x43 + RTNH_ALIGNTO = 0x4 + RTNH_COMPARE_MASK = 0x19 + RTNH_F_DEAD = 0x1 + RTNH_F_LINKDOWN = 0x10 + RTNH_F_OFFLOAD = 0x8 + RTNH_F_ONLINK = 0x4 + RTNH_F_PERVASIVE = 0x2 + RTNH_F_UNRESOLVED = 0x20 + RTN_MAX = 0xb + RTPROT_BABEL = 0x2a + RTPROT_BGP = 0xba + RTPROT_BIRD = 0xc + RTPROT_BOOT = 0x3 + RTPROT_DHCP = 0x10 + RTPROT_DNROUTED = 0xd + RTPROT_EIGRP = 0xc0 + RTPROT_GATED = 0x8 + RTPROT_ISIS = 0xbb + RTPROT_KERNEL = 0x2 + RTPROT_MROUTED = 0x11 + RTPROT_MRT = 0xa + RTPROT_NTK = 0xf + RTPROT_OSPF = 0xbc + RTPROT_RA = 0x9 + RTPROT_REDIRECT = 0x1 + RTPROT_RIP = 0xbd + RTPROT_STATIC = 0x4 + RTPROT_UNSPEC = 0x0 + RTPROT_XORP = 0xe + RTPROT_ZEBRA = 0xb + RT_CLASS_DEFAULT = 0xfd + RT_CLASS_LOCAL = 0xff + RT_CLASS_MAIN = 0xfe + RT_CLASS_MAX = 0xff + RT_CLASS_UNSPEC = 0x0 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_CREDENTIALS = 0x2 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x1d + SCM_TIMESTAMPING = 0x23 + SCM_TIMESTAMPING_OPT_STATS = 0x38 + SCM_TIMESTAMPING_PKTINFO = 0x3c + SCM_TIMESTAMPNS = 0x21 + SCM_TXTIME = 0x3f + SCM_WIFI_STATUS = 0x25 + SC_LOG_FLUSH = 0x100000 + SECCOMP_MODE_DISABLED = 0x0 + SECCOMP_MODE_FILTER = 0x2 + SECCOMP_MODE_STRICT = 0x1 + SECURITYFS_MAGIC = 0x73636673 + SELINUX_MAGIC = 0xf97cff8c + SFD_CLOEXEC = 0x400000 + SFD_NONBLOCK = 0x4000 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDDLCI = 0x8980 + SIOCADDMULTI = 0x8931 + SIOCADDRT = 0x890b + SIOCATMARK = 0x8905 + SIOCBONDCHANGEACTIVE = 0x8995 + SIOCBONDENSLAVE = 0x8990 + SIOCBONDINFOQUERY = 0x8994 + SIOCBONDRELEASE = 0x8991 + SIOCBONDSETHWADDR = 0x8992 + SIOCBONDSLAVEINFOQUERY = 0x8993 + SIOCBRADDBR = 0x89a0 + SIOCBRADDIF = 0x89a2 + SIOCBRDELBR = 0x89a1 + SIOCBRDELIF = 0x89a3 + SIOCDARP = 0x8953 + SIOCDELDLCI = 0x8981 + SIOCDELMULTI = 0x8932 + SIOCDELRT = 0x890c + SIOCDEVPRIVATE = 0x89f0 + SIOCDIFADDR = 0x8936 + SIOCDRARP = 0x8960 + SIOCETHTOOL = 0x8946 + SIOCGARP = 0x8954 + SIOCGHWTSTAMP = 0x89b1 + SIOCGIFADDR = 0x8915 + SIOCGIFBR = 0x8940 + SIOCGIFBRDADDR = 0x8919 + SIOCGIFCONF = 0x8912 + SIOCGIFCOUNT = 0x8938 + SIOCGIFDSTADDR = 0x8917 + SIOCGIFENCAP = 0x8925 + SIOCGIFFLAGS = 0x8913 + SIOCGIFHWADDR = 0x8927 + SIOCGIFINDEX = 0x8933 + SIOCGIFMAP = 0x8970 + SIOCGIFMEM = 0x891f + SIOCGIFMETRIC = 0x891d + SIOCGIFMTU = 0x8921 + SIOCGIFNAME = 0x8910 + SIOCGIFNETMASK = 0x891b + SIOCGIFPFLAGS = 0x8935 + SIOCGIFSLAVE = 0x8929 + SIOCGIFTXQLEN = 0x8942 + SIOCGIFVLAN = 0x8982 + SIOCGMIIPHY = 0x8947 + SIOCGMIIREG = 0x8948 + SIOCGPGRP = 0x8904 + SIOCGPPPCSTATS = 0x89f2 + SIOCGPPPSTATS = 0x89f0 + SIOCGPPPVER = 0x89f1 + SIOCGRARP = 0x8961 + SIOCGSKNS = 0x894c + SIOCGSTAMP = 0x8906 + SIOCGSTAMPNS = 0x8907 + SIOCINQ = 0x4004667f + SIOCOUTQ = 0x40047473 + SIOCOUTQNSD = 0x894b + SIOCPROTOPRIVATE = 0x89e0 + SIOCRTMSG = 0x890d + SIOCSARP = 0x8955 + SIOCSHWTSTAMP = 0x89b0 + SIOCSIFADDR = 0x8916 + SIOCSIFBR = 0x8941 + SIOCSIFBRDADDR = 0x891a + SIOCSIFDSTADDR = 0x8918 + SIOCSIFENCAP = 0x8926 + SIOCSIFFLAGS = 0x8914 + SIOCSIFHWADDR = 0x8924 + SIOCSIFHWBROADCAST = 0x8937 + SIOCSIFLINK = 0x8911 + SIOCSIFMAP = 0x8971 + SIOCSIFMEM = 0x8920 + SIOCSIFMETRIC = 0x891e + SIOCSIFMTU = 0x8922 + SIOCSIFNAME = 0x8923 + SIOCSIFNETMASK = 0x891c + SIOCSIFPFLAGS = 0x8934 + SIOCSIFSLAVE = 0x8930 + SIOCSIFTXQLEN = 0x8943 + SIOCSIFVLAN = 0x8983 + SIOCSMIIREG = 0x8949 + SIOCSPGRP = 0x8902 + SIOCSRARP = 0x8962 + SIOCWANDEV = 0x894a + SMACK_MAGIC = 0x43415d53 + SMART_AUTOSAVE = 0xd2 + SMART_AUTO_OFFLINE = 0xdb + SMART_DISABLE = 0xd9 + SMART_ENABLE = 0xd8 + SMART_HCYL_PASS = 0xc2 + SMART_IMMEDIATE_OFFLINE = 0xd4 + SMART_LCYL_PASS = 0x4f + SMART_READ_LOG_SECTOR = 0xd5 + SMART_READ_THRESHOLDS = 0xd1 + SMART_READ_VALUES = 0xd0 + SMART_SAVE = 0xd3 + SMART_STATUS = 0xda + SMART_WRITE_LOG_SECTOR = 0xd6 + SMART_WRITE_THRESHOLDS = 0xd7 + SMB_SUPER_MAGIC = 0x517b + SOCKFS_MAGIC = 0x534f434b + SOCK_CLOEXEC = 0x400000 + SOCK_DCCP = 0x6 + SOCK_DGRAM = 0x2 + SOCK_IOC_TYPE = 0x89 + SOCK_NONBLOCK = 0x4000 + SOCK_PACKET = 0xa + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_AAL = 0x109 + SOL_ALG = 0x117 + SOL_ATM = 0x108 + SOL_CAIF = 0x116 + SOL_CAN_BASE = 0x64 + SOL_DCCP = 0x10d + SOL_DECNET = 0x105 + SOL_ICMPV6 = 0x3a + SOL_IP = 0x0 + SOL_IPV6 = 0x29 + SOL_IRDA = 0x10a + SOL_IUCV = 0x115 + SOL_KCM = 0x119 + SOL_LLC = 0x10c + SOL_NETBEUI = 0x10b + SOL_NETLINK = 0x10e + SOL_NFC = 0x118 + SOL_PACKET = 0x107 + SOL_PNPIPE = 0x113 + SOL_PPPOL2TP = 0x111 + SOL_RAW = 0xff + SOL_RDS = 0x114 + SOL_RXRPC = 0x110 + SOL_SOCKET = 0xffff + SOL_TCP = 0x6 + SOL_TIPC = 0x10f + SOL_TLS = 0x11a + SOL_X25 = 0x106 + SOL_XDP = 0x11b + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x8000 + SO_ATTACH_BPF = 0x34 + SO_ATTACH_FILTER = 0x1a + SO_ATTACH_REUSEPORT_CBPF = 0x35 + SO_ATTACH_REUSEPORT_EBPF = 0x36 + SO_BINDTODEVICE = 0xd + SO_BPF_EXTENSIONS = 0x32 + SO_BROADCAST = 0x20 + SO_BSDCOMPAT = 0x400 + SO_BUSY_POLL = 0x30 + SO_CNX_ADVICE = 0x37 + SO_COOKIE = 0x3b + SO_DEBUG = 0x1 + SO_DETACH_BPF = 0x1b + SO_DETACH_FILTER = 0x1b + SO_DOMAIN = 0x1029 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_GET_FILTER = 0x1a + SO_INCOMING_CPU = 0x33 + SO_INCOMING_NAPI_ID = 0x3a + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_LOCK_FILTER = 0x28 + SO_MARK = 0x22 + SO_MAX_PACING_RATE = 0x31 + SO_MEMINFO = 0x39 + SO_NOFCS = 0x27 + SO_NO_CHECK = 0xb + SO_OOBINLINE = 0x100 + SO_PASSCRED = 0x2 + SO_PASSSEC = 0x1f + SO_PEEK_OFF = 0x26 + SO_PEERCRED = 0x40 + SO_PEERGROUPS = 0x3d + SO_PEERNAME = 0x1c + SO_PEERSEC = 0x1e + SO_PRIORITY = 0xc + SO_PROTOCOL = 0x1028 + SO_RCVBUF = 0x1002 + SO_RCVBUFFORCE = 0x100b + SO_RCVLOWAT = 0x800 + SO_RCVTIMEO = 0x2000 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_RXQ_OVFL = 0x24 + SO_SECURITY_AUTHENTICATION = 0x5001 + SO_SECURITY_ENCRYPTION_NETWORK = 0x5004 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x5002 + SO_SELECT_ERR_QUEUE = 0x29 + SO_SNDBUF = 0x1001 + SO_SNDBUFFORCE = 0x100a + SO_SNDLOWAT = 0x1000 + SO_SNDTIMEO = 0x4000 + SO_TIMESTAMP = 0x1d + SO_TIMESTAMPING = 0x23 + SO_TIMESTAMPNS = 0x21 + SO_TXTIME = 0x3f + SO_TYPE = 0x1008 + SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 + SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 + SO_VM_SOCKETS_BUFFER_SIZE = 0x0 + SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 + SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 + SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 + SO_VM_SOCKETS_TRUSTED = 0x5 + SO_WIFI_STATUS = 0x25 + SO_ZEROCOPY = 0x3e + SPLICE_F_GIFT = 0x8 + SPLICE_F_MORE = 0x4 + SPLICE_F_MOVE = 0x1 + SPLICE_F_NONBLOCK = 0x2 + SQUASHFS_MAGIC = 0x73717368 + STACK_END_MAGIC = 0x57ac6e9d + STATX_ALL = 0xfff + STATX_ATIME = 0x20 + STATX_ATTR_APPEND = 0x20 + STATX_ATTR_AUTOMOUNT = 0x1000 + STATX_ATTR_COMPRESSED = 0x4 + STATX_ATTR_ENCRYPTED = 0x800 + STATX_ATTR_IMMUTABLE = 0x10 + STATX_ATTR_NODUMP = 0x40 + STATX_BASIC_STATS = 0x7ff + STATX_BLOCKS = 0x400 + STATX_BTIME = 0x800 + STATX_CTIME = 0x80 + STATX_GID = 0x10 + STATX_INO = 0x100 + STATX_MODE = 0x2 + STATX_MTIME = 0x40 + STATX_NLINK = 0x4 + STATX_SIZE = 0x200 + STATX_TYPE = 0x1 + STATX_UID = 0x8 + STATX__RESERVED = 0x80000000 + SYNC_FILE_RANGE_WAIT_AFTER = 0x4 + SYNC_FILE_RANGE_WAIT_BEFORE = 0x1 + SYNC_FILE_RANGE_WRITE = 0x2 + SYSFS_MAGIC = 0x62656572 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TAB0 = 0x0 + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TASKSTATS_CMD_ATTR_MAX = 0x4 + TASKSTATS_CMD_MAX = 0x2 + TASKSTATS_GENL_NAME = "TASKSTATS" + TASKSTATS_GENL_VERSION = 0x1 + TASKSTATS_TYPE_MAX = 0x6 + TASKSTATS_VERSION = 0x9 + TCFLSH = 0x20005407 + TCGETA = 0x40125401 + TCGETS = 0x40245408 + TCGETS2 = 0x402c540c + TCIFLUSH = 0x0 + TCIOFF = 0x2 + TCIOFLUSH = 0x2 + TCION = 0x3 + TCOFLUSH = 0x1 + TCOOFF = 0x0 + TCOON = 0x1 + TCP_CC_INFO = 0x1a + TCP_CONGESTION = 0xd + TCP_COOKIE_IN_ALWAYS = 0x1 + TCP_COOKIE_MAX = 0x10 + TCP_COOKIE_MIN = 0x8 + TCP_COOKIE_OUT_NEVER = 0x2 + TCP_COOKIE_PAIR_SIZE = 0x20 + TCP_COOKIE_TRANSACTIONS = 0xf + TCP_CORK = 0x3 + TCP_DEFER_ACCEPT = 0x9 + TCP_FASTOPEN = 0x17 + TCP_FASTOPEN_CONNECT = 0x1e + TCP_FASTOPEN_KEY = 0x21 + TCP_FASTOPEN_NO_COOKIE = 0x22 + TCP_INFO = 0xb + TCP_KEEPCNT = 0x6 + TCP_KEEPIDLE = 0x4 + TCP_KEEPINTVL = 0x5 + TCP_LINGER2 = 0x8 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0xe + TCP_MD5SIG_EXT = 0x20 + TCP_MD5SIG_FLAG_PREFIX = 0x1 + TCP_MD5SIG_MAXKEYLEN = 0x50 + TCP_MSS = 0x200 + TCP_MSS_DEFAULT = 0x218 + TCP_MSS_DESIRED = 0x4c4 + TCP_NODELAY = 0x1 + TCP_NOTSENT_LOWAT = 0x19 + TCP_QUEUE_SEQ = 0x15 + TCP_QUICKACK = 0xc + TCP_REPAIR = 0x13 + TCP_REPAIR_OPTIONS = 0x16 + TCP_REPAIR_QUEUE = 0x14 + TCP_REPAIR_WINDOW = 0x1d + TCP_SAVED_SYN = 0x1c + TCP_SAVE_SYN = 0x1b + TCP_SYNCNT = 0x7 + TCP_S_DATA_IN = 0x4 + TCP_S_DATA_OUT = 0x8 + TCP_THIN_DUPACK = 0x11 + TCP_THIN_LINEAR_TIMEOUTS = 0x10 + TCP_TIMESTAMP = 0x18 + TCP_ULP = 0x1f + TCP_USER_TIMEOUT = 0x12 + TCP_WINDOW_CLAMP = 0xa + TCSAFLUSH = 0x2 + TCSBRK = 0x20005405 + TCSBRKP = 0x5425 + TCSETA = 0x80125402 + TCSETAF = 0x80125404 + TCSETAW = 0x80125403 + TCSETS = 0x80245409 + TCSETS2 = 0x802c540d + TCSETSF = 0x8024540b + TCSETSF2 = 0x802c540f + TCSETSW = 0x8024540a + TCSETSW2 = 0x802c540e + TCXONC = 0x20005406 + TIMER_ABSTIME = 0x1 + TIOCCBRK = 0x2000747a + TIOCCONS = 0x20007424 + TIOCEXCL = 0x2000740d + TIOCGDEV = 0x40045432 + TIOCGETD = 0x40047400 + TIOCGEXCL = 0x40045440 + TIOCGICOUNT = 0x545d + TIOCGISO7816 = 0x40285443 + TIOCGLCKTRMIOS = 0x5456 + TIOCGPGRP = 0x40047483 + TIOCGPKT = 0x40045438 + TIOCGPTLCK = 0x40045439 + TIOCGPTN = 0x40047486 + TIOCGPTPEER = 0x20007489 + TIOCGRS485 = 0x40205441 + TIOCGSERIAL = 0x541e + TIOCGSID = 0x40047485 + TIOCGSOFTCAR = 0x40047464 + TIOCGWINSZ = 0x40087468 + TIOCINQ = 0x4004667f + TIOCLINUX = 0x541c + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGET = 0x4004746a + TIOCMIWAIT = 0x545c + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007484 + TIOCSERCONFIG = 0x5453 + TIOCSERGETLSR = 0x5459 + TIOCSERGETMULTI = 0x545a + TIOCSERGSTRUCT = 0x5458 + TIOCSERGWILD = 0x5454 + TIOCSERSETMULTI = 0x545b + TIOCSERSWILD = 0x5455 + TIOCSETD = 0x80047401 + TIOCSIG = 0x80047488 + TIOCSISO7816 = 0xc0285444 + TIOCSLCKTRMIOS = 0x5457 + TIOCSPGRP = 0x80047482 + TIOCSPTLCK = 0x80047487 + TIOCSRS485 = 0xc0205442 + TIOCSSERIAL = 0x541f + TIOCSSOFTCAR = 0x80047465 + TIOCSTART = 0x2000746e + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCVHANGUP = 0x20005437 + TMPFS_MAGIC = 0x1021994 + TOSTOP = 0x100 + TPACKET_ALIGNMENT = 0x10 + TPACKET_HDRLEN = 0x34 + TP_STATUS_AVAILABLE = 0x0 + TP_STATUS_BLK_TMO = 0x20 + TP_STATUS_COPY = 0x2 + TP_STATUS_CSUMNOTREADY = 0x8 + TP_STATUS_CSUM_VALID = 0x80 + TP_STATUS_KERNEL = 0x0 + TP_STATUS_LOSING = 0x4 + TP_STATUS_SENDING = 0x2 + TP_STATUS_SEND_REQUEST = 0x1 + TP_STATUS_TS_RAW_HARDWARE = -0x80000000 + TP_STATUS_TS_SOFTWARE = 0x20000000 + TP_STATUS_TS_SYS_HARDWARE = 0x40000000 + TP_STATUS_USER = 0x1 + TP_STATUS_VLAN_TPID_VALID = 0x40 + TP_STATUS_VLAN_VALID = 0x10 + TP_STATUS_WRONG_FORMAT = 0x4 + TRACEFS_MAGIC = 0x74726163 + TS_COMM_LEN = 0x20 + TUNATTACHFILTER = 0x801054d5 + TUNDETACHFILTER = 0x801054d6 + TUNGETFEATURES = 0x400454cf + TUNGETFILTER = 0x401054db + TUNGETIFF = 0x400454d2 + TUNGETSNDBUF = 0x400454d3 + TUNGETVNETBE = 0x400454df + TUNGETVNETHDRSZ = 0x400454d7 + TUNGETVNETLE = 0x400454dd + TUNSETDEBUG = 0x800454c9 + TUNSETFILTEREBPF = 0x400454e1 + TUNSETGROUP = 0x800454ce + TUNSETIFF = 0x800454ca + TUNSETIFINDEX = 0x800454da + TUNSETLINK = 0x800454cd + TUNSETNOCSUM = 0x800454c8 + TUNSETOFFLOAD = 0x800454d0 + TUNSETOWNER = 0x800454cc + TUNSETPERSIST = 0x800454cb + TUNSETQUEUE = 0x800454d9 + TUNSETSNDBUF = 0x800454d4 + TUNSETSTEERINGEBPF = 0x400454e0 + TUNSETTXFILTER = 0x800454d1 + TUNSETVNETBE = 0x800454de + TUNSETVNETHDRSZ = 0x800454d8 + TUNSETVNETLE = 0x800454dc + UBI_IOCATT = 0x80186f40 + UBI_IOCDET = 0x80046f41 + UBI_IOCEBCH = 0x80044f02 + UBI_IOCEBER = 0x80044f01 + UBI_IOCEBISMAP = 0x40044f05 + UBI_IOCEBMAP = 0x80084f03 + UBI_IOCEBUNMAP = 0x80044f04 + UBI_IOCMKVOL = 0x80986f00 + UBI_IOCRMVOL = 0x80046f01 + UBI_IOCRNVOL = 0x91106f03 + UBI_IOCRSVOL = 0x800c6f02 + UBI_IOCSETVOLPROP = 0x80104f06 + UBI_IOCVOLCRBLK = 0x80804f07 + UBI_IOCVOLRMBLK = 0x20004f08 + UBI_IOCVOLUP = 0x80084f00 + UDF_SUPER_MAGIC = 0x15013346 + UMOUNT_NOFOLLOW = 0x8 + USBDEVICE_SUPER_MAGIC = 0x9fa2 + UTIME_NOW = 0x3fffffff + UTIME_OMIT = 0x3ffffffe + V9FS_MAGIC = 0x1021997 + VDISCARD = 0xd + VEOF = 0x4 + VEOL = 0xb + VEOL2 = 0x10 + VERASE = 0x2 + VINTR = 0x0 + VKILL = 0x3 + VLNEXT = 0xf + VMADDR_CID_ANY = 0xffffffff + VMADDR_CID_HOST = 0x2 + VMADDR_CID_HYPERVISOR = 0x0 + VMADDR_CID_RESERVED = 0x1 + VMADDR_PORT_ANY = 0xffffffff + VMIN = 0x6 + VM_SOCKETS_INVALID_VERSION = 0xffffffff + VQUIT = 0x1 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VT0 = 0x0 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WALL = 0x40000000 + WCLONE = 0x80000000 + WCONTINUED = 0x8 + WDIOC_GETBOOTSTATUS = 0x40045702 + WDIOC_GETPRETIMEOUT = 0x40045709 + WDIOC_GETSTATUS = 0x40045701 + WDIOC_GETSUPPORT = 0x40285700 + WDIOC_GETTEMP = 0x40045703 + WDIOC_GETTIMELEFT = 0x4004570a + WDIOC_GETTIMEOUT = 0x40045707 + WDIOC_KEEPALIVE = 0x40045705 + WDIOC_SETOPTIONS = 0x40045704 + WDIOC_SETPRETIMEOUT = 0xc0045708 + WDIOC_SETTIMEOUT = 0xc0045706 + WEXITED = 0x4 + WIN_ACKMEDIACHANGE = 0xdb + WIN_CHECKPOWERMODE1 = 0xe5 + WIN_CHECKPOWERMODE2 = 0x98 + WIN_DEVICE_RESET = 0x8 + WIN_DIAGNOSE = 0x90 + WIN_DOORLOCK = 0xde + WIN_DOORUNLOCK = 0xdf + WIN_DOWNLOAD_MICROCODE = 0x92 + WIN_FLUSH_CACHE = 0xe7 + WIN_FLUSH_CACHE_EXT = 0xea + WIN_FORMAT = 0x50 + WIN_GETMEDIASTATUS = 0xda + WIN_IDENTIFY = 0xec + WIN_IDENTIFY_DMA = 0xee + WIN_IDLEIMMEDIATE = 0xe1 + WIN_INIT = 0x60 + WIN_MEDIAEJECT = 0xed + WIN_MULTREAD = 0xc4 + WIN_MULTREAD_EXT = 0x29 + WIN_MULTWRITE = 0xc5 + WIN_MULTWRITE_EXT = 0x39 + WIN_NOP = 0x0 + WIN_PACKETCMD = 0xa0 + WIN_PIDENTIFY = 0xa1 + WIN_POSTBOOT = 0xdc + WIN_PREBOOT = 0xdd + WIN_QUEUED_SERVICE = 0xa2 + WIN_READ = 0x20 + WIN_READDMA = 0xc8 + WIN_READDMA_EXT = 0x25 + WIN_READDMA_ONCE = 0xc9 + WIN_READDMA_QUEUED = 0xc7 + WIN_READDMA_QUEUED_EXT = 0x26 + WIN_READ_BUFFER = 0xe4 + WIN_READ_EXT = 0x24 + WIN_READ_LONG = 0x22 + WIN_READ_LONG_ONCE = 0x23 + WIN_READ_NATIVE_MAX = 0xf8 + WIN_READ_NATIVE_MAX_EXT = 0x27 + WIN_READ_ONCE = 0x21 + WIN_RECAL = 0x10 + WIN_RESTORE = 0x10 + WIN_SECURITY_DISABLE = 0xf6 + WIN_SECURITY_ERASE_PREPARE = 0xf3 + WIN_SECURITY_ERASE_UNIT = 0xf4 + WIN_SECURITY_FREEZE_LOCK = 0xf5 + WIN_SECURITY_SET_PASS = 0xf1 + WIN_SECURITY_UNLOCK = 0xf2 + WIN_SEEK = 0x70 + WIN_SETFEATURES = 0xef + WIN_SETIDLE1 = 0xe3 + WIN_SETIDLE2 = 0x97 + WIN_SETMULT = 0xc6 + WIN_SET_MAX = 0xf9 + WIN_SET_MAX_EXT = 0x37 + WIN_SLEEPNOW1 = 0xe6 + WIN_SLEEPNOW2 = 0x99 + WIN_SMART = 0xb0 + WIN_SPECIFY = 0x91 + WIN_SRST = 0x8 + WIN_STANDBY = 0xe2 + WIN_STANDBY2 = 0x96 + WIN_STANDBYNOW1 = 0xe0 + WIN_STANDBYNOW2 = 0x94 + WIN_VERIFY = 0x40 + WIN_VERIFY_EXT = 0x42 + WIN_VERIFY_ONCE = 0x41 + WIN_WRITE = 0x30 + WIN_WRITEDMA = 0xca + WIN_WRITEDMA_EXT = 0x35 + WIN_WRITEDMA_ONCE = 0xcb + WIN_WRITEDMA_QUEUED = 0xcc + WIN_WRITEDMA_QUEUED_EXT = 0x36 + WIN_WRITE_BUFFER = 0xe8 + WIN_WRITE_EXT = 0x34 + WIN_WRITE_LONG = 0x32 + WIN_WRITE_LONG_ONCE = 0x33 + WIN_WRITE_ONCE = 0x31 + WIN_WRITE_SAME = 0xe9 + WIN_WRITE_VERIFY = 0x3c + WNOHANG = 0x1 + WNOTHREAD = 0x20000000 + WNOWAIT = 0x1000000 + WORDSIZE = 0x40 + WSTOPPED = 0x2 + WUNTRACED = 0x2 + XATTR_CREATE = 0x1 + XATTR_REPLACE = 0x2 + XCASE = 0x4 + XDP_COPY = 0x2 + XDP_FLAGS_DRV_MODE = 0x4 + XDP_FLAGS_HW_MODE = 0x8 + XDP_FLAGS_MASK = 0xf + XDP_FLAGS_MODES = 0xe + XDP_FLAGS_SKB_MODE = 0x2 + XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 + XDP_MMAP_OFFSETS = 0x1 + XDP_PGOFF_RX_RING = 0x0 + XDP_PGOFF_TX_RING = 0x80000000 + XDP_RX_RING = 0x2 + XDP_SHARED_UMEM = 0x1 + XDP_STATISTICS = 0x7 + XDP_TX_RING = 0x3 + XDP_UMEM_COMPLETION_RING = 0x6 + XDP_UMEM_FILL_RING = 0x5 + XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000 + XDP_UMEM_PGOFF_FILL_RING = 0x100000000 + XDP_UMEM_REG = 0x4 + XDP_ZEROCOPY = 0x4 + XENFS_SUPER_MAGIC = 0xabba1974 + XFS_SUPER_MAGIC = 0x58465342 + XTABS = 0x1800 + ZSMALLOC_MAGIC = 0x58295829 + __TIOCFLUSH = 0x80047410 ) // Errors diff --git a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go index 6bae21e5d..79f6e0566 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go @@ -1,4 +1,4 @@ -// mksyscall_aix_ppc.pl -aix -tags aix,ppc syscall_aix.go syscall_aix_ppc.go +// go run mksyscall_aix_ppc.go -aix -tags aix,ppc syscall_aix.go syscall_aix_ppc.go // Code generated by the command above; see README.md. DO NOT EDIT. // +build aix,ppc diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_11.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_11.go new file mode 100644 index 000000000..c4ec7ff87 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_11.go @@ -0,0 +1,1810 @@ +// go run mksyscall.go -l32 -tags darwin,386,!go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_386.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build darwin,386,!go1.12 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(ngid int, gid *_Gid_t) (n int, err error) { + r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { + r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { + r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, timeval *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fcntl(fd int, cmd int, arg int) (val int, err error) { + r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, behav int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mprotect(b []byte, prot int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Msync(b []byte, flags int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { + _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { + _, _, e1 := Syscall6(SYS_GETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe() (r int, w int, err error) { + r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) + r = int(r0) + w = int(r1) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attr) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attr) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attr) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attr) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func removexattr(path string, attr string, options int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attr) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fremovexattr(fd int, attr string, options int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attr) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func listxattr(path string, dest *byte, size int, options int) (sz int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) { + r0, _, e1 := Syscall6(SYS_FLISTXATTR, uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { + _, _, e1 := Syscall6(SYS_SETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kill(pid int, signum int, posix int) (err error) { + _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) { + _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(offset>>32), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Access(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chflags(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chroot(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(fd int) (nfd int, err error) { + r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exchangedata(path1 string, path2 string, options int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path1) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(path2) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXCHANGEDATA, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + Syscall(SYS_EXIT, uintptr(code), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fpathconf(fd int, name int) (val int, err error) { + r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), uintptr(length>>32)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getdtablesize() (size int) { + r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) + size = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgid(pid int) (pgid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) + pgrp = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) + ppid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpriority(which int, who int) (prio int, err error) { + r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrusage(who int, rusage *Rusage) (err error) { + _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := RawSyscall(SYS_ISSETUGID, 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Link(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdir(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifo(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknod(path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pathconf(path string, name int) (val int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlink(path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rename(from string, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(fromfd int, from string, tofd int, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Revoke(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rmdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0) + newoffset = int64(int64(r1)<<32 | int64(r0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { + _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + _, _, e1 := Syscall(SYS_SETEGID, uintptr(egid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seteuid(euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setlogin(name string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpriority(which int, who int, prio int) (err error) { + _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setprivexec(flag int) (err error) { + _, _, e1 := Syscall(SYS_SETPRIVEXEC, uintptr(flag), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlink(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Undelete(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { + r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func gettimeofday(tp *Timeval) (sec int32, usec int32, err error) { + r0, r1, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + sec = int32(r0) + usec = int32(r1) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, stat *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_GETDIRENTRIES64, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_GETFSSTAT64, uintptr(buf), uintptr(size), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, stat *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go index 8b7f27309..23346dc68 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go @@ -1,7 +1,7 @@ -// go run mksyscall.go -l32 -tags darwin,386 syscall_bsd.go syscall_darwin.go syscall_darwin_386.go +// go run mksyscall.go -l32 -tags darwin,386,go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_386.go // Code generated by the command above; see README.md. DO NOT EDIT. -// +build darwin,386 +// +build darwin,386,go1.12 package unix @@ -15,7 +15,7 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + r0, _, e1 := syscall_rawSyscall(funcPC(libc_getgroups_trampoline), uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -23,20 +23,30 @@ func getgroups(ngid int, gid *_Gid_t) (n int, err error) { return } +func libc_getgroups_trampoline() + +//go:linkname libc_getgroups libc_getgroups +//go:cgo_import_dynamic libc_getgroups getgroups "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + _, _, e1 := syscall_rawSyscall(funcPC(libc_setgroups_trampoline), uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setgroups_trampoline() + +//go:linkname libc_setgroups libc_setgroups +//go:cgo_import_dynamic libc_setgroups setgroups "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + r0, _, e1 := syscall_syscall6(funcPC(libc_wait4_trampoline), uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) wpid = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -44,10 +54,15 @@ func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err return } +func libc_wait4_trampoline() + +//go:linkname libc_wait4 libc_wait4 +//go:cgo_import_dynamic libc_wait4 wait4 "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + r0, _, e1 := syscall_syscall(funcPC(libc_accept_trampoline), uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -55,30 +70,45 @@ func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { return } +func libc_accept_trampoline() + +//go:linkname libc_accept libc_accept +//go:cgo_import_dynamic libc_accept accept "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + _, _, e1 := syscall_syscall(funcPC(libc_bind_trampoline), uintptr(s), uintptr(addr), uintptr(addrlen)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_bind_trampoline() + +//go:linkname libc_bind libc_bind +//go:cgo_import_dynamic libc_bind bind "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + _, _, e1 := syscall_syscall(funcPC(libc_connect_trampoline), uintptr(s), uintptr(addr), uintptr(addrlen)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_connect_trampoline() + +//go:linkname libc_connect libc_connect +//go:cgo_import_dynamic libc_connect connect "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + r0, _, e1 := syscall_rawSyscall(funcPC(libc_socket_trampoline), uintptr(domain), uintptr(typ), uintptr(proto)) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -86,66 +116,101 @@ func socket(domain int, typ int, proto int) (fd int, err error) { return } +func libc_socket_trampoline() + +//go:linkname libc_socket libc_socket +//go:cgo_import_dynamic libc_socket socket "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + _, _, e1 := syscall_syscall6(funcPC(libc_getsockopt_trampoline), uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_getsockopt_trampoline() + +//go:linkname libc_getsockopt libc_getsockopt +//go:cgo_import_dynamic libc_getsockopt getsockopt "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + _, _, e1 := syscall_syscall6(funcPC(libc_setsockopt_trampoline), uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setsockopt_trampoline() + +//go:linkname libc_setsockopt libc_setsockopt +//go:cgo_import_dynamic libc_setsockopt setsockopt "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + _, _, e1 := syscall_rawSyscall(funcPC(libc_getpeername_trampoline), uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) if e1 != 0 { err = errnoErr(e1) } return } +func libc_getpeername_trampoline() + +//go:linkname libc_getpeername libc_getpeername +//go:cgo_import_dynamic libc_getpeername getpeername "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + _, _, e1 := syscall_rawSyscall(funcPC(libc_getsockname_trampoline), uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) if e1 != 0 { err = errnoErr(e1) } return } +func libc_getsockname_trampoline() + +//go:linkname libc_getsockname libc_getsockname +//go:cgo_import_dynamic libc_getsockname getsockname "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Shutdown(s int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) + _, _, e1 := syscall_syscall(funcPC(libc_shutdown_trampoline), uintptr(s), uintptr(how), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_shutdown_trampoline() + +//go:linkname libc_shutdown libc_shutdown +//go:cgo_import_dynamic libc_shutdown shutdown "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + _, _, e1 := syscall_rawSyscall6(funcPC(libc_socketpair_trampoline), uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_socketpair_trampoline() + +//go:linkname libc_socketpair libc_socketpair +//go:cgo_import_dynamic libc_socketpair socketpair "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { @@ -155,7 +220,7 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + r0, _, e1 := syscall_syscall6(funcPC(libc_recvfrom_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -163,6 +228,11 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl return } +func libc_recvfrom_trampoline() + +//go:linkname libc_recvfrom libc_recvfrom +//go:cgo_import_dynamic libc_recvfrom recvfrom "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { @@ -172,17 +242,22 @@ func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) ( } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + _, _, e1 := syscall_syscall6(funcPC(libc_sendto_trampoline), uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_sendto_trampoline() + +//go:linkname libc_sendto libc_sendto +//go:cgo_import_dynamic libc_sendto sendto "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + r0, _, e1 := syscall_syscall(funcPC(libc_recvmsg_trampoline), uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -190,10 +265,15 @@ func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { return } +func libc_recvmsg_trampoline() + +//go:linkname libc_recvmsg libc_recvmsg +//go:cgo_import_dynamic libc_recvmsg recvmsg "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + r0, _, e1 := syscall_syscall(funcPC(libc_sendmsg_trampoline), uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -201,10 +281,15 @@ func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { return } +func libc_sendmsg_trampoline() + +//go:linkname libc_sendmsg libc_sendmsg +//go:cgo_import_dynamic libc_sendmsg sendmsg "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + r0, _, e1 := syscall_syscall6(funcPC(libc_kevent_trampoline), uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -212,6 +297,11 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne return } +func libc_kevent_trampoline() + +//go:linkname libc_kevent libc_kevent +//go:cgo_import_dynamic libc_kevent kevent "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { @@ -221,13 +311,18 @@ func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + _, _, e1 := syscall_syscall6(funcPC(libc___sysctl_trampoline), uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) if e1 != 0 { err = errnoErr(e1) } return } +func libc___sysctl_trampoline() + +//go:linkname libc___sysctl libc___sysctl +//go:cgo_import_dynamic libc___sysctl __sysctl "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func utimes(path string, timeval *[2]Timeval) (err error) { @@ -236,27 +331,37 @@ func utimes(path string, timeval *[2]Timeval) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + _, _, e1 := syscall_syscall(funcPC(libc_utimes_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_utimes_trampoline() + +//go:linkname libc_utimes libc_utimes +//go:cgo_import_dynamic libc_utimes utimes "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + _, _, e1 := syscall_syscall(funcPC(libc_futimes_trampoline), uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_futimes_trampoline() + +//go:linkname libc_futimes libc_futimes +//go:cgo_import_dynamic libc_futimes futimes "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) + r0, _, e1 := syscall_syscall(funcPC(libc_fcntl_trampoline), uintptr(fd), uintptr(cmd), uintptr(arg)) val = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -264,10 +369,15 @@ func fcntl(fd int, cmd int, arg int) (val int, err error) { return } +func libc_fcntl_trampoline() + +//go:linkname libc_fcntl libc_fcntl +//go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + r0, _, e1 := syscall_syscall(funcPC(libc_poll_trampoline), uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -275,6 +385,11 @@ func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { return } +func libc_poll_trampoline() + +//go:linkname libc_poll libc_poll +//go:cgo_import_dynamic libc_poll poll "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Madvise(b []byte, behav int) (err error) { @@ -284,13 +399,18 @@ func Madvise(b []byte, behav int) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + _, _, e1 := syscall_syscall(funcPC(libc_madvise_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(behav)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_madvise_trampoline() + +//go:linkname libc_madvise libc_madvise +//go:cgo_import_dynamic libc_madvise madvise "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mlock(b []byte) (err error) { @@ -300,23 +420,33 @@ func Mlock(b []byte) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) + _, _, e1 := syscall_syscall(funcPC(libc_mlock_trampoline), uintptr(_p0), uintptr(len(b)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_mlock_trampoline() + +//go:linkname libc_mlock libc_mlock +//go:cgo_import_dynamic libc_mlock mlock "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_mlockall_trampoline), uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_mlockall_trampoline() + +//go:linkname libc_mlockall libc_mlockall +//go:cgo_import_dynamic libc_mlockall mlockall "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mprotect(b []byte, prot int) (err error) { @@ -326,13 +456,18 @@ func Mprotect(b []byte, prot int) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + _, _, e1 := syscall_syscall(funcPC(libc_mprotect_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(prot)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_mprotect_trampoline() + +//go:linkname libc_mprotect libc_mprotect +//go:cgo_import_dynamic libc_mprotect mprotect "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Msync(b []byte, flags int) (err error) { @@ -342,13 +477,18 @@ func Msync(b []byte, flags int) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + _, _, e1 := syscall_syscall(funcPC(libc_msync_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(flags)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_msync_trampoline() + +//go:linkname libc_msync libc_msync +//go:cgo_import_dynamic libc_msync msync "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Munlock(b []byte) (err error) { @@ -358,37 +498,67 @@ func Munlock(b []byte) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) + _, _, e1 := syscall_syscall(funcPC(libc_munlock_trampoline), uintptr(_p0), uintptr(len(b)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_munlock_trampoline() + +//go:linkname libc_munlock libc_munlock +//go:cgo_import_dynamic libc_munlock munlock "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_munlockall_trampoline), 0, 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_munlockall_trampoline() + +//go:linkname libc_munlockall libc_munlockall +//go:cgo_import_dynamic libc_munlockall munlockall "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) + _, _, e1 := syscall_syscall6(funcPC(libc_ptrace_trampoline), uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_ptrace_trampoline() + +//go:linkname libc_ptrace libc_ptrace +//go:cgo_import_dynamic libc_ptrace ptrace "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { + _, _, e1 := syscall_syscall6(funcPC(libc_getattrlist_trampoline), uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getattrlist_trampoline() + +//go:linkname libc_getattrlist libc_getattrlist +//go:cgo_import_dynamic libc_getattrlist getattrlist "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func pipe() (r int, w int, err error) { - r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) + r0, r1, e1 := syscall_rawSyscall(funcPC(libc_pipe_trampoline), 0, 0, 0) r = int(r0) w = int(r1) if e1 != 0 { @@ -397,6 +567,11 @@ func pipe() (r int, w int, err error) { return } +func libc_pipe_trampoline() + +//go:linkname libc_pipe libc_pipe +//go:cgo_import_dynamic libc_pipe pipe "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { @@ -410,7 +585,7 @@ func getxattr(path string, attr string, dest *byte, size int, position uint32, o if err != nil { return } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) + r0, _, e1 := syscall_syscall6(funcPC(libc_getxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) sz = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -418,6 +593,11 @@ func getxattr(path string, attr string, dest *byte, size int, position uint32, o return } +func libc_getxattr_trampoline() + +//go:linkname libc_getxattr libc_getxattr +//go:cgo_import_dynamic libc_getxattr getxattr "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { @@ -426,7 +606,7 @@ func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, optio if err != nil { return } - r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) + r0, _, e1 := syscall_syscall6(funcPC(libc_fgetxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) sz = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -434,6 +614,11 @@ func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, optio return } +func libc_fgetxattr_trampoline() + +//go:linkname libc_fgetxattr libc_fgetxattr +//go:cgo_import_dynamic libc_fgetxattr fgetxattr "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) { @@ -447,13 +632,18 @@ func setxattr(path string, attr string, data *byte, size int, position uint32, o if err != nil { return } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) + _, _, e1 := syscall_syscall6(funcPC(libc_setxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setxattr_trampoline() + +//go:linkname libc_setxattr libc_setxattr +//go:cgo_import_dynamic libc_setxattr setxattr "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) { @@ -462,13 +652,18 @@ func fsetxattr(fd int, attr string, data *byte, size int, position uint32, optio if err != nil { return } - _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) + _, _, e1 := syscall_syscall6(funcPC(libc_fsetxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_fsetxattr_trampoline() + +//go:linkname libc_fsetxattr libc_fsetxattr +//go:cgo_import_dynamic libc_fsetxattr fsetxattr "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func removexattr(path string, attr string, options int) (err error) { @@ -482,13 +677,18 @@ func removexattr(path string, attr string, options int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) + _, _, e1 := syscall_syscall(funcPC(libc_removexattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_removexattr_trampoline() + +//go:linkname libc_removexattr libc_removexattr +//go:cgo_import_dynamic libc_removexattr removexattr "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func fremovexattr(fd int, attr string, options int) (err error) { @@ -497,13 +697,18 @@ func fremovexattr(fd int, attr string, options int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options)) + _, _, e1 := syscall_syscall(funcPC(libc_fremovexattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_fremovexattr_trampoline() + +//go:linkname libc_fremovexattr libc_fremovexattr +//go:cgo_import_dynamic libc_fremovexattr fremovexattr "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func listxattr(path string, dest *byte, size int, options int) (sz int, err error) { @@ -512,7 +717,7 @@ func listxattr(path string, dest *byte, size int, options int) (sz int, err erro if err != nil { return } - r0, _, e1 := Syscall6(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) + r0, _, e1 := syscall_syscall6(funcPC(libc_listxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) sz = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -520,10 +725,15 @@ func listxattr(path string, dest *byte, size int, options int) (sz int, err erro return } +func libc_listxattr_trampoline() + +//go:linkname libc_listxattr libc_listxattr +//go:cgo_import_dynamic libc_listxattr listxattr "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) { - r0, _, e1 := Syscall6(SYS_FLISTXATTR, uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) + r0, _, e1 := syscall_syscall6(funcPC(libc_flistxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) sz = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -531,26 +741,71 @@ func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) { return } +func libc_flistxattr_trampoline() + +//go:linkname libc_flistxattr libc_flistxattr +//go:cgo_import_dynamic libc_flistxattr flistxattr "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func kill(pid int, signum int, posix int) (err error) { - _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix)) +func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { + _, _, e1 := syscall_syscall6(funcPC(libc_setattrlist_trampoline), uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setattrlist_trampoline() + +//go:linkname libc_setattrlist libc_setattrlist +//go:cgo_import_dynamic libc_setattrlist setattrlist "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kill(pid int, signum int, posix int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_kill_trampoline), uintptr(pid), uintptr(signum), uintptr(posix)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_kill_trampoline() + +//go:linkname libc_kill libc_kill +//go:cgo_import_dynamic libc_kill kill "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + _, _, e1 := syscall_syscall(funcPC(libc_ioctl_trampoline), uintptr(fd), uintptr(req), uintptr(arg)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_ioctl_trampoline() + +//go:linkname libc_ioctl libc_ioctl +//go:cgo_import_dynamic libc_ioctl ioctl "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) { + _, _, e1 := syscall_syscall9(funcPC(libc_sendfile_trampoline), uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(offset>>32), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_sendfile_trampoline() + +//go:linkname libc_sendfile libc_sendfile +//go:cgo_import_dynamic libc_sendfile sendfile "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Access(path string, mode uint32) (err error) { @@ -559,23 +814,33 @@ func Access(path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + _, _, e1 := syscall_syscall(funcPC(libc_access_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_access_trampoline() + +//go:linkname libc_access libc_access +//go:cgo_import_dynamic libc_access access "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + _, _, e1 := syscall_syscall(funcPC(libc_adjtime_trampoline), uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_adjtime_trampoline() + +//go:linkname libc_adjtime libc_adjtime +//go:cgo_import_dynamic libc_adjtime adjtime "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Chdir(path string) (err error) { @@ -584,13 +849,18 @@ func Chdir(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_chdir_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_chdir_trampoline() + +//go:linkname libc_chdir libc_chdir +//go:cgo_import_dynamic libc_chdir chdir "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Chflags(path string, flags int) (err error) { @@ -599,13 +869,18 @@ func Chflags(path string, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + _, _, e1 := syscall_syscall(funcPC(libc_chflags_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_chflags_trampoline() + +//go:linkname libc_chflags libc_chflags +//go:cgo_import_dynamic libc_chflags chflags "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Chmod(path string, mode uint32) (err error) { @@ -614,13 +889,18 @@ func Chmod(path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + _, _, e1 := syscall_syscall(funcPC(libc_chmod_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_chmod_trampoline() + +//go:linkname libc_chmod libc_chmod +//go:cgo_import_dynamic libc_chmod chmod "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Chown(path string, uid int, gid int) (err error) { @@ -629,13 +909,18 @@ func Chown(path string, uid int, gid int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + _, _, e1 := syscall_syscall(funcPC(libc_chown_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_chown_trampoline() + +//go:linkname libc_chown libc_chown +//go:cgo_import_dynamic libc_chown chown "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Chroot(path string) (err error) { @@ -644,27 +929,37 @@ func Chroot(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_chroot_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_chroot_trampoline() + +//go:linkname libc_chroot libc_chroot +//go:cgo_import_dynamic libc_chroot chroot "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_close_trampoline), uintptr(fd), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_close_trampoline() + +//go:linkname libc_close libc_close +//go:cgo_import_dynamic libc_close close "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Dup(fd int) (nfd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) + r0, _, e1 := syscall_syscall(funcPC(libc_dup_trampoline), uintptr(fd), 0, 0) nfd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -672,16 +967,26 @@ func Dup(fd int) (nfd int, err error) { return } +func libc_dup_trampoline() + +//go:linkname libc_dup libc_dup +//go:cgo_import_dynamic libc_dup dup "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Dup2(from int, to int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) + _, _, e1 := syscall_syscall(funcPC(libc_dup2_trampoline), uintptr(from), uintptr(to), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_dup2_trampoline() + +//go:linkname libc_dup2 libc_dup2 +//go:cgo_import_dynamic libc_dup2 dup2 "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Exchangedata(path1 string, path2 string, options int) (err error) { @@ -695,20 +1000,30 @@ func Exchangedata(path1 string, path2 string, options int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_EXCHANGEDATA, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) + _, _, e1 := syscall_syscall(funcPC(libc_exchangedata_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_exchangedata_trampoline() + +//go:linkname libc_exchangedata libc_exchangedata +//go:cgo_import_dynamic libc_exchangedata exchangedata "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Exit(code int) { - Syscall(SYS_EXIT, uintptr(code), 0, 0) + syscall_syscall(funcPC(libc_exit_trampoline), uintptr(code), 0, 0) return } +func libc_exit_trampoline() + +//go:linkname libc_exit libc_exit +//go:cgo_import_dynamic libc_exit exit "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { @@ -717,43 +1032,63 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + _, _, e1 := syscall_syscall6(funcPC(libc_faccessat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_faccessat_trampoline() + +//go:linkname libc_faccessat libc_faccessat +//go:cgo_import_dynamic libc_faccessat faccessat "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_fchdir_trampoline), uintptr(fd), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_fchdir_trampoline() + +//go:linkname libc_fchdir libc_fchdir +//go:cgo_import_dynamic libc_fchdir fchdir "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchflags(fd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) + _, _, e1 := syscall_syscall(funcPC(libc_fchflags_trampoline), uintptr(fd), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_fchflags_trampoline() + +//go:linkname libc_fchflags libc_fchflags +//go:cgo_import_dynamic libc_fchflags fchflags "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) + _, _, e1 := syscall_syscall(funcPC(libc_fchmod_trampoline), uintptr(fd), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_fchmod_trampoline() + +//go:linkname libc_fchmod libc_fchmod +//go:cgo_import_dynamic libc_fchmod fchmod "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { @@ -762,23 +1097,33 @@ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + _, _, e1 := syscall_syscall6(funcPC(libc_fchmodat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_fchmodat_trampoline() + +//go:linkname libc_fchmodat libc_fchmodat +//go:cgo_import_dynamic libc_fchmodat fchmodat "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + _, _, e1 := syscall_syscall(funcPC(libc_fchown_trampoline), uintptr(fd), uintptr(uid), uintptr(gid)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_fchown_trampoline() + +//go:linkname libc_fchown libc_fchown +//go:cgo_import_dynamic libc_fchown fchown "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { @@ -787,27 +1132,37 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + _, _, e1 := syscall_syscall6(funcPC(libc_fchownat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_fchownat_trampoline() + +//go:linkname libc_fchownat libc_fchownat +//go:cgo_import_dynamic libc_fchownat fchownat "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) + _, _, e1 := syscall_syscall(funcPC(libc_flock_trampoline), uintptr(fd), uintptr(how), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_flock_trampoline() + +//go:linkname libc_flock libc_flock +//go:cgo_import_dynamic libc_flock flock "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) + r0, _, e1 := syscall_syscall(funcPC(libc_fpathconf_trampoline), uintptr(fd), uintptr(name), 0) val = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -815,114 +1170,97 @@ func Fpathconf(fd int, name int) (val int, err error) { return } -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func libc_fpathconf_trampoline() -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} +//go:linkname libc_fpathconf libc_fpathconf +//go:cgo_import_dynamic libc_fpathconf fpathconf "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_fsync_trampoline), uintptr(fd), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_fsync_trampoline() + +//go:linkname libc_fsync libc_fsync +//go:cgo_import_dynamic libc_fsync fsync "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), uintptr(length>>32)) + _, _, e1 := syscall_syscall(funcPC(libc_ftruncate_trampoline), uintptr(fd), uintptr(length), uintptr(length>>32)) if e1 != 0 { err = errnoErr(e1) } return } -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func libc_ftruncate_trampoline() -func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETDIRENTRIES64, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} +//go:linkname libc_ftruncate libc_ftruncate +//go:cgo_import_dynamic libc_ftruncate ftruncate "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getdtablesize() (size int) { - r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) + r0, _, _ := syscall_syscall(funcPC(libc_getdtablesize_trampoline), 0, 0, 0) size = int(r0) return } +func libc_getdtablesize_trampoline() + +//go:linkname libc_getdtablesize libc_getdtablesize +//go:cgo_import_dynamic libc_getdtablesize getdtablesize "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(funcPC(libc_getegid_trampoline), 0, 0, 0) egid = int(r0) return } +func libc_getegid_trampoline() + +//go:linkname libc_getegid libc_getegid +//go:cgo_import_dynamic libc_getegid getegid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Geteuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(funcPC(libc_geteuid_trampoline), 0, 0, 0) uid = int(r0) return } +func libc_geteuid_trampoline() + +//go:linkname libc_geteuid libc_geteuid +//go:cgo_import_dynamic libc_geteuid geteuid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(funcPC(libc_getgid_trampoline), 0, 0, 0) gid = int(r0) return } +func libc_getgid_trampoline() + +//go:linkname libc_getgid libc_getgid +//go:cgo_import_dynamic libc_getgid getgid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) + r0, _, e1 := syscall_rawSyscall(funcPC(libc_getpgid_trampoline), uintptr(pid), 0, 0) pgid = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -930,34 +1268,54 @@ func Getpgid(pid int) (pgid int, err error) { return } +func libc_getpgid_trampoline() + +//go:linkname libc_getpgid libc_getpgid +//go:cgo_import_dynamic libc_getpgid getpgid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getpgrp() (pgrp int) { - r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(funcPC(libc_getpgrp_trampoline), 0, 0, 0) pgrp = int(r0) return } +func libc_getpgrp_trampoline() + +//go:linkname libc_getpgrp libc_getpgrp +//go:cgo_import_dynamic libc_getpgrp getpgrp "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(funcPC(libc_getpid_trampoline), 0, 0, 0) pid = int(r0) return } +func libc_getpid_trampoline() + +//go:linkname libc_getpid libc_getpid +//go:cgo_import_dynamic libc_getpid getpid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(funcPC(libc_getppid_trampoline), 0, 0, 0) ppid = int(r0) return } +func libc_getppid_trampoline() + +//go:linkname libc_getppid libc_getppid +//go:cgo_import_dynamic libc_getppid getppid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) + r0, _, e1 := syscall_syscall(funcPC(libc_getpriority_trampoline), uintptr(which), uintptr(who), 0) prio = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -965,30 +1323,45 @@ func Getpriority(which int, who int) (prio int, err error) { return } +func libc_getpriority_trampoline() + +//go:linkname libc_getpriority libc_getpriority +//go:cgo_import_dynamic libc_getpriority getpriority "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + _, _, e1 := syscall_rawSyscall(funcPC(libc_getrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_getrlimit_trampoline() + +//go:linkname libc_getrlimit libc_getrlimit +//go:cgo_import_dynamic libc_getrlimit getrlimit "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + _, _, e1 := syscall_rawSyscall(funcPC(libc_getrusage_trampoline), uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_getrusage_trampoline() + +//go:linkname libc_getrusage libc_getrusage +//go:cgo_import_dynamic libc_getrusage getrusage "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + r0, _, e1 := syscall_rawSyscall(funcPC(libc_getsid_trampoline), uintptr(pid), 0, 0) sid = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -996,26 +1369,41 @@ func Getsid(pid int) (sid int, err error) { return } +func libc_getsid_trampoline() + +//go:linkname libc_getsid libc_getsid +//go:cgo_import_dynamic libc_getsid getsid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(funcPC(libc_getuid_trampoline), 0, 0, 0) uid = int(r0) return } +func libc_getuid_trampoline() + +//go:linkname libc_getuid libc_getuid +//go:cgo_import_dynamic libc_getuid getuid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Issetugid() (tainted bool) { - r0, _, _ := RawSyscall(SYS_ISSETUGID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(funcPC(libc_issetugid_trampoline), 0, 0, 0) tainted = bool(r0 != 0) return } +func libc_issetugid_trampoline() + +//go:linkname libc_issetugid libc_issetugid +//go:cgo_import_dynamic libc_issetugid issetugid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Kqueue() (fd int, err error) { - r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) + r0, _, e1 := syscall_syscall(funcPC(libc_kqueue_trampoline), 0, 0, 0) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1023,6 +1411,11 @@ func Kqueue() (fd int, err error) { return } +func libc_kqueue_trampoline() + +//go:linkname libc_kqueue libc_kqueue +//go:cgo_import_dynamic libc_kqueue kqueue "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Lchown(path string, uid int, gid int) (err error) { @@ -1031,13 +1424,18 @@ func Lchown(path string, uid int, gid int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + _, _, e1 := syscall_syscall(funcPC(libc_lchown_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_lchown_trampoline() + +//go:linkname libc_lchown libc_lchown +//go:cgo_import_dynamic libc_lchown lchown "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Link(path string, link string) (err error) { @@ -1051,13 +1449,18 @@ func Link(path string, link string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + _, _, e1 := syscall_syscall(funcPC(libc_link_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_link_trampoline() + +//go:linkname libc_link libc_link +//go:cgo_import_dynamic libc_link link "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { @@ -1071,37 +1474,32 @@ func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err er if err != nil { return } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + _, _, e1 := syscall_syscall6(funcPC(libc_linkat_trampoline), uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_linkat_trampoline() + +//go:linkname libc_linkat libc_linkat +//go:cgo_import_dynamic libc_linkat linkat "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Listen(s int, backlog int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) + _, _, e1 := syscall_syscall(funcPC(libc_listen_trampoline), uintptr(s), uintptr(backlog), 0) if e1 != 0 { err = errnoErr(e1) } return } -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func libc_listen_trampoline() -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} +//go:linkname libc_listen libc_listen +//go:cgo_import_dynamic libc_listen listen "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1111,13 +1509,18 @@ func Mkdir(path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + _, _, e1 := syscall_syscall(funcPC(libc_mkdir_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_mkdir_trampoline() + +//go:linkname libc_mkdir libc_mkdir +//go:cgo_import_dynamic libc_mkdir mkdir "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mkdirat(dirfd int, path string, mode uint32) (err error) { @@ -1126,13 +1529,18 @@ func Mkdirat(dirfd int, path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + _, _, e1 := syscall_syscall(funcPC(libc_mkdirat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_mkdirat_trampoline() + +//go:linkname libc_mkdirat libc_mkdirat +//go:cgo_import_dynamic libc_mkdirat mkdirat "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mkfifo(path string, mode uint32) (err error) { @@ -1141,13 +1549,18 @@ func Mkfifo(path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + _, _, e1 := syscall_syscall(funcPC(libc_mkfifo_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_mkfifo_trampoline() + +//go:linkname libc_mkfifo libc_mkfifo +//go:cgo_import_dynamic libc_mkfifo mkfifo "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mknod(path string, mode uint32, dev int) (err error) { @@ -1156,13 +1569,18 @@ func Mknod(path string, mode uint32, dev int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + _, _, e1 := syscall_syscall(funcPC(libc_mknod_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_mknod_trampoline() + +//go:linkname libc_mknod libc_mknod +//go:cgo_import_dynamic libc_mknod mknod "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Open(path string, mode int, perm uint32) (fd int, err error) { @@ -1171,7 +1589,7 @@ func Open(path string, mode int, perm uint32) (fd int, err error) { if err != nil { return } - r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + r0, _, e1 := syscall_syscall(funcPC(libc_open_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1179,6 +1597,11 @@ func Open(path string, mode int, perm uint32) (fd int, err error) { return } +func libc_open_trampoline() + +//go:linkname libc_open libc_open +//go:cgo_import_dynamic libc_open open "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { @@ -1187,7 +1610,7 @@ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { if err != nil { return } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + r0, _, e1 := syscall_syscall6(funcPC(libc_openat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1195,6 +1618,11 @@ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { return } +func libc_openat_trampoline() + +//go:linkname libc_openat libc_openat +//go:cgo_import_dynamic libc_openat openat "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Pathconf(path string, name int) (val int, err error) { @@ -1203,7 +1631,7 @@ func Pathconf(path string, name int) (val int, err error) { if err != nil { return } - r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + r0, _, e1 := syscall_syscall(funcPC(libc_pathconf_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) val = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1211,6 +1639,11 @@ func Pathconf(path string, name int) (val int, err error) { return } +func libc_pathconf_trampoline() + +//go:linkname libc_pathconf libc_pathconf +//go:cgo_import_dynamic libc_pathconf pathconf "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Pread(fd int, p []byte, offset int64) (n int, err error) { @@ -1220,7 +1653,7 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) + r0, _, e1 := syscall_syscall6(funcPC(libc_pread_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1228,6 +1661,11 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) { return } +func libc_pread_trampoline() + +//go:linkname libc_pread libc_pread +//go:cgo_import_dynamic libc_pread pread "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Pwrite(fd int, p []byte, offset int64) (n int, err error) { @@ -1237,7 +1675,7 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) + r0, _, e1 := syscall_syscall6(funcPC(libc_pwrite_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1245,6 +1683,11 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) { return } +func libc_pwrite_trampoline() + +//go:linkname libc_pwrite libc_pwrite +//go:cgo_import_dynamic libc_pwrite pwrite "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func read(fd int, p []byte) (n int, err error) { @@ -1254,7 +1697,7 @@ func read(fd int, p []byte) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) + r0, _, e1 := syscall_syscall(funcPC(libc_read_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1262,6 +1705,11 @@ func read(fd int, p []byte) (n int, err error) { return } +func libc_read_trampoline() + +//go:linkname libc_read libc_read +//go:cgo_import_dynamic libc_read read "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Readlink(path string, buf []byte) (n int, err error) { @@ -1276,7 +1724,7 @@ func Readlink(path string, buf []byte) (n int, err error) { } else { _p1 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + r0, _, e1 := syscall_syscall(funcPC(libc_readlink_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1284,6 +1732,11 @@ func Readlink(path string, buf []byte) (n int, err error) { return } +func libc_readlink_trampoline() + +//go:linkname libc_readlink libc_readlink +//go:cgo_import_dynamic libc_readlink readlink "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { @@ -1298,7 +1751,7 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { } else { _p1 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + r0, _, e1 := syscall_syscall6(funcPC(libc_readlinkat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1306,6 +1759,11 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { return } +func libc_readlinkat_trampoline() + +//go:linkname libc_readlinkat libc_readlinkat +//go:cgo_import_dynamic libc_readlinkat readlinkat "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Rename(from string, to string) (err error) { @@ -1319,13 +1777,18 @@ func Rename(from string, to string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + _, _, e1 := syscall_syscall(funcPC(libc_rename_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_rename_trampoline() + +//go:linkname libc_rename libc_rename +//go:cgo_import_dynamic libc_rename rename "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Renameat(fromfd int, from string, tofd int, to string) (err error) { @@ -1339,13 +1802,18 @@ func Renameat(fromfd int, from string, tofd int, to string) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + _, _, e1 := syscall_syscall6(funcPC(libc_renameat_trampoline), uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_renameat_trampoline() + +//go:linkname libc_renameat libc_renameat +//go:cgo_import_dynamic libc_renameat renameat "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Revoke(path string) (err error) { @@ -1354,13 +1822,18 @@ func Revoke(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_revoke_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_revoke_trampoline() + +//go:linkname libc_revoke libc_revoke +//go:cgo_import_dynamic libc_revoke revoke "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Rmdir(path string) (err error) { @@ -1369,17 +1842,22 @@ func Rmdir(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_rmdir_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_rmdir_trampoline() + +//go:linkname libc_rmdir libc_rmdir +//go:cgo_import_dynamic libc_rmdir rmdir "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0) + r0, r1, e1 := syscall_syscall6(funcPC(libc_lseek_trampoline), uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0) newoffset = int64(int64(r1)<<32 | int64(r0)) if e1 != 0 { err = errnoErr(e1) @@ -1387,46 +1865,71 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { return } +func libc_lseek_trampoline() + +//go:linkname libc_lseek libc_lseek +//go:cgo_import_dynamic libc_lseek lseek "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { - _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + _, _, e1 := syscall_syscall6(funcPC(libc_select_trampoline), uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_select_trampoline() + +//go:linkname libc_select libc_select +//go:cgo_import_dynamic libc_select select "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setegid(egid int) (err error) { - _, _, e1 := Syscall(SYS_SETEGID, uintptr(egid), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_setegid_trampoline), uintptr(egid), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setegid_trampoline() + +//go:linkname libc_setegid libc_setegid +//go:cgo_import_dynamic libc_setegid setegid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Seteuid(euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) + _, _, e1 := syscall_rawSyscall(funcPC(libc_seteuid_trampoline), uintptr(euid), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_seteuid_trampoline() + +//go:linkname libc_seteuid libc_seteuid +//go:cgo_import_dynamic libc_seteuid seteuid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setgid(gid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) + _, _, e1 := syscall_rawSyscall(funcPC(libc_setgid_trampoline), uintptr(gid), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setgid_trampoline() + +//go:linkname libc_setgid libc_setgid +//go:cgo_import_dynamic libc_setgid setgid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setlogin(name string) (err error) { @@ -1435,77 +1938,112 @@ func Setlogin(name string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_setlogin_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setlogin_trampoline() + +//go:linkname libc_setlogin libc_setlogin +//go:cgo_import_dynamic libc_setlogin setlogin "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) + _, _, e1 := syscall_rawSyscall(funcPC(libc_setpgid_trampoline), uintptr(pid), uintptr(pgid), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setpgid_trampoline() + +//go:linkname libc_setpgid libc_setpgid +//go:cgo_import_dynamic libc_setpgid setpgid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) + _, _, e1 := syscall_syscall(funcPC(libc_setpriority_trampoline), uintptr(which), uintptr(who), uintptr(prio)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setpriority_trampoline() + +//go:linkname libc_setpriority libc_setpriority +//go:cgo_import_dynamic libc_setpriority setpriority "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setprivexec(flag int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIVEXEC, uintptr(flag), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_setprivexec_trampoline), uintptr(flag), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setprivexec_trampoline() + +//go:linkname libc_setprivexec libc_setprivexec +//go:cgo_import_dynamic libc_setprivexec setprivexec "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + _, _, e1 := syscall_rawSyscall(funcPC(libc_setregid_trampoline), uintptr(rgid), uintptr(egid), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setregid_trampoline() + +//go:linkname libc_setregid libc_setregid +//go:cgo_import_dynamic libc_setregid setregid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + _, _, e1 := syscall_rawSyscall(funcPC(libc_setreuid_trampoline), uintptr(ruid), uintptr(euid), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setreuid_trampoline() + +//go:linkname libc_setreuid libc_setreuid +//go:cgo_import_dynamic libc_setreuid setreuid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + _, _, e1 := syscall_rawSyscall(funcPC(libc_setrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setrlimit_trampoline() + +//go:linkname libc_setrlimit libc_setrlimit +//go:cgo_import_dynamic libc_setrlimit setrlimit "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) + r0, _, e1 := syscall_rawSyscall(funcPC(libc_setsid_trampoline), 0, 0, 0) pid = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1513,55 +2051,40 @@ func Setsid() (pid int, err error) { return } +func libc_setsid_trampoline() + +//go:linkname libc_setsid libc_setsid +//go:cgo_import_dynamic libc_setsid setsid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + _, _, e1 := syscall_rawSyscall(funcPC(libc_settimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_settimeofday_trampoline() + +//go:linkname libc_settimeofday libc_settimeofday +//go:cgo_import_dynamic libc_settimeofday settimeofday "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setuid(uid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) + _, _, e1 := syscall_rawSyscall(funcPC(libc_setuid_trampoline), uintptr(uid), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func libc_setuid_trampoline() -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, stat *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} +//go:linkname libc_setuid libc_setuid +//go:cgo_import_dynamic libc_setuid setuid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1576,13 +2099,18 @@ func Symlink(path string, link string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + _, _, e1 := syscall_syscall(funcPC(libc_symlink_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_symlink_trampoline() + +//go:linkname libc_symlink libc_symlink +//go:cgo_import_dynamic libc_symlink symlink "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { @@ -1596,23 +2124,33 @@ func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + _, _, e1 := syscall_syscall(funcPC(libc_symlinkat_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) if e1 != 0 { err = errnoErr(e1) } return } +func libc_symlinkat_trampoline() + +//go:linkname libc_symlinkat libc_symlinkat +//go:cgo_import_dynamic libc_symlinkat symlinkat "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Sync() (err error) { - _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_sync_trampoline), 0, 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_sync_trampoline() + +//go:linkname libc_sync libc_sync +//go:cgo_import_dynamic libc_sync sync "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Truncate(path string, length int64) (err error) { @@ -1621,21 +2159,31 @@ func Truncate(path string, length int64) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32)) + _, _, e1 := syscall_syscall(funcPC(libc_truncate_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_truncate_trampoline() + +//go:linkname libc_truncate libc_truncate +//go:cgo_import_dynamic libc_truncate truncate "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Umask(newmask int) (oldmask int) { - r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) + r0, _, _ := syscall_syscall(funcPC(libc_umask_trampoline), uintptr(newmask), 0, 0) oldmask = int(r0) return } +func libc_umask_trampoline() + +//go:linkname libc_umask libc_umask +//go:cgo_import_dynamic libc_umask umask "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Undelete(path string) (err error) { @@ -1644,13 +2192,18 @@ func Undelete(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_undelete_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_undelete_trampoline() + +//go:linkname libc_undelete libc_undelete +//go:cgo_import_dynamic libc_undelete undelete "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Unlink(path string) (err error) { @@ -1659,13 +2212,18 @@ func Unlink(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_unlink_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_unlink_trampoline() + +//go:linkname libc_unlink libc_unlink +//go:cgo_import_dynamic libc_unlink unlink "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Unlinkat(dirfd int, path string, flags int) (err error) { @@ -1674,13 +2232,18 @@ func Unlinkat(dirfd int, path string, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + _, _, e1 := syscall_syscall(funcPC(libc_unlinkat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_unlinkat_trampoline() + +//go:linkname libc_unlinkat libc_unlinkat +//go:cgo_import_dynamic libc_unlinkat unlinkat "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Unmount(path string, flags int) (err error) { @@ -1689,13 +2252,18 @@ func Unmount(path string, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + _, _, e1 := syscall_syscall(funcPC(libc_unmount_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_unmount_trampoline() + +//go:linkname libc_unmount libc_unmount +//go:cgo_import_dynamic libc_unmount unmount "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func write(fd int, p []byte) (n int, err error) { @@ -1705,7 +2273,7 @@ func write(fd int, p []byte) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + r0, _, e1 := syscall_syscall(funcPC(libc_write_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1713,10 +2281,15 @@ func write(fd int, p []byte) (n int, err error) { return } +func libc_write_trampoline() + +//go:linkname libc_write libc_write +//go:cgo_import_dynamic libc_write write "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0) + r0, _, e1 := syscall_syscall9(funcPC(libc_mmap_trampoline), uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0) ret = uintptr(r0) if e1 != 0 { err = errnoErr(e1) @@ -1724,20 +2297,30 @@ func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) ( return } +func libc_mmap_trampoline() + +//go:linkname libc_mmap libc_mmap +//go:cgo_import_dynamic libc_mmap mmap "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) + _, _, e1 := syscall_syscall(funcPC(libc_munmap_trampoline), uintptr(addr), uintptr(length), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_munmap_trampoline() + +//go:linkname libc_munmap libc_munmap +//go:cgo_import_dynamic libc_munmap munmap "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + r0, _, e1 := syscall_syscall(funcPC(libc_read_trampoline), uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1748,7 +2331,7 @@ func readlen(fd int, buf *byte, nbuf int) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + r0, _, e1 := syscall_syscall(funcPC(libc_write_trampoline), uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1759,7 +2342,7 @@ func writelen(fd int, buf *byte, nbuf int) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func gettimeofday(tp *Timeval) (sec int32, usec int32, err error) { - r0, r1, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + r0, r1, e1 := syscall_rawSyscall(funcPC(libc_gettimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0) sec = int32(r0) usec = int32(r1) if e1 != 0 { @@ -1767,3 +2350,156 @@ func gettimeofday(tp *Timeval) (sec int32, usec int32, err error) { } return } + +func libc_gettimeofday_trampoline() + +//go:linkname libc_gettimeofday libc_gettimeofday +//go:cgo_import_dynamic libc_gettimeofday gettimeofday "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_fstat64_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fstat64_trampoline() + +//go:linkname libc_fstat64 libc_fstat64 +//go:cgo_import_dynamic libc_fstat64 fstat64 "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(funcPC(libc_fstatat64_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fstatat64_trampoline() + +//go:linkname libc_fstatat64 libc_fstatat64 +//go:cgo_import_dynamic libc_fstatat64 fstatat64 "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, stat *Statfs_t) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_fstatfs64_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fstatfs64_trampoline() + +//go:linkname libc_fstatfs64 libc_fstatfs64 +//go:cgo_import_dynamic libc_fstatfs64 fstatfs64 "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(funcPC(libc___getdirentries64_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc___getdirentries64_trampoline() + +//go:linkname libc___getdirentries64 libc___getdirentries64 +//go:cgo_import_dynamic libc___getdirentries64 __getdirentries64 "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(funcPC(libc_getfsstat64_trampoline), uintptr(buf), uintptr(size), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getfsstat64_trampoline() + +//go:linkname libc_getfsstat64 libc_getfsstat64 +//go:cgo_import_dynamic libc_getfsstat64 getfsstat64 "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_lstat64_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_lstat64_trampoline() + +//go:linkname libc_lstat64 libc_lstat64 +//go:cgo_import_dynamic libc_lstat64 lstat64 "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_stat64_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_stat64_trampoline() + +//go:linkname libc_stat64 libc_stat64 +//go:cgo_import_dynamic libc_stat64 stat64 "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, stat *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_statfs64_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_statfs64_trampoline() + +//go:linkname libc_statfs64 libc_statfs64 +//go:cgo_import_dynamic libc_statfs64 statfs64 "/usr/lib/libSystem.B.dylib" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.s new file mode 100644 index 000000000..37b85b4f6 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.s @@ -0,0 +1,284 @@ +// go run mkasm_darwin.go 386 +// Code generated by the command above; DO NOT EDIT. + +// +build go1.12 + +#include "textflag.h" +TEXT ·libc_getgroups_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getgroups(SB) +TEXT ·libc_setgroups_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setgroups(SB) +TEXT ·libc_wait4_trampoline(SB),NOSPLIT,$0-0 + JMP libc_wait4(SB) +TEXT ·libc_accept_trampoline(SB),NOSPLIT,$0-0 + JMP libc_accept(SB) +TEXT ·libc_bind_trampoline(SB),NOSPLIT,$0-0 + JMP libc_bind(SB) +TEXT ·libc_connect_trampoline(SB),NOSPLIT,$0-0 + JMP libc_connect(SB) +TEXT ·libc_socket_trampoline(SB),NOSPLIT,$0-0 + JMP libc_socket(SB) +TEXT ·libc_getsockopt_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getsockopt(SB) +TEXT ·libc_setsockopt_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setsockopt(SB) +TEXT ·libc_getpeername_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getpeername(SB) +TEXT ·libc_getsockname_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getsockname(SB) +TEXT ·libc_shutdown_trampoline(SB),NOSPLIT,$0-0 + JMP libc_shutdown(SB) +TEXT ·libc_socketpair_trampoline(SB),NOSPLIT,$0-0 + JMP libc_socketpair(SB) +TEXT ·libc_recvfrom_trampoline(SB),NOSPLIT,$0-0 + JMP libc_recvfrom(SB) +TEXT ·libc_sendto_trampoline(SB),NOSPLIT,$0-0 + JMP libc_sendto(SB) +TEXT ·libc_recvmsg_trampoline(SB),NOSPLIT,$0-0 + JMP libc_recvmsg(SB) +TEXT ·libc_sendmsg_trampoline(SB),NOSPLIT,$0-0 + JMP libc_sendmsg(SB) +TEXT ·libc_kevent_trampoline(SB),NOSPLIT,$0-0 + JMP libc_kevent(SB) +TEXT ·libc___sysctl_trampoline(SB),NOSPLIT,$0-0 + JMP libc___sysctl(SB) +TEXT ·libc_utimes_trampoline(SB),NOSPLIT,$0-0 + JMP libc_utimes(SB) +TEXT ·libc_futimes_trampoline(SB),NOSPLIT,$0-0 + JMP libc_futimes(SB) +TEXT ·libc_fcntl_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fcntl(SB) +TEXT ·libc_poll_trampoline(SB),NOSPLIT,$0-0 + JMP libc_poll(SB) +TEXT ·libc_madvise_trampoline(SB),NOSPLIT,$0-0 + JMP libc_madvise(SB) +TEXT ·libc_mlock_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mlock(SB) +TEXT ·libc_mlockall_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mlockall(SB) +TEXT ·libc_mprotect_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mprotect(SB) +TEXT ·libc_msync_trampoline(SB),NOSPLIT,$0-0 + JMP libc_msync(SB) +TEXT ·libc_munlock_trampoline(SB),NOSPLIT,$0-0 + JMP libc_munlock(SB) +TEXT ·libc_munlockall_trampoline(SB),NOSPLIT,$0-0 + JMP libc_munlockall(SB) +TEXT ·libc_ptrace_trampoline(SB),NOSPLIT,$0-0 + JMP libc_ptrace(SB) +TEXT ·libc_getattrlist_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getattrlist(SB) +TEXT ·libc_pipe_trampoline(SB),NOSPLIT,$0-0 + JMP libc_pipe(SB) +TEXT ·libc_getxattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getxattr(SB) +TEXT ·libc_fgetxattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fgetxattr(SB) +TEXT ·libc_setxattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setxattr(SB) +TEXT ·libc_fsetxattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fsetxattr(SB) +TEXT ·libc_removexattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_removexattr(SB) +TEXT ·libc_fremovexattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fremovexattr(SB) +TEXT ·libc_listxattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_listxattr(SB) +TEXT ·libc_flistxattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_flistxattr(SB) +TEXT ·libc_setattrlist_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setattrlist(SB) +TEXT ·libc_kill_trampoline(SB),NOSPLIT,$0-0 + JMP libc_kill(SB) +TEXT ·libc_ioctl_trampoline(SB),NOSPLIT,$0-0 + JMP libc_ioctl(SB) +TEXT ·libc_sendfile_trampoline(SB),NOSPLIT,$0-0 + JMP libc_sendfile(SB) +TEXT ·libc_access_trampoline(SB),NOSPLIT,$0-0 + JMP libc_access(SB) +TEXT ·libc_adjtime_trampoline(SB),NOSPLIT,$0-0 + JMP libc_adjtime(SB) +TEXT ·libc_chdir_trampoline(SB),NOSPLIT,$0-0 + JMP libc_chdir(SB) +TEXT ·libc_chflags_trampoline(SB),NOSPLIT,$0-0 + JMP libc_chflags(SB) +TEXT ·libc_chmod_trampoline(SB),NOSPLIT,$0-0 + JMP libc_chmod(SB) +TEXT ·libc_chown_trampoline(SB),NOSPLIT,$0-0 + JMP libc_chown(SB) +TEXT ·libc_chroot_trampoline(SB),NOSPLIT,$0-0 + JMP libc_chroot(SB) +TEXT ·libc_close_trampoline(SB),NOSPLIT,$0-0 + JMP libc_close(SB) +TEXT ·libc_dup_trampoline(SB),NOSPLIT,$0-0 + JMP libc_dup(SB) +TEXT ·libc_dup2_trampoline(SB),NOSPLIT,$0-0 + JMP libc_dup2(SB) +TEXT ·libc_exchangedata_trampoline(SB),NOSPLIT,$0-0 + JMP libc_exchangedata(SB) +TEXT ·libc_exit_trampoline(SB),NOSPLIT,$0-0 + JMP libc_exit(SB) +TEXT ·libc_faccessat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_faccessat(SB) +TEXT ·libc_fchdir_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fchdir(SB) +TEXT ·libc_fchflags_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fchflags(SB) +TEXT ·libc_fchmod_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fchmod(SB) +TEXT ·libc_fchmodat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fchmodat(SB) +TEXT ·libc_fchown_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fchown(SB) +TEXT ·libc_fchownat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fchownat(SB) +TEXT ·libc_flock_trampoline(SB),NOSPLIT,$0-0 + JMP libc_flock(SB) +TEXT ·libc_fpathconf_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fpathconf(SB) +TEXT ·libc_fsync_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fsync(SB) +TEXT ·libc_ftruncate_trampoline(SB),NOSPLIT,$0-0 + JMP libc_ftruncate(SB) +TEXT ·libc_getdtablesize_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getdtablesize(SB) +TEXT ·libc_getegid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getegid(SB) +TEXT ·libc_geteuid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_geteuid(SB) +TEXT ·libc_getgid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getgid(SB) +TEXT ·libc_getpgid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getpgid(SB) +TEXT ·libc_getpgrp_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getpgrp(SB) +TEXT ·libc_getpid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getpid(SB) +TEXT ·libc_getppid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getppid(SB) +TEXT ·libc_getpriority_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getpriority(SB) +TEXT ·libc_getrlimit_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getrlimit(SB) +TEXT ·libc_getrusage_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getrusage(SB) +TEXT ·libc_getsid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getsid(SB) +TEXT ·libc_getuid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getuid(SB) +TEXT ·libc_issetugid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_issetugid(SB) +TEXT ·libc_kqueue_trampoline(SB),NOSPLIT,$0-0 + JMP libc_kqueue(SB) +TEXT ·libc_lchown_trampoline(SB),NOSPLIT,$0-0 + JMP libc_lchown(SB) +TEXT ·libc_link_trampoline(SB),NOSPLIT,$0-0 + JMP libc_link(SB) +TEXT ·libc_linkat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_linkat(SB) +TEXT ·libc_listen_trampoline(SB),NOSPLIT,$0-0 + JMP libc_listen(SB) +TEXT ·libc_mkdir_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mkdir(SB) +TEXT ·libc_mkdirat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mkdirat(SB) +TEXT ·libc_mkfifo_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mkfifo(SB) +TEXT ·libc_mknod_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mknod(SB) +TEXT ·libc_open_trampoline(SB),NOSPLIT,$0-0 + JMP libc_open(SB) +TEXT ·libc_openat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_openat(SB) +TEXT ·libc_pathconf_trampoline(SB),NOSPLIT,$0-0 + JMP libc_pathconf(SB) +TEXT ·libc_pread_trampoline(SB),NOSPLIT,$0-0 + JMP libc_pread(SB) +TEXT ·libc_pwrite_trampoline(SB),NOSPLIT,$0-0 + JMP libc_pwrite(SB) +TEXT ·libc_read_trampoline(SB),NOSPLIT,$0-0 + JMP libc_read(SB) +TEXT ·libc_readlink_trampoline(SB),NOSPLIT,$0-0 + JMP libc_readlink(SB) +TEXT ·libc_readlinkat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_readlinkat(SB) +TEXT ·libc_rename_trampoline(SB),NOSPLIT,$0-0 + JMP libc_rename(SB) +TEXT ·libc_renameat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_renameat(SB) +TEXT ·libc_revoke_trampoline(SB),NOSPLIT,$0-0 + JMP libc_revoke(SB) +TEXT ·libc_rmdir_trampoline(SB),NOSPLIT,$0-0 + JMP libc_rmdir(SB) +TEXT ·libc_lseek_trampoline(SB),NOSPLIT,$0-0 + JMP libc_lseek(SB) +TEXT ·libc_select_trampoline(SB),NOSPLIT,$0-0 + JMP libc_select(SB) +TEXT ·libc_setegid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setegid(SB) +TEXT ·libc_seteuid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_seteuid(SB) +TEXT ·libc_setgid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setgid(SB) +TEXT ·libc_setlogin_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setlogin(SB) +TEXT ·libc_setpgid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setpgid(SB) +TEXT ·libc_setpriority_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setpriority(SB) +TEXT ·libc_setprivexec_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setprivexec(SB) +TEXT ·libc_setregid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setregid(SB) +TEXT ·libc_setreuid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setreuid(SB) +TEXT ·libc_setrlimit_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setrlimit(SB) +TEXT ·libc_setsid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setsid(SB) +TEXT ·libc_settimeofday_trampoline(SB),NOSPLIT,$0-0 + JMP libc_settimeofday(SB) +TEXT ·libc_setuid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setuid(SB) +TEXT ·libc_symlink_trampoline(SB),NOSPLIT,$0-0 + JMP libc_symlink(SB) +TEXT ·libc_symlinkat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_symlinkat(SB) +TEXT ·libc_sync_trampoline(SB),NOSPLIT,$0-0 + JMP libc_sync(SB) +TEXT ·libc_truncate_trampoline(SB),NOSPLIT,$0-0 + JMP libc_truncate(SB) +TEXT ·libc_umask_trampoline(SB),NOSPLIT,$0-0 + JMP libc_umask(SB) +TEXT ·libc_undelete_trampoline(SB),NOSPLIT,$0-0 + JMP libc_undelete(SB) +TEXT ·libc_unlink_trampoline(SB),NOSPLIT,$0-0 + JMP libc_unlink(SB) +TEXT ·libc_unlinkat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_unlinkat(SB) +TEXT ·libc_unmount_trampoline(SB),NOSPLIT,$0-0 + JMP libc_unmount(SB) +TEXT ·libc_write_trampoline(SB),NOSPLIT,$0-0 + JMP libc_write(SB) +TEXT ·libc_mmap_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mmap(SB) +TEXT ·libc_munmap_trampoline(SB),NOSPLIT,$0-0 + JMP libc_munmap(SB) +TEXT ·libc_gettimeofday_trampoline(SB),NOSPLIT,$0-0 + JMP libc_gettimeofday(SB) +TEXT ·libc_fstat64_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fstat64(SB) +TEXT ·libc_fstatat64_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fstatat64(SB) +TEXT ·libc_fstatfs64_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fstatfs64(SB) +TEXT ·libc___getdirentries64_trampoline(SB),NOSPLIT,$0-0 + JMP libc___getdirentries64(SB) +TEXT ·libc_getfsstat64_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getfsstat64(SB) +TEXT ·libc_lstat64_trampoline(SB),NOSPLIT,$0-0 + JMP libc_lstat64(SB) +TEXT ·libc_stat64_trampoline(SB),NOSPLIT,$0-0 + JMP libc_stat64(SB) +TEXT ·libc_statfs64_trampoline(SB),NOSPLIT,$0-0 + JMP libc_statfs64(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_11.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_11.go new file mode 100644 index 000000000..2581e8960 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_11.go @@ -0,0 +1,1810 @@ +// go run mksyscall.go -tags darwin,amd64,!go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_amd64.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build darwin,amd64,!go1.12 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(ngid int, gid *_Gid_t) (n int, err error) { + r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { + r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { + r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, timeval *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fcntl(fd int, cmd int, arg int) (val int, err error) { + r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, behav int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mprotect(b []byte, prot int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Msync(b []byte, flags int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { + _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { + _, _, e1 := Syscall6(SYS_GETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe() (r int, w int, err error) { + r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) + r = int(r0) + w = int(r1) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attr) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attr) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attr) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attr) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func removexattr(path string, attr string, options int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attr) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fremovexattr(fd int, attr string, options int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attr) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func listxattr(path string, dest *byte, size int, options int) (sz int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) { + r0, _, e1 := Syscall6(SYS_FLISTXATTR, uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { + _, _, e1 := Syscall6(SYS_SETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kill(pid int, signum int, posix int) (err error) { + _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) { + _, _, e1 := Syscall6(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Access(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chflags(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chroot(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(fd int) (nfd int, err error) { + r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exchangedata(path1 string, path2 string, options int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path1) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(path2) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXCHANGEDATA, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + Syscall(SYS_EXIT, uintptr(code), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fpathconf(fd int, name int) (val int, err error) { + r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getdtablesize() (size int) { + r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) + size = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgid(pid int) (pgid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) + pgrp = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) + ppid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpriority(which int, who int) (prio int, err error) { + r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrusage(who int, rusage *Rusage) (err error) { + _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := RawSyscall(SYS_ISSETUGID, 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Link(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdir(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifo(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknod(path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pathconf(path string, name int) (val int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlink(path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rename(from string, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(fromfd int, from string, tofd int, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Revoke(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rmdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) + newoffset = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { + _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + _, _, e1 := Syscall(SYS_SETEGID, uintptr(egid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seteuid(euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setlogin(name string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpriority(which int, who int, prio int) (err error) { + _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setprivexec(flag int) (err error) { + _, _, e1 := Syscall(SYS_SETPRIVEXEC, uintptr(flag), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlink(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Undelete(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func gettimeofday(tp *Timeval) (sec int64, usec int32, err error) { + r0, r1, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + sec = int64(r0) + usec = int32(r1) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, stat *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_GETDIRENTRIES64, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_GETFSSTAT64, uintptr(buf), uintptr(size), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, stat *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go index 285646462..b50178d67 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go @@ -1,7 +1,7 @@ -// go run mksyscall.go -tags darwin,amd64 syscall_bsd.go syscall_darwin.go syscall_darwin_amd64.go +// go run mksyscall.go -tags darwin,amd64,go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_amd64.go // Code generated by the command above; see README.md. DO NOT EDIT. -// +build darwin,amd64 +// +build darwin,amd64,go1.12 package unix @@ -15,7 +15,7 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + r0, _, e1 := syscall_rawSyscall(funcPC(libc_getgroups_trampoline), uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -23,20 +23,30 @@ func getgroups(ngid int, gid *_Gid_t) (n int, err error) { return } +func libc_getgroups_trampoline() + +//go:linkname libc_getgroups libc_getgroups +//go:cgo_import_dynamic libc_getgroups getgroups "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + _, _, e1 := syscall_rawSyscall(funcPC(libc_setgroups_trampoline), uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setgroups_trampoline() + +//go:linkname libc_setgroups libc_setgroups +//go:cgo_import_dynamic libc_setgroups setgroups "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + r0, _, e1 := syscall_syscall6(funcPC(libc_wait4_trampoline), uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) wpid = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -44,10 +54,15 @@ func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err return } +func libc_wait4_trampoline() + +//go:linkname libc_wait4 libc_wait4 +//go:cgo_import_dynamic libc_wait4 wait4 "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + r0, _, e1 := syscall_syscall(funcPC(libc_accept_trampoline), uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -55,30 +70,45 @@ func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { return } +func libc_accept_trampoline() + +//go:linkname libc_accept libc_accept +//go:cgo_import_dynamic libc_accept accept "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + _, _, e1 := syscall_syscall(funcPC(libc_bind_trampoline), uintptr(s), uintptr(addr), uintptr(addrlen)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_bind_trampoline() + +//go:linkname libc_bind libc_bind +//go:cgo_import_dynamic libc_bind bind "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + _, _, e1 := syscall_syscall(funcPC(libc_connect_trampoline), uintptr(s), uintptr(addr), uintptr(addrlen)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_connect_trampoline() + +//go:linkname libc_connect libc_connect +//go:cgo_import_dynamic libc_connect connect "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + r0, _, e1 := syscall_rawSyscall(funcPC(libc_socket_trampoline), uintptr(domain), uintptr(typ), uintptr(proto)) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -86,66 +116,101 @@ func socket(domain int, typ int, proto int) (fd int, err error) { return } +func libc_socket_trampoline() + +//go:linkname libc_socket libc_socket +//go:cgo_import_dynamic libc_socket socket "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + _, _, e1 := syscall_syscall6(funcPC(libc_getsockopt_trampoline), uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_getsockopt_trampoline() + +//go:linkname libc_getsockopt libc_getsockopt +//go:cgo_import_dynamic libc_getsockopt getsockopt "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + _, _, e1 := syscall_syscall6(funcPC(libc_setsockopt_trampoline), uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setsockopt_trampoline() + +//go:linkname libc_setsockopt libc_setsockopt +//go:cgo_import_dynamic libc_setsockopt setsockopt "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + _, _, e1 := syscall_rawSyscall(funcPC(libc_getpeername_trampoline), uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) if e1 != 0 { err = errnoErr(e1) } return } +func libc_getpeername_trampoline() + +//go:linkname libc_getpeername libc_getpeername +//go:cgo_import_dynamic libc_getpeername getpeername "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + _, _, e1 := syscall_rawSyscall(funcPC(libc_getsockname_trampoline), uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) if e1 != 0 { err = errnoErr(e1) } return } +func libc_getsockname_trampoline() + +//go:linkname libc_getsockname libc_getsockname +//go:cgo_import_dynamic libc_getsockname getsockname "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Shutdown(s int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) + _, _, e1 := syscall_syscall(funcPC(libc_shutdown_trampoline), uintptr(s), uintptr(how), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_shutdown_trampoline() + +//go:linkname libc_shutdown libc_shutdown +//go:cgo_import_dynamic libc_shutdown shutdown "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + _, _, e1 := syscall_rawSyscall6(funcPC(libc_socketpair_trampoline), uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_socketpair_trampoline() + +//go:linkname libc_socketpair libc_socketpair +//go:cgo_import_dynamic libc_socketpair socketpair "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { @@ -155,7 +220,7 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + r0, _, e1 := syscall_syscall6(funcPC(libc_recvfrom_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -163,6 +228,11 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl return } +func libc_recvfrom_trampoline() + +//go:linkname libc_recvfrom libc_recvfrom +//go:cgo_import_dynamic libc_recvfrom recvfrom "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { @@ -172,17 +242,22 @@ func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) ( } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + _, _, e1 := syscall_syscall6(funcPC(libc_sendto_trampoline), uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_sendto_trampoline() + +//go:linkname libc_sendto libc_sendto +//go:cgo_import_dynamic libc_sendto sendto "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + r0, _, e1 := syscall_syscall(funcPC(libc_recvmsg_trampoline), uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -190,10 +265,15 @@ func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { return } +func libc_recvmsg_trampoline() + +//go:linkname libc_recvmsg libc_recvmsg +//go:cgo_import_dynamic libc_recvmsg recvmsg "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + r0, _, e1 := syscall_syscall(funcPC(libc_sendmsg_trampoline), uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -201,10 +281,15 @@ func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { return } +func libc_sendmsg_trampoline() + +//go:linkname libc_sendmsg libc_sendmsg +//go:cgo_import_dynamic libc_sendmsg sendmsg "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + r0, _, e1 := syscall_syscall6(funcPC(libc_kevent_trampoline), uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -212,6 +297,11 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne return } +func libc_kevent_trampoline() + +//go:linkname libc_kevent libc_kevent +//go:cgo_import_dynamic libc_kevent kevent "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { @@ -221,13 +311,18 @@ func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + _, _, e1 := syscall_syscall6(funcPC(libc___sysctl_trampoline), uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) if e1 != 0 { err = errnoErr(e1) } return } +func libc___sysctl_trampoline() + +//go:linkname libc___sysctl libc___sysctl +//go:cgo_import_dynamic libc___sysctl __sysctl "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func utimes(path string, timeval *[2]Timeval) (err error) { @@ -236,27 +331,37 @@ func utimes(path string, timeval *[2]Timeval) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + _, _, e1 := syscall_syscall(funcPC(libc_utimes_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_utimes_trampoline() + +//go:linkname libc_utimes libc_utimes +//go:cgo_import_dynamic libc_utimes utimes "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + _, _, e1 := syscall_syscall(funcPC(libc_futimes_trampoline), uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_futimes_trampoline() + +//go:linkname libc_futimes libc_futimes +//go:cgo_import_dynamic libc_futimes futimes "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) + r0, _, e1 := syscall_syscall(funcPC(libc_fcntl_trampoline), uintptr(fd), uintptr(cmd), uintptr(arg)) val = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -264,10 +369,15 @@ func fcntl(fd int, cmd int, arg int) (val int, err error) { return } +func libc_fcntl_trampoline() + +//go:linkname libc_fcntl libc_fcntl +//go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + r0, _, e1 := syscall_syscall(funcPC(libc_poll_trampoline), uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -275,6 +385,11 @@ func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { return } +func libc_poll_trampoline() + +//go:linkname libc_poll libc_poll +//go:cgo_import_dynamic libc_poll poll "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Madvise(b []byte, behav int) (err error) { @@ -284,13 +399,18 @@ func Madvise(b []byte, behav int) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + _, _, e1 := syscall_syscall(funcPC(libc_madvise_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(behav)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_madvise_trampoline() + +//go:linkname libc_madvise libc_madvise +//go:cgo_import_dynamic libc_madvise madvise "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mlock(b []byte) (err error) { @@ -300,23 +420,33 @@ func Mlock(b []byte) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) + _, _, e1 := syscall_syscall(funcPC(libc_mlock_trampoline), uintptr(_p0), uintptr(len(b)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_mlock_trampoline() + +//go:linkname libc_mlock libc_mlock +//go:cgo_import_dynamic libc_mlock mlock "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_mlockall_trampoline), uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_mlockall_trampoline() + +//go:linkname libc_mlockall libc_mlockall +//go:cgo_import_dynamic libc_mlockall mlockall "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mprotect(b []byte, prot int) (err error) { @@ -326,13 +456,18 @@ func Mprotect(b []byte, prot int) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + _, _, e1 := syscall_syscall(funcPC(libc_mprotect_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(prot)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_mprotect_trampoline() + +//go:linkname libc_mprotect libc_mprotect +//go:cgo_import_dynamic libc_mprotect mprotect "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Msync(b []byte, flags int) (err error) { @@ -342,13 +477,18 @@ func Msync(b []byte, flags int) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + _, _, e1 := syscall_syscall(funcPC(libc_msync_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(flags)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_msync_trampoline() + +//go:linkname libc_msync libc_msync +//go:cgo_import_dynamic libc_msync msync "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Munlock(b []byte) (err error) { @@ -358,37 +498,67 @@ func Munlock(b []byte) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) + _, _, e1 := syscall_syscall(funcPC(libc_munlock_trampoline), uintptr(_p0), uintptr(len(b)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_munlock_trampoline() + +//go:linkname libc_munlock libc_munlock +//go:cgo_import_dynamic libc_munlock munlock "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_munlockall_trampoline), 0, 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_munlockall_trampoline() + +//go:linkname libc_munlockall libc_munlockall +//go:cgo_import_dynamic libc_munlockall munlockall "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) + _, _, e1 := syscall_syscall6(funcPC(libc_ptrace_trampoline), uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_ptrace_trampoline() + +//go:linkname libc_ptrace libc_ptrace +//go:cgo_import_dynamic libc_ptrace ptrace "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { + _, _, e1 := syscall_syscall6(funcPC(libc_getattrlist_trampoline), uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getattrlist_trampoline() + +//go:linkname libc_getattrlist libc_getattrlist +//go:cgo_import_dynamic libc_getattrlist getattrlist "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func pipe() (r int, w int, err error) { - r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) + r0, r1, e1 := syscall_rawSyscall(funcPC(libc_pipe_trampoline), 0, 0, 0) r = int(r0) w = int(r1) if e1 != 0 { @@ -397,6 +567,11 @@ func pipe() (r int, w int, err error) { return } +func libc_pipe_trampoline() + +//go:linkname libc_pipe libc_pipe +//go:cgo_import_dynamic libc_pipe pipe "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { @@ -410,7 +585,7 @@ func getxattr(path string, attr string, dest *byte, size int, position uint32, o if err != nil { return } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) + r0, _, e1 := syscall_syscall6(funcPC(libc_getxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) sz = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -418,6 +593,11 @@ func getxattr(path string, attr string, dest *byte, size int, position uint32, o return } +func libc_getxattr_trampoline() + +//go:linkname libc_getxattr libc_getxattr +//go:cgo_import_dynamic libc_getxattr getxattr "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { @@ -426,7 +606,7 @@ func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, optio if err != nil { return } - r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) + r0, _, e1 := syscall_syscall6(funcPC(libc_fgetxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) sz = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -434,6 +614,11 @@ func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, optio return } +func libc_fgetxattr_trampoline() + +//go:linkname libc_fgetxattr libc_fgetxattr +//go:cgo_import_dynamic libc_fgetxattr fgetxattr "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) { @@ -447,13 +632,18 @@ func setxattr(path string, attr string, data *byte, size int, position uint32, o if err != nil { return } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) + _, _, e1 := syscall_syscall6(funcPC(libc_setxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setxattr_trampoline() + +//go:linkname libc_setxattr libc_setxattr +//go:cgo_import_dynamic libc_setxattr setxattr "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) { @@ -462,13 +652,18 @@ func fsetxattr(fd int, attr string, data *byte, size int, position uint32, optio if err != nil { return } - _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) + _, _, e1 := syscall_syscall6(funcPC(libc_fsetxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_fsetxattr_trampoline() + +//go:linkname libc_fsetxattr libc_fsetxattr +//go:cgo_import_dynamic libc_fsetxattr fsetxattr "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func removexattr(path string, attr string, options int) (err error) { @@ -482,13 +677,18 @@ func removexattr(path string, attr string, options int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) + _, _, e1 := syscall_syscall(funcPC(libc_removexattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_removexattr_trampoline() + +//go:linkname libc_removexattr libc_removexattr +//go:cgo_import_dynamic libc_removexattr removexattr "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func fremovexattr(fd int, attr string, options int) (err error) { @@ -497,13 +697,18 @@ func fremovexattr(fd int, attr string, options int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options)) + _, _, e1 := syscall_syscall(funcPC(libc_fremovexattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_fremovexattr_trampoline() + +//go:linkname libc_fremovexattr libc_fremovexattr +//go:cgo_import_dynamic libc_fremovexattr fremovexattr "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func listxattr(path string, dest *byte, size int, options int) (sz int, err error) { @@ -512,7 +717,7 @@ func listxattr(path string, dest *byte, size int, options int) (sz int, err erro if err != nil { return } - r0, _, e1 := Syscall6(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) + r0, _, e1 := syscall_syscall6(funcPC(libc_listxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) sz = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -520,10 +725,15 @@ func listxattr(path string, dest *byte, size int, options int) (sz int, err erro return } +func libc_listxattr_trampoline() + +//go:linkname libc_listxattr libc_listxattr +//go:cgo_import_dynamic libc_listxattr listxattr "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) { - r0, _, e1 := Syscall6(SYS_FLISTXATTR, uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) + r0, _, e1 := syscall_syscall6(funcPC(libc_flistxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) sz = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -531,26 +741,71 @@ func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) { return } +func libc_flistxattr_trampoline() + +//go:linkname libc_flistxattr libc_flistxattr +//go:cgo_import_dynamic libc_flistxattr flistxattr "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func kill(pid int, signum int, posix int) (err error) { - _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix)) +func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { + _, _, e1 := syscall_syscall6(funcPC(libc_setattrlist_trampoline), uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setattrlist_trampoline() + +//go:linkname libc_setattrlist libc_setattrlist +//go:cgo_import_dynamic libc_setattrlist setattrlist "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kill(pid int, signum int, posix int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_kill_trampoline), uintptr(pid), uintptr(signum), uintptr(posix)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_kill_trampoline() + +//go:linkname libc_kill libc_kill +//go:cgo_import_dynamic libc_kill kill "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + _, _, e1 := syscall_syscall(funcPC(libc_ioctl_trampoline), uintptr(fd), uintptr(req), uintptr(arg)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_ioctl_trampoline() + +//go:linkname libc_ioctl libc_ioctl +//go:cgo_import_dynamic libc_ioctl ioctl "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) { + _, _, e1 := syscall_syscall6(funcPC(libc_sendfile_trampoline), uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_sendfile_trampoline() + +//go:linkname libc_sendfile libc_sendfile +//go:cgo_import_dynamic libc_sendfile sendfile "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Access(path string, mode uint32) (err error) { @@ -559,23 +814,33 @@ func Access(path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + _, _, e1 := syscall_syscall(funcPC(libc_access_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_access_trampoline() + +//go:linkname libc_access libc_access +//go:cgo_import_dynamic libc_access access "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + _, _, e1 := syscall_syscall(funcPC(libc_adjtime_trampoline), uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_adjtime_trampoline() + +//go:linkname libc_adjtime libc_adjtime +//go:cgo_import_dynamic libc_adjtime adjtime "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Chdir(path string) (err error) { @@ -584,13 +849,18 @@ func Chdir(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_chdir_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_chdir_trampoline() + +//go:linkname libc_chdir libc_chdir +//go:cgo_import_dynamic libc_chdir chdir "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Chflags(path string, flags int) (err error) { @@ -599,13 +869,18 @@ func Chflags(path string, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + _, _, e1 := syscall_syscall(funcPC(libc_chflags_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_chflags_trampoline() + +//go:linkname libc_chflags libc_chflags +//go:cgo_import_dynamic libc_chflags chflags "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Chmod(path string, mode uint32) (err error) { @@ -614,13 +889,18 @@ func Chmod(path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + _, _, e1 := syscall_syscall(funcPC(libc_chmod_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_chmod_trampoline() + +//go:linkname libc_chmod libc_chmod +//go:cgo_import_dynamic libc_chmod chmod "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Chown(path string, uid int, gid int) (err error) { @@ -629,13 +909,18 @@ func Chown(path string, uid int, gid int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + _, _, e1 := syscall_syscall(funcPC(libc_chown_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_chown_trampoline() + +//go:linkname libc_chown libc_chown +//go:cgo_import_dynamic libc_chown chown "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Chroot(path string) (err error) { @@ -644,27 +929,37 @@ func Chroot(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_chroot_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_chroot_trampoline() + +//go:linkname libc_chroot libc_chroot +//go:cgo_import_dynamic libc_chroot chroot "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_close_trampoline), uintptr(fd), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_close_trampoline() + +//go:linkname libc_close libc_close +//go:cgo_import_dynamic libc_close close "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Dup(fd int) (nfd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) + r0, _, e1 := syscall_syscall(funcPC(libc_dup_trampoline), uintptr(fd), 0, 0) nfd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -672,16 +967,26 @@ func Dup(fd int) (nfd int, err error) { return } +func libc_dup_trampoline() + +//go:linkname libc_dup libc_dup +//go:cgo_import_dynamic libc_dup dup "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Dup2(from int, to int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) + _, _, e1 := syscall_syscall(funcPC(libc_dup2_trampoline), uintptr(from), uintptr(to), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_dup2_trampoline() + +//go:linkname libc_dup2 libc_dup2 +//go:cgo_import_dynamic libc_dup2 dup2 "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Exchangedata(path1 string, path2 string, options int) (err error) { @@ -695,20 +1000,30 @@ func Exchangedata(path1 string, path2 string, options int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_EXCHANGEDATA, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) + _, _, e1 := syscall_syscall(funcPC(libc_exchangedata_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_exchangedata_trampoline() + +//go:linkname libc_exchangedata libc_exchangedata +//go:cgo_import_dynamic libc_exchangedata exchangedata "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Exit(code int) { - Syscall(SYS_EXIT, uintptr(code), 0, 0) + syscall_syscall(funcPC(libc_exit_trampoline), uintptr(code), 0, 0) return } +func libc_exit_trampoline() + +//go:linkname libc_exit libc_exit +//go:cgo_import_dynamic libc_exit exit "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { @@ -717,43 +1032,63 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + _, _, e1 := syscall_syscall6(funcPC(libc_faccessat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_faccessat_trampoline() + +//go:linkname libc_faccessat libc_faccessat +//go:cgo_import_dynamic libc_faccessat faccessat "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_fchdir_trampoline), uintptr(fd), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_fchdir_trampoline() + +//go:linkname libc_fchdir libc_fchdir +//go:cgo_import_dynamic libc_fchdir fchdir "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchflags(fd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) + _, _, e1 := syscall_syscall(funcPC(libc_fchflags_trampoline), uintptr(fd), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_fchflags_trampoline() + +//go:linkname libc_fchflags libc_fchflags +//go:cgo_import_dynamic libc_fchflags fchflags "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) + _, _, e1 := syscall_syscall(funcPC(libc_fchmod_trampoline), uintptr(fd), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_fchmod_trampoline() + +//go:linkname libc_fchmod libc_fchmod +//go:cgo_import_dynamic libc_fchmod fchmod "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { @@ -762,23 +1097,33 @@ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + _, _, e1 := syscall_syscall6(funcPC(libc_fchmodat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_fchmodat_trampoline() + +//go:linkname libc_fchmodat libc_fchmodat +//go:cgo_import_dynamic libc_fchmodat fchmodat "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + _, _, e1 := syscall_syscall(funcPC(libc_fchown_trampoline), uintptr(fd), uintptr(uid), uintptr(gid)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_fchown_trampoline() + +//go:linkname libc_fchown libc_fchown +//go:cgo_import_dynamic libc_fchown fchown "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { @@ -787,27 +1132,37 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + _, _, e1 := syscall_syscall6(funcPC(libc_fchownat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_fchownat_trampoline() + +//go:linkname libc_fchownat libc_fchownat +//go:cgo_import_dynamic libc_fchownat fchownat "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) + _, _, e1 := syscall_syscall(funcPC(libc_flock_trampoline), uintptr(fd), uintptr(how), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_flock_trampoline() + +//go:linkname libc_flock libc_flock +//go:cgo_import_dynamic libc_flock flock "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) + r0, _, e1 := syscall_syscall(funcPC(libc_fpathconf_trampoline), uintptr(fd), uintptr(name), 0) val = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -815,114 +1170,97 @@ func Fpathconf(fd int, name int) (val int, err error) { return } -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func libc_fpathconf_trampoline() -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} +//go:linkname libc_fpathconf libc_fpathconf +//go:cgo_import_dynamic libc_fpathconf fpathconf "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_fsync_trampoline), uintptr(fd), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_fsync_trampoline() + +//go:linkname libc_fsync libc_fsync +//go:cgo_import_dynamic libc_fsync fsync "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) + _, _, e1 := syscall_syscall(funcPC(libc_ftruncate_trampoline), uintptr(fd), uintptr(length), 0) if e1 != 0 { err = errnoErr(e1) } return } -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func libc_ftruncate_trampoline() -func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETDIRENTRIES64, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} +//go:linkname libc_ftruncate libc_ftruncate +//go:cgo_import_dynamic libc_ftruncate ftruncate "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getdtablesize() (size int) { - r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) + r0, _, _ := syscall_syscall(funcPC(libc_getdtablesize_trampoline), 0, 0, 0) size = int(r0) return } +func libc_getdtablesize_trampoline() + +//go:linkname libc_getdtablesize libc_getdtablesize +//go:cgo_import_dynamic libc_getdtablesize getdtablesize "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(funcPC(libc_getegid_trampoline), 0, 0, 0) egid = int(r0) return } +func libc_getegid_trampoline() + +//go:linkname libc_getegid libc_getegid +//go:cgo_import_dynamic libc_getegid getegid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Geteuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(funcPC(libc_geteuid_trampoline), 0, 0, 0) uid = int(r0) return } +func libc_geteuid_trampoline() + +//go:linkname libc_geteuid libc_geteuid +//go:cgo_import_dynamic libc_geteuid geteuid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(funcPC(libc_getgid_trampoline), 0, 0, 0) gid = int(r0) return } +func libc_getgid_trampoline() + +//go:linkname libc_getgid libc_getgid +//go:cgo_import_dynamic libc_getgid getgid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) + r0, _, e1 := syscall_rawSyscall(funcPC(libc_getpgid_trampoline), uintptr(pid), 0, 0) pgid = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -930,34 +1268,54 @@ func Getpgid(pid int) (pgid int, err error) { return } +func libc_getpgid_trampoline() + +//go:linkname libc_getpgid libc_getpgid +//go:cgo_import_dynamic libc_getpgid getpgid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getpgrp() (pgrp int) { - r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(funcPC(libc_getpgrp_trampoline), 0, 0, 0) pgrp = int(r0) return } +func libc_getpgrp_trampoline() + +//go:linkname libc_getpgrp libc_getpgrp +//go:cgo_import_dynamic libc_getpgrp getpgrp "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(funcPC(libc_getpid_trampoline), 0, 0, 0) pid = int(r0) return } +func libc_getpid_trampoline() + +//go:linkname libc_getpid libc_getpid +//go:cgo_import_dynamic libc_getpid getpid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(funcPC(libc_getppid_trampoline), 0, 0, 0) ppid = int(r0) return } +func libc_getppid_trampoline() + +//go:linkname libc_getppid libc_getppid +//go:cgo_import_dynamic libc_getppid getppid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) + r0, _, e1 := syscall_syscall(funcPC(libc_getpriority_trampoline), uintptr(which), uintptr(who), 0) prio = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -965,30 +1323,45 @@ func Getpriority(which int, who int) (prio int, err error) { return } +func libc_getpriority_trampoline() + +//go:linkname libc_getpriority libc_getpriority +//go:cgo_import_dynamic libc_getpriority getpriority "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + _, _, e1 := syscall_rawSyscall(funcPC(libc_getrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_getrlimit_trampoline() + +//go:linkname libc_getrlimit libc_getrlimit +//go:cgo_import_dynamic libc_getrlimit getrlimit "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + _, _, e1 := syscall_rawSyscall(funcPC(libc_getrusage_trampoline), uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_getrusage_trampoline() + +//go:linkname libc_getrusage libc_getrusage +//go:cgo_import_dynamic libc_getrusage getrusage "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + r0, _, e1 := syscall_rawSyscall(funcPC(libc_getsid_trampoline), uintptr(pid), 0, 0) sid = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -996,26 +1369,41 @@ func Getsid(pid int) (sid int, err error) { return } +func libc_getsid_trampoline() + +//go:linkname libc_getsid libc_getsid +//go:cgo_import_dynamic libc_getsid getsid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(funcPC(libc_getuid_trampoline), 0, 0, 0) uid = int(r0) return } +func libc_getuid_trampoline() + +//go:linkname libc_getuid libc_getuid +//go:cgo_import_dynamic libc_getuid getuid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Issetugid() (tainted bool) { - r0, _, _ := RawSyscall(SYS_ISSETUGID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(funcPC(libc_issetugid_trampoline), 0, 0, 0) tainted = bool(r0 != 0) return } +func libc_issetugid_trampoline() + +//go:linkname libc_issetugid libc_issetugid +//go:cgo_import_dynamic libc_issetugid issetugid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Kqueue() (fd int, err error) { - r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) + r0, _, e1 := syscall_syscall(funcPC(libc_kqueue_trampoline), 0, 0, 0) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1023,6 +1411,11 @@ func Kqueue() (fd int, err error) { return } +func libc_kqueue_trampoline() + +//go:linkname libc_kqueue libc_kqueue +//go:cgo_import_dynamic libc_kqueue kqueue "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Lchown(path string, uid int, gid int) (err error) { @@ -1031,13 +1424,18 @@ func Lchown(path string, uid int, gid int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + _, _, e1 := syscall_syscall(funcPC(libc_lchown_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_lchown_trampoline() + +//go:linkname libc_lchown libc_lchown +//go:cgo_import_dynamic libc_lchown lchown "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Link(path string, link string) (err error) { @@ -1051,13 +1449,18 @@ func Link(path string, link string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + _, _, e1 := syscall_syscall(funcPC(libc_link_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_link_trampoline() + +//go:linkname libc_link libc_link +//go:cgo_import_dynamic libc_link link "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { @@ -1071,37 +1474,32 @@ func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err er if err != nil { return } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + _, _, e1 := syscall_syscall6(funcPC(libc_linkat_trampoline), uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_linkat_trampoline() + +//go:linkname libc_linkat libc_linkat +//go:cgo_import_dynamic libc_linkat linkat "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Listen(s int, backlog int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) + _, _, e1 := syscall_syscall(funcPC(libc_listen_trampoline), uintptr(s), uintptr(backlog), 0) if e1 != 0 { err = errnoErr(e1) } return } -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func libc_listen_trampoline() -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} +//go:linkname libc_listen libc_listen +//go:cgo_import_dynamic libc_listen listen "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1111,13 +1509,18 @@ func Mkdir(path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + _, _, e1 := syscall_syscall(funcPC(libc_mkdir_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_mkdir_trampoline() + +//go:linkname libc_mkdir libc_mkdir +//go:cgo_import_dynamic libc_mkdir mkdir "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mkdirat(dirfd int, path string, mode uint32) (err error) { @@ -1126,13 +1529,18 @@ func Mkdirat(dirfd int, path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + _, _, e1 := syscall_syscall(funcPC(libc_mkdirat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_mkdirat_trampoline() + +//go:linkname libc_mkdirat libc_mkdirat +//go:cgo_import_dynamic libc_mkdirat mkdirat "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mkfifo(path string, mode uint32) (err error) { @@ -1141,13 +1549,18 @@ func Mkfifo(path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + _, _, e1 := syscall_syscall(funcPC(libc_mkfifo_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_mkfifo_trampoline() + +//go:linkname libc_mkfifo libc_mkfifo +//go:cgo_import_dynamic libc_mkfifo mkfifo "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mknod(path string, mode uint32, dev int) (err error) { @@ -1156,13 +1569,18 @@ func Mknod(path string, mode uint32, dev int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + _, _, e1 := syscall_syscall(funcPC(libc_mknod_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_mknod_trampoline() + +//go:linkname libc_mknod libc_mknod +//go:cgo_import_dynamic libc_mknod mknod "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Open(path string, mode int, perm uint32) (fd int, err error) { @@ -1171,7 +1589,7 @@ func Open(path string, mode int, perm uint32) (fd int, err error) { if err != nil { return } - r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + r0, _, e1 := syscall_syscall(funcPC(libc_open_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1179,6 +1597,11 @@ func Open(path string, mode int, perm uint32) (fd int, err error) { return } +func libc_open_trampoline() + +//go:linkname libc_open libc_open +//go:cgo_import_dynamic libc_open open "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { @@ -1187,7 +1610,7 @@ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { if err != nil { return } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + r0, _, e1 := syscall_syscall6(funcPC(libc_openat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1195,6 +1618,11 @@ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { return } +func libc_openat_trampoline() + +//go:linkname libc_openat libc_openat +//go:cgo_import_dynamic libc_openat openat "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Pathconf(path string, name int) (val int, err error) { @@ -1203,7 +1631,7 @@ func Pathconf(path string, name int) (val int, err error) { if err != nil { return } - r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + r0, _, e1 := syscall_syscall(funcPC(libc_pathconf_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) val = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1211,6 +1639,11 @@ func Pathconf(path string, name int) (val int, err error) { return } +func libc_pathconf_trampoline() + +//go:linkname libc_pathconf libc_pathconf +//go:cgo_import_dynamic libc_pathconf pathconf "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Pread(fd int, p []byte, offset int64) (n int, err error) { @@ -1220,7 +1653,7 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + r0, _, e1 := syscall_syscall6(funcPC(libc_pread_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1228,6 +1661,11 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) { return } +func libc_pread_trampoline() + +//go:linkname libc_pread libc_pread +//go:cgo_import_dynamic libc_pread pread "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Pwrite(fd int, p []byte, offset int64) (n int, err error) { @@ -1237,7 +1675,7 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + r0, _, e1 := syscall_syscall6(funcPC(libc_pwrite_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1245,6 +1683,11 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) { return } +func libc_pwrite_trampoline() + +//go:linkname libc_pwrite libc_pwrite +//go:cgo_import_dynamic libc_pwrite pwrite "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func read(fd int, p []byte) (n int, err error) { @@ -1254,7 +1697,7 @@ func read(fd int, p []byte) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) + r0, _, e1 := syscall_syscall(funcPC(libc_read_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1262,6 +1705,11 @@ func read(fd int, p []byte) (n int, err error) { return } +func libc_read_trampoline() + +//go:linkname libc_read libc_read +//go:cgo_import_dynamic libc_read read "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Readlink(path string, buf []byte) (n int, err error) { @@ -1276,7 +1724,7 @@ func Readlink(path string, buf []byte) (n int, err error) { } else { _p1 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + r0, _, e1 := syscall_syscall(funcPC(libc_readlink_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1284,6 +1732,11 @@ func Readlink(path string, buf []byte) (n int, err error) { return } +func libc_readlink_trampoline() + +//go:linkname libc_readlink libc_readlink +//go:cgo_import_dynamic libc_readlink readlink "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { @@ -1298,7 +1751,7 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { } else { _p1 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + r0, _, e1 := syscall_syscall6(funcPC(libc_readlinkat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1306,6 +1759,11 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { return } +func libc_readlinkat_trampoline() + +//go:linkname libc_readlinkat libc_readlinkat +//go:cgo_import_dynamic libc_readlinkat readlinkat "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Rename(from string, to string) (err error) { @@ -1319,13 +1777,18 @@ func Rename(from string, to string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + _, _, e1 := syscall_syscall(funcPC(libc_rename_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_rename_trampoline() + +//go:linkname libc_rename libc_rename +//go:cgo_import_dynamic libc_rename rename "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Renameat(fromfd int, from string, tofd int, to string) (err error) { @@ -1339,13 +1802,18 @@ func Renameat(fromfd int, from string, tofd int, to string) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + _, _, e1 := syscall_syscall6(funcPC(libc_renameat_trampoline), uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_renameat_trampoline() + +//go:linkname libc_renameat libc_renameat +//go:cgo_import_dynamic libc_renameat renameat "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Revoke(path string) (err error) { @@ -1354,13 +1822,18 @@ func Revoke(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_revoke_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_revoke_trampoline() + +//go:linkname libc_revoke libc_revoke +//go:cgo_import_dynamic libc_revoke revoke "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Rmdir(path string) (err error) { @@ -1369,17 +1842,22 @@ func Rmdir(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_rmdir_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_rmdir_trampoline() + +//go:linkname libc_rmdir libc_rmdir +//go:cgo_import_dynamic libc_rmdir rmdir "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) + r0, _, e1 := syscall_syscall(funcPC(libc_lseek_trampoline), uintptr(fd), uintptr(offset), uintptr(whence)) newoffset = int64(r0) if e1 != 0 { err = errnoErr(e1) @@ -1387,46 +1865,71 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { return } +func libc_lseek_trampoline() + +//go:linkname libc_lseek libc_lseek +//go:cgo_import_dynamic libc_lseek lseek "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { - _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + _, _, e1 := syscall_syscall6(funcPC(libc_select_trampoline), uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_select_trampoline() + +//go:linkname libc_select libc_select +//go:cgo_import_dynamic libc_select select "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setegid(egid int) (err error) { - _, _, e1 := Syscall(SYS_SETEGID, uintptr(egid), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_setegid_trampoline), uintptr(egid), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setegid_trampoline() + +//go:linkname libc_setegid libc_setegid +//go:cgo_import_dynamic libc_setegid setegid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Seteuid(euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) + _, _, e1 := syscall_rawSyscall(funcPC(libc_seteuid_trampoline), uintptr(euid), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_seteuid_trampoline() + +//go:linkname libc_seteuid libc_seteuid +//go:cgo_import_dynamic libc_seteuid seteuid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setgid(gid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) + _, _, e1 := syscall_rawSyscall(funcPC(libc_setgid_trampoline), uintptr(gid), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setgid_trampoline() + +//go:linkname libc_setgid libc_setgid +//go:cgo_import_dynamic libc_setgid setgid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setlogin(name string) (err error) { @@ -1435,77 +1938,112 @@ func Setlogin(name string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_setlogin_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setlogin_trampoline() + +//go:linkname libc_setlogin libc_setlogin +//go:cgo_import_dynamic libc_setlogin setlogin "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) + _, _, e1 := syscall_rawSyscall(funcPC(libc_setpgid_trampoline), uintptr(pid), uintptr(pgid), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setpgid_trampoline() + +//go:linkname libc_setpgid libc_setpgid +//go:cgo_import_dynamic libc_setpgid setpgid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) + _, _, e1 := syscall_syscall(funcPC(libc_setpriority_trampoline), uintptr(which), uintptr(who), uintptr(prio)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setpriority_trampoline() + +//go:linkname libc_setpriority libc_setpriority +//go:cgo_import_dynamic libc_setpriority setpriority "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setprivexec(flag int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIVEXEC, uintptr(flag), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_setprivexec_trampoline), uintptr(flag), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setprivexec_trampoline() + +//go:linkname libc_setprivexec libc_setprivexec +//go:cgo_import_dynamic libc_setprivexec setprivexec "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + _, _, e1 := syscall_rawSyscall(funcPC(libc_setregid_trampoline), uintptr(rgid), uintptr(egid), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setregid_trampoline() + +//go:linkname libc_setregid libc_setregid +//go:cgo_import_dynamic libc_setregid setregid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + _, _, e1 := syscall_rawSyscall(funcPC(libc_setreuid_trampoline), uintptr(ruid), uintptr(euid), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setreuid_trampoline() + +//go:linkname libc_setreuid libc_setreuid +//go:cgo_import_dynamic libc_setreuid setreuid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + _, _, e1 := syscall_rawSyscall(funcPC(libc_setrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setrlimit_trampoline() + +//go:linkname libc_setrlimit libc_setrlimit +//go:cgo_import_dynamic libc_setrlimit setrlimit "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) + r0, _, e1 := syscall_rawSyscall(funcPC(libc_setsid_trampoline), 0, 0, 0) pid = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1513,55 +2051,40 @@ func Setsid() (pid int, err error) { return } +func libc_setsid_trampoline() + +//go:linkname libc_setsid libc_setsid +//go:cgo_import_dynamic libc_setsid setsid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + _, _, e1 := syscall_rawSyscall(funcPC(libc_settimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_settimeofday_trampoline() + +//go:linkname libc_settimeofday libc_settimeofday +//go:cgo_import_dynamic libc_settimeofday settimeofday "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setuid(uid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) + _, _, e1 := syscall_rawSyscall(funcPC(libc_setuid_trampoline), uintptr(uid), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func libc_setuid_trampoline() -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, stat *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} +//go:linkname libc_setuid libc_setuid +//go:cgo_import_dynamic libc_setuid setuid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1576,13 +2099,18 @@ func Symlink(path string, link string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + _, _, e1 := syscall_syscall(funcPC(libc_symlink_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_symlink_trampoline() + +//go:linkname libc_symlink libc_symlink +//go:cgo_import_dynamic libc_symlink symlink "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { @@ -1596,23 +2124,33 @@ func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + _, _, e1 := syscall_syscall(funcPC(libc_symlinkat_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) if e1 != 0 { err = errnoErr(e1) } return } +func libc_symlinkat_trampoline() + +//go:linkname libc_symlinkat libc_symlinkat +//go:cgo_import_dynamic libc_symlinkat symlinkat "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Sync() (err error) { - _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_sync_trampoline), 0, 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_sync_trampoline() + +//go:linkname libc_sync libc_sync +//go:cgo_import_dynamic libc_sync sync "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Truncate(path string, length int64) (err error) { @@ -1621,21 +2159,31 @@ func Truncate(path string, length int64) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + _, _, e1 := syscall_syscall(funcPC(libc_truncate_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_truncate_trampoline() + +//go:linkname libc_truncate libc_truncate +//go:cgo_import_dynamic libc_truncate truncate "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Umask(newmask int) (oldmask int) { - r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) + r0, _, _ := syscall_syscall(funcPC(libc_umask_trampoline), uintptr(newmask), 0, 0) oldmask = int(r0) return } +func libc_umask_trampoline() + +//go:linkname libc_umask libc_umask +//go:cgo_import_dynamic libc_umask umask "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Undelete(path string) (err error) { @@ -1644,13 +2192,18 @@ func Undelete(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_undelete_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_undelete_trampoline() + +//go:linkname libc_undelete libc_undelete +//go:cgo_import_dynamic libc_undelete undelete "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Unlink(path string) (err error) { @@ -1659,13 +2212,18 @@ func Unlink(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_unlink_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_unlink_trampoline() + +//go:linkname libc_unlink libc_unlink +//go:cgo_import_dynamic libc_unlink unlink "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Unlinkat(dirfd int, path string, flags int) (err error) { @@ -1674,13 +2232,18 @@ func Unlinkat(dirfd int, path string, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + _, _, e1 := syscall_syscall(funcPC(libc_unlinkat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_unlinkat_trampoline() + +//go:linkname libc_unlinkat libc_unlinkat +//go:cgo_import_dynamic libc_unlinkat unlinkat "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Unmount(path string, flags int) (err error) { @@ -1689,13 +2252,18 @@ func Unmount(path string, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + _, _, e1 := syscall_syscall(funcPC(libc_unmount_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_unmount_trampoline() + +//go:linkname libc_unmount libc_unmount +//go:cgo_import_dynamic libc_unmount unmount "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func write(fd int, p []byte) (n int, err error) { @@ -1705,7 +2273,7 @@ func write(fd int, p []byte) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + r0, _, e1 := syscall_syscall(funcPC(libc_write_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1713,10 +2281,15 @@ func write(fd int, p []byte) (n int, err error) { return } +func libc_write_trampoline() + +//go:linkname libc_write libc_write +//go:cgo_import_dynamic libc_write write "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) + r0, _, e1 := syscall_syscall6(funcPC(libc_mmap_trampoline), uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) ret = uintptr(r0) if e1 != 0 { err = errnoErr(e1) @@ -1724,20 +2297,30 @@ func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) ( return } +func libc_mmap_trampoline() + +//go:linkname libc_mmap libc_mmap +//go:cgo_import_dynamic libc_mmap mmap "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) + _, _, e1 := syscall_syscall(funcPC(libc_munmap_trampoline), uintptr(addr), uintptr(length), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_munmap_trampoline() + +//go:linkname libc_munmap libc_munmap +//go:cgo_import_dynamic libc_munmap munmap "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + r0, _, e1 := syscall_syscall(funcPC(libc_read_trampoline), uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1748,7 +2331,7 @@ func readlen(fd int, buf *byte, nbuf int) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + r0, _, e1 := syscall_syscall(funcPC(libc_write_trampoline), uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1759,7 +2342,7 @@ func writelen(fd int, buf *byte, nbuf int) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func gettimeofday(tp *Timeval) (sec int64, usec int32, err error) { - r0, r1, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + r0, r1, e1 := syscall_rawSyscall(funcPC(libc_gettimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0) sec = int64(r0) usec = int32(r1) if e1 != 0 { @@ -1767,3 +2350,156 @@ func gettimeofday(tp *Timeval) (sec int64, usec int32, err error) { } return } + +func libc_gettimeofday_trampoline() + +//go:linkname libc_gettimeofday libc_gettimeofday +//go:cgo_import_dynamic libc_gettimeofday gettimeofday "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_fstat64_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fstat64_trampoline() + +//go:linkname libc_fstat64 libc_fstat64 +//go:cgo_import_dynamic libc_fstat64 fstat64 "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(funcPC(libc_fstatat64_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fstatat64_trampoline() + +//go:linkname libc_fstatat64 libc_fstatat64 +//go:cgo_import_dynamic libc_fstatat64 fstatat64 "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, stat *Statfs_t) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_fstatfs64_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fstatfs64_trampoline() + +//go:linkname libc_fstatfs64 libc_fstatfs64 +//go:cgo_import_dynamic libc_fstatfs64 fstatfs64 "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(funcPC(libc___getdirentries64_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc___getdirentries64_trampoline() + +//go:linkname libc___getdirentries64 libc___getdirentries64 +//go:cgo_import_dynamic libc___getdirentries64 __getdirentries64 "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(funcPC(libc_getfsstat64_trampoline), uintptr(buf), uintptr(size), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getfsstat64_trampoline() + +//go:linkname libc_getfsstat64 libc_getfsstat64 +//go:cgo_import_dynamic libc_getfsstat64 getfsstat64 "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_lstat64_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_lstat64_trampoline() + +//go:linkname libc_lstat64 libc_lstat64 +//go:cgo_import_dynamic libc_lstat64 lstat64 "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_stat64_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_stat64_trampoline() + +//go:linkname libc_stat64 libc_stat64 +//go:cgo_import_dynamic libc_stat64 stat64 "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, stat *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_statfs64_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_statfs64_trampoline() + +//go:linkname libc_statfs64 libc_statfs64 +//go:cgo_import_dynamic libc_statfs64 statfs64 "/usr/lib/libSystem.B.dylib" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s new file mode 100644 index 000000000..da9b900a8 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s @@ -0,0 +1,284 @@ +// go run mkasm_darwin.go amd64 +// Code generated by the command above; DO NOT EDIT. + +// +build go1.12 + +#include "textflag.h" +TEXT ·libc_getgroups_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getgroups(SB) +TEXT ·libc_setgroups_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setgroups(SB) +TEXT ·libc_wait4_trampoline(SB),NOSPLIT,$0-0 + JMP libc_wait4(SB) +TEXT ·libc_accept_trampoline(SB),NOSPLIT,$0-0 + JMP libc_accept(SB) +TEXT ·libc_bind_trampoline(SB),NOSPLIT,$0-0 + JMP libc_bind(SB) +TEXT ·libc_connect_trampoline(SB),NOSPLIT,$0-0 + JMP libc_connect(SB) +TEXT ·libc_socket_trampoline(SB),NOSPLIT,$0-0 + JMP libc_socket(SB) +TEXT ·libc_getsockopt_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getsockopt(SB) +TEXT ·libc_setsockopt_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setsockopt(SB) +TEXT ·libc_getpeername_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getpeername(SB) +TEXT ·libc_getsockname_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getsockname(SB) +TEXT ·libc_shutdown_trampoline(SB),NOSPLIT,$0-0 + JMP libc_shutdown(SB) +TEXT ·libc_socketpair_trampoline(SB),NOSPLIT,$0-0 + JMP libc_socketpair(SB) +TEXT ·libc_recvfrom_trampoline(SB),NOSPLIT,$0-0 + JMP libc_recvfrom(SB) +TEXT ·libc_sendto_trampoline(SB),NOSPLIT,$0-0 + JMP libc_sendto(SB) +TEXT ·libc_recvmsg_trampoline(SB),NOSPLIT,$0-0 + JMP libc_recvmsg(SB) +TEXT ·libc_sendmsg_trampoline(SB),NOSPLIT,$0-0 + JMP libc_sendmsg(SB) +TEXT ·libc_kevent_trampoline(SB),NOSPLIT,$0-0 + JMP libc_kevent(SB) +TEXT ·libc___sysctl_trampoline(SB),NOSPLIT,$0-0 + JMP libc___sysctl(SB) +TEXT ·libc_utimes_trampoline(SB),NOSPLIT,$0-0 + JMP libc_utimes(SB) +TEXT ·libc_futimes_trampoline(SB),NOSPLIT,$0-0 + JMP libc_futimes(SB) +TEXT ·libc_fcntl_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fcntl(SB) +TEXT ·libc_poll_trampoline(SB),NOSPLIT,$0-0 + JMP libc_poll(SB) +TEXT ·libc_madvise_trampoline(SB),NOSPLIT,$0-0 + JMP libc_madvise(SB) +TEXT ·libc_mlock_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mlock(SB) +TEXT ·libc_mlockall_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mlockall(SB) +TEXT ·libc_mprotect_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mprotect(SB) +TEXT ·libc_msync_trampoline(SB),NOSPLIT,$0-0 + JMP libc_msync(SB) +TEXT ·libc_munlock_trampoline(SB),NOSPLIT,$0-0 + JMP libc_munlock(SB) +TEXT ·libc_munlockall_trampoline(SB),NOSPLIT,$0-0 + JMP libc_munlockall(SB) +TEXT ·libc_ptrace_trampoline(SB),NOSPLIT,$0-0 + JMP libc_ptrace(SB) +TEXT ·libc_getattrlist_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getattrlist(SB) +TEXT ·libc_pipe_trampoline(SB),NOSPLIT,$0-0 + JMP libc_pipe(SB) +TEXT ·libc_getxattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getxattr(SB) +TEXT ·libc_fgetxattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fgetxattr(SB) +TEXT ·libc_setxattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setxattr(SB) +TEXT ·libc_fsetxattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fsetxattr(SB) +TEXT ·libc_removexattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_removexattr(SB) +TEXT ·libc_fremovexattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fremovexattr(SB) +TEXT ·libc_listxattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_listxattr(SB) +TEXT ·libc_flistxattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_flistxattr(SB) +TEXT ·libc_setattrlist_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setattrlist(SB) +TEXT ·libc_kill_trampoline(SB),NOSPLIT,$0-0 + JMP libc_kill(SB) +TEXT ·libc_ioctl_trampoline(SB),NOSPLIT,$0-0 + JMP libc_ioctl(SB) +TEXT ·libc_sendfile_trampoline(SB),NOSPLIT,$0-0 + JMP libc_sendfile(SB) +TEXT ·libc_access_trampoline(SB),NOSPLIT,$0-0 + JMP libc_access(SB) +TEXT ·libc_adjtime_trampoline(SB),NOSPLIT,$0-0 + JMP libc_adjtime(SB) +TEXT ·libc_chdir_trampoline(SB),NOSPLIT,$0-0 + JMP libc_chdir(SB) +TEXT ·libc_chflags_trampoline(SB),NOSPLIT,$0-0 + JMP libc_chflags(SB) +TEXT ·libc_chmod_trampoline(SB),NOSPLIT,$0-0 + JMP libc_chmod(SB) +TEXT ·libc_chown_trampoline(SB),NOSPLIT,$0-0 + JMP libc_chown(SB) +TEXT ·libc_chroot_trampoline(SB),NOSPLIT,$0-0 + JMP libc_chroot(SB) +TEXT ·libc_close_trampoline(SB),NOSPLIT,$0-0 + JMP libc_close(SB) +TEXT ·libc_dup_trampoline(SB),NOSPLIT,$0-0 + JMP libc_dup(SB) +TEXT ·libc_dup2_trampoline(SB),NOSPLIT,$0-0 + JMP libc_dup2(SB) +TEXT ·libc_exchangedata_trampoline(SB),NOSPLIT,$0-0 + JMP libc_exchangedata(SB) +TEXT ·libc_exit_trampoline(SB),NOSPLIT,$0-0 + JMP libc_exit(SB) +TEXT ·libc_faccessat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_faccessat(SB) +TEXT ·libc_fchdir_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fchdir(SB) +TEXT ·libc_fchflags_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fchflags(SB) +TEXT ·libc_fchmod_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fchmod(SB) +TEXT ·libc_fchmodat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fchmodat(SB) +TEXT ·libc_fchown_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fchown(SB) +TEXT ·libc_fchownat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fchownat(SB) +TEXT ·libc_flock_trampoline(SB),NOSPLIT,$0-0 + JMP libc_flock(SB) +TEXT ·libc_fpathconf_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fpathconf(SB) +TEXT ·libc_fsync_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fsync(SB) +TEXT ·libc_ftruncate_trampoline(SB),NOSPLIT,$0-0 + JMP libc_ftruncate(SB) +TEXT ·libc_getdtablesize_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getdtablesize(SB) +TEXT ·libc_getegid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getegid(SB) +TEXT ·libc_geteuid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_geteuid(SB) +TEXT ·libc_getgid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getgid(SB) +TEXT ·libc_getpgid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getpgid(SB) +TEXT ·libc_getpgrp_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getpgrp(SB) +TEXT ·libc_getpid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getpid(SB) +TEXT ·libc_getppid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getppid(SB) +TEXT ·libc_getpriority_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getpriority(SB) +TEXT ·libc_getrlimit_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getrlimit(SB) +TEXT ·libc_getrusage_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getrusage(SB) +TEXT ·libc_getsid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getsid(SB) +TEXT ·libc_getuid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getuid(SB) +TEXT ·libc_issetugid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_issetugid(SB) +TEXT ·libc_kqueue_trampoline(SB),NOSPLIT,$0-0 + JMP libc_kqueue(SB) +TEXT ·libc_lchown_trampoline(SB),NOSPLIT,$0-0 + JMP libc_lchown(SB) +TEXT ·libc_link_trampoline(SB),NOSPLIT,$0-0 + JMP libc_link(SB) +TEXT ·libc_linkat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_linkat(SB) +TEXT ·libc_listen_trampoline(SB),NOSPLIT,$0-0 + JMP libc_listen(SB) +TEXT ·libc_mkdir_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mkdir(SB) +TEXT ·libc_mkdirat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mkdirat(SB) +TEXT ·libc_mkfifo_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mkfifo(SB) +TEXT ·libc_mknod_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mknod(SB) +TEXT ·libc_open_trampoline(SB),NOSPLIT,$0-0 + JMP libc_open(SB) +TEXT ·libc_openat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_openat(SB) +TEXT ·libc_pathconf_trampoline(SB),NOSPLIT,$0-0 + JMP libc_pathconf(SB) +TEXT ·libc_pread_trampoline(SB),NOSPLIT,$0-0 + JMP libc_pread(SB) +TEXT ·libc_pwrite_trampoline(SB),NOSPLIT,$0-0 + JMP libc_pwrite(SB) +TEXT ·libc_read_trampoline(SB),NOSPLIT,$0-0 + JMP libc_read(SB) +TEXT ·libc_readlink_trampoline(SB),NOSPLIT,$0-0 + JMP libc_readlink(SB) +TEXT ·libc_readlinkat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_readlinkat(SB) +TEXT ·libc_rename_trampoline(SB),NOSPLIT,$0-0 + JMP libc_rename(SB) +TEXT ·libc_renameat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_renameat(SB) +TEXT ·libc_revoke_trampoline(SB),NOSPLIT,$0-0 + JMP libc_revoke(SB) +TEXT ·libc_rmdir_trampoline(SB),NOSPLIT,$0-0 + JMP libc_rmdir(SB) +TEXT ·libc_lseek_trampoline(SB),NOSPLIT,$0-0 + JMP libc_lseek(SB) +TEXT ·libc_select_trampoline(SB),NOSPLIT,$0-0 + JMP libc_select(SB) +TEXT ·libc_setegid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setegid(SB) +TEXT ·libc_seteuid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_seteuid(SB) +TEXT ·libc_setgid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setgid(SB) +TEXT ·libc_setlogin_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setlogin(SB) +TEXT ·libc_setpgid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setpgid(SB) +TEXT ·libc_setpriority_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setpriority(SB) +TEXT ·libc_setprivexec_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setprivexec(SB) +TEXT ·libc_setregid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setregid(SB) +TEXT ·libc_setreuid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setreuid(SB) +TEXT ·libc_setrlimit_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setrlimit(SB) +TEXT ·libc_setsid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setsid(SB) +TEXT ·libc_settimeofday_trampoline(SB),NOSPLIT,$0-0 + JMP libc_settimeofday(SB) +TEXT ·libc_setuid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setuid(SB) +TEXT ·libc_symlink_trampoline(SB),NOSPLIT,$0-0 + JMP libc_symlink(SB) +TEXT ·libc_symlinkat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_symlinkat(SB) +TEXT ·libc_sync_trampoline(SB),NOSPLIT,$0-0 + JMP libc_sync(SB) +TEXT ·libc_truncate_trampoline(SB),NOSPLIT,$0-0 + JMP libc_truncate(SB) +TEXT ·libc_umask_trampoline(SB),NOSPLIT,$0-0 + JMP libc_umask(SB) +TEXT ·libc_undelete_trampoline(SB),NOSPLIT,$0-0 + JMP libc_undelete(SB) +TEXT ·libc_unlink_trampoline(SB),NOSPLIT,$0-0 + JMP libc_unlink(SB) +TEXT ·libc_unlinkat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_unlinkat(SB) +TEXT ·libc_unmount_trampoline(SB),NOSPLIT,$0-0 + JMP libc_unmount(SB) +TEXT ·libc_write_trampoline(SB),NOSPLIT,$0-0 + JMP libc_write(SB) +TEXT ·libc_mmap_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mmap(SB) +TEXT ·libc_munmap_trampoline(SB),NOSPLIT,$0-0 + JMP libc_munmap(SB) +TEXT ·libc_gettimeofday_trampoline(SB),NOSPLIT,$0-0 + JMP libc_gettimeofday(SB) +TEXT ·libc_fstat64_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fstat64(SB) +TEXT ·libc_fstatat64_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fstatat64(SB) +TEXT ·libc_fstatfs64_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fstatfs64(SB) +TEXT ·libc___getdirentries64_trampoline(SB),NOSPLIT,$0-0 + JMP libc___getdirentries64(SB) +TEXT ·libc_getfsstat64_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getfsstat64(SB) +TEXT ·libc_lstat64_trampoline(SB),NOSPLIT,$0-0 + JMP libc_lstat64(SB) +TEXT ·libc_stat64_trampoline(SB),NOSPLIT,$0-0 + JMP libc_stat64(SB) +TEXT ·libc_statfs64_trampoline(SB),NOSPLIT,$0-0 + JMP libc_statfs64(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_11.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_11.go new file mode 100644 index 000000000..f8caecef0 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_11.go @@ -0,0 +1,1793 @@ +// go run mksyscall.go -l32 -tags darwin,arm,!go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_arm.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build darwin,arm,!go1.12 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(ngid int, gid *_Gid_t) (n int, err error) { + r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { + r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { + r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, timeval *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fcntl(fd int, cmd int, arg int) (val int, err error) { + r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, behav int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mprotect(b []byte, prot int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Msync(b []byte, flags int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { + _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { + _, _, e1 := Syscall6(SYS_GETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe() (r int, w int, err error) { + r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) + r = int(r0) + w = int(r1) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attr) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attr) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attr) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attr) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func removexattr(path string, attr string, options int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attr) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fremovexattr(fd int, attr string, options int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attr) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func listxattr(path string, dest *byte, size int, options int) (sz int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) { + r0, _, e1 := Syscall6(SYS_FLISTXATTR, uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { + _, _, e1 := Syscall6(SYS_SETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kill(pid int, signum int, posix int) (err error) { + _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) { + _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(offset>>32), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Access(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chflags(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chroot(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(fd int) (nfd int, err error) { + r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exchangedata(path1 string, path2 string, options int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path1) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(path2) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXCHANGEDATA, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + Syscall(SYS_EXIT, uintptr(code), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fpathconf(fd int, name int) (val int, err error) { + r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), uintptr(length>>32)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getdtablesize() (size int) { + r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) + size = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgid(pid int) (pgid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) + pgrp = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) + ppid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpriority(which int, who int) (prio int, err error) { + r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrusage(who int, rusage *Rusage) (err error) { + _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := RawSyscall(SYS_ISSETUGID, 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Link(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdir(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifo(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknod(path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pathconf(path string, name int) (val int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlink(path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rename(from string, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(fromfd int, from string, tofd int, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Revoke(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rmdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0) + newoffset = int64(int64(r1)<<32 | int64(r0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { + _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + _, _, e1 := Syscall(SYS_SETEGID, uintptr(egid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seteuid(euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setlogin(name string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpriority(which int, who int, prio int) (err error) { + _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setprivexec(flag int) (err error) { + _, _, e1 := Syscall(SYS_SETPRIVEXEC, uintptr(flag), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlink(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Undelete(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { + r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func gettimeofday(tp *Timeval) (sec int32, usec int32, err error) { + r0, r1, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + sec = int32(r0) + usec = int32(r1) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, stat *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(buf), uintptr(size), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, stat *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go index 37e3c6925..01cffbf46 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go @@ -1,7 +1,7 @@ -// go run mksyscall.go -l32 -tags darwin,arm syscall_bsd.go syscall_darwin.go syscall_darwin_arm.go +// go run mksyscall.go -l32 -tags darwin,arm,go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_arm.go // Code generated by the command above; see README.md. DO NOT EDIT. -// +build darwin,arm +// +build darwin,arm,go1.12 package unix @@ -15,7 +15,7 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + r0, _, e1 := syscall_rawSyscall(funcPC(libc_getgroups_trampoline), uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -23,20 +23,30 @@ func getgroups(ngid int, gid *_Gid_t) (n int, err error) { return } +func libc_getgroups_trampoline() + +//go:linkname libc_getgroups libc_getgroups +//go:cgo_import_dynamic libc_getgroups getgroups "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + _, _, e1 := syscall_rawSyscall(funcPC(libc_setgroups_trampoline), uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setgroups_trampoline() + +//go:linkname libc_setgroups libc_setgroups +//go:cgo_import_dynamic libc_setgroups setgroups "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + r0, _, e1 := syscall_syscall6(funcPC(libc_wait4_trampoline), uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) wpid = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -44,10 +54,15 @@ func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err return } +func libc_wait4_trampoline() + +//go:linkname libc_wait4 libc_wait4 +//go:cgo_import_dynamic libc_wait4 wait4 "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + r0, _, e1 := syscall_syscall(funcPC(libc_accept_trampoline), uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -55,30 +70,45 @@ func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { return } +func libc_accept_trampoline() + +//go:linkname libc_accept libc_accept +//go:cgo_import_dynamic libc_accept accept "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + _, _, e1 := syscall_syscall(funcPC(libc_bind_trampoline), uintptr(s), uintptr(addr), uintptr(addrlen)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_bind_trampoline() + +//go:linkname libc_bind libc_bind +//go:cgo_import_dynamic libc_bind bind "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + _, _, e1 := syscall_syscall(funcPC(libc_connect_trampoline), uintptr(s), uintptr(addr), uintptr(addrlen)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_connect_trampoline() + +//go:linkname libc_connect libc_connect +//go:cgo_import_dynamic libc_connect connect "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + r0, _, e1 := syscall_rawSyscall(funcPC(libc_socket_trampoline), uintptr(domain), uintptr(typ), uintptr(proto)) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -86,66 +116,101 @@ func socket(domain int, typ int, proto int) (fd int, err error) { return } +func libc_socket_trampoline() + +//go:linkname libc_socket libc_socket +//go:cgo_import_dynamic libc_socket socket "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + _, _, e1 := syscall_syscall6(funcPC(libc_getsockopt_trampoline), uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_getsockopt_trampoline() + +//go:linkname libc_getsockopt libc_getsockopt +//go:cgo_import_dynamic libc_getsockopt getsockopt "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + _, _, e1 := syscall_syscall6(funcPC(libc_setsockopt_trampoline), uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setsockopt_trampoline() + +//go:linkname libc_setsockopt libc_setsockopt +//go:cgo_import_dynamic libc_setsockopt setsockopt "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + _, _, e1 := syscall_rawSyscall(funcPC(libc_getpeername_trampoline), uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) if e1 != 0 { err = errnoErr(e1) } return } +func libc_getpeername_trampoline() + +//go:linkname libc_getpeername libc_getpeername +//go:cgo_import_dynamic libc_getpeername getpeername "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + _, _, e1 := syscall_rawSyscall(funcPC(libc_getsockname_trampoline), uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) if e1 != 0 { err = errnoErr(e1) } return } +func libc_getsockname_trampoline() + +//go:linkname libc_getsockname libc_getsockname +//go:cgo_import_dynamic libc_getsockname getsockname "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Shutdown(s int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) + _, _, e1 := syscall_syscall(funcPC(libc_shutdown_trampoline), uintptr(s), uintptr(how), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_shutdown_trampoline() + +//go:linkname libc_shutdown libc_shutdown +//go:cgo_import_dynamic libc_shutdown shutdown "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + _, _, e1 := syscall_rawSyscall6(funcPC(libc_socketpair_trampoline), uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_socketpair_trampoline() + +//go:linkname libc_socketpair libc_socketpair +//go:cgo_import_dynamic libc_socketpair socketpair "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { @@ -155,7 +220,7 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + r0, _, e1 := syscall_syscall6(funcPC(libc_recvfrom_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -163,6 +228,11 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl return } +func libc_recvfrom_trampoline() + +//go:linkname libc_recvfrom libc_recvfrom +//go:cgo_import_dynamic libc_recvfrom recvfrom "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { @@ -172,17 +242,22 @@ func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) ( } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + _, _, e1 := syscall_syscall6(funcPC(libc_sendto_trampoline), uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_sendto_trampoline() + +//go:linkname libc_sendto libc_sendto +//go:cgo_import_dynamic libc_sendto sendto "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + r0, _, e1 := syscall_syscall(funcPC(libc_recvmsg_trampoline), uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -190,10 +265,15 @@ func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { return } +func libc_recvmsg_trampoline() + +//go:linkname libc_recvmsg libc_recvmsg +//go:cgo_import_dynamic libc_recvmsg recvmsg "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + r0, _, e1 := syscall_syscall(funcPC(libc_sendmsg_trampoline), uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -201,10 +281,15 @@ func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { return } +func libc_sendmsg_trampoline() + +//go:linkname libc_sendmsg libc_sendmsg +//go:cgo_import_dynamic libc_sendmsg sendmsg "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + r0, _, e1 := syscall_syscall6(funcPC(libc_kevent_trampoline), uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -212,6 +297,11 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne return } +func libc_kevent_trampoline() + +//go:linkname libc_kevent libc_kevent +//go:cgo_import_dynamic libc_kevent kevent "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { @@ -221,13 +311,18 @@ func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + _, _, e1 := syscall_syscall6(funcPC(libc___sysctl_trampoline), uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) if e1 != 0 { err = errnoErr(e1) } return } +func libc___sysctl_trampoline() + +//go:linkname libc___sysctl libc___sysctl +//go:cgo_import_dynamic libc___sysctl __sysctl "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func utimes(path string, timeval *[2]Timeval) (err error) { @@ -236,27 +331,37 @@ func utimes(path string, timeval *[2]Timeval) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + _, _, e1 := syscall_syscall(funcPC(libc_utimes_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_utimes_trampoline() + +//go:linkname libc_utimes libc_utimes +//go:cgo_import_dynamic libc_utimes utimes "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + _, _, e1 := syscall_syscall(funcPC(libc_futimes_trampoline), uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_futimes_trampoline() + +//go:linkname libc_futimes libc_futimes +//go:cgo_import_dynamic libc_futimes futimes "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) + r0, _, e1 := syscall_syscall(funcPC(libc_fcntl_trampoline), uintptr(fd), uintptr(cmd), uintptr(arg)) val = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -264,10 +369,15 @@ func fcntl(fd int, cmd int, arg int) (val int, err error) { return } +func libc_fcntl_trampoline() + +//go:linkname libc_fcntl libc_fcntl +//go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + r0, _, e1 := syscall_syscall(funcPC(libc_poll_trampoline), uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -275,6 +385,11 @@ func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { return } +func libc_poll_trampoline() + +//go:linkname libc_poll libc_poll +//go:cgo_import_dynamic libc_poll poll "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Madvise(b []byte, behav int) (err error) { @@ -284,13 +399,18 @@ func Madvise(b []byte, behav int) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + _, _, e1 := syscall_syscall(funcPC(libc_madvise_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(behav)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_madvise_trampoline() + +//go:linkname libc_madvise libc_madvise +//go:cgo_import_dynamic libc_madvise madvise "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mlock(b []byte) (err error) { @@ -300,23 +420,33 @@ func Mlock(b []byte) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) + _, _, e1 := syscall_syscall(funcPC(libc_mlock_trampoline), uintptr(_p0), uintptr(len(b)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_mlock_trampoline() + +//go:linkname libc_mlock libc_mlock +//go:cgo_import_dynamic libc_mlock mlock "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_mlockall_trampoline), uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_mlockall_trampoline() + +//go:linkname libc_mlockall libc_mlockall +//go:cgo_import_dynamic libc_mlockall mlockall "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mprotect(b []byte, prot int) (err error) { @@ -326,13 +456,18 @@ func Mprotect(b []byte, prot int) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + _, _, e1 := syscall_syscall(funcPC(libc_mprotect_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(prot)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_mprotect_trampoline() + +//go:linkname libc_mprotect libc_mprotect +//go:cgo_import_dynamic libc_mprotect mprotect "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Msync(b []byte, flags int) (err error) { @@ -342,13 +477,18 @@ func Msync(b []byte, flags int) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + _, _, e1 := syscall_syscall(funcPC(libc_msync_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(flags)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_msync_trampoline() + +//go:linkname libc_msync libc_msync +//go:cgo_import_dynamic libc_msync msync "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Munlock(b []byte) (err error) { @@ -358,37 +498,67 @@ func Munlock(b []byte) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) + _, _, e1 := syscall_syscall(funcPC(libc_munlock_trampoline), uintptr(_p0), uintptr(len(b)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_munlock_trampoline() + +//go:linkname libc_munlock libc_munlock +//go:cgo_import_dynamic libc_munlock munlock "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_munlockall_trampoline), 0, 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_munlockall_trampoline() + +//go:linkname libc_munlockall libc_munlockall +//go:cgo_import_dynamic libc_munlockall munlockall "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) + _, _, e1 := syscall_syscall6(funcPC(libc_ptrace_trampoline), uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_ptrace_trampoline() + +//go:linkname libc_ptrace libc_ptrace +//go:cgo_import_dynamic libc_ptrace ptrace "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { + _, _, e1 := syscall_syscall6(funcPC(libc_getattrlist_trampoline), uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getattrlist_trampoline() + +//go:linkname libc_getattrlist libc_getattrlist +//go:cgo_import_dynamic libc_getattrlist getattrlist "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func pipe() (r int, w int, err error) { - r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) + r0, r1, e1 := syscall_rawSyscall(funcPC(libc_pipe_trampoline), 0, 0, 0) r = int(r0) w = int(r1) if e1 != 0 { @@ -397,6 +567,11 @@ func pipe() (r int, w int, err error) { return } +func libc_pipe_trampoline() + +//go:linkname libc_pipe libc_pipe +//go:cgo_import_dynamic libc_pipe pipe "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { @@ -410,7 +585,7 @@ func getxattr(path string, attr string, dest *byte, size int, position uint32, o if err != nil { return } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) + r0, _, e1 := syscall_syscall6(funcPC(libc_getxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) sz = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -418,6 +593,11 @@ func getxattr(path string, attr string, dest *byte, size int, position uint32, o return } +func libc_getxattr_trampoline() + +//go:linkname libc_getxattr libc_getxattr +//go:cgo_import_dynamic libc_getxattr getxattr "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { @@ -426,7 +606,7 @@ func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, optio if err != nil { return } - r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) + r0, _, e1 := syscall_syscall6(funcPC(libc_fgetxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) sz = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -434,6 +614,11 @@ func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, optio return } +func libc_fgetxattr_trampoline() + +//go:linkname libc_fgetxattr libc_fgetxattr +//go:cgo_import_dynamic libc_fgetxattr fgetxattr "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) { @@ -447,13 +632,18 @@ func setxattr(path string, attr string, data *byte, size int, position uint32, o if err != nil { return } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) + _, _, e1 := syscall_syscall6(funcPC(libc_setxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setxattr_trampoline() + +//go:linkname libc_setxattr libc_setxattr +//go:cgo_import_dynamic libc_setxattr setxattr "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) { @@ -462,13 +652,18 @@ func fsetxattr(fd int, attr string, data *byte, size int, position uint32, optio if err != nil { return } - _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) + _, _, e1 := syscall_syscall6(funcPC(libc_fsetxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_fsetxattr_trampoline() + +//go:linkname libc_fsetxattr libc_fsetxattr +//go:cgo_import_dynamic libc_fsetxattr fsetxattr "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func removexattr(path string, attr string, options int) (err error) { @@ -482,13 +677,18 @@ func removexattr(path string, attr string, options int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) + _, _, e1 := syscall_syscall(funcPC(libc_removexattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_removexattr_trampoline() + +//go:linkname libc_removexattr libc_removexattr +//go:cgo_import_dynamic libc_removexattr removexattr "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func fremovexattr(fd int, attr string, options int) (err error) { @@ -497,13 +697,18 @@ func fremovexattr(fd int, attr string, options int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options)) + _, _, e1 := syscall_syscall(funcPC(libc_fremovexattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_fremovexattr_trampoline() + +//go:linkname libc_fremovexattr libc_fremovexattr +//go:cgo_import_dynamic libc_fremovexattr fremovexattr "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func listxattr(path string, dest *byte, size int, options int) (sz int, err error) { @@ -512,7 +717,7 @@ func listxattr(path string, dest *byte, size int, options int) (sz int, err erro if err != nil { return } - r0, _, e1 := Syscall6(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) + r0, _, e1 := syscall_syscall6(funcPC(libc_listxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) sz = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -520,10 +725,15 @@ func listxattr(path string, dest *byte, size int, options int) (sz int, err erro return } +func libc_listxattr_trampoline() + +//go:linkname libc_listxattr libc_listxattr +//go:cgo_import_dynamic libc_listxattr listxattr "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) { - r0, _, e1 := Syscall6(SYS_FLISTXATTR, uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) + r0, _, e1 := syscall_syscall6(funcPC(libc_flistxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) sz = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -531,26 +741,71 @@ func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) { return } +func libc_flistxattr_trampoline() + +//go:linkname libc_flistxattr libc_flistxattr +//go:cgo_import_dynamic libc_flistxattr flistxattr "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func kill(pid int, signum int, posix int) (err error) { - _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix)) +func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { + _, _, e1 := syscall_syscall6(funcPC(libc_setattrlist_trampoline), uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setattrlist_trampoline() + +//go:linkname libc_setattrlist libc_setattrlist +//go:cgo_import_dynamic libc_setattrlist setattrlist "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kill(pid int, signum int, posix int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_kill_trampoline), uintptr(pid), uintptr(signum), uintptr(posix)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_kill_trampoline() + +//go:linkname libc_kill libc_kill +//go:cgo_import_dynamic libc_kill kill "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + _, _, e1 := syscall_syscall(funcPC(libc_ioctl_trampoline), uintptr(fd), uintptr(req), uintptr(arg)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_ioctl_trampoline() + +//go:linkname libc_ioctl libc_ioctl +//go:cgo_import_dynamic libc_ioctl ioctl "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) { + _, _, e1 := syscall_syscall9(funcPC(libc_sendfile_trampoline), uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(offset>>32), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_sendfile_trampoline() + +//go:linkname libc_sendfile libc_sendfile +//go:cgo_import_dynamic libc_sendfile sendfile "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Access(path string, mode uint32) (err error) { @@ -559,23 +814,33 @@ func Access(path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + _, _, e1 := syscall_syscall(funcPC(libc_access_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_access_trampoline() + +//go:linkname libc_access libc_access +//go:cgo_import_dynamic libc_access access "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + _, _, e1 := syscall_syscall(funcPC(libc_adjtime_trampoline), uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_adjtime_trampoline() + +//go:linkname libc_adjtime libc_adjtime +//go:cgo_import_dynamic libc_adjtime adjtime "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Chdir(path string) (err error) { @@ -584,13 +849,18 @@ func Chdir(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_chdir_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_chdir_trampoline() + +//go:linkname libc_chdir libc_chdir +//go:cgo_import_dynamic libc_chdir chdir "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Chflags(path string, flags int) (err error) { @@ -599,13 +869,18 @@ func Chflags(path string, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + _, _, e1 := syscall_syscall(funcPC(libc_chflags_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_chflags_trampoline() + +//go:linkname libc_chflags libc_chflags +//go:cgo_import_dynamic libc_chflags chflags "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Chmod(path string, mode uint32) (err error) { @@ -614,13 +889,18 @@ func Chmod(path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + _, _, e1 := syscall_syscall(funcPC(libc_chmod_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_chmod_trampoline() + +//go:linkname libc_chmod libc_chmod +//go:cgo_import_dynamic libc_chmod chmod "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Chown(path string, uid int, gid int) (err error) { @@ -629,13 +909,18 @@ func Chown(path string, uid int, gid int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + _, _, e1 := syscall_syscall(funcPC(libc_chown_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_chown_trampoline() + +//go:linkname libc_chown libc_chown +//go:cgo_import_dynamic libc_chown chown "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Chroot(path string) (err error) { @@ -644,27 +929,37 @@ func Chroot(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_chroot_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_chroot_trampoline() + +//go:linkname libc_chroot libc_chroot +//go:cgo_import_dynamic libc_chroot chroot "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_close_trampoline), uintptr(fd), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_close_trampoline() + +//go:linkname libc_close libc_close +//go:cgo_import_dynamic libc_close close "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Dup(fd int) (nfd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) + r0, _, e1 := syscall_syscall(funcPC(libc_dup_trampoline), uintptr(fd), 0, 0) nfd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -672,16 +967,26 @@ func Dup(fd int) (nfd int, err error) { return } +func libc_dup_trampoline() + +//go:linkname libc_dup libc_dup +//go:cgo_import_dynamic libc_dup dup "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Dup2(from int, to int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) + _, _, e1 := syscall_syscall(funcPC(libc_dup2_trampoline), uintptr(from), uintptr(to), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_dup2_trampoline() + +//go:linkname libc_dup2 libc_dup2 +//go:cgo_import_dynamic libc_dup2 dup2 "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Exchangedata(path1 string, path2 string, options int) (err error) { @@ -695,20 +1000,30 @@ func Exchangedata(path1 string, path2 string, options int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_EXCHANGEDATA, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) + _, _, e1 := syscall_syscall(funcPC(libc_exchangedata_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_exchangedata_trampoline() + +//go:linkname libc_exchangedata libc_exchangedata +//go:cgo_import_dynamic libc_exchangedata exchangedata "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Exit(code int) { - Syscall(SYS_EXIT, uintptr(code), 0, 0) + syscall_syscall(funcPC(libc_exit_trampoline), uintptr(code), 0, 0) return } +func libc_exit_trampoline() + +//go:linkname libc_exit libc_exit +//go:cgo_import_dynamic libc_exit exit "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { @@ -717,43 +1032,63 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + _, _, e1 := syscall_syscall6(funcPC(libc_faccessat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_faccessat_trampoline() + +//go:linkname libc_faccessat libc_faccessat +//go:cgo_import_dynamic libc_faccessat faccessat "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_fchdir_trampoline), uintptr(fd), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_fchdir_trampoline() + +//go:linkname libc_fchdir libc_fchdir +//go:cgo_import_dynamic libc_fchdir fchdir "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchflags(fd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) + _, _, e1 := syscall_syscall(funcPC(libc_fchflags_trampoline), uintptr(fd), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_fchflags_trampoline() + +//go:linkname libc_fchflags libc_fchflags +//go:cgo_import_dynamic libc_fchflags fchflags "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) + _, _, e1 := syscall_syscall(funcPC(libc_fchmod_trampoline), uintptr(fd), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_fchmod_trampoline() + +//go:linkname libc_fchmod libc_fchmod +//go:cgo_import_dynamic libc_fchmod fchmod "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { @@ -762,23 +1097,33 @@ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + _, _, e1 := syscall_syscall6(funcPC(libc_fchmodat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_fchmodat_trampoline() + +//go:linkname libc_fchmodat libc_fchmodat +//go:cgo_import_dynamic libc_fchmodat fchmodat "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + _, _, e1 := syscall_syscall(funcPC(libc_fchown_trampoline), uintptr(fd), uintptr(uid), uintptr(gid)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_fchown_trampoline() + +//go:linkname libc_fchown libc_fchown +//go:cgo_import_dynamic libc_fchown fchown "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { @@ -787,27 +1132,37 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + _, _, e1 := syscall_syscall6(funcPC(libc_fchownat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_fchownat_trampoline() + +//go:linkname libc_fchownat libc_fchownat +//go:cgo_import_dynamic libc_fchownat fchownat "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) + _, _, e1 := syscall_syscall(funcPC(libc_flock_trampoline), uintptr(fd), uintptr(how), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_flock_trampoline() + +//go:linkname libc_flock libc_flock +//go:cgo_import_dynamic libc_flock flock "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) + r0, _, e1 := syscall_syscall(funcPC(libc_fpathconf_trampoline), uintptr(fd), uintptr(name), 0) val = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -815,114 +1170,97 @@ func Fpathconf(fd int, name int) (val int, err error) { return } -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func libc_fpathconf_trampoline() -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} +//go:linkname libc_fpathconf libc_fpathconf +//go:cgo_import_dynamic libc_fpathconf fpathconf "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_fsync_trampoline), uintptr(fd), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_fsync_trampoline() + +//go:linkname libc_fsync libc_fsync +//go:cgo_import_dynamic libc_fsync fsync "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), uintptr(length>>32)) + _, _, e1 := syscall_syscall(funcPC(libc_ftruncate_trampoline), uintptr(fd), uintptr(length), uintptr(length>>32)) if e1 != 0 { err = errnoErr(e1) } return } -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func libc_ftruncate_trampoline() -func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETDIRENTRIES64, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} +//go:linkname libc_ftruncate libc_ftruncate +//go:cgo_import_dynamic libc_ftruncate ftruncate "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getdtablesize() (size int) { - r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) + r0, _, _ := syscall_syscall(funcPC(libc_getdtablesize_trampoline), 0, 0, 0) size = int(r0) return } +func libc_getdtablesize_trampoline() + +//go:linkname libc_getdtablesize libc_getdtablesize +//go:cgo_import_dynamic libc_getdtablesize getdtablesize "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(funcPC(libc_getegid_trampoline), 0, 0, 0) egid = int(r0) return } +func libc_getegid_trampoline() + +//go:linkname libc_getegid libc_getegid +//go:cgo_import_dynamic libc_getegid getegid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Geteuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(funcPC(libc_geteuid_trampoline), 0, 0, 0) uid = int(r0) return } +func libc_geteuid_trampoline() + +//go:linkname libc_geteuid libc_geteuid +//go:cgo_import_dynamic libc_geteuid geteuid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(funcPC(libc_getgid_trampoline), 0, 0, 0) gid = int(r0) return } +func libc_getgid_trampoline() + +//go:linkname libc_getgid libc_getgid +//go:cgo_import_dynamic libc_getgid getgid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) + r0, _, e1 := syscall_rawSyscall(funcPC(libc_getpgid_trampoline), uintptr(pid), 0, 0) pgid = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -930,34 +1268,54 @@ func Getpgid(pid int) (pgid int, err error) { return } +func libc_getpgid_trampoline() + +//go:linkname libc_getpgid libc_getpgid +//go:cgo_import_dynamic libc_getpgid getpgid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getpgrp() (pgrp int) { - r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(funcPC(libc_getpgrp_trampoline), 0, 0, 0) pgrp = int(r0) return } +func libc_getpgrp_trampoline() + +//go:linkname libc_getpgrp libc_getpgrp +//go:cgo_import_dynamic libc_getpgrp getpgrp "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(funcPC(libc_getpid_trampoline), 0, 0, 0) pid = int(r0) return } +func libc_getpid_trampoline() + +//go:linkname libc_getpid libc_getpid +//go:cgo_import_dynamic libc_getpid getpid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(funcPC(libc_getppid_trampoline), 0, 0, 0) ppid = int(r0) return } +func libc_getppid_trampoline() + +//go:linkname libc_getppid libc_getppid +//go:cgo_import_dynamic libc_getppid getppid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) + r0, _, e1 := syscall_syscall(funcPC(libc_getpriority_trampoline), uintptr(which), uintptr(who), 0) prio = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -965,30 +1323,45 @@ func Getpriority(which int, who int) (prio int, err error) { return } +func libc_getpriority_trampoline() + +//go:linkname libc_getpriority libc_getpriority +//go:cgo_import_dynamic libc_getpriority getpriority "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + _, _, e1 := syscall_rawSyscall(funcPC(libc_getrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_getrlimit_trampoline() + +//go:linkname libc_getrlimit libc_getrlimit +//go:cgo_import_dynamic libc_getrlimit getrlimit "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + _, _, e1 := syscall_rawSyscall(funcPC(libc_getrusage_trampoline), uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_getrusage_trampoline() + +//go:linkname libc_getrusage libc_getrusage +//go:cgo_import_dynamic libc_getrusage getrusage "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + r0, _, e1 := syscall_rawSyscall(funcPC(libc_getsid_trampoline), uintptr(pid), 0, 0) sid = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -996,26 +1369,41 @@ func Getsid(pid int) (sid int, err error) { return } +func libc_getsid_trampoline() + +//go:linkname libc_getsid libc_getsid +//go:cgo_import_dynamic libc_getsid getsid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(funcPC(libc_getuid_trampoline), 0, 0, 0) uid = int(r0) return } +func libc_getuid_trampoline() + +//go:linkname libc_getuid libc_getuid +//go:cgo_import_dynamic libc_getuid getuid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Issetugid() (tainted bool) { - r0, _, _ := RawSyscall(SYS_ISSETUGID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(funcPC(libc_issetugid_trampoline), 0, 0, 0) tainted = bool(r0 != 0) return } +func libc_issetugid_trampoline() + +//go:linkname libc_issetugid libc_issetugid +//go:cgo_import_dynamic libc_issetugid issetugid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Kqueue() (fd int, err error) { - r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) + r0, _, e1 := syscall_syscall(funcPC(libc_kqueue_trampoline), 0, 0, 0) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1023,6 +1411,11 @@ func Kqueue() (fd int, err error) { return } +func libc_kqueue_trampoline() + +//go:linkname libc_kqueue libc_kqueue +//go:cgo_import_dynamic libc_kqueue kqueue "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Lchown(path string, uid int, gid int) (err error) { @@ -1031,13 +1424,18 @@ func Lchown(path string, uid int, gid int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + _, _, e1 := syscall_syscall(funcPC(libc_lchown_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_lchown_trampoline() + +//go:linkname libc_lchown libc_lchown +//go:cgo_import_dynamic libc_lchown lchown "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Link(path string, link string) (err error) { @@ -1051,13 +1449,18 @@ func Link(path string, link string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + _, _, e1 := syscall_syscall(funcPC(libc_link_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_link_trampoline() + +//go:linkname libc_link libc_link +//go:cgo_import_dynamic libc_link link "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { @@ -1071,37 +1474,32 @@ func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err er if err != nil { return } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + _, _, e1 := syscall_syscall6(funcPC(libc_linkat_trampoline), uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_linkat_trampoline() + +//go:linkname libc_linkat libc_linkat +//go:cgo_import_dynamic libc_linkat linkat "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Listen(s int, backlog int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) + _, _, e1 := syscall_syscall(funcPC(libc_listen_trampoline), uintptr(s), uintptr(backlog), 0) if e1 != 0 { err = errnoErr(e1) } return } -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func libc_listen_trampoline() -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} +//go:linkname libc_listen libc_listen +//go:cgo_import_dynamic libc_listen listen "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1111,13 +1509,18 @@ func Mkdir(path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + _, _, e1 := syscall_syscall(funcPC(libc_mkdir_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_mkdir_trampoline() + +//go:linkname libc_mkdir libc_mkdir +//go:cgo_import_dynamic libc_mkdir mkdir "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mkdirat(dirfd int, path string, mode uint32) (err error) { @@ -1126,13 +1529,18 @@ func Mkdirat(dirfd int, path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + _, _, e1 := syscall_syscall(funcPC(libc_mkdirat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_mkdirat_trampoline() + +//go:linkname libc_mkdirat libc_mkdirat +//go:cgo_import_dynamic libc_mkdirat mkdirat "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mkfifo(path string, mode uint32) (err error) { @@ -1141,13 +1549,18 @@ func Mkfifo(path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + _, _, e1 := syscall_syscall(funcPC(libc_mkfifo_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_mkfifo_trampoline() + +//go:linkname libc_mkfifo libc_mkfifo +//go:cgo_import_dynamic libc_mkfifo mkfifo "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mknod(path string, mode uint32, dev int) (err error) { @@ -1156,13 +1569,18 @@ func Mknod(path string, mode uint32, dev int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + _, _, e1 := syscall_syscall(funcPC(libc_mknod_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_mknod_trampoline() + +//go:linkname libc_mknod libc_mknod +//go:cgo_import_dynamic libc_mknod mknod "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Open(path string, mode int, perm uint32) (fd int, err error) { @@ -1171,7 +1589,7 @@ func Open(path string, mode int, perm uint32) (fd int, err error) { if err != nil { return } - r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + r0, _, e1 := syscall_syscall(funcPC(libc_open_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1179,6 +1597,11 @@ func Open(path string, mode int, perm uint32) (fd int, err error) { return } +func libc_open_trampoline() + +//go:linkname libc_open libc_open +//go:cgo_import_dynamic libc_open open "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { @@ -1187,7 +1610,7 @@ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { if err != nil { return } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + r0, _, e1 := syscall_syscall6(funcPC(libc_openat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1195,6 +1618,11 @@ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { return } +func libc_openat_trampoline() + +//go:linkname libc_openat libc_openat +//go:cgo_import_dynamic libc_openat openat "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Pathconf(path string, name int) (val int, err error) { @@ -1203,7 +1631,7 @@ func Pathconf(path string, name int) (val int, err error) { if err != nil { return } - r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + r0, _, e1 := syscall_syscall(funcPC(libc_pathconf_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) val = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1211,6 +1639,11 @@ func Pathconf(path string, name int) (val int, err error) { return } +func libc_pathconf_trampoline() + +//go:linkname libc_pathconf libc_pathconf +//go:cgo_import_dynamic libc_pathconf pathconf "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Pread(fd int, p []byte, offset int64) (n int, err error) { @@ -1220,7 +1653,7 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) + r0, _, e1 := syscall_syscall6(funcPC(libc_pread_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1228,6 +1661,11 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) { return } +func libc_pread_trampoline() + +//go:linkname libc_pread libc_pread +//go:cgo_import_dynamic libc_pread pread "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Pwrite(fd int, p []byte, offset int64) (n int, err error) { @@ -1237,7 +1675,7 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) + r0, _, e1 := syscall_syscall6(funcPC(libc_pwrite_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1245,6 +1683,11 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) { return } +func libc_pwrite_trampoline() + +//go:linkname libc_pwrite libc_pwrite +//go:cgo_import_dynamic libc_pwrite pwrite "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func read(fd int, p []byte) (n int, err error) { @@ -1254,7 +1697,7 @@ func read(fd int, p []byte) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) + r0, _, e1 := syscall_syscall(funcPC(libc_read_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1262,6 +1705,11 @@ func read(fd int, p []byte) (n int, err error) { return } +func libc_read_trampoline() + +//go:linkname libc_read libc_read +//go:cgo_import_dynamic libc_read read "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Readlink(path string, buf []byte) (n int, err error) { @@ -1276,7 +1724,7 @@ func Readlink(path string, buf []byte) (n int, err error) { } else { _p1 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + r0, _, e1 := syscall_syscall(funcPC(libc_readlink_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1284,6 +1732,11 @@ func Readlink(path string, buf []byte) (n int, err error) { return } +func libc_readlink_trampoline() + +//go:linkname libc_readlink libc_readlink +//go:cgo_import_dynamic libc_readlink readlink "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { @@ -1298,7 +1751,7 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { } else { _p1 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + r0, _, e1 := syscall_syscall6(funcPC(libc_readlinkat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1306,6 +1759,11 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { return } +func libc_readlinkat_trampoline() + +//go:linkname libc_readlinkat libc_readlinkat +//go:cgo_import_dynamic libc_readlinkat readlinkat "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Rename(from string, to string) (err error) { @@ -1319,13 +1777,18 @@ func Rename(from string, to string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + _, _, e1 := syscall_syscall(funcPC(libc_rename_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_rename_trampoline() + +//go:linkname libc_rename libc_rename +//go:cgo_import_dynamic libc_rename rename "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Renameat(fromfd int, from string, tofd int, to string) (err error) { @@ -1339,13 +1802,18 @@ func Renameat(fromfd int, from string, tofd int, to string) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + _, _, e1 := syscall_syscall6(funcPC(libc_renameat_trampoline), uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_renameat_trampoline() + +//go:linkname libc_renameat libc_renameat +//go:cgo_import_dynamic libc_renameat renameat "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Revoke(path string) (err error) { @@ -1354,13 +1822,18 @@ func Revoke(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_revoke_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_revoke_trampoline() + +//go:linkname libc_revoke libc_revoke +//go:cgo_import_dynamic libc_revoke revoke "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Rmdir(path string) (err error) { @@ -1369,17 +1842,22 @@ func Rmdir(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_rmdir_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_rmdir_trampoline() + +//go:linkname libc_rmdir libc_rmdir +//go:cgo_import_dynamic libc_rmdir rmdir "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0) + r0, r1, e1 := syscall_syscall6(funcPC(libc_lseek_trampoline), uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0) newoffset = int64(int64(r1)<<32 | int64(r0)) if e1 != 0 { err = errnoErr(e1) @@ -1387,46 +1865,71 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { return } +func libc_lseek_trampoline() + +//go:linkname libc_lseek libc_lseek +//go:cgo_import_dynamic libc_lseek lseek "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { - _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + _, _, e1 := syscall_syscall6(funcPC(libc_select_trampoline), uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_select_trampoline() + +//go:linkname libc_select libc_select +//go:cgo_import_dynamic libc_select select "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setegid(egid int) (err error) { - _, _, e1 := Syscall(SYS_SETEGID, uintptr(egid), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_setegid_trampoline), uintptr(egid), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setegid_trampoline() + +//go:linkname libc_setegid libc_setegid +//go:cgo_import_dynamic libc_setegid setegid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Seteuid(euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) + _, _, e1 := syscall_rawSyscall(funcPC(libc_seteuid_trampoline), uintptr(euid), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_seteuid_trampoline() + +//go:linkname libc_seteuid libc_seteuid +//go:cgo_import_dynamic libc_seteuid seteuid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setgid(gid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) + _, _, e1 := syscall_rawSyscall(funcPC(libc_setgid_trampoline), uintptr(gid), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setgid_trampoline() + +//go:linkname libc_setgid libc_setgid +//go:cgo_import_dynamic libc_setgid setgid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setlogin(name string) (err error) { @@ -1435,77 +1938,112 @@ func Setlogin(name string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_setlogin_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setlogin_trampoline() + +//go:linkname libc_setlogin libc_setlogin +//go:cgo_import_dynamic libc_setlogin setlogin "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) + _, _, e1 := syscall_rawSyscall(funcPC(libc_setpgid_trampoline), uintptr(pid), uintptr(pgid), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setpgid_trampoline() + +//go:linkname libc_setpgid libc_setpgid +//go:cgo_import_dynamic libc_setpgid setpgid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) + _, _, e1 := syscall_syscall(funcPC(libc_setpriority_trampoline), uintptr(which), uintptr(who), uintptr(prio)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setpriority_trampoline() + +//go:linkname libc_setpriority libc_setpriority +//go:cgo_import_dynamic libc_setpriority setpriority "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setprivexec(flag int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIVEXEC, uintptr(flag), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_setprivexec_trampoline), uintptr(flag), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setprivexec_trampoline() + +//go:linkname libc_setprivexec libc_setprivexec +//go:cgo_import_dynamic libc_setprivexec setprivexec "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + _, _, e1 := syscall_rawSyscall(funcPC(libc_setregid_trampoline), uintptr(rgid), uintptr(egid), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setregid_trampoline() + +//go:linkname libc_setregid libc_setregid +//go:cgo_import_dynamic libc_setregid setregid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + _, _, e1 := syscall_rawSyscall(funcPC(libc_setreuid_trampoline), uintptr(ruid), uintptr(euid), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setreuid_trampoline() + +//go:linkname libc_setreuid libc_setreuid +//go:cgo_import_dynamic libc_setreuid setreuid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + _, _, e1 := syscall_rawSyscall(funcPC(libc_setrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setrlimit_trampoline() + +//go:linkname libc_setrlimit libc_setrlimit +//go:cgo_import_dynamic libc_setrlimit setrlimit "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) + r0, _, e1 := syscall_rawSyscall(funcPC(libc_setsid_trampoline), 0, 0, 0) pid = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1513,55 +2051,40 @@ func Setsid() (pid int, err error) { return } +func libc_setsid_trampoline() + +//go:linkname libc_setsid libc_setsid +//go:cgo_import_dynamic libc_setsid setsid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + _, _, e1 := syscall_rawSyscall(funcPC(libc_settimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_settimeofday_trampoline() + +//go:linkname libc_settimeofday libc_settimeofday +//go:cgo_import_dynamic libc_settimeofday settimeofday "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setuid(uid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) + _, _, e1 := syscall_rawSyscall(funcPC(libc_setuid_trampoline), uintptr(uid), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func libc_setuid_trampoline() -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, stat *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} +//go:linkname libc_setuid libc_setuid +//go:cgo_import_dynamic libc_setuid setuid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1576,13 +2099,18 @@ func Symlink(path string, link string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + _, _, e1 := syscall_syscall(funcPC(libc_symlink_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_symlink_trampoline() + +//go:linkname libc_symlink libc_symlink +//go:cgo_import_dynamic libc_symlink symlink "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { @@ -1596,23 +2124,33 @@ func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + _, _, e1 := syscall_syscall(funcPC(libc_symlinkat_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) if e1 != 0 { err = errnoErr(e1) } return } +func libc_symlinkat_trampoline() + +//go:linkname libc_symlinkat libc_symlinkat +//go:cgo_import_dynamic libc_symlinkat symlinkat "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Sync() (err error) { - _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_sync_trampoline), 0, 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_sync_trampoline() + +//go:linkname libc_sync libc_sync +//go:cgo_import_dynamic libc_sync sync "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Truncate(path string, length int64) (err error) { @@ -1621,21 +2159,31 @@ func Truncate(path string, length int64) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32)) + _, _, e1 := syscall_syscall(funcPC(libc_truncate_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_truncate_trampoline() + +//go:linkname libc_truncate libc_truncate +//go:cgo_import_dynamic libc_truncate truncate "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Umask(newmask int) (oldmask int) { - r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) + r0, _, _ := syscall_syscall(funcPC(libc_umask_trampoline), uintptr(newmask), 0, 0) oldmask = int(r0) return } +func libc_umask_trampoline() + +//go:linkname libc_umask libc_umask +//go:cgo_import_dynamic libc_umask umask "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Undelete(path string) (err error) { @@ -1644,13 +2192,18 @@ func Undelete(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_undelete_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_undelete_trampoline() + +//go:linkname libc_undelete libc_undelete +//go:cgo_import_dynamic libc_undelete undelete "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Unlink(path string) (err error) { @@ -1659,13 +2212,18 @@ func Unlink(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_unlink_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_unlink_trampoline() + +//go:linkname libc_unlink libc_unlink +//go:cgo_import_dynamic libc_unlink unlink "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Unlinkat(dirfd int, path string, flags int) (err error) { @@ -1674,13 +2232,18 @@ func Unlinkat(dirfd int, path string, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + _, _, e1 := syscall_syscall(funcPC(libc_unlinkat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_unlinkat_trampoline() + +//go:linkname libc_unlinkat libc_unlinkat +//go:cgo_import_dynamic libc_unlinkat unlinkat "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Unmount(path string, flags int) (err error) { @@ -1689,13 +2252,18 @@ func Unmount(path string, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + _, _, e1 := syscall_syscall(funcPC(libc_unmount_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_unmount_trampoline() + +//go:linkname libc_unmount libc_unmount +//go:cgo_import_dynamic libc_unmount unmount "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func write(fd int, p []byte) (n int, err error) { @@ -1705,7 +2273,7 @@ func write(fd int, p []byte) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + r0, _, e1 := syscall_syscall(funcPC(libc_write_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1713,10 +2281,15 @@ func write(fd int, p []byte) (n int, err error) { return } +func libc_write_trampoline() + +//go:linkname libc_write libc_write +//go:cgo_import_dynamic libc_write write "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0) + r0, _, e1 := syscall_syscall9(funcPC(libc_mmap_trampoline), uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0) ret = uintptr(r0) if e1 != 0 { err = errnoErr(e1) @@ -1724,20 +2297,30 @@ func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) ( return } +func libc_mmap_trampoline() + +//go:linkname libc_mmap libc_mmap +//go:cgo_import_dynamic libc_mmap mmap "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) + _, _, e1 := syscall_syscall(funcPC(libc_munmap_trampoline), uintptr(addr), uintptr(length), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_munmap_trampoline() + +//go:linkname libc_munmap libc_munmap +//go:cgo_import_dynamic libc_munmap munmap "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + r0, _, e1 := syscall_syscall(funcPC(libc_read_trampoline), uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1748,7 +2331,7 @@ func readlen(fd int, buf *byte, nbuf int) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + r0, _, e1 := syscall_syscall(funcPC(libc_write_trampoline), uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1759,7 +2342,7 @@ func writelen(fd int, buf *byte, nbuf int) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func gettimeofday(tp *Timeval) (sec int32, usec int32, err error) { - r0, r1, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + r0, r1, e1 := syscall_rawSyscall(funcPC(libc_gettimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0) sec = int32(r0) usec = int32(r1) if e1 != 0 { @@ -1767,3 +2350,134 @@ func gettimeofday(tp *Timeval) (sec int32, usec int32, err error) { } return } + +func libc_gettimeofday_trampoline() + +//go:linkname libc_gettimeofday libc_gettimeofday +//go:cgo_import_dynamic libc_gettimeofday gettimeofday "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_fstat_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fstat_trampoline() + +//go:linkname libc_fstat libc_fstat +//go:cgo_import_dynamic libc_fstat fstat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(funcPC(libc_fstatat_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fstatat_trampoline() + +//go:linkname libc_fstatat libc_fstatat +//go:cgo_import_dynamic libc_fstatat fstatat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, stat *Statfs_t) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_fstatfs_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fstatfs_trampoline() + +//go:linkname libc_fstatfs libc_fstatfs +//go:cgo_import_dynamic libc_fstatfs fstatfs "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(funcPC(libc_getfsstat_trampoline), uintptr(buf), uintptr(size), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getfsstat_trampoline() + +//go:linkname libc_getfsstat libc_getfsstat +//go:cgo_import_dynamic libc_getfsstat getfsstat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_lstat_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_lstat_trampoline() + +//go:linkname libc_lstat libc_lstat +//go:cgo_import_dynamic libc_lstat lstat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_stat_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_stat_trampoline() + +//go:linkname libc_stat libc_stat +//go:cgo_import_dynamic libc_stat stat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, stat *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_statfs_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_statfs_trampoline() + +//go:linkname libc_statfs libc_statfs +//go:cgo_import_dynamic libc_statfs statfs "/usr/lib/libSystem.B.dylib" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.s new file mode 100644 index 000000000..994056f35 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.s @@ -0,0 +1,282 @@ +// go run mkasm_darwin.go arm +// Code generated by the command above; DO NOT EDIT. + +// +build go1.12 + +#include "textflag.h" +TEXT ·libc_getgroups_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getgroups(SB) +TEXT ·libc_setgroups_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setgroups(SB) +TEXT ·libc_wait4_trampoline(SB),NOSPLIT,$0-0 + JMP libc_wait4(SB) +TEXT ·libc_accept_trampoline(SB),NOSPLIT,$0-0 + JMP libc_accept(SB) +TEXT ·libc_bind_trampoline(SB),NOSPLIT,$0-0 + JMP libc_bind(SB) +TEXT ·libc_connect_trampoline(SB),NOSPLIT,$0-0 + JMP libc_connect(SB) +TEXT ·libc_socket_trampoline(SB),NOSPLIT,$0-0 + JMP libc_socket(SB) +TEXT ·libc_getsockopt_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getsockopt(SB) +TEXT ·libc_setsockopt_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setsockopt(SB) +TEXT ·libc_getpeername_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getpeername(SB) +TEXT ·libc_getsockname_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getsockname(SB) +TEXT ·libc_shutdown_trampoline(SB),NOSPLIT,$0-0 + JMP libc_shutdown(SB) +TEXT ·libc_socketpair_trampoline(SB),NOSPLIT,$0-0 + JMP libc_socketpair(SB) +TEXT ·libc_recvfrom_trampoline(SB),NOSPLIT,$0-0 + JMP libc_recvfrom(SB) +TEXT ·libc_sendto_trampoline(SB),NOSPLIT,$0-0 + JMP libc_sendto(SB) +TEXT ·libc_recvmsg_trampoline(SB),NOSPLIT,$0-0 + JMP libc_recvmsg(SB) +TEXT ·libc_sendmsg_trampoline(SB),NOSPLIT,$0-0 + JMP libc_sendmsg(SB) +TEXT ·libc_kevent_trampoline(SB),NOSPLIT,$0-0 + JMP libc_kevent(SB) +TEXT ·libc___sysctl_trampoline(SB),NOSPLIT,$0-0 + JMP libc___sysctl(SB) +TEXT ·libc_utimes_trampoline(SB),NOSPLIT,$0-0 + JMP libc_utimes(SB) +TEXT ·libc_futimes_trampoline(SB),NOSPLIT,$0-0 + JMP libc_futimes(SB) +TEXT ·libc_fcntl_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fcntl(SB) +TEXT ·libc_poll_trampoline(SB),NOSPLIT,$0-0 + JMP libc_poll(SB) +TEXT ·libc_madvise_trampoline(SB),NOSPLIT,$0-0 + JMP libc_madvise(SB) +TEXT ·libc_mlock_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mlock(SB) +TEXT ·libc_mlockall_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mlockall(SB) +TEXT ·libc_mprotect_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mprotect(SB) +TEXT ·libc_msync_trampoline(SB),NOSPLIT,$0-0 + JMP libc_msync(SB) +TEXT ·libc_munlock_trampoline(SB),NOSPLIT,$0-0 + JMP libc_munlock(SB) +TEXT ·libc_munlockall_trampoline(SB),NOSPLIT,$0-0 + JMP libc_munlockall(SB) +TEXT ·libc_ptrace_trampoline(SB),NOSPLIT,$0-0 + JMP libc_ptrace(SB) +TEXT ·libc_getattrlist_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getattrlist(SB) +TEXT ·libc_pipe_trampoline(SB),NOSPLIT,$0-0 + JMP libc_pipe(SB) +TEXT ·libc_getxattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getxattr(SB) +TEXT ·libc_fgetxattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fgetxattr(SB) +TEXT ·libc_setxattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setxattr(SB) +TEXT ·libc_fsetxattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fsetxattr(SB) +TEXT ·libc_removexattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_removexattr(SB) +TEXT ·libc_fremovexattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fremovexattr(SB) +TEXT ·libc_listxattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_listxattr(SB) +TEXT ·libc_flistxattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_flistxattr(SB) +TEXT ·libc_setattrlist_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setattrlist(SB) +TEXT ·libc_kill_trampoline(SB),NOSPLIT,$0-0 + JMP libc_kill(SB) +TEXT ·libc_ioctl_trampoline(SB),NOSPLIT,$0-0 + JMP libc_ioctl(SB) +TEXT ·libc_sendfile_trampoline(SB),NOSPLIT,$0-0 + JMP libc_sendfile(SB) +TEXT ·libc_access_trampoline(SB),NOSPLIT,$0-0 + JMP libc_access(SB) +TEXT ·libc_adjtime_trampoline(SB),NOSPLIT,$0-0 + JMP libc_adjtime(SB) +TEXT ·libc_chdir_trampoline(SB),NOSPLIT,$0-0 + JMP libc_chdir(SB) +TEXT ·libc_chflags_trampoline(SB),NOSPLIT,$0-0 + JMP libc_chflags(SB) +TEXT ·libc_chmod_trampoline(SB),NOSPLIT,$0-0 + JMP libc_chmod(SB) +TEXT ·libc_chown_trampoline(SB),NOSPLIT,$0-0 + JMP libc_chown(SB) +TEXT ·libc_chroot_trampoline(SB),NOSPLIT,$0-0 + JMP libc_chroot(SB) +TEXT ·libc_close_trampoline(SB),NOSPLIT,$0-0 + JMP libc_close(SB) +TEXT ·libc_dup_trampoline(SB),NOSPLIT,$0-0 + JMP libc_dup(SB) +TEXT ·libc_dup2_trampoline(SB),NOSPLIT,$0-0 + JMP libc_dup2(SB) +TEXT ·libc_exchangedata_trampoline(SB),NOSPLIT,$0-0 + JMP libc_exchangedata(SB) +TEXT ·libc_exit_trampoline(SB),NOSPLIT,$0-0 + JMP libc_exit(SB) +TEXT ·libc_faccessat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_faccessat(SB) +TEXT ·libc_fchdir_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fchdir(SB) +TEXT ·libc_fchflags_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fchflags(SB) +TEXT ·libc_fchmod_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fchmod(SB) +TEXT ·libc_fchmodat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fchmodat(SB) +TEXT ·libc_fchown_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fchown(SB) +TEXT ·libc_fchownat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fchownat(SB) +TEXT ·libc_flock_trampoline(SB),NOSPLIT,$0-0 + JMP libc_flock(SB) +TEXT ·libc_fpathconf_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fpathconf(SB) +TEXT ·libc_fsync_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fsync(SB) +TEXT ·libc_ftruncate_trampoline(SB),NOSPLIT,$0-0 + JMP libc_ftruncate(SB) +TEXT ·libc_getdtablesize_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getdtablesize(SB) +TEXT ·libc_getegid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getegid(SB) +TEXT ·libc_geteuid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_geteuid(SB) +TEXT ·libc_getgid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getgid(SB) +TEXT ·libc_getpgid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getpgid(SB) +TEXT ·libc_getpgrp_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getpgrp(SB) +TEXT ·libc_getpid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getpid(SB) +TEXT ·libc_getppid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getppid(SB) +TEXT ·libc_getpriority_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getpriority(SB) +TEXT ·libc_getrlimit_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getrlimit(SB) +TEXT ·libc_getrusage_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getrusage(SB) +TEXT ·libc_getsid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getsid(SB) +TEXT ·libc_getuid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getuid(SB) +TEXT ·libc_issetugid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_issetugid(SB) +TEXT ·libc_kqueue_trampoline(SB),NOSPLIT,$0-0 + JMP libc_kqueue(SB) +TEXT ·libc_lchown_trampoline(SB),NOSPLIT,$0-0 + JMP libc_lchown(SB) +TEXT ·libc_link_trampoline(SB),NOSPLIT,$0-0 + JMP libc_link(SB) +TEXT ·libc_linkat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_linkat(SB) +TEXT ·libc_listen_trampoline(SB),NOSPLIT,$0-0 + JMP libc_listen(SB) +TEXT ·libc_mkdir_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mkdir(SB) +TEXT ·libc_mkdirat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mkdirat(SB) +TEXT ·libc_mkfifo_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mkfifo(SB) +TEXT ·libc_mknod_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mknod(SB) +TEXT ·libc_open_trampoline(SB),NOSPLIT,$0-0 + JMP libc_open(SB) +TEXT ·libc_openat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_openat(SB) +TEXT ·libc_pathconf_trampoline(SB),NOSPLIT,$0-0 + JMP libc_pathconf(SB) +TEXT ·libc_pread_trampoline(SB),NOSPLIT,$0-0 + JMP libc_pread(SB) +TEXT ·libc_pwrite_trampoline(SB),NOSPLIT,$0-0 + JMP libc_pwrite(SB) +TEXT ·libc_read_trampoline(SB),NOSPLIT,$0-0 + JMP libc_read(SB) +TEXT ·libc_readlink_trampoline(SB),NOSPLIT,$0-0 + JMP libc_readlink(SB) +TEXT ·libc_readlinkat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_readlinkat(SB) +TEXT ·libc_rename_trampoline(SB),NOSPLIT,$0-0 + JMP libc_rename(SB) +TEXT ·libc_renameat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_renameat(SB) +TEXT ·libc_revoke_trampoline(SB),NOSPLIT,$0-0 + JMP libc_revoke(SB) +TEXT ·libc_rmdir_trampoline(SB),NOSPLIT,$0-0 + JMP libc_rmdir(SB) +TEXT ·libc_lseek_trampoline(SB),NOSPLIT,$0-0 + JMP libc_lseek(SB) +TEXT ·libc_select_trampoline(SB),NOSPLIT,$0-0 + JMP libc_select(SB) +TEXT ·libc_setegid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setegid(SB) +TEXT ·libc_seteuid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_seteuid(SB) +TEXT ·libc_setgid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setgid(SB) +TEXT ·libc_setlogin_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setlogin(SB) +TEXT ·libc_setpgid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setpgid(SB) +TEXT ·libc_setpriority_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setpriority(SB) +TEXT ·libc_setprivexec_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setprivexec(SB) +TEXT ·libc_setregid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setregid(SB) +TEXT ·libc_setreuid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setreuid(SB) +TEXT ·libc_setrlimit_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setrlimit(SB) +TEXT ·libc_setsid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setsid(SB) +TEXT ·libc_settimeofday_trampoline(SB),NOSPLIT,$0-0 + JMP libc_settimeofday(SB) +TEXT ·libc_setuid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setuid(SB) +TEXT ·libc_symlink_trampoline(SB),NOSPLIT,$0-0 + JMP libc_symlink(SB) +TEXT ·libc_symlinkat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_symlinkat(SB) +TEXT ·libc_sync_trampoline(SB),NOSPLIT,$0-0 + JMP libc_sync(SB) +TEXT ·libc_truncate_trampoline(SB),NOSPLIT,$0-0 + JMP libc_truncate(SB) +TEXT ·libc_umask_trampoline(SB),NOSPLIT,$0-0 + JMP libc_umask(SB) +TEXT ·libc_undelete_trampoline(SB),NOSPLIT,$0-0 + JMP libc_undelete(SB) +TEXT ·libc_unlink_trampoline(SB),NOSPLIT,$0-0 + JMP libc_unlink(SB) +TEXT ·libc_unlinkat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_unlinkat(SB) +TEXT ·libc_unmount_trampoline(SB),NOSPLIT,$0-0 + JMP libc_unmount(SB) +TEXT ·libc_write_trampoline(SB),NOSPLIT,$0-0 + JMP libc_write(SB) +TEXT ·libc_mmap_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mmap(SB) +TEXT ·libc_munmap_trampoline(SB),NOSPLIT,$0-0 + JMP libc_munmap(SB) +TEXT ·libc_gettimeofday_trampoline(SB),NOSPLIT,$0-0 + JMP libc_gettimeofday(SB) +TEXT ·libc_fstat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fstat(SB) +TEXT ·libc_fstatat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fstatat(SB) +TEXT ·libc_fstatfs_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fstatfs(SB) +TEXT ·libc_getfsstat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getfsstat(SB) +TEXT ·libc_lstat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_lstat(SB) +TEXT ·libc_stat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_stat(SB) +TEXT ·libc_statfs_trampoline(SB),NOSPLIT,$0-0 + JMP libc_statfs(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_11.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_11.go new file mode 100644 index 000000000..3fd0f3c85 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_11.go @@ -0,0 +1,1793 @@ +// go run mksyscall.go -tags darwin,arm64,!go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_arm64.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build darwin,arm64,!go1.12 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(ngid int, gid *_Gid_t) (n int, err error) { + r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { + r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { + r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, timeval *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fcntl(fd int, cmd int, arg int) (val int, err error) { + r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, behav int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mprotect(b []byte, prot int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Msync(b []byte, flags int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { + _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { + _, _, e1 := Syscall6(SYS_GETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe() (r int, w int, err error) { + r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) + r = int(r0) + w = int(r1) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attr) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attr) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attr) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attr) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func removexattr(path string, attr string, options int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attr) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fremovexattr(fd int, attr string, options int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attr) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func listxattr(path string, dest *byte, size int, options int) (sz int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) { + r0, _, e1 := Syscall6(SYS_FLISTXATTR, uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { + _, _, e1 := Syscall6(SYS_SETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kill(pid int, signum int, posix int) (err error) { + _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) { + _, _, e1 := Syscall6(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Access(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chflags(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chroot(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(fd int) (nfd int, err error) { + r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exchangedata(path1 string, path2 string, options int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path1) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(path2) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXCHANGEDATA, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + Syscall(SYS_EXIT, uintptr(code), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fpathconf(fd int, name int) (val int, err error) { + r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getdtablesize() (size int) { + r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) + size = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgid(pid int) (pgid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) + pgrp = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) + ppid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpriority(which int, who int) (prio int, err error) { + r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrusage(who int, rusage *Rusage) (err error) { + _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := RawSyscall(SYS_ISSETUGID, 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Link(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdir(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifo(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknod(path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pathconf(path string, name int) (val int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlink(path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rename(from string, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(fromfd int, from string, tofd int, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Revoke(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rmdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) + newoffset = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { + _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + _, _, e1 := Syscall(SYS_SETEGID, uintptr(egid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seteuid(euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setlogin(name string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpriority(which int, who int, prio int) (err error) { + _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setprivexec(flag int) (err error) { + _, _, e1 := Syscall(SYS_SETPRIVEXEC, uintptr(flag), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlink(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Undelete(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func gettimeofday(tp *Timeval) (sec int64, usec int32, err error) { + r0, r1, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + sec = int64(r0) + usec = int32(r1) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, stat *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(buf), uintptr(size), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, stat *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go index 67f3b4e5e..8f2691dee 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go @@ -1,7 +1,7 @@ -// go run mksyscall.go -tags darwin,arm64 syscall_bsd.go syscall_darwin.go syscall_darwin_arm64.go +// go run mksyscall.go -tags darwin,arm64,go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_arm64.go // Code generated by the command above; see README.md. DO NOT EDIT. -// +build darwin,arm64 +// +build darwin,arm64,go1.12 package unix @@ -15,7 +15,7 @@ var _ syscall.Errno // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + r0, _, e1 := syscall_rawSyscall(funcPC(libc_getgroups_trampoline), uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -23,20 +23,30 @@ func getgroups(ngid int, gid *_Gid_t) (n int, err error) { return } +func libc_getgroups_trampoline() + +//go:linkname libc_getgroups libc_getgroups +//go:cgo_import_dynamic libc_getgroups getgroups "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + _, _, e1 := syscall_rawSyscall(funcPC(libc_setgroups_trampoline), uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setgroups_trampoline() + +//go:linkname libc_setgroups libc_setgroups +//go:cgo_import_dynamic libc_setgroups setgroups "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { - r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + r0, _, e1 := syscall_syscall6(funcPC(libc_wait4_trampoline), uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) wpid = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -44,10 +54,15 @@ func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err return } +func libc_wait4_trampoline() + +//go:linkname libc_wait4 libc_wait4 +//go:cgo_import_dynamic libc_wait4 wait4 "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + r0, _, e1 := syscall_syscall(funcPC(libc_accept_trampoline), uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -55,30 +70,45 @@ func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { return } +func libc_accept_trampoline() + +//go:linkname libc_accept libc_accept +//go:cgo_import_dynamic libc_accept accept "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + _, _, e1 := syscall_syscall(funcPC(libc_bind_trampoline), uintptr(s), uintptr(addr), uintptr(addrlen)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_bind_trampoline() + +//go:linkname libc_bind libc_bind +//go:cgo_import_dynamic libc_bind bind "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + _, _, e1 := syscall_syscall(funcPC(libc_connect_trampoline), uintptr(s), uintptr(addr), uintptr(addrlen)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_connect_trampoline() + +//go:linkname libc_connect libc_connect +//go:cgo_import_dynamic libc_connect connect "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + r0, _, e1 := syscall_rawSyscall(funcPC(libc_socket_trampoline), uintptr(domain), uintptr(typ), uintptr(proto)) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -86,66 +116,101 @@ func socket(domain int, typ int, proto int) (fd int, err error) { return } +func libc_socket_trampoline() + +//go:linkname libc_socket libc_socket +//go:cgo_import_dynamic libc_socket socket "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + _, _, e1 := syscall_syscall6(funcPC(libc_getsockopt_trampoline), uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_getsockopt_trampoline() + +//go:linkname libc_getsockopt libc_getsockopt +//go:cgo_import_dynamic libc_getsockopt getsockopt "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + _, _, e1 := syscall_syscall6(funcPC(libc_setsockopt_trampoline), uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setsockopt_trampoline() + +//go:linkname libc_setsockopt libc_setsockopt +//go:cgo_import_dynamic libc_setsockopt setsockopt "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + _, _, e1 := syscall_rawSyscall(funcPC(libc_getpeername_trampoline), uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) if e1 != 0 { err = errnoErr(e1) } return } +func libc_getpeername_trampoline() + +//go:linkname libc_getpeername libc_getpeername +//go:cgo_import_dynamic libc_getpeername getpeername "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + _, _, e1 := syscall_rawSyscall(funcPC(libc_getsockname_trampoline), uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) if e1 != 0 { err = errnoErr(e1) } return } +func libc_getsockname_trampoline() + +//go:linkname libc_getsockname libc_getsockname +//go:cgo_import_dynamic libc_getsockname getsockname "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Shutdown(s int, how int) (err error) { - _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) + _, _, e1 := syscall_syscall(funcPC(libc_shutdown_trampoline), uintptr(s), uintptr(how), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_shutdown_trampoline() + +//go:linkname libc_shutdown libc_shutdown +//go:cgo_import_dynamic libc_shutdown shutdown "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + _, _, e1 := syscall_rawSyscall6(funcPC(libc_socketpair_trampoline), uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_socketpair_trampoline() + +//go:linkname libc_socketpair libc_socketpair +//go:cgo_import_dynamic libc_socketpair socketpair "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { @@ -155,7 +220,7 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + r0, _, e1 := syscall_syscall6(funcPC(libc_recvfrom_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -163,6 +228,11 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl return } +func libc_recvfrom_trampoline() + +//go:linkname libc_recvfrom libc_recvfrom +//go:cgo_import_dynamic libc_recvfrom recvfrom "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { @@ -172,17 +242,22 @@ func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) ( } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + _, _, e1 := syscall_syscall6(funcPC(libc_sendto_trampoline), uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_sendto_trampoline() + +//go:linkname libc_sendto libc_sendto +//go:cgo_import_dynamic libc_sendto sendto "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + r0, _, e1 := syscall_syscall(funcPC(libc_recvmsg_trampoline), uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -190,10 +265,15 @@ func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { return } +func libc_recvmsg_trampoline() + +//go:linkname libc_recvmsg libc_recvmsg +//go:cgo_import_dynamic libc_recvmsg recvmsg "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + r0, _, e1 := syscall_syscall(funcPC(libc_sendmsg_trampoline), uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -201,10 +281,15 @@ func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { return } +func libc_sendmsg_trampoline() + +//go:linkname libc_sendmsg libc_sendmsg +//go:cgo_import_dynamic libc_sendmsg sendmsg "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { - r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + r0, _, e1 := syscall_syscall6(funcPC(libc_kevent_trampoline), uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -212,6 +297,11 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne return } +func libc_kevent_trampoline() + +//go:linkname libc_kevent libc_kevent +//go:cgo_import_dynamic libc_kevent kevent "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { @@ -221,13 +311,18 @@ func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + _, _, e1 := syscall_syscall6(funcPC(libc___sysctl_trampoline), uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) if e1 != 0 { err = errnoErr(e1) } return } +func libc___sysctl_trampoline() + +//go:linkname libc___sysctl libc___sysctl +//go:cgo_import_dynamic libc___sysctl __sysctl "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func utimes(path string, timeval *[2]Timeval) (err error) { @@ -236,27 +331,37 @@ func utimes(path string, timeval *[2]Timeval) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + _, _, e1 := syscall_syscall(funcPC(libc_utimes_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_utimes_trampoline() + +//go:linkname libc_utimes libc_utimes +//go:cgo_import_dynamic libc_utimes utimes "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func futimes(fd int, timeval *[2]Timeval) (err error) { - _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + _, _, e1 := syscall_syscall(funcPC(libc_futimes_trampoline), uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_futimes_trampoline() + +//go:linkname libc_futimes libc_futimes +//go:cgo_import_dynamic libc_futimes futimes "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) + r0, _, e1 := syscall_syscall(funcPC(libc_fcntl_trampoline), uintptr(fd), uintptr(cmd), uintptr(arg)) val = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -264,10 +369,15 @@ func fcntl(fd int, cmd int, arg int) (val int, err error) { return } +func libc_fcntl_trampoline() + +//go:linkname libc_fcntl libc_fcntl +//go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + r0, _, e1 := syscall_syscall(funcPC(libc_poll_trampoline), uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -275,6 +385,11 @@ func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { return } +func libc_poll_trampoline() + +//go:linkname libc_poll libc_poll +//go:cgo_import_dynamic libc_poll poll "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Madvise(b []byte, behav int) (err error) { @@ -284,13 +399,18 @@ func Madvise(b []byte, behav int) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + _, _, e1 := syscall_syscall(funcPC(libc_madvise_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(behav)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_madvise_trampoline() + +//go:linkname libc_madvise libc_madvise +//go:cgo_import_dynamic libc_madvise madvise "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mlock(b []byte) (err error) { @@ -300,23 +420,33 @@ func Mlock(b []byte) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) + _, _, e1 := syscall_syscall(funcPC(libc_mlock_trampoline), uintptr(_p0), uintptr(len(b)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_mlock_trampoline() + +//go:linkname libc_mlock libc_mlock +//go:cgo_import_dynamic libc_mlock mlock "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mlockall(flags int) (err error) { - _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_mlockall_trampoline), uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_mlockall_trampoline() + +//go:linkname libc_mlockall libc_mlockall +//go:cgo_import_dynamic libc_mlockall mlockall "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mprotect(b []byte, prot int) (err error) { @@ -326,13 +456,18 @@ func Mprotect(b []byte, prot int) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + _, _, e1 := syscall_syscall(funcPC(libc_mprotect_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(prot)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_mprotect_trampoline() + +//go:linkname libc_mprotect libc_mprotect +//go:cgo_import_dynamic libc_mprotect mprotect "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Msync(b []byte, flags int) (err error) { @@ -342,13 +477,18 @@ func Msync(b []byte, flags int) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + _, _, e1 := syscall_syscall(funcPC(libc_msync_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(flags)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_msync_trampoline() + +//go:linkname libc_msync libc_msync +//go:cgo_import_dynamic libc_msync msync "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Munlock(b []byte) (err error) { @@ -358,37 +498,67 @@ func Munlock(b []byte) (err error) { } else { _p0 = unsafe.Pointer(&_zero) } - _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) + _, _, e1 := syscall_syscall(funcPC(libc_munlock_trampoline), uintptr(_p0), uintptr(len(b)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_munlock_trampoline() + +//go:linkname libc_munlock libc_munlock +//go:cgo_import_dynamic libc_munlock munlock "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Munlockall() (err error) { - _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_munlockall_trampoline), 0, 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_munlockall_trampoline() + +//go:linkname libc_munlockall libc_munlockall +//go:cgo_import_dynamic libc_munlockall munlockall "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) + _, _, e1 := syscall_syscall6(funcPC(libc_ptrace_trampoline), uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_ptrace_trampoline() + +//go:linkname libc_ptrace libc_ptrace +//go:cgo_import_dynamic libc_ptrace ptrace "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { + _, _, e1 := syscall_syscall6(funcPC(libc_getattrlist_trampoline), uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getattrlist_trampoline() + +//go:linkname libc_getattrlist libc_getattrlist +//go:cgo_import_dynamic libc_getattrlist getattrlist "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func pipe() (r int, w int, err error) { - r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) + r0, r1, e1 := syscall_rawSyscall(funcPC(libc_pipe_trampoline), 0, 0, 0) r = int(r0) w = int(r1) if e1 != 0 { @@ -397,6 +567,11 @@ func pipe() (r int, w int, err error) { return } +func libc_pipe_trampoline() + +//go:linkname libc_pipe libc_pipe +//go:cgo_import_dynamic libc_pipe pipe "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { @@ -410,7 +585,7 @@ func getxattr(path string, attr string, dest *byte, size int, position uint32, o if err != nil { return } - r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) + r0, _, e1 := syscall_syscall6(funcPC(libc_getxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) sz = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -418,6 +593,11 @@ func getxattr(path string, attr string, dest *byte, size int, position uint32, o return } +func libc_getxattr_trampoline() + +//go:linkname libc_getxattr libc_getxattr +//go:cgo_import_dynamic libc_getxattr getxattr "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { @@ -426,7 +606,7 @@ func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, optio if err != nil { return } - r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) + r0, _, e1 := syscall_syscall6(funcPC(libc_fgetxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) sz = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -434,6 +614,11 @@ func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, optio return } +func libc_fgetxattr_trampoline() + +//go:linkname libc_fgetxattr libc_fgetxattr +//go:cgo_import_dynamic libc_fgetxattr fgetxattr "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) { @@ -447,13 +632,18 @@ func setxattr(path string, attr string, data *byte, size int, position uint32, o if err != nil { return } - _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) + _, _, e1 := syscall_syscall6(funcPC(libc_setxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setxattr_trampoline() + +//go:linkname libc_setxattr libc_setxattr +//go:cgo_import_dynamic libc_setxattr setxattr "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) { @@ -462,13 +652,18 @@ func fsetxattr(fd int, attr string, data *byte, size int, position uint32, optio if err != nil { return } - _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) + _, _, e1 := syscall_syscall6(funcPC(libc_fsetxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_fsetxattr_trampoline() + +//go:linkname libc_fsetxattr libc_fsetxattr +//go:cgo_import_dynamic libc_fsetxattr fsetxattr "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func removexattr(path string, attr string, options int) (err error) { @@ -482,13 +677,18 @@ func removexattr(path string, attr string, options int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) + _, _, e1 := syscall_syscall(funcPC(libc_removexattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_removexattr_trampoline() + +//go:linkname libc_removexattr libc_removexattr +//go:cgo_import_dynamic libc_removexattr removexattr "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func fremovexattr(fd int, attr string, options int) (err error) { @@ -497,13 +697,18 @@ func fremovexattr(fd int, attr string, options int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options)) + _, _, e1 := syscall_syscall(funcPC(libc_fremovexattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_fremovexattr_trampoline() + +//go:linkname libc_fremovexattr libc_fremovexattr +//go:cgo_import_dynamic libc_fremovexattr fremovexattr "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func listxattr(path string, dest *byte, size int, options int) (sz int, err error) { @@ -512,7 +717,7 @@ func listxattr(path string, dest *byte, size int, options int) (sz int, err erro if err != nil { return } - r0, _, e1 := Syscall6(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) + r0, _, e1 := syscall_syscall6(funcPC(libc_listxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) sz = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -520,10 +725,15 @@ func listxattr(path string, dest *byte, size int, options int) (sz int, err erro return } +func libc_listxattr_trampoline() + +//go:linkname libc_listxattr libc_listxattr +//go:cgo_import_dynamic libc_listxattr listxattr "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) { - r0, _, e1 := Syscall6(SYS_FLISTXATTR, uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) + r0, _, e1 := syscall_syscall6(funcPC(libc_flistxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) sz = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -531,26 +741,71 @@ func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) { return } +func libc_flistxattr_trampoline() + +//go:linkname libc_flistxattr libc_flistxattr +//go:cgo_import_dynamic libc_flistxattr flistxattr "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func kill(pid int, signum int, posix int) (err error) { - _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix)) +func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { + _, _, e1 := syscall_syscall6(funcPC(libc_setattrlist_trampoline), uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setattrlist_trampoline() + +//go:linkname libc_setattrlist libc_setattrlist +//go:cgo_import_dynamic libc_setattrlist setattrlist "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kill(pid int, signum int, posix int) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_kill_trampoline), uintptr(pid), uintptr(signum), uintptr(posix)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_kill_trampoline() + +//go:linkname libc_kill libc_kill +//go:cgo_import_dynamic libc_kill kill "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + _, _, e1 := syscall_syscall(funcPC(libc_ioctl_trampoline), uintptr(fd), uintptr(req), uintptr(arg)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_ioctl_trampoline() + +//go:linkname libc_ioctl libc_ioctl +//go:cgo_import_dynamic libc_ioctl ioctl "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) { + _, _, e1 := syscall_syscall6(funcPC(libc_sendfile_trampoline), uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_sendfile_trampoline() + +//go:linkname libc_sendfile libc_sendfile +//go:cgo_import_dynamic libc_sendfile sendfile "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Access(path string, mode uint32) (err error) { @@ -559,23 +814,33 @@ func Access(path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + _, _, e1 := syscall_syscall(funcPC(libc_access_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_access_trampoline() + +//go:linkname libc_access libc_access +//go:cgo_import_dynamic libc_access access "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + _, _, e1 := syscall_syscall(funcPC(libc_adjtime_trampoline), uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_adjtime_trampoline() + +//go:linkname libc_adjtime libc_adjtime +//go:cgo_import_dynamic libc_adjtime adjtime "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Chdir(path string) (err error) { @@ -584,13 +849,18 @@ func Chdir(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_chdir_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_chdir_trampoline() + +//go:linkname libc_chdir libc_chdir +//go:cgo_import_dynamic libc_chdir chdir "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Chflags(path string, flags int) (err error) { @@ -599,13 +869,18 @@ func Chflags(path string, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + _, _, e1 := syscall_syscall(funcPC(libc_chflags_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_chflags_trampoline() + +//go:linkname libc_chflags libc_chflags +//go:cgo_import_dynamic libc_chflags chflags "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Chmod(path string, mode uint32) (err error) { @@ -614,13 +889,18 @@ func Chmod(path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + _, _, e1 := syscall_syscall(funcPC(libc_chmod_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_chmod_trampoline() + +//go:linkname libc_chmod libc_chmod +//go:cgo_import_dynamic libc_chmod chmod "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Chown(path string, uid int, gid int) (err error) { @@ -629,13 +909,18 @@ func Chown(path string, uid int, gid int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + _, _, e1 := syscall_syscall(funcPC(libc_chown_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_chown_trampoline() + +//go:linkname libc_chown libc_chown +//go:cgo_import_dynamic libc_chown chown "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Chroot(path string) (err error) { @@ -644,27 +929,37 @@ func Chroot(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_chroot_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_chroot_trampoline() + +//go:linkname libc_chroot libc_chroot +//go:cgo_import_dynamic libc_chroot chroot "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Close(fd int) (err error) { - _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_close_trampoline), uintptr(fd), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_close_trampoline() + +//go:linkname libc_close libc_close +//go:cgo_import_dynamic libc_close close "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Dup(fd int) (nfd int, err error) { - r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) + r0, _, e1 := syscall_syscall(funcPC(libc_dup_trampoline), uintptr(fd), 0, 0) nfd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -672,16 +967,26 @@ func Dup(fd int) (nfd int, err error) { return } +func libc_dup_trampoline() + +//go:linkname libc_dup libc_dup +//go:cgo_import_dynamic libc_dup dup "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Dup2(from int, to int) (err error) { - _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) + _, _, e1 := syscall_syscall(funcPC(libc_dup2_trampoline), uintptr(from), uintptr(to), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_dup2_trampoline() + +//go:linkname libc_dup2 libc_dup2 +//go:cgo_import_dynamic libc_dup2 dup2 "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Exchangedata(path1 string, path2 string, options int) (err error) { @@ -695,20 +1000,30 @@ func Exchangedata(path1 string, path2 string, options int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_EXCHANGEDATA, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) + _, _, e1 := syscall_syscall(funcPC(libc_exchangedata_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_exchangedata_trampoline() + +//go:linkname libc_exchangedata libc_exchangedata +//go:cgo_import_dynamic libc_exchangedata exchangedata "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Exit(code int) { - Syscall(SYS_EXIT, uintptr(code), 0, 0) + syscall_syscall(funcPC(libc_exit_trampoline), uintptr(code), 0, 0) return } +func libc_exit_trampoline() + +//go:linkname libc_exit libc_exit +//go:cgo_import_dynamic libc_exit exit "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { @@ -717,43 +1032,63 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + _, _, e1 := syscall_syscall6(funcPC(libc_faccessat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_faccessat_trampoline() + +//go:linkname libc_faccessat libc_faccessat +//go:cgo_import_dynamic libc_faccessat faccessat "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchdir(fd int) (err error) { - _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_fchdir_trampoline), uintptr(fd), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_fchdir_trampoline() + +//go:linkname libc_fchdir libc_fchdir +//go:cgo_import_dynamic libc_fchdir fchdir "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchflags(fd int, flags int) (err error) { - _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) + _, _, e1 := syscall_syscall(funcPC(libc_fchflags_trampoline), uintptr(fd), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_fchflags_trampoline() + +//go:linkname libc_fchflags libc_fchflags +//go:cgo_import_dynamic libc_fchflags fchflags "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) + _, _, e1 := syscall_syscall(funcPC(libc_fchmod_trampoline), uintptr(fd), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_fchmod_trampoline() + +//go:linkname libc_fchmod libc_fchmod +//go:cgo_import_dynamic libc_fchmod fchmod "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { @@ -762,23 +1097,33 @@ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + _, _, e1 := syscall_syscall6(funcPC(libc_fchmodat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_fchmodat_trampoline() + +//go:linkname libc_fchmodat libc_fchmodat +//go:cgo_import_dynamic libc_fchmodat fchmodat "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + _, _, e1 := syscall_syscall(funcPC(libc_fchown_trampoline), uintptr(fd), uintptr(uid), uintptr(gid)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_fchown_trampoline() + +//go:linkname libc_fchown libc_fchown +//go:cgo_import_dynamic libc_fchown fchown "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { @@ -787,27 +1132,37 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + _, _, e1 := syscall_syscall6(funcPC(libc_fchownat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_fchownat_trampoline() + +//go:linkname libc_fchownat libc_fchownat +//go:cgo_import_dynamic libc_fchownat fchownat "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Flock(fd int, how int) (err error) { - _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) + _, _, e1 := syscall_syscall(funcPC(libc_flock_trampoline), uintptr(fd), uintptr(how), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_flock_trampoline() + +//go:linkname libc_flock libc_flock +//go:cgo_import_dynamic libc_flock flock "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) + r0, _, e1 := syscall_syscall(funcPC(libc_fpathconf_trampoline), uintptr(fd), uintptr(name), 0) val = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -815,114 +1170,97 @@ func Fpathconf(fd int, name int) (val int, err error) { return } -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func libc_fpathconf_trampoline() -func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Fstatfs(fd int, stat *Statfs_t) (err error) { - _, _, e1 := Syscall(SYS_FSTATFS64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} +//go:linkname libc_fpathconf libc_fpathconf +//go:cgo_import_dynamic libc_fpathconf fpathconf "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Fsync(fd int) (err error) { - _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_fsync_trampoline), uintptr(fd), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_fsync_trampoline() + +//go:linkname libc_fsync libc_fsync +//go:cgo_import_dynamic libc_fsync fsync "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) + _, _, e1 := syscall_syscall(funcPC(libc_ftruncate_trampoline), uintptr(fd), uintptr(length), 0) if e1 != 0 { err = errnoErr(e1) } return } -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func libc_ftruncate_trampoline() -func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { - _p0 = unsafe.Pointer(&buf[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_GETDIRENTRIES64, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} +//go:linkname libc_ftruncate libc_ftruncate +//go:cgo_import_dynamic libc_ftruncate ftruncate "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getdtablesize() (size int) { - r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) + r0, _, _ := syscall_syscall(funcPC(libc_getdtablesize_trampoline), 0, 0, 0) size = int(r0) return } +func libc_getdtablesize_trampoline() + +//go:linkname libc_getdtablesize libc_getdtablesize +//go:cgo_import_dynamic libc_getdtablesize getdtablesize "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getegid() (egid int) { - r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(funcPC(libc_getegid_trampoline), 0, 0, 0) egid = int(r0) return } +func libc_getegid_trampoline() + +//go:linkname libc_getegid libc_getegid +//go:cgo_import_dynamic libc_getegid getegid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Geteuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(funcPC(libc_geteuid_trampoline), 0, 0, 0) uid = int(r0) return } +func libc_geteuid_trampoline() + +//go:linkname libc_geteuid libc_geteuid +//go:cgo_import_dynamic libc_geteuid geteuid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getgid() (gid int) { - r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(funcPC(libc_getgid_trampoline), 0, 0, 0) gid = int(r0) return } +func libc_getgid_trampoline() + +//go:linkname libc_getgid libc_getgid +//go:cgo_import_dynamic libc_getgid getgid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) + r0, _, e1 := syscall_rawSyscall(funcPC(libc_getpgid_trampoline), uintptr(pid), 0, 0) pgid = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -930,34 +1268,54 @@ func Getpgid(pid int) (pgid int, err error) { return } +func libc_getpgid_trampoline() + +//go:linkname libc_getpgid libc_getpgid +//go:cgo_import_dynamic libc_getpgid getpgid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getpgrp() (pgrp int) { - r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(funcPC(libc_getpgrp_trampoline), 0, 0, 0) pgrp = int(r0) return } +func libc_getpgrp_trampoline() + +//go:linkname libc_getpgrp libc_getpgrp +//go:cgo_import_dynamic libc_getpgrp getpgrp "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getpid() (pid int) { - r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(funcPC(libc_getpid_trampoline), 0, 0, 0) pid = int(r0) return } +func libc_getpid_trampoline() + +//go:linkname libc_getpid libc_getpid +//go:cgo_import_dynamic libc_getpid getpid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getppid() (ppid int) { - r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(funcPC(libc_getppid_trampoline), 0, 0, 0) ppid = int(r0) return } +func libc_getppid_trampoline() + +//go:linkname libc_getppid libc_getppid +//go:cgo_import_dynamic libc_getppid getppid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getpriority(which int, who int) (prio int, err error) { - r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) + r0, _, e1 := syscall_syscall(funcPC(libc_getpriority_trampoline), uintptr(which), uintptr(who), 0) prio = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -965,30 +1323,45 @@ func Getpriority(which int, who int) (prio int, err error) { return } +func libc_getpriority_trampoline() + +//go:linkname libc_getpriority libc_getpriority +//go:cgo_import_dynamic libc_getpriority getpriority "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + _, _, e1 := syscall_rawSyscall(funcPC(libc_getrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_getrlimit_trampoline() + +//go:linkname libc_getrlimit libc_getrlimit +//go:cgo_import_dynamic libc_getrlimit getrlimit "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + _, _, e1 := syscall_rawSyscall(funcPC(libc_getrusage_trampoline), uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_getrusage_trampoline() + +//go:linkname libc_getrusage libc_getrusage +//go:cgo_import_dynamic libc_getrusage getrusage "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getsid(pid int) (sid int, err error) { - r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + r0, _, e1 := syscall_rawSyscall(funcPC(libc_getsid_trampoline), uintptr(pid), 0, 0) sid = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -996,26 +1369,41 @@ func Getsid(pid int) (sid int, err error) { return } +func libc_getsid_trampoline() + +//go:linkname libc_getsid libc_getsid +//go:cgo_import_dynamic libc_getsid getsid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Getuid() (uid int) { - r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(funcPC(libc_getuid_trampoline), 0, 0, 0) uid = int(r0) return } +func libc_getuid_trampoline() + +//go:linkname libc_getuid libc_getuid +//go:cgo_import_dynamic libc_getuid getuid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Issetugid() (tainted bool) { - r0, _, _ := RawSyscall(SYS_ISSETUGID, 0, 0, 0) + r0, _, _ := syscall_rawSyscall(funcPC(libc_issetugid_trampoline), 0, 0, 0) tainted = bool(r0 != 0) return } +func libc_issetugid_trampoline() + +//go:linkname libc_issetugid libc_issetugid +//go:cgo_import_dynamic libc_issetugid issetugid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Kqueue() (fd int, err error) { - r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) + r0, _, e1 := syscall_syscall(funcPC(libc_kqueue_trampoline), 0, 0, 0) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1023,6 +1411,11 @@ func Kqueue() (fd int, err error) { return } +func libc_kqueue_trampoline() + +//go:linkname libc_kqueue libc_kqueue +//go:cgo_import_dynamic libc_kqueue kqueue "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Lchown(path string, uid int, gid int) (err error) { @@ -1031,13 +1424,18 @@ func Lchown(path string, uid int, gid int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + _, _, e1 := syscall_syscall(funcPC(libc_lchown_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_lchown_trampoline() + +//go:linkname libc_lchown libc_lchown +//go:cgo_import_dynamic libc_lchown lchown "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Link(path string, link string) (err error) { @@ -1051,13 +1449,18 @@ func Link(path string, link string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + _, _, e1 := syscall_syscall(funcPC(libc_link_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_link_trampoline() + +//go:linkname libc_link libc_link +//go:cgo_import_dynamic libc_link link "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { @@ -1071,37 +1474,32 @@ func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err er if err != nil { return } - _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + _, _, e1 := syscall_syscall6(funcPC(libc_linkat_trampoline), uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_linkat_trampoline() + +//go:linkname libc_linkat libc_linkat +//go:cgo_import_dynamic libc_linkat linkat "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Listen(s int, backlog int) (err error) { - _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) + _, _, e1 := syscall_syscall(funcPC(libc_listen_trampoline), uintptr(s), uintptr(backlog), 0) if e1 != 0 { err = errnoErr(e1) } return } -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func libc_listen_trampoline() -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} +//go:linkname libc_listen libc_listen +//go:cgo_import_dynamic libc_listen listen "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1111,13 +1509,18 @@ func Mkdir(path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + _, _, e1 := syscall_syscall(funcPC(libc_mkdir_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_mkdir_trampoline() + +//go:linkname libc_mkdir libc_mkdir +//go:cgo_import_dynamic libc_mkdir mkdir "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mkdirat(dirfd int, path string, mode uint32) (err error) { @@ -1126,13 +1529,18 @@ func Mkdirat(dirfd int, path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + _, _, e1 := syscall_syscall(funcPC(libc_mkdirat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_mkdirat_trampoline() + +//go:linkname libc_mkdirat libc_mkdirat +//go:cgo_import_dynamic libc_mkdirat mkdirat "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mkfifo(path string, mode uint32) (err error) { @@ -1141,13 +1549,18 @@ func Mkfifo(path string, mode uint32) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + _, _, e1 := syscall_syscall(funcPC(libc_mkfifo_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_mkfifo_trampoline() + +//go:linkname libc_mkfifo libc_mkfifo +//go:cgo_import_dynamic libc_mkfifo mkfifo "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Mknod(path string, mode uint32, dev int) (err error) { @@ -1156,13 +1569,18 @@ func Mknod(path string, mode uint32, dev int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + _, _, e1 := syscall_syscall(funcPC(libc_mknod_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_mknod_trampoline() + +//go:linkname libc_mknod libc_mknod +//go:cgo_import_dynamic libc_mknod mknod "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Open(path string, mode int, perm uint32) (fd int, err error) { @@ -1171,7 +1589,7 @@ func Open(path string, mode int, perm uint32) (fd int, err error) { if err != nil { return } - r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + r0, _, e1 := syscall_syscall(funcPC(libc_open_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1179,6 +1597,11 @@ func Open(path string, mode int, perm uint32) (fd int, err error) { return } +func libc_open_trampoline() + +//go:linkname libc_open libc_open +//go:cgo_import_dynamic libc_open open "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { @@ -1187,7 +1610,7 @@ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { if err != nil { return } - r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + r0, _, e1 := syscall_syscall6(funcPC(libc_openat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) fd = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1195,6 +1618,11 @@ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { return } +func libc_openat_trampoline() + +//go:linkname libc_openat libc_openat +//go:cgo_import_dynamic libc_openat openat "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Pathconf(path string, name int) (val int, err error) { @@ -1203,7 +1631,7 @@ func Pathconf(path string, name int) (val int, err error) { if err != nil { return } - r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + r0, _, e1 := syscall_syscall(funcPC(libc_pathconf_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) val = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1211,6 +1639,11 @@ func Pathconf(path string, name int) (val int, err error) { return } +func libc_pathconf_trampoline() + +//go:linkname libc_pathconf libc_pathconf +//go:cgo_import_dynamic libc_pathconf pathconf "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Pread(fd int, p []byte, offset int64) (n int, err error) { @@ -1220,7 +1653,7 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + r0, _, e1 := syscall_syscall6(funcPC(libc_pread_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1228,6 +1661,11 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) { return } +func libc_pread_trampoline() + +//go:linkname libc_pread libc_pread +//go:cgo_import_dynamic libc_pread pread "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Pwrite(fd int, p []byte, offset int64) (n int, err error) { @@ -1237,7 +1675,7 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + r0, _, e1 := syscall_syscall6(funcPC(libc_pwrite_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1245,6 +1683,11 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) { return } +func libc_pwrite_trampoline() + +//go:linkname libc_pwrite libc_pwrite +//go:cgo_import_dynamic libc_pwrite pwrite "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func read(fd int, p []byte) (n int, err error) { @@ -1254,7 +1697,7 @@ func read(fd int, p []byte) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) + r0, _, e1 := syscall_syscall(funcPC(libc_read_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1262,6 +1705,11 @@ func read(fd int, p []byte) (n int, err error) { return } +func libc_read_trampoline() + +//go:linkname libc_read libc_read +//go:cgo_import_dynamic libc_read read "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Readlink(path string, buf []byte) (n int, err error) { @@ -1276,7 +1724,7 @@ func Readlink(path string, buf []byte) (n int, err error) { } else { _p1 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + r0, _, e1 := syscall_syscall(funcPC(libc_readlink_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1284,6 +1732,11 @@ func Readlink(path string, buf []byte) (n int, err error) { return } +func libc_readlink_trampoline() + +//go:linkname libc_readlink libc_readlink +//go:cgo_import_dynamic libc_readlink readlink "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { @@ -1298,7 +1751,7 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { } else { _p1 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + r0, _, e1 := syscall_syscall6(funcPC(libc_readlinkat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1306,6 +1759,11 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { return } +func libc_readlinkat_trampoline() + +//go:linkname libc_readlinkat libc_readlinkat +//go:cgo_import_dynamic libc_readlinkat readlinkat "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Rename(from string, to string) (err error) { @@ -1319,13 +1777,18 @@ func Rename(from string, to string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + _, _, e1 := syscall_syscall(funcPC(libc_rename_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_rename_trampoline() + +//go:linkname libc_rename libc_rename +//go:cgo_import_dynamic libc_rename rename "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Renameat(fromfd int, from string, tofd int, to string) (err error) { @@ -1339,13 +1802,18 @@ func Renameat(fromfd int, from string, tofd int, to string) (err error) { if err != nil { return } - _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + _, _, e1 := syscall_syscall6(funcPC(libc_renameat_trampoline), uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_renameat_trampoline() + +//go:linkname libc_renameat libc_renameat +//go:cgo_import_dynamic libc_renameat renameat "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Revoke(path string) (err error) { @@ -1354,13 +1822,18 @@ func Revoke(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_revoke_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_revoke_trampoline() + +//go:linkname libc_revoke libc_revoke +//go:cgo_import_dynamic libc_revoke revoke "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Rmdir(path string) (err error) { @@ -1369,17 +1842,22 @@ func Rmdir(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_rmdir_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_rmdir_trampoline() + +//go:linkname libc_rmdir libc_rmdir +//go:cgo_import_dynamic libc_rmdir rmdir "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) + r0, _, e1 := syscall_syscall(funcPC(libc_lseek_trampoline), uintptr(fd), uintptr(offset), uintptr(whence)) newoffset = int64(r0) if e1 != 0 { err = errnoErr(e1) @@ -1387,46 +1865,71 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { return } +func libc_lseek_trampoline() + +//go:linkname libc_lseek libc_lseek +//go:cgo_import_dynamic libc_lseek lseek "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { - _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + _, _, e1 := syscall_syscall6(funcPC(libc_select_trampoline), uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_select_trampoline() + +//go:linkname libc_select libc_select +//go:cgo_import_dynamic libc_select select "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setegid(egid int) (err error) { - _, _, e1 := Syscall(SYS_SETEGID, uintptr(egid), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_setegid_trampoline), uintptr(egid), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setegid_trampoline() + +//go:linkname libc_setegid libc_setegid +//go:cgo_import_dynamic libc_setegid setegid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Seteuid(euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) + _, _, e1 := syscall_rawSyscall(funcPC(libc_seteuid_trampoline), uintptr(euid), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_seteuid_trampoline() + +//go:linkname libc_seteuid libc_seteuid +//go:cgo_import_dynamic libc_seteuid seteuid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setgid(gid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) + _, _, e1 := syscall_rawSyscall(funcPC(libc_setgid_trampoline), uintptr(gid), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setgid_trampoline() + +//go:linkname libc_setgid libc_setgid +//go:cgo_import_dynamic libc_setgid setgid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setlogin(name string) (err error) { @@ -1435,77 +1938,112 @@ func Setlogin(name string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_setlogin_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setlogin_trampoline() + +//go:linkname libc_setlogin libc_setlogin +//go:cgo_import_dynamic libc_setlogin setlogin "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) + _, _, e1 := syscall_rawSyscall(funcPC(libc_setpgid_trampoline), uintptr(pid), uintptr(pgid), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setpgid_trampoline() + +//go:linkname libc_setpgid libc_setpgid +//go:cgo_import_dynamic libc_setpgid setpgid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) + _, _, e1 := syscall_syscall(funcPC(libc_setpriority_trampoline), uintptr(which), uintptr(who), uintptr(prio)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setpriority_trampoline() + +//go:linkname libc_setpriority libc_setpriority +//go:cgo_import_dynamic libc_setpriority setpriority "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setprivexec(flag int) (err error) { - _, _, e1 := Syscall(SYS_SETPRIVEXEC, uintptr(flag), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_setprivexec_trampoline), uintptr(flag), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setprivexec_trampoline() + +//go:linkname libc_setprivexec libc_setprivexec +//go:cgo_import_dynamic libc_setprivexec setprivexec "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setregid(rgid int, egid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + _, _, e1 := syscall_rawSyscall(funcPC(libc_setregid_trampoline), uintptr(rgid), uintptr(egid), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setregid_trampoline() + +//go:linkname libc_setregid libc_setregid +//go:cgo_import_dynamic libc_setregid setregid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + _, _, e1 := syscall_rawSyscall(funcPC(libc_setreuid_trampoline), uintptr(ruid), uintptr(euid), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setreuid_trampoline() + +//go:linkname libc_setreuid libc_setreuid +//go:cgo_import_dynamic libc_setreuid setreuid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + _, _, e1 := syscall_rawSyscall(funcPC(libc_setrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_setrlimit_trampoline() + +//go:linkname libc_setrlimit libc_setrlimit +//go:cgo_import_dynamic libc_setrlimit setrlimit "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setsid() (pid int, err error) { - r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) + r0, _, e1 := syscall_rawSyscall(funcPC(libc_setsid_trampoline), 0, 0, 0) pid = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1513,55 +2051,40 @@ func Setsid() (pid int, err error) { return } +func libc_setsid_trampoline() + +//go:linkname libc_setsid libc_setsid +//go:cgo_import_dynamic libc_setsid setsid "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Settimeofday(tp *Timeval) (err error) { - _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + _, _, e1 := syscall_rawSyscall(funcPC(libc_settimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_settimeofday_trampoline() + +//go:linkname libc_settimeofday libc_settimeofday +//go:cgo_import_dynamic libc_settimeofday settimeofday "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Setuid(uid int) (err error) { - _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) + _, _, e1 := syscall_rawSyscall(funcPC(libc_setuid_trampoline), uintptr(uid), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func libc_setuid_trampoline() -func Stat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -func Statfs(path string, stat *Statfs_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} +//go:linkname libc_setuid libc_setuid +//go:cgo_import_dynamic libc_setuid setuid "/usr/lib/libSystem.B.dylib" // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT @@ -1576,13 +2099,18 @@ func Symlink(path string, link string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + _, _, e1 := syscall_syscall(funcPC(libc_symlink_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_symlink_trampoline() + +//go:linkname libc_symlink libc_symlink +//go:cgo_import_dynamic libc_symlink symlink "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { @@ -1596,23 +2124,33 @@ func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + _, _, e1 := syscall_syscall(funcPC(libc_symlinkat_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) if e1 != 0 { err = errnoErr(e1) } return } +func libc_symlinkat_trampoline() + +//go:linkname libc_symlinkat libc_symlinkat +//go:cgo_import_dynamic libc_symlinkat symlinkat "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Sync() (err error) { - _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_sync_trampoline), 0, 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_sync_trampoline() + +//go:linkname libc_sync libc_sync +//go:cgo_import_dynamic libc_sync sync "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Truncate(path string, length int64) (err error) { @@ -1621,21 +2159,31 @@ func Truncate(path string, length int64) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + _, _, e1 := syscall_syscall(funcPC(libc_truncate_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_truncate_trampoline() + +//go:linkname libc_truncate libc_truncate +//go:cgo_import_dynamic libc_truncate truncate "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Umask(newmask int) (oldmask int) { - r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) + r0, _, _ := syscall_syscall(funcPC(libc_umask_trampoline), uintptr(newmask), 0, 0) oldmask = int(r0) return } +func libc_umask_trampoline() + +//go:linkname libc_umask libc_umask +//go:cgo_import_dynamic libc_umask umask "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Undelete(path string) (err error) { @@ -1644,13 +2192,18 @@ func Undelete(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_undelete_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_undelete_trampoline() + +//go:linkname libc_undelete libc_undelete +//go:cgo_import_dynamic libc_undelete undelete "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Unlink(path string) (err error) { @@ -1659,13 +2212,18 @@ func Unlink(path string) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) + _, _, e1 := syscall_syscall(funcPC(libc_unlink_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_unlink_trampoline() + +//go:linkname libc_unlink libc_unlink +//go:cgo_import_dynamic libc_unlink unlink "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Unlinkat(dirfd int, path string, flags int) (err error) { @@ -1674,13 +2232,18 @@ func Unlinkat(dirfd int, path string, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + _, _, e1 := syscall_syscall(funcPC(libc_unlinkat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) if e1 != 0 { err = errnoErr(e1) } return } +func libc_unlinkat_trampoline() + +//go:linkname libc_unlinkat libc_unlinkat +//go:cgo_import_dynamic libc_unlinkat unlinkat "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Unmount(path string, flags int) (err error) { @@ -1689,13 +2252,18 @@ func Unmount(path string, flags int) (err error) { if err != nil { return } - _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + _, _, e1 := syscall_syscall(funcPC(libc_unmount_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_unmount_trampoline() + +//go:linkname libc_unmount libc_unmount +//go:cgo_import_dynamic libc_unmount unmount "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func write(fd int, p []byte) (n int, err error) { @@ -1705,7 +2273,7 @@ func write(fd int, p []byte) (n int, err error) { } else { _p0 = unsafe.Pointer(&_zero) } - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + r0, _, e1 := syscall_syscall(funcPC(libc_write_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p))) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1713,10 +2281,15 @@ func write(fd int, p []byte) (n int, err error) { return } +func libc_write_trampoline() + +//go:linkname libc_write libc_write +//go:cgo_import_dynamic libc_write write "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) + r0, _, e1 := syscall_syscall6(funcPC(libc_mmap_trampoline), uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) ret = uintptr(r0) if e1 != 0 { err = errnoErr(e1) @@ -1724,20 +2297,30 @@ func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) ( return } +func libc_mmap_trampoline() + +//go:linkname libc_mmap libc_mmap +//go:cgo_import_dynamic libc_mmap mmap "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) + _, _, e1 := syscall_syscall(funcPC(libc_munmap_trampoline), uintptr(addr), uintptr(length), 0) if e1 != 0 { err = errnoErr(e1) } return } +func libc_munmap_trampoline() + +//go:linkname libc_munmap libc_munmap +//go:cgo_import_dynamic libc_munmap munmap "/usr/lib/libSystem.B.dylib" + // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func readlen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + r0, _, e1 := syscall_syscall(funcPC(libc_read_trampoline), uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1748,7 +2331,7 @@ func readlen(fd int, buf *byte, nbuf int) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + r0, _, e1 := syscall_syscall(funcPC(libc_write_trampoline), uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) n = int(r0) if e1 != 0 { err = errnoErr(e1) @@ -1759,7 +2342,7 @@ func writelen(fd int, buf *byte, nbuf int) (n int, err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func gettimeofday(tp *Timeval) (sec int64, usec int32, err error) { - r0, r1, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + r0, r1, e1 := syscall_rawSyscall(funcPC(libc_gettimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0) sec = int64(r0) usec = int32(r1) if e1 != 0 { @@ -1767,3 +2350,134 @@ func gettimeofday(tp *Timeval) (sec int64, usec int32, err error) { } return } + +func libc_gettimeofday_trampoline() + +//go:linkname libc_gettimeofday libc_gettimeofday +//go:cgo_import_dynamic libc_gettimeofday gettimeofday "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_fstat_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fstat_trampoline() + +//go:linkname libc_fstat libc_fstat +//go:cgo_import_dynamic libc_fstat fstat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(funcPC(libc_fstatat_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fstatat_trampoline() + +//go:linkname libc_fstatat libc_fstatat +//go:cgo_import_dynamic libc_fstatat fstatat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, stat *Statfs_t) (err error) { + _, _, e1 := syscall_syscall(funcPC(libc_fstatfs_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_fstatfs_trampoline() + +//go:linkname libc_fstatfs libc_fstatfs +//go:cgo_import_dynamic libc_fstatfs fstatfs "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(funcPC(libc_getfsstat_trampoline), uintptr(buf), uintptr(size), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_getfsstat_trampoline() + +//go:linkname libc_getfsstat libc_getfsstat +//go:cgo_import_dynamic libc_getfsstat getfsstat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_lstat_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_lstat_trampoline() + +//go:linkname libc_lstat libc_lstat +//go:cgo_import_dynamic libc_lstat lstat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_stat_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_stat_trampoline() + +//go:linkname libc_stat libc_stat +//go:cgo_import_dynamic libc_stat stat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, stat *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(funcPC(libc_statfs_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func libc_statfs_trampoline() + +//go:linkname libc_statfs libc_statfs +//go:cgo_import_dynamic libc_statfs statfs "/usr/lib/libSystem.B.dylib" diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s new file mode 100644 index 000000000..61dc0d4c1 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s @@ -0,0 +1,282 @@ +// go run mkasm_darwin.go arm64 +// Code generated by the command above; DO NOT EDIT. + +// +build go1.12 + +#include "textflag.h" +TEXT ·libc_getgroups_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getgroups(SB) +TEXT ·libc_setgroups_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setgroups(SB) +TEXT ·libc_wait4_trampoline(SB),NOSPLIT,$0-0 + JMP libc_wait4(SB) +TEXT ·libc_accept_trampoline(SB),NOSPLIT,$0-0 + JMP libc_accept(SB) +TEXT ·libc_bind_trampoline(SB),NOSPLIT,$0-0 + JMP libc_bind(SB) +TEXT ·libc_connect_trampoline(SB),NOSPLIT,$0-0 + JMP libc_connect(SB) +TEXT ·libc_socket_trampoline(SB),NOSPLIT,$0-0 + JMP libc_socket(SB) +TEXT ·libc_getsockopt_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getsockopt(SB) +TEXT ·libc_setsockopt_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setsockopt(SB) +TEXT ·libc_getpeername_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getpeername(SB) +TEXT ·libc_getsockname_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getsockname(SB) +TEXT ·libc_shutdown_trampoline(SB),NOSPLIT,$0-0 + JMP libc_shutdown(SB) +TEXT ·libc_socketpair_trampoline(SB),NOSPLIT,$0-0 + JMP libc_socketpair(SB) +TEXT ·libc_recvfrom_trampoline(SB),NOSPLIT,$0-0 + JMP libc_recvfrom(SB) +TEXT ·libc_sendto_trampoline(SB),NOSPLIT,$0-0 + JMP libc_sendto(SB) +TEXT ·libc_recvmsg_trampoline(SB),NOSPLIT,$0-0 + JMP libc_recvmsg(SB) +TEXT ·libc_sendmsg_trampoline(SB),NOSPLIT,$0-0 + JMP libc_sendmsg(SB) +TEXT ·libc_kevent_trampoline(SB),NOSPLIT,$0-0 + JMP libc_kevent(SB) +TEXT ·libc___sysctl_trampoline(SB),NOSPLIT,$0-0 + JMP libc___sysctl(SB) +TEXT ·libc_utimes_trampoline(SB),NOSPLIT,$0-0 + JMP libc_utimes(SB) +TEXT ·libc_futimes_trampoline(SB),NOSPLIT,$0-0 + JMP libc_futimes(SB) +TEXT ·libc_fcntl_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fcntl(SB) +TEXT ·libc_poll_trampoline(SB),NOSPLIT,$0-0 + JMP libc_poll(SB) +TEXT ·libc_madvise_trampoline(SB),NOSPLIT,$0-0 + JMP libc_madvise(SB) +TEXT ·libc_mlock_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mlock(SB) +TEXT ·libc_mlockall_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mlockall(SB) +TEXT ·libc_mprotect_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mprotect(SB) +TEXT ·libc_msync_trampoline(SB),NOSPLIT,$0-0 + JMP libc_msync(SB) +TEXT ·libc_munlock_trampoline(SB),NOSPLIT,$0-0 + JMP libc_munlock(SB) +TEXT ·libc_munlockall_trampoline(SB),NOSPLIT,$0-0 + JMP libc_munlockall(SB) +TEXT ·libc_ptrace_trampoline(SB),NOSPLIT,$0-0 + JMP libc_ptrace(SB) +TEXT ·libc_getattrlist_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getattrlist(SB) +TEXT ·libc_pipe_trampoline(SB),NOSPLIT,$0-0 + JMP libc_pipe(SB) +TEXT ·libc_getxattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getxattr(SB) +TEXT ·libc_fgetxattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fgetxattr(SB) +TEXT ·libc_setxattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setxattr(SB) +TEXT ·libc_fsetxattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fsetxattr(SB) +TEXT ·libc_removexattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_removexattr(SB) +TEXT ·libc_fremovexattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fremovexattr(SB) +TEXT ·libc_listxattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_listxattr(SB) +TEXT ·libc_flistxattr_trampoline(SB),NOSPLIT,$0-0 + JMP libc_flistxattr(SB) +TEXT ·libc_setattrlist_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setattrlist(SB) +TEXT ·libc_kill_trampoline(SB),NOSPLIT,$0-0 + JMP libc_kill(SB) +TEXT ·libc_ioctl_trampoline(SB),NOSPLIT,$0-0 + JMP libc_ioctl(SB) +TEXT ·libc_sendfile_trampoline(SB),NOSPLIT,$0-0 + JMP libc_sendfile(SB) +TEXT ·libc_access_trampoline(SB),NOSPLIT,$0-0 + JMP libc_access(SB) +TEXT ·libc_adjtime_trampoline(SB),NOSPLIT,$0-0 + JMP libc_adjtime(SB) +TEXT ·libc_chdir_trampoline(SB),NOSPLIT,$0-0 + JMP libc_chdir(SB) +TEXT ·libc_chflags_trampoline(SB),NOSPLIT,$0-0 + JMP libc_chflags(SB) +TEXT ·libc_chmod_trampoline(SB),NOSPLIT,$0-0 + JMP libc_chmod(SB) +TEXT ·libc_chown_trampoline(SB),NOSPLIT,$0-0 + JMP libc_chown(SB) +TEXT ·libc_chroot_trampoline(SB),NOSPLIT,$0-0 + JMP libc_chroot(SB) +TEXT ·libc_close_trampoline(SB),NOSPLIT,$0-0 + JMP libc_close(SB) +TEXT ·libc_dup_trampoline(SB),NOSPLIT,$0-0 + JMP libc_dup(SB) +TEXT ·libc_dup2_trampoline(SB),NOSPLIT,$0-0 + JMP libc_dup2(SB) +TEXT ·libc_exchangedata_trampoline(SB),NOSPLIT,$0-0 + JMP libc_exchangedata(SB) +TEXT ·libc_exit_trampoline(SB),NOSPLIT,$0-0 + JMP libc_exit(SB) +TEXT ·libc_faccessat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_faccessat(SB) +TEXT ·libc_fchdir_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fchdir(SB) +TEXT ·libc_fchflags_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fchflags(SB) +TEXT ·libc_fchmod_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fchmod(SB) +TEXT ·libc_fchmodat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fchmodat(SB) +TEXT ·libc_fchown_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fchown(SB) +TEXT ·libc_fchownat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fchownat(SB) +TEXT ·libc_flock_trampoline(SB),NOSPLIT,$0-0 + JMP libc_flock(SB) +TEXT ·libc_fpathconf_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fpathconf(SB) +TEXT ·libc_fsync_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fsync(SB) +TEXT ·libc_ftruncate_trampoline(SB),NOSPLIT,$0-0 + JMP libc_ftruncate(SB) +TEXT ·libc_getdtablesize_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getdtablesize(SB) +TEXT ·libc_getegid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getegid(SB) +TEXT ·libc_geteuid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_geteuid(SB) +TEXT ·libc_getgid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getgid(SB) +TEXT ·libc_getpgid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getpgid(SB) +TEXT ·libc_getpgrp_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getpgrp(SB) +TEXT ·libc_getpid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getpid(SB) +TEXT ·libc_getppid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getppid(SB) +TEXT ·libc_getpriority_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getpriority(SB) +TEXT ·libc_getrlimit_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getrlimit(SB) +TEXT ·libc_getrusage_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getrusage(SB) +TEXT ·libc_getsid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getsid(SB) +TEXT ·libc_getuid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getuid(SB) +TEXT ·libc_issetugid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_issetugid(SB) +TEXT ·libc_kqueue_trampoline(SB),NOSPLIT,$0-0 + JMP libc_kqueue(SB) +TEXT ·libc_lchown_trampoline(SB),NOSPLIT,$0-0 + JMP libc_lchown(SB) +TEXT ·libc_link_trampoline(SB),NOSPLIT,$0-0 + JMP libc_link(SB) +TEXT ·libc_linkat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_linkat(SB) +TEXT ·libc_listen_trampoline(SB),NOSPLIT,$0-0 + JMP libc_listen(SB) +TEXT ·libc_mkdir_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mkdir(SB) +TEXT ·libc_mkdirat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mkdirat(SB) +TEXT ·libc_mkfifo_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mkfifo(SB) +TEXT ·libc_mknod_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mknod(SB) +TEXT ·libc_open_trampoline(SB),NOSPLIT,$0-0 + JMP libc_open(SB) +TEXT ·libc_openat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_openat(SB) +TEXT ·libc_pathconf_trampoline(SB),NOSPLIT,$0-0 + JMP libc_pathconf(SB) +TEXT ·libc_pread_trampoline(SB),NOSPLIT,$0-0 + JMP libc_pread(SB) +TEXT ·libc_pwrite_trampoline(SB),NOSPLIT,$0-0 + JMP libc_pwrite(SB) +TEXT ·libc_read_trampoline(SB),NOSPLIT,$0-0 + JMP libc_read(SB) +TEXT ·libc_readlink_trampoline(SB),NOSPLIT,$0-0 + JMP libc_readlink(SB) +TEXT ·libc_readlinkat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_readlinkat(SB) +TEXT ·libc_rename_trampoline(SB),NOSPLIT,$0-0 + JMP libc_rename(SB) +TEXT ·libc_renameat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_renameat(SB) +TEXT ·libc_revoke_trampoline(SB),NOSPLIT,$0-0 + JMP libc_revoke(SB) +TEXT ·libc_rmdir_trampoline(SB),NOSPLIT,$0-0 + JMP libc_rmdir(SB) +TEXT ·libc_lseek_trampoline(SB),NOSPLIT,$0-0 + JMP libc_lseek(SB) +TEXT ·libc_select_trampoline(SB),NOSPLIT,$0-0 + JMP libc_select(SB) +TEXT ·libc_setegid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setegid(SB) +TEXT ·libc_seteuid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_seteuid(SB) +TEXT ·libc_setgid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setgid(SB) +TEXT ·libc_setlogin_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setlogin(SB) +TEXT ·libc_setpgid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setpgid(SB) +TEXT ·libc_setpriority_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setpriority(SB) +TEXT ·libc_setprivexec_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setprivexec(SB) +TEXT ·libc_setregid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setregid(SB) +TEXT ·libc_setreuid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setreuid(SB) +TEXT ·libc_setrlimit_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setrlimit(SB) +TEXT ·libc_setsid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setsid(SB) +TEXT ·libc_settimeofday_trampoline(SB),NOSPLIT,$0-0 + JMP libc_settimeofday(SB) +TEXT ·libc_setuid_trampoline(SB),NOSPLIT,$0-0 + JMP libc_setuid(SB) +TEXT ·libc_symlink_trampoline(SB),NOSPLIT,$0-0 + JMP libc_symlink(SB) +TEXT ·libc_symlinkat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_symlinkat(SB) +TEXT ·libc_sync_trampoline(SB),NOSPLIT,$0-0 + JMP libc_sync(SB) +TEXT ·libc_truncate_trampoline(SB),NOSPLIT,$0-0 + JMP libc_truncate(SB) +TEXT ·libc_umask_trampoline(SB),NOSPLIT,$0-0 + JMP libc_umask(SB) +TEXT ·libc_undelete_trampoline(SB),NOSPLIT,$0-0 + JMP libc_undelete(SB) +TEXT ·libc_unlink_trampoline(SB),NOSPLIT,$0-0 + JMP libc_unlink(SB) +TEXT ·libc_unlinkat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_unlinkat(SB) +TEXT ·libc_unmount_trampoline(SB),NOSPLIT,$0-0 + JMP libc_unmount(SB) +TEXT ·libc_write_trampoline(SB),NOSPLIT,$0-0 + JMP libc_write(SB) +TEXT ·libc_mmap_trampoline(SB),NOSPLIT,$0-0 + JMP libc_mmap(SB) +TEXT ·libc_munmap_trampoline(SB),NOSPLIT,$0-0 + JMP libc_munmap(SB) +TEXT ·libc_gettimeofday_trampoline(SB),NOSPLIT,$0-0 + JMP libc_gettimeofday(SB) +TEXT ·libc_fstat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fstat(SB) +TEXT ·libc_fstatat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fstatat(SB) +TEXT ·libc_fstatfs_trampoline(SB),NOSPLIT,$0-0 + JMP libc_fstatfs(SB) +TEXT ·libc_getfsstat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_getfsstat(SB) +TEXT ·libc_lstat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_lstat(SB) +TEXT ·libc_stat_trampoline(SB),NOSPLIT,$0-0 + JMP libc_stat(SB) +TEXT ·libc_statfs_trampoline(SB),NOSPLIT,$0-0 + JMP libc_statfs(SB) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go new file mode 100644 index 000000000..c6df9d2e8 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go @@ -0,0 +1,2015 @@ +// go run mksyscall.go -tags freebsd,arm64 -- syscall_bsd.go syscall_freebsd.go syscall_freebsd_arm64.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build freebsd,arm64 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(ngid int, gid *_Gid_t) (n int, err error) { + r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { + r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { + r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, timeval *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fcntl(fd int, cmd int, arg int) (val int, err error) { + r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, behav int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mprotect(b []byte, prot int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Msync(b []byte, flags int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getcwd(buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Access(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func CapEnter() (err error) { + _, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func capRightsGet(version int, fd int, rightsp *CapRights) (err error) { + _, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func capRightsLimit(fd int, rightsp *CapRights) (err error) { + _, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chflags(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chroot(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(fd int) (nfd int, err error) { + r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + Syscall(SYS_EXIT, uintptr(code), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fpathconf(fd int, name int) (val int, err error) { + r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstat(fd int, stat *stat_freebsd11_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstat_freebsd12(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstatat(fd int, path string, stat *stat_freebsd11_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstatat_freebsd12(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstatfs(fd int, stat *statfs_freebsd11_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstatfs_freebsd12(fd int, stat *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getdirentries_freebsd12(fd int, buf []byte, basep *uintptr) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_GETDIRENTRIES_FREEBSD12, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getdtablesize() (size int) { + r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) + size = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgid(pid int) (pgid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) + pgrp = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) + ppid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpriority(which int, who int) (prio int, err error) { + r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrusage(who int, rusage *Rusage) (err error) { + _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, signum syscall.Signal) (err error) { + _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Link(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func lstat(path string, stat *stat_freebsd11_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdir(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifo(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mknod(path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mknodat(fd int, path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mknodat_freebsd12(fd int, path string, mode uint32, dev uint64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MKNODAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Openat(fdat int, path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(fdat), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pathconf(path string, name int) (val int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlink(path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rename(from string, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(fromfd int, from string, tofd int, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Revoke(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rmdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) + newoffset = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { + _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seteuid(euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setlogin(name string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpriority(which int, who int, prio int) (err error) { + _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func stat(path string, stat *stat_freebsd11_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func statfs(path string, stat *statfs_freebsd11_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func statfs_freebsd12(path string, stat *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATFS_FREEBSD12, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlink(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Undelete(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) { + r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go index 5356a5175..19c608f87 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go @@ -437,6 +437,16 @@ func ClockGettime(clockid int32, time *Timespec) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) { + _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Close(fd int) (err error) { _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) if e1 != 0 { @@ -1370,6 +1380,13 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Signalfd(fd int, mask *Sigset_t, flags int) { + SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags)) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go index 5e3abfc10..dce4e3332 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go @@ -437,6 +437,16 @@ func ClockGettime(clockid int32, time *Timespec) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) { + _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Close(fd int) (err error) { _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) if e1 != 0 { @@ -1370,6 +1380,13 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Signalfd(fd int, mask *Sigset_t, flags int) { + SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags)) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -1806,7 +1823,7 @@ func Getuid() (uid int) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func InotifyInit() (fd int, err error) { +func inotifyInit() (fd int, err error) { r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0) fd = int(r0) if e1 != 0 { @@ -1862,21 +1879,6 @@ func Listen(s int, n int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Lstat(path string, stat *Stat_t) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Pause() (err error) { _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go index 75db4c0c1..05ac5b499 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go @@ -437,6 +437,16 @@ func ClockGettime(clockid int32, time *Timespec) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) { + _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Close(fd int) (err error) { _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) if e1 != 0 { @@ -1370,6 +1380,13 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Signalfd(fd int, mask *Sigset_t, flags int) { + SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags)) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -2282,3 +2299,13 @@ func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { } return } + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func armSyncFileRange(fd int, flags int, off int64, n int64) (err error) { + _, _, e1 := Syscall6(SYS_ARM_SYNC_FILE_RANGE, uintptr(fd), uintptr(flags), uintptr(off), uintptr(off>>32), uintptr(n), uintptr(n>>32)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go index b890cb03c..4b5712136 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go @@ -437,6 +437,16 @@ func ClockGettime(clockid int32, time *Timespec) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) { + _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Close(fd int) (err error) { _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) if e1 != 0 { @@ -1370,6 +1380,13 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Signalfd(fd int, mask *Sigset_t, flags int) { + SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags)) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go index cc17b43d3..3a933c257 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go @@ -437,6 +437,16 @@ func ClockGettime(clockid int32, time *Timespec) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) { + _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Close(fd int) (err error) { _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) if e1 != 0 { @@ -1370,6 +1380,13 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Signalfd(fd int, mask *Sigset_t, flags int) { + SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags)) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go index caf1408ec..4f9989c06 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go @@ -437,6 +437,16 @@ func ClockGettime(clockid int32, time *Timespec) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) { + _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Close(fd int) (err error) { _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) if e1 != 0 { @@ -1370,6 +1380,13 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Signalfd(fd int, mask *Sigset_t, flags int) { + SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags)) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -1719,21 +1736,6 @@ func Fchown(fd int, uid int, gid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Fstatfs(fd int, buf *Statfs_t) (err error) { _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0) if e1 != 0 { @@ -2293,6 +2295,21 @@ func fstat(fd int, st *stat_t) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func fstatat(dirfd int, path string, st *stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func lstat(path string, st *stat_t) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go index 266be8b4a..2cae08656 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go @@ -437,6 +437,16 @@ func ClockGettime(clockid int32, time *Timespec) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) { + _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Close(fd int) (err error) { _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) if e1 != 0 { @@ -1370,6 +1380,13 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Signalfd(fd int, mask *Sigset_t, flags int) { + SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags)) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) @@ -1719,21 +1736,6 @@ func Fchown(fd int, uid int, gid int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) - if err != nil { - return - } - _, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Fstatfs(fd int, buf *Statfs_t) (err error) { _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0) if e1 != 0 { @@ -2293,6 +2295,21 @@ func fstat(fd int, st *stat_t) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func fstatat(dirfd int, path string, st *stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func lstat(path string, st *stat_t) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go index b16b3e102..c28b841c2 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go @@ -437,6 +437,16 @@ func ClockGettime(clockid int32, time *Timespec) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) { + _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Close(fd int) (err error) { _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) if e1 != 0 { @@ -1370,6 +1380,13 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Signalfd(fd int, mask *Sigset_t, flags int) { + SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags)) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go index 27b6a6bf0..6f2d9aefb 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go @@ -437,6 +437,16 @@ func ClockGettime(clockid int32, time *Timespec) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) { + _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Close(fd int) (err error) { _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) if e1 != 0 { @@ -1370,6 +1380,13 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Signalfd(fd int, mask *Sigset_t, flags int) { + SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags)) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go index f7ecc9afd..d5735dc72 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go @@ -437,6 +437,16 @@ func ClockGettime(clockid int32, time *Timespec) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) { + _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Close(fd int) (err error) { _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) if e1 != 0 { @@ -1370,6 +1380,13 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Signalfd(fd int, mask *Sigset_t, flags int) { + SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags)) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go index e3cd4e53f..a30f7ca17 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go @@ -437,6 +437,16 @@ func ClockGettime(clockid int32, time *Timespec) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) { + _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Close(fd int) (err error) { _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) if e1 != 0 { @@ -1370,6 +1380,13 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Signalfd(fd int, mask *Sigset_t, flags int) { + SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags)) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go index 3001d3798..b953b200f 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go @@ -437,6 +437,16 @@ func ClockGettime(clockid int32, time *Timespec) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) { + _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Close(fd int) (err error) { _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) if e1 != 0 { @@ -1370,6 +1380,13 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Signalfd(fd int, mask *Sigset_t, flags int) { + SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags)) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go index aafe3660f..d09c7e13f 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go @@ -437,6 +437,16 @@ func ClockGettime(clockid int32, time *Timespec) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) { + _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Close(fd int) (err error) { _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) if e1 != 0 { @@ -1370,6 +1380,13 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func Signalfd(fd int, mask *Sigset_t, flags int) { + SyscallNoError(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(mask)), uintptr(flags)) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { var _p0 *byte _p0, err = BytePtrFromString(path) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_darwin_386.go b/vendor/golang.org/x/sys/unix/zsysnum_darwin_386.go index d1d36da3f..f33614532 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_darwin_386.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_darwin_386.go @@ -1,4 +1,4 @@ -// mksysnum_darwin.pl /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/syscall.h +// go run mksysnum.go /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/syscall.h // Code generated by the command above; see README.md. DO NOT EDIT. // +build 386,darwin diff --git a/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go index e35de4145..9e2837e0e 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go @@ -1,4 +1,4 @@ -// mksysnum_darwin.pl /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/syscall.h +// go run mksysnum.go /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/syscall.h // Code generated by the command above; see README.md. DO NOT EDIT. // +build amd64,darwin diff --git a/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm.go index f2df27db2..103a72ed1 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm.go @@ -1,4 +1,4 @@ -// mksysnum_darwin.pl /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.1.sdk/usr/include/sys/syscall.h +// go run mksysnum.go /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.1.sdk/usr/include/sys/syscall.h // Code generated by the command above; see README.md. DO NOT EDIT. // +build arm,darwin diff --git a/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go index 969463023..7ab2130b9 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go @@ -1,4 +1,4 @@ -// mksysnum_darwin.pl /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.1.sdk/usr/include/sys/syscall.h +// go run mksysnum.go /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.1.sdk/usr/include/sys/syscall.h // Code generated by the command above; see README.md. DO NOT EDIT. // +build arm64,darwin diff --git a/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go index b2c9ef81b..464c9a983 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go @@ -1,4 +1,4 @@ -// mksysnum_dragonfly.pl +// go run mksysnum.go https://gitweb.dragonflybsd.org/dragonfly.git/blob_plain/HEAD:/sys/kern/syscalls.master // Code generated by the command above; see README.md. DO NOT EDIT. // +build amd64,dragonfly @@ -13,7 +13,7 @@ const ( SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, size_t nbyte); } SYS_OPEN = 5 // { int open(char *path, int flags, int mode); } SYS_CLOSE = 6 // { int close(int fd); } - SYS_WAIT4 = 7 // { int wait4(int pid, int *status, int options, \ + SYS_WAIT4 = 7 // { int wait4(int pid, int *status, int options, struct rusage *rusage); } wait4 wait_args int SYS_LINK = 9 // { int link(char *path, char *link); } SYS_UNLINK = 10 // { int unlink(char *path); } SYS_CHDIR = 12 // { int chdir(char *path); } @@ -22,17 +22,17 @@ const ( SYS_CHMOD = 15 // { int chmod(char *path, int mode); } SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } SYS_OBREAK = 17 // { int obreak(char *nsize); } break obreak_args int - SYS_GETFSSTAT = 18 // { int getfsstat(struct statfs *buf, long bufsize, \ + SYS_GETFSSTAT = 18 // { int getfsstat(struct statfs *buf, long bufsize, int flags); } SYS_GETPID = 20 // { pid_t getpid(void); } - SYS_MOUNT = 21 // { int mount(char *type, char *path, int flags, \ + SYS_MOUNT = 21 // { int mount(char *type, char *path, int flags, caddr_t data); } SYS_UNMOUNT = 22 // { int unmount(char *path, int flags); } SYS_SETUID = 23 // { int setuid(uid_t uid); } SYS_GETUID = 24 // { uid_t getuid(void); } SYS_GETEUID = 25 // { uid_t geteuid(void); } - SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, caddr_t addr, \ + SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, caddr_t addr, int data); } SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, int flags); } SYS_SENDMSG = 28 // { int sendmsg(int s, caddr_t msg, int flags); } - SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, size_t len, \ + SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, size_t len, int flags, caddr_t from, int *fromlenaddr); } SYS_ACCEPT = 30 // { int accept(int s, caddr_t name, int *anamelen); } SYS_GETPEERNAME = 31 // { int getpeername(int fdes, caddr_t asa, int *alen); } SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, caddr_t asa, int *alen); } @@ -45,8 +45,8 @@ const ( SYS_DUP = 41 // { int dup(int fd); } SYS_PIPE = 42 // { int pipe(void); } SYS_GETEGID = 43 // { gid_t getegid(void); } - SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, \ - SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, int facs, \ + SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, size_t offset, u_int scale); } + SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, int facs, int pid); } SYS_GETGID = 47 // { gid_t getgid(void); } SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int namelen); } SYS_SETLOGIN = 50 // { int setlogin(char *namebuf); } @@ -67,32 +67,32 @@ const ( SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); } SYS_MPROTECT = 74 // { int mprotect(void *addr, size_t len, int prot); } SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, int behav); } - SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, \ + SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, char *vec); } SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, gid_t *gidset); } SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, gid_t *gidset); } SYS_GETPGRP = 81 // { int getpgrp(void); } SYS_SETPGID = 82 // { int setpgid(int pid, int pgid); } - SYS_SETITIMER = 83 // { int setitimer(u_int which, struct itimerval *itv, \ + SYS_SETITIMER = 83 // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); } SYS_SWAPON = 85 // { int swapon(char *name); } SYS_GETITIMER = 86 // { int getitimer(u_int which, struct itimerval *itv); } SYS_GETDTABLESIZE = 89 // { int getdtablesize(void); } SYS_DUP2 = 90 // { int dup2(int from, int to); } SYS_FCNTL = 92 // { int fcntl(int fd, int cmd, long arg); } - SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, \ + SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } SYS_FSYNC = 95 // { int fsync(int fd); } SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, int prio); } SYS_SOCKET = 97 // { int socket(int domain, int type, int protocol); } SYS_CONNECT = 98 // { int connect(int s, caddr_t name, int namelen); } SYS_GETPRIORITY = 100 // { int getpriority(int which, int who); } SYS_BIND = 104 // { int bind(int s, caddr_t name, int namelen); } - SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, \ + SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); } SYS_LISTEN = 106 // { int listen(int s, int backlog); } - SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, \ + SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); } SYS_GETRUSAGE = 117 // { int getrusage(int who, struct rusage *rusage); } - SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, \ + SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); } SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); } - SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, \ - SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, \ + SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); } + SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); } SYS_FCHOWN = 123 // { int fchown(int fd, int uid, int gid); } SYS_FCHMOD = 124 // { int fchmod(int fd, int mode); } SYS_SETREUID = 126 // { int setreuid(int ruid, int euid); } @@ -100,15 +100,15 @@ const ( SYS_RENAME = 128 // { int rename(char *from, char *to); } SYS_FLOCK = 131 // { int flock(int fd, int how); } SYS_MKFIFO = 132 // { int mkfifo(char *path, int mode); } - SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, \ + SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); } SYS_SHUTDOWN = 134 // { int shutdown(int s, int how); } - SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, int protocol, \ + SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); } SYS_MKDIR = 136 // { int mkdir(char *path, int mode); } SYS_RMDIR = 137 // { int rmdir(char *path); } SYS_UTIMES = 138 // { int utimes(char *path, struct timeval *tptr); } - SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, \ + SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); } SYS_SETSID = 147 // { int setsid(void); } - SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, \ + SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); } SYS_STATFS = 157 // { int statfs(char *path, struct statfs *buf); } SYS_FSTATFS = 158 // { int fstatfs(int fd, struct statfs *buf); } SYS_GETFH = 161 // { int getfh(char *fname, struct fhandle *fhp); } @@ -116,53 +116,53 @@ const ( SYS_SETDOMAINNAME = 163 // { int setdomainname(char *domainname, int len); } SYS_UNAME = 164 // { int uname(struct utsname *name); } SYS_SYSARCH = 165 // { int sysarch(int op, char *parms); } - SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, \ - SYS_EXTPREAD = 173 // { ssize_t extpread(int fd, void *buf, \ - SYS_EXTPWRITE = 174 // { ssize_t extpwrite(int fd, const void *buf, \ + SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); } + SYS_EXTPREAD = 173 // { ssize_t extpread(int fd, void *buf, size_t nbyte, int flags, off_t offset); } + SYS_EXTPWRITE = 174 // { ssize_t extpwrite(int fd, const void *buf, size_t nbyte, int flags, off_t offset); } SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); } SYS_SETGID = 181 // { int setgid(gid_t gid); } SYS_SETEGID = 182 // { int setegid(gid_t egid); } SYS_SETEUID = 183 // { int seteuid(uid_t euid); } SYS_PATHCONF = 191 // { int pathconf(char *path, int name); } SYS_FPATHCONF = 192 // { int fpathconf(int fd, int name); } - SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, \ - SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, \ - SYS_MMAP = 197 // { caddr_t mmap(caddr_t addr, size_t len, int prot, \ + SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int + SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int + SYS_MMAP = 197 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, int pad, off_t pos); } // SYS_NOSYS = 198; // { int nosys(void); } __syscall __syscall_args int - SYS_LSEEK = 199 // { off_t lseek(int fd, int pad, off_t offset, \ + SYS_LSEEK = 199 // { off_t lseek(int fd, int pad, off_t offset, int whence); } SYS_TRUNCATE = 200 // { int truncate(char *path, int pad, off_t length); } SYS_FTRUNCATE = 201 // { int ftruncate(int fd, int pad, off_t length); } - SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, void *old, \ + SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int SYS_MLOCK = 203 // { int mlock(const void *addr, size_t len); } SYS_MUNLOCK = 204 // { int munlock(const void *addr, size_t len); } SYS_UNDELETE = 205 // { int undelete(char *path); } SYS_FUTIMES = 206 // { int futimes(int fd, struct timeval *tptr); } SYS_GETPGID = 207 // { int getpgid(pid_t pid); } - SYS_POLL = 209 // { int poll(struct pollfd *fds, u_int nfds, \ - SYS___SEMCTL = 220 // { int __semctl(int semid, int semnum, int cmd, \ + SYS_POLL = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS___SEMCTL = 220 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); } SYS_SEMGET = 221 // { int semget(key_t key, int nsems, int semflg); } - SYS_SEMOP = 222 // { int semop(int semid, struct sembuf *sops, \ - SYS_MSGCTL = 224 // { int msgctl(int msqid, int cmd, \ + SYS_SEMOP = 222 // { int semop(int semid, struct sembuf *sops, u_int nsops); } + SYS_MSGCTL = 224 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); } SYS_MSGGET = 225 // { int msgget(key_t key, int msgflg); } - SYS_MSGSND = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, \ - SYS_MSGRCV = 227 // { int msgrcv(int msqid, void *msgp, size_t msgsz, \ - SYS_SHMAT = 228 // { caddr_t shmat(int shmid, const void *shmaddr, \ - SYS_SHMCTL = 229 // { int shmctl(int shmid, int cmd, \ + SYS_MSGSND = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } + SYS_MSGRCV = 227 // { int msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } + SYS_SHMAT = 228 // { caddr_t shmat(int shmid, const void *shmaddr, int shmflg); } + SYS_SHMCTL = 229 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); } SYS_SHMDT = 230 // { int shmdt(const void *shmaddr); } SYS_SHMGET = 231 // { int shmget(key_t key, size_t size, int shmflg); } - SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, \ - SYS_CLOCK_SETTIME = 233 // { int clock_settime(clockid_t clock_id, \ - SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, \ - SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, \ + SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); } + SYS_CLOCK_SETTIME = 233 // { int clock_settime(clockid_t clock_id, const struct timespec *tp); } + SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); } + SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, int inherit); } SYS_RFORK = 251 // { int rfork(int flags); } - SYS_OPENBSD_POLL = 252 // { int openbsd_poll(struct pollfd *fds, u_int nfds, \ + SYS_OPENBSD_POLL = 252 // { int openbsd_poll(struct pollfd *fds, u_int nfds, int timeout); } SYS_ISSETUGID = 253 // { int issetugid(void); } SYS_LCHOWN = 254 // { int lchown(char *path, int uid, int gid); } SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } SYS_LUTIMES = 276 // { int lutimes(char *path, struct timeval *tptr); } - SYS_EXTPREADV = 289 // { ssize_t extpreadv(int fd, struct iovec *iovp, \ - SYS_EXTPWRITEV = 290 // { ssize_t extpwritev(int fd, struct iovec *iovp,\ + SYS_EXTPREADV = 289 // { ssize_t extpreadv(int fd, struct iovec *iovp, u_int iovcnt, int flags, off_t offset); } + SYS_EXTPWRITEV = 290 // { ssize_t extpwritev(int fd, struct iovec *iovp,u_int iovcnt, int flags, off_t offset); } SYS_FHSTATFS = 297 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); } SYS_MODNEXT = 300 // { int modnext(int modid); } @@ -200,34 +200,34 @@ const ( SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); } SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, void *data); } SYS_JAIL = 338 // { int jail(struct jail *jail); } - SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, const sigset_t *set, \ + SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); } SYS_SIGSUSPEND = 341 // { int sigsuspend(const sigset_t *sigmask); } - SYS_SIGACTION = 342 // { int sigaction(int sig, const struct sigaction *act, \ + SYS_SIGACTION = 342 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); } SYS_SIGPENDING = 343 // { int sigpending(sigset_t *set); } SYS_SIGRETURN = 344 // { int sigreturn(ucontext_t *sigcntxp); } - SYS_SIGTIMEDWAIT = 345 // { int sigtimedwait(const sigset_t *set,\ - SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set,\ - SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, \ - SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, \ - SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, acl_type_t type, \ - SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, acl_type_t type, \ - SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, \ + SYS_SIGTIMEDWAIT = 345 // { int sigtimedwait(const sigset_t *set,siginfo_t *info, const struct timespec *timeout); } + SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set,siginfo_t *info); } + SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, acl_type_t type); } SYS___ACL_DELETE_FD = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); } - SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, \ - SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, \ - SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, \ - SYS_EXTATTR_SET_FILE = 356 // { int extattr_set_file(const char *path, \ - SYS_EXTATTR_GET_FILE = 357 // { int extattr_get_file(const char *path, \ - SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, \ + SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_FILE = 356 // { int extattr_set_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_GET_FILE = 357 // { int extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } SYS_AIO_WAITCOMPLETE = 359 // { int aio_waitcomplete(struct aiocb **aiocbp, struct timespec *timeout); } SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } SYS_KQUEUE = 362 // { int kqueue(void); } - SYS_KEVENT = 363 // { int kevent(int fd, \ + SYS_KEVENT = 363 // { int kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } SYS_KENV = 390 // { int kenv(int what, const char *name, char *value, int len); } SYS_LCHFLAGS = 391 // { int lchflags(char *path, int flags); } SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, int count); } - SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, \ + SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); } SYS_VARSYM_SET = 450 // { int varsym_set(int level, const char *name, const char *data); } SYS_VARSYM_GET = 451 // { int varsym_get(int mask, const char *wild, char *buf, int bufsize); } SYS_VARSYM_LIST = 452 // { int varsym_list(int level, char *buf, int maxsize, int *marker); } @@ -245,58 +245,58 @@ const ( SYS_FSTAT = 476 // { int fstat(int fd, struct stat *sb); } SYS_LSTAT = 477 // { int lstat(const char *path, struct stat *ub); } SYS_FHSTAT = 478 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); } - SYS_GETDIRENTRIES = 479 // { int getdirentries(int fd, char *buf, u_int count, \ + SYS_GETDIRENTRIES = 479 // { int getdirentries(int fd, char *buf, u_int count, long *basep); } SYS_GETDENTS = 480 // { int getdents(int fd, char *buf, size_t count); } - SYS_USCHED_SET = 481 // { int usched_set(pid_t pid, int cmd, void *data, \ + SYS_USCHED_SET = 481 // { int usched_set(pid_t pid, int cmd, void *data, int bytes); } SYS_EXTACCEPT = 482 // { int extaccept(int s, int flags, caddr_t name, int *anamelen); } SYS_EXTCONNECT = 483 // { int extconnect(int s, int flags, caddr_t name, int namelen); } SYS_MCONTROL = 485 // { int mcontrol(void *addr, size_t len, int behav, off_t value); } SYS_VMSPACE_CREATE = 486 // { int vmspace_create(void *id, int type, void *data); } SYS_VMSPACE_DESTROY = 487 // { int vmspace_destroy(void *id); } - SYS_VMSPACE_CTL = 488 // { int vmspace_ctl(void *id, int cmd, \ - SYS_VMSPACE_MMAP = 489 // { int vmspace_mmap(void *id, void *addr, size_t len, \ - SYS_VMSPACE_MUNMAP = 490 // { int vmspace_munmap(void *id, void *addr, \ - SYS_VMSPACE_MCONTROL = 491 // { int vmspace_mcontrol(void *id, void *addr, \ - SYS_VMSPACE_PREAD = 492 // { ssize_t vmspace_pread(void *id, void *buf, \ - SYS_VMSPACE_PWRITE = 493 // { ssize_t vmspace_pwrite(void *id, const void *buf, \ + SYS_VMSPACE_CTL = 488 // { int vmspace_ctl(void *id, int cmd, struct trapframe *tframe, struct vextframe *vframe); } + SYS_VMSPACE_MMAP = 489 // { int vmspace_mmap(void *id, void *addr, size_t len, int prot, int flags, int fd, off_t offset); } + SYS_VMSPACE_MUNMAP = 490 // { int vmspace_munmap(void *id, void *addr, size_t len); } + SYS_VMSPACE_MCONTROL = 491 // { int vmspace_mcontrol(void *id, void *addr, size_t len, int behav, off_t value); } + SYS_VMSPACE_PREAD = 492 // { ssize_t vmspace_pread(void *id, void *buf, size_t nbyte, int flags, off_t offset); } + SYS_VMSPACE_PWRITE = 493 // { ssize_t vmspace_pwrite(void *id, const void *buf, size_t nbyte, int flags, off_t offset); } SYS_EXTEXIT = 494 // { void extexit(int how, int status, void *addr); } SYS_LWP_CREATE = 495 // { int lwp_create(struct lwp_params *params); } SYS_LWP_GETTID = 496 // { lwpid_t lwp_gettid(void); } SYS_LWP_KILL = 497 // { int lwp_kill(pid_t pid, lwpid_t tid, int signum); } SYS_LWP_RTPRIO = 498 // { int lwp_rtprio(int function, pid_t pid, lwpid_t tid, struct rtprio *rtp); } - SYS_PSELECT = 499 // { int pselect(int nd, fd_set *in, fd_set *ou, \ + SYS_PSELECT = 499 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sigmask); } SYS_STATVFS = 500 // { int statvfs(const char *path, struct statvfs *buf); } SYS_FSTATVFS = 501 // { int fstatvfs(int fd, struct statvfs *buf); } SYS_FHSTATVFS = 502 // { int fhstatvfs(const struct fhandle *u_fhp, struct statvfs *buf); } - SYS_GETVFSSTAT = 503 // { int getvfsstat(struct statfs *buf, \ + SYS_GETVFSSTAT = 503 // { int getvfsstat(struct statfs *buf, struct statvfs *vbuf, long vbufsize, int flags); } SYS_OPENAT = 504 // { int openat(int fd, char *path, int flags, int mode); } - SYS_FSTATAT = 505 // { int fstatat(int fd, char *path, \ - SYS_FCHMODAT = 506 // { int fchmodat(int fd, char *path, int mode, \ - SYS_FCHOWNAT = 507 // { int fchownat(int fd, char *path, int uid, int gid, \ + SYS_FSTATAT = 505 // { int fstatat(int fd, char *path, struct stat *sb, int flags); } + SYS_FCHMODAT = 506 // { int fchmodat(int fd, char *path, int mode, int flags); } + SYS_FCHOWNAT = 507 // { int fchownat(int fd, char *path, int uid, int gid, int flags); } SYS_UNLINKAT = 508 // { int unlinkat(int fd, char *path, int flags); } - SYS_FACCESSAT = 509 // { int faccessat(int fd, char *path, int amode, \ - SYS_MQ_OPEN = 510 // { mqd_t mq_open(const char * name, int oflag, \ + SYS_FACCESSAT = 509 // { int faccessat(int fd, char *path, int amode, int flags); } + SYS_MQ_OPEN = 510 // { mqd_t mq_open(const char * name, int oflag, mode_t mode, struct mq_attr *attr); } SYS_MQ_CLOSE = 511 // { int mq_close(mqd_t mqdes); } SYS_MQ_UNLINK = 512 // { int mq_unlink(const char *name); } - SYS_MQ_GETATTR = 513 // { int mq_getattr(mqd_t mqdes, \ - SYS_MQ_SETATTR = 514 // { int mq_setattr(mqd_t mqdes, \ - SYS_MQ_NOTIFY = 515 // { int mq_notify(mqd_t mqdes, \ - SYS_MQ_SEND = 516 // { int mq_send(mqd_t mqdes, const char *msg_ptr, \ - SYS_MQ_RECEIVE = 517 // { ssize_t mq_receive(mqd_t mqdes, char *msg_ptr, \ - SYS_MQ_TIMEDSEND = 518 // { int mq_timedsend(mqd_t mqdes, \ - SYS_MQ_TIMEDRECEIVE = 519 // { ssize_t mq_timedreceive(mqd_t mqdes, \ + SYS_MQ_GETATTR = 513 // { int mq_getattr(mqd_t mqdes, struct mq_attr *mqstat); } + SYS_MQ_SETATTR = 514 // { int mq_setattr(mqd_t mqdes, const struct mq_attr *mqstat, struct mq_attr *omqstat); } + SYS_MQ_NOTIFY = 515 // { int mq_notify(mqd_t mqdes, const struct sigevent *notification); } + SYS_MQ_SEND = 516 // { int mq_send(mqd_t mqdes, const char *msg_ptr, size_t msg_len, unsigned msg_prio); } + SYS_MQ_RECEIVE = 517 // { ssize_t mq_receive(mqd_t mqdes, char *msg_ptr, size_t msg_len, unsigned *msg_prio); } + SYS_MQ_TIMEDSEND = 518 // { int mq_timedsend(mqd_t mqdes, const char *msg_ptr, size_t msg_len, unsigned msg_prio, const struct timespec *abs_timeout); } + SYS_MQ_TIMEDRECEIVE = 519 // { ssize_t mq_timedreceive(mqd_t mqdes, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); } SYS_IOPRIO_SET = 520 // { int ioprio_set(int which, int who, int prio); } SYS_IOPRIO_GET = 521 // { int ioprio_get(int which, int who); } SYS_CHROOT_KERNEL = 522 // { int chroot_kernel(char *path); } - SYS_RENAMEAT = 523 // { int renameat(int oldfd, char *old, int newfd, \ + SYS_RENAMEAT = 523 // { int renameat(int oldfd, char *old, int newfd, char *new); } SYS_MKDIRAT = 524 // { int mkdirat(int fd, char *path, mode_t mode); } SYS_MKFIFOAT = 525 // { int mkfifoat(int fd, char *path, mode_t mode); } - SYS_MKNODAT = 526 // { int mknodat(int fd, char *path, mode_t mode, \ - SYS_READLINKAT = 527 // { int readlinkat(int fd, char *path, char *buf, \ + SYS_MKNODAT = 526 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); } + SYS_READLINKAT = 527 // { int readlinkat(int fd, char *path, char *buf, size_t bufsize); } SYS_SYMLINKAT = 528 // { int symlinkat(char *path1, int fd, char *path2); } SYS_SWAPOFF = 529 // { int swapoff(char *name); } - SYS_VQUOTACTL = 530 // { int vquotactl(const char *path, \ - SYS_LINKAT = 531 // { int linkat(int fd1, char *path1, int fd2, \ + SYS_VQUOTACTL = 530 // { int vquotactl(const char *path, struct plistref *pref); } + SYS_LINKAT = 531 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flags); } SYS_EACCESS = 532 // { int eaccess(char *path, int flags); } SYS_LPATHCONF = 533 // { int lpathconf(char *path, int name); } SYS_VMM_GUEST_CTL = 534 // { int vmm_guest_ctl(int op, struct vmm_guest_options *options); } @@ -308,7 +308,7 @@ const ( SYS_FUTIMENS = 540 // { int futimens(int fd, const struct timespec *ts); } SYS_ACCEPT4 = 541 // { int accept4(int s, caddr_t name, int *anamelen, int flags); } SYS_LWP_SETNAME = 542 // { int lwp_setname(lwpid_t tid, const char *name); } - SYS_PPOLL = 543 // { int ppoll(struct pollfd *fds, u_int nfds, \ + SYS_PPOLL = 543 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *sigmask); } SYS_LWP_SETAFFINITY = 544 // { int lwp_setaffinity(pid_t pid, lwpid_t tid, const cpumask_t *mask); } SYS_LWP_GETAFFINITY = 545 // { int lwp_getaffinity(pid_t pid, lwpid_t tid, cpumask_t *mask); } SYS_LWP_CREATE2 = 546 // { int lwp_create2(struct lwp_params *params, const cpumask_t *mask); } diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go index 1ab8780c3..55c3a3294 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go @@ -1,4 +1,4 @@ -// mksysnum_freebsd.pl +// go run mksysnum.go https://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master // Code generated by the command above; see README.md. DO NOT EDIT. // +build 386,freebsd @@ -7,13 +7,13 @@ package unix const ( // SYS_NOSYS = 0; // { int nosys(void); } syscall nosys_args int - SYS_EXIT = 1 // { void sys_exit(int rval); } exit \ + SYS_EXIT = 1 // { void sys_exit(int rval); } exit sys_exit_args void SYS_FORK = 2 // { int fork(void); } - SYS_READ = 3 // { ssize_t read(int fd, void *buf, \ - SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, \ + SYS_READ = 3 // { ssize_t read(int fd, void *buf, size_t nbyte); } + SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, size_t nbyte); } SYS_OPEN = 5 // { int open(char *path, int flags, int mode); } SYS_CLOSE = 6 // { int close(int fd); } - SYS_WAIT4 = 7 // { int wait4(int pid, int *status, \ + SYS_WAIT4 = 7 // { int wait4(int pid, int *status, int options, struct rusage *rusage); } SYS_LINK = 9 // { int link(char *path, char *link); } SYS_UNLINK = 10 // { int unlink(char *path); } SYS_CHDIR = 12 // { int chdir(char *path); } @@ -21,20 +21,20 @@ const ( SYS_MKNOD = 14 // { int mknod(char *path, int mode, int dev); } SYS_CHMOD = 15 // { int chmod(char *path, int mode); } SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } - SYS_OBREAK = 17 // { int obreak(char *nsize); } break \ + SYS_OBREAK = 17 // { int obreak(char *nsize); } break obreak_args int SYS_GETPID = 20 // { pid_t getpid(void); } - SYS_MOUNT = 21 // { int mount(char *type, char *path, \ + SYS_MOUNT = 21 // { int mount(char *type, char *path, int flags, caddr_t data); } SYS_UNMOUNT = 22 // { int unmount(char *path, int flags); } SYS_SETUID = 23 // { int setuid(uid_t uid); } SYS_GETUID = 24 // { uid_t getuid(void); } SYS_GETEUID = 25 // { uid_t geteuid(void); } - SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, \ - SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, \ - SYS_SENDMSG = 28 // { int sendmsg(int s, struct msghdr *msg, \ - SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, \ - SYS_ACCEPT = 30 // { int accept(int s, \ - SYS_GETPEERNAME = 31 // { int getpeername(int fdes, \ - SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, \ + SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, caddr_t addr, int data); } + SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, int flags); } + SYS_SENDMSG = 28 // { int sendmsg(int s, struct msghdr *msg, int flags); } + SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, size_t len, int flags, struct sockaddr * __restrict from, __socklen_t * __restrict fromlenaddr); } + SYS_ACCEPT = 30 // { int accept(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen); } + SYS_GETPEERNAME = 31 // { int getpeername(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); } + SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); } SYS_ACCESS = 33 // { int access(char *path, int amode); } SYS_CHFLAGS = 34 // { int chflags(const char *path, u_long flags); } SYS_FCHFLAGS = 35 // { int fchflags(int fd, u_long flags); } @@ -44,55 +44,55 @@ const ( SYS_DUP = 41 // { int dup(u_int fd); } SYS_PIPE = 42 // { int pipe(void); } SYS_GETEGID = 43 // { gid_t getegid(void); } - SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, \ - SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, \ + SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, size_t offset, u_int scale); } + SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, int facs, int pid); } SYS_GETGID = 47 // { gid_t getgid(void); } - SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int \ + SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int namelen); } SYS_SETLOGIN = 50 // { int setlogin(char *namebuf); } SYS_ACCT = 51 // { int acct(char *path); } - SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, \ - SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, \ + SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, stack_t *oss); } + SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, caddr_t data); } SYS_REBOOT = 55 // { int reboot(int opt); } SYS_REVOKE = 56 // { int revoke(char *path); } SYS_SYMLINK = 57 // { int symlink(char *path, char *link); } - SYS_READLINK = 58 // { ssize_t readlink(char *path, char *buf, \ - SYS_EXECVE = 59 // { int execve(char *fname, char **argv, \ - SYS_UMASK = 60 // { int umask(int newmask); } umask umask_args \ + SYS_READLINK = 58 // { ssize_t readlink(char *path, char *buf, size_t count); } + SYS_EXECVE = 59 // { int execve(char *fname, char **argv, char **envv); } + SYS_UMASK = 60 // { int umask(int newmask); } umask umask_args int SYS_CHROOT = 61 // { int chroot(char *path); } - SYS_MSYNC = 65 // { int msync(void *addr, size_t len, \ + SYS_MSYNC = 65 // { int msync(void *addr, size_t len, int flags); } SYS_VFORK = 66 // { int vfork(void); } SYS_SBRK = 69 // { int sbrk(int incr); } SYS_SSTK = 70 // { int sstk(int incr); } - SYS_OVADVISE = 72 // { int ovadvise(int anom); } vadvise \ + SYS_OVADVISE = 72 // { int ovadvise(int anom); } vadvise ovadvise_args int SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); } - SYS_MPROTECT = 74 // { int mprotect(const void *addr, size_t len, \ - SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, \ - SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, \ - SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, \ - SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, \ + SYS_MPROTECT = 74 // { int mprotect(const void *addr, size_t len, int prot); } + SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, int behav); } + SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, char *vec); } + SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, gid_t *gidset); } + SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, gid_t *gidset); } SYS_GETPGRP = 81 // { int getpgrp(void); } SYS_SETPGID = 82 // { int setpgid(int pid, int pgid); } - SYS_SETITIMER = 83 // { int setitimer(u_int which, struct \ + SYS_SETITIMER = 83 // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); } SYS_SWAPON = 85 // { int swapon(char *name); } - SYS_GETITIMER = 86 // { int getitimer(u_int which, \ + SYS_GETITIMER = 86 // { int getitimer(u_int which, struct itimerval *itv); } SYS_GETDTABLESIZE = 89 // { int getdtablesize(void); } SYS_DUP2 = 90 // { int dup2(u_int from, u_int to); } SYS_FCNTL = 92 // { int fcntl(int fd, int cmd, long arg); } - SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, \ + SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } SYS_FSYNC = 95 // { int fsync(int fd); } - SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, \ - SYS_SOCKET = 97 // { int socket(int domain, int type, \ - SYS_CONNECT = 98 // { int connect(int s, caddr_t name, \ + SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, int prio); } + SYS_SOCKET = 97 // { int socket(int domain, int type, int protocol); } + SYS_CONNECT = 98 // { int connect(int s, caddr_t name, int namelen); } SYS_GETPRIORITY = 100 // { int getpriority(int which, int who); } - SYS_BIND = 104 // { int bind(int s, caddr_t name, \ - SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, \ + SYS_BIND = 104 // { int bind(int s, caddr_t name, int namelen); } + SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); } SYS_LISTEN = 106 // { int listen(int s, int backlog); } - SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, \ - SYS_GETRUSAGE = 117 // { int getrusage(int who, \ - SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, \ - SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, \ - SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, \ - SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, \ + SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); } + SYS_GETRUSAGE = 117 // { int getrusage(int who, struct rusage *rusage); } + SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); } + SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); } + SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); } + SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); } SYS_FCHOWN = 123 // { int fchown(int fd, int uid, int gid); } SYS_FCHMOD = 124 // { int fchmod(int fd, int mode); } SYS_SETREUID = 126 // { int setreuid(int ruid, int euid); } @@ -100,26 +100,26 @@ const ( SYS_RENAME = 128 // { int rename(char *from, char *to); } SYS_FLOCK = 131 // { int flock(int fd, int how); } SYS_MKFIFO = 132 // { int mkfifo(char *path, int mode); } - SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, \ + SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); } SYS_SHUTDOWN = 134 // { int shutdown(int s, int how); } - SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, \ + SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); } SYS_MKDIR = 136 // { int mkdir(char *path, int mode); } SYS_RMDIR = 137 // { int rmdir(char *path); } - SYS_UTIMES = 138 // { int utimes(char *path, \ - SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, \ + SYS_UTIMES = 138 // { int utimes(char *path, struct timeval *tptr); } + SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); } SYS_SETSID = 147 // { int setsid(void); } - SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, \ + SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); } SYS_NLM_SYSCALL = 154 // { int nlm_syscall(int debug_level, int grace_period, int addr_count, char **addrs); } SYS_NFSSVC = 155 // { int nfssvc(int flag, caddr_t argp); } - SYS_LGETFH = 160 // { int lgetfh(char *fname, \ - SYS_GETFH = 161 // { int getfh(char *fname, \ + SYS_LGETFH = 160 // { int lgetfh(char *fname, struct fhandle *fhp); } + SYS_GETFH = 161 // { int getfh(char *fname, struct fhandle *fhp); } SYS_SYSARCH = 165 // { int sysarch(int op, char *parms); } - SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, \ - SYS_SEMSYS = 169 // { int semsys(int which, int a2, int a3, \ - SYS_MSGSYS = 170 // { int msgsys(int which, int a2, int a3, \ - SYS_SHMSYS = 171 // { int shmsys(int which, int a2, int a3, \ - SYS_FREEBSD6_PREAD = 173 // { ssize_t freebsd6_pread(int fd, void *buf, \ - SYS_FREEBSD6_PWRITE = 174 // { ssize_t freebsd6_pwrite(int fd, \ + SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); } + SYS_SEMSYS = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); } + SYS_MSGSYS = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); } + SYS_SHMSYS = 171 // { int shmsys(int which, int a2, int a3, int a4); } + SYS_FREEBSD6_PREAD = 173 // { ssize_t freebsd6_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); } + SYS_FREEBSD6_PWRITE = 174 // { ssize_t freebsd6_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); } SYS_SETFIB = 175 // { int setfib(int fibnum); } SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); } SYS_SETGID = 181 // { int setgid(gid_t gid); } @@ -130,274 +130,274 @@ const ( SYS_LSTAT = 190 // { int lstat(char *path, struct stat *ub); } SYS_PATHCONF = 191 // { int pathconf(char *path, int name); } SYS_FPATHCONF = 192 // { int fpathconf(int fd, int name); } - SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, \ - SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, \ - SYS_GETDIRENTRIES = 196 // { int getdirentries(int fd, char *buf, \ - SYS_FREEBSD6_MMAP = 197 // { caddr_t freebsd6_mmap(caddr_t addr, \ - SYS_FREEBSD6_LSEEK = 199 // { off_t freebsd6_lseek(int fd, int pad, \ - SYS_FREEBSD6_TRUNCATE = 200 // { int freebsd6_truncate(char *path, int pad, \ - SYS_FREEBSD6_FTRUNCATE = 201 // { int freebsd6_ftruncate(int fd, int pad, \ - SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, \ + SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int + SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int + SYS_GETDIRENTRIES = 196 // { int getdirentries(int fd, char *buf, u_int count, long *basep); } + SYS_FREEBSD6_MMAP = 197 // { caddr_t freebsd6_mmap(caddr_t addr, size_t len, int prot, int flags, int fd, int pad, off_t pos); } + SYS_FREEBSD6_LSEEK = 199 // { off_t freebsd6_lseek(int fd, int pad, off_t offset, int whence); } + SYS_FREEBSD6_TRUNCATE = 200 // { int freebsd6_truncate(char *path, int pad, off_t length); } + SYS_FREEBSD6_FTRUNCATE = 201 // { int freebsd6_ftruncate(int fd, int pad, off_t length); } + SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int SYS_MLOCK = 203 // { int mlock(const void *addr, size_t len); } SYS_MUNLOCK = 204 // { int munlock(const void *addr, size_t len); } SYS_UNDELETE = 205 // { int undelete(char *path); } SYS_FUTIMES = 206 // { int futimes(int fd, struct timeval *tptr); } SYS_GETPGID = 207 // { int getpgid(pid_t pid); } - SYS_POLL = 209 // { int poll(struct pollfd *fds, u_int nfds, \ - SYS_SEMGET = 221 // { int semget(key_t key, int nsems, \ - SYS_SEMOP = 222 // { int semop(int semid, struct sembuf *sops, \ + SYS_POLL = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS_SEMGET = 221 // { int semget(key_t key, int nsems, int semflg); } + SYS_SEMOP = 222 // { int semop(int semid, struct sembuf *sops, size_t nsops); } SYS_MSGGET = 225 // { int msgget(key_t key, int msgflg); } - SYS_MSGSND = 226 // { int msgsnd(int msqid, const void *msgp, \ - SYS_MSGRCV = 227 // { int msgrcv(int msqid, void *msgp, \ - SYS_SHMAT = 228 // { int shmat(int shmid, const void *shmaddr, \ + SYS_MSGSND = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } + SYS_MSGRCV = 227 // { int msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } + SYS_SHMAT = 228 // { int shmat(int shmid, const void *shmaddr, int shmflg); } SYS_SHMDT = 230 // { int shmdt(const void *shmaddr); } - SYS_SHMGET = 231 // { int shmget(key_t key, size_t size, \ - SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, \ - SYS_CLOCK_SETTIME = 233 // { int clock_settime( \ - SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, \ - SYS_KTIMER_CREATE = 235 // { int ktimer_create(clockid_t clock_id, \ + SYS_SHMGET = 231 // { int shmget(key_t key, size_t size, int shmflg); } + SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); } + SYS_CLOCK_SETTIME = 233 // { int clock_settime( clockid_t clock_id, const struct timespec *tp); } + SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); } + SYS_KTIMER_CREATE = 235 // { int ktimer_create(clockid_t clock_id, struct sigevent *evp, int *timerid); } SYS_KTIMER_DELETE = 236 // { int ktimer_delete(int timerid); } - SYS_KTIMER_SETTIME = 237 // { int ktimer_settime(int timerid, int flags, \ - SYS_KTIMER_GETTIME = 238 // { int ktimer_gettime(int timerid, struct \ + SYS_KTIMER_SETTIME = 237 // { int ktimer_settime(int timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); } + SYS_KTIMER_GETTIME = 238 // { int ktimer_gettime(int timerid, struct itimerspec *value); } SYS_KTIMER_GETOVERRUN = 239 // { int ktimer_getoverrun(int timerid); } - SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, \ + SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } SYS_FFCLOCK_GETCOUNTER = 241 // { int ffclock_getcounter(ffcounter *ffcount); } - SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate( \ - SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate( \ - SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id,\ + SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate( struct ffclock_estimate *cest); } + SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate( struct ffclock_estimate *cest); } + SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id,int which, clockid_t *clock_id); } SYS_NTP_GETTIME = 248 // { int ntp_gettime(struct ntptimeval *ntvp); } - SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, \ + SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, int inherit); } SYS_RFORK = 251 // { int rfork(int flags); } - SYS_OPENBSD_POLL = 252 // { int openbsd_poll(struct pollfd *fds, \ + SYS_OPENBSD_POLL = 252 // { int openbsd_poll(struct pollfd *fds, u_int nfds, int timeout); } SYS_ISSETUGID = 253 // { int issetugid(void); } SYS_LCHOWN = 254 // { int lchown(char *path, int uid, int gid); } SYS_AIO_READ = 255 // { int aio_read(struct aiocb *aiocbp); } SYS_AIO_WRITE = 256 // { int aio_write(struct aiocb *aiocbp); } - SYS_LIO_LISTIO = 257 // { int lio_listio(int mode, \ - SYS_GETDENTS = 272 // { int getdents(int fd, char *buf, \ + SYS_LIO_LISTIO = 257 // { int lio_listio(int mode, struct aiocb * const *acb_list, int nent, struct sigevent *sig); } + SYS_GETDENTS = 272 // { int getdents(int fd, char *buf, size_t count); } SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } - SYS_LUTIMES = 276 // { int lutimes(char *path, \ + SYS_LUTIMES = 276 // { int lutimes(char *path, struct timeval *tptr); } SYS_NSTAT = 278 // { int nstat(char *path, struct nstat *ub); } SYS_NFSTAT = 279 // { int nfstat(int fd, struct nstat *sb); } SYS_NLSTAT = 280 // { int nlstat(char *path, struct nstat *ub); } - SYS_PREADV = 289 // { ssize_t preadv(int fd, struct iovec *iovp, \ - SYS_PWRITEV = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, \ - SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, \ - SYS_FHSTAT = 299 // { int fhstat(const struct fhandle *u_fhp, \ + SYS_PREADV = 289 // { ssize_t preadv(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); } + SYS_PWRITEV = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); } + SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); } + SYS_FHSTAT = 299 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); } SYS_MODNEXT = 300 // { int modnext(int modid); } - SYS_MODSTAT = 301 // { int modstat(int modid, \ + SYS_MODSTAT = 301 // { int modstat(int modid, struct module_stat *stat); } SYS_MODFNEXT = 302 // { int modfnext(int modid); } SYS_MODFIND = 303 // { int modfind(const char *name); } SYS_KLDLOAD = 304 // { int kldload(const char *file); } SYS_KLDUNLOAD = 305 // { int kldunload(int fileid); } SYS_KLDFIND = 306 // { int kldfind(const char *file); } SYS_KLDNEXT = 307 // { int kldnext(int fileid); } - SYS_KLDSTAT = 308 // { int kldstat(int fileid, struct \ + SYS_KLDSTAT = 308 // { int kldstat(int fileid, struct kld_file_stat* stat); } SYS_KLDFIRSTMOD = 309 // { int kldfirstmod(int fileid); } SYS_GETSID = 310 // { int getsid(pid_t pid); } - SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, \ - SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, \ + SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); } + SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); } SYS_AIO_RETURN = 314 // { int aio_return(struct aiocb *aiocbp); } - SYS_AIO_SUSPEND = 315 // { int aio_suspend( \ - SYS_AIO_CANCEL = 316 // { int aio_cancel(int fd, \ + SYS_AIO_SUSPEND = 315 // { int aio_suspend( struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); } + SYS_AIO_CANCEL = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); } SYS_AIO_ERROR = 317 // { int aio_error(struct aiocb *aiocbp); } SYS_OAIO_READ = 318 // { int oaio_read(struct oaiocb *aiocbp); } SYS_OAIO_WRITE = 319 // { int oaio_write(struct oaiocb *aiocbp); } - SYS_OLIO_LISTIO = 320 // { int olio_listio(int mode, \ + SYS_OLIO_LISTIO = 320 // { int olio_listio(int mode, struct oaiocb * const *acb_list, int nent, struct osigevent *sig); } SYS_YIELD = 321 // { int yield(void); } SYS_MLOCKALL = 324 // { int mlockall(int how); } SYS_MUNLOCKALL = 325 // { int munlockall(void); } SYS___GETCWD = 326 // { int __getcwd(char *buf, u_int buflen); } - SYS_SCHED_SETPARAM = 327 // { int sched_setparam (pid_t pid, \ - SYS_SCHED_GETPARAM = 328 // { int sched_getparam (pid_t pid, struct \ - SYS_SCHED_SETSCHEDULER = 329 // { int sched_setscheduler (pid_t pid, int \ + SYS_SCHED_SETPARAM = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); } + SYS_SCHED_GETPARAM = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); } + SYS_SCHED_SETSCHEDULER = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); } SYS_SCHED_GETSCHEDULER = 330 // { int sched_getscheduler (pid_t pid); } SYS_SCHED_YIELD = 331 // { int sched_yield (void); } SYS_SCHED_GET_PRIORITY_MAX = 332 // { int sched_get_priority_max (int policy); } SYS_SCHED_GET_PRIORITY_MIN = 333 // { int sched_get_priority_min (int policy); } - SYS_SCHED_RR_GET_INTERVAL = 334 // { int sched_rr_get_interval (pid_t pid, \ + SYS_SCHED_RR_GET_INTERVAL = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); } SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); } - SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, \ + SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, void *data); } SYS_JAIL = 338 // { int jail(struct jail *jail); } - SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, \ + SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); } SYS_SIGSUSPEND = 341 // { int sigsuspend(const sigset_t *sigmask); } SYS_SIGPENDING = 343 // { int sigpending(sigset_t *set); } - SYS_SIGTIMEDWAIT = 345 // { int sigtimedwait(const sigset_t *set, \ - SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set, \ - SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, \ - SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, \ - SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, \ - SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, \ - SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, \ - SYS___ACL_DELETE_FD = 352 // { int __acl_delete_fd(int filedes, \ - SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, \ - SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, \ - SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, \ - SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file( \ - SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file( \ - SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, \ - SYS_AIO_WAITCOMPLETE = 359 // { int aio_waitcomplete( \ - SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, \ - SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, \ + SYS_SIGTIMEDWAIT = 345 // { int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec *timeout); } + SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set, siginfo_t *info); } + SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, acl_type_t type); } + SYS___ACL_DELETE_FD = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); } + SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } + SYS_AIO_WAITCOMPLETE = 359 // { int aio_waitcomplete( struct aiocb **aiocbp, struct timespec *timeout); } + SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } + SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } SYS_KQUEUE = 362 // { int kqueue(void); } - SYS_KEVENT = 363 // { int kevent(int fd, \ - SYS_EXTATTR_SET_FD = 371 // { ssize_t extattr_set_fd(int fd, \ - SYS_EXTATTR_GET_FD = 372 // { ssize_t extattr_get_fd(int fd, \ - SYS_EXTATTR_DELETE_FD = 373 // { int extattr_delete_fd(int fd, \ + SYS_KEVENT = 363 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } + SYS_EXTATTR_SET_FD = 371 // { ssize_t extattr_set_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_GET_FD = 372 // { ssize_t extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FD = 373 // { int extattr_delete_fd(int fd, int attrnamespace, const char *attrname); } SYS___SETUGID = 374 // { int __setugid(int flag); } SYS_EACCESS = 376 // { int eaccess(char *path, int amode); } - SYS_NMOUNT = 378 // { int nmount(struct iovec *iovp, \ + SYS_NMOUNT = 378 // { int nmount(struct iovec *iovp, unsigned int iovcnt, int flags); } SYS___MAC_GET_PROC = 384 // { int __mac_get_proc(struct mac *mac_p); } SYS___MAC_SET_PROC = 385 // { int __mac_set_proc(struct mac *mac_p); } - SYS___MAC_GET_FD = 386 // { int __mac_get_fd(int fd, \ - SYS___MAC_GET_FILE = 387 // { int __mac_get_file(const char *path_p, \ - SYS___MAC_SET_FD = 388 // { int __mac_set_fd(int fd, \ - SYS___MAC_SET_FILE = 389 // { int __mac_set_file(const char *path_p, \ - SYS_KENV = 390 // { int kenv(int what, const char *name, \ - SYS_LCHFLAGS = 391 // { int lchflags(const char *path, \ - SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, \ - SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, \ - SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, \ - SYS_GETFSSTAT = 395 // { int getfsstat(struct statfs *buf, \ - SYS_STATFS = 396 // { int statfs(char *path, \ + SYS___MAC_GET_FD = 386 // { int __mac_get_fd(int fd, struct mac *mac_p); } + SYS___MAC_GET_FILE = 387 // { int __mac_get_file(const char *path_p, struct mac *mac_p); } + SYS___MAC_SET_FD = 388 // { int __mac_set_fd(int fd, struct mac *mac_p); } + SYS___MAC_SET_FILE = 389 // { int __mac_set_file(const char *path_p, struct mac *mac_p); } + SYS_KENV = 390 // { int kenv(int what, const char *name, char *value, int len); } + SYS_LCHFLAGS = 391 // { int lchflags(const char *path, u_long flags); } + SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, int count); } + SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); } + SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, int call, void *arg); } + SYS_GETFSSTAT = 395 // { int getfsstat(struct statfs *buf, long bufsize, int flags); } + SYS_STATFS = 396 // { int statfs(char *path, struct statfs *buf); } SYS_FSTATFS = 397 // { int fstatfs(int fd, struct statfs *buf); } - SYS_FHSTATFS = 398 // { int fhstatfs(const struct fhandle *u_fhp, \ + SYS_FHSTATFS = 398 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } SYS_KSEM_CLOSE = 400 // { int ksem_close(semid_t id); } SYS_KSEM_POST = 401 // { int ksem_post(semid_t id); } SYS_KSEM_WAIT = 402 // { int ksem_wait(semid_t id); } SYS_KSEM_TRYWAIT = 403 // { int ksem_trywait(semid_t id); } - SYS_KSEM_INIT = 404 // { int ksem_init(semid_t *idp, \ - SYS_KSEM_OPEN = 405 // { int ksem_open(semid_t *idp, \ + SYS_KSEM_INIT = 404 // { int ksem_init(semid_t *idp, unsigned int value); } + SYS_KSEM_OPEN = 405 // { int ksem_open(semid_t *idp, const char *name, int oflag, mode_t mode, unsigned int value); } SYS_KSEM_UNLINK = 406 // { int ksem_unlink(const char *name); } SYS_KSEM_GETVALUE = 407 // { int ksem_getvalue(semid_t id, int *val); } SYS_KSEM_DESTROY = 408 // { int ksem_destroy(semid_t id); } - SYS___MAC_GET_PID = 409 // { int __mac_get_pid(pid_t pid, \ - SYS___MAC_GET_LINK = 410 // { int __mac_get_link(const char *path_p, \ - SYS___MAC_SET_LINK = 411 // { int __mac_set_link(const char *path_p, \ - SYS_EXTATTR_SET_LINK = 412 // { ssize_t extattr_set_link( \ - SYS_EXTATTR_GET_LINK = 413 // { ssize_t extattr_get_link( \ - SYS_EXTATTR_DELETE_LINK = 414 // { int extattr_delete_link( \ - SYS___MAC_EXECVE = 415 // { int __mac_execve(char *fname, char **argv, \ - SYS_SIGACTION = 416 // { int sigaction(int sig, \ - SYS_SIGRETURN = 417 // { int sigreturn( \ + SYS___MAC_GET_PID = 409 // { int __mac_get_pid(pid_t pid, struct mac *mac_p); } + SYS___MAC_GET_LINK = 410 // { int __mac_get_link(const char *path_p, struct mac *mac_p); } + SYS___MAC_SET_LINK = 411 // { int __mac_set_link(const char *path_p, struct mac *mac_p); } + SYS_EXTATTR_SET_LINK = 412 // { ssize_t extattr_set_link( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_GET_LINK = 413 // { ssize_t extattr_get_link( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_LINK = 414 // { int extattr_delete_link( const char *path, int attrnamespace, const char *attrname); } + SYS___MAC_EXECVE = 415 // { int __mac_execve(char *fname, char **argv, char **envv, struct mac *mac_p); } + SYS_SIGACTION = 416 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); } + SYS_SIGRETURN = 417 // { int sigreturn( const struct __ucontext *sigcntxp); } SYS_GETCONTEXT = 421 // { int getcontext(struct __ucontext *ucp); } - SYS_SETCONTEXT = 422 // { int setcontext( \ - SYS_SWAPCONTEXT = 423 // { int swapcontext(struct __ucontext *oucp, \ + SYS_SETCONTEXT = 422 // { int setcontext( const struct __ucontext *ucp); } + SYS_SWAPCONTEXT = 423 // { int swapcontext(struct __ucontext *oucp, const struct __ucontext *ucp); } SYS_SWAPOFF = 424 // { int swapoff(const char *name); } - SYS___ACL_GET_LINK = 425 // { int __acl_get_link(const char *path, \ - SYS___ACL_SET_LINK = 426 // { int __acl_set_link(const char *path, \ - SYS___ACL_DELETE_LINK = 427 // { int __acl_delete_link(const char *path, \ - SYS___ACL_ACLCHECK_LINK = 428 // { int __acl_aclcheck_link(const char *path, \ - SYS_SIGWAIT = 429 // { int sigwait(const sigset_t *set, \ - SYS_THR_CREATE = 430 // { int thr_create(ucontext_t *ctx, long *id, \ + SYS___ACL_GET_LINK = 425 // { int __acl_get_link(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_SET_LINK = 426 // { int __acl_set_link(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_DELETE_LINK = 427 // { int __acl_delete_link(const char *path, acl_type_t type); } + SYS___ACL_ACLCHECK_LINK = 428 // { int __acl_aclcheck_link(const char *path, acl_type_t type, struct acl *aclp); } + SYS_SIGWAIT = 429 // { int sigwait(const sigset_t *set, int *sig); } + SYS_THR_CREATE = 430 // { int thr_create(ucontext_t *ctx, long *id, int flags); } SYS_THR_EXIT = 431 // { void thr_exit(long *state); } SYS_THR_SELF = 432 // { int thr_self(long *id); } SYS_THR_KILL = 433 // { int thr_kill(long id, int sig); } SYS__UMTX_LOCK = 434 // { int _umtx_lock(struct umtx *umtx); } SYS__UMTX_UNLOCK = 435 // { int _umtx_unlock(struct umtx *umtx); } SYS_JAIL_ATTACH = 436 // { int jail_attach(int jid); } - SYS_EXTATTR_LIST_FD = 437 // { ssize_t extattr_list_fd(int fd, \ - SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file( \ - SYS_EXTATTR_LIST_LINK = 439 // { ssize_t extattr_list_link( \ - SYS_KSEM_TIMEDWAIT = 441 // { int ksem_timedwait(semid_t id, \ - SYS_THR_SUSPEND = 442 // { int thr_suspend( \ + SYS_EXTATTR_LIST_FD = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file( const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_LINK = 439 // { ssize_t extattr_list_link( const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_KSEM_TIMEDWAIT = 441 // { int ksem_timedwait(semid_t id, const struct timespec *abstime); } + SYS_THR_SUSPEND = 442 // { int thr_suspend( const struct timespec *timeout); } SYS_THR_WAKE = 443 // { int thr_wake(long id); } SYS_KLDUNLOADF = 444 // { int kldunloadf(int fileid, int flags); } - SYS_AUDIT = 445 // { int audit(const void *record, \ - SYS_AUDITON = 446 // { int auditon(int cmd, void *data, \ + SYS_AUDIT = 445 // { int audit(const void *record, u_int length); } + SYS_AUDITON = 446 // { int auditon(int cmd, void *data, u_int length); } SYS_GETAUID = 447 // { int getauid(uid_t *auid); } SYS_SETAUID = 448 // { int setauid(uid_t *auid); } SYS_GETAUDIT = 449 // { int getaudit(struct auditinfo *auditinfo); } SYS_SETAUDIT = 450 // { int setaudit(struct auditinfo *auditinfo); } - SYS_GETAUDIT_ADDR = 451 // { int getaudit_addr( \ - SYS_SETAUDIT_ADDR = 452 // { int setaudit_addr( \ + SYS_GETAUDIT_ADDR = 451 // { int getaudit_addr( struct auditinfo_addr *auditinfo_addr, u_int length); } + SYS_SETAUDIT_ADDR = 452 // { int setaudit_addr( struct auditinfo_addr *auditinfo_addr, u_int length); } SYS_AUDITCTL = 453 // { int auditctl(char *path); } - SYS__UMTX_OP = 454 // { int _umtx_op(void *obj, int op, \ - SYS_THR_NEW = 455 // { int thr_new(struct thr_param *param, \ + SYS__UMTX_OP = 454 // { int _umtx_op(void *obj, int op, u_long val, void *uaddr1, void *uaddr2); } + SYS_THR_NEW = 455 // { int thr_new(struct thr_param *param, int param_size); } SYS_SIGQUEUE = 456 // { int sigqueue(pid_t pid, int signum, void *value); } - SYS_KMQ_OPEN = 457 // { int kmq_open(const char *path, int flags, \ - SYS_KMQ_SETATTR = 458 // { int kmq_setattr(int mqd, \ - SYS_KMQ_TIMEDRECEIVE = 459 // { int kmq_timedreceive(int mqd, \ - SYS_KMQ_TIMEDSEND = 460 // { int kmq_timedsend(int mqd, \ - SYS_KMQ_NOTIFY = 461 // { int kmq_notify(int mqd, \ + SYS_KMQ_OPEN = 457 // { int kmq_open(const char *path, int flags, mode_t mode, const struct mq_attr *attr); } + SYS_KMQ_SETATTR = 458 // { int kmq_setattr(int mqd, const struct mq_attr *attr, struct mq_attr *oattr); } + SYS_KMQ_TIMEDRECEIVE = 459 // { int kmq_timedreceive(int mqd, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); } + SYS_KMQ_TIMEDSEND = 460 // { int kmq_timedsend(int mqd, const char *msg_ptr, size_t msg_len,unsigned msg_prio, const struct timespec *abs_timeout);} + SYS_KMQ_NOTIFY = 461 // { int kmq_notify(int mqd, const struct sigevent *sigev); } SYS_KMQ_UNLINK = 462 // { int kmq_unlink(const char *path); } SYS_ABORT2 = 463 // { int abort2(const char *why, int nargs, void **args); } SYS_THR_SET_NAME = 464 // { int thr_set_name(long id, const char *name); } SYS_AIO_FSYNC = 465 // { int aio_fsync(int op, struct aiocb *aiocbp); } - SYS_RTPRIO_THREAD = 466 // { int rtprio_thread(int function, \ + SYS_RTPRIO_THREAD = 466 // { int rtprio_thread(int function, lwpid_t lwpid, struct rtprio *rtp); } SYS_SCTP_PEELOFF = 471 // { int sctp_peeloff(int sd, uint32_t name); } - SYS_SCTP_GENERIC_SENDMSG = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, \ - SYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, \ - SYS_SCTP_GENERIC_RECVMSG = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, \ - SYS_PREAD = 475 // { ssize_t pread(int fd, void *buf, \ - SYS_PWRITE = 476 // { ssize_t pwrite(int fd, const void *buf, \ - SYS_MMAP = 477 // { caddr_t mmap(caddr_t addr, size_t len, \ - SYS_LSEEK = 478 // { off_t lseek(int fd, off_t offset, \ + SYS_SCTP_GENERIC_SENDMSG = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); } + SYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); } + SYS_SCTP_GENERIC_RECVMSG = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, struct sockaddr * from, __socklen_t *fromlenaddr, struct sctp_sndrcvinfo *sinfo, int *msg_flags); } + SYS_PREAD = 475 // { ssize_t pread(int fd, void *buf, size_t nbyte, off_t offset); } + SYS_PWRITE = 476 // { ssize_t pwrite(int fd, const void *buf, size_t nbyte, off_t offset); } + SYS_MMAP = 477 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, off_t pos); } + SYS_LSEEK = 478 // { off_t lseek(int fd, off_t offset, int whence); } SYS_TRUNCATE = 479 // { int truncate(char *path, off_t length); } SYS_FTRUNCATE = 480 // { int ftruncate(int fd, off_t length); } SYS_THR_KILL2 = 481 // { int thr_kill2(pid_t pid, long id, int sig); } - SYS_SHM_OPEN = 482 // { int shm_open(const char *path, int flags, \ + SYS_SHM_OPEN = 482 // { int shm_open(const char *path, int flags, mode_t mode); } SYS_SHM_UNLINK = 483 // { int shm_unlink(const char *path); } SYS_CPUSET = 484 // { int cpuset(cpusetid_t *setid); } - SYS_CPUSET_SETID = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, \ - SYS_CPUSET_GETID = 486 // { int cpuset_getid(cpulevel_t level, \ - SYS_CPUSET_GETAFFINITY = 487 // { int cpuset_getaffinity(cpulevel_t level, \ - SYS_CPUSET_SETAFFINITY = 488 // { int cpuset_setaffinity(cpulevel_t level, \ - SYS_FACCESSAT = 489 // { int faccessat(int fd, char *path, int amode, \ - SYS_FCHMODAT = 490 // { int fchmodat(int fd, char *path, mode_t mode, \ - SYS_FCHOWNAT = 491 // { int fchownat(int fd, char *path, uid_t uid, \ - SYS_FEXECVE = 492 // { int fexecve(int fd, char **argv, \ - SYS_FSTATAT = 493 // { int fstatat(int fd, char *path, \ - SYS_FUTIMESAT = 494 // { int futimesat(int fd, char *path, \ - SYS_LINKAT = 495 // { int linkat(int fd1, char *path1, int fd2, \ + SYS_CPUSET_SETID = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, cpusetid_t setid); } + SYS_CPUSET_GETID = 486 // { int cpuset_getid(cpulevel_t level, cpuwhich_t which, id_t id, cpusetid_t *setid); } + SYS_CPUSET_GETAFFINITY = 487 // { int cpuset_getaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, cpuset_t *mask); } + SYS_CPUSET_SETAFFINITY = 488 // { int cpuset_setaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, const cpuset_t *mask); } + SYS_FACCESSAT = 489 // { int faccessat(int fd, char *path, int amode, int flag); } + SYS_FCHMODAT = 490 // { int fchmodat(int fd, char *path, mode_t mode, int flag); } + SYS_FCHOWNAT = 491 // { int fchownat(int fd, char *path, uid_t uid, gid_t gid, int flag); } + SYS_FEXECVE = 492 // { int fexecve(int fd, char **argv, char **envv); } + SYS_FSTATAT = 493 // { int fstatat(int fd, char *path, struct stat *buf, int flag); } + SYS_FUTIMESAT = 494 // { int futimesat(int fd, char *path, struct timeval *times); } + SYS_LINKAT = 495 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flag); } SYS_MKDIRAT = 496 // { int mkdirat(int fd, char *path, mode_t mode); } SYS_MKFIFOAT = 497 // { int mkfifoat(int fd, char *path, mode_t mode); } - SYS_MKNODAT = 498 // { int mknodat(int fd, char *path, mode_t mode, \ - SYS_OPENAT = 499 // { int openat(int fd, char *path, int flag, \ - SYS_READLINKAT = 500 // { int readlinkat(int fd, char *path, char *buf, \ - SYS_RENAMEAT = 501 // { int renameat(int oldfd, char *old, int newfd, \ - SYS_SYMLINKAT = 502 // { int symlinkat(char *path1, int fd, \ + SYS_MKNODAT = 498 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); } + SYS_OPENAT = 499 // { int openat(int fd, char *path, int flag, mode_t mode); } + SYS_READLINKAT = 500 // { int readlinkat(int fd, char *path, char *buf, size_t bufsize); } + SYS_RENAMEAT = 501 // { int renameat(int oldfd, char *old, int newfd, char *new); } + SYS_SYMLINKAT = 502 // { int symlinkat(char *path1, int fd, char *path2); } SYS_UNLINKAT = 503 // { int unlinkat(int fd, char *path, int flag); } SYS_POSIX_OPENPT = 504 // { int posix_openpt(int flags); } SYS_GSSD_SYSCALL = 505 // { int gssd_syscall(char *path); } - SYS_JAIL_GET = 506 // { int jail_get(struct iovec *iovp, \ - SYS_JAIL_SET = 507 // { int jail_set(struct iovec *iovp, \ + SYS_JAIL_GET = 506 // { int jail_get(struct iovec *iovp, unsigned int iovcnt, int flags); } + SYS_JAIL_SET = 507 // { int jail_set(struct iovec *iovp, unsigned int iovcnt, int flags); } SYS_JAIL_REMOVE = 508 // { int jail_remove(int jid); } SYS_CLOSEFROM = 509 // { int closefrom(int lowfd); } - SYS___SEMCTL = 510 // { int __semctl(int semid, int semnum, \ - SYS_MSGCTL = 511 // { int msgctl(int msqid, int cmd, \ - SYS_SHMCTL = 512 // { int shmctl(int shmid, int cmd, \ + SYS___SEMCTL = 510 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); } + SYS_MSGCTL = 511 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); } + SYS_SHMCTL = 512 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); } SYS_LPATHCONF = 513 // { int lpathconf(char *path, int name); } - SYS___CAP_RIGHTS_GET = 515 // { int __cap_rights_get(int version, \ + SYS___CAP_RIGHTS_GET = 515 // { int __cap_rights_get(int version, int fd, cap_rights_t *rightsp); } SYS_CAP_ENTER = 516 // { int cap_enter(void); } SYS_CAP_GETMODE = 517 // { int cap_getmode(u_int *modep); } SYS_PDFORK = 518 // { int pdfork(int *fdp, int flags); } SYS_PDKILL = 519 // { int pdkill(int fd, int signum); } SYS_PDGETPID = 520 // { int pdgetpid(int fd, pid_t *pidp); } - SYS_PSELECT = 522 // { int pselect(int nd, fd_set *in, \ - SYS_GETLOGINCLASS = 523 // { int getloginclass(char *namebuf, \ + SYS_PSELECT = 522 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sm); } + SYS_GETLOGINCLASS = 523 // { int getloginclass(char *namebuf, size_t namelen); } SYS_SETLOGINCLASS = 524 // { int setloginclass(const char *namebuf); } - SYS_RCTL_GET_RACCT = 525 // { int rctl_get_racct(const void *inbufp, \ - SYS_RCTL_GET_RULES = 526 // { int rctl_get_rules(const void *inbufp, \ - SYS_RCTL_GET_LIMITS = 527 // { int rctl_get_limits(const void *inbufp, \ - SYS_RCTL_ADD_RULE = 528 // { int rctl_add_rule(const void *inbufp, \ - SYS_RCTL_REMOVE_RULE = 529 // { int rctl_remove_rule(const void *inbufp, \ - SYS_POSIX_FALLOCATE = 530 // { int posix_fallocate(int fd, \ - SYS_POSIX_FADVISE = 531 // { int posix_fadvise(int fd, off_t offset, \ - SYS_WAIT6 = 532 // { int wait6(idtype_t idtype, id_t id, \ - SYS_CAP_RIGHTS_LIMIT = 533 // { int cap_rights_limit(int fd, \ - SYS_CAP_IOCTLS_LIMIT = 534 // { int cap_ioctls_limit(int fd, \ - SYS_CAP_IOCTLS_GET = 535 // { ssize_t cap_ioctls_get(int fd, \ - SYS_CAP_FCNTLS_LIMIT = 536 // { int cap_fcntls_limit(int fd, \ - SYS_CAP_FCNTLS_GET = 537 // { int cap_fcntls_get(int fd, \ - SYS_BINDAT = 538 // { int bindat(int fd, int s, caddr_t name, \ - SYS_CONNECTAT = 539 // { int connectat(int fd, int s, caddr_t name, \ - SYS_CHFLAGSAT = 540 // { int chflagsat(int fd, const char *path, \ - SYS_ACCEPT4 = 541 // { int accept4(int s, \ + SYS_RCTL_GET_RACCT = 525 // { int rctl_get_racct(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_GET_RULES = 526 // { int rctl_get_rules(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_GET_LIMITS = 527 // { int rctl_get_limits(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_ADD_RULE = 528 // { int rctl_add_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_REMOVE_RULE = 529 // { int rctl_remove_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_POSIX_FALLOCATE = 530 // { int posix_fallocate(int fd, off_t offset, off_t len); } + SYS_POSIX_FADVISE = 531 // { int posix_fadvise(int fd, off_t offset, off_t len, int advice); } + SYS_WAIT6 = 532 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); } + SYS_CAP_RIGHTS_LIMIT = 533 // { int cap_rights_limit(int fd, cap_rights_t *rightsp); } + SYS_CAP_IOCTLS_LIMIT = 534 // { int cap_ioctls_limit(int fd, const u_long *cmds, size_t ncmds); } + SYS_CAP_IOCTLS_GET = 535 // { ssize_t cap_ioctls_get(int fd, u_long *cmds, size_t maxcmds); } + SYS_CAP_FCNTLS_LIMIT = 536 // { int cap_fcntls_limit(int fd, uint32_t fcntlrights); } + SYS_CAP_FCNTLS_GET = 537 // { int cap_fcntls_get(int fd, uint32_t *fcntlrightsp); } + SYS_BINDAT = 538 // { int bindat(int fd, int s, caddr_t name, int namelen); } + SYS_CONNECTAT = 539 // { int connectat(int fd, int s, caddr_t name, int namelen); } + SYS_CHFLAGSAT = 540 // { int chflagsat(int fd, const char *path, u_long flags, int atflag); } + SYS_ACCEPT4 = 541 // { int accept4(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen, int flags); } SYS_PIPE2 = 542 // { int pipe2(int *fildes, int flags); } SYS_AIO_MLOCK = 543 // { int aio_mlock(struct aiocb *aiocbp); } - SYS_PROCCTL = 544 // { int procctl(idtype_t idtype, id_t id, \ - SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, \ - SYS_FUTIMENS = 546 // { int futimens(int fd, \ - SYS_UTIMENSAT = 547 // { int utimensat(int fd, \ + SYS_PROCCTL = 544 // { int procctl(idtype_t idtype, id_t id, int com, void *data); } + SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); } + SYS_FUTIMENS = 546 // { int futimens(int fd, struct timespec *times); } + SYS_UTIMENSAT = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); } ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go index b66f900df..b39be6cb8 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go @@ -1,4 +1,4 @@ -// mksysnum_freebsd.pl +// go run mksysnum.go https://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master // Code generated by the command above; see README.md. DO NOT EDIT. // +build amd64,freebsd @@ -7,13 +7,13 @@ package unix const ( // SYS_NOSYS = 0; // { int nosys(void); } syscall nosys_args int - SYS_EXIT = 1 // { void sys_exit(int rval); } exit \ + SYS_EXIT = 1 // { void sys_exit(int rval); } exit sys_exit_args void SYS_FORK = 2 // { int fork(void); } - SYS_READ = 3 // { ssize_t read(int fd, void *buf, \ - SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, \ + SYS_READ = 3 // { ssize_t read(int fd, void *buf, size_t nbyte); } + SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, size_t nbyte); } SYS_OPEN = 5 // { int open(char *path, int flags, int mode); } SYS_CLOSE = 6 // { int close(int fd); } - SYS_WAIT4 = 7 // { int wait4(int pid, int *status, \ + SYS_WAIT4 = 7 // { int wait4(int pid, int *status, int options, struct rusage *rusage); } SYS_LINK = 9 // { int link(char *path, char *link); } SYS_UNLINK = 10 // { int unlink(char *path); } SYS_CHDIR = 12 // { int chdir(char *path); } @@ -21,20 +21,20 @@ const ( SYS_MKNOD = 14 // { int mknod(char *path, int mode, int dev); } SYS_CHMOD = 15 // { int chmod(char *path, int mode); } SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } - SYS_OBREAK = 17 // { int obreak(char *nsize); } break \ + SYS_OBREAK = 17 // { int obreak(char *nsize); } break obreak_args int SYS_GETPID = 20 // { pid_t getpid(void); } - SYS_MOUNT = 21 // { int mount(char *type, char *path, \ + SYS_MOUNT = 21 // { int mount(char *type, char *path, int flags, caddr_t data); } SYS_UNMOUNT = 22 // { int unmount(char *path, int flags); } SYS_SETUID = 23 // { int setuid(uid_t uid); } SYS_GETUID = 24 // { uid_t getuid(void); } SYS_GETEUID = 25 // { uid_t geteuid(void); } - SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, \ - SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, \ - SYS_SENDMSG = 28 // { int sendmsg(int s, struct msghdr *msg, \ - SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, \ - SYS_ACCEPT = 30 // { int accept(int s, \ - SYS_GETPEERNAME = 31 // { int getpeername(int fdes, \ - SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, \ + SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, caddr_t addr, int data); } + SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, int flags); } + SYS_SENDMSG = 28 // { int sendmsg(int s, struct msghdr *msg, int flags); } + SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, size_t len, int flags, struct sockaddr * __restrict from, __socklen_t * __restrict fromlenaddr); } + SYS_ACCEPT = 30 // { int accept(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen); } + SYS_GETPEERNAME = 31 // { int getpeername(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); } + SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); } SYS_ACCESS = 33 // { int access(char *path, int amode); } SYS_CHFLAGS = 34 // { int chflags(const char *path, u_long flags); } SYS_FCHFLAGS = 35 // { int fchflags(int fd, u_long flags); } @@ -44,55 +44,55 @@ const ( SYS_DUP = 41 // { int dup(u_int fd); } SYS_PIPE = 42 // { int pipe(void); } SYS_GETEGID = 43 // { gid_t getegid(void); } - SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, \ - SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, \ + SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, size_t offset, u_int scale); } + SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, int facs, int pid); } SYS_GETGID = 47 // { gid_t getgid(void); } - SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int \ + SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int namelen); } SYS_SETLOGIN = 50 // { int setlogin(char *namebuf); } SYS_ACCT = 51 // { int acct(char *path); } - SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, \ - SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, \ + SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, stack_t *oss); } + SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, caddr_t data); } SYS_REBOOT = 55 // { int reboot(int opt); } SYS_REVOKE = 56 // { int revoke(char *path); } SYS_SYMLINK = 57 // { int symlink(char *path, char *link); } - SYS_READLINK = 58 // { ssize_t readlink(char *path, char *buf, \ - SYS_EXECVE = 59 // { int execve(char *fname, char **argv, \ - SYS_UMASK = 60 // { int umask(int newmask); } umask umask_args \ + SYS_READLINK = 58 // { ssize_t readlink(char *path, char *buf, size_t count); } + SYS_EXECVE = 59 // { int execve(char *fname, char **argv, char **envv); } + SYS_UMASK = 60 // { int umask(int newmask); } umask umask_args int SYS_CHROOT = 61 // { int chroot(char *path); } - SYS_MSYNC = 65 // { int msync(void *addr, size_t len, \ + SYS_MSYNC = 65 // { int msync(void *addr, size_t len, int flags); } SYS_VFORK = 66 // { int vfork(void); } SYS_SBRK = 69 // { int sbrk(int incr); } SYS_SSTK = 70 // { int sstk(int incr); } - SYS_OVADVISE = 72 // { int ovadvise(int anom); } vadvise \ + SYS_OVADVISE = 72 // { int ovadvise(int anom); } vadvise ovadvise_args int SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); } - SYS_MPROTECT = 74 // { int mprotect(const void *addr, size_t len, \ - SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, \ - SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, \ - SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, \ - SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, \ + SYS_MPROTECT = 74 // { int mprotect(const void *addr, size_t len, int prot); } + SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, int behav); } + SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, char *vec); } + SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, gid_t *gidset); } + SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, gid_t *gidset); } SYS_GETPGRP = 81 // { int getpgrp(void); } SYS_SETPGID = 82 // { int setpgid(int pid, int pgid); } - SYS_SETITIMER = 83 // { int setitimer(u_int which, struct \ + SYS_SETITIMER = 83 // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); } SYS_SWAPON = 85 // { int swapon(char *name); } - SYS_GETITIMER = 86 // { int getitimer(u_int which, \ + SYS_GETITIMER = 86 // { int getitimer(u_int which, struct itimerval *itv); } SYS_GETDTABLESIZE = 89 // { int getdtablesize(void); } SYS_DUP2 = 90 // { int dup2(u_int from, u_int to); } SYS_FCNTL = 92 // { int fcntl(int fd, int cmd, long arg); } - SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, \ + SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } SYS_FSYNC = 95 // { int fsync(int fd); } - SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, \ - SYS_SOCKET = 97 // { int socket(int domain, int type, \ - SYS_CONNECT = 98 // { int connect(int s, caddr_t name, \ + SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, int prio); } + SYS_SOCKET = 97 // { int socket(int domain, int type, int protocol); } + SYS_CONNECT = 98 // { int connect(int s, caddr_t name, int namelen); } SYS_GETPRIORITY = 100 // { int getpriority(int which, int who); } - SYS_BIND = 104 // { int bind(int s, caddr_t name, \ - SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, \ + SYS_BIND = 104 // { int bind(int s, caddr_t name, int namelen); } + SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); } SYS_LISTEN = 106 // { int listen(int s, int backlog); } - SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, \ - SYS_GETRUSAGE = 117 // { int getrusage(int who, \ - SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, \ - SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, \ - SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, \ - SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, \ + SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); } + SYS_GETRUSAGE = 117 // { int getrusage(int who, struct rusage *rusage); } + SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); } + SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); } + SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); } + SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); } SYS_FCHOWN = 123 // { int fchown(int fd, int uid, int gid); } SYS_FCHMOD = 124 // { int fchmod(int fd, int mode); } SYS_SETREUID = 126 // { int setreuid(int ruid, int euid); } @@ -100,26 +100,26 @@ const ( SYS_RENAME = 128 // { int rename(char *from, char *to); } SYS_FLOCK = 131 // { int flock(int fd, int how); } SYS_MKFIFO = 132 // { int mkfifo(char *path, int mode); } - SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, \ + SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); } SYS_SHUTDOWN = 134 // { int shutdown(int s, int how); } - SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, \ + SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); } SYS_MKDIR = 136 // { int mkdir(char *path, int mode); } SYS_RMDIR = 137 // { int rmdir(char *path); } - SYS_UTIMES = 138 // { int utimes(char *path, \ - SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, \ + SYS_UTIMES = 138 // { int utimes(char *path, struct timeval *tptr); } + SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); } SYS_SETSID = 147 // { int setsid(void); } - SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, \ + SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); } SYS_NLM_SYSCALL = 154 // { int nlm_syscall(int debug_level, int grace_period, int addr_count, char **addrs); } SYS_NFSSVC = 155 // { int nfssvc(int flag, caddr_t argp); } - SYS_LGETFH = 160 // { int lgetfh(char *fname, \ - SYS_GETFH = 161 // { int getfh(char *fname, \ + SYS_LGETFH = 160 // { int lgetfh(char *fname, struct fhandle *fhp); } + SYS_GETFH = 161 // { int getfh(char *fname, struct fhandle *fhp); } SYS_SYSARCH = 165 // { int sysarch(int op, char *parms); } - SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, \ - SYS_SEMSYS = 169 // { int semsys(int which, int a2, int a3, \ - SYS_MSGSYS = 170 // { int msgsys(int which, int a2, int a3, \ - SYS_SHMSYS = 171 // { int shmsys(int which, int a2, int a3, \ - SYS_FREEBSD6_PREAD = 173 // { ssize_t freebsd6_pread(int fd, void *buf, \ - SYS_FREEBSD6_PWRITE = 174 // { ssize_t freebsd6_pwrite(int fd, \ + SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); } + SYS_SEMSYS = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); } + SYS_MSGSYS = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); } + SYS_SHMSYS = 171 // { int shmsys(int which, int a2, int a3, int a4); } + SYS_FREEBSD6_PREAD = 173 // { ssize_t freebsd6_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); } + SYS_FREEBSD6_PWRITE = 174 // { ssize_t freebsd6_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); } SYS_SETFIB = 175 // { int setfib(int fibnum); } SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); } SYS_SETGID = 181 // { int setgid(gid_t gid); } @@ -130,274 +130,274 @@ const ( SYS_LSTAT = 190 // { int lstat(char *path, struct stat *ub); } SYS_PATHCONF = 191 // { int pathconf(char *path, int name); } SYS_FPATHCONF = 192 // { int fpathconf(int fd, int name); } - SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, \ - SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, \ - SYS_GETDIRENTRIES = 196 // { int getdirentries(int fd, char *buf, \ - SYS_FREEBSD6_MMAP = 197 // { caddr_t freebsd6_mmap(caddr_t addr, \ - SYS_FREEBSD6_LSEEK = 199 // { off_t freebsd6_lseek(int fd, int pad, \ - SYS_FREEBSD6_TRUNCATE = 200 // { int freebsd6_truncate(char *path, int pad, \ - SYS_FREEBSD6_FTRUNCATE = 201 // { int freebsd6_ftruncate(int fd, int pad, \ - SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, \ + SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int + SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int + SYS_GETDIRENTRIES = 196 // { int getdirentries(int fd, char *buf, u_int count, long *basep); } + SYS_FREEBSD6_MMAP = 197 // { caddr_t freebsd6_mmap(caddr_t addr, size_t len, int prot, int flags, int fd, int pad, off_t pos); } + SYS_FREEBSD6_LSEEK = 199 // { off_t freebsd6_lseek(int fd, int pad, off_t offset, int whence); } + SYS_FREEBSD6_TRUNCATE = 200 // { int freebsd6_truncate(char *path, int pad, off_t length); } + SYS_FREEBSD6_FTRUNCATE = 201 // { int freebsd6_ftruncate(int fd, int pad, off_t length); } + SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int SYS_MLOCK = 203 // { int mlock(const void *addr, size_t len); } SYS_MUNLOCK = 204 // { int munlock(const void *addr, size_t len); } SYS_UNDELETE = 205 // { int undelete(char *path); } SYS_FUTIMES = 206 // { int futimes(int fd, struct timeval *tptr); } SYS_GETPGID = 207 // { int getpgid(pid_t pid); } - SYS_POLL = 209 // { int poll(struct pollfd *fds, u_int nfds, \ - SYS_SEMGET = 221 // { int semget(key_t key, int nsems, \ - SYS_SEMOP = 222 // { int semop(int semid, struct sembuf *sops, \ + SYS_POLL = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS_SEMGET = 221 // { int semget(key_t key, int nsems, int semflg); } + SYS_SEMOP = 222 // { int semop(int semid, struct sembuf *sops, size_t nsops); } SYS_MSGGET = 225 // { int msgget(key_t key, int msgflg); } - SYS_MSGSND = 226 // { int msgsnd(int msqid, const void *msgp, \ - SYS_MSGRCV = 227 // { int msgrcv(int msqid, void *msgp, \ - SYS_SHMAT = 228 // { int shmat(int shmid, const void *shmaddr, \ + SYS_MSGSND = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } + SYS_MSGRCV = 227 // { int msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } + SYS_SHMAT = 228 // { int shmat(int shmid, const void *shmaddr, int shmflg); } SYS_SHMDT = 230 // { int shmdt(const void *shmaddr); } - SYS_SHMGET = 231 // { int shmget(key_t key, size_t size, \ - SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, \ - SYS_CLOCK_SETTIME = 233 // { int clock_settime( \ - SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, \ - SYS_KTIMER_CREATE = 235 // { int ktimer_create(clockid_t clock_id, \ + SYS_SHMGET = 231 // { int shmget(key_t key, size_t size, int shmflg); } + SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); } + SYS_CLOCK_SETTIME = 233 // { int clock_settime( clockid_t clock_id, const struct timespec *tp); } + SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); } + SYS_KTIMER_CREATE = 235 // { int ktimer_create(clockid_t clock_id, struct sigevent *evp, int *timerid); } SYS_KTIMER_DELETE = 236 // { int ktimer_delete(int timerid); } - SYS_KTIMER_SETTIME = 237 // { int ktimer_settime(int timerid, int flags, \ - SYS_KTIMER_GETTIME = 238 // { int ktimer_gettime(int timerid, struct \ + SYS_KTIMER_SETTIME = 237 // { int ktimer_settime(int timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); } + SYS_KTIMER_GETTIME = 238 // { int ktimer_gettime(int timerid, struct itimerspec *value); } SYS_KTIMER_GETOVERRUN = 239 // { int ktimer_getoverrun(int timerid); } - SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, \ + SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } SYS_FFCLOCK_GETCOUNTER = 241 // { int ffclock_getcounter(ffcounter *ffcount); } - SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate( \ - SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate( \ - SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id,\ + SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate( struct ffclock_estimate *cest); } + SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate( struct ffclock_estimate *cest); } + SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id,int which, clockid_t *clock_id); } SYS_NTP_GETTIME = 248 // { int ntp_gettime(struct ntptimeval *ntvp); } - SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, \ + SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, int inherit); } SYS_RFORK = 251 // { int rfork(int flags); } - SYS_OPENBSD_POLL = 252 // { int openbsd_poll(struct pollfd *fds, \ + SYS_OPENBSD_POLL = 252 // { int openbsd_poll(struct pollfd *fds, u_int nfds, int timeout); } SYS_ISSETUGID = 253 // { int issetugid(void); } SYS_LCHOWN = 254 // { int lchown(char *path, int uid, int gid); } SYS_AIO_READ = 255 // { int aio_read(struct aiocb *aiocbp); } SYS_AIO_WRITE = 256 // { int aio_write(struct aiocb *aiocbp); } - SYS_LIO_LISTIO = 257 // { int lio_listio(int mode, \ - SYS_GETDENTS = 272 // { int getdents(int fd, char *buf, \ + SYS_LIO_LISTIO = 257 // { int lio_listio(int mode, struct aiocb * const *acb_list, int nent, struct sigevent *sig); } + SYS_GETDENTS = 272 // { int getdents(int fd, char *buf, size_t count); } SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } - SYS_LUTIMES = 276 // { int lutimes(char *path, \ + SYS_LUTIMES = 276 // { int lutimes(char *path, struct timeval *tptr); } SYS_NSTAT = 278 // { int nstat(char *path, struct nstat *ub); } SYS_NFSTAT = 279 // { int nfstat(int fd, struct nstat *sb); } SYS_NLSTAT = 280 // { int nlstat(char *path, struct nstat *ub); } - SYS_PREADV = 289 // { ssize_t preadv(int fd, struct iovec *iovp, \ - SYS_PWRITEV = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, \ - SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, \ - SYS_FHSTAT = 299 // { int fhstat(const struct fhandle *u_fhp, \ + SYS_PREADV = 289 // { ssize_t preadv(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); } + SYS_PWRITEV = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); } + SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); } + SYS_FHSTAT = 299 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); } SYS_MODNEXT = 300 // { int modnext(int modid); } - SYS_MODSTAT = 301 // { int modstat(int modid, \ + SYS_MODSTAT = 301 // { int modstat(int modid, struct module_stat *stat); } SYS_MODFNEXT = 302 // { int modfnext(int modid); } SYS_MODFIND = 303 // { int modfind(const char *name); } SYS_KLDLOAD = 304 // { int kldload(const char *file); } SYS_KLDUNLOAD = 305 // { int kldunload(int fileid); } SYS_KLDFIND = 306 // { int kldfind(const char *file); } SYS_KLDNEXT = 307 // { int kldnext(int fileid); } - SYS_KLDSTAT = 308 // { int kldstat(int fileid, struct \ + SYS_KLDSTAT = 308 // { int kldstat(int fileid, struct kld_file_stat* stat); } SYS_KLDFIRSTMOD = 309 // { int kldfirstmod(int fileid); } SYS_GETSID = 310 // { int getsid(pid_t pid); } - SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, \ - SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, \ + SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); } + SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); } SYS_AIO_RETURN = 314 // { int aio_return(struct aiocb *aiocbp); } - SYS_AIO_SUSPEND = 315 // { int aio_suspend( \ - SYS_AIO_CANCEL = 316 // { int aio_cancel(int fd, \ + SYS_AIO_SUSPEND = 315 // { int aio_suspend( struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); } + SYS_AIO_CANCEL = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); } SYS_AIO_ERROR = 317 // { int aio_error(struct aiocb *aiocbp); } SYS_OAIO_READ = 318 // { int oaio_read(struct oaiocb *aiocbp); } SYS_OAIO_WRITE = 319 // { int oaio_write(struct oaiocb *aiocbp); } - SYS_OLIO_LISTIO = 320 // { int olio_listio(int mode, \ + SYS_OLIO_LISTIO = 320 // { int olio_listio(int mode, struct oaiocb * const *acb_list, int nent, struct osigevent *sig); } SYS_YIELD = 321 // { int yield(void); } SYS_MLOCKALL = 324 // { int mlockall(int how); } SYS_MUNLOCKALL = 325 // { int munlockall(void); } SYS___GETCWD = 326 // { int __getcwd(char *buf, u_int buflen); } - SYS_SCHED_SETPARAM = 327 // { int sched_setparam (pid_t pid, \ - SYS_SCHED_GETPARAM = 328 // { int sched_getparam (pid_t pid, struct \ - SYS_SCHED_SETSCHEDULER = 329 // { int sched_setscheduler (pid_t pid, int \ + SYS_SCHED_SETPARAM = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); } + SYS_SCHED_GETPARAM = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); } + SYS_SCHED_SETSCHEDULER = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); } SYS_SCHED_GETSCHEDULER = 330 // { int sched_getscheduler (pid_t pid); } SYS_SCHED_YIELD = 331 // { int sched_yield (void); } SYS_SCHED_GET_PRIORITY_MAX = 332 // { int sched_get_priority_max (int policy); } SYS_SCHED_GET_PRIORITY_MIN = 333 // { int sched_get_priority_min (int policy); } - SYS_SCHED_RR_GET_INTERVAL = 334 // { int sched_rr_get_interval (pid_t pid, \ + SYS_SCHED_RR_GET_INTERVAL = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); } SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); } - SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, \ + SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, void *data); } SYS_JAIL = 338 // { int jail(struct jail *jail); } - SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, \ + SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); } SYS_SIGSUSPEND = 341 // { int sigsuspend(const sigset_t *sigmask); } SYS_SIGPENDING = 343 // { int sigpending(sigset_t *set); } - SYS_SIGTIMEDWAIT = 345 // { int sigtimedwait(const sigset_t *set, \ - SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set, \ - SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, \ - SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, \ - SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, \ - SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, \ - SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, \ - SYS___ACL_DELETE_FD = 352 // { int __acl_delete_fd(int filedes, \ - SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, \ - SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, \ - SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, \ - SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file( \ - SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file( \ - SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, \ - SYS_AIO_WAITCOMPLETE = 359 // { int aio_waitcomplete( \ - SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, \ - SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, \ + SYS_SIGTIMEDWAIT = 345 // { int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec *timeout); } + SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set, siginfo_t *info); } + SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, acl_type_t type); } + SYS___ACL_DELETE_FD = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); } + SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } + SYS_AIO_WAITCOMPLETE = 359 // { int aio_waitcomplete( struct aiocb **aiocbp, struct timespec *timeout); } + SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } + SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } SYS_KQUEUE = 362 // { int kqueue(void); } - SYS_KEVENT = 363 // { int kevent(int fd, \ - SYS_EXTATTR_SET_FD = 371 // { ssize_t extattr_set_fd(int fd, \ - SYS_EXTATTR_GET_FD = 372 // { ssize_t extattr_get_fd(int fd, \ - SYS_EXTATTR_DELETE_FD = 373 // { int extattr_delete_fd(int fd, \ + SYS_KEVENT = 363 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } + SYS_EXTATTR_SET_FD = 371 // { ssize_t extattr_set_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_GET_FD = 372 // { ssize_t extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FD = 373 // { int extattr_delete_fd(int fd, int attrnamespace, const char *attrname); } SYS___SETUGID = 374 // { int __setugid(int flag); } SYS_EACCESS = 376 // { int eaccess(char *path, int amode); } - SYS_NMOUNT = 378 // { int nmount(struct iovec *iovp, \ + SYS_NMOUNT = 378 // { int nmount(struct iovec *iovp, unsigned int iovcnt, int flags); } SYS___MAC_GET_PROC = 384 // { int __mac_get_proc(struct mac *mac_p); } SYS___MAC_SET_PROC = 385 // { int __mac_set_proc(struct mac *mac_p); } - SYS___MAC_GET_FD = 386 // { int __mac_get_fd(int fd, \ - SYS___MAC_GET_FILE = 387 // { int __mac_get_file(const char *path_p, \ - SYS___MAC_SET_FD = 388 // { int __mac_set_fd(int fd, \ - SYS___MAC_SET_FILE = 389 // { int __mac_set_file(const char *path_p, \ - SYS_KENV = 390 // { int kenv(int what, const char *name, \ - SYS_LCHFLAGS = 391 // { int lchflags(const char *path, \ - SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, \ - SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, \ - SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, \ - SYS_GETFSSTAT = 395 // { int getfsstat(struct statfs *buf, \ - SYS_STATFS = 396 // { int statfs(char *path, \ + SYS___MAC_GET_FD = 386 // { int __mac_get_fd(int fd, struct mac *mac_p); } + SYS___MAC_GET_FILE = 387 // { int __mac_get_file(const char *path_p, struct mac *mac_p); } + SYS___MAC_SET_FD = 388 // { int __mac_set_fd(int fd, struct mac *mac_p); } + SYS___MAC_SET_FILE = 389 // { int __mac_set_file(const char *path_p, struct mac *mac_p); } + SYS_KENV = 390 // { int kenv(int what, const char *name, char *value, int len); } + SYS_LCHFLAGS = 391 // { int lchflags(const char *path, u_long flags); } + SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, int count); } + SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); } + SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, int call, void *arg); } + SYS_GETFSSTAT = 395 // { int getfsstat(struct statfs *buf, long bufsize, int flags); } + SYS_STATFS = 396 // { int statfs(char *path, struct statfs *buf); } SYS_FSTATFS = 397 // { int fstatfs(int fd, struct statfs *buf); } - SYS_FHSTATFS = 398 // { int fhstatfs(const struct fhandle *u_fhp, \ + SYS_FHSTATFS = 398 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } SYS_KSEM_CLOSE = 400 // { int ksem_close(semid_t id); } SYS_KSEM_POST = 401 // { int ksem_post(semid_t id); } SYS_KSEM_WAIT = 402 // { int ksem_wait(semid_t id); } SYS_KSEM_TRYWAIT = 403 // { int ksem_trywait(semid_t id); } - SYS_KSEM_INIT = 404 // { int ksem_init(semid_t *idp, \ - SYS_KSEM_OPEN = 405 // { int ksem_open(semid_t *idp, \ + SYS_KSEM_INIT = 404 // { int ksem_init(semid_t *idp, unsigned int value); } + SYS_KSEM_OPEN = 405 // { int ksem_open(semid_t *idp, const char *name, int oflag, mode_t mode, unsigned int value); } SYS_KSEM_UNLINK = 406 // { int ksem_unlink(const char *name); } SYS_KSEM_GETVALUE = 407 // { int ksem_getvalue(semid_t id, int *val); } SYS_KSEM_DESTROY = 408 // { int ksem_destroy(semid_t id); } - SYS___MAC_GET_PID = 409 // { int __mac_get_pid(pid_t pid, \ - SYS___MAC_GET_LINK = 410 // { int __mac_get_link(const char *path_p, \ - SYS___MAC_SET_LINK = 411 // { int __mac_set_link(const char *path_p, \ - SYS_EXTATTR_SET_LINK = 412 // { ssize_t extattr_set_link( \ - SYS_EXTATTR_GET_LINK = 413 // { ssize_t extattr_get_link( \ - SYS_EXTATTR_DELETE_LINK = 414 // { int extattr_delete_link( \ - SYS___MAC_EXECVE = 415 // { int __mac_execve(char *fname, char **argv, \ - SYS_SIGACTION = 416 // { int sigaction(int sig, \ - SYS_SIGRETURN = 417 // { int sigreturn( \ + SYS___MAC_GET_PID = 409 // { int __mac_get_pid(pid_t pid, struct mac *mac_p); } + SYS___MAC_GET_LINK = 410 // { int __mac_get_link(const char *path_p, struct mac *mac_p); } + SYS___MAC_SET_LINK = 411 // { int __mac_set_link(const char *path_p, struct mac *mac_p); } + SYS_EXTATTR_SET_LINK = 412 // { ssize_t extattr_set_link( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_GET_LINK = 413 // { ssize_t extattr_get_link( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_LINK = 414 // { int extattr_delete_link( const char *path, int attrnamespace, const char *attrname); } + SYS___MAC_EXECVE = 415 // { int __mac_execve(char *fname, char **argv, char **envv, struct mac *mac_p); } + SYS_SIGACTION = 416 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); } + SYS_SIGRETURN = 417 // { int sigreturn( const struct __ucontext *sigcntxp); } SYS_GETCONTEXT = 421 // { int getcontext(struct __ucontext *ucp); } - SYS_SETCONTEXT = 422 // { int setcontext( \ - SYS_SWAPCONTEXT = 423 // { int swapcontext(struct __ucontext *oucp, \ + SYS_SETCONTEXT = 422 // { int setcontext( const struct __ucontext *ucp); } + SYS_SWAPCONTEXT = 423 // { int swapcontext(struct __ucontext *oucp, const struct __ucontext *ucp); } SYS_SWAPOFF = 424 // { int swapoff(const char *name); } - SYS___ACL_GET_LINK = 425 // { int __acl_get_link(const char *path, \ - SYS___ACL_SET_LINK = 426 // { int __acl_set_link(const char *path, \ - SYS___ACL_DELETE_LINK = 427 // { int __acl_delete_link(const char *path, \ - SYS___ACL_ACLCHECK_LINK = 428 // { int __acl_aclcheck_link(const char *path, \ - SYS_SIGWAIT = 429 // { int sigwait(const sigset_t *set, \ - SYS_THR_CREATE = 430 // { int thr_create(ucontext_t *ctx, long *id, \ + SYS___ACL_GET_LINK = 425 // { int __acl_get_link(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_SET_LINK = 426 // { int __acl_set_link(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_DELETE_LINK = 427 // { int __acl_delete_link(const char *path, acl_type_t type); } + SYS___ACL_ACLCHECK_LINK = 428 // { int __acl_aclcheck_link(const char *path, acl_type_t type, struct acl *aclp); } + SYS_SIGWAIT = 429 // { int sigwait(const sigset_t *set, int *sig); } + SYS_THR_CREATE = 430 // { int thr_create(ucontext_t *ctx, long *id, int flags); } SYS_THR_EXIT = 431 // { void thr_exit(long *state); } SYS_THR_SELF = 432 // { int thr_self(long *id); } SYS_THR_KILL = 433 // { int thr_kill(long id, int sig); } SYS__UMTX_LOCK = 434 // { int _umtx_lock(struct umtx *umtx); } SYS__UMTX_UNLOCK = 435 // { int _umtx_unlock(struct umtx *umtx); } SYS_JAIL_ATTACH = 436 // { int jail_attach(int jid); } - SYS_EXTATTR_LIST_FD = 437 // { ssize_t extattr_list_fd(int fd, \ - SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file( \ - SYS_EXTATTR_LIST_LINK = 439 // { ssize_t extattr_list_link( \ - SYS_KSEM_TIMEDWAIT = 441 // { int ksem_timedwait(semid_t id, \ - SYS_THR_SUSPEND = 442 // { int thr_suspend( \ + SYS_EXTATTR_LIST_FD = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file( const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_LINK = 439 // { ssize_t extattr_list_link( const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_KSEM_TIMEDWAIT = 441 // { int ksem_timedwait(semid_t id, const struct timespec *abstime); } + SYS_THR_SUSPEND = 442 // { int thr_suspend( const struct timespec *timeout); } SYS_THR_WAKE = 443 // { int thr_wake(long id); } SYS_KLDUNLOADF = 444 // { int kldunloadf(int fileid, int flags); } - SYS_AUDIT = 445 // { int audit(const void *record, \ - SYS_AUDITON = 446 // { int auditon(int cmd, void *data, \ + SYS_AUDIT = 445 // { int audit(const void *record, u_int length); } + SYS_AUDITON = 446 // { int auditon(int cmd, void *data, u_int length); } SYS_GETAUID = 447 // { int getauid(uid_t *auid); } SYS_SETAUID = 448 // { int setauid(uid_t *auid); } SYS_GETAUDIT = 449 // { int getaudit(struct auditinfo *auditinfo); } SYS_SETAUDIT = 450 // { int setaudit(struct auditinfo *auditinfo); } - SYS_GETAUDIT_ADDR = 451 // { int getaudit_addr( \ - SYS_SETAUDIT_ADDR = 452 // { int setaudit_addr( \ + SYS_GETAUDIT_ADDR = 451 // { int getaudit_addr( struct auditinfo_addr *auditinfo_addr, u_int length); } + SYS_SETAUDIT_ADDR = 452 // { int setaudit_addr( struct auditinfo_addr *auditinfo_addr, u_int length); } SYS_AUDITCTL = 453 // { int auditctl(char *path); } - SYS__UMTX_OP = 454 // { int _umtx_op(void *obj, int op, \ - SYS_THR_NEW = 455 // { int thr_new(struct thr_param *param, \ + SYS__UMTX_OP = 454 // { int _umtx_op(void *obj, int op, u_long val, void *uaddr1, void *uaddr2); } + SYS_THR_NEW = 455 // { int thr_new(struct thr_param *param, int param_size); } SYS_SIGQUEUE = 456 // { int sigqueue(pid_t pid, int signum, void *value); } - SYS_KMQ_OPEN = 457 // { int kmq_open(const char *path, int flags, \ - SYS_KMQ_SETATTR = 458 // { int kmq_setattr(int mqd, \ - SYS_KMQ_TIMEDRECEIVE = 459 // { int kmq_timedreceive(int mqd, \ - SYS_KMQ_TIMEDSEND = 460 // { int kmq_timedsend(int mqd, \ - SYS_KMQ_NOTIFY = 461 // { int kmq_notify(int mqd, \ + SYS_KMQ_OPEN = 457 // { int kmq_open(const char *path, int flags, mode_t mode, const struct mq_attr *attr); } + SYS_KMQ_SETATTR = 458 // { int kmq_setattr(int mqd, const struct mq_attr *attr, struct mq_attr *oattr); } + SYS_KMQ_TIMEDRECEIVE = 459 // { int kmq_timedreceive(int mqd, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); } + SYS_KMQ_TIMEDSEND = 460 // { int kmq_timedsend(int mqd, const char *msg_ptr, size_t msg_len,unsigned msg_prio, const struct timespec *abs_timeout);} + SYS_KMQ_NOTIFY = 461 // { int kmq_notify(int mqd, const struct sigevent *sigev); } SYS_KMQ_UNLINK = 462 // { int kmq_unlink(const char *path); } SYS_ABORT2 = 463 // { int abort2(const char *why, int nargs, void **args); } SYS_THR_SET_NAME = 464 // { int thr_set_name(long id, const char *name); } SYS_AIO_FSYNC = 465 // { int aio_fsync(int op, struct aiocb *aiocbp); } - SYS_RTPRIO_THREAD = 466 // { int rtprio_thread(int function, \ + SYS_RTPRIO_THREAD = 466 // { int rtprio_thread(int function, lwpid_t lwpid, struct rtprio *rtp); } SYS_SCTP_PEELOFF = 471 // { int sctp_peeloff(int sd, uint32_t name); } - SYS_SCTP_GENERIC_SENDMSG = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, \ - SYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, \ - SYS_SCTP_GENERIC_RECVMSG = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, \ - SYS_PREAD = 475 // { ssize_t pread(int fd, void *buf, \ - SYS_PWRITE = 476 // { ssize_t pwrite(int fd, const void *buf, \ - SYS_MMAP = 477 // { caddr_t mmap(caddr_t addr, size_t len, \ - SYS_LSEEK = 478 // { off_t lseek(int fd, off_t offset, \ + SYS_SCTP_GENERIC_SENDMSG = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); } + SYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); } + SYS_SCTP_GENERIC_RECVMSG = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, struct sockaddr * from, __socklen_t *fromlenaddr, struct sctp_sndrcvinfo *sinfo, int *msg_flags); } + SYS_PREAD = 475 // { ssize_t pread(int fd, void *buf, size_t nbyte, off_t offset); } + SYS_PWRITE = 476 // { ssize_t pwrite(int fd, const void *buf, size_t nbyte, off_t offset); } + SYS_MMAP = 477 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, off_t pos); } + SYS_LSEEK = 478 // { off_t lseek(int fd, off_t offset, int whence); } SYS_TRUNCATE = 479 // { int truncate(char *path, off_t length); } SYS_FTRUNCATE = 480 // { int ftruncate(int fd, off_t length); } SYS_THR_KILL2 = 481 // { int thr_kill2(pid_t pid, long id, int sig); } - SYS_SHM_OPEN = 482 // { int shm_open(const char *path, int flags, \ + SYS_SHM_OPEN = 482 // { int shm_open(const char *path, int flags, mode_t mode); } SYS_SHM_UNLINK = 483 // { int shm_unlink(const char *path); } SYS_CPUSET = 484 // { int cpuset(cpusetid_t *setid); } - SYS_CPUSET_SETID = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, \ - SYS_CPUSET_GETID = 486 // { int cpuset_getid(cpulevel_t level, \ - SYS_CPUSET_GETAFFINITY = 487 // { int cpuset_getaffinity(cpulevel_t level, \ - SYS_CPUSET_SETAFFINITY = 488 // { int cpuset_setaffinity(cpulevel_t level, \ - SYS_FACCESSAT = 489 // { int faccessat(int fd, char *path, int amode, \ - SYS_FCHMODAT = 490 // { int fchmodat(int fd, char *path, mode_t mode, \ - SYS_FCHOWNAT = 491 // { int fchownat(int fd, char *path, uid_t uid, \ - SYS_FEXECVE = 492 // { int fexecve(int fd, char **argv, \ - SYS_FSTATAT = 493 // { int fstatat(int fd, char *path, \ - SYS_FUTIMESAT = 494 // { int futimesat(int fd, char *path, \ - SYS_LINKAT = 495 // { int linkat(int fd1, char *path1, int fd2, \ + SYS_CPUSET_SETID = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, cpusetid_t setid); } + SYS_CPUSET_GETID = 486 // { int cpuset_getid(cpulevel_t level, cpuwhich_t which, id_t id, cpusetid_t *setid); } + SYS_CPUSET_GETAFFINITY = 487 // { int cpuset_getaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, cpuset_t *mask); } + SYS_CPUSET_SETAFFINITY = 488 // { int cpuset_setaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, const cpuset_t *mask); } + SYS_FACCESSAT = 489 // { int faccessat(int fd, char *path, int amode, int flag); } + SYS_FCHMODAT = 490 // { int fchmodat(int fd, char *path, mode_t mode, int flag); } + SYS_FCHOWNAT = 491 // { int fchownat(int fd, char *path, uid_t uid, gid_t gid, int flag); } + SYS_FEXECVE = 492 // { int fexecve(int fd, char **argv, char **envv); } + SYS_FSTATAT = 493 // { int fstatat(int fd, char *path, struct stat *buf, int flag); } + SYS_FUTIMESAT = 494 // { int futimesat(int fd, char *path, struct timeval *times); } + SYS_LINKAT = 495 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flag); } SYS_MKDIRAT = 496 // { int mkdirat(int fd, char *path, mode_t mode); } SYS_MKFIFOAT = 497 // { int mkfifoat(int fd, char *path, mode_t mode); } - SYS_MKNODAT = 498 // { int mknodat(int fd, char *path, mode_t mode, \ - SYS_OPENAT = 499 // { int openat(int fd, char *path, int flag, \ - SYS_READLINKAT = 500 // { int readlinkat(int fd, char *path, char *buf, \ - SYS_RENAMEAT = 501 // { int renameat(int oldfd, char *old, int newfd, \ - SYS_SYMLINKAT = 502 // { int symlinkat(char *path1, int fd, \ + SYS_MKNODAT = 498 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); } + SYS_OPENAT = 499 // { int openat(int fd, char *path, int flag, mode_t mode); } + SYS_READLINKAT = 500 // { int readlinkat(int fd, char *path, char *buf, size_t bufsize); } + SYS_RENAMEAT = 501 // { int renameat(int oldfd, char *old, int newfd, char *new); } + SYS_SYMLINKAT = 502 // { int symlinkat(char *path1, int fd, char *path2); } SYS_UNLINKAT = 503 // { int unlinkat(int fd, char *path, int flag); } SYS_POSIX_OPENPT = 504 // { int posix_openpt(int flags); } SYS_GSSD_SYSCALL = 505 // { int gssd_syscall(char *path); } - SYS_JAIL_GET = 506 // { int jail_get(struct iovec *iovp, \ - SYS_JAIL_SET = 507 // { int jail_set(struct iovec *iovp, \ + SYS_JAIL_GET = 506 // { int jail_get(struct iovec *iovp, unsigned int iovcnt, int flags); } + SYS_JAIL_SET = 507 // { int jail_set(struct iovec *iovp, unsigned int iovcnt, int flags); } SYS_JAIL_REMOVE = 508 // { int jail_remove(int jid); } SYS_CLOSEFROM = 509 // { int closefrom(int lowfd); } - SYS___SEMCTL = 510 // { int __semctl(int semid, int semnum, \ - SYS_MSGCTL = 511 // { int msgctl(int msqid, int cmd, \ - SYS_SHMCTL = 512 // { int shmctl(int shmid, int cmd, \ + SYS___SEMCTL = 510 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); } + SYS_MSGCTL = 511 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); } + SYS_SHMCTL = 512 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); } SYS_LPATHCONF = 513 // { int lpathconf(char *path, int name); } - SYS___CAP_RIGHTS_GET = 515 // { int __cap_rights_get(int version, \ + SYS___CAP_RIGHTS_GET = 515 // { int __cap_rights_get(int version, int fd, cap_rights_t *rightsp); } SYS_CAP_ENTER = 516 // { int cap_enter(void); } SYS_CAP_GETMODE = 517 // { int cap_getmode(u_int *modep); } SYS_PDFORK = 518 // { int pdfork(int *fdp, int flags); } SYS_PDKILL = 519 // { int pdkill(int fd, int signum); } SYS_PDGETPID = 520 // { int pdgetpid(int fd, pid_t *pidp); } - SYS_PSELECT = 522 // { int pselect(int nd, fd_set *in, \ - SYS_GETLOGINCLASS = 523 // { int getloginclass(char *namebuf, \ + SYS_PSELECT = 522 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sm); } + SYS_GETLOGINCLASS = 523 // { int getloginclass(char *namebuf, size_t namelen); } SYS_SETLOGINCLASS = 524 // { int setloginclass(const char *namebuf); } - SYS_RCTL_GET_RACCT = 525 // { int rctl_get_racct(const void *inbufp, \ - SYS_RCTL_GET_RULES = 526 // { int rctl_get_rules(const void *inbufp, \ - SYS_RCTL_GET_LIMITS = 527 // { int rctl_get_limits(const void *inbufp, \ - SYS_RCTL_ADD_RULE = 528 // { int rctl_add_rule(const void *inbufp, \ - SYS_RCTL_REMOVE_RULE = 529 // { int rctl_remove_rule(const void *inbufp, \ - SYS_POSIX_FALLOCATE = 530 // { int posix_fallocate(int fd, \ - SYS_POSIX_FADVISE = 531 // { int posix_fadvise(int fd, off_t offset, \ - SYS_WAIT6 = 532 // { int wait6(idtype_t idtype, id_t id, \ - SYS_CAP_RIGHTS_LIMIT = 533 // { int cap_rights_limit(int fd, \ - SYS_CAP_IOCTLS_LIMIT = 534 // { int cap_ioctls_limit(int fd, \ - SYS_CAP_IOCTLS_GET = 535 // { ssize_t cap_ioctls_get(int fd, \ - SYS_CAP_FCNTLS_LIMIT = 536 // { int cap_fcntls_limit(int fd, \ - SYS_CAP_FCNTLS_GET = 537 // { int cap_fcntls_get(int fd, \ - SYS_BINDAT = 538 // { int bindat(int fd, int s, caddr_t name, \ - SYS_CONNECTAT = 539 // { int connectat(int fd, int s, caddr_t name, \ - SYS_CHFLAGSAT = 540 // { int chflagsat(int fd, const char *path, \ - SYS_ACCEPT4 = 541 // { int accept4(int s, \ + SYS_RCTL_GET_RACCT = 525 // { int rctl_get_racct(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_GET_RULES = 526 // { int rctl_get_rules(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_GET_LIMITS = 527 // { int rctl_get_limits(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_ADD_RULE = 528 // { int rctl_add_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_REMOVE_RULE = 529 // { int rctl_remove_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_POSIX_FALLOCATE = 530 // { int posix_fallocate(int fd, off_t offset, off_t len); } + SYS_POSIX_FADVISE = 531 // { int posix_fadvise(int fd, off_t offset, off_t len, int advice); } + SYS_WAIT6 = 532 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); } + SYS_CAP_RIGHTS_LIMIT = 533 // { int cap_rights_limit(int fd, cap_rights_t *rightsp); } + SYS_CAP_IOCTLS_LIMIT = 534 // { int cap_ioctls_limit(int fd, const u_long *cmds, size_t ncmds); } + SYS_CAP_IOCTLS_GET = 535 // { ssize_t cap_ioctls_get(int fd, u_long *cmds, size_t maxcmds); } + SYS_CAP_FCNTLS_LIMIT = 536 // { int cap_fcntls_limit(int fd, uint32_t fcntlrights); } + SYS_CAP_FCNTLS_GET = 537 // { int cap_fcntls_get(int fd, uint32_t *fcntlrightsp); } + SYS_BINDAT = 538 // { int bindat(int fd, int s, caddr_t name, int namelen); } + SYS_CONNECTAT = 539 // { int connectat(int fd, int s, caddr_t name, int namelen); } + SYS_CHFLAGSAT = 540 // { int chflagsat(int fd, const char *path, u_long flags, int atflag); } + SYS_ACCEPT4 = 541 // { int accept4(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen, int flags); } SYS_PIPE2 = 542 // { int pipe2(int *fildes, int flags); } SYS_AIO_MLOCK = 543 // { int aio_mlock(struct aiocb *aiocbp); } - SYS_PROCCTL = 544 // { int procctl(idtype_t idtype, id_t id, \ - SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, \ - SYS_FUTIMENS = 546 // { int futimens(int fd, \ - SYS_UTIMENSAT = 547 // { int utimensat(int fd, \ + SYS_PROCCTL = 544 // { int procctl(idtype_t idtype, id_t id, int com, void *data); } + SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); } + SYS_FUTIMENS = 546 // { int futimens(int fd, struct timespec *times); } + SYS_UTIMENSAT = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); } ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go index d61941ba7..44ffd4ce5 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go @@ -1,4 +1,4 @@ -// mksysnum_freebsd.pl +// go run mksysnum.go https://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master // Code generated by the command above; see README.md. DO NOT EDIT. // +build arm,freebsd @@ -7,13 +7,13 @@ package unix const ( // SYS_NOSYS = 0; // { int nosys(void); } syscall nosys_args int - SYS_EXIT = 1 // { void sys_exit(int rval); } exit \ + SYS_EXIT = 1 // { void sys_exit(int rval); } exit sys_exit_args void SYS_FORK = 2 // { int fork(void); } - SYS_READ = 3 // { ssize_t read(int fd, void *buf, \ - SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, \ + SYS_READ = 3 // { ssize_t read(int fd, void *buf, size_t nbyte); } + SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, size_t nbyte); } SYS_OPEN = 5 // { int open(char *path, int flags, int mode); } SYS_CLOSE = 6 // { int close(int fd); } - SYS_WAIT4 = 7 // { int wait4(int pid, int *status, \ + SYS_WAIT4 = 7 // { int wait4(int pid, int *status, int options, struct rusage *rusage); } SYS_LINK = 9 // { int link(char *path, char *link); } SYS_UNLINK = 10 // { int unlink(char *path); } SYS_CHDIR = 12 // { int chdir(char *path); } @@ -21,20 +21,20 @@ const ( SYS_MKNOD = 14 // { int mknod(char *path, int mode, int dev); } SYS_CHMOD = 15 // { int chmod(char *path, int mode); } SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } - SYS_OBREAK = 17 // { int obreak(char *nsize); } break \ + SYS_OBREAK = 17 // { int obreak(char *nsize); } break obreak_args int SYS_GETPID = 20 // { pid_t getpid(void); } - SYS_MOUNT = 21 // { int mount(char *type, char *path, \ + SYS_MOUNT = 21 // { int mount(char *type, char *path, int flags, caddr_t data); } SYS_UNMOUNT = 22 // { int unmount(char *path, int flags); } SYS_SETUID = 23 // { int setuid(uid_t uid); } SYS_GETUID = 24 // { uid_t getuid(void); } SYS_GETEUID = 25 // { uid_t geteuid(void); } - SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, \ - SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, \ - SYS_SENDMSG = 28 // { int sendmsg(int s, struct msghdr *msg, \ - SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, \ - SYS_ACCEPT = 30 // { int accept(int s, \ - SYS_GETPEERNAME = 31 // { int getpeername(int fdes, \ - SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, \ + SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, caddr_t addr, int data); } + SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, int flags); } + SYS_SENDMSG = 28 // { int sendmsg(int s, struct msghdr *msg, int flags); } + SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, size_t len, int flags, struct sockaddr * __restrict from, __socklen_t * __restrict fromlenaddr); } + SYS_ACCEPT = 30 // { int accept(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen); } + SYS_GETPEERNAME = 31 // { int getpeername(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); } + SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); } SYS_ACCESS = 33 // { int access(char *path, int amode); } SYS_CHFLAGS = 34 // { int chflags(const char *path, u_long flags); } SYS_FCHFLAGS = 35 // { int fchflags(int fd, u_long flags); } @@ -44,55 +44,55 @@ const ( SYS_DUP = 41 // { int dup(u_int fd); } SYS_PIPE = 42 // { int pipe(void); } SYS_GETEGID = 43 // { gid_t getegid(void); } - SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, \ - SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, \ + SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, size_t offset, u_int scale); } + SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, int facs, int pid); } SYS_GETGID = 47 // { gid_t getgid(void); } - SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int \ + SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int namelen); } SYS_SETLOGIN = 50 // { int setlogin(char *namebuf); } SYS_ACCT = 51 // { int acct(char *path); } - SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, \ - SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, \ + SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, stack_t *oss); } + SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, caddr_t data); } SYS_REBOOT = 55 // { int reboot(int opt); } SYS_REVOKE = 56 // { int revoke(char *path); } SYS_SYMLINK = 57 // { int symlink(char *path, char *link); } - SYS_READLINK = 58 // { ssize_t readlink(char *path, char *buf, \ - SYS_EXECVE = 59 // { int execve(char *fname, char **argv, \ - SYS_UMASK = 60 // { int umask(int newmask); } umask umask_args \ + SYS_READLINK = 58 // { ssize_t readlink(char *path, char *buf, size_t count); } + SYS_EXECVE = 59 // { int execve(char *fname, char **argv, char **envv); } + SYS_UMASK = 60 // { int umask(int newmask); } umask umask_args int SYS_CHROOT = 61 // { int chroot(char *path); } - SYS_MSYNC = 65 // { int msync(void *addr, size_t len, \ + SYS_MSYNC = 65 // { int msync(void *addr, size_t len, int flags); } SYS_VFORK = 66 // { int vfork(void); } SYS_SBRK = 69 // { int sbrk(int incr); } SYS_SSTK = 70 // { int sstk(int incr); } - SYS_OVADVISE = 72 // { int ovadvise(int anom); } vadvise \ + SYS_OVADVISE = 72 // { int ovadvise(int anom); } vadvise ovadvise_args int SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); } - SYS_MPROTECT = 74 // { int mprotect(const void *addr, size_t len, \ - SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, \ - SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, \ - SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, \ - SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, \ + SYS_MPROTECT = 74 // { int mprotect(const void *addr, size_t len, int prot); } + SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, int behav); } + SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, char *vec); } + SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, gid_t *gidset); } + SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, gid_t *gidset); } SYS_GETPGRP = 81 // { int getpgrp(void); } SYS_SETPGID = 82 // { int setpgid(int pid, int pgid); } - SYS_SETITIMER = 83 // { int setitimer(u_int which, struct \ + SYS_SETITIMER = 83 // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); } SYS_SWAPON = 85 // { int swapon(char *name); } - SYS_GETITIMER = 86 // { int getitimer(u_int which, \ + SYS_GETITIMER = 86 // { int getitimer(u_int which, struct itimerval *itv); } SYS_GETDTABLESIZE = 89 // { int getdtablesize(void); } SYS_DUP2 = 90 // { int dup2(u_int from, u_int to); } SYS_FCNTL = 92 // { int fcntl(int fd, int cmd, long arg); } - SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, \ + SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } SYS_FSYNC = 95 // { int fsync(int fd); } - SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, \ - SYS_SOCKET = 97 // { int socket(int domain, int type, \ - SYS_CONNECT = 98 // { int connect(int s, caddr_t name, \ + SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, int prio); } + SYS_SOCKET = 97 // { int socket(int domain, int type, int protocol); } + SYS_CONNECT = 98 // { int connect(int s, caddr_t name, int namelen); } SYS_GETPRIORITY = 100 // { int getpriority(int which, int who); } - SYS_BIND = 104 // { int bind(int s, caddr_t name, \ - SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, \ + SYS_BIND = 104 // { int bind(int s, caddr_t name, int namelen); } + SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); } SYS_LISTEN = 106 // { int listen(int s, int backlog); } - SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, \ - SYS_GETRUSAGE = 117 // { int getrusage(int who, \ - SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, \ - SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, \ - SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, \ - SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, \ + SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); } + SYS_GETRUSAGE = 117 // { int getrusage(int who, struct rusage *rusage); } + SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); } + SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); } + SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); } + SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); } SYS_FCHOWN = 123 // { int fchown(int fd, int uid, int gid); } SYS_FCHMOD = 124 // { int fchmod(int fd, int mode); } SYS_SETREUID = 126 // { int setreuid(int ruid, int euid); } @@ -100,26 +100,26 @@ const ( SYS_RENAME = 128 // { int rename(char *from, char *to); } SYS_FLOCK = 131 // { int flock(int fd, int how); } SYS_MKFIFO = 132 // { int mkfifo(char *path, int mode); } - SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, \ + SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); } SYS_SHUTDOWN = 134 // { int shutdown(int s, int how); } - SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, \ + SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); } SYS_MKDIR = 136 // { int mkdir(char *path, int mode); } SYS_RMDIR = 137 // { int rmdir(char *path); } - SYS_UTIMES = 138 // { int utimes(char *path, \ - SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, \ + SYS_UTIMES = 138 // { int utimes(char *path, struct timeval *tptr); } + SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); } SYS_SETSID = 147 // { int setsid(void); } - SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, \ + SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); } SYS_NLM_SYSCALL = 154 // { int nlm_syscall(int debug_level, int grace_period, int addr_count, char **addrs); } SYS_NFSSVC = 155 // { int nfssvc(int flag, caddr_t argp); } - SYS_LGETFH = 160 // { int lgetfh(char *fname, \ - SYS_GETFH = 161 // { int getfh(char *fname, \ + SYS_LGETFH = 160 // { int lgetfh(char *fname, struct fhandle *fhp); } + SYS_GETFH = 161 // { int getfh(char *fname, struct fhandle *fhp); } SYS_SYSARCH = 165 // { int sysarch(int op, char *parms); } - SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, \ - SYS_SEMSYS = 169 // { int semsys(int which, int a2, int a3, \ - SYS_MSGSYS = 170 // { int msgsys(int which, int a2, int a3, \ - SYS_SHMSYS = 171 // { int shmsys(int which, int a2, int a3, \ - SYS_FREEBSD6_PREAD = 173 // { ssize_t freebsd6_pread(int fd, void *buf, \ - SYS_FREEBSD6_PWRITE = 174 // { ssize_t freebsd6_pwrite(int fd, \ + SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); } + SYS_SEMSYS = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); } + SYS_MSGSYS = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); } + SYS_SHMSYS = 171 // { int shmsys(int which, int a2, int a3, int a4); } + SYS_FREEBSD6_PREAD = 173 // { ssize_t freebsd6_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); } + SYS_FREEBSD6_PWRITE = 174 // { ssize_t freebsd6_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); } SYS_SETFIB = 175 // { int setfib(int fibnum); } SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); } SYS_SETGID = 181 // { int setgid(gid_t gid); } @@ -130,274 +130,274 @@ const ( SYS_LSTAT = 190 // { int lstat(char *path, struct stat *ub); } SYS_PATHCONF = 191 // { int pathconf(char *path, int name); } SYS_FPATHCONF = 192 // { int fpathconf(int fd, int name); } - SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, \ - SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, \ - SYS_GETDIRENTRIES = 196 // { int getdirentries(int fd, char *buf, \ - SYS_FREEBSD6_MMAP = 197 // { caddr_t freebsd6_mmap(caddr_t addr, \ - SYS_FREEBSD6_LSEEK = 199 // { off_t freebsd6_lseek(int fd, int pad, \ - SYS_FREEBSD6_TRUNCATE = 200 // { int freebsd6_truncate(char *path, int pad, \ - SYS_FREEBSD6_FTRUNCATE = 201 // { int freebsd6_ftruncate(int fd, int pad, \ - SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, \ + SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int + SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int + SYS_GETDIRENTRIES = 196 // { int getdirentries(int fd, char *buf, u_int count, long *basep); } + SYS_FREEBSD6_MMAP = 197 // { caddr_t freebsd6_mmap(caddr_t addr, size_t len, int prot, int flags, int fd, int pad, off_t pos); } + SYS_FREEBSD6_LSEEK = 199 // { off_t freebsd6_lseek(int fd, int pad, off_t offset, int whence); } + SYS_FREEBSD6_TRUNCATE = 200 // { int freebsd6_truncate(char *path, int pad, off_t length); } + SYS_FREEBSD6_FTRUNCATE = 201 // { int freebsd6_ftruncate(int fd, int pad, off_t length); } + SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int SYS_MLOCK = 203 // { int mlock(const void *addr, size_t len); } SYS_MUNLOCK = 204 // { int munlock(const void *addr, size_t len); } SYS_UNDELETE = 205 // { int undelete(char *path); } SYS_FUTIMES = 206 // { int futimes(int fd, struct timeval *tptr); } SYS_GETPGID = 207 // { int getpgid(pid_t pid); } - SYS_POLL = 209 // { int poll(struct pollfd *fds, u_int nfds, \ - SYS_SEMGET = 221 // { int semget(key_t key, int nsems, \ - SYS_SEMOP = 222 // { int semop(int semid, struct sembuf *sops, \ + SYS_POLL = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS_SEMGET = 221 // { int semget(key_t key, int nsems, int semflg); } + SYS_SEMOP = 222 // { int semop(int semid, struct sembuf *sops, size_t nsops); } SYS_MSGGET = 225 // { int msgget(key_t key, int msgflg); } - SYS_MSGSND = 226 // { int msgsnd(int msqid, const void *msgp, \ - SYS_MSGRCV = 227 // { int msgrcv(int msqid, void *msgp, \ - SYS_SHMAT = 228 // { int shmat(int shmid, const void *shmaddr, \ + SYS_MSGSND = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } + SYS_MSGRCV = 227 // { int msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } + SYS_SHMAT = 228 // { int shmat(int shmid, const void *shmaddr, int shmflg); } SYS_SHMDT = 230 // { int shmdt(const void *shmaddr); } - SYS_SHMGET = 231 // { int shmget(key_t key, size_t size, \ - SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, \ - SYS_CLOCK_SETTIME = 233 // { int clock_settime( \ - SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, \ - SYS_KTIMER_CREATE = 235 // { int ktimer_create(clockid_t clock_id, \ + SYS_SHMGET = 231 // { int shmget(key_t key, size_t size, int shmflg); } + SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); } + SYS_CLOCK_SETTIME = 233 // { int clock_settime( clockid_t clock_id, const struct timespec *tp); } + SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); } + SYS_KTIMER_CREATE = 235 // { int ktimer_create(clockid_t clock_id, struct sigevent *evp, int *timerid); } SYS_KTIMER_DELETE = 236 // { int ktimer_delete(int timerid); } - SYS_KTIMER_SETTIME = 237 // { int ktimer_settime(int timerid, int flags, \ - SYS_KTIMER_GETTIME = 238 // { int ktimer_gettime(int timerid, struct \ + SYS_KTIMER_SETTIME = 237 // { int ktimer_settime(int timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); } + SYS_KTIMER_GETTIME = 238 // { int ktimer_gettime(int timerid, struct itimerspec *value); } SYS_KTIMER_GETOVERRUN = 239 // { int ktimer_getoverrun(int timerid); } - SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, \ + SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } SYS_FFCLOCK_GETCOUNTER = 241 // { int ffclock_getcounter(ffcounter *ffcount); } - SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate( \ - SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate( \ - SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id,\ + SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate( struct ffclock_estimate *cest); } + SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate( struct ffclock_estimate *cest); } + SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id,int which, clockid_t *clock_id); } SYS_NTP_GETTIME = 248 // { int ntp_gettime(struct ntptimeval *ntvp); } - SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, \ + SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, int inherit); } SYS_RFORK = 251 // { int rfork(int flags); } - SYS_OPENBSD_POLL = 252 // { int openbsd_poll(struct pollfd *fds, \ + SYS_OPENBSD_POLL = 252 // { int openbsd_poll(struct pollfd *fds, u_int nfds, int timeout); } SYS_ISSETUGID = 253 // { int issetugid(void); } SYS_LCHOWN = 254 // { int lchown(char *path, int uid, int gid); } SYS_AIO_READ = 255 // { int aio_read(struct aiocb *aiocbp); } SYS_AIO_WRITE = 256 // { int aio_write(struct aiocb *aiocbp); } - SYS_LIO_LISTIO = 257 // { int lio_listio(int mode, \ - SYS_GETDENTS = 272 // { int getdents(int fd, char *buf, \ + SYS_LIO_LISTIO = 257 // { int lio_listio(int mode, struct aiocb * const *acb_list, int nent, struct sigevent *sig); } + SYS_GETDENTS = 272 // { int getdents(int fd, char *buf, size_t count); } SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } - SYS_LUTIMES = 276 // { int lutimes(char *path, \ + SYS_LUTIMES = 276 // { int lutimes(char *path, struct timeval *tptr); } SYS_NSTAT = 278 // { int nstat(char *path, struct nstat *ub); } SYS_NFSTAT = 279 // { int nfstat(int fd, struct nstat *sb); } SYS_NLSTAT = 280 // { int nlstat(char *path, struct nstat *ub); } - SYS_PREADV = 289 // { ssize_t preadv(int fd, struct iovec *iovp, \ - SYS_PWRITEV = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, \ - SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, \ - SYS_FHSTAT = 299 // { int fhstat(const struct fhandle *u_fhp, \ + SYS_PREADV = 289 // { ssize_t preadv(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); } + SYS_PWRITEV = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); } + SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); } + SYS_FHSTAT = 299 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); } SYS_MODNEXT = 300 // { int modnext(int modid); } - SYS_MODSTAT = 301 // { int modstat(int modid, \ + SYS_MODSTAT = 301 // { int modstat(int modid, struct module_stat *stat); } SYS_MODFNEXT = 302 // { int modfnext(int modid); } SYS_MODFIND = 303 // { int modfind(const char *name); } SYS_KLDLOAD = 304 // { int kldload(const char *file); } SYS_KLDUNLOAD = 305 // { int kldunload(int fileid); } SYS_KLDFIND = 306 // { int kldfind(const char *file); } SYS_KLDNEXT = 307 // { int kldnext(int fileid); } - SYS_KLDSTAT = 308 // { int kldstat(int fileid, struct \ + SYS_KLDSTAT = 308 // { int kldstat(int fileid, struct kld_file_stat* stat); } SYS_KLDFIRSTMOD = 309 // { int kldfirstmod(int fileid); } SYS_GETSID = 310 // { int getsid(pid_t pid); } - SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, \ - SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, \ + SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); } + SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); } SYS_AIO_RETURN = 314 // { int aio_return(struct aiocb *aiocbp); } - SYS_AIO_SUSPEND = 315 // { int aio_suspend( \ - SYS_AIO_CANCEL = 316 // { int aio_cancel(int fd, \ + SYS_AIO_SUSPEND = 315 // { int aio_suspend( struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); } + SYS_AIO_CANCEL = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); } SYS_AIO_ERROR = 317 // { int aio_error(struct aiocb *aiocbp); } SYS_OAIO_READ = 318 // { int oaio_read(struct oaiocb *aiocbp); } SYS_OAIO_WRITE = 319 // { int oaio_write(struct oaiocb *aiocbp); } - SYS_OLIO_LISTIO = 320 // { int olio_listio(int mode, \ + SYS_OLIO_LISTIO = 320 // { int olio_listio(int mode, struct oaiocb * const *acb_list, int nent, struct osigevent *sig); } SYS_YIELD = 321 // { int yield(void); } SYS_MLOCKALL = 324 // { int mlockall(int how); } SYS_MUNLOCKALL = 325 // { int munlockall(void); } SYS___GETCWD = 326 // { int __getcwd(char *buf, u_int buflen); } - SYS_SCHED_SETPARAM = 327 // { int sched_setparam (pid_t pid, \ - SYS_SCHED_GETPARAM = 328 // { int sched_getparam (pid_t pid, struct \ - SYS_SCHED_SETSCHEDULER = 329 // { int sched_setscheduler (pid_t pid, int \ + SYS_SCHED_SETPARAM = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); } + SYS_SCHED_GETPARAM = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); } + SYS_SCHED_SETSCHEDULER = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); } SYS_SCHED_GETSCHEDULER = 330 // { int sched_getscheduler (pid_t pid); } SYS_SCHED_YIELD = 331 // { int sched_yield (void); } SYS_SCHED_GET_PRIORITY_MAX = 332 // { int sched_get_priority_max (int policy); } SYS_SCHED_GET_PRIORITY_MIN = 333 // { int sched_get_priority_min (int policy); } - SYS_SCHED_RR_GET_INTERVAL = 334 // { int sched_rr_get_interval (pid_t pid, \ + SYS_SCHED_RR_GET_INTERVAL = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); } SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); } - SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, \ + SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, void *data); } SYS_JAIL = 338 // { int jail(struct jail *jail); } - SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, \ + SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); } SYS_SIGSUSPEND = 341 // { int sigsuspend(const sigset_t *sigmask); } SYS_SIGPENDING = 343 // { int sigpending(sigset_t *set); } - SYS_SIGTIMEDWAIT = 345 // { int sigtimedwait(const sigset_t *set, \ - SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set, \ - SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, \ - SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, \ - SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, \ - SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, \ - SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, \ - SYS___ACL_DELETE_FD = 352 // { int __acl_delete_fd(int filedes, \ - SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, \ - SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, \ - SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, \ - SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file( \ - SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file( \ - SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, \ - SYS_AIO_WAITCOMPLETE = 359 // { int aio_waitcomplete( \ - SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, \ - SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, \ + SYS_SIGTIMEDWAIT = 345 // { int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec *timeout); } + SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set, siginfo_t *info); } + SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, acl_type_t type); } + SYS___ACL_DELETE_FD = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); } + SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } + SYS_AIO_WAITCOMPLETE = 359 // { int aio_waitcomplete( struct aiocb **aiocbp, struct timespec *timeout); } + SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } + SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } SYS_KQUEUE = 362 // { int kqueue(void); } - SYS_KEVENT = 363 // { int kevent(int fd, \ - SYS_EXTATTR_SET_FD = 371 // { ssize_t extattr_set_fd(int fd, \ - SYS_EXTATTR_GET_FD = 372 // { ssize_t extattr_get_fd(int fd, \ - SYS_EXTATTR_DELETE_FD = 373 // { int extattr_delete_fd(int fd, \ + SYS_KEVENT = 363 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } + SYS_EXTATTR_SET_FD = 371 // { ssize_t extattr_set_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_GET_FD = 372 // { ssize_t extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FD = 373 // { int extattr_delete_fd(int fd, int attrnamespace, const char *attrname); } SYS___SETUGID = 374 // { int __setugid(int flag); } SYS_EACCESS = 376 // { int eaccess(char *path, int amode); } - SYS_NMOUNT = 378 // { int nmount(struct iovec *iovp, \ + SYS_NMOUNT = 378 // { int nmount(struct iovec *iovp, unsigned int iovcnt, int flags); } SYS___MAC_GET_PROC = 384 // { int __mac_get_proc(struct mac *mac_p); } SYS___MAC_SET_PROC = 385 // { int __mac_set_proc(struct mac *mac_p); } - SYS___MAC_GET_FD = 386 // { int __mac_get_fd(int fd, \ - SYS___MAC_GET_FILE = 387 // { int __mac_get_file(const char *path_p, \ - SYS___MAC_SET_FD = 388 // { int __mac_set_fd(int fd, \ - SYS___MAC_SET_FILE = 389 // { int __mac_set_file(const char *path_p, \ - SYS_KENV = 390 // { int kenv(int what, const char *name, \ - SYS_LCHFLAGS = 391 // { int lchflags(const char *path, \ - SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, \ - SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, \ - SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, \ - SYS_GETFSSTAT = 395 // { int getfsstat(struct statfs *buf, \ - SYS_STATFS = 396 // { int statfs(char *path, \ + SYS___MAC_GET_FD = 386 // { int __mac_get_fd(int fd, struct mac *mac_p); } + SYS___MAC_GET_FILE = 387 // { int __mac_get_file(const char *path_p, struct mac *mac_p); } + SYS___MAC_SET_FD = 388 // { int __mac_set_fd(int fd, struct mac *mac_p); } + SYS___MAC_SET_FILE = 389 // { int __mac_set_file(const char *path_p, struct mac *mac_p); } + SYS_KENV = 390 // { int kenv(int what, const char *name, char *value, int len); } + SYS_LCHFLAGS = 391 // { int lchflags(const char *path, u_long flags); } + SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, int count); } + SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); } + SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, int call, void *arg); } + SYS_GETFSSTAT = 395 // { int getfsstat(struct statfs *buf, long bufsize, int flags); } + SYS_STATFS = 396 // { int statfs(char *path, struct statfs *buf); } SYS_FSTATFS = 397 // { int fstatfs(int fd, struct statfs *buf); } - SYS_FHSTATFS = 398 // { int fhstatfs(const struct fhandle *u_fhp, \ + SYS_FHSTATFS = 398 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } SYS_KSEM_CLOSE = 400 // { int ksem_close(semid_t id); } SYS_KSEM_POST = 401 // { int ksem_post(semid_t id); } SYS_KSEM_WAIT = 402 // { int ksem_wait(semid_t id); } SYS_KSEM_TRYWAIT = 403 // { int ksem_trywait(semid_t id); } - SYS_KSEM_INIT = 404 // { int ksem_init(semid_t *idp, \ - SYS_KSEM_OPEN = 405 // { int ksem_open(semid_t *idp, \ + SYS_KSEM_INIT = 404 // { int ksem_init(semid_t *idp, unsigned int value); } + SYS_KSEM_OPEN = 405 // { int ksem_open(semid_t *idp, const char *name, int oflag, mode_t mode, unsigned int value); } SYS_KSEM_UNLINK = 406 // { int ksem_unlink(const char *name); } SYS_KSEM_GETVALUE = 407 // { int ksem_getvalue(semid_t id, int *val); } SYS_KSEM_DESTROY = 408 // { int ksem_destroy(semid_t id); } - SYS___MAC_GET_PID = 409 // { int __mac_get_pid(pid_t pid, \ - SYS___MAC_GET_LINK = 410 // { int __mac_get_link(const char *path_p, \ - SYS___MAC_SET_LINK = 411 // { int __mac_set_link(const char *path_p, \ - SYS_EXTATTR_SET_LINK = 412 // { ssize_t extattr_set_link( \ - SYS_EXTATTR_GET_LINK = 413 // { ssize_t extattr_get_link( \ - SYS_EXTATTR_DELETE_LINK = 414 // { int extattr_delete_link( \ - SYS___MAC_EXECVE = 415 // { int __mac_execve(char *fname, char **argv, \ - SYS_SIGACTION = 416 // { int sigaction(int sig, \ - SYS_SIGRETURN = 417 // { int sigreturn( \ + SYS___MAC_GET_PID = 409 // { int __mac_get_pid(pid_t pid, struct mac *mac_p); } + SYS___MAC_GET_LINK = 410 // { int __mac_get_link(const char *path_p, struct mac *mac_p); } + SYS___MAC_SET_LINK = 411 // { int __mac_set_link(const char *path_p, struct mac *mac_p); } + SYS_EXTATTR_SET_LINK = 412 // { ssize_t extattr_set_link( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_GET_LINK = 413 // { ssize_t extattr_get_link( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_LINK = 414 // { int extattr_delete_link( const char *path, int attrnamespace, const char *attrname); } + SYS___MAC_EXECVE = 415 // { int __mac_execve(char *fname, char **argv, char **envv, struct mac *mac_p); } + SYS_SIGACTION = 416 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); } + SYS_SIGRETURN = 417 // { int sigreturn( const struct __ucontext *sigcntxp); } SYS_GETCONTEXT = 421 // { int getcontext(struct __ucontext *ucp); } - SYS_SETCONTEXT = 422 // { int setcontext( \ - SYS_SWAPCONTEXT = 423 // { int swapcontext(struct __ucontext *oucp, \ + SYS_SETCONTEXT = 422 // { int setcontext( const struct __ucontext *ucp); } + SYS_SWAPCONTEXT = 423 // { int swapcontext(struct __ucontext *oucp, const struct __ucontext *ucp); } SYS_SWAPOFF = 424 // { int swapoff(const char *name); } - SYS___ACL_GET_LINK = 425 // { int __acl_get_link(const char *path, \ - SYS___ACL_SET_LINK = 426 // { int __acl_set_link(const char *path, \ - SYS___ACL_DELETE_LINK = 427 // { int __acl_delete_link(const char *path, \ - SYS___ACL_ACLCHECK_LINK = 428 // { int __acl_aclcheck_link(const char *path, \ - SYS_SIGWAIT = 429 // { int sigwait(const sigset_t *set, \ - SYS_THR_CREATE = 430 // { int thr_create(ucontext_t *ctx, long *id, \ + SYS___ACL_GET_LINK = 425 // { int __acl_get_link(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_SET_LINK = 426 // { int __acl_set_link(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_DELETE_LINK = 427 // { int __acl_delete_link(const char *path, acl_type_t type); } + SYS___ACL_ACLCHECK_LINK = 428 // { int __acl_aclcheck_link(const char *path, acl_type_t type, struct acl *aclp); } + SYS_SIGWAIT = 429 // { int sigwait(const sigset_t *set, int *sig); } + SYS_THR_CREATE = 430 // { int thr_create(ucontext_t *ctx, long *id, int flags); } SYS_THR_EXIT = 431 // { void thr_exit(long *state); } SYS_THR_SELF = 432 // { int thr_self(long *id); } SYS_THR_KILL = 433 // { int thr_kill(long id, int sig); } SYS__UMTX_LOCK = 434 // { int _umtx_lock(struct umtx *umtx); } SYS__UMTX_UNLOCK = 435 // { int _umtx_unlock(struct umtx *umtx); } SYS_JAIL_ATTACH = 436 // { int jail_attach(int jid); } - SYS_EXTATTR_LIST_FD = 437 // { ssize_t extattr_list_fd(int fd, \ - SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file( \ - SYS_EXTATTR_LIST_LINK = 439 // { ssize_t extattr_list_link( \ - SYS_KSEM_TIMEDWAIT = 441 // { int ksem_timedwait(semid_t id, \ - SYS_THR_SUSPEND = 442 // { int thr_suspend( \ + SYS_EXTATTR_LIST_FD = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file( const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_LINK = 439 // { ssize_t extattr_list_link( const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_KSEM_TIMEDWAIT = 441 // { int ksem_timedwait(semid_t id, const struct timespec *abstime); } + SYS_THR_SUSPEND = 442 // { int thr_suspend( const struct timespec *timeout); } SYS_THR_WAKE = 443 // { int thr_wake(long id); } SYS_KLDUNLOADF = 444 // { int kldunloadf(int fileid, int flags); } - SYS_AUDIT = 445 // { int audit(const void *record, \ - SYS_AUDITON = 446 // { int auditon(int cmd, void *data, \ + SYS_AUDIT = 445 // { int audit(const void *record, u_int length); } + SYS_AUDITON = 446 // { int auditon(int cmd, void *data, u_int length); } SYS_GETAUID = 447 // { int getauid(uid_t *auid); } SYS_SETAUID = 448 // { int setauid(uid_t *auid); } SYS_GETAUDIT = 449 // { int getaudit(struct auditinfo *auditinfo); } SYS_SETAUDIT = 450 // { int setaudit(struct auditinfo *auditinfo); } - SYS_GETAUDIT_ADDR = 451 // { int getaudit_addr( \ - SYS_SETAUDIT_ADDR = 452 // { int setaudit_addr( \ + SYS_GETAUDIT_ADDR = 451 // { int getaudit_addr( struct auditinfo_addr *auditinfo_addr, u_int length); } + SYS_SETAUDIT_ADDR = 452 // { int setaudit_addr( struct auditinfo_addr *auditinfo_addr, u_int length); } SYS_AUDITCTL = 453 // { int auditctl(char *path); } - SYS__UMTX_OP = 454 // { int _umtx_op(void *obj, int op, \ - SYS_THR_NEW = 455 // { int thr_new(struct thr_param *param, \ + SYS__UMTX_OP = 454 // { int _umtx_op(void *obj, int op, u_long val, void *uaddr1, void *uaddr2); } + SYS_THR_NEW = 455 // { int thr_new(struct thr_param *param, int param_size); } SYS_SIGQUEUE = 456 // { int sigqueue(pid_t pid, int signum, void *value); } - SYS_KMQ_OPEN = 457 // { int kmq_open(const char *path, int flags, \ - SYS_KMQ_SETATTR = 458 // { int kmq_setattr(int mqd, \ - SYS_KMQ_TIMEDRECEIVE = 459 // { int kmq_timedreceive(int mqd, \ - SYS_KMQ_TIMEDSEND = 460 // { int kmq_timedsend(int mqd, \ - SYS_KMQ_NOTIFY = 461 // { int kmq_notify(int mqd, \ + SYS_KMQ_OPEN = 457 // { int kmq_open(const char *path, int flags, mode_t mode, const struct mq_attr *attr); } + SYS_KMQ_SETATTR = 458 // { int kmq_setattr(int mqd, const struct mq_attr *attr, struct mq_attr *oattr); } + SYS_KMQ_TIMEDRECEIVE = 459 // { int kmq_timedreceive(int mqd, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); } + SYS_KMQ_TIMEDSEND = 460 // { int kmq_timedsend(int mqd, const char *msg_ptr, size_t msg_len,unsigned msg_prio, const struct timespec *abs_timeout);} + SYS_KMQ_NOTIFY = 461 // { int kmq_notify(int mqd, const struct sigevent *sigev); } SYS_KMQ_UNLINK = 462 // { int kmq_unlink(const char *path); } SYS_ABORT2 = 463 // { int abort2(const char *why, int nargs, void **args); } SYS_THR_SET_NAME = 464 // { int thr_set_name(long id, const char *name); } SYS_AIO_FSYNC = 465 // { int aio_fsync(int op, struct aiocb *aiocbp); } - SYS_RTPRIO_THREAD = 466 // { int rtprio_thread(int function, \ + SYS_RTPRIO_THREAD = 466 // { int rtprio_thread(int function, lwpid_t lwpid, struct rtprio *rtp); } SYS_SCTP_PEELOFF = 471 // { int sctp_peeloff(int sd, uint32_t name); } - SYS_SCTP_GENERIC_SENDMSG = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, \ - SYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, \ - SYS_SCTP_GENERIC_RECVMSG = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, \ - SYS_PREAD = 475 // { ssize_t pread(int fd, void *buf, \ - SYS_PWRITE = 476 // { ssize_t pwrite(int fd, const void *buf, \ - SYS_MMAP = 477 // { caddr_t mmap(caddr_t addr, size_t len, \ - SYS_LSEEK = 478 // { off_t lseek(int fd, off_t offset, \ + SYS_SCTP_GENERIC_SENDMSG = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); } + SYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); } + SYS_SCTP_GENERIC_RECVMSG = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, struct sockaddr * from, __socklen_t *fromlenaddr, struct sctp_sndrcvinfo *sinfo, int *msg_flags); } + SYS_PREAD = 475 // { ssize_t pread(int fd, void *buf, size_t nbyte, off_t offset); } + SYS_PWRITE = 476 // { ssize_t pwrite(int fd, const void *buf, size_t nbyte, off_t offset); } + SYS_MMAP = 477 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, off_t pos); } + SYS_LSEEK = 478 // { off_t lseek(int fd, off_t offset, int whence); } SYS_TRUNCATE = 479 // { int truncate(char *path, off_t length); } SYS_FTRUNCATE = 480 // { int ftruncate(int fd, off_t length); } SYS_THR_KILL2 = 481 // { int thr_kill2(pid_t pid, long id, int sig); } - SYS_SHM_OPEN = 482 // { int shm_open(const char *path, int flags, \ + SYS_SHM_OPEN = 482 // { int shm_open(const char *path, int flags, mode_t mode); } SYS_SHM_UNLINK = 483 // { int shm_unlink(const char *path); } SYS_CPUSET = 484 // { int cpuset(cpusetid_t *setid); } - SYS_CPUSET_SETID = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, \ - SYS_CPUSET_GETID = 486 // { int cpuset_getid(cpulevel_t level, \ - SYS_CPUSET_GETAFFINITY = 487 // { int cpuset_getaffinity(cpulevel_t level, \ - SYS_CPUSET_SETAFFINITY = 488 // { int cpuset_setaffinity(cpulevel_t level, \ - SYS_FACCESSAT = 489 // { int faccessat(int fd, char *path, int amode, \ - SYS_FCHMODAT = 490 // { int fchmodat(int fd, char *path, mode_t mode, \ - SYS_FCHOWNAT = 491 // { int fchownat(int fd, char *path, uid_t uid, \ - SYS_FEXECVE = 492 // { int fexecve(int fd, char **argv, \ - SYS_FSTATAT = 493 // { int fstatat(int fd, char *path, \ - SYS_FUTIMESAT = 494 // { int futimesat(int fd, char *path, \ - SYS_LINKAT = 495 // { int linkat(int fd1, char *path1, int fd2, \ + SYS_CPUSET_SETID = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, cpusetid_t setid); } + SYS_CPUSET_GETID = 486 // { int cpuset_getid(cpulevel_t level, cpuwhich_t which, id_t id, cpusetid_t *setid); } + SYS_CPUSET_GETAFFINITY = 487 // { int cpuset_getaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, cpuset_t *mask); } + SYS_CPUSET_SETAFFINITY = 488 // { int cpuset_setaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, const cpuset_t *mask); } + SYS_FACCESSAT = 489 // { int faccessat(int fd, char *path, int amode, int flag); } + SYS_FCHMODAT = 490 // { int fchmodat(int fd, char *path, mode_t mode, int flag); } + SYS_FCHOWNAT = 491 // { int fchownat(int fd, char *path, uid_t uid, gid_t gid, int flag); } + SYS_FEXECVE = 492 // { int fexecve(int fd, char **argv, char **envv); } + SYS_FSTATAT = 493 // { int fstatat(int fd, char *path, struct stat *buf, int flag); } + SYS_FUTIMESAT = 494 // { int futimesat(int fd, char *path, struct timeval *times); } + SYS_LINKAT = 495 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flag); } SYS_MKDIRAT = 496 // { int mkdirat(int fd, char *path, mode_t mode); } SYS_MKFIFOAT = 497 // { int mkfifoat(int fd, char *path, mode_t mode); } - SYS_MKNODAT = 498 // { int mknodat(int fd, char *path, mode_t mode, \ - SYS_OPENAT = 499 // { int openat(int fd, char *path, int flag, \ - SYS_READLINKAT = 500 // { int readlinkat(int fd, char *path, char *buf, \ - SYS_RENAMEAT = 501 // { int renameat(int oldfd, char *old, int newfd, \ - SYS_SYMLINKAT = 502 // { int symlinkat(char *path1, int fd, \ + SYS_MKNODAT = 498 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); } + SYS_OPENAT = 499 // { int openat(int fd, char *path, int flag, mode_t mode); } + SYS_READLINKAT = 500 // { int readlinkat(int fd, char *path, char *buf, size_t bufsize); } + SYS_RENAMEAT = 501 // { int renameat(int oldfd, char *old, int newfd, char *new); } + SYS_SYMLINKAT = 502 // { int symlinkat(char *path1, int fd, char *path2); } SYS_UNLINKAT = 503 // { int unlinkat(int fd, char *path, int flag); } SYS_POSIX_OPENPT = 504 // { int posix_openpt(int flags); } SYS_GSSD_SYSCALL = 505 // { int gssd_syscall(char *path); } - SYS_JAIL_GET = 506 // { int jail_get(struct iovec *iovp, \ - SYS_JAIL_SET = 507 // { int jail_set(struct iovec *iovp, \ + SYS_JAIL_GET = 506 // { int jail_get(struct iovec *iovp, unsigned int iovcnt, int flags); } + SYS_JAIL_SET = 507 // { int jail_set(struct iovec *iovp, unsigned int iovcnt, int flags); } SYS_JAIL_REMOVE = 508 // { int jail_remove(int jid); } SYS_CLOSEFROM = 509 // { int closefrom(int lowfd); } - SYS___SEMCTL = 510 // { int __semctl(int semid, int semnum, \ - SYS_MSGCTL = 511 // { int msgctl(int msqid, int cmd, \ - SYS_SHMCTL = 512 // { int shmctl(int shmid, int cmd, \ + SYS___SEMCTL = 510 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); } + SYS_MSGCTL = 511 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); } + SYS_SHMCTL = 512 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); } SYS_LPATHCONF = 513 // { int lpathconf(char *path, int name); } - SYS___CAP_RIGHTS_GET = 515 // { int __cap_rights_get(int version, \ + SYS___CAP_RIGHTS_GET = 515 // { int __cap_rights_get(int version, int fd, cap_rights_t *rightsp); } SYS_CAP_ENTER = 516 // { int cap_enter(void); } SYS_CAP_GETMODE = 517 // { int cap_getmode(u_int *modep); } SYS_PDFORK = 518 // { int pdfork(int *fdp, int flags); } SYS_PDKILL = 519 // { int pdkill(int fd, int signum); } SYS_PDGETPID = 520 // { int pdgetpid(int fd, pid_t *pidp); } - SYS_PSELECT = 522 // { int pselect(int nd, fd_set *in, \ - SYS_GETLOGINCLASS = 523 // { int getloginclass(char *namebuf, \ + SYS_PSELECT = 522 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sm); } + SYS_GETLOGINCLASS = 523 // { int getloginclass(char *namebuf, size_t namelen); } SYS_SETLOGINCLASS = 524 // { int setloginclass(const char *namebuf); } - SYS_RCTL_GET_RACCT = 525 // { int rctl_get_racct(const void *inbufp, \ - SYS_RCTL_GET_RULES = 526 // { int rctl_get_rules(const void *inbufp, \ - SYS_RCTL_GET_LIMITS = 527 // { int rctl_get_limits(const void *inbufp, \ - SYS_RCTL_ADD_RULE = 528 // { int rctl_add_rule(const void *inbufp, \ - SYS_RCTL_REMOVE_RULE = 529 // { int rctl_remove_rule(const void *inbufp, \ - SYS_POSIX_FALLOCATE = 530 // { int posix_fallocate(int fd, \ - SYS_POSIX_FADVISE = 531 // { int posix_fadvise(int fd, off_t offset, \ - SYS_WAIT6 = 532 // { int wait6(idtype_t idtype, id_t id, \ - SYS_CAP_RIGHTS_LIMIT = 533 // { int cap_rights_limit(int fd, \ - SYS_CAP_IOCTLS_LIMIT = 534 // { int cap_ioctls_limit(int fd, \ - SYS_CAP_IOCTLS_GET = 535 // { ssize_t cap_ioctls_get(int fd, \ - SYS_CAP_FCNTLS_LIMIT = 536 // { int cap_fcntls_limit(int fd, \ - SYS_CAP_FCNTLS_GET = 537 // { int cap_fcntls_get(int fd, \ - SYS_BINDAT = 538 // { int bindat(int fd, int s, caddr_t name, \ - SYS_CONNECTAT = 539 // { int connectat(int fd, int s, caddr_t name, \ - SYS_CHFLAGSAT = 540 // { int chflagsat(int fd, const char *path, \ - SYS_ACCEPT4 = 541 // { int accept4(int s, \ + SYS_RCTL_GET_RACCT = 525 // { int rctl_get_racct(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_GET_RULES = 526 // { int rctl_get_rules(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_GET_LIMITS = 527 // { int rctl_get_limits(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_ADD_RULE = 528 // { int rctl_add_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_REMOVE_RULE = 529 // { int rctl_remove_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_POSIX_FALLOCATE = 530 // { int posix_fallocate(int fd, off_t offset, off_t len); } + SYS_POSIX_FADVISE = 531 // { int posix_fadvise(int fd, off_t offset, off_t len, int advice); } + SYS_WAIT6 = 532 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); } + SYS_CAP_RIGHTS_LIMIT = 533 // { int cap_rights_limit(int fd, cap_rights_t *rightsp); } + SYS_CAP_IOCTLS_LIMIT = 534 // { int cap_ioctls_limit(int fd, const u_long *cmds, size_t ncmds); } + SYS_CAP_IOCTLS_GET = 535 // { ssize_t cap_ioctls_get(int fd, u_long *cmds, size_t maxcmds); } + SYS_CAP_FCNTLS_LIMIT = 536 // { int cap_fcntls_limit(int fd, uint32_t fcntlrights); } + SYS_CAP_FCNTLS_GET = 537 // { int cap_fcntls_get(int fd, uint32_t *fcntlrightsp); } + SYS_BINDAT = 538 // { int bindat(int fd, int s, caddr_t name, int namelen); } + SYS_CONNECTAT = 539 // { int connectat(int fd, int s, caddr_t name, int namelen); } + SYS_CHFLAGSAT = 540 // { int chflagsat(int fd, const char *path, u_long flags, int atflag); } + SYS_ACCEPT4 = 541 // { int accept4(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen, int flags); } SYS_PIPE2 = 542 // { int pipe2(int *fildes, int flags); } SYS_AIO_MLOCK = 543 // { int aio_mlock(struct aiocb *aiocbp); } - SYS_PROCCTL = 544 // { int procctl(idtype_t idtype, id_t id, \ - SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, \ - SYS_FUTIMENS = 546 // { int futimens(int fd, \ - SYS_UTIMENSAT = 547 // { int utimensat(int fd, \ + SYS_PROCCTL = 544 // { int procctl(idtype_t idtype, id_t id, int com, void *data); } + SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); } + SYS_FUTIMENS = 546 // { int futimens(int fd, struct timespec *times); } + SYS_UTIMENSAT = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); } ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go new file mode 100644 index 000000000..8c1e16ca5 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go @@ -0,0 +1,395 @@ +// mksysnum_freebsd.pl +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build arm64,freebsd + +package unix + +const ( + // SYS_NOSYS = 0; // { int nosys(void); } syscall nosys_args int + SYS_EXIT = 1 // { void sys_exit(int rval); } exit \ + SYS_FORK = 2 // { int fork(void); } + SYS_READ = 3 // { ssize_t read(int fd, void *buf, \ + SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, \ + SYS_OPEN = 5 // { int open(char *path, int flags, int mode); } + SYS_CLOSE = 6 // { int close(int fd); } + SYS_WAIT4 = 7 // { int wait4(int pid, int *status, \ + SYS_LINK = 9 // { int link(char *path, char *link); } + SYS_UNLINK = 10 // { int unlink(char *path); } + SYS_CHDIR = 12 // { int chdir(char *path); } + SYS_FCHDIR = 13 // { int fchdir(int fd); } + SYS_MKNOD = 14 // { int mknod(char *path, int mode, int dev); } + SYS_CHMOD = 15 // { int chmod(char *path, int mode); } + SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } + SYS_OBREAK = 17 // { int obreak(char *nsize); } break \ + SYS_GETPID = 20 // { pid_t getpid(void); } + SYS_MOUNT = 21 // { int mount(char *type, char *path, \ + SYS_UNMOUNT = 22 // { int unmount(char *path, int flags); } + SYS_SETUID = 23 // { int setuid(uid_t uid); } + SYS_GETUID = 24 // { uid_t getuid(void); } + SYS_GETEUID = 25 // { uid_t geteuid(void); } + SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, \ + SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, \ + SYS_SENDMSG = 28 // { int sendmsg(int s, struct msghdr *msg, \ + SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, \ + SYS_ACCEPT = 30 // { int accept(int s, \ + SYS_GETPEERNAME = 31 // { int getpeername(int fdes, \ + SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, \ + SYS_ACCESS = 33 // { int access(char *path, int amode); } + SYS_CHFLAGS = 34 // { int chflags(const char *path, u_long flags); } + SYS_FCHFLAGS = 35 // { int fchflags(int fd, u_long flags); } + SYS_SYNC = 36 // { int sync(void); } + SYS_KILL = 37 // { int kill(int pid, int signum); } + SYS_GETPPID = 39 // { pid_t getppid(void); } + SYS_DUP = 41 // { int dup(u_int fd); } + SYS_GETEGID = 43 // { gid_t getegid(void); } + SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, \ + SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, \ + SYS_GETGID = 47 // { gid_t getgid(void); } + SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int \ + SYS_SETLOGIN = 50 // { int setlogin(char *namebuf); } + SYS_ACCT = 51 // { int acct(char *path); } + SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, \ + SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, \ + SYS_REBOOT = 55 // { int reboot(int opt); } + SYS_REVOKE = 56 // { int revoke(char *path); } + SYS_SYMLINK = 57 // { int symlink(char *path, char *link); } + SYS_READLINK = 58 // { ssize_t readlink(char *path, char *buf, \ + SYS_EXECVE = 59 // { int execve(char *fname, char **argv, \ + SYS_UMASK = 60 // { int umask(int newmask); } umask umask_args \ + SYS_CHROOT = 61 // { int chroot(char *path); } + SYS_MSYNC = 65 // { int msync(void *addr, size_t len, \ + SYS_VFORK = 66 // { int vfork(void); } + SYS_SBRK = 69 // { int sbrk(int incr); } + SYS_SSTK = 70 // { int sstk(int incr); } + SYS_OVADVISE = 72 // { int ovadvise(int anom); } vadvise \ + SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); } + SYS_MPROTECT = 74 // { int mprotect(const void *addr, size_t len, \ + SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, \ + SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, \ + SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, \ + SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, \ + SYS_GETPGRP = 81 // { int getpgrp(void); } + SYS_SETPGID = 82 // { int setpgid(int pid, int pgid); } + SYS_SETITIMER = 83 // { int setitimer(u_int which, struct \ + SYS_SWAPON = 85 // { int swapon(char *name); } + SYS_GETITIMER = 86 // { int getitimer(u_int which, \ + SYS_GETDTABLESIZE = 89 // { int getdtablesize(void); } + SYS_DUP2 = 90 // { int dup2(u_int from, u_int to); } + SYS_FCNTL = 92 // { int fcntl(int fd, int cmd, long arg); } + SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, \ + SYS_FSYNC = 95 // { int fsync(int fd); } + SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, \ + SYS_SOCKET = 97 // { int socket(int domain, int type, \ + SYS_CONNECT = 98 // { int connect(int s, caddr_t name, \ + SYS_GETPRIORITY = 100 // { int getpriority(int which, int who); } + SYS_BIND = 104 // { int bind(int s, caddr_t name, \ + SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, \ + SYS_LISTEN = 106 // { int listen(int s, int backlog); } + SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, \ + SYS_GETRUSAGE = 117 // { int getrusage(int who, \ + SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, \ + SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, \ + SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, \ + SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, \ + SYS_FCHOWN = 123 // { int fchown(int fd, int uid, int gid); } + SYS_FCHMOD = 124 // { int fchmod(int fd, int mode); } + SYS_SETREUID = 126 // { int setreuid(int ruid, int euid); } + SYS_SETREGID = 127 // { int setregid(int rgid, int egid); } + SYS_RENAME = 128 // { int rename(char *from, char *to); } + SYS_FLOCK = 131 // { int flock(int fd, int how); } + SYS_MKFIFO = 132 // { int mkfifo(char *path, int mode); } + SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, \ + SYS_SHUTDOWN = 134 // { int shutdown(int s, int how); } + SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, \ + SYS_MKDIR = 136 // { int mkdir(char *path, int mode); } + SYS_RMDIR = 137 // { int rmdir(char *path); } + SYS_UTIMES = 138 // { int utimes(char *path, \ + SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, \ + SYS_SETSID = 147 // { int setsid(void); } + SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, \ + SYS_NLM_SYSCALL = 154 // { int nlm_syscall(int debug_level, int grace_period, int addr_count, char **addrs); } + SYS_NFSSVC = 155 // { int nfssvc(int flag, caddr_t argp); } + SYS_LGETFH = 160 // { int lgetfh(char *fname, \ + SYS_GETFH = 161 // { int getfh(char *fname, \ + SYS_SYSARCH = 165 // { int sysarch(int op, char *parms); } + SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, \ + SYS_SEMSYS = 169 // { int semsys(int which, int a2, int a3, \ + SYS_MSGSYS = 170 // { int msgsys(int which, int a2, int a3, \ + SYS_SHMSYS = 171 // { int shmsys(int which, int a2, int a3, \ + SYS_SETFIB = 175 // { int setfib(int fibnum); } + SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); } + SYS_SETGID = 181 // { int setgid(gid_t gid); } + SYS_SETEGID = 182 // { int setegid(gid_t egid); } + SYS_SETEUID = 183 // { int seteuid(uid_t euid); } + SYS_STAT = 188 // { int stat(char *path, struct stat *ub); } + SYS_FSTAT = 189 // { int fstat(int fd, struct stat *sb); } + SYS_LSTAT = 190 // { int lstat(char *path, struct stat *ub); } + SYS_PATHCONF = 191 // { int pathconf(char *path, int name); } + SYS_FPATHCONF = 192 // { int fpathconf(int fd, int name); } + SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, \ + SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, \ + SYS_GETDIRENTRIES = 196 // { int getdirentries(int fd, char *buf, \ + SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, \ + SYS_MLOCK = 203 // { int mlock(const void *addr, size_t len); } + SYS_MUNLOCK = 204 // { int munlock(const void *addr, size_t len); } + SYS_UNDELETE = 205 // { int undelete(char *path); } + SYS_FUTIMES = 206 // { int futimes(int fd, struct timeval *tptr); } + SYS_GETPGID = 207 // { int getpgid(pid_t pid); } + SYS_POLL = 209 // { int poll(struct pollfd *fds, u_int nfds, \ + SYS_SEMGET = 221 // { int semget(key_t key, int nsems, \ + SYS_SEMOP = 222 // { int semop(int semid, struct sembuf *sops, \ + SYS_MSGGET = 225 // { int msgget(key_t key, int msgflg); } + SYS_MSGSND = 226 // { int msgsnd(int msqid, const void *msgp, \ + SYS_MSGRCV = 227 // { int msgrcv(int msqid, void *msgp, \ + SYS_SHMAT = 228 // { int shmat(int shmid, const void *shmaddr, \ + SYS_SHMDT = 230 // { int shmdt(const void *shmaddr); } + SYS_SHMGET = 231 // { int shmget(key_t key, size_t size, \ + SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, \ + SYS_CLOCK_SETTIME = 233 // { int clock_settime( \ + SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, \ + SYS_KTIMER_CREATE = 235 // { int ktimer_create(clockid_t clock_id, \ + SYS_KTIMER_DELETE = 236 // { int ktimer_delete(int timerid); } + SYS_KTIMER_SETTIME = 237 // { int ktimer_settime(int timerid, int flags, \ + SYS_KTIMER_GETTIME = 238 // { int ktimer_gettime(int timerid, struct \ + SYS_KTIMER_GETOVERRUN = 239 // { int ktimer_getoverrun(int timerid); } + SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, \ + SYS_FFCLOCK_GETCOUNTER = 241 // { int ffclock_getcounter(ffcounter *ffcount); } + SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate( \ + SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate( \ + SYS_CLOCK_NANOSLEEP = 244 // { int clock_nanosleep(clockid_t clock_id, \ + SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id,\ + SYS_NTP_GETTIME = 248 // { int ntp_gettime(struct ntptimeval *ntvp); } + SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, \ + SYS_RFORK = 251 // { int rfork(int flags); } + SYS_OPENBSD_POLL = 252 // { int openbsd_poll(struct pollfd *fds, \ + SYS_ISSETUGID = 253 // { int issetugid(void); } + SYS_LCHOWN = 254 // { int lchown(char *path, int uid, int gid); } + SYS_AIO_READ = 255 // { int aio_read(struct aiocb *aiocbp); } + SYS_AIO_WRITE = 256 // { int aio_write(struct aiocb *aiocbp); } + SYS_LIO_LISTIO = 257 // { int lio_listio(int mode, \ + SYS_GETDENTS = 272 // { int getdents(int fd, char *buf, \ + SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } + SYS_LUTIMES = 276 // { int lutimes(char *path, \ + SYS_NSTAT = 278 // { int nstat(char *path, struct nstat *ub); } + SYS_NFSTAT = 279 // { int nfstat(int fd, struct nstat *sb); } + SYS_NLSTAT = 280 // { int nlstat(char *path, struct nstat *ub); } + SYS_PREADV = 289 // { ssize_t preadv(int fd, struct iovec *iovp, \ + SYS_PWRITEV = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, \ + SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, \ + SYS_FHSTAT = 299 // { int fhstat(const struct fhandle *u_fhp, \ + SYS_MODNEXT = 300 // { int modnext(int modid); } + SYS_MODSTAT = 301 // { int modstat(int modid, \ + SYS_MODFNEXT = 302 // { int modfnext(int modid); } + SYS_MODFIND = 303 // { int modfind(const char *name); } + SYS_KLDLOAD = 304 // { int kldload(const char *file); } + SYS_KLDUNLOAD = 305 // { int kldunload(int fileid); } + SYS_KLDFIND = 306 // { int kldfind(const char *file); } + SYS_KLDNEXT = 307 // { int kldnext(int fileid); } + SYS_KLDSTAT = 308 // { int kldstat(int fileid, struct \ + SYS_KLDFIRSTMOD = 309 // { int kldfirstmod(int fileid); } + SYS_GETSID = 310 // { int getsid(pid_t pid); } + SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, \ + SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, \ + SYS_AIO_RETURN = 314 // { ssize_t aio_return(struct aiocb *aiocbp); } + SYS_AIO_SUSPEND = 315 // { int aio_suspend( \ + SYS_AIO_CANCEL = 316 // { int aio_cancel(int fd, \ + SYS_AIO_ERROR = 317 // { int aio_error(struct aiocb *aiocbp); } + SYS_YIELD = 321 // { int yield(void); } + SYS_MLOCKALL = 324 // { int mlockall(int how); } + SYS_MUNLOCKALL = 325 // { int munlockall(void); } + SYS___GETCWD = 326 // { int __getcwd(char *buf, u_int buflen); } + SYS_SCHED_SETPARAM = 327 // { int sched_setparam (pid_t pid, \ + SYS_SCHED_GETPARAM = 328 // { int sched_getparam (pid_t pid, struct \ + SYS_SCHED_SETSCHEDULER = 329 // { int sched_setscheduler (pid_t pid, int \ + SYS_SCHED_GETSCHEDULER = 330 // { int sched_getscheduler (pid_t pid); } + SYS_SCHED_YIELD = 331 // { int sched_yield (void); } + SYS_SCHED_GET_PRIORITY_MAX = 332 // { int sched_get_priority_max (int policy); } + SYS_SCHED_GET_PRIORITY_MIN = 333 // { int sched_get_priority_min (int policy); } + SYS_SCHED_RR_GET_INTERVAL = 334 // { int sched_rr_get_interval (pid_t pid, \ + SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); } + SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, \ + SYS_JAIL = 338 // { int jail(struct jail *jail); } + SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, \ + SYS_SIGSUSPEND = 341 // { int sigsuspend(const sigset_t *sigmask); } + SYS_SIGPENDING = 343 // { int sigpending(sigset_t *set); } + SYS_SIGTIMEDWAIT = 345 // { int sigtimedwait(const sigset_t *set, \ + SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set, \ + SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, \ + SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, \ + SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, \ + SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, \ + SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, \ + SYS___ACL_DELETE_FD = 352 // { int __acl_delete_fd(int filedes, \ + SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, \ + SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, \ + SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, \ + SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file( \ + SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file( \ + SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, \ + SYS_AIO_WAITCOMPLETE = 359 // { ssize_t aio_waitcomplete( \ + SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, \ + SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, \ + SYS_KQUEUE = 362 // { int kqueue(void); } + SYS_KEVENT = 363 // { int kevent(int fd, \ + SYS_EXTATTR_SET_FD = 371 // { ssize_t extattr_set_fd(int fd, \ + SYS_EXTATTR_GET_FD = 372 // { ssize_t extattr_get_fd(int fd, \ + SYS_EXTATTR_DELETE_FD = 373 // { int extattr_delete_fd(int fd, \ + SYS___SETUGID = 374 // { int __setugid(int flag); } + SYS_EACCESS = 376 // { int eaccess(char *path, int amode); } + SYS_NMOUNT = 378 // { int nmount(struct iovec *iovp, \ + SYS___MAC_GET_PROC = 384 // { int __mac_get_proc(struct mac *mac_p); } + SYS___MAC_SET_PROC = 385 // { int __mac_set_proc(struct mac *mac_p); } + SYS___MAC_GET_FD = 386 // { int __mac_get_fd(int fd, \ + SYS___MAC_GET_FILE = 387 // { int __mac_get_file(const char *path_p, \ + SYS___MAC_SET_FD = 388 // { int __mac_set_fd(int fd, \ + SYS___MAC_SET_FILE = 389 // { int __mac_set_file(const char *path_p, \ + SYS_KENV = 390 // { int kenv(int what, const char *name, \ + SYS_LCHFLAGS = 391 // { int lchflags(const char *path, \ + SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, \ + SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, \ + SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, \ + SYS_GETFSSTAT = 395 // { int getfsstat(struct statfs *buf, \ + SYS_STATFS = 396 // { int statfs(char *path, \ + SYS_FSTATFS = 397 // { int fstatfs(int fd, struct statfs *buf); } + SYS_FHSTATFS = 398 // { int fhstatfs(const struct fhandle *u_fhp, \ + SYS_KSEM_CLOSE = 400 // { int ksem_close(semid_t id); } + SYS_KSEM_POST = 401 // { int ksem_post(semid_t id); } + SYS_KSEM_WAIT = 402 // { int ksem_wait(semid_t id); } + SYS_KSEM_TRYWAIT = 403 // { int ksem_trywait(semid_t id); } + SYS_KSEM_INIT = 404 // { int ksem_init(semid_t *idp, \ + SYS_KSEM_OPEN = 405 // { int ksem_open(semid_t *idp, \ + SYS_KSEM_UNLINK = 406 // { int ksem_unlink(const char *name); } + SYS_KSEM_GETVALUE = 407 // { int ksem_getvalue(semid_t id, int *val); } + SYS_KSEM_DESTROY = 408 // { int ksem_destroy(semid_t id); } + SYS___MAC_GET_PID = 409 // { int __mac_get_pid(pid_t pid, \ + SYS___MAC_GET_LINK = 410 // { int __mac_get_link(const char *path_p, \ + SYS___MAC_SET_LINK = 411 // { int __mac_set_link(const char *path_p, \ + SYS_EXTATTR_SET_LINK = 412 // { ssize_t extattr_set_link( \ + SYS_EXTATTR_GET_LINK = 413 // { ssize_t extattr_get_link( \ + SYS_EXTATTR_DELETE_LINK = 414 // { int extattr_delete_link( \ + SYS___MAC_EXECVE = 415 // { int __mac_execve(char *fname, char **argv, \ + SYS_SIGACTION = 416 // { int sigaction(int sig, \ + SYS_SIGRETURN = 417 // { int sigreturn( \ + SYS_GETCONTEXT = 421 // { int getcontext(struct __ucontext *ucp); } + SYS_SETCONTEXT = 422 // { int setcontext( \ + SYS_SWAPCONTEXT = 423 // { int swapcontext(struct __ucontext *oucp, \ + SYS_SWAPOFF = 424 // { int swapoff(const char *name); } + SYS___ACL_GET_LINK = 425 // { int __acl_get_link(const char *path, \ + SYS___ACL_SET_LINK = 426 // { int __acl_set_link(const char *path, \ + SYS___ACL_DELETE_LINK = 427 // { int __acl_delete_link(const char *path, \ + SYS___ACL_ACLCHECK_LINK = 428 // { int __acl_aclcheck_link(const char *path, \ + SYS_SIGWAIT = 429 // { int sigwait(const sigset_t *set, \ + SYS_THR_CREATE = 430 // { int thr_create(ucontext_t *ctx, long *id, \ + SYS_THR_EXIT = 431 // { void thr_exit(long *state); } + SYS_THR_SELF = 432 // { int thr_self(long *id); } + SYS_THR_KILL = 433 // { int thr_kill(long id, int sig); } + SYS_JAIL_ATTACH = 436 // { int jail_attach(int jid); } + SYS_EXTATTR_LIST_FD = 437 // { ssize_t extattr_list_fd(int fd, \ + SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file( \ + SYS_EXTATTR_LIST_LINK = 439 // { ssize_t extattr_list_link( \ + SYS_KSEM_TIMEDWAIT = 441 // { int ksem_timedwait(semid_t id, \ + SYS_THR_SUSPEND = 442 // { int thr_suspend( \ + SYS_THR_WAKE = 443 // { int thr_wake(long id); } + SYS_KLDUNLOADF = 444 // { int kldunloadf(int fileid, int flags); } + SYS_AUDIT = 445 // { int audit(const void *record, \ + SYS_AUDITON = 446 // { int auditon(int cmd, void *data, \ + SYS_GETAUID = 447 // { int getauid(uid_t *auid); } + SYS_SETAUID = 448 // { int setauid(uid_t *auid); } + SYS_GETAUDIT = 449 // { int getaudit(struct auditinfo *auditinfo); } + SYS_SETAUDIT = 450 // { int setaudit(struct auditinfo *auditinfo); } + SYS_GETAUDIT_ADDR = 451 // { int getaudit_addr( \ + SYS_SETAUDIT_ADDR = 452 // { int setaudit_addr( \ + SYS_AUDITCTL = 453 // { int auditctl(char *path); } + SYS__UMTX_OP = 454 // { int _umtx_op(void *obj, int op, \ + SYS_THR_NEW = 455 // { int thr_new(struct thr_param *param, \ + SYS_SIGQUEUE = 456 // { int sigqueue(pid_t pid, int signum, void *value); } + SYS_KMQ_OPEN = 457 // { int kmq_open(const char *path, int flags, \ + SYS_KMQ_SETATTR = 458 // { int kmq_setattr(int mqd, \ + SYS_KMQ_TIMEDRECEIVE = 459 // { int kmq_timedreceive(int mqd, \ + SYS_KMQ_TIMEDSEND = 460 // { int kmq_timedsend(int mqd, \ + SYS_KMQ_NOTIFY = 461 // { int kmq_notify(int mqd, \ + SYS_KMQ_UNLINK = 462 // { int kmq_unlink(const char *path); } + SYS_ABORT2 = 463 // { int abort2(const char *why, int nargs, void **args); } + SYS_THR_SET_NAME = 464 // { int thr_set_name(long id, const char *name); } + SYS_AIO_FSYNC = 465 // { int aio_fsync(int op, struct aiocb *aiocbp); } + SYS_RTPRIO_THREAD = 466 // { int rtprio_thread(int function, \ + SYS_SCTP_PEELOFF = 471 // { int sctp_peeloff(int sd, uint32_t name); } + SYS_SCTP_GENERIC_SENDMSG = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, \ + SYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, \ + SYS_SCTP_GENERIC_RECVMSG = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, \ + SYS_PREAD = 475 // { ssize_t pread(int fd, void *buf, \ + SYS_PWRITE = 476 // { ssize_t pwrite(int fd, const void *buf, \ + SYS_MMAP = 477 // { caddr_t mmap(caddr_t addr, size_t len, \ + SYS_LSEEK = 478 // { off_t lseek(int fd, off_t offset, \ + SYS_TRUNCATE = 479 // { int truncate(char *path, off_t length); } + SYS_FTRUNCATE = 480 // { int ftruncate(int fd, off_t length); } + SYS_THR_KILL2 = 481 // { int thr_kill2(pid_t pid, long id, int sig); } + SYS_SHM_OPEN = 482 // { int shm_open(const char *path, int flags, \ + SYS_SHM_UNLINK = 483 // { int shm_unlink(const char *path); } + SYS_CPUSET = 484 // { int cpuset(cpusetid_t *setid); } + SYS_CPUSET_SETID = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, \ + SYS_CPUSET_GETID = 486 // { int cpuset_getid(cpulevel_t level, \ + SYS_CPUSET_GETAFFINITY = 487 // { int cpuset_getaffinity(cpulevel_t level, \ + SYS_CPUSET_SETAFFINITY = 488 // { int cpuset_setaffinity(cpulevel_t level, \ + SYS_FACCESSAT = 489 // { int faccessat(int fd, char *path, int amode, \ + SYS_FCHMODAT = 490 // { int fchmodat(int fd, char *path, mode_t mode, \ + SYS_FCHOWNAT = 491 // { int fchownat(int fd, char *path, uid_t uid, \ + SYS_FEXECVE = 492 // { int fexecve(int fd, char **argv, \ + SYS_FSTATAT = 493 // { int fstatat(int fd, char *path, \ + SYS_FUTIMESAT = 494 // { int futimesat(int fd, char *path, \ + SYS_LINKAT = 495 // { int linkat(int fd1, char *path1, int fd2, \ + SYS_MKDIRAT = 496 // { int mkdirat(int fd, char *path, mode_t mode); } + SYS_MKFIFOAT = 497 // { int mkfifoat(int fd, char *path, mode_t mode); } + SYS_MKNODAT = 498 // { int mknodat(int fd, char *path, mode_t mode, \ + SYS_OPENAT = 499 // { int openat(int fd, char *path, int flag, \ + SYS_READLINKAT = 500 // { int readlinkat(int fd, char *path, char *buf, \ + SYS_RENAMEAT = 501 // { int renameat(int oldfd, char *old, int newfd, \ + SYS_SYMLINKAT = 502 // { int symlinkat(char *path1, int fd, \ + SYS_UNLINKAT = 503 // { int unlinkat(int fd, char *path, int flag); } + SYS_POSIX_OPENPT = 504 // { int posix_openpt(int flags); } + SYS_GSSD_SYSCALL = 505 // { int gssd_syscall(char *path); } + SYS_JAIL_GET = 506 // { int jail_get(struct iovec *iovp, \ + SYS_JAIL_SET = 507 // { int jail_set(struct iovec *iovp, \ + SYS_JAIL_REMOVE = 508 // { int jail_remove(int jid); } + SYS_CLOSEFROM = 509 // { int closefrom(int lowfd); } + SYS___SEMCTL = 510 // { int __semctl(int semid, int semnum, \ + SYS_MSGCTL = 511 // { int msgctl(int msqid, int cmd, \ + SYS_SHMCTL = 512 // { int shmctl(int shmid, int cmd, \ + SYS_LPATHCONF = 513 // { int lpathconf(char *path, int name); } + SYS___CAP_RIGHTS_GET = 515 // { int __cap_rights_get(int version, \ + SYS_CAP_ENTER = 516 // { int cap_enter(void); } + SYS_CAP_GETMODE = 517 // { int cap_getmode(u_int *modep); } + SYS_PDFORK = 518 // { int pdfork(int *fdp, int flags); } + SYS_PDKILL = 519 // { int pdkill(int fd, int signum); } + SYS_PDGETPID = 520 // { int pdgetpid(int fd, pid_t *pidp); } + SYS_PSELECT = 522 // { int pselect(int nd, fd_set *in, \ + SYS_GETLOGINCLASS = 523 // { int getloginclass(char *namebuf, \ + SYS_SETLOGINCLASS = 524 // { int setloginclass(const char *namebuf); } + SYS_RCTL_GET_RACCT = 525 // { int rctl_get_racct(const void *inbufp, \ + SYS_RCTL_GET_RULES = 526 // { int rctl_get_rules(const void *inbufp, \ + SYS_RCTL_GET_LIMITS = 527 // { int rctl_get_limits(const void *inbufp, \ + SYS_RCTL_ADD_RULE = 528 // { int rctl_add_rule(const void *inbufp, \ + SYS_RCTL_REMOVE_RULE = 529 // { int rctl_remove_rule(const void *inbufp, \ + SYS_POSIX_FALLOCATE = 530 // { int posix_fallocate(int fd, \ + SYS_POSIX_FADVISE = 531 // { int posix_fadvise(int fd, off_t offset, \ + SYS_WAIT6 = 532 // { int wait6(idtype_t idtype, id_t id, \ + SYS_CAP_RIGHTS_LIMIT = 533 // { int cap_rights_limit(int fd, \ + SYS_CAP_IOCTLS_LIMIT = 534 // { int cap_ioctls_limit(int fd, \ + SYS_CAP_IOCTLS_GET = 535 // { ssize_t cap_ioctls_get(int fd, \ + SYS_CAP_FCNTLS_LIMIT = 536 // { int cap_fcntls_limit(int fd, \ + SYS_CAP_FCNTLS_GET = 537 // { int cap_fcntls_get(int fd, \ + SYS_BINDAT = 538 // { int bindat(int fd, int s, caddr_t name, \ + SYS_CONNECTAT = 539 // { int connectat(int fd, int s, caddr_t name, \ + SYS_CHFLAGSAT = 540 // { int chflagsat(int fd, const char *path, \ + SYS_ACCEPT4 = 541 // { int accept4(int s, \ + SYS_PIPE2 = 542 // { int pipe2(int *fildes, int flags); } + SYS_AIO_MLOCK = 543 // { int aio_mlock(struct aiocb *aiocbp); } + SYS_PROCCTL = 544 // { int procctl(idtype_t idtype, id_t id, \ + SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, \ + SYS_FUTIMENS = 546 // { int futimens(int fd, \ + SYS_UTIMENSAT = 547 // { int utimensat(int fd, \ + SYS_NUMA_GETAFFINITY = 548 // { int numa_getaffinity(cpuwhich_t which, \ + SYS_NUMA_SETAFFINITY = 549 // { int numa_setaffinity(cpuwhich_t which, \ + SYS_FDATASYNC = 550 // { int fdatasync(int fd); } +) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go index 8f33ece7c..8d17873de 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go @@ -1,4 +1,4 @@ -// linux/mksysnum.pl -Wall -Werror -static -I/tmp/include -m32 /tmp/include/asm/unistd.h +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include -m32 /tmp/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. // +build 386,linux diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go index 70c1a2c12..b3d8ad79d 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go @@ -1,4 +1,4 @@ -// linux/mksysnum.pl -Wall -Werror -static -I/tmp/include -m64 /tmp/include/asm/unistd.h +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include -m64 /tmp/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. // +build amd64,linux diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go index 6e281d6b3..e092822fb 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go @@ -1,4 +1,4 @@ -// linux/mksysnum.pl -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. // +build arm,linux diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go index f9157e192..320696789 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go @@ -1,4 +1,4 @@ -// linux/mksysnum.pl -Wall -Werror -static -I/tmp/include -fsigned-char /tmp/include/asm/unistd.h +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include -fsigned-char /tmp/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. // +build arm64,linux diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go index 16714491a..6893a5bd0 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go @@ -1,4 +1,4 @@ -// linux/mksysnum.pl -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. // +build mips,linux diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go index 1270a1c90..40164cacd 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go @@ -1,4 +1,4 @@ -// linux/mksysnum.pl -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. // +build mips64,linux diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go index 93980be13..8a909738b 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go @@ -1,4 +1,4 @@ -// linux/mksysnum.pl -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. // +build mips64le,linux diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go index 0fc772619..8d7818422 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go @@ -1,4 +1,4 @@ -// linux/mksysnum.pl -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. // +build mipsle,linux diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go index a5c5f3def..ec5bde3d5 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go @@ -1,4 +1,4 @@ -// linux/mksysnum.pl -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. // +build ppc64,linux diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go index 5470eadbf..bdbabdbcd 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go @@ -1,4 +1,4 @@ -// linux/mksysnum.pl -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. // +build ppc64le,linux diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go index a5d991915..473c74613 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go @@ -1,4 +1,4 @@ -// linux/mksysnum.pl -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. // +build riscv64,linux diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go index de0245a92..6eb7c257f 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go @@ -1,4 +1,4 @@ -// linux/mksysnum.pl -Wall -Werror -static -I/tmp/include -fsigned-char /tmp/include/asm/unistd.h +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include -fsigned-char /tmp/include/asm/unistd.h // Code generated by the command above; see README.md. DO NOT EDIT. // +build s390x,linux diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go index 2d0993672..93480fcb1 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go @@ -1,5 +1,5 @@ -// mksysnum_linux.pl -Ilinux/usr/include -m64 -D__arch64__ linux/usr/include/asm/unistd.h -// Code generated by the command above; DO NOT EDIT. +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h +// Code generated by the command above; see README.md. DO NOT EDIT. // +build sparc64,linux @@ -345,4 +345,6 @@ const ( SYS_COPY_FILE_RANGE = 357 SYS_PREADV2 = 358 SYS_PWRITEV2 = 359 + SYS_STATX = 360 + SYS_IO_PGETEVENTS = 361 ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go index f0daa05a9..e66a8c9d3 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go @@ -1,5 +1,5 @@ -// mksysnum_netbsd.pl -// Code generated by the command above; DO NOT EDIT. +// go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master +// Code generated by the command above; see README.md. DO NOT EDIT. // +build 386,netbsd diff --git a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go index ddb25b94f..42c788f24 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go @@ -1,5 +1,5 @@ -// mksysnum_netbsd.pl -// Code generated by the command above; DO NOT EDIT. +// go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master +// Code generated by the command above; see README.md. DO NOT EDIT. // +build amd64,netbsd diff --git a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go index 315bd63f8..0a0757179 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go @@ -1,5 +1,5 @@ -// mksysnum_netbsd.pl -// Code generated by the command above; DO NOT EDIT. +// go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master +// Code generated by the command above; see README.md. DO NOT EDIT. // +build arm,netbsd diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go index f93f391d2..b0207d1c9 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go @@ -1,4 +1,4 @@ -// mksysnum_openbsd.pl +// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master // Code generated by the command above; see README.md. DO NOT EDIT. // +build 386,openbsd @@ -9,35 +9,35 @@ const ( SYS_EXIT = 1 // { void sys_exit(int rval); } SYS_FORK = 2 // { int sys_fork(void); } SYS_READ = 3 // { ssize_t sys_read(int fd, void *buf, size_t nbyte); } - SYS_WRITE = 4 // { ssize_t sys_write(int fd, const void *buf, \ - SYS_OPEN = 5 // { int sys_open(const char *path, \ + SYS_WRITE = 4 // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); } + SYS_OPEN = 5 // { int sys_open(const char *path, int flags, ... mode_t mode); } SYS_CLOSE = 6 // { int sys_close(int fd); } SYS_GETENTROPY = 7 // { int sys_getentropy(void *buf, size_t nbyte); } - SYS___TFORK = 8 // { int sys___tfork(const struct __tfork *param, \ + SYS___TFORK = 8 // { int sys___tfork(const struct __tfork *param, size_t psize); } SYS_LINK = 9 // { int sys_link(const char *path, const char *link); } SYS_UNLINK = 10 // { int sys_unlink(const char *path); } - SYS_WAIT4 = 11 // { pid_t sys_wait4(pid_t pid, int *status, \ + SYS_WAIT4 = 11 // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); } SYS_CHDIR = 12 // { int sys_chdir(const char *path); } SYS_FCHDIR = 13 // { int sys_fchdir(int fd); } - SYS_MKNOD = 14 // { int sys_mknod(const char *path, mode_t mode, \ + SYS_MKNOD = 14 // { int sys_mknod(const char *path, mode_t mode, dev_t dev); } SYS_CHMOD = 15 // { int sys_chmod(const char *path, mode_t mode); } - SYS_CHOWN = 16 // { int sys_chown(const char *path, uid_t uid, \ + SYS_CHOWN = 16 // { int sys_chown(const char *path, uid_t uid, gid_t gid); } SYS_OBREAK = 17 // { int sys_obreak(char *nsize); } break SYS_GETDTABLECOUNT = 18 // { int sys_getdtablecount(void); } - SYS_GETRUSAGE = 19 // { int sys_getrusage(int who, \ + SYS_GETRUSAGE = 19 // { int sys_getrusage(int who, struct rusage *rusage); } SYS_GETPID = 20 // { pid_t sys_getpid(void); } - SYS_MOUNT = 21 // { int sys_mount(const char *type, const char *path, \ + SYS_MOUNT = 21 // { int sys_mount(const char *type, const char *path, int flags, void *data); } SYS_UNMOUNT = 22 // { int sys_unmount(const char *path, int flags); } SYS_SETUID = 23 // { int sys_setuid(uid_t uid); } SYS_GETUID = 24 // { uid_t sys_getuid(void); } SYS_GETEUID = 25 // { uid_t sys_geteuid(void); } - SYS_PTRACE = 26 // { int sys_ptrace(int req, pid_t pid, caddr_t addr, \ - SYS_RECVMSG = 27 // { ssize_t sys_recvmsg(int s, struct msghdr *msg, \ - SYS_SENDMSG = 28 // { ssize_t sys_sendmsg(int s, \ - SYS_RECVFROM = 29 // { ssize_t sys_recvfrom(int s, void *buf, size_t len, \ - SYS_ACCEPT = 30 // { int sys_accept(int s, struct sockaddr *name, \ - SYS_GETPEERNAME = 31 // { int sys_getpeername(int fdes, struct sockaddr *asa, \ - SYS_GETSOCKNAME = 32 // { int sys_getsockname(int fdes, struct sockaddr *asa, \ + SYS_PTRACE = 26 // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); } + SYS_RECVMSG = 27 // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); } + SYS_SENDMSG = 28 // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); } + SYS_RECVFROM = 29 // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); } + SYS_ACCEPT = 30 // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); } + SYS_GETPEERNAME = 31 // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_GETSOCKNAME = 32 // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); } SYS_ACCESS = 33 // { int sys_access(const char *path, int amode); } SYS_CHFLAGS = 34 // { int sys_chflags(const char *path, u_int flags); } SYS_FCHFLAGS = 35 // { int sys_fchflags(int fd, u_int flags); } @@ -46,81 +46,81 @@ const ( SYS_GETPPID = 39 // { pid_t sys_getppid(void); } SYS_LSTAT = 40 // { int sys_lstat(const char *path, struct stat *ub); } SYS_DUP = 41 // { int sys_dup(int fd); } - SYS_FSTATAT = 42 // { int sys_fstatat(int fd, const char *path, \ + SYS_FSTATAT = 42 // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); } SYS_GETEGID = 43 // { gid_t sys_getegid(void); } - SYS_PROFIL = 44 // { int sys_profil(caddr_t samples, size_t size, \ - SYS_KTRACE = 45 // { int sys_ktrace(const char *fname, int ops, \ - SYS_SIGACTION = 46 // { int sys_sigaction(int signum, \ + SYS_PROFIL = 44 // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); } + SYS_KTRACE = 45 // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); } + SYS_SIGACTION = 46 // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); } SYS_GETGID = 47 // { gid_t sys_getgid(void); } SYS_SIGPROCMASK = 48 // { int sys_sigprocmask(int how, sigset_t mask); } SYS_SETLOGIN = 50 // { int sys_setlogin(const char *namebuf); } SYS_ACCT = 51 // { int sys_acct(const char *path); } SYS_SIGPENDING = 52 // { int sys_sigpending(void); } SYS_FSTAT = 53 // { int sys_fstat(int fd, struct stat *sb); } - SYS_IOCTL = 54 // { int sys_ioctl(int fd, \ + SYS_IOCTL = 54 // { int sys_ioctl(int fd, u_long com, ... void *data); } SYS_REBOOT = 55 // { int sys_reboot(int opt); } SYS_REVOKE = 56 // { int sys_revoke(const char *path); } - SYS_SYMLINK = 57 // { int sys_symlink(const char *path, \ - SYS_READLINK = 58 // { ssize_t sys_readlink(const char *path, \ - SYS_EXECVE = 59 // { int sys_execve(const char *path, \ + SYS_SYMLINK = 57 // { int sys_symlink(const char *path, const char *link); } + SYS_READLINK = 58 // { ssize_t sys_readlink(const char *path, char *buf, size_t count); } + SYS_EXECVE = 59 // { int sys_execve(const char *path, char * const *argp, char * const *envp); } SYS_UMASK = 60 // { mode_t sys_umask(mode_t newmask); } SYS_CHROOT = 61 // { int sys_chroot(const char *path); } - SYS_GETFSSTAT = 62 // { int sys_getfsstat(struct statfs *buf, size_t bufsize, \ - SYS_STATFS = 63 // { int sys_statfs(const char *path, \ + SYS_GETFSSTAT = 62 // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); } + SYS_STATFS = 63 // { int sys_statfs(const char *path, struct statfs *buf); } SYS_FSTATFS = 64 // { int sys_fstatfs(int fd, struct statfs *buf); } - SYS_FHSTATFS = 65 // { int sys_fhstatfs(const fhandle_t *fhp, \ + SYS_FHSTATFS = 65 // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); } SYS_VFORK = 66 // { int sys_vfork(void); } - SYS_GETTIMEOFDAY = 67 // { int sys_gettimeofday(struct timeval *tp, \ - SYS_SETTIMEOFDAY = 68 // { int sys_settimeofday(const struct timeval *tv, \ - SYS_SETITIMER = 69 // { int sys_setitimer(int which, \ - SYS_GETITIMER = 70 // { int sys_getitimer(int which, \ - SYS_SELECT = 71 // { int sys_select(int nd, fd_set *in, fd_set *ou, \ - SYS_KEVENT = 72 // { int sys_kevent(int fd, \ + SYS_GETTIMEOFDAY = 67 // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); } + SYS_SETTIMEOFDAY = 68 // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); } + SYS_SETITIMER = 69 // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } + SYS_GETITIMER = 70 // { int sys_getitimer(int which, struct itimerval *itv); } + SYS_SELECT = 71 // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } + SYS_KEVENT = 72 // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } SYS_MUNMAP = 73 // { int sys_munmap(void *addr, size_t len); } - SYS_MPROTECT = 74 // { int sys_mprotect(void *addr, size_t len, \ - SYS_MADVISE = 75 // { int sys_madvise(void *addr, size_t len, \ - SYS_UTIMES = 76 // { int sys_utimes(const char *path, \ - SYS_FUTIMES = 77 // { int sys_futimes(int fd, \ - SYS_MINCORE = 78 // { int sys_mincore(void *addr, size_t len, \ - SYS_GETGROUPS = 79 // { int sys_getgroups(int gidsetsize, \ - SYS_SETGROUPS = 80 // { int sys_setgroups(int gidsetsize, \ + SYS_MPROTECT = 74 // { int sys_mprotect(void *addr, size_t len, int prot); } + SYS_MADVISE = 75 // { int sys_madvise(void *addr, size_t len, int behav); } + SYS_UTIMES = 76 // { int sys_utimes(const char *path, const struct timeval *tptr); } + SYS_FUTIMES = 77 // { int sys_futimes(int fd, const struct timeval *tptr); } + SYS_MINCORE = 78 // { int sys_mincore(void *addr, size_t len, char *vec); } + SYS_GETGROUPS = 79 // { int sys_getgroups(int gidsetsize, gid_t *gidset); } + SYS_SETGROUPS = 80 // { int sys_setgroups(int gidsetsize, const gid_t *gidset); } SYS_GETPGRP = 81 // { int sys_getpgrp(void); } SYS_SETPGID = 82 // { int sys_setpgid(pid_t pid, pid_t pgid); } - SYS_FUTEX = 83 // { int sys_futex(uint32_t *f, int op, int val, \ - SYS_UTIMENSAT = 84 // { int sys_utimensat(int fd, const char *path, \ - SYS_FUTIMENS = 85 // { int sys_futimens(int fd, \ - SYS_KBIND = 86 // { int sys_kbind(const struct __kbind *param, \ - SYS_CLOCK_GETTIME = 87 // { int sys_clock_gettime(clockid_t clock_id, \ - SYS_CLOCK_SETTIME = 88 // { int sys_clock_settime(clockid_t clock_id, \ - SYS_CLOCK_GETRES = 89 // { int sys_clock_getres(clockid_t clock_id, \ + SYS_FUTEX = 83 // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); } + SYS_UTIMENSAT = 84 // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); } + SYS_FUTIMENS = 85 // { int sys_futimens(int fd, const struct timespec *times); } + SYS_KBIND = 86 // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); } + SYS_CLOCK_GETTIME = 87 // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); } + SYS_CLOCK_SETTIME = 88 // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); } + SYS_CLOCK_GETRES = 89 // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); } SYS_DUP2 = 90 // { int sys_dup2(int from, int to); } - SYS_NANOSLEEP = 91 // { int sys_nanosleep(const struct timespec *rqtp, \ + SYS_NANOSLEEP = 91 // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } SYS_FCNTL = 92 // { int sys_fcntl(int fd, int cmd, ... void *arg); } - SYS_ACCEPT4 = 93 // { int sys_accept4(int s, struct sockaddr *name, \ - SYS___THRSLEEP = 94 // { int sys___thrsleep(const volatile void *ident, \ + SYS_ACCEPT4 = 93 // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); } + SYS___THRSLEEP = 94 // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); } SYS_FSYNC = 95 // { int sys_fsync(int fd); } SYS_SETPRIORITY = 96 // { int sys_setpriority(int which, id_t who, int prio); } SYS_SOCKET = 97 // { int sys_socket(int domain, int type, int protocol); } - SYS_CONNECT = 98 // { int sys_connect(int s, const struct sockaddr *name, \ + SYS_CONNECT = 98 // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); } SYS_GETDENTS = 99 // { int sys_getdents(int fd, void *buf, size_t buflen); } SYS_GETPRIORITY = 100 // { int sys_getpriority(int which, id_t who); } SYS_PIPE2 = 101 // { int sys_pipe2(int *fdp, int flags); } SYS_DUP3 = 102 // { int sys_dup3(int from, int to, int flags); } SYS_SIGRETURN = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); } - SYS_BIND = 104 // { int sys_bind(int s, const struct sockaddr *name, \ - SYS_SETSOCKOPT = 105 // { int sys_setsockopt(int s, int level, int name, \ + SYS_BIND = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_SETSOCKOPT = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); } SYS_LISTEN = 106 // { int sys_listen(int s, int backlog); } - SYS_CHFLAGSAT = 107 // { int sys_chflagsat(int fd, const char *path, \ - SYS_PLEDGE = 108 // { int sys_pledge(const char *promises, \ - SYS_PPOLL = 109 // { int sys_ppoll(struct pollfd *fds, \ - SYS_PSELECT = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, \ + SYS_CHFLAGSAT = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); } + SYS_PLEDGE = 108 // { int sys_pledge(const char *promises, const char *execpromises); } + SYS_PPOLL = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } + SYS_PSELECT = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } SYS_SIGSUSPEND = 111 // { int sys_sigsuspend(int mask); } - SYS_SENDSYSLOG = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, \ - SYS_UNVEIL = 114 // { int sys_unveil(const char *path, \ - SYS_GETSOCKOPT = 118 // { int sys_getsockopt(int s, int level, int name, \ + SYS_SENDSYSLOG = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); } + SYS_UNVEIL = 114 // { int sys_unveil(const char *path, const char *permissions); } + SYS_GETSOCKOPT = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } SYS_THRKILL = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); } - SYS_READV = 120 // { ssize_t sys_readv(int fd, \ - SYS_WRITEV = 121 // { ssize_t sys_writev(int fd, \ + SYS_READV = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); } + SYS_WRITEV = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); } SYS_KILL = 122 // { int sys_kill(int pid, int signum); } SYS_FCHOWN = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); } SYS_FCHMOD = 124 // { int sys_fchmod(int fd, mode_t mode); } @@ -129,90 +129,90 @@ const ( SYS_RENAME = 128 // { int sys_rename(const char *from, const char *to); } SYS_FLOCK = 131 // { int sys_flock(int fd, int how); } SYS_MKFIFO = 132 // { int sys_mkfifo(const char *path, mode_t mode); } - SYS_SENDTO = 133 // { ssize_t sys_sendto(int s, const void *buf, \ + SYS_SENDTO = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); } SYS_SHUTDOWN = 134 // { int sys_shutdown(int s, int how); } - SYS_SOCKETPAIR = 135 // { int sys_socketpair(int domain, int type, \ + SYS_SOCKETPAIR = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); } SYS_MKDIR = 136 // { int sys_mkdir(const char *path, mode_t mode); } SYS_RMDIR = 137 // { int sys_rmdir(const char *path); } - SYS_ADJTIME = 140 // { int sys_adjtime(const struct timeval *delta, \ + SYS_ADJTIME = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); } SYS_GETLOGIN_R = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); } SYS_SETSID = 147 // { int sys_setsid(void); } - SYS_QUOTACTL = 148 // { int sys_quotactl(const char *path, int cmd, \ + SYS_QUOTACTL = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); } SYS_NFSSVC = 155 // { int sys_nfssvc(int flag, void *argp); } SYS_GETFH = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); } SYS_SYSARCH = 165 // { int sys_sysarch(int op, void *parms); } - SYS_PREAD = 173 // { ssize_t sys_pread(int fd, void *buf, \ - SYS_PWRITE = 174 // { ssize_t sys_pwrite(int fd, const void *buf, \ + SYS_PREAD = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); } + SYS_PWRITE = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); } SYS_SETGID = 181 // { int sys_setgid(gid_t gid); } SYS_SETEGID = 182 // { int sys_setegid(gid_t egid); } SYS_SETEUID = 183 // { int sys_seteuid(uid_t euid); } SYS_PATHCONF = 191 // { long sys_pathconf(const char *path, int name); } SYS_FPATHCONF = 192 // { long sys_fpathconf(int fd, int name); } SYS_SWAPCTL = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); } - SYS_GETRLIMIT = 194 // { int sys_getrlimit(int which, \ - SYS_SETRLIMIT = 195 // { int sys_setrlimit(int which, \ - SYS_MMAP = 197 // { void *sys_mmap(void *addr, size_t len, int prot, \ - SYS_LSEEK = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, \ - SYS_TRUNCATE = 200 // { int sys_truncate(const char *path, int pad, \ + SYS_GETRLIMIT = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); } + SYS_SETRLIMIT = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); } + SYS_MMAP = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } + SYS_LSEEK = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); } + SYS_TRUNCATE = 200 // { int sys_truncate(const char *path, int pad, off_t length); } SYS_FTRUNCATE = 201 // { int sys_ftruncate(int fd, int pad, off_t length); } - SYS_SYSCTL = 202 // { int sys_sysctl(const int *name, u_int namelen, \ + SYS_SYSCTL = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } SYS_MLOCK = 203 // { int sys_mlock(const void *addr, size_t len); } SYS_MUNLOCK = 204 // { int sys_munlock(const void *addr, size_t len); } SYS_GETPGID = 207 // { pid_t sys_getpgid(pid_t pid); } - SYS_UTRACE = 209 // { int sys_utrace(const char *label, const void *addr, \ + SYS_UTRACE = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); } SYS_SEMGET = 221 // { int sys_semget(key_t key, int nsems, int semflg); } SYS_MSGGET = 225 // { int sys_msgget(key_t key, int msgflg); } - SYS_MSGSND = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, \ - SYS_MSGRCV = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, \ - SYS_SHMAT = 228 // { void *sys_shmat(int shmid, const void *shmaddr, \ + SYS_MSGSND = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } + SYS_MSGRCV = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } + SYS_SHMAT = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); } SYS_SHMDT = 230 // { int sys_shmdt(const void *shmaddr); } - SYS_MINHERIT = 250 // { int sys_minherit(void *addr, size_t len, \ - SYS_POLL = 252 // { int sys_poll(struct pollfd *fds, \ + SYS_MINHERIT = 250 // { int sys_minherit(void *addr, size_t len, int inherit); } + SYS_POLL = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); } SYS_ISSETUGID = 253 // { int sys_issetugid(void); } SYS_LCHOWN = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); } SYS_GETSID = 255 // { pid_t sys_getsid(pid_t pid); } SYS_MSYNC = 256 // { int sys_msync(void *addr, size_t len, int flags); } SYS_PIPE = 263 // { int sys_pipe(int *fdp); } SYS_FHOPEN = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); } - SYS_PREADV = 267 // { ssize_t sys_preadv(int fd, \ - SYS_PWRITEV = 268 // { ssize_t sys_pwritev(int fd, \ + SYS_PREADV = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } + SYS_PWRITEV = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } SYS_KQUEUE = 269 // { int sys_kqueue(void); } SYS_MLOCKALL = 271 // { int sys_mlockall(int flags); } SYS_MUNLOCKALL = 272 // { int sys_munlockall(void); } - SYS_GETRESUID = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, \ - SYS_SETRESUID = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, \ - SYS_GETRESGID = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, \ - SYS_SETRESGID = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, \ - SYS_MQUERY = 286 // { void *sys_mquery(void *addr, size_t len, int prot, \ + SYS_GETRESUID = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } + SYS_SETRESUID = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); } + SYS_GETRESGID = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } + SYS_SETRESGID = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); } + SYS_MQUERY = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } SYS_CLOSEFROM = 287 // { int sys_closefrom(int fd); } - SYS_SIGALTSTACK = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, \ + SYS_SIGALTSTACK = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); } SYS_SHMGET = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); } - SYS_SEMOP = 290 // { int sys_semop(int semid, struct sembuf *sops, \ - SYS_FHSTAT = 294 // { int sys_fhstat(const fhandle_t *fhp, \ - SYS___SEMCTL = 295 // { int sys___semctl(int semid, int semnum, int cmd, \ - SYS_SHMCTL = 296 // { int sys_shmctl(int shmid, int cmd, \ - SYS_MSGCTL = 297 // { int sys_msgctl(int msqid, int cmd, \ + SYS_SEMOP = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); } + SYS_FHSTAT = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); } + SYS___SEMCTL = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); } + SYS_SHMCTL = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); } + SYS_MSGCTL = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); } SYS_SCHED_YIELD = 298 // { int sys_sched_yield(void); } SYS_GETTHRID = 299 // { pid_t sys_getthrid(void); } - SYS___THRWAKEUP = 301 // { int sys___thrwakeup(const volatile void *ident, \ + SYS___THRWAKEUP = 301 // { int sys___thrwakeup(const volatile void *ident, int n); } SYS___THREXIT = 302 // { void sys___threxit(pid_t *notdead); } - SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, \ + SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); } SYS___GETCWD = 304 // { int sys___getcwd(char *buf, size_t len); } - SYS_ADJFREQ = 305 // { int sys_adjfreq(const int64_t *freq, \ + SYS_ADJFREQ = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); } SYS_SETRTABLE = 310 // { int sys_setrtable(int rtableid); } SYS_GETRTABLE = 311 // { int sys_getrtable(void); } - SYS_FACCESSAT = 313 // { int sys_faccessat(int fd, const char *path, \ - SYS_FCHMODAT = 314 // { int sys_fchmodat(int fd, const char *path, \ - SYS_FCHOWNAT = 315 // { int sys_fchownat(int fd, const char *path, \ - SYS_LINKAT = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, \ - SYS_MKDIRAT = 318 // { int sys_mkdirat(int fd, const char *path, \ - SYS_MKFIFOAT = 319 // { int sys_mkfifoat(int fd, const char *path, \ - SYS_MKNODAT = 320 // { int sys_mknodat(int fd, const char *path, \ - SYS_OPENAT = 321 // { int sys_openat(int fd, const char *path, int flags, \ - SYS_READLINKAT = 322 // { ssize_t sys_readlinkat(int fd, const char *path, \ - SYS_RENAMEAT = 323 // { int sys_renameat(int fromfd, const char *from, \ - SYS_SYMLINKAT = 324 // { int sys_symlinkat(const char *path, int fd, \ - SYS_UNLINKAT = 325 // { int sys_unlinkat(int fd, const char *path, \ + SYS_FACCESSAT = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); } + SYS_FCHMODAT = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); } + SYS_FCHOWNAT = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); } + SYS_LINKAT = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); } + SYS_MKDIRAT = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); } + SYS_MKFIFOAT = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); } + SYS_MKNODAT = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); } + SYS_OPENAT = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); } + SYS_READLINKAT = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); } + SYS_RENAMEAT = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); } + SYS_SYMLINKAT = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); } + SYS_UNLINKAT = 325 // { int sys_unlinkat(int fd, const char *path, int flag); } SYS___SET_TCB = 329 // { void sys___set_tcb(void *tcb); } SYS___GET_TCB = 330 // { void *sys___get_tcb(void); } ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go index bc7fa5795..f0dec6f0b 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go @@ -1,4 +1,4 @@ -// mksysnum_openbsd.pl +// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master // Code generated by the command above; see README.md. DO NOT EDIT. // +build amd64,openbsd @@ -9,35 +9,35 @@ const ( SYS_EXIT = 1 // { void sys_exit(int rval); } SYS_FORK = 2 // { int sys_fork(void); } SYS_READ = 3 // { ssize_t sys_read(int fd, void *buf, size_t nbyte); } - SYS_WRITE = 4 // { ssize_t sys_write(int fd, const void *buf, \ - SYS_OPEN = 5 // { int sys_open(const char *path, \ + SYS_WRITE = 4 // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); } + SYS_OPEN = 5 // { int sys_open(const char *path, int flags, ... mode_t mode); } SYS_CLOSE = 6 // { int sys_close(int fd); } SYS_GETENTROPY = 7 // { int sys_getentropy(void *buf, size_t nbyte); } - SYS___TFORK = 8 // { int sys___tfork(const struct __tfork *param, \ + SYS___TFORK = 8 // { int sys___tfork(const struct __tfork *param, size_t psize); } SYS_LINK = 9 // { int sys_link(const char *path, const char *link); } SYS_UNLINK = 10 // { int sys_unlink(const char *path); } - SYS_WAIT4 = 11 // { pid_t sys_wait4(pid_t pid, int *status, \ + SYS_WAIT4 = 11 // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); } SYS_CHDIR = 12 // { int sys_chdir(const char *path); } SYS_FCHDIR = 13 // { int sys_fchdir(int fd); } - SYS_MKNOD = 14 // { int sys_mknod(const char *path, mode_t mode, \ + SYS_MKNOD = 14 // { int sys_mknod(const char *path, mode_t mode, dev_t dev); } SYS_CHMOD = 15 // { int sys_chmod(const char *path, mode_t mode); } - SYS_CHOWN = 16 // { int sys_chown(const char *path, uid_t uid, \ + SYS_CHOWN = 16 // { int sys_chown(const char *path, uid_t uid, gid_t gid); } SYS_OBREAK = 17 // { int sys_obreak(char *nsize); } break SYS_GETDTABLECOUNT = 18 // { int sys_getdtablecount(void); } - SYS_GETRUSAGE = 19 // { int sys_getrusage(int who, \ + SYS_GETRUSAGE = 19 // { int sys_getrusage(int who, struct rusage *rusage); } SYS_GETPID = 20 // { pid_t sys_getpid(void); } - SYS_MOUNT = 21 // { int sys_mount(const char *type, const char *path, \ + SYS_MOUNT = 21 // { int sys_mount(const char *type, const char *path, int flags, void *data); } SYS_UNMOUNT = 22 // { int sys_unmount(const char *path, int flags); } SYS_SETUID = 23 // { int sys_setuid(uid_t uid); } SYS_GETUID = 24 // { uid_t sys_getuid(void); } SYS_GETEUID = 25 // { uid_t sys_geteuid(void); } - SYS_PTRACE = 26 // { int sys_ptrace(int req, pid_t pid, caddr_t addr, \ - SYS_RECVMSG = 27 // { ssize_t sys_recvmsg(int s, struct msghdr *msg, \ - SYS_SENDMSG = 28 // { ssize_t sys_sendmsg(int s, \ - SYS_RECVFROM = 29 // { ssize_t sys_recvfrom(int s, void *buf, size_t len, \ - SYS_ACCEPT = 30 // { int sys_accept(int s, struct sockaddr *name, \ - SYS_GETPEERNAME = 31 // { int sys_getpeername(int fdes, struct sockaddr *asa, \ - SYS_GETSOCKNAME = 32 // { int sys_getsockname(int fdes, struct sockaddr *asa, \ + SYS_PTRACE = 26 // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); } + SYS_RECVMSG = 27 // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); } + SYS_SENDMSG = 28 // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); } + SYS_RECVFROM = 29 // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); } + SYS_ACCEPT = 30 // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); } + SYS_GETPEERNAME = 31 // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_GETSOCKNAME = 32 // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); } SYS_ACCESS = 33 // { int sys_access(const char *path, int amode); } SYS_CHFLAGS = 34 // { int sys_chflags(const char *path, u_int flags); } SYS_FCHFLAGS = 35 // { int sys_fchflags(int fd, u_int flags); } @@ -46,81 +46,81 @@ const ( SYS_GETPPID = 39 // { pid_t sys_getppid(void); } SYS_LSTAT = 40 // { int sys_lstat(const char *path, struct stat *ub); } SYS_DUP = 41 // { int sys_dup(int fd); } - SYS_FSTATAT = 42 // { int sys_fstatat(int fd, const char *path, \ + SYS_FSTATAT = 42 // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); } SYS_GETEGID = 43 // { gid_t sys_getegid(void); } - SYS_PROFIL = 44 // { int sys_profil(caddr_t samples, size_t size, \ - SYS_KTRACE = 45 // { int sys_ktrace(const char *fname, int ops, \ - SYS_SIGACTION = 46 // { int sys_sigaction(int signum, \ + SYS_PROFIL = 44 // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); } + SYS_KTRACE = 45 // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); } + SYS_SIGACTION = 46 // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); } SYS_GETGID = 47 // { gid_t sys_getgid(void); } SYS_SIGPROCMASK = 48 // { int sys_sigprocmask(int how, sigset_t mask); } SYS_SETLOGIN = 50 // { int sys_setlogin(const char *namebuf); } SYS_ACCT = 51 // { int sys_acct(const char *path); } SYS_SIGPENDING = 52 // { int sys_sigpending(void); } SYS_FSTAT = 53 // { int sys_fstat(int fd, struct stat *sb); } - SYS_IOCTL = 54 // { int sys_ioctl(int fd, \ + SYS_IOCTL = 54 // { int sys_ioctl(int fd, u_long com, ... void *data); } SYS_REBOOT = 55 // { int sys_reboot(int opt); } SYS_REVOKE = 56 // { int sys_revoke(const char *path); } - SYS_SYMLINK = 57 // { int sys_symlink(const char *path, \ - SYS_READLINK = 58 // { ssize_t sys_readlink(const char *path, \ - SYS_EXECVE = 59 // { int sys_execve(const char *path, \ + SYS_SYMLINK = 57 // { int sys_symlink(const char *path, const char *link); } + SYS_READLINK = 58 // { ssize_t sys_readlink(const char *path, char *buf, size_t count); } + SYS_EXECVE = 59 // { int sys_execve(const char *path, char * const *argp, char * const *envp); } SYS_UMASK = 60 // { mode_t sys_umask(mode_t newmask); } SYS_CHROOT = 61 // { int sys_chroot(const char *path); } - SYS_GETFSSTAT = 62 // { int sys_getfsstat(struct statfs *buf, size_t bufsize, \ - SYS_STATFS = 63 // { int sys_statfs(const char *path, \ + SYS_GETFSSTAT = 62 // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); } + SYS_STATFS = 63 // { int sys_statfs(const char *path, struct statfs *buf); } SYS_FSTATFS = 64 // { int sys_fstatfs(int fd, struct statfs *buf); } - SYS_FHSTATFS = 65 // { int sys_fhstatfs(const fhandle_t *fhp, \ + SYS_FHSTATFS = 65 // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); } SYS_VFORK = 66 // { int sys_vfork(void); } - SYS_GETTIMEOFDAY = 67 // { int sys_gettimeofday(struct timeval *tp, \ - SYS_SETTIMEOFDAY = 68 // { int sys_settimeofday(const struct timeval *tv, \ - SYS_SETITIMER = 69 // { int sys_setitimer(int which, \ - SYS_GETITIMER = 70 // { int sys_getitimer(int which, \ - SYS_SELECT = 71 // { int sys_select(int nd, fd_set *in, fd_set *ou, \ - SYS_KEVENT = 72 // { int sys_kevent(int fd, \ + SYS_GETTIMEOFDAY = 67 // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); } + SYS_SETTIMEOFDAY = 68 // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); } + SYS_SETITIMER = 69 // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } + SYS_GETITIMER = 70 // { int sys_getitimer(int which, struct itimerval *itv); } + SYS_SELECT = 71 // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } + SYS_KEVENT = 72 // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } SYS_MUNMAP = 73 // { int sys_munmap(void *addr, size_t len); } - SYS_MPROTECT = 74 // { int sys_mprotect(void *addr, size_t len, \ - SYS_MADVISE = 75 // { int sys_madvise(void *addr, size_t len, \ - SYS_UTIMES = 76 // { int sys_utimes(const char *path, \ - SYS_FUTIMES = 77 // { int sys_futimes(int fd, \ - SYS_MINCORE = 78 // { int sys_mincore(void *addr, size_t len, \ - SYS_GETGROUPS = 79 // { int sys_getgroups(int gidsetsize, \ - SYS_SETGROUPS = 80 // { int sys_setgroups(int gidsetsize, \ + SYS_MPROTECT = 74 // { int sys_mprotect(void *addr, size_t len, int prot); } + SYS_MADVISE = 75 // { int sys_madvise(void *addr, size_t len, int behav); } + SYS_UTIMES = 76 // { int sys_utimes(const char *path, const struct timeval *tptr); } + SYS_FUTIMES = 77 // { int sys_futimes(int fd, const struct timeval *tptr); } + SYS_MINCORE = 78 // { int sys_mincore(void *addr, size_t len, char *vec); } + SYS_GETGROUPS = 79 // { int sys_getgroups(int gidsetsize, gid_t *gidset); } + SYS_SETGROUPS = 80 // { int sys_setgroups(int gidsetsize, const gid_t *gidset); } SYS_GETPGRP = 81 // { int sys_getpgrp(void); } SYS_SETPGID = 82 // { int sys_setpgid(pid_t pid, pid_t pgid); } - SYS_FUTEX = 83 // { int sys_futex(uint32_t *f, int op, int val, \ - SYS_UTIMENSAT = 84 // { int sys_utimensat(int fd, const char *path, \ - SYS_FUTIMENS = 85 // { int sys_futimens(int fd, \ - SYS_KBIND = 86 // { int sys_kbind(const struct __kbind *param, \ - SYS_CLOCK_GETTIME = 87 // { int sys_clock_gettime(clockid_t clock_id, \ - SYS_CLOCK_SETTIME = 88 // { int sys_clock_settime(clockid_t clock_id, \ - SYS_CLOCK_GETRES = 89 // { int sys_clock_getres(clockid_t clock_id, \ + SYS_FUTEX = 83 // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); } + SYS_UTIMENSAT = 84 // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); } + SYS_FUTIMENS = 85 // { int sys_futimens(int fd, const struct timespec *times); } + SYS_KBIND = 86 // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); } + SYS_CLOCK_GETTIME = 87 // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); } + SYS_CLOCK_SETTIME = 88 // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); } + SYS_CLOCK_GETRES = 89 // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); } SYS_DUP2 = 90 // { int sys_dup2(int from, int to); } - SYS_NANOSLEEP = 91 // { int sys_nanosleep(const struct timespec *rqtp, \ + SYS_NANOSLEEP = 91 // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } SYS_FCNTL = 92 // { int sys_fcntl(int fd, int cmd, ... void *arg); } - SYS_ACCEPT4 = 93 // { int sys_accept4(int s, struct sockaddr *name, \ - SYS___THRSLEEP = 94 // { int sys___thrsleep(const volatile void *ident, \ + SYS_ACCEPT4 = 93 // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); } + SYS___THRSLEEP = 94 // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); } SYS_FSYNC = 95 // { int sys_fsync(int fd); } SYS_SETPRIORITY = 96 // { int sys_setpriority(int which, id_t who, int prio); } SYS_SOCKET = 97 // { int sys_socket(int domain, int type, int protocol); } - SYS_CONNECT = 98 // { int sys_connect(int s, const struct sockaddr *name, \ + SYS_CONNECT = 98 // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); } SYS_GETDENTS = 99 // { int sys_getdents(int fd, void *buf, size_t buflen); } SYS_GETPRIORITY = 100 // { int sys_getpriority(int which, id_t who); } SYS_PIPE2 = 101 // { int sys_pipe2(int *fdp, int flags); } SYS_DUP3 = 102 // { int sys_dup3(int from, int to, int flags); } SYS_SIGRETURN = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); } - SYS_BIND = 104 // { int sys_bind(int s, const struct sockaddr *name, \ - SYS_SETSOCKOPT = 105 // { int sys_setsockopt(int s, int level, int name, \ + SYS_BIND = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_SETSOCKOPT = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); } SYS_LISTEN = 106 // { int sys_listen(int s, int backlog); } - SYS_CHFLAGSAT = 107 // { int sys_chflagsat(int fd, const char *path, \ - SYS_PLEDGE = 108 // { int sys_pledge(const char *promises, \ - SYS_PPOLL = 109 // { int sys_ppoll(struct pollfd *fds, \ - SYS_PSELECT = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, \ + SYS_CHFLAGSAT = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); } + SYS_PLEDGE = 108 // { int sys_pledge(const char *promises, const char *execpromises); } + SYS_PPOLL = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } + SYS_PSELECT = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } SYS_SIGSUSPEND = 111 // { int sys_sigsuspend(int mask); } - SYS_SENDSYSLOG = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, \ - SYS_UNVEIL = 114 // { int sys_unveil(const char *path, \ - SYS_GETSOCKOPT = 118 // { int sys_getsockopt(int s, int level, int name, \ + SYS_SENDSYSLOG = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); } + SYS_UNVEIL = 114 // { int sys_unveil(const char *path, const char *permissions); } + SYS_GETSOCKOPT = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } SYS_THRKILL = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); } - SYS_READV = 120 // { ssize_t sys_readv(int fd, \ - SYS_WRITEV = 121 // { ssize_t sys_writev(int fd, \ + SYS_READV = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); } + SYS_WRITEV = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); } SYS_KILL = 122 // { int sys_kill(int pid, int signum); } SYS_FCHOWN = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); } SYS_FCHMOD = 124 // { int sys_fchmod(int fd, mode_t mode); } @@ -129,90 +129,90 @@ const ( SYS_RENAME = 128 // { int sys_rename(const char *from, const char *to); } SYS_FLOCK = 131 // { int sys_flock(int fd, int how); } SYS_MKFIFO = 132 // { int sys_mkfifo(const char *path, mode_t mode); } - SYS_SENDTO = 133 // { ssize_t sys_sendto(int s, const void *buf, \ + SYS_SENDTO = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); } SYS_SHUTDOWN = 134 // { int sys_shutdown(int s, int how); } - SYS_SOCKETPAIR = 135 // { int sys_socketpair(int domain, int type, \ + SYS_SOCKETPAIR = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); } SYS_MKDIR = 136 // { int sys_mkdir(const char *path, mode_t mode); } SYS_RMDIR = 137 // { int sys_rmdir(const char *path); } - SYS_ADJTIME = 140 // { int sys_adjtime(const struct timeval *delta, \ + SYS_ADJTIME = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); } SYS_GETLOGIN_R = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); } SYS_SETSID = 147 // { int sys_setsid(void); } - SYS_QUOTACTL = 148 // { int sys_quotactl(const char *path, int cmd, \ + SYS_QUOTACTL = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); } SYS_NFSSVC = 155 // { int sys_nfssvc(int flag, void *argp); } SYS_GETFH = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); } SYS_SYSARCH = 165 // { int sys_sysarch(int op, void *parms); } - SYS_PREAD = 173 // { ssize_t sys_pread(int fd, void *buf, \ - SYS_PWRITE = 174 // { ssize_t sys_pwrite(int fd, const void *buf, \ + SYS_PREAD = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); } + SYS_PWRITE = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); } SYS_SETGID = 181 // { int sys_setgid(gid_t gid); } SYS_SETEGID = 182 // { int sys_setegid(gid_t egid); } SYS_SETEUID = 183 // { int sys_seteuid(uid_t euid); } SYS_PATHCONF = 191 // { long sys_pathconf(const char *path, int name); } SYS_FPATHCONF = 192 // { long sys_fpathconf(int fd, int name); } SYS_SWAPCTL = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); } - SYS_GETRLIMIT = 194 // { int sys_getrlimit(int which, \ - SYS_SETRLIMIT = 195 // { int sys_setrlimit(int which, \ - SYS_MMAP = 197 // { void *sys_mmap(void *addr, size_t len, int prot, \ - SYS_LSEEK = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, \ - SYS_TRUNCATE = 200 // { int sys_truncate(const char *path, int pad, \ + SYS_GETRLIMIT = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); } + SYS_SETRLIMIT = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); } + SYS_MMAP = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } + SYS_LSEEK = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); } + SYS_TRUNCATE = 200 // { int sys_truncate(const char *path, int pad, off_t length); } SYS_FTRUNCATE = 201 // { int sys_ftruncate(int fd, int pad, off_t length); } - SYS_SYSCTL = 202 // { int sys_sysctl(const int *name, u_int namelen, \ + SYS_SYSCTL = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } SYS_MLOCK = 203 // { int sys_mlock(const void *addr, size_t len); } SYS_MUNLOCK = 204 // { int sys_munlock(const void *addr, size_t len); } SYS_GETPGID = 207 // { pid_t sys_getpgid(pid_t pid); } - SYS_UTRACE = 209 // { int sys_utrace(const char *label, const void *addr, \ + SYS_UTRACE = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); } SYS_SEMGET = 221 // { int sys_semget(key_t key, int nsems, int semflg); } SYS_MSGGET = 225 // { int sys_msgget(key_t key, int msgflg); } - SYS_MSGSND = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, \ - SYS_MSGRCV = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, \ - SYS_SHMAT = 228 // { void *sys_shmat(int shmid, const void *shmaddr, \ + SYS_MSGSND = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } + SYS_MSGRCV = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } + SYS_SHMAT = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); } SYS_SHMDT = 230 // { int sys_shmdt(const void *shmaddr); } - SYS_MINHERIT = 250 // { int sys_minherit(void *addr, size_t len, \ - SYS_POLL = 252 // { int sys_poll(struct pollfd *fds, \ + SYS_MINHERIT = 250 // { int sys_minherit(void *addr, size_t len, int inherit); } + SYS_POLL = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); } SYS_ISSETUGID = 253 // { int sys_issetugid(void); } SYS_LCHOWN = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); } SYS_GETSID = 255 // { pid_t sys_getsid(pid_t pid); } SYS_MSYNC = 256 // { int sys_msync(void *addr, size_t len, int flags); } SYS_PIPE = 263 // { int sys_pipe(int *fdp); } SYS_FHOPEN = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); } - SYS_PREADV = 267 // { ssize_t sys_preadv(int fd, \ - SYS_PWRITEV = 268 // { ssize_t sys_pwritev(int fd, \ + SYS_PREADV = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } + SYS_PWRITEV = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } SYS_KQUEUE = 269 // { int sys_kqueue(void); } SYS_MLOCKALL = 271 // { int sys_mlockall(int flags); } SYS_MUNLOCKALL = 272 // { int sys_munlockall(void); } - SYS_GETRESUID = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, \ - SYS_SETRESUID = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, \ - SYS_GETRESGID = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, \ - SYS_SETRESGID = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, \ - SYS_MQUERY = 286 // { void *sys_mquery(void *addr, size_t len, int prot, \ + SYS_GETRESUID = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } + SYS_SETRESUID = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); } + SYS_GETRESGID = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } + SYS_SETRESGID = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); } + SYS_MQUERY = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } SYS_CLOSEFROM = 287 // { int sys_closefrom(int fd); } - SYS_SIGALTSTACK = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, \ + SYS_SIGALTSTACK = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); } SYS_SHMGET = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); } - SYS_SEMOP = 290 // { int sys_semop(int semid, struct sembuf *sops, \ - SYS_FHSTAT = 294 // { int sys_fhstat(const fhandle_t *fhp, \ - SYS___SEMCTL = 295 // { int sys___semctl(int semid, int semnum, int cmd, \ - SYS_SHMCTL = 296 // { int sys_shmctl(int shmid, int cmd, \ - SYS_MSGCTL = 297 // { int sys_msgctl(int msqid, int cmd, \ + SYS_SEMOP = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); } + SYS_FHSTAT = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); } + SYS___SEMCTL = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); } + SYS_SHMCTL = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); } + SYS_MSGCTL = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); } SYS_SCHED_YIELD = 298 // { int sys_sched_yield(void); } SYS_GETTHRID = 299 // { pid_t sys_getthrid(void); } - SYS___THRWAKEUP = 301 // { int sys___thrwakeup(const volatile void *ident, \ + SYS___THRWAKEUP = 301 // { int sys___thrwakeup(const volatile void *ident, int n); } SYS___THREXIT = 302 // { void sys___threxit(pid_t *notdead); } - SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, \ + SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); } SYS___GETCWD = 304 // { int sys___getcwd(char *buf, size_t len); } - SYS_ADJFREQ = 305 // { int sys_adjfreq(const int64_t *freq, \ + SYS_ADJFREQ = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); } SYS_SETRTABLE = 310 // { int sys_setrtable(int rtableid); } SYS_GETRTABLE = 311 // { int sys_getrtable(void); } - SYS_FACCESSAT = 313 // { int sys_faccessat(int fd, const char *path, \ - SYS_FCHMODAT = 314 // { int sys_fchmodat(int fd, const char *path, \ - SYS_FCHOWNAT = 315 // { int sys_fchownat(int fd, const char *path, \ - SYS_LINKAT = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, \ - SYS_MKDIRAT = 318 // { int sys_mkdirat(int fd, const char *path, \ - SYS_MKFIFOAT = 319 // { int sys_mkfifoat(int fd, const char *path, \ - SYS_MKNODAT = 320 // { int sys_mknodat(int fd, const char *path, \ - SYS_OPENAT = 321 // { int sys_openat(int fd, const char *path, int flags, \ - SYS_READLINKAT = 322 // { ssize_t sys_readlinkat(int fd, const char *path, \ - SYS_RENAMEAT = 323 // { int sys_renameat(int fromfd, const char *from, \ - SYS_SYMLINKAT = 324 // { int sys_symlinkat(const char *path, int fd, \ - SYS_UNLINKAT = 325 // { int sys_unlinkat(int fd, const char *path, \ + SYS_FACCESSAT = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); } + SYS_FCHMODAT = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); } + SYS_FCHOWNAT = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); } + SYS_LINKAT = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); } + SYS_MKDIRAT = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); } + SYS_MKFIFOAT = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); } + SYS_MKNODAT = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); } + SYS_OPENAT = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); } + SYS_READLINKAT = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); } + SYS_RENAMEAT = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); } + SYS_SYMLINKAT = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); } + SYS_UNLINKAT = 325 // { int sys_unlinkat(int fd, const char *path, int flag); } SYS___SET_TCB = 329 // { void sys___set_tcb(void *tcb); } SYS___GET_TCB = 330 // { void *sys___get_tcb(void); } ) diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go index be1198d91..33d1dc540 100644 --- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go @@ -1,4 +1,4 @@ -// mksysnum_openbsd.pl +// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master // Code generated by the command above; see README.md. DO NOT EDIT. // +build arm,openbsd @@ -9,35 +9,35 @@ const ( SYS_EXIT = 1 // { void sys_exit(int rval); } SYS_FORK = 2 // { int sys_fork(void); } SYS_READ = 3 // { ssize_t sys_read(int fd, void *buf, size_t nbyte); } - SYS_WRITE = 4 // { ssize_t sys_write(int fd, const void *buf, \ - SYS_OPEN = 5 // { int sys_open(const char *path, \ + SYS_WRITE = 4 // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); } + SYS_OPEN = 5 // { int sys_open(const char *path, int flags, ... mode_t mode); } SYS_CLOSE = 6 // { int sys_close(int fd); } SYS_GETENTROPY = 7 // { int sys_getentropy(void *buf, size_t nbyte); } - SYS___TFORK = 8 // { int sys___tfork(const struct __tfork *param, \ + SYS___TFORK = 8 // { int sys___tfork(const struct __tfork *param, size_t psize); } SYS_LINK = 9 // { int sys_link(const char *path, const char *link); } SYS_UNLINK = 10 // { int sys_unlink(const char *path); } - SYS_WAIT4 = 11 // { pid_t sys_wait4(pid_t pid, int *status, \ + SYS_WAIT4 = 11 // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); } SYS_CHDIR = 12 // { int sys_chdir(const char *path); } SYS_FCHDIR = 13 // { int sys_fchdir(int fd); } - SYS_MKNOD = 14 // { int sys_mknod(const char *path, mode_t mode, \ + SYS_MKNOD = 14 // { int sys_mknod(const char *path, mode_t mode, dev_t dev); } SYS_CHMOD = 15 // { int sys_chmod(const char *path, mode_t mode); } - SYS_CHOWN = 16 // { int sys_chown(const char *path, uid_t uid, \ + SYS_CHOWN = 16 // { int sys_chown(const char *path, uid_t uid, gid_t gid); } SYS_OBREAK = 17 // { int sys_obreak(char *nsize); } break SYS_GETDTABLECOUNT = 18 // { int sys_getdtablecount(void); } - SYS_GETRUSAGE = 19 // { int sys_getrusage(int who, \ + SYS_GETRUSAGE = 19 // { int sys_getrusage(int who, struct rusage *rusage); } SYS_GETPID = 20 // { pid_t sys_getpid(void); } - SYS_MOUNT = 21 // { int sys_mount(const char *type, const char *path, \ + SYS_MOUNT = 21 // { int sys_mount(const char *type, const char *path, int flags, void *data); } SYS_UNMOUNT = 22 // { int sys_unmount(const char *path, int flags); } SYS_SETUID = 23 // { int sys_setuid(uid_t uid); } SYS_GETUID = 24 // { uid_t sys_getuid(void); } SYS_GETEUID = 25 // { uid_t sys_geteuid(void); } - SYS_PTRACE = 26 // { int sys_ptrace(int req, pid_t pid, caddr_t addr, \ - SYS_RECVMSG = 27 // { ssize_t sys_recvmsg(int s, struct msghdr *msg, \ - SYS_SENDMSG = 28 // { ssize_t sys_sendmsg(int s, \ - SYS_RECVFROM = 29 // { ssize_t sys_recvfrom(int s, void *buf, size_t len, \ - SYS_ACCEPT = 30 // { int sys_accept(int s, struct sockaddr *name, \ - SYS_GETPEERNAME = 31 // { int sys_getpeername(int fdes, struct sockaddr *asa, \ - SYS_GETSOCKNAME = 32 // { int sys_getsockname(int fdes, struct sockaddr *asa, \ + SYS_PTRACE = 26 // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); } + SYS_RECVMSG = 27 // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); } + SYS_SENDMSG = 28 // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); } + SYS_RECVFROM = 29 // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); } + SYS_ACCEPT = 30 // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); } + SYS_GETPEERNAME = 31 // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_GETSOCKNAME = 32 // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); } SYS_ACCESS = 33 // { int sys_access(const char *path, int amode); } SYS_CHFLAGS = 34 // { int sys_chflags(const char *path, u_int flags); } SYS_FCHFLAGS = 35 // { int sys_fchflags(int fd, u_int flags); } @@ -46,81 +46,81 @@ const ( SYS_GETPPID = 39 // { pid_t sys_getppid(void); } SYS_LSTAT = 40 // { int sys_lstat(const char *path, struct stat *ub); } SYS_DUP = 41 // { int sys_dup(int fd); } - SYS_FSTATAT = 42 // { int sys_fstatat(int fd, const char *path, \ + SYS_FSTATAT = 42 // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); } SYS_GETEGID = 43 // { gid_t sys_getegid(void); } - SYS_PROFIL = 44 // { int sys_profil(caddr_t samples, size_t size, \ - SYS_KTRACE = 45 // { int sys_ktrace(const char *fname, int ops, \ - SYS_SIGACTION = 46 // { int sys_sigaction(int signum, \ + SYS_PROFIL = 44 // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); } + SYS_KTRACE = 45 // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); } + SYS_SIGACTION = 46 // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); } SYS_GETGID = 47 // { gid_t sys_getgid(void); } SYS_SIGPROCMASK = 48 // { int sys_sigprocmask(int how, sigset_t mask); } SYS_SETLOGIN = 50 // { int sys_setlogin(const char *namebuf); } SYS_ACCT = 51 // { int sys_acct(const char *path); } SYS_SIGPENDING = 52 // { int sys_sigpending(void); } SYS_FSTAT = 53 // { int sys_fstat(int fd, struct stat *sb); } - SYS_IOCTL = 54 // { int sys_ioctl(int fd, \ + SYS_IOCTL = 54 // { int sys_ioctl(int fd, u_long com, ... void *data); } SYS_REBOOT = 55 // { int sys_reboot(int opt); } SYS_REVOKE = 56 // { int sys_revoke(const char *path); } - SYS_SYMLINK = 57 // { int sys_symlink(const char *path, \ - SYS_READLINK = 58 // { ssize_t sys_readlink(const char *path, \ - SYS_EXECVE = 59 // { int sys_execve(const char *path, \ + SYS_SYMLINK = 57 // { int sys_symlink(const char *path, const char *link); } + SYS_READLINK = 58 // { ssize_t sys_readlink(const char *path, char *buf, size_t count); } + SYS_EXECVE = 59 // { int sys_execve(const char *path, char * const *argp, char * const *envp); } SYS_UMASK = 60 // { mode_t sys_umask(mode_t newmask); } SYS_CHROOT = 61 // { int sys_chroot(const char *path); } - SYS_GETFSSTAT = 62 // { int sys_getfsstat(struct statfs *buf, size_t bufsize, \ - SYS_STATFS = 63 // { int sys_statfs(const char *path, \ + SYS_GETFSSTAT = 62 // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); } + SYS_STATFS = 63 // { int sys_statfs(const char *path, struct statfs *buf); } SYS_FSTATFS = 64 // { int sys_fstatfs(int fd, struct statfs *buf); } - SYS_FHSTATFS = 65 // { int sys_fhstatfs(const fhandle_t *fhp, \ + SYS_FHSTATFS = 65 // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); } SYS_VFORK = 66 // { int sys_vfork(void); } - SYS_GETTIMEOFDAY = 67 // { int sys_gettimeofday(struct timeval *tp, \ - SYS_SETTIMEOFDAY = 68 // { int sys_settimeofday(const struct timeval *tv, \ - SYS_SETITIMER = 69 // { int sys_setitimer(int which, \ - SYS_GETITIMER = 70 // { int sys_getitimer(int which, \ - SYS_SELECT = 71 // { int sys_select(int nd, fd_set *in, fd_set *ou, \ - SYS_KEVENT = 72 // { int sys_kevent(int fd, \ + SYS_GETTIMEOFDAY = 67 // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); } + SYS_SETTIMEOFDAY = 68 // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); } + SYS_SETITIMER = 69 // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } + SYS_GETITIMER = 70 // { int sys_getitimer(int which, struct itimerval *itv); } + SYS_SELECT = 71 // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } + SYS_KEVENT = 72 // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } SYS_MUNMAP = 73 // { int sys_munmap(void *addr, size_t len); } - SYS_MPROTECT = 74 // { int sys_mprotect(void *addr, size_t len, \ - SYS_MADVISE = 75 // { int sys_madvise(void *addr, size_t len, \ - SYS_UTIMES = 76 // { int sys_utimes(const char *path, \ - SYS_FUTIMES = 77 // { int sys_futimes(int fd, \ - SYS_MINCORE = 78 // { int sys_mincore(void *addr, size_t len, \ - SYS_GETGROUPS = 79 // { int sys_getgroups(int gidsetsize, \ - SYS_SETGROUPS = 80 // { int sys_setgroups(int gidsetsize, \ + SYS_MPROTECT = 74 // { int sys_mprotect(void *addr, size_t len, int prot); } + SYS_MADVISE = 75 // { int sys_madvise(void *addr, size_t len, int behav); } + SYS_UTIMES = 76 // { int sys_utimes(const char *path, const struct timeval *tptr); } + SYS_FUTIMES = 77 // { int sys_futimes(int fd, const struct timeval *tptr); } + SYS_MINCORE = 78 // { int sys_mincore(void *addr, size_t len, char *vec); } + SYS_GETGROUPS = 79 // { int sys_getgroups(int gidsetsize, gid_t *gidset); } + SYS_SETGROUPS = 80 // { int sys_setgroups(int gidsetsize, const gid_t *gidset); } SYS_GETPGRP = 81 // { int sys_getpgrp(void); } SYS_SETPGID = 82 // { int sys_setpgid(pid_t pid, pid_t pgid); } - SYS_FUTEX = 83 // { int sys_futex(uint32_t *f, int op, int val, \ - SYS_UTIMENSAT = 84 // { int sys_utimensat(int fd, const char *path, \ - SYS_FUTIMENS = 85 // { int sys_futimens(int fd, \ - SYS_KBIND = 86 // { int sys_kbind(const struct __kbind *param, \ - SYS_CLOCK_GETTIME = 87 // { int sys_clock_gettime(clockid_t clock_id, \ - SYS_CLOCK_SETTIME = 88 // { int sys_clock_settime(clockid_t clock_id, \ - SYS_CLOCK_GETRES = 89 // { int sys_clock_getres(clockid_t clock_id, \ + SYS_FUTEX = 83 // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); } + SYS_UTIMENSAT = 84 // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); } + SYS_FUTIMENS = 85 // { int sys_futimens(int fd, const struct timespec *times); } + SYS_KBIND = 86 // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); } + SYS_CLOCK_GETTIME = 87 // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); } + SYS_CLOCK_SETTIME = 88 // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); } + SYS_CLOCK_GETRES = 89 // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); } SYS_DUP2 = 90 // { int sys_dup2(int from, int to); } - SYS_NANOSLEEP = 91 // { int sys_nanosleep(const struct timespec *rqtp, \ + SYS_NANOSLEEP = 91 // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } SYS_FCNTL = 92 // { int sys_fcntl(int fd, int cmd, ... void *arg); } - SYS_ACCEPT4 = 93 // { int sys_accept4(int s, struct sockaddr *name, \ - SYS___THRSLEEP = 94 // { int sys___thrsleep(const volatile void *ident, \ + SYS_ACCEPT4 = 93 // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); } + SYS___THRSLEEP = 94 // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); } SYS_FSYNC = 95 // { int sys_fsync(int fd); } SYS_SETPRIORITY = 96 // { int sys_setpriority(int which, id_t who, int prio); } SYS_SOCKET = 97 // { int sys_socket(int domain, int type, int protocol); } - SYS_CONNECT = 98 // { int sys_connect(int s, const struct sockaddr *name, \ + SYS_CONNECT = 98 // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); } SYS_GETDENTS = 99 // { int sys_getdents(int fd, void *buf, size_t buflen); } SYS_GETPRIORITY = 100 // { int sys_getpriority(int which, id_t who); } SYS_PIPE2 = 101 // { int sys_pipe2(int *fdp, int flags); } SYS_DUP3 = 102 // { int sys_dup3(int from, int to, int flags); } SYS_SIGRETURN = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); } - SYS_BIND = 104 // { int sys_bind(int s, const struct sockaddr *name, \ - SYS_SETSOCKOPT = 105 // { int sys_setsockopt(int s, int level, int name, \ + SYS_BIND = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_SETSOCKOPT = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); } SYS_LISTEN = 106 // { int sys_listen(int s, int backlog); } - SYS_CHFLAGSAT = 107 // { int sys_chflagsat(int fd, const char *path, \ - SYS_PLEDGE = 108 // { int sys_pledge(const char *promises, \ - SYS_PPOLL = 109 // { int sys_ppoll(struct pollfd *fds, \ - SYS_PSELECT = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, \ + SYS_CHFLAGSAT = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); } + SYS_PLEDGE = 108 // { int sys_pledge(const char *promises, const char *execpromises); } + SYS_PPOLL = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } + SYS_PSELECT = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } SYS_SIGSUSPEND = 111 // { int sys_sigsuspend(int mask); } - SYS_SENDSYSLOG = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, \ - SYS_UNVEIL = 114 // { int sys_unveil(const char *path, \ - SYS_GETSOCKOPT = 118 // { int sys_getsockopt(int s, int level, int name, \ + SYS_SENDSYSLOG = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); } + SYS_UNVEIL = 114 // { int sys_unveil(const char *path, const char *permissions); } + SYS_GETSOCKOPT = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } SYS_THRKILL = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); } - SYS_READV = 120 // { ssize_t sys_readv(int fd, \ - SYS_WRITEV = 121 // { ssize_t sys_writev(int fd, \ + SYS_READV = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); } + SYS_WRITEV = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); } SYS_KILL = 122 // { int sys_kill(int pid, int signum); } SYS_FCHOWN = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); } SYS_FCHMOD = 124 // { int sys_fchmod(int fd, mode_t mode); } @@ -129,90 +129,90 @@ const ( SYS_RENAME = 128 // { int sys_rename(const char *from, const char *to); } SYS_FLOCK = 131 // { int sys_flock(int fd, int how); } SYS_MKFIFO = 132 // { int sys_mkfifo(const char *path, mode_t mode); } - SYS_SENDTO = 133 // { ssize_t sys_sendto(int s, const void *buf, \ + SYS_SENDTO = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); } SYS_SHUTDOWN = 134 // { int sys_shutdown(int s, int how); } - SYS_SOCKETPAIR = 135 // { int sys_socketpair(int domain, int type, \ + SYS_SOCKETPAIR = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); } SYS_MKDIR = 136 // { int sys_mkdir(const char *path, mode_t mode); } SYS_RMDIR = 137 // { int sys_rmdir(const char *path); } - SYS_ADJTIME = 140 // { int sys_adjtime(const struct timeval *delta, \ + SYS_ADJTIME = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); } SYS_GETLOGIN_R = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); } SYS_SETSID = 147 // { int sys_setsid(void); } - SYS_QUOTACTL = 148 // { int sys_quotactl(const char *path, int cmd, \ + SYS_QUOTACTL = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); } SYS_NFSSVC = 155 // { int sys_nfssvc(int flag, void *argp); } SYS_GETFH = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); } SYS_SYSARCH = 165 // { int sys_sysarch(int op, void *parms); } - SYS_PREAD = 173 // { ssize_t sys_pread(int fd, void *buf, \ - SYS_PWRITE = 174 // { ssize_t sys_pwrite(int fd, const void *buf, \ + SYS_PREAD = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); } + SYS_PWRITE = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); } SYS_SETGID = 181 // { int sys_setgid(gid_t gid); } SYS_SETEGID = 182 // { int sys_setegid(gid_t egid); } SYS_SETEUID = 183 // { int sys_seteuid(uid_t euid); } SYS_PATHCONF = 191 // { long sys_pathconf(const char *path, int name); } SYS_FPATHCONF = 192 // { long sys_fpathconf(int fd, int name); } SYS_SWAPCTL = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); } - SYS_GETRLIMIT = 194 // { int sys_getrlimit(int which, \ - SYS_SETRLIMIT = 195 // { int sys_setrlimit(int which, \ - SYS_MMAP = 197 // { void *sys_mmap(void *addr, size_t len, int prot, \ - SYS_LSEEK = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, \ - SYS_TRUNCATE = 200 // { int sys_truncate(const char *path, int pad, \ + SYS_GETRLIMIT = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); } + SYS_SETRLIMIT = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); } + SYS_MMAP = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } + SYS_LSEEK = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); } + SYS_TRUNCATE = 200 // { int sys_truncate(const char *path, int pad, off_t length); } SYS_FTRUNCATE = 201 // { int sys_ftruncate(int fd, int pad, off_t length); } - SYS_SYSCTL = 202 // { int sys_sysctl(const int *name, u_int namelen, \ + SYS_SYSCTL = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } SYS_MLOCK = 203 // { int sys_mlock(const void *addr, size_t len); } SYS_MUNLOCK = 204 // { int sys_munlock(const void *addr, size_t len); } SYS_GETPGID = 207 // { pid_t sys_getpgid(pid_t pid); } - SYS_UTRACE = 209 // { int sys_utrace(const char *label, const void *addr, \ + SYS_UTRACE = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); } SYS_SEMGET = 221 // { int sys_semget(key_t key, int nsems, int semflg); } SYS_MSGGET = 225 // { int sys_msgget(key_t key, int msgflg); } - SYS_MSGSND = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, \ - SYS_MSGRCV = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, \ - SYS_SHMAT = 228 // { void *sys_shmat(int shmid, const void *shmaddr, \ + SYS_MSGSND = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } + SYS_MSGRCV = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } + SYS_SHMAT = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); } SYS_SHMDT = 230 // { int sys_shmdt(const void *shmaddr); } - SYS_MINHERIT = 250 // { int sys_minherit(void *addr, size_t len, \ - SYS_POLL = 252 // { int sys_poll(struct pollfd *fds, \ + SYS_MINHERIT = 250 // { int sys_minherit(void *addr, size_t len, int inherit); } + SYS_POLL = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); } SYS_ISSETUGID = 253 // { int sys_issetugid(void); } SYS_LCHOWN = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); } SYS_GETSID = 255 // { pid_t sys_getsid(pid_t pid); } SYS_MSYNC = 256 // { int sys_msync(void *addr, size_t len, int flags); } SYS_PIPE = 263 // { int sys_pipe(int *fdp); } SYS_FHOPEN = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); } - SYS_PREADV = 267 // { ssize_t sys_preadv(int fd, \ - SYS_PWRITEV = 268 // { ssize_t sys_pwritev(int fd, \ + SYS_PREADV = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } + SYS_PWRITEV = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } SYS_KQUEUE = 269 // { int sys_kqueue(void); } SYS_MLOCKALL = 271 // { int sys_mlockall(int flags); } SYS_MUNLOCKALL = 272 // { int sys_munlockall(void); } - SYS_GETRESUID = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, \ - SYS_SETRESUID = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, \ - SYS_GETRESGID = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, \ - SYS_SETRESGID = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, \ - SYS_MQUERY = 286 // { void *sys_mquery(void *addr, size_t len, int prot, \ + SYS_GETRESUID = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } + SYS_SETRESUID = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); } + SYS_GETRESGID = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } + SYS_SETRESGID = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); } + SYS_MQUERY = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } SYS_CLOSEFROM = 287 // { int sys_closefrom(int fd); } - SYS_SIGALTSTACK = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, \ + SYS_SIGALTSTACK = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); } SYS_SHMGET = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); } - SYS_SEMOP = 290 // { int sys_semop(int semid, struct sembuf *sops, \ - SYS_FHSTAT = 294 // { int sys_fhstat(const fhandle_t *fhp, \ - SYS___SEMCTL = 295 // { int sys___semctl(int semid, int semnum, int cmd, \ - SYS_SHMCTL = 296 // { int sys_shmctl(int shmid, int cmd, \ - SYS_MSGCTL = 297 // { int sys_msgctl(int msqid, int cmd, \ + SYS_SEMOP = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); } + SYS_FHSTAT = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); } + SYS___SEMCTL = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); } + SYS_SHMCTL = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); } + SYS_MSGCTL = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); } SYS_SCHED_YIELD = 298 // { int sys_sched_yield(void); } SYS_GETTHRID = 299 // { pid_t sys_getthrid(void); } - SYS___THRWAKEUP = 301 // { int sys___thrwakeup(const volatile void *ident, \ + SYS___THRWAKEUP = 301 // { int sys___thrwakeup(const volatile void *ident, int n); } SYS___THREXIT = 302 // { void sys___threxit(pid_t *notdead); } - SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, \ + SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); } SYS___GETCWD = 304 // { int sys___getcwd(char *buf, size_t len); } - SYS_ADJFREQ = 305 // { int sys_adjfreq(const int64_t *freq, \ + SYS_ADJFREQ = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); } SYS_SETRTABLE = 310 // { int sys_setrtable(int rtableid); } SYS_GETRTABLE = 311 // { int sys_getrtable(void); } - SYS_FACCESSAT = 313 // { int sys_faccessat(int fd, const char *path, \ - SYS_FCHMODAT = 314 // { int sys_fchmodat(int fd, const char *path, \ - SYS_FCHOWNAT = 315 // { int sys_fchownat(int fd, const char *path, \ - SYS_LINKAT = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, \ - SYS_MKDIRAT = 318 // { int sys_mkdirat(int fd, const char *path, \ - SYS_MKFIFOAT = 319 // { int sys_mkfifoat(int fd, const char *path, \ - SYS_MKNODAT = 320 // { int sys_mknodat(int fd, const char *path, \ - SYS_OPENAT = 321 // { int sys_openat(int fd, const char *path, int flags, \ - SYS_READLINKAT = 322 // { ssize_t sys_readlinkat(int fd, const char *path, \ - SYS_RENAMEAT = 323 // { int sys_renameat(int fromfd, const char *from, \ - SYS_SYMLINKAT = 324 // { int sys_symlinkat(const char *path, int fd, \ - SYS_UNLINKAT = 325 // { int sys_unlinkat(int fd, const char *path, \ + SYS_FACCESSAT = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); } + SYS_FCHMODAT = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); } + SYS_FCHOWNAT = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); } + SYS_LINKAT = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); } + SYS_MKDIRAT = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); } + SYS_MKFIFOAT = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); } + SYS_MKNODAT = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); } + SYS_OPENAT = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); } + SYS_READLINKAT = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); } + SYS_RENAMEAT = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); } + SYS_SYMLINKAT = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); } + SYS_UNLINKAT = 325 // { int sys_unlinkat(int fd, const char *path, int flag); } SYS___SET_TCB = 329 // { void sys___set_tcb(void *tcb); } SYS___GET_TCB = 330 // { void *sys___get_tcb(void); } ) diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go new file mode 100644 index 000000000..2aadc1a4d --- /dev/null +++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go @@ -0,0 +1,602 @@ +// cgo -godefs types_freebsd.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +// +build arm64,freebsd + +package unix + +const ( + SizeofPtr = 0x8 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x8 + SizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur int64 + Max int64 +} + +type _Gid_t uint32 + +const ( + _statfsVersion = 0x20140518 + _dirblksiz = 0x400 +) + +type Stat_t struct { + Dev uint64 + Ino uint64 + Nlink uint64 + Mode uint16 + _0 int16 + Uid uint32 + Gid uint32 + _1 int32 + Rdev uint64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Birthtim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint64 + Spare [10]uint64 +} + +type stat_freebsd11_t struct { + Dev uint32 + Ino uint32 + Mode uint16 + Nlink uint16 + Uid uint32 + Gid uint32 + Rdev uint32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint32 + Lspare int32 + Birthtim Timespec +} + +type Statfs_t struct { + Version uint32 + Type uint32 + Flags uint64 + Bsize uint64 + Iosize uint64 + Blocks uint64 + Bfree uint64 + Bavail int64 + Files uint64 + Ffree int64 + Syncwrites uint64 + Asyncwrites uint64 + Syncreads uint64 + Asyncreads uint64 + Spare [10]uint64 + Namemax uint32 + Owner uint32 + Fsid Fsid + Charspare [80]int8 + Fstypename [16]int8 + Mntfromname [1024]int8 + Mntonname [1024]int8 +} + +type statfs_freebsd11_t struct { + Version uint32 + Type uint32 + Flags uint64 + Bsize uint64 + Iosize uint64 + Blocks uint64 + Bfree uint64 + Bavail int64 + Files uint64 + Ffree int64 + Syncwrites uint64 + Asyncwrites uint64 + Syncreads uint64 + Asyncreads uint64 + Spare [10]uint64 + Namemax uint32 + Owner uint32 + Fsid Fsid + Charspare [80]int8 + Fstypename [16]int8 + Mntfromname [88]int8 + Mntonname [88]int8 +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 + Sysid int32 + _ [4]byte +} + +type Dirent struct { + Fileno uint64 + Off int64 + Reclen uint16 + Type uint8 + Pad0 uint8 + Namlen uint16 + Pad1 uint16 + Name [256]int8 +} + +type dirent_freebsd11 struct { + Fileno uint32 + Reclen uint16 + Type uint8 + Namlen uint8 + Name [256]int8 +} + +type Fsid struct { + Val [2]int32 +} + +const ( + PathMax = 0x400 +) + +const ( + FADV_NORMAL = 0x0 + FADV_RANDOM = 0x1 + FADV_SEQUENTIAL = 0x2 + FADV_WILLNEED = 0x3 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [46]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPMreqn struct { + Multiaddr [4]byte /* in_addr */ + Address [4]byte /* in_addr */ + Ifindex int32 +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + _ [4]byte + Iov *Iovec + Iovlen int32 + _ [4]byte + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x36 + SizeofLinger = 0x8 + SizeofIPMreq = 0x8 + SizeofIPMreqn = 0xc + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint64 + Filter int16 + Flags uint16 + Fflags uint32 + Data int64 + Udata *byte +} + +type FdSet struct { + Bits [16]uint64 +} + +const ( + sizeofIfMsghdr = 0xa8 + SizeofIfMsghdr = 0xa8 + sizeofIfData = 0x98 + SizeofIfData = 0x98 + SizeofIfaMsghdr = 0x14 + SizeofIfmaMsghdr = 0x10 + SizeofIfAnnounceMsghdr = 0x18 + SizeofRtMsghdr = 0x98 + SizeofRtMetrics = 0x70 +) + +type ifMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ [2]byte + Data ifData +} + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ [2]byte + Data IfData +} + +type ifData struct { + Type uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Vhid uint8 + Datalen uint16 + Mtu uint32 + Metric uint32 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Oqdrops uint64 + Noproto uint64 + Hwassist uint64 + _ [8]byte + _ [16]byte +} + +type IfData struct { + Type uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Spare_char1 uint8 + Spare_char2 uint8 + Datalen uint8 + Mtu uint64 + Metric uint64 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Noproto uint64 + Hwassist uint64 + Epoch int64 + Lastchange Timeval +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ [2]byte + Metric int32 +} + +type IfmaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ [2]byte +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Name [16]int8 + What uint16 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + _ [2]byte + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Fmask int32 + Inits uint64 + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint64 + Mtu uint64 + Hopcount uint64 + Expire uint64 + Recvpipe uint64 + Sendpipe uint64 + Ssthresh uint64 + Rtt uint64 + Rttvar uint64 + Pksent uint64 + Weight uint64 + Filler [3]uint64 +} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfZbuf = 0x18 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x20 + SizeofBpfZbufHeader = 0x20 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfZbuf struct { + Bufa *byte + Bufb *byte + Buflen uint64 +} + +type BpfProgram struct { + Len uint32 + _ [4]byte + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp Timeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + _ [6]byte +} + +type BpfZbufHeader struct { + Kernel_gen uint32 + Kernel_len uint32 + User_gen uint32 + _ [5]uint32 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +const ( + AT_FDCWD = -0x64 + AT_REMOVEDIR = 0x800 + AT_SYMLINK_FOLLOW = 0x400 + AT_SYMLINK_NOFOLLOW = 0x200 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLERR = 0x8 + POLLHUP = 0x10 + POLLIN = 0x1 + POLLINIGNEOF = 0x2000 + POLLNVAL = 0x20 + POLLOUT = 0x4 + POLLPRI = 0x2 + POLLRDBAND = 0x80 + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 +) + +type CapRights struct { + Rights [2]uint64 +} + +type Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + Version [256]byte + Machine [256]byte +} diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_386.go b/vendor/golang.org/x/sys/unix/ztypes_linux_386.go index f56e164b7..aade41a05 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_386.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_386.go @@ -98,7 +98,6 @@ type _Gid_t uint32 type Stat_t struct { Dev uint64 _ uint16 - _ [2]byte _ uint32 Mode uint32 Nlink uint32 @@ -106,7 +105,6 @@ type Stat_t struct { Gid uint32 Rdev uint64 _ uint16 - _ [2]byte Size int64 Blksize int32 Blocks int64 @@ -257,7 +255,6 @@ type RawSockaddrRFCOMM struct { type RawSockaddrCAN struct { Family uint16 - _ [2]byte Ifindex int32 Addr [8]byte } @@ -382,7 +379,6 @@ type TCPInfo struct { Probes uint8 Backoff uint8 Options uint8 - _ [2]byte Rto uint32 Ato uint32 Snd_mss uint32 @@ -652,7 +648,6 @@ type SockFilter struct { type SockFprog struct { Len uint16 - _ [2]byte Filter *SockFilter } @@ -764,6 +759,26 @@ type Sigset_t struct { Val [32]uint32 } +type SignalfdSiginfo struct { + Signo uint32 + Errno int32 + Code int32 + Pid uint32 + Uid uint32 + Fd int32 + Tid uint32 + Band uint32 + Overrun uint32 + Trapno uint32 + Status int32 + Int int32 + Ptr uint64 + Utime uint64 + Stime uint64 + Addr uint64 + _ [48]uint8 +} + const RNDGETENTCNT = 0x80045200 const PERF_IOC_FLAG_GROUP = 0x1 @@ -788,11 +803,10 @@ type Winsize struct { type Taskstats struct { Version uint16 - _ [2]byte Ac_exitcode uint32 Ac_flag uint8 Ac_nice uint8 - _ [6]byte + _ [4]byte Cpu_count uint64 Cpu_delay_total uint64 Blkio_count uint64 @@ -834,6 +848,8 @@ type Taskstats struct { Cpu_scaled_run_real_total uint64 Freepages_count uint64 Freepages_delay_total uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 } const ( @@ -1866,7 +1882,6 @@ type RTCTime struct { type RTCWkAlrm struct { Enabled uint8 Pending uint8 - _ [2]byte Time RTCTime } diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go index ac5f636a6..80f4ba6be 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go @@ -33,13 +33,11 @@ type Timeval struct { type Timex struct { Modes uint32 - _ [4]byte Offset int64 Freq int64 Maxerror int64 Esterror int64 Status int32 - _ [4]byte Constant int64 Precision int64 Tolerance int64 @@ -48,7 +46,6 @@ type Timex struct { Ppsfreq int64 Jitter int64 Shift int32 - _ [4]byte Stabil int64 Jitcnt int64 Calcnt int64 @@ -162,7 +159,6 @@ type Fsid struct { type Flock_t struct { Type int16 Whence int16 - _ [4]byte Start int64 Len int64 Pid int32 @@ -259,7 +255,6 @@ type RawSockaddrRFCOMM struct { type RawSockaddrCAN struct { Family uint16 - _ [2]byte Ifindex int32 Addr [8]byte } @@ -338,7 +333,6 @@ type PacketMreq struct { type Msghdr struct { Name *byte Namelen uint32 - _ [4]byte Iov *Iovec Iovlen uint64 Control *byte @@ -386,7 +380,6 @@ type TCPInfo struct { Probes uint8 Backoff uint8 Options uint8 - _ [2]byte Rto uint32 Ato uint32 Snd_mss uint32 @@ -656,7 +649,6 @@ type SockFilter struct { type SockFprog struct { Len uint16 - _ [6]byte Filter *SockFilter } @@ -714,7 +706,6 @@ type Sysinfo_t struct { Freeswap uint64 Procs uint16 Pad uint16 - _ [4]byte Totalhigh uint64 Freehigh uint64 Unit uint32 @@ -733,7 +724,6 @@ type Utsname struct { type Ustat_t struct { Tfree int32 - _ [4]byte Tinode uint64 Fname [6]int8 Fpack [6]int8 @@ -782,6 +772,26 @@ type Sigset_t struct { Val [16]uint64 } +type SignalfdSiginfo struct { + Signo uint32 + Errno int32 + Code int32 + Pid uint32 + Uid uint32 + Fd int32 + Tid uint32 + Band uint32 + Overrun uint32 + Trapno uint32 + Status int32 + Int int32 + Ptr uint64 + Utime uint64 + Stime uint64 + Addr uint64 + _ [48]uint8 +} + const RNDGETENTCNT = 0x80045200 const PERF_IOC_FLAG_GROUP = 0x1 @@ -806,11 +816,9 @@ type Winsize struct { type Taskstats struct { Version uint16 - _ [2]byte Ac_exitcode uint32 Ac_flag uint8 Ac_nice uint8 - _ [6]byte Cpu_count uint64 Cpu_delay_total uint64 Blkio_count uint64 @@ -828,7 +836,6 @@ type Taskstats struct { Ac_pid uint32 Ac_ppid uint32 Ac_btime uint32 - _ [4]byte Ac_etime uint64 Ac_utime uint64 Ac_stime uint64 @@ -852,6 +859,8 @@ type Taskstats struct { Cpu_scaled_run_real_total uint64 Freepages_count uint64 Freepages_delay_total uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 } const ( @@ -1200,7 +1209,6 @@ type HDGeometry struct { Heads uint8 Sectors uint8 Cylinders uint16 - _ [4]byte Start uint64 } @@ -1886,7 +1894,6 @@ type RTCTime struct { type RTCWkAlrm struct { Enabled uint8 Pending uint8 - _ [2]byte Time RTCTime } @@ -1904,7 +1911,6 @@ type BlkpgIoctlArg struct { Op int32 Flags int32 Datalen int32 - _ [4]byte Data *byte } diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go index eb7562da7..19dd4c9ae 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go @@ -98,7 +98,6 @@ type _Gid_t uint32 type Stat_t struct { Dev uint64 _ uint16 - _ [2]byte _ uint32 Mode uint32 Nlink uint32 @@ -106,7 +105,7 @@ type Stat_t struct { Gid uint32 Rdev uint64 _ uint16 - _ [6]byte + _ [4]byte Size int64 Blksize int32 _ [4]byte @@ -260,7 +259,6 @@ type RawSockaddrRFCOMM struct { type RawSockaddrCAN struct { Family uint16 - _ [2]byte Ifindex int32 Addr [8]byte } @@ -385,7 +383,6 @@ type TCPInfo struct { Probes uint8 Backoff uint8 Options uint8 - _ [2]byte Rto uint32 Ato uint32 Snd_mss uint32 @@ -655,7 +652,6 @@ type SockFilter struct { type SockFprog struct { Len uint16 - _ [2]byte Filter *SockFilter } @@ -752,6 +748,26 @@ type Sigset_t struct { Val [32]uint32 } +type SignalfdSiginfo struct { + Signo uint32 + Errno int32 + Code int32 + Pid uint32 + Uid uint32 + Fd int32 + Tid uint32 + Band uint32 + Overrun uint32 + Trapno uint32 + Status int32 + Int int32 + Ptr uint64 + Utime uint64 + Stime uint64 + Addr uint64 + _ [48]uint8 +} + const RNDGETENTCNT = 0x80045200 const PERF_IOC_FLAG_GROUP = 0x1 @@ -776,11 +792,10 @@ type Winsize struct { type Taskstats struct { Version uint16 - _ [2]byte Ac_exitcode uint32 Ac_flag uint8 Ac_nice uint8 - _ [6]byte + _ [4]byte Cpu_count uint64 Cpu_delay_total uint64 Blkio_count uint64 @@ -822,6 +837,8 @@ type Taskstats struct { Cpu_scaled_run_real_total uint64 Freepages_count uint64 Freepages_delay_total uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 } const ( @@ -1855,7 +1872,6 @@ type RTCTime struct { type RTCWkAlrm struct { Enabled uint8 Pending uint8 - _ [2]byte Time RTCTime } diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go index 3c4fb88d7..f64914abd 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go @@ -33,13 +33,11 @@ type Timeval struct { type Timex struct { Modes uint32 - _ [4]byte Offset int64 Freq int64 Maxerror int64 Esterror int64 Status int32 - _ [4]byte Constant int64 Precision int64 Tolerance int64 @@ -48,7 +46,6 @@ type Timex struct { Ppsfreq int64 Jitter int64 Shift int32 - _ [4]byte Stabil int64 Jitcnt int64 Calcnt int64 @@ -163,7 +160,6 @@ type Fsid struct { type Flock_t struct { Type int16 Whence int16 - _ [4]byte Start int64 Len int64 Pid int32 @@ -260,7 +256,6 @@ type RawSockaddrRFCOMM struct { type RawSockaddrCAN struct { Family uint16 - _ [2]byte Ifindex int32 Addr [8]byte } @@ -339,7 +334,6 @@ type PacketMreq struct { type Msghdr struct { Name *byte Namelen uint32 - _ [4]byte Iov *Iovec Iovlen uint64 Control *byte @@ -387,7 +381,6 @@ type TCPInfo struct { Probes uint8 Backoff uint8 Options uint8 - _ [2]byte Rto uint32 Ato uint32 Snd_mss uint32 @@ -657,7 +650,6 @@ type SockFilter struct { type SockFprog struct { Len uint16 - _ [6]byte Filter *SockFilter } @@ -692,7 +684,6 @@ type Sysinfo_t struct { Freeswap uint64 Procs uint16 Pad uint16 - _ [4]byte Totalhigh uint64 Freehigh uint64 Unit uint32 @@ -711,7 +702,6 @@ type Utsname struct { type Ustat_t struct { Tfree int32 - _ [4]byte Tinode uint64 Fname [6]int8 Fpack [6]int8 @@ -761,6 +751,26 @@ type Sigset_t struct { Val [16]uint64 } +type SignalfdSiginfo struct { + Signo uint32 + Errno int32 + Code int32 + Pid uint32 + Uid uint32 + Fd int32 + Tid uint32 + Band uint32 + Overrun uint32 + Trapno uint32 + Status int32 + Int int32 + Ptr uint64 + Utime uint64 + Stime uint64 + Addr uint64 + _ [48]uint8 +} + const RNDGETENTCNT = 0x80045200 const PERF_IOC_FLAG_GROUP = 0x1 @@ -785,11 +795,9 @@ type Winsize struct { type Taskstats struct { Version uint16 - _ [2]byte Ac_exitcode uint32 Ac_flag uint8 Ac_nice uint8 - _ [6]byte Cpu_count uint64 Cpu_delay_total uint64 Blkio_count uint64 @@ -807,7 +815,6 @@ type Taskstats struct { Ac_pid uint32 Ac_ppid uint32 Ac_btime uint32 - _ [4]byte Ac_etime uint64 Ac_utime uint64 Ac_stime uint64 @@ -831,6 +838,8 @@ type Taskstats struct { Cpu_scaled_run_real_total uint64 Freepages_count uint64 Freepages_delay_total uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 } const ( @@ -1179,7 +1188,6 @@ type HDGeometry struct { Heads uint8 Sectors uint8 Cylinders uint16 - _ [4]byte Start uint64 } @@ -1865,7 +1873,6 @@ type RTCTime struct { type RTCWkAlrm struct { Enabled uint8 Pending uint8 - _ [2]byte Time RTCTime } @@ -1883,7 +1890,6 @@ type BlkpgIoctlArg struct { Op int32 Flags int32 Datalen int32 - _ [4]byte Data *byte } diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go index 647e40a77..20a5922ed 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go @@ -258,7 +258,6 @@ type RawSockaddrRFCOMM struct { type RawSockaddrCAN struct { Family uint16 - _ [2]byte Ifindex int32 Addr [8]byte } @@ -383,7 +382,6 @@ type TCPInfo struct { Probes uint8 Backoff uint8 Options uint8 - _ [2]byte Rto uint32 Ato uint32 Snd_mss uint32 @@ -653,7 +651,6 @@ type SockFilter struct { type SockFprog struct { Len uint16 - _ [2]byte Filter *SockFilter } @@ -756,6 +753,26 @@ type Sigset_t struct { Val [32]uint32 } +type SignalfdSiginfo struct { + Signo uint32 + Errno int32 + Code int32 + Pid uint32 + Uid uint32 + Fd int32 + Tid uint32 + Band uint32 + Overrun uint32 + Trapno uint32 + Status int32 + Int int32 + Ptr uint64 + Utime uint64 + Stime uint64 + Addr uint64 + _ [48]uint8 +} + const RNDGETENTCNT = 0x40045200 const PERF_IOC_FLAG_GROUP = 0x1 @@ -780,11 +797,10 @@ type Winsize struct { type Taskstats struct { Version uint16 - _ [2]byte Ac_exitcode uint32 Ac_flag uint8 Ac_nice uint8 - _ [6]byte + _ [4]byte Cpu_count uint64 Cpu_delay_total uint64 Blkio_count uint64 @@ -826,6 +842,8 @@ type Taskstats struct { Cpu_scaled_run_real_total uint64 Freepages_count uint64 Freepages_delay_total uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 } const ( @@ -1860,7 +1878,6 @@ type RTCTime struct { type RTCWkAlrm struct { Enabled uint8 Pending uint8 - _ [2]byte Time RTCTime } diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go index e0159b01d..784b7b1f0 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go @@ -33,13 +33,11 @@ type Timeval struct { type Timex struct { Modes uint32 - _ [4]byte Offset int64 Freq int64 Maxerror int64 Esterror int64 Status int32 - _ [4]byte Constant int64 Precision int64 Tolerance int64 @@ -48,7 +46,6 @@ type Timex struct { Ppsfreq int64 Jitter int64 Shift int32 - _ [4]byte Stabil int64 Jitcnt int64 Calcnt int64 @@ -163,7 +160,6 @@ type Fsid struct { type Flock_t struct { Type int16 Whence int16 - _ [4]byte Start int64 Len int64 Pid int32 @@ -260,7 +256,6 @@ type RawSockaddrRFCOMM struct { type RawSockaddrCAN struct { Family uint16 - _ [2]byte Ifindex int32 Addr [8]byte } @@ -339,7 +334,6 @@ type PacketMreq struct { type Msghdr struct { Name *byte Namelen uint32 - _ [4]byte Iov *Iovec Iovlen uint64 Control *byte @@ -387,7 +381,6 @@ type TCPInfo struct { Probes uint8 Backoff uint8 Options uint8 - _ [2]byte Rto uint32 Ato uint32 Snd_mss uint32 @@ -657,7 +650,6 @@ type SockFilter struct { type SockFprog struct { Len uint16 - _ [6]byte Filter *SockFilter } @@ -695,7 +687,6 @@ type Sysinfo_t struct { Freeswap uint64 Procs uint16 Pad uint16 - _ [4]byte Totalhigh uint64 Freehigh uint64 Unit uint32 @@ -714,7 +705,6 @@ type Utsname struct { type Ustat_t struct { Tfree int32 - _ [4]byte Tinode uint64 Fname [6]int8 Fpack [6]int8 @@ -763,6 +753,26 @@ type Sigset_t struct { Val [16]uint64 } +type SignalfdSiginfo struct { + Signo uint32 + Errno int32 + Code int32 + Pid uint32 + Uid uint32 + Fd int32 + Tid uint32 + Band uint32 + Overrun uint32 + Trapno uint32 + Status int32 + Int int32 + Ptr uint64 + Utime uint64 + Stime uint64 + Addr uint64 + _ [48]uint8 +} + const RNDGETENTCNT = 0x40045200 const PERF_IOC_FLAG_GROUP = 0x1 @@ -787,11 +797,9 @@ type Winsize struct { type Taskstats struct { Version uint16 - _ [2]byte Ac_exitcode uint32 Ac_flag uint8 Ac_nice uint8 - _ [6]byte Cpu_count uint64 Cpu_delay_total uint64 Blkio_count uint64 @@ -809,7 +817,6 @@ type Taskstats struct { Ac_pid uint32 Ac_ppid uint32 Ac_btime uint32 - _ [4]byte Ac_etime uint64 Ac_utime uint64 Ac_stime uint64 @@ -833,6 +840,8 @@ type Taskstats struct { Cpu_scaled_run_real_total uint64 Freepages_count uint64 Freepages_delay_total uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 } const ( @@ -1181,7 +1190,6 @@ type HDGeometry struct { Heads uint8 Sectors uint8 Cylinders uint16 - _ [4]byte Start uint64 } @@ -1867,7 +1875,6 @@ type RTCTime struct { type RTCWkAlrm struct { Enabled uint8 Pending uint8 - _ [2]byte Time RTCTime } @@ -1885,7 +1892,6 @@ type BlkpgIoctlArg struct { Op int32 Flags int32 Datalen int32 - _ [4]byte Data *byte } diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go index c1a024dfd..fdbad38a5 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go @@ -33,13 +33,11 @@ type Timeval struct { type Timex struct { Modes uint32 - _ [4]byte Offset int64 Freq int64 Maxerror int64 Esterror int64 Status int32 - _ [4]byte Constant int64 Precision int64 Tolerance int64 @@ -48,7 +46,6 @@ type Timex struct { Ppsfreq int64 Jitter int64 Shift int32 - _ [4]byte Stabil int64 Jitcnt int64 Calcnt int64 @@ -163,7 +160,6 @@ type Fsid struct { type Flock_t struct { Type int16 Whence int16 - _ [4]byte Start int64 Len int64 Pid int32 @@ -260,7 +256,6 @@ type RawSockaddrRFCOMM struct { type RawSockaddrCAN struct { Family uint16 - _ [2]byte Ifindex int32 Addr [8]byte } @@ -339,7 +334,6 @@ type PacketMreq struct { type Msghdr struct { Name *byte Namelen uint32 - _ [4]byte Iov *Iovec Iovlen uint64 Control *byte @@ -387,7 +381,6 @@ type TCPInfo struct { Probes uint8 Backoff uint8 Options uint8 - _ [2]byte Rto uint32 Ato uint32 Snd_mss uint32 @@ -657,7 +650,6 @@ type SockFilter struct { type SockFprog struct { Len uint16 - _ [6]byte Filter *SockFilter } @@ -695,7 +687,6 @@ type Sysinfo_t struct { Freeswap uint64 Procs uint16 Pad uint16 - _ [4]byte Totalhigh uint64 Freehigh uint64 Unit uint32 @@ -714,7 +705,6 @@ type Utsname struct { type Ustat_t struct { Tfree int32 - _ [4]byte Tinode uint64 Fname [6]int8 Fpack [6]int8 @@ -763,6 +753,26 @@ type Sigset_t struct { Val [16]uint64 } +type SignalfdSiginfo struct { + Signo uint32 + Errno int32 + Code int32 + Pid uint32 + Uid uint32 + Fd int32 + Tid uint32 + Band uint32 + Overrun uint32 + Trapno uint32 + Status int32 + Int int32 + Ptr uint64 + Utime uint64 + Stime uint64 + Addr uint64 + _ [48]uint8 +} + const RNDGETENTCNT = 0x40045200 const PERF_IOC_FLAG_GROUP = 0x1 @@ -787,11 +797,9 @@ type Winsize struct { type Taskstats struct { Version uint16 - _ [2]byte Ac_exitcode uint32 Ac_flag uint8 Ac_nice uint8 - _ [6]byte Cpu_count uint64 Cpu_delay_total uint64 Blkio_count uint64 @@ -809,7 +817,6 @@ type Taskstats struct { Ac_pid uint32 Ac_ppid uint32 Ac_btime uint32 - _ [4]byte Ac_etime uint64 Ac_utime uint64 Ac_stime uint64 @@ -833,6 +840,8 @@ type Taskstats struct { Cpu_scaled_run_real_total uint64 Freepages_count uint64 Freepages_delay_total uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 } const ( @@ -1181,7 +1190,6 @@ type HDGeometry struct { Heads uint8 Sectors uint8 Cylinders uint16 - _ [4]byte Start uint64 } @@ -1867,7 +1875,6 @@ type RTCTime struct { type RTCWkAlrm struct { Enabled uint8 Pending uint8 - _ [2]byte Time RTCTime } @@ -1885,7 +1892,6 @@ type BlkpgIoctlArg struct { Op int32 Flags int32 Datalen int32 - _ [4]byte Data *byte } diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go index 7e525eb7f..639520b72 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go @@ -258,7 +258,6 @@ type RawSockaddrRFCOMM struct { type RawSockaddrCAN struct { Family uint16 - _ [2]byte Ifindex int32 Addr [8]byte } @@ -383,7 +382,6 @@ type TCPInfo struct { Probes uint8 Backoff uint8 Options uint8 - _ [2]byte Rto uint32 Ato uint32 Snd_mss uint32 @@ -653,7 +651,6 @@ type SockFilter struct { type SockFprog struct { Len uint16 - _ [2]byte Filter *SockFilter } @@ -756,6 +753,26 @@ type Sigset_t struct { Val [32]uint32 } +type SignalfdSiginfo struct { + Signo uint32 + Errno int32 + Code int32 + Pid uint32 + Uid uint32 + Fd int32 + Tid uint32 + Band uint32 + Overrun uint32 + Trapno uint32 + Status int32 + Int int32 + Ptr uint64 + Utime uint64 + Stime uint64 + Addr uint64 + _ [48]uint8 +} + const RNDGETENTCNT = 0x40045200 const PERF_IOC_FLAG_GROUP = 0x1 @@ -780,11 +797,10 @@ type Winsize struct { type Taskstats struct { Version uint16 - _ [2]byte Ac_exitcode uint32 Ac_flag uint8 Ac_nice uint8 - _ [6]byte + _ [4]byte Cpu_count uint64 Cpu_delay_total uint64 Blkio_count uint64 @@ -826,6 +842,8 @@ type Taskstats struct { Cpu_scaled_run_real_total uint64 Freepages_count uint64 Freepages_delay_total uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 } const ( @@ -1860,7 +1878,6 @@ type RTCTime struct { type RTCWkAlrm struct { Enabled uint8 Pending uint8 - _ [2]byte Time RTCTime } diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go index 85ae2954d..19fdbf9aa 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go @@ -33,13 +33,11 @@ type Timeval struct { type Timex struct { Modes uint32 - _ [4]byte Offset int64 Freq int64 Maxerror int64 Esterror int64 Status int32 - _ [4]byte Constant int64 Precision int64 Tolerance int64 @@ -48,7 +46,6 @@ type Timex struct { Ppsfreq int64 Jitter int64 Shift int32 - _ [4]byte Stabil int64 Jitcnt int64 Calcnt int64 @@ -164,7 +161,6 @@ type Fsid struct { type Flock_t struct { Type int16 Whence int16 - _ [4]byte Start int64 Len int64 Pid int32 @@ -261,7 +257,6 @@ type RawSockaddrRFCOMM struct { type RawSockaddrCAN struct { Family uint16 - _ [2]byte Ifindex int32 Addr [8]byte } @@ -340,7 +335,6 @@ type PacketMreq struct { type Msghdr struct { Name *byte Namelen uint32 - _ [4]byte Iov *Iovec Iovlen uint64 Control *byte @@ -388,7 +382,6 @@ type TCPInfo struct { Probes uint8 Backoff uint8 Options uint8 - _ [2]byte Rto uint32 Ato uint32 Snd_mss uint32 @@ -658,7 +651,6 @@ type SockFilter struct { type SockFprog struct { Len uint16 - _ [6]byte Filter *SockFilter } @@ -702,7 +694,6 @@ type Sysinfo_t struct { Freeswap uint64 Procs uint16 Pad uint16 - _ [4]byte Totalhigh uint64 Freehigh uint64 Unit uint32 @@ -721,7 +712,6 @@ type Utsname struct { type Ustat_t struct { Tfree int32 - _ [4]byte Tinode uint64 Fname [6]uint8 Fpack [6]uint8 @@ -771,6 +761,26 @@ type Sigset_t struct { Val [16]uint64 } +type SignalfdSiginfo struct { + Signo uint32 + Errno int32 + Code int32 + Pid uint32 + Uid uint32 + Fd int32 + Tid uint32 + Band uint32 + Overrun uint32 + Trapno uint32 + Status int32 + Int int32 + Ptr uint64 + Utime uint64 + Stime uint64 + Addr uint64 + _ [48]uint8 +} + const RNDGETENTCNT = 0x40045200 const PERF_IOC_FLAG_GROUP = 0x1 @@ -795,11 +805,9 @@ type Winsize struct { type Taskstats struct { Version uint16 - _ [2]byte Ac_exitcode uint32 Ac_flag uint8 Ac_nice uint8 - _ [6]byte Cpu_count uint64 Cpu_delay_total uint64 Blkio_count uint64 @@ -817,7 +825,6 @@ type Taskstats struct { Ac_pid uint32 Ac_ppid uint32 Ac_btime uint32 - _ [4]byte Ac_etime uint64 Ac_utime uint64 Ac_stime uint64 @@ -841,6 +848,8 @@ type Taskstats struct { Cpu_scaled_run_real_total uint64 Freepages_count uint64 Freepages_delay_total uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 } const ( @@ -1189,7 +1198,6 @@ type HDGeometry struct { Heads uint8 Sectors uint8 Cylinders uint16 - _ [4]byte Start uint64 } @@ -1875,7 +1883,6 @@ type RTCTime struct { type RTCWkAlrm struct { Enabled uint8 Pending uint8 - _ [2]byte Time RTCTime } @@ -1893,7 +1900,6 @@ type BlkpgIoctlArg struct { Op int32 Flags int32 Datalen int32 - _ [4]byte Data *byte } diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go index d0c930a13..c54d35c72 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go @@ -33,13 +33,11 @@ type Timeval struct { type Timex struct { Modes uint32 - _ [4]byte Offset int64 Freq int64 Maxerror int64 Esterror int64 Status int32 - _ [4]byte Constant int64 Precision int64 Tolerance int64 @@ -48,7 +46,6 @@ type Timex struct { Ppsfreq int64 Jitter int64 Shift int32 - _ [4]byte Stabil int64 Jitcnt int64 Calcnt int64 @@ -164,7 +161,6 @@ type Fsid struct { type Flock_t struct { Type int16 Whence int16 - _ [4]byte Start int64 Len int64 Pid int32 @@ -261,7 +257,6 @@ type RawSockaddrRFCOMM struct { type RawSockaddrCAN struct { Family uint16 - _ [2]byte Ifindex int32 Addr [8]byte } @@ -340,7 +335,6 @@ type PacketMreq struct { type Msghdr struct { Name *byte Namelen uint32 - _ [4]byte Iov *Iovec Iovlen uint64 Control *byte @@ -388,7 +382,6 @@ type TCPInfo struct { Probes uint8 Backoff uint8 Options uint8 - _ [2]byte Rto uint32 Ato uint32 Snd_mss uint32 @@ -658,7 +651,6 @@ type SockFilter struct { type SockFprog struct { Len uint16 - _ [6]byte Filter *SockFilter } @@ -702,7 +694,6 @@ type Sysinfo_t struct { Freeswap uint64 Procs uint16 Pad uint16 - _ [4]byte Totalhigh uint64 Freehigh uint64 Unit uint32 @@ -721,7 +712,6 @@ type Utsname struct { type Ustat_t struct { Tfree int32 - _ [4]byte Tinode uint64 Fname [6]uint8 Fpack [6]uint8 @@ -771,6 +761,26 @@ type Sigset_t struct { Val [16]uint64 } +type SignalfdSiginfo struct { + Signo uint32 + Errno int32 + Code int32 + Pid uint32 + Uid uint32 + Fd int32 + Tid uint32 + Band uint32 + Overrun uint32 + Trapno uint32 + Status int32 + Int int32 + Ptr uint64 + Utime uint64 + Stime uint64 + Addr uint64 + _ [48]uint8 +} + const RNDGETENTCNT = 0x40045200 const PERF_IOC_FLAG_GROUP = 0x1 @@ -795,11 +805,9 @@ type Winsize struct { type Taskstats struct { Version uint16 - _ [2]byte Ac_exitcode uint32 Ac_flag uint8 Ac_nice uint8 - _ [6]byte Cpu_count uint64 Cpu_delay_total uint64 Blkio_count uint64 @@ -817,7 +825,6 @@ type Taskstats struct { Ac_pid uint32 Ac_ppid uint32 Ac_btime uint32 - _ [4]byte Ac_etime uint64 Ac_utime uint64 Ac_stime uint64 @@ -841,6 +848,8 @@ type Taskstats struct { Cpu_scaled_run_real_total uint64 Freepages_count uint64 Freepages_delay_total uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 } const ( @@ -1189,7 +1198,6 @@ type HDGeometry struct { Heads uint8 Sectors uint8 Cylinders uint16 - _ [4]byte Start uint64 } @@ -1875,7 +1883,6 @@ type RTCTime struct { type RTCWkAlrm struct { Enabled uint8 Pending uint8 - _ [2]byte Time RTCTime } @@ -1893,7 +1900,6 @@ type BlkpgIoctlArg struct { Op int32 Flags int32 Datalen int32 - _ [4]byte Data *byte } diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go index c1a20bcd3..6009e5dd8 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go @@ -33,13 +33,11 @@ type Timeval struct { type Timex struct { Modes uint32 - _ [4]byte Offset int64 Freq int64 Maxerror int64 Esterror int64 Status int32 - _ [4]byte Constant int64 Precision int64 Tolerance int64 @@ -48,7 +46,6 @@ type Timex struct { Ppsfreq int64 Jitter int64 Shift int32 - _ [4]byte Stabil int64 Jitcnt int64 Calcnt int64 @@ -163,7 +160,6 @@ type Fsid struct { type Flock_t struct { Type int16 Whence int16 - _ [4]byte Start int64 Len int64 Pid int32 @@ -260,7 +256,6 @@ type RawSockaddrRFCOMM struct { type RawSockaddrCAN struct { Family uint16 - _ [2]byte Ifindex int32 Addr [8]byte } @@ -339,7 +334,6 @@ type PacketMreq struct { type Msghdr struct { Name *byte Namelen uint32 - _ [4]byte Iov *Iovec Iovlen uint64 Control *byte @@ -387,7 +381,6 @@ type TCPInfo struct { Probes uint8 Backoff uint8 Options uint8 - _ [2]byte Rto uint32 Ato uint32 Snd_mss uint32 @@ -657,7 +650,6 @@ type SockFilter struct { type SockFprog struct { Len uint16 - _ [6]byte Filter *SockFilter } @@ -720,7 +712,6 @@ type Sysinfo_t struct { Freeswap uint64 Procs uint16 Pad uint16 - _ [4]byte Totalhigh uint64 Freehigh uint64 Unit uint32 @@ -739,7 +730,6 @@ type Utsname struct { type Ustat_t struct { Tfree int32 - _ [4]byte Tinode uint64 Fname [6]uint8 Fpack [6]uint8 @@ -788,6 +778,26 @@ type Sigset_t struct { Val [16]uint64 } +type SignalfdSiginfo struct { + Signo uint32 + Errno int32 + Code int32 + Pid uint32 + Uid uint32 + Fd int32 + Tid uint32 + Band uint32 + Overrun uint32 + Trapno uint32 + Status int32 + Int int32 + Ptr uint64 + Utime uint64 + Stime uint64 + Addr uint64 + _ [48]uint8 +} + const RNDGETENTCNT = 0x80045200 const PERF_IOC_FLAG_GROUP = 0x1 @@ -812,11 +822,9 @@ type Winsize struct { type Taskstats struct { Version uint16 - _ [2]byte Ac_exitcode uint32 Ac_flag uint8 Ac_nice uint8 - _ [6]byte Cpu_count uint64 Cpu_delay_total uint64 Blkio_count uint64 @@ -834,7 +842,6 @@ type Taskstats struct { Ac_pid uint32 Ac_ppid uint32 Ac_btime uint32 - _ [4]byte Ac_etime uint64 Ac_utime uint64 Ac_stime uint64 @@ -858,6 +865,8 @@ type Taskstats struct { Cpu_scaled_run_real_total uint64 Freepages_count uint64 Freepages_delay_total uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 } const ( @@ -1206,7 +1215,6 @@ type HDGeometry struct { Heads uint8 Sectors uint8 Cylinders uint16 - _ [4]byte Start uint64 } @@ -1892,7 +1900,6 @@ type RTCTime struct { type RTCWkAlrm struct { Enabled uint8 Pending uint8 - _ [2]byte Time RTCTime } @@ -1910,7 +1917,6 @@ type BlkpgIoctlArg struct { Op int32 Flags int32 Datalen int32 - _ [4]byte Data *byte } diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go b/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go index 3c26ea82b..2ef0d13ba 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go @@ -33,13 +33,11 @@ type Timeval struct { type Timex struct { Modes uint32 - _ [4]byte Offset int64 Freq int64 Maxerror int64 Esterror int64 Status int32 - _ [4]byte Constant int64 Precision int64 Tolerance int64 @@ -48,7 +46,6 @@ type Timex struct { Ppsfreq int64 Jitter int64 Shift int32 - _ [4]byte Stabil int64 Jitcnt int64 Calcnt int64 @@ -162,7 +159,6 @@ type Fsid struct { type Flock_t struct { Type int16 Whence int16 - _ [4]byte Start int64 Len int64 Pid int32 @@ -259,7 +255,6 @@ type RawSockaddrRFCOMM struct { type RawSockaddrCAN struct { Family uint16 - _ [2]byte Ifindex int32 Addr [8]byte } @@ -338,7 +333,6 @@ type PacketMreq struct { type Msghdr struct { Name *byte Namelen uint32 - _ [4]byte Iov *Iovec Iovlen uint64 Control *byte @@ -386,7 +380,6 @@ type TCPInfo struct { Probes uint8 Backoff uint8 Options uint8 - _ [2]byte Rto uint32 Ato uint32 Snd_mss uint32 @@ -656,7 +649,6 @@ type SockFilter struct { type SockFprog struct { Len uint16 - _ [6]byte Filter *SockFilter } @@ -686,18 +678,15 @@ type PtracePsw struct { type PtraceFpregs struct { Fpc uint32 - _ [4]byte Fprs [16]float64 } type PtracePer struct { _ [0]uint64 - _ [24]byte - _ [8]byte + _ [32]byte Starting_addr uint64 Ending_addr uint64 Perc_atmid uint16 - _ [6]byte Address uint64 Access_id uint8 _ [7]byte @@ -718,7 +707,6 @@ type Sysinfo_t struct { Freeswap uint64 Procs uint16 Pad uint16 - _ [4]byte Totalhigh uint64 Freehigh uint64 Unit uint32 @@ -737,7 +725,6 @@ type Utsname struct { type Ustat_t struct { Tfree int32 - _ [4]byte Tinode uint64 Fname [6]int8 Fpack [6]int8 @@ -787,6 +774,26 @@ type Sigset_t struct { Val [16]uint64 } +type SignalfdSiginfo struct { + Signo uint32 + Errno int32 + Code int32 + Pid uint32 + Uid uint32 + Fd int32 + Tid uint32 + Band uint32 + Overrun uint32 + Trapno uint32 + Status int32 + Int int32 + Ptr uint64 + Utime uint64 + Stime uint64 + Addr uint64 + _ [48]uint8 +} + const RNDGETENTCNT = 0x80045200 const PERF_IOC_FLAG_GROUP = 0x1 @@ -811,11 +818,9 @@ type Winsize struct { type Taskstats struct { Version uint16 - _ [2]byte Ac_exitcode uint32 Ac_flag uint8 Ac_nice uint8 - _ [6]byte Cpu_count uint64 Cpu_delay_total uint64 Blkio_count uint64 @@ -833,7 +838,6 @@ type Taskstats struct { Ac_pid uint32 Ac_ppid uint32 Ac_btime uint32 - _ [4]byte Ac_etime uint64 Ac_utime uint64 Ac_stime uint64 @@ -857,6 +861,8 @@ type Taskstats struct { Cpu_scaled_run_real_total uint64 Freepages_count uint64 Freepages_delay_total uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 } const ( @@ -1205,7 +1211,6 @@ type HDGeometry struct { Heads uint8 Sectors uint8 Cylinders uint16 - _ [4]byte Start uint64 } @@ -1892,7 +1897,6 @@ type RTCTime struct { type RTCWkAlrm struct { Enabled uint8 Pending uint8 - _ [2]byte Time RTCTime } @@ -1910,7 +1914,6 @@ type BlkpgIoctlArg struct { Op int32 Flags int32 Datalen int32 - _ [4]byte Data *byte } diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go index 1fc7f7dea..2c250a0fc 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go @@ -1,6 +1,7 @@ +// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + // +build sparc64,linux -// Created by cgo -godefs - DO NOT EDIT -// cgo -godefs types_linux.go | go run mkpost.go package unix @@ -26,20 +27,18 @@ type Timespec struct { } type Timeval struct { - Sec int64 - Usec int32 - Pad_cgo_0 [4]byte + Sec int64 + Usec int32 + _ [4]byte } type Timex struct { Modes uint32 - Pad_cgo_0 [4]byte Offset int64 Freq int64 Maxerror int64 Esterror int64 Status int32 - Pad_cgo_1 [4]byte Constant int64 Precision int64 Tolerance int64 @@ -48,14 +47,13 @@ type Timex struct { Ppsfreq int64 Jitter int64 Shift int32 - Pad_cgo_2 [4]byte Stabil int64 Jitcnt int64 Calcnt int64 Errcnt int64 Stbcnt int64 Tai int32 - Pad_cgo_3 [44]byte + _ [44]byte } type Time_t int64 @@ -99,64 +97,96 @@ type Rlimit struct { type _Gid_t uint32 type Stat_t struct { - Dev uint64 - X__pad1 uint16 - Pad_cgo_0 [6]byte - Ino uint64 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev uint64 - X__pad2 uint16 - Pad_cgo_1 [6]byte - Size int64 - Blksize int64 - Blocks int64 - Atim Timespec - Mtim Timespec - Ctim Timespec - X__glibc_reserved4 uint64 - X__glibc_reserved5 uint64 + Dev uint64 + _ uint16 + Ino uint64 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint64 + _ uint16 + Size int64 + Blksize int64 + Blocks int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + _ uint64 + _ uint64 } -type Statfs_t struct { - Type int64 - Bsize int64 - Blocks uint64 - Bfree uint64 - Bavail uint64 - Files uint64 - Ffree uint64 - Fsid Fsid - Namelen int64 - Frsize int64 - Flags int64 - Spare [4]int64 +type StatxTimestamp struct { + Sec int64 + Nsec uint32 + _ int32 +} + +type Statx_t struct { + Mask uint32 + Blksize uint32 + Attributes uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + Mode uint16 + _ [1]uint16 + Ino uint64 + Size uint64 + Blocks uint64 + Attributes_mask uint64 + Atime StatxTimestamp + Btime StatxTimestamp + Ctime StatxTimestamp + Mtime StatxTimestamp + Rdev_major uint32 + Rdev_minor uint32 + Dev_major uint32 + Dev_minor uint32 + _ [14]uint64 } type Dirent struct { - Ino uint64 - Off int64 - Reclen uint16 - Type uint8 - Name [256]int8 - Pad_cgo_0 [5]byte + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]int8 + _ [5]byte } type Fsid struct { - X__val [2]int32 + Val [2]int32 } type Flock_t struct { - Type int16 - Whence int16 - Pad_cgo_0 [4]byte - Start int64 - Len int64 - Pid int32 - X__glibc_reserved int16 - Pad_cgo_1 [2]byte + Type int16 + Whence int16 + Start int64 + Len int64 + Pid int32 + _ int16 + _ [2]byte +} + +type FscryptPolicy struct { + Version uint8 + Contents_encryption_mode uint8 + Filenames_encryption_mode uint8 + Flags uint8 + Master_key_descriptor [8]uint8 +} + +type FscryptKey struct { + Mode uint32 + Raw [64]uint8 + Size uint32 +} + +type KeyctlDHParams struct { + Private int32 + Prime int32 + Base int32 } const ( @@ -211,11 +241,26 @@ type RawSockaddrHCI struct { Channel uint16 } +type RawSockaddrL2 struct { + Family uint16 + Psm uint16 + Bdaddr [6]uint8 + Cid uint16 + Bdaddr_type uint8 + _ [1]byte +} + +type RawSockaddrRFCOMM struct { + Family uint16 + Bdaddr [6]uint8 + Channel uint8 + _ [1]byte +} + type RawSockaddrCAN struct { - Family uint16 - Pad_cgo_0 [2]byte - Ifindex int32 - Addr [8]byte + Family uint16 + Ifindex int32 + Addr [8]byte } type RawSockaddrALG struct { @@ -234,6 +279,16 @@ type RawSockaddrVM struct { Zero [4]uint8 } +type RawSockaddrXDP struct { + Family uint16 + Flags uint16 + Ifindex uint32 + Queue_id uint32 + Shared_umem_fd uint32 +} + +type RawSockaddrPPPoX [0x1e]byte + type RawSockaddr struct { Family uint16 Data [14]int8 @@ -272,16 +327,22 @@ type IPv6Mreq struct { Interface uint32 } +type PacketMreq struct { + Ifindex int32 + Type uint16 + Alen uint16 + Address [8]uint8 +} + type Msghdr struct { Name *byte Namelen uint32 - Pad_cgo_0 [4]byte Iov *Iovec Iovlen uint64 Control *byte Controllen uint64 Flags int32 - Pad_cgo_1 [4]byte + _ [4]byte } type Cmsghdr struct { @@ -323,7 +384,6 @@ type TCPInfo struct { Probes uint8 Backoff uint8 Options uint8 - Pad_cgo_0 [2]byte Rto uint32 Ato uint32 Snd_mss uint32 @@ -358,13 +418,19 @@ const ( SizeofSockaddrLinklayer = 0x14 SizeofSockaddrNetlink = 0xc SizeofSockaddrHCI = 0x6 + SizeofSockaddrL2 = 0xe + SizeofSockaddrRFCOMM = 0xa SizeofSockaddrCAN = 0x10 SizeofSockaddrALG = 0x58 SizeofSockaddrVM = 0x10 + SizeofSockaddrXDP = 0x10 + SizeofSockaddrPPPoX = 0x1e SizeofLinger = 0x8 + SizeofIovec = 0x10 SizeofIPMreq = 0x8 SizeofIPMreqn = 0xc SizeofIPv6Mreq = 0x14 + SizeofPacketMreq = 0x10 SizeofMsghdr = 0x38 SizeofCmsghdr = 0x10 SizeofInet4Pktinfo = 0xc @@ -388,6 +454,7 @@ const ( IFLA_ADDRESS = 0x1 IFLA_BROADCAST = 0x2 IFLA_IFNAME = 0x3 + IFLA_INFO_KIND = 0x1 IFLA_MTU = 0x4 IFLA_LINK = 0x5 IFLA_QDISC = 0x6 @@ -431,7 +498,7 @@ const ( IFLA_EVENT = 0x2c IFLA_NEW_NETNSID = 0x2d IFLA_IF_NETNSID = 0x2e - IFLA_MAX = 0x2e + IFLA_MAX = 0x33 RT_SCOPE_UNIVERSE = 0x0 RT_SCOPE_SITE = 0xc8 RT_SCOPE_LINK = 0xfd @@ -456,6 +523,20 @@ const ( RTA_FLOW = 0xb RTA_CACHEINFO = 0xc RTA_TABLE = 0xf + RTA_MARK = 0x10 + RTA_MFC_STATS = 0x11 + RTA_VIA = 0x12 + RTA_NEWDST = 0x13 + RTA_PREF = 0x14 + RTA_ENCAP_TYPE = 0x15 + RTA_ENCAP = 0x16 + RTA_EXPIRES = 0x17 + RTA_PAD = 0x18 + RTA_UID = 0x19 + RTA_TTL_PROPAGATE = 0x1a + RTA_IP_PROTO = 0x1b + RTA_SPORT = 0x1c + RTA_DPORT = 0x1d RTN_UNSPEC = 0x0 RTN_UNICAST = 0x1 RTN_LOCAL = 0x2 @@ -523,12 +604,12 @@ type RtAttr struct { } type IfInfomsg struct { - Family uint8 - X__ifi_pad uint8 - Type uint16 - Index int32 - Flags uint32 - Change uint32 + Family uint8 + _ uint8 + Type uint16 + Index int32 + Flags uint32 + Change uint32 } type IfAddrmsg struct { @@ -571,9 +652,8 @@ type SockFilter struct { } type SockFprog struct { - Len uint16 - Pad_cgo_0 [6]byte - Filter *SockFilter + Len uint16 + Filter *SockFilter } type InotifyEvent struct { @@ -594,15 +674,6 @@ type PtraceRegs struct { Magic uint32 } -type ptracePsw struct { -} - -type ptraceFpregs struct { -} - -type ptracePer struct { -} - type FdSet struct { Bits [16]int64 } @@ -618,12 +689,11 @@ type Sysinfo_t struct { Freeswap uint64 Procs uint16 Pad uint16 - Pad_cgo_0 [4]byte Totalhigh uint64 Freehigh uint64 Unit uint32 - X_f [0]int8 - Pad_cgo_1 [4]byte + _ [0]int8 + _ [4]byte } type Utsname struct { @@ -636,26 +706,34 @@ type Utsname struct { } type Ustat_t struct { - Tfree int32 - Pad_cgo_0 [4]byte - Tinode uint64 - Fname [6]int8 - Fpack [6]int8 - Pad_cgo_1 [4]byte + Tfree int32 + Tinode uint64 + Fname [6]int8 + Fpack [6]int8 + _ [4]byte } type EpollEvent struct { - Events uint32 - X_padFd int32 - Fd int32 - Pad int32 + Events uint32 + _ int32 + Fd int32 + Pad int32 } const ( - AT_FDCWD = -0x64 - AT_REMOVEDIR = 0x200 + AT_EMPTY_PATH = 0x1000 + AT_FDCWD = -0x64 + AT_NO_AUTOMOUNT = 0x800 + AT_REMOVEDIR = 0x200 + + AT_STATX_SYNC_AS_STAT = 0x0 + AT_STATX_FORCE_SYNC = 0x2000 + AT_STATX_DONT_SYNC = 0x4000 + AT_SYMLINK_FOLLOW = 0x400 AT_SYMLINK_NOFOLLOW = 0x100 + + AT_EACCESS = 0x200 ) type PollFd struct { @@ -675,9 +753,33 @@ const ( ) type Sigset_t struct { - X__val [16]uint64 + Val [16]uint64 } +type SignalfdSiginfo struct { + Signo uint32 + Errno int32 + Code int32 + Pid uint32 + Uid uint32 + Fd int32 + Tid uint32 + Band uint32 + Overrun uint32 + Trapno uint32 + Status int32 + Int int32 + Ptr uint64 + Utime uint64 + Stime uint64 + Addr uint64 + _ [48]uint8 +} + +const RNDGETENTCNT = 0x40045200 + +const PERF_IOC_FLAG_GROUP = 0x1 + type Termios struct { Iflag uint32 Oflag uint32 @@ -688,3 +790,1214 @@ type Termios struct { Ispeed uint32 Ospeed uint32 } + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +type Taskstats struct { + Version uint16 + Ac_exitcode uint32 + Ac_flag uint8 + Ac_nice uint8 + Cpu_count uint64 + Cpu_delay_total uint64 + Blkio_count uint64 + Blkio_delay_total uint64 + Swapin_count uint64 + Swapin_delay_total uint64 + Cpu_run_real_total uint64 + Cpu_run_virtual_total uint64 + Ac_comm [32]int8 + Ac_sched uint8 + Ac_pad [3]uint8 + _ [4]byte + Ac_uid uint32 + Ac_gid uint32 + Ac_pid uint32 + Ac_ppid uint32 + Ac_btime uint32 + Ac_etime uint64 + Ac_utime uint64 + Ac_stime uint64 + Ac_minflt uint64 + Ac_majflt uint64 + Coremem uint64 + Virtmem uint64 + Hiwater_rss uint64 + Hiwater_vm uint64 + Read_char uint64 + Write_char uint64 + Read_syscalls uint64 + Write_syscalls uint64 + Read_bytes uint64 + Write_bytes uint64 + Cancelled_write_bytes uint64 + Nvcsw uint64 + Nivcsw uint64 + Ac_utimescaled uint64 + Ac_stimescaled uint64 + Cpu_scaled_run_real_total uint64 + Freepages_count uint64 + Freepages_delay_total uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 +} + +const ( + TASKSTATS_CMD_UNSPEC = 0x0 + TASKSTATS_CMD_GET = 0x1 + TASKSTATS_CMD_NEW = 0x2 + TASKSTATS_TYPE_UNSPEC = 0x0 + TASKSTATS_TYPE_PID = 0x1 + TASKSTATS_TYPE_TGID = 0x2 + TASKSTATS_TYPE_STATS = 0x3 + TASKSTATS_TYPE_AGGR_PID = 0x4 + TASKSTATS_TYPE_AGGR_TGID = 0x5 + TASKSTATS_TYPE_NULL = 0x6 + TASKSTATS_CMD_ATTR_UNSPEC = 0x0 + TASKSTATS_CMD_ATTR_PID = 0x1 + TASKSTATS_CMD_ATTR_TGID = 0x2 + TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3 + TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4 +) + +type CGroupStats struct { + Sleeping uint64 + Running uint64 + Stopped uint64 + Uninterruptible uint64 + Io_wait uint64 +} + +const ( + CGROUPSTATS_CMD_UNSPEC = 0x3 + CGROUPSTATS_CMD_GET = 0x4 + CGROUPSTATS_CMD_NEW = 0x5 + CGROUPSTATS_TYPE_UNSPEC = 0x0 + CGROUPSTATS_TYPE_CGROUP_STATS = 0x1 + CGROUPSTATS_CMD_ATTR_UNSPEC = 0x0 + CGROUPSTATS_CMD_ATTR_FD = 0x1 +) + +type Genlmsghdr struct { + Cmd uint8 + Version uint8 + Reserved uint16 +} + +const ( + CTRL_CMD_UNSPEC = 0x0 + CTRL_CMD_NEWFAMILY = 0x1 + CTRL_CMD_DELFAMILY = 0x2 + CTRL_CMD_GETFAMILY = 0x3 + CTRL_CMD_NEWOPS = 0x4 + CTRL_CMD_DELOPS = 0x5 + CTRL_CMD_GETOPS = 0x6 + CTRL_CMD_NEWMCAST_GRP = 0x7 + CTRL_CMD_DELMCAST_GRP = 0x8 + CTRL_CMD_GETMCAST_GRP = 0x9 + CTRL_ATTR_UNSPEC = 0x0 + CTRL_ATTR_FAMILY_ID = 0x1 + CTRL_ATTR_FAMILY_NAME = 0x2 + CTRL_ATTR_VERSION = 0x3 + CTRL_ATTR_HDRSIZE = 0x4 + CTRL_ATTR_MAXATTR = 0x5 + CTRL_ATTR_OPS = 0x6 + CTRL_ATTR_MCAST_GROUPS = 0x7 + CTRL_ATTR_OP_UNSPEC = 0x0 + CTRL_ATTR_OP_ID = 0x1 + CTRL_ATTR_OP_FLAGS = 0x2 + CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0 + CTRL_ATTR_MCAST_GRP_NAME = 0x1 + CTRL_ATTR_MCAST_GRP_ID = 0x2 +) + +type cpuMask uint64 + +const ( + _CPU_SETSIZE = 0x400 + _NCPUBITS = 0x40 +) + +const ( + BDADDR_BREDR = 0x0 + BDADDR_LE_PUBLIC = 0x1 + BDADDR_LE_RANDOM = 0x2 +) + +type PerfEventAttr struct { + Type uint32 + Size uint32 + Config uint64 + Sample uint64 + Sample_type uint64 + Read_format uint64 + Bits uint64 + Wakeup uint32 + Bp_type uint32 + Ext1 uint64 + Ext2 uint64 + Branch_sample_type uint64 + Sample_regs_user uint64 + Sample_stack_user uint32 + Clockid int32 + Sample_regs_intr uint64 + Aux_watermark uint32 + _ uint32 +} + +type PerfEventMmapPage struct { + Version uint32 + Compat_version uint32 + Lock uint32 + Index uint32 + Offset int64 + Time_enabled uint64 + Time_running uint64 + Capabilities uint64 + Pmc_width uint16 + Time_shift uint16 + Time_mult uint32 + Time_offset uint64 + Time_zero uint64 + Size uint32 + _ [948]uint8 + Data_head uint64 + Data_tail uint64 + Data_offset uint64 + Data_size uint64 + Aux_head uint64 + Aux_tail uint64 + Aux_offset uint64 + Aux_size uint64 +} + +const ( + PerfBitDisabled uint64 = CBitFieldMaskBit0 + PerfBitInherit = CBitFieldMaskBit1 + PerfBitPinned = CBitFieldMaskBit2 + PerfBitExclusive = CBitFieldMaskBit3 + PerfBitExcludeUser = CBitFieldMaskBit4 + PerfBitExcludeKernel = CBitFieldMaskBit5 + PerfBitExcludeHv = CBitFieldMaskBit6 + PerfBitExcludeIdle = CBitFieldMaskBit7 + PerfBitMmap = CBitFieldMaskBit8 + PerfBitComm = CBitFieldMaskBit9 + PerfBitFreq = CBitFieldMaskBit10 + PerfBitInheritStat = CBitFieldMaskBit11 + PerfBitEnableOnExec = CBitFieldMaskBit12 + PerfBitTask = CBitFieldMaskBit13 + PerfBitWatermark = CBitFieldMaskBit14 + PerfBitPreciseIPBit1 = CBitFieldMaskBit15 + PerfBitPreciseIPBit2 = CBitFieldMaskBit16 + PerfBitMmapData = CBitFieldMaskBit17 + PerfBitSampleIDAll = CBitFieldMaskBit18 + PerfBitExcludeHost = CBitFieldMaskBit19 + PerfBitExcludeGuest = CBitFieldMaskBit20 + PerfBitExcludeCallchainKernel = CBitFieldMaskBit21 + PerfBitExcludeCallchainUser = CBitFieldMaskBit22 + PerfBitMmap2 = CBitFieldMaskBit23 + PerfBitCommExec = CBitFieldMaskBit24 + PerfBitUseClockID = CBitFieldMaskBit25 + PerfBitContextSwitch = CBitFieldMaskBit26 +) + +const ( + PERF_TYPE_HARDWARE = 0x0 + PERF_TYPE_SOFTWARE = 0x1 + PERF_TYPE_TRACEPOINT = 0x2 + PERF_TYPE_HW_CACHE = 0x3 + PERF_TYPE_RAW = 0x4 + PERF_TYPE_BREAKPOINT = 0x5 + + PERF_COUNT_HW_CPU_CYCLES = 0x0 + PERF_COUNT_HW_INSTRUCTIONS = 0x1 + PERF_COUNT_HW_CACHE_REFERENCES = 0x2 + PERF_COUNT_HW_CACHE_MISSES = 0x3 + PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 0x4 + PERF_COUNT_HW_BRANCH_MISSES = 0x5 + PERF_COUNT_HW_BUS_CYCLES = 0x6 + PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7 + PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 0x8 + PERF_COUNT_HW_REF_CPU_CYCLES = 0x9 + + PERF_COUNT_HW_CACHE_L1D = 0x0 + PERF_COUNT_HW_CACHE_L1I = 0x1 + PERF_COUNT_HW_CACHE_LL = 0x2 + PERF_COUNT_HW_CACHE_DTLB = 0x3 + PERF_COUNT_HW_CACHE_ITLB = 0x4 + PERF_COUNT_HW_CACHE_BPU = 0x5 + PERF_COUNT_HW_CACHE_NODE = 0x6 + + PERF_COUNT_HW_CACHE_OP_READ = 0x0 + PERF_COUNT_HW_CACHE_OP_WRITE = 0x1 + PERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2 + + PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0 + PERF_COUNT_HW_CACHE_RESULT_MISS = 0x1 + + PERF_COUNT_SW_CPU_CLOCK = 0x0 + PERF_COUNT_SW_TASK_CLOCK = 0x1 + PERF_COUNT_SW_PAGE_FAULTS = 0x2 + PERF_COUNT_SW_CONTEXT_SWITCHES = 0x3 + PERF_COUNT_SW_CPU_MIGRATIONS = 0x4 + PERF_COUNT_SW_PAGE_FAULTS_MIN = 0x5 + PERF_COUNT_SW_PAGE_FAULTS_MAJ = 0x6 + PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 + PERF_COUNT_SW_EMULATION_FAULTS = 0x8 + PERF_COUNT_SW_DUMMY = 0x9 + + PERF_SAMPLE_IP = 0x1 + PERF_SAMPLE_TID = 0x2 + PERF_SAMPLE_TIME = 0x4 + PERF_SAMPLE_ADDR = 0x8 + PERF_SAMPLE_READ = 0x10 + PERF_SAMPLE_CALLCHAIN = 0x20 + PERF_SAMPLE_ID = 0x40 + PERF_SAMPLE_CPU = 0x80 + PERF_SAMPLE_PERIOD = 0x100 + PERF_SAMPLE_STREAM_ID = 0x200 + PERF_SAMPLE_RAW = 0x400 + PERF_SAMPLE_BRANCH_STACK = 0x800 + + PERF_SAMPLE_BRANCH_USER = 0x1 + PERF_SAMPLE_BRANCH_KERNEL = 0x2 + PERF_SAMPLE_BRANCH_HV = 0x4 + PERF_SAMPLE_BRANCH_ANY = 0x8 + PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 + PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 + PERF_SAMPLE_BRANCH_IND_CALL = 0x40 + + PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 + PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 + PERF_FORMAT_ID = 0x4 + PERF_FORMAT_GROUP = 0x8 + + PERF_RECORD_MMAP = 0x1 + PERF_RECORD_LOST = 0x2 + PERF_RECORD_COMM = 0x3 + PERF_RECORD_EXIT = 0x4 + PERF_RECORD_THROTTLE = 0x5 + PERF_RECORD_UNTHROTTLE = 0x6 + PERF_RECORD_FORK = 0x7 + PERF_RECORD_READ = 0x8 + PERF_RECORD_SAMPLE = 0x9 + + PERF_CONTEXT_HV = -0x20 + PERF_CONTEXT_KERNEL = -0x80 + PERF_CONTEXT_USER = -0x200 + + PERF_CONTEXT_GUEST = -0x800 + PERF_CONTEXT_GUEST_KERNEL = -0x880 + PERF_CONTEXT_GUEST_USER = -0xa00 + + PERF_FLAG_FD_NO_GROUP = 0x1 + PERF_FLAG_FD_OUTPUT = 0x2 + PERF_FLAG_PID_CGROUP = 0x4 +) + +const ( + CBitFieldMaskBit0 = 0x8000000000000000 + CBitFieldMaskBit1 = 0x4000000000000000 + CBitFieldMaskBit2 = 0x2000000000000000 + CBitFieldMaskBit3 = 0x1000000000000000 + CBitFieldMaskBit4 = 0x800000000000000 + CBitFieldMaskBit5 = 0x400000000000000 + CBitFieldMaskBit6 = 0x200000000000000 + CBitFieldMaskBit7 = 0x100000000000000 + CBitFieldMaskBit8 = 0x80000000000000 + CBitFieldMaskBit9 = 0x40000000000000 + CBitFieldMaskBit10 = 0x20000000000000 + CBitFieldMaskBit11 = 0x10000000000000 + CBitFieldMaskBit12 = 0x8000000000000 + CBitFieldMaskBit13 = 0x4000000000000 + CBitFieldMaskBit14 = 0x2000000000000 + CBitFieldMaskBit15 = 0x1000000000000 + CBitFieldMaskBit16 = 0x800000000000 + CBitFieldMaskBit17 = 0x400000000000 + CBitFieldMaskBit18 = 0x200000000000 + CBitFieldMaskBit19 = 0x100000000000 + CBitFieldMaskBit20 = 0x80000000000 + CBitFieldMaskBit21 = 0x40000000000 + CBitFieldMaskBit22 = 0x20000000000 + CBitFieldMaskBit23 = 0x10000000000 + CBitFieldMaskBit24 = 0x8000000000 + CBitFieldMaskBit25 = 0x4000000000 + CBitFieldMaskBit26 = 0x2000000000 + CBitFieldMaskBit27 = 0x1000000000 + CBitFieldMaskBit28 = 0x800000000 + CBitFieldMaskBit29 = 0x400000000 + CBitFieldMaskBit30 = 0x200000000 + CBitFieldMaskBit31 = 0x100000000 + CBitFieldMaskBit32 = 0x80000000 + CBitFieldMaskBit33 = 0x40000000 + CBitFieldMaskBit34 = 0x20000000 + CBitFieldMaskBit35 = 0x10000000 + CBitFieldMaskBit36 = 0x8000000 + CBitFieldMaskBit37 = 0x4000000 + CBitFieldMaskBit38 = 0x2000000 + CBitFieldMaskBit39 = 0x1000000 + CBitFieldMaskBit40 = 0x800000 + CBitFieldMaskBit41 = 0x400000 + CBitFieldMaskBit42 = 0x200000 + CBitFieldMaskBit43 = 0x100000 + CBitFieldMaskBit44 = 0x80000 + CBitFieldMaskBit45 = 0x40000 + CBitFieldMaskBit46 = 0x20000 + CBitFieldMaskBit47 = 0x10000 + CBitFieldMaskBit48 = 0x8000 + CBitFieldMaskBit49 = 0x4000 + CBitFieldMaskBit50 = 0x2000 + CBitFieldMaskBit51 = 0x1000 + CBitFieldMaskBit52 = 0x800 + CBitFieldMaskBit53 = 0x400 + CBitFieldMaskBit54 = 0x200 + CBitFieldMaskBit55 = 0x100 + CBitFieldMaskBit56 = 0x80 + CBitFieldMaskBit57 = 0x40 + CBitFieldMaskBit58 = 0x20 + CBitFieldMaskBit59 = 0x10 + CBitFieldMaskBit60 = 0x8 + CBitFieldMaskBit61 = 0x4 + CBitFieldMaskBit62 = 0x2 + CBitFieldMaskBit63 = 0x1 +) + +type SockaddrStorage struct { + Family uint16 + _ [118]int8 + _ uint64 +} + +type TCPMD5Sig struct { + Addr SockaddrStorage + Flags uint8 + Prefixlen uint8 + Keylen uint16 + _ uint32 + Key [80]uint8 +} + +type HDDriveCmdHdr struct { + Command uint8 + Number uint8 + Feature uint8 + Count uint8 +} + +type HDGeometry struct { + Heads uint8 + Sectors uint8 + Cylinders uint16 + Start uint64 +} + +type HDDriveID struct { + Config uint16 + Cyls uint16 + Reserved2 uint16 + Heads uint16 + Track_bytes uint16 + Sector_bytes uint16 + Sectors uint16 + Vendor0 uint16 + Vendor1 uint16 + Vendor2 uint16 + Serial_no [20]uint8 + Buf_type uint16 + Buf_size uint16 + Ecc_bytes uint16 + Fw_rev [8]uint8 + Model [40]uint8 + Max_multsect uint8 + Vendor3 uint8 + Dword_io uint16 + Vendor4 uint8 + Capability uint8 + Reserved50 uint16 + Vendor5 uint8 + TPIO uint8 + Vendor6 uint8 + TDMA uint8 + Field_valid uint16 + Cur_cyls uint16 + Cur_heads uint16 + Cur_sectors uint16 + Cur_capacity0 uint16 + Cur_capacity1 uint16 + Multsect uint8 + Multsect_valid uint8 + Lba_capacity uint32 + Dma_1word uint16 + Dma_mword uint16 + Eide_pio_modes uint16 + Eide_dma_min uint16 + Eide_dma_time uint16 + Eide_pio uint16 + Eide_pio_iordy uint16 + Words69_70 [2]uint16 + Words71_74 [4]uint16 + Queue_depth uint16 + Words76_79 [4]uint16 + Major_rev_num uint16 + Minor_rev_num uint16 + Command_set_1 uint16 + Command_set_2 uint16 + Cfsse uint16 + Cfs_enable_1 uint16 + Cfs_enable_2 uint16 + Csf_default uint16 + Dma_ultra uint16 + Trseuc uint16 + TrsEuc uint16 + CurAPMvalues uint16 + Mprc uint16 + Hw_config uint16 + Acoustic uint16 + Msrqs uint16 + Sxfert uint16 + Sal uint16 + Spg uint32 + Lba_capacity_2 uint64 + Words104_125 [22]uint16 + Last_lun uint16 + Word127 uint16 + Dlf uint16 + Csfo uint16 + Words130_155 [26]uint16 + Word156 uint16 + Words157_159 [3]uint16 + Cfa_power uint16 + Words161_175 [15]uint16 + Words176_205 [30]uint16 + Words206_254 [49]uint16 + Integrity_word uint16 +} + +type Statfs_t struct { + Type int64 + Bsize int64 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Namelen int64 + Frsize int64 + Flags int64 + Spare [4]int64 +} + +const ( + ST_MANDLOCK = 0x40 + ST_NOATIME = 0x400 + ST_NODEV = 0x4 + ST_NODIRATIME = 0x800 + ST_NOEXEC = 0x8 + ST_NOSUID = 0x2 + ST_RDONLY = 0x1 + ST_RELATIME = 0x1000 + ST_SYNCHRONOUS = 0x10 +) + +type TpacketHdr struct { + Status uint64 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Sec uint32 + Usec uint32 + _ [4]byte +} + +type Tpacket2Hdr struct { + Status uint32 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Sec uint32 + Nsec uint32 + Vlan_tci uint16 + Vlan_tpid uint16 + _ [4]uint8 +} + +type Tpacket3Hdr struct { + Next_offset uint32 + Sec uint32 + Nsec uint32 + Snaplen uint32 + Len uint32 + Status uint32 + Mac uint16 + Net uint16 + Hv1 TpacketHdrVariant1 + _ [8]uint8 +} + +type TpacketHdrVariant1 struct { + Rxhash uint32 + Vlan_tci uint32 + Vlan_tpid uint16 + _ uint16 +} + +type TpacketBlockDesc struct { + Version uint32 + To_priv uint32 + Hdr [40]byte +} + +type TpacketReq struct { + Block_size uint32 + Block_nr uint32 + Frame_size uint32 + Frame_nr uint32 +} + +type TpacketReq3 struct { + Block_size uint32 + Block_nr uint32 + Frame_size uint32 + Frame_nr uint32 + Retire_blk_tov uint32 + Sizeof_priv uint32 + Feature_req_word uint32 +} + +type TpacketStats struct { + Packets uint32 + Drops uint32 +} + +type TpacketStatsV3 struct { + Packets uint32 + Drops uint32 + Freeze_q_cnt uint32 +} + +type TpacketAuxdata struct { + Status uint32 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Vlan_tci uint16 + Vlan_tpid uint16 +} + +const ( + TPACKET_V1 = 0x0 + TPACKET_V2 = 0x1 + TPACKET_V3 = 0x2 +) + +const ( + SizeofTpacketHdr = 0x20 + SizeofTpacket2Hdr = 0x20 + SizeofTpacket3Hdr = 0x30 +) + +const ( + NF_INET_PRE_ROUTING = 0x0 + NF_INET_LOCAL_IN = 0x1 + NF_INET_FORWARD = 0x2 + NF_INET_LOCAL_OUT = 0x3 + NF_INET_POST_ROUTING = 0x4 + NF_INET_NUMHOOKS = 0x5 +) + +const ( + NF_NETDEV_INGRESS = 0x0 + NF_NETDEV_NUMHOOKS = 0x1 +) + +const ( + NFPROTO_UNSPEC = 0x0 + NFPROTO_INET = 0x1 + NFPROTO_IPV4 = 0x2 + NFPROTO_ARP = 0x3 + NFPROTO_NETDEV = 0x5 + NFPROTO_BRIDGE = 0x7 + NFPROTO_IPV6 = 0xa + NFPROTO_DECNET = 0xc + NFPROTO_NUMPROTO = 0xd +) + +type Nfgenmsg struct { + Nfgen_family uint8 + Version uint8 + Res_id uint16 +} + +const ( + NFNL_BATCH_UNSPEC = 0x0 + NFNL_BATCH_GENID = 0x1 +) + +const ( + NFT_REG_VERDICT = 0x0 + NFT_REG_1 = 0x1 + NFT_REG_2 = 0x2 + NFT_REG_3 = 0x3 + NFT_REG_4 = 0x4 + NFT_REG32_00 = 0x8 + NFT_REG32_01 = 0x9 + NFT_REG32_02 = 0xa + NFT_REG32_03 = 0xb + NFT_REG32_04 = 0xc + NFT_REG32_05 = 0xd + NFT_REG32_06 = 0xe + NFT_REG32_07 = 0xf + NFT_REG32_08 = 0x10 + NFT_REG32_09 = 0x11 + NFT_REG32_10 = 0x12 + NFT_REG32_11 = 0x13 + NFT_REG32_12 = 0x14 + NFT_REG32_13 = 0x15 + NFT_REG32_14 = 0x16 + NFT_REG32_15 = 0x17 + NFT_CONTINUE = -0x1 + NFT_BREAK = -0x2 + NFT_JUMP = -0x3 + NFT_GOTO = -0x4 + NFT_RETURN = -0x5 + NFT_MSG_NEWTABLE = 0x0 + NFT_MSG_GETTABLE = 0x1 + NFT_MSG_DELTABLE = 0x2 + NFT_MSG_NEWCHAIN = 0x3 + NFT_MSG_GETCHAIN = 0x4 + NFT_MSG_DELCHAIN = 0x5 + NFT_MSG_NEWRULE = 0x6 + NFT_MSG_GETRULE = 0x7 + NFT_MSG_DELRULE = 0x8 + NFT_MSG_NEWSET = 0x9 + NFT_MSG_GETSET = 0xa + NFT_MSG_DELSET = 0xb + NFT_MSG_NEWSETELEM = 0xc + NFT_MSG_GETSETELEM = 0xd + NFT_MSG_DELSETELEM = 0xe + NFT_MSG_NEWGEN = 0xf + NFT_MSG_GETGEN = 0x10 + NFT_MSG_TRACE = 0x11 + NFT_MSG_NEWOBJ = 0x12 + NFT_MSG_GETOBJ = 0x13 + NFT_MSG_DELOBJ = 0x14 + NFT_MSG_GETOBJ_RESET = 0x15 + NFT_MSG_MAX = 0x19 + NFTA_LIST_UNPEC = 0x0 + NFTA_LIST_ELEM = 0x1 + NFTA_HOOK_UNSPEC = 0x0 + NFTA_HOOK_HOOKNUM = 0x1 + NFTA_HOOK_PRIORITY = 0x2 + NFTA_HOOK_DEV = 0x3 + NFT_TABLE_F_DORMANT = 0x1 + NFTA_TABLE_UNSPEC = 0x0 + NFTA_TABLE_NAME = 0x1 + NFTA_TABLE_FLAGS = 0x2 + NFTA_TABLE_USE = 0x3 + NFTA_CHAIN_UNSPEC = 0x0 + NFTA_CHAIN_TABLE = 0x1 + NFTA_CHAIN_HANDLE = 0x2 + NFTA_CHAIN_NAME = 0x3 + NFTA_CHAIN_HOOK = 0x4 + NFTA_CHAIN_POLICY = 0x5 + NFTA_CHAIN_USE = 0x6 + NFTA_CHAIN_TYPE = 0x7 + NFTA_CHAIN_COUNTERS = 0x8 + NFTA_CHAIN_PAD = 0x9 + NFTA_RULE_UNSPEC = 0x0 + NFTA_RULE_TABLE = 0x1 + NFTA_RULE_CHAIN = 0x2 + NFTA_RULE_HANDLE = 0x3 + NFTA_RULE_EXPRESSIONS = 0x4 + NFTA_RULE_COMPAT = 0x5 + NFTA_RULE_POSITION = 0x6 + NFTA_RULE_USERDATA = 0x7 + NFTA_RULE_PAD = 0x8 + NFTA_RULE_ID = 0x9 + NFT_RULE_COMPAT_F_INV = 0x2 + NFT_RULE_COMPAT_F_MASK = 0x2 + NFTA_RULE_COMPAT_UNSPEC = 0x0 + NFTA_RULE_COMPAT_PROTO = 0x1 + NFTA_RULE_COMPAT_FLAGS = 0x2 + NFT_SET_ANONYMOUS = 0x1 + NFT_SET_CONSTANT = 0x2 + NFT_SET_INTERVAL = 0x4 + NFT_SET_MAP = 0x8 + NFT_SET_TIMEOUT = 0x10 + NFT_SET_EVAL = 0x20 + NFT_SET_OBJECT = 0x40 + NFT_SET_POL_PERFORMANCE = 0x0 + NFT_SET_POL_MEMORY = 0x1 + NFTA_SET_DESC_UNSPEC = 0x0 + NFTA_SET_DESC_SIZE = 0x1 + NFTA_SET_UNSPEC = 0x0 + NFTA_SET_TABLE = 0x1 + NFTA_SET_NAME = 0x2 + NFTA_SET_FLAGS = 0x3 + NFTA_SET_KEY_TYPE = 0x4 + NFTA_SET_KEY_LEN = 0x5 + NFTA_SET_DATA_TYPE = 0x6 + NFTA_SET_DATA_LEN = 0x7 + NFTA_SET_POLICY = 0x8 + NFTA_SET_DESC = 0x9 + NFTA_SET_ID = 0xa + NFTA_SET_TIMEOUT = 0xb + NFTA_SET_GC_INTERVAL = 0xc + NFTA_SET_USERDATA = 0xd + NFTA_SET_PAD = 0xe + NFTA_SET_OBJ_TYPE = 0xf + NFT_SET_ELEM_INTERVAL_END = 0x1 + NFTA_SET_ELEM_UNSPEC = 0x0 + NFTA_SET_ELEM_KEY = 0x1 + NFTA_SET_ELEM_DATA = 0x2 + NFTA_SET_ELEM_FLAGS = 0x3 + NFTA_SET_ELEM_TIMEOUT = 0x4 + NFTA_SET_ELEM_EXPIRATION = 0x5 + NFTA_SET_ELEM_USERDATA = 0x6 + NFTA_SET_ELEM_EXPR = 0x7 + NFTA_SET_ELEM_PAD = 0x8 + NFTA_SET_ELEM_OBJREF = 0x9 + NFTA_SET_ELEM_LIST_UNSPEC = 0x0 + NFTA_SET_ELEM_LIST_TABLE = 0x1 + NFTA_SET_ELEM_LIST_SET = 0x2 + NFTA_SET_ELEM_LIST_ELEMENTS = 0x3 + NFTA_SET_ELEM_LIST_SET_ID = 0x4 + NFT_DATA_VALUE = 0x0 + NFT_DATA_VERDICT = 0xffffff00 + NFTA_DATA_UNSPEC = 0x0 + NFTA_DATA_VALUE = 0x1 + NFTA_DATA_VERDICT = 0x2 + NFTA_VERDICT_UNSPEC = 0x0 + NFTA_VERDICT_CODE = 0x1 + NFTA_VERDICT_CHAIN = 0x2 + NFTA_EXPR_UNSPEC = 0x0 + NFTA_EXPR_NAME = 0x1 + NFTA_EXPR_DATA = 0x2 + NFTA_IMMEDIATE_UNSPEC = 0x0 + NFTA_IMMEDIATE_DREG = 0x1 + NFTA_IMMEDIATE_DATA = 0x2 + NFTA_BITWISE_UNSPEC = 0x0 + NFTA_BITWISE_SREG = 0x1 + NFTA_BITWISE_DREG = 0x2 + NFTA_BITWISE_LEN = 0x3 + NFTA_BITWISE_MASK = 0x4 + NFTA_BITWISE_XOR = 0x5 + NFT_BYTEORDER_NTOH = 0x0 + NFT_BYTEORDER_HTON = 0x1 + NFTA_BYTEORDER_UNSPEC = 0x0 + NFTA_BYTEORDER_SREG = 0x1 + NFTA_BYTEORDER_DREG = 0x2 + NFTA_BYTEORDER_OP = 0x3 + NFTA_BYTEORDER_LEN = 0x4 + NFTA_BYTEORDER_SIZE = 0x5 + NFT_CMP_EQ = 0x0 + NFT_CMP_NEQ = 0x1 + NFT_CMP_LT = 0x2 + NFT_CMP_LTE = 0x3 + NFT_CMP_GT = 0x4 + NFT_CMP_GTE = 0x5 + NFTA_CMP_UNSPEC = 0x0 + NFTA_CMP_SREG = 0x1 + NFTA_CMP_OP = 0x2 + NFTA_CMP_DATA = 0x3 + NFT_RANGE_EQ = 0x0 + NFT_RANGE_NEQ = 0x1 + NFTA_RANGE_UNSPEC = 0x0 + NFTA_RANGE_SREG = 0x1 + NFTA_RANGE_OP = 0x2 + NFTA_RANGE_FROM_DATA = 0x3 + NFTA_RANGE_TO_DATA = 0x4 + NFT_LOOKUP_F_INV = 0x1 + NFTA_LOOKUP_UNSPEC = 0x0 + NFTA_LOOKUP_SET = 0x1 + NFTA_LOOKUP_SREG = 0x2 + NFTA_LOOKUP_DREG = 0x3 + NFTA_LOOKUP_SET_ID = 0x4 + NFTA_LOOKUP_FLAGS = 0x5 + NFT_DYNSET_OP_ADD = 0x0 + NFT_DYNSET_OP_UPDATE = 0x1 + NFT_DYNSET_F_INV = 0x1 + NFTA_DYNSET_UNSPEC = 0x0 + NFTA_DYNSET_SET_NAME = 0x1 + NFTA_DYNSET_SET_ID = 0x2 + NFTA_DYNSET_OP = 0x3 + NFTA_DYNSET_SREG_KEY = 0x4 + NFTA_DYNSET_SREG_DATA = 0x5 + NFTA_DYNSET_TIMEOUT = 0x6 + NFTA_DYNSET_EXPR = 0x7 + NFTA_DYNSET_PAD = 0x8 + NFTA_DYNSET_FLAGS = 0x9 + NFT_PAYLOAD_LL_HEADER = 0x0 + NFT_PAYLOAD_NETWORK_HEADER = 0x1 + NFT_PAYLOAD_TRANSPORT_HEADER = 0x2 + NFT_PAYLOAD_CSUM_NONE = 0x0 + NFT_PAYLOAD_CSUM_INET = 0x1 + NFT_PAYLOAD_L4CSUM_PSEUDOHDR = 0x1 + NFTA_PAYLOAD_UNSPEC = 0x0 + NFTA_PAYLOAD_DREG = 0x1 + NFTA_PAYLOAD_BASE = 0x2 + NFTA_PAYLOAD_OFFSET = 0x3 + NFTA_PAYLOAD_LEN = 0x4 + NFTA_PAYLOAD_SREG = 0x5 + NFTA_PAYLOAD_CSUM_TYPE = 0x6 + NFTA_PAYLOAD_CSUM_OFFSET = 0x7 + NFTA_PAYLOAD_CSUM_FLAGS = 0x8 + NFT_EXTHDR_F_PRESENT = 0x1 + NFT_EXTHDR_OP_IPV6 = 0x0 + NFT_EXTHDR_OP_TCPOPT = 0x1 + NFTA_EXTHDR_UNSPEC = 0x0 + NFTA_EXTHDR_DREG = 0x1 + NFTA_EXTHDR_TYPE = 0x2 + NFTA_EXTHDR_OFFSET = 0x3 + NFTA_EXTHDR_LEN = 0x4 + NFTA_EXTHDR_FLAGS = 0x5 + NFTA_EXTHDR_OP = 0x6 + NFTA_EXTHDR_SREG = 0x7 + NFT_META_LEN = 0x0 + NFT_META_PROTOCOL = 0x1 + NFT_META_PRIORITY = 0x2 + NFT_META_MARK = 0x3 + NFT_META_IIF = 0x4 + NFT_META_OIF = 0x5 + NFT_META_IIFNAME = 0x6 + NFT_META_OIFNAME = 0x7 + NFT_META_IIFTYPE = 0x8 + NFT_META_OIFTYPE = 0x9 + NFT_META_SKUID = 0xa + NFT_META_SKGID = 0xb + NFT_META_NFTRACE = 0xc + NFT_META_RTCLASSID = 0xd + NFT_META_SECMARK = 0xe + NFT_META_NFPROTO = 0xf + NFT_META_L4PROTO = 0x10 + NFT_META_BRI_IIFNAME = 0x11 + NFT_META_BRI_OIFNAME = 0x12 + NFT_META_PKTTYPE = 0x13 + NFT_META_CPU = 0x14 + NFT_META_IIFGROUP = 0x15 + NFT_META_OIFGROUP = 0x16 + NFT_META_CGROUP = 0x17 + NFT_META_PRANDOM = 0x18 + NFT_RT_CLASSID = 0x0 + NFT_RT_NEXTHOP4 = 0x1 + NFT_RT_NEXTHOP6 = 0x2 + NFT_RT_TCPMSS = 0x3 + NFT_HASH_JENKINS = 0x0 + NFT_HASH_SYM = 0x1 + NFTA_HASH_UNSPEC = 0x0 + NFTA_HASH_SREG = 0x1 + NFTA_HASH_DREG = 0x2 + NFTA_HASH_LEN = 0x3 + NFTA_HASH_MODULUS = 0x4 + NFTA_HASH_SEED = 0x5 + NFTA_HASH_OFFSET = 0x6 + NFTA_HASH_TYPE = 0x7 + NFTA_META_UNSPEC = 0x0 + NFTA_META_DREG = 0x1 + NFTA_META_KEY = 0x2 + NFTA_META_SREG = 0x3 + NFTA_RT_UNSPEC = 0x0 + NFTA_RT_DREG = 0x1 + NFTA_RT_KEY = 0x2 + NFT_CT_STATE = 0x0 + NFT_CT_DIRECTION = 0x1 + NFT_CT_STATUS = 0x2 + NFT_CT_MARK = 0x3 + NFT_CT_SECMARK = 0x4 + NFT_CT_EXPIRATION = 0x5 + NFT_CT_HELPER = 0x6 + NFT_CT_L3PROTOCOL = 0x7 + NFT_CT_SRC = 0x8 + NFT_CT_DST = 0x9 + NFT_CT_PROTOCOL = 0xa + NFT_CT_PROTO_SRC = 0xb + NFT_CT_PROTO_DST = 0xc + NFT_CT_LABELS = 0xd + NFT_CT_PKTS = 0xe + NFT_CT_BYTES = 0xf + NFT_CT_AVGPKT = 0x10 + NFT_CT_ZONE = 0x11 + NFT_CT_EVENTMASK = 0x12 + NFTA_CT_UNSPEC = 0x0 + NFTA_CT_DREG = 0x1 + NFTA_CT_KEY = 0x2 + NFTA_CT_DIRECTION = 0x3 + NFTA_CT_SREG = 0x4 + NFT_LIMIT_PKTS = 0x0 + NFT_LIMIT_PKT_BYTES = 0x1 + NFT_LIMIT_F_INV = 0x1 + NFTA_LIMIT_UNSPEC = 0x0 + NFTA_LIMIT_RATE = 0x1 + NFTA_LIMIT_UNIT = 0x2 + NFTA_LIMIT_BURST = 0x3 + NFTA_LIMIT_TYPE = 0x4 + NFTA_LIMIT_FLAGS = 0x5 + NFTA_LIMIT_PAD = 0x6 + NFTA_COUNTER_UNSPEC = 0x0 + NFTA_COUNTER_BYTES = 0x1 + NFTA_COUNTER_PACKETS = 0x2 + NFTA_COUNTER_PAD = 0x3 + NFTA_LOG_UNSPEC = 0x0 + NFTA_LOG_GROUP = 0x1 + NFTA_LOG_PREFIX = 0x2 + NFTA_LOG_SNAPLEN = 0x3 + NFTA_LOG_QTHRESHOLD = 0x4 + NFTA_LOG_LEVEL = 0x5 + NFTA_LOG_FLAGS = 0x6 + NFTA_QUEUE_UNSPEC = 0x0 + NFTA_QUEUE_NUM = 0x1 + NFTA_QUEUE_TOTAL = 0x2 + NFTA_QUEUE_FLAGS = 0x3 + NFTA_QUEUE_SREG_QNUM = 0x4 + NFT_QUOTA_F_INV = 0x1 + NFT_QUOTA_F_DEPLETED = 0x2 + NFTA_QUOTA_UNSPEC = 0x0 + NFTA_QUOTA_BYTES = 0x1 + NFTA_QUOTA_FLAGS = 0x2 + NFTA_QUOTA_PAD = 0x3 + NFTA_QUOTA_CONSUMED = 0x4 + NFT_REJECT_ICMP_UNREACH = 0x0 + NFT_REJECT_TCP_RST = 0x1 + NFT_REJECT_ICMPX_UNREACH = 0x2 + NFT_REJECT_ICMPX_NO_ROUTE = 0x0 + NFT_REJECT_ICMPX_PORT_UNREACH = 0x1 + NFT_REJECT_ICMPX_HOST_UNREACH = 0x2 + NFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3 + NFTA_REJECT_UNSPEC = 0x0 + NFTA_REJECT_TYPE = 0x1 + NFTA_REJECT_ICMP_CODE = 0x2 + NFT_NAT_SNAT = 0x0 + NFT_NAT_DNAT = 0x1 + NFTA_NAT_UNSPEC = 0x0 + NFTA_NAT_TYPE = 0x1 + NFTA_NAT_FAMILY = 0x2 + NFTA_NAT_REG_ADDR_MIN = 0x3 + NFTA_NAT_REG_ADDR_MAX = 0x4 + NFTA_NAT_REG_PROTO_MIN = 0x5 + NFTA_NAT_REG_PROTO_MAX = 0x6 + NFTA_NAT_FLAGS = 0x7 + NFTA_MASQ_UNSPEC = 0x0 + NFTA_MASQ_FLAGS = 0x1 + NFTA_MASQ_REG_PROTO_MIN = 0x2 + NFTA_MASQ_REG_PROTO_MAX = 0x3 + NFTA_REDIR_UNSPEC = 0x0 + NFTA_REDIR_REG_PROTO_MIN = 0x1 + NFTA_REDIR_REG_PROTO_MAX = 0x2 + NFTA_REDIR_FLAGS = 0x3 + NFTA_DUP_UNSPEC = 0x0 + NFTA_DUP_SREG_ADDR = 0x1 + NFTA_DUP_SREG_DEV = 0x2 + NFTA_FWD_UNSPEC = 0x0 + NFTA_FWD_SREG_DEV = 0x1 + NFTA_OBJREF_UNSPEC = 0x0 + NFTA_OBJREF_IMM_TYPE = 0x1 + NFTA_OBJREF_IMM_NAME = 0x2 + NFTA_OBJREF_SET_SREG = 0x3 + NFTA_OBJREF_SET_NAME = 0x4 + NFTA_OBJREF_SET_ID = 0x5 + NFTA_GEN_UNSPEC = 0x0 + NFTA_GEN_ID = 0x1 + NFTA_GEN_PROC_PID = 0x2 + NFTA_GEN_PROC_NAME = 0x3 + NFTA_FIB_UNSPEC = 0x0 + NFTA_FIB_DREG = 0x1 + NFTA_FIB_RESULT = 0x2 + NFTA_FIB_FLAGS = 0x3 + NFT_FIB_RESULT_UNSPEC = 0x0 + NFT_FIB_RESULT_OIF = 0x1 + NFT_FIB_RESULT_OIFNAME = 0x2 + NFT_FIB_RESULT_ADDRTYPE = 0x3 + NFTA_FIB_F_SADDR = 0x1 + NFTA_FIB_F_DADDR = 0x2 + NFTA_FIB_F_MARK = 0x4 + NFTA_FIB_F_IIF = 0x8 + NFTA_FIB_F_OIF = 0x10 + NFTA_FIB_F_PRESENT = 0x20 + NFTA_CT_HELPER_UNSPEC = 0x0 + NFTA_CT_HELPER_NAME = 0x1 + NFTA_CT_HELPER_L3PROTO = 0x2 + NFTA_CT_HELPER_L4PROTO = 0x3 + NFTA_OBJ_UNSPEC = 0x0 + NFTA_OBJ_TABLE = 0x1 + NFTA_OBJ_NAME = 0x2 + NFTA_OBJ_TYPE = 0x3 + NFTA_OBJ_DATA = 0x4 + NFTA_OBJ_USE = 0x5 + NFTA_TRACE_UNSPEC = 0x0 + NFTA_TRACE_TABLE = 0x1 + NFTA_TRACE_CHAIN = 0x2 + NFTA_TRACE_RULE_HANDLE = 0x3 + NFTA_TRACE_TYPE = 0x4 + NFTA_TRACE_VERDICT = 0x5 + NFTA_TRACE_ID = 0x6 + NFTA_TRACE_LL_HEADER = 0x7 + NFTA_TRACE_NETWORK_HEADER = 0x8 + NFTA_TRACE_TRANSPORT_HEADER = 0x9 + NFTA_TRACE_IIF = 0xa + NFTA_TRACE_IIFTYPE = 0xb + NFTA_TRACE_OIF = 0xc + NFTA_TRACE_OIFTYPE = 0xd + NFTA_TRACE_MARK = 0xe + NFTA_TRACE_NFPROTO = 0xf + NFTA_TRACE_POLICY = 0x10 + NFTA_TRACE_PAD = 0x11 + NFT_TRACETYPE_UNSPEC = 0x0 + NFT_TRACETYPE_POLICY = 0x1 + NFT_TRACETYPE_RETURN = 0x2 + NFT_TRACETYPE_RULE = 0x3 + NFTA_NG_UNSPEC = 0x0 + NFTA_NG_DREG = 0x1 + NFTA_NG_MODULUS = 0x2 + NFTA_NG_TYPE = 0x3 + NFTA_NG_OFFSET = 0x4 + NFT_NG_INCREMENTAL = 0x0 + NFT_NG_RANDOM = 0x1 +) + +type RTCTime struct { + Sec int32 + Min int32 + Hour int32 + Mday int32 + Mon int32 + Year int32 + Wday int32 + Yday int32 + Isdst int32 +} + +type RTCWkAlrm struct { + Enabled uint8 + Pending uint8 + Time RTCTime +} + +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int64 +} + +type BlkpgIoctlArg struct { + Op int32 + Flags int32 + Datalen int32 + Data *byte +} + +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte +} + +const ( + BLKPG = 0x20001269 + BLKPG_ADD_PARTITION = 0x1 + BLKPG_DEL_PARTITION = 0x2 + BLKPG_RESIZE_PARTITION = 0x3 +) + +const ( + NETNSA_NONE = 0x0 + NETNSA_NSID = 0x1 + NETNSA_PID = 0x2 + NETNSA_FD = 0x3 +) + +type XDPRingOffset struct { + Producer uint64 + Consumer uint64 + Desc uint64 +} + +type XDPMmapOffsets struct { + Rx XDPRingOffset + Tx XDPRingOffset + Fr XDPRingOffset + Cr XDPRingOffset +} + +type XDPUmemReg struct { + Addr uint64 + Len uint64 + Size uint32 + Headroom uint32 +} + +type XDPStatistics struct { + Rx_dropped uint64 + Rx_invalid_descs uint64 + Tx_invalid_descs uint64 +} + +type XDPDesc struct { + Addr uint64 + Len uint32 + Options uint32 +} + +const ( + NCSI_CMD_UNSPEC = 0x0 + NCSI_CMD_PKG_INFO = 0x1 + NCSI_CMD_SET_INTERFACE = 0x2 + NCSI_CMD_CLEAR_INTERFACE = 0x3 + NCSI_ATTR_UNSPEC = 0x0 + NCSI_ATTR_IFINDEX = 0x1 + NCSI_ATTR_PACKAGE_LIST = 0x2 + NCSI_ATTR_PACKAGE_ID = 0x3 + NCSI_ATTR_CHANNEL_ID = 0x4 + NCSI_PKG_ATTR_UNSPEC = 0x0 + NCSI_PKG_ATTR = 0x1 + NCSI_PKG_ATTR_ID = 0x2 + NCSI_PKG_ATTR_FORCED = 0x3 + NCSI_PKG_ATTR_CHANNEL_LIST = 0x4 + NCSI_CHANNEL_ATTR_UNSPEC = 0x0 + NCSI_CHANNEL_ATTR = 0x1 + NCSI_CHANNEL_ATTR_ID = 0x2 + NCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3 + NCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4 + NCSI_CHANNEL_ATTR_VERSION_STR = 0x5 + NCSI_CHANNEL_ATTR_LINK_STATE = 0x6 + NCSI_CHANNEL_ATTR_ACTIVE = 0x7 + NCSI_CHANNEL_ATTR_FORCED = 0x8 + NCSI_CHANNEL_ATTR_VLAN_LIST = 0x9 + NCSI_CHANNEL_ATTR_VLAN_ID = 0xa +) + +const ( + SOF_TIMESTAMPING_TX_HARDWARE = 0x1 + SOF_TIMESTAMPING_TX_SOFTWARE = 0x2 + SOF_TIMESTAMPING_RX_HARDWARE = 0x4 + SOF_TIMESTAMPING_RX_SOFTWARE = 0x8 + SOF_TIMESTAMPING_SOFTWARE = 0x10 + SOF_TIMESTAMPING_SYS_HARDWARE = 0x20 + SOF_TIMESTAMPING_RAW_HARDWARE = 0x40 + SOF_TIMESTAMPING_OPT_ID = 0x80 + SOF_TIMESTAMPING_TX_SCHED = 0x100 + SOF_TIMESTAMPING_TX_ACK = 0x200 + SOF_TIMESTAMPING_OPT_CMSG = 0x400 + SOF_TIMESTAMPING_OPT_TSONLY = 0x800 + SOF_TIMESTAMPING_OPT_STATS = 0x1000 + SOF_TIMESTAMPING_OPT_PKTINFO = 0x2000 + SOF_TIMESTAMPING_OPT_TX_SWHW = 0x4000 + + SOF_TIMESTAMPING_LAST = 0x4000 + SOF_TIMESTAMPING_MASK = 0x7fff +) diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go index 87a637e3f..510efc3ea 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go +++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go @@ -1,4 +1,4 @@ -// cgo -godefs types_openbsd.go | go run mkpost.go +// cgo -godefs -- -fsigned-char types_openbsd.go | go run mkpost.go // Code generated by the command above; see README.md. DO NOT EDIT. // +build arm,openbsd @@ -23,11 +23,13 @@ type ( type Timespec struct { Sec int64 Nsec int32 + _ [4]byte } type Timeval struct { Sec int64 Usec int32 + _ [4]byte } type Rusage struct { @@ -57,28 +59,30 @@ type Rlimit struct { type _Gid_t uint32 type Stat_t struct { - Mode uint32 - Dev int32 - Ino uint64 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev int32 - Atim Timespec - Mtim Timespec - Ctim Timespec - Size int64 - Blocks int64 - Blksize int32 - Flags uint32 - Gen uint32 - X__st_birthtim Timespec + Mode uint32 + Dev int32 + Ino uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev int32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint32 + _ [4]byte + _ Timespec } type Statfs_t struct { F_flags uint32 F_bsize uint32 F_iosize uint32 + _ [4]byte F_blocks uint64 F_bfree uint64 F_bavail int64 @@ -93,11 +97,11 @@ type Statfs_t struct { F_namemax uint32 F_owner uint32 F_ctime uint64 - F_fstypename [16]uint8 - F_mntonname [90]uint8 - F_mntfromname [90]uint8 - F_mntfromspec [90]uint8 - Pad_cgo_0 [2]byte + F_fstypename [16]int8 + F_mntonname [90]int8 + F_mntfromname [90]int8 + F_mntfromspec [90]int8 + _ [2]byte Mount_info [160]byte } @@ -110,13 +114,13 @@ type Flock_t struct { } type Dirent struct { - Fileno uint64 - Off int64 - Reclen uint16 - Type uint8 - Namlen uint8 - X__d_padding [4]uint8 - Name [256]uint8 + Fileno uint64 + Off int64 + Reclen uint16 + Type uint8 + Namlen uint8 + _ [4]uint8 + Name [256]int8 } type Fsid struct { @@ -251,8 +255,10 @@ type Kevent_t struct { Filter int16 Flags uint16 Fflags uint32 + _ [4]byte Data int64 Udata *byte + _ [4]byte } type FdSet struct { @@ -260,8 +266,8 @@ type FdSet struct { } const ( - SizeofIfMsghdr = 0x98 - SizeofIfData = 0x80 + SizeofIfMsghdr = 0xa8 + SizeofIfData = 0x90 SizeofIfaMsghdr = 0x18 SizeofIfAnnounceMsghdr = 0x1a SizeofRtMsghdr = 0x60 @@ -290,7 +296,7 @@ type IfData struct { Link_state uint8 Mtu uint32 Metric uint32 - Pad uint32 + Rdomain uint32 Baudrate uint64 Ipackets uint64 Ierrors uint64 @@ -302,8 +308,10 @@ type IfData struct { Imcasts uint64 Omcasts uint64 Iqdrops uint64 + Oqdrops uint64 Noproto uint64 Capabilities uint32 + _ [4]byte Lastchange Timeval } @@ -328,7 +336,7 @@ type IfAnnounceMsghdr struct { Hdrlen uint16 Index uint16 What uint16 - Name [16]uint8 + Name [16]int8 } type RtMsghdr struct { @@ -398,11 +406,11 @@ type BpfInsn struct { } type BpfHdr struct { - Tstamp BpfTimeval - Caplen uint32 - Datalen uint32 - Hdrlen uint16 - Pad_cgo_0 [2]byte + Tstamp BpfTimeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + _ [2]byte } type BpfTimeval struct { @@ -476,7 +484,7 @@ type Uvmexp struct { Zeropages int32 Reserve_pagedaemon int32 Reserve_kernel int32 - Anonpages int32 + Unused01 int32 Vnodepages int32 Vtextpages int32 Freemin int32 @@ -495,8 +503,8 @@ type Uvmexp struct { Swpgonly int32 Nswget int32 Nanon int32 - Nanonneeded int32 - Nfreeanon int32 + Unused05 int32 + Unused06 int32 Faults int32 Traps int32 Intrs int32 @@ -504,8 +512,8 @@ type Uvmexp struct { Softs int32 Syscalls int32 Pageins int32 - Obsolete_swapins int32 - Obsolete_swapouts int32 + Unused07 int32 + Unused08 int32 Pgswapin int32 Pgswapout int32 Forks int32 @@ -513,7 +521,7 @@ type Uvmexp struct { Forks_sharevm int32 Pga_zerohit int32 Pga_zeromiss int32 - Zeroaborts int32 + Unused09 int32 Fltnoram int32 Fltnoanon int32 Fltnoamap int32 @@ -545,9 +553,9 @@ type Uvmexp struct { Pdpageouts int32 Pdpending int32 Pddeact int32 - Pdreanon int32 - Pdrevnode int32 - Pdrevtext int32 + Unused11 int32 + Unused12 int32 + Unused13 int32 Fpswtch int32 Kmapent int32 } diff --git a/vendor/golang.org/x/sys/windows/svc/svc_test.go b/vendor/golang.org/x/sys/windows/svc/svc_test.go index 60eb4478e..feed8fabd 100644 --- a/vendor/golang.org/x/sys/windows/svc/svc_test.go +++ b/vendor/golang.org/x/sys/windows/svc/svc_test.go @@ -121,13 +121,9 @@ func TestExample(t *testing.T) { t.Fatalf("Delete failed: %s", err) } - cmd := `Get-Eventlog -LogName Application -Newest 100` + - ` | Where Source -eq "myservice"` + - ` | Select -first 10` + - ` | Format-table -HideTableHeaders -property ReplacementStrings` - out, err := exec.Command("powershell", "-Command", cmd).CombinedOutput() + out, err := exec.Command("wevtutil.exe", "qe", "Application", "/q:*[System[Provider[@Name='myservice']]]", "/rd:true", "/c:10").CombinedOutput() if err != nil { - t.Fatalf("powershell failed: %v\n%v", err, string(out)) + t.Fatalf("wevtutil failed: %v\n%v", err, string(out)) } if want := strings.Join(append([]string{name}, args...), "-"); !strings.Contains(string(out), want) { t.Errorf("%q string does not contain %q", string(out), want) diff --git a/vendor/golang.org/x/sys/windows/syscall_windows_test.go b/vendor/golang.org/x/sys/windows/syscall_windows_test.go index 0e27464e8..539dda241 100644 --- a/vendor/golang.org/x/sys/windows/syscall_windows_test.go +++ b/vendor/golang.org/x/sys/windows/syscall_windows_test.go @@ -10,7 +10,6 @@ import ( "path/filepath" "syscall" "testing" - "unsafe" "golang.org/x/sys/windows" ) @@ -54,34 +53,14 @@ func TestWin32finddata(t *testing.T) { } func TestFormatMessage(t *testing.T) { - dll := windows.MustLoadDLL("pdh.dll") - - pdhOpenQuery := func(datasrc *uint16, userdata uint32, query *windows.Handle) (errno uintptr) { - r0, _, _ := syscall.Syscall(dll.MustFindProc("PdhOpenQueryW").Addr(), 3, uintptr(unsafe.Pointer(datasrc)), uintptr(userdata), uintptr(unsafe.Pointer(query))) - return r0 - } - - pdhCloseQuery := func(query windows.Handle) (errno uintptr) { - r0, _, _ := syscall.Syscall(dll.MustFindProc("PdhCloseQuery").Addr(), 1, uintptr(query), 0, 0) - return r0 - } - - var q windows.Handle - name, err := windows.UTF16PtrFromString("no_such_source") - if err != nil { - t.Fatal(err) - } - errno := pdhOpenQuery(name, 0, &q) - if errno == 0 { - pdhCloseQuery(q) - t.Fatal("PdhOpenQuery succeeded, but expected to fail.") - } + dll := windows.MustLoadDLL("netevent.dll") + const TITLE_SC_MESSAGE_BOX uint32 = 0xC0001B75 const flags uint32 = syscall.FORMAT_MESSAGE_FROM_HMODULE | syscall.FORMAT_MESSAGE_ARGUMENT_ARRAY | syscall.FORMAT_MESSAGE_IGNORE_INSERTS buf := make([]uint16, 300) - _, err = windows.FormatMessage(flags, uintptr(dll.Handle), uint32(errno), 0, buf, nil) + _, err := windows.FormatMessage(flags, uintptr(dll.Handle), TITLE_SC_MESSAGE_BOX, 0, buf, nil) if err != nil { - t.Fatalf("FormatMessage for handle=%x and errno=%x failed: %v", dll.Handle, errno, err) + t.Fatalf("FormatMessage for handle=%x and errno=%x failed: %v", dll.Handle, TITLE_SC_MESSAGE_BOX, err) } } diff --git a/vendor/google.golang.org/appengine/.travis.yml b/vendor/google.golang.org/appengine/.travis.yml new file mode 100644 index 000000000..70ffe89d5 --- /dev/null +++ b/vendor/google.golang.org/appengine/.travis.yml @@ -0,0 +1,20 @@ +language: go + +go_import_path: google.golang.org/appengine + +install: + - ./travis_install.sh + +script: + - ./travis_test.sh + +matrix: + include: + - go: 1.8.x + env: GOAPP=true + - go: 1.9.x + env: GOAPP=true + - go: 1.10.x + env: GOAPP=false + - go: 1.11.x + env: GO111MODULE=on diff --git a/vendor/google.golang.org/appengine/CONTRIBUTING.md b/vendor/google.golang.org/appengine/CONTRIBUTING.md new file mode 100644 index 000000000..ffc298520 --- /dev/null +++ b/vendor/google.golang.org/appengine/CONTRIBUTING.md @@ -0,0 +1,90 @@ +# Contributing + +1. Sign one of the contributor license agreements below. +1. Get the package: + + `go get -d google.golang.org/appengine` +1. Change into the checked out source: + + `cd $GOPATH/src/google.golang.org/appengine` +1. Fork the repo. +1. Set your fork as a remote: + + `git remote add fork git@github.com:GITHUB_USERNAME/appengine.git` +1. Make changes, commit to your fork. +1. Send a pull request with your changes. + The first line of your commit message is conventionally a one-line summary of the change, prefixed by the primary affected package, and is used as the title of your pull request. + +# Testing + +## Running system tests + +Download and install the [Go App Engine SDK](https://cloud.google.com/appengine/docs/go/download). Make sure the `go_appengine` dir is in your `PATH`. + +Set the `APPENGINE_DEV_APPSERVER` environment variable to `/path/to/go_appengine/dev_appserver.py`. + +Run tests with `goapp test`: + +``` +goapp test -v google.golang.org/appengine/... +``` + +## Contributor License Agreements + +Before we can accept your pull requests you'll need to sign a Contributor +License Agreement (CLA): + +- **If you are an individual writing original source code** and **you own the +intellectual property**, then you'll need to sign an [individual CLA][indvcla]. +- **If you work for a company that wants to allow you to contribute your work**, +then you'll need to sign a [corporate CLA][corpcla]. + +You can sign these electronically (just scroll to the bottom). After that, +we'll be able to accept your pull requests. + +## Contributor Code of Conduct + +As contributors and maintainers of this project, +and in the interest of fostering an open and welcoming community, +we pledge to respect all people who contribute through reporting issues, +posting feature requests, updating documentation, +submitting pull requests or patches, and other activities. + +We are committed to making participation in this project +a harassment-free experience for everyone, +regardless of level of experience, gender, gender identity and expression, +sexual orientation, disability, personal appearance, +body size, race, ethnicity, age, religion, or nationality. + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery +* Personal attacks +* Trolling or insulting/derogatory comments +* Public or private harassment +* Publishing other's private information, +such as physical or electronic +addresses, without explicit permission +* Other unethical or unprofessional conduct. + +Project maintainers have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct. +By adopting this Code of Conduct, +project maintainers commit themselves to fairly and consistently +applying these principles to every aspect of managing this project. +Project maintainers who do not follow or enforce the Code of Conduct +may be permanently removed from the project team. + +This code of conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. + +Instances of abusive, harassing, or otherwise unacceptable behavior +may be reported by opening an issue +or contacting one or more of the project maintainers. + +This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.2.0, +available at [http://contributor-covenant.org/version/1/2/0/](http://contributor-covenant.org/version/1/2/0/) + +[indvcla]: https://developers.google.com/open-source/cla/individual +[corpcla]: https://developers.google.com/open-source/cla/corporate diff --git a/vendor/google.golang.org/appengine/LICENSE b/vendor/google.golang.org/appengine/LICENSE new file mode 100644 index 000000000..d64569567 --- /dev/null +++ b/vendor/google.golang.org/appengine/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendor/google.golang.org/appengine/README.md b/vendor/google.golang.org/appengine/README.md new file mode 100644 index 000000000..d86768a2c --- /dev/null +++ b/vendor/google.golang.org/appengine/README.md @@ -0,0 +1,73 @@ +# Go App Engine packages + +[![Build Status](https://travis-ci.org/golang/appengine.svg)](https://travis-ci.org/golang/appengine) + +This repository supports the Go runtime on *App Engine standard*. +It provides APIs for interacting with App Engine services. +Its canonical import path is `google.golang.org/appengine`. + +See https://cloud.google.com/appengine/docs/go/ +for more information. + +File issue reports and feature requests on the [GitHub's issue +tracker](https://github.com/golang/appengine/issues). + +## Upgrading an App Engine app to the flexible environment + +This package does not work on *App Engine flexible*. + +There are many differences between the App Engine standard environment and +the flexible environment. + +See the [documentation on upgrading to the flexible environment](https://cloud.google.com/appengine/docs/flexible/go/upgrading). + +## Directory structure + +The top level directory of this repository is the `appengine` package. It +contains the +basic APIs (e.g. `appengine.NewContext`) that apply across APIs. Specific API +packages are in subdirectories (e.g. `datastore`). + +There is an `internal` subdirectory that contains service protocol buffers, +plus packages required for connectivity to make API calls. App Engine apps +should not directly import any package under `internal`. + +## Updating from legacy (`import "appengine"`) packages + +If you're currently using the bare `appengine` packages +(that is, not these ones, imported via `google.golang.org/appengine`), +then you can use the `aefix` tool to help automate an upgrade to these packages. + +Run `go get google.golang.org/appengine/cmd/aefix` to install it. + +### 1. Update import paths + +The import paths for App Engine packages are now fully qualified, based at `google.golang.org/appengine`. +You will need to update your code to use import paths starting with that; for instance, +code importing `appengine/datastore` will now need to import `google.golang.org/appengine/datastore`. + +### 2. Update code using deprecated, removed or modified APIs + +Most App Engine services are available with exactly the same API. +A few APIs were cleaned up, and there are some differences: + +* `appengine.Context` has been replaced with the `Context` type from `golang.org/x/net/context`. +* Logging methods that were on `appengine.Context` are now functions in `google.golang.org/appengine/log`. +* `appengine.Timeout` has been removed. Use `context.WithTimeout` instead. +* `appengine.Datacenter` now takes a `context.Context` argument. +* `datastore.PropertyLoadSaver` has been simplified to use slices in place of channels. +* `delay.Call` now returns an error. +* `search.FieldLoadSaver` now handles document metadata. +* `urlfetch.Transport` no longer has a Deadline field; set a deadline on the + `context.Context` instead. +* `aetest` no longer declares its own Context type, and uses the standard one instead. +* `taskqueue.QueueStats` no longer takes a maxTasks argument. That argument has been + deprecated and unused for a long time. +* `appengine.BackendHostname` and `appengine.BackendInstance` were for the deprecated backends feature. + Use `appengine.ModuleHostname`and `appengine.ModuleName` instead. +* Most of `appengine/file` and parts of `appengine/blobstore` are deprecated. + Use [Google Cloud Storage](https://godoc.org/cloud.google.com/go/storage) if the + feature you require is not present in the new + [blobstore package](https://google.golang.org/appengine/blobstore). +* `appengine/socket` is not required on App Engine flexible environment / Managed VMs. + Use the standard `net` package instead. diff --git a/vendor/google.golang.org/appengine/aetest/doc.go b/vendor/google.golang.org/appengine/aetest/doc.go new file mode 100644 index 000000000..86ce8c2c0 --- /dev/null +++ b/vendor/google.golang.org/appengine/aetest/doc.go @@ -0,0 +1,42 @@ +/* +Package aetest provides an API for running dev_appserver for use in tests. + +An example test file: + + package foo_test + + import ( + "testing" + + "google.golang.org/appengine/memcache" + "google.golang.org/appengine/aetest" + ) + + func TestFoo(t *testing.T) { + ctx, done, err := aetest.NewContext() + if err != nil { + t.Fatal(err) + } + defer done() + + it := &memcache.Item{ + Key: "some-key", + Value: []byte("some-value"), + } + err = memcache.Set(ctx, it) + if err != nil { + t.Fatalf("Set err: %v", err) + } + it, err = memcache.Get(ctx, "some-key") + if err != nil { + t.Fatalf("Get err: %v; want no error", err) + } + if g, w := string(it.Value), "some-value" ; g != w { + t.Errorf("retrieved Item.Value = %q, want %q", g, w) + } + } + +The environment variable APPENGINE_DEV_APPSERVER specifies the location of the +dev_appserver.py executable to use. If unset, the system PATH is consulted. +*/ +package aetest diff --git a/vendor/google.golang.org/appengine/aetest/instance.go b/vendor/google.golang.org/appengine/aetest/instance.go new file mode 100644 index 000000000..f580467fe --- /dev/null +++ b/vendor/google.golang.org/appengine/aetest/instance.go @@ -0,0 +1,61 @@ +package aetest + +import ( + "io" + "net/http" + "time" + + "golang.org/x/net/context" + "google.golang.org/appengine" +) + +// Instance represents a running instance of the development API Server. +type Instance interface { + // Close kills the child api_server.py process, releasing its resources. + io.Closer + // NewRequest returns an *http.Request associated with this instance. + NewRequest(method, urlStr string, body io.Reader) (*http.Request, error) +} + +// Options is used to specify options when creating an Instance. +type Options struct { + // AppID specifies the App ID to use during tests. + // By default, "testapp". + AppID string + // StronglyConsistentDatastore is whether the local datastore should be + // strongly consistent. This will diverge from production behaviour. + StronglyConsistentDatastore bool + // SupportDatastoreEmulator is whether use Cloud Datastore Emulator or + // use old SQLite based Datastore backend or use default settings. + SupportDatastoreEmulator *bool + // SuppressDevAppServerLog is whether the dev_appserver running in tests + // should output logs. + SuppressDevAppServerLog bool + // StartupTimeout is a duration to wait for instance startup. + // By default, 15 seconds. + StartupTimeout time.Duration +} + +// NewContext starts an instance of the development API server, and returns +// a context that will route all API calls to that server, as well as a +// closure that must be called when the Context is no longer required. +func NewContext() (context.Context, func(), error) { + inst, err := NewInstance(nil) + if err != nil { + return nil, nil, err + } + req, err := inst.NewRequest("GET", "/", nil) + if err != nil { + inst.Close() + return nil, nil, err + } + ctx := appengine.NewContext(req) + return ctx, func() { + inst.Close() + }, nil +} + +// PrepareDevAppserver is a hook which, if set, will be called before the +// dev_appserver.py is started, each time it is started. If aetest.NewContext +// is invoked from the goapp test tool, this hook is unnecessary. +var PrepareDevAppserver func() error diff --git a/vendor/google.golang.org/appengine/aetest/instance_classic.go b/vendor/google.golang.org/appengine/aetest/instance_classic.go new file mode 100644 index 000000000..fbceaa505 --- /dev/null +++ b/vendor/google.golang.org/appengine/aetest/instance_classic.go @@ -0,0 +1,21 @@ +// +build appengine + +package aetest + +import "appengine/aetest" + +// NewInstance launches a running instance of api_server.py which can be used +// for multiple test Contexts that delegate all App Engine API calls to that +// instance. +// If opts is nil the default values are used. +func NewInstance(opts *Options) (Instance, error) { + aetest.PrepareDevAppserver = PrepareDevAppserver + var aeOpts *aetest.Options + if opts != nil { + aeOpts = &aetest.Options{ + AppID: opts.AppID, + StronglyConsistentDatastore: opts.StronglyConsistentDatastore, + } + } + return aetest.NewInstance(aeOpts) +} diff --git a/vendor/google.golang.org/appengine/aetest/instance_test.go b/vendor/google.golang.org/appengine/aetest/instance_test.go new file mode 100644 index 000000000..e7003afd9 --- /dev/null +++ b/vendor/google.golang.org/appengine/aetest/instance_test.go @@ -0,0 +1,119 @@ +package aetest + +import ( + "os" + "testing" + + "google.golang.org/appengine" + "google.golang.org/appengine/datastore" + "google.golang.org/appengine/internal" + "google.golang.org/appengine/memcache" + "google.golang.org/appengine/user" +) + +func TestBasicAPICalls(t *testing.T) { + // Only run the test if APPENGINE_DEV_APPSERVER is explicitly set. + if os.Getenv("APPENGINE_DEV_APPSERVER") == "" { + t.Skip("APPENGINE_DEV_APPSERVER not set") + } + resetEnv := internal.SetTestEnv() + defer resetEnv() + + inst, err := NewInstance(nil) + if err != nil { + t.Fatalf("NewInstance: %v", err) + } + defer inst.Close() + + req, err := inst.NewRequest("GET", "http://example.com/page", nil) + if err != nil { + t.Fatalf("NewRequest: %v", err) + } + ctx := appengine.NewContext(req) + + it := &memcache.Item{ + Key: "some-key", + Value: []byte("some-value"), + } + err = memcache.Set(ctx, it) + if err != nil { + t.Fatalf("Set err: %v", err) + } + it, err = memcache.Get(ctx, "some-key") + if err != nil { + t.Fatalf("Get err: %v; want no error", err) + } + if g, w := string(it.Value), "some-value"; g != w { + t.Errorf("retrieved Item.Value = %q, want %q", g, w) + } + + type Entity struct{ Value string } + e := &Entity{Value: "foo"} + k := datastore.NewIncompleteKey(ctx, "Entity", nil) + k, err = datastore.Put(ctx, k, e) + if err != nil { + t.Fatalf("datastore.Put: %v", err) + } + e = new(Entity) + if err := datastore.Get(ctx, k, e); err != nil { + t.Fatalf("datastore.Get: %v", err) + } + if g, w := e.Value, "foo"; g != w { + t.Errorf("retrieved Entity.Value = %q, want %q", g, w) + } +} + +func TestContext(t *testing.T) { + // Only run the test if APPENGINE_DEV_APPSERVER is explicitly set. + if os.Getenv("APPENGINE_DEV_APPSERVER") == "" { + t.Skip("APPENGINE_DEV_APPSERVER not set") + } + + // Check that the context methods work. + _, done, err := NewContext() + if err != nil { + t.Fatalf("NewContext: %v", err) + } + done() +} + +func TestUsers(t *testing.T) { + // Only run the test if APPENGINE_DEV_APPSERVER is explicitly set. + if os.Getenv("APPENGINE_DEV_APPSERVER") == "" { + t.Skip("APPENGINE_DEV_APPSERVER not set") + } + + inst, err := NewInstance(nil) + if err != nil { + t.Fatalf("NewInstance: %v", err) + } + defer inst.Close() + + req, err := inst.NewRequest("GET", "http://example.com/page", nil) + if err != nil { + t.Fatalf("NewRequest: %v", err) + } + ctx := appengine.NewContext(req) + + if user := user.Current(ctx); user != nil { + t.Errorf("user.Current initially %v, want nil", user) + } + + u := &user.User{ + Email: "gopher@example.com", + Admin: true, + } + Login(u, req) + + if got := user.Current(ctx); got.Email != u.Email { + t.Errorf("user.Current: %v, want %v", got, u) + } + if admin := user.IsAdmin(ctx); !admin { + t.Errorf("user.IsAdmin: %t, want true", admin) + } + + Logout(req) + if user := user.Current(ctx); user != nil { + t.Errorf("user.Current after logout %v, want nil", user) + } +} diff --git a/vendor/google.golang.org/appengine/aetest/instance_vm.go b/vendor/google.golang.org/appengine/aetest/instance_vm.go new file mode 100644 index 000000000..820e1ef20 --- /dev/null +++ b/vendor/google.golang.org/appengine/aetest/instance_vm.go @@ -0,0 +1,287 @@ +// +build !appengine + +package aetest + +import ( + "bufio" + "crypto/rand" + "errors" + "fmt" + "io" + "io/ioutil" + "net/http" + "net/url" + "os" + "os/exec" + "path/filepath" + "regexp" + "time" + + "golang.org/x/net/context" + "google.golang.org/appengine/internal" +) + +// NewInstance launches a running instance of api_server.py which can be used +// for multiple test Contexts that delegate all App Engine API calls to that +// instance. +// If opts is nil the default values are used. +func NewInstance(opts *Options) (Instance, error) { + i := &instance{ + opts: opts, + appID: "testapp", + startupTimeout: 15 * time.Second, + } + if opts != nil { + if opts.AppID != "" { + i.appID = opts.AppID + } + if opts.StartupTimeout > 0 { + i.startupTimeout = opts.StartupTimeout + } + } + if err := i.startChild(); err != nil { + return nil, err + } + return i, nil +} + +func newSessionID() string { + var buf [16]byte + io.ReadFull(rand.Reader, buf[:]) + return fmt.Sprintf("%x", buf[:]) +} + +// instance implements the Instance interface. +type instance struct { + opts *Options + child *exec.Cmd + apiURL *url.URL // base URL of API HTTP server + adminURL string // base URL of admin HTTP server + appDir string + appID string + startupTimeout time.Duration + relFuncs []func() // funcs to release any associated contexts +} + +// NewRequest returns an *http.Request associated with this instance. +func (i *instance) NewRequest(method, urlStr string, body io.Reader) (*http.Request, error) { + req, err := http.NewRequest(method, urlStr, body) + if err != nil { + return nil, err + } + + // Associate this request. + req, release := internal.RegisterTestRequest(req, i.apiURL, func(ctx context.Context) context.Context { + ctx = internal.WithAppIDOverride(ctx, "dev~"+i.appID) + return ctx + }) + i.relFuncs = append(i.relFuncs, release) + + return req, nil +} + +// Close kills the child api_server.py process, releasing its resources. +func (i *instance) Close() (err error) { + for _, rel := range i.relFuncs { + rel() + } + i.relFuncs = nil + child := i.child + if child == nil { + return nil + } + defer func() { + i.child = nil + err1 := os.RemoveAll(i.appDir) + if err == nil { + err = err1 + } + }() + + if p := child.Process; p != nil { + errc := make(chan error, 1) + go func() { + errc <- child.Wait() + }() + + // Call the quit handler on the admin server. + res, err := http.Get(i.adminURL + "/quit") + if err != nil { + p.Kill() + return fmt.Errorf("unable to call /quit handler: %v", err) + } + res.Body.Close() + select { + case <-time.After(15 * time.Second): + p.Kill() + return errors.New("timeout killing child process") + case err = <-errc: + // Do nothing. + } + } + return +} + +func fileExists(path string) bool { + _, err := os.Stat(path) + return err == nil +} + +func findPython() (path string, err error) { + for _, name := range []string{"python2.7", "python"} { + path, err = exec.LookPath(name) + if err == nil { + return + } + } + return +} + +func findDevAppserver() (string, error) { + if p := os.Getenv("APPENGINE_DEV_APPSERVER"); p != "" { + if fileExists(p) { + return p, nil + } + return "", fmt.Errorf("invalid APPENGINE_DEV_APPSERVER environment variable; path %q doesn't exist", p) + } + return exec.LookPath("dev_appserver.py") +} + +var apiServerAddrRE = regexp.MustCompile(`Starting API server at: (\S+)`) +var adminServerAddrRE = regexp.MustCompile(`Starting admin server at: (\S+)`) + +func (i *instance) startChild() (err error) { + if PrepareDevAppserver != nil { + if err := PrepareDevAppserver(); err != nil { + return err + } + } + python, err := findPython() + if err != nil { + return fmt.Errorf("Could not find python interpreter: %v", err) + } + devAppserver, err := findDevAppserver() + if err != nil { + return fmt.Errorf("Could not find dev_appserver.py: %v", err) + } + + i.appDir, err = ioutil.TempDir("", "appengine-aetest") + if err != nil { + return err + } + defer func() { + if err != nil { + os.RemoveAll(i.appDir) + } + }() + err = os.Mkdir(filepath.Join(i.appDir, "app"), 0755) + if err != nil { + return err + } + err = ioutil.WriteFile(filepath.Join(i.appDir, "app", "app.yaml"), []byte(i.appYAML()), 0644) + if err != nil { + return err + } + err = ioutil.WriteFile(filepath.Join(i.appDir, "app", "stubapp.go"), []byte(appSource), 0644) + if err != nil { + return err + } + + appserverArgs := []string{ + devAppserver, + "--port=0", + "--api_port=0", + "--admin_port=0", + "--automatic_restart=false", + "--skip_sdk_update_check=true", + "--clear_datastore=true", + "--clear_search_indexes=true", + "--datastore_path", filepath.Join(i.appDir, "datastore"), + } + if i.opts != nil && i.opts.StronglyConsistentDatastore { + appserverArgs = append(appserverArgs, "--datastore_consistency_policy=consistent") + } + if i.opts != nil && i.opts.SupportDatastoreEmulator != nil { + appserverArgs = append(appserverArgs, fmt.Sprintf("--support_datastore_emulator=%t", *i.opts.SupportDatastoreEmulator)) + } + appserverArgs = append(appserverArgs, filepath.Join(i.appDir, "app")) + + i.child = exec.Command(python, + appserverArgs..., + ) + i.child.Stdout = os.Stdout + var stderr io.Reader + stderr, err = i.child.StderrPipe() + if err != nil { + return err + } + if !(i.opts != nil && i.opts.SuppressDevAppServerLog) { + stderr = io.TeeReader(stderr, os.Stderr) + } + if err = i.child.Start(); err != nil { + return err + } + + // Read stderr until we have read the URLs of the API server and admin interface. + errc := make(chan error, 1) + go func() { + s := bufio.NewScanner(stderr) + for s.Scan() { + if match := apiServerAddrRE.FindStringSubmatch(s.Text()); match != nil { + u, err := url.Parse(match[1]) + if err != nil { + errc <- fmt.Errorf("failed to parse API URL %q: %v", match[1], err) + return + } + i.apiURL = u + } + if match := adminServerAddrRE.FindStringSubmatch(s.Text()); match != nil { + i.adminURL = match[1] + } + if i.adminURL != "" && i.apiURL != nil { + break + } + } + errc <- s.Err() + }() + + select { + case <-time.After(i.startupTimeout): + if p := i.child.Process; p != nil { + p.Kill() + } + return errors.New("timeout starting child process") + case err := <-errc: + if err != nil { + return fmt.Errorf("error reading child process stderr: %v", err) + } + } + if i.adminURL == "" { + return errors.New("unable to find admin server URL") + } + if i.apiURL == nil { + return errors.New("unable to find API server URL") + } + return nil +} + +func (i *instance) appYAML() string { + return fmt.Sprintf(appYAMLTemplate, i.appID) +} + +const appYAMLTemplate = ` +application: %s +version: 1 +runtime: go +api_version: go1 + +handlers: +- url: /.* + script: _go_app +` + +const appSource = ` +package main +import "google.golang.org/appengine" +func main() { appengine.Main() } +` diff --git a/vendor/google.golang.org/appengine/aetest/user.go b/vendor/google.golang.org/appengine/aetest/user.go new file mode 100644 index 000000000..bf9266f53 --- /dev/null +++ b/vendor/google.golang.org/appengine/aetest/user.go @@ -0,0 +1,36 @@ +package aetest + +import ( + "hash/crc32" + "net/http" + "strconv" + + "google.golang.org/appengine/user" +) + +// Login causes the provided Request to act as though issued by the given user. +func Login(u *user.User, req *http.Request) { + req.Header.Set("X-AppEngine-User-Email", u.Email) + id := u.ID + if id == "" { + id = strconv.Itoa(int(crc32.Checksum([]byte(u.Email), crc32.IEEETable))) + } + req.Header.Set("X-AppEngine-User-Id", id) + req.Header.Set("X-AppEngine-User-Federated-Identity", u.Email) + req.Header.Set("X-AppEngine-User-Federated-Provider", u.FederatedProvider) + if u.Admin { + req.Header.Set("X-AppEngine-User-Is-Admin", "1") + } else { + req.Header.Set("X-AppEngine-User-Is-Admin", "0") + } +} + +// Logout causes the provided Request to act as though issued by a logged-out +// user. +func Logout(req *http.Request) { + req.Header.Del("X-AppEngine-User-Email") + req.Header.Del("X-AppEngine-User-Id") + req.Header.Del("X-AppEngine-User-Is-Admin") + req.Header.Del("X-AppEngine-User-Federated-Identity") + req.Header.Del("X-AppEngine-User-Federated-Provider") +} diff --git a/vendor/google.golang.org/appengine/appengine.go b/vendor/google.golang.org/appengine/appengine.go new file mode 100644 index 000000000..0cca033d3 --- /dev/null +++ b/vendor/google.golang.org/appengine/appengine.go @@ -0,0 +1,137 @@ +// Copyright 2011 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +// Package appengine provides basic functionality for Google App Engine. +// +// For more information on how to write Go apps for Google App Engine, see: +// https://cloud.google.com/appengine/docs/go/ +package appengine // import "google.golang.org/appengine" + +import ( + "net/http" + + "github.com/golang/protobuf/proto" + "golang.org/x/net/context" + + "google.golang.org/appengine/internal" +) + +// The gophers party all night; the rabbits provide the beats. + +// Main is the principal entry point for an app running in App Engine. +// +// On App Engine Flexible it installs a trivial health checker if one isn't +// already registered, and starts listening on port 8080 (overridden by the +// $PORT environment variable). +// +// See https://cloud.google.com/appengine/docs/flexible/custom-runtimes#health_check_requests +// for details on how to do your own health checking. +// +// On App Engine Standard it ensures the server has started and is prepared to +// receive requests. +// +// Main never returns. +// +// Main is designed so that the app's main package looks like this: +// +// package main +// +// import ( +// "google.golang.org/appengine" +// +// _ "myapp/package0" +// _ "myapp/package1" +// ) +// +// func main() { +// appengine.Main() +// } +// +// The "myapp/packageX" packages are expected to register HTTP handlers +// in their init functions. +func Main() { + internal.Main() +} + +// IsDevAppServer reports whether the App Engine app is running in the +// development App Server. +func IsDevAppServer() bool { + return internal.IsDevAppServer() +} + +// IsStandard reports whether the App Engine app is running in the standard +// environment. This includes both the first generation runtimes (<= Go 1.9) +// and the second generation runtimes (>= Go 1.11). +func IsStandard() bool { + return internal.IsStandard() +} + +// IsFlex reports whether the App Engine app is running in the flexible environment. +func IsFlex() bool { + return internal.IsFlex() +} + +// IsAppEngine reports whether the App Engine app is running on App Engine, in either +// the standard or flexible environment. +func IsAppEngine() bool { + return internal.IsAppEngine() +} + +// IsSecondGen reports whether the App Engine app is running on the second generation +// runtimes (>= Go 1.11). +func IsSecondGen() bool { + return internal.IsSecondGen() +} + +// NewContext returns a context for an in-flight HTTP request. +// This function is cheap. +func NewContext(req *http.Request) context.Context { + return internal.ReqContext(req) +} + +// WithContext returns a copy of the parent context +// and associates it with an in-flight HTTP request. +// This function is cheap. +func WithContext(parent context.Context, req *http.Request) context.Context { + return internal.WithContext(parent, req) +} + +// TODO(dsymonds): Add a Call function here? Otherwise other packages can't access internal.Call. + +// BlobKey is a key for a blobstore blob. +// +// Conceptually, this type belongs in the blobstore package, but it lives in +// the appengine package to avoid a circular dependency: blobstore depends on +// datastore, and datastore needs to refer to the BlobKey type. +type BlobKey string + +// GeoPoint represents a location as latitude/longitude in degrees. +type GeoPoint struct { + Lat, Lng float64 +} + +// Valid returns whether a GeoPoint is within [-90, 90] latitude and [-180, 180] longitude. +func (g GeoPoint) Valid() bool { + return -90 <= g.Lat && g.Lat <= 90 && -180 <= g.Lng && g.Lng <= 180 +} + +// APICallFunc defines a function type for handling an API call. +// See WithCallOverride. +type APICallFunc func(ctx context.Context, service, method string, in, out proto.Message) error + +// WithAPICallFunc returns a copy of the parent context +// that will cause API calls to invoke f instead of their normal operation. +// +// This is intended for advanced users only. +func WithAPICallFunc(ctx context.Context, f APICallFunc) context.Context { + return internal.WithCallOverride(ctx, internal.CallOverrideFunc(f)) +} + +// APICall performs an API call. +// +// This is not intended for general use; it is exported for use in conjunction +// with WithAPICallFunc. +func APICall(ctx context.Context, service, method string, in, out proto.Message) error { + return internal.Call(ctx, service, method, in, out) +} diff --git a/vendor/google.golang.org/appengine/appengine_test.go b/vendor/google.golang.org/appengine/appengine_test.go new file mode 100644 index 000000000..f1cf0a1b9 --- /dev/null +++ b/vendor/google.golang.org/appengine/appengine_test.go @@ -0,0 +1,49 @@ +// Copyright 2014 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package appengine + +import ( + "testing" +) + +func TestValidGeoPoint(t *testing.T) { + testCases := []struct { + desc string + pt GeoPoint + want bool + }{ + { + "valid", + GeoPoint{67.21, 13.37}, + true, + }, + { + "high lat", + GeoPoint{-90.01, 13.37}, + false, + }, + { + "low lat", + GeoPoint{90.01, 13.37}, + false, + }, + { + "high lng", + GeoPoint{67.21, 182}, + false, + }, + { + "low lng", + GeoPoint{67.21, -181}, + false, + }, + } + + for _, tc := range testCases { + if got := tc.pt.Valid(); got != tc.want { + t.Errorf("%s: got %v, want %v", tc.desc, got, tc.want) + } + } +} diff --git a/vendor/google.golang.org/appengine/appengine_vm.go b/vendor/google.golang.org/appengine/appengine_vm.go new file mode 100644 index 000000000..f4b645aad --- /dev/null +++ b/vendor/google.golang.org/appengine/appengine_vm.go @@ -0,0 +1,20 @@ +// Copyright 2015 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +// +build !appengine + +package appengine + +import ( + "golang.org/x/net/context" + + "google.golang.org/appengine/internal" +) + +// BackgroundContext returns a context not associated with a request. +// This should only be used when not servicing a request. +// This only works in App Engine "flexible environment". +func BackgroundContext() context.Context { + return internal.BackgroundContext() +} diff --git a/vendor/google.golang.org/appengine/blobstore/blobstore.go b/vendor/google.golang.org/appengine/blobstore/blobstore.go new file mode 100644 index 000000000..dea25acca --- /dev/null +++ b/vendor/google.golang.org/appengine/blobstore/blobstore.go @@ -0,0 +1,306 @@ +// Copyright 2011 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +// Package blobstore provides a client for App Engine's persistent blob +// storage service. +package blobstore // import "google.golang.org/appengine/blobstore" + +import ( + "bufio" + "bytes" + "encoding/base64" + "fmt" + "io" + "io/ioutil" + "mime" + "mime/multipart" + "net/http" + "net/textproto" + "net/url" + "strconv" + "strings" + "time" + + "github.com/golang/protobuf/proto" + "golang.org/x/net/context" + "golang.org/x/text/encoding/htmlindex" + + "google.golang.org/appengine" + "google.golang.org/appengine/datastore" + "google.golang.org/appengine/internal" + + basepb "google.golang.org/appengine/internal/base" + blobpb "google.golang.org/appengine/internal/blobstore" +) + +const ( + blobInfoKind = "__BlobInfo__" + blobFileIndexKind = "__BlobFileIndex__" + zeroKey = appengine.BlobKey("") +) + +// BlobInfo is the blob metadata that is stored in the datastore. +// Filename may be empty. +type BlobInfo struct { + BlobKey appengine.BlobKey + ContentType string `datastore:"content_type"` + CreationTime time.Time `datastore:"creation"` + Filename string `datastore:"filename"` + Size int64 `datastore:"size"` + MD5 string `datastore:"md5_hash"` + + // ObjectName is the Google Cloud Storage name for this blob. + ObjectName string `datastore:"gs_object_name"` +} + +// isErrFieldMismatch returns whether err is a datastore.ErrFieldMismatch. +// +// The blobstore stores blob metadata in the datastore. When loading that +// metadata, it may contain fields that we don't care about. datastore.Get will +// return datastore.ErrFieldMismatch in that case, so we ignore that specific +// error. +func isErrFieldMismatch(err error) bool { + _, ok := err.(*datastore.ErrFieldMismatch) + return ok +} + +// Stat returns the BlobInfo for a provided blobKey. If no blob was found for +// that key, Stat returns datastore.ErrNoSuchEntity. +func Stat(c context.Context, blobKey appengine.BlobKey) (*BlobInfo, error) { + c, _ = appengine.Namespace(c, "") // Blobstore is always in the empty string namespace + dskey := datastore.NewKey(c, blobInfoKind, string(blobKey), 0, nil) + bi := &BlobInfo{ + BlobKey: blobKey, + } + if err := datastore.Get(c, dskey, bi); err != nil && !isErrFieldMismatch(err) { + return nil, err + } + return bi, nil +} + +// Send sets the headers on response to instruct App Engine to send a blob as +// the response body. This is more efficient than reading and writing it out +// manually and isn't subject to normal response size limits. +func Send(response http.ResponseWriter, blobKey appengine.BlobKey) { + hdr := response.Header() + hdr.Set("X-AppEngine-BlobKey", string(blobKey)) + + if hdr.Get("Content-Type") == "" { + // This value is known to dev_appserver to mean automatic. + // In production this is remapped to the empty value which + // means automatic. + hdr.Set("Content-Type", "application/vnd.google.appengine.auto") + } +} + +// UploadURL creates an upload URL for the form that the user will +// fill out, passing the application path to load when the POST of the +// form is completed. These URLs expire and should not be reused. The +// opts parameter may be nil. +func UploadURL(c context.Context, successPath string, opts *UploadURLOptions) (*url.URL, error) { + req := &blobpb.CreateUploadURLRequest{ + SuccessPath: proto.String(successPath), + } + if opts != nil { + if n := opts.MaxUploadBytes; n != 0 { + req.MaxUploadSizeBytes = &n + } + if n := opts.MaxUploadBytesPerBlob; n != 0 { + req.MaxUploadSizePerBlobBytes = &n + } + if s := opts.StorageBucket; s != "" { + req.GsBucketName = &s + } + } + res := &blobpb.CreateUploadURLResponse{} + if err := internal.Call(c, "blobstore", "CreateUploadURL", req, res); err != nil { + return nil, err + } + return url.Parse(*res.Url) +} + +// UploadURLOptions are the options to create an upload URL. +type UploadURLOptions struct { + MaxUploadBytes int64 // optional + MaxUploadBytesPerBlob int64 // optional + + // StorageBucket specifies the Google Cloud Storage bucket in which + // to store the blob. + // This is required if you use Cloud Storage instead of Blobstore. + // Your application must have permission to write to the bucket. + // You may optionally specify a bucket name and path in the format + // "bucket_name/path", in which case the included path will be the + // prefix of the uploaded object's name. + StorageBucket string +} + +// Delete deletes a blob. +func Delete(c context.Context, blobKey appengine.BlobKey) error { + return DeleteMulti(c, []appengine.BlobKey{blobKey}) +} + +// DeleteMulti deletes multiple blobs. +func DeleteMulti(c context.Context, blobKey []appengine.BlobKey) error { + s := make([]string, len(blobKey)) + for i, b := range blobKey { + s[i] = string(b) + } + req := &blobpb.DeleteBlobRequest{ + BlobKey: s, + } + res := &basepb.VoidProto{} + if err := internal.Call(c, "blobstore", "DeleteBlob", req, res); err != nil { + return err + } + return nil +} + +func errorf(format string, args ...interface{}) error { + return fmt.Errorf("blobstore: "+format, args...) +} + +// ParseUpload parses the synthetic POST request that your app gets from +// App Engine after a user's successful upload of blobs. Given the request, +// ParseUpload returns a map of the blobs received (keyed by HTML form +// element name) and other non-blob POST parameters. +func ParseUpload(req *http.Request) (blobs map[string][]*BlobInfo, other url.Values, err error) { + _, params, err := mime.ParseMediaType(req.Header.Get("Content-Type")) + if err != nil { + return nil, nil, err + } + boundary := params["boundary"] + if boundary == "" { + return nil, nil, errorf("did not find MIME multipart boundary") + } + + blobs = make(map[string][]*BlobInfo) + other = make(url.Values) + + mreader := multipart.NewReader(io.MultiReader(req.Body, strings.NewReader("\r\n\r\n")), boundary) + for { + part, perr := mreader.NextPart() + if perr == io.EOF { + break + } + if perr != nil { + return nil, nil, errorf("error reading next mime part with boundary %q (len=%d): %v", + boundary, len(boundary), perr) + } + + bi := &BlobInfo{} + ctype, params, err := mime.ParseMediaType(part.Header.Get("Content-Disposition")) + if err != nil { + return nil, nil, err + } + bi.Filename = params["filename"] + formKey := params["name"] + + ctype, params, err = mime.ParseMediaType(part.Header.Get("Content-Type")) + if err != nil { + return nil, nil, err + } + bi.BlobKey = appengine.BlobKey(params["blob-key"]) + charset := params["charset"] + + if ctype != "message/external-body" || bi.BlobKey == "" { + if formKey != "" { + slurp, serr := ioutil.ReadAll(part) + if serr != nil { + return nil, nil, errorf("error reading %q MIME part", formKey) + } + + // Handle base64 content transfer encoding. multipart.Part transparently + // handles quoted-printable, and no special handling is required for + // 7bit, 8bit, or binary. + ctype, params, err = mime.ParseMediaType(part.Header.Get("Content-Transfer-Encoding")) + if err == nil && ctype == "base64" { + slurp, serr = ioutil.ReadAll(base64.NewDecoder( + base64.StdEncoding, bytes.NewReader(slurp))) + if serr != nil { + return nil, nil, errorf("error %s decoding %q MIME part", ctype, formKey) + } + } + + // Handle charset + if charset != "" { + encoding, err := htmlindex.Get(charset) + if err != nil { + return nil, nil, errorf("error getting decoder for charset %q", charset) + } + + slurp, err = encoding.NewDecoder().Bytes(slurp) + if err != nil { + return nil, nil, errorf("error decoding from charset %q", charset) + } + } + + other[formKey] = append(other[formKey], string(slurp)) + } + continue + } + + // App Engine sends a MIME header as the body of each MIME part. + tp := textproto.NewReader(bufio.NewReader(part)) + header, mimeerr := tp.ReadMIMEHeader() + if mimeerr != nil { + return nil, nil, mimeerr + } + bi.Size, err = strconv.ParseInt(header.Get("Content-Length"), 10, 64) + if err != nil { + return nil, nil, err + } + bi.ContentType = header.Get("Content-Type") + + // Parse the time from the MIME header like: + // X-AppEngine-Upload-Creation: 2011-03-15 21:38:34.712136 + createDate := header.Get("X-AppEngine-Upload-Creation") + if createDate == "" { + return nil, nil, errorf("expected to find an X-AppEngine-Upload-Creation header") + } + bi.CreationTime, err = time.Parse("2006-01-02 15:04:05.000000", createDate) + if err != nil { + return nil, nil, errorf("error parsing X-AppEngine-Upload-Creation: %s", err) + } + + if hdr := header.Get("Content-MD5"); hdr != "" { + md5, err := base64.URLEncoding.DecodeString(hdr) + if err != nil { + return nil, nil, errorf("bad Content-MD5 %q: %v", hdr, err) + } + bi.MD5 = string(md5) + } + + // If the GCS object name was provided, record it. + bi.ObjectName = header.Get("X-AppEngine-Cloud-Storage-Object") + + blobs[formKey] = append(blobs[formKey], bi) + } + return +} + +// Reader is a blob reader. +type Reader interface { + io.Reader + io.ReaderAt + io.Seeker +} + +// NewReader returns a reader for a blob. It always succeeds; if the blob does +// not exist then an error will be reported upon first read. +func NewReader(c context.Context, blobKey appengine.BlobKey) Reader { + return openBlob(c, blobKey) +} + +// BlobKeyForFile returns a BlobKey for a Google Storage file. +// The filename should be of the form "/gs/bucket_name/object_name". +func BlobKeyForFile(c context.Context, filename string) (appengine.BlobKey, error) { + req := &blobpb.CreateEncodedGoogleStorageKeyRequest{ + Filename: &filename, + } + res := &blobpb.CreateEncodedGoogleStorageKeyResponse{} + if err := internal.Call(c, "blobstore", "CreateEncodedGoogleStorageKey", req, res); err != nil { + return "", err + } + return appengine.BlobKey(*res.BlobKey), nil +} diff --git a/vendor/google.golang.org/appengine/blobstore/blobstore_test.go b/vendor/google.golang.org/appengine/blobstore/blobstore_test.go new file mode 100644 index 000000000..4616211ed --- /dev/null +++ b/vendor/google.golang.org/appengine/blobstore/blobstore_test.go @@ -0,0 +1,289 @@ +// Copyright 2011 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package blobstore + +import ( + "bytes" + "encoding/base64" + "fmt" + "io" + "mime/multipart" + "mime/quotedprintable" + "net/http" + "net/textproto" + "os" + "strconv" + "strings" + "testing" + + "golang.org/x/text/encoding/htmlindex" + + "google.golang.org/appengine" + "google.golang.org/appengine/internal/aetesting" + + pb "google.golang.org/appengine/internal/blobstore" +) + +const rbs = readBufferSize + +const charsetUTF8 = "utf-8" +const charsetISO2022JP = "iso-2022-jp" +const nonASCIIStr = "Hello, 世界" + +func min(x, y int) int { + if x < y { + return x + } + return y +} + +func fakeFetchData(req *pb.FetchDataRequest, res *pb.FetchDataResponse) error { + i0 := int(*req.StartIndex) + i1 := int(*req.EndIndex + 1) // Blobstore's end-indices are inclusive; Go's are exclusive. + bk := *req.BlobKey + if i := strings.Index(bk, "."); i != -1 { + // Strip everything past the ".". + bk = bk[:i] + } + switch bk { + case "a14p": + const s = "abcdefghijklmnop" + i0 := min(len(s), i0) + i1 := min(len(s), i1) + res.Data = []byte(s[i0:i1]) + case "longBlob": + res.Data = make([]byte, i1-i0) + for i := range res.Data { + res.Data[i] = 'A' + uint8(i0/rbs) + i0++ + } + } + return nil +} + +// step is one step of a readerTest. +// It consists of a Reader method to call, the method arguments +// (lenp, offset, whence) and the expected results. +type step struct { + method string + lenp int + offset int64 + whence int + want string + wantErr error +} + +var readerTest = []struct { + blobKey string + step []step +}{ + {"noSuchBlobKey", []step{ + {"Read", 8, 0, 0, "", io.EOF}, + }}, + {"a14p.0", []step{ + // Test basic reads. + {"Read", 1, 0, 0, "a", nil}, + {"Read", 3, 0, 0, "bcd", nil}, + {"Read", 1, 0, 0, "e", nil}, + {"Read", 2, 0, 0, "fg", nil}, + // Test Seek. + {"Seek", 0, 2, os.SEEK_SET, "2", nil}, + {"Read", 5, 0, 0, "cdefg", nil}, + {"Seek", 0, 2, os.SEEK_CUR, "9", nil}, + {"Read", 1, 0, 0, "j", nil}, + // Test reads up to and past EOF. + {"Read", 5, 0, 0, "klmno", nil}, + {"Read", 5, 0, 0, "p", nil}, + {"Read", 5, 0, 0, "", io.EOF}, + // Test ReadAt. + {"ReadAt", 4, 0, 0, "abcd", nil}, + {"ReadAt", 4, 3, 0, "defg", nil}, + {"ReadAt", 4, 12, 0, "mnop", nil}, + {"ReadAt", 4, 13, 0, "nop", io.EOF}, + {"ReadAt", 4, 99, 0, "", io.EOF}, + }}, + {"a14p.1", []step{ + // Test Seek before any reads. + {"Seek", 0, 2, os.SEEK_SET, "2", nil}, + {"Read", 1, 0, 0, "c", nil}, + // Test that ReadAt doesn't affect the Read offset. + {"ReadAt", 3, 9, 0, "jkl", nil}, + {"Read", 3, 0, 0, "def", nil}, + }}, + {"a14p.2", []step{ + // Test ReadAt before any reads or seeks. + {"ReadAt", 2, 14, 0, "op", nil}, + }}, + {"longBlob.0", []step{ + // Test basic read. + {"Read", 1, 0, 0, "A", nil}, + // Test that Read returns early when the buffer is exhausted. + {"Seek", 0, rbs - 2, os.SEEK_SET, strconv.Itoa(rbs - 2), nil}, + {"Read", 5, 0, 0, "AA", nil}, + {"Read", 3, 0, 0, "BBB", nil}, + // Test that what we just read is still in the buffer. + {"Seek", 0, rbs - 2, os.SEEK_SET, strconv.Itoa(rbs - 2), nil}, + {"Read", 5, 0, 0, "AABBB", nil}, + // Test ReadAt. + {"ReadAt", 3, rbs - 4, 0, "AAA", nil}, + {"ReadAt", 6, rbs - 4, 0, "AAAABB", nil}, + {"ReadAt", 8, rbs - 4, 0, "AAAABBBB", nil}, + {"ReadAt", 5, rbs - 4, 0, "AAAAB", nil}, + {"ReadAt", 2, rbs - 4, 0, "AA", nil}, + // Test seeking backwards from the Read offset. + {"Seek", 0, 2*rbs - 8, os.SEEK_SET, strconv.Itoa(2*rbs - 8), nil}, + {"Read", 1, 0, 0, "B", nil}, + {"Read", 1, 0, 0, "B", nil}, + {"Read", 1, 0, 0, "B", nil}, + {"Read", 1, 0, 0, "B", nil}, + {"Read", 8, 0, 0, "BBBBCCCC", nil}, + }}, + {"longBlob.1", []step{ + // Test ReadAt with a slice larger than the buffer size. + {"LargeReadAt", 2*rbs - 2, 0, 0, strconv.Itoa(2*rbs - 2), nil}, + {"LargeReadAt", 2*rbs - 1, 0, 0, strconv.Itoa(2*rbs - 1), nil}, + {"LargeReadAt", 2*rbs + 0, 0, 0, strconv.Itoa(2*rbs + 0), nil}, + {"LargeReadAt", 2*rbs + 1, 0, 0, strconv.Itoa(2*rbs + 1), nil}, + {"LargeReadAt", 2*rbs + 2, 0, 0, strconv.Itoa(2*rbs + 2), nil}, + {"LargeReadAt", 2*rbs - 2, 1, 0, strconv.Itoa(2*rbs - 2), nil}, + {"LargeReadAt", 2*rbs - 1, 1, 0, strconv.Itoa(2*rbs - 1), nil}, + {"LargeReadAt", 2*rbs + 0, 1, 0, strconv.Itoa(2*rbs + 0), nil}, + {"LargeReadAt", 2*rbs + 1, 1, 0, strconv.Itoa(2*rbs + 1), nil}, + {"LargeReadAt", 2*rbs + 2, 1, 0, strconv.Itoa(2*rbs + 2), nil}, + }}, +} + +func TestReader(t *testing.T) { + for _, rt := range readerTest { + c := aetesting.FakeSingleContext(t, "blobstore", "FetchData", fakeFetchData) + r := NewReader(c, appengine.BlobKey(rt.blobKey)) + for i, step := range rt.step { + var ( + got string + gotErr error + n int + offset int64 + ) + switch step.method { + case "LargeReadAt": + p := make([]byte, step.lenp) + n, gotErr = r.ReadAt(p, step.offset) + got = strconv.Itoa(n) + case "Read": + p := make([]byte, step.lenp) + n, gotErr = r.Read(p) + got = string(p[:n]) + case "ReadAt": + p := make([]byte, step.lenp) + n, gotErr = r.ReadAt(p, step.offset) + got = string(p[:n]) + case "Seek": + offset, gotErr = r.Seek(step.offset, step.whence) + got = strconv.FormatInt(offset, 10) + default: + t.Fatalf("unknown method: %s", step.method) + } + if gotErr != step.wantErr { + t.Fatalf("%s step %d: got error %v want %v", rt.blobKey, i, gotErr, step.wantErr) + } + if got != step.want { + t.Fatalf("%s step %d: got %q want %q", rt.blobKey, i, got, step.want) + } + } + } +} + +// doPlainTextParseUploadTest tests ParseUpload's decoding of non-file form fields. +// It ensures that MIME multipart parts with Content-Type not equal to +// "message/external-body" (i.e. form fields that are not file uploads) are decoded +// correctly according to the value of their Content-Transfer-Encoding header field. +// If charset is not the empty string it will be set in the request's Content-Type +// header field, and if encoding is not the empty string then the Content-Transfer-Encoding +// header field will be set. +func doPlainTextParseUploadTest(t *testing.T, charset string, encoding string, + rawContent string, encodedContent string) { + bodyBuf := &bytes.Buffer{} + w := multipart.NewWriter(bodyBuf) + + fieldName := "foo" + hdr := textproto.MIMEHeader{} + hdr.Set("Content-Disposition", fmt.Sprintf("form-data; name=%q", fieldName)) + + if charset != "" { + hdr.Set("Content-Type", fmt.Sprintf("text/plain; charset=%q", charset)) + } else { + hdr.Set("Content-Type", "text/plain") + } + + if encoding != "" { + hdr.Set("Content-Transfer-Encoding", encoding) + } + + pw, err := w.CreatePart(hdr) + if err != nil { + t.Fatalf("error creating part: %v", err) + } + pw.Write([]byte(encodedContent)) + + if err := w.Close(); err != nil { + t.Fatalf("error closing multipart writer: %v\n", err) + } + + req, err := http.NewRequest("POST", "/upload", bodyBuf) + if err != nil { + t.Fatalf("error creating request: %v", err) + } + + req.Header.Set("Content-Type", w.FormDataContentType()) + _, other, err := ParseUpload(req) + if err != nil { + t.Fatalf("error parsing upload: %v", err) + } + + if other[fieldName][0] != rawContent { + t.Errorf("got %q expected %q", other[fieldName][0], rawContent) + } +} + +func TestParseUploadUTF8Base64Encoding(t *testing.T) { + encoded := base64.StdEncoding.EncodeToString([]byte(nonASCIIStr)) + doPlainTextParseUploadTest(t, charsetUTF8, "base64", nonASCIIStr, encoded) +} + +func TestParseUploadUTF8Base64EncodingMultiline(t *testing.T) { + testStr := "words words words words words words words words words words words words" + encoded := "d29yZHMgd29yZHMgd29yZHMgd29yZHMgd29yZHMgd29yZHMgd29yZHMgd29yZHMgd29yZHMgd29y\r\nZHMgd29yZHMgd29yZHM=" + doPlainTextParseUploadTest(t, charsetUTF8, "base64", testStr, encoded) +} + +func TestParseUploadUTF8QuotedPrintableEncoding(t *testing.T) { + var encoded bytes.Buffer + writer := quotedprintable.NewWriter(&encoded) + writer.Write([]byte(nonASCIIStr)) + writer.Close() + + doPlainTextParseUploadTest(t, charsetUTF8, "quoted-printable", nonASCIIStr, + encoded.String()) +} + +func TestParseUploadISO2022JPBase64Encoding(t *testing.T) { + testStr := "ã“ã‚“ã«ã¡ã¯" + encoding, err := htmlindex.Get(charsetISO2022JP) + if err != nil { + t.Fatalf("error getting encoding: %v", err) + } + + charsetEncoded, err := encoding.NewEncoder().String(testStr) + if err != nil { + t.Fatalf("error encoding string: %v", err) + } + + base64Encoded := base64.StdEncoding.EncodeToString([]byte(charsetEncoded)) + doPlainTextParseUploadTest(t, charsetISO2022JP, "base64", testStr, base64Encoded) +} + +func TestParseUploadNoEncoding(t *testing.T) { + doPlainTextParseUploadTest(t, "", "", "Hello", "Hello") +} diff --git a/vendor/google.golang.org/appengine/blobstore/read.go b/vendor/google.golang.org/appengine/blobstore/read.go new file mode 100644 index 000000000..578b1f550 --- /dev/null +++ b/vendor/google.golang.org/appengine/blobstore/read.go @@ -0,0 +1,160 @@ +// Copyright 2012 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package blobstore + +import ( + "errors" + "fmt" + "io" + "os" + "sync" + + "github.com/golang/protobuf/proto" + "golang.org/x/net/context" + + "google.golang.org/appengine" + "google.golang.org/appengine/internal" + + blobpb "google.golang.org/appengine/internal/blobstore" +) + +// openBlob returns a reader for a blob. It always succeeds; if the blob does +// not exist then an error will be reported upon first read. +func openBlob(c context.Context, blobKey appengine.BlobKey) Reader { + return &reader{ + c: c, + blobKey: blobKey, + } +} + +const readBufferSize = 256 * 1024 + +// reader is a blob reader. It implements the Reader interface. +type reader struct { + c context.Context + + // Either blobKey or filename is set: + blobKey appengine.BlobKey + filename string + + closeFunc func() // is nil if unavailable or already closed. + + // buf is the read buffer. r is how much of buf has been read. + // off is the offset of buf[0] relative to the start of the blob. + // An invariant is 0 <= r && r <= len(buf). + // Reads that don't require an RPC call will increment r but not off. + // Seeks may modify r without discarding the buffer, but only if the + // invariant can be maintained. + mu sync.Mutex + buf []byte + r int + off int64 +} + +func (r *reader) Close() error { + if f := r.closeFunc; f != nil { + f() + } + r.closeFunc = nil + return nil +} + +func (r *reader) Read(p []byte) (int, error) { + if len(p) == 0 { + return 0, nil + } + r.mu.Lock() + defer r.mu.Unlock() + if r.r == len(r.buf) { + if err := r.fetch(r.off + int64(r.r)); err != nil { + return 0, err + } + } + n := copy(p, r.buf[r.r:]) + r.r += n + return n, nil +} + +func (r *reader) ReadAt(p []byte, off int64) (int, error) { + if len(p) == 0 { + return 0, nil + } + r.mu.Lock() + defer r.mu.Unlock() + // Convert relative offsets to absolute offsets. + ab0 := r.off + int64(r.r) + ab1 := r.off + int64(len(r.buf)) + ap0 := off + ap1 := off + int64(len(p)) + // Check if we can satisfy the read entirely out of the existing buffer. + if r.off <= ap0 && ap1 <= ab1 { + // Convert off from an absolute offset to a relative offset. + rp0 := int(ap0 - r.off) + return copy(p, r.buf[rp0:]), nil + } + // Restore the original Read/Seek offset after ReadAt completes. + defer r.seek(ab0) + // Repeatedly fetch and copy until we have filled p. + n := 0 + for len(p) > 0 { + if err := r.fetch(off + int64(n)); err != nil { + return n, err + } + r.r = copy(p, r.buf) + n += r.r + p = p[r.r:] + } + return n, nil +} + +func (r *reader) Seek(offset int64, whence int) (ret int64, err error) { + r.mu.Lock() + defer r.mu.Unlock() + switch whence { + case os.SEEK_SET: + ret = offset + case os.SEEK_CUR: + ret = r.off + int64(r.r) + offset + case os.SEEK_END: + return 0, errors.New("seeking relative to the end of a blob isn't supported") + default: + return 0, fmt.Errorf("invalid Seek whence value: %d", whence) + } + if ret < 0 { + return 0, errors.New("negative Seek offset") + } + return r.seek(ret) +} + +// fetch fetches readBufferSize bytes starting at the given offset. On success, +// the data is saved as r.buf. +func (r *reader) fetch(off int64) error { + req := &blobpb.FetchDataRequest{ + BlobKey: proto.String(string(r.blobKey)), + StartIndex: proto.Int64(off), + EndIndex: proto.Int64(off + readBufferSize - 1), // EndIndex is inclusive. + } + res := &blobpb.FetchDataResponse{} + if err := internal.Call(r.c, "blobstore", "FetchData", req, res); err != nil { + return err + } + if len(res.Data) == 0 { + return io.EOF + } + r.buf, r.r, r.off = res.Data, 0, off + return nil +} + +// seek seeks to the given offset with an effective whence equal to SEEK_SET. +// It discards the read buffer if the invariant cannot be maintained. +func (r *reader) seek(off int64) (int64, error) { + delta := off - r.off + if delta >= 0 && delta < int64(len(r.buf)) { + r.r = int(delta) + return off, nil + } + r.buf, r.r, r.off = nil, 0, off + return off, nil +} diff --git a/vendor/google.golang.org/appengine/capability/capability.go b/vendor/google.golang.org/appengine/capability/capability.go new file mode 100644 index 000000000..3a60bd55f --- /dev/null +++ b/vendor/google.golang.org/appengine/capability/capability.go @@ -0,0 +1,52 @@ +// Copyright 2011 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +/* +Package capability exposes information about outages and scheduled downtime +for specific API capabilities. + +This package does not work in App Engine "flexible environment". + +Example: + if !capability.Enabled(c, "datastore_v3", "write") { + // show user a different page + } +*/ +package capability // import "google.golang.org/appengine/capability" + +import ( + "golang.org/x/net/context" + + "google.golang.org/appengine/internal" + "google.golang.org/appengine/log" + + pb "google.golang.org/appengine/internal/capability" +) + +// Enabled returns whether an API's capabilities are enabled. +// The wildcard "*" capability matches every capability of an API. +// If the underlying RPC fails (if the package is unknown, for example), +// false is returned and information is written to the application log. +func Enabled(ctx context.Context, api, capability string) bool { + req := &pb.IsEnabledRequest{ + Package: &api, + Capability: []string{capability}, + } + res := &pb.IsEnabledResponse{} + if err := internal.Call(ctx, "capability_service", "IsEnabled", req, res); err != nil { + log.Warningf(ctx, "capability.Enabled: RPC failed: %v", err) + return false + } + switch *res.SummaryStatus { + case pb.IsEnabledResponse_ENABLED, + pb.IsEnabledResponse_SCHEDULED_FUTURE, + pb.IsEnabledResponse_SCHEDULED_NOW: + return true + case pb.IsEnabledResponse_UNKNOWN: + log.Errorf(ctx, "capability.Enabled: unknown API capability %s/%s", api, capability) + return false + default: + return false + } +} diff --git a/vendor/google.golang.org/appengine/channel/channel.go b/vendor/google.golang.org/appengine/channel/channel.go new file mode 100644 index 000000000..96945f6d6 --- /dev/null +++ b/vendor/google.golang.org/appengine/channel/channel.go @@ -0,0 +1,87 @@ +// Copyright 2011 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +/* +Package channel implements the server side of App Engine's Channel API. + +Create creates a new channel associated with the given clientID, +which must be unique to the client that will use the returned token. + + token, err := channel.Create(c, "player1") + if err != nil { + // handle error + } + // return token to the client in an HTTP response + +Send sends a message to the client over the channel identified by clientID. + + channel.Send(c, "player1", "Game over!") + +Deprecated: The Channel API feature has been deprecated and is going to be removed. See the Channel API Turndown document for details and timetable. + +https://cloud.google.com/appengine/docs/deprecations/channel +*/ +package channel // import "google.golang.org/appengine/channel" + +import ( + "encoding/json" + + "golang.org/x/net/context" + + "google.golang.org/appengine" + "google.golang.org/appengine/internal" + basepb "google.golang.org/appengine/internal/base" + pb "google.golang.org/appengine/internal/channel" +) + +// Create creates a channel and returns a token for use by the client. +// The clientID is an application-provided string used to identify the client. +func Create(c context.Context, clientID string) (token string, err error) { + req := &pb.CreateChannelRequest{ + ApplicationKey: &clientID, + } + resp := &pb.CreateChannelResponse{} + err = internal.Call(c, service, "CreateChannel", req, resp) + token = resp.GetToken() + return token, remapError(err) +} + +// Send sends a message on the channel associated with clientID. +func Send(c context.Context, clientID, message string) error { + req := &pb.SendMessageRequest{ + ApplicationKey: &clientID, + Message: &message, + } + resp := &basepb.VoidProto{} + return remapError(internal.Call(c, service, "SendChannelMessage", req, resp)) +} + +// SendJSON is a helper function that sends a JSON-encoded value +// on the channel associated with clientID. +func SendJSON(c context.Context, clientID string, value interface{}) error { + m, err := json.Marshal(value) + if err != nil { + return err + } + return Send(c, clientID, string(m)) +} + +// remapError fixes any APIError referencing "xmpp" into one referencing "channel". +func remapError(err error) error { + if e, ok := err.(*internal.APIError); ok { + if e.Service == "xmpp" { + e.Service = "channel" + } + } + return err +} + +var service = "xmpp" // prod + +func init() { + if appengine.IsDevAppServer() { + service = "channel" // dev + } + internal.RegisterErrorCodeMap("channel", pb.ChannelServiceError_ErrorCode_name) +} diff --git a/vendor/google.golang.org/appengine/channel/channel_test.go b/vendor/google.golang.org/appengine/channel/channel_test.go new file mode 100644 index 000000000..c7498eb83 --- /dev/null +++ b/vendor/google.golang.org/appengine/channel/channel_test.go @@ -0,0 +1,21 @@ +// Copyright 2015 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package channel + +import ( + "testing" + + "google.golang.org/appengine/internal" +) + +func TestRemapError(t *testing.T) { + err := &internal.APIError{ + Service: "xmpp", + } + err = remapError(err).(*internal.APIError) + if err.Service != "channel" { + t.Errorf("err.Service = %q, want %q", err.Service, "channel") + } +} diff --git a/vendor/google.golang.org/appengine/cloudsql/cloudsql.go b/vendor/google.golang.org/appengine/cloudsql/cloudsql.go new file mode 100644 index 000000000..7b27e6b12 --- /dev/null +++ b/vendor/google.golang.org/appengine/cloudsql/cloudsql.go @@ -0,0 +1,62 @@ +// Copyright 2013 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +/* +Package cloudsql exposes access to Google Cloud SQL databases. + +This package does not work in App Engine "flexible environment". + +This package is intended for MySQL drivers to make App Engine-specific +connections. Applications should use this package through database/sql: +Select a pure Go MySQL driver that supports this package, and use sql.Open +with protocol "cloudsql" and an address of the Cloud SQL instance. + +A Go MySQL driver that has been tested to work well with Cloud SQL +is the go-sql-driver: + import "database/sql" + import _ "github.com/go-sql-driver/mysql" + + db, err := sql.Open("mysql", "user@cloudsql(project-id:instance-name)/dbname") + + +Another driver that works well with Cloud SQL is the mymysql driver: + import "database/sql" + import _ "github.com/ziutek/mymysql/godrv" + + db, err := sql.Open("mymysql", "cloudsql:instance-name*dbname/user/password") + + +Using either of these drivers, you can perform a standard SQL query. +This example assumes there is a table named 'users' with +columns 'first_name' and 'last_name': + + rows, err := db.Query("SELECT first_name, last_name FROM users") + if err != nil { + log.Errorf(ctx, "db.Query: %v", err) + } + defer rows.Close() + + for rows.Next() { + var firstName string + var lastName string + if err := rows.Scan(&firstName, &lastName); err != nil { + log.Errorf(ctx, "rows.Scan: %v", err) + continue + } + log.Infof(ctx, "First: %v - Last: %v", firstName, lastName) + } + if err := rows.Err(); err != nil { + log.Errorf(ctx, "Row error: %v", err) + } +*/ +package cloudsql + +import ( + "net" +) + +// Dial connects to the named Cloud SQL instance. +func Dial(instance string) (net.Conn, error) { + return connect(instance) +} diff --git a/vendor/google.golang.org/appengine/cloudsql/cloudsql_classic.go b/vendor/google.golang.org/appengine/cloudsql/cloudsql_classic.go new file mode 100644 index 000000000..af62dba14 --- /dev/null +++ b/vendor/google.golang.org/appengine/cloudsql/cloudsql_classic.go @@ -0,0 +1,17 @@ +// Copyright 2013 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +// +build appengine + +package cloudsql + +import ( + "net" + + "appengine/cloudsql" +) + +func connect(instance string) (net.Conn, error) { + return cloudsql.Dial(instance) +} diff --git a/vendor/google.golang.org/appengine/cloudsql/cloudsql_vm.go b/vendor/google.golang.org/appengine/cloudsql/cloudsql_vm.go new file mode 100644 index 000000000..90fa7b31e --- /dev/null +++ b/vendor/google.golang.org/appengine/cloudsql/cloudsql_vm.go @@ -0,0 +1,16 @@ +// Copyright 2013 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +// +build !appengine + +package cloudsql + +import ( + "errors" + "net" +) + +func connect(instance string) (net.Conn, error) { + return nil, errors.New(`cloudsql: not supported in App Engine "flexible environment"`) +} diff --git a/vendor/google.golang.org/appengine/cmd/aebundler/aebundler.go b/vendor/google.golang.org/appengine/cmd/aebundler/aebundler.go new file mode 100644 index 000000000..c66849e83 --- /dev/null +++ b/vendor/google.golang.org/appengine/cmd/aebundler/aebundler.go @@ -0,0 +1,342 @@ +// Copyright 2015 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +// Program aebundler turns a Go app into a fully self-contained tar file. +// The app and its subdirectories (if any) are placed under "." +// and the dependencies from $GOPATH are placed under ./_gopath/src. +// A main func is synthesized if one does not exist. +// +// A sample Dockerfile to be used with this bundler could look like this: +// FROM gcr.io/google-appengine/go-compat +// ADD . /app +// RUN GOPATH=/app/_gopath go build -tags appenginevm -o /app/_ah/exe +package main + +import ( + "archive/tar" + "flag" + "fmt" + "go/ast" + "go/build" + "go/parser" + "go/token" + "io" + "io/ioutil" + "os" + "path/filepath" + "strings" +) + +var ( + output = flag.String("o", "", "name of output tar file or '-' for stdout") + rootDir = flag.String("root", ".", "directory name of application root") + vm = flag.Bool("vm", true, `bundle an app for App Engine "flexible environment"`) + + skipFiles = map[string]bool{ + ".git": true, + ".gitconfig": true, + ".hg": true, + ".travis.yml": true, + } +) + +const ( + newMain = `package main +import "google.golang.org/appengine" +func main() { + appengine.Main() +} +` +) + +func usage() { + fmt.Fprintf(os.Stderr, "Usage of %s:\n", os.Args[0]) + fmt.Fprintf(os.Stderr, "\t%s -o \tBundle app to named tar file or stdout\n", os.Args[0]) + fmt.Fprintf(os.Stderr, "\noptional arguments:\n") + flag.PrintDefaults() +} + +func main() { + flag.Usage = usage + flag.Parse() + + var tags []string + if *vm { + tags = append(tags, "appenginevm") + } else { + tags = append(tags, "appengine") + } + + tarFile := *output + if tarFile == "" { + usage() + errorf("Required -o flag not specified.") + } + + app, err := analyze(tags) + if err != nil { + errorf("Error analyzing app: %v", err) + } + if err := app.bundle(tarFile); err != nil { + errorf("Unable to bundle app: %v", err) + } +} + +// errorf prints the error message and exits. +func errorf(format string, a ...interface{}) { + fmt.Fprintf(os.Stderr, "aebundler: "+format+"\n", a...) + os.Exit(1) +} + +type app struct { + hasMain bool + appFiles []string + imports map[string]string +} + +// analyze checks the app for building with the given build tags and returns hasMain, +// app files, and a map of full directory import names to original import names. +func analyze(tags []string) (*app, error) { + ctxt := buildContext(tags) + hasMain, appFiles, err := checkMain(ctxt) + if err != nil { + return nil, err + } + gopath := filepath.SplitList(ctxt.GOPATH) + im, err := imports(ctxt, *rootDir, gopath) + return &app{ + hasMain: hasMain, + appFiles: appFiles, + imports: im, + }, err +} + +// buildContext returns the context for building the source. +func buildContext(tags []string) *build.Context { + return &build.Context{ + GOARCH: build.Default.GOARCH, + GOOS: build.Default.GOOS, + GOROOT: build.Default.GOROOT, + GOPATH: build.Default.GOPATH, + Compiler: build.Default.Compiler, + BuildTags: append(build.Default.BuildTags, tags...), + } +} + +// bundle bundles the app into the named tarFile ("-"==stdout). +func (s *app) bundle(tarFile string) (err error) { + var out io.Writer + if tarFile == "-" { + out = os.Stdout + } else { + f, err := os.Create(tarFile) + if err != nil { + return err + } + defer func() { + if cerr := f.Close(); err == nil { + err = cerr + } + }() + out = f + } + tw := tar.NewWriter(out) + + for srcDir, importName := range s.imports { + dstDir := "_gopath/src/" + importName + if err = copyTree(tw, dstDir, srcDir); err != nil { + return fmt.Errorf("unable to copy directory %v to %v: %v", srcDir, dstDir, err) + } + } + if err := copyTree(tw, ".", *rootDir); err != nil { + return fmt.Errorf("unable to copy root directory to /app: %v", err) + } + if !s.hasMain { + if err := synthesizeMain(tw, s.appFiles); err != nil { + return fmt.Errorf("unable to synthesize new main func: %v", err) + } + } + + if err := tw.Close(); err != nil { + return fmt.Errorf("unable to close tar file %v: %v", tarFile, err) + } + return nil +} + +// synthesizeMain generates a new main func and writes it to the tarball. +func synthesizeMain(tw *tar.Writer, appFiles []string) error { + appMap := make(map[string]bool) + for _, f := range appFiles { + appMap[f] = true + } + var f string + for i := 0; i < 100; i++ { + f = fmt.Sprintf("app_main%d.go", i) + if !appMap[filepath.Join(*rootDir, f)] { + break + } + } + if appMap[filepath.Join(*rootDir, f)] { + return fmt.Errorf("unable to find unique name for %v", f) + } + hdr := &tar.Header{ + Name: f, + Mode: 0644, + Size: int64(len(newMain)), + } + if err := tw.WriteHeader(hdr); err != nil { + return fmt.Errorf("unable to write header for %v: %v", f, err) + } + if _, err := tw.Write([]byte(newMain)); err != nil { + return fmt.Errorf("unable to write %v to tar file: %v", f, err) + } + return nil +} + +// imports returns a map of all import directories (recursively) used by the app. +// The return value maps full directory names to original import names. +func imports(ctxt *build.Context, srcDir string, gopath []string) (map[string]string, error) { + pkg, err := ctxt.ImportDir(srcDir, 0) + if err != nil { + return nil, fmt.Errorf("unable to analyze source: %v", err) + } + + // Resolve all non-standard-library imports + result := make(map[string]string) + for _, v := range pkg.Imports { + if !strings.Contains(v, ".") { + continue + } + src, err := findInGopath(v, gopath) + if err != nil { + return nil, fmt.Errorf("unable to find import %v in gopath %v: %v", v, gopath, err) + } + result[src] = v + im, err := imports(ctxt, src, gopath) + if err != nil { + return nil, fmt.Errorf("unable to parse package %v: %v", src, err) + } + for k, v := range im { + result[k] = v + } + } + return result, nil +} + +// findInGopath searches the gopath for the named import directory. +func findInGopath(dir string, gopath []string) (string, error) { + for _, v := range gopath { + dst := filepath.Join(v, "src", dir) + if _, err := os.Stat(dst); err == nil { + return dst, nil + } + } + return "", fmt.Errorf("unable to find package %v in gopath %v", dir, gopath) +} + +// copyTree copies srcDir to tar file dstDir, ignoring skipFiles. +func copyTree(tw *tar.Writer, dstDir, srcDir string) error { + entries, err := ioutil.ReadDir(srcDir) + if err != nil { + return fmt.Errorf("unable to read dir %v: %v", srcDir, err) + } + for _, entry := range entries { + n := entry.Name() + if skipFiles[n] { + continue + } + s := filepath.Join(srcDir, n) + d := filepath.Join(dstDir, n) + if entry.IsDir() { + if err := copyTree(tw, d, s); err != nil { + return fmt.Errorf("unable to copy dir %v to %v: %v", s, d, err) + } + continue + } + if err := copyFile(tw, d, s); err != nil { + return fmt.Errorf("unable to copy dir %v to %v: %v", s, d, err) + } + } + return nil +} + +// copyFile copies src to tar file dst. +func copyFile(tw *tar.Writer, dst, src string) error { + s, err := os.Open(src) + if err != nil { + return fmt.Errorf("unable to open %v: %v", src, err) + } + defer s.Close() + fi, err := s.Stat() + if err != nil { + return fmt.Errorf("unable to stat %v: %v", src, err) + } + + hdr, err := tar.FileInfoHeader(fi, dst) + if err != nil { + return fmt.Errorf("unable to create tar header for %v: %v", dst, err) + } + hdr.Name = dst + if err := tw.WriteHeader(hdr); err != nil { + return fmt.Errorf("unable to write header for %v: %v", dst, err) + } + _, err = io.Copy(tw, s) + if err != nil { + return fmt.Errorf("unable to copy %v to %v: %v", src, dst, err) + } + return nil +} + +// checkMain verifies that there is a single "main" function. +// It also returns a list of all Go source files in the app. +func checkMain(ctxt *build.Context) (bool, []string, error) { + pkg, err := ctxt.ImportDir(*rootDir, 0) + if err != nil { + return false, nil, fmt.Errorf("unable to analyze source: %v", err) + } + if !pkg.IsCommand() { + errorf("Your app's package needs to be changed from %q to \"main\".\n", pkg.Name) + } + // Search for a "func main" + var hasMain bool + var appFiles []string + for _, f := range pkg.GoFiles { + n := filepath.Join(*rootDir, f) + appFiles = append(appFiles, n) + if hasMain, err = readFile(n); err != nil { + return false, nil, fmt.Errorf("error parsing %q: %v", n, err) + } + } + return hasMain, appFiles, nil +} + +// isMain returns whether the given function declaration is a main function. +// Such a function must be called "main", not have a receiver, and have no arguments or return types. +func isMain(f *ast.FuncDecl) bool { + ft := f.Type + return f.Name.Name == "main" && f.Recv == nil && ft.Params.NumFields() == 0 && ft.Results.NumFields() == 0 +} + +// readFile reads and parses the Go source code file and returns whether it has a main function. +func readFile(filename string) (hasMain bool, err error) { + var src []byte + src, err = ioutil.ReadFile(filename) + if err != nil { + return + } + fset := token.NewFileSet() + file, err := parser.ParseFile(fset, filename, src, 0) + for _, decl := range file.Decls { + funcDecl, ok := decl.(*ast.FuncDecl) + if !ok { + continue + } + if !isMain(funcDecl) { + continue + } + hasMain = true + break + } + return +} diff --git a/vendor/google.golang.org/appengine/cmd/aedeploy/aedeploy.go b/vendor/google.golang.org/appengine/cmd/aedeploy/aedeploy.go new file mode 100644 index 000000000..8093c93ff --- /dev/null +++ b/vendor/google.golang.org/appengine/cmd/aedeploy/aedeploy.go @@ -0,0 +1,72 @@ +// Copyright 2015 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +// Program aedeploy assists with deploying App Engine "flexible environment" Go apps to production. +// A temporary directory is created; the app, its subdirectories, and all its +// dependencies from $GOPATH are copied into the directory; then the app +// is deployed to production with the provided command. +// +// The app must be in "package main". +// +// This command must be issued from within the root directory of the app +// (where the app.yaml file is located). +package main + +import ( + "flag" + "fmt" + "log" + "os" + "os/exec" + "strings" +) + +func usage() { + fmt.Fprintf(os.Stderr, "Usage of %s:\n", os.Args[0]) + fmt.Fprintf(os.Stderr, "\t%s gcloud --verbosity debug app deploy --version myversion ./app.yaml\tDeploy app to production\n", os.Args[0]) +} + +var verbose bool + +// vlogf logs to stderr if the "-v" flag is provided. +func vlogf(f string, v ...interface{}) { + if !verbose { + return + } + log.Printf("[aedeploy] "+f, v...) +} + +func main() { + flag.BoolVar(&verbose, "v", false, "Verbose logging.") + flag.Usage = usage + flag.Parse() + if flag.NArg() < 1 { + usage() + os.Exit(1) + } + + notice := func() { + fmt.Fprintln(os.Stderr, `NOTICE: aedeploy is deprecated. Just use "gcloud app deploy".`) + } + + notice() + if err := deploy(); err != nil { + fmt.Fprintf(os.Stderr, os.Args[0]+": Error: %v\n", err) + notice() + fmt.Fprintln(os.Stderr, `You might need to update gcloud. Run "gcloud components update".`) + os.Exit(1) + } + notice() // Make sure they see it at the end. +} + +// deploy calls the provided command to deploy the app from the temporary directory. +func deploy() error { + vlogf("Running command %v", flag.Args()) + cmd := exec.Command(flag.Arg(0), flag.Args()[1:]...) + cmd.Stdin, cmd.Stdout, cmd.Stderr = os.Stdin, os.Stdout, os.Stderr + if err := cmd.Run(); err != nil { + return fmt.Errorf("unable to run %q: %v", strings.Join(flag.Args(), " "), err) + } + return nil +} diff --git a/vendor/google.golang.org/appengine/cmd/aefix/ae.go b/vendor/google.golang.org/appengine/cmd/aefix/ae.go new file mode 100644 index 000000000..0fe2d4ae9 --- /dev/null +++ b/vendor/google.golang.org/appengine/cmd/aefix/ae.go @@ -0,0 +1,185 @@ +// Copyright 2016 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package main + +import ( + "go/ast" + "path" + "strconv" + "strings" +) + +const ( + ctxPackage = "golang.org/x/net/context" + + newPackageBase = "google.golang.org/" + stutterPackage = false +) + +func init() { + register(fix{ + "ae", + "2016-04-15", + aeFn, + `Update old App Engine APIs to new App Engine APIs`, + }) +} + +// logMethod is the set of methods on appengine.Context used for logging. +var logMethod = map[string]bool{ + "Debugf": true, + "Infof": true, + "Warningf": true, + "Errorf": true, + "Criticalf": true, +} + +// mapPackage turns "appengine" into "google.golang.org/appengine", etc. +func mapPackage(s string) string { + if stutterPackage { + s += "/" + path.Base(s) + } + return newPackageBase + s +} + +func aeFn(f *ast.File) bool { + // During the walk, we track the last thing seen that looks like + // an appengine.Context, and reset it once the walk leaves a func. + var lastContext *ast.Ident + + fixed := false + + // Update imports. + mainImp := "appengine" + for _, imp := range f.Imports { + pth, _ := strconv.Unquote(imp.Path.Value) + if pth == "appengine" || strings.HasPrefix(pth, "appengine/") { + newPth := mapPackage(pth) + imp.Path.Value = strconv.Quote(newPth) + fixed = true + + if pth == "appengine" { + mainImp = newPth + } + } + } + + // Update any API changes. + walk(f, func(n interface{}) { + if ft, ok := n.(*ast.FuncType); ok && ft.Params != nil { + // See if this func has an `appengine.Context arg`. + // If so, remember its identifier. + for _, param := range ft.Params.List { + if !isPkgDot(param.Type, "appengine", "Context") { + continue + } + if len(param.Names) == 1 { + lastContext = param.Names[0] + break + } + } + return + } + + if as, ok := n.(*ast.AssignStmt); ok { + if len(as.Lhs) == 1 && len(as.Rhs) == 1 { + // If this node is an assignment from an appengine.NewContext invocation, + // remember the identifier on the LHS. + if isCall(as.Rhs[0], "appengine", "NewContext") { + if ident, ok := as.Lhs[0].(*ast.Ident); ok { + lastContext = ident + return + } + } + // x (=|:=) appengine.Timeout(y, z) + // should become + // x, _ (=|:=) context.WithTimeout(y, z) + if isCall(as.Rhs[0], "appengine", "Timeout") { + addImport(f, ctxPackage) + as.Lhs = append(as.Lhs, ast.NewIdent("_")) + // isCall already did the type checking. + sel := as.Rhs[0].(*ast.CallExpr).Fun.(*ast.SelectorExpr) + sel.X = ast.NewIdent("context") + sel.Sel = ast.NewIdent("WithTimeout") + fixed = true + return + } + } + return + } + + // If this node is a FuncDecl, we've finished the function, so reset lastContext. + if _, ok := n.(*ast.FuncDecl); ok { + lastContext = nil + return + } + + if call, ok := n.(*ast.CallExpr); ok { + if isPkgDot(call.Fun, "appengine", "Datacenter") && len(call.Args) == 0 { + insertContext(f, call, lastContext) + fixed = true + return + } + if isPkgDot(call.Fun, "taskqueue", "QueueStats") && len(call.Args) == 3 { + call.Args = call.Args[:2] // drop last arg + fixed = true + return + } + + sel, ok := call.Fun.(*ast.SelectorExpr) + if !ok { + return + } + if lastContext != nil && refersTo(sel.X, lastContext) && logMethod[sel.Sel.Name] { + // c.Errorf(...) + // should become + // log.Errorf(c, ...) + addImport(f, mapPackage("appengine/log")) + sel.X = &ast.Ident{ // ast.NewIdent doesn't preserve the position. + NamePos: sel.X.Pos(), + Name: "log", + } + insertContext(f, call, lastContext) + fixed = true + return + } + } + }) + + // Change any `appengine.Context` to `context.Context`. + // Do this in a separate walk because the previous walk + // wants to identify "appengine.Context". + walk(f, func(n interface{}) { + expr, ok := n.(ast.Expr) + if ok && isPkgDot(expr, "appengine", "Context") { + addImport(f, ctxPackage) + // isPkgDot did the type checking. + n.(*ast.SelectorExpr).X.(*ast.Ident).Name = "context" + fixed = true + return + } + }) + + // The changes above might remove the need to import "appengine". + // Check if it's used, and drop it if it isn't. + if fixed && !usesImport(f, mainImp) { + deleteImport(f, mainImp) + } + + return fixed +} + +// ctx may be nil. +func insertContext(f *ast.File, call *ast.CallExpr, ctx *ast.Ident) { + if ctx == nil { + // context is unknown, so use a plain "ctx". + ctx = ast.NewIdent("ctx") + } else { + // Create a fresh *ast.Ident so we drop the position information. + ctx = ast.NewIdent(ctx.Name) + } + + call.Args = append([]ast.Expr{ctx}, call.Args...) +} diff --git a/vendor/google.golang.org/appengine/cmd/aefix/ae_test.go b/vendor/google.golang.org/appengine/cmd/aefix/ae_test.go new file mode 100644 index 000000000..21f5695b9 --- /dev/null +++ b/vendor/google.golang.org/appengine/cmd/aefix/ae_test.go @@ -0,0 +1,144 @@ +// Copyright 2016 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package main + +func init() { + addTestCases(aeTests, nil) +} + +var aeTests = []testCase{ + // Collection of fixes: + // - imports + // - appengine.Timeout -> context.WithTimeout + // - add ctx arg to appengine.Datacenter + // - logging API + { + Name: "ae.0", + In: `package foo + +import ( + "net/http" + "time" + + "appengine" + "appengine/datastore" +) + +func f(w http.ResponseWriter, r *http.Request) { + c := appengine.NewContext(r) + + c = appengine.Timeout(c, 5*time.Second) + err := datastore.ErrNoSuchEntity + c.Errorf("Something interesting happened: %v", err) + _ = appengine.Datacenter() +} +`, + Out: `package foo + +import ( + "net/http" + "time" + + "golang.org/x/net/context" + "google.golang.org/appengine" + "google.golang.org/appengine/datastore" + "google.golang.org/appengine/log" +) + +func f(w http.ResponseWriter, r *http.Request) { + c := appengine.NewContext(r) + + c, _ = context.WithTimeout(c, 5*time.Second) + err := datastore.ErrNoSuchEntity + log.Errorf(c, "Something interesting happened: %v", err) + _ = appengine.Datacenter(c) +} +`, + }, + + // Updating a function that takes an appengine.Context arg. + { + Name: "ae.1", + In: `package foo + +import ( + "appengine" +) + +func LogSomething(c2 appengine.Context) { + c2.Warningf("Stand back! I'm going to try science!") +} +`, + Out: `package foo + +import ( + "golang.org/x/net/context" + "google.golang.org/appengine/log" +) + +func LogSomething(c2 context.Context) { + log.Warningf(c2, "Stand back! I'm going to try science!") +} +`, + }, + + // Less widely used API changes: + // - drop maxTasks arg to taskqueue.QueueStats + { + Name: "ae.2", + In: `package foo + +import ( + "appengine" + "appengine/taskqueue" +) + +func f(ctx appengine.Context) { + stats, err := taskqueue.QueueStats(ctx, []string{"one", "two"}, 0) +} +`, + Out: `package foo + +import ( + "golang.org/x/net/context" + "google.golang.org/appengine/taskqueue" +) + +func f(ctx context.Context) { + stats, err := taskqueue.QueueStats(ctx, []string{"one", "two"}) +} +`, + }, + + // Check that the main "appengine" import will not be dropped + // if an appengine.Context -> context.Context change happens + // but the appengine package is still referenced. + { + Name: "ae.3", + In: `package foo + +import ( + "appengine" + "io" +) + +func f(ctx appengine.Context, w io.Writer) { + _ = appengine.IsDevAppServer() +} +`, + Out: `package foo + +import ( + "golang.org/x/net/context" + "google.golang.org/appengine" + "io" +) + +func f(ctx context.Context, w io.Writer) { + _ = appengine.IsDevAppServer() +} +`, + }, +} diff --git a/vendor/google.golang.org/appengine/cmd/aefix/fix.go b/vendor/google.golang.org/appengine/cmd/aefix/fix.go new file mode 100644 index 000000000..a100be794 --- /dev/null +++ b/vendor/google.golang.org/appengine/cmd/aefix/fix.go @@ -0,0 +1,848 @@ +// Copyright 2011 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 main + +import ( + "fmt" + "go/ast" + "go/parser" + "go/token" + "os" + "path" + "reflect" + "strconv" + "strings" +) + +type fix struct { + name string + date string // date that fix was introduced, in YYYY-MM-DD format + f func(*ast.File) bool + desc string +} + +// main runs sort.Sort(byName(fixes)) before printing list of fixes. +type byName []fix + +func (f byName) Len() int { return len(f) } +func (f byName) Swap(i, j int) { f[i], f[j] = f[j], f[i] } +func (f byName) Less(i, j int) bool { return f[i].name < f[j].name } + +// main runs sort.Sort(byDate(fixes)) before applying fixes. +type byDate []fix + +func (f byDate) Len() int { return len(f) } +func (f byDate) Swap(i, j int) { f[i], f[j] = f[j], f[i] } +func (f byDate) Less(i, j int) bool { return f[i].date < f[j].date } + +var fixes []fix + +func register(f fix) { + fixes = append(fixes, f) +} + +// walk traverses the AST x, calling visit(y) for each node y in the tree but +// also with a pointer to each ast.Expr, ast.Stmt, and *ast.BlockStmt, +// in a bottom-up traversal. +func walk(x interface{}, visit func(interface{})) { + walkBeforeAfter(x, nop, visit) +} + +func nop(interface{}) {} + +// walkBeforeAfter is like walk but calls before(x) before traversing +// x's children and after(x) afterward. +func walkBeforeAfter(x interface{}, before, after func(interface{})) { + before(x) + + switch n := x.(type) { + default: + panic(fmt.Errorf("unexpected type %T in walkBeforeAfter", x)) + + case nil: + + // pointers to interfaces + case *ast.Decl: + walkBeforeAfter(*n, before, after) + case *ast.Expr: + walkBeforeAfter(*n, before, after) + case *ast.Spec: + walkBeforeAfter(*n, before, after) + case *ast.Stmt: + walkBeforeAfter(*n, before, after) + + // pointers to struct pointers + case **ast.BlockStmt: + walkBeforeAfter(*n, before, after) + case **ast.CallExpr: + walkBeforeAfter(*n, before, after) + case **ast.FieldList: + walkBeforeAfter(*n, before, after) + case **ast.FuncType: + walkBeforeAfter(*n, before, after) + case **ast.Ident: + walkBeforeAfter(*n, before, after) + case **ast.BasicLit: + walkBeforeAfter(*n, before, after) + + // pointers to slices + case *[]ast.Decl: + walkBeforeAfter(*n, before, after) + case *[]ast.Expr: + walkBeforeAfter(*n, before, after) + case *[]*ast.File: + walkBeforeAfter(*n, before, after) + case *[]*ast.Ident: + walkBeforeAfter(*n, before, after) + case *[]ast.Spec: + walkBeforeAfter(*n, before, after) + case *[]ast.Stmt: + walkBeforeAfter(*n, before, after) + + // These are ordered and grouped to match ../../pkg/go/ast/ast.go + case *ast.Field: + walkBeforeAfter(&n.Names, before, after) + walkBeforeAfter(&n.Type, before, after) + walkBeforeAfter(&n.Tag, before, after) + case *ast.FieldList: + for _, field := range n.List { + walkBeforeAfter(field, before, after) + } + case *ast.BadExpr: + case *ast.Ident: + case *ast.Ellipsis: + walkBeforeAfter(&n.Elt, before, after) + case *ast.BasicLit: + case *ast.FuncLit: + walkBeforeAfter(&n.Type, before, after) + walkBeforeAfter(&n.Body, before, after) + case *ast.CompositeLit: + walkBeforeAfter(&n.Type, before, after) + walkBeforeAfter(&n.Elts, before, after) + case *ast.ParenExpr: + walkBeforeAfter(&n.X, before, after) + case *ast.SelectorExpr: + walkBeforeAfter(&n.X, before, after) + case *ast.IndexExpr: + walkBeforeAfter(&n.X, before, after) + walkBeforeAfter(&n.Index, before, after) + case *ast.SliceExpr: + walkBeforeAfter(&n.X, before, after) + if n.Low != nil { + walkBeforeAfter(&n.Low, before, after) + } + if n.High != nil { + walkBeforeAfter(&n.High, before, after) + } + case *ast.TypeAssertExpr: + walkBeforeAfter(&n.X, before, after) + walkBeforeAfter(&n.Type, before, after) + case *ast.CallExpr: + walkBeforeAfter(&n.Fun, before, after) + walkBeforeAfter(&n.Args, before, after) + case *ast.StarExpr: + walkBeforeAfter(&n.X, before, after) + case *ast.UnaryExpr: + walkBeforeAfter(&n.X, before, after) + case *ast.BinaryExpr: + walkBeforeAfter(&n.X, before, after) + walkBeforeAfter(&n.Y, before, after) + case *ast.KeyValueExpr: + walkBeforeAfter(&n.Key, before, after) + walkBeforeAfter(&n.Value, before, after) + + case *ast.ArrayType: + walkBeforeAfter(&n.Len, before, after) + walkBeforeAfter(&n.Elt, before, after) + case *ast.StructType: + walkBeforeAfter(&n.Fields, before, after) + case *ast.FuncType: + walkBeforeAfter(&n.Params, before, after) + if n.Results != nil { + walkBeforeAfter(&n.Results, before, after) + } + case *ast.InterfaceType: + walkBeforeAfter(&n.Methods, before, after) + case *ast.MapType: + walkBeforeAfter(&n.Key, before, after) + walkBeforeAfter(&n.Value, before, after) + case *ast.ChanType: + walkBeforeAfter(&n.Value, before, after) + + case *ast.BadStmt: + case *ast.DeclStmt: + walkBeforeAfter(&n.Decl, before, after) + case *ast.EmptyStmt: + case *ast.LabeledStmt: + walkBeforeAfter(&n.Stmt, before, after) + case *ast.ExprStmt: + walkBeforeAfter(&n.X, before, after) + case *ast.SendStmt: + walkBeforeAfter(&n.Chan, before, after) + walkBeforeAfter(&n.Value, before, after) + case *ast.IncDecStmt: + walkBeforeAfter(&n.X, before, after) + case *ast.AssignStmt: + walkBeforeAfter(&n.Lhs, before, after) + walkBeforeAfter(&n.Rhs, before, after) + case *ast.GoStmt: + walkBeforeAfter(&n.Call, before, after) + case *ast.DeferStmt: + walkBeforeAfter(&n.Call, before, after) + case *ast.ReturnStmt: + walkBeforeAfter(&n.Results, before, after) + case *ast.BranchStmt: + case *ast.BlockStmt: + walkBeforeAfter(&n.List, before, after) + case *ast.IfStmt: + walkBeforeAfter(&n.Init, before, after) + walkBeforeAfter(&n.Cond, before, after) + walkBeforeAfter(&n.Body, before, after) + walkBeforeAfter(&n.Else, before, after) + case *ast.CaseClause: + walkBeforeAfter(&n.List, before, after) + walkBeforeAfter(&n.Body, before, after) + case *ast.SwitchStmt: + walkBeforeAfter(&n.Init, before, after) + walkBeforeAfter(&n.Tag, before, after) + walkBeforeAfter(&n.Body, before, after) + case *ast.TypeSwitchStmt: + walkBeforeAfter(&n.Init, before, after) + walkBeforeAfter(&n.Assign, before, after) + walkBeforeAfter(&n.Body, before, after) + case *ast.CommClause: + walkBeforeAfter(&n.Comm, before, after) + walkBeforeAfter(&n.Body, before, after) + case *ast.SelectStmt: + walkBeforeAfter(&n.Body, before, after) + case *ast.ForStmt: + walkBeforeAfter(&n.Init, before, after) + walkBeforeAfter(&n.Cond, before, after) + walkBeforeAfter(&n.Post, before, after) + walkBeforeAfter(&n.Body, before, after) + case *ast.RangeStmt: + walkBeforeAfter(&n.Key, before, after) + walkBeforeAfter(&n.Value, before, after) + walkBeforeAfter(&n.X, before, after) + walkBeforeAfter(&n.Body, before, after) + + case *ast.ImportSpec: + case *ast.ValueSpec: + walkBeforeAfter(&n.Type, before, after) + walkBeforeAfter(&n.Values, before, after) + walkBeforeAfter(&n.Names, before, after) + case *ast.TypeSpec: + walkBeforeAfter(&n.Type, before, after) + + case *ast.BadDecl: + case *ast.GenDecl: + walkBeforeAfter(&n.Specs, before, after) + case *ast.FuncDecl: + if n.Recv != nil { + walkBeforeAfter(&n.Recv, before, after) + } + walkBeforeAfter(&n.Type, before, after) + if n.Body != nil { + walkBeforeAfter(&n.Body, before, after) + } + + case *ast.File: + walkBeforeAfter(&n.Decls, before, after) + + case *ast.Package: + walkBeforeAfter(&n.Files, before, after) + + case []*ast.File: + for i := range n { + walkBeforeAfter(&n[i], before, after) + } + case []ast.Decl: + for i := range n { + walkBeforeAfter(&n[i], before, after) + } + case []ast.Expr: + for i := range n { + walkBeforeAfter(&n[i], before, after) + } + case []*ast.Ident: + for i := range n { + walkBeforeAfter(&n[i], before, after) + } + case []ast.Stmt: + for i := range n { + walkBeforeAfter(&n[i], before, after) + } + case []ast.Spec: + for i := range n { + walkBeforeAfter(&n[i], before, after) + } + } + after(x) +} + +// imports returns true if f imports path. +func imports(f *ast.File, path string) bool { + return importSpec(f, path) != nil +} + +// importSpec returns the import spec if f imports path, +// or nil otherwise. +func importSpec(f *ast.File, path string) *ast.ImportSpec { + for _, s := range f.Imports { + if importPath(s) == path { + return s + } + } + return nil +} + +// importPath returns the unquoted import path of s, +// or "" if the path is not properly quoted. +func importPath(s *ast.ImportSpec) string { + t, err := strconv.Unquote(s.Path.Value) + if err == nil { + return t + } + return "" +} + +// declImports reports whether gen contains an import of path. +func declImports(gen *ast.GenDecl, path string) bool { + if gen.Tok != token.IMPORT { + return false + } + for _, spec := range gen.Specs { + impspec := spec.(*ast.ImportSpec) + if importPath(impspec) == path { + return true + } + } + return false +} + +// isPkgDot returns true if t is the expression "pkg.name" +// where pkg is an imported identifier. +func isPkgDot(t ast.Expr, pkg, name string) bool { + sel, ok := t.(*ast.SelectorExpr) + return ok && isTopName(sel.X, pkg) && sel.Sel.String() == name +} + +// isPtrPkgDot returns true if f is the expression "*pkg.name" +// where pkg is an imported identifier. +func isPtrPkgDot(t ast.Expr, pkg, name string) bool { + ptr, ok := t.(*ast.StarExpr) + return ok && isPkgDot(ptr.X, pkg, name) +} + +// isTopName returns true if n is a top-level unresolved identifier with the given name. +func isTopName(n ast.Expr, name string) bool { + id, ok := n.(*ast.Ident) + return ok && id.Name == name && id.Obj == nil +} + +// isName returns true if n is an identifier with the given name. +func isName(n ast.Expr, name string) bool { + id, ok := n.(*ast.Ident) + return ok && id.String() == name +} + +// isCall returns true if t is a call to pkg.name. +func isCall(t ast.Expr, pkg, name string) bool { + call, ok := t.(*ast.CallExpr) + return ok && isPkgDot(call.Fun, pkg, name) +} + +// If n is an *ast.Ident, isIdent returns it; otherwise isIdent returns nil. +func isIdent(n interface{}) *ast.Ident { + id, _ := n.(*ast.Ident) + return id +} + +// refersTo returns true if n is a reference to the same object as x. +func refersTo(n ast.Node, x *ast.Ident) bool { + id, ok := n.(*ast.Ident) + // The test of id.Name == x.Name handles top-level unresolved + // identifiers, which all have Obj == nil. + return ok && id.Obj == x.Obj && id.Name == x.Name +} + +// isBlank returns true if n is the blank identifier. +func isBlank(n ast.Expr) bool { + return isName(n, "_") +} + +// isEmptyString returns true if n is an empty string literal. +func isEmptyString(n ast.Expr) bool { + lit, ok := n.(*ast.BasicLit) + return ok && lit.Kind == token.STRING && len(lit.Value) == 2 +} + +func warn(pos token.Pos, msg string, args ...interface{}) { + if pos.IsValid() { + msg = "%s: " + msg + arg1 := []interface{}{fset.Position(pos).String()} + args = append(arg1, args...) + } + fmt.Fprintf(os.Stderr, msg+"\n", args...) +} + +// countUses returns the number of uses of the identifier x in scope. +func countUses(x *ast.Ident, scope []ast.Stmt) int { + count := 0 + ff := func(n interface{}) { + if n, ok := n.(ast.Node); ok && refersTo(n, x) { + count++ + } + } + for _, n := range scope { + walk(n, ff) + } + return count +} + +// rewriteUses replaces all uses of the identifier x and !x in scope +// with f(x.Pos()) and fnot(x.Pos()). +func rewriteUses(x *ast.Ident, f, fnot func(token.Pos) ast.Expr, scope []ast.Stmt) { + var lastF ast.Expr + ff := func(n interface{}) { + ptr, ok := n.(*ast.Expr) + if !ok { + return + } + nn := *ptr + + // The child node was just walked and possibly replaced. + // If it was replaced and this is a negation, replace with fnot(p). + not, ok := nn.(*ast.UnaryExpr) + if ok && not.Op == token.NOT && not.X == lastF { + *ptr = fnot(nn.Pos()) + return + } + if refersTo(nn, x) { + lastF = f(nn.Pos()) + *ptr = lastF + } + } + for _, n := range scope { + walk(n, ff) + } +} + +// assignsTo returns true if any of the code in scope assigns to or takes the address of x. +func assignsTo(x *ast.Ident, scope []ast.Stmt) bool { + assigned := false + ff := func(n interface{}) { + if assigned { + return + } + switch n := n.(type) { + case *ast.UnaryExpr: + // use of &x + if n.Op == token.AND && refersTo(n.X, x) { + assigned = true + return + } + case *ast.AssignStmt: + for _, l := range n.Lhs { + if refersTo(l, x) { + assigned = true + return + } + } + } + } + for _, n := range scope { + if assigned { + break + } + walk(n, ff) + } + return assigned +} + +// newPkgDot returns an ast.Expr referring to "pkg.name" at position pos. +func newPkgDot(pos token.Pos, pkg, name string) ast.Expr { + return &ast.SelectorExpr{ + X: &ast.Ident{ + NamePos: pos, + Name: pkg, + }, + Sel: &ast.Ident{ + NamePos: pos, + Name: name, + }, + } +} + +// renameTop renames all references to the top-level name old. +// It returns true if it makes any changes. +func renameTop(f *ast.File, old, new string) bool { + var fixed bool + + // Rename any conflicting imports + // (assuming package name is last element of path). + for _, s := range f.Imports { + if s.Name != nil { + if s.Name.Name == old { + s.Name.Name = new + fixed = true + } + } else { + _, thisName := path.Split(importPath(s)) + if thisName == old { + s.Name = ast.NewIdent(new) + fixed = true + } + } + } + + // Rename any top-level declarations. + for _, d := range f.Decls { + switch d := d.(type) { + case *ast.FuncDecl: + if d.Recv == nil && d.Name.Name == old { + d.Name.Name = new + d.Name.Obj.Name = new + fixed = true + } + case *ast.GenDecl: + for _, s := range d.Specs { + switch s := s.(type) { + case *ast.TypeSpec: + if s.Name.Name == old { + s.Name.Name = new + s.Name.Obj.Name = new + fixed = true + } + case *ast.ValueSpec: + for _, n := range s.Names { + if n.Name == old { + n.Name = new + n.Obj.Name = new + fixed = true + } + } + } + } + } + } + + // Rename top-level old to new, both unresolved names + // (probably defined in another file) and names that resolve + // to a declaration we renamed. + walk(f, func(n interface{}) { + id, ok := n.(*ast.Ident) + if ok && isTopName(id, old) { + id.Name = new + fixed = true + } + if ok && id.Obj != nil && id.Name == old && id.Obj.Name == new { + id.Name = id.Obj.Name + fixed = true + } + }) + + return fixed +} + +// matchLen returns the length of the longest prefix shared by x and y. +func matchLen(x, y string) int { + i := 0 + for i < len(x) && i < len(y) && x[i] == y[i] { + i++ + } + return i +} + +// addImport adds the import path to the file f, if absent. +func addImport(f *ast.File, ipath string) (added bool) { + if imports(f, ipath) { + return false + } + + // Determine name of import. + // Assume added imports follow convention of using last element. + _, name := path.Split(ipath) + + // Rename any conflicting top-level references from name to name_. + renameTop(f, name, name+"_") + + newImport := &ast.ImportSpec{ + Path: &ast.BasicLit{ + Kind: token.STRING, + Value: strconv.Quote(ipath), + }, + } + + // Find an import decl to add to. + var ( + bestMatch = -1 + lastImport = -1 + impDecl *ast.GenDecl + impIndex = -1 + ) + for i, decl := range f.Decls { + gen, ok := decl.(*ast.GenDecl) + if ok && gen.Tok == token.IMPORT { + lastImport = i + // Do not add to import "C", to avoid disrupting the + // association with its doc comment, breaking cgo. + if declImports(gen, "C") { + continue + } + + // Compute longest shared prefix with imports in this block. + for j, spec := range gen.Specs { + impspec := spec.(*ast.ImportSpec) + n := matchLen(importPath(impspec), ipath) + if n > bestMatch { + bestMatch = n + impDecl = gen + impIndex = j + } + } + } + } + + // If no import decl found, add one after the last import. + if impDecl == nil { + impDecl = &ast.GenDecl{ + Tok: token.IMPORT, + } + f.Decls = append(f.Decls, nil) + copy(f.Decls[lastImport+2:], f.Decls[lastImport+1:]) + f.Decls[lastImport+1] = impDecl + } + + // Ensure the import decl has parentheses, if needed. + if len(impDecl.Specs) > 0 && !impDecl.Lparen.IsValid() { + impDecl.Lparen = impDecl.Pos() + } + + insertAt := impIndex + 1 + if insertAt == 0 { + insertAt = len(impDecl.Specs) + } + impDecl.Specs = append(impDecl.Specs, nil) + copy(impDecl.Specs[insertAt+1:], impDecl.Specs[insertAt:]) + impDecl.Specs[insertAt] = newImport + if insertAt > 0 { + // Assign same position as the previous import, + // so that the sorter sees it as being in the same block. + prev := impDecl.Specs[insertAt-1] + newImport.Path.ValuePos = prev.Pos() + newImport.EndPos = prev.Pos() + } + + f.Imports = append(f.Imports, newImport) + return true +} + +// deleteImport deletes the import path from the file f, if present. +func deleteImport(f *ast.File, path string) (deleted bool) { + oldImport := importSpec(f, path) + + // Find the import node that imports path, if any. + for i, decl := range f.Decls { + gen, ok := decl.(*ast.GenDecl) + if !ok || gen.Tok != token.IMPORT { + continue + } + for j, spec := range gen.Specs { + impspec := spec.(*ast.ImportSpec) + if oldImport != impspec { + continue + } + + // We found an import spec that imports path. + // Delete it. + deleted = true + copy(gen.Specs[j:], gen.Specs[j+1:]) + gen.Specs = gen.Specs[:len(gen.Specs)-1] + + // If this was the last import spec in this decl, + // delete the decl, too. + if len(gen.Specs) == 0 { + copy(f.Decls[i:], f.Decls[i+1:]) + f.Decls = f.Decls[:len(f.Decls)-1] + } else if len(gen.Specs) == 1 { + gen.Lparen = token.NoPos // drop parens + } + if j > 0 { + // We deleted an entry but now there will be + // a blank line-sized hole where the import was. + // Close the hole by making the previous + // import appear to "end" where this one did. + gen.Specs[j-1].(*ast.ImportSpec).EndPos = impspec.End() + } + break + } + } + + // Delete it from f.Imports. + for i, imp := range f.Imports { + if imp == oldImport { + copy(f.Imports[i:], f.Imports[i+1:]) + f.Imports = f.Imports[:len(f.Imports)-1] + break + } + } + + return +} + +// rewriteImport rewrites any import of path oldPath to path newPath. +func rewriteImport(f *ast.File, oldPath, newPath string) (rewrote bool) { + for _, imp := range f.Imports { + if importPath(imp) == oldPath { + rewrote = true + // record old End, because the default is to compute + // it using the length of imp.Path.Value. + imp.EndPos = imp.End() + imp.Path.Value = strconv.Quote(newPath) + } + } + return +} + +func usesImport(f *ast.File, path string) (used bool) { + spec := importSpec(f, path) + if spec == nil { + return + } + + name := spec.Name.String() + switch name { + case "": + // If the package name is not explicitly specified, + // make an educated guess. This is not guaranteed to be correct. + lastSlash := strings.LastIndex(path, "/") + if lastSlash == -1 { + name = path + } else { + name = path[lastSlash+1:] + } + case "_", ".": + // Not sure if this import is used - err on the side of caution. + return true + } + + walk(f, func(n interface{}) { + sel, ok := n.(*ast.SelectorExpr) + if ok && isTopName(sel.X, name) { + used = true + } + }) + + return +} + +func expr(s string) ast.Expr { + x, err := parser.ParseExpr(s) + if err != nil { + panic("parsing " + s + ": " + err.Error()) + } + // Remove position information to avoid spurious newlines. + killPos(reflect.ValueOf(x)) + return x +} + +var posType = reflect.TypeOf(token.Pos(0)) + +func killPos(v reflect.Value) { + switch v.Kind() { + case reflect.Ptr, reflect.Interface: + if !v.IsNil() { + killPos(v.Elem()) + } + case reflect.Slice: + n := v.Len() + for i := 0; i < n; i++ { + killPos(v.Index(i)) + } + case reflect.Struct: + n := v.NumField() + for i := 0; i < n; i++ { + f := v.Field(i) + if f.Type() == posType { + f.SetInt(0) + continue + } + killPos(f) + } + } +} + +// A Rename describes a single renaming. +type rename struct { + OldImport string // only apply rename if this import is present + NewImport string // add this import during rewrite + Old string // old name: p.T or *p.T + New string // new name: p.T or *p.T +} + +func renameFix(tab []rename) func(*ast.File) bool { + return func(f *ast.File) bool { + return renameFixTab(f, tab) + } +} + +func parseName(s string) (ptr bool, pkg, nam string) { + i := strings.Index(s, ".") + if i < 0 { + panic("parseName: invalid name " + s) + } + if strings.HasPrefix(s, "*") { + ptr = true + s = s[1:] + i-- + } + pkg = s[:i] + nam = s[i+1:] + return +} + +func renameFixTab(f *ast.File, tab []rename) bool { + fixed := false + added := map[string]bool{} + check := map[string]bool{} + for _, t := range tab { + if !imports(f, t.OldImport) { + continue + } + optr, opkg, onam := parseName(t.Old) + walk(f, func(n interface{}) { + np, ok := n.(*ast.Expr) + if !ok { + return + } + x := *np + if optr { + p, ok := x.(*ast.StarExpr) + if !ok { + return + } + x = p.X + } + if !isPkgDot(x, opkg, onam) { + return + } + if t.NewImport != "" && !added[t.NewImport] { + addImport(f, t.NewImport) + added[t.NewImport] = true + } + *np = expr(t.New) + check[t.OldImport] = true + fixed = true + }) + } + + for ipath := range check { + if !usesImport(f, ipath) { + deleteImport(f, ipath) + } + } + return fixed +} diff --git a/vendor/google.golang.org/appengine/cmd/aefix/main.go b/vendor/google.golang.org/appengine/cmd/aefix/main.go new file mode 100644 index 000000000..8e193a6ad --- /dev/null +++ b/vendor/google.golang.org/appengine/cmd/aefix/main.go @@ -0,0 +1,258 @@ +// Copyright 2011 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 main + +import ( + "bytes" + "flag" + "fmt" + "go/ast" + "go/format" + "go/parser" + "go/scanner" + "go/token" + "io/ioutil" + "os" + "os/exec" + "path/filepath" + "sort" + "strings" +) + +var ( + fset = token.NewFileSet() + exitCode = 0 +) + +var allowedRewrites = flag.String("r", "", + "restrict the rewrites to this comma-separated list") + +var forceRewrites = flag.String("force", "", + "force these fixes to run even if the code looks updated") + +var allowed, force map[string]bool + +var doDiff = flag.Bool("diff", false, "display diffs instead of rewriting files") + +// enable for debugging fix failures +const debug = false // display incorrectly reformatted source and exit + +func usage() { + fmt.Fprintf(os.Stderr, "usage: aefix [-diff] [-r fixname,...] [-force fixname,...] [path ...]\n") + flag.PrintDefaults() + fmt.Fprintf(os.Stderr, "\nAvailable rewrites are:\n") + sort.Sort(byName(fixes)) + for _, f := range fixes { + fmt.Fprintf(os.Stderr, "\n%s\n", f.name) + desc := strings.TrimSpace(f.desc) + desc = strings.Replace(desc, "\n", "\n\t", -1) + fmt.Fprintf(os.Stderr, "\t%s\n", desc) + } + os.Exit(2) +} + +func main() { + flag.Usage = usage + flag.Parse() + + sort.Sort(byDate(fixes)) + + if *allowedRewrites != "" { + allowed = make(map[string]bool) + for _, f := range strings.Split(*allowedRewrites, ",") { + allowed[f] = true + } + } + + if *forceRewrites != "" { + force = make(map[string]bool) + for _, f := range strings.Split(*forceRewrites, ",") { + force[f] = true + } + } + + if flag.NArg() == 0 { + if err := processFile("standard input", true); err != nil { + report(err) + } + os.Exit(exitCode) + } + + for i := 0; i < flag.NArg(); i++ { + path := flag.Arg(i) + switch dir, err := os.Stat(path); { + case err != nil: + report(err) + case dir.IsDir(): + walkDir(path) + default: + if err := processFile(path, false); err != nil { + report(err) + } + } + } + + os.Exit(exitCode) +} + +const parserMode = parser.ParseComments + +func gofmtFile(f *ast.File) ([]byte, error) { + var buf bytes.Buffer + if err := format.Node(&buf, fset, f); err != nil { + return nil, err + } + return buf.Bytes(), nil +} + +func processFile(filename string, useStdin bool) error { + var f *os.File + var err error + var fixlog bytes.Buffer + + if useStdin { + f = os.Stdin + } else { + f, err = os.Open(filename) + if err != nil { + return err + } + defer f.Close() + } + + src, err := ioutil.ReadAll(f) + if err != nil { + return err + } + + file, err := parser.ParseFile(fset, filename, src, parserMode) + if err != nil { + return err + } + + // Apply all fixes to file. + newFile := file + fixed := false + for _, fix := range fixes { + if allowed != nil && !allowed[fix.name] { + continue + } + if fix.f(newFile) { + fixed = true + fmt.Fprintf(&fixlog, " %s", fix.name) + + // AST changed. + // Print and parse, to update any missing scoping + // or position information for subsequent fixers. + newSrc, err := gofmtFile(newFile) + if err != nil { + return err + } + newFile, err = parser.ParseFile(fset, filename, newSrc, parserMode) + if err != nil { + if debug { + fmt.Printf("%s", newSrc) + report(err) + os.Exit(exitCode) + } + return err + } + } + } + if !fixed { + return nil + } + fmt.Fprintf(os.Stderr, "%s: fixed %s\n", filename, fixlog.String()[1:]) + + // Print AST. We did that after each fix, so this appears + // redundant, but it is necessary to generate gofmt-compatible + // source code in a few cases. The official gofmt style is the + // output of the printer run on a standard AST generated by the parser, + // but the source we generated inside the loop above is the + // output of the printer run on a mangled AST generated by a fixer. + newSrc, err := gofmtFile(newFile) + if err != nil { + return err + } + + if *doDiff { + data, err := diff(src, newSrc) + if err != nil { + return fmt.Errorf("computing diff: %s", err) + } + fmt.Printf("diff %s fixed/%s\n", filename, filename) + os.Stdout.Write(data) + return nil + } + + if useStdin { + os.Stdout.Write(newSrc) + return nil + } + + return ioutil.WriteFile(f.Name(), newSrc, 0) +} + +var gofmtBuf bytes.Buffer + +func gofmt(n interface{}) string { + gofmtBuf.Reset() + if err := format.Node(&gofmtBuf, fset, n); err != nil { + return "<" + err.Error() + ">" + } + return gofmtBuf.String() +} + +func report(err error) { + scanner.PrintError(os.Stderr, err) + exitCode = 2 +} + +func walkDir(path string) { + filepath.Walk(path, visitFile) +} + +func visitFile(path string, f os.FileInfo, err error) error { + if err == nil && isGoFile(f) { + err = processFile(path, false) + } + if err != nil { + report(err) + } + return nil +} + +func isGoFile(f os.FileInfo) bool { + // ignore non-Go files + name := f.Name() + return !f.IsDir() && !strings.HasPrefix(name, ".") && strings.HasSuffix(name, ".go") +} + +func diff(b1, b2 []byte) (data []byte, err error) { + f1, err := ioutil.TempFile("", "go-fix") + if err != nil { + return nil, err + } + defer os.Remove(f1.Name()) + defer f1.Close() + + f2, err := ioutil.TempFile("", "go-fix") + if err != nil { + return nil, err + } + defer os.Remove(f2.Name()) + defer f2.Close() + + f1.Write(b1) + f2.Write(b2) + + data, err = exec.Command("diff", "-u", f1.Name(), f2.Name()).CombinedOutput() + if len(data) > 0 { + // diff exits with a non-zero status when the files don't match. + // Ignore that failure as long as we get output. + err = nil + } + return +} diff --git a/vendor/google.golang.org/appengine/cmd/aefix/main_test.go b/vendor/google.golang.org/appengine/cmd/aefix/main_test.go new file mode 100644 index 000000000..2151bf29e --- /dev/null +++ b/vendor/google.golang.org/appengine/cmd/aefix/main_test.go @@ -0,0 +1,129 @@ +// Copyright 2011 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 main + +import ( + "go/ast" + "go/parser" + "strings" + "testing" +) + +type testCase struct { + Name string + Fn func(*ast.File) bool + In string + Out string +} + +var testCases []testCase + +func addTestCases(t []testCase, fn func(*ast.File) bool) { + // Fill in fn to avoid repetition in definitions. + if fn != nil { + for i := range t { + if t[i].Fn == nil { + t[i].Fn = fn + } + } + } + testCases = append(testCases, t...) +} + +func fnop(*ast.File) bool { return false } + +func parseFixPrint(t *testing.T, fn func(*ast.File) bool, desc, in string, mustBeGofmt bool) (out string, fixed, ok bool) { + file, err := parser.ParseFile(fset, desc, in, parserMode) + if err != nil { + t.Errorf("%s: parsing: %v", desc, err) + return + } + + outb, err := gofmtFile(file) + if err != nil { + t.Errorf("%s: printing: %v", desc, err) + return + } + if s := string(outb); in != s && mustBeGofmt { + t.Errorf("%s: not gofmt-formatted.\n--- %s\n%s\n--- %s | gofmt\n%s", + desc, desc, in, desc, s) + tdiff(t, in, s) + return + } + + if fn == nil { + for _, fix := range fixes { + if fix.f(file) { + fixed = true + } + } + } else { + fixed = fn(file) + } + + outb, err = gofmtFile(file) + if err != nil { + t.Errorf("%s: printing: %v", desc, err) + return + } + + return string(outb), fixed, true +} + +func TestRewrite(t *testing.T) { + for _, tt := range testCases { + // Apply fix: should get tt.Out. + out, fixed, ok := parseFixPrint(t, tt.Fn, tt.Name, tt.In, true) + if !ok { + continue + } + + // reformat to get printing right + out, _, ok = parseFixPrint(t, fnop, tt.Name, out, false) + if !ok { + continue + } + + if out != tt.Out { + t.Errorf("%s: incorrect output.\n", tt.Name) + if !strings.HasPrefix(tt.Name, "testdata/") { + t.Errorf("--- have\n%s\n--- want\n%s", out, tt.Out) + } + tdiff(t, out, tt.Out) + continue + } + + if changed := out != tt.In; changed != fixed { + t.Errorf("%s: changed=%v != fixed=%v", tt.Name, changed, fixed) + continue + } + + // Should not change if run again. + out2, fixed2, ok := parseFixPrint(t, tt.Fn, tt.Name+" output", out, true) + if !ok { + continue + } + + if fixed2 { + t.Errorf("%s: applied fixes during second round", tt.Name) + continue + } + + if out2 != out { + t.Errorf("%s: changed output after second round of fixes.\n--- output after first round\n%s\n--- output after second round\n%s", + tt.Name, out, out2) + tdiff(t, out, out2) + } + } +} + +func tdiff(t *testing.T, a, b string) { + data, err := diff([]byte(a), []byte(b)) + if err != nil { + t.Error(err) + return + } + t.Error(string(data)) +} diff --git a/vendor/google.golang.org/appengine/cmd/aefix/typecheck.go b/vendor/google.golang.org/appengine/cmd/aefix/typecheck.go new file mode 100644 index 000000000..d54d37547 --- /dev/null +++ b/vendor/google.golang.org/appengine/cmd/aefix/typecheck.go @@ -0,0 +1,673 @@ +// Copyright 2011 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 main + +import ( + "fmt" + "go/ast" + "go/token" + "os" + "reflect" + "strings" +) + +// Partial type checker. +// +// The fact that it is partial is very important: the input is +// an AST and a description of some type information to +// assume about one or more packages, but not all the +// packages that the program imports. The checker is +// expected to do as much as it can with what it has been +// given. There is not enough information supplied to do +// a full type check, but the type checker is expected to +// apply information that can be derived from variable +// declarations, function and method returns, and type switches +// as far as it can, so that the caller can still tell the types +// of expression relevant to a particular fix. +// +// TODO(rsc,gri): Replace with go/typechecker. +// Doing that could be an interesting test case for go/typechecker: +// the constraints about working with partial information will +// likely exercise it in interesting ways. The ideal interface would +// be to pass typecheck a map from importpath to package API text +// (Go source code), but for now we use data structures (TypeConfig, Type). +// +// The strings mostly use gofmt form. +// +// A Field or FieldList has as its type a comma-separated list +// of the types of the fields. For example, the field list +// x, y, z int +// has type "int, int, int". + +// The prefix "type " is the type of a type. +// For example, given +// var x int +// type T int +// x's type is "int" but T's type is "type int". +// mkType inserts the "type " prefix. +// getType removes it. +// isType tests for it. + +func mkType(t string) string { + return "type " + t +} + +func getType(t string) string { + if !isType(t) { + return "" + } + return t[len("type "):] +} + +func isType(t string) bool { + return strings.HasPrefix(t, "type ") +} + +// TypeConfig describes the universe of relevant types. +// For ease of creation, the types are all referred to by string +// name (e.g., "reflect.Value"). TypeByName is the only place +// where the strings are resolved. + +type TypeConfig struct { + Type map[string]*Type + Var map[string]string + Func map[string]string +} + +// typeof returns the type of the given name, which may be of +// the form "x" or "p.X". +func (cfg *TypeConfig) typeof(name string) string { + if cfg.Var != nil { + if t := cfg.Var[name]; t != "" { + return t + } + } + if cfg.Func != nil { + if t := cfg.Func[name]; t != "" { + return "func()" + t + } + } + return "" +} + +// Type describes the Fields and Methods of a type. +// If the field or method cannot be found there, it is next +// looked for in the Embed list. +type Type struct { + Field map[string]string // map field name to type + Method map[string]string // map method name to comma-separated return types (should start with "func ") + Embed []string // list of types this type embeds (for extra methods) + Def string // definition of named type +} + +// dot returns the type of "typ.name", making its decision +// using the type information in cfg. +func (typ *Type) dot(cfg *TypeConfig, name string) string { + if typ.Field != nil { + if t := typ.Field[name]; t != "" { + return t + } + } + if typ.Method != nil { + if t := typ.Method[name]; t != "" { + return t + } + } + + for _, e := range typ.Embed { + etyp := cfg.Type[e] + if etyp != nil { + if t := etyp.dot(cfg, name); t != "" { + return t + } + } + } + + return "" +} + +// typecheck type checks the AST f assuming the information in cfg. +// It returns two maps with type information: +// typeof maps AST nodes to type information in gofmt string form. +// assign maps type strings to lists of expressions that were assigned +// to values of another type that were assigned to that type. +func typecheck(cfg *TypeConfig, f *ast.File) (typeof map[interface{}]string, assign map[string][]interface{}) { + typeof = make(map[interface{}]string) + assign = make(map[string][]interface{}) + cfg1 := &TypeConfig{} + *cfg1 = *cfg // make copy so we can add locally + copied := false + + // gather function declarations + for _, decl := range f.Decls { + fn, ok := decl.(*ast.FuncDecl) + if !ok { + continue + } + typecheck1(cfg, fn.Type, typeof, assign) + t := typeof[fn.Type] + if fn.Recv != nil { + // The receiver must be a type. + rcvr := typeof[fn.Recv] + if !isType(rcvr) { + if len(fn.Recv.List) != 1 { + continue + } + rcvr = mkType(gofmt(fn.Recv.List[0].Type)) + typeof[fn.Recv.List[0].Type] = rcvr + } + rcvr = getType(rcvr) + if rcvr != "" && rcvr[0] == '*' { + rcvr = rcvr[1:] + } + typeof[rcvr+"."+fn.Name.Name] = t + } else { + if isType(t) { + t = getType(t) + } else { + t = gofmt(fn.Type) + } + typeof[fn.Name] = t + + // Record typeof[fn.Name.Obj] for future references to fn.Name. + typeof[fn.Name.Obj] = t + } + } + + // gather struct declarations + for _, decl := range f.Decls { + d, ok := decl.(*ast.GenDecl) + if ok { + for _, s := range d.Specs { + switch s := s.(type) { + case *ast.TypeSpec: + if cfg1.Type[s.Name.Name] != nil { + break + } + if !copied { + copied = true + // Copy map lazily: it's time. + cfg1.Type = make(map[string]*Type) + for k, v := range cfg.Type { + cfg1.Type[k] = v + } + } + t := &Type{Field: map[string]string{}} + cfg1.Type[s.Name.Name] = t + switch st := s.Type.(type) { + case *ast.StructType: + for _, f := range st.Fields.List { + for _, n := range f.Names { + t.Field[n.Name] = gofmt(f.Type) + } + } + case *ast.ArrayType, *ast.StarExpr, *ast.MapType: + t.Def = gofmt(st) + } + } + } + } + } + + typecheck1(cfg1, f, typeof, assign) + return typeof, assign +} + +func makeExprList(a []*ast.Ident) []ast.Expr { + var b []ast.Expr + for _, x := range a { + b = append(b, x) + } + return b +} + +// Typecheck1 is the recursive form of typecheck. +// It is like typecheck but adds to the information in typeof +// instead of allocating a new map. +func typecheck1(cfg *TypeConfig, f interface{}, typeof map[interface{}]string, assign map[string][]interface{}) { + // set sets the type of n to typ. + // If isDecl is true, n is being declared. + set := func(n ast.Expr, typ string, isDecl bool) { + if typeof[n] != "" || typ == "" { + if typeof[n] != typ { + assign[typ] = append(assign[typ], n) + } + return + } + typeof[n] = typ + + // If we obtained typ from the declaration of x + // propagate the type to all the uses. + // The !isDecl case is a cheat here, but it makes + // up in some cases for not paying attention to + // struct fields. The real type checker will be + // more accurate so we won't need the cheat. + if id, ok := n.(*ast.Ident); ok && id.Obj != nil && (isDecl || typeof[id.Obj] == "") { + typeof[id.Obj] = typ + } + } + + // Type-check an assignment lhs = rhs. + // If isDecl is true, this is := so we can update + // the types of the objects that lhs refers to. + typecheckAssign := func(lhs, rhs []ast.Expr, isDecl bool) { + if len(lhs) > 1 && len(rhs) == 1 { + if _, ok := rhs[0].(*ast.CallExpr); ok { + t := split(typeof[rhs[0]]) + // Lists should have same length but may not; pair what can be paired. + for i := 0; i < len(lhs) && i < len(t); i++ { + set(lhs[i], t[i], isDecl) + } + return + } + } + if len(lhs) == 1 && len(rhs) == 2 { + // x = y, ok + rhs = rhs[:1] + } else if len(lhs) == 2 && len(rhs) == 1 { + // x, ok = y + lhs = lhs[:1] + } + + // Match as much as we can. + for i := 0; i < len(lhs) && i < len(rhs); i++ { + x, y := lhs[i], rhs[i] + if typeof[y] != "" { + set(x, typeof[y], isDecl) + } else { + set(y, typeof[x], false) + } + } + } + + expand := func(s string) string { + typ := cfg.Type[s] + if typ != nil && typ.Def != "" { + return typ.Def + } + return s + } + + // The main type check is a recursive algorithm implemented + // by walkBeforeAfter(n, before, after). + // Most of it is bottom-up, but in a few places we need + // to know the type of the function we are checking. + // The before function records that information on + // the curfn stack. + var curfn []*ast.FuncType + + before := func(n interface{}) { + // push function type on stack + switch n := n.(type) { + case *ast.FuncDecl: + curfn = append(curfn, n.Type) + case *ast.FuncLit: + curfn = append(curfn, n.Type) + } + } + + // After is the real type checker. + after := func(n interface{}) { + if n == nil { + return + } + if false && reflect.TypeOf(n).Kind() == reflect.Ptr { // debugging trace + defer func() { + if t := typeof[n]; t != "" { + pos := fset.Position(n.(ast.Node).Pos()) + fmt.Fprintf(os.Stderr, "%s: typeof[%s] = %s\n", pos, gofmt(n), t) + } + }() + } + + switch n := n.(type) { + case *ast.FuncDecl, *ast.FuncLit: + // pop function type off stack + curfn = curfn[:len(curfn)-1] + + case *ast.FuncType: + typeof[n] = mkType(joinFunc(split(typeof[n.Params]), split(typeof[n.Results]))) + + case *ast.FieldList: + // Field list is concatenation of sub-lists. + t := "" + for _, field := range n.List { + if t != "" { + t += ", " + } + t += typeof[field] + } + typeof[n] = t + + case *ast.Field: + // Field is one instance of the type per name. + all := "" + t := typeof[n.Type] + if !isType(t) { + // Create a type, because it is typically *T or *p.T + // and we might care about that type. + t = mkType(gofmt(n.Type)) + typeof[n.Type] = t + } + t = getType(t) + if len(n.Names) == 0 { + all = t + } else { + for _, id := range n.Names { + if all != "" { + all += ", " + } + all += t + typeof[id.Obj] = t + typeof[id] = t + } + } + typeof[n] = all + + case *ast.ValueSpec: + // var declaration. Use type if present. + if n.Type != nil { + t := typeof[n.Type] + if !isType(t) { + t = mkType(gofmt(n.Type)) + typeof[n.Type] = t + } + t = getType(t) + for _, id := range n.Names { + set(id, t, true) + } + } + // Now treat same as assignment. + typecheckAssign(makeExprList(n.Names), n.Values, true) + + case *ast.AssignStmt: + typecheckAssign(n.Lhs, n.Rhs, n.Tok == token.DEFINE) + + case *ast.Ident: + // Identifier can take its type from underlying object. + if t := typeof[n.Obj]; t != "" { + typeof[n] = t + } + + case *ast.SelectorExpr: + // Field or method. + name := n.Sel.Name + if t := typeof[n.X]; t != "" { + if strings.HasPrefix(t, "*") { + t = t[1:] // implicit * + } + if typ := cfg.Type[t]; typ != nil { + if t := typ.dot(cfg, name); t != "" { + typeof[n] = t + return + } + } + tt := typeof[t+"."+name] + if isType(tt) { + typeof[n] = getType(tt) + return + } + } + // Package selector. + if x, ok := n.X.(*ast.Ident); ok && x.Obj == nil { + str := x.Name + "." + name + if cfg.Type[str] != nil { + typeof[n] = mkType(str) + return + } + if t := cfg.typeof(x.Name + "." + name); t != "" { + typeof[n] = t + return + } + } + + case *ast.CallExpr: + // make(T) has type T. + if isTopName(n.Fun, "make") && len(n.Args) >= 1 { + typeof[n] = gofmt(n.Args[0]) + return + } + // new(T) has type *T + if isTopName(n.Fun, "new") && len(n.Args) == 1 { + typeof[n] = "*" + gofmt(n.Args[0]) + return + } + // Otherwise, use type of function to determine arguments. + t := typeof[n.Fun] + in, out := splitFunc(t) + if in == nil && out == nil { + return + } + typeof[n] = join(out) + for i, arg := range n.Args { + if i >= len(in) { + break + } + if typeof[arg] == "" { + typeof[arg] = in[i] + } + } + + case *ast.TypeAssertExpr: + // x.(type) has type of x. + if n.Type == nil { + typeof[n] = typeof[n.X] + return + } + // x.(T) has type T. + if t := typeof[n.Type]; isType(t) { + typeof[n] = getType(t) + } else { + typeof[n] = gofmt(n.Type) + } + + case *ast.SliceExpr: + // x[i:j] has type of x. + typeof[n] = typeof[n.X] + + case *ast.IndexExpr: + // x[i] has key type of x's type. + t := expand(typeof[n.X]) + if strings.HasPrefix(t, "[") || strings.HasPrefix(t, "map[") { + // Lazy: assume there are no nested [] in the array + // length or map key type. + if i := strings.Index(t, "]"); i >= 0 { + typeof[n] = t[i+1:] + } + } + + case *ast.StarExpr: + // *x for x of type *T has type T when x is an expr. + // We don't use the result when *x is a type, but + // compute it anyway. + t := expand(typeof[n.X]) + if isType(t) { + typeof[n] = "type *" + getType(t) + } else if strings.HasPrefix(t, "*") { + typeof[n] = t[len("*"):] + } + + case *ast.UnaryExpr: + // &x for x of type T has type *T. + t := typeof[n.X] + if t != "" && n.Op == token.AND { + typeof[n] = "*" + t + } + + case *ast.CompositeLit: + // T{...} has type T. + typeof[n] = gofmt(n.Type) + + case *ast.ParenExpr: + // (x) has type of x. + typeof[n] = typeof[n.X] + + case *ast.RangeStmt: + t := expand(typeof[n.X]) + if t == "" { + return + } + var key, value string + if t == "string" { + key, value = "int", "rune" + } else if strings.HasPrefix(t, "[") { + key = "int" + if i := strings.Index(t, "]"); i >= 0 { + value = t[i+1:] + } + } else if strings.HasPrefix(t, "map[") { + if i := strings.Index(t, "]"); i >= 0 { + key, value = t[4:i], t[i+1:] + } + } + changed := false + if n.Key != nil && key != "" { + changed = true + set(n.Key, key, n.Tok == token.DEFINE) + } + if n.Value != nil && value != "" { + changed = true + set(n.Value, value, n.Tok == token.DEFINE) + } + // Ugly failure of vision: already type-checked body. + // Do it again now that we have that type info. + if changed { + typecheck1(cfg, n.Body, typeof, assign) + } + + case *ast.TypeSwitchStmt: + // Type of variable changes for each case in type switch, + // but go/parser generates just one variable. + // Repeat type check for each case with more precise + // type information. + as, ok := n.Assign.(*ast.AssignStmt) + if !ok { + return + } + varx, ok := as.Lhs[0].(*ast.Ident) + if !ok { + return + } + t := typeof[varx] + for _, cas := range n.Body.List { + cas := cas.(*ast.CaseClause) + if len(cas.List) == 1 { + // Variable has specific type only when there is + // exactly one type in the case list. + if tt := typeof[cas.List[0]]; isType(tt) { + tt = getType(tt) + typeof[varx] = tt + typeof[varx.Obj] = tt + typecheck1(cfg, cas.Body, typeof, assign) + } + } + } + // Restore t. + typeof[varx] = t + typeof[varx.Obj] = t + + case *ast.ReturnStmt: + if len(curfn) == 0 { + // Probably can't happen. + return + } + f := curfn[len(curfn)-1] + res := n.Results + if f.Results != nil { + t := split(typeof[f.Results]) + for i := 0; i < len(res) && i < len(t); i++ { + set(res[i], t[i], false) + } + } + } + } + walkBeforeAfter(f, before, after) +} + +// Convert between function type strings and lists of types. +// Using strings makes this a little harder, but it makes +// a lot of the rest of the code easier. This will all go away +// when we can use go/typechecker directly. + +// splitFunc splits "func(x,y,z) (a,b,c)" into ["x", "y", "z"] and ["a", "b", "c"]. +func splitFunc(s string) (in, out []string) { + if !strings.HasPrefix(s, "func(") { + return nil, nil + } + + i := len("func(") // index of beginning of 'in' arguments + nparen := 0 + for j := i; j < len(s); j++ { + switch s[j] { + case '(': + nparen++ + case ')': + nparen-- + if nparen < 0 { + // found end of parameter list + out := strings.TrimSpace(s[j+1:]) + if len(out) >= 2 && out[0] == '(' && out[len(out)-1] == ')' { + out = out[1 : len(out)-1] + } + return split(s[i:j]), split(out) + } + } + } + return nil, nil +} + +// joinFunc is the inverse of splitFunc. +func joinFunc(in, out []string) string { + outs := "" + if len(out) == 1 { + outs = " " + out[0] + } else if len(out) > 1 { + outs = " (" + join(out) + ")" + } + return "func(" + join(in) + ")" + outs +} + +// split splits "int, float" into ["int", "float"] and splits "" into []. +func split(s string) []string { + out := []string{} + i := 0 // current type being scanned is s[i:j]. + nparen := 0 + for j := 0; j < len(s); j++ { + switch s[j] { + case ' ': + if i == j { + i++ + } + case '(': + nparen++ + case ')': + nparen-- + if nparen < 0 { + // probably can't happen + return nil + } + case ',': + if nparen == 0 { + if i < j { + out = append(out, s[i:j]) + } + i = j + 1 + } + } + } + if nparen != 0 { + // probably can't happen + return nil + } + if i < len(s) { + out = append(out, s[i:]) + } + return out +} + +// join is the inverse of split. +func join(x []string) string { + return strings.Join(x, ", ") +} diff --git a/vendor/google.golang.org/appengine/datastore/datastore.go b/vendor/google.golang.org/appengine/datastore/datastore.go new file mode 100644 index 000000000..576bc5013 --- /dev/null +++ b/vendor/google.golang.org/appengine/datastore/datastore.go @@ -0,0 +1,407 @@ +// Copyright 2011 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package datastore + +import ( + "errors" + "fmt" + "reflect" + + "github.com/golang/protobuf/proto" + "golang.org/x/net/context" + + "google.golang.org/appengine" + "google.golang.org/appengine/internal" + pb "google.golang.org/appengine/internal/datastore" +) + +var ( + // ErrInvalidEntityType is returned when functions like Get or Next are + // passed a dst or src argument of invalid type. + ErrInvalidEntityType = errors.New("datastore: invalid entity type") + // ErrInvalidKey is returned when an invalid key is presented. + ErrInvalidKey = errors.New("datastore: invalid key") + // ErrNoSuchEntity is returned when no entity was found for a given key. + ErrNoSuchEntity = errors.New("datastore: no such entity") +) + +// ErrFieldMismatch is returned when a field is to be loaded into a different +// type than the one it was stored from, or when a field is missing or +// unexported in the destination struct. +// StructType is the type of the struct pointed to by the destination argument +// passed to Get or to Iterator.Next. +type ErrFieldMismatch struct { + StructType reflect.Type + FieldName string + Reason string +} + +func (e *ErrFieldMismatch) Error() string { + return fmt.Sprintf("datastore: cannot load field %q into a %q: %s", + e.FieldName, e.StructType, e.Reason) +} + +// protoToKey converts a Reference proto to a *Key. If the key is invalid, +// protoToKey will return the invalid key along with ErrInvalidKey. +func protoToKey(r *pb.Reference) (k *Key, err error) { + appID := r.GetApp() + namespace := r.GetNameSpace() + for _, e := range r.Path.Element { + k = &Key{ + kind: e.GetType(), + stringID: e.GetName(), + intID: e.GetId(), + parent: k, + appID: appID, + namespace: namespace, + } + if !k.valid() { + return k, ErrInvalidKey + } + } + return +} + +// keyToProto converts a *Key to a Reference proto. +func keyToProto(defaultAppID string, k *Key) *pb.Reference { + appID := k.appID + if appID == "" { + appID = defaultAppID + } + n := 0 + for i := k; i != nil; i = i.parent { + n++ + } + e := make([]*pb.Path_Element, n) + for i := k; i != nil; i = i.parent { + n-- + e[n] = &pb.Path_Element{ + Type: &i.kind, + } + // At most one of {Name,Id} should be set. + // Neither will be set for incomplete keys. + if i.stringID != "" { + e[n].Name = &i.stringID + } else if i.intID != 0 { + e[n].Id = &i.intID + } + } + var namespace *string + if k.namespace != "" { + namespace = proto.String(k.namespace) + } + return &pb.Reference{ + App: proto.String(appID), + NameSpace: namespace, + Path: &pb.Path{ + Element: e, + }, + } +} + +// multiKeyToProto is a batch version of keyToProto. +func multiKeyToProto(appID string, key []*Key) []*pb.Reference { + ret := make([]*pb.Reference, len(key)) + for i, k := range key { + ret[i] = keyToProto(appID, k) + } + return ret +} + +// multiValid is a batch version of Key.valid. It returns an error, not a +// []bool. +func multiValid(key []*Key) error { + invalid := false + for _, k := range key { + if !k.valid() { + invalid = true + break + } + } + if !invalid { + return nil + } + err := make(appengine.MultiError, len(key)) + for i, k := range key { + if !k.valid() { + err[i] = ErrInvalidKey + } + } + return err +} + +// It's unfortunate that the two semantically equivalent concepts pb.Reference +// and pb.PropertyValue_ReferenceValue aren't the same type. For example, the +// two have different protobuf field numbers. + +// referenceValueToKey is the same as protoToKey except the input is a +// PropertyValue_ReferenceValue instead of a Reference. +func referenceValueToKey(r *pb.PropertyValue_ReferenceValue) (k *Key, err error) { + appID := r.GetApp() + namespace := r.GetNameSpace() + for _, e := range r.Pathelement { + k = &Key{ + kind: e.GetType(), + stringID: e.GetName(), + intID: e.GetId(), + parent: k, + appID: appID, + namespace: namespace, + } + if !k.valid() { + return nil, ErrInvalidKey + } + } + return +} + +// keyToReferenceValue is the same as keyToProto except the output is a +// PropertyValue_ReferenceValue instead of a Reference. +func keyToReferenceValue(defaultAppID string, k *Key) *pb.PropertyValue_ReferenceValue { + ref := keyToProto(defaultAppID, k) + pe := make([]*pb.PropertyValue_ReferenceValue_PathElement, len(ref.Path.Element)) + for i, e := range ref.Path.Element { + pe[i] = &pb.PropertyValue_ReferenceValue_PathElement{ + Type: e.Type, + Id: e.Id, + Name: e.Name, + } + } + return &pb.PropertyValue_ReferenceValue{ + App: ref.App, + NameSpace: ref.NameSpace, + Pathelement: pe, + } +} + +type multiArgType int + +const ( + multiArgTypeInvalid multiArgType = iota + multiArgTypePropertyLoadSaver + multiArgTypeStruct + multiArgTypeStructPtr + multiArgTypeInterface +) + +// checkMultiArg checks that v has type []S, []*S, []I, or []P, for some struct +// type S, for some interface type I, or some non-interface non-pointer type P +// such that P or *P implements PropertyLoadSaver. +// +// It returns what category the slice's elements are, and the reflect.Type +// that represents S, I or P. +// +// As a special case, PropertyList is an invalid type for v. +func checkMultiArg(v reflect.Value) (m multiArgType, elemType reflect.Type) { + if v.Kind() != reflect.Slice { + return multiArgTypeInvalid, nil + } + if v.Type() == typeOfPropertyList { + return multiArgTypeInvalid, nil + } + elemType = v.Type().Elem() + if reflect.PtrTo(elemType).Implements(typeOfPropertyLoadSaver) { + return multiArgTypePropertyLoadSaver, elemType + } + switch elemType.Kind() { + case reflect.Struct: + return multiArgTypeStruct, elemType + case reflect.Interface: + return multiArgTypeInterface, elemType + case reflect.Ptr: + elemType = elemType.Elem() + if elemType.Kind() == reflect.Struct { + return multiArgTypeStructPtr, elemType + } + } + return multiArgTypeInvalid, nil +} + +// Get loads the entity stored for k into dst, which must be a struct pointer +// or implement PropertyLoadSaver. If there is no such entity for the key, Get +// returns ErrNoSuchEntity. +// +// The values of dst's unmatched struct fields are not modified, and matching +// slice-typed fields are not reset before appending to them. In particular, it +// is recommended to pass a pointer to a zero valued struct on each Get call. +// +// ErrFieldMismatch is returned when a field is to be loaded into a different +// type than the one it was stored from, or when a field is missing or +// unexported in the destination struct. ErrFieldMismatch is only returned if +// dst is a struct pointer. +func Get(c context.Context, key *Key, dst interface{}) error { + if dst == nil { // GetMulti catches nil interface; we need to catch nil ptr here + return ErrInvalidEntityType + } + err := GetMulti(c, []*Key{key}, []interface{}{dst}) + if me, ok := err.(appengine.MultiError); ok { + return me[0] + } + return err +} + +// GetMulti is a batch version of Get. +// +// dst must be a []S, []*S, []I or []P, for some struct type S, some interface +// type I, or some non-interface non-pointer type P such that P or *P +// implements PropertyLoadSaver. If an []I, each element must be a valid dst +// for Get: it must be a struct pointer or implement PropertyLoadSaver. +// +// As a special case, PropertyList is an invalid type for dst, even though a +// PropertyList is a slice of structs. It is treated as invalid to avoid being +// mistakenly passed when []PropertyList was intended. +func GetMulti(c context.Context, key []*Key, dst interface{}) error { + v := reflect.ValueOf(dst) + multiArgType, _ := checkMultiArg(v) + if multiArgType == multiArgTypeInvalid { + return errors.New("datastore: dst has invalid type") + } + if len(key) != v.Len() { + return errors.New("datastore: key and dst slices have different length") + } + if len(key) == 0 { + return nil + } + if err := multiValid(key); err != nil { + return err + } + req := &pb.GetRequest{ + Key: multiKeyToProto(internal.FullyQualifiedAppID(c), key), + } + res := &pb.GetResponse{} + if err := internal.Call(c, "datastore_v3", "Get", req, res); err != nil { + return err + } + if len(key) != len(res.Entity) { + return errors.New("datastore: internal error: server returned the wrong number of entities") + } + multiErr, any := make(appengine.MultiError, len(key)), false + for i, e := range res.Entity { + if e.Entity == nil { + multiErr[i] = ErrNoSuchEntity + } else { + elem := v.Index(i) + if multiArgType == multiArgTypePropertyLoadSaver || multiArgType == multiArgTypeStruct { + elem = elem.Addr() + } + if multiArgType == multiArgTypeStructPtr && elem.IsNil() { + elem.Set(reflect.New(elem.Type().Elem())) + } + multiErr[i] = loadEntity(elem.Interface(), e.Entity) + } + if multiErr[i] != nil { + any = true + } + } + if any { + return multiErr + } + return nil +} + +// Put saves the entity src into the datastore with key k. src must be a struct +// pointer or implement PropertyLoadSaver; if a struct pointer then any +// unexported fields of that struct will be skipped. If k is an incomplete key, +// the returned key will be a unique key generated by the datastore. +func Put(c context.Context, key *Key, src interface{}) (*Key, error) { + k, err := PutMulti(c, []*Key{key}, []interface{}{src}) + if err != nil { + if me, ok := err.(appengine.MultiError); ok { + return nil, me[0] + } + return nil, err + } + return k[0], nil +} + +// PutMulti is a batch version of Put. +// +// src must satisfy the same conditions as the dst argument to GetMulti. +func PutMulti(c context.Context, key []*Key, src interface{}) ([]*Key, error) { + v := reflect.ValueOf(src) + multiArgType, _ := checkMultiArg(v) + if multiArgType == multiArgTypeInvalid { + return nil, errors.New("datastore: src has invalid type") + } + if len(key) != v.Len() { + return nil, errors.New("datastore: key and src slices have different length") + } + if len(key) == 0 { + return nil, nil + } + appID := internal.FullyQualifiedAppID(c) + if err := multiValid(key); err != nil { + return nil, err + } + req := &pb.PutRequest{} + for i := range key { + elem := v.Index(i) + if multiArgType == multiArgTypePropertyLoadSaver || multiArgType == multiArgTypeStruct { + elem = elem.Addr() + } + sProto, err := saveEntity(appID, key[i], elem.Interface()) + if err != nil { + return nil, err + } + req.Entity = append(req.Entity, sProto) + } + res := &pb.PutResponse{} + if err := internal.Call(c, "datastore_v3", "Put", req, res); err != nil { + return nil, err + } + if len(key) != len(res.Key) { + return nil, errors.New("datastore: internal error: server returned the wrong number of keys") + } + ret := make([]*Key, len(key)) + for i := range ret { + var err error + ret[i], err = protoToKey(res.Key[i]) + if err != nil || ret[i].Incomplete() { + return nil, errors.New("datastore: internal error: server returned an invalid key") + } + } + return ret, nil +} + +// Delete deletes the entity for the given key. +func Delete(c context.Context, key *Key) error { + err := DeleteMulti(c, []*Key{key}) + if me, ok := err.(appengine.MultiError); ok { + return me[0] + } + return err +} + +// DeleteMulti is a batch version of Delete. +func DeleteMulti(c context.Context, key []*Key) error { + if len(key) == 0 { + return nil + } + if err := multiValid(key); err != nil { + return err + } + req := &pb.DeleteRequest{ + Key: multiKeyToProto(internal.FullyQualifiedAppID(c), key), + } + res := &pb.DeleteResponse{} + return internal.Call(c, "datastore_v3", "Delete", req, res) +} + +func namespaceMod(m proto.Message, namespace string) { + // pb.Query is the only type that has a name_space field. + // All other namespace support in datastore is in the keys. + switch m := m.(type) { + case *pb.Query: + if m.NameSpace == nil { + m.NameSpace = &namespace + } + } +} + +func init() { + internal.NamespaceMods["datastore_v3"] = namespaceMod + internal.RegisterErrorCodeMap("datastore_v3", pb.Error_ErrorCode_name) + internal.RegisterTimeoutErrorCode("datastore_v3", int32(pb.Error_TIMEOUT)) +} diff --git a/vendor/google.golang.org/appengine/datastore/datastore_test.go b/vendor/google.golang.org/appengine/datastore/datastore_test.go new file mode 100644 index 000000000..683cd15f3 --- /dev/null +++ b/vendor/google.golang.org/appengine/datastore/datastore_test.go @@ -0,0 +1,1750 @@ +// Copyright 2011 Google Inc. All Rights Reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package datastore + +import ( + "encoding/json" + "errors" + "fmt" + "os" + "reflect" + "sort" + "strings" + "testing" + "time" + + "google.golang.org/appengine" + "google.golang.org/appengine/internal/aetesting" + pb "google.golang.org/appengine/internal/datastore" +) + +const testAppID = "testApp" + +type ( + myBlob []byte + myByte byte + myString string +) + +func makeMyByteSlice(n int) []myByte { + b := make([]myByte, n) + for i := range b { + b[i] = myByte(i) + } + return b +} + +func makeInt8Slice(n int) []int8 { + b := make([]int8, n) + for i := range b { + b[i] = int8(i) + } + return b +} + +func makeUint8Slice(n int) []uint8 { + b := make([]uint8, n) + for i := range b { + b[i] = uint8(i) + } + return b +} + +func newKey(stringID string, parent *Key) *Key { + return &Key{ + kind: "kind", + stringID: stringID, + intID: 0, + parent: parent, + appID: testAppID, + } +} + +var ( + testKey0 = newKey("name0", nil) + testKey1a = newKey("name1", nil) + testKey1b = newKey("name1", nil) + testKey2a = newKey("name2", testKey0) + testKey2b = newKey("name2", testKey0) + testGeoPt0 = appengine.GeoPoint{Lat: 1.2, Lng: 3.4} + testGeoPt1 = appengine.GeoPoint{Lat: 5, Lng: 10} + testBadGeoPt = appengine.GeoPoint{Lat: 1000, Lng: 34} + + now = time.Unix(1e9, 0).UTC() +) + +type B0 struct { + B []byte +} + +type B1 struct { + B []int8 +} + +type B2 struct { + B myBlob +} + +type B3 struct { + B []myByte +} + +type B4 struct { + B [][]byte +} + +type B5 struct { + B ByteString +} + +type C0 struct { + I int + C chan int +} + +type C1 struct { + I int + C *chan int +} + +type C2 struct { + I int + C []chan int +} + +type C3 struct { + C string +} + +type E struct{} + +type G0 struct { + G appengine.GeoPoint +} + +type G1 struct { + G []appengine.GeoPoint +} + +type K0 struct { + K *Key +} + +type K1 struct { + K []*Key +} + +type S struct { + St string +} + +type NoOmit struct { + A string + B int `datastore:"Bb"` + C bool `datastore:",noindex"` +} + +type OmitAll struct { + A string `datastore:",omitempty"` + B int `datastore:"Bb,omitempty"` + C bool `datastore:",omitempty,noindex"` + D time.Time `datastore:",omitempty"` + F []int `datastore:",omitempty"` +} + +type Omit struct { + A string `datastore:",omitempty"` + B int `datastore:"Bb,omitempty"` + C bool `datastore:",omitempty,noindex"` + D time.Time `datastore:",omitempty"` + F []int `datastore:",omitempty"` + S `datastore:",omitempty"` +} + +type NoOmits struct { + No []NoOmit `datastore:",omitempty"` + S `datastore:",omitempty"` + Ss S `datastore:",omitempty"` +} + +type N0 struct { + X0 + Nonymous X0 + Ignore string `datastore:"-"` + Other string +} + +type N1 struct { + X0 + Nonymous []X0 + Ignore string `datastore:"-"` + Other string +} + +type N2 struct { + N1 `datastore:"red"` + Green N1 `datastore:"green"` + Blue N1 + White N1 `datastore:"-"` +} + +type O0 struct { + I int64 +} + +type O1 struct { + I int32 +} + +type U0 struct { + U uint +} + +type U1 struct { + U string +} + +type T struct { + T time.Time +} + +type X0 struct { + S string + I int + i int +} + +type X1 struct { + S myString + I int32 + J int64 +} + +type X2 struct { + Z string + i int +} + +type X3 struct { + S bool + I int +} + +type Y0 struct { + B bool + F []float64 + G []float64 +} + +type Y1 struct { + B bool + F float64 +} + +type Y2 struct { + B bool + F []int64 +} + +type Tagged struct { + A int `datastore:"a,noindex"` + B []int `datastore:"b"` + C int `datastore:",noindex"` + D int `datastore:""` + E int + // The "flatten" option is parsed but ignored for now. + F int `datastore:",noindex,flatten"` + G int `datastore:",flatten"` + I int `datastore:"-"` + J int `datastore:",noindex" json:"j"` + + Y0 `datastore:"-"` + Z chan int `datastore:"-,"` +} + +type InvalidTagged1 struct { + I int `datastore:"\t"` +} + +type InvalidTagged2 struct { + I int + J int `datastore:"I"` +} + +type Inner1 struct { + W int32 + X string +} + +type Inner2 struct { + Y float64 +} + +type Inner3 struct { + Z bool +} + +type Outer struct { + A int16 + I []Inner1 + J Inner2 + Inner3 +} + +type OuterEquivalent struct { + A int16 + IDotW []int32 `datastore:"I.W"` + IDotX []string `datastore:"I.X"` + JDotY float64 `datastore:"J.Y"` + Z bool +} + +type Dotted struct { + A DottedA `datastore:"A0.A1.A2"` +} + +type DottedA struct { + B DottedB `datastore:"B3"` +} + +type DottedB struct { + C int `datastore:"C4.C5"` +} + +type SliceOfSlices struct { + I int + S []struct { + J int + F []float64 + } +} + +type Recursive struct { + I int + R []Recursive +} + +type MutuallyRecursive0 struct { + I int + R []MutuallyRecursive1 +} + +type MutuallyRecursive1 struct { + I int + R []MutuallyRecursive0 +} + +type Doubler struct { + S string + I int64 + B bool +} + +type Repeat struct { + Key string + Value []byte +} + +type Repeated struct { + Repeats []Repeat +} + +func (d *Doubler) Load(props []Property) error { + return LoadStruct(d, props) +} + +type EmbeddedTime struct { + time.Time +} + +type SpecialTime struct { + MyTime EmbeddedTime +} + +func (d *Doubler) Save() ([]Property, error) { + // Save the default Property slice to an in-memory buffer (a PropertyList). + props, err := SaveStruct(d) + if err != nil { + return nil, err + } + var list PropertyList + if err := list.Load(props); err != nil { + return nil, err + } + + // Edit that PropertyList, and send it on. + for i := range list { + switch v := list[i].Value.(type) { + case string: + // + means string concatenation. + list[i].Value = v + v + case int64: + // + means integer addition. + list[i].Value = v + v + } + } + return list.Save() +} + +var _ PropertyLoadSaver = (*Doubler)(nil) + +type Deriver struct { + S, Derived, Ignored string +} + +func (e *Deriver) Load(props []Property) error { + for _, p := range props { + if p.Name != "S" { + continue + } + e.S = p.Value.(string) + e.Derived = "derived+" + e.S + } + return nil +} + +func (e *Deriver) Save() ([]Property, error) { + return []Property{ + { + Name: "S", + Value: e.S, + }, + }, nil +} + +var _ PropertyLoadSaver = (*Deriver)(nil) + +type BadMultiPropEntity struct{} + +func (e *BadMultiPropEntity) Load(props []Property) error { + return errors.New("unimplemented") +} + +func (e *BadMultiPropEntity) Save() ([]Property, error) { + // Write multiple properties with the same name "I", but Multiple is false. + var props []Property + for i := 0; i < 3; i++ { + props = append(props, Property{ + Name: "I", + Value: int64(i), + }) + } + return props, nil +} + +var _ PropertyLoadSaver = (*BadMultiPropEntity)(nil) + +type BK struct { + Key appengine.BlobKey +} + +type testCase struct { + desc string + src interface{} + want interface{} + putErr string + getErr string +} + +var testCases = []testCase{ + { + "chan save fails", + &C0{I: -1}, + &E{}, + "unsupported struct field", + "", + }, + { + "*chan save fails", + &C1{I: -1}, + &E{}, + "unsupported struct field", + "", + }, + { + "[]chan save fails", + &C2{I: -1, C: make([]chan int, 8)}, + &E{}, + "unsupported struct field", + "", + }, + { + "chan load fails", + &C3{C: "not a chan"}, + &C0{}, + "", + "type mismatch", + }, + { + "*chan load fails", + &C3{C: "not a *chan"}, + &C1{}, + "", + "type mismatch", + }, + { + "[]chan load fails", + &C3{C: "not a []chan"}, + &C2{}, + "", + "type mismatch", + }, + { + "empty struct", + &E{}, + &E{}, + "", + "", + }, + { + "geopoint", + &G0{G: testGeoPt0}, + &G0{G: testGeoPt0}, + "", + "", + }, + { + "geopoint invalid", + &G0{G: testBadGeoPt}, + &G0{}, + "invalid GeoPoint value", + "", + }, + { + "geopoint as props", + &G0{G: testGeoPt0}, + &PropertyList{ + Property{Name: "G", Value: testGeoPt0, NoIndex: false, Multiple: false}, + }, + "", + "", + }, + { + "geopoint slice", + &G1{G: []appengine.GeoPoint{testGeoPt0, testGeoPt1}}, + &G1{G: []appengine.GeoPoint{testGeoPt0, testGeoPt1}}, + "", + "", + }, + { + "omit empty, all", + &OmitAll{}, + new(PropertyList), + "", + "", + }, + { + "omit empty", + &Omit{}, + &PropertyList{ + Property{Name: "St", Value: "", NoIndex: false, Multiple: false}, + }, + "", + "", + }, + { + "omit empty, fields populated", + &Omit{ + A: "a", + B: 10, + C: true, + D: now, + F: []int{11}, + }, + &PropertyList{ + Property{Name: "A", Value: "a", NoIndex: false, Multiple: false}, + Property{Name: "Bb", Value: int64(10), NoIndex: false, Multiple: false}, + Property{Name: "C", Value: true, NoIndex: true, Multiple: false}, + Property{Name: "D", Value: now, NoIndex: false, Multiple: false}, + Property{Name: "F", Value: int64(11), NoIndex: false, Multiple: true}, + Property{Name: "St", Value: "", NoIndex: false, Multiple: false}, + }, + "", + "", + }, + { + "omit empty, fields populated", + &Omit{ + A: "a", + B: 10, + C: true, + D: now, + F: []int{11}, + S: S{St: "string"}, + }, + &PropertyList{ + Property{Name: "A", Value: "a", NoIndex: false, Multiple: false}, + Property{Name: "Bb", Value: int64(10), NoIndex: false, Multiple: false}, + Property{Name: "C", Value: true, NoIndex: true, Multiple: false}, + Property{Name: "D", Value: now, NoIndex: false, Multiple: false}, + Property{Name: "F", Value: int64(11), NoIndex: false, Multiple: true}, + Property{Name: "St", Value: "string", NoIndex: false, Multiple: false}, + }, + "", + "", + }, + { + "omit empty does not propagate", + &NoOmits{ + No: []NoOmit{ + NoOmit{}, + }, + S: S{}, + Ss: S{}, + }, + &PropertyList{ + Property{Name: "No.A", Value: "", NoIndex: false, Multiple: true}, + Property{Name: "No.Bb", Value: int64(0), NoIndex: false, Multiple: true}, + Property{Name: "No.C", Value: false, NoIndex: true, Multiple: true}, + Property{Name: "Ss.St", Value: "", NoIndex: false, Multiple: false}, + Property{Name: "St", Value: "", NoIndex: false, Multiple: false}}, + "", + "", + }, + { + "key", + &K0{K: testKey1a}, + &K0{K: testKey1b}, + "", + "", + }, + { + "key with parent", + &K0{K: testKey2a}, + &K0{K: testKey2b}, + "", + "", + }, + { + "nil key", + &K0{}, + &K0{}, + "", + "", + }, + { + "all nil keys in slice", + &K1{[]*Key{nil, nil}}, + &K1{[]*Key{nil, nil}}, + "", + "", + }, + { + "some nil keys in slice", + &K1{[]*Key{testKey1a, nil, testKey2a}}, + &K1{[]*Key{testKey1b, nil, testKey2b}}, + "", + "", + }, + { + "overflow", + &O0{I: 1 << 48}, + &O1{}, + "", + "overflow", + }, + { + "time", + &T{T: time.Unix(1e9, 0)}, + &T{T: time.Unix(1e9, 0)}, + "", + "", + }, + { + "time as props", + &T{T: time.Unix(1e9, 0)}, + &PropertyList{ + Property{Name: "T", Value: time.Unix(1e9, 0).UTC(), NoIndex: false, Multiple: false}, + }, + "", + "", + }, + { + "uint save", + &U0{U: 1}, + &U0{}, + "unsupported struct field", + "", + }, + { + "uint load", + &U1{U: "not a uint"}, + &U0{}, + "", + "type mismatch", + }, + { + "zero", + &X0{}, + &X0{}, + "", + "", + }, + { + "basic", + &X0{S: "one", I: 2, i: 3}, + &X0{S: "one", I: 2}, + "", + "", + }, + { + "save string/int load myString/int32", + &X0{S: "one", I: 2, i: 3}, + &X1{S: "one", I: 2}, + "", + "", + }, + { + "missing fields", + &X0{S: "one", I: 2, i: 3}, + &X2{}, + "", + "no such struct field", + }, + { + "save string load bool", + &X0{S: "one", I: 2, i: 3}, + &X3{I: 2}, + "", + "type mismatch", + }, + { + "basic slice", + &Y0{B: true, F: []float64{7, 8, 9}}, + &Y0{B: true, F: []float64{7, 8, 9}}, + "", + "", + }, + { + "save []float64 load float64", + &Y0{B: true, F: []float64{7, 8, 9}}, + &Y1{B: true}, + "", + "requires a slice", + }, + { + "save []float64 load []int64", + &Y0{B: true, F: []float64{7, 8, 9}}, + &Y2{B: true}, + "", + "type mismatch", + }, + { + "single slice is too long", + &Y0{F: make([]float64, maxIndexedProperties+1)}, + &Y0{}, + "too many indexed properties", + "", + }, + { + "two slices are too long", + &Y0{F: make([]float64, maxIndexedProperties), G: make([]float64, maxIndexedProperties)}, + &Y0{}, + "too many indexed properties", + "", + }, + { + "one slice and one scalar are too long", + &Y0{F: make([]float64, maxIndexedProperties), B: true}, + &Y0{}, + "too many indexed properties", + "", + }, + { + "slice of slices of bytes", + &Repeated{ + Repeats: []Repeat{ + { + Key: "key 1", + Value: []byte("value 1"), + }, + { + Key: "key 2", + Value: []byte("value 2"), + }, + }, + }, + &Repeated{ + Repeats: []Repeat{ + { + Key: "key 1", + Value: []byte("value 1"), + }, + { + Key: "key 2", + Value: []byte("value 2"), + }, + }, + }, + "", + "", + }, + { + "long blob", + &B0{B: makeUint8Slice(maxIndexedProperties + 1)}, + &B0{B: makeUint8Slice(maxIndexedProperties + 1)}, + "", + "", + }, + { + "long []int8 is too long", + &B1{B: makeInt8Slice(maxIndexedProperties + 1)}, + &B1{}, + "too many indexed properties", + "", + }, + { + "short []int8", + &B1{B: makeInt8Slice(3)}, + &B1{B: makeInt8Slice(3)}, + "", + "", + }, + { + "long myBlob", + &B2{B: makeUint8Slice(maxIndexedProperties + 1)}, + &B2{B: makeUint8Slice(maxIndexedProperties + 1)}, + "", + "", + }, + { + "short myBlob", + &B2{B: makeUint8Slice(3)}, + &B2{B: makeUint8Slice(3)}, + "", + "", + }, + { + "long []myByte", + &B3{B: makeMyByteSlice(maxIndexedProperties + 1)}, + &B3{B: makeMyByteSlice(maxIndexedProperties + 1)}, + "", + "", + }, + { + "short []myByte", + &B3{B: makeMyByteSlice(3)}, + &B3{B: makeMyByteSlice(3)}, + "", + "", + }, + { + "slice of blobs", + &B4{B: [][]byte{ + makeUint8Slice(3), + makeUint8Slice(4), + makeUint8Slice(5), + }}, + &B4{B: [][]byte{ + makeUint8Slice(3), + makeUint8Slice(4), + makeUint8Slice(5), + }}, + "", + "", + }, + { + "short ByteString", + &B5{B: ByteString(makeUint8Slice(3))}, + &B5{B: ByteString(makeUint8Slice(3))}, + "", + "", + }, + { + "short ByteString as props", + &B5{B: ByteString(makeUint8Slice(3))}, + &PropertyList{ + Property{Name: "B", Value: ByteString(makeUint8Slice(3)), NoIndex: false, Multiple: false}, + }, + "", + "", + }, + { + "short ByteString into string", + &B5{B: ByteString("legacy")}, + &struct{ B string }{"legacy"}, + "", + "", + }, + { + "[]byte must be noindex", + &PropertyList{ + Property{Name: "B", Value: makeUint8Slice(3), NoIndex: false}, + }, + nil, + "cannot index a []byte valued Property", + "", + }, + { + "save tagged load props", + &Tagged{A: 1, B: []int{21, 22, 23}, C: 3, D: 4, E: 5, F: 6, G: 7, I: 8, J: 9}, + &PropertyList{ + // A and B are renamed to a and b; A and C are noindex, I is ignored. + // Indexed properties are loaded before raw properties. Thus, the + // result is: b, b, b, D, E, a, c. + Property{Name: "C", Value: int64(3), NoIndex: true, Multiple: false}, + Property{Name: "D", Value: int64(4), NoIndex: false, Multiple: false}, + Property{Name: "E", Value: int64(5), NoIndex: false, Multiple: false}, + Property{Name: "F", Value: int64(6), NoIndex: true, Multiple: false}, + Property{Name: "G", Value: int64(7), NoIndex: false, Multiple: false}, + Property{Name: "J", Value: int64(9), NoIndex: true, Multiple: false}, + Property{Name: "a", Value: int64(1), NoIndex: true, Multiple: false}, + Property{Name: "b", Value: int64(21), NoIndex: false, Multiple: true}, + Property{Name: "b", Value: int64(22), NoIndex: false, Multiple: true}, + Property{Name: "b", Value: int64(23), NoIndex: false, Multiple: true}, + }, + "", + "", + }, + { + "save tagged load tagged", + &Tagged{A: 1, B: []int{21, 22, 23}, C: 3, D: 4, E: 5, I: 6, J: 7}, + &Tagged{A: 1, B: []int{21, 22, 23}, C: 3, D: 4, E: 5, J: 7}, + "", + "", + }, + { + "save props load tagged", + &PropertyList{ + Property{Name: "A", Value: int64(11), NoIndex: true, Multiple: false}, + Property{Name: "a", Value: int64(12), NoIndex: true, Multiple: false}, + }, + &Tagged{A: 12}, + "", + `cannot load field "A"`, + }, + { + "invalid tagged1", + &InvalidTagged1{I: 1}, + &InvalidTagged1{}, + "struct tag has invalid property name", + "", + }, + { + "invalid tagged2", + &InvalidTagged2{I: 1, J: 2}, + &InvalidTagged2{}, + "struct tag has repeated property name", + "", + }, + { + "doubler", + &Doubler{S: "s", I: 1, B: true}, + &Doubler{S: "ss", I: 2, B: true}, + "", + "", + }, + { + "save struct load props", + &X0{S: "s", I: 1}, + &PropertyList{ + Property{Name: "I", Value: int64(1), NoIndex: false, Multiple: false}, + Property{Name: "S", Value: "s", NoIndex: false, Multiple: false}, + }, + "", + "", + }, + { + "save props load struct", + &PropertyList{ + Property{Name: "S", Value: "s", NoIndex: false, Multiple: false}, + Property{Name: "I", Value: int64(1), NoIndex: false, Multiple: false}, + }, + &X0{S: "s", I: 1}, + "", + "", + }, + { + "nil-value props", + &PropertyList{ + Property{Name: "I", Value: nil, NoIndex: false, Multiple: false}, + Property{Name: "B", Value: nil, NoIndex: false, Multiple: false}, + Property{Name: "S", Value: nil, NoIndex: false, Multiple: false}, + Property{Name: "F", Value: nil, NoIndex: false, Multiple: false}, + Property{Name: "K", Value: nil, NoIndex: false, Multiple: false}, + Property{Name: "T", Value: nil, NoIndex: false, Multiple: false}, + Property{Name: "J", Value: nil, NoIndex: false, Multiple: true}, + Property{Name: "J", Value: int64(7), NoIndex: false, Multiple: true}, + Property{Name: "J", Value: nil, NoIndex: false, Multiple: true}, + }, + &struct { + I int64 + B bool + S string + F float64 + K *Key + T time.Time + J []int64 + }{ + J: []int64{0, 7, 0}, + }, + "", + "", + }, + { + "save outer load props", + &Outer{ + A: 1, + I: []Inner1{ + {10, "ten"}, + {20, "twenty"}, + {30, "thirty"}, + }, + J: Inner2{ + Y: 3.14, + }, + Inner3: Inner3{ + Z: true, + }, + }, + &PropertyList{ + Property{Name: "A", Value: int64(1), NoIndex: false, Multiple: false}, + Property{Name: "I.W", Value: int64(10), NoIndex: false, Multiple: true}, + Property{Name: "I.W", Value: int64(20), NoIndex: false, Multiple: true}, + Property{Name: "I.W", Value: int64(30), NoIndex: false, Multiple: true}, + Property{Name: "I.X", Value: "ten", NoIndex: false, Multiple: true}, + Property{Name: "I.X", Value: "twenty", NoIndex: false, Multiple: true}, + Property{Name: "I.X", Value: "thirty", NoIndex: false, Multiple: true}, + Property{Name: "J.Y", Value: float64(3.14), NoIndex: false, Multiple: false}, + Property{Name: "Z", Value: true, NoIndex: false, Multiple: false}, + }, + "", + "", + }, + { + "save props load outer-equivalent", + &PropertyList{ + Property{Name: "A", Value: int64(1), NoIndex: false, Multiple: false}, + Property{Name: "I.W", Value: int64(10), NoIndex: false, Multiple: true}, + Property{Name: "I.X", Value: "ten", NoIndex: false, Multiple: true}, + Property{Name: "I.W", Value: int64(20), NoIndex: false, Multiple: true}, + Property{Name: "I.X", Value: "twenty", NoIndex: false, Multiple: true}, + Property{Name: "I.W", Value: int64(30), NoIndex: false, Multiple: true}, + Property{Name: "I.X", Value: "thirty", NoIndex: false, Multiple: true}, + Property{Name: "J.Y", Value: float64(3.14), NoIndex: false, Multiple: false}, + Property{Name: "Z", Value: true, NoIndex: false, Multiple: false}, + }, + &OuterEquivalent{ + A: 1, + IDotW: []int32{10, 20, 30}, + IDotX: []string{"ten", "twenty", "thirty"}, + JDotY: 3.14, + Z: true, + }, + "", + "", + }, + { + "save outer-equivalent load outer", + &OuterEquivalent{ + A: 1, + IDotW: []int32{10, 20, 30}, + IDotX: []string{"ten", "twenty", "thirty"}, + JDotY: 3.14, + Z: true, + }, + &Outer{ + A: 1, + I: []Inner1{ + {10, "ten"}, + {20, "twenty"}, + {30, "thirty"}, + }, + J: Inner2{ + Y: 3.14, + }, + Inner3: Inner3{ + Z: true, + }, + }, + "", + "", + }, + { + "dotted names save", + &Dotted{A: DottedA{B: DottedB{C: 88}}}, + &PropertyList{ + Property{Name: "A0.A1.A2.B3.C4.C5", Value: int64(88), NoIndex: false, Multiple: false}, + }, + "", + "", + }, + { + "dotted names load", + &PropertyList{ + Property{Name: "A0.A1.A2.B3.C4.C5", Value: int64(99), NoIndex: false, Multiple: false}, + }, + &Dotted{A: DottedA{B: DottedB{C: 99}}}, + "", + "", + }, + { + "save struct load deriver", + &X0{S: "s", I: 1}, + &Deriver{S: "s", Derived: "derived+s"}, + "", + "", + }, + { + "save deriver load struct", + &Deriver{S: "s", Derived: "derived+s", Ignored: "ignored"}, + &X0{S: "s"}, + "", + "", + }, + { + "bad multi-prop entity", + &BadMultiPropEntity{}, + &BadMultiPropEntity{}, + "Multiple is false", + "", + }, + // Regression: CL 25062824 broke handling of appengine.BlobKey fields. + { + "appengine.BlobKey", + &BK{Key: "blah"}, + &BK{Key: "blah"}, + "", + "", + }, + { + "zero time.Time", + &T{T: time.Time{}}, + &T{T: time.Time{}}, + "", + "", + }, + { + "time.Time near Unix zero time", + &T{T: time.Unix(0, 4e3)}, + &T{T: time.Unix(0, 4e3)}, + "", + "", + }, + { + "time.Time, far in the future", + &T{T: time.Date(99999, 1, 1, 0, 0, 0, 0, time.UTC)}, + &T{T: time.Date(99999, 1, 1, 0, 0, 0, 0, time.UTC)}, + "", + "", + }, + { + "time.Time, very far in the past", + &T{T: time.Date(-300000, 1, 1, 0, 0, 0, 0, time.UTC)}, + &T{}, + "time value out of range", + "", + }, + { + "time.Time, very far in the future", + &T{T: time.Date(294248, 1, 1, 0, 0, 0, 0, time.UTC)}, + &T{}, + "time value out of range", + "", + }, + { + "structs", + &N0{ + X0: X0{S: "one", I: 2, i: 3}, + Nonymous: X0{S: "four", I: 5, i: 6}, + Ignore: "ignore", + Other: "other", + }, + &N0{ + X0: X0{S: "one", I: 2}, + Nonymous: X0{S: "four", I: 5}, + Other: "other", + }, + "", + "", + }, + { + "slice of structs", + &N1{ + X0: X0{S: "one", I: 2, i: 3}, + Nonymous: []X0{ + {S: "four", I: 5, i: 6}, + {S: "seven", I: 8, i: 9}, + {S: "ten", I: 11, i: 12}, + {S: "thirteen", I: 14, i: 15}, + }, + Ignore: "ignore", + Other: "other", + }, + &N1{ + X0: X0{S: "one", I: 2}, + Nonymous: []X0{ + {S: "four", I: 5}, + {S: "seven", I: 8}, + {S: "ten", I: 11}, + {S: "thirteen", I: 14}, + }, + Other: "other", + }, + "", + "", + }, + { + "structs with slices of structs", + &N2{ + N1: N1{ + X0: X0{S: "rouge"}, + Nonymous: []X0{ + {S: "rosso0"}, + {S: "rosso1"}, + }, + }, + Green: N1{ + X0: X0{S: "vert"}, + Nonymous: []X0{ + {S: "verde0"}, + {S: "verde1"}, + {S: "verde2"}, + }, + }, + Blue: N1{ + X0: X0{S: "bleu"}, + Nonymous: []X0{ + {S: "blu0"}, + {S: "blu1"}, + {S: "blu2"}, + {S: "blu3"}, + }, + }, + }, + &N2{ + N1: N1{ + X0: X0{S: "rouge"}, + Nonymous: []X0{ + {S: "rosso0"}, + {S: "rosso1"}, + }, + }, + Green: N1{ + X0: X0{S: "vert"}, + Nonymous: []X0{ + {S: "verde0"}, + {S: "verde1"}, + {S: "verde2"}, + }, + }, + Blue: N1{ + X0: X0{S: "bleu"}, + Nonymous: []X0{ + {S: "blu0"}, + {S: "blu1"}, + {S: "blu2"}, + {S: "blu3"}, + }, + }, + }, + "", + "", + }, + { + "save structs load props", + &N2{ + N1: N1{ + X0: X0{S: "rouge"}, + Nonymous: []X0{ + {S: "rosso0"}, + {S: "rosso1"}, + }, + }, + Green: N1{ + X0: X0{S: "vert"}, + Nonymous: []X0{ + {S: "verde0"}, + {S: "verde1"}, + {S: "verde2"}, + }, + }, + Blue: N1{ + X0: X0{S: "bleu"}, + Nonymous: []X0{ + {S: "blu0"}, + {S: "blu1"}, + {S: "blu2"}, + {S: "blu3"}, + }, + }, + }, + &PropertyList{ + Property{Name: "Blue.I", Value: int64(0), NoIndex: false, Multiple: false}, + Property{Name: "Blue.Nonymous.I", Value: int64(0), NoIndex: false, Multiple: true}, + Property{Name: "Blue.Nonymous.I", Value: int64(0), NoIndex: false, Multiple: true}, + Property{Name: "Blue.Nonymous.I", Value: int64(0), NoIndex: false, Multiple: true}, + Property{Name: "Blue.Nonymous.I", Value: int64(0), NoIndex: false, Multiple: true}, + Property{Name: "Blue.Nonymous.S", Value: "blu0", NoIndex: false, Multiple: true}, + Property{Name: "Blue.Nonymous.S", Value: "blu1", NoIndex: false, Multiple: true}, + Property{Name: "Blue.Nonymous.S", Value: "blu2", NoIndex: false, Multiple: true}, + Property{Name: "Blue.Nonymous.S", Value: "blu3", NoIndex: false, Multiple: true}, + Property{Name: "Blue.Other", Value: "", NoIndex: false, Multiple: false}, + Property{Name: "Blue.S", Value: "bleu", NoIndex: false, Multiple: false}, + Property{Name: "green.I", Value: int64(0), NoIndex: false, Multiple: false}, + Property{Name: "green.Nonymous.I", Value: int64(0), NoIndex: false, Multiple: true}, + Property{Name: "green.Nonymous.I", Value: int64(0), NoIndex: false, Multiple: true}, + Property{Name: "green.Nonymous.I", Value: int64(0), NoIndex: false, Multiple: true}, + Property{Name: "green.Nonymous.S", Value: "verde0", NoIndex: false, Multiple: true}, + Property{Name: "green.Nonymous.S", Value: "verde1", NoIndex: false, Multiple: true}, + Property{Name: "green.Nonymous.S", Value: "verde2", NoIndex: false, Multiple: true}, + Property{Name: "green.Other", Value: "", NoIndex: false, Multiple: false}, + Property{Name: "green.S", Value: "vert", NoIndex: false, Multiple: false}, + Property{Name: "red.I", Value: int64(0), NoIndex: false, Multiple: false}, + Property{Name: "red.Nonymous.I", Value: int64(0), NoIndex: false, Multiple: true}, + Property{Name: "red.Nonymous.I", Value: int64(0), NoIndex: false, Multiple: true}, + Property{Name: "red.Nonymous.S", Value: "rosso0", NoIndex: false, Multiple: true}, + Property{Name: "red.Nonymous.S", Value: "rosso1", NoIndex: false, Multiple: true}, + Property{Name: "red.Other", Value: "", NoIndex: false, Multiple: false}, + Property{Name: "red.S", Value: "rouge", NoIndex: false, Multiple: false}, + }, + "", + "", + }, + { + "save props load structs with ragged fields", + &PropertyList{ + Property{Name: "red.S", Value: "rot", NoIndex: false, Multiple: false}, + Property{Name: "green.Nonymous.I", Value: int64(10), NoIndex: false, Multiple: true}, + Property{Name: "green.Nonymous.I", Value: int64(11), NoIndex: false, Multiple: true}, + Property{Name: "green.Nonymous.I", Value: int64(12), NoIndex: false, Multiple: true}, + Property{Name: "green.Nonymous.I", Value: int64(13), NoIndex: false, Multiple: true}, + Property{Name: "Blue.Nonymous.S", Value: "blau0", NoIndex: false, Multiple: true}, + Property{Name: "Blue.Nonymous.I", Value: int64(20), NoIndex: false, Multiple: true}, + Property{Name: "Blue.Nonymous.S", Value: "blau1", NoIndex: false, Multiple: true}, + Property{Name: "Blue.Nonymous.I", Value: int64(21), NoIndex: false, Multiple: true}, + Property{Name: "Blue.Nonymous.S", Value: "blau2", NoIndex: false, Multiple: true}, + }, + &N2{ + N1: N1{ + X0: X0{S: "rot"}, + }, + Green: N1{ + Nonymous: []X0{ + {I: 10}, + {I: 11}, + {I: 12}, + {I: 13}, + }, + }, + Blue: N1{ + Nonymous: []X0{ + {S: "blau0", I: 20}, + {S: "blau1", I: 21}, + {S: "blau2"}, + }, + }, + }, + "", + "", + }, + { + "save structs with noindex tags", + &struct { + A struct { + X string `datastore:",noindex"` + Y string + } `datastore:",noindex"` + B struct { + X string `datastore:",noindex"` + Y string + } + }{}, + &PropertyList{ + Property{Name: "A.X", Value: "", NoIndex: true, Multiple: false}, + Property{Name: "A.Y", Value: "", NoIndex: true, Multiple: false}, + Property{Name: "B.X", Value: "", NoIndex: true, Multiple: false}, + Property{Name: "B.Y", Value: "", NoIndex: false, Multiple: false}, + }, + "", + "", + }, + { + "embedded struct with name override", + &struct { + Inner1 `datastore:"foo"` + }{}, + &PropertyList{ + Property{Name: "foo.W", Value: int64(0), NoIndex: false, Multiple: false}, + Property{Name: "foo.X", Value: "", NoIndex: false, Multiple: false}, + }, + "", + "", + }, + { + "slice of slices", + &SliceOfSlices{}, + nil, + "flattening nested structs leads to a slice of slices", + "", + }, + { + "recursive struct", + &Recursive{}, + nil, + "recursive struct", + "", + }, + { + "mutually recursive struct", + &MutuallyRecursive0{}, + nil, + "recursive struct", + "", + }, + { + "non-exported struct fields", + &struct { + i, J int64 + }{i: 1, J: 2}, + &PropertyList{ + Property{Name: "J", Value: int64(2), NoIndex: false, Multiple: false}, + }, + "", + "", + }, + { + "json.RawMessage", + &struct { + J json.RawMessage + }{ + J: json.RawMessage("rawr"), + }, + &PropertyList{ + Property{Name: "J", Value: []byte("rawr"), NoIndex: true, Multiple: false}, + }, + "", + "", + }, + { + "json.RawMessage to myBlob", + &struct { + B json.RawMessage + }{ + B: json.RawMessage("rawr"), + }, + &B2{B: myBlob("rawr")}, + "", + "", + }, + { + "embedded time field", + &SpecialTime{MyTime: EmbeddedTime{now}}, + &SpecialTime{MyTime: EmbeddedTime{now}}, + "", + "", + }, + { + "embedded time load", + &PropertyList{ + Property{Name: "MyTime.", Value: now, NoIndex: false, Multiple: false}, + }, + &SpecialTime{MyTime: EmbeddedTime{now}}, + "", + "", + }, +} + +// checkErr returns the empty string if either both want and err are zero, +// or if want is a non-empty substring of err's string representation. +func checkErr(want string, err error) string { + if err != nil { + got := err.Error() + if want == "" || strings.Index(got, want) == -1 { + return got + } + } else if want != "" { + return fmt.Sprintf("want error %q", want) + } + return "" +} + +func TestRoundTrip(t *testing.T) { + for _, tc := range testCases { + p, err := saveEntity(testAppID, testKey0, tc.src) + if s := checkErr(tc.putErr, err); s != "" { + t.Errorf("%s: save: %s", tc.desc, s) + continue + } + if p == nil { + continue + } + var got interface{} + if _, ok := tc.want.(*PropertyList); ok { + got = new(PropertyList) + } else { + got = reflect.New(reflect.TypeOf(tc.want).Elem()).Interface() + } + err = loadEntity(got, p) + if s := checkErr(tc.getErr, err); s != "" { + t.Errorf("%s: load: %s", tc.desc, s) + continue + } + if pl, ok := got.(*PropertyList); ok { + // Sort by name to make sure we have a deterministic order. + sort.Stable(byName(*pl)) + } + equal := false + if gotT, ok := got.(*T); ok { + // Round tripping a time.Time can result in a different time.Location: Local instead of UTC. + // We therefore test equality explicitly, instead of relying on reflect.DeepEqual. + equal = gotT.T.Equal(tc.want.(*T).T) + } else { + equal = reflect.DeepEqual(got, tc.want) + } + if !equal { + t.Errorf("%s: compare: got %v want %v", tc.desc, got, tc.want) + continue + } + } +} + +type byName PropertyList + +func (s byName) Len() int { return len(s) } +func (s byName) Less(i, j int) bool { return s[i].Name < s[j].Name } +func (s byName) Swap(i, j int) { s[i], s[j] = s[j], s[i] } + +func TestQueryConstruction(t *testing.T) { + tests := []struct { + q, exp *Query + err string + }{ + { + q: NewQuery("Foo"), + exp: &Query{ + kind: "Foo", + limit: -1, + }, + }, + { + // Regular filtered query with standard spacing. + q: NewQuery("Foo").Filter("foo >", 7), + exp: &Query{ + kind: "Foo", + filter: []filter{ + { + FieldName: "foo", + Op: greaterThan, + Value: 7, + }, + }, + limit: -1, + }, + }, + { + // Filtered query with no spacing. + q: NewQuery("Foo").Filter("foo=", 6), + exp: &Query{ + kind: "Foo", + filter: []filter{ + { + FieldName: "foo", + Op: equal, + Value: 6, + }, + }, + limit: -1, + }, + }, + { + // Filtered query with funky spacing. + q: NewQuery("Foo").Filter(" foo< ", 8), + exp: &Query{ + kind: "Foo", + filter: []filter{ + { + FieldName: "foo", + Op: lessThan, + Value: 8, + }, + }, + limit: -1, + }, + }, + { + // Filtered query with multicharacter op. + q: NewQuery("Foo").Filter("foo >=", 9), + exp: &Query{ + kind: "Foo", + filter: []filter{ + { + FieldName: "foo", + Op: greaterEq, + Value: 9, + }, + }, + limit: -1, + }, + }, + { + // Query with ordering. + q: NewQuery("Foo").Order("bar"), + exp: &Query{ + kind: "Foo", + order: []order{ + { + FieldName: "bar", + Direction: ascending, + }, + }, + limit: -1, + }, + }, + { + // Query with reverse ordering, and funky spacing. + q: NewQuery("Foo").Order(" - bar"), + exp: &Query{ + kind: "Foo", + order: []order{ + { + FieldName: "bar", + Direction: descending, + }, + }, + limit: -1, + }, + }, + { + // Query with an empty ordering. + q: NewQuery("Foo").Order(""), + err: "empty order", + }, + { + // Query with a + ordering. + q: NewQuery("Foo").Order("+bar"), + err: "invalid order", + }, + } + for i, test := range tests { + if test.q.err != nil { + got := test.q.err.Error() + if !strings.Contains(got, test.err) { + t.Errorf("%d: error mismatch: got %q want something containing %q", i, got, test.err) + } + continue + } + if !reflect.DeepEqual(test.q, test.exp) { + t.Errorf("%d: mismatch: got %v want %v", i, test.q, test.exp) + } + } +} + +func TestStringMeaning(t *testing.T) { + var xx [4]interface{} + xx[0] = &struct { + X string + }{"xx0"} + xx[1] = &struct { + X string `datastore:",noindex"` + }{"xx1"} + xx[2] = &struct { + X []byte + }{[]byte("xx2")} + xx[3] = &struct { + X []byte `datastore:",noindex"` + }{[]byte("xx3")} + + indexed := [4]bool{ + true, + false, + false, // A []byte is always no-index. + false, + } + want := [4]pb.Property_Meaning{ + pb.Property_NO_MEANING, + pb.Property_TEXT, + pb.Property_BLOB, + pb.Property_BLOB, + } + + for i, x := range xx { + props, err := SaveStruct(x) + if err != nil { + t.Errorf("i=%d: SaveStruct: %v", i, err) + continue + } + e, err := propertiesToProto("appID", testKey0, props) + if err != nil { + t.Errorf("i=%d: propertiesToProto: %v", i, err) + continue + } + var p *pb.Property + switch { + case indexed[i] && len(e.Property) == 1: + p = e.Property[0] + case !indexed[i] && len(e.RawProperty) == 1: + p = e.RawProperty[0] + default: + t.Errorf("i=%d: EntityProto did not have expected property slice", i) + continue + } + if got := p.GetMeaning(); got != want[i] { + t.Errorf("i=%d: meaning: got %v, want %v", i, got, want[i]) + continue + } + } +} + +func TestNamespaceResetting(t *testing.T) { + // These environment variables are necessary because *Query.Run will + // call internal.FullyQualifiedAppID which checks these variables or falls + // back to the Metadata service that is not available in tests. + environ := []struct { + key, value string + }{ + {"GAE_LONG_APP_ID", "my-app-id"}, + {"GAE_PARTITION", "1"}, + } + for _, v := range environ { + old := os.Getenv(v.key) + os.Setenv(v.key, v.value) + v.value = old + } + defer func() { // Restore old environment after the test completes. + for _, v := range environ { + if v.value == "" { + os.Unsetenv(v.key) + continue + } + os.Setenv(v.key, v.value) + } + }() + + namec := make(chan *string, 1) + c0 := aetesting.FakeSingleContext(t, "datastore_v3", "RunQuery", func(req *pb.Query, res *pb.QueryResult) error { + namec <- req.NameSpace + return fmt.Errorf("RPC error") + }) + + // Check that wrapping c0 in a namespace twice works correctly. + c1, err := appengine.Namespace(c0, "A") + if err != nil { + t.Fatalf("appengine.Namespace: %v", err) + } + c2, err := appengine.Namespace(c1, "") // should act as the original context + if err != nil { + t.Fatalf("appengine.Namespace: %v", err) + } + + q := NewQuery("SomeKind") + + q.Run(c0) + if ns := <-namec; ns != nil { + t.Errorf(`RunQuery with c0: ns = %q, want nil`, *ns) + } + + q.Run(c1) + if ns := <-namec; ns == nil { + t.Error(`RunQuery with c1: ns = nil, want "A"`) + } else if *ns != "A" { + t.Errorf(`RunQuery with c1: ns = %q, want "A"`, *ns) + } + + q.Run(c2) + if ns := <-namec; ns != nil { + t.Errorf(`RunQuery with c2: ns = %q, want nil`, *ns) + } +} diff --git a/vendor/google.golang.org/appengine/datastore/doc.go b/vendor/google.golang.org/appengine/datastore/doc.go new file mode 100644 index 000000000..85616cf27 --- /dev/null +++ b/vendor/google.golang.org/appengine/datastore/doc.go @@ -0,0 +1,361 @@ +// Copyright 2011 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +/* +Package datastore provides a client for App Engine's datastore service. + + +Basic Operations + +Entities are the unit of storage and are associated with a key. A key +consists of an optional parent key, a string application ID, a string kind +(also known as an entity type), and either a StringID or an IntID. A +StringID is also known as an entity name or key name. + +It is valid to create a key with a zero StringID and a zero IntID; this is +called an incomplete key, and does not refer to any saved entity. Putting an +entity into the datastore under an incomplete key will cause a unique key +to be generated for that entity, with a non-zero IntID. + +An entity's contents are a mapping from case-sensitive field names to values. +Valid value types are: + - signed integers (int, int8, int16, int32 and int64), + - bool, + - string, + - float32 and float64, + - []byte (up to 1 megabyte in length), + - any type whose underlying type is one of the above predeclared types, + - ByteString, + - *Key, + - time.Time (stored with microsecond precision), + - appengine.BlobKey, + - appengine.GeoPoint, + - structs whose fields are all valid value types, + - slices of any of the above. + +Slices of structs are valid, as are structs that contain slices. However, if +one struct contains another, then at most one of those can be repeated. This +disqualifies recursively defined struct types: any struct T that (directly or +indirectly) contains a []T. + +The Get and Put functions load and save an entity's contents. An entity's +contents are typically represented by a struct pointer. + +Example code: + + type Entity struct { + Value string + } + + func handle(w http.ResponseWriter, r *http.Request) { + ctx := appengine.NewContext(r) + + k := datastore.NewKey(ctx, "Entity", "stringID", 0, nil) + e := new(Entity) + if err := datastore.Get(ctx, k, e); err != nil { + http.Error(w, err.Error(), 500) + return + } + + old := e.Value + e.Value = r.URL.Path + + if _, err := datastore.Put(ctx, k, e); err != nil { + http.Error(w, err.Error(), 500) + return + } + + w.Header().Set("Content-Type", "text/plain; charset=utf-8") + fmt.Fprintf(w, "old=%q\nnew=%q\n", old, e.Value) + } + +GetMulti, PutMulti and DeleteMulti are batch versions of the Get, Put and +Delete functions. They take a []*Key instead of a *Key, and may return an +appengine.MultiError when encountering partial failure. + + +Properties + +An entity's contents can be represented by a variety of types. These are +typically struct pointers, but can also be any type that implements the +PropertyLoadSaver interface. If using a struct pointer, you do not have to +explicitly implement the PropertyLoadSaver interface; the datastore will +automatically convert via reflection. If a struct pointer does implement that +interface then those methods will be used in preference to the default +behavior for struct pointers. Struct pointers are more strongly typed and are +easier to use; PropertyLoadSavers are more flexible. + +The actual types passed do not have to match between Get and Put calls or even +across different calls to datastore. It is valid to put a *PropertyList and +get that same entity as a *myStruct, or put a *myStruct0 and get a *myStruct1. +Conceptually, any entity is saved as a sequence of properties, and is loaded +into the destination value on a property-by-property basis. When loading into +a struct pointer, an entity that cannot be completely represented (such as a +missing field) will result in an ErrFieldMismatch error but it is up to the +caller whether this error is fatal, recoverable or ignorable. + +By default, for struct pointers, all properties are potentially indexed, and +the property name is the same as the field name (and hence must start with an +upper case letter). + +Fields may have a `datastore:"name,options"` tag. The tag name is the +property name, which must be one or more valid Go identifiers joined by ".", +but may start with a lower case letter. An empty tag name means to just use the +field name. A "-" tag name means that the datastore will ignore that field. + +The only valid options are "omitempty" and "noindex". + +If the options include "omitempty" and the value of the field is empty, then the field will be omitted on Save. +The empty values are false, 0, any nil interface value, and any array, slice, map, or string of length zero. +Struct field values will never be empty. + +If options include "noindex" then the field will not be indexed. All fields are indexed +by default. Strings or byte slices longer than 1500 bytes cannot be indexed; +fields used to store long strings and byte slices must be tagged with "noindex" +or they will cause Put operations to fail. + +To use multiple options together, separate them by a comma. +The order does not matter. + +If the options is "" then the comma may be omitted. + +Example code: + + // A and B are renamed to a and b. + // A, C and J are not indexed. + // D's tag is equivalent to having no tag at all (E). + // I is ignored entirely by the datastore. + // J has tag information for both the datastore and json packages. + type TaggedStruct struct { + A int `datastore:"a,noindex"` + B int `datastore:"b"` + C int `datastore:",noindex"` + D int `datastore:""` + E int + I int `datastore:"-"` + J int `datastore:",noindex" json:"j"` + } + + +Structured Properties + +If the struct pointed to contains other structs, then the nested or embedded +structs are flattened. For example, given these definitions: + + type Inner1 struct { + W int32 + X string + } + + type Inner2 struct { + Y float64 + } + + type Inner3 struct { + Z bool + } + + type Outer struct { + A int16 + I []Inner1 + J Inner2 + Inner3 + } + +then an Outer's properties would be equivalent to those of: + + type OuterEquivalent struct { + A int16 + IDotW []int32 `datastore:"I.W"` + IDotX []string `datastore:"I.X"` + JDotY float64 `datastore:"J.Y"` + Z bool + } + +If Outer's embedded Inner3 field was tagged as `datastore:"Foo"` then the +equivalent field would instead be: FooDotZ bool `datastore:"Foo.Z"`. + +If an outer struct is tagged "noindex" then all of its implicit flattened +fields are effectively "noindex". + + +The PropertyLoadSaver Interface + +An entity's contents can also be represented by any type that implements the +PropertyLoadSaver interface. This type may be a struct pointer, but it does +not have to be. The datastore package will call Load when getting the entity's +contents, and Save when putting the entity's contents. +Possible uses include deriving non-stored fields, verifying fields, or indexing +a field only if its value is positive. + +Example code: + + type CustomPropsExample struct { + I, J int + // Sum is not stored, but should always be equal to I + J. + Sum int `datastore:"-"` + } + + func (x *CustomPropsExample) Load(ps []datastore.Property) error { + // Load I and J as usual. + if err := datastore.LoadStruct(x, ps); err != nil { + return err + } + // Derive the Sum field. + x.Sum = x.I + x.J + return nil + } + + func (x *CustomPropsExample) Save() ([]datastore.Property, error) { + // Validate the Sum field. + if x.Sum != x.I + x.J { + return nil, errors.New("CustomPropsExample has inconsistent sum") + } + // Save I and J as usual. The code below is equivalent to calling + // "return datastore.SaveStruct(x)", but is done manually for + // demonstration purposes. + return []datastore.Property{ + { + Name: "I", + Value: int64(x.I), + }, + { + Name: "J", + Value: int64(x.J), + }, + }, nil + } + +The *PropertyList type implements PropertyLoadSaver, and can therefore hold an +arbitrary entity's contents. + + +Queries + +Queries retrieve entities based on their properties or key's ancestry. Running +a query yields an iterator of results: either keys or (key, entity) pairs. +Queries are re-usable and it is safe to call Query.Run from concurrent +goroutines. Iterators are not safe for concurrent use. + +Queries are immutable, and are either created by calling NewQuery, or derived +from an existing query by calling a method like Filter or Order that returns a +new query value. A query is typically constructed by calling NewQuery followed +by a chain of zero or more such methods. These methods are: + - Ancestor and Filter constrain the entities returned by running a query. + - Order affects the order in which they are returned. + - Project constrains the fields returned. + - Distinct de-duplicates projected entities. + - KeysOnly makes the iterator return only keys, not (key, entity) pairs. + - Start, End, Offset and Limit define which sub-sequence of matching entities + to return. Start and End take cursors, Offset and Limit take integers. Start + and Offset affect the first result, End and Limit affect the last result. + If both Start and Offset are set, then the offset is relative to Start. + If both End and Limit are set, then the earliest constraint wins. Limit is + relative to Start+Offset, not relative to End. As a special case, a + negative limit means unlimited. + +Example code: + + type Widget struct { + Description string + Price int + } + + func handle(w http.ResponseWriter, r *http.Request) { + ctx := appengine.NewContext(r) + q := datastore.NewQuery("Widget"). + Filter("Price <", 1000). + Order("-Price") + b := new(bytes.Buffer) + for t := q.Run(ctx); ; { + var x Widget + key, err := t.Next(&x) + if err == datastore.Done { + break + } + if err != nil { + serveError(ctx, w, err) + return + } + fmt.Fprintf(b, "Key=%v\nWidget=%#v\n\n", key, x) + } + w.Header().Set("Content-Type", "text/plain; charset=utf-8") + io.Copy(w, b) + } + + +Transactions + +RunInTransaction runs a function in a transaction. + +Example code: + + type Counter struct { + Count int + } + + func inc(ctx context.Context, key *datastore.Key) (int, error) { + var x Counter + if err := datastore.Get(ctx, key, &x); err != nil && err != datastore.ErrNoSuchEntity { + return 0, err + } + x.Count++ + if _, err := datastore.Put(ctx, key, &x); err != nil { + return 0, err + } + return x.Count, nil + } + + func handle(w http.ResponseWriter, r *http.Request) { + ctx := appengine.NewContext(r) + var count int + err := datastore.RunInTransaction(ctx, func(ctx context.Context) error { + var err1 error + count, err1 = inc(ctx, datastore.NewKey(ctx, "Counter", "singleton", 0, nil)) + return err1 + }, nil) + if err != nil { + serveError(ctx, w, err) + return + } + w.Header().Set("Content-Type", "text/plain; charset=utf-8") + fmt.Fprintf(w, "Count=%d", count) + } + + +Metadata + +The datastore package provides access to some of App Engine's datastore +metadata. This metadata includes information about the entity groups, +namespaces, entity kinds, and properties in the datastore, as well as the +property representations for each property. + +Example code: + + func handle(w http.ResponseWriter, r *http.Request) { + // Print all the kinds in the datastore, with all the indexed + // properties (and their representations) for each. + ctx := appengine.NewContext(r) + + kinds, err := datastore.Kinds(ctx) + if err != nil { + serveError(ctx, w, err) + return + } + + w.Header().Set("Content-Type", "text/plain; charset=utf-8") + for _, kind := range kinds { + fmt.Fprintf(w, "%s:\n", kind) + props, err := datastore.KindProperties(ctx, kind) + if err != nil { + fmt.Fprintln(w, "\t(unable to retrieve properties)") + continue + } + for p, rep := range props { + fmt.Fprintf(w, "\t-%s (%s)\n", p, strings.Join(rep, ", ")) + } + } + } +*/ +package datastore // import "google.golang.org/appengine/datastore" diff --git a/vendor/google.golang.org/appengine/datastore/key.go b/vendor/google.golang.org/appengine/datastore/key.go new file mode 100644 index 000000000..6ab83eaf6 --- /dev/null +++ b/vendor/google.golang.org/appengine/datastore/key.go @@ -0,0 +1,396 @@ +// Copyright 2011 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package datastore + +import ( + "bytes" + "encoding/base64" + "encoding/gob" + "errors" + "fmt" + "strconv" + "strings" + + "github.com/golang/protobuf/proto" + "golang.org/x/net/context" + + "google.golang.org/appengine/internal" + pb "google.golang.org/appengine/internal/datastore" +) + +type KeyRangeCollisionError struct { + start int64 + end int64 +} + +func (e *KeyRangeCollisionError) Error() string { + return fmt.Sprintf("datastore: Collision when attempting to allocate range [%d, %d]", + e.start, e.end) +} + +type KeyRangeContentionError struct { + start int64 + end int64 +} + +func (e *KeyRangeContentionError) Error() string { + return fmt.Sprintf("datastore: Contention when attempting to allocate range [%d, %d]", + e.start, e.end) +} + +// Key represents the datastore key for a stored entity, and is immutable. +type Key struct { + kind string + stringID string + intID int64 + parent *Key + appID string + namespace string +} + +// Kind returns the key's kind (also known as entity type). +func (k *Key) Kind() string { + return k.kind +} + +// StringID returns the key's string ID (also known as an entity name or key +// name), which may be "". +func (k *Key) StringID() string { + return k.stringID +} + +// IntID returns the key's integer ID, which may be 0. +func (k *Key) IntID() int64 { + return k.intID +} + +// Parent returns the key's parent key, which may be nil. +func (k *Key) Parent() *Key { + return k.parent +} + +// AppID returns the key's application ID. +func (k *Key) AppID() string { + return k.appID +} + +// Namespace returns the key's namespace. +func (k *Key) Namespace() string { + return k.namespace +} + +// Incomplete returns whether the key does not refer to a stored entity. +// In particular, whether the key has a zero StringID and a zero IntID. +func (k *Key) Incomplete() bool { + return k.stringID == "" && k.intID == 0 +} + +// valid returns whether the key is valid. +func (k *Key) valid() bool { + if k == nil { + return false + } + for ; k != nil; k = k.parent { + if k.kind == "" || k.appID == "" { + return false + } + if k.stringID != "" && k.intID != 0 { + return false + } + if k.parent != nil { + if k.parent.Incomplete() { + return false + } + if k.parent.appID != k.appID || k.parent.namespace != k.namespace { + return false + } + } + } + return true +} + +// Equal returns whether two keys are equal. +func (k *Key) Equal(o *Key) bool { + for k != nil && o != nil { + if k.kind != o.kind || k.stringID != o.stringID || k.intID != o.intID || k.appID != o.appID || k.namespace != o.namespace { + return false + } + k, o = k.parent, o.parent + } + return k == o +} + +// root returns the furthest ancestor of a key, which may be itself. +func (k *Key) root() *Key { + for k.parent != nil { + k = k.parent + } + return k +} + +// marshal marshals the key's string representation to the buffer. +func (k *Key) marshal(b *bytes.Buffer) { + if k.parent != nil { + k.parent.marshal(b) + } + b.WriteByte('/') + b.WriteString(k.kind) + b.WriteByte(',') + if k.stringID != "" { + b.WriteString(k.stringID) + } else { + b.WriteString(strconv.FormatInt(k.intID, 10)) + } +} + +// String returns a string representation of the key. +func (k *Key) String() string { + if k == nil { + return "" + } + b := bytes.NewBuffer(make([]byte, 0, 512)) + k.marshal(b) + return b.String() +} + +type gobKey struct { + Kind string + StringID string + IntID int64 + Parent *gobKey + AppID string + Namespace string +} + +func keyToGobKey(k *Key) *gobKey { + if k == nil { + return nil + } + return &gobKey{ + Kind: k.kind, + StringID: k.stringID, + IntID: k.intID, + Parent: keyToGobKey(k.parent), + AppID: k.appID, + Namespace: k.namespace, + } +} + +func gobKeyToKey(gk *gobKey) *Key { + if gk == nil { + return nil + } + return &Key{ + kind: gk.Kind, + stringID: gk.StringID, + intID: gk.IntID, + parent: gobKeyToKey(gk.Parent), + appID: gk.AppID, + namespace: gk.Namespace, + } +} + +func (k *Key) GobEncode() ([]byte, error) { + buf := new(bytes.Buffer) + if err := gob.NewEncoder(buf).Encode(keyToGobKey(k)); err != nil { + return nil, err + } + return buf.Bytes(), nil +} + +func (k *Key) GobDecode(buf []byte) error { + gk := new(gobKey) + if err := gob.NewDecoder(bytes.NewBuffer(buf)).Decode(gk); err != nil { + return err + } + *k = *gobKeyToKey(gk) + return nil +} + +func (k *Key) MarshalJSON() ([]byte, error) { + return []byte(`"` + k.Encode() + `"`), nil +} + +func (k *Key) UnmarshalJSON(buf []byte) error { + if len(buf) < 2 || buf[0] != '"' || buf[len(buf)-1] != '"' { + return errors.New("datastore: bad JSON key") + } + k2, err := DecodeKey(string(buf[1 : len(buf)-1])) + if err != nil { + return err + } + *k = *k2 + return nil +} + +// Encode returns an opaque representation of the key +// suitable for use in HTML and URLs. +// This is compatible with the Python and Java runtimes. +func (k *Key) Encode() string { + ref := keyToProto("", k) + + b, err := proto.Marshal(ref) + if err != nil { + panic(err) + } + + // Trailing padding is stripped. + return strings.TrimRight(base64.URLEncoding.EncodeToString(b), "=") +} + +// DecodeKey decodes a key from the opaque representation returned by Encode. +func DecodeKey(encoded string) (*Key, error) { + // Re-add padding. + if m := len(encoded) % 4; m != 0 { + encoded += strings.Repeat("=", 4-m) + } + + b, err := base64.URLEncoding.DecodeString(encoded) + if err != nil { + return nil, err + } + + ref := new(pb.Reference) + if err := proto.Unmarshal(b, ref); err != nil { + return nil, err + } + + return protoToKey(ref) +} + +// NewIncompleteKey creates a new incomplete key. +// kind cannot be empty. +func NewIncompleteKey(c context.Context, kind string, parent *Key) *Key { + return NewKey(c, kind, "", 0, parent) +} + +// NewKey creates a new key. +// kind cannot be empty. +// Either one or both of stringID and intID must be zero. If both are zero, +// the key returned is incomplete. +// parent must either be a complete key or nil. +func NewKey(c context.Context, kind, stringID string, intID int64, parent *Key) *Key { + // If there's a parent key, use its namespace. + // Otherwise, use any namespace attached to the context. + var namespace string + if parent != nil { + namespace = parent.namespace + } else { + namespace = internal.NamespaceFromContext(c) + } + + return &Key{ + kind: kind, + stringID: stringID, + intID: intID, + parent: parent, + appID: internal.FullyQualifiedAppID(c), + namespace: namespace, + } +} + +// AllocateIDs returns a range of n integer IDs with the given kind and parent +// combination. kind cannot be empty; parent may be nil. The IDs in the range +// returned will not be used by the datastore's automatic ID sequence generator +// and may be used with NewKey without conflict. +// +// The range is inclusive at the low end and exclusive at the high end. In +// other words, valid intIDs x satisfy low <= x && x < high. +// +// If no error is returned, low + n == high. +func AllocateIDs(c context.Context, kind string, parent *Key, n int) (low, high int64, err error) { + if kind == "" { + return 0, 0, errors.New("datastore: AllocateIDs given an empty kind") + } + if n < 0 { + return 0, 0, fmt.Errorf("datastore: AllocateIDs given a negative count: %d", n) + } + if n == 0 { + return 0, 0, nil + } + req := &pb.AllocateIdsRequest{ + ModelKey: keyToProto("", NewIncompleteKey(c, kind, parent)), + Size: proto.Int64(int64(n)), + } + res := &pb.AllocateIdsResponse{} + if err := internal.Call(c, "datastore_v3", "AllocateIds", req, res); err != nil { + return 0, 0, err + } + // The protobuf is inclusive at both ends. Idiomatic Go (e.g. slices, for loops) + // is inclusive at the low end and exclusive at the high end, so we add 1. + low = res.GetStart() + high = res.GetEnd() + 1 + if low+int64(n) != high { + return 0, 0, fmt.Errorf("datastore: internal error: could not allocate %d IDs", n) + } + return low, high, nil +} + +// AllocateIDRange allocates a range of IDs with specific endpoints. +// The range is inclusive at both the low and high end. Once these IDs have been +// allocated, you can manually assign them to newly created entities. +// +// The Datastore's automatic ID allocator never assigns a key that has already +// been allocated (either through automatic ID allocation or through an explicit +// AllocateIDs call). As a result, entities written to the given key range will +// never be overwritten. However, writing entities with manually assigned keys in +// this range may overwrite existing entities (or new entities written by a separate +// request), depending on the error returned. +// +// Use this only if you have an existing numeric ID range that you want to reserve +// (for example, bulk loading entities that already have IDs). If you don't care +// about which IDs you receive, use AllocateIDs instead. +// +// AllocateIDRange returns nil if the range is successfully allocated. If one or more +// entities with an ID in the given range already exist, it returns a KeyRangeCollisionError. +// If the Datastore has already cached IDs in this range (e.g. from a previous call to +// AllocateIDRange), it returns a KeyRangeContentionError. Errors of other types indicate +// problems with arguments or an error returned directly from the Datastore. +func AllocateIDRange(c context.Context, kind string, parent *Key, start, end int64) (err error) { + if kind == "" { + return errors.New("datastore: AllocateIDRange given an empty kind") + } + + if start < 1 || end < 1 { + return errors.New("datastore: AllocateIDRange start and end must both be greater than 0") + } + + if start > end { + return errors.New("datastore: AllocateIDRange start must be before end") + } + + req := &pb.AllocateIdsRequest{ + ModelKey: keyToProto("", NewIncompleteKey(c, kind, parent)), + Max: proto.Int64(end), + } + res := &pb.AllocateIdsResponse{} + if err := internal.Call(c, "datastore_v3", "AllocateIds", req, res); err != nil { + return err + } + + // Check for collisions, i.e. existing entities with IDs in this range. + // We could do this before the allocation, but we'd still have to do it + // afterward as well to catch the race condition where an entity is inserted + // after that initial check but before the allocation. Skip the up-front check + // and just do it once. + q := NewQuery(kind).Filter("__key__ >=", NewKey(c, kind, "", start, parent)). + Filter("__key__ <=", NewKey(c, kind, "", end, parent)).KeysOnly().Limit(1) + + keys, err := q.GetAll(c, nil) + if err != nil { + return err + } + if len(keys) != 0 { + return &KeyRangeCollisionError{start: start, end: end} + } + + // Check for a race condition, i.e. cases where the datastore may have + // cached ID batches that contain IDs in this range. + if start < res.GetStart() { + return &KeyRangeContentionError{start: start, end: end} + } + + return nil +} diff --git a/vendor/google.golang.org/appengine/datastore/key_test.go b/vendor/google.golang.org/appengine/datastore/key_test.go new file mode 100644 index 000000000..1fb3e9752 --- /dev/null +++ b/vendor/google.golang.org/appengine/datastore/key_test.go @@ -0,0 +1,204 @@ +// Copyright 2011 Google Inc. All Rights Reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package datastore + +import ( + "bytes" + "encoding/gob" + "encoding/json" + "testing" + + "golang.org/x/net/context" + + "google.golang.org/appengine/internal" +) + +func TestKeyEncoding(t *testing.T) { + testCases := []struct { + desc string + key *Key + exp string + }{ + { + desc: "A simple key with an int ID", + key: &Key{ + kind: "Person", + intID: 1, + appID: "glibrary", + }, + exp: "aghnbGlicmFyeXIMCxIGUGVyc29uGAEM", + }, + { + desc: "A simple key with a string ID", + key: &Key{ + kind: "Graph", + stringID: "graph:7-day-active", + appID: "glibrary", + }, + exp: "aghnbGlicmFyeXIdCxIFR3JhcGgiEmdyYXBoOjctZGF5LWFjdGl2ZQw", + }, + { + desc: "A key with a parent", + key: &Key{ + kind: "WordIndex", + intID: 1033, + parent: &Key{ + kind: "WordIndex", + intID: 1020032, + appID: "glibrary", + }, + appID: "glibrary", + }, + exp: "aghnbGlicmFyeXIhCxIJV29yZEluZGV4GIChPgwLEglXb3JkSW5kZXgYiQgM", + }, + } + for _, tc := range testCases { + enc := tc.key.Encode() + if enc != tc.exp { + t.Errorf("%s: got %q, want %q", tc.desc, enc, tc.exp) + } + + key, err := DecodeKey(tc.exp) + if err != nil { + t.Errorf("%s: failed decoding key: %v", tc.desc, err) + continue + } + if !key.Equal(tc.key) { + t.Errorf("%s: decoded key %v, want %v", tc.desc, key, tc.key) + } + } +} + +func TestKeyGob(t *testing.T) { + k := &Key{ + kind: "Gopher", + intID: 3, + parent: &Key{ + kind: "Mom", + stringID: "narwhal", + appID: "gopher-con", + }, + appID: "gopher-con", + } + + buf := new(bytes.Buffer) + if err := gob.NewEncoder(buf).Encode(k); err != nil { + t.Fatalf("gob encode failed: %v", err) + } + + k2 := new(Key) + if err := gob.NewDecoder(buf).Decode(k2); err != nil { + t.Fatalf("gob decode failed: %v", err) + } + if !k2.Equal(k) { + t.Errorf("gob round trip of %v produced %v", k, k2) + } +} + +func TestNilKeyGob(t *testing.T) { + type S struct { + Key *Key + } + s1 := new(S) + + buf := new(bytes.Buffer) + if err := gob.NewEncoder(buf).Encode(s1); err != nil { + t.Fatalf("gob encode failed: %v", err) + } + + s2 := new(S) + if err := gob.NewDecoder(buf).Decode(s2); err != nil { + t.Fatalf("gob decode failed: %v", err) + } + if s2.Key != nil { + t.Errorf("gob round trip of nil key produced %v", s2.Key) + } +} + +func TestKeyJSON(t *testing.T) { + k := &Key{ + kind: "Gopher", + intID: 2, + parent: &Key{ + kind: "Mom", + stringID: "narwhal", + appID: "gopher-con", + }, + appID: "gopher-con", + } + exp := `"` + k.Encode() + `"` + + buf, err := json.Marshal(k) + if err != nil { + t.Fatalf("json.Marshal failed: %v", err) + } + if s := string(buf); s != exp { + t.Errorf("JSON encoding of key %v: got %q, want %q", k, s, exp) + } + + k2 := new(Key) + if err := json.Unmarshal(buf, k2); err != nil { + t.Fatalf("json.Unmarshal failed: %v", err) + } + if !k2.Equal(k) { + t.Errorf("JSON round trip of %v produced %v", k, k2) + } +} + +func TestNilKeyJSON(t *testing.T) { + type S struct { + Key *Key + } + s1 := new(S) + + buf, err := json.Marshal(s1) + if err != nil { + t.Fatalf("json.Marshal failed: %v", err) + } + + s2 := new(S) + if err := json.Unmarshal(buf, s2); err != nil { + t.Fatalf("json.Unmarshal failed: %v", err) + } + if s2.Key != nil { + t.Errorf("JSON round trip of nil key produced %v", s2.Key) + } +} + +func TestIncompleteKeyWithParent(t *testing.T) { + c := internal.WithAppIDOverride(context.Background(), "s~some-app") + + // fadduh is a complete key. + fadduh := NewKey(c, "Person", "", 1, nil) + if fadduh.Incomplete() { + t.Fatalf("fadduh is incomplete") + } + + // robert is an incomplete key with fadduh as a parent. + robert := NewIncompleteKey(c, "Person", fadduh) + if !robert.Incomplete() { + t.Fatalf("robert is complete") + } + + // Both should be valid keys. + if !fadduh.valid() { + t.Errorf("fadduh is invalid: %v", fadduh) + } + if !robert.valid() { + t.Errorf("robert is invalid: %v", robert) + } +} + +func TestNamespace(t *testing.T) { + key := &Key{ + kind: "Person", + intID: 1, + appID: "s~some-app", + namespace: "mynamespace", + } + if g, w := key.Namespace(), "mynamespace"; g != w { + t.Errorf("key.Namespace() = %q, want %q", g, w) + } +} diff --git a/vendor/google.golang.org/appengine/datastore/load.go b/vendor/google.golang.org/appengine/datastore/load.go new file mode 100644 index 000000000..38a636539 --- /dev/null +++ b/vendor/google.golang.org/appengine/datastore/load.go @@ -0,0 +1,429 @@ +// Copyright 2011 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package datastore + +import ( + "fmt" + "reflect" + "strings" + "time" + + "github.com/golang/protobuf/proto" + "google.golang.org/appengine" + pb "google.golang.org/appengine/internal/datastore" +) + +var ( + typeOfBlobKey = reflect.TypeOf(appengine.BlobKey("")) + typeOfByteSlice = reflect.TypeOf([]byte(nil)) + typeOfByteString = reflect.TypeOf(ByteString(nil)) + typeOfGeoPoint = reflect.TypeOf(appengine.GeoPoint{}) + typeOfTime = reflect.TypeOf(time.Time{}) + typeOfKeyPtr = reflect.TypeOf(&Key{}) + typeOfEntityPtr = reflect.TypeOf(&Entity{}) +) + +// typeMismatchReason returns a string explaining why the property p could not +// be stored in an entity field of type v.Type(). +func typeMismatchReason(pValue interface{}, v reflect.Value) string { + entityType := "empty" + switch pValue.(type) { + case int64: + entityType = "int" + case bool: + entityType = "bool" + case string: + entityType = "string" + case float64: + entityType = "float" + case *Key: + entityType = "*datastore.Key" + case time.Time: + entityType = "time.Time" + case appengine.BlobKey: + entityType = "appengine.BlobKey" + case appengine.GeoPoint: + entityType = "appengine.GeoPoint" + case ByteString: + entityType = "datastore.ByteString" + case []byte: + entityType = "[]byte" + } + return fmt.Sprintf("type mismatch: %s versus %v", entityType, v.Type()) +} + +type propertyLoader struct { + // m holds the number of times a substruct field like "Foo.Bar.Baz" has + // been seen so far. The map is constructed lazily. + m map[string]int +} + +func (l *propertyLoader) load(codec *structCodec, structValue reflect.Value, p Property, requireSlice bool) string { + var v reflect.Value + var sliceIndex int + + name := p.Name + + // If name ends with a '.', the last field is anonymous. + // In this case, strings.Split will give us "" as the + // last element of our fields slice, which will match the "" + // field name in the substruct codec. + fields := strings.Split(name, ".") + + for len(fields) > 0 { + var decoder fieldCodec + var ok bool + + // Cut off the last field (delimited by ".") and find its parent + // in the codec. + // eg. for name "A.B.C.D", split off "A.B.C" and try to + // find a field in the codec with this name. + // Loop again with "A.B", etc. + for i := len(fields); i > 0; i-- { + parent := strings.Join(fields[:i], ".") + decoder, ok = codec.fields[parent] + if ok { + fields = fields[i:] + break + } + } + + // If we never found a matching field in the codec, return + // error message. + if !ok { + return "no such struct field" + } + + v = initField(structValue, decoder.path) + if !v.IsValid() { + return "no such struct field" + } + if !v.CanSet() { + return "cannot set struct field" + } + + if decoder.structCodec != nil { + codec = decoder.structCodec + structValue = v + } + + if v.Kind() == reflect.Slice && v.Type() != typeOfByteSlice { + if l.m == nil { + l.m = make(map[string]int) + } + sliceIndex = l.m[p.Name] + l.m[p.Name] = sliceIndex + 1 + for v.Len() <= sliceIndex { + v.Set(reflect.Append(v, reflect.New(v.Type().Elem()).Elem())) + } + structValue = v.Index(sliceIndex) + requireSlice = false + } + } + + var slice reflect.Value + if v.Kind() == reflect.Slice && v.Type().Elem().Kind() != reflect.Uint8 { + slice = v + v = reflect.New(v.Type().Elem()).Elem() + } else if requireSlice { + return "multiple-valued property requires a slice field type" + } + + // Convert indexValues to a Go value with a meaning derived from the + // destination type. + pValue := p.Value + if iv, ok := pValue.(indexValue); ok { + meaning := pb.Property_NO_MEANING + switch v.Type() { + case typeOfBlobKey: + meaning = pb.Property_BLOBKEY + case typeOfByteSlice: + meaning = pb.Property_BLOB + case typeOfByteString: + meaning = pb.Property_BYTESTRING + case typeOfGeoPoint: + meaning = pb.Property_GEORSS_POINT + case typeOfTime: + meaning = pb.Property_GD_WHEN + case typeOfEntityPtr: + meaning = pb.Property_ENTITY_PROTO + } + var err error + pValue, err = propValue(iv.value, meaning) + if err != nil { + return err.Error() + } + } + + if errReason := setVal(v, pValue); errReason != "" { + // Set the slice back to its zero value. + if slice.IsValid() { + slice.Set(reflect.Zero(slice.Type())) + } + return errReason + } + + if slice.IsValid() { + slice.Index(sliceIndex).Set(v) + } + + return "" +} + +// setVal sets v to the value pValue. +func setVal(v reflect.Value, pValue interface{}) string { + switch v.Kind() { + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + x, ok := pValue.(int64) + if !ok && pValue != nil { + return typeMismatchReason(pValue, v) + } + if v.OverflowInt(x) { + return fmt.Sprintf("value %v overflows struct field of type %v", x, v.Type()) + } + v.SetInt(x) + case reflect.Bool: + x, ok := pValue.(bool) + if !ok && pValue != nil { + return typeMismatchReason(pValue, v) + } + v.SetBool(x) + case reflect.String: + switch x := pValue.(type) { + case appengine.BlobKey: + v.SetString(string(x)) + case ByteString: + v.SetString(string(x)) + case string: + v.SetString(x) + default: + if pValue != nil { + return typeMismatchReason(pValue, v) + } + } + case reflect.Float32, reflect.Float64: + x, ok := pValue.(float64) + if !ok && pValue != nil { + return typeMismatchReason(pValue, v) + } + if v.OverflowFloat(x) { + return fmt.Sprintf("value %v overflows struct field of type %v", x, v.Type()) + } + v.SetFloat(x) + case reflect.Ptr: + x, ok := pValue.(*Key) + if !ok && pValue != nil { + return typeMismatchReason(pValue, v) + } + if _, ok := v.Interface().(*Key); !ok { + return typeMismatchReason(pValue, v) + } + v.Set(reflect.ValueOf(x)) + case reflect.Struct: + switch v.Type() { + case typeOfTime: + x, ok := pValue.(time.Time) + if !ok && pValue != nil { + return typeMismatchReason(pValue, v) + } + v.Set(reflect.ValueOf(x)) + case typeOfGeoPoint: + x, ok := pValue.(appengine.GeoPoint) + if !ok && pValue != nil { + return typeMismatchReason(pValue, v) + } + v.Set(reflect.ValueOf(x)) + default: + ent, ok := pValue.(*Entity) + if !ok { + return typeMismatchReason(pValue, v) + } + + // Recursively load nested struct + pls, err := newStructPLS(v.Addr().Interface()) + if err != nil { + return err.Error() + } + + // if ent has a Key value and our struct has a Key field, + // load the Entity's Key value into the Key field on the struct. + if ent.Key != nil && pls.codec.keyField != -1 { + + pls.v.Field(pls.codec.keyField).Set(reflect.ValueOf(ent.Key)) + } + + err = pls.Load(ent.Properties) + if err != nil { + return err.Error() + } + } + case reflect.Slice: + x, ok := pValue.([]byte) + if !ok { + if y, yok := pValue.(ByteString); yok { + x, ok = []byte(y), true + } + } + if !ok && pValue != nil { + return typeMismatchReason(pValue, v) + } + if v.Type().Elem().Kind() != reflect.Uint8 { + return typeMismatchReason(pValue, v) + } + v.SetBytes(x) + default: + return typeMismatchReason(pValue, v) + } + return "" +} + +// initField is similar to reflect's Value.FieldByIndex, in that it +// returns the nested struct field corresponding to index, but it +// initialises any nil pointers encountered when traversing the structure. +func initField(val reflect.Value, index []int) reflect.Value { + for _, i := range index[:len(index)-1] { + val = val.Field(i) + if val.Kind() == reflect.Ptr { + if val.IsNil() { + val.Set(reflect.New(val.Type().Elem())) + } + val = val.Elem() + } + } + return val.Field(index[len(index)-1]) +} + +// loadEntity loads an EntityProto into PropertyLoadSaver or struct pointer. +func loadEntity(dst interface{}, src *pb.EntityProto) (err error) { + ent, err := protoToEntity(src) + if err != nil { + return err + } + if e, ok := dst.(PropertyLoadSaver); ok { + return e.Load(ent.Properties) + } + return LoadStruct(dst, ent.Properties) +} + +func (s structPLS) Load(props []Property) error { + var fieldName, reason string + var l propertyLoader + for _, p := range props { + if errStr := l.load(s.codec, s.v, p, p.Multiple); errStr != "" { + // We don't return early, as we try to load as many properties as possible. + // It is valid to load an entity into a struct that cannot fully represent it. + // That case returns an error, but the caller is free to ignore it. + fieldName, reason = p.Name, errStr + } + } + if reason != "" { + return &ErrFieldMismatch{ + StructType: s.v.Type(), + FieldName: fieldName, + Reason: reason, + } + } + return nil +} + +func protoToEntity(src *pb.EntityProto) (*Entity, error) { + props, rawProps := src.Property, src.RawProperty + outProps := make([]Property, 0, len(props)+len(rawProps)) + for { + var ( + x *pb.Property + noIndex bool + ) + if len(props) > 0 { + x, props = props[0], props[1:] + } else if len(rawProps) > 0 { + x, rawProps = rawProps[0], rawProps[1:] + noIndex = true + } else { + break + } + + var value interface{} + if x.Meaning != nil && *x.Meaning == pb.Property_INDEX_VALUE { + value = indexValue{x.Value} + } else { + var err error + value, err = propValue(x.Value, x.GetMeaning()) + if err != nil { + return nil, err + } + } + outProps = append(outProps, Property{ + Name: x.GetName(), + Value: value, + NoIndex: noIndex, + Multiple: x.GetMultiple(), + }) + } + + var key *Key + if src.Key != nil { + // Ignore any error, since nested entity values + // are allowed to have an invalid key. + key, _ = protoToKey(src.Key) + } + return &Entity{key, outProps}, nil +} + +// propValue returns a Go value that combines the raw PropertyValue with a +// meaning. For example, an Int64Value with GD_WHEN becomes a time.Time. +func propValue(v *pb.PropertyValue, m pb.Property_Meaning) (interface{}, error) { + switch { + case v.Int64Value != nil: + if m == pb.Property_GD_WHEN { + return fromUnixMicro(*v.Int64Value), nil + } else { + return *v.Int64Value, nil + } + case v.BooleanValue != nil: + return *v.BooleanValue, nil + case v.StringValue != nil: + if m == pb.Property_BLOB { + return []byte(*v.StringValue), nil + } else if m == pb.Property_BLOBKEY { + return appengine.BlobKey(*v.StringValue), nil + } else if m == pb.Property_BYTESTRING { + return ByteString(*v.StringValue), nil + } else if m == pb.Property_ENTITY_PROTO { + var ent pb.EntityProto + err := proto.Unmarshal([]byte(*v.StringValue), &ent) + if err != nil { + return nil, err + } + return protoToEntity(&ent) + } else { + return *v.StringValue, nil + } + case v.DoubleValue != nil: + return *v.DoubleValue, nil + case v.Referencevalue != nil: + key, err := referenceValueToKey(v.Referencevalue) + if err != nil { + return nil, err + } + return key, nil + case v.Pointvalue != nil: + // NOTE: Strangely, latitude maps to X, longitude to Y. + return appengine.GeoPoint{Lat: v.Pointvalue.GetX(), Lng: v.Pointvalue.GetY()}, nil + } + return nil, nil +} + +// indexValue is a Property value that is created when entities are loaded from +// an index, such as from a projection query. +// +// Such Property values do not contain all of the metadata required to be +// faithfully represented as a Go value, and are instead represented as an +// opaque indexValue. Load the properties into a concrete struct type (e.g. by +// passing a struct pointer to Iterator.Next) to reconstruct actual Go values +// of type int, string, time.Time, etc. +type indexValue struct { + value *pb.PropertyValue +} diff --git a/vendor/google.golang.org/appengine/datastore/load_test.go b/vendor/google.golang.org/appengine/datastore/load_test.go new file mode 100644 index 000000000..46029bba5 --- /dev/null +++ b/vendor/google.golang.org/appengine/datastore/load_test.go @@ -0,0 +1,656 @@ +// Copyright 2016 Google Inc. All Rights Reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package datastore + +import ( + "reflect" + "testing" + + proto "github.com/golang/protobuf/proto" + pb "google.golang.org/appengine/internal/datastore" +) + +type Simple struct { + I int64 +} + +type SimpleWithTag struct { + I int64 `datastore:"II"` +} + +type NestedSimpleWithTag struct { + A SimpleWithTag `datastore:"AA"` +} + +type NestedSliceOfSimple struct { + A []Simple +} + +type SimpleTwoFields struct { + S string + SS string +} + +type NestedSimpleAnonymous struct { + Simple + X string +} + +type NestedSimple struct { + A Simple + I int64 +} + +type NestedSimple1 struct { + A Simple + X string +} + +type NestedSimple2X struct { + AA NestedSimple + A SimpleTwoFields + S string +} + +type BDotB struct { + B string `datastore:"B.B"` +} + +type ABDotB struct { + A BDotB +} + +type MultiAnonymous struct { + Simple + SimpleTwoFields + X string +} + +var ( + // these values need to be addressable + testString2 = "two" + testString3 = "three" + testInt64 = int64(2) + + fieldNameI = "I" + fieldNameX = "X" + fieldNameS = "S" + fieldNameSS = "SS" + fieldNameADotI = "A.I" + fieldNameAADotII = "AA.II" + fieldNameADotBDotB = "A.B.B" +) + +func TestLoadEntityNestedLegacy(t *testing.T) { + testCases := []struct { + desc string + src *pb.EntityProto + want interface{} + }{ + { + "nested", + &pb.EntityProto{ + Key: keyToProto("some-app-id", testKey0), + Property: []*pb.Property{ + &pb.Property{ + Name: &fieldNameX, + Value: &pb.PropertyValue{ + StringValue: &testString2, + }, + }, + &pb.Property{ + Name: &fieldNameADotI, + Value: &pb.PropertyValue{ + Int64Value: &testInt64, + }, + }, + }, + }, + &NestedSimple1{ + A: Simple{I: testInt64}, + X: testString2, + }, + }, + { + "nested with tag", + &pb.EntityProto{ + Key: keyToProto("some-app-id", testKey0), + Property: []*pb.Property{ + &pb.Property{ + Name: &fieldNameAADotII, + Value: &pb.PropertyValue{ + Int64Value: &testInt64, + }, + }, + }, + }, + &NestedSimpleWithTag{ + A: SimpleWithTag{I: testInt64}, + }, + }, + { + "nested with anonymous struct field", + &pb.EntityProto{ + Key: keyToProto("some-app-id", testKey0), + Property: []*pb.Property{ + &pb.Property{ + Name: &fieldNameX, + Value: &pb.PropertyValue{ + StringValue: &testString2, + }, + }, + &pb.Property{ + Name: &fieldNameI, + Value: &pb.PropertyValue{ + Int64Value: &testInt64, + }, + }, + }, + }, + &NestedSimpleAnonymous{ + Simple: Simple{I: testInt64}, + X: testString2, + }, + }, + { + "nested with dotted field tag", + &pb.EntityProto{ + Key: keyToProto("some-app-id", testKey0), + Property: []*pb.Property{ + &pb.Property{ + Name: &fieldNameADotBDotB, + Value: &pb.PropertyValue{ + StringValue: &testString2, + }, + }, + }, + }, + &ABDotB{ + A: BDotB{ + B: testString2, + }, + }, + }, + { + "nested with dotted field tag", + &pb.EntityProto{ + Key: keyToProto("some-app-id", testKey0), + Property: []*pb.Property{ + &pb.Property{ + Name: &fieldNameI, + Value: &pb.PropertyValue{ + Int64Value: &testInt64, + }, + }, + &pb.Property{ + Name: &fieldNameS, + Value: &pb.PropertyValue{ + StringValue: &testString2, + }, + }, + &pb.Property{ + Name: &fieldNameSS, + Value: &pb.PropertyValue{ + StringValue: &testString3, + }, + }, + &pb.Property{ + Name: &fieldNameX, + Value: &pb.PropertyValue{ + StringValue: &testString3, + }, + }, + }, + }, + &MultiAnonymous{ + Simple: Simple{I: testInt64}, + SimpleTwoFields: SimpleTwoFields{S: "two", SS: "three"}, + X: "three", + }, + }, + } + + for _, tc := range testCases { + dst := reflect.New(reflect.TypeOf(tc.want).Elem()).Interface() + err := loadEntity(dst, tc.src) + if err != nil { + t.Errorf("loadEntity: %s: %v", tc.desc, err) + continue + } + + if !reflect.DeepEqual(tc.want, dst) { + t.Errorf("%s: compare:\ngot: %#v\nwant: %#v", tc.desc, dst, tc.want) + } + } +} + +type WithKey struct { + X string + I int64 + K *Key `datastore:"__key__"` +} + +type NestedWithKey struct { + N WithKey + Y string +} + +var ( + incompleteKey = newKey("", nil) + invalidKey = newKey("s", incompleteKey) + + // these values need to be addressable + fieldNameA = "A" + fieldNameK = "K" + fieldNameN = "N" + fieldNameY = "Y" + fieldNameAA = "AA" + fieldNameII = "II" + fieldNameBDotB = "B.B" + + entityProtoMeaning = pb.Property_ENTITY_PROTO + + TRUE = true + FALSE = false +) + +var ( + simpleEntityProto, nestedSimpleEntityProto, + simpleTwoFieldsEntityProto, simpleWithTagEntityProto, + bDotBEntityProto, withKeyEntityProto string +) + +func init() { + // simpleEntityProto corresponds to: + // Simple{I: testInt64} + simpleEntityProtob, err := proto.Marshal(&pb.EntityProto{ + Key: keyToProto("", incompleteKey), + Property: []*pb.Property{ + &pb.Property{ + Name: &fieldNameI, + Value: &pb.PropertyValue{ + Int64Value: &testInt64, + }, + Multiple: &FALSE, + }, + }, + EntityGroup: &pb.Path{}, + }) + if err != nil { + panic(err) + } + simpleEntityProto = string(simpleEntityProtob) + + // nestedSimpleEntityProto corresponds to: + // NestedSimple{ + // A: Simple{I: testInt64}, + // I: testInt64, + // } + nestedSimpleEntityProtob, err := proto.Marshal(&pb.EntityProto{ + Key: keyToProto("", incompleteKey), + Property: []*pb.Property{ + &pb.Property{ + Name: &fieldNameA, + Meaning: &entityProtoMeaning, + Value: &pb.PropertyValue{ + StringValue: &simpleEntityProto, + }, + Multiple: &FALSE, + }, + &pb.Property{ + Name: &fieldNameI, + Meaning: &entityProtoMeaning, + Value: &pb.PropertyValue{ + Int64Value: &testInt64, + }, + Multiple: &FALSE, + }, + }, + EntityGroup: &pb.Path{}, + }) + if err != nil { + panic(err) + } + nestedSimpleEntityProto = string(nestedSimpleEntityProtob) + + // simpleTwoFieldsEntityProto corresponds to: + // SimpleTwoFields{S: testString2, SS: testString3} + simpleTwoFieldsEntityProtob, err := proto.Marshal(&pb.EntityProto{ + Key: keyToProto("", incompleteKey), + Property: []*pb.Property{ + &pb.Property{ + Name: &fieldNameS, + Value: &pb.PropertyValue{ + StringValue: &testString2, + }, + Multiple: &FALSE, + }, + &pb.Property{ + Name: &fieldNameSS, + Value: &pb.PropertyValue{ + StringValue: &testString3, + }, + Multiple: &FALSE, + }, + }, + EntityGroup: &pb.Path{}, + }) + if err != nil { + panic(err) + } + simpleTwoFieldsEntityProto = string(simpleTwoFieldsEntityProtob) + + // simpleWithTagEntityProto corresponds to: + // SimpleWithTag{I: testInt64} + simpleWithTagEntityProtob, err := proto.Marshal(&pb.EntityProto{ + Key: keyToProto("", incompleteKey), + Property: []*pb.Property{ + &pb.Property{ + Name: &fieldNameII, + Value: &pb.PropertyValue{ + Int64Value: &testInt64, + }, + Multiple: &FALSE, + }, + }, + EntityGroup: &pb.Path{}, + }) + if err != nil { + panic(err) + } + simpleWithTagEntityProto = string(simpleWithTagEntityProtob) + + // bDotBEntityProto corresponds to: + // BDotB{ + // B: testString2, + // } + bDotBEntityProtob, err := proto.Marshal(&pb.EntityProto{ + Key: keyToProto("", incompleteKey), + Property: []*pb.Property{ + &pb.Property{ + Name: &fieldNameBDotB, + Value: &pb.PropertyValue{ + StringValue: &testString2, + }, + Multiple: &FALSE, + }, + }, + EntityGroup: &pb.Path{}, + }) + if err != nil { + panic(err) + } + bDotBEntityProto = string(bDotBEntityProtob) + + // withKeyEntityProto corresponds to: + // WithKey{ + // X: testString3, + // I: testInt64, + // K: testKey1a, + // } + withKeyEntityProtob, err := proto.Marshal(&pb.EntityProto{ + Key: keyToProto("", testKey1a), + Property: []*pb.Property{ + &pb.Property{ + Name: &fieldNameX, + Value: &pb.PropertyValue{ + StringValue: &testString3, + }, + Multiple: &FALSE, + }, + &pb.Property{ + Name: &fieldNameI, + Value: &pb.PropertyValue{ + Int64Value: &testInt64, + }, + Multiple: &FALSE, + }, + }, + EntityGroup: &pb.Path{}, + }) + if err != nil { + panic(err) + } + withKeyEntityProto = string(withKeyEntityProtob) + +} + +func TestLoadEntityNested(t *testing.T) { + testCases := []struct { + desc string + src *pb.EntityProto + want interface{} + }{ + { + "nested basic", + &pb.EntityProto{ + Key: keyToProto("some-app-id", testKey0), + Property: []*pb.Property{ + &pb.Property{ + Name: &fieldNameA, + Meaning: &entityProtoMeaning, + Value: &pb.PropertyValue{ + StringValue: &simpleEntityProto, + }, + }, + &pb.Property{ + Name: &fieldNameI, + Value: &pb.PropertyValue{ + Int64Value: &testInt64, + }, + }, + }, + }, + &NestedSimple{ + A: Simple{I: 2}, + I: 2, + }, + }, + { + "nested with struct tags", + &pb.EntityProto{ + Key: keyToProto("some-app-id", testKey0), + Property: []*pb.Property{ + &pb.Property{ + Name: &fieldNameAA, + Meaning: &entityProtoMeaning, + Value: &pb.PropertyValue{ + StringValue: &simpleWithTagEntityProto, + }, + }, + }, + }, + &NestedSimpleWithTag{ + A: SimpleWithTag{I: testInt64}, + }, + }, + { + "nested 2x", + &pb.EntityProto{ + Key: keyToProto("some-app-id", testKey0), + Property: []*pb.Property{ + &pb.Property{ + Name: &fieldNameAA, + Meaning: &entityProtoMeaning, + Value: &pb.PropertyValue{ + StringValue: &nestedSimpleEntityProto, + }, + }, + &pb.Property{ + Name: &fieldNameA, + Meaning: &entityProtoMeaning, + Value: &pb.PropertyValue{ + StringValue: &simpleTwoFieldsEntityProto, + }, + }, + &pb.Property{ + Name: &fieldNameS, + Value: &pb.PropertyValue{ + StringValue: &testString3, + }, + }, + }, + }, + &NestedSimple2X{ + AA: NestedSimple{ + A: Simple{I: testInt64}, + I: testInt64, + }, + A: SimpleTwoFields{S: testString2, SS: testString3}, + S: testString3, + }, + }, + { + "nested anonymous", + &pb.EntityProto{ + Key: keyToProto("some-app-id", testKey0), + Property: []*pb.Property{ + &pb.Property{ + Name: &fieldNameI, + Value: &pb.PropertyValue{ + Int64Value: &testInt64, + }, + }, + &pb.Property{ + Name: &fieldNameX, + Value: &pb.PropertyValue{ + StringValue: &testString2, + }, + }, + }, + }, + &NestedSimpleAnonymous{ + Simple: Simple{I: testInt64}, + X: testString2, + }, + }, + { + "nested simple with slice", + &pb.EntityProto{ + Key: keyToProto("some-app-id", testKey0), + Property: []*pb.Property{ + &pb.Property{ + Name: &fieldNameA, + Meaning: &entityProtoMeaning, + Multiple: &TRUE, + Value: &pb.PropertyValue{ + StringValue: &simpleEntityProto, + }, + }, + &pb.Property{ + Name: &fieldNameA, + Meaning: &entityProtoMeaning, + Multiple: &TRUE, + Value: &pb.PropertyValue{ + StringValue: &simpleEntityProto, + }, + }, + }, + }, + &NestedSliceOfSimple{ + A: []Simple{Simple{I: testInt64}, Simple{I: testInt64}}, + }, + }, + { + "nested with multiple anonymous fields", + &pb.EntityProto{ + Key: keyToProto("some-app-id", testKey0), + Property: []*pb.Property{ + &pb.Property{ + Name: &fieldNameI, + Value: &pb.PropertyValue{ + Int64Value: &testInt64, + }, + }, + &pb.Property{ + Name: &fieldNameS, + Value: &pb.PropertyValue{ + StringValue: &testString2, + }, + }, + &pb.Property{ + Name: &fieldNameSS, + Value: &pb.PropertyValue{ + StringValue: &testString3, + }, + }, + &pb.Property{ + Name: &fieldNameX, + Value: &pb.PropertyValue{ + StringValue: &testString2, + }, + }, + }, + }, + &MultiAnonymous{ + Simple: Simple{I: testInt64}, + SimpleTwoFields: SimpleTwoFields{S: testString2, SS: testString3}, + X: testString2, + }, + }, + { + "nested with dotted field tag", + &pb.EntityProto{ + Key: keyToProto("some-app-id", testKey0), + Property: []*pb.Property{ + &pb.Property{ + Name: &fieldNameA, + Meaning: &entityProtoMeaning, + Value: &pb.PropertyValue{ + StringValue: &bDotBEntityProto, + }, + }, + }, + }, + &ABDotB{ + A: BDotB{ + B: testString2, + }, + }, + }, + { + "nested entity with key", + &pb.EntityProto{ + Key: keyToProto("some-app-id", testKey0), + Property: []*pb.Property{ + &pb.Property{ + Name: &fieldNameY, + Value: &pb.PropertyValue{ + StringValue: &testString2, + }, + }, + &pb.Property{ + Name: &fieldNameN, + Meaning: &entityProtoMeaning, + Value: &pb.PropertyValue{ + StringValue: &withKeyEntityProto, + }, + }, + }, + }, + &NestedWithKey{ + Y: testString2, + N: WithKey{ + X: testString3, + I: testInt64, + K: testKey1a, + }, + }, + }, + } + + for _, tc := range testCases { + dst := reflect.New(reflect.TypeOf(tc.want).Elem()).Interface() + err := loadEntity(dst, tc.src) + if err != nil { + t.Errorf("loadEntity: %s: %v", tc.desc, err) + continue + } + + if !reflect.DeepEqual(tc.want, dst) { + t.Errorf("%s: compare:\ngot: %#v\nwant: %#v", tc.desc, dst, tc.want) + } + } +} diff --git a/vendor/google.golang.org/appengine/datastore/metadata.go b/vendor/google.golang.org/appengine/datastore/metadata.go new file mode 100644 index 000000000..6acacc3db --- /dev/null +++ b/vendor/google.golang.org/appengine/datastore/metadata.go @@ -0,0 +1,78 @@ +// Copyright 2016 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package datastore + +import "golang.org/x/net/context" + +// Datastore kinds for the metadata entities. +const ( + namespaceKind = "__namespace__" + kindKind = "__kind__" + propertyKind = "__property__" +) + +// Namespaces returns all the datastore namespaces. +func Namespaces(ctx context.Context) ([]string, error) { + // TODO(djd): Support range queries. + q := NewQuery(namespaceKind).KeysOnly() + keys, err := q.GetAll(ctx, nil) + if err != nil { + return nil, err + } + // The empty namespace key uses a numeric ID (==1), but luckily + // the string ID defaults to "" for numeric IDs anyway. + return keyNames(keys), nil +} + +// Kinds returns the names of all the kinds in the current namespace. +func Kinds(ctx context.Context) ([]string, error) { + // TODO(djd): Support range queries. + q := NewQuery(kindKind).KeysOnly() + keys, err := q.GetAll(ctx, nil) + if err != nil { + return nil, err + } + return keyNames(keys), nil +} + +// keyNames returns a slice of the provided keys' names (string IDs). +func keyNames(keys []*Key) []string { + n := make([]string, 0, len(keys)) + for _, k := range keys { + n = append(n, k.StringID()) + } + return n +} + +// KindProperties returns all the indexed properties for the given kind. +// The properties are returned as a map of property names to a slice of the +// representation types. The representation types for the supported Go property +// types are: +// "INT64": signed integers and time.Time +// "DOUBLE": float32 and float64 +// "BOOLEAN": bool +// "STRING": string, []byte and ByteString +// "POINT": appengine.GeoPoint +// "REFERENCE": *Key +// "USER": (not used in the Go runtime) +func KindProperties(ctx context.Context, kind string) (map[string][]string, error) { + // TODO(djd): Support range queries. + kindKey := NewKey(ctx, kindKind, kind, 0, nil) + q := NewQuery(propertyKind).Ancestor(kindKey) + + propMap := map[string][]string{} + props := []struct { + Repr []string `datastore:"property_representation"` + }{} + + keys, err := q.GetAll(ctx, &props) + if err != nil { + return nil, err + } + for i, p := range props { + propMap[keys[i].StringID()] = p.Repr + } + return propMap, nil +} diff --git a/vendor/google.golang.org/appengine/datastore/prop.go b/vendor/google.golang.org/appengine/datastore/prop.go new file mode 100644 index 000000000..5cb2079d8 --- /dev/null +++ b/vendor/google.golang.org/appengine/datastore/prop.go @@ -0,0 +1,330 @@ +// Copyright 2011 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package datastore + +import ( + "fmt" + "reflect" + "strings" + "sync" + "unicode" +) + +// Entities with more than this many indexed properties will not be saved. +const maxIndexedProperties = 20000 + +// []byte fields more than 1 megabyte long will not be loaded or saved. +const maxBlobLen = 1 << 20 + +// Property is a name/value pair plus some metadata. A datastore entity's +// contents are loaded and saved as a sequence of Properties. An entity can +// have multiple Properties with the same name, provided that p.Multiple is +// true on all of that entity's Properties with that name. +type Property struct { + // Name is the property name. + Name string + // Value is the property value. The valid types are: + // - int64 + // - bool + // - string + // - float64 + // - ByteString + // - *Key + // - time.Time + // - appengine.BlobKey + // - appengine.GeoPoint + // - []byte (up to 1 megabyte in length) + // - *Entity (representing a nested struct) + // This set is smaller than the set of valid struct field types that the + // datastore can load and save. A Property Value cannot be a slice (apart + // from []byte); use multiple Properties instead. Also, a Value's type + // must be explicitly on the list above; it is not sufficient for the + // underlying type to be on that list. For example, a Value of "type + // myInt64 int64" is invalid. Smaller-width integers and floats are also + // invalid. Again, this is more restrictive than the set of valid struct + // field types. + // + // A Value will have an opaque type when loading entities from an index, + // such as via a projection query. Load entities into a struct instead + // of a PropertyLoadSaver when using a projection query. + // + // A Value may also be the nil interface value; this is equivalent to + // Python's None but not directly representable by a Go struct. Loading + // a nil-valued property into a struct will set that field to the zero + // value. + Value interface{} + // NoIndex is whether the datastore cannot index this property. + NoIndex bool + // Multiple is whether the entity can have multiple properties with + // the same name. Even if a particular instance only has one property with + // a certain name, Multiple should be true if a struct would best represent + // it as a field of type []T instead of type T. + Multiple bool +} + +// An Entity is the value type for a nested struct. +// This type is only used for a Property's Value. +type Entity struct { + Key *Key + Properties []Property +} + +// ByteString is a short byte slice (up to 1500 bytes) that can be indexed. +type ByteString []byte + +// PropertyLoadSaver can be converted from and to a slice of Properties. +type PropertyLoadSaver interface { + Load([]Property) error + Save() ([]Property, error) +} + +// PropertyList converts a []Property to implement PropertyLoadSaver. +type PropertyList []Property + +var ( + typeOfPropertyLoadSaver = reflect.TypeOf((*PropertyLoadSaver)(nil)).Elem() + typeOfPropertyList = reflect.TypeOf(PropertyList(nil)) +) + +// Load loads all of the provided properties into l. +// It does not first reset *l to an empty slice. +func (l *PropertyList) Load(p []Property) error { + *l = append(*l, p...) + return nil +} + +// Save saves all of l's properties as a slice or Properties. +func (l *PropertyList) Save() ([]Property, error) { + return *l, nil +} + +// validPropertyName returns whether name consists of one or more valid Go +// identifiers joined by ".". +func validPropertyName(name string) bool { + if name == "" { + return false + } + for _, s := range strings.Split(name, ".") { + if s == "" { + return false + } + first := true + for _, c := range s { + if first { + first = false + if c != '_' && !unicode.IsLetter(c) { + return false + } + } else { + if c != '_' && !unicode.IsLetter(c) && !unicode.IsDigit(c) { + return false + } + } + } + } + return true +} + +// structCodec describes how to convert a struct to and from a sequence of +// properties. +type structCodec struct { + // fields gives the field codec for the structTag with the given name. + fields map[string]fieldCodec + // hasSlice is whether a struct or any of its nested or embedded structs + // has a slice-typed field (other than []byte). + hasSlice bool + // keyField is the index of a *Key field with structTag __key__. + // This field is not relevant for the top level struct, only for + // nested structs. + keyField int + // complete is whether the structCodec is complete. An incomplete + // structCodec may be encountered when walking a recursive struct. + complete bool +} + +// fieldCodec is a struct field's index and, if that struct field's type is +// itself a struct, that substruct's structCodec. +type fieldCodec struct { + // path is the index path to the field + path []int + noIndex bool + // omitEmpty indicates that the field should be omitted on save + // if empty. + omitEmpty bool + // structCodec is the codec fot the struct field at index 'path', + // or nil if the field is not a struct. + structCodec *structCodec +} + +// structCodecs collects the structCodecs that have already been calculated. +var ( + structCodecsMutex sync.Mutex + structCodecs = make(map[reflect.Type]*structCodec) +) + +// getStructCodec returns the structCodec for the given struct type. +func getStructCodec(t reflect.Type) (*structCodec, error) { + structCodecsMutex.Lock() + defer structCodecsMutex.Unlock() + return getStructCodecLocked(t) +} + +// getStructCodecLocked implements getStructCodec. The structCodecsMutex must +// be held when calling this function. +func getStructCodecLocked(t reflect.Type) (ret *structCodec, retErr error) { + c, ok := structCodecs[t] + if ok { + return c, nil + } + c = &structCodec{ + fields: make(map[string]fieldCodec), + // We initialize keyField to -1 so that the zero-value is not + // misinterpreted as index 0. + keyField: -1, + } + + // Add c to the structCodecs map before we are sure it is good. If t is + // a recursive type, it needs to find the incomplete entry for itself in + // the map. + structCodecs[t] = c + defer func() { + if retErr != nil { + delete(structCodecs, t) + } + }() + + for i := 0; i < t.NumField(); i++ { + f := t.Field(i) + // Skip unexported fields. + // Note that if f is an anonymous, unexported struct field, + // we will promote its fields. + if f.PkgPath != "" && !f.Anonymous { + continue + } + + tags := strings.Split(f.Tag.Get("datastore"), ",") + name := tags[0] + opts := make(map[string]bool) + for _, t := range tags[1:] { + opts[t] = true + } + switch { + case name == "": + if !f.Anonymous { + name = f.Name + } + case name == "-": + continue + case name == "__key__": + if f.Type != typeOfKeyPtr { + return nil, fmt.Errorf("datastore: __key__ field on struct %v is not a *datastore.Key", t) + } + c.keyField = i + case !validPropertyName(name): + return nil, fmt.Errorf("datastore: struct tag has invalid property name: %q", name) + } + + substructType, fIsSlice := reflect.Type(nil), false + switch f.Type.Kind() { + case reflect.Struct: + substructType = f.Type + case reflect.Slice: + if f.Type.Elem().Kind() == reflect.Struct { + substructType = f.Type.Elem() + } + fIsSlice = f.Type != typeOfByteSlice + c.hasSlice = c.hasSlice || fIsSlice + } + + var sub *structCodec + if substructType != nil && substructType != typeOfTime && substructType != typeOfGeoPoint { + var err error + sub, err = getStructCodecLocked(substructType) + if err != nil { + return nil, err + } + if !sub.complete { + return nil, fmt.Errorf("datastore: recursive struct: field %q", f.Name) + } + if fIsSlice && sub.hasSlice { + return nil, fmt.Errorf( + "datastore: flattening nested structs leads to a slice of slices: field %q", f.Name) + } + c.hasSlice = c.hasSlice || sub.hasSlice + // If f is an anonymous struct field, we promote the substruct's fields up to this level + // in the linked list of struct codecs. + if f.Anonymous { + for subname, subfield := range sub.fields { + if name != "" { + subname = name + "." + subname + } + if _, ok := c.fields[subname]; ok { + return nil, fmt.Errorf("datastore: struct tag has repeated property name: %q", subname) + } + c.fields[subname] = fieldCodec{ + path: append([]int{i}, subfield.path...), + noIndex: subfield.noIndex || opts["noindex"], + omitEmpty: subfield.omitEmpty, + structCodec: subfield.structCodec, + } + } + continue + } + } + + if _, ok := c.fields[name]; ok { + return nil, fmt.Errorf("datastore: struct tag has repeated property name: %q", name) + } + c.fields[name] = fieldCodec{ + path: []int{i}, + noIndex: opts["noindex"], + omitEmpty: opts["omitempty"], + structCodec: sub, + } + } + c.complete = true + return c, nil +} + +// structPLS adapts a struct to be a PropertyLoadSaver. +type structPLS struct { + v reflect.Value + codec *structCodec +} + +// newStructPLS returns a structPLS, which implements the +// PropertyLoadSaver interface, for the struct pointer p. +func newStructPLS(p interface{}) (*structPLS, error) { + v := reflect.ValueOf(p) + if v.Kind() != reflect.Ptr || v.Elem().Kind() != reflect.Struct { + return nil, ErrInvalidEntityType + } + v = v.Elem() + codec, err := getStructCodec(v.Type()) + if err != nil { + return nil, err + } + return &structPLS{v, codec}, nil +} + +// LoadStruct loads the properties from p to dst. +// dst must be a struct pointer. +func LoadStruct(dst interface{}, p []Property) error { + x, err := newStructPLS(dst) + if err != nil { + return err + } + return x.Load(p) +} + +// SaveStruct returns the properties from src as a slice of Properties. +// src must be a struct pointer. +func SaveStruct(src interface{}) ([]Property, error) { + x, err := newStructPLS(src) + if err != nil { + return nil, err + } + return x.Save() +} diff --git a/vendor/google.golang.org/appengine/datastore/prop_test.go b/vendor/google.golang.org/appengine/datastore/prop_test.go new file mode 100644 index 000000000..646a18f00 --- /dev/null +++ b/vendor/google.golang.org/appengine/datastore/prop_test.go @@ -0,0 +1,672 @@ +// Copyright 2011 Google Inc. All Rights Reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package datastore + +import ( + "reflect" + "sort" + "testing" + "time" + + "google.golang.org/appengine" +) + +func TestValidPropertyName(t *testing.T) { + testCases := []struct { + name string + want bool + }{ + // Invalid names. + {"", false}, + {"'", false}, + {".", false}, + {"..", false}, + {".foo", false}, + {"0", false}, + {"00", false}, + {"X.X.4.X.X", false}, + {"\n", false}, + {"\x00", false}, + {"abc\xffz", false}, + {"foo.", false}, + {"foo..", false}, + {"foo..bar", false}, + {"☃", false}, + {`"`, false}, + // Valid names. + {"AB", true}, + {"Abc", true}, + {"X.X.X.X.X", true}, + {"_", true}, + {"_0", true}, + {"a", true}, + {"a_B", true}, + {"f00", true}, + {"f0o", true}, + {"fo0", true}, + {"foo", true}, + {"foo.bar", true}, + {"foo.bar.baz", true}, + {"世界", true}, + } + for _, tc := range testCases { + got := validPropertyName(tc.name) + if got != tc.want { + t.Errorf("%q: got %v, want %v", tc.name, got, tc.want) + } + } +} + +func TestStructCodec(t *testing.T) { + type oStruct struct { + O int + } + type pStruct struct { + P int + Q int + } + type rStruct struct { + R int + S pStruct + T oStruct + oStruct + } + type uStruct struct { + U int + v int + } + type vStruct struct { + V string `datastore:",noindex"` + } + oStructCodec := &structCodec{ + fields: map[string]fieldCodec{ + "O": {path: []int{0}}, + }, + complete: true, + } + pStructCodec := &structCodec{ + fields: map[string]fieldCodec{ + "P": {path: []int{0}}, + "Q": {path: []int{1}}, + }, + complete: true, + } + rStructCodec := &structCodec{ + fields: map[string]fieldCodec{ + "R": {path: []int{0}}, + "S": {path: []int{1}, structCodec: pStructCodec}, + "T": {path: []int{2}, structCodec: oStructCodec}, + "O": {path: []int{3, 0}}, + }, + complete: true, + } + uStructCodec := &structCodec{ + fields: map[string]fieldCodec{ + "U": {path: []int{0}}, + }, + complete: true, + } + vStructCodec := &structCodec{ + fields: map[string]fieldCodec{ + "V": {path: []int{0}, noIndex: true}, + }, + complete: true, + } + + testCases := []struct { + desc string + structValue interface{} + want *structCodec + }{ + { + "oStruct", + oStruct{}, + oStructCodec, + }, + { + "pStruct", + pStruct{}, + pStructCodec, + }, + { + "rStruct", + rStruct{}, + rStructCodec, + }, + { + "uStruct", + uStruct{}, + uStructCodec, + }, + { + "non-basic fields", + struct { + B appengine.BlobKey + K *Key + T time.Time + }{}, + &structCodec{ + fields: map[string]fieldCodec{ + "B": {path: []int{0}}, + "K": {path: []int{1}}, + "T": {path: []int{2}}, + }, + complete: true, + }, + }, + { + "struct tags with ignored embed", + struct { + A int `datastore:"a,noindex"` + B int `datastore:"b"` + C int `datastore:",noindex"` + D int `datastore:""` + E int + I int `datastore:"-"` + J int `datastore:",noindex" json:"j"` + oStruct `datastore:"-"` + }{}, + &structCodec{ + fields: map[string]fieldCodec{ + "a": {path: []int{0}, noIndex: true}, + "b": {path: []int{1}}, + "C": {path: []int{2}, noIndex: true}, + "D": {path: []int{3}}, + "E": {path: []int{4}}, + "J": {path: []int{6}, noIndex: true}, + }, + complete: true, + }, + }, + { + "unexported fields", + struct { + A int + b int + C int `datastore:"x"` + d int `datastore:"Y"` + }{}, + &structCodec{ + fields: map[string]fieldCodec{ + "A": {path: []int{0}}, + "x": {path: []int{2}}, + }, + complete: true, + }, + }, + { + "nested and embedded structs", + struct { + A int + B int + CC oStruct + DDD rStruct + oStruct + }{}, + &structCodec{ + fields: map[string]fieldCodec{ + "A": {path: []int{0}}, + "B": {path: []int{1}}, + "CC": {path: []int{2}, structCodec: oStructCodec}, + "DDD": {path: []int{3}, structCodec: rStructCodec}, + "O": {path: []int{4, 0}}, + }, + complete: true, + }, + }, + { + "struct tags with nested and embedded structs", + struct { + A int `datastore:"-"` + B int `datastore:"w"` + C oStruct `datastore:"xx"` + D rStruct `datastore:"y"` + oStruct `datastore:"z"` + }{}, + &structCodec{ + fields: map[string]fieldCodec{ + "w": {path: []int{1}}, + "xx": {path: []int{2}, structCodec: oStructCodec}, + "y": {path: []int{3}, structCodec: rStructCodec}, + "z.O": {path: []int{4, 0}}, + }, + complete: true, + }, + }, + { + "unexported nested and embedded structs", + struct { + a int + B int + c uStruct + D uStruct + uStruct + }{}, + &structCodec{ + fields: map[string]fieldCodec{ + "B": {path: []int{1}}, + "D": {path: []int{3}, structCodec: uStructCodec}, + "U": {path: []int{4, 0}}, + }, + complete: true, + }, + }, + { + "noindex nested struct", + struct { + A oStruct `datastore:",noindex"` + }{}, + &structCodec{ + fields: map[string]fieldCodec{ + "A": {path: []int{0}, structCodec: oStructCodec, noIndex: true}, + }, + complete: true, + }, + }, + { + "noindex slice", + struct { + A []string `datastore:",noindex"` + }{}, + &structCodec{ + fields: map[string]fieldCodec{ + "A": {path: []int{0}, noIndex: true}, + }, + hasSlice: true, + complete: true, + }, + }, + { + "noindex embedded struct slice", + struct { + // vStruct has a single field, V, also with noindex. + A []vStruct `datastore:",noindex"` + }{}, + &structCodec{ + fields: map[string]fieldCodec{ + "A": {path: []int{0}, structCodec: vStructCodec, noIndex: true}, + }, + hasSlice: true, + complete: true, + }, + }, + } + + for _, tc := range testCases { + got, err := getStructCodec(reflect.TypeOf(tc.structValue)) + if err != nil { + t.Errorf("%s: getStructCodec: %v", tc.desc, err) + continue + } + // can't reflect.DeepEqual b/c element order in fields map may differ + if !isEqualStructCodec(got, tc.want) { + t.Errorf("%s\ngot %+v\nwant %+v\n", tc.desc, got, tc.want) + } + } +} + +func isEqualStructCodec(got, want *structCodec) bool { + if got.complete != want.complete { + return false + } + if got.hasSlice != want.hasSlice { + return false + } + if len(got.fields) != len(want.fields) { + return false + } + for name, wantF := range want.fields { + gotF := got.fields[name] + if !reflect.DeepEqual(wantF.path, gotF.path) { + return false + } + if wantF.noIndex != gotF.noIndex { + return false + } + if wantF.structCodec != nil { + if gotF.structCodec == nil { + return false + } + if !isEqualStructCodec(gotF.structCodec, wantF.structCodec) { + return false + } + } + } + + return true +} + +func TestRepeatedPropertyName(t *testing.T) { + good := []interface{}{ + struct { + A int `datastore:"-"` + }{}, + struct { + A int `datastore:"b"` + B int + }{}, + struct { + A int + B int `datastore:"B"` + }{}, + struct { + A int `datastore:"B"` + B int `datastore:"-"` + }{}, + struct { + A int `datastore:"-"` + B int `datastore:"A"` + }{}, + struct { + A int `datastore:"B"` + B int `datastore:"A"` + }{}, + struct { + A int `datastore:"B"` + B int `datastore:"C"` + C int `datastore:"A"` + }{}, + struct { + A int `datastore:"B"` + B int `datastore:"C"` + C int `datastore:"D"` + }{}, + } + bad := []interface{}{ + struct { + A int `datastore:"B"` + B int + }{}, + struct { + A int + B int `datastore:"A"` + }{}, + struct { + A int `datastore:"C"` + B int `datastore:"C"` + }{}, + struct { + A int `datastore:"B"` + B int `datastore:"C"` + C int `datastore:"B"` + }{}, + } + testGetStructCodec(t, good, bad) +} + +func TestFlatteningNestedStructs(t *testing.T) { + type DeepGood struct { + A struct { + B []struct { + C struct { + D int + } + } + } + } + type DeepBad struct { + A struct { + B []struct { + C struct { + D []int + } + } + } + } + type ISay struct { + Tomato int + } + type YouSay struct { + Tomato int + } + type Tweedledee struct { + Dee int `datastore:"D"` + } + type Tweedledum struct { + Dum int `datastore:"D"` + } + + good := []interface{}{ + struct { + X []struct { + Y string + } + }{}, + struct { + X []struct { + Y []byte + } + }{}, + struct { + P []int + X struct { + Y []int + } + }{}, + struct { + X struct { + Y []int + } + Q []int + }{}, + struct { + P []int + X struct { + Y []int + } + Q []int + }{}, + struct { + DeepGood + }{}, + struct { + DG DeepGood + }{}, + struct { + Foo struct { + Z int + } `datastore:"A"` + Bar struct { + Z int + } `datastore:"B"` + }{}, + } + bad := []interface{}{ + struct { + X []struct { + Y []string + } + }{}, + struct { + X []struct { + Y []int + } + }{}, + struct { + DeepBad + }{}, + struct { + DB DeepBad + }{}, + struct { + ISay + YouSay + }{}, + struct { + Tweedledee + Tweedledum + }{}, + struct { + Foo struct { + Z int + } `datastore:"A"` + Bar struct { + Z int + } `datastore:"A"` + }{}, + } + testGetStructCodec(t, good, bad) +} + +func testGetStructCodec(t *testing.T, good []interface{}, bad []interface{}) { + for _, x := range good { + if _, err := getStructCodec(reflect.TypeOf(x)); err != nil { + t.Errorf("type %T: got non-nil error (%s), want nil", x, err) + } + } + for _, x := range bad { + if _, err := getStructCodec(reflect.TypeOf(x)); err == nil { + t.Errorf("type %T: got nil error, want non-nil", x) + } + } +} + +func TestNilKeyIsStored(t *testing.T) { + x := struct { + K *Key + I int + }{} + p := PropertyList{} + // Save x as properties. + p1, _ := SaveStruct(&x) + p.Load(p1) + // Set x's fields to non-zero. + x.K = &Key{} + x.I = 2 + // Load x from properties. + p2, _ := p.Save() + LoadStruct(&x, p2) + // Check that x's fields were set to zero. + if x.K != nil { + t.Errorf("K field was not zero") + } + if x.I != 0 { + t.Errorf("I field was not zero") + } +} + +func TestSaveStructOmitEmpty(t *testing.T) { + // Expected props names are sorted alphabetically + expectedPropNamesForSingles := []string{"EmptyValue", "NonEmptyValue", "OmitEmptyWithValue"} + expectedPropNamesForSlices := []string{"NonEmptyValue", "NonEmptyValue", "OmitEmptyWithValue", "OmitEmptyWithValue"} + + testOmitted := func(expectedPropNames []string, src interface{}) { + // t.Helper() - this is available from Go version 1.9, but we also support Go versions 1.6, 1.7, 1.8 + if props, err := SaveStruct(src); err != nil { + t.Fatal(err) + } else { + // Collect names for reporting if diffs from expected and for easier sorting + actualPropNames := make([]string, len(props)) + for i := range props { + actualPropNames[i] = props[i].Name + } + // Sort actuals for comparing with already sorted expected names + sort.Sort(sort.StringSlice(actualPropNames)) + if !reflect.DeepEqual(actualPropNames, expectedPropNames) { + t.Errorf("Expected this properties: %v, got: %v", expectedPropNames, actualPropNames) + } + } + } + + testOmitted(expectedPropNamesForSingles, &struct { + EmptyValue int + NonEmptyValue int + OmitEmptyNoValue int `datastore:",omitempty"` + OmitEmptyWithValue int `datastore:",omitempty"` + }{ + NonEmptyValue: 1, + OmitEmptyWithValue: 2, + }) + + testOmitted(expectedPropNamesForSlices, &struct { + EmptyValue []int + NonEmptyValue []int + OmitEmptyNoValue []int `datastore:",omitempty"` + OmitEmptyWithValue []int `datastore:",omitempty"` + }{ + NonEmptyValue: []int{1, 2}, + OmitEmptyWithValue: []int{3, 4}, + }) + + testOmitted(expectedPropNamesForSingles, &struct { + EmptyValue bool + NonEmptyValue bool + OmitEmptyNoValue bool `datastore:",omitempty"` + OmitEmptyWithValue bool `datastore:",omitempty"` + }{ + NonEmptyValue: true, + OmitEmptyWithValue: true, + }) + + testOmitted(expectedPropNamesForSlices, &struct { + EmptyValue []bool + NonEmptyValue []bool + OmitEmptyNoValue []bool `datastore:",omitempty"` + OmitEmptyWithValue []bool `datastore:",omitempty"` + }{ + NonEmptyValue: []bool{true, true}, + OmitEmptyWithValue: []bool{true, true}, + }) + + testOmitted(expectedPropNamesForSingles, &struct { + EmptyValue string + NonEmptyValue string + OmitEmptyNoValue string `datastore:",omitempty"` + OmitEmptyWithValue string `datastore:",omitempty"` + }{ + NonEmptyValue: "s", + OmitEmptyWithValue: "s", + }) + + testOmitted(expectedPropNamesForSlices, &struct { + EmptyValue []string + NonEmptyValue []string + OmitEmptyNoValue []string `datastore:",omitempty"` + OmitEmptyWithValue []string `datastore:",omitempty"` + }{ + NonEmptyValue: []string{"s1", "s2"}, + OmitEmptyWithValue: []string{"s3", "s4"}, + }) + + testOmitted(expectedPropNamesForSingles, &struct { + EmptyValue float32 + NonEmptyValue float32 + OmitEmptyNoValue float32 `datastore:",omitempty"` + OmitEmptyWithValue float32 `datastore:",omitempty"` + }{ + NonEmptyValue: 1.1, + OmitEmptyWithValue: 1.2, + }) + + testOmitted(expectedPropNamesForSlices, &struct { + EmptyValue []float32 + NonEmptyValue []float32 + OmitEmptyNoValue []float32 `datastore:",omitempty"` + OmitEmptyWithValue []float32 `datastore:",omitempty"` + }{ + NonEmptyValue: []float32{1.1, 2.2}, + OmitEmptyWithValue: []float32{3.3, 4.4}, + }) + + testOmitted(expectedPropNamesForSingles, &struct { + EmptyValue time.Time + NonEmptyValue time.Time + OmitEmptyNoValue time.Time `datastore:",omitempty"` + OmitEmptyWithValue time.Time `datastore:",omitempty"` + }{ + NonEmptyValue: now, + OmitEmptyWithValue: now, + }) + + testOmitted(expectedPropNamesForSlices, &struct { + EmptyValue []time.Time + NonEmptyValue []time.Time + OmitEmptyNoValue []time.Time `datastore:",omitempty"` + OmitEmptyWithValue []time.Time `datastore:",omitempty"` + }{ + NonEmptyValue: []time.Time{now, now}, + OmitEmptyWithValue: []time.Time{now, now}, + }) +} diff --git a/vendor/google.golang.org/appengine/datastore/query.go b/vendor/google.golang.org/appengine/datastore/query.go new file mode 100644 index 000000000..c1ea4adf6 --- /dev/null +++ b/vendor/google.golang.org/appengine/datastore/query.go @@ -0,0 +1,757 @@ +// Copyright 2011 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package datastore + +import ( + "encoding/base64" + "errors" + "fmt" + "math" + "reflect" + "strings" + + "github.com/golang/protobuf/proto" + "golang.org/x/net/context" + + "google.golang.org/appengine/internal" + pb "google.golang.org/appengine/internal/datastore" +) + +type operator int + +const ( + lessThan operator = iota + lessEq + equal + greaterEq + greaterThan +) + +var operatorToProto = map[operator]*pb.Query_Filter_Operator{ + lessThan: pb.Query_Filter_LESS_THAN.Enum(), + lessEq: pb.Query_Filter_LESS_THAN_OR_EQUAL.Enum(), + equal: pb.Query_Filter_EQUAL.Enum(), + greaterEq: pb.Query_Filter_GREATER_THAN_OR_EQUAL.Enum(), + greaterThan: pb.Query_Filter_GREATER_THAN.Enum(), +} + +// filter is a conditional filter on query results. +type filter struct { + FieldName string + Op operator + Value interface{} +} + +type sortDirection int + +const ( + ascending sortDirection = iota + descending +) + +var sortDirectionToProto = map[sortDirection]*pb.Query_Order_Direction{ + ascending: pb.Query_Order_ASCENDING.Enum(), + descending: pb.Query_Order_DESCENDING.Enum(), +} + +// order is a sort order on query results. +type order struct { + FieldName string + Direction sortDirection +} + +// NewQuery creates a new Query for a specific entity kind. +// +// An empty kind means to return all entities, including entities created and +// managed by other App Engine features, and is called a kindless query. +// Kindless queries cannot include filters or sort orders on property values. +func NewQuery(kind string) *Query { + return &Query{ + kind: kind, + limit: -1, + } +} + +// Query represents a datastore query. +type Query struct { + kind string + ancestor *Key + filter []filter + order []order + projection []string + + distinct bool + keysOnly bool + eventual bool + limit int32 + offset int32 + count int32 + start *pb.CompiledCursor + end *pb.CompiledCursor + + err error +} + +func (q *Query) clone() *Query { + x := *q + // Copy the contents of the slice-typed fields to a new backing store. + if len(q.filter) > 0 { + x.filter = make([]filter, len(q.filter)) + copy(x.filter, q.filter) + } + if len(q.order) > 0 { + x.order = make([]order, len(q.order)) + copy(x.order, q.order) + } + return &x +} + +// Ancestor returns a derivative query with an ancestor filter. +// The ancestor should not be nil. +func (q *Query) Ancestor(ancestor *Key) *Query { + q = q.clone() + if ancestor == nil { + q.err = errors.New("datastore: nil query ancestor") + return q + } + q.ancestor = ancestor + return q +} + +// EventualConsistency returns a derivative query that returns eventually +// consistent results. +// It only has an effect on ancestor queries. +func (q *Query) EventualConsistency() *Query { + q = q.clone() + q.eventual = true + return q +} + +// Filter returns a derivative query with a field-based filter. +// The filterStr argument must be a field name followed by optional space, +// followed by an operator, one of ">", "<", ">=", "<=", or "=". +// Fields are compared against the provided value using the operator. +// Multiple filters are AND'ed together. +func (q *Query) Filter(filterStr string, value interface{}) *Query { + q = q.clone() + filterStr = strings.TrimSpace(filterStr) + if len(filterStr) < 1 { + q.err = errors.New("datastore: invalid filter: " + filterStr) + return q + } + f := filter{ + FieldName: strings.TrimRight(filterStr, " ><=!"), + Value: value, + } + switch op := strings.TrimSpace(filterStr[len(f.FieldName):]); op { + case "<=": + f.Op = lessEq + case ">=": + f.Op = greaterEq + case "<": + f.Op = lessThan + case ">": + f.Op = greaterThan + case "=": + f.Op = equal + default: + q.err = fmt.Errorf("datastore: invalid operator %q in filter %q", op, filterStr) + return q + } + q.filter = append(q.filter, f) + return q +} + +// Order returns a derivative query with a field-based sort order. Orders are +// applied in the order they are added. The default order is ascending; to sort +// in descending order prefix the fieldName with a minus sign (-). +func (q *Query) Order(fieldName string) *Query { + q = q.clone() + fieldName = strings.TrimSpace(fieldName) + o := order{ + Direction: ascending, + FieldName: fieldName, + } + if strings.HasPrefix(fieldName, "-") { + o.Direction = descending + o.FieldName = strings.TrimSpace(fieldName[1:]) + } else if strings.HasPrefix(fieldName, "+") { + q.err = fmt.Errorf("datastore: invalid order: %q", fieldName) + return q + } + if len(o.FieldName) == 0 { + q.err = errors.New("datastore: empty order") + return q + } + q.order = append(q.order, o) + return q +} + +// Project returns a derivative query that yields only the given fields. It +// cannot be used with KeysOnly. +func (q *Query) Project(fieldNames ...string) *Query { + q = q.clone() + q.projection = append([]string(nil), fieldNames...) + return q +} + +// Distinct returns a derivative query that yields de-duplicated entities with +// respect to the set of projected fields. It is only used for projection +// queries. +func (q *Query) Distinct() *Query { + q = q.clone() + q.distinct = true + return q +} + +// KeysOnly returns a derivative query that yields only keys, not keys and +// entities. It cannot be used with projection queries. +func (q *Query) KeysOnly() *Query { + q = q.clone() + q.keysOnly = true + return q +} + +// Limit returns a derivative query that has a limit on the number of results +// returned. A negative value means unlimited. +func (q *Query) Limit(limit int) *Query { + q = q.clone() + if limit < math.MinInt32 || limit > math.MaxInt32 { + q.err = errors.New("datastore: query limit overflow") + return q + } + q.limit = int32(limit) + return q +} + +// Offset returns a derivative query that has an offset of how many keys to +// skip over before returning results. A negative value is invalid. +func (q *Query) Offset(offset int) *Query { + q = q.clone() + if offset < 0 { + q.err = errors.New("datastore: negative query offset") + return q + } + if offset > math.MaxInt32 { + q.err = errors.New("datastore: query offset overflow") + return q + } + q.offset = int32(offset) + return q +} + +// BatchSize returns a derivative query to fetch the supplied number of results +// at once. This value should be greater than zero, and equal to or less than +// the Limit. +func (q *Query) BatchSize(size int) *Query { + q = q.clone() + if size <= 0 || size > math.MaxInt32 { + q.err = errors.New("datastore: query batch size overflow") + return q + } + q.count = int32(size) + return q +} + +// Start returns a derivative query with the given start point. +func (q *Query) Start(c Cursor) *Query { + q = q.clone() + if c.cc == nil { + q.err = errors.New("datastore: invalid cursor") + return q + } + q.start = c.cc + return q +} + +// End returns a derivative query with the given end point. +func (q *Query) End(c Cursor) *Query { + q = q.clone() + if c.cc == nil { + q.err = errors.New("datastore: invalid cursor") + return q + } + q.end = c.cc + return q +} + +// toProto converts the query to a protocol buffer. +func (q *Query) toProto(dst *pb.Query, appID string) error { + if len(q.projection) != 0 && q.keysOnly { + return errors.New("datastore: query cannot both project and be keys-only") + } + dst.Reset() + dst.App = proto.String(appID) + if q.kind != "" { + dst.Kind = proto.String(q.kind) + } + if q.ancestor != nil { + dst.Ancestor = keyToProto(appID, q.ancestor) + if q.eventual { + dst.Strong = proto.Bool(false) + } + } + if q.projection != nil { + dst.PropertyName = q.projection + if q.distinct { + dst.GroupByPropertyName = q.projection + } + } + if q.keysOnly { + dst.KeysOnly = proto.Bool(true) + dst.RequirePerfectPlan = proto.Bool(true) + } + for _, qf := range q.filter { + if qf.FieldName == "" { + return errors.New("datastore: empty query filter field name") + } + p, errStr := valueToProto(appID, qf.FieldName, reflect.ValueOf(qf.Value), false) + if errStr != "" { + return errors.New("datastore: bad query filter value type: " + errStr) + } + xf := &pb.Query_Filter{ + Op: operatorToProto[qf.Op], + Property: []*pb.Property{p}, + } + if xf.Op == nil { + return errors.New("datastore: unknown query filter operator") + } + dst.Filter = append(dst.Filter, xf) + } + for _, qo := range q.order { + if qo.FieldName == "" { + return errors.New("datastore: empty query order field name") + } + xo := &pb.Query_Order{ + Property: proto.String(qo.FieldName), + Direction: sortDirectionToProto[qo.Direction], + } + if xo.Direction == nil { + return errors.New("datastore: unknown query order direction") + } + dst.Order = append(dst.Order, xo) + } + if q.limit >= 0 { + dst.Limit = proto.Int32(q.limit) + } + if q.offset != 0 { + dst.Offset = proto.Int32(q.offset) + } + if q.count != 0 { + dst.Count = proto.Int32(q.count) + } + dst.CompiledCursor = q.start + dst.EndCompiledCursor = q.end + dst.Compile = proto.Bool(true) + return nil +} + +// Count returns the number of results for the query. +// +// The running time and number of API calls made by Count scale linearly with +// the sum of the query's offset and limit. Unless the result count is +// expected to be small, it is best to specify a limit; otherwise Count will +// continue until it finishes counting or the provided context expires. +func (q *Query) Count(c context.Context) (int, error) { + // Check that the query is well-formed. + if q.err != nil { + return 0, q.err + } + + // Run a copy of the query, with keysOnly true (if we're not a projection, + // since the two are incompatible), and an adjusted offset. We also set the + // limit to zero, as we don't want any actual entity data, just the number + // of skipped results. + newQ := q.clone() + newQ.keysOnly = len(newQ.projection) == 0 + newQ.limit = 0 + if q.limit < 0 { + // If the original query was unlimited, set the new query's offset to maximum. + newQ.offset = math.MaxInt32 + } else { + newQ.offset = q.offset + q.limit + if newQ.offset < 0 { + // Do the best we can, in the presence of overflow. + newQ.offset = math.MaxInt32 + } + } + req := &pb.Query{} + if err := newQ.toProto(req, internal.FullyQualifiedAppID(c)); err != nil { + return 0, err + } + res := &pb.QueryResult{} + if err := internal.Call(c, "datastore_v3", "RunQuery", req, res); err != nil { + return 0, err + } + + // n is the count we will return. For example, suppose that our original + // query had an offset of 4 and a limit of 2008: the count will be 2008, + // provided that there are at least 2012 matching entities. However, the + // RPCs will only skip 1000 results at a time. The RPC sequence is: + // call RunQuery with (offset, limit) = (2012, 0) // 2012 == newQ.offset + // response has (skippedResults, moreResults) = (1000, true) + // n += 1000 // n == 1000 + // call Next with (offset, limit) = (1012, 0) // 1012 == newQ.offset - n + // response has (skippedResults, moreResults) = (1000, true) + // n += 1000 // n == 2000 + // call Next with (offset, limit) = (12, 0) // 12 == newQ.offset - n + // response has (skippedResults, moreResults) = (12, false) + // n += 12 // n == 2012 + // // exit the loop + // n -= 4 // n == 2008 + var n int32 + for { + // The QueryResult should have no actual entity data, just skipped results. + if len(res.Result) != 0 { + return 0, errors.New("datastore: internal error: Count request returned too much data") + } + n += res.GetSkippedResults() + if !res.GetMoreResults() { + break + } + if err := callNext(c, res, newQ.offset-n, q.count); err != nil { + return 0, err + } + } + n -= q.offset + if n < 0 { + // If the offset was greater than the number of matching entities, + // return 0 instead of negative. + n = 0 + } + return int(n), nil +} + +// callNext issues a datastore_v3/Next RPC to advance a cursor, such as that +// returned by a query with more results. +func callNext(c context.Context, res *pb.QueryResult, offset, count int32) error { + if res.Cursor == nil { + return errors.New("datastore: internal error: server did not return a cursor") + } + req := &pb.NextRequest{ + Cursor: res.Cursor, + } + if count >= 0 { + req.Count = proto.Int32(count) + } + if offset != 0 { + req.Offset = proto.Int32(offset) + } + if res.CompiledCursor != nil { + req.Compile = proto.Bool(true) + } + res.Reset() + return internal.Call(c, "datastore_v3", "Next", req, res) +} + +// GetAll runs the query in the given context and returns all keys that match +// that query, as well as appending the values to dst. +// +// dst must have type *[]S or *[]*S or *[]P, for some struct type S or some non- +// interface, non-pointer type P such that P or *P implements PropertyLoadSaver. +// +// As a special case, *PropertyList is an invalid type for dst, even though a +// PropertyList is a slice of structs. It is treated as invalid to avoid being +// mistakenly passed when *[]PropertyList was intended. +// +// The keys returned by GetAll will be in a 1-1 correspondence with the entities +// added to dst. +// +// If q is a ``keys-only'' query, GetAll ignores dst and only returns the keys. +// +// The running time and number of API calls made by GetAll scale linearly with +// the sum of the query's offset and limit. Unless the result count is +// expected to be small, it is best to specify a limit; otherwise GetAll will +// continue until it finishes collecting results or the provided context +// expires. +func (q *Query) GetAll(c context.Context, dst interface{}) ([]*Key, error) { + var ( + dv reflect.Value + mat multiArgType + elemType reflect.Type + errFieldMismatch error + ) + if !q.keysOnly { + dv = reflect.ValueOf(dst) + if dv.Kind() != reflect.Ptr || dv.IsNil() { + return nil, ErrInvalidEntityType + } + dv = dv.Elem() + mat, elemType = checkMultiArg(dv) + if mat == multiArgTypeInvalid || mat == multiArgTypeInterface { + return nil, ErrInvalidEntityType + } + } + + var keys []*Key + for t := q.Run(c); ; { + k, e, err := t.next() + if err == Done { + break + } + if err != nil { + return keys, err + } + if !q.keysOnly { + ev := reflect.New(elemType) + if elemType.Kind() == reflect.Map { + // This is a special case. The zero values of a map type are + // not immediately useful; they have to be make'd. + // + // Funcs and channels are similar, in that a zero value is not useful, + // but even a freshly make'd channel isn't useful: there's no fixed + // channel buffer size that is always going to be large enough, and + // there's no goroutine to drain the other end. Theoretically, these + // types could be supported, for example by sniffing for a constructor + // method or requiring prior registration, but for now it's not a + // frequent enough concern to be worth it. Programmers can work around + // it by explicitly using Iterator.Next instead of the Query.GetAll + // convenience method. + x := reflect.MakeMap(elemType) + ev.Elem().Set(x) + } + if err = loadEntity(ev.Interface(), e); err != nil { + if _, ok := err.(*ErrFieldMismatch); ok { + // We continue loading entities even in the face of field mismatch errors. + // If we encounter any other error, that other error is returned. Otherwise, + // an ErrFieldMismatch is returned. + errFieldMismatch = err + } else { + return keys, err + } + } + if mat != multiArgTypeStructPtr { + ev = ev.Elem() + } + dv.Set(reflect.Append(dv, ev)) + } + keys = append(keys, k) + } + return keys, errFieldMismatch +} + +// Run runs the query in the given context. +func (q *Query) Run(c context.Context) *Iterator { + if q.err != nil { + return &Iterator{err: q.err} + } + t := &Iterator{ + c: c, + limit: q.limit, + count: q.count, + q: q, + prevCC: q.start, + } + var req pb.Query + if err := q.toProto(&req, internal.FullyQualifiedAppID(c)); err != nil { + t.err = err + return t + } + if err := internal.Call(c, "datastore_v3", "RunQuery", &req, &t.res); err != nil { + t.err = err + return t + } + offset := q.offset - t.res.GetSkippedResults() + var count int32 + if t.count > 0 && (t.limit < 0 || t.count < t.limit) { + count = t.count + } else { + count = t.limit + } + for offset > 0 && t.res.GetMoreResults() { + t.prevCC = t.res.CompiledCursor + if err := callNext(t.c, &t.res, offset, count); err != nil { + t.err = err + break + } + skip := t.res.GetSkippedResults() + if skip < 0 { + t.err = errors.New("datastore: internal error: negative number of skipped_results") + break + } + offset -= skip + } + if offset < 0 { + t.err = errors.New("datastore: internal error: query offset was overshot") + } + return t +} + +// Iterator is the result of running a query. +type Iterator struct { + c context.Context + err error + // res is the result of the most recent RunQuery or Next API call. + res pb.QueryResult + // i is how many elements of res.Result we have iterated over. + i int + // limit is the limit on the number of results this iterator should return. + // A negative value means unlimited. + limit int32 + // count is the number of results this iterator should fetch at once. This + // should be equal to or greater than zero. + count int32 + // q is the original query which yielded this iterator. + q *Query + // prevCC is the compiled cursor that marks the end of the previous batch + // of results. + prevCC *pb.CompiledCursor +} + +// Done is returned when a query iteration has completed. +var Done = errors.New("datastore: query has no more results") + +// Next returns the key of the next result. When there are no more results, +// Done is returned as the error. +// +// If the query is not keys only and dst is non-nil, it also loads the entity +// stored for that key into the struct pointer or PropertyLoadSaver dst, with +// the same semantics and possible errors as for the Get function. +func (t *Iterator) Next(dst interface{}) (*Key, error) { + k, e, err := t.next() + if err != nil { + return nil, err + } + if dst != nil && !t.q.keysOnly { + err = loadEntity(dst, e) + } + return k, err +} + +func (t *Iterator) next() (*Key, *pb.EntityProto, error) { + if t.err != nil { + return nil, nil, t.err + } + + // Issue datastore_v3/Next RPCs as necessary. + for t.i == len(t.res.Result) { + if !t.res.GetMoreResults() { + t.err = Done + return nil, nil, t.err + } + t.prevCC = t.res.CompiledCursor + var count int32 + if t.count > 0 && (t.limit < 0 || t.count < t.limit) { + count = t.count + } else { + count = t.limit + } + if err := callNext(t.c, &t.res, 0, count); err != nil { + t.err = err + return nil, nil, t.err + } + if t.res.GetSkippedResults() != 0 { + t.err = errors.New("datastore: internal error: iterator has skipped results") + return nil, nil, t.err + } + t.i = 0 + if t.limit >= 0 { + t.limit -= int32(len(t.res.Result)) + if t.limit < 0 { + t.err = errors.New("datastore: internal error: query returned more results than the limit") + return nil, nil, t.err + } + } + } + + // Extract the key from the t.i'th element of t.res.Result. + e := t.res.Result[t.i] + t.i++ + if e.Key == nil { + return nil, nil, errors.New("datastore: internal error: server did not return a key") + } + k, err := protoToKey(e.Key) + if err != nil || k.Incomplete() { + return nil, nil, errors.New("datastore: internal error: server returned an invalid key") + } + return k, e, nil +} + +// Cursor returns a cursor for the iterator's current location. +func (t *Iterator) Cursor() (Cursor, error) { + if t.err != nil && t.err != Done { + return Cursor{}, t.err + } + // If we are at either end of the current batch of results, + // return the compiled cursor at that end. + skipped := t.res.GetSkippedResults() + if t.i == 0 && skipped == 0 { + if t.prevCC == nil { + // A nil pointer (of type *pb.CompiledCursor) means no constraint: + // passing it as the end cursor of a new query means unlimited results + // (glossing over the integer limit parameter for now). + // A non-nil pointer to an empty pb.CompiledCursor means the start: + // passing it as the end cursor of a new query means 0 results. + // If prevCC was nil, then the original query had no start cursor, but + // Iterator.Cursor should return "the start" instead of unlimited. + return Cursor{&zeroCC}, nil + } + return Cursor{t.prevCC}, nil + } + if t.i == len(t.res.Result) { + return Cursor{t.res.CompiledCursor}, nil + } + // Otherwise, re-run the query offset to this iterator's position, starting from + // the most recent compiled cursor. This is done on a best-effort basis, as it + // is racy; if a concurrent process has added or removed entities, then the + // cursor returned may be inconsistent. + q := t.q.clone() + q.start = t.prevCC + q.offset = skipped + int32(t.i) + q.limit = 0 + q.keysOnly = len(q.projection) == 0 + t1 := q.Run(t.c) + _, _, err := t1.next() + if err != Done { + if err == nil { + err = fmt.Errorf("datastore: internal error: zero-limit query did not have zero results") + } + return Cursor{}, err + } + return Cursor{t1.res.CompiledCursor}, nil +} + +var zeroCC pb.CompiledCursor + +// Cursor is an iterator's position. It can be converted to and from an opaque +// string. A cursor can be used from different HTTP requests, but only with a +// query with the same kind, ancestor, filter and order constraints. +type Cursor struct { + cc *pb.CompiledCursor +} + +// String returns a base-64 string representation of a cursor. +func (c Cursor) String() string { + if c.cc == nil { + return "" + } + b, err := proto.Marshal(c.cc) + if err != nil { + // The only way to construct a Cursor with a non-nil cc field is to + // unmarshal from the byte representation. We panic if the unmarshal + // succeeds but the marshaling of the unchanged protobuf value fails. + panic(fmt.Sprintf("datastore: internal error: malformed cursor: %v", err)) + } + return strings.TrimRight(base64.URLEncoding.EncodeToString(b), "=") +} + +// Decode decodes a cursor from its base-64 string representation. +func DecodeCursor(s string) (Cursor, error) { + if s == "" { + return Cursor{&zeroCC}, nil + } + if n := len(s) % 4; n != 0 { + s += strings.Repeat("=", 4-n) + } + b, err := base64.URLEncoding.DecodeString(s) + if err != nil { + return Cursor{}, err + } + cc := &pb.CompiledCursor{} + if err := proto.Unmarshal(b, cc); err != nil { + return Cursor{}, err + } + return Cursor{cc}, nil +} diff --git a/vendor/google.golang.org/appengine/datastore/query_test.go b/vendor/google.golang.org/appengine/datastore/query_test.go new file mode 100644 index 000000000..45e5313ba --- /dev/null +++ b/vendor/google.golang.org/appengine/datastore/query_test.go @@ -0,0 +1,584 @@ +// Copyright 2011 Google Inc. All Rights Reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package datastore + +import ( + "errors" + "fmt" + "reflect" + "strings" + "testing" + + "github.com/golang/protobuf/proto" + + "google.golang.org/appengine/internal" + "google.golang.org/appengine/internal/aetesting" + pb "google.golang.org/appengine/internal/datastore" +) + +var ( + path1 = &pb.Path{ + Element: []*pb.Path_Element{ + { + Type: proto.String("Gopher"), + Id: proto.Int64(6), + }, + }, + } + path2 = &pb.Path{ + Element: []*pb.Path_Element{ + { + Type: proto.String("Gopher"), + Id: proto.Int64(6), + }, + { + Type: proto.String("Gopher"), + Id: proto.Int64(8), + }, + }, + } +) + +func fakeRunQuery(in *pb.Query, out *pb.QueryResult) error { + expectedIn := &pb.Query{ + App: proto.String("dev~fake-app"), + Kind: proto.String("Gopher"), + Compile: proto.Bool(true), + } + if !proto.Equal(in, expectedIn) { + return fmt.Errorf("unsupported argument: got %v want %v", in, expectedIn) + } + *out = pb.QueryResult{ + Result: []*pb.EntityProto{ + { + Key: &pb.Reference{ + App: proto.String("s~test-app"), + Path: path1, + }, + EntityGroup: path1, + Property: []*pb.Property{ + { + Meaning: pb.Property_TEXT.Enum(), + Name: proto.String("Name"), + Value: &pb.PropertyValue{ + StringValue: proto.String("George"), + }, + }, + { + Name: proto.String("Height"), + Value: &pb.PropertyValue{ + Int64Value: proto.Int64(32), + }, + }, + }, + }, + { + Key: &pb.Reference{ + App: proto.String("s~test-app"), + Path: path2, + }, + EntityGroup: path1, // ancestor is George + Property: []*pb.Property{ + { + Meaning: pb.Property_TEXT.Enum(), + Name: proto.String("Name"), + Value: &pb.PropertyValue{ + StringValue: proto.String("Rufus"), + }, + }, + // No height for Rufus. + }, + }, + }, + MoreResults: proto.Bool(false), + } + return nil +} + +type StructThatImplementsPLS struct{} + +func (StructThatImplementsPLS) Load(p []Property) error { return nil } +func (StructThatImplementsPLS) Save() ([]Property, error) { return nil, nil } + +var _ PropertyLoadSaver = StructThatImplementsPLS{} + +type StructPtrThatImplementsPLS struct{} + +func (*StructPtrThatImplementsPLS) Load(p []Property) error { return nil } +func (*StructPtrThatImplementsPLS) Save() ([]Property, error) { return nil, nil } + +var _ PropertyLoadSaver = &StructPtrThatImplementsPLS{} + +type PropertyMap map[string]Property + +func (m PropertyMap) Load(props []Property) error { + for _, p := range props { + if p.Multiple { + return errors.New("PropertyMap does not support multiple properties") + } + m[p.Name] = p + } + return nil +} + +func (m PropertyMap) Save() ([]Property, error) { + props := make([]Property, 0, len(m)) + for _, p := range m { + if p.Multiple { + return nil, errors.New("PropertyMap does not support multiple properties") + } + props = append(props, p) + } + return props, nil +} + +var _ PropertyLoadSaver = PropertyMap{} + +type Gopher struct { + Name string + Height int +} + +// typeOfEmptyInterface is the type of interface{}, but we can't use +// reflect.TypeOf((interface{})(nil)) directly because TypeOf takes an +// interface{}. +var typeOfEmptyInterface = reflect.TypeOf((*interface{})(nil)).Elem() + +func TestCheckMultiArg(t *testing.T) { + testCases := []struct { + v interface{} + mat multiArgType + elemType reflect.Type + }{ + // Invalid cases. + {nil, multiArgTypeInvalid, nil}, + {Gopher{}, multiArgTypeInvalid, nil}, + {&Gopher{}, multiArgTypeInvalid, nil}, + {PropertyList{}, multiArgTypeInvalid, nil}, // This is a special case. + {PropertyMap{}, multiArgTypeInvalid, nil}, + {[]*PropertyList(nil), multiArgTypeInvalid, nil}, + {[]*PropertyMap(nil), multiArgTypeInvalid, nil}, + {[]**Gopher(nil), multiArgTypeInvalid, nil}, + {[]*interface{}(nil), multiArgTypeInvalid, nil}, + // Valid cases. + { + []PropertyList(nil), + multiArgTypePropertyLoadSaver, + reflect.TypeOf(PropertyList{}), + }, + { + []PropertyMap(nil), + multiArgTypePropertyLoadSaver, + reflect.TypeOf(PropertyMap{}), + }, + { + []StructThatImplementsPLS(nil), + multiArgTypePropertyLoadSaver, + reflect.TypeOf(StructThatImplementsPLS{}), + }, + { + []StructPtrThatImplementsPLS(nil), + multiArgTypePropertyLoadSaver, + reflect.TypeOf(StructPtrThatImplementsPLS{}), + }, + { + []Gopher(nil), + multiArgTypeStruct, + reflect.TypeOf(Gopher{}), + }, + { + []*Gopher(nil), + multiArgTypeStructPtr, + reflect.TypeOf(Gopher{}), + }, + { + []interface{}(nil), + multiArgTypeInterface, + typeOfEmptyInterface, + }, + } + for _, tc := range testCases { + mat, elemType := checkMultiArg(reflect.ValueOf(tc.v)) + if mat != tc.mat || elemType != tc.elemType { + t.Errorf("checkMultiArg(%T): got %v, %v want %v, %v", + tc.v, mat, elemType, tc.mat, tc.elemType) + } + } +} + +func TestSimpleQuery(t *testing.T) { + struct1 := Gopher{Name: "George", Height: 32} + struct2 := Gopher{Name: "Rufus"} + pList1 := PropertyList{ + { + Name: "Name", + Value: "George", + }, + { + Name: "Height", + Value: int64(32), + }, + } + pList2 := PropertyList{ + { + Name: "Name", + Value: "Rufus", + }, + } + pMap1 := PropertyMap{ + "Name": Property{ + Name: "Name", + Value: "George", + }, + "Height": Property{ + Name: "Height", + Value: int64(32), + }, + } + pMap2 := PropertyMap{ + "Name": Property{ + Name: "Name", + Value: "Rufus", + }, + } + + testCases := []struct { + dst interface{} + want interface{} + }{ + // The destination must have type *[]P, *[]S or *[]*S, for some non-interface + // type P such that *P implements PropertyLoadSaver, or for some struct type S. + {new([]Gopher), &[]Gopher{struct1, struct2}}, + {new([]*Gopher), &[]*Gopher{&struct1, &struct2}}, + {new([]PropertyList), &[]PropertyList{pList1, pList2}}, + {new([]PropertyMap), &[]PropertyMap{pMap1, pMap2}}, + + // Any other destination type is invalid. + {0, nil}, + {Gopher{}, nil}, + {PropertyList{}, nil}, + {PropertyMap{}, nil}, + {[]int{}, nil}, + {[]Gopher{}, nil}, + {[]PropertyList{}, nil}, + {new(int), nil}, + {new(Gopher), nil}, + {new(PropertyList), nil}, // This is a special case. + {new(PropertyMap), nil}, + {new([]int), nil}, + {new([]map[int]int), nil}, + {new([]map[string]Property), nil}, + {new([]map[string]interface{}), nil}, + {new([]*int), nil}, + {new([]*map[int]int), nil}, + {new([]*map[string]Property), nil}, + {new([]*map[string]interface{}), nil}, + {new([]**Gopher), nil}, + {new([]*PropertyList), nil}, + {new([]*PropertyMap), nil}, + } + for _, tc := range testCases { + nCall := 0 + c := aetesting.FakeSingleContext(t, "datastore_v3", "RunQuery", func(in *pb.Query, out *pb.QueryResult) error { + nCall++ + return fakeRunQuery(in, out) + }) + c = internal.WithAppIDOverride(c, "dev~fake-app") + + var ( + expectedErr error + expectedNCall int + ) + if tc.want == nil { + expectedErr = ErrInvalidEntityType + } else { + expectedNCall = 1 + } + keys, err := NewQuery("Gopher").GetAll(c, tc.dst) + if err != expectedErr { + t.Errorf("dst type %T: got error [%v], want [%v]", tc.dst, err, expectedErr) + continue + } + if nCall != expectedNCall { + t.Errorf("dst type %T: Context.Call was called an incorrect number of times: got %d want %d", tc.dst, nCall, expectedNCall) + continue + } + if err != nil { + continue + } + + key1 := NewKey(c, "Gopher", "", 6, nil) + expectedKeys := []*Key{ + key1, + NewKey(c, "Gopher", "", 8, key1), + } + if l1, l2 := len(keys), len(expectedKeys); l1 != l2 { + t.Errorf("dst type %T: got %d keys, want %d keys", tc.dst, l1, l2) + continue + } + for i, key := range keys { + if key.AppID() != "s~test-app" { + t.Errorf(`dst type %T: Key #%d's AppID = %q, want "s~test-app"`, tc.dst, i, key.AppID()) + continue + } + if !keysEqual(key, expectedKeys[i]) { + t.Errorf("dst type %T: got key #%d %v, want %v", tc.dst, i, key, expectedKeys[i]) + continue + } + } + + if !reflect.DeepEqual(tc.dst, tc.want) { + t.Errorf("dst type %T: Entities got %+v, want %+v", tc.dst, tc.dst, tc.want) + continue + } + } +} + +// keysEqual is like (*Key).Equal, but ignores the App ID. +func keysEqual(a, b *Key) bool { + for a != nil && b != nil { + if a.Kind() != b.Kind() || a.StringID() != b.StringID() || a.IntID() != b.IntID() { + return false + } + a, b = a.Parent(), b.Parent() + } + return a == b +} + +func TestQueriesAreImmutable(t *testing.T) { + // Test that deriving q2 from q1 does not modify q1. + q0 := NewQuery("foo") + q1 := NewQuery("foo") + q2 := q1.Offset(2) + if !reflect.DeepEqual(q0, q1) { + t.Errorf("q0 and q1 were not equal") + } + if reflect.DeepEqual(q1, q2) { + t.Errorf("q1 and q2 were equal") + } + + // Test that deriving from q4 twice does not conflict, even though + // q4 has a long list of order clauses. This tests that the arrays + // backed by a query's slice of orders are not shared. + f := func() *Query { + q := NewQuery("bar") + // 47 is an ugly number that is unlikely to be near a re-allocation + // point in repeated append calls. For example, it's not near a power + // of 2 or a multiple of 10. + for i := 0; i < 47; i++ { + q = q.Order(fmt.Sprintf("x%d", i)) + } + return q + } + q3 := f().Order("y") + q4 := f() + q5 := q4.Order("y") + q6 := q4.Order("z") + if !reflect.DeepEqual(q3, q5) { + t.Errorf("q3 and q5 were not equal") + } + if reflect.DeepEqual(q5, q6) { + t.Errorf("q5 and q6 were equal") + } +} + +func TestFilterParser(t *testing.T) { + testCases := []struct { + filterStr string + wantOK bool + wantFieldName string + wantOp operator + }{ + // Supported ops. + {"x<", true, "x", lessThan}, + {"x <", true, "x", lessThan}, + {"x <", true, "x", lessThan}, + {" x < ", true, "x", lessThan}, + {"x <=", true, "x", lessEq}, + {"x =", true, "x", equal}, + {"x >=", true, "x", greaterEq}, + {"x >", true, "x", greaterThan}, + {"in >", true, "in", greaterThan}, + {"in>", true, "in", greaterThan}, + // Valid but (currently) unsupported ops. + {"x!=", false, "", 0}, + {"x !=", false, "", 0}, + {" x != ", false, "", 0}, + {"x IN", false, "", 0}, + {"x in", false, "", 0}, + // Invalid ops. + {"x EQ", false, "", 0}, + {"x lt", false, "", 0}, + {"x <>", false, "", 0}, + {"x >>", false, "", 0}, + {"x ==", false, "", 0}, + {"x =<", false, "", 0}, + {"x =>", false, "", 0}, + {"x !", false, "", 0}, + {"x ", false, "", 0}, + {"x", false, "", 0}, + } + for _, tc := range testCases { + q := NewQuery("foo").Filter(tc.filterStr, 42) + if ok := q.err == nil; ok != tc.wantOK { + t.Errorf("%q: ok=%t, want %t", tc.filterStr, ok, tc.wantOK) + continue + } + if !tc.wantOK { + continue + } + if len(q.filter) != 1 { + t.Errorf("%q: len=%d, want %d", tc.filterStr, len(q.filter), 1) + continue + } + got, want := q.filter[0], filter{tc.wantFieldName, tc.wantOp, 42} + if got != want { + t.Errorf("%q: got %v, want %v", tc.filterStr, got, want) + continue + } + } +} + +func TestQueryToProto(t *testing.T) { + // The context is required to make Keys for the test cases. + var got *pb.Query + NoErr := errors.New("No error") + c := aetesting.FakeSingleContext(t, "datastore_v3", "RunQuery", func(in *pb.Query, out *pb.QueryResult) error { + got = in + return NoErr // return a non-nil error so Run doesn't keep going. + }) + c = internal.WithAppIDOverride(c, "dev~fake-app") + + testCases := []struct { + desc string + query *Query + want *pb.Query + err string + }{ + { + desc: "empty", + query: NewQuery(""), + want: &pb.Query{}, + }, + { + desc: "standard query", + query: NewQuery("kind").Order("-I").Filter("I >", 17).Filter("U =", "Dave").Limit(7).Offset(42).BatchSize(5), + want: &pb.Query{ + Kind: proto.String("kind"), + Filter: []*pb.Query_Filter{ + { + Op: pb.Query_Filter_GREATER_THAN.Enum(), + Property: []*pb.Property{ + { + Name: proto.String("I"), + Value: &pb.PropertyValue{Int64Value: proto.Int64(17)}, + Multiple: proto.Bool(false), + }, + }, + }, + { + Op: pb.Query_Filter_EQUAL.Enum(), + Property: []*pb.Property{ + { + Name: proto.String("U"), + Value: &pb.PropertyValue{StringValue: proto.String("Dave")}, + Multiple: proto.Bool(false), + }, + }, + }, + }, + Order: []*pb.Query_Order{ + { + Property: proto.String("I"), + Direction: pb.Query_Order_DESCENDING.Enum(), + }, + }, + Limit: proto.Int32(7), + Offset: proto.Int32(42), + Count: proto.Int32(5), + }, + }, + { + desc: "ancestor", + query: NewQuery("").Ancestor(NewKey(c, "kind", "Mummy", 0, nil)), + want: &pb.Query{ + Ancestor: &pb.Reference{ + App: proto.String("dev~fake-app"), + Path: &pb.Path{ + Element: []*pb.Path_Element{{Type: proto.String("kind"), Name: proto.String("Mummy")}}, + }, + }, + }, + }, + { + desc: "projection", + query: NewQuery("").Project("A", "B"), + want: &pb.Query{ + PropertyName: []string{"A", "B"}, + }, + }, + { + desc: "projection with distinct", + query: NewQuery("").Project("A", "B").Distinct(), + want: &pb.Query{ + PropertyName: []string{"A", "B"}, + GroupByPropertyName: []string{"A", "B"}, + }, + }, + { + desc: "keys only", + query: NewQuery("").KeysOnly(), + want: &pb.Query{ + KeysOnly: proto.Bool(true), + RequirePerfectPlan: proto.Bool(true), + }, + }, + { + desc: "empty filter", + query: NewQuery("kind").Filter("=", 17), + err: "empty query filter field nam", + }, + { + desc: "bad filter type", + query: NewQuery("kind").Filter("M =", map[string]bool{}), + err: "bad query filter value type", + }, + { + desc: "bad filter operator", + query: NewQuery("kind").Filter("I <<=", 17), + err: `invalid operator "<<=" in filter "I <<="`, + }, + { + desc: "empty order", + query: NewQuery("kind").Order(""), + err: "empty order", + }, + { + desc: "bad order direction", + query: NewQuery("kind").Order("+I"), + err: `invalid order: "+I`, + }, + } + + for _, tt := range testCases { + got = nil + if _, err := tt.query.Run(c).Next(nil); err != NoErr { + if tt.err == "" || !strings.Contains(err.Error(), tt.err) { + t.Errorf("%s: error %v, want %q", tt.desc, err, tt.err) + } + continue + } + if tt.err != "" { + t.Errorf("%s: no error, want %q", tt.desc, tt.err) + continue + } + // Fields that are common to all protos. + tt.want.App = proto.String("dev~fake-app") + tt.want.Compile = proto.Bool(true) + if !proto.Equal(got, tt.want) { + t.Errorf("%s:\ngot %v\nwant %v", tt.desc, got, tt.want) + } + } +} diff --git a/vendor/google.golang.org/appengine/datastore/save.go b/vendor/google.golang.org/appengine/datastore/save.go new file mode 100644 index 000000000..7b045a595 --- /dev/null +++ b/vendor/google.golang.org/appengine/datastore/save.go @@ -0,0 +1,333 @@ +// Copyright 2011 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package datastore + +import ( + "errors" + "fmt" + "math" + "reflect" + "time" + + "github.com/golang/protobuf/proto" + + "google.golang.org/appengine" + pb "google.golang.org/appengine/internal/datastore" +) + +func toUnixMicro(t time.Time) int64 { + // We cannot use t.UnixNano() / 1e3 because we want to handle times more than + // 2^63 nanoseconds (which is about 292 years) away from 1970, and those cannot + // be represented in the numerator of a single int64 divide. + return t.Unix()*1e6 + int64(t.Nanosecond()/1e3) +} + +func fromUnixMicro(t int64) time.Time { + return time.Unix(t/1e6, (t%1e6)*1e3).UTC() +} + +var ( + minTime = time.Unix(int64(math.MinInt64)/1e6, (int64(math.MinInt64)%1e6)*1e3) + maxTime = time.Unix(int64(math.MaxInt64)/1e6, (int64(math.MaxInt64)%1e6)*1e3) +) + +// valueToProto converts a named value to a newly allocated Property. +// The returned error string is empty on success. +func valueToProto(defaultAppID, name string, v reflect.Value, multiple bool) (p *pb.Property, errStr string) { + var ( + pv pb.PropertyValue + unsupported bool + ) + switch v.Kind() { + case reflect.Invalid: + // No-op. + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + pv.Int64Value = proto.Int64(v.Int()) + case reflect.Bool: + pv.BooleanValue = proto.Bool(v.Bool()) + case reflect.String: + pv.StringValue = proto.String(v.String()) + case reflect.Float32, reflect.Float64: + pv.DoubleValue = proto.Float64(v.Float()) + case reflect.Ptr: + if k, ok := v.Interface().(*Key); ok { + if k != nil { + pv.Referencevalue = keyToReferenceValue(defaultAppID, k) + } + } else { + unsupported = true + } + case reflect.Struct: + switch t := v.Interface().(type) { + case time.Time: + if t.Before(minTime) || t.After(maxTime) { + return nil, "time value out of range" + } + pv.Int64Value = proto.Int64(toUnixMicro(t)) + case appengine.GeoPoint: + if !t.Valid() { + return nil, "invalid GeoPoint value" + } + // NOTE: Strangely, latitude maps to X, longitude to Y. + pv.Pointvalue = &pb.PropertyValue_PointValue{X: &t.Lat, Y: &t.Lng} + default: + unsupported = true + } + case reflect.Slice: + if b, ok := v.Interface().([]byte); ok { + pv.StringValue = proto.String(string(b)) + } else { + // nvToProto should already catch slice values. + // If we get here, we have a slice of slice values. + unsupported = true + } + default: + unsupported = true + } + if unsupported { + return nil, "unsupported datastore value type: " + v.Type().String() + } + p = &pb.Property{ + Name: proto.String(name), + Value: &pv, + Multiple: proto.Bool(multiple), + } + if v.IsValid() { + switch v.Interface().(type) { + case []byte: + p.Meaning = pb.Property_BLOB.Enum() + case ByteString: + p.Meaning = pb.Property_BYTESTRING.Enum() + case appengine.BlobKey: + p.Meaning = pb.Property_BLOBKEY.Enum() + case time.Time: + p.Meaning = pb.Property_GD_WHEN.Enum() + case appengine.GeoPoint: + p.Meaning = pb.Property_GEORSS_POINT.Enum() + } + } + return p, "" +} + +type saveOpts struct { + noIndex bool + multiple bool + omitEmpty bool +} + +// saveEntity saves an EntityProto into a PropertyLoadSaver or struct pointer. +func saveEntity(defaultAppID string, key *Key, src interface{}) (*pb.EntityProto, error) { + var err error + var props []Property + if e, ok := src.(PropertyLoadSaver); ok { + props, err = e.Save() + } else { + props, err = SaveStruct(src) + } + if err != nil { + return nil, err + } + return propertiesToProto(defaultAppID, key, props) +} + +func saveStructProperty(props *[]Property, name string, opts saveOpts, v reflect.Value) error { + if opts.omitEmpty && isEmptyValue(v) { + return nil + } + p := Property{ + Name: name, + NoIndex: opts.noIndex, + Multiple: opts.multiple, + } + switch x := v.Interface().(type) { + case *Key: + p.Value = x + case time.Time: + p.Value = x + case appengine.BlobKey: + p.Value = x + case appengine.GeoPoint: + p.Value = x + case ByteString: + p.Value = x + default: + switch v.Kind() { + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + p.Value = v.Int() + case reflect.Bool: + p.Value = v.Bool() + case reflect.String: + p.Value = v.String() + case reflect.Float32, reflect.Float64: + p.Value = v.Float() + case reflect.Slice: + if v.Type().Elem().Kind() == reflect.Uint8 { + p.NoIndex = true + p.Value = v.Bytes() + } + case reflect.Struct: + if !v.CanAddr() { + return fmt.Errorf("datastore: unsupported struct field: value is unaddressable") + } + sub, err := newStructPLS(v.Addr().Interface()) + if err != nil { + return fmt.Errorf("datastore: unsupported struct field: %v", err) + } + return sub.save(props, name+".", opts) + } + } + if p.Value == nil { + return fmt.Errorf("datastore: unsupported struct field type: %v", v.Type()) + } + *props = append(*props, p) + return nil +} + +func (s structPLS) Save() ([]Property, error) { + var props []Property + if err := s.save(&props, "", saveOpts{}); err != nil { + return nil, err + } + return props, nil +} + +func (s structPLS) save(props *[]Property, prefix string, opts saveOpts) error { + for name, f := range s.codec.fields { + name = prefix + name + v := s.v.FieldByIndex(f.path) + if !v.IsValid() || !v.CanSet() { + continue + } + var opts1 saveOpts + opts1.noIndex = opts.noIndex || f.noIndex + opts1.multiple = opts.multiple + opts1.omitEmpty = f.omitEmpty // don't propagate + // For slice fields that aren't []byte, save each element. + if v.Kind() == reflect.Slice && v.Type().Elem().Kind() != reflect.Uint8 { + opts1.multiple = true + for j := 0; j < v.Len(); j++ { + if err := saveStructProperty(props, name, opts1, v.Index(j)); err != nil { + return err + } + } + continue + } + // Otherwise, save the field itself. + if err := saveStructProperty(props, name, opts1, v); err != nil { + return err + } + } + return nil +} + +func propertiesToProto(defaultAppID string, key *Key, props []Property) (*pb.EntityProto, error) { + e := &pb.EntityProto{ + Key: keyToProto(defaultAppID, key), + } + if key.parent == nil { + e.EntityGroup = &pb.Path{} + } else { + e.EntityGroup = keyToProto(defaultAppID, key.root()).Path + } + prevMultiple := make(map[string]bool) + + for _, p := range props { + if pm, ok := prevMultiple[p.Name]; ok { + if !pm || !p.Multiple { + return nil, fmt.Errorf("datastore: multiple Properties with Name %q, but Multiple is false", p.Name) + } + } else { + prevMultiple[p.Name] = p.Multiple + } + + x := &pb.Property{ + Name: proto.String(p.Name), + Value: new(pb.PropertyValue), + Multiple: proto.Bool(p.Multiple), + } + switch v := p.Value.(type) { + case int64: + x.Value.Int64Value = proto.Int64(v) + case bool: + x.Value.BooleanValue = proto.Bool(v) + case string: + x.Value.StringValue = proto.String(v) + if p.NoIndex { + x.Meaning = pb.Property_TEXT.Enum() + } + case float64: + x.Value.DoubleValue = proto.Float64(v) + case *Key: + if v != nil { + x.Value.Referencevalue = keyToReferenceValue(defaultAppID, v) + } + case time.Time: + if v.Before(minTime) || v.After(maxTime) { + return nil, fmt.Errorf("datastore: time value out of range") + } + x.Value.Int64Value = proto.Int64(toUnixMicro(v)) + x.Meaning = pb.Property_GD_WHEN.Enum() + case appengine.BlobKey: + x.Value.StringValue = proto.String(string(v)) + x.Meaning = pb.Property_BLOBKEY.Enum() + case appengine.GeoPoint: + if !v.Valid() { + return nil, fmt.Errorf("datastore: invalid GeoPoint value") + } + // NOTE: Strangely, latitude maps to X, longitude to Y. + x.Value.Pointvalue = &pb.PropertyValue_PointValue{X: &v.Lat, Y: &v.Lng} + x.Meaning = pb.Property_GEORSS_POINT.Enum() + case []byte: + x.Value.StringValue = proto.String(string(v)) + x.Meaning = pb.Property_BLOB.Enum() + if !p.NoIndex { + return nil, fmt.Errorf("datastore: cannot index a []byte valued Property with Name %q", p.Name) + } + case ByteString: + x.Value.StringValue = proto.String(string(v)) + x.Meaning = pb.Property_BYTESTRING.Enum() + default: + if p.Value != nil { + return nil, fmt.Errorf("datastore: invalid Value type for a Property with Name %q", p.Name) + } + } + + if p.NoIndex { + e.RawProperty = append(e.RawProperty, x) + } else { + e.Property = append(e.Property, x) + if len(e.Property) > maxIndexedProperties { + return nil, errors.New("datastore: too many indexed properties") + } + } + } + return e, nil +} + +// isEmptyValue is taken from the encoding/json package in the standard library. +func isEmptyValue(v reflect.Value) bool { + switch v.Kind() { + case reflect.Array, reflect.Map, reflect.Slice, reflect.String: + // TODO(perfomance): Only reflect.String needed, other property types are not supported (copy/paste from json package) + return v.Len() == 0 + case reflect.Bool: + return !v.Bool() + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + return v.Int() == 0 + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: + // TODO(perfomance): Uint* are unsupported property types - should be removed (copy/paste from json package) + return v.Uint() == 0 + case reflect.Float32, reflect.Float64: + return v.Float() == 0 + case reflect.Interface, reflect.Ptr: + return v.IsNil() + case reflect.Struct: + switch x := v.Interface().(type) { + case time.Time: + return x.IsZero() + } + } + return false +} diff --git a/vendor/google.golang.org/appengine/datastore/time_test.go b/vendor/google.golang.org/appengine/datastore/time_test.go new file mode 100644 index 000000000..ba74b449e --- /dev/null +++ b/vendor/google.golang.org/appengine/datastore/time_test.go @@ -0,0 +1,65 @@ +// Copyright 2012 Google Inc. All Rights Reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package datastore + +import ( + "testing" + "time" +) + +func TestUnixMicro(t *testing.T) { + // Test that all these time.Time values survive a round trip to unix micros. + testCases := []time.Time{ + {}, + time.Date(2, 1, 1, 0, 0, 0, 0, time.UTC), + time.Date(23, 1, 1, 0, 0, 0, 0, time.UTC), + time.Date(234, 1, 1, 0, 0, 0, 0, time.UTC), + time.Date(1000, 1, 1, 0, 0, 0, 0, time.UTC), + time.Date(1600, 1, 1, 0, 0, 0, 0, time.UTC), + time.Date(1700, 1, 1, 0, 0, 0, 0, time.UTC), + time.Date(1800, 1, 1, 0, 0, 0, 0, time.UTC), + time.Date(1900, 1, 1, 0, 0, 0, 0, time.UTC), + time.Unix(-1e6, -1000), + time.Unix(-1e6, 0), + time.Unix(-1e6, +1000), + time.Unix(-60, -1000), + time.Unix(-60, 0), + time.Unix(-60, +1000), + time.Unix(-1, -1000), + time.Unix(-1, 0), + time.Unix(-1, +1000), + time.Unix(0, -3000), + time.Unix(0, -2000), + time.Unix(0, -1000), + time.Unix(0, 0), + time.Unix(0, +1000), + time.Unix(0, +2000), + time.Unix(+60, -1000), + time.Unix(+60, 0), + time.Unix(+60, +1000), + time.Unix(+1e6, -1000), + time.Unix(+1e6, 0), + time.Unix(+1e6, +1000), + time.Date(1999, 12, 31, 23, 59, 59, 999000, time.UTC), + time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC), + time.Date(2006, 1, 2, 15, 4, 5, 678000, time.UTC), + time.Date(2009, 11, 10, 23, 0, 0, 0, time.UTC), + time.Date(3456, 1, 1, 0, 0, 0, 0, time.UTC), + } + for _, tc := range testCases { + got := fromUnixMicro(toUnixMicro(tc)) + if !got.Equal(tc) { + t.Errorf("got %q, want %q", got, tc) + } + } + + // Test that a time.Time that isn't an integral number of microseconds + // is not perfectly reconstructed after a round trip. + t0 := time.Unix(0, 123) + t1 := fromUnixMicro(toUnixMicro(t0)) + if t1.Nanosecond()%1000 != 0 || t0.Nanosecond()%1000 == 0 { + t.Errorf("quantization to µs: got %q with %d ns, started with %d ns", t1, t1.Nanosecond(), t0.Nanosecond()) + } +} diff --git a/vendor/google.golang.org/appengine/datastore/transaction.go b/vendor/google.golang.org/appengine/datastore/transaction.go new file mode 100644 index 000000000..2ae8428f8 --- /dev/null +++ b/vendor/google.golang.org/appengine/datastore/transaction.go @@ -0,0 +1,96 @@ +// Copyright 2011 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package datastore + +import ( + "errors" + + "golang.org/x/net/context" + + "google.golang.org/appengine/internal" + pb "google.golang.org/appengine/internal/datastore" +) + +func init() { + internal.RegisterTransactionSetter(func(x *pb.Query, t *pb.Transaction) { + x.Transaction = t + }) + internal.RegisterTransactionSetter(func(x *pb.GetRequest, t *pb.Transaction) { + x.Transaction = t + }) + internal.RegisterTransactionSetter(func(x *pb.PutRequest, t *pb.Transaction) { + x.Transaction = t + }) + internal.RegisterTransactionSetter(func(x *pb.DeleteRequest, t *pb.Transaction) { + x.Transaction = t + }) +} + +// ErrConcurrentTransaction is returned when a transaction is rolled back due +// to a conflict with a concurrent transaction. +var ErrConcurrentTransaction = errors.New("datastore: concurrent transaction") + +// RunInTransaction runs f in a transaction. It calls f with a transaction +// context tc that f should use for all App Engine operations. +// +// If f returns nil, RunInTransaction attempts to commit the transaction, +// returning nil if it succeeds. If the commit fails due to a conflicting +// transaction, RunInTransaction retries f, each time with a new transaction +// context. It gives up and returns ErrConcurrentTransaction after three +// failed attempts. The number of attempts can be configured by specifying +// TransactionOptions.Attempts. +// +// If f returns non-nil, then any datastore changes will not be applied and +// RunInTransaction returns that same error. The function f is not retried. +// +// Note that when f returns, the transaction is not yet committed. Calling code +// must be careful not to assume that any of f's changes have been committed +// until RunInTransaction returns nil. +// +// Since f may be called multiple times, f should usually be idempotent. +// datastore.Get is not idempotent when unmarshaling slice fields. +// +// Nested transactions are not supported; c may not be a transaction context. +func RunInTransaction(c context.Context, f func(tc context.Context) error, opts *TransactionOptions) error { + xg := false + if opts != nil { + xg = opts.XG + } + readOnly := false + if opts != nil { + readOnly = opts.ReadOnly + } + attempts := 3 + if opts != nil && opts.Attempts > 0 { + attempts = opts.Attempts + } + var t *pb.Transaction + var err error + for i := 0; i < attempts; i++ { + if t, err = internal.RunTransactionOnce(c, f, xg, readOnly, t); err != internal.ErrConcurrentTransaction { + return err + } + } + return ErrConcurrentTransaction +} + +// TransactionOptions are the options for running a transaction. +type TransactionOptions struct { + // XG is whether the transaction can cross multiple entity groups. In + // comparison, a single group transaction is one where all datastore keys + // used have the same root key. Note that cross group transactions do not + // have the same behavior as single group transactions. In particular, it + // is much more likely to see partially applied transactions in different + // entity groups, in global queries. + // It is valid to set XG to true even if the transaction is within a + // single entity group. + XG bool + // Attempts controls the number of retries to perform when commits fail + // due to a conflicting transaction. If omitted, it defaults to 3. + Attempts int + // ReadOnly controls whether the transaction is a read only transaction. + // Read only transactions are potentially more efficient. + ReadOnly bool +} diff --git a/vendor/google.golang.org/appengine/delay/delay.go b/vendor/google.golang.org/appengine/delay/delay.go new file mode 100644 index 000000000..a5d818602 --- /dev/null +++ b/vendor/google.golang.org/appengine/delay/delay.go @@ -0,0 +1,360 @@ +// Copyright 2011 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +/* +Package delay provides a way to execute code outside the scope of a +user request by using the taskqueue API. + +To declare a function that may be executed later, call Func +in a top-level assignment context, passing it an arbitrary string key +and a function whose first argument is of type context.Context. +The key is used to look up the function so it can be called later. + var laterFunc = delay.Func("key", myFunc) +It is also possible to use a function literal. + var laterFunc = delay.Func("key", func(c context.Context, x string) { + // ... + }) + +To call a function, invoke its Call method. + laterFunc.Call(c, "something") +A function may be called any number of times. If the function has any +return arguments, and the last one is of type error, the function may +return a non-nil error to signal that the function should be retried. + +The arguments to functions may be of any type that is encodable by the gob +package. If an argument is of interface type, it is the client's responsibility +to register with the gob package whatever concrete type may be passed for that +argument; see http://golang.org/pkg/gob/#Register for details. + +Any errors during initialization or execution of a function will be +logged to the application logs. Error logs that occur during initialization will +be associated with the request that invoked the Call method. + +The state of a function invocation that has not yet successfully +executed is preserved by combining the file name in which it is declared +with the string key that was passed to the Func function. Updating an app +with pending function invocations should safe as long as the relevant +functions have the (filename, key) combination preserved. The filename is +parsed according to these rules: + * Paths in package main are shortened to just the file name (github.com/foo/foo.go -> foo.go) + * Paths are stripped to just package paths (/go/src/github.com/foo/bar.go -> github.com/foo/bar.go) + * Module versions are stripped (/go/pkg/mod/github.com/foo/bar@v0.0.0-20181026220418-f595d03440dc/baz.go -> github.com/foo/bar/baz.go) + +There is some inherent risk of pending function invocations being lost during +an update that contains large changes. For example, switching from using GOPATH +to go.mod is a large change that may inadvertently cause file paths to change. + +The delay package uses the Task Queue API to create tasks that call the +reserved application path "/_ah/queue/go/delay". +This path must not be marked as "login: required" in app.yaml; +it must be marked as "login: admin" or have no access restriction. +*/ +package delay // import "google.golang.org/appengine/delay" + +import ( + "bytes" + stdctx "context" + "encoding/gob" + "errors" + "fmt" + "go/build" + stdlog "log" + "net/http" + "path/filepath" + "reflect" + "regexp" + "runtime" + "strings" + + "golang.org/x/net/context" + + "google.golang.org/appengine" + "google.golang.org/appengine/internal" + "google.golang.org/appengine/log" + "google.golang.org/appengine/taskqueue" +) + +// Function represents a function that may have a delayed invocation. +type Function struct { + fv reflect.Value // Kind() == reflect.Func + key string + err error // any error during initialization +} + +const ( + // The HTTP path for invocations. + path = "/_ah/queue/go/delay" + // Use the default queue. + queue = "" +) + +type contextKey int + +var ( + // registry of all delayed functions + funcs = make(map[string]*Function) + + // precomputed types + errorType = reflect.TypeOf((*error)(nil)).Elem() + + // errors + errFirstArg = errors.New("first argument must be context.Context") + errOutsideDelayFunc = errors.New("request headers are only available inside a delay.Func") + + // context keys + headersContextKey contextKey = 0 + stdContextType = reflect.TypeOf((*stdctx.Context)(nil)).Elem() + netContextType = reflect.TypeOf((*context.Context)(nil)).Elem() +) + +func isContext(t reflect.Type) bool { + return t == stdContextType || t == netContextType +} + +var modVersionPat = regexp.MustCompile("@v[^/]+") + +// fileKey finds a stable representation of the caller's file path. +// For calls from package main: strip all leading path entries, leaving just the filename. +// For calls from anywhere else, strip $GOPATH/src, leaving just the package path and file path. +func fileKey(file string) (string, error) { + if !internal.IsSecondGen() || internal.MainPath == "" { + return file, nil + } + // If the caller is in the same Dir as mainPath, then strip everything but the file name. + if filepath.Dir(file) == internal.MainPath { + return filepath.Base(file), nil + } + // If the path contains "_gopath/src/", which is what the builder uses for + // apps which don't use go modules, strip everything up to and including src. + // Or, if the path starts with /tmp/staging, then we're importing a package + // from the app's module (and we must be using go modules), and we have a + // path like /tmp/staging1234/srv/... so strip everything up to and + // including the first /srv/. + // And be sure to look at the GOPATH, for local development. + s := string(filepath.Separator) + for _, s := range []string{filepath.Join("_gopath", "src") + s, s + "srv" + s, filepath.Join(build.Default.GOPATH, "src") + s} { + if idx := strings.Index(file, s); idx > 0 { + return file[idx+len(s):], nil + } + } + + // Finally, if that all fails then we must be using go modules, and the file is a module, + // so the path looks like /go/pkg/mod/github.com/foo/bar@v0.0.0-20181026220418-f595d03440dc/baz.go + // So... remove everything up to and including mod, plus the @.... version string. + m := "/mod/" + if idx := strings.Index(file, m); idx > 0 { + file = file[idx+len(m):] + } else { + return file, fmt.Errorf("fileKey: unknown file path format for %q", file) + } + return modVersionPat.ReplaceAllString(file, ""), nil +} + +// Func declares a new Function. The second argument must be a function with a +// first argument of type context.Context. +// This function must be called at program initialization time. That means it +// must be called in a global variable declaration or from an init function. +// This restriction is necessary because the instance that delays a function +// call may not be the one that executes it. Only the code executed at program +// initialization time is guaranteed to have been run by an instance before it +// receives a request. +func Func(key string, i interface{}) *Function { + f := &Function{fv: reflect.ValueOf(i)} + + // Derive unique, somewhat stable key for this func. + _, file, _, _ := runtime.Caller(1) + fk, err := fileKey(file) + if err != nil { + // Not fatal, but log the error + stdlog.Printf("delay: %v", err) + } + f.key = fk + ":" + key + + t := f.fv.Type() + if t.Kind() != reflect.Func { + f.err = errors.New("not a function") + return f + } + if t.NumIn() == 0 || !isContext(t.In(0)) { + f.err = errFirstArg + return f + } + + // Register the function's arguments with the gob package. + // This is required because they are marshaled inside a []interface{}. + // gob.Register only expects to be called during initialization; + // that's fine because this function expects the same. + for i := 0; i < t.NumIn(); i++ { + // Only concrete types may be registered. If the argument has + // interface type, the client is resposible for registering the + // concrete types it will hold. + if t.In(i).Kind() == reflect.Interface { + continue + } + gob.Register(reflect.Zero(t.In(i)).Interface()) + } + + if old := funcs[f.key]; old != nil { + old.err = fmt.Errorf("multiple functions registered for %s in %s", key, file) + } + funcs[f.key] = f + return f +} + +type invocation struct { + Key string + Args []interface{} +} + +// Call invokes a delayed function. +// err := f.Call(c, ...) +// is equivalent to +// t, _ := f.Task(...) +// _, err := taskqueue.Add(c, t, "") +func (f *Function) Call(c context.Context, args ...interface{}) error { + t, err := f.Task(args...) + if err != nil { + return err + } + _, err = taskqueueAdder(c, t, queue) + return err +} + +// Task creates a Task that will invoke the function. +// Its parameters may be tweaked before adding it to a queue. +// Users should not modify the Path or Payload fields of the returned Task. +func (f *Function) Task(args ...interface{}) (*taskqueue.Task, error) { + if f.err != nil { + return nil, fmt.Errorf("delay: func is invalid: %v", f.err) + } + + nArgs := len(args) + 1 // +1 for the context.Context + ft := f.fv.Type() + minArgs := ft.NumIn() + if ft.IsVariadic() { + minArgs-- + } + if nArgs < minArgs { + return nil, fmt.Errorf("delay: too few arguments to func: %d < %d", nArgs, minArgs) + } + if !ft.IsVariadic() && nArgs > minArgs { + return nil, fmt.Errorf("delay: too many arguments to func: %d > %d", nArgs, minArgs) + } + + // Check arg types. + for i := 1; i < nArgs; i++ { + at := reflect.TypeOf(args[i-1]) + var dt reflect.Type + if i < minArgs { + // not a variadic arg + dt = ft.In(i) + } else { + // a variadic arg + dt = ft.In(minArgs).Elem() + } + // nil arguments won't have a type, so they need special handling. + if at == nil { + // nil interface + switch dt.Kind() { + case reflect.Chan, reflect.Func, reflect.Interface, reflect.Map, reflect.Ptr, reflect.Slice: + continue // may be nil + } + return nil, fmt.Errorf("delay: argument %d has wrong type: %v is not nilable", i, dt) + } + switch at.Kind() { + case reflect.Chan, reflect.Func, reflect.Interface, reflect.Map, reflect.Ptr, reflect.Slice: + av := reflect.ValueOf(args[i-1]) + if av.IsNil() { + // nil value in interface; not supported by gob, so we replace it + // with a nil interface value + args[i-1] = nil + } + } + if !at.AssignableTo(dt) { + return nil, fmt.Errorf("delay: argument %d has wrong type: %v is not assignable to %v", i, at, dt) + } + } + + inv := invocation{ + Key: f.key, + Args: args, + } + + buf := new(bytes.Buffer) + if err := gob.NewEncoder(buf).Encode(inv); err != nil { + return nil, fmt.Errorf("delay: gob encoding failed: %v", err) + } + + return &taskqueue.Task{ + Path: path, + Payload: buf.Bytes(), + }, nil +} + +// Request returns the special task-queue HTTP request headers for the current +// task queue handler. Returns an error if called from outside a delay.Func. +func RequestHeaders(c context.Context) (*taskqueue.RequestHeaders, error) { + if ret, ok := c.Value(headersContextKey).(*taskqueue.RequestHeaders); ok { + return ret, nil + } + return nil, errOutsideDelayFunc +} + +var taskqueueAdder = taskqueue.Add // for testing + +func init() { + http.HandleFunc(path, func(w http.ResponseWriter, req *http.Request) { + runFunc(appengine.NewContext(req), w, req) + }) +} + +func runFunc(c context.Context, w http.ResponseWriter, req *http.Request) { + defer req.Body.Close() + + c = context.WithValue(c, headersContextKey, taskqueue.ParseRequestHeaders(req.Header)) + + var inv invocation + if err := gob.NewDecoder(req.Body).Decode(&inv); err != nil { + log.Errorf(c, "delay: failed decoding task payload: %v", err) + log.Warningf(c, "delay: dropping task") + return + } + + f := funcs[inv.Key] + if f == nil { + log.Errorf(c, "delay: no func with key %q found", inv.Key) + log.Warningf(c, "delay: dropping task") + return + } + + ft := f.fv.Type() + in := []reflect.Value{reflect.ValueOf(c)} + for _, arg := range inv.Args { + var v reflect.Value + if arg != nil { + v = reflect.ValueOf(arg) + } else { + // Task was passed a nil argument, so we must construct + // the zero value for the argument here. + n := len(in) // we're constructing the nth argument + var at reflect.Type + if !ft.IsVariadic() || n < ft.NumIn()-1 { + at = ft.In(n) + } else { + at = ft.In(ft.NumIn() - 1).Elem() + } + v = reflect.Zero(at) + } + in = append(in, v) + } + out := f.fv.Call(in) + + if n := ft.NumOut(); n > 0 && ft.Out(n-1) == errorType { + if errv := out[n-1]; !errv.IsNil() { + log.Errorf(c, "delay: func failed (will retry): %v", errv.Interface()) + w.WriteHeader(http.StatusInternalServerError) + return + } + } +} diff --git a/vendor/google.golang.org/appengine/delay/delay_test.go b/vendor/google.golang.org/appengine/delay/delay_test.go new file mode 100644 index 000000000..06f2912ea --- /dev/null +++ b/vendor/google.golang.org/appengine/delay/delay_test.go @@ -0,0 +1,541 @@ +// Copyright 2011 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package delay + +import ( + "bytes" + stdctx "context" + "encoding/gob" + "errors" + "fmt" + "net/http" + "net/http/httptest" + "os" + "path/filepath" + "reflect" + "testing" + + "github.com/golang/protobuf/proto" + "golang.org/x/net/context" + + "google.golang.org/appengine/internal" + "google.golang.org/appengine/taskqueue" +) + +type CustomType struct { + N int +} + +type CustomInterface interface { + N() int +} + +type CustomImpl int + +func (c CustomImpl) N() int { return int(c) } + +// CustomImpl needs to be registered with gob. +func init() { + gob.Register(CustomImpl(0)) +} + +var ( + invalidFunc = Func("invalid", func() {}) + + regFuncRuns = 0 + regFuncMsg = "" + regFunc = Func("reg", func(c context.Context, arg string) { + regFuncRuns++ + regFuncMsg = arg + }) + + custFuncTally = 0 + custFunc = Func("cust", func(c context.Context, ct *CustomType, ci CustomInterface) { + a, b := 2, 3 + if ct != nil { + a = ct.N + } + if ci != nil { + b = ci.N() + } + custFuncTally += a + b + }) + + anotherCustFunc = Func("cust2", func(c context.Context, n int, ct *CustomType, ci CustomInterface) { + }) + + varFuncMsg = "" + varFunc = Func("variadic", func(c context.Context, format string, args ...int) { + // convert []int to []interface{} for fmt.Sprintf. + as := make([]interface{}, len(args)) + for i, a := range args { + as[i] = a + } + varFuncMsg = fmt.Sprintf(format, as...) + }) + + errFuncRuns = 0 + errFuncErr = errors.New("error!") + errFunc = Func("err", func(c context.Context) error { + errFuncRuns++ + if errFuncRuns == 1 { + return nil + } + return errFuncErr + }) + + dupeWhich = 0 + dupe1Func = Func("dupe", func(c context.Context) { + if dupeWhich == 0 { + dupeWhich = 1 + } + }) + dupe2Func = Func("dupe", func(c context.Context) { + if dupeWhich == 0 { + dupeWhich = 2 + } + }) + + reqFuncRuns = 0 + reqFuncHeaders *taskqueue.RequestHeaders + reqFuncErr error + reqFunc = Func("req", func(c context.Context) { + reqFuncRuns++ + reqFuncHeaders, reqFuncErr = RequestHeaders(c) + }) + + stdCtxRuns = 0 + stdCtxFunc = Func("stdctx", func(c stdctx.Context) { + stdCtxRuns++ + }) +) + +type fakeContext struct { + ctx context.Context + logging [][]interface{} +} + +func newFakeContext() *fakeContext { + f := new(fakeContext) + f.ctx = internal.WithCallOverride(context.Background(), f.call) + f.ctx = internal.WithLogOverride(f.ctx, f.logf) + return f +} + +func (f *fakeContext) call(ctx context.Context, service, method string, in, out proto.Message) error { + panic("should never be called") +} + +var logLevels = map[int64]string{1: "INFO", 3: "ERROR"} + +func (f *fakeContext) logf(level int64, format string, args ...interface{}) { + f.logging = append(f.logging, append([]interface{}{logLevels[level], format}, args...)) +} + +func TestInvalidFunction(t *testing.T) { + c := newFakeContext() + + if got, want := invalidFunc.Call(c.ctx), fmt.Errorf("delay: func is invalid: %s", errFirstArg); got.Error() != want.Error() { + t.Errorf("Incorrect error: got %q, want %q", got, want) + } +} + +func TestVariadicFunctionArguments(t *testing.T) { + // Check the argument type validation for variadic functions. + + c := newFakeContext() + + calls := 0 + taskqueueAdder = func(c context.Context, t *taskqueue.Task, _ string) (*taskqueue.Task, error) { + calls++ + return t, nil + } + + varFunc.Call(c.ctx, "hi") + varFunc.Call(c.ctx, "%d", 12) + varFunc.Call(c.ctx, "%d %d %d", 3, 1, 4) + if calls != 3 { + t.Errorf("Got %d calls to taskqueueAdder, want 3", calls) + } + + if got, want := varFunc.Call(c.ctx, "%d %s", 12, "a string is bad"), errors.New("delay: argument 3 has wrong type: string is not assignable to int"); got.Error() != want.Error() { + t.Errorf("Incorrect error: got %q, want %q", got, want) + } +} + +func TestBadArguments(t *testing.T) { + // Try running regFunc with different sets of inappropriate arguments. + + c := newFakeContext() + + tests := []struct { + args []interface{} // all except context + wantErr string + }{ + { + args: nil, + wantErr: "delay: too few arguments to func: 1 < 2", + }, + { + args: []interface{}{"lala", 53}, + wantErr: "delay: too many arguments to func: 3 > 2", + }, + { + args: []interface{}{53}, + wantErr: "delay: argument 1 has wrong type: int is not assignable to string", + }, + } + for i, tc := range tests { + got := regFunc.Call(c.ctx, tc.args...) + if got.Error() != tc.wantErr { + t.Errorf("Call %v: got %q, want %q", i, got, tc.wantErr) + } + } +} + +func TestRunningFunction(t *testing.T) { + c := newFakeContext() + + // Fake out the adding of a task. + var task *taskqueue.Task + taskqueueAdder = func(_ context.Context, tk *taskqueue.Task, queue string) (*taskqueue.Task, error) { + if queue != "" { + t.Errorf(`Got queue %q, expected ""`, queue) + } + task = tk + return tk, nil + } + + regFuncRuns, regFuncMsg = 0, "" // reset state + const msg = "Why, hello!" + regFunc.Call(c.ctx, msg) + + // Simulate the Task Queue service. + req, err := http.NewRequest("POST", path, bytes.NewBuffer(task.Payload)) + if err != nil { + t.Fatalf("Failed making http.Request: %v", err) + } + rw := httptest.NewRecorder() + runFunc(c.ctx, rw, req) + + if regFuncRuns != 1 { + t.Errorf("regFuncRuns: got %d, want 1", regFuncRuns) + } + if regFuncMsg != msg { + t.Errorf("regFuncMsg: got %q, want %q", regFuncMsg, msg) + } +} + +func TestCustomType(t *testing.T) { + c := newFakeContext() + + // Fake out the adding of a task. + var task *taskqueue.Task + taskqueueAdder = func(_ context.Context, tk *taskqueue.Task, queue string) (*taskqueue.Task, error) { + if queue != "" { + t.Errorf(`Got queue %q, expected ""`, queue) + } + task = tk + return tk, nil + } + + custFuncTally = 0 // reset state + custFunc.Call(c.ctx, &CustomType{N: 11}, CustomImpl(13)) + + // Simulate the Task Queue service. + req, err := http.NewRequest("POST", path, bytes.NewBuffer(task.Payload)) + if err != nil { + t.Fatalf("Failed making http.Request: %v", err) + } + rw := httptest.NewRecorder() + runFunc(c.ctx, rw, req) + + if custFuncTally != 24 { + t.Errorf("custFuncTally = %d, want 24", custFuncTally) + } + + // Try the same, but with nil values; one is a nil pointer (and thus a non-nil interface value), + // and the other is a nil interface value. + custFuncTally = 0 // reset state + custFunc.Call(c.ctx, (*CustomType)(nil), nil) + + // Simulate the Task Queue service. + req, err = http.NewRequest("POST", path, bytes.NewBuffer(task.Payload)) + if err != nil { + t.Fatalf("Failed making http.Request: %v", err) + } + rw = httptest.NewRecorder() + runFunc(c.ctx, rw, req) + + if custFuncTally != 5 { + t.Errorf("custFuncTally = %d, want 5", custFuncTally) + } +} + +func TestRunningVariadic(t *testing.T) { + c := newFakeContext() + + // Fake out the adding of a task. + var task *taskqueue.Task + taskqueueAdder = func(_ context.Context, tk *taskqueue.Task, queue string) (*taskqueue.Task, error) { + if queue != "" { + t.Errorf(`Got queue %q, expected ""`, queue) + } + task = tk + return tk, nil + } + + varFuncMsg = "" // reset state + varFunc.Call(c.ctx, "Amiga %d has %d KB RAM", 500, 512) + + // Simulate the Task Queue service. + req, err := http.NewRequest("POST", path, bytes.NewBuffer(task.Payload)) + if err != nil { + t.Fatalf("Failed making http.Request: %v", err) + } + rw := httptest.NewRecorder() + runFunc(c.ctx, rw, req) + + const expected = "Amiga 500 has 512 KB RAM" + if varFuncMsg != expected { + t.Errorf("varFuncMsg = %q, want %q", varFuncMsg, expected) + } +} + +func TestErrorFunction(t *testing.T) { + c := newFakeContext() + + // Fake out the adding of a task. + var task *taskqueue.Task + taskqueueAdder = func(_ context.Context, tk *taskqueue.Task, queue string) (*taskqueue.Task, error) { + if queue != "" { + t.Errorf(`Got queue %q, expected ""`, queue) + } + task = tk + return tk, nil + } + + errFunc.Call(c.ctx) + + // Simulate the Task Queue service. + // The first call should succeed; the second call should fail. + { + req, err := http.NewRequest("POST", path, bytes.NewBuffer(task.Payload)) + if err != nil { + t.Fatalf("Failed making http.Request: %v", err) + } + rw := httptest.NewRecorder() + runFunc(c.ctx, rw, req) + } + { + req, err := http.NewRequest("POST", path, bytes.NewBuffer(task.Payload)) + if err != nil { + t.Fatalf("Failed making http.Request: %v", err) + } + rw := httptest.NewRecorder() + runFunc(c.ctx, rw, req) + if rw.Code != http.StatusInternalServerError { + t.Errorf("Got status code %d, want %d", rw.Code, http.StatusInternalServerError) + } + + wantLogging := [][]interface{}{ + {"ERROR", "delay: func failed (will retry): %v", errFuncErr}, + } + if !reflect.DeepEqual(c.logging, wantLogging) { + t.Errorf("Incorrect logging: got %+v, want %+v", c.logging, wantLogging) + } + } +} + +func TestDuplicateFunction(t *testing.T) { + c := newFakeContext() + + // Fake out the adding of a task. + var task *taskqueue.Task + taskqueueAdder = func(_ context.Context, tk *taskqueue.Task, queue string) (*taskqueue.Task, error) { + if queue != "" { + t.Errorf(`Got queue %q, expected ""`, queue) + } + task = tk + return tk, nil + } + + if err := dupe1Func.Call(c.ctx); err == nil { + t.Error("dupe1Func.Call did not return error") + } + if task != nil { + t.Error("dupe1Func.Call posted a task") + } + if err := dupe2Func.Call(c.ctx); err != nil { + t.Errorf("dupe2Func.Call error: %v", err) + } + if task == nil { + t.Fatalf("dupe2Func.Call did not post a task") + } + + // Simulate the Task Queue service. + req, err := http.NewRequest("POST", path, bytes.NewBuffer(task.Payload)) + if err != nil { + t.Fatalf("Failed making http.Request: %v", err) + } + rw := httptest.NewRecorder() + runFunc(c.ctx, rw, req) + + if dupeWhich == 1 { + t.Error("dupe2Func.Call used old registered function") + } else if dupeWhich != 2 { + t.Errorf("dupeWhich = %d; want 2", dupeWhich) + } +} + +func TestGetRequestHeadersFromContext(t *testing.T) { + c := newFakeContext() + + // Outside a delay.Func should return an error. + headers, err := RequestHeaders(c.ctx) + if headers != nil { + t.Errorf("RequestHeaders outside Func, got %v, want nil", headers) + } + if err != errOutsideDelayFunc { + t.Errorf("RequestHeaders outside Func err, got %v, want %v", err, errOutsideDelayFunc) + } + + // Fake out the adding of a task. + var task *taskqueue.Task + taskqueueAdder = func(_ context.Context, tk *taskqueue.Task, queue string) (*taskqueue.Task, error) { + if queue != "" { + t.Errorf(`Got queue %q, expected ""`, queue) + } + task = tk + return tk, nil + } + + reqFunc.Call(c.ctx) + + reqFuncRuns, reqFuncHeaders = 0, nil // reset state + // Simulate the Task Queue service. + req, err := http.NewRequest("POST", path, bytes.NewBuffer(task.Payload)) + req.Header.Set("x-appengine-taskname", "foobar") + if err != nil { + t.Fatalf("Failed making http.Request: %v", err) + } + rw := httptest.NewRecorder() + runFunc(c.ctx, rw, req) + + if reqFuncRuns != 1 { + t.Errorf("reqFuncRuns: got %d, want 1", reqFuncRuns) + } + if reqFuncHeaders.TaskName != "foobar" { + t.Errorf("reqFuncHeaders.TaskName: got %v, want 'foobar'", reqFuncHeaders.TaskName) + } + if reqFuncErr != nil { + t.Errorf("reqFuncErr: got %v, want nil", reqFuncErr) + } +} + +func TestStandardContext(t *testing.T) { + // Fake out the adding of a task. + var task *taskqueue.Task + taskqueueAdder = func(_ context.Context, tk *taskqueue.Task, queue string) (*taskqueue.Task, error) { + if queue != "" { + t.Errorf(`Got queue %q, expected ""`, queue) + } + task = tk + return tk, nil + } + + c := newFakeContext() + stdCtxRuns = 0 // reset state + if err := stdCtxFunc.Call(c.ctx); err != nil { + t.Fatal("Function.Call:", err) + } + + // Simulate the Task Queue service. + req, err := http.NewRequest("POST", path, bytes.NewBuffer(task.Payload)) + if err != nil { + t.Fatalf("Failed making http.Request: %v", err) + } + rw := httptest.NewRecorder() + runFunc(c.ctx, rw, req) + + if stdCtxRuns != 1 { + t.Errorf("stdCtxRuns: got %d, want 1", stdCtxRuns) + } +} + +func TestFileKey(t *testing.T) { + os.Setenv("GAE_ENV", "standard") + tests := []struct { + mainPath string + file string + want string + }{ + // first-gen + { + "", + filepath.FromSlash("srv/foo.go"), + filepath.FromSlash("srv/foo.go"), + }, + // gopath + { + filepath.FromSlash("/tmp/staging1234/srv/"), + filepath.FromSlash("/tmp/staging1234/srv/foo.go"), + "foo.go", + }, + { + filepath.FromSlash("/tmp/staging1234/srv/_gopath/src/example.com/foo"), + filepath.FromSlash("/tmp/staging1234/srv/_gopath/src/example.com/foo/foo.go"), + "foo.go", + }, + { + filepath.FromSlash("/tmp/staging2234/srv/_gopath/src/example.com/foo"), + filepath.FromSlash("/tmp/staging2234/srv/_gopath/src/example.com/foo/bar/bar.go"), + filepath.FromSlash("example.com/foo/bar/bar.go"), + }, + { + filepath.FromSlash("/tmp/staging3234/srv/_gopath/src/example.com/foo"), + filepath.FromSlash("/tmp/staging3234/srv/_gopath/src/example.com/bar/main.go"), + filepath.FromSlash("example.com/bar/main.go"), + }, + // go mod, same package + { + filepath.FromSlash("/tmp/staging3234/srv"), + filepath.FromSlash("/tmp/staging3234/srv/main.go"), + "main.go", + }, + { + filepath.FromSlash("/tmp/staging3234/srv"), + filepath.FromSlash("/tmp/staging3234/srv/bar/main.go"), + filepath.FromSlash("bar/main.go"), + }, + { + filepath.FromSlash("/tmp/staging3234/srv/cmd"), + filepath.FromSlash("/tmp/staging3234/srv/cmd/main.go"), + "main.go", + }, + { + filepath.FromSlash("/tmp/staging3234/srv/cmd"), + filepath.FromSlash("/tmp/staging3234/srv/bar/main.go"), + filepath.FromSlash("bar/main.go"), + }, + // go mod, other package + { + filepath.FromSlash("/tmp/staging3234/srv"), + filepath.FromSlash("/go/pkg/mod/github.com/foo/bar@v0.0.0-20181026220418-f595d03440dc/baz.go"), + filepath.FromSlash("github.com/foo/bar/baz.go"), + }, + } + for i, tc := range tests { + internal.MainPath = tc.mainPath + got, err := fileKey(tc.file) + if err != nil { + t.Errorf("Unexpected error, call %v, file %q: %v", i, tc.file, err) + continue + } + if got != tc.want { + t.Errorf("Call %v, file %q: got %q, want %q", i, tc.file, got, tc.want) + } + } +} diff --git a/vendor/google.golang.org/appengine/demos/guestbook/app.yaml b/vendor/google.golang.org/appengine/demos/guestbook/app.yaml new file mode 100644 index 000000000..334250332 --- /dev/null +++ b/vendor/google.golang.org/appengine/demos/guestbook/app.yaml @@ -0,0 +1,14 @@ +# Demo application for App Engine "flexible environment". +runtime: go +vm: true +api_version: go1 + +handlers: +# Favicon. Without this, the browser hits this once per page view. +- url: /favicon.ico + static_files: favicon.ico + upload: favicon.ico + +# Main app. All the real work is here. +- url: /.* + script: _go_app diff --git a/vendor/google.golang.org/appengine/demos/guestbook/favicon.ico b/vendor/google.golang.org/appengine/demos/guestbook/favicon.ico new file mode 100644 index 000000000..1a71ea772 Binary files /dev/null and b/vendor/google.golang.org/appengine/demos/guestbook/favicon.ico differ diff --git a/vendor/google.golang.org/appengine/demos/guestbook/guestbook.go b/vendor/google.golang.org/appengine/demos/guestbook/guestbook.go new file mode 100644 index 000000000..04a0432bb --- /dev/null +++ b/vendor/google.golang.org/appengine/demos/guestbook/guestbook.go @@ -0,0 +1,109 @@ +// Copyright 2011 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +// This example only works on App Engine "flexible environment". +// +build !appengine + +package main + +import ( + "html/template" + "net/http" + "time" + + "golang.org/x/net/context" + + "google.golang.org/appengine" + "google.golang.org/appengine/datastore" + "google.golang.org/appengine/log" + "google.golang.org/appengine/user" +) + +var initTime time.Time + +type Greeting struct { + Author string + Content string + Date time.Time +} + +func main() { + http.HandleFunc("/", handleMainPage) + http.HandleFunc("/sign", handleSign) + appengine.Main() +} + +// guestbookKey returns the key used for all guestbook entries. +func guestbookKey(ctx context.Context) *datastore.Key { + // The string "default_guestbook" here could be varied to have multiple guestbooks. + return datastore.NewKey(ctx, "Guestbook", "default_guestbook", 0, nil) +} + +var tpl = template.Must(template.ParseGlob("templates/*.html")) + +func handleMainPage(w http.ResponseWriter, r *http.Request) { + if r.Method != "GET" { + http.Error(w, "GET requests only", http.StatusMethodNotAllowed) + return + } + if r.URL.Path != "/" { + http.NotFound(w, r) + return + } + + ctx := appengine.NewContext(r) + tic := time.Now() + q := datastore.NewQuery("Greeting").Ancestor(guestbookKey(ctx)).Order("-Date").Limit(10) + var gg []*Greeting + if _, err := q.GetAll(ctx, &gg); err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + log.Errorf(ctx, "GetAll: %v", err) + return + } + log.Infof(ctx, "Datastore lookup took %s", time.Since(tic).String()) + log.Infof(ctx, "Rendering %d greetings", len(gg)) + + var email, logout, login string + if u := user.Current(ctx); u != nil { + logout, _ = user.LogoutURL(ctx, "/") + email = u.Email + } else { + login, _ = user.LoginURL(ctx, "/") + } + data := struct { + Greetings []*Greeting + Login, Logout, Email string + }{ + Greetings: gg, + Login: login, + Logout: logout, + Email: email, + } + w.Header().Set("Content-Type", "text/html; charset=utf-8") + if err := tpl.ExecuteTemplate(w, "guestbook.html", data); err != nil { + log.Errorf(ctx, "%v", err) + } +} + +func handleSign(w http.ResponseWriter, r *http.Request) { + if r.Method != "POST" { + http.Error(w, "POST requests only", http.StatusMethodNotAllowed) + return + } + ctx := appengine.NewContext(r) + g := &Greeting{ + Content: r.FormValue("content"), + Date: time.Now(), + } + if u := user.Current(ctx); u != nil { + g.Author = u.String() + } + key := datastore.NewIncompleteKey(ctx, "Greeting", guestbookKey(ctx)) + if _, err := datastore.Put(ctx, key, g); err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } + // Redirect with 303 which causes the subsequent request to use GET. + http.Redirect(w, r, "/", http.StatusSeeOther) +} diff --git a/vendor/google.golang.org/appengine/demos/guestbook/index.yaml b/vendor/google.golang.org/appengine/demos/guestbook/index.yaml new file mode 100644 index 000000000..315ffeb0e --- /dev/null +++ b/vendor/google.golang.org/appengine/demos/guestbook/index.yaml @@ -0,0 +1,7 @@ +indexes: + +- kind: Greeting + ancestor: yes + properties: + - name: Date + direction: desc diff --git a/vendor/google.golang.org/appengine/demos/guestbook/templates/guestbook.html b/vendor/google.golang.org/appengine/demos/guestbook/templates/guestbook.html new file mode 100644 index 000000000..322b7cf63 --- /dev/null +++ b/vendor/google.golang.org/appengine/demos/guestbook/templates/guestbook.html @@ -0,0 +1,26 @@ + + + + Guestbook Demo + + +

+ {{with .Email}}You are currently logged in as {{.}}.{{end}} + {{with .Login}}Sign in{{end}} + {{with .Logout}}Sign out{{end}} +

+ + {{range .Greetings }} +

+ {{with .Author}}{{.}}{{else}}An anonymous person{{end}} + on {{.Date.Format "3:04pm, Mon 2 Jan"}} + wrote

{{.Content}}
+

+ {{end}} + +
+
+
+
+ + diff --git a/vendor/google.golang.org/appengine/demos/helloworld/app.yaml b/vendor/google.golang.org/appengine/demos/helloworld/app.yaml new file mode 100644 index 000000000..15091192f --- /dev/null +++ b/vendor/google.golang.org/appengine/demos/helloworld/app.yaml @@ -0,0 +1,10 @@ +runtime: go +api_version: go1 +vm: true + +handlers: +- url: /favicon.ico + static_files: favicon.ico + upload: favicon.ico +- url: /.* + script: _go_app diff --git a/vendor/google.golang.org/appengine/demos/helloworld/favicon.ico b/vendor/google.golang.org/appengine/demos/helloworld/favicon.ico new file mode 100644 index 000000000..f19c04d27 Binary files /dev/null and b/vendor/google.golang.org/appengine/demos/helloworld/favicon.ico differ diff --git a/vendor/google.golang.org/appengine/demos/helloworld/helloworld.go b/vendor/google.golang.org/appengine/demos/helloworld/helloworld.go new file mode 100644 index 000000000..fbe9f56ed --- /dev/null +++ b/vendor/google.golang.org/appengine/demos/helloworld/helloworld.go @@ -0,0 +1,50 @@ +// Copyright 2014 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +// This example only works on App Engine "flexible environment". +// +build !appengine + +package main + +import ( + "html/template" + "net/http" + "time" + + "google.golang.org/appengine" + "google.golang.org/appengine/log" +) + +var initTime = time.Now() + +func main() { + http.HandleFunc("/", handle) + appengine.Main() +} + +func handle(w http.ResponseWriter, r *http.Request) { + if r.URL.Path != "/" { + http.NotFound(w, r) + return + } + + ctx := appengine.NewContext(r) + log.Infof(ctx, "Serving the front page.") + + tmpl.Execute(w, time.Since(initTime)) +} + +var tmpl = template.Must(template.New("front").Parse(` + + +

+Hello, World! 세ìƒì•„ 안녕! +

+ +

+This instance has been running for {{.}}. +

+ + +`)) diff --git a/vendor/google.golang.org/appengine/errors.go b/vendor/google.golang.org/appengine/errors.go new file mode 100644 index 000000000..16d0772e2 --- /dev/null +++ b/vendor/google.golang.org/appengine/errors.go @@ -0,0 +1,46 @@ +// Copyright 2011 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +// This file provides error functions for common API failure modes. + +package appengine + +import ( + "fmt" + + "google.golang.org/appengine/internal" +) + +// IsOverQuota reports whether err represents an API call failure +// due to insufficient available quota. +func IsOverQuota(err error) bool { + callErr, ok := err.(*internal.CallError) + return ok && callErr.Code == 4 +} + +// MultiError is returned by batch operations when there are errors with +// particular elements. Errors will be in a one-to-one correspondence with +// the input elements; successful elements will have a nil entry. +type MultiError []error + +func (m MultiError) Error() string { + s, n := "", 0 + for _, e := range m { + if e != nil { + if n == 0 { + s = e.Error() + } + n++ + } + } + switch n { + case 0: + return "(0 errors)" + case 1: + return s + case 2: + return s + " (and 1 other error)" + } + return fmt.Sprintf("%s (and %d other errors)", s, n-1) +} diff --git a/vendor/google.golang.org/appengine/file/file.go b/vendor/google.golang.org/appengine/file/file.go new file mode 100644 index 000000000..c3cd58baf --- /dev/null +++ b/vendor/google.golang.org/appengine/file/file.go @@ -0,0 +1,28 @@ +// Copyright 2014 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +// Package file provides helper functions for using Google Cloud Storage. +package file + +import ( + "fmt" + + "golang.org/x/net/context" + + "google.golang.org/appengine/internal" + aipb "google.golang.org/appengine/internal/app_identity" +) + +// DefaultBucketName returns the name of this application's +// default Google Cloud Storage bucket. +func DefaultBucketName(c context.Context) (string, error) { + req := &aipb.GetDefaultGcsBucketNameRequest{} + res := &aipb.GetDefaultGcsBucketNameResponse{} + + err := internal.Call(c, "app_identity_service", "GetDefaultGcsBucketName", req, res) + if err != nil { + return "", fmt.Errorf("file: no default bucket name returned in RPC response: %v", res) + } + return res.GetDefaultGcsBucketName(), nil +} diff --git a/vendor/google.golang.org/appengine/go.mod b/vendor/google.golang.org/appengine/go.mod new file mode 100644 index 000000000..f449359d2 --- /dev/null +++ b/vendor/google.golang.org/appengine/go.mod @@ -0,0 +1,7 @@ +module google.golang.org/appengine + +require ( + github.com/golang/protobuf v1.2.0 + golang.org/x/net v0.0.0-20180724234803-3673e40ba225 + golang.org/x/text v0.3.0 +) diff --git a/vendor/google.golang.org/appengine/go.sum b/vendor/google.golang.org/appengine/go.sum new file mode 100644 index 000000000..1a221c089 --- /dev/null +++ b/vendor/google.golang.org/appengine/go.sum @@ -0,0 +1,6 @@ +github.com/golang/protobuf v1.2.0 h1:P3YflyNX/ehuJFLhxviNdFxQPkGK5cDcApsge1SqnvM= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225 h1:kNX+jCowfMYzvlSvJu5pQWEmyWFrBXJ3PBy10xKMXK8= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= diff --git a/vendor/google.golang.org/appengine/identity.go b/vendor/google.golang.org/appengine/identity.go new file mode 100644 index 000000000..b8dcf8f36 --- /dev/null +++ b/vendor/google.golang.org/appengine/identity.go @@ -0,0 +1,142 @@ +// Copyright 2011 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package appengine + +import ( + "time" + + "golang.org/x/net/context" + + "google.golang.org/appengine/internal" + pb "google.golang.org/appengine/internal/app_identity" + modpb "google.golang.org/appengine/internal/modules" +) + +// AppID returns the application ID for the current application. +// The string will be a plain application ID (e.g. "appid"), with a +// domain prefix for custom domain deployments (e.g. "example.com:appid"). +func AppID(c context.Context) string { return internal.AppID(c) } + +// DefaultVersionHostname returns the standard hostname of the default version +// of the current application (e.g. "my-app.appspot.com"). This is suitable for +// use in constructing URLs. +func DefaultVersionHostname(c context.Context) string { + return internal.DefaultVersionHostname(c) +} + +// ModuleName returns the module name of the current instance. +func ModuleName(c context.Context) string { + return internal.ModuleName(c) +} + +// ModuleHostname returns a hostname of a module instance. +// If module is the empty string, it refers to the module of the current instance. +// If version is empty, it refers to the version of the current instance if valid, +// or the default version of the module of the current instance. +// If instance is empty, ModuleHostname returns the load-balancing hostname. +func ModuleHostname(c context.Context, module, version, instance string) (string, error) { + req := &modpb.GetHostnameRequest{} + if module != "" { + req.Module = &module + } + if version != "" { + req.Version = &version + } + if instance != "" { + req.Instance = &instance + } + res := &modpb.GetHostnameResponse{} + if err := internal.Call(c, "modules", "GetHostname", req, res); err != nil { + return "", err + } + return *res.Hostname, nil +} + +// VersionID returns the version ID for the current application. +// It will be of the form "X.Y", where X is specified in app.yaml, +// and Y is a number generated when each version of the app is uploaded. +// It does not include a module name. +func VersionID(c context.Context) string { return internal.VersionID(c) } + +// InstanceID returns a mostly-unique identifier for this instance. +func InstanceID() string { return internal.InstanceID() } + +// Datacenter returns an identifier for the datacenter that the instance is running in. +func Datacenter(c context.Context) string { return internal.Datacenter(c) } + +// ServerSoftware returns the App Engine release version. +// In production, it looks like "Google App Engine/X.Y.Z". +// In the development appserver, it looks like "Development/X.Y". +func ServerSoftware() string { return internal.ServerSoftware() } + +// RequestID returns a string that uniquely identifies the request. +func RequestID(c context.Context) string { return internal.RequestID(c) } + +// AccessToken generates an OAuth2 access token for the specified scopes on +// behalf of service account of this application. This token will expire after +// the returned time. +func AccessToken(c context.Context, scopes ...string) (token string, expiry time.Time, err error) { + req := &pb.GetAccessTokenRequest{Scope: scopes} + res := &pb.GetAccessTokenResponse{} + + err = internal.Call(c, "app_identity_service", "GetAccessToken", req, res) + if err != nil { + return "", time.Time{}, err + } + return res.GetAccessToken(), time.Unix(res.GetExpirationTime(), 0), nil +} + +// Certificate represents a public certificate for the app. +type Certificate struct { + KeyName string + Data []byte // PEM-encoded X.509 certificate +} + +// PublicCertificates retrieves the public certificates for the app. +// They can be used to verify a signature returned by SignBytes. +func PublicCertificates(c context.Context) ([]Certificate, error) { + req := &pb.GetPublicCertificateForAppRequest{} + res := &pb.GetPublicCertificateForAppResponse{} + if err := internal.Call(c, "app_identity_service", "GetPublicCertificatesForApp", req, res); err != nil { + return nil, err + } + var cs []Certificate + for _, pc := range res.PublicCertificateList { + cs = append(cs, Certificate{ + KeyName: pc.GetKeyName(), + Data: []byte(pc.GetX509CertificatePem()), + }) + } + return cs, nil +} + +// ServiceAccount returns a string representing the service account name, in +// the form of an email address (typically app_id@appspot.gserviceaccount.com). +func ServiceAccount(c context.Context) (string, error) { + req := &pb.GetServiceAccountNameRequest{} + res := &pb.GetServiceAccountNameResponse{} + + err := internal.Call(c, "app_identity_service", "GetServiceAccountName", req, res) + if err != nil { + return "", err + } + return res.GetServiceAccountName(), err +} + +// SignBytes signs bytes using a private key unique to your application. +func SignBytes(c context.Context, bytes []byte) (keyName string, signature []byte, err error) { + req := &pb.SignForAppRequest{BytesToSign: bytes} + res := &pb.SignForAppResponse{} + + if err := internal.Call(c, "app_identity_service", "SignForApp", req, res); err != nil { + return "", nil, err + } + return res.GetKeyName(), res.GetSignatureBytes(), nil +} + +func init() { + internal.RegisterErrorCodeMap("app_identity_service", pb.AppIdentityServiceError_ErrorCode_name) + internal.RegisterErrorCodeMap("modules", modpb.ModulesServiceError_ErrorCode_name) +} diff --git a/vendor/google.golang.org/appengine/image/image.go b/vendor/google.golang.org/appengine/image/image.go new file mode 100644 index 000000000..027a41b70 --- /dev/null +++ b/vendor/google.golang.org/appengine/image/image.go @@ -0,0 +1,67 @@ +// Copyright 2012 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +// Package image provides image services. +package image // import "google.golang.org/appengine/image" + +import ( + "fmt" + "net/url" + + "golang.org/x/net/context" + + "google.golang.org/appengine" + "google.golang.org/appengine/internal" + pb "google.golang.org/appengine/internal/image" +) + +type ServingURLOptions struct { + Secure bool // whether the URL should use HTTPS + + // Size must be between zero and 1600. + // If Size is non-zero, a resized version of the image is served, + // and Size is the served image's longest dimension. The aspect ratio is preserved. + // If Crop is true the image is cropped from the center instead of being resized. + Size int + Crop bool +} + +// ServingURL returns a URL that will serve an image from Blobstore. +func ServingURL(c context.Context, key appengine.BlobKey, opts *ServingURLOptions) (*url.URL, error) { + req := &pb.ImagesGetUrlBaseRequest{ + BlobKey: (*string)(&key), + } + if opts != nil && opts.Secure { + req.CreateSecureUrl = &opts.Secure + } + res := &pb.ImagesGetUrlBaseResponse{} + if err := internal.Call(c, "images", "GetUrlBase", req, res); err != nil { + return nil, err + } + + // The URL may have suffixes added to dynamically resize or crop: + // - adding "=s32" will serve the image resized to 32 pixels, preserving the aspect ratio. + // - adding "=s32-c" is the same as "=s32" except it will be cropped. + u := *res.Url + if opts != nil && opts.Size > 0 { + u += fmt.Sprintf("=s%d", opts.Size) + if opts.Crop { + u += "-c" + } + } + return url.Parse(u) +} + +// DeleteServingURL deletes the serving URL for an image. +func DeleteServingURL(c context.Context, key appengine.BlobKey) error { + req := &pb.ImagesDeleteUrlBaseRequest{ + BlobKey: (*string)(&key), + } + res := &pb.ImagesDeleteUrlBaseResponse{} + return internal.Call(c, "images", "DeleteUrlBase", req, res) +} + +func init() { + internal.RegisterErrorCodeMap("images", pb.ImagesServiceError_ErrorCode_name) +} diff --git a/vendor/google.golang.org/appengine/internal/aetesting/fake.go b/vendor/google.golang.org/appengine/internal/aetesting/fake.go new file mode 100644 index 000000000..eb5b2c65b --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/aetesting/fake.go @@ -0,0 +1,81 @@ +// Copyright 2011 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +// Package aetesting provides utilities for testing App Engine packages. +// This is not for testing user applications. +package aetesting + +import ( + "fmt" + "net/http" + "reflect" + "testing" + + "github.com/golang/protobuf/proto" + "golang.org/x/net/context" + + "google.golang.org/appengine/internal" +) + +// FakeSingleContext returns a context whose Call invocations will be serviced +// by f, which should be a function that has two arguments of the input and output +// protocol buffer type, and one error return. +func FakeSingleContext(t *testing.T, service, method string, f interface{}) context.Context { + fv := reflect.ValueOf(f) + if fv.Kind() != reflect.Func { + t.Fatal("not a function") + } + ft := fv.Type() + if ft.NumIn() != 2 || ft.NumOut() != 1 { + t.Fatalf("f has %d in and %d out, want 2 in and 1 out", ft.NumIn(), ft.NumOut()) + } + for i := 0; i < 2; i++ { + at := ft.In(i) + if !at.Implements(protoMessageType) { + t.Fatalf("arg %d does not implement proto.Message", i) + } + } + if ft.Out(0) != errorType { + t.Fatalf("f's return is %v, want error", ft.Out(0)) + } + s := &single{ + t: t, + service: service, + method: method, + f: fv, + } + return internal.WithCallOverride(internal.ContextForTesting(&http.Request{}), s.call) +} + +var ( + protoMessageType = reflect.TypeOf((*proto.Message)(nil)).Elem() + errorType = reflect.TypeOf((*error)(nil)).Elem() +) + +type single struct { + t *testing.T + service, method string + f reflect.Value +} + +func (s *single) call(ctx context.Context, service, method string, in, out proto.Message) error { + if service == "__go__" { + if method == "GetNamespace" { + return nil // always yield an empty namespace + } + return fmt.Errorf("Unknown API call /%s.%s", service, method) + } + if service != s.service || method != s.method { + s.t.Fatalf("Unexpected call to /%s.%s", service, method) + } + ins := []reflect.Value{ + reflect.ValueOf(in), + reflect.ValueOf(out), + } + outs := s.f.Call(ins) + if outs[0].IsNil() { + return nil + } + return outs[0].Interface().(error) +} diff --git a/vendor/google.golang.org/appengine/internal/api.go b/vendor/google.golang.org/appengine/internal/api.go new file mode 100644 index 000000000..bbc1cb9c3 --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/api.go @@ -0,0 +1,671 @@ +// Copyright 2011 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +// +build !appengine + +package internal + +import ( + "bytes" + "errors" + "fmt" + "io/ioutil" + "log" + "net" + "net/http" + "net/url" + "os" + "runtime" + "strconv" + "strings" + "sync" + "sync/atomic" + "time" + + "github.com/golang/protobuf/proto" + netcontext "golang.org/x/net/context" + + basepb "google.golang.org/appengine/internal/base" + logpb "google.golang.org/appengine/internal/log" + remotepb "google.golang.org/appengine/internal/remote_api" +) + +const ( + apiPath = "/rpc_http" + defaultTicketSuffix = "/default.20150612t184001.0" +) + +var ( + // Incoming headers. + ticketHeader = http.CanonicalHeaderKey("X-AppEngine-API-Ticket") + dapperHeader = http.CanonicalHeaderKey("X-Google-DapperTraceInfo") + traceHeader = http.CanonicalHeaderKey("X-Cloud-Trace-Context") + curNamespaceHeader = http.CanonicalHeaderKey("X-AppEngine-Current-Namespace") + userIPHeader = http.CanonicalHeaderKey("X-AppEngine-User-IP") + remoteAddrHeader = http.CanonicalHeaderKey("X-AppEngine-Remote-Addr") + + // Outgoing headers. + apiEndpointHeader = http.CanonicalHeaderKey("X-Google-RPC-Service-Endpoint") + apiEndpointHeaderValue = []string{"app-engine-apis"} + apiMethodHeader = http.CanonicalHeaderKey("X-Google-RPC-Service-Method") + apiMethodHeaderValue = []string{"/VMRemoteAPI.CallRemoteAPI"} + apiDeadlineHeader = http.CanonicalHeaderKey("X-Google-RPC-Service-Deadline") + apiContentType = http.CanonicalHeaderKey("Content-Type") + apiContentTypeValue = []string{"application/octet-stream"} + logFlushHeader = http.CanonicalHeaderKey("X-AppEngine-Log-Flush-Count") + + apiHTTPClient = &http.Client{ + Transport: &http.Transport{ + Proxy: http.ProxyFromEnvironment, + Dial: limitDial, + }, + } + + defaultTicketOnce sync.Once + defaultTicket string + backgroundContextOnce sync.Once + backgroundContext netcontext.Context +) + +func apiURL() *url.URL { + host, port := "appengine.googleapis.internal", "10001" + if h := os.Getenv("API_HOST"); h != "" { + host = h + } + if p := os.Getenv("API_PORT"); p != "" { + port = p + } + return &url.URL{ + Scheme: "http", + Host: host + ":" + port, + Path: apiPath, + } +} + +func handleHTTP(w http.ResponseWriter, r *http.Request) { + c := &context{ + req: r, + outHeader: w.Header(), + apiURL: apiURL(), + } + r = r.WithContext(withContext(r.Context(), c)) + c.req = r + + stopFlushing := make(chan int) + + // Patch up RemoteAddr so it looks reasonable. + if addr := r.Header.Get(userIPHeader); addr != "" { + r.RemoteAddr = addr + } else if addr = r.Header.Get(remoteAddrHeader); addr != "" { + r.RemoteAddr = addr + } else { + // Should not normally reach here, but pick a sensible default anyway. + r.RemoteAddr = "127.0.0.1" + } + // The address in the headers will most likely be of these forms: + // 123.123.123.123 + // 2001:db8::1 + // net/http.Request.RemoteAddr is specified to be in "IP:port" form. + if _, _, err := net.SplitHostPort(r.RemoteAddr); err != nil { + // Assume the remote address is only a host; add a default port. + r.RemoteAddr = net.JoinHostPort(r.RemoteAddr, "80") + } + + // Start goroutine responsible for flushing app logs. + // This is done after adding c to ctx.m (and stopped before removing it) + // because flushing logs requires making an API call. + go c.logFlusher(stopFlushing) + + executeRequestSafely(c, r) + c.outHeader = nil // make sure header changes aren't respected any more + + stopFlushing <- 1 // any logging beyond this point will be dropped + + // Flush any pending logs asynchronously. + c.pendingLogs.Lock() + flushes := c.pendingLogs.flushes + if len(c.pendingLogs.lines) > 0 { + flushes++ + } + c.pendingLogs.Unlock() + flushed := make(chan struct{}) + go func() { + defer close(flushed) + // Force a log flush, because with very short requests we + // may not ever flush logs. + c.flushLog(true) + }() + w.Header().Set(logFlushHeader, strconv.Itoa(flushes)) + + // Avoid nil Write call if c.Write is never called. + if c.outCode != 0 { + w.WriteHeader(c.outCode) + } + if c.outBody != nil { + w.Write(c.outBody) + } + // Wait for the last flush to complete before returning, + // otherwise the security ticket will not be valid. + <-flushed +} + +func executeRequestSafely(c *context, r *http.Request) { + defer func() { + if x := recover(); x != nil { + logf(c, 4, "%s", renderPanic(x)) // 4 == critical + c.outCode = 500 + } + }() + + http.DefaultServeMux.ServeHTTP(c, r) +} + +func renderPanic(x interface{}) string { + buf := make([]byte, 16<<10) // 16 KB should be plenty + buf = buf[:runtime.Stack(buf, false)] + + // Remove the first few stack frames: + // this func + // the recover closure in the caller + // That will root the stack trace at the site of the panic. + const ( + skipStart = "internal.renderPanic" + skipFrames = 2 + ) + start := bytes.Index(buf, []byte(skipStart)) + p := start + for i := 0; i < skipFrames*2 && p+1 < len(buf); i++ { + p = bytes.IndexByte(buf[p+1:], '\n') + p + 1 + if p < 0 { + break + } + } + if p >= 0 { + // buf[start:p+1] is the block to remove. + // Copy buf[p+1:] over buf[start:] and shrink buf. + copy(buf[start:], buf[p+1:]) + buf = buf[:len(buf)-(p+1-start)] + } + + // Add panic heading. + head := fmt.Sprintf("panic: %v\n\n", x) + if len(head) > len(buf) { + // Extremely unlikely to happen. + return head + } + copy(buf[len(head):], buf) + copy(buf, head) + + return string(buf) +} + +// context represents the context of an in-flight HTTP request. +// It implements the appengine.Context and http.ResponseWriter interfaces. +type context struct { + req *http.Request + + outCode int + outHeader http.Header + outBody []byte + + pendingLogs struct { + sync.Mutex + lines []*logpb.UserAppLogLine + flushes int + } + + apiURL *url.URL +} + +var contextKey = "holds a *context" + +// jointContext joins two contexts in a superficial way. +// It takes values and timeouts from a base context, and only values from another context. +type jointContext struct { + base netcontext.Context + valuesOnly netcontext.Context +} + +func (c jointContext) Deadline() (time.Time, bool) { + return c.base.Deadline() +} + +func (c jointContext) Done() <-chan struct{} { + return c.base.Done() +} + +func (c jointContext) Err() error { + return c.base.Err() +} + +func (c jointContext) Value(key interface{}) interface{} { + if val := c.base.Value(key); val != nil { + return val + } + return c.valuesOnly.Value(key) +} + +// fromContext returns the App Engine context or nil if ctx is not +// derived from an App Engine context. +func fromContext(ctx netcontext.Context) *context { + c, _ := ctx.Value(&contextKey).(*context) + return c +} + +func withContext(parent netcontext.Context, c *context) netcontext.Context { + ctx := netcontext.WithValue(parent, &contextKey, c) + if ns := c.req.Header.Get(curNamespaceHeader); ns != "" { + ctx = withNamespace(ctx, ns) + } + return ctx +} + +func toContext(c *context) netcontext.Context { + return withContext(netcontext.Background(), c) +} + +func IncomingHeaders(ctx netcontext.Context) http.Header { + if c := fromContext(ctx); c != nil { + return c.req.Header + } + return nil +} + +func ReqContext(req *http.Request) netcontext.Context { + return req.Context() +} + +func WithContext(parent netcontext.Context, req *http.Request) netcontext.Context { + return jointContext{ + base: parent, + valuesOnly: req.Context(), + } +} + +// DefaultTicket returns a ticket used for background context or dev_appserver. +func DefaultTicket() string { + defaultTicketOnce.Do(func() { + if IsDevAppServer() { + defaultTicket = "testapp" + defaultTicketSuffix + return + } + appID := partitionlessAppID() + escAppID := strings.Replace(strings.Replace(appID, ":", "_", -1), ".", "_", -1) + majVersion := VersionID(nil) + if i := strings.Index(majVersion, "."); i > 0 { + majVersion = majVersion[:i] + } + defaultTicket = fmt.Sprintf("%s/%s.%s.%s", escAppID, ModuleName(nil), majVersion, InstanceID()) + }) + return defaultTicket +} + +func BackgroundContext() netcontext.Context { + backgroundContextOnce.Do(func() { + // Compute background security ticket. + ticket := DefaultTicket() + + c := &context{ + req: &http.Request{ + Header: http.Header{ + ticketHeader: []string{ticket}, + }, + }, + apiURL: apiURL(), + } + backgroundContext = toContext(c) + + // TODO(dsymonds): Wire up the shutdown handler to do a final flush. + go c.logFlusher(make(chan int)) + }) + + return backgroundContext +} + +// RegisterTestRequest registers the HTTP request req for testing, such that +// any API calls are sent to the provided URL. It returns a closure to delete +// the registration. +// It should only be used by aetest package. +func RegisterTestRequest(req *http.Request, apiURL *url.URL, decorate func(netcontext.Context) netcontext.Context) (*http.Request, func()) { + c := &context{ + req: req, + apiURL: apiURL, + } + ctx := withContext(decorate(req.Context()), c) + req = req.WithContext(ctx) + c.req = req + return req, func() {} +} + +var errTimeout = &CallError{ + Detail: "Deadline exceeded", + Code: int32(remotepb.RpcError_CANCELLED), + Timeout: true, +} + +func (c *context) Header() http.Header { return c.outHeader } + +// Copied from $GOROOT/src/pkg/net/http/transfer.go. Some response status +// codes do not permit a response body (nor response entity headers such as +// Content-Length, Content-Type, etc). +func bodyAllowedForStatus(status int) bool { + switch { + case status >= 100 && status <= 199: + return false + case status == 204: + return false + case status == 304: + return false + } + return true +} + +func (c *context) Write(b []byte) (int, error) { + if c.outCode == 0 { + c.WriteHeader(http.StatusOK) + } + if len(b) > 0 && !bodyAllowedForStatus(c.outCode) { + return 0, http.ErrBodyNotAllowed + } + c.outBody = append(c.outBody, b...) + return len(b), nil +} + +func (c *context) WriteHeader(code int) { + if c.outCode != 0 { + logf(c, 3, "WriteHeader called multiple times on request.") // error level + return + } + c.outCode = code +} + +func (c *context) post(body []byte, timeout time.Duration) (b []byte, err error) { + hreq := &http.Request{ + Method: "POST", + URL: c.apiURL, + Header: http.Header{ + apiEndpointHeader: apiEndpointHeaderValue, + apiMethodHeader: apiMethodHeaderValue, + apiContentType: apiContentTypeValue, + apiDeadlineHeader: []string{strconv.FormatFloat(timeout.Seconds(), 'f', -1, 64)}, + }, + Body: ioutil.NopCloser(bytes.NewReader(body)), + ContentLength: int64(len(body)), + Host: c.apiURL.Host, + } + if info := c.req.Header.Get(dapperHeader); info != "" { + hreq.Header.Set(dapperHeader, info) + } + if info := c.req.Header.Get(traceHeader); info != "" { + hreq.Header.Set(traceHeader, info) + } + + tr := apiHTTPClient.Transport.(*http.Transport) + + var timedOut int32 // atomic; set to 1 if timed out + t := time.AfterFunc(timeout, func() { + atomic.StoreInt32(&timedOut, 1) + tr.CancelRequest(hreq) + }) + defer t.Stop() + defer func() { + // Check if timeout was exceeded. + if atomic.LoadInt32(&timedOut) != 0 { + err = errTimeout + } + }() + + hresp, err := apiHTTPClient.Do(hreq) + if err != nil { + return nil, &CallError{ + Detail: fmt.Sprintf("service bridge HTTP failed: %v", err), + Code: int32(remotepb.RpcError_UNKNOWN), + } + } + defer hresp.Body.Close() + hrespBody, err := ioutil.ReadAll(hresp.Body) + if hresp.StatusCode != 200 { + return nil, &CallError{ + Detail: fmt.Sprintf("service bridge returned HTTP %d (%q)", hresp.StatusCode, hrespBody), + Code: int32(remotepb.RpcError_UNKNOWN), + } + } + if err != nil { + return nil, &CallError{ + Detail: fmt.Sprintf("service bridge response bad: %v", err), + Code: int32(remotepb.RpcError_UNKNOWN), + } + } + return hrespBody, nil +} + +func Call(ctx netcontext.Context, service, method string, in, out proto.Message) error { + if ns := NamespaceFromContext(ctx); ns != "" { + if fn, ok := NamespaceMods[service]; ok { + fn(in, ns) + } + } + + if f, ctx, ok := callOverrideFromContext(ctx); ok { + return f(ctx, service, method, in, out) + } + + // Handle already-done contexts quickly. + select { + case <-ctx.Done(): + return ctx.Err() + default: + } + + c := fromContext(ctx) + if c == nil { + // Give a good error message rather than a panic lower down. + return errNotAppEngineContext + } + + // Apply transaction modifications if we're in a transaction. + if t := transactionFromContext(ctx); t != nil { + if t.finished { + return errors.New("transaction context has expired") + } + applyTransaction(in, &t.transaction) + } + + // Default RPC timeout is 60s. + timeout := 60 * time.Second + if deadline, ok := ctx.Deadline(); ok { + timeout = deadline.Sub(time.Now()) + } + + data, err := proto.Marshal(in) + if err != nil { + return err + } + + ticket := c.req.Header.Get(ticketHeader) + // Use a test ticket under test environment. + if ticket == "" { + if appid := ctx.Value(&appIDOverrideKey); appid != nil { + ticket = appid.(string) + defaultTicketSuffix + } + } + // Fall back to use background ticket when the request ticket is not available in Flex or dev_appserver. + if ticket == "" { + ticket = DefaultTicket() + } + req := &remotepb.Request{ + ServiceName: &service, + Method: &method, + Request: data, + RequestId: &ticket, + } + hreqBody, err := proto.Marshal(req) + if err != nil { + return err + } + + hrespBody, err := c.post(hreqBody, timeout) + if err != nil { + return err + } + + res := &remotepb.Response{} + if err := proto.Unmarshal(hrespBody, res); err != nil { + return err + } + if res.RpcError != nil { + ce := &CallError{ + Detail: res.RpcError.GetDetail(), + Code: *res.RpcError.Code, + } + switch remotepb.RpcError_ErrorCode(ce.Code) { + case remotepb.RpcError_CANCELLED, remotepb.RpcError_DEADLINE_EXCEEDED: + ce.Timeout = true + } + return ce + } + if res.ApplicationError != nil { + return &APIError{ + Service: *req.ServiceName, + Detail: res.ApplicationError.GetDetail(), + Code: *res.ApplicationError.Code, + } + } + if res.Exception != nil || res.JavaException != nil { + // This shouldn't happen, but let's be defensive. + return &CallError{ + Detail: "service bridge returned exception", + Code: int32(remotepb.RpcError_UNKNOWN), + } + } + return proto.Unmarshal(res.Response, out) +} + +func (c *context) Request() *http.Request { + return c.req +} + +func (c *context) addLogLine(ll *logpb.UserAppLogLine) { + // Truncate long log lines. + // TODO(dsymonds): Check if this is still necessary. + const lim = 8 << 10 + if len(*ll.Message) > lim { + suffix := fmt.Sprintf("...(length %d)", len(*ll.Message)) + ll.Message = proto.String((*ll.Message)[:lim-len(suffix)] + suffix) + } + + c.pendingLogs.Lock() + c.pendingLogs.lines = append(c.pendingLogs.lines, ll) + c.pendingLogs.Unlock() +} + +var logLevelName = map[int64]string{ + 0: "DEBUG", + 1: "INFO", + 2: "WARNING", + 3: "ERROR", + 4: "CRITICAL", +} + +func logf(c *context, level int64, format string, args ...interface{}) { + if c == nil { + panic("not an App Engine context") + } + s := fmt.Sprintf(format, args...) + s = strings.TrimRight(s, "\n") // Remove any trailing newline characters. + c.addLogLine(&logpb.UserAppLogLine{ + TimestampUsec: proto.Int64(time.Now().UnixNano() / 1e3), + Level: &level, + Message: &s, + }) + // Only duplicate log to stderr if not running on App Engine second generation + if !IsSecondGen() { + log.Print(logLevelName[level] + ": " + s) + } +} + +// flushLog attempts to flush any pending logs to the appserver. +// It should not be called concurrently. +func (c *context) flushLog(force bool) (flushed bool) { + c.pendingLogs.Lock() + // Grab up to 30 MB. We can get away with up to 32 MB, but let's be cautious. + n, rem := 0, 30<<20 + for ; n < len(c.pendingLogs.lines); n++ { + ll := c.pendingLogs.lines[n] + // Each log line will require about 3 bytes of overhead. + nb := proto.Size(ll) + 3 + if nb > rem { + break + } + rem -= nb + } + lines := c.pendingLogs.lines[:n] + c.pendingLogs.lines = c.pendingLogs.lines[n:] + c.pendingLogs.Unlock() + + if len(lines) == 0 && !force { + // Nothing to flush. + return false + } + + rescueLogs := false + defer func() { + if rescueLogs { + c.pendingLogs.Lock() + c.pendingLogs.lines = append(lines, c.pendingLogs.lines...) + c.pendingLogs.Unlock() + } + }() + + buf, err := proto.Marshal(&logpb.UserAppLogGroup{ + LogLine: lines, + }) + if err != nil { + log.Printf("internal.flushLog: marshaling UserAppLogGroup: %v", err) + rescueLogs = true + return false + } + + req := &logpb.FlushRequest{ + Logs: buf, + } + res := &basepb.VoidProto{} + c.pendingLogs.Lock() + c.pendingLogs.flushes++ + c.pendingLogs.Unlock() + if err := Call(toContext(c), "logservice", "Flush", req, res); err != nil { + log.Printf("internal.flushLog: Flush RPC: %v", err) + rescueLogs = true + return false + } + return true +} + +const ( + // Log flushing parameters. + flushInterval = 1 * time.Second + forceFlushInterval = 60 * time.Second +) + +func (c *context) logFlusher(stop <-chan int) { + lastFlush := time.Now() + tick := time.NewTicker(flushInterval) + for { + select { + case <-stop: + // Request finished. + tick.Stop() + return + case <-tick.C: + force := time.Now().Sub(lastFlush) > forceFlushInterval + if c.flushLog(force) { + lastFlush = time.Now() + } + } + } +} + +func ContextForTesting(req *http.Request) netcontext.Context { + return toContext(&context{req: req}) +} diff --git a/vendor/google.golang.org/appengine/internal/api_classic.go b/vendor/google.golang.org/appengine/internal/api_classic.go new file mode 100644 index 000000000..f0f40b2e3 --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/api_classic.go @@ -0,0 +1,169 @@ +// Copyright 2015 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +// +build appengine + +package internal + +import ( + "errors" + "fmt" + "net/http" + "time" + + "appengine" + "appengine_internal" + basepb "appengine_internal/base" + + "github.com/golang/protobuf/proto" + netcontext "golang.org/x/net/context" +) + +var contextKey = "holds an appengine.Context" + +// fromContext returns the App Engine context or nil if ctx is not +// derived from an App Engine context. +func fromContext(ctx netcontext.Context) appengine.Context { + c, _ := ctx.Value(&contextKey).(appengine.Context) + return c +} + +// This is only for classic App Engine adapters. +func ClassicContextFromContext(ctx netcontext.Context) (appengine.Context, error) { + c := fromContext(ctx) + if c == nil { + return nil, errNotAppEngineContext + } + return c, nil +} + +func withContext(parent netcontext.Context, c appengine.Context) netcontext.Context { + ctx := netcontext.WithValue(parent, &contextKey, c) + + s := &basepb.StringProto{} + c.Call("__go__", "GetNamespace", &basepb.VoidProto{}, s, nil) + if ns := s.GetValue(); ns != "" { + ctx = NamespacedContext(ctx, ns) + } + + return ctx +} + +func IncomingHeaders(ctx netcontext.Context) http.Header { + if c := fromContext(ctx); c != nil { + if req, ok := c.Request().(*http.Request); ok { + return req.Header + } + } + return nil +} + +func ReqContext(req *http.Request) netcontext.Context { + return WithContext(netcontext.Background(), req) +} + +func WithContext(parent netcontext.Context, req *http.Request) netcontext.Context { + c := appengine.NewContext(req) + return withContext(parent, c) +} + +type testingContext struct { + appengine.Context + + req *http.Request +} + +func (t *testingContext) FullyQualifiedAppID() string { return "dev~testcontext" } +func (t *testingContext) Call(service, method string, _, _ appengine_internal.ProtoMessage, _ *appengine_internal.CallOptions) error { + if service == "__go__" && method == "GetNamespace" { + return nil + } + return fmt.Errorf("testingContext: unsupported Call") +} +func (t *testingContext) Request() interface{} { return t.req } + +func ContextForTesting(req *http.Request) netcontext.Context { + return withContext(netcontext.Background(), &testingContext{req: req}) +} + +func Call(ctx netcontext.Context, service, method string, in, out proto.Message) error { + if ns := NamespaceFromContext(ctx); ns != "" { + if fn, ok := NamespaceMods[service]; ok { + fn(in, ns) + } + } + + if f, ctx, ok := callOverrideFromContext(ctx); ok { + return f(ctx, service, method, in, out) + } + + // Handle already-done contexts quickly. + select { + case <-ctx.Done(): + return ctx.Err() + default: + } + + c := fromContext(ctx) + if c == nil { + // Give a good error message rather than a panic lower down. + return errNotAppEngineContext + } + + // Apply transaction modifications if we're in a transaction. + if t := transactionFromContext(ctx); t != nil { + if t.finished { + return errors.New("transaction context has expired") + } + applyTransaction(in, &t.transaction) + } + + var opts *appengine_internal.CallOptions + if d, ok := ctx.Deadline(); ok { + opts = &appengine_internal.CallOptions{ + Timeout: d.Sub(time.Now()), + } + } + + err := c.Call(service, method, in, out, opts) + switch v := err.(type) { + case *appengine_internal.APIError: + return &APIError{ + Service: v.Service, + Detail: v.Detail, + Code: v.Code, + } + case *appengine_internal.CallError: + return &CallError{ + Detail: v.Detail, + Code: v.Code, + Timeout: v.Timeout, + } + } + return err +} + +func handleHTTP(w http.ResponseWriter, r *http.Request) { + panic("handleHTTP called; this should be impossible") +} + +func logf(c appengine.Context, level int64, format string, args ...interface{}) { + var fn func(format string, args ...interface{}) + switch level { + case 0: + fn = c.Debugf + case 1: + fn = c.Infof + case 2: + fn = c.Warningf + case 3: + fn = c.Errorf + case 4: + fn = c.Criticalf + default: + // This shouldn't happen. + fn = c.Criticalf + } + fn(format, args...) +} diff --git a/vendor/google.golang.org/appengine/internal/api_common.go b/vendor/google.golang.org/appengine/internal/api_common.go new file mode 100644 index 000000000..e0c0b214b --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/api_common.go @@ -0,0 +1,123 @@ +// Copyright 2015 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package internal + +import ( + "errors" + "os" + + "github.com/golang/protobuf/proto" + netcontext "golang.org/x/net/context" +) + +var errNotAppEngineContext = errors.New("not an App Engine context") + +type CallOverrideFunc func(ctx netcontext.Context, service, method string, in, out proto.Message) error + +var callOverrideKey = "holds []CallOverrideFunc" + +func WithCallOverride(ctx netcontext.Context, f CallOverrideFunc) netcontext.Context { + // We avoid appending to any existing call override + // so we don't risk overwriting a popped stack below. + var cofs []CallOverrideFunc + if uf, ok := ctx.Value(&callOverrideKey).([]CallOverrideFunc); ok { + cofs = append(cofs, uf...) + } + cofs = append(cofs, f) + return netcontext.WithValue(ctx, &callOverrideKey, cofs) +} + +func callOverrideFromContext(ctx netcontext.Context) (CallOverrideFunc, netcontext.Context, bool) { + cofs, _ := ctx.Value(&callOverrideKey).([]CallOverrideFunc) + if len(cofs) == 0 { + return nil, nil, false + } + // We found a list of overrides; grab the last, and reconstitute a + // context that will hide it. + f := cofs[len(cofs)-1] + ctx = netcontext.WithValue(ctx, &callOverrideKey, cofs[:len(cofs)-1]) + return f, ctx, true +} + +type logOverrideFunc func(level int64, format string, args ...interface{}) + +var logOverrideKey = "holds a logOverrideFunc" + +func WithLogOverride(ctx netcontext.Context, f logOverrideFunc) netcontext.Context { + return netcontext.WithValue(ctx, &logOverrideKey, f) +} + +var appIDOverrideKey = "holds a string, being the full app ID" + +func WithAppIDOverride(ctx netcontext.Context, appID string) netcontext.Context { + return netcontext.WithValue(ctx, &appIDOverrideKey, appID) +} + +var namespaceKey = "holds the namespace string" + +func withNamespace(ctx netcontext.Context, ns string) netcontext.Context { + return netcontext.WithValue(ctx, &namespaceKey, ns) +} + +func NamespaceFromContext(ctx netcontext.Context) string { + // If there's no namespace, return the empty string. + ns, _ := ctx.Value(&namespaceKey).(string) + return ns +} + +// FullyQualifiedAppID returns the fully-qualified application ID. +// This may contain a partition prefix (e.g. "s~" for High Replication apps), +// or a domain prefix (e.g. "example.com:"). +func FullyQualifiedAppID(ctx netcontext.Context) string { + if id, ok := ctx.Value(&appIDOverrideKey).(string); ok { + return id + } + return fullyQualifiedAppID(ctx) +} + +func Logf(ctx netcontext.Context, level int64, format string, args ...interface{}) { + if f, ok := ctx.Value(&logOverrideKey).(logOverrideFunc); ok { + f(level, format, args...) + return + } + c := fromContext(ctx) + if c == nil { + panic(errNotAppEngineContext) + } + logf(c, level, format, args...) +} + +// NamespacedContext wraps a Context to support namespaces. +func NamespacedContext(ctx netcontext.Context, namespace string) netcontext.Context { + return withNamespace(ctx, namespace) +} + +// SetTestEnv sets the env variables for testing background ticket in Flex. +func SetTestEnv() func() { + var environ = []struct { + key, value string + }{ + {"GAE_LONG_APP_ID", "my-app-id"}, + {"GAE_MINOR_VERSION", "067924799508853122"}, + {"GAE_MODULE_INSTANCE", "0"}, + {"GAE_MODULE_NAME", "default"}, + {"GAE_MODULE_VERSION", "20150612t184001"}, + } + + for _, v := range environ { + old := os.Getenv(v.key) + os.Setenv(v.key, v.value) + v.value = old + } + return func() { // Restore old environment after the test completes. + for _, v := range environ { + if v.value == "" { + os.Unsetenv(v.key) + continue + } + os.Setenv(v.key, v.value) + } + } +} diff --git a/vendor/google.golang.org/appengine/internal/api_race_test.go b/vendor/google.golang.org/appengine/internal/api_race_test.go new file mode 100644 index 000000000..6cfe90649 --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/api_race_test.go @@ -0,0 +1,9 @@ +// Copyright 2014 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +// +build race + +package internal + +func init() { raceDetector = true } diff --git a/vendor/google.golang.org/appengine/internal/api_test.go b/vendor/google.golang.org/appengine/internal/api_test.go new file mode 100644 index 000000000..8369b335c --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/api_test.go @@ -0,0 +1,500 @@ +// Copyright 2014 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +// +build !appengine + +package internal + +import ( + "bufio" + "bytes" + "fmt" + "io" + "io/ioutil" + "net/http" + "net/http/httptest" + "net/url" + "os" + "os/exec" + "strings" + "sync/atomic" + "testing" + "time" + + "github.com/golang/protobuf/proto" + netcontext "golang.org/x/net/context" + + basepb "google.golang.org/appengine/internal/base" + remotepb "google.golang.org/appengine/internal/remote_api" +) + +const testTicketHeader = "X-Magic-Ticket-Header" + +func init() { + ticketHeader = testTicketHeader +} + +type fakeAPIHandler struct { + hang chan int // used for RunSlowly RPC + + LogFlushes int32 // atomic +} + +func (f *fakeAPIHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { + writeResponse := func(res *remotepb.Response) { + hresBody, err := proto.Marshal(res) + if err != nil { + http.Error(w, fmt.Sprintf("Failed encoding API response: %v", err), 500) + return + } + w.Write(hresBody) + } + + if r.URL.Path != "/rpc_http" { + http.NotFound(w, r) + return + } + hreqBody, err := ioutil.ReadAll(r.Body) + if err != nil { + http.Error(w, fmt.Sprintf("Bad body: %v", err), 500) + return + } + apiReq := &remotepb.Request{} + if err := proto.Unmarshal(hreqBody, apiReq); err != nil { + http.Error(w, fmt.Sprintf("Bad encoded API request: %v", err), 500) + return + } + if *apiReq.RequestId != "s3cr3t" && *apiReq.RequestId != DefaultTicket() { + writeResponse(&remotepb.Response{ + RpcError: &remotepb.RpcError{ + Code: proto.Int32(int32(remotepb.RpcError_SECURITY_VIOLATION)), + Detail: proto.String("bad security ticket"), + }, + }) + return + } + if got, want := r.Header.Get(dapperHeader), "trace-001"; got != want { + writeResponse(&remotepb.Response{ + RpcError: &remotepb.RpcError{ + Code: proto.Int32(int32(remotepb.RpcError_BAD_REQUEST)), + Detail: proto.String(fmt.Sprintf("trace info = %q, want %q", got, want)), + }, + }) + return + } + + service, method := *apiReq.ServiceName, *apiReq.Method + var resOut proto.Message + if service == "actordb" && method == "LookupActor" { + req := &basepb.StringProto{} + res := &basepb.StringProto{} + if err := proto.Unmarshal(apiReq.Request, req); err != nil { + http.Error(w, fmt.Sprintf("Bad encoded request: %v", err), 500) + return + } + if *req.Value == "Doctor Who" { + res.Value = proto.String("David Tennant") + } + resOut = res + } + if service == "errors" { + switch method { + case "Non200": + http.Error(w, "I'm a little teapot.", 418) + return + case "ShortResponse": + w.Header().Set("Content-Length", "100") + w.Write([]byte("way too short")) + return + case "OverQuota": + writeResponse(&remotepb.Response{ + RpcError: &remotepb.RpcError{ + Code: proto.Int32(int32(remotepb.RpcError_OVER_QUOTA)), + Detail: proto.String("you are hogging the resources!"), + }, + }) + return + case "RunSlowly": + // TestAPICallRPCFailure creates f.hang, but does not strobe it + // until Call returns with remotepb.RpcError_CANCELLED. + // This is here to force a happens-before relationship between + // the httptest server handler and shutdown. + <-f.hang + resOut = &basepb.VoidProto{} + } + } + if service == "logservice" && method == "Flush" { + // Pretend log flushing is slow. + time.Sleep(50 * time.Millisecond) + atomic.AddInt32(&f.LogFlushes, 1) + resOut = &basepb.VoidProto{} + } + + encOut, err := proto.Marshal(resOut) + if err != nil { + http.Error(w, fmt.Sprintf("Failed encoding response: %v", err), 500) + return + } + writeResponse(&remotepb.Response{ + Response: encOut, + }) +} + +func setup() (f *fakeAPIHandler, c *context, cleanup func()) { + f = &fakeAPIHandler{} + srv := httptest.NewServer(f) + u, err := url.Parse(srv.URL + apiPath) + if err != nil { + panic(fmt.Sprintf("url.Parse(%q): %v", srv.URL+apiPath, err)) + } + return f, &context{ + req: &http.Request{ + Header: http.Header{ + ticketHeader: []string{"s3cr3t"}, + dapperHeader: []string{"trace-001"}, + }, + }, + apiURL: u, + }, srv.Close +} + +func TestAPICall(t *testing.T) { + _, c, cleanup := setup() + defer cleanup() + + req := &basepb.StringProto{ + Value: proto.String("Doctor Who"), + } + res := &basepb.StringProto{} + err := Call(toContext(c), "actordb", "LookupActor", req, res) + if err != nil { + t.Fatalf("API call failed: %v", err) + } + if got, want := *res.Value, "David Tennant"; got != want { + t.Errorf("Response is %q, want %q", got, want) + } +} + +func TestAPICallTicketUnavailable(t *testing.T) { + resetEnv := SetTestEnv() + defer resetEnv() + _, c, cleanup := setup() + defer cleanup() + + c.req.Header.Set(ticketHeader, "") + req := &basepb.StringProto{ + Value: proto.String("Doctor Who"), + } + res := &basepb.StringProto{} + err := Call(toContext(c), "actordb", "LookupActor", req, res) + if err != nil { + t.Fatalf("API call failed: %v", err) + } + if got, want := *res.Value, "David Tennant"; got != want { + t.Errorf("Response is %q, want %q", got, want) + } +} + +func TestAPICallRPCFailure(t *testing.T) { + f, c, cleanup := setup() + defer cleanup() + + testCases := []struct { + method string + code remotepb.RpcError_ErrorCode + }{ + {"Non200", remotepb.RpcError_UNKNOWN}, + {"ShortResponse", remotepb.RpcError_UNKNOWN}, + {"OverQuota", remotepb.RpcError_OVER_QUOTA}, + {"RunSlowly", remotepb.RpcError_CANCELLED}, + } + f.hang = make(chan int) // only for RunSlowly + for _, tc := range testCases { + ctx, _ := netcontext.WithTimeout(toContext(c), 100*time.Millisecond) + err := Call(ctx, "errors", tc.method, &basepb.VoidProto{}, &basepb.VoidProto{}) + ce, ok := err.(*CallError) + if !ok { + t.Errorf("%s: API call error is %T (%v), want *CallError", tc.method, err, err) + continue + } + if ce.Code != int32(tc.code) { + t.Errorf("%s: ce.Code = %d, want %d", tc.method, ce.Code, tc.code) + } + if tc.method == "RunSlowly" { + f.hang <- 1 // release the HTTP handler + } + } +} + +func TestAPICallDialFailure(t *testing.T) { + // See what happens if the API host is unresponsive. + // This should time out quickly, not hang forever. + _, c, cleanup := setup() + defer cleanup() + // Reset the URL to the production address so that dialing fails. + c.apiURL = apiURL() + + start := time.Now() + err := Call(toContext(c), "foo", "bar", &basepb.VoidProto{}, &basepb.VoidProto{}) + const max = 1 * time.Second + if taken := time.Since(start); taken > max { + t.Errorf("Dial hang took too long: %v > %v", taken, max) + } + if err == nil { + t.Error("Call did not fail") + } +} + +func TestDelayedLogFlushing(t *testing.T) { + f, c, cleanup := setup() + defer cleanup() + + http.HandleFunc("/slow_log", func(w http.ResponseWriter, r *http.Request) { + logC := WithContext(netcontext.Background(), r) + fromContext(logC).apiURL = c.apiURL // Otherwise it will try to use the default URL. + Logf(logC, 1, "It's a lovely day.") + w.WriteHeader(200) + time.Sleep(1200 * time.Millisecond) + w.Write(make([]byte, 100<<10)) // write 100 KB to force HTTP flush + }) + + r := &http.Request{ + Method: "GET", + URL: &url.URL{ + Scheme: "http", + Path: "/slow_log", + }, + Header: c.req.Header, + Body: ioutil.NopCloser(bytes.NewReader(nil)), + } + w := httptest.NewRecorder() + + handled := make(chan struct{}) + go func() { + defer close(handled) + handleHTTP(w, r) + }() + // Check that the log flush eventually comes in. + time.Sleep(1200 * time.Millisecond) + if f := atomic.LoadInt32(&f.LogFlushes); f != 1 { + t.Errorf("After 1.2s: f.LogFlushes = %d, want 1", f) + } + + <-handled + const hdr = "X-AppEngine-Log-Flush-Count" + if got, want := w.HeaderMap.Get(hdr), "1"; got != want { + t.Errorf("%s header = %q, want %q", hdr, got, want) + } + if got, want := atomic.LoadInt32(&f.LogFlushes), int32(2); got != want { + t.Errorf("After HTTP response: f.LogFlushes = %d, want %d", got, want) + } + +} + +func TestLogFlushing(t *testing.T) { + f, c, cleanup := setup() + defer cleanup() + + http.HandleFunc("/quick_log", func(w http.ResponseWriter, r *http.Request) { + logC := WithContext(netcontext.Background(), r) + fromContext(logC).apiURL = c.apiURL // Otherwise it will try to use the default URL. + Logf(logC, 1, "It's a lovely day.") + w.WriteHeader(200) + w.Write(make([]byte, 100<<10)) // write 100 KB to force HTTP flush + }) + + r := &http.Request{ + Method: "GET", + URL: &url.URL{ + Scheme: "http", + Path: "/quick_log", + }, + Header: c.req.Header, + Body: ioutil.NopCloser(bytes.NewReader(nil)), + } + w := httptest.NewRecorder() + + handleHTTP(w, r) + const hdr = "X-AppEngine-Log-Flush-Count" + if got, want := w.HeaderMap.Get(hdr), "1"; got != want { + t.Errorf("%s header = %q, want %q", hdr, got, want) + } + if got, want := atomic.LoadInt32(&f.LogFlushes), int32(1); got != want { + t.Errorf("After HTTP response: f.LogFlushes = %d, want %d", got, want) + } +} + +func TestRemoteAddr(t *testing.T) { + var addr string + http.HandleFunc("/remote_addr", func(w http.ResponseWriter, r *http.Request) { + addr = r.RemoteAddr + }) + + testCases := []struct { + headers http.Header + addr string + }{ + {http.Header{"X-Appengine-User-Ip": []string{"10.5.2.1"}}, "10.5.2.1:80"}, + {http.Header{"X-Appengine-Remote-Addr": []string{"1.2.3.4"}}, "1.2.3.4:80"}, + {http.Header{"X-Appengine-Remote-Addr": []string{"1.2.3.4:8080"}}, "1.2.3.4:8080"}, + { + http.Header{"X-Appengine-Remote-Addr": []string{"2401:fa00:9:1:7646:a0ff:fe90:ca66"}}, + "[2401:fa00:9:1:7646:a0ff:fe90:ca66]:80", + }, + { + http.Header{"X-Appengine-Remote-Addr": []string{"[::1]:http"}}, + "[::1]:http", + }, + {http.Header{}, "127.0.0.1:80"}, + } + + for _, tc := range testCases { + r := &http.Request{ + Method: "GET", + URL: &url.URL{Scheme: "http", Path: "/remote_addr"}, + Header: tc.headers, + Body: ioutil.NopCloser(bytes.NewReader(nil)), + } + handleHTTP(httptest.NewRecorder(), r) + if addr != tc.addr { + t.Errorf("Header %v, got %q, want %q", tc.headers, addr, tc.addr) + } + } +} + +func TestPanickingHandler(t *testing.T) { + http.HandleFunc("/panic", func(http.ResponseWriter, *http.Request) { + panic("whoops!") + }) + r := &http.Request{ + Method: "GET", + URL: &url.URL{Scheme: "http", Path: "/panic"}, + Body: ioutil.NopCloser(bytes.NewReader(nil)), + } + rec := httptest.NewRecorder() + handleHTTP(rec, r) + if rec.Code != 500 { + t.Errorf("Panicking handler returned HTTP %d, want HTTP %d", rec.Code, 500) + } +} + +var raceDetector = false + +func TestAPICallAllocations(t *testing.T) { + if raceDetector { + t.Skip("not running under race detector") + } + + // Run the test API server in a subprocess so we aren't counting its allocations. + u, cleanup := launchHelperProcess(t) + defer cleanup() + c := &context{ + req: &http.Request{ + Header: http.Header{ + ticketHeader: []string{"s3cr3t"}, + dapperHeader: []string{"trace-001"}, + }, + }, + apiURL: u, + } + + req := &basepb.StringProto{ + Value: proto.String("Doctor Who"), + } + res := &basepb.StringProto{} + var apiErr error + avg := testing.AllocsPerRun(100, func() { + ctx, _ := netcontext.WithTimeout(toContext(c), 100*time.Millisecond) + if err := Call(ctx, "actordb", "LookupActor", req, res); err != nil && apiErr == nil { + apiErr = err // get the first error only + } + }) + if apiErr != nil { + t.Errorf("API call failed: %v", apiErr) + } + + // Lots of room for improvement... + const min, max float64 = 60, 85 + if avg < min || max < avg { + t.Errorf("Allocations per API call = %g, want in [%g,%g]", avg, min, max) + } +} + +func launchHelperProcess(t *testing.T) (apiURL *url.URL, cleanup func()) { + cmd := exec.Command(os.Args[0], "-test.run=TestHelperProcess") + cmd.Env = []string{"GO_WANT_HELPER_PROCESS=1"} + stdin, err := cmd.StdinPipe() + if err != nil { + t.Fatalf("StdinPipe: %v", err) + } + stdout, err := cmd.StdoutPipe() + if err != nil { + t.Fatalf("StdoutPipe: %v", err) + } + if err := cmd.Start(); err != nil { + t.Fatalf("Starting helper process: %v", err) + } + + scan := bufio.NewScanner(stdout) + var u *url.URL + for scan.Scan() { + line := scan.Text() + if hp := strings.TrimPrefix(line, helperProcessMagic); hp != line { + var err error + u, err = url.Parse(hp) + if err != nil { + t.Fatalf("Failed to parse %q: %v", hp, err) + } + break + } + } + if err := scan.Err(); err != nil { + t.Fatalf("Scanning helper process stdout: %v", err) + } + if u == nil { + t.Fatal("Helper process never reported") + } + + return u, func() { + stdin.Close() + if err := cmd.Wait(); err != nil { + t.Errorf("Helper process did not exit cleanly: %v", err) + } + } +} + +const helperProcessMagic = "A lovely helper process is listening at " + +// This isn't a real test. It's used as a helper process. +func TestHelperProcess(*testing.T) { + if os.Getenv("GO_WANT_HELPER_PROCESS") != "1" { + return + } + defer os.Exit(0) + + f := &fakeAPIHandler{} + srv := httptest.NewServer(f) + defer srv.Close() + fmt.Println(helperProcessMagic + srv.URL + apiPath) + + // Wait for stdin to be closed. + io.Copy(ioutil.Discard, os.Stdin) +} + +func TestBackgroundContext(t *testing.T) { + resetEnv := SetTestEnv() + defer resetEnv() + + ctx, key := fromContext(BackgroundContext()), "X-Magic-Ticket-Header" + if g, w := ctx.req.Header.Get(key), "my-app-id/default.20150612t184001.0"; g != w { + t.Errorf("%v = %q, want %q", key, g, w) + } + + // Check that using the background context doesn't panic. + req := &basepb.StringProto{ + Value: proto.String("Doctor Who"), + } + res := &basepb.StringProto{} + Call(BackgroundContext(), "actordb", "LookupActor", req, res) // expected to fail +} diff --git a/vendor/google.golang.org/appengine/internal/app_id.go b/vendor/google.golang.org/appengine/internal/app_id.go new file mode 100644 index 000000000..11df8c07b --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/app_id.go @@ -0,0 +1,28 @@ +// Copyright 2011 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package internal + +import ( + "strings" +) + +func parseFullAppID(appid string) (partition, domain, displayID string) { + if i := strings.Index(appid, "~"); i != -1 { + partition, appid = appid[:i], appid[i+1:] + } + if i := strings.Index(appid, ":"); i != -1 { + domain, appid = appid[:i], appid[i+1:] + } + return partition, domain, appid +} + +// appID returns "appid" or "domain.com:appid". +func appID(fullAppID string) string { + _, dom, dis := parseFullAppID(fullAppID) + if dom != "" { + return dom + ":" + dis + } + return dis +} diff --git a/vendor/google.golang.org/appengine/internal/app_id_test.go b/vendor/google.golang.org/appengine/internal/app_id_test.go new file mode 100644 index 000000000..e69195cd4 --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/app_id_test.go @@ -0,0 +1,34 @@ +// Copyright 2011 Google Inc. All Rights Reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package internal + +import ( + "testing" +) + +func TestAppIDParsing(t *testing.T) { + testCases := []struct { + in string + partition, domain, displayID string + }{ + {"simple-app-id", "", "", "simple-app-id"}, + {"domain.com:domain-app-id", "", "domain.com", "domain-app-id"}, + {"part~partition-app-id", "part", "", "partition-app-id"}, + {"part~domain.com:display", "part", "domain.com", "display"}, + } + + for _, tc := range testCases { + part, dom, dis := parseFullAppID(tc.in) + if part != tc.partition { + t.Errorf("partition of %q: got %q, want %q", tc.in, part, tc.partition) + } + if dom != tc.domain { + t.Errorf("domain of %q: got %q, want %q", tc.in, dom, tc.domain) + } + if dis != tc.displayID { + t.Errorf("displayID of %q: got %q, want %q", tc.in, dis, tc.displayID) + } + } +} diff --git a/vendor/google.golang.org/appengine/internal/app_identity/app_identity_service.pb.go b/vendor/google.golang.org/appengine/internal/app_identity/app_identity_service.pb.go new file mode 100644 index 000000000..9a2ff77ab --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/app_identity/app_identity_service.pb.go @@ -0,0 +1,611 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google.golang.org/appengine/internal/app_identity/app_identity_service.proto + +package app_identity + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +type AppIdentityServiceError_ErrorCode int32 + +const ( + AppIdentityServiceError_SUCCESS AppIdentityServiceError_ErrorCode = 0 + AppIdentityServiceError_UNKNOWN_SCOPE AppIdentityServiceError_ErrorCode = 9 + AppIdentityServiceError_BLOB_TOO_LARGE AppIdentityServiceError_ErrorCode = 1000 + AppIdentityServiceError_DEADLINE_EXCEEDED AppIdentityServiceError_ErrorCode = 1001 + AppIdentityServiceError_NOT_A_VALID_APP AppIdentityServiceError_ErrorCode = 1002 + AppIdentityServiceError_UNKNOWN_ERROR AppIdentityServiceError_ErrorCode = 1003 + AppIdentityServiceError_NOT_ALLOWED AppIdentityServiceError_ErrorCode = 1005 + AppIdentityServiceError_NOT_IMPLEMENTED AppIdentityServiceError_ErrorCode = 1006 +) + +var AppIdentityServiceError_ErrorCode_name = map[int32]string{ + 0: "SUCCESS", + 9: "UNKNOWN_SCOPE", + 1000: "BLOB_TOO_LARGE", + 1001: "DEADLINE_EXCEEDED", + 1002: "NOT_A_VALID_APP", + 1003: "UNKNOWN_ERROR", + 1005: "NOT_ALLOWED", + 1006: "NOT_IMPLEMENTED", +} +var AppIdentityServiceError_ErrorCode_value = map[string]int32{ + "SUCCESS": 0, + "UNKNOWN_SCOPE": 9, + "BLOB_TOO_LARGE": 1000, + "DEADLINE_EXCEEDED": 1001, + "NOT_A_VALID_APP": 1002, + "UNKNOWN_ERROR": 1003, + "NOT_ALLOWED": 1005, + "NOT_IMPLEMENTED": 1006, +} + +func (x AppIdentityServiceError_ErrorCode) Enum() *AppIdentityServiceError_ErrorCode { + p := new(AppIdentityServiceError_ErrorCode) + *p = x + return p +} +func (x AppIdentityServiceError_ErrorCode) String() string { + return proto.EnumName(AppIdentityServiceError_ErrorCode_name, int32(x)) +} +func (x *AppIdentityServiceError_ErrorCode) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(AppIdentityServiceError_ErrorCode_value, data, "AppIdentityServiceError_ErrorCode") + if err != nil { + return err + } + *x = AppIdentityServiceError_ErrorCode(value) + return nil +} +func (AppIdentityServiceError_ErrorCode) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_app_identity_service_08a6e3f74b04cfa4, []int{0, 0} +} + +type AppIdentityServiceError struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AppIdentityServiceError) Reset() { *m = AppIdentityServiceError{} } +func (m *AppIdentityServiceError) String() string { return proto.CompactTextString(m) } +func (*AppIdentityServiceError) ProtoMessage() {} +func (*AppIdentityServiceError) Descriptor() ([]byte, []int) { + return fileDescriptor_app_identity_service_08a6e3f74b04cfa4, []int{0} +} +func (m *AppIdentityServiceError) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AppIdentityServiceError.Unmarshal(m, b) +} +func (m *AppIdentityServiceError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AppIdentityServiceError.Marshal(b, m, deterministic) +} +func (dst *AppIdentityServiceError) XXX_Merge(src proto.Message) { + xxx_messageInfo_AppIdentityServiceError.Merge(dst, src) +} +func (m *AppIdentityServiceError) XXX_Size() int { + return xxx_messageInfo_AppIdentityServiceError.Size(m) +} +func (m *AppIdentityServiceError) XXX_DiscardUnknown() { + xxx_messageInfo_AppIdentityServiceError.DiscardUnknown(m) +} + +var xxx_messageInfo_AppIdentityServiceError proto.InternalMessageInfo + +type SignForAppRequest struct { + BytesToSign []byte `protobuf:"bytes,1,opt,name=bytes_to_sign,json=bytesToSign" json:"bytes_to_sign,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SignForAppRequest) Reset() { *m = SignForAppRequest{} } +func (m *SignForAppRequest) String() string { return proto.CompactTextString(m) } +func (*SignForAppRequest) ProtoMessage() {} +func (*SignForAppRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_app_identity_service_08a6e3f74b04cfa4, []int{1} +} +func (m *SignForAppRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SignForAppRequest.Unmarshal(m, b) +} +func (m *SignForAppRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SignForAppRequest.Marshal(b, m, deterministic) +} +func (dst *SignForAppRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_SignForAppRequest.Merge(dst, src) +} +func (m *SignForAppRequest) XXX_Size() int { + return xxx_messageInfo_SignForAppRequest.Size(m) +} +func (m *SignForAppRequest) XXX_DiscardUnknown() { + xxx_messageInfo_SignForAppRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_SignForAppRequest proto.InternalMessageInfo + +func (m *SignForAppRequest) GetBytesToSign() []byte { + if m != nil { + return m.BytesToSign + } + return nil +} + +type SignForAppResponse struct { + KeyName *string `protobuf:"bytes,1,opt,name=key_name,json=keyName" json:"key_name,omitempty"` + SignatureBytes []byte `protobuf:"bytes,2,opt,name=signature_bytes,json=signatureBytes" json:"signature_bytes,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SignForAppResponse) Reset() { *m = SignForAppResponse{} } +func (m *SignForAppResponse) String() string { return proto.CompactTextString(m) } +func (*SignForAppResponse) ProtoMessage() {} +func (*SignForAppResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_app_identity_service_08a6e3f74b04cfa4, []int{2} +} +func (m *SignForAppResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SignForAppResponse.Unmarshal(m, b) +} +func (m *SignForAppResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SignForAppResponse.Marshal(b, m, deterministic) +} +func (dst *SignForAppResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_SignForAppResponse.Merge(dst, src) +} +func (m *SignForAppResponse) XXX_Size() int { + return xxx_messageInfo_SignForAppResponse.Size(m) +} +func (m *SignForAppResponse) XXX_DiscardUnknown() { + xxx_messageInfo_SignForAppResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_SignForAppResponse proto.InternalMessageInfo + +func (m *SignForAppResponse) GetKeyName() string { + if m != nil && m.KeyName != nil { + return *m.KeyName + } + return "" +} + +func (m *SignForAppResponse) GetSignatureBytes() []byte { + if m != nil { + return m.SignatureBytes + } + return nil +} + +type GetPublicCertificateForAppRequest struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetPublicCertificateForAppRequest) Reset() { *m = GetPublicCertificateForAppRequest{} } +func (m *GetPublicCertificateForAppRequest) String() string { return proto.CompactTextString(m) } +func (*GetPublicCertificateForAppRequest) ProtoMessage() {} +func (*GetPublicCertificateForAppRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_app_identity_service_08a6e3f74b04cfa4, []int{3} +} +func (m *GetPublicCertificateForAppRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetPublicCertificateForAppRequest.Unmarshal(m, b) +} +func (m *GetPublicCertificateForAppRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetPublicCertificateForAppRequest.Marshal(b, m, deterministic) +} +func (dst *GetPublicCertificateForAppRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetPublicCertificateForAppRequest.Merge(dst, src) +} +func (m *GetPublicCertificateForAppRequest) XXX_Size() int { + return xxx_messageInfo_GetPublicCertificateForAppRequest.Size(m) +} +func (m *GetPublicCertificateForAppRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetPublicCertificateForAppRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetPublicCertificateForAppRequest proto.InternalMessageInfo + +type PublicCertificate struct { + KeyName *string `protobuf:"bytes,1,opt,name=key_name,json=keyName" json:"key_name,omitempty"` + X509CertificatePem *string `protobuf:"bytes,2,opt,name=x509_certificate_pem,json=x509CertificatePem" json:"x509_certificate_pem,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PublicCertificate) Reset() { *m = PublicCertificate{} } +func (m *PublicCertificate) String() string { return proto.CompactTextString(m) } +func (*PublicCertificate) ProtoMessage() {} +func (*PublicCertificate) Descriptor() ([]byte, []int) { + return fileDescriptor_app_identity_service_08a6e3f74b04cfa4, []int{4} +} +func (m *PublicCertificate) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PublicCertificate.Unmarshal(m, b) +} +func (m *PublicCertificate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PublicCertificate.Marshal(b, m, deterministic) +} +func (dst *PublicCertificate) XXX_Merge(src proto.Message) { + xxx_messageInfo_PublicCertificate.Merge(dst, src) +} +func (m *PublicCertificate) XXX_Size() int { + return xxx_messageInfo_PublicCertificate.Size(m) +} +func (m *PublicCertificate) XXX_DiscardUnknown() { + xxx_messageInfo_PublicCertificate.DiscardUnknown(m) +} + +var xxx_messageInfo_PublicCertificate proto.InternalMessageInfo + +func (m *PublicCertificate) GetKeyName() string { + if m != nil && m.KeyName != nil { + return *m.KeyName + } + return "" +} + +func (m *PublicCertificate) GetX509CertificatePem() string { + if m != nil && m.X509CertificatePem != nil { + return *m.X509CertificatePem + } + return "" +} + +type GetPublicCertificateForAppResponse struct { + PublicCertificateList []*PublicCertificate `protobuf:"bytes,1,rep,name=public_certificate_list,json=publicCertificateList" json:"public_certificate_list,omitempty"` + MaxClientCacheTimeInSecond *int64 `protobuf:"varint,2,opt,name=max_client_cache_time_in_second,json=maxClientCacheTimeInSecond" json:"max_client_cache_time_in_second,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetPublicCertificateForAppResponse) Reset() { *m = GetPublicCertificateForAppResponse{} } +func (m *GetPublicCertificateForAppResponse) String() string { return proto.CompactTextString(m) } +func (*GetPublicCertificateForAppResponse) ProtoMessage() {} +func (*GetPublicCertificateForAppResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_app_identity_service_08a6e3f74b04cfa4, []int{5} +} +func (m *GetPublicCertificateForAppResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetPublicCertificateForAppResponse.Unmarshal(m, b) +} +func (m *GetPublicCertificateForAppResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetPublicCertificateForAppResponse.Marshal(b, m, deterministic) +} +func (dst *GetPublicCertificateForAppResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetPublicCertificateForAppResponse.Merge(dst, src) +} +func (m *GetPublicCertificateForAppResponse) XXX_Size() int { + return xxx_messageInfo_GetPublicCertificateForAppResponse.Size(m) +} +func (m *GetPublicCertificateForAppResponse) XXX_DiscardUnknown() { + xxx_messageInfo_GetPublicCertificateForAppResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_GetPublicCertificateForAppResponse proto.InternalMessageInfo + +func (m *GetPublicCertificateForAppResponse) GetPublicCertificateList() []*PublicCertificate { + if m != nil { + return m.PublicCertificateList + } + return nil +} + +func (m *GetPublicCertificateForAppResponse) GetMaxClientCacheTimeInSecond() int64 { + if m != nil && m.MaxClientCacheTimeInSecond != nil { + return *m.MaxClientCacheTimeInSecond + } + return 0 +} + +type GetServiceAccountNameRequest struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetServiceAccountNameRequest) Reset() { *m = GetServiceAccountNameRequest{} } +func (m *GetServiceAccountNameRequest) String() string { return proto.CompactTextString(m) } +func (*GetServiceAccountNameRequest) ProtoMessage() {} +func (*GetServiceAccountNameRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_app_identity_service_08a6e3f74b04cfa4, []int{6} +} +func (m *GetServiceAccountNameRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetServiceAccountNameRequest.Unmarshal(m, b) +} +func (m *GetServiceAccountNameRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetServiceAccountNameRequest.Marshal(b, m, deterministic) +} +func (dst *GetServiceAccountNameRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetServiceAccountNameRequest.Merge(dst, src) +} +func (m *GetServiceAccountNameRequest) XXX_Size() int { + return xxx_messageInfo_GetServiceAccountNameRequest.Size(m) +} +func (m *GetServiceAccountNameRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetServiceAccountNameRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetServiceAccountNameRequest proto.InternalMessageInfo + +type GetServiceAccountNameResponse struct { + ServiceAccountName *string `protobuf:"bytes,1,opt,name=service_account_name,json=serviceAccountName" json:"service_account_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetServiceAccountNameResponse) Reset() { *m = GetServiceAccountNameResponse{} } +func (m *GetServiceAccountNameResponse) String() string { return proto.CompactTextString(m) } +func (*GetServiceAccountNameResponse) ProtoMessage() {} +func (*GetServiceAccountNameResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_app_identity_service_08a6e3f74b04cfa4, []int{7} +} +func (m *GetServiceAccountNameResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetServiceAccountNameResponse.Unmarshal(m, b) +} +func (m *GetServiceAccountNameResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetServiceAccountNameResponse.Marshal(b, m, deterministic) +} +func (dst *GetServiceAccountNameResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetServiceAccountNameResponse.Merge(dst, src) +} +func (m *GetServiceAccountNameResponse) XXX_Size() int { + return xxx_messageInfo_GetServiceAccountNameResponse.Size(m) +} +func (m *GetServiceAccountNameResponse) XXX_DiscardUnknown() { + xxx_messageInfo_GetServiceAccountNameResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_GetServiceAccountNameResponse proto.InternalMessageInfo + +func (m *GetServiceAccountNameResponse) GetServiceAccountName() string { + if m != nil && m.ServiceAccountName != nil { + return *m.ServiceAccountName + } + return "" +} + +type GetAccessTokenRequest struct { + Scope []string `protobuf:"bytes,1,rep,name=scope" json:"scope,omitempty"` + ServiceAccountId *int64 `protobuf:"varint,2,opt,name=service_account_id,json=serviceAccountId" json:"service_account_id,omitempty"` + ServiceAccountName *string `protobuf:"bytes,3,opt,name=service_account_name,json=serviceAccountName" json:"service_account_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetAccessTokenRequest) Reset() { *m = GetAccessTokenRequest{} } +func (m *GetAccessTokenRequest) String() string { return proto.CompactTextString(m) } +func (*GetAccessTokenRequest) ProtoMessage() {} +func (*GetAccessTokenRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_app_identity_service_08a6e3f74b04cfa4, []int{8} +} +func (m *GetAccessTokenRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetAccessTokenRequest.Unmarshal(m, b) +} +func (m *GetAccessTokenRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetAccessTokenRequest.Marshal(b, m, deterministic) +} +func (dst *GetAccessTokenRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetAccessTokenRequest.Merge(dst, src) +} +func (m *GetAccessTokenRequest) XXX_Size() int { + return xxx_messageInfo_GetAccessTokenRequest.Size(m) +} +func (m *GetAccessTokenRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetAccessTokenRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetAccessTokenRequest proto.InternalMessageInfo + +func (m *GetAccessTokenRequest) GetScope() []string { + if m != nil { + return m.Scope + } + return nil +} + +func (m *GetAccessTokenRequest) GetServiceAccountId() int64 { + if m != nil && m.ServiceAccountId != nil { + return *m.ServiceAccountId + } + return 0 +} + +func (m *GetAccessTokenRequest) GetServiceAccountName() string { + if m != nil && m.ServiceAccountName != nil { + return *m.ServiceAccountName + } + return "" +} + +type GetAccessTokenResponse struct { + AccessToken *string `protobuf:"bytes,1,opt,name=access_token,json=accessToken" json:"access_token,omitempty"` + ExpirationTime *int64 `protobuf:"varint,2,opt,name=expiration_time,json=expirationTime" json:"expiration_time,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetAccessTokenResponse) Reset() { *m = GetAccessTokenResponse{} } +func (m *GetAccessTokenResponse) String() string { return proto.CompactTextString(m) } +func (*GetAccessTokenResponse) ProtoMessage() {} +func (*GetAccessTokenResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_app_identity_service_08a6e3f74b04cfa4, []int{9} +} +func (m *GetAccessTokenResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetAccessTokenResponse.Unmarshal(m, b) +} +func (m *GetAccessTokenResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetAccessTokenResponse.Marshal(b, m, deterministic) +} +func (dst *GetAccessTokenResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetAccessTokenResponse.Merge(dst, src) +} +func (m *GetAccessTokenResponse) XXX_Size() int { + return xxx_messageInfo_GetAccessTokenResponse.Size(m) +} +func (m *GetAccessTokenResponse) XXX_DiscardUnknown() { + xxx_messageInfo_GetAccessTokenResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_GetAccessTokenResponse proto.InternalMessageInfo + +func (m *GetAccessTokenResponse) GetAccessToken() string { + if m != nil && m.AccessToken != nil { + return *m.AccessToken + } + return "" +} + +func (m *GetAccessTokenResponse) GetExpirationTime() int64 { + if m != nil && m.ExpirationTime != nil { + return *m.ExpirationTime + } + return 0 +} + +type GetDefaultGcsBucketNameRequest struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetDefaultGcsBucketNameRequest) Reset() { *m = GetDefaultGcsBucketNameRequest{} } +func (m *GetDefaultGcsBucketNameRequest) String() string { return proto.CompactTextString(m) } +func (*GetDefaultGcsBucketNameRequest) ProtoMessage() {} +func (*GetDefaultGcsBucketNameRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_app_identity_service_08a6e3f74b04cfa4, []int{10} +} +func (m *GetDefaultGcsBucketNameRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetDefaultGcsBucketNameRequest.Unmarshal(m, b) +} +func (m *GetDefaultGcsBucketNameRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetDefaultGcsBucketNameRequest.Marshal(b, m, deterministic) +} +func (dst *GetDefaultGcsBucketNameRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetDefaultGcsBucketNameRequest.Merge(dst, src) +} +func (m *GetDefaultGcsBucketNameRequest) XXX_Size() int { + return xxx_messageInfo_GetDefaultGcsBucketNameRequest.Size(m) +} +func (m *GetDefaultGcsBucketNameRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetDefaultGcsBucketNameRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetDefaultGcsBucketNameRequest proto.InternalMessageInfo + +type GetDefaultGcsBucketNameResponse struct { + DefaultGcsBucketName *string `protobuf:"bytes,1,opt,name=default_gcs_bucket_name,json=defaultGcsBucketName" json:"default_gcs_bucket_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetDefaultGcsBucketNameResponse) Reset() { *m = GetDefaultGcsBucketNameResponse{} } +func (m *GetDefaultGcsBucketNameResponse) String() string { return proto.CompactTextString(m) } +func (*GetDefaultGcsBucketNameResponse) ProtoMessage() {} +func (*GetDefaultGcsBucketNameResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_app_identity_service_08a6e3f74b04cfa4, []int{11} +} +func (m *GetDefaultGcsBucketNameResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetDefaultGcsBucketNameResponse.Unmarshal(m, b) +} +func (m *GetDefaultGcsBucketNameResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetDefaultGcsBucketNameResponse.Marshal(b, m, deterministic) +} +func (dst *GetDefaultGcsBucketNameResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetDefaultGcsBucketNameResponse.Merge(dst, src) +} +func (m *GetDefaultGcsBucketNameResponse) XXX_Size() int { + return xxx_messageInfo_GetDefaultGcsBucketNameResponse.Size(m) +} +func (m *GetDefaultGcsBucketNameResponse) XXX_DiscardUnknown() { + xxx_messageInfo_GetDefaultGcsBucketNameResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_GetDefaultGcsBucketNameResponse proto.InternalMessageInfo + +func (m *GetDefaultGcsBucketNameResponse) GetDefaultGcsBucketName() string { + if m != nil && m.DefaultGcsBucketName != nil { + return *m.DefaultGcsBucketName + } + return "" +} + +func init() { + proto.RegisterType((*AppIdentityServiceError)(nil), "appengine.AppIdentityServiceError") + proto.RegisterType((*SignForAppRequest)(nil), "appengine.SignForAppRequest") + proto.RegisterType((*SignForAppResponse)(nil), "appengine.SignForAppResponse") + proto.RegisterType((*GetPublicCertificateForAppRequest)(nil), "appengine.GetPublicCertificateForAppRequest") + proto.RegisterType((*PublicCertificate)(nil), "appengine.PublicCertificate") + proto.RegisterType((*GetPublicCertificateForAppResponse)(nil), "appengine.GetPublicCertificateForAppResponse") + proto.RegisterType((*GetServiceAccountNameRequest)(nil), "appengine.GetServiceAccountNameRequest") + proto.RegisterType((*GetServiceAccountNameResponse)(nil), "appengine.GetServiceAccountNameResponse") + proto.RegisterType((*GetAccessTokenRequest)(nil), "appengine.GetAccessTokenRequest") + proto.RegisterType((*GetAccessTokenResponse)(nil), "appengine.GetAccessTokenResponse") + proto.RegisterType((*GetDefaultGcsBucketNameRequest)(nil), "appengine.GetDefaultGcsBucketNameRequest") + proto.RegisterType((*GetDefaultGcsBucketNameResponse)(nil), "appengine.GetDefaultGcsBucketNameResponse") +} + +func init() { + proto.RegisterFile("google.golang.org/appengine/internal/app_identity/app_identity_service.proto", fileDescriptor_app_identity_service_08a6e3f74b04cfa4) +} + +var fileDescriptor_app_identity_service_08a6e3f74b04cfa4 = []byte{ + // 676 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x54, 0xdb, 0x6e, 0xda, 0x58, + 0x14, 0x1d, 0x26, 0x1a, 0x31, 0x6c, 0x12, 0x62, 0xce, 0x90, 0xcb, 0x8c, 0x32, 0xb9, 0x78, 0x1e, + 0x26, 0x0f, 0x15, 0x89, 0x2a, 0x45, 0x55, 0x1f, 0x8d, 0xed, 0x22, 0x54, 0x07, 0x53, 0x43, 0x9a, + 0xa8, 0x2f, 0xa7, 0xce, 0x61, 0xc7, 0x3d, 0x02, 0x9f, 0xe3, 0xda, 0x87, 0x0a, 0x3e, 0xa2, 0x3f, + 0xd2, 0x9f, 0xe8, 0x5b, 0xbf, 0xa5, 0x17, 0xb5, 0xdf, 0x50, 0xd9, 0x38, 0x5c, 0x92, 0x92, 0x37, + 0xbc, 0xf6, 0x5a, 0xcb, 0x6b, 0x2f, 0x6d, 0x0c, 0x4e, 0x20, 0x65, 0x30, 0xc4, 0x7a, 0x20, 0x87, + 0xbe, 0x08, 0xea, 0x32, 0x0e, 0x4e, 0xfc, 0x28, 0x42, 0x11, 0x70, 0x81, 0x27, 0x5c, 0x28, 0x8c, + 0x85, 0x3f, 0x4c, 0x21, 0xca, 0xfb, 0x28, 0x14, 0x57, 0x93, 0xa5, 0x07, 0x9a, 0x60, 0xfc, 0x8e, + 0x33, 0xac, 0x47, 0xb1, 0x54, 0x92, 0x94, 0x66, 0x5a, 0xfd, 0x53, 0x01, 0x76, 0x8c, 0x28, 0x6a, + 0xe5, 0xc4, 0xee, 0x94, 0x67, 0xc7, 0xb1, 0x8c, 0xf5, 0x0f, 0x05, 0x28, 0x65, 0xbf, 0x4c, 0xd9, + 0x47, 0x52, 0x86, 0x62, 0xf7, 0xc2, 0x34, 0xed, 0x6e, 0x57, 0xfb, 0x8d, 0x54, 0x61, 0xe3, 0xa2, + 0xfd, 0xbc, 0xed, 0x5e, 0xb6, 0x69, 0xd7, 0x74, 0x3b, 0xb6, 0x56, 0x22, 0x7f, 0x41, 0xa5, 0xe1, + 0xb8, 0x0d, 0xda, 0x73, 0x5d, 0xea, 0x18, 0x5e, 0xd3, 0xd6, 0x3e, 0x17, 0xc9, 0x36, 0x54, 0x2d, + 0xdb, 0xb0, 0x9c, 0x56, 0xdb, 0xa6, 0xf6, 0x95, 0x69, 0xdb, 0x96, 0x6d, 0x69, 0x5f, 0x8a, 0xa4, + 0x06, 0x9b, 0x6d, 0xb7, 0x47, 0x0d, 0xfa, 0xd2, 0x70, 0x5a, 0x16, 0x35, 0x3a, 0x1d, 0xed, 0x6b, + 0x91, 0x90, 0xb9, 0xab, 0xed, 0x79, 0xae, 0xa7, 0x7d, 0x2b, 0x12, 0x0d, 0xca, 0x19, 0xd3, 0x71, + 0xdc, 0x4b, 0xdb, 0xd2, 0xbe, 0xcf, 0xb4, 0xad, 0xf3, 0x8e, 0x63, 0x9f, 0xdb, 0xed, 0x9e, 0x6d, + 0x69, 0x3f, 0x8a, 0xfa, 0x13, 0xa8, 0x76, 0x79, 0x20, 0x9e, 0xc9, 0xd8, 0x88, 0x22, 0x0f, 0xdf, + 0x8e, 0x30, 0x51, 0x44, 0x87, 0x8d, 0xeb, 0x89, 0xc2, 0x84, 0x2a, 0x49, 0x13, 0x1e, 0x88, 0xdd, + 0xc2, 0x61, 0xe1, 0x78, 0xdd, 0x2b, 0x67, 0x60, 0x4f, 0xa6, 0x02, 0xfd, 0x0a, 0xc8, 0xa2, 0x30, + 0x89, 0xa4, 0x48, 0x90, 0xfc, 0x0d, 0x7f, 0x0e, 0x70, 0x42, 0x85, 0x1f, 0x62, 0x26, 0x2a, 0x79, + 0xc5, 0x01, 0x4e, 0xda, 0x7e, 0x88, 0xe4, 0x7f, 0xd8, 0x4c, 0xbd, 0x7c, 0x35, 0x8a, 0x91, 0x66, + 0x4e, 0xbb, 0xbf, 0x67, 0xb6, 0x95, 0x19, 0xdc, 0x48, 0x51, 0xfd, 0x3f, 0x38, 0x6a, 0xa2, 0xea, + 0x8c, 0xae, 0x87, 0x9c, 0x99, 0x18, 0x2b, 0x7e, 0xc3, 0x99, 0xaf, 0x70, 0x29, 0xa2, 0xfe, 0x1a, + 0xaa, 0xf7, 0x18, 0x0f, 0xbd, 0xfd, 0x14, 0x6a, 0xe3, 0xb3, 0xd3, 0xa7, 0x94, 0xcd, 0xe9, 0x34, + 0xc2, 0x30, 0x8b, 0x50, 0xf2, 0x48, 0x3a, 0x5b, 0x70, 0xea, 0x60, 0xa8, 0x7f, 0x2c, 0x80, 0xfe, + 0x50, 0x8e, 0x7c, 0xe3, 0x1e, 0xec, 0x44, 0x19, 0x65, 0xc9, 0x7a, 0xc8, 0x13, 0xb5, 0x5b, 0x38, + 0x5c, 0x3b, 0x2e, 0x3f, 0xde, 0xab, 0xcf, 0xce, 0xa6, 0x7e, 0xcf, 0xcc, 0xdb, 0x8a, 0xee, 0x42, + 0x0e, 0x4f, 0x14, 0x31, 0xe1, 0x20, 0xf4, 0xc7, 0x94, 0x0d, 0x39, 0x0a, 0x45, 0x99, 0xcf, 0xde, + 0x20, 0x55, 0x3c, 0x44, 0xca, 0x05, 0x4d, 0x90, 0x49, 0xd1, 0xcf, 0x92, 0xaf, 0x79, 0xff, 0x84, + 0xfe, 0xd8, 0xcc, 0x58, 0x66, 0x4a, 0xea, 0xf1, 0x10, 0x5b, 0xa2, 0x9b, 0x31, 0xf4, 0x7d, 0xd8, + 0x6b, 0xa2, 0xca, 0x6f, 0xd3, 0x60, 0x4c, 0x8e, 0x84, 0x4a, 0xcb, 0xb8, 0xed, 0xf0, 0x05, 0xfc, + 0xbb, 0x62, 0x9e, 0xef, 0x76, 0x0a, 0xb5, 0xfc, 0x1f, 0x40, 0xfd, 0xe9, 0x78, 0xb1, 0x5b, 0x92, + 0xdc, 0x53, 0xea, 0xef, 0x0b, 0xb0, 0xd5, 0x44, 0x65, 0x30, 0x86, 0x49, 0xd2, 0x93, 0x03, 0x14, + 0xb7, 0x37, 0x55, 0x83, 0x3f, 0x12, 0x26, 0x23, 0xcc, 0x5a, 0x29, 0x79, 0xd3, 0x07, 0xf2, 0x08, + 0xc8, 0xdd, 0x37, 0xf0, 0xdb, 0xd5, 0xb4, 0x65, 0xff, 0x56, 0x7f, 0x65, 0x9e, 0xb5, 0x95, 0x79, + 0xfa, 0xb0, 0x7d, 0x37, 0x4e, 0xbe, 0xdb, 0x11, 0xac, 0xfb, 0x19, 0x4c, 0x55, 0x8a, 0xe7, 0x3b, + 0x95, 0xfd, 0x39, 0x35, 0xbd, 0x58, 0x1c, 0x47, 0x3c, 0xf6, 0x15, 0x97, 0x22, 0xab, 0x3f, 0x4f, + 0x56, 0x99, 0xc3, 0x69, 0xe1, 0xfa, 0x21, 0xec, 0x37, 0x51, 0x59, 0x78, 0xe3, 0x8f, 0x86, 0xaa, + 0xc9, 0x92, 0xc6, 0x88, 0x0d, 0x70, 0xa9, 0xea, 0x2b, 0x38, 0x58, 0xc9, 0xc8, 0x03, 0x9d, 0xc1, + 0x4e, 0x7f, 0x3a, 0xa7, 0x01, 0x4b, 0xe8, 0x75, 0xc6, 0x58, 0xec, 0xbb, 0xd6, 0xff, 0x85, 0xbc, + 0x51, 0x79, 0xb5, 0xbe, 0xf8, 0xc9, 0xfa, 0x19, 0x00, 0x00, 0xff, 0xff, 0x37, 0x4c, 0x56, 0x38, + 0xf3, 0x04, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/appengine/internal/app_identity/app_identity_service.proto b/vendor/google.golang.org/appengine/internal/app_identity/app_identity_service.proto new file mode 100644 index 000000000..19610ca5b --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/app_identity/app_identity_service.proto @@ -0,0 +1,64 @@ +syntax = "proto2"; +option go_package = "app_identity"; + +package appengine; + +message AppIdentityServiceError { + enum ErrorCode { + SUCCESS = 0; + UNKNOWN_SCOPE = 9; + BLOB_TOO_LARGE = 1000; + DEADLINE_EXCEEDED = 1001; + NOT_A_VALID_APP = 1002; + UNKNOWN_ERROR = 1003; + NOT_ALLOWED = 1005; + NOT_IMPLEMENTED = 1006; + } +} + +message SignForAppRequest { + optional bytes bytes_to_sign = 1; +} + +message SignForAppResponse { + optional string key_name = 1; + optional bytes signature_bytes = 2; +} + +message GetPublicCertificateForAppRequest { +} + +message PublicCertificate { + optional string key_name = 1; + optional string x509_certificate_pem = 2; +} + +message GetPublicCertificateForAppResponse { + repeated PublicCertificate public_certificate_list = 1; + optional int64 max_client_cache_time_in_second = 2; +} + +message GetServiceAccountNameRequest { +} + +message GetServiceAccountNameResponse { + optional string service_account_name = 1; +} + +message GetAccessTokenRequest { + repeated string scope = 1; + optional int64 service_account_id = 2; + optional string service_account_name = 3; +} + +message GetAccessTokenResponse { + optional string access_token = 1; + optional int64 expiration_time = 2; +} + +message GetDefaultGcsBucketNameRequest { +} + +message GetDefaultGcsBucketNameResponse { + optional string default_gcs_bucket_name = 1; +} diff --git a/vendor/google.golang.org/appengine/internal/base/api_base.pb.go b/vendor/google.golang.org/appengine/internal/base/api_base.pb.go new file mode 100644 index 000000000..db4777e68 --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/base/api_base.pb.go @@ -0,0 +1,308 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google.golang.org/appengine/internal/base/api_base.proto + +package base + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +type StringProto struct { + Value *string `protobuf:"bytes,1,req,name=value" json:"value,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *StringProto) Reset() { *m = StringProto{} } +func (m *StringProto) String() string { return proto.CompactTextString(m) } +func (*StringProto) ProtoMessage() {} +func (*StringProto) Descriptor() ([]byte, []int) { + return fileDescriptor_api_base_9d49f8792e0c1140, []int{0} +} +func (m *StringProto) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_StringProto.Unmarshal(m, b) +} +func (m *StringProto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_StringProto.Marshal(b, m, deterministic) +} +func (dst *StringProto) XXX_Merge(src proto.Message) { + xxx_messageInfo_StringProto.Merge(dst, src) +} +func (m *StringProto) XXX_Size() int { + return xxx_messageInfo_StringProto.Size(m) +} +func (m *StringProto) XXX_DiscardUnknown() { + xxx_messageInfo_StringProto.DiscardUnknown(m) +} + +var xxx_messageInfo_StringProto proto.InternalMessageInfo + +func (m *StringProto) GetValue() string { + if m != nil && m.Value != nil { + return *m.Value + } + return "" +} + +type Integer32Proto struct { + Value *int32 `protobuf:"varint,1,req,name=value" json:"value,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Integer32Proto) Reset() { *m = Integer32Proto{} } +func (m *Integer32Proto) String() string { return proto.CompactTextString(m) } +func (*Integer32Proto) ProtoMessage() {} +func (*Integer32Proto) Descriptor() ([]byte, []int) { + return fileDescriptor_api_base_9d49f8792e0c1140, []int{1} +} +func (m *Integer32Proto) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Integer32Proto.Unmarshal(m, b) +} +func (m *Integer32Proto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Integer32Proto.Marshal(b, m, deterministic) +} +func (dst *Integer32Proto) XXX_Merge(src proto.Message) { + xxx_messageInfo_Integer32Proto.Merge(dst, src) +} +func (m *Integer32Proto) XXX_Size() int { + return xxx_messageInfo_Integer32Proto.Size(m) +} +func (m *Integer32Proto) XXX_DiscardUnknown() { + xxx_messageInfo_Integer32Proto.DiscardUnknown(m) +} + +var xxx_messageInfo_Integer32Proto proto.InternalMessageInfo + +func (m *Integer32Proto) GetValue() int32 { + if m != nil && m.Value != nil { + return *m.Value + } + return 0 +} + +type Integer64Proto struct { + Value *int64 `protobuf:"varint,1,req,name=value" json:"value,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Integer64Proto) Reset() { *m = Integer64Proto{} } +func (m *Integer64Proto) String() string { return proto.CompactTextString(m) } +func (*Integer64Proto) ProtoMessage() {} +func (*Integer64Proto) Descriptor() ([]byte, []int) { + return fileDescriptor_api_base_9d49f8792e0c1140, []int{2} +} +func (m *Integer64Proto) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Integer64Proto.Unmarshal(m, b) +} +func (m *Integer64Proto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Integer64Proto.Marshal(b, m, deterministic) +} +func (dst *Integer64Proto) XXX_Merge(src proto.Message) { + xxx_messageInfo_Integer64Proto.Merge(dst, src) +} +func (m *Integer64Proto) XXX_Size() int { + return xxx_messageInfo_Integer64Proto.Size(m) +} +func (m *Integer64Proto) XXX_DiscardUnknown() { + xxx_messageInfo_Integer64Proto.DiscardUnknown(m) +} + +var xxx_messageInfo_Integer64Proto proto.InternalMessageInfo + +func (m *Integer64Proto) GetValue() int64 { + if m != nil && m.Value != nil { + return *m.Value + } + return 0 +} + +type BoolProto struct { + Value *bool `protobuf:"varint,1,req,name=value" json:"value,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BoolProto) Reset() { *m = BoolProto{} } +func (m *BoolProto) String() string { return proto.CompactTextString(m) } +func (*BoolProto) ProtoMessage() {} +func (*BoolProto) Descriptor() ([]byte, []int) { + return fileDescriptor_api_base_9d49f8792e0c1140, []int{3} +} +func (m *BoolProto) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BoolProto.Unmarshal(m, b) +} +func (m *BoolProto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BoolProto.Marshal(b, m, deterministic) +} +func (dst *BoolProto) XXX_Merge(src proto.Message) { + xxx_messageInfo_BoolProto.Merge(dst, src) +} +func (m *BoolProto) XXX_Size() int { + return xxx_messageInfo_BoolProto.Size(m) +} +func (m *BoolProto) XXX_DiscardUnknown() { + xxx_messageInfo_BoolProto.DiscardUnknown(m) +} + +var xxx_messageInfo_BoolProto proto.InternalMessageInfo + +func (m *BoolProto) GetValue() bool { + if m != nil && m.Value != nil { + return *m.Value + } + return false +} + +type DoubleProto struct { + Value *float64 `protobuf:"fixed64,1,req,name=value" json:"value,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DoubleProto) Reset() { *m = DoubleProto{} } +func (m *DoubleProto) String() string { return proto.CompactTextString(m) } +func (*DoubleProto) ProtoMessage() {} +func (*DoubleProto) Descriptor() ([]byte, []int) { + return fileDescriptor_api_base_9d49f8792e0c1140, []int{4} +} +func (m *DoubleProto) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DoubleProto.Unmarshal(m, b) +} +func (m *DoubleProto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DoubleProto.Marshal(b, m, deterministic) +} +func (dst *DoubleProto) XXX_Merge(src proto.Message) { + xxx_messageInfo_DoubleProto.Merge(dst, src) +} +func (m *DoubleProto) XXX_Size() int { + return xxx_messageInfo_DoubleProto.Size(m) +} +func (m *DoubleProto) XXX_DiscardUnknown() { + xxx_messageInfo_DoubleProto.DiscardUnknown(m) +} + +var xxx_messageInfo_DoubleProto proto.InternalMessageInfo + +func (m *DoubleProto) GetValue() float64 { + if m != nil && m.Value != nil { + return *m.Value + } + return 0 +} + +type BytesProto struct { + Value []byte `protobuf:"bytes,1,req,name=value" json:"value,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BytesProto) Reset() { *m = BytesProto{} } +func (m *BytesProto) String() string { return proto.CompactTextString(m) } +func (*BytesProto) ProtoMessage() {} +func (*BytesProto) Descriptor() ([]byte, []int) { + return fileDescriptor_api_base_9d49f8792e0c1140, []int{5} +} +func (m *BytesProto) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BytesProto.Unmarshal(m, b) +} +func (m *BytesProto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BytesProto.Marshal(b, m, deterministic) +} +func (dst *BytesProto) XXX_Merge(src proto.Message) { + xxx_messageInfo_BytesProto.Merge(dst, src) +} +func (m *BytesProto) XXX_Size() int { + return xxx_messageInfo_BytesProto.Size(m) +} +func (m *BytesProto) XXX_DiscardUnknown() { + xxx_messageInfo_BytesProto.DiscardUnknown(m) +} + +var xxx_messageInfo_BytesProto proto.InternalMessageInfo + +func (m *BytesProto) GetValue() []byte { + if m != nil { + return m.Value + } + return nil +} + +type VoidProto struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *VoidProto) Reset() { *m = VoidProto{} } +func (m *VoidProto) String() string { return proto.CompactTextString(m) } +func (*VoidProto) ProtoMessage() {} +func (*VoidProto) Descriptor() ([]byte, []int) { + return fileDescriptor_api_base_9d49f8792e0c1140, []int{6} +} +func (m *VoidProto) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VoidProto.Unmarshal(m, b) +} +func (m *VoidProto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VoidProto.Marshal(b, m, deterministic) +} +func (dst *VoidProto) XXX_Merge(src proto.Message) { + xxx_messageInfo_VoidProto.Merge(dst, src) +} +func (m *VoidProto) XXX_Size() int { + return xxx_messageInfo_VoidProto.Size(m) +} +func (m *VoidProto) XXX_DiscardUnknown() { + xxx_messageInfo_VoidProto.DiscardUnknown(m) +} + +var xxx_messageInfo_VoidProto proto.InternalMessageInfo + +func init() { + proto.RegisterType((*StringProto)(nil), "appengine.base.StringProto") + proto.RegisterType((*Integer32Proto)(nil), "appengine.base.Integer32Proto") + proto.RegisterType((*Integer64Proto)(nil), "appengine.base.Integer64Proto") + proto.RegisterType((*BoolProto)(nil), "appengine.base.BoolProto") + proto.RegisterType((*DoubleProto)(nil), "appengine.base.DoubleProto") + proto.RegisterType((*BytesProto)(nil), "appengine.base.BytesProto") + proto.RegisterType((*VoidProto)(nil), "appengine.base.VoidProto") +} + +func init() { + proto.RegisterFile("google.golang.org/appengine/internal/base/api_base.proto", fileDescriptor_api_base_9d49f8792e0c1140) +} + +var fileDescriptor_api_base_9d49f8792e0c1140 = []byte{ + // 199 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0xcf, 0x3f, 0x4b, 0xc6, 0x30, + 0x10, 0x06, 0x70, 0x5a, 0xad, 0xb4, 0x57, 0xe9, 0x20, 0x0e, 0x1d, 0xb5, 0x05, 0x71, 0x4a, 0x40, + 0x45, 0x9c, 0x83, 0x8b, 0x9b, 0x28, 0x38, 0xb8, 0x48, 0x8a, 0xc7, 0x11, 0x08, 0xb9, 0x90, 0xa6, + 0x82, 0xdf, 0x5e, 0xda, 0xd2, 0xfa, 0xc2, 0x9b, 0xed, 0xfe, 0xfc, 0xe0, 0xe1, 0x81, 0x27, 0x62, + 0x26, 0x8b, 0x82, 0xd8, 0x6a, 0x47, 0x82, 0x03, 0x49, 0xed, 0x3d, 0x3a, 0x32, 0x0e, 0xa5, 0x71, + 0x11, 0x83, 0xd3, 0x56, 0x0e, 0x7a, 0x44, 0xa9, 0xbd, 0xf9, 0x9a, 0x07, 0xe1, 0x03, 0x47, 0xbe, + 0x68, 0x76, 0x27, 0xe6, 0x6b, 0xd7, 0x43, 0xfd, 0x1e, 0x83, 0x71, 0xf4, 0xba, 0xbc, 0x2f, 0xa1, + 0xf8, 0xd1, 0x76, 0xc2, 0x36, 0xbb, 0xca, 0x6f, 0xab, 0xb7, 0x75, 0xe9, 0x6e, 0xa0, 0x79, 0x71, + 0x11, 0x09, 0xc3, 0xfd, 0x5d, 0xc2, 0x15, 0xc7, 0xee, 0xf1, 0x21, 0xe1, 0x4e, 0x36, 0x77, 0x0d, + 0x95, 0x62, 0xb6, 0x09, 0x52, 0x6e, 0xa4, 0x87, 0xfa, 0x99, 0xa7, 0xc1, 0x62, 0x02, 0x65, 0xff, + 0x79, 0xa0, 0x7e, 0x23, 0x8e, 0xab, 0x69, 0x0f, 0xcd, 0xb9, 0xca, 0xcb, 0xdd, 0xd5, 0x50, 0x7d, + 0xb0, 0xf9, 0x5e, 0x98, 0x3a, 0xfb, 0x3c, 0x9d, 0x9b, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff, 0xba, + 0x37, 0x25, 0xea, 0x44, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/appengine/internal/base/api_base.proto b/vendor/google.golang.org/appengine/internal/base/api_base.proto new file mode 100644 index 000000000..56cd7a3ca --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/base/api_base.proto @@ -0,0 +1,33 @@ +// Built-in base types for API calls. Primarily useful as return types. + +syntax = "proto2"; +option go_package = "base"; + +package appengine.base; + +message StringProto { + required string value = 1; +} + +message Integer32Proto { + required int32 value = 1; +} + +message Integer64Proto { + required int64 value = 1; +} + +message BoolProto { + required bool value = 1; +} + +message DoubleProto { + required double value = 1; +} + +message BytesProto { + required bytes value = 1 [ctype=CORD]; +} + +message VoidProto { +} diff --git a/vendor/google.golang.org/appengine/internal/blobstore/blobstore_service.pb.go b/vendor/google.golang.org/appengine/internal/blobstore/blobstore_service.pb.go new file mode 100644 index 000000000..faef13a01 --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/blobstore/blobstore_service.pb.go @@ -0,0 +1,666 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google.golang.org/appengine/internal/blobstore/blobstore_service.proto + +package blobstore + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +type BlobstoreServiceError_ErrorCode int32 + +const ( + BlobstoreServiceError_OK BlobstoreServiceError_ErrorCode = 0 + BlobstoreServiceError_INTERNAL_ERROR BlobstoreServiceError_ErrorCode = 1 + BlobstoreServiceError_URL_TOO_LONG BlobstoreServiceError_ErrorCode = 2 + BlobstoreServiceError_PERMISSION_DENIED BlobstoreServiceError_ErrorCode = 3 + BlobstoreServiceError_BLOB_NOT_FOUND BlobstoreServiceError_ErrorCode = 4 + BlobstoreServiceError_DATA_INDEX_OUT_OF_RANGE BlobstoreServiceError_ErrorCode = 5 + BlobstoreServiceError_BLOB_FETCH_SIZE_TOO_LARGE BlobstoreServiceError_ErrorCode = 6 + BlobstoreServiceError_ARGUMENT_OUT_OF_RANGE BlobstoreServiceError_ErrorCode = 8 + BlobstoreServiceError_INVALID_BLOB_KEY BlobstoreServiceError_ErrorCode = 9 +) + +var BlobstoreServiceError_ErrorCode_name = map[int32]string{ + 0: "OK", + 1: "INTERNAL_ERROR", + 2: "URL_TOO_LONG", + 3: "PERMISSION_DENIED", + 4: "BLOB_NOT_FOUND", + 5: "DATA_INDEX_OUT_OF_RANGE", + 6: "BLOB_FETCH_SIZE_TOO_LARGE", + 8: "ARGUMENT_OUT_OF_RANGE", + 9: "INVALID_BLOB_KEY", +} +var BlobstoreServiceError_ErrorCode_value = map[string]int32{ + "OK": 0, + "INTERNAL_ERROR": 1, + "URL_TOO_LONG": 2, + "PERMISSION_DENIED": 3, + "BLOB_NOT_FOUND": 4, + "DATA_INDEX_OUT_OF_RANGE": 5, + "BLOB_FETCH_SIZE_TOO_LARGE": 6, + "ARGUMENT_OUT_OF_RANGE": 8, + "INVALID_BLOB_KEY": 9, +} + +func (x BlobstoreServiceError_ErrorCode) Enum() *BlobstoreServiceError_ErrorCode { + p := new(BlobstoreServiceError_ErrorCode) + *p = x + return p +} +func (x BlobstoreServiceError_ErrorCode) String() string { + return proto.EnumName(BlobstoreServiceError_ErrorCode_name, int32(x)) +} +func (x *BlobstoreServiceError_ErrorCode) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(BlobstoreServiceError_ErrorCode_value, data, "BlobstoreServiceError_ErrorCode") + if err != nil { + return err + } + *x = BlobstoreServiceError_ErrorCode(value) + return nil +} +func (BlobstoreServiceError_ErrorCode) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_blobstore_service_3604fb6033ea2e2e, []int{0, 0} +} + +type BlobstoreServiceError struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BlobstoreServiceError) Reset() { *m = BlobstoreServiceError{} } +func (m *BlobstoreServiceError) String() string { return proto.CompactTextString(m) } +func (*BlobstoreServiceError) ProtoMessage() {} +func (*BlobstoreServiceError) Descriptor() ([]byte, []int) { + return fileDescriptor_blobstore_service_3604fb6033ea2e2e, []int{0} +} +func (m *BlobstoreServiceError) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BlobstoreServiceError.Unmarshal(m, b) +} +func (m *BlobstoreServiceError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BlobstoreServiceError.Marshal(b, m, deterministic) +} +func (dst *BlobstoreServiceError) XXX_Merge(src proto.Message) { + xxx_messageInfo_BlobstoreServiceError.Merge(dst, src) +} +func (m *BlobstoreServiceError) XXX_Size() int { + return xxx_messageInfo_BlobstoreServiceError.Size(m) +} +func (m *BlobstoreServiceError) XXX_DiscardUnknown() { + xxx_messageInfo_BlobstoreServiceError.DiscardUnknown(m) +} + +var xxx_messageInfo_BlobstoreServiceError proto.InternalMessageInfo + +type CreateUploadURLRequest struct { + SuccessPath *string `protobuf:"bytes,1,req,name=success_path,json=successPath" json:"success_path,omitempty"` + MaxUploadSizeBytes *int64 `protobuf:"varint,2,opt,name=max_upload_size_bytes,json=maxUploadSizeBytes" json:"max_upload_size_bytes,omitempty"` + MaxUploadSizePerBlobBytes *int64 `protobuf:"varint,3,opt,name=max_upload_size_per_blob_bytes,json=maxUploadSizePerBlobBytes" json:"max_upload_size_per_blob_bytes,omitempty"` + GsBucketName *string `protobuf:"bytes,4,opt,name=gs_bucket_name,json=gsBucketName" json:"gs_bucket_name,omitempty"` + UrlExpiryTimeSeconds *int32 `protobuf:"varint,5,opt,name=url_expiry_time_seconds,json=urlExpiryTimeSeconds" json:"url_expiry_time_seconds,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CreateUploadURLRequest) Reset() { *m = CreateUploadURLRequest{} } +func (m *CreateUploadURLRequest) String() string { return proto.CompactTextString(m) } +func (*CreateUploadURLRequest) ProtoMessage() {} +func (*CreateUploadURLRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_blobstore_service_3604fb6033ea2e2e, []int{1} +} +func (m *CreateUploadURLRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreateUploadURLRequest.Unmarshal(m, b) +} +func (m *CreateUploadURLRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreateUploadURLRequest.Marshal(b, m, deterministic) +} +func (dst *CreateUploadURLRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateUploadURLRequest.Merge(dst, src) +} +func (m *CreateUploadURLRequest) XXX_Size() int { + return xxx_messageInfo_CreateUploadURLRequest.Size(m) +} +func (m *CreateUploadURLRequest) XXX_DiscardUnknown() { + xxx_messageInfo_CreateUploadURLRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_CreateUploadURLRequest proto.InternalMessageInfo + +func (m *CreateUploadURLRequest) GetSuccessPath() string { + if m != nil && m.SuccessPath != nil { + return *m.SuccessPath + } + return "" +} + +func (m *CreateUploadURLRequest) GetMaxUploadSizeBytes() int64 { + if m != nil && m.MaxUploadSizeBytes != nil { + return *m.MaxUploadSizeBytes + } + return 0 +} + +func (m *CreateUploadURLRequest) GetMaxUploadSizePerBlobBytes() int64 { + if m != nil && m.MaxUploadSizePerBlobBytes != nil { + return *m.MaxUploadSizePerBlobBytes + } + return 0 +} + +func (m *CreateUploadURLRequest) GetGsBucketName() string { + if m != nil && m.GsBucketName != nil { + return *m.GsBucketName + } + return "" +} + +func (m *CreateUploadURLRequest) GetUrlExpiryTimeSeconds() int32 { + if m != nil && m.UrlExpiryTimeSeconds != nil { + return *m.UrlExpiryTimeSeconds + } + return 0 +} + +type CreateUploadURLResponse struct { + Url *string `protobuf:"bytes,1,req,name=url" json:"url,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CreateUploadURLResponse) Reset() { *m = CreateUploadURLResponse{} } +func (m *CreateUploadURLResponse) String() string { return proto.CompactTextString(m) } +func (*CreateUploadURLResponse) ProtoMessage() {} +func (*CreateUploadURLResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_blobstore_service_3604fb6033ea2e2e, []int{2} +} +func (m *CreateUploadURLResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreateUploadURLResponse.Unmarshal(m, b) +} +func (m *CreateUploadURLResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreateUploadURLResponse.Marshal(b, m, deterministic) +} +func (dst *CreateUploadURLResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateUploadURLResponse.Merge(dst, src) +} +func (m *CreateUploadURLResponse) XXX_Size() int { + return xxx_messageInfo_CreateUploadURLResponse.Size(m) +} +func (m *CreateUploadURLResponse) XXX_DiscardUnknown() { + xxx_messageInfo_CreateUploadURLResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_CreateUploadURLResponse proto.InternalMessageInfo + +func (m *CreateUploadURLResponse) GetUrl() string { + if m != nil && m.Url != nil { + return *m.Url + } + return "" +} + +type DeleteBlobRequest struct { + BlobKey []string `protobuf:"bytes,1,rep,name=blob_key,json=blobKey" json:"blob_key,omitempty"` + Token *string `protobuf:"bytes,2,opt,name=token" json:"token,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DeleteBlobRequest) Reset() { *m = DeleteBlobRequest{} } +func (m *DeleteBlobRequest) String() string { return proto.CompactTextString(m) } +func (*DeleteBlobRequest) ProtoMessage() {} +func (*DeleteBlobRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_blobstore_service_3604fb6033ea2e2e, []int{3} +} +func (m *DeleteBlobRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteBlobRequest.Unmarshal(m, b) +} +func (m *DeleteBlobRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteBlobRequest.Marshal(b, m, deterministic) +} +func (dst *DeleteBlobRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteBlobRequest.Merge(dst, src) +} +func (m *DeleteBlobRequest) XXX_Size() int { + return xxx_messageInfo_DeleteBlobRequest.Size(m) +} +func (m *DeleteBlobRequest) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteBlobRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_DeleteBlobRequest proto.InternalMessageInfo + +func (m *DeleteBlobRequest) GetBlobKey() []string { + if m != nil { + return m.BlobKey + } + return nil +} + +func (m *DeleteBlobRequest) GetToken() string { + if m != nil && m.Token != nil { + return *m.Token + } + return "" +} + +type FetchDataRequest struct { + BlobKey *string `protobuf:"bytes,1,req,name=blob_key,json=blobKey" json:"blob_key,omitempty"` + StartIndex *int64 `protobuf:"varint,2,req,name=start_index,json=startIndex" json:"start_index,omitempty"` + EndIndex *int64 `protobuf:"varint,3,req,name=end_index,json=endIndex" json:"end_index,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FetchDataRequest) Reset() { *m = FetchDataRequest{} } +func (m *FetchDataRequest) String() string { return proto.CompactTextString(m) } +func (*FetchDataRequest) ProtoMessage() {} +func (*FetchDataRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_blobstore_service_3604fb6033ea2e2e, []int{4} +} +func (m *FetchDataRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FetchDataRequest.Unmarshal(m, b) +} +func (m *FetchDataRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FetchDataRequest.Marshal(b, m, deterministic) +} +func (dst *FetchDataRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_FetchDataRequest.Merge(dst, src) +} +func (m *FetchDataRequest) XXX_Size() int { + return xxx_messageInfo_FetchDataRequest.Size(m) +} +func (m *FetchDataRequest) XXX_DiscardUnknown() { + xxx_messageInfo_FetchDataRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_FetchDataRequest proto.InternalMessageInfo + +func (m *FetchDataRequest) GetBlobKey() string { + if m != nil && m.BlobKey != nil { + return *m.BlobKey + } + return "" +} + +func (m *FetchDataRequest) GetStartIndex() int64 { + if m != nil && m.StartIndex != nil { + return *m.StartIndex + } + return 0 +} + +func (m *FetchDataRequest) GetEndIndex() int64 { + if m != nil && m.EndIndex != nil { + return *m.EndIndex + } + return 0 +} + +type FetchDataResponse struct { + Data []byte `protobuf:"bytes,1000,req,name=data" json:"data,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FetchDataResponse) Reset() { *m = FetchDataResponse{} } +func (m *FetchDataResponse) String() string { return proto.CompactTextString(m) } +func (*FetchDataResponse) ProtoMessage() {} +func (*FetchDataResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_blobstore_service_3604fb6033ea2e2e, []int{5} +} +func (m *FetchDataResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FetchDataResponse.Unmarshal(m, b) +} +func (m *FetchDataResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FetchDataResponse.Marshal(b, m, deterministic) +} +func (dst *FetchDataResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_FetchDataResponse.Merge(dst, src) +} +func (m *FetchDataResponse) XXX_Size() int { + return xxx_messageInfo_FetchDataResponse.Size(m) +} +func (m *FetchDataResponse) XXX_DiscardUnknown() { + xxx_messageInfo_FetchDataResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_FetchDataResponse proto.InternalMessageInfo + +func (m *FetchDataResponse) GetData() []byte { + if m != nil { + return m.Data + } + return nil +} + +type CloneBlobRequest struct { + BlobKey []byte `protobuf:"bytes,1,req,name=blob_key,json=blobKey" json:"blob_key,omitempty"` + MimeType []byte `protobuf:"bytes,2,req,name=mime_type,json=mimeType" json:"mime_type,omitempty"` + TargetAppId []byte `protobuf:"bytes,3,req,name=target_app_id,json=targetAppId" json:"target_app_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CloneBlobRequest) Reset() { *m = CloneBlobRequest{} } +func (m *CloneBlobRequest) String() string { return proto.CompactTextString(m) } +func (*CloneBlobRequest) ProtoMessage() {} +func (*CloneBlobRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_blobstore_service_3604fb6033ea2e2e, []int{6} +} +func (m *CloneBlobRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CloneBlobRequest.Unmarshal(m, b) +} +func (m *CloneBlobRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CloneBlobRequest.Marshal(b, m, deterministic) +} +func (dst *CloneBlobRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_CloneBlobRequest.Merge(dst, src) +} +func (m *CloneBlobRequest) XXX_Size() int { + return xxx_messageInfo_CloneBlobRequest.Size(m) +} +func (m *CloneBlobRequest) XXX_DiscardUnknown() { + xxx_messageInfo_CloneBlobRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_CloneBlobRequest proto.InternalMessageInfo + +func (m *CloneBlobRequest) GetBlobKey() []byte { + if m != nil { + return m.BlobKey + } + return nil +} + +func (m *CloneBlobRequest) GetMimeType() []byte { + if m != nil { + return m.MimeType + } + return nil +} + +func (m *CloneBlobRequest) GetTargetAppId() []byte { + if m != nil { + return m.TargetAppId + } + return nil +} + +type CloneBlobResponse struct { + BlobKey []byte `protobuf:"bytes,1,req,name=blob_key,json=blobKey" json:"blob_key,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CloneBlobResponse) Reset() { *m = CloneBlobResponse{} } +func (m *CloneBlobResponse) String() string { return proto.CompactTextString(m) } +func (*CloneBlobResponse) ProtoMessage() {} +func (*CloneBlobResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_blobstore_service_3604fb6033ea2e2e, []int{7} +} +func (m *CloneBlobResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CloneBlobResponse.Unmarshal(m, b) +} +func (m *CloneBlobResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CloneBlobResponse.Marshal(b, m, deterministic) +} +func (dst *CloneBlobResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_CloneBlobResponse.Merge(dst, src) +} +func (m *CloneBlobResponse) XXX_Size() int { + return xxx_messageInfo_CloneBlobResponse.Size(m) +} +func (m *CloneBlobResponse) XXX_DiscardUnknown() { + xxx_messageInfo_CloneBlobResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_CloneBlobResponse proto.InternalMessageInfo + +func (m *CloneBlobResponse) GetBlobKey() []byte { + if m != nil { + return m.BlobKey + } + return nil +} + +type DecodeBlobKeyRequest struct { + BlobKey []string `protobuf:"bytes,1,rep,name=blob_key,json=blobKey" json:"blob_key,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DecodeBlobKeyRequest) Reset() { *m = DecodeBlobKeyRequest{} } +func (m *DecodeBlobKeyRequest) String() string { return proto.CompactTextString(m) } +func (*DecodeBlobKeyRequest) ProtoMessage() {} +func (*DecodeBlobKeyRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_blobstore_service_3604fb6033ea2e2e, []int{8} +} +func (m *DecodeBlobKeyRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DecodeBlobKeyRequest.Unmarshal(m, b) +} +func (m *DecodeBlobKeyRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DecodeBlobKeyRequest.Marshal(b, m, deterministic) +} +func (dst *DecodeBlobKeyRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_DecodeBlobKeyRequest.Merge(dst, src) +} +func (m *DecodeBlobKeyRequest) XXX_Size() int { + return xxx_messageInfo_DecodeBlobKeyRequest.Size(m) +} +func (m *DecodeBlobKeyRequest) XXX_DiscardUnknown() { + xxx_messageInfo_DecodeBlobKeyRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_DecodeBlobKeyRequest proto.InternalMessageInfo + +func (m *DecodeBlobKeyRequest) GetBlobKey() []string { + if m != nil { + return m.BlobKey + } + return nil +} + +type DecodeBlobKeyResponse struct { + Decoded []string `protobuf:"bytes,1,rep,name=decoded" json:"decoded,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DecodeBlobKeyResponse) Reset() { *m = DecodeBlobKeyResponse{} } +func (m *DecodeBlobKeyResponse) String() string { return proto.CompactTextString(m) } +func (*DecodeBlobKeyResponse) ProtoMessage() {} +func (*DecodeBlobKeyResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_blobstore_service_3604fb6033ea2e2e, []int{9} +} +func (m *DecodeBlobKeyResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DecodeBlobKeyResponse.Unmarshal(m, b) +} +func (m *DecodeBlobKeyResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DecodeBlobKeyResponse.Marshal(b, m, deterministic) +} +func (dst *DecodeBlobKeyResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_DecodeBlobKeyResponse.Merge(dst, src) +} +func (m *DecodeBlobKeyResponse) XXX_Size() int { + return xxx_messageInfo_DecodeBlobKeyResponse.Size(m) +} +func (m *DecodeBlobKeyResponse) XXX_DiscardUnknown() { + xxx_messageInfo_DecodeBlobKeyResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_DecodeBlobKeyResponse proto.InternalMessageInfo + +func (m *DecodeBlobKeyResponse) GetDecoded() []string { + if m != nil { + return m.Decoded + } + return nil +} + +type CreateEncodedGoogleStorageKeyRequest struct { + Filename *string `protobuf:"bytes,1,req,name=filename" json:"filename,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CreateEncodedGoogleStorageKeyRequest) Reset() { *m = CreateEncodedGoogleStorageKeyRequest{} } +func (m *CreateEncodedGoogleStorageKeyRequest) String() string { return proto.CompactTextString(m) } +func (*CreateEncodedGoogleStorageKeyRequest) ProtoMessage() {} +func (*CreateEncodedGoogleStorageKeyRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_blobstore_service_3604fb6033ea2e2e, []int{10} +} +func (m *CreateEncodedGoogleStorageKeyRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreateEncodedGoogleStorageKeyRequest.Unmarshal(m, b) +} +func (m *CreateEncodedGoogleStorageKeyRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreateEncodedGoogleStorageKeyRequest.Marshal(b, m, deterministic) +} +func (dst *CreateEncodedGoogleStorageKeyRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateEncodedGoogleStorageKeyRequest.Merge(dst, src) +} +func (m *CreateEncodedGoogleStorageKeyRequest) XXX_Size() int { + return xxx_messageInfo_CreateEncodedGoogleStorageKeyRequest.Size(m) +} +func (m *CreateEncodedGoogleStorageKeyRequest) XXX_DiscardUnknown() { + xxx_messageInfo_CreateEncodedGoogleStorageKeyRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_CreateEncodedGoogleStorageKeyRequest proto.InternalMessageInfo + +func (m *CreateEncodedGoogleStorageKeyRequest) GetFilename() string { + if m != nil && m.Filename != nil { + return *m.Filename + } + return "" +} + +type CreateEncodedGoogleStorageKeyResponse struct { + BlobKey *string `protobuf:"bytes,1,req,name=blob_key,json=blobKey" json:"blob_key,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CreateEncodedGoogleStorageKeyResponse) Reset() { *m = CreateEncodedGoogleStorageKeyResponse{} } +func (m *CreateEncodedGoogleStorageKeyResponse) String() string { return proto.CompactTextString(m) } +func (*CreateEncodedGoogleStorageKeyResponse) ProtoMessage() {} +func (*CreateEncodedGoogleStorageKeyResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_blobstore_service_3604fb6033ea2e2e, []int{11} +} +func (m *CreateEncodedGoogleStorageKeyResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreateEncodedGoogleStorageKeyResponse.Unmarshal(m, b) +} +func (m *CreateEncodedGoogleStorageKeyResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreateEncodedGoogleStorageKeyResponse.Marshal(b, m, deterministic) +} +func (dst *CreateEncodedGoogleStorageKeyResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateEncodedGoogleStorageKeyResponse.Merge(dst, src) +} +func (m *CreateEncodedGoogleStorageKeyResponse) XXX_Size() int { + return xxx_messageInfo_CreateEncodedGoogleStorageKeyResponse.Size(m) +} +func (m *CreateEncodedGoogleStorageKeyResponse) XXX_DiscardUnknown() { + xxx_messageInfo_CreateEncodedGoogleStorageKeyResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_CreateEncodedGoogleStorageKeyResponse proto.InternalMessageInfo + +func (m *CreateEncodedGoogleStorageKeyResponse) GetBlobKey() string { + if m != nil && m.BlobKey != nil { + return *m.BlobKey + } + return "" +} + +func init() { + proto.RegisterType((*BlobstoreServiceError)(nil), "appengine.BlobstoreServiceError") + proto.RegisterType((*CreateUploadURLRequest)(nil), "appengine.CreateUploadURLRequest") + proto.RegisterType((*CreateUploadURLResponse)(nil), "appengine.CreateUploadURLResponse") + proto.RegisterType((*DeleteBlobRequest)(nil), "appengine.DeleteBlobRequest") + proto.RegisterType((*FetchDataRequest)(nil), "appengine.FetchDataRequest") + proto.RegisterType((*FetchDataResponse)(nil), "appengine.FetchDataResponse") + proto.RegisterType((*CloneBlobRequest)(nil), "appengine.CloneBlobRequest") + proto.RegisterType((*CloneBlobResponse)(nil), "appengine.CloneBlobResponse") + proto.RegisterType((*DecodeBlobKeyRequest)(nil), "appengine.DecodeBlobKeyRequest") + proto.RegisterType((*DecodeBlobKeyResponse)(nil), "appengine.DecodeBlobKeyResponse") + proto.RegisterType((*CreateEncodedGoogleStorageKeyRequest)(nil), "appengine.CreateEncodedGoogleStorageKeyRequest") + proto.RegisterType((*CreateEncodedGoogleStorageKeyResponse)(nil), "appengine.CreateEncodedGoogleStorageKeyResponse") +} + +func init() { + proto.RegisterFile("google.golang.org/appengine/internal/blobstore/blobstore_service.proto", fileDescriptor_blobstore_service_3604fb6033ea2e2e) +} + +var fileDescriptor_blobstore_service_3604fb6033ea2e2e = []byte{ + // 737 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x54, 0xe1, 0x6e, 0xe3, 0x44, + 0x10, 0xc6, 0x4e, 0x7b, 0x8d, 0xa7, 0xe1, 0xe4, 0xae, 0x1a, 0x9a, 0x52, 0x01, 0xc1, 0x3a, 0xa4, + 0x48, 0xa0, 0x56, 0xfd, 0xc1, 0x03, 0xd8, 0xb5, 0x13, 0xac, 0xe6, 0xec, 0x6a, 0xe3, 0x20, 0xb8, + 0x3f, 0xab, 0x6d, 0x3c, 0xb8, 0x56, 0x1d, 0xaf, 0x59, 0x6f, 0x50, 0x73, 0x0f, 0xc1, 0xbb, 0xf1, + 0x16, 0x48, 0xbc, 0x04, 0xf2, 0xda, 0x6d, 0x73, 0x07, 0x77, 0xf7, 0x6f, 0xe7, 0xfb, 0xf6, 0x9b, + 0xf9, 0x66, 0x66, 0xb5, 0x30, 0xcd, 0x84, 0xc8, 0x0a, 0x3c, 0xcf, 0x44, 0xc1, 0xcb, 0xec, 0x5c, + 0xc8, 0xec, 0x82, 0x57, 0x15, 0x96, 0x59, 0x5e, 0xe2, 0x45, 0x5e, 0x2a, 0x94, 0x25, 0x2f, 0x2e, + 0x6e, 0x0b, 0x71, 0x5b, 0x2b, 0x21, 0xf1, 0xf9, 0xc4, 0x6a, 0x94, 0x7f, 0xe4, 0x2b, 0x3c, 0xaf, + 0xa4, 0x50, 0x82, 0x58, 0x4f, 0x2a, 0xe7, 0x1f, 0x03, 0x86, 0xde, 0xe3, 0xb5, 0x45, 0x7b, 0x2b, + 0x90, 0x52, 0x48, 0xe7, 0x2f, 0x03, 0x2c, 0x7d, 0xba, 0x12, 0x29, 0x92, 0x17, 0x60, 0xc6, 0xd7, + 0xf6, 0x67, 0x84, 0xc0, 0xcb, 0x30, 0x4a, 0x02, 0x1a, 0xb9, 0x73, 0x16, 0x50, 0x1a, 0x53, 0xdb, + 0x20, 0x36, 0x0c, 0x96, 0x74, 0xce, 0x92, 0x38, 0x66, 0xf3, 0x38, 0x9a, 0xd9, 0x26, 0x19, 0xc2, + 0xd1, 0x4d, 0x40, 0x5f, 0x87, 0x8b, 0x45, 0x18, 0x47, 0xcc, 0x0f, 0xa2, 0x30, 0xf0, 0xed, 0x5e, + 0x23, 0xf6, 0xe6, 0xb1, 0xc7, 0xa2, 0x38, 0x61, 0xd3, 0x78, 0x19, 0xf9, 0xf6, 0x1e, 0x39, 0x83, + 0x13, 0xdf, 0x4d, 0x5c, 0x16, 0x46, 0x7e, 0xf0, 0x0b, 0x8b, 0x97, 0x09, 0x8b, 0xa7, 0x8c, 0xba, + 0xd1, 0x2c, 0xb0, 0xf7, 0xc9, 0x57, 0x70, 0xaa, 0x05, 0xd3, 0x20, 0xb9, 0xfa, 0x89, 0x2d, 0xc2, + 0x37, 0x41, 0x5b, 0xc5, 0xa5, 0xb3, 0xc0, 0x7e, 0x41, 0x4e, 0x61, 0xe8, 0xd2, 0xd9, 0xf2, 0x75, + 0x10, 0x25, 0xef, 0x2a, 0xfb, 0xe4, 0x18, 0xec, 0x30, 0xfa, 0xd9, 0x9d, 0x87, 0x3e, 0xd3, 0x19, + 0xae, 0x83, 0x5f, 0x6d, 0xcb, 0xf9, 0xd3, 0x84, 0x2f, 0xae, 0x24, 0x72, 0x85, 0xcb, 0xaa, 0x10, + 0x3c, 0x5d, 0xd2, 0x39, 0xc5, 0xdf, 0x37, 0x58, 0x2b, 0xf2, 0x2d, 0x0c, 0xea, 0xcd, 0x6a, 0x85, + 0x75, 0xcd, 0x2a, 0xae, 0xee, 0x46, 0xc6, 0xd8, 0x9c, 0x58, 0xf4, 0xb0, 0xc3, 0x6e, 0xb8, 0xba, + 0x23, 0x97, 0x30, 0x5c, 0xf3, 0x07, 0xb6, 0xd1, 0x52, 0x56, 0xe7, 0x6f, 0x91, 0xdd, 0x6e, 0x15, + 0xd6, 0x23, 0x73, 0x6c, 0x4c, 0x7a, 0x94, 0xac, 0xf9, 0x43, 0x9b, 0x76, 0x91, 0xbf, 0x45, 0xaf, + 0x61, 0x88, 0x0b, 0x5f, 0xbf, 0x2f, 0xa9, 0x50, 0xb2, 0x66, 0x31, 0x9d, 0xb6, 0xa7, 0xb5, 0xa7, + 0xef, 0x68, 0x6f, 0x50, 0x36, 0x3b, 0x69, 0x53, 0xbc, 0x82, 0x97, 0x59, 0xcd, 0x6e, 0x37, 0xab, + 0x7b, 0x54, 0xac, 0xe4, 0x6b, 0x1c, 0xed, 0x8d, 0x8d, 0x89, 0x45, 0x07, 0x59, 0xed, 0x69, 0x30, + 0xe2, 0x6b, 0x24, 0x3f, 0xc2, 0xc9, 0x46, 0x16, 0x0c, 0x1f, 0xaa, 0x5c, 0x6e, 0x99, 0xca, 0xd7, + 0xcd, 0xce, 0x57, 0xa2, 0x4c, 0xeb, 0xd1, 0xfe, 0xd8, 0x98, 0xec, 0xd3, 0xe3, 0x8d, 0x2c, 0x02, + 0xcd, 0x26, 0xf9, 0x1a, 0x17, 0x2d, 0xe7, 0x7c, 0x0f, 0x27, 0xff, 0x99, 0x47, 0x5d, 0x89, 0xb2, + 0x46, 0x62, 0x43, 0x6f, 0x23, 0x8b, 0x6e, 0x0e, 0xcd, 0xd1, 0xf1, 0xe1, 0xc8, 0xc7, 0x02, 0x15, + 0x36, 0xe6, 0x1e, 0xe7, 0x76, 0x0a, 0x7d, 0xdd, 0xcd, 0x3d, 0x6e, 0x47, 0xc6, 0xb8, 0x37, 0xb1, + 0xe8, 0x41, 0x13, 0x5f, 0xe3, 0x96, 0x1c, 0xc3, 0xbe, 0x12, 0xf7, 0x58, 0xea, 0xf9, 0x58, 0xb4, + 0x0d, 0x9c, 0x7b, 0xb0, 0xa7, 0xa8, 0x56, 0x77, 0x3e, 0x57, 0xfc, 0xff, 0x93, 0x98, 0xbb, 0x49, + 0xbe, 0x81, 0xc3, 0x5a, 0x71, 0xa9, 0x58, 0x5e, 0xa6, 0xf8, 0x30, 0x32, 0xc7, 0xe6, 0xa4, 0x47, + 0x41, 0x43, 0x61, 0x83, 0x90, 0x33, 0xb0, 0xb0, 0x4c, 0x3b, 0xba, 0xa7, 0xe9, 0x3e, 0x96, 0xa9, + 0x26, 0x9d, 0x1f, 0xe0, 0x68, 0xa7, 0x58, 0xd7, 0xd9, 0x09, 0xec, 0xa5, 0x5c, 0xf1, 0xd1, 0xdf, + 0x07, 0x63, 0x73, 0x32, 0xf0, 0xcc, 0xbe, 0x41, 0x35, 0xe0, 0x94, 0x60, 0x5f, 0x15, 0xa2, 0xfc, + 0x48, 0x7f, 0xe6, 0x64, 0xf0, 0x6c, 0xed, 0x0c, 0xac, 0x75, 0x33, 0x68, 0xb5, 0xad, 0x50, 0x1b, + 0x1b, 0xd0, 0x7e, 0x03, 0x24, 0xdb, 0x0a, 0x89, 0x03, 0x9f, 0x2b, 0x2e, 0x33, 0x54, 0x8c, 0x57, + 0x15, 0xcb, 0x53, 0x6d, 0x6d, 0x40, 0x0f, 0x5b, 0xd0, 0xad, 0xaa, 0x30, 0x75, 0xce, 0xe1, 0x68, + 0xa7, 0x5e, 0xe7, 0xee, 0xc3, 0x05, 0x9d, 0x4b, 0x38, 0xf6, 0x71, 0x25, 0x52, 0x2d, 0xb8, 0xc6, + 0xed, 0xa7, 0x77, 0xe0, 0x5c, 0xc2, 0xf0, 0x3d, 0x49, 0x57, 0x66, 0x04, 0x07, 0xa9, 0x26, 0xd2, + 0x47, 0x49, 0x17, 0x3a, 0x1e, 0xbc, 0x6a, 0xdf, 0x44, 0x50, 0x6a, 0x60, 0xa6, 0x3f, 0x9d, 0x85, + 0x12, 0x92, 0x67, 0xb8, 0x53, 0xf5, 0x4b, 0xe8, 0xff, 0x96, 0x17, 0xa8, 0x9f, 0x64, 0xbb, 0xb4, + 0xa7, 0xd8, 0xf1, 0xe0, 0xbb, 0x4f, 0xe4, 0xf8, 0x40, 0xb7, 0xcf, 0xd6, 0xbd, 0xc3, 0x37, 0xd6, + 0xd3, 0x07, 0xf6, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xc1, 0xfb, 0x81, 0x94, 0xfb, 0x04, 0x00, + 0x00, +} diff --git a/vendor/google.golang.org/appengine/internal/blobstore/blobstore_service.proto b/vendor/google.golang.org/appengine/internal/blobstore/blobstore_service.proto new file mode 100644 index 000000000..33b265032 --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/blobstore/blobstore_service.proto @@ -0,0 +1,71 @@ +syntax = "proto2"; +option go_package = "blobstore"; + +package appengine; + +message BlobstoreServiceError { + enum ErrorCode { + OK = 0; + INTERNAL_ERROR = 1; + URL_TOO_LONG = 2; + PERMISSION_DENIED = 3; + BLOB_NOT_FOUND = 4; + DATA_INDEX_OUT_OF_RANGE = 5; + BLOB_FETCH_SIZE_TOO_LARGE = 6; + ARGUMENT_OUT_OF_RANGE = 8; + INVALID_BLOB_KEY = 9; + } +} + +message CreateUploadURLRequest { + required string success_path = 1; + optional int64 max_upload_size_bytes = 2; + optional int64 max_upload_size_per_blob_bytes = 3; + optional string gs_bucket_name = 4; + optional int32 url_expiry_time_seconds = 5; +} + +message CreateUploadURLResponse { + required string url = 1; +} + +message DeleteBlobRequest { + repeated string blob_key = 1; + optional string token = 2; +} + +message FetchDataRequest { + required string blob_key = 1; + required int64 start_index = 2; + required int64 end_index = 3; +} + +message FetchDataResponse { + required bytes data = 1000 [ctype = CORD]; +} + +message CloneBlobRequest { + required bytes blob_key = 1; + required bytes mime_type = 2; + required bytes target_app_id = 3; +} + +message CloneBlobResponse { + required bytes blob_key = 1; +} + +message DecodeBlobKeyRequest { + repeated string blob_key = 1; +} + +message DecodeBlobKeyResponse { + repeated string decoded = 1; +} + +message CreateEncodedGoogleStorageKeyRequest { + required string filename = 1; +} + +message CreateEncodedGoogleStorageKeyResponse { + required string blob_key = 1; +} diff --git a/vendor/google.golang.org/appengine/internal/capability/capability_service.pb.go b/vendor/google.golang.org/appengine/internal/capability/capability_service.pb.go new file mode 100644 index 000000000..220fccfa9 --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/capability/capability_service.pb.go @@ -0,0 +1,203 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google.golang.org/appengine/internal/capability/capability_service.proto + +package capability + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +type IsEnabledResponse_SummaryStatus int32 + +const ( + IsEnabledResponse_DEFAULT IsEnabledResponse_SummaryStatus = 0 + IsEnabledResponse_ENABLED IsEnabledResponse_SummaryStatus = 1 + IsEnabledResponse_SCHEDULED_FUTURE IsEnabledResponse_SummaryStatus = 2 + IsEnabledResponse_SCHEDULED_NOW IsEnabledResponse_SummaryStatus = 3 + IsEnabledResponse_DISABLED IsEnabledResponse_SummaryStatus = 4 + IsEnabledResponse_UNKNOWN IsEnabledResponse_SummaryStatus = 5 +) + +var IsEnabledResponse_SummaryStatus_name = map[int32]string{ + 0: "DEFAULT", + 1: "ENABLED", + 2: "SCHEDULED_FUTURE", + 3: "SCHEDULED_NOW", + 4: "DISABLED", + 5: "UNKNOWN", +} +var IsEnabledResponse_SummaryStatus_value = map[string]int32{ + "DEFAULT": 0, + "ENABLED": 1, + "SCHEDULED_FUTURE": 2, + "SCHEDULED_NOW": 3, + "DISABLED": 4, + "UNKNOWN": 5, +} + +func (x IsEnabledResponse_SummaryStatus) Enum() *IsEnabledResponse_SummaryStatus { + p := new(IsEnabledResponse_SummaryStatus) + *p = x + return p +} +func (x IsEnabledResponse_SummaryStatus) String() string { + return proto.EnumName(IsEnabledResponse_SummaryStatus_name, int32(x)) +} +func (x *IsEnabledResponse_SummaryStatus) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(IsEnabledResponse_SummaryStatus_value, data, "IsEnabledResponse_SummaryStatus") + if err != nil { + return err + } + *x = IsEnabledResponse_SummaryStatus(value) + return nil +} +func (IsEnabledResponse_SummaryStatus) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_capability_service_030277ff00db7e72, []int{1, 0} +} + +type IsEnabledRequest struct { + Package *string `protobuf:"bytes,1,req,name=package" json:"package,omitempty"` + Capability []string `protobuf:"bytes,2,rep,name=capability" json:"capability,omitempty"` + Call []string `protobuf:"bytes,3,rep,name=call" json:"call,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *IsEnabledRequest) Reset() { *m = IsEnabledRequest{} } +func (m *IsEnabledRequest) String() string { return proto.CompactTextString(m) } +func (*IsEnabledRequest) ProtoMessage() {} +func (*IsEnabledRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_capability_service_030277ff00db7e72, []int{0} +} +func (m *IsEnabledRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_IsEnabledRequest.Unmarshal(m, b) +} +func (m *IsEnabledRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_IsEnabledRequest.Marshal(b, m, deterministic) +} +func (dst *IsEnabledRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_IsEnabledRequest.Merge(dst, src) +} +func (m *IsEnabledRequest) XXX_Size() int { + return xxx_messageInfo_IsEnabledRequest.Size(m) +} +func (m *IsEnabledRequest) XXX_DiscardUnknown() { + xxx_messageInfo_IsEnabledRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_IsEnabledRequest proto.InternalMessageInfo + +func (m *IsEnabledRequest) GetPackage() string { + if m != nil && m.Package != nil { + return *m.Package + } + return "" +} + +func (m *IsEnabledRequest) GetCapability() []string { + if m != nil { + return m.Capability + } + return nil +} + +func (m *IsEnabledRequest) GetCall() []string { + if m != nil { + return m.Call + } + return nil +} + +type IsEnabledResponse struct { + SummaryStatus *IsEnabledResponse_SummaryStatus `protobuf:"varint,1,opt,name=summary_status,json=summaryStatus,enum=appengine.IsEnabledResponse_SummaryStatus" json:"summary_status,omitempty"` + TimeUntilScheduled *int64 `protobuf:"varint,2,opt,name=time_until_scheduled,json=timeUntilScheduled" json:"time_until_scheduled,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *IsEnabledResponse) Reset() { *m = IsEnabledResponse{} } +func (m *IsEnabledResponse) String() string { return proto.CompactTextString(m) } +func (*IsEnabledResponse) ProtoMessage() {} +func (*IsEnabledResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_capability_service_030277ff00db7e72, []int{1} +} +func (m *IsEnabledResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_IsEnabledResponse.Unmarshal(m, b) +} +func (m *IsEnabledResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_IsEnabledResponse.Marshal(b, m, deterministic) +} +func (dst *IsEnabledResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_IsEnabledResponse.Merge(dst, src) +} +func (m *IsEnabledResponse) XXX_Size() int { + return xxx_messageInfo_IsEnabledResponse.Size(m) +} +func (m *IsEnabledResponse) XXX_DiscardUnknown() { + xxx_messageInfo_IsEnabledResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_IsEnabledResponse proto.InternalMessageInfo + +func (m *IsEnabledResponse) GetSummaryStatus() IsEnabledResponse_SummaryStatus { + if m != nil && m.SummaryStatus != nil { + return *m.SummaryStatus + } + return IsEnabledResponse_DEFAULT +} + +func (m *IsEnabledResponse) GetTimeUntilScheduled() int64 { + if m != nil && m.TimeUntilScheduled != nil { + return *m.TimeUntilScheduled + } + return 0 +} + +func init() { + proto.RegisterType((*IsEnabledRequest)(nil), "appengine.IsEnabledRequest") + proto.RegisterType((*IsEnabledResponse)(nil), "appengine.IsEnabledResponse") +} + +func init() { + proto.RegisterFile("google.golang.org/appengine/internal/capability/capability_service.proto", fileDescriptor_capability_service_030277ff00db7e72) +} + +var fileDescriptor_capability_service_030277ff00db7e72 = []byte{ + // 359 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x91, 0xd1, 0x8a, 0x9b, 0x40, + 0x14, 0x86, 0xa3, 0xa6, 0xa4, 0x9e, 0x26, 0xc1, 0x0c, 0xb9, 0x90, 0xb6, 0x14, 0xf1, 0x4a, 0x7a, + 0x61, 0x4a, 0xde, 0x20, 0x89, 0x86, 0x84, 0x06, 0x43, 0x35, 0x12, 0x28, 0x14, 0x3b, 0x31, 0x83, + 0x95, 0x8e, 0xa3, 0xeb, 0x8c, 0x0b, 0x79, 0x82, 0x7d, 0xed, 0x45, 0x43, 0x8c, 0xcb, 0x2e, 0x7b, + 0x77, 0xce, 0xf9, 0xf9, 0xfe, 0x99, 0x73, 0x7e, 0xd8, 0x24, 0x79, 0x9e, 0x50, 0x62, 0x27, 0x39, + 0xc5, 0x2c, 0xb1, 0xf3, 0x32, 0x99, 0xe1, 0xa2, 0x20, 0x2c, 0x49, 0x19, 0x99, 0xa5, 0x4c, 0x90, + 0x92, 0x61, 0x3a, 0x8b, 0x71, 0x81, 0x4f, 0x29, 0x4d, 0xc5, 0xa5, 0x53, 0x46, 0x9c, 0x94, 0x8f, + 0x69, 0x4c, 0xec, 0xa2, 0xcc, 0x45, 0x8e, 0xd4, 0x96, 0x33, 0xff, 0x82, 0xb6, 0xe5, 0x2e, 0xc3, + 0x27, 0x4a, 0xce, 0x3e, 0x79, 0xa8, 0x08, 0x17, 0x48, 0x87, 0x41, 0x81, 0xe3, 0xff, 0x38, 0x21, + 0xba, 0x64, 0xc8, 0x96, 0xea, 0xdf, 0x5a, 0xf4, 0x0d, 0xe0, 0x6e, 0xaa, 0xcb, 0x86, 0x62, 0xa9, + 0x7e, 0x67, 0x82, 0x10, 0xf4, 0x63, 0x4c, 0xa9, 0xae, 0x34, 0x4a, 0x53, 0x9b, 0x4f, 0x32, 0x4c, + 0x3a, 0x4f, 0xf0, 0x22, 0x67, 0x9c, 0xa0, 0x5f, 0x30, 0xe6, 0x55, 0x96, 0xe1, 0xf2, 0x12, 0x71, + 0x81, 0x45, 0xc5, 0x75, 0xc9, 0x90, 0xac, 0xf1, 0xfc, 0xbb, 0xdd, 0xfe, 0xcd, 0x7e, 0x45, 0xd9, + 0xc1, 0x15, 0x09, 0x1a, 0xc2, 0x1f, 0xf1, 0x6e, 0x8b, 0x7e, 0xc0, 0x54, 0xa4, 0x19, 0x89, 0x2a, + 0x26, 0x52, 0x1a, 0xf1, 0xf8, 0x1f, 0x39, 0x57, 0x94, 0x9c, 0x75, 0xd9, 0x90, 0x2c, 0xc5, 0x47, + 0xb5, 0x16, 0xd6, 0x52, 0x70, 0x53, 0xcc, 0x0c, 0x46, 0x2f, 0x1c, 0xd1, 0x27, 0x18, 0x38, 0xee, + 0x7a, 0x11, 0xee, 0x0e, 0x5a, 0xaf, 0x6e, 0x5c, 0x6f, 0xb1, 0xdc, 0xb9, 0x8e, 0x26, 0xa1, 0x29, + 0x68, 0xc1, 0x6a, 0xe3, 0x3a, 0xe1, 0xce, 0x75, 0xa2, 0x75, 0x78, 0x08, 0x7d, 0x57, 0x93, 0xd1, + 0x04, 0x46, 0xf7, 0xa9, 0xb7, 0x3f, 0x6a, 0x0a, 0x1a, 0xc2, 0x47, 0x67, 0x1b, 0x5c, 0xb1, 0x7e, + 0xed, 0x11, 0x7a, 0x3f, 0xbd, 0xfd, 0xd1, 0xd3, 0x3e, 0xcc, 0xff, 0xc0, 0x64, 0xd5, 0xde, 0x2a, + 0xb8, 0x26, 0x82, 0x36, 0xa0, 0xb6, 0x7b, 0xa2, 0x2f, 0x6f, 0x6f, 0xdf, 0xc4, 0xf2, 0xf9, 0xeb, + 0x7b, 0xa7, 0x31, 0x7b, 0xcb, 0xe1, 0xef, 0x4e, 0x14, 0xcf, 0x01, 0x00, 0x00, 0xff, 0xff, 0xc0, + 0x03, 0x26, 0x25, 0x2e, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/appengine/internal/capability/capability_service.proto b/vendor/google.golang.org/appengine/internal/capability/capability_service.proto new file mode 100644 index 000000000..5660ab6ee --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/capability/capability_service.proto @@ -0,0 +1,28 @@ +syntax = "proto2"; +option go_package = "capability"; + +package appengine; + +message IsEnabledRequest { + required string package = 1; + repeated string capability = 2; + repeated string call = 3; +} + +message IsEnabledResponse { + enum SummaryStatus { + DEFAULT = 0; + ENABLED = 1; + SCHEDULED_FUTURE = 2; + SCHEDULED_NOW = 3; + DISABLED = 4; + UNKNOWN = 5; + } + optional SummaryStatus summary_status = 1; + + optional int64 time_until_scheduled = 2; +} + +service CapabilityService { + rpc IsEnabled(IsEnabledRequest) returns (IsEnabledResponse) {}; +} diff --git a/vendor/google.golang.org/appengine/internal/channel/channel_service.pb.go b/vendor/google.golang.org/appengine/internal/channel/channel_service.pb.go new file mode 100644 index 000000000..ba31ea299 --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/channel/channel_service.pb.go @@ -0,0 +1,273 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google.golang.org/appengine/internal/channel/channel_service.proto + +package channel + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +type ChannelServiceError_ErrorCode int32 + +const ( + ChannelServiceError_OK ChannelServiceError_ErrorCode = 0 + ChannelServiceError_INTERNAL_ERROR ChannelServiceError_ErrorCode = 1 + ChannelServiceError_INVALID_CHANNEL_KEY ChannelServiceError_ErrorCode = 2 + ChannelServiceError_BAD_MESSAGE ChannelServiceError_ErrorCode = 3 + ChannelServiceError_INVALID_CHANNEL_TOKEN_DURATION ChannelServiceError_ErrorCode = 4 + ChannelServiceError_APPID_ALIAS_REQUIRED ChannelServiceError_ErrorCode = 5 +) + +var ChannelServiceError_ErrorCode_name = map[int32]string{ + 0: "OK", + 1: "INTERNAL_ERROR", + 2: "INVALID_CHANNEL_KEY", + 3: "BAD_MESSAGE", + 4: "INVALID_CHANNEL_TOKEN_DURATION", + 5: "APPID_ALIAS_REQUIRED", +} +var ChannelServiceError_ErrorCode_value = map[string]int32{ + "OK": 0, + "INTERNAL_ERROR": 1, + "INVALID_CHANNEL_KEY": 2, + "BAD_MESSAGE": 3, + "INVALID_CHANNEL_TOKEN_DURATION": 4, + "APPID_ALIAS_REQUIRED": 5, +} + +func (x ChannelServiceError_ErrorCode) Enum() *ChannelServiceError_ErrorCode { + p := new(ChannelServiceError_ErrorCode) + *p = x + return p +} +func (x ChannelServiceError_ErrorCode) String() string { + return proto.EnumName(ChannelServiceError_ErrorCode_name, int32(x)) +} +func (x *ChannelServiceError_ErrorCode) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(ChannelServiceError_ErrorCode_value, data, "ChannelServiceError_ErrorCode") + if err != nil { + return err + } + *x = ChannelServiceError_ErrorCode(value) + return nil +} +func (ChannelServiceError_ErrorCode) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_channel_service_a8d15e05b34664a9, []int{0, 0} +} + +type ChannelServiceError struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ChannelServiceError) Reset() { *m = ChannelServiceError{} } +func (m *ChannelServiceError) String() string { return proto.CompactTextString(m) } +func (*ChannelServiceError) ProtoMessage() {} +func (*ChannelServiceError) Descriptor() ([]byte, []int) { + return fileDescriptor_channel_service_a8d15e05b34664a9, []int{0} +} +func (m *ChannelServiceError) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ChannelServiceError.Unmarshal(m, b) +} +func (m *ChannelServiceError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ChannelServiceError.Marshal(b, m, deterministic) +} +func (dst *ChannelServiceError) XXX_Merge(src proto.Message) { + xxx_messageInfo_ChannelServiceError.Merge(dst, src) +} +func (m *ChannelServiceError) XXX_Size() int { + return xxx_messageInfo_ChannelServiceError.Size(m) +} +func (m *ChannelServiceError) XXX_DiscardUnknown() { + xxx_messageInfo_ChannelServiceError.DiscardUnknown(m) +} + +var xxx_messageInfo_ChannelServiceError proto.InternalMessageInfo + +type CreateChannelRequest struct { + ApplicationKey *string `protobuf:"bytes,1,req,name=application_key,json=applicationKey" json:"application_key,omitempty"` + DurationMinutes *int32 `protobuf:"varint,2,opt,name=duration_minutes,json=durationMinutes" json:"duration_minutes,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CreateChannelRequest) Reset() { *m = CreateChannelRequest{} } +func (m *CreateChannelRequest) String() string { return proto.CompactTextString(m) } +func (*CreateChannelRequest) ProtoMessage() {} +func (*CreateChannelRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_channel_service_a8d15e05b34664a9, []int{1} +} +func (m *CreateChannelRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreateChannelRequest.Unmarshal(m, b) +} +func (m *CreateChannelRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreateChannelRequest.Marshal(b, m, deterministic) +} +func (dst *CreateChannelRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateChannelRequest.Merge(dst, src) +} +func (m *CreateChannelRequest) XXX_Size() int { + return xxx_messageInfo_CreateChannelRequest.Size(m) +} +func (m *CreateChannelRequest) XXX_DiscardUnknown() { + xxx_messageInfo_CreateChannelRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_CreateChannelRequest proto.InternalMessageInfo + +func (m *CreateChannelRequest) GetApplicationKey() string { + if m != nil && m.ApplicationKey != nil { + return *m.ApplicationKey + } + return "" +} + +func (m *CreateChannelRequest) GetDurationMinutes() int32 { + if m != nil && m.DurationMinutes != nil { + return *m.DurationMinutes + } + return 0 +} + +type CreateChannelResponse struct { + Token *string `protobuf:"bytes,2,opt,name=token" json:"token,omitempty"` + DurationMinutes *int32 `protobuf:"varint,3,opt,name=duration_minutes,json=durationMinutes" json:"duration_minutes,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CreateChannelResponse) Reset() { *m = CreateChannelResponse{} } +func (m *CreateChannelResponse) String() string { return proto.CompactTextString(m) } +func (*CreateChannelResponse) ProtoMessage() {} +func (*CreateChannelResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_channel_service_a8d15e05b34664a9, []int{2} +} +func (m *CreateChannelResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreateChannelResponse.Unmarshal(m, b) +} +func (m *CreateChannelResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreateChannelResponse.Marshal(b, m, deterministic) +} +func (dst *CreateChannelResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateChannelResponse.Merge(dst, src) +} +func (m *CreateChannelResponse) XXX_Size() int { + return xxx_messageInfo_CreateChannelResponse.Size(m) +} +func (m *CreateChannelResponse) XXX_DiscardUnknown() { + xxx_messageInfo_CreateChannelResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_CreateChannelResponse proto.InternalMessageInfo + +func (m *CreateChannelResponse) GetToken() string { + if m != nil && m.Token != nil { + return *m.Token + } + return "" +} + +func (m *CreateChannelResponse) GetDurationMinutes() int32 { + if m != nil && m.DurationMinutes != nil { + return *m.DurationMinutes + } + return 0 +} + +type SendMessageRequest struct { + ApplicationKey *string `protobuf:"bytes,1,req,name=application_key,json=applicationKey" json:"application_key,omitempty"` + Message *string `protobuf:"bytes,2,req,name=message" json:"message,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SendMessageRequest) Reset() { *m = SendMessageRequest{} } +func (m *SendMessageRequest) String() string { return proto.CompactTextString(m) } +func (*SendMessageRequest) ProtoMessage() {} +func (*SendMessageRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_channel_service_a8d15e05b34664a9, []int{3} +} +func (m *SendMessageRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SendMessageRequest.Unmarshal(m, b) +} +func (m *SendMessageRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SendMessageRequest.Marshal(b, m, deterministic) +} +func (dst *SendMessageRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_SendMessageRequest.Merge(dst, src) +} +func (m *SendMessageRequest) XXX_Size() int { + return xxx_messageInfo_SendMessageRequest.Size(m) +} +func (m *SendMessageRequest) XXX_DiscardUnknown() { + xxx_messageInfo_SendMessageRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_SendMessageRequest proto.InternalMessageInfo + +func (m *SendMessageRequest) GetApplicationKey() string { + if m != nil && m.ApplicationKey != nil { + return *m.ApplicationKey + } + return "" +} + +func (m *SendMessageRequest) GetMessage() string { + if m != nil && m.Message != nil { + return *m.Message + } + return "" +} + +func init() { + proto.RegisterType((*ChannelServiceError)(nil), "appengine.ChannelServiceError") + proto.RegisterType((*CreateChannelRequest)(nil), "appengine.CreateChannelRequest") + proto.RegisterType((*CreateChannelResponse)(nil), "appengine.CreateChannelResponse") + proto.RegisterType((*SendMessageRequest)(nil), "appengine.SendMessageRequest") +} + +func init() { + proto.RegisterFile("google.golang.org/appengine/internal/channel/channel_service.proto", fileDescriptor_channel_service_a8d15e05b34664a9) +} + +var fileDescriptor_channel_service_a8d15e05b34664a9 = []byte{ + // 355 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x91, 0xcd, 0xee, 0xd2, 0x40, + 0x14, 0xc5, 0x6d, 0xff, 0x22, 0xe9, 0x35, 0x81, 0x66, 0xc0, 0xd8, 0x95, 0x21, 0xdd, 0x88, 0x1b, + 0x78, 0x86, 0xa1, 0x9d, 0x68, 0xd3, 0xd2, 0xe2, 0x14, 0xfc, 0xda, 0x4c, 0x26, 0x70, 0x53, 0x2b, + 0x65, 0xa6, 0x4e, 0x8b, 0x09, 0x4f, 0xe1, 0x63, 0xf8, 0x9a, 0x26, 0x14, 0x88, 0x21, 0x6c, 0x5c, + 0xcd, 0x9c, 0x93, 0xdf, 0x39, 0x33, 0x37, 0x17, 0x16, 0x85, 0xd6, 0x45, 0x85, 0xb3, 0x42, 0x57, + 0x52, 0x15, 0x33, 0x6d, 0x8a, 0xb9, 0xac, 0x6b, 0x54, 0x45, 0xa9, 0x70, 0x5e, 0xaa, 0x16, 0x8d, + 0x92, 0xd5, 0x7c, 0xfb, 0x5d, 0x2a, 0x85, 0xb7, 0x53, 0x34, 0x68, 0x7e, 0x95, 0x5b, 0x9c, 0xd5, + 0x46, 0xb7, 0x9a, 0x38, 0xb7, 0x84, 0xff, 0xc7, 0x82, 0x51, 0xd0, 0x41, 0x79, 0xc7, 0x30, 0x63, + 0xb4, 0xf1, 0x7f, 0x5b, 0xe0, 0x9c, 0x6f, 0x81, 0xde, 0x21, 0x79, 0x01, 0x76, 0x16, 0xbb, 0xcf, + 0x08, 0x81, 0x41, 0x94, 0xae, 0x19, 0x4f, 0x69, 0x22, 0x18, 0xe7, 0x19, 0x77, 0x2d, 0xf2, 0x1a, + 0x46, 0x51, 0xfa, 0x89, 0x26, 0x51, 0x28, 0x82, 0x0f, 0x34, 0x4d, 0x59, 0x22, 0x62, 0xf6, 0xd5, + 0xb5, 0xc9, 0x10, 0x5e, 0x2e, 0x68, 0x28, 0x96, 0x2c, 0xcf, 0xe9, 0x7b, 0xe6, 0x3e, 0x11, 0x1f, + 0xde, 0xdc, 0x93, 0xeb, 0x2c, 0x66, 0xa9, 0x08, 0x37, 0x9c, 0xae, 0xa3, 0x2c, 0x75, 0x9f, 0x13, + 0x0f, 0xc6, 0x74, 0xb5, 0x8a, 0x42, 0x41, 0x93, 0x88, 0xe6, 0x82, 0xb3, 0x8f, 0x9b, 0x88, 0xb3, + 0xd0, 0xed, 0xf9, 0x3f, 0x60, 0x1c, 0x18, 0x94, 0x2d, 0x5e, 0xbe, 0xcb, 0xf1, 0xe7, 0x11, 0x9b, + 0x96, 0xbc, 0x85, 0xa1, 0xac, 0xeb, 0xaa, 0xdc, 0xca, 0xb6, 0xd4, 0x4a, 0xec, 0xf1, 0xe4, 0x59, + 0x13, 0x7b, 0xea, 0xf0, 0xc1, 0x3f, 0x76, 0x8c, 0x27, 0xf2, 0x0e, 0xdc, 0xdd, 0xd1, 0x74, 0xd4, + 0xa1, 0x54, 0xc7, 0x16, 0x1b, 0xcf, 0x9e, 0x58, 0xd3, 0x1e, 0x1f, 0x5e, 0xfd, 0x65, 0x67, 0xfb, + 0x5f, 0xe0, 0xd5, 0xdd, 0x5b, 0x4d, 0xad, 0x55, 0x83, 0x64, 0x0c, 0xbd, 0x56, 0xef, 0x51, 0x9d, + 0x83, 0x0e, 0xef, 0xc4, 0xc3, 0xe6, 0xa7, 0xc7, 0xcd, 0x9f, 0x81, 0xe4, 0xa8, 0x76, 0x4b, 0x6c, + 0x1a, 0x59, 0xe0, 0x7f, 0xcf, 0xe0, 0x41, 0xff, 0xd0, 0x45, 0x3d, 0xfb, 0x0c, 0x5c, 0xe5, 0xc2, + 0xf9, 0xd6, 0xbf, 0x2c, 0xfb, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe9, 0x0a, 0x77, 0x06, 0x23, + 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/appengine/internal/channel/channel_service.proto b/vendor/google.golang.org/appengine/internal/channel/channel_service.proto new file mode 100644 index 000000000..2b5a918ca --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/channel/channel_service.proto @@ -0,0 +1,30 @@ +syntax = "proto2"; +option go_package = "channel"; + +package appengine; + +message ChannelServiceError { + enum ErrorCode { + OK = 0; + INTERNAL_ERROR = 1; + INVALID_CHANNEL_KEY = 2; + BAD_MESSAGE = 3; + INVALID_CHANNEL_TOKEN_DURATION = 4; + APPID_ALIAS_REQUIRED = 5; + } +} + +message CreateChannelRequest { + required string application_key = 1; + optional int32 duration_minutes = 2; +} + +message CreateChannelResponse { + optional string token = 2; + optional int32 duration_minutes = 3; +} + +message SendMessageRequest { + required string application_key = 1; + required string message = 2; +} diff --git a/vendor/google.golang.org/appengine/internal/datastore/datastore_v3.pb.go b/vendor/google.golang.org/appengine/internal/datastore/datastore_v3.pb.go new file mode 100644 index 000000000..2fb748289 --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/datastore/datastore_v3.pb.go @@ -0,0 +1,4367 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google.golang.org/appengine/internal/datastore/datastore_v3.proto + +package datastore + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +type Property_Meaning int32 + +const ( + Property_NO_MEANING Property_Meaning = 0 + Property_BLOB Property_Meaning = 14 + Property_TEXT Property_Meaning = 15 + Property_BYTESTRING Property_Meaning = 16 + Property_ATOM_CATEGORY Property_Meaning = 1 + Property_ATOM_LINK Property_Meaning = 2 + Property_ATOM_TITLE Property_Meaning = 3 + Property_ATOM_CONTENT Property_Meaning = 4 + Property_ATOM_SUMMARY Property_Meaning = 5 + Property_ATOM_AUTHOR Property_Meaning = 6 + Property_GD_WHEN Property_Meaning = 7 + Property_GD_EMAIL Property_Meaning = 8 + Property_GEORSS_POINT Property_Meaning = 9 + Property_GD_IM Property_Meaning = 10 + Property_GD_PHONENUMBER Property_Meaning = 11 + Property_GD_POSTALADDRESS Property_Meaning = 12 + Property_GD_RATING Property_Meaning = 13 + Property_BLOBKEY Property_Meaning = 17 + Property_ENTITY_PROTO Property_Meaning = 19 + Property_INDEX_VALUE Property_Meaning = 18 +) + +var Property_Meaning_name = map[int32]string{ + 0: "NO_MEANING", + 14: "BLOB", + 15: "TEXT", + 16: "BYTESTRING", + 1: "ATOM_CATEGORY", + 2: "ATOM_LINK", + 3: "ATOM_TITLE", + 4: "ATOM_CONTENT", + 5: "ATOM_SUMMARY", + 6: "ATOM_AUTHOR", + 7: "GD_WHEN", + 8: "GD_EMAIL", + 9: "GEORSS_POINT", + 10: "GD_IM", + 11: "GD_PHONENUMBER", + 12: "GD_POSTALADDRESS", + 13: "GD_RATING", + 17: "BLOBKEY", + 19: "ENTITY_PROTO", + 18: "INDEX_VALUE", +} +var Property_Meaning_value = map[string]int32{ + "NO_MEANING": 0, + "BLOB": 14, + "TEXT": 15, + "BYTESTRING": 16, + "ATOM_CATEGORY": 1, + "ATOM_LINK": 2, + "ATOM_TITLE": 3, + "ATOM_CONTENT": 4, + "ATOM_SUMMARY": 5, + "ATOM_AUTHOR": 6, + "GD_WHEN": 7, + "GD_EMAIL": 8, + "GEORSS_POINT": 9, + "GD_IM": 10, + "GD_PHONENUMBER": 11, + "GD_POSTALADDRESS": 12, + "GD_RATING": 13, + "BLOBKEY": 17, + "ENTITY_PROTO": 19, + "INDEX_VALUE": 18, +} + +func (x Property_Meaning) Enum() *Property_Meaning { + p := new(Property_Meaning) + *p = x + return p +} +func (x Property_Meaning) String() string { + return proto.EnumName(Property_Meaning_name, int32(x)) +} +func (x *Property_Meaning) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(Property_Meaning_value, data, "Property_Meaning") + if err != nil { + return err + } + *x = Property_Meaning(value) + return nil +} +func (Property_Meaning) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{2, 0} +} + +type Property_FtsTokenizationOption int32 + +const ( + Property_HTML Property_FtsTokenizationOption = 1 + Property_ATOM Property_FtsTokenizationOption = 2 +) + +var Property_FtsTokenizationOption_name = map[int32]string{ + 1: "HTML", + 2: "ATOM", +} +var Property_FtsTokenizationOption_value = map[string]int32{ + "HTML": 1, + "ATOM": 2, +} + +func (x Property_FtsTokenizationOption) Enum() *Property_FtsTokenizationOption { + p := new(Property_FtsTokenizationOption) + *p = x + return p +} +func (x Property_FtsTokenizationOption) String() string { + return proto.EnumName(Property_FtsTokenizationOption_name, int32(x)) +} +func (x *Property_FtsTokenizationOption) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(Property_FtsTokenizationOption_value, data, "Property_FtsTokenizationOption") + if err != nil { + return err + } + *x = Property_FtsTokenizationOption(value) + return nil +} +func (Property_FtsTokenizationOption) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{2, 1} +} + +type EntityProto_Kind int32 + +const ( + EntityProto_GD_CONTACT EntityProto_Kind = 1 + EntityProto_GD_EVENT EntityProto_Kind = 2 + EntityProto_GD_MESSAGE EntityProto_Kind = 3 +) + +var EntityProto_Kind_name = map[int32]string{ + 1: "GD_CONTACT", + 2: "GD_EVENT", + 3: "GD_MESSAGE", +} +var EntityProto_Kind_value = map[string]int32{ + "GD_CONTACT": 1, + "GD_EVENT": 2, + "GD_MESSAGE": 3, +} + +func (x EntityProto_Kind) Enum() *EntityProto_Kind { + p := new(EntityProto_Kind) + *p = x + return p +} +func (x EntityProto_Kind) String() string { + return proto.EnumName(EntityProto_Kind_name, int32(x)) +} +func (x *EntityProto_Kind) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(EntityProto_Kind_value, data, "EntityProto_Kind") + if err != nil { + return err + } + *x = EntityProto_Kind(value) + return nil +} +func (EntityProto_Kind) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{6, 0} +} + +type Index_Property_Direction int32 + +const ( + Index_Property_ASCENDING Index_Property_Direction = 1 + Index_Property_DESCENDING Index_Property_Direction = 2 +) + +var Index_Property_Direction_name = map[int32]string{ + 1: "ASCENDING", + 2: "DESCENDING", +} +var Index_Property_Direction_value = map[string]int32{ + "ASCENDING": 1, + "DESCENDING": 2, +} + +func (x Index_Property_Direction) Enum() *Index_Property_Direction { + p := new(Index_Property_Direction) + *p = x + return p +} +func (x Index_Property_Direction) String() string { + return proto.EnumName(Index_Property_Direction_name, int32(x)) +} +func (x *Index_Property_Direction) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(Index_Property_Direction_value, data, "Index_Property_Direction") + if err != nil { + return err + } + *x = Index_Property_Direction(value) + return nil +} +func (Index_Property_Direction) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{8, 0, 0} +} + +type CompositeIndex_State int32 + +const ( + CompositeIndex_WRITE_ONLY CompositeIndex_State = 1 + CompositeIndex_READ_WRITE CompositeIndex_State = 2 + CompositeIndex_DELETED CompositeIndex_State = 3 + CompositeIndex_ERROR CompositeIndex_State = 4 +) + +var CompositeIndex_State_name = map[int32]string{ + 1: "WRITE_ONLY", + 2: "READ_WRITE", + 3: "DELETED", + 4: "ERROR", +} +var CompositeIndex_State_value = map[string]int32{ + "WRITE_ONLY": 1, + "READ_WRITE": 2, + "DELETED": 3, + "ERROR": 4, +} + +func (x CompositeIndex_State) Enum() *CompositeIndex_State { + p := new(CompositeIndex_State) + *p = x + return p +} +func (x CompositeIndex_State) String() string { + return proto.EnumName(CompositeIndex_State_name, int32(x)) +} +func (x *CompositeIndex_State) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(CompositeIndex_State_value, data, "CompositeIndex_State") + if err != nil { + return err + } + *x = CompositeIndex_State(value) + return nil +} +func (CompositeIndex_State) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{9, 0} +} + +type Snapshot_Status int32 + +const ( + Snapshot_INACTIVE Snapshot_Status = 0 + Snapshot_ACTIVE Snapshot_Status = 1 +) + +var Snapshot_Status_name = map[int32]string{ + 0: "INACTIVE", + 1: "ACTIVE", +} +var Snapshot_Status_value = map[string]int32{ + "INACTIVE": 0, + "ACTIVE": 1, +} + +func (x Snapshot_Status) Enum() *Snapshot_Status { + p := new(Snapshot_Status) + *p = x + return p +} +func (x Snapshot_Status) String() string { + return proto.EnumName(Snapshot_Status_name, int32(x)) +} +func (x *Snapshot_Status) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(Snapshot_Status_value, data, "Snapshot_Status") + if err != nil { + return err + } + *x = Snapshot_Status(value) + return nil +} +func (Snapshot_Status) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{12, 0} +} + +type Query_Hint int32 + +const ( + Query_ORDER_FIRST Query_Hint = 1 + Query_ANCESTOR_FIRST Query_Hint = 2 + Query_FILTER_FIRST Query_Hint = 3 +) + +var Query_Hint_name = map[int32]string{ + 1: "ORDER_FIRST", + 2: "ANCESTOR_FIRST", + 3: "FILTER_FIRST", +} +var Query_Hint_value = map[string]int32{ + "ORDER_FIRST": 1, + "ANCESTOR_FIRST": 2, + "FILTER_FIRST": 3, +} + +func (x Query_Hint) Enum() *Query_Hint { + p := new(Query_Hint) + *p = x + return p +} +func (x Query_Hint) String() string { + return proto.EnumName(Query_Hint_name, int32(x)) +} +func (x *Query_Hint) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(Query_Hint_value, data, "Query_Hint") + if err != nil { + return err + } + *x = Query_Hint(value) + return nil +} +func (Query_Hint) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{15, 0} +} + +type Query_Filter_Operator int32 + +const ( + Query_Filter_LESS_THAN Query_Filter_Operator = 1 + Query_Filter_LESS_THAN_OR_EQUAL Query_Filter_Operator = 2 + Query_Filter_GREATER_THAN Query_Filter_Operator = 3 + Query_Filter_GREATER_THAN_OR_EQUAL Query_Filter_Operator = 4 + Query_Filter_EQUAL Query_Filter_Operator = 5 + Query_Filter_IN Query_Filter_Operator = 6 + Query_Filter_EXISTS Query_Filter_Operator = 7 +) + +var Query_Filter_Operator_name = map[int32]string{ + 1: "LESS_THAN", + 2: "LESS_THAN_OR_EQUAL", + 3: "GREATER_THAN", + 4: "GREATER_THAN_OR_EQUAL", + 5: "EQUAL", + 6: "IN", + 7: "EXISTS", +} +var Query_Filter_Operator_value = map[string]int32{ + "LESS_THAN": 1, + "LESS_THAN_OR_EQUAL": 2, + "GREATER_THAN": 3, + "GREATER_THAN_OR_EQUAL": 4, + "EQUAL": 5, + "IN": 6, + "EXISTS": 7, +} + +func (x Query_Filter_Operator) Enum() *Query_Filter_Operator { + p := new(Query_Filter_Operator) + *p = x + return p +} +func (x Query_Filter_Operator) String() string { + return proto.EnumName(Query_Filter_Operator_name, int32(x)) +} +func (x *Query_Filter_Operator) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(Query_Filter_Operator_value, data, "Query_Filter_Operator") + if err != nil { + return err + } + *x = Query_Filter_Operator(value) + return nil +} +func (Query_Filter_Operator) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{15, 0, 0} +} + +type Query_Order_Direction int32 + +const ( + Query_Order_ASCENDING Query_Order_Direction = 1 + Query_Order_DESCENDING Query_Order_Direction = 2 +) + +var Query_Order_Direction_name = map[int32]string{ + 1: "ASCENDING", + 2: "DESCENDING", +} +var Query_Order_Direction_value = map[string]int32{ + "ASCENDING": 1, + "DESCENDING": 2, +} + +func (x Query_Order_Direction) Enum() *Query_Order_Direction { + p := new(Query_Order_Direction) + *p = x + return p +} +func (x Query_Order_Direction) String() string { + return proto.EnumName(Query_Order_Direction_name, int32(x)) +} +func (x *Query_Order_Direction) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(Query_Order_Direction_value, data, "Query_Order_Direction") + if err != nil { + return err + } + *x = Query_Order_Direction(value) + return nil +} +func (Query_Order_Direction) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{15, 1, 0} +} + +type Error_ErrorCode int32 + +const ( + Error_BAD_REQUEST Error_ErrorCode = 1 + Error_CONCURRENT_TRANSACTION Error_ErrorCode = 2 + Error_INTERNAL_ERROR Error_ErrorCode = 3 + Error_NEED_INDEX Error_ErrorCode = 4 + Error_TIMEOUT Error_ErrorCode = 5 + Error_PERMISSION_DENIED Error_ErrorCode = 6 + Error_BIGTABLE_ERROR Error_ErrorCode = 7 + Error_COMMITTED_BUT_STILL_APPLYING Error_ErrorCode = 8 + Error_CAPABILITY_DISABLED Error_ErrorCode = 9 + Error_TRY_ALTERNATE_BACKEND Error_ErrorCode = 10 + Error_SAFE_TIME_TOO_OLD Error_ErrorCode = 11 +) + +var Error_ErrorCode_name = map[int32]string{ + 1: "BAD_REQUEST", + 2: "CONCURRENT_TRANSACTION", + 3: "INTERNAL_ERROR", + 4: "NEED_INDEX", + 5: "TIMEOUT", + 6: "PERMISSION_DENIED", + 7: "BIGTABLE_ERROR", + 8: "COMMITTED_BUT_STILL_APPLYING", + 9: "CAPABILITY_DISABLED", + 10: "TRY_ALTERNATE_BACKEND", + 11: "SAFE_TIME_TOO_OLD", +} +var Error_ErrorCode_value = map[string]int32{ + "BAD_REQUEST": 1, + "CONCURRENT_TRANSACTION": 2, + "INTERNAL_ERROR": 3, + "NEED_INDEX": 4, + "TIMEOUT": 5, + "PERMISSION_DENIED": 6, + "BIGTABLE_ERROR": 7, + "COMMITTED_BUT_STILL_APPLYING": 8, + "CAPABILITY_DISABLED": 9, + "TRY_ALTERNATE_BACKEND": 10, + "SAFE_TIME_TOO_OLD": 11, +} + +func (x Error_ErrorCode) Enum() *Error_ErrorCode { + p := new(Error_ErrorCode) + *p = x + return p +} +func (x Error_ErrorCode) String() string { + return proto.EnumName(Error_ErrorCode_name, int32(x)) +} +func (x *Error_ErrorCode) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(Error_ErrorCode_value, data, "Error_ErrorCode") + if err != nil { + return err + } + *x = Error_ErrorCode(value) + return nil +} +func (Error_ErrorCode) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{19, 0} +} + +type PutRequest_AutoIdPolicy int32 + +const ( + PutRequest_CURRENT PutRequest_AutoIdPolicy = 0 + PutRequest_SEQUENTIAL PutRequest_AutoIdPolicy = 1 +) + +var PutRequest_AutoIdPolicy_name = map[int32]string{ + 0: "CURRENT", + 1: "SEQUENTIAL", +} +var PutRequest_AutoIdPolicy_value = map[string]int32{ + "CURRENT": 0, + "SEQUENTIAL": 1, +} + +func (x PutRequest_AutoIdPolicy) Enum() *PutRequest_AutoIdPolicy { + p := new(PutRequest_AutoIdPolicy) + *p = x + return p +} +func (x PutRequest_AutoIdPolicy) String() string { + return proto.EnumName(PutRequest_AutoIdPolicy_name, int32(x)) +} +func (x *PutRequest_AutoIdPolicy) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(PutRequest_AutoIdPolicy_value, data, "PutRequest_AutoIdPolicy") + if err != nil { + return err + } + *x = PutRequest_AutoIdPolicy(value) + return nil +} +func (PutRequest_AutoIdPolicy) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{23, 0} +} + +type BeginTransactionRequest_TransactionMode int32 + +const ( + BeginTransactionRequest_UNKNOWN BeginTransactionRequest_TransactionMode = 0 + BeginTransactionRequest_READ_ONLY BeginTransactionRequest_TransactionMode = 1 + BeginTransactionRequest_READ_WRITE BeginTransactionRequest_TransactionMode = 2 +) + +var BeginTransactionRequest_TransactionMode_name = map[int32]string{ + 0: "UNKNOWN", + 1: "READ_ONLY", + 2: "READ_WRITE", +} +var BeginTransactionRequest_TransactionMode_value = map[string]int32{ + "UNKNOWN": 0, + "READ_ONLY": 1, + "READ_WRITE": 2, +} + +func (x BeginTransactionRequest_TransactionMode) Enum() *BeginTransactionRequest_TransactionMode { + p := new(BeginTransactionRequest_TransactionMode) + *p = x + return p +} +func (x BeginTransactionRequest_TransactionMode) String() string { + return proto.EnumName(BeginTransactionRequest_TransactionMode_name, int32(x)) +} +func (x *BeginTransactionRequest_TransactionMode) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(BeginTransactionRequest_TransactionMode_value, data, "BeginTransactionRequest_TransactionMode") + if err != nil { + return err + } + *x = BeginTransactionRequest_TransactionMode(value) + return nil +} +func (BeginTransactionRequest_TransactionMode) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{36, 0} +} + +type Action struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Action) Reset() { *m = Action{} } +func (m *Action) String() string { return proto.CompactTextString(m) } +func (*Action) ProtoMessage() {} +func (*Action) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{0} +} +func (m *Action) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Action.Unmarshal(m, b) +} +func (m *Action) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Action.Marshal(b, m, deterministic) +} +func (dst *Action) XXX_Merge(src proto.Message) { + xxx_messageInfo_Action.Merge(dst, src) +} +func (m *Action) XXX_Size() int { + return xxx_messageInfo_Action.Size(m) +} +func (m *Action) XXX_DiscardUnknown() { + xxx_messageInfo_Action.DiscardUnknown(m) +} + +var xxx_messageInfo_Action proto.InternalMessageInfo + +type PropertyValue struct { + Int64Value *int64 `protobuf:"varint,1,opt,name=int64Value" json:"int64Value,omitempty"` + BooleanValue *bool `protobuf:"varint,2,opt,name=booleanValue" json:"booleanValue,omitempty"` + StringValue *string `protobuf:"bytes,3,opt,name=stringValue" json:"stringValue,omitempty"` + DoubleValue *float64 `protobuf:"fixed64,4,opt,name=doubleValue" json:"doubleValue,omitempty"` + Pointvalue *PropertyValue_PointValue `protobuf:"group,5,opt,name=PointValue,json=pointvalue" json:"pointvalue,omitempty"` + Uservalue *PropertyValue_UserValue `protobuf:"group,8,opt,name=UserValue,json=uservalue" json:"uservalue,omitempty"` + Referencevalue *PropertyValue_ReferenceValue `protobuf:"group,12,opt,name=ReferenceValue,json=referencevalue" json:"referencevalue,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PropertyValue) Reset() { *m = PropertyValue{} } +func (m *PropertyValue) String() string { return proto.CompactTextString(m) } +func (*PropertyValue) ProtoMessage() {} +func (*PropertyValue) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{1} +} +func (m *PropertyValue) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PropertyValue.Unmarshal(m, b) +} +func (m *PropertyValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PropertyValue.Marshal(b, m, deterministic) +} +func (dst *PropertyValue) XXX_Merge(src proto.Message) { + xxx_messageInfo_PropertyValue.Merge(dst, src) +} +func (m *PropertyValue) XXX_Size() int { + return xxx_messageInfo_PropertyValue.Size(m) +} +func (m *PropertyValue) XXX_DiscardUnknown() { + xxx_messageInfo_PropertyValue.DiscardUnknown(m) +} + +var xxx_messageInfo_PropertyValue proto.InternalMessageInfo + +func (m *PropertyValue) GetInt64Value() int64 { + if m != nil && m.Int64Value != nil { + return *m.Int64Value + } + return 0 +} + +func (m *PropertyValue) GetBooleanValue() bool { + if m != nil && m.BooleanValue != nil { + return *m.BooleanValue + } + return false +} + +func (m *PropertyValue) GetStringValue() string { + if m != nil && m.StringValue != nil { + return *m.StringValue + } + return "" +} + +func (m *PropertyValue) GetDoubleValue() float64 { + if m != nil && m.DoubleValue != nil { + return *m.DoubleValue + } + return 0 +} + +func (m *PropertyValue) GetPointvalue() *PropertyValue_PointValue { + if m != nil { + return m.Pointvalue + } + return nil +} + +func (m *PropertyValue) GetUservalue() *PropertyValue_UserValue { + if m != nil { + return m.Uservalue + } + return nil +} + +func (m *PropertyValue) GetReferencevalue() *PropertyValue_ReferenceValue { + if m != nil { + return m.Referencevalue + } + return nil +} + +type PropertyValue_PointValue struct { + X *float64 `protobuf:"fixed64,6,req,name=x" json:"x,omitempty"` + Y *float64 `protobuf:"fixed64,7,req,name=y" json:"y,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PropertyValue_PointValue) Reset() { *m = PropertyValue_PointValue{} } +func (m *PropertyValue_PointValue) String() string { return proto.CompactTextString(m) } +func (*PropertyValue_PointValue) ProtoMessage() {} +func (*PropertyValue_PointValue) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{1, 0} +} +func (m *PropertyValue_PointValue) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PropertyValue_PointValue.Unmarshal(m, b) +} +func (m *PropertyValue_PointValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PropertyValue_PointValue.Marshal(b, m, deterministic) +} +func (dst *PropertyValue_PointValue) XXX_Merge(src proto.Message) { + xxx_messageInfo_PropertyValue_PointValue.Merge(dst, src) +} +func (m *PropertyValue_PointValue) XXX_Size() int { + return xxx_messageInfo_PropertyValue_PointValue.Size(m) +} +func (m *PropertyValue_PointValue) XXX_DiscardUnknown() { + xxx_messageInfo_PropertyValue_PointValue.DiscardUnknown(m) +} + +var xxx_messageInfo_PropertyValue_PointValue proto.InternalMessageInfo + +func (m *PropertyValue_PointValue) GetX() float64 { + if m != nil && m.X != nil { + return *m.X + } + return 0 +} + +func (m *PropertyValue_PointValue) GetY() float64 { + if m != nil && m.Y != nil { + return *m.Y + } + return 0 +} + +type PropertyValue_UserValue struct { + Email *string `protobuf:"bytes,9,req,name=email" json:"email,omitempty"` + AuthDomain *string `protobuf:"bytes,10,req,name=auth_domain,json=authDomain" json:"auth_domain,omitempty"` + Nickname *string `protobuf:"bytes,11,opt,name=nickname" json:"nickname,omitempty"` + FederatedIdentity *string `protobuf:"bytes,21,opt,name=federated_identity,json=federatedIdentity" json:"federated_identity,omitempty"` + FederatedProvider *string `protobuf:"bytes,22,opt,name=federated_provider,json=federatedProvider" json:"federated_provider,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PropertyValue_UserValue) Reset() { *m = PropertyValue_UserValue{} } +func (m *PropertyValue_UserValue) String() string { return proto.CompactTextString(m) } +func (*PropertyValue_UserValue) ProtoMessage() {} +func (*PropertyValue_UserValue) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{1, 1} +} +func (m *PropertyValue_UserValue) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PropertyValue_UserValue.Unmarshal(m, b) +} +func (m *PropertyValue_UserValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PropertyValue_UserValue.Marshal(b, m, deterministic) +} +func (dst *PropertyValue_UserValue) XXX_Merge(src proto.Message) { + xxx_messageInfo_PropertyValue_UserValue.Merge(dst, src) +} +func (m *PropertyValue_UserValue) XXX_Size() int { + return xxx_messageInfo_PropertyValue_UserValue.Size(m) +} +func (m *PropertyValue_UserValue) XXX_DiscardUnknown() { + xxx_messageInfo_PropertyValue_UserValue.DiscardUnknown(m) +} + +var xxx_messageInfo_PropertyValue_UserValue proto.InternalMessageInfo + +func (m *PropertyValue_UserValue) GetEmail() string { + if m != nil && m.Email != nil { + return *m.Email + } + return "" +} + +func (m *PropertyValue_UserValue) GetAuthDomain() string { + if m != nil && m.AuthDomain != nil { + return *m.AuthDomain + } + return "" +} + +func (m *PropertyValue_UserValue) GetNickname() string { + if m != nil && m.Nickname != nil { + return *m.Nickname + } + return "" +} + +func (m *PropertyValue_UserValue) GetFederatedIdentity() string { + if m != nil && m.FederatedIdentity != nil { + return *m.FederatedIdentity + } + return "" +} + +func (m *PropertyValue_UserValue) GetFederatedProvider() string { + if m != nil && m.FederatedProvider != nil { + return *m.FederatedProvider + } + return "" +} + +type PropertyValue_ReferenceValue struct { + App *string `protobuf:"bytes,13,req,name=app" json:"app,omitempty"` + NameSpace *string `protobuf:"bytes,20,opt,name=name_space,json=nameSpace" json:"name_space,omitempty"` + Pathelement []*PropertyValue_ReferenceValue_PathElement `protobuf:"group,14,rep,name=PathElement,json=pathelement" json:"pathelement,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PropertyValue_ReferenceValue) Reset() { *m = PropertyValue_ReferenceValue{} } +func (m *PropertyValue_ReferenceValue) String() string { return proto.CompactTextString(m) } +func (*PropertyValue_ReferenceValue) ProtoMessage() {} +func (*PropertyValue_ReferenceValue) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{1, 2} +} +func (m *PropertyValue_ReferenceValue) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PropertyValue_ReferenceValue.Unmarshal(m, b) +} +func (m *PropertyValue_ReferenceValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PropertyValue_ReferenceValue.Marshal(b, m, deterministic) +} +func (dst *PropertyValue_ReferenceValue) XXX_Merge(src proto.Message) { + xxx_messageInfo_PropertyValue_ReferenceValue.Merge(dst, src) +} +func (m *PropertyValue_ReferenceValue) XXX_Size() int { + return xxx_messageInfo_PropertyValue_ReferenceValue.Size(m) +} +func (m *PropertyValue_ReferenceValue) XXX_DiscardUnknown() { + xxx_messageInfo_PropertyValue_ReferenceValue.DiscardUnknown(m) +} + +var xxx_messageInfo_PropertyValue_ReferenceValue proto.InternalMessageInfo + +func (m *PropertyValue_ReferenceValue) GetApp() string { + if m != nil && m.App != nil { + return *m.App + } + return "" +} + +func (m *PropertyValue_ReferenceValue) GetNameSpace() string { + if m != nil && m.NameSpace != nil { + return *m.NameSpace + } + return "" +} + +func (m *PropertyValue_ReferenceValue) GetPathelement() []*PropertyValue_ReferenceValue_PathElement { + if m != nil { + return m.Pathelement + } + return nil +} + +type PropertyValue_ReferenceValue_PathElement struct { + Type *string `protobuf:"bytes,15,req,name=type" json:"type,omitempty"` + Id *int64 `protobuf:"varint,16,opt,name=id" json:"id,omitempty"` + Name *string `protobuf:"bytes,17,opt,name=name" json:"name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PropertyValue_ReferenceValue_PathElement) Reset() { + *m = PropertyValue_ReferenceValue_PathElement{} +} +func (m *PropertyValue_ReferenceValue_PathElement) String() string { return proto.CompactTextString(m) } +func (*PropertyValue_ReferenceValue_PathElement) ProtoMessage() {} +func (*PropertyValue_ReferenceValue_PathElement) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{1, 2, 0} +} +func (m *PropertyValue_ReferenceValue_PathElement) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PropertyValue_ReferenceValue_PathElement.Unmarshal(m, b) +} +func (m *PropertyValue_ReferenceValue_PathElement) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PropertyValue_ReferenceValue_PathElement.Marshal(b, m, deterministic) +} +func (dst *PropertyValue_ReferenceValue_PathElement) XXX_Merge(src proto.Message) { + xxx_messageInfo_PropertyValue_ReferenceValue_PathElement.Merge(dst, src) +} +func (m *PropertyValue_ReferenceValue_PathElement) XXX_Size() int { + return xxx_messageInfo_PropertyValue_ReferenceValue_PathElement.Size(m) +} +func (m *PropertyValue_ReferenceValue_PathElement) XXX_DiscardUnknown() { + xxx_messageInfo_PropertyValue_ReferenceValue_PathElement.DiscardUnknown(m) +} + +var xxx_messageInfo_PropertyValue_ReferenceValue_PathElement proto.InternalMessageInfo + +func (m *PropertyValue_ReferenceValue_PathElement) GetType() string { + if m != nil && m.Type != nil { + return *m.Type + } + return "" +} + +func (m *PropertyValue_ReferenceValue_PathElement) GetId() int64 { + if m != nil && m.Id != nil { + return *m.Id + } + return 0 +} + +func (m *PropertyValue_ReferenceValue_PathElement) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +type Property struct { + Meaning *Property_Meaning `protobuf:"varint,1,opt,name=meaning,enum=appengine.Property_Meaning,def=0" json:"meaning,omitempty"` + MeaningUri *string `protobuf:"bytes,2,opt,name=meaning_uri,json=meaningUri" json:"meaning_uri,omitempty"` + Name *string `protobuf:"bytes,3,req,name=name" json:"name,omitempty"` + Value *PropertyValue `protobuf:"bytes,5,req,name=value" json:"value,omitempty"` + Multiple *bool `protobuf:"varint,4,req,name=multiple" json:"multiple,omitempty"` + Searchable *bool `protobuf:"varint,6,opt,name=searchable,def=0" json:"searchable,omitempty"` + FtsTokenizationOption *Property_FtsTokenizationOption `protobuf:"varint,8,opt,name=fts_tokenization_option,json=ftsTokenizationOption,enum=appengine.Property_FtsTokenizationOption" json:"fts_tokenization_option,omitempty"` + Locale *string `protobuf:"bytes,9,opt,name=locale,def=en" json:"locale,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Property) Reset() { *m = Property{} } +func (m *Property) String() string { return proto.CompactTextString(m) } +func (*Property) ProtoMessage() {} +func (*Property) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{2} +} +func (m *Property) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Property.Unmarshal(m, b) +} +func (m *Property) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Property.Marshal(b, m, deterministic) +} +func (dst *Property) XXX_Merge(src proto.Message) { + xxx_messageInfo_Property.Merge(dst, src) +} +func (m *Property) XXX_Size() int { + return xxx_messageInfo_Property.Size(m) +} +func (m *Property) XXX_DiscardUnknown() { + xxx_messageInfo_Property.DiscardUnknown(m) +} + +var xxx_messageInfo_Property proto.InternalMessageInfo + +const Default_Property_Meaning Property_Meaning = Property_NO_MEANING +const Default_Property_Searchable bool = false +const Default_Property_Locale string = "en" + +func (m *Property) GetMeaning() Property_Meaning { + if m != nil && m.Meaning != nil { + return *m.Meaning + } + return Default_Property_Meaning +} + +func (m *Property) GetMeaningUri() string { + if m != nil && m.MeaningUri != nil { + return *m.MeaningUri + } + return "" +} + +func (m *Property) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +func (m *Property) GetValue() *PropertyValue { + if m != nil { + return m.Value + } + return nil +} + +func (m *Property) GetMultiple() bool { + if m != nil && m.Multiple != nil { + return *m.Multiple + } + return false +} + +func (m *Property) GetSearchable() bool { + if m != nil && m.Searchable != nil { + return *m.Searchable + } + return Default_Property_Searchable +} + +func (m *Property) GetFtsTokenizationOption() Property_FtsTokenizationOption { + if m != nil && m.FtsTokenizationOption != nil { + return *m.FtsTokenizationOption + } + return Property_HTML +} + +func (m *Property) GetLocale() string { + if m != nil && m.Locale != nil { + return *m.Locale + } + return Default_Property_Locale +} + +type Path struct { + Element []*Path_Element `protobuf:"group,1,rep,name=Element,json=element" json:"element,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Path) Reset() { *m = Path{} } +func (m *Path) String() string { return proto.CompactTextString(m) } +func (*Path) ProtoMessage() {} +func (*Path) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{3} +} +func (m *Path) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Path.Unmarshal(m, b) +} +func (m *Path) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Path.Marshal(b, m, deterministic) +} +func (dst *Path) XXX_Merge(src proto.Message) { + xxx_messageInfo_Path.Merge(dst, src) +} +func (m *Path) XXX_Size() int { + return xxx_messageInfo_Path.Size(m) +} +func (m *Path) XXX_DiscardUnknown() { + xxx_messageInfo_Path.DiscardUnknown(m) +} + +var xxx_messageInfo_Path proto.InternalMessageInfo + +func (m *Path) GetElement() []*Path_Element { + if m != nil { + return m.Element + } + return nil +} + +type Path_Element struct { + Type *string `protobuf:"bytes,2,req,name=type" json:"type,omitempty"` + Id *int64 `protobuf:"varint,3,opt,name=id" json:"id,omitempty"` + Name *string `protobuf:"bytes,4,opt,name=name" json:"name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Path_Element) Reset() { *m = Path_Element{} } +func (m *Path_Element) String() string { return proto.CompactTextString(m) } +func (*Path_Element) ProtoMessage() {} +func (*Path_Element) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{3, 0} +} +func (m *Path_Element) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Path_Element.Unmarshal(m, b) +} +func (m *Path_Element) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Path_Element.Marshal(b, m, deterministic) +} +func (dst *Path_Element) XXX_Merge(src proto.Message) { + xxx_messageInfo_Path_Element.Merge(dst, src) +} +func (m *Path_Element) XXX_Size() int { + return xxx_messageInfo_Path_Element.Size(m) +} +func (m *Path_Element) XXX_DiscardUnknown() { + xxx_messageInfo_Path_Element.DiscardUnknown(m) +} + +var xxx_messageInfo_Path_Element proto.InternalMessageInfo + +func (m *Path_Element) GetType() string { + if m != nil && m.Type != nil { + return *m.Type + } + return "" +} + +func (m *Path_Element) GetId() int64 { + if m != nil && m.Id != nil { + return *m.Id + } + return 0 +} + +func (m *Path_Element) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +type Reference struct { + App *string `protobuf:"bytes,13,req,name=app" json:"app,omitempty"` + NameSpace *string `protobuf:"bytes,20,opt,name=name_space,json=nameSpace" json:"name_space,omitempty"` + Path *Path `protobuf:"bytes,14,req,name=path" json:"path,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Reference) Reset() { *m = Reference{} } +func (m *Reference) String() string { return proto.CompactTextString(m) } +func (*Reference) ProtoMessage() {} +func (*Reference) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{4} +} +func (m *Reference) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Reference.Unmarshal(m, b) +} +func (m *Reference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Reference.Marshal(b, m, deterministic) +} +func (dst *Reference) XXX_Merge(src proto.Message) { + xxx_messageInfo_Reference.Merge(dst, src) +} +func (m *Reference) XXX_Size() int { + return xxx_messageInfo_Reference.Size(m) +} +func (m *Reference) XXX_DiscardUnknown() { + xxx_messageInfo_Reference.DiscardUnknown(m) +} + +var xxx_messageInfo_Reference proto.InternalMessageInfo + +func (m *Reference) GetApp() string { + if m != nil && m.App != nil { + return *m.App + } + return "" +} + +func (m *Reference) GetNameSpace() string { + if m != nil && m.NameSpace != nil { + return *m.NameSpace + } + return "" +} + +func (m *Reference) GetPath() *Path { + if m != nil { + return m.Path + } + return nil +} + +type User struct { + Email *string `protobuf:"bytes,1,req,name=email" json:"email,omitempty"` + AuthDomain *string `protobuf:"bytes,2,req,name=auth_domain,json=authDomain" json:"auth_domain,omitempty"` + Nickname *string `protobuf:"bytes,3,opt,name=nickname" json:"nickname,omitempty"` + FederatedIdentity *string `protobuf:"bytes,6,opt,name=federated_identity,json=federatedIdentity" json:"federated_identity,omitempty"` + FederatedProvider *string `protobuf:"bytes,7,opt,name=federated_provider,json=federatedProvider" json:"federated_provider,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *User) Reset() { *m = User{} } +func (m *User) String() string { return proto.CompactTextString(m) } +func (*User) ProtoMessage() {} +func (*User) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{5} +} +func (m *User) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_User.Unmarshal(m, b) +} +func (m *User) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_User.Marshal(b, m, deterministic) +} +func (dst *User) XXX_Merge(src proto.Message) { + xxx_messageInfo_User.Merge(dst, src) +} +func (m *User) XXX_Size() int { + return xxx_messageInfo_User.Size(m) +} +func (m *User) XXX_DiscardUnknown() { + xxx_messageInfo_User.DiscardUnknown(m) +} + +var xxx_messageInfo_User proto.InternalMessageInfo + +func (m *User) GetEmail() string { + if m != nil && m.Email != nil { + return *m.Email + } + return "" +} + +func (m *User) GetAuthDomain() string { + if m != nil && m.AuthDomain != nil { + return *m.AuthDomain + } + return "" +} + +func (m *User) GetNickname() string { + if m != nil && m.Nickname != nil { + return *m.Nickname + } + return "" +} + +func (m *User) GetFederatedIdentity() string { + if m != nil && m.FederatedIdentity != nil { + return *m.FederatedIdentity + } + return "" +} + +func (m *User) GetFederatedProvider() string { + if m != nil && m.FederatedProvider != nil { + return *m.FederatedProvider + } + return "" +} + +type EntityProto struct { + Key *Reference `protobuf:"bytes,13,req,name=key" json:"key,omitempty"` + EntityGroup *Path `protobuf:"bytes,16,req,name=entity_group,json=entityGroup" json:"entity_group,omitempty"` + Owner *User `protobuf:"bytes,17,opt,name=owner" json:"owner,omitempty"` + Kind *EntityProto_Kind `protobuf:"varint,4,opt,name=kind,enum=appengine.EntityProto_Kind" json:"kind,omitempty"` + KindUri *string `protobuf:"bytes,5,opt,name=kind_uri,json=kindUri" json:"kind_uri,omitempty"` + Property []*Property `protobuf:"bytes,14,rep,name=property" json:"property,omitempty"` + RawProperty []*Property `protobuf:"bytes,15,rep,name=raw_property,json=rawProperty" json:"raw_property,omitempty"` + Rank *int32 `protobuf:"varint,18,opt,name=rank" json:"rank,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *EntityProto) Reset() { *m = EntityProto{} } +func (m *EntityProto) String() string { return proto.CompactTextString(m) } +func (*EntityProto) ProtoMessage() {} +func (*EntityProto) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{6} +} +func (m *EntityProto) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_EntityProto.Unmarshal(m, b) +} +func (m *EntityProto) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_EntityProto.Marshal(b, m, deterministic) +} +func (dst *EntityProto) XXX_Merge(src proto.Message) { + xxx_messageInfo_EntityProto.Merge(dst, src) +} +func (m *EntityProto) XXX_Size() int { + return xxx_messageInfo_EntityProto.Size(m) +} +func (m *EntityProto) XXX_DiscardUnknown() { + xxx_messageInfo_EntityProto.DiscardUnknown(m) +} + +var xxx_messageInfo_EntityProto proto.InternalMessageInfo + +func (m *EntityProto) GetKey() *Reference { + if m != nil { + return m.Key + } + return nil +} + +func (m *EntityProto) GetEntityGroup() *Path { + if m != nil { + return m.EntityGroup + } + return nil +} + +func (m *EntityProto) GetOwner() *User { + if m != nil { + return m.Owner + } + return nil +} + +func (m *EntityProto) GetKind() EntityProto_Kind { + if m != nil && m.Kind != nil { + return *m.Kind + } + return EntityProto_GD_CONTACT +} + +func (m *EntityProto) GetKindUri() string { + if m != nil && m.KindUri != nil { + return *m.KindUri + } + return "" +} + +func (m *EntityProto) GetProperty() []*Property { + if m != nil { + return m.Property + } + return nil +} + +func (m *EntityProto) GetRawProperty() []*Property { + if m != nil { + return m.RawProperty + } + return nil +} + +func (m *EntityProto) GetRank() int32 { + if m != nil && m.Rank != nil { + return *m.Rank + } + return 0 +} + +type CompositeProperty struct { + IndexId *int64 `protobuf:"varint,1,req,name=index_id,json=indexId" json:"index_id,omitempty"` + Value []string `protobuf:"bytes,2,rep,name=value" json:"value,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CompositeProperty) Reset() { *m = CompositeProperty{} } +func (m *CompositeProperty) String() string { return proto.CompactTextString(m) } +func (*CompositeProperty) ProtoMessage() {} +func (*CompositeProperty) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{7} +} +func (m *CompositeProperty) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CompositeProperty.Unmarshal(m, b) +} +func (m *CompositeProperty) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CompositeProperty.Marshal(b, m, deterministic) +} +func (dst *CompositeProperty) XXX_Merge(src proto.Message) { + xxx_messageInfo_CompositeProperty.Merge(dst, src) +} +func (m *CompositeProperty) XXX_Size() int { + return xxx_messageInfo_CompositeProperty.Size(m) +} +func (m *CompositeProperty) XXX_DiscardUnknown() { + xxx_messageInfo_CompositeProperty.DiscardUnknown(m) +} + +var xxx_messageInfo_CompositeProperty proto.InternalMessageInfo + +func (m *CompositeProperty) GetIndexId() int64 { + if m != nil && m.IndexId != nil { + return *m.IndexId + } + return 0 +} + +func (m *CompositeProperty) GetValue() []string { + if m != nil { + return m.Value + } + return nil +} + +type Index struct { + EntityType *string `protobuf:"bytes,1,req,name=entity_type,json=entityType" json:"entity_type,omitempty"` + Ancestor *bool `protobuf:"varint,5,req,name=ancestor" json:"ancestor,omitempty"` + Property []*Index_Property `protobuf:"group,2,rep,name=Property,json=property" json:"property,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Index) Reset() { *m = Index{} } +func (m *Index) String() string { return proto.CompactTextString(m) } +func (*Index) ProtoMessage() {} +func (*Index) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{8} +} +func (m *Index) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Index.Unmarshal(m, b) +} +func (m *Index) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Index.Marshal(b, m, deterministic) +} +func (dst *Index) XXX_Merge(src proto.Message) { + xxx_messageInfo_Index.Merge(dst, src) +} +func (m *Index) XXX_Size() int { + return xxx_messageInfo_Index.Size(m) +} +func (m *Index) XXX_DiscardUnknown() { + xxx_messageInfo_Index.DiscardUnknown(m) +} + +var xxx_messageInfo_Index proto.InternalMessageInfo + +func (m *Index) GetEntityType() string { + if m != nil && m.EntityType != nil { + return *m.EntityType + } + return "" +} + +func (m *Index) GetAncestor() bool { + if m != nil && m.Ancestor != nil { + return *m.Ancestor + } + return false +} + +func (m *Index) GetProperty() []*Index_Property { + if m != nil { + return m.Property + } + return nil +} + +type Index_Property struct { + Name *string `protobuf:"bytes,3,req,name=name" json:"name,omitempty"` + Direction *Index_Property_Direction `protobuf:"varint,4,opt,name=direction,enum=appengine.Index_Property_Direction,def=1" json:"direction,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Index_Property) Reset() { *m = Index_Property{} } +func (m *Index_Property) String() string { return proto.CompactTextString(m) } +func (*Index_Property) ProtoMessage() {} +func (*Index_Property) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{8, 0} +} +func (m *Index_Property) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Index_Property.Unmarshal(m, b) +} +func (m *Index_Property) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Index_Property.Marshal(b, m, deterministic) +} +func (dst *Index_Property) XXX_Merge(src proto.Message) { + xxx_messageInfo_Index_Property.Merge(dst, src) +} +func (m *Index_Property) XXX_Size() int { + return xxx_messageInfo_Index_Property.Size(m) +} +func (m *Index_Property) XXX_DiscardUnknown() { + xxx_messageInfo_Index_Property.DiscardUnknown(m) +} + +var xxx_messageInfo_Index_Property proto.InternalMessageInfo + +const Default_Index_Property_Direction Index_Property_Direction = Index_Property_ASCENDING + +func (m *Index_Property) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +func (m *Index_Property) GetDirection() Index_Property_Direction { + if m != nil && m.Direction != nil { + return *m.Direction + } + return Default_Index_Property_Direction +} + +type CompositeIndex struct { + AppId *string `protobuf:"bytes,1,req,name=app_id,json=appId" json:"app_id,omitempty"` + Id *int64 `protobuf:"varint,2,req,name=id" json:"id,omitempty"` + Definition *Index `protobuf:"bytes,3,req,name=definition" json:"definition,omitempty"` + State *CompositeIndex_State `protobuf:"varint,4,req,name=state,enum=appengine.CompositeIndex_State" json:"state,omitempty"` + OnlyUseIfRequired *bool `protobuf:"varint,6,opt,name=only_use_if_required,json=onlyUseIfRequired,def=0" json:"only_use_if_required,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CompositeIndex) Reset() { *m = CompositeIndex{} } +func (m *CompositeIndex) String() string { return proto.CompactTextString(m) } +func (*CompositeIndex) ProtoMessage() {} +func (*CompositeIndex) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{9} +} +func (m *CompositeIndex) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CompositeIndex.Unmarshal(m, b) +} +func (m *CompositeIndex) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CompositeIndex.Marshal(b, m, deterministic) +} +func (dst *CompositeIndex) XXX_Merge(src proto.Message) { + xxx_messageInfo_CompositeIndex.Merge(dst, src) +} +func (m *CompositeIndex) XXX_Size() int { + return xxx_messageInfo_CompositeIndex.Size(m) +} +func (m *CompositeIndex) XXX_DiscardUnknown() { + xxx_messageInfo_CompositeIndex.DiscardUnknown(m) +} + +var xxx_messageInfo_CompositeIndex proto.InternalMessageInfo + +const Default_CompositeIndex_OnlyUseIfRequired bool = false + +func (m *CompositeIndex) GetAppId() string { + if m != nil && m.AppId != nil { + return *m.AppId + } + return "" +} + +func (m *CompositeIndex) GetId() int64 { + if m != nil && m.Id != nil { + return *m.Id + } + return 0 +} + +func (m *CompositeIndex) GetDefinition() *Index { + if m != nil { + return m.Definition + } + return nil +} + +func (m *CompositeIndex) GetState() CompositeIndex_State { + if m != nil && m.State != nil { + return *m.State + } + return CompositeIndex_WRITE_ONLY +} + +func (m *CompositeIndex) GetOnlyUseIfRequired() bool { + if m != nil && m.OnlyUseIfRequired != nil { + return *m.OnlyUseIfRequired + } + return Default_CompositeIndex_OnlyUseIfRequired +} + +type IndexPostfix struct { + IndexValue []*IndexPostfix_IndexValue `protobuf:"bytes,1,rep,name=index_value,json=indexValue" json:"index_value,omitempty"` + Key *Reference `protobuf:"bytes,2,opt,name=key" json:"key,omitempty"` + Before *bool `protobuf:"varint,3,opt,name=before,def=1" json:"before,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *IndexPostfix) Reset() { *m = IndexPostfix{} } +func (m *IndexPostfix) String() string { return proto.CompactTextString(m) } +func (*IndexPostfix) ProtoMessage() {} +func (*IndexPostfix) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{10} +} +func (m *IndexPostfix) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_IndexPostfix.Unmarshal(m, b) +} +func (m *IndexPostfix) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_IndexPostfix.Marshal(b, m, deterministic) +} +func (dst *IndexPostfix) XXX_Merge(src proto.Message) { + xxx_messageInfo_IndexPostfix.Merge(dst, src) +} +func (m *IndexPostfix) XXX_Size() int { + return xxx_messageInfo_IndexPostfix.Size(m) +} +func (m *IndexPostfix) XXX_DiscardUnknown() { + xxx_messageInfo_IndexPostfix.DiscardUnknown(m) +} + +var xxx_messageInfo_IndexPostfix proto.InternalMessageInfo + +const Default_IndexPostfix_Before bool = true + +func (m *IndexPostfix) GetIndexValue() []*IndexPostfix_IndexValue { + if m != nil { + return m.IndexValue + } + return nil +} + +func (m *IndexPostfix) GetKey() *Reference { + if m != nil { + return m.Key + } + return nil +} + +func (m *IndexPostfix) GetBefore() bool { + if m != nil && m.Before != nil { + return *m.Before + } + return Default_IndexPostfix_Before +} + +type IndexPostfix_IndexValue struct { + PropertyName *string `protobuf:"bytes,1,req,name=property_name,json=propertyName" json:"property_name,omitempty"` + Value *PropertyValue `protobuf:"bytes,2,req,name=value" json:"value,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *IndexPostfix_IndexValue) Reset() { *m = IndexPostfix_IndexValue{} } +func (m *IndexPostfix_IndexValue) String() string { return proto.CompactTextString(m) } +func (*IndexPostfix_IndexValue) ProtoMessage() {} +func (*IndexPostfix_IndexValue) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{10, 0} +} +func (m *IndexPostfix_IndexValue) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_IndexPostfix_IndexValue.Unmarshal(m, b) +} +func (m *IndexPostfix_IndexValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_IndexPostfix_IndexValue.Marshal(b, m, deterministic) +} +func (dst *IndexPostfix_IndexValue) XXX_Merge(src proto.Message) { + xxx_messageInfo_IndexPostfix_IndexValue.Merge(dst, src) +} +func (m *IndexPostfix_IndexValue) XXX_Size() int { + return xxx_messageInfo_IndexPostfix_IndexValue.Size(m) +} +func (m *IndexPostfix_IndexValue) XXX_DiscardUnknown() { + xxx_messageInfo_IndexPostfix_IndexValue.DiscardUnknown(m) +} + +var xxx_messageInfo_IndexPostfix_IndexValue proto.InternalMessageInfo + +func (m *IndexPostfix_IndexValue) GetPropertyName() string { + if m != nil && m.PropertyName != nil { + return *m.PropertyName + } + return "" +} + +func (m *IndexPostfix_IndexValue) GetValue() *PropertyValue { + if m != nil { + return m.Value + } + return nil +} + +type IndexPosition struct { + Key *string `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"` + Before *bool `protobuf:"varint,2,opt,name=before,def=1" json:"before,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *IndexPosition) Reset() { *m = IndexPosition{} } +func (m *IndexPosition) String() string { return proto.CompactTextString(m) } +func (*IndexPosition) ProtoMessage() {} +func (*IndexPosition) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{11} +} +func (m *IndexPosition) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_IndexPosition.Unmarshal(m, b) +} +func (m *IndexPosition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_IndexPosition.Marshal(b, m, deterministic) +} +func (dst *IndexPosition) XXX_Merge(src proto.Message) { + xxx_messageInfo_IndexPosition.Merge(dst, src) +} +func (m *IndexPosition) XXX_Size() int { + return xxx_messageInfo_IndexPosition.Size(m) +} +func (m *IndexPosition) XXX_DiscardUnknown() { + xxx_messageInfo_IndexPosition.DiscardUnknown(m) +} + +var xxx_messageInfo_IndexPosition proto.InternalMessageInfo + +const Default_IndexPosition_Before bool = true + +func (m *IndexPosition) GetKey() string { + if m != nil && m.Key != nil { + return *m.Key + } + return "" +} + +func (m *IndexPosition) GetBefore() bool { + if m != nil && m.Before != nil { + return *m.Before + } + return Default_IndexPosition_Before +} + +type Snapshot struct { + Ts *int64 `protobuf:"varint,1,req,name=ts" json:"ts,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Snapshot) Reset() { *m = Snapshot{} } +func (m *Snapshot) String() string { return proto.CompactTextString(m) } +func (*Snapshot) ProtoMessage() {} +func (*Snapshot) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{12} +} +func (m *Snapshot) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Snapshot.Unmarshal(m, b) +} +func (m *Snapshot) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Snapshot.Marshal(b, m, deterministic) +} +func (dst *Snapshot) XXX_Merge(src proto.Message) { + xxx_messageInfo_Snapshot.Merge(dst, src) +} +func (m *Snapshot) XXX_Size() int { + return xxx_messageInfo_Snapshot.Size(m) +} +func (m *Snapshot) XXX_DiscardUnknown() { + xxx_messageInfo_Snapshot.DiscardUnknown(m) +} + +var xxx_messageInfo_Snapshot proto.InternalMessageInfo + +func (m *Snapshot) GetTs() int64 { + if m != nil && m.Ts != nil { + return *m.Ts + } + return 0 +} + +type InternalHeader struct { + Qos *string `protobuf:"bytes,1,opt,name=qos" json:"qos,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *InternalHeader) Reset() { *m = InternalHeader{} } +func (m *InternalHeader) String() string { return proto.CompactTextString(m) } +func (*InternalHeader) ProtoMessage() {} +func (*InternalHeader) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{13} +} +func (m *InternalHeader) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_InternalHeader.Unmarshal(m, b) +} +func (m *InternalHeader) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_InternalHeader.Marshal(b, m, deterministic) +} +func (dst *InternalHeader) XXX_Merge(src proto.Message) { + xxx_messageInfo_InternalHeader.Merge(dst, src) +} +func (m *InternalHeader) XXX_Size() int { + return xxx_messageInfo_InternalHeader.Size(m) +} +func (m *InternalHeader) XXX_DiscardUnknown() { + xxx_messageInfo_InternalHeader.DiscardUnknown(m) +} + +var xxx_messageInfo_InternalHeader proto.InternalMessageInfo + +func (m *InternalHeader) GetQos() string { + if m != nil && m.Qos != nil { + return *m.Qos + } + return "" +} + +type Transaction struct { + Header *InternalHeader `protobuf:"bytes,4,opt,name=header" json:"header,omitempty"` + Handle *uint64 `protobuf:"fixed64,1,req,name=handle" json:"handle,omitempty"` + App *string `protobuf:"bytes,2,req,name=app" json:"app,omitempty"` + MarkChanges *bool `protobuf:"varint,3,opt,name=mark_changes,json=markChanges,def=0" json:"mark_changes,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Transaction) Reset() { *m = Transaction{} } +func (m *Transaction) String() string { return proto.CompactTextString(m) } +func (*Transaction) ProtoMessage() {} +func (*Transaction) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{14} +} +func (m *Transaction) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Transaction.Unmarshal(m, b) +} +func (m *Transaction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Transaction.Marshal(b, m, deterministic) +} +func (dst *Transaction) XXX_Merge(src proto.Message) { + xxx_messageInfo_Transaction.Merge(dst, src) +} +func (m *Transaction) XXX_Size() int { + return xxx_messageInfo_Transaction.Size(m) +} +func (m *Transaction) XXX_DiscardUnknown() { + xxx_messageInfo_Transaction.DiscardUnknown(m) +} + +var xxx_messageInfo_Transaction proto.InternalMessageInfo + +const Default_Transaction_MarkChanges bool = false + +func (m *Transaction) GetHeader() *InternalHeader { + if m != nil { + return m.Header + } + return nil +} + +func (m *Transaction) GetHandle() uint64 { + if m != nil && m.Handle != nil { + return *m.Handle + } + return 0 +} + +func (m *Transaction) GetApp() string { + if m != nil && m.App != nil { + return *m.App + } + return "" +} + +func (m *Transaction) GetMarkChanges() bool { + if m != nil && m.MarkChanges != nil { + return *m.MarkChanges + } + return Default_Transaction_MarkChanges +} + +type Query struct { + Header *InternalHeader `protobuf:"bytes,39,opt,name=header" json:"header,omitempty"` + App *string `protobuf:"bytes,1,req,name=app" json:"app,omitempty"` + NameSpace *string `protobuf:"bytes,29,opt,name=name_space,json=nameSpace" json:"name_space,omitempty"` + Kind *string `protobuf:"bytes,3,opt,name=kind" json:"kind,omitempty"` + Ancestor *Reference `protobuf:"bytes,17,opt,name=ancestor" json:"ancestor,omitempty"` + Filter []*Query_Filter `protobuf:"group,4,rep,name=Filter,json=filter" json:"filter,omitempty"` + SearchQuery *string `protobuf:"bytes,8,opt,name=search_query,json=searchQuery" json:"search_query,omitempty"` + Order []*Query_Order `protobuf:"group,9,rep,name=Order,json=order" json:"order,omitempty"` + Hint *Query_Hint `protobuf:"varint,18,opt,name=hint,enum=appengine.Query_Hint" json:"hint,omitempty"` + Count *int32 `protobuf:"varint,23,opt,name=count" json:"count,omitempty"` + Offset *int32 `protobuf:"varint,12,opt,name=offset,def=0" json:"offset,omitempty"` + Limit *int32 `protobuf:"varint,16,opt,name=limit" json:"limit,omitempty"` + CompiledCursor *CompiledCursor `protobuf:"bytes,30,opt,name=compiled_cursor,json=compiledCursor" json:"compiled_cursor,omitempty"` + EndCompiledCursor *CompiledCursor `protobuf:"bytes,31,opt,name=end_compiled_cursor,json=endCompiledCursor" json:"end_compiled_cursor,omitempty"` + CompositeIndex []*CompositeIndex `protobuf:"bytes,19,rep,name=composite_index,json=compositeIndex" json:"composite_index,omitempty"` + RequirePerfectPlan *bool `protobuf:"varint,20,opt,name=require_perfect_plan,json=requirePerfectPlan,def=0" json:"require_perfect_plan,omitempty"` + KeysOnly *bool `protobuf:"varint,21,opt,name=keys_only,json=keysOnly,def=0" json:"keys_only,omitempty"` + Transaction *Transaction `protobuf:"bytes,22,opt,name=transaction" json:"transaction,omitempty"` + Compile *bool `protobuf:"varint,25,opt,name=compile,def=0" json:"compile,omitempty"` + FailoverMs *int64 `protobuf:"varint,26,opt,name=failover_ms,json=failoverMs" json:"failover_ms,omitempty"` + Strong *bool `protobuf:"varint,32,opt,name=strong" json:"strong,omitempty"` + PropertyName []string `protobuf:"bytes,33,rep,name=property_name,json=propertyName" json:"property_name,omitempty"` + GroupByPropertyName []string `protobuf:"bytes,34,rep,name=group_by_property_name,json=groupByPropertyName" json:"group_by_property_name,omitempty"` + Distinct *bool `protobuf:"varint,24,opt,name=distinct" json:"distinct,omitempty"` + MinSafeTimeSeconds *int64 `protobuf:"varint,35,opt,name=min_safe_time_seconds,json=minSafeTimeSeconds" json:"min_safe_time_seconds,omitempty"` + SafeReplicaName []string `protobuf:"bytes,36,rep,name=safe_replica_name,json=safeReplicaName" json:"safe_replica_name,omitempty"` + PersistOffset *bool `protobuf:"varint,37,opt,name=persist_offset,json=persistOffset,def=0" json:"persist_offset,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Query) Reset() { *m = Query{} } +func (m *Query) String() string { return proto.CompactTextString(m) } +func (*Query) ProtoMessage() {} +func (*Query) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{15} +} +func (m *Query) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Query.Unmarshal(m, b) +} +func (m *Query) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Query.Marshal(b, m, deterministic) +} +func (dst *Query) XXX_Merge(src proto.Message) { + xxx_messageInfo_Query.Merge(dst, src) +} +func (m *Query) XXX_Size() int { + return xxx_messageInfo_Query.Size(m) +} +func (m *Query) XXX_DiscardUnknown() { + xxx_messageInfo_Query.DiscardUnknown(m) +} + +var xxx_messageInfo_Query proto.InternalMessageInfo + +const Default_Query_Offset int32 = 0 +const Default_Query_RequirePerfectPlan bool = false +const Default_Query_KeysOnly bool = false +const Default_Query_Compile bool = false +const Default_Query_PersistOffset bool = false + +func (m *Query) GetHeader() *InternalHeader { + if m != nil { + return m.Header + } + return nil +} + +func (m *Query) GetApp() string { + if m != nil && m.App != nil { + return *m.App + } + return "" +} + +func (m *Query) GetNameSpace() string { + if m != nil && m.NameSpace != nil { + return *m.NameSpace + } + return "" +} + +func (m *Query) GetKind() string { + if m != nil && m.Kind != nil { + return *m.Kind + } + return "" +} + +func (m *Query) GetAncestor() *Reference { + if m != nil { + return m.Ancestor + } + return nil +} + +func (m *Query) GetFilter() []*Query_Filter { + if m != nil { + return m.Filter + } + return nil +} + +func (m *Query) GetSearchQuery() string { + if m != nil && m.SearchQuery != nil { + return *m.SearchQuery + } + return "" +} + +func (m *Query) GetOrder() []*Query_Order { + if m != nil { + return m.Order + } + return nil +} + +func (m *Query) GetHint() Query_Hint { + if m != nil && m.Hint != nil { + return *m.Hint + } + return Query_ORDER_FIRST +} + +func (m *Query) GetCount() int32 { + if m != nil && m.Count != nil { + return *m.Count + } + return 0 +} + +func (m *Query) GetOffset() int32 { + if m != nil && m.Offset != nil { + return *m.Offset + } + return Default_Query_Offset +} + +func (m *Query) GetLimit() int32 { + if m != nil && m.Limit != nil { + return *m.Limit + } + return 0 +} + +func (m *Query) GetCompiledCursor() *CompiledCursor { + if m != nil { + return m.CompiledCursor + } + return nil +} + +func (m *Query) GetEndCompiledCursor() *CompiledCursor { + if m != nil { + return m.EndCompiledCursor + } + return nil +} + +func (m *Query) GetCompositeIndex() []*CompositeIndex { + if m != nil { + return m.CompositeIndex + } + return nil +} + +func (m *Query) GetRequirePerfectPlan() bool { + if m != nil && m.RequirePerfectPlan != nil { + return *m.RequirePerfectPlan + } + return Default_Query_RequirePerfectPlan +} + +func (m *Query) GetKeysOnly() bool { + if m != nil && m.KeysOnly != nil { + return *m.KeysOnly + } + return Default_Query_KeysOnly +} + +func (m *Query) GetTransaction() *Transaction { + if m != nil { + return m.Transaction + } + return nil +} + +func (m *Query) GetCompile() bool { + if m != nil && m.Compile != nil { + return *m.Compile + } + return Default_Query_Compile +} + +func (m *Query) GetFailoverMs() int64 { + if m != nil && m.FailoverMs != nil { + return *m.FailoverMs + } + return 0 +} + +func (m *Query) GetStrong() bool { + if m != nil && m.Strong != nil { + return *m.Strong + } + return false +} + +func (m *Query) GetPropertyName() []string { + if m != nil { + return m.PropertyName + } + return nil +} + +func (m *Query) GetGroupByPropertyName() []string { + if m != nil { + return m.GroupByPropertyName + } + return nil +} + +func (m *Query) GetDistinct() bool { + if m != nil && m.Distinct != nil { + return *m.Distinct + } + return false +} + +func (m *Query) GetMinSafeTimeSeconds() int64 { + if m != nil && m.MinSafeTimeSeconds != nil { + return *m.MinSafeTimeSeconds + } + return 0 +} + +func (m *Query) GetSafeReplicaName() []string { + if m != nil { + return m.SafeReplicaName + } + return nil +} + +func (m *Query) GetPersistOffset() bool { + if m != nil && m.PersistOffset != nil { + return *m.PersistOffset + } + return Default_Query_PersistOffset +} + +type Query_Filter struct { + Op *Query_Filter_Operator `protobuf:"varint,6,req,name=op,enum=appengine.Query_Filter_Operator" json:"op,omitempty"` + Property []*Property `protobuf:"bytes,14,rep,name=property" json:"property,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Query_Filter) Reset() { *m = Query_Filter{} } +func (m *Query_Filter) String() string { return proto.CompactTextString(m) } +func (*Query_Filter) ProtoMessage() {} +func (*Query_Filter) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{15, 0} +} +func (m *Query_Filter) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Query_Filter.Unmarshal(m, b) +} +func (m *Query_Filter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Query_Filter.Marshal(b, m, deterministic) +} +func (dst *Query_Filter) XXX_Merge(src proto.Message) { + xxx_messageInfo_Query_Filter.Merge(dst, src) +} +func (m *Query_Filter) XXX_Size() int { + return xxx_messageInfo_Query_Filter.Size(m) +} +func (m *Query_Filter) XXX_DiscardUnknown() { + xxx_messageInfo_Query_Filter.DiscardUnknown(m) +} + +var xxx_messageInfo_Query_Filter proto.InternalMessageInfo + +func (m *Query_Filter) GetOp() Query_Filter_Operator { + if m != nil && m.Op != nil { + return *m.Op + } + return Query_Filter_LESS_THAN +} + +func (m *Query_Filter) GetProperty() []*Property { + if m != nil { + return m.Property + } + return nil +} + +type Query_Order struct { + Property *string `protobuf:"bytes,10,req,name=property" json:"property,omitempty"` + Direction *Query_Order_Direction `protobuf:"varint,11,opt,name=direction,enum=appengine.Query_Order_Direction,def=1" json:"direction,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Query_Order) Reset() { *m = Query_Order{} } +func (m *Query_Order) String() string { return proto.CompactTextString(m) } +func (*Query_Order) ProtoMessage() {} +func (*Query_Order) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{15, 1} +} +func (m *Query_Order) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Query_Order.Unmarshal(m, b) +} +func (m *Query_Order) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Query_Order.Marshal(b, m, deterministic) +} +func (dst *Query_Order) XXX_Merge(src proto.Message) { + xxx_messageInfo_Query_Order.Merge(dst, src) +} +func (m *Query_Order) XXX_Size() int { + return xxx_messageInfo_Query_Order.Size(m) +} +func (m *Query_Order) XXX_DiscardUnknown() { + xxx_messageInfo_Query_Order.DiscardUnknown(m) +} + +var xxx_messageInfo_Query_Order proto.InternalMessageInfo + +const Default_Query_Order_Direction Query_Order_Direction = Query_Order_ASCENDING + +func (m *Query_Order) GetProperty() string { + if m != nil && m.Property != nil { + return *m.Property + } + return "" +} + +func (m *Query_Order) GetDirection() Query_Order_Direction { + if m != nil && m.Direction != nil { + return *m.Direction + } + return Default_Query_Order_Direction +} + +type CompiledQuery struct { + Primaryscan *CompiledQuery_PrimaryScan `protobuf:"group,1,req,name=PrimaryScan,json=primaryscan" json:"primaryscan,omitempty"` + Mergejoinscan []*CompiledQuery_MergeJoinScan `protobuf:"group,7,rep,name=MergeJoinScan,json=mergejoinscan" json:"mergejoinscan,omitempty"` + IndexDef *Index `protobuf:"bytes,21,opt,name=index_def,json=indexDef" json:"index_def,omitempty"` + Offset *int32 `protobuf:"varint,10,opt,name=offset,def=0" json:"offset,omitempty"` + Limit *int32 `protobuf:"varint,11,opt,name=limit" json:"limit,omitempty"` + KeysOnly *bool `protobuf:"varint,12,req,name=keys_only,json=keysOnly" json:"keys_only,omitempty"` + PropertyName []string `protobuf:"bytes,24,rep,name=property_name,json=propertyName" json:"property_name,omitempty"` + DistinctInfixSize *int32 `protobuf:"varint,25,opt,name=distinct_infix_size,json=distinctInfixSize" json:"distinct_infix_size,omitempty"` + Entityfilter *CompiledQuery_EntityFilter `protobuf:"group,13,opt,name=EntityFilter,json=entityfilter" json:"entityfilter,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CompiledQuery) Reset() { *m = CompiledQuery{} } +func (m *CompiledQuery) String() string { return proto.CompactTextString(m) } +func (*CompiledQuery) ProtoMessage() {} +func (*CompiledQuery) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{16} +} +func (m *CompiledQuery) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CompiledQuery.Unmarshal(m, b) +} +func (m *CompiledQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CompiledQuery.Marshal(b, m, deterministic) +} +func (dst *CompiledQuery) XXX_Merge(src proto.Message) { + xxx_messageInfo_CompiledQuery.Merge(dst, src) +} +func (m *CompiledQuery) XXX_Size() int { + return xxx_messageInfo_CompiledQuery.Size(m) +} +func (m *CompiledQuery) XXX_DiscardUnknown() { + xxx_messageInfo_CompiledQuery.DiscardUnknown(m) +} + +var xxx_messageInfo_CompiledQuery proto.InternalMessageInfo + +const Default_CompiledQuery_Offset int32 = 0 + +func (m *CompiledQuery) GetPrimaryscan() *CompiledQuery_PrimaryScan { + if m != nil { + return m.Primaryscan + } + return nil +} + +func (m *CompiledQuery) GetMergejoinscan() []*CompiledQuery_MergeJoinScan { + if m != nil { + return m.Mergejoinscan + } + return nil +} + +func (m *CompiledQuery) GetIndexDef() *Index { + if m != nil { + return m.IndexDef + } + return nil +} + +func (m *CompiledQuery) GetOffset() int32 { + if m != nil && m.Offset != nil { + return *m.Offset + } + return Default_CompiledQuery_Offset +} + +func (m *CompiledQuery) GetLimit() int32 { + if m != nil && m.Limit != nil { + return *m.Limit + } + return 0 +} + +func (m *CompiledQuery) GetKeysOnly() bool { + if m != nil && m.KeysOnly != nil { + return *m.KeysOnly + } + return false +} + +func (m *CompiledQuery) GetPropertyName() []string { + if m != nil { + return m.PropertyName + } + return nil +} + +func (m *CompiledQuery) GetDistinctInfixSize() int32 { + if m != nil && m.DistinctInfixSize != nil { + return *m.DistinctInfixSize + } + return 0 +} + +func (m *CompiledQuery) GetEntityfilter() *CompiledQuery_EntityFilter { + if m != nil { + return m.Entityfilter + } + return nil +} + +type CompiledQuery_PrimaryScan struct { + IndexName *string `protobuf:"bytes,2,opt,name=index_name,json=indexName" json:"index_name,omitempty"` + StartKey *string `protobuf:"bytes,3,opt,name=start_key,json=startKey" json:"start_key,omitempty"` + StartInclusive *bool `protobuf:"varint,4,opt,name=start_inclusive,json=startInclusive" json:"start_inclusive,omitempty"` + EndKey *string `protobuf:"bytes,5,opt,name=end_key,json=endKey" json:"end_key,omitempty"` + EndInclusive *bool `protobuf:"varint,6,opt,name=end_inclusive,json=endInclusive" json:"end_inclusive,omitempty"` + StartPostfixValue []string `protobuf:"bytes,22,rep,name=start_postfix_value,json=startPostfixValue" json:"start_postfix_value,omitempty"` + EndPostfixValue []string `protobuf:"bytes,23,rep,name=end_postfix_value,json=endPostfixValue" json:"end_postfix_value,omitempty"` + EndUnappliedLogTimestampUs *int64 `protobuf:"varint,19,opt,name=end_unapplied_log_timestamp_us,json=endUnappliedLogTimestampUs" json:"end_unapplied_log_timestamp_us,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CompiledQuery_PrimaryScan) Reset() { *m = CompiledQuery_PrimaryScan{} } +func (m *CompiledQuery_PrimaryScan) String() string { return proto.CompactTextString(m) } +func (*CompiledQuery_PrimaryScan) ProtoMessage() {} +func (*CompiledQuery_PrimaryScan) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{16, 0} +} +func (m *CompiledQuery_PrimaryScan) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CompiledQuery_PrimaryScan.Unmarshal(m, b) +} +func (m *CompiledQuery_PrimaryScan) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CompiledQuery_PrimaryScan.Marshal(b, m, deterministic) +} +func (dst *CompiledQuery_PrimaryScan) XXX_Merge(src proto.Message) { + xxx_messageInfo_CompiledQuery_PrimaryScan.Merge(dst, src) +} +func (m *CompiledQuery_PrimaryScan) XXX_Size() int { + return xxx_messageInfo_CompiledQuery_PrimaryScan.Size(m) +} +func (m *CompiledQuery_PrimaryScan) XXX_DiscardUnknown() { + xxx_messageInfo_CompiledQuery_PrimaryScan.DiscardUnknown(m) +} + +var xxx_messageInfo_CompiledQuery_PrimaryScan proto.InternalMessageInfo + +func (m *CompiledQuery_PrimaryScan) GetIndexName() string { + if m != nil && m.IndexName != nil { + return *m.IndexName + } + return "" +} + +func (m *CompiledQuery_PrimaryScan) GetStartKey() string { + if m != nil && m.StartKey != nil { + return *m.StartKey + } + return "" +} + +func (m *CompiledQuery_PrimaryScan) GetStartInclusive() bool { + if m != nil && m.StartInclusive != nil { + return *m.StartInclusive + } + return false +} + +func (m *CompiledQuery_PrimaryScan) GetEndKey() string { + if m != nil && m.EndKey != nil { + return *m.EndKey + } + return "" +} + +func (m *CompiledQuery_PrimaryScan) GetEndInclusive() bool { + if m != nil && m.EndInclusive != nil { + return *m.EndInclusive + } + return false +} + +func (m *CompiledQuery_PrimaryScan) GetStartPostfixValue() []string { + if m != nil { + return m.StartPostfixValue + } + return nil +} + +func (m *CompiledQuery_PrimaryScan) GetEndPostfixValue() []string { + if m != nil { + return m.EndPostfixValue + } + return nil +} + +func (m *CompiledQuery_PrimaryScan) GetEndUnappliedLogTimestampUs() int64 { + if m != nil && m.EndUnappliedLogTimestampUs != nil { + return *m.EndUnappliedLogTimestampUs + } + return 0 +} + +type CompiledQuery_MergeJoinScan struct { + IndexName *string `protobuf:"bytes,8,req,name=index_name,json=indexName" json:"index_name,omitempty"` + PrefixValue []string `protobuf:"bytes,9,rep,name=prefix_value,json=prefixValue" json:"prefix_value,omitempty"` + ValuePrefix *bool `protobuf:"varint,20,opt,name=value_prefix,json=valuePrefix,def=0" json:"value_prefix,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CompiledQuery_MergeJoinScan) Reset() { *m = CompiledQuery_MergeJoinScan{} } +func (m *CompiledQuery_MergeJoinScan) String() string { return proto.CompactTextString(m) } +func (*CompiledQuery_MergeJoinScan) ProtoMessage() {} +func (*CompiledQuery_MergeJoinScan) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{16, 1} +} +func (m *CompiledQuery_MergeJoinScan) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CompiledQuery_MergeJoinScan.Unmarshal(m, b) +} +func (m *CompiledQuery_MergeJoinScan) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CompiledQuery_MergeJoinScan.Marshal(b, m, deterministic) +} +func (dst *CompiledQuery_MergeJoinScan) XXX_Merge(src proto.Message) { + xxx_messageInfo_CompiledQuery_MergeJoinScan.Merge(dst, src) +} +func (m *CompiledQuery_MergeJoinScan) XXX_Size() int { + return xxx_messageInfo_CompiledQuery_MergeJoinScan.Size(m) +} +func (m *CompiledQuery_MergeJoinScan) XXX_DiscardUnknown() { + xxx_messageInfo_CompiledQuery_MergeJoinScan.DiscardUnknown(m) +} + +var xxx_messageInfo_CompiledQuery_MergeJoinScan proto.InternalMessageInfo + +const Default_CompiledQuery_MergeJoinScan_ValuePrefix bool = false + +func (m *CompiledQuery_MergeJoinScan) GetIndexName() string { + if m != nil && m.IndexName != nil { + return *m.IndexName + } + return "" +} + +func (m *CompiledQuery_MergeJoinScan) GetPrefixValue() []string { + if m != nil { + return m.PrefixValue + } + return nil +} + +func (m *CompiledQuery_MergeJoinScan) GetValuePrefix() bool { + if m != nil && m.ValuePrefix != nil { + return *m.ValuePrefix + } + return Default_CompiledQuery_MergeJoinScan_ValuePrefix +} + +type CompiledQuery_EntityFilter struct { + Distinct *bool `protobuf:"varint,14,opt,name=distinct,def=0" json:"distinct,omitempty"` + Kind *string `protobuf:"bytes,17,opt,name=kind" json:"kind,omitempty"` + Ancestor *Reference `protobuf:"bytes,18,opt,name=ancestor" json:"ancestor,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CompiledQuery_EntityFilter) Reset() { *m = CompiledQuery_EntityFilter{} } +func (m *CompiledQuery_EntityFilter) String() string { return proto.CompactTextString(m) } +func (*CompiledQuery_EntityFilter) ProtoMessage() {} +func (*CompiledQuery_EntityFilter) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{16, 2} +} +func (m *CompiledQuery_EntityFilter) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CompiledQuery_EntityFilter.Unmarshal(m, b) +} +func (m *CompiledQuery_EntityFilter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CompiledQuery_EntityFilter.Marshal(b, m, deterministic) +} +func (dst *CompiledQuery_EntityFilter) XXX_Merge(src proto.Message) { + xxx_messageInfo_CompiledQuery_EntityFilter.Merge(dst, src) +} +func (m *CompiledQuery_EntityFilter) XXX_Size() int { + return xxx_messageInfo_CompiledQuery_EntityFilter.Size(m) +} +func (m *CompiledQuery_EntityFilter) XXX_DiscardUnknown() { + xxx_messageInfo_CompiledQuery_EntityFilter.DiscardUnknown(m) +} + +var xxx_messageInfo_CompiledQuery_EntityFilter proto.InternalMessageInfo + +const Default_CompiledQuery_EntityFilter_Distinct bool = false + +func (m *CompiledQuery_EntityFilter) GetDistinct() bool { + if m != nil && m.Distinct != nil { + return *m.Distinct + } + return Default_CompiledQuery_EntityFilter_Distinct +} + +func (m *CompiledQuery_EntityFilter) GetKind() string { + if m != nil && m.Kind != nil { + return *m.Kind + } + return "" +} + +func (m *CompiledQuery_EntityFilter) GetAncestor() *Reference { + if m != nil { + return m.Ancestor + } + return nil +} + +type CompiledCursor struct { + Position *CompiledCursor_Position `protobuf:"group,2,opt,name=Position,json=position" json:"position,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CompiledCursor) Reset() { *m = CompiledCursor{} } +func (m *CompiledCursor) String() string { return proto.CompactTextString(m) } +func (*CompiledCursor) ProtoMessage() {} +func (*CompiledCursor) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{17} +} +func (m *CompiledCursor) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CompiledCursor.Unmarshal(m, b) +} +func (m *CompiledCursor) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CompiledCursor.Marshal(b, m, deterministic) +} +func (dst *CompiledCursor) XXX_Merge(src proto.Message) { + xxx_messageInfo_CompiledCursor.Merge(dst, src) +} +func (m *CompiledCursor) XXX_Size() int { + return xxx_messageInfo_CompiledCursor.Size(m) +} +func (m *CompiledCursor) XXX_DiscardUnknown() { + xxx_messageInfo_CompiledCursor.DiscardUnknown(m) +} + +var xxx_messageInfo_CompiledCursor proto.InternalMessageInfo + +func (m *CompiledCursor) GetPosition() *CompiledCursor_Position { + if m != nil { + return m.Position + } + return nil +} + +type CompiledCursor_Position struct { + StartKey *string `protobuf:"bytes,27,opt,name=start_key,json=startKey" json:"start_key,omitempty"` + Indexvalue []*CompiledCursor_Position_IndexValue `protobuf:"group,29,rep,name=IndexValue,json=indexvalue" json:"indexvalue,omitempty"` + Key *Reference `protobuf:"bytes,32,opt,name=key" json:"key,omitempty"` + StartInclusive *bool `protobuf:"varint,28,opt,name=start_inclusive,json=startInclusive,def=1" json:"start_inclusive,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CompiledCursor_Position) Reset() { *m = CompiledCursor_Position{} } +func (m *CompiledCursor_Position) String() string { return proto.CompactTextString(m) } +func (*CompiledCursor_Position) ProtoMessage() {} +func (*CompiledCursor_Position) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{17, 0} +} +func (m *CompiledCursor_Position) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CompiledCursor_Position.Unmarshal(m, b) +} +func (m *CompiledCursor_Position) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CompiledCursor_Position.Marshal(b, m, deterministic) +} +func (dst *CompiledCursor_Position) XXX_Merge(src proto.Message) { + xxx_messageInfo_CompiledCursor_Position.Merge(dst, src) +} +func (m *CompiledCursor_Position) XXX_Size() int { + return xxx_messageInfo_CompiledCursor_Position.Size(m) +} +func (m *CompiledCursor_Position) XXX_DiscardUnknown() { + xxx_messageInfo_CompiledCursor_Position.DiscardUnknown(m) +} + +var xxx_messageInfo_CompiledCursor_Position proto.InternalMessageInfo + +const Default_CompiledCursor_Position_StartInclusive bool = true + +func (m *CompiledCursor_Position) GetStartKey() string { + if m != nil && m.StartKey != nil { + return *m.StartKey + } + return "" +} + +func (m *CompiledCursor_Position) GetIndexvalue() []*CompiledCursor_Position_IndexValue { + if m != nil { + return m.Indexvalue + } + return nil +} + +func (m *CompiledCursor_Position) GetKey() *Reference { + if m != nil { + return m.Key + } + return nil +} + +func (m *CompiledCursor_Position) GetStartInclusive() bool { + if m != nil && m.StartInclusive != nil { + return *m.StartInclusive + } + return Default_CompiledCursor_Position_StartInclusive +} + +type CompiledCursor_Position_IndexValue struct { + Property *string `protobuf:"bytes,30,opt,name=property" json:"property,omitempty"` + Value *PropertyValue `protobuf:"bytes,31,req,name=value" json:"value,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CompiledCursor_Position_IndexValue) Reset() { *m = CompiledCursor_Position_IndexValue{} } +func (m *CompiledCursor_Position_IndexValue) String() string { return proto.CompactTextString(m) } +func (*CompiledCursor_Position_IndexValue) ProtoMessage() {} +func (*CompiledCursor_Position_IndexValue) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{17, 0, 0} +} +func (m *CompiledCursor_Position_IndexValue) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CompiledCursor_Position_IndexValue.Unmarshal(m, b) +} +func (m *CompiledCursor_Position_IndexValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CompiledCursor_Position_IndexValue.Marshal(b, m, deterministic) +} +func (dst *CompiledCursor_Position_IndexValue) XXX_Merge(src proto.Message) { + xxx_messageInfo_CompiledCursor_Position_IndexValue.Merge(dst, src) +} +func (m *CompiledCursor_Position_IndexValue) XXX_Size() int { + return xxx_messageInfo_CompiledCursor_Position_IndexValue.Size(m) +} +func (m *CompiledCursor_Position_IndexValue) XXX_DiscardUnknown() { + xxx_messageInfo_CompiledCursor_Position_IndexValue.DiscardUnknown(m) +} + +var xxx_messageInfo_CompiledCursor_Position_IndexValue proto.InternalMessageInfo + +func (m *CompiledCursor_Position_IndexValue) GetProperty() string { + if m != nil && m.Property != nil { + return *m.Property + } + return "" +} + +func (m *CompiledCursor_Position_IndexValue) GetValue() *PropertyValue { + if m != nil { + return m.Value + } + return nil +} + +type Cursor struct { + Cursor *uint64 `protobuf:"fixed64,1,req,name=cursor" json:"cursor,omitempty"` + App *string `protobuf:"bytes,2,opt,name=app" json:"app,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Cursor) Reset() { *m = Cursor{} } +func (m *Cursor) String() string { return proto.CompactTextString(m) } +func (*Cursor) ProtoMessage() {} +func (*Cursor) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{18} +} +func (m *Cursor) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Cursor.Unmarshal(m, b) +} +func (m *Cursor) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Cursor.Marshal(b, m, deterministic) +} +func (dst *Cursor) XXX_Merge(src proto.Message) { + xxx_messageInfo_Cursor.Merge(dst, src) +} +func (m *Cursor) XXX_Size() int { + return xxx_messageInfo_Cursor.Size(m) +} +func (m *Cursor) XXX_DiscardUnknown() { + xxx_messageInfo_Cursor.DiscardUnknown(m) +} + +var xxx_messageInfo_Cursor proto.InternalMessageInfo + +func (m *Cursor) GetCursor() uint64 { + if m != nil && m.Cursor != nil { + return *m.Cursor + } + return 0 +} + +func (m *Cursor) GetApp() string { + if m != nil && m.App != nil { + return *m.App + } + return "" +} + +type Error struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Error) Reset() { *m = Error{} } +func (m *Error) String() string { return proto.CompactTextString(m) } +func (*Error) ProtoMessage() {} +func (*Error) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{19} +} +func (m *Error) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Error.Unmarshal(m, b) +} +func (m *Error) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Error.Marshal(b, m, deterministic) +} +func (dst *Error) XXX_Merge(src proto.Message) { + xxx_messageInfo_Error.Merge(dst, src) +} +func (m *Error) XXX_Size() int { + return xxx_messageInfo_Error.Size(m) +} +func (m *Error) XXX_DiscardUnknown() { + xxx_messageInfo_Error.DiscardUnknown(m) +} + +var xxx_messageInfo_Error proto.InternalMessageInfo + +type Cost struct { + IndexWrites *int32 `protobuf:"varint,1,opt,name=index_writes,json=indexWrites" json:"index_writes,omitempty"` + IndexWriteBytes *int32 `protobuf:"varint,2,opt,name=index_write_bytes,json=indexWriteBytes" json:"index_write_bytes,omitempty"` + EntityWrites *int32 `protobuf:"varint,3,opt,name=entity_writes,json=entityWrites" json:"entity_writes,omitempty"` + EntityWriteBytes *int32 `protobuf:"varint,4,opt,name=entity_write_bytes,json=entityWriteBytes" json:"entity_write_bytes,omitempty"` + Commitcost *Cost_CommitCost `protobuf:"group,5,opt,name=CommitCost,json=commitcost" json:"commitcost,omitempty"` + ApproximateStorageDelta *int32 `protobuf:"varint,8,opt,name=approximate_storage_delta,json=approximateStorageDelta" json:"approximate_storage_delta,omitempty"` + IdSequenceUpdates *int32 `protobuf:"varint,9,opt,name=id_sequence_updates,json=idSequenceUpdates" json:"id_sequence_updates,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Cost) Reset() { *m = Cost{} } +func (m *Cost) String() string { return proto.CompactTextString(m) } +func (*Cost) ProtoMessage() {} +func (*Cost) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{20} +} +func (m *Cost) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Cost.Unmarshal(m, b) +} +func (m *Cost) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Cost.Marshal(b, m, deterministic) +} +func (dst *Cost) XXX_Merge(src proto.Message) { + xxx_messageInfo_Cost.Merge(dst, src) +} +func (m *Cost) XXX_Size() int { + return xxx_messageInfo_Cost.Size(m) +} +func (m *Cost) XXX_DiscardUnknown() { + xxx_messageInfo_Cost.DiscardUnknown(m) +} + +var xxx_messageInfo_Cost proto.InternalMessageInfo + +func (m *Cost) GetIndexWrites() int32 { + if m != nil && m.IndexWrites != nil { + return *m.IndexWrites + } + return 0 +} + +func (m *Cost) GetIndexWriteBytes() int32 { + if m != nil && m.IndexWriteBytes != nil { + return *m.IndexWriteBytes + } + return 0 +} + +func (m *Cost) GetEntityWrites() int32 { + if m != nil && m.EntityWrites != nil { + return *m.EntityWrites + } + return 0 +} + +func (m *Cost) GetEntityWriteBytes() int32 { + if m != nil && m.EntityWriteBytes != nil { + return *m.EntityWriteBytes + } + return 0 +} + +func (m *Cost) GetCommitcost() *Cost_CommitCost { + if m != nil { + return m.Commitcost + } + return nil +} + +func (m *Cost) GetApproximateStorageDelta() int32 { + if m != nil && m.ApproximateStorageDelta != nil { + return *m.ApproximateStorageDelta + } + return 0 +} + +func (m *Cost) GetIdSequenceUpdates() int32 { + if m != nil && m.IdSequenceUpdates != nil { + return *m.IdSequenceUpdates + } + return 0 +} + +type Cost_CommitCost struct { + RequestedEntityPuts *int32 `protobuf:"varint,6,opt,name=requested_entity_puts,json=requestedEntityPuts" json:"requested_entity_puts,omitempty"` + RequestedEntityDeletes *int32 `protobuf:"varint,7,opt,name=requested_entity_deletes,json=requestedEntityDeletes" json:"requested_entity_deletes,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Cost_CommitCost) Reset() { *m = Cost_CommitCost{} } +func (m *Cost_CommitCost) String() string { return proto.CompactTextString(m) } +func (*Cost_CommitCost) ProtoMessage() {} +func (*Cost_CommitCost) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{20, 0} +} +func (m *Cost_CommitCost) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Cost_CommitCost.Unmarshal(m, b) +} +func (m *Cost_CommitCost) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Cost_CommitCost.Marshal(b, m, deterministic) +} +func (dst *Cost_CommitCost) XXX_Merge(src proto.Message) { + xxx_messageInfo_Cost_CommitCost.Merge(dst, src) +} +func (m *Cost_CommitCost) XXX_Size() int { + return xxx_messageInfo_Cost_CommitCost.Size(m) +} +func (m *Cost_CommitCost) XXX_DiscardUnknown() { + xxx_messageInfo_Cost_CommitCost.DiscardUnknown(m) +} + +var xxx_messageInfo_Cost_CommitCost proto.InternalMessageInfo + +func (m *Cost_CommitCost) GetRequestedEntityPuts() int32 { + if m != nil && m.RequestedEntityPuts != nil { + return *m.RequestedEntityPuts + } + return 0 +} + +func (m *Cost_CommitCost) GetRequestedEntityDeletes() int32 { + if m != nil && m.RequestedEntityDeletes != nil { + return *m.RequestedEntityDeletes + } + return 0 +} + +type GetRequest struct { + Header *InternalHeader `protobuf:"bytes,6,opt,name=header" json:"header,omitempty"` + Key []*Reference `protobuf:"bytes,1,rep,name=key" json:"key,omitempty"` + Transaction *Transaction `protobuf:"bytes,2,opt,name=transaction" json:"transaction,omitempty"` + FailoverMs *int64 `protobuf:"varint,3,opt,name=failover_ms,json=failoverMs" json:"failover_ms,omitempty"` + Strong *bool `protobuf:"varint,4,opt,name=strong" json:"strong,omitempty"` + AllowDeferred *bool `protobuf:"varint,5,opt,name=allow_deferred,json=allowDeferred,def=0" json:"allow_deferred,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetRequest) Reset() { *m = GetRequest{} } +func (m *GetRequest) String() string { return proto.CompactTextString(m) } +func (*GetRequest) ProtoMessage() {} +func (*GetRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{21} +} +func (m *GetRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetRequest.Unmarshal(m, b) +} +func (m *GetRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetRequest.Marshal(b, m, deterministic) +} +func (dst *GetRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetRequest.Merge(dst, src) +} +func (m *GetRequest) XXX_Size() int { + return xxx_messageInfo_GetRequest.Size(m) +} +func (m *GetRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetRequest proto.InternalMessageInfo + +const Default_GetRequest_AllowDeferred bool = false + +func (m *GetRequest) GetHeader() *InternalHeader { + if m != nil { + return m.Header + } + return nil +} + +func (m *GetRequest) GetKey() []*Reference { + if m != nil { + return m.Key + } + return nil +} + +func (m *GetRequest) GetTransaction() *Transaction { + if m != nil { + return m.Transaction + } + return nil +} + +func (m *GetRequest) GetFailoverMs() int64 { + if m != nil && m.FailoverMs != nil { + return *m.FailoverMs + } + return 0 +} + +func (m *GetRequest) GetStrong() bool { + if m != nil && m.Strong != nil { + return *m.Strong + } + return false +} + +func (m *GetRequest) GetAllowDeferred() bool { + if m != nil && m.AllowDeferred != nil { + return *m.AllowDeferred + } + return Default_GetRequest_AllowDeferred +} + +type GetResponse struct { + Entity []*GetResponse_Entity `protobuf:"group,1,rep,name=Entity,json=entity" json:"entity,omitempty"` + Deferred []*Reference `protobuf:"bytes,5,rep,name=deferred" json:"deferred,omitempty"` + InOrder *bool `protobuf:"varint,6,opt,name=in_order,json=inOrder,def=1" json:"in_order,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetResponse) Reset() { *m = GetResponse{} } +func (m *GetResponse) String() string { return proto.CompactTextString(m) } +func (*GetResponse) ProtoMessage() {} +func (*GetResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{22} +} +func (m *GetResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetResponse.Unmarshal(m, b) +} +func (m *GetResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetResponse.Marshal(b, m, deterministic) +} +func (dst *GetResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetResponse.Merge(dst, src) +} +func (m *GetResponse) XXX_Size() int { + return xxx_messageInfo_GetResponse.Size(m) +} +func (m *GetResponse) XXX_DiscardUnknown() { + xxx_messageInfo_GetResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_GetResponse proto.InternalMessageInfo + +const Default_GetResponse_InOrder bool = true + +func (m *GetResponse) GetEntity() []*GetResponse_Entity { + if m != nil { + return m.Entity + } + return nil +} + +func (m *GetResponse) GetDeferred() []*Reference { + if m != nil { + return m.Deferred + } + return nil +} + +func (m *GetResponse) GetInOrder() bool { + if m != nil && m.InOrder != nil { + return *m.InOrder + } + return Default_GetResponse_InOrder +} + +type GetResponse_Entity struct { + Entity *EntityProto `protobuf:"bytes,2,opt,name=entity" json:"entity,omitempty"` + Key *Reference `protobuf:"bytes,4,opt,name=key" json:"key,omitempty"` + Version *int64 `protobuf:"varint,3,opt,name=version" json:"version,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetResponse_Entity) Reset() { *m = GetResponse_Entity{} } +func (m *GetResponse_Entity) String() string { return proto.CompactTextString(m) } +func (*GetResponse_Entity) ProtoMessage() {} +func (*GetResponse_Entity) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{22, 0} +} +func (m *GetResponse_Entity) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetResponse_Entity.Unmarshal(m, b) +} +func (m *GetResponse_Entity) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetResponse_Entity.Marshal(b, m, deterministic) +} +func (dst *GetResponse_Entity) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetResponse_Entity.Merge(dst, src) +} +func (m *GetResponse_Entity) XXX_Size() int { + return xxx_messageInfo_GetResponse_Entity.Size(m) +} +func (m *GetResponse_Entity) XXX_DiscardUnknown() { + xxx_messageInfo_GetResponse_Entity.DiscardUnknown(m) +} + +var xxx_messageInfo_GetResponse_Entity proto.InternalMessageInfo + +func (m *GetResponse_Entity) GetEntity() *EntityProto { + if m != nil { + return m.Entity + } + return nil +} + +func (m *GetResponse_Entity) GetKey() *Reference { + if m != nil { + return m.Key + } + return nil +} + +func (m *GetResponse_Entity) GetVersion() int64 { + if m != nil && m.Version != nil { + return *m.Version + } + return 0 +} + +type PutRequest struct { + Header *InternalHeader `protobuf:"bytes,11,opt,name=header" json:"header,omitempty"` + Entity []*EntityProto `protobuf:"bytes,1,rep,name=entity" json:"entity,omitempty"` + Transaction *Transaction `protobuf:"bytes,2,opt,name=transaction" json:"transaction,omitempty"` + CompositeIndex []*CompositeIndex `protobuf:"bytes,3,rep,name=composite_index,json=compositeIndex" json:"composite_index,omitempty"` + Trusted *bool `protobuf:"varint,4,opt,name=trusted,def=0" json:"trusted,omitempty"` + Force *bool `protobuf:"varint,7,opt,name=force,def=0" json:"force,omitempty"` + MarkChanges *bool `protobuf:"varint,8,opt,name=mark_changes,json=markChanges,def=0" json:"mark_changes,omitempty"` + Snapshot []*Snapshot `protobuf:"bytes,9,rep,name=snapshot" json:"snapshot,omitempty"` + AutoIdPolicy *PutRequest_AutoIdPolicy `protobuf:"varint,10,opt,name=auto_id_policy,json=autoIdPolicy,enum=appengine.PutRequest_AutoIdPolicy,def=0" json:"auto_id_policy,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PutRequest) Reset() { *m = PutRequest{} } +func (m *PutRequest) String() string { return proto.CompactTextString(m) } +func (*PutRequest) ProtoMessage() {} +func (*PutRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{23} +} +func (m *PutRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PutRequest.Unmarshal(m, b) +} +func (m *PutRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PutRequest.Marshal(b, m, deterministic) +} +func (dst *PutRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_PutRequest.Merge(dst, src) +} +func (m *PutRequest) XXX_Size() int { + return xxx_messageInfo_PutRequest.Size(m) +} +func (m *PutRequest) XXX_DiscardUnknown() { + xxx_messageInfo_PutRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_PutRequest proto.InternalMessageInfo + +const Default_PutRequest_Trusted bool = false +const Default_PutRequest_Force bool = false +const Default_PutRequest_MarkChanges bool = false +const Default_PutRequest_AutoIdPolicy PutRequest_AutoIdPolicy = PutRequest_CURRENT + +func (m *PutRequest) GetHeader() *InternalHeader { + if m != nil { + return m.Header + } + return nil +} + +func (m *PutRequest) GetEntity() []*EntityProto { + if m != nil { + return m.Entity + } + return nil +} + +func (m *PutRequest) GetTransaction() *Transaction { + if m != nil { + return m.Transaction + } + return nil +} + +func (m *PutRequest) GetCompositeIndex() []*CompositeIndex { + if m != nil { + return m.CompositeIndex + } + return nil +} + +func (m *PutRequest) GetTrusted() bool { + if m != nil && m.Trusted != nil { + return *m.Trusted + } + return Default_PutRequest_Trusted +} + +func (m *PutRequest) GetForce() bool { + if m != nil && m.Force != nil { + return *m.Force + } + return Default_PutRequest_Force +} + +func (m *PutRequest) GetMarkChanges() bool { + if m != nil && m.MarkChanges != nil { + return *m.MarkChanges + } + return Default_PutRequest_MarkChanges +} + +func (m *PutRequest) GetSnapshot() []*Snapshot { + if m != nil { + return m.Snapshot + } + return nil +} + +func (m *PutRequest) GetAutoIdPolicy() PutRequest_AutoIdPolicy { + if m != nil && m.AutoIdPolicy != nil { + return *m.AutoIdPolicy + } + return Default_PutRequest_AutoIdPolicy +} + +type PutResponse struct { + Key []*Reference `protobuf:"bytes,1,rep,name=key" json:"key,omitempty"` + Cost *Cost `protobuf:"bytes,2,opt,name=cost" json:"cost,omitempty"` + Version []int64 `protobuf:"varint,3,rep,name=version" json:"version,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PutResponse) Reset() { *m = PutResponse{} } +func (m *PutResponse) String() string { return proto.CompactTextString(m) } +func (*PutResponse) ProtoMessage() {} +func (*PutResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{24} +} +func (m *PutResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PutResponse.Unmarshal(m, b) +} +func (m *PutResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PutResponse.Marshal(b, m, deterministic) +} +func (dst *PutResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_PutResponse.Merge(dst, src) +} +func (m *PutResponse) XXX_Size() int { + return xxx_messageInfo_PutResponse.Size(m) +} +func (m *PutResponse) XXX_DiscardUnknown() { + xxx_messageInfo_PutResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_PutResponse proto.InternalMessageInfo + +func (m *PutResponse) GetKey() []*Reference { + if m != nil { + return m.Key + } + return nil +} + +func (m *PutResponse) GetCost() *Cost { + if m != nil { + return m.Cost + } + return nil +} + +func (m *PutResponse) GetVersion() []int64 { + if m != nil { + return m.Version + } + return nil +} + +type TouchRequest struct { + Header *InternalHeader `protobuf:"bytes,10,opt,name=header" json:"header,omitempty"` + Key []*Reference `protobuf:"bytes,1,rep,name=key" json:"key,omitempty"` + CompositeIndex []*CompositeIndex `protobuf:"bytes,2,rep,name=composite_index,json=compositeIndex" json:"composite_index,omitempty"` + Force *bool `protobuf:"varint,3,opt,name=force,def=0" json:"force,omitempty"` + Snapshot []*Snapshot `protobuf:"bytes,9,rep,name=snapshot" json:"snapshot,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TouchRequest) Reset() { *m = TouchRequest{} } +func (m *TouchRequest) String() string { return proto.CompactTextString(m) } +func (*TouchRequest) ProtoMessage() {} +func (*TouchRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{25} +} +func (m *TouchRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TouchRequest.Unmarshal(m, b) +} +func (m *TouchRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TouchRequest.Marshal(b, m, deterministic) +} +func (dst *TouchRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_TouchRequest.Merge(dst, src) +} +func (m *TouchRequest) XXX_Size() int { + return xxx_messageInfo_TouchRequest.Size(m) +} +func (m *TouchRequest) XXX_DiscardUnknown() { + xxx_messageInfo_TouchRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_TouchRequest proto.InternalMessageInfo + +const Default_TouchRequest_Force bool = false + +func (m *TouchRequest) GetHeader() *InternalHeader { + if m != nil { + return m.Header + } + return nil +} + +func (m *TouchRequest) GetKey() []*Reference { + if m != nil { + return m.Key + } + return nil +} + +func (m *TouchRequest) GetCompositeIndex() []*CompositeIndex { + if m != nil { + return m.CompositeIndex + } + return nil +} + +func (m *TouchRequest) GetForce() bool { + if m != nil && m.Force != nil { + return *m.Force + } + return Default_TouchRequest_Force +} + +func (m *TouchRequest) GetSnapshot() []*Snapshot { + if m != nil { + return m.Snapshot + } + return nil +} + +type TouchResponse struct { + Cost *Cost `protobuf:"bytes,1,opt,name=cost" json:"cost,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TouchResponse) Reset() { *m = TouchResponse{} } +func (m *TouchResponse) String() string { return proto.CompactTextString(m) } +func (*TouchResponse) ProtoMessage() {} +func (*TouchResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{26} +} +func (m *TouchResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TouchResponse.Unmarshal(m, b) +} +func (m *TouchResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TouchResponse.Marshal(b, m, deterministic) +} +func (dst *TouchResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_TouchResponse.Merge(dst, src) +} +func (m *TouchResponse) XXX_Size() int { + return xxx_messageInfo_TouchResponse.Size(m) +} +func (m *TouchResponse) XXX_DiscardUnknown() { + xxx_messageInfo_TouchResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_TouchResponse proto.InternalMessageInfo + +func (m *TouchResponse) GetCost() *Cost { + if m != nil { + return m.Cost + } + return nil +} + +type DeleteRequest struct { + Header *InternalHeader `protobuf:"bytes,10,opt,name=header" json:"header,omitempty"` + Key []*Reference `protobuf:"bytes,6,rep,name=key" json:"key,omitempty"` + Transaction *Transaction `protobuf:"bytes,5,opt,name=transaction" json:"transaction,omitempty"` + Trusted *bool `protobuf:"varint,4,opt,name=trusted,def=0" json:"trusted,omitempty"` + Force *bool `protobuf:"varint,7,opt,name=force,def=0" json:"force,omitempty"` + MarkChanges *bool `protobuf:"varint,8,opt,name=mark_changes,json=markChanges,def=0" json:"mark_changes,omitempty"` + Snapshot []*Snapshot `protobuf:"bytes,9,rep,name=snapshot" json:"snapshot,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DeleteRequest) Reset() { *m = DeleteRequest{} } +func (m *DeleteRequest) String() string { return proto.CompactTextString(m) } +func (*DeleteRequest) ProtoMessage() {} +func (*DeleteRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{27} +} +func (m *DeleteRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteRequest.Unmarshal(m, b) +} +func (m *DeleteRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteRequest.Marshal(b, m, deterministic) +} +func (dst *DeleteRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteRequest.Merge(dst, src) +} +func (m *DeleteRequest) XXX_Size() int { + return xxx_messageInfo_DeleteRequest.Size(m) +} +func (m *DeleteRequest) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_DeleteRequest proto.InternalMessageInfo + +const Default_DeleteRequest_Trusted bool = false +const Default_DeleteRequest_Force bool = false +const Default_DeleteRequest_MarkChanges bool = false + +func (m *DeleteRequest) GetHeader() *InternalHeader { + if m != nil { + return m.Header + } + return nil +} + +func (m *DeleteRequest) GetKey() []*Reference { + if m != nil { + return m.Key + } + return nil +} + +func (m *DeleteRequest) GetTransaction() *Transaction { + if m != nil { + return m.Transaction + } + return nil +} + +func (m *DeleteRequest) GetTrusted() bool { + if m != nil && m.Trusted != nil { + return *m.Trusted + } + return Default_DeleteRequest_Trusted +} + +func (m *DeleteRequest) GetForce() bool { + if m != nil && m.Force != nil { + return *m.Force + } + return Default_DeleteRequest_Force +} + +func (m *DeleteRequest) GetMarkChanges() bool { + if m != nil && m.MarkChanges != nil { + return *m.MarkChanges + } + return Default_DeleteRequest_MarkChanges +} + +func (m *DeleteRequest) GetSnapshot() []*Snapshot { + if m != nil { + return m.Snapshot + } + return nil +} + +type DeleteResponse struct { + Cost *Cost `protobuf:"bytes,1,opt,name=cost" json:"cost,omitempty"` + Version []int64 `protobuf:"varint,3,rep,name=version" json:"version,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DeleteResponse) Reset() { *m = DeleteResponse{} } +func (m *DeleteResponse) String() string { return proto.CompactTextString(m) } +func (*DeleteResponse) ProtoMessage() {} +func (*DeleteResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{28} +} +func (m *DeleteResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteResponse.Unmarshal(m, b) +} +func (m *DeleteResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteResponse.Marshal(b, m, deterministic) +} +func (dst *DeleteResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteResponse.Merge(dst, src) +} +func (m *DeleteResponse) XXX_Size() int { + return xxx_messageInfo_DeleteResponse.Size(m) +} +func (m *DeleteResponse) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_DeleteResponse proto.InternalMessageInfo + +func (m *DeleteResponse) GetCost() *Cost { + if m != nil { + return m.Cost + } + return nil +} + +func (m *DeleteResponse) GetVersion() []int64 { + if m != nil { + return m.Version + } + return nil +} + +type NextRequest struct { + Header *InternalHeader `protobuf:"bytes,5,opt,name=header" json:"header,omitempty"` + Cursor *Cursor `protobuf:"bytes,1,req,name=cursor" json:"cursor,omitempty"` + Count *int32 `protobuf:"varint,2,opt,name=count" json:"count,omitempty"` + Offset *int32 `protobuf:"varint,4,opt,name=offset,def=0" json:"offset,omitempty"` + Compile *bool `protobuf:"varint,3,opt,name=compile,def=0" json:"compile,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NextRequest) Reset() { *m = NextRequest{} } +func (m *NextRequest) String() string { return proto.CompactTextString(m) } +func (*NextRequest) ProtoMessage() {} +func (*NextRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{29} +} +func (m *NextRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NextRequest.Unmarshal(m, b) +} +func (m *NextRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NextRequest.Marshal(b, m, deterministic) +} +func (dst *NextRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_NextRequest.Merge(dst, src) +} +func (m *NextRequest) XXX_Size() int { + return xxx_messageInfo_NextRequest.Size(m) +} +func (m *NextRequest) XXX_DiscardUnknown() { + xxx_messageInfo_NextRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_NextRequest proto.InternalMessageInfo + +const Default_NextRequest_Offset int32 = 0 +const Default_NextRequest_Compile bool = false + +func (m *NextRequest) GetHeader() *InternalHeader { + if m != nil { + return m.Header + } + return nil +} + +func (m *NextRequest) GetCursor() *Cursor { + if m != nil { + return m.Cursor + } + return nil +} + +func (m *NextRequest) GetCount() int32 { + if m != nil && m.Count != nil { + return *m.Count + } + return 0 +} + +func (m *NextRequest) GetOffset() int32 { + if m != nil && m.Offset != nil { + return *m.Offset + } + return Default_NextRequest_Offset +} + +func (m *NextRequest) GetCompile() bool { + if m != nil && m.Compile != nil { + return *m.Compile + } + return Default_NextRequest_Compile +} + +type QueryResult struct { + Cursor *Cursor `protobuf:"bytes,1,opt,name=cursor" json:"cursor,omitempty"` + Result []*EntityProto `protobuf:"bytes,2,rep,name=result" json:"result,omitempty"` + SkippedResults *int32 `protobuf:"varint,7,opt,name=skipped_results,json=skippedResults" json:"skipped_results,omitempty"` + MoreResults *bool `protobuf:"varint,3,req,name=more_results,json=moreResults" json:"more_results,omitempty"` + KeysOnly *bool `protobuf:"varint,4,opt,name=keys_only,json=keysOnly" json:"keys_only,omitempty"` + IndexOnly *bool `protobuf:"varint,9,opt,name=index_only,json=indexOnly" json:"index_only,omitempty"` + SmallOps *bool `protobuf:"varint,10,opt,name=small_ops,json=smallOps" json:"small_ops,omitempty"` + CompiledQuery *CompiledQuery `protobuf:"bytes,5,opt,name=compiled_query,json=compiledQuery" json:"compiled_query,omitempty"` + CompiledCursor *CompiledCursor `protobuf:"bytes,6,opt,name=compiled_cursor,json=compiledCursor" json:"compiled_cursor,omitempty"` + Index []*CompositeIndex `protobuf:"bytes,8,rep,name=index" json:"index,omitempty"` + Version []int64 `protobuf:"varint,11,rep,name=version" json:"version,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *QueryResult) Reset() { *m = QueryResult{} } +func (m *QueryResult) String() string { return proto.CompactTextString(m) } +func (*QueryResult) ProtoMessage() {} +func (*QueryResult) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{30} +} +func (m *QueryResult) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_QueryResult.Unmarshal(m, b) +} +func (m *QueryResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_QueryResult.Marshal(b, m, deterministic) +} +func (dst *QueryResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryResult.Merge(dst, src) +} +func (m *QueryResult) XXX_Size() int { + return xxx_messageInfo_QueryResult.Size(m) +} +func (m *QueryResult) XXX_DiscardUnknown() { + xxx_messageInfo_QueryResult.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryResult proto.InternalMessageInfo + +func (m *QueryResult) GetCursor() *Cursor { + if m != nil { + return m.Cursor + } + return nil +} + +func (m *QueryResult) GetResult() []*EntityProto { + if m != nil { + return m.Result + } + return nil +} + +func (m *QueryResult) GetSkippedResults() int32 { + if m != nil && m.SkippedResults != nil { + return *m.SkippedResults + } + return 0 +} + +func (m *QueryResult) GetMoreResults() bool { + if m != nil && m.MoreResults != nil { + return *m.MoreResults + } + return false +} + +func (m *QueryResult) GetKeysOnly() bool { + if m != nil && m.KeysOnly != nil { + return *m.KeysOnly + } + return false +} + +func (m *QueryResult) GetIndexOnly() bool { + if m != nil && m.IndexOnly != nil { + return *m.IndexOnly + } + return false +} + +func (m *QueryResult) GetSmallOps() bool { + if m != nil && m.SmallOps != nil { + return *m.SmallOps + } + return false +} + +func (m *QueryResult) GetCompiledQuery() *CompiledQuery { + if m != nil { + return m.CompiledQuery + } + return nil +} + +func (m *QueryResult) GetCompiledCursor() *CompiledCursor { + if m != nil { + return m.CompiledCursor + } + return nil +} + +func (m *QueryResult) GetIndex() []*CompositeIndex { + if m != nil { + return m.Index + } + return nil +} + +func (m *QueryResult) GetVersion() []int64 { + if m != nil { + return m.Version + } + return nil +} + +type AllocateIdsRequest struct { + Header *InternalHeader `protobuf:"bytes,4,opt,name=header" json:"header,omitempty"` + ModelKey *Reference `protobuf:"bytes,1,opt,name=model_key,json=modelKey" json:"model_key,omitempty"` + Size *int64 `protobuf:"varint,2,opt,name=size" json:"size,omitempty"` + Max *int64 `protobuf:"varint,3,opt,name=max" json:"max,omitempty"` + Reserve []*Reference `protobuf:"bytes,5,rep,name=reserve" json:"reserve,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AllocateIdsRequest) Reset() { *m = AllocateIdsRequest{} } +func (m *AllocateIdsRequest) String() string { return proto.CompactTextString(m) } +func (*AllocateIdsRequest) ProtoMessage() {} +func (*AllocateIdsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{31} +} +func (m *AllocateIdsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AllocateIdsRequest.Unmarshal(m, b) +} +func (m *AllocateIdsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AllocateIdsRequest.Marshal(b, m, deterministic) +} +func (dst *AllocateIdsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_AllocateIdsRequest.Merge(dst, src) +} +func (m *AllocateIdsRequest) XXX_Size() int { + return xxx_messageInfo_AllocateIdsRequest.Size(m) +} +func (m *AllocateIdsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_AllocateIdsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_AllocateIdsRequest proto.InternalMessageInfo + +func (m *AllocateIdsRequest) GetHeader() *InternalHeader { + if m != nil { + return m.Header + } + return nil +} + +func (m *AllocateIdsRequest) GetModelKey() *Reference { + if m != nil { + return m.ModelKey + } + return nil +} + +func (m *AllocateIdsRequest) GetSize() int64 { + if m != nil && m.Size != nil { + return *m.Size + } + return 0 +} + +func (m *AllocateIdsRequest) GetMax() int64 { + if m != nil && m.Max != nil { + return *m.Max + } + return 0 +} + +func (m *AllocateIdsRequest) GetReserve() []*Reference { + if m != nil { + return m.Reserve + } + return nil +} + +type AllocateIdsResponse struct { + Start *int64 `protobuf:"varint,1,req,name=start" json:"start,omitempty"` + End *int64 `protobuf:"varint,2,req,name=end" json:"end,omitempty"` + Cost *Cost `protobuf:"bytes,3,opt,name=cost" json:"cost,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AllocateIdsResponse) Reset() { *m = AllocateIdsResponse{} } +func (m *AllocateIdsResponse) String() string { return proto.CompactTextString(m) } +func (*AllocateIdsResponse) ProtoMessage() {} +func (*AllocateIdsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{32} +} +func (m *AllocateIdsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AllocateIdsResponse.Unmarshal(m, b) +} +func (m *AllocateIdsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AllocateIdsResponse.Marshal(b, m, deterministic) +} +func (dst *AllocateIdsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_AllocateIdsResponse.Merge(dst, src) +} +func (m *AllocateIdsResponse) XXX_Size() int { + return xxx_messageInfo_AllocateIdsResponse.Size(m) +} +func (m *AllocateIdsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_AllocateIdsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_AllocateIdsResponse proto.InternalMessageInfo + +func (m *AllocateIdsResponse) GetStart() int64 { + if m != nil && m.Start != nil { + return *m.Start + } + return 0 +} + +func (m *AllocateIdsResponse) GetEnd() int64 { + if m != nil && m.End != nil { + return *m.End + } + return 0 +} + +func (m *AllocateIdsResponse) GetCost() *Cost { + if m != nil { + return m.Cost + } + return nil +} + +type CompositeIndices struct { + Index []*CompositeIndex `protobuf:"bytes,1,rep,name=index" json:"index,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CompositeIndices) Reset() { *m = CompositeIndices{} } +func (m *CompositeIndices) String() string { return proto.CompactTextString(m) } +func (*CompositeIndices) ProtoMessage() {} +func (*CompositeIndices) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{33} +} +func (m *CompositeIndices) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CompositeIndices.Unmarshal(m, b) +} +func (m *CompositeIndices) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CompositeIndices.Marshal(b, m, deterministic) +} +func (dst *CompositeIndices) XXX_Merge(src proto.Message) { + xxx_messageInfo_CompositeIndices.Merge(dst, src) +} +func (m *CompositeIndices) XXX_Size() int { + return xxx_messageInfo_CompositeIndices.Size(m) +} +func (m *CompositeIndices) XXX_DiscardUnknown() { + xxx_messageInfo_CompositeIndices.DiscardUnknown(m) +} + +var xxx_messageInfo_CompositeIndices proto.InternalMessageInfo + +func (m *CompositeIndices) GetIndex() []*CompositeIndex { + if m != nil { + return m.Index + } + return nil +} + +type AddActionsRequest struct { + Header *InternalHeader `protobuf:"bytes,3,opt,name=header" json:"header,omitempty"` + Transaction *Transaction `protobuf:"bytes,1,req,name=transaction" json:"transaction,omitempty"` + Action []*Action `protobuf:"bytes,2,rep,name=action" json:"action,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AddActionsRequest) Reset() { *m = AddActionsRequest{} } +func (m *AddActionsRequest) String() string { return proto.CompactTextString(m) } +func (*AddActionsRequest) ProtoMessage() {} +func (*AddActionsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{34} +} +func (m *AddActionsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AddActionsRequest.Unmarshal(m, b) +} +func (m *AddActionsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AddActionsRequest.Marshal(b, m, deterministic) +} +func (dst *AddActionsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_AddActionsRequest.Merge(dst, src) +} +func (m *AddActionsRequest) XXX_Size() int { + return xxx_messageInfo_AddActionsRequest.Size(m) +} +func (m *AddActionsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_AddActionsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_AddActionsRequest proto.InternalMessageInfo + +func (m *AddActionsRequest) GetHeader() *InternalHeader { + if m != nil { + return m.Header + } + return nil +} + +func (m *AddActionsRequest) GetTransaction() *Transaction { + if m != nil { + return m.Transaction + } + return nil +} + +func (m *AddActionsRequest) GetAction() []*Action { + if m != nil { + return m.Action + } + return nil +} + +type AddActionsResponse struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AddActionsResponse) Reset() { *m = AddActionsResponse{} } +func (m *AddActionsResponse) String() string { return proto.CompactTextString(m) } +func (*AddActionsResponse) ProtoMessage() {} +func (*AddActionsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{35} +} +func (m *AddActionsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AddActionsResponse.Unmarshal(m, b) +} +func (m *AddActionsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AddActionsResponse.Marshal(b, m, deterministic) +} +func (dst *AddActionsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_AddActionsResponse.Merge(dst, src) +} +func (m *AddActionsResponse) XXX_Size() int { + return xxx_messageInfo_AddActionsResponse.Size(m) +} +func (m *AddActionsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_AddActionsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_AddActionsResponse proto.InternalMessageInfo + +type BeginTransactionRequest struct { + Header *InternalHeader `protobuf:"bytes,3,opt,name=header" json:"header,omitempty"` + App *string `protobuf:"bytes,1,req,name=app" json:"app,omitempty"` + AllowMultipleEg *bool `protobuf:"varint,2,opt,name=allow_multiple_eg,json=allowMultipleEg,def=0" json:"allow_multiple_eg,omitempty"` + DatabaseId *string `protobuf:"bytes,4,opt,name=database_id,json=databaseId" json:"database_id,omitempty"` + Mode *BeginTransactionRequest_TransactionMode `protobuf:"varint,5,opt,name=mode,enum=appengine.BeginTransactionRequest_TransactionMode,def=0" json:"mode,omitempty"` + PreviousTransaction *Transaction `protobuf:"bytes,7,opt,name=previous_transaction,json=previousTransaction" json:"previous_transaction,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BeginTransactionRequest) Reset() { *m = BeginTransactionRequest{} } +func (m *BeginTransactionRequest) String() string { return proto.CompactTextString(m) } +func (*BeginTransactionRequest) ProtoMessage() {} +func (*BeginTransactionRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{36} +} +func (m *BeginTransactionRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BeginTransactionRequest.Unmarshal(m, b) +} +func (m *BeginTransactionRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BeginTransactionRequest.Marshal(b, m, deterministic) +} +func (dst *BeginTransactionRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_BeginTransactionRequest.Merge(dst, src) +} +func (m *BeginTransactionRequest) XXX_Size() int { + return xxx_messageInfo_BeginTransactionRequest.Size(m) +} +func (m *BeginTransactionRequest) XXX_DiscardUnknown() { + xxx_messageInfo_BeginTransactionRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_BeginTransactionRequest proto.InternalMessageInfo + +const Default_BeginTransactionRequest_AllowMultipleEg bool = false +const Default_BeginTransactionRequest_Mode BeginTransactionRequest_TransactionMode = BeginTransactionRequest_UNKNOWN + +func (m *BeginTransactionRequest) GetHeader() *InternalHeader { + if m != nil { + return m.Header + } + return nil +} + +func (m *BeginTransactionRequest) GetApp() string { + if m != nil && m.App != nil { + return *m.App + } + return "" +} + +func (m *BeginTransactionRequest) GetAllowMultipleEg() bool { + if m != nil && m.AllowMultipleEg != nil { + return *m.AllowMultipleEg + } + return Default_BeginTransactionRequest_AllowMultipleEg +} + +func (m *BeginTransactionRequest) GetDatabaseId() string { + if m != nil && m.DatabaseId != nil { + return *m.DatabaseId + } + return "" +} + +func (m *BeginTransactionRequest) GetMode() BeginTransactionRequest_TransactionMode { + if m != nil && m.Mode != nil { + return *m.Mode + } + return Default_BeginTransactionRequest_Mode +} + +func (m *BeginTransactionRequest) GetPreviousTransaction() *Transaction { + if m != nil { + return m.PreviousTransaction + } + return nil +} + +type CommitResponse struct { + Cost *Cost `protobuf:"bytes,1,opt,name=cost" json:"cost,omitempty"` + Version []*CommitResponse_Version `protobuf:"group,3,rep,name=Version,json=version" json:"version,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CommitResponse) Reset() { *m = CommitResponse{} } +func (m *CommitResponse) String() string { return proto.CompactTextString(m) } +func (*CommitResponse) ProtoMessage() {} +func (*CommitResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{37} +} +func (m *CommitResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CommitResponse.Unmarshal(m, b) +} +func (m *CommitResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CommitResponse.Marshal(b, m, deterministic) +} +func (dst *CommitResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_CommitResponse.Merge(dst, src) +} +func (m *CommitResponse) XXX_Size() int { + return xxx_messageInfo_CommitResponse.Size(m) +} +func (m *CommitResponse) XXX_DiscardUnknown() { + xxx_messageInfo_CommitResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_CommitResponse proto.InternalMessageInfo + +func (m *CommitResponse) GetCost() *Cost { + if m != nil { + return m.Cost + } + return nil +} + +func (m *CommitResponse) GetVersion() []*CommitResponse_Version { + if m != nil { + return m.Version + } + return nil +} + +type CommitResponse_Version struct { + RootEntityKey *Reference `protobuf:"bytes,4,req,name=root_entity_key,json=rootEntityKey" json:"root_entity_key,omitempty"` + Version *int64 `protobuf:"varint,5,req,name=version" json:"version,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CommitResponse_Version) Reset() { *m = CommitResponse_Version{} } +func (m *CommitResponse_Version) String() string { return proto.CompactTextString(m) } +func (*CommitResponse_Version) ProtoMessage() {} +func (*CommitResponse_Version) Descriptor() ([]byte, []int) { + return fileDescriptor_datastore_v3_83b17b80c34f6179, []int{37, 0} +} +func (m *CommitResponse_Version) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CommitResponse_Version.Unmarshal(m, b) +} +func (m *CommitResponse_Version) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CommitResponse_Version.Marshal(b, m, deterministic) +} +func (dst *CommitResponse_Version) XXX_Merge(src proto.Message) { + xxx_messageInfo_CommitResponse_Version.Merge(dst, src) +} +func (m *CommitResponse_Version) XXX_Size() int { + return xxx_messageInfo_CommitResponse_Version.Size(m) +} +func (m *CommitResponse_Version) XXX_DiscardUnknown() { + xxx_messageInfo_CommitResponse_Version.DiscardUnknown(m) +} + +var xxx_messageInfo_CommitResponse_Version proto.InternalMessageInfo + +func (m *CommitResponse_Version) GetRootEntityKey() *Reference { + if m != nil { + return m.RootEntityKey + } + return nil +} + +func (m *CommitResponse_Version) GetVersion() int64 { + if m != nil && m.Version != nil { + return *m.Version + } + return 0 +} + +func init() { + proto.RegisterType((*Action)(nil), "appengine.Action") + proto.RegisterType((*PropertyValue)(nil), "appengine.PropertyValue") + proto.RegisterType((*PropertyValue_PointValue)(nil), "appengine.PropertyValue.PointValue") + proto.RegisterType((*PropertyValue_UserValue)(nil), "appengine.PropertyValue.UserValue") + proto.RegisterType((*PropertyValue_ReferenceValue)(nil), "appengine.PropertyValue.ReferenceValue") + proto.RegisterType((*PropertyValue_ReferenceValue_PathElement)(nil), "appengine.PropertyValue.ReferenceValue.PathElement") + proto.RegisterType((*Property)(nil), "appengine.Property") + proto.RegisterType((*Path)(nil), "appengine.Path") + proto.RegisterType((*Path_Element)(nil), "appengine.Path.Element") + proto.RegisterType((*Reference)(nil), "appengine.Reference") + proto.RegisterType((*User)(nil), "appengine.User") + proto.RegisterType((*EntityProto)(nil), "appengine.EntityProto") + proto.RegisterType((*CompositeProperty)(nil), "appengine.CompositeProperty") + proto.RegisterType((*Index)(nil), "appengine.Index") + proto.RegisterType((*Index_Property)(nil), "appengine.Index.Property") + proto.RegisterType((*CompositeIndex)(nil), "appengine.CompositeIndex") + proto.RegisterType((*IndexPostfix)(nil), "appengine.IndexPostfix") + proto.RegisterType((*IndexPostfix_IndexValue)(nil), "appengine.IndexPostfix.IndexValue") + proto.RegisterType((*IndexPosition)(nil), "appengine.IndexPosition") + proto.RegisterType((*Snapshot)(nil), "appengine.Snapshot") + proto.RegisterType((*InternalHeader)(nil), "appengine.InternalHeader") + proto.RegisterType((*Transaction)(nil), "appengine.Transaction") + proto.RegisterType((*Query)(nil), "appengine.Query") + proto.RegisterType((*Query_Filter)(nil), "appengine.Query.Filter") + proto.RegisterType((*Query_Order)(nil), "appengine.Query.Order") + proto.RegisterType((*CompiledQuery)(nil), "appengine.CompiledQuery") + proto.RegisterType((*CompiledQuery_PrimaryScan)(nil), "appengine.CompiledQuery.PrimaryScan") + proto.RegisterType((*CompiledQuery_MergeJoinScan)(nil), "appengine.CompiledQuery.MergeJoinScan") + proto.RegisterType((*CompiledQuery_EntityFilter)(nil), "appengine.CompiledQuery.EntityFilter") + proto.RegisterType((*CompiledCursor)(nil), "appengine.CompiledCursor") + proto.RegisterType((*CompiledCursor_Position)(nil), "appengine.CompiledCursor.Position") + proto.RegisterType((*CompiledCursor_Position_IndexValue)(nil), "appengine.CompiledCursor.Position.IndexValue") + proto.RegisterType((*Cursor)(nil), "appengine.Cursor") + proto.RegisterType((*Error)(nil), "appengine.Error") + proto.RegisterType((*Cost)(nil), "appengine.Cost") + proto.RegisterType((*Cost_CommitCost)(nil), "appengine.Cost.CommitCost") + proto.RegisterType((*GetRequest)(nil), "appengine.GetRequest") + proto.RegisterType((*GetResponse)(nil), "appengine.GetResponse") + proto.RegisterType((*GetResponse_Entity)(nil), "appengine.GetResponse.Entity") + proto.RegisterType((*PutRequest)(nil), "appengine.PutRequest") + proto.RegisterType((*PutResponse)(nil), "appengine.PutResponse") + proto.RegisterType((*TouchRequest)(nil), "appengine.TouchRequest") + proto.RegisterType((*TouchResponse)(nil), "appengine.TouchResponse") + proto.RegisterType((*DeleteRequest)(nil), "appengine.DeleteRequest") + proto.RegisterType((*DeleteResponse)(nil), "appengine.DeleteResponse") + proto.RegisterType((*NextRequest)(nil), "appengine.NextRequest") + proto.RegisterType((*QueryResult)(nil), "appengine.QueryResult") + proto.RegisterType((*AllocateIdsRequest)(nil), "appengine.AllocateIdsRequest") + proto.RegisterType((*AllocateIdsResponse)(nil), "appengine.AllocateIdsResponse") + proto.RegisterType((*CompositeIndices)(nil), "appengine.CompositeIndices") + proto.RegisterType((*AddActionsRequest)(nil), "appengine.AddActionsRequest") + proto.RegisterType((*AddActionsResponse)(nil), "appengine.AddActionsResponse") + proto.RegisterType((*BeginTransactionRequest)(nil), "appengine.BeginTransactionRequest") + proto.RegisterType((*CommitResponse)(nil), "appengine.CommitResponse") + proto.RegisterType((*CommitResponse_Version)(nil), "appengine.CommitResponse.Version") +} + +func init() { + proto.RegisterFile("google.golang.org/appengine/internal/datastore/datastore_v3.proto", fileDescriptor_datastore_v3_83b17b80c34f6179) +} + +var fileDescriptor_datastore_v3_83b17b80c34f6179 = []byte{ + // 4156 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5a, 0xcd, 0x73, 0xe3, 0x46, + 0x76, 0x37, 0xc1, 0xef, 0x47, 0x89, 0x82, 0x5a, 0xf3, 0xc1, 0xa1, 0x3f, 0x46, 0xc6, 0xac, 0x6d, + 0xd9, 0x6b, 0x73, 0x6c, 0xf9, 0x23, 0x5b, 0x4a, 0x76, 0x1d, 0x4a, 0xc4, 0x68, 0x90, 0xa1, 0x48, + 0xb9, 0x09, 0xd9, 0x9e, 0x5c, 0x50, 0x18, 0xa2, 0x29, 0x21, 0x43, 0x02, 0x30, 0x00, 0x6a, 0x46, + 0x93, 0xe4, 0x90, 0x4b, 0x2a, 0x55, 0x5b, 0xa9, 0x1c, 0x92, 0x4a, 0x25, 0xf9, 0x07, 0x72, 0xc8, + 0x39, 0x95, 0xaa, 0x54, 0xf6, 0x98, 0x5b, 0x0e, 0x7b, 0xc9, 0x31, 0x95, 0x73, 0xf2, 0x27, 0x24, + 0x39, 0xa4, 0xfa, 0x75, 0x03, 0x02, 0x28, 0x4a, 0x23, 0x6d, 0xf6, 0x90, 0x13, 0xd1, 0xef, 0xfd, + 0xba, 0xf1, 0xfa, 0xf5, 0xfb, 0x6c, 0x10, 0xba, 0xc7, 0xbe, 0x7f, 0x3c, 0x65, 0x9d, 0x63, 0x7f, + 0x6a, 0x7b, 0xc7, 0x1d, 0x3f, 0x3c, 0x7e, 0x68, 0x07, 0x01, 0xf3, 0x8e, 0x5d, 0x8f, 0x3d, 0x74, + 0xbd, 0x98, 0x85, 0x9e, 0x3d, 0x7d, 0xe8, 0xd8, 0xb1, 0x1d, 0xc5, 0x7e, 0xc8, 0xce, 0x9f, 0xac, + 0xd3, 0xcf, 0x3b, 0x41, 0xe8, 0xc7, 0x3e, 0xa9, 0xa7, 0x13, 0xb4, 0x1a, 0x54, 0xba, 0xe3, 0xd8, + 0xf5, 0x3d, 0xed, 0x1f, 0x2b, 0xb0, 0x7a, 0x18, 0xfa, 0x01, 0x0b, 0xe3, 0xb3, 0x6f, 0xed, 0xe9, + 0x9c, 0x91, 0x77, 0x00, 0x5c, 0x2f, 0xfe, 0xea, 0x0b, 0x1c, 0xb5, 0x0a, 0x9b, 0x85, 0xad, 0x22, + 0xcd, 0x50, 0x88, 0x06, 0x2b, 0xcf, 0x7c, 0x7f, 0xca, 0x6c, 0x4f, 0x20, 0x94, 0xcd, 0xc2, 0x56, + 0x8d, 0xe6, 0x68, 0x64, 0x13, 0x1a, 0x51, 0x1c, 0xba, 0xde, 0xb1, 0x80, 0x14, 0x37, 0x0b, 0x5b, + 0x75, 0x9a, 0x25, 0x71, 0x84, 0xe3, 0xcf, 0x9f, 0x4d, 0x99, 0x40, 0x94, 0x36, 0x0b, 0x5b, 0x05, + 0x9a, 0x25, 0x91, 0x3d, 0x80, 0xc0, 0x77, 0xbd, 0xf8, 0x14, 0x01, 0xe5, 0xcd, 0xc2, 0x16, 0x6c, + 0x3f, 0xe8, 0xa4, 0x7b, 0xe8, 0xe4, 0xa4, 0xee, 0x1c, 0x72, 0x28, 0x3e, 0xd2, 0xcc, 0x34, 0xf2, + 0xdb, 0x50, 0x9f, 0x47, 0x2c, 0x14, 0x6b, 0xd4, 0x70, 0x0d, 0xed, 0xd2, 0x35, 0x8e, 0x22, 0x16, + 0x8a, 0x25, 0xce, 0x27, 0x91, 0x21, 0x34, 0x43, 0x36, 0x61, 0x21, 0xf3, 0xc6, 0x4c, 0x2c, 0xb3, + 0x82, 0xcb, 0x7c, 0x70, 0xe9, 0x32, 0x34, 0x81, 0x8b, 0xb5, 0x16, 0xa6, 0xb7, 0xb7, 0x00, 0xce, + 0x85, 0x25, 0x2b, 0x50, 0x78, 0xd9, 0xaa, 0x6c, 0x2a, 0x5b, 0x05, 0x5a, 0x78, 0xc9, 0x47, 0x67, + 0xad, 0xaa, 0x18, 0x9d, 0xb5, 0xff, 0xa9, 0x00, 0xf5, 0x54, 0x26, 0x72, 0x0b, 0xca, 0x6c, 0x66, + 0xbb, 0xd3, 0x56, 0x7d, 0x53, 0xd9, 0xaa, 0x53, 0x31, 0x20, 0xf7, 0xa1, 0x61, 0xcf, 0xe3, 0x13, + 0xcb, 0xf1, 0x67, 0xb6, 0xeb, 0xb5, 0x00, 0x79, 0xc0, 0x49, 0x3d, 0xa4, 0x90, 0x36, 0xd4, 0x3c, + 0x77, 0xfc, 0xdc, 0xb3, 0x67, 0xac, 0xd5, 0xc0, 0x73, 0x48, 0xc7, 0xe4, 0x13, 0x20, 0x13, 0xe6, + 0xb0, 0xd0, 0x8e, 0x99, 0x63, 0xb9, 0x0e, 0xf3, 0x62, 0x37, 0x3e, 0x6b, 0xdd, 0x46, 0xd4, 0x7a, + 0xca, 0x31, 0x24, 0x23, 0x0f, 0x0f, 0x42, 0xff, 0xd4, 0x75, 0x58, 0xd8, 0xba, 0xb3, 0x00, 0x3f, + 0x94, 0x8c, 0xf6, 0xbf, 0x17, 0xa0, 0x99, 0xd7, 0x05, 0x51, 0xa1, 0x68, 0x07, 0x41, 0x6b, 0x15, + 0xa5, 0xe4, 0x8f, 0xe4, 0x6d, 0x00, 0x2e, 0x8a, 0x15, 0x05, 0xf6, 0x98, 0xb5, 0x6e, 0xe1, 0x5a, + 0x75, 0x4e, 0x19, 0x71, 0x02, 0x39, 0x82, 0x46, 0x60, 0xc7, 0x27, 0x6c, 0xca, 0x66, 0xcc, 0x8b, + 0x5b, 0xcd, 0xcd, 0xe2, 0x16, 0x6c, 0x7f, 0x7e, 0x4d, 0xd5, 0x77, 0x0e, 0xed, 0xf8, 0x44, 0x17, + 0x53, 0x69, 0x76, 0x9d, 0xb6, 0x0e, 0x8d, 0x0c, 0x8f, 0x10, 0x28, 0xc5, 0x67, 0x01, 0x6b, 0xad, + 0xa1, 0x5c, 0xf8, 0x4c, 0x9a, 0xa0, 0xb8, 0x4e, 0x4b, 0x45, 0xf3, 0x57, 0x5c, 0x87, 0x63, 0x50, + 0x87, 0xeb, 0x28, 0x22, 0x3e, 0x6b, 0xff, 0x51, 0x86, 0x5a, 0x22, 0x00, 0xe9, 0x42, 0x75, 0xc6, + 0x6c, 0xcf, 0xf5, 0x8e, 0xd1, 0x69, 0x9a, 0xdb, 0x6f, 0x2e, 0x11, 0xb3, 0x73, 0x20, 0x20, 0x3b, + 0x30, 0x18, 0x5a, 0x07, 0x7a, 0x77, 0x60, 0x0c, 0xf6, 0x69, 0x32, 0x8f, 0x1f, 0xa6, 0x7c, 0xb4, + 0xe6, 0xa1, 0x8b, 0x9e, 0x55, 0xa7, 0x20, 0x49, 0x47, 0xa1, 0x9b, 0x0a, 0x51, 0x14, 0x82, 0xe2, + 0x21, 0x76, 0xa0, 0x9c, 0xb8, 0x88, 0xb2, 0xd5, 0xd8, 0x6e, 0x5d, 0xa6, 0x1c, 0x2a, 0x60, 0xdc, + 0x20, 0x66, 0xf3, 0x69, 0xec, 0x06, 0x53, 0xee, 0x76, 0xca, 0x56, 0x8d, 0xa6, 0x63, 0xf2, 0x1e, + 0x40, 0xc4, 0xec, 0x70, 0x7c, 0x62, 0x3f, 0x9b, 0xb2, 0x56, 0x85, 0x7b, 0xf6, 0x4e, 0x79, 0x62, + 0x4f, 0x23, 0x46, 0x33, 0x0c, 0x62, 0xc3, 0xdd, 0x49, 0x1c, 0x59, 0xb1, 0xff, 0x9c, 0x79, 0xee, + 0x2b, 0x9b, 0x07, 0x12, 0xcb, 0x0f, 0xf8, 0x0f, 0xfa, 0x58, 0x73, 0xfb, 0xc3, 0x65, 0x5b, 0x7f, + 0x14, 0x47, 0x66, 0x66, 0xc6, 0x10, 0x27, 0xd0, 0xdb, 0x93, 0x65, 0x64, 0xd2, 0x86, 0xca, 0xd4, + 0x1f, 0xdb, 0x53, 0xd6, 0xaa, 0x73, 0x2d, 0xec, 0x28, 0xcc, 0xa3, 0x92, 0xa2, 0xfd, 0xb3, 0x02, + 0x55, 0xa9, 0x47, 0xd2, 0x84, 0x8c, 0x26, 0xd5, 0x37, 0x48, 0x0d, 0x4a, 0xbb, 0xfd, 0xe1, 0xae, + 0xda, 0xe4, 0x4f, 0xa6, 0xfe, 0xbd, 0xa9, 0xae, 0x71, 0xcc, 0xee, 0x53, 0x53, 0x1f, 0x99, 0x94, + 0x63, 0x54, 0xb2, 0x0e, 0xab, 0x5d, 0x73, 0x78, 0x60, 0xed, 0x75, 0x4d, 0x7d, 0x7f, 0x48, 0x9f, + 0xaa, 0x05, 0xb2, 0x0a, 0x75, 0x24, 0xf5, 0x8d, 0xc1, 0x13, 0x55, 0xe1, 0x33, 0x70, 0x68, 0x1a, + 0x66, 0x5f, 0x57, 0x8b, 0x44, 0x85, 0x15, 0x31, 0x63, 0x38, 0x30, 0xf5, 0x81, 0xa9, 0x96, 0x52, + 0xca, 0xe8, 0xe8, 0xe0, 0xa0, 0x4b, 0x9f, 0xaa, 0x65, 0xb2, 0x06, 0x0d, 0xa4, 0x74, 0x8f, 0xcc, + 0xc7, 0x43, 0xaa, 0x56, 0x48, 0x03, 0xaa, 0xfb, 0x3d, 0xeb, 0xbb, 0xc7, 0xfa, 0x40, 0xad, 0x92, + 0x15, 0xa8, 0xed, 0xf7, 0x2c, 0xfd, 0xa0, 0x6b, 0xf4, 0xd5, 0x1a, 0x9f, 0xbd, 0xaf, 0x0f, 0xe9, + 0x68, 0x64, 0x1d, 0x0e, 0x8d, 0x81, 0xa9, 0xd6, 0x49, 0x1d, 0xca, 0xfb, 0x3d, 0xcb, 0x38, 0x50, + 0x81, 0x10, 0x68, 0xee, 0xf7, 0xac, 0xc3, 0xc7, 0xc3, 0x81, 0x3e, 0x38, 0x3a, 0xd8, 0xd5, 0xa9, + 0xda, 0x20, 0xb7, 0x40, 0xe5, 0xb4, 0xe1, 0xc8, 0xec, 0xf6, 0xbb, 0xbd, 0x1e, 0xd5, 0x47, 0x23, + 0x75, 0x85, 0x4b, 0xbd, 0xdf, 0xb3, 0x68, 0xd7, 0xe4, 0xfb, 0x5a, 0xe5, 0x2f, 0xe4, 0x7b, 0x7f, + 0xa2, 0x3f, 0x55, 0xd7, 0xf9, 0x2b, 0xf4, 0x81, 0x69, 0x98, 0x4f, 0xad, 0x43, 0x3a, 0x34, 0x87, + 0xea, 0x06, 0x17, 0xd0, 0x18, 0xf4, 0xf4, 0xef, 0xad, 0x6f, 0xbb, 0xfd, 0x23, 0x5d, 0x25, 0xda, + 0x8f, 0xe1, 0xf6, 0xd2, 0x33, 0xe1, 0xaa, 0x7b, 0x6c, 0x1e, 0xf4, 0xd5, 0x02, 0x7f, 0xe2, 0x9b, + 0x52, 0x15, 0xed, 0x0f, 0xa0, 0xc4, 0x5d, 0x86, 0x7c, 0x06, 0xd5, 0xc4, 0x1b, 0x0b, 0xe8, 0x8d, + 0x77, 0xb3, 0x67, 0x6d, 0xc7, 0x27, 0x9d, 0xc4, 0xe3, 0x12, 0x5c, 0xbb, 0x0b, 0xd5, 0x45, 0x4f, + 0x53, 0x2e, 0x78, 0x5a, 0xf1, 0x82, 0xa7, 0x95, 0x32, 0x9e, 0x66, 0x43, 0x3d, 0xf5, 0xed, 0x9b, + 0x47, 0x91, 0x07, 0x50, 0xe2, 0xde, 0xdf, 0x6a, 0xa2, 0x87, 0xac, 0x2d, 0x08, 0x4c, 0x91, 0xa9, + 0xfd, 0x43, 0x01, 0x4a, 0x3c, 0xda, 0x9e, 0x07, 0xda, 0xc2, 0x15, 0x81, 0x56, 0xb9, 0x32, 0xd0, + 0x16, 0xaf, 0x15, 0x68, 0x2b, 0x37, 0x0b, 0xb4, 0xd5, 0x4b, 0x02, 0xad, 0xf6, 0x67, 0x45, 0x68, + 0xe8, 0x38, 0xf3, 0x10, 0x13, 0xfd, 0xfb, 0x50, 0x7c, 0xce, 0xce, 0x50, 0x3f, 0x8d, 0xed, 0x5b, + 0x99, 0xdd, 0xa6, 0x2a, 0xa4, 0x1c, 0x40, 0xb6, 0x61, 0x45, 0xbc, 0xd0, 0x3a, 0x0e, 0xfd, 0x79, + 0xd0, 0x52, 0x97, 0xab, 0xa7, 0x21, 0x40, 0xfb, 0x1c, 0x43, 0xde, 0x83, 0xb2, 0xff, 0xc2, 0x63, + 0x21, 0xc6, 0xc1, 0x3c, 0x98, 0x2b, 0x8f, 0x0a, 0x2e, 0x79, 0x08, 0xa5, 0xe7, 0xae, 0xe7, 0xe0, + 0x19, 0xe6, 0x23, 0x61, 0x46, 0xd0, 0xce, 0x13, 0xd7, 0x73, 0x28, 0x02, 0xc9, 0x3d, 0xa8, 0xf1, + 0x5f, 0x8c, 0x7b, 0x65, 0xdc, 0x68, 0x95, 0x8f, 0x79, 0xd0, 0x7b, 0x08, 0xb5, 0x40, 0xc6, 0x10, + 0x4c, 0x00, 0x8d, 0xed, 0x8d, 0x25, 0xe1, 0x85, 0xa6, 0x20, 0xf2, 0x15, 0xac, 0x84, 0xf6, 0x0b, + 0x2b, 0x9d, 0xb4, 0x76, 0xf9, 0xa4, 0x46, 0x68, 0xbf, 0x48, 0x23, 0x38, 0x81, 0x52, 0x68, 0x7b, + 0xcf, 0x5b, 0x64, 0xb3, 0xb0, 0x55, 0xa6, 0xf8, 0xac, 0x7d, 0x01, 0x25, 0x2e, 0x25, 0x8f, 0x08, + 0xfb, 0x3d, 0xf4, 0xff, 0xee, 0x9e, 0xa9, 0x16, 0x12, 0x7f, 0xfe, 0x96, 0x47, 0x03, 0x45, 0x72, + 0x0f, 0xf4, 0xd1, 0xa8, 0xbb, 0xaf, 0xab, 0x45, 0xad, 0x07, 0xeb, 0x7b, 0xfe, 0x2c, 0xf0, 0x23, + 0x37, 0x66, 0xe9, 0xf2, 0xf7, 0xa0, 0xe6, 0x7a, 0x0e, 0x7b, 0x69, 0xb9, 0x0e, 0x9a, 0x56, 0x91, + 0x56, 0x71, 0x6c, 0x38, 0xdc, 0xe4, 0x4e, 0x65, 0x31, 0x55, 0xe4, 0x26, 0x87, 0x03, 0xed, 0x2f, + 0x15, 0x28, 0x1b, 0x1c, 0xc1, 0x8d, 0x4f, 0x9e, 0x14, 0x7a, 0x8f, 0x30, 0x4c, 0x10, 0x24, 0x93, + 0xfb, 0x50, 0x1b, 0x6a, 0xb6, 0x37, 0x66, 0xbc, 0xe2, 0xc3, 0x3c, 0x50, 0xa3, 0xe9, 0x98, 0x7c, + 0x99, 0xd1, 0x9f, 0x82, 0x2e, 0x7b, 0x2f, 0xa3, 0x0a, 0x7c, 0xc1, 0x12, 0x2d, 0xb6, 0xff, 0xaa, + 0x90, 0x49, 0x6e, 0xcb, 0x12, 0x4f, 0x1f, 0xea, 0x8e, 0x1b, 0x32, 0xac, 0x23, 0xe5, 0x41, 0x3f, + 0xb8, 0x74, 0xe1, 0x4e, 0x2f, 0x81, 0xee, 0xd4, 0xbb, 0xa3, 0x3d, 0x7d, 0xd0, 0xe3, 0x99, 0xef, + 0x7c, 0x01, 0xed, 0x23, 0xa8, 0xa7, 0x10, 0x0c, 0xc7, 0x09, 0x48, 0x2d, 0x70, 0xf5, 0xf6, 0xf4, + 0x74, 0xac, 0x68, 0x7f, 0xad, 0x40, 0x33, 0xd5, 0xaf, 0xd0, 0xd0, 0x6d, 0xa8, 0xd8, 0x41, 0x90, + 0xa8, 0xb6, 0x4e, 0xcb, 0x76, 0x10, 0x18, 0x8e, 0x8c, 0x2d, 0x0a, 0x6a, 0x9b, 0xc7, 0x96, 0x4f, + 0x01, 0x1c, 0x36, 0x71, 0x3d, 0x17, 0x85, 0x2e, 0xa2, 0xc1, 0xab, 0x8b, 0x42, 0xd3, 0x0c, 0x86, + 0x7c, 0x09, 0xe5, 0x28, 0xb6, 0x63, 0x91, 0x2b, 0x9b, 0xdb, 0xf7, 0x33, 0xe0, 0xbc, 0x08, 0x9d, + 0x11, 0x87, 0x51, 0x81, 0x26, 0x5f, 0xc1, 0x2d, 0xdf, 0x9b, 0x9e, 0x59, 0xf3, 0x88, 0x59, 0xee, + 0xc4, 0x0a, 0xd9, 0x0f, 0x73, 0x37, 0x64, 0x4e, 0x3e, 0xa7, 0xae, 0x73, 0xc8, 0x51, 0xc4, 0x8c, + 0x09, 0x95, 0x7c, 0xed, 0x6b, 0x28, 0xe3, 0x3a, 0x7c, 0xcf, 0xdf, 0x51, 0xc3, 0xd4, 0xad, 0xe1, + 0xa0, 0xff, 0x54, 0xe8, 0x80, 0xea, 0xdd, 0x9e, 0x85, 0x44, 0x55, 0xe1, 0xc1, 0xbe, 0xa7, 0xf7, + 0x75, 0x53, 0xef, 0xa9, 0x45, 0x9e, 0x3d, 0x74, 0x4a, 0x87, 0x54, 0x2d, 0x69, 0xff, 0x53, 0x80, + 0x15, 0x94, 0xe7, 0xd0, 0x8f, 0xe2, 0x89, 0xfb, 0x92, 0xec, 0x41, 0x43, 0x98, 0xdd, 0xa9, 0x2c, + 0xe8, 0xb9, 0x33, 0x68, 0x8b, 0x7b, 0x96, 0x68, 0x31, 0x90, 0x75, 0xb4, 0x9b, 0x3e, 0x27, 0x21, + 0x45, 0x41, 0xa7, 0xbf, 0x22, 0xa4, 0xbc, 0x05, 0x95, 0x67, 0x6c, 0xe2, 0x87, 0x22, 0x04, 0xd6, + 0x76, 0x4a, 0x71, 0x38, 0x67, 0x54, 0xd2, 0xda, 0x36, 0xc0, 0xf9, 0xfa, 0xe4, 0x01, 0xac, 0x26, + 0xc6, 0x66, 0xa1, 0x71, 0x89, 0x93, 0x5b, 0x49, 0x88, 0x83, 0x5c, 0x75, 0xa3, 0x5c, 0xab, 0xba, + 0xd1, 0xbe, 0x86, 0xd5, 0x64, 0x3f, 0xe2, 0xfc, 0x54, 0x21, 0x79, 0x01, 0x63, 0xca, 0x82, 0x8c, + 0xca, 0x45, 0x19, 0xb5, 0x9f, 0x41, 0x6d, 0xe4, 0xd9, 0x41, 0x74, 0xe2, 0xc7, 0xdc, 0x7a, 0xe2, + 0x48, 0xfa, 0xaa, 0x12, 0x47, 0x9a, 0x06, 0x15, 0x7e, 0x38, 0xf3, 0x88, 0xbb, 0xbf, 0x31, 0xe8, + 0xee, 0x99, 0xc6, 0xb7, 0xba, 0xfa, 0x06, 0x01, 0xa8, 0xc8, 0xe7, 0x82, 0xa6, 0x41, 0xd3, 0x90, + 0xed, 0xd8, 0x63, 0x66, 0x3b, 0x2c, 0xe4, 0x12, 0xfc, 0xe0, 0x47, 0x89, 0x04, 0x3f, 0xf8, 0x91, + 0xf6, 0x17, 0x05, 0x68, 0x98, 0xa1, 0xed, 0x45, 0xb6, 0x30, 0xf7, 0xcf, 0xa0, 0x72, 0x82, 0x58, + 0x74, 0xa3, 0xc6, 0x82, 0x7f, 0x66, 0x17, 0xa3, 0x12, 0x48, 0xee, 0x40, 0xe5, 0xc4, 0xf6, 0x9c, + 0xa9, 0xd0, 0x5a, 0x85, 0xca, 0x51, 0x92, 0x1b, 0x95, 0xf3, 0xdc, 0xb8, 0x05, 0x2b, 0x33, 0x3b, + 0x7c, 0x6e, 0x8d, 0x4f, 0x6c, 0xef, 0x98, 0x45, 0xf2, 0x60, 0xa4, 0x05, 0x36, 0x38, 0x6b, 0x4f, + 0x70, 0xb4, 0xbf, 0x5f, 0x81, 0xf2, 0x37, 0x73, 0x16, 0x9e, 0x65, 0x04, 0xfa, 0xe0, 0xba, 0x02, + 0xc9, 0x17, 0x17, 0x2e, 0x4b, 0xca, 0x6f, 0x2f, 0x26, 0x65, 0x22, 0x53, 0x84, 0xc8, 0x95, 0x22, + 0x0b, 0x7c, 0x9a, 0x09, 0x63, 0xeb, 0x57, 0xd8, 0xda, 0x79, 0x70, 0x7b, 0x08, 0x95, 0x89, 0x3b, + 0x8d, 0x51, 0x75, 0x8b, 0xd5, 0x08, 0xee, 0xa5, 0xf3, 0x08, 0xd9, 0x54, 0xc2, 0xc8, 0xbb, 0xb0, + 0x22, 0x2a, 0x59, 0xeb, 0x07, 0xce, 0xc6, 0x82, 0x95, 0xf7, 0xa6, 0x48, 0x13, 0xbb, 0xff, 0x18, + 0xca, 0x7e, 0xc8, 0x37, 0x5f, 0xc7, 0x25, 0xef, 0x5c, 0x58, 0x72, 0xc8, 0xb9, 0x54, 0x80, 0xc8, + 0x87, 0x50, 0x3a, 0x71, 0xbd, 0x18, 0xb3, 0x46, 0x73, 0xfb, 0xf6, 0x05, 0xf0, 0x63, 0xd7, 0x8b, + 0x29, 0x42, 0x78, 0x98, 0x1f, 0xfb, 0x73, 0x2f, 0x6e, 0xdd, 0xc5, 0x0c, 0x23, 0x06, 0xe4, 0x1e, + 0x54, 0xfc, 0xc9, 0x24, 0x62, 0x31, 0x76, 0x96, 0xe5, 0x9d, 0xc2, 0xa7, 0x54, 0x12, 0xf8, 0x84, + 0xa9, 0x3b, 0x73, 0x63, 0xec, 0x43, 0xca, 0x54, 0x0c, 0xc8, 0x2e, 0xac, 0x8d, 0xfd, 0x59, 0xe0, + 0x4e, 0x99, 0x63, 0x8d, 0xe7, 0x61, 0xe4, 0x87, 0xad, 0x77, 0x2e, 0x1c, 0xd3, 0x9e, 0x44, 0xec, + 0x21, 0x80, 0x36, 0xc7, 0xb9, 0x31, 0x31, 0x60, 0x83, 0x79, 0x8e, 0xb5, 0xb8, 0xce, 0xfd, 0xd7, + 0xad, 0xb3, 0xce, 0x3c, 0x27, 0x4f, 0x4a, 0xc4, 0xc1, 0x48, 0x68, 0x61, 0xcc, 0x68, 0x6d, 0x60, + 0x90, 0xb9, 0x77, 0x69, 0xac, 0x14, 0xe2, 0x64, 0xc2, 0xf7, 0x6f, 0xc0, 0x2d, 0x19, 0x22, 0xad, + 0x80, 0x85, 0x13, 0x36, 0x8e, 0xad, 0x60, 0x6a, 0x7b, 0x58, 0xca, 0xa5, 0xc6, 0x4a, 0x24, 0xe4, + 0x50, 0x20, 0x0e, 0xa7, 0xb6, 0x47, 0x34, 0xa8, 0x3f, 0x67, 0x67, 0x91, 0xc5, 0x23, 0x29, 0x76, + 0xae, 0x29, 0xba, 0xc6, 0xe9, 0x43, 0x6f, 0x7a, 0x46, 0x7e, 0x02, 0x8d, 0xf8, 0xdc, 0xdb, 0xb0, + 0x61, 0x6d, 0xe4, 0x4e, 0x35, 0xe3, 0x8b, 0x34, 0x0b, 0x25, 0xf7, 0xa1, 0x2a, 0x35, 0xd4, 0xba, + 0x97, 0x5d, 0x3b, 0xa1, 0xf2, 0xc4, 0x3c, 0xb1, 0xdd, 0xa9, 0x7f, 0xca, 0x42, 0x6b, 0x16, 0xb5, + 0xda, 0xe2, 0xb6, 0x24, 0x21, 0x1d, 0x44, 0xdc, 0x4f, 0xa3, 0x38, 0xf4, 0xbd, 0xe3, 0xd6, 0x26, + 0xde, 0x93, 0xc8, 0xd1, 0xc5, 0xe0, 0xf7, 0x2e, 0x66, 0xfe, 0x7c, 0xf0, 0xfb, 0x1c, 0xee, 0x60, + 0x65, 0x66, 0x3d, 0x3b, 0xb3, 0xf2, 0x68, 0x0d, 0xd1, 0x1b, 0xc8, 0xdd, 0x3d, 0x3b, 0xcc, 0x4e, + 0x6a, 0x43, 0xcd, 0x71, 0xa3, 0xd8, 0xf5, 0xc6, 0x71, 0xab, 0x85, 0xef, 0x4c, 0xc7, 0xe4, 0x33, + 0xb8, 0x3d, 0x73, 0x3d, 0x2b, 0xb2, 0x27, 0xcc, 0x8a, 0x5d, 0xee, 0x9b, 0x6c, 0xec, 0x7b, 0x4e, + 0xd4, 0x7a, 0x80, 0x82, 0x93, 0x99, 0xeb, 0x8d, 0xec, 0x09, 0x33, 0xdd, 0x19, 0x1b, 0x09, 0x0e, + 0xf9, 0x08, 0xd6, 0x11, 0x1e, 0xb2, 0x60, 0xea, 0x8e, 0x6d, 0xf1, 0xfa, 0x1f, 0xe1, 0xeb, 0xd7, + 0x38, 0x83, 0x0a, 0x3a, 0xbe, 0xfa, 0x63, 0x68, 0x06, 0x2c, 0x8c, 0xdc, 0x28, 0xb6, 0xa4, 0x45, + 0xbf, 0x97, 0xd5, 0xda, 0xaa, 0x64, 0x0e, 0x91, 0xd7, 0xfe, 0xcf, 0x02, 0x54, 0x84, 0x73, 0x92, + 0x4f, 0x41, 0xf1, 0x03, 0xbc, 0x06, 0x69, 0x6e, 0x6f, 0x5e, 0xe2, 0xc1, 0x9d, 0x61, 0xc0, 0xeb, + 0x5e, 0x3f, 0xa4, 0x8a, 0x1f, 0xdc, 0xb8, 0x28, 0xd4, 0xfe, 0x10, 0x6a, 0xc9, 0x02, 0xbc, 0xbc, + 0xe8, 0xeb, 0xa3, 0x91, 0x65, 0x3e, 0xee, 0x0e, 0xd4, 0x02, 0xb9, 0x03, 0x24, 0x1d, 0x5a, 0x43, + 0x6a, 0xe9, 0xdf, 0x1c, 0x75, 0xfb, 0xaa, 0x82, 0x5d, 0x1a, 0xd5, 0xbb, 0xa6, 0x4e, 0x05, 0xb2, + 0x48, 0xee, 0xc1, 0xed, 0x2c, 0xe5, 0x1c, 0x5c, 0xc2, 0x14, 0x8c, 0x8f, 0x65, 0x52, 0x01, 0xc5, + 0x18, 0xa8, 0x15, 0x9e, 0x16, 0xf4, 0xef, 0x8d, 0x91, 0x39, 0x52, 0xab, 0xed, 0xbf, 0x29, 0x40, + 0x19, 0xc3, 0x06, 0x3f, 0x9f, 0x54, 0x72, 0x71, 0x5d, 0x73, 0x5e, 0xb9, 0x1a, 0xd9, 0x92, 0xaa, + 0x81, 0x01, 0x65, 0x73, 0x79, 0xf4, 0xf9, 0xb5, 0xd6, 0x53, 0x3f, 0x85, 0x12, 0x8f, 0x52, 0xbc, + 0x43, 0x1c, 0xd2, 0x9e, 0x4e, 0xad, 0x47, 0x06, 0x1d, 0xf1, 0x2a, 0x97, 0x40, 0xb3, 0x3b, 0xd8, + 0xd3, 0x47, 0xe6, 0x30, 0xa1, 0xa1, 0x56, 0x1e, 0x19, 0x7d, 0x33, 0x45, 0x15, 0xb5, 0x9f, 0xd7, + 0x60, 0x35, 0x89, 0x09, 0x22, 0x82, 0x3e, 0x82, 0x46, 0x10, 0xba, 0x33, 0x3b, 0x3c, 0x8b, 0xc6, + 0xb6, 0x87, 0x49, 0x01, 0xb6, 0x7f, 0xb4, 0x24, 0xaa, 0x88, 0x1d, 0x1d, 0x0a, 0xec, 0x68, 0x6c, + 0x7b, 0x34, 0x3b, 0x91, 0xf4, 0x61, 0x75, 0xc6, 0xc2, 0x63, 0xf6, 0x7b, 0xbe, 0xeb, 0xe1, 0x4a, + 0x55, 0x8c, 0xc8, 0xef, 0x5f, 0xba, 0xd2, 0x01, 0x47, 0xff, 0x8e, 0xef, 0x7a, 0xb8, 0x56, 0x7e, + 0x32, 0xf9, 0x04, 0xea, 0xa2, 0x12, 0x72, 0xd8, 0x04, 0x63, 0xc5, 0xb2, 0xda, 0x4f, 0xd4, 0xe8, + 0x3d, 0x36, 0xc9, 0xc4, 0x65, 0xb8, 0x34, 0x2e, 0x37, 0xb2, 0x71, 0xf9, 0xcd, 0x6c, 0x2c, 0x5a, + 0x11, 0x55, 0x78, 0x1a, 0x84, 0x2e, 0x38, 0x7c, 0x6b, 0x89, 0xc3, 0x77, 0x60, 0x23, 0xf1, 0x55, + 0xcb, 0xf5, 0x26, 0xee, 0x4b, 0x2b, 0x72, 0x5f, 0x89, 0xd8, 0x53, 0xa6, 0xeb, 0x09, 0xcb, 0xe0, + 0x9c, 0x91, 0xfb, 0x8a, 0x11, 0x23, 0xe9, 0xe0, 0x64, 0x0e, 0x5c, 0xc5, 0xab, 0xc9, 0xf7, 0x2e, + 0x55, 0x8f, 0x68, 0xbe, 0x64, 0x46, 0xcc, 0x4d, 0x6d, 0xff, 0x52, 0x81, 0x46, 0xe6, 0x1c, 0x78, + 0xf6, 0x16, 0xca, 0x42, 0x61, 0xc5, 0x55, 0x94, 0x50, 0x1f, 0x4a, 0xfa, 0x26, 0xd4, 0xa3, 0xd8, + 0x0e, 0x63, 0x8b, 0x17, 0x57, 0xb2, 0xdd, 0x45, 0xc2, 0x13, 0x76, 0x46, 0x3e, 0x80, 0x35, 0xc1, + 0x74, 0xbd, 0xf1, 0x74, 0x1e, 0xb9, 0xa7, 0xa2, 0x99, 0xaf, 0xd1, 0x26, 0x92, 0x8d, 0x84, 0x4a, + 0xee, 0x42, 0x95, 0x67, 0x21, 0xbe, 0x86, 0x68, 0xfa, 0x2a, 0xcc, 0x73, 0xf8, 0x0a, 0x0f, 0x60, + 0x95, 0x33, 0xce, 0xe7, 0x57, 0xc4, 0x2d, 0x33, 0xf3, 0x9c, 0xf3, 0xd9, 0x1d, 0xd8, 0x10, 0xaf, + 0x09, 0x44, 0xf1, 0x2a, 0x2b, 0xdc, 0x3b, 0xa8, 0xd8, 0x75, 0x64, 0xc9, 0xb2, 0x56, 0x14, 0x9c, + 0x1f, 0x01, 0xcf, 0x5e, 0x0b, 0xe8, 0xbb, 0x22, 0x94, 0x31, 0xcf, 0xc9, 0x61, 0x77, 0xe1, 0x1d, + 0x8e, 0x9d, 0x7b, 0x76, 0x10, 0x4c, 0x5d, 0xe6, 0x58, 0x53, 0xff, 0x18, 0x43, 0x66, 0x14, 0xdb, + 0xb3, 0xc0, 0x9a, 0x47, 0xad, 0x0d, 0x0c, 0x99, 0x6d, 0xe6, 0x39, 0x47, 0x09, 0xa8, 0xef, 0x1f, + 0x9b, 0x09, 0xe4, 0x28, 0x6a, 0xff, 0x3e, 0xac, 0xe6, 0xec, 0x71, 0x41, 0xa7, 0x35, 0x74, 0xfe, + 0x8c, 0x4e, 0xdf, 0x85, 0x95, 0x20, 0x64, 0xe7, 0xa2, 0xd5, 0x51, 0xb4, 0x86, 0xa0, 0x09, 0xb1, + 0xb6, 0x60, 0x05, 0x79, 0x96, 0x20, 0xe6, 0xf3, 0x63, 0x03, 0x59, 0x87, 0xc8, 0x69, 0xbf, 0x80, + 0x95, 0xec, 0x69, 0x93, 0x77, 0x33, 0x69, 0xa1, 0x99, 0xcb, 0x93, 0x69, 0x76, 0x48, 0x2a, 0xb2, + 0xf5, 0x4b, 0x2a, 0x32, 0x72, 0x9d, 0x8a, 0x4c, 0xfb, 0x2f, 0xd9, 0x9c, 0x65, 0x2a, 0x84, 0x9f, + 0x41, 0x2d, 0x90, 0xf5, 0x38, 0x5a, 0x52, 0xfe, 0x12, 0x3e, 0x0f, 0xee, 0x24, 0x95, 0x3b, 0x4d, + 0xe7, 0xb4, 0xff, 0x56, 0x81, 0x5a, 0x5a, 0xd0, 0xe7, 0x2c, 0xef, 0xcd, 0x05, 0xcb, 0x3b, 0x90, + 0x1a, 0x16, 0x0a, 0x7c, 0x1b, 0xa3, 0xc5, 0x27, 0xaf, 0x7f, 0xd7, 0xc5, 0xb6, 0xe7, 0x34, 0xdb, + 0xf6, 0x6c, 0xbe, 0xae, 0xed, 0xf9, 0xe4, 0xa2, 0xc1, 0xbf, 0x95, 0xe9, 0x2d, 0x16, 0xcc, 0xbe, + 0xfd, 0x7d, 0xae, 0x0f, 0xca, 0x26, 0x84, 0x77, 0xc4, 0x7e, 0xd2, 0x84, 0x90, 0xb6, 0x3f, 0xf7, + 0xaf, 0xd7, 0xfe, 0x6c, 0x43, 0x45, 0xea, 0xfc, 0x0e, 0x54, 0x64, 0x4d, 0x27, 0x1b, 0x04, 0x31, + 0x3a, 0x6f, 0x10, 0x0a, 0xb2, 0x4e, 0xd7, 0x7e, 0xae, 0x40, 0x59, 0x0f, 0x43, 0x3f, 0xd4, 0xfe, + 0x48, 0x81, 0x3a, 0x3e, 0xed, 0xf9, 0x0e, 0xe3, 0xd9, 0x60, 0xb7, 0xdb, 0xb3, 0xa8, 0xfe, 0xcd, + 0x91, 0x8e, 0xd9, 0xa0, 0x0d, 0x77, 0xf6, 0x86, 0x83, 0xbd, 0x23, 0x4a, 0xf5, 0x81, 0x69, 0x99, + 0xb4, 0x3b, 0x18, 0xf1, 0xb6, 0x67, 0x38, 0x50, 0x15, 0x9e, 0x29, 0x8c, 0x81, 0xa9, 0xd3, 0x41, + 0xb7, 0x6f, 0x89, 0x56, 0xb4, 0x88, 0x77, 0xb3, 0xba, 0xde, 0xb3, 0xf0, 0xd6, 0x51, 0x2d, 0xf1, + 0x96, 0xd5, 0x34, 0x0e, 0xf4, 0xe1, 0x91, 0xa9, 0x96, 0xc9, 0x6d, 0x58, 0x3f, 0xd4, 0xe9, 0x81, + 0x31, 0x1a, 0x19, 0xc3, 0x81, 0xd5, 0xd3, 0x07, 0x86, 0xde, 0x53, 0x2b, 0x7c, 0x9d, 0x5d, 0x63, + 0xdf, 0xec, 0xee, 0xf6, 0x75, 0xb9, 0x4e, 0x95, 0x6c, 0xc2, 0x5b, 0x7b, 0xc3, 0x83, 0x03, 0xc3, + 0x34, 0xf5, 0x9e, 0xb5, 0x7b, 0x64, 0x5a, 0x23, 0xd3, 0xe8, 0xf7, 0xad, 0xee, 0xe1, 0x61, 0xff, + 0x29, 0x4f, 0x60, 0x35, 0x72, 0x17, 0x36, 0xf6, 0xba, 0x87, 0xdd, 0x5d, 0xa3, 0x6f, 0x98, 0x4f, + 0xad, 0x9e, 0x31, 0xe2, 0xf3, 0x7b, 0x6a, 0x9d, 0x27, 0x6c, 0x93, 0x3e, 0xb5, 0xba, 0x7d, 0x14, + 0xcd, 0xd4, 0xad, 0xdd, 0xee, 0xde, 0x13, 0x7d, 0xd0, 0x53, 0x81, 0x0b, 0x30, 0xea, 0x3e, 0xd2, + 0x2d, 0x2e, 0x92, 0x65, 0x0e, 0x87, 0xd6, 0xb0, 0xdf, 0x53, 0x1b, 0xda, 0xbf, 0x14, 0xa1, 0xb4, + 0xe7, 0x47, 0x31, 0xf7, 0x46, 0xe1, 0xac, 0x2f, 0x42, 0x37, 0x66, 0xa2, 0x7f, 0x2b, 0x53, 0xd1, + 0x4b, 0x7f, 0x87, 0x24, 0x1e, 0x50, 0x32, 0x10, 0xeb, 0xd9, 0x19, 0xc7, 0x29, 0x88, 0x5b, 0x3b, + 0xc7, 0xed, 0x72, 0xb2, 0x88, 0x68, 0x78, 0x85, 0x23, 0xd7, 0x2b, 0x22, 0x4e, 0x06, 0x61, 0xb9, + 0xe0, 0xc7, 0x40, 0xb2, 0x20, 0xb9, 0x62, 0x09, 0x91, 0x6a, 0x06, 0x29, 0x96, 0xdc, 0x01, 0x18, + 0xfb, 0xb3, 0x99, 0x1b, 0x8f, 0xfd, 0x28, 0x96, 0x5f, 0xc8, 0xda, 0x39, 0x63, 0x8f, 0x62, 0x6e, + 0xf1, 0x33, 0x37, 0xe6, 0x8f, 0x34, 0x83, 0x26, 0x3b, 0x70, 0xcf, 0x0e, 0x82, 0xd0, 0x7f, 0xe9, + 0xce, 0xec, 0x98, 0x59, 0xdc, 0x73, 0xed, 0x63, 0x66, 0x39, 0x6c, 0x1a, 0xdb, 0xd8, 0x13, 0x95, + 0xe9, 0xdd, 0x0c, 0x60, 0x24, 0xf8, 0x3d, 0xce, 0xe6, 0x71, 0xd7, 0x75, 0xac, 0x88, 0xfd, 0x30, + 0xe7, 0x1e, 0x60, 0xcd, 0x03, 0xc7, 0xe6, 0x62, 0xd6, 0x45, 0x96, 0x72, 0x9d, 0x91, 0xe4, 0x1c, + 0x09, 0x46, 0xfb, 0x15, 0xc0, 0xb9, 0x14, 0x64, 0x1b, 0x6e, 0xf3, 0x3a, 0x9e, 0x45, 0x31, 0x73, + 0x2c, 0xb9, 0xdb, 0x60, 0x1e, 0x47, 0x18, 0xe2, 0xcb, 0x74, 0x23, 0x65, 0xca, 0x9b, 0xc2, 0x79, + 0x1c, 0x91, 0x9f, 0x40, 0xeb, 0xc2, 0x1c, 0x87, 0x4d, 0x19, 0x7f, 0x6d, 0x15, 0xa7, 0xdd, 0x59, + 0x98, 0xd6, 0x13, 0x5c, 0xed, 0x4f, 0x14, 0x80, 0x7d, 0x16, 0x53, 0xc1, 0xcd, 0x34, 0xb6, 0x95, + 0xeb, 0x36, 0xb6, 0xef, 0x27, 0x17, 0x08, 0xc5, 0xab, 0x63, 0xc0, 0x42, 0x97, 0xa1, 0xdc, 0xa4, + 0xcb, 0xc8, 0x35, 0x11, 0xc5, 0x2b, 0x9a, 0x88, 0x52, 0xae, 0x89, 0xf8, 0x18, 0x9a, 0xf6, 0x74, + 0xea, 0xbf, 0xe0, 0x05, 0x0d, 0x0b, 0x43, 0xe6, 0xa0, 0x11, 0x9c, 0xd7, 0xdb, 0xc8, 0xec, 0x49, + 0x9e, 0xf6, 0xe7, 0x0a, 0x34, 0x50, 0x15, 0x51, 0xe0, 0x7b, 0x11, 0x23, 0x5f, 0x42, 0x45, 0x5e, + 0x44, 0x8b, 0x8b, 0xfc, 0xb7, 0x33, 0xb2, 0x66, 0x70, 0xb2, 0x68, 0xa0, 0x12, 0xcc, 0x33, 0x42, + 0xe6, 0x75, 0x97, 0x2b, 0x25, 0x45, 0x91, 0xfb, 0x50, 0x73, 0x3d, 0x4b, 0xb4, 0xd4, 0x95, 0x4c, + 0x58, 0xac, 0xba, 0x1e, 0xd6, 0xb2, 0xed, 0x57, 0x50, 0x11, 0x2f, 0x21, 0x9d, 0x54, 0xa6, 0x8b, + 0xfa, 0xcb, 0xdc, 0x1c, 0xa7, 0xc2, 0xc8, 0xc3, 0x29, 0xbd, 0x2e, 0x40, 0xb7, 0xa0, 0x7a, 0xca, + 0x9b, 0x0f, 0xbc, 0xf4, 0xe3, 0xea, 0x4d, 0x86, 0xda, 0x1f, 0x97, 0x00, 0x0e, 0xe7, 0x4b, 0x0c, + 0xa4, 0x71, 0x5d, 0x03, 0xe9, 0xe4, 0xf4, 0xf8, 0x7a, 0x99, 0x7f, 0x75, 0x43, 0x59, 0xd2, 0x69, + 0x17, 0x6f, 0xda, 0x69, 0xdf, 0x87, 0x6a, 0x1c, 0xce, 0xb9, 0xa3, 0x08, 0x63, 0x4a, 0x5b, 0x5a, + 0x49, 0x25, 0x6f, 0x42, 0x79, 0xe2, 0x87, 0x63, 0x86, 0x8e, 0x95, 0xb2, 0x05, 0xed, 0xc2, 0x65, + 0x52, 0xed, 0xb2, 0xcb, 0x24, 0xde, 0xa0, 0x45, 0xf2, 0x1e, 0x0d, 0x0b, 0x99, 0x7c, 0x83, 0x96, + 0x5c, 0xb1, 0xd1, 0x14, 0x44, 0xbe, 0x81, 0xa6, 0x3d, 0x8f, 0x7d, 0xcb, 0xe5, 0x15, 0xda, 0xd4, + 0x1d, 0x9f, 0x61, 0xd9, 0xdd, 0xcc, 0x7f, 0xaf, 0x4f, 0x0f, 0xaa, 0xd3, 0x9d, 0xc7, 0xbe, 0xe1, + 0x1c, 0x22, 0x72, 0xa7, 0x2a, 0x93, 0x12, 0x5d, 0xb1, 0x33, 0x64, 0xed, 0xc7, 0xb0, 0x92, 0x85, + 0xf1, 0x04, 0x24, 0x81, 0xea, 0x1b, 0x3c, 0x3b, 0x8d, 0x78, 0x6a, 0x1b, 0x98, 0x46, 0xb7, 0xaf, + 0x16, 0xb4, 0x18, 0x1a, 0xb8, 0xbc, 0xf4, 0x8e, 0xeb, 0xba, 0xfd, 0x03, 0x28, 0x61, 0xf8, 0x55, + 0x2e, 0x7c, 0x0f, 0xc1, 0x98, 0x8b, 0xcc, 0xbc, 0xf9, 0x15, 0xb3, 0xe6, 0xf7, 0xdf, 0x05, 0x58, + 0x31, 0xfd, 0xf9, 0xf8, 0xe4, 0xa2, 0x01, 0xc2, 0xaf, 0x3b, 0x42, 0x2d, 0x31, 0x1f, 0xe5, 0xa6, + 0xe6, 0x93, 0x5a, 0x47, 0x71, 0x89, 0x75, 0xdc, 0xf4, 0xcc, 0xb5, 0x2f, 0x60, 0x55, 0x6e, 0x5e, + 0x6a, 0x3d, 0xd1, 0x66, 0xe1, 0x0a, 0x6d, 0x6a, 0xbf, 0x50, 0x60, 0x55, 0xc4, 0xf7, 0xff, 0xbb, + 0xd2, 0x2a, 0x37, 0x0c, 0xeb, 0xe5, 0x1b, 0x5d, 0x1e, 0xfd, 0xbf, 0xf4, 0x34, 0x6d, 0x08, 0xcd, + 0x44, 0x7d, 0x37, 0x50, 0xfb, 0x15, 0x46, 0xfc, 0x8b, 0x02, 0x34, 0x06, 0xec, 0xe5, 0x92, 0x20, + 0x5a, 0xbe, 0xee, 0x71, 0x7c, 0x98, 0x2b, 0x57, 0x1b, 0xdb, 0xeb, 0x59, 0x19, 0xc4, 0xd5, 0x63, + 0x52, 0xc1, 0xa6, 0xb7, 0xa8, 0xca, 0xf2, 0x5b, 0xd4, 0xd2, 0x62, 0xb7, 0x9e, 0xb9, 0xc5, 0x2b, + 0x2e, 0xbb, 0xc5, 0xd3, 0xfe, 0xad, 0x08, 0x0d, 0x6c, 0x90, 0x29, 0x8b, 0xe6, 0xd3, 0x38, 0x27, + 0x4c, 0xe1, 0x6a, 0x61, 0x3a, 0x50, 0x09, 0x71, 0x92, 0x74, 0xa5, 0x4b, 0x83, 0xbf, 0x40, 0x61, + 0x6b, 0xfc, 0xdc, 0x0d, 0x02, 0xe6, 0x58, 0x82, 0x92, 0x14, 0x30, 0x4d, 0x49, 0x16, 0x22, 0x44, + 0xbc, 0xfc, 0x9c, 0xf9, 0x21, 0x4b, 0x51, 0x45, 0xbc, 0x4f, 0x68, 0x70, 0x5a, 0x02, 0xc9, 0xdd, + 0x37, 0x88, 0xca, 0xe0, 0xfc, 0xbe, 0x21, 0xed, 0x35, 0x91, 0x5b, 0x47, 0xae, 0xe8, 0x35, 0x91, + 0xcd, 0xbb, 0xa8, 0x99, 0x3d, 0x9d, 0x5a, 0x7e, 0x10, 0xa1, 0xd3, 0xd4, 0x68, 0x0d, 0x09, 0xc3, + 0x20, 0x22, 0x5f, 0x43, 0x7a, 0x5d, 0x2c, 0x6f, 0xc9, 0xc5, 0x39, 0xb6, 0x2e, 0xbb, 0x58, 0xa0, + 0xab, 0xe3, 0xdc, 0xfd, 0xcf, 0x92, 0x1b, 0xea, 0xca, 0x4d, 0x6f, 0xa8, 0x1f, 0x42, 0x59, 0xc4, + 0xa8, 0xda, 0xeb, 0x62, 0x94, 0xc0, 0x65, 0xed, 0xb3, 0x91, 0xb7, 0xcf, 0x5f, 0x16, 0x80, 0x74, + 0xa7, 0x53, 0x7f, 0x6c, 0xc7, 0xcc, 0x70, 0xa2, 0x8b, 0x66, 0x7a, 0xed, 0xcf, 0x2e, 0x9f, 0x41, + 0x7d, 0xe6, 0x3b, 0x6c, 0x6a, 0x25, 0xdf, 0x94, 0x2e, 0xad, 0x7e, 0x10, 0xc6, 0x5b, 0x52, 0x02, + 0x25, 0xbc, 0xc4, 0x51, 0xb0, 0xee, 0xc0, 0x67, 0xde, 0x84, 0xcd, 0xec, 0x97, 0xb2, 0x14, 0xe1, + 0x8f, 0xa4, 0x03, 0xd5, 0x90, 0x45, 0x2c, 0x3c, 0x65, 0x57, 0x16, 0x55, 0x09, 0x48, 0x7b, 0x06, + 0x1b, 0xb9, 0x1d, 0x49, 0x47, 0xbe, 0x85, 0x5f, 0x2b, 0xc3, 0x58, 0x7e, 0xb4, 0x12, 0x03, 0xfe, + 0x3a, 0xe6, 0x25, 0x9f, 0x41, 0xf9, 0x63, 0xea, 0xf0, 0xc5, 0xab, 0xe2, 0xec, 0x1e, 0xa8, 0x59, + 0x4d, 0xbb, 0x63, 0x0c, 0x36, 0xf2, 0x54, 0x0a, 0xd7, 0x3b, 0x15, 0xed, 0xef, 0x0a, 0xb0, 0xde, + 0x75, 0x1c, 0xf1, 0x77, 0xc3, 0x25, 0xaa, 0x2f, 0x5e, 0x57, 0xf5, 0x0b, 0x81, 0x58, 0x84, 0x89, + 0x6b, 0x05, 0xe2, 0x0f, 0xa1, 0x92, 0xd6, 0x5a, 0xc5, 0x05, 0x77, 0x16, 0x72, 0x51, 0x09, 0xd0, + 0x6e, 0x01, 0xc9, 0x0a, 0x2b, 0xb4, 0xaa, 0xfd, 0x69, 0x11, 0xee, 0xee, 0xb2, 0x63, 0xd7, 0xcb, + 0xbe, 0xe2, 0x57, 0xdf, 0xc9, 0xc5, 0x4f, 0x65, 0x9f, 0xc1, 0xba, 0x28, 0xe4, 0x93, 0x7f, 0x62, + 0x59, 0xec, 0x58, 0x7e, 0x9d, 0x94, 0xb1, 0x6a, 0x0d, 0xf9, 0x07, 0x92, 0xad, 0xe3, 0x7f, 0xc5, + 0x1c, 0x3b, 0xb6, 0x9f, 0xd9, 0x11, 0xb3, 0x5c, 0x47, 0xfe, 0x59, 0x06, 0x12, 0x92, 0xe1, 0x90, + 0x21, 0x94, 0xb8, 0x0d, 0xa2, 0xeb, 0x36, 0xb7, 0xb7, 0x33, 0x62, 0x5d, 0xb2, 0x95, 0xac, 0x02, + 0x0f, 0x7c, 0x87, 0xed, 0x54, 0x8f, 0x06, 0x4f, 0x06, 0xc3, 0xef, 0x06, 0x14, 0x17, 0x22, 0x06, + 0xdc, 0x0a, 0x42, 0x76, 0xea, 0xfa, 0xf3, 0xc8, 0xca, 0x9e, 0x44, 0xf5, 0xca, 0x94, 0xb8, 0x91, + 0xcc, 0xc9, 0x10, 0xb5, 0x9f, 0xc2, 0xda, 0xc2, 0xcb, 0x78, 0x6d, 0x26, 0x5f, 0xa7, 0xbe, 0x41, + 0x56, 0xa1, 0x8e, 0x1f, 0xbb, 0x97, 0x7f, 0xfb, 0xd6, 0xfe, 0xb5, 0x80, 0x57, 0x4c, 0x33, 0x37, + 0xbe, 0x59, 0x06, 0xfb, 0xcd, 0x7c, 0x06, 0x83, 0xed, 0x77, 0xf3, 0xe6, 0x9b, 0x59, 0xb0, 0xf3, + 0xad, 0x00, 0xa6, 0x41, 0xa4, 0x6d, 0x43, 0x55, 0xd2, 0xc8, 0x6f, 0xc1, 0x5a, 0xe8, 0xfb, 0x71, + 0xd2, 0x89, 0x8a, 0x0e, 0xe4, 0xf2, 0x3f, 0xdb, 0xac, 0x72, 0xb0, 0x48, 0x06, 0x4f, 0xf2, 0xbd, + 0x48, 0x59, 0xfc, 0x0d, 0x44, 0x0e, 0x77, 0x1b, 0xbf, 0x5b, 0x4f, 0xff, 0xb7, 0xfb, 0xbf, 0x01, + 0x00, 0x00, 0xff, 0xff, 0x35, 0x9f, 0x30, 0x98, 0xf2, 0x2b, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/appengine/internal/datastore/datastore_v3.proto b/vendor/google.golang.org/appengine/internal/datastore/datastore_v3.proto new file mode 100755 index 000000000..497b4d9a9 --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/datastore/datastore_v3.proto @@ -0,0 +1,551 @@ +syntax = "proto2"; +option go_package = "datastore"; + +package appengine; + +message Action{} + +message PropertyValue { + optional int64 int64Value = 1; + optional bool booleanValue = 2; + optional string stringValue = 3; + optional double doubleValue = 4; + + optional group PointValue = 5 { + required double x = 6; + required double y = 7; + } + + optional group UserValue = 8 { + required string email = 9; + required string auth_domain = 10; + optional string nickname = 11; + optional string federated_identity = 21; + optional string federated_provider = 22; + } + + optional group ReferenceValue = 12 { + required string app = 13; + optional string name_space = 20; + repeated group PathElement = 14 { + required string type = 15; + optional int64 id = 16; + optional string name = 17; + } + } +} + +message Property { + enum Meaning { + NO_MEANING = 0; + BLOB = 14; + TEXT = 15; + BYTESTRING = 16; + + ATOM_CATEGORY = 1; + ATOM_LINK = 2; + ATOM_TITLE = 3; + ATOM_CONTENT = 4; + ATOM_SUMMARY = 5; + ATOM_AUTHOR = 6; + + GD_WHEN = 7; + GD_EMAIL = 8; + GEORSS_POINT = 9; + GD_IM = 10; + + GD_PHONENUMBER = 11; + GD_POSTALADDRESS = 12; + + GD_RATING = 13; + + BLOBKEY = 17; + ENTITY_PROTO = 19; + + INDEX_VALUE = 18; + }; + + optional Meaning meaning = 1 [default = NO_MEANING]; + optional string meaning_uri = 2; + + required string name = 3; + + required PropertyValue value = 5; + + required bool multiple = 4; + + optional bool searchable = 6 [default=false]; + + enum FtsTokenizationOption { + HTML = 1; + ATOM = 2; + } + + optional FtsTokenizationOption fts_tokenization_option = 8; + + optional string locale = 9 [default = "en"]; +} + +message Path { + repeated group Element = 1 { + required string type = 2; + optional int64 id = 3; + optional string name = 4; + } +} + +message Reference { + required string app = 13; + optional string name_space = 20; + required Path path = 14; +} + +message User { + required string email = 1; + required string auth_domain = 2; + optional string nickname = 3; + optional string federated_identity = 6; + optional string federated_provider = 7; +} + +message EntityProto { + required Reference key = 13; + required Path entity_group = 16; + optional User owner = 17; + + enum Kind { + GD_CONTACT = 1; + GD_EVENT = 2; + GD_MESSAGE = 3; + } + optional Kind kind = 4; + optional string kind_uri = 5; + + repeated Property property = 14; + repeated Property raw_property = 15; + + optional int32 rank = 18; +} + +message CompositeProperty { + required int64 index_id = 1; + repeated string value = 2; +} + +message Index { + required string entity_type = 1; + required bool ancestor = 5; + repeated group Property = 2 { + required string name = 3; + enum Direction { + ASCENDING = 1; + DESCENDING = 2; + } + optional Direction direction = 4 [default = ASCENDING]; + } +} + +message CompositeIndex { + required string app_id = 1; + required int64 id = 2; + required Index definition = 3; + + enum State { + WRITE_ONLY = 1; + READ_WRITE = 2; + DELETED = 3; + ERROR = 4; + } + required State state = 4; + + optional bool only_use_if_required = 6 [default = false]; +} + +message IndexPostfix { + message IndexValue { + required string property_name = 1; + required PropertyValue value = 2; + } + + repeated IndexValue index_value = 1; + + optional Reference key = 2; + + optional bool before = 3 [default=true]; +} + +message IndexPosition { + optional string key = 1; + + optional bool before = 2 [default=true]; +} + +message Snapshot { + enum Status { + INACTIVE = 0; + ACTIVE = 1; + } + + required int64 ts = 1; +} + +message InternalHeader { + optional string qos = 1; +} + +message Transaction { + optional InternalHeader header = 4; + required fixed64 handle = 1; + required string app = 2; + optional bool mark_changes = 3 [default = false]; +} + +message Query { + optional InternalHeader header = 39; + + required string app = 1; + optional string name_space = 29; + + optional string kind = 3; + optional Reference ancestor = 17; + + repeated group Filter = 4 { + enum Operator { + LESS_THAN = 1; + LESS_THAN_OR_EQUAL = 2; + GREATER_THAN = 3; + GREATER_THAN_OR_EQUAL = 4; + EQUAL = 5; + IN = 6; + EXISTS = 7; + } + + required Operator op = 6; + repeated Property property = 14; + } + + optional string search_query = 8; + + repeated group Order = 9 { + enum Direction { + ASCENDING = 1; + DESCENDING = 2; + } + + required string property = 10; + optional Direction direction = 11 [default = ASCENDING]; + } + + enum Hint { + ORDER_FIRST = 1; + ANCESTOR_FIRST = 2; + FILTER_FIRST = 3; + } + optional Hint hint = 18; + + optional int32 count = 23; + + optional int32 offset = 12 [default = 0]; + + optional int32 limit = 16; + + optional CompiledCursor compiled_cursor = 30; + optional CompiledCursor end_compiled_cursor = 31; + + repeated CompositeIndex composite_index = 19; + + optional bool require_perfect_plan = 20 [default = false]; + + optional bool keys_only = 21 [default = false]; + + optional Transaction transaction = 22; + + optional bool compile = 25 [default = false]; + + optional int64 failover_ms = 26; + + optional bool strong = 32; + + repeated string property_name = 33; + + repeated string group_by_property_name = 34; + + optional bool distinct = 24; + + optional int64 min_safe_time_seconds = 35; + + repeated string safe_replica_name = 36; + + optional bool persist_offset = 37 [default=false]; +} + +message CompiledQuery { + required group PrimaryScan = 1 { + optional string index_name = 2; + + optional string start_key = 3; + optional bool start_inclusive = 4; + optional string end_key = 5; + optional bool end_inclusive = 6; + + repeated string start_postfix_value = 22; + repeated string end_postfix_value = 23; + + optional int64 end_unapplied_log_timestamp_us = 19; + } + + repeated group MergeJoinScan = 7 { + required string index_name = 8; + + repeated string prefix_value = 9; + + optional bool value_prefix = 20 [default=false]; + } + + optional Index index_def = 21; + + optional int32 offset = 10 [default = 0]; + + optional int32 limit = 11; + + required bool keys_only = 12; + + repeated string property_name = 24; + + optional int32 distinct_infix_size = 25; + + optional group EntityFilter = 13 { + optional bool distinct = 14 [default=false]; + + optional string kind = 17; + optional Reference ancestor = 18; + } +} + +message CompiledCursor { + optional group Position = 2 { + optional string start_key = 27; + + repeated group IndexValue = 29 { + optional string property = 30; + required PropertyValue value = 31; + } + + optional Reference key = 32; + + optional bool start_inclusive = 28 [default=true]; + } +} + +message Cursor { + required fixed64 cursor = 1; + + optional string app = 2; +} + +message Error { + enum ErrorCode { + BAD_REQUEST = 1; + CONCURRENT_TRANSACTION = 2; + INTERNAL_ERROR = 3; + NEED_INDEX = 4; + TIMEOUT = 5; + PERMISSION_DENIED = 6; + BIGTABLE_ERROR = 7; + COMMITTED_BUT_STILL_APPLYING = 8; + CAPABILITY_DISABLED = 9; + TRY_ALTERNATE_BACKEND = 10; + SAFE_TIME_TOO_OLD = 11; + } +} + +message Cost { + optional int32 index_writes = 1; + optional int32 index_write_bytes = 2; + optional int32 entity_writes = 3; + optional int32 entity_write_bytes = 4; + optional group CommitCost = 5 { + optional int32 requested_entity_puts = 6; + optional int32 requested_entity_deletes = 7; + }; + optional int32 approximate_storage_delta = 8; + optional int32 id_sequence_updates = 9; +} + +message GetRequest { + optional InternalHeader header = 6; + + repeated Reference key = 1; + optional Transaction transaction = 2; + + optional int64 failover_ms = 3; + + optional bool strong = 4; + + optional bool allow_deferred = 5 [default=false]; +} + +message GetResponse { + repeated group Entity = 1 { + optional EntityProto entity = 2; + optional Reference key = 4; + + optional int64 version = 3; + } + + repeated Reference deferred = 5; + + optional bool in_order = 6 [default=true]; +} + +message PutRequest { + optional InternalHeader header = 11; + + repeated EntityProto entity = 1; + optional Transaction transaction = 2; + repeated CompositeIndex composite_index = 3; + + optional bool trusted = 4 [default = false]; + + optional bool force = 7 [default = false]; + + optional bool mark_changes = 8 [default = false]; + repeated Snapshot snapshot = 9; + + enum AutoIdPolicy { + CURRENT = 0; + SEQUENTIAL = 1; + } + optional AutoIdPolicy auto_id_policy = 10 [default = CURRENT]; +} + +message PutResponse { + repeated Reference key = 1; + optional Cost cost = 2; + repeated int64 version = 3; +} + +message TouchRequest { + optional InternalHeader header = 10; + + repeated Reference key = 1; + repeated CompositeIndex composite_index = 2; + optional bool force = 3 [default = false]; + repeated Snapshot snapshot = 9; +} + +message TouchResponse { + optional Cost cost = 1; +} + +message DeleteRequest { + optional InternalHeader header = 10; + + repeated Reference key = 6; + optional Transaction transaction = 5; + + optional bool trusted = 4 [default = false]; + + optional bool force = 7 [default = false]; + + optional bool mark_changes = 8 [default = false]; + repeated Snapshot snapshot = 9; +} + +message DeleteResponse { + optional Cost cost = 1; + repeated int64 version = 3; +} + +message NextRequest { + optional InternalHeader header = 5; + + required Cursor cursor = 1; + optional int32 count = 2; + + optional int32 offset = 4 [default = 0]; + + optional bool compile = 3 [default = false]; +} + +message QueryResult { + optional Cursor cursor = 1; + + repeated EntityProto result = 2; + + optional int32 skipped_results = 7; + + required bool more_results = 3; + + optional bool keys_only = 4; + + optional bool index_only = 9; + + optional bool small_ops = 10; + + optional CompiledQuery compiled_query = 5; + + optional CompiledCursor compiled_cursor = 6; + + repeated CompositeIndex index = 8; + + repeated int64 version = 11; +} + +message AllocateIdsRequest { + optional InternalHeader header = 4; + + optional Reference model_key = 1; + + optional int64 size = 2; + + optional int64 max = 3; + + repeated Reference reserve = 5; +} + +message AllocateIdsResponse { + required int64 start = 1; + required int64 end = 2; + optional Cost cost = 3; +} + +message CompositeIndices { + repeated CompositeIndex index = 1; +} + +message AddActionsRequest { + optional InternalHeader header = 3; + + required Transaction transaction = 1; + repeated Action action = 2; +} + +message AddActionsResponse { +} + +message BeginTransactionRequest { + optional InternalHeader header = 3; + + required string app = 1; + optional bool allow_multiple_eg = 2 [default = false]; + optional string database_id = 4; + + enum TransactionMode { + UNKNOWN = 0; + READ_ONLY = 1; + READ_WRITE = 2; + } + optional TransactionMode mode = 5 [default = UNKNOWN]; + + optional Transaction previous_transaction = 7; +} + +message CommitResponse { + optional Cost cost = 1; + + repeated group Version = 3 { + required Reference root_entity_key = 4; + required int64 version = 5; + } +} diff --git a/vendor/google.golang.org/appengine/internal/identity.go b/vendor/google.golang.org/appengine/internal/identity.go new file mode 100644 index 000000000..9b4134e42 --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/identity.go @@ -0,0 +1,55 @@ +// Copyright 2011 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package internal + +import ( + "os" + + netcontext "golang.org/x/net/context" +) + +var ( + // This is set to true in identity_classic.go, which is behind the appengine build tag. + // The appengine build tag is set for the first generation runtimes (<= Go 1.9) but not + // the second generation runtimes (>= Go 1.11), so this indicates whether we're on a + // first-gen runtime. See IsStandard below for the second-gen check. + appengineStandard bool + + // This is set to true in identity_flex.go, which is behind the appenginevm build tag. + appengineFlex bool +) + +// AppID is the implementation of the wrapper function of the same name in +// ../identity.go. See that file for commentary. +func AppID(c netcontext.Context) string { + return appID(FullyQualifiedAppID(c)) +} + +// IsStandard is the implementation of the wrapper function of the same name in +// ../appengine.go. See that file for commentary. +func IsStandard() bool { + // appengineStandard will be true for first-gen runtimes (<= Go 1.9) but not + // second-gen (>= Go 1.11). + return appengineStandard || IsSecondGen() +} + +// IsStandard is the implementation of the wrapper function of the same name in +// ../appengine.go. See that file for commentary. +func IsSecondGen() bool { + // Second-gen runtimes set $GAE_ENV so we use that to check if we're on a second-gen runtime. + return os.Getenv("GAE_ENV") == "standard" +} + +// IsFlex is the implementation of the wrapper function of the same name in +// ../appengine.go. See that file for commentary. +func IsFlex() bool { + return appengineFlex +} + +// IsAppEngine is the implementation of the wrapper function of the same name in +// ../appengine.go. See that file for commentary. +func IsAppEngine() bool { + return IsStandard() || IsFlex() +} diff --git a/vendor/google.golang.org/appengine/internal/identity_classic.go b/vendor/google.golang.org/appengine/internal/identity_classic.go new file mode 100644 index 000000000..4e979f45e --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/identity_classic.go @@ -0,0 +1,61 @@ +// Copyright 2015 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +// +build appengine + +package internal + +import ( + "appengine" + + netcontext "golang.org/x/net/context" +) + +func init() { + appengineStandard = true +} + +func DefaultVersionHostname(ctx netcontext.Context) string { + c := fromContext(ctx) + if c == nil { + panic(errNotAppEngineContext) + } + return appengine.DefaultVersionHostname(c) +} + +func Datacenter(_ netcontext.Context) string { return appengine.Datacenter() } +func ServerSoftware() string { return appengine.ServerSoftware() } +func InstanceID() string { return appengine.InstanceID() } +func IsDevAppServer() bool { return appengine.IsDevAppServer() } + +func RequestID(ctx netcontext.Context) string { + c := fromContext(ctx) + if c == nil { + panic(errNotAppEngineContext) + } + return appengine.RequestID(c) +} + +func ModuleName(ctx netcontext.Context) string { + c := fromContext(ctx) + if c == nil { + panic(errNotAppEngineContext) + } + return appengine.ModuleName(c) +} +func VersionID(ctx netcontext.Context) string { + c := fromContext(ctx) + if c == nil { + panic(errNotAppEngineContext) + } + return appengine.VersionID(c) +} + +func fullyQualifiedAppID(ctx netcontext.Context) string { + c := fromContext(ctx) + if c == nil { + panic(errNotAppEngineContext) + } + return c.FullyQualifiedAppID() +} diff --git a/vendor/google.golang.org/appengine/internal/identity_flex.go b/vendor/google.golang.org/appengine/internal/identity_flex.go new file mode 100644 index 000000000..d5e2e7b5e --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/identity_flex.go @@ -0,0 +1,11 @@ +// Copyright 2018 Google LLC. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +// +build appenginevm + +package internal + +func init() { + appengineFlex = true +} diff --git a/vendor/google.golang.org/appengine/internal/identity_vm.go b/vendor/google.golang.org/appengine/internal/identity_vm.go new file mode 100644 index 000000000..5d8067263 --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/identity_vm.go @@ -0,0 +1,134 @@ +// Copyright 2011 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +// +build !appengine + +package internal + +import ( + "log" + "net/http" + "os" + "strings" + + netcontext "golang.org/x/net/context" +) + +// These functions are implementations of the wrapper functions +// in ../appengine/identity.go. See that file for commentary. + +const ( + hDefaultVersionHostname = "X-AppEngine-Default-Version-Hostname" + hRequestLogId = "X-AppEngine-Request-Log-Id" + hDatacenter = "X-AppEngine-Datacenter" +) + +func ctxHeaders(ctx netcontext.Context) http.Header { + c := fromContext(ctx) + if c == nil { + return nil + } + return c.Request().Header +} + +func DefaultVersionHostname(ctx netcontext.Context) string { + return ctxHeaders(ctx).Get(hDefaultVersionHostname) +} + +func RequestID(ctx netcontext.Context) string { + return ctxHeaders(ctx).Get(hRequestLogId) +} + +func Datacenter(ctx netcontext.Context) string { + if dc := ctxHeaders(ctx).Get(hDatacenter); dc != "" { + return dc + } + // If the header isn't set, read zone from the metadata service. + // It has the format projects/[NUMERIC_PROJECT_ID]/zones/[ZONE] + zone, err := getMetadata("instance/zone") + if err != nil { + log.Printf("Datacenter: %v", err) + return "" + } + parts := strings.Split(string(zone), "/") + if len(parts) == 0 { + return "" + } + return parts[len(parts)-1] +} + +func ServerSoftware() string { + // TODO(dsymonds): Remove fallback when we've verified this. + if s := os.Getenv("SERVER_SOFTWARE"); s != "" { + return s + } + if s := os.Getenv("GAE_ENV"); s != "" { + return s + } + return "Google App Engine/1.x.x" +} + +// TODO(dsymonds): Remove the metadata fetches. + +func ModuleName(_ netcontext.Context) string { + if s := os.Getenv("GAE_MODULE_NAME"); s != "" { + return s + } + if s := os.Getenv("GAE_SERVICE"); s != "" { + return s + } + return string(mustGetMetadata("instance/attributes/gae_backend_name")) +} + +func VersionID(_ netcontext.Context) string { + if s1, s2 := os.Getenv("GAE_MODULE_VERSION"), os.Getenv("GAE_MINOR_VERSION"); s1 != "" && s2 != "" { + return s1 + "." + s2 + } + if s1, s2 := os.Getenv("GAE_VERSION"), os.Getenv("GAE_DEPLOYMENT_ID"); s1 != "" && s2 != "" { + return s1 + "." + s2 + } + return string(mustGetMetadata("instance/attributes/gae_backend_version")) + "." + string(mustGetMetadata("instance/attributes/gae_backend_minor_version")) +} + +func InstanceID() string { + if s := os.Getenv("GAE_MODULE_INSTANCE"); s != "" { + return s + } + if s := os.Getenv("GAE_INSTANCE"); s != "" { + return s + } + return string(mustGetMetadata("instance/attributes/gae_backend_instance")) +} + +func partitionlessAppID() string { + // gae_project has everything except the partition prefix. + if appID := os.Getenv("GAE_LONG_APP_ID"); appID != "" { + return appID + } + if project := os.Getenv("GOOGLE_CLOUD_PROJECT"); project != "" { + return project + } + return string(mustGetMetadata("instance/attributes/gae_project")) +} + +func fullyQualifiedAppID(_ netcontext.Context) string { + if s := os.Getenv("GAE_APPLICATION"); s != "" { + return s + } + appID := partitionlessAppID() + + part := os.Getenv("GAE_PARTITION") + if part == "" { + part = string(mustGetMetadata("instance/attributes/gae_partition")) + } + + if part != "" { + appID = part + "~" + appID + } + return appID +} + +func IsDevAppServer() bool { + return os.Getenv("RUN_WITH_DEVAPPSERVER") != "" +} diff --git a/vendor/google.golang.org/appengine/internal/image/images_service.pb.go b/vendor/google.golang.org/appengine/internal/image/images_service.pb.go new file mode 100644 index 000000000..2a229d87e --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/image/images_service.pb.go @@ -0,0 +1,1375 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google.golang.org/appengine/internal/image/images_service.proto + +package image + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +type ImagesServiceError_ErrorCode int32 + +const ( + ImagesServiceError_UNSPECIFIED_ERROR ImagesServiceError_ErrorCode = 1 + ImagesServiceError_BAD_TRANSFORM_DATA ImagesServiceError_ErrorCode = 2 + ImagesServiceError_NOT_IMAGE ImagesServiceError_ErrorCode = 3 + ImagesServiceError_BAD_IMAGE_DATA ImagesServiceError_ErrorCode = 4 + ImagesServiceError_IMAGE_TOO_LARGE ImagesServiceError_ErrorCode = 5 + ImagesServiceError_INVALID_BLOB_KEY ImagesServiceError_ErrorCode = 6 + ImagesServiceError_ACCESS_DENIED ImagesServiceError_ErrorCode = 7 + ImagesServiceError_OBJECT_NOT_FOUND ImagesServiceError_ErrorCode = 8 +) + +var ImagesServiceError_ErrorCode_name = map[int32]string{ + 1: "UNSPECIFIED_ERROR", + 2: "BAD_TRANSFORM_DATA", + 3: "NOT_IMAGE", + 4: "BAD_IMAGE_DATA", + 5: "IMAGE_TOO_LARGE", + 6: "INVALID_BLOB_KEY", + 7: "ACCESS_DENIED", + 8: "OBJECT_NOT_FOUND", +} +var ImagesServiceError_ErrorCode_value = map[string]int32{ + "UNSPECIFIED_ERROR": 1, + "BAD_TRANSFORM_DATA": 2, + "NOT_IMAGE": 3, + "BAD_IMAGE_DATA": 4, + "IMAGE_TOO_LARGE": 5, + "INVALID_BLOB_KEY": 6, + "ACCESS_DENIED": 7, + "OBJECT_NOT_FOUND": 8, +} + +func (x ImagesServiceError_ErrorCode) Enum() *ImagesServiceError_ErrorCode { + p := new(ImagesServiceError_ErrorCode) + *p = x + return p +} +func (x ImagesServiceError_ErrorCode) String() string { + return proto.EnumName(ImagesServiceError_ErrorCode_name, int32(x)) +} +func (x *ImagesServiceError_ErrorCode) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(ImagesServiceError_ErrorCode_value, data, "ImagesServiceError_ErrorCode") + if err != nil { + return err + } + *x = ImagesServiceError_ErrorCode(value) + return nil +} +func (ImagesServiceError_ErrorCode) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_images_service_42a9d451721edce4, []int{0, 0} +} + +type ImagesServiceTransform_Type int32 + +const ( + ImagesServiceTransform_RESIZE ImagesServiceTransform_Type = 1 + ImagesServiceTransform_ROTATE ImagesServiceTransform_Type = 2 + ImagesServiceTransform_HORIZONTAL_FLIP ImagesServiceTransform_Type = 3 + ImagesServiceTransform_VERTICAL_FLIP ImagesServiceTransform_Type = 4 + ImagesServiceTransform_CROP ImagesServiceTransform_Type = 5 + ImagesServiceTransform_IM_FEELING_LUCKY ImagesServiceTransform_Type = 6 +) + +var ImagesServiceTransform_Type_name = map[int32]string{ + 1: "RESIZE", + 2: "ROTATE", + 3: "HORIZONTAL_FLIP", + 4: "VERTICAL_FLIP", + 5: "CROP", + 6: "IM_FEELING_LUCKY", +} +var ImagesServiceTransform_Type_value = map[string]int32{ + "RESIZE": 1, + "ROTATE": 2, + "HORIZONTAL_FLIP": 3, + "VERTICAL_FLIP": 4, + "CROP": 5, + "IM_FEELING_LUCKY": 6, +} + +func (x ImagesServiceTransform_Type) Enum() *ImagesServiceTransform_Type { + p := new(ImagesServiceTransform_Type) + *p = x + return p +} +func (x ImagesServiceTransform_Type) String() string { + return proto.EnumName(ImagesServiceTransform_Type_name, int32(x)) +} +func (x *ImagesServiceTransform_Type) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(ImagesServiceTransform_Type_value, data, "ImagesServiceTransform_Type") + if err != nil { + return err + } + *x = ImagesServiceTransform_Type(value) + return nil +} +func (ImagesServiceTransform_Type) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_images_service_42a9d451721edce4, []int{1, 0} +} + +type InputSettings_ORIENTATION_CORRECTION_TYPE int32 + +const ( + InputSettings_UNCHANGED_ORIENTATION InputSettings_ORIENTATION_CORRECTION_TYPE = 0 + InputSettings_CORRECT_ORIENTATION InputSettings_ORIENTATION_CORRECTION_TYPE = 1 +) + +var InputSettings_ORIENTATION_CORRECTION_TYPE_name = map[int32]string{ + 0: "UNCHANGED_ORIENTATION", + 1: "CORRECT_ORIENTATION", +} +var InputSettings_ORIENTATION_CORRECTION_TYPE_value = map[string]int32{ + "UNCHANGED_ORIENTATION": 0, + "CORRECT_ORIENTATION": 1, +} + +func (x InputSettings_ORIENTATION_CORRECTION_TYPE) Enum() *InputSettings_ORIENTATION_CORRECTION_TYPE { + p := new(InputSettings_ORIENTATION_CORRECTION_TYPE) + *p = x + return p +} +func (x InputSettings_ORIENTATION_CORRECTION_TYPE) String() string { + return proto.EnumName(InputSettings_ORIENTATION_CORRECTION_TYPE_name, int32(x)) +} +func (x *InputSettings_ORIENTATION_CORRECTION_TYPE) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(InputSettings_ORIENTATION_CORRECTION_TYPE_value, data, "InputSettings_ORIENTATION_CORRECTION_TYPE") + if err != nil { + return err + } + *x = InputSettings_ORIENTATION_CORRECTION_TYPE(value) + return nil +} +func (InputSettings_ORIENTATION_CORRECTION_TYPE) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_images_service_42a9d451721edce4, []int{4, 0} +} + +type OutputSettings_MIME_TYPE int32 + +const ( + OutputSettings_PNG OutputSettings_MIME_TYPE = 0 + OutputSettings_JPEG OutputSettings_MIME_TYPE = 1 + OutputSettings_WEBP OutputSettings_MIME_TYPE = 2 +) + +var OutputSettings_MIME_TYPE_name = map[int32]string{ + 0: "PNG", + 1: "JPEG", + 2: "WEBP", +} +var OutputSettings_MIME_TYPE_value = map[string]int32{ + "PNG": 0, + "JPEG": 1, + "WEBP": 2, +} + +func (x OutputSettings_MIME_TYPE) Enum() *OutputSettings_MIME_TYPE { + p := new(OutputSettings_MIME_TYPE) + *p = x + return p +} +func (x OutputSettings_MIME_TYPE) String() string { + return proto.EnumName(OutputSettings_MIME_TYPE_name, int32(x)) +} +func (x *OutputSettings_MIME_TYPE) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(OutputSettings_MIME_TYPE_value, data, "OutputSettings_MIME_TYPE") + if err != nil { + return err + } + *x = OutputSettings_MIME_TYPE(value) + return nil +} +func (OutputSettings_MIME_TYPE) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_images_service_42a9d451721edce4, []int{5, 0} +} + +type CompositeImageOptions_ANCHOR int32 + +const ( + CompositeImageOptions_TOP_LEFT CompositeImageOptions_ANCHOR = 0 + CompositeImageOptions_TOP CompositeImageOptions_ANCHOR = 1 + CompositeImageOptions_TOP_RIGHT CompositeImageOptions_ANCHOR = 2 + CompositeImageOptions_LEFT CompositeImageOptions_ANCHOR = 3 + CompositeImageOptions_CENTER CompositeImageOptions_ANCHOR = 4 + CompositeImageOptions_RIGHT CompositeImageOptions_ANCHOR = 5 + CompositeImageOptions_BOTTOM_LEFT CompositeImageOptions_ANCHOR = 6 + CompositeImageOptions_BOTTOM CompositeImageOptions_ANCHOR = 7 + CompositeImageOptions_BOTTOM_RIGHT CompositeImageOptions_ANCHOR = 8 +) + +var CompositeImageOptions_ANCHOR_name = map[int32]string{ + 0: "TOP_LEFT", + 1: "TOP", + 2: "TOP_RIGHT", + 3: "LEFT", + 4: "CENTER", + 5: "RIGHT", + 6: "BOTTOM_LEFT", + 7: "BOTTOM", + 8: "BOTTOM_RIGHT", +} +var CompositeImageOptions_ANCHOR_value = map[string]int32{ + "TOP_LEFT": 0, + "TOP": 1, + "TOP_RIGHT": 2, + "LEFT": 3, + "CENTER": 4, + "RIGHT": 5, + "BOTTOM_LEFT": 6, + "BOTTOM": 7, + "BOTTOM_RIGHT": 8, +} + +func (x CompositeImageOptions_ANCHOR) Enum() *CompositeImageOptions_ANCHOR { + p := new(CompositeImageOptions_ANCHOR) + *p = x + return p +} +func (x CompositeImageOptions_ANCHOR) String() string { + return proto.EnumName(CompositeImageOptions_ANCHOR_name, int32(x)) +} +func (x *CompositeImageOptions_ANCHOR) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(CompositeImageOptions_ANCHOR_value, data, "CompositeImageOptions_ANCHOR") + if err != nil { + return err + } + *x = CompositeImageOptions_ANCHOR(value) + return nil +} +func (CompositeImageOptions_ANCHOR) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_images_service_42a9d451721edce4, []int{8, 0} +} + +type ImagesServiceError struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ImagesServiceError) Reset() { *m = ImagesServiceError{} } +func (m *ImagesServiceError) String() string { return proto.CompactTextString(m) } +func (*ImagesServiceError) ProtoMessage() {} +func (*ImagesServiceError) Descriptor() ([]byte, []int) { + return fileDescriptor_images_service_42a9d451721edce4, []int{0} +} +func (m *ImagesServiceError) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ImagesServiceError.Unmarshal(m, b) +} +func (m *ImagesServiceError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ImagesServiceError.Marshal(b, m, deterministic) +} +func (dst *ImagesServiceError) XXX_Merge(src proto.Message) { + xxx_messageInfo_ImagesServiceError.Merge(dst, src) +} +func (m *ImagesServiceError) XXX_Size() int { + return xxx_messageInfo_ImagesServiceError.Size(m) +} +func (m *ImagesServiceError) XXX_DiscardUnknown() { + xxx_messageInfo_ImagesServiceError.DiscardUnknown(m) +} + +var xxx_messageInfo_ImagesServiceError proto.InternalMessageInfo + +type ImagesServiceTransform struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ImagesServiceTransform) Reset() { *m = ImagesServiceTransform{} } +func (m *ImagesServiceTransform) String() string { return proto.CompactTextString(m) } +func (*ImagesServiceTransform) ProtoMessage() {} +func (*ImagesServiceTransform) Descriptor() ([]byte, []int) { + return fileDescriptor_images_service_42a9d451721edce4, []int{1} +} +func (m *ImagesServiceTransform) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ImagesServiceTransform.Unmarshal(m, b) +} +func (m *ImagesServiceTransform) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ImagesServiceTransform.Marshal(b, m, deterministic) +} +func (dst *ImagesServiceTransform) XXX_Merge(src proto.Message) { + xxx_messageInfo_ImagesServiceTransform.Merge(dst, src) +} +func (m *ImagesServiceTransform) XXX_Size() int { + return xxx_messageInfo_ImagesServiceTransform.Size(m) +} +func (m *ImagesServiceTransform) XXX_DiscardUnknown() { + xxx_messageInfo_ImagesServiceTransform.DiscardUnknown(m) +} + +var xxx_messageInfo_ImagesServiceTransform proto.InternalMessageInfo + +type Transform struct { + Width *int32 `protobuf:"varint,1,opt,name=width" json:"width,omitempty"` + Height *int32 `protobuf:"varint,2,opt,name=height" json:"height,omitempty"` + CropToFit *bool `protobuf:"varint,11,opt,name=crop_to_fit,json=cropToFit,def=0" json:"crop_to_fit,omitempty"` + CropOffsetX *float32 `protobuf:"fixed32,12,opt,name=crop_offset_x,json=cropOffsetX,def=0.5" json:"crop_offset_x,omitempty"` + CropOffsetY *float32 `protobuf:"fixed32,13,opt,name=crop_offset_y,json=cropOffsetY,def=0.5" json:"crop_offset_y,omitempty"` + Rotate *int32 `protobuf:"varint,3,opt,name=rotate,def=0" json:"rotate,omitempty"` + HorizontalFlip *bool `protobuf:"varint,4,opt,name=horizontal_flip,json=horizontalFlip,def=0" json:"horizontal_flip,omitempty"` + VerticalFlip *bool `protobuf:"varint,5,opt,name=vertical_flip,json=verticalFlip,def=0" json:"vertical_flip,omitempty"` + CropLeftX *float32 `protobuf:"fixed32,6,opt,name=crop_left_x,json=cropLeftX,def=0" json:"crop_left_x,omitempty"` + CropTopY *float32 `protobuf:"fixed32,7,opt,name=crop_top_y,json=cropTopY,def=0" json:"crop_top_y,omitempty"` + CropRightX *float32 `protobuf:"fixed32,8,opt,name=crop_right_x,json=cropRightX,def=1" json:"crop_right_x,omitempty"` + CropBottomY *float32 `protobuf:"fixed32,9,opt,name=crop_bottom_y,json=cropBottomY,def=1" json:"crop_bottom_y,omitempty"` + Autolevels *bool `protobuf:"varint,10,opt,name=autolevels,def=0" json:"autolevels,omitempty"` + AllowStretch *bool `protobuf:"varint,14,opt,name=allow_stretch,json=allowStretch,def=0" json:"allow_stretch,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Transform) Reset() { *m = Transform{} } +func (m *Transform) String() string { return proto.CompactTextString(m) } +func (*Transform) ProtoMessage() {} +func (*Transform) Descriptor() ([]byte, []int) { + return fileDescriptor_images_service_42a9d451721edce4, []int{2} +} +func (m *Transform) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Transform.Unmarshal(m, b) +} +func (m *Transform) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Transform.Marshal(b, m, deterministic) +} +func (dst *Transform) XXX_Merge(src proto.Message) { + xxx_messageInfo_Transform.Merge(dst, src) +} +func (m *Transform) XXX_Size() int { + return xxx_messageInfo_Transform.Size(m) +} +func (m *Transform) XXX_DiscardUnknown() { + xxx_messageInfo_Transform.DiscardUnknown(m) +} + +var xxx_messageInfo_Transform proto.InternalMessageInfo + +const Default_Transform_CropToFit bool = false +const Default_Transform_CropOffsetX float32 = 0.5 +const Default_Transform_CropOffsetY float32 = 0.5 +const Default_Transform_Rotate int32 = 0 +const Default_Transform_HorizontalFlip bool = false +const Default_Transform_VerticalFlip bool = false +const Default_Transform_CropLeftX float32 = 0 +const Default_Transform_CropTopY float32 = 0 +const Default_Transform_CropRightX float32 = 1 +const Default_Transform_CropBottomY float32 = 1 +const Default_Transform_Autolevels bool = false +const Default_Transform_AllowStretch bool = false + +func (m *Transform) GetWidth() int32 { + if m != nil && m.Width != nil { + return *m.Width + } + return 0 +} + +func (m *Transform) GetHeight() int32 { + if m != nil && m.Height != nil { + return *m.Height + } + return 0 +} + +func (m *Transform) GetCropToFit() bool { + if m != nil && m.CropToFit != nil { + return *m.CropToFit + } + return Default_Transform_CropToFit +} + +func (m *Transform) GetCropOffsetX() float32 { + if m != nil && m.CropOffsetX != nil { + return *m.CropOffsetX + } + return Default_Transform_CropOffsetX +} + +func (m *Transform) GetCropOffsetY() float32 { + if m != nil && m.CropOffsetY != nil { + return *m.CropOffsetY + } + return Default_Transform_CropOffsetY +} + +func (m *Transform) GetRotate() int32 { + if m != nil && m.Rotate != nil { + return *m.Rotate + } + return Default_Transform_Rotate +} + +func (m *Transform) GetHorizontalFlip() bool { + if m != nil && m.HorizontalFlip != nil { + return *m.HorizontalFlip + } + return Default_Transform_HorizontalFlip +} + +func (m *Transform) GetVerticalFlip() bool { + if m != nil && m.VerticalFlip != nil { + return *m.VerticalFlip + } + return Default_Transform_VerticalFlip +} + +func (m *Transform) GetCropLeftX() float32 { + if m != nil && m.CropLeftX != nil { + return *m.CropLeftX + } + return Default_Transform_CropLeftX +} + +func (m *Transform) GetCropTopY() float32 { + if m != nil && m.CropTopY != nil { + return *m.CropTopY + } + return Default_Transform_CropTopY +} + +func (m *Transform) GetCropRightX() float32 { + if m != nil && m.CropRightX != nil { + return *m.CropRightX + } + return Default_Transform_CropRightX +} + +func (m *Transform) GetCropBottomY() float32 { + if m != nil && m.CropBottomY != nil { + return *m.CropBottomY + } + return Default_Transform_CropBottomY +} + +func (m *Transform) GetAutolevels() bool { + if m != nil && m.Autolevels != nil { + return *m.Autolevels + } + return Default_Transform_Autolevels +} + +func (m *Transform) GetAllowStretch() bool { + if m != nil && m.AllowStretch != nil { + return *m.AllowStretch + } + return Default_Transform_AllowStretch +} + +type ImageData struct { + Content []byte `protobuf:"bytes,1,req,name=content" json:"content,omitempty"` + BlobKey *string `protobuf:"bytes,2,opt,name=blob_key,json=blobKey" json:"blob_key,omitempty"` + Width *int32 `protobuf:"varint,3,opt,name=width" json:"width,omitempty"` + Height *int32 `protobuf:"varint,4,opt,name=height" json:"height,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ImageData) Reset() { *m = ImageData{} } +func (m *ImageData) String() string { return proto.CompactTextString(m) } +func (*ImageData) ProtoMessage() {} +func (*ImageData) Descriptor() ([]byte, []int) { + return fileDescriptor_images_service_42a9d451721edce4, []int{3} +} +func (m *ImageData) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ImageData.Unmarshal(m, b) +} +func (m *ImageData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ImageData.Marshal(b, m, deterministic) +} +func (dst *ImageData) XXX_Merge(src proto.Message) { + xxx_messageInfo_ImageData.Merge(dst, src) +} +func (m *ImageData) XXX_Size() int { + return xxx_messageInfo_ImageData.Size(m) +} +func (m *ImageData) XXX_DiscardUnknown() { + xxx_messageInfo_ImageData.DiscardUnknown(m) +} + +var xxx_messageInfo_ImageData proto.InternalMessageInfo + +func (m *ImageData) GetContent() []byte { + if m != nil { + return m.Content + } + return nil +} + +func (m *ImageData) GetBlobKey() string { + if m != nil && m.BlobKey != nil { + return *m.BlobKey + } + return "" +} + +func (m *ImageData) GetWidth() int32 { + if m != nil && m.Width != nil { + return *m.Width + } + return 0 +} + +func (m *ImageData) GetHeight() int32 { + if m != nil && m.Height != nil { + return *m.Height + } + return 0 +} + +type InputSettings struct { + CorrectExifOrientation *InputSettings_ORIENTATION_CORRECTION_TYPE `protobuf:"varint,1,opt,name=correct_exif_orientation,json=correctExifOrientation,enum=appengine.InputSettings_ORIENTATION_CORRECTION_TYPE,def=0" json:"correct_exif_orientation,omitempty"` + ParseMetadata *bool `protobuf:"varint,2,opt,name=parse_metadata,json=parseMetadata,def=0" json:"parse_metadata,omitempty"` + TransparentSubstitutionRgb *int32 `protobuf:"varint,3,opt,name=transparent_substitution_rgb,json=transparentSubstitutionRgb" json:"transparent_substitution_rgb,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *InputSettings) Reset() { *m = InputSettings{} } +func (m *InputSettings) String() string { return proto.CompactTextString(m) } +func (*InputSettings) ProtoMessage() {} +func (*InputSettings) Descriptor() ([]byte, []int) { + return fileDescriptor_images_service_42a9d451721edce4, []int{4} +} +func (m *InputSettings) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_InputSettings.Unmarshal(m, b) +} +func (m *InputSettings) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_InputSettings.Marshal(b, m, deterministic) +} +func (dst *InputSettings) XXX_Merge(src proto.Message) { + xxx_messageInfo_InputSettings.Merge(dst, src) +} +func (m *InputSettings) XXX_Size() int { + return xxx_messageInfo_InputSettings.Size(m) +} +func (m *InputSettings) XXX_DiscardUnknown() { + xxx_messageInfo_InputSettings.DiscardUnknown(m) +} + +var xxx_messageInfo_InputSettings proto.InternalMessageInfo + +const Default_InputSettings_CorrectExifOrientation InputSettings_ORIENTATION_CORRECTION_TYPE = InputSettings_UNCHANGED_ORIENTATION +const Default_InputSettings_ParseMetadata bool = false + +func (m *InputSettings) GetCorrectExifOrientation() InputSettings_ORIENTATION_CORRECTION_TYPE { + if m != nil && m.CorrectExifOrientation != nil { + return *m.CorrectExifOrientation + } + return Default_InputSettings_CorrectExifOrientation +} + +func (m *InputSettings) GetParseMetadata() bool { + if m != nil && m.ParseMetadata != nil { + return *m.ParseMetadata + } + return Default_InputSettings_ParseMetadata +} + +func (m *InputSettings) GetTransparentSubstitutionRgb() int32 { + if m != nil && m.TransparentSubstitutionRgb != nil { + return *m.TransparentSubstitutionRgb + } + return 0 +} + +type OutputSettings struct { + MimeType *OutputSettings_MIME_TYPE `protobuf:"varint,1,opt,name=mime_type,json=mimeType,enum=appengine.OutputSettings_MIME_TYPE,def=0" json:"mime_type,omitempty"` + Quality *int32 `protobuf:"varint,2,opt,name=quality" json:"quality,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *OutputSettings) Reset() { *m = OutputSettings{} } +func (m *OutputSettings) String() string { return proto.CompactTextString(m) } +func (*OutputSettings) ProtoMessage() {} +func (*OutputSettings) Descriptor() ([]byte, []int) { + return fileDescriptor_images_service_42a9d451721edce4, []int{5} +} +func (m *OutputSettings) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_OutputSettings.Unmarshal(m, b) +} +func (m *OutputSettings) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_OutputSettings.Marshal(b, m, deterministic) +} +func (dst *OutputSettings) XXX_Merge(src proto.Message) { + xxx_messageInfo_OutputSettings.Merge(dst, src) +} +func (m *OutputSettings) XXX_Size() int { + return xxx_messageInfo_OutputSettings.Size(m) +} +func (m *OutputSettings) XXX_DiscardUnknown() { + xxx_messageInfo_OutputSettings.DiscardUnknown(m) +} + +var xxx_messageInfo_OutputSettings proto.InternalMessageInfo + +const Default_OutputSettings_MimeType OutputSettings_MIME_TYPE = OutputSettings_PNG + +func (m *OutputSettings) GetMimeType() OutputSettings_MIME_TYPE { + if m != nil && m.MimeType != nil { + return *m.MimeType + } + return Default_OutputSettings_MimeType +} + +func (m *OutputSettings) GetQuality() int32 { + if m != nil && m.Quality != nil { + return *m.Quality + } + return 0 +} + +type ImagesTransformRequest struct { + Image *ImageData `protobuf:"bytes,1,req,name=image" json:"image,omitempty"` + Transform []*Transform `protobuf:"bytes,2,rep,name=transform" json:"transform,omitempty"` + Output *OutputSettings `protobuf:"bytes,3,req,name=output" json:"output,omitempty"` + Input *InputSettings `protobuf:"bytes,4,opt,name=input" json:"input,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ImagesTransformRequest) Reset() { *m = ImagesTransformRequest{} } +func (m *ImagesTransformRequest) String() string { return proto.CompactTextString(m) } +func (*ImagesTransformRequest) ProtoMessage() {} +func (*ImagesTransformRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_images_service_42a9d451721edce4, []int{6} +} +func (m *ImagesTransformRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ImagesTransformRequest.Unmarshal(m, b) +} +func (m *ImagesTransformRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ImagesTransformRequest.Marshal(b, m, deterministic) +} +func (dst *ImagesTransformRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ImagesTransformRequest.Merge(dst, src) +} +func (m *ImagesTransformRequest) XXX_Size() int { + return xxx_messageInfo_ImagesTransformRequest.Size(m) +} +func (m *ImagesTransformRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ImagesTransformRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ImagesTransformRequest proto.InternalMessageInfo + +func (m *ImagesTransformRequest) GetImage() *ImageData { + if m != nil { + return m.Image + } + return nil +} + +func (m *ImagesTransformRequest) GetTransform() []*Transform { + if m != nil { + return m.Transform + } + return nil +} + +func (m *ImagesTransformRequest) GetOutput() *OutputSettings { + if m != nil { + return m.Output + } + return nil +} + +func (m *ImagesTransformRequest) GetInput() *InputSettings { + if m != nil { + return m.Input + } + return nil +} + +type ImagesTransformResponse struct { + Image *ImageData `protobuf:"bytes,1,req,name=image" json:"image,omitempty"` + SourceMetadata *string `protobuf:"bytes,2,opt,name=source_metadata,json=sourceMetadata" json:"source_metadata,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ImagesTransformResponse) Reset() { *m = ImagesTransformResponse{} } +func (m *ImagesTransformResponse) String() string { return proto.CompactTextString(m) } +func (*ImagesTransformResponse) ProtoMessage() {} +func (*ImagesTransformResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_images_service_42a9d451721edce4, []int{7} +} +func (m *ImagesTransformResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ImagesTransformResponse.Unmarshal(m, b) +} +func (m *ImagesTransformResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ImagesTransformResponse.Marshal(b, m, deterministic) +} +func (dst *ImagesTransformResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ImagesTransformResponse.Merge(dst, src) +} +func (m *ImagesTransformResponse) XXX_Size() int { + return xxx_messageInfo_ImagesTransformResponse.Size(m) +} +func (m *ImagesTransformResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ImagesTransformResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ImagesTransformResponse proto.InternalMessageInfo + +func (m *ImagesTransformResponse) GetImage() *ImageData { + if m != nil { + return m.Image + } + return nil +} + +func (m *ImagesTransformResponse) GetSourceMetadata() string { + if m != nil && m.SourceMetadata != nil { + return *m.SourceMetadata + } + return "" +} + +type CompositeImageOptions struct { + SourceIndex *int32 `protobuf:"varint,1,req,name=source_index,json=sourceIndex" json:"source_index,omitempty"` + XOffset *int32 `protobuf:"varint,2,req,name=x_offset,json=xOffset" json:"x_offset,omitempty"` + YOffset *int32 `protobuf:"varint,3,req,name=y_offset,json=yOffset" json:"y_offset,omitempty"` + Opacity *float32 `protobuf:"fixed32,4,req,name=opacity" json:"opacity,omitempty"` + Anchor *CompositeImageOptions_ANCHOR `protobuf:"varint,5,req,name=anchor,enum=appengine.CompositeImageOptions_ANCHOR" json:"anchor,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CompositeImageOptions) Reset() { *m = CompositeImageOptions{} } +func (m *CompositeImageOptions) String() string { return proto.CompactTextString(m) } +func (*CompositeImageOptions) ProtoMessage() {} +func (*CompositeImageOptions) Descriptor() ([]byte, []int) { + return fileDescriptor_images_service_42a9d451721edce4, []int{8} +} +func (m *CompositeImageOptions) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CompositeImageOptions.Unmarshal(m, b) +} +func (m *CompositeImageOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CompositeImageOptions.Marshal(b, m, deterministic) +} +func (dst *CompositeImageOptions) XXX_Merge(src proto.Message) { + xxx_messageInfo_CompositeImageOptions.Merge(dst, src) +} +func (m *CompositeImageOptions) XXX_Size() int { + return xxx_messageInfo_CompositeImageOptions.Size(m) +} +func (m *CompositeImageOptions) XXX_DiscardUnknown() { + xxx_messageInfo_CompositeImageOptions.DiscardUnknown(m) +} + +var xxx_messageInfo_CompositeImageOptions proto.InternalMessageInfo + +func (m *CompositeImageOptions) GetSourceIndex() int32 { + if m != nil && m.SourceIndex != nil { + return *m.SourceIndex + } + return 0 +} + +func (m *CompositeImageOptions) GetXOffset() int32 { + if m != nil && m.XOffset != nil { + return *m.XOffset + } + return 0 +} + +func (m *CompositeImageOptions) GetYOffset() int32 { + if m != nil && m.YOffset != nil { + return *m.YOffset + } + return 0 +} + +func (m *CompositeImageOptions) GetOpacity() float32 { + if m != nil && m.Opacity != nil { + return *m.Opacity + } + return 0 +} + +func (m *CompositeImageOptions) GetAnchor() CompositeImageOptions_ANCHOR { + if m != nil && m.Anchor != nil { + return *m.Anchor + } + return CompositeImageOptions_TOP_LEFT +} + +type ImagesCanvas struct { + Width *int32 `protobuf:"varint,1,req,name=width" json:"width,omitempty"` + Height *int32 `protobuf:"varint,2,req,name=height" json:"height,omitempty"` + Output *OutputSettings `protobuf:"bytes,3,req,name=output" json:"output,omitempty"` + Color *int32 `protobuf:"varint,4,opt,name=color,def=-1" json:"color,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ImagesCanvas) Reset() { *m = ImagesCanvas{} } +func (m *ImagesCanvas) String() string { return proto.CompactTextString(m) } +func (*ImagesCanvas) ProtoMessage() {} +func (*ImagesCanvas) Descriptor() ([]byte, []int) { + return fileDescriptor_images_service_42a9d451721edce4, []int{9} +} +func (m *ImagesCanvas) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ImagesCanvas.Unmarshal(m, b) +} +func (m *ImagesCanvas) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ImagesCanvas.Marshal(b, m, deterministic) +} +func (dst *ImagesCanvas) XXX_Merge(src proto.Message) { + xxx_messageInfo_ImagesCanvas.Merge(dst, src) +} +func (m *ImagesCanvas) XXX_Size() int { + return xxx_messageInfo_ImagesCanvas.Size(m) +} +func (m *ImagesCanvas) XXX_DiscardUnknown() { + xxx_messageInfo_ImagesCanvas.DiscardUnknown(m) +} + +var xxx_messageInfo_ImagesCanvas proto.InternalMessageInfo + +const Default_ImagesCanvas_Color int32 = -1 + +func (m *ImagesCanvas) GetWidth() int32 { + if m != nil && m.Width != nil { + return *m.Width + } + return 0 +} + +func (m *ImagesCanvas) GetHeight() int32 { + if m != nil && m.Height != nil { + return *m.Height + } + return 0 +} + +func (m *ImagesCanvas) GetOutput() *OutputSettings { + if m != nil { + return m.Output + } + return nil +} + +func (m *ImagesCanvas) GetColor() int32 { + if m != nil && m.Color != nil { + return *m.Color + } + return Default_ImagesCanvas_Color +} + +type ImagesCompositeRequest struct { + Image []*ImageData `protobuf:"bytes,1,rep,name=image" json:"image,omitempty"` + Options []*CompositeImageOptions `protobuf:"bytes,2,rep,name=options" json:"options,omitempty"` + Canvas *ImagesCanvas `protobuf:"bytes,3,req,name=canvas" json:"canvas,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ImagesCompositeRequest) Reset() { *m = ImagesCompositeRequest{} } +func (m *ImagesCompositeRequest) String() string { return proto.CompactTextString(m) } +func (*ImagesCompositeRequest) ProtoMessage() {} +func (*ImagesCompositeRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_images_service_42a9d451721edce4, []int{10} +} +func (m *ImagesCompositeRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ImagesCompositeRequest.Unmarshal(m, b) +} +func (m *ImagesCompositeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ImagesCompositeRequest.Marshal(b, m, deterministic) +} +func (dst *ImagesCompositeRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ImagesCompositeRequest.Merge(dst, src) +} +func (m *ImagesCompositeRequest) XXX_Size() int { + return xxx_messageInfo_ImagesCompositeRequest.Size(m) +} +func (m *ImagesCompositeRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ImagesCompositeRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ImagesCompositeRequest proto.InternalMessageInfo + +func (m *ImagesCompositeRequest) GetImage() []*ImageData { + if m != nil { + return m.Image + } + return nil +} + +func (m *ImagesCompositeRequest) GetOptions() []*CompositeImageOptions { + if m != nil { + return m.Options + } + return nil +} + +func (m *ImagesCompositeRequest) GetCanvas() *ImagesCanvas { + if m != nil { + return m.Canvas + } + return nil +} + +type ImagesCompositeResponse struct { + Image *ImageData `protobuf:"bytes,1,req,name=image" json:"image,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ImagesCompositeResponse) Reset() { *m = ImagesCompositeResponse{} } +func (m *ImagesCompositeResponse) String() string { return proto.CompactTextString(m) } +func (*ImagesCompositeResponse) ProtoMessage() {} +func (*ImagesCompositeResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_images_service_42a9d451721edce4, []int{11} +} +func (m *ImagesCompositeResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ImagesCompositeResponse.Unmarshal(m, b) +} +func (m *ImagesCompositeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ImagesCompositeResponse.Marshal(b, m, deterministic) +} +func (dst *ImagesCompositeResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ImagesCompositeResponse.Merge(dst, src) +} +func (m *ImagesCompositeResponse) XXX_Size() int { + return xxx_messageInfo_ImagesCompositeResponse.Size(m) +} +func (m *ImagesCompositeResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ImagesCompositeResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ImagesCompositeResponse proto.InternalMessageInfo + +func (m *ImagesCompositeResponse) GetImage() *ImageData { + if m != nil { + return m.Image + } + return nil +} + +type ImagesHistogramRequest struct { + Image *ImageData `protobuf:"bytes,1,req,name=image" json:"image,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ImagesHistogramRequest) Reset() { *m = ImagesHistogramRequest{} } +func (m *ImagesHistogramRequest) String() string { return proto.CompactTextString(m) } +func (*ImagesHistogramRequest) ProtoMessage() {} +func (*ImagesHistogramRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_images_service_42a9d451721edce4, []int{12} +} +func (m *ImagesHistogramRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ImagesHistogramRequest.Unmarshal(m, b) +} +func (m *ImagesHistogramRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ImagesHistogramRequest.Marshal(b, m, deterministic) +} +func (dst *ImagesHistogramRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ImagesHistogramRequest.Merge(dst, src) +} +func (m *ImagesHistogramRequest) XXX_Size() int { + return xxx_messageInfo_ImagesHistogramRequest.Size(m) +} +func (m *ImagesHistogramRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ImagesHistogramRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ImagesHistogramRequest proto.InternalMessageInfo + +func (m *ImagesHistogramRequest) GetImage() *ImageData { + if m != nil { + return m.Image + } + return nil +} + +type ImagesHistogram struct { + Red []int32 `protobuf:"varint,1,rep,name=red" json:"red,omitempty"` + Green []int32 `protobuf:"varint,2,rep,name=green" json:"green,omitempty"` + Blue []int32 `protobuf:"varint,3,rep,name=blue" json:"blue,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ImagesHistogram) Reset() { *m = ImagesHistogram{} } +func (m *ImagesHistogram) String() string { return proto.CompactTextString(m) } +func (*ImagesHistogram) ProtoMessage() {} +func (*ImagesHistogram) Descriptor() ([]byte, []int) { + return fileDescriptor_images_service_42a9d451721edce4, []int{13} +} +func (m *ImagesHistogram) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ImagesHistogram.Unmarshal(m, b) +} +func (m *ImagesHistogram) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ImagesHistogram.Marshal(b, m, deterministic) +} +func (dst *ImagesHistogram) XXX_Merge(src proto.Message) { + xxx_messageInfo_ImagesHistogram.Merge(dst, src) +} +func (m *ImagesHistogram) XXX_Size() int { + return xxx_messageInfo_ImagesHistogram.Size(m) +} +func (m *ImagesHistogram) XXX_DiscardUnknown() { + xxx_messageInfo_ImagesHistogram.DiscardUnknown(m) +} + +var xxx_messageInfo_ImagesHistogram proto.InternalMessageInfo + +func (m *ImagesHistogram) GetRed() []int32 { + if m != nil { + return m.Red + } + return nil +} + +func (m *ImagesHistogram) GetGreen() []int32 { + if m != nil { + return m.Green + } + return nil +} + +func (m *ImagesHistogram) GetBlue() []int32 { + if m != nil { + return m.Blue + } + return nil +} + +type ImagesHistogramResponse struct { + Histogram *ImagesHistogram `protobuf:"bytes,1,req,name=histogram" json:"histogram,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ImagesHistogramResponse) Reset() { *m = ImagesHistogramResponse{} } +func (m *ImagesHistogramResponse) String() string { return proto.CompactTextString(m) } +func (*ImagesHistogramResponse) ProtoMessage() {} +func (*ImagesHistogramResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_images_service_42a9d451721edce4, []int{14} +} +func (m *ImagesHistogramResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ImagesHistogramResponse.Unmarshal(m, b) +} +func (m *ImagesHistogramResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ImagesHistogramResponse.Marshal(b, m, deterministic) +} +func (dst *ImagesHistogramResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ImagesHistogramResponse.Merge(dst, src) +} +func (m *ImagesHistogramResponse) XXX_Size() int { + return xxx_messageInfo_ImagesHistogramResponse.Size(m) +} +func (m *ImagesHistogramResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ImagesHistogramResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ImagesHistogramResponse proto.InternalMessageInfo + +func (m *ImagesHistogramResponse) GetHistogram() *ImagesHistogram { + if m != nil { + return m.Histogram + } + return nil +} + +type ImagesGetUrlBaseRequest struct { + BlobKey *string `protobuf:"bytes,1,req,name=blob_key,json=blobKey" json:"blob_key,omitempty"` + CreateSecureUrl *bool `protobuf:"varint,2,opt,name=create_secure_url,json=createSecureUrl,def=0" json:"create_secure_url,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ImagesGetUrlBaseRequest) Reset() { *m = ImagesGetUrlBaseRequest{} } +func (m *ImagesGetUrlBaseRequest) String() string { return proto.CompactTextString(m) } +func (*ImagesGetUrlBaseRequest) ProtoMessage() {} +func (*ImagesGetUrlBaseRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_images_service_42a9d451721edce4, []int{15} +} +func (m *ImagesGetUrlBaseRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ImagesGetUrlBaseRequest.Unmarshal(m, b) +} +func (m *ImagesGetUrlBaseRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ImagesGetUrlBaseRequest.Marshal(b, m, deterministic) +} +func (dst *ImagesGetUrlBaseRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ImagesGetUrlBaseRequest.Merge(dst, src) +} +func (m *ImagesGetUrlBaseRequest) XXX_Size() int { + return xxx_messageInfo_ImagesGetUrlBaseRequest.Size(m) +} +func (m *ImagesGetUrlBaseRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ImagesGetUrlBaseRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ImagesGetUrlBaseRequest proto.InternalMessageInfo + +const Default_ImagesGetUrlBaseRequest_CreateSecureUrl bool = false + +func (m *ImagesGetUrlBaseRequest) GetBlobKey() string { + if m != nil && m.BlobKey != nil { + return *m.BlobKey + } + return "" +} + +func (m *ImagesGetUrlBaseRequest) GetCreateSecureUrl() bool { + if m != nil && m.CreateSecureUrl != nil { + return *m.CreateSecureUrl + } + return Default_ImagesGetUrlBaseRequest_CreateSecureUrl +} + +type ImagesGetUrlBaseResponse struct { + Url *string `protobuf:"bytes,1,req,name=url" json:"url,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ImagesGetUrlBaseResponse) Reset() { *m = ImagesGetUrlBaseResponse{} } +func (m *ImagesGetUrlBaseResponse) String() string { return proto.CompactTextString(m) } +func (*ImagesGetUrlBaseResponse) ProtoMessage() {} +func (*ImagesGetUrlBaseResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_images_service_42a9d451721edce4, []int{16} +} +func (m *ImagesGetUrlBaseResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ImagesGetUrlBaseResponse.Unmarshal(m, b) +} +func (m *ImagesGetUrlBaseResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ImagesGetUrlBaseResponse.Marshal(b, m, deterministic) +} +func (dst *ImagesGetUrlBaseResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ImagesGetUrlBaseResponse.Merge(dst, src) +} +func (m *ImagesGetUrlBaseResponse) XXX_Size() int { + return xxx_messageInfo_ImagesGetUrlBaseResponse.Size(m) +} +func (m *ImagesGetUrlBaseResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ImagesGetUrlBaseResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ImagesGetUrlBaseResponse proto.InternalMessageInfo + +func (m *ImagesGetUrlBaseResponse) GetUrl() string { + if m != nil && m.Url != nil { + return *m.Url + } + return "" +} + +type ImagesDeleteUrlBaseRequest struct { + BlobKey *string `protobuf:"bytes,1,req,name=blob_key,json=blobKey" json:"blob_key,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ImagesDeleteUrlBaseRequest) Reset() { *m = ImagesDeleteUrlBaseRequest{} } +func (m *ImagesDeleteUrlBaseRequest) String() string { return proto.CompactTextString(m) } +func (*ImagesDeleteUrlBaseRequest) ProtoMessage() {} +func (*ImagesDeleteUrlBaseRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_images_service_42a9d451721edce4, []int{17} +} +func (m *ImagesDeleteUrlBaseRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ImagesDeleteUrlBaseRequest.Unmarshal(m, b) +} +func (m *ImagesDeleteUrlBaseRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ImagesDeleteUrlBaseRequest.Marshal(b, m, deterministic) +} +func (dst *ImagesDeleteUrlBaseRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ImagesDeleteUrlBaseRequest.Merge(dst, src) +} +func (m *ImagesDeleteUrlBaseRequest) XXX_Size() int { + return xxx_messageInfo_ImagesDeleteUrlBaseRequest.Size(m) +} +func (m *ImagesDeleteUrlBaseRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ImagesDeleteUrlBaseRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ImagesDeleteUrlBaseRequest proto.InternalMessageInfo + +func (m *ImagesDeleteUrlBaseRequest) GetBlobKey() string { + if m != nil && m.BlobKey != nil { + return *m.BlobKey + } + return "" +} + +type ImagesDeleteUrlBaseResponse struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ImagesDeleteUrlBaseResponse) Reset() { *m = ImagesDeleteUrlBaseResponse{} } +func (m *ImagesDeleteUrlBaseResponse) String() string { return proto.CompactTextString(m) } +func (*ImagesDeleteUrlBaseResponse) ProtoMessage() {} +func (*ImagesDeleteUrlBaseResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_images_service_42a9d451721edce4, []int{18} +} +func (m *ImagesDeleteUrlBaseResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ImagesDeleteUrlBaseResponse.Unmarshal(m, b) +} +func (m *ImagesDeleteUrlBaseResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ImagesDeleteUrlBaseResponse.Marshal(b, m, deterministic) +} +func (dst *ImagesDeleteUrlBaseResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ImagesDeleteUrlBaseResponse.Merge(dst, src) +} +func (m *ImagesDeleteUrlBaseResponse) XXX_Size() int { + return xxx_messageInfo_ImagesDeleteUrlBaseResponse.Size(m) +} +func (m *ImagesDeleteUrlBaseResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ImagesDeleteUrlBaseResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ImagesDeleteUrlBaseResponse proto.InternalMessageInfo + +func init() { + proto.RegisterType((*ImagesServiceError)(nil), "appengine.ImagesServiceError") + proto.RegisterType((*ImagesServiceTransform)(nil), "appengine.ImagesServiceTransform") + proto.RegisterType((*Transform)(nil), "appengine.Transform") + proto.RegisterType((*ImageData)(nil), "appengine.ImageData") + proto.RegisterType((*InputSettings)(nil), "appengine.InputSettings") + proto.RegisterType((*OutputSettings)(nil), "appengine.OutputSettings") + proto.RegisterType((*ImagesTransformRequest)(nil), "appengine.ImagesTransformRequest") + proto.RegisterType((*ImagesTransformResponse)(nil), "appengine.ImagesTransformResponse") + proto.RegisterType((*CompositeImageOptions)(nil), "appengine.CompositeImageOptions") + proto.RegisterType((*ImagesCanvas)(nil), "appengine.ImagesCanvas") + proto.RegisterType((*ImagesCompositeRequest)(nil), "appengine.ImagesCompositeRequest") + proto.RegisterType((*ImagesCompositeResponse)(nil), "appengine.ImagesCompositeResponse") + proto.RegisterType((*ImagesHistogramRequest)(nil), "appengine.ImagesHistogramRequest") + proto.RegisterType((*ImagesHistogram)(nil), "appengine.ImagesHistogram") + proto.RegisterType((*ImagesHistogramResponse)(nil), "appengine.ImagesHistogramResponse") + proto.RegisterType((*ImagesGetUrlBaseRequest)(nil), "appengine.ImagesGetUrlBaseRequest") + proto.RegisterType((*ImagesGetUrlBaseResponse)(nil), "appengine.ImagesGetUrlBaseResponse") + proto.RegisterType((*ImagesDeleteUrlBaseRequest)(nil), "appengine.ImagesDeleteUrlBaseRequest") + proto.RegisterType((*ImagesDeleteUrlBaseResponse)(nil), "appengine.ImagesDeleteUrlBaseResponse") +} + +func init() { + proto.RegisterFile("google.golang.org/appengine/internal/image/images_service.proto", fileDescriptor_images_service_42a9d451721edce4) +} + +var fileDescriptor_images_service_42a9d451721edce4 = []byte{ + // 1460 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x56, 0xdd, 0x6e, 0xe3, 0xc6, + 0x15, 0x5e, 0x52, 0xff, 0xc7, 0xb2, 0xcc, 0x9d, 0xec, 0x0f, 0x77, 0x93, 0xa2, 0x0a, 0x83, 0xc5, + 0x1a, 0x41, 0x2a, 0xaf, 0x8d, 0x16, 0x2d, 0x7c, 0x93, 0xea, 0x87, 0x92, 0x99, 0x95, 0x44, 0x75, + 0x44, 0xa7, 0xeb, 0xbd, 0x19, 0xd0, 0xf2, 0x48, 0x26, 0x4a, 0x73, 0x98, 0xe1, 0xc8, 0xb1, 0x7a, + 0x51, 0xf4, 0xa6, 0x17, 0x05, 0xfa, 0x06, 0x7d, 0x8a, 0xbe, 0x45, 0x81, 0xbe, 0x41, 0xfb, 0x32, + 0xc5, 0x0c, 0x49, 0x99, 0xf6, 0x3a, 0x4d, 0xb3, 0x37, 0xc2, 0xcc, 0x39, 0xdf, 0xf9, 0x9d, 0x8f, + 0xe7, 0x08, 0xbe, 0x5e, 0x31, 0xb6, 0x0a, 0x69, 0x67, 0xc5, 0x42, 0x3f, 0x5a, 0x75, 0x18, 0x5f, + 0x1d, 0xf8, 0x71, 0x4c, 0xa3, 0x55, 0x10, 0xd1, 0x83, 0x20, 0x12, 0x94, 0x47, 0x7e, 0x78, 0x10, + 0x5c, 0xf9, 0x2b, 0x9a, 0xfe, 0x26, 0x24, 0xa1, 0xfc, 0x3a, 0x58, 0xd0, 0x4e, 0xcc, 0x99, 0x60, + 0xa8, 0xb1, 0x85, 0x5b, 0xff, 0xd4, 0x00, 0x39, 0x0a, 0x33, 0x4f, 0x21, 0x36, 0xe7, 0x8c, 0x5b, + 0xff, 0xd0, 0xa0, 0xa1, 0x4e, 0x7d, 0x76, 0x41, 0xd1, 0x53, 0x78, 0x7c, 0x3a, 0x9d, 0xcf, 0xec, + 0xbe, 0x33, 0x74, 0xec, 0x01, 0xb1, 0x31, 0x76, 0xb1, 0xa1, 0xa1, 0x67, 0x80, 0x7a, 0xdd, 0x01, + 0xf1, 0x70, 0x77, 0x3a, 0x1f, 0xba, 0x78, 0x42, 0x06, 0x5d, 0xaf, 0x6b, 0xe8, 0x68, 0x17, 0x1a, + 0x53, 0xd7, 0x23, 0xce, 0xa4, 0x3b, 0xb2, 0x8d, 0x12, 0x42, 0xd0, 0x92, 0x30, 0x75, 0x4d, 0x21, + 0x65, 0xf4, 0x09, 0xec, 0xa5, 0x77, 0xcf, 0x75, 0xc9, 0xb8, 0x8b, 0x47, 0xb6, 0x51, 0x41, 0x4f, + 0xc0, 0x70, 0xa6, 0xdf, 0x76, 0xc7, 0xce, 0x80, 0xf4, 0xc6, 0x6e, 0x8f, 0xbc, 0xb5, 0xcf, 0x8c, + 0x2a, 0x7a, 0x0c, 0xbb, 0xdd, 0x7e, 0xdf, 0x9e, 0xcf, 0xc9, 0xc0, 0x9e, 0x3a, 0xf6, 0xc0, 0xa8, + 0x49, 0xa0, 0xdb, 0xfb, 0xc6, 0xee, 0x7b, 0x44, 0xc6, 0x19, 0xba, 0xa7, 0xd3, 0x81, 0x51, 0xb7, + 0xfe, 0xac, 0xc1, 0xb3, 0x3b, 0xa5, 0x78, 0xdc, 0x8f, 0x92, 0x25, 0xe3, 0x57, 0xd6, 0x12, 0xca, + 0xde, 0x26, 0xa6, 0x08, 0xa0, 0x8a, 0xed, 0xb9, 0xf3, 0xde, 0x36, 0x34, 0x75, 0x76, 0xbd, 0xae, + 0x67, 0x1b, 0xba, 0x4c, 0xe7, 0xc4, 0xc5, 0xce, 0x7b, 0x77, 0xea, 0x75, 0xc7, 0x64, 0x38, 0x76, + 0x66, 0x46, 0x49, 0x06, 0xfe, 0xd6, 0xc6, 0x9e, 0xd3, 0xcf, 0x45, 0x65, 0x54, 0x87, 0x72, 0x1f, + 0xbb, 0xb3, 0x2c, 0xd7, 0x09, 0x19, 0xda, 0xf6, 0xd8, 0x99, 0x8e, 0xc8, 0xf8, 0xb4, 0xff, 0xf6, + 0xcc, 0xa8, 0x5a, 0x7f, 0x2b, 0x43, 0x63, 0x1b, 0x15, 0x3d, 0x81, 0xca, 0xf7, 0xc1, 0x85, 0xb8, + 0x34, 0xb5, 0xb6, 0xb6, 0x5f, 0xc1, 0xe9, 0x05, 0x3d, 0x83, 0xea, 0x25, 0x0d, 0x56, 0x97, 0xc2, + 0xd4, 0x95, 0x38, 0xbb, 0xa1, 0x57, 0xb0, 0xb3, 0xe0, 0x2c, 0x26, 0x82, 0x91, 0x65, 0x20, 0xcc, + 0x9d, 0xb6, 0xb6, 0x5f, 0x3f, 0xae, 0x2c, 0xfd, 0x30, 0xa1, 0xb8, 0x21, 0x35, 0x1e, 0x1b, 0x06, + 0x02, 0xbd, 0x86, 0x5d, 0x05, 0x63, 0xcb, 0x65, 0x42, 0x05, 0xb9, 0x31, 0x9b, 0x6d, 0x6d, 0x5f, + 0x3f, 0x2e, 0xbd, 0xe9, 0xfc, 0x0a, 0x2b, 0x07, 0xae, 0x52, 0xbc, 0xbb, 0x0f, 0xdc, 0x98, 0xbb, + 0x0f, 0x02, 0xcf, 0xd0, 0x0b, 0xa8, 0x72, 0x26, 0x7c, 0x41, 0xcd, 0x92, 0x4c, 0xe8, 0x58, 0x7b, + 0x83, 0x33, 0x01, 0xea, 0xc0, 0xde, 0x25, 0xe3, 0xc1, 0x1f, 0x59, 0x24, 0xfc, 0x90, 0x2c, 0xc3, + 0x20, 0x36, 0xcb, 0xc5, 0xbc, 0x5a, 0xb7, 0xda, 0x61, 0x18, 0xc4, 0xe8, 0x4b, 0xd8, 0xbd, 0xa6, + 0x5c, 0x04, 0x8b, 0x1c, 0x5d, 0x29, 0xa2, 0x9b, 0xb9, 0x4e, 0x61, 0x3f, 0xcf, 0xea, 0x0d, 0xe9, + 0x52, 0x96, 0x51, 0x55, 0xd9, 0x69, 0x6f, 0xd2, 0x5a, 0xc7, 0x74, 0x29, 0xde, 0xa1, 0x9f, 0x03, + 0x64, 0x2d, 0x89, 0xc9, 0xc6, 0xac, 0xe5, 0x88, 0x7a, 0xda, 0x8d, 0xf8, 0x0c, 0x7d, 0x01, 0x4d, + 0x05, 0xe0, 0xb2, 0x83, 0xe4, 0xc6, 0xac, 0xa7, 0x90, 0x43, 0xac, 0xec, 0xb0, 0x94, 0xbe, 0x43, + 0xaf, 0xb2, 0x46, 0x9c, 0x33, 0x21, 0xd8, 0x15, 0xd9, 0x98, 0x8d, 0x1c, 0xa5, 0x12, 0xe8, 0x29, + 0xf1, 0x19, 0x7a, 0x05, 0xe0, 0xaf, 0x05, 0x0b, 0xe9, 0x35, 0x0d, 0x13, 0x13, 0x8a, 0x89, 0x17, + 0x14, 0xb2, 0x44, 0x3f, 0x0c, 0xd9, 0xf7, 0x24, 0x11, 0x9c, 0x8a, 0xc5, 0xa5, 0xd9, 0xba, 0x53, + 0xa2, 0xd2, 0xcd, 0x53, 0x95, 0xc5, 0xa1, 0xa1, 0x08, 0x39, 0xf0, 0x85, 0x8f, 0x3e, 0x83, 0xda, + 0x82, 0x45, 0x82, 0x46, 0xc2, 0xd4, 0xda, 0xfa, 0x7e, 0xb3, 0xa7, 0xd7, 0x35, 0x9c, 0x8b, 0xd0, + 0x0b, 0xa8, 0x9f, 0x87, 0xec, 0x9c, 0xfc, 0x81, 0x6e, 0x14, 0x2f, 0x1a, 0xb8, 0x26, 0xef, 0x6f, + 0xe9, 0xe6, 0x96, 0x46, 0xa5, 0x87, 0x69, 0x54, 0x2e, 0xd2, 0xc8, 0xfa, 0xb7, 0x0e, 0xbb, 0x4e, + 0x14, 0xaf, 0xc5, 0x9c, 0x0a, 0x11, 0x44, 0xab, 0x04, 0xfd, 0x45, 0x03, 0x73, 0xc1, 0x38, 0xa7, + 0x0b, 0x41, 0xe8, 0x4d, 0xb0, 0x24, 0x8c, 0x07, 0x34, 0x12, 0xbe, 0x08, 0x58, 0xa4, 0xa8, 0xd9, + 0x3a, 0xfa, 0x65, 0x67, 0x3b, 0x11, 0x3a, 0x77, 0x8c, 0x3b, 0x2e, 0x76, 0xec, 0xa9, 0xd7, 0xf5, + 0x1c, 0x77, 0x4a, 0xfa, 0x2e, 0xc6, 0x76, 0x5f, 0x1d, 0xbd, 0xb3, 0x99, 0x7d, 0xfc, 0xf4, 0x74, + 0xda, 0x3f, 0xe9, 0x4e, 0x47, 0xf6, 0x80, 0x14, 0x60, 0xf8, 0x59, 0x16, 0xcc, 0xbe, 0x09, 0x96, + 0xee, 0x6d, 0x28, 0xf4, 0x15, 0xb4, 0x62, 0x9f, 0x27, 0x94, 0x5c, 0x51, 0xe1, 0x5f, 0xf8, 0xc2, + 0x57, 0x85, 0x6e, 0x5b, 0xb7, 0xab, 0x94, 0x93, 0x4c, 0x87, 0x7e, 0x0b, 0x9f, 0x09, 0xf9, 0x25, + 0xc5, 0x3e, 0xa7, 0x91, 0x20, 0xc9, 0xfa, 0x3c, 0x11, 0x81, 0x58, 0x4b, 0x4f, 0x84, 0xaf, 0xce, + 0xb3, 0x66, 0xbc, 0x2c, 0x60, 0xe6, 0x05, 0x08, 0x5e, 0x9d, 0x5b, 0xbf, 0x83, 0x4f, 0xff, 0x47, + 0xf6, 0xe8, 0x05, 0x3c, 0x9c, 0xbf, 0xf1, 0x08, 0x3d, 0x87, 0x4f, 0x32, 0xf4, 0x1d, 0x85, 0x66, + 0xfd, 0x5d, 0x83, 0x96, 0xbb, 0x16, 0xc5, 0xee, 0xda, 0xd0, 0xb8, 0x0a, 0xae, 0x28, 0x11, 0x9b, + 0x98, 0x66, 0xdd, 0xfc, 0xa2, 0xd0, 0xcd, 0xbb, 0xe8, 0xce, 0xc4, 0x99, 0xd8, 0x69, 0xf3, 0x4a, + 0xb3, 0xe9, 0x08, 0xd7, 0xa5, 0xa9, 0x9a, 0x4c, 0x26, 0xd4, 0xbe, 0x5b, 0xfb, 0x61, 0x20, 0x36, + 0xd9, 0x58, 0xc8, 0xaf, 0xd6, 0x3e, 0x34, 0xb6, 0x56, 0xa8, 0x06, 0xd2, 0xce, 0x78, 0x24, 0x27, + 0xd1, 0x37, 0x33, 0x7b, 0x64, 0x68, 0xf2, 0xf4, 0x7b, 0xbb, 0x37, 0x33, 0x74, 0xeb, 0x3f, 0xdb, + 0x01, 0xb8, 0x9d, 0x41, 0x98, 0x7e, 0xb7, 0xa6, 0x89, 0x40, 0x5f, 0x42, 0x45, 0x6d, 0x02, 0x45, + 0xbd, 0x9d, 0xa3, 0x27, 0xc5, 0xf7, 0xce, 0x19, 0x8a, 0x53, 0x08, 0x3a, 0x82, 0x86, 0xc8, 0xed, + 0x4d, 0xbd, 0x5d, 0xba, 0x87, 0xbf, 0xf5, 0x7d, 0x0b, 0x43, 0x87, 0x50, 0x65, 0xaa, 0x52, 0xb3, + 0xa4, 0x02, 0xbc, 0xf8, 0xc1, 0x16, 0xe0, 0x0c, 0x88, 0x3a, 0x50, 0x09, 0x24, 0xd5, 0x14, 0x7f, + 0x77, 0x8e, 0xcc, 0x1f, 0xa2, 0x20, 0x4e, 0x61, 0x56, 0x04, 0xcf, 0x3f, 0x28, 0x2e, 0x89, 0x59, + 0x94, 0xd0, 0x9f, 0x54, 0xdd, 0x6b, 0xd8, 0x4b, 0xd8, 0x9a, 0x2f, 0xee, 0xd1, 0xb0, 0x81, 0x5b, + 0xa9, 0x38, 0x27, 0xa0, 0xf5, 0x2f, 0x1d, 0x9e, 0xf6, 0xd9, 0x55, 0xcc, 0x92, 0x40, 0x50, 0xe5, + 0xc6, 0x8d, 0x25, 0xb5, 0x12, 0xf4, 0x39, 0x34, 0x33, 0x17, 0x41, 0x74, 0x41, 0x6f, 0x54, 0xd4, + 0x0a, 0xde, 0x49, 0x65, 0x8e, 0x14, 0xc9, 0xcf, 0xf9, 0x26, 0x9b, 0xbc, 0xa6, 0xae, 0xd4, 0xb5, + 0x9b, 0x74, 0xde, 0x4a, 0xd5, 0x26, 0x57, 0x95, 0x52, 0xd5, 0x26, 0x53, 0x99, 0x50, 0x63, 0xb1, + 0xbf, 0x90, 0x24, 0x28, 0xb7, 0xf5, 0x7d, 0x1d, 0xe7, 0x57, 0xf4, 0x35, 0x54, 0xfd, 0x68, 0x71, + 0xc9, 0xb8, 0x59, 0x69, 0xeb, 0xfb, 0xad, 0xa3, 0xd7, 0x85, 0x12, 0x1f, 0x4c, 0xb2, 0xd3, 0x9d, + 0xf6, 0x4f, 0x5c, 0x8c, 0x33, 0x33, 0xeb, 0x4f, 0x50, 0x4d, 0x25, 0xa8, 0x09, 0x75, 0xcf, 0x9d, + 0x91, 0xb1, 0x3d, 0xf4, 0x8c, 0x47, 0x92, 0x50, 0x9e, 0x3b, 0x33, 0x34, 0xb9, 0xb4, 0xa5, 0x18, + 0x3b, 0xa3, 0x13, 0xcf, 0xd0, 0x25, 0xab, 0x14, 0xa2, 0x24, 0xf7, 0x64, 0xdf, 0x9e, 0x7a, 0x36, + 0x36, 0xca, 0xa8, 0x01, 0x95, 0x14, 0x50, 0x41, 0x7b, 0xb0, 0xd3, 0x73, 0x3d, 0xcf, 0x9d, 0xa4, + 0x9e, 0xaa, 0x12, 0x97, 0x0a, 0x8c, 0x1a, 0x32, 0xa0, 0x99, 0x29, 0x53, 0x78, 0xdd, 0xfa, 0xab, + 0x06, 0xcd, 0xf4, 0xf9, 0xfa, 0x7e, 0x74, 0xed, 0x27, 0xc5, 0xe5, 0xa8, 0x3f, 0xbc, 0x1c, 0xf5, + 0xc2, 0x72, 0xfc, 0x08, 0x7e, 0x99, 0x50, 0x59, 0xb0, 0x90, 0xf1, 0x74, 0x3e, 0x1e, 0xeb, 0xbf, + 0x38, 0xc4, 0xa9, 0x40, 0xfe, 0xb9, 0xc9, 0xbe, 0x93, 0x6d, 0xeb, 0x1e, 0xf8, 0x4e, 0x4a, 0x3f, + 0xc6, 0xa4, 0x63, 0xf9, 0x5a, 0xaa, 0xd9, 0xd9, 0x57, 0xd2, 0xfe, 0xb1, 0x47, 0xc1, 0xb9, 0x01, + 0x3a, 0x80, 0xea, 0x42, 0xf5, 0x21, 0xab, 0xe7, 0xf9, 0xfd, 0x40, 0x59, 0x9b, 0x70, 0x06, 0xb3, + 0xec, 0x9c, 0xfd, 0x85, 0x94, 0x7f, 0x3a, 0xfb, 0xad, 0x41, 0x5e, 0xf9, 0x49, 0x90, 0x08, 0xb6, + 0xe2, 0xfe, 0xc7, 0x4c, 0x08, 0x6b, 0x02, 0x7b, 0xf7, 0xbc, 0x20, 0x03, 0x4a, 0x9c, 0x5e, 0xa8, + 0xb6, 0x55, 0xb0, 0x3c, 0xca, 0x07, 0x5e, 0x71, 0x4a, 0x23, 0xd5, 0x9c, 0x0a, 0x4e, 0x2f, 0x08, + 0x41, 0xf9, 0x3c, 0x5c, 0xcb, 0xbf, 0x1a, 0x52, 0xa8, 0xce, 0xd6, 0x3c, 0xaf, 0xad, 0x90, 0x54, + 0x56, 0xdb, 0x6f, 0xa0, 0x71, 0x99, 0x0b, 0xb3, 0xcc, 0x5e, 0x7e, 0xd0, 0xaa, 0x5b, 0xb3, 0x5b, + 0xb0, 0xb5, 0xca, 0x9d, 0x8e, 0xa8, 0x38, 0xe5, 0x61, 0xcf, 0x4f, 0xb6, 0x8f, 0x5c, 0xdc, 0xb5, + 0xd2, 0x67, 0x61, 0xd7, 0x1e, 0xc2, 0xe3, 0x05, 0xa7, 0xbe, 0xa0, 0x24, 0xa1, 0x8b, 0x35, 0xa7, + 0x64, 0xcd, 0xc3, 0xbb, 0x6b, 0x6a, 0x2f, 0xd5, 0xcf, 0x95, 0xfa, 0x94, 0x87, 0xd6, 0x57, 0x60, + 0x7e, 0x18, 0x28, 0x4b, 0xdf, 0x80, 0x92, 0x74, 0x90, 0x06, 0x91, 0x47, 0xeb, 0xd7, 0xf0, 0x32, + 0x45, 0x0f, 0x68, 0x48, 0x05, 0xfd, 0xbf, 0x33, 0xb3, 0x7e, 0x06, 0x9f, 0x3e, 0x68, 0x98, 0x46, + 0xea, 0xd5, 0xde, 0xa7, 0x6f, 0xf3, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xfa, 0x74, 0x30, 0x89, + 0x1d, 0x0c, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/appengine/internal/image/images_service.proto b/vendor/google.golang.org/appengine/internal/image/images_service.proto new file mode 100644 index 000000000..f0d2ed5d3 --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/image/images_service.proto @@ -0,0 +1,162 @@ +syntax = "proto2"; +option go_package = "image"; + +package appengine; + +message ImagesServiceError { + enum ErrorCode { + UNSPECIFIED_ERROR = 1; + BAD_TRANSFORM_DATA = 2; + NOT_IMAGE = 3; + BAD_IMAGE_DATA = 4; + IMAGE_TOO_LARGE = 5; + INVALID_BLOB_KEY = 6; + ACCESS_DENIED = 7; + OBJECT_NOT_FOUND = 8; + } +} + +message ImagesServiceTransform { + enum Type { + RESIZE = 1; + ROTATE = 2; + HORIZONTAL_FLIP = 3; + VERTICAL_FLIP = 4; + CROP = 5; + IM_FEELING_LUCKY = 6; + } +} + +message Transform { + optional int32 width = 1; + optional int32 height = 2; + optional bool crop_to_fit = 11 [default = false]; + optional float crop_offset_x = 12 [default = 0.5]; + optional float crop_offset_y = 13 [default = 0.5]; + + optional int32 rotate = 3 [default = 0]; + + optional bool horizontal_flip = 4 [default = false]; + + optional bool vertical_flip = 5 [default = false]; + + optional float crop_left_x = 6 [default = 0.0]; + optional float crop_top_y = 7 [default = 0.0]; + optional float crop_right_x = 8 [default = 1.0]; + optional float crop_bottom_y = 9 [default = 1.0]; + + optional bool autolevels = 10 [default = false]; + + optional bool allow_stretch = 14 [default = false]; +} + +message ImageData { + required bytes content = 1 [ctype=CORD]; + optional string blob_key = 2; + + optional int32 width = 3; + optional int32 height = 4; +} + +message InputSettings { + enum ORIENTATION_CORRECTION_TYPE { + UNCHANGED_ORIENTATION = 0; + CORRECT_ORIENTATION = 1; + } + optional ORIENTATION_CORRECTION_TYPE correct_exif_orientation = 1 + [default=UNCHANGED_ORIENTATION]; + optional bool parse_metadata = 2 [default=false]; + optional int32 transparent_substitution_rgb = 3; +} + +message OutputSettings { + enum MIME_TYPE { + PNG = 0; + JPEG = 1; + WEBP = 2; + } + + optional MIME_TYPE mime_type = 1 [default=PNG]; + optional int32 quality = 2; +} + +message ImagesTransformRequest { + required ImageData image = 1; + repeated Transform transform = 2; + required OutputSettings output = 3; + optional InputSettings input = 4; +} + +message ImagesTransformResponse { + required ImageData image = 1; + optional string source_metadata = 2; +} + +message CompositeImageOptions { + required int32 source_index = 1; + required int32 x_offset = 2; + required int32 y_offset = 3; + required float opacity = 4; + + enum ANCHOR { + TOP_LEFT = 0; + TOP = 1; + TOP_RIGHT = 2; + LEFT = 3; + CENTER = 4; + RIGHT = 5; + BOTTOM_LEFT = 6; + BOTTOM = 7; + BOTTOM_RIGHT = 8; + } + + required ANCHOR anchor = 5; +} + +message ImagesCanvas { + required int32 width = 1; + required int32 height = 2; + required OutputSettings output = 3; + optional int32 color = 4 [default=-1]; +} + +message ImagesCompositeRequest { + repeated ImageData image = 1; + repeated CompositeImageOptions options = 2; + required ImagesCanvas canvas = 3; +} + +message ImagesCompositeResponse { + required ImageData image = 1; +} + +message ImagesHistogramRequest { + required ImageData image = 1; +} + +message ImagesHistogram { + repeated int32 red = 1; + repeated int32 green = 2; + repeated int32 blue = 3; +} + +message ImagesHistogramResponse { + required ImagesHistogram histogram = 1; +} + +message ImagesGetUrlBaseRequest { + required string blob_key = 1; + + optional bool create_secure_url = 2 [default = false]; +} + +message ImagesGetUrlBaseResponse { + required string url = 1; +} + +message ImagesDeleteUrlBaseRequest { + required string blob_key = 1; +} + +message ImagesDeleteUrlBaseResponse { +} diff --git a/vendor/google.golang.org/appengine/internal/internal.go b/vendor/google.golang.org/appengine/internal/internal.go new file mode 100644 index 000000000..051ea3980 --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/internal.go @@ -0,0 +1,110 @@ +// Copyright 2011 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +// Package internal provides support for package appengine. +// +// Programs should not use this package directly. Its API is not stable. +// Use packages appengine and appengine/* instead. +package internal + +import ( + "fmt" + + "github.com/golang/protobuf/proto" + + remotepb "google.golang.org/appengine/internal/remote_api" +) + +// errorCodeMaps is a map of service name to the error code map for the service. +var errorCodeMaps = make(map[string]map[int32]string) + +// RegisterErrorCodeMap is called from API implementations to register their +// error code map. This should only be called from init functions. +func RegisterErrorCodeMap(service string, m map[int32]string) { + errorCodeMaps[service] = m +} + +type timeoutCodeKey struct { + service string + code int32 +} + +// timeoutCodes is the set of service+code pairs that represent timeouts. +var timeoutCodes = make(map[timeoutCodeKey]bool) + +func RegisterTimeoutErrorCode(service string, code int32) { + timeoutCodes[timeoutCodeKey{service, code}] = true +} + +// APIError is the type returned by appengine.Context's Call method +// when an API call fails in an API-specific way. This may be, for instance, +// a taskqueue API call failing with TaskQueueServiceError::UNKNOWN_QUEUE. +type APIError struct { + Service string + Detail string + Code int32 // API-specific error code +} + +func (e *APIError) Error() string { + if e.Code == 0 { + if e.Detail == "" { + return "APIError " + } + return e.Detail + } + s := fmt.Sprintf("API error %d", e.Code) + if m, ok := errorCodeMaps[e.Service]; ok { + s += " (" + e.Service + ": " + m[e.Code] + ")" + } else { + // Shouldn't happen, but provide a bit more detail if it does. + s = e.Service + " " + s + } + if e.Detail != "" { + s += ": " + e.Detail + } + return s +} + +func (e *APIError) IsTimeout() bool { + return timeoutCodes[timeoutCodeKey{e.Service, e.Code}] +} + +// CallError is the type returned by appengine.Context's Call method when an +// API call fails in a generic way, such as RpcError::CAPABILITY_DISABLED. +type CallError struct { + Detail string + Code int32 + // TODO: Remove this if we get a distinguishable error code. + Timeout bool +} + +func (e *CallError) Error() string { + var msg string + switch remotepb.RpcError_ErrorCode(e.Code) { + case remotepb.RpcError_UNKNOWN: + return e.Detail + case remotepb.RpcError_OVER_QUOTA: + msg = "Over quota" + case remotepb.RpcError_CAPABILITY_DISABLED: + msg = "Capability disabled" + case remotepb.RpcError_CANCELLED: + msg = "Canceled" + default: + msg = fmt.Sprintf("Call error %d", e.Code) + } + s := msg + ": " + e.Detail + if e.Timeout { + s += " (timeout)" + } + return s +} + +func (e *CallError) IsTimeout() bool { + return e.Timeout +} + +// NamespaceMods is a map from API service to a function that will mutate an RPC request to attach a namespace. +// The function should be prepared to be called on the same message more than once; it should only modify the +// RPC request the first time. +var NamespaceMods = make(map[string]func(m proto.Message, namespace string)) diff --git a/vendor/google.golang.org/appengine/internal/internal_vm_test.go b/vendor/google.golang.org/appengine/internal/internal_vm_test.go new file mode 100644 index 000000000..f8097616b --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/internal_vm_test.go @@ -0,0 +1,60 @@ +// Copyright 2014 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +// +build !appengine + +package internal + +import ( + "io" + "io/ioutil" + "net/http" + "net/http/httptest" + "testing" +) + +func TestInstallingHealthChecker(t *testing.T) { + try := func(desc string, mux *http.ServeMux, wantCode int, wantBody string) { + installHealthChecker(mux) + srv := httptest.NewServer(mux) + defer srv.Close() + + resp, err := http.Get(srv.URL + "/_ah/health") + if err != nil { + t.Errorf("%s: http.Get: %v", desc, err) + return + } + defer resp.Body.Close() + body, err := ioutil.ReadAll(resp.Body) + if err != nil { + t.Errorf("%s: reading body: %v", desc, err) + return + } + + if resp.StatusCode != wantCode { + t.Errorf("%s: got HTTP %d, want %d", desc, resp.StatusCode, wantCode) + return + } + if wantBody != "" && string(body) != wantBody { + t.Errorf("%s: got HTTP body %q, want %q", desc, body, wantBody) + return + } + } + + // If there's no handlers, or only a root handler, a health checker should be installed. + try("empty mux", http.NewServeMux(), 200, "ok") + mux := http.NewServeMux() + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + io.WriteString(w, "root handler") + }) + try("mux with root handler", mux, 200, "ok") + + // If there's a custom health check handler, one should not be installed. + mux = http.NewServeMux() + mux.HandleFunc("/_ah/health", func(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(418) + io.WriteString(w, "I'm short and stout!") + }) + try("mux with custom health checker", mux, 418, "I'm short and stout!") +} diff --git a/vendor/google.golang.org/appengine/internal/log/log_service.pb.go b/vendor/google.golang.org/appengine/internal/log/log_service.pb.go new file mode 100644 index 000000000..8545ac4ad --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/log/log_service.pb.go @@ -0,0 +1,1313 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google.golang.org/appengine/internal/log/log_service.proto + +package log + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +type LogServiceError_ErrorCode int32 + +const ( + LogServiceError_OK LogServiceError_ErrorCode = 0 + LogServiceError_INVALID_REQUEST LogServiceError_ErrorCode = 1 + LogServiceError_STORAGE_ERROR LogServiceError_ErrorCode = 2 +) + +var LogServiceError_ErrorCode_name = map[int32]string{ + 0: "OK", + 1: "INVALID_REQUEST", + 2: "STORAGE_ERROR", +} +var LogServiceError_ErrorCode_value = map[string]int32{ + "OK": 0, + "INVALID_REQUEST": 1, + "STORAGE_ERROR": 2, +} + +func (x LogServiceError_ErrorCode) Enum() *LogServiceError_ErrorCode { + p := new(LogServiceError_ErrorCode) + *p = x + return p +} +func (x LogServiceError_ErrorCode) String() string { + return proto.EnumName(LogServiceError_ErrorCode_name, int32(x)) +} +func (x *LogServiceError_ErrorCode) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(LogServiceError_ErrorCode_value, data, "LogServiceError_ErrorCode") + if err != nil { + return err + } + *x = LogServiceError_ErrorCode(value) + return nil +} +func (LogServiceError_ErrorCode) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_log_service_f054fd4b5012319d, []int{0, 0} +} + +type LogServiceError struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *LogServiceError) Reset() { *m = LogServiceError{} } +func (m *LogServiceError) String() string { return proto.CompactTextString(m) } +func (*LogServiceError) ProtoMessage() {} +func (*LogServiceError) Descriptor() ([]byte, []int) { + return fileDescriptor_log_service_f054fd4b5012319d, []int{0} +} +func (m *LogServiceError) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_LogServiceError.Unmarshal(m, b) +} +func (m *LogServiceError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_LogServiceError.Marshal(b, m, deterministic) +} +func (dst *LogServiceError) XXX_Merge(src proto.Message) { + xxx_messageInfo_LogServiceError.Merge(dst, src) +} +func (m *LogServiceError) XXX_Size() int { + return xxx_messageInfo_LogServiceError.Size(m) +} +func (m *LogServiceError) XXX_DiscardUnknown() { + xxx_messageInfo_LogServiceError.DiscardUnknown(m) +} + +var xxx_messageInfo_LogServiceError proto.InternalMessageInfo + +type UserAppLogLine struct { + TimestampUsec *int64 `protobuf:"varint,1,req,name=timestamp_usec,json=timestampUsec" json:"timestamp_usec,omitempty"` + Level *int64 `protobuf:"varint,2,req,name=level" json:"level,omitempty"` + Message *string `protobuf:"bytes,3,req,name=message" json:"message,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UserAppLogLine) Reset() { *m = UserAppLogLine{} } +func (m *UserAppLogLine) String() string { return proto.CompactTextString(m) } +func (*UserAppLogLine) ProtoMessage() {} +func (*UserAppLogLine) Descriptor() ([]byte, []int) { + return fileDescriptor_log_service_f054fd4b5012319d, []int{1} +} +func (m *UserAppLogLine) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserAppLogLine.Unmarshal(m, b) +} +func (m *UserAppLogLine) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserAppLogLine.Marshal(b, m, deterministic) +} +func (dst *UserAppLogLine) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserAppLogLine.Merge(dst, src) +} +func (m *UserAppLogLine) XXX_Size() int { + return xxx_messageInfo_UserAppLogLine.Size(m) +} +func (m *UserAppLogLine) XXX_DiscardUnknown() { + xxx_messageInfo_UserAppLogLine.DiscardUnknown(m) +} + +var xxx_messageInfo_UserAppLogLine proto.InternalMessageInfo + +func (m *UserAppLogLine) GetTimestampUsec() int64 { + if m != nil && m.TimestampUsec != nil { + return *m.TimestampUsec + } + return 0 +} + +func (m *UserAppLogLine) GetLevel() int64 { + if m != nil && m.Level != nil { + return *m.Level + } + return 0 +} + +func (m *UserAppLogLine) GetMessage() string { + if m != nil && m.Message != nil { + return *m.Message + } + return "" +} + +type UserAppLogGroup struct { + LogLine []*UserAppLogLine `protobuf:"bytes,2,rep,name=log_line,json=logLine" json:"log_line,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UserAppLogGroup) Reset() { *m = UserAppLogGroup{} } +func (m *UserAppLogGroup) String() string { return proto.CompactTextString(m) } +func (*UserAppLogGroup) ProtoMessage() {} +func (*UserAppLogGroup) Descriptor() ([]byte, []int) { + return fileDescriptor_log_service_f054fd4b5012319d, []int{2} +} +func (m *UserAppLogGroup) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserAppLogGroup.Unmarshal(m, b) +} +func (m *UserAppLogGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserAppLogGroup.Marshal(b, m, deterministic) +} +func (dst *UserAppLogGroup) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserAppLogGroup.Merge(dst, src) +} +func (m *UserAppLogGroup) XXX_Size() int { + return xxx_messageInfo_UserAppLogGroup.Size(m) +} +func (m *UserAppLogGroup) XXX_DiscardUnknown() { + xxx_messageInfo_UserAppLogGroup.DiscardUnknown(m) +} + +var xxx_messageInfo_UserAppLogGroup proto.InternalMessageInfo + +func (m *UserAppLogGroup) GetLogLine() []*UserAppLogLine { + if m != nil { + return m.LogLine + } + return nil +} + +type FlushRequest struct { + Logs []byte `protobuf:"bytes,1,opt,name=logs" json:"logs,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FlushRequest) Reset() { *m = FlushRequest{} } +func (m *FlushRequest) String() string { return proto.CompactTextString(m) } +func (*FlushRequest) ProtoMessage() {} +func (*FlushRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_log_service_f054fd4b5012319d, []int{3} +} +func (m *FlushRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FlushRequest.Unmarshal(m, b) +} +func (m *FlushRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FlushRequest.Marshal(b, m, deterministic) +} +func (dst *FlushRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_FlushRequest.Merge(dst, src) +} +func (m *FlushRequest) XXX_Size() int { + return xxx_messageInfo_FlushRequest.Size(m) +} +func (m *FlushRequest) XXX_DiscardUnknown() { + xxx_messageInfo_FlushRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_FlushRequest proto.InternalMessageInfo + +func (m *FlushRequest) GetLogs() []byte { + if m != nil { + return m.Logs + } + return nil +} + +type SetStatusRequest struct { + Status *string `protobuf:"bytes,1,req,name=status" json:"status,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SetStatusRequest) Reset() { *m = SetStatusRequest{} } +func (m *SetStatusRequest) String() string { return proto.CompactTextString(m) } +func (*SetStatusRequest) ProtoMessage() {} +func (*SetStatusRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_log_service_f054fd4b5012319d, []int{4} +} +func (m *SetStatusRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SetStatusRequest.Unmarshal(m, b) +} +func (m *SetStatusRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SetStatusRequest.Marshal(b, m, deterministic) +} +func (dst *SetStatusRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_SetStatusRequest.Merge(dst, src) +} +func (m *SetStatusRequest) XXX_Size() int { + return xxx_messageInfo_SetStatusRequest.Size(m) +} +func (m *SetStatusRequest) XXX_DiscardUnknown() { + xxx_messageInfo_SetStatusRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_SetStatusRequest proto.InternalMessageInfo + +func (m *SetStatusRequest) GetStatus() string { + if m != nil && m.Status != nil { + return *m.Status + } + return "" +} + +type LogOffset struct { + RequestId []byte `protobuf:"bytes,1,opt,name=request_id,json=requestId" json:"request_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *LogOffset) Reset() { *m = LogOffset{} } +func (m *LogOffset) String() string { return proto.CompactTextString(m) } +func (*LogOffset) ProtoMessage() {} +func (*LogOffset) Descriptor() ([]byte, []int) { + return fileDescriptor_log_service_f054fd4b5012319d, []int{5} +} +func (m *LogOffset) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_LogOffset.Unmarshal(m, b) +} +func (m *LogOffset) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_LogOffset.Marshal(b, m, deterministic) +} +func (dst *LogOffset) XXX_Merge(src proto.Message) { + xxx_messageInfo_LogOffset.Merge(dst, src) +} +func (m *LogOffset) XXX_Size() int { + return xxx_messageInfo_LogOffset.Size(m) +} +func (m *LogOffset) XXX_DiscardUnknown() { + xxx_messageInfo_LogOffset.DiscardUnknown(m) +} + +var xxx_messageInfo_LogOffset proto.InternalMessageInfo + +func (m *LogOffset) GetRequestId() []byte { + if m != nil { + return m.RequestId + } + return nil +} + +type LogLine struct { + Time *int64 `protobuf:"varint,1,req,name=time" json:"time,omitempty"` + Level *int32 `protobuf:"varint,2,req,name=level" json:"level,omitempty"` + LogMessage *string `protobuf:"bytes,3,req,name=log_message,json=logMessage" json:"log_message,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *LogLine) Reset() { *m = LogLine{} } +func (m *LogLine) String() string { return proto.CompactTextString(m) } +func (*LogLine) ProtoMessage() {} +func (*LogLine) Descriptor() ([]byte, []int) { + return fileDescriptor_log_service_f054fd4b5012319d, []int{6} +} +func (m *LogLine) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_LogLine.Unmarshal(m, b) +} +func (m *LogLine) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_LogLine.Marshal(b, m, deterministic) +} +func (dst *LogLine) XXX_Merge(src proto.Message) { + xxx_messageInfo_LogLine.Merge(dst, src) +} +func (m *LogLine) XXX_Size() int { + return xxx_messageInfo_LogLine.Size(m) +} +func (m *LogLine) XXX_DiscardUnknown() { + xxx_messageInfo_LogLine.DiscardUnknown(m) +} + +var xxx_messageInfo_LogLine proto.InternalMessageInfo + +func (m *LogLine) GetTime() int64 { + if m != nil && m.Time != nil { + return *m.Time + } + return 0 +} + +func (m *LogLine) GetLevel() int32 { + if m != nil && m.Level != nil { + return *m.Level + } + return 0 +} + +func (m *LogLine) GetLogMessage() string { + if m != nil && m.LogMessage != nil { + return *m.LogMessage + } + return "" +} + +type RequestLog struct { + AppId *string `protobuf:"bytes,1,req,name=app_id,json=appId" json:"app_id,omitempty"` + ModuleId *string `protobuf:"bytes,37,opt,name=module_id,json=moduleId,def=default" json:"module_id,omitempty"` + VersionId *string `protobuf:"bytes,2,req,name=version_id,json=versionId" json:"version_id,omitempty"` + RequestId []byte `protobuf:"bytes,3,req,name=request_id,json=requestId" json:"request_id,omitempty"` + Offset *LogOffset `protobuf:"bytes,35,opt,name=offset" json:"offset,omitempty"` + Ip *string `protobuf:"bytes,4,req,name=ip" json:"ip,omitempty"` + Nickname *string `protobuf:"bytes,5,opt,name=nickname" json:"nickname,omitempty"` + StartTime *int64 `protobuf:"varint,6,req,name=start_time,json=startTime" json:"start_time,omitempty"` + EndTime *int64 `protobuf:"varint,7,req,name=end_time,json=endTime" json:"end_time,omitempty"` + Latency *int64 `protobuf:"varint,8,req,name=latency" json:"latency,omitempty"` + Mcycles *int64 `protobuf:"varint,9,req,name=mcycles" json:"mcycles,omitempty"` + Method *string `protobuf:"bytes,10,req,name=method" json:"method,omitempty"` + Resource *string `protobuf:"bytes,11,req,name=resource" json:"resource,omitempty"` + HttpVersion *string `protobuf:"bytes,12,req,name=http_version,json=httpVersion" json:"http_version,omitempty"` + Status *int32 `protobuf:"varint,13,req,name=status" json:"status,omitempty"` + ResponseSize *int64 `protobuf:"varint,14,req,name=response_size,json=responseSize" json:"response_size,omitempty"` + Referrer *string `protobuf:"bytes,15,opt,name=referrer" json:"referrer,omitempty"` + UserAgent *string `protobuf:"bytes,16,opt,name=user_agent,json=userAgent" json:"user_agent,omitempty"` + UrlMapEntry *string `protobuf:"bytes,17,req,name=url_map_entry,json=urlMapEntry" json:"url_map_entry,omitempty"` + Combined *string `protobuf:"bytes,18,req,name=combined" json:"combined,omitempty"` + ApiMcycles *int64 `protobuf:"varint,19,opt,name=api_mcycles,json=apiMcycles" json:"api_mcycles,omitempty"` + Host *string `protobuf:"bytes,20,opt,name=host" json:"host,omitempty"` + Cost *float64 `protobuf:"fixed64,21,opt,name=cost" json:"cost,omitempty"` + TaskQueueName *string `protobuf:"bytes,22,opt,name=task_queue_name,json=taskQueueName" json:"task_queue_name,omitempty"` + TaskName *string `protobuf:"bytes,23,opt,name=task_name,json=taskName" json:"task_name,omitempty"` + WasLoadingRequest *bool `protobuf:"varint,24,opt,name=was_loading_request,json=wasLoadingRequest" json:"was_loading_request,omitempty"` + PendingTime *int64 `protobuf:"varint,25,opt,name=pending_time,json=pendingTime" json:"pending_time,omitempty"` + ReplicaIndex *int32 `protobuf:"varint,26,opt,name=replica_index,json=replicaIndex,def=-1" json:"replica_index,omitempty"` + Finished *bool `protobuf:"varint,27,opt,name=finished,def=1" json:"finished,omitempty"` + CloneKey []byte `protobuf:"bytes,28,opt,name=clone_key,json=cloneKey" json:"clone_key,omitempty"` + Line []*LogLine `protobuf:"bytes,29,rep,name=line" json:"line,omitempty"` + LinesIncomplete *bool `protobuf:"varint,36,opt,name=lines_incomplete,json=linesIncomplete" json:"lines_incomplete,omitempty"` + AppEngineRelease []byte `protobuf:"bytes,38,opt,name=app_engine_release,json=appEngineRelease" json:"app_engine_release,omitempty"` + ExitReason *int32 `protobuf:"varint,30,opt,name=exit_reason,json=exitReason" json:"exit_reason,omitempty"` + WasThrottledForTime *bool `protobuf:"varint,31,opt,name=was_throttled_for_time,json=wasThrottledForTime" json:"was_throttled_for_time,omitempty"` + WasThrottledForRequests *bool `protobuf:"varint,32,opt,name=was_throttled_for_requests,json=wasThrottledForRequests" json:"was_throttled_for_requests,omitempty"` + ThrottledTime *int64 `protobuf:"varint,33,opt,name=throttled_time,json=throttledTime" json:"throttled_time,omitempty"` + ServerName []byte `protobuf:"bytes,34,opt,name=server_name,json=serverName" json:"server_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RequestLog) Reset() { *m = RequestLog{} } +func (m *RequestLog) String() string { return proto.CompactTextString(m) } +func (*RequestLog) ProtoMessage() {} +func (*RequestLog) Descriptor() ([]byte, []int) { + return fileDescriptor_log_service_f054fd4b5012319d, []int{7} +} +func (m *RequestLog) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RequestLog.Unmarshal(m, b) +} +func (m *RequestLog) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RequestLog.Marshal(b, m, deterministic) +} +func (dst *RequestLog) XXX_Merge(src proto.Message) { + xxx_messageInfo_RequestLog.Merge(dst, src) +} +func (m *RequestLog) XXX_Size() int { + return xxx_messageInfo_RequestLog.Size(m) +} +func (m *RequestLog) XXX_DiscardUnknown() { + xxx_messageInfo_RequestLog.DiscardUnknown(m) +} + +var xxx_messageInfo_RequestLog proto.InternalMessageInfo + +const Default_RequestLog_ModuleId string = "default" +const Default_RequestLog_ReplicaIndex int32 = -1 +const Default_RequestLog_Finished bool = true + +func (m *RequestLog) GetAppId() string { + if m != nil && m.AppId != nil { + return *m.AppId + } + return "" +} + +func (m *RequestLog) GetModuleId() string { + if m != nil && m.ModuleId != nil { + return *m.ModuleId + } + return Default_RequestLog_ModuleId +} + +func (m *RequestLog) GetVersionId() string { + if m != nil && m.VersionId != nil { + return *m.VersionId + } + return "" +} + +func (m *RequestLog) GetRequestId() []byte { + if m != nil { + return m.RequestId + } + return nil +} + +func (m *RequestLog) GetOffset() *LogOffset { + if m != nil { + return m.Offset + } + return nil +} + +func (m *RequestLog) GetIp() string { + if m != nil && m.Ip != nil { + return *m.Ip + } + return "" +} + +func (m *RequestLog) GetNickname() string { + if m != nil && m.Nickname != nil { + return *m.Nickname + } + return "" +} + +func (m *RequestLog) GetStartTime() int64 { + if m != nil && m.StartTime != nil { + return *m.StartTime + } + return 0 +} + +func (m *RequestLog) GetEndTime() int64 { + if m != nil && m.EndTime != nil { + return *m.EndTime + } + return 0 +} + +func (m *RequestLog) GetLatency() int64 { + if m != nil && m.Latency != nil { + return *m.Latency + } + return 0 +} + +func (m *RequestLog) GetMcycles() int64 { + if m != nil && m.Mcycles != nil { + return *m.Mcycles + } + return 0 +} + +func (m *RequestLog) GetMethod() string { + if m != nil && m.Method != nil { + return *m.Method + } + return "" +} + +func (m *RequestLog) GetResource() string { + if m != nil && m.Resource != nil { + return *m.Resource + } + return "" +} + +func (m *RequestLog) GetHttpVersion() string { + if m != nil && m.HttpVersion != nil { + return *m.HttpVersion + } + return "" +} + +func (m *RequestLog) GetStatus() int32 { + if m != nil && m.Status != nil { + return *m.Status + } + return 0 +} + +func (m *RequestLog) GetResponseSize() int64 { + if m != nil && m.ResponseSize != nil { + return *m.ResponseSize + } + return 0 +} + +func (m *RequestLog) GetReferrer() string { + if m != nil && m.Referrer != nil { + return *m.Referrer + } + return "" +} + +func (m *RequestLog) GetUserAgent() string { + if m != nil && m.UserAgent != nil { + return *m.UserAgent + } + return "" +} + +func (m *RequestLog) GetUrlMapEntry() string { + if m != nil && m.UrlMapEntry != nil { + return *m.UrlMapEntry + } + return "" +} + +func (m *RequestLog) GetCombined() string { + if m != nil && m.Combined != nil { + return *m.Combined + } + return "" +} + +func (m *RequestLog) GetApiMcycles() int64 { + if m != nil && m.ApiMcycles != nil { + return *m.ApiMcycles + } + return 0 +} + +func (m *RequestLog) GetHost() string { + if m != nil && m.Host != nil { + return *m.Host + } + return "" +} + +func (m *RequestLog) GetCost() float64 { + if m != nil && m.Cost != nil { + return *m.Cost + } + return 0 +} + +func (m *RequestLog) GetTaskQueueName() string { + if m != nil && m.TaskQueueName != nil { + return *m.TaskQueueName + } + return "" +} + +func (m *RequestLog) GetTaskName() string { + if m != nil && m.TaskName != nil { + return *m.TaskName + } + return "" +} + +func (m *RequestLog) GetWasLoadingRequest() bool { + if m != nil && m.WasLoadingRequest != nil { + return *m.WasLoadingRequest + } + return false +} + +func (m *RequestLog) GetPendingTime() int64 { + if m != nil && m.PendingTime != nil { + return *m.PendingTime + } + return 0 +} + +func (m *RequestLog) GetReplicaIndex() int32 { + if m != nil && m.ReplicaIndex != nil { + return *m.ReplicaIndex + } + return Default_RequestLog_ReplicaIndex +} + +func (m *RequestLog) GetFinished() bool { + if m != nil && m.Finished != nil { + return *m.Finished + } + return Default_RequestLog_Finished +} + +func (m *RequestLog) GetCloneKey() []byte { + if m != nil { + return m.CloneKey + } + return nil +} + +func (m *RequestLog) GetLine() []*LogLine { + if m != nil { + return m.Line + } + return nil +} + +func (m *RequestLog) GetLinesIncomplete() bool { + if m != nil && m.LinesIncomplete != nil { + return *m.LinesIncomplete + } + return false +} + +func (m *RequestLog) GetAppEngineRelease() []byte { + if m != nil { + return m.AppEngineRelease + } + return nil +} + +func (m *RequestLog) GetExitReason() int32 { + if m != nil && m.ExitReason != nil { + return *m.ExitReason + } + return 0 +} + +func (m *RequestLog) GetWasThrottledForTime() bool { + if m != nil && m.WasThrottledForTime != nil { + return *m.WasThrottledForTime + } + return false +} + +func (m *RequestLog) GetWasThrottledForRequests() bool { + if m != nil && m.WasThrottledForRequests != nil { + return *m.WasThrottledForRequests + } + return false +} + +func (m *RequestLog) GetThrottledTime() int64 { + if m != nil && m.ThrottledTime != nil { + return *m.ThrottledTime + } + return 0 +} + +func (m *RequestLog) GetServerName() []byte { + if m != nil { + return m.ServerName + } + return nil +} + +type LogModuleVersion struct { + ModuleId *string `protobuf:"bytes,1,opt,name=module_id,json=moduleId,def=default" json:"module_id,omitempty"` + VersionId *string `protobuf:"bytes,2,opt,name=version_id,json=versionId" json:"version_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *LogModuleVersion) Reset() { *m = LogModuleVersion{} } +func (m *LogModuleVersion) String() string { return proto.CompactTextString(m) } +func (*LogModuleVersion) ProtoMessage() {} +func (*LogModuleVersion) Descriptor() ([]byte, []int) { + return fileDescriptor_log_service_f054fd4b5012319d, []int{8} +} +func (m *LogModuleVersion) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_LogModuleVersion.Unmarshal(m, b) +} +func (m *LogModuleVersion) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_LogModuleVersion.Marshal(b, m, deterministic) +} +func (dst *LogModuleVersion) XXX_Merge(src proto.Message) { + xxx_messageInfo_LogModuleVersion.Merge(dst, src) +} +func (m *LogModuleVersion) XXX_Size() int { + return xxx_messageInfo_LogModuleVersion.Size(m) +} +func (m *LogModuleVersion) XXX_DiscardUnknown() { + xxx_messageInfo_LogModuleVersion.DiscardUnknown(m) +} + +var xxx_messageInfo_LogModuleVersion proto.InternalMessageInfo + +const Default_LogModuleVersion_ModuleId string = "default" + +func (m *LogModuleVersion) GetModuleId() string { + if m != nil && m.ModuleId != nil { + return *m.ModuleId + } + return Default_LogModuleVersion_ModuleId +} + +func (m *LogModuleVersion) GetVersionId() string { + if m != nil && m.VersionId != nil { + return *m.VersionId + } + return "" +} + +type LogReadRequest struct { + AppId *string `protobuf:"bytes,1,req,name=app_id,json=appId" json:"app_id,omitempty"` + VersionId []string `protobuf:"bytes,2,rep,name=version_id,json=versionId" json:"version_id,omitempty"` + ModuleVersion []*LogModuleVersion `protobuf:"bytes,19,rep,name=module_version,json=moduleVersion" json:"module_version,omitempty"` + StartTime *int64 `protobuf:"varint,3,opt,name=start_time,json=startTime" json:"start_time,omitempty"` + EndTime *int64 `protobuf:"varint,4,opt,name=end_time,json=endTime" json:"end_time,omitempty"` + Offset *LogOffset `protobuf:"bytes,5,opt,name=offset" json:"offset,omitempty"` + RequestId [][]byte `protobuf:"bytes,6,rep,name=request_id,json=requestId" json:"request_id,omitempty"` + MinimumLogLevel *int32 `protobuf:"varint,7,opt,name=minimum_log_level,json=minimumLogLevel" json:"minimum_log_level,omitempty"` + IncludeIncomplete *bool `protobuf:"varint,8,opt,name=include_incomplete,json=includeIncomplete" json:"include_incomplete,omitempty"` + Count *int64 `protobuf:"varint,9,opt,name=count" json:"count,omitempty"` + CombinedLogRegex *string `protobuf:"bytes,14,opt,name=combined_log_regex,json=combinedLogRegex" json:"combined_log_regex,omitempty"` + HostRegex *string `protobuf:"bytes,15,opt,name=host_regex,json=hostRegex" json:"host_regex,omitempty"` + ReplicaIndex *int32 `protobuf:"varint,16,opt,name=replica_index,json=replicaIndex" json:"replica_index,omitempty"` + IncludeAppLogs *bool `protobuf:"varint,10,opt,name=include_app_logs,json=includeAppLogs" json:"include_app_logs,omitempty"` + AppLogsPerRequest *int32 `protobuf:"varint,17,opt,name=app_logs_per_request,json=appLogsPerRequest" json:"app_logs_per_request,omitempty"` + IncludeHost *bool `protobuf:"varint,11,opt,name=include_host,json=includeHost" json:"include_host,omitempty"` + IncludeAll *bool `protobuf:"varint,12,opt,name=include_all,json=includeAll" json:"include_all,omitempty"` + CacheIterator *bool `protobuf:"varint,13,opt,name=cache_iterator,json=cacheIterator" json:"cache_iterator,omitempty"` + NumShards *int32 `protobuf:"varint,18,opt,name=num_shards,json=numShards" json:"num_shards,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *LogReadRequest) Reset() { *m = LogReadRequest{} } +func (m *LogReadRequest) String() string { return proto.CompactTextString(m) } +func (*LogReadRequest) ProtoMessage() {} +func (*LogReadRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_log_service_f054fd4b5012319d, []int{9} +} +func (m *LogReadRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_LogReadRequest.Unmarshal(m, b) +} +func (m *LogReadRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_LogReadRequest.Marshal(b, m, deterministic) +} +func (dst *LogReadRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_LogReadRequest.Merge(dst, src) +} +func (m *LogReadRequest) XXX_Size() int { + return xxx_messageInfo_LogReadRequest.Size(m) +} +func (m *LogReadRequest) XXX_DiscardUnknown() { + xxx_messageInfo_LogReadRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_LogReadRequest proto.InternalMessageInfo + +func (m *LogReadRequest) GetAppId() string { + if m != nil && m.AppId != nil { + return *m.AppId + } + return "" +} + +func (m *LogReadRequest) GetVersionId() []string { + if m != nil { + return m.VersionId + } + return nil +} + +func (m *LogReadRequest) GetModuleVersion() []*LogModuleVersion { + if m != nil { + return m.ModuleVersion + } + return nil +} + +func (m *LogReadRequest) GetStartTime() int64 { + if m != nil && m.StartTime != nil { + return *m.StartTime + } + return 0 +} + +func (m *LogReadRequest) GetEndTime() int64 { + if m != nil && m.EndTime != nil { + return *m.EndTime + } + return 0 +} + +func (m *LogReadRequest) GetOffset() *LogOffset { + if m != nil { + return m.Offset + } + return nil +} + +func (m *LogReadRequest) GetRequestId() [][]byte { + if m != nil { + return m.RequestId + } + return nil +} + +func (m *LogReadRequest) GetMinimumLogLevel() int32 { + if m != nil && m.MinimumLogLevel != nil { + return *m.MinimumLogLevel + } + return 0 +} + +func (m *LogReadRequest) GetIncludeIncomplete() bool { + if m != nil && m.IncludeIncomplete != nil { + return *m.IncludeIncomplete + } + return false +} + +func (m *LogReadRequest) GetCount() int64 { + if m != nil && m.Count != nil { + return *m.Count + } + return 0 +} + +func (m *LogReadRequest) GetCombinedLogRegex() string { + if m != nil && m.CombinedLogRegex != nil { + return *m.CombinedLogRegex + } + return "" +} + +func (m *LogReadRequest) GetHostRegex() string { + if m != nil && m.HostRegex != nil { + return *m.HostRegex + } + return "" +} + +func (m *LogReadRequest) GetReplicaIndex() int32 { + if m != nil && m.ReplicaIndex != nil { + return *m.ReplicaIndex + } + return 0 +} + +func (m *LogReadRequest) GetIncludeAppLogs() bool { + if m != nil && m.IncludeAppLogs != nil { + return *m.IncludeAppLogs + } + return false +} + +func (m *LogReadRequest) GetAppLogsPerRequest() int32 { + if m != nil && m.AppLogsPerRequest != nil { + return *m.AppLogsPerRequest + } + return 0 +} + +func (m *LogReadRequest) GetIncludeHost() bool { + if m != nil && m.IncludeHost != nil { + return *m.IncludeHost + } + return false +} + +func (m *LogReadRequest) GetIncludeAll() bool { + if m != nil && m.IncludeAll != nil { + return *m.IncludeAll + } + return false +} + +func (m *LogReadRequest) GetCacheIterator() bool { + if m != nil && m.CacheIterator != nil { + return *m.CacheIterator + } + return false +} + +func (m *LogReadRequest) GetNumShards() int32 { + if m != nil && m.NumShards != nil { + return *m.NumShards + } + return 0 +} + +type LogReadResponse struct { + Log []*RequestLog `protobuf:"bytes,1,rep,name=log" json:"log,omitempty"` + Offset *LogOffset `protobuf:"bytes,2,opt,name=offset" json:"offset,omitempty"` + LastEndTime *int64 `protobuf:"varint,3,opt,name=last_end_time,json=lastEndTime" json:"last_end_time,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *LogReadResponse) Reset() { *m = LogReadResponse{} } +func (m *LogReadResponse) String() string { return proto.CompactTextString(m) } +func (*LogReadResponse) ProtoMessage() {} +func (*LogReadResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_log_service_f054fd4b5012319d, []int{10} +} +func (m *LogReadResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_LogReadResponse.Unmarshal(m, b) +} +func (m *LogReadResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_LogReadResponse.Marshal(b, m, deterministic) +} +func (dst *LogReadResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_LogReadResponse.Merge(dst, src) +} +func (m *LogReadResponse) XXX_Size() int { + return xxx_messageInfo_LogReadResponse.Size(m) +} +func (m *LogReadResponse) XXX_DiscardUnknown() { + xxx_messageInfo_LogReadResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_LogReadResponse proto.InternalMessageInfo + +func (m *LogReadResponse) GetLog() []*RequestLog { + if m != nil { + return m.Log + } + return nil +} + +func (m *LogReadResponse) GetOffset() *LogOffset { + if m != nil { + return m.Offset + } + return nil +} + +func (m *LogReadResponse) GetLastEndTime() int64 { + if m != nil && m.LastEndTime != nil { + return *m.LastEndTime + } + return 0 +} + +type LogUsageRecord struct { + VersionId *string `protobuf:"bytes,1,opt,name=version_id,json=versionId" json:"version_id,omitempty"` + StartTime *int32 `protobuf:"varint,2,opt,name=start_time,json=startTime" json:"start_time,omitempty"` + EndTime *int32 `protobuf:"varint,3,opt,name=end_time,json=endTime" json:"end_time,omitempty"` + Count *int64 `protobuf:"varint,4,opt,name=count" json:"count,omitempty"` + TotalSize *int64 `protobuf:"varint,5,opt,name=total_size,json=totalSize" json:"total_size,omitempty"` + Records *int32 `protobuf:"varint,6,opt,name=records" json:"records,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *LogUsageRecord) Reset() { *m = LogUsageRecord{} } +func (m *LogUsageRecord) String() string { return proto.CompactTextString(m) } +func (*LogUsageRecord) ProtoMessage() {} +func (*LogUsageRecord) Descriptor() ([]byte, []int) { + return fileDescriptor_log_service_f054fd4b5012319d, []int{11} +} +func (m *LogUsageRecord) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_LogUsageRecord.Unmarshal(m, b) +} +func (m *LogUsageRecord) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_LogUsageRecord.Marshal(b, m, deterministic) +} +func (dst *LogUsageRecord) XXX_Merge(src proto.Message) { + xxx_messageInfo_LogUsageRecord.Merge(dst, src) +} +func (m *LogUsageRecord) XXX_Size() int { + return xxx_messageInfo_LogUsageRecord.Size(m) +} +func (m *LogUsageRecord) XXX_DiscardUnknown() { + xxx_messageInfo_LogUsageRecord.DiscardUnknown(m) +} + +var xxx_messageInfo_LogUsageRecord proto.InternalMessageInfo + +func (m *LogUsageRecord) GetVersionId() string { + if m != nil && m.VersionId != nil { + return *m.VersionId + } + return "" +} + +func (m *LogUsageRecord) GetStartTime() int32 { + if m != nil && m.StartTime != nil { + return *m.StartTime + } + return 0 +} + +func (m *LogUsageRecord) GetEndTime() int32 { + if m != nil && m.EndTime != nil { + return *m.EndTime + } + return 0 +} + +func (m *LogUsageRecord) GetCount() int64 { + if m != nil && m.Count != nil { + return *m.Count + } + return 0 +} + +func (m *LogUsageRecord) GetTotalSize() int64 { + if m != nil && m.TotalSize != nil { + return *m.TotalSize + } + return 0 +} + +func (m *LogUsageRecord) GetRecords() int32 { + if m != nil && m.Records != nil { + return *m.Records + } + return 0 +} + +type LogUsageRequest struct { + AppId *string `protobuf:"bytes,1,req,name=app_id,json=appId" json:"app_id,omitempty"` + VersionId []string `protobuf:"bytes,2,rep,name=version_id,json=versionId" json:"version_id,omitempty"` + StartTime *int32 `protobuf:"varint,3,opt,name=start_time,json=startTime" json:"start_time,omitempty"` + EndTime *int32 `protobuf:"varint,4,opt,name=end_time,json=endTime" json:"end_time,omitempty"` + ResolutionHours *uint32 `protobuf:"varint,5,opt,name=resolution_hours,json=resolutionHours,def=1" json:"resolution_hours,omitempty"` + CombineVersions *bool `protobuf:"varint,6,opt,name=combine_versions,json=combineVersions" json:"combine_versions,omitempty"` + UsageVersion *int32 `protobuf:"varint,7,opt,name=usage_version,json=usageVersion" json:"usage_version,omitempty"` + VersionsOnly *bool `protobuf:"varint,8,opt,name=versions_only,json=versionsOnly" json:"versions_only,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *LogUsageRequest) Reset() { *m = LogUsageRequest{} } +func (m *LogUsageRequest) String() string { return proto.CompactTextString(m) } +func (*LogUsageRequest) ProtoMessage() {} +func (*LogUsageRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_log_service_f054fd4b5012319d, []int{12} +} +func (m *LogUsageRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_LogUsageRequest.Unmarshal(m, b) +} +func (m *LogUsageRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_LogUsageRequest.Marshal(b, m, deterministic) +} +func (dst *LogUsageRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_LogUsageRequest.Merge(dst, src) +} +func (m *LogUsageRequest) XXX_Size() int { + return xxx_messageInfo_LogUsageRequest.Size(m) +} +func (m *LogUsageRequest) XXX_DiscardUnknown() { + xxx_messageInfo_LogUsageRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_LogUsageRequest proto.InternalMessageInfo + +const Default_LogUsageRequest_ResolutionHours uint32 = 1 + +func (m *LogUsageRequest) GetAppId() string { + if m != nil && m.AppId != nil { + return *m.AppId + } + return "" +} + +func (m *LogUsageRequest) GetVersionId() []string { + if m != nil { + return m.VersionId + } + return nil +} + +func (m *LogUsageRequest) GetStartTime() int32 { + if m != nil && m.StartTime != nil { + return *m.StartTime + } + return 0 +} + +func (m *LogUsageRequest) GetEndTime() int32 { + if m != nil && m.EndTime != nil { + return *m.EndTime + } + return 0 +} + +func (m *LogUsageRequest) GetResolutionHours() uint32 { + if m != nil && m.ResolutionHours != nil { + return *m.ResolutionHours + } + return Default_LogUsageRequest_ResolutionHours +} + +func (m *LogUsageRequest) GetCombineVersions() bool { + if m != nil && m.CombineVersions != nil { + return *m.CombineVersions + } + return false +} + +func (m *LogUsageRequest) GetUsageVersion() int32 { + if m != nil && m.UsageVersion != nil { + return *m.UsageVersion + } + return 0 +} + +func (m *LogUsageRequest) GetVersionsOnly() bool { + if m != nil && m.VersionsOnly != nil { + return *m.VersionsOnly + } + return false +} + +type LogUsageResponse struct { + Usage []*LogUsageRecord `protobuf:"bytes,1,rep,name=usage" json:"usage,omitempty"` + Summary *LogUsageRecord `protobuf:"bytes,2,opt,name=summary" json:"summary,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *LogUsageResponse) Reset() { *m = LogUsageResponse{} } +func (m *LogUsageResponse) String() string { return proto.CompactTextString(m) } +func (*LogUsageResponse) ProtoMessage() {} +func (*LogUsageResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_log_service_f054fd4b5012319d, []int{13} +} +func (m *LogUsageResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_LogUsageResponse.Unmarshal(m, b) +} +func (m *LogUsageResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_LogUsageResponse.Marshal(b, m, deterministic) +} +func (dst *LogUsageResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_LogUsageResponse.Merge(dst, src) +} +func (m *LogUsageResponse) XXX_Size() int { + return xxx_messageInfo_LogUsageResponse.Size(m) +} +func (m *LogUsageResponse) XXX_DiscardUnknown() { + xxx_messageInfo_LogUsageResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_LogUsageResponse proto.InternalMessageInfo + +func (m *LogUsageResponse) GetUsage() []*LogUsageRecord { + if m != nil { + return m.Usage + } + return nil +} + +func (m *LogUsageResponse) GetSummary() *LogUsageRecord { + if m != nil { + return m.Summary + } + return nil +} + +func init() { + proto.RegisterType((*LogServiceError)(nil), "appengine.LogServiceError") + proto.RegisterType((*UserAppLogLine)(nil), "appengine.UserAppLogLine") + proto.RegisterType((*UserAppLogGroup)(nil), "appengine.UserAppLogGroup") + proto.RegisterType((*FlushRequest)(nil), "appengine.FlushRequest") + proto.RegisterType((*SetStatusRequest)(nil), "appengine.SetStatusRequest") + proto.RegisterType((*LogOffset)(nil), "appengine.LogOffset") + proto.RegisterType((*LogLine)(nil), "appengine.LogLine") + proto.RegisterType((*RequestLog)(nil), "appengine.RequestLog") + proto.RegisterType((*LogModuleVersion)(nil), "appengine.LogModuleVersion") + proto.RegisterType((*LogReadRequest)(nil), "appengine.LogReadRequest") + proto.RegisterType((*LogReadResponse)(nil), "appengine.LogReadResponse") + proto.RegisterType((*LogUsageRecord)(nil), "appengine.LogUsageRecord") + proto.RegisterType((*LogUsageRequest)(nil), "appengine.LogUsageRequest") + proto.RegisterType((*LogUsageResponse)(nil), "appengine.LogUsageResponse") +} + +func init() { + proto.RegisterFile("google.golang.org/appengine/internal/log/log_service.proto", fileDescriptor_log_service_f054fd4b5012319d) +} + +var fileDescriptor_log_service_f054fd4b5012319d = []byte{ + // 1553 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x56, 0xdd, 0x72, 0xdb, 0xc6, + 0x15, 0x2e, 0x48, 0x51, 0x24, 0x0f, 0x49, 0x91, 0x5a, 0xcb, 0xce, 0xda, 0xae, 0x6b, 0x1a, 0x4e, + 0x1c, 0xd6, 0x93, 0x48, 0x93, 0xa4, 0x57, 0xca, 0x95, 0xd3, 0x2a, 0x8e, 0x26, 0xb4, 0xd5, 0x40, + 0x72, 0x3a, 0xd3, 0x1b, 0x0c, 0x0a, 0x1c, 0x81, 0x18, 0x2f, 0xb1, 0xc8, 0xee, 0xc2, 0x91, 0x72, + 0xdb, 0xdb, 0x3e, 0x46, 0x1f, 0xa2, 0xaf, 0xd2, 0xb7, 0xe9, 0xec, 0xd9, 0x05, 0x44, 0x2a, 0x4d, + 0xc6, 0x33, 0xb9, 0xe0, 0x10, 0xfb, 0x9d, 0x83, 0xdd, 0xf3, 0xf3, 0x9d, 0x6f, 0x01, 0xc7, 0xb9, + 0x94, 0xb9, 0xc0, 0xc3, 0x5c, 0x8a, 0xa4, 0xcc, 0x0f, 0xa5, 0xca, 0x8f, 0x92, 0xaa, 0xc2, 0x32, + 0x2f, 0x4a, 0x3c, 0x2a, 0x4a, 0x83, 0xaa, 0x4c, 0xc4, 0x91, 0x90, 0xb9, 0xfd, 0xc5, 0x1a, 0xd5, + 0xbb, 0x22, 0xc5, 0xc3, 0x4a, 0x49, 0x23, 0xd9, 0xb0, 0xf5, 0x0c, 0x5f, 0xc3, 0x74, 0x29, 0xf3, + 0x73, 0x67, 0x3e, 0x51, 0x4a, 0xaa, 0xf0, 0x4b, 0x18, 0xd2, 0xc3, 0x9f, 0x65, 0x86, 0x6c, 0x17, + 0x3a, 0x67, 0xdf, 0xce, 0x7e, 0xc7, 0xee, 0xc0, 0xf4, 0xf4, 0xf5, 0xf7, 0x2f, 0x96, 0xa7, 0x7f, + 0x89, 0xa3, 0x93, 0xef, 0xde, 0x9c, 0x9c, 0x5f, 0xcc, 0x02, 0xb6, 0x0f, 0x93, 0xf3, 0x8b, 0xb3, + 0xe8, 0xc5, 0xcb, 0x93, 0xf8, 0x24, 0x8a, 0xce, 0xa2, 0x59, 0x27, 0xcc, 0x61, 0xef, 0x8d, 0x46, + 0xf5, 0xa2, 0xaa, 0x96, 0x32, 0x5f, 0x16, 0x25, 0xb2, 0x8f, 0x60, 0xcf, 0x14, 0x6b, 0xd4, 0x26, + 0x59, 0x57, 0x71, 0xad, 0x31, 0xe5, 0xc1, 0xbc, 0xb3, 0xe8, 0x46, 0x93, 0x16, 0x7d, 0xa3, 0x31, + 0x65, 0x07, 0xd0, 0x13, 0xf8, 0x0e, 0x05, 0xef, 0x90, 0xd5, 0x2d, 0x18, 0x87, 0xfe, 0x1a, 0xb5, + 0x4e, 0x72, 0xe4, 0xdd, 0x79, 0x67, 0x31, 0x8c, 0x9a, 0x65, 0xf8, 0x12, 0xa6, 0x37, 0x07, 0xbd, + 0x54, 0xb2, 0xae, 0xd8, 0x9f, 0x60, 0x60, 0x73, 0x15, 0x45, 0x89, 0xbc, 0x33, 0xef, 0x2e, 0x46, + 0x9f, 0xdf, 0x3f, 0x6c, 0x33, 0x3d, 0xdc, 0x0e, 0x2b, 0xea, 0x0b, 0xf7, 0x10, 0x86, 0x30, 0xfe, + 0x5a, 0xd4, 0x7a, 0x15, 0xe1, 0x0f, 0x35, 0x6a, 0xc3, 0x18, 0xec, 0x08, 0x99, 0x6b, 0x1e, 0xcc, + 0x83, 0xc5, 0x38, 0xa2, 0xe7, 0xf0, 0x39, 0xcc, 0xce, 0xd1, 0x9c, 0x9b, 0xc4, 0xd4, 0xba, 0xf1, + 0xbb, 0x07, 0xbb, 0x9a, 0x00, 0xca, 0x67, 0x18, 0xf9, 0x55, 0xf8, 0x1c, 0x86, 0x4b, 0x99, 0x9f, + 0x5d, 0x5e, 0x6a, 0x34, 0xec, 0x11, 0x80, 0x72, 0xfe, 0x71, 0x91, 0xf9, 0x2d, 0x87, 0x1e, 0x39, + 0xcd, 0xc2, 0x0b, 0xe8, 0x37, 0x65, 0x62, 0xb0, 0x63, 0x0b, 0xe2, 0x8b, 0x43, 0xcf, 0xdb, 0x35, + 0xe9, 0x35, 0x35, 0x79, 0x0c, 0x23, 0x9b, 0xe6, 0x76, 0x5d, 0x40, 0xc8, 0xfc, 0x95, 0x2f, 0xcd, + 0x3f, 0x01, 0xc0, 0x47, 0xb9, 0x94, 0x39, 0xbb, 0x0b, 0xbb, 0x49, 0x55, 0xb9, 0xf3, 0xad, 0x6b, + 0x2f, 0xa9, 0xaa, 0xd3, 0x8c, 0x7d, 0x08, 0xc3, 0xb5, 0xcc, 0x6a, 0x81, 0xd6, 0xf2, 0xd1, 0x3c, + 0x58, 0x0c, 0x8f, 0xfb, 0x19, 0x5e, 0x26, 0xb5, 0x30, 0xd1, 0xc0, 0x59, 0x4e, 0x33, 0x9b, 0xc0, + 0x3b, 0x54, 0xba, 0x90, 0xa5, 0x75, 0xeb, 0xd0, 0x06, 0x43, 0x8f, 0x38, 0xf3, 0x46, 0x7e, 0x36, + 0x94, 0xcd, 0xfc, 0xd8, 0x27, 0xb0, 0x2b, 0xa9, 0x10, 0xfc, 0xe9, 0x3c, 0x58, 0x8c, 0x3e, 0x3f, + 0xd8, 0xe8, 0x47, 0x5b, 0xa4, 0xc8, 0xfb, 0xb0, 0x3d, 0xe8, 0x14, 0x15, 0xdf, 0xa1, 0x33, 0x3a, + 0x45, 0xc5, 0x1e, 0xc0, 0xa0, 0x2c, 0xd2, 0xb7, 0x65, 0xb2, 0x46, 0xde, 0xb3, 0x01, 0x46, 0xed, + 0xda, 0x1e, 0xac, 0x4d, 0xa2, 0x4c, 0x4c, 0x45, 0xdb, 0xa5, 0xa2, 0x0d, 0x09, 0xb9, 0xb0, 0x95, + 0xbb, 0x0f, 0x03, 0x2c, 0x33, 0x67, 0xec, 0x93, 0xb1, 0x8f, 0x65, 0x46, 0x26, 0x0e, 0x7d, 0x91, + 0x18, 0x2c, 0xd3, 0x6b, 0x3e, 0x70, 0x16, 0xbf, 0x24, 0xb2, 0xa5, 0xd7, 0xa9, 0x40, 0xcd, 0x87, + 0xce, 0xe2, 0x97, 0xb6, 0xd7, 0x6b, 0x34, 0x2b, 0x99, 0x71, 0x70, 0xbd, 0x76, 0x2b, 0x1b, 0xa1, + 0x42, 0x2d, 0x6b, 0x95, 0x22, 0x1f, 0x91, 0xa5, 0x5d, 0xb3, 0x27, 0x30, 0x5e, 0x19, 0x53, 0xc5, + 0xbe, 0x58, 0x7c, 0x4c, 0xf6, 0x91, 0xc5, 0xbe, 0x77, 0xd0, 0x06, 0x85, 0x26, 0xd4, 0x60, 0xbf, + 0x62, 0x4f, 0x61, 0xa2, 0x50, 0x57, 0xb2, 0xd4, 0x18, 0xeb, 0xe2, 0x27, 0xe4, 0x7b, 0x14, 0xce, + 0xb8, 0x01, 0xcf, 0x8b, 0x9f, 0xd0, 0x9d, 0x7d, 0x89, 0x4a, 0xa1, 0xe2, 0x53, 0x57, 0x9d, 0x66, + 0x6d, 0xab, 0x53, 0x6b, 0x54, 0x71, 0x92, 0x63, 0x69, 0xf8, 0x8c, 0xac, 0x43, 0x8b, 0xbc, 0xb0, + 0x00, 0x0b, 0x61, 0x52, 0x2b, 0x11, 0xaf, 0x93, 0x2a, 0xc6, 0xd2, 0xa8, 0x6b, 0xbe, 0xef, 0x62, + 0xab, 0x95, 0x78, 0x95, 0x54, 0x27, 0x16, 0xb2, 0xdb, 0xa7, 0x72, 0xfd, 0x8f, 0xa2, 0xc4, 0x8c, + 0x33, 0x97, 0x5a, 0xb3, 0xb6, 0x0c, 0x4c, 0xaa, 0x22, 0x6e, 0x8a, 0x75, 0x67, 0x1e, 0x2c, 0xba, + 0x11, 0x24, 0x55, 0xf1, 0xca, 0xd7, 0x8b, 0xc1, 0xce, 0x4a, 0x6a, 0xc3, 0x0f, 0xe8, 0x64, 0x7a, + 0xb6, 0x58, 0x6a, 0xb1, 0xbb, 0xf3, 0x60, 0x11, 0x44, 0xf4, 0xcc, 0x9e, 0xc1, 0xd4, 0x24, 0xfa, + 0x6d, 0xfc, 0x43, 0x8d, 0x35, 0xc6, 0xd4, 0xe8, 0x7b, 0xf4, 0xca, 0xc4, 0xc2, 0xdf, 0x59, 0xf4, + 0xb5, 0xed, 0xf6, 0x43, 0x18, 0x92, 0x1f, 0x79, 0x7c, 0xe0, 0x92, 0xb5, 0x00, 0x19, 0x0f, 0xe1, + 0xce, 0x8f, 0x89, 0x8e, 0x85, 0x4c, 0xb2, 0xa2, 0xcc, 0x63, 0xcf, 0x3e, 0xce, 0xe7, 0xc1, 0x62, + 0x10, 0xed, 0xff, 0x98, 0xe8, 0xa5, 0xb3, 0x34, 0x83, 0xfb, 0x04, 0xc6, 0x15, 0x96, 0xe4, 0x4b, + 0xfc, 0xb8, 0x4f, 0xe1, 0x8f, 0x3c, 0x46, 0x1c, 0xf9, 0xd8, 0x36, 0xa0, 0x12, 0x45, 0x9a, 0xc4, + 0x45, 0x99, 0xe1, 0x15, 0x7f, 0x30, 0x0f, 0x16, 0xbd, 0xe3, 0xce, 0xa7, 0x9f, 0xd9, 0x26, 0x90, + 0xe1, 0xd4, 0xe2, 0x6c, 0x0e, 0x83, 0xcb, 0xa2, 0x2c, 0xf4, 0x0a, 0x33, 0xfe, 0xd0, 0x1e, 0x78, + 0xbc, 0x63, 0x54, 0x8d, 0x51, 0x8b, 0xda, 0xd0, 0x53, 0x21, 0x4b, 0x8c, 0xdf, 0xe2, 0x35, 0xff, + 0x3d, 0x09, 0xc0, 0x80, 0x80, 0x6f, 0xf1, 0x9a, 0x3d, 0x83, 0x1d, 0x52, 0xab, 0x47, 0xa4, 0x56, + 0x6c, 0x7b, 0x3a, 0x48, 0xa6, 0xc8, 0xce, 0xfe, 0x08, 0x33, 0xfb, 0xaf, 0xe3, 0xa2, 0x4c, 0xe5, + 0xba, 0x12, 0x68, 0x90, 0x7f, 0x48, 0xf9, 0x4d, 0x09, 0x3f, 0x6d, 0x61, 0xf6, 0x09, 0x30, 0x3b, + 0xed, 0x6e, 0x9b, 0x58, 0xa1, 0xc0, 0x44, 0x23, 0x7f, 0x46, 0x07, 0xcf, 0x92, 0xaa, 0x3a, 0x21, + 0x43, 0xe4, 0x70, 0xdb, 0x49, 0xbc, 0x2a, 0x4c, 0xac, 0x30, 0xd1, 0xb2, 0xe4, 0x7f, 0xb0, 0x69, + 0x46, 0x60, 0xa1, 0x88, 0x10, 0xf6, 0x05, 0xdc, 0xb3, 0xc5, 0x35, 0x2b, 0x25, 0x8d, 0x11, 0x98, + 0xc5, 0x97, 0x52, 0xb9, 0xb2, 0x3d, 0xa6, 0xf3, 0x6d, 0xe9, 0x2f, 0x1a, 0xe3, 0xd7, 0x52, 0x51, + 0xf9, 0xbe, 0x84, 0x07, 0x3f, 0x7f, 0xc9, 0xf7, 0x45, 0xf3, 0x39, 0xbd, 0xf8, 0xc1, 0xad, 0x17, + 0x7d, 0x77, 0x34, 0xdd, 0x17, 0xed, 0x8b, 0x74, 0xd2, 0x13, 0x6a, 0xd0, 0xa4, 0x45, 0xe9, 0x8c, + 0xc7, 0x30, 0xb2, 0x97, 0x1a, 0x2a, 0x47, 0x8a, 0x90, 0x12, 0x04, 0x07, 0x59, 0x5a, 0x84, 0x7f, + 0x83, 0xd9, 0x52, 0xe6, 0xaf, 0x48, 0xc8, 0x9a, 0x81, 0xdb, 0xd2, 0xbc, 0xe0, 0x7d, 0x35, 0x2f, + 0xd8, 0xd2, 0xbc, 0xf0, 0xbf, 0x3d, 0xd8, 0x5b, 0xca, 0x3c, 0xc2, 0x24, 0x6b, 0x28, 0xf5, 0x0b, + 0x12, 0x7b, 0x7b, 0xa3, 0xee, 0xb6, 0x78, 0x7e, 0x05, 0x7b, 0x3e, 0x9a, 0x46, 0x23, 0xee, 0x10, + 0x0f, 0x1e, 0x6e, 0xf3, 0x60, 0x2b, 0x85, 0x68, 0xb2, 0xde, 0xca, 0x68, 0x5b, 0x07, 0xbb, 0x54, + 0xa9, 0x5f, 0xd0, 0xc1, 0x1d, 0x32, 0xb6, 0x3a, 0x78, 0xa3, 0xcd, 0xbd, 0xf7, 0xd0, 0xe6, 0x6d, + 0xa1, 0xdf, 0x9d, 0x77, 0xb7, 0x85, 0xfe, 0x39, 0xec, 0xaf, 0x8b, 0xb2, 0x58, 0xd7, 0xeb, 0x98, + 0xae, 0x60, 0xba, 0xb5, 0xfa, 0xc4, 0xa6, 0xa9, 0x37, 0x58, 0x46, 0xd3, 0xfd, 0xf5, 0x29, 0xb0, + 0xa2, 0x4c, 0x45, 0x9d, 0xe1, 0x26, 0x9d, 0x07, 0x6e, 0x5c, 0xbd, 0x65, 0x83, 0xd0, 0x07, 0xd0, + 0x4b, 0x65, 0x5d, 0x1a, 0x3e, 0xa4, 0xf8, 0xdd, 0xc2, 0xd2, 0xbc, 0x91, 0x23, 0x3a, 0x51, 0x61, + 0x8e, 0x57, 0x7c, 0x8f, 0x7a, 0x35, 0x6b, 0x2c, 0xd4, 0xa5, 0x1c, 0xaf, 0x6c, 0xf4, 0x56, 0x83, + 0xbc, 0x97, 0x53, 0xcb, 0xa1, 0x45, 0x9c, 0xf9, 0xe9, 0xed, 0x71, 0x9f, 0x51, 0xe4, 0xdb, 0xa3, + 0xbe, 0x80, 0x59, 0x13, 0xb6, 0xed, 0x35, 0x7d, 0x23, 0x00, 0x05, 0xbd, 0xe7, 0x71, 0xf7, 0x75, + 0xa1, 0xd9, 0x11, 0x1c, 0x34, 0x1e, 0x71, 0x85, 0x2d, 0xf3, 0xf9, 0x3e, 0xed, 0xba, 0x9f, 0x38, + 0xb7, 0xbf, 0xa2, 0xda, 0x50, 0xa4, 0x66, 0x6b, 0x92, 0xcd, 0x11, 0x6d, 0x3b, 0xf2, 0xd8, 0x37, + 0x56, 0x29, 0x1f, 0xc3, 0xa8, 0x3d, 0x5d, 0x08, 0x3e, 0x26, 0x0f, 0x68, 0x0e, 0x16, 0xc2, 0x8e, + 0x4d, 0x9a, 0xa4, 0x2b, 0x8c, 0x0b, 0x83, 0x2a, 0x31, 0x52, 0xf1, 0x09, 0xf9, 0x4c, 0x08, 0x3d, + 0xf5, 0xa0, 0xad, 0x44, 0x59, 0xaf, 0x63, 0xbd, 0x4a, 0x54, 0xa6, 0x39, 0xa3, 0x88, 0x86, 0x65, + 0xbd, 0x3e, 0x27, 0x20, 0xfc, 0x57, 0x40, 0xdf, 0x83, 0x8e, 0xdb, 0xee, 0xb2, 0x61, 0x1f, 0x43, + 0x57, 0xc8, 0x9c, 0x07, 0xc4, 0xcd, 0xbb, 0x1b, 0x2c, 0xb9, 0xf9, 0xc6, 0x88, 0xac, 0xc7, 0x06, + 0xa3, 0x3a, 0xef, 0xc1, 0xa8, 0x10, 0x26, 0x22, 0xd1, 0x26, 0x6e, 0xf9, 0xe9, 0xc8, 0x3b, 0xb2, + 0xe0, 0x89, 0xe3, 0x68, 0xf8, 0x9f, 0x80, 0x46, 0xed, 0x8d, 0xfd, 0xac, 0x89, 0x30, 0x95, 0xea, + 0xf6, 0x4c, 0x05, 0xb7, 0x86, 0xf3, 0xd6, 0x3c, 0x74, 0x5c, 0x7e, 0xff, 0x7f, 0x1e, 0xba, 0x64, + 0x6c, 0xe7, 0xa1, 0xe5, 0xd9, 0xce, 0x26, 0xcf, 0x1e, 0x01, 0x18, 0x69, 0x12, 0xe1, 0xee, 0xe1, + 0x9e, 0x9b, 0x2f, 0x42, 0xe8, 0x12, 0xe6, 0xd0, 0x57, 0x14, 0x97, 0xe6, 0xbb, 0x6e, 0x3b, 0xbf, + 0x0c, 0xff, 0xdd, 0xa1, 0x4a, 0xfa, 0xd0, 0x7f, 0x8b, 0x4c, 0xfc, 0x7c, 0xc4, 0x7b, 0xbf, 0x36, + 0xe2, 0xbd, 0xcd, 0x11, 0x9f, 0xd9, 0xcf, 0x11, 0x51, 0x1b, 0xbb, 0xf7, 0x4a, 0xd6, 0x4a, 0x53, + 0x0a, 0x93, 0xe3, 0xe0, 0xb3, 0x68, 0x7a, 0x63, 0xfa, 0xc6, 0x5a, 0xec, 0x25, 0xe3, 0x07, 0xa7, + 0xd1, 0x23, 0x97, 0xd4, 0x20, 0x9a, 0x7a, 0xdc, 0x8b, 0x0e, 0x7d, 0xa0, 0xd4, 0x36, 0xb1, 0x56, + 0xb8, 0xdc, 0xa8, 0x8f, 0x09, 0x6c, 0xa4, 0xe9, 0x29, 0x4c, 0x9a, 0x7d, 0x62, 0x59, 0x8a, 0x6b, + 0x3f, 0xe2, 0xe3, 0x06, 0x3c, 0x2b, 0xc5, 0x75, 0x78, 0x45, 0x2a, 0xed, 0xab, 0xe4, 0x09, 0x77, + 0x04, 0x3d, 0xda, 0xc8, 0x53, 0xee, 0xfe, 0x36, 0x8d, 0x36, 0xc8, 0x10, 0x39, 0x3f, 0xf6, 0x05, + 0xf4, 0x75, 0xbd, 0x5e, 0x27, 0xea, 0xda, 0x33, 0xef, 0x57, 0x5e, 0x69, 0x3c, 0xbf, 0xea, 0xfd, + 0xdd, 0x92, 0xf6, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x70, 0xd9, 0xa0, 0xf8, 0x48, 0x0d, 0x00, + 0x00, +} diff --git a/vendor/google.golang.org/appengine/internal/log/log_service.proto b/vendor/google.golang.org/appengine/internal/log/log_service.proto new file mode 100644 index 000000000..8981dc475 --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/log/log_service.proto @@ -0,0 +1,150 @@ +syntax = "proto2"; +option go_package = "log"; + +package appengine; + +message LogServiceError { + enum ErrorCode { + OK = 0; + INVALID_REQUEST = 1; + STORAGE_ERROR = 2; + } +} + +message UserAppLogLine { + required int64 timestamp_usec = 1; + required int64 level = 2; + required string message = 3; +} + +message UserAppLogGroup { + repeated UserAppLogLine log_line = 2; +} + +message FlushRequest { + optional bytes logs = 1; +} + +message SetStatusRequest { + required string status = 1; +} + + +message LogOffset { + optional bytes request_id = 1; +} + +message LogLine { + required int64 time = 1; + required int32 level = 2; + required string log_message = 3; +} + +message RequestLog { + required string app_id = 1; + optional string module_id = 37 [default="default"]; + required string version_id = 2; + required bytes request_id = 3; + optional LogOffset offset = 35; + required string ip = 4; + optional string nickname = 5; + required int64 start_time = 6; + required int64 end_time = 7; + required int64 latency = 8; + required int64 mcycles = 9; + required string method = 10; + required string resource = 11; + required string http_version = 12; + required int32 status = 13; + required int64 response_size = 14; + optional string referrer = 15; + optional string user_agent = 16; + required string url_map_entry = 17; + required string combined = 18; + optional int64 api_mcycles = 19; + optional string host = 20; + optional double cost = 21; + + optional string task_queue_name = 22; + optional string task_name = 23; + + optional bool was_loading_request = 24; + optional int64 pending_time = 25; + optional int32 replica_index = 26 [default = -1]; + optional bool finished = 27 [default = true]; + optional bytes clone_key = 28; + + repeated LogLine line = 29; + + optional bool lines_incomplete = 36; + optional bytes app_engine_release = 38; + + optional int32 exit_reason = 30; + optional bool was_throttled_for_time = 31; + optional bool was_throttled_for_requests = 32; + optional int64 throttled_time = 33; + + optional bytes server_name = 34; +} + +message LogModuleVersion { + optional string module_id = 1 [default="default"]; + optional string version_id = 2; +} + +message LogReadRequest { + required string app_id = 1; + repeated string version_id = 2; + repeated LogModuleVersion module_version = 19; + + optional int64 start_time = 3; + optional int64 end_time = 4; + optional LogOffset offset = 5; + repeated bytes request_id = 6; + + optional int32 minimum_log_level = 7; + optional bool include_incomplete = 8; + optional int64 count = 9; + + optional string combined_log_regex = 14; + optional string host_regex = 15; + optional int32 replica_index = 16; + + optional bool include_app_logs = 10; + optional int32 app_logs_per_request = 17; + optional bool include_host = 11; + optional bool include_all = 12; + optional bool cache_iterator = 13; + optional int32 num_shards = 18; +} + +message LogReadResponse { + repeated RequestLog log = 1; + optional LogOffset offset = 2; + optional int64 last_end_time = 3; +} + +message LogUsageRecord { + optional string version_id = 1; + optional int32 start_time = 2; + optional int32 end_time = 3; + optional int64 count = 4; + optional int64 total_size = 5; + optional int32 records = 6; +} + +message LogUsageRequest { + required string app_id = 1; + repeated string version_id = 2; + optional int32 start_time = 3; + optional int32 end_time = 4; + optional uint32 resolution_hours = 5 [default = 1]; + optional bool combine_versions = 6; + optional int32 usage_version = 7; + optional bool versions_only = 8; +} + +message LogUsageResponse { + repeated LogUsageRecord usage = 1; + optional LogUsageRecord summary = 2; +} diff --git a/vendor/google.golang.org/appengine/internal/mail/mail_service.pb.go b/vendor/google.golang.org/appengine/internal/mail/mail_service.pb.go new file mode 100644 index 000000000..f9c9cae9d --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/mail/mail_service.pb.go @@ -0,0 +1,355 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google.golang.org/appengine/internal/mail/mail_service.proto + +package mail + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +type MailServiceError_ErrorCode int32 + +const ( + MailServiceError_OK MailServiceError_ErrorCode = 0 + MailServiceError_INTERNAL_ERROR MailServiceError_ErrorCode = 1 + MailServiceError_BAD_REQUEST MailServiceError_ErrorCode = 2 + MailServiceError_UNAUTHORIZED_SENDER MailServiceError_ErrorCode = 3 + MailServiceError_INVALID_ATTACHMENT_TYPE MailServiceError_ErrorCode = 4 + MailServiceError_INVALID_HEADER_NAME MailServiceError_ErrorCode = 5 + MailServiceError_INVALID_CONTENT_ID MailServiceError_ErrorCode = 6 +) + +var MailServiceError_ErrorCode_name = map[int32]string{ + 0: "OK", + 1: "INTERNAL_ERROR", + 2: "BAD_REQUEST", + 3: "UNAUTHORIZED_SENDER", + 4: "INVALID_ATTACHMENT_TYPE", + 5: "INVALID_HEADER_NAME", + 6: "INVALID_CONTENT_ID", +} +var MailServiceError_ErrorCode_value = map[string]int32{ + "OK": 0, + "INTERNAL_ERROR": 1, + "BAD_REQUEST": 2, + "UNAUTHORIZED_SENDER": 3, + "INVALID_ATTACHMENT_TYPE": 4, + "INVALID_HEADER_NAME": 5, + "INVALID_CONTENT_ID": 6, +} + +func (x MailServiceError_ErrorCode) Enum() *MailServiceError_ErrorCode { + p := new(MailServiceError_ErrorCode) + *p = x + return p +} +func (x MailServiceError_ErrorCode) String() string { + return proto.EnumName(MailServiceError_ErrorCode_name, int32(x)) +} +func (x *MailServiceError_ErrorCode) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(MailServiceError_ErrorCode_value, data, "MailServiceError_ErrorCode") + if err != nil { + return err + } + *x = MailServiceError_ErrorCode(value) + return nil +} +func (MailServiceError_ErrorCode) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_mail_service_78722be3c4c01d17, []int{0, 0} +} + +type MailServiceError struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MailServiceError) Reset() { *m = MailServiceError{} } +func (m *MailServiceError) String() string { return proto.CompactTextString(m) } +func (*MailServiceError) ProtoMessage() {} +func (*MailServiceError) Descriptor() ([]byte, []int) { + return fileDescriptor_mail_service_78722be3c4c01d17, []int{0} +} +func (m *MailServiceError) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MailServiceError.Unmarshal(m, b) +} +func (m *MailServiceError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MailServiceError.Marshal(b, m, deterministic) +} +func (dst *MailServiceError) XXX_Merge(src proto.Message) { + xxx_messageInfo_MailServiceError.Merge(dst, src) +} +func (m *MailServiceError) XXX_Size() int { + return xxx_messageInfo_MailServiceError.Size(m) +} +func (m *MailServiceError) XXX_DiscardUnknown() { + xxx_messageInfo_MailServiceError.DiscardUnknown(m) +} + +var xxx_messageInfo_MailServiceError proto.InternalMessageInfo + +type MailAttachment struct { + FileName *string `protobuf:"bytes,1,req,name=FileName" json:"FileName,omitempty"` + Data []byte `protobuf:"bytes,2,req,name=Data" json:"Data,omitempty"` + ContentID *string `protobuf:"bytes,3,opt,name=ContentID" json:"ContentID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MailAttachment) Reset() { *m = MailAttachment{} } +func (m *MailAttachment) String() string { return proto.CompactTextString(m) } +func (*MailAttachment) ProtoMessage() {} +func (*MailAttachment) Descriptor() ([]byte, []int) { + return fileDescriptor_mail_service_78722be3c4c01d17, []int{1} +} +func (m *MailAttachment) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MailAttachment.Unmarshal(m, b) +} +func (m *MailAttachment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MailAttachment.Marshal(b, m, deterministic) +} +func (dst *MailAttachment) XXX_Merge(src proto.Message) { + xxx_messageInfo_MailAttachment.Merge(dst, src) +} +func (m *MailAttachment) XXX_Size() int { + return xxx_messageInfo_MailAttachment.Size(m) +} +func (m *MailAttachment) XXX_DiscardUnknown() { + xxx_messageInfo_MailAttachment.DiscardUnknown(m) +} + +var xxx_messageInfo_MailAttachment proto.InternalMessageInfo + +func (m *MailAttachment) GetFileName() string { + if m != nil && m.FileName != nil { + return *m.FileName + } + return "" +} + +func (m *MailAttachment) GetData() []byte { + if m != nil { + return m.Data + } + return nil +} + +func (m *MailAttachment) GetContentID() string { + if m != nil && m.ContentID != nil { + return *m.ContentID + } + return "" +} + +type MailHeader struct { + Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"` + Value *string `protobuf:"bytes,2,req,name=value" json:"value,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MailHeader) Reset() { *m = MailHeader{} } +func (m *MailHeader) String() string { return proto.CompactTextString(m) } +func (*MailHeader) ProtoMessage() {} +func (*MailHeader) Descriptor() ([]byte, []int) { + return fileDescriptor_mail_service_78722be3c4c01d17, []int{2} +} +func (m *MailHeader) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MailHeader.Unmarshal(m, b) +} +func (m *MailHeader) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MailHeader.Marshal(b, m, deterministic) +} +func (dst *MailHeader) XXX_Merge(src proto.Message) { + xxx_messageInfo_MailHeader.Merge(dst, src) +} +func (m *MailHeader) XXX_Size() int { + return xxx_messageInfo_MailHeader.Size(m) +} +func (m *MailHeader) XXX_DiscardUnknown() { + xxx_messageInfo_MailHeader.DiscardUnknown(m) +} + +var xxx_messageInfo_MailHeader proto.InternalMessageInfo + +func (m *MailHeader) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +func (m *MailHeader) GetValue() string { + if m != nil && m.Value != nil { + return *m.Value + } + return "" +} + +type MailMessage struct { + Sender *string `protobuf:"bytes,1,req,name=Sender" json:"Sender,omitempty"` + ReplyTo *string `protobuf:"bytes,2,opt,name=ReplyTo" json:"ReplyTo,omitempty"` + To []string `protobuf:"bytes,3,rep,name=To" json:"To,omitempty"` + Cc []string `protobuf:"bytes,4,rep,name=Cc" json:"Cc,omitempty"` + Bcc []string `protobuf:"bytes,5,rep,name=Bcc" json:"Bcc,omitempty"` + Subject *string `protobuf:"bytes,6,req,name=Subject" json:"Subject,omitempty"` + TextBody *string `protobuf:"bytes,7,opt,name=TextBody" json:"TextBody,omitempty"` + HtmlBody *string `protobuf:"bytes,8,opt,name=HtmlBody" json:"HtmlBody,omitempty"` + Attachment []*MailAttachment `protobuf:"bytes,9,rep,name=Attachment" json:"Attachment,omitempty"` + Header []*MailHeader `protobuf:"bytes,10,rep,name=Header" json:"Header,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MailMessage) Reset() { *m = MailMessage{} } +func (m *MailMessage) String() string { return proto.CompactTextString(m) } +func (*MailMessage) ProtoMessage() {} +func (*MailMessage) Descriptor() ([]byte, []int) { + return fileDescriptor_mail_service_78722be3c4c01d17, []int{3} +} +func (m *MailMessage) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MailMessage.Unmarshal(m, b) +} +func (m *MailMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MailMessage.Marshal(b, m, deterministic) +} +func (dst *MailMessage) XXX_Merge(src proto.Message) { + xxx_messageInfo_MailMessage.Merge(dst, src) +} +func (m *MailMessage) XXX_Size() int { + return xxx_messageInfo_MailMessage.Size(m) +} +func (m *MailMessage) XXX_DiscardUnknown() { + xxx_messageInfo_MailMessage.DiscardUnknown(m) +} + +var xxx_messageInfo_MailMessage proto.InternalMessageInfo + +func (m *MailMessage) GetSender() string { + if m != nil && m.Sender != nil { + return *m.Sender + } + return "" +} + +func (m *MailMessage) GetReplyTo() string { + if m != nil && m.ReplyTo != nil { + return *m.ReplyTo + } + return "" +} + +func (m *MailMessage) GetTo() []string { + if m != nil { + return m.To + } + return nil +} + +func (m *MailMessage) GetCc() []string { + if m != nil { + return m.Cc + } + return nil +} + +func (m *MailMessage) GetBcc() []string { + if m != nil { + return m.Bcc + } + return nil +} + +func (m *MailMessage) GetSubject() string { + if m != nil && m.Subject != nil { + return *m.Subject + } + return "" +} + +func (m *MailMessage) GetTextBody() string { + if m != nil && m.TextBody != nil { + return *m.TextBody + } + return "" +} + +func (m *MailMessage) GetHtmlBody() string { + if m != nil && m.HtmlBody != nil { + return *m.HtmlBody + } + return "" +} + +func (m *MailMessage) GetAttachment() []*MailAttachment { + if m != nil { + return m.Attachment + } + return nil +} + +func (m *MailMessage) GetHeader() []*MailHeader { + if m != nil { + return m.Header + } + return nil +} + +func init() { + proto.RegisterType((*MailServiceError)(nil), "appengine.MailServiceError") + proto.RegisterType((*MailAttachment)(nil), "appengine.MailAttachment") + proto.RegisterType((*MailHeader)(nil), "appengine.MailHeader") + proto.RegisterType((*MailMessage)(nil), "appengine.MailMessage") +} + +func init() { + proto.RegisterFile("google.golang.org/appengine/internal/mail/mail_service.proto", fileDescriptor_mail_service_78722be3c4c01d17) +} + +var fileDescriptor_mail_service_78722be3c4c01d17 = []byte{ + // 480 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x5c, 0x92, 0xcf, 0x6e, 0xd3, 0x40, + 0x10, 0xc6, 0x89, 0x9d, 0xb8, 0xf5, 0x04, 0x05, 0x6b, 0x81, 0x76, 0xf9, 0x73, 0x88, 0x72, 0xca, + 0x85, 0x44, 0xe2, 0x80, 0x84, 0xc4, 0xc5, 0xb1, 0x17, 0xc5, 0xa2, 0x71, 0x60, 0xb3, 0x41, 0xa2, + 0x07, 0xac, 0xc5, 0x19, 0x19, 0x23, 0xc7, 0x1b, 0x39, 0xdb, 0x8a, 0x3e, 0x0d, 0x4f, 0xc0, 0x8d, + 0x07, 0x44, 0x6b, 0xc7, 0x09, 0xf4, 0x62, 0xcd, 0x6f, 0xbf, 0xf9, 0x66, 0xac, 0x4f, 0x03, 0xef, + 0x32, 0xa5, 0xb2, 0x02, 0x27, 0x99, 0x2a, 0x64, 0x99, 0x4d, 0x54, 0x95, 0x4d, 0xe5, 0x6e, 0x87, + 0x65, 0x96, 0x97, 0x38, 0xcd, 0x4b, 0x8d, 0x55, 0x29, 0x8b, 0xe9, 0x56, 0xe6, 0xcd, 0x27, 0xd9, + 0x63, 0x75, 0x9b, 0xa7, 0x38, 0xd9, 0x55, 0x4a, 0x2b, 0xe2, 0x1e, 0x7b, 0x47, 0x7f, 0x3a, 0xe0, + 0x2d, 0x64, 0x5e, 0xac, 0x9a, 0x06, 0x56, 0x55, 0xaa, 0x1a, 0xfd, 0xea, 0x80, 0x5b, 0x57, 0x81, + 0xda, 0x20, 0x71, 0xc0, 0x5a, 0x7e, 0xf0, 0x1e, 0x10, 0x02, 0x83, 0x28, 0x16, 0x8c, 0xc7, 0xfe, + 0x55, 0xc2, 0x38, 0x5f, 0x72, 0xaf, 0x43, 0x1e, 0x41, 0x7f, 0xe6, 0x87, 0x09, 0x67, 0x9f, 0xd6, + 0x6c, 0x25, 0x3c, 0x8b, 0x5c, 0xc2, 0xe3, 0x75, 0xec, 0xaf, 0xc5, 0x7c, 0xc9, 0xa3, 0x6b, 0x16, + 0x26, 0x2b, 0x16, 0x87, 0x8c, 0x7b, 0x36, 0x79, 0x01, 0x97, 0x51, 0xfc, 0xd9, 0xbf, 0x8a, 0xc2, + 0xc4, 0x17, 0xc2, 0x0f, 0xe6, 0x0b, 0x16, 0x8b, 0x44, 0x7c, 0xf9, 0xc8, 0xbc, 0xae, 0x71, 0xb5, + 0xe2, 0x9c, 0xf9, 0x21, 0xe3, 0x49, 0xec, 0x2f, 0x98, 0xd7, 0x23, 0x17, 0x40, 0x5a, 0x21, 0x58, + 0xc6, 0xc2, 0x58, 0xa2, 0xd0, 0x73, 0x46, 0x5f, 0x61, 0x60, 0xfe, 0xda, 0xd7, 0x5a, 0xa6, 0xdf, + 0xb7, 0x58, 0x6a, 0xf2, 0x1c, 0xce, 0xdf, 0xe7, 0x05, 0xc6, 0x72, 0x8b, 0xb4, 0x33, 0xb4, 0xc6, + 0x2e, 0x3f, 0x32, 0x21, 0xd0, 0x0d, 0xa5, 0x96, 0xd4, 0x1a, 0x5a, 0xe3, 0x87, 0xbc, 0xae, 0xc9, + 0x4b, 0x70, 0x03, 0x55, 0x6a, 0x2c, 0x75, 0x14, 0x52, 0x7b, 0xd8, 0x19, 0xbb, 0xfc, 0xf4, 0x30, + 0x7a, 0x03, 0x60, 0xe6, 0xcf, 0x51, 0x6e, 0xb0, 0x32, 0xfe, 0xf2, 0x34, 0xb7, 0xae, 0xc9, 0x13, + 0xe8, 0xdd, 0xca, 0xe2, 0x06, 0xeb, 0xa1, 0x2e, 0x6f, 0x60, 0xf4, 0xdb, 0x82, 0xbe, 0x31, 0x2e, + 0x70, 0xbf, 0x97, 0x19, 0x92, 0x0b, 0x70, 0x56, 0x58, 0x6e, 0xb0, 0x3a, 0x78, 0x0f, 0x44, 0x28, + 0x9c, 0x71, 0xdc, 0x15, 0x77, 0x42, 0x51, 0xab, 0xde, 0xdd, 0x22, 0x19, 0x80, 0x25, 0x14, 0xb5, + 0x87, 0xf6, 0xd8, 0xe5, 0x56, 0xc3, 0x41, 0x4a, 0xbb, 0x0d, 0x07, 0x29, 0xf1, 0xc0, 0x9e, 0xa5, + 0x29, 0xed, 0xd5, 0x0f, 0xa6, 0x34, 0xb3, 0x56, 0x37, 0xdf, 0x7e, 0x60, 0xaa, 0xa9, 0x53, 0x2f, + 0x69, 0xd1, 0x64, 0x22, 0xf0, 0xa7, 0x9e, 0xa9, 0xcd, 0x1d, 0x3d, 0xab, 0xd7, 0x1c, 0xd9, 0x68, + 0x73, 0xbd, 0x2d, 0x6a, 0xed, 0xbc, 0xd1, 0x5a, 0x26, 0x6f, 0x01, 0x4e, 0xc9, 0x52, 0x77, 0x68, + 0x8f, 0xfb, 0xaf, 0x9f, 0x4d, 0x8e, 0x47, 0x33, 0xf9, 0x3f, 0x7a, 0xfe, 0x4f, 0x33, 0x79, 0x05, + 0x4e, 0x13, 0x1a, 0x85, 0xda, 0xf6, 0xf4, 0x9e, 0xad, 0x11, 0xf9, 0xa1, 0x69, 0xe6, 0x5c, 0x77, + 0xcd, 0x7d, 0xfe, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x4e, 0xd3, 0x01, 0x27, 0xd0, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/appengine/internal/mail/mail_service.proto b/vendor/google.golang.org/appengine/internal/mail/mail_service.proto new file mode 100644 index 000000000..4e57b7aa5 --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/mail/mail_service.proto @@ -0,0 +1,45 @@ +syntax = "proto2"; +option go_package = "mail"; + +package appengine; + +message MailServiceError { + enum ErrorCode { + OK = 0; + INTERNAL_ERROR = 1; + BAD_REQUEST = 2; + UNAUTHORIZED_SENDER = 3; + INVALID_ATTACHMENT_TYPE = 4; + INVALID_HEADER_NAME = 5; + INVALID_CONTENT_ID = 6; + } +} + +message MailAttachment { + required string FileName = 1; + required bytes Data = 2; + optional string ContentID = 3; +} + +message MailHeader { + required string name = 1; + required string value = 2; +} + +message MailMessage { + required string Sender = 1; + optional string ReplyTo = 2; + + repeated string To = 3; + repeated string Cc = 4; + repeated string Bcc = 5; + + required string Subject = 6; + + optional string TextBody = 7; + optional string HtmlBody = 8; + + repeated MailAttachment Attachment = 9; + + repeated MailHeader Header = 10; +} diff --git a/vendor/google.golang.org/appengine/internal/main.go b/vendor/google.golang.org/appengine/internal/main.go new file mode 100644 index 000000000..1e765312f --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/main.go @@ -0,0 +1,16 @@ +// Copyright 2011 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +// +build appengine + +package internal + +import ( + "appengine_internal" +) + +func Main() { + MainPath = "" + appengine_internal.Main() +} diff --git a/vendor/google.golang.org/appengine/internal/main_common.go b/vendor/google.golang.org/appengine/internal/main_common.go new file mode 100644 index 000000000..357dce4dd --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/main_common.go @@ -0,0 +1,7 @@ +package internal + +// MainPath stores the file path of the main package. On App Engine Standard +// using Go version 1.9 and below, this will be unset. On App Engine Flex and +// App Engine Standard second-gen (Go 1.11 and above), this will be the +// filepath to package main. +var MainPath string diff --git a/vendor/google.golang.org/appengine/internal/main_test.go b/vendor/google.golang.org/appengine/internal/main_test.go new file mode 100644 index 000000000..17308e0ab --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/main_test.go @@ -0,0 +1,18 @@ +// +build !appengine + +package internal + +import ( + "go/build" + "path/filepath" + "testing" +) + +func TestFindMainPath(t *testing.T) { + // Tests won't have package main, instead they have testing.tRunner + want := filepath.Join(build.Default.GOROOT, "src", "testing", "testing.go") + got := findMainPath() + if want != got { + t.Errorf("findMainPath: want %s, got %s", want, got) + } +} diff --git a/vendor/google.golang.org/appengine/internal/main_vm.go b/vendor/google.golang.org/appengine/internal/main_vm.go new file mode 100644 index 000000000..ddb79a333 --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/main_vm.go @@ -0,0 +1,69 @@ +// Copyright 2011 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +// +build !appengine + +package internal + +import ( + "io" + "log" + "net/http" + "net/url" + "os" + "path/filepath" + "runtime" +) + +func Main() { + MainPath = filepath.Dir(findMainPath()) + installHealthChecker(http.DefaultServeMux) + + port := "8080" + if s := os.Getenv("PORT"); s != "" { + port = s + } + + host := "" + if IsDevAppServer() { + host = "127.0.0.1" + } + if err := http.ListenAndServe(host+":"+port, http.HandlerFunc(handleHTTP)); err != nil { + log.Fatalf("http.ListenAndServe: %v", err) + } +} + +// Find the path to package main by looking at the root Caller. +func findMainPath() string { + pc := make([]uintptr, 100) + n := runtime.Callers(2, pc) + frames := runtime.CallersFrames(pc[:n]) + for { + frame, more := frames.Next() + // Tests won't have package main, instead they have testing.tRunner + if frame.Function == "main.main" || frame.Function == "testing.tRunner" { + return frame.File + } + if !more { + break + } + } + return "" +} + +func installHealthChecker(mux *http.ServeMux) { + // If no health check handler has been installed by this point, add a trivial one. + const healthPath = "/_ah/health" + hreq := &http.Request{ + Method: "GET", + URL: &url.URL{ + Path: healthPath, + }, + } + if _, pat := mux.Handler(hreq); pat != healthPath { + mux.HandleFunc(healthPath, func(w http.ResponseWriter, r *http.Request) { + io.WriteString(w, "ok") + }) + } +} diff --git a/vendor/google.golang.org/appengine/internal/memcache/memcache_service.pb.go b/vendor/google.golang.org/appengine/internal/memcache/memcache_service.pb.go new file mode 100644 index 000000000..2c1339930 --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/memcache/memcache_service.pb.go @@ -0,0 +1,1562 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google.golang.org/appengine/internal/memcache/memcache_service.proto + +package memcache + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +type MemcacheServiceError_ErrorCode int32 + +const ( + MemcacheServiceError_OK MemcacheServiceError_ErrorCode = 0 + MemcacheServiceError_UNSPECIFIED_ERROR MemcacheServiceError_ErrorCode = 1 + MemcacheServiceError_NAMESPACE_NOT_SET MemcacheServiceError_ErrorCode = 2 + MemcacheServiceError_PERMISSION_DENIED MemcacheServiceError_ErrorCode = 3 + MemcacheServiceError_INVALID_VALUE MemcacheServiceError_ErrorCode = 6 +) + +var MemcacheServiceError_ErrorCode_name = map[int32]string{ + 0: "OK", + 1: "UNSPECIFIED_ERROR", + 2: "NAMESPACE_NOT_SET", + 3: "PERMISSION_DENIED", + 6: "INVALID_VALUE", +} +var MemcacheServiceError_ErrorCode_value = map[string]int32{ + "OK": 0, + "UNSPECIFIED_ERROR": 1, + "NAMESPACE_NOT_SET": 2, + "PERMISSION_DENIED": 3, + "INVALID_VALUE": 6, +} + +func (x MemcacheServiceError_ErrorCode) Enum() *MemcacheServiceError_ErrorCode { + p := new(MemcacheServiceError_ErrorCode) + *p = x + return p +} +func (x MemcacheServiceError_ErrorCode) String() string { + return proto.EnumName(MemcacheServiceError_ErrorCode_name, int32(x)) +} +func (x *MemcacheServiceError_ErrorCode) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(MemcacheServiceError_ErrorCode_value, data, "MemcacheServiceError_ErrorCode") + if err != nil { + return err + } + *x = MemcacheServiceError_ErrorCode(value) + return nil +} +func (MemcacheServiceError_ErrorCode) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_memcache_service_e327a14e42649a60, []int{0, 0} +} + +type MemcacheSetRequest_SetPolicy int32 + +const ( + MemcacheSetRequest_SET MemcacheSetRequest_SetPolicy = 1 + MemcacheSetRequest_ADD MemcacheSetRequest_SetPolicy = 2 + MemcacheSetRequest_REPLACE MemcacheSetRequest_SetPolicy = 3 + MemcacheSetRequest_CAS MemcacheSetRequest_SetPolicy = 4 +) + +var MemcacheSetRequest_SetPolicy_name = map[int32]string{ + 1: "SET", + 2: "ADD", + 3: "REPLACE", + 4: "CAS", +} +var MemcacheSetRequest_SetPolicy_value = map[string]int32{ + "SET": 1, + "ADD": 2, + "REPLACE": 3, + "CAS": 4, +} + +func (x MemcacheSetRequest_SetPolicy) Enum() *MemcacheSetRequest_SetPolicy { + p := new(MemcacheSetRequest_SetPolicy) + *p = x + return p +} +func (x MemcacheSetRequest_SetPolicy) String() string { + return proto.EnumName(MemcacheSetRequest_SetPolicy_name, int32(x)) +} +func (x *MemcacheSetRequest_SetPolicy) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(MemcacheSetRequest_SetPolicy_value, data, "MemcacheSetRequest_SetPolicy") + if err != nil { + return err + } + *x = MemcacheSetRequest_SetPolicy(value) + return nil +} +func (MemcacheSetRequest_SetPolicy) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_memcache_service_e327a14e42649a60, []int{4, 0} +} + +type MemcacheSetResponse_SetStatusCode int32 + +const ( + MemcacheSetResponse_STORED MemcacheSetResponse_SetStatusCode = 1 + MemcacheSetResponse_NOT_STORED MemcacheSetResponse_SetStatusCode = 2 + MemcacheSetResponse_ERROR MemcacheSetResponse_SetStatusCode = 3 + MemcacheSetResponse_EXISTS MemcacheSetResponse_SetStatusCode = 4 +) + +var MemcacheSetResponse_SetStatusCode_name = map[int32]string{ + 1: "STORED", + 2: "NOT_STORED", + 3: "ERROR", + 4: "EXISTS", +} +var MemcacheSetResponse_SetStatusCode_value = map[string]int32{ + "STORED": 1, + "NOT_STORED": 2, + "ERROR": 3, + "EXISTS": 4, +} + +func (x MemcacheSetResponse_SetStatusCode) Enum() *MemcacheSetResponse_SetStatusCode { + p := new(MemcacheSetResponse_SetStatusCode) + *p = x + return p +} +func (x MemcacheSetResponse_SetStatusCode) String() string { + return proto.EnumName(MemcacheSetResponse_SetStatusCode_name, int32(x)) +} +func (x *MemcacheSetResponse_SetStatusCode) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(MemcacheSetResponse_SetStatusCode_value, data, "MemcacheSetResponse_SetStatusCode") + if err != nil { + return err + } + *x = MemcacheSetResponse_SetStatusCode(value) + return nil +} +func (MemcacheSetResponse_SetStatusCode) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_memcache_service_e327a14e42649a60, []int{5, 0} +} + +type MemcacheDeleteResponse_DeleteStatusCode int32 + +const ( + MemcacheDeleteResponse_DELETED MemcacheDeleteResponse_DeleteStatusCode = 1 + MemcacheDeleteResponse_NOT_FOUND MemcacheDeleteResponse_DeleteStatusCode = 2 +) + +var MemcacheDeleteResponse_DeleteStatusCode_name = map[int32]string{ + 1: "DELETED", + 2: "NOT_FOUND", +} +var MemcacheDeleteResponse_DeleteStatusCode_value = map[string]int32{ + "DELETED": 1, + "NOT_FOUND": 2, +} + +func (x MemcacheDeleteResponse_DeleteStatusCode) Enum() *MemcacheDeleteResponse_DeleteStatusCode { + p := new(MemcacheDeleteResponse_DeleteStatusCode) + *p = x + return p +} +func (x MemcacheDeleteResponse_DeleteStatusCode) String() string { + return proto.EnumName(MemcacheDeleteResponse_DeleteStatusCode_name, int32(x)) +} +func (x *MemcacheDeleteResponse_DeleteStatusCode) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(MemcacheDeleteResponse_DeleteStatusCode_value, data, "MemcacheDeleteResponse_DeleteStatusCode") + if err != nil { + return err + } + *x = MemcacheDeleteResponse_DeleteStatusCode(value) + return nil +} +func (MemcacheDeleteResponse_DeleteStatusCode) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_memcache_service_e327a14e42649a60, []int{7, 0} +} + +type MemcacheIncrementRequest_Direction int32 + +const ( + MemcacheIncrementRequest_INCREMENT MemcacheIncrementRequest_Direction = 1 + MemcacheIncrementRequest_DECREMENT MemcacheIncrementRequest_Direction = 2 +) + +var MemcacheIncrementRequest_Direction_name = map[int32]string{ + 1: "INCREMENT", + 2: "DECREMENT", +} +var MemcacheIncrementRequest_Direction_value = map[string]int32{ + "INCREMENT": 1, + "DECREMENT": 2, +} + +func (x MemcacheIncrementRequest_Direction) Enum() *MemcacheIncrementRequest_Direction { + p := new(MemcacheIncrementRequest_Direction) + *p = x + return p +} +func (x MemcacheIncrementRequest_Direction) String() string { + return proto.EnumName(MemcacheIncrementRequest_Direction_name, int32(x)) +} +func (x *MemcacheIncrementRequest_Direction) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(MemcacheIncrementRequest_Direction_value, data, "MemcacheIncrementRequest_Direction") + if err != nil { + return err + } + *x = MemcacheIncrementRequest_Direction(value) + return nil +} +func (MemcacheIncrementRequest_Direction) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_memcache_service_e327a14e42649a60, []int{8, 0} +} + +type MemcacheIncrementResponse_IncrementStatusCode int32 + +const ( + MemcacheIncrementResponse_OK MemcacheIncrementResponse_IncrementStatusCode = 1 + MemcacheIncrementResponse_NOT_CHANGED MemcacheIncrementResponse_IncrementStatusCode = 2 + MemcacheIncrementResponse_ERROR MemcacheIncrementResponse_IncrementStatusCode = 3 +) + +var MemcacheIncrementResponse_IncrementStatusCode_name = map[int32]string{ + 1: "OK", + 2: "NOT_CHANGED", + 3: "ERROR", +} +var MemcacheIncrementResponse_IncrementStatusCode_value = map[string]int32{ + "OK": 1, + "NOT_CHANGED": 2, + "ERROR": 3, +} + +func (x MemcacheIncrementResponse_IncrementStatusCode) Enum() *MemcacheIncrementResponse_IncrementStatusCode { + p := new(MemcacheIncrementResponse_IncrementStatusCode) + *p = x + return p +} +func (x MemcacheIncrementResponse_IncrementStatusCode) String() string { + return proto.EnumName(MemcacheIncrementResponse_IncrementStatusCode_name, int32(x)) +} +func (x *MemcacheIncrementResponse_IncrementStatusCode) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(MemcacheIncrementResponse_IncrementStatusCode_value, data, "MemcacheIncrementResponse_IncrementStatusCode") + if err != nil { + return err + } + *x = MemcacheIncrementResponse_IncrementStatusCode(value) + return nil +} +func (MemcacheIncrementResponse_IncrementStatusCode) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_memcache_service_e327a14e42649a60, []int{9, 0} +} + +type MemcacheServiceError struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MemcacheServiceError) Reset() { *m = MemcacheServiceError{} } +func (m *MemcacheServiceError) String() string { return proto.CompactTextString(m) } +func (*MemcacheServiceError) ProtoMessage() {} +func (*MemcacheServiceError) Descriptor() ([]byte, []int) { + return fileDescriptor_memcache_service_e327a14e42649a60, []int{0} +} +func (m *MemcacheServiceError) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MemcacheServiceError.Unmarshal(m, b) +} +func (m *MemcacheServiceError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MemcacheServiceError.Marshal(b, m, deterministic) +} +func (dst *MemcacheServiceError) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemcacheServiceError.Merge(dst, src) +} +func (m *MemcacheServiceError) XXX_Size() int { + return xxx_messageInfo_MemcacheServiceError.Size(m) +} +func (m *MemcacheServiceError) XXX_DiscardUnknown() { + xxx_messageInfo_MemcacheServiceError.DiscardUnknown(m) +} + +var xxx_messageInfo_MemcacheServiceError proto.InternalMessageInfo + +type AppOverride struct { + AppId *string `protobuf:"bytes,1,req,name=app_id,json=appId" json:"app_id,omitempty"` + NumMemcachegBackends *int32 `protobuf:"varint,2,opt,name=num_memcacheg_backends,json=numMemcachegBackends" json:"num_memcacheg_backends,omitempty"` // Deprecated: Do not use. + IgnoreShardlock *bool `protobuf:"varint,3,opt,name=ignore_shardlock,json=ignoreShardlock" json:"ignore_shardlock,omitempty"` // Deprecated: Do not use. + MemcachePoolHint *string `protobuf:"bytes,4,opt,name=memcache_pool_hint,json=memcachePoolHint" json:"memcache_pool_hint,omitempty"` // Deprecated: Do not use. + MemcacheShardingStrategy []byte `protobuf:"bytes,5,opt,name=memcache_sharding_strategy,json=memcacheShardingStrategy" json:"memcache_sharding_strategy,omitempty"` // Deprecated: Do not use. + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AppOverride) Reset() { *m = AppOverride{} } +func (m *AppOverride) String() string { return proto.CompactTextString(m) } +func (*AppOverride) ProtoMessage() {} +func (*AppOverride) Descriptor() ([]byte, []int) { + return fileDescriptor_memcache_service_e327a14e42649a60, []int{1} +} +func (m *AppOverride) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AppOverride.Unmarshal(m, b) +} +func (m *AppOverride) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AppOverride.Marshal(b, m, deterministic) +} +func (dst *AppOverride) XXX_Merge(src proto.Message) { + xxx_messageInfo_AppOverride.Merge(dst, src) +} +func (m *AppOverride) XXX_Size() int { + return xxx_messageInfo_AppOverride.Size(m) +} +func (m *AppOverride) XXX_DiscardUnknown() { + xxx_messageInfo_AppOverride.DiscardUnknown(m) +} + +var xxx_messageInfo_AppOverride proto.InternalMessageInfo + +func (m *AppOverride) GetAppId() string { + if m != nil && m.AppId != nil { + return *m.AppId + } + return "" +} + +// Deprecated: Do not use. +func (m *AppOverride) GetNumMemcachegBackends() int32 { + if m != nil && m.NumMemcachegBackends != nil { + return *m.NumMemcachegBackends + } + return 0 +} + +// Deprecated: Do not use. +func (m *AppOverride) GetIgnoreShardlock() bool { + if m != nil && m.IgnoreShardlock != nil { + return *m.IgnoreShardlock + } + return false +} + +// Deprecated: Do not use. +func (m *AppOverride) GetMemcachePoolHint() string { + if m != nil && m.MemcachePoolHint != nil { + return *m.MemcachePoolHint + } + return "" +} + +// Deprecated: Do not use. +func (m *AppOverride) GetMemcacheShardingStrategy() []byte { + if m != nil { + return m.MemcacheShardingStrategy + } + return nil +} + +type MemcacheGetRequest struct { + Key [][]byte `protobuf:"bytes,1,rep,name=key" json:"key,omitempty"` + NameSpace *string `protobuf:"bytes,2,opt,name=name_space,json=nameSpace,def=" json:"name_space,omitempty"` + ForCas *bool `protobuf:"varint,4,opt,name=for_cas,json=forCas" json:"for_cas,omitempty"` + Override *AppOverride `protobuf:"bytes,5,opt,name=override" json:"override,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MemcacheGetRequest) Reset() { *m = MemcacheGetRequest{} } +func (m *MemcacheGetRequest) String() string { return proto.CompactTextString(m) } +func (*MemcacheGetRequest) ProtoMessage() {} +func (*MemcacheGetRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_memcache_service_e327a14e42649a60, []int{2} +} +func (m *MemcacheGetRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MemcacheGetRequest.Unmarshal(m, b) +} +func (m *MemcacheGetRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MemcacheGetRequest.Marshal(b, m, deterministic) +} +func (dst *MemcacheGetRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemcacheGetRequest.Merge(dst, src) +} +func (m *MemcacheGetRequest) XXX_Size() int { + return xxx_messageInfo_MemcacheGetRequest.Size(m) +} +func (m *MemcacheGetRequest) XXX_DiscardUnknown() { + xxx_messageInfo_MemcacheGetRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_MemcacheGetRequest proto.InternalMessageInfo + +func (m *MemcacheGetRequest) GetKey() [][]byte { + if m != nil { + return m.Key + } + return nil +} + +func (m *MemcacheGetRequest) GetNameSpace() string { + if m != nil && m.NameSpace != nil { + return *m.NameSpace + } + return "" +} + +func (m *MemcacheGetRequest) GetForCas() bool { + if m != nil && m.ForCas != nil { + return *m.ForCas + } + return false +} + +func (m *MemcacheGetRequest) GetOverride() *AppOverride { + if m != nil { + return m.Override + } + return nil +} + +type MemcacheGetResponse struct { + Item []*MemcacheGetResponse_Item `protobuf:"group,1,rep,name=Item,json=item" json:"item,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MemcacheGetResponse) Reset() { *m = MemcacheGetResponse{} } +func (m *MemcacheGetResponse) String() string { return proto.CompactTextString(m) } +func (*MemcacheGetResponse) ProtoMessage() {} +func (*MemcacheGetResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_memcache_service_e327a14e42649a60, []int{3} +} +func (m *MemcacheGetResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MemcacheGetResponse.Unmarshal(m, b) +} +func (m *MemcacheGetResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MemcacheGetResponse.Marshal(b, m, deterministic) +} +func (dst *MemcacheGetResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemcacheGetResponse.Merge(dst, src) +} +func (m *MemcacheGetResponse) XXX_Size() int { + return xxx_messageInfo_MemcacheGetResponse.Size(m) +} +func (m *MemcacheGetResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MemcacheGetResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MemcacheGetResponse proto.InternalMessageInfo + +func (m *MemcacheGetResponse) GetItem() []*MemcacheGetResponse_Item { + if m != nil { + return m.Item + } + return nil +} + +type MemcacheGetResponse_Item struct { + Key []byte `protobuf:"bytes,2,req,name=key" json:"key,omitempty"` + Value []byte `protobuf:"bytes,3,req,name=value" json:"value,omitempty"` + Flags *uint32 `protobuf:"fixed32,4,opt,name=flags" json:"flags,omitempty"` + CasId *uint64 `protobuf:"fixed64,5,opt,name=cas_id,json=casId" json:"cas_id,omitempty"` + ExpiresInSeconds *int32 `protobuf:"varint,6,opt,name=expires_in_seconds,json=expiresInSeconds" json:"expires_in_seconds,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MemcacheGetResponse_Item) Reset() { *m = MemcacheGetResponse_Item{} } +func (m *MemcacheGetResponse_Item) String() string { return proto.CompactTextString(m) } +func (*MemcacheGetResponse_Item) ProtoMessage() {} +func (*MemcacheGetResponse_Item) Descriptor() ([]byte, []int) { + return fileDescriptor_memcache_service_e327a14e42649a60, []int{3, 0} +} +func (m *MemcacheGetResponse_Item) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MemcacheGetResponse_Item.Unmarshal(m, b) +} +func (m *MemcacheGetResponse_Item) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MemcacheGetResponse_Item.Marshal(b, m, deterministic) +} +func (dst *MemcacheGetResponse_Item) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemcacheGetResponse_Item.Merge(dst, src) +} +func (m *MemcacheGetResponse_Item) XXX_Size() int { + return xxx_messageInfo_MemcacheGetResponse_Item.Size(m) +} +func (m *MemcacheGetResponse_Item) XXX_DiscardUnknown() { + xxx_messageInfo_MemcacheGetResponse_Item.DiscardUnknown(m) +} + +var xxx_messageInfo_MemcacheGetResponse_Item proto.InternalMessageInfo + +func (m *MemcacheGetResponse_Item) GetKey() []byte { + if m != nil { + return m.Key + } + return nil +} + +func (m *MemcacheGetResponse_Item) GetValue() []byte { + if m != nil { + return m.Value + } + return nil +} + +func (m *MemcacheGetResponse_Item) GetFlags() uint32 { + if m != nil && m.Flags != nil { + return *m.Flags + } + return 0 +} + +func (m *MemcacheGetResponse_Item) GetCasId() uint64 { + if m != nil && m.CasId != nil { + return *m.CasId + } + return 0 +} + +func (m *MemcacheGetResponse_Item) GetExpiresInSeconds() int32 { + if m != nil && m.ExpiresInSeconds != nil { + return *m.ExpiresInSeconds + } + return 0 +} + +type MemcacheSetRequest struct { + Item []*MemcacheSetRequest_Item `protobuf:"group,1,rep,name=Item,json=item" json:"item,omitempty"` + NameSpace *string `protobuf:"bytes,7,opt,name=name_space,json=nameSpace,def=" json:"name_space,omitempty"` + Override *AppOverride `protobuf:"bytes,10,opt,name=override" json:"override,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MemcacheSetRequest) Reset() { *m = MemcacheSetRequest{} } +func (m *MemcacheSetRequest) String() string { return proto.CompactTextString(m) } +func (*MemcacheSetRequest) ProtoMessage() {} +func (*MemcacheSetRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_memcache_service_e327a14e42649a60, []int{4} +} +func (m *MemcacheSetRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MemcacheSetRequest.Unmarshal(m, b) +} +func (m *MemcacheSetRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MemcacheSetRequest.Marshal(b, m, deterministic) +} +func (dst *MemcacheSetRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemcacheSetRequest.Merge(dst, src) +} +func (m *MemcacheSetRequest) XXX_Size() int { + return xxx_messageInfo_MemcacheSetRequest.Size(m) +} +func (m *MemcacheSetRequest) XXX_DiscardUnknown() { + xxx_messageInfo_MemcacheSetRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_MemcacheSetRequest proto.InternalMessageInfo + +func (m *MemcacheSetRequest) GetItem() []*MemcacheSetRequest_Item { + if m != nil { + return m.Item + } + return nil +} + +func (m *MemcacheSetRequest) GetNameSpace() string { + if m != nil && m.NameSpace != nil { + return *m.NameSpace + } + return "" +} + +func (m *MemcacheSetRequest) GetOverride() *AppOverride { + if m != nil { + return m.Override + } + return nil +} + +type MemcacheSetRequest_Item struct { + Key []byte `protobuf:"bytes,2,req,name=key" json:"key,omitempty"` + Value []byte `protobuf:"bytes,3,req,name=value" json:"value,omitempty"` + Flags *uint32 `protobuf:"fixed32,4,opt,name=flags" json:"flags,omitempty"` + SetPolicy *MemcacheSetRequest_SetPolicy `protobuf:"varint,5,opt,name=set_policy,json=setPolicy,enum=appengine.MemcacheSetRequest_SetPolicy,def=1" json:"set_policy,omitempty"` + ExpirationTime *uint32 `protobuf:"fixed32,6,opt,name=expiration_time,json=expirationTime,def=0" json:"expiration_time,omitempty"` + CasId *uint64 `protobuf:"fixed64,8,opt,name=cas_id,json=casId" json:"cas_id,omitempty"` + ForCas *bool `protobuf:"varint,9,opt,name=for_cas,json=forCas" json:"for_cas,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MemcacheSetRequest_Item) Reset() { *m = MemcacheSetRequest_Item{} } +func (m *MemcacheSetRequest_Item) String() string { return proto.CompactTextString(m) } +func (*MemcacheSetRequest_Item) ProtoMessage() {} +func (*MemcacheSetRequest_Item) Descriptor() ([]byte, []int) { + return fileDescriptor_memcache_service_e327a14e42649a60, []int{4, 0} +} +func (m *MemcacheSetRequest_Item) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MemcacheSetRequest_Item.Unmarshal(m, b) +} +func (m *MemcacheSetRequest_Item) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MemcacheSetRequest_Item.Marshal(b, m, deterministic) +} +func (dst *MemcacheSetRequest_Item) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemcacheSetRequest_Item.Merge(dst, src) +} +func (m *MemcacheSetRequest_Item) XXX_Size() int { + return xxx_messageInfo_MemcacheSetRequest_Item.Size(m) +} +func (m *MemcacheSetRequest_Item) XXX_DiscardUnknown() { + xxx_messageInfo_MemcacheSetRequest_Item.DiscardUnknown(m) +} + +var xxx_messageInfo_MemcacheSetRequest_Item proto.InternalMessageInfo + +const Default_MemcacheSetRequest_Item_SetPolicy MemcacheSetRequest_SetPolicy = MemcacheSetRequest_SET +const Default_MemcacheSetRequest_Item_ExpirationTime uint32 = 0 + +func (m *MemcacheSetRequest_Item) GetKey() []byte { + if m != nil { + return m.Key + } + return nil +} + +func (m *MemcacheSetRequest_Item) GetValue() []byte { + if m != nil { + return m.Value + } + return nil +} + +func (m *MemcacheSetRequest_Item) GetFlags() uint32 { + if m != nil && m.Flags != nil { + return *m.Flags + } + return 0 +} + +func (m *MemcacheSetRequest_Item) GetSetPolicy() MemcacheSetRequest_SetPolicy { + if m != nil && m.SetPolicy != nil { + return *m.SetPolicy + } + return Default_MemcacheSetRequest_Item_SetPolicy +} + +func (m *MemcacheSetRequest_Item) GetExpirationTime() uint32 { + if m != nil && m.ExpirationTime != nil { + return *m.ExpirationTime + } + return Default_MemcacheSetRequest_Item_ExpirationTime +} + +func (m *MemcacheSetRequest_Item) GetCasId() uint64 { + if m != nil && m.CasId != nil { + return *m.CasId + } + return 0 +} + +func (m *MemcacheSetRequest_Item) GetForCas() bool { + if m != nil && m.ForCas != nil { + return *m.ForCas + } + return false +} + +type MemcacheSetResponse struct { + SetStatus []MemcacheSetResponse_SetStatusCode `protobuf:"varint,1,rep,name=set_status,json=setStatus,enum=appengine.MemcacheSetResponse_SetStatusCode" json:"set_status,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MemcacheSetResponse) Reset() { *m = MemcacheSetResponse{} } +func (m *MemcacheSetResponse) String() string { return proto.CompactTextString(m) } +func (*MemcacheSetResponse) ProtoMessage() {} +func (*MemcacheSetResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_memcache_service_e327a14e42649a60, []int{5} +} +func (m *MemcacheSetResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MemcacheSetResponse.Unmarshal(m, b) +} +func (m *MemcacheSetResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MemcacheSetResponse.Marshal(b, m, deterministic) +} +func (dst *MemcacheSetResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemcacheSetResponse.Merge(dst, src) +} +func (m *MemcacheSetResponse) XXX_Size() int { + return xxx_messageInfo_MemcacheSetResponse.Size(m) +} +func (m *MemcacheSetResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MemcacheSetResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MemcacheSetResponse proto.InternalMessageInfo + +func (m *MemcacheSetResponse) GetSetStatus() []MemcacheSetResponse_SetStatusCode { + if m != nil { + return m.SetStatus + } + return nil +} + +type MemcacheDeleteRequest struct { + Item []*MemcacheDeleteRequest_Item `protobuf:"group,1,rep,name=Item,json=item" json:"item,omitempty"` + NameSpace *string `protobuf:"bytes,4,opt,name=name_space,json=nameSpace,def=" json:"name_space,omitempty"` + Override *AppOverride `protobuf:"bytes,5,opt,name=override" json:"override,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MemcacheDeleteRequest) Reset() { *m = MemcacheDeleteRequest{} } +func (m *MemcacheDeleteRequest) String() string { return proto.CompactTextString(m) } +func (*MemcacheDeleteRequest) ProtoMessage() {} +func (*MemcacheDeleteRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_memcache_service_e327a14e42649a60, []int{6} +} +func (m *MemcacheDeleteRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MemcacheDeleteRequest.Unmarshal(m, b) +} +func (m *MemcacheDeleteRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MemcacheDeleteRequest.Marshal(b, m, deterministic) +} +func (dst *MemcacheDeleteRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemcacheDeleteRequest.Merge(dst, src) +} +func (m *MemcacheDeleteRequest) XXX_Size() int { + return xxx_messageInfo_MemcacheDeleteRequest.Size(m) +} +func (m *MemcacheDeleteRequest) XXX_DiscardUnknown() { + xxx_messageInfo_MemcacheDeleteRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_MemcacheDeleteRequest proto.InternalMessageInfo + +func (m *MemcacheDeleteRequest) GetItem() []*MemcacheDeleteRequest_Item { + if m != nil { + return m.Item + } + return nil +} + +func (m *MemcacheDeleteRequest) GetNameSpace() string { + if m != nil && m.NameSpace != nil { + return *m.NameSpace + } + return "" +} + +func (m *MemcacheDeleteRequest) GetOverride() *AppOverride { + if m != nil { + return m.Override + } + return nil +} + +type MemcacheDeleteRequest_Item struct { + Key []byte `protobuf:"bytes,2,req,name=key" json:"key,omitempty"` + DeleteTime *uint32 `protobuf:"fixed32,3,opt,name=delete_time,json=deleteTime,def=0" json:"delete_time,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MemcacheDeleteRequest_Item) Reset() { *m = MemcacheDeleteRequest_Item{} } +func (m *MemcacheDeleteRequest_Item) String() string { return proto.CompactTextString(m) } +func (*MemcacheDeleteRequest_Item) ProtoMessage() {} +func (*MemcacheDeleteRequest_Item) Descriptor() ([]byte, []int) { + return fileDescriptor_memcache_service_e327a14e42649a60, []int{6, 0} +} +func (m *MemcacheDeleteRequest_Item) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MemcacheDeleteRequest_Item.Unmarshal(m, b) +} +func (m *MemcacheDeleteRequest_Item) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MemcacheDeleteRequest_Item.Marshal(b, m, deterministic) +} +func (dst *MemcacheDeleteRequest_Item) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemcacheDeleteRequest_Item.Merge(dst, src) +} +func (m *MemcacheDeleteRequest_Item) XXX_Size() int { + return xxx_messageInfo_MemcacheDeleteRequest_Item.Size(m) +} +func (m *MemcacheDeleteRequest_Item) XXX_DiscardUnknown() { + xxx_messageInfo_MemcacheDeleteRequest_Item.DiscardUnknown(m) +} + +var xxx_messageInfo_MemcacheDeleteRequest_Item proto.InternalMessageInfo + +const Default_MemcacheDeleteRequest_Item_DeleteTime uint32 = 0 + +func (m *MemcacheDeleteRequest_Item) GetKey() []byte { + if m != nil { + return m.Key + } + return nil +} + +func (m *MemcacheDeleteRequest_Item) GetDeleteTime() uint32 { + if m != nil && m.DeleteTime != nil { + return *m.DeleteTime + } + return Default_MemcacheDeleteRequest_Item_DeleteTime +} + +type MemcacheDeleteResponse struct { + DeleteStatus []MemcacheDeleteResponse_DeleteStatusCode `protobuf:"varint,1,rep,name=delete_status,json=deleteStatus,enum=appengine.MemcacheDeleteResponse_DeleteStatusCode" json:"delete_status,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MemcacheDeleteResponse) Reset() { *m = MemcacheDeleteResponse{} } +func (m *MemcacheDeleteResponse) String() string { return proto.CompactTextString(m) } +func (*MemcacheDeleteResponse) ProtoMessage() {} +func (*MemcacheDeleteResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_memcache_service_e327a14e42649a60, []int{7} +} +func (m *MemcacheDeleteResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MemcacheDeleteResponse.Unmarshal(m, b) +} +func (m *MemcacheDeleteResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MemcacheDeleteResponse.Marshal(b, m, deterministic) +} +func (dst *MemcacheDeleteResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemcacheDeleteResponse.Merge(dst, src) +} +func (m *MemcacheDeleteResponse) XXX_Size() int { + return xxx_messageInfo_MemcacheDeleteResponse.Size(m) +} +func (m *MemcacheDeleteResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MemcacheDeleteResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MemcacheDeleteResponse proto.InternalMessageInfo + +func (m *MemcacheDeleteResponse) GetDeleteStatus() []MemcacheDeleteResponse_DeleteStatusCode { + if m != nil { + return m.DeleteStatus + } + return nil +} + +type MemcacheIncrementRequest struct { + Key []byte `protobuf:"bytes,1,req,name=key" json:"key,omitempty"` + NameSpace *string `protobuf:"bytes,4,opt,name=name_space,json=nameSpace,def=" json:"name_space,omitempty"` + Delta *uint64 `protobuf:"varint,2,opt,name=delta,def=1" json:"delta,omitempty"` + Direction *MemcacheIncrementRequest_Direction `protobuf:"varint,3,opt,name=direction,enum=appengine.MemcacheIncrementRequest_Direction,def=1" json:"direction,omitempty"` + InitialValue *uint64 `protobuf:"varint,5,opt,name=initial_value,json=initialValue" json:"initial_value,omitempty"` + InitialFlags *uint32 `protobuf:"fixed32,6,opt,name=initial_flags,json=initialFlags" json:"initial_flags,omitempty"` + Override *AppOverride `protobuf:"bytes,7,opt,name=override" json:"override,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MemcacheIncrementRequest) Reset() { *m = MemcacheIncrementRequest{} } +func (m *MemcacheIncrementRequest) String() string { return proto.CompactTextString(m) } +func (*MemcacheIncrementRequest) ProtoMessage() {} +func (*MemcacheIncrementRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_memcache_service_e327a14e42649a60, []int{8} +} +func (m *MemcacheIncrementRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MemcacheIncrementRequest.Unmarshal(m, b) +} +func (m *MemcacheIncrementRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MemcacheIncrementRequest.Marshal(b, m, deterministic) +} +func (dst *MemcacheIncrementRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemcacheIncrementRequest.Merge(dst, src) +} +func (m *MemcacheIncrementRequest) XXX_Size() int { + return xxx_messageInfo_MemcacheIncrementRequest.Size(m) +} +func (m *MemcacheIncrementRequest) XXX_DiscardUnknown() { + xxx_messageInfo_MemcacheIncrementRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_MemcacheIncrementRequest proto.InternalMessageInfo + +const Default_MemcacheIncrementRequest_Delta uint64 = 1 +const Default_MemcacheIncrementRequest_Direction MemcacheIncrementRequest_Direction = MemcacheIncrementRequest_INCREMENT + +func (m *MemcacheIncrementRequest) GetKey() []byte { + if m != nil { + return m.Key + } + return nil +} + +func (m *MemcacheIncrementRequest) GetNameSpace() string { + if m != nil && m.NameSpace != nil { + return *m.NameSpace + } + return "" +} + +func (m *MemcacheIncrementRequest) GetDelta() uint64 { + if m != nil && m.Delta != nil { + return *m.Delta + } + return Default_MemcacheIncrementRequest_Delta +} + +func (m *MemcacheIncrementRequest) GetDirection() MemcacheIncrementRequest_Direction { + if m != nil && m.Direction != nil { + return *m.Direction + } + return Default_MemcacheIncrementRequest_Direction +} + +func (m *MemcacheIncrementRequest) GetInitialValue() uint64 { + if m != nil && m.InitialValue != nil { + return *m.InitialValue + } + return 0 +} + +func (m *MemcacheIncrementRequest) GetInitialFlags() uint32 { + if m != nil && m.InitialFlags != nil { + return *m.InitialFlags + } + return 0 +} + +func (m *MemcacheIncrementRequest) GetOverride() *AppOverride { + if m != nil { + return m.Override + } + return nil +} + +type MemcacheIncrementResponse struct { + NewValue *uint64 `protobuf:"varint,1,opt,name=new_value,json=newValue" json:"new_value,omitempty"` + IncrementStatus *MemcacheIncrementResponse_IncrementStatusCode `protobuf:"varint,2,opt,name=increment_status,json=incrementStatus,enum=appengine.MemcacheIncrementResponse_IncrementStatusCode" json:"increment_status,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MemcacheIncrementResponse) Reset() { *m = MemcacheIncrementResponse{} } +func (m *MemcacheIncrementResponse) String() string { return proto.CompactTextString(m) } +func (*MemcacheIncrementResponse) ProtoMessage() {} +func (*MemcacheIncrementResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_memcache_service_e327a14e42649a60, []int{9} +} +func (m *MemcacheIncrementResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MemcacheIncrementResponse.Unmarshal(m, b) +} +func (m *MemcacheIncrementResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MemcacheIncrementResponse.Marshal(b, m, deterministic) +} +func (dst *MemcacheIncrementResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemcacheIncrementResponse.Merge(dst, src) +} +func (m *MemcacheIncrementResponse) XXX_Size() int { + return xxx_messageInfo_MemcacheIncrementResponse.Size(m) +} +func (m *MemcacheIncrementResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MemcacheIncrementResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MemcacheIncrementResponse proto.InternalMessageInfo + +func (m *MemcacheIncrementResponse) GetNewValue() uint64 { + if m != nil && m.NewValue != nil { + return *m.NewValue + } + return 0 +} + +func (m *MemcacheIncrementResponse) GetIncrementStatus() MemcacheIncrementResponse_IncrementStatusCode { + if m != nil && m.IncrementStatus != nil { + return *m.IncrementStatus + } + return MemcacheIncrementResponse_OK +} + +type MemcacheBatchIncrementRequest struct { + NameSpace *string `protobuf:"bytes,1,opt,name=name_space,json=nameSpace,def=" json:"name_space,omitempty"` + Item []*MemcacheIncrementRequest `protobuf:"bytes,2,rep,name=item" json:"item,omitempty"` + Override *AppOverride `protobuf:"bytes,3,opt,name=override" json:"override,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MemcacheBatchIncrementRequest) Reset() { *m = MemcacheBatchIncrementRequest{} } +func (m *MemcacheBatchIncrementRequest) String() string { return proto.CompactTextString(m) } +func (*MemcacheBatchIncrementRequest) ProtoMessage() {} +func (*MemcacheBatchIncrementRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_memcache_service_e327a14e42649a60, []int{10} +} +func (m *MemcacheBatchIncrementRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MemcacheBatchIncrementRequest.Unmarshal(m, b) +} +func (m *MemcacheBatchIncrementRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MemcacheBatchIncrementRequest.Marshal(b, m, deterministic) +} +func (dst *MemcacheBatchIncrementRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemcacheBatchIncrementRequest.Merge(dst, src) +} +func (m *MemcacheBatchIncrementRequest) XXX_Size() int { + return xxx_messageInfo_MemcacheBatchIncrementRequest.Size(m) +} +func (m *MemcacheBatchIncrementRequest) XXX_DiscardUnknown() { + xxx_messageInfo_MemcacheBatchIncrementRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_MemcacheBatchIncrementRequest proto.InternalMessageInfo + +func (m *MemcacheBatchIncrementRequest) GetNameSpace() string { + if m != nil && m.NameSpace != nil { + return *m.NameSpace + } + return "" +} + +func (m *MemcacheBatchIncrementRequest) GetItem() []*MemcacheIncrementRequest { + if m != nil { + return m.Item + } + return nil +} + +func (m *MemcacheBatchIncrementRequest) GetOverride() *AppOverride { + if m != nil { + return m.Override + } + return nil +} + +type MemcacheBatchIncrementResponse struct { + Item []*MemcacheIncrementResponse `protobuf:"bytes,1,rep,name=item" json:"item,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MemcacheBatchIncrementResponse) Reset() { *m = MemcacheBatchIncrementResponse{} } +func (m *MemcacheBatchIncrementResponse) String() string { return proto.CompactTextString(m) } +func (*MemcacheBatchIncrementResponse) ProtoMessage() {} +func (*MemcacheBatchIncrementResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_memcache_service_e327a14e42649a60, []int{11} +} +func (m *MemcacheBatchIncrementResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MemcacheBatchIncrementResponse.Unmarshal(m, b) +} +func (m *MemcacheBatchIncrementResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MemcacheBatchIncrementResponse.Marshal(b, m, deterministic) +} +func (dst *MemcacheBatchIncrementResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemcacheBatchIncrementResponse.Merge(dst, src) +} +func (m *MemcacheBatchIncrementResponse) XXX_Size() int { + return xxx_messageInfo_MemcacheBatchIncrementResponse.Size(m) +} +func (m *MemcacheBatchIncrementResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MemcacheBatchIncrementResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MemcacheBatchIncrementResponse proto.InternalMessageInfo + +func (m *MemcacheBatchIncrementResponse) GetItem() []*MemcacheIncrementResponse { + if m != nil { + return m.Item + } + return nil +} + +type MemcacheFlushRequest struct { + Override *AppOverride `protobuf:"bytes,1,opt,name=override" json:"override,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MemcacheFlushRequest) Reset() { *m = MemcacheFlushRequest{} } +func (m *MemcacheFlushRequest) String() string { return proto.CompactTextString(m) } +func (*MemcacheFlushRequest) ProtoMessage() {} +func (*MemcacheFlushRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_memcache_service_e327a14e42649a60, []int{12} +} +func (m *MemcacheFlushRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MemcacheFlushRequest.Unmarshal(m, b) +} +func (m *MemcacheFlushRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MemcacheFlushRequest.Marshal(b, m, deterministic) +} +func (dst *MemcacheFlushRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemcacheFlushRequest.Merge(dst, src) +} +func (m *MemcacheFlushRequest) XXX_Size() int { + return xxx_messageInfo_MemcacheFlushRequest.Size(m) +} +func (m *MemcacheFlushRequest) XXX_DiscardUnknown() { + xxx_messageInfo_MemcacheFlushRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_MemcacheFlushRequest proto.InternalMessageInfo + +func (m *MemcacheFlushRequest) GetOverride() *AppOverride { + if m != nil { + return m.Override + } + return nil +} + +type MemcacheFlushResponse struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MemcacheFlushResponse) Reset() { *m = MemcacheFlushResponse{} } +func (m *MemcacheFlushResponse) String() string { return proto.CompactTextString(m) } +func (*MemcacheFlushResponse) ProtoMessage() {} +func (*MemcacheFlushResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_memcache_service_e327a14e42649a60, []int{13} +} +func (m *MemcacheFlushResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MemcacheFlushResponse.Unmarshal(m, b) +} +func (m *MemcacheFlushResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MemcacheFlushResponse.Marshal(b, m, deterministic) +} +func (dst *MemcacheFlushResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemcacheFlushResponse.Merge(dst, src) +} +func (m *MemcacheFlushResponse) XXX_Size() int { + return xxx_messageInfo_MemcacheFlushResponse.Size(m) +} +func (m *MemcacheFlushResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MemcacheFlushResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MemcacheFlushResponse proto.InternalMessageInfo + +type MemcacheStatsRequest struct { + Override *AppOverride `protobuf:"bytes,1,opt,name=override" json:"override,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MemcacheStatsRequest) Reset() { *m = MemcacheStatsRequest{} } +func (m *MemcacheStatsRequest) String() string { return proto.CompactTextString(m) } +func (*MemcacheStatsRequest) ProtoMessage() {} +func (*MemcacheStatsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_memcache_service_e327a14e42649a60, []int{14} +} +func (m *MemcacheStatsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MemcacheStatsRequest.Unmarshal(m, b) +} +func (m *MemcacheStatsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MemcacheStatsRequest.Marshal(b, m, deterministic) +} +func (dst *MemcacheStatsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemcacheStatsRequest.Merge(dst, src) +} +func (m *MemcacheStatsRequest) XXX_Size() int { + return xxx_messageInfo_MemcacheStatsRequest.Size(m) +} +func (m *MemcacheStatsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_MemcacheStatsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_MemcacheStatsRequest proto.InternalMessageInfo + +func (m *MemcacheStatsRequest) GetOverride() *AppOverride { + if m != nil { + return m.Override + } + return nil +} + +type MergedNamespaceStats struct { + Hits *uint64 `protobuf:"varint,1,req,name=hits" json:"hits,omitempty"` + Misses *uint64 `protobuf:"varint,2,req,name=misses" json:"misses,omitempty"` + ByteHits *uint64 `protobuf:"varint,3,req,name=byte_hits,json=byteHits" json:"byte_hits,omitempty"` + Items *uint64 `protobuf:"varint,4,req,name=items" json:"items,omitempty"` + Bytes *uint64 `protobuf:"varint,5,req,name=bytes" json:"bytes,omitempty"` + OldestItemAge *uint32 `protobuf:"fixed32,6,req,name=oldest_item_age,json=oldestItemAge" json:"oldest_item_age,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MergedNamespaceStats) Reset() { *m = MergedNamespaceStats{} } +func (m *MergedNamespaceStats) String() string { return proto.CompactTextString(m) } +func (*MergedNamespaceStats) ProtoMessage() {} +func (*MergedNamespaceStats) Descriptor() ([]byte, []int) { + return fileDescriptor_memcache_service_e327a14e42649a60, []int{15} +} +func (m *MergedNamespaceStats) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MergedNamespaceStats.Unmarshal(m, b) +} +func (m *MergedNamespaceStats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MergedNamespaceStats.Marshal(b, m, deterministic) +} +func (dst *MergedNamespaceStats) XXX_Merge(src proto.Message) { + xxx_messageInfo_MergedNamespaceStats.Merge(dst, src) +} +func (m *MergedNamespaceStats) XXX_Size() int { + return xxx_messageInfo_MergedNamespaceStats.Size(m) +} +func (m *MergedNamespaceStats) XXX_DiscardUnknown() { + xxx_messageInfo_MergedNamespaceStats.DiscardUnknown(m) +} + +var xxx_messageInfo_MergedNamespaceStats proto.InternalMessageInfo + +func (m *MergedNamespaceStats) GetHits() uint64 { + if m != nil && m.Hits != nil { + return *m.Hits + } + return 0 +} + +func (m *MergedNamespaceStats) GetMisses() uint64 { + if m != nil && m.Misses != nil { + return *m.Misses + } + return 0 +} + +func (m *MergedNamespaceStats) GetByteHits() uint64 { + if m != nil && m.ByteHits != nil { + return *m.ByteHits + } + return 0 +} + +func (m *MergedNamespaceStats) GetItems() uint64 { + if m != nil && m.Items != nil { + return *m.Items + } + return 0 +} + +func (m *MergedNamespaceStats) GetBytes() uint64 { + if m != nil && m.Bytes != nil { + return *m.Bytes + } + return 0 +} + +func (m *MergedNamespaceStats) GetOldestItemAge() uint32 { + if m != nil && m.OldestItemAge != nil { + return *m.OldestItemAge + } + return 0 +} + +type MemcacheStatsResponse struct { + Stats *MergedNamespaceStats `protobuf:"bytes,1,opt,name=stats" json:"stats,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MemcacheStatsResponse) Reset() { *m = MemcacheStatsResponse{} } +func (m *MemcacheStatsResponse) String() string { return proto.CompactTextString(m) } +func (*MemcacheStatsResponse) ProtoMessage() {} +func (*MemcacheStatsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_memcache_service_e327a14e42649a60, []int{16} +} +func (m *MemcacheStatsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MemcacheStatsResponse.Unmarshal(m, b) +} +func (m *MemcacheStatsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MemcacheStatsResponse.Marshal(b, m, deterministic) +} +func (dst *MemcacheStatsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemcacheStatsResponse.Merge(dst, src) +} +func (m *MemcacheStatsResponse) XXX_Size() int { + return xxx_messageInfo_MemcacheStatsResponse.Size(m) +} +func (m *MemcacheStatsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MemcacheStatsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MemcacheStatsResponse proto.InternalMessageInfo + +func (m *MemcacheStatsResponse) GetStats() *MergedNamespaceStats { + if m != nil { + return m.Stats + } + return nil +} + +type MemcacheGrabTailRequest struct { + ItemCount *int32 `protobuf:"varint,1,req,name=item_count,json=itemCount" json:"item_count,omitempty"` + NameSpace *string `protobuf:"bytes,2,opt,name=name_space,json=nameSpace,def=" json:"name_space,omitempty"` + Override *AppOverride `protobuf:"bytes,3,opt,name=override" json:"override,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MemcacheGrabTailRequest) Reset() { *m = MemcacheGrabTailRequest{} } +func (m *MemcacheGrabTailRequest) String() string { return proto.CompactTextString(m) } +func (*MemcacheGrabTailRequest) ProtoMessage() {} +func (*MemcacheGrabTailRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_memcache_service_e327a14e42649a60, []int{17} +} +func (m *MemcacheGrabTailRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MemcacheGrabTailRequest.Unmarshal(m, b) +} +func (m *MemcacheGrabTailRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MemcacheGrabTailRequest.Marshal(b, m, deterministic) +} +func (dst *MemcacheGrabTailRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemcacheGrabTailRequest.Merge(dst, src) +} +func (m *MemcacheGrabTailRequest) XXX_Size() int { + return xxx_messageInfo_MemcacheGrabTailRequest.Size(m) +} +func (m *MemcacheGrabTailRequest) XXX_DiscardUnknown() { + xxx_messageInfo_MemcacheGrabTailRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_MemcacheGrabTailRequest proto.InternalMessageInfo + +func (m *MemcacheGrabTailRequest) GetItemCount() int32 { + if m != nil && m.ItemCount != nil { + return *m.ItemCount + } + return 0 +} + +func (m *MemcacheGrabTailRequest) GetNameSpace() string { + if m != nil && m.NameSpace != nil { + return *m.NameSpace + } + return "" +} + +func (m *MemcacheGrabTailRequest) GetOverride() *AppOverride { + if m != nil { + return m.Override + } + return nil +} + +type MemcacheGrabTailResponse struct { + Item []*MemcacheGrabTailResponse_Item `protobuf:"group,1,rep,name=Item,json=item" json:"item,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MemcacheGrabTailResponse) Reset() { *m = MemcacheGrabTailResponse{} } +func (m *MemcacheGrabTailResponse) String() string { return proto.CompactTextString(m) } +func (*MemcacheGrabTailResponse) ProtoMessage() {} +func (*MemcacheGrabTailResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_memcache_service_e327a14e42649a60, []int{18} +} +func (m *MemcacheGrabTailResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MemcacheGrabTailResponse.Unmarshal(m, b) +} +func (m *MemcacheGrabTailResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MemcacheGrabTailResponse.Marshal(b, m, deterministic) +} +func (dst *MemcacheGrabTailResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemcacheGrabTailResponse.Merge(dst, src) +} +func (m *MemcacheGrabTailResponse) XXX_Size() int { + return xxx_messageInfo_MemcacheGrabTailResponse.Size(m) +} +func (m *MemcacheGrabTailResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MemcacheGrabTailResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MemcacheGrabTailResponse proto.InternalMessageInfo + +func (m *MemcacheGrabTailResponse) GetItem() []*MemcacheGrabTailResponse_Item { + if m != nil { + return m.Item + } + return nil +} + +type MemcacheGrabTailResponse_Item struct { + Value []byte `protobuf:"bytes,2,req,name=value" json:"value,omitempty"` + Flags *uint32 `protobuf:"fixed32,3,opt,name=flags" json:"flags,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MemcacheGrabTailResponse_Item) Reset() { *m = MemcacheGrabTailResponse_Item{} } +func (m *MemcacheGrabTailResponse_Item) String() string { return proto.CompactTextString(m) } +func (*MemcacheGrabTailResponse_Item) ProtoMessage() {} +func (*MemcacheGrabTailResponse_Item) Descriptor() ([]byte, []int) { + return fileDescriptor_memcache_service_e327a14e42649a60, []int{18, 0} +} +func (m *MemcacheGrabTailResponse_Item) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MemcacheGrabTailResponse_Item.Unmarshal(m, b) +} +func (m *MemcacheGrabTailResponse_Item) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MemcacheGrabTailResponse_Item.Marshal(b, m, deterministic) +} +func (dst *MemcacheGrabTailResponse_Item) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemcacheGrabTailResponse_Item.Merge(dst, src) +} +func (m *MemcacheGrabTailResponse_Item) XXX_Size() int { + return xxx_messageInfo_MemcacheGrabTailResponse_Item.Size(m) +} +func (m *MemcacheGrabTailResponse_Item) XXX_DiscardUnknown() { + xxx_messageInfo_MemcacheGrabTailResponse_Item.DiscardUnknown(m) +} + +var xxx_messageInfo_MemcacheGrabTailResponse_Item proto.InternalMessageInfo + +func (m *MemcacheGrabTailResponse_Item) GetValue() []byte { + if m != nil { + return m.Value + } + return nil +} + +func (m *MemcacheGrabTailResponse_Item) GetFlags() uint32 { + if m != nil && m.Flags != nil { + return *m.Flags + } + return 0 +} + +func init() { + proto.RegisterType((*MemcacheServiceError)(nil), "appengine.MemcacheServiceError") + proto.RegisterType((*AppOverride)(nil), "appengine.AppOverride") + proto.RegisterType((*MemcacheGetRequest)(nil), "appengine.MemcacheGetRequest") + proto.RegisterType((*MemcacheGetResponse)(nil), "appengine.MemcacheGetResponse") + proto.RegisterType((*MemcacheGetResponse_Item)(nil), "appengine.MemcacheGetResponse.Item") + proto.RegisterType((*MemcacheSetRequest)(nil), "appengine.MemcacheSetRequest") + proto.RegisterType((*MemcacheSetRequest_Item)(nil), "appengine.MemcacheSetRequest.Item") + proto.RegisterType((*MemcacheSetResponse)(nil), "appengine.MemcacheSetResponse") + proto.RegisterType((*MemcacheDeleteRequest)(nil), "appengine.MemcacheDeleteRequest") + proto.RegisterType((*MemcacheDeleteRequest_Item)(nil), "appengine.MemcacheDeleteRequest.Item") + proto.RegisterType((*MemcacheDeleteResponse)(nil), "appengine.MemcacheDeleteResponse") + proto.RegisterType((*MemcacheIncrementRequest)(nil), "appengine.MemcacheIncrementRequest") + proto.RegisterType((*MemcacheIncrementResponse)(nil), "appengine.MemcacheIncrementResponse") + proto.RegisterType((*MemcacheBatchIncrementRequest)(nil), "appengine.MemcacheBatchIncrementRequest") + proto.RegisterType((*MemcacheBatchIncrementResponse)(nil), "appengine.MemcacheBatchIncrementResponse") + proto.RegisterType((*MemcacheFlushRequest)(nil), "appengine.MemcacheFlushRequest") + proto.RegisterType((*MemcacheFlushResponse)(nil), "appengine.MemcacheFlushResponse") + proto.RegisterType((*MemcacheStatsRequest)(nil), "appengine.MemcacheStatsRequest") + proto.RegisterType((*MergedNamespaceStats)(nil), "appengine.MergedNamespaceStats") + proto.RegisterType((*MemcacheStatsResponse)(nil), "appengine.MemcacheStatsResponse") + proto.RegisterType((*MemcacheGrabTailRequest)(nil), "appengine.MemcacheGrabTailRequest") + proto.RegisterType((*MemcacheGrabTailResponse)(nil), "appengine.MemcacheGrabTailResponse") + proto.RegisterType((*MemcacheGrabTailResponse_Item)(nil), "appengine.MemcacheGrabTailResponse.Item") +} + +func init() { + proto.RegisterFile("google.golang.org/appengine/internal/memcache/memcache_service.proto", fileDescriptor_memcache_service_e327a14e42649a60) +} + +var fileDescriptor_memcache_service_e327a14e42649a60 = []byte{ + // 1379 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x56, 0xcd, 0x92, 0xdb, 0xc4, + 0x16, 0x8e, 0x24, 0xff, 0xe9, 0x78, 0x7e, 0x94, 0xce, 0x64, 0xe2, 0x3b, 0xb7, 0x72, 0xe3, 0x52, + 0xee, 0xbd, 0x18, 0x2a, 0x71, 0x82, 0x29, 0x20, 0x99, 0xca, 0x02, 0x8f, 0xad, 0x49, 0x44, 0x66, + 0xec, 0xa9, 0x96, 0x33, 0x50, 0xd9, 0xa8, 0x3a, 0x72, 0x47, 0xa3, 0x1a, 0x59, 0x12, 0x6a, 0x39, + 0x21, 0x4b, 0x8a, 0x15, 0x55, 0xb0, 0xe3, 0x05, 0xd8, 0xb0, 0x63, 0xc5, 0x3b, 0xf0, 0x0c, 0x14, + 0x7b, 0x8a, 0x15, 0xef, 0x40, 0x75, 0x4b, 0xb2, 0x65, 0x8f, 0x67, 0x98, 0x02, 0x76, 0x3a, 0xa7, + 0x4f, 0xab, 0xcf, 0x77, 0xbe, 0xaf, 0x4f, 0x1f, 0xe8, 0xbb, 0x61, 0xe8, 0xfa, 0xb4, 0xed, 0x86, + 0x3e, 0x09, 0xdc, 0x76, 0x18, 0xbb, 0xf7, 0x48, 0x14, 0xd1, 0xc0, 0xf5, 0x02, 0x7a, 0xcf, 0x0b, + 0x12, 0x1a, 0x07, 0xc4, 0xbf, 0x37, 0xa1, 0x13, 0x87, 0x38, 0x27, 0x74, 0xf6, 0x61, 0x33, 0x1a, + 0xbf, 0xf2, 0x1c, 0xda, 0x8e, 0xe2, 0x30, 0x09, 0x91, 0x3a, 0xdb, 0xa3, 0x7f, 0x29, 0xc1, 0xd6, + 0x61, 0x16, 0x65, 0xa5, 0x41, 0x46, 0x1c, 0x87, 0xb1, 0x7e, 0x0a, 0xaa, 0xf8, 0xe8, 0x85, 0x63, + 0x8a, 0x2a, 0x20, 0x0f, 0x9f, 0x6a, 0x57, 0xd0, 0x75, 0xb8, 0xfa, 0x6c, 0x60, 0x1d, 0x19, 0x3d, + 0x73, 0xdf, 0x34, 0xfa, 0xb6, 0x81, 0xf1, 0x10, 0x6b, 0x12, 0x77, 0x0f, 0xba, 0x87, 0x86, 0x75, + 0xd4, 0xed, 0x19, 0xf6, 0x60, 0x38, 0xb2, 0x2d, 0x63, 0xa4, 0xc9, 0xdc, 0x7d, 0x64, 0xe0, 0x43, + 0xd3, 0xb2, 0xcc, 0xe1, 0xc0, 0xee, 0x1b, 0x03, 0xd3, 0xe8, 0x6b, 0x0a, 0xba, 0x0a, 0xeb, 0xe6, + 0xe0, 0xb8, 0x7b, 0x60, 0xf6, 0xed, 0xe3, 0xee, 0xc1, 0x33, 0x43, 0xab, 0xe8, 0x5f, 0xc8, 0x50, + 0xef, 0x46, 0xd1, 0xf0, 0x15, 0x8d, 0x63, 0x6f, 0x4c, 0xd1, 0x75, 0xa8, 0x90, 0x28, 0xb2, 0xbd, + 0x71, 0x43, 0x6a, 0xca, 0x2d, 0x15, 0x97, 0x49, 0x14, 0x99, 0x63, 0xf4, 0x00, 0xb6, 0x83, 0xe9, + 0xc4, 0xce, 0x51, 0xb9, 0xf6, 0x0b, 0xe2, 0x9c, 0xd2, 0x60, 0xcc, 0x1a, 0x72, 0x53, 0x6a, 0x95, + 0xf7, 0xe4, 0x86, 0x84, 0xb7, 0x82, 0xe9, 0x24, 0x07, 0xe4, 0xee, 0x65, 0xeb, 0xe8, 0x2e, 0x68, + 0x9e, 0x1b, 0x84, 0x31, 0xb5, 0xd9, 0x09, 0x89, 0xc7, 0x7e, 0xe8, 0x9c, 0x36, 0x94, 0xa6, 0xd4, + 0xaa, 0x89, 0x3d, 0x9b, 0xe9, 0x9a, 0x95, 0x2f, 0xa1, 0xfb, 0x80, 0x66, 0xa5, 0x8b, 0xc2, 0xd0, + 0xb7, 0x4f, 0xbc, 0x20, 0x69, 0x94, 0x9a, 0x52, 0x4b, 0x15, 0x1b, 0xb4, 0x7c, 0xf5, 0x28, 0x0c, + 0xfd, 0x27, 0x5e, 0x90, 0xa0, 0x8f, 0x60, 0x67, 0x5e, 0x6c, 0xfe, 0x1f, 0x2f, 0x70, 0x6d, 0x96, + 0xc4, 0x24, 0xa1, 0xee, 0x9b, 0x46, 0xb9, 0x29, 0xb5, 0xd6, 0xc4, 0xce, 0x46, 0x1e, 0x65, 0x65, + 0x41, 0x56, 0x16, 0xa3, 0x7f, 0x2b, 0x01, 0xca, 0x13, 0x7f, 0x4c, 0x13, 0x4c, 0x3f, 0x9b, 0x52, + 0x96, 0x20, 0x0d, 0x94, 0x53, 0xfa, 0xa6, 0x21, 0x35, 0x95, 0xd6, 0x1a, 0xe6, 0x9f, 0xe8, 0x16, + 0x40, 0x40, 0x26, 0xd4, 0x66, 0x11, 0x71, 0xa8, 0x40, 0xae, 0xee, 0x5e, 0xc1, 0x2a, 0xf7, 0x59, + 0xdc, 0x85, 0x6e, 0x40, 0xf5, 0x65, 0x18, 0xdb, 0x0e, 0x61, 0x22, 0xe5, 0x1a, 0xae, 0xbc, 0x0c, + 0xe3, 0x1e, 0x61, 0xa8, 0x03, 0xb5, 0x30, 0x2b, 0xb1, 0x48, 0xa9, 0xde, 0xd9, 0x6e, 0xcf, 0xa4, + 0xd0, 0x2e, 0x10, 0x80, 0x67, 0x71, 0xfa, 0x2f, 0x12, 0x5c, 0x5b, 0x48, 0x8b, 0x45, 0x61, 0xc0, + 0x28, 0xfa, 0x10, 0x4a, 0x5e, 0x42, 0x27, 0x22, 0x31, 0xe8, 0xdc, 0x2e, 0xfc, 0x67, 0x45, 0x74, + 0xdb, 0x4c, 0xe8, 0x04, 0x8b, 0x0d, 0x3b, 0x5f, 0x49, 0x50, 0xe2, 0x66, 0x8e, 0x4c, 0x6e, 0xca, + 0x39, 0xb2, 0x2d, 0x28, 0xbf, 0x22, 0xfe, 0x94, 0x36, 0x14, 0xe1, 0x4b, 0x0d, 0xee, 0x7d, 0xe9, + 0x13, 0x37, 0x05, 0x53, 0xc5, 0xa9, 0xc1, 0x25, 0xe2, 0x10, 0xc6, 0x25, 0xc2, 0x91, 0x54, 0x70, + 0xd9, 0x21, 0xcc, 0x1c, 0xa3, 0x3b, 0x80, 0xe8, 0xe7, 0x91, 0x17, 0x53, 0x66, 0x7b, 0x81, 0xcd, + 0xa8, 0x13, 0x72, 0x79, 0x54, 0xb8, 0x3c, 0xb0, 0x96, 0xad, 0x98, 0x81, 0x95, 0xfa, 0xf5, 0x9f, + 0x94, 0x79, 0xcd, 0xad, 0x79, 0xcd, 0x3f, 0x58, 0xc0, 0xa6, 0xaf, 0xc0, 0x36, 0x0f, 0x2e, 0x40, + 0x5b, 0x62, 0xa6, 0x7a, 0x96, 0x99, 0x22, 0x01, 0x70, 0x39, 0x02, 0x76, 0x7e, 0xff, 0x67, 0xea, + 0xf5, 0x14, 0x80, 0xd1, 0xc4, 0x8e, 0x42, 0xdf, 0x73, 0x52, 0x41, 0x6e, 0x74, 0xde, 0xba, 0x18, + 0x99, 0x45, 0x93, 0x23, 0x11, 0xbe, 0xab, 0x58, 0xc6, 0x08, 0xab, 0x2c, 0xb7, 0xd1, 0x3b, 0xb0, + 0x29, 0x6a, 0x49, 0x12, 0x2f, 0x0c, 0xec, 0xc4, 0x9b, 0x50, 0x51, 0xe2, 0xea, 0xae, 0x74, 0x1f, + 0x6f, 0xcc, 0x57, 0x46, 0xde, 0x84, 0x16, 0x88, 0xaa, 0x15, 0x89, 0x2a, 0x88, 0x54, 0x2d, 0x8a, + 0x54, 0x7f, 0x0f, 0xd4, 0xd9, 0xc1, 0xa8, 0x0a, 0xfc, 0x68, 0x4d, 0xe2, 0x1f, 0xdd, 0x7e, 0x5f, + 0x93, 0x51, 0x1d, 0xaa, 0xd8, 0x38, 0x3a, 0xe8, 0xf6, 0x0c, 0x4d, 0xe1, 0xde, 0x5e, 0xd7, 0xd2, + 0x4a, 0xfa, 0xf7, 0x05, 0x95, 0x5a, 0x05, 0x95, 0x66, 0xa8, 0x59, 0x42, 0x92, 0x29, 0x13, 0x7c, + 0x6e, 0x74, 0xee, 0x9c, 0x87, 0x3a, 0xd3, 0xaa, 0x45, 0x13, 0x4b, 0xc4, 0xf3, 0xd6, 0x27, 0x50, + 0xa7, 0xa6, 0xbe, 0x07, 0xeb, 0x0b, 0x6b, 0x08, 0xa0, 0x62, 0x8d, 0x86, 0xd8, 0xe8, 0x6b, 0x12, + 0xda, 0x00, 0x10, 0x9d, 0x2f, 0xb5, 0x65, 0xa4, 0x42, 0x39, 0x6d, 0x8f, 0x0a, 0x0f, 0x33, 0x3e, + 0x35, 0xad, 0x11, 0x4f, 0xf4, 0x57, 0x09, 0xae, 0xe7, 0x87, 0xf6, 0xa9, 0x4f, 0x13, 0x9a, 0x8b, + 0xee, 0xe1, 0x82, 0xe8, 0xfe, 0xb7, 0x22, 0xc9, 0x85, 0xf8, 0xf3, 0x75, 0x57, 0xba, 0x58, 0x77, + 0x97, 0xbc, 0xf8, 0x3b, 0x8f, 0xce, 0x95, 0x9d, 0x0e, 0xf5, 0xb1, 0x48, 0x25, 0x65, 0x5e, 0xc9, + 0x99, 0x87, 0xd4, 0xcb, 0x59, 0xd7, 0xbf, 0x93, 0x60, 0x7b, 0x39, 0xef, 0x8c, 0x93, 0x4f, 0x60, + 0x3d, 0xdb, 0xbe, 0x40, 0x4b, 0xe7, 0x02, 0xc4, 0x19, 0x33, 0xa9, 0x59, 0x20, 0x67, 0x6d, 0x5c, + 0xf0, 0xe8, 0x6d, 0xd0, 0x96, 0x23, 0xb8, 0x5c, 0xfa, 0xc6, 0x81, 0x31, 0x12, 0x1c, 0xad, 0x83, + 0xca, 0x39, 0xda, 0x1f, 0x3e, 0x1b, 0xf4, 0x35, 0x59, 0xff, 0x4d, 0x86, 0x46, 0x7e, 0x92, 0x19, + 0x38, 0x31, 0x9d, 0xd0, 0xe0, 0x6c, 0xdf, 0x95, 0x57, 0xf7, 0xdd, 0xd2, 0xaa, 0xbe, 0x5b, 0x1e, + 0x53, 0x3f, 0x21, 0xa2, 0x27, 0x97, 0x76, 0xa5, 0x77, 0x71, 0x6a, 0xa3, 0x63, 0x50, 0xc7, 0x5e, + 0x4c, 0x1d, 0x7e, 0x27, 0x44, 0xb9, 0x36, 0x3a, 0x77, 0x57, 0xa0, 0x5d, 0xce, 0xa1, 0xdd, 0xcf, + 0x37, 0xed, 0xaa, 0xe6, 0xa0, 0x87, 0x8d, 0x43, 0x63, 0x30, 0xc2, 0xf3, 0x5f, 0xa1, 0xdb, 0xb0, + 0xee, 0x05, 0x5e, 0xe2, 0x11, 0xdf, 0x4e, 0xfb, 0x00, 0xe7, 0xb6, 0x84, 0xd7, 0x32, 0xe7, 0xb1, + 0x68, 0x07, 0x85, 0xa0, 0xb4, 0x2d, 0x88, 0x9b, 0x3a, 0x0b, 0xda, 0x17, 0xdd, 0xa1, 0x28, 0x90, + 0xea, 0x25, 0x5f, 0x86, 0xb7, 0x41, 0x9d, 0x25, 0xc8, 0x4b, 0x3b, 0x4b, 0x31, 0xad, 0x74, 0xdf, + 0xc8, 0x4d, 0x59, 0xff, 0x59, 0x82, 0x7f, 0xad, 0x40, 0x99, 0x09, 0xe2, 0xdf, 0xa0, 0x06, 0xf4, + 0x75, 0x06, 0x41, 0x12, 0x10, 0x6a, 0x01, 0x7d, 0x9d, 0xa6, 0xef, 0x80, 0xe6, 0xe5, 0x3b, 0x72, + 0xc1, 0xc8, 0xa2, 0x84, 0x0f, 0x2e, 0x2e, 0x61, 0xfe, 0xf2, 0xe4, 0x9e, 0x82, 0x6c, 0x36, 0xbd, + 0x45, 0xa7, 0xfe, 0x10, 0xae, 0xad, 0x88, 0xcb, 0xc6, 0x1e, 0x09, 0x6d, 0x42, 0x9d, 0xeb, 0xa6, + 0xf7, 0xa4, 0x3b, 0x78, 0xbc, 0x74, 0xb9, 0xf5, 0x1f, 0x24, 0xb8, 0x99, 0x9f, 0xbe, 0x47, 0x12, + 0xe7, 0xe4, 0x8c, 0x92, 0x16, 0x75, 0x23, 0x9d, 0xd5, 0x4d, 0xfe, 0x94, 0xca, 0x4d, 0xa5, 0x55, + 0x5f, 0xf9, 0x94, 0x2e, 0xff, 0x33, 0xbb, 0xf7, 0x45, 0xd6, 0x94, 0x4b, 0xb2, 0xf6, 0x1c, 0xfe, + 0x73, 0x5e, 0xba, 0x19, 0x1d, 0x0f, 0x0a, 0x8d, 0xa8, 0xde, 0xf9, 0xef, 0x65, 0xaa, 0x9c, 0xe6, + 0xa3, 0x7f, 0x3c, 0x9f, 0x25, 0xf7, 0xfd, 0x29, 0x3b, 0xc9, 0x2b, 0x50, 0xcc, 0x53, 0xba, 0x64, + 0x9e, 0x37, 0xe6, 0x7d, 0x32, 0xfb, 0x57, 0x7a, 0x54, 0xf1, 0x10, 0x4e, 0x15, 0xfb, 0x3b, 0x87, + 0xfc, 0x28, 0xa6, 0xdf, 0xd8, 0xa5, 0xe3, 0x01, 0x99, 0x50, 0x41, 0x90, 0xf8, 0x27, 0x42, 0x50, + 0x3a, 0xf1, 0x12, 0x26, 0xae, 0x7f, 0x09, 0x8b, 0x6f, 0xb4, 0x0d, 0x95, 0x89, 0xc7, 0x18, 0x65, + 0xa2, 0x17, 0x96, 0x70, 0x66, 0x71, 0xf9, 0xbe, 0x78, 0x93, 0x50, 0x5b, 0x6c, 0x50, 0xc4, 0x52, + 0x8d, 0x3b, 0x9e, 0xf0, 0x4d, 0x5b, 0x50, 0xe6, 0xa5, 0xe1, 0x8f, 0x31, 0x5f, 0x48, 0x0d, 0xee, + 0xe5, 0x11, 0xac, 0x51, 0x4e, 0xbd, 0xc2, 0x40, 0xff, 0x87, 0xcd, 0xd0, 0x1f, 0x53, 0x96, 0xd8, + 0x3c, 0xca, 0x26, 0x2e, 0x7f, 0x55, 0xe5, 0x56, 0x15, 0xaf, 0xa7, 0x6e, 0xde, 0x8e, 0xbb, 0x2e, + 0xd5, 0x07, 0xf3, 0xd2, 0x64, 0x15, 0xc8, 0x98, 0x7b, 0x1f, 0xca, 0xfc, 0x86, 0xb0, 0x0c, 0xff, + 0xad, 0x05, 0xea, 0xce, 0xa2, 0xc4, 0x69, 0xb4, 0xfe, 0x8d, 0x04, 0x37, 0x66, 0x43, 0x5b, 0x4c, + 0x5e, 0x8c, 0x88, 0xe7, 0xe7, 0x55, 0xbd, 0x09, 0x20, 0x92, 0x71, 0xc2, 0x69, 0x90, 0x88, 0x72, + 0x94, 0xb1, 0xca, 0x3d, 0x3d, 0xee, 0xf8, 0xf3, 0x59, 0xf4, 0xaf, 0x48, 0xf4, 0x6b, 0x69, 0xde, + 0x97, 0xe7, 0xf9, 0x64, 0x18, 0x1f, 0x2d, 0x3c, 0x93, 0xad, 0x55, 0x73, 0xe7, 0xd2, 0x96, 0xe2, + 0xf0, 0xd9, 0xc9, 0x1e, 0xb5, 0xd9, 0xe4, 0x24, 0xaf, 0x9c, 0x9c, 0x94, 0xc2, 0xe4, 0xb4, 0x07, + 0xcf, 0x6b, 0xf9, 0xd0, 0xfe, 0x47, 0x00, 0x00, 0x00, 0xff, 0xff, 0x76, 0x8b, 0xe6, 0x6b, 0x80, + 0x0d, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/appengine/internal/memcache/memcache_service.proto b/vendor/google.golang.org/appengine/internal/memcache/memcache_service.proto new file mode 100644 index 000000000..5f0edcdc7 --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/memcache/memcache_service.proto @@ -0,0 +1,165 @@ +syntax = "proto2"; +option go_package = "memcache"; + +package appengine; + +message MemcacheServiceError { + enum ErrorCode { + OK = 0; + UNSPECIFIED_ERROR = 1; + NAMESPACE_NOT_SET = 2; + PERMISSION_DENIED = 3; + INVALID_VALUE = 6; + } +} + +message AppOverride { + required string app_id = 1; + + optional int32 num_memcacheg_backends = 2 [deprecated=true]; + optional bool ignore_shardlock = 3 [deprecated=true]; + optional string memcache_pool_hint = 4 [deprecated=true]; + optional bytes memcache_sharding_strategy = 5 [deprecated=true]; +} + +message MemcacheGetRequest { + repeated bytes key = 1; + optional string name_space = 2 [default = ""]; + optional bool for_cas = 4; + optional AppOverride override = 5; +} + +message MemcacheGetResponse { + repeated group Item = 1 { + required bytes key = 2; + required bytes value = 3; + optional fixed32 flags = 4; + optional fixed64 cas_id = 5; + optional int32 expires_in_seconds = 6; + } +} + +message MemcacheSetRequest { + enum SetPolicy { + SET = 1; + ADD = 2; + REPLACE = 3; + CAS = 4; + } + repeated group Item = 1 { + required bytes key = 2; + required bytes value = 3; + + optional fixed32 flags = 4; + optional SetPolicy set_policy = 5 [default = SET]; + optional fixed32 expiration_time = 6 [default = 0]; + + optional fixed64 cas_id = 8; + optional bool for_cas = 9; + } + optional string name_space = 7 [default = ""]; + optional AppOverride override = 10; +} + +message MemcacheSetResponse { + enum SetStatusCode { + STORED = 1; + NOT_STORED = 2; + ERROR = 3; + EXISTS = 4; + } + repeated SetStatusCode set_status = 1; +} + +message MemcacheDeleteRequest { + repeated group Item = 1 { + required bytes key = 2; + optional fixed32 delete_time = 3 [default = 0]; + } + optional string name_space = 4 [default = ""]; + optional AppOverride override = 5; +} + +message MemcacheDeleteResponse { + enum DeleteStatusCode { + DELETED = 1; + NOT_FOUND = 2; + } + repeated DeleteStatusCode delete_status = 1; +} + +message MemcacheIncrementRequest { + enum Direction { + INCREMENT = 1; + DECREMENT = 2; + } + required bytes key = 1; + optional string name_space = 4 [default = ""]; + + optional uint64 delta = 2 [default = 1]; + optional Direction direction = 3 [default = INCREMENT]; + + optional uint64 initial_value = 5; + optional fixed32 initial_flags = 6; + optional AppOverride override = 7; +} + +message MemcacheIncrementResponse { + enum IncrementStatusCode { + OK = 1; + NOT_CHANGED = 2; + ERROR = 3; + } + + optional uint64 new_value = 1; + optional IncrementStatusCode increment_status = 2; +} + +message MemcacheBatchIncrementRequest { + optional string name_space = 1 [default = ""]; + repeated MemcacheIncrementRequest item = 2; + optional AppOverride override = 3; +} + +message MemcacheBatchIncrementResponse { + repeated MemcacheIncrementResponse item = 1; +} + +message MemcacheFlushRequest { + optional AppOverride override = 1; +} + +message MemcacheFlushResponse { +} + +message MemcacheStatsRequest { + optional AppOverride override = 1; +} + +message MergedNamespaceStats { + required uint64 hits = 1; + required uint64 misses = 2; + required uint64 byte_hits = 3; + + required uint64 items = 4; + required uint64 bytes = 5; + + required fixed32 oldest_item_age = 6; +} + +message MemcacheStatsResponse { + optional MergedNamespaceStats stats = 1; +} + +message MemcacheGrabTailRequest { + required int32 item_count = 1; + optional string name_space = 2 [default = ""]; + optional AppOverride override = 3; +} + +message MemcacheGrabTailResponse { + repeated group Item = 1 { + required bytes value = 2; + optional fixed32 flags = 3; + } +} diff --git a/vendor/google.golang.org/appengine/internal/metadata.go b/vendor/google.golang.org/appengine/internal/metadata.go new file mode 100644 index 000000000..c4ba63bb4 --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/metadata.go @@ -0,0 +1,60 @@ +// Copyright 2014 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package internal + +// This file has code for accessing metadata. +// +// References: +// https://cloud.google.com/compute/docs/metadata + +import ( + "fmt" + "io/ioutil" + "net/http" + "net/url" +) + +const ( + metadataHost = "metadata" + metadataPath = "/computeMetadata/v1/" +) + +var ( + metadataRequestHeaders = http.Header{ + "Metadata-Flavor": []string{"Google"}, + } +) + +// TODO(dsymonds): Do we need to support default values, like Python? +func mustGetMetadata(key string) []byte { + b, err := getMetadata(key) + if err != nil { + panic(fmt.Sprintf("Metadata fetch failed for '%s': %v", key, err)) + } + return b +} + +func getMetadata(key string) ([]byte, error) { + // TODO(dsymonds): May need to use url.Parse to support keys with query args. + req := &http.Request{ + Method: "GET", + URL: &url.URL{ + Scheme: "http", + Host: metadataHost, + Path: metadataPath + key, + }, + Header: metadataRequestHeaders, + Host: metadataHost, + } + resp, err := http.DefaultClient.Do(req) + if err != nil { + return nil, err + } + defer resp.Body.Close() + if resp.StatusCode != 200 { + return nil, fmt.Errorf("metadata server returned HTTP %d", resp.StatusCode) + } + return ioutil.ReadAll(resp.Body) +} diff --git a/vendor/google.golang.org/appengine/internal/modules/modules_service.pb.go b/vendor/google.golang.org/appengine/internal/modules/modules_service.pb.go new file mode 100644 index 000000000..ddfc0c04a --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/modules/modules_service.pb.go @@ -0,0 +1,786 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google.golang.org/appengine/internal/modules/modules_service.proto + +package modules + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +type ModulesServiceError_ErrorCode int32 + +const ( + ModulesServiceError_OK ModulesServiceError_ErrorCode = 0 + ModulesServiceError_INVALID_MODULE ModulesServiceError_ErrorCode = 1 + ModulesServiceError_INVALID_VERSION ModulesServiceError_ErrorCode = 2 + ModulesServiceError_INVALID_INSTANCES ModulesServiceError_ErrorCode = 3 + ModulesServiceError_TRANSIENT_ERROR ModulesServiceError_ErrorCode = 4 + ModulesServiceError_UNEXPECTED_STATE ModulesServiceError_ErrorCode = 5 +) + +var ModulesServiceError_ErrorCode_name = map[int32]string{ + 0: "OK", + 1: "INVALID_MODULE", + 2: "INVALID_VERSION", + 3: "INVALID_INSTANCES", + 4: "TRANSIENT_ERROR", + 5: "UNEXPECTED_STATE", +} +var ModulesServiceError_ErrorCode_value = map[string]int32{ + "OK": 0, + "INVALID_MODULE": 1, + "INVALID_VERSION": 2, + "INVALID_INSTANCES": 3, + "TRANSIENT_ERROR": 4, + "UNEXPECTED_STATE": 5, +} + +func (x ModulesServiceError_ErrorCode) Enum() *ModulesServiceError_ErrorCode { + p := new(ModulesServiceError_ErrorCode) + *p = x + return p +} +func (x ModulesServiceError_ErrorCode) String() string { + return proto.EnumName(ModulesServiceError_ErrorCode_name, int32(x)) +} +func (x *ModulesServiceError_ErrorCode) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(ModulesServiceError_ErrorCode_value, data, "ModulesServiceError_ErrorCode") + if err != nil { + return err + } + *x = ModulesServiceError_ErrorCode(value) + return nil +} +func (ModulesServiceError_ErrorCode) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_modules_service_9cd3bffe4e91c59a, []int{0, 0} +} + +type ModulesServiceError struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ModulesServiceError) Reset() { *m = ModulesServiceError{} } +func (m *ModulesServiceError) String() string { return proto.CompactTextString(m) } +func (*ModulesServiceError) ProtoMessage() {} +func (*ModulesServiceError) Descriptor() ([]byte, []int) { + return fileDescriptor_modules_service_9cd3bffe4e91c59a, []int{0} +} +func (m *ModulesServiceError) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ModulesServiceError.Unmarshal(m, b) +} +func (m *ModulesServiceError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ModulesServiceError.Marshal(b, m, deterministic) +} +func (dst *ModulesServiceError) XXX_Merge(src proto.Message) { + xxx_messageInfo_ModulesServiceError.Merge(dst, src) +} +func (m *ModulesServiceError) XXX_Size() int { + return xxx_messageInfo_ModulesServiceError.Size(m) +} +func (m *ModulesServiceError) XXX_DiscardUnknown() { + xxx_messageInfo_ModulesServiceError.DiscardUnknown(m) +} + +var xxx_messageInfo_ModulesServiceError proto.InternalMessageInfo + +type GetModulesRequest struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetModulesRequest) Reset() { *m = GetModulesRequest{} } +func (m *GetModulesRequest) String() string { return proto.CompactTextString(m) } +func (*GetModulesRequest) ProtoMessage() {} +func (*GetModulesRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_modules_service_9cd3bffe4e91c59a, []int{1} +} +func (m *GetModulesRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetModulesRequest.Unmarshal(m, b) +} +func (m *GetModulesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetModulesRequest.Marshal(b, m, deterministic) +} +func (dst *GetModulesRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetModulesRequest.Merge(dst, src) +} +func (m *GetModulesRequest) XXX_Size() int { + return xxx_messageInfo_GetModulesRequest.Size(m) +} +func (m *GetModulesRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetModulesRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetModulesRequest proto.InternalMessageInfo + +type GetModulesResponse struct { + Module []string `protobuf:"bytes,1,rep,name=module" json:"module,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetModulesResponse) Reset() { *m = GetModulesResponse{} } +func (m *GetModulesResponse) String() string { return proto.CompactTextString(m) } +func (*GetModulesResponse) ProtoMessage() {} +func (*GetModulesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_modules_service_9cd3bffe4e91c59a, []int{2} +} +func (m *GetModulesResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetModulesResponse.Unmarshal(m, b) +} +func (m *GetModulesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetModulesResponse.Marshal(b, m, deterministic) +} +func (dst *GetModulesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetModulesResponse.Merge(dst, src) +} +func (m *GetModulesResponse) XXX_Size() int { + return xxx_messageInfo_GetModulesResponse.Size(m) +} +func (m *GetModulesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_GetModulesResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_GetModulesResponse proto.InternalMessageInfo + +func (m *GetModulesResponse) GetModule() []string { + if m != nil { + return m.Module + } + return nil +} + +type GetVersionsRequest struct { + Module *string `protobuf:"bytes,1,opt,name=module" json:"module,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetVersionsRequest) Reset() { *m = GetVersionsRequest{} } +func (m *GetVersionsRequest) String() string { return proto.CompactTextString(m) } +func (*GetVersionsRequest) ProtoMessage() {} +func (*GetVersionsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_modules_service_9cd3bffe4e91c59a, []int{3} +} +func (m *GetVersionsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetVersionsRequest.Unmarshal(m, b) +} +func (m *GetVersionsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetVersionsRequest.Marshal(b, m, deterministic) +} +func (dst *GetVersionsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetVersionsRequest.Merge(dst, src) +} +func (m *GetVersionsRequest) XXX_Size() int { + return xxx_messageInfo_GetVersionsRequest.Size(m) +} +func (m *GetVersionsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetVersionsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetVersionsRequest proto.InternalMessageInfo + +func (m *GetVersionsRequest) GetModule() string { + if m != nil && m.Module != nil { + return *m.Module + } + return "" +} + +type GetVersionsResponse struct { + Version []string `protobuf:"bytes,1,rep,name=version" json:"version,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetVersionsResponse) Reset() { *m = GetVersionsResponse{} } +func (m *GetVersionsResponse) String() string { return proto.CompactTextString(m) } +func (*GetVersionsResponse) ProtoMessage() {} +func (*GetVersionsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_modules_service_9cd3bffe4e91c59a, []int{4} +} +func (m *GetVersionsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetVersionsResponse.Unmarshal(m, b) +} +func (m *GetVersionsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetVersionsResponse.Marshal(b, m, deterministic) +} +func (dst *GetVersionsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetVersionsResponse.Merge(dst, src) +} +func (m *GetVersionsResponse) XXX_Size() int { + return xxx_messageInfo_GetVersionsResponse.Size(m) +} +func (m *GetVersionsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_GetVersionsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_GetVersionsResponse proto.InternalMessageInfo + +func (m *GetVersionsResponse) GetVersion() []string { + if m != nil { + return m.Version + } + return nil +} + +type GetDefaultVersionRequest struct { + Module *string `protobuf:"bytes,1,opt,name=module" json:"module,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetDefaultVersionRequest) Reset() { *m = GetDefaultVersionRequest{} } +func (m *GetDefaultVersionRequest) String() string { return proto.CompactTextString(m) } +func (*GetDefaultVersionRequest) ProtoMessage() {} +func (*GetDefaultVersionRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_modules_service_9cd3bffe4e91c59a, []int{5} +} +func (m *GetDefaultVersionRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetDefaultVersionRequest.Unmarshal(m, b) +} +func (m *GetDefaultVersionRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetDefaultVersionRequest.Marshal(b, m, deterministic) +} +func (dst *GetDefaultVersionRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetDefaultVersionRequest.Merge(dst, src) +} +func (m *GetDefaultVersionRequest) XXX_Size() int { + return xxx_messageInfo_GetDefaultVersionRequest.Size(m) +} +func (m *GetDefaultVersionRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetDefaultVersionRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetDefaultVersionRequest proto.InternalMessageInfo + +func (m *GetDefaultVersionRequest) GetModule() string { + if m != nil && m.Module != nil { + return *m.Module + } + return "" +} + +type GetDefaultVersionResponse struct { + Version *string `protobuf:"bytes,1,req,name=version" json:"version,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetDefaultVersionResponse) Reset() { *m = GetDefaultVersionResponse{} } +func (m *GetDefaultVersionResponse) String() string { return proto.CompactTextString(m) } +func (*GetDefaultVersionResponse) ProtoMessage() {} +func (*GetDefaultVersionResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_modules_service_9cd3bffe4e91c59a, []int{6} +} +func (m *GetDefaultVersionResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetDefaultVersionResponse.Unmarshal(m, b) +} +func (m *GetDefaultVersionResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetDefaultVersionResponse.Marshal(b, m, deterministic) +} +func (dst *GetDefaultVersionResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetDefaultVersionResponse.Merge(dst, src) +} +func (m *GetDefaultVersionResponse) XXX_Size() int { + return xxx_messageInfo_GetDefaultVersionResponse.Size(m) +} +func (m *GetDefaultVersionResponse) XXX_DiscardUnknown() { + xxx_messageInfo_GetDefaultVersionResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_GetDefaultVersionResponse proto.InternalMessageInfo + +func (m *GetDefaultVersionResponse) GetVersion() string { + if m != nil && m.Version != nil { + return *m.Version + } + return "" +} + +type GetNumInstancesRequest struct { + Module *string `protobuf:"bytes,1,opt,name=module" json:"module,omitempty"` + Version *string `protobuf:"bytes,2,opt,name=version" json:"version,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetNumInstancesRequest) Reset() { *m = GetNumInstancesRequest{} } +func (m *GetNumInstancesRequest) String() string { return proto.CompactTextString(m) } +func (*GetNumInstancesRequest) ProtoMessage() {} +func (*GetNumInstancesRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_modules_service_9cd3bffe4e91c59a, []int{7} +} +func (m *GetNumInstancesRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetNumInstancesRequest.Unmarshal(m, b) +} +func (m *GetNumInstancesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetNumInstancesRequest.Marshal(b, m, deterministic) +} +func (dst *GetNumInstancesRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetNumInstancesRequest.Merge(dst, src) +} +func (m *GetNumInstancesRequest) XXX_Size() int { + return xxx_messageInfo_GetNumInstancesRequest.Size(m) +} +func (m *GetNumInstancesRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetNumInstancesRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetNumInstancesRequest proto.InternalMessageInfo + +func (m *GetNumInstancesRequest) GetModule() string { + if m != nil && m.Module != nil { + return *m.Module + } + return "" +} + +func (m *GetNumInstancesRequest) GetVersion() string { + if m != nil && m.Version != nil { + return *m.Version + } + return "" +} + +type GetNumInstancesResponse struct { + Instances *int64 `protobuf:"varint,1,req,name=instances" json:"instances,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetNumInstancesResponse) Reset() { *m = GetNumInstancesResponse{} } +func (m *GetNumInstancesResponse) String() string { return proto.CompactTextString(m) } +func (*GetNumInstancesResponse) ProtoMessage() {} +func (*GetNumInstancesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_modules_service_9cd3bffe4e91c59a, []int{8} +} +func (m *GetNumInstancesResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetNumInstancesResponse.Unmarshal(m, b) +} +func (m *GetNumInstancesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetNumInstancesResponse.Marshal(b, m, deterministic) +} +func (dst *GetNumInstancesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetNumInstancesResponse.Merge(dst, src) +} +func (m *GetNumInstancesResponse) XXX_Size() int { + return xxx_messageInfo_GetNumInstancesResponse.Size(m) +} +func (m *GetNumInstancesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_GetNumInstancesResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_GetNumInstancesResponse proto.InternalMessageInfo + +func (m *GetNumInstancesResponse) GetInstances() int64 { + if m != nil && m.Instances != nil { + return *m.Instances + } + return 0 +} + +type SetNumInstancesRequest struct { + Module *string `protobuf:"bytes,1,opt,name=module" json:"module,omitempty"` + Version *string `protobuf:"bytes,2,opt,name=version" json:"version,omitempty"` + Instances *int64 `protobuf:"varint,3,req,name=instances" json:"instances,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SetNumInstancesRequest) Reset() { *m = SetNumInstancesRequest{} } +func (m *SetNumInstancesRequest) String() string { return proto.CompactTextString(m) } +func (*SetNumInstancesRequest) ProtoMessage() {} +func (*SetNumInstancesRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_modules_service_9cd3bffe4e91c59a, []int{9} +} +func (m *SetNumInstancesRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SetNumInstancesRequest.Unmarshal(m, b) +} +func (m *SetNumInstancesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SetNumInstancesRequest.Marshal(b, m, deterministic) +} +func (dst *SetNumInstancesRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_SetNumInstancesRequest.Merge(dst, src) +} +func (m *SetNumInstancesRequest) XXX_Size() int { + return xxx_messageInfo_SetNumInstancesRequest.Size(m) +} +func (m *SetNumInstancesRequest) XXX_DiscardUnknown() { + xxx_messageInfo_SetNumInstancesRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_SetNumInstancesRequest proto.InternalMessageInfo + +func (m *SetNumInstancesRequest) GetModule() string { + if m != nil && m.Module != nil { + return *m.Module + } + return "" +} + +func (m *SetNumInstancesRequest) GetVersion() string { + if m != nil && m.Version != nil { + return *m.Version + } + return "" +} + +func (m *SetNumInstancesRequest) GetInstances() int64 { + if m != nil && m.Instances != nil { + return *m.Instances + } + return 0 +} + +type SetNumInstancesResponse struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SetNumInstancesResponse) Reset() { *m = SetNumInstancesResponse{} } +func (m *SetNumInstancesResponse) String() string { return proto.CompactTextString(m) } +func (*SetNumInstancesResponse) ProtoMessage() {} +func (*SetNumInstancesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_modules_service_9cd3bffe4e91c59a, []int{10} +} +func (m *SetNumInstancesResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SetNumInstancesResponse.Unmarshal(m, b) +} +func (m *SetNumInstancesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SetNumInstancesResponse.Marshal(b, m, deterministic) +} +func (dst *SetNumInstancesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_SetNumInstancesResponse.Merge(dst, src) +} +func (m *SetNumInstancesResponse) XXX_Size() int { + return xxx_messageInfo_SetNumInstancesResponse.Size(m) +} +func (m *SetNumInstancesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_SetNumInstancesResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_SetNumInstancesResponse proto.InternalMessageInfo + +type StartModuleRequest struct { + Module *string `protobuf:"bytes,1,req,name=module" json:"module,omitempty"` + Version *string `protobuf:"bytes,2,req,name=version" json:"version,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *StartModuleRequest) Reset() { *m = StartModuleRequest{} } +func (m *StartModuleRequest) String() string { return proto.CompactTextString(m) } +func (*StartModuleRequest) ProtoMessage() {} +func (*StartModuleRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_modules_service_9cd3bffe4e91c59a, []int{11} +} +func (m *StartModuleRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_StartModuleRequest.Unmarshal(m, b) +} +func (m *StartModuleRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_StartModuleRequest.Marshal(b, m, deterministic) +} +func (dst *StartModuleRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_StartModuleRequest.Merge(dst, src) +} +func (m *StartModuleRequest) XXX_Size() int { + return xxx_messageInfo_StartModuleRequest.Size(m) +} +func (m *StartModuleRequest) XXX_DiscardUnknown() { + xxx_messageInfo_StartModuleRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_StartModuleRequest proto.InternalMessageInfo + +func (m *StartModuleRequest) GetModule() string { + if m != nil && m.Module != nil { + return *m.Module + } + return "" +} + +func (m *StartModuleRequest) GetVersion() string { + if m != nil && m.Version != nil { + return *m.Version + } + return "" +} + +type StartModuleResponse struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *StartModuleResponse) Reset() { *m = StartModuleResponse{} } +func (m *StartModuleResponse) String() string { return proto.CompactTextString(m) } +func (*StartModuleResponse) ProtoMessage() {} +func (*StartModuleResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_modules_service_9cd3bffe4e91c59a, []int{12} +} +func (m *StartModuleResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_StartModuleResponse.Unmarshal(m, b) +} +func (m *StartModuleResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_StartModuleResponse.Marshal(b, m, deterministic) +} +func (dst *StartModuleResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_StartModuleResponse.Merge(dst, src) +} +func (m *StartModuleResponse) XXX_Size() int { + return xxx_messageInfo_StartModuleResponse.Size(m) +} +func (m *StartModuleResponse) XXX_DiscardUnknown() { + xxx_messageInfo_StartModuleResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_StartModuleResponse proto.InternalMessageInfo + +type StopModuleRequest struct { + Module *string `protobuf:"bytes,1,opt,name=module" json:"module,omitempty"` + Version *string `protobuf:"bytes,2,opt,name=version" json:"version,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *StopModuleRequest) Reset() { *m = StopModuleRequest{} } +func (m *StopModuleRequest) String() string { return proto.CompactTextString(m) } +func (*StopModuleRequest) ProtoMessage() {} +func (*StopModuleRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_modules_service_9cd3bffe4e91c59a, []int{13} +} +func (m *StopModuleRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_StopModuleRequest.Unmarshal(m, b) +} +func (m *StopModuleRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_StopModuleRequest.Marshal(b, m, deterministic) +} +func (dst *StopModuleRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_StopModuleRequest.Merge(dst, src) +} +func (m *StopModuleRequest) XXX_Size() int { + return xxx_messageInfo_StopModuleRequest.Size(m) +} +func (m *StopModuleRequest) XXX_DiscardUnknown() { + xxx_messageInfo_StopModuleRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_StopModuleRequest proto.InternalMessageInfo + +func (m *StopModuleRequest) GetModule() string { + if m != nil && m.Module != nil { + return *m.Module + } + return "" +} + +func (m *StopModuleRequest) GetVersion() string { + if m != nil && m.Version != nil { + return *m.Version + } + return "" +} + +type StopModuleResponse struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *StopModuleResponse) Reset() { *m = StopModuleResponse{} } +func (m *StopModuleResponse) String() string { return proto.CompactTextString(m) } +func (*StopModuleResponse) ProtoMessage() {} +func (*StopModuleResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_modules_service_9cd3bffe4e91c59a, []int{14} +} +func (m *StopModuleResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_StopModuleResponse.Unmarshal(m, b) +} +func (m *StopModuleResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_StopModuleResponse.Marshal(b, m, deterministic) +} +func (dst *StopModuleResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_StopModuleResponse.Merge(dst, src) +} +func (m *StopModuleResponse) XXX_Size() int { + return xxx_messageInfo_StopModuleResponse.Size(m) +} +func (m *StopModuleResponse) XXX_DiscardUnknown() { + xxx_messageInfo_StopModuleResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_StopModuleResponse proto.InternalMessageInfo + +type GetHostnameRequest struct { + Module *string `protobuf:"bytes,1,opt,name=module" json:"module,omitempty"` + Version *string `protobuf:"bytes,2,opt,name=version" json:"version,omitempty"` + Instance *string `protobuf:"bytes,3,opt,name=instance" json:"instance,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetHostnameRequest) Reset() { *m = GetHostnameRequest{} } +func (m *GetHostnameRequest) String() string { return proto.CompactTextString(m) } +func (*GetHostnameRequest) ProtoMessage() {} +func (*GetHostnameRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_modules_service_9cd3bffe4e91c59a, []int{15} +} +func (m *GetHostnameRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetHostnameRequest.Unmarshal(m, b) +} +func (m *GetHostnameRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetHostnameRequest.Marshal(b, m, deterministic) +} +func (dst *GetHostnameRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetHostnameRequest.Merge(dst, src) +} +func (m *GetHostnameRequest) XXX_Size() int { + return xxx_messageInfo_GetHostnameRequest.Size(m) +} +func (m *GetHostnameRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetHostnameRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetHostnameRequest proto.InternalMessageInfo + +func (m *GetHostnameRequest) GetModule() string { + if m != nil && m.Module != nil { + return *m.Module + } + return "" +} + +func (m *GetHostnameRequest) GetVersion() string { + if m != nil && m.Version != nil { + return *m.Version + } + return "" +} + +func (m *GetHostnameRequest) GetInstance() string { + if m != nil && m.Instance != nil { + return *m.Instance + } + return "" +} + +type GetHostnameResponse struct { + Hostname *string `protobuf:"bytes,1,req,name=hostname" json:"hostname,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetHostnameResponse) Reset() { *m = GetHostnameResponse{} } +func (m *GetHostnameResponse) String() string { return proto.CompactTextString(m) } +func (*GetHostnameResponse) ProtoMessage() {} +func (*GetHostnameResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_modules_service_9cd3bffe4e91c59a, []int{16} +} +func (m *GetHostnameResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetHostnameResponse.Unmarshal(m, b) +} +func (m *GetHostnameResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetHostnameResponse.Marshal(b, m, deterministic) +} +func (dst *GetHostnameResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetHostnameResponse.Merge(dst, src) +} +func (m *GetHostnameResponse) XXX_Size() int { + return xxx_messageInfo_GetHostnameResponse.Size(m) +} +func (m *GetHostnameResponse) XXX_DiscardUnknown() { + xxx_messageInfo_GetHostnameResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_GetHostnameResponse proto.InternalMessageInfo + +func (m *GetHostnameResponse) GetHostname() string { + if m != nil && m.Hostname != nil { + return *m.Hostname + } + return "" +} + +func init() { + proto.RegisterType((*ModulesServiceError)(nil), "appengine.ModulesServiceError") + proto.RegisterType((*GetModulesRequest)(nil), "appengine.GetModulesRequest") + proto.RegisterType((*GetModulesResponse)(nil), "appengine.GetModulesResponse") + proto.RegisterType((*GetVersionsRequest)(nil), "appengine.GetVersionsRequest") + proto.RegisterType((*GetVersionsResponse)(nil), "appengine.GetVersionsResponse") + proto.RegisterType((*GetDefaultVersionRequest)(nil), "appengine.GetDefaultVersionRequest") + proto.RegisterType((*GetDefaultVersionResponse)(nil), "appengine.GetDefaultVersionResponse") + proto.RegisterType((*GetNumInstancesRequest)(nil), "appengine.GetNumInstancesRequest") + proto.RegisterType((*GetNumInstancesResponse)(nil), "appengine.GetNumInstancesResponse") + proto.RegisterType((*SetNumInstancesRequest)(nil), "appengine.SetNumInstancesRequest") + proto.RegisterType((*SetNumInstancesResponse)(nil), "appengine.SetNumInstancesResponse") + proto.RegisterType((*StartModuleRequest)(nil), "appengine.StartModuleRequest") + proto.RegisterType((*StartModuleResponse)(nil), "appengine.StartModuleResponse") + proto.RegisterType((*StopModuleRequest)(nil), "appengine.StopModuleRequest") + proto.RegisterType((*StopModuleResponse)(nil), "appengine.StopModuleResponse") + proto.RegisterType((*GetHostnameRequest)(nil), "appengine.GetHostnameRequest") + proto.RegisterType((*GetHostnameResponse)(nil), "appengine.GetHostnameResponse") +} + +func init() { + proto.RegisterFile("google.golang.org/appengine/internal/modules/modules_service.proto", fileDescriptor_modules_service_9cd3bffe4e91c59a) +} + +var fileDescriptor_modules_service_9cd3bffe4e91c59a = []byte{ + // 457 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x94, 0xc1, 0x6f, 0xd3, 0x30, + 0x14, 0xc6, 0x69, 0x02, 0xdb, 0xf2, 0x0e, 0x90, 0x3a, 0x5b, 0xd7, 0x4d, 0x1c, 0x50, 0x4e, 0x1c, + 0x50, 0x2b, 0x90, 0x10, 0xe7, 0xae, 0x35, 0x25, 0xb0, 0xa5, 0x28, 0xce, 0x2a, 0xc4, 0xa5, 0x0a, + 0xdb, 0x23, 0x8b, 0x94, 0xda, 0xc1, 0x76, 0x77, 0xe4, 0xbf, 0xe0, 0xff, 0x45, 0x4b, 0xed, 0xb6, + 0x81, 0x4e, 0x45, 0x68, 0xa7, 0xe4, 0x7d, 0xfe, 0xfc, 0x7b, 0x9f, 0x5f, 0xac, 0xc0, 0x59, 0x2e, + 0x44, 0x5e, 0x62, 0x2f, 0x17, 0x65, 0xc6, 0xf3, 0x9e, 0x90, 0x79, 0x3f, 0xab, 0x2a, 0xe4, 0x79, + 0xc1, 0xb1, 0x5f, 0x70, 0x8d, 0x92, 0x67, 0x65, 0x7f, 0x2e, 0xae, 0x17, 0x25, 0x2a, 0xfb, 0x9c, + 0x29, 0x94, 0xb7, 0xc5, 0x15, 0xf6, 0x2a, 0x29, 0xb4, 0x20, 0xde, 0x6a, 0x47, 0xf8, 0xab, 0x05, + 0xc1, 0xc5, 0xd2, 0xc4, 0x96, 0x1e, 0x2a, 0xa5, 0x90, 0xe1, 0x4f, 0xf0, 0xea, 0x97, 0xa1, 0xb8, + 0x46, 0xb2, 0x07, 0xce, 0xe4, 0x93, 0xff, 0x88, 0x10, 0x78, 0x1a, 0xc5, 0xd3, 0xc1, 0x79, 0x34, + 0x9a, 0x5d, 0x4c, 0x46, 0x97, 0xe7, 0xd4, 0x6f, 0x91, 0x00, 0x9e, 0x59, 0x6d, 0x4a, 0x13, 0x16, + 0x4d, 0x62, 0xdf, 0x21, 0x47, 0xd0, 0xb6, 0x62, 0x14, 0xb3, 0x74, 0x10, 0x0f, 0x29, 0xf3, 0xdd, + 0x3b, 0x6f, 0x9a, 0x0c, 0x62, 0x16, 0xd1, 0x38, 0x9d, 0xd1, 0x24, 0x99, 0x24, 0xfe, 0x63, 0x72, + 0x08, 0xfe, 0x65, 0x4c, 0xbf, 0x7c, 0xa6, 0xc3, 0x94, 0x8e, 0x66, 0x2c, 0x1d, 0xa4, 0xd4, 0x7f, + 0x12, 0x06, 0xd0, 0x1e, 0xa3, 0x36, 0xc9, 0x12, 0xfc, 0xb1, 0x40, 0xa5, 0xc3, 0x57, 0x40, 0x36, + 0x45, 0x55, 0x09, 0xae, 0x90, 0x74, 0x60, 0x6f, 0x79, 0xcc, 0x6e, 0xeb, 0x85, 0xfb, 0xd2, 0x4b, + 0x4c, 0x65, 0xdc, 0x53, 0x94, 0xaa, 0x10, 0xdc, 0x32, 0x1a, 0xee, 0xd6, 0x86, 0xbb, 0x0f, 0x41, + 0xc3, 0x6d, 0xe0, 0x5d, 0xd8, 0xbf, 0x5d, 0x6a, 0x86, 0x6e, 0xcb, 0xf0, 0x0d, 0x74, 0xc7, 0xa8, + 0x47, 0xf8, 0x3d, 0x5b, 0x94, 0x76, 0xdf, 0xae, 0x26, 0x6f, 0xe1, 0x64, 0xcb, 0x9e, 0x6d, 0xad, + 0x9c, 0xcd, 0x56, 0x1f, 0xa1, 0x33, 0x46, 0x1d, 0x2f, 0xe6, 0x11, 0x57, 0x3a, 0xe3, 0x57, 0xb8, + 0xeb, 0x34, 0x9b, 0x2c, 0xa7, 0x5e, 0x58, 0xb1, 0xde, 0xc1, 0xf1, 0x5f, 0x2c, 0x13, 0xe0, 0x39, + 0x78, 0x85, 0x15, 0xeb, 0x08, 0x6e, 0xb2, 0x16, 0xc2, 0x1b, 0xe8, 0xb0, 0x07, 0x0a, 0xd1, 0xec, + 0xe4, 0xfe, 0xd9, 0xe9, 0x04, 0x8e, 0xd9, 0xf6, 0x88, 0xe1, 0x7b, 0x20, 0x4c, 0x67, 0xd2, 0xdc, + 0x81, 0x6d, 0x01, 0x9c, 0xfb, 0x02, 0x34, 0x26, 0x7a, 0x04, 0x41, 0x83, 0x63, 0xf0, 0x14, 0xda, + 0x4c, 0x8b, 0xea, 0x7e, 0xfa, 0xbf, 0xcd, 0xf8, 0xf0, 0x2e, 0xe5, 0x1a, 0x63, 0xe0, 0xdf, 0xea, + 0xfb, 0xf8, 0x41, 0x28, 0xcd, 0xb3, 0xf9, 0xff, 0xd3, 0xc9, 0x29, 0x1c, 0xd8, 0x59, 0x75, 0xdd, + 0x7a, 0x69, 0x55, 0x87, 0xaf, 0xeb, 0x5b, 0xbc, 0xee, 0x61, 0xbe, 0xec, 0x29, 0x1c, 0xdc, 0x18, + 0xcd, 0x8c, 0x68, 0x55, 0x9f, 0x79, 0x5f, 0xf7, 0xcd, 0x5f, 0xe2, 0x77, 0x00, 0x00, 0x00, 0xff, + 0xff, 0x6e, 0xbc, 0xe0, 0x61, 0x5c, 0x04, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/appengine/internal/modules/modules_service.proto b/vendor/google.golang.org/appengine/internal/modules/modules_service.proto new file mode 100644 index 000000000..d29f0065a --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/modules/modules_service.proto @@ -0,0 +1,80 @@ +syntax = "proto2"; +option go_package = "modules"; + +package appengine; + +message ModulesServiceError { + enum ErrorCode { + OK = 0; + INVALID_MODULE = 1; + INVALID_VERSION = 2; + INVALID_INSTANCES = 3; + TRANSIENT_ERROR = 4; + UNEXPECTED_STATE = 5; + } +} + +message GetModulesRequest { +} + +message GetModulesResponse { + repeated string module = 1; +} + +message GetVersionsRequest { + optional string module = 1; +} + +message GetVersionsResponse { + repeated string version = 1; +} + +message GetDefaultVersionRequest { + optional string module = 1; +} + +message GetDefaultVersionResponse { + required string version = 1; +} + +message GetNumInstancesRequest { + optional string module = 1; + optional string version = 2; +} + +message GetNumInstancesResponse { + required int64 instances = 1; +} + +message SetNumInstancesRequest { + optional string module = 1; + optional string version = 2; + required int64 instances = 3; +} + +message SetNumInstancesResponse {} + +message StartModuleRequest { + required string module = 1; + required string version = 2; +} + +message StartModuleResponse {} + +message StopModuleRequest { + optional string module = 1; + optional string version = 2; +} + +message StopModuleResponse {} + +message GetHostnameRequest { + optional string module = 1; + optional string version = 2; + optional string instance = 3; +} + +message GetHostnameResponse { + required string hostname = 1; +} + diff --git a/vendor/google.golang.org/appengine/internal/net.go b/vendor/google.golang.org/appengine/internal/net.go new file mode 100644 index 000000000..3b94cf0c6 --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/net.go @@ -0,0 +1,56 @@ +// Copyright 2014 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package internal + +// This file implements a network dialer that limits the number of concurrent connections. +// It is only used for API calls. + +import ( + "log" + "net" + "runtime" + "sync" + "time" +) + +var limitSem = make(chan int, 100) // TODO(dsymonds): Use environment variable. + +func limitRelease() { + // non-blocking + select { + case <-limitSem: + default: + // This should not normally happen. + log.Print("appengine: unbalanced limitSem release!") + } +} + +func limitDial(network, addr string) (net.Conn, error) { + limitSem <- 1 + + // Dial with a timeout in case the API host is MIA. + // The connection should normally be very fast. + conn, err := net.DialTimeout(network, addr, 500*time.Millisecond) + if err != nil { + limitRelease() + return nil, err + } + lc := &limitConn{Conn: conn} + runtime.SetFinalizer(lc, (*limitConn).Close) // shouldn't usually be required + return lc, nil +} + +type limitConn struct { + close sync.Once + net.Conn +} + +func (lc *limitConn) Close() error { + defer lc.close.Do(func() { + limitRelease() + runtime.SetFinalizer(lc, nil) + }) + return lc.Conn.Close() +} diff --git a/vendor/google.golang.org/appengine/internal/net_test.go b/vendor/google.golang.org/appengine/internal/net_test.go new file mode 100644 index 000000000..24da8bb2b --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/net_test.go @@ -0,0 +1,58 @@ +// Copyright 2014 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +// +build !appengine + +package internal + +import ( + "sync" + "testing" + "time" + + netcontext "golang.org/x/net/context" + + basepb "google.golang.org/appengine/internal/base" +) + +func TestDialLimit(t *testing.T) { + // Fill up semaphore with false acquisitions to permit only two TCP connections at a time. + // We don't replace limitSem because that results in a data race when net/http lazily closes connections. + nFake := cap(limitSem) - 2 + for i := 0; i < nFake; i++ { + limitSem <- 1 + } + defer func() { + for i := 0; i < nFake; i++ { + <-limitSem + } + }() + + f, c, cleanup := setup() // setup is in api_test.go + defer cleanup() + f.hang = make(chan int) + + // If we make two RunSlowly RPCs (which will wait for f.hang to be strobed), + // then the simple Non200 RPC should hang. + var wg sync.WaitGroup + wg.Add(2) + for i := 0; i < 2; i++ { + go func() { + defer wg.Done() + Call(toContext(c), "errors", "RunSlowly", &basepb.VoidProto{}, &basepb.VoidProto{}) + }() + } + time.Sleep(50 * time.Millisecond) // let those two RPCs start + + ctx, _ := netcontext.WithTimeout(toContext(c), 50*time.Millisecond) + err := Call(ctx, "errors", "Non200", &basepb.VoidProto{}, &basepb.VoidProto{}) + if err != errTimeout { + t.Errorf("Non200 RPC returned with err %v, want errTimeout", err) + } + + // Drain the two RunSlowly calls. + f.hang <- 1 + f.hang <- 1 + wg.Wait() +} diff --git a/vendor/google.golang.org/appengine/internal/regen.sh b/vendor/google.golang.org/appengine/internal/regen.sh new file mode 100755 index 000000000..2fdb546a6 --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/regen.sh @@ -0,0 +1,40 @@ +#!/bin/bash -e +# +# This script rebuilds the generated code for the protocol buffers. +# To run this you will need protoc and goprotobuf installed; +# see https://github.com/golang/protobuf for instructions. + +PKG=google.golang.org/appengine + +function die() { + echo 1>&2 $* + exit 1 +} + +# Sanity check that the right tools are accessible. +for tool in go protoc protoc-gen-go; do + q=$(which $tool) || die "didn't find $tool" + echo 1>&2 "$tool: $q" +done + +echo -n 1>&2 "finding package dir... " +pkgdir=$(go list -f '{{.Dir}}' $PKG) +echo 1>&2 $pkgdir +base=$(echo $pkgdir | sed "s,/$PKG\$,,") +echo 1>&2 "base: $base" +cd $base + +# Run protoc once per package. +for dir in $(find $PKG/internal -name '*.proto' | xargs dirname | sort | uniq); do + echo 1>&2 "* $dir" + protoc --go_out=. $dir/*.proto +done + +for f in $(find $PKG/internal -name '*.pb.go'); do + # Remove proto.RegisterEnum calls. + # These cause duplicate registration panics when these packages + # are used on classic App Engine. proto.RegisterEnum only affects + # parsing the text format; we don't care about that. + # https://code.google.com/p/googleappengine/issues/detail?id=11670#c17 + sed -i '/proto.RegisterEnum/d' $f +done diff --git a/vendor/google.golang.org/appengine/internal/remote_api/remote_api.pb.go b/vendor/google.golang.org/appengine/internal/remote_api/remote_api.pb.go new file mode 100644 index 000000000..8d782a38e --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/remote_api/remote_api.pb.go @@ -0,0 +1,361 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google.golang.org/appengine/internal/remote_api/remote_api.proto + +package remote_api + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +type RpcError_ErrorCode int32 + +const ( + RpcError_UNKNOWN RpcError_ErrorCode = 0 + RpcError_CALL_NOT_FOUND RpcError_ErrorCode = 1 + RpcError_PARSE_ERROR RpcError_ErrorCode = 2 + RpcError_SECURITY_VIOLATION RpcError_ErrorCode = 3 + RpcError_OVER_QUOTA RpcError_ErrorCode = 4 + RpcError_REQUEST_TOO_LARGE RpcError_ErrorCode = 5 + RpcError_CAPABILITY_DISABLED RpcError_ErrorCode = 6 + RpcError_FEATURE_DISABLED RpcError_ErrorCode = 7 + RpcError_BAD_REQUEST RpcError_ErrorCode = 8 + RpcError_RESPONSE_TOO_LARGE RpcError_ErrorCode = 9 + RpcError_CANCELLED RpcError_ErrorCode = 10 + RpcError_REPLAY_ERROR RpcError_ErrorCode = 11 + RpcError_DEADLINE_EXCEEDED RpcError_ErrorCode = 12 +) + +var RpcError_ErrorCode_name = map[int32]string{ + 0: "UNKNOWN", + 1: "CALL_NOT_FOUND", + 2: "PARSE_ERROR", + 3: "SECURITY_VIOLATION", + 4: "OVER_QUOTA", + 5: "REQUEST_TOO_LARGE", + 6: "CAPABILITY_DISABLED", + 7: "FEATURE_DISABLED", + 8: "BAD_REQUEST", + 9: "RESPONSE_TOO_LARGE", + 10: "CANCELLED", + 11: "REPLAY_ERROR", + 12: "DEADLINE_EXCEEDED", +} +var RpcError_ErrorCode_value = map[string]int32{ + "UNKNOWN": 0, + "CALL_NOT_FOUND": 1, + "PARSE_ERROR": 2, + "SECURITY_VIOLATION": 3, + "OVER_QUOTA": 4, + "REQUEST_TOO_LARGE": 5, + "CAPABILITY_DISABLED": 6, + "FEATURE_DISABLED": 7, + "BAD_REQUEST": 8, + "RESPONSE_TOO_LARGE": 9, + "CANCELLED": 10, + "REPLAY_ERROR": 11, + "DEADLINE_EXCEEDED": 12, +} + +func (x RpcError_ErrorCode) Enum() *RpcError_ErrorCode { + p := new(RpcError_ErrorCode) + *p = x + return p +} +func (x RpcError_ErrorCode) String() string { + return proto.EnumName(RpcError_ErrorCode_name, int32(x)) +} +func (x *RpcError_ErrorCode) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(RpcError_ErrorCode_value, data, "RpcError_ErrorCode") + if err != nil { + return err + } + *x = RpcError_ErrorCode(value) + return nil +} +func (RpcError_ErrorCode) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_remote_api_1978114ec33a273d, []int{2, 0} +} + +type Request struct { + ServiceName *string `protobuf:"bytes,2,req,name=service_name,json=serviceName" json:"service_name,omitempty"` + Method *string `protobuf:"bytes,3,req,name=method" json:"method,omitempty"` + Request []byte `protobuf:"bytes,4,req,name=request" json:"request,omitempty"` + RequestId *string `protobuf:"bytes,5,opt,name=request_id,json=requestId" json:"request_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Request) Reset() { *m = Request{} } +func (m *Request) String() string { return proto.CompactTextString(m) } +func (*Request) ProtoMessage() {} +func (*Request) Descriptor() ([]byte, []int) { + return fileDescriptor_remote_api_1978114ec33a273d, []int{0} +} +func (m *Request) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Request.Unmarshal(m, b) +} +func (m *Request) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Request.Marshal(b, m, deterministic) +} +func (dst *Request) XXX_Merge(src proto.Message) { + xxx_messageInfo_Request.Merge(dst, src) +} +func (m *Request) XXX_Size() int { + return xxx_messageInfo_Request.Size(m) +} +func (m *Request) XXX_DiscardUnknown() { + xxx_messageInfo_Request.DiscardUnknown(m) +} + +var xxx_messageInfo_Request proto.InternalMessageInfo + +func (m *Request) GetServiceName() string { + if m != nil && m.ServiceName != nil { + return *m.ServiceName + } + return "" +} + +func (m *Request) GetMethod() string { + if m != nil && m.Method != nil { + return *m.Method + } + return "" +} + +func (m *Request) GetRequest() []byte { + if m != nil { + return m.Request + } + return nil +} + +func (m *Request) GetRequestId() string { + if m != nil && m.RequestId != nil { + return *m.RequestId + } + return "" +} + +type ApplicationError struct { + Code *int32 `protobuf:"varint,1,req,name=code" json:"code,omitempty"` + Detail *string `protobuf:"bytes,2,req,name=detail" json:"detail,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ApplicationError) Reset() { *m = ApplicationError{} } +func (m *ApplicationError) String() string { return proto.CompactTextString(m) } +func (*ApplicationError) ProtoMessage() {} +func (*ApplicationError) Descriptor() ([]byte, []int) { + return fileDescriptor_remote_api_1978114ec33a273d, []int{1} +} +func (m *ApplicationError) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ApplicationError.Unmarshal(m, b) +} +func (m *ApplicationError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ApplicationError.Marshal(b, m, deterministic) +} +func (dst *ApplicationError) XXX_Merge(src proto.Message) { + xxx_messageInfo_ApplicationError.Merge(dst, src) +} +func (m *ApplicationError) XXX_Size() int { + return xxx_messageInfo_ApplicationError.Size(m) +} +func (m *ApplicationError) XXX_DiscardUnknown() { + xxx_messageInfo_ApplicationError.DiscardUnknown(m) +} + +var xxx_messageInfo_ApplicationError proto.InternalMessageInfo + +func (m *ApplicationError) GetCode() int32 { + if m != nil && m.Code != nil { + return *m.Code + } + return 0 +} + +func (m *ApplicationError) GetDetail() string { + if m != nil && m.Detail != nil { + return *m.Detail + } + return "" +} + +type RpcError struct { + Code *int32 `protobuf:"varint,1,req,name=code" json:"code,omitempty"` + Detail *string `protobuf:"bytes,2,opt,name=detail" json:"detail,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RpcError) Reset() { *m = RpcError{} } +func (m *RpcError) String() string { return proto.CompactTextString(m) } +func (*RpcError) ProtoMessage() {} +func (*RpcError) Descriptor() ([]byte, []int) { + return fileDescriptor_remote_api_1978114ec33a273d, []int{2} +} +func (m *RpcError) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RpcError.Unmarshal(m, b) +} +func (m *RpcError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RpcError.Marshal(b, m, deterministic) +} +func (dst *RpcError) XXX_Merge(src proto.Message) { + xxx_messageInfo_RpcError.Merge(dst, src) +} +func (m *RpcError) XXX_Size() int { + return xxx_messageInfo_RpcError.Size(m) +} +func (m *RpcError) XXX_DiscardUnknown() { + xxx_messageInfo_RpcError.DiscardUnknown(m) +} + +var xxx_messageInfo_RpcError proto.InternalMessageInfo + +func (m *RpcError) GetCode() int32 { + if m != nil && m.Code != nil { + return *m.Code + } + return 0 +} + +func (m *RpcError) GetDetail() string { + if m != nil && m.Detail != nil { + return *m.Detail + } + return "" +} + +type Response struct { + Response []byte `protobuf:"bytes,1,opt,name=response" json:"response,omitempty"` + Exception []byte `protobuf:"bytes,2,opt,name=exception" json:"exception,omitempty"` + ApplicationError *ApplicationError `protobuf:"bytes,3,opt,name=application_error,json=applicationError" json:"application_error,omitempty"` + JavaException []byte `protobuf:"bytes,4,opt,name=java_exception,json=javaException" json:"java_exception,omitempty"` + RpcError *RpcError `protobuf:"bytes,5,opt,name=rpc_error,json=rpcError" json:"rpc_error,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Response) Reset() { *m = Response{} } +func (m *Response) String() string { return proto.CompactTextString(m) } +func (*Response) ProtoMessage() {} +func (*Response) Descriptor() ([]byte, []int) { + return fileDescriptor_remote_api_1978114ec33a273d, []int{3} +} +func (m *Response) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Response.Unmarshal(m, b) +} +func (m *Response) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Response.Marshal(b, m, deterministic) +} +func (dst *Response) XXX_Merge(src proto.Message) { + xxx_messageInfo_Response.Merge(dst, src) +} +func (m *Response) XXX_Size() int { + return xxx_messageInfo_Response.Size(m) +} +func (m *Response) XXX_DiscardUnknown() { + xxx_messageInfo_Response.DiscardUnknown(m) +} + +var xxx_messageInfo_Response proto.InternalMessageInfo + +func (m *Response) GetResponse() []byte { + if m != nil { + return m.Response + } + return nil +} + +func (m *Response) GetException() []byte { + if m != nil { + return m.Exception + } + return nil +} + +func (m *Response) GetApplicationError() *ApplicationError { + if m != nil { + return m.ApplicationError + } + return nil +} + +func (m *Response) GetJavaException() []byte { + if m != nil { + return m.JavaException + } + return nil +} + +func (m *Response) GetRpcError() *RpcError { + if m != nil { + return m.RpcError + } + return nil +} + +func init() { + proto.RegisterType((*Request)(nil), "remote_api.Request") + proto.RegisterType((*ApplicationError)(nil), "remote_api.ApplicationError") + proto.RegisterType((*RpcError)(nil), "remote_api.RpcError") + proto.RegisterType((*Response)(nil), "remote_api.Response") +} + +func init() { + proto.RegisterFile("google.golang.org/appengine/internal/remote_api/remote_api.proto", fileDescriptor_remote_api_1978114ec33a273d) +} + +var fileDescriptor_remote_api_1978114ec33a273d = []byte{ + // 531 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x93, 0x51, 0x6e, 0xd3, 0x40, + 0x10, 0x86, 0xb1, 0x9b, 0x34, 0xf1, 0xc4, 0x2d, 0xdb, 0xa5, 0x14, 0x0b, 0x15, 0x29, 0x44, 0x42, + 0xca, 0x53, 0x2a, 0x38, 0x00, 0x62, 0x63, 0x6f, 0x91, 0x85, 0x65, 0xa7, 0x6b, 0xbb, 0x50, 0x5e, + 0x56, 0x2b, 0x67, 0x65, 0x8c, 0x12, 0xaf, 0xd9, 0x98, 0x8a, 0x17, 0x6e, 0xc0, 0xb5, 0x38, 0x0c, + 0xb7, 0x40, 0x36, 0x6e, 0x63, 0xf5, 0x89, 0xb7, 0x7f, 0x7e, 0x7b, 0xe6, 0x1b, 0xcd, 0xcc, 0xc2, + 0xbb, 0x5c, 0xa9, 0x7c, 0x23, 0x17, 0xb9, 0xda, 0x88, 0x32, 0x5f, 0x28, 0x9d, 0x5f, 0x88, 0xaa, + 0x92, 0x65, 0x5e, 0x94, 0xf2, 0xa2, 0x28, 0x6b, 0xa9, 0x4b, 0xb1, 0xb9, 0xd0, 0x72, 0xab, 0x6a, + 0xc9, 0x45, 0x55, 0xf4, 0xe4, 0xa2, 0xd2, 0xaa, 0x56, 0x18, 0xf6, 0xce, 0xec, 0x27, 0x8c, 0x98, + 0xfc, 0xf6, 0x5d, 0xee, 0x6a, 0xfc, 0x12, 0xec, 0x9d, 0xd4, 0xb7, 0x45, 0x26, 0x79, 0x29, 0xb6, + 0xd2, 0x31, 0xa7, 0xe6, 0xdc, 0x62, 0x93, 0xce, 0x0b, 0xc5, 0x56, 0xe2, 0x33, 0x38, 0xdc, 0xca, + 0xfa, 0x8b, 0x5a, 0x3b, 0x07, 0xed, 0xc7, 0x2e, 0xc2, 0x0e, 0x8c, 0xf4, 0xbf, 0x2a, 0xce, 0x60, + 0x6a, 0xce, 0x6d, 0x76, 0x17, 0xe2, 0x17, 0x00, 0x9d, 0xe4, 0xc5, 0xda, 0x19, 0x4e, 0x8d, 0xb9, + 0xc5, 0xac, 0xce, 0xf1, 0xd7, 0xb3, 0xb7, 0x80, 0x48, 0x55, 0x6d, 0x8a, 0x4c, 0xd4, 0x85, 0x2a, + 0xa9, 0xd6, 0x4a, 0x63, 0x0c, 0x83, 0x4c, 0xad, 0xa5, 0x63, 0x4c, 0xcd, 0xf9, 0x90, 0xb5, 0xba, + 0x01, 0xaf, 0x65, 0x2d, 0x8a, 0x4d, 0xd7, 0x55, 0x17, 0xcd, 0x7e, 0x9b, 0x30, 0x66, 0x55, 0xf6, + 0x7f, 0x89, 0x46, 0x2f, 0xf1, 0x97, 0x09, 0x56, 0x9b, 0xe5, 0x36, 0x7f, 0x4d, 0x60, 0x94, 0x86, + 0x1f, 0xc2, 0xe8, 0x63, 0x88, 0x1e, 0x61, 0x0c, 0xc7, 0x2e, 0x09, 0x02, 0x1e, 0x46, 0x09, 0xbf, + 0x8c, 0xd2, 0xd0, 0x43, 0x06, 0x7e, 0x0c, 0x93, 0x15, 0x61, 0x31, 0xe5, 0x94, 0xb1, 0x88, 0x21, + 0x13, 0x9f, 0x01, 0x8e, 0xa9, 0x9b, 0x32, 0x3f, 0xb9, 0xe1, 0xd7, 0x7e, 0x14, 0x90, 0xc4, 0x8f, + 0x42, 0x74, 0x80, 0x8f, 0x01, 0xa2, 0x6b, 0xca, 0xf8, 0x55, 0x1a, 0x25, 0x04, 0x0d, 0xf0, 0x53, + 0x38, 0x61, 0xf4, 0x2a, 0xa5, 0x71, 0xc2, 0x93, 0x28, 0xe2, 0x01, 0x61, 0xef, 0x29, 0x1a, 0xe2, + 0x67, 0xf0, 0xc4, 0x25, 0x2b, 0xb2, 0xf4, 0x83, 0xa6, 0x80, 0xe7, 0xc7, 0x64, 0x19, 0x50, 0x0f, + 0x1d, 0xe2, 0x53, 0x40, 0x97, 0x94, 0x24, 0x29, 0xa3, 0x7b, 0x77, 0xd4, 0xe0, 0x97, 0xc4, 0xe3, + 0x5d, 0x25, 0x34, 0x6e, 0xf0, 0x8c, 0xc6, 0xab, 0x28, 0x8c, 0x69, 0xaf, 0xae, 0x85, 0x8f, 0xc0, + 0x72, 0x49, 0xe8, 0xd2, 0xa0, 0xc9, 0x03, 0x8c, 0xc0, 0x66, 0x74, 0x15, 0x90, 0x9b, 0xae, 0xef, + 0x49, 0xd3, 0x8f, 0x47, 0x89, 0x17, 0xf8, 0x21, 0xe5, 0xf4, 0x93, 0x4b, 0xa9, 0x47, 0x3d, 0x64, + 0xcf, 0xfe, 0x18, 0x30, 0x66, 0x72, 0x57, 0xa9, 0x72, 0x27, 0xf1, 0x73, 0x18, 0xeb, 0x4e, 0x3b, + 0xc6, 0xd4, 0x98, 0xdb, 0xec, 0x3e, 0xc6, 0xe7, 0x60, 0xc9, 0x1f, 0x99, 0xac, 0x9a, 0x75, 0xb5, + 0x23, 0xb5, 0xd9, 0xde, 0xc0, 0x3e, 0x9c, 0x88, 0xfd, 0x3a, 0xb9, 0x6c, 0x06, 0xec, 0x1c, 0x4c, + 0x8d, 0xf9, 0xe4, 0xcd, 0xf9, 0xa2, 0x77, 0x87, 0x0f, 0x77, 0xce, 0x90, 0x78, 0x78, 0x05, 0xaf, + 0xe0, 0xf8, 0xab, 0xb8, 0x15, 0x7c, 0x4f, 0x1b, 0xb4, 0xb4, 0xa3, 0xc6, 0xa5, 0xf7, 0xc4, 0xd7, + 0x60, 0xe9, 0x2a, 0xeb, 0x48, 0xc3, 0x96, 0x74, 0xda, 0x27, 0xdd, 0x1d, 0x07, 0x1b, 0xeb, 0x4e, + 0x2d, 0xed, 0xcf, 0xbd, 0x07, 0xf0, 0x37, 0x00, 0x00, 0xff, 0xff, 0x38, 0xd1, 0x0f, 0x22, 0x4f, + 0x03, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/appengine/internal/remote_api/remote_api.proto b/vendor/google.golang.org/appengine/internal/remote_api/remote_api.proto new file mode 100644 index 000000000..f21763a4e --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/remote_api/remote_api.proto @@ -0,0 +1,44 @@ +syntax = "proto2"; +option go_package = "remote_api"; + +package remote_api; + +message Request { + required string service_name = 2; + required string method = 3; + required bytes request = 4; + optional string request_id = 5; +} + +message ApplicationError { + required int32 code = 1; + required string detail = 2; +} + +message RpcError { + enum ErrorCode { + UNKNOWN = 0; + CALL_NOT_FOUND = 1; + PARSE_ERROR = 2; + SECURITY_VIOLATION = 3; + OVER_QUOTA = 4; + REQUEST_TOO_LARGE = 5; + CAPABILITY_DISABLED = 6; + FEATURE_DISABLED = 7; + BAD_REQUEST = 8; + RESPONSE_TOO_LARGE = 9; + CANCELLED = 10; + REPLAY_ERROR = 11; + DEADLINE_EXCEEDED = 12; + } + required int32 code = 1; + optional string detail = 2; +} + +message Response { + optional bytes response = 1; + optional bytes exception = 2; + optional ApplicationError application_error = 3; + optional bytes java_exception = 4; + optional RpcError rpc_error = 5; +} diff --git a/vendor/google.golang.org/appengine/internal/search/search.pb.go b/vendor/google.golang.org/appengine/internal/search/search.pb.go new file mode 100644 index 000000000..86a65e5b1 --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/search/search.pb.go @@ -0,0 +1,3459 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google.golang.org/appengine/internal/search/search.proto + +package search + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +type Scope_Type int32 + +const ( + Scope_USER_BY_CANONICAL_ID Scope_Type = 1 + Scope_USER_BY_EMAIL Scope_Type = 2 + Scope_GROUP_BY_CANONICAL_ID Scope_Type = 3 + Scope_GROUP_BY_EMAIL Scope_Type = 4 + Scope_GROUP_BY_DOMAIN Scope_Type = 5 + Scope_ALL_USERS Scope_Type = 6 + Scope_ALL_AUTHENTICATED_USERS Scope_Type = 7 +) + +var Scope_Type_name = map[int32]string{ + 1: "USER_BY_CANONICAL_ID", + 2: "USER_BY_EMAIL", + 3: "GROUP_BY_CANONICAL_ID", + 4: "GROUP_BY_EMAIL", + 5: "GROUP_BY_DOMAIN", + 6: "ALL_USERS", + 7: "ALL_AUTHENTICATED_USERS", +} +var Scope_Type_value = map[string]int32{ + "USER_BY_CANONICAL_ID": 1, + "USER_BY_EMAIL": 2, + "GROUP_BY_CANONICAL_ID": 3, + "GROUP_BY_EMAIL": 4, + "GROUP_BY_DOMAIN": 5, + "ALL_USERS": 6, + "ALL_AUTHENTICATED_USERS": 7, +} + +func (x Scope_Type) Enum() *Scope_Type { + p := new(Scope_Type) + *p = x + return p +} +func (x Scope_Type) String() string { + return proto.EnumName(Scope_Type_name, int32(x)) +} +func (x *Scope_Type) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(Scope_Type_value, data, "Scope_Type") + if err != nil { + return err + } + *x = Scope_Type(value) + return nil +} +func (Scope_Type) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{0, 0} +} + +type Entry_Permission int32 + +const ( + Entry_READ Entry_Permission = 1 + Entry_WRITE Entry_Permission = 2 + Entry_FULL_CONTROL Entry_Permission = 3 +) + +var Entry_Permission_name = map[int32]string{ + 1: "READ", + 2: "WRITE", + 3: "FULL_CONTROL", +} +var Entry_Permission_value = map[string]int32{ + "READ": 1, + "WRITE": 2, + "FULL_CONTROL": 3, +} + +func (x Entry_Permission) Enum() *Entry_Permission { + p := new(Entry_Permission) + *p = x + return p +} +func (x Entry_Permission) String() string { + return proto.EnumName(Entry_Permission_name, int32(x)) +} +func (x *Entry_Permission) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(Entry_Permission_value, data, "Entry_Permission") + if err != nil { + return err + } + *x = Entry_Permission(value) + return nil +} +func (Entry_Permission) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{1, 0} +} + +type FieldValue_ContentType int32 + +const ( + FieldValue_TEXT FieldValue_ContentType = 0 + FieldValue_HTML FieldValue_ContentType = 1 + FieldValue_ATOM FieldValue_ContentType = 2 + FieldValue_DATE FieldValue_ContentType = 3 + FieldValue_NUMBER FieldValue_ContentType = 4 + FieldValue_GEO FieldValue_ContentType = 5 +) + +var FieldValue_ContentType_name = map[int32]string{ + 0: "TEXT", + 1: "HTML", + 2: "ATOM", + 3: "DATE", + 4: "NUMBER", + 5: "GEO", +} +var FieldValue_ContentType_value = map[string]int32{ + "TEXT": 0, + "HTML": 1, + "ATOM": 2, + "DATE": 3, + "NUMBER": 4, + "GEO": 5, +} + +func (x FieldValue_ContentType) Enum() *FieldValue_ContentType { + p := new(FieldValue_ContentType) + *p = x + return p +} +func (x FieldValue_ContentType) String() string { + return proto.EnumName(FieldValue_ContentType_name, int32(x)) +} +func (x *FieldValue_ContentType) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(FieldValue_ContentType_value, data, "FieldValue_ContentType") + if err != nil { + return err + } + *x = FieldValue_ContentType(value) + return nil +} +func (FieldValue_ContentType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{3, 0} +} + +type FacetValue_ContentType int32 + +const ( + FacetValue_ATOM FacetValue_ContentType = 2 + FacetValue_NUMBER FacetValue_ContentType = 4 +) + +var FacetValue_ContentType_name = map[int32]string{ + 2: "ATOM", + 4: "NUMBER", +} +var FacetValue_ContentType_value = map[string]int32{ + "ATOM": 2, + "NUMBER": 4, +} + +func (x FacetValue_ContentType) Enum() *FacetValue_ContentType { + p := new(FacetValue_ContentType) + *p = x + return p +} +func (x FacetValue_ContentType) String() string { + return proto.EnumName(FacetValue_ContentType_name, int32(x)) +} +func (x *FacetValue_ContentType) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(FacetValue_ContentType_value, data, "FacetValue_ContentType") + if err != nil { + return err + } + *x = FacetValue_ContentType(value) + return nil +} +func (FacetValue_ContentType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{7, 0} +} + +type Document_OrderIdSource int32 + +const ( + Document_DEFAULTED Document_OrderIdSource = 0 + Document_SUPPLIED Document_OrderIdSource = 1 +) + +var Document_OrderIdSource_name = map[int32]string{ + 0: "DEFAULTED", + 1: "SUPPLIED", +} +var Document_OrderIdSource_value = map[string]int32{ + "DEFAULTED": 0, + "SUPPLIED": 1, +} + +func (x Document_OrderIdSource) Enum() *Document_OrderIdSource { + p := new(Document_OrderIdSource) + *p = x + return p +} +func (x Document_OrderIdSource) String() string { + return proto.EnumName(Document_OrderIdSource_name, int32(x)) +} +func (x *Document_OrderIdSource) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(Document_OrderIdSource_value, data, "Document_OrderIdSource") + if err != nil { + return err + } + *x = Document_OrderIdSource(value) + return nil +} +func (Document_OrderIdSource) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{10, 0} +} + +type Document_Storage int32 + +const ( + Document_DISK Document_Storage = 0 +) + +var Document_Storage_name = map[int32]string{ + 0: "DISK", +} +var Document_Storage_value = map[string]int32{ + "DISK": 0, +} + +func (x Document_Storage) Enum() *Document_Storage { + p := new(Document_Storage) + *p = x + return p +} +func (x Document_Storage) String() string { + return proto.EnumName(Document_Storage_name, int32(x)) +} +func (x *Document_Storage) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(Document_Storage_value, data, "Document_Storage") + if err != nil { + return err + } + *x = Document_Storage(value) + return nil +} +func (Document_Storage) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{10, 1} +} + +type SearchServiceError_ErrorCode int32 + +const ( + SearchServiceError_OK SearchServiceError_ErrorCode = 0 + SearchServiceError_INVALID_REQUEST SearchServiceError_ErrorCode = 1 + SearchServiceError_TRANSIENT_ERROR SearchServiceError_ErrorCode = 2 + SearchServiceError_INTERNAL_ERROR SearchServiceError_ErrorCode = 3 + SearchServiceError_PERMISSION_DENIED SearchServiceError_ErrorCode = 4 + SearchServiceError_TIMEOUT SearchServiceError_ErrorCode = 5 + SearchServiceError_CONCURRENT_TRANSACTION SearchServiceError_ErrorCode = 6 +) + +var SearchServiceError_ErrorCode_name = map[int32]string{ + 0: "OK", + 1: "INVALID_REQUEST", + 2: "TRANSIENT_ERROR", + 3: "INTERNAL_ERROR", + 4: "PERMISSION_DENIED", + 5: "TIMEOUT", + 6: "CONCURRENT_TRANSACTION", +} +var SearchServiceError_ErrorCode_value = map[string]int32{ + "OK": 0, + "INVALID_REQUEST": 1, + "TRANSIENT_ERROR": 2, + "INTERNAL_ERROR": 3, + "PERMISSION_DENIED": 4, + "TIMEOUT": 5, + "CONCURRENT_TRANSACTION": 6, +} + +func (x SearchServiceError_ErrorCode) Enum() *SearchServiceError_ErrorCode { + p := new(SearchServiceError_ErrorCode) + *p = x + return p +} +func (x SearchServiceError_ErrorCode) String() string { + return proto.EnumName(SearchServiceError_ErrorCode_name, int32(x)) +} +func (x *SearchServiceError_ErrorCode) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(SearchServiceError_ErrorCode_value, data, "SearchServiceError_ErrorCode") + if err != nil { + return err + } + *x = SearchServiceError_ErrorCode(value) + return nil +} +func (SearchServiceError_ErrorCode) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{11, 0} +} + +type IndexSpec_Consistency int32 + +const ( + IndexSpec_GLOBAL IndexSpec_Consistency = 0 + IndexSpec_PER_DOCUMENT IndexSpec_Consistency = 1 +) + +var IndexSpec_Consistency_name = map[int32]string{ + 0: "GLOBAL", + 1: "PER_DOCUMENT", +} +var IndexSpec_Consistency_value = map[string]int32{ + "GLOBAL": 0, + "PER_DOCUMENT": 1, +} + +func (x IndexSpec_Consistency) Enum() *IndexSpec_Consistency { + p := new(IndexSpec_Consistency) + *p = x + return p +} +func (x IndexSpec_Consistency) String() string { + return proto.EnumName(IndexSpec_Consistency_name, int32(x)) +} +func (x *IndexSpec_Consistency) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(IndexSpec_Consistency_value, data, "IndexSpec_Consistency") + if err != nil { + return err + } + *x = IndexSpec_Consistency(value) + return nil +} +func (IndexSpec_Consistency) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{13, 0} +} + +type IndexSpec_Source int32 + +const ( + IndexSpec_SEARCH IndexSpec_Source = 0 + IndexSpec_DATASTORE IndexSpec_Source = 1 + IndexSpec_CLOUD_STORAGE IndexSpec_Source = 2 +) + +var IndexSpec_Source_name = map[int32]string{ + 0: "SEARCH", + 1: "DATASTORE", + 2: "CLOUD_STORAGE", +} +var IndexSpec_Source_value = map[string]int32{ + "SEARCH": 0, + "DATASTORE": 1, + "CLOUD_STORAGE": 2, +} + +func (x IndexSpec_Source) Enum() *IndexSpec_Source { + p := new(IndexSpec_Source) + *p = x + return p +} +func (x IndexSpec_Source) String() string { + return proto.EnumName(IndexSpec_Source_name, int32(x)) +} +func (x *IndexSpec_Source) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(IndexSpec_Source_value, data, "IndexSpec_Source") + if err != nil { + return err + } + *x = IndexSpec_Source(value) + return nil +} +func (IndexSpec_Source) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{13, 1} +} + +type IndexSpec_Mode int32 + +const ( + IndexSpec_PRIORITY IndexSpec_Mode = 0 + IndexSpec_BACKGROUND IndexSpec_Mode = 1 +) + +var IndexSpec_Mode_name = map[int32]string{ + 0: "PRIORITY", + 1: "BACKGROUND", +} +var IndexSpec_Mode_value = map[string]int32{ + "PRIORITY": 0, + "BACKGROUND": 1, +} + +func (x IndexSpec_Mode) Enum() *IndexSpec_Mode { + p := new(IndexSpec_Mode) + *p = x + return p +} +func (x IndexSpec_Mode) String() string { + return proto.EnumName(IndexSpec_Mode_name, int32(x)) +} +func (x *IndexSpec_Mode) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(IndexSpec_Mode_value, data, "IndexSpec_Mode") + if err != nil { + return err + } + *x = IndexSpec_Mode(value) + return nil +} +func (IndexSpec_Mode) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{13, 2} +} + +type IndexDocumentParams_Freshness int32 + +const ( + IndexDocumentParams_SYNCHRONOUSLY IndexDocumentParams_Freshness = 0 + IndexDocumentParams_WHEN_CONVENIENT IndexDocumentParams_Freshness = 1 +) + +var IndexDocumentParams_Freshness_name = map[int32]string{ + 0: "SYNCHRONOUSLY", + 1: "WHEN_CONVENIENT", +} +var IndexDocumentParams_Freshness_value = map[string]int32{ + "SYNCHRONOUSLY": 0, + "WHEN_CONVENIENT": 1, +} + +func (x IndexDocumentParams_Freshness) Enum() *IndexDocumentParams_Freshness { + p := new(IndexDocumentParams_Freshness) + *p = x + return p +} +func (x IndexDocumentParams_Freshness) String() string { + return proto.EnumName(IndexDocumentParams_Freshness_name, int32(x)) +} +func (x *IndexDocumentParams_Freshness) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(IndexDocumentParams_Freshness_value, data, "IndexDocumentParams_Freshness") + if err != nil { + return err + } + *x = IndexDocumentParams_Freshness(value) + return nil +} +func (IndexDocumentParams_Freshness) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{15, 0} +} + +type ScorerSpec_Scorer int32 + +const ( + ScorerSpec_RESCORING_MATCH_SCORER ScorerSpec_Scorer = 0 + ScorerSpec_MATCH_SCORER ScorerSpec_Scorer = 2 +) + +var ScorerSpec_Scorer_name = map[int32]string{ + 0: "RESCORING_MATCH_SCORER", + 2: "MATCH_SCORER", +} +var ScorerSpec_Scorer_value = map[string]int32{ + "RESCORING_MATCH_SCORER": 0, + "MATCH_SCORER": 2, +} + +func (x ScorerSpec_Scorer) Enum() *ScorerSpec_Scorer { + p := new(ScorerSpec_Scorer) + *p = x + return p +} +func (x ScorerSpec_Scorer) String() string { + return proto.EnumName(ScorerSpec_Scorer_name, int32(x)) +} +func (x *ScorerSpec_Scorer) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(ScorerSpec_Scorer_value, data, "ScorerSpec_Scorer") + if err != nil { + return err + } + *x = ScorerSpec_Scorer(value) + return nil +} +func (ScorerSpec_Scorer) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{31, 0} +} + +type SearchParams_CursorType int32 + +const ( + SearchParams_NONE SearchParams_CursorType = 0 + SearchParams_SINGLE SearchParams_CursorType = 1 + SearchParams_PER_RESULT SearchParams_CursorType = 2 +) + +var SearchParams_CursorType_name = map[int32]string{ + 0: "NONE", + 1: "SINGLE", + 2: "PER_RESULT", +} +var SearchParams_CursorType_value = map[string]int32{ + "NONE": 0, + "SINGLE": 1, + "PER_RESULT": 2, +} + +func (x SearchParams_CursorType) Enum() *SearchParams_CursorType { + p := new(SearchParams_CursorType) + *p = x + return p +} +func (x SearchParams_CursorType) String() string { + return proto.EnumName(SearchParams_CursorType_name, int32(x)) +} +func (x *SearchParams_CursorType) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(SearchParams_CursorType_value, data, "SearchParams_CursorType") + if err != nil { + return err + } + *x = SearchParams_CursorType(value) + return nil +} +func (SearchParams_CursorType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{38, 0} +} + +type SearchParams_ParsingMode int32 + +const ( + SearchParams_STRICT SearchParams_ParsingMode = 0 + SearchParams_RELAXED SearchParams_ParsingMode = 1 +) + +var SearchParams_ParsingMode_name = map[int32]string{ + 0: "STRICT", + 1: "RELAXED", +} +var SearchParams_ParsingMode_value = map[string]int32{ + "STRICT": 0, + "RELAXED": 1, +} + +func (x SearchParams_ParsingMode) Enum() *SearchParams_ParsingMode { + p := new(SearchParams_ParsingMode) + *p = x + return p +} +func (x SearchParams_ParsingMode) String() string { + return proto.EnumName(SearchParams_ParsingMode_name, int32(x)) +} +func (x *SearchParams_ParsingMode) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(SearchParams_ParsingMode_value, data, "SearchParams_ParsingMode") + if err != nil { + return err + } + *x = SearchParams_ParsingMode(value) + return nil +} +func (SearchParams_ParsingMode) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{38, 1} +} + +type Scope struct { + Type *Scope_Type `protobuf:"varint,1,opt,name=type,enum=search.Scope_Type" json:"type,omitempty"` + Value *string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Scope) Reset() { *m = Scope{} } +func (m *Scope) String() string { return proto.CompactTextString(m) } +func (*Scope) ProtoMessage() {} +func (*Scope) Descriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{0} +} +func (m *Scope) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Scope.Unmarshal(m, b) +} +func (m *Scope) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Scope.Marshal(b, m, deterministic) +} +func (dst *Scope) XXX_Merge(src proto.Message) { + xxx_messageInfo_Scope.Merge(dst, src) +} +func (m *Scope) XXX_Size() int { + return xxx_messageInfo_Scope.Size(m) +} +func (m *Scope) XXX_DiscardUnknown() { + xxx_messageInfo_Scope.DiscardUnknown(m) +} + +var xxx_messageInfo_Scope proto.InternalMessageInfo + +func (m *Scope) GetType() Scope_Type { + if m != nil && m.Type != nil { + return *m.Type + } + return Scope_USER_BY_CANONICAL_ID +} + +func (m *Scope) GetValue() string { + if m != nil && m.Value != nil { + return *m.Value + } + return "" +} + +type Entry struct { + Scope *Scope `protobuf:"bytes,1,opt,name=scope" json:"scope,omitempty"` + Permission *Entry_Permission `protobuf:"varint,2,opt,name=permission,enum=search.Entry_Permission" json:"permission,omitempty"` + DisplayName *string `protobuf:"bytes,3,opt,name=display_name,json=displayName" json:"display_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Entry) Reset() { *m = Entry{} } +func (m *Entry) String() string { return proto.CompactTextString(m) } +func (*Entry) ProtoMessage() {} +func (*Entry) Descriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{1} +} +func (m *Entry) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Entry.Unmarshal(m, b) +} +func (m *Entry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Entry.Marshal(b, m, deterministic) +} +func (dst *Entry) XXX_Merge(src proto.Message) { + xxx_messageInfo_Entry.Merge(dst, src) +} +func (m *Entry) XXX_Size() int { + return xxx_messageInfo_Entry.Size(m) +} +func (m *Entry) XXX_DiscardUnknown() { + xxx_messageInfo_Entry.DiscardUnknown(m) +} + +var xxx_messageInfo_Entry proto.InternalMessageInfo + +func (m *Entry) GetScope() *Scope { + if m != nil { + return m.Scope + } + return nil +} + +func (m *Entry) GetPermission() Entry_Permission { + if m != nil && m.Permission != nil { + return *m.Permission + } + return Entry_READ +} + +func (m *Entry) GetDisplayName() string { + if m != nil && m.DisplayName != nil { + return *m.DisplayName + } + return "" +} + +type AccessControlList struct { + Owner *string `protobuf:"bytes,1,opt,name=owner" json:"owner,omitempty"` + Entries []*Entry `protobuf:"bytes,2,rep,name=entries" json:"entries,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AccessControlList) Reset() { *m = AccessControlList{} } +func (m *AccessControlList) String() string { return proto.CompactTextString(m) } +func (*AccessControlList) ProtoMessage() {} +func (*AccessControlList) Descriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{2} +} +func (m *AccessControlList) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AccessControlList.Unmarshal(m, b) +} +func (m *AccessControlList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AccessControlList.Marshal(b, m, deterministic) +} +func (dst *AccessControlList) XXX_Merge(src proto.Message) { + xxx_messageInfo_AccessControlList.Merge(dst, src) +} +func (m *AccessControlList) XXX_Size() int { + return xxx_messageInfo_AccessControlList.Size(m) +} +func (m *AccessControlList) XXX_DiscardUnknown() { + xxx_messageInfo_AccessControlList.DiscardUnknown(m) +} + +var xxx_messageInfo_AccessControlList proto.InternalMessageInfo + +func (m *AccessControlList) GetOwner() string { + if m != nil && m.Owner != nil { + return *m.Owner + } + return "" +} + +func (m *AccessControlList) GetEntries() []*Entry { + if m != nil { + return m.Entries + } + return nil +} + +type FieldValue struct { + Type *FieldValue_ContentType `protobuf:"varint,1,opt,name=type,enum=search.FieldValue_ContentType,def=0" json:"type,omitempty"` + Language *string `protobuf:"bytes,2,opt,name=language,def=en" json:"language,omitempty"` + StringValue *string `protobuf:"bytes,3,opt,name=string_value,json=stringValue" json:"string_value,omitempty"` + Geo *FieldValue_Geo `protobuf:"group,4,opt,name=Geo,json=geo" json:"geo,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FieldValue) Reset() { *m = FieldValue{} } +func (m *FieldValue) String() string { return proto.CompactTextString(m) } +func (*FieldValue) ProtoMessage() {} +func (*FieldValue) Descriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{3} +} +func (m *FieldValue) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FieldValue.Unmarshal(m, b) +} +func (m *FieldValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FieldValue.Marshal(b, m, deterministic) +} +func (dst *FieldValue) XXX_Merge(src proto.Message) { + xxx_messageInfo_FieldValue.Merge(dst, src) +} +func (m *FieldValue) XXX_Size() int { + return xxx_messageInfo_FieldValue.Size(m) +} +func (m *FieldValue) XXX_DiscardUnknown() { + xxx_messageInfo_FieldValue.DiscardUnknown(m) +} + +var xxx_messageInfo_FieldValue proto.InternalMessageInfo + +const Default_FieldValue_Type FieldValue_ContentType = FieldValue_TEXT +const Default_FieldValue_Language string = "en" + +func (m *FieldValue) GetType() FieldValue_ContentType { + if m != nil && m.Type != nil { + return *m.Type + } + return Default_FieldValue_Type +} + +func (m *FieldValue) GetLanguage() string { + if m != nil && m.Language != nil { + return *m.Language + } + return Default_FieldValue_Language +} + +func (m *FieldValue) GetStringValue() string { + if m != nil && m.StringValue != nil { + return *m.StringValue + } + return "" +} + +func (m *FieldValue) GetGeo() *FieldValue_Geo { + if m != nil { + return m.Geo + } + return nil +} + +type FieldValue_Geo struct { + Lat *float64 `protobuf:"fixed64,5,req,name=lat" json:"lat,omitempty"` + Lng *float64 `protobuf:"fixed64,6,req,name=lng" json:"lng,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FieldValue_Geo) Reset() { *m = FieldValue_Geo{} } +func (m *FieldValue_Geo) String() string { return proto.CompactTextString(m) } +func (*FieldValue_Geo) ProtoMessage() {} +func (*FieldValue_Geo) Descriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{3, 0} +} +func (m *FieldValue_Geo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FieldValue_Geo.Unmarshal(m, b) +} +func (m *FieldValue_Geo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FieldValue_Geo.Marshal(b, m, deterministic) +} +func (dst *FieldValue_Geo) XXX_Merge(src proto.Message) { + xxx_messageInfo_FieldValue_Geo.Merge(dst, src) +} +func (m *FieldValue_Geo) XXX_Size() int { + return xxx_messageInfo_FieldValue_Geo.Size(m) +} +func (m *FieldValue_Geo) XXX_DiscardUnknown() { + xxx_messageInfo_FieldValue_Geo.DiscardUnknown(m) +} + +var xxx_messageInfo_FieldValue_Geo proto.InternalMessageInfo + +func (m *FieldValue_Geo) GetLat() float64 { + if m != nil && m.Lat != nil { + return *m.Lat + } + return 0 +} + +func (m *FieldValue_Geo) GetLng() float64 { + if m != nil && m.Lng != nil { + return *m.Lng + } + return 0 +} + +type Field struct { + Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"` + Value *FieldValue `protobuf:"bytes,2,req,name=value" json:"value,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Field) Reset() { *m = Field{} } +func (m *Field) String() string { return proto.CompactTextString(m) } +func (*Field) ProtoMessage() {} +func (*Field) Descriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{4} +} +func (m *Field) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Field.Unmarshal(m, b) +} +func (m *Field) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Field.Marshal(b, m, deterministic) +} +func (dst *Field) XXX_Merge(src proto.Message) { + xxx_messageInfo_Field.Merge(dst, src) +} +func (m *Field) XXX_Size() int { + return xxx_messageInfo_Field.Size(m) +} +func (m *Field) XXX_DiscardUnknown() { + xxx_messageInfo_Field.DiscardUnknown(m) +} + +var xxx_messageInfo_Field proto.InternalMessageInfo + +func (m *Field) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +func (m *Field) GetValue() *FieldValue { + if m != nil { + return m.Value + } + return nil +} + +type FieldTypes struct { + Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"` + Type []FieldValue_ContentType `protobuf:"varint,2,rep,name=type,enum=search.FieldValue_ContentType" json:"type,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FieldTypes) Reset() { *m = FieldTypes{} } +func (m *FieldTypes) String() string { return proto.CompactTextString(m) } +func (*FieldTypes) ProtoMessage() {} +func (*FieldTypes) Descriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{5} +} +func (m *FieldTypes) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FieldTypes.Unmarshal(m, b) +} +func (m *FieldTypes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FieldTypes.Marshal(b, m, deterministic) +} +func (dst *FieldTypes) XXX_Merge(src proto.Message) { + xxx_messageInfo_FieldTypes.Merge(dst, src) +} +func (m *FieldTypes) XXX_Size() int { + return xxx_messageInfo_FieldTypes.Size(m) +} +func (m *FieldTypes) XXX_DiscardUnknown() { + xxx_messageInfo_FieldTypes.DiscardUnknown(m) +} + +var xxx_messageInfo_FieldTypes proto.InternalMessageInfo + +func (m *FieldTypes) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +func (m *FieldTypes) GetType() []FieldValue_ContentType { + if m != nil { + return m.Type + } + return nil +} + +type IndexShardSettings struct { + PrevNumShards []int32 `protobuf:"varint,1,rep,name=prev_num_shards,json=prevNumShards" json:"prev_num_shards,omitempty"` + NumShards *int32 `protobuf:"varint,2,req,name=num_shards,json=numShards,def=1" json:"num_shards,omitempty"` + PrevNumShardsSearchFalse []int32 `protobuf:"varint,3,rep,name=prev_num_shards_search_false,json=prevNumShardsSearchFalse" json:"prev_num_shards_search_false,omitempty"` + LocalReplica *string `protobuf:"bytes,4,opt,name=local_replica,json=localReplica,def=" json:"local_replica,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *IndexShardSettings) Reset() { *m = IndexShardSettings{} } +func (m *IndexShardSettings) String() string { return proto.CompactTextString(m) } +func (*IndexShardSettings) ProtoMessage() {} +func (*IndexShardSettings) Descriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{6} +} +func (m *IndexShardSettings) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_IndexShardSettings.Unmarshal(m, b) +} +func (m *IndexShardSettings) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_IndexShardSettings.Marshal(b, m, deterministic) +} +func (dst *IndexShardSettings) XXX_Merge(src proto.Message) { + xxx_messageInfo_IndexShardSettings.Merge(dst, src) +} +func (m *IndexShardSettings) XXX_Size() int { + return xxx_messageInfo_IndexShardSettings.Size(m) +} +func (m *IndexShardSettings) XXX_DiscardUnknown() { + xxx_messageInfo_IndexShardSettings.DiscardUnknown(m) +} + +var xxx_messageInfo_IndexShardSettings proto.InternalMessageInfo + +const Default_IndexShardSettings_NumShards int32 = 1 + +func (m *IndexShardSettings) GetPrevNumShards() []int32 { + if m != nil { + return m.PrevNumShards + } + return nil +} + +func (m *IndexShardSettings) GetNumShards() int32 { + if m != nil && m.NumShards != nil { + return *m.NumShards + } + return Default_IndexShardSettings_NumShards +} + +func (m *IndexShardSettings) GetPrevNumShardsSearchFalse() []int32 { + if m != nil { + return m.PrevNumShardsSearchFalse + } + return nil +} + +func (m *IndexShardSettings) GetLocalReplica() string { + if m != nil && m.LocalReplica != nil { + return *m.LocalReplica + } + return "" +} + +type FacetValue struct { + Type *FacetValue_ContentType `protobuf:"varint,1,opt,name=type,enum=search.FacetValue_ContentType,def=2" json:"type,omitempty"` + StringValue *string `protobuf:"bytes,3,opt,name=string_value,json=stringValue" json:"string_value,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FacetValue) Reset() { *m = FacetValue{} } +func (m *FacetValue) String() string { return proto.CompactTextString(m) } +func (*FacetValue) ProtoMessage() {} +func (*FacetValue) Descriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{7} +} +func (m *FacetValue) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FacetValue.Unmarshal(m, b) +} +func (m *FacetValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FacetValue.Marshal(b, m, deterministic) +} +func (dst *FacetValue) XXX_Merge(src proto.Message) { + xxx_messageInfo_FacetValue.Merge(dst, src) +} +func (m *FacetValue) XXX_Size() int { + return xxx_messageInfo_FacetValue.Size(m) +} +func (m *FacetValue) XXX_DiscardUnknown() { + xxx_messageInfo_FacetValue.DiscardUnknown(m) +} + +var xxx_messageInfo_FacetValue proto.InternalMessageInfo + +const Default_FacetValue_Type FacetValue_ContentType = FacetValue_ATOM + +func (m *FacetValue) GetType() FacetValue_ContentType { + if m != nil && m.Type != nil { + return *m.Type + } + return Default_FacetValue_Type +} + +func (m *FacetValue) GetStringValue() string { + if m != nil && m.StringValue != nil { + return *m.StringValue + } + return "" +} + +type Facet struct { + Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"` + Value *FacetValue `protobuf:"bytes,2,req,name=value" json:"value,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Facet) Reset() { *m = Facet{} } +func (m *Facet) String() string { return proto.CompactTextString(m) } +func (*Facet) ProtoMessage() {} +func (*Facet) Descriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{8} +} +func (m *Facet) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Facet.Unmarshal(m, b) +} +func (m *Facet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Facet.Marshal(b, m, deterministic) +} +func (dst *Facet) XXX_Merge(src proto.Message) { + xxx_messageInfo_Facet.Merge(dst, src) +} +func (m *Facet) XXX_Size() int { + return xxx_messageInfo_Facet.Size(m) +} +func (m *Facet) XXX_DiscardUnknown() { + xxx_messageInfo_Facet.DiscardUnknown(m) +} + +var xxx_messageInfo_Facet proto.InternalMessageInfo + +func (m *Facet) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +func (m *Facet) GetValue() *FacetValue { + if m != nil { + return m.Value + } + return nil +} + +type DocumentMetadata struct { + Version *int64 `protobuf:"varint,1,opt,name=version" json:"version,omitempty"` + CommittedStVersion *int64 `protobuf:"varint,2,opt,name=committed_st_version,json=committedStVersion" json:"committed_st_version,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DocumentMetadata) Reset() { *m = DocumentMetadata{} } +func (m *DocumentMetadata) String() string { return proto.CompactTextString(m) } +func (*DocumentMetadata) ProtoMessage() {} +func (*DocumentMetadata) Descriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{9} +} +func (m *DocumentMetadata) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DocumentMetadata.Unmarshal(m, b) +} +func (m *DocumentMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DocumentMetadata.Marshal(b, m, deterministic) +} +func (dst *DocumentMetadata) XXX_Merge(src proto.Message) { + xxx_messageInfo_DocumentMetadata.Merge(dst, src) +} +func (m *DocumentMetadata) XXX_Size() int { + return xxx_messageInfo_DocumentMetadata.Size(m) +} +func (m *DocumentMetadata) XXX_DiscardUnknown() { + xxx_messageInfo_DocumentMetadata.DiscardUnknown(m) +} + +var xxx_messageInfo_DocumentMetadata proto.InternalMessageInfo + +func (m *DocumentMetadata) GetVersion() int64 { + if m != nil && m.Version != nil { + return *m.Version + } + return 0 +} + +func (m *DocumentMetadata) GetCommittedStVersion() int64 { + if m != nil && m.CommittedStVersion != nil { + return *m.CommittedStVersion + } + return 0 +} + +type Document struct { + Id *string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"` + Language *string `protobuf:"bytes,2,opt,name=language,def=en" json:"language,omitempty"` + Field []*Field `protobuf:"bytes,3,rep,name=field" json:"field,omitempty"` + OrderId *int32 `protobuf:"varint,4,opt,name=order_id,json=orderId" json:"order_id,omitempty"` + OrderIdSource *Document_OrderIdSource `protobuf:"varint,6,opt,name=order_id_source,json=orderIdSource,enum=search.Document_OrderIdSource,def=1" json:"order_id_source,omitempty"` + Storage *Document_Storage `protobuf:"varint,5,opt,name=storage,enum=search.Document_Storage,def=0" json:"storage,omitempty"` + Facet []*Facet `protobuf:"bytes,8,rep,name=facet" json:"facet,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Document) Reset() { *m = Document{} } +func (m *Document) String() string { return proto.CompactTextString(m) } +func (*Document) ProtoMessage() {} +func (*Document) Descriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{10} +} +func (m *Document) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Document.Unmarshal(m, b) +} +func (m *Document) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Document.Marshal(b, m, deterministic) +} +func (dst *Document) XXX_Merge(src proto.Message) { + xxx_messageInfo_Document.Merge(dst, src) +} +func (m *Document) XXX_Size() int { + return xxx_messageInfo_Document.Size(m) +} +func (m *Document) XXX_DiscardUnknown() { + xxx_messageInfo_Document.DiscardUnknown(m) +} + +var xxx_messageInfo_Document proto.InternalMessageInfo + +const Default_Document_Language string = "en" +const Default_Document_OrderIdSource Document_OrderIdSource = Document_SUPPLIED +const Default_Document_Storage Document_Storage = Document_DISK + +func (m *Document) GetId() string { + if m != nil && m.Id != nil { + return *m.Id + } + return "" +} + +func (m *Document) GetLanguage() string { + if m != nil && m.Language != nil { + return *m.Language + } + return Default_Document_Language +} + +func (m *Document) GetField() []*Field { + if m != nil { + return m.Field + } + return nil +} + +func (m *Document) GetOrderId() int32 { + if m != nil && m.OrderId != nil { + return *m.OrderId + } + return 0 +} + +func (m *Document) GetOrderIdSource() Document_OrderIdSource { + if m != nil && m.OrderIdSource != nil { + return *m.OrderIdSource + } + return Default_Document_OrderIdSource +} + +func (m *Document) GetStorage() Document_Storage { + if m != nil && m.Storage != nil { + return *m.Storage + } + return Default_Document_Storage +} + +func (m *Document) GetFacet() []*Facet { + if m != nil { + return m.Facet + } + return nil +} + +type SearchServiceError struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SearchServiceError) Reset() { *m = SearchServiceError{} } +func (m *SearchServiceError) String() string { return proto.CompactTextString(m) } +func (*SearchServiceError) ProtoMessage() {} +func (*SearchServiceError) Descriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{11} +} +func (m *SearchServiceError) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SearchServiceError.Unmarshal(m, b) +} +func (m *SearchServiceError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SearchServiceError.Marshal(b, m, deterministic) +} +func (dst *SearchServiceError) XXX_Merge(src proto.Message) { + xxx_messageInfo_SearchServiceError.Merge(dst, src) +} +func (m *SearchServiceError) XXX_Size() int { + return xxx_messageInfo_SearchServiceError.Size(m) +} +func (m *SearchServiceError) XXX_DiscardUnknown() { + xxx_messageInfo_SearchServiceError.DiscardUnknown(m) +} + +var xxx_messageInfo_SearchServiceError proto.InternalMessageInfo + +type RequestStatus struct { + Code *SearchServiceError_ErrorCode `protobuf:"varint,1,req,name=code,enum=search.SearchServiceError_ErrorCode" json:"code,omitempty"` + ErrorDetail *string `protobuf:"bytes,2,opt,name=error_detail,json=errorDetail" json:"error_detail,omitempty"` + CanonicalCode *int32 `protobuf:"varint,3,opt,name=canonical_code,json=canonicalCode" json:"canonical_code,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RequestStatus) Reset() { *m = RequestStatus{} } +func (m *RequestStatus) String() string { return proto.CompactTextString(m) } +func (*RequestStatus) ProtoMessage() {} +func (*RequestStatus) Descriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{12} +} +func (m *RequestStatus) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RequestStatus.Unmarshal(m, b) +} +func (m *RequestStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RequestStatus.Marshal(b, m, deterministic) +} +func (dst *RequestStatus) XXX_Merge(src proto.Message) { + xxx_messageInfo_RequestStatus.Merge(dst, src) +} +func (m *RequestStatus) XXX_Size() int { + return xxx_messageInfo_RequestStatus.Size(m) +} +func (m *RequestStatus) XXX_DiscardUnknown() { + xxx_messageInfo_RequestStatus.DiscardUnknown(m) +} + +var xxx_messageInfo_RequestStatus proto.InternalMessageInfo + +func (m *RequestStatus) GetCode() SearchServiceError_ErrorCode { + if m != nil && m.Code != nil { + return *m.Code + } + return SearchServiceError_OK +} + +func (m *RequestStatus) GetErrorDetail() string { + if m != nil && m.ErrorDetail != nil { + return *m.ErrorDetail + } + return "" +} + +func (m *RequestStatus) GetCanonicalCode() int32 { + if m != nil && m.CanonicalCode != nil { + return *m.CanonicalCode + } + return 0 +} + +type IndexSpec struct { + Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"` + Consistency *IndexSpec_Consistency `protobuf:"varint,2,opt,name=consistency,enum=search.IndexSpec_Consistency,def=1" json:"consistency,omitempty"` + Namespace *string `protobuf:"bytes,3,opt,name=namespace" json:"namespace,omitempty"` + Version *int32 `protobuf:"varint,4,opt,name=version" json:"version,omitempty"` + Source *IndexSpec_Source `protobuf:"varint,5,opt,name=source,enum=search.IndexSpec_Source,def=0" json:"source,omitempty"` + Mode *IndexSpec_Mode `protobuf:"varint,6,opt,name=mode,enum=search.IndexSpec_Mode,def=0" json:"mode,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *IndexSpec) Reset() { *m = IndexSpec{} } +func (m *IndexSpec) String() string { return proto.CompactTextString(m) } +func (*IndexSpec) ProtoMessage() {} +func (*IndexSpec) Descriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{13} +} +func (m *IndexSpec) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_IndexSpec.Unmarshal(m, b) +} +func (m *IndexSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_IndexSpec.Marshal(b, m, deterministic) +} +func (dst *IndexSpec) XXX_Merge(src proto.Message) { + xxx_messageInfo_IndexSpec.Merge(dst, src) +} +func (m *IndexSpec) XXX_Size() int { + return xxx_messageInfo_IndexSpec.Size(m) +} +func (m *IndexSpec) XXX_DiscardUnknown() { + xxx_messageInfo_IndexSpec.DiscardUnknown(m) +} + +var xxx_messageInfo_IndexSpec proto.InternalMessageInfo + +const Default_IndexSpec_Consistency IndexSpec_Consistency = IndexSpec_PER_DOCUMENT +const Default_IndexSpec_Source IndexSpec_Source = IndexSpec_SEARCH +const Default_IndexSpec_Mode IndexSpec_Mode = IndexSpec_PRIORITY + +func (m *IndexSpec) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +func (m *IndexSpec) GetConsistency() IndexSpec_Consistency { + if m != nil && m.Consistency != nil { + return *m.Consistency + } + return Default_IndexSpec_Consistency +} + +func (m *IndexSpec) GetNamespace() string { + if m != nil && m.Namespace != nil { + return *m.Namespace + } + return "" +} + +func (m *IndexSpec) GetVersion() int32 { + if m != nil && m.Version != nil { + return *m.Version + } + return 0 +} + +func (m *IndexSpec) GetSource() IndexSpec_Source { + if m != nil && m.Source != nil { + return *m.Source + } + return Default_IndexSpec_Source +} + +func (m *IndexSpec) GetMode() IndexSpec_Mode { + if m != nil && m.Mode != nil { + return *m.Mode + } + return Default_IndexSpec_Mode +} + +type IndexMetadata struct { + IndexSpec *IndexSpec `protobuf:"bytes,1,req,name=index_spec,json=indexSpec" json:"index_spec,omitempty"` + Field []*FieldTypes `protobuf:"bytes,2,rep,name=field" json:"field,omitempty"` + Storage *IndexMetadata_Storage `protobuf:"bytes,3,opt,name=storage" json:"storage,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *IndexMetadata) Reset() { *m = IndexMetadata{} } +func (m *IndexMetadata) String() string { return proto.CompactTextString(m) } +func (*IndexMetadata) ProtoMessage() {} +func (*IndexMetadata) Descriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{14} +} +func (m *IndexMetadata) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_IndexMetadata.Unmarshal(m, b) +} +func (m *IndexMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_IndexMetadata.Marshal(b, m, deterministic) +} +func (dst *IndexMetadata) XXX_Merge(src proto.Message) { + xxx_messageInfo_IndexMetadata.Merge(dst, src) +} +func (m *IndexMetadata) XXX_Size() int { + return xxx_messageInfo_IndexMetadata.Size(m) +} +func (m *IndexMetadata) XXX_DiscardUnknown() { + xxx_messageInfo_IndexMetadata.DiscardUnknown(m) +} + +var xxx_messageInfo_IndexMetadata proto.InternalMessageInfo + +func (m *IndexMetadata) GetIndexSpec() *IndexSpec { + if m != nil { + return m.IndexSpec + } + return nil +} + +func (m *IndexMetadata) GetField() []*FieldTypes { + if m != nil { + return m.Field + } + return nil +} + +func (m *IndexMetadata) GetStorage() *IndexMetadata_Storage { + if m != nil { + return m.Storage + } + return nil +} + +type IndexMetadata_Storage struct { + AmountUsed *int64 `protobuf:"varint,1,opt,name=amount_used,json=amountUsed" json:"amount_used,omitempty"` + Limit *int64 `protobuf:"varint,2,opt,name=limit" json:"limit,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *IndexMetadata_Storage) Reset() { *m = IndexMetadata_Storage{} } +func (m *IndexMetadata_Storage) String() string { return proto.CompactTextString(m) } +func (*IndexMetadata_Storage) ProtoMessage() {} +func (*IndexMetadata_Storage) Descriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{14, 0} +} +func (m *IndexMetadata_Storage) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_IndexMetadata_Storage.Unmarshal(m, b) +} +func (m *IndexMetadata_Storage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_IndexMetadata_Storage.Marshal(b, m, deterministic) +} +func (dst *IndexMetadata_Storage) XXX_Merge(src proto.Message) { + xxx_messageInfo_IndexMetadata_Storage.Merge(dst, src) +} +func (m *IndexMetadata_Storage) XXX_Size() int { + return xxx_messageInfo_IndexMetadata_Storage.Size(m) +} +func (m *IndexMetadata_Storage) XXX_DiscardUnknown() { + xxx_messageInfo_IndexMetadata_Storage.DiscardUnknown(m) +} + +var xxx_messageInfo_IndexMetadata_Storage proto.InternalMessageInfo + +func (m *IndexMetadata_Storage) GetAmountUsed() int64 { + if m != nil && m.AmountUsed != nil { + return *m.AmountUsed + } + return 0 +} + +func (m *IndexMetadata_Storage) GetLimit() int64 { + if m != nil && m.Limit != nil { + return *m.Limit + } + return 0 +} + +type IndexDocumentParams struct { + Document []*Document `protobuf:"bytes,1,rep,name=document" json:"document,omitempty"` + Freshness *IndexDocumentParams_Freshness `protobuf:"varint,2,opt,name=freshness,enum=search.IndexDocumentParams_Freshness,def=0" json:"freshness,omitempty"` // Deprecated: Do not use. + IndexSpec *IndexSpec `protobuf:"bytes,3,req,name=index_spec,json=indexSpec" json:"index_spec,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *IndexDocumentParams) Reset() { *m = IndexDocumentParams{} } +func (m *IndexDocumentParams) String() string { return proto.CompactTextString(m) } +func (*IndexDocumentParams) ProtoMessage() {} +func (*IndexDocumentParams) Descriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{15} +} +func (m *IndexDocumentParams) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_IndexDocumentParams.Unmarshal(m, b) +} +func (m *IndexDocumentParams) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_IndexDocumentParams.Marshal(b, m, deterministic) +} +func (dst *IndexDocumentParams) XXX_Merge(src proto.Message) { + xxx_messageInfo_IndexDocumentParams.Merge(dst, src) +} +func (m *IndexDocumentParams) XXX_Size() int { + return xxx_messageInfo_IndexDocumentParams.Size(m) +} +func (m *IndexDocumentParams) XXX_DiscardUnknown() { + xxx_messageInfo_IndexDocumentParams.DiscardUnknown(m) +} + +var xxx_messageInfo_IndexDocumentParams proto.InternalMessageInfo + +const Default_IndexDocumentParams_Freshness IndexDocumentParams_Freshness = IndexDocumentParams_SYNCHRONOUSLY + +func (m *IndexDocumentParams) GetDocument() []*Document { + if m != nil { + return m.Document + } + return nil +} + +// Deprecated: Do not use. +func (m *IndexDocumentParams) GetFreshness() IndexDocumentParams_Freshness { + if m != nil && m.Freshness != nil { + return *m.Freshness + } + return Default_IndexDocumentParams_Freshness +} + +func (m *IndexDocumentParams) GetIndexSpec() *IndexSpec { + if m != nil { + return m.IndexSpec + } + return nil +} + +type IndexDocumentRequest struct { + Params *IndexDocumentParams `protobuf:"bytes,1,req,name=params" json:"params,omitempty"` + AppId []byte `protobuf:"bytes,3,opt,name=app_id,json=appId" json:"app_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *IndexDocumentRequest) Reset() { *m = IndexDocumentRequest{} } +func (m *IndexDocumentRequest) String() string { return proto.CompactTextString(m) } +func (*IndexDocumentRequest) ProtoMessage() {} +func (*IndexDocumentRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{16} +} +func (m *IndexDocumentRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_IndexDocumentRequest.Unmarshal(m, b) +} +func (m *IndexDocumentRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_IndexDocumentRequest.Marshal(b, m, deterministic) +} +func (dst *IndexDocumentRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_IndexDocumentRequest.Merge(dst, src) +} +func (m *IndexDocumentRequest) XXX_Size() int { + return xxx_messageInfo_IndexDocumentRequest.Size(m) +} +func (m *IndexDocumentRequest) XXX_DiscardUnknown() { + xxx_messageInfo_IndexDocumentRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_IndexDocumentRequest proto.InternalMessageInfo + +func (m *IndexDocumentRequest) GetParams() *IndexDocumentParams { + if m != nil { + return m.Params + } + return nil +} + +func (m *IndexDocumentRequest) GetAppId() []byte { + if m != nil { + return m.AppId + } + return nil +} + +type IndexDocumentResponse struct { + Status []*RequestStatus `protobuf:"bytes,1,rep,name=status" json:"status,omitempty"` + DocId []string `protobuf:"bytes,2,rep,name=doc_id,json=docId" json:"doc_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *IndexDocumentResponse) Reset() { *m = IndexDocumentResponse{} } +func (m *IndexDocumentResponse) String() string { return proto.CompactTextString(m) } +func (*IndexDocumentResponse) ProtoMessage() {} +func (*IndexDocumentResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{17} +} +func (m *IndexDocumentResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_IndexDocumentResponse.Unmarshal(m, b) +} +func (m *IndexDocumentResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_IndexDocumentResponse.Marshal(b, m, deterministic) +} +func (dst *IndexDocumentResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_IndexDocumentResponse.Merge(dst, src) +} +func (m *IndexDocumentResponse) XXX_Size() int { + return xxx_messageInfo_IndexDocumentResponse.Size(m) +} +func (m *IndexDocumentResponse) XXX_DiscardUnknown() { + xxx_messageInfo_IndexDocumentResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_IndexDocumentResponse proto.InternalMessageInfo + +func (m *IndexDocumentResponse) GetStatus() []*RequestStatus { + if m != nil { + return m.Status + } + return nil +} + +func (m *IndexDocumentResponse) GetDocId() []string { + if m != nil { + return m.DocId + } + return nil +} + +type DeleteDocumentParams struct { + DocId []string `protobuf:"bytes,1,rep,name=doc_id,json=docId" json:"doc_id,omitempty"` + IndexSpec *IndexSpec `protobuf:"bytes,2,req,name=index_spec,json=indexSpec" json:"index_spec,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DeleteDocumentParams) Reset() { *m = DeleteDocumentParams{} } +func (m *DeleteDocumentParams) String() string { return proto.CompactTextString(m) } +func (*DeleteDocumentParams) ProtoMessage() {} +func (*DeleteDocumentParams) Descriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{18} +} +func (m *DeleteDocumentParams) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteDocumentParams.Unmarshal(m, b) +} +func (m *DeleteDocumentParams) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteDocumentParams.Marshal(b, m, deterministic) +} +func (dst *DeleteDocumentParams) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteDocumentParams.Merge(dst, src) +} +func (m *DeleteDocumentParams) XXX_Size() int { + return xxx_messageInfo_DeleteDocumentParams.Size(m) +} +func (m *DeleteDocumentParams) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteDocumentParams.DiscardUnknown(m) +} + +var xxx_messageInfo_DeleteDocumentParams proto.InternalMessageInfo + +func (m *DeleteDocumentParams) GetDocId() []string { + if m != nil { + return m.DocId + } + return nil +} + +func (m *DeleteDocumentParams) GetIndexSpec() *IndexSpec { + if m != nil { + return m.IndexSpec + } + return nil +} + +type DeleteDocumentRequest struct { + Params *DeleteDocumentParams `protobuf:"bytes,1,req,name=params" json:"params,omitempty"` + AppId []byte `protobuf:"bytes,3,opt,name=app_id,json=appId" json:"app_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DeleteDocumentRequest) Reset() { *m = DeleteDocumentRequest{} } +func (m *DeleteDocumentRequest) String() string { return proto.CompactTextString(m) } +func (*DeleteDocumentRequest) ProtoMessage() {} +func (*DeleteDocumentRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{19} +} +func (m *DeleteDocumentRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteDocumentRequest.Unmarshal(m, b) +} +func (m *DeleteDocumentRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteDocumentRequest.Marshal(b, m, deterministic) +} +func (dst *DeleteDocumentRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteDocumentRequest.Merge(dst, src) +} +func (m *DeleteDocumentRequest) XXX_Size() int { + return xxx_messageInfo_DeleteDocumentRequest.Size(m) +} +func (m *DeleteDocumentRequest) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteDocumentRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_DeleteDocumentRequest proto.InternalMessageInfo + +func (m *DeleteDocumentRequest) GetParams() *DeleteDocumentParams { + if m != nil { + return m.Params + } + return nil +} + +func (m *DeleteDocumentRequest) GetAppId() []byte { + if m != nil { + return m.AppId + } + return nil +} + +type DeleteDocumentResponse struct { + Status []*RequestStatus `protobuf:"bytes,1,rep,name=status" json:"status,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DeleteDocumentResponse) Reset() { *m = DeleteDocumentResponse{} } +func (m *DeleteDocumentResponse) String() string { return proto.CompactTextString(m) } +func (*DeleteDocumentResponse) ProtoMessage() {} +func (*DeleteDocumentResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{20} +} +func (m *DeleteDocumentResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteDocumentResponse.Unmarshal(m, b) +} +func (m *DeleteDocumentResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteDocumentResponse.Marshal(b, m, deterministic) +} +func (dst *DeleteDocumentResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteDocumentResponse.Merge(dst, src) +} +func (m *DeleteDocumentResponse) XXX_Size() int { + return xxx_messageInfo_DeleteDocumentResponse.Size(m) +} +func (m *DeleteDocumentResponse) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteDocumentResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_DeleteDocumentResponse proto.InternalMessageInfo + +func (m *DeleteDocumentResponse) GetStatus() []*RequestStatus { + if m != nil { + return m.Status + } + return nil +} + +type ListDocumentsParams struct { + IndexSpec *IndexSpec `protobuf:"bytes,1,req,name=index_spec,json=indexSpec" json:"index_spec,omitempty"` + StartDocId *string `protobuf:"bytes,2,opt,name=start_doc_id,json=startDocId" json:"start_doc_id,omitempty"` + IncludeStartDoc *bool `protobuf:"varint,3,opt,name=include_start_doc,json=includeStartDoc,def=1" json:"include_start_doc,omitempty"` + Limit *int32 `protobuf:"varint,4,opt,name=limit,def=100" json:"limit,omitempty"` + KeysOnly *bool `protobuf:"varint,5,opt,name=keys_only,json=keysOnly" json:"keys_only,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListDocumentsParams) Reset() { *m = ListDocumentsParams{} } +func (m *ListDocumentsParams) String() string { return proto.CompactTextString(m) } +func (*ListDocumentsParams) ProtoMessage() {} +func (*ListDocumentsParams) Descriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{21} +} +func (m *ListDocumentsParams) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListDocumentsParams.Unmarshal(m, b) +} +func (m *ListDocumentsParams) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListDocumentsParams.Marshal(b, m, deterministic) +} +func (dst *ListDocumentsParams) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListDocumentsParams.Merge(dst, src) +} +func (m *ListDocumentsParams) XXX_Size() int { + return xxx_messageInfo_ListDocumentsParams.Size(m) +} +func (m *ListDocumentsParams) XXX_DiscardUnknown() { + xxx_messageInfo_ListDocumentsParams.DiscardUnknown(m) +} + +var xxx_messageInfo_ListDocumentsParams proto.InternalMessageInfo + +const Default_ListDocumentsParams_IncludeStartDoc bool = true +const Default_ListDocumentsParams_Limit int32 = 100 + +func (m *ListDocumentsParams) GetIndexSpec() *IndexSpec { + if m != nil { + return m.IndexSpec + } + return nil +} + +func (m *ListDocumentsParams) GetStartDocId() string { + if m != nil && m.StartDocId != nil { + return *m.StartDocId + } + return "" +} + +func (m *ListDocumentsParams) GetIncludeStartDoc() bool { + if m != nil && m.IncludeStartDoc != nil { + return *m.IncludeStartDoc + } + return Default_ListDocumentsParams_IncludeStartDoc +} + +func (m *ListDocumentsParams) GetLimit() int32 { + if m != nil && m.Limit != nil { + return *m.Limit + } + return Default_ListDocumentsParams_Limit +} + +func (m *ListDocumentsParams) GetKeysOnly() bool { + if m != nil && m.KeysOnly != nil { + return *m.KeysOnly + } + return false +} + +type ListDocumentsRequest struct { + Params *ListDocumentsParams `protobuf:"bytes,1,req,name=params" json:"params,omitempty"` + AppId []byte `protobuf:"bytes,2,opt,name=app_id,json=appId" json:"app_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListDocumentsRequest) Reset() { *m = ListDocumentsRequest{} } +func (m *ListDocumentsRequest) String() string { return proto.CompactTextString(m) } +func (*ListDocumentsRequest) ProtoMessage() {} +func (*ListDocumentsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{22} +} +func (m *ListDocumentsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListDocumentsRequest.Unmarshal(m, b) +} +func (m *ListDocumentsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListDocumentsRequest.Marshal(b, m, deterministic) +} +func (dst *ListDocumentsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListDocumentsRequest.Merge(dst, src) +} +func (m *ListDocumentsRequest) XXX_Size() int { + return xxx_messageInfo_ListDocumentsRequest.Size(m) +} +func (m *ListDocumentsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ListDocumentsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ListDocumentsRequest proto.InternalMessageInfo + +func (m *ListDocumentsRequest) GetParams() *ListDocumentsParams { + if m != nil { + return m.Params + } + return nil +} + +func (m *ListDocumentsRequest) GetAppId() []byte { + if m != nil { + return m.AppId + } + return nil +} + +type ListDocumentsResponse struct { + Status *RequestStatus `protobuf:"bytes,1,req,name=status" json:"status,omitempty"` + Document []*Document `protobuf:"bytes,2,rep,name=document" json:"document,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListDocumentsResponse) Reset() { *m = ListDocumentsResponse{} } +func (m *ListDocumentsResponse) String() string { return proto.CompactTextString(m) } +func (*ListDocumentsResponse) ProtoMessage() {} +func (*ListDocumentsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{23} +} +func (m *ListDocumentsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListDocumentsResponse.Unmarshal(m, b) +} +func (m *ListDocumentsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListDocumentsResponse.Marshal(b, m, deterministic) +} +func (dst *ListDocumentsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListDocumentsResponse.Merge(dst, src) +} +func (m *ListDocumentsResponse) XXX_Size() int { + return xxx_messageInfo_ListDocumentsResponse.Size(m) +} +func (m *ListDocumentsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ListDocumentsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ListDocumentsResponse proto.InternalMessageInfo + +func (m *ListDocumentsResponse) GetStatus() *RequestStatus { + if m != nil { + return m.Status + } + return nil +} + +func (m *ListDocumentsResponse) GetDocument() []*Document { + if m != nil { + return m.Document + } + return nil +} + +type ListIndexesParams struct { + FetchSchema *bool `protobuf:"varint,1,opt,name=fetch_schema,json=fetchSchema" json:"fetch_schema,omitempty"` + Limit *int32 `protobuf:"varint,2,opt,name=limit,def=20" json:"limit,omitempty"` + Namespace *string `protobuf:"bytes,3,opt,name=namespace" json:"namespace,omitempty"` + StartIndexName *string `protobuf:"bytes,4,opt,name=start_index_name,json=startIndexName" json:"start_index_name,omitempty"` + IncludeStartIndex *bool `protobuf:"varint,5,opt,name=include_start_index,json=includeStartIndex,def=1" json:"include_start_index,omitempty"` + IndexNamePrefix *string `protobuf:"bytes,6,opt,name=index_name_prefix,json=indexNamePrefix" json:"index_name_prefix,omitempty"` + Offset *int32 `protobuf:"varint,7,opt,name=offset" json:"offset,omitempty"` + Source *IndexSpec_Source `protobuf:"varint,8,opt,name=source,enum=search.IndexSpec_Source,def=0" json:"source,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListIndexesParams) Reset() { *m = ListIndexesParams{} } +func (m *ListIndexesParams) String() string { return proto.CompactTextString(m) } +func (*ListIndexesParams) ProtoMessage() {} +func (*ListIndexesParams) Descriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{24} +} +func (m *ListIndexesParams) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListIndexesParams.Unmarshal(m, b) +} +func (m *ListIndexesParams) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListIndexesParams.Marshal(b, m, deterministic) +} +func (dst *ListIndexesParams) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListIndexesParams.Merge(dst, src) +} +func (m *ListIndexesParams) XXX_Size() int { + return xxx_messageInfo_ListIndexesParams.Size(m) +} +func (m *ListIndexesParams) XXX_DiscardUnknown() { + xxx_messageInfo_ListIndexesParams.DiscardUnknown(m) +} + +var xxx_messageInfo_ListIndexesParams proto.InternalMessageInfo + +const Default_ListIndexesParams_Limit int32 = 20 +const Default_ListIndexesParams_IncludeStartIndex bool = true +const Default_ListIndexesParams_Source IndexSpec_Source = IndexSpec_SEARCH + +func (m *ListIndexesParams) GetFetchSchema() bool { + if m != nil && m.FetchSchema != nil { + return *m.FetchSchema + } + return false +} + +func (m *ListIndexesParams) GetLimit() int32 { + if m != nil && m.Limit != nil { + return *m.Limit + } + return Default_ListIndexesParams_Limit +} + +func (m *ListIndexesParams) GetNamespace() string { + if m != nil && m.Namespace != nil { + return *m.Namespace + } + return "" +} + +func (m *ListIndexesParams) GetStartIndexName() string { + if m != nil && m.StartIndexName != nil { + return *m.StartIndexName + } + return "" +} + +func (m *ListIndexesParams) GetIncludeStartIndex() bool { + if m != nil && m.IncludeStartIndex != nil { + return *m.IncludeStartIndex + } + return Default_ListIndexesParams_IncludeStartIndex +} + +func (m *ListIndexesParams) GetIndexNamePrefix() string { + if m != nil && m.IndexNamePrefix != nil { + return *m.IndexNamePrefix + } + return "" +} + +func (m *ListIndexesParams) GetOffset() int32 { + if m != nil && m.Offset != nil { + return *m.Offset + } + return 0 +} + +func (m *ListIndexesParams) GetSource() IndexSpec_Source { + if m != nil && m.Source != nil { + return *m.Source + } + return Default_ListIndexesParams_Source +} + +type ListIndexesRequest struct { + Params *ListIndexesParams `protobuf:"bytes,1,req,name=params" json:"params,omitempty"` + AppId []byte `protobuf:"bytes,3,opt,name=app_id,json=appId" json:"app_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListIndexesRequest) Reset() { *m = ListIndexesRequest{} } +func (m *ListIndexesRequest) String() string { return proto.CompactTextString(m) } +func (*ListIndexesRequest) ProtoMessage() {} +func (*ListIndexesRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{25} +} +func (m *ListIndexesRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListIndexesRequest.Unmarshal(m, b) +} +func (m *ListIndexesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListIndexesRequest.Marshal(b, m, deterministic) +} +func (dst *ListIndexesRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListIndexesRequest.Merge(dst, src) +} +func (m *ListIndexesRequest) XXX_Size() int { + return xxx_messageInfo_ListIndexesRequest.Size(m) +} +func (m *ListIndexesRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ListIndexesRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ListIndexesRequest proto.InternalMessageInfo + +func (m *ListIndexesRequest) GetParams() *ListIndexesParams { + if m != nil { + return m.Params + } + return nil +} + +func (m *ListIndexesRequest) GetAppId() []byte { + if m != nil { + return m.AppId + } + return nil +} + +type ListIndexesResponse struct { + Status *RequestStatus `protobuf:"bytes,1,req,name=status" json:"status,omitempty"` + IndexMetadata []*IndexMetadata `protobuf:"bytes,2,rep,name=index_metadata,json=indexMetadata" json:"index_metadata,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListIndexesResponse) Reset() { *m = ListIndexesResponse{} } +func (m *ListIndexesResponse) String() string { return proto.CompactTextString(m) } +func (*ListIndexesResponse) ProtoMessage() {} +func (*ListIndexesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{26} +} +func (m *ListIndexesResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListIndexesResponse.Unmarshal(m, b) +} +func (m *ListIndexesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListIndexesResponse.Marshal(b, m, deterministic) +} +func (dst *ListIndexesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListIndexesResponse.Merge(dst, src) +} +func (m *ListIndexesResponse) XXX_Size() int { + return xxx_messageInfo_ListIndexesResponse.Size(m) +} +func (m *ListIndexesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ListIndexesResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ListIndexesResponse proto.InternalMessageInfo + +func (m *ListIndexesResponse) GetStatus() *RequestStatus { + if m != nil { + return m.Status + } + return nil +} + +func (m *ListIndexesResponse) GetIndexMetadata() []*IndexMetadata { + if m != nil { + return m.IndexMetadata + } + return nil +} + +type DeleteSchemaParams struct { + Source *IndexSpec_Source `protobuf:"varint,1,opt,name=source,enum=search.IndexSpec_Source,def=0" json:"source,omitempty"` + IndexSpec []*IndexSpec `protobuf:"bytes,2,rep,name=index_spec,json=indexSpec" json:"index_spec,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DeleteSchemaParams) Reset() { *m = DeleteSchemaParams{} } +func (m *DeleteSchemaParams) String() string { return proto.CompactTextString(m) } +func (*DeleteSchemaParams) ProtoMessage() {} +func (*DeleteSchemaParams) Descriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{27} +} +func (m *DeleteSchemaParams) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteSchemaParams.Unmarshal(m, b) +} +func (m *DeleteSchemaParams) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteSchemaParams.Marshal(b, m, deterministic) +} +func (dst *DeleteSchemaParams) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteSchemaParams.Merge(dst, src) +} +func (m *DeleteSchemaParams) XXX_Size() int { + return xxx_messageInfo_DeleteSchemaParams.Size(m) +} +func (m *DeleteSchemaParams) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteSchemaParams.DiscardUnknown(m) +} + +var xxx_messageInfo_DeleteSchemaParams proto.InternalMessageInfo + +const Default_DeleteSchemaParams_Source IndexSpec_Source = IndexSpec_SEARCH + +func (m *DeleteSchemaParams) GetSource() IndexSpec_Source { + if m != nil && m.Source != nil { + return *m.Source + } + return Default_DeleteSchemaParams_Source +} + +func (m *DeleteSchemaParams) GetIndexSpec() []*IndexSpec { + if m != nil { + return m.IndexSpec + } + return nil +} + +type DeleteSchemaRequest struct { + Params *DeleteSchemaParams `protobuf:"bytes,1,req,name=params" json:"params,omitempty"` + AppId []byte `protobuf:"bytes,3,opt,name=app_id,json=appId" json:"app_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DeleteSchemaRequest) Reset() { *m = DeleteSchemaRequest{} } +func (m *DeleteSchemaRequest) String() string { return proto.CompactTextString(m) } +func (*DeleteSchemaRequest) ProtoMessage() {} +func (*DeleteSchemaRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{28} +} +func (m *DeleteSchemaRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteSchemaRequest.Unmarshal(m, b) +} +func (m *DeleteSchemaRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteSchemaRequest.Marshal(b, m, deterministic) +} +func (dst *DeleteSchemaRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteSchemaRequest.Merge(dst, src) +} +func (m *DeleteSchemaRequest) XXX_Size() int { + return xxx_messageInfo_DeleteSchemaRequest.Size(m) +} +func (m *DeleteSchemaRequest) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteSchemaRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_DeleteSchemaRequest proto.InternalMessageInfo + +func (m *DeleteSchemaRequest) GetParams() *DeleteSchemaParams { + if m != nil { + return m.Params + } + return nil +} + +func (m *DeleteSchemaRequest) GetAppId() []byte { + if m != nil { + return m.AppId + } + return nil +} + +type DeleteSchemaResponse struct { + Status []*RequestStatus `protobuf:"bytes,1,rep,name=status" json:"status,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DeleteSchemaResponse) Reset() { *m = DeleteSchemaResponse{} } +func (m *DeleteSchemaResponse) String() string { return proto.CompactTextString(m) } +func (*DeleteSchemaResponse) ProtoMessage() {} +func (*DeleteSchemaResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{29} +} +func (m *DeleteSchemaResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteSchemaResponse.Unmarshal(m, b) +} +func (m *DeleteSchemaResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteSchemaResponse.Marshal(b, m, deterministic) +} +func (dst *DeleteSchemaResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteSchemaResponse.Merge(dst, src) +} +func (m *DeleteSchemaResponse) XXX_Size() int { + return xxx_messageInfo_DeleteSchemaResponse.Size(m) +} +func (m *DeleteSchemaResponse) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteSchemaResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_DeleteSchemaResponse proto.InternalMessageInfo + +func (m *DeleteSchemaResponse) GetStatus() []*RequestStatus { + if m != nil { + return m.Status + } + return nil +} + +type SortSpec struct { + SortExpression *string `protobuf:"bytes,1,req,name=sort_expression,json=sortExpression" json:"sort_expression,omitempty"` + SortDescending *bool `protobuf:"varint,2,opt,name=sort_descending,json=sortDescending,def=1" json:"sort_descending,omitempty"` + DefaultValueText *string `protobuf:"bytes,4,opt,name=default_value_text,json=defaultValueText" json:"default_value_text,omitempty"` + DefaultValueNumeric *float64 `protobuf:"fixed64,5,opt,name=default_value_numeric,json=defaultValueNumeric" json:"default_value_numeric,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SortSpec) Reset() { *m = SortSpec{} } +func (m *SortSpec) String() string { return proto.CompactTextString(m) } +func (*SortSpec) ProtoMessage() {} +func (*SortSpec) Descriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{30} +} +func (m *SortSpec) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SortSpec.Unmarshal(m, b) +} +func (m *SortSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SortSpec.Marshal(b, m, deterministic) +} +func (dst *SortSpec) XXX_Merge(src proto.Message) { + xxx_messageInfo_SortSpec.Merge(dst, src) +} +func (m *SortSpec) XXX_Size() int { + return xxx_messageInfo_SortSpec.Size(m) +} +func (m *SortSpec) XXX_DiscardUnknown() { + xxx_messageInfo_SortSpec.DiscardUnknown(m) +} + +var xxx_messageInfo_SortSpec proto.InternalMessageInfo + +const Default_SortSpec_SortDescending bool = true + +func (m *SortSpec) GetSortExpression() string { + if m != nil && m.SortExpression != nil { + return *m.SortExpression + } + return "" +} + +func (m *SortSpec) GetSortDescending() bool { + if m != nil && m.SortDescending != nil { + return *m.SortDescending + } + return Default_SortSpec_SortDescending +} + +func (m *SortSpec) GetDefaultValueText() string { + if m != nil && m.DefaultValueText != nil { + return *m.DefaultValueText + } + return "" +} + +func (m *SortSpec) GetDefaultValueNumeric() float64 { + if m != nil && m.DefaultValueNumeric != nil { + return *m.DefaultValueNumeric + } + return 0 +} + +type ScorerSpec struct { + Scorer *ScorerSpec_Scorer `protobuf:"varint,1,opt,name=scorer,enum=search.ScorerSpec_Scorer,def=2" json:"scorer,omitempty"` + Limit *int32 `protobuf:"varint,2,opt,name=limit,def=1000" json:"limit,omitempty"` + MatchScorerParameters *string `protobuf:"bytes,9,opt,name=match_scorer_parameters,json=matchScorerParameters" json:"match_scorer_parameters,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ScorerSpec) Reset() { *m = ScorerSpec{} } +func (m *ScorerSpec) String() string { return proto.CompactTextString(m) } +func (*ScorerSpec) ProtoMessage() {} +func (*ScorerSpec) Descriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{31} +} +func (m *ScorerSpec) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ScorerSpec.Unmarshal(m, b) +} +func (m *ScorerSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ScorerSpec.Marshal(b, m, deterministic) +} +func (dst *ScorerSpec) XXX_Merge(src proto.Message) { + xxx_messageInfo_ScorerSpec.Merge(dst, src) +} +func (m *ScorerSpec) XXX_Size() int { + return xxx_messageInfo_ScorerSpec.Size(m) +} +func (m *ScorerSpec) XXX_DiscardUnknown() { + xxx_messageInfo_ScorerSpec.DiscardUnknown(m) +} + +var xxx_messageInfo_ScorerSpec proto.InternalMessageInfo + +const Default_ScorerSpec_Scorer ScorerSpec_Scorer = ScorerSpec_MATCH_SCORER +const Default_ScorerSpec_Limit int32 = 1000 + +func (m *ScorerSpec) GetScorer() ScorerSpec_Scorer { + if m != nil && m.Scorer != nil { + return *m.Scorer + } + return Default_ScorerSpec_Scorer +} + +func (m *ScorerSpec) GetLimit() int32 { + if m != nil && m.Limit != nil { + return *m.Limit + } + return Default_ScorerSpec_Limit +} + +func (m *ScorerSpec) GetMatchScorerParameters() string { + if m != nil && m.MatchScorerParameters != nil { + return *m.MatchScorerParameters + } + return "" +} + +type FieldSpec struct { + Name []string `protobuf:"bytes,1,rep,name=name" json:"name,omitempty"` + Expression []*FieldSpec_Expression `protobuf:"group,2,rep,name=Expression,json=expression" json:"expression,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FieldSpec) Reset() { *m = FieldSpec{} } +func (m *FieldSpec) String() string { return proto.CompactTextString(m) } +func (*FieldSpec) ProtoMessage() {} +func (*FieldSpec) Descriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{32} +} +func (m *FieldSpec) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FieldSpec.Unmarshal(m, b) +} +func (m *FieldSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FieldSpec.Marshal(b, m, deterministic) +} +func (dst *FieldSpec) XXX_Merge(src proto.Message) { + xxx_messageInfo_FieldSpec.Merge(dst, src) +} +func (m *FieldSpec) XXX_Size() int { + return xxx_messageInfo_FieldSpec.Size(m) +} +func (m *FieldSpec) XXX_DiscardUnknown() { + xxx_messageInfo_FieldSpec.DiscardUnknown(m) +} + +var xxx_messageInfo_FieldSpec proto.InternalMessageInfo + +func (m *FieldSpec) GetName() []string { + if m != nil { + return m.Name + } + return nil +} + +func (m *FieldSpec) GetExpression() []*FieldSpec_Expression { + if m != nil { + return m.Expression + } + return nil +} + +type FieldSpec_Expression struct { + Name *string `protobuf:"bytes,3,req,name=name" json:"name,omitempty"` + Expression *string `protobuf:"bytes,4,req,name=expression" json:"expression,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FieldSpec_Expression) Reset() { *m = FieldSpec_Expression{} } +func (m *FieldSpec_Expression) String() string { return proto.CompactTextString(m) } +func (*FieldSpec_Expression) ProtoMessage() {} +func (*FieldSpec_Expression) Descriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{32, 0} +} +func (m *FieldSpec_Expression) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FieldSpec_Expression.Unmarshal(m, b) +} +func (m *FieldSpec_Expression) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FieldSpec_Expression.Marshal(b, m, deterministic) +} +func (dst *FieldSpec_Expression) XXX_Merge(src proto.Message) { + xxx_messageInfo_FieldSpec_Expression.Merge(dst, src) +} +func (m *FieldSpec_Expression) XXX_Size() int { + return xxx_messageInfo_FieldSpec_Expression.Size(m) +} +func (m *FieldSpec_Expression) XXX_DiscardUnknown() { + xxx_messageInfo_FieldSpec_Expression.DiscardUnknown(m) +} + +var xxx_messageInfo_FieldSpec_Expression proto.InternalMessageInfo + +func (m *FieldSpec_Expression) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +func (m *FieldSpec_Expression) GetExpression() string { + if m != nil && m.Expression != nil { + return *m.Expression + } + return "" +} + +type FacetRange struct { + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + Start *string `protobuf:"bytes,2,opt,name=start" json:"start,omitempty"` + End *string `protobuf:"bytes,3,opt,name=end" json:"end,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FacetRange) Reset() { *m = FacetRange{} } +func (m *FacetRange) String() string { return proto.CompactTextString(m) } +func (*FacetRange) ProtoMessage() {} +func (*FacetRange) Descriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{33} +} +func (m *FacetRange) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FacetRange.Unmarshal(m, b) +} +func (m *FacetRange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FacetRange.Marshal(b, m, deterministic) +} +func (dst *FacetRange) XXX_Merge(src proto.Message) { + xxx_messageInfo_FacetRange.Merge(dst, src) +} +func (m *FacetRange) XXX_Size() int { + return xxx_messageInfo_FacetRange.Size(m) +} +func (m *FacetRange) XXX_DiscardUnknown() { + xxx_messageInfo_FacetRange.DiscardUnknown(m) +} + +var xxx_messageInfo_FacetRange proto.InternalMessageInfo + +func (m *FacetRange) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +func (m *FacetRange) GetStart() string { + if m != nil && m.Start != nil { + return *m.Start + } + return "" +} + +func (m *FacetRange) GetEnd() string { + if m != nil && m.End != nil { + return *m.End + } + return "" +} + +type FacetRequestParam struct { + ValueLimit *int32 `protobuf:"varint,1,opt,name=value_limit,json=valueLimit" json:"value_limit,omitempty"` + Range []*FacetRange `protobuf:"bytes,2,rep,name=range" json:"range,omitempty"` + ValueConstraint []string `protobuf:"bytes,3,rep,name=value_constraint,json=valueConstraint" json:"value_constraint,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FacetRequestParam) Reset() { *m = FacetRequestParam{} } +func (m *FacetRequestParam) String() string { return proto.CompactTextString(m) } +func (*FacetRequestParam) ProtoMessage() {} +func (*FacetRequestParam) Descriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{34} +} +func (m *FacetRequestParam) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FacetRequestParam.Unmarshal(m, b) +} +func (m *FacetRequestParam) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FacetRequestParam.Marshal(b, m, deterministic) +} +func (dst *FacetRequestParam) XXX_Merge(src proto.Message) { + xxx_messageInfo_FacetRequestParam.Merge(dst, src) +} +func (m *FacetRequestParam) XXX_Size() int { + return xxx_messageInfo_FacetRequestParam.Size(m) +} +func (m *FacetRequestParam) XXX_DiscardUnknown() { + xxx_messageInfo_FacetRequestParam.DiscardUnknown(m) +} + +var xxx_messageInfo_FacetRequestParam proto.InternalMessageInfo + +func (m *FacetRequestParam) GetValueLimit() int32 { + if m != nil && m.ValueLimit != nil { + return *m.ValueLimit + } + return 0 +} + +func (m *FacetRequestParam) GetRange() []*FacetRange { + if m != nil { + return m.Range + } + return nil +} + +func (m *FacetRequestParam) GetValueConstraint() []string { + if m != nil { + return m.ValueConstraint + } + return nil +} + +type FacetAutoDetectParam struct { + ValueLimit *int32 `protobuf:"varint,1,opt,name=value_limit,json=valueLimit,def=10" json:"value_limit,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FacetAutoDetectParam) Reset() { *m = FacetAutoDetectParam{} } +func (m *FacetAutoDetectParam) String() string { return proto.CompactTextString(m) } +func (*FacetAutoDetectParam) ProtoMessage() {} +func (*FacetAutoDetectParam) Descriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{35} +} +func (m *FacetAutoDetectParam) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FacetAutoDetectParam.Unmarshal(m, b) +} +func (m *FacetAutoDetectParam) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FacetAutoDetectParam.Marshal(b, m, deterministic) +} +func (dst *FacetAutoDetectParam) XXX_Merge(src proto.Message) { + xxx_messageInfo_FacetAutoDetectParam.Merge(dst, src) +} +func (m *FacetAutoDetectParam) XXX_Size() int { + return xxx_messageInfo_FacetAutoDetectParam.Size(m) +} +func (m *FacetAutoDetectParam) XXX_DiscardUnknown() { + xxx_messageInfo_FacetAutoDetectParam.DiscardUnknown(m) +} + +var xxx_messageInfo_FacetAutoDetectParam proto.InternalMessageInfo + +const Default_FacetAutoDetectParam_ValueLimit int32 = 10 + +func (m *FacetAutoDetectParam) GetValueLimit() int32 { + if m != nil && m.ValueLimit != nil { + return *m.ValueLimit + } + return Default_FacetAutoDetectParam_ValueLimit +} + +type FacetRequest struct { + Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"` + Params *FacetRequestParam `protobuf:"bytes,2,opt,name=params" json:"params,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FacetRequest) Reset() { *m = FacetRequest{} } +func (m *FacetRequest) String() string { return proto.CompactTextString(m) } +func (*FacetRequest) ProtoMessage() {} +func (*FacetRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{36} +} +func (m *FacetRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FacetRequest.Unmarshal(m, b) +} +func (m *FacetRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FacetRequest.Marshal(b, m, deterministic) +} +func (dst *FacetRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_FacetRequest.Merge(dst, src) +} +func (m *FacetRequest) XXX_Size() int { + return xxx_messageInfo_FacetRequest.Size(m) +} +func (m *FacetRequest) XXX_DiscardUnknown() { + xxx_messageInfo_FacetRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_FacetRequest proto.InternalMessageInfo + +func (m *FacetRequest) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +func (m *FacetRequest) GetParams() *FacetRequestParam { + if m != nil { + return m.Params + } + return nil +} + +type FacetRefinement struct { + Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"` + Value *string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` + Range *FacetRefinement_Range `protobuf:"bytes,3,opt,name=range" json:"range,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FacetRefinement) Reset() { *m = FacetRefinement{} } +func (m *FacetRefinement) String() string { return proto.CompactTextString(m) } +func (*FacetRefinement) ProtoMessage() {} +func (*FacetRefinement) Descriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{37} +} +func (m *FacetRefinement) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FacetRefinement.Unmarshal(m, b) +} +func (m *FacetRefinement) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FacetRefinement.Marshal(b, m, deterministic) +} +func (dst *FacetRefinement) XXX_Merge(src proto.Message) { + xxx_messageInfo_FacetRefinement.Merge(dst, src) +} +func (m *FacetRefinement) XXX_Size() int { + return xxx_messageInfo_FacetRefinement.Size(m) +} +func (m *FacetRefinement) XXX_DiscardUnknown() { + xxx_messageInfo_FacetRefinement.DiscardUnknown(m) +} + +var xxx_messageInfo_FacetRefinement proto.InternalMessageInfo + +func (m *FacetRefinement) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +func (m *FacetRefinement) GetValue() string { + if m != nil && m.Value != nil { + return *m.Value + } + return "" +} + +func (m *FacetRefinement) GetRange() *FacetRefinement_Range { + if m != nil { + return m.Range + } + return nil +} + +type FacetRefinement_Range struct { + Start *string `protobuf:"bytes,1,opt,name=start" json:"start,omitempty"` + End *string `protobuf:"bytes,2,opt,name=end" json:"end,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FacetRefinement_Range) Reset() { *m = FacetRefinement_Range{} } +func (m *FacetRefinement_Range) String() string { return proto.CompactTextString(m) } +func (*FacetRefinement_Range) ProtoMessage() {} +func (*FacetRefinement_Range) Descriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{37, 0} +} +func (m *FacetRefinement_Range) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FacetRefinement_Range.Unmarshal(m, b) +} +func (m *FacetRefinement_Range) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FacetRefinement_Range.Marshal(b, m, deterministic) +} +func (dst *FacetRefinement_Range) XXX_Merge(src proto.Message) { + xxx_messageInfo_FacetRefinement_Range.Merge(dst, src) +} +func (m *FacetRefinement_Range) XXX_Size() int { + return xxx_messageInfo_FacetRefinement_Range.Size(m) +} +func (m *FacetRefinement_Range) XXX_DiscardUnknown() { + xxx_messageInfo_FacetRefinement_Range.DiscardUnknown(m) +} + +var xxx_messageInfo_FacetRefinement_Range proto.InternalMessageInfo + +func (m *FacetRefinement_Range) GetStart() string { + if m != nil && m.Start != nil { + return *m.Start + } + return "" +} + +func (m *FacetRefinement_Range) GetEnd() string { + if m != nil && m.End != nil { + return *m.End + } + return "" +} + +type SearchParams struct { + IndexSpec *IndexSpec `protobuf:"bytes,1,req,name=index_spec,json=indexSpec" json:"index_spec,omitempty"` + Query *string `protobuf:"bytes,2,req,name=query" json:"query,omitempty"` + Cursor *string `protobuf:"bytes,4,opt,name=cursor" json:"cursor,omitempty"` + Offset *int32 `protobuf:"varint,11,opt,name=offset" json:"offset,omitempty"` + CursorType *SearchParams_CursorType `protobuf:"varint,5,opt,name=cursor_type,json=cursorType,enum=search.SearchParams_CursorType,def=0" json:"cursor_type,omitempty"` + Limit *int32 `protobuf:"varint,6,opt,name=limit,def=20" json:"limit,omitempty"` + MatchedCountAccuracy *int32 `protobuf:"varint,7,opt,name=matched_count_accuracy,json=matchedCountAccuracy" json:"matched_count_accuracy,omitempty"` + SortSpec []*SortSpec `protobuf:"bytes,8,rep,name=sort_spec,json=sortSpec" json:"sort_spec,omitempty"` + ScorerSpec *ScorerSpec `protobuf:"bytes,9,opt,name=scorer_spec,json=scorerSpec" json:"scorer_spec,omitempty"` + FieldSpec *FieldSpec `protobuf:"bytes,10,opt,name=field_spec,json=fieldSpec" json:"field_spec,omitempty"` + KeysOnly *bool `protobuf:"varint,12,opt,name=keys_only,json=keysOnly" json:"keys_only,omitempty"` + ParsingMode *SearchParams_ParsingMode `protobuf:"varint,13,opt,name=parsing_mode,json=parsingMode,enum=search.SearchParams_ParsingMode,def=0" json:"parsing_mode,omitempty"` + AutoDiscoverFacetCount *int32 `protobuf:"varint,15,opt,name=auto_discover_facet_count,json=autoDiscoverFacetCount,def=0" json:"auto_discover_facet_count,omitempty"` + IncludeFacet []*FacetRequest `protobuf:"bytes,16,rep,name=include_facet,json=includeFacet" json:"include_facet,omitempty"` + FacetRefinement []*FacetRefinement `protobuf:"bytes,17,rep,name=facet_refinement,json=facetRefinement" json:"facet_refinement,omitempty"` + FacetAutoDetectParam *FacetAutoDetectParam `protobuf:"bytes,18,opt,name=facet_auto_detect_param,json=facetAutoDetectParam" json:"facet_auto_detect_param,omitempty"` + FacetDepth *int32 `protobuf:"varint,19,opt,name=facet_depth,json=facetDepth,def=1000" json:"facet_depth,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SearchParams) Reset() { *m = SearchParams{} } +func (m *SearchParams) String() string { return proto.CompactTextString(m) } +func (*SearchParams) ProtoMessage() {} +func (*SearchParams) Descriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{38} +} +func (m *SearchParams) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SearchParams.Unmarshal(m, b) +} +func (m *SearchParams) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SearchParams.Marshal(b, m, deterministic) +} +func (dst *SearchParams) XXX_Merge(src proto.Message) { + xxx_messageInfo_SearchParams.Merge(dst, src) +} +func (m *SearchParams) XXX_Size() int { + return xxx_messageInfo_SearchParams.Size(m) +} +func (m *SearchParams) XXX_DiscardUnknown() { + xxx_messageInfo_SearchParams.DiscardUnknown(m) +} + +var xxx_messageInfo_SearchParams proto.InternalMessageInfo + +const Default_SearchParams_CursorType SearchParams_CursorType = SearchParams_NONE +const Default_SearchParams_Limit int32 = 20 +const Default_SearchParams_ParsingMode SearchParams_ParsingMode = SearchParams_STRICT +const Default_SearchParams_AutoDiscoverFacetCount int32 = 0 +const Default_SearchParams_FacetDepth int32 = 1000 + +func (m *SearchParams) GetIndexSpec() *IndexSpec { + if m != nil { + return m.IndexSpec + } + return nil +} + +func (m *SearchParams) GetQuery() string { + if m != nil && m.Query != nil { + return *m.Query + } + return "" +} + +func (m *SearchParams) GetCursor() string { + if m != nil && m.Cursor != nil { + return *m.Cursor + } + return "" +} + +func (m *SearchParams) GetOffset() int32 { + if m != nil && m.Offset != nil { + return *m.Offset + } + return 0 +} + +func (m *SearchParams) GetCursorType() SearchParams_CursorType { + if m != nil && m.CursorType != nil { + return *m.CursorType + } + return Default_SearchParams_CursorType +} + +func (m *SearchParams) GetLimit() int32 { + if m != nil && m.Limit != nil { + return *m.Limit + } + return Default_SearchParams_Limit +} + +func (m *SearchParams) GetMatchedCountAccuracy() int32 { + if m != nil && m.MatchedCountAccuracy != nil { + return *m.MatchedCountAccuracy + } + return 0 +} + +func (m *SearchParams) GetSortSpec() []*SortSpec { + if m != nil { + return m.SortSpec + } + return nil +} + +func (m *SearchParams) GetScorerSpec() *ScorerSpec { + if m != nil { + return m.ScorerSpec + } + return nil +} + +func (m *SearchParams) GetFieldSpec() *FieldSpec { + if m != nil { + return m.FieldSpec + } + return nil +} + +func (m *SearchParams) GetKeysOnly() bool { + if m != nil && m.KeysOnly != nil { + return *m.KeysOnly + } + return false +} + +func (m *SearchParams) GetParsingMode() SearchParams_ParsingMode { + if m != nil && m.ParsingMode != nil { + return *m.ParsingMode + } + return Default_SearchParams_ParsingMode +} + +func (m *SearchParams) GetAutoDiscoverFacetCount() int32 { + if m != nil && m.AutoDiscoverFacetCount != nil { + return *m.AutoDiscoverFacetCount + } + return Default_SearchParams_AutoDiscoverFacetCount +} + +func (m *SearchParams) GetIncludeFacet() []*FacetRequest { + if m != nil { + return m.IncludeFacet + } + return nil +} + +func (m *SearchParams) GetFacetRefinement() []*FacetRefinement { + if m != nil { + return m.FacetRefinement + } + return nil +} + +func (m *SearchParams) GetFacetAutoDetectParam() *FacetAutoDetectParam { + if m != nil { + return m.FacetAutoDetectParam + } + return nil +} + +func (m *SearchParams) GetFacetDepth() int32 { + if m != nil && m.FacetDepth != nil { + return *m.FacetDepth + } + return Default_SearchParams_FacetDepth +} + +type SearchRequest struct { + Params *SearchParams `protobuf:"bytes,1,req,name=params" json:"params,omitempty"` + AppId []byte `protobuf:"bytes,3,opt,name=app_id,json=appId" json:"app_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SearchRequest) Reset() { *m = SearchRequest{} } +func (m *SearchRequest) String() string { return proto.CompactTextString(m) } +func (*SearchRequest) ProtoMessage() {} +func (*SearchRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{39} +} +func (m *SearchRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SearchRequest.Unmarshal(m, b) +} +func (m *SearchRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SearchRequest.Marshal(b, m, deterministic) +} +func (dst *SearchRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_SearchRequest.Merge(dst, src) +} +func (m *SearchRequest) XXX_Size() int { + return xxx_messageInfo_SearchRequest.Size(m) +} +func (m *SearchRequest) XXX_DiscardUnknown() { + xxx_messageInfo_SearchRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_SearchRequest proto.InternalMessageInfo + +func (m *SearchRequest) GetParams() *SearchParams { + if m != nil { + return m.Params + } + return nil +} + +func (m *SearchRequest) GetAppId() []byte { + if m != nil { + return m.AppId + } + return nil +} + +type FacetResultValue struct { + Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"` + Count *int32 `protobuf:"varint,2,req,name=count" json:"count,omitempty"` + Refinement *FacetRefinement `protobuf:"bytes,3,req,name=refinement" json:"refinement,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FacetResultValue) Reset() { *m = FacetResultValue{} } +func (m *FacetResultValue) String() string { return proto.CompactTextString(m) } +func (*FacetResultValue) ProtoMessage() {} +func (*FacetResultValue) Descriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{40} +} +func (m *FacetResultValue) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FacetResultValue.Unmarshal(m, b) +} +func (m *FacetResultValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FacetResultValue.Marshal(b, m, deterministic) +} +func (dst *FacetResultValue) XXX_Merge(src proto.Message) { + xxx_messageInfo_FacetResultValue.Merge(dst, src) +} +func (m *FacetResultValue) XXX_Size() int { + return xxx_messageInfo_FacetResultValue.Size(m) +} +func (m *FacetResultValue) XXX_DiscardUnknown() { + xxx_messageInfo_FacetResultValue.DiscardUnknown(m) +} + +var xxx_messageInfo_FacetResultValue proto.InternalMessageInfo + +func (m *FacetResultValue) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +func (m *FacetResultValue) GetCount() int32 { + if m != nil && m.Count != nil { + return *m.Count + } + return 0 +} + +func (m *FacetResultValue) GetRefinement() *FacetRefinement { + if m != nil { + return m.Refinement + } + return nil +} + +type FacetResult struct { + Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"` + Value []*FacetResultValue `protobuf:"bytes,2,rep,name=value" json:"value,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FacetResult) Reset() { *m = FacetResult{} } +func (m *FacetResult) String() string { return proto.CompactTextString(m) } +func (*FacetResult) ProtoMessage() {} +func (*FacetResult) Descriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{41} +} +func (m *FacetResult) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FacetResult.Unmarshal(m, b) +} +func (m *FacetResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FacetResult.Marshal(b, m, deterministic) +} +func (dst *FacetResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_FacetResult.Merge(dst, src) +} +func (m *FacetResult) XXX_Size() int { + return xxx_messageInfo_FacetResult.Size(m) +} +func (m *FacetResult) XXX_DiscardUnknown() { + xxx_messageInfo_FacetResult.DiscardUnknown(m) +} + +var xxx_messageInfo_FacetResult proto.InternalMessageInfo + +func (m *FacetResult) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +func (m *FacetResult) GetValue() []*FacetResultValue { + if m != nil { + return m.Value + } + return nil +} + +type SearchResult struct { + Document *Document `protobuf:"bytes,1,req,name=document" json:"document,omitempty"` + Expression []*Field `protobuf:"bytes,4,rep,name=expression" json:"expression,omitempty"` + Score []float64 `protobuf:"fixed64,2,rep,name=score" json:"score,omitempty"` + Cursor *string `protobuf:"bytes,3,opt,name=cursor" json:"cursor,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SearchResult) Reset() { *m = SearchResult{} } +func (m *SearchResult) String() string { return proto.CompactTextString(m) } +func (*SearchResult) ProtoMessage() {} +func (*SearchResult) Descriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{42} +} +func (m *SearchResult) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SearchResult.Unmarshal(m, b) +} +func (m *SearchResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SearchResult.Marshal(b, m, deterministic) +} +func (dst *SearchResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_SearchResult.Merge(dst, src) +} +func (m *SearchResult) XXX_Size() int { + return xxx_messageInfo_SearchResult.Size(m) +} +func (m *SearchResult) XXX_DiscardUnknown() { + xxx_messageInfo_SearchResult.DiscardUnknown(m) +} + +var xxx_messageInfo_SearchResult proto.InternalMessageInfo + +func (m *SearchResult) GetDocument() *Document { + if m != nil { + return m.Document + } + return nil +} + +func (m *SearchResult) GetExpression() []*Field { + if m != nil { + return m.Expression + } + return nil +} + +func (m *SearchResult) GetScore() []float64 { + if m != nil { + return m.Score + } + return nil +} + +func (m *SearchResult) GetCursor() string { + if m != nil && m.Cursor != nil { + return *m.Cursor + } + return "" +} + +type SearchResponse struct { + Result []*SearchResult `protobuf:"bytes,1,rep,name=result" json:"result,omitempty"` + MatchedCount *int64 `protobuf:"varint,2,req,name=matched_count,json=matchedCount" json:"matched_count,omitempty"` + Status *RequestStatus `protobuf:"bytes,3,req,name=status" json:"status,omitempty"` + Cursor *string `protobuf:"bytes,4,opt,name=cursor" json:"cursor,omitempty"` + FacetResult []*FacetResult `protobuf:"bytes,5,rep,name=facet_result,json=facetResult" json:"facet_result,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SearchResponse) Reset() { *m = SearchResponse{} } +func (m *SearchResponse) String() string { return proto.CompactTextString(m) } +func (*SearchResponse) ProtoMessage() {} +func (*SearchResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_search_78ae5a87590ff3d8, []int{43} +} + +var extRange_SearchResponse = []proto.ExtensionRange{ + {Start: 1000, End: 9999}, +} + +func (*SearchResponse) ExtensionRangeArray() []proto.ExtensionRange { + return extRange_SearchResponse +} +func (m *SearchResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SearchResponse.Unmarshal(m, b) +} +func (m *SearchResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SearchResponse.Marshal(b, m, deterministic) +} +func (dst *SearchResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_SearchResponse.Merge(dst, src) +} +func (m *SearchResponse) XXX_Size() int { + return xxx_messageInfo_SearchResponse.Size(m) +} +func (m *SearchResponse) XXX_DiscardUnknown() { + xxx_messageInfo_SearchResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_SearchResponse proto.InternalMessageInfo + +func (m *SearchResponse) GetResult() []*SearchResult { + if m != nil { + return m.Result + } + return nil +} + +func (m *SearchResponse) GetMatchedCount() int64 { + if m != nil && m.MatchedCount != nil { + return *m.MatchedCount + } + return 0 +} + +func (m *SearchResponse) GetStatus() *RequestStatus { + if m != nil { + return m.Status + } + return nil +} + +func (m *SearchResponse) GetCursor() string { + if m != nil && m.Cursor != nil { + return *m.Cursor + } + return "" +} + +func (m *SearchResponse) GetFacetResult() []*FacetResult { + if m != nil { + return m.FacetResult + } + return nil +} + +func init() { + proto.RegisterType((*Scope)(nil), "search.Scope") + proto.RegisterType((*Entry)(nil), "search.Entry") + proto.RegisterType((*AccessControlList)(nil), "search.AccessControlList") + proto.RegisterType((*FieldValue)(nil), "search.FieldValue") + proto.RegisterType((*FieldValue_Geo)(nil), "search.FieldValue.Geo") + proto.RegisterType((*Field)(nil), "search.Field") + proto.RegisterType((*FieldTypes)(nil), "search.FieldTypes") + proto.RegisterType((*IndexShardSettings)(nil), "search.IndexShardSettings") + proto.RegisterType((*FacetValue)(nil), "search.FacetValue") + proto.RegisterType((*Facet)(nil), "search.Facet") + proto.RegisterType((*DocumentMetadata)(nil), "search.DocumentMetadata") + proto.RegisterType((*Document)(nil), "search.Document") + proto.RegisterType((*SearchServiceError)(nil), "search.SearchServiceError") + proto.RegisterType((*RequestStatus)(nil), "search.RequestStatus") + proto.RegisterType((*IndexSpec)(nil), "search.IndexSpec") + proto.RegisterType((*IndexMetadata)(nil), "search.IndexMetadata") + proto.RegisterType((*IndexMetadata_Storage)(nil), "search.IndexMetadata.Storage") + proto.RegisterType((*IndexDocumentParams)(nil), "search.IndexDocumentParams") + proto.RegisterType((*IndexDocumentRequest)(nil), "search.IndexDocumentRequest") + proto.RegisterType((*IndexDocumentResponse)(nil), "search.IndexDocumentResponse") + proto.RegisterType((*DeleteDocumentParams)(nil), "search.DeleteDocumentParams") + proto.RegisterType((*DeleteDocumentRequest)(nil), "search.DeleteDocumentRequest") + proto.RegisterType((*DeleteDocumentResponse)(nil), "search.DeleteDocumentResponse") + proto.RegisterType((*ListDocumentsParams)(nil), "search.ListDocumentsParams") + proto.RegisterType((*ListDocumentsRequest)(nil), "search.ListDocumentsRequest") + proto.RegisterType((*ListDocumentsResponse)(nil), "search.ListDocumentsResponse") + proto.RegisterType((*ListIndexesParams)(nil), "search.ListIndexesParams") + proto.RegisterType((*ListIndexesRequest)(nil), "search.ListIndexesRequest") + proto.RegisterType((*ListIndexesResponse)(nil), "search.ListIndexesResponse") + proto.RegisterType((*DeleteSchemaParams)(nil), "search.DeleteSchemaParams") + proto.RegisterType((*DeleteSchemaRequest)(nil), "search.DeleteSchemaRequest") + proto.RegisterType((*DeleteSchemaResponse)(nil), "search.DeleteSchemaResponse") + proto.RegisterType((*SortSpec)(nil), "search.SortSpec") + proto.RegisterType((*ScorerSpec)(nil), "search.ScorerSpec") + proto.RegisterType((*FieldSpec)(nil), "search.FieldSpec") + proto.RegisterType((*FieldSpec_Expression)(nil), "search.FieldSpec.Expression") + proto.RegisterType((*FacetRange)(nil), "search.FacetRange") + proto.RegisterType((*FacetRequestParam)(nil), "search.FacetRequestParam") + proto.RegisterType((*FacetAutoDetectParam)(nil), "search.FacetAutoDetectParam") + proto.RegisterType((*FacetRequest)(nil), "search.FacetRequest") + proto.RegisterType((*FacetRefinement)(nil), "search.FacetRefinement") + proto.RegisterType((*FacetRefinement_Range)(nil), "search.FacetRefinement.Range") + proto.RegisterType((*SearchParams)(nil), "search.SearchParams") + proto.RegisterType((*SearchRequest)(nil), "search.SearchRequest") + proto.RegisterType((*FacetResultValue)(nil), "search.FacetResultValue") + proto.RegisterType((*FacetResult)(nil), "search.FacetResult") + proto.RegisterType((*SearchResult)(nil), "search.SearchResult") + proto.RegisterType((*SearchResponse)(nil), "search.SearchResponse") +} + +func init() { + proto.RegisterFile("google.golang.org/appengine/internal/search/search.proto", fileDescriptor_search_78ae5a87590ff3d8) +} + +var fileDescriptor_search_78ae5a87590ff3d8 = []byte{ + // 2994 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x59, 0x4f, 0x73, 0x1b, 0xc7, + 0x95, 0xe7, 0x0c, 0x08, 0x10, 0x78, 0x20, 0xc8, 0x61, 0xf3, 0x8f, 0x20, 0x59, 0x6b, 0xd3, 0x23, + 0xcb, 0xa6, 0xbd, 0x12, 0x45, 0x51, 0x2a, 0x5b, 0xcb, 0x75, 0xed, 0x1a, 0x02, 0x46, 0x14, 0x56, + 0x20, 0x40, 0x37, 0x06, 0xb2, 0xb5, 0x55, 0xeb, 0xd9, 0xc9, 0x4c, 0x13, 0x9a, 0x0a, 0x30, 0x03, + 0xcf, 0x0c, 0x14, 0xf1, 0x96, 0xf2, 0x2d, 0x97, 0x54, 0x52, 0x39, 0xe5, 0x94, 0x72, 0xe5, 0x92, + 0xca, 0x35, 0xf7, 0x9c, 0x92, 0x5b, 0x6e, 0x39, 0xe5, 0x0b, 0xa4, 0x52, 0x49, 0x55, 0x3e, 0x43, + 0xaa, 0x5f, 0xf7, 0x0c, 0x66, 0x40, 0xc8, 0xb4, 0x74, 0x22, 0xe6, 0xf5, 0xeb, 0xd7, 0xaf, 0xdf, + 0xef, 0xbd, 0x5f, 0xbf, 0x6e, 0xc2, 0x83, 0x61, 0x10, 0x0c, 0x47, 0x6c, 0x7f, 0x18, 0x8c, 0x6c, + 0x7f, 0xb8, 0x1f, 0x84, 0xc3, 0x3b, 0xf6, 0x64, 0xc2, 0xfc, 0xa1, 0xe7, 0xb3, 0x3b, 0x9e, 0x1f, + 0xb3, 0xd0, 0xb7, 0x47, 0x77, 0x22, 0x66, 0x87, 0xce, 0x73, 0xf9, 0x67, 0x7f, 0x12, 0x06, 0x71, + 0x40, 0x4a, 0xe2, 0x4b, 0xff, 0x87, 0x02, 0xc5, 0xbe, 0x13, 0x4c, 0x18, 0x79, 0x1f, 0x96, 0xe3, + 0xf3, 0x09, 0xab, 0x2b, 0xbb, 0xca, 0xde, 0xda, 0x21, 0xd9, 0x97, 0xea, 0x38, 0xb8, 0x6f, 0x9e, + 0x4f, 0x18, 0xc5, 0x71, 0xb2, 0x05, 0xc5, 0x17, 0xf6, 0x68, 0xca, 0xea, 0xea, 0xae, 0xb2, 0x57, + 0xa1, 0xe2, 0x43, 0xff, 0xb5, 0x02, 0xcb, 0x5c, 0x89, 0xd4, 0x61, 0x6b, 0xd0, 0x37, 0xa8, 0xf5, + 0xf0, 0x99, 0xd5, 0x6c, 0x74, 0x7b, 0xdd, 0x76, 0xb3, 0xd1, 0xb1, 0xda, 0x2d, 0x4d, 0x21, 0x1b, + 0x50, 0x4b, 0x46, 0x8c, 0x93, 0x46, 0xbb, 0xa3, 0xa9, 0xe4, 0x2a, 0x6c, 0x1f, 0xd3, 0xde, 0xe0, + 0xf4, 0x82, 0x76, 0x81, 0x10, 0x58, 0x4b, 0x87, 0x84, 0xfa, 0x32, 0xd9, 0x84, 0xf5, 0x54, 0xd6, + 0xea, 0x9d, 0x34, 0xda, 0x5d, 0xad, 0x48, 0x6a, 0x50, 0x69, 0x74, 0x3a, 0x16, 0x37, 0xdd, 0xd7, + 0x4a, 0xe4, 0x2d, 0xb8, 0xc2, 0x3f, 0x1b, 0x03, 0xf3, 0xb1, 0xd1, 0x35, 0xdb, 0xcd, 0x86, 0x69, + 0xb4, 0xe4, 0xe0, 0x8a, 0xfe, 0x7b, 0x05, 0x8a, 0x86, 0x1f, 0x87, 0xe7, 0xe4, 0x06, 0x14, 0x23, + 0xbe, 0x33, 0xdc, 0x6e, 0xf5, 0xb0, 0x96, 0xdb, 0x2e, 0x15, 0x63, 0xe4, 0x01, 0xc0, 0x84, 0x85, + 0x63, 0x2f, 0x8a, 0xbc, 0xc0, 0xc7, 0xfd, 0xae, 0x1d, 0xd6, 0x13, 0x4d, 0xb4, 0xb3, 0x7f, 0x9a, + 0x8e, 0xd3, 0x8c, 0x2e, 0x79, 0x17, 0x56, 0x5d, 0x2f, 0x9a, 0x8c, 0xec, 0x73, 0xcb, 0xb7, 0xc7, + 0xac, 0x5e, 0xc0, 0x58, 0x55, 0xa5, 0xac, 0x6b, 0x8f, 0x99, 0x7e, 0x0f, 0x60, 0x36, 0x99, 0x94, + 0x61, 0x99, 0x1a, 0x0d, 0x1e, 0xa6, 0x0a, 0x14, 0xbf, 0xa0, 0x6d, 0xd3, 0xd0, 0x54, 0xa2, 0xc1, + 0xea, 0xa3, 0x41, 0xa7, 0x63, 0x35, 0x7b, 0x5d, 0x93, 0xf6, 0x3a, 0x5a, 0x41, 0xa7, 0xb0, 0xd1, + 0x70, 0x1c, 0x16, 0x45, 0xcd, 0xc0, 0x8f, 0xc3, 0x60, 0xd4, 0xf1, 0xa2, 0x98, 0x23, 0x12, 0xfc, + 0xc8, 0x67, 0x21, 0xee, 0xa5, 0x42, 0xc5, 0x07, 0xf9, 0x00, 0x56, 0x98, 0x1f, 0x87, 0x1e, 0x8b, + 0xea, 0xea, 0x6e, 0x21, 0xbb, 0x47, 0xf4, 0x9c, 0x26, 0xa3, 0xfa, 0x6f, 0x55, 0x80, 0x47, 0x1e, + 0x1b, 0xb9, 0x4f, 0x39, 0x92, 0xe4, 0x41, 0x2e, 0x0f, 0xde, 0x4e, 0x26, 0xcd, 0x34, 0xf6, 0xf9, + 0xda, 0xcc, 0x8f, 0x39, 0xdc, 0x47, 0xcb, 0xa6, 0xf1, 0xa5, 0x29, 0x33, 0xe3, 0x6d, 0x28, 0xf3, + 0x34, 0x9c, 0xda, 0x43, 0x99, 0x1c, 0x47, 0x2a, 0xf3, 0x69, 0x2a, 0xe3, 0x41, 0x89, 0xe2, 0xd0, + 0xf3, 0x87, 0x96, 0x48, 0x20, 0x19, 0x14, 0x21, 0x13, 0x8b, 0xef, 0x41, 0x61, 0xc8, 0x82, 0xfa, + 0xf2, 0xae, 0xb2, 0x07, 0x87, 0x3b, 0x0b, 0xd6, 0x3e, 0x66, 0x01, 0xe5, 0x2a, 0xd7, 0x3e, 0x84, + 0xc2, 0x31, 0x0b, 0x88, 0x06, 0x85, 0x91, 0x1d, 0xd7, 0x8b, 0xbb, 0xea, 0x9e, 0x42, 0xf9, 0x4f, + 0x94, 0xf8, 0xc3, 0x7a, 0x49, 0x4a, 0xfc, 0xa1, 0xfe, 0x3f, 0x50, 0xcd, 0xb8, 0xcc, 0x43, 0xcd, + 0x9d, 0xd6, 0x96, 0xf8, 0xaf, 0xc7, 0xe6, 0x49, 0x47, 0x53, 0xf8, 0xaf, 0x86, 0xd9, 0x3b, 0xd1, + 0x54, 0xfe, 0xab, 0xd5, 0x30, 0x0d, 0xad, 0x40, 0x00, 0x4a, 0xdd, 0xc1, 0xc9, 0x43, 0x83, 0x6a, + 0xcb, 0x64, 0x05, 0x0a, 0xc7, 0x46, 0x4f, 0x2b, 0xea, 0x06, 0x14, 0xd1, 0x1b, 0x42, 0x60, 0x19, + 0x91, 0x55, 0x76, 0xd5, 0xbd, 0x0a, 0xc5, 0xdf, 0x64, 0x6f, 0x56, 0x1a, 0xea, 0x5e, 0x75, 0x56, + 0x43, 0x33, 0xff, 0x93, 0x72, 0x31, 0x65, 0xc8, 0xb9, 0x43, 0xd1, 0x42, 0x5b, 0x87, 0x12, 0x06, + 0x8e, 0xdd, 0xa5, 0x30, 0x08, 0x00, 0xf4, 0x3f, 0x2a, 0x40, 0xda, 0xbe, 0xcb, 0x5e, 0xf6, 0x9f, + 0xdb, 0xa1, 0xdb, 0x67, 0x71, 0xec, 0xf9, 0xc3, 0x88, 0xbc, 0x0f, 0xeb, 0x93, 0x90, 0xbd, 0xb0, + 0xfc, 0xe9, 0xd8, 0x8a, 0xf8, 0x48, 0x54, 0x57, 0x76, 0x0b, 0x7b, 0x45, 0x5a, 0xe3, 0xe2, 0xee, + 0x74, 0x8c, 0xea, 0x11, 0xd9, 0x05, 0xc8, 0xa8, 0xf0, 0x3d, 0x14, 0x8f, 0x94, 0xbb, 0xb4, 0xe2, + 0xa7, 0x1a, 0xff, 0x05, 0xd7, 0xe7, 0x2c, 0x59, 0xc2, 0x2f, 0xeb, 0xcc, 0x1e, 0x45, 0x1c, 0x51, + 0x6e, 0xb6, 0x9e, 0x33, 0xdb, 0x47, 0x85, 0x47, 0x7c, 0x9c, 0xdc, 0x84, 0xda, 0x28, 0x70, 0xec, + 0x91, 0x15, 0xb2, 0xc9, 0xc8, 0x73, 0x6c, 0x04, 0xba, 0x72, 0xb4, 0x44, 0x57, 0x51, 0x4c, 0x85, + 0x54, 0xff, 0xa9, 0x02, 0xf0, 0xc8, 0x76, 0x58, 0xfc, 0xdd, 0x19, 0x99, 0x6a, 0xe4, 0x33, 0x92, + 0x03, 0x29, 0x33, 0xf2, 0xf2, 0x8c, 0xd3, 0x6f, 0x5c, 0x48, 0x0e, 0x99, 0x08, 0x19, 0xf8, 0x11, + 0x75, 0xbe, 0xda, 0xeb, 0xa1, 0x9e, 0xfa, 0x97, 0xa0, 0xfe, 0x15, 0x68, 0xad, 0xc0, 0x99, 0x8e, + 0x99, 0x1f, 0x9f, 0xb0, 0xd8, 0x76, 0xed, 0xd8, 0x26, 0x75, 0x58, 0x79, 0xc1, 0x42, 0x24, 0x18, + 0xbe, 0xbf, 0x02, 0x4d, 0x3e, 0xc9, 0x01, 0x6c, 0x39, 0xc1, 0x78, 0xec, 0xc5, 0x31, 0x73, 0xad, + 0x28, 0xb6, 0x12, 0x35, 0x15, 0xd5, 0x48, 0x3a, 0xd6, 0x8f, 0x9f, 0x8a, 0x11, 0xfd, 0x9f, 0x2a, + 0x94, 0x93, 0x05, 0xc8, 0x1a, 0xa8, 0x9e, 0x2b, 0x29, 0x41, 0xf5, 0xdc, 0x4b, 0xab, 0xf3, 0x06, + 0x14, 0xcf, 0x78, 0x72, 0x21, 0x88, 0x19, 0xb6, 0xc0, 0x8c, 0xa3, 0x62, 0x8c, 0x5c, 0x85, 0x72, + 0x10, 0xba, 0x2c, 0xb4, 0x3c, 0x17, 0xb1, 0x2b, 0xd2, 0x15, 0xfc, 0x6e, 0xbb, 0xe4, 0x14, 0xd6, + 0x93, 0x21, 0x2b, 0x0a, 0xa6, 0xa1, 0xc3, 0xea, 0xa5, 0x3c, 0x60, 0x89, 0x6b, 0xfb, 0x3d, 0x31, + 0xa5, 0x8f, 0x5a, 0x47, 0xe5, 0xfe, 0xe0, 0xf4, 0xb4, 0xd3, 0x36, 0x5a, 0xb4, 0x16, 0x64, 0x07, + 0xc8, 0x03, 0x58, 0x89, 0xe2, 0x20, 0xe4, 0x0e, 0x17, 0xf3, 0xdc, 0x9b, 0x5a, 0xea, 0x8b, 0xf1, + 0xa3, 0xe5, 0x56, 0xbb, 0xff, 0x84, 0x26, 0xea, 0xb8, 0x17, 0x1e, 0xfd, 0x7a, 0x79, 0x6e, 0x2f, + 0x5c, 0x48, 0xc5, 0x98, 0x7e, 0x0b, 0x6a, 0x39, 0x47, 0xf8, 0x49, 0xd2, 0x32, 0x1e, 0x35, 0x06, + 0x1d, 0xd3, 0x68, 0x69, 0x4b, 0x64, 0x15, 0x52, 0xcf, 0x34, 0x45, 0xdf, 0x84, 0x15, 0xb9, 0x18, + 0x52, 0x44, 0xbb, 0xff, 0x44, 0x5b, 0xd2, 0x7f, 0xa3, 0x00, 0x11, 0xf9, 0xdd, 0x67, 0xe1, 0x0b, + 0xcf, 0x61, 0x46, 0x18, 0x06, 0xa1, 0xfe, 0x73, 0x05, 0x2a, 0xf8, 0xab, 0x19, 0xb8, 0x8c, 0x94, + 0x40, 0xed, 0x3d, 0xd1, 0x96, 0xf8, 0xe9, 0xd5, 0xee, 0x3e, 0x6d, 0x74, 0xda, 0x2d, 0x8b, 0x1a, + 0x9f, 0x0f, 0x8c, 0xbe, 0xa9, 0x29, 0x5c, 0x68, 0xd2, 0x46, 0xb7, 0xdf, 0x36, 0xba, 0xa6, 0x65, + 0x50, 0xda, 0xa3, 0x9a, 0xca, 0xcf, 0xbe, 0x76, 0xd7, 0x34, 0x68, 0xb7, 0xd1, 0x91, 0xb2, 0x02, + 0xd9, 0x86, 0x8d, 0x53, 0x83, 0x9e, 0xb4, 0xfb, 0xfd, 0x76, 0xaf, 0x6b, 0xb5, 0x8c, 0x2e, 0x77, + 0x6b, 0x99, 0x54, 0x61, 0xc5, 0x6c, 0x9f, 0x18, 0xbd, 0x81, 0xa9, 0x15, 0xc9, 0x35, 0xd8, 0x69, + 0xf6, 0xba, 0xcd, 0x01, 0xa5, 0xdc, 0x1a, 0xda, 0x6d, 0x34, 0xcd, 0x76, 0xaf, 0xab, 0x95, 0xf4, + 0x5f, 0x28, 0x50, 0xa3, 0xec, 0xeb, 0x29, 0x8b, 0xe2, 0x7e, 0x6c, 0xc7, 0xd3, 0x88, 0x97, 0x95, + 0x13, 0xb8, 0x22, 0x97, 0xd7, 0x0e, 0xdf, 0x4b, 0x4f, 0xc0, 0x0b, 0xfb, 0xd9, 0x4f, 0xf7, 0x42, + 0x71, 0x06, 0x2f, 0x2b, 0xc6, 0x45, 0x96, 0xcb, 0x62, 0xdb, 0x1b, 0xc9, 0x4e, 0xa0, 0x8a, 0xb2, + 0x16, 0x8a, 0xc8, 0x4d, 0x58, 0x73, 0x6c, 0x3f, 0xf0, 0x3d, 0x5e, 0xed, 0xb8, 0x4c, 0x01, 0xd3, + 0xa5, 0x96, 0x4a, 0xb9, 0x3d, 0xfd, 0xdb, 0x02, 0x54, 0x04, 0x63, 0x4d, 0x98, 0xb3, 0xb0, 0xba, + 0x4e, 0xa0, 0xea, 0x04, 0x7e, 0xe4, 0x45, 0x31, 0xf3, 0x9d, 0x73, 0x79, 0x08, 0xff, 0x5b, 0xe2, + 0x6c, 0x3a, 0x97, 0x53, 0x40, 0xa2, 0x74, 0xb4, 0x7a, 0x6a, 0x50, 0xab, 0xd5, 0x6b, 0x0e, 0x4e, + 0x8c, 0xae, 0x49, 0xb3, 0xf3, 0xc9, 0x75, 0xa8, 0x70, 0xb3, 0xd1, 0xc4, 0x76, 0x12, 0x3a, 0x98, + 0x09, 0xb2, 0xc5, 0x28, 0xb3, 0x3b, 0x29, 0xc6, 0x07, 0x50, 0x92, 0x49, 0x3d, 0x97, 0x8a, 0x33, + 0x0f, 0x64, 0x3a, 0x97, 0xfa, 0x46, 0x83, 0x36, 0x1f, 0x53, 0xa9, 0x4f, 0xee, 0xc3, 0xf2, 0x98, + 0xef, 0x5f, 0x14, 0xc3, 0xce, 0xc5, 0x79, 0x27, 0x81, 0xcb, 0x8e, 0xca, 0xa7, 0xb4, 0xdd, 0xa3, + 0x6d, 0xf3, 0x19, 0x45, 0x6d, 0xfd, 0xdf, 0x91, 0x96, 0x52, 0xb7, 0x01, 0x4a, 0xc7, 0x9d, 0xde, + 0xc3, 0x46, 0x47, 0x5b, 0xe2, 0x5d, 0x41, 0x76, 0x7f, 0x9a, 0xa2, 0x7f, 0x0c, 0x25, 0x99, 0xc2, + 0x00, 0x72, 0x79, 0x6d, 0x09, 0xd3, 0xb9, 0x61, 0x36, 0xfa, 0x66, 0x8f, 0x1a, 0xa2, 0xfd, 0x6a, + 0x76, 0x7a, 0x83, 0x96, 0xc5, 0x05, 0x8d, 0x63, 0x43, 0x53, 0xf5, 0xf7, 0x60, 0x99, 0x2f, 0xce, + 0x33, 0x3d, 0x59, 0x5e, 0x5b, 0x22, 0x6b, 0x00, 0x0f, 0x1b, 0xcd, 0x27, 0xbc, 0xd3, 0xea, 0xf2, + 0xcc, 0xff, 0xab, 0x02, 0x35, 0xf4, 0x36, 0xe5, 0xac, 0x03, 0x00, 0x8f, 0x0b, 0xac, 0x68, 0xc2, + 0x1c, 0x44, 0xab, 0x7a, 0xb8, 0x71, 0x61, 0x63, 0xb4, 0xe2, 0xa5, 0xc8, 0xee, 0x25, 0xe4, 0x22, + 0x5a, 0x91, 0xfc, 0xc9, 0x88, 0x87, 0x60, 0xc2, 0x30, 0x9f, 0xcc, 0x8a, 0xbe, 0x80, 0xad, 0x59, + 0x1e, 0xeb, 0xc4, 0x87, 0xa4, 0xf2, 0xd3, 0x9a, 0xbf, 0xf6, 0xd9, 0xac, 0x40, 0xdf, 0x81, 0xaa, + 0x3d, 0x0e, 0xa6, 0x7e, 0x6c, 0x4d, 0x23, 0xe6, 0x4a, 0x5e, 0x05, 0x21, 0x1a, 0x44, 0xcc, 0xe5, + 0x1d, 0xd3, 0xc8, 0x1b, 0x7b, 0xb1, 0xe4, 0x52, 0xf1, 0xa1, 0x7f, 0xa3, 0xc2, 0x26, 0x2e, 0x92, + 0xd0, 0xcb, 0xa9, 0x1d, 0xda, 0xe3, 0x88, 0xdc, 0x82, 0xb2, 0x2b, 0x25, 0x78, 0x70, 0x56, 0x0f, + 0xb5, 0x79, 0x22, 0xa2, 0xa9, 0x06, 0x79, 0x0a, 0x95, 0xb3, 0x90, 0x45, 0xcf, 0x7d, 0x16, 0x45, + 0x32, 0x5d, 0x6f, 0xe6, 0xb6, 0x90, 0xb7, 0xbe, 0xff, 0x28, 0x51, 0x3e, 0xaa, 0xf5, 0x9f, 0x75, + 0x9b, 0x8f, 0x69, 0xaf, 0xdb, 0x1b, 0xf4, 0x3b, 0xcf, 0x1e, 0xaa, 0x75, 0x85, 0xce, 0x4c, 0xcd, + 0x05, 0xbd, 0x70, 0x79, 0xd0, 0xf5, 0x7b, 0x50, 0x49, 0x8d, 0x73, 0xf8, 0x73, 0xe6, 0x05, 0x21, + 0x7d, 0xf1, 0xd8, 0xe8, 0xf2, 0xf6, 0xf2, 0x29, 0xe7, 0x13, 0xcc, 0xa5, 0x1f, 0xc0, 0x56, 0xce, + 0x4b, 0xc9, 0x19, 0xe4, 0x1e, 0x94, 0x26, 0xe8, 0xb0, 0xc4, 0xfb, 0xad, 0xef, 0xd8, 0x13, 0x95, + 0xaa, 0x64, 0x1b, 0x4a, 0xf6, 0x64, 0xc2, 0x0f, 0x0b, 0x8e, 0xe5, 0x2a, 0x2d, 0xda, 0x93, 0x49, + 0xdb, 0xd5, 0xff, 0x0f, 0xb6, 0xe7, 0xd6, 0x88, 0x26, 0x81, 0x1f, 0x31, 0x72, 0x1b, 0x4a, 0x11, + 0x92, 0x93, 0x8c, 0xf3, 0x76, 0xb2, 0x48, 0x8e, 0xb9, 0xa8, 0x54, 0xe2, 0xe6, 0xdd, 0xc0, 0xe1, + 0xe6, 0x79, 0x5a, 0x55, 0x68, 0xd1, 0x0d, 0x9c, 0xb6, 0xab, 0x5b, 0xb0, 0xd5, 0x62, 0x23, 0x16, + 0xb3, 0x39, 0x1c, 0x67, 0xea, 0x4a, 0x46, 0x7d, 0x2e, 0xb0, 0xea, 0xf7, 0x08, 0xac, 0x0b, 0xdb, + 0xf9, 0x05, 0x92, 0x20, 0xdd, 0x9f, 0x0b, 0xd2, 0xf5, 0x34, 0x4f, 0x16, 0xf8, 0x73, 0x59, 0x94, + 0x8e, 0x61, 0x67, 0x7e, 0x95, 0x37, 0x0a, 0x93, 0xfe, 0x67, 0x05, 0x36, 0xf9, 0x45, 0x21, 0xb1, + 0x13, 0xc9, 0x78, 0xbc, 0x7e, 0x19, 0xef, 0xf2, 0x7e, 0xca, 0x0e, 0x63, 0x2b, 0x0d, 0x3b, 0x27, + 0x50, 0x40, 0x59, 0x4b, 0x06, 0x73, 0xc3, 0xf3, 0x9d, 0xd1, 0xd4, 0x65, 0x56, 0xaa, 0x89, 0xdb, + 0x2a, 0x1f, 0x2d, 0xc7, 0xe1, 0x94, 0xd1, 0x75, 0x39, 0xdc, 0x97, 0x73, 0xc8, 0xd5, 0xa4, 0x16, + 0x91, 0x71, 0x8f, 0x0a, 0x77, 0x0f, 0x0e, 0x64, 0x41, 0x92, 0xb7, 0xa0, 0xf2, 0x43, 0x76, 0x1e, + 0x59, 0x81, 0x3f, 0x3a, 0x47, 0xde, 0x2d, 0xd3, 0x32, 0x17, 0xf4, 0xfc, 0xd1, 0x39, 0x4f, 0xd4, + 0xdc, 0xa6, 0x2e, 0x4d, 0xd4, 0x05, 0x21, 0x58, 0x00, 0x81, 0x9a, 0x85, 0x20, 0x86, 0xed, 0xb9, + 0x35, 0x16, 0x20, 0xa0, 0x5e, 0x9e, 0xa8, 0x59, 0x06, 0x51, 0x2f, 0x63, 0x10, 0xfd, 0x4f, 0x2a, + 0x6c, 0xf0, 0x65, 0x11, 0x02, 0x96, 0xa0, 0xf5, 0x2e, 0xac, 0x9e, 0xb1, 0xd8, 0x79, 0x6e, 0x45, + 0xce, 0x73, 0x36, 0xb6, 0x91, 0xd5, 0xca, 0xb4, 0x8a, 0xb2, 0x3e, 0x8a, 0x48, 0x3d, 0x4b, 0x6b, + 0xc5, 0x23, 0xf5, 0x30, 0x8d, 0xe4, 0x77, 0x1f, 0x7b, 0x7b, 0xa0, 0x09, 0xb0, 0x44, 0x3a, 0xe0, + 0x19, 0x8c, 0x9d, 0x39, 0x5d, 0x43, 0x39, 0x3a, 0xc2, 0x2f, 0xad, 0xe4, 0x3e, 0x6c, 0xe6, 0xe1, + 0xc5, 0x19, 0x02, 0x1b, 0x09, 0xf0, 0x46, 0x16, 0x60, 0x9c, 0x49, 0x3e, 0xe2, 0x49, 0x91, 0x58, + 0xb6, 0x26, 0x21, 0x3b, 0xf3, 0x5e, 0xe2, 0x79, 0x58, 0xe1, 0xe9, 0x20, 0x6d, 0x9f, 0xa2, 0x98, + 0xec, 0x40, 0x29, 0x38, 0x3b, 0x8b, 0x58, 0x5c, 0x5f, 0xc1, 0x13, 0x58, 0x7e, 0x65, 0x0e, 0xe0, + 0xf2, 0xeb, 0x1d, 0xc0, 0xfa, 0x57, 0x40, 0x32, 0xd1, 0x4c, 0xd2, 0xe4, 0xee, 0x5c, 0x9a, 0x5c, + 0xcd, 0xa6, 0x49, 0x2e, 0xf2, 0x97, 0xd5, 0xe9, 0x37, 0xb2, 0xbc, 0xd2, 0x05, 0xde, 0x2c, 0x47, + 0x3e, 0x85, 0x35, 0x11, 0xa4, 0xb1, 0x3c, 0xe2, 0x64, 0xa6, 0x6c, 0x2f, 0x3c, 0xff, 0x68, 0xcd, + 0xcb, 0x7e, 0xea, 0x3f, 0x56, 0x80, 0x08, 0xb6, 0x10, 0xb9, 0x20, 0x93, 0x66, 0x16, 0x35, 0xe5, + 0x35, 0xdb, 0x96, 0x79, 0x56, 0x2c, 0x5c, 0xca, 0x8a, 0xff, 0x0f, 0x9b, 0x59, 0x0f, 0x92, 0x40, + 0x1f, 0xce, 0x05, 0xfa, 0x5a, 0x9e, 0x13, 0xb3, 0xee, 0x5e, 0x16, 0x69, 0x23, 0x21, 0xf6, 0x64, + 0x85, 0x37, 0xe3, 0xc3, 0x3f, 0x28, 0x50, 0xee, 0x07, 0x61, 0x8c, 0x94, 0xf6, 0x01, 0xac, 0x47, + 0x41, 0x18, 0x5b, 0xec, 0xe5, 0x24, 0x64, 0x91, 0xbc, 0x87, 0xa9, 0x98, 0xfa, 0x41, 0x18, 0x1b, + 0xa9, 0x94, 0xdc, 0x96, 0x8a, 0x2e, 0x8b, 0x1c, 0xe6, 0xbb, 0x9e, 0x3f, 0xc4, 0x32, 0x4b, 0xd2, + 0x1e, 0xd5, 0x5b, 0xe9, 0x18, 0xb9, 0x05, 0xc4, 0x65, 0x67, 0xf6, 0x74, 0x14, 0x8b, 0xbb, 0xa7, + 0x15, 0xb3, 0x97, 0xb1, 0xac, 0x2a, 0x4d, 0x8e, 0xe0, 0xe5, 0xd0, 0x64, 0x2f, 0x79, 0x90, 0xb6, + 0xf3, 0xda, 0xfe, 0x74, 0xcc, 0x42, 0xcf, 0xc1, 0xca, 0x52, 0xe8, 0x66, 0x76, 0x42, 0x57, 0x0c, + 0xe9, 0x7f, 0x51, 0x00, 0xfa, 0x4e, 0x10, 0xb2, 0x10, 0x37, 0xf2, 0xdf, 0x50, 0x8a, 0xf0, 0x4b, + 0x42, 0x7d, 0x35, 0xf3, 0xa4, 0x25, 0x75, 0xe4, 0xcf, 0xa3, 0xd5, 0x93, 0x86, 0xd9, 0x7c, 0x6c, + 0xf5, 0x9b, 0x3d, 0x6a, 0x50, 0x2a, 0xa7, 0x91, 0x6b, 0x79, 0xf6, 0x58, 0xbe, 0x7b, 0x30, 0x63, + 0xe2, 0x8f, 0xe1, 0xca, 0xd8, 0x16, 0xe4, 0xc3, 0x75, 0x2d, 0xc4, 0x89, 0xc5, 0x2c, 0x8c, 0xea, + 0x15, 0xdc, 0xd2, 0x36, 0x0e, 0x0b, 0xfb, 0xa7, 0xe9, 0x20, 0x76, 0xa6, 0x89, 0xf5, 0x1d, 0x6a, + 0xf0, 0x15, 0xdb, 0xdd, 0x63, 0x2b, 0xbb, 0xbe, 0xe8, 0x68, 0x73, 0x12, 0x55, 0xff, 0x95, 0x02, + 0x15, 0xec, 0x0d, 0xe7, 0xee, 0x05, 0x85, 0xf4, 0x5e, 0xf0, 0x29, 0x40, 0x06, 0x32, 0x9e, 0x9f, + 0x30, 0x3b, 0x6e, 0xd3, 0xa9, 0xfb, 0x33, 0x00, 0x69, 0x46, 0xff, 0xda, 0x67, 0x00, 0x19, 0x68, + 0x13, 0xfb, 0x85, 0xcc, 0xbd, 0xe3, 0xed, 0x9c, 0xfd, 0x65, 0x1c, 0xc9, 0x48, 0xf4, 0xc7, 0xf2, + 0x89, 0x82, 0xda, 0xfe, 0x90, 0x65, 0x3c, 0x54, 0x52, 0x0b, 0x5b, 0x50, 0x44, 0x8e, 0x4c, 0x1e, + 0x4a, 0xf1, 0x83, 0x68, 0x50, 0x60, 0xbe, 0x2b, 0x39, 0x98, 0xff, 0xd4, 0x7f, 0xa2, 0xc0, 0x86, + 0x30, 0x25, 0xb2, 0x15, 0xc3, 0xc7, 0x7b, 0x58, 0x91, 0x09, 0x02, 0x13, 0x05, 0xc9, 0x10, 0x50, + 0xd4, 0x41, 0x48, 0xf6, 0xa0, 0x18, 0xf2, 0xb5, 0x2f, 0xb4, 0xd4, 0xa9, 0x57, 0x54, 0x28, 0x90, + 0x0f, 0x41, 0x13, 0xa6, 0xf8, 0x45, 0x28, 0x0e, 0x6d, 0xcf, 0x8f, 0xf1, 0x92, 0x5f, 0xa1, 0xeb, + 0x28, 0x6f, 0xa6, 0x62, 0xfd, 0x3f, 0x61, 0x0b, 0xe7, 0x37, 0xa6, 0x71, 0xd0, 0x62, 0x31, 0x73, + 0xa4, 0x37, 0x37, 0x16, 0x78, 0x73, 0xa4, 0xde, 0x3d, 0xc8, 0x7a, 0xa4, 0x0f, 0x60, 0x35, 0xbb, + 0x8f, 0x85, 0xd7, 0xb9, 0x19, 0xed, 0xaa, 0xd8, 0xdd, 0x5f, 0xcd, 0xbb, 0x9d, 0x89, 0x40, 0x42, + 0x06, 0xfa, 0xb7, 0x0a, 0xac, 0xcb, 0xd1, 0x33, 0xcf, 0x67, 0xd8, 0x64, 0x2f, 0x32, 0xbd, 0xf0, + 0x61, 0x9a, 0xdc, 0x4b, 0xc2, 0x34, 0x77, 0x9b, 0x98, 0xb3, 0xb8, 0x9f, 0x8d, 0xd8, 0xb5, 0x3b, + 0x50, 0x14, 0xb8, 0xa6, 0x18, 0x2a, 0x0b, 0x30, 0x54, 0x67, 0x18, 0xfe, 0x6e, 0x05, 0x56, 0xc5, + 0xc5, 0xf9, 0x8d, 0x7b, 0xab, 0x2d, 0x28, 0x7e, 0x3d, 0x65, 0xe1, 0x39, 0x76, 0xa0, 0x15, 0x2a, + 0x3e, 0xf8, 0x71, 0xe8, 0x4c, 0xc3, 0x28, 0x08, 0x25, 0x75, 0xc8, 0xaf, 0xcc, 0x31, 0x59, 0xcd, + 0x1d, 0x93, 0x8f, 0xa0, 0x2a, 0x34, 0x2c, 0x7c, 0x32, 0x13, 0x97, 0xd5, 0x77, 0xf2, 0x77, 0x7b, + 0x79, 0xf1, 0x68, 0xa2, 0x9e, 0x78, 0x33, 0xeb, 0xf6, 0xba, 0x06, 0x05, 0x27, 0x95, 0xcc, 0x5a, + 0x89, 0xd2, 0x7c, 0x2b, 0x71, 0x1f, 0x76, 0xb0, 0xd6, 0x99, 0x6b, 0x39, 0x78, 0xc7, 0xb2, 0x1d, + 0x67, 0x1a, 0xda, 0xce, 0xb9, 0x3c, 0xb0, 0xb7, 0xe4, 0x68, 0x93, 0x0f, 0x36, 0xe4, 0x18, 0xb9, + 0x0d, 0x15, 0x64, 0x4f, 0x0c, 0x47, 0x39, 0xdf, 0x02, 0x25, 0x5c, 0x4c, 0xcb, 0x51, 0xc2, 0xca, + 0xf7, 0xa0, 0x2a, 0x99, 0x06, 0x27, 0x54, 0x10, 0x3b, 0x72, 0x91, 0xd1, 0x28, 0x44, 0x33, 0x06, + 0x3c, 0x00, 0xc0, 0x3b, 0xa4, 0x98, 0x03, 0x38, 0x67, 0xe3, 0x02, 0x25, 0xd0, 0xca, 0x59, 0x4a, + 0x2c, 0xb9, 0x06, 0x73, 0x35, 0xdf, 0x60, 0x92, 0x27, 0xb0, 0x3a, 0xb1, 0xc3, 0xc8, 0xf3, 0x87, + 0x16, 0x5e, 0xe0, 0x6b, 0x18, 0xcb, 0xdd, 0x85, 0xb1, 0x3c, 0x15, 0x8a, 0x78, 0x95, 0x2f, 0xf5, + 0x4d, 0xda, 0x6e, 0x9a, 0xb4, 0x3a, 0x99, 0x09, 0xc9, 0xa7, 0x70, 0xd5, 0x9e, 0xc6, 0x81, 0xe5, + 0x7a, 0x91, 0x13, 0xbc, 0x60, 0xa1, 0x85, 0x6f, 0x50, 0x22, 0x82, 0xf5, 0x75, 0x8c, 0xb1, 0x72, + 0x40, 0x77, 0xb8, 0x4e, 0x4b, 0xaa, 0x60, 0x86, 0x62, 0x14, 0xc9, 0x7f, 0x40, 0x2d, 0x69, 0xbb, + 0xc4, 0xbb, 0x96, 0x86, 0x11, 0xdc, 0x5a, 0x54, 0x3c, 0x74, 0x55, 0xaa, 0x8a, 0x17, 0xcb, 0x87, + 0xa0, 0x89, 0xa5, 0xc2, 0x34, 0xd7, 0xeb, 0x1b, 0x38, 0xfb, 0xca, 0x2b, 0x4a, 0x81, 0xae, 0x9f, + 0xcd, 0x55, 0x5b, 0x1f, 0xae, 0x08, 0x1b, 0x62, 0x0b, 0xc8, 0x0b, 0xe2, 0x08, 0xa8, 0x13, 0x8c, + 0xf2, 0xf5, 0x9c, 0xa9, 0x39, 0xf2, 0xa0, 0x5b, 0x67, 0x8b, 0x28, 0xe5, 0x26, 0x54, 0x85, 0x51, + 0x97, 0x4d, 0xe2, 0xe7, 0xf5, 0xcd, 0xcc, 0xa1, 0x03, 0x38, 0xd0, 0xe2, 0x72, 0xfd, 0x10, 0x60, + 0x96, 0xa8, 0xa4, 0x0c, 0x98, 0xaa, 0xda, 0x12, 0xbe, 0x74, 0xb4, 0xbb, 0xc7, 0x1d, 0x43, 0x53, + 0xc8, 0x1a, 0xc0, 0xa9, 0x41, 0x2d, 0x6a, 0xf4, 0x07, 0x1d, 0x53, 0x53, 0xf5, 0xf7, 0xa1, 0x9a, + 0x01, 0x04, 0x55, 0x11, 0x12, 0x6d, 0x89, 0x54, 0x61, 0x85, 0x1a, 0x9d, 0xc6, 0x97, 0xf8, 0xa6, + 0x67, 0x42, 0x4d, 0xa0, 0x98, 0x30, 0xd6, 0xad, 0xb9, 0x5e, 0x65, 0x6b, 0x11, 0xd8, 0x97, 0x75, + 0x29, 0x53, 0xd0, 0x64, 0x44, 0xa3, 0xe4, 0xc8, 0x7e, 0x15, 0x5f, 0x09, 0xf8, 0xf1, 0xa5, 0x9d, + 0x8a, 0x0f, 0xf2, 0x09, 0x40, 0x06, 0x29, 0x71, 0xcd, 0x7f, 0x25, 0x52, 0x19, 0x55, 0xfd, 0x73, + 0xa8, 0x66, 0x96, 0x5d, 0xb8, 0xe2, 0xfe, 0x8c, 0x21, 0x79, 0x02, 0xd4, 0xe7, 0xcc, 0xa6, 0xee, + 0x26, 0xef, 0xd5, 0xbf, 0x54, 0x12, 0x56, 0x93, 0x46, 0xf3, 0x2f, 0x21, 0xea, 0x25, 0x2f, 0x21, + 0xb7, 0xe7, 0x8e, 0xd0, 0x05, 0xcf, 0xca, 0x19, 0x05, 0xe4, 0x5a, 0x5e, 0xcc, 0xe8, 0x9d, 0x42, + 0xc5, 0x47, 0x86, 0x00, 0x0b, 0x59, 0x02, 0xd4, 0xff, 0xae, 0xc0, 0x5a, 0xea, 0x9b, 0x68, 0x03, + 0x6f, 0x41, 0x29, 0x44, 0x3f, 0x65, 0x1b, 0x38, 0x87, 0x9e, 0xd8, 0x03, 0x95, 0x3a, 0xe4, 0x06, + 0xd4, 0x72, 0x3c, 0x86, 0x30, 0x14, 0xe8, 0x6a, 0x96, 0xbe, 0x32, 0x9d, 0x65, 0xe1, 0xfb, 0xf4, + 0xf0, 0xaf, 0x62, 0xeb, 0x8f, 0x61, 0x35, 0x29, 0x42, 0xf4, 0xaf, 0x88, 0xfe, 0x6d, 0x2e, 0x88, + 0x3f, 0xad, 0x9e, 0xcd, 0x3e, 0x3e, 0x2a, 0x95, 0xff, 0xb6, 0xa2, 0xfd, 0xac, 0xfb, 0xb0, 0xfc, + 0xbf, 0xf2, 0xff, 0xb5, 0xff, 0x0a, 0x00, 0x00, 0xff, 0xff, 0x09, 0x6f, 0x4d, 0x63, 0xf2, 0x1d, + 0x00, 0x00, +} diff --git a/vendor/google.golang.org/appengine/internal/search/search.proto b/vendor/google.golang.org/appengine/internal/search/search.proto new file mode 100644 index 000000000..61df6508b --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/search/search.proto @@ -0,0 +1,394 @@ +syntax = "proto2"; +option go_package = "search"; + +package search; + +message Scope { + enum Type { + USER_BY_CANONICAL_ID = 1; + USER_BY_EMAIL = 2; + GROUP_BY_CANONICAL_ID = 3; + GROUP_BY_EMAIL = 4; + GROUP_BY_DOMAIN = 5; + ALL_USERS = 6; + ALL_AUTHENTICATED_USERS = 7; + } + + optional Type type = 1; + optional string value = 2; +} + +message Entry { + enum Permission { + READ = 1; + WRITE = 2; + FULL_CONTROL = 3; + } + + optional Scope scope = 1; + optional Permission permission = 2; + optional string display_name = 3; +} + +message AccessControlList { + optional string owner = 1; + repeated Entry entries = 2; +} + +message FieldValue { + enum ContentType { + TEXT = 0; + HTML = 1; + ATOM = 2; + DATE = 3; + NUMBER = 4; + GEO = 5; + } + + optional ContentType type = 1 [default = TEXT]; + + optional string language = 2 [default = "en"]; + + optional string string_value = 3; + + optional group Geo = 4 { + required double lat = 5; + required double lng = 6; + } +} + +message Field { + required string name = 1; + required FieldValue value = 2; +} + +message FieldTypes { + required string name = 1; + repeated FieldValue.ContentType type = 2; +} + +message IndexShardSettings { + repeated int32 prev_num_shards = 1; + required int32 num_shards = 2 [default=1]; + repeated int32 prev_num_shards_search_false = 3; + optional string local_replica = 4 [default = ""]; +} + +message FacetValue { + enum ContentType { + ATOM = 2; + NUMBER = 4; + } + + optional ContentType type = 1 [default = ATOM]; + optional string string_value = 3; +} + +message Facet { + required string name = 1; + required FacetValue value = 2; +} + +message DocumentMetadata { + optional int64 version = 1; + optional int64 committed_st_version = 2; +} + +message Document { + optional string id = 1; + optional string language = 2 [default = "en"]; + repeated Field field = 3; + optional int32 order_id = 4; + optional OrderIdSource order_id_source = 6 [default = SUPPLIED]; + + enum OrderIdSource { + DEFAULTED = 0; + SUPPLIED = 1; + } + + enum Storage { + DISK = 0; + } + + optional Storage storage = 5 [default = DISK]; + repeated Facet facet = 8; +} + +message SearchServiceError { + enum ErrorCode { + OK = 0; + INVALID_REQUEST = 1; + TRANSIENT_ERROR = 2; + INTERNAL_ERROR = 3; + PERMISSION_DENIED = 4; + TIMEOUT = 5; + CONCURRENT_TRANSACTION = 6; + } +} + +message RequestStatus { + required SearchServiceError.ErrorCode code = 1; + optional string error_detail = 2; + optional int32 canonical_code = 3; +} + +message IndexSpec { + required string name = 1; + + enum Consistency { + GLOBAL = 0; + PER_DOCUMENT = 1; + } + optional Consistency consistency = 2 [default = PER_DOCUMENT]; + + optional string namespace = 3; + optional int32 version = 4; + + enum Source { + SEARCH = 0; + DATASTORE = 1; + CLOUD_STORAGE = 2; + } + optional Source source = 5 [default = SEARCH]; + + enum Mode { + PRIORITY = 0; + BACKGROUND = 1; + } + optional Mode mode = 6 [default = PRIORITY]; +} + +message IndexMetadata { + required IndexSpec index_spec = 1; + + repeated FieldTypes field = 2; + + message Storage { + optional int64 amount_used = 1; + optional int64 limit = 2; + } + optional Storage storage = 3; +} + +message IndexDocumentParams { + repeated Document document = 1; + + enum Freshness { + SYNCHRONOUSLY = 0; + WHEN_CONVENIENT = 1; + } + optional Freshness freshness = 2 [default = SYNCHRONOUSLY, deprecated=true]; + + required IndexSpec index_spec = 3; +} + +message IndexDocumentRequest { + required IndexDocumentParams params = 1; + + optional bytes app_id = 3; +} + +message IndexDocumentResponse { + repeated RequestStatus status = 1; + + repeated string doc_id = 2; +} + +message DeleteDocumentParams { + repeated string doc_id = 1; + + required IndexSpec index_spec = 2; +} + +message DeleteDocumentRequest { + required DeleteDocumentParams params = 1; + + optional bytes app_id = 3; +} + +message DeleteDocumentResponse { + repeated RequestStatus status = 1; +} + +message ListDocumentsParams { + required IndexSpec index_spec = 1; + optional string start_doc_id = 2; + optional bool include_start_doc = 3 [default = true]; + optional int32 limit = 4 [default = 100]; + optional bool keys_only = 5; +} + +message ListDocumentsRequest { + required ListDocumentsParams params = 1; + + optional bytes app_id = 2; +} + +message ListDocumentsResponse { + required RequestStatus status = 1; + + repeated Document document = 2; +} + +message ListIndexesParams { + optional bool fetch_schema = 1; + optional int32 limit = 2 [default = 20]; + optional string namespace = 3; + optional string start_index_name = 4; + optional bool include_start_index = 5 [default = true]; + optional string index_name_prefix = 6; + optional int32 offset = 7; + optional IndexSpec.Source source = 8 [default = SEARCH]; +} + +message ListIndexesRequest { + required ListIndexesParams params = 1; + + optional bytes app_id = 3; +} + +message ListIndexesResponse { + required RequestStatus status = 1; + repeated IndexMetadata index_metadata = 2; +} + +message DeleteSchemaParams { + optional IndexSpec.Source source = 1 [default = SEARCH]; + repeated IndexSpec index_spec = 2; +} + +message DeleteSchemaRequest { + required DeleteSchemaParams params = 1; + + optional bytes app_id = 3; +} + +message DeleteSchemaResponse { + repeated RequestStatus status = 1; +} + +message SortSpec { + required string sort_expression = 1; + optional bool sort_descending = 2 [default = true]; + optional string default_value_text = 4; + optional double default_value_numeric = 5; +} + +message ScorerSpec { + enum Scorer { + RESCORING_MATCH_SCORER = 0; + MATCH_SCORER = 2; + } + optional Scorer scorer = 1 [default = MATCH_SCORER]; + + optional int32 limit = 2 [default = 1000]; + optional string match_scorer_parameters = 9; +} + +message FieldSpec { + repeated string name = 1; + + repeated group Expression = 2 { + required string name = 3; + required string expression = 4; + } +} + +message FacetRange { + optional string name = 1; + optional string start = 2; + optional string end = 3; +} + +message FacetRequestParam { + optional int32 value_limit = 1; + repeated FacetRange range = 2; + repeated string value_constraint = 3; +} + +message FacetAutoDetectParam { + optional int32 value_limit = 1 [default = 10]; +} + +message FacetRequest { + required string name = 1; + optional FacetRequestParam params = 2; +} + +message FacetRefinement { + required string name = 1; + optional string value = 2; + + message Range { + optional string start = 1; + optional string end = 2; + } + optional Range range = 3; +} + +message SearchParams { + required IndexSpec index_spec = 1; + required string query = 2; + optional string cursor = 4; + optional int32 offset = 11; + + enum CursorType { + NONE = 0; + SINGLE = 1; + PER_RESULT = 2; + } + optional CursorType cursor_type = 5 [default = NONE]; + + optional int32 limit = 6 [default = 20]; + optional int32 matched_count_accuracy = 7; + repeated SortSpec sort_spec = 8; + optional ScorerSpec scorer_spec = 9; + optional FieldSpec field_spec = 10; + optional bool keys_only = 12; + + enum ParsingMode { + STRICT = 0; + RELAXED = 1; + } + optional ParsingMode parsing_mode = 13 [default = STRICT]; + + optional int32 auto_discover_facet_count = 15 [default = 0]; + repeated FacetRequest include_facet = 16; + repeated FacetRefinement facet_refinement = 17; + optional FacetAutoDetectParam facet_auto_detect_param = 18; + optional int32 facet_depth = 19 [default=1000]; +} + +message SearchRequest { + required SearchParams params = 1; + + optional bytes app_id = 3; +} + +message FacetResultValue { + required string name = 1; + required int32 count = 2; + required FacetRefinement refinement = 3; +} + +message FacetResult { + required string name = 1; + repeated FacetResultValue value = 2; +} + +message SearchResult { + required Document document = 1; + repeated Field expression = 4; + repeated double score = 2; + optional string cursor = 3; +} + +message SearchResponse { + repeated SearchResult result = 1; + required int64 matched_count = 2; + required RequestStatus status = 3; + optional string cursor = 4; + repeated FacetResult facet_result = 5; + + extensions 1000 to 9999; +} diff --git a/vendor/google.golang.org/appengine/internal/socket/socket_service.pb.go b/vendor/google.golang.org/appengine/internal/socket/socket_service.pb.go new file mode 100644 index 000000000..4ec872e46 --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/socket/socket_service.pb.go @@ -0,0 +1,2822 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google.golang.org/appengine/internal/socket/socket_service.proto + +package socket + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +type RemoteSocketServiceError_ErrorCode int32 + +const ( + RemoteSocketServiceError_SYSTEM_ERROR RemoteSocketServiceError_ErrorCode = 1 + RemoteSocketServiceError_GAI_ERROR RemoteSocketServiceError_ErrorCode = 2 + RemoteSocketServiceError_FAILURE RemoteSocketServiceError_ErrorCode = 4 + RemoteSocketServiceError_PERMISSION_DENIED RemoteSocketServiceError_ErrorCode = 5 + RemoteSocketServiceError_INVALID_REQUEST RemoteSocketServiceError_ErrorCode = 6 + RemoteSocketServiceError_SOCKET_CLOSED RemoteSocketServiceError_ErrorCode = 7 +) + +var RemoteSocketServiceError_ErrorCode_name = map[int32]string{ + 1: "SYSTEM_ERROR", + 2: "GAI_ERROR", + 4: "FAILURE", + 5: "PERMISSION_DENIED", + 6: "INVALID_REQUEST", + 7: "SOCKET_CLOSED", +} +var RemoteSocketServiceError_ErrorCode_value = map[string]int32{ + "SYSTEM_ERROR": 1, + "GAI_ERROR": 2, + "FAILURE": 4, + "PERMISSION_DENIED": 5, + "INVALID_REQUEST": 6, + "SOCKET_CLOSED": 7, +} + +func (x RemoteSocketServiceError_ErrorCode) Enum() *RemoteSocketServiceError_ErrorCode { + p := new(RemoteSocketServiceError_ErrorCode) + *p = x + return p +} +func (x RemoteSocketServiceError_ErrorCode) String() string { + return proto.EnumName(RemoteSocketServiceError_ErrorCode_name, int32(x)) +} +func (x *RemoteSocketServiceError_ErrorCode) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(RemoteSocketServiceError_ErrorCode_value, data, "RemoteSocketServiceError_ErrorCode") + if err != nil { + return err + } + *x = RemoteSocketServiceError_ErrorCode(value) + return nil +} +func (RemoteSocketServiceError_ErrorCode) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_socket_service_b5f8f233dc327808, []int{0, 0} +} + +type RemoteSocketServiceError_SystemError int32 + +const ( + RemoteSocketServiceError_SYS_SUCCESS RemoteSocketServiceError_SystemError = 0 + RemoteSocketServiceError_SYS_EPERM RemoteSocketServiceError_SystemError = 1 + RemoteSocketServiceError_SYS_ENOENT RemoteSocketServiceError_SystemError = 2 + RemoteSocketServiceError_SYS_ESRCH RemoteSocketServiceError_SystemError = 3 + RemoteSocketServiceError_SYS_EINTR RemoteSocketServiceError_SystemError = 4 + RemoteSocketServiceError_SYS_EIO RemoteSocketServiceError_SystemError = 5 + RemoteSocketServiceError_SYS_ENXIO RemoteSocketServiceError_SystemError = 6 + RemoteSocketServiceError_SYS_E2BIG RemoteSocketServiceError_SystemError = 7 + RemoteSocketServiceError_SYS_ENOEXEC RemoteSocketServiceError_SystemError = 8 + RemoteSocketServiceError_SYS_EBADF RemoteSocketServiceError_SystemError = 9 + RemoteSocketServiceError_SYS_ECHILD RemoteSocketServiceError_SystemError = 10 + RemoteSocketServiceError_SYS_EAGAIN RemoteSocketServiceError_SystemError = 11 + RemoteSocketServiceError_SYS_EWOULDBLOCK RemoteSocketServiceError_SystemError = 11 + RemoteSocketServiceError_SYS_ENOMEM RemoteSocketServiceError_SystemError = 12 + RemoteSocketServiceError_SYS_EACCES RemoteSocketServiceError_SystemError = 13 + RemoteSocketServiceError_SYS_EFAULT RemoteSocketServiceError_SystemError = 14 + RemoteSocketServiceError_SYS_ENOTBLK RemoteSocketServiceError_SystemError = 15 + RemoteSocketServiceError_SYS_EBUSY RemoteSocketServiceError_SystemError = 16 + RemoteSocketServiceError_SYS_EEXIST RemoteSocketServiceError_SystemError = 17 + RemoteSocketServiceError_SYS_EXDEV RemoteSocketServiceError_SystemError = 18 + RemoteSocketServiceError_SYS_ENODEV RemoteSocketServiceError_SystemError = 19 + RemoteSocketServiceError_SYS_ENOTDIR RemoteSocketServiceError_SystemError = 20 + RemoteSocketServiceError_SYS_EISDIR RemoteSocketServiceError_SystemError = 21 + RemoteSocketServiceError_SYS_EINVAL RemoteSocketServiceError_SystemError = 22 + RemoteSocketServiceError_SYS_ENFILE RemoteSocketServiceError_SystemError = 23 + RemoteSocketServiceError_SYS_EMFILE RemoteSocketServiceError_SystemError = 24 + RemoteSocketServiceError_SYS_ENOTTY RemoteSocketServiceError_SystemError = 25 + RemoteSocketServiceError_SYS_ETXTBSY RemoteSocketServiceError_SystemError = 26 + RemoteSocketServiceError_SYS_EFBIG RemoteSocketServiceError_SystemError = 27 + RemoteSocketServiceError_SYS_ENOSPC RemoteSocketServiceError_SystemError = 28 + RemoteSocketServiceError_SYS_ESPIPE RemoteSocketServiceError_SystemError = 29 + RemoteSocketServiceError_SYS_EROFS RemoteSocketServiceError_SystemError = 30 + RemoteSocketServiceError_SYS_EMLINK RemoteSocketServiceError_SystemError = 31 + RemoteSocketServiceError_SYS_EPIPE RemoteSocketServiceError_SystemError = 32 + RemoteSocketServiceError_SYS_EDOM RemoteSocketServiceError_SystemError = 33 + RemoteSocketServiceError_SYS_ERANGE RemoteSocketServiceError_SystemError = 34 + RemoteSocketServiceError_SYS_EDEADLK RemoteSocketServiceError_SystemError = 35 + RemoteSocketServiceError_SYS_EDEADLOCK RemoteSocketServiceError_SystemError = 35 + RemoteSocketServiceError_SYS_ENAMETOOLONG RemoteSocketServiceError_SystemError = 36 + RemoteSocketServiceError_SYS_ENOLCK RemoteSocketServiceError_SystemError = 37 + RemoteSocketServiceError_SYS_ENOSYS RemoteSocketServiceError_SystemError = 38 + RemoteSocketServiceError_SYS_ENOTEMPTY RemoteSocketServiceError_SystemError = 39 + RemoteSocketServiceError_SYS_ELOOP RemoteSocketServiceError_SystemError = 40 + RemoteSocketServiceError_SYS_ENOMSG RemoteSocketServiceError_SystemError = 42 + RemoteSocketServiceError_SYS_EIDRM RemoteSocketServiceError_SystemError = 43 + RemoteSocketServiceError_SYS_ECHRNG RemoteSocketServiceError_SystemError = 44 + RemoteSocketServiceError_SYS_EL2NSYNC RemoteSocketServiceError_SystemError = 45 + RemoteSocketServiceError_SYS_EL3HLT RemoteSocketServiceError_SystemError = 46 + RemoteSocketServiceError_SYS_EL3RST RemoteSocketServiceError_SystemError = 47 + RemoteSocketServiceError_SYS_ELNRNG RemoteSocketServiceError_SystemError = 48 + RemoteSocketServiceError_SYS_EUNATCH RemoteSocketServiceError_SystemError = 49 + RemoteSocketServiceError_SYS_ENOCSI RemoteSocketServiceError_SystemError = 50 + RemoteSocketServiceError_SYS_EL2HLT RemoteSocketServiceError_SystemError = 51 + RemoteSocketServiceError_SYS_EBADE RemoteSocketServiceError_SystemError = 52 + RemoteSocketServiceError_SYS_EBADR RemoteSocketServiceError_SystemError = 53 + RemoteSocketServiceError_SYS_EXFULL RemoteSocketServiceError_SystemError = 54 + RemoteSocketServiceError_SYS_ENOANO RemoteSocketServiceError_SystemError = 55 + RemoteSocketServiceError_SYS_EBADRQC RemoteSocketServiceError_SystemError = 56 + RemoteSocketServiceError_SYS_EBADSLT RemoteSocketServiceError_SystemError = 57 + RemoteSocketServiceError_SYS_EBFONT RemoteSocketServiceError_SystemError = 59 + RemoteSocketServiceError_SYS_ENOSTR RemoteSocketServiceError_SystemError = 60 + RemoteSocketServiceError_SYS_ENODATA RemoteSocketServiceError_SystemError = 61 + RemoteSocketServiceError_SYS_ETIME RemoteSocketServiceError_SystemError = 62 + RemoteSocketServiceError_SYS_ENOSR RemoteSocketServiceError_SystemError = 63 + RemoteSocketServiceError_SYS_ENONET RemoteSocketServiceError_SystemError = 64 + RemoteSocketServiceError_SYS_ENOPKG RemoteSocketServiceError_SystemError = 65 + RemoteSocketServiceError_SYS_EREMOTE RemoteSocketServiceError_SystemError = 66 + RemoteSocketServiceError_SYS_ENOLINK RemoteSocketServiceError_SystemError = 67 + RemoteSocketServiceError_SYS_EADV RemoteSocketServiceError_SystemError = 68 + RemoteSocketServiceError_SYS_ESRMNT RemoteSocketServiceError_SystemError = 69 + RemoteSocketServiceError_SYS_ECOMM RemoteSocketServiceError_SystemError = 70 + RemoteSocketServiceError_SYS_EPROTO RemoteSocketServiceError_SystemError = 71 + RemoteSocketServiceError_SYS_EMULTIHOP RemoteSocketServiceError_SystemError = 72 + RemoteSocketServiceError_SYS_EDOTDOT RemoteSocketServiceError_SystemError = 73 + RemoteSocketServiceError_SYS_EBADMSG RemoteSocketServiceError_SystemError = 74 + RemoteSocketServiceError_SYS_EOVERFLOW RemoteSocketServiceError_SystemError = 75 + RemoteSocketServiceError_SYS_ENOTUNIQ RemoteSocketServiceError_SystemError = 76 + RemoteSocketServiceError_SYS_EBADFD RemoteSocketServiceError_SystemError = 77 + RemoteSocketServiceError_SYS_EREMCHG RemoteSocketServiceError_SystemError = 78 + RemoteSocketServiceError_SYS_ELIBACC RemoteSocketServiceError_SystemError = 79 + RemoteSocketServiceError_SYS_ELIBBAD RemoteSocketServiceError_SystemError = 80 + RemoteSocketServiceError_SYS_ELIBSCN RemoteSocketServiceError_SystemError = 81 + RemoteSocketServiceError_SYS_ELIBMAX RemoteSocketServiceError_SystemError = 82 + RemoteSocketServiceError_SYS_ELIBEXEC RemoteSocketServiceError_SystemError = 83 + RemoteSocketServiceError_SYS_EILSEQ RemoteSocketServiceError_SystemError = 84 + RemoteSocketServiceError_SYS_ERESTART RemoteSocketServiceError_SystemError = 85 + RemoteSocketServiceError_SYS_ESTRPIPE RemoteSocketServiceError_SystemError = 86 + RemoteSocketServiceError_SYS_EUSERS RemoteSocketServiceError_SystemError = 87 + RemoteSocketServiceError_SYS_ENOTSOCK RemoteSocketServiceError_SystemError = 88 + RemoteSocketServiceError_SYS_EDESTADDRREQ RemoteSocketServiceError_SystemError = 89 + RemoteSocketServiceError_SYS_EMSGSIZE RemoteSocketServiceError_SystemError = 90 + RemoteSocketServiceError_SYS_EPROTOTYPE RemoteSocketServiceError_SystemError = 91 + RemoteSocketServiceError_SYS_ENOPROTOOPT RemoteSocketServiceError_SystemError = 92 + RemoteSocketServiceError_SYS_EPROTONOSUPPORT RemoteSocketServiceError_SystemError = 93 + RemoteSocketServiceError_SYS_ESOCKTNOSUPPORT RemoteSocketServiceError_SystemError = 94 + RemoteSocketServiceError_SYS_EOPNOTSUPP RemoteSocketServiceError_SystemError = 95 + RemoteSocketServiceError_SYS_ENOTSUP RemoteSocketServiceError_SystemError = 95 + RemoteSocketServiceError_SYS_EPFNOSUPPORT RemoteSocketServiceError_SystemError = 96 + RemoteSocketServiceError_SYS_EAFNOSUPPORT RemoteSocketServiceError_SystemError = 97 + RemoteSocketServiceError_SYS_EADDRINUSE RemoteSocketServiceError_SystemError = 98 + RemoteSocketServiceError_SYS_EADDRNOTAVAIL RemoteSocketServiceError_SystemError = 99 + RemoteSocketServiceError_SYS_ENETDOWN RemoteSocketServiceError_SystemError = 100 + RemoteSocketServiceError_SYS_ENETUNREACH RemoteSocketServiceError_SystemError = 101 + RemoteSocketServiceError_SYS_ENETRESET RemoteSocketServiceError_SystemError = 102 + RemoteSocketServiceError_SYS_ECONNABORTED RemoteSocketServiceError_SystemError = 103 + RemoteSocketServiceError_SYS_ECONNRESET RemoteSocketServiceError_SystemError = 104 + RemoteSocketServiceError_SYS_ENOBUFS RemoteSocketServiceError_SystemError = 105 + RemoteSocketServiceError_SYS_EISCONN RemoteSocketServiceError_SystemError = 106 + RemoteSocketServiceError_SYS_ENOTCONN RemoteSocketServiceError_SystemError = 107 + RemoteSocketServiceError_SYS_ESHUTDOWN RemoteSocketServiceError_SystemError = 108 + RemoteSocketServiceError_SYS_ETOOMANYREFS RemoteSocketServiceError_SystemError = 109 + RemoteSocketServiceError_SYS_ETIMEDOUT RemoteSocketServiceError_SystemError = 110 + RemoteSocketServiceError_SYS_ECONNREFUSED RemoteSocketServiceError_SystemError = 111 + RemoteSocketServiceError_SYS_EHOSTDOWN RemoteSocketServiceError_SystemError = 112 + RemoteSocketServiceError_SYS_EHOSTUNREACH RemoteSocketServiceError_SystemError = 113 + RemoteSocketServiceError_SYS_EALREADY RemoteSocketServiceError_SystemError = 114 + RemoteSocketServiceError_SYS_EINPROGRESS RemoteSocketServiceError_SystemError = 115 + RemoteSocketServiceError_SYS_ESTALE RemoteSocketServiceError_SystemError = 116 + RemoteSocketServiceError_SYS_EUCLEAN RemoteSocketServiceError_SystemError = 117 + RemoteSocketServiceError_SYS_ENOTNAM RemoteSocketServiceError_SystemError = 118 + RemoteSocketServiceError_SYS_ENAVAIL RemoteSocketServiceError_SystemError = 119 + RemoteSocketServiceError_SYS_EISNAM RemoteSocketServiceError_SystemError = 120 + RemoteSocketServiceError_SYS_EREMOTEIO RemoteSocketServiceError_SystemError = 121 + RemoteSocketServiceError_SYS_EDQUOT RemoteSocketServiceError_SystemError = 122 + RemoteSocketServiceError_SYS_ENOMEDIUM RemoteSocketServiceError_SystemError = 123 + RemoteSocketServiceError_SYS_EMEDIUMTYPE RemoteSocketServiceError_SystemError = 124 + RemoteSocketServiceError_SYS_ECANCELED RemoteSocketServiceError_SystemError = 125 + RemoteSocketServiceError_SYS_ENOKEY RemoteSocketServiceError_SystemError = 126 + RemoteSocketServiceError_SYS_EKEYEXPIRED RemoteSocketServiceError_SystemError = 127 + RemoteSocketServiceError_SYS_EKEYREVOKED RemoteSocketServiceError_SystemError = 128 + RemoteSocketServiceError_SYS_EKEYREJECTED RemoteSocketServiceError_SystemError = 129 + RemoteSocketServiceError_SYS_EOWNERDEAD RemoteSocketServiceError_SystemError = 130 + RemoteSocketServiceError_SYS_ENOTRECOVERABLE RemoteSocketServiceError_SystemError = 131 + RemoteSocketServiceError_SYS_ERFKILL RemoteSocketServiceError_SystemError = 132 +) + +var RemoteSocketServiceError_SystemError_name = map[int32]string{ + 0: "SYS_SUCCESS", + 1: "SYS_EPERM", + 2: "SYS_ENOENT", + 3: "SYS_ESRCH", + 4: "SYS_EINTR", + 5: "SYS_EIO", + 6: "SYS_ENXIO", + 7: "SYS_E2BIG", + 8: "SYS_ENOEXEC", + 9: "SYS_EBADF", + 10: "SYS_ECHILD", + 11: "SYS_EAGAIN", + // Duplicate value: 11: "SYS_EWOULDBLOCK", + 12: "SYS_ENOMEM", + 13: "SYS_EACCES", + 14: "SYS_EFAULT", + 15: "SYS_ENOTBLK", + 16: "SYS_EBUSY", + 17: "SYS_EEXIST", + 18: "SYS_EXDEV", + 19: "SYS_ENODEV", + 20: "SYS_ENOTDIR", + 21: "SYS_EISDIR", + 22: "SYS_EINVAL", + 23: "SYS_ENFILE", + 24: "SYS_EMFILE", + 25: "SYS_ENOTTY", + 26: "SYS_ETXTBSY", + 27: "SYS_EFBIG", + 28: "SYS_ENOSPC", + 29: "SYS_ESPIPE", + 30: "SYS_EROFS", + 31: "SYS_EMLINK", + 32: "SYS_EPIPE", + 33: "SYS_EDOM", + 34: "SYS_ERANGE", + 35: "SYS_EDEADLK", + // Duplicate value: 35: "SYS_EDEADLOCK", + 36: "SYS_ENAMETOOLONG", + 37: "SYS_ENOLCK", + 38: "SYS_ENOSYS", + 39: "SYS_ENOTEMPTY", + 40: "SYS_ELOOP", + 42: "SYS_ENOMSG", + 43: "SYS_EIDRM", + 44: "SYS_ECHRNG", + 45: "SYS_EL2NSYNC", + 46: "SYS_EL3HLT", + 47: "SYS_EL3RST", + 48: "SYS_ELNRNG", + 49: "SYS_EUNATCH", + 50: "SYS_ENOCSI", + 51: "SYS_EL2HLT", + 52: "SYS_EBADE", + 53: "SYS_EBADR", + 54: "SYS_EXFULL", + 55: "SYS_ENOANO", + 56: "SYS_EBADRQC", + 57: "SYS_EBADSLT", + 59: "SYS_EBFONT", + 60: "SYS_ENOSTR", + 61: "SYS_ENODATA", + 62: "SYS_ETIME", + 63: "SYS_ENOSR", + 64: "SYS_ENONET", + 65: "SYS_ENOPKG", + 66: "SYS_EREMOTE", + 67: "SYS_ENOLINK", + 68: "SYS_EADV", + 69: "SYS_ESRMNT", + 70: "SYS_ECOMM", + 71: "SYS_EPROTO", + 72: "SYS_EMULTIHOP", + 73: "SYS_EDOTDOT", + 74: "SYS_EBADMSG", + 75: "SYS_EOVERFLOW", + 76: "SYS_ENOTUNIQ", + 77: "SYS_EBADFD", + 78: "SYS_EREMCHG", + 79: "SYS_ELIBACC", + 80: "SYS_ELIBBAD", + 81: "SYS_ELIBSCN", + 82: "SYS_ELIBMAX", + 83: "SYS_ELIBEXEC", + 84: "SYS_EILSEQ", + 85: "SYS_ERESTART", + 86: "SYS_ESTRPIPE", + 87: "SYS_EUSERS", + 88: "SYS_ENOTSOCK", + 89: "SYS_EDESTADDRREQ", + 90: "SYS_EMSGSIZE", + 91: "SYS_EPROTOTYPE", + 92: "SYS_ENOPROTOOPT", + 93: "SYS_EPROTONOSUPPORT", + 94: "SYS_ESOCKTNOSUPPORT", + 95: "SYS_EOPNOTSUPP", + // Duplicate value: 95: "SYS_ENOTSUP", + 96: "SYS_EPFNOSUPPORT", + 97: "SYS_EAFNOSUPPORT", + 98: "SYS_EADDRINUSE", + 99: "SYS_EADDRNOTAVAIL", + 100: "SYS_ENETDOWN", + 101: "SYS_ENETUNREACH", + 102: "SYS_ENETRESET", + 103: "SYS_ECONNABORTED", + 104: "SYS_ECONNRESET", + 105: "SYS_ENOBUFS", + 106: "SYS_EISCONN", + 107: "SYS_ENOTCONN", + 108: "SYS_ESHUTDOWN", + 109: "SYS_ETOOMANYREFS", + 110: "SYS_ETIMEDOUT", + 111: "SYS_ECONNREFUSED", + 112: "SYS_EHOSTDOWN", + 113: "SYS_EHOSTUNREACH", + 114: "SYS_EALREADY", + 115: "SYS_EINPROGRESS", + 116: "SYS_ESTALE", + 117: "SYS_EUCLEAN", + 118: "SYS_ENOTNAM", + 119: "SYS_ENAVAIL", + 120: "SYS_EISNAM", + 121: "SYS_EREMOTEIO", + 122: "SYS_EDQUOT", + 123: "SYS_ENOMEDIUM", + 124: "SYS_EMEDIUMTYPE", + 125: "SYS_ECANCELED", + 126: "SYS_ENOKEY", + 127: "SYS_EKEYEXPIRED", + 128: "SYS_EKEYREVOKED", + 129: "SYS_EKEYREJECTED", + 130: "SYS_EOWNERDEAD", + 131: "SYS_ENOTRECOVERABLE", + 132: "SYS_ERFKILL", +} +var RemoteSocketServiceError_SystemError_value = map[string]int32{ + "SYS_SUCCESS": 0, + "SYS_EPERM": 1, + "SYS_ENOENT": 2, + "SYS_ESRCH": 3, + "SYS_EINTR": 4, + "SYS_EIO": 5, + "SYS_ENXIO": 6, + "SYS_E2BIG": 7, + "SYS_ENOEXEC": 8, + "SYS_EBADF": 9, + "SYS_ECHILD": 10, + "SYS_EAGAIN": 11, + "SYS_EWOULDBLOCK": 11, + "SYS_ENOMEM": 12, + "SYS_EACCES": 13, + "SYS_EFAULT": 14, + "SYS_ENOTBLK": 15, + "SYS_EBUSY": 16, + "SYS_EEXIST": 17, + "SYS_EXDEV": 18, + "SYS_ENODEV": 19, + "SYS_ENOTDIR": 20, + "SYS_EISDIR": 21, + "SYS_EINVAL": 22, + "SYS_ENFILE": 23, + "SYS_EMFILE": 24, + "SYS_ENOTTY": 25, + "SYS_ETXTBSY": 26, + "SYS_EFBIG": 27, + "SYS_ENOSPC": 28, + "SYS_ESPIPE": 29, + "SYS_EROFS": 30, + "SYS_EMLINK": 31, + "SYS_EPIPE": 32, + "SYS_EDOM": 33, + "SYS_ERANGE": 34, + "SYS_EDEADLK": 35, + "SYS_EDEADLOCK": 35, + "SYS_ENAMETOOLONG": 36, + "SYS_ENOLCK": 37, + "SYS_ENOSYS": 38, + "SYS_ENOTEMPTY": 39, + "SYS_ELOOP": 40, + "SYS_ENOMSG": 42, + "SYS_EIDRM": 43, + "SYS_ECHRNG": 44, + "SYS_EL2NSYNC": 45, + "SYS_EL3HLT": 46, + "SYS_EL3RST": 47, + "SYS_ELNRNG": 48, + "SYS_EUNATCH": 49, + "SYS_ENOCSI": 50, + "SYS_EL2HLT": 51, + "SYS_EBADE": 52, + "SYS_EBADR": 53, + "SYS_EXFULL": 54, + "SYS_ENOANO": 55, + "SYS_EBADRQC": 56, + "SYS_EBADSLT": 57, + "SYS_EBFONT": 59, + "SYS_ENOSTR": 60, + "SYS_ENODATA": 61, + "SYS_ETIME": 62, + "SYS_ENOSR": 63, + "SYS_ENONET": 64, + "SYS_ENOPKG": 65, + "SYS_EREMOTE": 66, + "SYS_ENOLINK": 67, + "SYS_EADV": 68, + "SYS_ESRMNT": 69, + "SYS_ECOMM": 70, + "SYS_EPROTO": 71, + "SYS_EMULTIHOP": 72, + "SYS_EDOTDOT": 73, + "SYS_EBADMSG": 74, + "SYS_EOVERFLOW": 75, + "SYS_ENOTUNIQ": 76, + "SYS_EBADFD": 77, + "SYS_EREMCHG": 78, + "SYS_ELIBACC": 79, + "SYS_ELIBBAD": 80, + "SYS_ELIBSCN": 81, + "SYS_ELIBMAX": 82, + "SYS_ELIBEXEC": 83, + "SYS_EILSEQ": 84, + "SYS_ERESTART": 85, + "SYS_ESTRPIPE": 86, + "SYS_EUSERS": 87, + "SYS_ENOTSOCK": 88, + "SYS_EDESTADDRREQ": 89, + "SYS_EMSGSIZE": 90, + "SYS_EPROTOTYPE": 91, + "SYS_ENOPROTOOPT": 92, + "SYS_EPROTONOSUPPORT": 93, + "SYS_ESOCKTNOSUPPORT": 94, + "SYS_EOPNOTSUPP": 95, + "SYS_ENOTSUP": 95, + "SYS_EPFNOSUPPORT": 96, + "SYS_EAFNOSUPPORT": 97, + "SYS_EADDRINUSE": 98, + "SYS_EADDRNOTAVAIL": 99, + "SYS_ENETDOWN": 100, + "SYS_ENETUNREACH": 101, + "SYS_ENETRESET": 102, + "SYS_ECONNABORTED": 103, + "SYS_ECONNRESET": 104, + "SYS_ENOBUFS": 105, + "SYS_EISCONN": 106, + "SYS_ENOTCONN": 107, + "SYS_ESHUTDOWN": 108, + "SYS_ETOOMANYREFS": 109, + "SYS_ETIMEDOUT": 110, + "SYS_ECONNREFUSED": 111, + "SYS_EHOSTDOWN": 112, + "SYS_EHOSTUNREACH": 113, + "SYS_EALREADY": 114, + "SYS_EINPROGRESS": 115, + "SYS_ESTALE": 116, + "SYS_EUCLEAN": 117, + "SYS_ENOTNAM": 118, + "SYS_ENAVAIL": 119, + "SYS_EISNAM": 120, + "SYS_EREMOTEIO": 121, + "SYS_EDQUOT": 122, + "SYS_ENOMEDIUM": 123, + "SYS_EMEDIUMTYPE": 124, + "SYS_ECANCELED": 125, + "SYS_ENOKEY": 126, + "SYS_EKEYEXPIRED": 127, + "SYS_EKEYREVOKED": 128, + "SYS_EKEYREJECTED": 129, + "SYS_EOWNERDEAD": 130, + "SYS_ENOTRECOVERABLE": 131, + "SYS_ERFKILL": 132, +} + +func (x RemoteSocketServiceError_SystemError) Enum() *RemoteSocketServiceError_SystemError { + p := new(RemoteSocketServiceError_SystemError) + *p = x + return p +} +func (x RemoteSocketServiceError_SystemError) String() string { + return proto.EnumName(RemoteSocketServiceError_SystemError_name, int32(x)) +} +func (x *RemoteSocketServiceError_SystemError) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(RemoteSocketServiceError_SystemError_value, data, "RemoteSocketServiceError_SystemError") + if err != nil { + return err + } + *x = RemoteSocketServiceError_SystemError(value) + return nil +} +func (RemoteSocketServiceError_SystemError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_socket_service_b5f8f233dc327808, []int{0, 1} +} + +type CreateSocketRequest_SocketFamily int32 + +const ( + CreateSocketRequest_IPv4 CreateSocketRequest_SocketFamily = 1 + CreateSocketRequest_IPv6 CreateSocketRequest_SocketFamily = 2 +) + +var CreateSocketRequest_SocketFamily_name = map[int32]string{ + 1: "IPv4", + 2: "IPv6", +} +var CreateSocketRequest_SocketFamily_value = map[string]int32{ + "IPv4": 1, + "IPv6": 2, +} + +func (x CreateSocketRequest_SocketFamily) Enum() *CreateSocketRequest_SocketFamily { + p := new(CreateSocketRequest_SocketFamily) + *p = x + return p +} +func (x CreateSocketRequest_SocketFamily) String() string { + return proto.EnumName(CreateSocketRequest_SocketFamily_name, int32(x)) +} +func (x *CreateSocketRequest_SocketFamily) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(CreateSocketRequest_SocketFamily_value, data, "CreateSocketRequest_SocketFamily") + if err != nil { + return err + } + *x = CreateSocketRequest_SocketFamily(value) + return nil +} +func (CreateSocketRequest_SocketFamily) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_socket_service_b5f8f233dc327808, []int{2, 0} +} + +type CreateSocketRequest_SocketProtocol int32 + +const ( + CreateSocketRequest_TCP CreateSocketRequest_SocketProtocol = 1 + CreateSocketRequest_UDP CreateSocketRequest_SocketProtocol = 2 +) + +var CreateSocketRequest_SocketProtocol_name = map[int32]string{ + 1: "TCP", + 2: "UDP", +} +var CreateSocketRequest_SocketProtocol_value = map[string]int32{ + "TCP": 1, + "UDP": 2, +} + +func (x CreateSocketRequest_SocketProtocol) Enum() *CreateSocketRequest_SocketProtocol { + p := new(CreateSocketRequest_SocketProtocol) + *p = x + return p +} +func (x CreateSocketRequest_SocketProtocol) String() string { + return proto.EnumName(CreateSocketRequest_SocketProtocol_name, int32(x)) +} +func (x *CreateSocketRequest_SocketProtocol) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(CreateSocketRequest_SocketProtocol_value, data, "CreateSocketRequest_SocketProtocol") + if err != nil { + return err + } + *x = CreateSocketRequest_SocketProtocol(value) + return nil +} +func (CreateSocketRequest_SocketProtocol) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_socket_service_b5f8f233dc327808, []int{2, 1} +} + +type SocketOption_SocketOptionLevel int32 + +const ( + SocketOption_SOCKET_SOL_IP SocketOption_SocketOptionLevel = 0 + SocketOption_SOCKET_SOL_SOCKET SocketOption_SocketOptionLevel = 1 + SocketOption_SOCKET_SOL_TCP SocketOption_SocketOptionLevel = 6 + SocketOption_SOCKET_SOL_UDP SocketOption_SocketOptionLevel = 17 +) + +var SocketOption_SocketOptionLevel_name = map[int32]string{ + 0: "SOCKET_SOL_IP", + 1: "SOCKET_SOL_SOCKET", + 6: "SOCKET_SOL_TCP", + 17: "SOCKET_SOL_UDP", +} +var SocketOption_SocketOptionLevel_value = map[string]int32{ + "SOCKET_SOL_IP": 0, + "SOCKET_SOL_SOCKET": 1, + "SOCKET_SOL_TCP": 6, + "SOCKET_SOL_UDP": 17, +} + +func (x SocketOption_SocketOptionLevel) Enum() *SocketOption_SocketOptionLevel { + p := new(SocketOption_SocketOptionLevel) + *p = x + return p +} +func (x SocketOption_SocketOptionLevel) String() string { + return proto.EnumName(SocketOption_SocketOptionLevel_name, int32(x)) +} +func (x *SocketOption_SocketOptionLevel) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(SocketOption_SocketOptionLevel_value, data, "SocketOption_SocketOptionLevel") + if err != nil { + return err + } + *x = SocketOption_SocketOptionLevel(value) + return nil +} +func (SocketOption_SocketOptionLevel) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_socket_service_b5f8f233dc327808, []int{10, 0} +} + +type SocketOption_SocketOptionName int32 + +const ( + SocketOption_SOCKET_SO_DEBUG SocketOption_SocketOptionName = 1 + SocketOption_SOCKET_SO_REUSEADDR SocketOption_SocketOptionName = 2 + SocketOption_SOCKET_SO_TYPE SocketOption_SocketOptionName = 3 + SocketOption_SOCKET_SO_ERROR SocketOption_SocketOptionName = 4 + SocketOption_SOCKET_SO_DONTROUTE SocketOption_SocketOptionName = 5 + SocketOption_SOCKET_SO_BROADCAST SocketOption_SocketOptionName = 6 + SocketOption_SOCKET_SO_SNDBUF SocketOption_SocketOptionName = 7 + SocketOption_SOCKET_SO_RCVBUF SocketOption_SocketOptionName = 8 + SocketOption_SOCKET_SO_KEEPALIVE SocketOption_SocketOptionName = 9 + SocketOption_SOCKET_SO_OOBINLINE SocketOption_SocketOptionName = 10 + SocketOption_SOCKET_SO_LINGER SocketOption_SocketOptionName = 13 + SocketOption_SOCKET_SO_RCVTIMEO SocketOption_SocketOptionName = 20 + SocketOption_SOCKET_SO_SNDTIMEO SocketOption_SocketOptionName = 21 + SocketOption_SOCKET_IP_TOS SocketOption_SocketOptionName = 1 + SocketOption_SOCKET_IP_TTL SocketOption_SocketOptionName = 2 + SocketOption_SOCKET_IP_HDRINCL SocketOption_SocketOptionName = 3 + SocketOption_SOCKET_IP_OPTIONS SocketOption_SocketOptionName = 4 + SocketOption_SOCKET_TCP_NODELAY SocketOption_SocketOptionName = 1 + SocketOption_SOCKET_TCP_MAXSEG SocketOption_SocketOptionName = 2 + SocketOption_SOCKET_TCP_CORK SocketOption_SocketOptionName = 3 + SocketOption_SOCKET_TCP_KEEPIDLE SocketOption_SocketOptionName = 4 + SocketOption_SOCKET_TCP_KEEPINTVL SocketOption_SocketOptionName = 5 + SocketOption_SOCKET_TCP_KEEPCNT SocketOption_SocketOptionName = 6 + SocketOption_SOCKET_TCP_SYNCNT SocketOption_SocketOptionName = 7 + SocketOption_SOCKET_TCP_LINGER2 SocketOption_SocketOptionName = 8 + SocketOption_SOCKET_TCP_DEFER_ACCEPT SocketOption_SocketOptionName = 9 + SocketOption_SOCKET_TCP_WINDOW_CLAMP SocketOption_SocketOptionName = 10 + SocketOption_SOCKET_TCP_INFO SocketOption_SocketOptionName = 11 + SocketOption_SOCKET_TCP_QUICKACK SocketOption_SocketOptionName = 12 +) + +var SocketOption_SocketOptionName_name = map[int32]string{ + 1: "SOCKET_SO_DEBUG", + 2: "SOCKET_SO_REUSEADDR", + 3: "SOCKET_SO_TYPE", + 4: "SOCKET_SO_ERROR", + 5: "SOCKET_SO_DONTROUTE", + 6: "SOCKET_SO_BROADCAST", + 7: "SOCKET_SO_SNDBUF", + 8: "SOCKET_SO_RCVBUF", + 9: "SOCKET_SO_KEEPALIVE", + 10: "SOCKET_SO_OOBINLINE", + 13: "SOCKET_SO_LINGER", + 20: "SOCKET_SO_RCVTIMEO", + 21: "SOCKET_SO_SNDTIMEO", + // Duplicate value: 1: "SOCKET_IP_TOS", + // Duplicate value: 2: "SOCKET_IP_TTL", + // Duplicate value: 3: "SOCKET_IP_HDRINCL", + // Duplicate value: 4: "SOCKET_IP_OPTIONS", + // Duplicate value: 1: "SOCKET_TCP_NODELAY", + // Duplicate value: 2: "SOCKET_TCP_MAXSEG", + // Duplicate value: 3: "SOCKET_TCP_CORK", + // Duplicate value: 4: "SOCKET_TCP_KEEPIDLE", + // Duplicate value: 5: "SOCKET_TCP_KEEPINTVL", + // Duplicate value: 6: "SOCKET_TCP_KEEPCNT", + // Duplicate value: 7: "SOCKET_TCP_SYNCNT", + // Duplicate value: 8: "SOCKET_TCP_LINGER2", + // Duplicate value: 9: "SOCKET_TCP_DEFER_ACCEPT", + // Duplicate value: 10: "SOCKET_TCP_WINDOW_CLAMP", + 11: "SOCKET_TCP_INFO", + 12: "SOCKET_TCP_QUICKACK", +} +var SocketOption_SocketOptionName_value = map[string]int32{ + "SOCKET_SO_DEBUG": 1, + "SOCKET_SO_REUSEADDR": 2, + "SOCKET_SO_TYPE": 3, + "SOCKET_SO_ERROR": 4, + "SOCKET_SO_DONTROUTE": 5, + "SOCKET_SO_BROADCAST": 6, + "SOCKET_SO_SNDBUF": 7, + "SOCKET_SO_RCVBUF": 8, + "SOCKET_SO_KEEPALIVE": 9, + "SOCKET_SO_OOBINLINE": 10, + "SOCKET_SO_LINGER": 13, + "SOCKET_SO_RCVTIMEO": 20, + "SOCKET_SO_SNDTIMEO": 21, + "SOCKET_IP_TOS": 1, + "SOCKET_IP_TTL": 2, + "SOCKET_IP_HDRINCL": 3, + "SOCKET_IP_OPTIONS": 4, + "SOCKET_TCP_NODELAY": 1, + "SOCKET_TCP_MAXSEG": 2, + "SOCKET_TCP_CORK": 3, + "SOCKET_TCP_KEEPIDLE": 4, + "SOCKET_TCP_KEEPINTVL": 5, + "SOCKET_TCP_KEEPCNT": 6, + "SOCKET_TCP_SYNCNT": 7, + "SOCKET_TCP_LINGER2": 8, + "SOCKET_TCP_DEFER_ACCEPT": 9, + "SOCKET_TCP_WINDOW_CLAMP": 10, + "SOCKET_TCP_INFO": 11, + "SOCKET_TCP_QUICKACK": 12, +} + +func (x SocketOption_SocketOptionName) Enum() *SocketOption_SocketOptionName { + p := new(SocketOption_SocketOptionName) + *p = x + return p +} +func (x SocketOption_SocketOptionName) String() string { + return proto.EnumName(SocketOption_SocketOptionName_name, int32(x)) +} +func (x *SocketOption_SocketOptionName) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(SocketOption_SocketOptionName_value, data, "SocketOption_SocketOptionName") + if err != nil { + return err + } + *x = SocketOption_SocketOptionName(value) + return nil +} +func (SocketOption_SocketOptionName) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_socket_service_b5f8f233dc327808, []int{10, 1} +} + +type ShutDownRequest_How int32 + +const ( + ShutDownRequest_SOCKET_SHUT_RD ShutDownRequest_How = 1 + ShutDownRequest_SOCKET_SHUT_WR ShutDownRequest_How = 2 + ShutDownRequest_SOCKET_SHUT_RDWR ShutDownRequest_How = 3 +) + +var ShutDownRequest_How_name = map[int32]string{ + 1: "SOCKET_SHUT_RD", + 2: "SOCKET_SHUT_WR", + 3: "SOCKET_SHUT_RDWR", +} +var ShutDownRequest_How_value = map[string]int32{ + "SOCKET_SHUT_RD": 1, + "SOCKET_SHUT_WR": 2, + "SOCKET_SHUT_RDWR": 3, +} + +func (x ShutDownRequest_How) Enum() *ShutDownRequest_How { + p := new(ShutDownRequest_How) + *p = x + return p +} +func (x ShutDownRequest_How) String() string { + return proto.EnumName(ShutDownRequest_How_name, int32(x)) +} +func (x *ShutDownRequest_How) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(ShutDownRequest_How_value, data, "ShutDownRequest_How") + if err != nil { + return err + } + *x = ShutDownRequest_How(value) + return nil +} +func (ShutDownRequest_How) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_socket_service_b5f8f233dc327808, []int{21, 0} +} + +type ReceiveRequest_Flags int32 + +const ( + ReceiveRequest_MSG_OOB ReceiveRequest_Flags = 1 + ReceiveRequest_MSG_PEEK ReceiveRequest_Flags = 2 +) + +var ReceiveRequest_Flags_name = map[int32]string{ + 1: "MSG_OOB", + 2: "MSG_PEEK", +} +var ReceiveRequest_Flags_value = map[string]int32{ + "MSG_OOB": 1, + "MSG_PEEK": 2, +} + +func (x ReceiveRequest_Flags) Enum() *ReceiveRequest_Flags { + p := new(ReceiveRequest_Flags) + *p = x + return p +} +func (x ReceiveRequest_Flags) String() string { + return proto.EnumName(ReceiveRequest_Flags_name, int32(x)) +} +func (x *ReceiveRequest_Flags) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(ReceiveRequest_Flags_value, data, "ReceiveRequest_Flags") + if err != nil { + return err + } + *x = ReceiveRequest_Flags(value) + return nil +} +func (ReceiveRequest_Flags) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_socket_service_b5f8f233dc327808, []int{27, 0} +} + +type PollEvent_PollEventFlag int32 + +const ( + PollEvent_SOCKET_POLLNONE PollEvent_PollEventFlag = 0 + PollEvent_SOCKET_POLLIN PollEvent_PollEventFlag = 1 + PollEvent_SOCKET_POLLPRI PollEvent_PollEventFlag = 2 + PollEvent_SOCKET_POLLOUT PollEvent_PollEventFlag = 4 + PollEvent_SOCKET_POLLERR PollEvent_PollEventFlag = 8 + PollEvent_SOCKET_POLLHUP PollEvent_PollEventFlag = 16 + PollEvent_SOCKET_POLLNVAL PollEvent_PollEventFlag = 32 + PollEvent_SOCKET_POLLRDNORM PollEvent_PollEventFlag = 64 + PollEvent_SOCKET_POLLRDBAND PollEvent_PollEventFlag = 128 + PollEvent_SOCKET_POLLWRNORM PollEvent_PollEventFlag = 256 + PollEvent_SOCKET_POLLWRBAND PollEvent_PollEventFlag = 512 + PollEvent_SOCKET_POLLMSG PollEvent_PollEventFlag = 1024 + PollEvent_SOCKET_POLLREMOVE PollEvent_PollEventFlag = 4096 + PollEvent_SOCKET_POLLRDHUP PollEvent_PollEventFlag = 8192 +) + +var PollEvent_PollEventFlag_name = map[int32]string{ + 0: "SOCKET_POLLNONE", + 1: "SOCKET_POLLIN", + 2: "SOCKET_POLLPRI", + 4: "SOCKET_POLLOUT", + 8: "SOCKET_POLLERR", + 16: "SOCKET_POLLHUP", + 32: "SOCKET_POLLNVAL", + 64: "SOCKET_POLLRDNORM", + 128: "SOCKET_POLLRDBAND", + 256: "SOCKET_POLLWRNORM", + 512: "SOCKET_POLLWRBAND", + 1024: "SOCKET_POLLMSG", + 4096: "SOCKET_POLLREMOVE", + 8192: "SOCKET_POLLRDHUP", +} +var PollEvent_PollEventFlag_value = map[string]int32{ + "SOCKET_POLLNONE": 0, + "SOCKET_POLLIN": 1, + "SOCKET_POLLPRI": 2, + "SOCKET_POLLOUT": 4, + "SOCKET_POLLERR": 8, + "SOCKET_POLLHUP": 16, + "SOCKET_POLLNVAL": 32, + "SOCKET_POLLRDNORM": 64, + "SOCKET_POLLRDBAND": 128, + "SOCKET_POLLWRNORM": 256, + "SOCKET_POLLWRBAND": 512, + "SOCKET_POLLMSG": 1024, + "SOCKET_POLLREMOVE": 4096, + "SOCKET_POLLRDHUP": 8192, +} + +func (x PollEvent_PollEventFlag) Enum() *PollEvent_PollEventFlag { + p := new(PollEvent_PollEventFlag) + *p = x + return p +} +func (x PollEvent_PollEventFlag) String() string { + return proto.EnumName(PollEvent_PollEventFlag_name, int32(x)) +} +func (x *PollEvent_PollEventFlag) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(PollEvent_PollEventFlag_value, data, "PollEvent_PollEventFlag") + if err != nil { + return err + } + *x = PollEvent_PollEventFlag(value) + return nil +} +func (PollEvent_PollEventFlag) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_socket_service_b5f8f233dc327808, []int{29, 0} +} + +type ResolveReply_ErrorCode int32 + +const ( + ResolveReply_SOCKET_EAI_ADDRFAMILY ResolveReply_ErrorCode = 1 + ResolveReply_SOCKET_EAI_AGAIN ResolveReply_ErrorCode = 2 + ResolveReply_SOCKET_EAI_BADFLAGS ResolveReply_ErrorCode = 3 + ResolveReply_SOCKET_EAI_FAIL ResolveReply_ErrorCode = 4 + ResolveReply_SOCKET_EAI_FAMILY ResolveReply_ErrorCode = 5 + ResolveReply_SOCKET_EAI_MEMORY ResolveReply_ErrorCode = 6 + ResolveReply_SOCKET_EAI_NODATA ResolveReply_ErrorCode = 7 + ResolveReply_SOCKET_EAI_NONAME ResolveReply_ErrorCode = 8 + ResolveReply_SOCKET_EAI_SERVICE ResolveReply_ErrorCode = 9 + ResolveReply_SOCKET_EAI_SOCKTYPE ResolveReply_ErrorCode = 10 + ResolveReply_SOCKET_EAI_SYSTEM ResolveReply_ErrorCode = 11 + ResolveReply_SOCKET_EAI_BADHINTS ResolveReply_ErrorCode = 12 + ResolveReply_SOCKET_EAI_PROTOCOL ResolveReply_ErrorCode = 13 + ResolveReply_SOCKET_EAI_OVERFLOW ResolveReply_ErrorCode = 14 + ResolveReply_SOCKET_EAI_MAX ResolveReply_ErrorCode = 15 +) + +var ResolveReply_ErrorCode_name = map[int32]string{ + 1: "SOCKET_EAI_ADDRFAMILY", + 2: "SOCKET_EAI_AGAIN", + 3: "SOCKET_EAI_BADFLAGS", + 4: "SOCKET_EAI_FAIL", + 5: "SOCKET_EAI_FAMILY", + 6: "SOCKET_EAI_MEMORY", + 7: "SOCKET_EAI_NODATA", + 8: "SOCKET_EAI_NONAME", + 9: "SOCKET_EAI_SERVICE", + 10: "SOCKET_EAI_SOCKTYPE", + 11: "SOCKET_EAI_SYSTEM", + 12: "SOCKET_EAI_BADHINTS", + 13: "SOCKET_EAI_PROTOCOL", + 14: "SOCKET_EAI_OVERFLOW", + 15: "SOCKET_EAI_MAX", +} +var ResolveReply_ErrorCode_value = map[string]int32{ + "SOCKET_EAI_ADDRFAMILY": 1, + "SOCKET_EAI_AGAIN": 2, + "SOCKET_EAI_BADFLAGS": 3, + "SOCKET_EAI_FAIL": 4, + "SOCKET_EAI_FAMILY": 5, + "SOCKET_EAI_MEMORY": 6, + "SOCKET_EAI_NODATA": 7, + "SOCKET_EAI_NONAME": 8, + "SOCKET_EAI_SERVICE": 9, + "SOCKET_EAI_SOCKTYPE": 10, + "SOCKET_EAI_SYSTEM": 11, + "SOCKET_EAI_BADHINTS": 12, + "SOCKET_EAI_PROTOCOL": 13, + "SOCKET_EAI_OVERFLOW": 14, + "SOCKET_EAI_MAX": 15, +} + +func (x ResolveReply_ErrorCode) Enum() *ResolveReply_ErrorCode { + p := new(ResolveReply_ErrorCode) + *p = x + return p +} +func (x ResolveReply_ErrorCode) String() string { + return proto.EnumName(ResolveReply_ErrorCode_name, int32(x)) +} +func (x *ResolveReply_ErrorCode) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(ResolveReply_ErrorCode_value, data, "ResolveReply_ErrorCode") + if err != nil { + return err + } + *x = ResolveReply_ErrorCode(value) + return nil +} +func (ResolveReply_ErrorCode) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_socket_service_b5f8f233dc327808, []int{33, 0} +} + +type RemoteSocketServiceError struct { + SystemError *int32 `protobuf:"varint,1,opt,name=system_error,json=systemError,def=0" json:"system_error,omitempty"` + ErrorDetail *string `protobuf:"bytes,2,opt,name=error_detail,json=errorDetail" json:"error_detail,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RemoteSocketServiceError) Reset() { *m = RemoteSocketServiceError{} } +func (m *RemoteSocketServiceError) String() string { return proto.CompactTextString(m) } +func (*RemoteSocketServiceError) ProtoMessage() {} +func (*RemoteSocketServiceError) Descriptor() ([]byte, []int) { + return fileDescriptor_socket_service_b5f8f233dc327808, []int{0} +} +func (m *RemoteSocketServiceError) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RemoteSocketServiceError.Unmarshal(m, b) +} +func (m *RemoteSocketServiceError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RemoteSocketServiceError.Marshal(b, m, deterministic) +} +func (dst *RemoteSocketServiceError) XXX_Merge(src proto.Message) { + xxx_messageInfo_RemoteSocketServiceError.Merge(dst, src) +} +func (m *RemoteSocketServiceError) XXX_Size() int { + return xxx_messageInfo_RemoteSocketServiceError.Size(m) +} +func (m *RemoteSocketServiceError) XXX_DiscardUnknown() { + xxx_messageInfo_RemoteSocketServiceError.DiscardUnknown(m) +} + +var xxx_messageInfo_RemoteSocketServiceError proto.InternalMessageInfo + +const Default_RemoteSocketServiceError_SystemError int32 = 0 + +func (m *RemoteSocketServiceError) GetSystemError() int32 { + if m != nil && m.SystemError != nil { + return *m.SystemError + } + return Default_RemoteSocketServiceError_SystemError +} + +func (m *RemoteSocketServiceError) GetErrorDetail() string { + if m != nil && m.ErrorDetail != nil { + return *m.ErrorDetail + } + return "" +} + +type AddressPort struct { + Port *int32 `protobuf:"varint,1,req,name=port" json:"port,omitempty"` + PackedAddress []byte `protobuf:"bytes,2,opt,name=packed_address,json=packedAddress" json:"packed_address,omitempty"` + HostnameHint *string `protobuf:"bytes,3,opt,name=hostname_hint,json=hostnameHint" json:"hostname_hint,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AddressPort) Reset() { *m = AddressPort{} } +func (m *AddressPort) String() string { return proto.CompactTextString(m) } +func (*AddressPort) ProtoMessage() {} +func (*AddressPort) Descriptor() ([]byte, []int) { + return fileDescriptor_socket_service_b5f8f233dc327808, []int{1} +} +func (m *AddressPort) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AddressPort.Unmarshal(m, b) +} +func (m *AddressPort) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AddressPort.Marshal(b, m, deterministic) +} +func (dst *AddressPort) XXX_Merge(src proto.Message) { + xxx_messageInfo_AddressPort.Merge(dst, src) +} +func (m *AddressPort) XXX_Size() int { + return xxx_messageInfo_AddressPort.Size(m) +} +func (m *AddressPort) XXX_DiscardUnknown() { + xxx_messageInfo_AddressPort.DiscardUnknown(m) +} + +var xxx_messageInfo_AddressPort proto.InternalMessageInfo + +func (m *AddressPort) GetPort() int32 { + if m != nil && m.Port != nil { + return *m.Port + } + return 0 +} + +func (m *AddressPort) GetPackedAddress() []byte { + if m != nil { + return m.PackedAddress + } + return nil +} + +func (m *AddressPort) GetHostnameHint() string { + if m != nil && m.HostnameHint != nil { + return *m.HostnameHint + } + return "" +} + +type CreateSocketRequest struct { + Family *CreateSocketRequest_SocketFamily `protobuf:"varint,1,req,name=family,enum=appengine.CreateSocketRequest_SocketFamily" json:"family,omitempty"` + Protocol *CreateSocketRequest_SocketProtocol `protobuf:"varint,2,req,name=protocol,enum=appengine.CreateSocketRequest_SocketProtocol" json:"protocol,omitempty"` + SocketOptions []*SocketOption `protobuf:"bytes,3,rep,name=socket_options,json=socketOptions" json:"socket_options,omitempty"` + ProxyExternalIp *AddressPort `protobuf:"bytes,4,opt,name=proxy_external_ip,json=proxyExternalIp" json:"proxy_external_ip,omitempty"` + ListenBacklog *int32 `protobuf:"varint,5,opt,name=listen_backlog,json=listenBacklog,def=0" json:"listen_backlog,omitempty"` + RemoteIp *AddressPort `protobuf:"bytes,6,opt,name=remote_ip,json=remoteIp" json:"remote_ip,omitempty"` + AppId *string `protobuf:"bytes,9,opt,name=app_id,json=appId" json:"app_id,omitempty"` + ProjectId *int64 `protobuf:"varint,10,opt,name=project_id,json=projectId" json:"project_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CreateSocketRequest) Reset() { *m = CreateSocketRequest{} } +func (m *CreateSocketRequest) String() string { return proto.CompactTextString(m) } +func (*CreateSocketRequest) ProtoMessage() {} +func (*CreateSocketRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_socket_service_b5f8f233dc327808, []int{2} +} +func (m *CreateSocketRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreateSocketRequest.Unmarshal(m, b) +} +func (m *CreateSocketRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreateSocketRequest.Marshal(b, m, deterministic) +} +func (dst *CreateSocketRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateSocketRequest.Merge(dst, src) +} +func (m *CreateSocketRequest) XXX_Size() int { + return xxx_messageInfo_CreateSocketRequest.Size(m) +} +func (m *CreateSocketRequest) XXX_DiscardUnknown() { + xxx_messageInfo_CreateSocketRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_CreateSocketRequest proto.InternalMessageInfo + +const Default_CreateSocketRequest_ListenBacklog int32 = 0 + +func (m *CreateSocketRequest) GetFamily() CreateSocketRequest_SocketFamily { + if m != nil && m.Family != nil { + return *m.Family + } + return CreateSocketRequest_IPv4 +} + +func (m *CreateSocketRequest) GetProtocol() CreateSocketRequest_SocketProtocol { + if m != nil && m.Protocol != nil { + return *m.Protocol + } + return CreateSocketRequest_TCP +} + +func (m *CreateSocketRequest) GetSocketOptions() []*SocketOption { + if m != nil { + return m.SocketOptions + } + return nil +} + +func (m *CreateSocketRequest) GetProxyExternalIp() *AddressPort { + if m != nil { + return m.ProxyExternalIp + } + return nil +} + +func (m *CreateSocketRequest) GetListenBacklog() int32 { + if m != nil && m.ListenBacklog != nil { + return *m.ListenBacklog + } + return Default_CreateSocketRequest_ListenBacklog +} + +func (m *CreateSocketRequest) GetRemoteIp() *AddressPort { + if m != nil { + return m.RemoteIp + } + return nil +} + +func (m *CreateSocketRequest) GetAppId() string { + if m != nil && m.AppId != nil { + return *m.AppId + } + return "" +} + +func (m *CreateSocketRequest) GetProjectId() int64 { + if m != nil && m.ProjectId != nil { + return *m.ProjectId + } + return 0 +} + +type CreateSocketReply struct { + SocketDescriptor *string `protobuf:"bytes,1,opt,name=socket_descriptor,json=socketDescriptor" json:"socket_descriptor,omitempty"` + ServerAddress *AddressPort `protobuf:"bytes,3,opt,name=server_address,json=serverAddress" json:"server_address,omitempty"` + ProxyExternalIp *AddressPort `protobuf:"bytes,4,opt,name=proxy_external_ip,json=proxyExternalIp" json:"proxy_external_ip,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CreateSocketReply) Reset() { *m = CreateSocketReply{} } +func (m *CreateSocketReply) String() string { return proto.CompactTextString(m) } +func (*CreateSocketReply) ProtoMessage() {} +func (*CreateSocketReply) Descriptor() ([]byte, []int) { + return fileDescriptor_socket_service_b5f8f233dc327808, []int{3} +} + +var extRange_CreateSocketReply = []proto.ExtensionRange{ + {Start: 1000, End: 536870911}, +} + +func (*CreateSocketReply) ExtensionRangeArray() []proto.ExtensionRange { + return extRange_CreateSocketReply +} +func (m *CreateSocketReply) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreateSocketReply.Unmarshal(m, b) +} +func (m *CreateSocketReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreateSocketReply.Marshal(b, m, deterministic) +} +func (dst *CreateSocketReply) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateSocketReply.Merge(dst, src) +} +func (m *CreateSocketReply) XXX_Size() int { + return xxx_messageInfo_CreateSocketReply.Size(m) +} +func (m *CreateSocketReply) XXX_DiscardUnknown() { + xxx_messageInfo_CreateSocketReply.DiscardUnknown(m) +} + +var xxx_messageInfo_CreateSocketReply proto.InternalMessageInfo + +func (m *CreateSocketReply) GetSocketDescriptor() string { + if m != nil && m.SocketDescriptor != nil { + return *m.SocketDescriptor + } + return "" +} + +func (m *CreateSocketReply) GetServerAddress() *AddressPort { + if m != nil { + return m.ServerAddress + } + return nil +} + +func (m *CreateSocketReply) GetProxyExternalIp() *AddressPort { + if m != nil { + return m.ProxyExternalIp + } + return nil +} + +type BindRequest struct { + SocketDescriptor *string `protobuf:"bytes,1,req,name=socket_descriptor,json=socketDescriptor" json:"socket_descriptor,omitempty"` + ProxyExternalIp *AddressPort `protobuf:"bytes,2,req,name=proxy_external_ip,json=proxyExternalIp" json:"proxy_external_ip,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BindRequest) Reset() { *m = BindRequest{} } +func (m *BindRequest) String() string { return proto.CompactTextString(m) } +func (*BindRequest) ProtoMessage() {} +func (*BindRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_socket_service_b5f8f233dc327808, []int{4} +} +func (m *BindRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BindRequest.Unmarshal(m, b) +} +func (m *BindRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BindRequest.Marshal(b, m, deterministic) +} +func (dst *BindRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_BindRequest.Merge(dst, src) +} +func (m *BindRequest) XXX_Size() int { + return xxx_messageInfo_BindRequest.Size(m) +} +func (m *BindRequest) XXX_DiscardUnknown() { + xxx_messageInfo_BindRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_BindRequest proto.InternalMessageInfo + +func (m *BindRequest) GetSocketDescriptor() string { + if m != nil && m.SocketDescriptor != nil { + return *m.SocketDescriptor + } + return "" +} + +func (m *BindRequest) GetProxyExternalIp() *AddressPort { + if m != nil { + return m.ProxyExternalIp + } + return nil +} + +type BindReply struct { + ProxyExternalIp *AddressPort `protobuf:"bytes,1,opt,name=proxy_external_ip,json=proxyExternalIp" json:"proxy_external_ip,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BindReply) Reset() { *m = BindReply{} } +func (m *BindReply) String() string { return proto.CompactTextString(m) } +func (*BindReply) ProtoMessage() {} +func (*BindReply) Descriptor() ([]byte, []int) { + return fileDescriptor_socket_service_b5f8f233dc327808, []int{5} +} +func (m *BindReply) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BindReply.Unmarshal(m, b) +} +func (m *BindReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BindReply.Marshal(b, m, deterministic) +} +func (dst *BindReply) XXX_Merge(src proto.Message) { + xxx_messageInfo_BindReply.Merge(dst, src) +} +func (m *BindReply) XXX_Size() int { + return xxx_messageInfo_BindReply.Size(m) +} +func (m *BindReply) XXX_DiscardUnknown() { + xxx_messageInfo_BindReply.DiscardUnknown(m) +} + +var xxx_messageInfo_BindReply proto.InternalMessageInfo + +func (m *BindReply) GetProxyExternalIp() *AddressPort { + if m != nil { + return m.ProxyExternalIp + } + return nil +} + +type GetSocketNameRequest struct { + SocketDescriptor *string `protobuf:"bytes,1,req,name=socket_descriptor,json=socketDescriptor" json:"socket_descriptor,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetSocketNameRequest) Reset() { *m = GetSocketNameRequest{} } +func (m *GetSocketNameRequest) String() string { return proto.CompactTextString(m) } +func (*GetSocketNameRequest) ProtoMessage() {} +func (*GetSocketNameRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_socket_service_b5f8f233dc327808, []int{6} +} +func (m *GetSocketNameRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetSocketNameRequest.Unmarshal(m, b) +} +func (m *GetSocketNameRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetSocketNameRequest.Marshal(b, m, deterministic) +} +func (dst *GetSocketNameRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetSocketNameRequest.Merge(dst, src) +} +func (m *GetSocketNameRequest) XXX_Size() int { + return xxx_messageInfo_GetSocketNameRequest.Size(m) +} +func (m *GetSocketNameRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetSocketNameRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetSocketNameRequest proto.InternalMessageInfo + +func (m *GetSocketNameRequest) GetSocketDescriptor() string { + if m != nil && m.SocketDescriptor != nil { + return *m.SocketDescriptor + } + return "" +} + +type GetSocketNameReply struct { + ProxyExternalIp *AddressPort `protobuf:"bytes,2,opt,name=proxy_external_ip,json=proxyExternalIp" json:"proxy_external_ip,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetSocketNameReply) Reset() { *m = GetSocketNameReply{} } +func (m *GetSocketNameReply) String() string { return proto.CompactTextString(m) } +func (*GetSocketNameReply) ProtoMessage() {} +func (*GetSocketNameReply) Descriptor() ([]byte, []int) { + return fileDescriptor_socket_service_b5f8f233dc327808, []int{7} +} +func (m *GetSocketNameReply) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetSocketNameReply.Unmarshal(m, b) +} +func (m *GetSocketNameReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetSocketNameReply.Marshal(b, m, deterministic) +} +func (dst *GetSocketNameReply) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetSocketNameReply.Merge(dst, src) +} +func (m *GetSocketNameReply) XXX_Size() int { + return xxx_messageInfo_GetSocketNameReply.Size(m) +} +func (m *GetSocketNameReply) XXX_DiscardUnknown() { + xxx_messageInfo_GetSocketNameReply.DiscardUnknown(m) +} + +var xxx_messageInfo_GetSocketNameReply proto.InternalMessageInfo + +func (m *GetSocketNameReply) GetProxyExternalIp() *AddressPort { + if m != nil { + return m.ProxyExternalIp + } + return nil +} + +type GetPeerNameRequest struct { + SocketDescriptor *string `protobuf:"bytes,1,req,name=socket_descriptor,json=socketDescriptor" json:"socket_descriptor,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetPeerNameRequest) Reset() { *m = GetPeerNameRequest{} } +func (m *GetPeerNameRequest) String() string { return proto.CompactTextString(m) } +func (*GetPeerNameRequest) ProtoMessage() {} +func (*GetPeerNameRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_socket_service_b5f8f233dc327808, []int{8} +} +func (m *GetPeerNameRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetPeerNameRequest.Unmarshal(m, b) +} +func (m *GetPeerNameRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetPeerNameRequest.Marshal(b, m, deterministic) +} +func (dst *GetPeerNameRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetPeerNameRequest.Merge(dst, src) +} +func (m *GetPeerNameRequest) XXX_Size() int { + return xxx_messageInfo_GetPeerNameRequest.Size(m) +} +func (m *GetPeerNameRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetPeerNameRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetPeerNameRequest proto.InternalMessageInfo + +func (m *GetPeerNameRequest) GetSocketDescriptor() string { + if m != nil && m.SocketDescriptor != nil { + return *m.SocketDescriptor + } + return "" +} + +type GetPeerNameReply struct { + PeerIp *AddressPort `protobuf:"bytes,2,opt,name=peer_ip,json=peerIp" json:"peer_ip,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetPeerNameReply) Reset() { *m = GetPeerNameReply{} } +func (m *GetPeerNameReply) String() string { return proto.CompactTextString(m) } +func (*GetPeerNameReply) ProtoMessage() {} +func (*GetPeerNameReply) Descriptor() ([]byte, []int) { + return fileDescriptor_socket_service_b5f8f233dc327808, []int{9} +} +func (m *GetPeerNameReply) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetPeerNameReply.Unmarshal(m, b) +} +func (m *GetPeerNameReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetPeerNameReply.Marshal(b, m, deterministic) +} +func (dst *GetPeerNameReply) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetPeerNameReply.Merge(dst, src) +} +func (m *GetPeerNameReply) XXX_Size() int { + return xxx_messageInfo_GetPeerNameReply.Size(m) +} +func (m *GetPeerNameReply) XXX_DiscardUnknown() { + xxx_messageInfo_GetPeerNameReply.DiscardUnknown(m) +} + +var xxx_messageInfo_GetPeerNameReply proto.InternalMessageInfo + +func (m *GetPeerNameReply) GetPeerIp() *AddressPort { + if m != nil { + return m.PeerIp + } + return nil +} + +type SocketOption struct { + Level *SocketOption_SocketOptionLevel `protobuf:"varint,1,req,name=level,enum=appengine.SocketOption_SocketOptionLevel" json:"level,omitempty"` + Option *SocketOption_SocketOptionName `protobuf:"varint,2,req,name=option,enum=appengine.SocketOption_SocketOptionName" json:"option,omitempty"` + Value []byte `protobuf:"bytes,3,req,name=value" json:"value,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SocketOption) Reset() { *m = SocketOption{} } +func (m *SocketOption) String() string { return proto.CompactTextString(m) } +func (*SocketOption) ProtoMessage() {} +func (*SocketOption) Descriptor() ([]byte, []int) { + return fileDescriptor_socket_service_b5f8f233dc327808, []int{10} +} +func (m *SocketOption) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SocketOption.Unmarshal(m, b) +} +func (m *SocketOption) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SocketOption.Marshal(b, m, deterministic) +} +func (dst *SocketOption) XXX_Merge(src proto.Message) { + xxx_messageInfo_SocketOption.Merge(dst, src) +} +func (m *SocketOption) XXX_Size() int { + return xxx_messageInfo_SocketOption.Size(m) +} +func (m *SocketOption) XXX_DiscardUnknown() { + xxx_messageInfo_SocketOption.DiscardUnknown(m) +} + +var xxx_messageInfo_SocketOption proto.InternalMessageInfo + +func (m *SocketOption) GetLevel() SocketOption_SocketOptionLevel { + if m != nil && m.Level != nil { + return *m.Level + } + return SocketOption_SOCKET_SOL_IP +} + +func (m *SocketOption) GetOption() SocketOption_SocketOptionName { + if m != nil && m.Option != nil { + return *m.Option + } + return SocketOption_SOCKET_SO_DEBUG +} + +func (m *SocketOption) GetValue() []byte { + if m != nil { + return m.Value + } + return nil +} + +type SetSocketOptionsRequest struct { + SocketDescriptor *string `protobuf:"bytes,1,req,name=socket_descriptor,json=socketDescriptor" json:"socket_descriptor,omitempty"` + Options []*SocketOption `protobuf:"bytes,2,rep,name=options" json:"options,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SetSocketOptionsRequest) Reset() { *m = SetSocketOptionsRequest{} } +func (m *SetSocketOptionsRequest) String() string { return proto.CompactTextString(m) } +func (*SetSocketOptionsRequest) ProtoMessage() {} +func (*SetSocketOptionsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_socket_service_b5f8f233dc327808, []int{11} +} +func (m *SetSocketOptionsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SetSocketOptionsRequest.Unmarshal(m, b) +} +func (m *SetSocketOptionsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SetSocketOptionsRequest.Marshal(b, m, deterministic) +} +func (dst *SetSocketOptionsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_SetSocketOptionsRequest.Merge(dst, src) +} +func (m *SetSocketOptionsRequest) XXX_Size() int { + return xxx_messageInfo_SetSocketOptionsRequest.Size(m) +} +func (m *SetSocketOptionsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_SetSocketOptionsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_SetSocketOptionsRequest proto.InternalMessageInfo + +func (m *SetSocketOptionsRequest) GetSocketDescriptor() string { + if m != nil && m.SocketDescriptor != nil { + return *m.SocketDescriptor + } + return "" +} + +func (m *SetSocketOptionsRequest) GetOptions() []*SocketOption { + if m != nil { + return m.Options + } + return nil +} + +type SetSocketOptionsReply struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SetSocketOptionsReply) Reset() { *m = SetSocketOptionsReply{} } +func (m *SetSocketOptionsReply) String() string { return proto.CompactTextString(m) } +func (*SetSocketOptionsReply) ProtoMessage() {} +func (*SetSocketOptionsReply) Descriptor() ([]byte, []int) { + return fileDescriptor_socket_service_b5f8f233dc327808, []int{12} +} +func (m *SetSocketOptionsReply) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SetSocketOptionsReply.Unmarshal(m, b) +} +func (m *SetSocketOptionsReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SetSocketOptionsReply.Marshal(b, m, deterministic) +} +func (dst *SetSocketOptionsReply) XXX_Merge(src proto.Message) { + xxx_messageInfo_SetSocketOptionsReply.Merge(dst, src) +} +func (m *SetSocketOptionsReply) XXX_Size() int { + return xxx_messageInfo_SetSocketOptionsReply.Size(m) +} +func (m *SetSocketOptionsReply) XXX_DiscardUnknown() { + xxx_messageInfo_SetSocketOptionsReply.DiscardUnknown(m) +} + +var xxx_messageInfo_SetSocketOptionsReply proto.InternalMessageInfo + +type GetSocketOptionsRequest struct { + SocketDescriptor *string `protobuf:"bytes,1,req,name=socket_descriptor,json=socketDescriptor" json:"socket_descriptor,omitempty"` + Options []*SocketOption `protobuf:"bytes,2,rep,name=options" json:"options,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetSocketOptionsRequest) Reset() { *m = GetSocketOptionsRequest{} } +func (m *GetSocketOptionsRequest) String() string { return proto.CompactTextString(m) } +func (*GetSocketOptionsRequest) ProtoMessage() {} +func (*GetSocketOptionsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_socket_service_b5f8f233dc327808, []int{13} +} +func (m *GetSocketOptionsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetSocketOptionsRequest.Unmarshal(m, b) +} +func (m *GetSocketOptionsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetSocketOptionsRequest.Marshal(b, m, deterministic) +} +func (dst *GetSocketOptionsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetSocketOptionsRequest.Merge(dst, src) +} +func (m *GetSocketOptionsRequest) XXX_Size() int { + return xxx_messageInfo_GetSocketOptionsRequest.Size(m) +} +func (m *GetSocketOptionsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetSocketOptionsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetSocketOptionsRequest proto.InternalMessageInfo + +func (m *GetSocketOptionsRequest) GetSocketDescriptor() string { + if m != nil && m.SocketDescriptor != nil { + return *m.SocketDescriptor + } + return "" +} + +func (m *GetSocketOptionsRequest) GetOptions() []*SocketOption { + if m != nil { + return m.Options + } + return nil +} + +type GetSocketOptionsReply struct { + Options []*SocketOption `protobuf:"bytes,2,rep,name=options" json:"options,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetSocketOptionsReply) Reset() { *m = GetSocketOptionsReply{} } +func (m *GetSocketOptionsReply) String() string { return proto.CompactTextString(m) } +func (*GetSocketOptionsReply) ProtoMessage() {} +func (*GetSocketOptionsReply) Descriptor() ([]byte, []int) { + return fileDescriptor_socket_service_b5f8f233dc327808, []int{14} +} +func (m *GetSocketOptionsReply) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetSocketOptionsReply.Unmarshal(m, b) +} +func (m *GetSocketOptionsReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetSocketOptionsReply.Marshal(b, m, deterministic) +} +func (dst *GetSocketOptionsReply) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetSocketOptionsReply.Merge(dst, src) +} +func (m *GetSocketOptionsReply) XXX_Size() int { + return xxx_messageInfo_GetSocketOptionsReply.Size(m) +} +func (m *GetSocketOptionsReply) XXX_DiscardUnknown() { + xxx_messageInfo_GetSocketOptionsReply.DiscardUnknown(m) +} + +var xxx_messageInfo_GetSocketOptionsReply proto.InternalMessageInfo + +func (m *GetSocketOptionsReply) GetOptions() []*SocketOption { + if m != nil { + return m.Options + } + return nil +} + +type ConnectRequest struct { + SocketDescriptor *string `protobuf:"bytes,1,req,name=socket_descriptor,json=socketDescriptor" json:"socket_descriptor,omitempty"` + RemoteIp *AddressPort `protobuf:"bytes,2,req,name=remote_ip,json=remoteIp" json:"remote_ip,omitempty"` + TimeoutSeconds *float64 `protobuf:"fixed64,3,opt,name=timeout_seconds,json=timeoutSeconds,def=-1" json:"timeout_seconds,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ConnectRequest) Reset() { *m = ConnectRequest{} } +func (m *ConnectRequest) String() string { return proto.CompactTextString(m) } +func (*ConnectRequest) ProtoMessage() {} +func (*ConnectRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_socket_service_b5f8f233dc327808, []int{15} +} +func (m *ConnectRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ConnectRequest.Unmarshal(m, b) +} +func (m *ConnectRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ConnectRequest.Marshal(b, m, deterministic) +} +func (dst *ConnectRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ConnectRequest.Merge(dst, src) +} +func (m *ConnectRequest) XXX_Size() int { + return xxx_messageInfo_ConnectRequest.Size(m) +} +func (m *ConnectRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ConnectRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ConnectRequest proto.InternalMessageInfo + +const Default_ConnectRequest_TimeoutSeconds float64 = -1 + +func (m *ConnectRequest) GetSocketDescriptor() string { + if m != nil && m.SocketDescriptor != nil { + return *m.SocketDescriptor + } + return "" +} + +func (m *ConnectRequest) GetRemoteIp() *AddressPort { + if m != nil { + return m.RemoteIp + } + return nil +} + +func (m *ConnectRequest) GetTimeoutSeconds() float64 { + if m != nil && m.TimeoutSeconds != nil { + return *m.TimeoutSeconds + } + return Default_ConnectRequest_TimeoutSeconds +} + +type ConnectReply struct { + ProxyExternalIp *AddressPort `protobuf:"bytes,1,opt,name=proxy_external_ip,json=proxyExternalIp" json:"proxy_external_ip,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + proto.XXX_InternalExtensions `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ConnectReply) Reset() { *m = ConnectReply{} } +func (m *ConnectReply) String() string { return proto.CompactTextString(m) } +func (*ConnectReply) ProtoMessage() {} +func (*ConnectReply) Descriptor() ([]byte, []int) { + return fileDescriptor_socket_service_b5f8f233dc327808, []int{16} +} + +var extRange_ConnectReply = []proto.ExtensionRange{ + {Start: 1000, End: 536870911}, +} + +func (*ConnectReply) ExtensionRangeArray() []proto.ExtensionRange { + return extRange_ConnectReply +} +func (m *ConnectReply) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ConnectReply.Unmarshal(m, b) +} +func (m *ConnectReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ConnectReply.Marshal(b, m, deterministic) +} +func (dst *ConnectReply) XXX_Merge(src proto.Message) { + xxx_messageInfo_ConnectReply.Merge(dst, src) +} +func (m *ConnectReply) XXX_Size() int { + return xxx_messageInfo_ConnectReply.Size(m) +} +func (m *ConnectReply) XXX_DiscardUnknown() { + xxx_messageInfo_ConnectReply.DiscardUnknown(m) +} + +var xxx_messageInfo_ConnectReply proto.InternalMessageInfo + +func (m *ConnectReply) GetProxyExternalIp() *AddressPort { + if m != nil { + return m.ProxyExternalIp + } + return nil +} + +type ListenRequest struct { + SocketDescriptor *string `protobuf:"bytes,1,req,name=socket_descriptor,json=socketDescriptor" json:"socket_descriptor,omitempty"` + Backlog *int32 `protobuf:"varint,2,req,name=backlog" json:"backlog,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListenRequest) Reset() { *m = ListenRequest{} } +func (m *ListenRequest) String() string { return proto.CompactTextString(m) } +func (*ListenRequest) ProtoMessage() {} +func (*ListenRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_socket_service_b5f8f233dc327808, []int{17} +} +func (m *ListenRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListenRequest.Unmarshal(m, b) +} +func (m *ListenRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListenRequest.Marshal(b, m, deterministic) +} +func (dst *ListenRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListenRequest.Merge(dst, src) +} +func (m *ListenRequest) XXX_Size() int { + return xxx_messageInfo_ListenRequest.Size(m) +} +func (m *ListenRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ListenRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ListenRequest proto.InternalMessageInfo + +func (m *ListenRequest) GetSocketDescriptor() string { + if m != nil && m.SocketDescriptor != nil { + return *m.SocketDescriptor + } + return "" +} + +func (m *ListenRequest) GetBacklog() int32 { + if m != nil && m.Backlog != nil { + return *m.Backlog + } + return 0 +} + +type ListenReply struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListenReply) Reset() { *m = ListenReply{} } +func (m *ListenReply) String() string { return proto.CompactTextString(m) } +func (*ListenReply) ProtoMessage() {} +func (*ListenReply) Descriptor() ([]byte, []int) { + return fileDescriptor_socket_service_b5f8f233dc327808, []int{18} +} +func (m *ListenReply) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListenReply.Unmarshal(m, b) +} +func (m *ListenReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListenReply.Marshal(b, m, deterministic) +} +func (dst *ListenReply) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListenReply.Merge(dst, src) +} +func (m *ListenReply) XXX_Size() int { + return xxx_messageInfo_ListenReply.Size(m) +} +func (m *ListenReply) XXX_DiscardUnknown() { + xxx_messageInfo_ListenReply.DiscardUnknown(m) +} + +var xxx_messageInfo_ListenReply proto.InternalMessageInfo + +type AcceptRequest struct { + SocketDescriptor *string `protobuf:"bytes,1,req,name=socket_descriptor,json=socketDescriptor" json:"socket_descriptor,omitempty"` + TimeoutSeconds *float64 `protobuf:"fixed64,2,opt,name=timeout_seconds,json=timeoutSeconds,def=-1" json:"timeout_seconds,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AcceptRequest) Reset() { *m = AcceptRequest{} } +func (m *AcceptRequest) String() string { return proto.CompactTextString(m) } +func (*AcceptRequest) ProtoMessage() {} +func (*AcceptRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_socket_service_b5f8f233dc327808, []int{19} +} +func (m *AcceptRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AcceptRequest.Unmarshal(m, b) +} +func (m *AcceptRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AcceptRequest.Marshal(b, m, deterministic) +} +func (dst *AcceptRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_AcceptRequest.Merge(dst, src) +} +func (m *AcceptRequest) XXX_Size() int { + return xxx_messageInfo_AcceptRequest.Size(m) +} +func (m *AcceptRequest) XXX_DiscardUnknown() { + xxx_messageInfo_AcceptRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_AcceptRequest proto.InternalMessageInfo + +const Default_AcceptRequest_TimeoutSeconds float64 = -1 + +func (m *AcceptRequest) GetSocketDescriptor() string { + if m != nil && m.SocketDescriptor != nil { + return *m.SocketDescriptor + } + return "" +} + +func (m *AcceptRequest) GetTimeoutSeconds() float64 { + if m != nil && m.TimeoutSeconds != nil { + return *m.TimeoutSeconds + } + return Default_AcceptRequest_TimeoutSeconds +} + +type AcceptReply struct { + NewSocketDescriptor []byte `protobuf:"bytes,2,opt,name=new_socket_descriptor,json=newSocketDescriptor" json:"new_socket_descriptor,omitempty"` + RemoteAddress *AddressPort `protobuf:"bytes,3,opt,name=remote_address,json=remoteAddress" json:"remote_address,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AcceptReply) Reset() { *m = AcceptReply{} } +func (m *AcceptReply) String() string { return proto.CompactTextString(m) } +func (*AcceptReply) ProtoMessage() {} +func (*AcceptReply) Descriptor() ([]byte, []int) { + return fileDescriptor_socket_service_b5f8f233dc327808, []int{20} +} +func (m *AcceptReply) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AcceptReply.Unmarshal(m, b) +} +func (m *AcceptReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AcceptReply.Marshal(b, m, deterministic) +} +func (dst *AcceptReply) XXX_Merge(src proto.Message) { + xxx_messageInfo_AcceptReply.Merge(dst, src) +} +func (m *AcceptReply) XXX_Size() int { + return xxx_messageInfo_AcceptReply.Size(m) +} +func (m *AcceptReply) XXX_DiscardUnknown() { + xxx_messageInfo_AcceptReply.DiscardUnknown(m) +} + +var xxx_messageInfo_AcceptReply proto.InternalMessageInfo + +func (m *AcceptReply) GetNewSocketDescriptor() []byte { + if m != nil { + return m.NewSocketDescriptor + } + return nil +} + +func (m *AcceptReply) GetRemoteAddress() *AddressPort { + if m != nil { + return m.RemoteAddress + } + return nil +} + +type ShutDownRequest struct { + SocketDescriptor *string `protobuf:"bytes,1,req,name=socket_descriptor,json=socketDescriptor" json:"socket_descriptor,omitempty"` + How *ShutDownRequest_How `protobuf:"varint,2,req,name=how,enum=appengine.ShutDownRequest_How" json:"how,omitempty"` + SendOffset *int64 `protobuf:"varint,3,req,name=send_offset,json=sendOffset" json:"send_offset,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ShutDownRequest) Reset() { *m = ShutDownRequest{} } +func (m *ShutDownRequest) String() string { return proto.CompactTextString(m) } +func (*ShutDownRequest) ProtoMessage() {} +func (*ShutDownRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_socket_service_b5f8f233dc327808, []int{21} +} +func (m *ShutDownRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ShutDownRequest.Unmarshal(m, b) +} +func (m *ShutDownRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ShutDownRequest.Marshal(b, m, deterministic) +} +func (dst *ShutDownRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ShutDownRequest.Merge(dst, src) +} +func (m *ShutDownRequest) XXX_Size() int { + return xxx_messageInfo_ShutDownRequest.Size(m) +} +func (m *ShutDownRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ShutDownRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ShutDownRequest proto.InternalMessageInfo + +func (m *ShutDownRequest) GetSocketDescriptor() string { + if m != nil && m.SocketDescriptor != nil { + return *m.SocketDescriptor + } + return "" +} + +func (m *ShutDownRequest) GetHow() ShutDownRequest_How { + if m != nil && m.How != nil { + return *m.How + } + return ShutDownRequest_SOCKET_SHUT_RD +} + +func (m *ShutDownRequest) GetSendOffset() int64 { + if m != nil && m.SendOffset != nil { + return *m.SendOffset + } + return 0 +} + +type ShutDownReply struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ShutDownReply) Reset() { *m = ShutDownReply{} } +func (m *ShutDownReply) String() string { return proto.CompactTextString(m) } +func (*ShutDownReply) ProtoMessage() {} +func (*ShutDownReply) Descriptor() ([]byte, []int) { + return fileDescriptor_socket_service_b5f8f233dc327808, []int{22} +} +func (m *ShutDownReply) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ShutDownReply.Unmarshal(m, b) +} +func (m *ShutDownReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ShutDownReply.Marshal(b, m, deterministic) +} +func (dst *ShutDownReply) XXX_Merge(src proto.Message) { + xxx_messageInfo_ShutDownReply.Merge(dst, src) +} +func (m *ShutDownReply) XXX_Size() int { + return xxx_messageInfo_ShutDownReply.Size(m) +} +func (m *ShutDownReply) XXX_DiscardUnknown() { + xxx_messageInfo_ShutDownReply.DiscardUnknown(m) +} + +var xxx_messageInfo_ShutDownReply proto.InternalMessageInfo + +type CloseRequest struct { + SocketDescriptor *string `protobuf:"bytes,1,req,name=socket_descriptor,json=socketDescriptor" json:"socket_descriptor,omitempty"` + SendOffset *int64 `protobuf:"varint,2,opt,name=send_offset,json=sendOffset,def=-1" json:"send_offset,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CloseRequest) Reset() { *m = CloseRequest{} } +func (m *CloseRequest) String() string { return proto.CompactTextString(m) } +func (*CloseRequest) ProtoMessage() {} +func (*CloseRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_socket_service_b5f8f233dc327808, []int{23} +} +func (m *CloseRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CloseRequest.Unmarshal(m, b) +} +func (m *CloseRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CloseRequest.Marshal(b, m, deterministic) +} +func (dst *CloseRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_CloseRequest.Merge(dst, src) +} +func (m *CloseRequest) XXX_Size() int { + return xxx_messageInfo_CloseRequest.Size(m) +} +func (m *CloseRequest) XXX_DiscardUnknown() { + xxx_messageInfo_CloseRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_CloseRequest proto.InternalMessageInfo + +const Default_CloseRequest_SendOffset int64 = -1 + +func (m *CloseRequest) GetSocketDescriptor() string { + if m != nil && m.SocketDescriptor != nil { + return *m.SocketDescriptor + } + return "" +} + +func (m *CloseRequest) GetSendOffset() int64 { + if m != nil && m.SendOffset != nil { + return *m.SendOffset + } + return Default_CloseRequest_SendOffset +} + +type CloseReply struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CloseReply) Reset() { *m = CloseReply{} } +func (m *CloseReply) String() string { return proto.CompactTextString(m) } +func (*CloseReply) ProtoMessage() {} +func (*CloseReply) Descriptor() ([]byte, []int) { + return fileDescriptor_socket_service_b5f8f233dc327808, []int{24} +} +func (m *CloseReply) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CloseReply.Unmarshal(m, b) +} +func (m *CloseReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CloseReply.Marshal(b, m, deterministic) +} +func (dst *CloseReply) XXX_Merge(src proto.Message) { + xxx_messageInfo_CloseReply.Merge(dst, src) +} +func (m *CloseReply) XXX_Size() int { + return xxx_messageInfo_CloseReply.Size(m) +} +func (m *CloseReply) XXX_DiscardUnknown() { + xxx_messageInfo_CloseReply.DiscardUnknown(m) +} + +var xxx_messageInfo_CloseReply proto.InternalMessageInfo + +type SendRequest struct { + SocketDescriptor *string `protobuf:"bytes,1,req,name=socket_descriptor,json=socketDescriptor" json:"socket_descriptor,omitempty"` + Data []byte `protobuf:"bytes,2,req,name=data" json:"data,omitempty"` + StreamOffset *int64 `protobuf:"varint,3,req,name=stream_offset,json=streamOffset" json:"stream_offset,omitempty"` + Flags *int32 `protobuf:"varint,4,opt,name=flags,def=0" json:"flags,omitempty"` + SendTo *AddressPort `protobuf:"bytes,5,opt,name=send_to,json=sendTo" json:"send_to,omitempty"` + TimeoutSeconds *float64 `protobuf:"fixed64,6,opt,name=timeout_seconds,json=timeoutSeconds,def=-1" json:"timeout_seconds,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SendRequest) Reset() { *m = SendRequest{} } +func (m *SendRequest) String() string { return proto.CompactTextString(m) } +func (*SendRequest) ProtoMessage() {} +func (*SendRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_socket_service_b5f8f233dc327808, []int{25} +} +func (m *SendRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SendRequest.Unmarshal(m, b) +} +func (m *SendRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SendRequest.Marshal(b, m, deterministic) +} +func (dst *SendRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_SendRequest.Merge(dst, src) +} +func (m *SendRequest) XXX_Size() int { + return xxx_messageInfo_SendRequest.Size(m) +} +func (m *SendRequest) XXX_DiscardUnknown() { + xxx_messageInfo_SendRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_SendRequest proto.InternalMessageInfo + +const Default_SendRequest_Flags int32 = 0 +const Default_SendRequest_TimeoutSeconds float64 = -1 + +func (m *SendRequest) GetSocketDescriptor() string { + if m != nil && m.SocketDescriptor != nil { + return *m.SocketDescriptor + } + return "" +} + +func (m *SendRequest) GetData() []byte { + if m != nil { + return m.Data + } + return nil +} + +func (m *SendRequest) GetStreamOffset() int64 { + if m != nil && m.StreamOffset != nil { + return *m.StreamOffset + } + return 0 +} + +func (m *SendRequest) GetFlags() int32 { + if m != nil && m.Flags != nil { + return *m.Flags + } + return Default_SendRequest_Flags +} + +func (m *SendRequest) GetSendTo() *AddressPort { + if m != nil { + return m.SendTo + } + return nil +} + +func (m *SendRequest) GetTimeoutSeconds() float64 { + if m != nil && m.TimeoutSeconds != nil { + return *m.TimeoutSeconds + } + return Default_SendRequest_TimeoutSeconds +} + +type SendReply struct { + DataSent *int32 `protobuf:"varint,1,opt,name=data_sent,json=dataSent" json:"data_sent,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SendReply) Reset() { *m = SendReply{} } +func (m *SendReply) String() string { return proto.CompactTextString(m) } +func (*SendReply) ProtoMessage() {} +func (*SendReply) Descriptor() ([]byte, []int) { + return fileDescriptor_socket_service_b5f8f233dc327808, []int{26} +} +func (m *SendReply) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SendReply.Unmarshal(m, b) +} +func (m *SendReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SendReply.Marshal(b, m, deterministic) +} +func (dst *SendReply) XXX_Merge(src proto.Message) { + xxx_messageInfo_SendReply.Merge(dst, src) +} +func (m *SendReply) XXX_Size() int { + return xxx_messageInfo_SendReply.Size(m) +} +func (m *SendReply) XXX_DiscardUnknown() { + xxx_messageInfo_SendReply.DiscardUnknown(m) +} + +var xxx_messageInfo_SendReply proto.InternalMessageInfo + +func (m *SendReply) GetDataSent() int32 { + if m != nil && m.DataSent != nil { + return *m.DataSent + } + return 0 +} + +type ReceiveRequest struct { + SocketDescriptor *string `protobuf:"bytes,1,req,name=socket_descriptor,json=socketDescriptor" json:"socket_descriptor,omitempty"` + DataSize *int32 `protobuf:"varint,2,req,name=data_size,json=dataSize" json:"data_size,omitempty"` + Flags *int32 `protobuf:"varint,3,opt,name=flags,def=0" json:"flags,omitempty"` + TimeoutSeconds *float64 `protobuf:"fixed64,5,opt,name=timeout_seconds,json=timeoutSeconds,def=-1" json:"timeout_seconds,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ReceiveRequest) Reset() { *m = ReceiveRequest{} } +func (m *ReceiveRequest) String() string { return proto.CompactTextString(m) } +func (*ReceiveRequest) ProtoMessage() {} +func (*ReceiveRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_socket_service_b5f8f233dc327808, []int{27} +} +func (m *ReceiveRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ReceiveRequest.Unmarshal(m, b) +} +func (m *ReceiveRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ReceiveRequest.Marshal(b, m, deterministic) +} +func (dst *ReceiveRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ReceiveRequest.Merge(dst, src) +} +func (m *ReceiveRequest) XXX_Size() int { + return xxx_messageInfo_ReceiveRequest.Size(m) +} +func (m *ReceiveRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ReceiveRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ReceiveRequest proto.InternalMessageInfo + +const Default_ReceiveRequest_Flags int32 = 0 +const Default_ReceiveRequest_TimeoutSeconds float64 = -1 + +func (m *ReceiveRequest) GetSocketDescriptor() string { + if m != nil && m.SocketDescriptor != nil { + return *m.SocketDescriptor + } + return "" +} + +func (m *ReceiveRequest) GetDataSize() int32 { + if m != nil && m.DataSize != nil { + return *m.DataSize + } + return 0 +} + +func (m *ReceiveRequest) GetFlags() int32 { + if m != nil && m.Flags != nil { + return *m.Flags + } + return Default_ReceiveRequest_Flags +} + +func (m *ReceiveRequest) GetTimeoutSeconds() float64 { + if m != nil && m.TimeoutSeconds != nil { + return *m.TimeoutSeconds + } + return Default_ReceiveRequest_TimeoutSeconds +} + +type ReceiveReply struct { + StreamOffset *int64 `protobuf:"varint,2,opt,name=stream_offset,json=streamOffset" json:"stream_offset,omitempty"` + Data []byte `protobuf:"bytes,3,opt,name=data" json:"data,omitempty"` + ReceivedFrom *AddressPort `protobuf:"bytes,4,opt,name=received_from,json=receivedFrom" json:"received_from,omitempty"` + BufferSize *int32 `protobuf:"varint,5,opt,name=buffer_size,json=bufferSize" json:"buffer_size,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ReceiveReply) Reset() { *m = ReceiveReply{} } +func (m *ReceiveReply) String() string { return proto.CompactTextString(m) } +func (*ReceiveReply) ProtoMessage() {} +func (*ReceiveReply) Descriptor() ([]byte, []int) { + return fileDescriptor_socket_service_b5f8f233dc327808, []int{28} +} +func (m *ReceiveReply) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ReceiveReply.Unmarshal(m, b) +} +func (m *ReceiveReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ReceiveReply.Marshal(b, m, deterministic) +} +func (dst *ReceiveReply) XXX_Merge(src proto.Message) { + xxx_messageInfo_ReceiveReply.Merge(dst, src) +} +func (m *ReceiveReply) XXX_Size() int { + return xxx_messageInfo_ReceiveReply.Size(m) +} +func (m *ReceiveReply) XXX_DiscardUnknown() { + xxx_messageInfo_ReceiveReply.DiscardUnknown(m) +} + +var xxx_messageInfo_ReceiveReply proto.InternalMessageInfo + +func (m *ReceiveReply) GetStreamOffset() int64 { + if m != nil && m.StreamOffset != nil { + return *m.StreamOffset + } + return 0 +} + +func (m *ReceiveReply) GetData() []byte { + if m != nil { + return m.Data + } + return nil +} + +func (m *ReceiveReply) GetReceivedFrom() *AddressPort { + if m != nil { + return m.ReceivedFrom + } + return nil +} + +func (m *ReceiveReply) GetBufferSize() int32 { + if m != nil && m.BufferSize != nil { + return *m.BufferSize + } + return 0 +} + +type PollEvent struct { + SocketDescriptor *string `protobuf:"bytes,1,req,name=socket_descriptor,json=socketDescriptor" json:"socket_descriptor,omitempty"` + RequestedEvents *int32 `protobuf:"varint,2,req,name=requested_events,json=requestedEvents" json:"requested_events,omitempty"` + ObservedEvents *int32 `protobuf:"varint,3,req,name=observed_events,json=observedEvents" json:"observed_events,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PollEvent) Reset() { *m = PollEvent{} } +func (m *PollEvent) String() string { return proto.CompactTextString(m) } +func (*PollEvent) ProtoMessage() {} +func (*PollEvent) Descriptor() ([]byte, []int) { + return fileDescriptor_socket_service_b5f8f233dc327808, []int{29} +} +func (m *PollEvent) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PollEvent.Unmarshal(m, b) +} +func (m *PollEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PollEvent.Marshal(b, m, deterministic) +} +func (dst *PollEvent) XXX_Merge(src proto.Message) { + xxx_messageInfo_PollEvent.Merge(dst, src) +} +func (m *PollEvent) XXX_Size() int { + return xxx_messageInfo_PollEvent.Size(m) +} +func (m *PollEvent) XXX_DiscardUnknown() { + xxx_messageInfo_PollEvent.DiscardUnknown(m) +} + +var xxx_messageInfo_PollEvent proto.InternalMessageInfo + +func (m *PollEvent) GetSocketDescriptor() string { + if m != nil && m.SocketDescriptor != nil { + return *m.SocketDescriptor + } + return "" +} + +func (m *PollEvent) GetRequestedEvents() int32 { + if m != nil && m.RequestedEvents != nil { + return *m.RequestedEvents + } + return 0 +} + +func (m *PollEvent) GetObservedEvents() int32 { + if m != nil && m.ObservedEvents != nil { + return *m.ObservedEvents + } + return 0 +} + +type PollRequest struct { + Events []*PollEvent `protobuf:"bytes,1,rep,name=events" json:"events,omitempty"` + TimeoutSeconds *float64 `protobuf:"fixed64,2,opt,name=timeout_seconds,json=timeoutSeconds,def=-1" json:"timeout_seconds,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PollRequest) Reset() { *m = PollRequest{} } +func (m *PollRequest) String() string { return proto.CompactTextString(m) } +func (*PollRequest) ProtoMessage() {} +func (*PollRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_socket_service_b5f8f233dc327808, []int{30} +} +func (m *PollRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PollRequest.Unmarshal(m, b) +} +func (m *PollRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PollRequest.Marshal(b, m, deterministic) +} +func (dst *PollRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_PollRequest.Merge(dst, src) +} +func (m *PollRequest) XXX_Size() int { + return xxx_messageInfo_PollRequest.Size(m) +} +func (m *PollRequest) XXX_DiscardUnknown() { + xxx_messageInfo_PollRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_PollRequest proto.InternalMessageInfo + +const Default_PollRequest_TimeoutSeconds float64 = -1 + +func (m *PollRequest) GetEvents() []*PollEvent { + if m != nil { + return m.Events + } + return nil +} + +func (m *PollRequest) GetTimeoutSeconds() float64 { + if m != nil && m.TimeoutSeconds != nil { + return *m.TimeoutSeconds + } + return Default_PollRequest_TimeoutSeconds +} + +type PollReply struct { + Events []*PollEvent `protobuf:"bytes,2,rep,name=events" json:"events,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PollReply) Reset() { *m = PollReply{} } +func (m *PollReply) String() string { return proto.CompactTextString(m) } +func (*PollReply) ProtoMessage() {} +func (*PollReply) Descriptor() ([]byte, []int) { + return fileDescriptor_socket_service_b5f8f233dc327808, []int{31} +} +func (m *PollReply) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PollReply.Unmarshal(m, b) +} +func (m *PollReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PollReply.Marshal(b, m, deterministic) +} +func (dst *PollReply) XXX_Merge(src proto.Message) { + xxx_messageInfo_PollReply.Merge(dst, src) +} +func (m *PollReply) XXX_Size() int { + return xxx_messageInfo_PollReply.Size(m) +} +func (m *PollReply) XXX_DiscardUnknown() { + xxx_messageInfo_PollReply.DiscardUnknown(m) +} + +var xxx_messageInfo_PollReply proto.InternalMessageInfo + +func (m *PollReply) GetEvents() []*PollEvent { + if m != nil { + return m.Events + } + return nil +} + +type ResolveRequest struct { + Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"` + AddressFamilies []CreateSocketRequest_SocketFamily `protobuf:"varint,2,rep,name=address_families,json=addressFamilies,enum=appengine.CreateSocketRequest_SocketFamily" json:"address_families,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ResolveRequest) Reset() { *m = ResolveRequest{} } +func (m *ResolveRequest) String() string { return proto.CompactTextString(m) } +func (*ResolveRequest) ProtoMessage() {} +func (*ResolveRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_socket_service_b5f8f233dc327808, []int{32} +} +func (m *ResolveRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ResolveRequest.Unmarshal(m, b) +} +func (m *ResolveRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ResolveRequest.Marshal(b, m, deterministic) +} +func (dst *ResolveRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ResolveRequest.Merge(dst, src) +} +func (m *ResolveRequest) XXX_Size() int { + return xxx_messageInfo_ResolveRequest.Size(m) +} +func (m *ResolveRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ResolveRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ResolveRequest proto.InternalMessageInfo + +func (m *ResolveRequest) GetName() string { + if m != nil && m.Name != nil { + return *m.Name + } + return "" +} + +func (m *ResolveRequest) GetAddressFamilies() []CreateSocketRequest_SocketFamily { + if m != nil { + return m.AddressFamilies + } + return nil +} + +type ResolveReply struct { + PackedAddress [][]byte `protobuf:"bytes,2,rep,name=packed_address,json=packedAddress" json:"packed_address,omitempty"` + CanonicalName *string `protobuf:"bytes,3,opt,name=canonical_name,json=canonicalName" json:"canonical_name,omitempty"` + Aliases []string `protobuf:"bytes,4,rep,name=aliases" json:"aliases,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ResolveReply) Reset() { *m = ResolveReply{} } +func (m *ResolveReply) String() string { return proto.CompactTextString(m) } +func (*ResolveReply) ProtoMessage() {} +func (*ResolveReply) Descriptor() ([]byte, []int) { + return fileDescriptor_socket_service_b5f8f233dc327808, []int{33} +} +func (m *ResolveReply) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ResolveReply.Unmarshal(m, b) +} +func (m *ResolveReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ResolveReply.Marshal(b, m, deterministic) +} +func (dst *ResolveReply) XXX_Merge(src proto.Message) { + xxx_messageInfo_ResolveReply.Merge(dst, src) +} +func (m *ResolveReply) XXX_Size() int { + return xxx_messageInfo_ResolveReply.Size(m) +} +func (m *ResolveReply) XXX_DiscardUnknown() { + xxx_messageInfo_ResolveReply.DiscardUnknown(m) +} + +var xxx_messageInfo_ResolveReply proto.InternalMessageInfo + +func (m *ResolveReply) GetPackedAddress() [][]byte { + if m != nil { + return m.PackedAddress + } + return nil +} + +func (m *ResolveReply) GetCanonicalName() string { + if m != nil && m.CanonicalName != nil { + return *m.CanonicalName + } + return "" +} + +func (m *ResolveReply) GetAliases() []string { + if m != nil { + return m.Aliases + } + return nil +} + +func init() { + proto.RegisterType((*RemoteSocketServiceError)(nil), "appengine.RemoteSocketServiceError") + proto.RegisterType((*AddressPort)(nil), "appengine.AddressPort") + proto.RegisterType((*CreateSocketRequest)(nil), "appengine.CreateSocketRequest") + proto.RegisterType((*CreateSocketReply)(nil), "appengine.CreateSocketReply") + proto.RegisterType((*BindRequest)(nil), "appengine.BindRequest") + proto.RegisterType((*BindReply)(nil), "appengine.BindReply") + proto.RegisterType((*GetSocketNameRequest)(nil), "appengine.GetSocketNameRequest") + proto.RegisterType((*GetSocketNameReply)(nil), "appengine.GetSocketNameReply") + proto.RegisterType((*GetPeerNameRequest)(nil), "appengine.GetPeerNameRequest") + proto.RegisterType((*GetPeerNameReply)(nil), "appengine.GetPeerNameReply") + proto.RegisterType((*SocketOption)(nil), "appengine.SocketOption") + proto.RegisterType((*SetSocketOptionsRequest)(nil), "appengine.SetSocketOptionsRequest") + proto.RegisterType((*SetSocketOptionsReply)(nil), "appengine.SetSocketOptionsReply") + proto.RegisterType((*GetSocketOptionsRequest)(nil), "appengine.GetSocketOptionsRequest") + proto.RegisterType((*GetSocketOptionsReply)(nil), "appengine.GetSocketOptionsReply") + proto.RegisterType((*ConnectRequest)(nil), "appengine.ConnectRequest") + proto.RegisterType((*ConnectReply)(nil), "appengine.ConnectReply") + proto.RegisterType((*ListenRequest)(nil), "appengine.ListenRequest") + proto.RegisterType((*ListenReply)(nil), "appengine.ListenReply") + proto.RegisterType((*AcceptRequest)(nil), "appengine.AcceptRequest") + proto.RegisterType((*AcceptReply)(nil), "appengine.AcceptReply") + proto.RegisterType((*ShutDownRequest)(nil), "appengine.ShutDownRequest") + proto.RegisterType((*ShutDownReply)(nil), "appengine.ShutDownReply") + proto.RegisterType((*CloseRequest)(nil), "appengine.CloseRequest") + proto.RegisterType((*CloseReply)(nil), "appengine.CloseReply") + proto.RegisterType((*SendRequest)(nil), "appengine.SendRequest") + proto.RegisterType((*SendReply)(nil), "appengine.SendReply") + proto.RegisterType((*ReceiveRequest)(nil), "appengine.ReceiveRequest") + proto.RegisterType((*ReceiveReply)(nil), "appengine.ReceiveReply") + proto.RegisterType((*PollEvent)(nil), "appengine.PollEvent") + proto.RegisterType((*PollRequest)(nil), "appengine.PollRequest") + proto.RegisterType((*PollReply)(nil), "appengine.PollReply") + proto.RegisterType((*ResolveRequest)(nil), "appengine.ResolveRequest") + proto.RegisterType((*ResolveReply)(nil), "appengine.ResolveReply") +} + +func init() { + proto.RegisterFile("google.golang.org/appengine/internal/socket/socket_service.proto", fileDescriptor_socket_service_b5f8f233dc327808) +} + +var fileDescriptor_socket_service_b5f8f233dc327808 = []byte{ + // 3088 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0x5f, 0x77, 0xe3, 0xc6, + 0x75, 0x37, 0x48, 0xfd, 0xe3, 0x90, 0x94, 0xee, 0x62, 0xa5, 0x5d, 0x25, 0x6e, 0x12, 0x05, 0x8e, + 0x1b, 0x25, 0x8e, 0x77, 0x6d, 0x39, 0x4d, 0x9b, 0xa4, 0x49, 0x16, 0x04, 0x86, 0x24, 0x4c, 0x00, + 0x03, 0xcd, 0x0c, 0x25, 0xd1, 0x6d, 0x8a, 0xd0, 0x22, 0xa4, 0x65, 0x4c, 0x11, 0x0c, 0xc9, 0xdd, + 0xf5, 0xba, 0x69, 0xaa, 0xfe, 0x39, 0xfd, 0x12, 0x7d, 0xe8, 0x73, 0x3f, 0x43, 0x4f, 0x4f, 0x5f, + 0xfa, 0xec, 0xc7, 0x7e, 0x84, 0x9e, 0xbe, 0xb4, 0x9f, 0xa1, 0x67, 0x06, 0xe0, 0x60, 0xc8, 0xd5, + 0xae, 0x77, 0x75, 0x72, 0x4e, 0x9e, 0xa4, 0xfb, 0xbb, 0x77, 0xee, 0xff, 0x99, 0xb9, 0x03, 0xa2, + 0x47, 0x97, 0x69, 0x7a, 0x39, 0x4a, 0x1e, 0x5c, 0xa6, 0xa3, 0xfe, 0xf8, 0xf2, 0x41, 0x3a, 0xbd, + 0x7c, 0xd8, 0x9f, 0x4c, 0x92, 0xf1, 0xe5, 0x70, 0x9c, 0x3c, 0x1c, 0x8e, 0xe7, 0xc9, 0x74, 0xdc, + 0x1f, 0x3d, 0x9c, 0xa5, 0xe7, 0x9f, 0x25, 0xf3, 0xfc, 0x4f, 0x3c, 0x4b, 0xa6, 0x4f, 0x87, 0xe7, + 0xc9, 0x83, 0xc9, 0x34, 0x9d, 0xa7, 0x66, 0x45, 0xc9, 0x5b, 0xff, 0xbc, 0x8b, 0xf6, 0x69, 0x72, + 0x95, 0xce, 0x13, 0x26, 0x25, 0x59, 0x26, 0x88, 0xa7, 0xd3, 0x74, 0x6a, 0x7e, 0x07, 0xd5, 0x66, + 0xcf, 0x67, 0xf3, 0xe4, 0x2a, 0x4e, 0x04, 0xbd, 0x6f, 0x1c, 0x18, 0x87, 0xeb, 0x3f, 0x31, 0x3e, + 0xa0, 0xd5, 0x0c, 0xce, 0xa4, 0xbe, 0x8d, 0x6a, 0x92, 0x1d, 0x0f, 0x92, 0x79, 0x7f, 0x38, 0xda, + 0x2f, 0x1d, 0x18, 0x87, 0x15, 0x5a, 0x95, 0x98, 0x2b, 0x21, 0xeb, 0x73, 0x54, 0x91, 0xb2, 0x4e, + 0x3a, 0x48, 0x4c, 0x40, 0x35, 0xd6, 0x63, 0x1c, 0x07, 0x31, 0xa6, 0x94, 0x50, 0x30, 0xcc, 0x3a, + 0xaa, 0xb4, 0x6c, 0x2f, 0x27, 0x4b, 0x66, 0x15, 0x6d, 0x36, 0x6d, 0xcf, 0xef, 0x52, 0x0c, 0x6b, + 0xe6, 0x1e, 0xba, 0x13, 0x61, 0x1a, 0x78, 0x8c, 0x79, 0x24, 0x8c, 0x5d, 0x1c, 0x7a, 0xd8, 0x85, + 0x75, 0xf3, 0x2e, 0xda, 0xf1, 0xc2, 0x13, 0xdb, 0xf7, 0xdc, 0x98, 0xe2, 0xe3, 0x2e, 0x66, 0x1c, + 0x36, 0xcc, 0x3b, 0xa8, 0xce, 0x88, 0xd3, 0xc1, 0x3c, 0x76, 0x7c, 0xc2, 0xb0, 0x0b, 0x9b, 0xd6, + 0xbf, 0x99, 0xa8, 0xca, 0x34, 0x67, 0x77, 0x50, 0x95, 0xf5, 0x58, 0xcc, 0xba, 0x8e, 0x83, 0x19, + 0x83, 0xb7, 0x84, 0x6d, 0x01, 0x60, 0x61, 0x04, 0x0c, 0x73, 0x1b, 0x21, 0x49, 0x86, 0x04, 0x87, + 0x1c, 0x4a, 0x8a, 0xcd, 0xa8, 0xd3, 0x86, 0xb2, 0x22, 0xbd, 0x90, 0x53, 0x58, 0x13, 0x9e, 0x66, + 0x24, 0x81, 0x75, 0xc5, 0x0b, 0xcf, 0x3c, 0x02, 0x1b, 0x8a, 0x3c, 0x6a, 0x78, 0x2d, 0xd8, 0x5c, + 0x18, 0x16, 0x8a, 0xcf, 0xb0, 0x03, 0x5b, 0x8a, 0xdf, 0xb0, 0xdd, 0x26, 0x54, 0x94, 0x61, 0xa7, + 0xed, 0xf9, 0x2e, 0x20, 0x45, 0xdb, 0x2d, 0xdb, 0x0b, 0xa1, 0x2a, 0x02, 0x96, 0xf4, 0x29, 0xe9, + 0xfa, 0x6e, 0xc3, 0x27, 0x4e, 0x07, 0xaa, 0x9a, 0xb7, 0x01, 0x0e, 0xa0, 0x56, 0x2c, 0x12, 0xd1, + 0x41, 0x5d, 0xd1, 0x4d, 0xbb, 0xeb, 0x73, 0xd8, 0xd6, 0x9c, 0xe0, 0x0d, 0xbf, 0x03, 0x3b, 0x85, + 0x13, 0x5d, 0xd6, 0x03, 0x50, 0xf2, 0xf8, 0xcc, 0x63, 0x1c, 0xee, 0x28, 0xf6, 0x99, 0x8b, 0x4f, + 0xc0, 0xd4, 0xcc, 0x09, 0xfa, 0xae, 0xae, 0xce, 0xf5, 0x28, 0xec, 0x2a, 0x01, 0x8f, 0x09, 0x7a, + 0xaf, 0xa0, 0x45, 0xa9, 0xe0, 0x5e, 0xa1, 0xa0, 0xe9, 0xf9, 0x18, 0xee, 0x2b, 0x3a, 0x90, 0xf4, + 0xbe, 0x66, 0x80, 0xf3, 0x1e, 0x7c, 0x4d, 0x19, 0xe0, 0x67, 0xbc, 0xc1, 0x7a, 0xf0, 0x75, 0xe5, + 0x50, 0x53, 0x24, 0xf5, 0x6d, 0x4d, 0x9e, 0x45, 0x0e, 0xfc, 0x91, 0xa2, 0x59, 0xe4, 0x45, 0x18, + 0xbe, 0xa1, 0xc4, 0x29, 0x69, 0x32, 0xf8, 0x66, 0x61, 0xce, 0xf7, 0xc2, 0x0e, 0x7c, 0xab, 0xa8, + 0xbd, 0x90, 0x3e, 0x30, 0x6b, 0x68, 0x4b, 0x92, 0x2e, 0x09, 0xe0, 0xdb, 0x4a, 0x98, 0xda, 0x61, + 0x0b, 0x83, 0xa5, 0x7c, 0x71, 0xb1, 0xed, 0xfa, 0x1d, 0x78, 0x47, 0x76, 0x9b, 0x02, 0x44, 0x3d, + 0xde, 0x31, 0x77, 0x11, 0x64, 0xfe, 0xd8, 0x01, 0xe6, 0x84, 0xf8, 0x24, 0x6c, 0xc1, 0x77, 0x34, + 0x2f, 0x7d, 0xa7, 0x03, 0xef, 0xea, 0x5e, 0xf7, 0x18, 0xfc, 0xb1, 0x52, 0x14, 0x12, 0x8e, 0x83, + 0x88, 0xf7, 0xe0, 0xbb, 0xca, 0x33, 0x9f, 0x90, 0x08, 0x0e, 0xf5, 0x3a, 0xb3, 0x16, 0x7c, 0xbf, + 0x68, 0x43, 0x97, 0x06, 0xf0, 0x9e, 0xd6, 0x3b, 0x34, 0x6c, 0xc1, 0x0f, 0xf2, 0x1d, 0x16, 0x63, + 0xff, 0x28, 0x64, 0xbd, 0xd0, 0x81, 0xf7, 0x95, 0x84, 0xff, 0x51, 0xdb, 0xe7, 0xf0, 0x40, 0xa3, + 0x29, 0xe3, 0xf0, 0xb0, 0xa0, 0x43, 0xa1, 0xe1, 0x03, 0x15, 0x6c, 0x37, 0xb4, 0xb9, 0xd3, 0x86, + 0x0f, 0x35, 0x0f, 0x1c, 0xe6, 0xc1, 0x51, 0xb1, 0xe0, 0x48, 0x28, 0xfc, 0x48, 0xef, 0x66, 0x0c, + 0x3f, 0xd4, 0x49, 0x0a, 0x7f, 0xa2, 0xa4, 0xcf, 0x9a, 0x5d, 0xdf, 0x87, 0x1f, 0x69, 0xda, 0xec, + 0x90, 0xc0, 0x9f, 0x2a, 0x73, 0x42, 0xfc, 0xd8, 0x81, 0x3f, 0xd3, 0x01, 0xe6, 0x73, 0xf8, 0xb1, + 0x5a, 0xd1, 0x68, 0x92, 0x90, 0xc3, 0x4f, 0xf5, 0x1c, 0x72, 0x0a, 0x7f, 0xae, 0xb5, 0xa2, 0x6b, + 0x73, 0x1b, 0x7e, 0xa6, 0x3c, 0xe0, 0x5e, 0x80, 0xe1, 0xe7, 0xc5, 0xe6, 0x24, 0x8c, 0xc2, 0x2f, + 0xb4, 0xe5, 0x21, 0xe6, 0xf0, 0x48, 0xa3, 0xa3, 0x4e, 0x0b, 0x6c, 0xa5, 0x8e, 0xe2, 0x80, 0x70, + 0x0c, 0x0d, 0x4d, 0xbf, 0xec, 0x1d, 0x47, 0x35, 0x8b, 0xed, 0x9e, 0x80, 0x5b, 0x34, 0x1e, 0x0d, + 0x42, 0x0e, 0x58, 0x99, 0x73, 0x48, 0x10, 0x40, 0x53, 0xb1, 0x23, 0x4a, 0x38, 0x81, 0x96, 0xaa, + 0x78, 0xd0, 0xf5, 0xb9, 0xd7, 0x26, 0x11, 0xb4, 0x8b, 0xf6, 0x22, 0xdc, 0x25, 0x1c, 0x3c, 0x3d, + 0x05, 0xa2, 0xe8, 0x1f, 0xab, 0x45, 0xe4, 0x04, 0xd3, 0xa6, 0x4f, 0x4e, 0xa1, 0xa3, 0x0a, 0x1d, + 0x12, 0xde, 0x0d, 0xbd, 0x63, 0xf0, 0x8b, 0x3c, 0xd9, 0x6e, 0xd3, 0x85, 0x40, 0x0f, 0xc4, 0x69, + 0xb7, 0x20, 0x54, 0x80, 0xef, 0x35, 0x6c, 0xc7, 0x01, 0xa2, 0x03, 0x0d, 0xdb, 0x85, 0x48, 0x07, + 0x98, 0x13, 0xc2, 0xb1, 0x0e, 0x04, 0xf6, 0x19, 0xd0, 0xa2, 0xbf, 0xbc, 0x86, 0x3c, 0xcc, 0x58, + 0xb1, 0xd1, 0x7d, 0x86, 0x8f, 0x81, 0x2b, 0x09, 0x8a, 0x19, 0xb7, 0x29, 0x87, 0xae, 0x42, 0x18, + 0xa7, 0x72, 0xbb, 0x9d, 0xa8, 0x35, 0x5d, 0x86, 0x29, 0x83, 0x53, 0x3d, 0x18, 0x71, 0x8a, 0xc3, + 0x99, 0xda, 0x4e, 0xae, 0xd0, 0xe2, 0xba, 0x94, 0xe2, 0x63, 0xe8, 0x29, 0xb9, 0x80, 0xb5, 0x98, + 0xf7, 0x09, 0x86, 0x4f, 0x4c, 0x13, 0x6d, 0x17, 0xe9, 0xe5, 0xbd, 0x08, 0xc3, 0x5f, 0xa8, 0xf3, + 0x32, 0x24, 0x12, 0x25, 0x11, 0x87, 0xbf, 0x34, 0xef, 0xa3, 0xbb, 0x85, 0x60, 0x48, 0x58, 0x37, + 0x8a, 0x08, 0xe5, 0xf0, 0x4b, 0xc5, 0x10, 0x86, 0x79, 0xc1, 0xf8, 0x2b, 0xa5, 0x9a, 0x44, 0xc2, + 0xad, 0x6e, 0x14, 0x41, 0xac, 0x1f, 0x7b, 0xac, 0x2b, 0x80, 0x85, 0x9f, 0x51, 0xb3, 0x58, 0xfa, + 0x2b, 0x85, 0xda, 0x1a, 0xda, 0x57, 0x0a, 0x45, 0x3c, 0x5e, 0xd8, 0x65, 0x18, 0x3e, 0x15, 0x77, + 0x9c, 0xc2, 0x42, 0xc2, 0xed, 0x13, 0xdb, 0xf3, 0xe1, 0xbc, 0x48, 0x08, 0xe6, 0x2e, 0x39, 0x0d, + 0x61, 0x50, 0x04, 0x85, 0x79, 0x37, 0xa4, 0xd8, 0x76, 0xda, 0x90, 0x14, 0xc7, 0x07, 0xe6, 0x14, + 0x33, 0xcc, 0xe1, 0x42, 0x99, 0x76, 0x48, 0x18, 0xda, 0x0d, 0x42, 0x39, 0x76, 0xe1, 0x52, 0x99, + 0x16, 0x68, 0x26, 0xf9, 0x58, 0x8b, 0xa5, 0xd1, 0x6d, 0x32, 0x18, 0x2a, 0xc0, 0x63, 0x42, 0x0c, + 0x7e, 0xad, 0x97, 0x45, 0x22, 0x9f, 0x29, 0x83, 0xac, 0xdd, 0xcd, 0x1c, 0x1b, 0x29, 0x83, 0x9c, + 0x90, 0xc0, 0x0e, 0x7b, 0x14, 0x37, 0x19, 0x5c, 0x29, 0x41, 0xb1, 0x07, 0x5d, 0xd2, 0xe5, 0x30, + 0x5e, 0xf2, 0x8c, 0xe2, 0x66, 0x57, 0xdc, 0xd2, 0xa9, 0x12, 0x6c, 0x13, 0x96, 0x69, 0x9c, 0x28, + 0x41, 0x01, 0x2d, 0x62, 0xfd, 0x8d, 0x72, 0xc6, 0xf6, 0x29, 0xb6, 0xdd, 0x1e, 0x4c, 0x55, 0x4a, + 0xbc, 0x30, 0xa2, 0xa4, 0x45, 0xc5, 0xa5, 0x3e, 0x2b, 0xb6, 0x23, 0xb7, 0x7d, 0x0c, 0xf3, 0xe2, + 0x38, 0x73, 0x7c, 0x6c, 0x87, 0xf0, 0x44, 0x2f, 0x61, 0x68, 0x07, 0xf0, 0xb4, 0x00, 0xb2, 0xe4, + 0x3f, 0xd3, 0xae, 0x32, 0x21, 0xf0, 0xb9, 0x72, 0x31, 0x3b, 0x11, 0x3c, 0x02, 0xcf, 0x95, 0x88, + 0x7b, 0xdc, 0x25, 0x1c, 0xbe, 0xd0, 0xce, 0xf1, 0x00, 0xbb, 0x5e, 0x37, 0x80, 0xbf, 0x56, 0xde, + 0x65, 0x80, 0x6c, 0xcd, 0xdf, 0x2a, 0x39, 0xc7, 0x0e, 0x1d, 0xec, 0x63, 0x17, 0xfe, 0x46, 0x3b, + 0x7f, 0x3a, 0xb8, 0x07, 0xbf, 0x53, 0xeb, 0x3a, 0xb8, 0x87, 0xcf, 0x22, 0x8f, 0x62, 0x17, 0xfe, + 0xd6, 0xdc, 0x2d, 0x40, 0x8a, 0x4f, 0x48, 0x07, 0xbb, 0x70, 0x6d, 0x98, 0x7b, 0x79, 0xa2, 0x24, + 0xfa, 0x31, 0x76, 0x44, 0xad, 0xff, 0xce, 0x30, 0xef, 0x2e, 0x1a, 0xf7, 0x34, 0xc4, 0x54, 0x5c, + 0x51, 0xf0, 0xf7, 0x86, 0xb9, 0x9f, 0xb7, 0x79, 0x48, 0x38, 0xc5, 0x8e, 0x38, 0x48, 0xec, 0x86, + 0x8f, 0xe1, 0x1f, 0x0c, 0x13, 0x16, 0xe7, 0x44, 0xb3, 0xe3, 0xf9, 0x3e, 0xfc, 0xa3, 0xf1, 0xf5, + 0x12, 0x18, 0xd6, 0x15, 0xaa, 0xda, 0x83, 0xc1, 0x34, 0x99, 0xcd, 0xa2, 0x74, 0x3a, 0x37, 0x4d, + 0xb4, 0x36, 0x49, 0xa7, 0xf3, 0x7d, 0xe3, 0xa0, 0x74, 0xb8, 0x4e, 0xe5, 0xff, 0xe6, 0xbb, 0x68, + 0x7b, 0xd2, 0x3f, 0xff, 0x2c, 0x19, 0xc4, 0xfd, 0x4c, 0x52, 0xce, 0x7f, 0x35, 0x5a, 0xcf, 0xd0, + 0x7c, 0xb9, 0xf9, 0x0e, 0xaa, 0x3f, 0x4e, 0x67, 0xf3, 0x71, 0xff, 0x2a, 0x89, 0x1f, 0x0f, 0xc7, + 0xf3, 0xfd, 0xb2, 0x9c, 0x12, 0x6b, 0x0b, 0xb0, 0x3d, 0x1c, 0xcf, 0xad, 0x7f, 0x5a, 0x43, 0x77, + 0x9d, 0x69, 0xd2, 0x5f, 0x0c, 0xa3, 0x34, 0xf9, 0xcd, 0x93, 0x64, 0x36, 0x37, 0x1d, 0xb4, 0x71, + 0xd1, 0xbf, 0x1a, 0x8e, 0x9e, 0x4b, 0xcb, 0xdb, 0x47, 0xef, 0x3d, 0x50, 0x03, 0xec, 0x83, 0x1b, + 0xe4, 0x1f, 0x64, 0x54, 0x53, 0x2e, 0xa1, 0xf9, 0x52, 0xd3, 0x43, 0x5b, 0x72, 0xfa, 0x3d, 0x4f, + 0xc5, 0x88, 0x2a, 0xd4, 0xbc, 0xff, 0x5a, 0x6a, 0xa2, 0x7c, 0x11, 0x55, 0xcb, 0xcd, 0x9f, 0xa3, + 0xed, 0x7c, 0xae, 0x4e, 0x27, 0xf3, 0x61, 0x3a, 0x9e, 0xed, 0x97, 0x0f, 0xca, 0x87, 0xd5, 0xa3, + 0xfb, 0x9a, 0xc2, 0x6c, 0x31, 0x91, 0x7c, 0x5a, 0x9f, 0x69, 0xd4, 0xcc, 0x6c, 0xa0, 0x3b, 0x93, + 0x69, 0xfa, 0xf9, 0xf3, 0x38, 0xf9, 0x3c, 0x9b, 0xd6, 0xe3, 0xe1, 0x64, 0x7f, 0xed, 0xc0, 0x38, + 0xac, 0x1e, 0xdd, 0xd3, 0x54, 0x68, 0xa9, 0xa7, 0x3b, 0x72, 0x01, 0xce, 0xe5, 0xbd, 0x89, 0x79, + 0x88, 0xb6, 0x47, 0xc3, 0xd9, 0x3c, 0x19, 0xc7, 0x9f, 0xf6, 0xcf, 0x3f, 0x1b, 0xa5, 0x97, 0xfb, + 0xeb, 0x8b, 0xe9, 0xbc, 0x9e, 0x31, 0x1a, 0x19, 0x6e, 0x7e, 0x84, 0x2a, 0x53, 0x39, 0xe1, 0x0b, + 0x2b, 0x1b, 0xaf, 0xb4, 0xb2, 0x95, 0x09, 0x7a, 0x13, 0x73, 0x0f, 0x6d, 0xf4, 0x27, 0x93, 0x78, + 0x38, 0xd8, 0xaf, 0xc8, 0x42, 0xad, 0xf7, 0x27, 0x13, 0x6f, 0x60, 0x7e, 0x03, 0xa1, 0xc9, 0x34, + 0xfd, 0x75, 0x72, 0x3e, 0x17, 0x2c, 0x74, 0x60, 0x1c, 0x96, 0x69, 0x25, 0x47, 0xbc, 0x81, 0x65, + 0xa1, 0x9a, 0x9e, 0x7b, 0x73, 0x0b, 0xad, 0x79, 0xd1, 0xd3, 0x1f, 0x82, 0x91, 0xff, 0xf7, 0x23, + 0x28, 0x59, 0x16, 0xda, 0x5e, 0x4e, 0xac, 0xb9, 0x89, 0xca, 0xdc, 0x89, 0xc0, 0x10, 0xff, 0x74, + 0xdd, 0x08, 0x4a, 0xd6, 0x97, 0x06, 0xba, 0xb3, 0x5c, 0x91, 0xc9, 0xe8, 0xb9, 0xf9, 0x1e, 0xba, + 0x93, 0xa7, 0x7d, 0x90, 0xcc, 0xce, 0xa7, 0xc3, 0xc9, 0x3c, 0x7f, 0x93, 0x54, 0x28, 0x64, 0x0c, + 0x57, 0xe1, 0xe6, 0xcf, 0xd0, 0xb6, 0x78, 0xf4, 0x24, 0x53, 0xd5, 0x97, 0xe5, 0x57, 0x86, 0x5e, + 0xcf, 0xa4, 0x17, 0xfd, 0xfa, 0x7b, 0x28, 0xd1, 0xf7, 0x2b, 0x5b, 0xff, 0xb3, 0x09, 0xd7, 0xd7, + 0xd7, 0xd7, 0x25, 0xeb, 0x77, 0xa8, 0xda, 0x18, 0x8e, 0x07, 0x8b, 0x86, 0x7e, 0x49, 0x24, 0xa5, + 0x1b, 0x23, 0xb9, 0xd1, 0x15, 0xd1, 0xc1, 0xaf, 0xef, 0x8a, 0x45, 0x50, 0x25, 0xb3, 0x2f, 0xf2, + 0x78, 0xa3, 0x42, 0xe3, 0x8d, 0x62, 0xb3, 0x1c, 0xb4, 0xdb, 0x4a, 0xe6, 0x59, 0x75, 0xc2, 0xfe, + 0x55, 0x72, 0x9b, 0xc8, 0xac, 0x33, 0x64, 0xae, 0x28, 0x79, 0xa9, 0x7b, 0xa5, 0x37, 0x73, 0xcf, + 0x96, 0x9a, 0xa3, 0x24, 0x99, 0xde, 0xda, 0x39, 0x07, 0xc1, 0x92, 0x0a, 0xe1, 0xda, 0x43, 0xb4, + 0x39, 0x49, 0x92, 0xe9, 0x57, 0x3b, 0xb4, 0x21, 0xc4, 0xbc, 0x89, 0xf5, 0xe5, 0xe6, 0x62, 0x47, + 0x64, 0x7b, 0xdf, 0xfc, 0x05, 0x5a, 0x1f, 0x25, 0x4f, 0x93, 0x51, 0x7e, 0x92, 0x7d, 0xef, 0x25, + 0x27, 0xc6, 0x12, 0xe1, 0x8b, 0x05, 0x34, 0x5b, 0x67, 0x3e, 0x42, 0x1b, 0xd9, 0xa1, 0x93, 0x1f, + 0x62, 0x87, 0xaf, 0xa3, 0x41, 0x46, 0x90, 0xaf, 0x33, 0x77, 0xd1, 0xfa, 0xd3, 0xfe, 0xe8, 0x49, + 0xb2, 0x5f, 0x3e, 0x28, 0x1d, 0xd6, 0x68, 0x46, 0x58, 0x09, 0xba, 0xf3, 0x82, 0x4d, 0xed, 0x41, + 0xcd, 0x88, 0x1f, 0x7b, 0x11, 0xbc, 0x25, 0x67, 0x95, 0x02, 0xca, 0xfe, 0x05, 0x43, 0xce, 0x16, + 0x05, 0x2c, 0xb6, 0xf3, 0xc6, 0x0a, 0x26, 0x76, 0xf6, 0x1d, 0xeb, 0xdf, 0xd7, 0x11, 0xac, 0x7a, + 0x26, 0x6f, 0xbb, 0x85, 0x60, 0xec, 0xe2, 0x46, 0xb7, 0x05, 0x86, 0x1c, 0xc9, 0x14, 0x48, 0xc5, + 0x94, 0x28, 0xc6, 0x23, 0x28, 0x2d, 0xa9, 0x8d, 0xe5, 0x95, 0x5a, 0x5e, 0xd6, 0x90, 0x7d, 0x47, + 0x58, 0x5b, 0xd6, 0xe0, 0x92, 0x90, 0x53, 0xd2, 0xe5, 0x18, 0xd6, 0x97, 0x19, 0x0d, 0x4a, 0x6c, + 0xd7, 0xb1, 0xe5, 0x07, 0x04, 0x31, 0x74, 0x28, 0x06, 0x0b, 0xdd, 0x46, 0xb7, 0x09, 0x9b, 0xcb, + 0x28, 0x75, 0x4e, 0x04, 0xba, 0xb5, 0xac, 0xa4, 0x83, 0x71, 0x64, 0xfb, 0xde, 0x09, 0x86, 0xca, + 0x32, 0x83, 0x90, 0x86, 0x17, 0xfa, 0x5e, 0x88, 0x01, 0x2d, 0xeb, 0xf1, 0xbd, 0xb0, 0x85, 0x29, + 0xd4, 0xcd, 0x7b, 0xc8, 0x5c, 0xd2, 0x2e, 0x86, 0x25, 0x02, 0xbb, 0xcb, 0x38, 0x0b, 0xdd, 0x0c, + 0xdf, 0xd3, 0x6a, 0xe2, 0x45, 0x31, 0x27, 0x0c, 0x8c, 0x15, 0x88, 0xfb, 0x50, 0xd2, 0xca, 0xe4, + 0x45, 0x71, 0x5b, 0x8c, 0x9a, 0x8e, 0x0f, 0xe5, 0x65, 0x98, 0x44, 0xdc, 0x23, 0x21, 0x83, 0x35, + 0xcd, 0x16, 0x77, 0xa2, 0x58, 0x3c, 0xef, 0x7d, 0xbb, 0x07, 0x86, 0x26, 0x2e, 0xf0, 0xc0, 0x3e, + 0x63, 0xb8, 0x05, 0x25, 0x2d, 0xdb, 0x02, 0x76, 0x08, 0xed, 0x40, 0x59, 0x0b, 0x5b, 0x80, 0x22, + 0x21, 0x9e, 0xeb, 0x63, 0x58, 0x33, 0xf7, 0xd1, 0xee, 0x2a, 0x23, 0xe4, 0x27, 0x3e, 0xac, 0xaf, + 0x98, 0x15, 0x1c, 0x27, 0x14, 0x65, 0x58, 0x36, 0x2b, 0x9e, 0xb0, 0x21, 0x87, 0xcd, 0x15, 0xf1, + 0x2c, 0x81, 0x47, 0xb0, 0x65, 0xbe, 0x8d, 0xee, 0x6b, 0xb8, 0x8b, 0x9b, 0x98, 0xc6, 0xb6, 0xe3, + 0xe0, 0x88, 0x43, 0x65, 0x85, 0x79, 0xea, 0x85, 0x2e, 0x39, 0x8d, 0x1d, 0xdf, 0x0e, 0x22, 0x40, + 0x2b, 0x81, 0x78, 0x61, 0x93, 0x40, 0x75, 0x25, 0x90, 0xe3, 0xae, 0xe7, 0x74, 0x6c, 0xa7, 0x03, + 0x35, 0x39, 0x11, 0x3d, 0x47, 0xf7, 0xd9, 0xe2, 0xc8, 0xca, 0xaf, 0xf3, 0x5b, 0x1d, 0xea, 0x1f, + 0xa2, 0xcd, 0xc5, 0xec, 0x50, 0x7a, 0xf5, 0xec, 0xb0, 0x90, 0xb3, 0xee, 0xa3, 0xbd, 0x17, 0x4d, + 0x4f, 0x46, 0xcf, 0x85, 0x4f, 0xad, 0x3f, 0x90, 0x4f, 0x1f, 0xa3, 0xbd, 0xd6, 0x4d, 0x3e, 0xdd, + 0x46, 0xd7, 0xbf, 0x18, 0x68, 0xdb, 0x49, 0xc7, 0xe3, 0xe4, 0x7c, 0x7e, 0x2b, 0xf7, 0x97, 0xe6, + 0x9c, 0x57, 0xdf, 0x8f, 0xc5, 0x9c, 0xf3, 0x1e, 0xda, 0x99, 0x0f, 0xaf, 0x92, 0xf4, 0xc9, 0x3c, + 0x9e, 0x25, 0xe7, 0xe9, 0x78, 0x90, 0xcd, 0x09, 0xc6, 0x4f, 0x4a, 0xef, 0x7f, 0x48, 0xb7, 0x73, + 0x16, 0xcb, 0x38, 0xd6, 0x2f, 0x51, 0x4d, 0x39, 0xf8, 0x7b, 0xba, 0x48, 0xf5, 0x21, 0xe1, 0x04, + 0xd5, 0x7d, 0x39, 0xb9, 0xdd, 0x2a, 0xfc, 0x7d, 0xb4, 0xb9, 0x98, 0x04, 0x4b, 0x72, 0x3e, 0x5f, + 0x90, 0x56, 0x1d, 0x55, 0x17, 0x7a, 0x45, 0xbb, 0x0c, 0x51, 0xdd, 0x3e, 0x3f, 0x4f, 0x26, 0xb7, + 0xcb, 0xf2, 0x0d, 0x09, 0x2b, 0xbd, 0x34, 0x61, 0xd7, 0x06, 0xaa, 0x2e, 0x6c, 0x89, 0x84, 0x1d, + 0xa1, 0xbd, 0x71, 0xf2, 0x2c, 0x7e, 0xd1, 0x5a, 0xf6, 0x66, 0xb8, 0x3b, 0x4e, 0x9e, 0xb1, 0x1b, + 0x06, 0xb9, 0xbc, 0xac, 0xaf, 0x39, 0xc8, 0x65, 0xd2, 0x39, 0x64, 0xfd, 0x97, 0x81, 0x76, 0xd8, + 0xe3, 0x27, 0x73, 0x37, 0x7d, 0x76, 0xbb, 0xbc, 0x7e, 0x80, 0xca, 0x8f, 0xd3, 0x67, 0xf9, 0x6d, + 0xfb, 0x4d, 0xbd, 0x8b, 0x97, 0xb5, 0x3e, 0x68, 0xa7, 0xcf, 0xa8, 0x10, 0x35, 0xbf, 0x85, 0xaa, + 0xb3, 0x64, 0x3c, 0x88, 0xd3, 0x8b, 0x8b, 0x59, 0x32, 0x97, 0xd7, 0x6c, 0x99, 0x22, 0x01, 0x11, + 0x89, 0x58, 0x0e, 0x2a, 0xb7, 0xd3, 0x67, 0xfa, 0x45, 0xd6, 0xee, 0xf2, 0x98, 0xba, 0xcb, 0xf7, + 0xa8, 0xc0, 0x4e, 0xc5, 0x85, 0xa7, 0xdd, 0x1b, 0x99, 0xdc, 0x29, 0x85, 0xb2, 0xb5, 0x83, 0xea, + 0x85, 0x07, 0xa2, 0xae, 0xbf, 0x42, 0x35, 0x67, 0x94, 0xce, 0x6e, 0x35, 0xed, 0x98, 0xef, 0x2c, + 0xfb, 0x2c, 0xea, 0x51, 0x96, 0x25, 0xd5, 0xfd, 0xae, 0x21, 0x94, 0x5b, 0x10, 0xf6, 0xfe, 0xcf, + 0x40, 0x55, 0x96, 0xdc, 0x72, 0xa8, 0xbd, 0x87, 0xd6, 0x06, 0xfd, 0x79, 0x5f, 0xa6, 0xb5, 0xd6, + 0x28, 0x6d, 0x19, 0x54, 0xd2, 0xe2, 0x9d, 0x38, 0x9b, 0x4f, 0x93, 0xfe, 0xd5, 0x72, 0xf6, 0x6a, + 0x19, 0x98, 0xf9, 0x61, 0xde, 0x47, 0xeb, 0x17, 0xa3, 0xfe, 0xe5, 0x4c, 0x0e, 0xe4, 0xf2, 0xc9, + 0x93, 0xd1, 0x62, 0x3e, 0x93, 0x51, 0xcc, 0x53, 0xf9, 0x1a, 0x7a, 0xc5, 0x7c, 0x26, 0xc4, 0x78, + 0x7a, 0x53, 0x37, 0x6f, 0xbc, 0xb4, 0x9b, 0x0f, 0x51, 0x25, 0x8b, 0x57, 0xb4, 0xf2, 0xdb, 0xa8, + 0x22, 0x1c, 0x8e, 0x67, 0xc9, 0x78, 0x9e, 0xfd, 0x30, 0x42, 0xb7, 0x04, 0xc0, 0x92, 0xf1, 0xdc, + 0xfa, 0x4f, 0x03, 0x6d, 0xd3, 0xe4, 0x3c, 0x19, 0x3e, 0xbd, 0x5d, 0x35, 0x94, 0xf2, 0xe1, 0x17, + 0x49, 0xbe, 0x9b, 0x33, 0xe5, 0xc3, 0x2f, 0x92, 0x22, 0xfa, 0xf2, 0x4a, 0xf4, 0x37, 0x04, 0xb3, + 0xfe, 0xd2, 0x60, 0x2c, 0xb4, 0xde, 0x94, 0xab, 0xaa, 0x68, 0x33, 0x60, 0x2d, 0x31, 0xa8, 0x80, + 0x61, 0xd6, 0xd0, 0x96, 0x20, 0x22, 0x8c, 0x3b, 0x50, 0xb2, 0xfe, 0xd5, 0x40, 0x35, 0x15, 0x86, + 0x08, 0xfa, 0x85, 0xea, 0xc8, 0x3e, 0x59, 0xa9, 0xce, 0xa2, 0xb4, 0xc2, 0x3d, 0xbd, 0xb4, 0x3f, + 0x45, 0xf5, 0x69, 0xa6, 0x6c, 0x10, 0x5f, 0x4c, 0xd3, 0xab, 0xaf, 0x78, 0x4e, 0xd5, 0x16, 0xc2, + 0xcd, 0x69, 0x7a, 0x25, 0xf6, 0xd4, 0xa7, 0x4f, 0x2e, 0x2e, 0x92, 0x69, 0x96, 0x13, 0xf9, 0xd6, + 0xa5, 0x28, 0x83, 0x44, 0x56, 0xac, 0x2f, 0xcb, 0xa8, 0x12, 0xa5, 0xa3, 0x11, 0x7e, 0x9a, 0x8c, + 0xdf, 0x30, 0xdb, 0xdf, 0x43, 0x30, 0xcd, 0xaa, 0x94, 0x0c, 0xe2, 0x44, 0xac, 0x9f, 0xe5, 0x49, + 0xdf, 0x51, 0xb8, 0x54, 0x3b, 0x33, 0xbf, 0x8b, 0x76, 0xd2, 0x4f, 0xe5, 0x4b, 0x51, 0x49, 0x96, + 0xa5, 0xe4, 0xf6, 0x02, 0xce, 0x04, 0xad, 0xff, 0x28, 0xa1, 0xba, 0x72, 0x47, 0x24, 0x5a, 0x9b, + 0x35, 0x22, 0xe2, 0xfb, 0x21, 0x09, 0x31, 0xbc, 0xa5, 0x4d, 0x6e, 0x02, 0xf4, 0xc2, 0xa5, 0x13, + 0x40, 0x40, 0x11, 0xf5, 0x96, 0x46, 0x5e, 0x81, 0x91, 0x2e, 0x87, 0xb5, 0x15, 0x0c, 0x53, 0x0a, + 0x5b, 0x2b, 0x58, 0xbb, 0x1b, 0x01, 0xac, 0xda, 0x3d, 0xb1, 0x7d, 0x38, 0xd0, 0x26, 0x2c, 0x01, + 0x52, 0x37, 0x24, 0x34, 0x80, 0x47, 0xe6, 0xbd, 0x15, 0xb8, 0x61, 0x87, 0xf2, 0x1b, 0xd3, 0x32, + 0x7e, 0x4a, 0xa5, 0xf8, 0x75, 0xe9, 0x05, 0x3c, 0x93, 0x5f, 0x93, 0x1f, 0x9f, 0x0a, 0x3c, 0x60, + 0x2d, 0xb8, 0xde, 0x5a, 0x55, 0x8e, 0x03, 0x72, 0x82, 0xe1, 0xfa, 0x40, 0x7e, 0xc0, 0xd2, 0x8d, + 0x0a, 0xb7, 0xaf, 0x1f, 0x59, 0x8f, 0x51, 0x55, 0x24, 0x70, 0xb1, 0x7f, 0x7e, 0x80, 0x36, 0xf2, + 0x84, 0x1b, 0x72, 0x9e, 0xd8, 0xd5, 0xda, 0x46, 0x25, 0x9a, 0xe6, 0x32, 0x6f, 0x76, 0x4b, 0xfd, + 0x38, 0xeb, 0x9c, 0xac, 0xc5, 0x0b, 0x3b, 0xa5, 0xaf, 0xb6, 0x63, 0xfd, 0x56, 0xec, 0xf3, 0x59, + 0x3a, 0x2a, 0xf6, 0xb9, 0x89, 0xd6, 0xc6, 0xfd, 0xab, 0x24, 0x6f, 0x36, 0xf9, 0xbf, 0x79, 0x82, + 0x20, 0xbf, 0xbb, 0x62, 0xf9, 0x31, 0x6a, 0x98, 0x64, 0xda, 0xdf, 0xf0, 0x4b, 0xd6, 0x4e, 0xae, + 0xa4, 0x99, 0xeb, 0xb0, 0xfe, 0xbb, 0x2c, 0xf6, 0x67, 0x6e, 0x5e, 0x38, 0x7f, 0xd3, 0xc7, 0xb8, + 0xf2, 0x8b, 0x1f, 0xe3, 0xde, 0x45, 0xdb, 0xe7, 0xfd, 0x71, 0x3a, 0x1e, 0x9e, 0xf7, 0x47, 0xb1, + 0xf4, 0x36, 0xfb, 0x1a, 0x57, 0x57, 0xa8, 0x7c, 0x96, 0xed, 0xa3, 0xcd, 0xfe, 0x68, 0xd8, 0x9f, + 0x25, 0xe2, 0xa0, 0x2d, 0x1f, 0x56, 0xe8, 0x82, 0xb4, 0xfe, 0xb7, 0xa4, 0xff, 0xa0, 0xfb, 0x35, + 0xb4, 0x97, 0x17, 0x10, 0xdb, 0x5e, 0x2c, 0x5e, 0x69, 0x4d, 0x3b, 0xf0, 0x7c, 0xf1, 0x80, 0x28, + 0xae, 0x2e, 0xc9, 0x92, 0xbf, 0x65, 0x96, 0xb4, 0x09, 0x5b, 0xa0, 0x0d, 0xdb, 0x6d, 0xfa, 0x76, + 0x8b, 0x2d, 0x3d, 0xe3, 0x04, 0xa3, 0x69, 0x7b, 0x7e, 0xf6, 0x0b, 0xf0, 0x12, 0x28, 0x55, 0xaf, + 0xaf, 0xc0, 0x01, 0x0e, 0x08, 0xed, 0x2d, 0xbd, 0x1d, 0x04, 0x9c, 0xff, 0x1c, 0xb4, 0xf9, 0x02, + 0x1c, 0xda, 0x01, 0x86, 0x2d, 0xed, 0x49, 0x21, 0x60, 0x86, 0xe9, 0x89, 0xe7, 0x2c, 0xbf, 0xe1, + 0x24, 0x4e, 0x9c, 0x8e, 0x7c, 0x68, 0xa2, 0x15, 0x3d, 0xd9, 0xef, 0xd8, 0x4b, 0x6f, 0x86, 0x3c, + 0xa2, 0xb6, 0x17, 0x72, 0x06, 0xb5, 0x15, 0x86, 0xfc, 0xdd, 0xc1, 0x21, 0x3e, 0xd4, 0x57, 0x18, + 0xea, 0x37, 0x9d, 0x6d, 0x6d, 0x0f, 0xcb, 0xb8, 0xec, 0x33, 0xd8, 0x69, 0x6c, 0x7d, 0xb2, 0x91, + 0x9d, 0x5a, 0xff, 0x1f, 0x00, 0x00, 0xff, 0xff, 0x31, 0x03, 0x4e, 0xbd, 0xfd, 0x1f, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/appengine/internal/socket/socket_service.proto b/vendor/google.golang.org/appengine/internal/socket/socket_service.proto new file mode 100644 index 000000000..2fcc7953d --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/socket/socket_service.proto @@ -0,0 +1,460 @@ +syntax = "proto2"; +option go_package = "socket"; + +package appengine; + +message RemoteSocketServiceError { + enum ErrorCode { + SYSTEM_ERROR = 1; + GAI_ERROR = 2; + FAILURE = 4; + PERMISSION_DENIED = 5; + INVALID_REQUEST = 6; + SOCKET_CLOSED = 7; + } + + enum SystemError { + option allow_alias = true; + + SYS_SUCCESS = 0; + SYS_EPERM = 1; + SYS_ENOENT = 2; + SYS_ESRCH = 3; + SYS_EINTR = 4; + SYS_EIO = 5; + SYS_ENXIO = 6; + SYS_E2BIG = 7; + SYS_ENOEXEC = 8; + SYS_EBADF = 9; + SYS_ECHILD = 10; + SYS_EAGAIN = 11; + SYS_EWOULDBLOCK = 11; + SYS_ENOMEM = 12; + SYS_EACCES = 13; + SYS_EFAULT = 14; + SYS_ENOTBLK = 15; + SYS_EBUSY = 16; + SYS_EEXIST = 17; + SYS_EXDEV = 18; + SYS_ENODEV = 19; + SYS_ENOTDIR = 20; + SYS_EISDIR = 21; + SYS_EINVAL = 22; + SYS_ENFILE = 23; + SYS_EMFILE = 24; + SYS_ENOTTY = 25; + SYS_ETXTBSY = 26; + SYS_EFBIG = 27; + SYS_ENOSPC = 28; + SYS_ESPIPE = 29; + SYS_EROFS = 30; + SYS_EMLINK = 31; + SYS_EPIPE = 32; + SYS_EDOM = 33; + SYS_ERANGE = 34; + SYS_EDEADLK = 35; + SYS_EDEADLOCK = 35; + SYS_ENAMETOOLONG = 36; + SYS_ENOLCK = 37; + SYS_ENOSYS = 38; + SYS_ENOTEMPTY = 39; + SYS_ELOOP = 40; + SYS_ENOMSG = 42; + SYS_EIDRM = 43; + SYS_ECHRNG = 44; + SYS_EL2NSYNC = 45; + SYS_EL3HLT = 46; + SYS_EL3RST = 47; + SYS_ELNRNG = 48; + SYS_EUNATCH = 49; + SYS_ENOCSI = 50; + SYS_EL2HLT = 51; + SYS_EBADE = 52; + SYS_EBADR = 53; + SYS_EXFULL = 54; + SYS_ENOANO = 55; + SYS_EBADRQC = 56; + SYS_EBADSLT = 57; + SYS_EBFONT = 59; + SYS_ENOSTR = 60; + SYS_ENODATA = 61; + SYS_ETIME = 62; + SYS_ENOSR = 63; + SYS_ENONET = 64; + SYS_ENOPKG = 65; + SYS_EREMOTE = 66; + SYS_ENOLINK = 67; + SYS_EADV = 68; + SYS_ESRMNT = 69; + SYS_ECOMM = 70; + SYS_EPROTO = 71; + SYS_EMULTIHOP = 72; + SYS_EDOTDOT = 73; + SYS_EBADMSG = 74; + SYS_EOVERFLOW = 75; + SYS_ENOTUNIQ = 76; + SYS_EBADFD = 77; + SYS_EREMCHG = 78; + SYS_ELIBACC = 79; + SYS_ELIBBAD = 80; + SYS_ELIBSCN = 81; + SYS_ELIBMAX = 82; + SYS_ELIBEXEC = 83; + SYS_EILSEQ = 84; + SYS_ERESTART = 85; + SYS_ESTRPIPE = 86; + SYS_EUSERS = 87; + SYS_ENOTSOCK = 88; + SYS_EDESTADDRREQ = 89; + SYS_EMSGSIZE = 90; + SYS_EPROTOTYPE = 91; + SYS_ENOPROTOOPT = 92; + SYS_EPROTONOSUPPORT = 93; + SYS_ESOCKTNOSUPPORT = 94; + SYS_EOPNOTSUPP = 95; + SYS_ENOTSUP = 95; + SYS_EPFNOSUPPORT = 96; + SYS_EAFNOSUPPORT = 97; + SYS_EADDRINUSE = 98; + SYS_EADDRNOTAVAIL = 99; + SYS_ENETDOWN = 100; + SYS_ENETUNREACH = 101; + SYS_ENETRESET = 102; + SYS_ECONNABORTED = 103; + SYS_ECONNRESET = 104; + SYS_ENOBUFS = 105; + SYS_EISCONN = 106; + SYS_ENOTCONN = 107; + SYS_ESHUTDOWN = 108; + SYS_ETOOMANYREFS = 109; + SYS_ETIMEDOUT = 110; + SYS_ECONNREFUSED = 111; + SYS_EHOSTDOWN = 112; + SYS_EHOSTUNREACH = 113; + SYS_EALREADY = 114; + SYS_EINPROGRESS = 115; + SYS_ESTALE = 116; + SYS_EUCLEAN = 117; + SYS_ENOTNAM = 118; + SYS_ENAVAIL = 119; + SYS_EISNAM = 120; + SYS_EREMOTEIO = 121; + SYS_EDQUOT = 122; + SYS_ENOMEDIUM = 123; + SYS_EMEDIUMTYPE = 124; + SYS_ECANCELED = 125; + SYS_ENOKEY = 126; + SYS_EKEYEXPIRED = 127; + SYS_EKEYREVOKED = 128; + SYS_EKEYREJECTED = 129; + SYS_EOWNERDEAD = 130; + SYS_ENOTRECOVERABLE = 131; + SYS_ERFKILL = 132; + } + + optional int32 system_error = 1 [default=0]; + optional string error_detail = 2; +} + +message AddressPort { + required int32 port = 1; + optional bytes packed_address = 2; + + optional string hostname_hint = 3; +} + + + +message CreateSocketRequest { + enum SocketFamily { + IPv4 = 1; + IPv6 = 2; + } + + enum SocketProtocol { + TCP = 1; + UDP = 2; + } + + required SocketFamily family = 1; + required SocketProtocol protocol = 2; + + repeated SocketOption socket_options = 3; + + optional AddressPort proxy_external_ip = 4; + + optional int32 listen_backlog = 5 [default=0]; + + optional AddressPort remote_ip = 6; + + optional string app_id = 9; + + optional int64 project_id = 10; +} + +message CreateSocketReply { + optional string socket_descriptor = 1; + + optional AddressPort server_address = 3; + + optional AddressPort proxy_external_ip = 4; + + extensions 1000 to max; +} + + + +message BindRequest { + required string socket_descriptor = 1; + required AddressPort proxy_external_ip = 2; +} + +message BindReply { + optional AddressPort proxy_external_ip = 1; +} + + + +message GetSocketNameRequest { + required string socket_descriptor = 1; +} + +message GetSocketNameReply { + optional AddressPort proxy_external_ip = 2; +} + + + +message GetPeerNameRequest { + required string socket_descriptor = 1; +} + +message GetPeerNameReply { + optional AddressPort peer_ip = 2; +} + + +message SocketOption { + + enum SocketOptionLevel { + SOCKET_SOL_IP = 0; + SOCKET_SOL_SOCKET = 1; + SOCKET_SOL_TCP = 6; + SOCKET_SOL_UDP = 17; + } + + enum SocketOptionName { + option allow_alias = true; + + SOCKET_SO_DEBUG = 1; + SOCKET_SO_REUSEADDR = 2; + SOCKET_SO_TYPE = 3; + SOCKET_SO_ERROR = 4; + SOCKET_SO_DONTROUTE = 5; + SOCKET_SO_BROADCAST = 6; + SOCKET_SO_SNDBUF = 7; + SOCKET_SO_RCVBUF = 8; + SOCKET_SO_KEEPALIVE = 9; + SOCKET_SO_OOBINLINE = 10; + SOCKET_SO_LINGER = 13; + SOCKET_SO_RCVTIMEO = 20; + SOCKET_SO_SNDTIMEO = 21; + + SOCKET_IP_TOS = 1; + SOCKET_IP_TTL = 2; + SOCKET_IP_HDRINCL = 3; + SOCKET_IP_OPTIONS = 4; + + SOCKET_TCP_NODELAY = 1; + SOCKET_TCP_MAXSEG = 2; + SOCKET_TCP_CORK = 3; + SOCKET_TCP_KEEPIDLE = 4; + SOCKET_TCP_KEEPINTVL = 5; + SOCKET_TCP_KEEPCNT = 6; + SOCKET_TCP_SYNCNT = 7; + SOCKET_TCP_LINGER2 = 8; + SOCKET_TCP_DEFER_ACCEPT = 9; + SOCKET_TCP_WINDOW_CLAMP = 10; + SOCKET_TCP_INFO = 11; + SOCKET_TCP_QUICKACK = 12; + } + + required SocketOptionLevel level = 1; + required SocketOptionName option = 2; + required bytes value = 3; +} + + +message SetSocketOptionsRequest { + required string socket_descriptor = 1; + repeated SocketOption options = 2; +} + +message SetSocketOptionsReply { +} + +message GetSocketOptionsRequest { + required string socket_descriptor = 1; + repeated SocketOption options = 2; +} + +message GetSocketOptionsReply { + repeated SocketOption options = 2; +} + + +message ConnectRequest { + required string socket_descriptor = 1; + required AddressPort remote_ip = 2; + optional double timeout_seconds = 3 [default=-1]; +} + +message ConnectReply { + optional AddressPort proxy_external_ip = 1; + + extensions 1000 to max; +} + + +message ListenRequest { + required string socket_descriptor = 1; + required int32 backlog = 2; +} + +message ListenReply { +} + + +message AcceptRequest { + required string socket_descriptor = 1; + optional double timeout_seconds = 2 [default=-1]; +} + +message AcceptReply { + optional bytes new_socket_descriptor = 2; + optional AddressPort remote_address = 3; +} + + + +message ShutDownRequest { + enum How { + SOCKET_SHUT_RD = 1; + SOCKET_SHUT_WR = 2; + SOCKET_SHUT_RDWR = 3; + } + required string socket_descriptor = 1; + required How how = 2; + required int64 send_offset = 3; +} + +message ShutDownReply { +} + + + +message CloseRequest { + required string socket_descriptor = 1; + optional int64 send_offset = 2 [default=-1]; +} + +message CloseReply { +} + + + +message SendRequest { + required string socket_descriptor = 1; + required bytes data = 2 [ctype=CORD]; + required int64 stream_offset = 3; + optional int32 flags = 4 [default=0]; + optional AddressPort send_to = 5; + optional double timeout_seconds = 6 [default=-1]; +} + +message SendReply { + optional int32 data_sent = 1; +} + + +message ReceiveRequest { + enum Flags { + MSG_OOB = 1; + MSG_PEEK = 2; + } + required string socket_descriptor = 1; + required int32 data_size = 2; + optional int32 flags = 3 [default=0]; + optional double timeout_seconds = 5 [default=-1]; +} + +message ReceiveReply { + optional int64 stream_offset = 2; + optional bytes data = 3 [ctype=CORD]; + optional AddressPort received_from = 4; + optional int32 buffer_size = 5; +} + + + +message PollEvent { + + enum PollEventFlag { + SOCKET_POLLNONE = 0; + SOCKET_POLLIN = 1; + SOCKET_POLLPRI = 2; + SOCKET_POLLOUT = 4; + SOCKET_POLLERR = 8; + SOCKET_POLLHUP = 16; + SOCKET_POLLNVAL = 32; + SOCKET_POLLRDNORM = 64; + SOCKET_POLLRDBAND = 128; + SOCKET_POLLWRNORM = 256; + SOCKET_POLLWRBAND = 512; + SOCKET_POLLMSG = 1024; + SOCKET_POLLREMOVE = 4096; + SOCKET_POLLRDHUP = 8192; + }; + + required string socket_descriptor = 1; + required int32 requested_events = 2; + required int32 observed_events = 3; +} + +message PollRequest { + repeated PollEvent events = 1; + optional double timeout_seconds = 2 [default=-1]; +} + +message PollReply { + repeated PollEvent events = 2; +} + +message ResolveRequest { + required string name = 1; + repeated CreateSocketRequest.SocketFamily address_families = 2; +} + +message ResolveReply { + enum ErrorCode { + SOCKET_EAI_ADDRFAMILY = 1; + SOCKET_EAI_AGAIN = 2; + SOCKET_EAI_BADFLAGS = 3; + SOCKET_EAI_FAIL = 4; + SOCKET_EAI_FAMILY = 5; + SOCKET_EAI_MEMORY = 6; + SOCKET_EAI_NODATA = 7; + SOCKET_EAI_NONAME = 8; + SOCKET_EAI_SERVICE = 9; + SOCKET_EAI_SOCKTYPE = 10; + SOCKET_EAI_SYSTEM = 11; + SOCKET_EAI_BADHINTS = 12; + SOCKET_EAI_PROTOCOL = 13; + SOCKET_EAI_OVERFLOW = 14; + SOCKET_EAI_MAX = 15; + }; + + repeated bytes packed_address = 2; + optional string canonical_name = 3; + repeated string aliases = 4; +} diff --git a/vendor/google.golang.org/appengine/internal/system/system_service.pb.go b/vendor/google.golang.org/appengine/internal/system/system_service.pb.go new file mode 100644 index 000000000..9ff458ed6 --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/system/system_service.pb.go @@ -0,0 +1,362 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google.golang.org/appengine/internal/system/system_service.proto + +package system + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +type SystemServiceError_ErrorCode int32 + +const ( + SystemServiceError_OK SystemServiceError_ErrorCode = 0 + SystemServiceError_INTERNAL_ERROR SystemServiceError_ErrorCode = 1 + SystemServiceError_BACKEND_REQUIRED SystemServiceError_ErrorCode = 2 + SystemServiceError_LIMIT_REACHED SystemServiceError_ErrorCode = 3 +) + +var SystemServiceError_ErrorCode_name = map[int32]string{ + 0: "OK", + 1: "INTERNAL_ERROR", + 2: "BACKEND_REQUIRED", + 3: "LIMIT_REACHED", +} +var SystemServiceError_ErrorCode_value = map[string]int32{ + "OK": 0, + "INTERNAL_ERROR": 1, + "BACKEND_REQUIRED": 2, + "LIMIT_REACHED": 3, +} + +func (x SystemServiceError_ErrorCode) Enum() *SystemServiceError_ErrorCode { + p := new(SystemServiceError_ErrorCode) + *p = x + return p +} +func (x SystemServiceError_ErrorCode) String() string { + return proto.EnumName(SystemServiceError_ErrorCode_name, int32(x)) +} +func (x *SystemServiceError_ErrorCode) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(SystemServiceError_ErrorCode_value, data, "SystemServiceError_ErrorCode") + if err != nil { + return err + } + *x = SystemServiceError_ErrorCode(value) + return nil +} +func (SystemServiceError_ErrorCode) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_system_service_ccf41ec210fc59eb, []int{0, 0} +} + +type SystemServiceError struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SystemServiceError) Reset() { *m = SystemServiceError{} } +func (m *SystemServiceError) String() string { return proto.CompactTextString(m) } +func (*SystemServiceError) ProtoMessage() {} +func (*SystemServiceError) Descriptor() ([]byte, []int) { + return fileDescriptor_system_service_ccf41ec210fc59eb, []int{0} +} +func (m *SystemServiceError) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SystemServiceError.Unmarshal(m, b) +} +func (m *SystemServiceError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SystemServiceError.Marshal(b, m, deterministic) +} +func (dst *SystemServiceError) XXX_Merge(src proto.Message) { + xxx_messageInfo_SystemServiceError.Merge(dst, src) +} +func (m *SystemServiceError) XXX_Size() int { + return xxx_messageInfo_SystemServiceError.Size(m) +} +func (m *SystemServiceError) XXX_DiscardUnknown() { + xxx_messageInfo_SystemServiceError.DiscardUnknown(m) +} + +var xxx_messageInfo_SystemServiceError proto.InternalMessageInfo + +type SystemStat struct { + // Instaneous value of this stat. + Current *float64 `protobuf:"fixed64,1,opt,name=current" json:"current,omitempty"` + // Average over time, if this stat has an instaneous value. + Average1M *float64 `protobuf:"fixed64,3,opt,name=average1m" json:"average1m,omitempty"` + Average10M *float64 `protobuf:"fixed64,4,opt,name=average10m" json:"average10m,omitempty"` + // Total value, if the stat accumulates over time. + Total *float64 `protobuf:"fixed64,2,opt,name=total" json:"total,omitempty"` + // Rate over time, if this stat accumulates. + Rate1M *float64 `protobuf:"fixed64,5,opt,name=rate1m" json:"rate1m,omitempty"` + Rate10M *float64 `protobuf:"fixed64,6,opt,name=rate10m" json:"rate10m,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SystemStat) Reset() { *m = SystemStat{} } +func (m *SystemStat) String() string { return proto.CompactTextString(m) } +func (*SystemStat) ProtoMessage() {} +func (*SystemStat) Descriptor() ([]byte, []int) { + return fileDescriptor_system_service_ccf41ec210fc59eb, []int{1} +} +func (m *SystemStat) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SystemStat.Unmarshal(m, b) +} +func (m *SystemStat) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SystemStat.Marshal(b, m, deterministic) +} +func (dst *SystemStat) XXX_Merge(src proto.Message) { + xxx_messageInfo_SystemStat.Merge(dst, src) +} +func (m *SystemStat) XXX_Size() int { + return xxx_messageInfo_SystemStat.Size(m) +} +func (m *SystemStat) XXX_DiscardUnknown() { + xxx_messageInfo_SystemStat.DiscardUnknown(m) +} + +var xxx_messageInfo_SystemStat proto.InternalMessageInfo + +func (m *SystemStat) GetCurrent() float64 { + if m != nil && m.Current != nil { + return *m.Current + } + return 0 +} + +func (m *SystemStat) GetAverage1M() float64 { + if m != nil && m.Average1M != nil { + return *m.Average1M + } + return 0 +} + +func (m *SystemStat) GetAverage10M() float64 { + if m != nil && m.Average10M != nil { + return *m.Average10M + } + return 0 +} + +func (m *SystemStat) GetTotal() float64 { + if m != nil && m.Total != nil { + return *m.Total + } + return 0 +} + +func (m *SystemStat) GetRate1M() float64 { + if m != nil && m.Rate1M != nil { + return *m.Rate1M + } + return 0 +} + +func (m *SystemStat) GetRate10M() float64 { + if m != nil && m.Rate10M != nil { + return *m.Rate10M + } + return 0 +} + +type GetSystemStatsRequest struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetSystemStatsRequest) Reset() { *m = GetSystemStatsRequest{} } +func (m *GetSystemStatsRequest) String() string { return proto.CompactTextString(m) } +func (*GetSystemStatsRequest) ProtoMessage() {} +func (*GetSystemStatsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_system_service_ccf41ec210fc59eb, []int{2} +} +func (m *GetSystemStatsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetSystemStatsRequest.Unmarshal(m, b) +} +func (m *GetSystemStatsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetSystemStatsRequest.Marshal(b, m, deterministic) +} +func (dst *GetSystemStatsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetSystemStatsRequest.Merge(dst, src) +} +func (m *GetSystemStatsRequest) XXX_Size() int { + return xxx_messageInfo_GetSystemStatsRequest.Size(m) +} +func (m *GetSystemStatsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetSystemStatsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetSystemStatsRequest proto.InternalMessageInfo + +type GetSystemStatsResponse struct { + // CPU used by this instance, in mcycles. + Cpu *SystemStat `protobuf:"bytes,1,opt,name=cpu" json:"cpu,omitempty"` + // Physical memory (RAM) used by this instance, in megabytes. + Memory *SystemStat `protobuf:"bytes,2,opt,name=memory" json:"memory,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetSystemStatsResponse) Reset() { *m = GetSystemStatsResponse{} } +func (m *GetSystemStatsResponse) String() string { return proto.CompactTextString(m) } +func (*GetSystemStatsResponse) ProtoMessage() {} +func (*GetSystemStatsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_system_service_ccf41ec210fc59eb, []int{3} +} +func (m *GetSystemStatsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetSystemStatsResponse.Unmarshal(m, b) +} +func (m *GetSystemStatsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetSystemStatsResponse.Marshal(b, m, deterministic) +} +func (dst *GetSystemStatsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetSystemStatsResponse.Merge(dst, src) +} +func (m *GetSystemStatsResponse) XXX_Size() int { + return xxx_messageInfo_GetSystemStatsResponse.Size(m) +} +func (m *GetSystemStatsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_GetSystemStatsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_GetSystemStatsResponse proto.InternalMessageInfo + +func (m *GetSystemStatsResponse) GetCpu() *SystemStat { + if m != nil { + return m.Cpu + } + return nil +} + +func (m *GetSystemStatsResponse) GetMemory() *SystemStat { + if m != nil { + return m.Memory + } + return nil +} + +type StartBackgroundRequestRequest struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *StartBackgroundRequestRequest) Reset() { *m = StartBackgroundRequestRequest{} } +func (m *StartBackgroundRequestRequest) String() string { return proto.CompactTextString(m) } +func (*StartBackgroundRequestRequest) ProtoMessage() {} +func (*StartBackgroundRequestRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_system_service_ccf41ec210fc59eb, []int{4} +} +func (m *StartBackgroundRequestRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_StartBackgroundRequestRequest.Unmarshal(m, b) +} +func (m *StartBackgroundRequestRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_StartBackgroundRequestRequest.Marshal(b, m, deterministic) +} +func (dst *StartBackgroundRequestRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_StartBackgroundRequestRequest.Merge(dst, src) +} +func (m *StartBackgroundRequestRequest) XXX_Size() int { + return xxx_messageInfo_StartBackgroundRequestRequest.Size(m) +} +func (m *StartBackgroundRequestRequest) XXX_DiscardUnknown() { + xxx_messageInfo_StartBackgroundRequestRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_StartBackgroundRequestRequest proto.InternalMessageInfo + +type StartBackgroundRequestResponse struct { + // Every /_ah/background request will have an X-AppEngine-BackgroundRequest + // header, whose value will be equal to this parameter, the request_id. + RequestId *string `protobuf:"bytes,1,opt,name=request_id,json=requestId" json:"request_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *StartBackgroundRequestResponse) Reset() { *m = StartBackgroundRequestResponse{} } +func (m *StartBackgroundRequestResponse) String() string { return proto.CompactTextString(m) } +func (*StartBackgroundRequestResponse) ProtoMessage() {} +func (*StartBackgroundRequestResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_system_service_ccf41ec210fc59eb, []int{5} +} +func (m *StartBackgroundRequestResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_StartBackgroundRequestResponse.Unmarshal(m, b) +} +func (m *StartBackgroundRequestResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_StartBackgroundRequestResponse.Marshal(b, m, deterministic) +} +func (dst *StartBackgroundRequestResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_StartBackgroundRequestResponse.Merge(dst, src) +} +func (m *StartBackgroundRequestResponse) XXX_Size() int { + return xxx_messageInfo_StartBackgroundRequestResponse.Size(m) +} +func (m *StartBackgroundRequestResponse) XXX_DiscardUnknown() { + xxx_messageInfo_StartBackgroundRequestResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_StartBackgroundRequestResponse proto.InternalMessageInfo + +func (m *StartBackgroundRequestResponse) GetRequestId() string { + if m != nil && m.RequestId != nil { + return *m.RequestId + } + return "" +} + +func init() { + proto.RegisterType((*SystemServiceError)(nil), "appengine.SystemServiceError") + proto.RegisterType((*SystemStat)(nil), "appengine.SystemStat") + proto.RegisterType((*GetSystemStatsRequest)(nil), "appengine.GetSystemStatsRequest") + proto.RegisterType((*GetSystemStatsResponse)(nil), "appengine.GetSystemStatsResponse") + proto.RegisterType((*StartBackgroundRequestRequest)(nil), "appengine.StartBackgroundRequestRequest") + proto.RegisterType((*StartBackgroundRequestResponse)(nil), "appengine.StartBackgroundRequestResponse") +} + +func init() { + proto.RegisterFile("google.golang.org/appengine/internal/system/system_service.proto", fileDescriptor_system_service_ccf41ec210fc59eb) +} + +var fileDescriptor_system_service_ccf41ec210fc59eb = []byte{ + // 377 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x92, 0x4f, 0x8f, 0x93, 0x40, + 0x18, 0xc6, 0xa5, 0x75, 0x51, 0x5e, 0xa3, 0xc1, 0xc9, 0xee, 0xca, 0xc1, 0x5d, 0x0d, 0x17, 0xbd, + 0x48, 0x57, 0xbf, 0x80, 0xf6, 0xcf, 0x44, 0x49, 0x6b, 0xab, 0xd3, 0x7a, 0xf1, 0x42, 0x26, 0xf0, + 0x3a, 0x21, 0xc2, 0x0c, 0x0e, 0x43, 0x93, 0x7e, 0x27, 0x3f, 0xa4, 0xe9, 0x30, 0x6d, 0xcd, 0x26, + 0x3d, 0x31, 0xcf, 0xf3, 0xfc, 0x02, 0x3f, 0x08, 0xf0, 0x49, 0x28, 0x25, 0x2a, 0x4c, 0x84, 0xaa, + 0xb8, 0x14, 0x89, 0xd2, 0x62, 0xc4, 0x9b, 0x06, 0xa5, 0x28, 0x25, 0x8e, 0x4a, 0x69, 0x50, 0x4b, + 0x5e, 0x8d, 0xda, 0x5d, 0x6b, 0xb0, 0x76, 0x97, 0xac, 0x45, 0xbd, 0x2d, 0x73, 0x4c, 0x1a, 0xad, + 0x8c, 0x22, 0xc1, 0x91, 0x8f, 0x7f, 0x01, 0x59, 0x5b, 0x64, 0xdd, 0x13, 0x54, 0x6b, 0xa5, 0xe3, + 0x6f, 0x10, 0xd8, 0xc3, 0x54, 0x15, 0x48, 0x7c, 0x18, 0xac, 0xe6, 0xe1, 0x03, 0x42, 0xe0, 0x59, + 0xba, 0xdc, 0x50, 0xb6, 0x1c, 0x2f, 0x32, 0xca, 0xd8, 0x8a, 0x85, 0x1e, 0xb9, 0x84, 0x70, 0x32, + 0x9e, 0xce, 0xe9, 0x72, 0x96, 0x31, 0xfa, 0xfd, 0x47, 0xca, 0xe8, 0x2c, 0x1c, 0x90, 0xe7, 0xf0, + 0x74, 0x91, 0x7e, 0x4d, 0x37, 0x19, 0xa3, 0xe3, 0xe9, 0x17, 0x3a, 0x0b, 0x87, 0xf1, 0x5f, 0x0f, + 0xc0, 0x3d, 0xc8, 0x70, 0x43, 0x22, 0x78, 0x94, 0x77, 0x5a, 0xa3, 0x34, 0x91, 0xf7, 0xda, 0x7b, + 0xeb, 0xb1, 0x43, 0x24, 0x2f, 0x21, 0xe0, 0x5b, 0xd4, 0x5c, 0xe0, 0xfb, 0x3a, 0x1a, 0xda, 0xed, + 0x54, 0x90, 0x5b, 0x80, 0x43, 0xb8, 0xab, 0xa3, 0x87, 0x76, 0xfe, 0xaf, 0x21, 0x97, 0x70, 0x61, + 0x94, 0xe1, 0x55, 0x34, 0xb0, 0x53, 0x1f, 0xc8, 0x35, 0xf8, 0x9a, 0x9b, 0xfd, 0x0d, 0x2f, 0x6c, + 0xed, 0xd2, 0xde, 0xc2, 0x9e, 0xee, 0xea, 0xc8, 0xef, 0x2d, 0x5c, 0x8c, 0x5f, 0xc0, 0xd5, 0x67, + 0x34, 0x27, 0xe1, 0x96, 0xe1, 0x9f, 0x0e, 0x5b, 0x13, 0x37, 0x70, 0x7d, 0x7f, 0x68, 0x1b, 0x25, + 0x5b, 0x24, 0x6f, 0x60, 0x98, 0x37, 0x9d, 0x7d, 0x9d, 0x27, 0x1f, 0xae, 0x92, 0xe3, 0x27, 0x4e, + 0x4e, 0x30, 0xdb, 0x13, 0xe4, 0x1d, 0xf8, 0x35, 0xd6, 0x4a, 0xef, 0xac, 0xe4, 0x59, 0xd6, 0x41, + 0xf1, 0x2b, 0xb8, 0x59, 0x1b, 0xae, 0xcd, 0x84, 0xe7, 0xbf, 0x85, 0x56, 0x9d, 0x2c, 0x9c, 0xcb, + 0x41, 0xe9, 0x23, 0xdc, 0x9e, 0x03, 0x9c, 0xda, 0x0d, 0x80, 0xee, 0xab, 0xac, 0x2c, 0xac, 0x61, + 0xc0, 0x02, 0xd7, 0xa4, 0xc5, 0xe4, 0xf1, 0x4f, 0xbf, 0xff, 0x4d, 0xfe, 0x05, 0x00, 0x00, 0xff, + 0xff, 0x56, 0x5d, 0x5e, 0xc3, 0x5b, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/appengine/internal/system/system_service.proto b/vendor/google.golang.org/appengine/internal/system/system_service.proto new file mode 100644 index 000000000..32c0bf859 --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/system/system_service.proto @@ -0,0 +1,49 @@ +syntax = "proto2"; +option go_package = "system"; + +package appengine; + +message SystemServiceError { + enum ErrorCode { + OK = 0; + INTERNAL_ERROR = 1; + BACKEND_REQUIRED = 2; + LIMIT_REACHED = 3; + } +} + +message SystemStat { + // Instaneous value of this stat. + optional double current = 1; + + // Average over time, if this stat has an instaneous value. + optional double average1m = 3; + optional double average10m = 4; + + // Total value, if the stat accumulates over time. + optional double total = 2; + + // Rate over time, if this stat accumulates. + optional double rate1m = 5; + optional double rate10m = 6; +} + +message GetSystemStatsRequest { +} + +message GetSystemStatsResponse { + // CPU used by this instance, in mcycles. + optional SystemStat cpu = 1; + + // Physical memory (RAM) used by this instance, in megabytes. + optional SystemStat memory = 2; +} + +message StartBackgroundRequestRequest { +} + +message StartBackgroundRequestResponse { + // Every /_ah/background request will have an X-AppEngine-BackgroundRequest + // header, whose value will be equal to this parameter, the request_id. + optional string request_id = 1; +} diff --git a/vendor/google.golang.org/appengine/internal/taskqueue/taskqueue_service.pb.go b/vendor/google.golang.org/appengine/internal/taskqueue/taskqueue_service.pb.go new file mode 100644 index 000000000..55465ccc2 --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/taskqueue/taskqueue_service.pb.go @@ -0,0 +1,3149 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google.golang.org/appengine/internal/taskqueue/taskqueue_service.proto + +package taskqueue + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import datastore "google.golang.org/appengine/internal/datastore" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +type TaskQueueServiceError_ErrorCode int32 + +const ( + TaskQueueServiceError_OK TaskQueueServiceError_ErrorCode = 0 + TaskQueueServiceError_UNKNOWN_QUEUE TaskQueueServiceError_ErrorCode = 1 + TaskQueueServiceError_TRANSIENT_ERROR TaskQueueServiceError_ErrorCode = 2 + TaskQueueServiceError_INTERNAL_ERROR TaskQueueServiceError_ErrorCode = 3 + TaskQueueServiceError_TASK_TOO_LARGE TaskQueueServiceError_ErrorCode = 4 + TaskQueueServiceError_INVALID_TASK_NAME TaskQueueServiceError_ErrorCode = 5 + TaskQueueServiceError_INVALID_QUEUE_NAME TaskQueueServiceError_ErrorCode = 6 + TaskQueueServiceError_INVALID_URL TaskQueueServiceError_ErrorCode = 7 + TaskQueueServiceError_INVALID_QUEUE_RATE TaskQueueServiceError_ErrorCode = 8 + TaskQueueServiceError_PERMISSION_DENIED TaskQueueServiceError_ErrorCode = 9 + TaskQueueServiceError_TASK_ALREADY_EXISTS TaskQueueServiceError_ErrorCode = 10 + TaskQueueServiceError_TOMBSTONED_TASK TaskQueueServiceError_ErrorCode = 11 + TaskQueueServiceError_INVALID_ETA TaskQueueServiceError_ErrorCode = 12 + TaskQueueServiceError_INVALID_REQUEST TaskQueueServiceError_ErrorCode = 13 + TaskQueueServiceError_UNKNOWN_TASK TaskQueueServiceError_ErrorCode = 14 + TaskQueueServiceError_TOMBSTONED_QUEUE TaskQueueServiceError_ErrorCode = 15 + TaskQueueServiceError_DUPLICATE_TASK_NAME TaskQueueServiceError_ErrorCode = 16 + TaskQueueServiceError_SKIPPED TaskQueueServiceError_ErrorCode = 17 + TaskQueueServiceError_TOO_MANY_TASKS TaskQueueServiceError_ErrorCode = 18 + TaskQueueServiceError_INVALID_PAYLOAD TaskQueueServiceError_ErrorCode = 19 + TaskQueueServiceError_INVALID_RETRY_PARAMETERS TaskQueueServiceError_ErrorCode = 20 + TaskQueueServiceError_INVALID_QUEUE_MODE TaskQueueServiceError_ErrorCode = 21 + TaskQueueServiceError_ACL_LOOKUP_ERROR TaskQueueServiceError_ErrorCode = 22 + TaskQueueServiceError_TRANSACTIONAL_REQUEST_TOO_LARGE TaskQueueServiceError_ErrorCode = 23 + TaskQueueServiceError_INCORRECT_CREATOR_NAME TaskQueueServiceError_ErrorCode = 24 + TaskQueueServiceError_TASK_LEASE_EXPIRED TaskQueueServiceError_ErrorCode = 25 + TaskQueueServiceError_QUEUE_PAUSED TaskQueueServiceError_ErrorCode = 26 + TaskQueueServiceError_INVALID_TAG TaskQueueServiceError_ErrorCode = 27 + // Reserved range for the Datastore error codes. + // Original Datastore error code is shifted by DATASTORE_ERROR offset. + TaskQueueServiceError_DATASTORE_ERROR TaskQueueServiceError_ErrorCode = 10000 +) + +var TaskQueueServiceError_ErrorCode_name = map[int32]string{ + 0: "OK", + 1: "UNKNOWN_QUEUE", + 2: "TRANSIENT_ERROR", + 3: "INTERNAL_ERROR", + 4: "TASK_TOO_LARGE", + 5: "INVALID_TASK_NAME", + 6: "INVALID_QUEUE_NAME", + 7: "INVALID_URL", + 8: "INVALID_QUEUE_RATE", + 9: "PERMISSION_DENIED", + 10: "TASK_ALREADY_EXISTS", + 11: "TOMBSTONED_TASK", + 12: "INVALID_ETA", + 13: "INVALID_REQUEST", + 14: "UNKNOWN_TASK", + 15: "TOMBSTONED_QUEUE", + 16: "DUPLICATE_TASK_NAME", + 17: "SKIPPED", + 18: "TOO_MANY_TASKS", + 19: "INVALID_PAYLOAD", + 20: "INVALID_RETRY_PARAMETERS", + 21: "INVALID_QUEUE_MODE", + 22: "ACL_LOOKUP_ERROR", + 23: "TRANSACTIONAL_REQUEST_TOO_LARGE", + 24: "INCORRECT_CREATOR_NAME", + 25: "TASK_LEASE_EXPIRED", + 26: "QUEUE_PAUSED", + 27: "INVALID_TAG", + 10000: "DATASTORE_ERROR", +} +var TaskQueueServiceError_ErrorCode_value = map[string]int32{ + "OK": 0, + "UNKNOWN_QUEUE": 1, + "TRANSIENT_ERROR": 2, + "INTERNAL_ERROR": 3, + "TASK_TOO_LARGE": 4, + "INVALID_TASK_NAME": 5, + "INVALID_QUEUE_NAME": 6, + "INVALID_URL": 7, + "INVALID_QUEUE_RATE": 8, + "PERMISSION_DENIED": 9, + "TASK_ALREADY_EXISTS": 10, + "TOMBSTONED_TASK": 11, + "INVALID_ETA": 12, + "INVALID_REQUEST": 13, + "UNKNOWN_TASK": 14, + "TOMBSTONED_QUEUE": 15, + "DUPLICATE_TASK_NAME": 16, + "SKIPPED": 17, + "TOO_MANY_TASKS": 18, + "INVALID_PAYLOAD": 19, + "INVALID_RETRY_PARAMETERS": 20, + "INVALID_QUEUE_MODE": 21, + "ACL_LOOKUP_ERROR": 22, + "TRANSACTIONAL_REQUEST_TOO_LARGE": 23, + "INCORRECT_CREATOR_NAME": 24, + "TASK_LEASE_EXPIRED": 25, + "QUEUE_PAUSED": 26, + "INVALID_TAG": 27, + "DATASTORE_ERROR": 10000, +} + +func (x TaskQueueServiceError_ErrorCode) Enum() *TaskQueueServiceError_ErrorCode { + p := new(TaskQueueServiceError_ErrorCode) + *p = x + return p +} +func (x TaskQueueServiceError_ErrorCode) String() string { + return proto.EnumName(TaskQueueServiceError_ErrorCode_name, int32(x)) +} +func (x *TaskQueueServiceError_ErrorCode) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(TaskQueueServiceError_ErrorCode_value, data, "TaskQueueServiceError_ErrorCode") + if err != nil { + return err + } + *x = TaskQueueServiceError_ErrorCode(value) + return nil +} +func (TaskQueueServiceError_ErrorCode) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{0, 0} +} + +type TaskQueueMode_Mode int32 + +const ( + TaskQueueMode_PUSH TaskQueueMode_Mode = 0 + TaskQueueMode_PULL TaskQueueMode_Mode = 1 +) + +var TaskQueueMode_Mode_name = map[int32]string{ + 0: "PUSH", + 1: "PULL", +} +var TaskQueueMode_Mode_value = map[string]int32{ + "PUSH": 0, + "PULL": 1, +} + +func (x TaskQueueMode_Mode) Enum() *TaskQueueMode_Mode { + p := new(TaskQueueMode_Mode) + *p = x + return p +} +func (x TaskQueueMode_Mode) String() string { + return proto.EnumName(TaskQueueMode_Mode_name, int32(x)) +} +func (x *TaskQueueMode_Mode) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(TaskQueueMode_Mode_value, data, "TaskQueueMode_Mode") + if err != nil { + return err + } + *x = TaskQueueMode_Mode(value) + return nil +} +func (TaskQueueMode_Mode) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{5, 0} +} + +type TaskQueueAddRequest_RequestMethod int32 + +const ( + TaskQueueAddRequest_GET TaskQueueAddRequest_RequestMethod = 1 + TaskQueueAddRequest_POST TaskQueueAddRequest_RequestMethod = 2 + TaskQueueAddRequest_HEAD TaskQueueAddRequest_RequestMethod = 3 + TaskQueueAddRequest_PUT TaskQueueAddRequest_RequestMethod = 4 + TaskQueueAddRequest_DELETE TaskQueueAddRequest_RequestMethod = 5 +) + +var TaskQueueAddRequest_RequestMethod_name = map[int32]string{ + 1: "GET", + 2: "POST", + 3: "HEAD", + 4: "PUT", + 5: "DELETE", +} +var TaskQueueAddRequest_RequestMethod_value = map[string]int32{ + "GET": 1, + "POST": 2, + "HEAD": 3, + "PUT": 4, + "DELETE": 5, +} + +func (x TaskQueueAddRequest_RequestMethod) Enum() *TaskQueueAddRequest_RequestMethod { + p := new(TaskQueueAddRequest_RequestMethod) + *p = x + return p +} +func (x TaskQueueAddRequest_RequestMethod) String() string { + return proto.EnumName(TaskQueueAddRequest_RequestMethod_name, int32(x)) +} +func (x *TaskQueueAddRequest_RequestMethod) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(TaskQueueAddRequest_RequestMethod_value, data, "TaskQueueAddRequest_RequestMethod") + if err != nil { + return err + } + *x = TaskQueueAddRequest_RequestMethod(value) + return nil +} +func (TaskQueueAddRequest_RequestMethod) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{6, 0} +} + +type TaskQueueQueryTasksResponse_Task_RequestMethod int32 + +const ( + TaskQueueQueryTasksResponse_Task_GET TaskQueueQueryTasksResponse_Task_RequestMethod = 1 + TaskQueueQueryTasksResponse_Task_POST TaskQueueQueryTasksResponse_Task_RequestMethod = 2 + TaskQueueQueryTasksResponse_Task_HEAD TaskQueueQueryTasksResponse_Task_RequestMethod = 3 + TaskQueueQueryTasksResponse_Task_PUT TaskQueueQueryTasksResponse_Task_RequestMethod = 4 + TaskQueueQueryTasksResponse_Task_DELETE TaskQueueQueryTasksResponse_Task_RequestMethod = 5 +) + +var TaskQueueQueryTasksResponse_Task_RequestMethod_name = map[int32]string{ + 1: "GET", + 2: "POST", + 3: "HEAD", + 4: "PUT", + 5: "DELETE", +} +var TaskQueueQueryTasksResponse_Task_RequestMethod_value = map[string]int32{ + "GET": 1, + "POST": 2, + "HEAD": 3, + "PUT": 4, + "DELETE": 5, +} + +func (x TaskQueueQueryTasksResponse_Task_RequestMethod) Enum() *TaskQueueQueryTasksResponse_Task_RequestMethod { + p := new(TaskQueueQueryTasksResponse_Task_RequestMethod) + *p = x + return p +} +func (x TaskQueueQueryTasksResponse_Task_RequestMethod) String() string { + return proto.EnumName(TaskQueueQueryTasksResponse_Task_RequestMethod_name, int32(x)) +} +func (x *TaskQueueQueryTasksResponse_Task_RequestMethod) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(TaskQueueQueryTasksResponse_Task_RequestMethod_value, data, "TaskQueueQueryTasksResponse_Task_RequestMethod") + if err != nil { + return err + } + *x = TaskQueueQueryTasksResponse_Task_RequestMethod(value) + return nil +} +func (TaskQueueQueryTasksResponse_Task_RequestMethod) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{30, 0, 0} +} + +type TaskQueueServiceError struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TaskQueueServiceError) Reset() { *m = TaskQueueServiceError{} } +func (m *TaskQueueServiceError) String() string { return proto.CompactTextString(m) } +func (*TaskQueueServiceError) ProtoMessage() {} +func (*TaskQueueServiceError) Descriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{0} +} +func (m *TaskQueueServiceError) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TaskQueueServiceError.Unmarshal(m, b) +} +func (m *TaskQueueServiceError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TaskQueueServiceError.Marshal(b, m, deterministic) +} +func (dst *TaskQueueServiceError) XXX_Merge(src proto.Message) { + xxx_messageInfo_TaskQueueServiceError.Merge(dst, src) +} +func (m *TaskQueueServiceError) XXX_Size() int { + return xxx_messageInfo_TaskQueueServiceError.Size(m) +} +func (m *TaskQueueServiceError) XXX_DiscardUnknown() { + xxx_messageInfo_TaskQueueServiceError.DiscardUnknown(m) +} + +var xxx_messageInfo_TaskQueueServiceError proto.InternalMessageInfo + +type TaskPayload struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + proto.XXX_InternalExtensions `protobuf_messageset:"1" json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TaskPayload) Reset() { *m = TaskPayload{} } +func (m *TaskPayload) String() string { return proto.CompactTextString(m) } +func (*TaskPayload) ProtoMessage() {} +func (*TaskPayload) Descriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{1} +} + +func (m *TaskPayload) MarshalJSON() ([]byte, error) { + return proto.MarshalMessageSetJSON(&m.XXX_InternalExtensions) +} +func (m *TaskPayload) UnmarshalJSON(buf []byte) error { + return proto.UnmarshalMessageSetJSON(buf, &m.XXX_InternalExtensions) +} + +var extRange_TaskPayload = []proto.ExtensionRange{ + {Start: 10, End: 2147483646}, +} + +func (*TaskPayload) ExtensionRangeArray() []proto.ExtensionRange { + return extRange_TaskPayload +} +func (m *TaskPayload) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TaskPayload.Unmarshal(m, b) +} +func (m *TaskPayload) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TaskPayload.Marshal(b, m, deterministic) +} +func (dst *TaskPayload) XXX_Merge(src proto.Message) { + xxx_messageInfo_TaskPayload.Merge(dst, src) +} +func (m *TaskPayload) XXX_Size() int { + return xxx_messageInfo_TaskPayload.Size(m) +} +func (m *TaskPayload) XXX_DiscardUnknown() { + xxx_messageInfo_TaskPayload.DiscardUnknown(m) +} + +var xxx_messageInfo_TaskPayload proto.InternalMessageInfo + +type TaskQueueRetryParameters struct { + RetryLimit *int32 `protobuf:"varint,1,opt,name=retry_limit,json=retryLimit" json:"retry_limit,omitempty"` + AgeLimitSec *int64 `protobuf:"varint,2,opt,name=age_limit_sec,json=ageLimitSec" json:"age_limit_sec,omitempty"` + MinBackoffSec *float64 `protobuf:"fixed64,3,opt,name=min_backoff_sec,json=minBackoffSec,def=0.1" json:"min_backoff_sec,omitempty"` + MaxBackoffSec *float64 `protobuf:"fixed64,4,opt,name=max_backoff_sec,json=maxBackoffSec,def=3600" json:"max_backoff_sec,omitempty"` + MaxDoublings *int32 `protobuf:"varint,5,opt,name=max_doublings,json=maxDoublings,def=16" json:"max_doublings,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TaskQueueRetryParameters) Reset() { *m = TaskQueueRetryParameters{} } +func (m *TaskQueueRetryParameters) String() string { return proto.CompactTextString(m) } +func (*TaskQueueRetryParameters) ProtoMessage() {} +func (*TaskQueueRetryParameters) Descriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{2} +} +func (m *TaskQueueRetryParameters) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TaskQueueRetryParameters.Unmarshal(m, b) +} +func (m *TaskQueueRetryParameters) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TaskQueueRetryParameters.Marshal(b, m, deterministic) +} +func (dst *TaskQueueRetryParameters) XXX_Merge(src proto.Message) { + xxx_messageInfo_TaskQueueRetryParameters.Merge(dst, src) +} +func (m *TaskQueueRetryParameters) XXX_Size() int { + return xxx_messageInfo_TaskQueueRetryParameters.Size(m) +} +func (m *TaskQueueRetryParameters) XXX_DiscardUnknown() { + xxx_messageInfo_TaskQueueRetryParameters.DiscardUnknown(m) +} + +var xxx_messageInfo_TaskQueueRetryParameters proto.InternalMessageInfo + +const Default_TaskQueueRetryParameters_MinBackoffSec float64 = 0.1 +const Default_TaskQueueRetryParameters_MaxBackoffSec float64 = 3600 +const Default_TaskQueueRetryParameters_MaxDoublings int32 = 16 + +func (m *TaskQueueRetryParameters) GetRetryLimit() int32 { + if m != nil && m.RetryLimit != nil { + return *m.RetryLimit + } + return 0 +} + +func (m *TaskQueueRetryParameters) GetAgeLimitSec() int64 { + if m != nil && m.AgeLimitSec != nil { + return *m.AgeLimitSec + } + return 0 +} + +func (m *TaskQueueRetryParameters) GetMinBackoffSec() float64 { + if m != nil && m.MinBackoffSec != nil { + return *m.MinBackoffSec + } + return Default_TaskQueueRetryParameters_MinBackoffSec +} + +func (m *TaskQueueRetryParameters) GetMaxBackoffSec() float64 { + if m != nil && m.MaxBackoffSec != nil { + return *m.MaxBackoffSec + } + return Default_TaskQueueRetryParameters_MaxBackoffSec +} + +func (m *TaskQueueRetryParameters) GetMaxDoublings() int32 { + if m != nil && m.MaxDoublings != nil { + return *m.MaxDoublings + } + return Default_TaskQueueRetryParameters_MaxDoublings +} + +type TaskQueueAcl struct { + UserEmail [][]byte `protobuf:"bytes,1,rep,name=user_email,json=userEmail" json:"user_email,omitempty"` + WriterEmail [][]byte `protobuf:"bytes,2,rep,name=writer_email,json=writerEmail" json:"writer_email,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TaskQueueAcl) Reset() { *m = TaskQueueAcl{} } +func (m *TaskQueueAcl) String() string { return proto.CompactTextString(m) } +func (*TaskQueueAcl) ProtoMessage() {} +func (*TaskQueueAcl) Descriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{3} +} +func (m *TaskQueueAcl) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TaskQueueAcl.Unmarshal(m, b) +} +func (m *TaskQueueAcl) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TaskQueueAcl.Marshal(b, m, deterministic) +} +func (dst *TaskQueueAcl) XXX_Merge(src proto.Message) { + xxx_messageInfo_TaskQueueAcl.Merge(dst, src) +} +func (m *TaskQueueAcl) XXX_Size() int { + return xxx_messageInfo_TaskQueueAcl.Size(m) +} +func (m *TaskQueueAcl) XXX_DiscardUnknown() { + xxx_messageInfo_TaskQueueAcl.DiscardUnknown(m) +} + +var xxx_messageInfo_TaskQueueAcl proto.InternalMessageInfo + +func (m *TaskQueueAcl) GetUserEmail() [][]byte { + if m != nil { + return m.UserEmail + } + return nil +} + +func (m *TaskQueueAcl) GetWriterEmail() [][]byte { + if m != nil { + return m.WriterEmail + } + return nil +} + +type TaskQueueHttpHeader struct { + Key []byte `protobuf:"bytes,1,req,name=key" json:"key,omitempty"` + Value []byte `protobuf:"bytes,2,req,name=value" json:"value,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TaskQueueHttpHeader) Reset() { *m = TaskQueueHttpHeader{} } +func (m *TaskQueueHttpHeader) String() string { return proto.CompactTextString(m) } +func (*TaskQueueHttpHeader) ProtoMessage() {} +func (*TaskQueueHttpHeader) Descriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{4} +} +func (m *TaskQueueHttpHeader) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TaskQueueHttpHeader.Unmarshal(m, b) +} +func (m *TaskQueueHttpHeader) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TaskQueueHttpHeader.Marshal(b, m, deterministic) +} +func (dst *TaskQueueHttpHeader) XXX_Merge(src proto.Message) { + xxx_messageInfo_TaskQueueHttpHeader.Merge(dst, src) +} +func (m *TaskQueueHttpHeader) XXX_Size() int { + return xxx_messageInfo_TaskQueueHttpHeader.Size(m) +} +func (m *TaskQueueHttpHeader) XXX_DiscardUnknown() { + xxx_messageInfo_TaskQueueHttpHeader.DiscardUnknown(m) +} + +var xxx_messageInfo_TaskQueueHttpHeader proto.InternalMessageInfo + +func (m *TaskQueueHttpHeader) GetKey() []byte { + if m != nil { + return m.Key + } + return nil +} + +func (m *TaskQueueHttpHeader) GetValue() []byte { + if m != nil { + return m.Value + } + return nil +} + +type TaskQueueMode struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TaskQueueMode) Reset() { *m = TaskQueueMode{} } +func (m *TaskQueueMode) String() string { return proto.CompactTextString(m) } +func (*TaskQueueMode) ProtoMessage() {} +func (*TaskQueueMode) Descriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{5} +} +func (m *TaskQueueMode) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TaskQueueMode.Unmarshal(m, b) +} +func (m *TaskQueueMode) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TaskQueueMode.Marshal(b, m, deterministic) +} +func (dst *TaskQueueMode) XXX_Merge(src proto.Message) { + xxx_messageInfo_TaskQueueMode.Merge(dst, src) +} +func (m *TaskQueueMode) XXX_Size() int { + return xxx_messageInfo_TaskQueueMode.Size(m) +} +func (m *TaskQueueMode) XXX_DiscardUnknown() { + xxx_messageInfo_TaskQueueMode.DiscardUnknown(m) +} + +var xxx_messageInfo_TaskQueueMode proto.InternalMessageInfo + +type TaskQueueAddRequest struct { + QueueName []byte `protobuf:"bytes,1,req,name=queue_name,json=queueName" json:"queue_name,omitempty"` + TaskName []byte `protobuf:"bytes,2,req,name=task_name,json=taskName" json:"task_name,omitempty"` + EtaUsec *int64 `protobuf:"varint,3,req,name=eta_usec,json=etaUsec" json:"eta_usec,omitempty"` + Method *TaskQueueAddRequest_RequestMethod `protobuf:"varint,5,opt,name=method,enum=appengine.TaskQueueAddRequest_RequestMethod,def=2" json:"method,omitempty"` + Url []byte `protobuf:"bytes,4,opt,name=url" json:"url,omitempty"` + Header []*TaskQueueAddRequest_Header `protobuf:"group,6,rep,name=Header,json=header" json:"header,omitempty"` + Body []byte `protobuf:"bytes,9,opt,name=body" json:"body,omitempty"` + Transaction *datastore.Transaction `protobuf:"bytes,10,opt,name=transaction" json:"transaction,omitempty"` + AppId []byte `protobuf:"bytes,11,opt,name=app_id,json=appId" json:"app_id,omitempty"` + Crontimetable *TaskQueueAddRequest_CronTimetable `protobuf:"group,12,opt,name=CronTimetable,json=crontimetable" json:"crontimetable,omitempty"` + Description []byte `protobuf:"bytes,15,opt,name=description" json:"description,omitempty"` + Payload *TaskPayload `protobuf:"bytes,16,opt,name=payload" json:"payload,omitempty"` + RetryParameters *TaskQueueRetryParameters `protobuf:"bytes,17,opt,name=retry_parameters,json=retryParameters" json:"retry_parameters,omitempty"` + Mode *TaskQueueMode_Mode `protobuf:"varint,18,opt,name=mode,enum=appengine.TaskQueueMode_Mode,def=0" json:"mode,omitempty"` + Tag []byte `protobuf:"bytes,19,opt,name=tag" json:"tag,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TaskQueueAddRequest) Reset() { *m = TaskQueueAddRequest{} } +func (m *TaskQueueAddRequest) String() string { return proto.CompactTextString(m) } +func (*TaskQueueAddRequest) ProtoMessage() {} +func (*TaskQueueAddRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{6} +} +func (m *TaskQueueAddRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TaskQueueAddRequest.Unmarshal(m, b) +} +func (m *TaskQueueAddRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TaskQueueAddRequest.Marshal(b, m, deterministic) +} +func (dst *TaskQueueAddRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_TaskQueueAddRequest.Merge(dst, src) +} +func (m *TaskQueueAddRequest) XXX_Size() int { + return xxx_messageInfo_TaskQueueAddRequest.Size(m) +} +func (m *TaskQueueAddRequest) XXX_DiscardUnknown() { + xxx_messageInfo_TaskQueueAddRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_TaskQueueAddRequest proto.InternalMessageInfo + +const Default_TaskQueueAddRequest_Method TaskQueueAddRequest_RequestMethod = TaskQueueAddRequest_POST +const Default_TaskQueueAddRequest_Mode TaskQueueMode_Mode = TaskQueueMode_PUSH + +func (m *TaskQueueAddRequest) GetQueueName() []byte { + if m != nil { + return m.QueueName + } + return nil +} + +func (m *TaskQueueAddRequest) GetTaskName() []byte { + if m != nil { + return m.TaskName + } + return nil +} + +func (m *TaskQueueAddRequest) GetEtaUsec() int64 { + if m != nil && m.EtaUsec != nil { + return *m.EtaUsec + } + return 0 +} + +func (m *TaskQueueAddRequest) GetMethod() TaskQueueAddRequest_RequestMethod { + if m != nil && m.Method != nil { + return *m.Method + } + return Default_TaskQueueAddRequest_Method +} + +func (m *TaskQueueAddRequest) GetUrl() []byte { + if m != nil { + return m.Url + } + return nil +} + +func (m *TaskQueueAddRequest) GetHeader() []*TaskQueueAddRequest_Header { + if m != nil { + return m.Header + } + return nil +} + +func (m *TaskQueueAddRequest) GetBody() []byte { + if m != nil { + return m.Body + } + return nil +} + +func (m *TaskQueueAddRequest) GetTransaction() *datastore.Transaction { + if m != nil { + return m.Transaction + } + return nil +} + +func (m *TaskQueueAddRequest) GetAppId() []byte { + if m != nil { + return m.AppId + } + return nil +} + +func (m *TaskQueueAddRequest) GetCrontimetable() *TaskQueueAddRequest_CronTimetable { + if m != nil { + return m.Crontimetable + } + return nil +} + +func (m *TaskQueueAddRequest) GetDescription() []byte { + if m != nil { + return m.Description + } + return nil +} + +func (m *TaskQueueAddRequest) GetPayload() *TaskPayload { + if m != nil { + return m.Payload + } + return nil +} + +func (m *TaskQueueAddRequest) GetRetryParameters() *TaskQueueRetryParameters { + if m != nil { + return m.RetryParameters + } + return nil +} + +func (m *TaskQueueAddRequest) GetMode() TaskQueueMode_Mode { + if m != nil && m.Mode != nil { + return *m.Mode + } + return Default_TaskQueueAddRequest_Mode +} + +func (m *TaskQueueAddRequest) GetTag() []byte { + if m != nil { + return m.Tag + } + return nil +} + +type TaskQueueAddRequest_Header struct { + Key []byte `protobuf:"bytes,7,req,name=key" json:"key,omitempty"` + Value []byte `protobuf:"bytes,8,req,name=value" json:"value,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TaskQueueAddRequest_Header) Reset() { *m = TaskQueueAddRequest_Header{} } +func (m *TaskQueueAddRequest_Header) String() string { return proto.CompactTextString(m) } +func (*TaskQueueAddRequest_Header) ProtoMessage() {} +func (*TaskQueueAddRequest_Header) Descriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{6, 0} +} +func (m *TaskQueueAddRequest_Header) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TaskQueueAddRequest_Header.Unmarshal(m, b) +} +func (m *TaskQueueAddRequest_Header) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TaskQueueAddRequest_Header.Marshal(b, m, deterministic) +} +func (dst *TaskQueueAddRequest_Header) XXX_Merge(src proto.Message) { + xxx_messageInfo_TaskQueueAddRequest_Header.Merge(dst, src) +} +func (m *TaskQueueAddRequest_Header) XXX_Size() int { + return xxx_messageInfo_TaskQueueAddRequest_Header.Size(m) +} +func (m *TaskQueueAddRequest_Header) XXX_DiscardUnknown() { + xxx_messageInfo_TaskQueueAddRequest_Header.DiscardUnknown(m) +} + +var xxx_messageInfo_TaskQueueAddRequest_Header proto.InternalMessageInfo + +func (m *TaskQueueAddRequest_Header) GetKey() []byte { + if m != nil { + return m.Key + } + return nil +} + +func (m *TaskQueueAddRequest_Header) GetValue() []byte { + if m != nil { + return m.Value + } + return nil +} + +type TaskQueueAddRequest_CronTimetable struct { + Schedule []byte `protobuf:"bytes,13,req,name=schedule" json:"schedule,omitempty"` + Timezone []byte `protobuf:"bytes,14,req,name=timezone" json:"timezone,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TaskQueueAddRequest_CronTimetable) Reset() { *m = TaskQueueAddRequest_CronTimetable{} } +func (m *TaskQueueAddRequest_CronTimetable) String() string { return proto.CompactTextString(m) } +func (*TaskQueueAddRequest_CronTimetable) ProtoMessage() {} +func (*TaskQueueAddRequest_CronTimetable) Descriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{6, 1} +} +func (m *TaskQueueAddRequest_CronTimetable) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TaskQueueAddRequest_CronTimetable.Unmarshal(m, b) +} +func (m *TaskQueueAddRequest_CronTimetable) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TaskQueueAddRequest_CronTimetable.Marshal(b, m, deterministic) +} +func (dst *TaskQueueAddRequest_CronTimetable) XXX_Merge(src proto.Message) { + xxx_messageInfo_TaskQueueAddRequest_CronTimetable.Merge(dst, src) +} +func (m *TaskQueueAddRequest_CronTimetable) XXX_Size() int { + return xxx_messageInfo_TaskQueueAddRequest_CronTimetable.Size(m) +} +func (m *TaskQueueAddRequest_CronTimetable) XXX_DiscardUnknown() { + xxx_messageInfo_TaskQueueAddRequest_CronTimetable.DiscardUnknown(m) +} + +var xxx_messageInfo_TaskQueueAddRequest_CronTimetable proto.InternalMessageInfo + +func (m *TaskQueueAddRequest_CronTimetable) GetSchedule() []byte { + if m != nil { + return m.Schedule + } + return nil +} + +func (m *TaskQueueAddRequest_CronTimetable) GetTimezone() []byte { + if m != nil { + return m.Timezone + } + return nil +} + +type TaskQueueAddResponse struct { + ChosenTaskName []byte `protobuf:"bytes,1,opt,name=chosen_task_name,json=chosenTaskName" json:"chosen_task_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TaskQueueAddResponse) Reset() { *m = TaskQueueAddResponse{} } +func (m *TaskQueueAddResponse) String() string { return proto.CompactTextString(m) } +func (*TaskQueueAddResponse) ProtoMessage() {} +func (*TaskQueueAddResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{7} +} +func (m *TaskQueueAddResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TaskQueueAddResponse.Unmarshal(m, b) +} +func (m *TaskQueueAddResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TaskQueueAddResponse.Marshal(b, m, deterministic) +} +func (dst *TaskQueueAddResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_TaskQueueAddResponse.Merge(dst, src) +} +func (m *TaskQueueAddResponse) XXX_Size() int { + return xxx_messageInfo_TaskQueueAddResponse.Size(m) +} +func (m *TaskQueueAddResponse) XXX_DiscardUnknown() { + xxx_messageInfo_TaskQueueAddResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_TaskQueueAddResponse proto.InternalMessageInfo + +func (m *TaskQueueAddResponse) GetChosenTaskName() []byte { + if m != nil { + return m.ChosenTaskName + } + return nil +} + +type TaskQueueBulkAddRequest struct { + AddRequest []*TaskQueueAddRequest `protobuf:"bytes,1,rep,name=add_request,json=addRequest" json:"add_request,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TaskQueueBulkAddRequest) Reset() { *m = TaskQueueBulkAddRequest{} } +func (m *TaskQueueBulkAddRequest) String() string { return proto.CompactTextString(m) } +func (*TaskQueueBulkAddRequest) ProtoMessage() {} +func (*TaskQueueBulkAddRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{8} +} +func (m *TaskQueueBulkAddRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TaskQueueBulkAddRequest.Unmarshal(m, b) +} +func (m *TaskQueueBulkAddRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TaskQueueBulkAddRequest.Marshal(b, m, deterministic) +} +func (dst *TaskQueueBulkAddRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_TaskQueueBulkAddRequest.Merge(dst, src) +} +func (m *TaskQueueBulkAddRequest) XXX_Size() int { + return xxx_messageInfo_TaskQueueBulkAddRequest.Size(m) +} +func (m *TaskQueueBulkAddRequest) XXX_DiscardUnknown() { + xxx_messageInfo_TaskQueueBulkAddRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_TaskQueueBulkAddRequest proto.InternalMessageInfo + +func (m *TaskQueueBulkAddRequest) GetAddRequest() []*TaskQueueAddRequest { + if m != nil { + return m.AddRequest + } + return nil +} + +type TaskQueueBulkAddResponse struct { + Taskresult []*TaskQueueBulkAddResponse_TaskResult `protobuf:"group,1,rep,name=TaskResult,json=taskresult" json:"taskresult,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TaskQueueBulkAddResponse) Reset() { *m = TaskQueueBulkAddResponse{} } +func (m *TaskQueueBulkAddResponse) String() string { return proto.CompactTextString(m) } +func (*TaskQueueBulkAddResponse) ProtoMessage() {} +func (*TaskQueueBulkAddResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{9} +} +func (m *TaskQueueBulkAddResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TaskQueueBulkAddResponse.Unmarshal(m, b) +} +func (m *TaskQueueBulkAddResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TaskQueueBulkAddResponse.Marshal(b, m, deterministic) +} +func (dst *TaskQueueBulkAddResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_TaskQueueBulkAddResponse.Merge(dst, src) +} +func (m *TaskQueueBulkAddResponse) XXX_Size() int { + return xxx_messageInfo_TaskQueueBulkAddResponse.Size(m) +} +func (m *TaskQueueBulkAddResponse) XXX_DiscardUnknown() { + xxx_messageInfo_TaskQueueBulkAddResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_TaskQueueBulkAddResponse proto.InternalMessageInfo + +func (m *TaskQueueBulkAddResponse) GetTaskresult() []*TaskQueueBulkAddResponse_TaskResult { + if m != nil { + return m.Taskresult + } + return nil +} + +type TaskQueueBulkAddResponse_TaskResult struct { + Result *TaskQueueServiceError_ErrorCode `protobuf:"varint,2,req,name=result,enum=appengine.TaskQueueServiceError_ErrorCode" json:"result,omitempty"` + ChosenTaskName []byte `protobuf:"bytes,3,opt,name=chosen_task_name,json=chosenTaskName" json:"chosen_task_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TaskQueueBulkAddResponse_TaskResult) Reset() { *m = TaskQueueBulkAddResponse_TaskResult{} } +func (m *TaskQueueBulkAddResponse_TaskResult) String() string { return proto.CompactTextString(m) } +func (*TaskQueueBulkAddResponse_TaskResult) ProtoMessage() {} +func (*TaskQueueBulkAddResponse_TaskResult) Descriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{9, 0} +} +func (m *TaskQueueBulkAddResponse_TaskResult) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TaskQueueBulkAddResponse_TaskResult.Unmarshal(m, b) +} +func (m *TaskQueueBulkAddResponse_TaskResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TaskQueueBulkAddResponse_TaskResult.Marshal(b, m, deterministic) +} +func (dst *TaskQueueBulkAddResponse_TaskResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_TaskQueueBulkAddResponse_TaskResult.Merge(dst, src) +} +func (m *TaskQueueBulkAddResponse_TaskResult) XXX_Size() int { + return xxx_messageInfo_TaskQueueBulkAddResponse_TaskResult.Size(m) +} +func (m *TaskQueueBulkAddResponse_TaskResult) XXX_DiscardUnknown() { + xxx_messageInfo_TaskQueueBulkAddResponse_TaskResult.DiscardUnknown(m) +} + +var xxx_messageInfo_TaskQueueBulkAddResponse_TaskResult proto.InternalMessageInfo + +func (m *TaskQueueBulkAddResponse_TaskResult) GetResult() TaskQueueServiceError_ErrorCode { + if m != nil && m.Result != nil { + return *m.Result + } + return TaskQueueServiceError_OK +} + +func (m *TaskQueueBulkAddResponse_TaskResult) GetChosenTaskName() []byte { + if m != nil { + return m.ChosenTaskName + } + return nil +} + +type TaskQueueDeleteRequest struct { + QueueName []byte `protobuf:"bytes,1,req,name=queue_name,json=queueName" json:"queue_name,omitempty"` + TaskName [][]byte `protobuf:"bytes,2,rep,name=task_name,json=taskName" json:"task_name,omitempty"` + AppId []byte `protobuf:"bytes,3,opt,name=app_id,json=appId" json:"app_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TaskQueueDeleteRequest) Reset() { *m = TaskQueueDeleteRequest{} } +func (m *TaskQueueDeleteRequest) String() string { return proto.CompactTextString(m) } +func (*TaskQueueDeleteRequest) ProtoMessage() {} +func (*TaskQueueDeleteRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{10} +} +func (m *TaskQueueDeleteRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TaskQueueDeleteRequest.Unmarshal(m, b) +} +func (m *TaskQueueDeleteRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TaskQueueDeleteRequest.Marshal(b, m, deterministic) +} +func (dst *TaskQueueDeleteRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_TaskQueueDeleteRequest.Merge(dst, src) +} +func (m *TaskQueueDeleteRequest) XXX_Size() int { + return xxx_messageInfo_TaskQueueDeleteRequest.Size(m) +} +func (m *TaskQueueDeleteRequest) XXX_DiscardUnknown() { + xxx_messageInfo_TaskQueueDeleteRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_TaskQueueDeleteRequest proto.InternalMessageInfo + +func (m *TaskQueueDeleteRequest) GetQueueName() []byte { + if m != nil { + return m.QueueName + } + return nil +} + +func (m *TaskQueueDeleteRequest) GetTaskName() [][]byte { + if m != nil { + return m.TaskName + } + return nil +} + +func (m *TaskQueueDeleteRequest) GetAppId() []byte { + if m != nil { + return m.AppId + } + return nil +} + +type TaskQueueDeleteResponse struct { + Result []TaskQueueServiceError_ErrorCode `protobuf:"varint,3,rep,name=result,enum=appengine.TaskQueueServiceError_ErrorCode" json:"result,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TaskQueueDeleteResponse) Reset() { *m = TaskQueueDeleteResponse{} } +func (m *TaskQueueDeleteResponse) String() string { return proto.CompactTextString(m) } +func (*TaskQueueDeleteResponse) ProtoMessage() {} +func (*TaskQueueDeleteResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{11} +} +func (m *TaskQueueDeleteResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TaskQueueDeleteResponse.Unmarshal(m, b) +} +func (m *TaskQueueDeleteResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TaskQueueDeleteResponse.Marshal(b, m, deterministic) +} +func (dst *TaskQueueDeleteResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_TaskQueueDeleteResponse.Merge(dst, src) +} +func (m *TaskQueueDeleteResponse) XXX_Size() int { + return xxx_messageInfo_TaskQueueDeleteResponse.Size(m) +} +func (m *TaskQueueDeleteResponse) XXX_DiscardUnknown() { + xxx_messageInfo_TaskQueueDeleteResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_TaskQueueDeleteResponse proto.InternalMessageInfo + +func (m *TaskQueueDeleteResponse) GetResult() []TaskQueueServiceError_ErrorCode { + if m != nil { + return m.Result + } + return nil +} + +type TaskQueueForceRunRequest struct { + AppId []byte `protobuf:"bytes,1,opt,name=app_id,json=appId" json:"app_id,omitempty"` + QueueName []byte `protobuf:"bytes,2,req,name=queue_name,json=queueName" json:"queue_name,omitempty"` + TaskName []byte `protobuf:"bytes,3,req,name=task_name,json=taskName" json:"task_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TaskQueueForceRunRequest) Reset() { *m = TaskQueueForceRunRequest{} } +func (m *TaskQueueForceRunRequest) String() string { return proto.CompactTextString(m) } +func (*TaskQueueForceRunRequest) ProtoMessage() {} +func (*TaskQueueForceRunRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{12} +} +func (m *TaskQueueForceRunRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TaskQueueForceRunRequest.Unmarshal(m, b) +} +func (m *TaskQueueForceRunRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TaskQueueForceRunRequest.Marshal(b, m, deterministic) +} +func (dst *TaskQueueForceRunRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_TaskQueueForceRunRequest.Merge(dst, src) +} +func (m *TaskQueueForceRunRequest) XXX_Size() int { + return xxx_messageInfo_TaskQueueForceRunRequest.Size(m) +} +func (m *TaskQueueForceRunRequest) XXX_DiscardUnknown() { + xxx_messageInfo_TaskQueueForceRunRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_TaskQueueForceRunRequest proto.InternalMessageInfo + +func (m *TaskQueueForceRunRequest) GetAppId() []byte { + if m != nil { + return m.AppId + } + return nil +} + +func (m *TaskQueueForceRunRequest) GetQueueName() []byte { + if m != nil { + return m.QueueName + } + return nil +} + +func (m *TaskQueueForceRunRequest) GetTaskName() []byte { + if m != nil { + return m.TaskName + } + return nil +} + +type TaskQueueForceRunResponse struct { + Result *TaskQueueServiceError_ErrorCode `protobuf:"varint,3,req,name=result,enum=appengine.TaskQueueServiceError_ErrorCode" json:"result,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TaskQueueForceRunResponse) Reset() { *m = TaskQueueForceRunResponse{} } +func (m *TaskQueueForceRunResponse) String() string { return proto.CompactTextString(m) } +func (*TaskQueueForceRunResponse) ProtoMessage() {} +func (*TaskQueueForceRunResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{13} +} +func (m *TaskQueueForceRunResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TaskQueueForceRunResponse.Unmarshal(m, b) +} +func (m *TaskQueueForceRunResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TaskQueueForceRunResponse.Marshal(b, m, deterministic) +} +func (dst *TaskQueueForceRunResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_TaskQueueForceRunResponse.Merge(dst, src) +} +func (m *TaskQueueForceRunResponse) XXX_Size() int { + return xxx_messageInfo_TaskQueueForceRunResponse.Size(m) +} +func (m *TaskQueueForceRunResponse) XXX_DiscardUnknown() { + xxx_messageInfo_TaskQueueForceRunResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_TaskQueueForceRunResponse proto.InternalMessageInfo + +func (m *TaskQueueForceRunResponse) GetResult() TaskQueueServiceError_ErrorCode { + if m != nil && m.Result != nil { + return *m.Result + } + return TaskQueueServiceError_OK +} + +type TaskQueueUpdateQueueRequest struct { + AppId []byte `protobuf:"bytes,1,opt,name=app_id,json=appId" json:"app_id,omitempty"` + QueueName []byte `protobuf:"bytes,2,req,name=queue_name,json=queueName" json:"queue_name,omitempty"` + BucketRefillPerSecond *float64 `protobuf:"fixed64,3,req,name=bucket_refill_per_second,json=bucketRefillPerSecond" json:"bucket_refill_per_second,omitempty"` + BucketCapacity *int32 `protobuf:"varint,4,req,name=bucket_capacity,json=bucketCapacity" json:"bucket_capacity,omitempty"` + UserSpecifiedRate *string `protobuf:"bytes,5,opt,name=user_specified_rate,json=userSpecifiedRate" json:"user_specified_rate,omitempty"` + RetryParameters *TaskQueueRetryParameters `protobuf:"bytes,6,opt,name=retry_parameters,json=retryParameters" json:"retry_parameters,omitempty"` + MaxConcurrentRequests *int32 `protobuf:"varint,7,opt,name=max_concurrent_requests,json=maxConcurrentRequests" json:"max_concurrent_requests,omitempty"` + Mode *TaskQueueMode_Mode `protobuf:"varint,8,opt,name=mode,enum=appengine.TaskQueueMode_Mode,def=0" json:"mode,omitempty"` + Acl *TaskQueueAcl `protobuf:"bytes,9,opt,name=acl" json:"acl,omitempty"` + HeaderOverride []*TaskQueueHttpHeader `protobuf:"bytes,10,rep,name=header_override,json=headerOverride" json:"header_override,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TaskQueueUpdateQueueRequest) Reset() { *m = TaskQueueUpdateQueueRequest{} } +func (m *TaskQueueUpdateQueueRequest) String() string { return proto.CompactTextString(m) } +func (*TaskQueueUpdateQueueRequest) ProtoMessage() {} +func (*TaskQueueUpdateQueueRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{14} +} +func (m *TaskQueueUpdateQueueRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TaskQueueUpdateQueueRequest.Unmarshal(m, b) +} +func (m *TaskQueueUpdateQueueRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TaskQueueUpdateQueueRequest.Marshal(b, m, deterministic) +} +func (dst *TaskQueueUpdateQueueRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_TaskQueueUpdateQueueRequest.Merge(dst, src) +} +func (m *TaskQueueUpdateQueueRequest) XXX_Size() int { + return xxx_messageInfo_TaskQueueUpdateQueueRequest.Size(m) +} +func (m *TaskQueueUpdateQueueRequest) XXX_DiscardUnknown() { + xxx_messageInfo_TaskQueueUpdateQueueRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_TaskQueueUpdateQueueRequest proto.InternalMessageInfo + +const Default_TaskQueueUpdateQueueRequest_Mode TaskQueueMode_Mode = TaskQueueMode_PUSH + +func (m *TaskQueueUpdateQueueRequest) GetAppId() []byte { + if m != nil { + return m.AppId + } + return nil +} + +func (m *TaskQueueUpdateQueueRequest) GetQueueName() []byte { + if m != nil { + return m.QueueName + } + return nil +} + +func (m *TaskQueueUpdateQueueRequest) GetBucketRefillPerSecond() float64 { + if m != nil && m.BucketRefillPerSecond != nil { + return *m.BucketRefillPerSecond + } + return 0 +} + +func (m *TaskQueueUpdateQueueRequest) GetBucketCapacity() int32 { + if m != nil && m.BucketCapacity != nil { + return *m.BucketCapacity + } + return 0 +} + +func (m *TaskQueueUpdateQueueRequest) GetUserSpecifiedRate() string { + if m != nil && m.UserSpecifiedRate != nil { + return *m.UserSpecifiedRate + } + return "" +} + +func (m *TaskQueueUpdateQueueRequest) GetRetryParameters() *TaskQueueRetryParameters { + if m != nil { + return m.RetryParameters + } + return nil +} + +func (m *TaskQueueUpdateQueueRequest) GetMaxConcurrentRequests() int32 { + if m != nil && m.MaxConcurrentRequests != nil { + return *m.MaxConcurrentRequests + } + return 0 +} + +func (m *TaskQueueUpdateQueueRequest) GetMode() TaskQueueMode_Mode { + if m != nil && m.Mode != nil { + return *m.Mode + } + return Default_TaskQueueUpdateQueueRequest_Mode +} + +func (m *TaskQueueUpdateQueueRequest) GetAcl() *TaskQueueAcl { + if m != nil { + return m.Acl + } + return nil +} + +func (m *TaskQueueUpdateQueueRequest) GetHeaderOverride() []*TaskQueueHttpHeader { + if m != nil { + return m.HeaderOverride + } + return nil +} + +type TaskQueueUpdateQueueResponse struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TaskQueueUpdateQueueResponse) Reset() { *m = TaskQueueUpdateQueueResponse{} } +func (m *TaskQueueUpdateQueueResponse) String() string { return proto.CompactTextString(m) } +func (*TaskQueueUpdateQueueResponse) ProtoMessage() {} +func (*TaskQueueUpdateQueueResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{15} +} +func (m *TaskQueueUpdateQueueResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TaskQueueUpdateQueueResponse.Unmarshal(m, b) +} +func (m *TaskQueueUpdateQueueResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TaskQueueUpdateQueueResponse.Marshal(b, m, deterministic) +} +func (dst *TaskQueueUpdateQueueResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_TaskQueueUpdateQueueResponse.Merge(dst, src) +} +func (m *TaskQueueUpdateQueueResponse) XXX_Size() int { + return xxx_messageInfo_TaskQueueUpdateQueueResponse.Size(m) +} +func (m *TaskQueueUpdateQueueResponse) XXX_DiscardUnknown() { + xxx_messageInfo_TaskQueueUpdateQueueResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_TaskQueueUpdateQueueResponse proto.InternalMessageInfo + +type TaskQueueFetchQueuesRequest struct { + AppId []byte `protobuf:"bytes,1,opt,name=app_id,json=appId" json:"app_id,omitempty"` + MaxRows *int32 `protobuf:"varint,2,req,name=max_rows,json=maxRows" json:"max_rows,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TaskQueueFetchQueuesRequest) Reset() { *m = TaskQueueFetchQueuesRequest{} } +func (m *TaskQueueFetchQueuesRequest) String() string { return proto.CompactTextString(m) } +func (*TaskQueueFetchQueuesRequest) ProtoMessage() {} +func (*TaskQueueFetchQueuesRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{16} +} +func (m *TaskQueueFetchQueuesRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TaskQueueFetchQueuesRequest.Unmarshal(m, b) +} +func (m *TaskQueueFetchQueuesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TaskQueueFetchQueuesRequest.Marshal(b, m, deterministic) +} +func (dst *TaskQueueFetchQueuesRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_TaskQueueFetchQueuesRequest.Merge(dst, src) +} +func (m *TaskQueueFetchQueuesRequest) XXX_Size() int { + return xxx_messageInfo_TaskQueueFetchQueuesRequest.Size(m) +} +func (m *TaskQueueFetchQueuesRequest) XXX_DiscardUnknown() { + xxx_messageInfo_TaskQueueFetchQueuesRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_TaskQueueFetchQueuesRequest proto.InternalMessageInfo + +func (m *TaskQueueFetchQueuesRequest) GetAppId() []byte { + if m != nil { + return m.AppId + } + return nil +} + +func (m *TaskQueueFetchQueuesRequest) GetMaxRows() int32 { + if m != nil && m.MaxRows != nil { + return *m.MaxRows + } + return 0 +} + +type TaskQueueFetchQueuesResponse struct { + Queue []*TaskQueueFetchQueuesResponse_Queue `protobuf:"group,1,rep,name=Queue,json=queue" json:"queue,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TaskQueueFetchQueuesResponse) Reset() { *m = TaskQueueFetchQueuesResponse{} } +func (m *TaskQueueFetchQueuesResponse) String() string { return proto.CompactTextString(m) } +func (*TaskQueueFetchQueuesResponse) ProtoMessage() {} +func (*TaskQueueFetchQueuesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{17} +} +func (m *TaskQueueFetchQueuesResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TaskQueueFetchQueuesResponse.Unmarshal(m, b) +} +func (m *TaskQueueFetchQueuesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TaskQueueFetchQueuesResponse.Marshal(b, m, deterministic) +} +func (dst *TaskQueueFetchQueuesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_TaskQueueFetchQueuesResponse.Merge(dst, src) +} +func (m *TaskQueueFetchQueuesResponse) XXX_Size() int { + return xxx_messageInfo_TaskQueueFetchQueuesResponse.Size(m) +} +func (m *TaskQueueFetchQueuesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_TaskQueueFetchQueuesResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_TaskQueueFetchQueuesResponse proto.InternalMessageInfo + +func (m *TaskQueueFetchQueuesResponse) GetQueue() []*TaskQueueFetchQueuesResponse_Queue { + if m != nil { + return m.Queue + } + return nil +} + +type TaskQueueFetchQueuesResponse_Queue struct { + QueueName []byte `protobuf:"bytes,2,req,name=queue_name,json=queueName" json:"queue_name,omitempty"` + BucketRefillPerSecond *float64 `protobuf:"fixed64,3,req,name=bucket_refill_per_second,json=bucketRefillPerSecond" json:"bucket_refill_per_second,omitempty"` + BucketCapacity *float64 `protobuf:"fixed64,4,req,name=bucket_capacity,json=bucketCapacity" json:"bucket_capacity,omitempty"` + UserSpecifiedRate *string `protobuf:"bytes,5,opt,name=user_specified_rate,json=userSpecifiedRate" json:"user_specified_rate,omitempty"` + Paused *bool `protobuf:"varint,6,req,name=paused,def=0" json:"paused,omitempty"` + RetryParameters *TaskQueueRetryParameters `protobuf:"bytes,7,opt,name=retry_parameters,json=retryParameters" json:"retry_parameters,omitempty"` + MaxConcurrentRequests *int32 `protobuf:"varint,8,opt,name=max_concurrent_requests,json=maxConcurrentRequests" json:"max_concurrent_requests,omitempty"` + Mode *TaskQueueMode_Mode `protobuf:"varint,9,opt,name=mode,enum=appengine.TaskQueueMode_Mode,def=0" json:"mode,omitempty"` + Acl *TaskQueueAcl `protobuf:"bytes,10,opt,name=acl" json:"acl,omitempty"` + HeaderOverride []*TaskQueueHttpHeader `protobuf:"bytes,11,rep,name=header_override,json=headerOverride" json:"header_override,omitempty"` + CreatorName *string `protobuf:"bytes,12,opt,name=creator_name,json=creatorName,def=apphosting" json:"creator_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TaskQueueFetchQueuesResponse_Queue) Reset() { *m = TaskQueueFetchQueuesResponse_Queue{} } +func (m *TaskQueueFetchQueuesResponse_Queue) String() string { return proto.CompactTextString(m) } +func (*TaskQueueFetchQueuesResponse_Queue) ProtoMessage() {} +func (*TaskQueueFetchQueuesResponse_Queue) Descriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{17, 0} +} +func (m *TaskQueueFetchQueuesResponse_Queue) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TaskQueueFetchQueuesResponse_Queue.Unmarshal(m, b) +} +func (m *TaskQueueFetchQueuesResponse_Queue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TaskQueueFetchQueuesResponse_Queue.Marshal(b, m, deterministic) +} +func (dst *TaskQueueFetchQueuesResponse_Queue) XXX_Merge(src proto.Message) { + xxx_messageInfo_TaskQueueFetchQueuesResponse_Queue.Merge(dst, src) +} +func (m *TaskQueueFetchQueuesResponse_Queue) XXX_Size() int { + return xxx_messageInfo_TaskQueueFetchQueuesResponse_Queue.Size(m) +} +func (m *TaskQueueFetchQueuesResponse_Queue) XXX_DiscardUnknown() { + xxx_messageInfo_TaskQueueFetchQueuesResponse_Queue.DiscardUnknown(m) +} + +var xxx_messageInfo_TaskQueueFetchQueuesResponse_Queue proto.InternalMessageInfo + +const Default_TaskQueueFetchQueuesResponse_Queue_Paused bool = false +const Default_TaskQueueFetchQueuesResponse_Queue_Mode TaskQueueMode_Mode = TaskQueueMode_PUSH +const Default_TaskQueueFetchQueuesResponse_Queue_CreatorName string = "apphosting" + +func (m *TaskQueueFetchQueuesResponse_Queue) GetQueueName() []byte { + if m != nil { + return m.QueueName + } + return nil +} + +func (m *TaskQueueFetchQueuesResponse_Queue) GetBucketRefillPerSecond() float64 { + if m != nil && m.BucketRefillPerSecond != nil { + return *m.BucketRefillPerSecond + } + return 0 +} + +func (m *TaskQueueFetchQueuesResponse_Queue) GetBucketCapacity() float64 { + if m != nil && m.BucketCapacity != nil { + return *m.BucketCapacity + } + return 0 +} + +func (m *TaskQueueFetchQueuesResponse_Queue) GetUserSpecifiedRate() string { + if m != nil && m.UserSpecifiedRate != nil { + return *m.UserSpecifiedRate + } + return "" +} + +func (m *TaskQueueFetchQueuesResponse_Queue) GetPaused() bool { + if m != nil && m.Paused != nil { + return *m.Paused + } + return Default_TaskQueueFetchQueuesResponse_Queue_Paused +} + +func (m *TaskQueueFetchQueuesResponse_Queue) GetRetryParameters() *TaskQueueRetryParameters { + if m != nil { + return m.RetryParameters + } + return nil +} + +func (m *TaskQueueFetchQueuesResponse_Queue) GetMaxConcurrentRequests() int32 { + if m != nil && m.MaxConcurrentRequests != nil { + return *m.MaxConcurrentRequests + } + return 0 +} + +func (m *TaskQueueFetchQueuesResponse_Queue) GetMode() TaskQueueMode_Mode { + if m != nil && m.Mode != nil { + return *m.Mode + } + return Default_TaskQueueFetchQueuesResponse_Queue_Mode +} + +func (m *TaskQueueFetchQueuesResponse_Queue) GetAcl() *TaskQueueAcl { + if m != nil { + return m.Acl + } + return nil +} + +func (m *TaskQueueFetchQueuesResponse_Queue) GetHeaderOverride() []*TaskQueueHttpHeader { + if m != nil { + return m.HeaderOverride + } + return nil +} + +func (m *TaskQueueFetchQueuesResponse_Queue) GetCreatorName() string { + if m != nil && m.CreatorName != nil { + return *m.CreatorName + } + return Default_TaskQueueFetchQueuesResponse_Queue_CreatorName +} + +type TaskQueueFetchQueueStatsRequest struct { + AppId []byte `protobuf:"bytes,1,opt,name=app_id,json=appId" json:"app_id,omitempty"` + QueueName [][]byte `protobuf:"bytes,2,rep,name=queue_name,json=queueName" json:"queue_name,omitempty"` + MaxNumTasks *int32 `protobuf:"varint,3,opt,name=max_num_tasks,json=maxNumTasks,def=0" json:"max_num_tasks,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TaskQueueFetchQueueStatsRequest) Reset() { *m = TaskQueueFetchQueueStatsRequest{} } +func (m *TaskQueueFetchQueueStatsRequest) String() string { return proto.CompactTextString(m) } +func (*TaskQueueFetchQueueStatsRequest) ProtoMessage() {} +func (*TaskQueueFetchQueueStatsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{18} +} +func (m *TaskQueueFetchQueueStatsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TaskQueueFetchQueueStatsRequest.Unmarshal(m, b) +} +func (m *TaskQueueFetchQueueStatsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TaskQueueFetchQueueStatsRequest.Marshal(b, m, deterministic) +} +func (dst *TaskQueueFetchQueueStatsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_TaskQueueFetchQueueStatsRequest.Merge(dst, src) +} +func (m *TaskQueueFetchQueueStatsRequest) XXX_Size() int { + return xxx_messageInfo_TaskQueueFetchQueueStatsRequest.Size(m) +} +func (m *TaskQueueFetchQueueStatsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_TaskQueueFetchQueueStatsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_TaskQueueFetchQueueStatsRequest proto.InternalMessageInfo + +const Default_TaskQueueFetchQueueStatsRequest_MaxNumTasks int32 = 0 + +func (m *TaskQueueFetchQueueStatsRequest) GetAppId() []byte { + if m != nil { + return m.AppId + } + return nil +} + +func (m *TaskQueueFetchQueueStatsRequest) GetQueueName() [][]byte { + if m != nil { + return m.QueueName + } + return nil +} + +func (m *TaskQueueFetchQueueStatsRequest) GetMaxNumTasks() int32 { + if m != nil && m.MaxNumTasks != nil { + return *m.MaxNumTasks + } + return Default_TaskQueueFetchQueueStatsRequest_MaxNumTasks +} + +type TaskQueueScannerQueueInfo struct { + ExecutedLastMinute *int64 `protobuf:"varint,1,req,name=executed_last_minute,json=executedLastMinute" json:"executed_last_minute,omitempty"` + ExecutedLastHour *int64 `protobuf:"varint,2,req,name=executed_last_hour,json=executedLastHour" json:"executed_last_hour,omitempty"` + SamplingDurationSeconds *float64 `protobuf:"fixed64,3,req,name=sampling_duration_seconds,json=samplingDurationSeconds" json:"sampling_duration_seconds,omitempty"` + RequestsInFlight *int32 `protobuf:"varint,4,opt,name=requests_in_flight,json=requestsInFlight" json:"requests_in_flight,omitempty"` + EnforcedRate *float64 `protobuf:"fixed64,5,opt,name=enforced_rate,json=enforcedRate" json:"enforced_rate,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TaskQueueScannerQueueInfo) Reset() { *m = TaskQueueScannerQueueInfo{} } +func (m *TaskQueueScannerQueueInfo) String() string { return proto.CompactTextString(m) } +func (*TaskQueueScannerQueueInfo) ProtoMessage() {} +func (*TaskQueueScannerQueueInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{19} +} +func (m *TaskQueueScannerQueueInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TaskQueueScannerQueueInfo.Unmarshal(m, b) +} +func (m *TaskQueueScannerQueueInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TaskQueueScannerQueueInfo.Marshal(b, m, deterministic) +} +func (dst *TaskQueueScannerQueueInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_TaskQueueScannerQueueInfo.Merge(dst, src) +} +func (m *TaskQueueScannerQueueInfo) XXX_Size() int { + return xxx_messageInfo_TaskQueueScannerQueueInfo.Size(m) +} +func (m *TaskQueueScannerQueueInfo) XXX_DiscardUnknown() { + xxx_messageInfo_TaskQueueScannerQueueInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_TaskQueueScannerQueueInfo proto.InternalMessageInfo + +func (m *TaskQueueScannerQueueInfo) GetExecutedLastMinute() int64 { + if m != nil && m.ExecutedLastMinute != nil { + return *m.ExecutedLastMinute + } + return 0 +} + +func (m *TaskQueueScannerQueueInfo) GetExecutedLastHour() int64 { + if m != nil && m.ExecutedLastHour != nil { + return *m.ExecutedLastHour + } + return 0 +} + +func (m *TaskQueueScannerQueueInfo) GetSamplingDurationSeconds() float64 { + if m != nil && m.SamplingDurationSeconds != nil { + return *m.SamplingDurationSeconds + } + return 0 +} + +func (m *TaskQueueScannerQueueInfo) GetRequestsInFlight() int32 { + if m != nil && m.RequestsInFlight != nil { + return *m.RequestsInFlight + } + return 0 +} + +func (m *TaskQueueScannerQueueInfo) GetEnforcedRate() float64 { + if m != nil && m.EnforcedRate != nil { + return *m.EnforcedRate + } + return 0 +} + +type TaskQueueFetchQueueStatsResponse struct { + Queuestats []*TaskQueueFetchQueueStatsResponse_QueueStats `protobuf:"group,1,rep,name=QueueStats,json=queuestats" json:"queuestats,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TaskQueueFetchQueueStatsResponse) Reset() { *m = TaskQueueFetchQueueStatsResponse{} } +func (m *TaskQueueFetchQueueStatsResponse) String() string { return proto.CompactTextString(m) } +func (*TaskQueueFetchQueueStatsResponse) ProtoMessage() {} +func (*TaskQueueFetchQueueStatsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{20} +} +func (m *TaskQueueFetchQueueStatsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TaskQueueFetchQueueStatsResponse.Unmarshal(m, b) +} +func (m *TaskQueueFetchQueueStatsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TaskQueueFetchQueueStatsResponse.Marshal(b, m, deterministic) +} +func (dst *TaskQueueFetchQueueStatsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_TaskQueueFetchQueueStatsResponse.Merge(dst, src) +} +func (m *TaskQueueFetchQueueStatsResponse) XXX_Size() int { + return xxx_messageInfo_TaskQueueFetchQueueStatsResponse.Size(m) +} +func (m *TaskQueueFetchQueueStatsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_TaskQueueFetchQueueStatsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_TaskQueueFetchQueueStatsResponse proto.InternalMessageInfo + +func (m *TaskQueueFetchQueueStatsResponse) GetQueuestats() []*TaskQueueFetchQueueStatsResponse_QueueStats { + if m != nil { + return m.Queuestats + } + return nil +} + +type TaskQueueFetchQueueStatsResponse_QueueStats struct { + NumTasks *int32 `protobuf:"varint,2,req,name=num_tasks,json=numTasks" json:"num_tasks,omitempty"` + OldestEtaUsec *int64 `protobuf:"varint,3,req,name=oldest_eta_usec,json=oldestEtaUsec" json:"oldest_eta_usec,omitempty"` + ScannerInfo *TaskQueueScannerQueueInfo `protobuf:"bytes,4,opt,name=scanner_info,json=scannerInfo" json:"scanner_info,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TaskQueueFetchQueueStatsResponse_QueueStats) Reset() { + *m = TaskQueueFetchQueueStatsResponse_QueueStats{} +} +func (m *TaskQueueFetchQueueStatsResponse_QueueStats) String() string { + return proto.CompactTextString(m) +} +func (*TaskQueueFetchQueueStatsResponse_QueueStats) ProtoMessage() {} +func (*TaskQueueFetchQueueStatsResponse_QueueStats) Descriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{20, 0} +} +func (m *TaskQueueFetchQueueStatsResponse_QueueStats) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TaskQueueFetchQueueStatsResponse_QueueStats.Unmarshal(m, b) +} +func (m *TaskQueueFetchQueueStatsResponse_QueueStats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TaskQueueFetchQueueStatsResponse_QueueStats.Marshal(b, m, deterministic) +} +func (dst *TaskQueueFetchQueueStatsResponse_QueueStats) XXX_Merge(src proto.Message) { + xxx_messageInfo_TaskQueueFetchQueueStatsResponse_QueueStats.Merge(dst, src) +} +func (m *TaskQueueFetchQueueStatsResponse_QueueStats) XXX_Size() int { + return xxx_messageInfo_TaskQueueFetchQueueStatsResponse_QueueStats.Size(m) +} +func (m *TaskQueueFetchQueueStatsResponse_QueueStats) XXX_DiscardUnknown() { + xxx_messageInfo_TaskQueueFetchQueueStatsResponse_QueueStats.DiscardUnknown(m) +} + +var xxx_messageInfo_TaskQueueFetchQueueStatsResponse_QueueStats proto.InternalMessageInfo + +func (m *TaskQueueFetchQueueStatsResponse_QueueStats) GetNumTasks() int32 { + if m != nil && m.NumTasks != nil { + return *m.NumTasks + } + return 0 +} + +func (m *TaskQueueFetchQueueStatsResponse_QueueStats) GetOldestEtaUsec() int64 { + if m != nil && m.OldestEtaUsec != nil { + return *m.OldestEtaUsec + } + return 0 +} + +func (m *TaskQueueFetchQueueStatsResponse_QueueStats) GetScannerInfo() *TaskQueueScannerQueueInfo { + if m != nil { + return m.ScannerInfo + } + return nil +} + +type TaskQueuePauseQueueRequest struct { + AppId []byte `protobuf:"bytes,1,req,name=app_id,json=appId" json:"app_id,omitempty"` + QueueName []byte `protobuf:"bytes,2,req,name=queue_name,json=queueName" json:"queue_name,omitempty"` + Pause *bool `protobuf:"varint,3,req,name=pause" json:"pause,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TaskQueuePauseQueueRequest) Reset() { *m = TaskQueuePauseQueueRequest{} } +func (m *TaskQueuePauseQueueRequest) String() string { return proto.CompactTextString(m) } +func (*TaskQueuePauseQueueRequest) ProtoMessage() {} +func (*TaskQueuePauseQueueRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{21} +} +func (m *TaskQueuePauseQueueRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TaskQueuePauseQueueRequest.Unmarshal(m, b) +} +func (m *TaskQueuePauseQueueRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TaskQueuePauseQueueRequest.Marshal(b, m, deterministic) +} +func (dst *TaskQueuePauseQueueRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_TaskQueuePauseQueueRequest.Merge(dst, src) +} +func (m *TaskQueuePauseQueueRequest) XXX_Size() int { + return xxx_messageInfo_TaskQueuePauseQueueRequest.Size(m) +} +func (m *TaskQueuePauseQueueRequest) XXX_DiscardUnknown() { + xxx_messageInfo_TaskQueuePauseQueueRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_TaskQueuePauseQueueRequest proto.InternalMessageInfo + +func (m *TaskQueuePauseQueueRequest) GetAppId() []byte { + if m != nil { + return m.AppId + } + return nil +} + +func (m *TaskQueuePauseQueueRequest) GetQueueName() []byte { + if m != nil { + return m.QueueName + } + return nil +} + +func (m *TaskQueuePauseQueueRequest) GetPause() bool { + if m != nil && m.Pause != nil { + return *m.Pause + } + return false +} + +type TaskQueuePauseQueueResponse struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TaskQueuePauseQueueResponse) Reset() { *m = TaskQueuePauseQueueResponse{} } +func (m *TaskQueuePauseQueueResponse) String() string { return proto.CompactTextString(m) } +func (*TaskQueuePauseQueueResponse) ProtoMessage() {} +func (*TaskQueuePauseQueueResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{22} +} +func (m *TaskQueuePauseQueueResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TaskQueuePauseQueueResponse.Unmarshal(m, b) +} +func (m *TaskQueuePauseQueueResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TaskQueuePauseQueueResponse.Marshal(b, m, deterministic) +} +func (dst *TaskQueuePauseQueueResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_TaskQueuePauseQueueResponse.Merge(dst, src) +} +func (m *TaskQueuePauseQueueResponse) XXX_Size() int { + return xxx_messageInfo_TaskQueuePauseQueueResponse.Size(m) +} +func (m *TaskQueuePauseQueueResponse) XXX_DiscardUnknown() { + xxx_messageInfo_TaskQueuePauseQueueResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_TaskQueuePauseQueueResponse proto.InternalMessageInfo + +type TaskQueuePurgeQueueRequest struct { + AppId []byte `protobuf:"bytes,1,opt,name=app_id,json=appId" json:"app_id,omitempty"` + QueueName []byte `protobuf:"bytes,2,req,name=queue_name,json=queueName" json:"queue_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TaskQueuePurgeQueueRequest) Reset() { *m = TaskQueuePurgeQueueRequest{} } +func (m *TaskQueuePurgeQueueRequest) String() string { return proto.CompactTextString(m) } +func (*TaskQueuePurgeQueueRequest) ProtoMessage() {} +func (*TaskQueuePurgeQueueRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{23} +} +func (m *TaskQueuePurgeQueueRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TaskQueuePurgeQueueRequest.Unmarshal(m, b) +} +func (m *TaskQueuePurgeQueueRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TaskQueuePurgeQueueRequest.Marshal(b, m, deterministic) +} +func (dst *TaskQueuePurgeQueueRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_TaskQueuePurgeQueueRequest.Merge(dst, src) +} +func (m *TaskQueuePurgeQueueRequest) XXX_Size() int { + return xxx_messageInfo_TaskQueuePurgeQueueRequest.Size(m) +} +func (m *TaskQueuePurgeQueueRequest) XXX_DiscardUnknown() { + xxx_messageInfo_TaskQueuePurgeQueueRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_TaskQueuePurgeQueueRequest proto.InternalMessageInfo + +func (m *TaskQueuePurgeQueueRequest) GetAppId() []byte { + if m != nil { + return m.AppId + } + return nil +} + +func (m *TaskQueuePurgeQueueRequest) GetQueueName() []byte { + if m != nil { + return m.QueueName + } + return nil +} + +type TaskQueuePurgeQueueResponse struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TaskQueuePurgeQueueResponse) Reset() { *m = TaskQueuePurgeQueueResponse{} } +func (m *TaskQueuePurgeQueueResponse) String() string { return proto.CompactTextString(m) } +func (*TaskQueuePurgeQueueResponse) ProtoMessage() {} +func (*TaskQueuePurgeQueueResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{24} +} +func (m *TaskQueuePurgeQueueResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TaskQueuePurgeQueueResponse.Unmarshal(m, b) +} +func (m *TaskQueuePurgeQueueResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TaskQueuePurgeQueueResponse.Marshal(b, m, deterministic) +} +func (dst *TaskQueuePurgeQueueResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_TaskQueuePurgeQueueResponse.Merge(dst, src) +} +func (m *TaskQueuePurgeQueueResponse) XXX_Size() int { + return xxx_messageInfo_TaskQueuePurgeQueueResponse.Size(m) +} +func (m *TaskQueuePurgeQueueResponse) XXX_DiscardUnknown() { + xxx_messageInfo_TaskQueuePurgeQueueResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_TaskQueuePurgeQueueResponse proto.InternalMessageInfo + +type TaskQueueDeleteQueueRequest struct { + AppId []byte `protobuf:"bytes,1,req,name=app_id,json=appId" json:"app_id,omitempty"` + QueueName []byte `protobuf:"bytes,2,req,name=queue_name,json=queueName" json:"queue_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TaskQueueDeleteQueueRequest) Reset() { *m = TaskQueueDeleteQueueRequest{} } +func (m *TaskQueueDeleteQueueRequest) String() string { return proto.CompactTextString(m) } +func (*TaskQueueDeleteQueueRequest) ProtoMessage() {} +func (*TaskQueueDeleteQueueRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{25} +} +func (m *TaskQueueDeleteQueueRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TaskQueueDeleteQueueRequest.Unmarshal(m, b) +} +func (m *TaskQueueDeleteQueueRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TaskQueueDeleteQueueRequest.Marshal(b, m, deterministic) +} +func (dst *TaskQueueDeleteQueueRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_TaskQueueDeleteQueueRequest.Merge(dst, src) +} +func (m *TaskQueueDeleteQueueRequest) XXX_Size() int { + return xxx_messageInfo_TaskQueueDeleteQueueRequest.Size(m) +} +func (m *TaskQueueDeleteQueueRequest) XXX_DiscardUnknown() { + xxx_messageInfo_TaskQueueDeleteQueueRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_TaskQueueDeleteQueueRequest proto.InternalMessageInfo + +func (m *TaskQueueDeleteQueueRequest) GetAppId() []byte { + if m != nil { + return m.AppId + } + return nil +} + +func (m *TaskQueueDeleteQueueRequest) GetQueueName() []byte { + if m != nil { + return m.QueueName + } + return nil +} + +type TaskQueueDeleteQueueResponse struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TaskQueueDeleteQueueResponse) Reset() { *m = TaskQueueDeleteQueueResponse{} } +func (m *TaskQueueDeleteQueueResponse) String() string { return proto.CompactTextString(m) } +func (*TaskQueueDeleteQueueResponse) ProtoMessage() {} +func (*TaskQueueDeleteQueueResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{26} +} +func (m *TaskQueueDeleteQueueResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TaskQueueDeleteQueueResponse.Unmarshal(m, b) +} +func (m *TaskQueueDeleteQueueResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TaskQueueDeleteQueueResponse.Marshal(b, m, deterministic) +} +func (dst *TaskQueueDeleteQueueResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_TaskQueueDeleteQueueResponse.Merge(dst, src) +} +func (m *TaskQueueDeleteQueueResponse) XXX_Size() int { + return xxx_messageInfo_TaskQueueDeleteQueueResponse.Size(m) +} +func (m *TaskQueueDeleteQueueResponse) XXX_DiscardUnknown() { + xxx_messageInfo_TaskQueueDeleteQueueResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_TaskQueueDeleteQueueResponse proto.InternalMessageInfo + +type TaskQueueDeleteGroupRequest struct { + AppId []byte `protobuf:"bytes,1,req,name=app_id,json=appId" json:"app_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TaskQueueDeleteGroupRequest) Reset() { *m = TaskQueueDeleteGroupRequest{} } +func (m *TaskQueueDeleteGroupRequest) String() string { return proto.CompactTextString(m) } +func (*TaskQueueDeleteGroupRequest) ProtoMessage() {} +func (*TaskQueueDeleteGroupRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{27} +} +func (m *TaskQueueDeleteGroupRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TaskQueueDeleteGroupRequest.Unmarshal(m, b) +} +func (m *TaskQueueDeleteGroupRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TaskQueueDeleteGroupRequest.Marshal(b, m, deterministic) +} +func (dst *TaskQueueDeleteGroupRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_TaskQueueDeleteGroupRequest.Merge(dst, src) +} +func (m *TaskQueueDeleteGroupRequest) XXX_Size() int { + return xxx_messageInfo_TaskQueueDeleteGroupRequest.Size(m) +} +func (m *TaskQueueDeleteGroupRequest) XXX_DiscardUnknown() { + xxx_messageInfo_TaskQueueDeleteGroupRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_TaskQueueDeleteGroupRequest proto.InternalMessageInfo + +func (m *TaskQueueDeleteGroupRequest) GetAppId() []byte { + if m != nil { + return m.AppId + } + return nil +} + +type TaskQueueDeleteGroupResponse struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TaskQueueDeleteGroupResponse) Reset() { *m = TaskQueueDeleteGroupResponse{} } +func (m *TaskQueueDeleteGroupResponse) String() string { return proto.CompactTextString(m) } +func (*TaskQueueDeleteGroupResponse) ProtoMessage() {} +func (*TaskQueueDeleteGroupResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{28} +} +func (m *TaskQueueDeleteGroupResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TaskQueueDeleteGroupResponse.Unmarshal(m, b) +} +func (m *TaskQueueDeleteGroupResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TaskQueueDeleteGroupResponse.Marshal(b, m, deterministic) +} +func (dst *TaskQueueDeleteGroupResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_TaskQueueDeleteGroupResponse.Merge(dst, src) +} +func (m *TaskQueueDeleteGroupResponse) XXX_Size() int { + return xxx_messageInfo_TaskQueueDeleteGroupResponse.Size(m) +} +func (m *TaskQueueDeleteGroupResponse) XXX_DiscardUnknown() { + xxx_messageInfo_TaskQueueDeleteGroupResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_TaskQueueDeleteGroupResponse proto.InternalMessageInfo + +type TaskQueueQueryTasksRequest struct { + AppId []byte `protobuf:"bytes,1,opt,name=app_id,json=appId" json:"app_id,omitempty"` + QueueName []byte `protobuf:"bytes,2,req,name=queue_name,json=queueName" json:"queue_name,omitempty"` + StartTaskName []byte `protobuf:"bytes,3,opt,name=start_task_name,json=startTaskName" json:"start_task_name,omitempty"` + StartEtaUsec *int64 `protobuf:"varint,4,opt,name=start_eta_usec,json=startEtaUsec" json:"start_eta_usec,omitempty"` + StartTag []byte `protobuf:"bytes,6,opt,name=start_tag,json=startTag" json:"start_tag,omitempty"` + MaxRows *int32 `protobuf:"varint,5,opt,name=max_rows,json=maxRows,def=1" json:"max_rows,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TaskQueueQueryTasksRequest) Reset() { *m = TaskQueueQueryTasksRequest{} } +func (m *TaskQueueQueryTasksRequest) String() string { return proto.CompactTextString(m) } +func (*TaskQueueQueryTasksRequest) ProtoMessage() {} +func (*TaskQueueQueryTasksRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{29} +} +func (m *TaskQueueQueryTasksRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TaskQueueQueryTasksRequest.Unmarshal(m, b) +} +func (m *TaskQueueQueryTasksRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TaskQueueQueryTasksRequest.Marshal(b, m, deterministic) +} +func (dst *TaskQueueQueryTasksRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_TaskQueueQueryTasksRequest.Merge(dst, src) +} +func (m *TaskQueueQueryTasksRequest) XXX_Size() int { + return xxx_messageInfo_TaskQueueQueryTasksRequest.Size(m) +} +func (m *TaskQueueQueryTasksRequest) XXX_DiscardUnknown() { + xxx_messageInfo_TaskQueueQueryTasksRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_TaskQueueQueryTasksRequest proto.InternalMessageInfo + +const Default_TaskQueueQueryTasksRequest_MaxRows int32 = 1 + +func (m *TaskQueueQueryTasksRequest) GetAppId() []byte { + if m != nil { + return m.AppId + } + return nil +} + +func (m *TaskQueueQueryTasksRequest) GetQueueName() []byte { + if m != nil { + return m.QueueName + } + return nil +} + +func (m *TaskQueueQueryTasksRequest) GetStartTaskName() []byte { + if m != nil { + return m.StartTaskName + } + return nil +} + +func (m *TaskQueueQueryTasksRequest) GetStartEtaUsec() int64 { + if m != nil && m.StartEtaUsec != nil { + return *m.StartEtaUsec + } + return 0 +} + +func (m *TaskQueueQueryTasksRequest) GetStartTag() []byte { + if m != nil { + return m.StartTag + } + return nil +} + +func (m *TaskQueueQueryTasksRequest) GetMaxRows() int32 { + if m != nil && m.MaxRows != nil { + return *m.MaxRows + } + return Default_TaskQueueQueryTasksRequest_MaxRows +} + +type TaskQueueQueryTasksResponse struct { + Task []*TaskQueueQueryTasksResponse_Task `protobuf:"group,1,rep,name=Task,json=task" json:"task,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TaskQueueQueryTasksResponse) Reset() { *m = TaskQueueQueryTasksResponse{} } +func (m *TaskQueueQueryTasksResponse) String() string { return proto.CompactTextString(m) } +func (*TaskQueueQueryTasksResponse) ProtoMessage() {} +func (*TaskQueueQueryTasksResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{30} +} +func (m *TaskQueueQueryTasksResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TaskQueueQueryTasksResponse.Unmarshal(m, b) +} +func (m *TaskQueueQueryTasksResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TaskQueueQueryTasksResponse.Marshal(b, m, deterministic) +} +func (dst *TaskQueueQueryTasksResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_TaskQueueQueryTasksResponse.Merge(dst, src) +} +func (m *TaskQueueQueryTasksResponse) XXX_Size() int { + return xxx_messageInfo_TaskQueueQueryTasksResponse.Size(m) +} +func (m *TaskQueueQueryTasksResponse) XXX_DiscardUnknown() { + xxx_messageInfo_TaskQueueQueryTasksResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_TaskQueueQueryTasksResponse proto.InternalMessageInfo + +func (m *TaskQueueQueryTasksResponse) GetTask() []*TaskQueueQueryTasksResponse_Task { + if m != nil { + return m.Task + } + return nil +} + +type TaskQueueQueryTasksResponse_Task struct { + TaskName []byte `protobuf:"bytes,2,req,name=task_name,json=taskName" json:"task_name,omitempty"` + EtaUsec *int64 `protobuf:"varint,3,req,name=eta_usec,json=etaUsec" json:"eta_usec,omitempty"` + Url []byte `protobuf:"bytes,4,opt,name=url" json:"url,omitempty"` + Method *TaskQueueQueryTasksResponse_Task_RequestMethod `protobuf:"varint,5,opt,name=method,enum=appengine.TaskQueueQueryTasksResponse_Task_RequestMethod" json:"method,omitempty"` + RetryCount *int32 `protobuf:"varint,6,opt,name=retry_count,json=retryCount,def=0" json:"retry_count,omitempty"` + Header []*TaskQueueQueryTasksResponse_Task_Header `protobuf:"group,7,rep,name=Header,json=header" json:"header,omitempty"` + BodySize *int32 `protobuf:"varint,10,opt,name=body_size,json=bodySize" json:"body_size,omitempty"` + Body []byte `protobuf:"bytes,11,opt,name=body" json:"body,omitempty"` + CreationTimeUsec *int64 `protobuf:"varint,12,req,name=creation_time_usec,json=creationTimeUsec" json:"creation_time_usec,omitempty"` + Crontimetable *TaskQueueQueryTasksResponse_Task_CronTimetable `protobuf:"group,13,opt,name=CronTimetable,json=crontimetable" json:"crontimetable,omitempty"` + Runlog *TaskQueueQueryTasksResponse_Task_RunLog `protobuf:"group,16,opt,name=RunLog,json=runlog" json:"runlog,omitempty"` + Description []byte `protobuf:"bytes,21,opt,name=description" json:"description,omitempty"` + Payload *TaskPayload `protobuf:"bytes,22,opt,name=payload" json:"payload,omitempty"` + RetryParameters *TaskQueueRetryParameters `protobuf:"bytes,23,opt,name=retry_parameters,json=retryParameters" json:"retry_parameters,omitempty"` + FirstTryUsec *int64 `protobuf:"varint,24,opt,name=first_try_usec,json=firstTryUsec" json:"first_try_usec,omitempty"` + Tag []byte `protobuf:"bytes,25,opt,name=tag" json:"tag,omitempty"` + ExecutionCount *int32 `protobuf:"varint,26,opt,name=execution_count,json=executionCount,def=0" json:"execution_count,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TaskQueueQueryTasksResponse_Task) Reset() { *m = TaskQueueQueryTasksResponse_Task{} } +func (m *TaskQueueQueryTasksResponse_Task) String() string { return proto.CompactTextString(m) } +func (*TaskQueueQueryTasksResponse_Task) ProtoMessage() {} +func (*TaskQueueQueryTasksResponse_Task) Descriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{30, 0} +} +func (m *TaskQueueQueryTasksResponse_Task) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TaskQueueQueryTasksResponse_Task.Unmarshal(m, b) +} +func (m *TaskQueueQueryTasksResponse_Task) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TaskQueueQueryTasksResponse_Task.Marshal(b, m, deterministic) +} +func (dst *TaskQueueQueryTasksResponse_Task) XXX_Merge(src proto.Message) { + xxx_messageInfo_TaskQueueQueryTasksResponse_Task.Merge(dst, src) +} +func (m *TaskQueueQueryTasksResponse_Task) XXX_Size() int { + return xxx_messageInfo_TaskQueueQueryTasksResponse_Task.Size(m) +} +func (m *TaskQueueQueryTasksResponse_Task) XXX_DiscardUnknown() { + xxx_messageInfo_TaskQueueQueryTasksResponse_Task.DiscardUnknown(m) +} + +var xxx_messageInfo_TaskQueueQueryTasksResponse_Task proto.InternalMessageInfo + +const Default_TaskQueueQueryTasksResponse_Task_RetryCount int32 = 0 +const Default_TaskQueueQueryTasksResponse_Task_ExecutionCount int32 = 0 + +func (m *TaskQueueQueryTasksResponse_Task) GetTaskName() []byte { + if m != nil { + return m.TaskName + } + return nil +} + +func (m *TaskQueueQueryTasksResponse_Task) GetEtaUsec() int64 { + if m != nil && m.EtaUsec != nil { + return *m.EtaUsec + } + return 0 +} + +func (m *TaskQueueQueryTasksResponse_Task) GetUrl() []byte { + if m != nil { + return m.Url + } + return nil +} + +func (m *TaskQueueQueryTasksResponse_Task) GetMethod() TaskQueueQueryTasksResponse_Task_RequestMethod { + if m != nil && m.Method != nil { + return *m.Method + } + return TaskQueueQueryTasksResponse_Task_GET +} + +func (m *TaskQueueQueryTasksResponse_Task) GetRetryCount() int32 { + if m != nil && m.RetryCount != nil { + return *m.RetryCount + } + return Default_TaskQueueQueryTasksResponse_Task_RetryCount +} + +func (m *TaskQueueQueryTasksResponse_Task) GetHeader() []*TaskQueueQueryTasksResponse_Task_Header { + if m != nil { + return m.Header + } + return nil +} + +func (m *TaskQueueQueryTasksResponse_Task) GetBodySize() int32 { + if m != nil && m.BodySize != nil { + return *m.BodySize + } + return 0 +} + +func (m *TaskQueueQueryTasksResponse_Task) GetBody() []byte { + if m != nil { + return m.Body + } + return nil +} + +func (m *TaskQueueQueryTasksResponse_Task) GetCreationTimeUsec() int64 { + if m != nil && m.CreationTimeUsec != nil { + return *m.CreationTimeUsec + } + return 0 +} + +func (m *TaskQueueQueryTasksResponse_Task) GetCrontimetable() *TaskQueueQueryTasksResponse_Task_CronTimetable { + if m != nil { + return m.Crontimetable + } + return nil +} + +func (m *TaskQueueQueryTasksResponse_Task) GetRunlog() *TaskQueueQueryTasksResponse_Task_RunLog { + if m != nil { + return m.Runlog + } + return nil +} + +func (m *TaskQueueQueryTasksResponse_Task) GetDescription() []byte { + if m != nil { + return m.Description + } + return nil +} + +func (m *TaskQueueQueryTasksResponse_Task) GetPayload() *TaskPayload { + if m != nil { + return m.Payload + } + return nil +} + +func (m *TaskQueueQueryTasksResponse_Task) GetRetryParameters() *TaskQueueRetryParameters { + if m != nil { + return m.RetryParameters + } + return nil +} + +func (m *TaskQueueQueryTasksResponse_Task) GetFirstTryUsec() int64 { + if m != nil && m.FirstTryUsec != nil { + return *m.FirstTryUsec + } + return 0 +} + +func (m *TaskQueueQueryTasksResponse_Task) GetTag() []byte { + if m != nil { + return m.Tag + } + return nil +} + +func (m *TaskQueueQueryTasksResponse_Task) GetExecutionCount() int32 { + if m != nil && m.ExecutionCount != nil { + return *m.ExecutionCount + } + return Default_TaskQueueQueryTasksResponse_Task_ExecutionCount +} + +type TaskQueueQueryTasksResponse_Task_Header struct { + Key []byte `protobuf:"bytes,8,req,name=key" json:"key,omitempty"` + Value []byte `protobuf:"bytes,9,req,name=value" json:"value,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TaskQueueQueryTasksResponse_Task_Header) Reset() { + *m = TaskQueueQueryTasksResponse_Task_Header{} +} +func (m *TaskQueueQueryTasksResponse_Task_Header) String() string { return proto.CompactTextString(m) } +func (*TaskQueueQueryTasksResponse_Task_Header) ProtoMessage() {} +func (*TaskQueueQueryTasksResponse_Task_Header) Descriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{30, 0, 0} +} +func (m *TaskQueueQueryTasksResponse_Task_Header) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TaskQueueQueryTasksResponse_Task_Header.Unmarshal(m, b) +} +func (m *TaskQueueQueryTasksResponse_Task_Header) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TaskQueueQueryTasksResponse_Task_Header.Marshal(b, m, deterministic) +} +func (dst *TaskQueueQueryTasksResponse_Task_Header) XXX_Merge(src proto.Message) { + xxx_messageInfo_TaskQueueQueryTasksResponse_Task_Header.Merge(dst, src) +} +func (m *TaskQueueQueryTasksResponse_Task_Header) XXX_Size() int { + return xxx_messageInfo_TaskQueueQueryTasksResponse_Task_Header.Size(m) +} +func (m *TaskQueueQueryTasksResponse_Task_Header) XXX_DiscardUnknown() { + xxx_messageInfo_TaskQueueQueryTasksResponse_Task_Header.DiscardUnknown(m) +} + +var xxx_messageInfo_TaskQueueQueryTasksResponse_Task_Header proto.InternalMessageInfo + +func (m *TaskQueueQueryTasksResponse_Task_Header) GetKey() []byte { + if m != nil { + return m.Key + } + return nil +} + +func (m *TaskQueueQueryTasksResponse_Task_Header) GetValue() []byte { + if m != nil { + return m.Value + } + return nil +} + +type TaskQueueQueryTasksResponse_Task_CronTimetable struct { + Schedule []byte `protobuf:"bytes,14,req,name=schedule" json:"schedule,omitempty"` + Timezone []byte `protobuf:"bytes,15,req,name=timezone" json:"timezone,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TaskQueueQueryTasksResponse_Task_CronTimetable) Reset() { + *m = TaskQueueQueryTasksResponse_Task_CronTimetable{} +} +func (m *TaskQueueQueryTasksResponse_Task_CronTimetable) String() string { + return proto.CompactTextString(m) +} +func (*TaskQueueQueryTasksResponse_Task_CronTimetable) ProtoMessage() {} +func (*TaskQueueQueryTasksResponse_Task_CronTimetable) Descriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{30, 0, 1} +} +func (m *TaskQueueQueryTasksResponse_Task_CronTimetable) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TaskQueueQueryTasksResponse_Task_CronTimetable.Unmarshal(m, b) +} +func (m *TaskQueueQueryTasksResponse_Task_CronTimetable) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TaskQueueQueryTasksResponse_Task_CronTimetable.Marshal(b, m, deterministic) +} +func (dst *TaskQueueQueryTasksResponse_Task_CronTimetable) XXX_Merge(src proto.Message) { + xxx_messageInfo_TaskQueueQueryTasksResponse_Task_CronTimetable.Merge(dst, src) +} +func (m *TaskQueueQueryTasksResponse_Task_CronTimetable) XXX_Size() int { + return xxx_messageInfo_TaskQueueQueryTasksResponse_Task_CronTimetable.Size(m) +} +func (m *TaskQueueQueryTasksResponse_Task_CronTimetable) XXX_DiscardUnknown() { + xxx_messageInfo_TaskQueueQueryTasksResponse_Task_CronTimetable.DiscardUnknown(m) +} + +var xxx_messageInfo_TaskQueueQueryTasksResponse_Task_CronTimetable proto.InternalMessageInfo + +func (m *TaskQueueQueryTasksResponse_Task_CronTimetable) GetSchedule() []byte { + if m != nil { + return m.Schedule + } + return nil +} + +func (m *TaskQueueQueryTasksResponse_Task_CronTimetable) GetTimezone() []byte { + if m != nil { + return m.Timezone + } + return nil +} + +type TaskQueueQueryTasksResponse_Task_RunLog struct { + DispatchedUsec *int64 `protobuf:"varint,17,req,name=dispatched_usec,json=dispatchedUsec" json:"dispatched_usec,omitempty"` + LagUsec *int64 `protobuf:"varint,18,req,name=lag_usec,json=lagUsec" json:"lag_usec,omitempty"` + ElapsedUsec *int64 `protobuf:"varint,19,req,name=elapsed_usec,json=elapsedUsec" json:"elapsed_usec,omitempty"` + ResponseCode *int64 `protobuf:"varint,20,opt,name=response_code,json=responseCode" json:"response_code,omitempty"` + RetryReason *string `protobuf:"bytes,27,opt,name=retry_reason,json=retryReason" json:"retry_reason,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TaskQueueQueryTasksResponse_Task_RunLog) Reset() { + *m = TaskQueueQueryTasksResponse_Task_RunLog{} +} +func (m *TaskQueueQueryTasksResponse_Task_RunLog) String() string { return proto.CompactTextString(m) } +func (*TaskQueueQueryTasksResponse_Task_RunLog) ProtoMessage() {} +func (*TaskQueueQueryTasksResponse_Task_RunLog) Descriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{30, 0, 2} +} +func (m *TaskQueueQueryTasksResponse_Task_RunLog) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TaskQueueQueryTasksResponse_Task_RunLog.Unmarshal(m, b) +} +func (m *TaskQueueQueryTasksResponse_Task_RunLog) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TaskQueueQueryTasksResponse_Task_RunLog.Marshal(b, m, deterministic) +} +func (dst *TaskQueueQueryTasksResponse_Task_RunLog) XXX_Merge(src proto.Message) { + xxx_messageInfo_TaskQueueQueryTasksResponse_Task_RunLog.Merge(dst, src) +} +func (m *TaskQueueQueryTasksResponse_Task_RunLog) XXX_Size() int { + return xxx_messageInfo_TaskQueueQueryTasksResponse_Task_RunLog.Size(m) +} +func (m *TaskQueueQueryTasksResponse_Task_RunLog) XXX_DiscardUnknown() { + xxx_messageInfo_TaskQueueQueryTasksResponse_Task_RunLog.DiscardUnknown(m) +} + +var xxx_messageInfo_TaskQueueQueryTasksResponse_Task_RunLog proto.InternalMessageInfo + +func (m *TaskQueueQueryTasksResponse_Task_RunLog) GetDispatchedUsec() int64 { + if m != nil && m.DispatchedUsec != nil { + return *m.DispatchedUsec + } + return 0 +} + +func (m *TaskQueueQueryTasksResponse_Task_RunLog) GetLagUsec() int64 { + if m != nil && m.LagUsec != nil { + return *m.LagUsec + } + return 0 +} + +func (m *TaskQueueQueryTasksResponse_Task_RunLog) GetElapsedUsec() int64 { + if m != nil && m.ElapsedUsec != nil { + return *m.ElapsedUsec + } + return 0 +} + +func (m *TaskQueueQueryTasksResponse_Task_RunLog) GetResponseCode() int64 { + if m != nil && m.ResponseCode != nil { + return *m.ResponseCode + } + return 0 +} + +func (m *TaskQueueQueryTasksResponse_Task_RunLog) GetRetryReason() string { + if m != nil && m.RetryReason != nil { + return *m.RetryReason + } + return "" +} + +type TaskQueueFetchTaskRequest struct { + AppId []byte `protobuf:"bytes,1,opt,name=app_id,json=appId" json:"app_id,omitempty"` + QueueName []byte `protobuf:"bytes,2,req,name=queue_name,json=queueName" json:"queue_name,omitempty"` + TaskName []byte `protobuf:"bytes,3,req,name=task_name,json=taskName" json:"task_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TaskQueueFetchTaskRequest) Reset() { *m = TaskQueueFetchTaskRequest{} } +func (m *TaskQueueFetchTaskRequest) String() string { return proto.CompactTextString(m) } +func (*TaskQueueFetchTaskRequest) ProtoMessage() {} +func (*TaskQueueFetchTaskRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{31} +} +func (m *TaskQueueFetchTaskRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TaskQueueFetchTaskRequest.Unmarshal(m, b) +} +func (m *TaskQueueFetchTaskRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TaskQueueFetchTaskRequest.Marshal(b, m, deterministic) +} +func (dst *TaskQueueFetchTaskRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_TaskQueueFetchTaskRequest.Merge(dst, src) +} +func (m *TaskQueueFetchTaskRequest) XXX_Size() int { + return xxx_messageInfo_TaskQueueFetchTaskRequest.Size(m) +} +func (m *TaskQueueFetchTaskRequest) XXX_DiscardUnknown() { + xxx_messageInfo_TaskQueueFetchTaskRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_TaskQueueFetchTaskRequest proto.InternalMessageInfo + +func (m *TaskQueueFetchTaskRequest) GetAppId() []byte { + if m != nil { + return m.AppId + } + return nil +} + +func (m *TaskQueueFetchTaskRequest) GetQueueName() []byte { + if m != nil { + return m.QueueName + } + return nil +} + +func (m *TaskQueueFetchTaskRequest) GetTaskName() []byte { + if m != nil { + return m.TaskName + } + return nil +} + +type TaskQueueFetchTaskResponse struct { + Task *TaskQueueQueryTasksResponse `protobuf:"bytes,1,req,name=task" json:"task,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TaskQueueFetchTaskResponse) Reset() { *m = TaskQueueFetchTaskResponse{} } +func (m *TaskQueueFetchTaskResponse) String() string { return proto.CompactTextString(m) } +func (*TaskQueueFetchTaskResponse) ProtoMessage() {} +func (*TaskQueueFetchTaskResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{32} +} +func (m *TaskQueueFetchTaskResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TaskQueueFetchTaskResponse.Unmarshal(m, b) +} +func (m *TaskQueueFetchTaskResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TaskQueueFetchTaskResponse.Marshal(b, m, deterministic) +} +func (dst *TaskQueueFetchTaskResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_TaskQueueFetchTaskResponse.Merge(dst, src) +} +func (m *TaskQueueFetchTaskResponse) XXX_Size() int { + return xxx_messageInfo_TaskQueueFetchTaskResponse.Size(m) +} +func (m *TaskQueueFetchTaskResponse) XXX_DiscardUnknown() { + xxx_messageInfo_TaskQueueFetchTaskResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_TaskQueueFetchTaskResponse proto.InternalMessageInfo + +func (m *TaskQueueFetchTaskResponse) GetTask() *TaskQueueQueryTasksResponse { + if m != nil { + return m.Task + } + return nil +} + +type TaskQueueUpdateStorageLimitRequest struct { + AppId []byte `protobuf:"bytes,1,req,name=app_id,json=appId" json:"app_id,omitempty"` + Limit *int64 `protobuf:"varint,2,req,name=limit" json:"limit,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TaskQueueUpdateStorageLimitRequest) Reset() { *m = TaskQueueUpdateStorageLimitRequest{} } +func (m *TaskQueueUpdateStorageLimitRequest) String() string { return proto.CompactTextString(m) } +func (*TaskQueueUpdateStorageLimitRequest) ProtoMessage() {} +func (*TaskQueueUpdateStorageLimitRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{33} +} +func (m *TaskQueueUpdateStorageLimitRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TaskQueueUpdateStorageLimitRequest.Unmarshal(m, b) +} +func (m *TaskQueueUpdateStorageLimitRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TaskQueueUpdateStorageLimitRequest.Marshal(b, m, deterministic) +} +func (dst *TaskQueueUpdateStorageLimitRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_TaskQueueUpdateStorageLimitRequest.Merge(dst, src) +} +func (m *TaskQueueUpdateStorageLimitRequest) XXX_Size() int { + return xxx_messageInfo_TaskQueueUpdateStorageLimitRequest.Size(m) +} +func (m *TaskQueueUpdateStorageLimitRequest) XXX_DiscardUnknown() { + xxx_messageInfo_TaskQueueUpdateStorageLimitRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_TaskQueueUpdateStorageLimitRequest proto.InternalMessageInfo + +func (m *TaskQueueUpdateStorageLimitRequest) GetAppId() []byte { + if m != nil { + return m.AppId + } + return nil +} + +func (m *TaskQueueUpdateStorageLimitRequest) GetLimit() int64 { + if m != nil && m.Limit != nil { + return *m.Limit + } + return 0 +} + +type TaskQueueUpdateStorageLimitResponse struct { + NewLimit *int64 `protobuf:"varint,1,req,name=new_limit,json=newLimit" json:"new_limit,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TaskQueueUpdateStorageLimitResponse) Reset() { *m = TaskQueueUpdateStorageLimitResponse{} } +func (m *TaskQueueUpdateStorageLimitResponse) String() string { return proto.CompactTextString(m) } +func (*TaskQueueUpdateStorageLimitResponse) ProtoMessage() {} +func (*TaskQueueUpdateStorageLimitResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{34} +} +func (m *TaskQueueUpdateStorageLimitResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TaskQueueUpdateStorageLimitResponse.Unmarshal(m, b) +} +func (m *TaskQueueUpdateStorageLimitResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TaskQueueUpdateStorageLimitResponse.Marshal(b, m, deterministic) +} +func (dst *TaskQueueUpdateStorageLimitResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_TaskQueueUpdateStorageLimitResponse.Merge(dst, src) +} +func (m *TaskQueueUpdateStorageLimitResponse) XXX_Size() int { + return xxx_messageInfo_TaskQueueUpdateStorageLimitResponse.Size(m) +} +func (m *TaskQueueUpdateStorageLimitResponse) XXX_DiscardUnknown() { + xxx_messageInfo_TaskQueueUpdateStorageLimitResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_TaskQueueUpdateStorageLimitResponse proto.InternalMessageInfo + +func (m *TaskQueueUpdateStorageLimitResponse) GetNewLimit() int64 { + if m != nil && m.NewLimit != nil { + return *m.NewLimit + } + return 0 +} + +type TaskQueueQueryAndOwnTasksRequest struct { + QueueName []byte `protobuf:"bytes,1,req,name=queue_name,json=queueName" json:"queue_name,omitempty"` + LeaseSeconds *float64 `protobuf:"fixed64,2,req,name=lease_seconds,json=leaseSeconds" json:"lease_seconds,omitempty"` + MaxTasks *int64 `protobuf:"varint,3,req,name=max_tasks,json=maxTasks" json:"max_tasks,omitempty"` + GroupByTag *bool `protobuf:"varint,4,opt,name=group_by_tag,json=groupByTag,def=0" json:"group_by_tag,omitempty"` + Tag []byte `protobuf:"bytes,5,opt,name=tag" json:"tag,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TaskQueueQueryAndOwnTasksRequest) Reset() { *m = TaskQueueQueryAndOwnTasksRequest{} } +func (m *TaskQueueQueryAndOwnTasksRequest) String() string { return proto.CompactTextString(m) } +func (*TaskQueueQueryAndOwnTasksRequest) ProtoMessage() {} +func (*TaskQueueQueryAndOwnTasksRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{35} +} +func (m *TaskQueueQueryAndOwnTasksRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TaskQueueQueryAndOwnTasksRequest.Unmarshal(m, b) +} +func (m *TaskQueueQueryAndOwnTasksRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TaskQueueQueryAndOwnTasksRequest.Marshal(b, m, deterministic) +} +func (dst *TaskQueueQueryAndOwnTasksRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_TaskQueueQueryAndOwnTasksRequest.Merge(dst, src) +} +func (m *TaskQueueQueryAndOwnTasksRequest) XXX_Size() int { + return xxx_messageInfo_TaskQueueQueryAndOwnTasksRequest.Size(m) +} +func (m *TaskQueueQueryAndOwnTasksRequest) XXX_DiscardUnknown() { + xxx_messageInfo_TaskQueueQueryAndOwnTasksRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_TaskQueueQueryAndOwnTasksRequest proto.InternalMessageInfo + +const Default_TaskQueueQueryAndOwnTasksRequest_GroupByTag bool = false + +func (m *TaskQueueQueryAndOwnTasksRequest) GetQueueName() []byte { + if m != nil { + return m.QueueName + } + return nil +} + +func (m *TaskQueueQueryAndOwnTasksRequest) GetLeaseSeconds() float64 { + if m != nil && m.LeaseSeconds != nil { + return *m.LeaseSeconds + } + return 0 +} + +func (m *TaskQueueQueryAndOwnTasksRequest) GetMaxTasks() int64 { + if m != nil && m.MaxTasks != nil { + return *m.MaxTasks + } + return 0 +} + +func (m *TaskQueueQueryAndOwnTasksRequest) GetGroupByTag() bool { + if m != nil && m.GroupByTag != nil { + return *m.GroupByTag + } + return Default_TaskQueueQueryAndOwnTasksRequest_GroupByTag +} + +func (m *TaskQueueQueryAndOwnTasksRequest) GetTag() []byte { + if m != nil { + return m.Tag + } + return nil +} + +type TaskQueueQueryAndOwnTasksResponse struct { + Task []*TaskQueueQueryAndOwnTasksResponse_Task `protobuf:"group,1,rep,name=Task,json=task" json:"task,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TaskQueueQueryAndOwnTasksResponse) Reset() { *m = TaskQueueQueryAndOwnTasksResponse{} } +func (m *TaskQueueQueryAndOwnTasksResponse) String() string { return proto.CompactTextString(m) } +func (*TaskQueueQueryAndOwnTasksResponse) ProtoMessage() {} +func (*TaskQueueQueryAndOwnTasksResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{36} +} +func (m *TaskQueueQueryAndOwnTasksResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TaskQueueQueryAndOwnTasksResponse.Unmarshal(m, b) +} +func (m *TaskQueueQueryAndOwnTasksResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TaskQueueQueryAndOwnTasksResponse.Marshal(b, m, deterministic) +} +func (dst *TaskQueueQueryAndOwnTasksResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_TaskQueueQueryAndOwnTasksResponse.Merge(dst, src) +} +func (m *TaskQueueQueryAndOwnTasksResponse) XXX_Size() int { + return xxx_messageInfo_TaskQueueQueryAndOwnTasksResponse.Size(m) +} +func (m *TaskQueueQueryAndOwnTasksResponse) XXX_DiscardUnknown() { + xxx_messageInfo_TaskQueueQueryAndOwnTasksResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_TaskQueueQueryAndOwnTasksResponse proto.InternalMessageInfo + +func (m *TaskQueueQueryAndOwnTasksResponse) GetTask() []*TaskQueueQueryAndOwnTasksResponse_Task { + if m != nil { + return m.Task + } + return nil +} + +type TaskQueueQueryAndOwnTasksResponse_Task struct { + TaskName []byte `protobuf:"bytes,2,req,name=task_name,json=taskName" json:"task_name,omitempty"` + EtaUsec *int64 `protobuf:"varint,3,req,name=eta_usec,json=etaUsec" json:"eta_usec,omitempty"` + RetryCount *int32 `protobuf:"varint,4,opt,name=retry_count,json=retryCount,def=0" json:"retry_count,omitempty"` + Body []byte `protobuf:"bytes,5,opt,name=body" json:"body,omitempty"` + Tag []byte `protobuf:"bytes,6,opt,name=tag" json:"tag,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TaskQueueQueryAndOwnTasksResponse_Task) Reset() { + *m = TaskQueueQueryAndOwnTasksResponse_Task{} +} +func (m *TaskQueueQueryAndOwnTasksResponse_Task) String() string { return proto.CompactTextString(m) } +func (*TaskQueueQueryAndOwnTasksResponse_Task) ProtoMessage() {} +func (*TaskQueueQueryAndOwnTasksResponse_Task) Descriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{36, 0} +} +func (m *TaskQueueQueryAndOwnTasksResponse_Task) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TaskQueueQueryAndOwnTasksResponse_Task.Unmarshal(m, b) +} +func (m *TaskQueueQueryAndOwnTasksResponse_Task) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TaskQueueQueryAndOwnTasksResponse_Task.Marshal(b, m, deterministic) +} +func (dst *TaskQueueQueryAndOwnTasksResponse_Task) XXX_Merge(src proto.Message) { + xxx_messageInfo_TaskQueueQueryAndOwnTasksResponse_Task.Merge(dst, src) +} +func (m *TaskQueueQueryAndOwnTasksResponse_Task) XXX_Size() int { + return xxx_messageInfo_TaskQueueQueryAndOwnTasksResponse_Task.Size(m) +} +func (m *TaskQueueQueryAndOwnTasksResponse_Task) XXX_DiscardUnknown() { + xxx_messageInfo_TaskQueueQueryAndOwnTasksResponse_Task.DiscardUnknown(m) +} + +var xxx_messageInfo_TaskQueueQueryAndOwnTasksResponse_Task proto.InternalMessageInfo + +const Default_TaskQueueQueryAndOwnTasksResponse_Task_RetryCount int32 = 0 + +func (m *TaskQueueQueryAndOwnTasksResponse_Task) GetTaskName() []byte { + if m != nil { + return m.TaskName + } + return nil +} + +func (m *TaskQueueQueryAndOwnTasksResponse_Task) GetEtaUsec() int64 { + if m != nil && m.EtaUsec != nil { + return *m.EtaUsec + } + return 0 +} + +func (m *TaskQueueQueryAndOwnTasksResponse_Task) GetRetryCount() int32 { + if m != nil && m.RetryCount != nil { + return *m.RetryCount + } + return Default_TaskQueueQueryAndOwnTasksResponse_Task_RetryCount +} + +func (m *TaskQueueQueryAndOwnTasksResponse_Task) GetBody() []byte { + if m != nil { + return m.Body + } + return nil +} + +func (m *TaskQueueQueryAndOwnTasksResponse_Task) GetTag() []byte { + if m != nil { + return m.Tag + } + return nil +} + +type TaskQueueModifyTaskLeaseRequest struct { + QueueName []byte `protobuf:"bytes,1,req,name=queue_name,json=queueName" json:"queue_name,omitempty"` + TaskName []byte `protobuf:"bytes,2,req,name=task_name,json=taskName" json:"task_name,omitempty"` + EtaUsec *int64 `protobuf:"varint,3,req,name=eta_usec,json=etaUsec" json:"eta_usec,omitempty"` + LeaseSeconds *float64 `protobuf:"fixed64,4,req,name=lease_seconds,json=leaseSeconds" json:"lease_seconds,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TaskQueueModifyTaskLeaseRequest) Reset() { *m = TaskQueueModifyTaskLeaseRequest{} } +func (m *TaskQueueModifyTaskLeaseRequest) String() string { return proto.CompactTextString(m) } +func (*TaskQueueModifyTaskLeaseRequest) ProtoMessage() {} +func (*TaskQueueModifyTaskLeaseRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{37} +} +func (m *TaskQueueModifyTaskLeaseRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TaskQueueModifyTaskLeaseRequest.Unmarshal(m, b) +} +func (m *TaskQueueModifyTaskLeaseRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TaskQueueModifyTaskLeaseRequest.Marshal(b, m, deterministic) +} +func (dst *TaskQueueModifyTaskLeaseRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_TaskQueueModifyTaskLeaseRequest.Merge(dst, src) +} +func (m *TaskQueueModifyTaskLeaseRequest) XXX_Size() int { + return xxx_messageInfo_TaskQueueModifyTaskLeaseRequest.Size(m) +} +func (m *TaskQueueModifyTaskLeaseRequest) XXX_DiscardUnknown() { + xxx_messageInfo_TaskQueueModifyTaskLeaseRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_TaskQueueModifyTaskLeaseRequest proto.InternalMessageInfo + +func (m *TaskQueueModifyTaskLeaseRequest) GetQueueName() []byte { + if m != nil { + return m.QueueName + } + return nil +} + +func (m *TaskQueueModifyTaskLeaseRequest) GetTaskName() []byte { + if m != nil { + return m.TaskName + } + return nil +} + +func (m *TaskQueueModifyTaskLeaseRequest) GetEtaUsec() int64 { + if m != nil && m.EtaUsec != nil { + return *m.EtaUsec + } + return 0 +} + +func (m *TaskQueueModifyTaskLeaseRequest) GetLeaseSeconds() float64 { + if m != nil && m.LeaseSeconds != nil { + return *m.LeaseSeconds + } + return 0 +} + +type TaskQueueModifyTaskLeaseResponse struct { + UpdatedEtaUsec *int64 `protobuf:"varint,1,req,name=updated_eta_usec,json=updatedEtaUsec" json:"updated_eta_usec,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TaskQueueModifyTaskLeaseResponse) Reset() { *m = TaskQueueModifyTaskLeaseResponse{} } +func (m *TaskQueueModifyTaskLeaseResponse) String() string { return proto.CompactTextString(m) } +func (*TaskQueueModifyTaskLeaseResponse) ProtoMessage() {} +func (*TaskQueueModifyTaskLeaseResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_taskqueue_service_05300f6f4e69f490, []int{38} +} +func (m *TaskQueueModifyTaskLeaseResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TaskQueueModifyTaskLeaseResponse.Unmarshal(m, b) +} +func (m *TaskQueueModifyTaskLeaseResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TaskQueueModifyTaskLeaseResponse.Marshal(b, m, deterministic) +} +func (dst *TaskQueueModifyTaskLeaseResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_TaskQueueModifyTaskLeaseResponse.Merge(dst, src) +} +func (m *TaskQueueModifyTaskLeaseResponse) XXX_Size() int { + return xxx_messageInfo_TaskQueueModifyTaskLeaseResponse.Size(m) +} +func (m *TaskQueueModifyTaskLeaseResponse) XXX_DiscardUnknown() { + xxx_messageInfo_TaskQueueModifyTaskLeaseResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_TaskQueueModifyTaskLeaseResponse proto.InternalMessageInfo + +func (m *TaskQueueModifyTaskLeaseResponse) GetUpdatedEtaUsec() int64 { + if m != nil && m.UpdatedEtaUsec != nil { + return *m.UpdatedEtaUsec + } + return 0 +} + +func init() { + proto.RegisterType((*TaskQueueServiceError)(nil), "appengine.TaskQueueServiceError") + proto.RegisterType((*TaskPayload)(nil), "appengine.TaskPayload") + proto.RegisterType((*TaskQueueRetryParameters)(nil), "appengine.TaskQueueRetryParameters") + proto.RegisterType((*TaskQueueAcl)(nil), "appengine.TaskQueueAcl") + proto.RegisterType((*TaskQueueHttpHeader)(nil), "appengine.TaskQueueHttpHeader") + proto.RegisterType((*TaskQueueMode)(nil), "appengine.TaskQueueMode") + proto.RegisterType((*TaskQueueAddRequest)(nil), "appengine.TaskQueueAddRequest") + proto.RegisterType((*TaskQueueAddRequest_Header)(nil), "appengine.TaskQueueAddRequest.Header") + proto.RegisterType((*TaskQueueAddRequest_CronTimetable)(nil), "appengine.TaskQueueAddRequest.CronTimetable") + proto.RegisterType((*TaskQueueAddResponse)(nil), "appengine.TaskQueueAddResponse") + proto.RegisterType((*TaskQueueBulkAddRequest)(nil), "appengine.TaskQueueBulkAddRequest") + proto.RegisterType((*TaskQueueBulkAddResponse)(nil), "appengine.TaskQueueBulkAddResponse") + proto.RegisterType((*TaskQueueBulkAddResponse_TaskResult)(nil), "appengine.TaskQueueBulkAddResponse.TaskResult") + proto.RegisterType((*TaskQueueDeleteRequest)(nil), "appengine.TaskQueueDeleteRequest") + proto.RegisterType((*TaskQueueDeleteResponse)(nil), "appengine.TaskQueueDeleteResponse") + proto.RegisterType((*TaskQueueForceRunRequest)(nil), "appengine.TaskQueueForceRunRequest") + proto.RegisterType((*TaskQueueForceRunResponse)(nil), "appengine.TaskQueueForceRunResponse") + proto.RegisterType((*TaskQueueUpdateQueueRequest)(nil), "appengine.TaskQueueUpdateQueueRequest") + proto.RegisterType((*TaskQueueUpdateQueueResponse)(nil), "appengine.TaskQueueUpdateQueueResponse") + proto.RegisterType((*TaskQueueFetchQueuesRequest)(nil), "appengine.TaskQueueFetchQueuesRequest") + proto.RegisterType((*TaskQueueFetchQueuesResponse)(nil), "appengine.TaskQueueFetchQueuesResponse") + proto.RegisterType((*TaskQueueFetchQueuesResponse_Queue)(nil), "appengine.TaskQueueFetchQueuesResponse.Queue") + proto.RegisterType((*TaskQueueFetchQueueStatsRequest)(nil), "appengine.TaskQueueFetchQueueStatsRequest") + proto.RegisterType((*TaskQueueScannerQueueInfo)(nil), "appengine.TaskQueueScannerQueueInfo") + proto.RegisterType((*TaskQueueFetchQueueStatsResponse)(nil), "appengine.TaskQueueFetchQueueStatsResponse") + proto.RegisterType((*TaskQueueFetchQueueStatsResponse_QueueStats)(nil), "appengine.TaskQueueFetchQueueStatsResponse.QueueStats") + proto.RegisterType((*TaskQueuePauseQueueRequest)(nil), "appengine.TaskQueuePauseQueueRequest") + proto.RegisterType((*TaskQueuePauseQueueResponse)(nil), "appengine.TaskQueuePauseQueueResponse") + proto.RegisterType((*TaskQueuePurgeQueueRequest)(nil), "appengine.TaskQueuePurgeQueueRequest") + proto.RegisterType((*TaskQueuePurgeQueueResponse)(nil), "appengine.TaskQueuePurgeQueueResponse") + proto.RegisterType((*TaskQueueDeleteQueueRequest)(nil), "appengine.TaskQueueDeleteQueueRequest") + proto.RegisterType((*TaskQueueDeleteQueueResponse)(nil), "appengine.TaskQueueDeleteQueueResponse") + proto.RegisterType((*TaskQueueDeleteGroupRequest)(nil), "appengine.TaskQueueDeleteGroupRequest") + proto.RegisterType((*TaskQueueDeleteGroupResponse)(nil), "appengine.TaskQueueDeleteGroupResponse") + proto.RegisterType((*TaskQueueQueryTasksRequest)(nil), "appengine.TaskQueueQueryTasksRequest") + proto.RegisterType((*TaskQueueQueryTasksResponse)(nil), "appengine.TaskQueueQueryTasksResponse") + proto.RegisterType((*TaskQueueQueryTasksResponse_Task)(nil), "appengine.TaskQueueQueryTasksResponse.Task") + proto.RegisterType((*TaskQueueQueryTasksResponse_Task_Header)(nil), "appengine.TaskQueueQueryTasksResponse.Task.Header") + proto.RegisterType((*TaskQueueQueryTasksResponse_Task_CronTimetable)(nil), "appengine.TaskQueueQueryTasksResponse.Task.CronTimetable") + proto.RegisterType((*TaskQueueQueryTasksResponse_Task_RunLog)(nil), "appengine.TaskQueueQueryTasksResponse.Task.RunLog") + proto.RegisterType((*TaskQueueFetchTaskRequest)(nil), "appengine.TaskQueueFetchTaskRequest") + proto.RegisterType((*TaskQueueFetchTaskResponse)(nil), "appengine.TaskQueueFetchTaskResponse") + proto.RegisterType((*TaskQueueUpdateStorageLimitRequest)(nil), "appengine.TaskQueueUpdateStorageLimitRequest") + proto.RegisterType((*TaskQueueUpdateStorageLimitResponse)(nil), "appengine.TaskQueueUpdateStorageLimitResponse") + proto.RegisterType((*TaskQueueQueryAndOwnTasksRequest)(nil), "appengine.TaskQueueQueryAndOwnTasksRequest") + proto.RegisterType((*TaskQueueQueryAndOwnTasksResponse)(nil), "appengine.TaskQueueQueryAndOwnTasksResponse") + proto.RegisterType((*TaskQueueQueryAndOwnTasksResponse_Task)(nil), "appengine.TaskQueueQueryAndOwnTasksResponse.Task") + proto.RegisterType((*TaskQueueModifyTaskLeaseRequest)(nil), "appengine.TaskQueueModifyTaskLeaseRequest") + proto.RegisterType((*TaskQueueModifyTaskLeaseResponse)(nil), "appengine.TaskQueueModifyTaskLeaseResponse") +} + +func init() { + proto.RegisterFile("google.golang.org/appengine/internal/taskqueue/taskqueue_service.proto", fileDescriptor_taskqueue_service_05300f6f4e69f490) +} + +var fileDescriptor_taskqueue_service_05300f6f4e69f490 = []byte{ + // 2747 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x39, 0x4d, 0x73, 0xdb, 0xd6, + 0xb5, 0x01, 0xbf, 0x44, 0x1e, 0x7e, 0xc1, 0xd7, 0xb2, 0x44, 0x51, 0x71, 0x22, 0xc3, 0xf9, 0xd0, + 0x4b, 0xfc, 0x14, 0x59, 0x79, 0xe3, 0xbc, 0xa7, 0x99, 0x4c, 0x1e, 0x24, 0xc2, 0x32, 0x63, 0x8a, + 0xa4, 0x2f, 0xa1, 0x34, 0xce, 0x4c, 0x07, 0x73, 0x45, 0x5c, 0x51, 0x18, 0x81, 0x00, 0x83, 0x0f, + 0x5b, 0xf2, 0xa2, 0xab, 0xae, 0x3a, 0x5d, 0x74, 0xd3, 0xe9, 0x4c, 0x66, 0xba, 0xea, 0xf4, 0x37, + 0x74, 0xd7, 0xfe, 0x90, 0x2e, 0x3b, 0xd3, 0x3f, 0xd0, 0x55, 0xa7, 0x0b, 0x77, 0xee, 0xbd, 0x00, + 0x08, 0x4a, 0xb4, 0x6c, 0x4b, 0x49, 0x37, 0x12, 0x70, 0xce, 0xb9, 0xe7, 0xdc, 0xf3, 0x7d, 0x70, + 0x08, 0x0f, 0x47, 0xae, 0x3b, 0xb2, 0xe9, 0xc6, 0xc8, 0xb5, 0x89, 0x33, 0xda, 0x70, 0xbd, 0xd1, + 0x67, 0x64, 0x32, 0xa1, 0xce, 0xc8, 0x72, 0xe8, 0x67, 0x96, 0x13, 0x50, 0xcf, 0x21, 0xf6, 0x67, + 0x01, 0xf1, 0x4f, 0xbe, 0x0f, 0x69, 0x48, 0xa7, 0x4f, 0x86, 0x4f, 0xbd, 0x67, 0xd6, 0x90, 0x6e, + 0x4c, 0x3c, 0x37, 0x70, 0x51, 0x29, 0x39, 0xd5, 0x54, 0xdf, 0x88, 0xa5, 0x49, 0x02, 0xe2, 0x07, + 0xae, 0x47, 0xa7, 0x4f, 0xc6, 0xb3, 0xcf, 0x05, 0x37, 0xe5, 0xb7, 0x79, 0xb8, 0xa5, 0x13, 0xff, + 0xe4, 0x09, 0x93, 0x34, 0x10, 0x82, 0x34, 0xcf, 0x73, 0x3d, 0xe5, 0x5f, 0x39, 0x28, 0xf1, 0xa7, + 0x5d, 0xd7, 0xa4, 0xa8, 0x00, 0x99, 0xde, 0x63, 0xf9, 0x1d, 0x74, 0x03, 0xaa, 0x07, 0xdd, 0xc7, + 0xdd, 0xde, 0xcf, 0xba, 0xc6, 0x93, 0x03, 0xed, 0x40, 0x93, 0x25, 0x74, 0x13, 0xea, 0x3a, 0x56, + 0xbb, 0x83, 0xb6, 0xd6, 0xd5, 0x0d, 0x0d, 0xe3, 0x1e, 0x96, 0x33, 0x08, 0x41, 0xad, 0xdd, 0xd5, + 0x35, 0xdc, 0x55, 0x3b, 0x11, 0x2c, 0xcb, 0x60, 0xba, 0x3a, 0x78, 0x6c, 0xe8, 0xbd, 0x9e, 0xd1, + 0x51, 0xf1, 0x9e, 0x26, 0xe7, 0xd0, 0x2d, 0xb8, 0xd1, 0xee, 0x7e, 0xa3, 0x76, 0xda, 0x2d, 0x83, + 0xe3, 0xba, 0xea, 0xbe, 0x26, 0xe7, 0xd1, 0x12, 0xa0, 0x18, 0xcc, 0xc5, 0x08, 0x78, 0x01, 0xd5, + 0xa1, 0x1c, 0xc3, 0x0f, 0x70, 0x47, 0x5e, 0xb8, 0x48, 0x88, 0x55, 0x5d, 0x93, 0x8b, 0x8c, 0x6f, + 0x5f, 0xc3, 0xfb, 0xed, 0xc1, 0xa0, 0xdd, 0xeb, 0x1a, 0x2d, 0xad, 0xdb, 0xd6, 0x5a, 0x72, 0x09, + 0x2d, 0xc3, 0x4d, 0x2e, 0x46, 0xed, 0x60, 0x4d, 0x6d, 0x3d, 0x35, 0xb4, 0x6f, 0xdb, 0x03, 0x7d, + 0x20, 0x03, 0x57, 0xa2, 0xb7, 0xbf, 0x33, 0xd0, 0x7b, 0x5d, 0x4d, 0x5c, 0x45, 0x2e, 0xa7, 0xa5, + 0x69, 0xba, 0x2a, 0x57, 0x18, 0x55, 0x0c, 0xc0, 0xda, 0x93, 0x03, 0x6d, 0xa0, 0xcb, 0x55, 0x24, + 0x43, 0x25, 0x36, 0x09, 0x3f, 0x57, 0x43, 0x8b, 0x20, 0xa7, 0x98, 0x09, 0x3b, 0xd5, 0x99, 0xec, + 0xd6, 0x41, 0xbf, 0xd3, 0xde, 0x55, 0x75, 0x2d, 0xa5, 0xac, 0x8c, 0xca, 0xb0, 0x30, 0x78, 0xdc, + 0xee, 0xf7, 0xb5, 0x96, 0x7c, 0x83, 0x1b, 0xa9, 0xd7, 0x33, 0xf6, 0xd5, 0xee, 0x53, 0x4e, 0x34, + 0x90, 0x51, 0x5a, 0x6c, 0x5f, 0x7d, 0xda, 0xe9, 0xa9, 0x2d, 0xf9, 0x26, 0x7a, 0x17, 0x1a, 0xd3, + 0xbb, 0xe8, 0xf8, 0xa9, 0xd1, 0x57, 0xb1, 0xba, 0xaf, 0xe9, 0x1a, 0x1e, 0xc8, 0x8b, 0x17, 0xed, + 0xb2, 0xdf, 0x6b, 0x69, 0xf2, 0x2d, 0x76, 0x35, 0x75, 0xb7, 0x63, 0x74, 0x7a, 0xbd, 0xc7, 0x07, + 0xfd, 0xc8, 0x33, 0x4b, 0xe8, 0x2e, 0xbc, 0xcf, 0x5d, 0xa8, 0xee, 0xea, 0xed, 0x1e, 0x73, 0x59, + 0xa4, 0x5d, 0xca, 0x55, 0xcb, 0xa8, 0x09, 0x4b, 0xed, 0xee, 0x6e, 0x0f, 0x63, 0x6d, 0x57, 0x37, + 0x76, 0xb1, 0xa6, 0xea, 0x3d, 0x2c, 0x54, 0x68, 0x30, 0x71, 0x5c, 0xa3, 0x8e, 0xa6, 0x0e, 0x34, + 0x43, 0xfb, 0xb6, 0xdf, 0xc6, 0x5a, 0x4b, 0x5e, 0x61, 0xb6, 0x11, 0xe2, 0xfb, 0xea, 0xc1, 0x40, + 0x6b, 0xc9, 0xcd, 0xb4, 0x4d, 0x75, 0x75, 0x4f, 0x5e, 0x45, 0x8b, 0x50, 0x6f, 0xa9, 0xba, 0x3a, + 0xd0, 0x7b, 0x58, 0x8b, 0x2e, 0xf4, 0x9b, 0xae, 0xb2, 0x0a, 0x65, 0x16, 0x96, 0x7d, 0x72, 0x66, + 0xbb, 0xc4, 0xfc, 0xa4, 0x58, 0x04, 0xf9, 0xe5, 0xcb, 0x97, 0x2f, 0x17, 0xb6, 0x33, 0x45, 0x49, + 0xf9, 0x9b, 0x04, 0x8d, 0x24, 0x68, 0x31, 0x0d, 0xbc, 0xb3, 0x3e, 0xf1, 0xc8, 0x98, 0x06, 0xd4, + 0xf3, 0xd1, 0xfb, 0x50, 0xf6, 0x18, 0xc8, 0xb0, 0xad, 0xb1, 0x15, 0x34, 0xa4, 0x35, 0x69, 0x3d, + 0x8f, 0x81, 0x83, 0x3a, 0x0c, 0x82, 0x14, 0xa8, 0x92, 0x11, 0x15, 0x68, 0xc3, 0xa7, 0xc3, 0x46, + 0x66, 0x4d, 0x5a, 0xcf, 0xe2, 0x32, 0x19, 0x51, 0x4e, 0x30, 0xa0, 0x43, 0xf4, 0x29, 0xd4, 0xc7, + 0x96, 0x63, 0x1c, 0x92, 0xe1, 0x89, 0x7b, 0x74, 0xc4, 0xa9, 0xb2, 0x6b, 0xd2, 0xba, 0xb4, 0x9d, + 0xdd, 0xdc, 0xb8, 0x8f, 0xab, 0x63, 0xcb, 0xd9, 0x11, 0x28, 0x46, 0x7c, 0x0f, 0xea, 0x63, 0x72, + 0x3a, 0x43, 0x9c, 0xe3, 0xc4, 0xb9, 0xcf, 0x1f, 0x6c, 0x6e, 0xe2, 0xea, 0x98, 0x9c, 0xa6, 0xa8, + 0x3f, 0x06, 0x06, 0x30, 0x4c, 0x37, 0x3c, 0xb4, 0x2d, 0x67, 0xe4, 0x37, 0xf2, 0xec, 0x86, 0xdb, + 0x99, 0xfb, 0x0f, 0x70, 0x65, 0x4c, 0x4e, 0x5b, 0x31, 0x5c, 0xe9, 0x43, 0x25, 0x51, 0x52, 0x1d, + 0xda, 0xe8, 0x36, 0x40, 0xe8, 0x53, 0xcf, 0xa0, 0x63, 0x62, 0xd9, 0x0d, 0x69, 0x2d, 0xbb, 0x5e, + 0xc1, 0x25, 0x06, 0xd1, 0x18, 0x00, 0xdd, 0x81, 0xca, 0x73, 0xcf, 0x0a, 0x12, 0x82, 0x0c, 0x27, + 0x28, 0x0b, 0x18, 0x27, 0x51, 0xbe, 0x84, 0x9b, 0x09, 0xc7, 0x47, 0x41, 0x30, 0x79, 0x44, 0x89, + 0x49, 0x3d, 0x24, 0x43, 0xf6, 0x84, 0x9e, 0x35, 0xa4, 0xb5, 0xcc, 0x7a, 0x05, 0xb3, 0x47, 0xb4, + 0x08, 0xf9, 0x67, 0xc4, 0x0e, 0x69, 0x23, 0xc3, 0x61, 0xe2, 0x45, 0xf9, 0x14, 0xaa, 0xc9, 0xf1, + 0x7d, 0xd7, 0xa4, 0x4a, 0x13, 0x72, 0xec, 0x3f, 0x2a, 0x42, 0xae, 0x7f, 0x30, 0x78, 0x24, 0xbf, + 0x23, 0x9e, 0x3a, 0x1d, 0x59, 0x52, 0xfe, 0x51, 0x48, 0x09, 0x53, 0x4d, 0x13, 0xd3, 0xef, 0x43, + 0xea, 0x07, 0x4c, 0x0b, 0x51, 0xd5, 0x1c, 0x32, 0xa6, 0x91, 0xcc, 0x12, 0x87, 0x74, 0xc9, 0x98, + 0xa2, 0x55, 0x28, 0xb1, 0xc2, 0x27, 0xb0, 0x42, 0x7a, 0x91, 0x01, 0x38, 0x72, 0x05, 0x8a, 0x34, + 0x20, 0x46, 0x28, 0xdc, 0x91, 0x59, 0xcf, 0xe2, 0x05, 0x1a, 0x90, 0x03, 0x9f, 0x0e, 0xd1, 0xd7, + 0x50, 0x18, 0xd3, 0xe0, 0xd8, 0x35, 0xb9, 0x39, 0x6b, 0x5b, 0xf7, 0x36, 0x92, 0x4a, 0xb8, 0x31, + 0xe7, 0x1a, 0x1b, 0xd1, 0xff, 0x7d, 0x7e, 0x66, 0x3b, 0xd7, 0xef, 0x0d, 0x74, 0x1c, 0x71, 0x60, + 0xf6, 0x08, 0x3d, 0x9b, 0xfb, 0xb0, 0x82, 0xd9, 0x23, 0xfa, 0x12, 0x0a, 0xc7, 0xdc, 0x56, 0x8d, + 0xc2, 0x5a, 0x76, 0x1d, 0xb6, 0x3e, 0x7c, 0x0d, 0x77, 0x61, 0x58, 0x1c, 0x1d, 0x42, 0x4b, 0x90, + 0x3b, 0x74, 0xcd, 0xb3, 0x46, 0x89, 0x71, 0xdc, 0xc9, 0x14, 0x25, 0xcc, 0xdf, 0xd1, 0xff, 0x42, + 0x39, 0xf0, 0x88, 0xe3, 0x93, 0x61, 0x60, 0xb9, 0x4e, 0x03, 0xd6, 0xa4, 0xf5, 0xf2, 0xd6, 0x52, + 0x9a, 0xf7, 0x14, 0x8b, 0xd3, 0xa4, 0xe8, 0x16, 0x14, 0xc8, 0x64, 0x62, 0x58, 0x66, 0xa3, 0xcc, + 0x6f, 0x99, 0x27, 0x93, 0x49, 0xdb, 0x44, 0x18, 0xaa, 0x43, 0xcf, 0x75, 0x02, 0x6b, 0x4c, 0x03, + 0x72, 0x68, 0xd3, 0x46, 0x65, 0x4d, 0x5a, 0x87, 0xd7, 0x1a, 0x63, 0xd7, 0x73, 0x1d, 0x3d, 0x3e, + 0x83, 0x67, 0x59, 0xa0, 0x35, 0x28, 0x9b, 0xd4, 0x1f, 0x7a, 0xd6, 0x84, 0x5f, 0xb2, 0xce, 0xe5, + 0xa5, 0x41, 0x68, 0x13, 0x16, 0x26, 0x22, 0x4f, 0x1b, 0xf2, 0x45, 0x15, 0xa6, 0x59, 0x8c, 0x63, + 0x32, 0xd4, 0x05, 0x59, 0xe4, 0xe8, 0x24, 0xc9, 0xdb, 0xc6, 0x0d, 0x7e, 0xf4, 0xee, 0xbc, 0xab, + 0x9e, 0x4b, 0x71, 0x5c, 0xf7, 0xce, 0xe5, 0xfc, 0x17, 0x90, 0x1b, 0xbb, 0x26, 0x6d, 0x20, 0xee, + 0xfb, 0xdb, 0xf3, 0x78, 0xb0, 0x40, 0xdd, 0x60, 0x7f, 0xb6, 0x79, 0xac, 0x62, 0x7e, 0x80, 0xb9, + 0x3a, 0x20, 0xa3, 0xc6, 0x4d, 0xe1, 0xea, 0x80, 0x8c, 0x9a, 0x9b, 0x50, 0x98, 0x4d, 0x8b, 0x85, + 0x39, 0x69, 0x51, 0x4c, 0xa5, 0x45, 0x73, 0x0f, 0xaa, 0x33, 0x06, 0x44, 0x4d, 0x28, 0xfa, 0xc3, + 0x63, 0x6a, 0x86, 0x36, 0x6d, 0x54, 0x45, 0x08, 0xc7, 0xef, 0x0c, 0xc7, 0x4c, 0xfb, 0xc2, 0x75, + 0x68, 0xa3, 0x16, 0x85, 0x77, 0xf4, 0xae, 0xa8, 0x50, 0x9d, 0x09, 0x4b, 0xb4, 0x00, 0xd9, 0x3d, + 0x4d, 0x97, 0x25, 0x9e, 0x56, 0xbd, 0x81, 0x2e, 0x67, 0xd8, 0xd3, 0x23, 0x4d, 0x6d, 0xc9, 0x59, + 0x86, 0xec, 0x1f, 0xe8, 0x72, 0x0e, 0x01, 0x14, 0x5a, 0x5a, 0x47, 0xd3, 0x35, 0x39, 0xaf, 0xfc, + 0x3f, 0x2c, 0xce, 0x3a, 0xd8, 0x9f, 0xb8, 0x8e, 0x4f, 0xd1, 0x3a, 0xc8, 0xc3, 0x63, 0xd7, 0xa7, + 0x8e, 0x31, 0xcd, 0x2e, 0x89, 0x2b, 0x5d, 0x13, 0x70, 0x3d, 0xca, 0x31, 0xe5, 0x3b, 0x58, 0x4e, + 0x38, 0xec, 0x84, 0xf6, 0x49, 0x2a, 0x75, 0xbf, 0x82, 0x32, 0x31, 0x4d, 0xc3, 0x13, 0xaf, 0xbc, + 0x02, 0x95, 0xb7, 0xde, 0xbb, 0x3c, 0xb6, 0x30, 0x90, 0xe4, 0x59, 0xf9, 0x7b, 0xba, 0x6e, 0x27, + 0xcc, 0xa3, 0x2b, 0x76, 0x01, 0xd8, 0xdd, 0x3c, 0xea, 0x87, 0xb6, 0x60, 0x0e, 0x5b, 0x1b, 0xf3, + 0x98, 0x9f, 0x3b, 0xc8, 0x11, 0x98, 0x9f, 0xc2, 0x29, 0x0e, 0xcd, 0x17, 0x00, 0x53, 0x0c, 0xda, + 0x81, 0x42, 0xc4, 0x99, 0x15, 0x95, 0xda, 0xd6, 0x27, 0xf3, 0x38, 0xa7, 0xe7, 0x9f, 0x8d, 0x64, + 0xf6, 0xc1, 0xd1, 0xc9, 0xb9, 0x46, 0xcc, 0xce, 0x35, 0xe2, 0x09, 0x2c, 0x25, 0x4c, 0x5b, 0xd4, + 0xa6, 0x01, 0xbd, 0x5a, 0xf9, 0xcb, 0xce, 0x94, 0xbf, 0x69, 0xd2, 0x67, 0x53, 0x49, 0xaf, 0xfc, + 0x3c, 0xe5, 0xb1, 0x58, 0x58, 0x64, 0xd3, 0xa9, 0xd6, 0xd9, 0xb5, 0xec, 0xd5, 0xb4, 0x56, 0xc6, + 0x29, 0x9f, 0x3d, 0x74, 0xbd, 0x21, 0xc5, 0xa1, 0x13, 0x6b, 0x33, 0xbd, 0x91, 0x94, 0x2e, 0x43, + 0xb3, 0x4a, 0x66, 0x2e, 0x55, 0x32, 0x3b, 0x5b, 0xe3, 0x15, 0x03, 0x56, 0xe6, 0x88, 0x9b, 0xa3, + 0xcf, 0x15, 0xbd, 0xa8, 0xfc, 0x90, 0x83, 0xd5, 0x84, 0xf6, 0x60, 0x62, 0x92, 0x80, 0x46, 0x45, + 0xe6, 0x3a, 0x3a, 0x7d, 0x01, 0x8d, 0xc3, 0x70, 0x78, 0x42, 0x03, 0xc3, 0xa3, 0x47, 0x96, 0x6d, + 0x1b, 0x13, 0xea, 0xb1, 0x49, 0xc0, 0x75, 0x4c, 0x7e, 0x57, 0x09, 0xdf, 0x12, 0x78, 0xcc, 0xd1, + 0x7d, 0xea, 0x0d, 0x38, 0x12, 0x7d, 0x0c, 0xf5, 0xe8, 0xe0, 0x90, 0x4c, 0xc8, 0xd0, 0x0a, 0xce, + 0x1a, 0xb9, 0xb5, 0xcc, 0x7a, 0x1e, 0xd7, 0x04, 0x78, 0x37, 0x82, 0xa2, 0x0d, 0xb8, 0xc9, 0xdb, + 0xbf, 0x3f, 0xa1, 0x43, 0xeb, 0xc8, 0xa2, 0xa6, 0xe1, 0x91, 0x80, 0xf2, 0x76, 0x57, 0xc2, 0x37, + 0x18, 0x6a, 0x10, 0x63, 0x30, 0x09, 0xe8, 0xdc, 0x1a, 0x5b, 0xb8, 0x46, 0x8d, 0x7d, 0x00, 0xcb, + 0x6c, 0x6e, 0x19, 0xba, 0xce, 0x30, 0xf4, 0x3c, 0xea, 0x04, 0x71, 0x21, 0xf0, 0x1b, 0x0b, 0x7c, + 0xc6, 0xba, 0x35, 0x26, 0xa7, 0xbb, 0x09, 0x36, 0x32, 0xe7, 0xb4, 0x36, 0x17, 0xdf, 0xb6, 0x36, + 0xff, 0x17, 0x64, 0xc9, 0xd0, 0xe6, 0x4d, 0xb3, 0xbc, 0xb5, 0x3c, 0xb7, 0xcc, 0x0c, 0x6d, 0xcc, + 0x68, 0xd0, 0x1e, 0xd4, 0x45, 0xab, 0x35, 0xdc, 0x67, 0xd4, 0xf3, 0x2c, 0x93, 0x36, 0xe0, 0xd5, + 0xd5, 0x69, 0x3a, 0xfa, 0xe0, 0x9a, 0x38, 0xd6, 0x8b, 0x4e, 0x29, 0xef, 0xc1, 0xbb, 0xf3, 0x63, + 0x43, 0x04, 0xa0, 0xd2, 0x4b, 0xc5, 0xce, 0x43, 0x1a, 0x0c, 0x8f, 0xf9, 0x93, 0xff, 0x9a, 0xd8, + 0x59, 0x81, 0x22, 0x33, 0x9d, 0xe7, 0x3e, 0xf7, 0x79, 0xe4, 0xe4, 0xf1, 0xc2, 0x98, 0x9c, 0x62, + 0xf7, 0xb9, 0xaf, 0xfc, 0x31, 0x9f, 0x92, 0x38, 0xc3, 0x31, 0x0a, 0xf9, 0x5d, 0xc8, 0xf3, 0x28, + 0x8b, 0x2a, 0xe2, 0x7f, 0xcf, 0x53, 0x68, 0xce, 0xb9, 0x0d, 0x71, 0x6f, 0x71, 0xb6, 0xf9, 0x97, + 0x1c, 0xe4, 0x39, 0xe0, 0x3f, 0x1d, 0xc6, 0xd2, 0xb5, 0xc3, 0xf8, 0x36, 0x14, 0x26, 0x24, 0xf4, + 0xa9, 0xd9, 0x28, 0xac, 0x65, 0xd6, 0x8b, 0xdb, 0xf9, 0x23, 0x62, 0xfb, 0x14, 0x47, 0xc0, 0xb9, + 0x51, 0xbe, 0xf0, 0xd3, 0x44, 0x79, 0xf1, 0x4d, 0xa2, 0xbc, 0x74, 0xc5, 0x28, 0x87, 0xab, 0x45, + 0x79, 0xf9, 0x2a, 0x51, 0x8e, 0xee, 0x43, 0x65, 0xe8, 0x51, 0x12, 0xb8, 0x9e, 0x08, 0x03, 0x36, + 0x25, 0x96, 0xb6, 0x81, 0x4c, 0x26, 0xc7, 0xae, 0x1f, 0x58, 0xce, 0x88, 0xcf, 0xa8, 0xe5, 0x88, + 0x86, 0x97, 0xe5, 0x5f, 0xc0, 0xfb, 0x73, 0xc2, 0x6d, 0x10, 0x90, 0xc0, 0x7f, 0xcb, 0xc2, 0x99, + 0x9d, 0x8d, 0xb8, 0x0f, 0xc5, 0xe7, 0x90, 0x13, 0x8e, 0x79, 0x57, 0xf5, 0x79, 0x6f, 0xcb, 0x6f, + 0x4b, 0x9b, 0xb8, 0x3c, 0x26, 0xa7, 0xdd, 0x70, 0xcc, 0xc4, 0xfa, 0xca, 0xaf, 0x32, 0xa9, 0xbe, + 0x30, 0x18, 0x12, 0xc7, 0xa1, 0x1e, 0x7f, 0x6e, 0x3b, 0x47, 0x2e, 0xda, 0x84, 0x45, 0x7a, 0x4a, + 0x87, 0x61, 0x40, 0x4d, 0xc3, 0x26, 0x7e, 0x60, 0x8c, 0x2d, 0x27, 0x0c, 0x44, 0x7f, 0xcd, 0x62, + 0x14, 0xe3, 0x3a, 0xc4, 0x0f, 0xf6, 0x39, 0x06, 0xdd, 0x03, 0x34, 0x7b, 0xe2, 0xd8, 0x0d, 0x3d, + 0x9e, 0x0f, 0x59, 0x2c, 0xa7, 0xe9, 0x1f, 0xb9, 0xa1, 0x87, 0xb6, 0x61, 0xc5, 0x27, 0xe3, 0x09, + 0xfb, 0x2e, 0x33, 0xcc, 0xd0, 0x23, 0x6c, 0xec, 0x8d, 0xd2, 0xc2, 0x8f, 0xf2, 0x62, 0x39, 0x26, + 0x68, 0x45, 0x78, 0x91, 0x18, 0x3e, 0x93, 0x14, 0x87, 0x90, 0x61, 0x39, 0xc6, 0x91, 0x6d, 0x8d, + 0x8e, 0x03, 0xfe, 0x71, 0x91, 0xc7, 0x72, 0x8c, 0x69, 0x3b, 0x0f, 0x39, 0x1c, 0xdd, 0x85, 0x2a, + 0x75, 0x8e, 0x58, 0xdf, 0x4b, 0x25, 0x86, 0x84, 0x2b, 0x31, 0x90, 0xe5, 0x84, 0xf2, 0xbb, 0x0c, + 0xac, 0xbd, 0xda, 0x1b, 0x51, 0xe1, 0xf8, 0x26, 0xb2, 0xbb, 0xcf, 0xa0, 0x51, 0xf5, 0x78, 0x70, + 0x79, 0xf5, 0x98, 0x61, 0xb0, 0x91, 0x02, 0xa5, 0x38, 0x35, 0x7f, 0x90, 0x00, 0xa6, 0x28, 0xd6, + 0xcc, 0xa7, 0xbe, 0x13, 0xc5, 0xad, 0xe8, 0x44, 0x5e, 0x43, 0x1f, 0x41, 0xdd, 0xb5, 0x4d, 0xea, + 0x07, 0xc6, 0xb9, 0xef, 0xb6, 0xaa, 0x00, 0x6b, 0xd1, 0xd7, 0xdb, 0x1e, 0x54, 0x7c, 0xe1, 0x53, + 0xc3, 0x72, 0x8e, 0x5c, 0x6e, 0x9d, 0xf2, 0xd6, 0x07, 0x73, 0xbb, 0xfb, 0x39, 0xdf, 0xe3, 0x72, + 0x74, 0x92, 0xbd, 0x28, 0xc7, 0xd0, 0x4c, 0x28, 0xfb, 0xac, 0x42, 0xbc, 0xb2, 0xb5, 0x67, 0xde, + 0xb8, 0xb5, 0x2f, 0x42, 0x9e, 0x17, 0x1b, 0x7e, 0xf5, 0x22, 0x16, 0x2f, 0xca, 0xed, 0x54, 0x27, + 0x48, 0x4b, 0x8a, 0x1a, 0x05, 0x4e, 0x5f, 0x24, 0xf4, 0x46, 0x3f, 0xc2, 0x8c, 0x31, 0x2b, 0x32, + 0xc5, 0x33, 0x12, 0x39, 0x48, 0xa1, 0xc5, 0x1c, 0x78, 0x7d, 0xe5, 0x67, 0x1a, 0xe2, 0x0c, 0xd3, + 0x48, 0xe8, 0xff, 0x5c, 0x10, 0xba, 0xe7, 0xb9, 0xe1, 0xe4, 0x72, 0xa1, 0x73, 0xb8, 0x46, 0xa7, + 0x22, 0xae, 0x7f, 0x95, 0x52, 0xe6, 0x7b, 0x12, 0x52, 0xef, 0x8c, 0xc7, 0xd3, 0xf5, 0x46, 0xb4, + 0x8f, 0xa0, 0xee, 0x07, 0xc4, 0x0b, 0x2e, 0x4c, 0xef, 0x55, 0x0e, 0x8e, 0x87, 0x77, 0xf4, 0x01, + 0xd4, 0x04, 0x5d, 0x12, 0xb3, 0x39, 0xbe, 0x20, 0xaa, 0x70, 0x68, 0x1c, 0xb2, 0xab, 0x50, 0x8a, + 0xb9, 0x8d, 0xf8, 0x5c, 0xc5, 0xbe, 0xf2, 0x04, 0x9f, 0x11, 0x7a, 0x37, 0xd5, 0xf0, 0xc5, 0x7a, + 0x47, 0xba, 0x3f, 0xed, 0xf9, 0xbf, 0x84, 0x94, 0xd1, 0xd2, 0xda, 0x45, 0x99, 0xfb, 0x15, 0xe4, + 0xd8, 0x15, 0xa3, 0x9c, 0xfd, 0x74, 0x5e, 0x16, 0x5c, 0x3c, 0x25, 0x3e, 0x83, 0xf8, 0xc1, 0xe6, + 0x1f, 0x4a, 0x90, 0x63, 0xaf, 0x57, 0xde, 0xa6, 0x5c, 0xdc, 0x80, 0x3c, 0x39, 0xb7, 0x5f, 0xf9, + 0xbf, 0xb7, 0xb8, 0xd5, 0xec, 0xb2, 0x25, 0x59, 0xb3, 0x28, 0xf1, 0xa2, 0x6e, 0xe8, 0x86, 0x4e, + 0xc0, 0x6d, 0xc8, 0xeb, 0xbe, 0xd8, 0xd5, 0xed, 0x32, 0x20, 0xfa, 0x3a, 0x59, 0xbc, 0x2c, 0x70, + 0x63, 0x6c, 0xbd, 0x8d, 0xd8, 0x73, 0x5b, 0x98, 0x55, 0x28, 0x1d, 0xba, 0xe6, 0x99, 0xe1, 0x5b, + 0x2f, 0x28, 0xef, 0xb7, 0x79, 0x5c, 0x64, 0x80, 0x81, 0xf5, 0x82, 0x26, 0x2b, 0x9a, 0xf2, 0xb9, + 0x15, 0xcd, 0x3d, 0x40, 0xbc, 0x0d, 0xb2, 0x82, 0xcf, 0x3e, 0xd4, 0x85, 0xb9, 0x2a, 0xa2, 0x4f, + 0xc4, 0x18, 0xf6, 0xe9, 0xcf, 0xed, 0x66, 0x9c, 0xdf, 0xbf, 0x54, 0xf9, 0xfe, 0xe5, 0xad, 0x8c, + 0x75, 0xe9, 0x32, 0xe6, 0x6b, 0x28, 0x78, 0xa1, 0x63, 0xbb, 0x23, 0xbe, 0x69, 0x79, 0x4b, 0x7b, + 0xe0, 0xd0, 0xe9, 0xb8, 0x23, 0x1c, 0x71, 0x38, 0xbf, 0xd8, 0xb9, 0x75, 0xe9, 0x62, 0x67, 0xe9, + 0xea, 0x8b, 0x9d, 0xe5, 0x6b, 0x8c, 0x63, 0x1f, 0x40, 0xed, 0xc8, 0xf2, 0xfc, 0xc0, 0x60, 0x3c, + 0xb9, 0xe9, 0x1b, 0x22, 0x17, 0x39, 0x54, 0xf7, 0xce, 0xe2, 0x70, 0x65, 0x59, 0xb8, 0x92, 0x6c, + 0x71, 0xd0, 0x27, 0x50, 0x17, 0x4d, 0x9c, 0xf9, 0x4d, 0xc4, 0x57, 0x33, 0x8e, 0xaf, 0x5a, 0x82, + 0xe1, 0x31, 0x76, 0x71, 0xe3, 0x53, 0x9c, 0xb3, 0xf1, 0x29, 0xbd, 0xf1, 0xc6, 0xa7, 0x76, 0xc9, + 0xc6, 0xa7, 0x3e, 0xbb, 0xf1, 0x69, 0xfe, 0x49, 0x82, 0x82, 0xf0, 0x0a, 0x1b, 0xa0, 0x4d, 0xcb, + 0x9f, 0x90, 0x80, 0x9d, 0x13, 0xaa, 0xde, 0xe0, 0x51, 0x56, 0x9b, 0x82, 0xb9, 0xb2, 0x2b, 0x50, + 0xb4, 0xc9, 0x48, 0x50, 0x20, 0x91, 0xb6, 0x36, 0x19, 0x71, 0xd4, 0x1d, 0xa8, 0x50, 0x9b, 0x4c, + 0xfc, 0x98, 0xc1, 0x4d, 0x8e, 0x2e, 0x47, 0x30, 0x4e, 0x72, 0x17, 0xaa, 0x5e, 0x14, 0x14, 0xc6, + 0x90, 0x0d, 0xac, 0x8b, 0xc2, 0x9e, 0x31, 0x90, 0xff, 0xd8, 0x73, 0x07, 0x2a, 0xc2, 0x8b, 0x1e, + 0x25, 0xbe, 0xeb, 0x34, 0x56, 0xf9, 0x70, 0x2e, 0xb2, 0x15, 0x73, 0xd0, 0x8f, 0xb1, 0xab, 0x72, + 0xd2, 0x5f, 0xfa, 0x6c, 0x06, 0x11, 0xeb, 0x9a, 0x9f, 0x6c, 0xb3, 0xf0, 0x6d, 0xaa, 0xa7, 0xa4, + 0xe4, 0x45, 0x45, 0x77, 0x3b, 0x29, 0xba, 0x99, 0xf5, 0xf2, 0xd6, 0x47, 0x6f, 0x96, 0x57, 0xa2, + 0xde, 0x2a, 0x4f, 0x40, 0x39, 0xf7, 0xd5, 0x38, 0x08, 0x5c, 0x2f, 0xfe, 0x3d, 0xe1, 0x35, 0x0d, + 0x78, 0x11, 0xf2, 0xe2, 0x97, 0x0a, 0x31, 0x7c, 0x8a, 0x17, 0x65, 0x07, 0xee, 0x5e, 0xca, 0x32, + 0xba, 0x35, 0x9b, 0xbe, 0xe8, 0xf3, 0xe4, 0xa7, 0x0e, 0xc6, 0xa0, 0xe8, 0xd0, 0xe7, 0x9c, 0x48, + 0xf9, 0xb3, 0x94, 0x1a, 0x13, 0xf9, 0xe5, 0x55, 0xc7, 0xec, 0x3d, 0x77, 0x66, 0x7a, 0xe9, 0x6b, + 0x16, 0x52, 0x77, 0xa1, 0x6a, 0x53, 0xe2, 0xd3, 0x64, 0xda, 0xcd, 0xf0, 0x69, 0xb7, 0xc2, 0x81, + 0xf1, 0x88, 0xbb, 0x0a, 0x25, 0xd6, 0xee, 0xe2, 0xf9, 0x9d, 0xdf, 0x62, 0x4c, 0x4e, 0xc5, 0x0c, + 0xf8, 0x31, 0x54, 0x46, 0xac, 0xb9, 0x1b, 0x87, 0x67, 0xbc, 0x57, 0xb2, 0xa6, 0x92, 0x7c, 0xc6, + 0x01, 0x47, 0xed, 0x9c, 0xb1, 0xa6, 0x19, 0x65, 0x71, 0x3e, 0xc9, 0x62, 0xe5, 0x9f, 0x12, 0xdc, + 0xb9, 0x44, 0x81, 0xc8, 0x06, 0xda, 0x4c, 0xbb, 0xbc, 0xff, 0x4a, 0xcf, 0xcd, 0x39, 0x9b, 0x6e, + 0x9a, 0xbf, 0x96, 0xae, 0xd9, 0x34, 0xcf, 0xf5, 0xb3, 0xdc, 0xbc, 0x7e, 0x16, 0xb7, 0x99, 0xfc, + 0xb9, 0x36, 0x13, 0xe9, 0x5e, 0x98, 0xea, 0xfe, 0x7b, 0x29, 0xf5, 0xc5, 0xb5, 0xef, 0x9a, 0xd6, + 0x11, 0x0f, 0xbd, 0x0e, 0xb3, 0xfb, 0x4f, 0xfc, 0x5b, 0xca, 0x05, 0x9f, 0xe7, 0x2e, 0xfa, 0x5c, + 0xe9, 0xa4, 0x62, 0xeb, 0xc2, 0xf5, 0xa6, 0x5b, 0xe7, 0x90, 0xc7, 0xae, 0x39, 0x9d, 0xa5, 0x44, + 0x90, 0xd6, 0x22, 0x78, 0x34, 0x4d, 0xed, 0x94, 0xbf, 0x2b, 0x25, 0xbf, 0x77, 0xff, 0x3b, 0x00, + 0x00, 0xff, 0xff, 0x67, 0xac, 0x35, 0x53, 0x2a, 0x1f, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/appengine/internal/taskqueue/taskqueue_service.proto b/vendor/google.golang.org/appengine/internal/taskqueue/taskqueue_service.proto new file mode 100644 index 000000000..419aaf570 --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/taskqueue/taskqueue_service.proto @@ -0,0 +1,342 @@ +syntax = "proto2"; +option go_package = "taskqueue"; + +import "google.golang.org/appengine/internal/datastore/datastore_v3.proto"; + +package appengine; + +message TaskQueueServiceError { + enum ErrorCode { + OK = 0; + UNKNOWN_QUEUE = 1; + TRANSIENT_ERROR = 2; + INTERNAL_ERROR = 3; + TASK_TOO_LARGE = 4; + INVALID_TASK_NAME = 5; + INVALID_QUEUE_NAME = 6; + INVALID_URL = 7; + INVALID_QUEUE_RATE = 8; + PERMISSION_DENIED = 9; + TASK_ALREADY_EXISTS = 10; + TOMBSTONED_TASK = 11; + INVALID_ETA = 12; + INVALID_REQUEST = 13; + UNKNOWN_TASK = 14; + TOMBSTONED_QUEUE = 15; + DUPLICATE_TASK_NAME = 16; + SKIPPED = 17; + TOO_MANY_TASKS = 18; + INVALID_PAYLOAD = 19; + INVALID_RETRY_PARAMETERS = 20; + INVALID_QUEUE_MODE = 21; + ACL_LOOKUP_ERROR = 22; + TRANSACTIONAL_REQUEST_TOO_LARGE = 23; + INCORRECT_CREATOR_NAME = 24; + TASK_LEASE_EXPIRED = 25; + QUEUE_PAUSED = 26; + INVALID_TAG = 27; + + // Reserved range for the Datastore error codes. + // Original Datastore error code is shifted by DATASTORE_ERROR offset. + DATASTORE_ERROR = 10000; + } +} + +message TaskPayload { + extensions 10 to max; + option message_set_wire_format = true; +} + +message TaskQueueRetryParameters { + optional int32 retry_limit = 1; + optional int64 age_limit_sec = 2; + + optional double min_backoff_sec = 3 [default = 0.1]; + optional double max_backoff_sec = 4 [default = 3600]; + optional int32 max_doublings = 5 [default = 16]; +} + +message TaskQueueAcl { + repeated bytes user_email = 1; + repeated bytes writer_email = 2; +} + +message TaskQueueHttpHeader { + required bytes key = 1; + required bytes value = 2; +} + +message TaskQueueMode { + enum Mode { + PUSH = 0; + PULL = 1; + } +} + +message TaskQueueAddRequest { + required bytes queue_name = 1; + required bytes task_name = 2; + required int64 eta_usec = 3; + + enum RequestMethod { + GET = 1; + POST = 2; + HEAD = 3; + PUT = 4; + DELETE = 5; + } + optional RequestMethod method = 5 [default=POST]; + + optional bytes url = 4; + + repeated group Header = 6 { + required bytes key = 7; + required bytes value = 8; + } + + optional bytes body = 9 [ctype=CORD]; + optional Transaction transaction = 10; + optional bytes app_id = 11; + + optional group CronTimetable = 12 { + required bytes schedule = 13; + required bytes timezone = 14; + } + + optional bytes description = 15; + optional TaskPayload payload = 16; + optional TaskQueueRetryParameters retry_parameters = 17; + optional TaskQueueMode.Mode mode = 18 [default=PUSH]; + optional bytes tag = 19; +} + +message TaskQueueAddResponse { + optional bytes chosen_task_name = 1; +} + +message TaskQueueBulkAddRequest { + repeated TaskQueueAddRequest add_request = 1; +} + +message TaskQueueBulkAddResponse { + repeated group TaskResult = 1 { + required TaskQueueServiceError.ErrorCode result = 2; + optional bytes chosen_task_name = 3; + } +} + +message TaskQueueDeleteRequest { + required bytes queue_name = 1; + repeated bytes task_name = 2; + optional bytes app_id = 3; +} + +message TaskQueueDeleteResponse { + repeated TaskQueueServiceError.ErrorCode result = 3; +} + +message TaskQueueForceRunRequest { + optional bytes app_id = 1; + required bytes queue_name = 2; + required bytes task_name = 3; +} + +message TaskQueueForceRunResponse { + required TaskQueueServiceError.ErrorCode result = 3; +} + +message TaskQueueUpdateQueueRequest { + optional bytes app_id = 1; + required bytes queue_name = 2; + required double bucket_refill_per_second = 3; + required int32 bucket_capacity = 4; + optional string user_specified_rate = 5; + optional TaskQueueRetryParameters retry_parameters = 6; + optional int32 max_concurrent_requests = 7; + optional TaskQueueMode.Mode mode = 8 [default = PUSH]; + optional TaskQueueAcl acl = 9; + repeated TaskQueueHttpHeader header_override = 10; +} + +message TaskQueueUpdateQueueResponse { +} + +message TaskQueueFetchQueuesRequest { + optional bytes app_id = 1; + required int32 max_rows = 2; +} + +message TaskQueueFetchQueuesResponse { + repeated group Queue = 1 { + required bytes queue_name = 2; + required double bucket_refill_per_second = 3; + required double bucket_capacity = 4; + optional string user_specified_rate = 5; + required bool paused = 6 [default=false]; + optional TaskQueueRetryParameters retry_parameters = 7; + optional int32 max_concurrent_requests = 8; + optional TaskQueueMode.Mode mode = 9 [default = PUSH]; + optional TaskQueueAcl acl = 10; + repeated TaskQueueHttpHeader header_override = 11; + optional string creator_name = 12 [ctype=CORD, default="apphosting"]; + } +} + +message TaskQueueFetchQueueStatsRequest { + optional bytes app_id = 1; + repeated bytes queue_name = 2; + optional int32 max_num_tasks = 3 [default = 0]; +} + +message TaskQueueScannerQueueInfo { + required int64 executed_last_minute = 1; + required int64 executed_last_hour = 2; + required double sampling_duration_seconds = 3; + optional int32 requests_in_flight = 4; + optional double enforced_rate = 5; +} + +message TaskQueueFetchQueueStatsResponse { + repeated group QueueStats = 1 { + required int32 num_tasks = 2; + required int64 oldest_eta_usec = 3; + optional TaskQueueScannerQueueInfo scanner_info = 4; + } +} +message TaskQueuePauseQueueRequest { + required bytes app_id = 1; + required bytes queue_name = 2; + required bool pause = 3; +} + +message TaskQueuePauseQueueResponse { +} + +message TaskQueuePurgeQueueRequest { + optional bytes app_id = 1; + required bytes queue_name = 2; +} + +message TaskQueuePurgeQueueResponse { +} + +message TaskQueueDeleteQueueRequest { + required bytes app_id = 1; + required bytes queue_name = 2; +} + +message TaskQueueDeleteQueueResponse { +} + +message TaskQueueDeleteGroupRequest { + required bytes app_id = 1; +} + +message TaskQueueDeleteGroupResponse { +} + +message TaskQueueQueryTasksRequest { + optional bytes app_id = 1; + required bytes queue_name = 2; + + optional bytes start_task_name = 3; + optional int64 start_eta_usec = 4; + optional bytes start_tag = 6; + optional int32 max_rows = 5 [default = 1]; +} + +message TaskQueueQueryTasksResponse { + repeated group Task = 1 { + required bytes task_name = 2; + required int64 eta_usec = 3; + optional bytes url = 4; + + enum RequestMethod { + GET = 1; + POST = 2; + HEAD = 3; + PUT = 4; + DELETE = 5; + } + optional RequestMethod method = 5; + + optional int32 retry_count = 6 [default=0]; + + repeated group Header = 7 { + required bytes key = 8; + required bytes value = 9; + } + + optional int32 body_size = 10; + optional bytes body = 11 [ctype=CORD]; + required int64 creation_time_usec = 12; + + optional group CronTimetable = 13 { + required bytes schedule = 14; + required bytes timezone = 15; + } + + optional group RunLog = 16 { + required int64 dispatched_usec = 17; + required int64 lag_usec = 18; + required int64 elapsed_usec = 19; + optional int64 response_code = 20; + optional string retry_reason = 27; + } + + optional bytes description = 21; + optional TaskPayload payload = 22; + optional TaskQueueRetryParameters retry_parameters = 23; + optional int64 first_try_usec = 24; + optional bytes tag = 25; + optional int32 execution_count = 26 [default=0]; + } +} + +message TaskQueueFetchTaskRequest { + optional bytes app_id = 1; + required bytes queue_name = 2; + required bytes task_name = 3; +} + +message TaskQueueFetchTaskResponse { + required TaskQueueQueryTasksResponse task = 1; +} + +message TaskQueueUpdateStorageLimitRequest { + required bytes app_id = 1; + required int64 limit = 2; +} + +message TaskQueueUpdateStorageLimitResponse { + required int64 new_limit = 1; +} + +message TaskQueueQueryAndOwnTasksRequest { + required bytes queue_name = 1; + required double lease_seconds = 2; + required int64 max_tasks = 3; + optional bool group_by_tag = 4 [default=false]; + optional bytes tag = 5; +} + +message TaskQueueQueryAndOwnTasksResponse { + repeated group Task = 1 { + required bytes task_name = 2; + required int64 eta_usec = 3; + optional int32 retry_count = 4 [default=0]; + optional bytes body = 5 [ctype=CORD]; + optional bytes tag = 6; + } +} + +message TaskQueueModifyTaskLeaseRequest { + required bytes queue_name = 1; + required bytes task_name = 2; + required int64 eta_usec = 3; + required double lease_seconds = 4; +} + +message TaskQueueModifyTaskLeaseResponse { + required int64 updated_eta_usec = 1; +} diff --git a/vendor/google.golang.org/appengine/internal/transaction.go b/vendor/google.golang.org/appengine/internal/transaction.go new file mode 100644 index 000000000..9006ae653 --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/transaction.go @@ -0,0 +1,115 @@ +// Copyright 2014 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package internal + +// This file implements hooks for applying datastore transactions. + +import ( + "errors" + "reflect" + + "github.com/golang/protobuf/proto" + netcontext "golang.org/x/net/context" + + basepb "google.golang.org/appengine/internal/base" + pb "google.golang.org/appengine/internal/datastore" +) + +var transactionSetters = make(map[reflect.Type]reflect.Value) + +// RegisterTransactionSetter registers a function that sets transaction information +// in a protocol buffer message. f should be a function with two arguments, +// the first being a protocol buffer type, and the second being *datastore.Transaction. +func RegisterTransactionSetter(f interface{}) { + v := reflect.ValueOf(f) + transactionSetters[v.Type().In(0)] = v +} + +// applyTransaction applies the transaction t to message pb +// by using the relevant setter passed to RegisterTransactionSetter. +func applyTransaction(pb proto.Message, t *pb.Transaction) { + v := reflect.ValueOf(pb) + if f, ok := transactionSetters[v.Type()]; ok { + f.Call([]reflect.Value{v, reflect.ValueOf(t)}) + } +} + +var transactionKey = "used for *Transaction" + +func transactionFromContext(ctx netcontext.Context) *transaction { + t, _ := ctx.Value(&transactionKey).(*transaction) + return t +} + +func withTransaction(ctx netcontext.Context, t *transaction) netcontext.Context { + return netcontext.WithValue(ctx, &transactionKey, t) +} + +type transaction struct { + transaction pb.Transaction + finished bool +} + +var ErrConcurrentTransaction = errors.New("internal: concurrent transaction") + +func RunTransactionOnce(c netcontext.Context, f func(netcontext.Context) error, xg bool, readOnly bool, previousTransaction *pb.Transaction) (*pb.Transaction, error) { + if transactionFromContext(c) != nil { + return nil, errors.New("nested transactions are not supported") + } + + // Begin the transaction. + t := &transaction{} + req := &pb.BeginTransactionRequest{ + App: proto.String(FullyQualifiedAppID(c)), + } + if xg { + req.AllowMultipleEg = proto.Bool(true) + } + if previousTransaction != nil { + req.PreviousTransaction = previousTransaction + } + if readOnly { + req.Mode = pb.BeginTransactionRequest_READ_ONLY.Enum() + } else { + req.Mode = pb.BeginTransactionRequest_READ_WRITE.Enum() + } + if err := Call(c, "datastore_v3", "BeginTransaction", req, &t.transaction); err != nil { + return nil, err + } + + // Call f, rolling back the transaction if f returns a non-nil error, or panics. + // The panic is not recovered. + defer func() { + if t.finished { + return + } + t.finished = true + // Ignore the error return value, since we are already returning a non-nil + // error (or we're panicking). + Call(c, "datastore_v3", "Rollback", &t.transaction, &basepb.VoidProto{}) + }() + if err := f(withTransaction(c, t)); err != nil { + return &t.transaction, err + } + t.finished = true + + // Commit the transaction. + res := &pb.CommitResponse{} + err := Call(c, "datastore_v3", "Commit", &t.transaction, res) + if ae, ok := err.(*APIError); ok { + /* TODO: restore this conditional + if appengine.IsDevAppServer() { + */ + // The Python Dev AppServer raises an ApplicationError with error code 2 (which is + // Error.CONCURRENT_TRANSACTION) and message "Concurrency exception.". + if ae.Code == int32(pb.Error_BAD_REQUEST) && ae.Detail == "ApplicationError: 2 Concurrency exception." { + return &t.transaction, ErrConcurrentTransaction + } + if ae.Code == int32(pb.Error_CONCURRENT_TRANSACTION) { + return &t.transaction, ErrConcurrentTransaction + } + } + return &t.transaction, err +} diff --git a/vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.pb.go b/vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.pb.go new file mode 100644 index 000000000..5f727750a --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.pb.go @@ -0,0 +1,527 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google.golang.org/appengine/internal/urlfetch/urlfetch_service.proto + +package urlfetch + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +type URLFetchServiceError_ErrorCode int32 + +const ( + URLFetchServiceError_OK URLFetchServiceError_ErrorCode = 0 + URLFetchServiceError_INVALID_URL URLFetchServiceError_ErrorCode = 1 + URLFetchServiceError_FETCH_ERROR URLFetchServiceError_ErrorCode = 2 + URLFetchServiceError_UNSPECIFIED_ERROR URLFetchServiceError_ErrorCode = 3 + URLFetchServiceError_RESPONSE_TOO_LARGE URLFetchServiceError_ErrorCode = 4 + URLFetchServiceError_DEADLINE_EXCEEDED URLFetchServiceError_ErrorCode = 5 + URLFetchServiceError_SSL_CERTIFICATE_ERROR URLFetchServiceError_ErrorCode = 6 + URLFetchServiceError_DNS_ERROR URLFetchServiceError_ErrorCode = 7 + URLFetchServiceError_CLOSED URLFetchServiceError_ErrorCode = 8 + URLFetchServiceError_INTERNAL_TRANSIENT_ERROR URLFetchServiceError_ErrorCode = 9 + URLFetchServiceError_TOO_MANY_REDIRECTS URLFetchServiceError_ErrorCode = 10 + URLFetchServiceError_MALFORMED_REPLY URLFetchServiceError_ErrorCode = 11 + URLFetchServiceError_CONNECTION_ERROR URLFetchServiceError_ErrorCode = 12 +) + +var URLFetchServiceError_ErrorCode_name = map[int32]string{ + 0: "OK", + 1: "INVALID_URL", + 2: "FETCH_ERROR", + 3: "UNSPECIFIED_ERROR", + 4: "RESPONSE_TOO_LARGE", + 5: "DEADLINE_EXCEEDED", + 6: "SSL_CERTIFICATE_ERROR", + 7: "DNS_ERROR", + 8: "CLOSED", + 9: "INTERNAL_TRANSIENT_ERROR", + 10: "TOO_MANY_REDIRECTS", + 11: "MALFORMED_REPLY", + 12: "CONNECTION_ERROR", +} +var URLFetchServiceError_ErrorCode_value = map[string]int32{ + "OK": 0, + "INVALID_URL": 1, + "FETCH_ERROR": 2, + "UNSPECIFIED_ERROR": 3, + "RESPONSE_TOO_LARGE": 4, + "DEADLINE_EXCEEDED": 5, + "SSL_CERTIFICATE_ERROR": 6, + "DNS_ERROR": 7, + "CLOSED": 8, + "INTERNAL_TRANSIENT_ERROR": 9, + "TOO_MANY_REDIRECTS": 10, + "MALFORMED_REPLY": 11, + "CONNECTION_ERROR": 12, +} + +func (x URLFetchServiceError_ErrorCode) Enum() *URLFetchServiceError_ErrorCode { + p := new(URLFetchServiceError_ErrorCode) + *p = x + return p +} +func (x URLFetchServiceError_ErrorCode) String() string { + return proto.EnumName(URLFetchServiceError_ErrorCode_name, int32(x)) +} +func (x *URLFetchServiceError_ErrorCode) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(URLFetchServiceError_ErrorCode_value, data, "URLFetchServiceError_ErrorCode") + if err != nil { + return err + } + *x = URLFetchServiceError_ErrorCode(value) + return nil +} +func (URLFetchServiceError_ErrorCode) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_urlfetch_service_b245a7065f33bced, []int{0, 0} +} + +type URLFetchRequest_RequestMethod int32 + +const ( + URLFetchRequest_GET URLFetchRequest_RequestMethod = 1 + URLFetchRequest_POST URLFetchRequest_RequestMethod = 2 + URLFetchRequest_HEAD URLFetchRequest_RequestMethod = 3 + URLFetchRequest_PUT URLFetchRequest_RequestMethod = 4 + URLFetchRequest_DELETE URLFetchRequest_RequestMethod = 5 + URLFetchRequest_PATCH URLFetchRequest_RequestMethod = 6 +) + +var URLFetchRequest_RequestMethod_name = map[int32]string{ + 1: "GET", + 2: "POST", + 3: "HEAD", + 4: "PUT", + 5: "DELETE", + 6: "PATCH", +} +var URLFetchRequest_RequestMethod_value = map[string]int32{ + "GET": 1, + "POST": 2, + "HEAD": 3, + "PUT": 4, + "DELETE": 5, + "PATCH": 6, +} + +func (x URLFetchRequest_RequestMethod) Enum() *URLFetchRequest_RequestMethod { + p := new(URLFetchRequest_RequestMethod) + *p = x + return p +} +func (x URLFetchRequest_RequestMethod) String() string { + return proto.EnumName(URLFetchRequest_RequestMethod_name, int32(x)) +} +func (x *URLFetchRequest_RequestMethod) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(URLFetchRequest_RequestMethod_value, data, "URLFetchRequest_RequestMethod") + if err != nil { + return err + } + *x = URLFetchRequest_RequestMethod(value) + return nil +} +func (URLFetchRequest_RequestMethod) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_urlfetch_service_b245a7065f33bced, []int{1, 0} +} + +type URLFetchServiceError struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *URLFetchServiceError) Reset() { *m = URLFetchServiceError{} } +func (m *URLFetchServiceError) String() string { return proto.CompactTextString(m) } +func (*URLFetchServiceError) ProtoMessage() {} +func (*URLFetchServiceError) Descriptor() ([]byte, []int) { + return fileDescriptor_urlfetch_service_b245a7065f33bced, []int{0} +} +func (m *URLFetchServiceError) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_URLFetchServiceError.Unmarshal(m, b) +} +func (m *URLFetchServiceError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_URLFetchServiceError.Marshal(b, m, deterministic) +} +func (dst *URLFetchServiceError) XXX_Merge(src proto.Message) { + xxx_messageInfo_URLFetchServiceError.Merge(dst, src) +} +func (m *URLFetchServiceError) XXX_Size() int { + return xxx_messageInfo_URLFetchServiceError.Size(m) +} +func (m *URLFetchServiceError) XXX_DiscardUnknown() { + xxx_messageInfo_URLFetchServiceError.DiscardUnknown(m) +} + +var xxx_messageInfo_URLFetchServiceError proto.InternalMessageInfo + +type URLFetchRequest struct { + Method *URLFetchRequest_RequestMethod `protobuf:"varint,1,req,name=Method,enum=appengine.URLFetchRequest_RequestMethod" json:"Method,omitempty"` + Url *string `protobuf:"bytes,2,req,name=Url" json:"Url,omitempty"` + Header []*URLFetchRequest_Header `protobuf:"group,3,rep,name=Header,json=header" json:"header,omitempty"` + Payload []byte `protobuf:"bytes,6,opt,name=Payload" json:"Payload,omitempty"` + FollowRedirects *bool `protobuf:"varint,7,opt,name=FollowRedirects,def=1" json:"FollowRedirects,omitempty"` + Deadline *float64 `protobuf:"fixed64,8,opt,name=Deadline" json:"Deadline,omitempty"` + MustValidateServerCertificate *bool `protobuf:"varint,9,opt,name=MustValidateServerCertificate,def=1" json:"MustValidateServerCertificate,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *URLFetchRequest) Reset() { *m = URLFetchRequest{} } +func (m *URLFetchRequest) String() string { return proto.CompactTextString(m) } +func (*URLFetchRequest) ProtoMessage() {} +func (*URLFetchRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_urlfetch_service_b245a7065f33bced, []int{1} +} +func (m *URLFetchRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_URLFetchRequest.Unmarshal(m, b) +} +func (m *URLFetchRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_URLFetchRequest.Marshal(b, m, deterministic) +} +func (dst *URLFetchRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_URLFetchRequest.Merge(dst, src) +} +func (m *URLFetchRequest) XXX_Size() int { + return xxx_messageInfo_URLFetchRequest.Size(m) +} +func (m *URLFetchRequest) XXX_DiscardUnknown() { + xxx_messageInfo_URLFetchRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_URLFetchRequest proto.InternalMessageInfo + +const Default_URLFetchRequest_FollowRedirects bool = true +const Default_URLFetchRequest_MustValidateServerCertificate bool = true + +func (m *URLFetchRequest) GetMethod() URLFetchRequest_RequestMethod { + if m != nil && m.Method != nil { + return *m.Method + } + return URLFetchRequest_GET +} + +func (m *URLFetchRequest) GetUrl() string { + if m != nil && m.Url != nil { + return *m.Url + } + return "" +} + +func (m *URLFetchRequest) GetHeader() []*URLFetchRequest_Header { + if m != nil { + return m.Header + } + return nil +} + +func (m *URLFetchRequest) GetPayload() []byte { + if m != nil { + return m.Payload + } + return nil +} + +func (m *URLFetchRequest) GetFollowRedirects() bool { + if m != nil && m.FollowRedirects != nil { + return *m.FollowRedirects + } + return Default_URLFetchRequest_FollowRedirects +} + +func (m *URLFetchRequest) GetDeadline() float64 { + if m != nil && m.Deadline != nil { + return *m.Deadline + } + return 0 +} + +func (m *URLFetchRequest) GetMustValidateServerCertificate() bool { + if m != nil && m.MustValidateServerCertificate != nil { + return *m.MustValidateServerCertificate + } + return Default_URLFetchRequest_MustValidateServerCertificate +} + +type URLFetchRequest_Header struct { + Key *string `protobuf:"bytes,4,req,name=Key" json:"Key,omitempty"` + Value *string `protobuf:"bytes,5,req,name=Value" json:"Value,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *URLFetchRequest_Header) Reset() { *m = URLFetchRequest_Header{} } +func (m *URLFetchRequest_Header) String() string { return proto.CompactTextString(m) } +func (*URLFetchRequest_Header) ProtoMessage() {} +func (*URLFetchRequest_Header) Descriptor() ([]byte, []int) { + return fileDescriptor_urlfetch_service_b245a7065f33bced, []int{1, 0} +} +func (m *URLFetchRequest_Header) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_URLFetchRequest_Header.Unmarshal(m, b) +} +func (m *URLFetchRequest_Header) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_URLFetchRequest_Header.Marshal(b, m, deterministic) +} +func (dst *URLFetchRequest_Header) XXX_Merge(src proto.Message) { + xxx_messageInfo_URLFetchRequest_Header.Merge(dst, src) +} +func (m *URLFetchRequest_Header) XXX_Size() int { + return xxx_messageInfo_URLFetchRequest_Header.Size(m) +} +func (m *URLFetchRequest_Header) XXX_DiscardUnknown() { + xxx_messageInfo_URLFetchRequest_Header.DiscardUnknown(m) +} + +var xxx_messageInfo_URLFetchRequest_Header proto.InternalMessageInfo + +func (m *URLFetchRequest_Header) GetKey() string { + if m != nil && m.Key != nil { + return *m.Key + } + return "" +} + +func (m *URLFetchRequest_Header) GetValue() string { + if m != nil && m.Value != nil { + return *m.Value + } + return "" +} + +type URLFetchResponse struct { + Content []byte `protobuf:"bytes,1,opt,name=Content" json:"Content,omitempty"` + StatusCode *int32 `protobuf:"varint,2,req,name=StatusCode" json:"StatusCode,omitempty"` + Header []*URLFetchResponse_Header `protobuf:"group,3,rep,name=Header,json=header" json:"header,omitempty"` + ContentWasTruncated *bool `protobuf:"varint,6,opt,name=ContentWasTruncated,def=0" json:"ContentWasTruncated,omitempty"` + ExternalBytesSent *int64 `protobuf:"varint,7,opt,name=ExternalBytesSent" json:"ExternalBytesSent,omitempty"` + ExternalBytesReceived *int64 `protobuf:"varint,8,opt,name=ExternalBytesReceived" json:"ExternalBytesReceived,omitempty"` + FinalUrl *string `protobuf:"bytes,9,opt,name=FinalUrl" json:"FinalUrl,omitempty"` + ApiCpuMilliseconds *int64 `protobuf:"varint,10,opt,name=ApiCpuMilliseconds,def=0" json:"ApiCpuMilliseconds,omitempty"` + ApiBytesSent *int64 `protobuf:"varint,11,opt,name=ApiBytesSent,def=0" json:"ApiBytesSent,omitempty"` + ApiBytesReceived *int64 `protobuf:"varint,12,opt,name=ApiBytesReceived,def=0" json:"ApiBytesReceived,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *URLFetchResponse) Reset() { *m = URLFetchResponse{} } +func (m *URLFetchResponse) String() string { return proto.CompactTextString(m) } +func (*URLFetchResponse) ProtoMessage() {} +func (*URLFetchResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_urlfetch_service_b245a7065f33bced, []int{2} +} +func (m *URLFetchResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_URLFetchResponse.Unmarshal(m, b) +} +func (m *URLFetchResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_URLFetchResponse.Marshal(b, m, deterministic) +} +func (dst *URLFetchResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_URLFetchResponse.Merge(dst, src) +} +func (m *URLFetchResponse) XXX_Size() int { + return xxx_messageInfo_URLFetchResponse.Size(m) +} +func (m *URLFetchResponse) XXX_DiscardUnknown() { + xxx_messageInfo_URLFetchResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_URLFetchResponse proto.InternalMessageInfo + +const Default_URLFetchResponse_ContentWasTruncated bool = false +const Default_URLFetchResponse_ApiCpuMilliseconds int64 = 0 +const Default_URLFetchResponse_ApiBytesSent int64 = 0 +const Default_URLFetchResponse_ApiBytesReceived int64 = 0 + +func (m *URLFetchResponse) GetContent() []byte { + if m != nil { + return m.Content + } + return nil +} + +func (m *URLFetchResponse) GetStatusCode() int32 { + if m != nil && m.StatusCode != nil { + return *m.StatusCode + } + return 0 +} + +func (m *URLFetchResponse) GetHeader() []*URLFetchResponse_Header { + if m != nil { + return m.Header + } + return nil +} + +func (m *URLFetchResponse) GetContentWasTruncated() bool { + if m != nil && m.ContentWasTruncated != nil { + return *m.ContentWasTruncated + } + return Default_URLFetchResponse_ContentWasTruncated +} + +func (m *URLFetchResponse) GetExternalBytesSent() int64 { + if m != nil && m.ExternalBytesSent != nil { + return *m.ExternalBytesSent + } + return 0 +} + +func (m *URLFetchResponse) GetExternalBytesReceived() int64 { + if m != nil && m.ExternalBytesReceived != nil { + return *m.ExternalBytesReceived + } + return 0 +} + +func (m *URLFetchResponse) GetFinalUrl() string { + if m != nil && m.FinalUrl != nil { + return *m.FinalUrl + } + return "" +} + +func (m *URLFetchResponse) GetApiCpuMilliseconds() int64 { + if m != nil && m.ApiCpuMilliseconds != nil { + return *m.ApiCpuMilliseconds + } + return Default_URLFetchResponse_ApiCpuMilliseconds +} + +func (m *URLFetchResponse) GetApiBytesSent() int64 { + if m != nil && m.ApiBytesSent != nil { + return *m.ApiBytesSent + } + return Default_URLFetchResponse_ApiBytesSent +} + +func (m *URLFetchResponse) GetApiBytesReceived() int64 { + if m != nil && m.ApiBytesReceived != nil { + return *m.ApiBytesReceived + } + return Default_URLFetchResponse_ApiBytesReceived +} + +type URLFetchResponse_Header struct { + Key *string `protobuf:"bytes,4,req,name=Key" json:"Key,omitempty"` + Value *string `protobuf:"bytes,5,req,name=Value" json:"Value,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *URLFetchResponse_Header) Reset() { *m = URLFetchResponse_Header{} } +func (m *URLFetchResponse_Header) String() string { return proto.CompactTextString(m) } +func (*URLFetchResponse_Header) ProtoMessage() {} +func (*URLFetchResponse_Header) Descriptor() ([]byte, []int) { + return fileDescriptor_urlfetch_service_b245a7065f33bced, []int{2, 0} +} +func (m *URLFetchResponse_Header) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_URLFetchResponse_Header.Unmarshal(m, b) +} +func (m *URLFetchResponse_Header) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_URLFetchResponse_Header.Marshal(b, m, deterministic) +} +func (dst *URLFetchResponse_Header) XXX_Merge(src proto.Message) { + xxx_messageInfo_URLFetchResponse_Header.Merge(dst, src) +} +func (m *URLFetchResponse_Header) XXX_Size() int { + return xxx_messageInfo_URLFetchResponse_Header.Size(m) +} +func (m *URLFetchResponse_Header) XXX_DiscardUnknown() { + xxx_messageInfo_URLFetchResponse_Header.DiscardUnknown(m) +} + +var xxx_messageInfo_URLFetchResponse_Header proto.InternalMessageInfo + +func (m *URLFetchResponse_Header) GetKey() string { + if m != nil && m.Key != nil { + return *m.Key + } + return "" +} + +func (m *URLFetchResponse_Header) GetValue() string { + if m != nil && m.Value != nil { + return *m.Value + } + return "" +} + +func init() { + proto.RegisterType((*URLFetchServiceError)(nil), "appengine.URLFetchServiceError") + proto.RegisterType((*URLFetchRequest)(nil), "appengine.URLFetchRequest") + proto.RegisterType((*URLFetchRequest_Header)(nil), "appengine.URLFetchRequest.Header") + proto.RegisterType((*URLFetchResponse)(nil), "appengine.URLFetchResponse") + proto.RegisterType((*URLFetchResponse_Header)(nil), "appengine.URLFetchResponse.Header") +} + +func init() { + proto.RegisterFile("google.golang.org/appengine/internal/urlfetch/urlfetch_service.proto", fileDescriptor_urlfetch_service_b245a7065f33bced) +} + +var fileDescriptor_urlfetch_service_b245a7065f33bced = []byte{ + // 770 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0xdd, 0x6e, 0xe3, 0x54, + 0x10, 0xc6, 0x76, 0x7e, 0xa7, 0x5d, 0x7a, 0x76, 0xb6, 0x45, 0x66, 0xb5, 0xa0, 0x10, 0x09, 0x29, + 0x17, 0x90, 0x2e, 0x2b, 0x24, 0x44, 0xaf, 0x70, 0xed, 0x93, 0xad, 0xa9, 0x63, 0x47, 0xc7, 0x4e, + 0x61, 0xb9, 0xb1, 0xac, 0x78, 0x9a, 0x5a, 0xb2, 0xec, 0x60, 0x9f, 0x2c, 0xf4, 0x35, 0x78, 0x0d, + 0xde, 0x87, 0xa7, 0xe1, 0x02, 0x9d, 0xc4, 0xc9, 0x6e, 0xbb, 0xd1, 0x4a, 0x5c, 0x65, 0xe6, 0x9b, + 0xef, 0xcc, 0x99, 0x7c, 0xdf, 0xf8, 0x80, 0xb3, 0x2c, 0xcb, 0x65, 0x4e, 0xe3, 0x65, 0x99, 0x27, + 0xc5, 0x72, 0x5c, 0x56, 0xcb, 0xf3, 0x64, 0xb5, 0xa2, 0x62, 0x99, 0x15, 0x74, 0x9e, 0x15, 0x92, + 0xaa, 0x22, 0xc9, 0xcf, 0xd7, 0x55, 0x7e, 0x4b, 0x72, 0x71, 0xb7, 0x0f, 0xe2, 0x9a, 0xaa, 0xb7, + 0xd9, 0x82, 0xc6, 0xab, 0xaa, 0x94, 0x25, 0xf6, 0xf7, 0x67, 0x86, 0x7f, 0xeb, 0x70, 0x3a, 0x17, + 0xde, 0x44, 0xb1, 0xc2, 0x2d, 0x89, 0x57, 0x55, 0x59, 0x0d, 0xff, 0xd2, 0xa1, 0xbf, 0x89, 0xec, + 0x32, 0x25, 0xec, 0x80, 0x1e, 0x5c, 0xb3, 0x4f, 0xf0, 0x04, 0x8e, 0x5c, 0xff, 0xc6, 0xf2, 0x5c, + 0x27, 0x9e, 0x0b, 0x8f, 0x69, 0x0a, 0x98, 0xf0, 0xc8, 0xbe, 0x8a, 0xb9, 0x10, 0x81, 0x60, 0x3a, + 0x9e, 0xc1, 0xd3, 0xb9, 0x1f, 0xce, 0xb8, 0xed, 0x4e, 0x5c, 0xee, 0x34, 0xb0, 0x81, 0x9f, 0x01, + 0x0a, 0x1e, 0xce, 0x02, 0x3f, 0xe4, 0x71, 0x14, 0x04, 0xb1, 0x67, 0x89, 0xd7, 0x9c, 0xb5, 0x14, + 0xdd, 0xe1, 0x96, 0xe3, 0xb9, 0x3e, 0x8f, 0xf9, 0xaf, 0x36, 0xe7, 0x0e, 0x77, 0x58, 0x1b, 0x3f, + 0x87, 0xb3, 0x30, 0xf4, 0x62, 0x9b, 0x8b, 0xc8, 0x9d, 0xb8, 0xb6, 0x15, 0xf1, 0xa6, 0x53, 0x07, + 0x9f, 0x40, 0xdf, 0xf1, 0xc3, 0x26, 0xed, 0x22, 0x40, 0xc7, 0xf6, 0x82, 0x90, 0x3b, 0xac, 0x87, + 0x2f, 0xc0, 0x74, 0xfd, 0x88, 0x0b, 0xdf, 0xf2, 0xe2, 0x48, 0x58, 0x7e, 0xe8, 0x72, 0x3f, 0x6a, + 0x98, 0x7d, 0x35, 0x82, 0xba, 0x79, 0x6a, 0xf9, 0x6f, 0x62, 0xc1, 0x1d, 0x57, 0x70, 0x3b, 0x0a, + 0x19, 0xe0, 0x33, 0x38, 0x99, 0x5a, 0xde, 0x24, 0x10, 0x53, 0xee, 0xc4, 0x82, 0xcf, 0xbc, 0x37, + 0xec, 0x08, 0x4f, 0x81, 0xd9, 0x81, 0xef, 0x73, 0x3b, 0x72, 0x03, 0xbf, 0x69, 0x71, 0x3c, 0xfc, + 0xc7, 0x80, 0x93, 0x9d, 0x5a, 0x82, 0x7e, 0x5f, 0x53, 0x2d, 0xf1, 0x27, 0xe8, 0x4c, 0x49, 0xde, + 0x95, 0xa9, 0xa9, 0x0d, 0xf4, 0xd1, 0xa7, 0xaf, 0x46, 0xe3, 0xbd, 0xba, 0xe3, 0x47, 0xdc, 0x71, + 0xf3, 0xbb, 0xe5, 0x8b, 0xe6, 0x1c, 0x32, 0x30, 0xe6, 0x55, 0x6e, 0xea, 0x03, 0x7d, 0xd4, 0x17, + 0x2a, 0xc4, 0x1f, 0xa1, 0x73, 0x47, 0x49, 0x4a, 0x95, 0x69, 0x0c, 0x8c, 0x11, 0xbc, 0xfa, 0xea, + 0x23, 0x3d, 0xaf, 0x36, 0x44, 0xd1, 0x1c, 0xc0, 0x17, 0xd0, 0x9d, 0x25, 0xf7, 0x79, 0x99, 0xa4, + 0x66, 0x67, 0xa0, 0x8d, 0x8e, 0x2f, 0xf5, 0x9e, 0x26, 0x76, 0x10, 0x8e, 0xe1, 0x64, 0x52, 0xe6, + 0x79, 0xf9, 0x87, 0xa0, 0x34, 0xab, 0x68, 0x21, 0x6b, 0xb3, 0x3b, 0xd0, 0x46, 0xbd, 0x8b, 0x96, + 0xac, 0xd6, 0x24, 0x1e, 0x17, 0xf1, 0x39, 0xf4, 0x1c, 0x4a, 0xd2, 0x3c, 0x2b, 0xc8, 0xec, 0x0d, + 0xb4, 0x91, 0x26, 0xf6, 0x39, 0xfe, 0x0c, 0x5f, 0x4c, 0xd7, 0xb5, 0xbc, 0x49, 0xf2, 0x2c, 0x4d, + 0x24, 0xa9, 0xed, 0xa1, 0xca, 0xa6, 0x4a, 0x66, 0xb7, 0xd9, 0x22, 0x91, 0x64, 0xf6, 0xdf, 0xeb, + 0xfc, 0x71, 0xea, 0xf3, 0x97, 0xd0, 0xd9, 0xfe, 0x0f, 0x25, 0xc6, 0x35, 0xdd, 0x9b, 0xad, 0xad, + 0x18, 0xd7, 0x74, 0x8f, 0xa7, 0xd0, 0xbe, 0x49, 0xf2, 0x35, 0x99, 0xed, 0x0d, 0xb6, 0x4d, 0x86, + 0x1e, 0x3c, 0x79, 0xa0, 0x26, 0x76, 0xc1, 0x78, 0xcd, 0x23, 0xa6, 0x61, 0x0f, 0x5a, 0xb3, 0x20, + 0x8c, 0x98, 0xae, 0xa2, 0x2b, 0x6e, 0x39, 0xcc, 0x50, 0xc5, 0xd9, 0x3c, 0x62, 0x2d, 0xb5, 0x2e, + 0x0e, 0xf7, 0x78, 0xc4, 0x59, 0x1b, 0xfb, 0xd0, 0x9e, 0x59, 0x91, 0x7d, 0xc5, 0x3a, 0xc3, 0x7f, + 0x0d, 0x60, 0xef, 0x84, 0xad, 0x57, 0x65, 0x51, 0x13, 0x9a, 0xd0, 0xb5, 0xcb, 0x42, 0x52, 0x21, + 0x4d, 0x4d, 0x49, 0x29, 0x76, 0x29, 0x7e, 0x09, 0x10, 0xca, 0x44, 0xae, 0x6b, 0xf5, 0x71, 0x6c, + 0x8c, 0x6b, 0x8b, 0xf7, 0x10, 0xbc, 0x78, 0xe4, 0xdf, 0xf0, 0xa0, 0x7f, 0xdb, 0x6b, 0x1e, 0x1b, + 0xf8, 0x03, 0x3c, 0x6b, 0xae, 0xf9, 0x25, 0xa9, 0xa3, 0x6a, 0x5d, 0x28, 0x81, 0xb6, 0x66, 0xf6, + 0x2e, 0xda, 0xb7, 0x49, 0x5e, 0x93, 0x38, 0xc4, 0xc0, 0x6f, 0xe0, 0x29, 0xff, 0x73, 0xfb, 0x02, + 0x5c, 0xde, 0x4b, 0xaa, 0x43, 0x35, 0xb8, 0x72, 0xd7, 0x10, 0x1f, 0x16, 0xf0, 0x7b, 0x38, 0x7b, + 0x00, 0x0a, 0x5a, 0x50, 0xf6, 0x96, 0xd2, 0x8d, 0xcd, 0x86, 0x38, 0x5c, 0x54, 0xfb, 0x30, 0xc9, + 0x8a, 0x24, 0x57, 0xfb, 0xaa, 0xec, 0xed, 0x8b, 0x7d, 0x8e, 0xdf, 0x01, 0x5a, 0xab, 0xcc, 0x5e, + 0xad, 0xa7, 0x59, 0x9e, 0x67, 0x35, 0x2d, 0xca, 0x22, 0xad, 0x4d, 0x50, 0xed, 0x2e, 0xb4, 0x97, + 0xe2, 0x40, 0x11, 0xbf, 0x86, 0x63, 0x6b, 0x95, 0xbd, 0x9b, 0xf6, 0x68, 0x47, 0x7e, 0x00, 0xe3, + 0xb7, 0xc0, 0x76, 0xf9, 0x7e, 0xcc, 0xe3, 0x1d, 0xf5, 0x83, 0xd2, 0xff, 0x5f, 0xa6, 0x4b, 0xf8, + 0xad, 0xb7, 0x7b, 0x2a, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0x1d, 0x9f, 0x6d, 0x24, 0x63, 0x05, + 0x00, 0x00, +} diff --git a/vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.proto b/vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.proto new file mode 100644 index 000000000..f695edf6a --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.proto @@ -0,0 +1,64 @@ +syntax = "proto2"; +option go_package = "urlfetch"; + +package appengine; + +message URLFetchServiceError { + enum ErrorCode { + OK = 0; + INVALID_URL = 1; + FETCH_ERROR = 2; + UNSPECIFIED_ERROR = 3; + RESPONSE_TOO_LARGE = 4; + DEADLINE_EXCEEDED = 5; + SSL_CERTIFICATE_ERROR = 6; + DNS_ERROR = 7; + CLOSED = 8; + INTERNAL_TRANSIENT_ERROR = 9; + TOO_MANY_REDIRECTS = 10; + MALFORMED_REPLY = 11; + CONNECTION_ERROR = 12; + } +} + +message URLFetchRequest { + enum RequestMethod { + GET = 1; + POST = 2; + HEAD = 3; + PUT = 4; + DELETE = 5; + PATCH = 6; + } + required RequestMethod Method = 1; + required string Url = 2; + repeated group Header = 3 { + required string Key = 4; + required string Value = 5; + } + optional bytes Payload = 6 [ctype=CORD]; + + optional bool FollowRedirects = 7 [default=true]; + + optional double Deadline = 8; + + optional bool MustValidateServerCertificate = 9 [default=true]; +} + +message URLFetchResponse { + optional bytes Content = 1; + required int32 StatusCode = 2; + repeated group Header = 3 { + required string Key = 4; + required string Value = 5; + } + optional bool ContentWasTruncated = 6 [default=false]; + optional int64 ExternalBytesSent = 7; + optional int64 ExternalBytesReceived = 8; + + optional string FinalUrl = 9; + + optional int64 ApiCpuMilliseconds = 10 [default=0]; + optional int64 ApiBytesSent = 11 [default=0]; + optional int64 ApiBytesReceived = 12 [default=0]; +} diff --git a/vendor/google.golang.org/appengine/internal/user/user_service.pb.go b/vendor/google.golang.org/appengine/internal/user/user_service.pb.go new file mode 100644 index 000000000..8090a4e0a --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/user/user_service.pb.go @@ -0,0 +1,531 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google.golang.org/appengine/internal/user/user_service.proto + +package user + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +type UserServiceError_ErrorCode int32 + +const ( + UserServiceError_OK UserServiceError_ErrorCode = 0 + UserServiceError_REDIRECT_URL_TOO_LONG UserServiceError_ErrorCode = 1 + UserServiceError_NOT_ALLOWED UserServiceError_ErrorCode = 2 + UserServiceError_OAUTH_INVALID_TOKEN UserServiceError_ErrorCode = 3 + UserServiceError_OAUTH_INVALID_REQUEST UserServiceError_ErrorCode = 4 + UserServiceError_OAUTH_ERROR UserServiceError_ErrorCode = 5 +) + +var UserServiceError_ErrorCode_name = map[int32]string{ + 0: "OK", + 1: "REDIRECT_URL_TOO_LONG", + 2: "NOT_ALLOWED", + 3: "OAUTH_INVALID_TOKEN", + 4: "OAUTH_INVALID_REQUEST", + 5: "OAUTH_ERROR", +} +var UserServiceError_ErrorCode_value = map[string]int32{ + "OK": 0, + "REDIRECT_URL_TOO_LONG": 1, + "NOT_ALLOWED": 2, + "OAUTH_INVALID_TOKEN": 3, + "OAUTH_INVALID_REQUEST": 4, + "OAUTH_ERROR": 5, +} + +func (x UserServiceError_ErrorCode) Enum() *UserServiceError_ErrorCode { + p := new(UserServiceError_ErrorCode) + *p = x + return p +} +func (x UserServiceError_ErrorCode) String() string { + return proto.EnumName(UserServiceError_ErrorCode_name, int32(x)) +} +func (x *UserServiceError_ErrorCode) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(UserServiceError_ErrorCode_value, data, "UserServiceError_ErrorCode") + if err != nil { + return err + } + *x = UserServiceError_ErrorCode(value) + return nil +} +func (UserServiceError_ErrorCode) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_user_service_faa685423dd20b0a, []int{0, 0} +} + +type UserServiceError struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UserServiceError) Reset() { *m = UserServiceError{} } +func (m *UserServiceError) String() string { return proto.CompactTextString(m) } +func (*UserServiceError) ProtoMessage() {} +func (*UserServiceError) Descriptor() ([]byte, []int) { + return fileDescriptor_user_service_faa685423dd20b0a, []int{0} +} +func (m *UserServiceError) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserServiceError.Unmarshal(m, b) +} +func (m *UserServiceError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserServiceError.Marshal(b, m, deterministic) +} +func (dst *UserServiceError) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserServiceError.Merge(dst, src) +} +func (m *UserServiceError) XXX_Size() int { + return xxx_messageInfo_UserServiceError.Size(m) +} +func (m *UserServiceError) XXX_DiscardUnknown() { + xxx_messageInfo_UserServiceError.DiscardUnknown(m) +} + +var xxx_messageInfo_UserServiceError proto.InternalMessageInfo + +type CreateLoginURLRequest struct { + DestinationUrl *string `protobuf:"bytes,1,req,name=destination_url,json=destinationUrl" json:"destination_url,omitempty"` + AuthDomain *string `protobuf:"bytes,2,opt,name=auth_domain,json=authDomain" json:"auth_domain,omitempty"` + FederatedIdentity *string `protobuf:"bytes,3,opt,name=federated_identity,json=federatedIdentity,def=" json:"federated_identity,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CreateLoginURLRequest) Reset() { *m = CreateLoginURLRequest{} } +func (m *CreateLoginURLRequest) String() string { return proto.CompactTextString(m) } +func (*CreateLoginURLRequest) ProtoMessage() {} +func (*CreateLoginURLRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_user_service_faa685423dd20b0a, []int{1} +} +func (m *CreateLoginURLRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreateLoginURLRequest.Unmarshal(m, b) +} +func (m *CreateLoginURLRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreateLoginURLRequest.Marshal(b, m, deterministic) +} +func (dst *CreateLoginURLRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateLoginURLRequest.Merge(dst, src) +} +func (m *CreateLoginURLRequest) XXX_Size() int { + return xxx_messageInfo_CreateLoginURLRequest.Size(m) +} +func (m *CreateLoginURLRequest) XXX_DiscardUnknown() { + xxx_messageInfo_CreateLoginURLRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_CreateLoginURLRequest proto.InternalMessageInfo + +func (m *CreateLoginURLRequest) GetDestinationUrl() string { + if m != nil && m.DestinationUrl != nil { + return *m.DestinationUrl + } + return "" +} + +func (m *CreateLoginURLRequest) GetAuthDomain() string { + if m != nil && m.AuthDomain != nil { + return *m.AuthDomain + } + return "" +} + +func (m *CreateLoginURLRequest) GetFederatedIdentity() string { + if m != nil && m.FederatedIdentity != nil { + return *m.FederatedIdentity + } + return "" +} + +type CreateLoginURLResponse struct { + LoginUrl *string `protobuf:"bytes,1,req,name=login_url,json=loginUrl" json:"login_url,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CreateLoginURLResponse) Reset() { *m = CreateLoginURLResponse{} } +func (m *CreateLoginURLResponse) String() string { return proto.CompactTextString(m) } +func (*CreateLoginURLResponse) ProtoMessage() {} +func (*CreateLoginURLResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_user_service_faa685423dd20b0a, []int{2} +} +func (m *CreateLoginURLResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreateLoginURLResponse.Unmarshal(m, b) +} +func (m *CreateLoginURLResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreateLoginURLResponse.Marshal(b, m, deterministic) +} +func (dst *CreateLoginURLResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateLoginURLResponse.Merge(dst, src) +} +func (m *CreateLoginURLResponse) XXX_Size() int { + return xxx_messageInfo_CreateLoginURLResponse.Size(m) +} +func (m *CreateLoginURLResponse) XXX_DiscardUnknown() { + xxx_messageInfo_CreateLoginURLResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_CreateLoginURLResponse proto.InternalMessageInfo + +func (m *CreateLoginURLResponse) GetLoginUrl() string { + if m != nil && m.LoginUrl != nil { + return *m.LoginUrl + } + return "" +} + +type CreateLogoutURLRequest struct { + DestinationUrl *string `protobuf:"bytes,1,req,name=destination_url,json=destinationUrl" json:"destination_url,omitempty"` + AuthDomain *string `protobuf:"bytes,2,opt,name=auth_domain,json=authDomain" json:"auth_domain,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CreateLogoutURLRequest) Reset() { *m = CreateLogoutURLRequest{} } +func (m *CreateLogoutURLRequest) String() string { return proto.CompactTextString(m) } +func (*CreateLogoutURLRequest) ProtoMessage() {} +func (*CreateLogoutURLRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_user_service_faa685423dd20b0a, []int{3} +} +func (m *CreateLogoutURLRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreateLogoutURLRequest.Unmarshal(m, b) +} +func (m *CreateLogoutURLRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreateLogoutURLRequest.Marshal(b, m, deterministic) +} +func (dst *CreateLogoutURLRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateLogoutURLRequest.Merge(dst, src) +} +func (m *CreateLogoutURLRequest) XXX_Size() int { + return xxx_messageInfo_CreateLogoutURLRequest.Size(m) +} +func (m *CreateLogoutURLRequest) XXX_DiscardUnknown() { + xxx_messageInfo_CreateLogoutURLRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_CreateLogoutURLRequest proto.InternalMessageInfo + +func (m *CreateLogoutURLRequest) GetDestinationUrl() string { + if m != nil && m.DestinationUrl != nil { + return *m.DestinationUrl + } + return "" +} + +func (m *CreateLogoutURLRequest) GetAuthDomain() string { + if m != nil && m.AuthDomain != nil { + return *m.AuthDomain + } + return "" +} + +type CreateLogoutURLResponse struct { + LogoutUrl *string `protobuf:"bytes,1,req,name=logout_url,json=logoutUrl" json:"logout_url,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CreateLogoutURLResponse) Reset() { *m = CreateLogoutURLResponse{} } +func (m *CreateLogoutURLResponse) String() string { return proto.CompactTextString(m) } +func (*CreateLogoutURLResponse) ProtoMessage() {} +func (*CreateLogoutURLResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_user_service_faa685423dd20b0a, []int{4} +} +func (m *CreateLogoutURLResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreateLogoutURLResponse.Unmarshal(m, b) +} +func (m *CreateLogoutURLResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreateLogoutURLResponse.Marshal(b, m, deterministic) +} +func (dst *CreateLogoutURLResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateLogoutURLResponse.Merge(dst, src) +} +func (m *CreateLogoutURLResponse) XXX_Size() int { + return xxx_messageInfo_CreateLogoutURLResponse.Size(m) +} +func (m *CreateLogoutURLResponse) XXX_DiscardUnknown() { + xxx_messageInfo_CreateLogoutURLResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_CreateLogoutURLResponse proto.InternalMessageInfo + +func (m *CreateLogoutURLResponse) GetLogoutUrl() string { + if m != nil && m.LogoutUrl != nil { + return *m.LogoutUrl + } + return "" +} + +type GetOAuthUserRequest struct { + Scope *string `protobuf:"bytes,1,opt,name=scope" json:"scope,omitempty"` + Scopes []string `protobuf:"bytes,2,rep,name=scopes" json:"scopes,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetOAuthUserRequest) Reset() { *m = GetOAuthUserRequest{} } +func (m *GetOAuthUserRequest) String() string { return proto.CompactTextString(m) } +func (*GetOAuthUserRequest) ProtoMessage() {} +func (*GetOAuthUserRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_user_service_faa685423dd20b0a, []int{5} +} +func (m *GetOAuthUserRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetOAuthUserRequest.Unmarshal(m, b) +} +func (m *GetOAuthUserRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetOAuthUserRequest.Marshal(b, m, deterministic) +} +func (dst *GetOAuthUserRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetOAuthUserRequest.Merge(dst, src) +} +func (m *GetOAuthUserRequest) XXX_Size() int { + return xxx_messageInfo_GetOAuthUserRequest.Size(m) +} +func (m *GetOAuthUserRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetOAuthUserRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetOAuthUserRequest proto.InternalMessageInfo + +func (m *GetOAuthUserRequest) GetScope() string { + if m != nil && m.Scope != nil { + return *m.Scope + } + return "" +} + +func (m *GetOAuthUserRequest) GetScopes() []string { + if m != nil { + return m.Scopes + } + return nil +} + +type GetOAuthUserResponse struct { + Email *string `protobuf:"bytes,1,req,name=email" json:"email,omitempty"` + UserId *string `protobuf:"bytes,2,req,name=user_id,json=userId" json:"user_id,omitempty"` + AuthDomain *string `protobuf:"bytes,3,req,name=auth_domain,json=authDomain" json:"auth_domain,omitempty"` + UserOrganization *string `protobuf:"bytes,4,opt,name=user_organization,json=userOrganization,def=" json:"user_organization,omitempty"` + IsAdmin *bool `protobuf:"varint,5,opt,name=is_admin,json=isAdmin,def=0" json:"is_admin,omitempty"` + ClientId *string `protobuf:"bytes,6,opt,name=client_id,json=clientId,def=" json:"client_id,omitempty"` + Scopes []string `protobuf:"bytes,7,rep,name=scopes" json:"scopes,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetOAuthUserResponse) Reset() { *m = GetOAuthUserResponse{} } +func (m *GetOAuthUserResponse) String() string { return proto.CompactTextString(m) } +func (*GetOAuthUserResponse) ProtoMessage() {} +func (*GetOAuthUserResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_user_service_faa685423dd20b0a, []int{6} +} +func (m *GetOAuthUserResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetOAuthUserResponse.Unmarshal(m, b) +} +func (m *GetOAuthUserResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetOAuthUserResponse.Marshal(b, m, deterministic) +} +func (dst *GetOAuthUserResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetOAuthUserResponse.Merge(dst, src) +} +func (m *GetOAuthUserResponse) XXX_Size() int { + return xxx_messageInfo_GetOAuthUserResponse.Size(m) +} +func (m *GetOAuthUserResponse) XXX_DiscardUnknown() { + xxx_messageInfo_GetOAuthUserResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_GetOAuthUserResponse proto.InternalMessageInfo + +const Default_GetOAuthUserResponse_IsAdmin bool = false + +func (m *GetOAuthUserResponse) GetEmail() string { + if m != nil && m.Email != nil { + return *m.Email + } + return "" +} + +func (m *GetOAuthUserResponse) GetUserId() string { + if m != nil && m.UserId != nil { + return *m.UserId + } + return "" +} + +func (m *GetOAuthUserResponse) GetAuthDomain() string { + if m != nil && m.AuthDomain != nil { + return *m.AuthDomain + } + return "" +} + +func (m *GetOAuthUserResponse) GetUserOrganization() string { + if m != nil && m.UserOrganization != nil { + return *m.UserOrganization + } + return "" +} + +func (m *GetOAuthUserResponse) GetIsAdmin() bool { + if m != nil && m.IsAdmin != nil { + return *m.IsAdmin + } + return Default_GetOAuthUserResponse_IsAdmin +} + +func (m *GetOAuthUserResponse) GetClientId() string { + if m != nil && m.ClientId != nil { + return *m.ClientId + } + return "" +} + +func (m *GetOAuthUserResponse) GetScopes() []string { + if m != nil { + return m.Scopes + } + return nil +} + +type CheckOAuthSignatureRequest struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CheckOAuthSignatureRequest) Reset() { *m = CheckOAuthSignatureRequest{} } +func (m *CheckOAuthSignatureRequest) String() string { return proto.CompactTextString(m) } +func (*CheckOAuthSignatureRequest) ProtoMessage() {} +func (*CheckOAuthSignatureRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_user_service_faa685423dd20b0a, []int{7} +} +func (m *CheckOAuthSignatureRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CheckOAuthSignatureRequest.Unmarshal(m, b) +} +func (m *CheckOAuthSignatureRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CheckOAuthSignatureRequest.Marshal(b, m, deterministic) +} +func (dst *CheckOAuthSignatureRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_CheckOAuthSignatureRequest.Merge(dst, src) +} +func (m *CheckOAuthSignatureRequest) XXX_Size() int { + return xxx_messageInfo_CheckOAuthSignatureRequest.Size(m) +} +func (m *CheckOAuthSignatureRequest) XXX_DiscardUnknown() { + xxx_messageInfo_CheckOAuthSignatureRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_CheckOAuthSignatureRequest proto.InternalMessageInfo + +type CheckOAuthSignatureResponse struct { + OauthConsumerKey *string `protobuf:"bytes,1,req,name=oauth_consumer_key,json=oauthConsumerKey" json:"oauth_consumer_key,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CheckOAuthSignatureResponse) Reset() { *m = CheckOAuthSignatureResponse{} } +func (m *CheckOAuthSignatureResponse) String() string { return proto.CompactTextString(m) } +func (*CheckOAuthSignatureResponse) ProtoMessage() {} +func (*CheckOAuthSignatureResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_user_service_faa685423dd20b0a, []int{8} +} +func (m *CheckOAuthSignatureResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CheckOAuthSignatureResponse.Unmarshal(m, b) +} +func (m *CheckOAuthSignatureResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CheckOAuthSignatureResponse.Marshal(b, m, deterministic) +} +func (dst *CheckOAuthSignatureResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_CheckOAuthSignatureResponse.Merge(dst, src) +} +func (m *CheckOAuthSignatureResponse) XXX_Size() int { + return xxx_messageInfo_CheckOAuthSignatureResponse.Size(m) +} +func (m *CheckOAuthSignatureResponse) XXX_DiscardUnknown() { + xxx_messageInfo_CheckOAuthSignatureResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_CheckOAuthSignatureResponse proto.InternalMessageInfo + +func (m *CheckOAuthSignatureResponse) GetOauthConsumerKey() string { + if m != nil && m.OauthConsumerKey != nil { + return *m.OauthConsumerKey + } + return "" +} + +func init() { + proto.RegisterType((*UserServiceError)(nil), "appengine.UserServiceError") + proto.RegisterType((*CreateLoginURLRequest)(nil), "appengine.CreateLoginURLRequest") + proto.RegisterType((*CreateLoginURLResponse)(nil), "appengine.CreateLoginURLResponse") + proto.RegisterType((*CreateLogoutURLRequest)(nil), "appengine.CreateLogoutURLRequest") + proto.RegisterType((*CreateLogoutURLResponse)(nil), "appengine.CreateLogoutURLResponse") + proto.RegisterType((*GetOAuthUserRequest)(nil), "appengine.GetOAuthUserRequest") + proto.RegisterType((*GetOAuthUserResponse)(nil), "appengine.GetOAuthUserResponse") + proto.RegisterType((*CheckOAuthSignatureRequest)(nil), "appengine.CheckOAuthSignatureRequest") + proto.RegisterType((*CheckOAuthSignatureResponse)(nil), "appengine.CheckOAuthSignatureResponse") +} + +func init() { + proto.RegisterFile("google.golang.org/appengine/internal/user/user_service.proto", fileDescriptor_user_service_faa685423dd20b0a) +} + +var fileDescriptor_user_service_faa685423dd20b0a = []byte{ + // 573 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x52, 0x4d, 0x6f, 0xdb, 0x38, + 0x10, 0x8d, 0xec, 0xd8, 0xb1, 0x26, 0xc0, 0x46, 0x61, 0xbe, 0xb4, 0x9b, 0x0d, 0xd6, 0xd0, 0x65, + 0x7d, 0x68, 0xe3, 0x53, 0x81, 0x22, 0xe8, 0xc5, 0xb5, 0x85, 0xd4, 0xb0, 0x60, 0xa1, 0x8c, 0xd5, + 0x02, 0xbd, 0x08, 0xac, 0x35, 0x51, 0x88, 0xc8, 0xa4, 0x4b, 0x52, 0x05, 0xd2, 0x73, 0x7f, 0x41, + 0x6f, 0xfd, 0x93, 0xfd, 0x0d, 0x85, 0x68, 0x25, 0x50, 0xd2, 0x5e, 0x7b, 0x11, 0x34, 0xef, 0x0d, + 0xdf, 0xbc, 0x37, 0x24, 0xbc, 0xca, 0xa5, 0xcc, 0x0b, 0x3c, 0xcf, 0x65, 0xc1, 0x44, 0x7e, 0x2e, + 0x55, 0x3e, 0x64, 0xeb, 0x35, 0x8a, 0x9c, 0x0b, 0x1c, 0x72, 0x61, 0x50, 0x09, 0x56, 0x0c, 0x4b, + 0x8d, 0xca, 0x7e, 0x52, 0x8d, 0xea, 0x33, 0x5f, 0xe2, 0xf9, 0x5a, 0x49, 0x23, 0x89, 0xfb, 0xd0, + 0x1b, 0x7c, 0x77, 0xc0, 0x4b, 0x34, 0xaa, 0xab, 0x4d, 0x43, 0xa8, 0x94, 0x54, 0xc1, 0x57, 0x07, + 0x5c, 0xfb, 0x37, 0x96, 0x19, 0x92, 0x2e, 0xb4, 0xe2, 0x99, 0xb7, 0x45, 0xfe, 0x86, 0x23, 0x1a, + 0x4e, 0xa6, 0x34, 0x1c, 0x2f, 0xd2, 0x84, 0x46, 0xe9, 0x22, 0x8e, 0xd3, 0x28, 0x9e, 0x5f, 0x7a, + 0x0e, 0xd9, 0x83, 0xdd, 0x79, 0xbc, 0x48, 0x47, 0x51, 0x14, 0xbf, 0x0f, 0x27, 0x5e, 0x8b, 0x9c, + 0xc0, 0x41, 0x3c, 0x4a, 0x16, 0x6f, 0xd2, 0xe9, 0xfc, 0xdd, 0x28, 0x9a, 0x4e, 0xd2, 0x45, 0x3c, + 0x0b, 0xe7, 0x5e, 0xbb, 0x12, 0x79, 0x4c, 0xd0, 0xf0, 0x6d, 0x12, 0x5e, 0x2d, 0xbc, 0xed, 0x4a, + 0x64, 0x43, 0x85, 0x94, 0xc6, 0xd4, 0xeb, 0x04, 0xdf, 0x1c, 0x38, 0x1a, 0x2b, 0x64, 0x06, 0x23, + 0x99, 0x73, 0x91, 0xd0, 0x88, 0xe2, 0xa7, 0x12, 0xb5, 0x21, 0xff, 0xc3, 0x5e, 0x86, 0xda, 0x70, + 0xc1, 0x0c, 0x97, 0x22, 0x2d, 0x55, 0xe1, 0x3b, 0xfd, 0xd6, 0xc0, 0xa5, 0x7f, 0x35, 0xe0, 0x44, + 0x15, 0xe4, 0x3f, 0xd8, 0x65, 0xa5, 0xb9, 0x49, 0x33, 0xb9, 0x62, 0x5c, 0xf8, 0xad, 0xbe, 0x33, + 0x70, 0x29, 0x54, 0xd0, 0xc4, 0x22, 0x64, 0x08, 0xe4, 0x1a, 0x33, 0x54, 0xcc, 0x60, 0x96, 0xf2, + 0x0c, 0x85, 0xe1, 0xe6, 0xce, 0x6f, 0x57, 0x7d, 0x17, 0x5b, 0x74, 0xff, 0x81, 0x9b, 0xd6, 0x54, + 0xf0, 0x02, 0x8e, 0x9f, 0x7a, 0xd2, 0x6b, 0x29, 0x34, 0x92, 0x53, 0x70, 0x8b, 0x0a, 0x6b, 0xd8, + 0xe9, 0x59, 0x20, 0x51, 0x45, 0xf0, 0xb1, 0x71, 0x4c, 0x96, 0xe6, 0x4f, 0x64, 0x09, 0x5e, 0xc2, + 0xc9, 0x2f, 0x33, 0x6a, 0x6f, 0x67, 0x00, 0x85, 0x05, 0x1b, 0xfa, 0xee, 0x06, 0xa9, 0xdc, 0x8d, + 0xe1, 0xe0, 0x12, 0x4d, 0x3c, 0x2a, 0xcd, 0x4d, 0xf5, 0x18, 0xee, 0xad, 0x1d, 0x42, 0x47, 0x2f, + 0xe5, 0x1a, 0x7d, 0xc7, 0xce, 0xda, 0x14, 0xe4, 0x18, 0xba, 0xf6, 0x47, 0xfb, 0xad, 0x7e, 0x7b, + 0xe0, 0xd2, 0xba, 0x0a, 0x7e, 0x38, 0x70, 0xf8, 0x58, 0xa5, 0x1e, 0x7e, 0x08, 0x1d, 0x5c, 0x31, + 0x7e, 0x3f, 0x77, 0x53, 0x90, 0x13, 0xd8, 0xb1, 0x4f, 0x93, 0x67, 0x7e, 0xcb, 0xe2, 0xdd, 0xaa, + 0x9c, 0x66, 0x4f, 0x73, 0xb6, 0x2d, 0xd9, 0xbc, 0xb3, 0xe7, 0xb0, 0x6f, 0x4f, 0x4a, 0x95, 0x33, + 0xc1, 0xbf, 0xd8, 0x05, 0xf9, 0xdb, 0xf5, 0x95, 0x79, 0x15, 0x15, 0x37, 0x18, 0xd2, 0x87, 0x1e, + 0xd7, 0x29, 0xcb, 0x56, 0x5c, 0xf8, 0x9d, 0xbe, 0x33, 0xe8, 0x5d, 0x74, 0xae, 0x59, 0xa1, 0x91, + 0xee, 0x70, 0x3d, 0xaa, 0x50, 0x72, 0x06, 0xee, 0xb2, 0xe0, 0x28, 0x4c, 0x65, 0xa6, 0x5b, 0x0b, + 0xf5, 0x36, 0xd0, 0x34, 0x6b, 0x04, 0xde, 0x79, 0x14, 0xf8, 0x5f, 0xf8, 0x67, 0x7c, 0x83, 0xcb, + 0x5b, 0x9b, 0xf8, 0x8a, 0xe7, 0x82, 0x99, 0x52, 0x61, 0xbd, 0xbc, 0x60, 0x06, 0xa7, 0xbf, 0x65, + 0xeb, 0xa5, 0x3c, 0x03, 0x22, 0x6d, 0xcc, 0xa5, 0x14, 0xba, 0x5c, 0xa1, 0x4a, 0x6f, 0xf1, 0xae, + 0xde, 0x90, 0x67, 0x99, 0x71, 0x4d, 0xcc, 0xf0, 0xee, 0x75, 0xf7, 0xc3, 0x76, 0x95, 0xeb, 0x67, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x58, 0x04, 0x53, 0xcc, 0xf8, 0x03, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/appengine/internal/user/user_service.proto b/vendor/google.golang.org/appengine/internal/user/user_service.proto new file mode 100644 index 000000000..f3e969346 --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/user/user_service.proto @@ -0,0 +1,58 @@ +syntax = "proto2"; +option go_package = "user"; + +package appengine; + +message UserServiceError { + enum ErrorCode { + OK = 0; + REDIRECT_URL_TOO_LONG = 1; + NOT_ALLOWED = 2; + OAUTH_INVALID_TOKEN = 3; + OAUTH_INVALID_REQUEST = 4; + OAUTH_ERROR = 5; + } +} + +message CreateLoginURLRequest { + required string destination_url = 1; + optional string auth_domain = 2; + optional string federated_identity = 3 [default = ""]; +} + +message CreateLoginURLResponse { + required string login_url = 1; +} + +message CreateLogoutURLRequest { + required string destination_url = 1; + optional string auth_domain = 2; +} + +message CreateLogoutURLResponse { + required string logout_url = 1; +} + +message GetOAuthUserRequest { + optional string scope = 1; + + repeated string scopes = 2; +} + +message GetOAuthUserResponse { + required string email = 1; + required string user_id = 2; + required string auth_domain = 3; + optional string user_organization = 4 [default = ""]; + optional bool is_admin = 5 [default = false]; + optional string client_id = 6 [default = ""]; + + repeated string scopes = 7; +} + +message CheckOAuthSignatureRequest { +} + +message CheckOAuthSignatureResponse { + required string oauth_consumer_key = 1; +} diff --git a/vendor/google.golang.org/appengine/internal/xmpp/xmpp_service.pb.go b/vendor/google.golang.org/appengine/internal/xmpp/xmpp_service.pb.go new file mode 100644 index 000000000..a35e9b418 --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/xmpp/xmpp_service.pb.go @@ -0,0 +1,726 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google.golang.org/appengine/internal/xmpp/xmpp_service.proto + +package xmpp + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +type XmppServiceError_ErrorCode int32 + +const ( + XmppServiceError_UNSPECIFIED_ERROR XmppServiceError_ErrorCode = 1 + XmppServiceError_INVALID_JID XmppServiceError_ErrorCode = 2 + XmppServiceError_NO_BODY XmppServiceError_ErrorCode = 3 + XmppServiceError_INVALID_XML XmppServiceError_ErrorCode = 4 + XmppServiceError_INVALID_TYPE XmppServiceError_ErrorCode = 5 + XmppServiceError_INVALID_SHOW XmppServiceError_ErrorCode = 6 + XmppServiceError_EXCEEDED_MAX_SIZE XmppServiceError_ErrorCode = 7 + XmppServiceError_APPID_ALIAS_REQUIRED XmppServiceError_ErrorCode = 8 + XmppServiceError_NONDEFAULT_MODULE XmppServiceError_ErrorCode = 9 +) + +var XmppServiceError_ErrorCode_name = map[int32]string{ + 1: "UNSPECIFIED_ERROR", + 2: "INVALID_JID", + 3: "NO_BODY", + 4: "INVALID_XML", + 5: "INVALID_TYPE", + 6: "INVALID_SHOW", + 7: "EXCEEDED_MAX_SIZE", + 8: "APPID_ALIAS_REQUIRED", + 9: "NONDEFAULT_MODULE", +} +var XmppServiceError_ErrorCode_value = map[string]int32{ + "UNSPECIFIED_ERROR": 1, + "INVALID_JID": 2, + "NO_BODY": 3, + "INVALID_XML": 4, + "INVALID_TYPE": 5, + "INVALID_SHOW": 6, + "EXCEEDED_MAX_SIZE": 7, + "APPID_ALIAS_REQUIRED": 8, + "NONDEFAULT_MODULE": 9, +} + +func (x XmppServiceError_ErrorCode) Enum() *XmppServiceError_ErrorCode { + p := new(XmppServiceError_ErrorCode) + *p = x + return p +} +func (x XmppServiceError_ErrorCode) String() string { + return proto.EnumName(XmppServiceError_ErrorCode_name, int32(x)) +} +func (x *XmppServiceError_ErrorCode) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(XmppServiceError_ErrorCode_value, data, "XmppServiceError_ErrorCode") + if err != nil { + return err + } + *x = XmppServiceError_ErrorCode(value) + return nil +} +func (XmppServiceError_ErrorCode) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_xmpp_service_628da92437bed65f, []int{0, 0} +} + +type PresenceResponse_SHOW int32 + +const ( + PresenceResponse_NORMAL PresenceResponse_SHOW = 0 + PresenceResponse_AWAY PresenceResponse_SHOW = 1 + PresenceResponse_DO_NOT_DISTURB PresenceResponse_SHOW = 2 + PresenceResponse_CHAT PresenceResponse_SHOW = 3 + PresenceResponse_EXTENDED_AWAY PresenceResponse_SHOW = 4 +) + +var PresenceResponse_SHOW_name = map[int32]string{ + 0: "NORMAL", + 1: "AWAY", + 2: "DO_NOT_DISTURB", + 3: "CHAT", + 4: "EXTENDED_AWAY", +} +var PresenceResponse_SHOW_value = map[string]int32{ + "NORMAL": 0, + "AWAY": 1, + "DO_NOT_DISTURB": 2, + "CHAT": 3, + "EXTENDED_AWAY": 4, +} + +func (x PresenceResponse_SHOW) Enum() *PresenceResponse_SHOW { + p := new(PresenceResponse_SHOW) + *p = x + return p +} +func (x PresenceResponse_SHOW) String() string { + return proto.EnumName(PresenceResponse_SHOW_name, int32(x)) +} +func (x *PresenceResponse_SHOW) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(PresenceResponse_SHOW_value, data, "PresenceResponse_SHOW") + if err != nil { + return err + } + *x = PresenceResponse_SHOW(value) + return nil +} +func (PresenceResponse_SHOW) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_xmpp_service_628da92437bed65f, []int{2, 0} +} + +type XmppMessageResponse_XmppMessageStatus int32 + +const ( + XmppMessageResponse_NO_ERROR XmppMessageResponse_XmppMessageStatus = 0 + XmppMessageResponse_INVALID_JID XmppMessageResponse_XmppMessageStatus = 1 + XmppMessageResponse_OTHER_ERROR XmppMessageResponse_XmppMessageStatus = 2 +) + +var XmppMessageResponse_XmppMessageStatus_name = map[int32]string{ + 0: "NO_ERROR", + 1: "INVALID_JID", + 2: "OTHER_ERROR", +} +var XmppMessageResponse_XmppMessageStatus_value = map[string]int32{ + "NO_ERROR": 0, + "INVALID_JID": 1, + "OTHER_ERROR": 2, +} + +func (x XmppMessageResponse_XmppMessageStatus) Enum() *XmppMessageResponse_XmppMessageStatus { + p := new(XmppMessageResponse_XmppMessageStatus) + *p = x + return p +} +func (x XmppMessageResponse_XmppMessageStatus) String() string { + return proto.EnumName(XmppMessageResponse_XmppMessageStatus_name, int32(x)) +} +func (x *XmppMessageResponse_XmppMessageStatus) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(XmppMessageResponse_XmppMessageStatus_value, data, "XmppMessageResponse_XmppMessageStatus") + if err != nil { + return err + } + *x = XmppMessageResponse_XmppMessageStatus(value) + return nil +} +func (XmppMessageResponse_XmppMessageStatus) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_xmpp_service_628da92437bed65f, []int{6, 0} +} + +type XmppServiceError struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *XmppServiceError) Reset() { *m = XmppServiceError{} } +func (m *XmppServiceError) String() string { return proto.CompactTextString(m) } +func (*XmppServiceError) ProtoMessage() {} +func (*XmppServiceError) Descriptor() ([]byte, []int) { + return fileDescriptor_xmpp_service_628da92437bed65f, []int{0} +} +func (m *XmppServiceError) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_XmppServiceError.Unmarshal(m, b) +} +func (m *XmppServiceError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_XmppServiceError.Marshal(b, m, deterministic) +} +func (dst *XmppServiceError) XXX_Merge(src proto.Message) { + xxx_messageInfo_XmppServiceError.Merge(dst, src) +} +func (m *XmppServiceError) XXX_Size() int { + return xxx_messageInfo_XmppServiceError.Size(m) +} +func (m *XmppServiceError) XXX_DiscardUnknown() { + xxx_messageInfo_XmppServiceError.DiscardUnknown(m) +} + +var xxx_messageInfo_XmppServiceError proto.InternalMessageInfo + +type PresenceRequest struct { + Jid *string `protobuf:"bytes,1,req,name=jid" json:"jid,omitempty"` + FromJid *string `protobuf:"bytes,2,opt,name=from_jid,json=fromJid" json:"from_jid,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PresenceRequest) Reset() { *m = PresenceRequest{} } +func (m *PresenceRequest) String() string { return proto.CompactTextString(m) } +func (*PresenceRequest) ProtoMessage() {} +func (*PresenceRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_xmpp_service_628da92437bed65f, []int{1} +} +func (m *PresenceRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PresenceRequest.Unmarshal(m, b) +} +func (m *PresenceRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PresenceRequest.Marshal(b, m, deterministic) +} +func (dst *PresenceRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_PresenceRequest.Merge(dst, src) +} +func (m *PresenceRequest) XXX_Size() int { + return xxx_messageInfo_PresenceRequest.Size(m) +} +func (m *PresenceRequest) XXX_DiscardUnknown() { + xxx_messageInfo_PresenceRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_PresenceRequest proto.InternalMessageInfo + +func (m *PresenceRequest) GetJid() string { + if m != nil && m.Jid != nil { + return *m.Jid + } + return "" +} + +func (m *PresenceRequest) GetFromJid() string { + if m != nil && m.FromJid != nil { + return *m.FromJid + } + return "" +} + +type PresenceResponse struct { + IsAvailable *bool `protobuf:"varint,1,req,name=is_available,json=isAvailable" json:"is_available,omitempty"` + Presence *PresenceResponse_SHOW `protobuf:"varint,2,opt,name=presence,enum=appengine.PresenceResponse_SHOW" json:"presence,omitempty"` + Valid *bool `protobuf:"varint,3,opt,name=valid" json:"valid,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PresenceResponse) Reset() { *m = PresenceResponse{} } +func (m *PresenceResponse) String() string { return proto.CompactTextString(m) } +func (*PresenceResponse) ProtoMessage() {} +func (*PresenceResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_xmpp_service_628da92437bed65f, []int{2} +} +func (m *PresenceResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PresenceResponse.Unmarshal(m, b) +} +func (m *PresenceResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PresenceResponse.Marshal(b, m, deterministic) +} +func (dst *PresenceResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_PresenceResponse.Merge(dst, src) +} +func (m *PresenceResponse) XXX_Size() int { + return xxx_messageInfo_PresenceResponse.Size(m) +} +func (m *PresenceResponse) XXX_DiscardUnknown() { + xxx_messageInfo_PresenceResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_PresenceResponse proto.InternalMessageInfo + +func (m *PresenceResponse) GetIsAvailable() bool { + if m != nil && m.IsAvailable != nil { + return *m.IsAvailable + } + return false +} + +func (m *PresenceResponse) GetPresence() PresenceResponse_SHOW { + if m != nil && m.Presence != nil { + return *m.Presence + } + return PresenceResponse_NORMAL +} + +func (m *PresenceResponse) GetValid() bool { + if m != nil && m.Valid != nil { + return *m.Valid + } + return false +} + +type BulkPresenceRequest struct { + Jid []string `protobuf:"bytes,1,rep,name=jid" json:"jid,omitempty"` + FromJid *string `protobuf:"bytes,2,opt,name=from_jid,json=fromJid" json:"from_jid,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BulkPresenceRequest) Reset() { *m = BulkPresenceRequest{} } +func (m *BulkPresenceRequest) String() string { return proto.CompactTextString(m) } +func (*BulkPresenceRequest) ProtoMessage() {} +func (*BulkPresenceRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_xmpp_service_628da92437bed65f, []int{3} +} +func (m *BulkPresenceRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BulkPresenceRequest.Unmarshal(m, b) +} +func (m *BulkPresenceRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BulkPresenceRequest.Marshal(b, m, deterministic) +} +func (dst *BulkPresenceRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_BulkPresenceRequest.Merge(dst, src) +} +func (m *BulkPresenceRequest) XXX_Size() int { + return xxx_messageInfo_BulkPresenceRequest.Size(m) +} +func (m *BulkPresenceRequest) XXX_DiscardUnknown() { + xxx_messageInfo_BulkPresenceRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_BulkPresenceRequest proto.InternalMessageInfo + +func (m *BulkPresenceRequest) GetJid() []string { + if m != nil { + return m.Jid + } + return nil +} + +func (m *BulkPresenceRequest) GetFromJid() string { + if m != nil && m.FromJid != nil { + return *m.FromJid + } + return "" +} + +type BulkPresenceResponse struct { + PresenceResponse []*PresenceResponse `protobuf:"bytes,1,rep,name=presence_response,json=presenceResponse" json:"presence_response,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BulkPresenceResponse) Reset() { *m = BulkPresenceResponse{} } +func (m *BulkPresenceResponse) String() string { return proto.CompactTextString(m) } +func (*BulkPresenceResponse) ProtoMessage() {} +func (*BulkPresenceResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_xmpp_service_628da92437bed65f, []int{4} +} +func (m *BulkPresenceResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BulkPresenceResponse.Unmarshal(m, b) +} +func (m *BulkPresenceResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BulkPresenceResponse.Marshal(b, m, deterministic) +} +func (dst *BulkPresenceResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_BulkPresenceResponse.Merge(dst, src) +} +func (m *BulkPresenceResponse) XXX_Size() int { + return xxx_messageInfo_BulkPresenceResponse.Size(m) +} +func (m *BulkPresenceResponse) XXX_DiscardUnknown() { + xxx_messageInfo_BulkPresenceResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_BulkPresenceResponse proto.InternalMessageInfo + +func (m *BulkPresenceResponse) GetPresenceResponse() []*PresenceResponse { + if m != nil { + return m.PresenceResponse + } + return nil +} + +type XmppMessageRequest struct { + Jid []string `protobuf:"bytes,1,rep,name=jid" json:"jid,omitempty"` + Body *string `protobuf:"bytes,2,req,name=body" json:"body,omitempty"` + RawXml *bool `protobuf:"varint,3,opt,name=raw_xml,json=rawXml,def=0" json:"raw_xml,omitempty"` + Type *string `protobuf:"bytes,4,opt,name=type,def=chat" json:"type,omitempty"` + FromJid *string `protobuf:"bytes,5,opt,name=from_jid,json=fromJid" json:"from_jid,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *XmppMessageRequest) Reset() { *m = XmppMessageRequest{} } +func (m *XmppMessageRequest) String() string { return proto.CompactTextString(m) } +func (*XmppMessageRequest) ProtoMessage() {} +func (*XmppMessageRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_xmpp_service_628da92437bed65f, []int{5} +} +func (m *XmppMessageRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_XmppMessageRequest.Unmarshal(m, b) +} +func (m *XmppMessageRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_XmppMessageRequest.Marshal(b, m, deterministic) +} +func (dst *XmppMessageRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_XmppMessageRequest.Merge(dst, src) +} +func (m *XmppMessageRequest) XXX_Size() int { + return xxx_messageInfo_XmppMessageRequest.Size(m) +} +func (m *XmppMessageRequest) XXX_DiscardUnknown() { + xxx_messageInfo_XmppMessageRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_XmppMessageRequest proto.InternalMessageInfo + +const Default_XmppMessageRequest_RawXml bool = false +const Default_XmppMessageRequest_Type string = "chat" + +func (m *XmppMessageRequest) GetJid() []string { + if m != nil { + return m.Jid + } + return nil +} + +func (m *XmppMessageRequest) GetBody() string { + if m != nil && m.Body != nil { + return *m.Body + } + return "" +} + +func (m *XmppMessageRequest) GetRawXml() bool { + if m != nil && m.RawXml != nil { + return *m.RawXml + } + return Default_XmppMessageRequest_RawXml +} + +func (m *XmppMessageRequest) GetType() string { + if m != nil && m.Type != nil { + return *m.Type + } + return Default_XmppMessageRequest_Type +} + +func (m *XmppMessageRequest) GetFromJid() string { + if m != nil && m.FromJid != nil { + return *m.FromJid + } + return "" +} + +type XmppMessageResponse struct { + Status []XmppMessageResponse_XmppMessageStatus `protobuf:"varint,1,rep,name=status,enum=appengine.XmppMessageResponse_XmppMessageStatus" json:"status,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *XmppMessageResponse) Reset() { *m = XmppMessageResponse{} } +func (m *XmppMessageResponse) String() string { return proto.CompactTextString(m) } +func (*XmppMessageResponse) ProtoMessage() {} +func (*XmppMessageResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_xmpp_service_628da92437bed65f, []int{6} +} +func (m *XmppMessageResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_XmppMessageResponse.Unmarshal(m, b) +} +func (m *XmppMessageResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_XmppMessageResponse.Marshal(b, m, deterministic) +} +func (dst *XmppMessageResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_XmppMessageResponse.Merge(dst, src) +} +func (m *XmppMessageResponse) XXX_Size() int { + return xxx_messageInfo_XmppMessageResponse.Size(m) +} +func (m *XmppMessageResponse) XXX_DiscardUnknown() { + xxx_messageInfo_XmppMessageResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_XmppMessageResponse proto.InternalMessageInfo + +func (m *XmppMessageResponse) GetStatus() []XmppMessageResponse_XmppMessageStatus { + if m != nil { + return m.Status + } + return nil +} + +type XmppSendPresenceRequest struct { + Jid *string `protobuf:"bytes,1,req,name=jid" json:"jid,omitempty"` + Type *string `protobuf:"bytes,2,opt,name=type" json:"type,omitempty"` + Show *string `protobuf:"bytes,3,opt,name=show" json:"show,omitempty"` + Status *string `protobuf:"bytes,4,opt,name=status" json:"status,omitempty"` + FromJid *string `protobuf:"bytes,5,opt,name=from_jid,json=fromJid" json:"from_jid,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *XmppSendPresenceRequest) Reset() { *m = XmppSendPresenceRequest{} } +func (m *XmppSendPresenceRequest) String() string { return proto.CompactTextString(m) } +func (*XmppSendPresenceRequest) ProtoMessage() {} +func (*XmppSendPresenceRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_xmpp_service_628da92437bed65f, []int{7} +} +func (m *XmppSendPresenceRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_XmppSendPresenceRequest.Unmarshal(m, b) +} +func (m *XmppSendPresenceRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_XmppSendPresenceRequest.Marshal(b, m, deterministic) +} +func (dst *XmppSendPresenceRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_XmppSendPresenceRequest.Merge(dst, src) +} +func (m *XmppSendPresenceRequest) XXX_Size() int { + return xxx_messageInfo_XmppSendPresenceRequest.Size(m) +} +func (m *XmppSendPresenceRequest) XXX_DiscardUnknown() { + xxx_messageInfo_XmppSendPresenceRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_XmppSendPresenceRequest proto.InternalMessageInfo + +func (m *XmppSendPresenceRequest) GetJid() string { + if m != nil && m.Jid != nil { + return *m.Jid + } + return "" +} + +func (m *XmppSendPresenceRequest) GetType() string { + if m != nil && m.Type != nil { + return *m.Type + } + return "" +} + +func (m *XmppSendPresenceRequest) GetShow() string { + if m != nil && m.Show != nil { + return *m.Show + } + return "" +} + +func (m *XmppSendPresenceRequest) GetStatus() string { + if m != nil && m.Status != nil { + return *m.Status + } + return "" +} + +func (m *XmppSendPresenceRequest) GetFromJid() string { + if m != nil && m.FromJid != nil { + return *m.FromJid + } + return "" +} + +type XmppSendPresenceResponse struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *XmppSendPresenceResponse) Reset() { *m = XmppSendPresenceResponse{} } +func (m *XmppSendPresenceResponse) String() string { return proto.CompactTextString(m) } +func (*XmppSendPresenceResponse) ProtoMessage() {} +func (*XmppSendPresenceResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_xmpp_service_628da92437bed65f, []int{8} +} +func (m *XmppSendPresenceResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_XmppSendPresenceResponse.Unmarshal(m, b) +} +func (m *XmppSendPresenceResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_XmppSendPresenceResponse.Marshal(b, m, deterministic) +} +func (dst *XmppSendPresenceResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_XmppSendPresenceResponse.Merge(dst, src) +} +func (m *XmppSendPresenceResponse) XXX_Size() int { + return xxx_messageInfo_XmppSendPresenceResponse.Size(m) +} +func (m *XmppSendPresenceResponse) XXX_DiscardUnknown() { + xxx_messageInfo_XmppSendPresenceResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_XmppSendPresenceResponse proto.InternalMessageInfo + +type XmppInviteRequest struct { + Jid *string `protobuf:"bytes,1,req,name=jid" json:"jid,omitempty"` + FromJid *string `protobuf:"bytes,2,opt,name=from_jid,json=fromJid" json:"from_jid,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *XmppInviteRequest) Reset() { *m = XmppInviteRequest{} } +func (m *XmppInviteRequest) String() string { return proto.CompactTextString(m) } +func (*XmppInviteRequest) ProtoMessage() {} +func (*XmppInviteRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_xmpp_service_628da92437bed65f, []int{9} +} +func (m *XmppInviteRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_XmppInviteRequest.Unmarshal(m, b) +} +func (m *XmppInviteRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_XmppInviteRequest.Marshal(b, m, deterministic) +} +func (dst *XmppInviteRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_XmppInviteRequest.Merge(dst, src) +} +func (m *XmppInviteRequest) XXX_Size() int { + return xxx_messageInfo_XmppInviteRequest.Size(m) +} +func (m *XmppInviteRequest) XXX_DiscardUnknown() { + xxx_messageInfo_XmppInviteRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_XmppInviteRequest proto.InternalMessageInfo + +func (m *XmppInviteRequest) GetJid() string { + if m != nil && m.Jid != nil { + return *m.Jid + } + return "" +} + +func (m *XmppInviteRequest) GetFromJid() string { + if m != nil && m.FromJid != nil { + return *m.FromJid + } + return "" +} + +type XmppInviteResponse struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *XmppInviteResponse) Reset() { *m = XmppInviteResponse{} } +func (m *XmppInviteResponse) String() string { return proto.CompactTextString(m) } +func (*XmppInviteResponse) ProtoMessage() {} +func (*XmppInviteResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_xmpp_service_628da92437bed65f, []int{10} +} +func (m *XmppInviteResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_XmppInviteResponse.Unmarshal(m, b) +} +func (m *XmppInviteResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_XmppInviteResponse.Marshal(b, m, deterministic) +} +func (dst *XmppInviteResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_XmppInviteResponse.Merge(dst, src) +} +func (m *XmppInviteResponse) XXX_Size() int { + return xxx_messageInfo_XmppInviteResponse.Size(m) +} +func (m *XmppInviteResponse) XXX_DiscardUnknown() { + xxx_messageInfo_XmppInviteResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_XmppInviteResponse proto.InternalMessageInfo + +func init() { + proto.RegisterType((*XmppServiceError)(nil), "appengine.XmppServiceError") + proto.RegisterType((*PresenceRequest)(nil), "appengine.PresenceRequest") + proto.RegisterType((*PresenceResponse)(nil), "appengine.PresenceResponse") + proto.RegisterType((*BulkPresenceRequest)(nil), "appengine.BulkPresenceRequest") + proto.RegisterType((*BulkPresenceResponse)(nil), "appengine.BulkPresenceResponse") + proto.RegisterType((*XmppMessageRequest)(nil), "appengine.XmppMessageRequest") + proto.RegisterType((*XmppMessageResponse)(nil), "appengine.XmppMessageResponse") + proto.RegisterType((*XmppSendPresenceRequest)(nil), "appengine.XmppSendPresenceRequest") + proto.RegisterType((*XmppSendPresenceResponse)(nil), "appengine.XmppSendPresenceResponse") + proto.RegisterType((*XmppInviteRequest)(nil), "appengine.XmppInviteRequest") + proto.RegisterType((*XmppInviteResponse)(nil), "appengine.XmppInviteResponse") +} + +func init() { + proto.RegisterFile("google.golang.org/appengine/internal/xmpp/xmpp_service.proto", fileDescriptor_xmpp_service_628da92437bed65f) +} + +var fileDescriptor_xmpp_service_628da92437bed65f = []byte{ + // 681 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x54, 0xcd, 0x72, 0xda, 0x48, + 0x10, 0xb6, 0x40, 0xfc, 0x35, 0x5e, 0x7b, 0x18, 0xb3, 0xbb, 0xec, 0xa6, 0x2a, 0x45, 0x74, 0xf2, + 0x09, 0xa7, 0x7c, 0x74, 0xb9, 0x52, 0x11, 0x68, 0x5c, 0xc8, 0x05, 0x12, 0x19, 0x20, 0xc6, 0xbe, + 0x4c, 0x64, 0x33, 0x96, 0x95, 0x08, 0x49, 0x91, 0x64, 0x6c, 0xbf, 0x40, 0xae, 0x79, 0x89, 0xbc, + 0x46, 0x5e, 0x22, 0xa7, 0x3c, 0x4e, 0x4a, 0x23, 0x41, 0xc0, 0x4e, 0x9c, 0x54, 0x2e, 0x54, 0xcf, + 0x37, 0xdd, 0x1f, 0xfd, 0x7d, 0x3d, 0x2d, 0x38, 0xb4, 0x7d, 0xdf, 0x76, 0x79, 0xcb, 0xf6, 0x5d, + 0xcb, 0xb3, 0x5b, 0x7e, 0x68, 0xef, 0x59, 0x41, 0xc0, 0x3d, 0xdb, 0xf1, 0xf8, 0x9e, 0xe3, 0xc5, + 0x3c, 0xf4, 0x2c, 0x77, 0xef, 0x76, 0x16, 0x04, 0xe2, 0x87, 0x45, 0x3c, 0x9c, 0x3b, 0x17, 0xbc, + 0x15, 0x84, 0x7e, 0xec, 0xe3, 0xca, 0x32, 0x57, 0xf9, 0x22, 0x01, 0x9a, 0xcc, 0x82, 0x60, 0x98, + 0x26, 0x90, 0x30, 0xf4, 0x43, 0xe5, 0xb3, 0x04, 0x15, 0x11, 0x75, 0xfc, 0x29, 0xc7, 0x7f, 0x43, + 0x6d, 0x6c, 0x0c, 0x07, 0xa4, 0xa3, 0x1f, 0xe9, 0x44, 0x63, 0x84, 0x52, 0x93, 0x22, 0x09, 0x6f, + 0x43, 0x55, 0x37, 0x5e, 0xab, 0x3d, 0x5d, 0x63, 0xc7, 0xba, 0x86, 0x72, 0xb8, 0x0a, 0x25, 0xc3, + 0x64, 0x6d, 0x53, 0x3b, 0x45, 0xf9, 0xd5, 0xdb, 0x49, 0xbf, 0x87, 0x64, 0x8c, 0x60, 0x73, 0x01, + 0x8c, 0x4e, 0x07, 0x04, 0x15, 0x56, 0x91, 0x61, 0xd7, 0x3c, 0x41, 0xc5, 0xe4, 0x9f, 0xc8, 0xa4, + 0x43, 0x88, 0x46, 0x34, 0xd6, 0x57, 0x27, 0x6c, 0xa8, 0x9f, 0x11, 0x54, 0xc2, 0x0d, 0xa8, 0xab, + 0x83, 0x81, 0xae, 0x31, 0xb5, 0xa7, 0xab, 0x43, 0x46, 0xc9, 0xab, 0xb1, 0x4e, 0x89, 0x86, 0xca, + 0x49, 0x81, 0x61, 0x1a, 0x1a, 0x39, 0x52, 0xc7, 0xbd, 0x11, 0xeb, 0x9b, 0xda, 0xb8, 0x47, 0x50, + 0x45, 0x79, 0x01, 0xdb, 0x83, 0x90, 0x47, 0xdc, 0xbb, 0xe0, 0x94, 0xbf, 0xbf, 0xe6, 0x51, 0x8c, + 0x11, 0xe4, 0xdf, 0x3a, 0xd3, 0x86, 0xd4, 0xcc, 0xed, 0x56, 0x68, 0x12, 0xe2, 0xff, 0xa0, 0x7c, + 0x19, 0xfa, 0x33, 0x96, 0xc0, 0xb9, 0xa6, 0xb4, 0x5b, 0xa1, 0xa5, 0xe4, 0x7c, 0xec, 0x4c, 0x95, + 0xaf, 0x12, 0xa0, 0xef, 0x04, 0x51, 0xe0, 0x7b, 0x11, 0xc7, 0xcf, 0x60, 0xd3, 0x89, 0x98, 0x35, + 0xb7, 0x1c, 0xd7, 0x3a, 0x77, 0xb9, 0xa0, 0x2a, 0xd3, 0xaa, 0x13, 0xa9, 0x0b, 0x08, 0x1f, 0x42, + 0x39, 0xc8, 0xca, 0x04, 0xe5, 0xd6, 0x7e, 0xb3, 0xb5, 0xb4, 0xba, 0x75, 0x9f, 0xb1, 0x95, 0xa8, + 0xa6, 0xcb, 0x0a, 0x5c, 0x87, 0xc2, 0xdc, 0x72, 0x9d, 0x69, 0x23, 0xdf, 0x94, 0x76, 0xcb, 0x34, + 0x3d, 0x28, 0x7d, 0x90, 0x93, 0x3c, 0x0c, 0x50, 0x34, 0x4c, 0xda, 0x57, 0x7b, 0x68, 0x03, 0x97, + 0x41, 0x56, 0x4f, 0xd4, 0x53, 0x24, 0x61, 0x0c, 0x5b, 0x9a, 0xc9, 0x0c, 0x73, 0xc4, 0x34, 0x7d, + 0x38, 0x1a, 0xd3, 0x36, 0xca, 0x25, 0xb7, 0x9d, 0xae, 0x3a, 0x42, 0x79, 0x5c, 0x83, 0xbf, 0xc8, + 0x64, 0x44, 0x8c, 0xc4, 0x4f, 0x51, 0x20, 0x2b, 0x6d, 0xd8, 0x69, 0x5f, 0xbb, 0xef, 0x7e, 0x6a, + 0x4f, 0xfe, 0x37, 0xec, 0x79, 0x03, 0xf5, 0x75, 0x8e, 0xcc, 0xa1, 0x2e, 0xd4, 0x16, 0x62, 0x58, + 0x98, 0x81, 0x82, 0xb2, 0xba, 0xff, 0xe4, 0x11, 0x1f, 0x28, 0x0a, 0xee, 0x21, 0xca, 0x47, 0x09, + 0x70, 0xf2, 0x2a, 0xfb, 0x3c, 0x8a, 0x2c, 0xfb, 0x91, 0x2e, 0x31, 0xc8, 0xe7, 0xfe, 0xf4, 0xae, + 0x91, 0x13, 0x73, 0x15, 0x31, 0x7e, 0x0a, 0xa5, 0xd0, 0xba, 0x61, 0xb7, 0x33, 0x37, 0x75, 0xf2, + 0xa0, 0x70, 0x69, 0xb9, 0x11, 0xa7, 0xc5, 0xd0, 0xba, 0x99, 0xcc, 0x5c, 0xdc, 0x00, 0x39, 0xbe, + 0x0b, 0x78, 0x43, 0x4e, 0x54, 0x1d, 0xc8, 0x17, 0x57, 0x56, 0x4c, 0x05, 0xb2, 0xa6, 0xb9, 0xb0, + 0xae, 0xf9, 0x93, 0x04, 0x3b, 0x6b, 0x1d, 0x2d, 0x35, 0x17, 0xa3, 0xd8, 0x8a, 0xaf, 0x23, 0xd1, + 0xd5, 0xd6, 0xfe, 0xf3, 0x15, 0xa1, 0x3f, 0xc8, 0x5f, 0xc5, 0x86, 0xa2, 0x8e, 0x66, 0xf5, 0x4a, + 0x07, 0x6a, 0x0f, 0x2e, 0xf1, 0x26, 0x94, 0x0d, 0x33, 0x5b, 0xb9, 0x8d, 0xfb, 0x2b, 0x27, 0x76, + 0xd0, 0x1c, 0x75, 0x09, 0xcd, 0x32, 0x72, 0xca, 0x07, 0x09, 0xfe, 0x4d, 0xd7, 0xd9, 0x9b, 0xfe, + 0x7a, 0x05, 0x70, 0xe6, 0x44, 0x3a, 0xdf, 0xd4, 0x03, 0x0c, 0x72, 0x74, 0xe5, 0xdf, 0x08, 0xeb, + 0x2a, 0x54, 0xc4, 0xf8, 0x9f, 0xa5, 0x48, 0xe1, 0xd9, 0xa2, 0xe5, 0xc7, 0xfc, 0xfa, 0x1f, 0x1a, + 0x0f, 0xfb, 0xc8, 0xa6, 0xfb, 0x32, 0x55, 0xaa, 0x7b, 0x73, 0x27, 0xfe, 0xb3, 0x05, 0xad, 0xa7, + 0xcf, 0x63, 0xc1, 0x90, 0xf2, 0xb6, 0x8b, 0x67, 0x72, 0xf2, 0xb1, 0xfb, 0x16, 0x00, 0x00, 0xff, + 0xff, 0x4e, 0x58, 0x2e, 0xb1, 0x1d, 0x05, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/appengine/internal/xmpp/xmpp_service.proto b/vendor/google.golang.org/appengine/internal/xmpp/xmpp_service.proto new file mode 100644 index 000000000..472d52ebf --- /dev/null +++ b/vendor/google.golang.org/appengine/internal/xmpp/xmpp_service.proto @@ -0,0 +1,83 @@ +syntax = "proto2"; +option go_package = "xmpp"; + +package appengine; + +message XmppServiceError { + enum ErrorCode { + UNSPECIFIED_ERROR = 1; + INVALID_JID = 2; + NO_BODY = 3; + INVALID_XML = 4; + INVALID_TYPE = 5; + INVALID_SHOW = 6; + EXCEEDED_MAX_SIZE = 7; + APPID_ALIAS_REQUIRED = 8; + NONDEFAULT_MODULE = 9; + } +} + +message PresenceRequest { + required string jid = 1; + optional string from_jid = 2; +} + +message PresenceResponse { + enum SHOW { + NORMAL = 0; + AWAY = 1; + DO_NOT_DISTURB = 2; + CHAT = 3; + EXTENDED_AWAY = 4; + } + + required bool is_available = 1; + optional SHOW presence = 2; + optional bool valid = 3; +} + +message BulkPresenceRequest { + repeated string jid = 1; + optional string from_jid = 2; +} + +message BulkPresenceResponse { + repeated PresenceResponse presence_response = 1; +} + +message XmppMessageRequest { + repeated string jid = 1; + required string body = 2; + optional bool raw_xml = 3 [ default = false ]; + optional string type = 4 [ default = "chat" ]; + optional string from_jid = 5; +} + +message XmppMessageResponse { + enum XmppMessageStatus { + NO_ERROR = 0; + INVALID_JID = 1; + OTHER_ERROR = 2; + } + + repeated XmppMessageStatus status = 1; +} + +message XmppSendPresenceRequest { + required string jid = 1; + optional string type = 2; + optional string show = 3; + optional string status = 4; + optional string from_jid = 5; +} + +message XmppSendPresenceResponse { +} + +message XmppInviteRequest { + required string jid = 1; + optional string from_jid = 2; +} + +message XmppInviteResponse { +} diff --git a/vendor/google.golang.org/appengine/log/api.go b/vendor/google.golang.org/appengine/log/api.go new file mode 100644 index 000000000..24d58601b --- /dev/null +++ b/vendor/google.golang.org/appengine/log/api.go @@ -0,0 +1,40 @@ +// Copyright 2015 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package log + +// This file implements the logging API. + +import ( + "golang.org/x/net/context" + + "google.golang.org/appengine/internal" +) + +// Debugf formats its arguments according to the format, analogous to fmt.Printf, +// and records the text as a log message at Debug level. The message will be associated +// with the request linked with the provided context. +func Debugf(ctx context.Context, format string, args ...interface{}) { + internal.Logf(ctx, 0, format, args...) +} + +// Infof is like Debugf, but at Info level. +func Infof(ctx context.Context, format string, args ...interface{}) { + internal.Logf(ctx, 1, format, args...) +} + +// Warningf is like Debugf, but at Warning level. +func Warningf(ctx context.Context, format string, args ...interface{}) { + internal.Logf(ctx, 2, format, args...) +} + +// Errorf is like Debugf, but at Error level. +func Errorf(ctx context.Context, format string, args ...interface{}) { + internal.Logf(ctx, 3, format, args...) +} + +// Criticalf is like Debugf, but at Critical level. +func Criticalf(ctx context.Context, format string, args ...interface{}) { + internal.Logf(ctx, 4, format, args...) +} diff --git a/vendor/google.golang.org/appengine/log/log.go b/vendor/google.golang.org/appengine/log/log.go new file mode 100644 index 000000000..731ad8c36 --- /dev/null +++ b/vendor/google.golang.org/appengine/log/log.go @@ -0,0 +1,323 @@ +// Copyright 2011 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +/* +Package log provides the means of writing and querying an application's logs +from within an App Engine application. + +Example: + c := appengine.NewContext(r) + query := &log.Query{ + AppLogs: true, + Versions: []string{"1"}, + } + + for results := query.Run(c); ; { + record, err := results.Next() + if err == log.Done { + log.Infof(c, "Done processing results") + break + } + if err != nil { + log.Errorf(c, "Failed to retrieve next log: %v", err) + break + } + log.Infof(c, "Saw record %v", record) + } +*/ +package log // import "google.golang.org/appengine/log" + +import ( + "errors" + "fmt" + "strings" + "time" + + "github.com/golang/protobuf/proto" + "golang.org/x/net/context" + + "google.golang.org/appengine" + "google.golang.org/appengine/internal" + pb "google.golang.org/appengine/internal/log" +) + +// Query defines a logs query. +type Query struct { + // Start time specifies the earliest log to return (inclusive). + StartTime time.Time + + // End time specifies the latest log to return (exclusive). + EndTime time.Time + + // Offset specifies a position within the log stream to resume reading from, + // and should come from a previously returned Record's field of the same name. + Offset []byte + + // Incomplete controls whether active (incomplete) requests should be included. + Incomplete bool + + // AppLogs indicates if application-level logs should be included. + AppLogs bool + + // ApplyMinLevel indicates if MinLevel should be used to filter results. + ApplyMinLevel bool + + // If ApplyMinLevel is true, only logs for requests with at least one + // application log of MinLevel or higher will be returned. + MinLevel int + + // Versions is the major version IDs whose logs should be retrieved. + // Logs for specific modules can be retrieved by the specifying versions + // in the form "module:version"; the default module is used if no module + // is specified. + Versions []string + + // A list of requests to search for instead of a time-based scan. Cannot be + // combined with filtering options such as StartTime, EndTime, Offset, + // Incomplete, ApplyMinLevel, or Versions. + RequestIDs []string +} + +// AppLog represents a single application-level log. +type AppLog struct { + Time time.Time + Level int + Message string +} + +// Record contains all the information for a single web request. +type Record struct { + AppID string + ModuleID string + VersionID string + RequestID []byte + IP string + Nickname string + AppEngineRelease string + + // The time when this request started. + StartTime time.Time + + // The time when this request finished. + EndTime time.Time + + // Opaque cursor into the result stream. + Offset []byte + + // The time required to process the request. + Latency time.Duration + MCycles int64 + Method string + Resource string + HTTPVersion string + Status int32 + + // The size of the request sent back to the client, in bytes. + ResponseSize int64 + Referrer string + UserAgent string + URLMapEntry string + Combined string + Host string + + // The estimated cost of this request, in dollars. + Cost float64 + TaskQueueName string + TaskName string + WasLoadingRequest bool + PendingTime time.Duration + Finished bool + AppLogs []AppLog + + // Mostly-unique identifier for the instance that handled the request if available. + InstanceID string +} + +// Result represents the result of a query. +type Result struct { + logs []*Record + context context.Context + request *pb.LogReadRequest + resultsSeen bool + err error +} + +// Next returns the next log record, +func (qr *Result) Next() (*Record, error) { + if qr.err != nil { + return nil, qr.err + } + if len(qr.logs) > 0 { + lr := qr.logs[0] + qr.logs = qr.logs[1:] + return lr, nil + } + + if qr.request.Offset == nil && qr.resultsSeen { + return nil, Done + } + + if err := qr.run(); err != nil { + // Errors here may be retried, so don't store the error. + return nil, err + } + + return qr.Next() +} + +// Done is returned when a query iteration has completed. +var Done = errors.New("log: query has no more results") + +// protoToAppLogs takes as input an array of pointers to LogLines, the internal +// Protocol Buffer representation of a single application-level log, +// and converts it to an array of AppLogs, the external representation +// of an application-level log. +func protoToAppLogs(logLines []*pb.LogLine) []AppLog { + appLogs := make([]AppLog, len(logLines)) + + for i, line := range logLines { + appLogs[i] = AppLog{ + Time: time.Unix(0, *line.Time*1e3), + Level: int(*line.Level), + Message: *line.LogMessage, + } + } + + return appLogs +} + +// protoToRecord converts a RequestLog, the internal Protocol Buffer +// representation of a single request-level log, to a Record, its +// corresponding external representation. +func protoToRecord(rl *pb.RequestLog) *Record { + offset, err := proto.Marshal(rl.Offset) + if err != nil { + offset = nil + } + return &Record{ + AppID: *rl.AppId, + ModuleID: rl.GetModuleId(), + VersionID: *rl.VersionId, + RequestID: rl.RequestId, + Offset: offset, + IP: *rl.Ip, + Nickname: rl.GetNickname(), + AppEngineRelease: string(rl.GetAppEngineRelease()), + StartTime: time.Unix(0, *rl.StartTime*1e3), + EndTime: time.Unix(0, *rl.EndTime*1e3), + Latency: time.Duration(*rl.Latency) * time.Microsecond, + MCycles: *rl.Mcycles, + Method: *rl.Method, + Resource: *rl.Resource, + HTTPVersion: *rl.HttpVersion, + Status: *rl.Status, + ResponseSize: *rl.ResponseSize, + Referrer: rl.GetReferrer(), + UserAgent: rl.GetUserAgent(), + URLMapEntry: *rl.UrlMapEntry, + Combined: *rl.Combined, + Host: rl.GetHost(), + Cost: rl.GetCost(), + TaskQueueName: rl.GetTaskQueueName(), + TaskName: rl.GetTaskName(), + WasLoadingRequest: rl.GetWasLoadingRequest(), + PendingTime: time.Duration(rl.GetPendingTime()) * time.Microsecond, + Finished: rl.GetFinished(), + AppLogs: protoToAppLogs(rl.Line), + InstanceID: string(rl.GetCloneKey()), + } +} + +// Run starts a query for log records, which contain request and application +// level log information. +func (params *Query) Run(c context.Context) *Result { + req, err := makeRequest(params, internal.FullyQualifiedAppID(c), appengine.VersionID(c)) + return &Result{ + context: c, + request: req, + err: err, + } +} + +func makeRequest(params *Query, appID, versionID string) (*pb.LogReadRequest, error) { + req := &pb.LogReadRequest{} + req.AppId = &appID + if !params.StartTime.IsZero() { + req.StartTime = proto.Int64(params.StartTime.UnixNano() / 1e3) + } + if !params.EndTime.IsZero() { + req.EndTime = proto.Int64(params.EndTime.UnixNano() / 1e3) + } + if len(params.Offset) > 0 { + var offset pb.LogOffset + if err := proto.Unmarshal(params.Offset, &offset); err != nil { + return nil, fmt.Errorf("bad Offset: %v", err) + } + req.Offset = &offset + } + if params.Incomplete { + req.IncludeIncomplete = ¶ms.Incomplete + } + if params.AppLogs { + req.IncludeAppLogs = ¶ms.AppLogs + } + if params.ApplyMinLevel { + req.MinimumLogLevel = proto.Int32(int32(params.MinLevel)) + } + if params.Versions == nil { + // If no versions were specified, default to the default module at + // the major version being used by this module. + if i := strings.Index(versionID, "."); i >= 0 { + versionID = versionID[:i] + } + req.VersionId = []string{versionID} + } else { + req.ModuleVersion = make([]*pb.LogModuleVersion, 0, len(params.Versions)) + for _, v := range params.Versions { + var m *string + if i := strings.Index(v, ":"); i >= 0 { + m, v = proto.String(v[:i]), v[i+1:] + } + req.ModuleVersion = append(req.ModuleVersion, &pb.LogModuleVersion{ + ModuleId: m, + VersionId: proto.String(v), + }) + } + } + if params.RequestIDs != nil { + ids := make([][]byte, len(params.RequestIDs)) + for i, v := range params.RequestIDs { + ids[i] = []byte(v) + } + req.RequestId = ids + } + + return req, nil +} + +// run takes the query Result produced by a call to Run and updates it with +// more Records. The updated Result contains a new set of logs as well as an +// offset to where more logs can be found. We also convert the items in the +// response from their internal representations to external versions of the +// same structs. +func (r *Result) run() error { + res := &pb.LogReadResponse{} + if err := internal.Call(r.context, "logservice", "Read", r.request, res); err != nil { + return err + } + + r.logs = make([]*Record, len(res.Log)) + r.request.Offset = res.Offset + r.resultsSeen = true + + for i, log := range res.Log { + r.logs[i] = protoToRecord(log) + } + + return nil +} + +func init() { + internal.RegisterErrorCodeMap("logservice", pb.LogServiceError_ErrorCode_name) +} diff --git a/vendor/google.golang.org/appengine/log/log_test.go b/vendor/google.golang.org/appengine/log/log_test.go new file mode 100644 index 000000000..726468e23 --- /dev/null +++ b/vendor/google.golang.org/appengine/log/log_test.go @@ -0,0 +1,112 @@ +// Copyright 2014 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package log + +import ( + "reflect" + "testing" + "time" + + "github.com/golang/protobuf/proto" + + pb "google.golang.org/appengine/internal/log" +) + +func TestQueryToRequest(t *testing.T) { + testCases := []struct { + desc string + query *Query + want *pb.LogReadRequest + }{ + { + desc: "Empty", + query: &Query{}, + want: &pb.LogReadRequest{ + AppId: proto.String("s~fake"), + VersionId: []string{"v12"}, + }, + }, + { + desc: "Versions", + query: &Query{ + Versions: []string{"alpha", "backend:beta"}, + }, + want: &pb.LogReadRequest{ + AppId: proto.String("s~fake"), + ModuleVersion: []*pb.LogModuleVersion{ + { + VersionId: proto.String("alpha"), + }, { + ModuleId: proto.String("backend"), + VersionId: proto.String("beta"), + }, + }, + }, + }, + } + + for _, tt := range testCases { + req, err := makeRequest(tt.query, "s~fake", "v12") + + if err != nil { + t.Errorf("%s: got err %v, want nil", tt.desc, err) + continue + } + if !proto.Equal(req, tt.want) { + t.Errorf("%s request:\ngot %v\nwant %v", tt.desc, req, tt.want) + } + } +} + +func TestProtoToRecord(t *testing.T) { + // We deliberately leave ModuleId and other optional fields unset. + p := &pb.RequestLog{ + AppId: proto.String("s~fake"), + VersionId: proto.String("1"), + RequestId: []byte("deadbeef"), + Ip: proto.String("127.0.0.1"), + StartTime: proto.Int64(431044244000000), + EndTime: proto.Int64(431044724000000), + Latency: proto.Int64(480000000), + Mcycles: proto.Int64(7), + Method: proto.String("GET"), + Resource: proto.String("/app"), + HttpVersion: proto.String("1.1"), + Status: proto.Int32(418), + ResponseSize: proto.Int64(1337), + UrlMapEntry: proto.String("_go_app"), + Combined: proto.String("apache log"), + } + // Sanity check that all required fields are set. + if _, err := proto.Marshal(p); err != nil { + t.Fatalf("proto.Marshal: %v", err) + } + want := &Record{ + AppID: "s~fake", + ModuleID: "default", + VersionID: "1", + RequestID: []byte("deadbeef"), + IP: "127.0.0.1", + StartTime: time.Date(1983, 8, 29, 22, 30, 44, 0, time.UTC), + EndTime: time.Date(1983, 8, 29, 22, 38, 44, 0, time.UTC), + Latency: 8 * time.Minute, + MCycles: 7, + Method: "GET", + Resource: "/app", + HTTPVersion: "1.1", + Status: 418, + ResponseSize: 1337, + URLMapEntry: "_go_app", + Combined: "apache log", + Finished: true, + AppLogs: []AppLog{}, + } + got := protoToRecord(p) + // Coerce locations to UTC since otherwise they will be in local. + got.StartTime, got.EndTime = got.StartTime.UTC(), got.EndTime.UTC() + if !reflect.DeepEqual(got, want) { + t.Errorf("protoToRecord:\ngot: %v\nwant: %v", got, want) + } +} diff --git a/vendor/google.golang.org/appengine/mail/mail.go b/vendor/google.golang.org/appengine/mail/mail.go new file mode 100644 index 000000000..1ce1e8706 --- /dev/null +++ b/vendor/google.golang.org/appengine/mail/mail.go @@ -0,0 +1,123 @@ +// Copyright 2011 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +/* +Package mail provides the means of sending email from an +App Engine application. + +Example: + msg := &mail.Message{ + Sender: "romeo@montague.com", + To: []string{"Juliet "}, + Subject: "See you tonight", + Body: "Don't forget our plans. Hark, 'til later.", + } + if err := mail.Send(c, msg); err != nil { + log.Errorf(c, "Alas, my user, the email failed to sendeth: %v", err) + } +*/ +package mail // import "google.golang.org/appengine/mail" + +import ( + "net/mail" + + "github.com/golang/protobuf/proto" + "golang.org/x/net/context" + + "google.golang.org/appengine/internal" + bpb "google.golang.org/appengine/internal/base" + pb "google.golang.org/appengine/internal/mail" +) + +// A Message represents an email message. +// Addresses may be of any form permitted by RFC 822. +type Message struct { + // Sender must be set, and must be either an application admin + // or the currently signed-in user. + Sender string + ReplyTo string // may be empty + + // At least one of these slices must have a non-zero length, + // except when calling SendToAdmins. + To, Cc, Bcc []string + + Subject string + + // At least one of Body or HTMLBody must be non-empty. + Body string + HTMLBody string + + Attachments []Attachment + + // Extra mail headers. + // See https://cloud.google.com/appengine/docs/standard/go/mail/ + // for permissible headers. + Headers mail.Header +} + +// An Attachment represents an email attachment. +type Attachment struct { + // Name must be set to a valid file name. + Name string + Data []byte + ContentID string +} + +// Send sends an email message. +func Send(c context.Context, msg *Message) error { + return send(c, "Send", msg) +} + +// SendToAdmins sends an email message to the application's administrators. +func SendToAdmins(c context.Context, msg *Message) error { + return send(c, "SendToAdmins", msg) +} + +func send(c context.Context, method string, msg *Message) error { + req := &pb.MailMessage{ + Sender: &msg.Sender, + To: msg.To, + Cc: msg.Cc, + Bcc: msg.Bcc, + Subject: &msg.Subject, + } + if msg.ReplyTo != "" { + req.ReplyTo = &msg.ReplyTo + } + if msg.Body != "" { + req.TextBody = &msg.Body + } + if msg.HTMLBody != "" { + req.HtmlBody = &msg.HTMLBody + } + if len(msg.Attachments) > 0 { + req.Attachment = make([]*pb.MailAttachment, len(msg.Attachments)) + for i, att := range msg.Attachments { + req.Attachment[i] = &pb.MailAttachment{ + FileName: proto.String(att.Name), + Data: att.Data, + } + if att.ContentID != "" { + req.Attachment[i].ContentID = proto.String(att.ContentID) + } + } + } + for key, vs := range msg.Headers { + for _, v := range vs { + req.Header = append(req.Header, &pb.MailHeader{ + Name: proto.String(key), + Value: proto.String(v), + }) + } + } + res := &bpb.VoidProto{} + if err := internal.Call(c, "mail", method, req, res); err != nil { + return err + } + return nil +} + +func init() { + internal.RegisterErrorCodeMap("mail", pb.MailServiceError_ErrorCode_name) +} diff --git a/vendor/google.golang.org/appengine/mail/mail_test.go b/vendor/google.golang.org/appengine/mail/mail_test.go new file mode 100644 index 000000000..7502c5973 --- /dev/null +++ b/vendor/google.golang.org/appengine/mail/mail_test.go @@ -0,0 +1,65 @@ +// Copyright 2011 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package mail + +import ( + "testing" + + "github.com/golang/protobuf/proto" + + "google.golang.org/appengine/internal/aetesting" + basepb "google.golang.org/appengine/internal/base" + pb "google.golang.org/appengine/internal/mail" +) + +func TestMessageConstruction(t *testing.T) { + var got *pb.MailMessage + c := aetesting.FakeSingleContext(t, "mail", "Send", func(in *pb.MailMessage, out *basepb.VoidProto) error { + got = in + return nil + }) + + msg := &Message{ + Sender: "dsymonds@example.com", + To: []string{"nigeltao@example.com"}, + Body: "Hey, lunch time?", + Attachments: []Attachment{ + // Regression test for a prod bug. The address of a range variable was used when + // constructing the outgoing proto, so multiple attachments used the same name. + { + Name: "att1.txt", + Data: []byte("data1"), + ContentID: "", + }, + { + Name: "att2.txt", + Data: []byte("data2"), + }, + }, + } + if err := Send(c, msg); err != nil { + t.Fatalf("Send: %v", err) + } + want := &pb.MailMessage{ + Sender: proto.String("dsymonds@example.com"), + To: []string{"nigeltao@example.com"}, + Subject: proto.String(""), + TextBody: proto.String("Hey, lunch time?"), + Attachment: []*pb.MailAttachment{ + { + FileName: proto.String("att1.txt"), + Data: []byte("data1"), + ContentID: proto.String(""), + }, + { + FileName: proto.String("att2.txt"), + Data: []byte("data2"), + }, + }, + } + if !proto.Equal(got, want) { + t.Errorf("Bad proto for %+v\n got %v\nwant %v", msg, got, want) + } +} diff --git a/vendor/google.golang.org/appengine/memcache/memcache.go b/vendor/google.golang.org/appengine/memcache/memcache.go new file mode 100644 index 000000000..d8eed4be7 --- /dev/null +++ b/vendor/google.golang.org/appengine/memcache/memcache.go @@ -0,0 +1,526 @@ +// Copyright 2011 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +// Package memcache provides a client for App Engine's distributed in-memory +// key-value store for small chunks of arbitrary data. +// +// The fundamental operations get and set items, keyed by a string. +// +// item0, err := memcache.Get(c, "key") +// if err != nil && err != memcache.ErrCacheMiss { +// return err +// } +// if err == nil { +// fmt.Fprintf(w, "memcache hit: Key=%q Val=[% x]\n", item0.Key, item0.Value) +// } else { +// fmt.Fprintf(w, "memcache miss\n") +// } +// +// and +// +// item1 := &memcache.Item{ +// Key: "foo", +// Value: []byte("bar"), +// } +// if err := memcache.Set(c, item1); err != nil { +// return err +// } +package memcache // import "google.golang.org/appengine/memcache" + +import ( + "bytes" + "encoding/gob" + "encoding/json" + "errors" + "time" + + "github.com/golang/protobuf/proto" + "golang.org/x/net/context" + + "google.golang.org/appengine" + "google.golang.org/appengine/internal" + pb "google.golang.org/appengine/internal/memcache" +) + +var ( + // ErrCacheMiss means that an operation failed + // because the item wasn't present. + ErrCacheMiss = errors.New("memcache: cache miss") + // ErrCASConflict means that a CompareAndSwap call failed due to the + // cached value being modified between the Get and the CompareAndSwap. + // If the cached value was simply evicted rather than replaced, + // ErrNotStored will be returned instead. + ErrCASConflict = errors.New("memcache: compare-and-swap conflict") + // ErrNoStats means that no statistics were available. + ErrNoStats = errors.New("memcache: no statistics available") + // ErrNotStored means that a conditional write operation (i.e. Add or + // CompareAndSwap) failed because the condition was not satisfied. + ErrNotStored = errors.New("memcache: item not stored") + // ErrServerError means that a server error occurred. + ErrServerError = errors.New("memcache: server error") +) + +// Item is the unit of memcache gets and sets. +type Item struct { + // Key is the Item's key (250 bytes maximum). + Key string + // Value is the Item's value. + Value []byte + // Object is the Item's value for use with a Codec. + Object interface{} + // Flags are server-opaque flags whose semantics are entirely up to the + // App Engine app. + Flags uint32 + // Expiration is the maximum duration that the item will stay + // in the cache. + // The zero value means the Item has no expiration time. + // Subsecond precision is ignored. + // This is not set when getting items. + Expiration time.Duration + // casID is a client-opaque value used for compare-and-swap operations. + // Zero means that compare-and-swap is not used. + casID uint64 +} + +const ( + secondsIn30Years = 60 * 60 * 24 * 365 * 30 // from memcache server code + thirtyYears = time.Duration(secondsIn30Years) * time.Second +) + +// protoToItem converts a protocol buffer item to a Go struct. +func protoToItem(p *pb.MemcacheGetResponse_Item) *Item { + return &Item{ + Key: string(p.Key), + Value: p.Value, + Flags: p.GetFlags(), + casID: p.GetCasId(), + } +} + +// If err is an appengine.MultiError, return its first element. Otherwise, return err. +func singleError(err error) error { + if me, ok := err.(appengine.MultiError); ok { + return me[0] + } + return err +} + +// Get gets the item for the given key. ErrCacheMiss is returned for a memcache +// cache miss. The key must be at most 250 bytes in length. +func Get(c context.Context, key string) (*Item, error) { + m, err := GetMulti(c, []string{key}) + if err != nil { + return nil, err + } + if _, ok := m[key]; !ok { + return nil, ErrCacheMiss + } + return m[key], nil +} + +// GetMulti is a batch version of Get. The returned map from keys to items may +// have fewer elements than the input slice, due to memcache cache misses. +// Each key must be at most 250 bytes in length. +func GetMulti(c context.Context, key []string) (map[string]*Item, error) { + if len(key) == 0 { + return nil, nil + } + keyAsBytes := make([][]byte, len(key)) + for i, k := range key { + keyAsBytes[i] = []byte(k) + } + req := &pb.MemcacheGetRequest{ + Key: keyAsBytes, + ForCas: proto.Bool(true), + } + res := &pb.MemcacheGetResponse{} + if err := internal.Call(c, "memcache", "Get", req, res); err != nil { + return nil, err + } + m := make(map[string]*Item, len(res.Item)) + for _, p := range res.Item { + t := protoToItem(p) + m[t.Key] = t + } + return m, nil +} + +// Delete deletes the item for the given key. +// ErrCacheMiss is returned if the specified item can not be found. +// The key must be at most 250 bytes in length. +func Delete(c context.Context, key string) error { + return singleError(DeleteMulti(c, []string{key})) +} + +// DeleteMulti is a batch version of Delete. +// If any keys cannot be found, an appengine.MultiError is returned. +// Each key must be at most 250 bytes in length. +func DeleteMulti(c context.Context, key []string) error { + if len(key) == 0 { + return nil + } + req := &pb.MemcacheDeleteRequest{ + Item: make([]*pb.MemcacheDeleteRequest_Item, len(key)), + } + for i, k := range key { + req.Item[i] = &pb.MemcacheDeleteRequest_Item{Key: []byte(k)} + } + res := &pb.MemcacheDeleteResponse{} + if err := internal.Call(c, "memcache", "Delete", req, res); err != nil { + return err + } + if len(res.DeleteStatus) != len(key) { + return ErrServerError + } + me, any := make(appengine.MultiError, len(key)), false + for i, s := range res.DeleteStatus { + switch s { + case pb.MemcacheDeleteResponse_DELETED: + // OK + case pb.MemcacheDeleteResponse_NOT_FOUND: + me[i] = ErrCacheMiss + any = true + default: + me[i] = ErrServerError + any = true + } + } + if any { + return me + } + return nil +} + +// Increment atomically increments the decimal value in the given key +// by delta and returns the new value. The value must fit in a uint64. +// Overflow wraps around, and underflow is capped to zero. The +// provided delta may be negative. If the key doesn't exist in +// memcache, the provided initial value is used to atomically +// populate it before the delta is applied. +// The key must be at most 250 bytes in length. +func Increment(c context.Context, key string, delta int64, initialValue uint64) (newValue uint64, err error) { + return incr(c, key, delta, &initialValue) +} + +// IncrementExisting works like Increment but assumes that the key +// already exists in memcache and doesn't take an initial value. +// IncrementExisting can save work if calculating the initial value is +// expensive. +// An error is returned if the specified item can not be found. +func IncrementExisting(c context.Context, key string, delta int64) (newValue uint64, err error) { + return incr(c, key, delta, nil) +} + +func incr(c context.Context, key string, delta int64, initialValue *uint64) (newValue uint64, err error) { + req := &pb.MemcacheIncrementRequest{ + Key: []byte(key), + InitialValue: initialValue, + } + if delta >= 0 { + req.Delta = proto.Uint64(uint64(delta)) + } else { + req.Delta = proto.Uint64(uint64(-delta)) + req.Direction = pb.MemcacheIncrementRequest_DECREMENT.Enum() + } + res := &pb.MemcacheIncrementResponse{} + err = internal.Call(c, "memcache", "Increment", req, res) + if err != nil { + return + } + if res.NewValue == nil { + return 0, ErrCacheMiss + } + return *res.NewValue, nil +} + +// set sets the given items using the given conflict resolution policy. +// appengine.MultiError may be returned. +func set(c context.Context, item []*Item, value [][]byte, policy pb.MemcacheSetRequest_SetPolicy) error { + if len(item) == 0 { + return nil + } + req := &pb.MemcacheSetRequest{ + Item: make([]*pb.MemcacheSetRequest_Item, len(item)), + } + for i, t := range item { + p := &pb.MemcacheSetRequest_Item{ + Key: []byte(t.Key), + } + if value == nil { + p.Value = t.Value + } else { + p.Value = value[i] + } + if t.Flags != 0 { + p.Flags = proto.Uint32(t.Flags) + } + if t.Expiration != 0 { + // In the .proto file, MemcacheSetRequest_Item uses a fixed32 (i.e. unsigned) + // for expiration time, while MemcacheGetRequest_Item uses int32 (i.e. signed). + // Throughout this .go file, we use int32. + // Also, in the proto, the expiration value is either a duration (in seconds) + // or an absolute Unix timestamp (in seconds), depending on whether the + // value is less than or greater than or equal to 30 years, respectively. + if t.Expiration < time.Second { + // Because an Expiration of 0 means no expiration, we take + // care here to translate an item with an expiration + // Duration between 0-1 seconds as immediately expiring + // (saying it expired a few seconds ago), rather than + // rounding it down to 0 and making it live forever. + p.ExpirationTime = proto.Uint32(uint32(time.Now().Unix()) - 5) + } else if t.Expiration >= thirtyYears { + p.ExpirationTime = proto.Uint32(uint32(time.Now().Unix()) + uint32(t.Expiration/time.Second)) + } else { + p.ExpirationTime = proto.Uint32(uint32(t.Expiration / time.Second)) + } + } + if t.casID != 0 { + p.CasId = proto.Uint64(t.casID) + p.ForCas = proto.Bool(true) + } + p.SetPolicy = policy.Enum() + req.Item[i] = p + } + res := &pb.MemcacheSetResponse{} + if err := internal.Call(c, "memcache", "Set", req, res); err != nil { + return err + } + if len(res.SetStatus) != len(item) { + return ErrServerError + } + me, any := make(appengine.MultiError, len(item)), false + for i, st := range res.SetStatus { + var err error + switch st { + case pb.MemcacheSetResponse_STORED: + // OK + case pb.MemcacheSetResponse_NOT_STORED: + err = ErrNotStored + case pb.MemcacheSetResponse_EXISTS: + err = ErrCASConflict + default: + err = ErrServerError + } + if err != nil { + me[i] = err + any = true + } + } + if any { + return me + } + return nil +} + +// Set writes the given item, unconditionally. +func Set(c context.Context, item *Item) error { + return singleError(set(c, []*Item{item}, nil, pb.MemcacheSetRequest_SET)) +} + +// SetMulti is a batch version of Set. +// appengine.MultiError may be returned. +func SetMulti(c context.Context, item []*Item) error { + return set(c, item, nil, pb.MemcacheSetRequest_SET) +} + +// Add writes the given item, if no value already exists for its key. +// ErrNotStored is returned if that condition is not met. +func Add(c context.Context, item *Item) error { + return singleError(set(c, []*Item{item}, nil, pb.MemcacheSetRequest_ADD)) +} + +// AddMulti is a batch version of Add. +// appengine.MultiError may be returned. +func AddMulti(c context.Context, item []*Item) error { + return set(c, item, nil, pb.MemcacheSetRequest_ADD) +} + +// CompareAndSwap writes the given item that was previously returned by Get, +// if the value was neither modified or evicted between the Get and the +// CompareAndSwap calls. The item's Key should not change between calls but +// all other item fields may differ. +// ErrCASConflict is returned if the value was modified in between the calls. +// ErrNotStored is returned if the value was evicted in between the calls. +func CompareAndSwap(c context.Context, item *Item) error { + return singleError(set(c, []*Item{item}, nil, pb.MemcacheSetRequest_CAS)) +} + +// CompareAndSwapMulti is a batch version of CompareAndSwap. +// appengine.MultiError may be returned. +func CompareAndSwapMulti(c context.Context, item []*Item) error { + return set(c, item, nil, pb.MemcacheSetRequest_CAS) +} + +// Codec represents a symmetric pair of functions that implement a codec. +// Items stored into or retrieved from memcache using a Codec have their +// values marshaled or unmarshaled. +// +// All the methods provided for Codec behave analogously to the package level +// function with same name. +type Codec struct { + Marshal func(interface{}) ([]byte, error) + Unmarshal func([]byte, interface{}) error +} + +// Get gets the item for the given key and decodes the obtained value into v. +// ErrCacheMiss is returned for a memcache cache miss. +// The key must be at most 250 bytes in length. +func (cd Codec) Get(c context.Context, key string, v interface{}) (*Item, error) { + i, err := Get(c, key) + if err != nil { + return nil, err + } + if err := cd.Unmarshal(i.Value, v); err != nil { + return nil, err + } + return i, nil +} + +func (cd Codec) set(c context.Context, items []*Item, policy pb.MemcacheSetRequest_SetPolicy) error { + var vs [][]byte + var me appengine.MultiError + for i, item := range items { + v, err := cd.Marshal(item.Object) + if err != nil { + if me == nil { + me = make(appengine.MultiError, len(items)) + } + me[i] = err + continue + } + if me == nil { + vs = append(vs, v) + } + } + if me != nil { + return me + } + + return set(c, items, vs, policy) +} + +// Set writes the given item, unconditionally. +func (cd Codec) Set(c context.Context, item *Item) error { + return singleError(cd.set(c, []*Item{item}, pb.MemcacheSetRequest_SET)) +} + +// SetMulti is a batch version of Set. +// appengine.MultiError may be returned. +func (cd Codec) SetMulti(c context.Context, items []*Item) error { + return cd.set(c, items, pb.MemcacheSetRequest_SET) +} + +// Add writes the given item, if no value already exists for its key. +// ErrNotStored is returned if that condition is not met. +func (cd Codec) Add(c context.Context, item *Item) error { + return singleError(cd.set(c, []*Item{item}, pb.MemcacheSetRequest_ADD)) +} + +// AddMulti is a batch version of Add. +// appengine.MultiError may be returned. +func (cd Codec) AddMulti(c context.Context, items []*Item) error { + return cd.set(c, items, pb.MemcacheSetRequest_ADD) +} + +// CompareAndSwap writes the given item that was previously returned by Get, +// if the value was neither modified or evicted between the Get and the +// CompareAndSwap calls. The item's Key should not change between calls but +// all other item fields may differ. +// ErrCASConflict is returned if the value was modified in between the calls. +// ErrNotStored is returned if the value was evicted in between the calls. +func (cd Codec) CompareAndSwap(c context.Context, item *Item) error { + return singleError(cd.set(c, []*Item{item}, pb.MemcacheSetRequest_CAS)) +} + +// CompareAndSwapMulti is a batch version of CompareAndSwap. +// appengine.MultiError may be returned. +func (cd Codec) CompareAndSwapMulti(c context.Context, items []*Item) error { + return cd.set(c, items, pb.MemcacheSetRequest_CAS) +} + +var ( + // Gob is a Codec that uses the gob package. + Gob = Codec{gobMarshal, gobUnmarshal} + // JSON is a Codec that uses the json package. + JSON = Codec{json.Marshal, json.Unmarshal} +) + +func gobMarshal(v interface{}) ([]byte, error) { + var buf bytes.Buffer + if err := gob.NewEncoder(&buf).Encode(v); err != nil { + return nil, err + } + return buf.Bytes(), nil +} + +func gobUnmarshal(data []byte, v interface{}) error { + return gob.NewDecoder(bytes.NewBuffer(data)).Decode(v) +} + +// Statistics represents a set of statistics about the memcache cache. +// This may include items that have expired but have not yet been removed from the cache. +type Statistics struct { + Hits uint64 // Counter of cache hits + Misses uint64 // Counter of cache misses + ByteHits uint64 // Counter of bytes transferred for gets + + Items uint64 // Items currently in the cache + Bytes uint64 // Size of all items currently in the cache + + Oldest int64 // Age of access of the oldest item, in seconds +} + +// Stats retrieves the current memcache statistics. +func Stats(c context.Context) (*Statistics, error) { + req := &pb.MemcacheStatsRequest{} + res := &pb.MemcacheStatsResponse{} + if err := internal.Call(c, "memcache", "Stats", req, res); err != nil { + return nil, err + } + if res.Stats == nil { + return nil, ErrNoStats + } + return &Statistics{ + Hits: *res.Stats.Hits, + Misses: *res.Stats.Misses, + ByteHits: *res.Stats.ByteHits, + Items: *res.Stats.Items, + Bytes: *res.Stats.Bytes, + Oldest: int64(*res.Stats.OldestItemAge), + }, nil +} + +// Flush flushes all items from memcache. +func Flush(c context.Context) error { + req := &pb.MemcacheFlushRequest{} + res := &pb.MemcacheFlushResponse{} + return internal.Call(c, "memcache", "FlushAll", req, res) +} + +func namespaceMod(m proto.Message, namespace string) { + switch m := m.(type) { + case *pb.MemcacheDeleteRequest: + if m.NameSpace == nil { + m.NameSpace = &namespace + } + case *pb.MemcacheGetRequest: + if m.NameSpace == nil { + m.NameSpace = &namespace + } + case *pb.MemcacheIncrementRequest: + if m.NameSpace == nil { + m.NameSpace = &namespace + } + case *pb.MemcacheSetRequest: + if m.NameSpace == nil { + m.NameSpace = &namespace + } + // MemcacheFlushRequest, MemcacheStatsRequest do not apply namespace. + } +} + +func init() { + internal.RegisterErrorCodeMap("memcache", pb.MemcacheServiceError_ErrorCode_name) + internal.NamespaceMods["memcache"] = namespaceMod +} diff --git a/vendor/google.golang.org/appengine/memcache/memcache_test.go b/vendor/google.golang.org/appengine/memcache/memcache_test.go new file mode 100644 index 000000000..1dc7da471 --- /dev/null +++ b/vendor/google.golang.org/appengine/memcache/memcache_test.go @@ -0,0 +1,263 @@ +// Copyright 2014 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package memcache + +import ( + "fmt" + "testing" + + "google.golang.org/appengine" + "google.golang.org/appengine/internal/aetesting" + pb "google.golang.org/appengine/internal/memcache" +) + +var errRPC = fmt.Errorf("RPC error") + +func TestGetRequest(t *testing.T) { + serviceCalled := false + apiKey := "lyric" + + c := aetesting.FakeSingleContext(t, "memcache", "Get", func(req *pb.MemcacheGetRequest, _ *pb.MemcacheGetResponse) error { + // Test request. + if n := len(req.Key); n != 1 { + t.Errorf("got %d want 1", n) + return nil + } + if k := string(req.Key[0]); k != apiKey { + t.Errorf("got %q want %q", k, apiKey) + } + + serviceCalled = true + return nil + }) + + // Test the "forward" path from the API call parameters to the + // protobuf request object. (The "backward" path from the + // protobuf response object to the API call response, + // including the error response, are handled in the next few + // tests). + Get(c, apiKey) + if !serviceCalled { + t.Error("Service was not called as expected") + } +} + +func TestGetResponseHit(t *testing.T) { + key := "lyric" + value := "Where the buffalo roam" + + c := aetesting.FakeSingleContext(t, "memcache", "Get", func(_ *pb.MemcacheGetRequest, res *pb.MemcacheGetResponse) error { + res.Item = []*pb.MemcacheGetResponse_Item{ + {Key: []byte(key), Value: []byte(value)}, + } + return nil + }) + apiItem, err := Get(c, key) + if apiItem == nil || apiItem.Key != key || string(apiItem.Value) != value { + t.Errorf("got %q, %q want {%q,%q}, nil", apiItem, err, key, value) + } +} + +func TestGetResponseMiss(t *testing.T) { + c := aetesting.FakeSingleContext(t, "memcache", "Get", func(_ *pb.MemcacheGetRequest, res *pb.MemcacheGetResponse) error { + // don't fill in any of the response + return nil + }) + _, err := Get(c, "something") + if err != ErrCacheMiss { + t.Errorf("got %v want ErrCacheMiss", err) + } +} + +func TestGetResponseRPCError(t *testing.T) { + c := aetesting.FakeSingleContext(t, "memcache", "Get", func(_ *pb.MemcacheGetRequest, res *pb.MemcacheGetResponse) error { + return errRPC + }) + + if _, err := Get(c, "something"); err != errRPC { + t.Errorf("got %v want errRPC", err) + } +} + +func TestAddRequest(t *testing.T) { + var apiItem = &Item{ + Key: "lyric", + Value: []byte("Oh, give me a home"), + } + + serviceCalled := false + + c := aetesting.FakeSingleContext(t, "memcache", "Set", func(req *pb.MemcacheSetRequest, _ *pb.MemcacheSetResponse) error { + // Test request. + pbItem := req.Item[0] + if k := string(pbItem.Key); k != apiItem.Key { + t.Errorf("got %q want %q", k, apiItem.Key) + } + if v := string(apiItem.Value); v != string(pbItem.Value) { + t.Errorf("got %q want %q", v, string(pbItem.Value)) + } + if p := *pbItem.SetPolicy; p != pb.MemcacheSetRequest_ADD { + t.Errorf("got %v want %v", p, pb.MemcacheSetRequest_ADD) + } + + serviceCalled = true + return nil + }) + + Add(c, apiItem) + if !serviceCalled { + t.Error("Service was not called as expected") + } +} + +func TestAddResponseStored(t *testing.T) { + c := aetesting.FakeSingleContext(t, "memcache", "Set", func(_ *pb.MemcacheSetRequest, res *pb.MemcacheSetResponse) error { + res.SetStatus = []pb.MemcacheSetResponse_SetStatusCode{pb.MemcacheSetResponse_STORED} + return nil + }) + + if err := Add(c, &Item{}); err != nil { + t.Errorf("got %v want nil", err) + } +} + +func TestAddResponseNotStored(t *testing.T) { + c := aetesting.FakeSingleContext(t, "memcache", "Set", func(_ *pb.MemcacheSetRequest, res *pb.MemcacheSetResponse) error { + res.SetStatus = []pb.MemcacheSetResponse_SetStatusCode{pb.MemcacheSetResponse_NOT_STORED} + return nil + }) + + if err := Add(c, &Item{}); err != ErrNotStored { + t.Errorf("got %v want ErrNotStored", err) + } +} + +func TestAddResponseError(t *testing.T) { + c := aetesting.FakeSingleContext(t, "memcache", "Set", func(_ *pb.MemcacheSetRequest, res *pb.MemcacheSetResponse) error { + res.SetStatus = []pb.MemcacheSetResponse_SetStatusCode{pb.MemcacheSetResponse_ERROR} + return nil + }) + + if err := Add(c, &Item{}); err != ErrServerError { + t.Errorf("got %v want ErrServerError", err) + } +} + +func TestAddResponseRPCError(t *testing.T) { + c := aetesting.FakeSingleContext(t, "memcache", "Set", func(_ *pb.MemcacheSetRequest, res *pb.MemcacheSetResponse) error { + return errRPC + }) + + if err := Add(c, &Item{}); err != errRPC { + t.Errorf("got %v want errRPC", err) + } +} + +func TestSetRequest(t *testing.T) { + var apiItem = &Item{ + Key: "lyric", + Value: []byte("Where the buffalo roam"), + } + + serviceCalled := false + + c := aetesting.FakeSingleContext(t, "memcache", "Set", func(req *pb.MemcacheSetRequest, _ *pb.MemcacheSetResponse) error { + // Test request. + if n := len(req.Item); n != 1 { + t.Errorf("got %d want 1", n) + return nil + } + pbItem := req.Item[0] + if k := string(pbItem.Key); k != apiItem.Key { + t.Errorf("got %q want %q", k, apiItem.Key) + } + if v := string(pbItem.Value); v != string(apiItem.Value) { + t.Errorf("got %q want %q", v, string(apiItem.Value)) + } + if p := *pbItem.SetPolicy; p != pb.MemcacheSetRequest_SET { + t.Errorf("got %v want %v", p, pb.MemcacheSetRequest_SET) + } + + serviceCalled = true + return nil + }) + + Set(c, apiItem) + if !serviceCalled { + t.Error("Service was not called as expected") + } +} + +func TestSetResponse(t *testing.T) { + c := aetesting.FakeSingleContext(t, "memcache", "Set", func(_ *pb.MemcacheSetRequest, res *pb.MemcacheSetResponse) error { + res.SetStatus = []pb.MemcacheSetResponse_SetStatusCode{pb.MemcacheSetResponse_STORED} + return nil + }) + + if err := Set(c, &Item{}); err != nil { + t.Errorf("got %v want nil", err) + } +} + +func TestSetResponseError(t *testing.T) { + c := aetesting.FakeSingleContext(t, "memcache", "Set", func(_ *pb.MemcacheSetRequest, res *pb.MemcacheSetResponse) error { + res.SetStatus = []pb.MemcacheSetResponse_SetStatusCode{pb.MemcacheSetResponse_ERROR} + return nil + }) + + if err := Set(c, &Item{}); err != ErrServerError { + t.Errorf("got %v want ErrServerError", err) + } +} + +func TestNamespaceResetting(t *testing.T) { + namec := make(chan *string, 1) + c0 := aetesting.FakeSingleContext(t, "memcache", "Get", func(req *pb.MemcacheGetRequest, res *pb.MemcacheGetResponse) error { + namec <- req.NameSpace + return errRPC + }) + + // Check that wrapping c0 in a namespace twice works correctly. + c1, err := appengine.Namespace(c0, "A") + if err != nil { + t.Fatalf("appengine.Namespace: %v", err) + } + c2, err := appengine.Namespace(c1, "") // should act as the original context + if err != nil { + t.Fatalf("appengine.Namespace: %v", err) + } + + Get(c0, "key") + if ns := <-namec; ns != nil { + t.Errorf(`Get with c0: ns = %q, want nil`, *ns) + } + + Get(c1, "key") + if ns := <-namec; ns == nil { + t.Error(`Get with c1: ns = nil, want "A"`) + } else if *ns != "A" { + t.Errorf(`Get with c1: ns = %q, want "A"`, *ns) + } + + Get(c2, "key") + if ns := <-namec; ns != nil { + t.Errorf(`Get with c2: ns = %q, want nil`, *ns) + } +} + +func TestGetMultiEmpty(t *testing.T) { + serviceCalled := false + c := aetesting.FakeSingleContext(t, "memcache", "Get", func(req *pb.MemcacheGetRequest, _ *pb.MemcacheGetResponse) error { + serviceCalled = true + return nil + }) + + // Test that the Memcache service is not called when + // GetMulti is passed an empty slice of keys. + GetMulti(c, []string{}) + if serviceCalled { + t.Error("Service was called but should not have been") + } +} diff --git a/vendor/google.golang.org/appengine/module/module.go b/vendor/google.golang.org/appengine/module/module.go new file mode 100644 index 000000000..88e6629ac --- /dev/null +++ b/vendor/google.golang.org/appengine/module/module.go @@ -0,0 +1,113 @@ +// Copyright 2013 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +/* +Package module provides functions for interacting with modules. + +The appengine package contains functions that report the identity of the app, +including the module name. +*/ +package module // import "google.golang.org/appengine/module" + +import ( + "github.com/golang/protobuf/proto" + "golang.org/x/net/context" + + "google.golang.org/appengine/internal" + pb "google.golang.org/appengine/internal/modules" +) + +// List returns the names of modules belonging to this application. +func List(c context.Context) ([]string, error) { + req := &pb.GetModulesRequest{} + res := &pb.GetModulesResponse{} + err := internal.Call(c, "modules", "GetModules", req, res) + return res.Module, err +} + +// NumInstances returns the number of instances of the given module/version. +// If either argument is the empty string it means the default. +func NumInstances(c context.Context, module, version string) (int, error) { + req := &pb.GetNumInstancesRequest{} + if module != "" { + req.Module = &module + } + if version != "" { + req.Version = &version + } + res := &pb.GetNumInstancesResponse{} + + if err := internal.Call(c, "modules", "GetNumInstances", req, res); err != nil { + return 0, err + } + return int(*res.Instances), nil +} + +// SetNumInstances sets the number of instances of the given module.version to the +// specified value. If either module or version are the empty string it means the +// default. +func SetNumInstances(c context.Context, module, version string, instances int) error { + req := &pb.SetNumInstancesRequest{} + if module != "" { + req.Module = &module + } + if version != "" { + req.Version = &version + } + req.Instances = proto.Int64(int64(instances)) + res := &pb.SetNumInstancesResponse{} + return internal.Call(c, "modules", "SetNumInstances", req, res) +} + +// Versions returns the names of the versions that belong to the specified module. +// If module is the empty string, it means the default module. +func Versions(c context.Context, module string) ([]string, error) { + req := &pb.GetVersionsRequest{} + if module != "" { + req.Module = &module + } + res := &pb.GetVersionsResponse{} + err := internal.Call(c, "modules", "GetVersions", req, res) + return res.GetVersion(), err +} + +// DefaultVersion returns the default version of the specified module. +// If module is the empty string, it means the default module. +func DefaultVersion(c context.Context, module string) (string, error) { + req := &pb.GetDefaultVersionRequest{} + if module != "" { + req.Module = &module + } + res := &pb.GetDefaultVersionResponse{} + err := internal.Call(c, "modules", "GetDefaultVersion", req, res) + return res.GetVersion(), err +} + +// Start starts the specified version of the specified module. +// If either module or version are the empty string, it means the default. +func Start(c context.Context, module, version string) error { + req := &pb.StartModuleRequest{} + if module != "" { + req.Module = &module + } + if version != "" { + req.Version = &version + } + res := &pb.StartModuleResponse{} + return internal.Call(c, "modules", "StartModule", req, res) +} + +// Stop stops the specified version of the specified module. +// If either module or version are the empty string, it means the default. +func Stop(c context.Context, module, version string) error { + req := &pb.StopModuleRequest{} + if module != "" { + req.Module = &module + } + if version != "" { + req.Version = &version + } + res := &pb.StopModuleResponse{} + return internal.Call(c, "modules", "StopModule", req, res) +} diff --git a/vendor/google.golang.org/appengine/module/module_test.go b/vendor/google.golang.org/appengine/module/module_test.go new file mode 100644 index 000000000..73e8971dc --- /dev/null +++ b/vendor/google.golang.org/appengine/module/module_test.go @@ -0,0 +1,124 @@ +// Copyright 2013 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package module + +import ( + "reflect" + "testing" + + "github.com/golang/protobuf/proto" + + "google.golang.org/appengine/internal/aetesting" + pb "google.golang.org/appengine/internal/modules" +) + +const version = "test-version" +const module = "test-module" +const instances = 3 + +func TestList(t *testing.T) { + c := aetesting.FakeSingleContext(t, "modules", "GetModules", func(req *pb.GetModulesRequest, res *pb.GetModulesResponse) error { + res.Module = []string{"default", "mod1"} + return nil + }) + got, err := List(c) + if err != nil { + t.Fatalf("List: %v", err) + } + want := []string{"default", "mod1"} + if !reflect.DeepEqual(got, want) { + t.Errorf("List = %v, want %v", got, want) + } +} + +func TestSetNumInstances(t *testing.T) { + c := aetesting.FakeSingleContext(t, "modules", "SetNumInstances", func(req *pb.SetNumInstancesRequest, res *pb.SetNumInstancesResponse) error { + if *req.Module != module { + t.Errorf("Module = %v, want %v", req.Module, module) + } + if *req.Version != version { + t.Errorf("Version = %v, want %v", req.Version, version) + } + if *req.Instances != instances { + t.Errorf("Instances = %v, want %d", req.Instances, instances) + } + return nil + }) + err := SetNumInstances(c, module, version, instances) + if err != nil { + t.Fatalf("SetNumInstances: %v", err) + } +} + +func TestVersions(t *testing.T) { + c := aetesting.FakeSingleContext(t, "modules", "GetVersions", func(req *pb.GetVersionsRequest, res *pb.GetVersionsResponse) error { + if *req.Module != module { + t.Errorf("Module = %v, want %v", req.Module, module) + } + res.Version = []string{"v1", "v2", "v3"} + return nil + }) + got, err := Versions(c, module) + if err != nil { + t.Fatalf("Versions: %v", err) + } + want := []string{"v1", "v2", "v3"} + if !reflect.DeepEqual(got, want) { + t.Errorf("Versions = %v, want %v", got, want) + } +} + +func TestDefaultVersion(t *testing.T) { + c := aetesting.FakeSingleContext(t, "modules", "GetDefaultVersion", func(req *pb.GetDefaultVersionRequest, res *pb.GetDefaultVersionResponse) error { + if *req.Module != module { + t.Errorf("Module = %v, want %v", req.Module, module) + } + res.Version = proto.String(version) + return nil + }) + got, err := DefaultVersion(c, module) + if err != nil { + t.Fatalf("DefaultVersion: %v", err) + } + if got != version { + t.Errorf("Version = %v, want %v", got, version) + } +} + +func TestStart(t *testing.T) { + c := aetesting.FakeSingleContext(t, "modules", "StartModule", func(req *pb.StartModuleRequest, res *pb.StartModuleResponse) error { + if *req.Module != module { + t.Errorf("Module = %v, want %v", req.Module, module) + } + if *req.Version != version { + t.Errorf("Version = %v, want %v", req.Version, version) + } + return nil + }) + + err := Start(c, module, version) + if err != nil { + t.Fatalf("Start: %v", err) + } +} + +func TestStop(t *testing.T) { + c := aetesting.FakeSingleContext(t, "modules", "StopModule", func(req *pb.StopModuleRequest, res *pb.StopModuleResponse) error { + version := "test-version" + module := "test-module" + if *req.Module != module { + t.Errorf("Module = %v, want %v", req.Module, module) + } + if *req.Version != version { + t.Errorf("Version = %v, want %v", req.Version, version) + } + return nil + }) + + err := Stop(c, module, version) + if err != nil { + t.Fatalf("Stop: %v", err) + } +} diff --git a/vendor/google.golang.org/appengine/namespace.go b/vendor/google.golang.org/appengine/namespace.go new file mode 100644 index 000000000..21860ca08 --- /dev/null +++ b/vendor/google.golang.org/appengine/namespace.go @@ -0,0 +1,25 @@ +// Copyright 2012 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package appengine + +import ( + "fmt" + "regexp" + + "golang.org/x/net/context" + + "google.golang.org/appengine/internal" +) + +// Namespace returns a replacement context that operates within the given namespace. +func Namespace(c context.Context, namespace string) (context.Context, error) { + if !validNamespace.MatchString(namespace) { + return nil, fmt.Errorf("appengine: namespace %q does not match /%s/", namespace, validNamespace) + } + return internal.NamespacedContext(c, namespace), nil +} + +// validNamespace matches valid namespace names. +var validNamespace = regexp.MustCompile(`^[0-9A-Za-z._-]{0,100}$`) diff --git a/vendor/google.golang.org/appengine/namespace_test.go b/vendor/google.golang.org/appengine/namespace_test.go new file mode 100644 index 000000000..847f640bd --- /dev/null +++ b/vendor/google.golang.org/appengine/namespace_test.go @@ -0,0 +1,39 @@ +// Copyright 2014 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package appengine + +import ( + "testing" + + "golang.org/x/net/context" +) + +func TestNamespaceValidity(t *testing.T) { + testCases := []struct { + namespace string + ok bool + }{ + // data from Python's namespace_manager_test.py + {"", true}, + {"__a.namespace.123__", true}, + {"-_A....NAMESPACE-_", true}, + {"-", true}, + {".", true}, + {".-", true}, + + {"?", false}, + {"+", false}, + {"!", false}, + {" ", false}, + } + for _, tc := range testCases { + _, err := Namespace(context.Background(), tc.namespace) + if err == nil && !tc.ok { + t.Errorf("Namespace %q should be rejected, but wasn't", tc.namespace) + } else if err != nil && tc.ok { + t.Errorf("Namespace %q should be accepted, but wasn't", tc.namespace) + } + } +} diff --git a/vendor/google.golang.org/appengine/remote_api/client.go b/vendor/google.golang.org/appengine/remote_api/client.go new file mode 100644 index 000000000..ce8aab562 --- /dev/null +++ b/vendor/google.golang.org/appengine/remote_api/client.go @@ -0,0 +1,194 @@ +// Copyright 2013 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package remote_api + +// This file provides the client for connecting remotely to a user's production +// application. + +import ( + "bytes" + "fmt" + "io/ioutil" + "log" + "math/rand" + "net/http" + "net/url" + "regexp" + "strconv" + "strings" + "time" + + "github.com/golang/protobuf/proto" + "golang.org/x/net/context" + + "google.golang.org/appengine/internal" + pb "google.golang.org/appengine/internal/remote_api" +) + +// Client is a connection to the production APIs for an application. +type Client struct { + hc *http.Client + url string + appID string +} + +// NewClient returns a client for the given host. All communication will +// be performed over SSL unless the host is localhost. +func NewClient(host string, client *http.Client) (*Client, error) { + // Add an appcfg header to outgoing requests. + wrapClient := new(http.Client) + *wrapClient = *client + t := client.Transport + if t == nil { + t = http.DefaultTransport + } + wrapClient.Transport = &headerAddingRoundTripper{t} + + url := url.URL{ + Scheme: "https", + Host: host, + Path: "/_ah/remote_api", + } + if host == "localhost" || strings.HasPrefix(host, "localhost:") { + url.Scheme = "http" + } + u := url.String() + appID, err := getAppID(wrapClient, u) + if err != nil { + return nil, fmt.Errorf("unable to contact server: %v", err) + } + return &Client{ + hc: wrapClient, + url: u, + appID: appID, + }, nil +} + +// NewContext returns a copy of parent that will cause App Engine API +// calls to be sent to the client's remote host. +func (c *Client) NewContext(parent context.Context) context.Context { + ctx := internal.WithCallOverride(parent, c.call) + ctx = internal.WithLogOverride(ctx, c.logf) + ctx = internal.WithAppIDOverride(ctx, c.appID) + return ctx +} + +// NewRemoteContext returns a context that gives access to the production +// APIs for the application at the given host. All communication will be +// performed over SSL unless the host is localhost. +func NewRemoteContext(host string, client *http.Client) (context.Context, error) { + c, err := NewClient(host, client) + if err != nil { + return nil, err + } + return c.NewContext(context.Background()), nil +} + +var logLevels = map[int64]string{ + 0: "DEBUG", + 1: "INFO", + 2: "WARNING", + 3: "ERROR", + 4: "CRITICAL", +} + +func (c *Client) logf(level int64, format string, args ...interface{}) { + log.Printf(logLevels[level]+": "+format, args...) +} + +func (c *Client) call(ctx context.Context, service, method string, in, out proto.Message) error { + req, err := proto.Marshal(in) + if err != nil { + return fmt.Errorf("error marshalling request: %v", err) + } + + remReq := &pb.Request{ + ServiceName: proto.String(service), + Method: proto.String(method), + Request: req, + // NOTE(djd): RequestId is unused in the server. + } + + req, err = proto.Marshal(remReq) + if err != nil { + return fmt.Errorf("proto.Marshal: %v", err) + } + + // TODO(djd): Respect ctx.Deadline()? + resp, err := c.hc.Post(c.url, "application/octet-stream", bytes.NewReader(req)) + if err != nil { + return fmt.Errorf("error sending request: %v", err) + } + defer resp.Body.Close() + + body, err := ioutil.ReadAll(resp.Body) + if resp.StatusCode != http.StatusOK { + return fmt.Errorf("bad response %d; body: %q", resp.StatusCode, body) + } + if err != nil { + return fmt.Errorf("failed reading response: %v", err) + } + remResp := &pb.Response{} + if err := proto.Unmarshal(body, remResp); err != nil { + return fmt.Errorf("error unmarshalling response: %v", err) + } + + if ae := remResp.GetApplicationError(); ae != nil { + return &internal.APIError{ + Code: ae.GetCode(), + Detail: ae.GetDetail(), + Service: service, + } + } + + if remResp.Response == nil { + return fmt.Errorf("unexpected response: %s", proto.MarshalTextString(remResp)) + } + + return proto.Unmarshal(remResp.Response, out) +} + +// This is a forgiving regexp designed to parse the app ID from YAML. +var appIDRE = regexp.MustCompile(`app_id["']?\s*:\s*['"]?([-a-z0-9.:~]+)`) + +func getAppID(client *http.Client, url string) (string, error) { + // Generate a pseudo-random token for handshaking. + token := strconv.Itoa(rand.New(rand.NewSource(time.Now().UnixNano())).Int()) + + resp, err := client.Get(fmt.Sprintf("%s?rtok=%s", url, token)) + if err != nil { + return "", err + } + defer resp.Body.Close() + + body, err := ioutil.ReadAll(resp.Body) + if resp.StatusCode != http.StatusOK { + return "", fmt.Errorf("bad response %d; body: %q", resp.StatusCode, body) + } + if err != nil { + return "", fmt.Errorf("failed reading response: %v", err) + } + + // Check the token is present in response. + if !bytes.Contains(body, []byte(token)) { + return "", fmt.Errorf("token not found: want %q; body %q", token, body) + } + + match := appIDRE.FindSubmatch(body) + if match == nil { + return "", fmt.Errorf("app ID not found: body %q", body) + } + + return string(match[1]), nil +} + +type headerAddingRoundTripper struct { + Wrapped http.RoundTripper +} + +func (t *headerAddingRoundTripper) RoundTrip(r *http.Request) (*http.Response, error) { + r.Header.Set("X-Appcfg-Api-Version", "1") + return t.Wrapped.RoundTrip(r) +} diff --git a/vendor/google.golang.org/appengine/remote_api/client_test.go b/vendor/google.golang.org/appengine/remote_api/client_test.go new file mode 100644 index 000000000..7f4bdcf3c --- /dev/null +++ b/vendor/google.golang.org/appengine/remote_api/client_test.go @@ -0,0 +1,43 @@ +// Copyright 2014 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package remote_api + +import ( + "log" + "net/http" + "testing" + + "golang.org/x/net/context" + "google.golang.org/appengine/datastore" +) + +func TestAppIDRE(t *testing.T) { + appID := "s~my-appid-539" + tests := []string{ + "{rtok: 8306111115908860449, app_id: s~my-appid-539}\n", + "{rtok: 8306111115908860449, app_id: 's~my-appid-539'}\n", + `{rtok: 8306111115908860449, app_id: "s~my-appid-539"}`, + `{rtok: 8306111115908860449, "app_id":"s~my-appid-539"}`, + } + for _, v := range tests { + if g := appIDRE.FindStringSubmatch(v); g == nil || g[1] != appID { + t.Errorf("appIDRE.FindStringSubmatch(%s) got %q, want %q", v, g, appID) + } + } +} + +func ExampleClient() { + c, err := NewClient("example.appspot.com", http.DefaultClient) + if err != nil { + log.Fatal(err) + } + + ctx := context.Background() // or from a request + ctx = c.NewContext(ctx) + _, err = datastore.Put(ctx, datastore.NewIncompleteKey(ctx, "Foo", nil), struct{ Bar int }{42}) + if err != nil { + log.Fatal(err) + } +} diff --git a/vendor/google.golang.org/appengine/remote_api/remote_api.go b/vendor/google.golang.org/appengine/remote_api/remote_api.go new file mode 100644 index 000000000..3d2880d64 --- /dev/null +++ b/vendor/google.golang.org/appengine/remote_api/remote_api.go @@ -0,0 +1,152 @@ +// Copyright 2012 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +/* +Package remote_api implements the /_ah/remote_api endpoint. +This endpoint is used by offline tools such as the bulk loader. +*/ +package remote_api // import "google.golang.org/appengine/remote_api" + +import ( + "fmt" + "io" + "io/ioutil" + "net/http" + "strconv" + + "github.com/golang/protobuf/proto" + + "google.golang.org/appengine" + "google.golang.org/appengine/internal" + pb "google.golang.org/appengine/internal/remote_api" + "google.golang.org/appengine/log" + "google.golang.org/appengine/user" +) + +func init() { + http.HandleFunc("/_ah/remote_api", handle) +} + +func handle(w http.ResponseWriter, req *http.Request) { + c := appengine.NewContext(req) + + u := user.Current(c) + if u == nil { + u, _ = user.CurrentOAuth(c, + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/appengine.apis", + ) + } + + if !appengine.IsDevAppServer() && (u == nil || !u.Admin) { + w.Header().Set("Content-Type", "text/plain; charset=utf-8") + w.WriteHeader(http.StatusUnauthorized) + io.WriteString(w, "You must be logged in as an administrator to access this.\n") + return + } + if req.Header.Get("X-Appcfg-Api-Version") == "" { + w.Header().Set("Content-Type", "text/plain; charset=utf-8") + w.WriteHeader(http.StatusForbidden) + io.WriteString(w, "This request did not contain a necessary header.\n") + return + } + + if req.Method != "POST" { + // Response must be YAML. + rtok := req.FormValue("rtok") + if rtok == "" { + rtok = "0" + } + w.Header().Set("Content-Type", "text/yaml; charset=utf-8") + fmt.Fprintf(w, `{app_id: %q, rtok: %q}`, internal.FullyQualifiedAppID(c), rtok) + return + } + + defer req.Body.Close() + body, err := ioutil.ReadAll(req.Body) + if err != nil { + w.WriteHeader(http.StatusBadRequest) + log.Errorf(c, "Failed reading body: %v", err) + return + } + remReq := &pb.Request{} + if err := proto.Unmarshal(body, remReq); err != nil { + w.WriteHeader(http.StatusBadRequest) + log.Errorf(c, "Bad body: %v", err) + return + } + + service, method := *remReq.ServiceName, *remReq.Method + if !requestSupported(service, method) { + w.WriteHeader(http.StatusBadRequest) + log.Errorf(c, "Unsupported RPC /%s.%s", service, method) + return + } + + rawReq := &rawMessage{remReq.Request} + rawRes := &rawMessage{} + err = internal.Call(c, service, method, rawReq, rawRes) + + remRes := &pb.Response{} + if err == nil { + remRes.Response = rawRes.buf + } else if ae, ok := err.(*internal.APIError); ok { + remRes.ApplicationError = &pb.ApplicationError{ + Code: &ae.Code, + Detail: &ae.Detail, + } + } else { + // This shouldn't normally happen. + log.Errorf(c, "appengine/remote_api: Unexpected error of type %T: %v", err, err) + remRes.ApplicationError = &pb.ApplicationError{ + Code: proto.Int32(0), + Detail: proto.String(err.Error()), + } + } + out, err := proto.Marshal(remRes) + if err != nil { + // This should not be possible. + w.WriteHeader(500) + log.Errorf(c, "proto.Marshal: %v", err) + return + } + + log.Infof(c, "Spooling %d bytes of response to /%s.%s", len(out), service, method) + w.Header().Set("Content-Type", "application/octet-stream") + w.Header().Set("Content-Length", strconv.Itoa(len(out))) + w.Write(out) +} + +// rawMessage is a protocol buffer type that is already serialised. +// This allows the remote_api code here to handle messages +// without having to know the real type. +type rawMessage struct { + buf []byte +} + +func (rm *rawMessage) Marshal() ([]byte, error) { + return rm.buf, nil +} + +func (rm *rawMessage) Unmarshal(buf []byte) error { + rm.buf = make([]byte, len(buf)) + copy(rm.buf, buf) + return nil +} + +func requestSupported(service, method string) bool { + // This list of supported services is taken from SERVICE_PB_MAP in remote_api_services.py + switch service { + case "app_identity_service", "blobstore", "capability_service", "channel", "datastore_v3", + "datastore_v4", "file", "images", "logservice", "mail", "matcher", "memcache", "remote_datastore", + "remote_socket", "search", "modules", "system", "taskqueue", "urlfetch", "user", "xmpp": + return true + } + return false +} + +// Methods to satisfy proto.Message. +func (rm *rawMessage) Reset() { rm.buf = nil } +func (rm *rawMessage) String() string { return strconv.Quote(string(rm.buf)) } +func (*rawMessage) ProtoMessage() {} diff --git a/vendor/google.golang.org/appengine/runtime/runtime.go b/vendor/google.golang.org/appengine/runtime/runtime.go new file mode 100644 index 000000000..fa6c12b79 --- /dev/null +++ b/vendor/google.golang.org/appengine/runtime/runtime.go @@ -0,0 +1,148 @@ +// Copyright 2011 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +/* +Package runtime exposes information about the resource usage of the application. +It also provides a way to run code in a new background context of a module. + +This package does not work on App Engine "flexible environment". +*/ +package runtime // import "google.golang.org/appengine/runtime" + +import ( + "net/http" + + "golang.org/x/net/context" + + "google.golang.org/appengine" + "google.golang.org/appengine/internal" + pb "google.golang.org/appengine/internal/system" +) + +// Statistics represents the system's statistics. +type Statistics struct { + // CPU records the CPU consumed by this instance, in megacycles. + CPU struct { + Total float64 + Rate1M float64 // consumption rate over one minute + Rate10M float64 // consumption rate over ten minutes + } + // RAM records the memory used by the instance, in megabytes. + RAM struct { + Current float64 + Average1M float64 // average usage over one minute + Average10M float64 // average usage over ten minutes + } +} + +func Stats(c context.Context) (*Statistics, error) { + req := &pb.GetSystemStatsRequest{} + res := &pb.GetSystemStatsResponse{} + if err := internal.Call(c, "system", "GetSystemStats", req, res); err != nil { + return nil, err + } + s := &Statistics{} + if res.Cpu != nil { + s.CPU.Total = res.Cpu.GetTotal() + s.CPU.Rate1M = res.Cpu.GetRate1M() + s.CPU.Rate10M = res.Cpu.GetRate10M() + } + if res.Memory != nil { + s.RAM.Current = res.Memory.GetCurrent() + s.RAM.Average1M = res.Memory.GetAverage1M() + s.RAM.Average10M = res.Memory.GetAverage10M() + } + return s, nil +} + +/* +RunInBackground makes an API call that triggers an /_ah/background request. + +There are two independent code paths that need to make contact: +the RunInBackground code, and the /_ah/background handler. The matchmaker +loop arranges for the two paths to meet. The RunInBackground code passes +a send to the matchmaker, the /_ah/background passes a recv to the matchmaker, +and the matchmaker hooks them up. +*/ + +func init() { + http.HandleFunc("/_ah/background", handleBackground) + + sc := make(chan send) + rc := make(chan recv) + sendc, recvc = sc, rc + go matchmaker(sc, rc) +} + +var ( + sendc chan<- send // RunInBackground sends to this + recvc chan<- recv // handleBackground sends to this +) + +type send struct { + id string + f func(context.Context) +} + +type recv struct { + id string + ch chan<- func(context.Context) +} + +func matchmaker(sendc <-chan send, recvc <-chan recv) { + // When one side of the match arrives before the other + // it is inserted in the corresponding map. + waitSend := make(map[string]send) + waitRecv := make(map[string]recv) + + for { + select { + case s := <-sendc: + if r, ok := waitRecv[s.id]; ok { + // meet! + delete(waitRecv, s.id) + r.ch <- s.f + } else { + // waiting for r + waitSend[s.id] = s + } + case r := <-recvc: + if s, ok := waitSend[r.id]; ok { + // meet! + delete(waitSend, r.id) + r.ch <- s.f + } else { + // waiting for s + waitRecv[r.id] = r + } + } + } +} + +var newContext = appengine.NewContext // for testing + +func handleBackground(w http.ResponseWriter, req *http.Request) { + id := req.Header.Get("X-AppEngine-BackgroundRequest") + + ch := make(chan func(context.Context)) + recvc <- recv{id, ch} + (<-ch)(newContext(req)) +} + +// RunInBackground runs f in a background goroutine in this process. +// f is provided a context that may outlast the context provided to RunInBackground. +// This is only valid to invoke from a service set to basic or manual scaling. +func RunInBackground(c context.Context, f func(c context.Context)) error { + req := &pb.StartBackgroundRequestRequest{} + res := &pb.StartBackgroundRequestResponse{} + if err := internal.Call(c, "system", "StartBackgroundRequest", req, res); err != nil { + return err + } + sendc <- send{res.GetRequestId(), f} + return nil +} + +func init() { + internal.RegisterErrorCodeMap("system", pb.SystemServiceError_ErrorCode_name) +} diff --git a/vendor/google.golang.org/appengine/runtime/runtime_test.go b/vendor/google.golang.org/appengine/runtime/runtime_test.go new file mode 100644 index 000000000..8f3a124d2 --- /dev/null +++ b/vendor/google.golang.org/appengine/runtime/runtime_test.go @@ -0,0 +1,101 @@ +// Copyright 2012 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package runtime + +import ( + "fmt" + "net/http" + "net/http/httptest" + "testing" + "time" + + "github.com/golang/protobuf/proto" + "golang.org/x/net/context" + + "google.golang.org/appengine/internal/aetesting" + pb "google.golang.org/appengine/internal/system" +) + +func TestRunInBackgroundSendFirst(t *testing.T) { testRunInBackground(t, true) } +func TestRunInBackgroundRecvFirst(t *testing.T) { testRunInBackground(t, false) } + +func testRunInBackground(t *testing.T, sendFirst bool) { + srv := httptest.NewServer(nil) + defer srv.Close() + + const id = "f00bar" + sendWait, recvWait := make(chan bool), make(chan bool) + sbr := make(chan bool) // strobed when system.StartBackgroundRequest has started + + calls := 0 + c := aetesting.FakeSingleContext(t, "system", "StartBackgroundRequest", func(req *pb.StartBackgroundRequestRequest, res *pb.StartBackgroundRequestResponse) error { + calls++ + if calls > 1 { + t.Errorf("Too many calls to system.StartBackgroundRequest") + } + sbr <- true + res.RequestId = proto.String(id) + <-sendWait + return nil + }) + + var c2 context.Context // a fake + newContext = func(*http.Request) context.Context { + return c2 + } + + var fRun int + f := func(c3 context.Context) { + fRun++ + if c3 != c2 { + t.Errorf("f got a different context than expected") + } + } + + ribErrc := make(chan error) + go func() { + ribErrc <- RunInBackground(c, f) + }() + + brErrc := make(chan error) + go func() { + <-sbr + req, err := http.NewRequest("GET", srv.URL+"/_ah/background", nil) + if err != nil { + brErrc <- fmt.Errorf("http.NewRequest: %v", err) + return + } + req.Header.Set("X-AppEngine-BackgroundRequest", id) + client := &http.Client{ + Transport: &http.Transport{ + Proxy: http.ProxyFromEnvironment, + }, + } + + <-recvWait + _, err = client.Do(req) + brErrc <- err + }() + + // Send and receive are both waiting at this point. + waits := [2]chan bool{sendWait, recvWait} + if !sendFirst { + waits[0], waits[1] = waits[1], waits[0] + } + waits[0] <- true + time.Sleep(100 * time.Millisecond) + waits[1] <- true + + if err := <-ribErrc; err != nil { + t.Fatalf("RunInBackground: %v", err) + } + if err := <-brErrc; err != nil { + t.Fatalf("background request: %v", err) + } + + if fRun != 1 { + t.Errorf("Got %d runs of f, want 1", fRun) + } +} diff --git a/vendor/google.golang.org/appengine/search/doc.go b/vendor/google.golang.org/appengine/search/doc.go new file mode 100644 index 000000000..5208f18f6 --- /dev/null +++ b/vendor/google.golang.org/appengine/search/doc.go @@ -0,0 +1,209 @@ +// Copyright 2015 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +/* +Package search provides a client for App Engine's search service. + + +Basic Operations + +Indexes contain documents. Each index is identified by its name: a +human-readable ASCII string. + +Within an index, documents are associated with an ID, which is also +a human-readable ASCII string. A document's contents are a mapping from +case-sensitive field names to values. Valid types for field values are: + - string, + - search.Atom, + - search.HTML, + - time.Time (stored with millisecond precision), + - float64 (value between -2,147,483,647 and 2,147,483,647 inclusive), + - appengine.GeoPoint. + +The Get and Put methods on an Index load and save a document. +A document's contents are typically represented by a struct pointer. + +Example code: + + type Doc struct { + Author string + Comment string + Creation time.Time + } + + index, err := search.Open("comments") + if err != nil { + return err + } + newID, err := index.Put(ctx, "", &Doc{ + Author: "gopher", + Comment: "the truth of the matter", + Creation: time.Now(), + }) + if err != nil { + return err + } + +A single document can be retrieved by its ID. Pass a destination struct +to Get to hold the resulting document. + + var doc Doc + err := index.Get(ctx, id, &doc) + if err != nil { + return err + } + + +Search and Listing Documents + +Indexes have two methods for retrieving multiple documents at once: Search and +List. + +Searching an index for a query will result in an iterator. As with an iterator +from package datastore, pass a destination struct to Next to decode the next +result. Next will return Done when the iterator is exhausted. + + for t := index.Search(ctx, "Comment:truth", nil); ; { + var doc Doc + id, err := t.Next(&doc) + if err == search.Done { + break + } + if err != nil { + return err + } + fmt.Fprintf(w, "%s -> %#v\n", id, doc) + } + +Search takes a string query to determine which documents to return. The query +can be simple, such as a single word to match, or complex. The query +language is described at +https://cloud.google.com/appengine/docs/standard/go/search/query_strings + +Search also takes an optional SearchOptions struct which gives much more +control over how results are calculated and returned. + +Call List to iterate over all documents in an index. + + for t := index.List(ctx, nil); ; { + var doc Doc + id, err := t.Next(&doc) + if err == search.Done { + break + } + if err != nil { + return err + } + fmt.Fprintf(w, "%s -> %#v\n", id, doc) + } + + +Fields and Facets + +A document's contents can be represented by a variety of types. These are +typically struct pointers, but they can also be represented by any type +implementing the FieldLoadSaver interface. The FieldLoadSaver allows metadata +to be set for the document with the DocumentMetadata type. Struct pointers are +more strongly typed and are easier to use; FieldLoadSavers are more flexible. + +A document's contents can be expressed in two ways: fields and facets. + +Fields are the most common way of providing content for documents. Fields can +store data in multiple types and can be matched in searches using query +strings. + +Facets provide a way to attach categorical information to a document. The only +valid types for facets are search.Atom and float64. Facets allow search +results to contain summaries of the categories matched in a search, and to +restrict searches to only match against specific categories. + +By default, for struct pointers, all of the struct fields are used as document +fields, and the field name used is the same as on the struct (and hence must +start with an upper case letter). Struct fields may have a +`search:"name,options"` tag. The name must start with a letter and be +composed only of word characters. A "-" tag name means that the field will be +ignored. If options is "facet" then the struct field will be used as a +document facet. If options is "" then the comma may be omitted. There are no +other recognized options. + +Example code: + + // A and B are renamed to a and b. + // A, C and I are facets. + // D's tag is equivalent to having no tag at all (E). + // F and G are ignored entirely by the search package. + // I has tag information for both the search and json packages. + type TaggedStruct struct { + A float64 `search:"a,facet"` + B float64 `search:"b"` + C float64 `search:",facet"` + D float64 `search:""` + E float64 + F float64 `search:"-"` + G float64 `search:"-,facet"` + I float64 `search:",facet" json:"i"` + } + + +The FieldLoadSaver Interface + +A document's contents can also be represented by any type that implements the +FieldLoadSaver interface. This type may be a struct pointer, but it +does not have to be. The search package will call Load when loading the +document's contents, and Save when saving them. In addition to a slice of +Fields, the Load and Save methods also use the DocumentMetadata type to +provide additional information about a document (such as its Rank, or set of +Facets). Possible uses for this interface include deriving non-stored fields, +verifying fields or setting specific languages for string and HTML fields. + +Example code: + + type CustomFieldsExample struct { + // Item's title and which language it is in. + Title string + Lang string + // Mass, in grams. + Mass int + } + + func (x *CustomFieldsExample) Load(fields []search.Field, meta *search.DocumentMetadata) error { + // Load the title field, failing if any other field is found. + for _, f := range fields { + if f.Name != "title" { + return fmt.Errorf("unknown field %q", f.Name) + } + s, ok := f.Value.(string) + if !ok { + return fmt.Errorf("unsupported type %T for field %q", f.Value, f.Name) + } + x.Title = s + x.Lang = f.Language + } + // Load the mass facet, failing if any other facet is found. + for _, f := range meta.Facets { + if f.Name != "mass" { + return fmt.Errorf("unknown facet %q", f.Name) + } + m, ok := f.Value.(float64) + if !ok { + return fmt.Errorf("unsupported type %T for facet %q", f.Value, f.Name) + } + x.Mass = int(m) + } + return nil + } + + func (x *CustomFieldsExample) Save() ([]search.Field, *search.DocumentMetadata, error) { + fields := []search.Field{ + {Name: "title", Value: x.Title, Language: x.Lang}, + } + meta := &search.DocumentMetadata{ + Facets: { + {Name: "mass", Value: float64(x.Mass)}, + }, + } + return fields, meta, nil + } +*/ +package search diff --git a/vendor/google.golang.org/appengine/search/field.go b/vendor/google.golang.org/appengine/search/field.go new file mode 100644 index 000000000..707c2d8c0 --- /dev/null +++ b/vendor/google.golang.org/appengine/search/field.go @@ -0,0 +1,82 @@ +// Copyright 2014 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package search + +// Field is a name/value pair. A search index's document can be loaded and +// saved as a sequence of Fields. +type Field struct { + // Name is the field name. A valid field name matches /[A-Za-z][A-Za-z0-9_]*/. + Name string + // Value is the field value. The valid types are: + // - string, + // - search.Atom, + // - search.HTML, + // - time.Time (stored with millisecond precision), + // - float64, + // - GeoPoint. + Value interface{} + // Language is a two-letter ISO 639-1 code for the field's language, + // defaulting to "en" if nothing is specified. It may only be specified for + // fields of type string and search.HTML. + Language string + // Derived marks fields that were calculated as a result of a + // FieldExpression provided to Search. This field is ignored when saving a + // document. + Derived bool +} + +// Facet is a name/value pair which is used to add categorical information to a +// document. +type Facet struct { + // Name is the facet name. A valid facet name matches /[A-Za-z][A-Za-z0-9_]*/. + // A facet name cannot be longer than 500 characters. + Name string + // Value is the facet value. + // + // When being used in documents (for example, in + // DocumentMetadata.Facets), the valid types are: + // - search.Atom, + // - float64. + // + // When being used in SearchOptions.Refinements or being returned + // in FacetResult, the valid types are: + // - search.Atom, + // - search.Range. + Value interface{} +} + +// DocumentMetadata is a struct containing information describing a given document. +type DocumentMetadata struct { + // Rank is an integer specifying the order the document will be returned in + // search results. If zero, the rank will be set to the number of seconds since + // 2011-01-01 00:00:00 UTC when being Put into an index. + Rank int + // Facets is the set of facets for this document. + Facets []Facet +} + +// FieldLoadSaver can be converted from and to a slice of Fields +// with additional document metadata. +type FieldLoadSaver interface { + Load([]Field, *DocumentMetadata) error + Save() ([]Field, *DocumentMetadata, error) +} + +// FieldList converts a []Field to implement FieldLoadSaver. +type FieldList []Field + +// Load loads all of the provided fields into l. +// It does not first reset *l to an empty slice. +func (l *FieldList) Load(f []Field, _ *DocumentMetadata) error { + *l = append(*l, f...) + return nil +} + +// Save returns all of l's fields as a slice of Fields. +func (l *FieldList) Save() ([]Field, *DocumentMetadata, error) { + return *l, nil, nil +} + +var _ FieldLoadSaver = (*FieldList)(nil) diff --git a/vendor/google.golang.org/appengine/search/search.go b/vendor/google.golang.org/appengine/search/search.go new file mode 100644 index 000000000..35a567d62 --- /dev/null +++ b/vendor/google.golang.org/appengine/search/search.go @@ -0,0 +1,1189 @@ +// Copyright 2012 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package search // import "google.golang.org/appengine/search" + +// TODO: let Put specify the document language: "en", "fr", etc. Also: order_id?? storage?? +// TODO: Index.GetAll (or Iterator.GetAll)? +// TODO: struct <-> protobuf tests. +// TODO: enforce Python's MIN_NUMBER_VALUE and MIN_DATE (which would disallow a zero +// time.Time)? _MAXIMUM_STRING_LENGTH? + +import ( + "errors" + "fmt" + "math" + "reflect" + "regexp" + "strconv" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/proto" + "golang.org/x/net/context" + + "google.golang.org/appengine" + "google.golang.org/appengine/internal" + pb "google.golang.org/appengine/internal/search" +) + +const maxDocumentsPerPutDelete = 200 + +var ( + // ErrInvalidDocumentType is returned when methods like Put, Get or Next + // are passed a dst or src argument of invalid type. + ErrInvalidDocumentType = errors.New("search: invalid document type") + + // ErrNoSuchDocument is returned when no document was found for a given ID. + ErrNoSuchDocument = errors.New("search: no such document") + + // ErrTooManyDocuments is returned when the user passes too many documents to + // PutMulti or DeleteMulti. + ErrTooManyDocuments = fmt.Errorf("search: too many documents given to put or delete (max is %d)", maxDocumentsPerPutDelete) +) + +// Atom is a document field whose contents are indexed as a single indivisible +// string. +type Atom string + +// HTML is a document field whose contents are indexed as HTML. Only text nodes +// are indexed: "foobar" will be treated as "foobar". +type HTML string + +// validIndexNameOrDocID is the Go equivalent of Python's +// _ValidateVisiblePrintableAsciiNotReserved. +func validIndexNameOrDocID(s string) bool { + if strings.HasPrefix(s, "!") { + return false + } + for _, c := range s { + if c < 0x21 || 0x7f <= c { + return false + } + } + return true +} + +var ( + fieldNameRE = regexp.MustCompile(`^[A-Za-z][A-Za-z0-9_]*$`) + languageRE = regexp.MustCompile(`^[a-z]{2}$`) +) + +// validFieldName is the Go equivalent of Python's _CheckFieldName. It checks +// the validity of both field and facet names. +func validFieldName(s string) bool { + return len(s) <= 500 && fieldNameRE.MatchString(s) +} + +// validDocRank checks that the ranks is in the range [0, 2^31). +func validDocRank(r int) bool { + return 0 <= r && r <= (1<<31-1) +} + +// validLanguage checks that a language looks like ISO 639-1. +func validLanguage(s string) bool { + return languageRE.MatchString(s) +} + +// validFloat checks that f is in the range [-2147483647, 2147483647]. +func validFloat(f float64) bool { + return -(1<<31-1) <= f && f <= (1<<31-1) +} + +// Index is an index of documents. +type Index struct { + spec pb.IndexSpec +} + +// orderIDEpoch forms the basis for populating OrderId on documents. +var orderIDEpoch = time.Date(2011, 1, 1, 0, 0, 0, 0, time.UTC) + +// Open opens the index with the given name. The index is created if it does +// not already exist. +// +// The name is a human-readable ASCII string. It must contain no whitespace +// characters and not start with "!". +func Open(name string) (*Index, error) { + if !validIndexNameOrDocID(name) { + return nil, fmt.Errorf("search: invalid index name %q", name) + } + return &Index{ + spec: pb.IndexSpec{ + Name: &name, + }, + }, nil +} + +// Put saves src to the index. If id is empty, a new ID is allocated by the +// service and returned. If id is not empty, any existing index entry for that +// ID is replaced. +// +// The ID is a human-readable ASCII string. It must contain no whitespace +// characters and not start with "!". +// +// src must be a non-nil struct pointer or implement the FieldLoadSaver +// interface. +func (x *Index) Put(c context.Context, id string, src interface{}) (string, error) { + ids, err := x.PutMulti(c, []string{id}, []interface{}{src}) + if err != nil { + return "", err + } + return ids[0], nil +} + +// PutMulti is like Put, but is more efficient for adding multiple documents to +// the index at once. +// +// Up to 200 documents can be added at once. ErrTooManyDocuments is returned if +// you try to add more. +// +// ids can either be an empty slice (which means new IDs will be allocated for +// each of the documents added) or a slice the same size as srcs. +// +// The error may be an instance of appengine.MultiError, in which case it will +// be the same size as srcs and the individual errors inside will correspond +// with the items in srcs. +func (x *Index) PutMulti(c context.Context, ids []string, srcs []interface{}) ([]string, error) { + if len(ids) != 0 && len(srcs) != len(ids) { + return nil, fmt.Errorf("search: PutMulti expects ids and srcs slices of the same length") + } + if len(srcs) > maxDocumentsPerPutDelete { + return nil, ErrTooManyDocuments + } + + docs := make([]*pb.Document, len(srcs)) + for i, s := range srcs { + var err error + docs[i], err = saveDoc(s) + if err != nil { + return nil, err + } + + if len(ids) != 0 && ids[i] != "" { + if !validIndexNameOrDocID(ids[i]) { + return nil, fmt.Errorf("search: invalid ID %q", ids[i]) + } + docs[i].Id = proto.String(ids[i]) + } + } + + // spec is modified by Call when applying the current Namespace, so copy it to + // avoid retaining the namespace beyond the scope of the Call. + spec := x.spec + req := &pb.IndexDocumentRequest{ + Params: &pb.IndexDocumentParams{ + Document: docs, + IndexSpec: &spec, + }, + } + res := &pb.IndexDocumentResponse{} + if err := internal.Call(c, "search", "IndexDocument", req, res); err != nil { + return nil, err + } + multiErr, hasErr := make(appengine.MultiError, len(res.Status)), false + for i, s := range res.Status { + if s.GetCode() != pb.SearchServiceError_OK { + multiErr[i] = fmt.Errorf("search: %s: %s", s.GetCode(), s.GetErrorDetail()) + hasErr = true + } + } + if hasErr { + return res.DocId, multiErr + } + + if len(res.Status) != len(docs) || len(res.DocId) != len(docs) { + return nil, fmt.Errorf("search: internal error: wrong number of results (%d Statuses, %d DocIDs, expected %d)", + len(res.Status), len(res.DocId), len(docs)) + } + return res.DocId, nil +} + +// Get loads the document with the given ID into dst. +// +// The ID is a human-readable ASCII string. It must be non-empty, contain no +// whitespace characters and not start with "!". +// +// dst must be a non-nil struct pointer or implement the FieldLoadSaver +// interface. +// +// ErrFieldMismatch is returned when a field is to be loaded into a different +// type than the one it was stored from, or when a field is missing or +// unexported in the destination struct. ErrFieldMismatch is only returned if +// dst is a struct pointer. It is up to the callee to decide whether this error +// is fatal, recoverable, or ignorable. +func (x *Index) Get(c context.Context, id string, dst interface{}) error { + if id == "" || !validIndexNameOrDocID(id) { + return fmt.Errorf("search: invalid ID %q", id) + } + req := &pb.ListDocumentsRequest{ + Params: &pb.ListDocumentsParams{ + IndexSpec: &x.spec, + StartDocId: proto.String(id), + Limit: proto.Int32(1), + }, + } + res := &pb.ListDocumentsResponse{} + if err := internal.Call(c, "search", "ListDocuments", req, res); err != nil { + return err + } + if res.Status == nil || res.Status.GetCode() != pb.SearchServiceError_OK { + return fmt.Errorf("search: %s: %s", res.Status.GetCode(), res.Status.GetErrorDetail()) + } + if len(res.Document) != 1 || res.Document[0].GetId() != id { + return ErrNoSuchDocument + } + return loadDoc(dst, res.Document[0], nil) +} + +// Delete deletes a document from the index. +func (x *Index) Delete(c context.Context, id string) error { + return x.DeleteMulti(c, []string{id}) +} + +// DeleteMulti deletes multiple documents from the index. +// +// The returned error may be an instance of appengine.MultiError, in which case +// it will be the same size as srcs and the individual errors inside will +// correspond with the items in srcs. +func (x *Index) DeleteMulti(c context.Context, ids []string) error { + if len(ids) > maxDocumentsPerPutDelete { + return ErrTooManyDocuments + } + + req := &pb.DeleteDocumentRequest{ + Params: &pb.DeleteDocumentParams{ + DocId: ids, + IndexSpec: &x.spec, + }, + } + res := &pb.DeleteDocumentResponse{} + if err := internal.Call(c, "search", "DeleteDocument", req, res); err != nil { + return err + } + if len(res.Status) != len(ids) { + return fmt.Errorf("search: internal error: wrong number of results (%d, expected %d)", + len(res.Status), len(ids)) + } + multiErr, hasErr := make(appengine.MultiError, len(ids)), false + for i, s := range res.Status { + if s.GetCode() != pb.SearchServiceError_OK { + multiErr[i] = fmt.Errorf("search: %s: %s", s.GetCode(), s.GetErrorDetail()) + hasErr = true + } + } + if hasErr { + return multiErr + } + return nil +} + +// List lists all of the documents in an index. The documents are returned in +// increasing ID order. +func (x *Index) List(c context.Context, opts *ListOptions) *Iterator { + t := &Iterator{ + c: c, + index: x, + count: -1, + listInclusive: true, + more: moreList, + } + if opts != nil { + t.listStartID = opts.StartID + t.limit = opts.Limit + t.idsOnly = opts.IDsOnly + } + return t +} + +func moreList(t *Iterator) error { + req := &pb.ListDocumentsRequest{ + Params: &pb.ListDocumentsParams{ + IndexSpec: &t.index.spec, + }, + } + if t.listStartID != "" { + req.Params.StartDocId = &t.listStartID + req.Params.IncludeStartDoc = &t.listInclusive + } + if t.limit > 0 { + req.Params.Limit = proto.Int32(int32(t.limit)) + } + if t.idsOnly { + req.Params.KeysOnly = &t.idsOnly + } + + res := &pb.ListDocumentsResponse{} + if err := internal.Call(t.c, "search", "ListDocuments", req, res); err != nil { + return err + } + if res.Status == nil || res.Status.GetCode() != pb.SearchServiceError_OK { + return fmt.Errorf("search: %s: %s", res.Status.GetCode(), res.Status.GetErrorDetail()) + } + t.listRes = res.Document + t.listStartID, t.listInclusive, t.more = "", false, nil + if len(res.Document) != 0 && t.limit <= 0 { + if id := res.Document[len(res.Document)-1].GetId(); id != "" { + t.listStartID, t.more = id, moreList + } + } + return nil +} + +// ListOptions are the options for listing documents in an index. Passing a nil +// *ListOptions is equivalent to using the default values. +type ListOptions struct { + // StartID is the inclusive lower bound for the ID of the returned + // documents. The zero value means all documents will be returned. + StartID string + + // Limit is the maximum number of documents to return. The zero value + // indicates no limit. + Limit int + + // IDsOnly indicates that only document IDs should be returned for the list + // operation; no document fields are populated. + IDsOnly bool +} + +// Search searches the index for the given query. +func (x *Index) Search(c context.Context, query string, opts *SearchOptions) *Iterator { + t := &Iterator{ + c: c, + index: x, + searchQuery: query, + more: moreSearch, + } + if opts != nil { + if opts.Cursor != "" { + if opts.Offset != 0 { + return errIter("at most one of Cursor and Offset may be specified") + } + t.searchCursor = proto.String(string(opts.Cursor)) + } + t.limit = opts.Limit + t.fields = opts.Fields + t.idsOnly = opts.IDsOnly + t.sort = opts.Sort + t.exprs = opts.Expressions + t.refinements = opts.Refinements + t.facetOpts = opts.Facets + t.searchOffset = opts.Offset + t.countAccuracy = opts.CountAccuracy + } + return t +} + +func moreSearch(t *Iterator) error { + // We use per-result (rather than single/per-page) cursors since this + // lets us return a Cursor for every iterator document. The two cursor + // types are largely interchangeable: a page cursor is the same as the + // last per-result cursor in a given search response. + req := &pb.SearchRequest{ + Params: &pb.SearchParams{ + IndexSpec: &t.index.spec, + Query: &t.searchQuery, + Cursor: t.searchCursor, + CursorType: pb.SearchParams_PER_RESULT.Enum(), + FieldSpec: &pb.FieldSpec{ + Name: t.fields, + }, + }, + } + if t.limit > 0 { + req.Params.Limit = proto.Int32(int32(t.limit)) + } + if t.searchOffset > 0 { + req.Params.Offset = proto.Int32(int32(t.searchOffset)) + t.searchOffset = 0 + } + if t.countAccuracy > 0 { + req.Params.MatchedCountAccuracy = proto.Int32(int32(t.countAccuracy)) + } + if t.idsOnly { + req.Params.KeysOnly = &t.idsOnly + } + if t.sort != nil { + if err := sortToProto(t.sort, req.Params); err != nil { + return err + } + } + if t.refinements != nil { + if err := refinementsToProto(t.refinements, req.Params); err != nil { + return err + } + } + for _, e := range t.exprs { + req.Params.FieldSpec.Expression = append(req.Params.FieldSpec.Expression, &pb.FieldSpec_Expression{ + Name: proto.String(e.Name), + Expression: proto.String(e.Expr), + }) + } + for _, f := range t.facetOpts { + if err := f.setParams(req.Params); err != nil { + return fmt.Errorf("bad FacetSearchOption: %v", err) + } + } + // Don't repeat facet search. + t.facetOpts = nil + + res := &pb.SearchResponse{} + if err := internal.Call(t.c, "search", "Search", req, res); err != nil { + return err + } + if res.Status == nil || res.Status.GetCode() != pb.SearchServiceError_OK { + return fmt.Errorf("search: %s: %s", res.Status.GetCode(), res.Status.GetErrorDetail()) + } + t.searchRes = res.Result + if len(res.FacetResult) > 0 { + t.facetRes = res.FacetResult + } + t.count = int(*res.MatchedCount) + if t.limit > 0 { + t.more = nil + } else { + t.more = moreSearch + } + return nil +} + +// SearchOptions are the options for searching an index. Passing a nil +// *SearchOptions is equivalent to using the default values. +type SearchOptions struct { + // Limit is the maximum number of documents to return. The zero value + // indicates no limit. + Limit int + + // IDsOnly indicates that only document IDs should be returned for the search + // operation; no document fields are populated. + IDsOnly bool + + // Sort controls the ordering of search results. + Sort *SortOptions + + // Fields specifies which document fields to include in the results. If omitted, + // all document fields are returned. No more than 100 fields may be specified. + Fields []string + + // Expressions specifies additional computed fields to add to each returned + // document. + Expressions []FieldExpression + + // Facets controls what facet information is returned for these search results. + // If no options are specified, no facet results will be returned. + Facets []FacetSearchOption + + // Refinements filters the returned documents by requiring them to contain facets + // with specific values. Refinements are applied in conjunction for facets with + // different names, and in disjunction otherwise. + Refinements []Facet + + // Cursor causes the results to commence with the first document after + // the document associated with the cursor. + Cursor Cursor + + // Offset specifies the number of documents to skip over before returning results. + // When specified, Cursor must be nil. + Offset int + + // CountAccuracy specifies the maximum result count that can be expected to + // be accurate. If zero, the count accuracy defaults to 20. + CountAccuracy int +} + +// Cursor represents an iterator's position. +// +// The string value of a cursor is web-safe. It can be saved and restored +// for later use. +type Cursor string + +// FieldExpression defines a custom expression to evaluate for each result. +type FieldExpression struct { + // Name is the name to use for the computed field. + Name string + + // Expr is evaluated to provide a custom content snippet for each document. + // See https://cloud.google.com/appengine/docs/standard/go/search/options for + // the supported expression syntax. + Expr string +} + +// FacetSearchOption controls what facet information is returned in search results. +type FacetSearchOption interface { + setParams(*pb.SearchParams) error +} + +// AutoFacetDiscovery returns a FacetSearchOption which enables automatic facet +// discovery for the search. Automatic facet discovery looks for the facets +// which appear the most often in the aggregate in the matched documents. +// +// The maximum number of facets returned is controlled by facetLimit, and the +// maximum number of values per facet by facetLimit. A limit of zero indicates +// a default limit should be used. +func AutoFacetDiscovery(facetLimit, valueLimit int) FacetSearchOption { + return &autoFacetOpt{facetLimit, valueLimit} +} + +type autoFacetOpt struct { + facetLimit, valueLimit int +} + +const defaultAutoFacetLimit = 10 // As per python runtime search.py. + +func (o *autoFacetOpt) setParams(params *pb.SearchParams) error { + lim := int32(o.facetLimit) + if lim == 0 { + lim = defaultAutoFacetLimit + } + params.AutoDiscoverFacetCount = &lim + if o.valueLimit > 0 { + params.FacetAutoDetectParam = &pb.FacetAutoDetectParam{ + ValueLimit: proto.Int32(int32(o.valueLimit)), + } + } + return nil +} + +// FacetDiscovery returns a FacetSearchOption which selects a facet to be +// returned with the search results. By default, the most frequently +// occurring values for that facet will be returned. However, you can also +// specify a list of particular Atoms or specific Ranges to return. +func FacetDiscovery(name string, value ...interface{}) FacetSearchOption { + return &facetOpt{name, value} +} + +type facetOpt struct { + name string + values []interface{} +} + +func (o *facetOpt) setParams(params *pb.SearchParams) error { + req := &pb.FacetRequest{Name: &o.name} + params.IncludeFacet = append(params.IncludeFacet, req) + if len(o.values) == 0 { + return nil + } + vtype := reflect.TypeOf(o.values[0]) + reqParam := &pb.FacetRequestParam{} + for _, v := range o.values { + if reflect.TypeOf(v) != vtype { + return errors.New("values must all be Atom, or must all be Range") + } + switch v := v.(type) { + case Atom: + reqParam.ValueConstraint = append(reqParam.ValueConstraint, string(v)) + case Range: + rng, err := rangeToProto(v) + if err != nil { + return fmt.Errorf("invalid range: %v", err) + } + reqParam.Range = append(reqParam.Range, rng) + default: + return fmt.Errorf("unsupported value type %T", v) + } + } + req.Params = reqParam + return nil +} + +// FacetDocumentDepth returns a FacetSearchOption which controls the number of +// documents to be evaluated with preparing facet results. +func FacetDocumentDepth(depth int) FacetSearchOption { + return facetDepthOpt(depth) +} + +type facetDepthOpt int + +func (o facetDepthOpt) setParams(params *pb.SearchParams) error { + params.FacetDepth = proto.Int32(int32(o)) + return nil +} + +// FacetResult represents the number of times a particular facet and value +// appeared in the documents matching a search request. +type FacetResult struct { + Facet + + // Count is the number of times this specific facet and value appeared in the + // matching documents. + Count int +} + +// Range represents a numeric range with inclusive start and exclusive end. +// Start may be specified as math.Inf(-1) to indicate there is no minimum +// value, and End may similarly be specified as math.Inf(1); at least one of +// Start or End must be a finite number. +type Range struct { + Start, End float64 +} + +var ( + negInf = math.Inf(-1) + posInf = math.Inf(1) +) + +// AtLeast returns a Range matching any value greater than, or equal to, min. +func AtLeast(min float64) Range { + return Range{Start: min, End: posInf} +} + +// LessThan returns a Range matching any value less than max. +func LessThan(max float64) Range { + return Range{Start: negInf, End: max} +} + +// SortOptions control the ordering and scoring of search results. +type SortOptions struct { + // Expressions is a slice of expressions representing a multi-dimensional + // sort. + Expressions []SortExpression + + // Scorer, when specified, will cause the documents to be scored according to + // search term frequency. + Scorer Scorer + + // Limit is the maximum number of objects to score and/or sort. Limit cannot + // be more than 10,000. The zero value indicates a default limit. + Limit int +} + +// SortExpression defines a single dimension for sorting a document. +type SortExpression struct { + // Expr is evaluated to provide a sorting value for each document. + // See https://cloud.google.com/appengine/docs/standard/go/search/options for + // the supported expression syntax. + Expr string + + // Reverse causes the documents to be sorted in ascending order. + Reverse bool + + // The default value to use when no field is present or the expresion + // cannot be calculated for a document. For text sorts, Default must + // be of type string; for numeric sorts, float64. + Default interface{} +} + +// A Scorer defines how a document is scored. +type Scorer interface { + toProto(*pb.ScorerSpec) +} + +type enumScorer struct { + enum pb.ScorerSpec_Scorer +} + +func (e enumScorer) toProto(spec *pb.ScorerSpec) { + spec.Scorer = e.enum.Enum() +} + +var ( + // MatchScorer assigns a score based on term frequency in a document. + MatchScorer Scorer = enumScorer{pb.ScorerSpec_MATCH_SCORER} + + // RescoringMatchScorer assigns a score based on the quality of the query + // match. It is similar to a MatchScorer but uses a more complex scoring + // algorithm based on match term frequency and other factors like field type. + // Please be aware that this algorithm is continually refined and can change + // over time without notice. This means that the ordering of search results + // that use this scorer can also change without notice. + RescoringMatchScorer Scorer = enumScorer{pb.ScorerSpec_RESCORING_MATCH_SCORER} +) + +func sortToProto(sort *SortOptions, params *pb.SearchParams) error { + for _, e := range sort.Expressions { + spec := &pb.SortSpec{ + SortExpression: proto.String(e.Expr), + } + if e.Reverse { + spec.SortDescending = proto.Bool(false) + } + if e.Default != nil { + switch d := e.Default.(type) { + case float64: + spec.DefaultValueNumeric = &d + case string: + spec.DefaultValueText = &d + default: + return fmt.Errorf("search: invalid Default type %T for expression %q", d, e.Expr) + } + } + params.SortSpec = append(params.SortSpec, spec) + } + + spec := &pb.ScorerSpec{} + if sort.Limit > 0 { + spec.Limit = proto.Int32(int32(sort.Limit)) + params.ScorerSpec = spec + } + if sort.Scorer != nil { + sort.Scorer.toProto(spec) + params.ScorerSpec = spec + } + + return nil +} + +func refinementsToProto(refinements []Facet, params *pb.SearchParams) error { + for _, r := range refinements { + ref := &pb.FacetRefinement{ + Name: proto.String(r.Name), + } + switch v := r.Value.(type) { + case Atom: + ref.Value = proto.String(string(v)) + case Range: + rng, err := rangeToProto(v) + if err != nil { + return fmt.Errorf("search: refinement for facet %q: %v", r.Name, err) + } + // Unfortunately there are two identical messages for identify Facet ranges. + ref.Range = &pb.FacetRefinement_Range{Start: rng.Start, End: rng.End} + default: + return fmt.Errorf("search: unsupported refinement for facet %q of type %T", r.Name, v) + } + params.FacetRefinement = append(params.FacetRefinement, ref) + } + return nil +} + +func rangeToProto(r Range) (*pb.FacetRange, error) { + rng := &pb.FacetRange{} + if r.Start != negInf { + if !validFloat(r.Start) { + return nil, errors.New("invalid value for Start") + } + rng.Start = proto.String(strconv.FormatFloat(r.Start, 'e', -1, 64)) + } else if r.End == posInf { + return nil, errors.New("either Start or End must be finite") + } + if r.End != posInf { + if !validFloat(r.End) { + return nil, errors.New("invalid value for End") + } + rng.End = proto.String(strconv.FormatFloat(r.End, 'e', -1, 64)) + } + return rng, nil +} + +func protoToRange(rng *pb.FacetRefinement_Range) Range { + r := Range{Start: negInf, End: posInf} + if x, err := strconv.ParseFloat(rng.GetStart(), 64); err != nil { + r.Start = x + } + if x, err := strconv.ParseFloat(rng.GetEnd(), 64); err != nil { + r.End = x + } + return r +} + +// Iterator is the result of searching an index for a query or listing an +// index. +type Iterator struct { + c context.Context + index *Index + err error + + listRes []*pb.Document + listStartID string + listInclusive bool + + searchRes []*pb.SearchResult + facetRes []*pb.FacetResult + searchQuery string + searchCursor *string + searchOffset int + sort *SortOptions + + fields []string + exprs []FieldExpression + refinements []Facet + facetOpts []FacetSearchOption + + more func(*Iterator) error + + count int + countAccuracy int + limit int // items left to return; 0 for unlimited. + idsOnly bool +} + +// errIter returns an iterator that only returns the given error. +func errIter(err string) *Iterator { + return &Iterator{ + err: errors.New(err), + } +} + +// Done is returned when a query iteration has completed. +var Done = errors.New("search: query has no more results") + +// Count returns an approximation of the number of documents matched by the +// query. It is only valid to call for iterators returned by Search. +func (t *Iterator) Count() int { return t.count } + +// fetchMore retrieves more results, if there are no errors or pending results. +func (t *Iterator) fetchMore() { + if t.err == nil && len(t.listRes)+len(t.searchRes) == 0 && t.more != nil { + t.err = t.more(t) + } +} + +// Next returns the ID of the next result. When there are no more results, +// Done is returned as the error. +// +// dst must be a non-nil struct pointer, implement the FieldLoadSaver +// interface, or be a nil interface value. If a non-nil dst is provided, it +// will be filled with the indexed fields. dst is ignored if this iterator was +// created with an IDsOnly option. +func (t *Iterator) Next(dst interface{}) (string, error) { + t.fetchMore() + if t.err != nil { + return "", t.err + } + + var doc *pb.Document + var exprs []*pb.Field + switch { + case len(t.listRes) != 0: + doc = t.listRes[0] + t.listRes = t.listRes[1:] + case len(t.searchRes) != 0: + doc = t.searchRes[0].Document + exprs = t.searchRes[0].Expression + t.searchCursor = t.searchRes[0].Cursor + t.searchRes = t.searchRes[1:] + default: + return "", Done + } + if doc == nil { + return "", errors.New("search: internal error: no document returned") + } + if !t.idsOnly && dst != nil { + if err := loadDoc(dst, doc, exprs); err != nil { + return "", err + } + } + return doc.GetId(), nil +} + +// Cursor returns the cursor associated with the current document (that is, +// the document most recently returned by a call to Next). +// +// Passing this cursor in a future call to Search will cause those results +// to commence with the first document after the current document. +func (t *Iterator) Cursor() Cursor { + if t.searchCursor == nil { + return "" + } + return Cursor(*t.searchCursor) +} + +// Facets returns the facets found within the search results, if any facets +// were requested in the SearchOptions. +func (t *Iterator) Facets() ([][]FacetResult, error) { + t.fetchMore() + if t.err != nil && t.err != Done { + return nil, t.err + } + + var facets [][]FacetResult + for _, f := range t.facetRes { + fres := make([]FacetResult, 0, len(f.Value)) + for _, v := range f.Value { + ref := v.Refinement + facet := FacetResult{ + Facet: Facet{Name: ref.GetName()}, + Count: int(v.GetCount()), + } + if ref.Value != nil { + facet.Value = Atom(*ref.Value) + } else { + facet.Value = protoToRange(ref.Range) + } + fres = append(fres, facet) + } + facets = append(facets, fres) + } + return facets, nil +} + +// saveDoc converts from a struct pointer or +// FieldLoadSaver/FieldMetadataLoadSaver to the Document protobuf. +func saveDoc(src interface{}) (*pb.Document, error) { + var err error + var fields []Field + var meta *DocumentMetadata + switch x := src.(type) { + case FieldLoadSaver: + fields, meta, err = x.Save() + default: + fields, meta, err = saveStructWithMeta(src) + } + if err != nil { + return nil, err + } + + fieldsProto, err := fieldsToProto(fields) + if err != nil { + return nil, err + } + d := &pb.Document{ + Field: fieldsProto, + OrderId: proto.Int32(int32(time.Since(orderIDEpoch).Seconds())), + OrderIdSource: pb.Document_DEFAULTED.Enum(), + } + if meta != nil { + if meta.Rank != 0 { + if !validDocRank(meta.Rank) { + return nil, fmt.Errorf("search: invalid rank %d, must be [0, 2^31)", meta.Rank) + } + *d.OrderId = int32(meta.Rank) + d.OrderIdSource = pb.Document_SUPPLIED.Enum() + } + if len(meta.Facets) > 0 { + facets, err := facetsToProto(meta.Facets) + if err != nil { + return nil, err + } + d.Facet = facets + } + } + return d, nil +} + +func fieldsToProto(src []Field) ([]*pb.Field, error) { + // Maps to catch duplicate time or numeric fields. + timeFields, numericFields := make(map[string]bool), make(map[string]bool) + dst := make([]*pb.Field, 0, len(src)) + for _, f := range src { + if !validFieldName(f.Name) { + return nil, fmt.Errorf("search: invalid field name %q", f.Name) + } + fieldValue := &pb.FieldValue{} + switch x := f.Value.(type) { + case string: + fieldValue.Type = pb.FieldValue_TEXT.Enum() + fieldValue.StringValue = proto.String(x) + case Atom: + fieldValue.Type = pb.FieldValue_ATOM.Enum() + fieldValue.StringValue = proto.String(string(x)) + case HTML: + fieldValue.Type = pb.FieldValue_HTML.Enum() + fieldValue.StringValue = proto.String(string(x)) + case time.Time: + if timeFields[f.Name] { + return nil, fmt.Errorf("search: duplicate time field %q", f.Name) + } + timeFields[f.Name] = true + fieldValue.Type = pb.FieldValue_DATE.Enum() + fieldValue.StringValue = proto.String(strconv.FormatInt(x.UnixNano()/1e6, 10)) + case float64: + if numericFields[f.Name] { + return nil, fmt.Errorf("search: duplicate numeric field %q", f.Name) + } + if !validFloat(x) { + return nil, fmt.Errorf("search: numeric field %q with invalid value %f", f.Name, x) + } + numericFields[f.Name] = true + fieldValue.Type = pb.FieldValue_NUMBER.Enum() + fieldValue.StringValue = proto.String(strconv.FormatFloat(x, 'e', -1, 64)) + case appengine.GeoPoint: + if !x.Valid() { + return nil, fmt.Errorf( + "search: GeoPoint field %q with invalid value %v", + f.Name, x) + } + fieldValue.Type = pb.FieldValue_GEO.Enum() + fieldValue.Geo = &pb.FieldValue_Geo{ + Lat: proto.Float64(x.Lat), + Lng: proto.Float64(x.Lng), + } + default: + return nil, fmt.Errorf("search: unsupported field type: %v", reflect.TypeOf(f.Value)) + } + if f.Language != "" { + switch f.Value.(type) { + case string, HTML: + if !validLanguage(f.Language) { + return nil, fmt.Errorf("search: invalid language for field %q: %q", f.Name, f.Language) + } + fieldValue.Language = proto.String(f.Language) + default: + return nil, fmt.Errorf("search: setting language not supported for field %q of type %T", f.Name, f.Value) + } + } + if p := fieldValue.StringValue; p != nil && !utf8.ValidString(*p) { + return nil, fmt.Errorf("search: %q field is invalid UTF-8: %q", f.Name, *p) + } + dst = append(dst, &pb.Field{ + Name: proto.String(f.Name), + Value: fieldValue, + }) + } + return dst, nil +} + +func facetsToProto(src []Facet) ([]*pb.Facet, error) { + dst := make([]*pb.Facet, 0, len(src)) + for _, f := range src { + if !validFieldName(f.Name) { + return nil, fmt.Errorf("search: invalid facet name %q", f.Name) + } + facetValue := &pb.FacetValue{} + switch x := f.Value.(type) { + case Atom: + if !utf8.ValidString(string(x)) { + return nil, fmt.Errorf("search: %q facet is invalid UTF-8: %q", f.Name, x) + } + facetValue.Type = pb.FacetValue_ATOM.Enum() + facetValue.StringValue = proto.String(string(x)) + case float64: + if !validFloat(x) { + return nil, fmt.Errorf("search: numeric facet %q with invalid value %f", f.Name, x) + } + facetValue.Type = pb.FacetValue_NUMBER.Enum() + facetValue.StringValue = proto.String(strconv.FormatFloat(x, 'e', -1, 64)) + default: + return nil, fmt.Errorf("search: unsupported facet type: %v", reflect.TypeOf(f.Value)) + } + dst = append(dst, &pb.Facet{ + Name: proto.String(f.Name), + Value: facetValue, + }) + } + return dst, nil +} + +// loadDoc converts from protobufs to a struct pointer or +// FieldLoadSaver/FieldMetadataLoadSaver. The src param provides the document's +// stored fields and facets, and any document metadata. An additional slice of +// fields, exprs, may optionally be provided to contain any derived expressions +// requested by the developer. +func loadDoc(dst interface{}, src *pb.Document, exprs []*pb.Field) (err error) { + fields, err := protoToFields(src.Field) + if err != nil { + return err + } + facets, err := protoToFacets(src.Facet) + if err != nil { + return err + } + if len(exprs) > 0 { + exprFields, err := protoToFields(exprs) + if err != nil { + return err + } + // Mark each field as derived. + for i := range exprFields { + exprFields[i].Derived = true + } + fields = append(fields, exprFields...) + } + meta := &DocumentMetadata{ + Rank: int(src.GetOrderId()), + Facets: facets, + } + switch x := dst.(type) { + case FieldLoadSaver: + return x.Load(fields, meta) + default: + return loadStructWithMeta(dst, fields, meta) + } +} + +func protoToFields(fields []*pb.Field) ([]Field, error) { + dst := make([]Field, 0, len(fields)) + for _, field := range fields { + fieldValue := field.GetValue() + f := Field{ + Name: field.GetName(), + } + switch fieldValue.GetType() { + case pb.FieldValue_TEXT: + f.Value = fieldValue.GetStringValue() + f.Language = fieldValue.GetLanguage() + case pb.FieldValue_ATOM: + f.Value = Atom(fieldValue.GetStringValue()) + case pb.FieldValue_HTML: + f.Value = HTML(fieldValue.GetStringValue()) + f.Language = fieldValue.GetLanguage() + case pb.FieldValue_DATE: + sv := fieldValue.GetStringValue() + millis, err := strconv.ParseInt(sv, 10, 64) + if err != nil { + return nil, fmt.Errorf("search: internal error: bad time.Time encoding %q: %v", sv, err) + } + f.Value = time.Unix(0, millis*1e6) + case pb.FieldValue_NUMBER: + sv := fieldValue.GetStringValue() + x, err := strconv.ParseFloat(sv, 64) + if err != nil { + return nil, err + } + f.Value = x + case pb.FieldValue_GEO: + geoValue := fieldValue.GetGeo() + geoPoint := appengine.GeoPoint{geoValue.GetLat(), geoValue.GetLng()} + if !geoPoint.Valid() { + return nil, fmt.Errorf("search: internal error: invalid GeoPoint encoding: %v", geoPoint) + } + f.Value = geoPoint + default: + return nil, fmt.Errorf("search: internal error: unknown data type %s", fieldValue.GetType()) + } + dst = append(dst, f) + } + return dst, nil +} + +func protoToFacets(facets []*pb.Facet) ([]Facet, error) { + if len(facets) == 0 { + return nil, nil + } + dst := make([]Facet, 0, len(facets)) + for _, facet := range facets { + facetValue := facet.GetValue() + f := Facet{ + Name: facet.GetName(), + } + switch facetValue.GetType() { + case pb.FacetValue_ATOM: + f.Value = Atom(facetValue.GetStringValue()) + case pb.FacetValue_NUMBER: + sv := facetValue.GetStringValue() + x, err := strconv.ParseFloat(sv, 64) + if err != nil { + return nil, err + } + f.Value = x + default: + return nil, fmt.Errorf("search: internal error: unknown data type %s", facetValue.GetType()) + } + dst = append(dst, f) + } + return dst, nil +} + +func namespaceMod(m proto.Message, namespace string) { + set := func(s **string) { + if *s == nil { + *s = &namespace + } + } + switch m := m.(type) { + case *pb.IndexDocumentRequest: + set(&m.Params.IndexSpec.Namespace) + case *pb.ListDocumentsRequest: + set(&m.Params.IndexSpec.Namespace) + case *pb.DeleteDocumentRequest: + set(&m.Params.IndexSpec.Namespace) + case *pb.SearchRequest: + set(&m.Params.IndexSpec.Namespace) + } +} + +func init() { + internal.RegisterErrorCodeMap("search", pb.SearchServiceError_ErrorCode_name) + internal.NamespaceMods["search"] = namespaceMod +} diff --git a/vendor/google.golang.org/appengine/search/search_test.go b/vendor/google.golang.org/appengine/search/search_test.go new file mode 100644 index 000000000..0459cd749 --- /dev/null +++ b/vendor/google.golang.org/appengine/search/search_test.go @@ -0,0 +1,1270 @@ +// Copyright 2012 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package search + +import ( + "errors" + "fmt" + "reflect" + "strings" + "testing" + "time" + + "github.com/golang/protobuf/proto" + + "google.golang.org/appengine" + "google.golang.org/appengine/internal/aetesting" + pb "google.golang.org/appengine/internal/search" +) + +type TestDoc struct { + String string + Atom Atom + HTML HTML + Float float64 + Location appengine.GeoPoint + Time time.Time +} + +type FieldListWithMeta struct { + Fields FieldList + Meta *DocumentMetadata +} + +func (f *FieldListWithMeta) Load(fields []Field, meta *DocumentMetadata) error { + f.Meta = meta + return f.Fields.Load(fields, nil) +} + +func (f *FieldListWithMeta) Save() ([]Field, *DocumentMetadata, error) { + fields, _, err := f.Fields.Save() + return fields, f.Meta, err +} + +// Assert that FieldListWithMeta satisfies FieldLoadSaver +var _ FieldLoadSaver = &FieldListWithMeta{} + +var ( + float = 3.14159 + floatOut = "3.14159e+00" + latitude = 37.3894 + longitude = 122.0819 + testGeo = appengine.GeoPoint{latitude, longitude} + testString = "foobar" + testTime = time.Unix(1337324400, 0) + testTimeOut = "1337324400000" + searchMeta = &DocumentMetadata{ + Rank: 42, + } + searchDoc = TestDoc{ + String: testString, + Atom: Atom(testString), + HTML: HTML(testString), + Float: float, + Location: testGeo, + Time: testTime, + } + searchFields = FieldList{ + Field{Name: "String", Value: testString}, + Field{Name: "Atom", Value: Atom(testString)}, + Field{Name: "HTML", Value: HTML(testString)}, + Field{Name: "Float", Value: float}, + Field{Name: "Location", Value: testGeo}, + Field{Name: "Time", Value: testTime}, + } + // searchFieldsWithLang is a copy of the searchFields with the Language field + // set on text/HTML Fields. + searchFieldsWithLang = FieldList{} + protoFields = []*pb.Field{ + newStringValueField("String", testString, pb.FieldValue_TEXT), + newStringValueField("Atom", testString, pb.FieldValue_ATOM), + newStringValueField("HTML", testString, pb.FieldValue_HTML), + newStringValueField("Float", floatOut, pb.FieldValue_NUMBER), + { + Name: proto.String("Location"), + Value: &pb.FieldValue{ + Geo: &pb.FieldValue_Geo{ + Lat: proto.Float64(latitude), + Lng: proto.Float64(longitude), + }, + Type: pb.FieldValue_GEO.Enum(), + }, + }, + newStringValueField("Time", testTimeOut, pb.FieldValue_DATE), + } +) + +func init() { + for _, f := range searchFields { + if f.Name == "String" || f.Name == "HTML" { + f.Language = "en" + } + searchFieldsWithLang = append(searchFieldsWithLang, f) + } +} + +func newStringValueField(name, value string, valueType pb.FieldValue_ContentType) *pb.Field { + return &pb.Field{ + Name: proto.String(name), + Value: &pb.FieldValue{ + StringValue: proto.String(value), + Type: valueType.Enum(), + }, + } +} + +func newFacet(name, value string, valueType pb.FacetValue_ContentType) *pb.Facet { + return &pb.Facet{ + Name: proto.String(name), + Value: &pb.FacetValue{ + StringValue: proto.String(value), + Type: valueType.Enum(), + }, + } +} + +func TestValidIndexNameOrDocID(t *testing.T) { + testCases := []struct { + s string + want bool + }{ + {"", true}, + {"!", false}, + {"$", true}, + {"!bad", false}, + {"good!", true}, + {"alsoGood", true}, + {"has spaces", false}, + {"is_inva\xffid_UTF-8", false}, + {"is_non-ASCïI", false}, + {"underscores_are_ok", true}, + } + for _, tc := range testCases { + if got := validIndexNameOrDocID(tc.s); got != tc.want { + t.Errorf("%q: got %v, want %v", tc.s, got, tc.want) + } + } +} + +func TestLoadDoc(t *testing.T) { + got, want := TestDoc{}, searchDoc + if err := loadDoc(&got, &pb.Document{Field: protoFields}, nil); err != nil { + t.Fatalf("loadDoc: %v", err) + } + if got != want { + t.Errorf("loadDoc: got %v, wanted %v", got, want) + } +} + +func TestSaveDoc(t *testing.T) { + got, err := saveDoc(&searchDoc) + if err != nil { + t.Fatalf("saveDoc: %v", err) + } + want := protoFields + if !reflect.DeepEqual(got.Field, want) { + t.Errorf("\ngot %v\nwant %v", got, want) + } +} + +func TestSaveDocUsesDefaultedRankIfNotSpecified(t *testing.T) { + got, err := saveDoc(&searchDoc) + if err != nil { + t.Fatalf("saveDoc: %v", err) + } + orderIdSource := got.GetOrderIdSource() + if orderIdSource != pb.Document_DEFAULTED { + t.Errorf("OrderIdSource: got %v, wanted DEFAULTED", orderIdSource) + } +} + +func TestLoadFieldList(t *testing.T) { + var got FieldList + want := searchFieldsWithLang + if err := loadDoc(&got, &pb.Document{Field: protoFields}, nil); err != nil { + t.Fatalf("loadDoc: %v", err) + } + if !reflect.DeepEqual(got, want) { + t.Errorf("\ngot %v\nwant %v", got, want) + } +} + +func TestLangFields(t *testing.T) { + fl := &FieldList{ + {Name: "Foo", Value: "I am English", Language: "en"}, + {Name: "Bar", Value: "ç§ã¯æ—¥æœ¬äººã ", Language: "ja"}, + } + var got FieldList + doc, err := saveDoc(fl) + if err != nil { + t.Fatalf("saveDoc: %v", err) + } + if err := loadDoc(&got, doc, nil); err != nil { + t.Fatalf("loadDoc: %v", err) + } + if want := fl; !reflect.DeepEqual(&got, want) { + t.Errorf("got %v\nwant %v", got, want) + } +} + +func TestSaveFieldList(t *testing.T) { + got, err := saveDoc(&searchFields) + if err != nil { + t.Fatalf("saveDoc: %v", err) + } + want := protoFields + if !reflect.DeepEqual(got.Field, want) { + t.Errorf("\ngot %v\nwant %v", got, want) + } +} + +func TestLoadFieldAndExprList(t *testing.T) { + var got, want FieldList + for i, f := range searchFieldsWithLang { + f.Derived = (i >= 2) // First 2 elements are "fields", next are "expressions". + want = append(want, f) + } + doc, expr := &pb.Document{Field: protoFields[:2]}, protoFields[2:] + if err := loadDoc(&got, doc, expr); err != nil { + t.Fatalf("loadDoc: %v", err) + } + if !reflect.DeepEqual(got, want) { + t.Errorf("got %v\nwant %v", got, want) + } +} + +func TestLoadMeta(t *testing.T) { + var got FieldListWithMeta + want := FieldListWithMeta{ + Meta: searchMeta, + Fields: searchFieldsWithLang, + } + doc := &pb.Document{ + Field: protoFields, + OrderId: proto.Int32(42), + OrderIdSource: pb.Document_SUPPLIED.Enum(), + } + if err := loadDoc(&got, doc, nil); err != nil { + t.Fatalf("loadDoc: %v", err) + } + if !reflect.DeepEqual(got, want) { + t.Errorf("\ngot %v\nwant %v", got, want) + } +} + +func TestSaveMeta(t *testing.T) { + got, err := saveDoc(&FieldListWithMeta{ + Meta: searchMeta, + Fields: searchFields, + }) + if err != nil { + t.Fatalf("saveDoc: %v", err) + } + want := &pb.Document{ + Field: protoFields, + OrderId: proto.Int32(42), + OrderIdSource: pb.Document_SUPPLIED.Enum(), + } + if !proto.Equal(got, want) { + t.Errorf("\ngot %v\nwant %v", got, want) + } +} + +func TestSaveMetaWithDefaultedRank(t *testing.T) { + metaWithoutRank := &DocumentMetadata{ + Rank: 0, + } + got, err := saveDoc(&FieldListWithMeta{ + Meta: metaWithoutRank, + Fields: searchFields, + }) + if err != nil { + t.Fatalf("saveDoc: %v", err) + } + want := &pb.Document{ + Field: protoFields, + OrderId: got.OrderId, + OrderIdSource: pb.Document_DEFAULTED.Enum(), + } + if !proto.Equal(got, want) { + t.Errorf("\ngot %v\nwant %v", got, want) + } +} + +func TestSaveWithoutMetaUsesDefaultedRank(t *testing.T) { + got, err := saveDoc(&FieldListWithMeta{ + Fields: searchFields, + }) + if err != nil { + t.Fatalf("saveDoc: %v", err) + } + want := &pb.Document{ + Field: protoFields, + OrderId: got.OrderId, + OrderIdSource: pb.Document_DEFAULTED.Enum(), + } + if !proto.Equal(got, want) { + t.Errorf("\ngot %v\nwant %v", got, want) + } +} + +func TestLoadSaveWithStruct(t *testing.T) { + type gopher struct { + Name string + Info string `search:"about"` + Legs float64 `search:",facet"` + Fuzz Atom `search:"Fur,facet"` + } + + doc := gopher{"Gopher", "Likes slide rules.", 4, Atom("furry")} + pb := &pb.Document{ + Field: []*pb.Field{ + newStringValueField("Name", "Gopher", pb.FieldValue_TEXT), + newStringValueField("about", "Likes slide rules.", pb.FieldValue_TEXT), + }, + Facet: []*pb.Facet{ + newFacet("Legs", "4e+00", pb.FacetValue_NUMBER), + newFacet("Fur", "furry", pb.FacetValue_ATOM), + }, + } + + var gotDoc gopher + if err := loadDoc(&gotDoc, pb, nil); err != nil { + t.Fatalf("loadDoc: %v", err) + } + if !reflect.DeepEqual(gotDoc, doc) { + t.Errorf("loading doc\ngot %v\nwant %v", gotDoc, doc) + } + + gotPB, err := saveDoc(&doc) + if err != nil { + t.Fatalf("saveDoc: %v", err) + } + gotPB.OrderId = nil // Don't test: it's time dependent. + gotPB.OrderIdSource = nil // Don't test because it's contingent on OrderId. + if !proto.Equal(gotPB, pb) { + t.Errorf("saving doc\ngot %v\nwant %v", gotPB, pb) + } +} + +func TestValidFieldNames(t *testing.T) { + testCases := []struct { + name string + valid bool + }{ + {"Normal", true}, + {"Also_OK_123", true}, + {"Not so great", false}, + {"lower_case", true}, + {"Exclaim!", false}, + {"Hello세ìƒì•„ 안녕", false}, + {"", false}, + {"Hεllo", false}, + {strings.Repeat("A", 500), true}, + {strings.Repeat("A", 501), false}, + } + + for _, tc := range testCases { + _, err := saveDoc(&FieldList{ + Field{Name: tc.name, Value: "val"}, + }) + if err != nil && !strings.Contains(err.Error(), "invalid field name") { + t.Errorf("unexpected err %q for field name %q", err, tc.name) + } + if (err == nil) != tc.valid { + t.Errorf("field %q: expected valid %t, received err %v", tc.name, tc.valid, err) + } + } +} + +func TestValidLangs(t *testing.T) { + testCases := []struct { + field Field + valid bool + }{ + {Field{Name: "Foo", Value: "String", Language: ""}, true}, + {Field{Name: "Foo", Value: "String", Language: "en"}, true}, + {Field{Name: "Foo", Value: "String", Language: "aussie"}, false}, + {Field{Name: "Foo", Value: "String", Language: "12"}, false}, + {Field{Name: "Foo", Value: HTML("String"), Language: "en"}, true}, + {Field{Name: "Foo", Value: Atom("String"), Language: "en"}, false}, + {Field{Name: "Foo", Value: 42, Language: "en"}, false}, + } + + for _, tt := range testCases { + _, err := saveDoc(&FieldList{tt.field}) + if err == nil != tt.valid { + t.Errorf("Field %v, got error %v, wanted valid %t", tt.field, err, tt.valid) + } + } +} + +func TestDuplicateFields(t *testing.T) { + testCases := []struct { + desc string + fields FieldList + errMsg string // Non-empty if we expect an error + }{ + { + desc: "multi string", + fields: FieldList{{Name: "FieldA", Value: "val1"}, {Name: "FieldA", Value: "val2"}, {Name: "FieldA", Value: "val3"}}, + }, + { + desc: "multi atom", + fields: FieldList{{Name: "FieldA", Value: Atom("val1")}, {Name: "FieldA", Value: Atom("val2")}, {Name: "FieldA", Value: Atom("val3")}}, + }, + { + desc: "mixed", + fields: FieldList{{Name: "FieldA", Value: testString}, {Name: "FieldA", Value: testTime}, {Name: "FieldA", Value: float}}, + }, + { + desc: "multi time", + fields: FieldList{{Name: "FieldA", Value: testTime}, {Name: "FieldA", Value: testTime}}, + errMsg: `duplicate time field "FieldA"`, + }, + { + desc: "multi num", + fields: FieldList{{Name: "FieldA", Value: float}, {Name: "FieldA", Value: float}}, + errMsg: `duplicate numeric field "FieldA"`, + }, + } + for _, tc := range testCases { + _, err := saveDoc(&tc.fields) + if (err == nil) != (tc.errMsg == "") || (err != nil && !strings.Contains(err.Error(), tc.errMsg)) { + t.Errorf("%s: got err %v, wanted %q", tc.desc, err, tc.errMsg) + } + } +} + +func TestLoadErrFieldMismatch(t *testing.T) { + testCases := []struct { + desc string + dst interface{} + src []*pb.Field + err error + }{ + { + desc: "missing", + dst: &struct{ One string }{}, + src: []*pb.Field{newStringValueField("Two", "woop!", pb.FieldValue_TEXT)}, + err: &ErrFieldMismatch{ + FieldName: "Two", + Reason: "no such struct field", + }, + }, + { + desc: "wrong type", + dst: &struct{ Num float64 }{}, + src: []*pb.Field{newStringValueField("Num", "woop!", pb.FieldValue_TEXT)}, + err: &ErrFieldMismatch{ + FieldName: "Num", + Reason: "type mismatch: float64 for string data", + }, + }, + { + desc: "unsettable", + dst: &struct{ lower string }{}, + src: []*pb.Field{newStringValueField("lower", "woop!", pb.FieldValue_TEXT)}, + err: &ErrFieldMismatch{ + FieldName: "lower", + Reason: "cannot set struct field", + }, + }, + } + for _, tc := range testCases { + err := loadDoc(tc.dst, &pb.Document{Field: tc.src}, nil) + if !reflect.DeepEqual(err, tc.err) { + t.Errorf("%s, got err %v, wanted %v", tc.desc, err, tc.err) + } + } +} + +func TestLimit(t *testing.T) { + index, err := Open("Doc") + if err != nil { + t.Fatalf("err from Open: %v", err) + } + c := aetesting.FakeSingleContext(t, "search", "Search", func(req *pb.SearchRequest, res *pb.SearchResponse) error { + limit := 20 // Default per page. + if req.Params.Limit != nil { + limit = int(*req.Params.Limit) + } + res.Status = &pb.RequestStatus{Code: pb.SearchServiceError_OK.Enum()} + res.MatchedCount = proto.Int64(int64(limit)) + for i := 0; i < limit; i++ { + res.Result = append(res.Result, &pb.SearchResult{Document: &pb.Document{}}) + res.Cursor = proto.String("moreresults") + } + return nil + }) + + const maxDocs = 500 // Limit maximum number of docs. + testCases := []struct { + limit, want int + }{ + {limit: 0, want: maxDocs}, + {limit: 42, want: 42}, + {limit: 100, want: 100}, + {limit: 1000, want: maxDocs}, + } + + for _, tt := range testCases { + it := index.Search(c, "gopher", &SearchOptions{Limit: tt.limit, IDsOnly: true}) + count := 0 + for ; count < maxDocs; count++ { + _, err := it.Next(nil) + if err == Done { + break + } + if err != nil { + t.Fatalf("err after %d: %v", count, err) + } + } + if count != tt.want { + t.Errorf("got %d results, expected %d", count, tt.want) + } + } +} + +func TestPut(t *testing.T) { + index, err := Open("Doc") + if err != nil { + t.Fatalf("err from Open: %v", err) + } + + c := aetesting.FakeSingleContext(t, "search", "IndexDocument", func(in *pb.IndexDocumentRequest, out *pb.IndexDocumentResponse) error { + expectedIn := &pb.IndexDocumentRequest{ + Params: &pb.IndexDocumentParams{ + Document: []*pb.Document{ + {Field: protoFields, OrderId: proto.Int32(42), OrderIdSource: pb.Document_SUPPLIED.Enum()}, + }, + IndexSpec: &pb.IndexSpec{ + Name: proto.String("Doc"), + }, + }, + } + if !proto.Equal(in, expectedIn) { + return fmt.Errorf("unsupported argument:\ngot %v\nwant %v", in, expectedIn) + } + *out = pb.IndexDocumentResponse{ + Status: []*pb.RequestStatus{ + {Code: pb.SearchServiceError_OK.Enum()}, + }, + DocId: []string{ + "doc_id", + }, + } + return nil + }) + + id, err := index.Put(c, "", &FieldListWithMeta{ + Meta: searchMeta, + Fields: searchFields, + }) + if err != nil { + t.Fatal(err) + } + if want := "doc_id"; id != want { + t.Errorf("Got doc ID %q, want %q", id, want) + } +} + +func TestPutAutoOrderID(t *testing.T) { + index, err := Open("Doc") + if err != nil { + t.Fatalf("err from Open: %v", err) + } + + c := aetesting.FakeSingleContext(t, "search", "IndexDocument", func(in *pb.IndexDocumentRequest, out *pb.IndexDocumentResponse) error { + if len(in.Params.GetDocument()) < 1 { + return fmt.Errorf("expected at least one Document, got %v", in) + } + got, want := in.Params.Document[0].GetOrderId(), int32(time.Since(orderIDEpoch).Seconds()) + if d := got - want; -5 > d || d > 5 { + return fmt.Errorf("got OrderId %d, want near %d", got, want) + } + *out = pb.IndexDocumentResponse{ + Status: []*pb.RequestStatus{ + {Code: pb.SearchServiceError_OK.Enum()}, + }, + DocId: []string{ + "doc_id", + }, + } + return nil + }) + + if _, err := index.Put(c, "", &searchFields); err != nil { + t.Fatal(err) + } +} + +func TestPutBadStatus(t *testing.T) { + index, err := Open("Doc") + if err != nil { + t.Fatalf("err from Open: %v", err) + } + + c := aetesting.FakeSingleContext(t, "search", "IndexDocument", func(_ *pb.IndexDocumentRequest, out *pb.IndexDocumentResponse) error { + *out = pb.IndexDocumentResponse{ + Status: []*pb.RequestStatus{ + { + Code: pb.SearchServiceError_INVALID_REQUEST.Enum(), + ErrorDetail: proto.String("insufficient gophers"), + }, + }, + } + return nil + }) + + wantErr := "search: INVALID_REQUEST: insufficient gophers" + if _, err := index.Put(c, "", &searchFields); err == nil || err.Error() != wantErr { + t.Fatalf("Put: got %v error, want %q", err, wantErr) + } +} + +func TestPutMultiNilIDSlice(t *testing.T) { + index, err := Open("Doc") + if err != nil { + t.Fatalf("err from Open: %v", err) + } + + c := aetesting.FakeSingleContext(t, "search", "IndexDocument", func(in *pb.IndexDocumentRequest, out *pb.IndexDocumentResponse) error { + if len(in.Params.GetDocument()) < 1 { + return fmt.Errorf("got %v, want at least 1 document", in) + } + got, want := in.Params.Document[0].GetOrderId(), int32(time.Since(orderIDEpoch).Seconds()) + if d := got - want; -5 > d || d > 5 { + return fmt.Errorf("got OrderId %d, want near %d", got, want) + } + *out = pb.IndexDocumentResponse{ + Status: []*pb.RequestStatus{ + {Code: pb.SearchServiceError_OK.Enum()}, + }, + DocId: []string{ + "doc_id", + }, + } + return nil + }) + + if _, err := index.PutMulti(c, nil, []interface{}{&searchFields}); err != nil { + t.Fatal(err) + } +} + +func TestPutMultiError(t *testing.T) { + index, err := Open("Doc") + if err != nil { + t.Fatalf("err from Open: %v", err) + } + + c := aetesting.FakeSingleContext(t, "search", "IndexDocument", func(in *pb.IndexDocumentRequest, out *pb.IndexDocumentResponse) error { + *out = pb.IndexDocumentResponse{ + Status: []*pb.RequestStatus{ + {Code: pb.SearchServiceError_OK.Enum()}, + {Code: pb.SearchServiceError_PERMISSION_DENIED.Enum(), ErrorDetail: proto.String("foo")}, + }, + DocId: []string{ + "id1", + "", + }, + } + return nil + }) + + switch _, err := index.PutMulti(c, nil, []interface{}{&searchFields, &searchFields}); { + case err == nil: + t.Fatalf("got nil, want error") + case err.(appengine.MultiError)[0] != nil: + t.Fatalf("got %v, want nil MultiError[0]", err.(appengine.MultiError)[0]) + case err.(appengine.MultiError)[1] == nil: + t.Fatalf("got nil, want not-nill MultiError[1]") + } +} + +func TestPutMultiWrongNumberOfIDs(t *testing.T) { + index, err := Open("Doc") + if err != nil { + t.Fatalf("err from Open: %v", err) + } + + c := aetesting.FakeSingleContext(t, "search", "IndexDocument", func(in *pb.IndexDocumentRequest, out *pb.IndexDocumentResponse) error { + return nil + }) + + if _, err := index.PutMulti(c, []string{"a"}, []interface{}{&searchFields, &searchFields}); err == nil { + t.Fatal("got success, want error") + } +} + +func TestPutMultiTooManyDocs(t *testing.T) { + index, err := Open("Doc") + if err != nil { + t.Fatalf("err from Open: %v", err) + } + + c := aetesting.FakeSingleContext(t, "search", "IndexDocument", func(in *pb.IndexDocumentRequest, out *pb.IndexDocumentResponse) error { + return nil + }) + + srcs := make([]interface{}, 201) + for i, _ := range srcs { + srcs[i] = &searchFields + } + + if _, err := index.PutMulti(c, nil, srcs); err != ErrTooManyDocuments { + t.Fatalf("got %v, want ErrTooManyDocuments", err) + } +} + +func TestSortOptions(t *testing.T) { + index, err := Open("Doc") + if err != nil { + t.Fatalf("err from Open: %v", err) + } + + noErr := errors.New("") // Sentinel err to return to prevent sending request. + + testCases := []struct { + desc string + sort *SortOptions + wantSort []*pb.SortSpec + wantScorer *pb.ScorerSpec + wantErr string + }{ + { + desc: "No SortOptions", + }, + { + desc: "Basic", + sort: &SortOptions{ + Expressions: []SortExpression{ + {Expr: "dog"}, + {Expr: "cat", Reverse: true}, + {Expr: "gopher", Default: "blue"}, + {Expr: "fish", Default: 2.0}, + }, + Limit: 42, + Scorer: MatchScorer, + }, + wantSort: []*pb.SortSpec{ + {SortExpression: proto.String("dog")}, + {SortExpression: proto.String("cat"), SortDescending: proto.Bool(false)}, + {SortExpression: proto.String("gopher"), DefaultValueText: proto.String("blue")}, + {SortExpression: proto.String("fish"), DefaultValueNumeric: proto.Float64(2)}, + }, + wantScorer: &pb.ScorerSpec{ + Limit: proto.Int32(42), + Scorer: pb.ScorerSpec_MATCH_SCORER.Enum(), + }, + }, + { + desc: "Bad expression default", + sort: &SortOptions{ + Expressions: []SortExpression{ + {Expr: "dog", Default: true}, + }, + }, + wantErr: `search: invalid Default type bool for expression "dog"`, + }, + { + desc: "RescoringMatchScorer", + sort: &SortOptions{Scorer: RescoringMatchScorer}, + wantScorer: &pb.ScorerSpec{Scorer: pb.ScorerSpec_RESCORING_MATCH_SCORER.Enum()}, + }, + } + + for _, tt := range testCases { + c := aetesting.FakeSingleContext(t, "search", "Search", func(req *pb.SearchRequest, _ *pb.SearchResponse) error { + params := req.Params + if !reflect.DeepEqual(params.SortSpec, tt.wantSort) { + t.Errorf("%s: params.SortSpec=%v; want %v", tt.desc, params.SortSpec, tt.wantSort) + } + if !reflect.DeepEqual(params.ScorerSpec, tt.wantScorer) { + t.Errorf("%s: params.ScorerSpec=%v; want %v", tt.desc, params.ScorerSpec, tt.wantScorer) + } + return noErr // Always return some error to prevent response parsing. + }) + + it := index.Search(c, "gopher", &SearchOptions{Sort: tt.sort}) + _, err := it.Next(nil) + if err == nil { + t.Fatalf("%s: err==nil; should not happen", tt.desc) + } + if err.Error() != tt.wantErr { + t.Errorf("%s: got error %q, want %q", tt.desc, err, tt.wantErr) + } + } +} + +func TestFieldSpec(t *testing.T) { + index, err := Open("Doc") + if err != nil { + t.Fatalf("err from Open: %v", err) + } + + errFoo := errors.New("foo") // sentinel error when there isn't one. + + testCases := []struct { + desc string + opts *SearchOptions + want *pb.FieldSpec + }{ + { + desc: "No options", + want: &pb.FieldSpec{}, + }, + { + desc: "Fields", + opts: &SearchOptions{ + Fields: []string{"one", "two"}, + }, + want: &pb.FieldSpec{ + Name: []string{"one", "two"}, + }, + }, + { + desc: "Expressions", + opts: &SearchOptions{ + Expressions: []FieldExpression{ + {Name: "one", Expr: "price * quantity"}, + {Name: "two", Expr: "min(daily_use, 10) * rate"}, + }, + }, + want: &pb.FieldSpec{ + Expression: []*pb.FieldSpec_Expression{ + {Name: proto.String("one"), Expression: proto.String("price * quantity")}, + {Name: proto.String("two"), Expression: proto.String("min(daily_use, 10) * rate")}, + }, + }, + }, + } + + for _, tt := range testCases { + c := aetesting.FakeSingleContext(t, "search", "Search", func(req *pb.SearchRequest, _ *pb.SearchResponse) error { + params := req.Params + if !reflect.DeepEqual(params.FieldSpec, tt.want) { + t.Errorf("%s: params.FieldSpec=%v; want %v", tt.desc, params.FieldSpec, tt.want) + } + return errFoo // Always return some error to prevent response parsing. + }) + + it := index.Search(c, "gopher", tt.opts) + if _, err := it.Next(nil); err != errFoo { + t.Fatalf("%s: got error %v; want %v", tt.desc, err, errFoo) + } + } +} + +func TestBasicSearchOpts(t *testing.T) { + index, err := Open("Doc") + if err != nil { + t.Fatalf("err from Open: %v", err) + } + + noErr := errors.New("") // Sentinel err to return to prevent sending request. + + testCases := []struct { + desc string + facetOpts []FacetSearchOption + cursor Cursor + offset int + countAccuracy int + want *pb.SearchParams + wantErr string + }{ + { + desc: "No options", + want: &pb.SearchParams{}, + }, + { + desc: "Default auto discovery", + facetOpts: []FacetSearchOption{ + AutoFacetDiscovery(0, 0), + }, + want: &pb.SearchParams{ + AutoDiscoverFacetCount: proto.Int32(10), + }, + }, + { + desc: "Auto discovery", + facetOpts: []FacetSearchOption{ + AutoFacetDiscovery(7, 12), + }, + want: &pb.SearchParams{ + AutoDiscoverFacetCount: proto.Int32(7), + FacetAutoDetectParam: &pb.FacetAutoDetectParam{ + ValueLimit: proto.Int32(12), + }, + }, + }, + { + desc: "Param Depth", + facetOpts: []FacetSearchOption{ + AutoFacetDiscovery(7, 12), + }, + want: &pb.SearchParams{ + AutoDiscoverFacetCount: proto.Int32(7), + FacetAutoDetectParam: &pb.FacetAutoDetectParam{ + ValueLimit: proto.Int32(12), + }, + }, + }, + { + desc: "Doc depth", + facetOpts: []FacetSearchOption{ + FacetDocumentDepth(123), + }, + want: &pb.SearchParams{ + FacetDepth: proto.Int32(123), + }, + }, + { + desc: "Facet discovery", + facetOpts: []FacetSearchOption{ + FacetDiscovery("colour"), + FacetDiscovery("size", Atom("M"), Atom("L")), + FacetDiscovery("price", LessThan(7), Range{7, 14}, AtLeast(14)), + }, + want: &pb.SearchParams{ + IncludeFacet: []*pb.FacetRequest{ + {Name: proto.String("colour")}, + {Name: proto.String("size"), Params: &pb.FacetRequestParam{ + ValueConstraint: []string{"M", "L"}, + }}, + {Name: proto.String("price"), Params: &pb.FacetRequestParam{ + Range: []*pb.FacetRange{ + {End: proto.String("7e+00")}, + {Start: proto.String("7e+00"), End: proto.String("1.4e+01")}, + {Start: proto.String("1.4e+01")}, + }, + }}, + }, + }, + }, + { + desc: "Facet discovery - bad value", + facetOpts: []FacetSearchOption{ + FacetDiscovery("colour", true), + }, + wantErr: "bad FacetSearchOption: unsupported value type bool", + }, + { + desc: "Facet discovery - mix value types", + facetOpts: []FacetSearchOption{ + FacetDiscovery("colour", Atom("blue"), AtLeast(7)), + }, + wantErr: "bad FacetSearchOption: values must all be Atom, or must all be Range", + }, + { + desc: "Facet discovery - invalid range", + facetOpts: []FacetSearchOption{ + FacetDiscovery("colour", Range{negInf, posInf}), + }, + wantErr: "bad FacetSearchOption: invalid range: either Start or End must be finite", + }, + { + desc: "Cursor", + cursor: Cursor("mycursor"), + want: &pb.SearchParams{ + Cursor: proto.String("mycursor"), + }, + }, + { + desc: "Offset", + offset: 121, + want: &pb.SearchParams{ + Offset: proto.Int32(121), + }, + }, + { + desc: "Cursor and Offset set", + cursor: Cursor("mycursor"), + offset: 121, + wantErr: "at most one of Cursor and Offset may be specified", + }, + { + desc: "Count accuracy", + countAccuracy: 100, + want: &pb.SearchParams{ + MatchedCountAccuracy: proto.Int32(100), + }, + }, + } + + for _, tt := range testCases { + c := aetesting.FakeSingleContext(t, "search", "Search", func(req *pb.SearchRequest, _ *pb.SearchResponse) error { + if tt.want == nil { + t.Errorf("%s: expected call to fail", tt.desc) + return nil + } + // Set default fields. + tt.want.Query = proto.String("gopher") + tt.want.IndexSpec = &pb.IndexSpec{Name: proto.String("Doc")} + tt.want.CursorType = pb.SearchParams_PER_RESULT.Enum() + tt.want.FieldSpec = &pb.FieldSpec{} + if got := req.Params; !reflect.DeepEqual(got, tt.want) { + t.Errorf("%s: params=%v; want %v", tt.desc, got, tt.want) + } + return noErr // Always return some error to prevent response parsing. + }) + + it := index.Search(c, "gopher", &SearchOptions{ + Facets: tt.facetOpts, + Cursor: tt.cursor, + Offset: tt.offset, + CountAccuracy: tt.countAccuracy, + }) + _, err := it.Next(nil) + if err == nil { + t.Fatalf("%s: err==nil; should not happen", tt.desc) + } + if err.Error() != tt.wantErr { + t.Errorf("%s: got error %q, want %q", tt.desc, err, tt.wantErr) + } + } +} + +func TestFacetRefinements(t *testing.T) { + index, err := Open("Doc") + if err != nil { + t.Fatalf("err from Open: %v", err) + } + + noErr := errors.New("") // Sentinel err to return to prevent sending request. + + testCases := []struct { + desc string + refine []Facet + want []*pb.FacetRefinement + wantErr string + }{ + { + desc: "No refinements", + }, + { + desc: "Basic", + refine: []Facet{ + {Name: "fur", Value: Atom("fluffy")}, + {Name: "age", Value: LessThan(123)}, + {Name: "age", Value: AtLeast(0)}, + {Name: "legs", Value: Range{Start: 3, End: 5}}, + }, + want: []*pb.FacetRefinement{ + {Name: proto.String("fur"), Value: proto.String("fluffy")}, + {Name: proto.String("age"), Range: &pb.FacetRefinement_Range{End: proto.String("1.23e+02")}}, + {Name: proto.String("age"), Range: &pb.FacetRefinement_Range{Start: proto.String("0e+00")}}, + {Name: proto.String("legs"), Range: &pb.FacetRefinement_Range{Start: proto.String("3e+00"), End: proto.String("5e+00")}}, + }, + }, + { + desc: "Infinite range", + refine: []Facet{ + {Name: "age", Value: Range{Start: negInf, End: posInf}}, + }, + wantErr: `search: refinement for facet "age": either Start or End must be finite`, + }, + { + desc: "Bad End value in range", + refine: []Facet{ + {Name: "age", Value: LessThan(2147483648)}, + }, + wantErr: `search: refinement for facet "age": invalid value for End`, + }, + { + desc: "Bad Start value in range", + refine: []Facet{ + {Name: "age", Value: AtLeast(-2147483649)}, + }, + wantErr: `search: refinement for facet "age": invalid value for Start`, + }, + { + desc: "Unknown value type", + refine: []Facet{ + {Name: "age", Value: "you can't use strings!"}, + }, + wantErr: `search: unsupported refinement for facet "age" of type string`, + }, + } + + for _, tt := range testCases { + c := aetesting.FakeSingleContext(t, "search", "Search", func(req *pb.SearchRequest, _ *pb.SearchResponse) error { + if got := req.Params.FacetRefinement; !reflect.DeepEqual(got, tt.want) { + t.Errorf("%s: params.FacetRefinement=%v; want %v", tt.desc, got, tt.want) + } + return noErr // Always return some error to prevent response parsing. + }) + + it := index.Search(c, "gopher", &SearchOptions{Refinements: tt.refine}) + _, err := it.Next(nil) + if err == nil { + t.Fatalf("%s: err==nil; should not happen", tt.desc) + } + if err.Error() != tt.wantErr { + t.Errorf("%s: got error %q, want %q", tt.desc, err, tt.wantErr) + } + } +} + +func TestNamespaceResetting(t *testing.T) { + namec := make(chan *string, 1) + c0 := aetesting.FakeSingleContext(t, "search", "IndexDocument", func(req *pb.IndexDocumentRequest, res *pb.IndexDocumentResponse) error { + namec <- req.Params.IndexSpec.Namespace + return fmt.Errorf("RPC error") + }) + + // Check that wrapping c0 in a namespace twice works correctly. + c1, err := appengine.Namespace(c0, "A") + if err != nil { + t.Fatalf("appengine.Namespace: %v", err) + } + c2, err := appengine.Namespace(c1, "") // should act as the original context + if err != nil { + t.Fatalf("appengine.Namespace: %v", err) + } + + i := (&Index{}) + + i.Put(c0, "something", &searchDoc) + if ns := <-namec; ns != nil { + t.Errorf(`Put with c0: ns = %q, want nil`, *ns) + } + + i.Put(c1, "something", &searchDoc) + if ns := <-namec; ns == nil { + t.Error(`Put with c1: ns = nil, want "A"`) + } else if *ns != "A" { + t.Errorf(`Put with c1: ns = %q, want "A"`, *ns) + } + + i.Put(c2, "something", &searchDoc) + if ns := <-namec; ns != nil { + t.Errorf(`Put with c2: ns = %q, want nil`, *ns) + } +} + +func TestDelete(t *testing.T) { + index, err := Open("Doc") + if err != nil { + t.Fatalf("err from Open: %v", err) + } + + c := aetesting.FakeSingleContext(t, "search", "DeleteDocument", func(in *pb.DeleteDocumentRequest, out *pb.DeleteDocumentResponse) error { + expectedIn := &pb.DeleteDocumentRequest{ + Params: &pb.DeleteDocumentParams{ + DocId: []string{"id"}, + IndexSpec: &pb.IndexSpec{Name: proto.String("Doc")}, + }, + } + if !proto.Equal(in, expectedIn) { + return fmt.Errorf("unsupported argument:\ngot %v\nwant %v", in, expectedIn) + } + *out = pb.DeleteDocumentResponse{ + Status: []*pb.RequestStatus{ + {Code: pb.SearchServiceError_OK.Enum()}, + }, + } + return nil + }) + + if err := index.Delete(c, "id"); err != nil { + t.Fatal(err) + } +} + +func TestDeleteMulti(t *testing.T) { + index, err := Open("Doc") + if err != nil { + t.Fatalf("err from Open: %v", err) + } + + c := aetesting.FakeSingleContext(t, "search", "DeleteDocument", func(in *pb.DeleteDocumentRequest, out *pb.DeleteDocumentResponse) error { + expectedIn := &pb.DeleteDocumentRequest{ + Params: &pb.DeleteDocumentParams{ + DocId: []string{"id1", "id2"}, + IndexSpec: &pb.IndexSpec{Name: proto.String("Doc")}, + }, + } + if !proto.Equal(in, expectedIn) { + return fmt.Errorf("unsupported argument:\ngot %v\nwant %v", in, expectedIn) + } + *out = pb.DeleteDocumentResponse{ + Status: []*pb.RequestStatus{ + {Code: pb.SearchServiceError_OK.Enum()}, + {Code: pb.SearchServiceError_OK.Enum()}, + }, + } + return nil + }) + + if err := index.DeleteMulti(c, []string{"id1", "id2"}); err != nil { + t.Fatal(err) + } +} + +func TestDeleteWrongNumberOfResults(t *testing.T) { + index, err := Open("Doc") + if err != nil { + t.Fatalf("err from Open: %v", err) + } + + c := aetesting.FakeSingleContext(t, "search", "DeleteDocument", func(in *pb.DeleteDocumentRequest, out *pb.DeleteDocumentResponse) error { + expectedIn := &pb.DeleteDocumentRequest{ + Params: &pb.DeleteDocumentParams{ + DocId: []string{"id1", "id2"}, + IndexSpec: &pb.IndexSpec{Name: proto.String("Doc")}, + }, + } + if !proto.Equal(in, expectedIn) { + return fmt.Errorf("unsupported argument:\ngot %v\nwant %v", in, expectedIn) + } + *out = pb.DeleteDocumentResponse{ + Status: []*pb.RequestStatus{ + {Code: pb.SearchServiceError_OK.Enum()}, + }, + } + return nil + }) + + if err := index.DeleteMulti(c, []string{"id1", "id2"}); err == nil { + t.Fatalf("got nil, want error") + } +} + +func TestDeleteMultiError(t *testing.T) { + index, err := Open("Doc") + if err != nil { + t.Fatalf("err from Open: %v", err) + } + + c := aetesting.FakeSingleContext(t, "search", "DeleteDocument", func(in *pb.DeleteDocumentRequest, out *pb.DeleteDocumentResponse) error { + expectedIn := &pb.DeleteDocumentRequest{ + Params: &pb.DeleteDocumentParams{ + DocId: []string{"id1", "id2"}, + IndexSpec: &pb.IndexSpec{Name: proto.String("Doc")}, + }, + } + if !proto.Equal(in, expectedIn) { + return fmt.Errorf("unsupported argument:\ngot %v\nwant %v", in, expectedIn) + } + *out = pb.DeleteDocumentResponse{ + Status: []*pb.RequestStatus{ + {Code: pb.SearchServiceError_OK.Enum()}, + {Code: pb.SearchServiceError_PERMISSION_DENIED.Enum(), ErrorDetail: proto.String("foo")}, + }, + } + return nil + }) + + switch err := index.DeleteMulti(c, []string{"id1", "id2"}); { + case err == nil: + t.Fatalf("got nil, want error") + case err.(appengine.MultiError)[0] != nil: + t.Fatalf("got %v, want nil MultiError[0]", err.(appengine.MultiError)[0]) + case err.(appengine.MultiError)[1] == nil: + t.Fatalf("got nil, want not-nill MultiError[1]") + } +} diff --git a/vendor/google.golang.org/appengine/search/struct.go b/vendor/google.golang.org/appengine/search/struct.go new file mode 100644 index 000000000..e73d2f2ef --- /dev/null +++ b/vendor/google.golang.org/appengine/search/struct.go @@ -0,0 +1,251 @@ +// Copyright 2015 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package search + +import ( + "fmt" + "reflect" + "strings" + "sync" +) + +// ErrFieldMismatch is returned when a field is to be loaded into a different +// than the one it was stored from, or when a field is missing or unexported in +// the destination struct. +type ErrFieldMismatch struct { + FieldName string + Reason string +} + +func (e *ErrFieldMismatch) Error() string { + return fmt.Sprintf("search: cannot load field %q: %s", e.FieldName, e.Reason) +} + +// ErrFacetMismatch is returned when a facet is to be loaded into a different +// type than the one it was stored from, or when a field is missing or +// unexported in the destination struct. StructType is the type of the struct +// pointed to by the destination argument passed to Iterator.Next. +type ErrFacetMismatch struct { + StructType reflect.Type + FacetName string + Reason string +} + +func (e *ErrFacetMismatch) Error() string { + return fmt.Sprintf("search: cannot load facet %q into a %q: %s", e.FacetName, e.StructType, e.Reason) +} + +// structCodec defines how to convert a given struct to/from a search document. +type structCodec struct { + // byIndex returns the struct tag for the i'th struct field. + byIndex []structTag + + // fieldByName returns the index of the struct field for the given field name. + fieldByName map[string]int + + // facetByName returns the index of the struct field for the given facet name, + facetByName map[string]int +} + +// structTag holds a structured version of each struct field's parsed tag. +type structTag struct { + name string + facet bool + ignore bool +} + +var ( + codecsMu sync.RWMutex + codecs = map[reflect.Type]*structCodec{} +) + +func loadCodec(t reflect.Type) (*structCodec, error) { + codecsMu.RLock() + codec, ok := codecs[t] + codecsMu.RUnlock() + if ok { + return codec, nil + } + + codecsMu.Lock() + defer codecsMu.Unlock() + if codec, ok := codecs[t]; ok { + return codec, nil + } + + codec = &structCodec{ + fieldByName: make(map[string]int), + facetByName: make(map[string]int), + } + + for i, I := 0, t.NumField(); i < I; i++ { + f := t.Field(i) + name, opts := f.Tag.Get("search"), "" + if i := strings.Index(name, ","); i != -1 { + name, opts = name[:i], name[i+1:] + } + ignore := false + if name == "-" { + ignore = true + } else if name == "" { + name = f.Name + } else if !validFieldName(name) { + return nil, fmt.Errorf("search: struct tag has invalid field name: %q", name) + } + facet := opts == "facet" + codec.byIndex = append(codec.byIndex, structTag{name: name, facet: facet, ignore: ignore}) + if facet { + codec.facetByName[name] = i + } else { + codec.fieldByName[name] = i + } + } + + codecs[t] = codec + return codec, nil +} + +// structFLS adapts a struct to be a FieldLoadSaver. +type structFLS struct { + v reflect.Value + codec *structCodec +} + +func (s structFLS) Load(fields []Field, meta *DocumentMetadata) error { + var err error + for _, field := range fields { + i, ok := s.codec.fieldByName[field.Name] + if !ok { + // Note the error, but keep going. + err = &ErrFieldMismatch{ + FieldName: field.Name, + Reason: "no such struct field", + } + continue + + } + f := s.v.Field(i) + if !f.CanSet() { + // Note the error, but keep going. + err = &ErrFieldMismatch{ + FieldName: field.Name, + Reason: "cannot set struct field", + } + continue + } + v := reflect.ValueOf(field.Value) + if ft, vt := f.Type(), v.Type(); ft != vt { + err = &ErrFieldMismatch{ + FieldName: field.Name, + Reason: fmt.Sprintf("type mismatch: %v for %v data", ft, vt), + } + continue + } + f.Set(v) + } + if meta == nil { + return err + } + for _, facet := range meta.Facets { + i, ok := s.codec.facetByName[facet.Name] + if !ok { + // Note the error, but keep going. + if err == nil { + err = &ErrFacetMismatch{ + StructType: s.v.Type(), + FacetName: facet.Name, + Reason: "no matching field found", + } + } + continue + } + f := s.v.Field(i) + if !f.CanSet() { + // Note the error, but keep going. + if err == nil { + err = &ErrFacetMismatch{ + StructType: s.v.Type(), + FacetName: facet.Name, + Reason: "unable to set unexported field of struct", + } + } + continue + } + v := reflect.ValueOf(facet.Value) + if ft, vt := f.Type(), v.Type(); ft != vt { + if err == nil { + err = &ErrFacetMismatch{ + StructType: s.v.Type(), + FacetName: facet.Name, + Reason: fmt.Sprintf("type mismatch: %v for %d data", ft, vt), + } + continue + } + } + f.Set(v) + } + return err +} + +func (s structFLS) Save() ([]Field, *DocumentMetadata, error) { + fields := make([]Field, 0, len(s.codec.fieldByName)) + var facets []Facet + for i, tag := range s.codec.byIndex { + if tag.ignore { + continue + } + f := s.v.Field(i) + if !f.CanSet() { + continue + } + if tag.facet { + facets = append(facets, Facet{Name: tag.name, Value: f.Interface()}) + } else { + fields = append(fields, Field{Name: tag.name, Value: f.Interface()}) + } + } + return fields, &DocumentMetadata{Facets: facets}, nil +} + +// newStructFLS returns a FieldLoadSaver for the struct pointer p. +func newStructFLS(p interface{}) (FieldLoadSaver, error) { + v := reflect.ValueOf(p) + if v.Kind() != reflect.Ptr || v.IsNil() || v.Elem().Kind() != reflect.Struct { + return nil, ErrInvalidDocumentType + } + codec, err := loadCodec(v.Elem().Type()) + if err != nil { + return nil, err + } + return structFLS{v.Elem(), codec}, nil +} + +func loadStructWithMeta(dst interface{}, f []Field, meta *DocumentMetadata) error { + x, err := newStructFLS(dst) + if err != nil { + return err + } + return x.Load(f, meta) +} + +func saveStructWithMeta(src interface{}) ([]Field, *DocumentMetadata, error) { + x, err := newStructFLS(src) + if err != nil { + return nil, nil, err + } + return x.Save() +} + +// LoadStruct loads the fields from f to dst. dst must be a struct pointer. +func LoadStruct(dst interface{}, f []Field) error { + return loadStructWithMeta(dst, f, nil) +} + +// SaveStruct returns the fields from src as a slice of Field. +// src must be a struct pointer. +func SaveStruct(src interface{}) ([]Field, error) { + f, _, err := saveStructWithMeta(src) + return f, err +} diff --git a/vendor/google.golang.org/appengine/search/struct_test.go b/vendor/google.golang.org/appengine/search/struct_test.go new file mode 100644 index 000000000..4e5b5d1b8 --- /dev/null +++ b/vendor/google.golang.org/appengine/search/struct_test.go @@ -0,0 +1,213 @@ +// Copyright 2015 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package search + +import ( + "reflect" + "testing" +) + +func TestLoadingStruct(t *testing.T) { + testCases := []struct { + desc string + fields []Field + meta *DocumentMetadata + want interface{} + wantErr bool + }{ + { + desc: "Basic struct", + fields: []Field{ + {Name: "Name", Value: "Gopher"}, + {Name: "Legs", Value: float64(4)}, + }, + want: &struct { + Name string + Legs float64 + }{"Gopher", 4}, + }, + { + desc: "Struct with tags", + fields: []Field{ + {Name: "Name", Value: "Gopher"}, + {Name: "about", Value: "Likes slide rules."}, + }, + meta: &DocumentMetadata{Facets: []Facet{ + {Name: "Legs", Value: float64(4)}, + {Name: "Fur", Value: Atom("furry")}, + }}, + want: &struct { + Name string + Info string `search:"about"` + Legs float64 `search:",facet"` + Fuzz Atom `search:"Fur,facet"` + }{"Gopher", "Likes slide rules.", 4, Atom("furry")}, + }, + { + desc: "Bad field from tag", + want: &struct { + AlphaBeta string `search:"αβ"` + }{}, + wantErr: true, + }, + { + desc: "Ignore missing field", + fields: []Field{ + {Name: "Meaning", Value: float64(42)}, + }, + want: &struct{}{}, + wantErr: true, + }, + { + desc: "Ignore unsettable field", + fields: []Field{ + {Name: "meaning", Value: float64(42)}, + }, + want: &struct{ meaning float64 }{}, // field not populated. + wantErr: true, + }, + { + desc: "Error on missing facet", + meta: &DocumentMetadata{Facets: []Facet{ + {Name: "Set", Value: Atom("yes")}, + {Name: "Missing", Value: Atom("no")}, + }}, + want: &struct { + Set Atom `search:",facet"` + }{Atom("yes")}, + wantErr: true, + }, + { + desc: "Error on unsettable facet", + meta: &DocumentMetadata{Facets: []Facet{ + {Name: "Set", Value: Atom("yes")}, + {Name: "unset", Value: Atom("no")}, + }}, + want: &struct { + Set Atom `search:",facet"` + }{Atom("yes")}, + wantErr: true, + }, + { + desc: "Error setting ignored field", + fields: []Field{ + {Name: "Set", Value: "yes"}, + {Name: "Ignored", Value: "no"}, + }, + want: &struct { + Set string + Ignored string `search:"-"` + }{Set: "yes"}, + wantErr: true, + }, + { + desc: "Error setting ignored facet", + meta: &DocumentMetadata{Facets: []Facet{ + {Name: "Set", Value: Atom("yes")}, + {Name: "Ignored", Value: Atom("no")}, + }}, + want: &struct { + Set Atom `search:",facet"` + Ignored Atom `search:"-,facet"` + }{Set: Atom("yes")}, + wantErr: true, + }, + } + + for _, tt := range testCases { + // Make a pointer to an empty version of what want points to. + dst := reflect.New(reflect.TypeOf(tt.want).Elem()).Interface() + err := loadStructWithMeta(dst, tt.fields, tt.meta) + if err != nil != tt.wantErr { + t.Errorf("%s: got err %v; want err %t", tt.desc, err, tt.wantErr) + continue + } + if !reflect.DeepEqual(dst, tt.want) { + t.Errorf("%s: doesn't match\ngot: %v\nwant: %v", tt.desc, dst, tt.want) + } + } +} + +func TestSavingStruct(t *testing.T) { + testCases := []struct { + desc string + doc interface{} + wantFields []Field + wantFacets []Facet + }{ + { + desc: "Basic struct", + doc: &struct { + Name string + Legs float64 + }{"Gopher", 4}, + wantFields: []Field{ + {Name: "Name", Value: "Gopher"}, + {Name: "Legs", Value: float64(4)}, + }, + }, + { + desc: "Struct with tags", + doc: &struct { + Name string + Info string `search:"about"` + Legs float64 `search:",facet"` + Fuzz Atom `search:"Fur,facet"` + }{"Gopher", "Likes slide rules.", 4, Atom("furry")}, + wantFields: []Field{ + {Name: "Name", Value: "Gopher"}, + {Name: "about", Value: "Likes slide rules."}, + }, + wantFacets: []Facet{ + {Name: "Legs", Value: float64(4)}, + {Name: "Fur", Value: Atom("furry")}, + }, + }, + { + desc: "Ignore unexported struct fields", + doc: &struct { + Name string + info string + Legs float64 `search:",facet"` + fuzz Atom `search:",facet"` + }{"Gopher", "Likes slide rules.", 4, Atom("furry")}, + wantFields: []Field{ + {Name: "Name", Value: "Gopher"}, + }, + wantFacets: []Facet{ + {Name: "Legs", Value: float64(4)}, + }, + }, + { + desc: "Ignore fields marked -", + doc: &struct { + Name string + Info string `search:"-"` + Legs float64 `search:",facet"` + Fuzz Atom `search:"-,facet"` + }{"Gopher", "Likes slide rules.", 4, Atom("furry")}, + wantFields: []Field{ + {Name: "Name", Value: "Gopher"}, + }, + wantFacets: []Facet{ + {Name: "Legs", Value: float64(4)}, + }, + }, + } + + for _, tt := range testCases { + fields, meta, err := saveStructWithMeta(tt.doc) + if err != nil { + t.Errorf("%s: got err %v; want nil", tt.desc, err) + continue + } + if !reflect.DeepEqual(fields, tt.wantFields) { + t.Errorf("%s: fields don't match\ngot: %v\nwant: %v", tt.desc, fields, tt.wantFields) + } + if facets := meta.Facets; !reflect.DeepEqual(facets, tt.wantFacets) { + t.Errorf("%s: facets don't match\ngot: %v\nwant: %v", tt.desc, facets, tt.wantFacets) + } + } +} diff --git a/vendor/google.golang.org/appengine/socket/doc.go b/vendor/google.golang.org/appengine/socket/doc.go new file mode 100644 index 000000000..3de46df82 --- /dev/null +++ b/vendor/google.golang.org/appengine/socket/doc.go @@ -0,0 +1,10 @@ +// Copyright 2012 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +// Package socket provides outbound network sockets. +// +// This package is only required in the classic App Engine environment. +// Applications running only in App Engine "flexible environment" should +// use the standard library's net package. +package socket diff --git a/vendor/google.golang.org/appengine/socket/socket_classic.go b/vendor/google.golang.org/appengine/socket/socket_classic.go new file mode 100644 index 000000000..0ad50e2d3 --- /dev/null +++ b/vendor/google.golang.org/appengine/socket/socket_classic.go @@ -0,0 +1,290 @@ +// Copyright 2012 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +// +build appengine + +package socket + +import ( + "fmt" + "io" + "net" + "strconv" + "time" + + "github.com/golang/protobuf/proto" + "golang.org/x/net/context" + "google.golang.org/appengine/internal" + + pb "google.golang.org/appengine/internal/socket" +) + +// Dial connects to the address addr on the network protocol. +// The address format is host:port, where host may be a hostname or an IP address. +// Known protocols are "tcp" and "udp". +// The returned connection satisfies net.Conn, and is valid while ctx is valid; +// if the connection is to be used after ctx becomes invalid, invoke SetContext +// with the new context. +func Dial(ctx context.Context, protocol, addr string) (*Conn, error) { + return DialTimeout(ctx, protocol, addr, 0) +} + +var ipFamilies = []pb.CreateSocketRequest_SocketFamily{ + pb.CreateSocketRequest_IPv4, + pb.CreateSocketRequest_IPv6, +} + +// DialTimeout is like Dial but takes a timeout. +// The timeout includes name resolution, if required. +func DialTimeout(ctx context.Context, protocol, addr string, timeout time.Duration) (*Conn, error) { + dialCtx := ctx // Used for dialing and name resolution, but not stored in the *Conn. + if timeout > 0 { + var cancel context.CancelFunc + dialCtx, cancel = context.WithTimeout(ctx, timeout) + defer cancel() + } + + host, portStr, err := net.SplitHostPort(addr) + if err != nil { + return nil, err + } + port, err := strconv.Atoi(portStr) + if err != nil { + return nil, fmt.Errorf("socket: bad port %q: %v", portStr, err) + } + + var prot pb.CreateSocketRequest_SocketProtocol + switch protocol { + case "tcp": + prot = pb.CreateSocketRequest_TCP + case "udp": + prot = pb.CreateSocketRequest_UDP + default: + return nil, fmt.Errorf("socket: unknown protocol %q", protocol) + } + + packedAddrs, resolved, err := resolve(dialCtx, ipFamilies, host) + if err != nil { + return nil, fmt.Errorf("socket: failed resolving %q: %v", host, err) + } + if len(packedAddrs) == 0 { + return nil, fmt.Errorf("no addresses for %q", host) + } + + packedAddr := packedAddrs[0] // use first address + fam := pb.CreateSocketRequest_IPv4 + if len(packedAddr) == net.IPv6len { + fam = pb.CreateSocketRequest_IPv6 + } + + req := &pb.CreateSocketRequest{ + Family: fam.Enum(), + Protocol: prot.Enum(), + RemoteIp: &pb.AddressPort{ + Port: proto.Int32(int32(port)), + PackedAddress: packedAddr, + }, + } + if resolved { + req.RemoteIp.HostnameHint = &host + } + res := &pb.CreateSocketReply{} + if err := internal.Call(dialCtx, "remote_socket", "CreateSocket", req, res); err != nil { + return nil, err + } + + return &Conn{ + ctx: ctx, + desc: res.GetSocketDescriptor(), + prot: prot, + local: res.ProxyExternalIp, + remote: req.RemoteIp, + }, nil +} + +// LookupIP returns the given host's IP addresses. +func LookupIP(ctx context.Context, host string) (addrs []net.IP, err error) { + packedAddrs, _, err := resolve(ctx, ipFamilies, host) + if err != nil { + return nil, fmt.Errorf("socket: failed resolving %q: %v", host, err) + } + addrs = make([]net.IP, len(packedAddrs)) + for i, pa := range packedAddrs { + addrs[i] = net.IP(pa) + } + return addrs, nil +} + +func resolve(ctx context.Context, fams []pb.CreateSocketRequest_SocketFamily, host string) ([][]byte, bool, error) { + // Check if it's an IP address. + if ip := net.ParseIP(host); ip != nil { + if ip := ip.To4(); ip != nil { + return [][]byte{ip}, false, nil + } + return [][]byte{ip}, false, nil + } + + req := &pb.ResolveRequest{ + Name: &host, + AddressFamilies: fams, + } + res := &pb.ResolveReply{} + if err := internal.Call(ctx, "remote_socket", "Resolve", req, res); err != nil { + // XXX: need to map to pb.ResolveReply_ErrorCode? + return nil, false, err + } + return res.PackedAddress, true, nil +} + +// withDeadline is like context.WithDeadline, except it ignores the zero deadline. +func withDeadline(parent context.Context, deadline time.Time) (context.Context, context.CancelFunc) { + if deadline.IsZero() { + return parent, func() {} + } + return context.WithDeadline(parent, deadline) +} + +// Conn represents a socket connection. +// It implements net.Conn. +type Conn struct { + ctx context.Context + desc string + offset int64 + + prot pb.CreateSocketRequest_SocketProtocol + local, remote *pb.AddressPort + + readDeadline, writeDeadline time.Time // optional +} + +// SetContext sets the context that is used by this Conn. +// It is usually used only when using a Conn that was created in a different context, +// such as when a connection is created during a warmup request but used while +// servicing a user request. +func (cn *Conn) SetContext(ctx context.Context) { + cn.ctx = ctx +} + +func (cn *Conn) Read(b []byte) (n int, err error) { + const maxRead = 1 << 20 + if len(b) > maxRead { + b = b[:maxRead] + } + + req := &pb.ReceiveRequest{ + SocketDescriptor: &cn.desc, + DataSize: proto.Int32(int32(len(b))), + } + res := &pb.ReceiveReply{} + if !cn.readDeadline.IsZero() { + req.TimeoutSeconds = proto.Float64(cn.readDeadline.Sub(time.Now()).Seconds()) + } + ctx, cancel := withDeadline(cn.ctx, cn.readDeadline) + defer cancel() + if err := internal.Call(ctx, "remote_socket", "Receive", req, res); err != nil { + return 0, err + } + if len(res.Data) == 0 { + return 0, io.EOF + } + if len(res.Data) > len(b) { + return 0, fmt.Errorf("socket: internal error: read too much data: %d > %d", len(res.Data), len(b)) + } + return copy(b, res.Data), nil +} + +func (cn *Conn) Write(b []byte) (n int, err error) { + const lim = 1 << 20 // max per chunk + + for n < len(b) { + chunk := b[n:] + if len(chunk) > lim { + chunk = chunk[:lim] + } + + req := &pb.SendRequest{ + SocketDescriptor: &cn.desc, + Data: chunk, + StreamOffset: &cn.offset, + } + res := &pb.SendReply{} + if !cn.writeDeadline.IsZero() { + req.TimeoutSeconds = proto.Float64(cn.writeDeadline.Sub(time.Now()).Seconds()) + } + ctx, cancel := withDeadline(cn.ctx, cn.writeDeadline) + defer cancel() + if err = internal.Call(ctx, "remote_socket", "Send", req, res); err != nil { + // assume zero bytes were sent in this RPC + break + } + n += int(res.GetDataSent()) + cn.offset += int64(res.GetDataSent()) + } + + return +} + +func (cn *Conn) Close() error { + req := &pb.CloseRequest{ + SocketDescriptor: &cn.desc, + } + res := &pb.CloseReply{} + if err := internal.Call(cn.ctx, "remote_socket", "Close", req, res); err != nil { + return err + } + cn.desc = "CLOSED" + return nil +} + +func addr(prot pb.CreateSocketRequest_SocketProtocol, ap *pb.AddressPort) net.Addr { + if ap == nil { + return nil + } + switch prot { + case pb.CreateSocketRequest_TCP: + return &net.TCPAddr{ + IP: net.IP(ap.PackedAddress), + Port: int(*ap.Port), + } + case pb.CreateSocketRequest_UDP: + return &net.UDPAddr{ + IP: net.IP(ap.PackedAddress), + Port: int(*ap.Port), + } + } + panic("unknown protocol " + prot.String()) +} + +func (cn *Conn) LocalAddr() net.Addr { return addr(cn.prot, cn.local) } +func (cn *Conn) RemoteAddr() net.Addr { return addr(cn.prot, cn.remote) } + +func (cn *Conn) SetDeadline(t time.Time) error { + cn.readDeadline = t + cn.writeDeadline = t + return nil +} + +func (cn *Conn) SetReadDeadline(t time.Time) error { + cn.readDeadline = t + return nil +} + +func (cn *Conn) SetWriteDeadline(t time.Time) error { + cn.writeDeadline = t + return nil +} + +// KeepAlive signals that the connection is still in use. +// It may be called to prevent the socket being closed due to inactivity. +func (cn *Conn) KeepAlive() error { + req := &pb.GetSocketNameRequest{ + SocketDescriptor: &cn.desc, + } + res := &pb.GetSocketNameReply{} + return internal.Call(cn.ctx, "remote_socket", "GetSocketName", req, res) +} + +func init() { + internal.RegisterErrorCodeMap("remote_socket", pb.RemoteSocketServiceError_ErrorCode_name) +} diff --git a/vendor/google.golang.org/appengine/socket/socket_vm.go b/vendor/google.golang.org/appengine/socket/socket_vm.go new file mode 100644 index 000000000..c804169a1 --- /dev/null +++ b/vendor/google.golang.org/appengine/socket/socket_vm.go @@ -0,0 +1,64 @@ +// Copyright 2015 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +// +build !appengine + +package socket + +import ( + "net" + "time" + + "golang.org/x/net/context" +) + +// Dial connects to the address addr on the network protocol. +// The address format is host:port, where host may be a hostname or an IP address. +// Known protocols are "tcp" and "udp". +// The returned connection satisfies net.Conn, and is valid while ctx is valid; +// if the connection is to be used after ctx becomes invalid, invoke SetContext +// with the new context. +func Dial(ctx context.Context, protocol, addr string) (*Conn, error) { + conn, err := net.Dial(protocol, addr) + if err != nil { + return nil, err + } + return &Conn{conn}, nil +} + +// DialTimeout is like Dial but takes a timeout. +// The timeout includes name resolution, if required. +func DialTimeout(ctx context.Context, protocol, addr string, timeout time.Duration) (*Conn, error) { + conn, err := net.DialTimeout(protocol, addr, timeout) + if err != nil { + return nil, err + } + return &Conn{conn}, nil +} + +// LookupIP returns the given host's IP addresses. +func LookupIP(ctx context.Context, host string) (addrs []net.IP, err error) { + return net.LookupIP(host) +} + +// Conn represents a socket connection. +// It implements net.Conn. +type Conn struct { + net.Conn +} + +// SetContext sets the context that is used by this Conn. +// It is usually used only when using a Conn that was created in a different context, +// such as when a connection is created during a warmup request but used while +// servicing a user request. +func (cn *Conn) SetContext(ctx context.Context) { + // This function is not required in App Engine "flexible environment". +} + +// KeepAlive signals that the connection is still in use. +// It may be called to prevent the socket being closed due to inactivity. +func (cn *Conn) KeepAlive() error { + // This function is not required in App Engine "flexible environment". + return nil +} diff --git a/vendor/google.golang.org/appengine/taskqueue/taskqueue.go b/vendor/google.golang.org/appengine/taskqueue/taskqueue.go new file mode 100644 index 000000000..965c5ab4c --- /dev/null +++ b/vendor/google.golang.org/appengine/taskqueue/taskqueue.go @@ -0,0 +1,541 @@ +// Copyright 2011 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +/* +Package taskqueue provides a client for App Engine's taskqueue service. +Using this service, applications may perform work outside a user's request. + +A Task may be constructed manually; alternatively, since the most common +taskqueue operation is to add a single POST task, NewPOSTTask makes it easy. + + t := taskqueue.NewPOSTTask("/worker", url.Values{ + "key": {key}, + }) + taskqueue.Add(c, t, "") // add t to the default queue +*/ +package taskqueue // import "google.golang.org/appengine/taskqueue" + +import ( + "errors" + "fmt" + "net/http" + "net/url" + "strconv" + "time" + + "github.com/golang/protobuf/proto" + "golang.org/x/net/context" + + "google.golang.org/appengine" + "google.golang.org/appengine/internal" + dspb "google.golang.org/appengine/internal/datastore" + pb "google.golang.org/appengine/internal/taskqueue" +) + +var ( + // ErrTaskAlreadyAdded is the error returned by Add and AddMulti when a task has already been added with a particular name. + ErrTaskAlreadyAdded = errors.New("taskqueue: task has already been added") +) + +// RetryOptions let you control whether to retry a task and the backoff intervals between tries. +type RetryOptions struct { + // Number of tries/leases after which the task fails permanently and is deleted. + // If AgeLimit is also set, both limits must be exceeded for the task to fail permanently. + RetryLimit int32 + + // Maximum time allowed since the task's first try before the task fails permanently and is deleted (only for push tasks). + // If RetryLimit is also set, both limits must be exceeded for the task to fail permanently. + AgeLimit time.Duration + + // Minimum time between successive tries (only for push tasks). + MinBackoff time.Duration + + // Maximum time between successive tries (only for push tasks). + MaxBackoff time.Duration + + // Maximum number of times to double the interval between successive tries before the intervals increase linearly (only for push tasks). + MaxDoublings int32 + + // If MaxDoublings is zero, set ApplyZeroMaxDoublings to true to override the default non-zero value. + // Otherwise a zero MaxDoublings is ignored and the default is used. + ApplyZeroMaxDoublings bool +} + +// toRetryParameter converts RetryOptions to pb.TaskQueueRetryParameters. +func (opt *RetryOptions) toRetryParameters() *pb.TaskQueueRetryParameters { + params := &pb.TaskQueueRetryParameters{} + if opt.RetryLimit > 0 { + params.RetryLimit = proto.Int32(opt.RetryLimit) + } + if opt.AgeLimit > 0 { + params.AgeLimitSec = proto.Int64(int64(opt.AgeLimit.Seconds())) + } + if opt.MinBackoff > 0 { + params.MinBackoffSec = proto.Float64(opt.MinBackoff.Seconds()) + } + if opt.MaxBackoff > 0 { + params.MaxBackoffSec = proto.Float64(opt.MaxBackoff.Seconds()) + } + if opt.MaxDoublings > 0 || (opt.MaxDoublings == 0 && opt.ApplyZeroMaxDoublings) { + params.MaxDoublings = proto.Int32(opt.MaxDoublings) + } + return params +} + +// A Task represents a task to be executed. +type Task struct { + // Path is the worker URL for the task. + // If unset, it will default to /_ah/queue/. + Path string + + // Payload is the data for the task. + // This will be delivered as the HTTP request body. + // It is only used when Method is POST, PUT or PULL. + // url.Values' Encode method may be used to generate this for POST requests. + Payload []byte + + // Additional HTTP headers to pass at the task's execution time. + // To schedule the task to be run with an alternate app version + // or backend, set the "Host" header. + Header http.Header + + // Method is the HTTP method for the task ("GET", "POST", etc.), + // or "PULL" if this is task is destined for a pull-based queue. + // If empty, this defaults to "POST". + Method string + + // A name for the task. + // If empty, a name will be chosen. + Name string + + // Delay specifies the duration the task queue service must wait + // before executing the task. + // Either Delay or ETA may be set, but not both. + Delay time.Duration + + // ETA specifies the earliest time a task may be executed (push queues) + // or leased (pull queues). + // Either Delay or ETA may be set, but not both. + ETA time.Time + + // The number of times the task has been dispatched or leased. + RetryCount int32 + + // Tag for the task. Only used when Method is PULL. + Tag string + + // Retry options for this task. May be nil. + RetryOptions *RetryOptions +} + +func (t *Task) method() string { + if t.Method == "" { + return "POST" + } + return t.Method +} + +// NewPOSTTask creates a Task that will POST to a path with the given form data. +func NewPOSTTask(path string, params url.Values) *Task { + h := make(http.Header) + h.Set("Content-Type", "application/x-www-form-urlencoded") + return &Task{ + Path: path, + Payload: []byte(params.Encode()), + Header: h, + Method: "POST", + } +} + +// RequestHeaders are the special HTTP request headers available to push task +// HTTP request handlers. These headers are set internally by App Engine. +// See https://cloud.google.com/appengine/docs/standard/go/taskqueue/push/creating-handlers#reading_request_headers +// for a description of the fields. +type RequestHeaders struct { + QueueName string + TaskName string + TaskRetryCount int64 + TaskExecutionCount int64 + TaskETA time.Time + + TaskPreviousResponse int + TaskRetryReason string + FailFast bool +} + +// ParseRequestHeaders parses the special HTTP request headers available to push +// task request handlers. This function silently ignores values of the wrong +// format. +func ParseRequestHeaders(h http.Header) *RequestHeaders { + ret := &RequestHeaders{ + QueueName: h.Get("X-AppEngine-QueueName"), + TaskName: h.Get("X-AppEngine-TaskName"), + } + + ret.TaskRetryCount, _ = strconv.ParseInt(h.Get("X-AppEngine-TaskRetryCount"), 10, 64) + ret.TaskExecutionCount, _ = strconv.ParseInt(h.Get("X-AppEngine-TaskExecutionCount"), 10, 64) + + etaSecs, _ := strconv.ParseInt(h.Get("X-AppEngine-TaskETA"), 10, 64) + if etaSecs != 0 { + ret.TaskETA = time.Unix(etaSecs, 0) + } + + ret.TaskPreviousResponse, _ = strconv.Atoi(h.Get("X-AppEngine-TaskPreviousResponse")) + ret.TaskRetryReason = h.Get("X-AppEngine-TaskRetryReason") + if h.Get("X-AppEngine-FailFast") != "" { + ret.FailFast = true + } + + return ret +} + +var ( + currentNamespace = http.CanonicalHeaderKey("X-AppEngine-Current-Namespace") + defaultNamespace = http.CanonicalHeaderKey("X-AppEngine-Default-Namespace") +) + +func getDefaultNamespace(ctx context.Context) string { + return internal.IncomingHeaders(ctx).Get(defaultNamespace) +} + +func newAddReq(c context.Context, task *Task, queueName string) (*pb.TaskQueueAddRequest, error) { + if queueName == "" { + queueName = "default" + } + path := task.Path + if path == "" { + path = "/_ah/queue/" + queueName + } + eta := task.ETA + if eta.IsZero() { + eta = time.Now().Add(task.Delay) + } else if task.Delay != 0 { + panic("taskqueue: both Delay and ETA are set") + } + req := &pb.TaskQueueAddRequest{ + QueueName: []byte(queueName), + TaskName: []byte(task.Name), + EtaUsec: proto.Int64(eta.UnixNano() / 1e3), + } + method := task.method() + if method == "PULL" { + // Pull-based task + req.Body = task.Payload + req.Mode = pb.TaskQueueMode_PULL.Enum() + if task.Tag != "" { + req.Tag = []byte(task.Tag) + } + } else { + // HTTP-based task + if v, ok := pb.TaskQueueAddRequest_RequestMethod_value[method]; ok { + req.Method = pb.TaskQueueAddRequest_RequestMethod(v).Enum() + } else { + return nil, fmt.Errorf("taskqueue: bad method %q", method) + } + req.Url = []byte(path) + for k, vs := range task.Header { + for _, v := range vs { + req.Header = append(req.Header, &pb.TaskQueueAddRequest_Header{ + Key: []byte(k), + Value: []byte(v), + }) + } + } + if method == "POST" || method == "PUT" { + req.Body = task.Payload + } + + // Namespace headers. + if _, ok := task.Header[currentNamespace]; !ok { + // Fetch the current namespace of this request. + ns := internal.NamespaceFromContext(c) + req.Header = append(req.Header, &pb.TaskQueueAddRequest_Header{ + Key: []byte(currentNamespace), + Value: []byte(ns), + }) + } + if _, ok := task.Header[defaultNamespace]; !ok { + // Fetch the X-AppEngine-Default-Namespace header of this request. + if ns := getDefaultNamespace(c); ns != "" { + req.Header = append(req.Header, &pb.TaskQueueAddRequest_Header{ + Key: []byte(defaultNamespace), + Value: []byte(ns), + }) + } + } + } + + if task.RetryOptions != nil { + req.RetryParameters = task.RetryOptions.toRetryParameters() + } + + return req, nil +} + +var alreadyAddedErrors = map[pb.TaskQueueServiceError_ErrorCode]bool{ + pb.TaskQueueServiceError_TASK_ALREADY_EXISTS: true, + pb.TaskQueueServiceError_TOMBSTONED_TASK: true, +} + +// Add adds the task to a named queue. +// An empty queue name means that the default queue will be used. +// Add returns an equivalent Task with defaults filled in, including setting +// the task's Name field to the chosen name if the original was empty. +func Add(c context.Context, task *Task, queueName string) (*Task, error) { + req, err := newAddReq(c, task, queueName) + if err != nil { + return nil, err + } + res := &pb.TaskQueueAddResponse{} + if err := internal.Call(c, "taskqueue", "Add", req, res); err != nil { + apiErr, ok := err.(*internal.APIError) + if ok && alreadyAddedErrors[pb.TaskQueueServiceError_ErrorCode(apiErr.Code)] { + return nil, ErrTaskAlreadyAdded + } + return nil, err + } + resultTask := *task + resultTask.Method = task.method() + if task.Name == "" { + resultTask.Name = string(res.ChosenTaskName) + } + return &resultTask, nil +} + +// AddMulti adds multiple tasks to a named queue. +// An empty queue name means that the default queue will be used. +// AddMulti returns a slice of equivalent tasks with defaults filled in, including setting +// each task's Name field to the chosen name if the original was empty. +// If a given task is badly formed or could not be added, an appengine.MultiError is returned. +func AddMulti(c context.Context, tasks []*Task, queueName string) ([]*Task, error) { + req := &pb.TaskQueueBulkAddRequest{ + AddRequest: make([]*pb.TaskQueueAddRequest, len(tasks)), + } + me, any := make(appengine.MultiError, len(tasks)), false + for i, t := range tasks { + req.AddRequest[i], me[i] = newAddReq(c, t, queueName) + any = any || me[i] != nil + } + if any { + return nil, me + } + res := &pb.TaskQueueBulkAddResponse{} + if err := internal.Call(c, "taskqueue", "BulkAdd", req, res); err != nil { + return nil, err + } + if len(res.Taskresult) != len(tasks) { + return nil, errors.New("taskqueue: server error") + } + tasksOut := make([]*Task, len(tasks)) + for i, tr := range res.Taskresult { + tasksOut[i] = new(Task) + *tasksOut[i] = *tasks[i] + tasksOut[i].Method = tasksOut[i].method() + if tasksOut[i].Name == "" { + tasksOut[i].Name = string(tr.ChosenTaskName) + } + if *tr.Result != pb.TaskQueueServiceError_OK { + if alreadyAddedErrors[*tr.Result] { + me[i] = ErrTaskAlreadyAdded + } else { + me[i] = &internal.APIError{ + Service: "taskqueue", + Code: int32(*tr.Result), + } + } + any = true + } + } + if any { + return tasksOut, me + } + return tasksOut, nil +} + +// Delete deletes a task from a named queue. +func Delete(c context.Context, task *Task, queueName string) error { + err := DeleteMulti(c, []*Task{task}, queueName) + if me, ok := err.(appengine.MultiError); ok { + return me[0] + } + return err +} + +// DeleteMulti deletes multiple tasks from a named queue. +// If a given task could not be deleted, an appengine.MultiError is returned. +// Each task is deleted independently; one may fail to delete while the others +// are sucessfully deleted. +func DeleteMulti(c context.Context, tasks []*Task, queueName string) error { + taskNames := make([][]byte, len(tasks)) + for i, t := range tasks { + taskNames[i] = []byte(t.Name) + } + if queueName == "" { + queueName = "default" + } + req := &pb.TaskQueueDeleteRequest{ + QueueName: []byte(queueName), + TaskName: taskNames, + } + res := &pb.TaskQueueDeleteResponse{} + if err := internal.Call(c, "taskqueue", "Delete", req, res); err != nil { + return err + } + if a, b := len(req.TaskName), len(res.Result); a != b { + return fmt.Errorf("taskqueue: internal error: requested deletion of %d tasks, got %d results", a, b) + } + me, any := make(appengine.MultiError, len(res.Result)), false + for i, ec := range res.Result { + if ec != pb.TaskQueueServiceError_OK { + me[i] = &internal.APIError{ + Service: "taskqueue", + Code: int32(ec), + } + any = true + } + } + if any { + return me + } + return nil +} + +func lease(c context.Context, maxTasks int, queueName string, leaseTime int, groupByTag bool, tag []byte) ([]*Task, error) { + if queueName == "" { + queueName = "default" + } + req := &pb.TaskQueueQueryAndOwnTasksRequest{ + QueueName: []byte(queueName), + LeaseSeconds: proto.Float64(float64(leaseTime)), + MaxTasks: proto.Int64(int64(maxTasks)), + GroupByTag: proto.Bool(groupByTag), + Tag: tag, + } + res := &pb.TaskQueueQueryAndOwnTasksResponse{} + if err := internal.Call(c, "taskqueue", "QueryAndOwnTasks", req, res); err != nil { + return nil, err + } + tasks := make([]*Task, len(res.Task)) + for i, t := range res.Task { + tasks[i] = &Task{ + Payload: t.Body, + Name: string(t.TaskName), + Method: "PULL", + ETA: time.Unix(0, *t.EtaUsec*1e3), + RetryCount: *t.RetryCount, + Tag: string(t.Tag), + } + } + return tasks, nil +} + +// Lease leases tasks from a queue. +// leaseTime is in seconds. +// The number of tasks fetched will be at most maxTasks. +func Lease(c context.Context, maxTasks int, queueName string, leaseTime int) ([]*Task, error) { + return lease(c, maxTasks, queueName, leaseTime, false, nil) +} + +// LeaseByTag leases tasks from a queue, grouped by tag. +// If tag is empty, then the returned tasks are grouped by the tag of the task with earliest ETA. +// leaseTime is in seconds. +// The number of tasks fetched will be at most maxTasks. +func LeaseByTag(c context.Context, maxTasks int, queueName string, leaseTime int, tag string) ([]*Task, error) { + return lease(c, maxTasks, queueName, leaseTime, true, []byte(tag)) +} + +// Purge removes all tasks from a queue. +func Purge(c context.Context, queueName string) error { + if queueName == "" { + queueName = "default" + } + req := &pb.TaskQueuePurgeQueueRequest{ + QueueName: []byte(queueName), + } + res := &pb.TaskQueuePurgeQueueResponse{} + return internal.Call(c, "taskqueue", "PurgeQueue", req, res) +} + +// ModifyLease modifies the lease of a task. +// Used to request more processing time, or to abandon processing. +// leaseTime is in seconds and must not be negative. +func ModifyLease(c context.Context, task *Task, queueName string, leaseTime int) error { + if queueName == "" { + queueName = "default" + } + req := &pb.TaskQueueModifyTaskLeaseRequest{ + QueueName: []byte(queueName), + TaskName: []byte(task.Name), + EtaUsec: proto.Int64(task.ETA.UnixNano() / 1e3), // Used to verify ownership. + LeaseSeconds: proto.Float64(float64(leaseTime)), + } + res := &pb.TaskQueueModifyTaskLeaseResponse{} + if err := internal.Call(c, "taskqueue", "ModifyTaskLease", req, res); err != nil { + return err + } + task.ETA = time.Unix(0, *res.UpdatedEtaUsec*1e3) + return nil +} + +// QueueStatistics represents statistics about a single task queue. +type QueueStatistics struct { + Tasks int // may be an approximation + OldestETA time.Time // zero if there are no pending tasks + + Executed1Minute int // tasks executed in the last minute + InFlight int // tasks executing now + EnforcedRate float64 // requests per second +} + +// QueueStats retrieves statistics about queues. +func QueueStats(c context.Context, queueNames []string) ([]QueueStatistics, error) { + req := &pb.TaskQueueFetchQueueStatsRequest{ + QueueName: make([][]byte, len(queueNames)), + } + for i, q := range queueNames { + if q == "" { + q = "default" + } + req.QueueName[i] = []byte(q) + } + res := &pb.TaskQueueFetchQueueStatsResponse{} + if err := internal.Call(c, "taskqueue", "FetchQueueStats", req, res); err != nil { + return nil, err + } + qs := make([]QueueStatistics, len(res.Queuestats)) + for i, qsg := range res.Queuestats { + qs[i] = QueueStatistics{ + Tasks: int(*qsg.NumTasks), + } + if eta := *qsg.OldestEtaUsec; eta > -1 { + qs[i].OldestETA = time.Unix(0, eta*1e3) + } + if si := qsg.ScannerInfo; si != nil { + qs[i].Executed1Minute = int(*si.ExecutedLastMinute) + qs[i].InFlight = int(si.GetRequestsInFlight()) + qs[i].EnforcedRate = si.GetEnforcedRate() + } + } + return qs, nil +} + +func setTransaction(x *pb.TaskQueueAddRequest, t *dspb.Transaction) { + x.Transaction = t +} + +func init() { + internal.RegisterErrorCodeMap("taskqueue", pb.TaskQueueServiceError_ErrorCode_name) + + // Datastore error codes are shifted by DATASTORE_ERROR when presented through taskqueue. + dsCode := int32(pb.TaskQueueServiceError_DATASTORE_ERROR) + int32(dspb.Error_TIMEOUT) + internal.RegisterTimeoutErrorCode("taskqueue", dsCode) + + // Transaction registration. + internal.RegisterTransactionSetter(setTransaction) + internal.RegisterTransactionSetter(func(x *pb.TaskQueueBulkAddRequest, t *dspb.Transaction) { + for _, req := range x.AddRequest { + setTransaction(req, t) + } + }) +} diff --git a/vendor/google.golang.org/appengine/taskqueue/taskqueue_test.go b/vendor/google.golang.org/appengine/taskqueue/taskqueue_test.go new file mode 100644 index 000000000..d9eec50b7 --- /dev/null +++ b/vendor/google.golang.org/appengine/taskqueue/taskqueue_test.go @@ -0,0 +1,173 @@ +// Copyright 2014 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package taskqueue + +import ( + "errors" + "fmt" + "net/http" + "reflect" + "testing" + "time" + + "google.golang.org/appengine" + "google.golang.org/appengine/internal" + "google.golang.org/appengine/internal/aetesting" + pb "google.golang.org/appengine/internal/taskqueue" +) + +func TestAddErrors(t *testing.T) { + var tests = []struct { + err, want error + sameErr bool // if true, should return err exactly + }{ + { + err: &internal.APIError{ + Service: "taskqueue", + Code: int32(pb.TaskQueueServiceError_TASK_ALREADY_EXISTS), + }, + want: ErrTaskAlreadyAdded, + }, + { + err: &internal.APIError{ + Service: "taskqueue", + Code: int32(pb.TaskQueueServiceError_TOMBSTONED_TASK), + }, + want: ErrTaskAlreadyAdded, + }, + { + err: &internal.APIError{ + Service: "taskqueue", + Code: int32(pb.TaskQueueServiceError_UNKNOWN_QUEUE), + }, + want: errors.New("not used"), + sameErr: true, + }, + } + for _, tc := range tests { + c := aetesting.FakeSingleContext(t, "taskqueue", "Add", func(req *pb.TaskQueueAddRequest, res *pb.TaskQueueAddResponse) error { + // don't fill in any of the response + return tc.err + }) + task := &Task{Path: "/worker", Method: "PULL"} + _, err := Add(c, task, "a-queue") + want := tc.want + if tc.sameErr { + want = tc.err + } + if err != want { + t.Errorf("Add with tc.err = %v, got %#v, want = %#v", tc.err, err, want) + } + } +} + +func TestAddMulti(t *testing.T) { + c := aetesting.FakeSingleContext(t, "taskqueue", "BulkAdd", func(req *pb.TaskQueueBulkAddRequest, res *pb.TaskQueueBulkAddResponse) error { + res.Taskresult = []*pb.TaskQueueBulkAddResponse_TaskResult{ + { + Result: pb.TaskQueueServiceError_OK.Enum(), + }, + { + Result: pb.TaskQueueServiceError_TASK_ALREADY_EXISTS.Enum(), + }, + { + Result: pb.TaskQueueServiceError_TOMBSTONED_TASK.Enum(), + }, + { + Result: pb.TaskQueueServiceError_INTERNAL_ERROR.Enum(), + }, + } + return nil + }) + tasks := []*Task{ + {Path: "/worker", Method: "PULL"}, + {Path: "/worker", Method: "PULL"}, + {Path: "/worker", Method: "PULL"}, + {Path: "/worker", Method: "PULL"}, + } + r, err := AddMulti(c, tasks, "a-queue") + if len(r) != len(tasks) { + t.Fatalf("AddMulti returned %d tasks, want %d", len(r), len(tasks)) + } + want := appengine.MultiError{ + nil, + ErrTaskAlreadyAdded, + ErrTaskAlreadyAdded, + &internal.APIError{ + Service: "taskqueue", + Code: int32(pb.TaskQueueServiceError_INTERNAL_ERROR), + }, + } + if !reflect.DeepEqual(err, want) { + t.Errorf("AddMulti got %v, wanted %v", err, want) + } +} + +func TestAddWithEmptyPath(t *testing.T) { + c := aetesting.FakeSingleContext(t, "taskqueue", "Add", func(req *pb.TaskQueueAddRequest, res *pb.TaskQueueAddResponse) error { + if got, want := string(req.Url), "/_ah/queue/a-queue"; got != want { + return fmt.Errorf("req.Url = %q; want %q", got, want) + } + return nil + }) + if _, err := Add(c, &Task{}, "a-queue"); err != nil { + t.Fatalf("Add: %v", err) + } +} + +func TestParseRequestHeaders(t *testing.T) { + tests := []struct { + Header http.Header + Want RequestHeaders + }{ + { + Header: map[string][]string{ + "X-Appengine-Queuename": []string{"foo"}, + "X-Appengine-Taskname": []string{"bar"}, + "X-Appengine-Taskretrycount": []string{"4294967297"}, // 2^32 + 1 + "X-Appengine-Taskexecutioncount": []string{"4294967298"}, // 2^32 + 2 + "X-Appengine-Tasketa": []string{"1500000000"}, + "X-Appengine-Taskpreviousresponse": []string{"404"}, + "X-Appengine-Taskretryreason": []string{"baz"}, + "X-Appengine-Failfast": []string{"yes"}, + }, + Want: RequestHeaders{ + QueueName: "foo", + TaskName: "bar", + TaskRetryCount: 4294967297, + TaskExecutionCount: 4294967298, + TaskETA: time.Date(2017, time.July, 14, 2, 40, 0, 0, time.UTC), + TaskPreviousResponse: 404, + TaskRetryReason: "baz", + FailFast: true, + }, + }, + { + Header: map[string][]string{}, + Want: RequestHeaders{ + QueueName: "", + TaskName: "", + TaskRetryCount: 0, + TaskExecutionCount: 0, + TaskETA: time.Time{}, + TaskPreviousResponse: 0, + TaskRetryReason: "", + FailFast: false, + }, + }, + } + + for idx, test := range tests { + got := *ParseRequestHeaders(test.Header) + if got.TaskETA.UnixNano() != test.Want.TaskETA.UnixNano() { + t.Errorf("%d. ParseRequestHeaders got TaskETA %v, wanted %v", idx, got.TaskETA, test.Want.TaskETA) + } + got.TaskETA = time.Time{} + test.Want.TaskETA = time.Time{} + if !reflect.DeepEqual(got, test.Want) { + t.Errorf("%d. ParseRequestHeaders got %v, wanted %v", idx, got, test.Want) + } + } +} diff --git a/vendor/google.golang.org/appengine/timeout.go b/vendor/google.golang.org/appengine/timeout.go new file mode 100644 index 000000000..05642a992 --- /dev/null +++ b/vendor/google.golang.org/appengine/timeout.go @@ -0,0 +1,20 @@ +// Copyright 2013 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package appengine + +import "golang.org/x/net/context" + +// IsTimeoutError reports whether err is a timeout error. +func IsTimeoutError(err error) bool { + if err == context.DeadlineExceeded { + return true + } + if t, ok := err.(interface { + IsTimeout() bool + }); ok { + return t.IsTimeout() + } + return false +} diff --git a/vendor/google.golang.org/appengine/travis_install.sh b/vendor/google.golang.org/appengine/travis_install.sh new file mode 100755 index 000000000..785b62f46 --- /dev/null +++ b/vendor/google.golang.org/appengine/travis_install.sh @@ -0,0 +1,18 @@ +#!/bin/bash +set -e + +if [[ $GO111MODULE == "on" ]]; then + go get . +else + go get -u -v $(go list -f '{{join .Imports "\n"}}{{"\n"}}{{join .TestImports "\n"}}' ./... | sort | uniq | grep -v appengine) +fi + +if [[ $GOAPP == "true" ]]; then + mkdir /tmp/sdk + curl -o /tmp/sdk.zip "https://storage.googleapis.com/appengine-sdks/featured/go_appengine_sdk_linux_amd64-1.9.68.zip" + unzip -q /tmp/sdk.zip -d /tmp/sdk + # NOTE: Set the following env vars in the test script: + # export PATH="$PATH:/tmp/sdk/go_appengine" + # export APPENGINE_DEV_APPSERVER=/tmp/sdk/go_appengine/dev_appserver.py +fi + diff --git a/vendor/google.golang.org/appengine/travis_test.sh b/vendor/google.golang.org/appengine/travis_test.sh new file mode 100755 index 000000000..d4390f045 --- /dev/null +++ b/vendor/google.golang.org/appengine/travis_test.sh @@ -0,0 +1,12 @@ +#!/bin/bash +set -e + +go version +go test -v google.golang.org/appengine/... +go test -v -race google.golang.org/appengine/... +if [[ $GOAPP == "true" ]]; then + export PATH="$PATH:/tmp/sdk/go_appengine" + export APPENGINE_DEV_APPSERVER=/tmp/sdk/go_appengine/dev_appserver.py + goapp version + goapp test -v google.golang.org/appengine/... +fi diff --git a/vendor/google.golang.org/appengine/urlfetch/urlfetch.go b/vendor/google.golang.org/appengine/urlfetch/urlfetch.go new file mode 100644 index 000000000..6ffe1e6d9 --- /dev/null +++ b/vendor/google.golang.org/appengine/urlfetch/urlfetch.go @@ -0,0 +1,210 @@ +// Copyright 2011 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +// Package urlfetch provides an http.RoundTripper implementation +// for fetching URLs via App Engine's urlfetch service. +package urlfetch // import "google.golang.org/appengine/urlfetch" + +import ( + "errors" + "fmt" + "io" + "io/ioutil" + "net/http" + "net/url" + "strconv" + "strings" + "time" + + "github.com/golang/protobuf/proto" + "golang.org/x/net/context" + + "google.golang.org/appengine/internal" + pb "google.golang.org/appengine/internal/urlfetch" +) + +// Transport is an implementation of http.RoundTripper for +// App Engine. Users should generally create an http.Client using +// this transport and use the Client rather than using this transport +// directly. +type Transport struct { + Context context.Context + + // Controls whether the application checks the validity of SSL certificates + // over HTTPS connections. A value of false (the default) instructs the + // application to send a request to the server only if the certificate is + // valid and signed by a trusted certificate authority (CA), and also + // includes a hostname that matches the certificate. A value of true + // instructs the application to perform no certificate validation. + AllowInvalidServerCertificate bool +} + +// Verify statically that *Transport implements http.RoundTripper. +var _ http.RoundTripper = (*Transport)(nil) + +// Client returns an *http.Client using a default urlfetch Transport. This +// client will have the default deadline of 5 seconds, and will check the +// validity of SSL certificates. +// +// Any deadline of the provided context will be used for requests through this client; +// if the client does not have a deadline then a 5 second default is used. +func Client(ctx context.Context) *http.Client { + return &http.Client{ + Transport: &Transport{ + Context: ctx, + }, + } +} + +type bodyReader struct { + content []byte + truncated bool + closed bool +} + +// ErrTruncatedBody is the error returned after the final Read() from a +// response's Body if the body has been truncated by App Engine's proxy. +var ErrTruncatedBody = errors.New("urlfetch: truncated body") + +func statusCodeToText(code int) string { + if t := http.StatusText(code); t != "" { + return t + } + return strconv.Itoa(code) +} + +func (br *bodyReader) Read(p []byte) (n int, err error) { + if br.closed { + if br.truncated { + return 0, ErrTruncatedBody + } + return 0, io.EOF + } + n = copy(p, br.content) + if n > 0 { + br.content = br.content[n:] + return + } + if br.truncated { + br.closed = true + return 0, ErrTruncatedBody + } + return 0, io.EOF +} + +func (br *bodyReader) Close() error { + br.closed = true + br.content = nil + return nil +} + +// A map of the URL Fetch-accepted methods that take a request body. +var methodAcceptsRequestBody = map[string]bool{ + "POST": true, + "PUT": true, + "PATCH": true, +} + +// urlString returns a valid string given a URL. This function is necessary because +// the String method of URL doesn't correctly handle URLs with non-empty Opaque values. +// See http://code.google.com/p/go/issues/detail?id=4860. +func urlString(u *url.URL) string { + if u.Opaque == "" || strings.HasPrefix(u.Opaque, "//") { + return u.String() + } + aux := *u + aux.Opaque = "//" + aux.Host + aux.Opaque + return aux.String() +} + +// RoundTrip issues a single HTTP request and returns its response. Per the +// http.RoundTripper interface, RoundTrip only returns an error if there +// was an unsupported request or the URL Fetch proxy fails. +// Note that HTTP response codes such as 5xx, 403, 404, etc are not +// errors as far as the transport is concerned and will be returned +// with err set to nil. +func (t *Transport) RoundTrip(req *http.Request) (res *http.Response, err error) { + methNum, ok := pb.URLFetchRequest_RequestMethod_value[req.Method] + if !ok { + return nil, fmt.Errorf("urlfetch: unsupported HTTP method %q", req.Method) + } + + method := pb.URLFetchRequest_RequestMethod(methNum) + + freq := &pb.URLFetchRequest{ + Method: &method, + Url: proto.String(urlString(req.URL)), + FollowRedirects: proto.Bool(false), // http.Client's responsibility + MustValidateServerCertificate: proto.Bool(!t.AllowInvalidServerCertificate), + } + if deadline, ok := t.Context.Deadline(); ok { + freq.Deadline = proto.Float64(deadline.Sub(time.Now()).Seconds()) + } + + for k, vals := range req.Header { + for _, val := range vals { + freq.Header = append(freq.Header, &pb.URLFetchRequest_Header{ + Key: proto.String(k), + Value: proto.String(val), + }) + } + } + if methodAcceptsRequestBody[req.Method] && req.Body != nil { + // Avoid a []byte copy if req.Body has a Bytes method. + switch b := req.Body.(type) { + case interface { + Bytes() []byte + }: + freq.Payload = b.Bytes() + default: + freq.Payload, err = ioutil.ReadAll(req.Body) + if err != nil { + return nil, err + } + } + } + + fres := &pb.URLFetchResponse{} + if err := internal.Call(t.Context, "urlfetch", "Fetch", freq, fres); err != nil { + return nil, err + } + + res = &http.Response{} + res.StatusCode = int(*fres.StatusCode) + res.Status = fmt.Sprintf("%d %s", res.StatusCode, statusCodeToText(res.StatusCode)) + res.Header = make(http.Header) + res.Request = req + + // Faked: + res.ProtoMajor = 1 + res.ProtoMinor = 1 + res.Proto = "HTTP/1.1" + res.Close = true + + for _, h := range fres.Header { + hkey := http.CanonicalHeaderKey(*h.Key) + hval := *h.Value + if hkey == "Content-Length" { + // Will get filled in below for all but HEAD requests. + if req.Method == "HEAD" { + res.ContentLength, _ = strconv.ParseInt(hval, 10, 64) + } + continue + } + res.Header.Add(hkey, hval) + } + + if req.Method != "HEAD" { + res.ContentLength = int64(len(fres.Content)) + } + + truncated := fres.GetContentWasTruncated() + res.Body = &bodyReader{content: fres.Content, truncated: truncated} + return +} + +func init() { + internal.RegisterErrorCodeMap("urlfetch", pb.URLFetchServiceError_ErrorCode_name) + internal.RegisterTimeoutErrorCode("urlfetch", int32(pb.URLFetchServiceError_DEADLINE_EXCEEDED)) +} diff --git a/vendor/google.golang.org/appengine/user/oauth.go b/vendor/google.golang.org/appengine/user/oauth.go new file mode 100644 index 000000000..ffad57182 --- /dev/null +++ b/vendor/google.golang.org/appengine/user/oauth.go @@ -0,0 +1,52 @@ +// Copyright 2012 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package user + +import ( + "golang.org/x/net/context" + + "google.golang.org/appengine/internal" + pb "google.golang.org/appengine/internal/user" +) + +// CurrentOAuth returns the user associated with the OAuth consumer making this +// request. If the OAuth consumer did not make a valid OAuth request, or the +// scopes is non-empty and the current user does not have at least one of the +// scopes, this method will return an error. +func CurrentOAuth(c context.Context, scopes ...string) (*User, error) { + req := &pb.GetOAuthUserRequest{} + if len(scopes) != 1 || scopes[0] != "" { + // The signature for this function used to be CurrentOAuth(Context, string). + // Ignore the singular "" scope to preserve existing behavior. + req.Scopes = scopes + } + + res := &pb.GetOAuthUserResponse{} + + err := internal.Call(c, "user", "GetOAuthUser", req, res) + if err != nil { + return nil, err + } + return &User{ + Email: *res.Email, + AuthDomain: *res.AuthDomain, + Admin: res.GetIsAdmin(), + ID: *res.UserId, + ClientID: res.GetClientId(), + }, nil +} + +// OAuthConsumerKey returns the OAuth consumer key provided with the current +// request. This method will return an error if the OAuth request was invalid. +func OAuthConsumerKey(c context.Context) (string, error) { + req := &pb.CheckOAuthSignatureRequest{} + res := &pb.CheckOAuthSignatureResponse{} + + err := internal.Call(c, "user", "CheckOAuthSignature", req, res) + if err != nil { + return "", err + } + return *res.OauthConsumerKey, err +} diff --git a/vendor/google.golang.org/appengine/user/user.go b/vendor/google.golang.org/appengine/user/user.go new file mode 100644 index 000000000..eb76f59b7 --- /dev/null +++ b/vendor/google.golang.org/appengine/user/user.go @@ -0,0 +1,84 @@ +// Copyright 2011 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +// Package user provides a client for App Engine's user authentication service. +package user // import "google.golang.org/appengine/user" + +import ( + "strings" + + "github.com/golang/protobuf/proto" + "golang.org/x/net/context" + + "google.golang.org/appengine/internal" + pb "google.golang.org/appengine/internal/user" +) + +// User represents a user of the application. +type User struct { + Email string + AuthDomain string + Admin bool + + // ID is the unique permanent ID of the user. + // It is populated if the Email is associated + // with a Google account, or empty otherwise. + ID string + + // ClientID is the ID of the pre-registered client so its identity can be verified. + // See https://developers.google.com/console/help/#generatingoauth2 for more information. + ClientID string + + FederatedIdentity string + FederatedProvider string +} + +// String returns a displayable name for the user. +func (u *User) String() string { + if u.AuthDomain != "" && strings.HasSuffix(u.Email, "@"+u.AuthDomain) { + return u.Email[:len(u.Email)-len("@"+u.AuthDomain)] + } + if u.FederatedIdentity != "" { + return u.FederatedIdentity + } + return u.Email +} + +// LoginURL returns a URL that, when visited, prompts the user to sign in, +// then redirects the user to the URL specified by dest. +func LoginURL(c context.Context, dest string) (string, error) { + return LoginURLFederated(c, dest, "") +} + +// LoginURLFederated is like LoginURL but accepts a user's OpenID identifier. +func LoginURLFederated(c context.Context, dest, identity string) (string, error) { + req := &pb.CreateLoginURLRequest{ + DestinationUrl: proto.String(dest), + } + if identity != "" { + req.FederatedIdentity = proto.String(identity) + } + res := &pb.CreateLoginURLResponse{} + if err := internal.Call(c, "user", "CreateLoginURL", req, res); err != nil { + return "", err + } + return *res.LoginUrl, nil +} + +// LogoutURL returns a URL that, when visited, signs the user out, +// then redirects the user to the URL specified by dest. +func LogoutURL(c context.Context, dest string) (string, error) { + req := &pb.CreateLogoutURLRequest{ + DestinationUrl: proto.String(dest), + } + res := &pb.CreateLogoutURLResponse{} + if err := internal.Call(c, "user", "CreateLogoutURL", req, res); err != nil { + return "", err + } + return *res.LogoutUrl, nil +} + +func init() { + internal.RegisterErrorCodeMap("user", pb.UserServiceError_ErrorCode_name) +} diff --git a/vendor/google.golang.org/appengine/user/user_classic.go b/vendor/google.golang.org/appengine/user/user_classic.go new file mode 100644 index 000000000..81315094c --- /dev/null +++ b/vendor/google.golang.org/appengine/user/user_classic.go @@ -0,0 +1,44 @@ +// Copyright 2015 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +// +build appengine + +package user + +import ( + "appengine/user" + + "golang.org/x/net/context" + + "google.golang.org/appengine/internal" +) + +func Current(ctx context.Context) *User { + c, err := internal.ClassicContextFromContext(ctx) + if err != nil { + panic(err) + } + u := user.Current(c) + if u == nil { + return nil + } + // Map appengine/user.User to this package's User type. + return &User{ + Email: u.Email, + AuthDomain: u.AuthDomain, + Admin: u.Admin, + ID: u.ID, + FederatedIdentity: u.FederatedIdentity, + FederatedProvider: u.FederatedProvider, + } +} + +func IsAdmin(ctx context.Context) bool { + c, err := internal.ClassicContextFromContext(ctx) + if err != nil { + panic(err) + } + + return user.IsAdmin(c) +} diff --git a/vendor/google.golang.org/appengine/user/user_test.go b/vendor/google.golang.org/appengine/user/user_test.go new file mode 100644 index 000000000..5fc5957a8 --- /dev/null +++ b/vendor/google.golang.org/appengine/user/user_test.go @@ -0,0 +1,99 @@ +// Copyright 2011 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +// +build !appengine + +package user + +import ( + "fmt" + "net/http" + "testing" + + "github.com/golang/protobuf/proto" + + "google.golang.org/appengine/internal" + "google.golang.org/appengine/internal/aetesting" + pb "google.golang.org/appengine/internal/user" +) + +func baseReq() *http.Request { + return &http.Request{ + Header: http.Header{}, + } +} + +type basicUserTest struct { + nickname, email, authDomain, admin string + // expectations + isNil, isAdmin bool + displayName string +} + +var basicUserTests = []basicUserTest{ + {"", "", "", "0", true, false, ""}, + {"ken", "ken@example.com", "example.com", "0", false, false, "ken"}, + {"ken", "ken@example.com", "auth_domain.com", "1", false, true, "ken@example.com"}, +} + +func TestBasicUserAPI(t *testing.T) { + for i, tc := range basicUserTests { + req := baseReq() + req.Header.Set("X-AppEngine-User-Nickname", tc.nickname) + req.Header.Set("X-AppEngine-User-Email", tc.email) + req.Header.Set("X-AppEngine-Auth-Domain", tc.authDomain) + req.Header.Set("X-AppEngine-User-Is-Admin", tc.admin) + + c := internal.ContextForTesting(req) + + if ga := IsAdmin(c); ga != tc.isAdmin { + t.Errorf("test %d: expected IsAdmin(c) = %v, got %v", i, tc.isAdmin, ga) + } + + u := Current(c) + if tc.isNil { + if u != nil { + t.Errorf("test %d: expected u == nil, got %+v", i, u) + } + continue + } + if u == nil { + t.Errorf("test %d: expected u != nil, got nil", i) + continue + } + if u.Email != tc.email { + t.Errorf("test %d: expected u.Email = %q, got %q", i, tc.email, u.Email) + } + if gs := u.String(); gs != tc.displayName { + t.Errorf("test %d: expected u.String() = %q, got %q", i, tc.displayName, gs) + } + if u.Admin != tc.isAdmin { + t.Errorf("test %d: expected u.Admin = %v, got %v", i, tc.isAdmin, u.Admin) + } + } +} + +func TestLoginURL(t *testing.T) { + expectedQuery := &pb.CreateLoginURLRequest{ + DestinationUrl: proto.String("/destination"), + } + const expectedDest = "/redir/dest" + c := aetesting.FakeSingleContext(t, "user", "CreateLoginURL", func(req *pb.CreateLoginURLRequest, res *pb.CreateLoginURLResponse) error { + if !proto.Equal(req, expectedQuery) { + return fmt.Errorf("got %v, want %v", req, expectedQuery) + } + res.LoginUrl = proto.String(expectedDest) + return nil + }) + + url, err := LoginURL(c, "/destination") + if err != nil { + t.Fatalf("LoginURL failed: %v", err) + } + if url != expectedDest { + t.Errorf("got %v, want %v", url, expectedDest) + } +} + +// TODO(dsymonds): Add test for LogoutURL. diff --git a/vendor/google.golang.org/appengine/user/user_vm.go b/vendor/google.golang.org/appengine/user/user_vm.go new file mode 100644 index 000000000..8dc672e92 --- /dev/null +++ b/vendor/google.golang.org/appengine/user/user_vm.go @@ -0,0 +1,38 @@ +// Copyright 2014 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +// +build !appengine + +package user + +import ( + "golang.org/x/net/context" + + "google.golang.org/appengine/internal" +) + +// Current returns the currently logged-in user, +// or nil if the user is not signed in. +func Current(c context.Context) *User { + h := internal.IncomingHeaders(c) + u := &User{ + Email: h.Get("X-AppEngine-User-Email"), + AuthDomain: h.Get("X-AppEngine-Auth-Domain"), + ID: h.Get("X-AppEngine-User-Id"), + Admin: h.Get("X-AppEngine-User-Is-Admin") == "1", + FederatedIdentity: h.Get("X-AppEngine-Federated-Identity"), + FederatedProvider: h.Get("X-AppEngine-Federated-Provider"), + } + if u.Email == "" && u.FederatedIdentity == "" { + return nil + } + return u +} + +// IsAdmin returns true if the current user is signed in and +// is currently registered as an administrator of the application. +func IsAdmin(c context.Context) bool { + h := internal.IncomingHeaders(c) + return h.Get("X-AppEngine-User-Is-Admin") == "1" +} diff --git a/vendor/google.golang.org/appengine/xmpp/xmpp.go b/vendor/google.golang.org/appengine/xmpp/xmpp.go new file mode 100644 index 000000000..3a561fd53 --- /dev/null +++ b/vendor/google.golang.org/appengine/xmpp/xmpp.go @@ -0,0 +1,253 @@ +// Copyright 2011 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +/* +Package xmpp provides the means to send and receive instant messages +to and from users of XMPP-compatible services. + +To send a message, + m := &xmpp.Message{ + To: []string{"kaylee@example.com"}, + Body: `Hi! How's the carrot?`, + } + err := m.Send(c) + +To receive messages, + func init() { + xmpp.Handle(handleChat) + } + + func handleChat(c context.Context, m *xmpp.Message) { + // ... + } +*/ +package xmpp // import "google.golang.org/appengine/xmpp" + +import ( + "errors" + "fmt" + "net/http" + + "golang.org/x/net/context" + + "google.golang.org/appengine" + "google.golang.org/appengine/internal" + pb "google.golang.org/appengine/internal/xmpp" +) + +// Message represents an incoming chat message. +type Message struct { + // Sender is the JID of the sender. + // Optional for outgoing messages. + Sender string + + // To is the intended recipients of the message. + // Incoming messages will have exactly one element. + To []string + + // Body is the body of the message. + Body string + + // Type is the message type, per RFC 3921. + // It defaults to "chat". + Type string + + // RawXML is whether the body contains raw XML. + RawXML bool +} + +// Presence represents an outgoing presence update. +type Presence struct { + // Sender is the JID (optional). + Sender string + + // The intended recipient of the presence update. + To string + + // Type, per RFC 3921 (optional). Defaults to "available". + Type string + + // State of presence (optional). + // Valid values: "away", "chat", "xa", "dnd" (RFC 3921). + State string + + // Free text status message (optional). + Status string +} + +var ( + ErrPresenceUnavailable = errors.New("xmpp: presence unavailable") + ErrInvalidJID = errors.New("xmpp: invalid JID") +) + +// Handle arranges for f to be called for incoming XMPP messages. +// Only messages of type "chat" or "normal" will be handled. +func Handle(f func(c context.Context, m *Message)) { + http.HandleFunc("/_ah/xmpp/message/chat/", func(_ http.ResponseWriter, r *http.Request) { + f(appengine.NewContext(r), &Message{ + Sender: r.FormValue("from"), + To: []string{r.FormValue("to")}, + Body: r.FormValue("body"), + }) + }) +} + +// Send sends a message. +// If any failures occur with specific recipients, the error will be an appengine.MultiError. +func (m *Message) Send(c context.Context) error { + req := &pb.XmppMessageRequest{ + Jid: m.To, + Body: &m.Body, + RawXml: &m.RawXML, + } + if m.Type != "" && m.Type != "chat" { + req.Type = &m.Type + } + if m.Sender != "" { + req.FromJid = &m.Sender + } + res := &pb.XmppMessageResponse{} + if err := internal.Call(c, "xmpp", "SendMessage", req, res); err != nil { + return err + } + + if len(res.Status) != len(req.Jid) { + return fmt.Errorf("xmpp: sent message to %d JIDs, but only got %d statuses back", len(req.Jid), len(res.Status)) + } + me, any := make(appengine.MultiError, len(req.Jid)), false + for i, st := range res.Status { + if st != pb.XmppMessageResponse_NO_ERROR { + me[i] = errors.New(st.String()) + any = true + } + } + if any { + return me + } + return nil +} + +// Invite sends an invitation. If the from address is an empty string +// the default (yourapp@appspot.com/bot) will be used. +func Invite(c context.Context, to, from string) error { + req := &pb.XmppInviteRequest{ + Jid: &to, + } + if from != "" { + req.FromJid = &from + } + res := &pb.XmppInviteResponse{} + return internal.Call(c, "xmpp", "SendInvite", req, res) +} + +// Send sends a presence update. +func (p *Presence) Send(c context.Context) error { + req := &pb.XmppSendPresenceRequest{ + Jid: &p.To, + } + if p.State != "" { + req.Show = &p.State + } + if p.Type != "" { + req.Type = &p.Type + } + if p.Sender != "" { + req.FromJid = &p.Sender + } + if p.Status != "" { + req.Status = &p.Status + } + res := &pb.XmppSendPresenceResponse{} + return internal.Call(c, "xmpp", "SendPresence", req, res) +} + +var presenceMap = map[pb.PresenceResponse_SHOW]string{ + pb.PresenceResponse_NORMAL: "", + pb.PresenceResponse_AWAY: "away", + pb.PresenceResponse_DO_NOT_DISTURB: "dnd", + pb.PresenceResponse_CHAT: "chat", + pb.PresenceResponse_EXTENDED_AWAY: "xa", +} + +// GetPresence retrieves a user's presence. +// If the from address is an empty string the default +// (yourapp@appspot.com/bot) will be used. +// Possible return values are "", "away", "dnd", "chat", "xa". +// ErrPresenceUnavailable is returned if the presence is unavailable. +func GetPresence(c context.Context, to string, from string) (string, error) { + req := &pb.PresenceRequest{ + Jid: &to, + } + if from != "" { + req.FromJid = &from + } + res := &pb.PresenceResponse{} + if err := internal.Call(c, "xmpp", "GetPresence", req, res); err != nil { + return "", err + } + if !*res.IsAvailable || res.Presence == nil { + return "", ErrPresenceUnavailable + } + presence, ok := presenceMap[*res.Presence] + if ok { + return presence, nil + } + return "", fmt.Errorf("xmpp: unknown presence %v", *res.Presence) +} + +// GetPresenceMulti retrieves multiple users' presence. +// If the from address is an empty string the default +// (yourapp@appspot.com/bot) will be used. +// Possible return values are "", "away", "dnd", "chat", "xa". +// If any presence is unavailable, an appengine.MultiError is returned +func GetPresenceMulti(c context.Context, to []string, from string) ([]string, error) { + req := &pb.BulkPresenceRequest{ + Jid: to, + } + if from != "" { + req.FromJid = &from + } + res := &pb.BulkPresenceResponse{} + + if err := internal.Call(c, "xmpp", "BulkGetPresence", req, res); err != nil { + return nil, err + } + + presences := make([]string, 0, len(res.PresenceResponse)) + errs := appengine.MultiError{} + + addResult := func(presence string, err error) { + presences = append(presences, presence) + errs = append(errs, err) + } + + anyErr := false + for _, subres := range res.PresenceResponse { + if !subres.GetValid() { + anyErr = true + addResult("", ErrInvalidJID) + continue + } + if !*subres.IsAvailable || subres.Presence == nil { + anyErr = true + addResult("", ErrPresenceUnavailable) + continue + } + presence, ok := presenceMap[*subres.Presence] + if ok { + addResult(presence, nil) + } else { + anyErr = true + addResult("", fmt.Errorf("xmpp: unknown presence %q", *subres.Presence)) + } + } + if anyErr { + return presences, errs + } + return presences, nil +} + +func init() { + internal.RegisterErrorCodeMap("xmpp", pb.XmppServiceError_ErrorCode_name) +} diff --git a/vendor/google.golang.org/appengine/xmpp/xmpp_test.go b/vendor/google.golang.org/appengine/xmpp/xmpp_test.go new file mode 100644 index 000000000..c3030d36d --- /dev/null +++ b/vendor/google.golang.org/appengine/xmpp/xmpp_test.go @@ -0,0 +1,173 @@ +// Copyright 2011 Google Inc. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package xmpp + +import ( + "fmt" + "reflect" + "testing" + + "github.com/golang/protobuf/proto" + + "google.golang.org/appengine" + "google.golang.org/appengine/internal/aetesting" + pb "google.golang.org/appengine/internal/xmpp" +) + +func newPresenceResponse(isAvailable bool, presence pb.PresenceResponse_SHOW, valid bool) *pb.PresenceResponse { + return &pb.PresenceResponse{ + IsAvailable: proto.Bool(isAvailable), + Presence: presence.Enum(), + Valid: proto.Bool(valid), + } +} + +func setPresenceResponse(m *pb.PresenceResponse, isAvailable bool, presence pb.PresenceResponse_SHOW, valid bool) { + m.IsAvailable = &isAvailable + m.Presence = presence.Enum() + m.Valid = &valid +} + +func TestGetPresence(t *testing.T) { + c := aetesting.FakeSingleContext(t, "xmpp", "GetPresence", func(in *pb.PresenceRequest, out *pb.PresenceResponse) error { + if jid := in.GetJid(); jid != "user@example.com" { + return fmt.Errorf("bad jid %q", jid) + } + setPresenceResponse(out, true, pb.PresenceResponse_CHAT, true) + return nil + }) + + presence, err := GetPresence(c, "user@example.com", "") + if err != nil { + t.Fatalf("GetPresence: %v", err) + } + + if presence != "chat" { + t.Errorf("GetPresence: got %#v, want %#v", presence, pb.PresenceResponse_CHAT) + } +} + +func TestGetPresenceMultiSingleJID(t *testing.T) { + c := aetesting.FakeSingleContext(t, "xmpp", "BulkGetPresence", func(in *pb.BulkPresenceRequest, out *pb.BulkPresenceResponse) error { + if !reflect.DeepEqual(in.Jid, []string{"user@example.com"}) { + return fmt.Errorf("bad request jids %#v", in.Jid) + } + out.PresenceResponse = []*pb.PresenceResponse{ + newPresenceResponse(true, pb.PresenceResponse_NORMAL, true), + } + return nil + }) + + presence, err := GetPresenceMulti(c, []string{"user@example.com"}, "") + if err != nil { + t.Fatalf("GetPresenceMulti: %v", err) + } + if !reflect.DeepEqual(presence, []string{""}) { + t.Errorf("GetPresenceMulti: got %s, want %s", presence, []string{""}) + } +} + +func TestGetPresenceMultiJID(t *testing.T) { + c := aetesting.FakeSingleContext(t, "xmpp", "BulkGetPresence", func(in *pb.BulkPresenceRequest, out *pb.BulkPresenceResponse) error { + if !reflect.DeepEqual(in.Jid, []string{"user@example.com", "user2@example.com"}) { + return fmt.Errorf("bad request jids %#v", in.Jid) + } + out.PresenceResponse = []*pb.PresenceResponse{ + newPresenceResponse(true, pb.PresenceResponse_NORMAL, true), + newPresenceResponse(true, pb.PresenceResponse_AWAY, true), + } + return nil + }) + + jids := []string{"user@example.com", "user2@example.com"} + presence, err := GetPresenceMulti(c, jids, "") + if err != nil { + t.Fatalf("GetPresenceMulti: %v", err) + } + want := []string{"", "away"} + if !reflect.DeepEqual(presence, want) { + t.Errorf("GetPresenceMulti: got %v, want %v", presence, want) + } +} + +func TestGetPresenceMultiFromJID(t *testing.T) { + c := aetesting.FakeSingleContext(t, "xmpp", "BulkGetPresence", func(in *pb.BulkPresenceRequest, out *pb.BulkPresenceResponse) error { + if !reflect.DeepEqual(in.Jid, []string{"user@example.com", "user2@example.com"}) { + return fmt.Errorf("bad request jids %#v", in.Jid) + } + if jid := in.GetFromJid(); jid != "bot@appspot.com" { + return fmt.Errorf("bad from jid %q", jid) + } + out.PresenceResponse = []*pb.PresenceResponse{ + newPresenceResponse(true, pb.PresenceResponse_NORMAL, true), + newPresenceResponse(true, pb.PresenceResponse_CHAT, true), + } + return nil + }) + + jids := []string{"user@example.com", "user2@example.com"} + presence, err := GetPresenceMulti(c, jids, "bot@appspot.com") + if err != nil { + t.Fatalf("GetPresenceMulti: %v", err) + } + want := []string{"", "chat"} + if !reflect.DeepEqual(presence, want) { + t.Errorf("GetPresenceMulti: got %v, want %v", presence, want) + } +} + +func TestGetPresenceMultiInvalid(t *testing.T) { + c := aetesting.FakeSingleContext(t, "xmpp", "BulkGetPresence", func(in *pb.BulkPresenceRequest, out *pb.BulkPresenceResponse) error { + if !reflect.DeepEqual(in.Jid, []string{"user@example.com", "user2@example.com"}) { + return fmt.Errorf("bad request jids %#v", in.Jid) + } + out.PresenceResponse = []*pb.PresenceResponse{ + newPresenceResponse(true, pb.PresenceResponse_EXTENDED_AWAY, true), + newPresenceResponse(true, pb.PresenceResponse_CHAT, false), + } + return nil + }) + + jids := []string{"user@example.com", "user2@example.com"} + presence, err := GetPresenceMulti(c, jids, "") + + wantErr := appengine.MultiError{nil, ErrInvalidJID} + if !reflect.DeepEqual(err, wantErr) { + t.Fatalf("GetPresenceMulti: got %#v, want %#v", err, wantErr) + } + + want := []string{"xa", ""} + if !reflect.DeepEqual(presence, want) { + t.Errorf("GetPresenceMulti: got %#v, want %#v", presence, want) + } +} + +func TestGetPresenceMultiUnavailable(t *testing.T) { + c := aetesting.FakeSingleContext(t, "xmpp", "BulkGetPresence", func(in *pb.BulkPresenceRequest, out *pb.BulkPresenceResponse) error { + if !reflect.DeepEqual(in.Jid, []string{"user@example.com", "user2@example.com"}) { + return fmt.Errorf("bad request jids %#v", in.Jid) + } + out.PresenceResponse = []*pb.PresenceResponse{ + newPresenceResponse(false, pb.PresenceResponse_AWAY, true), + newPresenceResponse(false, pb.PresenceResponse_DO_NOT_DISTURB, true), + } + return nil + }) + + jids := []string{"user@example.com", "user2@example.com"} + presence, err := GetPresenceMulti(c, jids, "") + + wantErr := appengine.MultiError{ + ErrPresenceUnavailable, + ErrPresenceUnavailable, + } + if !reflect.DeepEqual(err, wantErr) { + t.Fatalf("GetPresenceMulti: got %#v, want %#v", err, wantErr) + } + want := []string{"", ""} + if !reflect.DeepEqual(presence, want) { + t.Errorf("GetPresenceMulti: got %#v, want %#v", presence, want) + } +} diff --git a/vendor/google.golang.org/genproto/.travis.yml b/vendor/google.golang.org/genproto/.travis.yml deleted file mode 100644 index df73d9d5c..000000000 --- a/vendor/google.golang.org/genproto/.travis.yml +++ /dev/null @@ -1,12 +0,0 @@ -language: go -go: - - 1.9.x - - 1.10.x - - 1.11.x -go_import_path: google.golang.org/genproto - -script: -- go test -v ./... -- if [[ "$TRAVIS_BRANCH" == "master" && "$TRAVIS_PULL_REQUEST" == "false" ]]; then - go get -u -v cloud.google.com/go/...; - fi diff --git a/vendor/google.golang.org/genproto/README.md b/vendor/google.golang.org/genproto/README.md index 51d0bae5f..52e084b66 100644 --- a/vendor/google.golang.org/genproto/README.md +++ b/vendor/google.golang.org/genproto/README.md @@ -1,9 +1,12 @@ Go generated proto packages =========================== -[![Build Status](https://travis-ci.org/google/go-genproto.svg?branch=master)](https://travis-ci.org/google/go-genproto) [![GoDoc](https://godoc.org/google.golang.org/genproto?status.svg)](https://godoc.org/google.golang.org/genproto) +``` +go get google.golang.org/genproto +``` + > **IMPORTANT** This repository is currently experimental. The structure > of the contained packages is subject to change. Please see the original > source repositories (listed below) to find out the status of the each diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/ad_type_infos.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/ad_type_infos.pb.go new file mode 100644 index 000000000..f07af7872 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/ad_type_infos.pb.go @@ -0,0 +1,1205 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/common/ad_type_infos.proto + +package common // import "google.golang.org/genproto/googleapis/ads/googleads/v0/common" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A text ad. +type TextAdInfo struct { + // The headline of the ad. + Headline *wrappers.StringValue `protobuf:"bytes,1,opt,name=headline,proto3" json:"headline,omitempty"` + // The first line of the ad's description. + Description1 *wrappers.StringValue `protobuf:"bytes,2,opt,name=description1,proto3" json:"description1,omitempty"` + // The second line of the ad's description. + Description2 *wrappers.StringValue `protobuf:"bytes,3,opt,name=description2,proto3" json:"description2,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TextAdInfo) Reset() { *m = TextAdInfo{} } +func (m *TextAdInfo) String() string { return proto.CompactTextString(m) } +func (*TextAdInfo) ProtoMessage() {} +func (*TextAdInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_type_infos_88d22de745f5a930, []int{0} +} +func (m *TextAdInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TextAdInfo.Unmarshal(m, b) +} +func (m *TextAdInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TextAdInfo.Marshal(b, m, deterministic) +} +func (dst *TextAdInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_TextAdInfo.Merge(dst, src) +} +func (m *TextAdInfo) XXX_Size() int { + return xxx_messageInfo_TextAdInfo.Size(m) +} +func (m *TextAdInfo) XXX_DiscardUnknown() { + xxx_messageInfo_TextAdInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_TextAdInfo proto.InternalMessageInfo + +func (m *TextAdInfo) GetHeadline() *wrappers.StringValue { + if m != nil { + return m.Headline + } + return nil +} + +func (m *TextAdInfo) GetDescription1() *wrappers.StringValue { + if m != nil { + return m.Description1 + } + return nil +} + +func (m *TextAdInfo) GetDescription2() *wrappers.StringValue { + if m != nil { + return m.Description2 + } + return nil +} + +// An expanded text ad. +type ExpandedTextAdInfo struct { + // The first part of the ad's headline. + HeadlinePart1 *wrappers.StringValue `protobuf:"bytes,1,opt,name=headline_part1,json=headlinePart1,proto3" json:"headline_part1,omitempty"` + // The second part of the ad's headline. + HeadlinePart2 *wrappers.StringValue `protobuf:"bytes,2,opt,name=headline_part2,json=headlinePart2,proto3" json:"headline_part2,omitempty"` + // The third part of the ad's headline. + HeadlinePart3 *wrappers.StringValue `protobuf:"bytes,6,opt,name=headline_part3,json=headlinePart3,proto3" json:"headline_part3,omitempty"` + // The description of the ad. + Description *wrappers.StringValue `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` + // The second description of the ad. + Description2 *wrappers.StringValue `protobuf:"bytes,7,opt,name=description2,proto3" json:"description2,omitempty"` + // The text that can appear alongside the ad's displayed URL. + Path1 *wrappers.StringValue `protobuf:"bytes,4,opt,name=path1,proto3" json:"path1,omitempty"` + // Additional text that can appear alongside the ad's displayed URL. + Path2 *wrappers.StringValue `protobuf:"bytes,5,opt,name=path2,proto3" json:"path2,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ExpandedTextAdInfo) Reset() { *m = ExpandedTextAdInfo{} } +func (m *ExpandedTextAdInfo) String() string { return proto.CompactTextString(m) } +func (*ExpandedTextAdInfo) ProtoMessage() {} +func (*ExpandedTextAdInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_type_infos_88d22de745f5a930, []int{1} +} +func (m *ExpandedTextAdInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ExpandedTextAdInfo.Unmarshal(m, b) +} +func (m *ExpandedTextAdInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ExpandedTextAdInfo.Marshal(b, m, deterministic) +} +func (dst *ExpandedTextAdInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_ExpandedTextAdInfo.Merge(dst, src) +} +func (m *ExpandedTextAdInfo) XXX_Size() int { + return xxx_messageInfo_ExpandedTextAdInfo.Size(m) +} +func (m *ExpandedTextAdInfo) XXX_DiscardUnknown() { + xxx_messageInfo_ExpandedTextAdInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_ExpandedTextAdInfo proto.InternalMessageInfo + +func (m *ExpandedTextAdInfo) GetHeadlinePart1() *wrappers.StringValue { + if m != nil { + return m.HeadlinePart1 + } + return nil +} + +func (m *ExpandedTextAdInfo) GetHeadlinePart2() *wrappers.StringValue { + if m != nil { + return m.HeadlinePart2 + } + return nil +} + +func (m *ExpandedTextAdInfo) GetHeadlinePart3() *wrappers.StringValue { + if m != nil { + return m.HeadlinePart3 + } + return nil +} + +func (m *ExpandedTextAdInfo) GetDescription() *wrappers.StringValue { + if m != nil { + return m.Description + } + return nil +} + +func (m *ExpandedTextAdInfo) GetDescription2() *wrappers.StringValue { + if m != nil { + return m.Description2 + } + return nil +} + +func (m *ExpandedTextAdInfo) GetPath1() *wrappers.StringValue { + if m != nil { + return m.Path1 + } + return nil +} + +func (m *ExpandedTextAdInfo) GetPath2() *wrappers.StringValue { + if m != nil { + return m.Path2 + } + return nil +} + +// A dynamic search ad. +type DynamicSearchAdInfo struct { + // The first line of the ad's description. + Description1 *wrappers.StringValue `protobuf:"bytes,1,opt,name=description1,proto3" json:"description1,omitempty"` + // The second line of the ad's description. + Description2 *wrappers.StringValue `protobuf:"bytes,2,opt,name=description2,proto3" json:"description2,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DynamicSearchAdInfo) Reset() { *m = DynamicSearchAdInfo{} } +func (m *DynamicSearchAdInfo) String() string { return proto.CompactTextString(m) } +func (*DynamicSearchAdInfo) ProtoMessage() {} +func (*DynamicSearchAdInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_type_infos_88d22de745f5a930, []int{2} +} +func (m *DynamicSearchAdInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DynamicSearchAdInfo.Unmarshal(m, b) +} +func (m *DynamicSearchAdInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DynamicSearchAdInfo.Marshal(b, m, deterministic) +} +func (dst *DynamicSearchAdInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_DynamicSearchAdInfo.Merge(dst, src) +} +func (m *DynamicSearchAdInfo) XXX_Size() int { + return xxx_messageInfo_DynamicSearchAdInfo.Size(m) +} +func (m *DynamicSearchAdInfo) XXX_DiscardUnknown() { + xxx_messageInfo_DynamicSearchAdInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_DynamicSearchAdInfo proto.InternalMessageInfo + +func (m *DynamicSearchAdInfo) GetDescription1() *wrappers.StringValue { + if m != nil { + return m.Description1 + } + return nil +} + +func (m *DynamicSearchAdInfo) GetDescription2() *wrappers.StringValue { + if m != nil { + return m.Description2 + } + return nil +} + +// A responsive display ad. +type ResponsiveDisplayAdInfo struct { + // The short version of the ad's headline. + ShortHeadline *wrappers.StringValue `protobuf:"bytes,1,opt,name=short_headline,json=shortHeadline,proto3" json:"short_headline,omitempty"` + // The long version of the ad's headline. + LongHeadline *wrappers.StringValue `protobuf:"bytes,2,opt,name=long_headline,json=longHeadline,proto3" json:"long_headline,omitempty"` + // The description of the ad. + Description *wrappers.StringValue `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` + // The business name in the ad. + BusinessName *wrappers.StringValue `protobuf:"bytes,4,opt,name=business_name,json=businessName,proto3" json:"business_name,omitempty"` + // Advertiser's consent to allow flexible color. When true, the ad may be + // served with different color if necessary. When false, the ad will be served + // with the specified colors or a neutral color. + // The default value is true. + // Must be true if main_color and accent_color are not set. + AllowFlexibleColor *wrappers.BoolValue `protobuf:"bytes,5,opt,name=allow_flexible_color,json=allowFlexibleColor,proto3" json:"allow_flexible_color,omitempty"` + // The accent color of the ad in hexadecimal, e.g. #ffffff for white. + // If one of main_color and accent_color is set, the other is required as + // well. + AccentColor *wrappers.StringValue `protobuf:"bytes,6,opt,name=accent_color,json=accentColor,proto3" json:"accent_color,omitempty"` + // The main color of the ad in hexadecimal, e.g. #ffffff for white. + // If one of main_color and accent_color is set, the other is required as + // well. + MainColor *wrappers.StringValue `protobuf:"bytes,7,opt,name=main_color,json=mainColor,proto3" json:"main_color,omitempty"` + // The call-to-action text for the ad. + CallToActionText *wrappers.StringValue `protobuf:"bytes,8,opt,name=call_to_action_text,json=callToActionText,proto3" json:"call_to_action_text,omitempty"` + // The MediaFile resource name of the logo image used in the ad. + LogoImage *wrappers.StringValue `protobuf:"bytes,9,opt,name=logo_image,json=logoImage,proto3" json:"logo_image,omitempty"` + // The MediaFile resource name of the square logo image used in the ad. + SquareLogoImage *wrappers.StringValue `protobuf:"bytes,10,opt,name=square_logo_image,json=squareLogoImage,proto3" json:"square_logo_image,omitempty"` + // The MediaFile resource name of the marketing image used in the ad. + MarketingImage *wrappers.StringValue `protobuf:"bytes,11,opt,name=marketing_image,json=marketingImage,proto3" json:"marketing_image,omitempty"` + // The MediaFile resource name of the square marketing image used in the ad. + SquareMarketingImage *wrappers.StringValue `protobuf:"bytes,12,opt,name=square_marketing_image,json=squareMarketingImage,proto3" json:"square_marketing_image,omitempty"` + // Specifies which format the ad will be served in. Default is ALL_FORMATS. + FormatSetting enums.DisplayAdFormatSettingEnum_DisplayAdFormatSetting `protobuf:"varint,13,opt,name=format_setting,json=formatSetting,proto3,enum=google.ads.googleads.v0.enums.DisplayAdFormatSettingEnum_DisplayAdFormatSetting" json:"format_setting,omitempty"` + // Prefix before price. E.g. 'as low as'. + PricePrefix *wrappers.StringValue `protobuf:"bytes,14,opt,name=price_prefix,json=pricePrefix,proto3" json:"price_prefix,omitempty"` + // Promotion text used for dyanmic formats of responsive ads. For example + // 'Free two-day shipping'. + PromoText *wrappers.StringValue `protobuf:"bytes,15,opt,name=promo_text,json=promoText,proto3" json:"promo_text,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ResponsiveDisplayAdInfo) Reset() { *m = ResponsiveDisplayAdInfo{} } +func (m *ResponsiveDisplayAdInfo) String() string { return proto.CompactTextString(m) } +func (*ResponsiveDisplayAdInfo) ProtoMessage() {} +func (*ResponsiveDisplayAdInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_type_infos_88d22de745f5a930, []int{3} +} +func (m *ResponsiveDisplayAdInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ResponsiveDisplayAdInfo.Unmarshal(m, b) +} +func (m *ResponsiveDisplayAdInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ResponsiveDisplayAdInfo.Marshal(b, m, deterministic) +} +func (dst *ResponsiveDisplayAdInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_ResponsiveDisplayAdInfo.Merge(dst, src) +} +func (m *ResponsiveDisplayAdInfo) XXX_Size() int { + return xxx_messageInfo_ResponsiveDisplayAdInfo.Size(m) +} +func (m *ResponsiveDisplayAdInfo) XXX_DiscardUnknown() { + xxx_messageInfo_ResponsiveDisplayAdInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_ResponsiveDisplayAdInfo proto.InternalMessageInfo + +func (m *ResponsiveDisplayAdInfo) GetShortHeadline() *wrappers.StringValue { + if m != nil { + return m.ShortHeadline + } + return nil +} + +func (m *ResponsiveDisplayAdInfo) GetLongHeadline() *wrappers.StringValue { + if m != nil { + return m.LongHeadline + } + return nil +} + +func (m *ResponsiveDisplayAdInfo) GetDescription() *wrappers.StringValue { + if m != nil { + return m.Description + } + return nil +} + +func (m *ResponsiveDisplayAdInfo) GetBusinessName() *wrappers.StringValue { + if m != nil { + return m.BusinessName + } + return nil +} + +func (m *ResponsiveDisplayAdInfo) GetAllowFlexibleColor() *wrappers.BoolValue { + if m != nil { + return m.AllowFlexibleColor + } + return nil +} + +func (m *ResponsiveDisplayAdInfo) GetAccentColor() *wrappers.StringValue { + if m != nil { + return m.AccentColor + } + return nil +} + +func (m *ResponsiveDisplayAdInfo) GetMainColor() *wrappers.StringValue { + if m != nil { + return m.MainColor + } + return nil +} + +func (m *ResponsiveDisplayAdInfo) GetCallToActionText() *wrappers.StringValue { + if m != nil { + return m.CallToActionText + } + return nil +} + +func (m *ResponsiveDisplayAdInfo) GetLogoImage() *wrappers.StringValue { + if m != nil { + return m.LogoImage + } + return nil +} + +func (m *ResponsiveDisplayAdInfo) GetSquareLogoImage() *wrappers.StringValue { + if m != nil { + return m.SquareLogoImage + } + return nil +} + +func (m *ResponsiveDisplayAdInfo) GetMarketingImage() *wrappers.StringValue { + if m != nil { + return m.MarketingImage + } + return nil +} + +func (m *ResponsiveDisplayAdInfo) GetSquareMarketingImage() *wrappers.StringValue { + if m != nil { + return m.SquareMarketingImage + } + return nil +} + +func (m *ResponsiveDisplayAdInfo) GetFormatSetting() enums.DisplayAdFormatSettingEnum_DisplayAdFormatSetting { + if m != nil { + return m.FormatSetting + } + return enums.DisplayAdFormatSettingEnum_UNSPECIFIED +} + +func (m *ResponsiveDisplayAdInfo) GetPricePrefix() *wrappers.StringValue { + if m != nil { + return m.PricePrefix + } + return nil +} + +func (m *ResponsiveDisplayAdInfo) GetPromoText() *wrappers.StringValue { + if m != nil { + return m.PromoText + } + return nil +} + +// A call-only ad. +type CallOnlyAdInfo struct { + // The country code in the ad. + CountryCode *wrappers.StringValue `protobuf:"bytes,1,opt,name=country_code,json=countryCode,proto3" json:"country_code,omitempty"` + // The phone number in the ad. + PhoneNumber *wrappers.StringValue `protobuf:"bytes,2,opt,name=phone_number,json=phoneNumber,proto3" json:"phone_number,omitempty"` + // The business name in the ad. + BusinessName *wrappers.StringValue `protobuf:"bytes,3,opt,name=business_name,json=businessName,proto3" json:"business_name,omitempty"` + // The first line of the ad's description. + Description1 *wrappers.StringValue `protobuf:"bytes,4,opt,name=description1,proto3" json:"description1,omitempty"` + // The second line of the ad's description. + Description2 *wrappers.StringValue `protobuf:"bytes,5,opt,name=description2,proto3" json:"description2,omitempty"` + // Whether to enable call tracking for the creative. Enabling call + // tracking also enables call conversions. + CallTracked *wrappers.BoolValue `protobuf:"bytes,6,opt,name=call_tracked,json=callTracked,proto3" json:"call_tracked,omitempty"` + // Whether to disable call conversion for the creative. + // If set to `true`, disables call conversions even when `call_tracked` is + // `true`. + // If `call_tracked` is `false`, this field is ignored. + DisableCallConversion *wrappers.BoolValue `protobuf:"bytes,7,opt,name=disable_call_conversion,json=disableCallConversion,proto3" json:"disable_call_conversion,omitempty"` + // The URL to be used for phone number verification. + PhoneNumberVerificationUrl *wrappers.StringValue `protobuf:"bytes,8,opt,name=phone_number_verification_url,json=phoneNumberVerificationUrl,proto3" json:"phone_number_verification_url,omitempty"` + // The conversion action to attribute a call conversion to. If not set a + // default conversion action is used. This field only has effect if + // call_tracked is set to true. Otherwise this field is ignored. + ConversionAction *wrappers.StringValue `protobuf:"bytes,9,opt,name=conversion_action,json=conversionAction,proto3" json:"conversion_action,omitempty"` + // The call conversion behavior of this call only ad. It can use its own call + // conversion setting, inherit the account level setting, or be disabled. + ConversionReportingState enums.CallConversionReportingStateEnum_CallConversionReportingState `protobuf:"varint,10,opt,name=conversion_reporting_state,json=conversionReportingState,proto3,enum=google.ads.googleads.v0.enums.CallConversionReportingStateEnum_CallConversionReportingState" json:"conversion_reporting_state,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CallOnlyAdInfo) Reset() { *m = CallOnlyAdInfo{} } +func (m *CallOnlyAdInfo) String() string { return proto.CompactTextString(m) } +func (*CallOnlyAdInfo) ProtoMessage() {} +func (*CallOnlyAdInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_type_infos_88d22de745f5a930, []int{4} +} +func (m *CallOnlyAdInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CallOnlyAdInfo.Unmarshal(m, b) +} +func (m *CallOnlyAdInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CallOnlyAdInfo.Marshal(b, m, deterministic) +} +func (dst *CallOnlyAdInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_CallOnlyAdInfo.Merge(dst, src) +} +func (m *CallOnlyAdInfo) XXX_Size() int { + return xxx_messageInfo_CallOnlyAdInfo.Size(m) +} +func (m *CallOnlyAdInfo) XXX_DiscardUnknown() { + xxx_messageInfo_CallOnlyAdInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_CallOnlyAdInfo proto.InternalMessageInfo + +func (m *CallOnlyAdInfo) GetCountryCode() *wrappers.StringValue { + if m != nil { + return m.CountryCode + } + return nil +} + +func (m *CallOnlyAdInfo) GetPhoneNumber() *wrappers.StringValue { + if m != nil { + return m.PhoneNumber + } + return nil +} + +func (m *CallOnlyAdInfo) GetBusinessName() *wrappers.StringValue { + if m != nil { + return m.BusinessName + } + return nil +} + +func (m *CallOnlyAdInfo) GetDescription1() *wrappers.StringValue { + if m != nil { + return m.Description1 + } + return nil +} + +func (m *CallOnlyAdInfo) GetDescription2() *wrappers.StringValue { + if m != nil { + return m.Description2 + } + return nil +} + +func (m *CallOnlyAdInfo) GetCallTracked() *wrappers.BoolValue { + if m != nil { + return m.CallTracked + } + return nil +} + +func (m *CallOnlyAdInfo) GetDisableCallConversion() *wrappers.BoolValue { + if m != nil { + return m.DisableCallConversion + } + return nil +} + +func (m *CallOnlyAdInfo) GetPhoneNumberVerificationUrl() *wrappers.StringValue { + if m != nil { + return m.PhoneNumberVerificationUrl + } + return nil +} + +func (m *CallOnlyAdInfo) GetConversionAction() *wrappers.StringValue { + if m != nil { + return m.ConversionAction + } + return nil +} + +func (m *CallOnlyAdInfo) GetConversionReportingState() enums.CallConversionReportingStateEnum_CallConversionReportingState { + if m != nil { + return m.ConversionReportingState + } + return enums.CallConversionReportingStateEnum_UNSPECIFIED +} + +// An expanded dynamic search ad. +type ExpandedDynamicSearchAdInfo struct { + // The description of the ad. + Description *wrappers.StringValue `protobuf:"bytes,1,opt,name=description,proto3" json:"description,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ExpandedDynamicSearchAdInfo) Reset() { *m = ExpandedDynamicSearchAdInfo{} } +func (m *ExpandedDynamicSearchAdInfo) String() string { return proto.CompactTextString(m) } +func (*ExpandedDynamicSearchAdInfo) ProtoMessage() {} +func (*ExpandedDynamicSearchAdInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_type_infos_88d22de745f5a930, []int{5} +} +func (m *ExpandedDynamicSearchAdInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ExpandedDynamicSearchAdInfo.Unmarshal(m, b) +} +func (m *ExpandedDynamicSearchAdInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ExpandedDynamicSearchAdInfo.Marshal(b, m, deterministic) +} +func (dst *ExpandedDynamicSearchAdInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_ExpandedDynamicSearchAdInfo.Merge(dst, src) +} +func (m *ExpandedDynamicSearchAdInfo) XXX_Size() int { + return xxx_messageInfo_ExpandedDynamicSearchAdInfo.Size(m) +} +func (m *ExpandedDynamicSearchAdInfo) XXX_DiscardUnknown() { + xxx_messageInfo_ExpandedDynamicSearchAdInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_ExpandedDynamicSearchAdInfo proto.InternalMessageInfo + +func (m *ExpandedDynamicSearchAdInfo) GetDescription() *wrappers.StringValue { + if m != nil { + return m.Description + } + return nil +} + +// A hotel ad. +type HotelAdInfo struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *HotelAdInfo) Reset() { *m = HotelAdInfo{} } +func (m *HotelAdInfo) String() string { return proto.CompactTextString(m) } +func (*HotelAdInfo) ProtoMessage() {} +func (*HotelAdInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_type_infos_88d22de745f5a930, []int{6} +} +func (m *HotelAdInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HotelAdInfo.Unmarshal(m, b) +} +func (m *HotelAdInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HotelAdInfo.Marshal(b, m, deterministic) +} +func (dst *HotelAdInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_HotelAdInfo.Merge(dst, src) +} +func (m *HotelAdInfo) XXX_Size() int { + return xxx_messageInfo_HotelAdInfo.Size(m) +} +func (m *HotelAdInfo) XXX_DiscardUnknown() { + xxx_messageInfo_HotelAdInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_HotelAdInfo proto.InternalMessageInfo + +// A Smart Shopping ad. +type ShoppingSmartAdInfo struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ShoppingSmartAdInfo) Reset() { *m = ShoppingSmartAdInfo{} } +func (m *ShoppingSmartAdInfo) String() string { return proto.CompactTextString(m) } +func (*ShoppingSmartAdInfo) ProtoMessage() {} +func (*ShoppingSmartAdInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_type_infos_88d22de745f5a930, []int{7} +} +func (m *ShoppingSmartAdInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ShoppingSmartAdInfo.Unmarshal(m, b) +} +func (m *ShoppingSmartAdInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ShoppingSmartAdInfo.Marshal(b, m, deterministic) +} +func (dst *ShoppingSmartAdInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_ShoppingSmartAdInfo.Merge(dst, src) +} +func (m *ShoppingSmartAdInfo) XXX_Size() int { + return xxx_messageInfo_ShoppingSmartAdInfo.Size(m) +} +func (m *ShoppingSmartAdInfo) XXX_DiscardUnknown() { + xxx_messageInfo_ShoppingSmartAdInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_ShoppingSmartAdInfo proto.InternalMessageInfo + +// A standard Shopping ad. +type ShoppingProductAdInfo struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ShoppingProductAdInfo) Reset() { *m = ShoppingProductAdInfo{} } +func (m *ShoppingProductAdInfo) String() string { return proto.CompactTextString(m) } +func (*ShoppingProductAdInfo) ProtoMessage() {} +func (*ShoppingProductAdInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_type_infos_88d22de745f5a930, []int{8} +} +func (m *ShoppingProductAdInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ShoppingProductAdInfo.Unmarshal(m, b) +} +func (m *ShoppingProductAdInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ShoppingProductAdInfo.Marshal(b, m, deterministic) +} +func (dst *ShoppingProductAdInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_ShoppingProductAdInfo.Merge(dst, src) +} +func (m *ShoppingProductAdInfo) XXX_Size() int { + return xxx_messageInfo_ShoppingProductAdInfo.Size(m) +} +func (m *ShoppingProductAdInfo) XXX_DiscardUnknown() { + xxx_messageInfo_ShoppingProductAdInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_ShoppingProductAdInfo proto.InternalMessageInfo + +// A Gmail ad. +type GmailAdInfo struct { + // The Gmail teaser. + Teaser *GmailTeaser `protobuf:"bytes,1,opt,name=teaser,proto3" json:"teaser,omitempty"` + // The MediaFile resource name of the header image. Valid image types are GIF, + // JPEG and PNG. The minimum size is 300x100 pixels and the aspect ratio must + // be between 3:1 and 5:1 (+-1%). + HeaderImage *wrappers.StringValue `protobuf:"bytes,2,opt,name=header_image,json=headerImage,proto3" json:"header_image,omitempty"` + // The MediaFile resource name of the marketing image. Valid image types are + // GIF, JPEG and PNG. The image must either be landscape with a minimum size + // of 600x314 pixels and aspect ratio of 600:314 (+-1%) or square with a + // minimum size of 300x300 pixels and aspect ratio of 1:1 (+-1%) + MarketingImage *wrappers.StringValue `protobuf:"bytes,3,opt,name=marketing_image,json=marketingImage,proto3" json:"marketing_image,omitempty"` + // Headline of the marketing image. + MarketingImageHeadline *wrappers.StringValue `protobuf:"bytes,4,opt,name=marketing_image_headline,json=marketingImageHeadline,proto3" json:"marketing_image_headline,omitempty"` + // Description of the marketing image. + MarketingImageDescription *wrappers.StringValue `protobuf:"bytes,5,opt,name=marketing_image_description,json=marketingImageDescription,proto3" json:"marketing_image_description,omitempty"` + // Display-call-to-action of the marketing image. + MarketingImageDisplayCallToAction *DisplayCallToAction `protobuf:"bytes,6,opt,name=marketing_image_display_call_to_action,json=marketingImageDisplayCallToAction,proto3" json:"marketing_image_display_call_to_action,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GmailAdInfo) Reset() { *m = GmailAdInfo{} } +func (m *GmailAdInfo) String() string { return proto.CompactTextString(m) } +func (*GmailAdInfo) ProtoMessage() {} +func (*GmailAdInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_type_infos_88d22de745f5a930, []int{9} +} +func (m *GmailAdInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GmailAdInfo.Unmarshal(m, b) +} +func (m *GmailAdInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GmailAdInfo.Marshal(b, m, deterministic) +} +func (dst *GmailAdInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_GmailAdInfo.Merge(dst, src) +} +func (m *GmailAdInfo) XXX_Size() int { + return xxx_messageInfo_GmailAdInfo.Size(m) +} +func (m *GmailAdInfo) XXX_DiscardUnknown() { + xxx_messageInfo_GmailAdInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_GmailAdInfo proto.InternalMessageInfo + +func (m *GmailAdInfo) GetTeaser() *GmailTeaser { + if m != nil { + return m.Teaser + } + return nil +} + +func (m *GmailAdInfo) GetHeaderImage() *wrappers.StringValue { + if m != nil { + return m.HeaderImage + } + return nil +} + +func (m *GmailAdInfo) GetMarketingImage() *wrappers.StringValue { + if m != nil { + return m.MarketingImage + } + return nil +} + +func (m *GmailAdInfo) GetMarketingImageHeadline() *wrappers.StringValue { + if m != nil { + return m.MarketingImageHeadline + } + return nil +} + +func (m *GmailAdInfo) GetMarketingImageDescription() *wrappers.StringValue { + if m != nil { + return m.MarketingImageDescription + } + return nil +} + +func (m *GmailAdInfo) GetMarketingImageDisplayCallToAction() *DisplayCallToAction { + if m != nil { + return m.MarketingImageDisplayCallToAction + } + return nil +} + +// Gmail teaser data. The teaser is a small header that acts as an invitation +// to view the rest of the ad (the body). +type GmailTeaser struct { + // Headline of the teaser. + Headline *wrappers.StringValue `protobuf:"bytes,1,opt,name=headline,proto3" json:"headline,omitempty"` + // Description of the teaser. + Description *wrappers.StringValue `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + // Business name of the advertiser. + BusinessName *wrappers.StringValue `protobuf:"bytes,3,opt,name=business_name,json=businessName,proto3" json:"business_name,omitempty"` + // The MediaFile resource name of the logo image. Valid image types are GIF, + // JPEG and PNG. The minimum size is 144x144 pixels and the aspect ratio must + // be 1:1 (+-1%). + LogoImage *wrappers.StringValue `protobuf:"bytes,4,opt,name=logo_image,json=logoImage,proto3" json:"logo_image,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GmailTeaser) Reset() { *m = GmailTeaser{} } +func (m *GmailTeaser) String() string { return proto.CompactTextString(m) } +func (*GmailTeaser) ProtoMessage() {} +func (*GmailTeaser) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_type_infos_88d22de745f5a930, []int{10} +} +func (m *GmailTeaser) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GmailTeaser.Unmarshal(m, b) +} +func (m *GmailTeaser) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GmailTeaser.Marshal(b, m, deterministic) +} +func (dst *GmailTeaser) XXX_Merge(src proto.Message) { + xxx_messageInfo_GmailTeaser.Merge(dst, src) +} +func (m *GmailTeaser) XXX_Size() int { + return xxx_messageInfo_GmailTeaser.Size(m) +} +func (m *GmailTeaser) XXX_DiscardUnknown() { + xxx_messageInfo_GmailTeaser.DiscardUnknown(m) +} + +var xxx_messageInfo_GmailTeaser proto.InternalMessageInfo + +func (m *GmailTeaser) GetHeadline() *wrappers.StringValue { + if m != nil { + return m.Headline + } + return nil +} + +func (m *GmailTeaser) GetDescription() *wrappers.StringValue { + if m != nil { + return m.Description + } + return nil +} + +func (m *GmailTeaser) GetBusinessName() *wrappers.StringValue { + if m != nil { + return m.BusinessName + } + return nil +} + +func (m *GmailTeaser) GetLogoImage() *wrappers.StringValue { + if m != nil { + return m.LogoImage + } + return nil +} + +// Data for display call to action. The call to action is a piece of the ad +// that prompts the user to do something. Like clicking a link or making a phone +// call. +type DisplayCallToAction struct { + // Text for the display-call-to-action. + Text *wrappers.StringValue `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"` + // Text color for the display-call-to-action in hexadecimal, e.g. #ffffff for + // white. + TextColor *wrappers.StringValue `protobuf:"bytes,2,opt,name=text_color,json=textColor,proto3" json:"text_color,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DisplayCallToAction) Reset() { *m = DisplayCallToAction{} } +func (m *DisplayCallToAction) String() string { return proto.CompactTextString(m) } +func (*DisplayCallToAction) ProtoMessage() {} +func (*DisplayCallToAction) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_type_infos_88d22de745f5a930, []int{11} +} +func (m *DisplayCallToAction) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DisplayCallToAction.Unmarshal(m, b) +} +func (m *DisplayCallToAction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DisplayCallToAction.Marshal(b, m, deterministic) +} +func (dst *DisplayCallToAction) XXX_Merge(src proto.Message) { + xxx_messageInfo_DisplayCallToAction.Merge(dst, src) +} +func (m *DisplayCallToAction) XXX_Size() int { + return xxx_messageInfo_DisplayCallToAction.Size(m) +} +func (m *DisplayCallToAction) XXX_DiscardUnknown() { + xxx_messageInfo_DisplayCallToAction.DiscardUnknown(m) +} + +var xxx_messageInfo_DisplayCallToAction proto.InternalMessageInfo + +func (m *DisplayCallToAction) GetText() *wrappers.StringValue { + if m != nil { + return m.Text + } + return nil +} + +func (m *DisplayCallToAction) GetTextColor() *wrappers.StringValue { + if m != nil { + return m.TextColor + } + return nil +} + +// An image ad. +type ImageAdInfo struct { + // Width in pixels of the full size image. + PixelWidth *wrappers.Int64Value `protobuf:"bytes,4,opt,name=pixel_width,json=pixelWidth,proto3" json:"pixel_width,omitempty"` + // Height in pixels of the full size image. + PixelHeight *wrappers.Int64Value `protobuf:"bytes,5,opt,name=pixel_height,json=pixelHeight,proto3" json:"pixel_height,omitempty"` + // URL of the full size image. + ImageUrl *wrappers.StringValue `protobuf:"bytes,6,opt,name=image_url,json=imageUrl,proto3" json:"image_url,omitempty"` + // Width in pixels of the preview size image. + PreviewPixelWidth *wrappers.Int64Value `protobuf:"bytes,7,opt,name=preview_pixel_width,json=previewPixelWidth,proto3" json:"preview_pixel_width,omitempty"` + // Height in pixels of the preview size image. + PreviewPixelHeight *wrappers.Int64Value `protobuf:"bytes,8,opt,name=preview_pixel_height,json=previewPixelHeight,proto3" json:"preview_pixel_height,omitempty"` + // URL of the preview size image. + PreviewImageUrl *wrappers.StringValue `protobuf:"bytes,9,opt,name=preview_image_url,json=previewImageUrl,proto3" json:"preview_image_url,omitempty"` + // The mime type of the image. + MimeType enums.MimeTypeEnum_MimeType `protobuf:"varint,10,opt,name=mime_type,json=mimeType,proto3,enum=google.ads.googleads.v0.enums.MimeTypeEnum_MimeType" json:"mime_type,omitempty"` + // The name of the image. If the image was created from a MediaFile, this is + // the MediaFile's name. If the image was created from bytes, this is empty. + Name *wrappers.StringValue `protobuf:"bytes,11,opt,name=name,proto3" json:"name,omitempty"` + // The image to create the ImageAd from. This can be specified in one of + // two ways. + // 1. An existing MediaFile resource. + // 2. The raw image data as bytes. + // + // Types that are valid to be assigned to Image: + // *ImageAdInfo_MediaFile + // *ImageAdInfo_Data + Image isImageAdInfo_Image `protobuf_oneof:"image"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ImageAdInfo) Reset() { *m = ImageAdInfo{} } +func (m *ImageAdInfo) String() string { return proto.CompactTextString(m) } +func (*ImageAdInfo) ProtoMessage() {} +func (*ImageAdInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_type_infos_88d22de745f5a930, []int{12} +} +func (m *ImageAdInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ImageAdInfo.Unmarshal(m, b) +} +func (m *ImageAdInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ImageAdInfo.Marshal(b, m, deterministic) +} +func (dst *ImageAdInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_ImageAdInfo.Merge(dst, src) +} +func (m *ImageAdInfo) XXX_Size() int { + return xxx_messageInfo_ImageAdInfo.Size(m) +} +func (m *ImageAdInfo) XXX_DiscardUnknown() { + xxx_messageInfo_ImageAdInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_ImageAdInfo proto.InternalMessageInfo + +func (m *ImageAdInfo) GetPixelWidth() *wrappers.Int64Value { + if m != nil { + return m.PixelWidth + } + return nil +} + +func (m *ImageAdInfo) GetPixelHeight() *wrappers.Int64Value { + if m != nil { + return m.PixelHeight + } + return nil +} + +func (m *ImageAdInfo) GetImageUrl() *wrappers.StringValue { + if m != nil { + return m.ImageUrl + } + return nil +} + +func (m *ImageAdInfo) GetPreviewPixelWidth() *wrappers.Int64Value { + if m != nil { + return m.PreviewPixelWidth + } + return nil +} + +func (m *ImageAdInfo) GetPreviewPixelHeight() *wrappers.Int64Value { + if m != nil { + return m.PreviewPixelHeight + } + return nil +} + +func (m *ImageAdInfo) GetPreviewImageUrl() *wrappers.StringValue { + if m != nil { + return m.PreviewImageUrl + } + return nil +} + +func (m *ImageAdInfo) GetMimeType() enums.MimeTypeEnum_MimeType { + if m != nil { + return m.MimeType + } + return enums.MimeTypeEnum_UNSPECIFIED +} + +func (m *ImageAdInfo) GetName() *wrappers.StringValue { + if m != nil { + return m.Name + } + return nil +} + +type isImageAdInfo_Image interface { + isImageAdInfo_Image() +} + +type ImageAdInfo_MediaFile struct { + MediaFile *wrappers.StringValue `protobuf:"bytes,1,opt,name=media_file,json=mediaFile,proto3,oneof"` +} + +type ImageAdInfo_Data struct { + Data *wrappers.BytesValue `protobuf:"bytes,2,opt,name=data,proto3,oneof"` +} + +func (*ImageAdInfo_MediaFile) isImageAdInfo_Image() {} + +func (*ImageAdInfo_Data) isImageAdInfo_Image() {} + +func (m *ImageAdInfo) GetImage() isImageAdInfo_Image { + if m != nil { + return m.Image + } + return nil +} + +func (m *ImageAdInfo) GetMediaFile() *wrappers.StringValue { + if x, ok := m.GetImage().(*ImageAdInfo_MediaFile); ok { + return x.MediaFile + } + return nil +} + +func (m *ImageAdInfo) GetData() *wrappers.BytesValue { + if x, ok := m.GetImage().(*ImageAdInfo_Data); ok { + return x.Data + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*ImageAdInfo) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _ImageAdInfo_OneofMarshaler, _ImageAdInfo_OneofUnmarshaler, _ImageAdInfo_OneofSizer, []interface{}{ + (*ImageAdInfo_MediaFile)(nil), + (*ImageAdInfo_Data)(nil), + } +} + +func _ImageAdInfo_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*ImageAdInfo) + // image + switch x := m.Image.(type) { + case *ImageAdInfo_MediaFile: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.MediaFile); err != nil { + return err + } + case *ImageAdInfo_Data: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Data); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("ImageAdInfo.Image has unexpected type %T", x) + } + return nil +} + +func _ImageAdInfo_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*ImageAdInfo) + switch tag { + case 1: // image.media_file + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(wrappers.StringValue) + err := b.DecodeMessage(msg) + m.Image = &ImageAdInfo_MediaFile{msg} + return true, err + case 2: // image.data + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(wrappers.BytesValue) + err := b.DecodeMessage(msg) + m.Image = &ImageAdInfo_Data{msg} + return true, err + default: + return false, nil + } +} + +func _ImageAdInfo_OneofSizer(msg proto.Message) (n int) { + m := msg.(*ImageAdInfo) + // image + switch x := m.Image.(type) { + case *ImageAdInfo_MediaFile: + s := proto.Size(x.MediaFile) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *ImageAdInfo_Data: + s := proto.Size(x.Data) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +func init() { + proto.RegisterType((*TextAdInfo)(nil), "google.ads.googleads.v0.common.TextAdInfo") + proto.RegisterType((*ExpandedTextAdInfo)(nil), "google.ads.googleads.v0.common.ExpandedTextAdInfo") + proto.RegisterType((*DynamicSearchAdInfo)(nil), "google.ads.googleads.v0.common.DynamicSearchAdInfo") + proto.RegisterType((*ResponsiveDisplayAdInfo)(nil), "google.ads.googleads.v0.common.ResponsiveDisplayAdInfo") + proto.RegisterType((*CallOnlyAdInfo)(nil), "google.ads.googleads.v0.common.CallOnlyAdInfo") + proto.RegisterType((*ExpandedDynamicSearchAdInfo)(nil), "google.ads.googleads.v0.common.ExpandedDynamicSearchAdInfo") + proto.RegisterType((*HotelAdInfo)(nil), "google.ads.googleads.v0.common.HotelAdInfo") + proto.RegisterType((*ShoppingSmartAdInfo)(nil), "google.ads.googleads.v0.common.ShoppingSmartAdInfo") + proto.RegisterType((*ShoppingProductAdInfo)(nil), "google.ads.googleads.v0.common.ShoppingProductAdInfo") + proto.RegisterType((*GmailAdInfo)(nil), "google.ads.googleads.v0.common.GmailAdInfo") + proto.RegisterType((*GmailTeaser)(nil), "google.ads.googleads.v0.common.GmailTeaser") + proto.RegisterType((*DisplayCallToAction)(nil), "google.ads.googleads.v0.common.DisplayCallToAction") + proto.RegisterType((*ImageAdInfo)(nil), "google.ads.googleads.v0.common.ImageAdInfo") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/common/ad_type_infos.proto", fileDescriptor_ad_type_infos_88d22de745f5a930) +} + +var fileDescriptor_ad_type_infos_88d22de745f5a930 = []byte{ + // 1392 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x58, 0x5b, 0x6f, 0x1b, 0x45, + 0x14, 0xc6, 0xb9, 0x35, 0x39, 0xbe, 0xa4, 0xdd, 0xf4, 0x62, 0x52, 0xa8, 0x8a, 0x1f, 0x50, 0x25, + 0xc4, 0x3a, 0x71, 0x2a, 0x04, 0x2a, 0x6d, 0x71, 0x9c, 0xb6, 0x89, 0xda, 0x14, 0xe3, 0x84, 0x20, + 0xa1, 0xa0, 0xd1, 0x64, 0x77, 0x6c, 0x8f, 0xba, 0x3b, 0xb3, 0xcc, 0xae, 0x73, 0x79, 0x47, 0xf0, + 0x1b, 0xca, 0x23, 0x8f, 0x88, 0x57, 0xfe, 0x02, 0x0f, 0x95, 0x78, 0xe5, 0xf7, 0xa0, 0xb9, 0xac, + 0xb3, 0xb6, 0xb1, 0x3d, 0x26, 0x4f, 0x59, 0xc7, 0xdf, 0xf7, 0xcd, 0x9c, 0x99, 0x73, 0xbe, 0x73, + 0xbc, 0x50, 0xeb, 0x70, 0xde, 0x09, 0x48, 0x15, 0xfb, 0x71, 0x55, 0x3f, 0xca, 0xa7, 0xd3, 0x8d, + 0xaa, 0xc7, 0xc3, 0x90, 0xb3, 0x2a, 0xf6, 0x51, 0x72, 0x11, 0x11, 0x44, 0x59, 0x9b, 0xc7, 0x6e, + 0x24, 0x78, 0xc2, 0x9d, 0x7b, 0x1a, 0xe8, 0x62, 0x3f, 0x76, 0xfb, 0x1c, 0xf7, 0x74, 0xc3, 0xd5, + 0x9c, 0xf5, 0xc6, 0x38, 0x4d, 0xc2, 0x7a, 0x61, 0x5c, 0xf5, 0x70, 0x10, 0x20, 0x8f, 0xb3, 0x53, + 0x22, 0x62, 0xca, 0x19, 0x12, 0x24, 0xe2, 0x22, 0xa1, 0xac, 0x83, 0xe2, 0x04, 0x27, 0x44, 0x2f, + 0xb2, 0xfe, 0x78, 0xb2, 0x88, 0x4f, 0xe3, 0x28, 0xc0, 0x17, 0x08, 0xfb, 0xa8, 0xcd, 0x45, 0x88, + 0x13, 0x14, 0x93, 0x44, 0x8a, 0x18, 0xfa, 0xa7, 0x93, 0xe9, 0x21, 0x0d, 0x89, 0x0a, 0xcc, 0xc0, + 0x4d, 0x48, 0x55, 0xf5, 0xe9, 0xa4, 0xd7, 0xae, 0x9e, 0x09, 0x1c, 0x45, 0x44, 0x98, 0x90, 0x2b, + 0xef, 0x72, 0x00, 0x87, 0xe4, 0x3c, 0xa9, 0xfb, 0x7b, 0xac, 0xcd, 0x9d, 0xcf, 0x61, 0xb9, 0x4b, + 0xb0, 0x1f, 0x50, 0x46, 0xca, 0xb9, 0xfb, 0xb9, 0x07, 0xf9, 0xda, 0x07, 0xe6, 0x24, 0xdc, 0x54, + 0xc1, 0x3d, 0x48, 0x04, 0x65, 0x9d, 0x23, 0x1c, 0xf4, 0x48, 0xab, 0x8f, 0x76, 0xbe, 0x82, 0x82, + 0x4f, 0x62, 0x4f, 0xd0, 0x28, 0xa1, 0x9c, 0x6d, 0x96, 0xe7, 0x2c, 0xd8, 0x03, 0x8c, 0x21, 0x85, + 0x5a, 0x79, 0x7e, 0x46, 0x85, 0x5a, 0xe5, 0xef, 0x79, 0x70, 0x9e, 0x9d, 0x47, 0x98, 0xf9, 0xc4, + 0xcf, 0x04, 0xd5, 0x80, 0x52, 0xba, 0x4d, 0x14, 0x61, 0x91, 0x6c, 0x5a, 0x85, 0x56, 0x4c, 0x39, + 0x4d, 0x49, 0x19, 0x11, 0xa9, 0x59, 0x45, 0x38, 0x20, 0x52, 0x1b, 0x11, 0xd9, 0x2a, 0x2f, 0xcd, + 0x2a, 0xb2, 0xe5, 0x3c, 0x81, 0x7c, 0x26, 0x6a, 0xab, 0x63, 0xca, 0x12, 0x46, 0xce, 0xf9, 0xda, + 0xac, 0xe7, 0xec, 0xd4, 0x60, 0x31, 0xc2, 0x49, 0x77, 0xb3, 0xbc, 0x60, 0x41, 0xd5, 0xd0, 0x94, + 0x53, 0x2b, 0x2f, 0xda, 0x72, 0x6a, 0x95, 0xb7, 0x39, 0x58, 0xdb, 0xb9, 0x60, 0x38, 0xa4, 0xde, + 0x01, 0xc1, 0xc2, 0xeb, 0x9a, 0x0b, 0x1d, 0xce, 0xb5, 0xdc, 0x95, 0x73, 0x6d, 0x6e, 0xe6, 0x5c, + 0xfb, 0x67, 0x19, 0xee, 0xb4, 0x48, 0x1c, 0x71, 0x16, 0xd3, 0x53, 0xb2, 0xa3, 0xab, 0xf6, 0x32, + 0xe1, 0xe2, 0x2e, 0x17, 0x09, 0x9a, 0xa9, 0x96, 0x8a, 0x8a, 0xb3, 0x9b, 0x16, 0x54, 0x1d, 0x8a, + 0x01, 0x67, 0x9d, 0x4b, 0x0d, 0xab, 0x3d, 0x4a, 0x4a, 0x5f, 0xe2, 0xaa, 0x99, 0x52, 0x87, 0xe2, + 0x49, 0x2f, 0xa6, 0x8c, 0xc4, 0x31, 0x62, 0x38, 0x24, 0x56, 0xf7, 0x5d, 0x48, 0x29, 0xaf, 0x71, + 0x48, 0x9c, 0x57, 0x70, 0x13, 0x07, 0x01, 0x3f, 0x43, 0xed, 0x80, 0x9c, 0xd3, 0x93, 0x80, 0x20, + 0x8f, 0x07, 0x5c, 0x98, 0x2c, 0x58, 0x1f, 0x51, 0xda, 0xe6, 0x3c, 0xd0, 0x3a, 0x8e, 0xe2, 0x3d, + 0x37, 0xb4, 0x86, 0x64, 0x39, 0x4f, 0xa1, 0x80, 0x3d, 0x8f, 0xb0, 0xc4, 0xa8, 0xd8, 0x54, 0x4f, + 0x5e, 0x33, 0xb4, 0xc0, 0x23, 0x80, 0x10, 0x53, 0x66, 0xe8, 0x36, 0x99, 0xbf, 0x22, 0xf1, 0x9a, + 0xfc, 0x12, 0xd6, 0x94, 0xc5, 0x27, 0x1c, 0x61, 0x4f, 0x1e, 0x10, 0x4a, 0xc8, 0x79, 0x52, 0x5e, + 0xb6, 0x50, 0xb9, 0x2e, 0x89, 0x87, 0xbc, 0xae, 0x68, 0xd2, 0x9a, 0xe4, 0x4e, 0x02, 0xde, 0xe1, + 0x88, 0x86, 0xb8, 0x43, 0xca, 0x2b, 0x36, 0x3b, 0x91, 0xf8, 0x3d, 0x09, 0x77, 0x76, 0xe1, 0x46, + 0xfc, 0x63, 0x0f, 0x0b, 0x82, 0x32, 0x1a, 0x60, 0xa1, 0xb1, 0xaa, 0x69, 0xaf, 0xfa, 0x4a, 0xcf, + 0x60, 0x35, 0xc4, 0xe2, 0x0d, 0x51, 0x6d, 0x4a, 0xeb, 0xe4, 0x2d, 0x74, 0x4a, 0x7d, 0x92, 0x96, + 0x69, 0xc1, 0x6d, 0xb3, 0xa1, 0x61, 0xb5, 0x82, 0x85, 0xda, 0x4d, 0xcd, 0xdd, 0x1f, 0xd4, 0x3c, + 0x83, 0xd2, 0x60, 0x07, 0x2c, 0x17, 0xef, 0xe7, 0x1e, 0x94, 0x6a, 0x4d, 0x77, 0x5c, 0x9b, 0x56, + 0x2d, 0xd0, 0xed, 0xd7, 0xe2, 0x73, 0xc5, 0x3e, 0xd0, 0xe4, 0x67, 0xac, 0x17, 0x8e, 0xf9, 0xaa, + 0x55, 0x6c, 0x67, 0x3f, 0xca, 0x2c, 0x8b, 0x04, 0xf5, 0x08, 0x8a, 0x04, 0x69, 0xd3, 0xf3, 0x72, + 0xc9, 0x26, 0xcb, 0x14, 0xa3, 0xa9, 0x08, 0xf2, 0x6e, 0x23, 0xc1, 0x43, 0xae, 0xf3, 0x63, 0xd5, + 0xe6, 0x6e, 0x15, 0x5e, 0x26, 0x46, 0xe5, 0xcf, 0x25, 0x28, 0x35, 0x70, 0x10, 0x7c, 0xcd, 0x82, + 0xd4, 0x4f, 0x9e, 0x42, 0xc1, 0xe3, 0x3d, 0x96, 0x88, 0x0b, 0xe4, 0x71, 0xdf, 0xce, 0x4d, 0xf2, + 0x86, 0xd1, 0xe0, 0x3e, 0x51, 0x11, 0x75, 0x39, 0x23, 0x88, 0xf5, 0xc2, 0x13, 0x22, 0xac, 0xac, + 0x24, 0xaf, 0x18, 0xaf, 0x15, 0x61, 0xd4, 0x09, 0xe6, 0x67, 0x76, 0x82, 0x61, 0xd3, 0x5e, 0xb8, + 0xb2, 0x69, 0x2f, 0xce, 0xdc, 0xb8, 0x1e, 0x43, 0x41, 0x57, 0xb0, 0xc0, 0xde, 0x1b, 0xe2, 0x1b, + 0xff, 0x98, 0xe4, 0x42, 0x79, 0x55, 0xb8, 0x1a, 0xee, 0xb4, 0xe0, 0x8e, 0x4f, 0x63, 0xac, 0x5c, + 0x6c, 0x70, 0xd6, 0x33, 0x56, 0x32, 0x49, 0xe9, 0x96, 0xa1, 0xca, 0xbb, 0x6d, 0xf4, 0x89, 0x0e, + 0x82, 0x0f, 0xb3, 0x57, 0x83, 0x4e, 0x89, 0xa0, 0x6d, 0xea, 0x61, 0xe5, 0x2f, 0x3d, 0x11, 0x58, + 0xd9, 0xcb, 0x7a, 0xe6, 0xae, 0x8e, 0x32, 0x02, 0xdf, 0x8a, 0xc0, 0xd9, 0x83, 0x1b, 0x99, 0x99, + 0x54, 0x1b, 0x97, 0x95, 0xdf, 0x5c, 0xbf, 0xa4, 0x69, 0xdf, 0x72, 0x7e, 0xcd, 0xc1, 0xfa, 0xf8, + 0xf9, 0x56, 0x19, 0x50, 0xa9, 0x76, 0x3c, 0xa5, 0x3c, 0x07, 0xe3, 0x6f, 0xa5, 0x1a, 0x07, 0x52, + 0x42, 0x15, 0xe9, 0x24, 0x40, 0xab, 0xec, 0x8d, 0xf9, 0xa6, 0xf2, 0x03, 0xdc, 0x4d, 0x67, 0xbf, + 0xff, 0x9a, 0x19, 0x86, 0x7a, 0x61, 0x6e, 0xc6, 0x5e, 0x58, 0x29, 0x42, 0x7e, 0x97, 0x27, 0x24, + 0xd0, 0x72, 0x95, 0x5b, 0xb0, 0x76, 0xd0, 0xe5, 0x51, 0x24, 0x97, 0x0f, 0xb1, 0x30, 0xa3, 0x66, + 0xe5, 0x0e, 0xdc, 0x4a, 0xff, 0xdd, 0x14, 0xdc, 0xef, 0x79, 0xe9, 0x17, 0x6f, 0x17, 0x20, 0xff, + 0x22, 0xc4, 0x34, 0xe8, 0x8f, 0x08, 0x4b, 0x09, 0xc1, 0x31, 0x11, 0x66, 0x27, 0x9f, 0xb8, 0x93, + 0x7f, 0x7b, 0xb8, 0x8a, 0x7c, 0xa8, 0x28, 0x2d, 0x43, 0x95, 0x65, 0x2d, 0xa7, 0x03, 0x22, 0x8c, + 0xd7, 0x5a, 0x95, 0xb5, 0x66, 0x8c, 0x75, 0xff, 0xf9, 0xff, 0xe1, 0xfe, 0x47, 0x50, 0x1e, 0x92, + 0xb9, 0x9c, 0x5a, 0x6c, 0xca, 0xfc, 0xf6, 0xa0, 0x5e, 0x7f, 0x7e, 0x39, 0x86, 0xbb, 0xc3, 0xba, + 0xd9, 0x3b, 0xb4, 0xa9, 0xff, 0xf7, 0x07, 0xa5, 0x77, 0x32, 0xd3, 0xcd, 0xcf, 0x39, 0xf8, 0x78, + 0x44, 0xde, 0xfc, 0xfa, 0x1a, 0xec, 0xf3, 0xc6, 0x27, 0xb6, 0xa6, 0xdd, 0x91, 0x69, 0x2f, 0x8d, + 0x4c, 0xaf, 0x6f, 0x7d, 0x34, 0xb4, 0x81, 0x51, 0x48, 0xe5, 0x97, 0x39, 0x93, 0x1b, 0xfa, 0x7a, + 0xaf, 0xf0, 0x23, 0x6c, 0x28, 0xc9, 0xe7, 0xae, 0x3c, 0xf0, 0xcd, 0x6e, 0xf3, 0x83, 0x73, 0xcd, + 0xc2, 0x4c, 0x73, 0x4d, 0xe5, 0x27, 0x39, 0xf0, 0x8f, 0x9e, 0x90, 0xb3, 0x01, 0x0b, 0xaa, 0x95, + 0xda, 0x9c, 0x86, 0x42, 0xca, 0x6d, 0xc8, 0xbf, 0x66, 0xd0, 0xb3, 0x39, 0x88, 0x15, 0x89, 0x57, + 0x83, 0x5e, 0xe5, 0x8f, 0x45, 0xc8, 0xab, 0x0d, 0x99, 0x62, 0xfd, 0x12, 0xf2, 0x11, 0x3d, 0x27, + 0x01, 0x3a, 0xa3, 0x7e, 0xd2, 0x35, 0x41, 0xdd, 0x1d, 0x51, 0xdb, 0x63, 0xc9, 0x67, 0x0f, 0xb5, + 0x18, 0x28, 0xfc, 0x77, 0x12, 0xee, 0x3c, 0x81, 0x82, 0x66, 0x77, 0x09, 0xed, 0x74, 0x13, 0x93, + 0xb6, 0x13, 0xe9, 0x7a, 0xb9, 0x5d, 0x85, 0x77, 0xbe, 0x80, 0x15, 0x9d, 0x9c, 0xb2, 0x1b, 0xd8, + 0x4c, 0xbc, 0xcb, 0x0a, 0x2e, 0xbd, 0xff, 0x25, 0xac, 0x45, 0x82, 0x9c, 0x52, 0x72, 0x86, 0xb2, + 0x01, 0x5c, 0x9b, 0xbe, 0x83, 0x1b, 0x86, 0xd7, 0xbc, 0x8c, 0x63, 0x1f, 0x6e, 0x0e, 0x8a, 0x99, + 0x78, 0x96, 0xa7, 0xab, 0x39, 0x59, 0x35, 0x13, 0xd6, 0x2e, 0xa4, 0x6b, 0xa0, 0xcb, 0xf0, 0x6c, + 0xfa, 0xd2, 0xaa, 0xa1, 0xed, 0xa5, 0x51, 0x7e, 0x03, 0x2b, 0xfd, 0xd7, 0x1e, 0xa6, 0x09, 0x3d, + 0x9c, 0xd2, 0x84, 0xf6, 0x69, 0x48, 0x0e, 0x2f, 0x22, 0xdd, 0x70, 0xd2, 0x0f, 0xad, 0xe5, 0xd0, + 0x3c, 0xc9, 0x84, 0x53, 0xf9, 0x6f, 0x33, 0x0b, 0x2b, 0xa4, 0xf3, 0x18, 0x20, 0x24, 0x3e, 0xc5, + 0xa8, 0x4d, 0x03, 0xab, 0xb2, 0xdd, 0x7d, 0xaf, 0xb5, 0xa2, 0x18, 0xcf, 0x69, 0x40, 0x9c, 0x4d, + 0x58, 0xf0, 0x71, 0x82, 0x4d, 0xa6, 0x8e, 0x1e, 0xe6, 0xf6, 0x45, 0x42, 0xe2, 0x94, 0xa7, 0xa0, + 0xdb, 0xd7, 0x60, 0x51, 0x1d, 0xdc, 0xf6, 0x5f, 0x39, 0xa8, 0x78, 0x3c, 0x9c, 0xe2, 0x4e, 0xdb, + 0xd7, 0xeb, 0xbe, 0x8c, 0x4d, 0x66, 0x74, 0xdc, 0x94, 0xba, 0xcd, 0xdc, 0xf7, 0x3b, 0x86, 0xd3, + 0xe1, 0x01, 0x66, 0x1d, 0x97, 0x8b, 0x4e, 0xb5, 0x43, 0x98, 0x5a, 0x35, 0x7d, 0xbb, 0x14, 0xd1, + 0x78, 0xdc, 0x4b, 0xb4, 0x47, 0xfa, 0xcf, 0x6f, 0x73, 0xf3, 0x2f, 0xea, 0xf5, 0xdf, 0xe7, 0xee, + 0xbd, 0xd0, 0x62, 0x75, 0x3f, 0x76, 0xf5, 0xa3, 0x7c, 0x3a, 0xda, 0x70, 0x1b, 0x0a, 0xf6, 0x2e, + 0x05, 0x1c, 0xd7, 0xfd, 0xf8, 0xb8, 0x0f, 0x38, 0x3e, 0xda, 0x38, 0xd6, 0x80, 0x93, 0x25, 0xb5, + 0xf0, 0xd6, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x8a, 0xfe, 0x1c, 0xea, 0xbc, 0x13, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/bidding.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/bidding.pb.go new file mode 100644 index 000000000..68331d714 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/bidding.pb.go @@ -0,0 +1,725 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/common/bidding.proto + +package common // import "google.golang.org/genproto/googleapis/ads/googleads/v0/common" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// An automated bidding strategy that raises bids for clicks +// that seem more likely to lead to a conversion and lowers +// them for clicks where they seem less likely. +type EnhancedCpc struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *EnhancedCpc) Reset() { *m = EnhancedCpc{} } +func (m *EnhancedCpc) String() string { return proto.CompactTextString(m) } +func (*EnhancedCpc) ProtoMessage() {} +func (*EnhancedCpc) Descriptor() ([]byte, []int) { + return fileDescriptor_bidding_3ebd125ac4f88b12, []int{0} +} +func (m *EnhancedCpc) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_EnhancedCpc.Unmarshal(m, b) +} +func (m *EnhancedCpc) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_EnhancedCpc.Marshal(b, m, deterministic) +} +func (dst *EnhancedCpc) XXX_Merge(src proto.Message) { + xxx_messageInfo_EnhancedCpc.Merge(dst, src) +} +func (m *EnhancedCpc) XXX_Size() int { + return xxx_messageInfo_EnhancedCpc.Size(m) +} +func (m *EnhancedCpc) XXX_DiscardUnknown() { + xxx_messageInfo_EnhancedCpc.DiscardUnknown(m) +} + +var xxx_messageInfo_EnhancedCpc proto.InternalMessageInfo + +// Manual click-based bidding where user pays per click. +type ManualCpc struct { + // Whether bids are to be enhanced based on conversion optimizer data. + EnhancedCpcEnabled *wrappers.BoolValue `protobuf:"bytes,1,opt,name=enhanced_cpc_enabled,json=enhancedCpcEnabled,proto3" json:"enhanced_cpc_enabled,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ManualCpc) Reset() { *m = ManualCpc{} } +func (m *ManualCpc) String() string { return proto.CompactTextString(m) } +func (*ManualCpc) ProtoMessage() {} +func (*ManualCpc) Descriptor() ([]byte, []int) { + return fileDescriptor_bidding_3ebd125ac4f88b12, []int{1} +} +func (m *ManualCpc) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ManualCpc.Unmarshal(m, b) +} +func (m *ManualCpc) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ManualCpc.Marshal(b, m, deterministic) +} +func (dst *ManualCpc) XXX_Merge(src proto.Message) { + xxx_messageInfo_ManualCpc.Merge(dst, src) +} +func (m *ManualCpc) XXX_Size() int { + return xxx_messageInfo_ManualCpc.Size(m) +} +func (m *ManualCpc) XXX_DiscardUnknown() { + xxx_messageInfo_ManualCpc.DiscardUnknown(m) +} + +var xxx_messageInfo_ManualCpc proto.InternalMessageInfo + +func (m *ManualCpc) GetEnhancedCpcEnabled() *wrappers.BoolValue { + if m != nil { + return m.EnhancedCpcEnabled + } + return nil +} + +// Manual impression-based bidding where user pays per thousand impressions. +type ManualCpm struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ManualCpm) Reset() { *m = ManualCpm{} } +func (m *ManualCpm) String() string { return proto.CompactTextString(m) } +func (*ManualCpm) ProtoMessage() {} +func (*ManualCpm) Descriptor() ([]byte, []int) { + return fileDescriptor_bidding_3ebd125ac4f88b12, []int{2} +} +func (m *ManualCpm) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ManualCpm.Unmarshal(m, b) +} +func (m *ManualCpm) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ManualCpm.Marshal(b, m, deterministic) +} +func (dst *ManualCpm) XXX_Merge(src proto.Message) { + xxx_messageInfo_ManualCpm.Merge(dst, src) +} +func (m *ManualCpm) XXX_Size() int { + return xxx_messageInfo_ManualCpm.Size(m) +} +func (m *ManualCpm) XXX_DiscardUnknown() { + xxx_messageInfo_ManualCpm.DiscardUnknown(m) +} + +var xxx_messageInfo_ManualCpm proto.InternalMessageInfo + +// View based bidding where user pays per video view. +type ManualCpv struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ManualCpv) Reset() { *m = ManualCpv{} } +func (m *ManualCpv) String() string { return proto.CompactTextString(m) } +func (*ManualCpv) ProtoMessage() {} +func (*ManualCpv) Descriptor() ([]byte, []int) { + return fileDescriptor_bidding_3ebd125ac4f88b12, []int{3} +} +func (m *ManualCpv) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ManualCpv.Unmarshal(m, b) +} +func (m *ManualCpv) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ManualCpv.Marshal(b, m, deterministic) +} +func (dst *ManualCpv) XXX_Merge(src proto.Message) { + xxx_messageInfo_ManualCpv.Merge(dst, src) +} +func (m *ManualCpv) XXX_Size() int { + return xxx_messageInfo_ManualCpv.Size(m) +} +func (m *ManualCpv) XXX_DiscardUnknown() { + xxx_messageInfo_ManualCpv.DiscardUnknown(m) +} + +var xxx_messageInfo_ManualCpv proto.InternalMessageInfo + +// An automated bidding strategy that sets bids to help get the most conversions +// for your campaign while spending your budget. +type MaximizeConversions struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MaximizeConversions) Reset() { *m = MaximizeConversions{} } +func (m *MaximizeConversions) String() string { return proto.CompactTextString(m) } +func (*MaximizeConversions) ProtoMessage() {} +func (*MaximizeConversions) Descriptor() ([]byte, []int) { + return fileDescriptor_bidding_3ebd125ac4f88b12, []int{4} +} +func (m *MaximizeConversions) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MaximizeConversions.Unmarshal(m, b) +} +func (m *MaximizeConversions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MaximizeConversions.Marshal(b, m, deterministic) +} +func (dst *MaximizeConversions) XXX_Merge(src proto.Message) { + xxx_messageInfo_MaximizeConversions.Merge(dst, src) +} +func (m *MaximizeConversions) XXX_Size() int { + return xxx_messageInfo_MaximizeConversions.Size(m) +} +func (m *MaximizeConversions) XXX_DiscardUnknown() { + xxx_messageInfo_MaximizeConversions.DiscardUnknown(m) +} + +var xxx_messageInfo_MaximizeConversions proto.InternalMessageInfo + +// An automated bidding strategy which tries to maximize conversion value +// given a daily budget. +type MaximizeConversionValue struct { + // The target return on ad spend (ROAS) option. If set, the bid strategy will + // maximize revenue while averaging the target return on ad spend. If the + // target ROAS is high, the bid strategy may not be able to spend the full + // budget. If the target ROAS is not set, the bid strategy will aim to + // achieve the highest possible ROAS for the budget. + TargetRoas *wrappers.DoubleValue `protobuf:"bytes,1,opt,name=target_roas,json=targetRoas,proto3" json:"target_roas,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MaximizeConversionValue) Reset() { *m = MaximizeConversionValue{} } +func (m *MaximizeConversionValue) String() string { return proto.CompactTextString(m) } +func (*MaximizeConversionValue) ProtoMessage() {} +func (*MaximizeConversionValue) Descriptor() ([]byte, []int) { + return fileDescriptor_bidding_3ebd125ac4f88b12, []int{5} +} +func (m *MaximizeConversionValue) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MaximizeConversionValue.Unmarshal(m, b) +} +func (m *MaximizeConversionValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MaximizeConversionValue.Marshal(b, m, deterministic) +} +func (dst *MaximizeConversionValue) XXX_Merge(src proto.Message) { + xxx_messageInfo_MaximizeConversionValue.Merge(dst, src) +} +func (m *MaximizeConversionValue) XXX_Size() int { + return xxx_messageInfo_MaximizeConversionValue.Size(m) +} +func (m *MaximizeConversionValue) XXX_DiscardUnknown() { + xxx_messageInfo_MaximizeConversionValue.DiscardUnknown(m) +} + +var xxx_messageInfo_MaximizeConversionValue proto.InternalMessageInfo + +func (m *MaximizeConversionValue) GetTargetRoas() *wrappers.DoubleValue { + if m != nil { + return m.TargetRoas + } + return nil +} + +// An automated bidding strategy which sets CPC bids to target impressions on +// page one, or page one promoted slots on google.com. +type PageOnePromoted struct { + // The strategy goal of where impressions are desired to be shown on + // search result pages. + StrategyGoal enums.PageOnePromotedStrategyGoalEnum_PageOnePromotedStrategyGoal `protobuf:"varint,1,opt,name=strategy_goal,json=strategyGoal,proto3,enum=google.ads.googleads.v0.enums.PageOnePromotedStrategyGoalEnum_PageOnePromotedStrategyGoal" json:"strategy_goal,omitempty"` + // Maximum bid limit that can be set by the bid strategy. + // The limit applies to all keywords managed by the strategy. + CpcBidCeilingMicros *wrappers.Int64Value `protobuf:"bytes,2,opt,name=cpc_bid_ceiling_micros,json=cpcBidCeilingMicros,proto3" json:"cpc_bid_ceiling_micros,omitempty"` + // Bid multiplier to be applied to the relevant bid estimate (depending on + // the `strategy_goal`) in determining a keyword's new CPC bid. + BidModifier *wrappers.DoubleValue `protobuf:"bytes,3,opt,name=bid_modifier,json=bidModifier,proto3" json:"bid_modifier,omitempty"` + // Whether the strategy should always follow bid estimate changes, or only + // increase. + // If false, always sets a keyword's new bid to the current bid estimate. + // If true, only updates a keyword's bid if the current bid estimate is + // greater than the current bid. + OnlyRaiseCpcBids *wrappers.BoolValue `protobuf:"bytes,4,opt,name=only_raise_cpc_bids,json=onlyRaiseCpcBids,proto3" json:"only_raise_cpc_bids,omitempty"` + // Whether the strategy is allowed to raise bids when the throttling + // rate of the budget it is serving out of rises above a threshold. + RaiseCpcBidWhenBudgetConstrained *wrappers.BoolValue `protobuf:"bytes,5,opt,name=raise_cpc_bid_when_budget_constrained,json=raiseCpcBidWhenBudgetConstrained,proto3" json:"raise_cpc_bid_when_budget_constrained,omitempty"` + // Whether the strategy is allowed to raise bids on keywords with + // lower-range quality scores. + RaiseCpcBidWhenQualityScoreIsLow *wrappers.BoolValue `protobuf:"bytes,6,opt,name=raise_cpc_bid_when_quality_score_is_low,json=raiseCpcBidWhenQualityScoreIsLow,proto3" json:"raise_cpc_bid_when_quality_score_is_low,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PageOnePromoted) Reset() { *m = PageOnePromoted{} } +func (m *PageOnePromoted) String() string { return proto.CompactTextString(m) } +func (*PageOnePromoted) ProtoMessage() {} +func (*PageOnePromoted) Descriptor() ([]byte, []int) { + return fileDescriptor_bidding_3ebd125ac4f88b12, []int{6} +} +func (m *PageOnePromoted) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PageOnePromoted.Unmarshal(m, b) +} +func (m *PageOnePromoted) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PageOnePromoted.Marshal(b, m, deterministic) +} +func (dst *PageOnePromoted) XXX_Merge(src proto.Message) { + xxx_messageInfo_PageOnePromoted.Merge(dst, src) +} +func (m *PageOnePromoted) XXX_Size() int { + return xxx_messageInfo_PageOnePromoted.Size(m) +} +func (m *PageOnePromoted) XXX_DiscardUnknown() { + xxx_messageInfo_PageOnePromoted.DiscardUnknown(m) +} + +var xxx_messageInfo_PageOnePromoted proto.InternalMessageInfo + +func (m *PageOnePromoted) GetStrategyGoal() enums.PageOnePromotedStrategyGoalEnum_PageOnePromotedStrategyGoal { + if m != nil { + return m.StrategyGoal + } + return enums.PageOnePromotedStrategyGoalEnum_UNSPECIFIED +} + +func (m *PageOnePromoted) GetCpcBidCeilingMicros() *wrappers.Int64Value { + if m != nil { + return m.CpcBidCeilingMicros + } + return nil +} + +func (m *PageOnePromoted) GetBidModifier() *wrappers.DoubleValue { + if m != nil { + return m.BidModifier + } + return nil +} + +func (m *PageOnePromoted) GetOnlyRaiseCpcBids() *wrappers.BoolValue { + if m != nil { + return m.OnlyRaiseCpcBids + } + return nil +} + +func (m *PageOnePromoted) GetRaiseCpcBidWhenBudgetConstrained() *wrappers.BoolValue { + if m != nil { + return m.RaiseCpcBidWhenBudgetConstrained + } + return nil +} + +func (m *PageOnePromoted) GetRaiseCpcBidWhenQualityScoreIsLow() *wrappers.BoolValue { + if m != nil { + return m.RaiseCpcBidWhenQualityScoreIsLow + } + return nil +} + +// An automated bid strategy that sets bids to help get as many conversions as +// possible at the target cost-per-acquisition (CPA) you set. +type TargetCpa struct { + // Average CPA target. + // This target should be greater than or equal to minimum billable unit based + // on the currency for the account. + TargetCpaMicros *wrappers.Int64Value `protobuf:"bytes,1,opt,name=target_cpa_micros,json=targetCpaMicros,proto3" json:"target_cpa_micros,omitempty"` + // Maximum bid limit that can be set by the bid strategy. + // The limit applies to all keywords managed by the strategy. + CpcBidCeilingMicros *wrappers.Int64Value `protobuf:"bytes,2,opt,name=cpc_bid_ceiling_micros,json=cpcBidCeilingMicros,proto3" json:"cpc_bid_ceiling_micros,omitempty"` + // Minimum bid limit that can be set by the bid strategy. + // The limit applies to all keywords managed by the strategy. + CpcBidFloorMicros *wrappers.Int64Value `protobuf:"bytes,3,opt,name=cpc_bid_floor_micros,json=cpcBidFloorMicros,proto3" json:"cpc_bid_floor_micros,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TargetCpa) Reset() { *m = TargetCpa{} } +func (m *TargetCpa) String() string { return proto.CompactTextString(m) } +func (*TargetCpa) ProtoMessage() {} +func (*TargetCpa) Descriptor() ([]byte, []int) { + return fileDescriptor_bidding_3ebd125ac4f88b12, []int{7} +} +func (m *TargetCpa) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TargetCpa.Unmarshal(m, b) +} +func (m *TargetCpa) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TargetCpa.Marshal(b, m, deterministic) +} +func (dst *TargetCpa) XXX_Merge(src proto.Message) { + xxx_messageInfo_TargetCpa.Merge(dst, src) +} +func (m *TargetCpa) XXX_Size() int { + return xxx_messageInfo_TargetCpa.Size(m) +} +func (m *TargetCpa) XXX_DiscardUnknown() { + xxx_messageInfo_TargetCpa.DiscardUnknown(m) +} + +var xxx_messageInfo_TargetCpa proto.InternalMessageInfo + +func (m *TargetCpa) GetTargetCpaMicros() *wrappers.Int64Value { + if m != nil { + return m.TargetCpaMicros + } + return nil +} + +func (m *TargetCpa) GetCpcBidCeilingMicros() *wrappers.Int64Value { + if m != nil { + return m.CpcBidCeilingMicros + } + return nil +} + +func (m *TargetCpa) GetCpcBidFloorMicros() *wrappers.Int64Value { + if m != nil { + return m.CpcBidFloorMicros + } + return nil +} + +// An automated bidding strategy that sets bids based on the target fraction of +// auctions where the advertiser should outrank a specific competitor. +type TargetOutrankShare struct { + // The target fraction of auctions where the advertiser should outrank the + // competitor. + // The advertiser outranks the competitor in an auction if either the + // advertiser appears above the competitor in the search results, or appears + // in the search results when the competitor does not. + // Value must be between 1 and 1000000, inclusive. + TargetOutrankShareMicros *wrappers.Int32Value `protobuf:"bytes,1,opt,name=target_outrank_share_micros,json=targetOutrankShareMicros,proto3" json:"target_outrank_share_micros,omitempty"` + // Competitor's visible domain URL. + CompetitorDomain *wrappers.StringValue `protobuf:"bytes,2,opt,name=competitor_domain,json=competitorDomain,proto3" json:"competitor_domain,omitempty"` + // Maximum bid limit that can be set by the bid strategy. + // The limit applies to all keywords managed by the strategy. + CpcBidCeilingMicros *wrappers.Int64Value `protobuf:"bytes,3,opt,name=cpc_bid_ceiling_micros,json=cpcBidCeilingMicros,proto3" json:"cpc_bid_ceiling_micros,omitempty"` + // Whether the strategy should always follow bid estimate changes, + // or only increase. + // If false, always set a keyword's new bid to the current bid estimate. + // If true, only updates a keyword's bid if the current bid estimate is + // greater than the current bid. + OnlyRaiseCpcBids *wrappers.BoolValue `protobuf:"bytes,4,opt,name=only_raise_cpc_bids,json=onlyRaiseCpcBids,proto3" json:"only_raise_cpc_bids,omitempty"` + // Whether the strategy is allowed to raise bids on keywords with + // lower-range quality scores. + RaiseCpcBidWhenQualityScoreIsLow *wrappers.BoolValue `protobuf:"bytes,5,opt,name=raise_cpc_bid_when_quality_score_is_low,json=raiseCpcBidWhenQualityScoreIsLow,proto3" json:"raise_cpc_bid_when_quality_score_is_low,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TargetOutrankShare) Reset() { *m = TargetOutrankShare{} } +func (m *TargetOutrankShare) String() string { return proto.CompactTextString(m) } +func (*TargetOutrankShare) ProtoMessage() {} +func (*TargetOutrankShare) Descriptor() ([]byte, []int) { + return fileDescriptor_bidding_3ebd125ac4f88b12, []int{8} +} +func (m *TargetOutrankShare) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TargetOutrankShare.Unmarshal(m, b) +} +func (m *TargetOutrankShare) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TargetOutrankShare.Marshal(b, m, deterministic) +} +func (dst *TargetOutrankShare) XXX_Merge(src proto.Message) { + xxx_messageInfo_TargetOutrankShare.Merge(dst, src) +} +func (m *TargetOutrankShare) XXX_Size() int { + return xxx_messageInfo_TargetOutrankShare.Size(m) +} +func (m *TargetOutrankShare) XXX_DiscardUnknown() { + xxx_messageInfo_TargetOutrankShare.DiscardUnknown(m) +} + +var xxx_messageInfo_TargetOutrankShare proto.InternalMessageInfo + +func (m *TargetOutrankShare) GetTargetOutrankShareMicros() *wrappers.Int32Value { + if m != nil { + return m.TargetOutrankShareMicros + } + return nil +} + +func (m *TargetOutrankShare) GetCompetitorDomain() *wrappers.StringValue { + if m != nil { + return m.CompetitorDomain + } + return nil +} + +func (m *TargetOutrankShare) GetCpcBidCeilingMicros() *wrappers.Int64Value { + if m != nil { + return m.CpcBidCeilingMicros + } + return nil +} + +func (m *TargetOutrankShare) GetOnlyRaiseCpcBids() *wrappers.BoolValue { + if m != nil { + return m.OnlyRaiseCpcBids + } + return nil +} + +func (m *TargetOutrankShare) GetRaiseCpcBidWhenQualityScoreIsLow() *wrappers.BoolValue { + if m != nil { + return m.RaiseCpcBidWhenQualityScoreIsLow + } + return nil +} + +// An automated bidding strategy that helps you maximize revenue while +// averaging a specific target return on ad spend (ROAS). +type TargetRoas struct { + // Required. The desired revenue (based on conversion data) per unit of spend. + // Value must be between 0.01 and 1000.0, inclusive. + TargetRoas *wrappers.DoubleValue `protobuf:"bytes,1,opt,name=target_roas,json=targetRoas,proto3" json:"target_roas,omitempty"` + // Maximum bid limit that can be set by the bid strategy. + // The limit applies to all keywords managed by the strategy. + CpcBidCeilingMicros *wrappers.Int64Value `protobuf:"bytes,2,opt,name=cpc_bid_ceiling_micros,json=cpcBidCeilingMicros,proto3" json:"cpc_bid_ceiling_micros,omitempty"` + // Minimum bid limit that can be set by the bid strategy. + // The limit applies to all keywords managed by the strategy. + CpcBidFloorMicros *wrappers.Int64Value `protobuf:"bytes,3,opt,name=cpc_bid_floor_micros,json=cpcBidFloorMicros,proto3" json:"cpc_bid_floor_micros,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TargetRoas) Reset() { *m = TargetRoas{} } +func (m *TargetRoas) String() string { return proto.CompactTextString(m) } +func (*TargetRoas) ProtoMessage() {} +func (*TargetRoas) Descriptor() ([]byte, []int) { + return fileDescriptor_bidding_3ebd125ac4f88b12, []int{9} +} +func (m *TargetRoas) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TargetRoas.Unmarshal(m, b) +} +func (m *TargetRoas) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TargetRoas.Marshal(b, m, deterministic) +} +func (dst *TargetRoas) XXX_Merge(src proto.Message) { + xxx_messageInfo_TargetRoas.Merge(dst, src) +} +func (m *TargetRoas) XXX_Size() int { + return xxx_messageInfo_TargetRoas.Size(m) +} +func (m *TargetRoas) XXX_DiscardUnknown() { + xxx_messageInfo_TargetRoas.DiscardUnknown(m) +} + +var xxx_messageInfo_TargetRoas proto.InternalMessageInfo + +func (m *TargetRoas) GetTargetRoas() *wrappers.DoubleValue { + if m != nil { + return m.TargetRoas + } + return nil +} + +func (m *TargetRoas) GetCpcBidCeilingMicros() *wrappers.Int64Value { + if m != nil { + return m.CpcBidCeilingMicros + } + return nil +} + +func (m *TargetRoas) GetCpcBidFloorMicros() *wrappers.Int64Value { + if m != nil { + return m.CpcBidFloorMicros + } + return nil +} + +// An automated bid strategy that sets your bids to help get as many clicks +// as possible within your budget. +type TargetSpend struct { + // The spend target under which to maximize clicks. + // A TargetSpend bidder will attempt to spend the smaller of this value + // or the natural throttling spend amount. + // If not specified, the budget is used as the spend target. + TargetSpendMicros *wrappers.Int64Value `protobuf:"bytes,1,opt,name=target_spend_micros,json=targetSpendMicros,proto3" json:"target_spend_micros,omitempty"` + // Maximum bid limit that can be set by the bid strategy. + // The limit applies to all keywords managed by the strategy. + CpcBidCeilingMicros *wrappers.Int64Value `protobuf:"bytes,2,opt,name=cpc_bid_ceiling_micros,json=cpcBidCeilingMicros,proto3" json:"cpc_bid_ceiling_micros,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TargetSpend) Reset() { *m = TargetSpend{} } +func (m *TargetSpend) String() string { return proto.CompactTextString(m) } +func (*TargetSpend) ProtoMessage() {} +func (*TargetSpend) Descriptor() ([]byte, []int) { + return fileDescriptor_bidding_3ebd125ac4f88b12, []int{10} +} +func (m *TargetSpend) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TargetSpend.Unmarshal(m, b) +} +func (m *TargetSpend) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TargetSpend.Marshal(b, m, deterministic) +} +func (dst *TargetSpend) XXX_Merge(src proto.Message) { + xxx_messageInfo_TargetSpend.Merge(dst, src) +} +func (m *TargetSpend) XXX_Size() int { + return xxx_messageInfo_TargetSpend.Size(m) +} +func (m *TargetSpend) XXX_DiscardUnknown() { + xxx_messageInfo_TargetSpend.DiscardUnknown(m) +} + +var xxx_messageInfo_TargetSpend proto.InternalMessageInfo + +func (m *TargetSpend) GetTargetSpendMicros() *wrappers.Int64Value { + if m != nil { + return m.TargetSpendMicros + } + return nil +} + +func (m *TargetSpend) GetCpcBidCeilingMicros() *wrappers.Int64Value { + if m != nil { + return m.CpcBidCeilingMicros + } + return nil +} + +// A bidding strategy where bids are a fraction of the advertised price for +// some good or service. +type PercentCpc struct { + // Maximum bid limit that can be set by the bid strategy. This is + // an optional field entered by the advertiser and specified in local micros. + // Note: A zero value is interpreted in the same way as having bid_ceiling + // undefined. + CpcBidCeilingMicros *wrappers.Int64Value `protobuf:"bytes,1,opt,name=cpc_bid_ceiling_micros,json=cpcBidCeilingMicros,proto3" json:"cpc_bid_ceiling_micros,omitempty"` + // Adjusts the bid for each auction upward or downward, depending on the + // likelihood of a conversion. Individual bids may exceed + // cpc_bid_ceiling_micros, but the average bid amount for a campaign should + // not. + EnhancedCpcEnabled *wrappers.BoolValue `protobuf:"bytes,2,opt,name=enhanced_cpc_enabled,json=enhancedCpcEnabled,proto3" json:"enhanced_cpc_enabled,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PercentCpc) Reset() { *m = PercentCpc{} } +func (m *PercentCpc) String() string { return proto.CompactTextString(m) } +func (*PercentCpc) ProtoMessage() {} +func (*PercentCpc) Descriptor() ([]byte, []int) { + return fileDescriptor_bidding_3ebd125ac4f88b12, []int{11} +} +func (m *PercentCpc) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PercentCpc.Unmarshal(m, b) +} +func (m *PercentCpc) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PercentCpc.Marshal(b, m, deterministic) +} +func (dst *PercentCpc) XXX_Merge(src proto.Message) { + xxx_messageInfo_PercentCpc.Merge(dst, src) +} +func (m *PercentCpc) XXX_Size() int { + return xxx_messageInfo_PercentCpc.Size(m) +} +func (m *PercentCpc) XXX_DiscardUnknown() { + xxx_messageInfo_PercentCpc.DiscardUnknown(m) +} + +var xxx_messageInfo_PercentCpc proto.InternalMessageInfo + +func (m *PercentCpc) GetCpcBidCeilingMicros() *wrappers.Int64Value { + if m != nil { + return m.CpcBidCeilingMicros + } + return nil +} + +func (m *PercentCpc) GetEnhancedCpcEnabled() *wrappers.BoolValue { + if m != nil { + return m.EnhancedCpcEnabled + } + return nil +} + +func init() { + proto.RegisterType((*EnhancedCpc)(nil), "google.ads.googleads.v0.common.EnhancedCpc") + proto.RegisterType((*ManualCpc)(nil), "google.ads.googleads.v0.common.ManualCpc") + proto.RegisterType((*ManualCpm)(nil), "google.ads.googleads.v0.common.ManualCpm") + proto.RegisterType((*ManualCpv)(nil), "google.ads.googleads.v0.common.ManualCpv") + proto.RegisterType((*MaximizeConversions)(nil), "google.ads.googleads.v0.common.MaximizeConversions") + proto.RegisterType((*MaximizeConversionValue)(nil), "google.ads.googleads.v0.common.MaximizeConversionValue") + proto.RegisterType((*PageOnePromoted)(nil), "google.ads.googleads.v0.common.PageOnePromoted") + proto.RegisterType((*TargetCpa)(nil), "google.ads.googleads.v0.common.TargetCpa") + proto.RegisterType((*TargetOutrankShare)(nil), "google.ads.googleads.v0.common.TargetOutrankShare") + proto.RegisterType((*TargetRoas)(nil), "google.ads.googleads.v0.common.TargetRoas") + proto.RegisterType((*TargetSpend)(nil), "google.ads.googleads.v0.common.TargetSpend") + proto.RegisterType((*PercentCpc)(nil), "google.ads.googleads.v0.common.PercentCpc") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/common/bidding.proto", fileDescriptor_bidding_3ebd125ac4f88b12) +} + +var fileDescriptor_bidding_3ebd125ac4f88b12 = []byte{ + // 805 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x96, 0x4f, 0x6f, 0x1b, 0x45, + 0x14, 0xc0, 0xb5, 0x71, 0x5b, 0xa9, 0xe3, 0x94, 0x92, 0x4d, 0x01, 0x2b, 0x45, 0x55, 0xb5, 0x12, + 0x82, 0x03, 0xda, 0x8d, 0x52, 0xc4, 0x05, 0x21, 0x14, 0x6f, 0x42, 0x64, 0x11, 0xab, 0xc6, 0xae, + 0x02, 0x44, 0x96, 0x46, 0xb3, 0x33, 0x2f, 0xeb, 0x51, 0x77, 0xe7, 0x2d, 0x33, 0xbb, 0x36, 0xe1, + 0xc2, 0x77, 0xe1, 0x88, 0xf8, 0x14, 0x5c, 0x90, 0x10, 0xdf, 0x84, 0x2b, 0x1f, 0x00, 0xed, 0xce, + 0x38, 0x6e, 0x71, 0x1d, 0x37, 0x21, 0x48, 0x3d, 0xed, 0xfc, 0x79, 0xef, 0xf7, 0xfe, 0xce, 0xce, + 0x90, 0x8f, 0x53, 0xc4, 0x34, 0x83, 0x88, 0x09, 0x13, 0xd9, 0x61, 0x3d, 0x9a, 0xee, 0x46, 0x1c, + 0xf3, 0x1c, 0x55, 0x94, 0x48, 0x21, 0xa4, 0x4a, 0xc3, 0x42, 0x63, 0x89, 0xfe, 0x23, 0x2b, 0x12, + 0x32, 0x61, 0xc2, 0x0b, 0xe9, 0x70, 0xba, 0x1b, 0x5a, 0xe9, 0x9d, 0x78, 0x15, 0x0d, 0x54, 0x95, + 0x9b, 0xa8, 0x60, 0x29, 0x50, 0x54, 0x40, 0x0b, 0x8d, 0x39, 0x96, 0x20, 0xa8, 0x29, 0x35, 0x2b, + 0x21, 0x3d, 0xa7, 0x29, 0xb2, 0xcc, 0x1a, 0xd9, 0x71, 0x46, 0xa2, 0x66, 0x96, 0x54, 0x67, 0xd1, + 0x4c, 0xb3, 0xa2, 0x00, 0x6d, 0xec, 0x7e, 0x70, 0x8f, 0xb4, 0x0f, 0xd5, 0x84, 0x29, 0x0e, 0x22, + 0x2e, 0x78, 0xf0, 0x1d, 0xb9, 0xdb, 0x67, 0xaa, 0x62, 0x59, 0x5c, 0x70, 0xff, 0x98, 0x3c, 0x00, + 0xb7, 0x47, 0x79, 0xc1, 0x29, 0x28, 0x96, 0x64, 0x20, 0x3a, 0xde, 0x63, 0xef, 0xa3, 0xf6, 0xde, + 0x8e, 0x73, 0x3a, 0x9c, 0xa3, 0xc3, 0x2e, 0x62, 0x76, 0xc2, 0xb2, 0x0a, 0x86, 0x3e, 0x2c, 0x98, + 0x87, 0x56, 0x2b, 0x68, 0x2f, 0xd0, 0xf9, 0x8b, 0x93, 0x69, 0xf0, 0x0e, 0xd9, 0xee, 0xb3, 0x1f, + 0x64, 0x2e, 0x7f, 0x84, 0x18, 0xd5, 0x14, 0xb4, 0x91, 0xa8, 0x4c, 0xf0, 0x2d, 0x79, 0x6f, 0x79, + 0xb9, 0xe1, 0xfb, 0x9f, 0x93, 0x76, 0xc9, 0x74, 0x0a, 0x25, 0xd5, 0xc8, 0x8c, 0x73, 0xe8, 0xfd, + 0x25, 0x87, 0x0e, 0xb0, 0x4a, 0x32, 0xb0, 0x2e, 0x11, 0xab, 0x30, 0x44, 0x66, 0x82, 0x3f, 0x6f, + 0x91, 0xfb, 0x03, 0x96, 0xc2, 0x53, 0x05, 0x03, 0x97, 0x3c, 0xff, 0x27, 0x72, 0xef, 0xa5, 0xfc, + 0x35, 0xd0, 0xb7, 0xf6, 0x4e, 0xc3, 0x55, 0x55, 0x6a, 0xaa, 0x10, 0xfe, 0x0b, 0x33, 0x72, 0x88, + 0x23, 0x64, 0xd9, 0xa1, 0xaa, 0xf2, 0xcb, 0xf6, 0x87, 0x9b, 0xe6, 0x85, 0x99, 0x3f, 0x20, 0xef, + 0xd6, 0x49, 0x4e, 0xa4, 0xa0, 0x1c, 0x64, 0x26, 0x55, 0x4a, 0x73, 0xc9, 0x35, 0x9a, 0xce, 0x46, + 0x13, 0xde, 0xc3, 0xa5, 0xf0, 0x7a, 0xaa, 0xfc, 0xf4, 0x13, 0x1b, 0xdd, 0x36, 0x2f, 0x78, 0x57, + 0x8a, 0xd8, 0x2a, 0xf6, 0x1b, 0x3d, 0xff, 0x0b, 0xb2, 0x59, 0xd3, 0x72, 0x14, 0xf2, 0x4c, 0x82, + 0xee, 0xb4, 0x5e, 0x23, 0x4d, 0xed, 0x44, 0x8a, 0xbe, 0x53, 0xf0, 0x7b, 0x64, 0x1b, 0x55, 0x76, + 0x4e, 0x35, 0x93, 0x06, 0xa8, 0xf3, 0xce, 0x74, 0x6e, 0xad, 0xad, 0xff, 0xdb, 0xb5, 0xda, 0xb0, + 0xd6, 0x8a, 0x1b, 0xbf, 0x8c, 0xff, 0x9c, 0x7c, 0xf0, 0x12, 0x85, 0xce, 0x26, 0xa0, 0x68, 0x52, + 0x89, 0xba, 0x88, 0x1c, 0x55, 0x9d, 0x0a, 0xa9, 0x40, 0x74, 0x6e, 0xaf, 0x85, 0x3f, 0xd6, 0x0b, + 0xf0, 0x37, 0x13, 0x50, 0xdd, 0x06, 0x12, 0x2f, 0x18, 0x7e, 0x4e, 0x3e, 0x7c, 0x85, 0xb1, 0xef, + 0x2b, 0x96, 0xc9, 0xf2, 0x9c, 0x1a, 0x8e, 0x1a, 0xa8, 0x34, 0x34, 0xc3, 0x59, 0xe7, 0xce, 0x95, + 0xcd, 0x7d, 0x6d, 0x31, 0xa3, 0x9a, 0xd2, 0x33, 0xc7, 0x38, 0x0b, 0xfe, 0xf6, 0xc8, 0xdd, 0x67, + 0x4d, 0x77, 0xc5, 0x05, 0xf3, 0x8f, 0xc8, 0x96, 0xeb, 0x4d, 0x5e, 0xb0, 0x79, 0x09, 0xbd, 0xf5, + 0x25, 0xbc, 0x5f, 0xce, 0x11, 0xae, 0x7c, 0x37, 0xdf, 0x10, 0xc7, 0xe4, 0xc1, 0x9c, 0x78, 0x96, + 0x21, 0xea, 0x39, 0xaf, 0xb5, 0x9e, 0xb7, 0x65, 0x79, 0x5f, 0xd6, 0x6a, 0x96, 0x16, 0xfc, 0xde, + 0x22, 0xbe, 0x0d, 0xfb, 0x69, 0x55, 0x6a, 0xa6, 0x9e, 0x8f, 0x26, 0x4c, 0x83, 0x7f, 0x4a, 0x1e, + 0xba, 0xf8, 0xd1, 0x2e, 0x53, 0x53, 0xaf, 0xbf, 0x46, 0x26, 0x9e, 0xec, 0x59, 0x5b, 0x9d, 0x72, + 0x89, 0xea, 0x02, 0xe8, 0x91, 0x2d, 0x8e, 0x79, 0x01, 0xa5, 0x2c, 0x51, 0x53, 0x81, 0x39, 0x93, + 0xca, 0x65, 0x63, 0xb9, 0xad, 0x47, 0xa5, 0x96, 0x2a, 0x75, 0x0d, 0xb9, 0x50, 0x3b, 0x68, 0xb4, + 0x2e, 0xc9, 0x6e, 0xeb, 0x9a, 0xd9, 0xbd, 0xc1, 0xd3, 0x72, 0x85, 0x06, 0xbe, 0x7d, 0x03, 0x0d, + 0xfc, 0x97, 0x47, 0xc8, 0xb3, 0x8b, 0xdf, 0xe3, 0x7f, 0xfc, 0xbb, 0xbe, 0xf1, 0x7d, 0xfb, 0xab, + 0x47, 0xda, 0x36, 0xda, 0x51, 0x01, 0x4a, 0xf8, 0x5f, 0x91, 0x6d, 0x17, 0xae, 0xa9, 0xe7, 0x57, + 0x38, 0xb2, 0xee, 0xa0, 0x37, 0x98, 0xff, 0xeb, 0xd0, 0xd6, 0xee, 0x92, 0x01, 0x68, 0x0e, 0xaa, + 0xac, 0x2f, 0xe5, 0xd5, 0x06, 0xbc, 0xeb, 0x67, 0xf7, 0x95, 0xd7, 0xfc, 0xc6, 0x75, 0xae, 0xf9, + 0xee, 0x6f, 0x1e, 0x09, 0x38, 0xe6, 0xe1, 0xe5, 0x8f, 0x9b, 0xee, 0x66, 0xd7, 0xbe, 0x85, 0x06, + 0x35, 0x75, 0xe0, 0x9d, 0x1e, 0x38, 0xf9, 0x14, 0x33, 0xa6, 0xd2, 0x10, 0x75, 0x1a, 0xa5, 0xa0, + 0x1a, 0x9b, 0xf3, 0xc7, 0x4f, 0x21, 0xcd, 0xaa, 0x97, 0xd5, 0x67, 0xf6, 0xf3, 0xf3, 0x46, 0xeb, + 0x68, 0x7f, 0xff, 0x97, 0x8d, 0x47, 0x47, 0x16, 0xb6, 0x2f, 0x4c, 0x68, 0x87, 0xf5, 0xe8, 0x64, + 0x37, 0x8c, 0x1b, 0xb1, 0x3f, 0xe6, 0x02, 0xe3, 0x7d, 0x61, 0xc6, 0x17, 0x02, 0xe3, 0x93, 0xdd, + 0xb1, 0x15, 0x48, 0xee, 0x34, 0x86, 0x9f, 0xfc, 0x13, 0x00, 0x00, 0xff, 0xff, 0xc9, 0xde, 0x2e, + 0x2b, 0xd1, 0x09, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/criteria.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/criteria.pb.go new file mode 100644 index 000000000..f25af79db --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/criteria.pb.go @@ -0,0 +1,2575 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/common/criteria.proto + +package common // import "google.golang.org/genproto/googleapis/ads/googleads/v0/common" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A keyword criterion. +type KeywordInfo struct { + // The text of the keyword (at most 80 characters and 10 words). + Text *wrappers.StringValue `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"` + // The match type of the keyword. + MatchType enums.KeywordMatchTypeEnum_KeywordMatchType `protobuf:"varint,2,opt,name=match_type,json=matchType,proto3,enum=google.ads.googleads.v0.enums.KeywordMatchTypeEnum_KeywordMatchType" json:"match_type,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *KeywordInfo) Reset() { *m = KeywordInfo{} } +func (m *KeywordInfo) String() string { return proto.CompactTextString(m) } +func (*KeywordInfo) ProtoMessage() {} +func (*KeywordInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_criteria_9296a1565f76dc58, []int{0} +} +func (m *KeywordInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_KeywordInfo.Unmarshal(m, b) +} +func (m *KeywordInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_KeywordInfo.Marshal(b, m, deterministic) +} +func (dst *KeywordInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_KeywordInfo.Merge(dst, src) +} +func (m *KeywordInfo) XXX_Size() int { + return xxx_messageInfo_KeywordInfo.Size(m) +} +func (m *KeywordInfo) XXX_DiscardUnknown() { + xxx_messageInfo_KeywordInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_KeywordInfo proto.InternalMessageInfo + +func (m *KeywordInfo) GetText() *wrappers.StringValue { + if m != nil { + return m.Text + } + return nil +} + +func (m *KeywordInfo) GetMatchType() enums.KeywordMatchTypeEnum_KeywordMatchType { + if m != nil { + return m.MatchType + } + return enums.KeywordMatchTypeEnum_UNSPECIFIED +} + +// A placement criterion. This can be used to modify bids for sites when +// targeting the content network. +type PlacementInfo struct { + // URL of the placement. + // + // For example, "http://www.domain.com". + Url *wrappers.StringValue `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PlacementInfo) Reset() { *m = PlacementInfo{} } +func (m *PlacementInfo) String() string { return proto.CompactTextString(m) } +func (*PlacementInfo) ProtoMessage() {} +func (*PlacementInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_criteria_9296a1565f76dc58, []int{1} +} +func (m *PlacementInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PlacementInfo.Unmarshal(m, b) +} +func (m *PlacementInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PlacementInfo.Marshal(b, m, deterministic) +} +func (dst *PlacementInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_PlacementInfo.Merge(dst, src) +} +func (m *PlacementInfo) XXX_Size() int { + return xxx_messageInfo_PlacementInfo.Size(m) +} +func (m *PlacementInfo) XXX_DiscardUnknown() { + xxx_messageInfo_PlacementInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_PlacementInfo proto.InternalMessageInfo + +func (m *PlacementInfo) GetUrl() *wrappers.StringValue { + if m != nil { + return m.Url + } + return nil +} + +// A location criterion. +type LocationInfo struct { + // The geo target constant resource name. + GeoTargetConstant *wrappers.StringValue `protobuf:"bytes,1,opt,name=geo_target_constant,json=geoTargetConstant,proto3" json:"geo_target_constant,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *LocationInfo) Reset() { *m = LocationInfo{} } +func (m *LocationInfo) String() string { return proto.CompactTextString(m) } +func (*LocationInfo) ProtoMessage() {} +func (*LocationInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_criteria_9296a1565f76dc58, []int{2} +} +func (m *LocationInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_LocationInfo.Unmarshal(m, b) +} +func (m *LocationInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_LocationInfo.Marshal(b, m, deterministic) +} +func (dst *LocationInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_LocationInfo.Merge(dst, src) +} +func (m *LocationInfo) XXX_Size() int { + return xxx_messageInfo_LocationInfo.Size(m) +} +func (m *LocationInfo) XXX_DiscardUnknown() { + xxx_messageInfo_LocationInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_LocationInfo proto.InternalMessageInfo + +func (m *LocationInfo) GetGeoTargetConstant() *wrappers.StringValue { + if m != nil { + return m.GeoTargetConstant + } + return nil +} + +// A device criterion. +type DeviceInfo struct { + // Type of the device. + Type enums.DeviceEnum_Device `protobuf:"varint,1,opt,name=type,proto3,enum=google.ads.googleads.v0.enums.DeviceEnum_Device" json:"type,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DeviceInfo) Reset() { *m = DeviceInfo{} } +func (m *DeviceInfo) String() string { return proto.CompactTextString(m) } +func (*DeviceInfo) ProtoMessage() {} +func (*DeviceInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_criteria_9296a1565f76dc58, []int{3} +} +func (m *DeviceInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeviceInfo.Unmarshal(m, b) +} +func (m *DeviceInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeviceInfo.Marshal(b, m, deterministic) +} +func (dst *DeviceInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeviceInfo.Merge(dst, src) +} +func (m *DeviceInfo) XXX_Size() int { + return xxx_messageInfo_DeviceInfo.Size(m) +} +func (m *DeviceInfo) XXX_DiscardUnknown() { + xxx_messageInfo_DeviceInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_DeviceInfo proto.InternalMessageInfo + +func (m *DeviceInfo) GetType() enums.DeviceEnum_Device { + if m != nil { + return m.Type + } + return enums.DeviceEnum_UNSPECIFIED +} + +// A preferred content criterion. +type PreferredContentInfo struct { + // Type of the preferred content. + Type enums.PreferredContentTypeEnum_PreferredContentType `protobuf:"varint,2,opt,name=type,proto3,enum=google.ads.googleads.v0.enums.PreferredContentTypeEnum_PreferredContentType" json:"type,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PreferredContentInfo) Reset() { *m = PreferredContentInfo{} } +func (m *PreferredContentInfo) String() string { return proto.CompactTextString(m) } +func (*PreferredContentInfo) ProtoMessage() {} +func (*PreferredContentInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_criteria_9296a1565f76dc58, []int{4} +} +func (m *PreferredContentInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PreferredContentInfo.Unmarshal(m, b) +} +func (m *PreferredContentInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PreferredContentInfo.Marshal(b, m, deterministic) +} +func (dst *PreferredContentInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_PreferredContentInfo.Merge(dst, src) +} +func (m *PreferredContentInfo) XXX_Size() int { + return xxx_messageInfo_PreferredContentInfo.Size(m) +} +func (m *PreferredContentInfo) XXX_DiscardUnknown() { + xxx_messageInfo_PreferredContentInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_PreferredContentInfo proto.InternalMessageInfo + +func (m *PreferredContentInfo) GetType() enums.PreferredContentTypeEnum_PreferredContentType { + if m != nil { + return m.Type + } + return enums.PreferredContentTypeEnum_UNSPECIFIED +} + +// A listing group criterion. +type ListingGroupInfo struct { + // Type of the listing group. + Type enums.ListingGroupTypeEnum_ListingGroupType `protobuf:"varint,1,opt,name=type,proto3,enum=google.ads.googleads.v0.enums.ListingGroupTypeEnum_ListingGroupType" json:"type,omitempty"` + // Dimension value with which this listing group is refining its parent. + // Undefined for the root group. + CaseValue *ListingDimensionInfo `protobuf:"bytes,2,opt,name=case_value,json=caseValue,proto3" json:"case_value,omitempty"` + // Resource name of ad group criterion which is the parent listing group + // subdivision. Null for the root group. + ParentAdGroupCriterion *wrappers.StringValue `protobuf:"bytes,3,opt,name=parent_ad_group_criterion,json=parentAdGroupCriterion,proto3" json:"parent_ad_group_criterion,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListingGroupInfo) Reset() { *m = ListingGroupInfo{} } +func (m *ListingGroupInfo) String() string { return proto.CompactTextString(m) } +func (*ListingGroupInfo) ProtoMessage() {} +func (*ListingGroupInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_criteria_9296a1565f76dc58, []int{5} +} +func (m *ListingGroupInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListingGroupInfo.Unmarshal(m, b) +} +func (m *ListingGroupInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListingGroupInfo.Marshal(b, m, deterministic) +} +func (dst *ListingGroupInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListingGroupInfo.Merge(dst, src) +} +func (m *ListingGroupInfo) XXX_Size() int { + return xxx_messageInfo_ListingGroupInfo.Size(m) +} +func (m *ListingGroupInfo) XXX_DiscardUnknown() { + xxx_messageInfo_ListingGroupInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_ListingGroupInfo proto.InternalMessageInfo + +func (m *ListingGroupInfo) GetType() enums.ListingGroupTypeEnum_ListingGroupType { + if m != nil { + return m.Type + } + return enums.ListingGroupTypeEnum_UNSPECIFIED +} + +func (m *ListingGroupInfo) GetCaseValue() *ListingDimensionInfo { + if m != nil { + return m.CaseValue + } + return nil +} + +func (m *ListingGroupInfo) GetParentAdGroupCriterion() *wrappers.StringValue { + if m != nil { + return m.ParentAdGroupCriterion + } + return nil +} + +// A listing scope criterion. +type ListingScopeInfo struct { + // Scope of the campaign criterion. + Dimensions []*ListingDimensionInfo `protobuf:"bytes,2,rep,name=dimensions,proto3" json:"dimensions,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListingScopeInfo) Reset() { *m = ListingScopeInfo{} } +func (m *ListingScopeInfo) String() string { return proto.CompactTextString(m) } +func (*ListingScopeInfo) ProtoMessage() {} +func (*ListingScopeInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_criteria_9296a1565f76dc58, []int{6} +} +func (m *ListingScopeInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListingScopeInfo.Unmarshal(m, b) +} +func (m *ListingScopeInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListingScopeInfo.Marshal(b, m, deterministic) +} +func (dst *ListingScopeInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListingScopeInfo.Merge(dst, src) +} +func (m *ListingScopeInfo) XXX_Size() int { + return xxx_messageInfo_ListingScopeInfo.Size(m) +} +func (m *ListingScopeInfo) XXX_DiscardUnknown() { + xxx_messageInfo_ListingScopeInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_ListingScopeInfo proto.InternalMessageInfo + +func (m *ListingScopeInfo) GetDimensions() []*ListingDimensionInfo { + if m != nil { + return m.Dimensions + } + return nil +} + +// Listing dimensions for listing group criterion. +type ListingDimensionInfo struct { + // Dimension of one of the types below is always present. + // + // Types that are valid to be assigned to Dimension: + // *ListingDimensionInfo_ListingBrand + // *ListingDimensionInfo_HotelId + // *ListingDimensionInfo_HotelClass + // *ListingDimensionInfo_HotelCountryRegion + // *ListingDimensionInfo_HotelState + // *ListingDimensionInfo_HotelCity + // *ListingDimensionInfo_ListingCustomAttribute + // *ListingDimensionInfo_ProductChannel + // *ListingDimensionInfo_ProductChannelExclusivity + // *ListingDimensionInfo_ProductCondition + // *ListingDimensionInfo_ProductOfferId + // *ListingDimensionInfo_ProductType + Dimension isListingDimensionInfo_Dimension `protobuf_oneof:"dimension"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListingDimensionInfo) Reset() { *m = ListingDimensionInfo{} } +func (m *ListingDimensionInfo) String() string { return proto.CompactTextString(m) } +func (*ListingDimensionInfo) ProtoMessage() {} +func (*ListingDimensionInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_criteria_9296a1565f76dc58, []int{7} +} +func (m *ListingDimensionInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListingDimensionInfo.Unmarshal(m, b) +} +func (m *ListingDimensionInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListingDimensionInfo.Marshal(b, m, deterministic) +} +func (dst *ListingDimensionInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListingDimensionInfo.Merge(dst, src) +} +func (m *ListingDimensionInfo) XXX_Size() int { + return xxx_messageInfo_ListingDimensionInfo.Size(m) +} +func (m *ListingDimensionInfo) XXX_DiscardUnknown() { + xxx_messageInfo_ListingDimensionInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_ListingDimensionInfo proto.InternalMessageInfo + +type isListingDimensionInfo_Dimension interface { + isListingDimensionInfo_Dimension() +} + +type ListingDimensionInfo_ListingBrand struct { + ListingBrand *ListingBrandInfo `protobuf:"bytes,1,opt,name=listing_brand,json=listingBrand,proto3,oneof"` +} + +type ListingDimensionInfo_HotelId struct { + HotelId *HotelIdInfo `protobuf:"bytes,2,opt,name=hotel_id,json=hotelId,proto3,oneof"` +} + +type ListingDimensionInfo_HotelClass struct { + HotelClass *HotelClassInfo `protobuf:"bytes,3,opt,name=hotel_class,json=hotelClass,proto3,oneof"` +} + +type ListingDimensionInfo_HotelCountryRegion struct { + HotelCountryRegion *HotelCountryRegionInfo `protobuf:"bytes,4,opt,name=hotel_country_region,json=hotelCountryRegion,proto3,oneof"` +} + +type ListingDimensionInfo_HotelState struct { + HotelState *HotelStateInfo `protobuf:"bytes,5,opt,name=hotel_state,json=hotelState,proto3,oneof"` +} + +type ListingDimensionInfo_HotelCity struct { + HotelCity *HotelCityInfo `protobuf:"bytes,6,opt,name=hotel_city,json=hotelCity,proto3,oneof"` +} + +type ListingDimensionInfo_ListingCustomAttribute struct { + ListingCustomAttribute *ListingCustomAttributeInfo `protobuf:"bytes,7,opt,name=listing_custom_attribute,json=listingCustomAttribute,proto3,oneof"` +} + +type ListingDimensionInfo_ProductChannel struct { + ProductChannel *ProductChannelInfo `protobuf:"bytes,8,opt,name=product_channel,json=productChannel,proto3,oneof"` +} + +type ListingDimensionInfo_ProductChannelExclusivity struct { + ProductChannelExclusivity *ProductChannelExclusivityInfo `protobuf:"bytes,9,opt,name=product_channel_exclusivity,json=productChannelExclusivity,proto3,oneof"` +} + +type ListingDimensionInfo_ProductCondition struct { + ProductCondition *ProductConditionInfo `protobuf:"bytes,10,opt,name=product_condition,json=productCondition,proto3,oneof"` +} + +type ListingDimensionInfo_ProductOfferId struct { + ProductOfferId *ProductOfferIdInfo `protobuf:"bytes,11,opt,name=product_offer_id,json=productOfferId,proto3,oneof"` +} + +type ListingDimensionInfo_ProductType struct { + ProductType *ProductTypeInfo `protobuf:"bytes,12,opt,name=product_type,json=productType,proto3,oneof"` +} + +func (*ListingDimensionInfo_ListingBrand) isListingDimensionInfo_Dimension() {} + +func (*ListingDimensionInfo_HotelId) isListingDimensionInfo_Dimension() {} + +func (*ListingDimensionInfo_HotelClass) isListingDimensionInfo_Dimension() {} + +func (*ListingDimensionInfo_HotelCountryRegion) isListingDimensionInfo_Dimension() {} + +func (*ListingDimensionInfo_HotelState) isListingDimensionInfo_Dimension() {} + +func (*ListingDimensionInfo_HotelCity) isListingDimensionInfo_Dimension() {} + +func (*ListingDimensionInfo_ListingCustomAttribute) isListingDimensionInfo_Dimension() {} + +func (*ListingDimensionInfo_ProductChannel) isListingDimensionInfo_Dimension() {} + +func (*ListingDimensionInfo_ProductChannelExclusivity) isListingDimensionInfo_Dimension() {} + +func (*ListingDimensionInfo_ProductCondition) isListingDimensionInfo_Dimension() {} + +func (*ListingDimensionInfo_ProductOfferId) isListingDimensionInfo_Dimension() {} + +func (*ListingDimensionInfo_ProductType) isListingDimensionInfo_Dimension() {} + +func (m *ListingDimensionInfo) GetDimension() isListingDimensionInfo_Dimension { + if m != nil { + return m.Dimension + } + return nil +} + +func (m *ListingDimensionInfo) GetListingBrand() *ListingBrandInfo { + if x, ok := m.GetDimension().(*ListingDimensionInfo_ListingBrand); ok { + return x.ListingBrand + } + return nil +} + +func (m *ListingDimensionInfo) GetHotelId() *HotelIdInfo { + if x, ok := m.GetDimension().(*ListingDimensionInfo_HotelId); ok { + return x.HotelId + } + return nil +} + +func (m *ListingDimensionInfo) GetHotelClass() *HotelClassInfo { + if x, ok := m.GetDimension().(*ListingDimensionInfo_HotelClass); ok { + return x.HotelClass + } + return nil +} + +func (m *ListingDimensionInfo) GetHotelCountryRegion() *HotelCountryRegionInfo { + if x, ok := m.GetDimension().(*ListingDimensionInfo_HotelCountryRegion); ok { + return x.HotelCountryRegion + } + return nil +} + +func (m *ListingDimensionInfo) GetHotelState() *HotelStateInfo { + if x, ok := m.GetDimension().(*ListingDimensionInfo_HotelState); ok { + return x.HotelState + } + return nil +} + +func (m *ListingDimensionInfo) GetHotelCity() *HotelCityInfo { + if x, ok := m.GetDimension().(*ListingDimensionInfo_HotelCity); ok { + return x.HotelCity + } + return nil +} + +func (m *ListingDimensionInfo) GetListingCustomAttribute() *ListingCustomAttributeInfo { + if x, ok := m.GetDimension().(*ListingDimensionInfo_ListingCustomAttribute); ok { + return x.ListingCustomAttribute + } + return nil +} + +func (m *ListingDimensionInfo) GetProductChannel() *ProductChannelInfo { + if x, ok := m.GetDimension().(*ListingDimensionInfo_ProductChannel); ok { + return x.ProductChannel + } + return nil +} + +func (m *ListingDimensionInfo) GetProductChannelExclusivity() *ProductChannelExclusivityInfo { + if x, ok := m.GetDimension().(*ListingDimensionInfo_ProductChannelExclusivity); ok { + return x.ProductChannelExclusivity + } + return nil +} + +func (m *ListingDimensionInfo) GetProductCondition() *ProductConditionInfo { + if x, ok := m.GetDimension().(*ListingDimensionInfo_ProductCondition); ok { + return x.ProductCondition + } + return nil +} + +func (m *ListingDimensionInfo) GetProductOfferId() *ProductOfferIdInfo { + if x, ok := m.GetDimension().(*ListingDimensionInfo_ProductOfferId); ok { + return x.ProductOfferId + } + return nil +} + +func (m *ListingDimensionInfo) GetProductType() *ProductTypeInfo { + if x, ok := m.GetDimension().(*ListingDimensionInfo_ProductType); ok { + return x.ProductType + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*ListingDimensionInfo) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _ListingDimensionInfo_OneofMarshaler, _ListingDimensionInfo_OneofUnmarshaler, _ListingDimensionInfo_OneofSizer, []interface{}{ + (*ListingDimensionInfo_ListingBrand)(nil), + (*ListingDimensionInfo_HotelId)(nil), + (*ListingDimensionInfo_HotelClass)(nil), + (*ListingDimensionInfo_HotelCountryRegion)(nil), + (*ListingDimensionInfo_HotelState)(nil), + (*ListingDimensionInfo_HotelCity)(nil), + (*ListingDimensionInfo_ListingCustomAttribute)(nil), + (*ListingDimensionInfo_ProductChannel)(nil), + (*ListingDimensionInfo_ProductChannelExclusivity)(nil), + (*ListingDimensionInfo_ProductCondition)(nil), + (*ListingDimensionInfo_ProductOfferId)(nil), + (*ListingDimensionInfo_ProductType)(nil), + } +} + +func _ListingDimensionInfo_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*ListingDimensionInfo) + // dimension + switch x := m.Dimension.(type) { + case *ListingDimensionInfo_ListingBrand: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.ListingBrand); err != nil { + return err + } + case *ListingDimensionInfo_HotelId: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.HotelId); err != nil { + return err + } + case *ListingDimensionInfo_HotelClass: + b.EncodeVarint(3<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.HotelClass); err != nil { + return err + } + case *ListingDimensionInfo_HotelCountryRegion: + b.EncodeVarint(4<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.HotelCountryRegion); err != nil { + return err + } + case *ListingDimensionInfo_HotelState: + b.EncodeVarint(5<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.HotelState); err != nil { + return err + } + case *ListingDimensionInfo_HotelCity: + b.EncodeVarint(6<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.HotelCity); err != nil { + return err + } + case *ListingDimensionInfo_ListingCustomAttribute: + b.EncodeVarint(7<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.ListingCustomAttribute); err != nil { + return err + } + case *ListingDimensionInfo_ProductChannel: + b.EncodeVarint(8<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.ProductChannel); err != nil { + return err + } + case *ListingDimensionInfo_ProductChannelExclusivity: + b.EncodeVarint(9<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.ProductChannelExclusivity); err != nil { + return err + } + case *ListingDimensionInfo_ProductCondition: + b.EncodeVarint(10<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.ProductCondition); err != nil { + return err + } + case *ListingDimensionInfo_ProductOfferId: + b.EncodeVarint(11<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.ProductOfferId); err != nil { + return err + } + case *ListingDimensionInfo_ProductType: + b.EncodeVarint(12<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.ProductType); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("ListingDimensionInfo.Dimension has unexpected type %T", x) + } + return nil +} + +func _ListingDimensionInfo_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*ListingDimensionInfo) + switch tag { + case 1: // dimension.listing_brand + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(ListingBrandInfo) + err := b.DecodeMessage(msg) + m.Dimension = &ListingDimensionInfo_ListingBrand{msg} + return true, err + case 2: // dimension.hotel_id + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(HotelIdInfo) + err := b.DecodeMessage(msg) + m.Dimension = &ListingDimensionInfo_HotelId{msg} + return true, err + case 3: // dimension.hotel_class + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(HotelClassInfo) + err := b.DecodeMessage(msg) + m.Dimension = &ListingDimensionInfo_HotelClass{msg} + return true, err + case 4: // dimension.hotel_country_region + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(HotelCountryRegionInfo) + err := b.DecodeMessage(msg) + m.Dimension = &ListingDimensionInfo_HotelCountryRegion{msg} + return true, err + case 5: // dimension.hotel_state + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(HotelStateInfo) + err := b.DecodeMessage(msg) + m.Dimension = &ListingDimensionInfo_HotelState{msg} + return true, err + case 6: // dimension.hotel_city + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(HotelCityInfo) + err := b.DecodeMessage(msg) + m.Dimension = &ListingDimensionInfo_HotelCity{msg} + return true, err + case 7: // dimension.listing_custom_attribute + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(ListingCustomAttributeInfo) + err := b.DecodeMessage(msg) + m.Dimension = &ListingDimensionInfo_ListingCustomAttribute{msg} + return true, err + case 8: // dimension.product_channel + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(ProductChannelInfo) + err := b.DecodeMessage(msg) + m.Dimension = &ListingDimensionInfo_ProductChannel{msg} + return true, err + case 9: // dimension.product_channel_exclusivity + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(ProductChannelExclusivityInfo) + err := b.DecodeMessage(msg) + m.Dimension = &ListingDimensionInfo_ProductChannelExclusivity{msg} + return true, err + case 10: // dimension.product_condition + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(ProductConditionInfo) + err := b.DecodeMessage(msg) + m.Dimension = &ListingDimensionInfo_ProductCondition{msg} + return true, err + case 11: // dimension.product_offer_id + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(ProductOfferIdInfo) + err := b.DecodeMessage(msg) + m.Dimension = &ListingDimensionInfo_ProductOfferId{msg} + return true, err + case 12: // dimension.product_type + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(ProductTypeInfo) + err := b.DecodeMessage(msg) + m.Dimension = &ListingDimensionInfo_ProductType{msg} + return true, err + default: + return false, nil + } +} + +func _ListingDimensionInfo_OneofSizer(msg proto.Message) (n int) { + m := msg.(*ListingDimensionInfo) + // dimension + switch x := m.Dimension.(type) { + case *ListingDimensionInfo_ListingBrand: + s := proto.Size(x.ListingBrand) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *ListingDimensionInfo_HotelId: + s := proto.Size(x.HotelId) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *ListingDimensionInfo_HotelClass: + s := proto.Size(x.HotelClass) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *ListingDimensionInfo_HotelCountryRegion: + s := proto.Size(x.HotelCountryRegion) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *ListingDimensionInfo_HotelState: + s := proto.Size(x.HotelState) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *ListingDimensionInfo_HotelCity: + s := proto.Size(x.HotelCity) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *ListingDimensionInfo_ListingCustomAttribute: + s := proto.Size(x.ListingCustomAttribute) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *ListingDimensionInfo_ProductChannel: + s := proto.Size(x.ProductChannel) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *ListingDimensionInfo_ProductChannelExclusivity: + s := proto.Size(x.ProductChannelExclusivity) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *ListingDimensionInfo_ProductCondition: + s := proto.Size(x.ProductCondition) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *ListingDimensionInfo_ProductOfferId: + s := proto.Size(x.ProductOfferId) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *ListingDimensionInfo_ProductType: + s := proto.Size(x.ProductType) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// Brand of the listing. +type ListingBrandInfo struct { + // String value of the listing brand. + Value *wrappers.StringValue `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListingBrandInfo) Reset() { *m = ListingBrandInfo{} } +func (m *ListingBrandInfo) String() string { return proto.CompactTextString(m) } +func (*ListingBrandInfo) ProtoMessage() {} +func (*ListingBrandInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_criteria_9296a1565f76dc58, []int{8} +} +func (m *ListingBrandInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListingBrandInfo.Unmarshal(m, b) +} +func (m *ListingBrandInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListingBrandInfo.Marshal(b, m, deterministic) +} +func (dst *ListingBrandInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListingBrandInfo.Merge(dst, src) +} +func (m *ListingBrandInfo) XXX_Size() int { + return xxx_messageInfo_ListingBrandInfo.Size(m) +} +func (m *ListingBrandInfo) XXX_DiscardUnknown() { + xxx_messageInfo_ListingBrandInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_ListingBrandInfo proto.InternalMessageInfo + +func (m *ListingBrandInfo) GetValue() *wrappers.StringValue { + if m != nil { + return m.Value + } + return nil +} + +// Advertiser-specific hotel ID. +type HotelIdInfo struct { + // String value of the hotel ID. + Value *wrappers.StringValue `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *HotelIdInfo) Reset() { *m = HotelIdInfo{} } +func (m *HotelIdInfo) String() string { return proto.CompactTextString(m) } +func (*HotelIdInfo) ProtoMessage() {} +func (*HotelIdInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_criteria_9296a1565f76dc58, []int{9} +} +func (m *HotelIdInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HotelIdInfo.Unmarshal(m, b) +} +func (m *HotelIdInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HotelIdInfo.Marshal(b, m, deterministic) +} +func (dst *HotelIdInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_HotelIdInfo.Merge(dst, src) +} +func (m *HotelIdInfo) XXX_Size() int { + return xxx_messageInfo_HotelIdInfo.Size(m) +} +func (m *HotelIdInfo) XXX_DiscardUnknown() { + xxx_messageInfo_HotelIdInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_HotelIdInfo proto.InternalMessageInfo + +func (m *HotelIdInfo) GetValue() *wrappers.StringValue { + if m != nil { + return m.Value + } + return nil +} + +// Class of the hotel as a number of stars 1 to 5. +type HotelClassInfo struct { + // Long value of the hotel class. + Value *wrappers.Int64Value `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *HotelClassInfo) Reset() { *m = HotelClassInfo{} } +func (m *HotelClassInfo) String() string { return proto.CompactTextString(m) } +func (*HotelClassInfo) ProtoMessage() {} +func (*HotelClassInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_criteria_9296a1565f76dc58, []int{10} +} +func (m *HotelClassInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HotelClassInfo.Unmarshal(m, b) +} +func (m *HotelClassInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HotelClassInfo.Marshal(b, m, deterministic) +} +func (dst *HotelClassInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_HotelClassInfo.Merge(dst, src) +} +func (m *HotelClassInfo) XXX_Size() int { + return xxx_messageInfo_HotelClassInfo.Size(m) +} +func (m *HotelClassInfo) XXX_DiscardUnknown() { + xxx_messageInfo_HotelClassInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_HotelClassInfo proto.InternalMessageInfo + +func (m *HotelClassInfo) GetValue() *wrappers.Int64Value { + if m != nil { + return m.Value + } + return nil +} + +// Country or Region the hotel is located in. +type HotelCountryRegionInfo struct { + // The Geo Target Constant resource name. + CountryRegionCriterion *wrappers.StringValue `protobuf:"bytes,1,opt,name=country_region_criterion,json=countryRegionCriterion,proto3" json:"country_region_criterion,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *HotelCountryRegionInfo) Reset() { *m = HotelCountryRegionInfo{} } +func (m *HotelCountryRegionInfo) String() string { return proto.CompactTextString(m) } +func (*HotelCountryRegionInfo) ProtoMessage() {} +func (*HotelCountryRegionInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_criteria_9296a1565f76dc58, []int{11} +} +func (m *HotelCountryRegionInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HotelCountryRegionInfo.Unmarshal(m, b) +} +func (m *HotelCountryRegionInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HotelCountryRegionInfo.Marshal(b, m, deterministic) +} +func (dst *HotelCountryRegionInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_HotelCountryRegionInfo.Merge(dst, src) +} +func (m *HotelCountryRegionInfo) XXX_Size() int { + return xxx_messageInfo_HotelCountryRegionInfo.Size(m) +} +func (m *HotelCountryRegionInfo) XXX_DiscardUnknown() { + xxx_messageInfo_HotelCountryRegionInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_HotelCountryRegionInfo proto.InternalMessageInfo + +func (m *HotelCountryRegionInfo) GetCountryRegionCriterion() *wrappers.StringValue { + if m != nil { + return m.CountryRegionCriterion + } + return nil +} + +// State the hotel is located in. +type HotelStateInfo struct { + // The Geo Target Constant resource name. + StateCriterion *wrappers.StringValue `protobuf:"bytes,1,opt,name=state_criterion,json=stateCriterion,proto3" json:"state_criterion,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *HotelStateInfo) Reset() { *m = HotelStateInfo{} } +func (m *HotelStateInfo) String() string { return proto.CompactTextString(m) } +func (*HotelStateInfo) ProtoMessage() {} +func (*HotelStateInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_criteria_9296a1565f76dc58, []int{12} +} +func (m *HotelStateInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HotelStateInfo.Unmarshal(m, b) +} +func (m *HotelStateInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HotelStateInfo.Marshal(b, m, deterministic) +} +func (dst *HotelStateInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_HotelStateInfo.Merge(dst, src) +} +func (m *HotelStateInfo) XXX_Size() int { + return xxx_messageInfo_HotelStateInfo.Size(m) +} +func (m *HotelStateInfo) XXX_DiscardUnknown() { + xxx_messageInfo_HotelStateInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_HotelStateInfo proto.InternalMessageInfo + +func (m *HotelStateInfo) GetStateCriterion() *wrappers.StringValue { + if m != nil { + return m.StateCriterion + } + return nil +} + +// City the hotel is located in. +type HotelCityInfo struct { + // The Geo Target Constant resource name. + CityCriterion *wrappers.StringValue `protobuf:"bytes,1,opt,name=city_criterion,json=cityCriterion,proto3" json:"city_criterion,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *HotelCityInfo) Reset() { *m = HotelCityInfo{} } +func (m *HotelCityInfo) String() string { return proto.CompactTextString(m) } +func (*HotelCityInfo) ProtoMessage() {} +func (*HotelCityInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_criteria_9296a1565f76dc58, []int{13} +} +func (m *HotelCityInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HotelCityInfo.Unmarshal(m, b) +} +func (m *HotelCityInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HotelCityInfo.Marshal(b, m, deterministic) +} +func (dst *HotelCityInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_HotelCityInfo.Merge(dst, src) +} +func (m *HotelCityInfo) XXX_Size() int { + return xxx_messageInfo_HotelCityInfo.Size(m) +} +func (m *HotelCityInfo) XXX_DiscardUnknown() { + xxx_messageInfo_HotelCityInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_HotelCityInfo proto.InternalMessageInfo + +func (m *HotelCityInfo) GetCityCriterion() *wrappers.StringValue { + if m != nil { + return m.CityCriterion + } + return nil +} + +// Listing custom attribute. +type ListingCustomAttributeInfo struct { + // String value of the listing custom attribute. + Value *wrappers.StringValue `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + // Indicates the index of the custom attribute. + Index enums.ListingCustomAttributeIndexEnum_ListingCustomAttributeIndex `protobuf:"varint,2,opt,name=index,proto3,enum=google.ads.googleads.v0.enums.ListingCustomAttributeIndexEnum_ListingCustomAttributeIndex" json:"index,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListingCustomAttributeInfo) Reset() { *m = ListingCustomAttributeInfo{} } +func (m *ListingCustomAttributeInfo) String() string { return proto.CompactTextString(m) } +func (*ListingCustomAttributeInfo) ProtoMessage() {} +func (*ListingCustomAttributeInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_criteria_9296a1565f76dc58, []int{14} +} +func (m *ListingCustomAttributeInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListingCustomAttributeInfo.Unmarshal(m, b) +} +func (m *ListingCustomAttributeInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListingCustomAttributeInfo.Marshal(b, m, deterministic) +} +func (dst *ListingCustomAttributeInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListingCustomAttributeInfo.Merge(dst, src) +} +func (m *ListingCustomAttributeInfo) XXX_Size() int { + return xxx_messageInfo_ListingCustomAttributeInfo.Size(m) +} +func (m *ListingCustomAttributeInfo) XXX_DiscardUnknown() { + xxx_messageInfo_ListingCustomAttributeInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_ListingCustomAttributeInfo proto.InternalMessageInfo + +func (m *ListingCustomAttributeInfo) GetValue() *wrappers.StringValue { + if m != nil { + return m.Value + } + return nil +} + +func (m *ListingCustomAttributeInfo) GetIndex() enums.ListingCustomAttributeIndexEnum_ListingCustomAttributeIndex { + if m != nil { + return m.Index + } + return enums.ListingCustomAttributeIndexEnum_UNSPECIFIED +} + +// Locality of a product offer. +type ProductChannelInfo struct { + // Value of the locality. + Channel enums.ProductChannelEnum_ProductChannel `protobuf:"varint,1,opt,name=channel,proto3,enum=google.ads.googleads.v0.enums.ProductChannelEnum_ProductChannel" json:"channel,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ProductChannelInfo) Reset() { *m = ProductChannelInfo{} } +func (m *ProductChannelInfo) String() string { return proto.CompactTextString(m) } +func (*ProductChannelInfo) ProtoMessage() {} +func (*ProductChannelInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_criteria_9296a1565f76dc58, []int{15} +} +func (m *ProductChannelInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ProductChannelInfo.Unmarshal(m, b) +} +func (m *ProductChannelInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ProductChannelInfo.Marshal(b, m, deterministic) +} +func (dst *ProductChannelInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProductChannelInfo.Merge(dst, src) +} +func (m *ProductChannelInfo) XXX_Size() int { + return xxx_messageInfo_ProductChannelInfo.Size(m) +} +func (m *ProductChannelInfo) XXX_DiscardUnknown() { + xxx_messageInfo_ProductChannelInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_ProductChannelInfo proto.InternalMessageInfo + +func (m *ProductChannelInfo) GetChannel() enums.ProductChannelEnum_ProductChannel { + if m != nil { + return m.Channel + } + return enums.ProductChannelEnum_UNSPECIFIED +} + +// Availability of a product offer. +type ProductChannelExclusivityInfo struct { + // Value of the availability. + ChannelExclusivity enums.ProductChannelExclusivityEnum_ProductChannelExclusivity `protobuf:"varint,1,opt,name=channel_exclusivity,json=channelExclusivity,proto3,enum=google.ads.googleads.v0.enums.ProductChannelExclusivityEnum_ProductChannelExclusivity" json:"channel_exclusivity,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ProductChannelExclusivityInfo) Reset() { *m = ProductChannelExclusivityInfo{} } +func (m *ProductChannelExclusivityInfo) String() string { return proto.CompactTextString(m) } +func (*ProductChannelExclusivityInfo) ProtoMessage() {} +func (*ProductChannelExclusivityInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_criteria_9296a1565f76dc58, []int{16} +} +func (m *ProductChannelExclusivityInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ProductChannelExclusivityInfo.Unmarshal(m, b) +} +func (m *ProductChannelExclusivityInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ProductChannelExclusivityInfo.Marshal(b, m, deterministic) +} +func (dst *ProductChannelExclusivityInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProductChannelExclusivityInfo.Merge(dst, src) +} +func (m *ProductChannelExclusivityInfo) XXX_Size() int { + return xxx_messageInfo_ProductChannelExclusivityInfo.Size(m) +} +func (m *ProductChannelExclusivityInfo) XXX_DiscardUnknown() { + xxx_messageInfo_ProductChannelExclusivityInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_ProductChannelExclusivityInfo proto.InternalMessageInfo + +func (m *ProductChannelExclusivityInfo) GetChannelExclusivity() enums.ProductChannelExclusivityEnum_ProductChannelExclusivity { + if m != nil { + return m.ChannelExclusivity + } + return enums.ProductChannelExclusivityEnum_UNSPECIFIED +} + +// Condition of a product offer. +type ProductConditionInfo struct { + // Value of the condition. + Condition enums.ProductConditionEnum_ProductCondition `protobuf:"varint,1,opt,name=condition,proto3,enum=google.ads.googleads.v0.enums.ProductConditionEnum_ProductCondition" json:"condition,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ProductConditionInfo) Reset() { *m = ProductConditionInfo{} } +func (m *ProductConditionInfo) String() string { return proto.CompactTextString(m) } +func (*ProductConditionInfo) ProtoMessage() {} +func (*ProductConditionInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_criteria_9296a1565f76dc58, []int{17} +} +func (m *ProductConditionInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ProductConditionInfo.Unmarshal(m, b) +} +func (m *ProductConditionInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ProductConditionInfo.Marshal(b, m, deterministic) +} +func (dst *ProductConditionInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProductConditionInfo.Merge(dst, src) +} +func (m *ProductConditionInfo) XXX_Size() int { + return xxx_messageInfo_ProductConditionInfo.Size(m) +} +func (m *ProductConditionInfo) XXX_DiscardUnknown() { + xxx_messageInfo_ProductConditionInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_ProductConditionInfo proto.InternalMessageInfo + +func (m *ProductConditionInfo) GetCondition() enums.ProductConditionEnum_ProductCondition { + if m != nil { + return m.Condition + } + return enums.ProductConditionEnum_UNSPECIFIED +} + +// Id of a product offer. +type ProductOfferIdInfo struct { + // Value of the id. + Value *wrappers.StringValue `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ProductOfferIdInfo) Reset() { *m = ProductOfferIdInfo{} } +func (m *ProductOfferIdInfo) String() string { return proto.CompactTextString(m) } +func (*ProductOfferIdInfo) ProtoMessage() {} +func (*ProductOfferIdInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_criteria_9296a1565f76dc58, []int{18} +} +func (m *ProductOfferIdInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ProductOfferIdInfo.Unmarshal(m, b) +} +func (m *ProductOfferIdInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ProductOfferIdInfo.Marshal(b, m, deterministic) +} +func (dst *ProductOfferIdInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProductOfferIdInfo.Merge(dst, src) +} +func (m *ProductOfferIdInfo) XXX_Size() int { + return xxx_messageInfo_ProductOfferIdInfo.Size(m) +} +func (m *ProductOfferIdInfo) XXX_DiscardUnknown() { + xxx_messageInfo_ProductOfferIdInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_ProductOfferIdInfo proto.InternalMessageInfo + +func (m *ProductOfferIdInfo) GetValue() *wrappers.StringValue { + if m != nil { + return m.Value + } + return nil +} + +// Type of a product offer. +type ProductTypeInfo struct { + // Value of the type. + Value *wrappers.StringValue `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + // Level of the type. + Level enums.ProductTypeLevelEnum_ProductTypeLevel `protobuf:"varint,2,opt,name=level,proto3,enum=google.ads.googleads.v0.enums.ProductTypeLevelEnum_ProductTypeLevel" json:"level,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ProductTypeInfo) Reset() { *m = ProductTypeInfo{} } +func (m *ProductTypeInfo) String() string { return proto.CompactTextString(m) } +func (*ProductTypeInfo) ProtoMessage() {} +func (*ProductTypeInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_criteria_9296a1565f76dc58, []int{19} +} +func (m *ProductTypeInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ProductTypeInfo.Unmarshal(m, b) +} +func (m *ProductTypeInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ProductTypeInfo.Marshal(b, m, deterministic) +} +func (dst *ProductTypeInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProductTypeInfo.Merge(dst, src) +} +func (m *ProductTypeInfo) XXX_Size() int { + return xxx_messageInfo_ProductTypeInfo.Size(m) +} +func (m *ProductTypeInfo) XXX_DiscardUnknown() { + xxx_messageInfo_ProductTypeInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_ProductTypeInfo proto.InternalMessageInfo + +func (m *ProductTypeInfo) GetValue() *wrappers.StringValue { + if m != nil { + return m.Value + } + return nil +} + +func (m *ProductTypeInfo) GetLevel() enums.ProductTypeLevelEnum_ProductTypeLevel { + if m != nil { + return m.Level + } + return enums.ProductTypeLevelEnum_UNSPECIFIED +} + +// Criterion for hotel date selection (default dates vs. user selected). +type HotelDateSelectionTypeInfo struct { + // Type of the hotel date selection + Type enums.HotelDateSelectionTypeEnum_HotelDateSelectionType `protobuf:"varint,1,opt,name=type,proto3,enum=google.ads.googleads.v0.enums.HotelDateSelectionTypeEnum_HotelDateSelectionType" json:"type,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *HotelDateSelectionTypeInfo) Reset() { *m = HotelDateSelectionTypeInfo{} } +func (m *HotelDateSelectionTypeInfo) String() string { return proto.CompactTextString(m) } +func (*HotelDateSelectionTypeInfo) ProtoMessage() {} +func (*HotelDateSelectionTypeInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_criteria_9296a1565f76dc58, []int{20} +} +func (m *HotelDateSelectionTypeInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HotelDateSelectionTypeInfo.Unmarshal(m, b) +} +func (m *HotelDateSelectionTypeInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HotelDateSelectionTypeInfo.Marshal(b, m, deterministic) +} +func (dst *HotelDateSelectionTypeInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_HotelDateSelectionTypeInfo.Merge(dst, src) +} +func (m *HotelDateSelectionTypeInfo) XXX_Size() int { + return xxx_messageInfo_HotelDateSelectionTypeInfo.Size(m) +} +func (m *HotelDateSelectionTypeInfo) XXX_DiscardUnknown() { + xxx_messageInfo_HotelDateSelectionTypeInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_HotelDateSelectionTypeInfo proto.InternalMessageInfo + +func (m *HotelDateSelectionTypeInfo) GetType() enums.HotelDateSelectionTypeEnum_HotelDateSelectionType { + if m != nil { + return m.Type + } + return enums.HotelDateSelectionTypeEnum_UNSPECIFIED +} + +// Criterion for number of days prior to the stay the booking is being made. +type HotelAdvanceBookingWindowInfo struct { + // Low end of the number of days prior to the stay. + MinDays *wrappers.Int64Value `protobuf:"bytes,1,opt,name=min_days,json=minDays,proto3" json:"min_days,omitempty"` + // High end of the number of days prior to the stay. + MaxDays *wrappers.Int64Value `protobuf:"bytes,2,opt,name=max_days,json=maxDays,proto3" json:"max_days,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *HotelAdvanceBookingWindowInfo) Reset() { *m = HotelAdvanceBookingWindowInfo{} } +func (m *HotelAdvanceBookingWindowInfo) String() string { return proto.CompactTextString(m) } +func (*HotelAdvanceBookingWindowInfo) ProtoMessage() {} +func (*HotelAdvanceBookingWindowInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_criteria_9296a1565f76dc58, []int{21} +} +func (m *HotelAdvanceBookingWindowInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HotelAdvanceBookingWindowInfo.Unmarshal(m, b) +} +func (m *HotelAdvanceBookingWindowInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HotelAdvanceBookingWindowInfo.Marshal(b, m, deterministic) +} +func (dst *HotelAdvanceBookingWindowInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_HotelAdvanceBookingWindowInfo.Merge(dst, src) +} +func (m *HotelAdvanceBookingWindowInfo) XXX_Size() int { + return xxx_messageInfo_HotelAdvanceBookingWindowInfo.Size(m) +} +func (m *HotelAdvanceBookingWindowInfo) XXX_DiscardUnknown() { + xxx_messageInfo_HotelAdvanceBookingWindowInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_HotelAdvanceBookingWindowInfo proto.InternalMessageInfo + +func (m *HotelAdvanceBookingWindowInfo) GetMinDays() *wrappers.Int64Value { + if m != nil { + return m.MinDays + } + return nil +} + +func (m *HotelAdvanceBookingWindowInfo) GetMaxDays() *wrappers.Int64Value { + if m != nil { + return m.MaxDays + } + return nil +} + +// Criterion for length of hotel stay in nights. +type HotelLengthOfStayInfo struct { + // Low end of the number of nights in the stay. + MinNights *wrappers.Int64Value `protobuf:"bytes,1,opt,name=min_nights,json=minNights,proto3" json:"min_nights,omitempty"` + // High end of the number of nights in the stay. + MaxNights *wrappers.Int64Value `protobuf:"bytes,2,opt,name=max_nights,json=maxNights,proto3" json:"max_nights,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *HotelLengthOfStayInfo) Reset() { *m = HotelLengthOfStayInfo{} } +func (m *HotelLengthOfStayInfo) String() string { return proto.CompactTextString(m) } +func (*HotelLengthOfStayInfo) ProtoMessage() {} +func (*HotelLengthOfStayInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_criteria_9296a1565f76dc58, []int{22} +} +func (m *HotelLengthOfStayInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HotelLengthOfStayInfo.Unmarshal(m, b) +} +func (m *HotelLengthOfStayInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HotelLengthOfStayInfo.Marshal(b, m, deterministic) +} +func (dst *HotelLengthOfStayInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_HotelLengthOfStayInfo.Merge(dst, src) +} +func (m *HotelLengthOfStayInfo) XXX_Size() int { + return xxx_messageInfo_HotelLengthOfStayInfo.Size(m) +} +func (m *HotelLengthOfStayInfo) XXX_DiscardUnknown() { + xxx_messageInfo_HotelLengthOfStayInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_HotelLengthOfStayInfo proto.InternalMessageInfo + +func (m *HotelLengthOfStayInfo) GetMinNights() *wrappers.Int64Value { + if m != nil { + return m.MinNights + } + return nil +} + +func (m *HotelLengthOfStayInfo) GetMaxNights() *wrappers.Int64Value { + if m != nil { + return m.MaxNights + } + return nil +} + +// Criterion for day of the week the booking is for. +type HotelCheckInDayInfo struct { + // The day of the week. + DayOfWeek enums.DayOfWeekEnum_DayOfWeek `protobuf:"varint,1,opt,name=day_of_week,json=dayOfWeek,proto3,enum=google.ads.googleads.v0.enums.DayOfWeekEnum_DayOfWeek" json:"day_of_week,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *HotelCheckInDayInfo) Reset() { *m = HotelCheckInDayInfo{} } +func (m *HotelCheckInDayInfo) String() string { return proto.CompactTextString(m) } +func (*HotelCheckInDayInfo) ProtoMessage() {} +func (*HotelCheckInDayInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_criteria_9296a1565f76dc58, []int{23} +} +func (m *HotelCheckInDayInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HotelCheckInDayInfo.Unmarshal(m, b) +} +func (m *HotelCheckInDayInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HotelCheckInDayInfo.Marshal(b, m, deterministic) +} +func (dst *HotelCheckInDayInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_HotelCheckInDayInfo.Merge(dst, src) +} +func (m *HotelCheckInDayInfo) XXX_Size() int { + return xxx_messageInfo_HotelCheckInDayInfo.Size(m) +} +func (m *HotelCheckInDayInfo) XXX_DiscardUnknown() { + xxx_messageInfo_HotelCheckInDayInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_HotelCheckInDayInfo proto.InternalMessageInfo + +func (m *HotelCheckInDayInfo) GetDayOfWeek() enums.DayOfWeekEnum_DayOfWeek { + if m != nil { + return m.DayOfWeek + } + return enums.DayOfWeekEnum_UNSPECIFIED +} + +// Criterion for Interaction Type. +type InteractionTypeInfo struct { + // The interaction type. + Type enums.InteractionTypeEnum_InteractionType `protobuf:"varint,1,opt,name=type,proto3,enum=google.ads.googleads.v0.enums.InteractionTypeEnum_InteractionType" json:"type,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *InteractionTypeInfo) Reset() { *m = InteractionTypeInfo{} } +func (m *InteractionTypeInfo) String() string { return proto.CompactTextString(m) } +func (*InteractionTypeInfo) ProtoMessage() {} +func (*InteractionTypeInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_criteria_9296a1565f76dc58, []int{24} +} +func (m *InteractionTypeInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_InteractionTypeInfo.Unmarshal(m, b) +} +func (m *InteractionTypeInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_InteractionTypeInfo.Marshal(b, m, deterministic) +} +func (dst *InteractionTypeInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_InteractionTypeInfo.Merge(dst, src) +} +func (m *InteractionTypeInfo) XXX_Size() int { + return xxx_messageInfo_InteractionTypeInfo.Size(m) +} +func (m *InteractionTypeInfo) XXX_DiscardUnknown() { + xxx_messageInfo_InteractionTypeInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_InteractionTypeInfo proto.InternalMessageInfo + +func (m *InteractionTypeInfo) GetType() enums.InteractionTypeEnum_InteractionType { + if m != nil { + return m.Type + } + return enums.InteractionTypeEnum_UNSPECIFIED +} + +// Represents an AdSchedule criterion. +// +// AdSchedule is specified as the day of the week and a time interval +// within which ads will be shown. +// +// No more than six AdSchedules can be added for the same day. +type AdScheduleInfo struct { + // Minutes after the start hour at which this schedule starts. + // + // This field is required for CREATE operations and is prohibited on UPDATE + // operations. + StartMinute enums.MinuteOfHourEnum_MinuteOfHour `protobuf:"varint,1,opt,name=start_minute,json=startMinute,proto3,enum=google.ads.googleads.v0.enums.MinuteOfHourEnum_MinuteOfHour" json:"start_minute,omitempty"` + // Minutes after the end hour at which this schedule ends. The schedule is + // exclusive of the end minute. + // + // This field is required for CREATE operations and is prohibited on UPDATE + // operations. + EndMinute enums.MinuteOfHourEnum_MinuteOfHour `protobuf:"varint,2,opt,name=end_minute,json=endMinute,proto3,enum=google.ads.googleads.v0.enums.MinuteOfHourEnum_MinuteOfHour" json:"end_minute,omitempty"` + // Starting hour in 24 hour time. + // This field must be between 0 and 23, inclusive. + // + // This field is required for CREATE operations and is prohibited on UPDATE + // operations. + StartHour *wrappers.Int32Value `protobuf:"bytes,3,opt,name=start_hour,json=startHour,proto3" json:"start_hour,omitempty"` + // Ending hour in 24 hour time; 24 signifies end of the day. + // This field must be between 0 and 24, inclusive. + // + // This field is required for CREATE operations and is prohibited on UPDATE + // operations. + EndHour *wrappers.Int32Value `protobuf:"bytes,4,opt,name=end_hour,json=endHour,proto3" json:"end_hour,omitempty"` + // Day of the week the schedule applies to. + // + // This field is required for CREATE operations and is prohibited on UPDATE + // operations. + DayOfWeek enums.DayOfWeekEnum_DayOfWeek `protobuf:"varint,5,opt,name=day_of_week,json=dayOfWeek,proto3,enum=google.ads.googleads.v0.enums.DayOfWeekEnum_DayOfWeek" json:"day_of_week,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AdScheduleInfo) Reset() { *m = AdScheduleInfo{} } +func (m *AdScheduleInfo) String() string { return proto.CompactTextString(m) } +func (*AdScheduleInfo) ProtoMessage() {} +func (*AdScheduleInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_criteria_9296a1565f76dc58, []int{25} +} +func (m *AdScheduleInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AdScheduleInfo.Unmarshal(m, b) +} +func (m *AdScheduleInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AdScheduleInfo.Marshal(b, m, deterministic) +} +func (dst *AdScheduleInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_AdScheduleInfo.Merge(dst, src) +} +func (m *AdScheduleInfo) XXX_Size() int { + return xxx_messageInfo_AdScheduleInfo.Size(m) +} +func (m *AdScheduleInfo) XXX_DiscardUnknown() { + xxx_messageInfo_AdScheduleInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_AdScheduleInfo proto.InternalMessageInfo + +func (m *AdScheduleInfo) GetStartMinute() enums.MinuteOfHourEnum_MinuteOfHour { + if m != nil { + return m.StartMinute + } + return enums.MinuteOfHourEnum_UNSPECIFIED +} + +func (m *AdScheduleInfo) GetEndMinute() enums.MinuteOfHourEnum_MinuteOfHour { + if m != nil { + return m.EndMinute + } + return enums.MinuteOfHourEnum_UNSPECIFIED +} + +func (m *AdScheduleInfo) GetStartHour() *wrappers.Int32Value { + if m != nil { + return m.StartHour + } + return nil +} + +func (m *AdScheduleInfo) GetEndHour() *wrappers.Int32Value { + if m != nil { + return m.EndHour + } + return nil +} + +func (m *AdScheduleInfo) GetDayOfWeek() enums.DayOfWeekEnum_DayOfWeek { + if m != nil { + return m.DayOfWeek + } + return enums.DayOfWeekEnum_UNSPECIFIED +} + +// An age range criterion. +type AgeRangeInfo struct { + // Type of the age range. + Type enums.AgeRangeTypeEnum_AgeRangeType `protobuf:"varint,1,opt,name=type,proto3,enum=google.ads.googleads.v0.enums.AgeRangeTypeEnum_AgeRangeType" json:"type,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AgeRangeInfo) Reset() { *m = AgeRangeInfo{} } +func (m *AgeRangeInfo) String() string { return proto.CompactTextString(m) } +func (*AgeRangeInfo) ProtoMessage() {} +func (*AgeRangeInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_criteria_9296a1565f76dc58, []int{26} +} +func (m *AgeRangeInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AgeRangeInfo.Unmarshal(m, b) +} +func (m *AgeRangeInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AgeRangeInfo.Marshal(b, m, deterministic) +} +func (dst *AgeRangeInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_AgeRangeInfo.Merge(dst, src) +} +func (m *AgeRangeInfo) XXX_Size() int { + return xxx_messageInfo_AgeRangeInfo.Size(m) +} +func (m *AgeRangeInfo) XXX_DiscardUnknown() { + xxx_messageInfo_AgeRangeInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_AgeRangeInfo proto.InternalMessageInfo + +func (m *AgeRangeInfo) GetType() enums.AgeRangeTypeEnum_AgeRangeType { + if m != nil { + return m.Type + } + return enums.AgeRangeTypeEnum_UNSPECIFIED +} + +// A gender criterion. +type GenderInfo struct { + // Type of the gender. + Type enums.GenderTypeEnum_GenderType `protobuf:"varint,1,opt,name=type,proto3,enum=google.ads.googleads.v0.enums.GenderTypeEnum_GenderType" json:"type,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GenderInfo) Reset() { *m = GenderInfo{} } +func (m *GenderInfo) String() string { return proto.CompactTextString(m) } +func (*GenderInfo) ProtoMessage() {} +func (*GenderInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_criteria_9296a1565f76dc58, []int{27} +} +func (m *GenderInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GenderInfo.Unmarshal(m, b) +} +func (m *GenderInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GenderInfo.Marshal(b, m, deterministic) +} +func (dst *GenderInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_GenderInfo.Merge(dst, src) +} +func (m *GenderInfo) XXX_Size() int { + return xxx_messageInfo_GenderInfo.Size(m) +} +func (m *GenderInfo) XXX_DiscardUnknown() { + xxx_messageInfo_GenderInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_GenderInfo proto.InternalMessageInfo + +func (m *GenderInfo) GetType() enums.GenderTypeEnum_GenderType { + if m != nil { + return m.Type + } + return enums.GenderTypeEnum_UNSPECIFIED +} + +// An income range criterion. +type IncomeRangeInfo struct { + // Type of the income range. + Type enums.IncomeRangeTypeEnum_IncomeRangeType `protobuf:"varint,1,opt,name=type,proto3,enum=google.ads.googleads.v0.enums.IncomeRangeTypeEnum_IncomeRangeType" json:"type,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *IncomeRangeInfo) Reset() { *m = IncomeRangeInfo{} } +func (m *IncomeRangeInfo) String() string { return proto.CompactTextString(m) } +func (*IncomeRangeInfo) ProtoMessage() {} +func (*IncomeRangeInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_criteria_9296a1565f76dc58, []int{28} +} +func (m *IncomeRangeInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_IncomeRangeInfo.Unmarshal(m, b) +} +func (m *IncomeRangeInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_IncomeRangeInfo.Marshal(b, m, deterministic) +} +func (dst *IncomeRangeInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_IncomeRangeInfo.Merge(dst, src) +} +func (m *IncomeRangeInfo) XXX_Size() int { + return xxx_messageInfo_IncomeRangeInfo.Size(m) +} +func (m *IncomeRangeInfo) XXX_DiscardUnknown() { + xxx_messageInfo_IncomeRangeInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_IncomeRangeInfo proto.InternalMessageInfo + +func (m *IncomeRangeInfo) GetType() enums.IncomeRangeTypeEnum_IncomeRangeType { + if m != nil { + return m.Type + } + return enums.IncomeRangeTypeEnum_UNSPECIFIED +} + +// A parental status criterion. +type ParentalStatusInfo struct { + // Type of the parental status. + Type enums.ParentalStatusTypeEnum_ParentalStatusType `protobuf:"varint,1,opt,name=type,proto3,enum=google.ads.googleads.v0.enums.ParentalStatusTypeEnum_ParentalStatusType" json:"type,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ParentalStatusInfo) Reset() { *m = ParentalStatusInfo{} } +func (m *ParentalStatusInfo) String() string { return proto.CompactTextString(m) } +func (*ParentalStatusInfo) ProtoMessage() {} +func (*ParentalStatusInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_criteria_9296a1565f76dc58, []int{29} +} +func (m *ParentalStatusInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ParentalStatusInfo.Unmarshal(m, b) +} +func (m *ParentalStatusInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ParentalStatusInfo.Marshal(b, m, deterministic) +} +func (dst *ParentalStatusInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_ParentalStatusInfo.Merge(dst, src) +} +func (m *ParentalStatusInfo) XXX_Size() int { + return xxx_messageInfo_ParentalStatusInfo.Size(m) +} +func (m *ParentalStatusInfo) XXX_DiscardUnknown() { + xxx_messageInfo_ParentalStatusInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_ParentalStatusInfo proto.InternalMessageInfo + +func (m *ParentalStatusInfo) GetType() enums.ParentalStatusTypeEnum_ParentalStatusType { + if m != nil { + return m.Type + } + return enums.ParentalStatusTypeEnum_UNSPECIFIED +} + +// A YouTube Video criterion. +type YouTubeVideoInfo struct { + // YouTube video id as it appears on the YouTube watch page. + VideoId *wrappers.StringValue `protobuf:"bytes,1,opt,name=video_id,json=videoId,proto3" json:"video_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *YouTubeVideoInfo) Reset() { *m = YouTubeVideoInfo{} } +func (m *YouTubeVideoInfo) String() string { return proto.CompactTextString(m) } +func (*YouTubeVideoInfo) ProtoMessage() {} +func (*YouTubeVideoInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_criteria_9296a1565f76dc58, []int{30} +} +func (m *YouTubeVideoInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_YouTubeVideoInfo.Unmarshal(m, b) +} +func (m *YouTubeVideoInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_YouTubeVideoInfo.Marshal(b, m, deterministic) +} +func (dst *YouTubeVideoInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_YouTubeVideoInfo.Merge(dst, src) +} +func (m *YouTubeVideoInfo) XXX_Size() int { + return xxx_messageInfo_YouTubeVideoInfo.Size(m) +} +func (m *YouTubeVideoInfo) XXX_DiscardUnknown() { + xxx_messageInfo_YouTubeVideoInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_YouTubeVideoInfo proto.InternalMessageInfo + +func (m *YouTubeVideoInfo) GetVideoId() *wrappers.StringValue { + if m != nil { + return m.VideoId + } + return nil +} + +// A YouTube Channel criterion. +type YouTubeChannelInfo struct { + // The YouTube uploader channel id or the channel code of a YouTube channel. + ChannelId *wrappers.StringValue `protobuf:"bytes,1,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *YouTubeChannelInfo) Reset() { *m = YouTubeChannelInfo{} } +func (m *YouTubeChannelInfo) String() string { return proto.CompactTextString(m) } +func (*YouTubeChannelInfo) ProtoMessage() {} +func (*YouTubeChannelInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_criteria_9296a1565f76dc58, []int{31} +} +func (m *YouTubeChannelInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_YouTubeChannelInfo.Unmarshal(m, b) +} +func (m *YouTubeChannelInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_YouTubeChannelInfo.Marshal(b, m, deterministic) +} +func (dst *YouTubeChannelInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_YouTubeChannelInfo.Merge(dst, src) +} +func (m *YouTubeChannelInfo) XXX_Size() int { + return xxx_messageInfo_YouTubeChannelInfo.Size(m) +} +func (m *YouTubeChannelInfo) XXX_DiscardUnknown() { + xxx_messageInfo_YouTubeChannelInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_YouTubeChannelInfo proto.InternalMessageInfo + +func (m *YouTubeChannelInfo) GetChannelId() *wrappers.StringValue { + if m != nil { + return m.ChannelId + } + return nil +} + +// A User List criterion. Represents a user list that is defined by the +// advertiser to be targeted. +type UserListInfo struct { + // The User List resource name. + UserList *wrappers.StringValue `protobuf:"bytes,1,opt,name=user_list,json=userList,proto3" json:"user_list,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UserListInfo) Reset() { *m = UserListInfo{} } +func (m *UserListInfo) String() string { return proto.CompactTextString(m) } +func (*UserListInfo) ProtoMessage() {} +func (*UserListInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_criteria_9296a1565f76dc58, []int{32} +} +func (m *UserListInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserListInfo.Unmarshal(m, b) +} +func (m *UserListInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserListInfo.Marshal(b, m, deterministic) +} +func (dst *UserListInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserListInfo.Merge(dst, src) +} +func (m *UserListInfo) XXX_Size() int { + return xxx_messageInfo_UserListInfo.Size(m) +} +func (m *UserListInfo) XXX_DiscardUnknown() { + xxx_messageInfo_UserListInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_UserListInfo proto.InternalMessageInfo + +func (m *UserListInfo) GetUserList() *wrappers.StringValue { + if m != nil { + return m.UserList + } + return nil +} + +// A Proximity criterion. The geo point and radius determine what geographical +// area is included. The address is a description of the geo point that does +// not affect ad serving. +// +// There are two ways to create a proximity. First, by setting an address +// and radius. The geo point will be automatically computed. Second, by +// setting a geo point and radius. The address is an optional label that won't +// be validated. +type ProximityInfo struct { + // Latitude and longitude. + GeoPoint *GeoPointInfo `protobuf:"bytes,1,opt,name=geo_point,json=geoPoint,proto3" json:"geo_point,omitempty"` + // The radius of the proximity. + Radius *wrappers.DoubleValue `protobuf:"bytes,2,opt,name=radius,proto3" json:"radius,omitempty"` + // The unit of measurement of the radius. Default is KILOMETERS. + RadiusUnits enums.ProximityRadiusUnitsEnum_ProximityRadiusUnits `protobuf:"varint,3,opt,name=radius_units,json=radiusUnits,proto3,enum=google.ads.googleads.v0.enums.ProximityRadiusUnitsEnum_ProximityRadiusUnits" json:"radius_units,omitempty"` + // Full address. + Address *AddressInfo `protobuf:"bytes,4,opt,name=address,proto3" json:"address,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ProximityInfo) Reset() { *m = ProximityInfo{} } +func (m *ProximityInfo) String() string { return proto.CompactTextString(m) } +func (*ProximityInfo) ProtoMessage() {} +func (*ProximityInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_criteria_9296a1565f76dc58, []int{33} +} +func (m *ProximityInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ProximityInfo.Unmarshal(m, b) +} +func (m *ProximityInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ProximityInfo.Marshal(b, m, deterministic) +} +func (dst *ProximityInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProximityInfo.Merge(dst, src) +} +func (m *ProximityInfo) XXX_Size() int { + return xxx_messageInfo_ProximityInfo.Size(m) +} +func (m *ProximityInfo) XXX_DiscardUnknown() { + xxx_messageInfo_ProximityInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_ProximityInfo proto.InternalMessageInfo + +func (m *ProximityInfo) GetGeoPoint() *GeoPointInfo { + if m != nil { + return m.GeoPoint + } + return nil +} + +func (m *ProximityInfo) GetRadius() *wrappers.DoubleValue { + if m != nil { + return m.Radius + } + return nil +} + +func (m *ProximityInfo) GetRadiusUnits() enums.ProximityRadiusUnitsEnum_ProximityRadiusUnits { + if m != nil { + return m.RadiusUnits + } + return enums.ProximityRadiusUnitsEnum_UNSPECIFIED +} + +func (m *ProximityInfo) GetAddress() *AddressInfo { + if m != nil { + return m.Address + } + return nil +} + +// Geo point for proximity criterion. +type GeoPointInfo struct { + // Micro degrees for the longitude. + LongitudeInMicroDegrees *wrappers.Int32Value `protobuf:"bytes,1,opt,name=longitude_in_micro_degrees,json=longitudeInMicroDegrees,proto3" json:"longitude_in_micro_degrees,omitempty"` + // Micro degrees for the latitude. + LatitudeInMicroDegrees *wrappers.Int32Value `protobuf:"bytes,2,opt,name=latitude_in_micro_degrees,json=latitudeInMicroDegrees,proto3" json:"latitude_in_micro_degrees,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GeoPointInfo) Reset() { *m = GeoPointInfo{} } +func (m *GeoPointInfo) String() string { return proto.CompactTextString(m) } +func (*GeoPointInfo) ProtoMessage() {} +func (*GeoPointInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_criteria_9296a1565f76dc58, []int{34} +} +func (m *GeoPointInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GeoPointInfo.Unmarshal(m, b) +} +func (m *GeoPointInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GeoPointInfo.Marshal(b, m, deterministic) +} +func (dst *GeoPointInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_GeoPointInfo.Merge(dst, src) +} +func (m *GeoPointInfo) XXX_Size() int { + return xxx_messageInfo_GeoPointInfo.Size(m) +} +func (m *GeoPointInfo) XXX_DiscardUnknown() { + xxx_messageInfo_GeoPointInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_GeoPointInfo proto.InternalMessageInfo + +func (m *GeoPointInfo) GetLongitudeInMicroDegrees() *wrappers.Int32Value { + if m != nil { + return m.LongitudeInMicroDegrees + } + return nil +} + +func (m *GeoPointInfo) GetLatitudeInMicroDegrees() *wrappers.Int32Value { + if m != nil { + return m.LatitudeInMicroDegrees + } + return nil +} + +// Address for proximity criterion. +type AddressInfo struct { + // Postal code. + PostalCode *wrappers.StringValue `protobuf:"bytes,1,opt,name=postal_code,json=postalCode,proto3" json:"postal_code,omitempty"` + // Province or state code. + ProvinceCode *wrappers.StringValue `protobuf:"bytes,2,opt,name=province_code,json=provinceCode,proto3" json:"province_code,omitempty"` + // Country code. + CountryCode *wrappers.StringValue `protobuf:"bytes,3,opt,name=country_code,json=countryCode,proto3" json:"country_code,omitempty"` + // Province or state name. + ProvinceName *wrappers.StringValue `protobuf:"bytes,4,opt,name=province_name,json=provinceName,proto3" json:"province_name,omitempty"` + // Street address line 1. + StreetAddress *wrappers.StringValue `protobuf:"bytes,5,opt,name=street_address,json=streetAddress,proto3" json:"street_address,omitempty"` + // Street address line 2. This field is write-only. It is only used for + // calculating the longitude and latitude of an address when geo_point is + // empty. + StreetAddress2 *wrappers.StringValue `protobuf:"bytes,6,opt,name=street_address2,json=streetAddress2,proto3" json:"street_address2,omitempty"` + // Name of the city. + CityName *wrappers.StringValue `protobuf:"bytes,7,opt,name=city_name,json=cityName,proto3" json:"city_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AddressInfo) Reset() { *m = AddressInfo{} } +func (m *AddressInfo) String() string { return proto.CompactTextString(m) } +func (*AddressInfo) ProtoMessage() {} +func (*AddressInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_criteria_9296a1565f76dc58, []int{35} +} +func (m *AddressInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AddressInfo.Unmarshal(m, b) +} +func (m *AddressInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AddressInfo.Marshal(b, m, deterministic) +} +func (dst *AddressInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_AddressInfo.Merge(dst, src) +} +func (m *AddressInfo) XXX_Size() int { + return xxx_messageInfo_AddressInfo.Size(m) +} +func (m *AddressInfo) XXX_DiscardUnknown() { + xxx_messageInfo_AddressInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_AddressInfo proto.InternalMessageInfo + +func (m *AddressInfo) GetPostalCode() *wrappers.StringValue { + if m != nil { + return m.PostalCode + } + return nil +} + +func (m *AddressInfo) GetProvinceCode() *wrappers.StringValue { + if m != nil { + return m.ProvinceCode + } + return nil +} + +func (m *AddressInfo) GetCountryCode() *wrappers.StringValue { + if m != nil { + return m.CountryCode + } + return nil +} + +func (m *AddressInfo) GetProvinceName() *wrappers.StringValue { + if m != nil { + return m.ProvinceName + } + return nil +} + +func (m *AddressInfo) GetStreetAddress() *wrappers.StringValue { + if m != nil { + return m.StreetAddress + } + return nil +} + +func (m *AddressInfo) GetStreetAddress2() *wrappers.StringValue { + if m != nil { + return m.StreetAddress2 + } + return nil +} + +func (m *AddressInfo) GetCityName() *wrappers.StringValue { + if m != nil { + return m.CityName + } + return nil +} + +// A topic criterion. Use topics to target or exclude placements in the +// Google Display Network based on the category into which the placement falls +// (for example, "Pets & Animals/Pets/Dogs"). +type TopicInfo struct { + // The Topic Constant resource name. + TopicConstant *wrappers.StringValue `protobuf:"bytes,1,opt,name=topic_constant,json=topicConstant,proto3" json:"topic_constant,omitempty"` + // The category to target or exclude. Each subsequent element in the array + // describes a more specific sub-category. For example, + // "Pets & Animals", "Pets", "Dogs" represents the "Pets & Animals/Pets/Dogs" + // category. + Path []*wrappers.StringValue `protobuf:"bytes,2,rep,name=path,proto3" json:"path,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TopicInfo) Reset() { *m = TopicInfo{} } +func (m *TopicInfo) String() string { return proto.CompactTextString(m) } +func (*TopicInfo) ProtoMessage() {} +func (*TopicInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_criteria_9296a1565f76dc58, []int{36} +} +func (m *TopicInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TopicInfo.Unmarshal(m, b) +} +func (m *TopicInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TopicInfo.Marshal(b, m, deterministic) +} +func (dst *TopicInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_TopicInfo.Merge(dst, src) +} +func (m *TopicInfo) XXX_Size() int { + return xxx_messageInfo_TopicInfo.Size(m) +} +func (m *TopicInfo) XXX_DiscardUnknown() { + xxx_messageInfo_TopicInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_TopicInfo proto.InternalMessageInfo + +func (m *TopicInfo) GetTopicConstant() *wrappers.StringValue { + if m != nil { + return m.TopicConstant + } + return nil +} + +func (m *TopicInfo) GetPath() []*wrappers.StringValue { + if m != nil { + return m.Path + } + return nil +} + +// A language criterion. +type LanguageInfo struct { + // The language constant resource name. + LanguageConstant *wrappers.StringValue `protobuf:"bytes,1,opt,name=language_constant,json=languageConstant,proto3" json:"language_constant,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *LanguageInfo) Reset() { *m = LanguageInfo{} } +func (m *LanguageInfo) String() string { return proto.CompactTextString(m) } +func (*LanguageInfo) ProtoMessage() {} +func (*LanguageInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_criteria_9296a1565f76dc58, []int{37} +} +func (m *LanguageInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_LanguageInfo.Unmarshal(m, b) +} +func (m *LanguageInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_LanguageInfo.Marshal(b, m, deterministic) +} +func (dst *LanguageInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_LanguageInfo.Merge(dst, src) +} +func (m *LanguageInfo) XXX_Size() int { + return xxx_messageInfo_LanguageInfo.Size(m) +} +func (m *LanguageInfo) XXX_DiscardUnknown() { + xxx_messageInfo_LanguageInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_LanguageInfo proto.InternalMessageInfo + +func (m *LanguageInfo) GetLanguageConstant() *wrappers.StringValue { + if m != nil { + return m.LanguageConstant + } + return nil +} + +// An IpBlock criterion used for IP exclusions. We allow: +// - IPv4 and IPv6 addresses +// - individual addresses (192.168.0.1) +// - masks for individual addresses (192.168.0.1/32) +// - masks for Class C networks (192.168.0.1/24) +type IpBlockInfo struct { + // The IP address of this IP block. + IpAddress *wrappers.StringValue `protobuf:"bytes,1,opt,name=ip_address,json=ipAddress,proto3" json:"ip_address,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *IpBlockInfo) Reset() { *m = IpBlockInfo{} } +func (m *IpBlockInfo) String() string { return proto.CompactTextString(m) } +func (*IpBlockInfo) ProtoMessage() {} +func (*IpBlockInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_criteria_9296a1565f76dc58, []int{38} +} +func (m *IpBlockInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_IpBlockInfo.Unmarshal(m, b) +} +func (m *IpBlockInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_IpBlockInfo.Marshal(b, m, deterministic) +} +func (dst *IpBlockInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_IpBlockInfo.Merge(dst, src) +} +func (m *IpBlockInfo) XXX_Size() int { + return xxx_messageInfo_IpBlockInfo.Size(m) +} +func (m *IpBlockInfo) XXX_DiscardUnknown() { + xxx_messageInfo_IpBlockInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_IpBlockInfo proto.InternalMessageInfo + +func (m *IpBlockInfo) GetIpAddress() *wrappers.StringValue { + if m != nil { + return m.IpAddress + } + return nil +} + +// Content Label for category exclusion. +type ContentLabelInfo struct { + // Content label type, required for CREATE operations. + Type enums.ContentLabelTypeEnum_ContentLabelType `protobuf:"varint,1,opt,name=type,proto3,enum=google.ads.googleads.v0.enums.ContentLabelTypeEnum_ContentLabelType" json:"type,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ContentLabelInfo) Reset() { *m = ContentLabelInfo{} } +func (m *ContentLabelInfo) String() string { return proto.CompactTextString(m) } +func (*ContentLabelInfo) ProtoMessage() {} +func (*ContentLabelInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_criteria_9296a1565f76dc58, []int{39} +} +func (m *ContentLabelInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ContentLabelInfo.Unmarshal(m, b) +} +func (m *ContentLabelInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ContentLabelInfo.Marshal(b, m, deterministic) +} +func (dst *ContentLabelInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_ContentLabelInfo.Merge(dst, src) +} +func (m *ContentLabelInfo) XXX_Size() int { + return xxx_messageInfo_ContentLabelInfo.Size(m) +} +func (m *ContentLabelInfo) XXX_DiscardUnknown() { + xxx_messageInfo_ContentLabelInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_ContentLabelInfo proto.InternalMessageInfo + +func (m *ContentLabelInfo) GetType() enums.ContentLabelTypeEnum_ContentLabelType { + if m != nil { + return m.Type + } + return enums.ContentLabelTypeEnum_UNSPECIFIED +} + +// Represents a Carrier Criterion. +type CarrierInfo struct { + // The Carrier constant resource name. + CarrierConstant *wrappers.StringValue `protobuf:"bytes,1,opt,name=carrier_constant,json=carrierConstant,proto3" json:"carrier_constant,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CarrierInfo) Reset() { *m = CarrierInfo{} } +func (m *CarrierInfo) String() string { return proto.CompactTextString(m) } +func (*CarrierInfo) ProtoMessage() {} +func (*CarrierInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_criteria_9296a1565f76dc58, []int{40} +} +func (m *CarrierInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CarrierInfo.Unmarshal(m, b) +} +func (m *CarrierInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CarrierInfo.Marshal(b, m, deterministic) +} +func (dst *CarrierInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_CarrierInfo.Merge(dst, src) +} +func (m *CarrierInfo) XXX_Size() int { + return xxx_messageInfo_CarrierInfo.Size(m) +} +func (m *CarrierInfo) XXX_DiscardUnknown() { + xxx_messageInfo_CarrierInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_CarrierInfo proto.InternalMessageInfo + +func (m *CarrierInfo) GetCarrierConstant() *wrappers.StringValue { + if m != nil { + return m.CarrierConstant + } + return nil +} + +// Represents a particular interest-based topic to be targeted. +type UserInterestInfo struct { + // The UserInterest resource name. + UserInterestCategory *wrappers.StringValue `protobuf:"bytes,1,opt,name=user_interest_category,json=userInterestCategory,proto3" json:"user_interest_category,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UserInterestInfo) Reset() { *m = UserInterestInfo{} } +func (m *UserInterestInfo) String() string { return proto.CompactTextString(m) } +func (*UserInterestInfo) ProtoMessage() {} +func (*UserInterestInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_criteria_9296a1565f76dc58, []int{41} +} +func (m *UserInterestInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserInterestInfo.Unmarshal(m, b) +} +func (m *UserInterestInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserInterestInfo.Marshal(b, m, deterministic) +} +func (dst *UserInterestInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserInterestInfo.Merge(dst, src) +} +func (m *UserInterestInfo) XXX_Size() int { + return xxx_messageInfo_UserInterestInfo.Size(m) +} +func (m *UserInterestInfo) XXX_DiscardUnknown() { + xxx_messageInfo_UserInterestInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_UserInterestInfo proto.InternalMessageInfo + +func (m *UserInterestInfo) GetUserInterestCategory() *wrappers.StringValue { + if m != nil { + return m.UserInterestCategory + } + return nil +} + +func init() { + proto.RegisterType((*KeywordInfo)(nil), "google.ads.googleads.v0.common.KeywordInfo") + proto.RegisterType((*PlacementInfo)(nil), "google.ads.googleads.v0.common.PlacementInfo") + proto.RegisterType((*LocationInfo)(nil), "google.ads.googleads.v0.common.LocationInfo") + proto.RegisterType((*DeviceInfo)(nil), "google.ads.googleads.v0.common.DeviceInfo") + proto.RegisterType((*PreferredContentInfo)(nil), "google.ads.googleads.v0.common.PreferredContentInfo") + proto.RegisterType((*ListingGroupInfo)(nil), "google.ads.googleads.v0.common.ListingGroupInfo") + proto.RegisterType((*ListingScopeInfo)(nil), "google.ads.googleads.v0.common.ListingScopeInfo") + proto.RegisterType((*ListingDimensionInfo)(nil), "google.ads.googleads.v0.common.ListingDimensionInfo") + proto.RegisterType((*ListingBrandInfo)(nil), "google.ads.googleads.v0.common.ListingBrandInfo") + proto.RegisterType((*HotelIdInfo)(nil), "google.ads.googleads.v0.common.HotelIdInfo") + proto.RegisterType((*HotelClassInfo)(nil), "google.ads.googleads.v0.common.HotelClassInfo") + proto.RegisterType((*HotelCountryRegionInfo)(nil), "google.ads.googleads.v0.common.HotelCountryRegionInfo") + proto.RegisterType((*HotelStateInfo)(nil), "google.ads.googleads.v0.common.HotelStateInfo") + proto.RegisterType((*HotelCityInfo)(nil), "google.ads.googleads.v0.common.HotelCityInfo") + proto.RegisterType((*ListingCustomAttributeInfo)(nil), "google.ads.googleads.v0.common.ListingCustomAttributeInfo") + proto.RegisterType((*ProductChannelInfo)(nil), "google.ads.googleads.v0.common.ProductChannelInfo") + proto.RegisterType((*ProductChannelExclusivityInfo)(nil), "google.ads.googleads.v0.common.ProductChannelExclusivityInfo") + proto.RegisterType((*ProductConditionInfo)(nil), "google.ads.googleads.v0.common.ProductConditionInfo") + proto.RegisterType((*ProductOfferIdInfo)(nil), "google.ads.googleads.v0.common.ProductOfferIdInfo") + proto.RegisterType((*ProductTypeInfo)(nil), "google.ads.googleads.v0.common.ProductTypeInfo") + proto.RegisterType((*HotelDateSelectionTypeInfo)(nil), "google.ads.googleads.v0.common.HotelDateSelectionTypeInfo") + proto.RegisterType((*HotelAdvanceBookingWindowInfo)(nil), "google.ads.googleads.v0.common.HotelAdvanceBookingWindowInfo") + proto.RegisterType((*HotelLengthOfStayInfo)(nil), "google.ads.googleads.v0.common.HotelLengthOfStayInfo") + proto.RegisterType((*HotelCheckInDayInfo)(nil), "google.ads.googleads.v0.common.HotelCheckInDayInfo") + proto.RegisterType((*InteractionTypeInfo)(nil), "google.ads.googleads.v0.common.InteractionTypeInfo") + proto.RegisterType((*AdScheduleInfo)(nil), "google.ads.googleads.v0.common.AdScheduleInfo") + proto.RegisterType((*AgeRangeInfo)(nil), "google.ads.googleads.v0.common.AgeRangeInfo") + proto.RegisterType((*GenderInfo)(nil), "google.ads.googleads.v0.common.GenderInfo") + proto.RegisterType((*IncomeRangeInfo)(nil), "google.ads.googleads.v0.common.IncomeRangeInfo") + proto.RegisterType((*ParentalStatusInfo)(nil), "google.ads.googleads.v0.common.ParentalStatusInfo") + proto.RegisterType((*YouTubeVideoInfo)(nil), "google.ads.googleads.v0.common.YouTubeVideoInfo") + proto.RegisterType((*YouTubeChannelInfo)(nil), "google.ads.googleads.v0.common.YouTubeChannelInfo") + proto.RegisterType((*UserListInfo)(nil), "google.ads.googleads.v0.common.UserListInfo") + proto.RegisterType((*ProximityInfo)(nil), "google.ads.googleads.v0.common.ProximityInfo") + proto.RegisterType((*GeoPointInfo)(nil), "google.ads.googleads.v0.common.GeoPointInfo") + proto.RegisterType((*AddressInfo)(nil), "google.ads.googleads.v0.common.AddressInfo") + proto.RegisterType((*TopicInfo)(nil), "google.ads.googleads.v0.common.TopicInfo") + proto.RegisterType((*LanguageInfo)(nil), "google.ads.googleads.v0.common.LanguageInfo") + proto.RegisterType((*IpBlockInfo)(nil), "google.ads.googleads.v0.common.IpBlockInfo") + proto.RegisterType((*ContentLabelInfo)(nil), "google.ads.googleads.v0.common.ContentLabelInfo") + proto.RegisterType((*CarrierInfo)(nil), "google.ads.googleads.v0.common.CarrierInfo") + proto.RegisterType((*UserInterestInfo)(nil), "google.ads.googleads.v0.common.UserInterestInfo") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/common/criteria.proto", fileDescriptor_criteria_9296a1565f76dc58) +} + +var fileDescriptor_criteria_9296a1565f76dc58 = []byte{ + // 2205 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x59, 0x4f, 0x73, 0x1b, 0x49, + 0x15, 0x47, 0x72, 0xbc, 0xb6, 0x9e, 0x64, 0xc7, 0x99, 0x04, 0xa3, 0x64, 0xd9, 0xad, 0xd4, 0x9c, + 0xb6, 0x80, 0x95, 0x8d, 0x13, 0xc2, 0x92, 0x25, 0x15, 0x64, 0x39, 0xd8, 0x62, 0x9d, 0xc4, 0x2b, + 0x7b, 0x9d, 0xdd, 0x60, 0x98, 0x6d, 0xcf, 0xb4, 0x46, 0x4d, 0x46, 0xdd, 0x53, 0x3d, 0x3d, 0x8e, + 0xc5, 0x85, 0x2a, 0x2e, 0x1c, 0xb9, 0xc3, 0x09, 0x8a, 0x0b, 0x7c, 0x0a, 0x0a, 0x2e, 0x14, 0x1f, + 0x81, 0x4f, 0x43, 0xf5, 0xbf, 0xd1, 0xc8, 0x92, 0x35, 0xa3, 0xd4, 0x9e, 0xac, 0x79, 0xf3, 0x7e, + 0xbf, 0xf7, 0xfa, 0xcf, 0xfc, 0x5e, 0xf7, 0x33, 0x7c, 0x1c, 0x32, 0x16, 0x46, 0x78, 0x0b, 0x05, + 0xc9, 0x96, 0xfe, 0x29, 0x7f, 0x5d, 0x6c, 0x6f, 0xf9, 0x6c, 0x38, 0x64, 0x74, 0xcb, 0xe7, 0x44, + 0x60, 0x4e, 0x50, 0x2b, 0xe6, 0x4c, 0x30, 0xe7, 0x43, 0xed, 0xd3, 0x42, 0x41, 0xd2, 0xca, 0xdc, + 0x5b, 0x17, 0xdb, 0x2d, 0xed, 0x7e, 0x6f, 0xe7, 0x3a, 0x3a, 0x4c, 0xd3, 0x61, 0xb2, 0x85, 0x42, + 0xec, 0x71, 0x44, 0x43, 0xec, 0x89, 0x51, 0x8c, 0x35, 0xe7, 0xbd, 0x47, 0xf3, 0x31, 0x3e, 0xa3, + 0x02, 0x53, 0xe1, 0x45, 0xe8, 0x1c, 0x47, 0x79, 0xdc, 0xd6, 0x7c, 0x5c, 0x80, 0x46, 0x1e, 0xeb, + 0x7b, 0x6f, 0x31, 0x7e, 0x63, 0x00, 0xdf, 0x2b, 0x00, 0xe0, 0x0b, 0xe2, 0x97, 0x24, 0x0f, 0x31, + 0x0d, 0x30, 0xcf, 0x67, 0xf3, 0x64, 0x3e, 0x60, 0xc0, 0x04, 0x8e, 0xbc, 0x00, 0x09, 0xec, 0x25, + 0x38, 0xc2, 0xbe, 0x20, 0x8c, 0xe6, 0xe1, 0x3f, 0x9a, 0x0f, 0x27, 0xd4, 0x67, 0xc3, 0x19, 0x73, + 0xf7, 0xb0, 0x08, 0x26, 0x30, 0x47, 0x53, 0xc1, 0x0a, 0x66, 0xfc, 0x0d, 0x1e, 0xbd, 0x65, 0x3c, + 0xf0, 0x86, 0x48, 0xf8, 0x83, 0x3c, 0x6e, 0x77, 0x3e, 0x2e, 0x22, 0x89, 0x20, 0x34, 0xf4, 0xfc, + 0x34, 0x11, 0x6c, 0xe8, 0x21, 0x21, 0x38, 0x39, 0x4f, 0x05, 0xf6, 0x08, 0x0d, 0xf0, 0x65, 0xb9, + 0xd8, 0x96, 0x23, 0xe4, 0x2c, 0x8d, 0xf3, 0xb1, 0x0b, 0x76, 0xd6, 0x90, 0x50, 0x19, 0x89, 0xf5, + 0xbd, 0x01, 0x4b, 0xb9, 0xc1, 0x7c, 0x32, 0x1f, 0x13, 0x23, 0x8e, 0xa9, 0x40, 0x91, 0x97, 0x08, + 0x24, 0xd2, 0x24, 0x1f, 0xed, 0x71, 0x01, 0x92, 0xe3, 0x3e, 0xe6, 0x1c, 0x07, 0x9e, 0xdd, 0x9d, + 0x39, 0xec, 0x83, 0x22, 0x2c, 0x0b, 0x52, 0x5f, 0x78, 0xfe, 0x00, 0x51, 0x8a, 0x23, 0x03, 0x7a, + 0xba, 0x10, 0xc8, 0xc3, 0x97, 0x7e, 0x94, 0x26, 0xe4, 0x82, 0x88, 0x51, 0xb9, 0x0d, 0x94, 0x11, + 0x30, 0x1a, 0x10, 0xb9, 0x1f, 0xca, 0x2d, 0x87, 0x85, 0xc9, 0xe1, 0x79, 0x11, 0xbe, 0xc8, 0xf2, + 0x2d, 0x9c, 0x20, 0x76, 0x49, 0x86, 0x44, 0x8c, 0x3c, 0x8e, 0x02, 0x92, 0x26, 0x5e, 0x4a, 0x89, + 0x48, 0x0c, 0xd6, 0x88, 0xc8, 0x96, 0x7a, 0x3a, 0x4f, 0xfb, 0x5b, 0x6f, 0x39, 0x8a, 0x63, 0xcc, + 0xcd, 0x7b, 0xf7, 0x6f, 0x15, 0xa8, 0x7f, 0xa6, 0xf7, 0x60, 0x97, 0xf6, 0x99, 0xb3, 0x0d, 0x37, + 0x04, 0xbe, 0x14, 0xcd, 0xca, 0xfd, 0xca, 0x47, 0xf5, 0x9d, 0xef, 0x1a, 0xe1, 0x69, 0x59, 0x78, + 0xeb, 0x58, 0x70, 0x42, 0xc3, 0x53, 0x14, 0xa5, 0xb8, 0xa7, 0x3c, 0x1d, 0x1f, 0x60, 0xbc, 0x79, + 0x9b, 0xd5, 0xfb, 0x95, 0x8f, 0xd6, 0x77, 0xf6, 0x5a, 0xd7, 0x69, 0x97, 0x4a, 0xb9, 0x65, 0x22, + 0x3e, 0x97, 0xb8, 0x93, 0x51, 0x8c, 0x9f, 0xd1, 0x74, 0x38, 0x65, 0xec, 0xd5, 0x86, 0xf6, 0xa7, + 0xfb, 0x14, 0xd6, 0x8e, 0x22, 0xe4, 0xe3, 0x21, 0xa6, 0x42, 0xe5, 0xd9, 0x82, 0xa5, 0x94, 0x47, + 0xa5, 0xd2, 0x94, 0x8e, 0xee, 0x19, 0x34, 0x0e, 0x99, 0x8f, 0xe4, 0x6a, 0x28, 0xfc, 0x21, 0xdc, + 0x0e, 0x31, 0xf3, 0x04, 0xe2, 0x21, 0x56, 0x2b, 0x95, 0x08, 0x44, 0xcb, 0x0d, 0xfb, 0x56, 0x88, + 0xd9, 0x89, 0xc2, 0x75, 0x0c, 0xcc, 0xed, 0x01, 0xec, 0x29, 0x45, 0x53, 0xdc, 0x7b, 0x70, 0x43, + 0xcd, 0x45, 0x45, 0xcd, 0xc5, 0x76, 0xc1, 0x5c, 0x68, 0xa0, 0x9a, 0x01, 0xfd, 0xb3, 0xa7, 0xd0, + 0xee, 0x25, 0xdc, 0x39, 0xb2, 0x5b, 0xbf, 0xa3, 0x77, 0xbe, 0x62, 0xff, 0xda, 0xb0, 0xeb, 0x99, + 0x3e, 0x2c, 0x60, 0xbf, 0x4a, 0x91, 0xcd, 0xf6, 0xac, 0x17, 0x26, 0xf2, 0x9f, 0xaa, 0xb0, 0x71, + 0xa8, 0xb5, 0x61, 0x5f, 0x4a, 0x83, 0x0a, 0xfb, 0xe5, 0xc4, 0xa0, 0x8a, 0x16, 0x38, 0x0f, 0xcf, + 0x42, 0x5e, 0x35, 0xea, 0x70, 0xce, 0x31, 0x80, 0x8f, 0x12, 0xec, 0x5d, 0xc8, 0xd9, 0x55, 0xc3, + 0xaa, 0xef, 0x3c, 0x6c, 0xcd, 0x2f, 0x7e, 0x96, 0x6b, 0x8f, 0x0c, 0x31, 0x4d, 0xcc, 0xa2, 0xf6, + 0x6a, 0x92, 0x47, 0x2d, 0x92, 0xf3, 0x0a, 0xee, 0x6a, 0xc9, 0xf1, 0x50, 0x60, 0x04, 0xce, 0x94, + 0x57, 0x46, 0x9b, 0x4b, 0x25, 0x56, 0x79, 0x53, 0xc3, 0xdb, 0x81, 0x4a, 0xb7, 0x63, 0xb1, 0xee, + 0x20, 0x9b, 0x9b, 0x63, 0x9f, 0xc5, 0x7a, 0xc1, 0x4f, 0x00, 0x02, 0x9b, 0x48, 0xd2, 0xac, 0xde, + 0x5f, 0x7a, 0xe7, 0x11, 0xe4, 0x78, 0xdc, 0x3f, 0xd7, 0xe0, 0xce, 0x2c, 0x27, 0xe7, 0x15, 0xac, + 0x59, 0xe9, 0x3e, 0xe7, 0x88, 0x06, 0x66, 0xd7, 0x6e, 0x97, 0x8c, 0xb8, 0x2b, 0x31, 0x92, 0xe8, + 0xe0, 0x5b, 0xbd, 0x46, 0x94, 0xb3, 0x39, 0x07, 0xb0, 0xaa, 0x6b, 0x27, 0x09, 0xcc, 0x3a, 0x7c, + 0xbf, 0x88, 0xf3, 0x40, 0xfa, 0x77, 0x2d, 0xdd, 0xca, 0x40, 0x3f, 0x3a, 0x9f, 0x43, 0x5d, 0x33, + 0xf9, 0x11, 0x4a, 0x12, 0x33, 0xe1, 0xad, 0x52, 0x64, 0x1d, 0x89, 0x30, 0x7c, 0x30, 0xc8, 0x2c, + 0xce, 0x6f, 0xe0, 0x8e, 0xa1, 0x64, 0x29, 0x15, 0x7c, 0xe4, 0x71, 0x1c, 0xca, 0xc5, 0xbc, 0xa1, + 0xb8, 0x1f, 0x95, 0xe3, 0xd6, 0xd0, 0x9e, 0x42, 0x9a, 0x18, 0xce, 0x60, 0xea, 0xcd, 0x38, 0x7d, + 0x59, 0xad, 0x70, 0x73, 0x79, 0x81, 0xf4, 0x8f, 0x25, 0x62, 0x22, 0x7d, 0x65, 0x71, 0x5e, 0x00, + 0x98, 0xf4, 0x89, 0x18, 0x35, 0xdf, 0x53, 0x8c, 0x1f, 0x97, 0x4b, 0x9a, 0x88, 0x91, 0x21, 0xac, + 0x0d, 0xac, 0xc1, 0xb9, 0x80, 0xe6, 0x75, 0x67, 0x80, 0xe6, 0x8a, 0x62, 0x7f, 0x5c, 0x72, 0x3f, + 0x74, 0x14, 0xbc, 0x6d, 0xd1, 0x26, 0xd4, 0x66, 0x34, 0xf3, 0xad, 0xf3, 0x2b, 0xb8, 0x79, 0xa5, + 0x40, 0x36, 0x57, 0x55, 0xb8, 0x9d, 0xa2, 0x70, 0x47, 0x1a, 0xd6, 0xd1, 0x28, 0x13, 0x66, 0x3d, + 0x9e, 0xb0, 0x3a, 0xbf, 0x83, 0xf7, 0xe7, 0xd4, 0xdf, 0x66, 0x4d, 0x85, 0x7a, 0xb2, 0x58, 0xa8, + 0x67, 0x63, 0x02, 0x13, 0xf5, 0x6e, 0x7c, 0x9d, 0x83, 0xe3, 0xc3, 0xad, 0xa9, 0xfa, 0xdd, 0x84, + 0x72, 0xa2, 0x64, 0xc3, 0x5a, 0x9c, 0x89, 0xb6, 0x11, 0x5f, 0xb1, 0x3b, 0xbf, 0x06, 0x6b, 0xf3, + 0x58, 0xbf, 0x8f, 0xb9, 0xfc, 0xe0, 0xea, 0x0b, 0xcd, 0xe2, 0x4b, 0x09, 0xcb, 0xbe, 0x3b, 0x3b, + 0x8b, 0xc6, 0xea, 0x9c, 0x40, 0x23, 0x7f, 0x9a, 0x68, 0x36, 0x14, 0xf7, 0x56, 0x49, 0x6e, 0xa9, + 0xcd, 0x86, 0xb8, 0x1e, 0x8f, 0x4d, 0xbb, 0x75, 0xa8, 0x65, 0xf2, 0xe4, 0xfe, 0x3c, 0xd3, 0xc1, + 0x4c, 0x4f, 0x9c, 0x1d, 0x58, 0xd6, 0x22, 0x5e, 0xa6, 0x8c, 0x6a, 0x57, 0xb7, 0x0d, 0xf5, 0x9c, + 0x86, 0xbc, 0x13, 0x45, 0x07, 0xd6, 0x27, 0x95, 0xc3, 0xf9, 0xe1, 0x24, 0xcb, 0xfb, 0x53, 0x2c, + 0x5d, 0x2a, 0x1e, 0x3d, 0x9c, 0x20, 0x89, 0x61, 0x73, 0xb6, 0x44, 0x38, 0xa7, 0xd0, 0x9c, 0x94, + 0x9c, 0x5c, 0x25, 0x29, 0x93, 0xe5, 0xa6, 0x9f, 0xa7, 0x1c, 0x57, 0x92, 0x57, 0x26, 0xed, 0x4c, + 0x31, 0x9c, 0x67, 0x70, 0x53, 0x09, 0xce, 0x82, 0x01, 0xd6, 0x15, 0x68, 0x4c, 0x7c, 0x02, 0x6b, + 0x13, 0xc2, 0xe1, 0x74, 0x60, 0x5d, 0xaa, 0xce, 0x82, 0xb4, 0x6b, 0x12, 0x33, 0x66, 0xfd, 0x57, + 0x05, 0xee, 0x5d, 0xaf, 0x18, 0xef, 0xb2, 0x70, 0x4e, 0x0c, 0xcb, 0xea, 0xba, 0x62, 0xce, 0x32, + 0xaf, 0xcb, 0x1d, 0x2a, 0xa6, 0xa2, 0x07, 0xf8, 0x32, 0x7f, 0xbe, 0x98, 0xf5, 0xbe, 0xa7, 0x03, + 0xb9, 0x31, 0x38, 0xd3, 0x32, 0xe4, 0xbc, 0x86, 0x15, 0xab, 0x65, 0xfa, 0x78, 0xf3, 0xb3, 0xc2, + 0x53, 0xd5, 0x84, 0x7c, 0xe8, 0xf3, 0x54, 0xde, 0xd4, 0xb3, 0x84, 0xee, 0xdf, 0x2b, 0xf0, 0xc1, + 0x5c, 0x39, 0x72, 0xfe, 0x50, 0x81, 0xdb, 0xb3, 0xb4, 0x4e, 0xa7, 0x72, 0xba, 0x58, 0x2a, 0x63, + 0xfc, 0x8c, 0xac, 0x72, 0x6f, 0x7b, 0x8e, 0x3f, 0x65, 0x73, 0x7f, 0x2b, 0x8f, 0x9c, 0xd3, 0x12, + 0xe6, 0x9c, 0x43, 0x6d, 0xac, 0x85, 0xe5, 0x0e, 0x80, 0x57, 0x79, 0x26, 0xb2, 0xb1, 0xc6, 0xde, + 0x98, 0xd6, 0x3d, 0xc8, 0x56, 0x26, 0x27, 0x6d, 0xef, 0x24, 0x07, 0x7f, 0xa9, 0xc0, 0xcd, 0x2b, + 0x4a, 0xf6, 0x4e, 0xbb, 0xf3, 0x35, 0x2c, 0xab, 0x5b, 0x58, 0xc9, 0x3b, 0x4d, 0x2e, 0xe4, 0xa1, + 0x84, 0xe5, 0x47, 0x9c, 0x19, 0x7b, 0x9a, 0xd2, 0xfd, 0x7d, 0x05, 0xee, 0xa9, 0x6f, 0x74, 0x0f, + 0x09, 0x7c, 0x6c, 0x9b, 0x14, 0x59, 0xba, 0xc1, 0xc4, 0x61, 0xfb, 0xa8, 0x20, 0xf2, 0x6c, 0x22, + 0x15, 0x7f, 0xf6, 0x2b, 0x73, 0xce, 0xff, 0x63, 0x05, 0x3e, 0x50, 0x0e, 0xed, 0xe0, 0x02, 0x51, + 0x1f, 0xef, 0x32, 0xf6, 0x86, 0xd0, 0xf0, 0x15, 0xa1, 0x01, 0x7b, 0xab, 0xf2, 0x78, 0x04, 0xab, + 0x43, 0x42, 0xbd, 0x00, 0x8d, 0x92, 0x32, 0x52, 0xba, 0x32, 0x24, 0x74, 0x0f, 0x8d, 0x12, 0x85, + 0x43, 0x97, 0x1a, 0x57, 0x2d, 0x83, 0x43, 0x97, 0x12, 0x27, 0x33, 0xfa, 0xb6, 0xca, 0xe8, 0x10, + 0xd3, 0x50, 0x0c, 0x5e, 0xf6, 0x8f, 0x05, 0xd2, 0x1f, 0xc9, 0x63, 0x00, 0x99, 0x09, 0x25, 0xe1, + 0x40, 0x94, 0xca, 0xa5, 0x36, 0x24, 0xf4, 0x85, 0xf2, 0x56, 0x58, 0x74, 0x69, 0xb1, 0xd5, 0x32, + 0x58, 0x74, 0xa9, 0xb1, 0xee, 0x10, 0x6e, 0x6b, 0x2d, 0x1d, 0x60, 0xff, 0x4d, 0x57, 0x8e, 0xce, + 0xd4, 0x84, 0x7a, 0xae, 0xe7, 0x65, 0xd6, 0xe9, 0x51, 0xd1, 0x4d, 0x0f, 0x8d, 0x5e, 0xf6, 0x5f, + 0x61, 0xfc, 0x46, 0x5f, 0xf6, 0xec, 0x53, 0xaf, 0x16, 0xd8, 0x9f, 0x32, 0x5c, 0x77, 0xdc, 0x47, + 0xca, 0xf6, 0xc3, 0xe9, 0xc4, 0x7e, 0xd8, 0x2d, 0x88, 0x73, 0x85, 0x41, 0x45, 0xbb, 0x62, 0xb3, + 0x37, 0xbd, 0x25, 0x58, 0x6f, 0x07, 0xc7, 0xfe, 0x00, 0x07, 0x69, 0xa4, 0x43, 0x79, 0xd0, 0x48, + 0x04, 0xe2, 0xc2, 0xd3, 0x5d, 0x1e, 0x13, 0xf2, 0xa7, 0x05, 0x21, 0x9f, 0x2b, 0xe7, 0x97, 0xfd, + 0x03, 0x96, 0x72, 0x15, 0x2f, 0x6f, 0xe8, 0xd5, 0x15, 0xa3, 0x36, 0x39, 0xbf, 0x04, 0xc0, 0x34, + 0xb0, 0xf4, 0xd5, 0x6f, 0x80, 0xbe, 0x86, 0x69, 0x60, 0xc8, 0x1f, 0x03, 0xe8, 0xec, 0x07, 0x2c, + 0xe5, 0xe6, 0xda, 0x31, 0x73, 0xa9, 0x1f, 0xec, 0x98, 0xa5, 0x56, 0xee, 0x92, 0x46, 0x6e, 0x5a, + 0x99, 0x98, 0x42, 0xde, 0x28, 0x46, 0xae, 0x60, 0x1a, 0x28, 0xdc, 0x95, 0xbd, 0xb0, 0xfc, 0x4d, + 0xed, 0x85, 0xaf, 0xa1, 0xd1, 0x0e, 0x71, 0x0f, 0xd1, 0x50, 0xaf, 0xcc, 0xd1, 0xc4, 0x26, 0x28, + 0x9a, 0x32, 0x0b, 0xcd, 0x76, 0x40, 0xde, 0x60, 0x96, 0xff, 0x35, 0xc0, 0xbe, 0x6a, 0xae, 0x9a, + 0x96, 0x48, 0x9e, 0xff, 0x93, 0x02, 0x7e, 0x0d, 0xcc, 0xd8, 0xc7, 0x8f, 0x86, 0x9b, 0xc0, 0xcd, + 0xae, 0x6a, 0xa4, 0x8e, 0x07, 0xb0, 0xe8, 0x2e, 0xce, 0xd0, 0xb9, 0x5d, 0x3c, 0x61, 0x33, 0xa1, + 0x38, 0x38, 0x47, 0xa6, 0xbd, 0x78, 0xac, 0xba, 0x8b, 0x2a, 0xda, 0xd9, 0x44, 0xb4, 0x83, 0x22, + 0xf5, 0x9e, 0x20, 0x18, 0x77, 0x49, 0xa6, 0xcc, 0x26, 0xe6, 0x67, 0xb0, 0xf1, 0x15, 0x4b, 0x4f, + 0xd2, 0x73, 0x7c, 0x4a, 0x02, 0xcc, 0x54, 0xc4, 0x1f, 0xc3, 0xea, 0x85, 0x7c, 0x90, 0xa7, 0xf9, + 0x32, 0x75, 0x66, 0x45, 0x79, 0x77, 0x03, 0xf7, 0x73, 0x70, 0x0c, 0x59, 0xfe, 0x54, 0xf2, 0x29, + 0x80, 0x3d, 0x16, 0x94, 0x24, 0xac, 0x19, 0xff, 0x6e, 0xe0, 0x76, 0xa1, 0xf1, 0x45, 0x82, 0xb9, + 0x3c, 0x12, 0x29, 0xb2, 0x9f, 0x40, 0x2d, 0x4d, 0x30, 0xf7, 0xe4, 0xad, 0xae, 0x14, 0xd7, 0x6a, + 0x6a, 0xe0, 0xee, 0x7f, 0xaa, 0xb0, 0x76, 0x64, 0x7b, 0x8c, 0x8a, 0xac, 0x0b, 0xb5, 0x10, 0x33, + 0x2f, 0x66, 0x24, 0x6b, 0x99, 0xfd, 0xa0, 0xe8, 0x6e, 0xb1, 0x8f, 0xd9, 0x91, 0xf4, 0x57, 0x6d, + 0x8e, 0xd5, 0xd0, 0x3c, 0x39, 0x0f, 0xe1, 0x3d, 0xdd, 0xb5, 0x34, 0xba, 0x3c, 0x9d, 0xd4, 0x1e, + 0x4b, 0xcf, 0x23, 0xdd, 0xd5, 0xe9, 0x19, 0x5f, 0x87, 0x41, 0x23, 0xdf, 0xeb, 0x54, 0x1f, 0x7a, + 0x99, 0x5e, 0x98, 0x19, 0x44, 0x4f, 0x61, 0xbf, 0x90, 0x50, 0x5b, 0xa5, 0xa7, 0x5e, 0xf4, 0xea, + 0x7c, 0xfc, 0xe0, 0x3c, 0x83, 0x15, 0x14, 0x04, 0x1c, 0x27, 0x89, 0x91, 0x86, 0xc2, 0xc6, 0x48, + 0x5b, 0xbb, 0xab, 0xe1, 0x5a, 0xac, 0xfb, 0xcf, 0x0a, 0x34, 0xf2, 0x13, 0xe1, 0x7c, 0x09, 0xf7, + 0x22, 0x46, 0x43, 0x22, 0xd2, 0x00, 0x7b, 0x84, 0x7a, 0x43, 0xe2, 0x73, 0xe6, 0x05, 0x38, 0xe4, + 0x18, 0xcf, 0x2d, 0x73, 0x56, 0x85, 0xbe, 0x93, 0xc1, 0xbb, 0xf4, 0xb9, 0x04, 0xef, 0x69, 0xac, + 0x73, 0x0a, 0x77, 0x23, 0x24, 0xae, 0x21, 0xae, 0x16, 0x13, 0x6f, 0x5a, 0xf4, 0x24, 0xaf, 0xfb, + 0xbf, 0x25, 0xa8, 0xe7, 0xc6, 0xe6, 0x3c, 0x81, 0x7a, 0xcc, 0x12, 0x81, 0x22, 0xcf, 0x67, 0x41, + 0xb9, 0xf3, 0x15, 0x68, 0x40, 0x87, 0x05, 0xd8, 0x69, 0xc3, 0x5a, 0xcc, 0xd9, 0x05, 0xa1, 0x3e, + 0xd6, 0x04, 0xd5, 0x12, 0x04, 0x0d, 0x0b, 0x51, 0x14, 0x4f, 0xa1, 0x61, 0xef, 0x67, 0x8a, 0xa1, + 0x4c, 0x77, 0xaf, 0x6e, 0x10, 0x53, 0x39, 0x50, 0x34, 0xc4, 0x66, 0x89, 0x4b, 0xe6, 0xf0, 0x02, + 0x0d, 0xb1, 0xbc, 0x61, 0x25, 0x82, 0x63, 0x2c, 0x3c, 0xbb, 0x4d, 0x96, 0xcb, 0xdc, 0xb0, 0x34, + 0xc6, 0x4c, 0xa7, 0xbe, 0xfe, 0xe5, 0x49, 0x76, 0x4c, 0x9f, 0xa8, 0xf0, 0xfa, 0x97, 0x63, 0xd9, + 0x91, 0x9f, 0xba, 0xba, 0xed, 0xa9, 0xa1, 0xac, 0x94, 0xf9, 0xd4, 0xa5, 0xbb, 0x1c, 0x86, 0x3c, + 0x96, 0xd6, 0x4e, 0x58, 0x4c, 0x7c, 0x7b, 0x6d, 0x14, 0xf2, 0x61, 0xb1, 0xf6, 0xf8, 0x9a, 0xc2, + 0xd8, 0xd6, 0xb8, 0xb3, 0x0d, 0x37, 0x62, 0x24, 0x06, 0xa6, 0x2b, 0x5a, 0xf0, 0x0f, 0x05, 0xe9, + 0xe9, 0x7e, 0x05, 0x8d, 0x43, 0x44, 0xc3, 0x14, 0x99, 0xb2, 0xd1, 0x85, 0x5b, 0x91, 0x79, 0x5e, + 0x2c, 0x93, 0x0d, 0x0b, 0xcb, 0xfa, 0xf4, 0xbf, 0x80, 0x7a, 0x37, 0xde, 0x8d, 0x98, 0x3c, 0xca, + 0x69, 0x85, 0x25, 0x71, 0xb6, 0x62, 0xa5, 0x14, 0x96, 0xc4, 0x66, 0x9e, 0xdd, 0x08, 0x36, 0x4c, + 0xeb, 0xfc, 0x10, 0x9d, 0x1b, 0xc9, 0x5e, 0xac, 0x49, 0x9e, 0x87, 0x67, 0x15, 0xe7, 0xaa, 0xd1, + 0xd4, 0x9b, 0x53, 0xa8, 0x77, 0x10, 0xe7, 0xc4, 0xd4, 0xea, 0x7d, 0xd8, 0xf0, 0xf5, 0xe3, 0x62, + 0x53, 0x72, 0xd3, 0xa0, 0xb2, 0x19, 0xe9, 0xc3, 0x86, 0xac, 0x13, 0xea, 0x78, 0x88, 0x4d, 0xad, + 0xe8, 0xc1, 0xa6, 0xaa, 0x15, 0xc4, 0x18, 0x3d, 0x1f, 0x09, 0x1c, 0x32, 0x3e, 0x2a, 0x15, 0xe2, + 0x4e, 0x9a, 0xe3, 0xeb, 0x18, 0xe4, 0xee, 0xbf, 0x2b, 0xe0, 0xfa, 0x6c, 0x58, 0xa0, 0x9a, 0xbb, + 0x6b, 0xa6, 0xdf, 0x80, 0x8e, 0x24, 0xf5, 0x51, 0xe5, 0xf5, 0x9e, 0x01, 0x84, 0x4c, 0x2e, 0x66, + 0x8b, 0xf1, 0x70, 0x2b, 0xc4, 0x54, 0x05, 0xb6, 0xff, 0x0b, 0x8b, 0x49, 0x72, 0xdd, 0xbf, 0xd4, + 0x3f, 0xd5, 0x7f, 0xfe, 0x5a, 0x5d, 0xda, 0x6f, 0xb7, 0xff, 0x51, 0xfd, 0x70, 0x5f, 0x93, 0xb5, + 0x83, 0xa4, 0xa5, 0x7f, 0xca, 0x5f, 0xa7, 0xdb, 0xad, 0x8e, 0x72, 0xfb, 0xaf, 0x75, 0x38, 0x6b, + 0x07, 0xc9, 0x59, 0xe6, 0x70, 0x76, 0xba, 0x7d, 0xa6, 0x1d, 0xce, 0xdf, 0x53, 0x81, 0x1f, 0xfc, + 0x3f, 0x00, 0x00, 0xff, 0xff, 0xea, 0x0f, 0xf8, 0x73, 0xca, 0x1f, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/criterion_category_availability.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/criterion_category_availability.pb.go new file mode 100644 index 000000000..169bcbfd4 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/criterion_category_availability.pb.go @@ -0,0 +1,257 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/common/criterion_category_availability.proto + +package common // import "google.golang.org/genproto/googleapis/ads/googleads/v0/common" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Information of category availability, per advertising channel. +type CriterionCategoryAvailability struct { + // Channel types and subtypes that are available to the category. + Channel *CriterionCategoryChannelAvailability `protobuf:"bytes,1,opt,name=channel,proto3" json:"channel,omitempty"` + // Locales that are available to the category for the channel. + Locale []*CriterionCategoryLocaleAvailability `protobuf:"bytes,2,rep,name=locale,proto3" json:"locale,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CriterionCategoryAvailability) Reset() { *m = CriterionCategoryAvailability{} } +func (m *CriterionCategoryAvailability) String() string { return proto.CompactTextString(m) } +func (*CriterionCategoryAvailability) ProtoMessage() {} +func (*CriterionCategoryAvailability) Descriptor() ([]byte, []int) { + return fileDescriptor_criterion_category_availability_529df28267b0fcc5, []int{0} +} +func (m *CriterionCategoryAvailability) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CriterionCategoryAvailability.Unmarshal(m, b) +} +func (m *CriterionCategoryAvailability) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CriterionCategoryAvailability.Marshal(b, m, deterministic) +} +func (dst *CriterionCategoryAvailability) XXX_Merge(src proto.Message) { + xxx_messageInfo_CriterionCategoryAvailability.Merge(dst, src) +} +func (m *CriterionCategoryAvailability) XXX_Size() int { + return xxx_messageInfo_CriterionCategoryAvailability.Size(m) +} +func (m *CriterionCategoryAvailability) XXX_DiscardUnknown() { + xxx_messageInfo_CriterionCategoryAvailability.DiscardUnknown(m) +} + +var xxx_messageInfo_CriterionCategoryAvailability proto.InternalMessageInfo + +func (m *CriterionCategoryAvailability) GetChannel() *CriterionCategoryChannelAvailability { + if m != nil { + return m.Channel + } + return nil +} + +func (m *CriterionCategoryAvailability) GetLocale() []*CriterionCategoryLocaleAvailability { + if m != nil { + return m.Locale + } + return nil +} + +// Information of advertising channel type and subtypes a category is available +// in. +type CriterionCategoryChannelAvailability struct { + // Format of the channel availability. Can be ALL_CHANNELS (the rest of the + // fields will not be set), CHANNEL_TYPE (only advertising_channel_type type + // will be set, the category is available to all sub types under it) or + // CHANNEL_TYPE_AND_SUBTYPES (advertising_channel_type, + // advertising_channel_sub_type, and include_default_channel_sub_type will all + // be set). + AvailabilityMode enums.CriterionCategoryChannelAvailabilityModeEnum_CriterionCategoryChannelAvailabilityMode `protobuf:"varint,1,opt,name=availability_mode,json=availabilityMode,proto3,enum=google.ads.googleads.v0.enums.CriterionCategoryChannelAvailabilityModeEnum_CriterionCategoryChannelAvailabilityMode" json:"availability_mode,omitempty"` + // Channel type the category is available to. + AdvertisingChannelType enums.AdvertisingChannelTypeEnum_AdvertisingChannelType `protobuf:"varint,2,opt,name=advertising_channel_type,json=advertisingChannelType,proto3,enum=google.ads.googleads.v0.enums.AdvertisingChannelTypeEnum_AdvertisingChannelType" json:"advertising_channel_type,omitempty"` + // Channel subtypes under the channel type the category is available to. + AdvertisingChannelSubType []enums.AdvertisingChannelSubTypeEnum_AdvertisingChannelSubType `protobuf:"varint,3,rep,packed,name=advertising_channel_sub_type,json=advertisingChannelSubType,proto3,enum=google.ads.googleads.v0.enums.AdvertisingChannelSubTypeEnum_AdvertisingChannelSubType" json:"advertising_channel_sub_type,omitempty"` + // Whether default channel sub type is included. For example, + // advertising_channel_type being DISPLAY and include_default_channel_sub_type + // being false means that the default display campaign where channel sub type + // is not set is not included in this availability configuration. + IncludeDefaultChannelSubType *wrappers.BoolValue `protobuf:"bytes,4,opt,name=include_default_channel_sub_type,json=includeDefaultChannelSubType,proto3" json:"include_default_channel_sub_type,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CriterionCategoryChannelAvailability) Reset() { *m = CriterionCategoryChannelAvailability{} } +func (m *CriterionCategoryChannelAvailability) String() string { return proto.CompactTextString(m) } +func (*CriterionCategoryChannelAvailability) ProtoMessage() {} +func (*CriterionCategoryChannelAvailability) Descriptor() ([]byte, []int) { + return fileDescriptor_criterion_category_availability_529df28267b0fcc5, []int{1} +} +func (m *CriterionCategoryChannelAvailability) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CriterionCategoryChannelAvailability.Unmarshal(m, b) +} +func (m *CriterionCategoryChannelAvailability) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CriterionCategoryChannelAvailability.Marshal(b, m, deterministic) +} +func (dst *CriterionCategoryChannelAvailability) XXX_Merge(src proto.Message) { + xxx_messageInfo_CriterionCategoryChannelAvailability.Merge(dst, src) +} +func (m *CriterionCategoryChannelAvailability) XXX_Size() int { + return xxx_messageInfo_CriterionCategoryChannelAvailability.Size(m) +} +func (m *CriterionCategoryChannelAvailability) XXX_DiscardUnknown() { + xxx_messageInfo_CriterionCategoryChannelAvailability.DiscardUnknown(m) +} + +var xxx_messageInfo_CriterionCategoryChannelAvailability proto.InternalMessageInfo + +func (m *CriterionCategoryChannelAvailability) GetAvailabilityMode() enums.CriterionCategoryChannelAvailabilityModeEnum_CriterionCategoryChannelAvailabilityMode { + if m != nil { + return m.AvailabilityMode + } + return enums.CriterionCategoryChannelAvailabilityModeEnum_UNSPECIFIED +} + +func (m *CriterionCategoryChannelAvailability) GetAdvertisingChannelType() enums.AdvertisingChannelTypeEnum_AdvertisingChannelType { + if m != nil { + return m.AdvertisingChannelType + } + return enums.AdvertisingChannelTypeEnum_UNSPECIFIED +} + +func (m *CriterionCategoryChannelAvailability) GetAdvertisingChannelSubType() []enums.AdvertisingChannelSubTypeEnum_AdvertisingChannelSubType { + if m != nil { + return m.AdvertisingChannelSubType + } + return nil +} + +func (m *CriterionCategoryChannelAvailability) GetIncludeDefaultChannelSubType() *wrappers.BoolValue { + if m != nil { + return m.IncludeDefaultChannelSubType + } + return nil +} + +// Information about which locales a category is available in. +type CriterionCategoryLocaleAvailability struct { + // Format of the locale availability. Can be LAUNCHED_TO_ALL (both country and + // language will be empty), COUNTRY (only country will be set), LANGUAGE (only + // language wil be set), COUNTRY_AND_LANGUAGE (both country and language will + // be set). + AvailabilityMode enums.CriterionCategoryLocaleAvailabilityModeEnum_CriterionCategoryLocaleAvailabilityMode `protobuf:"varint,1,opt,name=availability_mode,json=availabilityMode,proto3,enum=google.ads.googleads.v0.enums.CriterionCategoryLocaleAvailabilityModeEnum_CriterionCategoryLocaleAvailabilityMode" json:"availability_mode,omitempty"` + // Code of the country. + CountryCode *wrappers.StringValue `protobuf:"bytes,2,opt,name=country_code,json=countryCode,proto3" json:"country_code,omitempty"` + // Code of the language. + LanguageCode *wrappers.StringValue `protobuf:"bytes,3,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CriterionCategoryLocaleAvailability) Reset() { *m = CriterionCategoryLocaleAvailability{} } +func (m *CriterionCategoryLocaleAvailability) String() string { return proto.CompactTextString(m) } +func (*CriterionCategoryLocaleAvailability) ProtoMessage() {} +func (*CriterionCategoryLocaleAvailability) Descriptor() ([]byte, []int) { + return fileDescriptor_criterion_category_availability_529df28267b0fcc5, []int{2} +} +func (m *CriterionCategoryLocaleAvailability) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CriterionCategoryLocaleAvailability.Unmarshal(m, b) +} +func (m *CriterionCategoryLocaleAvailability) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CriterionCategoryLocaleAvailability.Marshal(b, m, deterministic) +} +func (dst *CriterionCategoryLocaleAvailability) XXX_Merge(src proto.Message) { + xxx_messageInfo_CriterionCategoryLocaleAvailability.Merge(dst, src) +} +func (m *CriterionCategoryLocaleAvailability) XXX_Size() int { + return xxx_messageInfo_CriterionCategoryLocaleAvailability.Size(m) +} +func (m *CriterionCategoryLocaleAvailability) XXX_DiscardUnknown() { + xxx_messageInfo_CriterionCategoryLocaleAvailability.DiscardUnknown(m) +} + +var xxx_messageInfo_CriterionCategoryLocaleAvailability proto.InternalMessageInfo + +func (m *CriterionCategoryLocaleAvailability) GetAvailabilityMode() enums.CriterionCategoryLocaleAvailabilityModeEnum_CriterionCategoryLocaleAvailabilityMode { + if m != nil { + return m.AvailabilityMode + } + return enums.CriterionCategoryLocaleAvailabilityModeEnum_UNSPECIFIED +} + +func (m *CriterionCategoryLocaleAvailability) GetCountryCode() *wrappers.StringValue { + if m != nil { + return m.CountryCode + } + return nil +} + +func (m *CriterionCategoryLocaleAvailability) GetLanguageCode() *wrappers.StringValue { + if m != nil { + return m.LanguageCode + } + return nil +} + +func init() { + proto.RegisterType((*CriterionCategoryAvailability)(nil), "google.ads.googleads.v0.common.CriterionCategoryAvailability") + proto.RegisterType((*CriterionCategoryChannelAvailability)(nil), "google.ads.googleads.v0.common.CriterionCategoryChannelAvailability") + proto.RegisterType((*CriterionCategoryLocaleAvailability)(nil), "google.ads.googleads.v0.common.CriterionCategoryLocaleAvailability") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/common/criterion_category_availability.proto", fileDescriptor_criterion_category_availability_529df28267b0fcc5) +} + +var fileDescriptor_criterion_category_availability_529df28267b0fcc5 = []byte{ + // 574 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x95, 0xc1, 0x8e, 0xd3, 0x30, + 0x10, 0x86, 0x95, 0x74, 0xb5, 0x48, 0xee, 0xb2, 0x82, 0x1c, 0x50, 0xa9, 0xca, 0xaa, 0x2a, 0x1c, + 0x7a, 0x72, 0xaa, 0x72, 0x04, 0x09, 0xd2, 0x14, 0xed, 0x05, 0x44, 0xd5, 0x45, 0x3d, 0x40, 0x45, + 0xe4, 0x24, 0xde, 0x60, 0xc9, 0xb1, 0x23, 0xc7, 0x2e, 0xea, 0x2b, 0xf0, 0x02, 0x1c, 0x11, 0x1c, + 0x79, 0x14, 0x38, 0x23, 0x71, 0xe0, 0x61, 0x50, 0xec, 0x64, 0xe9, 0xd2, 0x26, 0xdb, 0x9e, 0xea, + 0xc6, 0xf3, 0x7f, 0xf3, 0xcf, 0x64, 0xec, 0x80, 0x69, 0xc2, 0x79, 0x42, 0xb1, 0x8b, 0xe2, 0xdc, + 0x35, 0xcb, 0x62, 0xb5, 0x1a, 0xb9, 0x11, 0x4f, 0x53, 0xce, 0xdc, 0x48, 0x10, 0x89, 0x05, 0xe1, + 0x2c, 0x88, 0x90, 0xc4, 0x09, 0x17, 0xeb, 0x00, 0xad, 0x10, 0xa1, 0x28, 0x24, 0x94, 0xc8, 0x35, + 0xcc, 0x04, 0x97, 0xdc, 0x39, 0x33, 0x52, 0x88, 0xe2, 0x1c, 0x5e, 0x51, 0xe0, 0x6a, 0x04, 0x0d, + 0xa5, 0xfb, 0xbc, 0x2e, 0x0b, 0x66, 0x2a, 0xcd, 0x5d, 0x14, 0xaf, 0xb0, 0x90, 0x24, 0x27, 0x2c, + 0x09, 0xa2, 0x0f, 0x88, 0x31, 0x4c, 0x83, 0x5c, 0x85, 0x81, 0x5c, 0x67, 0xd8, 0x64, 0xe8, 0x3e, + 0x3d, 0x9c, 0xb0, 0xa1, 0x9e, 0x35, 0xab, 0x77, 0x14, 0x59, 0x41, 0x36, 0x8b, 0x0d, 0x52, 0x1e, + 0x57, 0xc4, 0xd7, 0x07, 0x13, 0x29, 0x8f, 0x10, 0xc5, 0xb5, 0xc0, 0xb2, 0x85, 0xae, 0xfe, 0x17, + 0xaa, 0x4b, 0xf7, 0xa3, 0x40, 0x59, 0x86, 0x45, 0x6e, 0xf6, 0x07, 0x7f, 0x2c, 0xf0, 0xc0, 0xaf, + 0xa8, 0x7e, 0x09, 0xf5, 0x36, 0x60, 0xce, 0x7b, 0x70, 0xab, 0x74, 0xdd, 0xb1, 0xfa, 0xd6, 0xb0, + 0x3d, 0x9e, 0xc2, 0xe6, 0xd7, 0x02, 0xb7, 0x78, 0xbe, 0xd1, 0x6f, 0x62, 0xe7, 0x15, 0xd4, 0x79, + 0x07, 0x8e, 0x4d, 0x0d, 0x1d, 0xbb, 0xdf, 0x1a, 0xb6, 0xc7, 0xfe, 0xc1, 0xf8, 0x97, 0x5a, 0x7e, + 0x8d, 0x5e, 0x22, 0x07, 0xbf, 0x8e, 0xc0, 0xa3, 0x7d, 0xec, 0x38, 0x5f, 0x2d, 0x70, 0x77, 0xab, + 0x87, 0xba, 0xe0, 0xd3, 0xb1, 0xac, 0x75, 0xa4, 0xdf, 0xca, 0x5e, 0xf5, 0xbe, 0xe2, 0x31, 0x7e, + 0xc1, 0x54, 0xba, 0x77, 0xf0, 0xfc, 0x0e, 0xfa, 0xef, 0x89, 0xf3, 0xc9, 0x02, 0x9d, 0xba, 0x89, + 0xec, 0xd8, 0xda, 0xea, 0xec, 0x06, 0xab, 0xde, 0x3f, 0x79, 0x99, 0xf7, 0xcd, 0x3a, 0x33, 0xc6, + 0x76, 0x6f, 0xcd, 0xef, 0xa1, 0x9d, 0xcf, 0x9d, 0xcf, 0x16, 0xe8, 0x35, 0x1d, 0xb0, 0x4e, 0xab, + 0xdf, 0x1a, 0x9e, 0x8e, 0x17, 0x07, 0x1b, 0xba, 0x50, 0x61, 0x83, 0xa7, 0x72, 0x77, 0x7e, 0x1f, + 0xd5, 0x6d, 0x39, 0x21, 0xe8, 0x13, 0x16, 0x51, 0x15, 0xe3, 0x20, 0xc6, 0x97, 0x48, 0x51, 0xb9, + 0x6d, 0xee, 0x48, 0x4f, 0x72, 0xb7, 0x32, 0x57, 0x9d, 0x0e, 0x38, 0xe1, 0x9c, 0x2e, 0x10, 0x55, + 0x78, 0xde, 0x2b, 0x19, 0x53, 0x83, 0xb8, 0x9e, 0x63, 0xf0, 0xd3, 0x06, 0x0f, 0xf7, 0x98, 0x43, + 0xe7, 0x4b, 0xc3, 0x58, 0x89, 0x43, 0xc7, 0x6a, 0x9b, 0x5f, 0x3f, 0x55, 0xbb, 0x63, 0x77, 0x0c, + 0xd5, 0x33, 0x70, 0x12, 0x71, 0xc5, 0x64, 0x71, 0x39, 0x15, 0xde, 0x6c, 0xdd, 0x99, 0xde, 0x56, + 0x67, 0x2e, 0xa4, 0x20, 0x2c, 0x31, 0xbd, 0x69, 0x97, 0x0a, 0xbf, 0x00, 0x78, 0xe0, 0x36, 0x45, + 0x2c, 0x51, 0x28, 0xc1, 0x86, 0xd0, 0xda, 0x83, 0x70, 0x52, 0x49, 0x0a, 0xc4, 0xe4, 0xb7, 0x05, + 0x06, 0x11, 0x4f, 0x6f, 0x38, 0xf8, 0x93, 0x41, 0xe3, 0x45, 0x35, 0x2b, 0xf2, 0xcc, 0xac, 0xb7, + 0xe5, 0xa7, 0x07, 0x26, 0xbc, 0xc8, 0x01, 0xb9, 0x48, 0xdc, 0x04, 0x33, 0xed, 0xa2, 0xba, 0x52, + 0x33, 0x92, 0xd7, 0x7d, 0x99, 0x9e, 0x98, 0x9f, 0x6f, 0x76, 0xeb, 0xdc, 0xf3, 0xbe, 0xdb, 0x67, + 0xe7, 0x06, 0xe6, 0xc5, 0x39, 0x34, 0xcb, 0x62, 0xb5, 0x18, 0x41, 0x5f, 0x87, 0xfd, 0xa8, 0x02, + 0x96, 0x5e, 0x9c, 0x2f, 0xaf, 0x02, 0x96, 0x8b, 0xd1, 0xd2, 0x04, 0x84, 0xc7, 0x3a, 0xf1, 0xe3, + 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x29, 0xe2, 0xf4, 0x0c, 0x11, 0x07, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/custom_parameter.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/custom_parameter.pb.go new file mode 100644 index 000000000..df2e0b66d --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/custom_parameter.pb.go @@ -0,0 +1,99 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/common/custom_parameter.proto + +package common // import "google.golang.org/genproto/googleapis/ads/googleads/v0/common" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A mapping that can be used by custom parameter tags in a +// `tracking_url_template`, `final_urls`, or `mobile_final_urls`. +type CustomParameter struct { + // The key matching the parameter tag name. + Key *wrappers.StringValue `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + // The value to be substituted. + Value *wrappers.StringValue `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CustomParameter) Reset() { *m = CustomParameter{} } +func (m *CustomParameter) String() string { return proto.CompactTextString(m) } +func (*CustomParameter) ProtoMessage() {} +func (*CustomParameter) Descriptor() ([]byte, []int) { + return fileDescriptor_custom_parameter_7e46384f1a98f62b, []int{0} +} +func (m *CustomParameter) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CustomParameter.Unmarshal(m, b) +} +func (m *CustomParameter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CustomParameter.Marshal(b, m, deterministic) +} +func (dst *CustomParameter) XXX_Merge(src proto.Message) { + xxx_messageInfo_CustomParameter.Merge(dst, src) +} +func (m *CustomParameter) XXX_Size() int { + return xxx_messageInfo_CustomParameter.Size(m) +} +func (m *CustomParameter) XXX_DiscardUnknown() { + xxx_messageInfo_CustomParameter.DiscardUnknown(m) +} + +var xxx_messageInfo_CustomParameter proto.InternalMessageInfo + +func (m *CustomParameter) GetKey() *wrappers.StringValue { + if m != nil { + return m.Key + } + return nil +} + +func (m *CustomParameter) GetValue() *wrappers.StringValue { + if m != nil { + return m.Value + } + return nil +} + +func init() { + proto.RegisterType((*CustomParameter)(nil), "google.ads.googleads.v0.common.CustomParameter") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/common/custom_parameter.proto", fileDescriptor_custom_parameter_7e46384f1a98f62b) +} + +var fileDescriptor_custom_parameter_7e46384f1a98f62b = []byte{ + // 265 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x90, 0xb1, 0x4a, 0xc4, 0x40, + 0x10, 0x86, 0x49, 0x0e, 0x2d, 0xd6, 0x42, 0x08, 0x16, 0x87, 0xc8, 0x21, 0x57, 0x59, 0xcd, 0x86, + 0x13, 0x2b, 0xab, 0xdc, 0x09, 0xd7, 0x06, 0x85, 0x14, 0x12, 0x90, 0xbd, 0x64, 0x5d, 0x0e, 0xb3, + 0x99, 0x65, 0x37, 0x89, 0xf8, 0x3a, 0x96, 0x3e, 0xca, 0x3d, 0x95, 0xec, 0x4e, 0x72, 0x85, 0xa0, + 0x58, 0xe5, 0x0f, 0xfb, 0xfd, 0xdf, 0x0c, 0xc3, 0xee, 0x14, 0xa2, 0x6a, 0x24, 0x17, 0xb5, 0xe3, + 0x14, 0x7d, 0x1a, 0x52, 0x5e, 0xa1, 0xd6, 0xd8, 0xf2, 0xaa, 0x77, 0x1d, 0xea, 0x17, 0x23, 0xac, + 0xd0, 0xb2, 0x93, 0x16, 0x8c, 0xc5, 0x0e, 0x93, 0x05, 0xb1, 0x20, 0x6a, 0x07, 0xc7, 0x1a, 0x0c, + 0x29, 0x50, 0xed, 0x72, 0x7c, 0xe7, 0x81, 0xde, 0xf5, 0xaf, 0xfc, 0xdd, 0x0a, 0x63, 0xa4, 0x75, + 0xd4, 0x5f, 0xf6, 0xec, 0x7c, 0x13, 0xcc, 0xf9, 0x24, 0x4e, 0x80, 0xcd, 0xde, 0xe4, 0xc7, 0x3c, + 0xba, 0x8e, 0x6e, 0xce, 0x56, 0x57, 0xa3, 0x15, 0x26, 0x01, 0x3c, 0x75, 0x76, 0xdf, 0xaa, 0x42, + 0x34, 0xbd, 0x7c, 0xf4, 0x60, 0xb2, 0x62, 0x27, 0x83, 0xff, 0x9b, 0xc7, 0xff, 0x68, 0x10, 0xba, + 0x3e, 0x44, 0x6c, 0x59, 0xa1, 0x86, 0xbf, 0xb7, 0x5f, 0x5f, 0xfc, 0xd8, 0x2d, 0xf7, 0xca, 0x3c, + 0x7a, 0x7e, 0x18, 0x7b, 0x0a, 0x1b, 0xd1, 0x2a, 0x40, 0xab, 0xb8, 0x92, 0x6d, 0x18, 0x38, 0x1d, + 0xcf, 0xec, 0xdd, 0x6f, 0xb7, 0xbc, 0xa7, 0xcf, 0x67, 0x3c, 0xdb, 0x66, 0xd9, 0x57, 0xbc, 0xd8, + 0x92, 0x2c, 0xab, 0x1d, 0x50, 0xf4, 0xa9, 0x48, 0x61, 0x13, 0xb0, 0xc3, 0x04, 0x94, 0x59, 0xed, + 0xca, 0x23, 0x50, 0x16, 0x69, 0x49, 0xc0, 0xee, 0x34, 0x0c, 0xbe, 0xfd, 0x0e, 0x00, 0x00, 0xff, + 0xff, 0xc3, 0x33, 0x4d, 0xc8, 0xc3, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/dates.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/dates.pb.go new file mode 100644 index 000000000..06162f96a --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/dates.pb.go @@ -0,0 +1,98 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/common/dates.proto + +package common // import "google.golang.org/genproto/googleapis/ads/googleads/v0/common" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A date range. +type DateRange struct { + // The start date, in yyyy-mm-dd format. + StartDate *wrappers.StringValue `protobuf:"bytes,1,opt,name=start_date,json=startDate,proto3" json:"start_date,omitempty"` + // The end date, in yyyy-mm-dd format. + EndDate *wrappers.StringValue `protobuf:"bytes,2,opt,name=end_date,json=endDate,proto3" json:"end_date,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DateRange) Reset() { *m = DateRange{} } +func (m *DateRange) String() string { return proto.CompactTextString(m) } +func (*DateRange) ProtoMessage() {} +func (*DateRange) Descriptor() ([]byte, []int) { + return fileDescriptor_dates_68fc4d867dec9fcb, []int{0} +} +func (m *DateRange) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DateRange.Unmarshal(m, b) +} +func (m *DateRange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DateRange.Marshal(b, m, deterministic) +} +func (dst *DateRange) XXX_Merge(src proto.Message) { + xxx_messageInfo_DateRange.Merge(dst, src) +} +func (m *DateRange) XXX_Size() int { + return xxx_messageInfo_DateRange.Size(m) +} +func (m *DateRange) XXX_DiscardUnknown() { + xxx_messageInfo_DateRange.DiscardUnknown(m) +} + +var xxx_messageInfo_DateRange proto.InternalMessageInfo + +func (m *DateRange) GetStartDate() *wrappers.StringValue { + if m != nil { + return m.StartDate + } + return nil +} + +func (m *DateRange) GetEndDate() *wrappers.StringValue { + if m != nil { + return m.EndDate + } + return nil +} + +func init() { + proto.RegisterType((*DateRange)(nil), "google.ads.googleads.v0.common.DateRange") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/common/dates.proto", fileDescriptor_dates_68fc4d867dec9fcb) +} + +var fileDescriptor_dates_68fc4d867dec9fcb = []byte{ + // 268 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x90, 0x31, 0x4b, 0x03, 0x31, + 0x18, 0x86, 0xc9, 0x09, 0x6a, 0xe3, 0x76, 0x93, 0x88, 0x14, 0xe9, 0x24, 0x0e, 0x5f, 0x0e, 0x1d, + 0x1c, 0x3a, 0x5d, 0x2d, 0x74, 0x2d, 0x15, 0x6e, 0x90, 0x03, 0x49, 0x9b, 0xcf, 0x50, 0xb8, 0xcb, + 0x77, 0x24, 0x69, 0x9d, 0xfd, 0x2b, 0x8e, 0xfe, 0x0a, 0x67, 0x7f, 0x95, 0x24, 0xb9, 0xeb, 0xa6, + 0x74, 0xba, 0x17, 0xee, 0x79, 0x9f, 0x97, 0x7c, 0xfc, 0x4e, 0x13, 0xe9, 0x06, 0x85, 0x54, 0x4e, + 0xa4, 0x18, 0xd2, 0xbe, 0x10, 0x1b, 0x6a, 0x5b, 0x32, 0x42, 0x49, 0x8f, 0x0e, 0x3a, 0x4b, 0x9e, + 0xf2, 0x71, 0x02, 0x40, 0x2a, 0x07, 0x07, 0x16, 0xf6, 0x05, 0x24, 0xf6, 0xaa, 0xff, 0x2f, 0x22, + 0xbd, 0xde, 0xbd, 0x89, 0x77, 0x2b, 0xbb, 0x0e, 0x6d, 0xdf, 0x9f, 0x7c, 0x30, 0x3e, 0x9a, 0x4b, + 0x8f, 0x2b, 0x69, 0x34, 0xe6, 0x53, 0xce, 0x9d, 0x97, 0xd6, 0xbf, 0x86, 0x89, 0x4b, 0x76, 0xc3, + 0x6e, 0x2f, 0xee, 0xaf, 0x7b, 0x2f, 0x0c, 0x0a, 0x78, 0xf6, 0x76, 0x6b, 0x74, 0x25, 0x9b, 0x1d, + 0xae, 0x46, 0x91, 0x0f, 0x86, 0xfc, 0x91, 0x9f, 0xa3, 0x51, 0xa9, 0x9a, 0x1d, 0x51, 0x3d, 0x43, + 0xa3, 0x42, 0x71, 0xf6, 0xcd, 0xf8, 0x64, 0x43, 0x2d, 0xfc, 0xff, 0x94, 0x19, 0x0f, 0xb0, 0x5b, + 0x06, 0xd5, 0x92, 0xbd, 0xcc, 0x7b, 0x5a, 0x53, 0x23, 0x8d, 0x06, 0xb2, 0x5a, 0x68, 0x34, 0x71, + 0x68, 0x38, 0x5a, 0xb7, 0x75, 0x7f, 0xdd, 0x70, 0x9a, 0x3e, 0x9f, 0xd9, 0xc9, 0xa2, 0x2c, 0xbf, + 0xb2, 0xf1, 0x22, 0xc9, 0x4a, 0xe5, 0x20, 0xc5, 0x90, 0xaa, 0x02, 0x9e, 0x22, 0xf6, 0x33, 0x00, + 0x75, 0xa9, 0x5c, 0x7d, 0x00, 0xea, 0xaa, 0xa8, 0x13, 0xb0, 0x3e, 0x8d, 0xc3, 0x0f, 0xbf, 0x01, + 0x00, 0x00, 0xff, 0xff, 0x29, 0x33, 0x41, 0x4f, 0xbb, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/explorer_auto_optimizer_setting.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/explorer_auto_optimizer_setting.pb.go new file mode 100644 index 000000000..09412cf76 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/explorer_auto_optimizer_setting.pb.go @@ -0,0 +1,92 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/common/explorer_auto_optimizer_setting.proto + +package common // import "google.golang.org/genproto/googleapis/ads/googleads/v0/common" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Settings for the +// +// Display Campaign Optimizer, initially termed "Explorer". +type ExplorerAutoOptimizerSetting struct { + // Indicates whether the optimizer is turned on. + OptIn *wrappers.BoolValue `protobuf:"bytes,1,opt,name=opt_in,json=optIn,proto3" json:"opt_in,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ExplorerAutoOptimizerSetting) Reset() { *m = ExplorerAutoOptimizerSetting{} } +func (m *ExplorerAutoOptimizerSetting) String() string { return proto.CompactTextString(m) } +func (*ExplorerAutoOptimizerSetting) ProtoMessage() {} +func (*ExplorerAutoOptimizerSetting) Descriptor() ([]byte, []int) { + return fileDescriptor_explorer_auto_optimizer_setting_f844f2dcfafe2751, []int{0} +} +func (m *ExplorerAutoOptimizerSetting) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ExplorerAutoOptimizerSetting.Unmarshal(m, b) +} +func (m *ExplorerAutoOptimizerSetting) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ExplorerAutoOptimizerSetting.Marshal(b, m, deterministic) +} +func (dst *ExplorerAutoOptimizerSetting) XXX_Merge(src proto.Message) { + xxx_messageInfo_ExplorerAutoOptimizerSetting.Merge(dst, src) +} +func (m *ExplorerAutoOptimizerSetting) XXX_Size() int { + return xxx_messageInfo_ExplorerAutoOptimizerSetting.Size(m) +} +func (m *ExplorerAutoOptimizerSetting) XXX_DiscardUnknown() { + xxx_messageInfo_ExplorerAutoOptimizerSetting.DiscardUnknown(m) +} + +var xxx_messageInfo_ExplorerAutoOptimizerSetting proto.InternalMessageInfo + +func (m *ExplorerAutoOptimizerSetting) GetOptIn() *wrappers.BoolValue { + if m != nil { + return m.OptIn + } + return nil +} + +func init() { + proto.RegisterType((*ExplorerAutoOptimizerSetting)(nil), "google.ads.googleads.v0.common.ExplorerAutoOptimizerSetting") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/common/explorer_auto_optimizer_setting.proto", fileDescriptor_explorer_auto_optimizer_setting_f844f2dcfafe2751) +} + +var fileDescriptor_explorer_auto_optimizer_setting_f844f2dcfafe2751 = []byte{ + // 274 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0xb1, 0x4e, 0xf3, 0x30, + 0x14, 0x85, 0x95, 0xfe, 0xfa, 0x3b, 0x84, 0xad, 0x13, 0xaa, 0x50, 0x05, 0x9d, 0x98, 0xae, 0x03, + 0x8c, 0x4c, 0x0e, 0xa0, 0x8a, 0x89, 0x02, 0x52, 0x06, 0x14, 0x29, 0x72, 0x1b, 0x63, 0x59, 0x72, + 0x7c, 0x2d, 0xdb, 0x29, 0x88, 0xc7, 0x61, 0xe4, 0x51, 0x78, 0x01, 0x5e, 0x07, 0x25, 0x37, 0xe9, + 0x46, 0xa7, 0x1c, 0x29, 0xe7, 0x7e, 0x9f, 0x75, 0xd2, 0x5b, 0x85, 0xa8, 0x8c, 0x64, 0xa2, 0x0e, + 0x8c, 0x62, 0x97, 0x76, 0x19, 0xdb, 0x62, 0xd3, 0xa0, 0x65, 0xf2, 0xdd, 0x19, 0xf4, 0xd2, 0x57, + 0xa2, 0x8d, 0x58, 0xa1, 0x8b, 0xba, 0xd1, 0x1f, 0xd2, 0x57, 0x41, 0xc6, 0xa8, 0xad, 0x02, 0xe7, + 0x31, 0xe2, 0x6c, 0x41, 0xa7, 0x20, 0xea, 0x00, 0x7b, 0x0a, 0xec, 0x32, 0x20, 0xca, 0x7c, 0xf8, + 0xcf, 0xfa, 0xf6, 0xa6, 0x7d, 0x65, 0x6f, 0x5e, 0x38, 0x27, 0x7d, 0xa0, 0xfb, 0xe5, 0x63, 0x7a, + 0x72, 0x37, 0x88, 0x78, 0x1b, 0xf1, 0x61, 0xd4, 0x3c, 0x93, 0x65, 0x76, 0x91, 0x4e, 0xd1, 0xc5, + 0x4a, 0xdb, 0xe3, 0xe4, 0x34, 0x39, 0x3f, 0xba, 0x9c, 0x0f, 0x16, 0x18, 0x81, 0x90, 0x23, 0x9a, + 0x42, 0x98, 0x56, 0x3e, 0xfd, 0x47, 0x17, 0xef, 0x6d, 0xfe, 0x93, 0xa4, 0xcb, 0x2d, 0x36, 0x70, + 0xf8, 0x65, 0xf9, 0xd9, 0x21, 0xef, 0xba, 0xa3, 0xaf, 0x93, 0x97, 0x61, 0x24, 0x50, 0x68, 0x84, + 0x55, 0x80, 0x5e, 0x31, 0x25, 0x6d, 0xef, 0x1e, 0x47, 0x73, 0x3a, 0xfc, 0xb5, 0xe1, 0x35, 0x7d, + 0x3e, 0x27, 0xff, 0x56, 0x9c, 0x7f, 0x4d, 0x16, 0x2b, 0x82, 0xf1, 0x3a, 0x00, 0xc5, 0x2e, 0x15, + 0x19, 0xdc, 0xf4, 0xb5, 0xef, 0xb1, 0x50, 0xf2, 0x3a, 0x94, 0xfb, 0x42, 0x59, 0x64, 0x25, 0x15, + 0x36, 0xd3, 0x5e, 0x7c, 0xf5, 0x1b, 0x00, 0x00, 0xff, 0xff, 0x15, 0xed, 0xa1, 0xbb, 0xbb, 0x01, + 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/feed_common.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/feed_common.pb.go new file mode 100644 index 000000000..fd8004170 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/feed_common.pb.go @@ -0,0 +1,100 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/common/feed_common.proto + +package common // import "google.golang.org/genproto/googleapis/ads/googleads/v0/common" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Represents a price in a particular currency. +type Price struct { + // Three-character ISO 4217 currency code. + CurrencyCode *wrappers.StringValue `protobuf:"bytes,1,opt,name=currency_code,json=currencyCode,proto3" json:"currency_code,omitempty"` + // Amount in micros. One million is equivalent to one unit. + AmountMicros *wrappers.Int64Value `protobuf:"bytes,2,opt,name=amount_micros,json=amountMicros,proto3" json:"amount_micros,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Price) Reset() { *m = Price{} } +func (m *Price) String() string { return proto.CompactTextString(m) } +func (*Price) ProtoMessage() {} +func (*Price) Descriptor() ([]byte, []int) { + return fileDescriptor_feed_common_3c465e0e5062e040, []int{0} +} +func (m *Price) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Price.Unmarshal(m, b) +} +func (m *Price) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Price.Marshal(b, m, deterministic) +} +func (dst *Price) XXX_Merge(src proto.Message) { + xxx_messageInfo_Price.Merge(dst, src) +} +func (m *Price) XXX_Size() int { + return xxx_messageInfo_Price.Size(m) +} +func (m *Price) XXX_DiscardUnknown() { + xxx_messageInfo_Price.DiscardUnknown(m) +} + +var xxx_messageInfo_Price proto.InternalMessageInfo + +func (m *Price) GetCurrencyCode() *wrappers.StringValue { + if m != nil { + return m.CurrencyCode + } + return nil +} + +func (m *Price) GetAmountMicros() *wrappers.Int64Value { + if m != nil { + return m.AmountMicros + } + return nil +} + +func init() { + proto.RegisterType((*Price)(nil), "google.ads.googleads.v0.common.Price") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/common/feed_common.proto", fileDescriptor_feed_common_3c465e0e5062e040) +} + +var fileDescriptor_feed_common_3c465e0e5062e040 = []byte{ + // 294 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0xc1, 0x4a, 0xf3, 0x40, + 0x14, 0x85, 0x49, 0x7f, 0x7e, 0x17, 0xd1, 0x22, 0x74, 0x55, 0x54, 0x8a, 0x74, 0xe5, 0x6a, 0x26, + 0xa8, 0xb8, 0x71, 0x63, 0x5a, 0xb1, 0xb8, 0x10, 0x82, 0x42, 0x16, 0x12, 0x08, 0xd3, 0x99, 0xdb, + 0x21, 0x90, 0xcc, 0x0d, 0x33, 0x49, 0xc5, 0x77, 0xf0, 0x29, 0x5c, 0xfa, 0x1e, 0x6e, 0x7c, 0x2a, + 0xc9, 0xdc, 0xa4, 0x1b, 0xd1, 0x55, 0x0e, 0xe4, 0x7c, 0xdf, 0x61, 0x6e, 0x18, 0x69, 0x44, 0x5d, + 0x02, 0x17, 0xca, 0x71, 0x8a, 0x5d, 0xda, 0x46, 0x5c, 0x62, 0x55, 0xa1, 0xe1, 0x1b, 0x00, 0x95, + 0x53, 0x66, 0xb5, 0xc5, 0x06, 0x27, 0x33, 0xaa, 0x31, 0xa1, 0x1c, 0xdb, 0x11, 0x6c, 0x1b, 0x31, + 0x6a, 0x1d, 0xf5, 0xff, 0xb9, 0x6f, 0xaf, 0xdb, 0x0d, 0x7f, 0xb1, 0xa2, 0xae, 0xc1, 0x3a, 0xe2, + 0xe7, 0x6f, 0x41, 0xf8, 0x3f, 0xb1, 0x85, 0x84, 0x49, 0x1c, 0x8e, 0x65, 0x6b, 0x2d, 0x18, 0xf9, + 0x9a, 0x4b, 0x54, 0x30, 0x0d, 0x4e, 0x83, 0xb3, 0xfd, 0xf3, 0x93, 0x5e, 0xcb, 0x06, 0x03, 0x7b, + 0x6a, 0x6c, 0x61, 0x74, 0x2a, 0xca, 0x16, 0x1e, 0x0f, 0x06, 0x64, 0x89, 0x0a, 0x26, 0x37, 0xe1, + 0x58, 0x54, 0xd8, 0x9a, 0x26, 0xaf, 0x0a, 0x69, 0xd1, 0x4d, 0x47, 0x5e, 0x71, 0xfc, 0x43, 0x71, + 0x6f, 0x9a, 0xab, 0xcb, 0xde, 0x40, 0xc4, 0x83, 0x07, 0x16, 0x9f, 0x41, 0x38, 0x97, 0x58, 0xb1, + 0xbf, 0x5f, 0xb5, 0x38, 0xbc, 0x03, 0x50, 0x4b, 0x9f, 0x93, 0xce, 0x99, 0x04, 0xcf, 0xb7, 0x3d, + 0xa2, 0xb1, 0x14, 0x46, 0x33, 0xb4, 0x9a, 0x6b, 0x30, 0x7e, 0x71, 0x38, 0x65, 0x5d, 0xb8, 0xdf, + 0x2e, 0x7b, 0x4d, 0x9f, 0xf7, 0xd1, 0xbf, 0x55, 0x1c, 0x7f, 0x8c, 0x66, 0x2b, 0x92, 0xc5, 0xca, + 0x31, 0x8a, 0x5d, 0x4a, 0x23, 0x46, 0x9b, 0x5f, 0x43, 0x21, 0x8b, 0x95, 0xcb, 0x76, 0x85, 0x2c, + 0x8d, 0x32, 0x2a, 0xac, 0xf7, 0xfc, 0xf0, 0xc5, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0xfc, 0x3c, + 0x7c, 0x9a, 0xd1, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/frequency_cap.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/frequency_cap.pb.go new file mode 100644 index 000000000..a32d726d9 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/frequency_cap.pb.go @@ -0,0 +1,181 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/common/frequency_cap.proto + +package common // import "google.golang.org/genproto/googleapis/ads/googleads/v0/common" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A rule specifying the maximum number of times an ad (or some set of ads) can +// be shown to a user over a particular time period. +type FrequencyCapEntry struct { + // The key of a particular frequency cap. There can be no more + // than one frequency cap with the same key. + Key *FrequencyCapKey `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + // Maximum number of events allowed during the time range by this cap. + Cap *wrappers.Int32Value `protobuf:"bytes,2,opt,name=cap,proto3" json:"cap,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FrequencyCapEntry) Reset() { *m = FrequencyCapEntry{} } +func (m *FrequencyCapEntry) String() string { return proto.CompactTextString(m) } +func (*FrequencyCapEntry) ProtoMessage() {} +func (*FrequencyCapEntry) Descriptor() ([]byte, []int) { + return fileDescriptor_frequency_cap_753d8e89250afc52, []int{0} +} +func (m *FrequencyCapEntry) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FrequencyCapEntry.Unmarshal(m, b) +} +func (m *FrequencyCapEntry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FrequencyCapEntry.Marshal(b, m, deterministic) +} +func (dst *FrequencyCapEntry) XXX_Merge(src proto.Message) { + xxx_messageInfo_FrequencyCapEntry.Merge(dst, src) +} +func (m *FrequencyCapEntry) XXX_Size() int { + return xxx_messageInfo_FrequencyCapEntry.Size(m) +} +func (m *FrequencyCapEntry) XXX_DiscardUnknown() { + xxx_messageInfo_FrequencyCapEntry.DiscardUnknown(m) +} + +var xxx_messageInfo_FrequencyCapEntry proto.InternalMessageInfo + +func (m *FrequencyCapEntry) GetKey() *FrequencyCapKey { + if m != nil { + return m.Key + } + return nil +} + +func (m *FrequencyCapEntry) GetCap() *wrappers.Int32Value { + if m != nil { + return m.Cap + } + return nil +} + +// A group of fields used as keys for a frequency cap. +// There can be no more than one frequency cap with the same key. +type FrequencyCapKey struct { + // The level on which the cap is to be applied (e.g. ad group ad, ad group). + // The cap is applied to all the entities of this level. + Level enums.FrequencyCapLevelEnum_FrequencyCapLevel `protobuf:"varint,1,opt,name=level,proto3,enum=google.ads.googleads.v0.enums.FrequencyCapLevelEnum_FrequencyCapLevel" json:"level,omitempty"` + // The type of event that the cap applies to (e.g. impression). + EventType enums.FrequencyCapEventTypeEnum_FrequencyCapEventType `protobuf:"varint,3,opt,name=event_type,json=eventType,proto3,enum=google.ads.googleads.v0.enums.FrequencyCapEventTypeEnum_FrequencyCapEventType" json:"event_type,omitempty"` + // Unit of time the cap is defined at (e.g. day, week). + TimeUnit enums.FrequencyCapTimeUnitEnum_FrequencyCapTimeUnit `protobuf:"varint,2,opt,name=time_unit,json=timeUnit,proto3,enum=google.ads.googleads.v0.enums.FrequencyCapTimeUnitEnum_FrequencyCapTimeUnit" json:"time_unit,omitempty"` + // Number of time units the cap lasts. + TimeLength *wrappers.Int32Value `protobuf:"bytes,4,opt,name=time_length,json=timeLength,proto3" json:"time_length,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FrequencyCapKey) Reset() { *m = FrequencyCapKey{} } +func (m *FrequencyCapKey) String() string { return proto.CompactTextString(m) } +func (*FrequencyCapKey) ProtoMessage() {} +func (*FrequencyCapKey) Descriptor() ([]byte, []int) { + return fileDescriptor_frequency_cap_753d8e89250afc52, []int{1} +} +func (m *FrequencyCapKey) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FrequencyCapKey.Unmarshal(m, b) +} +func (m *FrequencyCapKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FrequencyCapKey.Marshal(b, m, deterministic) +} +func (dst *FrequencyCapKey) XXX_Merge(src proto.Message) { + xxx_messageInfo_FrequencyCapKey.Merge(dst, src) +} +func (m *FrequencyCapKey) XXX_Size() int { + return xxx_messageInfo_FrequencyCapKey.Size(m) +} +func (m *FrequencyCapKey) XXX_DiscardUnknown() { + xxx_messageInfo_FrequencyCapKey.DiscardUnknown(m) +} + +var xxx_messageInfo_FrequencyCapKey proto.InternalMessageInfo + +func (m *FrequencyCapKey) GetLevel() enums.FrequencyCapLevelEnum_FrequencyCapLevel { + if m != nil { + return m.Level + } + return enums.FrequencyCapLevelEnum_UNSPECIFIED +} + +func (m *FrequencyCapKey) GetEventType() enums.FrequencyCapEventTypeEnum_FrequencyCapEventType { + if m != nil { + return m.EventType + } + return enums.FrequencyCapEventTypeEnum_UNSPECIFIED +} + +func (m *FrequencyCapKey) GetTimeUnit() enums.FrequencyCapTimeUnitEnum_FrequencyCapTimeUnit { + if m != nil { + return m.TimeUnit + } + return enums.FrequencyCapTimeUnitEnum_UNSPECIFIED +} + +func (m *FrequencyCapKey) GetTimeLength() *wrappers.Int32Value { + if m != nil { + return m.TimeLength + } + return nil +} + +func init() { + proto.RegisterType((*FrequencyCapEntry)(nil), "google.ads.googleads.v0.common.FrequencyCapEntry") + proto.RegisterType((*FrequencyCapKey)(nil), "google.ads.googleads.v0.common.FrequencyCapKey") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/common/frequency_cap.proto", fileDescriptor_frequency_cap_753d8e89250afc52) +} + +var fileDescriptor_frequency_cap_753d8e89250afc52 = []byte{ + // 432 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x53, 0x4f, 0x6b, 0xd4, 0x40, + 0x14, 0x27, 0x1b, 0x15, 0x3b, 0x85, 0x8a, 0x39, 0x2d, 0x15, 0x8a, 0xec, 0xc9, 0x8b, 0x33, 0x21, + 0x3d, 0x78, 0x68, 0x2f, 0x69, 0xdd, 0x16, 0x71, 0x91, 0x12, 0xea, 0x1e, 0x24, 0x10, 0xa6, 0xc9, + 0x6b, 0x0c, 0x66, 0xfe, 0x98, 0x4c, 0x22, 0xf9, 0x00, 0xe2, 0xf7, 0xf0, 0xe8, 0x17, 0x11, 0xfc, + 0x54, 0x32, 0x33, 0x49, 0x74, 0x5d, 0xd6, 0x25, 0xa7, 0xfc, 0x92, 0xf7, 0xfb, 0xf3, 0xf2, 0xde, + 0x0c, 0x0a, 0x72, 0x21, 0xf2, 0x12, 0x08, 0xcd, 0x6a, 0x62, 0xa1, 0x46, 0xad, 0x4f, 0x52, 0xc1, + 0x98, 0xe0, 0xe4, 0xbe, 0x82, 0xcf, 0x0d, 0xf0, 0xb4, 0x4b, 0x52, 0x2a, 0xb1, 0xac, 0x84, 0x12, + 0xde, 0x89, 0x25, 0x62, 0x9a, 0xd5, 0x78, 0xd4, 0xe0, 0xd6, 0xc7, 0x56, 0x73, 0x7c, 0xbe, 0xcb, + 0x13, 0x78, 0xc3, 0xea, 0x4d, 0xcb, 0x04, 0x5a, 0xe0, 0x2a, 0x51, 0x9d, 0x04, 0xeb, 0x7e, 0xfc, + 0x6a, 0x8a, 0xba, 0x84, 0x16, 0xca, 0x5e, 0x78, 0x36, 0x45, 0xa8, 0x0a, 0x06, 0x49, 0xc3, 0x0b, + 0xd5, 0x8b, 0xfb, 0x7f, 0x22, 0xe6, 0xed, 0xae, 0xb9, 0x27, 0x5f, 0x2a, 0x2a, 0x25, 0x54, 0xb5, + 0xad, 0x2f, 0xbe, 0x3a, 0xe8, 0xe9, 0xd5, 0xe0, 0x70, 0x49, 0xe5, 0x92, 0xab, 0xaa, 0xf3, 0x42, + 0xe4, 0x7e, 0x82, 0x6e, 0xee, 0x3c, 0x77, 0x5e, 0x1c, 0x06, 0x04, 0xff, 0x7f, 0x2e, 0xf8, 0x6f, + 0xfd, 0x5b, 0xe8, 0x22, 0xad, 0xf5, 0x5e, 0x22, 0x37, 0xa5, 0x72, 0x3e, 0x33, 0x16, 0xcf, 0x06, + 0x8b, 0xa1, 0x0d, 0xfc, 0x86, 0xab, 0xd3, 0x60, 0x4d, 0xcb, 0x06, 0x22, 0xcd, 0x5b, 0x7c, 0x73, + 0xd1, 0x93, 0x7f, 0x7c, 0xbc, 0x18, 0x3d, 0x34, 0x73, 0x30, 0x7d, 0x1c, 0x05, 0x57, 0x3b, 0xfb, + 0x30, 0x83, 0xd8, 0x68, 0x63, 0xa5, 0x75, 0x4b, 0xde, 0xb0, 0xed, 0xaf, 0x91, 0x35, 0xf5, 0x18, + 0x42, 0x7f, 0x76, 0x34, 0x77, 0x4d, 0xc4, 0xbb, 0x09, 0x11, 0x4b, 0x2d, 0xbe, 0xed, 0x24, 0x6c, + 0xc5, 0x8c, 0x95, 0xe8, 0x00, 0x06, 0xe8, 0x15, 0xe8, 0x60, 0xdc, 0x8d, 0x99, 0xca, 0x51, 0xb0, + 0x9a, 0x90, 0x76, 0x5b, 0x30, 0x78, 0xcf, 0x0b, 0xb5, 0x15, 0x36, 0x14, 0xa2, 0xc7, 0xaa, 0x47, + 0xde, 0x39, 0x3a, 0x34, 0x51, 0x25, 0xf0, 0x5c, 0x7d, 0x9c, 0x3f, 0xd8, 0xbf, 0x02, 0xa4, 0xf9, + 0x2b, 0x43, 0xbf, 0xf8, 0xe9, 0xa0, 0x45, 0x2a, 0xd8, 0x9e, 0xa5, 0x5f, 0x6c, 0x9c, 0x9a, 0x1b, + 0xed, 0x79, 0xe3, 0x7c, 0x78, 0xdd, 0x8b, 0x72, 0x51, 0x52, 0x9e, 0x63, 0x51, 0xe5, 0x24, 0x07, + 0x6e, 0x12, 0x87, 0xa3, 0x2b, 0x8b, 0x7a, 0xd7, 0xa5, 0x3c, 0xb3, 0x8f, 0xef, 0x33, 0xf7, 0x3a, + 0x0c, 0x7f, 0xcc, 0x4e, 0xae, 0xad, 0x59, 0x98, 0xd5, 0xd8, 0x42, 0x8d, 0xd6, 0x3e, 0xbe, 0x34, + 0xb4, 0x5f, 0x03, 0x21, 0x0e, 0xb3, 0x3a, 0x1e, 0x09, 0xf1, 0xda, 0x8f, 0x2d, 0xe1, 0xee, 0x91, + 0x09, 0x3e, 0xfd, 0x1d, 0x00, 0x00, 0xff, 0xff, 0x51, 0x58, 0xef, 0xf8, 0x0c, 0x04, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/keyword_plan_common.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/keyword_plan_common.pb.go new file mode 100644 index 000000000..4cdbb4ec5 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/keyword_plan_common.pb.go @@ -0,0 +1,105 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/common/keyword_plan_common.proto + +package common // import "google.golang.org/genproto/googleapis/ads/googleads/v0/common" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Historical metrics. +type KeywordPlanHistoricalMetrics struct { + // Average monthly searches for the past 12 months. + AvgMonthlySearches *wrappers.Int64Value `protobuf:"bytes,1,opt,name=avg_monthly_searches,json=avgMonthlySearches,proto3" json:"avg_monthly_searches,omitempty"` + // The competition level for the query. + Competition enums.KeywordPlanCompetitionLevelEnum_KeywordPlanCompetitionLevel `protobuf:"varint,2,opt,name=competition,proto3,enum=google.ads.googleads.v0.enums.KeywordPlanCompetitionLevelEnum_KeywordPlanCompetitionLevel" json:"competition,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *KeywordPlanHistoricalMetrics) Reset() { *m = KeywordPlanHistoricalMetrics{} } +func (m *KeywordPlanHistoricalMetrics) String() string { return proto.CompactTextString(m) } +func (*KeywordPlanHistoricalMetrics) ProtoMessage() {} +func (*KeywordPlanHistoricalMetrics) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_common_f1ae42b0d746bad1, []int{0} +} +func (m *KeywordPlanHistoricalMetrics) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_KeywordPlanHistoricalMetrics.Unmarshal(m, b) +} +func (m *KeywordPlanHistoricalMetrics) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_KeywordPlanHistoricalMetrics.Marshal(b, m, deterministic) +} +func (dst *KeywordPlanHistoricalMetrics) XXX_Merge(src proto.Message) { + xxx_messageInfo_KeywordPlanHistoricalMetrics.Merge(dst, src) +} +func (m *KeywordPlanHistoricalMetrics) XXX_Size() int { + return xxx_messageInfo_KeywordPlanHistoricalMetrics.Size(m) +} +func (m *KeywordPlanHistoricalMetrics) XXX_DiscardUnknown() { + xxx_messageInfo_KeywordPlanHistoricalMetrics.DiscardUnknown(m) +} + +var xxx_messageInfo_KeywordPlanHistoricalMetrics proto.InternalMessageInfo + +func (m *KeywordPlanHistoricalMetrics) GetAvgMonthlySearches() *wrappers.Int64Value { + if m != nil { + return m.AvgMonthlySearches + } + return nil +} + +func (m *KeywordPlanHistoricalMetrics) GetCompetition() enums.KeywordPlanCompetitionLevelEnum_KeywordPlanCompetitionLevel { + if m != nil { + return m.Competition + } + return enums.KeywordPlanCompetitionLevelEnum_UNSPECIFIED +} + +func init() { + proto.RegisterType((*KeywordPlanHistoricalMetrics)(nil), "google.ads.googleads.v0.common.KeywordPlanHistoricalMetrics") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/common/keyword_plan_common.proto", fileDescriptor_keyword_plan_common_f1ae42b0d746bad1) +} + +var fileDescriptor_keyword_plan_common_f1ae42b0d746bad1 = []byte{ + // 354 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x52, 0xcd, 0x4a, 0xeb, 0x40, + 0x14, 0x26, 0xbd, 0x70, 0x17, 0x29, 0xdc, 0x45, 0xb8, 0x48, 0xa9, 0x52, 0x4a, 0x57, 0x5d, 0xcd, + 0x84, 0x2a, 0x22, 0xb8, 0x4a, 0x55, 0xaa, 0x68, 0xa1, 0x54, 0xe8, 0xa2, 0x04, 0xc2, 0x34, 0x19, + 0xa7, 0xc1, 0x99, 0x39, 0x61, 0x66, 0x92, 0x52, 0xf0, 0x69, 0x5c, 0xfa, 0x28, 0xe2, 0x9b, 0xf8, + 0x12, 0x92, 0x4c, 0x5a, 0x2b, 0xd2, 0xae, 0xf2, 0x25, 0xf3, 0xfd, 0x9c, 0xef, 0x64, 0xdc, 0x0b, + 0x06, 0xc0, 0x38, 0xc5, 0x24, 0xd1, 0xd8, 0xc2, 0x12, 0x15, 0x3e, 0x8e, 0x41, 0x08, 0x90, 0xf8, + 0x99, 0xae, 0x57, 0xa0, 0x92, 0x28, 0xe3, 0x44, 0x46, 0xf6, 0x1b, 0xca, 0x14, 0x18, 0xf0, 0x3a, + 0x96, 0x8e, 0x48, 0xa2, 0xd1, 0x56, 0x89, 0x0a, 0x1f, 0x59, 0x56, 0x7b, 0xb8, 0xcf, 0x99, 0xca, + 0x5c, 0xe8, 0x5f, 0xc6, 0x19, 0x35, 0xa9, 0x49, 0x41, 0x46, 0x9c, 0x16, 0x94, 0xdb, 0x8c, 0x76, + 0x9d, 0x81, 0xab, 0xb7, 0x45, 0xfe, 0x84, 0x57, 0x8a, 0x64, 0x19, 0x55, 0xda, 0x9e, 0xf7, 0x3e, + 0x1d, 0xf7, 0xe4, 0xde, 0x1a, 0x4d, 0x38, 0x91, 0xb7, 0xa9, 0x36, 0xa0, 0xd2, 0x98, 0xf0, 0x31, + 0x35, 0x2a, 0x8d, 0xb5, 0x37, 0x76, 0xff, 0x93, 0x82, 0x45, 0x02, 0xa4, 0x59, 0xf2, 0x75, 0xa4, + 0x29, 0x51, 0xf1, 0x92, 0xea, 0x96, 0xd3, 0x75, 0xfa, 0xcd, 0xc1, 0x71, 0x3d, 0x38, 0xda, 0xf8, + 0xa3, 0x3b, 0x69, 0xce, 0xcf, 0x66, 0x84, 0xe7, 0x74, 0xea, 0x91, 0x82, 0x8d, 0xad, 0xee, 0xb1, + 0x96, 0x79, 0x2f, 0x6e, 0x73, 0x67, 0xd4, 0x56, 0xa3, 0xeb, 0xf4, 0xff, 0x0d, 0xe6, 0x68, 0xdf, + 0x26, 0xaa, 0xa6, 0x68, 0x67, 0xc0, 0xab, 0x6f, 0xf1, 0x43, 0x59, 0xf3, 0x46, 0xe6, 0xe2, 0xd0, + 0xf9, 0x74, 0x37, 0x6e, 0xf8, 0xe1, 0xb8, 0xbd, 0x18, 0x04, 0x3a, 0xbc, 0xf8, 0xe1, 0xd1, 0x4f, + 0x43, 0x01, 0x72, 0x52, 0xd6, 0x9b, 0x38, 0xf3, 0xeb, 0x5a, 0xc9, 0x80, 0x13, 0xc9, 0x10, 0x28, + 0x86, 0x19, 0x95, 0x55, 0xf9, 0xcd, 0x2f, 0xca, 0x52, 0xbd, 0xef, 0x2e, 0x5c, 0xda, 0xc7, 0x6b, + 0xe3, 0xcf, 0x28, 0x08, 0xde, 0x1a, 0x9d, 0x91, 0x35, 0x0b, 0x12, 0x8d, 0x2c, 0x2c, 0xd1, 0xcc, + 0x47, 0x36, 0xf3, 0x7d, 0x43, 0x08, 0x83, 0x44, 0x87, 0x5b, 0x42, 0x38, 0xf3, 0x43, 0x4b, 0x58, + 0xfc, 0xad, 0x82, 0x4f, 0xbf, 0x02, 0x00, 0x00, 0xff, 0xff, 0x86, 0x43, 0x77, 0x3f, 0x83, 0x02, + 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/matching_function.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/matching_function.pb.go new file mode 100644 index 000000000..a5d07719b --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/matching_function.pb.go @@ -0,0 +1,106 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/common/matching_function.proto + +package common // import "google.golang.org/genproto/googleapis/ads/googleads/v0/common" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Matching function associated with a +// CustomerFeed, CampaignFeed, or AdGroupFeed. The matching function is used +// to filter the set of feed items selected. +type MatchingFunction struct { + // String representation of the Function. + // + // Examples: + // 1) IDENTITY(true) or IDENTITY(false). All or none feed items serve. + // 2) EQUALS(CONTEXT.DEVICE,"Mobile") + // 3) IN(FEED_ITEM_ID,{1000001,1000002,1000003}) + // 4) CONTAINS_ANY(FeedAttribute[12345678,0],{"Mars cruise","Venus cruise"}) + // 5) AND(IN(FEED_ITEM_ID,{10001,10002}),EQUALS(CONTEXT.DEVICE,"Mobile")) + // See + // https: + // //developers.google.com/adwords/api/docs/guides/feed-matching-functions + // + // Note that because multiple strings may represent the same underlying + // function (whitespace and single versus double quotation marks, for + // example), the value returned may not be identical to the string sent in a + // mutate request. + FunctionString *wrappers.StringValue `protobuf:"bytes,1,opt,name=function_string,json=functionString,proto3" json:"function_string,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MatchingFunction) Reset() { *m = MatchingFunction{} } +func (m *MatchingFunction) String() string { return proto.CompactTextString(m) } +func (*MatchingFunction) ProtoMessage() {} +func (*MatchingFunction) Descriptor() ([]byte, []int) { + return fileDescriptor_matching_function_ced7df2e67441782, []int{0} +} +func (m *MatchingFunction) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MatchingFunction.Unmarshal(m, b) +} +func (m *MatchingFunction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MatchingFunction.Marshal(b, m, deterministic) +} +func (dst *MatchingFunction) XXX_Merge(src proto.Message) { + xxx_messageInfo_MatchingFunction.Merge(dst, src) +} +func (m *MatchingFunction) XXX_Size() int { + return xxx_messageInfo_MatchingFunction.Size(m) +} +func (m *MatchingFunction) XXX_DiscardUnknown() { + xxx_messageInfo_MatchingFunction.DiscardUnknown(m) +} + +var xxx_messageInfo_MatchingFunction proto.InternalMessageInfo + +func (m *MatchingFunction) GetFunctionString() *wrappers.StringValue { + if m != nil { + return m.FunctionString + } + return nil +} + +func init() { + proto.RegisterType((*MatchingFunction)(nil), "google.ads.googleads.v0.common.MatchingFunction") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/common/matching_function.proto", fileDescriptor_matching_function_ced7df2e67441782) +} + +var fileDescriptor_matching_function_ced7df2e67441782 = []byte{ + // 261 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x32, 0x4b, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xe4, 0xfc, + 0xdc, 0xdc, 0xfc, 0x3c, 0xfd, 0xdc, 0xc4, 0x92, 0xe4, 0x8c, 0xcc, 0xbc, 0xf4, 0xf8, 0xb4, 0xd2, + 0xbc, 0xe4, 0x92, 0xcc, 0xfc, 0x3c, 0xbd, 0x82, 0xa2, 0xfc, 0x92, 0x7c, 0x21, 0x39, 0x88, 0x62, + 0xbd, 0xc4, 0x94, 0x62, 0x3d, 0xb8, 0x3e, 0xbd, 0x32, 0x03, 0x3d, 0x88, 0x3e, 0x29, 0xa8, 0xbc, + 0x3e, 0x58, 0x75, 0x52, 0x69, 0x9a, 0x7e, 0x79, 0x51, 0x62, 0x41, 0x41, 0x6a, 0x51, 0x31, 0x44, + 0xbf, 0x52, 0x24, 0x97, 0x80, 0x2f, 0xd4, 0x68, 0x37, 0xa8, 0xc9, 0x42, 0xae, 0x5c, 0xfc, 0x30, + 0x5b, 0xe2, 0x8b, 0x4b, 0x8a, 0x32, 0xf3, 0xd2, 0x25, 0x18, 0x15, 0x18, 0x35, 0xb8, 0x8d, 0x64, + 0xa0, 0x56, 0xe8, 0xc1, 0x4c, 0xd3, 0x0b, 0x06, 0x4b, 0x87, 0x25, 0xe6, 0x94, 0xa6, 0x06, 0xf1, + 0xc1, 0x34, 0x41, 0x04, 0x9d, 0x4e, 0x33, 0x72, 0x29, 0x25, 0xe7, 0xe7, 0xea, 0xe1, 0x77, 0xa1, + 0x93, 0x28, 0xba, 0xfd, 0x01, 0x20, 0xc3, 0x03, 0x18, 0xa3, 0x5c, 0xa0, 0x1a, 0xd3, 0xf3, 0x73, + 0x12, 0xf3, 0xd2, 0xf5, 0xf2, 0x8b, 0xd2, 0xf5, 0xd3, 0x53, 0xf3, 0xc0, 0x56, 0xc3, 0x82, 0xa8, + 0x20, 0xb3, 0x18, 0x57, 0x88, 0x59, 0x43, 0xa8, 0x45, 0x4c, 0xcc, 0xee, 0x8e, 0x8e, 0xab, 0x98, + 0xe4, 0xdc, 0x21, 0x86, 0x39, 0xa6, 0x14, 0xeb, 0x41, 0x98, 0x20, 0x56, 0x98, 0x81, 0x9e, 0x33, + 0x58, 0xd9, 0x29, 0x98, 0x82, 0x18, 0xc7, 0x94, 0xe2, 0x18, 0xb8, 0x82, 0x98, 0x30, 0x83, 0x18, + 0x88, 0x82, 0x24, 0x36, 0xb0, 0xc5, 0xc6, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0xcd, 0x1d, 0x10, + 0x51, 0xa9, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/metrics.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/metrics.pb.go new file mode 100644 index 000000000..81942023c --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/metrics.pb.go @@ -0,0 +1,707 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/common/metrics.proto + +package common // import "google.golang.org/genproto/googleapis/ads/googleads/v0/common" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Metrics data. +type Metrics struct { + // All conversions from interactions (as oppose to view through conversions) + // divided by the number of ad interactions. + AllConversionsFromInteractionsRate *wrappers.DoubleValue `protobuf:"bytes,65,opt,name=all_conversions_from_interactions_rate,json=allConversionsFromInteractionsRate,proto3" json:"all_conversions_from_interactions_rate,omitempty"` + // The total value of all conversions. + AllConversionsValue *wrappers.DoubleValue `protobuf:"bytes,66,opt,name=all_conversions_value,json=allConversionsValue,proto3" json:"all_conversions_value,omitempty"` + // The total number of conversions. This includes "Conversions" plus + // conversions that have their "Include in Conversions" setting unchecked. + AllConversions *wrappers.DoubleValue `protobuf:"bytes,7,opt,name=all_conversions,json=allConversions,proto3" json:"all_conversions,omitempty"` + // The value of all conversions divided by the total cost of ad interactions + // (such as clicks for text ads or views for video ads). + AllConversionsValuePerCost *wrappers.DoubleValue `protobuf:"bytes,62,opt,name=all_conversions_value_per_cost,json=allConversionsValuePerCost,proto3" json:"all_conversions_value_per_cost,omitempty"` + // The value of all conversions from interactions divided by the total number + // of interactions. + AllConversionsFromInteractionsValuePerInteraction *wrappers.DoubleValue `protobuf:"bytes,67,opt,name=all_conversions_from_interactions_value_per_interaction,json=allConversionsFromInteractionsValuePerInteraction,proto3" json:"all_conversions_from_interactions_value_per_interaction,omitempty"` + // The average amount you pay per interaction. This amount is the total cost + // of your ads divided by the total number of interactions. + AverageCost *wrappers.DoubleValue `protobuf:"bytes,8,opt,name=average_cost,json=averageCost,proto3" json:"average_cost,omitempty"` + // The total cost of all clicks divided by the total number of clicks + // received. + AverageCpc *wrappers.DoubleValue `protobuf:"bytes,9,opt,name=average_cpc,json=averageCpc,proto3" json:"average_cpc,omitempty"` + // Average cost-per-thousand impressions (CPM). + AverageCpm *wrappers.DoubleValue `protobuf:"bytes,10,opt,name=average_cpm,json=averageCpm,proto3" json:"average_cpm,omitempty"` + // The average amount you pay each time someone views your ad. + // The average CPV is defined by the total cost of all ad views divided by + // the number of views. + AverageCpv *wrappers.DoubleValue `protobuf:"bytes,11,opt,name=average_cpv,json=averageCpv,proto3" json:"average_cpv,omitempty"` + // Your ad's position relative to those of other advertisers. + AveragePosition *wrappers.DoubleValue `protobuf:"bytes,13,opt,name=average_position,json=averagePosition,proto3" json:"average_position,omitempty"` + // An indication on how other advertisers' Shopping ads for similar products + // are performing based on how often people who see their ad click on it. + BenchmarkCtr *wrappers.DoubleValue `protobuf:"bytes,77,opt,name=benchmark_ctr,json=benchmarkCtr,proto3" json:"benchmark_ctr,omitempty"` + // Percentage of clicks where the user only visited a single page on your + // site. Imported from Google Analytics. + BounceRate *wrappers.DoubleValue `protobuf:"bytes,15,opt,name=bounce_rate,json=bounceRate,proto3" json:"bounce_rate,omitempty"` + // The number of clicks. + Clicks *wrappers.Int64Value `protobuf:"bytes,19,opt,name=clicks,proto3" json:"clicks,omitempty"` + // The estimated percent of times that your ad was eligible to show + // on the Display Network but didn't because your budget was too low. + // Note: Content budget lost impression share is reported in the range of 0 + // to 0.9. Any value above 0.9 is reported as 0.9001. + ContentBudgetLostImpressionShare *wrappers.DoubleValue `protobuf:"bytes,20,opt,name=content_budget_lost_impression_share,json=contentBudgetLostImpressionShare,proto3" json:"content_budget_lost_impression_share,omitempty"` + // The impressions you've received on the Display Network divided + // by the estimated number of impressions you were eligible to receive. + // Note: Content impression share is reported in the range of 0.1 to 1. Any + // value below 0.1 is reported as 0.0999. + ContentImpressionShare *wrappers.DoubleValue `protobuf:"bytes,21,opt,name=content_impression_share,json=contentImpressionShare,proto3" json:"content_impression_share,omitempty"` + // The last date/time a conversion tag for this conversion action successfully + // fired and was seen by Google Ads. This firing event may not have been the + // result of an attributable conversion (e.g. because the tag was fired from a + // browser that did not previously click an ad from an appropriate + // advertiser). The date/time is in the customer's time zone. + ConversionLastReceivedRequestDateTime *wrappers.StringValue `protobuf:"bytes,73,opt,name=conversion_last_received_request_date_time,json=conversionLastReceivedRequestDateTime,proto3" json:"conversion_last_received_request_date_time,omitempty"` + // The date of the most recent conversion for this conversion action. The date + // is in the customer's time zone. + ConversionLastConversionDate *wrappers.StringValue `protobuf:"bytes,74,opt,name=conversion_last_conversion_date,json=conversionLastConversionDate,proto3" json:"conversion_last_conversion_date,omitempty"` + // The estimated percentage of impressions on the Display Network + // that your ads didn't receive due to poor Ad Rank. + // Note: Content rank lost impression share is reported in the range of 0 + // to 0.9. Any value above 0.9 is reported as 0.9001. + ContentRankLostImpressionShare *wrappers.DoubleValue `protobuf:"bytes,22,opt,name=content_rank_lost_impression_share,json=contentRankLostImpressionShare,proto3" json:"content_rank_lost_impression_share,omitempty"` + // Conversions from interactions divided by the number of ad interactions + // (such as clicks for text ads or views for video ads). + ConversionsFromInteractionsRate *wrappers.DoubleValue `protobuf:"bytes,69,opt,name=conversions_from_interactions_rate,json=conversionsFromInteractionsRate,proto3" json:"conversions_from_interactions_rate,omitempty"` + // The total value of conversions. + ConversionsValue *wrappers.DoubleValue `protobuf:"bytes,70,opt,name=conversions_value,json=conversionsValue,proto3" json:"conversions_value,omitempty"` + // The value of conversions divided by the cost of ad interactions. + ConversionsValuePerCost *wrappers.DoubleValue `protobuf:"bytes,71,opt,name=conversions_value_per_cost,json=conversionsValuePerCost,proto3" json:"conversions_value_per_cost,omitempty"` + // The value of conversions from interactions divided by the number of ad + // interactions. + ConversionsFromInteractionsValuePerInteraction *wrappers.DoubleValue `protobuf:"bytes,72,opt,name=conversions_from_interactions_value_per_interaction,json=conversionsFromInteractionsValuePerInteraction,proto3" json:"conversions_from_interactions_value_per_interaction,omitempty"` + // The number of conversions. This only includes conversion actions which have + // "Include in Conversions" checked. + Conversions *wrappers.DoubleValue `protobuf:"bytes,25,opt,name=conversions,proto3" json:"conversions,omitempty"` + // The sum of your cost-per-click (CPC) and cost-per-thousand impressions + // (CPM) costs during this period. + CostMicros *wrappers.Int64Value `protobuf:"bytes,26,opt,name=cost_micros,json=costMicros,proto3" json:"cost_micros,omitempty"` + // The cost of ad interactions divided by all conversions. + CostPerAllConversions *wrappers.DoubleValue `protobuf:"bytes,68,opt,name=cost_per_all_conversions,json=costPerAllConversions,proto3" json:"cost_per_all_conversions,omitempty"` + // The cost of ad interactions divided by conversions. + CostPerConversion *wrappers.DoubleValue `protobuf:"bytes,28,opt,name=cost_per_conversion,json=costPerConversion,proto3" json:"cost_per_conversion,omitempty"` + // Conversions from when a customer clicks on a Google Ads ad on one device, + // then converts on a different device or browser. + // Cross-device conversions are already included in all_conversions. + CrossDeviceConversions *wrappers.DoubleValue `protobuf:"bytes,29,opt,name=cross_device_conversions,json=crossDeviceConversions,proto3" json:"cross_device_conversions,omitempty"` + // The number of clicks your ad receives (Clicks) divided by the number + // of times your ad is shown (Impressions). + Ctr *wrappers.DoubleValue `protobuf:"bytes,30,opt,name=ctr,proto3" json:"ctr,omitempty"` + // How often people engage with your ad after it's shown to them. This is the + // number of ad expansions divided by the number of times your ad is shown. + EngagementRate *wrappers.DoubleValue `protobuf:"bytes,31,opt,name=engagement_rate,json=engagementRate,proto3" json:"engagement_rate,omitempty"` + // The number of engagements. + // An engagement occurs when a viewer expands your Lightbox ad. Also, in the + // future, other ad types may support engagement metrics. + Engagements *wrappers.Int64Value `protobuf:"bytes,32,opt,name=engagements,proto3" json:"engagements,omitempty"` + // Average lead value of hotel. + HotelAverageLeadValueMicros *wrappers.DoubleValue `protobuf:"bytes,75,opt,name=hotel_average_lead_value_micros,json=hotelAverageLeadValueMicros,proto3" json:"hotel_average_lead_value_micros,omitempty"` + // Count of how often your ad has appeared on a search results page or + // website on the Google Network. + Impressions *wrappers.Int64Value `protobuf:"bytes,37,opt,name=impressions,proto3" json:"impressions,omitempty"` + // How often people interact with your ad after it is shown to them. + // This is the number of interactions divided by the number of times your ad + // is shown. + InteractionRate *wrappers.DoubleValue `protobuf:"bytes,38,opt,name=interaction_rate,json=interactionRate,proto3" json:"interaction_rate,omitempty"` + // The number of interactions. + // An interaction is the main user action associated with an ad format-clicks + // for text and shopping ads, views for video ads, and so on. + Interactions *wrappers.Int64Value `protobuf:"bytes,39,opt,name=interactions,proto3" json:"interactions,omitempty"` + // The percentage of clicks filtered out of your total number of clicks + // (filtered + non-filtered clicks) during the reporting period. + InvalidClickRate *wrappers.DoubleValue `protobuf:"bytes,40,opt,name=invalid_click_rate,json=invalidClickRate,proto3" json:"invalid_click_rate,omitempty"` + // Number of clicks Google considers illegitimate and doesn't charge you for. + InvalidClicks *wrappers.Int64Value `protobuf:"bytes,41,opt,name=invalid_clicks,json=invalidClicks,proto3" json:"invalid_clicks,omitempty"` + // Percentage of first-time sessions (from people who had never visited your + // site before). Imported from Google Analytics. + PercentNewVisitors *wrappers.DoubleValue `protobuf:"bytes,42,opt,name=percent_new_visitors,json=percentNewVisitors,proto3" json:"percent_new_visitors,omitempty"` + // Number of offline phone calls. + PhoneCalls *wrappers.Int64Value `protobuf:"bytes,43,opt,name=phone_calls,json=phoneCalls,proto3" json:"phone_calls,omitempty"` + // Number of offline phone impressions. + PhoneImpressions *wrappers.Int64Value `protobuf:"bytes,44,opt,name=phone_impressions,json=phoneImpressions,proto3" json:"phone_impressions,omitempty"` + // Number of phone calls received (phone_calls) divided by the number of + // times your phone number is shown (phone_impressions). + PhoneThroughRate *wrappers.DoubleValue `protobuf:"bytes,45,opt,name=phone_through_rate,json=phoneThroughRate,proto3" json:"phone_through_rate,omitempty"` + // Your clickthrough rate (Ctr) divided by the average clickthrough rate of + // all advertisers on the websites that show your ads. Measures how your ads + // perform on Display Network sites compared to other ads on the same sites. + RelativeCtr *wrappers.DoubleValue `protobuf:"bytes,46,opt,name=relative_ctr,json=relativeCtr,proto3" json:"relative_ctr,omitempty"` + // The percentage of the customer's Shopping ad impressions that are shown in + // the most prominent Shopping position. See + // this Merchant + // Center article for details. Any value below 0.1 is reported as 0.0999. + SearchAbsoluteTopImpressionShare *wrappers.DoubleValue `protobuf:"bytes,78,opt,name=search_absolute_top_impression_share,json=searchAbsoluteTopImpressionShare,proto3" json:"search_absolute_top_impression_share,omitempty"` + // The estimated percent of times that your ad was eligible to show on the + // Search Network but didn't because your budget was too low. Note: Search + // budget lost impression share is reported in the range of 0 to 0.9. Any + // value above 0.9 is reported as 0.9001. + SearchBudgetLostImpressionShare *wrappers.DoubleValue `protobuf:"bytes,47,opt,name=search_budget_lost_impression_share,json=searchBudgetLostImpressionShare,proto3" json:"search_budget_lost_impression_share,omitempty"` + // The impressions you've received divided by the estimated number of + // impressions you were eligible to receive on the Search Network for search + // terms that matched your keywords exactly (or were close variants of your + // keyword), regardless of your keyword match types. Note: Search exact match + // impression share is reported in the range of 0.1 to 1. Any value below 0.1 + // is reported as 0.0999. + SearchExactMatchImpressionShare *wrappers.DoubleValue `protobuf:"bytes,49,opt,name=search_exact_match_impression_share,json=searchExactMatchImpressionShare,proto3" json:"search_exact_match_impression_share,omitempty"` + // The impressions you've received on the Search Network divided + // by the estimated number of impressions you were eligible to receive. + // Note: Search impression share is reported in the range of 0.1 to 1. Any + // value below 0.1 is reported as 0.0999. + SearchImpressionShare *wrappers.DoubleValue `protobuf:"bytes,50,opt,name=search_impression_share,json=searchImpressionShare,proto3" json:"search_impression_share,omitempty"` + // The estimated percentage of impressions on the Search Network + // that your ads didn't receive due to poor Ad Rank. + // Note: Search rank lost impression share is reported in the range of 0 to + // 0.9. Any value above 0.9 is reported as 0.9001. + SearchRankLostImpressionShare *wrappers.DoubleValue `protobuf:"bytes,51,opt,name=search_rank_lost_impression_share,json=searchRankLostImpressionShare,proto3" json:"search_rank_lost_impression_share,omitempty"` + // The value of all conversions divided by the number of all conversions. + ValuePerAllConversions *wrappers.DoubleValue `protobuf:"bytes,52,opt,name=value_per_all_conversions,json=valuePerAllConversions,proto3" json:"value_per_all_conversions,omitempty"` + // The value of conversions divided by the number of conversions. + ValuePerConversion *wrappers.DoubleValue `protobuf:"bytes,53,opt,name=value_per_conversion,json=valuePerConversion,proto3" json:"value_per_conversion,omitempty"` + // Percentage of impressions where the viewer watched all of your video. + VideoQuartile_100Rate *wrappers.DoubleValue `protobuf:"bytes,54,opt,name=video_quartile_100_rate,json=videoQuartile100Rate,proto3" json:"video_quartile_100_rate,omitempty"` + // Percentage of impressions where the viewer watched 25% of your video. + VideoQuartile_25Rate *wrappers.DoubleValue `protobuf:"bytes,55,opt,name=video_quartile_25_rate,json=videoQuartile25Rate,proto3" json:"video_quartile_25_rate,omitempty"` + // Percentage of impressions where the viewer watched 50% of your video. + VideoQuartile_50Rate *wrappers.DoubleValue `protobuf:"bytes,56,opt,name=video_quartile_50_rate,json=videoQuartile50Rate,proto3" json:"video_quartile_50_rate,omitempty"` + // Percentage of impressions where the viewer watched 75% of your video. + VideoQuartile_75Rate *wrappers.DoubleValue `protobuf:"bytes,57,opt,name=video_quartile_75_rate,json=videoQuartile75Rate,proto3" json:"video_quartile_75_rate,omitempty"` + // The number of views your TrueView video ad receives divided by its number + // of impressions, including thumbnail impressions for TrueView in-display + // ads. + VideoViewRate *wrappers.DoubleValue `protobuf:"bytes,58,opt,name=video_view_rate,json=videoViewRate,proto3" json:"video_view_rate,omitempty"` + // The number of times your video ads were viewed. + VideoViews *wrappers.Int64Value `protobuf:"bytes,59,opt,name=video_views,json=videoViews,proto3" json:"video_views,omitempty"` + // The total number of view-through conversions. + // These happen when a customer sees an image or rich media ad, then later + // completes a conversion on your site without interacting with (e.g., + // clicking on) another ad. + ViewThroughConversions *wrappers.Int64Value `protobuf:"bytes,60,opt,name=view_through_conversions,json=viewThroughConversions,proto3" json:"view_through_conversions,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Metrics) Reset() { *m = Metrics{} } +func (m *Metrics) String() string { return proto.CompactTextString(m) } +func (*Metrics) ProtoMessage() {} +func (*Metrics) Descriptor() ([]byte, []int) { + return fileDescriptor_metrics_7c5dfe462d366304, []int{0} +} +func (m *Metrics) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Metrics.Unmarshal(m, b) +} +func (m *Metrics) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Metrics.Marshal(b, m, deterministic) +} +func (dst *Metrics) XXX_Merge(src proto.Message) { + xxx_messageInfo_Metrics.Merge(dst, src) +} +func (m *Metrics) XXX_Size() int { + return xxx_messageInfo_Metrics.Size(m) +} +func (m *Metrics) XXX_DiscardUnknown() { + xxx_messageInfo_Metrics.DiscardUnknown(m) +} + +var xxx_messageInfo_Metrics proto.InternalMessageInfo + +func (m *Metrics) GetAllConversionsFromInteractionsRate() *wrappers.DoubleValue { + if m != nil { + return m.AllConversionsFromInteractionsRate + } + return nil +} + +func (m *Metrics) GetAllConversionsValue() *wrappers.DoubleValue { + if m != nil { + return m.AllConversionsValue + } + return nil +} + +func (m *Metrics) GetAllConversions() *wrappers.DoubleValue { + if m != nil { + return m.AllConversions + } + return nil +} + +func (m *Metrics) GetAllConversionsValuePerCost() *wrappers.DoubleValue { + if m != nil { + return m.AllConversionsValuePerCost + } + return nil +} + +func (m *Metrics) GetAllConversionsFromInteractionsValuePerInteraction() *wrappers.DoubleValue { + if m != nil { + return m.AllConversionsFromInteractionsValuePerInteraction + } + return nil +} + +func (m *Metrics) GetAverageCost() *wrappers.DoubleValue { + if m != nil { + return m.AverageCost + } + return nil +} + +func (m *Metrics) GetAverageCpc() *wrappers.DoubleValue { + if m != nil { + return m.AverageCpc + } + return nil +} + +func (m *Metrics) GetAverageCpm() *wrappers.DoubleValue { + if m != nil { + return m.AverageCpm + } + return nil +} + +func (m *Metrics) GetAverageCpv() *wrappers.DoubleValue { + if m != nil { + return m.AverageCpv + } + return nil +} + +func (m *Metrics) GetAveragePosition() *wrappers.DoubleValue { + if m != nil { + return m.AveragePosition + } + return nil +} + +func (m *Metrics) GetBenchmarkCtr() *wrappers.DoubleValue { + if m != nil { + return m.BenchmarkCtr + } + return nil +} + +func (m *Metrics) GetBounceRate() *wrappers.DoubleValue { + if m != nil { + return m.BounceRate + } + return nil +} + +func (m *Metrics) GetClicks() *wrappers.Int64Value { + if m != nil { + return m.Clicks + } + return nil +} + +func (m *Metrics) GetContentBudgetLostImpressionShare() *wrappers.DoubleValue { + if m != nil { + return m.ContentBudgetLostImpressionShare + } + return nil +} + +func (m *Metrics) GetContentImpressionShare() *wrappers.DoubleValue { + if m != nil { + return m.ContentImpressionShare + } + return nil +} + +func (m *Metrics) GetConversionLastReceivedRequestDateTime() *wrappers.StringValue { + if m != nil { + return m.ConversionLastReceivedRequestDateTime + } + return nil +} + +func (m *Metrics) GetConversionLastConversionDate() *wrappers.StringValue { + if m != nil { + return m.ConversionLastConversionDate + } + return nil +} + +func (m *Metrics) GetContentRankLostImpressionShare() *wrappers.DoubleValue { + if m != nil { + return m.ContentRankLostImpressionShare + } + return nil +} + +func (m *Metrics) GetConversionsFromInteractionsRate() *wrappers.DoubleValue { + if m != nil { + return m.ConversionsFromInteractionsRate + } + return nil +} + +func (m *Metrics) GetConversionsValue() *wrappers.DoubleValue { + if m != nil { + return m.ConversionsValue + } + return nil +} + +func (m *Metrics) GetConversionsValuePerCost() *wrappers.DoubleValue { + if m != nil { + return m.ConversionsValuePerCost + } + return nil +} + +func (m *Metrics) GetConversionsFromInteractionsValuePerInteraction() *wrappers.DoubleValue { + if m != nil { + return m.ConversionsFromInteractionsValuePerInteraction + } + return nil +} + +func (m *Metrics) GetConversions() *wrappers.DoubleValue { + if m != nil { + return m.Conversions + } + return nil +} + +func (m *Metrics) GetCostMicros() *wrappers.Int64Value { + if m != nil { + return m.CostMicros + } + return nil +} + +func (m *Metrics) GetCostPerAllConversions() *wrappers.DoubleValue { + if m != nil { + return m.CostPerAllConversions + } + return nil +} + +func (m *Metrics) GetCostPerConversion() *wrappers.DoubleValue { + if m != nil { + return m.CostPerConversion + } + return nil +} + +func (m *Metrics) GetCrossDeviceConversions() *wrappers.DoubleValue { + if m != nil { + return m.CrossDeviceConversions + } + return nil +} + +func (m *Metrics) GetCtr() *wrappers.DoubleValue { + if m != nil { + return m.Ctr + } + return nil +} + +func (m *Metrics) GetEngagementRate() *wrappers.DoubleValue { + if m != nil { + return m.EngagementRate + } + return nil +} + +func (m *Metrics) GetEngagements() *wrappers.Int64Value { + if m != nil { + return m.Engagements + } + return nil +} + +func (m *Metrics) GetHotelAverageLeadValueMicros() *wrappers.DoubleValue { + if m != nil { + return m.HotelAverageLeadValueMicros + } + return nil +} + +func (m *Metrics) GetImpressions() *wrappers.Int64Value { + if m != nil { + return m.Impressions + } + return nil +} + +func (m *Metrics) GetInteractionRate() *wrappers.DoubleValue { + if m != nil { + return m.InteractionRate + } + return nil +} + +func (m *Metrics) GetInteractions() *wrappers.Int64Value { + if m != nil { + return m.Interactions + } + return nil +} + +func (m *Metrics) GetInvalidClickRate() *wrappers.DoubleValue { + if m != nil { + return m.InvalidClickRate + } + return nil +} + +func (m *Metrics) GetInvalidClicks() *wrappers.Int64Value { + if m != nil { + return m.InvalidClicks + } + return nil +} + +func (m *Metrics) GetPercentNewVisitors() *wrappers.DoubleValue { + if m != nil { + return m.PercentNewVisitors + } + return nil +} + +func (m *Metrics) GetPhoneCalls() *wrappers.Int64Value { + if m != nil { + return m.PhoneCalls + } + return nil +} + +func (m *Metrics) GetPhoneImpressions() *wrappers.Int64Value { + if m != nil { + return m.PhoneImpressions + } + return nil +} + +func (m *Metrics) GetPhoneThroughRate() *wrappers.DoubleValue { + if m != nil { + return m.PhoneThroughRate + } + return nil +} + +func (m *Metrics) GetRelativeCtr() *wrappers.DoubleValue { + if m != nil { + return m.RelativeCtr + } + return nil +} + +func (m *Metrics) GetSearchAbsoluteTopImpressionShare() *wrappers.DoubleValue { + if m != nil { + return m.SearchAbsoluteTopImpressionShare + } + return nil +} + +func (m *Metrics) GetSearchBudgetLostImpressionShare() *wrappers.DoubleValue { + if m != nil { + return m.SearchBudgetLostImpressionShare + } + return nil +} + +func (m *Metrics) GetSearchExactMatchImpressionShare() *wrappers.DoubleValue { + if m != nil { + return m.SearchExactMatchImpressionShare + } + return nil +} + +func (m *Metrics) GetSearchImpressionShare() *wrappers.DoubleValue { + if m != nil { + return m.SearchImpressionShare + } + return nil +} + +func (m *Metrics) GetSearchRankLostImpressionShare() *wrappers.DoubleValue { + if m != nil { + return m.SearchRankLostImpressionShare + } + return nil +} + +func (m *Metrics) GetValuePerAllConversions() *wrappers.DoubleValue { + if m != nil { + return m.ValuePerAllConversions + } + return nil +} + +func (m *Metrics) GetValuePerConversion() *wrappers.DoubleValue { + if m != nil { + return m.ValuePerConversion + } + return nil +} + +func (m *Metrics) GetVideoQuartile_100Rate() *wrappers.DoubleValue { + if m != nil { + return m.VideoQuartile_100Rate + } + return nil +} + +func (m *Metrics) GetVideoQuartile_25Rate() *wrappers.DoubleValue { + if m != nil { + return m.VideoQuartile_25Rate + } + return nil +} + +func (m *Metrics) GetVideoQuartile_50Rate() *wrappers.DoubleValue { + if m != nil { + return m.VideoQuartile_50Rate + } + return nil +} + +func (m *Metrics) GetVideoQuartile_75Rate() *wrappers.DoubleValue { + if m != nil { + return m.VideoQuartile_75Rate + } + return nil +} + +func (m *Metrics) GetVideoViewRate() *wrappers.DoubleValue { + if m != nil { + return m.VideoViewRate + } + return nil +} + +func (m *Metrics) GetVideoViews() *wrappers.Int64Value { + if m != nil { + return m.VideoViews + } + return nil +} + +func (m *Metrics) GetViewThroughConversions() *wrappers.Int64Value { + if m != nil { + return m.ViewThroughConversions + } + return nil +} + +func init() { + proto.RegisterType((*Metrics)(nil), "google.ads.googleads.v0.common.Metrics") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/common/metrics.proto", fileDescriptor_metrics_7c5dfe462d366304) +} + +var fileDescriptor_metrics_7c5dfe462d366304 = []byte{ + // 1314 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x98, 0xed, 0x52, 0xdb, 0x46, + 0x17, 0xc7, 0x87, 0x64, 0x26, 0x79, 0x9e, 0x35, 0x84, 0x44, 0x21, 0x44, 0x21, 0x09, 0x49, 0xf3, + 0xd6, 0x34, 0x4d, 0x65, 0x03, 0x21, 0xb4, 0xcd, 0xdb, 0x18, 0x93, 0x10, 0x52, 0x60, 0x08, 0xa1, + 0x74, 0xda, 0x61, 0x66, 0xbb, 0x5e, 0x9f, 0xd8, 0x2a, 0x92, 0x56, 0xd9, 0x5d, 0x8b, 0xde, 0x42, + 0xbf, 0xf5, 0x1a, 0xfa, 0xb1, 0x97, 0xd1, 0x8f, 0xbd, 0x85, 0xde, 0x4c, 0x67, 0x5f, 0x6c, 0xc9, + 0x32, 0xc6, 0x4b, 0x3f, 0x21, 0xc4, 0xf9, 0xff, 0xfe, 0x47, 0xab, 0xdd, 0x73, 0x0e, 0x42, 0x8f, + 0xdb, 0x8c, 0xb5, 0x23, 0xa8, 0x92, 0x96, 0xa8, 0x9a, 0x4b, 0x75, 0x95, 0xd5, 0xaa, 0x94, 0xc5, + 0x31, 0x4b, 0xaa, 0x31, 0x48, 0x1e, 0x52, 0x11, 0xa4, 0x9c, 0x49, 0xe6, 0xcd, 0x9b, 0x90, 0x80, + 0xb4, 0x44, 0xd0, 0x8f, 0x0e, 0xb2, 0x5a, 0x60, 0xa2, 0xe7, 0xec, 0xdf, 0xab, 0x3a, 0xba, 0xd9, + 0xfd, 0x58, 0x3d, 0xe2, 0x24, 0x4d, 0x81, 0x5b, 0xfd, 0x9d, 0x7f, 0xee, 0xa2, 0xf3, 0x5b, 0x86, + 0xe8, 0xa5, 0xe8, 0x01, 0x89, 0x22, 0x4c, 0x59, 0x92, 0x01, 0x17, 0x21, 0x4b, 0x04, 0xfe, 0xc8, + 0x59, 0x8c, 0xc3, 0x44, 0x02, 0x27, 0x54, 0xea, 0x3b, 0x9c, 0x48, 0xf0, 0xeb, 0xb7, 0x27, 0x1e, + 0x56, 0x16, 0x6f, 0x58, 0xc7, 0xa0, 0x07, 0x0f, 0xd6, 0x58, 0xb7, 0x19, 0xc1, 0x3e, 0x89, 0xba, + 0xb0, 0x7b, 0x87, 0x44, 0x51, 0x23, 0x47, 0xbd, 0xe1, 0x2c, 0xde, 0x28, 0x80, 0x76, 0x89, 0x04, + 0x6f, 0x07, 0x5d, 0x29, 0x3b, 0x66, 0x4a, 0xec, 0xaf, 0x3a, 0x18, 0x5c, 0x1e, 0x34, 0xd0, 0x37, + 0xbd, 0xd7, 0x68, 0xba, 0x44, 0xf4, 0xcf, 0x3b, 0xb0, 0x2e, 0x0c, 0xb2, 0xbc, 0x9f, 0xd1, 0xfc, + 0xb1, 0x89, 0xe1, 0x14, 0x38, 0xa6, 0x4c, 0x48, 0xff, 0xa5, 0x03, 0x75, 0xee, 0x98, 0x0c, 0x77, + 0x80, 0x37, 0x98, 0x90, 0xde, 0xef, 0x13, 0x68, 0x65, 0xfc, 0x6a, 0xe7, 0xa6, 0x85, 0xdb, 0x7e, + 0xc3, 0xc1, 0x7b, 0xe1, 0xe4, 0xe5, 0xef, 0xe5, 0x52, 0xb8, 0xe7, 0xbd, 0x42, 0x93, 0x24, 0x03, + 0x4e, 0xda, 0x60, 0x1e, 0xf1, 0x7f, 0x0e, 0x36, 0x15, 0xab, 0xd0, 0xcf, 0xf4, 0x02, 0x55, 0xfa, + 0x80, 0x94, 0xfa, 0xff, 0x77, 0xd0, 0xa3, 0x9e, 0x3e, 0xa5, 0x83, 0xf2, 0xd8, 0x47, 0xa7, 0x92, + 0xc7, 0x83, 0xf2, 0xcc, 0xaf, 0x9c, 0x4a, 0x9e, 0x79, 0xeb, 0xe8, 0x62, 0x4f, 0x9e, 0x32, 0x11, + 0xea, 0x85, 0x9e, 0x72, 0x60, 0x4c, 0x5b, 0xd5, 0x8e, 0x15, 0x79, 0x75, 0x34, 0xd5, 0x84, 0x84, + 0x76, 0x62, 0xc2, 0x0f, 0x31, 0x95, 0xdc, 0xdf, 0x72, 0xa0, 0x4c, 0xf6, 0x25, 0x0d, 0xc9, 0xd5, + 0xa3, 0x34, 0x59, 0x37, 0xa1, 0x60, 0x8e, 0xdb, 0xb4, 0xcb, 0xa3, 0x18, 0x81, 0x3e, 0x56, 0x4b, + 0xe8, 0x1c, 0x8d, 0x42, 0x7a, 0x28, 0xfc, 0xcb, 0x5a, 0x79, 0x7d, 0x48, 0xb9, 0x91, 0xc8, 0xa7, + 0x4f, 0x8c, 0xd0, 0x86, 0x7a, 0x11, 0xba, 0x47, 0x59, 0x22, 0x21, 0x91, 0xb8, 0xd9, 0x6d, 0xb5, + 0x41, 0xe2, 0x88, 0x09, 0x89, 0xc3, 0x38, 0xe5, 0x20, 0xd4, 0x1e, 0xc2, 0xa2, 0x43, 0x38, 0xf8, + 0x33, 0x0e, 0xc9, 0xdc, 0xb6, 0xa4, 0x55, 0x0d, 0xda, 0x64, 0x42, 0x6e, 0xf4, 0x31, 0x1f, 0x14, + 0xc5, 0xdb, 0x47, 0x7e, 0xcf, 0x6d, 0xc8, 0xe1, 0x8a, 0x83, 0xc3, 0xac, 0x55, 0x97, 0xb9, 0x47, + 0xe8, 0x51, 0x7e, 0xa2, 0x70, 0x44, 0x84, 0xc4, 0x1c, 0x28, 0x84, 0x19, 0xb4, 0x30, 0x87, 0x4f, + 0x5d, 0x10, 0x12, 0xb7, 0x88, 0x04, 0x2c, 0xc3, 0x18, 0xfc, 0x8d, 0x11, 0x4e, 0x1f, 0x24, 0x0f, + 0x93, 0xb6, 0x71, 0xba, 0x9f, 0xf3, 0x36, 0x89, 0x90, 0xbb, 0x96, 0xb6, 0x6b, 0x60, 0x6b, 0x44, + 0xc2, 0x5e, 0x18, 0x83, 0x47, 0xd1, 0xad, 0xb2, 0x71, 0xe1, 0x77, 0x65, 0xe9, 0xbf, 0x73, 0x70, + 0xbb, 0x31, 0xe8, 0x96, 0x9f, 0x60, 0x65, 0xe4, 0x75, 0xd0, 0x9d, 0xde, 0xaa, 0x71, 0x92, 0x1c, + 0x8e, 0x78, 0x43, 0xb3, 0x0e, 0xeb, 0x37, 0x6f, 0x39, 0xbb, 0x24, 0x39, 0x3c, 0xee, 0xfd, 0x84, + 0xda, 0x69, 0x5c, 0x1f, 0x78, 0xed, 0xe0, 0x54, 0x58, 0x96, 0xe3, 0x9b, 0xc0, 0x06, 0xba, 0x34, + 0xdc, 0x00, 0xde, 0x38, 0x90, 0x2f, 0xd2, 0x72, 0xf5, 0xff, 0x11, 0xcd, 0x9d, 0x50, 0xb2, 0xd7, + 0x1d, 0x98, 0x57, 0xe9, 0x88, 0x7a, 0xfd, 0xdb, 0x04, 0x5a, 0xfa, 0x2f, 0xb5, 0xfa, 0xad, 0x83, + 0x69, 0x40, 0x4f, 0x57, 0xa8, 0x5f, 0xa2, 0x4a, 0xb1, 0xc1, 0x5d, 0x73, 0xa9, 0xd3, 0x05, 0x81, + 0xf7, 0x5c, 0xe9, 0x85, 0xc4, 0x71, 0x48, 0x39, 0x13, 0xfe, 0xdc, 0xf8, 0x22, 0x81, 0x54, 0xfc, + 0x96, 0x0e, 0xf7, 0xbe, 0x57, 0x47, 0x57, 0x48, 0xfd, 0xa4, 0xe5, 0x5e, 0xbb, 0xe6, 0x90, 0xca, + 0x15, 0xa5, 0xde, 0x01, 0x5e, 0x1f, 0x6c, 0xb9, 0x9b, 0xe8, 0x72, 0x1f, 0x9b, 0x23, 0xfd, 0x1b, + 0x0e, 0xc4, 0x4b, 0x96, 0x98, 0xe3, 0x74, 0x7d, 0xe1, 0x4c, 0x08, 0xdc, 0x82, 0x2c, 0xa4, 0x30, + 0x90, 0xe4, 0x4d, 0xa7, 0xfa, 0xa2, 0xd4, 0x6b, 0x5a, 0x5c, 0xcc, 0x32, 0x40, 0x67, 0x55, 0x49, + 0x9f, 0x77, 0x40, 0xa8, 0x40, 0x35, 0x8f, 0x40, 0xd2, 0x26, 0x6d, 0x88, 0xcd, 0xa1, 0x95, 0xe0, + 0xdf, 0x72, 0x99, 0x47, 0x72, 0x91, 0x3e, 0x23, 0x2f, 0x50, 0x25, 0xbf, 0x23, 0xfc, 0xdb, 0xe3, + 0xdf, 0x58, 0x31, 0xde, 0x6b, 0xa2, 0x5b, 0x1d, 0x26, 0x21, 0xc2, 0xbd, 0x0e, 0xa7, 0xc6, 0x44, + 0xbb, 0x61, 0xed, 0x26, 0xf8, 0xce, 0x21, 0xab, 0xeb, 0x1a, 0x52, 0x37, 0x8c, 0x4d, 0x20, 0x2d, + 0x7d, 0xdb, 0x6e, 0x8b, 0x17, 0xa8, 0x92, 0x57, 0x22, 0xe1, 0xdf, 0x77, 0x48, 0xb1, 0x10, 0xaf, + 0xda, 0x6f, 0xe1, 0xd8, 0x98, 0x95, 0x7a, 0xe0, 0xd2, 0x7e, 0x0b, 0x2a, 0xbd, 0x54, 0xaf, 0xd0, + 0x64, 0xf1, 0x58, 0xfa, 0x9f, 0x8f, 0x4f, 0x64, 0x40, 0xe0, 0xbd, 0x43, 0x5e, 0x98, 0x64, 0x24, + 0x0a, 0x5b, 0x58, 0xb7, 0x46, 0x93, 0xcb, 0x43, 0x97, 0x82, 0x64, 0x75, 0x0d, 0x25, 0xd3, 0xc9, + 0xac, 0xa2, 0x0b, 0x03, 0x2c, 0xe1, 0x7f, 0x31, 0x3e, 0x9d, 0xa9, 0x22, 0x46, 0x78, 0xdb, 0x68, + 0x26, 0x05, 0x4e, 0xd5, 0xfe, 0x49, 0xe0, 0x08, 0x67, 0xa1, 0x08, 0x25, 0xe3, 0xc2, 0x7f, 0xe4, + 0x90, 0x91, 0x67, 0x95, 0xdb, 0x70, 0xb4, 0x6f, 0x75, 0xea, 0xf4, 0xa7, 0x1d, 0x96, 0x00, 0xa6, + 0x24, 0x8a, 0x84, 0xff, 0xa5, 0xc3, 0xe9, 0xd7, 0xf1, 0x0d, 0x15, 0xee, 0xbd, 0x45, 0x97, 0x8c, + 0xba, 0xf8, 0xb2, 0x1f, 0x8f, 0x67, 0x5c, 0xd4, 0xaa, 0x8d, 0xc2, 0x1b, 0x7f, 0x87, 0x3c, 0x43, + 0x92, 0x1d, 0xce, 0xba, 0xed, 0x8e, 0x59, 0xe7, 0xaf, 0x5c, 0xd6, 0x59, 0xeb, 0xf6, 0x8c, 0xac, + 0xf7, 0xd2, 0x39, 0x44, 0x44, 0x86, 0x19, 0xe8, 0x91, 0x2b, 0x70, 0x29, 0x89, 0x3d, 0x85, 0x9a, + 0xb8, 0x22, 0x74, 0x4f, 0x00, 0xe1, 0xb4, 0x83, 0x49, 0x53, 0xb0, 0xa8, 0xab, 0x26, 0x04, 0x96, + 0x0e, 0xf7, 0xd6, 0x6d, 0x97, 0xe9, 0xc7, 0x90, 0xea, 0x16, 0xb4, 0xc7, 0xd2, 0x72, 0x77, 0xfd, + 0x05, 0xdd, 0xb5, 0x6e, 0x27, 0x8e, 0x5a, 0x55, 0x97, 0xf6, 0x6a, 0x40, 0xa3, 0x27, 0xad, 0xdc, + 0x0b, 0x7e, 0x25, 0x54, 0xe2, 0x98, 0x48, 0xda, 0x19, 0xf6, 0x5a, 0x70, 0xf7, 0x7a, 0xad, 0x38, + 0x5b, 0x0a, 0x53, 0xf6, 0xda, 0x43, 0x57, 0xad, 0xd7, 0x10, 0x7f, 0xd1, 0xa5, 0x33, 0x18, 0x71, + 0x99, 0xfa, 0x11, 0x7d, 0x66, 0xa9, 0x27, 0x0c, 0x3d, 0x4b, 0x0e, 0xfc, 0x9b, 0x06, 0x33, 0x6a, + 0xe6, 0xf9, 0x01, 0x5d, 0xcb, 0x7b, 0x78, 0xb9, 0xb3, 0x3d, 0x71, 0x69, 0x1a, 0x99, 0x6d, 0xd6, + 0xa5, 0xd6, 0xb6, 0x8d, 0x66, 0x8a, 0xa3, 0x48, 0xbf, 0xb7, 0x2d, 0xbb, 0x9c, 0xe0, 0xac, 0x3f, + 0x85, 0xf4, 0x9b, 0xdb, 0x07, 0x74, 0x35, 0x0b, 0x5b, 0xc0, 0xf0, 0xa7, 0x2e, 0xe1, 0x32, 0x8c, + 0x00, 0x2f, 0xd4, 0x6a, 0xe6, 0xf8, 0x3c, 0x75, 0x40, 0xce, 0x68, 0xf1, 0x7b, 0xab, 0x5d, 0xa8, + 0xd5, 0xf4, 0x11, 0x7a, 0x8f, 0x66, 0x4b, 0xd0, 0xc5, 0x65, 0xc3, 0x5c, 0x71, 0xf9, 0x67, 0x7c, + 0x80, 0xb9, 0xb8, 0x3c, 0x02, 0xb9, 0x6c, 0xd3, 0xfc, 0xfa, 0xd4, 0xc8, 0xe5, 0x51, 0x59, 0xae, + 0xd8, 0x2c, 0xbf, 0x39, 0x35, 0x72, 0xc5, 0x64, 0xb9, 0x86, 0xa6, 0x0d, 0x32, 0x0b, 0xe1, 0xc8, + 0xb0, 0xbe, 0x75, 0x60, 0x4d, 0x69, 0xd1, 0x7e, 0x08, 0x47, 0x9a, 0xf2, 0x1c, 0x55, 0x72, 0x8a, + 0xf0, 0x9f, 0x39, 0x54, 0xd5, 0x3e, 0x40, 0xcf, 0x54, 0xda, 0xbd, 0x57, 0x0a, 0x8b, 0x3b, 0xef, + 0xf9, 0x78, 0xd4, 0xac, 0x12, 0xdb, 0x7a, 0x58, 0xd8, 0x78, 0xab, 0x7f, 0x4d, 0xa8, 0x31, 0x3e, + 0x0e, 0x4e, 0xfe, 0x48, 0xb4, 0x3a, 0x69, 0xbf, 0x00, 0xed, 0x28, 0xf4, 0xce, 0xc4, 0x4f, 0x6b, + 0x36, 0xbe, 0xcd, 0x22, 0x92, 0xb4, 0x03, 0xc6, 0xdb, 0xd5, 0x36, 0x24, 0xda, 0xb8, 0xf7, 0x49, + 0x2a, 0x0d, 0xc5, 0xa8, 0x2f, 0x54, 0xcf, 0xcc, 0x8f, 0x3f, 0xce, 0x9c, 0x5d, 0xaf, 0xd7, 0xff, + 0x3c, 0x33, 0xbf, 0x6e, 0x60, 0xf5, 0x96, 0x08, 0xcc, 0xa5, 0xba, 0xda, 0xaf, 0x05, 0x0d, 0x1d, + 0xf6, 0x77, 0x2f, 0xe0, 0xa0, 0xde, 0x12, 0x07, 0xfd, 0x80, 0x83, 0xfd, 0xda, 0x81, 0x09, 0x68, + 0x9e, 0xd3, 0xc6, 0x4b, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0xdf, 0x6f, 0x5e, 0x32, 0x19, 0x13, + 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/policy.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/policy.pb.go new file mode 100644 index 000000000..1fc027dae --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/policy.pb.go @@ -0,0 +1,1098 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/common/policy.proto + +package common // import "google.golang.org/genproto/googleapis/ads/googleads/v0/common" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Key of the violation. The key is used for referring to a violation +// when filing an exemption request. +type PolicyViolationKey struct { + // Unique ID of the violated policy. + PolicyName *wrappers.StringValue `protobuf:"bytes,1,opt,name=policy_name,json=policyName,proto3" json:"policy_name,omitempty"` + // The text that violates the policy if specified. + // Otherwise, refers to the policy in general + // (e.g., when requesting to be exempt from the whole policy). + // If not specified for criterion exemptions, the whole policy is implied. + // Must be specified for ad exemptions. + ViolatingText *wrappers.StringValue `protobuf:"bytes,2,opt,name=violating_text,json=violatingText,proto3" json:"violating_text,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PolicyViolationKey) Reset() { *m = PolicyViolationKey{} } +func (m *PolicyViolationKey) String() string { return proto.CompactTextString(m) } +func (*PolicyViolationKey) ProtoMessage() {} +func (*PolicyViolationKey) Descriptor() ([]byte, []int) { + return fileDescriptor_policy_92661ff34caa4cee, []int{0} +} +func (m *PolicyViolationKey) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PolicyViolationKey.Unmarshal(m, b) +} +func (m *PolicyViolationKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PolicyViolationKey.Marshal(b, m, deterministic) +} +func (dst *PolicyViolationKey) XXX_Merge(src proto.Message) { + xxx_messageInfo_PolicyViolationKey.Merge(dst, src) +} +func (m *PolicyViolationKey) XXX_Size() int { + return xxx_messageInfo_PolicyViolationKey.Size(m) +} +func (m *PolicyViolationKey) XXX_DiscardUnknown() { + xxx_messageInfo_PolicyViolationKey.DiscardUnknown(m) +} + +var xxx_messageInfo_PolicyViolationKey proto.InternalMessageInfo + +func (m *PolicyViolationKey) GetPolicyName() *wrappers.StringValue { + if m != nil { + return m.PolicyName + } + return nil +} + +func (m *PolicyViolationKey) GetViolatingText() *wrappers.StringValue { + if m != nil { + return m.ViolatingText + } + return nil +} + +// Parameter for controlling how policy checking is done. +type PolicyValidationParameter struct { + // The list of policy topics that should not cause a PolicyFindingError to + // be reported. This field is currently only compatible with Enhanced Text Ad. + // It corresponds to the PolicyTopicEntry.topic field. + // + // Resources violating these policies will be saved, but will not be eligible + // to serve. They may begin serving at a later time due to a change in + // policies, re-review of the resource, or a change in advertiser + // certificates. + IgnorablePolicyTopics []*wrappers.StringValue `protobuf:"bytes,1,rep,name=ignorable_policy_topics,json=ignorablePolicyTopics,proto3" json:"ignorable_policy_topics,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PolicyValidationParameter) Reset() { *m = PolicyValidationParameter{} } +func (m *PolicyValidationParameter) String() string { return proto.CompactTextString(m) } +func (*PolicyValidationParameter) ProtoMessage() {} +func (*PolicyValidationParameter) Descriptor() ([]byte, []int) { + return fileDescriptor_policy_92661ff34caa4cee, []int{1} +} +func (m *PolicyValidationParameter) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PolicyValidationParameter.Unmarshal(m, b) +} +func (m *PolicyValidationParameter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PolicyValidationParameter.Marshal(b, m, deterministic) +} +func (dst *PolicyValidationParameter) XXX_Merge(src proto.Message) { + xxx_messageInfo_PolicyValidationParameter.Merge(dst, src) +} +func (m *PolicyValidationParameter) XXX_Size() int { + return xxx_messageInfo_PolicyValidationParameter.Size(m) +} +func (m *PolicyValidationParameter) XXX_DiscardUnknown() { + xxx_messageInfo_PolicyValidationParameter.DiscardUnknown(m) +} + +var xxx_messageInfo_PolicyValidationParameter proto.InternalMessageInfo + +func (m *PolicyValidationParameter) GetIgnorablePolicyTopics() []*wrappers.StringValue { + if m != nil { + return m.IgnorablePolicyTopics + } + return nil +} + +// Policy finding attached to a resource (e.g. alcohol policy associated with +// a site that sells alcohol). +// +// Each PolicyTopicEntry has a topic that indicates the specific ads policy +// the entry is about and a type to indicate the effect that the entry will have +// on serving. It may optionally have one or more evidences that indicate the +// reason for the finding. It may also optionally have one or more constraints +// that provide details about how serving may be restricted. +// +// Next tag: 5 +type PolicyTopicEntry struct { + // Policy topic this finding refers to. For example, "ALCOHOL", + // "TRADEMARKS_IN_AD_TEXT", or "DESTINATION_NOT_WORKING". The set of possible + // policy topics is not fixed for a particular API version and may change + // at any time. + Topic *wrappers.StringValue `protobuf:"bytes,1,opt,name=topic,proto3" json:"topic,omitempty"` + // Describes the negative or positive effect this policy will have on serving. + Type enums.PolicyTopicEntryTypeEnum_PolicyTopicEntryType `protobuf:"varint,2,opt,name=type,proto3,enum=google.ads.googleads.v0.enums.PolicyTopicEntryTypeEnum_PolicyTopicEntryType" json:"type,omitempty"` + // Additional information that explains policy finding + // (e.g. the brand name for a trademark finding). + Evidences []*PolicyTopicEvidence `protobuf:"bytes,3,rep,name=evidences,proto3" json:"evidences,omitempty"` + // Indicates how serving of this resource may be affected (e.g. not serving + // in a country). + Constraints []*PolicyTopicConstraint `protobuf:"bytes,4,rep,name=constraints,proto3" json:"constraints,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PolicyTopicEntry) Reset() { *m = PolicyTopicEntry{} } +func (m *PolicyTopicEntry) String() string { return proto.CompactTextString(m) } +func (*PolicyTopicEntry) ProtoMessage() {} +func (*PolicyTopicEntry) Descriptor() ([]byte, []int) { + return fileDescriptor_policy_92661ff34caa4cee, []int{2} +} +func (m *PolicyTopicEntry) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PolicyTopicEntry.Unmarshal(m, b) +} +func (m *PolicyTopicEntry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PolicyTopicEntry.Marshal(b, m, deterministic) +} +func (dst *PolicyTopicEntry) XXX_Merge(src proto.Message) { + xxx_messageInfo_PolicyTopicEntry.Merge(dst, src) +} +func (m *PolicyTopicEntry) XXX_Size() int { + return xxx_messageInfo_PolicyTopicEntry.Size(m) +} +func (m *PolicyTopicEntry) XXX_DiscardUnknown() { + xxx_messageInfo_PolicyTopicEntry.DiscardUnknown(m) +} + +var xxx_messageInfo_PolicyTopicEntry proto.InternalMessageInfo + +func (m *PolicyTopicEntry) GetTopic() *wrappers.StringValue { + if m != nil { + return m.Topic + } + return nil +} + +func (m *PolicyTopicEntry) GetType() enums.PolicyTopicEntryTypeEnum_PolicyTopicEntryType { + if m != nil { + return m.Type + } + return enums.PolicyTopicEntryTypeEnum_UNSPECIFIED +} + +func (m *PolicyTopicEntry) GetEvidences() []*PolicyTopicEvidence { + if m != nil { + return m.Evidences + } + return nil +} + +func (m *PolicyTopicEntry) GetConstraints() []*PolicyTopicConstraint { + if m != nil { + return m.Constraints + } + return nil +} + +// Additional information that explains a policy finding. +// +// Next Id: 8 +type PolicyTopicEvidence struct { + // Specific evidence information depending on the evidence type. + // + // Types that are valid to be assigned to Value: + // *PolicyTopicEvidence_HttpCode + // *PolicyTopicEvidence_WebsiteList_ + // *PolicyTopicEvidence_TextList_ + // *PolicyTopicEvidence_LanguageCode + // *PolicyTopicEvidence_DestinationTextList_ + // *PolicyTopicEvidence_DestinationMismatch_ + Value isPolicyTopicEvidence_Value `protobuf_oneof:"value"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PolicyTopicEvidence) Reset() { *m = PolicyTopicEvidence{} } +func (m *PolicyTopicEvidence) String() string { return proto.CompactTextString(m) } +func (*PolicyTopicEvidence) ProtoMessage() {} +func (*PolicyTopicEvidence) Descriptor() ([]byte, []int) { + return fileDescriptor_policy_92661ff34caa4cee, []int{3} +} +func (m *PolicyTopicEvidence) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PolicyTopicEvidence.Unmarshal(m, b) +} +func (m *PolicyTopicEvidence) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PolicyTopicEvidence.Marshal(b, m, deterministic) +} +func (dst *PolicyTopicEvidence) XXX_Merge(src proto.Message) { + xxx_messageInfo_PolicyTopicEvidence.Merge(dst, src) +} +func (m *PolicyTopicEvidence) XXX_Size() int { + return xxx_messageInfo_PolicyTopicEvidence.Size(m) +} +func (m *PolicyTopicEvidence) XXX_DiscardUnknown() { + xxx_messageInfo_PolicyTopicEvidence.DiscardUnknown(m) +} + +var xxx_messageInfo_PolicyTopicEvidence proto.InternalMessageInfo + +type isPolicyTopicEvidence_Value interface { + isPolicyTopicEvidence_Value() +} + +type PolicyTopicEvidence_HttpCode struct { + HttpCode *wrappers.Int32Value `protobuf:"bytes,2,opt,name=http_code,json=httpCode,proto3,oneof"` +} + +type PolicyTopicEvidence_WebsiteList_ struct { + WebsiteList *PolicyTopicEvidence_WebsiteList `protobuf:"bytes,3,opt,name=website_list,json=websiteList,proto3,oneof"` +} + +type PolicyTopicEvidence_TextList_ struct { + TextList *PolicyTopicEvidence_TextList `protobuf:"bytes,4,opt,name=text_list,json=textList,proto3,oneof"` +} + +type PolicyTopicEvidence_LanguageCode struct { + LanguageCode *wrappers.StringValue `protobuf:"bytes,5,opt,name=language_code,json=languageCode,proto3,oneof"` +} + +type PolicyTopicEvidence_DestinationTextList_ struct { + DestinationTextList *PolicyTopicEvidence_DestinationTextList `protobuf:"bytes,6,opt,name=destination_text_list,json=destinationTextList,proto3,oneof"` +} + +type PolicyTopicEvidence_DestinationMismatch_ struct { + DestinationMismatch *PolicyTopicEvidence_DestinationMismatch `protobuf:"bytes,7,opt,name=destination_mismatch,json=destinationMismatch,proto3,oneof"` +} + +func (*PolicyTopicEvidence_HttpCode) isPolicyTopicEvidence_Value() {} + +func (*PolicyTopicEvidence_WebsiteList_) isPolicyTopicEvidence_Value() {} + +func (*PolicyTopicEvidence_TextList_) isPolicyTopicEvidence_Value() {} + +func (*PolicyTopicEvidence_LanguageCode) isPolicyTopicEvidence_Value() {} + +func (*PolicyTopicEvidence_DestinationTextList_) isPolicyTopicEvidence_Value() {} + +func (*PolicyTopicEvidence_DestinationMismatch_) isPolicyTopicEvidence_Value() {} + +func (m *PolicyTopicEvidence) GetValue() isPolicyTopicEvidence_Value { + if m != nil { + return m.Value + } + return nil +} + +func (m *PolicyTopicEvidence) GetHttpCode() *wrappers.Int32Value { + if x, ok := m.GetValue().(*PolicyTopicEvidence_HttpCode); ok { + return x.HttpCode + } + return nil +} + +func (m *PolicyTopicEvidence) GetWebsiteList() *PolicyTopicEvidence_WebsiteList { + if x, ok := m.GetValue().(*PolicyTopicEvidence_WebsiteList_); ok { + return x.WebsiteList + } + return nil +} + +func (m *PolicyTopicEvidence) GetTextList() *PolicyTopicEvidence_TextList { + if x, ok := m.GetValue().(*PolicyTopicEvidence_TextList_); ok { + return x.TextList + } + return nil +} + +func (m *PolicyTopicEvidence) GetLanguageCode() *wrappers.StringValue { + if x, ok := m.GetValue().(*PolicyTopicEvidence_LanguageCode); ok { + return x.LanguageCode + } + return nil +} + +func (m *PolicyTopicEvidence) GetDestinationTextList() *PolicyTopicEvidence_DestinationTextList { + if x, ok := m.GetValue().(*PolicyTopicEvidence_DestinationTextList_); ok { + return x.DestinationTextList + } + return nil +} + +func (m *PolicyTopicEvidence) GetDestinationMismatch() *PolicyTopicEvidence_DestinationMismatch { + if x, ok := m.GetValue().(*PolicyTopicEvidence_DestinationMismatch_); ok { + return x.DestinationMismatch + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*PolicyTopicEvidence) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _PolicyTopicEvidence_OneofMarshaler, _PolicyTopicEvidence_OneofUnmarshaler, _PolicyTopicEvidence_OneofSizer, []interface{}{ + (*PolicyTopicEvidence_HttpCode)(nil), + (*PolicyTopicEvidence_WebsiteList_)(nil), + (*PolicyTopicEvidence_TextList_)(nil), + (*PolicyTopicEvidence_LanguageCode)(nil), + (*PolicyTopicEvidence_DestinationTextList_)(nil), + (*PolicyTopicEvidence_DestinationMismatch_)(nil), + } +} + +func _PolicyTopicEvidence_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*PolicyTopicEvidence) + // value + switch x := m.Value.(type) { + case *PolicyTopicEvidence_HttpCode: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.HttpCode); err != nil { + return err + } + case *PolicyTopicEvidence_WebsiteList_: + b.EncodeVarint(3<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.WebsiteList); err != nil { + return err + } + case *PolicyTopicEvidence_TextList_: + b.EncodeVarint(4<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.TextList); err != nil { + return err + } + case *PolicyTopicEvidence_LanguageCode: + b.EncodeVarint(5<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.LanguageCode); err != nil { + return err + } + case *PolicyTopicEvidence_DestinationTextList_: + b.EncodeVarint(6<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.DestinationTextList); err != nil { + return err + } + case *PolicyTopicEvidence_DestinationMismatch_: + b.EncodeVarint(7<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.DestinationMismatch); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("PolicyTopicEvidence.Value has unexpected type %T", x) + } + return nil +} + +func _PolicyTopicEvidence_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*PolicyTopicEvidence) + switch tag { + case 2: // value.http_code + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(wrappers.Int32Value) + err := b.DecodeMessage(msg) + m.Value = &PolicyTopicEvidence_HttpCode{msg} + return true, err + case 3: // value.website_list + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(PolicyTopicEvidence_WebsiteList) + err := b.DecodeMessage(msg) + m.Value = &PolicyTopicEvidence_WebsiteList_{msg} + return true, err + case 4: // value.text_list + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(PolicyTopicEvidence_TextList) + err := b.DecodeMessage(msg) + m.Value = &PolicyTopicEvidence_TextList_{msg} + return true, err + case 5: // value.language_code + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(wrappers.StringValue) + err := b.DecodeMessage(msg) + m.Value = &PolicyTopicEvidence_LanguageCode{msg} + return true, err + case 6: // value.destination_text_list + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(PolicyTopicEvidence_DestinationTextList) + err := b.DecodeMessage(msg) + m.Value = &PolicyTopicEvidence_DestinationTextList_{msg} + return true, err + case 7: // value.destination_mismatch + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(PolicyTopicEvidence_DestinationMismatch) + err := b.DecodeMessage(msg) + m.Value = &PolicyTopicEvidence_DestinationMismatch_{msg} + return true, err + default: + return false, nil + } +} + +func _PolicyTopicEvidence_OneofSizer(msg proto.Message) (n int) { + m := msg.(*PolicyTopicEvidence) + // value + switch x := m.Value.(type) { + case *PolicyTopicEvidence_HttpCode: + s := proto.Size(x.HttpCode) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *PolicyTopicEvidence_WebsiteList_: + s := proto.Size(x.WebsiteList) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *PolicyTopicEvidence_TextList_: + s := proto.Size(x.TextList) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *PolicyTopicEvidence_LanguageCode: + s := proto.Size(x.LanguageCode) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *PolicyTopicEvidence_DestinationTextList_: + s := proto.Size(x.DestinationTextList) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *PolicyTopicEvidence_DestinationMismatch_: + s := proto.Size(x.DestinationMismatch) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// A list of fragments of text that violated a policy. +// +// Next Id: 2 +type PolicyTopicEvidence_TextList struct { + // The fragments of text from the resource that caused the policy finding. + Texts []*wrappers.StringValue `protobuf:"bytes,1,rep,name=texts,proto3" json:"texts,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PolicyTopicEvidence_TextList) Reset() { *m = PolicyTopicEvidence_TextList{} } +func (m *PolicyTopicEvidence_TextList) String() string { return proto.CompactTextString(m) } +func (*PolicyTopicEvidence_TextList) ProtoMessage() {} +func (*PolicyTopicEvidence_TextList) Descriptor() ([]byte, []int) { + return fileDescriptor_policy_92661ff34caa4cee, []int{3, 0} +} +func (m *PolicyTopicEvidence_TextList) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PolicyTopicEvidence_TextList.Unmarshal(m, b) +} +func (m *PolicyTopicEvidence_TextList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PolicyTopicEvidence_TextList.Marshal(b, m, deterministic) +} +func (dst *PolicyTopicEvidence_TextList) XXX_Merge(src proto.Message) { + xxx_messageInfo_PolicyTopicEvidence_TextList.Merge(dst, src) +} +func (m *PolicyTopicEvidence_TextList) XXX_Size() int { + return xxx_messageInfo_PolicyTopicEvidence_TextList.Size(m) +} +func (m *PolicyTopicEvidence_TextList) XXX_DiscardUnknown() { + xxx_messageInfo_PolicyTopicEvidence_TextList.DiscardUnknown(m) +} + +var xxx_messageInfo_PolicyTopicEvidence_TextList proto.InternalMessageInfo + +func (m *PolicyTopicEvidence_TextList) GetTexts() []*wrappers.StringValue { + if m != nil { + return m.Texts + } + return nil +} + +// A list of websites that caused a policy finding. Used for +// ONE_WEBSITE_PER_AD_GROUP policy topic, for example. In case there are more +// than five websites, only the top five (those that appear in resources the +// most) will be listed here. +// +// Next Id: 2 +type PolicyTopicEvidence_WebsiteList struct { + // Websites that caused the policy finding. + Websites []*wrappers.StringValue `protobuf:"bytes,1,rep,name=websites,proto3" json:"websites,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PolicyTopicEvidence_WebsiteList) Reset() { *m = PolicyTopicEvidence_WebsiteList{} } +func (m *PolicyTopicEvidence_WebsiteList) String() string { return proto.CompactTextString(m) } +func (*PolicyTopicEvidence_WebsiteList) ProtoMessage() {} +func (*PolicyTopicEvidence_WebsiteList) Descriptor() ([]byte, []int) { + return fileDescriptor_policy_92661ff34caa4cee, []int{3, 1} +} +func (m *PolicyTopicEvidence_WebsiteList) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PolicyTopicEvidence_WebsiteList.Unmarshal(m, b) +} +func (m *PolicyTopicEvidence_WebsiteList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PolicyTopicEvidence_WebsiteList.Marshal(b, m, deterministic) +} +func (dst *PolicyTopicEvidence_WebsiteList) XXX_Merge(src proto.Message) { + xxx_messageInfo_PolicyTopicEvidence_WebsiteList.Merge(dst, src) +} +func (m *PolicyTopicEvidence_WebsiteList) XXX_Size() int { + return xxx_messageInfo_PolicyTopicEvidence_WebsiteList.Size(m) +} +func (m *PolicyTopicEvidence_WebsiteList) XXX_DiscardUnknown() { + xxx_messageInfo_PolicyTopicEvidence_WebsiteList.DiscardUnknown(m) +} + +var xxx_messageInfo_PolicyTopicEvidence_WebsiteList proto.InternalMessageInfo + +func (m *PolicyTopicEvidence_WebsiteList) GetWebsites() []*wrappers.StringValue { + if m != nil { + return m.Websites + } + return nil +} + +// A list of strings found in a destination page that caused a policy +// finding. +// +// Next Id: 2 +type PolicyTopicEvidence_DestinationTextList struct { + // List of text found in the resource's destination page. + DestinationTexts []*wrappers.StringValue `protobuf:"bytes,1,rep,name=destination_texts,json=destinationTexts,proto3" json:"destination_texts,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PolicyTopicEvidence_DestinationTextList) Reset() { + *m = PolicyTopicEvidence_DestinationTextList{} +} +func (m *PolicyTopicEvidence_DestinationTextList) String() string { return proto.CompactTextString(m) } +func (*PolicyTopicEvidence_DestinationTextList) ProtoMessage() {} +func (*PolicyTopicEvidence_DestinationTextList) Descriptor() ([]byte, []int) { + return fileDescriptor_policy_92661ff34caa4cee, []int{3, 2} +} +func (m *PolicyTopicEvidence_DestinationTextList) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PolicyTopicEvidence_DestinationTextList.Unmarshal(m, b) +} +func (m *PolicyTopicEvidence_DestinationTextList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PolicyTopicEvidence_DestinationTextList.Marshal(b, m, deterministic) +} +func (dst *PolicyTopicEvidence_DestinationTextList) XXX_Merge(src proto.Message) { + xxx_messageInfo_PolicyTopicEvidence_DestinationTextList.Merge(dst, src) +} +func (m *PolicyTopicEvidence_DestinationTextList) XXX_Size() int { + return xxx_messageInfo_PolicyTopicEvidence_DestinationTextList.Size(m) +} +func (m *PolicyTopicEvidence_DestinationTextList) XXX_DiscardUnknown() { + xxx_messageInfo_PolicyTopicEvidence_DestinationTextList.DiscardUnknown(m) +} + +var xxx_messageInfo_PolicyTopicEvidence_DestinationTextList proto.InternalMessageInfo + +func (m *PolicyTopicEvidence_DestinationTextList) GetDestinationTexts() []*wrappers.StringValue { + if m != nil { + return m.DestinationTexts + } + return nil +} + +// Evidence of mismatches between the URLs of a resource. +// +// Next Id: 2 +type PolicyTopicEvidence_DestinationMismatch struct { + // The set of URLs that did not match each other. + UrlTypes []enums.PolicyTopicEvidenceDestinationMismatchUrlTypeEnum_PolicyTopicEvidenceDestinationMismatchUrlType `protobuf:"varint,1,rep,packed,name=url_types,json=urlTypes,proto3,enum=google.ads.googleads.v0.enums.PolicyTopicEvidenceDestinationMismatchUrlTypeEnum_PolicyTopicEvidenceDestinationMismatchUrlType" json:"url_types,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PolicyTopicEvidence_DestinationMismatch) Reset() { + *m = PolicyTopicEvidence_DestinationMismatch{} +} +func (m *PolicyTopicEvidence_DestinationMismatch) String() string { return proto.CompactTextString(m) } +func (*PolicyTopicEvidence_DestinationMismatch) ProtoMessage() {} +func (*PolicyTopicEvidence_DestinationMismatch) Descriptor() ([]byte, []int) { + return fileDescriptor_policy_92661ff34caa4cee, []int{3, 3} +} +func (m *PolicyTopicEvidence_DestinationMismatch) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PolicyTopicEvidence_DestinationMismatch.Unmarshal(m, b) +} +func (m *PolicyTopicEvidence_DestinationMismatch) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PolicyTopicEvidence_DestinationMismatch.Marshal(b, m, deterministic) +} +func (dst *PolicyTopicEvidence_DestinationMismatch) XXX_Merge(src proto.Message) { + xxx_messageInfo_PolicyTopicEvidence_DestinationMismatch.Merge(dst, src) +} +func (m *PolicyTopicEvidence_DestinationMismatch) XXX_Size() int { + return xxx_messageInfo_PolicyTopicEvidence_DestinationMismatch.Size(m) +} +func (m *PolicyTopicEvidence_DestinationMismatch) XXX_DiscardUnknown() { + xxx_messageInfo_PolicyTopicEvidence_DestinationMismatch.DiscardUnknown(m) +} + +var xxx_messageInfo_PolicyTopicEvidence_DestinationMismatch proto.InternalMessageInfo + +func (m *PolicyTopicEvidence_DestinationMismatch) GetUrlTypes() []enums.PolicyTopicEvidenceDestinationMismatchUrlTypeEnum_PolicyTopicEvidenceDestinationMismatchUrlType { + if m != nil { + return m.UrlTypes + } + return nil +} + +// Describes the effect on serving that a policy topic entry will have. +// +// Next Id: 5 +type PolicyTopicConstraint struct { + // Specific information about the constraint. + // + // Types that are valid to be assigned to Value: + // *PolicyTopicConstraint_CountryConstraintList_ + // *PolicyTopicConstraint_ResellerConstraint_ + // *PolicyTopicConstraint_CertificateMissingInCountryList + // *PolicyTopicConstraint_CertificateDomainMismatchInCountryList + Value isPolicyTopicConstraint_Value `protobuf_oneof:"value"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PolicyTopicConstraint) Reset() { *m = PolicyTopicConstraint{} } +func (m *PolicyTopicConstraint) String() string { return proto.CompactTextString(m) } +func (*PolicyTopicConstraint) ProtoMessage() {} +func (*PolicyTopicConstraint) Descriptor() ([]byte, []int) { + return fileDescriptor_policy_92661ff34caa4cee, []int{4} +} +func (m *PolicyTopicConstraint) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PolicyTopicConstraint.Unmarshal(m, b) +} +func (m *PolicyTopicConstraint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PolicyTopicConstraint.Marshal(b, m, deterministic) +} +func (dst *PolicyTopicConstraint) XXX_Merge(src proto.Message) { + xxx_messageInfo_PolicyTopicConstraint.Merge(dst, src) +} +func (m *PolicyTopicConstraint) XXX_Size() int { + return xxx_messageInfo_PolicyTopicConstraint.Size(m) +} +func (m *PolicyTopicConstraint) XXX_DiscardUnknown() { + xxx_messageInfo_PolicyTopicConstraint.DiscardUnknown(m) +} + +var xxx_messageInfo_PolicyTopicConstraint proto.InternalMessageInfo + +type isPolicyTopicConstraint_Value interface { + isPolicyTopicConstraint_Value() +} + +type PolicyTopicConstraint_CountryConstraintList_ struct { + CountryConstraintList *PolicyTopicConstraint_CountryConstraintList `protobuf:"bytes,1,opt,name=country_constraint_list,json=countryConstraintList,proto3,oneof"` +} + +type PolicyTopicConstraint_ResellerConstraint_ struct { + ResellerConstraint *PolicyTopicConstraint_ResellerConstraint `protobuf:"bytes,2,opt,name=reseller_constraint,json=resellerConstraint,proto3,oneof"` +} + +type PolicyTopicConstraint_CertificateMissingInCountryList struct { + CertificateMissingInCountryList *PolicyTopicConstraint_CountryConstraintList `protobuf:"bytes,3,opt,name=certificate_missing_in_country_list,json=certificateMissingInCountryList,proto3,oneof"` +} + +type PolicyTopicConstraint_CertificateDomainMismatchInCountryList struct { + CertificateDomainMismatchInCountryList *PolicyTopicConstraint_CountryConstraintList `protobuf:"bytes,4,opt,name=certificate_domain_mismatch_in_country_list,json=certificateDomainMismatchInCountryList,proto3,oneof"` +} + +func (*PolicyTopicConstraint_CountryConstraintList_) isPolicyTopicConstraint_Value() {} + +func (*PolicyTopicConstraint_ResellerConstraint_) isPolicyTopicConstraint_Value() {} + +func (*PolicyTopicConstraint_CertificateMissingInCountryList) isPolicyTopicConstraint_Value() {} + +func (*PolicyTopicConstraint_CertificateDomainMismatchInCountryList) isPolicyTopicConstraint_Value() {} + +func (m *PolicyTopicConstraint) GetValue() isPolicyTopicConstraint_Value { + if m != nil { + return m.Value + } + return nil +} + +func (m *PolicyTopicConstraint) GetCountryConstraintList() *PolicyTopicConstraint_CountryConstraintList { + if x, ok := m.GetValue().(*PolicyTopicConstraint_CountryConstraintList_); ok { + return x.CountryConstraintList + } + return nil +} + +func (m *PolicyTopicConstraint) GetResellerConstraint() *PolicyTopicConstraint_ResellerConstraint { + if x, ok := m.GetValue().(*PolicyTopicConstraint_ResellerConstraint_); ok { + return x.ResellerConstraint + } + return nil +} + +func (m *PolicyTopicConstraint) GetCertificateMissingInCountryList() *PolicyTopicConstraint_CountryConstraintList { + if x, ok := m.GetValue().(*PolicyTopicConstraint_CertificateMissingInCountryList); ok { + return x.CertificateMissingInCountryList + } + return nil +} + +func (m *PolicyTopicConstraint) GetCertificateDomainMismatchInCountryList() *PolicyTopicConstraint_CountryConstraintList { + if x, ok := m.GetValue().(*PolicyTopicConstraint_CertificateDomainMismatchInCountryList); ok { + return x.CertificateDomainMismatchInCountryList + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*PolicyTopicConstraint) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _PolicyTopicConstraint_OneofMarshaler, _PolicyTopicConstraint_OneofUnmarshaler, _PolicyTopicConstraint_OneofSizer, []interface{}{ + (*PolicyTopicConstraint_CountryConstraintList_)(nil), + (*PolicyTopicConstraint_ResellerConstraint_)(nil), + (*PolicyTopicConstraint_CertificateMissingInCountryList)(nil), + (*PolicyTopicConstraint_CertificateDomainMismatchInCountryList)(nil), + } +} + +func _PolicyTopicConstraint_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*PolicyTopicConstraint) + // value + switch x := m.Value.(type) { + case *PolicyTopicConstraint_CountryConstraintList_: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.CountryConstraintList); err != nil { + return err + } + case *PolicyTopicConstraint_ResellerConstraint_: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.ResellerConstraint); err != nil { + return err + } + case *PolicyTopicConstraint_CertificateMissingInCountryList: + b.EncodeVarint(3<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.CertificateMissingInCountryList); err != nil { + return err + } + case *PolicyTopicConstraint_CertificateDomainMismatchInCountryList: + b.EncodeVarint(4<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.CertificateDomainMismatchInCountryList); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("PolicyTopicConstraint.Value has unexpected type %T", x) + } + return nil +} + +func _PolicyTopicConstraint_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*PolicyTopicConstraint) + switch tag { + case 1: // value.country_constraint_list + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(PolicyTopicConstraint_CountryConstraintList) + err := b.DecodeMessage(msg) + m.Value = &PolicyTopicConstraint_CountryConstraintList_{msg} + return true, err + case 2: // value.reseller_constraint + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(PolicyTopicConstraint_ResellerConstraint) + err := b.DecodeMessage(msg) + m.Value = &PolicyTopicConstraint_ResellerConstraint_{msg} + return true, err + case 3: // value.certificate_missing_in_country_list + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(PolicyTopicConstraint_CountryConstraintList) + err := b.DecodeMessage(msg) + m.Value = &PolicyTopicConstraint_CertificateMissingInCountryList{msg} + return true, err + case 4: // value.certificate_domain_mismatch_in_country_list + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(PolicyTopicConstraint_CountryConstraintList) + err := b.DecodeMessage(msg) + m.Value = &PolicyTopicConstraint_CertificateDomainMismatchInCountryList{msg} + return true, err + default: + return false, nil + } +} + +func _PolicyTopicConstraint_OneofSizer(msg proto.Message) (n int) { + m := msg.(*PolicyTopicConstraint) + // value + switch x := m.Value.(type) { + case *PolicyTopicConstraint_CountryConstraintList_: + s := proto.Size(x.CountryConstraintList) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *PolicyTopicConstraint_ResellerConstraint_: + s := proto.Size(x.ResellerConstraint) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *PolicyTopicConstraint_CertificateMissingInCountryList: + s := proto.Size(x.CertificateMissingInCountryList) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *PolicyTopicConstraint_CertificateDomainMismatchInCountryList: + s := proto.Size(x.CertificateDomainMismatchInCountryList) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// A list of countries where a resource's serving is constrained. +// +// Next Id: 3 +type PolicyTopicConstraint_CountryConstraintList struct { + // Total number of countries targeted by the resource. + TotalTargetedCountries *wrappers.Int32Value `protobuf:"bytes,1,opt,name=total_targeted_countries,json=totalTargetedCountries,proto3" json:"total_targeted_countries,omitempty"` + // Countries in which serving is restricted. + Countries []*PolicyTopicConstraint_CountryConstraint `protobuf:"bytes,2,rep,name=countries,proto3" json:"countries,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PolicyTopicConstraint_CountryConstraintList) Reset() { + *m = PolicyTopicConstraint_CountryConstraintList{} +} +func (m *PolicyTopicConstraint_CountryConstraintList) String() string { + return proto.CompactTextString(m) +} +func (*PolicyTopicConstraint_CountryConstraintList) ProtoMessage() {} +func (*PolicyTopicConstraint_CountryConstraintList) Descriptor() ([]byte, []int) { + return fileDescriptor_policy_92661ff34caa4cee, []int{4, 0} +} +func (m *PolicyTopicConstraint_CountryConstraintList) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PolicyTopicConstraint_CountryConstraintList.Unmarshal(m, b) +} +func (m *PolicyTopicConstraint_CountryConstraintList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PolicyTopicConstraint_CountryConstraintList.Marshal(b, m, deterministic) +} +func (dst *PolicyTopicConstraint_CountryConstraintList) XXX_Merge(src proto.Message) { + xxx_messageInfo_PolicyTopicConstraint_CountryConstraintList.Merge(dst, src) +} +func (m *PolicyTopicConstraint_CountryConstraintList) XXX_Size() int { + return xxx_messageInfo_PolicyTopicConstraint_CountryConstraintList.Size(m) +} +func (m *PolicyTopicConstraint_CountryConstraintList) XXX_DiscardUnknown() { + xxx_messageInfo_PolicyTopicConstraint_CountryConstraintList.DiscardUnknown(m) +} + +var xxx_messageInfo_PolicyTopicConstraint_CountryConstraintList proto.InternalMessageInfo + +func (m *PolicyTopicConstraint_CountryConstraintList) GetTotalTargetedCountries() *wrappers.Int32Value { + if m != nil { + return m.TotalTargetedCountries + } + return nil +} + +func (m *PolicyTopicConstraint_CountryConstraintList) GetCountries() []*PolicyTopicConstraint_CountryConstraint { + if m != nil { + return m.Countries + } + return nil +} + +// Indicates that a policy topic was constrained due to disapproval of the +// website for reseller purposes. +// +// Next Id: 1 +type PolicyTopicConstraint_ResellerConstraint struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PolicyTopicConstraint_ResellerConstraint) Reset() { + *m = PolicyTopicConstraint_ResellerConstraint{} +} +func (m *PolicyTopicConstraint_ResellerConstraint) String() string { return proto.CompactTextString(m) } +func (*PolicyTopicConstraint_ResellerConstraint) ProtoMessage() {} +func (*PolicyTopicConstraint_ResellerConstraint) Descriptor() ([]byte, []int) { + return fileDescriptor_policy_92661ff34caa4cee, []int{4, 1} +} +func (m *PolicyTopicConstraint_ResellerConstraint) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PolicyTopicConstraint_ResellerConstraint.Unmarshal(m, b) +} +func (m *PolicyTopicConstraint_ResellerConstraint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PolicyTopicConstraint_ResellerConstraint.Marshal(b, m, deterministic) +} +func (dst *PolicyTopicConstraint_ResellerConstraint) XXX_Merge(src proto.Message) { + xxx_messageInfo_PolicyTopicConstraint_ResellerConstraint.Merge(dst, src) +} +func (m *PolicyTopicConstraint_ResellerConstraint) XXX_Size() int { + return xxx_messageInfo_PolicyTopicConstraint_ResellerConstraint.Size(m) +} +func (m *PolicyTopicConstraint_ResellerConstraint) XXX_DiscardUnknown() { + xxx_messageInfo_PolicyTopicConstraint_ResellerConstraint.DiscardUnknown(m) +} + +var xxx_messageInfo_PolicyTopicConstraint_ResellerConstraint proto.InternalMessageInfo + +// Indicates that a resource's ability to serve in a particular country is +// constrained. +// +// Next Id: 2 +type PolicyTopicConstraint_CountryConstraint struct { + // Geo target constant resource name of the country in which serving is + // constrained. + CountryCriterion *wrappers.StringValue `protobuf:"bytes,1,opt,name=country_criterion,json=countryCriterion,proto3" json:"country_criterion,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PolicyTopicConstraint_CountryConstraint) Reset() { + *m = PolicyTopicConstraint_CountryConstraint{} +} +func (m *PolicyTopicConstraint_CountryConstraint) String() string { return proto.CompactTextString(m) } +func (*PolicyTopicConstraint_CountryConstraint) ProtoMessage() {} +func (*PolicyTopicConstraint_CountryConstraint) Descriptor() ([]byte, []int) { + return fileDescriptor_policy_92661ff34caa4cee, []int{4, 2} +} +func (m *PolicyTopicConstraint_CountryConstraint) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PolicyTopicConstraint_CountryConstraint.Unmarshal(m, b) +} +func (m *PolicyTopicConstraint_CountryConstraint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PolicyTopicConstraint_CountryConstraint.Marshal(b, m, deterministic) +} +func (dst *PolicyTopicConstraint_CountryConstraint) XXX_Merge(src proto.Message) { + xxx_messageInfo_PolicyTopicConstraint_CountryConstraint.Merge(dst, src) +} +func (m *PolicyTopicConstraint_CountryConstraint) XXX_Size() int { + return xxx_messageInfo_PolicyTopicConstraint_CountryConstraint.Size(m) +} +func (m *PolicyTopicConstraint_CountryConstraint) XXX_DiscardUnknown() { + xxx_messageInfo_PolicyTopicConstraint_CountryConstraint.DiscardUnknown(m) +} + +var xxx_messageInfo_PolicyTopicConstraint_CountryConstraint proto.InternalMessageInfo + +func (m *PolicyTopicConstraint_CountryConstraint) GetCountryCriterion() *wrappers.StringValue { + if m != nil { + return m.CountryCriterion + } + return nil +} + +func init() { + proto.RegisterType((*PolicyViolationKey)(nil), "google.ads.googleads.v0.common.PolicyViolationKey") + proto.RegisterType((*PolicyValidationParameter)(nil), "google.ads.googleads.v0.common.PolicyValidationParameter") + proto.RegisterType((*PolicyTopicEntry)(nil), "google.ads.googleads.v0.common.PolicyTopicEntry") + proto.RegisterType((*PolicyTopicEvidence)(nil), "google.ads.googleads.v0.common.PolicyTopicEvidence") + proto.RegisterType((*PolicyTopicEvidence_TextList)(nil), "google.ads.googleads.v0.common.PolicyTopicEvidence.TextList") + proto.RegisterType((*PolicyTopicEvidence_WebsiteList)(nil), "google.ads.googleads.v0.common.PolicyTopicEvidence.WebsiteList") + proto.RegisterType((*PolicyTopicEvidence_DestinationTextList)(nil), "google.ads.googleads.v0.common.PolicyTopicEvidence.DestinationTextList") + proto.RegisterType((*PolicyTopicEvidence_DestinationMismatch)(nil), "google.ads.googleads.v0.common.PolicyTopicEvidence.DestinationMismatch") + proto.RegisterType((*PolicyTopicConstraint)(nil), "google.ads.googleads.v0.common.PolicyTopicConstraint") + proto.RegisterType((*PolicyTopicConstraint_CountryConstraintList)(nil), "google.ads.googleads.v0.common.PolicyTopicConstraint.CountryConstraintList") + proto.RegisterType((*PolicyTopicConstraint_ResellerConstraint)(nil), "google.ads.googleads.v0.common.PolicyTopicConstraint.ResellerConstraint") + proto.RegisterType((*PolicyTopicConstraint_CountryConstraint)(nil), "google.ads.googleads.v0.common.PolicyTopicConstraint.CountryConstraint") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/common/policy.proto", fileDescriptor_policy_92661ff34caa4cee) +} + +var fileDescriptor_policy_92661ff34caa4cee = []byte{ + // 964 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x96, 0xcf, 0x6f, 0x1b, 0x45, + 0x14, 0xc7, 0xb3, 0x4e, 0xda, 0xd8, 0xcf, 0x6d, 0x94, 0x4e, 0x6a, 0x6a, 0x0c, 0x2a, 0x95, 0x91, + 0x10, 0x52, 0xa5, 0x75, 0xe4, 0x08, 0x09, 0x51, 0x7e, 0x28, 0x71, 0x2a, 0x3b, 0x6a, 0x8b, 0xc2, + 0xe2, 0x26, 0x12, 0x44, 0x6c, 0x27, 0xbb, 0xd3, 0xed, 0x48, 0xbb, 0x33, 0x66, 0x66, 0xec, 0xc4, + 0xe2, 0x87, 0xb8, 0xf0, 0x3f, 0x20, 0x71, 0xe3, 0xd8, 0x2b, 0x77, 0x24, 0xae, 0x9c, 0xe1, 0xff, + 0x41, 0x3b, 0x33, 0x6b, 0x6f, 0x6c, 0x07, 0x3b, 0x56, 0x38, 0x79, 0x3c, 0xfb, 0xde, 0xe7, 0x7d, + 0xe7, 0xcd, 0x7b, 0x6f, 0x17, 0x1e, 0x46, 0x9c, 0x47, 0x31, 0x69, 0xe0, 0x50, 0x36, 0xcc, 0x32, + 0x5d, 0x0d, 0xb6, 0x1b, 0x01, 0x4f, 0x12, 0xce, 0x1a, 0x3d, 0x1e, 0xd3, 0x60, 0xe8, 0xf6, 0x04, + 0x57, 0x1c, 0xdd, 0x37, 0x16, 0x2e, 0x0e, 0xa5, 0x3b, 0x32, 0x76, 0x07, 0xdb, 0xae, 0x31, 0xae, + 0x3d, 0xba, 0x0c, 0x46, 0x58, 0x3f, 0x91, 0x96, 0xe5, 0x2b, 0xde, 0xa3, 0x81, 0x4f, 0x98, 0x12, + 0x43, 0x5f, 0x0d, 0x7b, 0xc4, 0xc0, 0x6b, 0xc7, 0x57, 0x71, 0x1e, 0xd0, 0x90, 0xb0, 0x80, 0xf8, + 0x21, 0x91, 0x8a, 0x32, 0xac, 0x28, 0x67, 0x7e, 0x42, 0x65, 0x82, 0x55, 0xf0, 0xca, 0xef, 0x8b, + 0x38, 0x0f, 0xb6, 0xaa, 0x1b, 0xfa, 0xdf, 0x69, 0xff, 0x65, 0xe3, 0x4c, 0xe0, 0x5e, 0x8f, 0x08, + 0x69, 0x9e, 0xd7, 0x7f, 0x71, 0x00, 0x1d, 0x6a, 0xfa, 0x11, 0xe5, 0xb1, 0x66, 0x3d, 0x21, 0x43, + 0xf4, 0x09, 0x94, 0x6d, 0x4c, 0x86, 0x13, 0x52, 0x75, 0x1e, 0x38, 0xef, 0x97, 0x9b, 0x6f, 0xdb, + 0x73, 0xbb, 0x19, 0xcc, 0xfd, 0x52, 0x09, 0xca, 0xa2, 0x23, 0x1c, 0xf7, 0x89, 0x07, 0xc6, 0xe1, + 0x73, 0x9c, 0x10, 0xd4, 0x82, 0x8d, 0x81, 0xc1, 0xb1, 0xc8, 0x57, 0xe4, 0x5c, 0x55, 0x0b, 0x0b, + 0x10, 0x6e, 0x8f, 0x7c, 0xba, 0xe4, 0x5c, 0xd5, 0xbf, 0x85, 0x37, 0xad, 0x32, 0x1c, 0xd3, 0x50, + 0x4b, 0x3b, 0xc4, 0x02, 0x27, 0x44, 0x11, 0x81, 0xba, 0x70, 0x8f, 0x46, 0x8c, 0x0b, 0x7c, 0x1a, + 0x13, 0x3f, 0x9f, 0x1e, 0x59, 0x75, 0x1e, 0xac, 0xce, 0x0d, 0x55, 0x19, 0x39, 0x9b, 0x10, 0x5d, + 0xed, 0x5a, 0xff, 0xbb, 0x00, 0x9b, 0xb9, 0x8d, 0xc7, 0xe9, 0x35, 0xa1, 0x26, 0xdc, 0xd0, 0xe4, + 0x85, 0xb2, 0x60, 0x4c, 0xd1, 0x0b, 0x58, 0x4b, 0x2f, 0x41, 0x1f, 0x7b, 0xa3, 0xf9, 0xd4, 0xbd, + 0xac, 0x76, 0xf4, 0xf5, 0xba, 0x93, 0x21, 0xbb, 0xc3, 0x1e, 0x79, 0xcc, 0xfa, 0xc9, 0xcc, 0x07, + 0x9e, 0x26, 0xa3, 0x2f, 0xa0, 0x94, 0x15, 0x82, 0xac, 0xae, 0xea, 0x23, 0xef, 0xb8, 0xff, 0x5d, + 0xa2, 0x17, 0x70, 0xd6, 0xd7, 0x1b, 0x53, 0xd0, 0x31, 0x94, 0x03, 0xce, 0xa4, 0x12, 0x98, 0x32, + 0x25, 0xab, 0x6b, 0x1a, 0xfa, 0xc1, 0x15, 0xa0, 0xad, 0x91, 0xb7, 0x97, 0x27, 0xd5, 0x7f, 0x2a, + 0xc2, 0xd6, 0x8c, 0xd8, 0xe8, 0x23, 0x28, 0xbd, 0x52, 0xaa, 0xe7, 0x07, 0x3c, 0x24, 0xb6, 0x42, + 0xde, 0x9a, 0xca, 0xee, 0x01, 0x53, 0x3b, 0x4d, 0x9d, 0xdc, 0xce, 0x8a, 0x57, 0x4c, 0xed, 0x5b, + 0x3c, 0x24, 0x28, 0x84, 0x5b, 0x67, 0xe4, 0x54, 0x52, 0x45, 0xfc, 0x98, 0x4a, 0x55, 0x5d, 0xd5, + 0xee, 0x9f, 0x2d, 0x91, 0x02, 0xf7, 0xd8, 0x70, 0x9e, 0x52, 0xa9, 0x3a, 0x2b, 0x5e, 0xf9, 0x6c, + 0xfc, 0x17, 0x7d, 0x0d, 0xa5, 0xb4, 0x7c, 0x4d, 0x88, 0x35, 0x1d, 0xe2, 0xe3, 0x65, 0x42, 0xa4, + 0x05, 0x6d, 0xf9, 0x45, 0x65, 0xd7, 0xa8, 0x05, 0xb7, 0x63, 0xcc, 0xa2, 0x3e, 0x8e, 0x88, 0x49, + 0xc1, 0x8d, 0xf9, 0x05, 0xd6, 0x59, 0xf1, 0x6e, 0x65, 0x4e, 0x3a, 0x0f, 0x3f, 0x40, 0x25, 0x3f, + 0x07, 0xc6, 0x6a, 0x6f, 0x6a, 0x58, 0x7b, 0x19, 0xb5, 0xfb, 0x63, 0x60, 0x4e, 0xf8, 0x56, 0x38, + 0xbd, 0x8d, 0xbe, 0x87, 0xbb, 0xb3, 0xc6, 0x50, 0x75, 0xfd, 0x5a, 0xa2, 0x3f, 0xb3, 0xb8, 0x89, + 0xe8, 0xd9, 0x76, 0xed, 0x53, 0x28, 0x8e, 0x94, 0xa4, 0x6d, 0x4a, 0xce, 0xd5, 0x62, 0xfd, 0x6f, + 0x4c, 0x6b, 0x6d, 0x28, 0xe7, 0x2e, 0x1f, 0x7d, 0x08, 0x45, 0x7b, 0xf9, 0x8b, 0x51, 0x46, 0xd6, + 0xb5, 0x17, 0xb0, 0x35, 0x23, 0x69, 0xe8, 0x00, 0xee, 0x4c, 0x5e, 0xce, 0x62, 0xe4, 0xcd, 0x89, + 0x5c, 0xcb, 0xda, 0xef, 0xce, 0x85, 0x10, 0x59, 0x0a, 0xd0, 0xaf, 0x0e, 0x94, 0xb2, 0x99, 0x6f, + 0xd8, 0x1b, 0xcd, 0x1f, 0xaf, 0x30, 0x6f, 0x6c, 0xd6, 0x67, 0xa0, 0x9f, 0x8b, 0x78, 0xe6, 0x20, + 0x9a, 0xeb, 0xe1, 0x15, 0xfb, 0x66, 0x21, 0xf7, 0xd6, 0xe1, 0xc6, 0x20, 0x3d, 0x50, 0xfd, 0x8f, + 0x75, 0xa8, 0xcc, 0x9c, 0x14, 0xe8, 0x67, 0x07, 0xee, 0x05, 0xbc, 0xaf, 0xdf, 0x88, 0xe3, 0xa1, + 0x61, 0x6a, 0xd8, 0x4c, 0xdc, 0x27, 0x4b, 0x8d, 0x20, 0xb7, 0x65, 0xa0, 0xe3, 0x1d, 0x5b, 0xc7, + 0x95, 0x60, 0xd6, 0x03, 0xf4, 0x1d, 0x6c, 0x09, 0x22, 0x49, 0x1c, 0x13, 0x91, 0xd3, 0x61, 0xc7, + 0x52, 0x67, 0x39, 0x09, 0x9e, 0x05, 0x8e, 0xb7, 0x3a, 0x2b, 0x1e, 0x12, 0x53, 0xbb, 0xe9, 0x2d, + 0xbe, 0x1b, 0x10, 0xa1, 0xe8, 0x4b, 0x1a, 0x60, 0x45, 0xd2, 0x3e, 0x92, 0xe9, 0xbb, 0x93, 0x32, + 0x3f, 0xcb, 0x4d, 0x6e, 0xca, 0x5d, 0x73, 0x42, 0xde, 0xc9, 0x45, 0x7e, 0x66, 0x02, 0x1f, 0x30, + 0x6b, 0xac, 0x53, 0xf3, 0xda, 0x81, 0x87, 0x79, 0x75, 0x21, 0x4f, 0x30, 0xcd, 0x7d, 0x73, 0x4c, + 0xaa, 0x5c, 0xfb, 0x3f, 0x54, 0xbe, 0x97, 0x53, 0xb0, 0xaf, 0x05, 0x64, 0x65, 0x77, 0x41, 0x6c, + 0xed, 0x1f, 0x07, 0x2a, 0x33, 0x19, 0xe8, 0x39, 0x54, 0x15, 0x57, 0x38, 0xf6, 0x15, 0x16, 0x11, + 0x51, 0x24, 0xb4, 0xaa, 0xa9, 0x6e, 0x9c, 0x79, 0x6f, 0x1f, 0xef, 0x0d, 0xed, 0xdc, 0xb5, 0xbe, + 0xad, 0xcc, 0x15, 0x11, 0x28, 0x8d, 0x39, 0x05, 0xdd, 0xdc, 0xed, 0x6b, 0x3a, 0xba, 0x37, 0x26, + 0xd7, 0xee, 0x02, 0x9a, 0x2e, 0xa7, 0xda, 0x37, 0x70, 0x67, 0xca, 0x2b, 0x1d, 0x3b, 0xa3, 0x8e, + 0x12, 0x54, 0x11, 0x41, 0x39, 0x5b, 0xe8, 0xeb, 0x65, 0x33, 0x6b, 0x8d, 0xcc, 0x6b, 0xd4, 0xc0, + 0x7b, 0x7f, 0x3a, 0x50, 0x0f, 0x78, 0x32, 0xe7, 0x60, 0x7b, 0x65, 0x73, 0xb2, 0xc3, 0x94, 0x7e, + 0xe8, 0x7c, 0xb5, 0x6f, 0xcd, 0x23, 0x9e, 0xbe, 0xb4, 0x5c, 0x2e, 0xa2, 0x46, 0x44, 0x98, 0x8e, + 0x9d, 0x7d, 0xe7, 0xf6, 0xa8, 0xbc, 0xec, 0x03, 0xfc, 0x91, 0xf9, 0xf9, 0xad, 0xb0, 0xda, 0xde, + 0xdd, 0x7d, 0x5d, 0xb8, 0xdf, 0x36, 0xb0, 0xdd, 0x50, 0xba, 0x66, 0x99, 0xae, 0x8e, 0xb6, 0xdd, + 0x96, 0x36, 0xfb, 0x2b, 0x33, 0x38, 0xd9, 0x0d, 0xe5, 0xc9, 0xc8, 0xe0, 0xe4, 0x68, 0xfb, 0xc4, + 0x18, 0x9c, 0xde, 0xd4, 0x81, 0x77, 0xfe, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x6b, 0x05, 0x08, 0x96, + 0xf8, 0x0b, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/real_time_bidding_setting.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/real_time_bidding_setting.pb.go new file mode 100644 index 000000000..6e68391c6 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/real_time_bidding_setting.pb.go @@ -0,0 +1,90 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/common/real_time_bidding_setting.proto + +package common // import "google.golang.org/genproto/googleapis/ads/googleads/v0/common" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Settings for Real-Time Bidding, a feature only available for campaigns +// targeting the Ad Exchange network. +type RealTimeBiddingSetting struct { + // Whether the campaign is opted in to real-time bidding. + OptIn *wrappers.BoolValue `protobuf:"bytes,1,opt,name=opt_in,json=optIn,proto3" json:"opt_in,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RealTimeBiddingSetting) Reset() { *m = RealTimeBiddingSetting{} } +func (m *RealTimeBiddingSetting) String() string { return proto.CompactTextString(m) } +func (*RealTimeBiddingSetting) ProtoMessage() {} +func (*RealTimeBiddingSetting) Descriptor() ([]byte, []int) { + return fileDescriptor_real_time_bidding_setting_bb30570aed4e7c68, []int{0} +} +func (m *RealTimeBiddingSetting) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RealTimeBiddingSetting.Unmarshal(m, b) +} +func (m *RealTimeBiddingSetting) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RealTimeBiddingSetting.Marshal(b, m, deterministic) +} +func (dst *RealTimeBiddingSetting) XXX_Merge(src proto.Message) { + xxx_messageInfo_RealTimeBiddingSetting.Merge(dst, src) +} +func (m *RealTimeBiddingSetting) XXX_Size() int { + return xxx_messageInfo_RealTimeBiddingSetting.Size(m) +} +func (m *RealTimeBiddingSetting) XXX_DiscardUnknown() { + xxx_messageInfo_RealTimeBiddingSetting.DiscardUnknown(m) +} + +var xxx_messageInfo_RealTimeBiddingSetting proto.InternalMessageInfo + +func (m *RealTimeBiddingSetting) GetOptIn() *wrappers.BoolValue { + if m != nil { + return m.OptIn + } + return nil +} + +func init() { + proto.RegisterType((*RealTimeBiddingSetting)(nil), "google.ads.googleads.v0.common.RealTimeBiddingSetting") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/common/real_time_bidding_setting.proto", fileDescriptor_real_time_bidding_setting_bb30570aed4e7c68) +} + +var fileDescriptor_real_time_bidding_setting_bb30570aed4e7c68 = []byte{ + // 269 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0x41, 0x4b, 0xc3, 0x30, + 0x18, 0x86, 0xe9, 0xc4, 0x1d, 0xea, 0x6d, 0x07, 0x91, 0x09, 0x43, 0x76, 0xf2, 0xf4, 0xa5, 0xea, + 0x51, 0x10, 0x5a, 0x85, 0x21, 0x5e, 0xc6, 0x94, 0x1e, 0xa4, 0x50, 0xd2, 0x25, 0x86, 0x40, 0x9a, + 0x2f, 0x24, 0xd9, 0xfc, 0x3f, 0x1e, 0xfd, 0x29, 0xde, 0xfc, 0x47, 0xd2, 0x7e, 0xed, 0x4e, 0xea, + 0xa9, 0x2f, 0xf4, 0x7d, 0x9e, 0x37, 0x7c, 0xe9, 0x9d, 0x42, 0x54, 0x46, 0x32, 0x2e, 0x02, 0xa3, + 0xd8, 0xa5, 0x7d, 0xc6, 0xb6, 0xd8, 0xb6, 0x68, 0x99, 0x97, 0xdc, 0xd4, 0x51, 0xb7, 0xb2, 0x6e, + 0xb4, 0x10, 0xda, 0xaa, 0x3a, 0xc8, 0x18, 0xb5, 0x55, 0xe0, 0x3c, 0x46, 0x9c, 0x2d, 0x08, 0x02, + 0x2e, 0x02, 0x1c, 0x78, 0xd8, 0x67, 0x40, 0xfc, 0x7c, 0xf8, 0xcf, 0xfa, 0x76, 0xb3, 0x7b, 0x63, + 0xef, 0x9e, 0x3b, 0x27, 0x7d, 0x20, 0x7e, 0xf9, 0x94, 0x9e, 0x6e, 0x24, 0x37, 0x2f, 0xba, 0x95, + 0x05, 0x0d, 0x3c, 0x93, 0x7f, 0x76, 0x95, 0x4e, 0xd1, 0xc5, 0x5a, 0xdb, 0xb3, 0xe4, 0x22, 0xb9, + 0x3c, 0xb9, 0x9e, 0x0f, 0x7e, 0x18, 0x55, 0x50, 0x20, 0x9a, 0x92, 0x9b, 0x9d, 0xdc, 0x1c, 0xa3, + 0x8b, 0x8f, 0xb6, 0xf8, 0x4e, 0xd2, 0xe5, 0x16, 0x5b, 0xf8, 0xff, 0x4d, 0xc5, 0xf9, 0xef, 0x8b, + 0xeb, 0xce, 0xbb, 0x4e, 0x5e, 0x1f, 0x06, 0x5c, 0xa1, 0xe1, 0x56, 0x01, 0x7a, 0xc5, 0x94, 0xb4, + 0xfd, 0xea, 0x78, 0x22, 0xa7, 0xc3, 0x5f, 0x17, 0xbb, 0xa5, 0xcf, 0xc7, 0xe4, 0x68, 0x95, 0xe7, + 0x9f, 0x93, 0xc5, 0x8a, 0x64, 0xb9, 0x08, 0x40, 0xb1, 0x4b, 0x65, 0x06, 0xf7, 0x7d, 0xed, 0x6b, + 0x2c, 0x54, 0xb9, 0x08, 0xd5, 0xa1, 0x50, 0x95, 0x59, 0x45, 0x85, 0x66, 0xda, 0x0f, 0xdf, 0xfc, + 0x04, 0x00, 0x00, 0xff, 0xff, 0x06, 0x56, 0x26, 0xd9, 0xa9, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/tag_snippet.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/tag_snippet.pb.go new file mode 100644 index 000000000..4d7d4710c --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/tag_snippet.pb.go @@ -0,0 +1,128 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/common/tag_snippet.proto + +package common // import "google.golang.org/genproto/googleapis/ads/googleads/v0/common" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// The site tag and event snippet pair for a TrackingCodeType. +type TagSnippet struct { + // The type of the generated tag snippets for tracking conversions. + Type enums.TrackingCodeTypeEnum_TrackingCodeType `protobuf:"varint,1,opt,name=type,proto3,enum=google.ads.googleads.v0.enums.TrackingCodeTypeEnum_TrackingCodeType" json:"type,omitempty"` + // The format of the web page where the tracking tag and snippet will be + // installed, e.g. HTML. + PageFormat enums.TrackingCodePageFormatEnum_TrackingCodePageFormat `protobuf:"varint,2,opt,name=page_format,json=pageFormat,proto3,enum=google.ads.googleads.v0.enums.TrackingCodePageFormatEnum_TrackingCodePageFormat" json:"page_format,omitempty"` + // The site tag that adds visitors to your basic remarketing lists and sets + // new cookies on your domain. + GlobalSiteTag *wrappers.StringValue `protobuf:"bytes,3,opt,name=global_site_tag,json=globalSiteTag,proto3" json:"global_site_tag,omitempty"` + // The event snippet that works with the site tag to track actions that + // should be counted as conversions. + EventSnippet *wrappers.StringValue `protobuf:"bytes,4,opt,name=event_snippet,json=eventSnippet,proto3" json:"event_snippet,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TagSnippet) Reset() { *m = TagSnippet{} } +func (m *TagSnippet) String() string { return proto.CompactTextString(m) } +func (*TagSnippet) ProtoMessage() {} +func (*TagSnippet) Descriptor() ([]byte, []int) { + return fileDescriptor_tag_snippet_41d6e556b94abd18, []int{0} +} +func (m *TagSnippet) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TagSnippet.Unmarshal(m, b) +} +func (m *TagSnippet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TagSnippet.Marshal(b, m, deterministic) +} +func (dst *TagSnippet) XXX_Merge(src proto.Message) { + xxx_messageInfo_TagSnippet.Merge(dst, src) +} +func (m *TagSnippet) XXX_Size() int { + return xxx_messageInfo_TagSnippet.Size(m) +} +func (m *TagSnippet) XXX_DiscardUnknown() { + xxx_messageInfo_TagSnippet.DiscardUnknown(m) +} + +var xxx_messageInfo_TagSnippet proto.InternalMessageInfo + +func (m *TagSnippet) GetType() enums.TrackingCodeTypeEnum_TrackingCodeType { + if m != nil { + return m.Type + } + return enums.TrackingCodeTypeEnum_UNSPECIFIED +} + +func (m *TagSnippet) GetPageFormat() enums.TrackingCodePageFormatEnum_TrackingCodePageFormat { + if m != nil { + return m.PageFormat + } + return enums.TrackingCodePageFormatEnum_UNSPECIFIED +} + +func (m *TagSnippet) GetGlobalSiteTag() *wrappers.StringValue { + if m != nil { + return m.GlobalSiteTag + } + return nil +} + +func (m *TagSnippet) GetEventSnippet() *wrappers.StringValue { + if m != nil { + return m.EventSnippet + } + return nil +} + +func init() { + proto.RegisterType((*TagSnippet)(nil), "google.ads.googleads.v0.common.TagSnippet") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/common/tag_snippet.proto", fileDescriptor_tag_snippet_41d6e556b94abd18) +} + +var fileDescriptor_tag_snippet_41d6e556b94abd18 = []byte{ + // 387 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x92, 0x41, 0xcb, 0xda, 0x30, + 0x1c, 0xc6, 0x69, 0xdf, 0x97, 0x1d, 0xe2, 0x9c, 0xd0, 0x53, 0x91, 0x21, 0xe2, 0xc9, 0x53, 0x52, + 0x1c, 0xec, 0x32, 0x76, 0xa8, 0xba, 0x79, 0x2d, 0x5a, 0x64, 0x8c, 0x42, 0x89, 0xed, 0xdf, 0x50, + 0xd6, 0x26, 0x59, 0x93, 0x3a, 0xfc, 0x3a, 0x3b, 0xee, 0x7b, 0xec, 0xb2, 0x8f, 0xb1, 0x4f, 0x32, + 0x9a, 0xb4, 0x3a, 0x10, 0xc7, 0x3c, 0xf5, 0x69, 0xf3, 0xfc, 0x9e, 0xa7, 0x49, 0xfe, 0x28, 0x60, + 0x42, 0xb0, 0x12, 0x08, 0xcd, 0x15, 0xb1, 0xb2, 0x55, 0xa7, 0x80, 0x64, 0xa2, 0xaa, 0x04, 0x27, + 0x9a, 0xb2, 0x54, 0xf1, 0x42, 0x4a, 0xd0, 0x58, 0xd6, 0x42, 0x0b, 0x6f, 0x62, 0x6d, 0x98, 0xe6, + 0x0a, 0x5f, 0x08, 0x7c, 0x0a, 0xb0, 0x25, 0xc6, 0xef, 0xef, 0x25, 0x02, 0x6f, 0x2a, 0x45, 0x74, + 0x4d, 0xb3, 0x2f, 0x05, 0x67, 0x69, 0x26, 0x72, 0x48, 0x25, 0x65, 0x90, 0x1e, 0x45, 0x5d, 0xd1, + 0x2e, 0x7e, 0xfc, 0xf6, 0x11, 0x5c, 0x9f, 0x25, 0x74, 0x5c, 0xf7, 0x5b, 0xc4, 0xbc, 0x1d, 0x9a, + 0x23, 0xf9, 0x56, 0x53, 0x29, 0xa1, 0x56, 0x76, 0x7d, 0xf6, 0xdb, 0x45, 0x28, 0xa6, 0x6c, 0x67, + 0xf7, 0xe2, 0x7d, 0x42, 0xcf, 0x2d, 0xec, 0x3b, 0x53, 0x67, 0xfe, 0x6a, 0xb1, 0xc6, 0xf7, 0x36, + 0x65, 0x5a, 0x71, 0xdc, 0xb5, 0xae, 0x44, 0x0e, 0xf1, 0x59, 0xc2, 0x07, 0xde, 0x54, 0x37, 0x1f, + 0xb7, 0x26, 0xd1, 0xfb, 0x8a, 0x06, 0x7f, 0xed, 0xca, 0x77, 0x4d, 0x41, 0xf4, 0x40, 0x41, 0x44, + 0x19, 0x7c, 0x34, 0xf0, 0x4d, 0xcd, 0x75, 0x69, 0x8b, 0xe4, 0x45, 0x7b, 0x6b, 0x34, 0x62, 0xa5, + 0x38, 0xd0, 0x32, 0x55, 0x85, 0x86, 0x54, 0x53, 0xe6, 0x3f, 0x4d, 0x9d, 0xf9, 0x60, 0xf1, 0xba, + 0xaf, 0xed, 0x4f, 0x05, 0xef, 0x74, 0x5d, 0x70, 0xb6, 0xa7, 0x65, 0x03, 0xdb, 0xa1, 0x85, 0x76, + 0x85, 0x86, 0x98, 0x32, 0x2f, 0x44, 0x43, 0x38, 0x01, 0xd7, 0xfd, 0x7d, 0xfb, 0xcf, 0xff, 0x91, + 0xf1, 0xd2, 0x20, 0xdd, 0xa9, 0x2e, 0x7f, 0x3a, 0x68, 0x96, 0x89, 0x0a, 0xff, 0x7b, 0x44, 0x96, + 0xa3, 0xeb, 0x45, 0x44, 0x6d, 0x68, 0xe4, 0x7c, 0x5e, 0x77, 0x08, 0x13, 0x25, 0xe5, 0x0c, 0x8b, + 0x9a, 0x11, 0x06, 0xdc, 0x54, 0xf6, 0x63, 0x20, 0x0b, 0x75, 0x6f, 0x4c, 0xdf, 0xd9, 0xc7, 0x77, + 0xf7, 0x69, 0x13, 0x86, 0x3f, 0xdc, 0xc9, 0xc6, 0x86, 0x85, 0xb9, 0xc2, 0x56, 0xb6, 0x6a, 0x1f, + 0xe0, 0x95, 0xb1, 0xfd, 0xea, 0x0d, 0x49, 0x98, 0xab, 0xe4, 0x62, 0x48, 0xf6, 0x41, 0x62, 0x0d, + 0x87, 0x17, 0xa6, 0xf8, 0xcd, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x7d, 0xc4, 0x9f, 0x11, 0x1e, + 0x03, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/user_lists.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/user_lists.pb.go new file mode 100644 index 000000000..246acbac9 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/user_lists.pb.go @@ -0,0 +1,172 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/common/user_lists.proto + +package common // import "google.golang.org/genproto/googleapis/ads/googleads/v0/common" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// SimilarUserList is a list of users which are similar to users from another +// UserList. These lists are read-only and automatically created by Google. +type SimilarUserListInfo struct { + // Seed UserList from which this list is derived. + SeedUserList *wrappers.StringValue `protobuf:"bytes,1,opt,name=seed_user_list,json=seedUserList,proto3" json:"seed_user_list,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SimilarUserListInfo) Reset() { *m = SimilarUserListInfo{} } +func (m *SimilarUserListInfo) String() string { return proto.CompactTextString(m) } +func (*SimilarUserListInfo) ProtoMessage() {} +func (*SimilarUserListInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_user_lists_7f01f78cb9521749, []int{0} +} +func (m *SimilarUserListInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SimilarUserListInfo.Unmarshal(m, b) +} +func (m *SimilarUserListInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SimilarUserListInfo.Marshal(b, m, deterministic) +} +func (dst *SimilarUserListInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_SimilarUserListInfo.Merge(dst, src) +} +func (m *SimilarUserListInfo) XXX_Size() int { + return xxx_messageInfo_SimilarUserListInfo.Size(m) +} +func (m *SimilarUserListInfo) XXX_DiscardUnknown() { + xxx_messageInfo_SimilarUserListInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_SimilarUserListInfo proto.InternalMessageInfo + +func (m *SimilarUserListInfo) GetSeedUserList() *wrappers.StringValue { + if m != nil { + return m.SeedUserList + } + return nil +} + +// UserList of CRM users provided by the advertiser. +type CrmBasedUserListInfo struct { + // A string that uniquely identifies a mobile application from which the data + // was collected to the Google Ads API. + // For iOS, the ID string is the 9 digit string that appears at the end of an + // App Store URL (e.g., "476943146" for "Flood-It! 2" whose App Store link is + // http://itunes.apple.com/us/app/flood-it!-2/id476943146). + // For Android, the ID string is the application's package name + // (e.g., "com.labpixies.colordrips" for "Color Drips" given Google Play link + // https://play.google.com/store/apps/details?id=com.labpixies.colordrips). + // Required when creating CrmBasedUserList for uploading mobile advertising + // IDs. + AppId *wrappers.StringValue `protobuf:"bytes,1,opt,name=app_id,json=appId,proto3" json:"app_id,omitempty"` + // Matching key type of the list. + // Mixed data types are not allowed on the same list. + // This field is required for an ADD operation. + UploadKeyType enums.CustomerMatchUploadKeyTypeEnum_CustomerMatchUploadKeyType `protobuf:"varint,2,opt,name=upload_key_type,json=uploadKeyType,proto3,enum=google.ads.googleads.v0.enums.CustomerMatchUploadKeyTypeEnum_CustomerMatchUploadKeyType" json:"upload_key_type,omitempty"` + // Data source of the list. Default value is FIRST_PARTY. + // Only whitelisted customers can create third party sourced crm lists. + DataSourceType enums.UserListCrmDataSourceTypeEnum_UserListCrmDataSourceType `protobuf:"varint,3,opt,name=data_source_type,json=dataSourceType,proto3,enum=google.ads.googleads.v0.enums.UserListCrmDataSourceTypeEnum_UserListCrmDataSourceType" json:"data_source_type,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CrmBasedUserListInfo) Reset() { *m = CrmBasedUserListInfo{} } +func (m *CrmBasedUserListInfo) String() string { return proto.CompactTextString(m) } +func (*CrmBasedUserListInfo) ProtoMessage() {} +func (*CrmBasedUserListInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_user_lists_7f01f78cb9521749, []int{1} +} +func (m *CrmBasedUserListInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CrmBasedUserListInfo.Unmarshal(m, b) +} +func (m *CrmBasedUserListInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CrmBasedUserListInfo.Marshal(b, m, deterministic) +} +func (dst *CrmBasedUserListInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_CrmBasedUserListInfo.Merge(dst, src) +} +func (m *CrmBasedUserListInfo) XXX_Size() int { + return xxx_messageInfo_CrmBasedUserListInfo.Size(m) +} +func (m *CrmBasedUserListInfo) XXX_DiscardUnknown() { + xxx_messageInfo_CrmBasedUserListInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_CrmBasedUserListInfo proto.InternalMessageInfo + +func (m *CrmBasedUserListInfo) GetAppId() *wrappers.StringValue { + if m != nil { + return m.AppId + } + return nil +} + +func (m *CrmBasedUserListInfo) GetUploadKeyType() enums.CustomerMatchUploadKeyTypeEnum_CustomerMatchUploadKeyType { + if m != nil { + return m.UploadKeyType + } + return enums.CustomerMatchUploadKeyTypeEnum_UNSPECIFIED +} + +func (m *CrmBasedUserListInfo) GetDataSourceType() enums.UserListCrmDataSourceTypeEnum_UserListCrmDataSourceType { + if m != nil { + return m.DataSourceType + } + return enums.UserListCrmDataSourceTypeEnum_UNSPECIFIED +} + +func init() { + proto.RegisterType((*SimilarUserListInfo)(nil), "google.ads.googleads.v0.common.SimilarUserListInfo") + proto.RegisterType((*CrmBasedUserListInfo)(nil), "google.ads.googleads.v0.common.CrmBasedUserListInfo") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/common/user_lists.proto", fileDescriptor_user_lists_7f01f78cb9521749) +} + +var fileDescriptor_user_lists_7f01f78cb9521749 = []byte{ + // 427 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x92, 0xcf, 0x6e, 0xd4, 0x30, + 0x10, 0xc6, 0x95, 0x54, 0xf4, 0x10, 0x20, 0xa0, 0x85, 0xc3, 0x0a, 0xa1, 0xaa, 0xda, 0x53, 0x4f, + 0x76, 0xd4, 0x1e, 0x39, 0x25, 0x29, 0xaa, 0x2a, 0x40, 0xaa, 0x76, 0x69, 0x04, 0x28, 0x92, 0xe5, + 0xc6, 0x6e, 0x88, 0x88, 0x63, 0xcb, 0x63, 0x17, 0xe5, 0xc6, 0xb3, 0x70, 0xe4, 0x39, 0x38, 0x71, + 0xe3, 0x8d, 0x50, 0x9c, 0x3f, 0x94, 0x95, 0xb2, 0xcb, 0x69, 0x67, 0xd6, 0x33, 0xbf, 0xf9, 0xe6, + 0xcb, 0x04, 0xb8, 0x94, 0xb2, 0xac, 0x39, 0xa6, 0x0c, 0x86, 0xb0, 0x8b, 0xee, 0x22, 0x5c, 0x48, + 0x21, 0x64, 0x83, 0x2d, 0x70, 0x4d, 0xea, 0x0a, 0x0c, 0x20, 0xa5, 0xa5, 0x91, 0x8b, 0xa3, 0xbe, + 0x0a, 0x51, 0x06, 0x68, 0x6a, 0x40, 0x77, 0x11, 0xea, 0x1b, 0x5e, 0x24, 0x73, 0x40, 0xde, 0x58, + 0x01, 0xb8, 0xb0, 0x60, 0xa4, 0xe0, 0x9a, 0x08, 0x6a, 0x8a, 0xcf, 0xc4, 0xaa, 0x5a, 0x52, 0x46, + 0xbe, 0xf0, 0x96, 0x98, 0x56, 0xf1, 0x7e, 0xc6, 0x3e, 0xc6, 0xa4, 0x89, 0x14, 0x5a, 0x10, 0x46, + 0x0d, 0x25, 0x20, 0xad, 0x2e, 0xf8, 0x7d, 0xc6, 0xa0, 0x13, 0xbb, 0xec, 0xc6, 0xde, 0xe2, 0xaf, + 0x9a, 0x2a, 0xc5, 0xf5, 0xb0, 0xc7, 0xea, 0x63, 0xf0, 0x6c, 0x53, 0x89, 0xaa, 0xa6, 0xfa, 0x1a, + 0xb8, 0x7e, 0x5b, 0x81, 0xb9, 0x6c, 0x6e, 0xe5, 0x22, 0x09, 0x42, 0xe0, 0x9c, 0x91, 0x69, 0xc6, + 0xd2, 0x3b, 0xf6, 0x4e, 0x1e, 0x9e, 0xbe, 0x1c, 0x96, 0x45, 0x23, 0x0f, 0x6d, 0x8c, 0xae, 0x9a, + 0x32, 0xa3, 0xb5, 0xe5, 0xeb, 0x47, 0x5d, 0xcf, 0xc8, 0x59, 0xfd, 0xf6, 0x83, 0xe7, 0xa9, 0x16, + 0x09, 0x85, 0xbf, 0x7f, 0x3a, 0xf8, 0x59, 0x70, 0x48, 0x95, 0x22, 0x15, 0xfb, 0x2f, 0xe8, 0x03, + 0xaa, 0xd4, 0x25, 0x5b, 0x7c, 0xf3, 0x82, 0x27, 0x5b, 0x36, 0x2d, 0xfd, 0x63, 0xef, 0x24, 0x3c, + 0xfd, 0x80, 0xe6, 0xbe, 0x85, 0xf3, 0x09, 0xa5, 0x83, 0xd7, 0xef, 0x3a, 0xab, 0xaf, 0x1d, 0xe2, + 0x0d, 0x6f, 0xdf, 0xb7, 0x8a, 0xbf, 0x6e, 0xac, 0xd8, 0xf1, 0xbc, 0x7e, 0x6c, 0xef, 0xa7, 0x9d, + 0x84, 0xa7, 0xdb, 0x36, 0x2f, 0x0f, 0x9c, 0x86, 0x6c, 0x8f, 0x86, 0x71, 0xff, 0x54, 0x8b, 0x73, + 0x6a, 0xe8, 0xc6, 0x01, 0x26, 0x09, 0xb3, 0xaf, 0xeb, 0x90, 0xfd, 0x93, 0x27, 0x3f, 0xbd, 0x60, + 0x55, 0x48, 0x81, 0x76, 0x5f, 0x5f, 0x12, 0x8e, 0x44, 0xb8, 0xea, 0x2c, 0xbd, 0xf2, 0x3e, 0x9d, + 0x0f, 0x1d, 0xa5, 0xac, 0x69, 0x53, 0x22, 0xa9, 0x4b, 0x5c, 0xf2, 0xc6, 0x19, 0x3e, 0xde, 0x96, + 0xaa, 0x60, 0xee, 0xfe, 0x5f, 0xf5, 0x3f, 0xdf, 0xfd, 0x83, 0x8b, 0x38, 0xfe, 0xe1, 0x1f, 0x5d, + 0xf4, 0xb0, 0x98, 0x01, 0xea, 0xc3, 0x2e, 0xca, 0x22, 0x94, 0xba, 0xb2, 0x5f, 0x63, 0x41, 0x1e, + 0x33, 0xc8, 0xa7, 0x82, 0x3c, 0x8b, 0xf2, 0xbe, 0xe0, 0xe6, 0xd0, 0x0d, 0x3e, 0xfb, 0x13, 0x00, + 0x00, 0xff, 0xff, 0x74, 0x93, 0xe3, 0x13, 0x77, 0x03, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/value.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/value.pb.go new file mode 100644 index 000000000..eded53842 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/common/value.pb.go @@ -0,0 +1,277 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/common/value.proto + +package common // import "google.golang.org/genproto/googleapis/ads/googleads/v0/common" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A generic data container. +type Value struct { + // A value. + // + // Types that are valid to be assigned to Value: + // *Value_BooleanValue + // *Value_Int64Value + // *Value_FloatValue + // *Value_DoubleValue + // *Value_StringValue + Value isValue_Value `protobuf_oneof:"value"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Value) Reset() { *m = Value{} } +func (m *Value) String() string { return proto.CompactTextString(m) } +func (*Value) ProtoMessage() {} +func (*Value) Descriptor() ([]byte, []int) { + return fileDescriptor_value_e9174d7d4390b938, []int{0} +} +func (m *Value) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Value.Unmarshal(m, b) +} +func (m *Value) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Value.Marshal(b, m, deterministic) +} +func (dst *Value) XXX_Merge(src proto.Message) { + xxx_messageInfo_Value.Merge(dst, src) +} +func (m *Value) XXX_Size() int { + return xxx_messageInfo_Value.Size(m) +} +func (m *Value) XXX_DiscardUnknown() { + xxx_messageInfo_Value.DiscardUnknown(m) +} + +var xxx_messageInfo_Value proto.InternalMessageInfo + +type isValue_Value interface { + isValue_Value() +} + +type Value_BooleanValue struct { + BooleanValue bool `protobuf:"varint,1,opt,name=boolean_value,json=booleanValue,proto3,oneof"` +} + +type Value_Int64Value struct { + Int64Value int64 `protobuf:"varint,2,opt,name=int64_value,json=int64Value,proto3,oneof"` +} + +type Value_FloatValue struct { + FloatValue float32 `protobuf:"fixed32,3,opt,name=float_value,json=floatValue,proto3,oneof"` +} + +type Value_DoubleValue struct { + DoubleValue float64 `protobuf:"fixed64,4,opt,name=double_value,json=doubleValue,proto3,oneof"` +} + +type Value_StringValue struct { + StringValue string `protobuf:"bytes,5,opt,name=string_value,json=stringValue,proto3,oneof"` +} + +func (*Value_BooleanValue) isValue_Value() {} + +func (*Value_Int64Value) isValue_Value() {} + +func (*Value_FloatValue) isValue_Value() {} + +func (*Value_DoubleValue) isValue_Value() {} + +func (*Value_StringValue) isValue_Value() {} + +func (m *Value) GetValue() isValue_Value { + if m != nil { + return m.Value + } + return nil +} + +func (m *Value) GetBooleanValue() bool { + if x, ok := m.GetValue().(*Value_BooleanValue); ok { + return x.BooleanValue + } + return false +} + +func (m *Value) GetInt64Value() int64 { + if x, ok := m.GetValue().(*Value_Int64Value); ok { + return x.Int64Value + } + return 0 +} + +func (m *Value) GetFloatValue() float32 { + if x, ok := m.GetValue().(*Value_FloatValue); ok { + return x.FloatValue + } + return 0 +} + +func (m *Value) GetDoubleValue() float64 { + if x, ok := m.GetValue().(*Value_DoubleValue); ok { + return x.DoubleValue + } + return 0 +} + +func (m *Value) GetStringValue() string { + if x, ok := m.GetValue().(*Value_StringValue); ok { + return x.StringValue + } + return "" +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*Value) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _Value_OneofMarshaler, _Value_OneofUnmarshaler, _Value_OneofSizer, []interface{}{ + (*Value_BooleanValue)(nil), + (*Value_Int64Value)(nil), + (*Value_FloatValue)(nil), + (*Value_DoubleValue)(nil), + (*Value_StringValue)(nil), + } +} + +func _Value_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*Value) + // value + switch x := m.Value.(type) { + case *Value_BooleanValue: + t := uint64(0) + if x.BooleanValue { + t = 1 + } + b.EncodeVarint(1<<3 | proto.WireVarint) + b.EncodeVarint(t) + case *Value_Int64Value: + b.EncodeVarint(2<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.Int64Value)) + case *Value_FloatValue: + b.EncodeVarint(3<<3 | proto.WireFixed32) + b.EncodeFixed32(uint64(math.Float32bits(x.FloatValue))) + case *Value_DoubleValue: + b.EncodeVarint(4<<3 | proto.WireFixed64) + b.EncodeFixed64(math.Float64bits(x.DoubleValue)) + case *Value_StringValue: + b.EncodeVarint(5<<3 | proto.WireBytes) + b.EncodeStringBytes(x.StringValue) + case nil: + default: + return fmt.Errorf("Value.Value has unexpected type %T", x) + } + return nil +} + +func _Value_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*Value) + switch tag { + case 1: // value.boolean_value + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Value = &Value_BooleanValue{x != 0} + return true, err + case 2: // value.int64_value + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Value = &Value_Int64Value{int64(x)} + return true, err + case 3: // value.float_value + if wire != proto.WireFixed32 { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeFixed32() + m.Value = &Value_FloatValue{math.Float32frombits(uint32(x))} + return true, err + case 4: // value.double_value + if wire != proto.WireFixed64 { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeFixed64() + m.Value = &Value_DoubleValue{math.Float64frombits(x)} + return true, err + case 5: // value.string_value + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Value = &Value_StringValue{x} + return true, err + default: + return false, nil + } +} + +func _Value_OneofSizer(msg proto.Message) (n int) { + m := msg.(*Value) + // value + switch x := m.Value.(type) { + case *Value_BooleanValue: + n += 1 // tag and wire + n += 1 + case *Value_Int64Value: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(x.Int64Value)) + case *Value_FloatValue: + n += 1 // tag and wire + n += 4 + case *Value_DoubleValue: + n += 1 // tag and wire + n += 8 + case *Value_StringValue: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(len(x.StringValue))) + n += len(x.StringValue) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +func init() { + proto.RegisterType((*Value)(nil), "google.ads.googleads.v0.common.Value") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/common/value.proto", fileDescriptor_value_e9174d7d4390b938) +} + +var fileDescriptor_value_e9174d7d4390b938 = []byte{ + // 292 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0xd0, 0x3f, 0x4f, 0x83, 0x40, + 0x18, 0x06, 0xf0, 0x1e, 0xb5, 0xfe, 0xb9, 0xd6, 0xa5, 0x93, 0x53, 0x83, 0x35, 0x26, 0xc4, 0xe1, + 0x20, 0xd1, 0xb8, 0x38, 0x81, 0x26, 0x65, 0x6c, 0x18, 0x18, 0x0c, 0x89, 0x39, 0x0a, 0x5e, 0x48, + 0x8e, 0x7b, 0x1b, 0x8e, 0xf2, 0x81, 0x1c, 0xfd, 0x14, 0x6e, 0x26, 0x7e, 0x2a, 0x73, 0xf7, 0x5e, + 0xd9, 0x74, 0xe2, 0xc9, 0xc3, 0x8f, 0x23, 0xf7, 0xd0, 0x3b, 0x01, 0x20, 0x64, 0x1d, 0xf2, 0x4a, + 0x87, 0x18, 0x4d, 0x1a, 0xa2, 0x70, 0x07, 0x6d, 0x0b, 0x2a, 0x1c, 0xb8, 0x3c, 0xd4, 0x6c, 0xdf, + 0x41, 0x0f, 0xcb, 0x15, 0x02, 0xc6, 0x2b, 0xcd, 0x46, 0xcb, 0x86, 0x88, 0xa1, 0x5d, 0x7f, 0x13, + 0x3a, 0xcb, 0x8d, 0x5f, 0xde, 0xd2, 0xcb, 0x12, 0x40, 0xd6, 0x5c, 0xbd, 0xd9, 0x03, 0xae, 0x88, + 0x4f, 0x82, 0xf3, 0x74, 0x92, 0x2d, 0x5c, 0x8d, 0xec, 0x9a, 0xce, 0x1b, 0xd5, 0x3f, 0x3e, 0x38, + 0xe4, 0xf9, 0x24, 0x98, 0xa6, 0x93, 0x8c, 0xda, 0x72, 0x24, 0xef, 0x12, 0x78, 0xef, 0xc8, 0xd4, + 0x27, 0x81, 0x67, 0x88, 0x2d, 0x91, 0xdc, 0xd0, 0x45, 0x05, 0x87, 0x52, 0xd6, 0xce, 0x9c, 0xf8, + 0x24, 0x20, 0xe9, 0x24, 0x9b, 0x63, 0x3b, 0x22, 0xdd, 0x77, 0x8d, 0x12, 0x0e, 0xcd, 0x7c, 0x12, + 0x5c, 0x18, 0x84, 0xad, 0x45, 0xc9, 0x19, 0x9d, 0xd9, 0xb7, 0xc9, 0x17, 0xa1, 0xeb, 0x1d, 0xb4, + 0xec, 0xff, 0x0b, 0x27, 0xd4, 0x7e, 0xb6, 0x35, 0xe3, 0x6c, 0xc9, 0xeb, 0x8b, 0xd3, 0x02, 0x24, + 0x57, 0x82, 0x41, 0x27, 0x42, 0x51, 0x2b, 0x3b, 0xdd, 0x71, 0xda, 0x7d, 0xa3, 0xff, 0x5a, 0xfa, + 0x09, 0x1f, 0x1f, 0xde, 0x74, 0x13, 0xc7, 0x9f, 0xde, 0x6a, 0x83, 0x87, 0xc5, 0x95, 0x66, 0x18, + 0x4d, 0xca, 0x23, 0xf6, 0x6c, 0xd9, 0xcf, 0x11, 0x14, 0x71, 0xa5, 0x8b, 0x11, 0x14, 0x79, 0x54, + 0x20, 0x28, 0x4f, 0xed, 0x8f, 0xef, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0xa7, 0x0b, 0x36, 0xc8, + 0xe1, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/access_reason.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/access_reason.pb.go new file mode 100644 index 000000000..943a2dd67 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/access_reason.pb.go @@ -0,0 +1,128 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/access_reason.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible access reasons. +type AccessReasonEnum_AccessReason int32 + +const ( + // Not specified. + AccessReasonEnum_UNSPECIFIED AccessReasonEnum_AccessReason = 0 + // Used for return value only. Represents value unknown in this version. + AccessReasonEnum_UNKNOWN AccessReasonEnum_AccessReason = 1 + // The entity is owned by the user. + AccessReasonEnum_OWNED AccessReasonEnum_AccessReason = 2 + // The entity is shared to the user. + AccessReasonEnum_SHARED AccessReasonEnum_AccessReason = 3 + // The entity is licensed to the user. + AccessReasonEnum_LICENSED AccessReasonEnum_AccessReason = 4 + // The user subscribed to the entity. + AccessReasonEnum_SUBSCRIBED AccessReasonEnum_AccessReason = 5 + // The entity is accessible to the user. + AccessReasonEnum_AFFILIATED AccessReasonEnum_AccessReason = 6 +) + +var AccessReasonEnum_AccessReason_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "OWNED", + 3: "SHARED", + 4: "LICENSED", + 5: "SUBSCRIBED", + 6: "AFFILIATED", +} +var AccessReasonEnum_AccessReason_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "OWNED": 2, + "SHARED": 3, + "LICENSED": 4, + "SUBSCRIBED": 5, + "AFFILIATED": 6, +} + +func (x AccessReasonEnum_AccessReason) String() string { + return proto.EnumName(AccessReasonEnum_AccessReason_name, int32(x)) +} +func (AccessReasonEnum_AccessReason) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_access_reason_757eb5f4e3d691fd, []int{0, 0} +} + +// Indicates the way the entity such as user list is related to a user. +type AccessReasonEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AccessReasonEnum) Reset() { *m = AccessReasonEnum{} } +func (m *AccessReasonEnum) String() string { return proto.CompactTextString(m) } +func (*AccessReasonEnum) ProtoMessage() {} +func (*AccessReasonEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_access_reason_757eb5f4e3d691fd, []int{0} +} +func (m *AccessReasonEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AccessReasonEnum.Unmarshal(m, b) +} +func (m *AccessReasonEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AccessReasonEnum.Marshal(b, m, deterministic) +} +func (dst *AccessReasonEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_AccessReasonEnum.Merge(dst, src) +} +func (m *AccessReasonEnum) XXX_Size() int { + return xxx_messageInfo_AccessReasonEnum.Size(m) +} +func (m *AccessReasonEnum) XXX_DiscardUnknown() { + xxx_messageInfo_AccessReasonEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_AccessReasonEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*AccessReasonEnum)(nil), "google.ads.googleads.v0.enums.AccessReasonEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.AccessReasonEnum_AccessReason", AccessReasonEnum_AccessReason_name, AccessReasonEnum_AccessReason_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/access_reason.proto", fileDescriptor_access_reason_757eb5f4e3d691fd) +} + +var fileDescriptor_access_reason_757eb5f4e3d691fd = []byte{ + // 298 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0xc1, 0x4e, 0xc2, 0x30, + 0x1c, 0xc6, 0x1d, 0x08, 0xea, 0x1f, 0xa2, 0xb5, 0x77, 0x0e, 0xf2, 0x00, 0xdd, 0x8c, 0x47, 0x4f, + 0x1d, 0x2d, 0xd8, 0x48, 0x0a, 0xd9, 0x1c, 0x24, 0x66, 0x89, 0x99, 0xdb, 0xd2, 0x98, 0xb0, 0x15, + 0x57, 0xe1, 0x0d, 0x7c, 0x11, 0x8f, 0x3e, 0x86, 0x47, 0x9f, 0xca, 0xac, 0x13, 0xc2, 0x45, 0x2f, + 0xcd, 0xd7, 0x7e, 0xfd, 0xb5, 0xff, 0xef, 0x83, 0x6b, 0xa5, 0xb5, 0x5a, 0xe5, 0x6e, 0x92, 0x19, + 0xb7, 0x91, 0xb5, 0xda, 0x7a, 0x6e, 0x5e, 0x6e, 0x0a, 0xe3, 0x26, 0x69, 0x9a, 0x1b, 0xf3, 0x54, + 0xe5, 0x89, 0xd1, 0x25, 0x59, 0x57, 0xfa, 0x4d, 0xe3, 0x41, 0x73, 0x8f, 0x24, 0x99, 0x21, 0x7b, + 0x84, 0x6c, 0x3d, 0x62, 0x91, 0xe1, 0xbb, 0x03, 0x88, 0x5a, 0x2c, 0xb0, 0x14, 0x2f, 0x37, 0xc5, + 0xf0, 0x15, 0xfa, 0x87, 0x67, 0xf8, 0x02, 0x7a, 0x91, 0x0c, 0xe7, 0x7c, 0x24, 0xc6, 0x82, 0x33, + 0x74, 0x84, 0x7b, 0x70, 0x12, 0xc9, 0x7b, 0x39, 0x5b, 0x4a, 0xe4, 0xe0, 0x33, 0xe8, 0xcc, 0x96, + 0x92, 0x33, 0xd4, 0xc2, 0x00, 0xdd, 0xf0, 0x8e, 0x06, 0x9c, 0xa1, 0x36, 0xee, 0xc3, 0xe9, 0x54, + 0x8c, 0xb8, 0x0c, 0x39, 0x43, 0xc7, 0xf8, 0x1c, 0x20, 0x8c, 0xfc, 0x70, 0x14, 0x08, 0x9f, 0x33, + 0xd4, 0xa9, 0xf7, 0x74, 0x3c, 0x16, 0x53, 0x41, 0x1f, 0x38, 0x43, 0x5d, 0xff, 0xcb, 0x81, 0xab, + 0x54, 0x17, 0xe4, 0xdf, 0x69, 0xfd, 0xcb, 0xc3, 0xb1, 0xe6, 0x75, 0xbe, 0xb9, 0xf3, 0xe8, 0xff, + 0x32, 0x4a, 0xaf, 0x92, 0x52, 0x11, 0x5d, 0x29, 0x57, 0xe5, 0xa5, 0x4d, 0xbf, 0x2b, 0x69, 0xfd, + 0x62, 0xfe, 0xe8, 0xec, 0xd6, 0xae, 0x1f, 0xad, 0xf6, 0x84, 0xd2, 0xcf, 0xd6, 0x60, 0xd2, 0x3c, + 0x45, 0x33, 0x43, 0x1a, 0x59, 0xab, 0x85, 0x47, 0xea, 0x5a, 0xcc, 0xf7, 0xce, 0x8f, 0x69, 0x66, + 0xe2, 0xbd, 0x1f, 0x2f, 0xbc, 0xd8, 0xfa, 0xcf, 0x5d, 0xfb, 0xe9, 0xcd, 0x4f, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xd0, 0x24, 0x60, 0xa5, 0xa7, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/account_budget_proposal_status.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/account_budget_proposal_status.pb.go new file mode 100644 index 000000000..f40a49132 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/account_budget_proposal_status.pb.go @@ -0,0 +1,133 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/account_budget_proposal_status.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// The possible statuses of an AccountBudgetProposal. +type AccountBudgetProposalStatusEnum_AccountBudgetProposalStatus int32 + +const ( + // Not specified. + AccountBudgetProposalStatusEnum_UNSPECIFIED AccountBudgetProposalStatusEnum_AccountBudgetProposalStatus = 0 + // Used for return value only. Represents value unknown in this version. + AccountBudgetProposalStatusEnum_UNKNOWN AccountBudgetProposalStatusEnum_AccountBudgetProposalStatus = 1 + // The proposal is pending approval. + AccountBudgetProposalStatusEnum_PENDING AccountBudgetProposalStatusEnum_AccountBudgetProposalStatus = 2 + // The proposal has been approved but the corresponding billing setup + // has not. This can occur for proposals that set up the first budget + // when signing up for billing or when performing a change of bill-to + // operation. + AccountBudgetProposalStatusEnum_APPROVED_HELD AccountBudgetProposalStatusEnum_AccountBudgetProposalStatus = 3 + // The proposal has been approved. + AccountBudgetProposalStatusEnum_APPROVED AccountBudgetProposalStatusEnum_AccountBudgetProposalStatus = 4 + // The proposal has been cancelled by the user. + AccountBudgetProposalStatusEnum_CANCELLED AccountBudgetProposalStatusEnum_AccountBudgetProposalStatus = 5 + // The proposal has been rejected by the user, e.g. by rejecting an + // acceptance email. + AccountBudgetProposalStatusEnum_REJECTED AccountBudgetProposalStatusEnum_AccountBudgetProposalStatus = 6 +) + +var AccountBudgetProposalStatusEnum_AccountBudgetProposalStatus_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "PENDING", + 3: "APPROVED_HELD", + 4: "APPROVED", + 5: "CANCELLED", + 6: "REJECTED", +} +var AccountBudgetProposalStatusEnum_AccountBudgetProposalStatus_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "PENDING": 2, + "APPROVED_HELD": 3, + "APPROVED": 4, + "CANCELLED": 5, + "REJECTED": 6, +} + +func (x AccountBudgetProposalStatusEnum_AccountBudgetProposalStatus) String() string { + return proto.EnumName(AccountBudgetProposalStatusEnum_AccountBudgetProposalStatus_name, int32(x)) +} +func (AccountBudgetProposalStatusEnum_AccountBudgetProposalStatus) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_account_budget_proposal_status_b35417438480c65c, []int{0, 0} +} + +// Message describing AccountBudgetProposal statuses. +type AccountBudgetProposalStatusEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AccountBudgetProposalStatusEnum) Reset() { *m = AccountBudgetProposalStatusEnum{} } +func (m *AccountBudgetProposalStatusEnum) String() string { return proto.CompactTextString(m) } +func (*AccountBudgetProposalStatusEnum) ProtoMessage() {} +func (*AccountBudgetProposalStatusEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_account_budget_proposal_status_b35417438480c65c, []int{0} +} +func (m *AccountBudgetProposalStatusEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AccountBudgetProposalStatusEnum.Unmarshal(m, b) +} +func (m *AccountBudgetProposalStatusEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AccountBudgetProposalStatusEnum.Marshal(b, m, deterministic) +} +func (dst *AccountBudgetProposalStatusEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_AccountBudgetProposalStatusEnum.Merge(dst, src) +} +func (m *AccountBudgetProposalStatusEnum) XXX_Size() int { + return xxx_messageInfo_AccountBudgetProposalStatusEnum.Size(m) +} +func (m *AccountBudgetProposalStatusEnum) XXX_DiscardUnknown() { + xxx_messageInfo_AccountBudgetProposalStatusEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_AccountBudgetProposalStatusEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*AccountBudgetProposalStatusEnum)(nil), "google.ads.googleads.v0.enums.AccountBudgetProposalStatusEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.AccountBudgetProposalStatusEnum_AccountBudgetProposalStatus", AccountBudgetProposalStatusEnum_AccountBudgetProposalStatus_name, AccountBudgetProposalStatusEnum_AccountBudgetProposalStatus_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/account_budget_proposal_status.proto", fileDescriptor_account_budget_proposal_status_b35417438480c65c) +} + +var fileDescriptor_account_budget_proposal_status_b35417438480c65c = []byte{ + // 317 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0xc1, 0x4e, 0xf2, 0x30, + 0x00, 0xc7, 0xbf, 0xc1, 0x27, 0x6a, 0x91, 0x58, 0x7b, 0x35, 0x44, 0xe5, 0x01, 0xba, 0x25, 0x1e, + 0x3d, 0x75, 0x6b, 0x45, 0x94, 0x94, 0x06, 0x04, 0x13, 0xb3, 0x64, 0x29, 0x6c, 0x69, 0x4c, 0x60, + 0x5d, 0xe8, 0xc6, 0x23, 0xf8, 0x20, 0x1e, 0x79, 0x14, 0x6f, 0xbe, 0x91, 0x69, 0x07, 0xdc, 0xe4, + 0xd2, 0xfc, 0xdb, 0x7f, 0xfb, 0x6b, 0xfb, 0x03, 0xa1, 0xd2, 0x5a, 0x2d, 0x33, 0x5f, 0xa6, 0xc6, + 0xaf, 0xa3, 0x4d, 0x9b, 0xc0, 0xcf, 0xf2, 0x6a, 0x65, 0x7c, 0xb9, 0x58, 0xe8, 0x2a, 0x2f, 0x93, + 0x79, 0x95, 0xaa, 0xac, 0x4c, 0x8a, 0xb5, 0x2e, 0xb4, 0x91, 0xcb, 0xc4, 0x94, 0xb2, 0xac, 0x0c, + 0x2e, 0xd6, 0xba, 0xd4, 0xa8, 0x5b, 0x1f, 0xc4, 0x32, 0x35, 0xf8, 0xc0, 0xc0, 0x9b, 0x00, 0x3b, + 0x46, 0x6f, 0xeb, 0x81, 0x1b, 0x52, 0x73, 0x42, 0x87, 0x11, 0x3b, 0xca, 0xc4, 0x41, 0x58, 0x5e, + 0xad, 0x7a, 0x9f, 0x1e, 0xb8, 0x3e, 0xb2, 0x07, 0x5d, 0x82, 0xf6, 0x94, 0x4f, 0x04, 0x8b, 0x06, + 0x8f, 0x03, 0x46, 0xe1, 0x3f, 0xd4, 0x06, 0xa7, 0x53, 0xfe, 0xc2, 0x47, 0x6f, 0x1c, 0x7a, 0x76, + 0x22, 0x18, 0xa7, 0x03, 0xde, 0x87, 0x0d, 0x74, 0x05, 0x3a, 0x44, 0x88, 0xf1, 0x68, 0xc6, 0x68, + 0xf2, 0xc4, 0x86, 0x14, 0x36, 0xd1, 0x05, 0x38, 0xdb, 0x2f, 0xc1, 0xff, 0xa8, 0x03, 0xce, 0x23, + 0xc2, 0x23, 0x36, 0x1c, 0x32, 0x0a, 0x4f, 0x6c, 0x39, 0x66, 0xcf, 0x2c, 0x7a, 0x65, 0x14, 0xb6, + 0xc2, 0x1f, 0x0f, 0xdc, 0x2d, 0xf4, 0x0a, 0x1f, 0xfd, 0x52, 0x78, 0x7b, 0xe4, 0xad, 0xc2, 0x3a, + 0x11, 0xde, 0xfb, 0xce, 0x2c, 0x56, 0x7a, 0x29, 0x73, 0x85, 0xf5, 0x5a, 0xf9, 0x2a, 0xcb, 0x9d, + 0xb1, 0xbd, 0xe9, 0xe2, 0xc3, 0xfc, 0x21, 0xfe, 0xc1, 0x8d, 0x5f, 0x8d, 0x66, 0x9f, 0x90, 0x6d, + 0xa3, 0xdb, 0xaf, 0x51, 0x24, 0x35, 0xb8, 0x8e, 0x36, 0xcd, 0x02, 0x6c, 0xdd, 0x99, 0xef, 0x7d, + 0x1f, 0x93, 0xd4, 0xc4, 0x87, 0x3e, 0x9e, 0x05, 0xb1, 0xeb, 0xe7, 0x2d, 0x77, 0xe9, 0xfd, 0x6f, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xf4, 0x3d, 0x6f, 0x58, 0xec, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/account_budget_proposal_type.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/account_budget_proposal_type.pb.go new file mode 100644 index 000000000..5fb349bce --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/account_budget_proposal_type.pb.go @@ -0,0 +1,124 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/account_budget_proposal_type.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// The possible types of an AccountBudgetProposal. +type AccountBudgetProposalTypeEnum_AccountBudgetProposalType int32 + +const ( + // Not specified. + AccountBudgetProposalTypeEnum_UNSPECIFIED AccountBudgetProposalTypeEnum_AccountBudgetProposalType = 0 + // Used for return value only. Represents value unknown in this version. + AccountBudgetProposalTypeEnum_UNKNOWN AccountBudgetProposalTypeEnum_AccountBudgetProposalType = 1 + // Identifies a request to create a new budget. + AccountBudgetProposalTypeEnum_CREATE AccountBudgetProposalTypeEnum_AccountBudgetProposalType = 2 + // Identifies a request to edit an existing budget. + AccountBudgetProposalTypeEnum_UPDATE AccountBudgetProposalTypeEnum_AccountBudgetProposalType = 3 + // Identifies a request to end a budget that has already started. + AccountBudgetProposalTypeEnum_END AccountBudgetProposalTypeEnum_AccountBudgetProposalType = 4 + // Identifies a request to remove a budget that hasn't started yet. + AccountBudgetProposalTypeEnum_REMOVE AccountBudgetProposalTypeEnum_AccountBudgetProposalType = 5 +) + +var AccountBudgetProposalTypeEnum_AccountBudgetProposalType_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "CREATE", + 3: "UPDATE", + 4: "END", + 5: "REMOVE", +} +var AccountBudgetProposalTypeEnum_AccountBudgetProposalType_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "CREATE": 2, + "UPDATE": 3, + "END": 4, + "REMOVE": 5, +} + +func (x AccountBudgetProposalTypeEnum_AccountBudgetProposalType) String() string { + return proto.EnumName(AccountBudgetProposalTypeEnum_AccountBudgetProposalType_name, int32(x)) +} +func (AccountBudgetProposalTypeEnum_AccountBudgetProposalType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_account_budget_proposal_type_b26bf84569e65178, []int{0, 0} +} + +// Message describing AccountBudgetProposal types. +type AccountBudgetProposalTypeEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AccountBudgetProposalTypeEnum) Reset() { *m = AccountBudgetProposalTypeEnum{} } +func (m *AccountBudgetProposalTypeEnum) String() string { return proto.CompactTextString(m) } +func (*AccountBudgetProposalTypeEnum) ProtoMessage() {} +func (*AccountBudgetProposalTypeEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_account_budget_proposal_type_b26bf84569e65178, []int{0} +} +func (m *AccountBudgetProposalTypeEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AccountBudgetProposalTypeEnum.Unmarshal(m, b) +} +func (m *AccountBudgetProposalTypeEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AccountBudgetProposalTypeEnum.Marshal(b, m, deterministic) +} +func (dst *AccountBudgetProposalTypeEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_AccountBudgetProposalTypeEnum.Merge(dst, src) +} +func (m *AccountBudgetProposalTypeEnum) XXX_Size() int { + return xxx_messageInfo_AccountBudgetProposalTypeEnum.Size(m) +} +func (m *AccountBudgetProposalTypeEnum) XXX_DiscardUnknown() { + xxx_messageInfo_AccountBudgetProposalTypeEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_AccountBudgetProposalTypeEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*AccountBudgetProposalTypeEnum)(nil), "google.ads.googleads.v0.enums.AccountBudgetProposalTypeEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.AccountBudgetProposalTypeEnum_AccountBudgetProposalType", AccountBudgetProposalTypeEnum_AccountBudgetProposalType_name, AccountBudgetProposalTypeEnum_AccountBudgetProposalType_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/account_budget_proposal_type.proto", fileDescriptor_account_budget_proposal_type_b26bf84569e65178) +} + +var fileDescriptor_account_budget_proposal_type_b26bf84569e65178 = []byte{ + // 296 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0xc1, 0x6a, 0xbb, 0x30, + 0x1c, 0xc7, 0xff, 0xea, 0x7f, 0x2d, 0xa4, 0x87, 0x89, 0xb7, 0x1d, 0x1c, 0xac, 0x0f, 0x10, 0x85, + 0x1d, 0x77, 0x59, 0xac, 0x59, 0x29, 0x63, 0x56, 0xba, 0xea, 0x60, 0x08, 0x62, 0x35, 0x0b, 0x03, + 0x35, 0xc1, 0x68, 0xa1, 0x4f, 0xb0, 0xf7, 0xd8, 0x71, 0x8f, 0xb2, 0xcb, 0x5e, 0x69, 0x24, 0x69, + 0x7b, 0x73, 0x97, 0xf0, 0x21, 0xdf, 0xe4, 0x93, 0x5f, 0xbe, 0xe0, 0x9e, 0x32, 0x46, 0x6b, 0xe2, + 0x15, 0x95, 0xf0, 0x34, 0x4a, 0xda, 0xfb, 0x1e, 0x69, 0x87, 0x46, 0x78, 0x45, 0x59, 0xb2, 0xa1, + 0xed, 0xf3, 0xdd, 0x50, 0x51, 0xd2, 0xe7, 0xbc, 0x63, 0x9c, 0x89, 0xa2, 0xce, 0xfb, 0x03, 0x27, + 0x90, 0x77, 0xac, 0x67, 0x8e, 0xab, 0xaf, 0xc1, 0xa2, 0x12, 0xf0, 0x6c, 0x80, 0x7b, 0x1f, 0x2a, + 0xc3, 0xfc, 0xc3, 0x00, 0x2e, 0xd2, 0x96, 0x40, 0x49, 0xe2, 0xa3, 0x63, 0x7b, 0xe0, 0x04, 0xb7, + 0x43, 0x33, 0x7f, 0x03, 0x57, 0xa3, 0x07, 0x9c, 0x4b, 0x30, 0x4b, 0xa2, 0xe7, 0x18, 0x2f, 0x56, + 0x0f, 0x2b, 0x1c, 0xda, 0xff, 0x9c, 0x19, 0x98, 0x26, 0xd1, 0x63, 0xb4, 0x7e, 0x89, 0x6c, 0xc3, + 0x01, 0x60, 0xb2, 0xd8, 0x60, 0xb4, 0xc5, 0xb6, 0x29, 0x39, 0x89, 0x43, 0xc9, 0x96, 0x33, 0x05, + 0x16, 0x8e, 0x42, 0xfb, 0xbf, 0xdc, 0xdc, 0xe0, 0xa7, 0x75, 0x8a, 0xed, 0x8b, 0xe0, 0xc7, 0x00, + 0x37, 0x25, 0x6b, 0xe0, 0x9f, 0xf3, 0x06, 0xd7, 0xa3, 0xb3, 0xc4, 0xf2, 0xbb, 0xb1, 0xf1, 0x1a, + 0x1c, 0x05, 0x94, 0xd5, 0x45, 0x4b, 0x21, 0xeb, 0xa8, 0x47, 0x49, 0xab, 0xca, 0x38, 0x55, 0xc8, + 0xdf, 0xc5, 0x48, 0xa3, 0x77, 0x6a, 0xfd, 0x34, 0xad, 0x25, 0x42, 0x5f, 0xa6, 0xbb, 0xd4, 0x2a, + 0x54, 0x09, 0xa8, 0x51, 0x52, 0xea, 0x43, 0x59, 0x8c, 0xf8, 0x3e, 0xe5, 0x19, 0xaa, 0x44, 0x76, + 0xce, 0xb3, 0xd4, 0xcf, 0x54, 0xbe, 0x9b, 0xa8, 0x47, 0x6f, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, + 0x37, 0x86, 0x1d, 0x51, 0xc5, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/account_budget_status.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/account_budget_status.pb.go new file mode 100644 index 000000000..3467027be --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/account_budget_status.pb.go @@ -0,0 +1,119 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/account_budget_status.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// The possible statuses of an AccountBudget. +type AccountBudgetStatusEnum_AccountBudgetStatus int32 + +const ( + // Not specified. + AccountBudgetStatusEnum_UNSPECIFIED AccountBudgetStatusEnum_AccountBudgetStatus = 0 + // Used for return value only. Represents value unknown in this version. + AccountBudgetStatusEnum_UNKNOWN AccountBudgetStatusEnum_AccountBudgetStatus = 1 + // The account budget is pending approval. + AccountBudgetStatusEnum_PENDING AccountBudgetStatusEnum_AccountBudgetStatus = 2 + // The account budget has been approved. + AccountBudgetStatusEnum_APPROVED AccountBudgetStatusEnum_AccountBudgetStatus = 3 + // The account budget has been cancelled by the user. + AccountBudgetStatusEnum_CANCELLED AccountBudgetStatusEnum_AccountBudgetStatus = 4 +) + +var AccountBudgetStatusEnum_AccountBudgetStatus_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "PENDING", + 3: "APPROVED", + 4: "CANCELLED", +} +var AccountBudgetStatusEnum_AccountBudgetStatus_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "PENDING": 2, + "APPROVED": 3, + "CANCELLED": 4, +} + +func (x AccountBudgetStatusEnum_AccountBudgetStatus) String() string { + return proto.EnumName(AccountBudgetStatusEnum_AccountBudgetStatus_name, int32(x)) +} +func (AccountBudgetStatusEnum_AccountBudgetStatus) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_account_budget_status_2620bffae5958f60, []int{0, 0} +} + +// Message describing AccountBudget statuses. +type AccountBudgetStatusEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AccountBudgetStatusEnum) Reset() { *m = AccountBudgetStatusEnum{} } +func (m *AccountBudgetStatusEnum) String() string { return proto.CompactTextString(m) } +func (*AccountBudgetStatusEnum) ProtoMessage() {} +func (*AccountBudgetStatusEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_account_budget_status_2620bffae5958f60, []int{0} +} +func (m *AccountBudgetStatusEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AccountBudgetStatusEnum.Unmarshal(m, b) +} +func (m *AccountBudgetStatusEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AccountBudgetStatusEnum.Marshal(b, m, deterministic) +} +func (dst *AccountBudgetStatusEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_AccountBudgetStatusEnum.Merge(dst, src) +} +func (m *AccountBudgetStatusEnum) XXX_Size() int { + return xxx_messageInfo_AccountBudgetStatusEnum.Size(m) +} +func (m *AccountBudgetStatusEnum) XXX_DiscardUnknown() { + xxx_messageInfo_AccountBudgetStatusEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_AccountBudgetStatusEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*AccountBudgetStatusEnum)(nil), "google.ads.googleads.v0.enums.AccountBudgetStatusEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.AccountBudgetStatusEnum_AccountBudgetStatus", AccountBudgetStatusEnum_AccountBudgetStatus_name, AccountBudgetStatusEnum_AccountBudgetStatus_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/account_budget_status.proto", fileDescriptor_account_budget_status_2620bffae5958f60) +} + +var fileDescriptor_account_budget_status_2620bffae5958f60 = []byte{ + // 286 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0x4f, 0x4b, 0xc3, 0x30, + 0x18, 0xc6, 0x5d, 0x27, 0xfe, 0xc9, 0x14, 0x4b, 0x3d, 0xe8, 0x65, 0x07, 0xf7, 0x01, 0xd2, 0x82, + 0x27, 0xf1, 0x94, 0xb6, 0xb1, 0x14, 0x47, 0x16, 0x1c, 0xab, 0x20, 0x95, 0xd1, 0xb5, 0x25, 0x08, + 0x6b, 0x32, 0x96, 0x64, 0xf8, 0x79, 0x3c, 0xfa, 0x4d, 0xf4, 0x53, 0x49, 0x12, 0xb7, 0xd3, 0xf4, + 0x12, 0x9e, 0xf0, 0xe4, 0x97, 0xf7, 0x7d, 0x1e, 0x70, 0xc7, 0x84, 0x60, 0xcb, 0x36, 0xac, 0x1a, + 0x19, 0x3a, 0x69, 0xd4, 0x26, 0x0a, 0x5b, 0xae, 0x3b, 0x19, 0x56, 0x75, 0x2d, 0x34, 0x57, 0xf3, + 0x85, 0x6e, 0x58, 0xab, 0xe6, 0x52, 0x55, 0x4a, 0x4b, 0xb8, 0x5a, 0x0b, 0x25, 0x82, 0xa1, 0x7b, + 0x0f, 0xab, 0x46, 0xc2, 0x1d, 0x0a, 0x37, 0x11, 0xb4, 0xe8, 0xe8, 0x1d, 0x5c, 0x21, 0x47, 0xc7, + 0x16, 0x9e, 0x5a, 0x16, 0x73, 0xdd, 0x8d, 0x5e, 0xc1, 0xe5, 0x1e, 0x2b, 0xb8, 0x00, 0x83, 0x19, + 0x99, 0x52, 0x9c, 0xe4, 0x0f, 0x39, 0x4e, 0xfd, 0x83, 0x60, 0x00, 0x8e, 0x67, 0xe4, 0x91, 0x4c, + 0x9e, 0x89, 0xdf, 0x33, 0x17, 0x8a, 0x49, 0x9a, 0x93, 0xcc, 0xf7, 0x82, 0x33, 0x70, 0x82, 0x28, + 0x7d, 0x9a, 0x14, 0x38, 0xf5, 0xfb, 0xc1, 0x39, 0x38, 0x4d, 0x10, 0x49, 0xf0, 0x78, 0x8c, 0x53, + 0xff, 0x30, 0xfe, 0xea, 0x81, 0x9b, 0x5a, 0x74, 0xf0, 0xdf, 0xfd, 0xe2, 0xeb, 0x3d, 0x2b, 0x50, + 0x13, 0x8c, 0xf6, 0x5e, 0xe2, 0x5f, 0x94, 0x89, 0x65, 0xc5, 0x19, 0x14, 0x6b, 0x16, 0xb2, 0x96, + 0xdb, 0xd8, 0xdb, 0x96, 0x56, 0x6f, 0xf2, 0x8f, 0xd2, 0xee, 0xed, 0xf9, 0xe1, 0xf5, 0x33, 0x84, + 0x3e, 0xbd, 0x61, 0xe6, 0xbe, 0x42, 0x8d, 0x84, 0x4e, 0x1a, 0x55, 0x44, 0xd0, 0x34, 0x21, 0xbf, + 0xb7, 0x7e, 0x89, 0x1a, 0x59, 0xee, 0xfc, 0xb2, 0x88, 0x4a, 0xeb, 0x2f, 0x8e, 0xec, 0xd0, 0xdb, + 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xec, 0x1d, 0xbe, 0x41, 0xa8, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/ad_customizer_placeholder_field.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/ad_customizer_placeholder_field.pb.go new file mode 100644 index 000000000..8bffac6be --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/ad_customizer_placeholder_field.pb.go @@ -0,0 +1,124 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/ad_customizer_placeholder_field.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Possible values for Ad Customizers placeholder fields. +type AdCustomizerPlaceholderFieldEnum_AdCustomizerPlaceholderField int32 + +const ( + // Not specified. + AdCustomizerPlaceholderFieldEnum_UNSPECIFIED AdCustomizerPlaceholderFieldEnum_AdCustomizerPlaceholderField = 0 + // Used for return value only. Represents value unknown in this version. + AdCustomizerPlaceholderFieldEnum_UNKNOWN AdCustomizerPlaceholderFieldEnum_AdCustomizerPlaceholderField = 1 + // Data Type: INT64. Integer value to be inserted. + AdCustomizerPlaceholderFieldEnum_INTEGER AdCustomizerPlaceholderFieldEnum_AdCustomizerPlaceholderField = 2 + // Data Type: STRING. Price value to be inserted. + AdCustomizerPlaceholderFieldEnum_PRICE AdCustomizerPlaceholderFieldEnum_AdCustomizerPlaceholderField = 3 + // Data Type: DATE_TIME. Date value to be inserted. + AdCustomizerPlaceholderFieldEnum_DATE AdCustomizerPlaceholderFieldEnum_AdCustomizerPlaceholderField = 4 + // Data Type: STRING. String value to be inserted. + AdCustomizerPlaceholderFieldEnum_STRING AdCustomizerPlaceholderFieldEnum_AdCustomizerPlaceholderField = 5 +) + +var AdCustomizerPlaceholderFieldEnum_AdCustomizerPlaceholderField_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "INTEGER", + 3: "PRICE", + 4: "DATE", + 5: "STRING", +} +var AdCustomizerPlaceholderFieldEnum_AdCustomizerPlaceholderField_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "INTEGER": 2, + "PRICE": 3, + "DATE": 4, + "STRING": 5, +} + +func (x AdCustomizerPlaceholderFieldEnum_AdCustomizerPlaceholderField) String() string { + return proto.EnumName(AdCustomizerPlaceholderFieldEnum_AdCustomizerPlaceholderField_name, int32(x)) +} +func (AdCustomizerPlaceholderFieldEnum_AdCustomizerPlaceholderField) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_ad_customizer_placeholder_field_2555744dcdb89a47, []int{0, 0} +} + +// Values for Ad Customizer placeholder fields. +type AdCustomizerPlaceholderFieldEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AdCustomizerPlaceholderFieldEnum) Reset() { *m = AdCustomizerPlaceholderFieldEnum{} } +func (m *AdCustomizerPlaceholderFieldEnum) String() string { return proto.CompactTextString(m) } +func (*AdCustomizerPlaceholderFieldEnum) ProtoMessage() {} +func (*AdCustomizerPlaceholderFieldEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_customizer_placeholder_field_2555744dcdb89a47, []int{0} +} +func (m *AdCustomizerPlaceholderFieldEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AdCustomizerPlaceholderFieldEnum.Unmarshal(m, b) +} +func (m *AdCustomizerPlaceholderFieldEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AdCustomizerPlaceholderFieldEnum.Marshal(b, m, deterministic) +} +func (dst *AdCustomizerPlaceholderFieldEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_AdCustomizerPlaceholderFieldEnum.Merge(dst, src) +} +func (m *AdCustomizerPlaceholderFieldEnum) XXX_Size() int { + return xxx_messageInfo_AdCustomizerPlaceholderFieldEnum.Size(m) +} +func (m *AdCustomizerPlaceholderFieldEnum) XXX_DiscardUnknown() { + xxx_messageInfo_AdCustomizerPlaceholderFieldEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_AdCustomizerPlaceholderFieldEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*AdCustomizerPlaceholderFieldEnum)(nil), "google.ads.googleads.v0.enums.AdCustomizerPlaceholderFieldEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.AdCustomizerPlaceholderFieldEnum_AdCustomizerPlaceholderField", AdCustomizerPlaceholderFieldEnum_AdCustomizerPlaceholderField_name, AdCustomizerPlaceholderFieldEnum_AdCustomizerPlaceholderField_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/ad_customizer_placeholder_field.proto", fileDescriptor_ad_customizer_placeholder_field_2555744dcdb89a47) +} + +var fileDescriptor_ad_customizer_placeholder_field_2555744dcdb89a47 = []byte{ + // 302 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0x3d, 0x4e, 0xf3, 0x30, + 0x1c, 0xc6, 0xdf, 0xf4, 0xeb, 0x05, 0x77, 0xc0, 0xf2, 0x4c, 0x25, 0xda, 0x03, 0x38, 0x91, 0x18, + 0x99, 0xdc, 0xd4, 0x8d, 0x22, 0x24, 0x13, 0xf5, 0x0b, 0x09, 0x45, 0xaa, 0x42, 0x6c, 0x4c, 0x50, + 0x12, 0x47, 0x71, 0xd3, 0x81, 0x43, 0x70, 0x08, 0x46, 0x8e, 0xc2, 0xc8, 0x89, 0x90, 0x13, 0x1a, + 0x26, 0xb2, 0x58, 0x8f, 0xf5, 0xd8, 0x3f, 0xff, 0xfd, 0x03, 0xae, 0x54, 0x4a, 0xa6, 0xc2, 0x8e, + 0xb8, 0xb6, 0x9b, 0x68, 0xd2, 0xd1, 0xb1, 0x45, 0x5e, 0x65, 0xda, 0x8e, 0xf8, 0x3e, 0xae, 0xf4, + 0x41, 0x65, 0xc9, 0xab, 0x28, 0xf7, 0x45, 0x1a, 0xc5, 0xe2, 0x59, 0xa5, 0x5c, 0x94, 0xfb, 0xa7, + 0x44, 0xa4, 0x1c, 0x17, 0xa5, 0x3a, 0x28, 0x34, 0x69, 0x6e, 0xe2, 0x88, 0x6b, 0xdc, 0x42, 0xf0, + 0xd1, 0xc1, 0x35, 0x64, 0xf6, 0x66, 0x81, 0x2b, 0xc2, 0xdd, 0x96, 0x13, 0xfc, 0x62, 0x96, 0x86, + 0x42, 0xf3, 0x2a, 0x9b, 0xbd, 0x80, 0xcb, 0xae, 0x33, 0xe8, 0x02, 0x8c, 0xb7, 0x6c, 0x1d, 0x50, + 0xd7, 0x5f, 0xfa, 0x74, 0x01, 0xff, 0xa1, 0x31, 0xf8, 0xbf, 0x65, 0xb7, 0xec, 0xee, 0x9e, 0x41, + 0xcb, 0x6c, 0x7c, 0xb6, 0xa1, 0x1e, 0x5d, 0xc1, 0x1e, 0x3a, 0x07, 0xc3, 0x60, 0xe5, 0xbb, 0x14, + 0xf6, 0xd1, 0x19, 0x18, 0x2c, 0xc8, 0x86, 0xc2, 0x01, 0x02, 0x60, 0xb4, 0xde, 0xac, 0x7c, 0xe6, + 0xc1, 0xe1, 0xfc, 0xcb, 0x02, 0xd3, 0x58, 0x65, 0xb8, 0x73, 0xec, 0xf9, 0xb4, 0x6b, 0x9e, 0xc0, + 0x7c, 0x3c, 0xb0, 0x1e, 0xe6, 0x3f, 0x0c, 0xa9, 0xd2, 0x28, 0x97, 0x58, 0x95, 0xd2, 0x96, 0x22, + 0xaf, 0xb5, 0x9c, 0x7c, 0x16, 0x89, 0xfe, 0x43, 0xef, 0x4d, 0xbd, 0xbe, 0xf7, 0xfa, 0x1e, 0x21, + 0x1f, 0xbd, 0x89, 0xd7, 0xa0, 0x08, 0xd7, 0xb8, 0x89, 0x26, 0xed, 0x1c, 0x6c, 0xfc, 0xe8, 0xcf, + 0x53, 0x1f, 0x12, 0xae, 0xc3, 0xb6, 0x0f, 0x77, 0x4e, 0x58, 0xf7, 0x8f, 0xa3, 0xfa, 0xd1, 0xeb, + 0xef, 0x00, 0x00, 0x00, 0xff, 0xff, 0xbc, 0x56, 0xb7, 0x95, 0xd2, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/ad_group_ad_rotation_mode.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/ad_group_ad_rotation_mode.pb.go new file mode 100644 index 000000000..241baba05 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/ad_group_ad_rotation_mode.pb.go @@ -0,0 +1,118 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/ad_group_ad_rotation_mode.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// The possible ad rotation modes of an ad group. +type AdGroupAdRotationModeEnum_AdGroupAdRotationMode int32 + +const ( + // The ad rotation mode has not been specified. + AdGroupAdRotationModeEnum_UNSPECIFIED AdGroupAdRotationModeEnum_AdGroupAdRotationMode = 0 + // The received value is not known in this version. + // + // This is a response-only value. + AdGroupAdRotationModeEnum_UNKNOWN AdGroupAdRotationModeEnum_AdGroupAdRotationMode = 1 + // Optimize ad group ads based on clicks or conversions. + AdGroupAdRotationModeEnum_OPTIMIZE AdGroupAdRotationModeEnum_AdGroupAdRotationMode = 2 + // Rotate evenly forever. + AdGroupAdRotationModeEnum_ROTATE_FOREVER AdGroupAdRotationModeEnum_AdGroupAdRotationMode = 3 +) + +var AdGroupAdRotationModeEnum_AdGroupAdRotationMode_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "OPTIMIZE", + 3: "ROTATE_FOREVER", +} +var AdGroupAdRotationModeEnum_AdGroupAdRotationMode_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "OPTIMIZE": 2, + "ROTATE_FOREVER": 3, +} + +func (x AdGroupAdRotationModeEnum_AdGroupAdRotationMode) String() string { + return proto.EnumName(AdGroupAdRotationModeEnum_AdGroupAdRotationMode_name, int32(x)) +} +func (AdGroupAdRotationModeEnum_AdGroupAdRotationMode) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_ad_group_ad_rotation_mode_3fa52ee91bad9207, []int{0, 0} +} + +// Container for enum describing possible ad rotation modes of ads within an +// ad group. +type AdGroupAdRotationModeEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AdGroupAdRotationModeEnum) Reset() { *m = AdGroupAdRotationModeEnum{} } +func (m *AdGroupAdRotationModeEnum) String() string { return proto.CompactTextString(m) } +func (*AdGroupAdRotationModeEnum) ProtoMessage() {} +func (*AdGroupAdRotationModeEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_group_ad_rotation_mode_3fa52ee91bad9207, []int{0} +} +func (m *AdGroupAdRotationModeEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AdGroupAdRotationModeEnum.Unmarshal(m, b) +} +func (m *AdGroupAdRotationModeEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AdGroupAdRotationModeEnum.Marshal(b, m, deterministic) +} +func (dst *AdGroupAdRotationModeEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_AdGroupAdRotationModeEnum.Merge(dst, src) +} +func (m *AdGroupAdRotationModeEnum) XXX_Size() int { + return xxx_messageInfo_AdGroupAdRotationModeEnum.Size(m) +} +func (m *AdGroupAdRotationModeEnum) XXX_DiscardUnknown() { + xxx_messageInfo_AdGroupAdRotationModeEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_AdGroupAdRotationModeEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*AdGroupAdRotationModeEnum)(nil), "google.ads.googleads.v0.enums.AdGroupAdRotationModeEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.AdGroupAdRotationModeEnum_AdGroupAdRotationMode", AdGroupAdRotationModeEnum_AdGroupAdRotationMode_name, AdGroupAdRotationModeEnum_AdGroupAdRotationMode_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/ad_group_ad_rotation_mode.proto", fileDescriptor_ad_group_ad_rotation_mode_3fa52ee91bad9207) +} + +var fileDescriptor_ad_group_ad_rotation_mode_3fa52ee91bad9207 = []byte{ + // 285 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0xd1, 0x4a, 0xc3, 0x30, + 0x14, 0x86, 0x6d, 0x07, 0x2a, 0x99, 0x68, 0x09, 0x78, 0xa1, 0xb0, 0x0b, 0xf7, 0x00, 0x69, 0xc1, + 0x4b, 0xf1, 0x22, 0xd5, 0xac, 0x14, 0x59, 0x5b, 0x6a, 0xd7, 0xc1, 0x28, 0x94, 0x68, 0x4a, 0x18, + 0xac, 0x3d, 0xa5, 0x69, 0xf7, 0x40, 0x5e, 0xfa, 0x28, 0xfa, 0x52, 0xd2, 0x74, 0xdb, 0xd5, 0xdc, + 0x4d, 0xf8, 0xe1, 0xe3, 0x3b, 0x27, 0xe7, 0x47, 0xcf, 0x12, 0x40, 0x6e, 0x0a, 0x9b, 0x0b, 0x65, + 0x0f, 0xb1, 0x4f, 0x5b, 0xc7, 0x2e, 0xaa, 0xae, 0x54, 0x36, 0x17, 0xb9, 0x6c, 0xa0, 0xab, 0x73, + 0x2e, 0xf2, 0x06, 0x5a, 0xde, 0xae, 0xa1, 0xca, 0x4b, 0x10, 0x05, 0xa9, 0x1b, 0x68, 0x01, 0x4f, + 0x06, 0x87, 0x70, 0xa1, 0xc8, 0x41, 0x27, 0x5b, 0x87, 0x68, 0x7d, 0xda, 0xa2, 0x3b, 0x2a, 0xbc, + 0x7e, 0x00, 0x15, 0xf1, 0x4e, 0x9f, 0x83, 0x28, 0x58, 0xd5, 0x95, 0xd3, 0x25, 0xba, 0x3d, 0x0a, + 0xf1, 0x0d, 0x1a, 0x2f, 0x82, 0xf7, 0x88, 0xbd, 0xf8, 0x33, 0x9f, 0xbd, 0x5a, 0x67, 0x78, 0x8c, + 0x2e, 0x16, 0xc1, 0x5b, 0x10, 0x2e, 0x03, 0xcb, 0xc0, 0x57, 0xe8, 0x32, 0x8c, 0x12, 0x7f, 0xee, + 0xaf, 0x98, 0x65, 0x62, 0x8c, 0xae, 0xe3, 0x30, 0xa1, 0x09, 0xcb, 0x67, 0x61, 0xcc, 0x52, 0x16, + 0x5b, 0x23, 0xf7, 0xd7, 0x40, 0x0f, 0x9f, 0x50, 0x92, 0x93, 0x7f, 0x73, 0xef, 0x8f, 0x2e, 0x8f, + 0xfa, 0xb3, 0x22, 0x63, 0xe5, 0xee, 0x64, 0x09, 0x1b, 0x5e, 0x49, 0x02, 0x8d, 0xb4, 0x65, 0x51, + 0xe9, 0xa3, 0xf7, 0x3d, 0xd5, 0x6b, 0xf5, 0x4f, 0x6d, 0x4f, 0xfa, 0xfd, 0x32, 0x47, 0x1e, 0xa5, + 0xdf, 0xe6, 0xc4, 0x1b, 0x46, 0x51, 0xa1, 0xc8, 0x10, 0xfb, 0x94, 0x3a, 0xa4, 0x6f, 0x41, 0xfd, + 0xec, 0x79, 0x46, 0x85, 0xca, 0x0e, 0x3c, 0x4b, 0x9d, 0x4c, 0xf3, 0x8f, 0x73, 0xbd, 0xf4, 0xf1, + 0x2f, 0x00, 0x00, 0xff, 0xff, 0x00, 0x71, 0x7c, 0xc5, 0xaa, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/ad_group_ad_status.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/ad_group_ad_status.pb.go new file mode 100644 index 000000000..e706582dc --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/ad_group_ad_status.pb.go @@ -0,0 +1,121 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/ad_group_ad_status.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// The possible statuses of an AdGroupAd. +type AdGroupAdStatusEnum_AdGroupAdStatus int32 + +const ( + // No value has been specified. + AdGroupAdStatusEnum_UNSPECIFIED AdGroupAdStatusEnum_AdGroupAdStatus = 0 + // The received value is not known in this version. + // + // This is a response-only value. + AdGroupAdStatusEnum_UNKNOWN AdGroupAdStatusEnum_AdGroupAdStatus = 1 + // The ad group ad is enabled. + AdGroupAdStatusEnum_ENABLED AdGroupAdStatusEnum_AdGroupAdStatus = 2 + // The ad group ad is paused. + AdGroupAdStatusEnum_PAUSED AdGroupAdStatusEnum_AdGroupAdStatus = 3 + // The ad group ad is removed. + AdGroupAdStatusEnum_REMOVED AdGroupAdStatusEnum_AdGroupAdStatus = 4 +) + +var AdGroupAdStatusEnum_AdGroupAdStatus_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "ENABLED", + 3: "PAUSED", + 4: "REMOVED", +} +var AdGroupAdStatusEnum_AdGroupAdStatus_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "ENABLED": 2, + "PAUSED": 3, + "REMOVED": 4, +} + +func (x AdGroupAdStatusEnum_AdGroupAdStatus) String() string { + return proto.EnumName(AdGroupAdStatusEnum_AdGroupAdStatus_name, int32(x)) +} +func (AdGroupAdStatusEnum_AdGroupAdStatus) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_ad_group_ad_status_b5908d4fbaec2768, []int{0, 0} +} + +// Container for enum describing possible statuses of an AdGroupAd. +type AdGroupAdStatusEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AdGroupAdStatusEnum) Reset() { *m = AdGroupAdStatusEnum{} } +func (m *AdGroupAdStatusEnum) String() string { return proto.CompactTextString(m) } +func (*AdGroupAdStatusEnum) ProtoMessage() {} +func (*AdGroupAdStatusEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_group_ad_status_b5908d4fbaec2768, []int{0} +} +func (m *AdGroupAdStatusEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AdGroupAdStatusEnum.Unmarshal(m, b) +} +func (m *AdGroupAdStatusEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AdGroupAdStatusEnum.Marshal(b, m, deterministic) +} +func (dst *AdGroupAdStatusEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_AdGroupAdStatusEnum.Merge(dst, src) +} +func (m *AdGroupAdStatusEnum) XXX_Size() int { + return xxx_messageInfo_AdGroupAdStatusEnum.Size(m) +} +func (m *AdGroupAdStatusEnum) XXX_DiscardUnknown() { + xxx_messageInfo_AdGroupAdStatusEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_AdGroupAdStatusEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*AdGroupAdStatusEnum)(nil), "google.ads.googleads.v0.enums.AdGroupAdStatusEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.AdGroupAdStatusEnum_AdGroupAdStatus", AdGroupAdStatusEnum_AdGroupAdStatus_name, AdGroupAdStatusEnum_AdGroupAdStatus_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/ad_group_ad_status.proto", fileDescriptor_ad_group_ad_status_b5908d4fbaec2768) +} + +var fileDescriptor_ad_group_ad_status_b5908d4fbaec2768 = []byte{ + // 276 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0xc1, 0x4a, 0xc3, 0x30, + 0x1c, 0xc6, 0x6d, 0x27, 0x13, 0xb2, 0xc3, 0x4a, 0xf5, 0xba, 0x83, 0x7b, 0x80, 0xa4, 0x20, 0x78, + 0xf1, 0x94, 0xda, 0x58, 0x86, 0x9a, 0x15, 0x4b, 0x2b, 0x48, 0xa1, 0x44, 0x53, 0x82, 0xd0, 0x36, + 0xa5, 0xff, 0x76, 0x0f, 0xe4, 0xd1, 0xf7, 0xf0, 0xe2, 0x53, 0x49, 0x52, 0xb7, 0xc3, 0x40, 0x2f, + 0xe1, 0x4b, 0xbe, 0xfc, 0xf2, 0xcf, 0xf7, 0xa1, 0x6b, 0xa5, 0xb5, 0xaa, 0x2b, 0x22, 0x24, 0x90, + 0x49, 0x1a, 0xb5, 0x0b, 0x48, 0xd5, 0x8e, 0x0d, 0x10, 0x21, 0x4b, 0xd5, 0xeb, 0xb1, 0x2b, 0x85, + 0x2c, 0x61, 0x10, 0xc3, 0x08, 0xb8, 0xeb, 0xf5, 0xa0, 0xfd, 0xd5, 0x74, 0x19, 0x0b, 0x09, 0xf8, + 0xc0, 0xe1, 0x5d, 0x80, 0x2d, 0xb7, 0xae, 0xd1, 0x39, 0x95, 0xb1, 0x21, 0xa9, 0x4c, 0x2d, 0xc7, + 0xda, 0xb1, 0x59, 0x67, 0x68, 0x79, 0x74, 0xec, 0x2f, 0xd1, 0x22, 0xe3, 0x69, 0xc2, 0x6e, 0x37, + 0x77, 0x1b, 0x16, 0x79, 0x27, 0xfe, 0x02, 0x9d, 0x65, 0xfc, 0x9e, 0x6f, 0x9f, 0xb9, 0xe7, 0x98, + 0x0d, 0xe3, 0x34, 0x7c, 0x60, 0x91, 0xe7, 0xfa, 0x08, 0xcd, 0x13, 0x9a, 0xa5, 0x2c, 0xf2, 0x66, + 0xc6, 0x78, 0x62, 0x8f, 0xdb, 0x9c, 0x45, 0xde, 0x69, 0xf8, 0xe5, 0xa0, 0xcb, 0x37, 0xdd, 0xe0, + 0x7f, 0xff, 0x14, 0x5e, 0x1c, 0x8d, 0x4e, 0x4c, 0x90, 0xc4, 0x79, 0x09, 0x7f, 0x31, 0xa5, 0x6b, + 0xd1, 0x2a, 0xac, 0x7b, 0x45, 0x54, 0xd5, 0xda, 0x98, 0xfb, 0x4a, 0xba, 0x77, 0xf8, 0xa3, 0xa1, + 0x1b, 0xbb, 0x7e, 0xb8, 0xb3, 0x98, 0xd2, 0x4f, 0x77, 0x15, 0x4f, 0x4f, 0x51, 0x09, 0x78, 0x92, + 0x46, 0xe5, 0x01, 0x36, 0xe9, 0xe1, 0x7b, 0xef, 0x17, 0x54, 0x42, 0x71, 0xf0, 0x8b, 0x3c, 0x28, + 0xac, 0xff, 0x3a, 0xb7, 0x43, 0xaf, 0x7e, 0x02, 0x00, 0x00, 0xff, 0xff, 0x17, 0x63, 0xf0, 0x2a, + 0x95, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/ad_group_criterion_status.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/ad_group_criterion_status.pb.go new file mode 100644 index 000000000..eee7c7a3d --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/ad_group_criterion_status.pb.go @@ -0,0 +1,121 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/ad_group_criterion_status.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// The possible statuses of an AdGroupCriterion. +type AdGroupCriterionStatusEnum_AdGroupCriterionStatus int32 + +const ( + // No value has been specified. + AdGroupCriterionStatusEnum_UNSPECIFIED AdGroupCriterionStatusEnum_AdGroupCriterionStatus = 0 + // The received value is not known in this version. + // + // This is a response-only value. + AdGroupCriterionStatusEnum_UNKNOWN AdGroupCriterionStatusEnum_AdGroupCriterionStatus = 1 + // The ad group criterion is enabled. + AdGroupCriterionStatusEnum_ENABLED AdGroupCriterionStatusEnum_AdGroupCriterionStatus = 2 + // The ad group criterion is paused. + AdGroupCriterionStatusEnum_PAUSED AdGroupCriterionStatusEnum_AdGroupCriterionStatus = 3 + // The ad group criterion is removed. + AdGroupCriterionStatusEnum_REMOVED AdGroupCriterionStatusEnum_AdGroupCriterionStatus = 4 +) + +var AdGroupCriterionStatusEnum_AdGroupCriterionStatus_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "ENABLED", + 3: "PAUSED", + 4: "REMOVED", +} +var AdGroupCriterionStatusEnum_AdGroupCriterionStatus_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "ENABLED": 2, + "PAUSED": 3, + "REMOVED": 4, +} + +func (x AdGroupCriterionStatusEnum_AdGroupCriterionStatus) String() string { + return proto.EnumName(AdGroupCriterionStatusEnum_AdGroupCriterionStatus_name, int32(x)) +} +func (AdGroupCriterionStatusEnum_AdGroupCriterionStatus) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_ad_group_criterion_status_677787c819c505bf, []int{0, 0} +} + +// Message describing AdGroupCriterion statuses. +type AdGroupCriterionStatusEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AdGroupCriterionStatusEnum) Reset() { *m = AdGroupCriterionStatusEnum{} } +func (m *AdGroupCriterionStatusEnum) String() string { return proto.CompactTextString(m) } +func (*AdGroupCriterionStatusEnum) ProtoMessage() {} +func (*AdGroupCriterionStatusEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_group_criterion_status_677787c819c505bf, []int{0} +} +func (m *AdGroupCriterionStatusEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AdGroupCriterionStatusEnum.Unmarshal(m, b) +} +func (m *AdGroupCriterionStatusEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AdGroupCriterionStatusEnum.Marshal(b, m, deterministic) +} +func (dst *AdGroupCriterionStatusEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_AdGroupCriterionStatusEnum.Merge(dst, src) +} +func (m *AdGroupCriterionStatusEnum) XXX_Size() int { + return xxx_messageInfo_AdGroupCriterionStatusEnum.Size(m) +} +func (m *AdGroupCriterionStatusEnum) XXX_DiscardUnknown() { + xxx_messageInfo_AdGroupCriterionStatusEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_AdGroupCriterionStatusEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*AdGroupCriterionStatusEnum)(nil), "google.ads.googleads.v0.enums.AdGroupCriterionStatusEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.AdGroupCriterionStatusEnum_AdGroupCriterionStatus", AdGroupCriterionStatusEnum_AdGroupCriterionStatus_name, AdGroupCriterionStatusEnum_AdGroupCriterionStatus_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/ad_group_criterion_status.proto", fileDescriptor_ad_group_criterion_status_677787c819c505bf) +} + +var fileDescriptor_ad_group_criterion_status_677787c819c505bf = []byte{ + // 285 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0xc1, 0x4a, 0xc3, 0x30, + 0x18, 0xc7, 0x5d, 0x27, 0x13, 0xb2, 0x83, 0xa5, 0x07, 0x0f, 0xca, 0x0e, 0xee, 0x01, 0xd2, 0x82, + 0x47, 0xf1, 0x90, 0xae, 0xb1, 0x0c, 0xb5, 0x2b, 0x96, 0x56, 0x90, 0x40, 0x89, 0x4b, 0x09, 0x85, + 0x35, 0x29, 0x49, 0xbb, 0x83, 0x8f, 0xe3, 0xd1, 0x47, 0x11, 0x1f, 0x4a, 0x92, 0xda, 0x9d, 0xa6, + 0x97, 0xf2, 0x2f, 0x3f, 0x7e, 0x5f, 0xbe, 0xef, 0x0f, 0xee, 0xb8, 0x94, 0x7c, 0x57, 0xf9, 0x94, + 0x69, 0x7f, 0x88, 0x26, 0xed, 0x03, 0xbf, 0x12, 0x7d, 0xa3, 0x7d, 0xca, 0x4a, 0xae, 0x64, 0xdf, + 0x96, 0x5b, 0x55, 0x77, 0x95, 0xaa, 0xa5, 0x28, 0x75, 0x47, 0xbb, 0x5e, 0xc3, 0x56, 0xc9, 0x4e, + 0x7a, 0x8b, 0xc1, 0x81, 0x94, 0x69, 0x78, 0xd0, 0xe1, 0x3e, 0x80, 0x56, 0x5f, 0xbe, 0x83, 0x4b, + 0xc4, 0x62, 0x33, 0x60, 0x35, 0xfa, 0x99, 0xd5, 0xb1, 0xe8, 0x9b, 0x25, 0x01, 0x17, 0xc7, 0xa9, + 0x77, 0x0e, 0xe6, 0x79, 0x92, 0xa5, 0x78, 0xb5, 0xbe, 0x5f, 0xe3, 0xc8, 0x3d, 0xf1, 0xe6, 0xe0, + 0x2c, 0x4f, 0x1e, 0x92, 0xcd, 0x4b, 0xe2, 0x4e, 0xcc, 0x0f, 0x4e, 0x50, 0xf8, 0x88, 0x23, 0xd7, + 0xf1, 0x00, 0x98, 0xa5, 0x28, 0xcf, 0x70, 0xe4, 0x4e, 0x0d, 0x78, 0xc6, 0x4f, 0x9b, 0x02, 0x47, + 0xee, 0x69, 0xf8, 0x3d, 0x01, 0xd7, 0x5b, 0xd9, 0xc0, 0x7f, 0x37, 0x0c, 0xaf, 0x8e, 0x6f, 0x90, + 0x9a, 0xeb, 0xd2, 0xc9, 0x6b, 0xf8, 0x6b, 0x73, 0xb9, 0xa3, 0x82, 0x43, 0xa9, 0xb8, 0xcf, 0x2b, + 0x61, 0x6f, 0x1f, 0xeb, 0x6a, 0x6b, 0xfd, 0x47, 0x7b, 0xb7, 0xf6, 0xfb, 0xe1, 0x4c, 0x63, 0x84, + 0x3e, 0x9d, 0x45, 0x3c, 0x8c, 0x42, 0x4c, 0xc3, 0x21, 0x9a, 0x54, 0x04, 0xd0, 0x74, 0xa1, 0xbf, + 0x46, 0x4e, 0x10, 0xd3, 0xe4, 0xc0, 0x49, 0x11, 0x10, 0xcb, 0xdf, 0x66, 0xf6, 0xd1, 0x9b, 0x9f, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x6a, 0xd0, 0xd4, 0x02, 0xb1, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/ad_group_status.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/ad_group_status.pb.go new file mode 100644 index 000000000..d47fccc49 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/ad_group_status.pb.go @@ -0,0 +1,120 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/ad_group_status.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// The possible statuses of an ad group. +type AdGroupStatusEnum_AdGroupStatus int32 + +const ( + // The status has not been specified. + AdGroupStatusEnum_UNSPECIFIED AdGroupStatusEnum_AdGroupStatus = 0 + // The received value is not known in this version. + // + // This is a response-only value. + AdGroupStatusEnum_UNKNOWN AdGroupStatusEnum_AdGroupStatus = 1 + // The ad group is enabled. + AdGroupStatusEnum_ENABLED AdGroupStatusEnum_AdGroupStatus = 2 + // The ad group is paused. + AdGroupStatusEnum_PAUSED AdGroupStatusEnum_AdGroupStatus = 3 + // The ad group is removed. + AdGroupStatusEnum_REMOVED AdGroupStatusEnum_AdGroupStatus = 4 +) + +var AdGroupStatusEnum_AdGroupStatus_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "ENABLED", + 3: "PAUSED", + 4: "REMOVED", +} +var AdGroupStatusEnum_AdGroupStatus_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "ENABLED": 2, + "PAUSED": 3, + "REMOVED": 4, +} + +func (x AdGroupStatusEnum_AdGroupStatus) String() string { + return proto.EnumName(AdGroupStatusEnum_AdGroupStatus_name, int32(x)) +} +func (AdGroupStatusEnum_AdGroupStatus) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_ad_group_status_8f21159d221de842, []int{0, 0} +} + +// Container for enum describing possible statuses of an ad group. +type AdGroupStatusEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AdGroupStatusEnum) Reset() { *m = AdGroupStatusEnum{} } +func (m *AdGroupStatusEnum) String() string { return proto.CompactTextString(m) } +func (*AdGroupStatusEnum) ProtoMessage() {} +func (*AdGroupStatusEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_group_status_8f21159d221de842, []int{0} +} +func (m *AdGroupStatusEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AdGroupStatusEnum.Unmarshal(m, b) +} +func (m *AdGroupStatusEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AdGroupStatusEnum.Marshal(b, m, deterministic) +} +func (dst *AdGroupStatusEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_AdGroupStatusEnum.Merge(dst, src) +} +func (m *AdGroupStatusEnum) XXX_Size() int { + return xxx_messageInfo_AdGroupStatusEnum.Size(m) +} +func (m *AdGroupStatusEnum) XXX_DiscardUnknown() { + xxx_messageInfo_AdGroupStatusEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_AdGroupStatusEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*AdGroupStatusEnum)(nil), "google.ads.googleads.v0.enums.AdGroupStatusEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.AdGroupStatusEnum_AdGroupStatus", AdGroupStatusEnum_AdGroupStatus_name, AdGroupStatusEnum_AdGroupStatus_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/ad_group_status.proto", fileDescriptor_ad_group_status_8f21159d221de842) +} + +var fileDescriptor_ad_group_status_8f21159d221de842 = []byte{ + // 271 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0xc1, 0x4a, 0xc3, 0x30, + 0x1c, 0xc6, 0x6d, 0x27, 0x13, 0x32, 0xc4, 0x9a, 0xfb, 0x0e, 0xee, 0x01, 0x92, 0xc2, 0x8e, 0x9e, + 0x52, 0x1b, 0xcb, 0x50, 0xb3, 0x62, 0x69, 0x05, 0x29, 0x8c, 0x68, 0x4a, 0x14, 0xd6, 0xa6, 0xf4, + 0xdf, 0xee, 0x81, 0x3c, 0xfa, 0x1a, 0xde, 0x7c, 0x2a, 0x49, 0xea, 0x06, 0x3b, 0xe8, 0x25, 0x7c, + 0xc9, 0x97, 0x5f, 0xfe, 0xf9, 0x3e, 0xb4, 0xd4, 0xc6, 0xe8, 0x6d, 0x45, 0xa5, 0x02, 0x3a, 0x4a, + 0xab, 0x76, 0x21, 0xad, 0x9a, 0xa1, 0x06, 0x2a, 0xd5, 0x46, 0x77, 0x66, 0x68, 0x37, 0xd0, 0xcb, + 0x7e, 0x00, 0xd2, 0x76, 0xa6, 0x37, 0x78, 0x3e, 0xde, 0x24, 0x52, 0x01, 0x39, 0x40, 0x64, 0x17, + 0x12, 0x07, 0x2d, 0xde, 0xd0, 0x25, 0x53, 0x89, 0xc5, 0x32, 0x47, 0xf1, 0x66, 0xa8, 0x17, 0x19, + 0x3a, 0x3f, 0x3a, 0xc4, 0x17, 0x68, 0x96, 0x8b, 0x2c, 0xe5, 0x37, 0xab, 0xdb, 0x15, 0x8f, 0x83, + 0x13, 0x3c, 0x43, 0x67, 0xb9, 0xb8, 0x13, 0xeb, 0x27, 0x11, 0x78, 0x76, 0xc3, 0x05, 0x8b, 0xee, + 0x79, 0x1c, 0xf8, 0x18, 0xa1, 0x69, 0xca, 0xf2, 0x8c, 0xc7, 0xc1, 0xc4, 0x1a, 0x8f, 0xfc, 0x61, + 0x5d, 0xf0, 0x38, 0x38, 0x8d, 0xbe, 0x3c, 0x74, 0xf5, 0x6a, 0x6a, 0xf2, 0xef, 0x7f, 0x22, 0x7c, + 0x34, 0x38, 0xb5, 0x11, 0x52, 0xef, 0x39, 0xfa, 0x85, 0xb4, 0xd9, 0xca, 0x46, 0x13, 0xd3, 0x69, + 0xaa, 0xab, 0xc6, 0x05, 0xdc, 0x37, 0xd1, 0xbe, 0xc3, 0x1f, 0xc5, 0x5c, 0xbb, 0xf5, 0xc3, 0x9f, + 0x24, 0x8c, 0x7d, 0xfa, 0xf3, 0x64, 0x7c, 0x8a, 0x29, 0x20, 0xa3, 0xb4, 0xaa, 0x08, 0x89, 0x4d, + 0x0e, 0xdf, 0x7b, 0xbf, 0x64, 0x0a, 0xca, 0x83, 0x5f, 0x16, 0x61, 0xe9, 0xfc, 0x97, 0xa9, 0x1b, + 0xba, 0xfc, 0x09, 0x00, 0x00, 0xff, 0xff, 0x4c, 0xd9, 0xc8, 0xff, 0x8c, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/ad_group_type.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/ad_group_type.pb.go new file mode 100644 index 000000000..b3e7cfec1 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/ad_group_type.pb.go @@ -0,0 +1,158 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/ad_group_type.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum listing the possible types of an ad group. +type AdGroupTypeEnum_AdGroupType int32 + +const ( + // The type has not been specified. + AdGroupTypeEnum_UNSPECIFIED AdGroupTypeEnum_AdGroupType = 0 + // The received value is not known in this version. + // + // This is a response-only value. + AdGroupTypeEnum_UNKNOWN AdGroupTypeEnum_AdGroupType = 1 + // The default ad group type for Search campaigns. + AdGroupTypeEnum_SEARCH_STANDARD AdGroupTypeEnum_AdGroupType = 2 + // The default ad group type for Display campaigns. + AdGroupTypeEnum_DISPLAY_STANDARD AdGroupTypeEnum_AdGroupType = 3 + // The ad group type for Shopping campaigns serving standard product ads. + AdGroupTypeEnum_SHOPPING_PRODUCT_ADS AdGroupTypeEnum_AdGroupType = 4 + // The default ad group type for Hotel campaigns. + AdGroupTypeEnum_HOTEL_ADS AdGroupTypeEnum_AdGroupType = 6 + // The type for ad groups in Smart Shopping campaigns. + AdGroupTypeEnum_SHOPPING_SMART_ADS AdGroupTypeEnum_AdGroupType = 7 + // Short unskippable in-stream video ads. + AdGroupTypeEnum_VIDEO_BUMPER AdGroupTypeEnum_AdGroupType = 8 + // TrueView (skippable) in-stream video ads. + AdGroupTypeEnum_VIDEO_TRUE_VIEW_IN_STREAM AdGroupTypeEnum_AdGroupType = 9 + // TrueView in-display video ads. + AdGroupTypeEnum_VIDEO_TRUE_VIEW_IN_DISPLAY AdGroupTypeEnum_AdGroupType = 10 + // Unskippable in-stream video ads. + AdGroupTypeEnum_VIDEO_NON_SKIPPABLE_IN_STREAM AdGroupTypeEnum_AdGroupType = 11 + // Outstream video ads. + AdGroupTypeEnum_VIDEO_OUTSTREAM AdGroupTypeEnum_AdGroupType = 12 +) + +var AdGroupTypeEnum_AdGroupType_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "SEARCH_STANDARD", + 3: "DISPLAY_STANDARD", + 4: "SHOPPING_PRODUCT_ADS", + 6: "HOTEL_ADS", + 7: "SHOPPING_SMART_ADS", + 8: "VIDEO_BUMPER", + 9: "VIDEO_TRUE_VIEW_IN_STREAM", + 10: "VIDEO_TRUE_VIEW_IN_DISPLAY", + 11: "VIDEO_NON_SKIPPABLE_IN_STREAM", + 12: "VIDEO_OUTSTREAM", +} +var AdGroupTypeEnum_AdGroupType_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "SEARCH_STANDARD": 2, + "DISPLAY_STANDARD": 3, + "SHOPPING_PRODUCT_ADS": 4, + "HOTEL_ADS": 6, + "SHOPPING_SMART_ADS": 7, + "VIDEO_BUMPER": 8, + "VIDEO_TRUE_VIEW_IN_STREAM": 9, + "VIDEO_TRUE_VIEW_IN_DISPLAY": 10, + "VIDEO_NON_SKIPPABLE_IN_STREAM": 11, + "VIDEO_OUTSTREAM": 12, +} + +func (x AdGroupTypeEnum_AdGroupType) String() string { + return proto.EnumName(AdGroupTypeEnum_AdGroupType_name, int32(x)) +} +func (AdGroupTypeEnum_AdGroupType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_ad_group_type_3b9233b105e8c706, []int{0, 0} +} + +// Defines types of an ad group, specific to a particular campaign channel +// type. This type drives validations that restrict which entities can be +// added to the ad group. +type AdGroupTypeEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AdGroupTypeEnum) Reset() { *m = AdGroupTypeEnum{} } +func (m *AdGroupTypeEnum) String() string { return proto.CompactTextString(m) } +func (*AdGroupTypeEnum) ProtoMessage() {} +func (*AdGroupTypeEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_group_type_3b9233b105e8c706, []int{0} +} +func (m *AdGroupTypeEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AdGroupTypeEnum.Unmarshal(m, b) +} +func (m *AdGroupTypeEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AdGroupTypeEnum.Marshal(b, m, deterministic) +} +func (dst *AdGroupTypeEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_AdGroupTypeEnum.Merge(dst, src) +} +func (m *AdGroupTypeEnum) XXX_Size() int { + return xxx_messageInfo_AdGroupTypeEnum.Size(m) +} +func (m *AdGroupTypeEnum) XXX_DiscardUnknown() { + xxx_messageInfo_AdGroupTypeEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_AdGroupTypeEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*AdGroupTypeEnum)(nil), "google.ads.googleads.v0.enums.AdGroupTypeEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.AdGroupTypeEnum_AdGroupType", AdGroupTypeEnum_AdGroupType_name, AdGroupTypeEnum_AdGroupType_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/ad_group_type.proto", fileDescriptor_ad_group_type_3b9233b105e8c706) +} + +var fileDescriptor_ad_group_type_3b9233b105e8c706 = []byte{ + // 395 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x51, 0xcf, 0x6e, 0xd3, 0x30, + 0x18, 0xa7, 0x19, 0xda, 0xd8, 0xd7, 0xa1, 0x5a, 0x66, 0x42, 0x80, 0x14, 0xa4, 0xed, 0x01, 0x9c, + 0x20, 0x8e, 0x9c, 0x9c, 0xc6, 0xa4, 0xd6, 0x5a, 0xc7, 0x8a, 0x93, 0x4c, 0xa0, 0x48, 0x56, 0x20, + 0x51, 0x84, 0xb4, 0xc6, 0x51, 0xb3, 0x4e, 0xda, 0xdb, 0x20, 0x8e, 0x9c, 0x79, 0x01, 0xae, 0x3c, + 0x15, 0x4a, 0xdc, 0x95, 0x1e, 0x80, 0x4b, 0xf4, 0xcb, 0xef, 0xcf, 0x67, 0xfb, 0xfb, 0xc1, 0x9b, + 0xc6, 0x98, 0xe6, 0xa6, 0xf6, 0xca, 0xaa, 0xf7, 0x2c, 0x1c, 0xd0, 0x9d, 0xef, 0xd5, 0xed, 0x76, + 0xdd, 0x7b, 0x65, 0xa5, 0x9b, 0x8d, 0xd9, 0x76, 0xfa, 0xf6, 0xbe, 0xab, 0x49, 0xb7, 0x31, 0xb7, + 0x06, 0xbb, 0xd6, 0x47, 0xca, 0xaa, 0x27, 0xfb, 0x08, 0xb9, 0xf3, 0xc9, 0x18, 0xb9, 0xfc, 0xe1, + 0xc0, 0x8c, 0x56, 0xd1, 0x90, 0x4a, 0xef, 0xbb, 0x9a, 0xb5, 0xdb, 0xf5, 0xe5, 0x57, 0x07, 0xa6, + 0x07, 0x1c, 0x9e, 0xc1, 0x34, 0x13, 0x4a, 0xb2, 0x39, 0x7f, 0xcf, 0x59, 0x88, 0x1e, 0xe1, 0x29, + 0x9c, 0x64, 0xe2, 0x4a, 0xc4, 0xd7, 0x02, 0x4d, 0xf0, 0x33, 0x98, 0x29, 0x46, 0x93, 0xf9, 0x42, + 0xab, 0x94, 0x8a, 0x90, 0x26, 0x21, 0x72, 0xf0, 0x39, 0xa0, 0x90, 0x2b, 0xb9, 0xa4, 0x1f, 0xfe, + 0xb0, 0x47, 0xf8, 0x05, 0x9c, 0xab, 0x45, 0x2c, 0x25, 0x17, 0x91, 0x96, 0x49, 0x1c, 0x66, 0xf3, + 0x54, 0xd3, 0x50, 0xa1, 0xc7, 0xf8, 0x29, 0x9c, 0x2e, 0xe2, 0x94, 0x2d, 0xc7, 0xdf, 0x63, 0xfc, + 0x1c, 0xf0, 0xde, 0xa8, 0x56, 0x34, 0xb1, 0xb6, 0x13, 0x8c, 0xe0, 0x2c, 0xe7, 0x21, 0x8b, 0x75, + 0x90, 0xad, 0x24, 0x4b, 0xd0, 0x13, 0xec, 0xc2, 0x4b, 0xcb, 0xa4, 0x49, 0xc6, 0x74, 0xce, 0xd9, + 0xb5, 0xe6, 0x42, 0xab, 0x34, 0x61, 0x74, 0x85, 0x4e, 0xf1, 0x6b, 0x78, 0xf5, 0x17, 0x79, 0x77, + 0x35, 0x04, 0xf8, 0x02, 0x5c, 0xab, 0x8b, 0x58, 0x68, 0x75, 0xc5, 0xa5, 0xa4, 0xc1, 0x92, 0x1d, + 0x8c, 0x98, 0x0e, 0xef, 0xb3, 0x96, 0x38, 0x4b, 0x77, 0xe4, 0x59, 0xf0, 0x73, 0x02, 0x17, 0x9f, + 0xcd, 0x9a, 0xfc, 0x77, 0xb9, 0x01, 0x3a, 0xd8, 0xa2, 0x1c, 0xda, 0x90, 0x93, 0x8f, 0xc1, 0x2e, + 0xd2, 0x98, 0x9b, 0xb2, 0x6d, 0x88, 0xd9, 0x34, 0x5e, 0x53, 0xb7, 0x63, 0x57, 0x0f, 0x95, 0x76, + 0x5f, 0xfa, 0x7f, 0x34, 0xfc, 0x6e, 0xfc, 0x7e, 0x73, 0x8e, 0x22, 0x4a, 0xbf, 0x3b, 0x6e, 0x64, + 0x47, 0xd1, 0xaa, 0x27, 0x16, 0x0e, 0x28, 0xf7, 0xc9, 0xd0, 0x62, 0xff, 0xeb, 0x41, 0x2f, 0x68, + 0xd5, 0x17, 0x7b, 0xbd, 0xc8, 0xfd, 0x62, 0xd4, 0x3f, 0x1d, 0x8f, 0x87, 0xbe, 0xfd, 0x1d, 0x00, + 0x00, 0xff, 0xff, 0xb8, 0x57, 0x8e, 0xbb, 0x55, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/ad_network_type.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/ad_network_type.pb.go new file mode 100644 index 000000000..4da881ddf --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/ad_network_type.pb.go @@ -0,0 +1,133 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/ad_network_type.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enumerates Google Ads network types. +type AdNetworkTypeEnum_AdNetworkType int32 + +const ( + // Not specified. + AdNetworkTypeEnum_UNSPECIFIED AdNetworkTypeEnum_AdNetworkType = 0 + // The value is unknown in this version. + AdNetworkTypeEnum_UNKNOWN AdNetworkTypeEnum_AdNetworkType = 1 + // Google search. + AdNetworkTypeEnum_SEARCH AdNetworkTypeEnum_AdNetworkType = 2 + // Search partners. + AdNetworkTypeEnum_SEARCH_PARTNERS AdNetworkTypeEnum_AdNetworkType = 3 + // Display Network. + AdNetworkTypeEnum_CONTENT AdNetworkTypeEnum_AdNetworkType = 4 + // YouTube Search. + AdNetworkTypeEnum_YOUTUBE_SEARCH AdNetworkTypeEnum_AdNetworkType = 5 + // YouTube Videos + AdNetworkTypeEnum_YOUTUBE_WATCH AdNetworkTypeEnum_AdNetworkType = 6 + // Cross-network. + AdNetworkTypeEnum_MIXED AdNetworkTypeEnum_AdNetworkType = 7 +) + +var AdNetworkTypeEnum_AdNetworkType_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "SEARCH", + 3: "SEARCH_PARTNERS", + 4: "CONTENT", + 5: "YOUTUBE_SEARCH", + 6: "YOUTUBE_WATCH", + 7: "MIXED", +} +var AdNetworkTypeEnum_AdNetworkType_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "SEARCH": 2, + "SEARCH_PARTNERS": 3, + "CONTENT": 4, + "YOUTUBE_SEARCH": 5, + "YOUTUBE_WATCH": 6, + "MIXED": 7, +} + +func (x AdNetworkTypeEnum_AdNetworkType) String() string { + return proto.EnumName(AdNetworkTypeEnum_AdNetworkType_name, int32(x)) +} +func (AdNetworkTypeEnum_AdNetworkType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_ad_network_type_8e7c5c4b59c79566, []int{0, 0} +} + +// Container for enumeration of Google Ads network types. +type AdNetworkTypeEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AdNetworkTypeEnum) Reset() { *m = AdNetworkTypeEnum{} } +func (m *AdNetworkTypeEnum) String() string { return proto.CompactTextString(m) } +func (*AdNetworkTypeEnum) ProtoMessage() {} +func (*AdNetworkTypeEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_network_type_8e7c5c4b59c79566, []int{0} +} +func (m *AdNetworkTypeEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AdNetworkTypeEnum.Unmarshal(m, b) +} +func (m *AdNetworkTypeEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AdNetworkTypeEnum.Marshal(b, m, deterministic) +} +func (dst *AdNetworkTypeEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_AdNetworkTypeEnum.Merge(dst, src) +} +func (m *AdNetworkTypeEnum) XXX_Size() int { + return xxx_messageInfo_AdNetworkTypeEnum.Size(m) +} +func (m *AdNetworkTypeEnum) XXX_DiscardUnknown() { + xxx_messageInfo_AdNetworkTypeEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_AdNetworkTypeEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*AdNetworkTypeEnum)(nil), "google.ads.googleads.v0.enums.AdNetworkTypeEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.AdNetworkTypeEnum_AdNetworkType", AdNetworkTypeEnum_AdNetworkType_name, AdNetworkTypeEnum_AdNetworkType_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/ad_network_type.proto", fileDescriptor_ad_network_type_8e7c5c4b59c79566) +} + +var fileDescriptor_ad_network_type_8e7c5c4b59c79566 = []byte{ + // 318 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0xd1, 0x4e, 0xf2, 0x30, + 0x14, 0xc7, 0xbf, 0xc1, 0x07, 0xc4, 0x43, 0x90, 0x52, 0xaf, 0xb9, 0x90, 0x07, 0xe8, 0x96, 0x70, + 0xe9, 0x55, 0x37, 0x2a, 0x10, 0x63, 0x59, 0x60, 0x03, 0x35, 0x4b, 0x96, 0xe9, 0x96, 0xc6, 0x08, + 0xeb, 0x42, 0x01, 0xc3, 0x43, 0xf8, 0x12, 0x7a, 0xe7, 0x6b, 0x78, 0xe7, 0x53, 0x99, 0xad, 0x8c, + 0x84, 0x0b, 0xbd, 0x69, 0x7e, 0x39, 0xe7, 0xfc, 0xda, 0x9e, 0x3f, 0xf4, 0x85, 0x94, 0x62, 0x99, + 0x98, 0x51, 0xac, 0x4c, 0x8d, 0x39, 0xed, 0x2c, 0x33, 0x49, 0xb7, 0x2b, 0x65, 0x46, 0x71, 0x98, + 0x26, 0x9b, 0x57, 0xb9, 0x7e, 0x09, 0x37, 0xfb, 0x2c, 0x21, 0xd9, 0x5a, 0x6e, 0x24, 0xee, 0xea, + 0x49, 0x12, 0xc5, 0x8a, 0x1c, 0x25, 0xb2, 0xb3, 0x48, 0x21, 0xf5, 0x3e, 0x0c, 0xe8, 0xd0, 0x98, + 0x6b, 0xcf, 0xdb, 0x67, 0x09, 0x4b, 0xb7, 0xab, 0xde, 0x9b, 0x01, 0xad, 0x93, 0x2a, 0x6e, 0x43, + 0xd3, 0xe7, 0x33, 0x97, 0x39, 0xe3, 0xeb, 0x31, 0x1b, 0xa0, 0x7f, 0xb8, 0x09, 0x0d, 0x9f, 0xdf, + 0xf0, 0xc9, 0x82, 0x23, 0x03, 0x03, 0xd4, 0x67, 0x8c, 0x4e, 0x9d, 0x11, 0xaa, 0xe0, 0x0b, 0x68, + 0x6b, 0x0e, 0x5d, 0x3a, 0xf5, 0x38, 0x9b, 0xce, 0x50, 0x35, 0x9f, 0x76, 0x26, 0xdc, 0x63, 0xdc, + 0x43, 0xff, 0x31, 0x86, 0xf3, 0xfb, 0x89, 0xef, 0xf9, 0x36, 0x0b, 0x0f, 0x56, 0x0d, 0x77, 0xa0, + 0x55, 0xd6, 0x16, 0xd4, 0x73, 0x46, 0xa8, 0x8e, 0xcf, 0xa0, 0x76, 0x3b, 0xbe, 0x63, 0x03, 0xd4, + 0xb0, 0xbf, 0x0c, 0xb8, 0x7c, 0x92, 0x2b, 0xf2, 0xe7, 0x2e, 0x36, 0x3e, 0xf9, 0xb2, 0x9b, 0xaf, + 0xef, 0x1a, 0x0f, 0xf6, 0x41, 0x12, 0x72, 0x19, 0xa5, 0x82, 0xc8, 0xb5, 0x30, 0x45, 0x92, 0x16, + 0xe1, 0x94, 0x29, 0x66, 0xcf, 0xea, 0x97, 0x50, 0xaf, 0x8a, 0xf3, 0xbd, 0x52, 0x1d, 0x52, 0xfa, + 0x59, 0xe9, 0x0e, 0xf5, 0x55, 0x34, 0x56, 0x44, 0x63, 0x4e, 0x73, 0x8b, 0xe4, 0xa1, 0xa9, 0xef, + 0xb2, 0x1f, 0xd0, 0x58, 0x05, 0xc7, 0x7e, 0x30, 0xb7, 0x82, 0xa2, 0xff, 0x58, 0x2f, 0x1e, 0xed, + 0xff, 0x04, 0x00, 0x00, 0xff, 0xff, 0x9c, 0xe6, 0xe0, 0x73, 0xc8, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/ad_serving_optimization_status.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/ad_serving_optimization_status.pb.go new file mode 100644 index 000000000..e585cda46 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/ad_serving_optimization_status.pb.go @@ -0,0 +1,135 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/ad_serving_optimization_status.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible serving statuses. +type AdServingOptimizationStatusEnum_AdServingOptimizationStatus int32 + +const ( + // No value has been specified. + AdServingOptimizationStatusEnum_UNSPECIFIED AdServingOptimizationStatusEnum_AdServingOptimizationStatus = 0 + // The received value is not known in this version. + // + // This is a response-only value. + AdServingOptimizationStatusEnum_UNKNOWN AdServingOptimizationStatusEnum_AdServingOptimizationStatus = 1 + // Ad serving is optimized based on CTR for the campaign. + AdServingOptimizationStatusEnum_OPTIMIZE AdServingOptimizationStatusEnum_AdServingOptimizationStatus = 2 + // Ad serving is optimized based on CTR * Conversion for the campaign. If + // the campaign is not in the conversion optimizer bidding strategy, it will + // default to OPTIMIZED. + AdServingOptimizationStatusEnum_CONVERSION_OPTIMIZE AdServingOptimizationStatusEnum_AdServingOptimizationStatus = 3 + // Ads are rotated evenly for 90 days, then optimized for clicks. + AdServingOptimizationStatusEnum_ROTATE AdServingOptimizationStatusEnum_AdServingOptimizationStatus = 4 + // Show lower performing ads more evenly with higher performing ads, and do + // not optimize. + AdServingOptimizationStatusEnum_ROTATE_INDEFINITELY AdServingOptimizationStatusEnum_AdServingOptimizationStatus = 5 + // Ad serving optimization status is not available. + AdServingOptimizationStatusEnum_UNAVAILABLE AdServingOptimizationStatusEnum_AdServingOptimizationStatus = 6 +) + +var AdServingOptimizationStatusEnum_AdServingOptimizationStatus_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "OPTIMIZE", + 3: "CONVERSION_OPTIMIZE", + 4: "ROTATE", + 5: "ROTATE_INDEFINITELY", + 6: "UNAVAILABLE", +} +var AdServingOptimizationStatusEnum_AdServingOptimizationStatus_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "OPTIMIZE": 2, + "CONVERSION_OPTIMIZE": 3, + "ROTATE": 4, + "ROTATE_INDEFINITELY": 5, + "UNAVAILABLE": 6, +} + +func (x AdServingOptimizationStatusEnum_AdServingOptimizationStatus) String() string { + return proto.EnumName(AdServingOptimizationStatusEnum_AdServingOptimizationStatus_name, int32(x)) +} +func (AdServingOptimizationStatusEnum_AdServingOptimizationStatus) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_ad_serving_optimization_status_897e6671d350f9ab, []int{0, 0} +} + +// Possible ad serving statuses of a campaign. +type AdServingOptimizationStatusEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AdServingOptimizationStatusEnum) Reset() { *m = AdServingOptimizationStatusEnum{} } +func (m *AdServingOptimizationStatusEnum) String() string { return proto.CompactTextString(m) } +func (*AdServingOptimizationStatusEnum) ProtoMessage() {} +func (*AdServingOptimizationStatusEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_serving_optimization_status_897e6671d350f9ab, []int{0} +} +func (m *AdServingOptimizationStatusEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AdServingOptimizationStatusEnum.Unmarshal(m, b) +} +func (m *AdServingOptimizationStatusEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AdServingOptimizationStatusEnum.Marshal(b, m, deterministic) +} +func (dst *AdServingOptimizationStatusEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_AdServingOptimizationStatusEnum.Merge(dst, src) +} +func (m *AdServingOptimizationStatusEnum) XXX_Size() int { + return xxx_messageInfo_AdServingOptimizationStatusEnum.Size(m) +} +func (m *AdServingOptimizationStatusEnum) XXX_DiscardUnknown() { + xxx_messageInfo_AdServingOptimizationStatusEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_AdServingOptimizationStatusEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*AdServingOptimizationStatusEnum)(nil), "google.ads.googleads.v0.enums.AdServingOptimizationStatusEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.AdServingOptimizationStatusEnum_AdServingOptimizationStatus", AdServingOptimizationStatusEnum_AdServingOptimizationStatus_name, AdServingOptimizationStatusEnum_AdServingOptimizationStatus_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/ad_serving_optimization_status.proto", fileDescriptor_ad_serving_optimization_status_897e6671d350f9ab) +} + +var fileDescriptor_ad_serving_optimization_status_897e6671d350f9ab = []byte{ + // 330 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x91, 0xc1, 0x4a, 0xc3, 0x30, + 0x18, 0xc7, 0xed, 0xa6, 0x53, 0x32, 0xc1, 0x52, 0x0f, 0x1e, 0x64, 0xa8, 0x7b, 0x80, 0xb4, 0xe0, + 0xd1, 0x53, 0xba, 0x65, 0x23, 0x38, 0xd3, 0xb2, 0x76, 0x15, 0x47, 0xa1, 0x54, 0x53, 0x42, 0x61, + 0x4d, 0xc6, 0xd2, 0xed, 0xe0, 0x93, 0x78, 0xf6, 0xe8, 0x33, 0xf8, 0x04, 0xde, 0x7c, 0x23, 0x69, + 0xe2, 0x86, 0x17, 0x77, 0x29, 0x7f, 0xf8, 0x7f, 0xfd, 0x7d, 0xc9, 0x2f, 0xc0, 0xe7, 0x52, 0xf2, + 0x45, 0xe1, 0xe6, 0x4c, 0xb9, 0x26, 0x36, 0x69, 0xe3, 0xb9, 0x85, 0x58, 0x57, 0xca, 0xcd, 0x59, + 0xa6, 0x8a, 0xd5, 0xa6, 0x14, 0x3c, 0x93, 0xcb, 0xba, 0xac, 0xca, 0xd7, 0xbc, 0x2e, 0xa5, 0xc8, + 0x54, 0x9d, 0xd7, 0x6b, 0x05, 0x97, 0x2b, 0x59, 0x4b, 0xa7, 0x67, 0x7e, 0x84, 0x39, 0x53, 0x70, + 0xc7, 0x80, 0x1b, 0x0f, 0x6a, 0x46, 0xff, 0xd3, 0x02, 0x57, 0x88, 0x45, 0x06, 0x13, 0xfc, 0xa1, + 0x44, 0x1a, 0x82, 0xc5, 0xba, 0xea, 0xbf, 0x59, 0xe0, 0x72, 0xcf, 0x8c, 0x73, 0x06, 0xba, 0x33, + 0x1a, 0x85, 0x78, 0x40, 0x46, 0x04, 0x0f, 0xed, 0x03, 0xa7, 0x0b, 0x8e, 0x67, 0xf4, 0x9e, 0x06, + 0x8f, 0xd4, 0xb6, 0x9c, 0x53, 0x70, 0x12, 0x84, 0x31, 0x79, 0x20, 0x73, 0x6c, 0xb7, 0x9c, 0x0b, + 0x70, 0x3e, 0x08, 0x68, 0x82, 0xa7, 0x11, 0x09, 0x68, 0xb6, 0x2b, 0xda, 0x0e, 0x00, 0x9d, 0x69, + 0x10, 0xa3, 0x18, 0xdb, 0x87, 0xcd, 0x90, 0xc9, 0x19, 0xa1, 0x43, 0x3c, 0x22, 0x94, 0xc4, 0x78, + 0xf2, 0x64, 0x1f, 0x99, 0x4d, 0x28, 0x41, 0x64, 0x82, 0xfc, 0x09, 0xb6, 0x3b, 0xfe, 0xb7, 0x05, + 0x6e, 0x5e, 0x64, 0x05, 0xf7, 0x5e, 0xd2, 0xbf, 0xde, 0x73, 0xfa, 0xb0, 0xb1, 0x14, 0x5a, 0xf3, + 0x5f, 0xd7, 0x90, 0xcb, 0x45, 0x2e, 0x38, 0x94, 0x2b, 0xee, 0xf2, 0x42, 0x68, 0x87, 0x5b, 0xf7, + 0xcb, 0x52, 0xfd, 0xf3, 0x14, 0x77, 0xfa, 0xfb, 0xde, 0x6a, 0x8f, 0x11, 0xfa, 0x68, 0xf5, 0xc6, + 0x06, 0x85, 0x98, 0x82, 0x26, 0x36, 0x29, 0xf1, 0x60, 0x63, 0x53, 0x7d, 0x6d, 0xfb, 0x14, 0x31, + 0x95, 0xee, 0xfa, 0x34, 0xf1, 0x52, 0xdd, 0x3f, 0x77, 0xf4, 0xd2, 0xdb, 0x9f, 0x00, 0x00, 0x00, + 0xff, 0xff, 0x6b, 0x1e, 0x9a, 0x55, 0xfe, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/ad_type.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/ad_type.pb.go new file mode 100644 index 000000000..aba8a8521 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/ad_type.pb.go @@ -0,0 +1,164 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/ad_type.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// The possible types of an ad. +type AdTypeEnum_AdType int32 + +const ( + // No value has been specified. + AdTypeEnum_UNSPECIFIED AdTypeEnum_AdType = 0 + // The received value is not known in this version. + // + // This is a response-only value. + AdTypeEnum_UNKNOWN AdTypeEnum_AdType = 1 + // The ad is a text ad. + AdTypeEnum_TEXT_AD AdTypeEnum_AdType = 2 + // The ad is an expanded text ad. + AdTypeEnum_EXPANDED_TEXT_AD AdTypeEnum_AdType = 3 + // The ad is a dynamic search ad. + AdTypeEnum_DYNAMIC_SEARCH_AD AdTypeEnum_AdType = 4 + // The ad is a responsive display ad. + AdTypeEnum_RESPONSIVE_DISPLAY_AD AdTypeEnum_AdType = 5 + // The ad is a call only ad. + AdTypeEnum_CALL_ONLY_AD AdTypeEnum_AdType = 6 + // The ad is an expanded dynamic search ad. + AdTypeEnum_EXPANDED_DYNAMIC_SEARCH_AD AdTypeEnum_AdType = 7 + // The ad is a hotel ad. + AdTypeEnum_HOTEL_AD AdTypeEnum_AdType = 8 + // The ad is a Smart Shopping ad. + AdTypeEnum_SHOPPING_SMART_AD AdTypeEnum_AdType = 9 + // The ad is a standard Shopping ad. + AdTypeEnum_SHOPPING_PRODUCT_AD AdTypeEnum_AdType = 10 + // The ad is a video ad. + AdTypeEnum_VIDEO_AD AdTypeEnum_AdType = 12 + // This ad is a Gmail ad. + AdTypeEnum_GMAIL_AD AdTypeEnum_AdType = 13 + // This ad is an Image ad. + AdTypeEnum_IMAGE_AD AdTypeEnum_AdType = 14 +) + +var AdTypeEnum_AdType_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "TEXT_AD", + 3: "EXPANDED_TEXT_AD", + 4: "DYNAMIC_SEARCH_AD", + 5: "RESPONSIVE_DISPLAY_AD", + 6: "CALL_ONLY_AD", + 7: "EXPANDED_DYNAMIC_SEARCH_AD", + 8: "HOTEL_AD", + 9: "SHOPPING_SMART_AD", + 10: "SHOPPING_PRODUCT_AD", + 12: "VIDEO_AD", + 13: "GMAIL_AD", + 14: "IMAGE_AD", +} +var AdTypeEnum_AdType_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "TEXT_AD": 2, + "EXPANDED_TEXT_AD": 3, + "DYNAMIC_SEARCH_AD": 4, + "RESPONSIVE_DISPLAY_AD": 5, + "CALL_ONLY_AD": 6, + "EXPANDED_DYNAMIC_SEARCH_AD": 7, + "HOTEL_AD": 8, + "SHOPPING_SMART_AD": 9, + "SHOPPING_PRODUCT_AD": 10, + "VIDEO_AD": 12, + "GMAIL_AD": 13, + "IMAGE_AD": 14, +} + +func (x AdTypeEnum_AdType) String() string { + return proto.EnumName(AdTypeEnum_AdType_name, int32(x)) +} +func (AdTypeEnum_AdType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_ad_type_0178b510acb3ad28, []int{0, 0} +} + +// Container for enum describing possible types of an ad. +type AdTypeEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AdTypeEnum) Reset() { *m = AdTypeEnum{} } +func (m *AdTypeEnum) String() string { return proto.CompactTextString(m) } +func (*AdTypeEnum) ProtoMessage() {} +func (*AdTypeEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_type_0178b510acb3ad28, []int{0} +} +func (m *AdTypeEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AdTypeEnum.Unmarshal(m, b) +} +func (m *AdTypeEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AdTypeEnum.Marshal(b, m, deterministic) +} +func (dst *AdTypeEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_AdTypeEnum.Merge(dst, src) +} +func (m *AdTypeEnum) XXX_Size() int { + return xxx_messageInfo_AdTypeEnum.Size(m) +} +func (m *AdTypeEnum) XXX_DiscardUnknown() { + xxx_messageInfo_AdTypeEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_AdTypeEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*AdTypeEnum)(nil), "google.ads.googleads.v0.enums.AdTypeEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.AdTypeEnum_AdType", AdTypeEnum_AdType_name, AdTypeEnum_AdType_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/ad_type.proto", fileDescriptor_ad_type_0178b510acb3ad28) +} + +var fileDescriptor_ad_type_0178b510acb3ad28 = []byte{ + // 386 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x51, 0xdd, 0x8a, 0xd3, 0x40, + 0x14, 0xb6, 0xa9, 0xb6, 0x75, 0x5a, 0x35, 0x8e, 0x16, 0x51, 0xa8, 0x60, 0x6f, 0x85, 0x49, 0xc0, + 0x4b, 0xaf, 0xa6, 0x99, 0x31, 0x1d, 0x4c, 0x26, 0x43, 0x92, 0xc6, 0x56, 0x02, 0x21, 0x9a, 0x10, + 0x84, 0x36, 0x09, 0x4d, 0x5b, 0xe8, 0x83, 0xf8, 0x02, 0xe2, 0xd5, 0x3e, 0xc3, 0x3e, 0xc1, 0x3e, + 0xd5, 0x32, 0x93, 0x6d, 0x6e, 0x96, 0xdd, 0x9b, 0x70, 0xbe, 0x9f, 0x7c, 0x67, 0x38, 0x1f, 0xf8, + 0x5c, 0x54, 0x55, 0xb1, 0xcd, 0x8d, 0x34, 0x6b, 0x8c, 0x76, 0x94, 0xd3, 0xc9, 0x34, 0xf2, 0xf2, + 0xb8, 0x6b, 0x8c, 0x34, 0x4b, 0x0e, 0xe7, 0x3a, 0x47, 0xf5, 0xbe, 0x3a, 0x54, 0x70, 0xd6, 0x3a, + 0x50, 0x9a, 0x35, 0xa8, 0x33, 0xa3, 0x93, 0x89, 0x94, 0x79, 0xfe, 0x5f, 0x03, 0x00, 0x67, 0xe1, + 0xb9, 0xce, 0x69, 0x79, 0xdc, 0xcd, 0xff, 0x6a, 0x60, 0xd0, 0x42, 0xf8, 0x0a, 0x8c, 0x57, 0x3c, + 0x10, 0xd4, 0x62, 0xdf, 0x18, 0x25, 0xfa, 0x13, 0x38, 0x06, 0xc3, 0x15, 0xff, 0xce, 0xbd, 0x1f, + 0x5c, 0xef, 0x49, 0x10, 0xd2, 0x75, 0x98, 0x60, 0xa2, 0x6b, 0xf0, 0x2d, 0xd0, 0xe9, 0x5a, 0x60, + 0x4e, 0x28, 0x49, 0x2e, 0x6c, 0x1f, 0x4e, 0xc1, 0x6b, 0xb2, 0xe1, 0xd8, 0x65, 0x56, 0x12, 0x50, + 0xec, 0x5b, 0x4b, 0x49, 0x3f, 0x85, 0xef, 0xc1, 0xd4, 0xa7, 0x81, 0xf0, 0x78, 0xc0, 0x22, 0x9a, + 0x10, 0x16, 0x08, 0x07, 0x6f, 0xa4, 0xf4, 0x0c, 0xea, 0x60, 0x62, 0x61, 0xc7, 0x49, 0x3c, 0xee, + 0x28, 0x66, 0x00, 0x3f, 0x82, 0x0f, 0x5d, 0xf2, 0xfd, 0xb0, 0x21, 0x9c, 0x80, 0xd1, 0xd2, 0x0b, + 0xa9, 0x23, 0xd1, 0x48, 0x6e, 0x0c, 0x96, 0x9e, 0x10, 0x8c, 0xdb, 0x49, 0xe0, 0x62, 0x5f, 0x3d, + 0xe4, 0x39, 0x7c, 0x07, 0xde, 0x74, 0xb4, 0xf0, 0x3d, 0xb2, 0xb2, 0x94, 0x00, 0xe4, 0xdf, 0x11, + 0x23, 0xd4, 0x93, 0x68, 0x22, 0x91, 0xed, 0x62, 0xa6, 0xb2, 0x5e, 0x48, 0xc4, 0x5c, 0x6c, 0x53, + 0x89, 0x5e, 0x2e, 0xae, 0x7b, 0xe0, 0xd3, 0xef, 0x6a, 0x87, 0x1e, 0x3d, 0xe6, 0x62, 0xdc, 0x9e, + 0x4e, 0xc8, 0xc3, 0x8b, 0xde, 0xcf, 0xc5, 0x9d, 0xbb, 0xa8, 0xb6, 0x69, 0x59, 0xa0, 0x6a, 0x5f, + 0x18, 0x45, 0x5e, 0xaa, 0x5a, 0x2e, 0xbd, 0xd5, 0x7f, 0x9a, 0x07, 0x6a, 0xfc, 0xaa, 0xbe, 0xff, + 0xb4, 0xbe, 0x8d, 0xf1, 0x95, 0x36, 0xb3, 0xdb, 0x28, 0x9c, 0x35, 0xa8, 0x1d, 0xe5, 0x14, 0x99, + 0x48, 0xb6, 0xd6, 0xdc, 0x5c, 0xf4, 0x18, 0x67, 0x4d, 0xdc, 0xe9, 0x71, 0x64, 0xc6, 0x4a, 0xff, + 0x35, 0x50, 0x4b, 0xbf, 0xdc, 0x06, 0x00, 0x00, 0xff, 0xff, 0x0a, 0xf6, 0xba, 0x75, 0x3a, 0x02, + 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/advertising_channel_sub_type.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/advertising_channel_sub_type.pb.go new file mode 100644 index 000000000..e75105446 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/advertising_channel_sub_type.pb.go @@ -0,0 +1,145 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/advertising_channel_sub_type.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing the different channel subtypes. +type AdvertisingChannelSubTypeEnum_AdvertisingChannelSubType int32 + +const ( + // Not specified. + AdvertisingChannelSubTypeEnum_UNSPECIFIED AdvertisingChannelSubTypeEnum_AdvertisingChannelSubType = 0 + // Used as a return value only. Represents value unknown in this version. + AdvertisingChannelSubTypeEnum_UNKNOWN AdvertisingChannelSubTypeEnum_AdvertisingChannelSubType = 1 + // Mobile app campaigns for Search. + AdvertisingChannelSubTypeEnum_SEARCH_MOBILE_APP AdvertisingChannelSubTypeEnum_AdvertisingChannelSubType = 2 + // Mobile app campaigns for Display. + AdvertisingChannelSubTypeEnum_DISPLAY_MOBILE_APP AdvertisingChannelSubTypeEnum_AdvertisingChannelSubType = 3 + // AdWords express campaigns for search. + AdvertisingChannelSubTypeEnum_SEARCH_EXPRESS AdvertisingChannelSubTypeEnum_AdvertisingChannelSubType = 4 + // AdWords Express campaigns for display. + AdvertisingChannelSubTypeEnum_DISPLAY_EXPRESS AdvertisingChannelSubTypeEnum_AdvertisingChannelSubType = 5 + // Smart Shopping campaigns. + AdvertisingChannelSubTypeEnum_SHOPPING_SMART_ADS AdvertisingChannelSubTypeEnum_AdvertisingChannelSubType = 6 + // Gmail Ad campaigns. + AdvertisingChannelSubTypeEnum_DISPLAY_GMAIL_AD AdvertisingChannelSubTypeEnum_AdvertisingChannelSubType = 7 + // Smart display campaigns. + AdvertisingChannelSubTypeEnum_DISPLAY_SMART_CAMPAIGN AdvertisingChannelSubTypeEnum_AdvertisingChannelSubType = 8 + // Video Outstream campaigns. + AdvertisingChannelSubTypeEnum_VIDEO_OUTSTREAM AdvertisingChannelSubTypeEnum_AdvertisingChannelSubType = 9 +) + +var AdvertisingChannelSubTypeEnum_AdvertisingChannelSubType_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "SEARCH_MOBILE_APP", + 3: "DISPLAY_MOBILE_APP", + 4: "SEARCH_EXPRESS", + 5: "DISPLAY_EXPRESS", + 6: "SHOPPING_SMART_ADS", + 7: "DISPLAY_GMAIL_AD", + 8: "DISPLAY_SMART_CAMPAIGN", + 9: "VIDEO_OUTSTREAM", +} +var AdvertisingChannelSubTypeEnum_AdvertisingChannelSubType_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "SEARCH_MOBILE_APP": 2, + "DISPLAY_MOBILE_APP": 3, + "SEARCH_EXPRESS": 4, + "DISPLAY_EXPRESS": 5, + "SHOPPING_SMART_ADS": 6, + "DISPLAY_GMAIL_AD": 7, + "DISPLAY_SMART_CAMPAIGN": 8, + "VIDEO_OUTSTREAM": 9, +} + +func (x AdvertisingChannelSubTypeEnum_AdvertisingChannelSubType) String() string { + return proto.EnumName(AdvertisingChannelSubTypeEnum_AdvertisingChannelSubType_name, int32(x)) +} +func (AdvertisingChannelSubTypeEnum_AdvertisingChannelSubType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_advertising_channel_sub_type_ce75430c9173807b, []int{0, 0} +} + +// An immutable specialization of an Advertising Channel. +type AdvertisingChannelSubTypeEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AdvertisingChannelSubTypeEnum) Reset() { *m = AdvertisingChannelSubTypeEnum{} } +func (m *AdvertisingChannelSubTypeEnum) String() string { return proto.CompactTextString(m) } +func (*AdvertisingChannelSubTypeEnum) ProtoMessage() {} +func (*AdvertisingChannelSubTypeEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_advertising_channel_sub_type_ce75430c9173807b, []int{0} +} +func (m *AdvertisingChannelSubTypeEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AdvertisingChannelSubTypeEnum.Unmarshal(m, b) +} +func (m *AdvertisingChannelSubTypeEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AdvertisingChannelSubTypeEnum.Marshal(b, m, deterministic) +} +func (dst *AdvertisingChannelSubTypeEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_AdvertisingChannelSubTypeEnum.Merge(dst, src) +} +func (m *AdvertisingChannelSubTypeEnum) XXX_Size() int { + return xxx_messageInfo_AdvertisingChannelSubTypeEnum.Size(m) +} +func (m *AdvertisingChannelSubTypeEnum) XXX_DiscardUnknown() { + xxx_messageInfo_AdvertisingChannelSubTypeEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_AdvertisingChannelSubTypeEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*AdvertisingChannelSubTypeEnum)(nil), "google.ads.googleads.v0.enums.AdvertisingChannelSubTypeEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.AdvertisingChannelSubTypeEnum_AdvertisingChannelSubType", AdvertisingChannelSubTypeEnum_AdvertisingChannelSubType_name, AdvertisingChannelSubTypeEnum_AdvertisingChannelSubType_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/advertising_channel_sub_type.proto", fileDescriptor_advertising_channel_sub_type_ce75430c9173807b) +} + +var fileDescriptor_advertising_channel_sub_type_ce75430c9173807b = []byte{ + // 382 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x91, 0xdf, 0xee, 0x93, 0x30, + 0x1c, 0xc5, 0x85, 0x9f, 0x6e, 0xda, 0x25, 0xae, 0x56, 0x5d, 0xa2, 0xc9, 0x4c, 0xdc, 0x03, 0x14, + 0x12, 0x2f, 0xbd, 0xb1, 0x40, 0x65, 0x8d, 0x03, 0x1a, 0xca, 0xe6, 0x9f, 0x90, 0x34, 0x6c, 0x10, + 0x5c, 0xb2, 0x01, 0x59, 0xc7, 0x92, 0xbd, 0x86, 0x8f, 0xe0, 0xa5, 0x8f, 0xe2, 0x8d, 0xaf, 0xe2, + 0x23, 0x18, 0x60, 0x4c, 0x6f, 0xe6, 0x0d, 0x39, 0xf9, 0x9e, 0xc3, 0xa7, 0xc9, 0x39, 0xe0, 0x5d, + 0x5e, 0x96, 0xf9, 0x2e, 0x33, 0x92, 0x54, 0x19, 0x9d, 0x6c, 0xd4, 0xc9, 0x34, 0xb2, 0xa2, 0xde, + 0x2b, 0x23, 0x49, 0x4f, 0xd9, 0xe1, 0xb8, 0x55, 0xdb, 0x22, 0x97, 0x9b, 0xaf, 0x49, 0x51, 0x64, + 0x3b, 0xa9, 0xea, 0xb5, 0x3c, 0x9e, 0xab, 0x0c, 0x57, 0x87, 0xf2, 0x58, 0xa2, 0x69, 0xf7, 0x1b, + 0x4e, 0x52, 0x85, 0xaf, 0x04, 0x7c, 0x32, 0x71, 0x4b, 0x98, 0x7d, 0xd3, 0xc1, 0x94, 0xfc, 0xa5, + 0xd8, 0x1d, 0x44, 0xd4, 0xeb, 0xe8, 0x5c, 0x65, 0xb4, 0xa8, 0xf7, 0xb3, 0xdf, 0x1a, 0x78, 0x71, + 0x33, 0x81, 0xc6, 0x60, 0xb4, 0xf4, 0x05, 0xa7, 0x36, 0x7b, 0xcf, 0xa8, 0x03, 0xef, 0xa1, 0x11, + 0x18, 0x2e, 0xfd, 0x0f, 0x7e, 0xf0, 0xd1, 0x87, 0x1a, 0x7a, 0x0e, 0x9e, 0x08, 0x4a, 0x42, 0x7b, + 0x2e, 0xbd, 0xc0, 0x62, 0x0b, 0x2a, 0x09, 0xe7, 0x50, 0x47, 0x13, 0x80, 0x1c, 0x26, 0xf8, 0x82, + 0x7c, 0xfe, 0xf7, 0x7e, 0x87, 0x10, 0x78, 0x7c, 0x89, 0xd3, 0x4f, 0x3c, 0xa4, 0x42, 0xc0, 0xfb, + 0xe8, 0x29, 0x18, 0xf7, 0xd9, 0xfe, 0xf8, 0xa0, 0x01, 0x88, 0x79, 0xc0, 0x39, 0xf3, 0x5d, 0x29, + 0x3c, 0x12, 0x46, 0x92, 0x38, 0x02, 0x0e, 0xd0, 0x33, 0x00, 0xfb, 0xb0, 0xeb, 0x11, 0xb6, 0x90, + 0xc4, 0x81, 0x43, 0xf4, 0x12, 0x4c, 0xfa, 0x6b, 0x17, 0xb6, 0x89, 0xc7, 0x09, 0x73, 0x7d, 0xf8, + 0xb0, 0xc1, 0xaf, 0x98, 0x43, 0x03, 0x19, 0x2c, 0x23, 0x11, 0x85, 0x94, 0x78, 0xf0, 0x91, 0xf5, + 0x4b, 0x03, 0xaf, 0x37, 0xe5, 0x1e, 0xff, 0xb7, 0x3a, 0xeb, 0xd5, 0xcd, 0x56, 0x78, 0xd3, 0x3c, + 0xd7, 0xbe, 0x58, 0x17, 0x40, 0x5e, 0xee, 0x92, 0x22, 0xc7, 0xe5, 0x21, 0x37, 0xf2, 0xac, 0x68, + 0x77, 0xe9, 0xd7, 0xac, 0xb6, 0xea, 0xc6, 0xb8, 0x6f, 0xdb, 0xef, 0x77, 0xfd, 0xce, 0x25, 0xe4, + 0x87, 0x3e, 0x75, 0x3b, 0x14, 0x49, 0x15, 0xee, 0x64, 0xa3, 0x56, 0x26, 0x6e, 0x36, 0x52, 0x3f, + 0x7b, 0x3f, 0x26, 0xa9, 0x8a, 0xaf, 0x7e, 0xbc, 0x32, 0xe3, 0xd6, 0x5f, 0x0f, 0xda, 0x47, 0xdf, + 0xfc, 0x09, 0x00, 0x00, 0xff, 0xff, 0x6f, 0xbc, 0x94, 0x11, 0x50, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/advertising_channel_type.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/advertising_channel_type.pb.go new file mode 100644 index 000000000..c644726a9 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/advertising_channel_type.pb.go @@ -0,0 +1,130 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/advertising_channel_type.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing the various advertising channel types. +type AdvertisingChannelTypeEnum_AdvertisingChannelType int32 + +const ( + // Not specified. + AdvertisingChannelTypeEnum_UNSPECIFIED AdvertisingChannelTypeEnum_AdvertisingChannelType = 0 + // Used for return value only. Represents value unknown in this version. + AdvertisingChannelTypeEnum_UNKNOWN AdvertisingChannelTypeEnum_AdvertisingChannelType = 1 + // Search Network. Includes display bundled, and Search+ campaigns. + AdvertisingChannelTypeEnum_SEARCH AdvertisingChannelTypeEnum_AdvertisingChannelType = 2 + // Google Display Network only. + AdvertisingChannelTypeEnum_DISPLAY AdvertisingChannelTypeEnum_AdvertisingChannelType = 3 + // Shopping campaigns serve on the shopping property + // and on google.com search results. + AdvertisingChannelTypeEnum_SHOPPING AdvertisingChannelTypeEnum_AdvertisingChannelType = 4 + // Hotel Ads campaigns. + AdvertisingChannelTypeEnum_HOTEL AdvertisingChannelTypeEnum_AdvertisingChannelType = 5 + // Video campaigns. + AdvertisingChannelTypeEnum_VIDEO AdvertisingChannelTypeEnum_AdvertisingChannelType = 6 +) + +var AdvertisingChannelTypeEnum_AdvertisingChannelType_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "SEARCH", + 3: "DISPLAY", + 4: "SHOPPING", + 5: "HOTEL", + 6: "VIDEO", +} +var AdvertisingChannelTypeEnum_AdvertisingChannelType_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "SEARCH": 2, + "DISPLAY": 3, + "SHOPPING": 4, + "HOTEL": 5, + "VIDEO": 6, +} + +func (x AdvertisingChannelTypeEnum_AdvertisingChannelType) String() string { + return proto.EnumName(AdvertisingChannelTypeEnum_AdvertisingChannelType_name, int32(x)) +} +func (AdvertisingChannelTypeEnum_AdvertisingChannelType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_advertising_channel_type_5cc528374513ea09, []int{0, 0} +} + +// The channel type a campaign may target to serve on. +type AdvertisingChannelTypeEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AdvertisingChannelTypeEnum) Reset() { *m = AdvertisingChannelTypeEnum{} } +func (m *AdvertisingChannelTypeEnum) String() string { return proto.CompactTextString(m) } +func (*AdvertisingChannelTypeEnum) ProtoMessage() {} +func (*AdvertisingChannelTypeEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_advertising_channel_type_5cc528374513ea09, []int{0} +} +func (m *AdvertisingChannelTypeEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AdvertisingChannelTypeEnum.Unmarshal(m, b) +} +func (m *AdvertisingChannelTypeEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AdvertisingChannelTypeEnum.Marshal(b, m, deterministic) +} +func (dst *AdvertisingChannelTypeEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_AdvertisingChannelTypeEnum.Merge(dst, src) +} +func (m *AdvertisingChannelTypeEnum) XXX_Size() int { + return xxx_messageInfo_AdvertisingChannelTypeEnum.Size(m) +} +func (m *AdvertisingChannelTypeEnum) XXX_DiscardUnknown() { + xxx_messageInfo_AdvertisingChannelTypeEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_AdvertisingChannelTypeEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*AdvertisingChannelTypeEnum)(nil), "google.ads.googleads.v0.enums.AdvertisingChannelTypeEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.AdvertisingChannelTypeEnum_AdvertisingChannelType", AdvertisingChannelTypeEnum_AdvertisingChannelType_name, AdvertisingChannelTypeEnum_AdvertisingChannelType_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/advertising_channel_type.proto", fileDescriptor_advertising_channel_type_5cc528374513ea09) +} + +var fileDescriptor_advertising_channel_type_5cc528374513ea09 = []byte{ + // 307 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0xc1, 0x4a, 0xc3, 0x30, + 0x1c, 0xc6, 0xed, 0xe6, 0xa6, 0x66, 0x82, 0x21, 0x07, 0x0f, 0xca, 0x0e, 0xee, 0x01, 0xd2, 0x82, + 0x47, 0xbd, 0x64, 0x5b, 0xdc, 0x8a, 0xa3, 0x0d, 0x76, 0x9b, 0x28, 0x85, 0x51, 0xd7, 0x10, 0x07, + 0x6d, 0x52, 0x9a, 0xae, 0xb0, 0xc7, 0xf0, 0x15, 0x3c, 0xfa, 0x28, 0xe2, 0x43, 0x49, 0x5a, 0x37, + 0x2f, 0xd3, 0x4b, 0xf9, 0xc1, 0x8f, 0xef, 0xeb, 0x3f, 0x1f, 0xb8, 0x15, 0x4a, 0x89, 0x84, 0xdb, + 0x51, 0xac, 0xed, 0x1a, 0x0d, 0x95, 0x8e, 0xcd, 0xe5, 0x3a, 0xd5, 0x76, 0x14, 0x97, 0x3c, 0x2f, + 0x56, 0x7a, 0x25, 0xc5, 0x62, 0xf9, 0x1a, 0x49, 0xc9, 0x93, 0x45, 0xb1, 0xc9, 0x38, 0xce, 0x72, + 0x55, 0x28, 0xd4, 0xad, 0x23, 0x38, 0x8a, 0x35, 0xde, 0xa5, 0x71, 0xe9, 0xe0, 0x2a, 0xdd, 0x7b, + 0xb3, 0xc0, 0x05, 0xf9, 0x6d, 0x18, 0xd4, 0x05, 0xd3, 0x4d, 0xc6, 0xa9, 0x5c, 0xa7, 0x3d, 0x0d, + 0xce, 0xf7, 0x5b, 0x74, 0x06, 0x3a, 0x33, 0x2f, 0x60, 0x74, 0xe0, 0xde, 0xb9, 0x74, 0x08, 0x0f, + 0x50, 0x07, 0x1c, 0xcd, 0xbc, 0x7b, 0xcf, 0x7f, 0xf4, 0xa0, 0x85, 0x00, 0x68, 0x07, 0x94, 0x3c, + 0x0c, 0xc6, 0xb0, 0x61, 0xc4, 0xd0, 0x0d, 0xd8, 0x84, 0x3c, 0xc1, 0x26, 0x3a, 0x05, 0xc7, 0xc1, + 0xd8, 0x67, 0xcc, 0xf5, 0x46, 0xf0, 0x10, 0x9d, 0x80, 0xd6, 0xd8, 0x9f, 0xd2, 0x09, 0x6c, 0x19, + 0x9c, 0xbb, 0x43, 0xea, 0xc3, 0x76, 0xff, 0xcb, 0x02, 0x57, 0x4b, 0x95, 0xe2, 0x7f, 0x2f, 0xef, + 0x5f, 0xee, 0x3f, 0x8c, 0x99, 0x57, 0x33, 0xeb, 0xb9, 0xff, 0x93, 0x16, 0x2a, 0x89, 0xa4, 0xc0, + 0x2a, 0x17, 0xb6, 0xe0, 0xb2, 0xda, 0x64, 0xbb, 0x62, 0xb6, 0xd2, 0x7f, 0x8c, 0x7a, 0x53, 0x7d, + 0xdf, 0x1b, 0xcd, 0x11, 0x21, 0x1f, 0x8d, 0xee, 0xa8, 0xae, 0x22, 0xb1, 0xc6, 0x35, 0x1a, 0x9a, + 0x3b, 0xd8, 0x4c, 0xa4, 0x3f, 0xb7, 0x3e, 0x24, 0xb1, 0x0e, 0x77, 0x3e, 0x9c, 0x3b, 0x61, 0xe5, + 0x5f, 0xda, 0xd5, 0x4f, 0xaf, 0xbf, 0x03, 0x00, 0x00, 0xff, 0xff, 0x80, 0x05, 0x51, 0xf4, 0xc8, + 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/affiliate_location_feed_relationship_type.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/affiliate_location_feed_relationship_type.pb.go new file mode 100644 index 000000000..e7fea9d39 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/affiliate_location_feed_relationship_type.pb.go @@ -0,0 +1,115 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/affiliate_location_feed_relationship_type.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Possible values for a relationship type for an affiliate location feed. +type AffiliateLocationFeedRelationshipTypeEnum_AffiliateLocationFeedRelationshipType int32 + +const ( + // Not specified. + AffiliateLocationFeedRelationshipTypeEnum_UNSPECIFIED AffiliateLocationFeedRelationshipTypeEnum_AffiliateLocationFeedRelationshipType = 0 + // Used for return value only. Represents value unknown in this version. + AffiliateLocationFeedRelationshipTypeEnum_UNKNOWN AffiliateLocationFeedRelationshipTypeEnum_AffiliateLocationFeedRelationshipType = 1 + // General retailer relationship. + AffiliateLocationFeedRelationshipTypeEnum_GENERAL_RETAILER AffiliateLocationFeedRelationshipTypeEnum_AffiliateLocationFeedRelationshipType = 2 +) + +var AffiliateLocationFeedRelationshipTypeEnum_AffiliateLocationFeedRelationshipType_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "GENERAL_RETAILER", +} +var AffiliateLocationFeedRelationshipTypeEnum_AffiliateLocationFeedRelationshipType_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "GENERAL_RETAILER": 2, +} + +func (x AffiliateLocationFeedRelationshipTypeEnum_AffiliateLocationFeedRelationshipType) String() string { + return proto.EnumName(AffiliateLocationFeedRelationshipTypeEnum_AffiliateLocationFeedRelationshipType_name, int32(x)) +} +func (AffiliateLocationFeedRelationshipTypeEnum_AffiliateLocationFeedRelationshipType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_affiliate_location_feed_relationship_type_623152188cd1ee87, []int{0, 0} +} + +// Container for enum describing possible values for a relationship type for +// an affiliate location feed. +type AffiliateLocationFeedRelationshipTypeEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AffiliateLocationFeedRelationshipTypeEnum) Reset() { + *m = AffiliateLocationFeedRelationshipTypeEnum{} +} +func (m *AffiliateLocationFeedRelationshipTypeEnum) String() string { return proto.CompactTextString(m) } +func (*AffiliateLocationFeedRelationshipTypeEnum) ProtoMessage() {} +func (*AffiliateLocationFeedRelationshipTypeEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_affiliate_location_feed_relationship_type_623152188cd1ee87, []int{0} +} +func (m *AffiliateLocationFeedRelationshipTypeEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AffiliateLocationFeedRelationshipTypeEnum.Unmarshal(m, b) +} +func (m *AffiliateLocationFeedRelationshipTypeEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AffiliateLocationFeedRelationshipTypeEnum.Marshal(b, m, deterministic) +} +func (dst *AffiliateLocationFeedRelationshipTypeEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_AffiliateLocationFeedRelationshipTypeEnum.Merge(dst, src) +} +func (m *AffiliateLocationFeedRelationshipTypeEnum) XXX_Size() int { + return xxx_messageInfo_AffiliateLocationFeedRelationshipTypeEnum.Size(m) +} +func (m *AffiliateLocationFeedRelationshipTypeEnum) XXX_DiscardUnknown() { + xxx_messageInfo_AffiliateLocationFeedRelationshipTypeEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_AffiliateLocationFeedRelationshipTypeEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*AffiliateLocationFeedRelationshipTypeEnum)(nil), "google.ads.googleads.v0.enums.AffiliateLocationFeedRelationshipTypeEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.AffiliateLocationFeedRelationshipTypeEnum_AffiliateLocationFeedRelationshipType", AffiliateLocationFeedRelationshipTypeEnum_AffiliateLocationFeedRelationshipType_name, AffiliateLocationFeedRelationshipTypeEnum_AffiliateLocationFeedRelationshipType_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/affiliate_location_feed_relationship_type.proto", fileDescriptor_affiliate_location_feed_relationship_type_623152188cd1ee87) +} + +var fileDescriptor_affiliate_location_feed_relationship_type_623152188cd1ee87 = []byte{ + // 295 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xf2, 0x4d, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xbc, + 0xd2, 0xdc, 0x62, 0xfd, 0xc4, 0xb4, 0xb4, 0xcc, 0x9c, 0xcc, 0xc4, 0x92, 0xd4, 0xf8, 0x9c, 0xfc, + 0xe4, 0xc4, 0x92, 0xcc, 0xfc, 0xbc, 0xf8, 0xb4, 0xd4, 0xd4, 0x94, 0xf8, 0xa2, 0xd4, 0x1c, 0x30, + 0xaf, 0x38, 0x23, 0xb3, 0x20, 0xbe, 0xa4, 0xb2, 0x20, 0x55, 0xaf, 0xa0, 0x28, 0xbf, 0x24, 0x5f, + 0x48, 0x16, 0x62, 0x86, 0x5e, 0x62, 0x4a, 0xb1, 0x1e, 0xdc, 0x38, 0xbd, 0x32, 0x03, 0x3d, 0xb0, + 0x71, 0x4a, 0x1d, 0x8c, 0x5c, 0x9a, 0x8e, 0x30, 0x23, 0x7d, 0xa0, 0x26, 0xba, 0xa5, 0xa6, 0xa6, + 0x04, 0x21, 0x99, 0x17, 0x52, 0x59, 0x90, 0xea, 0x9a, 0x57, 0x9a, 0xab, 0x14, 0xcd, 0xa5, 0x4a, + 0x94, 0x62, 0x21, 0x7e, 0x2e, 0xee, 0x50, 0xbf, 0xe0, 0x00, 0x57, 0x67, 0x4f, 0x37, 0x4f, 0x57, + 0x17, 0x01, 0x06, 0x21, 0x6e, 0x2e, 0xf6, 0x50, 0x3f, 0x6f, 0x3f, 0xff, 0x70, 0x3f, 0x01, 0x46, + 0x21, 0x11, 0x2e, 0x01, 0x77, 0x57, 0x3f, 0xd7, 0x20, 0x47, 0x9f, 0xf8, 0x20, 0xd7, 0x10, 0x47, + 0x4f, 0x1f, 0xd7, 0x20, 0x01, 0x26, 0xa7, 0xdb, 0x8c, 0x5c, 0x8a, 0xc9, 0xf9, 0xb9, 0x7a, 0x78, + 0x1d, 0xec, 0xa4, 0x45, 0x94, 0x03, 0x02, 0x40, 0x7e, 0x0f, 0x60, 0x8c, 0x72, 0x82, 0x1a, 0x96, + 0x9e, 0x9f, 0x93, 0x98, 0x97, 0xae, 0x97, 0x5f, 0x94, 0xae, 0x9f, 0x9e, 0x9a, 0x07, 0x0e, 0x19, + 0x58, 0xe0, 0x16, 0x64, 0x16, 0xe3, 0x08, 0x6b, 0x6b, 0x30, 0xb9, 0x88, 0x89, 0xd9, 0xdd, 0xd1, + 0x71, 0x15, 0x93, 0xac, 0x3b, 0xc4, 0x28, 0xc7, 0x94, 0x62, 0x3d, 0x08, 0x13, 0xc4, 0x0a, 0x33, + 0xd0, 0x03, 0x85, 0x4c, 0xf1, 0x29, 0x98, 0x7c, 0x8c, 0x63, 0x4a, 0x71, 0x0c, 0x5c, 0x3e, 0x26, + 0xcc, 0x20, 0x06, 0x2c, 0x9f, 0xc4, 0x06, 0xb6, 0xd4, 0x18, 0x10, 0x00, 0x00, 0xff, 0xff, 0x44, + 0xd5, 0x6c, 0xea, 0xdf, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/age_range_type.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/age_range_type.pb.go new file mode 100644 index 000000000..c2aa273b8 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/age_range_type.pb.go @@ -0,0 +1,138 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/age_range_type.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// The type of demographic age ranges (e.g. between 18 and 24 years old). +type AgeRangeTypeEnum_AgeRangeType int32 + +const ( + // Not specified. + AgeRangeTypeEnum_UNSPECIFIED AgeRangeTypeEnum_AgeRangeType = 0 + // Used for return value only. Represents value unknown in this version. + AgeRangeTypeEnum_UNKNOWN AgeRangeTypeEnum_AgeRangeType = 1 + // Between 18 and 24 years old. + AgeRangeTypeEnum_AGE_RANGE_18_24 AgeRangeTypeEnum_AgeRangeType = 503001 + // Between 25 and 34 years old. + AgeRangeTypeEnum_AGE_RANGE_25_34 AgeRangeTypeEnum_AgeRangeType = 503002 + // Between 35 and 44 years old. + AgeRangeTypeEnum_AGE_RANGE_35_44 AgeRangeTypeEnum_AgeRangeType = 503003 + // Between 45 and 54 years old. + AgeRangeTypeEnum_AGE_RANGE_45_54 AgeRangeTypeEnum_AgeRangeType = 503004 + // Between 55 and 64 years old. + AgeRangeTypeEnum_AGE_RANGE_55_64 AgeRangeTypeEnum_AgeRangeType = 503005 + // 65 years old and beyond. + AgeRangeTypeEnum_AGE_RANGE_65_UP AgeRangeTypeEnum_AgeRangeType = 503006 + // Undetermined age range. + AgeRangeTypeEnum_AGE_RANGE_UNDETERMINED AgeRangeTypeEnum_AgeRangeType = 503999 +) + +var AgeRangeTypeEnum_AgeRangeType_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 503001: "AGE_RANGE_18_24", + 503002: "AGE_RANGE_25_34", + 503003: "AGE_RANGE_35_44", + 503004: "AGE_RANGE_45_54", + 503005: "AGE_RANGE_55_64", + 503006: "AGE_RANGE_65_UP", + 503999: "AGE_RANGE_UNDETERMINED", +} +var AgeRangeTypeEnum_AgeRangeType_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "AGE_RANGE_18_24": 503001, + "AGE_RANGE_25_34": 503002, + "AGE_RANGE_35_44": 503003, + "AGE_RANGE_45_54": 503004, + "AGE_RANGE_55_64": 503005, + "AGE_RANGE_65_UP": 503006, + "AGE_RANGE_UNDETERMINED": 503999, +} + +func (x AgeRangeTypeEnum_AgeRangeType) String() string { + return proto.EnumName(AgeRangeTypeEnum_AgeRangeType_name, int32(x)) +} +func (AgeRangeTypeEnum_AgeRangeType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_age_range_type_846fc75750f12f7f, []int{0, 0} +} + +// Container for enum describing the type of demographic age ranges. +type AgeRangeTypeEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AgeRangeTypeEnum) Reset() { *m = AgeRangeTypeEnum{} } +func (m *AgeRangeTypeEnum) String() string { return proto.CompactTextString(m) } +func (*AgeRangeTypeEnum) ProtoMessage() {} +func (*AgeRangeTypeEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_age_range_type_846fc75750f12f7f, []int{0} +} +func (m *AgeRangeTypeEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AgeRangeTypeEnum.Unmarshal(m, b) +} +func (m *AgeRangeTypeEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AgeRangeTypeEnum.Marshal(b, m, deterministic) +} +func (dst *AgeRangeTypeEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_AgeRangeTypeEnum.Merge(dst, src) +} +func (m *AgeRangeTypeEnum) XXX_Size() int { + return xxx_messageInfo_AgeRangeTypeEnum.Size(m) +} +func (m *AgeRangeTypeEnum) XXX_DiscardUnknown() { + xxx_messageInfo_AgeRangeTypeEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_AgeRangeTypeEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*AgeRangeTypeEnum)(nil), "google.ads.googleads.v0.enums.AgeRangeTypeEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.AgeRangeTypeEnum_AgeRangeType", AgeRangeTypeEnum_AgeRangeType_name, AgeRangeTypeEnum_AgeRangeType_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/age_range_type.proto", fileDescriptor_age_range_type_846fc75750f12f7f) +} + +var fileDescriptor_age_range_type_846fc75750f12f7f = []byte{ + // 336 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x32, 0x4a, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xbc, + 0xd2, 0xdc, 0x62, 0xfd, 0xc4, 0xf4, 0xd4, 0xf8, 0xa2, 0xc4, 0xbc, 0xf4, 0xd4, 0xf8, 0x92, 0xca, + 0x82, 0x54, 0xbd, 0x82, 0xa2, 0xfc, 0x92, 0x7c, 0x21, 0x59, 0x88, 0x42, 0xbd, 0xc4, 0x94, 0x62, + 0x3d, 0xb8, 0x1e, 0xbd, 0x32, 0x03, 0x3d, 0xb0, 0x1e, 0xa5, 0x97, 0x8c, 0x5c, 0x02, 0x8e, 0xe9, + 0xa9, 0x41, 0x20, 0x6d, 0x21, 0x95, 0x05, 0xa9, 0xae, 0x79, 0xa5, 0xb9, 0x4a, 0x57, 0x18, 0xb9, + 0x78, 0x90, 0x05, 0x85, 0xf8, 0xb9, 0xb8, 0x43, 0xfd, 0x82, 0x03, 0x5c, 0x9d, 0x3d, 0xdd, 0x3c, + 0x5d, 0x5d, 0x04, 0x18, 0x84, 0xb8, 0xb9, 0xd8, 0x43, 0xfd, 0xbc, 0xfd, 0xfc, 0xc3, 0xfd, 0x04, + 0x18, 0x85, 0x44, 0xb9, 0xf8, 0x1d, 0xdd, 0x5d, 0xe3, 0x83, 0x1c, 0xfd, 0xdc, 0x5d, 0xe3, 0x0d, + 0x2d, 0xe2, 0x8d, 0x4c, 0x04, 0x6e, 0xde, 0x94, 0x43, 0x15, 0x36, 0x32, 0x8d, 0x37, 0x36, 0x11, + 0xb8, 0x85, 0x2e, 0x6c, 0x6c, 0x1a, 0x6f, 0x62, 0x22, 0x70, 0x1b, 0x5d, 0xd8, 0xc4, 0x34, 0xde, + 0xd4, 0x44, 0xe0, 0x0e, 0xba, 0xb0, 0xa9, 0x69, 0xbc, 0x99, 0x89, 0xc0, 0x5d, 0x74, 0x61, 0x33, + 0xd3, 0xf8, 0xd0, 0x00, 0x81, 0x7b, 0x37, 0xe5, 0x84, 0x64, 0xb8, 0xc4, 0x10, 0xc2, 0xa1, 0x7e, + 0x2e, 0xae, 0x21, 0xae, 0x41, 0xbe, 0x9e, 0x7e, 0xae, 0x2e, 0x02, 0xfb, 0x1f, 0xca, 0x39, 0x1d, + 0x62, 0xe4, 0x52, 0x4c, 0xce, 0xcf, 0xd5, 0xc3, 0x1b, 0x22, 0x4e, 0x82, 0xc8, 0x3e, 0x0f, 0x00, + 0x85, 0x61, 0x00, 0x63, 0x94, 0x13, 0x54, 0x4f, 0x7a, 0x7e, 0x4e, 0x62, 0x5e, 0xba, 0x5e, 0x7e, + 0x51, 0xba, 0x7e, 0x7a, 0x6a, 0x1e, 0x38, 0x84, 0x61, 0x31, 0x51, 0x90, 0x59, 0x8c, 0x23, 0x62, + 0xac, 0xc1, 0xe4, 0x22, 0x26, 0x66, 0x77, 0x47, 0xc7, 0x55, 0x4c, 0xb2, 0xee, 0x10, 0xa3, 0x1c, + 0x53, 0x8a, 0xf5, 0x20, 0x4c, 0x10, 0x2b, 0xcc, 0x40, 0x0f, 0x14, 0xf4, 0xc5, 0xa7, 0x60, 0xf2, + 0x31, 0x8e, 0x29, 0xc5, 0x31, 0x70, 0xf9, 0x98, 0x30, 0x83, 0x18, 0xb0, 0x7c, 0x12, 0x1b, 0xd8, + 0x52, 0x63, 0x40, 0x00, 0x00, 0x00, 0xff, 0xff, 0x2d, 0x72, 0xdc, 0x47, 0x0c, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/app_placeholder_field.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/app_placeholder_field.pb.go new file mode 100644 index 000000000..0f3853442 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/app_placeholder_field.pb.go @@ -0,0 +1,150 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/app_placeholder_field.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Possible values for App placeholder fields. +type AppPlaceholderFieldEnum_AppPlaceholderField int32 + +const ( + // Not specified. + AppPlaceholderFieldEnum_UNSPECIFIED AppPlaceholderFieldEnum_AppPlaceholderField = 0 + // Used for return value only. Represents value unknown in this version. + AppPlaceholderFieldEnum_UNKNOWN AppPlaceholderFieldEnum_AppPlaceholderField = 1 + // Data Type: INT64. The application store that the target application + // belongs to. Valid values are: 1 = Apple iTunes Store; 2 = Google Play + // Store. + AppPlaceholderFieldEnum_STORE AppPlaceholderFieldEnum_AppPlaceholderField = 2 + // Data Type: STRING. The store-specific ID for the target application. + AppPlaceholderFieldEnum_ID AppPlaceholderFieldEnum_AppPlaceholderField = 3 + // Data Type: STRING. The visible text displayed when the link is rendered + // in an ad. + AppPlaceholderFieldEnum_LINK_TEXT AppPlaceholderFieldEnum_AppPlaceholderField = 4 + // Data Type: STRING. The destination URL of the in-app link. + AppPlaceholderFieldEnum_URL AppPlaceholderFieldEnum_AppPlaceholderField = 5 + // Data Type: URL_LIST. Final URLs for the in-app link when using Upgraded + // URLs. + AppPlaceholderFieldEnum_FINAL_URLS AppPlaceholderFieldEnum_AppPlaceholderField = 6 + // Data Type: URL_LIST. Final Mobile URLs for the in-app link when using + // Upgraded URLs. + AppPlaceholderFieldEnum_FINAL_MOBILE_URLS AppPlaceholderFieldEnum_AppPlaceholderField = 7 + // Data Type: URL. Tracking template for the in-app link when using Upgraded + // URLs. + AppPlaceholderFieldEnum_TRACKING_URL AppPlaceholderFieldEnum_AppPlaceholderField = 8 + // Data Type: STRING. Final URL suffix for the in-app link when using + // parallel tracking. + AppPlaceholderFieldEnum_FINAL_URL_SUFFIX AppPlaceholderFieldEnum_AppPlaceholderField = 9 +) + +var AppPlaceholderFieldEnum_AppPlaceholderField_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "STORE", + 3: "ID", + 4: "LINK_TEXT", + 5: "URL", + 6: "FINAL_URLS", + 7: "FINAL_MOBILE_URLS", + 8: "TRACKING_URL", + 9: "FINAL_URL_SUFFIX", +} +var AppPlaceholderFieldEnum_AppPlaceholderField_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "STORE": 2, + "ID": 3, + "LINK_TEXT": 4, + "URL": 5, + "FINAL_URLS": 6, + "FINAL_MOBILE_URLS": 7, + "TRACKING_URL": 8, + "FINAL_URL_SUFFIX": 9, +} + +func (x AppPlaceholderFieldEnum_AppPlaceholderField) String() string { + return proto.EnumName(AppPlaceholderFieldEnum_AppPlaceholderField_name, int32(x)) +} +func (AppPlaceholderFieldEnum_AppPlaceholderField) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_app_placeholder_field_f3f678b0f2e2b317, []int{0, 0} +} + +// Values for App placeholder fields. +type AppPlaceholderFieldEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AppPlaceholderFieldEnum) Reset() { *m = AppPlaceholderFieldEnum{} } +func (m *AppPlaceholderFieldEnum) String() string { return proto.CompactTextString(m) } +func (*AppPlaceholderFieldEnum) ProtoMessage() {} +func (*AppPlaceholderFieldEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_app_placeholder_field_f3f678b0f2e2b317, []int{0} +} +func (m *AppPlaceholderFieldEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AppPlaceholderFieldEnum.Unmarshal(m, b) +} +func (m *AppPlaceholderFieldEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AppPlaceholderFieldEnum.Marshal(b, m, deterministic) +} +func (dst *AppPlaceholderFieldEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_AppPlaceholderFieldEnum.Merge(dst, src) +} +func (m *AppPlaceholderFieldEnum) XXX_Size() int { + return xxx_messageInfo_AppPlaceholderFieldEnum.Size(m) +} +func (m *AppPlaceholderFieldEnum) XXX_DiscardUnknown() { + xxx_messageInfo_AppPlaceholderFieldEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_AppPlaceholderFieldEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*AppPlaceholderFieldEnum)(nil), "google.ads.googleads.v0.enums.AppPlaceholderFieldEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.AppPlaceholderFieldEnum_AppPlaceholderField", AppPlaceholderFieldEnum_AppPlaceholderField_name, AppPlaceholderFieldEnum_AppPlaceholderField_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/app_placeholder_field.proto", fileDescriptor_app_placeholder_field_f3f678b0f2e2b317) +} + +var fileDescriptor_app_placeholder_field_f3f678b0f2e2b317 = []byte{ + // 345 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x91, 0xcf, 0x4e, 0xea, 0x40, + 0x18, 0xc5, 0x6f, 0xcb, 0x05, 0x2e, 0x1f, 0xf7, 0x5e, 0xc7, 0x51, 0xa3, 0x1b, 0x16, 0xf2, 0x00, + 0xd3, 0x26, 0xae, 0x8c, 0xab, 0x16, 0x5a, 0x32, 0xa1, 0x96, 0xa6, 0x7f, 0x90, 0x98, 0x26, 0x4d, + 0xa5, 0xb5, 0x92, 0x94, 0xce, 0x84, 0x11, 0x1e, 0xc8, 0xa5, 0x89, 0x0f, 0x82, 0x4f, 0x65, 0xda, + 0x0a, 0x6e, 0xd0, 0xcd, 0xe4, 0xcc, 0x77, 0xe6, 0x37, 0x93, 0x73, 0x06, 0xae, 0x33, 0xc6, 0xb2, + 0x3c, 0x55, 0xe2, 0x44, 0x28, 0xb5, 0x2c, 0xd5, 0x46, 0x55, 0xd2, 0x62, 0xbd, 0x14, 0x4a, 0xcc, + 0x79, 0xc4, 0xf3, 0x78, 0x9e, 0x3e, 0xb1, 0x3c, 0x49, 0x57, 0xd1, 0xe3, 0x22, 0xcd, 0x13, 0xc2, + 0x57, 0xec, 0x99, 0xe1, 0x5e, 0x7d, 0x9e, 0xc4, 0x89, 0x20, 0x7b, 0x94, 0x6c, 0x54, 0x52, 0xa1, + 0xfd, 0xad, 0x04, 0xe7, 0x1a, 0xe7, 0xce, 0x17, 0x6d, 0x96, 0xb0, 0x51, 0xac, 0x97, 0xfd, 0x37, + 0x09, 0x4e, 0x0e, 0x78, 0xf8, 0x08, 0xba, 0x81, 0xed, 0x39, 0xc6, 0x80, 0x9a, 0xd4, 0x18, 0xa2, + 0x5f, 0xb8, 0x0b, 0xed, 0xc0, 0x1e, 0xdb, 0x93, 0x3b, 0x1b, 0x49, 0xb8, 0x03, 0x4d, 0xcf, 0x9f, + 0xb8, 0x06, 0x92, 0x71, 0x0b, 0x64, 0x3a, 0x44, 0x0d, 0xfc, 0x0f, 0x3a, 0x16, 0xb5, 0xc7, 0x91, + 0x6f, 0xcc, 0x7c, 0xf4, 0x1b, 0xb7, 0xa1, 0x11, 0xb8, 0x16, 0x6a, 0xe2, 0xff, 0x00, 0x26, 0xb5, + 0x35, 0x2b, 0x0a, 0x5c, 0xcb, 0x43, 0x2d, 0x7c, 0x06, 0xc7, 0xf5, 0xfe, 0x76, 0xa2, 0x53, 0xcb, + 0xa8, 0xc7, 0x6d, 0x8c, 0xe0, 0xaf, 0xef, 0x6a, 0x83, 0x31, 0xb5, 0x47, 0xe5, 0x08, 0xfd, 0xc1, + 0xa7, 0x80, 0xf6, 0x60, 0xe4, 0x05, 0xa6, 0x49, 0x67, 0xa8, 0xa3, 0x6f, 0x25, 0xb8, 0x9c, 0xb3, + 0x25, 0xf9, 0x31, 0xb1, 0x7e, 0x71, 0x20, 0x92, 0x53, 0x56, 0xe5, 0x48, 0xf7, 0xfa, 0x27, 0x9a, + 0xb1, 0x3c, 0x2e, 0x32, 0xc2, 0x56, 0x99, 0x92, 0xa5, 0x45, 0x55, 0xe4, 0xae, 0x77, 0xbe, 0x10, + 0xdf, 0x7c, 0xc3, 0x4d, 0xb5, 0xbe, 0xc8, 0x8d, 0x91, 0xa6, 0xbd, 0xca, 0xbd, 0x51, 0x7d, 0x95, + 0x96, 0x08, 0x52, 0xcb, 0x52, 0x4d, 0x55, 0x52, 0x56, 0x2b, 0xde, 0x77, 0x7e, 0xa8, 0x25, 0x22, + 0xdc, 0xfb, 0xe1, 0x54, 0x0d, 0x2b, 0xff, 0xa1, 0x55, 0x3d, 0x7a, 0xf5, 0x11, 0x00, 0x00, 0xff, + 0xff, 0xec, 0x9f, 0x59, 0xbc, 0xfa, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/attribution_model.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/attribution_model.pb.go new file mode 100644 index 000000000..ad0d17be5 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/attribution_model.pb.go @@ -0,0 +1,150 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/attribution_model.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// The attribution model that describes how to distribute credit for a +// particular conversion across potentially many prior interactions. +type AttributionModelEnum_AttributionModel int32 + +const ( + // Not specified. + AttributionModelEnum_UNSPECIFIED AttributionModelEnum_AttributionModel = 0 + // Used for return value only. Represents value unknown in this version. + AttributionModelEnum_UNKNOWN AttributionModelEnum_AttributionModel = 1 + // Uses external attribution. + AttributionModelEnum_EXTERNAL AttributionModelEnum_AttributionModel = 100 + // Attributes all credit for a conversion to its last click. + AttributionModelEnum_GOOGLE_ADS_LAST_CLICK AttributionModelEnum_AttributionModel = 101 + // Attributes all credit for a conversion to its first click using Google + // Search attribution. + AttributionModelEnum_GOOGLE_SEARCH_ATTRIBUTION_FIRST_CLICK AttributionModelEnum_AttributionModel = 102 + // Attributes credit for a conversion equally across all of its clicks using + // Google Search attribution. + AttributionModelEnum_GOOGLE_SEARCH_ATTRIBUTION_LINEAR AttributionModelEnum_AttributionModel = 103 + // Attributes exponentially more credit for a conversion to its more recent + // clicks using Google Search attribution (half-life is 1 week). + AttributionModelEnum_GOOGLE_SEARCH_ATTRIBUTION_TIME_DECAY AttributionModelEnum_AttributionModel = 104 + // Attributes 40% of the credit for a conversion to its first and last + // clicks. Remaining 20% is evenly distributed across all other clicks. This + // uses Google Search attribution. + AttributionModelEnum_GOOGLE_SEARCH_ATTRIBUTION_POSITION_BASED AttributionModelEnum_AttributionModel = 105 + // Flexible model that uses machine learning to determine the appropriate + // distribution of credit among clicks using Google Search attribution. + AttributionModelEnum_GOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN AttributionModelEnum_AttributionModel = 106 +) + +var AttributionModelEnum_AttributionModel_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 100: "EXTERNAL", + 101: "GOOGLE_ADS_LAST_CLICK", + 102: "GOOGLE_SEARCH_ATTRIBUTION_FIRST_CLICK", + 103: "GOOGLE_SEARCH_ATTRIBUTION_LINEAR", + 104: "GOOGLE_SEARCH_ATTRIBUTION_TIME_DECAY", + 105: "GOOGLE_SEARCH_ATTRIBUTION_POSITION_BASED", + 106: "GOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN", +} +var AttributionModelEnum_AttributionModel_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "EXTERNAL": 100, + "GOOGLE_ADS_LAST_CLICK": 101, + "GOOGLE_SEARCH_ATTRIBUTION_FIRST_CLICK": 102, + "GOOGLE_SEARCH_ATTRIBUTION_LINEAR": 103, + "GOOGLE_SEARCH_ATTRIBUTION_TIME_DECAY": 104, + "GOOGLE_SEARCH_ATTRIBUTION_POSITION_BASED": 105, + "GOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN": 106, +} + +func (x AttributionModelEnum_AttributionModel) String() string { + return proto.EnumName(AttributionModelEnum_AttributionModel_name, int32(x)) +} +func (AttributionModelEnum_AttributionModel) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_attribution_model_03c15a84641f0f34, []int{0, 0} +} + +// Container for enum representing the attribution model that describes how to +// distribute credit for a particular conversion across potentially many prior +// interactions. +type AttributionModelEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AttributionModelEnum) Reset() { *m = AttributionModelEnum{} } +func (m *AttributionModelEnum) String() string { return proto.CompactTextString(m) } +func (*AttributionModelEnum) ProtoMessage() {} +func (*AttributionModelEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_attribution_model_03c15a84641f0f34, []int{0} +} +func (m *AttributionModelEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AttributionModelEnum.Unmarshal(m, b) +} +func (m *AttributionModelEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AttributionModelEnum.Marshal(b, m, deterministic) +} +func (dst *AttributionModelEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_AttributionModelEnum.Merge(dst, src) +} +func (m *AttributionModelEnum) XXX_Size() int { + return xxx_messageInfo_AttributionModelEnum.Size(m) +} +func (m *AttributionModelEnum) XXX_DiscardUnknown() { + xxx_messageInfo_AttributionModelEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_AttributionModelEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*AttributionModelEnum)(nil), "google.ads.googleads.v0.enums.AttributionModelEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.AttributionModelEnum_AttributionModel", AttributionModelEnum_AttributionModel_name, AttributionModelEnum_AttributionModel_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/attribution_model.proto", fileDescriptor_attribution_model_03c15a84641f0f34) +} + +var fileDescriptor_attribution_model_03c15a84641f0f34 = []byte{ + // 369 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x91, 0x4f, 0x8b, 0x9b, 0x40, + 0x00, 0xc5, 0x1b, 0x0b, 0x6d, 0x99, 0x14, 0x3a, 0x0c, 0xcd, 0xa1, 0x87, 0x40, 0x1b, 0x52, 0x48, + 0xa1, 0x8c, 0x42, 0xe9, 0xa9, 0xa7, 0x51, 0x27, 0x76, 0x88, 0x19, 0x45, 0x4d, 0xfa, 0x07, 0x61, + 0x30, 0xd5, 0xba, 0x2e, 0xd1, 0x09, 0xd1, 0xe4, 0x03, 0xed, 0x71, 0x61, 0xbf, 0x46, 0x0e, 0xfb, + 0xa9, 0x16, 0x35, 0xc9, 0x42, 0xc0, 0x5c, 0x86, 0x07, 0xef, 0xbd, 0x99, 0xe1, 0xfd, 0xc0, 0xf7, + 0x54, 0xca, 0x74, 0x9d, 0xa8, 0x51, 0x5c, 0xaa, 0xad, 0xac, 0xd5, 0x5e, 0x53, 0x93, 0x62, 0x97, + 0x97, 0x6a, 0x54, 0x55, 0xdb, 0x6c, 0xb5, 0xab, 0x32, 0x59, 0x88, 0x5c, 0xc6, 0xc9, 0x1a, 0x6f, + 0xb6, 0xb2, 0x92, 0x68, 0xd8, 0x66, 0x71, 0x14, 0x97, 0xf8, 0x5c, 0xc3, 0x7b, 0x0d, 0x37, 0xb5, + 0xd1, 0x41, 0x01, 0xef, 0xc9, 0x73, 0x75, 0x5e, 0x37, 0x69, 0xb1, 0xcb, 0x47, 0x0f, 0x0a, 0x80, + 0x97, 0x06, 0x7a, 0x07, 0xfa, 0x0b, 0xee, 0xbb, 0xd4, 0x60, 0x53, 0x46, 0x4d, 0xf8, 0x02, 0xf5, + 0xc1, 0xeb, 0x05, 0x9f, 0x71, 0xe7, 0x17, 0x87, 0x3d, 0xf4, 0x16, 0xbc, 0xa1, 0xbf, 0x03, 0xea, + 0x71, 0x62, 0xc3, 0x18, 0x7d, 0x00, 0x03, 0xcb, 0x71, 0x2c, 0x9b, 0x0a, 0x62, 0xfa, 0xc2, 0x26, + 0x7e, 0x20, 0x0c, 0x9b, 0x19, 0x33, 0x98, 0xa0, 0x2f, 0xe0, 0xf3, 0xd1, 0xf2, 0x29, 0xf1, 0x8c, + 0x9f, 0x82, 0x04, 0x81, 0xc7, 0xf4, 0x45, 0xc0, 0x1c, 0x2e, 0xa6, 0xcc, 0x3b, 0x47, 0xff, 0xa3, + 0x31, 0xf8, 0xd8, 0x1d, 0xb5, 0x19, 0xa7, 0xc4, 0x83, 0x29, 0x9a, 0x80, 0x71, 0x77, 0x2a, 0x60, + 0x73, 0x2a, 0x4c, 0x6a, 0x90, 0x3f, 0xf0, 0x06, 0x7d, 0x05, 0x93, 0xee, 0xa4, 0xeb, 0xf8, 0xac, + 0x11, 0x3a, 0xf1, 0xa9, 0x09, 0xb3, 0xeb, 0x1f, 0x35, 0x49, 0x40, 0x84, 0xe9, 0xb1, 0x25, 0xe5, + 0xf0, 0x56, 0x3f, 0xf4, 0xc0, 0xa7, 0x7f, 0x32, 0xc7, 0x57, 0xe7, 0xd6, 0x07, 0x97, 0x93, 0xba, + 0x35, 0x24, 0xb7, 0xf7, 0x57, 0x3f, 0xf6, 0x52, 0xb9, 0x8e, 0x8a, 0x14, 0xcb, 0x6d, 0xaa, 0xa6, + 0x49, 0xd1, 0x20, 0x3c, 0xd1, 0xde, 0x64, 0x65, 0x07, 0xfc, 0x1f, 0xcd, 0x79, 0xa7, 0xbc, 0xb4, + 0x08, 0xb9, 0x57, 0x86, 0x56, 0x7b, 0x15, 0x89, 0x4b, 0xdc, 0xca, 0x5a, 0x2d, 0x35, 0x5c, 0x73, + 0x2d, 0x1f, 0x4f, 0x7e, 0x48, 0xe2, 0x32, 0x3c, 0xfb, 0xe1, 0x52, 0x0b, 0x1b, 0x7f, 0xf5, 0xaa, + 0x79, 0xf4, 0xdb, 0x53, 0x00, 0x00, 0x00, 0xff, 0xff, 0xb1, 0x00, 0xb5, 0x3a, 0x70, 0x02, 0x00, + 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/bid_modifier_source.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/bid_modifier_source.pb.go new file mode 100644 index 000000000..bc1a08736 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/bid_modifier_source.pb.go @@ -0,0 +1,115 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/bid_modifier_source.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible bid modifier sources. +type BidModifierSourceEnum_BidModifierSource int32 + +const ( + // Not specified. + BidModifierSourceEnum_UNSPECIFIED BidModifierSourceEnum_BidModifierSource = 0 + // Used for return value only. Represents value unknown in this version. + BidModifierSourceEnum_UNKNOWN BidModifierSourceEnum_BidModifierSource = 1 + // The bid modifier is specified at the campaign level, on the campaign + // level criterion. + BidModifierSourceEnum_CAMPAIGN BidModifierSourceEnum_BidModifierSource = 2 + // The bid modifier is specified (overridden) at the ad group level. + BidModifierSourceEnum_AD_GROUP BidModifierSourceEnum_BidModifierSource = 3 +) + +var BidModifierSourceEnum_BidModifierSource_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "CAMPAIGN", + 3: "AD_GROUP", +} +var BidModifierSourceEnum_BidModifierSource_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "CAMPAIGN": 2, + "AD_GROUP": 3, +} + +func (x BidModifierSourceEnum_BidModifierSource) String() string { + return proto.EnumName(BidModifierSourceEnum_BidModifierSource_name, int32(x)) +} +func (BidModifierSourceEnum_BidModifierSource) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_bid_modifier_source_f02ca399af0ade5b, []int{0, 0} +} + +// Container for enum describing possible bid modifier sources. +type BidModifierSourceEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BidModifierSourceEnum) Reset() { *m = BidModifierSourceEnum{} } +func (m *BidModifierSourceEnum) String() string { return proto.CompactTextString(m) } +func (*BidModifierSourceEnum) ProtoMessage() {} +func (*BidModifierSourceEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_bid_modifier_source_f02ca399af0ade5b, []int{0} +} +func (m *BidModifierSourceEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BidModifierSourceEnum.Unmarshal(m, b) +} +func (m *BidModifierSourceEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BidModifierSourceEnum.Marshal(b, m, deterministic) +} +func (dst *BidModifierSourceEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_BidModifierSourceEnum.Merge(dst, src) +} +func (m *BidModifierSourceEnum) XXX_Size() int { + return xxx_messageInfo_BidModifierSourceEnum.Size(m) +} +func (m *BidModifierSourceEnum) XXX_DiscardUnknown() { + xxx_messageInfo_BidModifierSourceEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_BidModifierSourceEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*BidModifierSourceEnum)(nil), "google.ads.googleads.v0.enums.BidModifierSourceEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.BidModifierSourceEnum_BidModifierSource", BidModifierSourceEnum_BidModifierSource_name, BidModifierSourceEnum_BidModifierSource_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/bid_modifier_source.proto", fileDescriptor_bid_modifier_source_f02ca399af0ade5b) +} + +var fileDescriptor_bid_modifier_source_f02ca399af0ade5b = []byte{ + // 269 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x32, 0x4f, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xbc, + 0xd2, 0xdc, 0x62, 0xfd, 0xa4, 0xcc, 0x94, 0xf8, 0xdc, 0xfc, 0x94, 0xcc, 0xb4, 0xcc, 0xd4, 0xa2, + 0xf8, 0xe2, 0xfc, 0xd2, 0xa2, 0xe4, 0x54, 0xbd, 0x82, 0xa2, 0xfc, 0x92, 0x7c, 0x21, 0x59, 0x88, + 0x6a, 0xbd, 0xc4, 0x94, 0x62, 0x3d, 0xb8, 0x46, 0xbd, 0x32, 0x03, 0x3d, 0xb0, 0x46, 0xa5, 0x34, + 0x2e, 0x51, 0xa7, 0xcc, 0x14, 0x5f, 0xa8, 0xd6, 0x60, 0xb0, 0x4e, 0xd7, 0xbc, 0xd2, 0x5c, 0x25, + 0x5f, 0x2e, 0x41, 0x0c, 0x09, 0x21, 0x7e, 0x2e, 0xee, 0x50, 0xbf, 0xe0, 0x00, 0x57, 0x67, 0x4f, + 0x37, 0x4f, 0x57, 0x17, 0x01, 0x06, 0x21, 0x6e, 0x2e, 0xf6, 0x50, 0x3f, 0x6f, 0x3f, 0xff, 0x70, + 0x3f, 0x01, 0x46, 0x21, 0x1e, 0x2e, 0x0e, 0x67, 0x47, 0xdf, 0x00, 0x47, 0x4f, 0x77, 0x3f, 0x01, + 0x26, 0x10, 0xcf, 0xd1, 0x25, 0xde, 0x3d, 0xc8, 0x3f, 0x34, 0x40, 0x80, 0xd9, 0xe9, 0x38, 0x23, + 0x97, 0x62, 0x72, 0x7e, 0xae, 0x1e, 0x5e, 0xd7, 0x38, 0x89, 0x61, 0x58, 0x19, 0x00, 0xf2, 0x44, + 0x00, 0x63, 0x94, 0x13, 0x54, 0x63, 0x7a, 0x7e, 0x4e, 0x62, 0x5e, 0xba, 0x5e, 0x7e, 0x51, 0xba, + 0x7e, 0x7a, 0x6a, 0x1e, 0xd8, 0x8b, 0xb0, 0xf0, 0x28, 0xc8, 0x2c, 0xc6, 0x11, 0x3c, 0xd6, 0x60, + 0x72, 0x11, 0x13, 0xb3, 0xbb, 0xa3, 0xe3, 0x2a, 0x26, 0x59, 0x77, 0x88, 0x51, 0x8e, 0x29, 0xc5, + 0x7a, 0x10, 0x26, 0x88, 0x15, 0x66, 0xa0, 0x07, 0xf2, 0x77, 0xf1, 0x29, 0x98, 0x7c, 0x8c, 0x63, + 0x4a, 0x71, 0x0c, 0x5c, 0x3e, 0x26, 0xcc, 0x20, 0x06, 0x2c, 0x9f, 0xc4, 0x06, 0xb6, 0xd4, 0x18, + 0x10, 0x00, 0x00, 0xff, 0xff, 0xf4, 0xa8, 0xae, 0xc8, 0x92, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/bidding_source.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/bidding_source.pb.go new file mode 100644 index 000000000..d05116509 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/bidding_source.pb.go @@ -0,0 +1,120 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/bidding_source.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible bidding sources. +type BiddingSourceEnum_BiddingSource int32 + +const ( + // Not specified. + BiddingSourceEnum_UNSPECIFIED BiddingSourceEnum_BiddingSource = 0 + // Used for return value only. Represents value unknown in this version. + BiddingSourceEnum_UNKNOWN BiddingSourceEnum_BiddingSource = 1 + // Bidding entity is defined on the ad group. + BiddingSourceEnum_ADGROUP BiddingSourceEnum_BiddingSource = 2 + // Bidding entity is defined on the ad group criterion. + BiddingSourceEnum_CRITERION BiddingSourceEnum_BiddingSource = 3 + // Effective bidding entity is inherited from campaign bidding strategy. + BiddingSourceEnum_CAMPAIGN_BIDDING_STRATEGY BiddingSourceEnum_BiddingSource = 5 +) + +var BiddingSourceEnum_BiddingSource_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "ADGROUP", + 3: "CRITERION", + 5: "CAMPAIGN_BIDDING_STRATEGY", +} +var BiddingSourceEnum_BiddingSource_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "ADGROUP": 2, + "CRITERION": 3, + "CAMPAIGN_BIDDING_STRATEGY": 5, +} + +func (x BiddingSourceEnum_BiddingSource) String() string { + return proto.EnumName(BiddingSourceEnum_BiddingSource_name, int32(x)) +} +func (BiddingSourceEnum_BiddingSource) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_bidding_source_8ff63990646de11f, []int{0, 0} +} + +// Container for enum describing possible bidding sources. +type BiddingSourceEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BiddingSourceEnum) Reset() { *m = BiddingSourceEnum{} } +func (m *BiddingSourceEnum) String() string { return proto.CompactTextString(m) } +func (*BiddingSourceEnum) ProtoMessage() {} +func (*BiddingSourceEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_bidding_source_8ff63990646de11f, []int{0} +} +func (m *BiddingSourceEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BiddingSourceEnum.Unmarshal(m, b) +} +func (m *BiddingSourceEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BiddingSourceEnum.Marshal(b, m, deterministic) +} +func (dst *BiddingSourceEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_BiddingSourceEnum.Merge(dst, src) +} +func (m *BiddingSourceEnum) XXX_Size() int { + return xxx_messageInfo_BiddingSourceEnum.Size(m) +} +func (m *BiddingSourceEnum) XXX_DiscardUnknown() { + xxx_messageInfo_BiddingSourceEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_BiddingSourceEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*BiddingSourceEnum)(nil), "google.ads.googleads.v0.enums.BiddingSourceEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.BiddingSourceEnum_BiddingSource", BiddingSourceEnum_BiddingSource_name, BiddingSourceEnum_BiddingSource_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/bidding_source.proto", fileDescriptor_bidding_source_8ff63990646de11f) +} + +var fileDescriptor_bidding_source_8ff63990646de11f = []byte{ + // 293 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x32, 0x4a, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xbc, + 0xd2, 0xdc, 0x62, 0xfd, 0xa4, 0xcc, 0x94, 0x94, 0xcc, 0xbc, 0xf4, 0xf8, 0xe2, 0xfc, 0xd2, 0xa2, + 0xe4, 0x54, 0xbd, 0x82, 0xa2, 0xfc, 0x92, 0x7c, 0x21, 0x59, 0x88, 0x42, 0xbd, 0xc4, 0x94, 0x62, + 0x3d, 0xb8, 0x1e, 0xbd, 0x32, 0x03, 0x3d, 0xb0, 0x1e, 0xa5, 0x5a, 0x2e, 0x41, 0x27, 0x88, 0xb6, + 0x60, 0xb0, 0x2e, 0xd7, 0xbc, 0xd2, 0x5c, 0xa5, 0x0c, 0x2e, 0x5e, 0x14, 0x41, 0x21, 0x7e, 0x2e, + 0xee, 0x50, 0xbf, 0xe0, 0x00, 0x57, 0x67, 0x4f, 0x37, 0x4f, 0x57, 0x17, 0x01, 0x06, 0x21, 0x6e, + 0x2e, 0xf6, 0x50, 0x3f, 0x6f, 0x3f, 0xff, 0x70, 0x3f, 0x01, 0x46, 0x10, 0xc7, 0xd1, 0xc5, 0x3d, + 0xc8, 0x3f, 0x34, 0x40, 0x80, 0x49, 0x88, 0x97, 0x8b, 0xd3, 0x39, 0xc8, 0x33, 0xc4, 0x35, 0xc8, + 0xd3, 0xdf, 0x4f, 0x80, 0x59, 0x48, 0x96, 0x4b, 0xd2, 0xd9, 0xd1, 0x37, 0xc0, 0xd1, 0xd3, 0xdd, + 0x2f, 0xde, 0xc9, 0xd3, 0xc5, 0xc5, 0xd3, 0xcf, 0x3d, 0x3e, 0x38, 0x24, 0xc8, 0x31, 0xc4, 0xd5, + 0x3d, 0x52, 0x80, 0xd5, 0xe9, 0x30, 0x23, 0x97, 0x62, 0x72, 0x7e, 0xae, 0x1e, 0x5e, 0x47, 0x3a, + 0x09, 0xa1, 0xb8, 0x26, 0x00, 0xe4, 0xaf, 0x00, 0xc6, 0x28, 0x27, 0xa8, 0xa6, 0xf4, 0xfc, 0x9c, + 0xc4, 0xbc, 0x74, 0xbd, 0xfc, 0xa2, 0x74, 0xfd, 0xf4, 0xd4, 0x3c, 0xb0, 0xaf, 0x61, 0xa1, 0x53, + 0x90, 0x59, 0x8c, 0x23, 0xb0, 0xac, 0xc1, 0xe4, 0x22, 0x26, 0x66, 0x77, 0x47, 0xc7, 0x55, 0x4c, + 0xb2, 0xee, 0x10, 0xa3, 0x1c, 0x53, 0x8a, 0xf5, 0x20, 0x4c, 0x10, 0x2b, 0xcc, 0x40, 0x0f, 0x14, + 0x1c, 0xc5, 0xa7, 0x60, 0xf2, 0x31, 0x8e, 0x29, 0xc5, 0x31, 0x70, 0xf9, 0x98, 0x30, 0x83, 0x18, + 0xb0, 0x7c, 0x12, 0x1b, 0xd8, 0x52, 0x63, 0x40, 0x00, 0x00, 0x00, 0xff, 0xff, 0x35, 0x27, 0x67, + 0xa1, 0xa0, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/bidding_strategy_type.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/bidding_strategy_type.pb.go new file mode 100644 index 000000000..e8112e5ef --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/bidding_strategy_type.pb.go @@ -0,0 +1,176 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/bidding_strategy_type.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible bidding strategy types. +type BiddingStrategyTypeEnum_BiddingStrategyType int32 + +const ( + // Not specified. + BiddingStrategyTypeEnum_UNSPECIFIED BiddingStrategyTypeEnum_BiddingStrategyType = 0 + // Used for return value only. Represents value unknown in this version. + BiddingStrategyTypeEnum_UNKNOWN BiddingStrategyTypeEnum_BiddingStrategyType = 1 + // Enhanced CPC is a bidding strategy that raises bids for clicks + // that seem more likely to lead to a conversion and lowers + // them for clicks where they seem less likely. + BiddingStrategyTypeEnum_ENHANCED_CPC BiddingStrategyTypeEnum_BiddingStrategyType = 2 + // Manual click based bidding where user pays per click. + BiddingStrategyTypeEnum_MANUAL_CPC BiddingStrategyTypeEnum_BiddingStrategyType = 3 + // Manual impression based bidding + // where user pays per thousand impressions. + BiddingStrategyTypeEnum_MANUAL_CPM BiddingStrategyTypeEnum_BiddingStrategyType = 4 + // A bidding strategy that pays a configurable amount per video view. + BiddingStrategyTypeEnum_MANUAL_CPV BiddingStrategyTypeEnum_BiddingStrategyType = 13 + // A bidding strategy that automatically maximizes number of conversions + // given a daily budget. + BiddingStrategyTypeEnum_MAXIMIZE_CONVERSIONS BiddingStrategyTypeEnum_BiddingStrategyType = 10 + // An automated bidding strategy that automatically sets bids to maximize + // revenue while spending your budget. + BiddingStrategyTypeEnum_MAXIMIZE_CONVERSION_VALUE BiddingStrategyTypeEnum_BiddingStrategyType = 11 + // Page-One Promoted bidding scheme, which sets max cpc bids to + // target impressions on page one or page one promoted slots on google.com. + BiddingStrategyTypeEnum_PAGE_ONE_PROMOTED BiddingStrategyTypeEnum_BiddingStrategyType = 5 + // Percent Cpc is bidding strategy where bids are a fraction of the + // advertised price for some good or service. + BiddingStrategyTypeEnum_PERCENT_CPC BiddingStrategyTypeEnum_BiddingStrategyType = 12 + // Target CPA is an automated bid strategy that sets bids + // to help get as many conversions as possible + // at the target cost-per-acquisition (CPA) you set. + BiddingStrategyTypeEnum_TARGET_CPA BiddingStrategyTypeEnum_BiddingStrategyType = 6 + // Target Outrank Share is an automated bidding strategy that sets bids + // based on the target fraction of auctions where the advertiser + // should outrank a specific competitor. + BiddingStrategyTypeEnum_TARGET_OUTRANK_SHARE BiddingStrategyTypeEnum_BiddingStrategyType = 7 + // Target ROAS is an automated bidding strategy + // that helps you maximize revenue while averaging + // a specific target Return On Average Spend (ROAS). + BiddingStrategyTypeEnum_TARGET_ROAS BiddingStrategyTypeEnum_BiddingStrategyType = 8 + // Target Spend is an automated bid strategy that sets your bids + // to help get as many clicks as possible within your budget. + BiddingStrategyTypeEnum_TARGET_SPEND BiddingStrategyTypeEnum_BiddingStrategyType = 9 +) + +var BiddingStrategyTypeEnum_BiddingStrategyType_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "ENHANCED_CPC", + 3: "MANUAL_CPC", + 4: "MANUAL_CPM", + 13: "MANUAL_CPV", + 10: "MAXIMIZE_CONVERSIONS", + 11: "MAXIMIZE_CONVERSION_VALUE", + 5: "PAGE_ONE_PROMOTED", + 12: "PERCENT_CPC", + 6: "TARGET_CPA", + 7: "TARGET_OUTRANK_SHARE", + 8: "TARGET_ROAS", + 9: "TARGET_SPEND", +} +var BiddingStrategyTypeEnum_BiddingStrategyType_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "ENHANCED_CPC": 2, + "MANUAL_CPC": 3, + "MANUAL_CPM": 4, + "MANUAL_CPV": 13, + "MAXIMIZE_CONVERSIONS": 10, + "MAXIMIZE_CONVERSION_VALUE": 11, + "PAGE_ONE_PROMOTED": 5, + "PERCENT_CPC": 12, + "TARGET_CPA": 6, + "TARGET_OUTRANK_SHARE": 7, + "TARGET_ROAS": 8, + "TARGET_SPEND": 9, +} + +func (x BiddingStrategyTypeEnum_BiddingStrategyType) String() string { + return proto.EnumName(BiddingStrategyTypeEnum_BiddingStrategyType_name, int32(x)) +} +func (BiddingStrategyTypeEnum_BiddingStrategyType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_bidding_strategy_type_59808af5df705879, []int{0, 0} +} + +// Container for enum describing possible bidding strategy types. +type BiddingStrategyTypeEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BiddingStrategyTypeEnum) Reset() { *m = BiddingStrategyTypeEnum{} } +func (m *BiddingStrategyTypeEnum) String() string { return proto.CompactTextString(m) } +func (*BiddingStrategyTypeEnum) ProtoMessage() {} +func (*BiddingStrategyTypeEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_bidding_strategy_type_59808af5df705879, []int{0} +} +func (m *BiddingStrategyTypeEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BiddingStrategyTypeEnum.Unmarshal(m, b) +} +func (m *BiddingStrategyTypeEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BiddingStrategyTypeEnum.Marshal(b, m, deterministic) +} +func (dst *BiddingStrategyTypeEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_BiddingStrategyTypeEnum.Merge(dst, src) +} +func (m *BiddingStrategyTypeEnum) XXX_Size() int { + return xxx_messageInfo_BiddingStrategyTypeEnum.Size(m) +} +func (m *BiddingStrategyTypeEnum) XXX_DiscardUnknown() { + xxx_messageInfo_BiddingStrategyTypeEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_BiddingStrategyTypeEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*BiddingStrategyTypeEnum)(nil), "google.ads.googleads.v0.enums.BiddingStrategyTypeEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.BiddingStrategyTypeEnum_BiddingStrategyType", BiddingStrategyTypeEnum_BiddingStrategyType_name, BiddingStrategyTypeEnum_BiddingStrategyType_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/bidding_strategy_type.proto", fileDescriptor_bidding_strategy_type_59808af5df705879) +} + +var fileDescriptor_bidding_strategy_type_59808af5df705879 = []byte{ + // 398 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x51, 0xcd, 0x6e, 0xd4, 0x30, + 0x18, 0x64, 0x53, 0x68, 0xc1, 0x5b, 0xc0, 0x18, 0x10, 0xe5, 0xb0, 0x07, 0xfa, 0x00, 0xce, 0x4a, + 0x9c, 0x10, 0x27, 0x6f, 0xf6, 0x23, 0x8d, 0xda, 0xd8, 0x56, 0xfe, 0x40, 0x55, 0x24, 0x2b, 0x25, + 0x91, 0xb5, 0x52, 0x37, 0x89, 0xd6, 0x69, 0xa5, 0x7d, 0x1d, 0xb8, 0xf1, 0x12, 0x9c, 0xe1, 0xa9, + 0x90, 0x93, 0xb4, 0xd2, 0x4a, 0x4b, 0x2f, 0xd1, 0x4c, 0xc6, 0xe3, 0xf9, 0xfc, 0x0d, 0xfa, 0xa4, + 0x9b, 0x46, 0x5f, 0x57, 0x6e, 0x51, 0x1a, 0x77, 0x80, 0x16, 0xdd, 0xce, 0xdd, 0xaa, 0xbe, 0x59, + 0x1b, 0xf7, 0x6a, 0x55, 0x96, 0xab, 0x5a, 0x2b, 0xd3, 0x6d, 0x8a, 0xae, 0xd2, 0x5b, 0xd5, 0x6d, + 0xdb, 0x8a, 0xb6, 0x9b, 0xa6, 0x6b, 0xc8, 0x6c, 0x38, 0x4f, 0x8b, 0xd2, 0xd0, 0x7b, 0x2b, 0xbd, + 0x9d, 0xd3, 0xde, 0x7a, 0xfa, 0xdb, 0x41, 0xef, 0x16, 0x83, 0x3d, 0x1e, 0xdd, 0xc9, 0xb6, 0xad, + 0xa0, 0xbe, 0x59, 0x9f, 0xfe, 0x74, 0xd0, 0xeb, 0x3d, 0x1a, 0x79, 0x89, 0xa6, 0x29, 0x8f, 0x25, + 0x78, 0xc1, 0x97, 0x00, 0x96, 0xf8, 0x11, 0x99, 0xa2, 0xa3, 0x94, 0x9f, 0x73, 0xf1, 0x95, 0xe3, + 0x09, 0xc1, 0xe8, 0x18, 0xf8, 0x19, 0xe3, 0x1e, 0x2c, 0x95, 0x27, 0x3d, 0xec, 0x90, 0x17, 0x08, + 0x85, 0x8c, 0xa7, 0xec, 0xa2, 0xe7, 0x07, 0x3b, 0x3c, 0xc4, 0x8f, 0x77, 0x78, 0x86, 0x9f, 0x93, + 0x13, 0xf4, 0x26, 0x64, 0xdf, 0x82, 0x30, 0xb8, 0x04, 0xe5, 0x09, 0x9e, 0x41, 0x14, 0x07, 0x82, + 0xc7, 0x18, 0x91, 0x19, 0x7a, 0xbf, 0x47, 0x51, 0x19, 0xbb, 0x48, 0x01, 0x4f, 0xc9, 0x5b, 0xf4, + 0x4a, 0x32, 0x1f, 0x94, 0xe0, 0xa0, 0x64, 0x24, 0x42, 0x91, 0xc0, 0x12, 0x3f, 0xb1, 0xf3, 0x4a, + 0x88, 0x3c, 0xe0, 0x49, 0x3f, 0xc0, 0xb1, 0x0d, 0x4c, 0x58, 0xe4, 0x83, 0xe5, 0x0c, 0x1f, 0xda, + 0xc0, 0x91, 0x8b, 0x34, 0x89, 0x18, 0x3f, 0x57, 0xf1, 0x19, 0x8b, 0x00, 0x1f, 0x59, 0xeb, 0xa8, + 0x44, 0x82, 0xc5, 0xf8, 0xa9, 0x7d, 0xdd, 0xf8, 0x23, 0x96, 0xc0, 0x97, 0xf8, 0xd9, 0xe2, 0xcf, + 0x04, 0x7d, 0xf8, 0xde, 0xac, 0xe9, 0x83, 0x7b, 0x5e, 0x9c, 0xec, 0x59, 0xa4, 0xb4, 0x05, 0xc9, + 0xc9, 0xe5, 0x62, 0xb4, 0xea, 0xe6, 0xba, 0xa8, 0x35, 0x6d, 0x36, 0xda, 0xd5, 0x55, 0xdd, 0xd7, + 0x77, 0xd7, 0x76, 0xbb, 0x32, 0xff, 0x29, 0xff, 0x73, 0xff, 0xfd, 0xe1, 0x1c, 0xf8, 0x8c, 0xfd, + 0x72, 0x66, 0xfe, 0x70, 0x15, 0x2b, 0x0d, 0x1d, 0xa0, 0x45, 0xd9, 0x9c, 0xda, 0x42, 0xcd, 0xdf, + 0x3b, 0x3d, 0x67, 0xa5, 0xc9, 0xef, 0xf5, 0x3c, 0x9b, 0xe7, 0xbd, 0x7e, 0x75, 0xd8, 0x87, 0x7e, + 0xfc, 0x17, 0x00, 0x00, 0xff, 0xff, 0x7e, 0x98, 0xc2, 0x78, 0x70, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/billing_setup_status.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/billing_setup_status.pb.go new file mode 100644 index 000000000..3b628d61e --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/billing_setup_status.pb.go @@ -0,0 +1,126 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/billing_setup_status.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// The possible statuses of a BillingSetup. +type BillingSetupStatusEnum_BillingSetupStatus int32 + +const ( + // Not specified. + BillingSetupStatusEnum_UNSPECIFIED BillingSetupStatusEnum_BillingSetupStatus = 0 + // Used for return value only. Represents value unknown in this version. + BillingSetupStatusEnum_UNKNOWN BillingSetupStatusEnum_BillingSetupStatus = 1 + // The billing setup is pending approval. + BillingSetupStatusEnum_PENDING BillingSetupStatusEnum_BillingSetupStatus = 2 + // The billing setup has been approved but the corresponding first budget + // has not. This can only occur for billing setups configured for monthly + // invoicing. + BillingSetupStatusEnum_APPROVED_HELD BillingSetupStatusEnum_BillingSetupStatus = 3 + // The billing setup has been approved. + BillingSetupStatusEnum_APPROVED BillingSetupStatusEnum_BillingSetupStatus = 4 + // The billing setup was cancelled by the user prior to approval. + BillingSetupStatusEnum_CANCELLED BillingSetupStatusEnum_BillingSetupStatus = 5 +) + +var BillingSetupStatusEnum_BillingSetupStatus_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "PENDING", + 3: "APPROVED_HELD", + 4: "APPROVED", + 5: "CANCELLED", +} +var BillingSetupStatusEnum_BillingSetupStatus_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "PENDING": 2, + "APPROVED_HELD": 3, + "APPROVED": 4, + "CANCELLED": 5, +} + +func (x BillingSetupStatusEnum_BillingSetupStatus) String() string { + return proto.EnumName(BillingSetupStatusEnum_BillingSetupStatus_name, int32(x)) +} +func (BillingSetupStatusEnum_BillingSetupStatus) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_billing_setup_status_668c8b84286f82ef, []int{0, 0} +} + +// Message describing BillingSetup statuses. +type BillingSetupStatusEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BillingSetupStatusEnum) Reset() { *m = BillingSetupStatusEnum{} } +func (m *BillingSetupStatusEnum) String() string { return proto.CompactTextString(m) } +func (*BillingSetupStatusEnum) ProtoMessage() {} +func (*BillingSetupStatusEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_billing_setup_status_668c8b84286f82ef, []int{0} +} +func (m *BillingSetupStatusEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BillingSetupStatusEnum.Unmarshal(m, b) +} +func (m *BillingSetupStatusEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BillingSetupStatusEnum.Marshal(b, m, deterministic) +} +func (dst *BillingSetupStatusEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_BillingSetupStatusEnum.Merge(dst, src) +} +func (m *BillingSetupStatusEnum) XXX_Size() int { + return xxx_messageInfo_BillingSetupStatusEnum.Size(m) +} +func (m *BillingSetupStatusEnum) XXX_DiscardUnknown() { + xxx_messageInfo_BillingSetupStatusEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_BillingSetupStatusEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*BillingSetupStatusEnum)(nil), "google.ads.googleads.v0.enums.BillingSetupStatusEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.BillingSetupStatusEnum_BillingSetupStatus", BillingSetupStatusEnum_BillingSetupStatus_name, BillingSetupStatusEnum_BillingSetupStatus_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/billing_setup_status.proto", fileDescriptor_billing_setup_status_668c8b84286f82ef) +} + +var fileDescriptor_billing_setup_status_668c8b84286f82ef = []byte{ + // 297 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0xdd, 0x4a, 0xc3, 0x30, + 0x1c, 0xc5, 0xed, 0xe6, 0x67, 0xe6, 0x30, 0xe6, 0x42, 0xaf, 0x76, 0xe1, 0x1e, 0x20, 0x2d, 0x78, + 0x23, 0x78, 0x95, 0xae, 0x71, 0x0e, 0x4b, 0x16, 0x2c, 0xab, 0x20, 0x85, 0xd2, 0xd9, 0x12, 0x0a, + 0x6d, 0x53, 0x96, 0x76, 0xef, 0xe0, 0x6b, 0x78, 0xe9, 0x93, 0x88, 0x4f, 0x25, 0x49, 0xed, 0x6e, + 0x86, 0xde, 0x84, 0x93, 0x9c, 0xfc, 0x92, 0xf3, 0x3f, 0xe0, 0x4e, 0x48, 0x29, 0x8a, 0xcc, 0x4e, + 0x52, 0x65, 0x77, 0x52, 0xab, 0xad, 0x63, 0x67, 0x55, 0x5b, 0x2a, 0x7b, 0x9d, 0x17, 0x45, 0x5e, + 0x89, 0x58, 0x65, 0x4d, 0x5b, 0xc7, 0xaa, 0x49, 0x9a, 0x56, 0xe1, 0x7a, 0x23, 0x1b, 0x89, 0x26, + 0xdd, 0x75, 0x9c, 0xa4, 0x0a, 0xef, 0x48, 0xbc, 0x75, 0xb0, 0x21, 0xa7, 0xef, 0x16, 0xb8, 0x72, + 0x3b, 0x3a, 0xd0, 0x70, 0x60, 0x58, 0x5a, 0xb5, 0xe5, 0x54, 0x02, 0xb4, 0xef, 0xa0, 0x0b, 0x30, + 0x5a, 0xb1, 0x80, 0xd3, 0xd9, 0xe2, 0x61, 0x41, 0x3d, 0x78, 0x80, 0x46, 0xe0, 0x64, 0xc5, 0x9e, + 0xd8, 0xf2, 0x85, 0x41, 0x4b, 0x6f, 0x38, 0x65, 0xde, 0x82, 0xcd, 0xe1, 0x00, 0x5d, 0x82, 0x31, + 0xe1, 0xfc, 0x79, 0x19, 0x52, 0x2f, 0x7e, 0xa4, 0xbe, 0x07, 0x87, 0xe8, 0x1c, 0x9c, 0xf6, 0x47, + 0xf0, 0x10, 0x8d, 0xc1, 0xd9, 0x8c, 0xb0, 0x19, 0xf5, 0x7d, 0xea, 0xc1, 0x23, 0xf7, 0xcb, 0x02, + 0x37, 0x6f, 0xb2, 0xc4, 0xff, 0x26, 0x76, 0xaf, 0xf7, 0x43, 0x71, 0x3d, 0x29, 0xb7, 0x5e, 0xdd, + 0x5f, 0x52, 0xc8, 0x22, 0xa9, 0x04, 0x96, 0x1b, 0x61, 0x8b, 0xac, 0x32, 0x3d, 0xf4, 0xad, 0xd5, + 0xb9, 0xfa, 0xa3, 0xc4, 0x7b, 0xb3, 0x7e, 0x0c, 0x86, 0x73, 0x42, 0x3e, 0x07, 0x93, 0x79, 0xf7, + 0x14, 0x49, 0x15, 0xee, 0xa4, 0x56, 0xa1, 0x83, 0x75, 0x35, 0xea, 0xbb, 0xf7, 0x23, 0x92, 0xaa, + 0x68, 0xe7, 0x47, 0xa1, 0x13, 0x19, 0x7f, 0x7d, 0x6c, 0x3e, 0xbd, 0xfd, 0x09, 0x00, 0x00, 0xff, + 0xff, 0x75, 0xae, 0xb1, 0x4e, 0xb8, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/budget_delivery_method.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/budget_delivery_method.pb.go new file mode 100644 index 000000000..c1cc4616c --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/budget_delivery_method.pb.go @@ -0,0 +1,118 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/budget_delivery_method.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Possible delivery methods of a Budget. +type BudgetDeliveryMethodEnum_BudgetDeliveryMethod int32 + +const ( + // Not specified. + BudgetDeliveryMethodEnum_UNSPECIFIED BudgetDeliveryMethodEnum_BudgetDeliveryMethod = 0 + // Used for return value only. Represents value unknown in this version. + BudgetDeliveryMethodEnum_UNKNOWN BudgetDeliveryMethodEnum_BudgetDeliveryMethod = 1 + // The budget server will throttle serving evenly across + // the entire time period. + BudgetDeliveryMethodEnum_STANDARD BudgetDeliveryMethodEnum_BudgetDeliveryMethod = 2 + // The budget server will not throttle serving, + // and ads will serve as fast as possible. + BudgetDeliveryMethodEnum_ACCELERATED BudgetDeliveryMethodEnum_BudgetDeliveryMethod = 3 +) + +var BudgetDeliveryMethodEnum_BudgetDeliveryMethod_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "STANDARD", + 3: "ACCELERATED", +} +var BudgetDeliveryMethodEnum_BudgetDeliveryMethod_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "STANDARD": 2, + "ACCELERATED": 3, +} + +func (x BudgetDeliveryMethodEnum_BudgetDeliveryMethod) String() string { + return proto.EnumName(BudgetDeliveryMethodEnum_BudgetDeliveryMethod_name, int32(x)) +} +func (BudgetDeliveryMethodEnum_BudgetDeliveryMethod) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_budget_delivery_method_20c0b5dc6c2cec81, []int{0, 0} +} + +// Message describing Budget delivery methods. A delivery method determines the +// rate at which the Budget is spent. +type BudgetDeliveryMethodEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BudgetDeliveryMethodEnum) Reset() { *m = BudgetDeliveryMethodEnum{} } +func (m *BudgetDeliveryMethodEnum) String() string { return proto.CompactTextString(m) } +func (*BudgetDeliveryMethodEnum) ProtoMessage() {} +func (*BudgetDeliveryMethodEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_budget_delivery_method_20c0b5dc6c2cec81, []int{0} +} +func (m *BudgetDeliveryMethodEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BudgetDeliveryMethodEnum.Unmarshal(m, b) +} +func (m *BudgetDeliveryMethodEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BudgetDeliveryMethodEnum.Marshal(b, m, deterministic) +} +func (dst *BudgetDeliveryMethodEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_BudgetDeliveryMethodEnum.Merge(dst, src) +} +func (m *BudgetDeliveryMethodEnum) XXX_Size() int { + return xxx_messageInfo_BudgetDeliveryMethodEnum.Size(m) +} +func (m *BudgetDeliveryMethodEnum) XXX_DiscardUnknown() { + xxx_messageInfo_BudgetDeliveryMethodEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_BudgetDeliveryMethodEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*BudgetDeliveryMethodEnum)(nil), "google.ads.googleads.v0.enums.BudgetDeliveryMethodEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.BudgetDeliveryMethodEnum_BudgetDeliveryMethod", BudgetDeliveryMethodEnum_BudgetDeliveryMethod_name, BudgetDeliveryMethodEnum_BudgetDeliveryMethod_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/budget_delivery_method.proto", fileDescriptor_budget_delivery_method_20c0b5dc6c2cec81) +} + +var fileDescriptor_budget_delivery_method_20c0b5dc6c2cec81 = []byte{ + // 276 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x4a, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xbc, + 0xd2, 0xdc, 0x62, 0xfd, 0xa4, 0xd2, 0x94, 0xf4, 0xd4, 0x92, 0xf8, 0x94, 0xd4, 0x9c, 0xcc, 0xb2, + 0xd4, 0xa2, 0xca, 0xf8, 0xdc, 0xd4, 0x92, 0x8c, 0xfc, 0x14, 0xbd, 0x82, 0xa2, 0xfc, 0x92, 0x7c, + 0x21, 0x59, 0x88, 0x06, 0xbd, 0xc4, 0x94, 0x62, 0x3d, 0xb8, 0x5e, 0xbd, 0x32, 0x03, 0x3d, 0xb0, + 0x5e, 0xa5, 0x7c, 0x2e, 0x09, 0x27, 0xb0, 0x76, 0x17, 0xa8, 0x6e, 0x5f, 0xb0, 0x66, 0xd7, 0xbc, + 0xd2, 0x5c, 0xa5, 0x60, 0x2e, 0x11, 0x6c, 0x72, 0x42, 0xfc, 0x5c, 0xdc, 0xa1, 0x7e, 0xc1, 0x01, + 0xae, 0xce, 0x9e, 0x6e, 0x9e, 0xae, 0x2e, 0x02, 0x0c, 0x42, 0xdc, 0x5c, 0xec, 0xa1, 0x7e, 0xde, + 0x7e, 0xfe, 0xe1, 0x7e, 0x02, 0x8c, 0x42, 0x3c, 0x5c, 0x1c, 0xc1, 0x21, 0x8e, 0x7e, 0x2e, 0x8e, + 0x41, 0x2e, 0x02, 0x4c, 0x20, 0xb5, 0x8e, 0xce, 0xce, 0xae, 0x3e, 0xae, 0x41, 0x8e, 0x21, 0xae, + 0x2e, 0x02, 0xcc, 0x4e, 0xa7, 0x18, 0xb9, 0x14, 0x93, 0xf3, 0x73, 0xf5, 0xf0, 0x3a, 0xcb, 0x49, + 0x12, 0x9b, 0xc5, 0x01, 0x20, 0x0f, 0x05, 0x30, 0x46, 0x39, 0x41, 0xf5, 0xa6, 0xe7, 0xe7, 0x24, + 0xe6, 0xa5, 0xeb, 0xe5, 0x17, 0xa5, 0xeb, 0xa7, 0xa7, 0xe6, 0x81, 0xbd, 0x0b, 0x0b, 0x9e, 0x82, + 0xcc, 0x62, 0x1c, 0xa1, 0x65, 0x0d, 0x26, 0x17, 0x31, 0x31, 0xbb, 0x3b, 0x3a, 0xae, 0x62, 0x92, + 0x75, 0x87, 0x18, 0xe5, 0x98, 0x52, 0xac, 0x07, 0x61, 0x82, 0x58, 0x61, 0x06, 0x7a, 0xa0, 0x00, + 0x28, 0x3e, 0x05, 0x93, 0x8f, 0x71, 0x4c, 0x29, 0x8e, 0x81, 0xcb, 0xc7, 0x84, 0x19, 0xc4, 0x80, + 0xe5, 0x93, 0xd8, 0xc0, 0x96, 0x1a, 0x03, 0x02, 0x00, 0x00, 0xff, 0xff, 0x60, 0x4f, 0x2e, 0xcb, + 0xa1, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/budget_status.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/budget_status.pb.go new file mode 100644 index 000000000..92029d50a --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/budget_status.pb.go @@ -0,0 +1,113 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/budget_status.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Possible statuses of a Budget. +type BudgetStatusEnum_BudgetStatus int32 + +const ( + // Not specified. + BudgetStatusEnum_UNSPECIFIED BudgetStatusEnum_BudgetStatus = 0 + // Used for return value only. Represents value unknown in this version. + BudgetStatusEnum_UNKNOWN BudgetStatusEnum_BudgetStatus = 1 + // Budget is enabled. + BudgetStatusEnum_ENABLED BudgetStatusEnum_BudgetStatus = 2 + // Budget is removed. + BudgetStatusEnum_REMOVED BudgetStatusEnum_BudgetStatus = 3 +) + +var BudgetStatusEnum_BudgetStatus_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "ENABLED", + 3: "REMOVED", +} +var BudgetStatusEnum_BudgetStatus_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "ENABLED": 2, + "REMOVED": 3, +} + +func (x BudgetStatusEnum_BudgetStatus) String() string { + return proto.EnumName(BudgetStatusEnum_BudgetStatus_name, int32(x)) +} +func (BudgetStatusEnum_BudgetStatus) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_budget_status_b79aada4454e9811, []int{0, 0} +} + +// Message describing a Budget status +type BudgetStatusEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BudgetStatusEnum) Reset() { *m = BudgetStatusEnum{} } +func (m *BudgetStatusEnum) String() string { return proto.CompactTextString(m) } +func (*BudgetStatusEnum) ProtoMessage() {} +func (*BudgetStatusEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_budget_status_b79aada4454e9811, []int{0} +} +func (m *BudgetStatusEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BudgetStatusEnum.Unmarshal(m, b) +} +func (m *BudgetStatusEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BudgetStatusEnum.Marshal(b, m, deterministic) +} +func (dst *BudgetStatusEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_BudgetStatusEnum.Merge(dst, src) +} +func (m *BudgetStatusEnum) XXX_Size() int { + return xxx_messageInfo_BudgetStatusEnum.Size(m) +} +func (m *BudgetStatusEnum) XXX_DiscardUnknown() { + xxx_messageInfo_BudgetStatusEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_BudgetStatusEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*BudgetStatusEnum)(nil), "google.ads.googleads.v0.enums.BudgetStatusEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.BudgetStatusEnum_BudgetStatus", BudgetStatusEnum_BudgetStatus_name, BudgetStatusEnum_BudgetStatus_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/budget_status.proto", fileDescriptor_budget_status_b79aada4454e9811) +} + +var fileDescriptor_budget_status_b79aada4454e9811 = []byte{ + // 256 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x32, 0x4c, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xbc, + 0xd2, 0xdc, 0x62, 0xfd, 0xa4, 0xd2, 0x94, 0xf4, 0xd4, 0x92, 0xf8, 0xe2, 0x92, 0xc4, 0x92, 0xd2, + 0x62, 0xbd, 0x82, 0xa2, 0xfc, 0x92, 0x7c, 0x21, 0x59, 0x88, 0x3a, 0xbd, 0xc4, 0x94, 0x62, 0x3d, + 0xb8, 0x16, 0xbd, 0x32, 0x03, 0x3d, 0xb0, 0x16, 0xa5, 0x28, 0x2e, 0x01, 0x27, 0xb0, 0xae, 0x60, + 0xb0, 0x26, 0xd7, 0xbc, 0xd2, 0x5c, 0x25, 0x37, 0x2e, 0x1e, 0x64, 0x31, 0x21, 0x7e, 0x2e, 0xee, + 0x50, 0xbf, 0xe0, 0x00, 0x57, 0x67, 0x4f, 0x37, 0x4f, 0x57, 0x17, 0x01, 0x06, 0x21, 0x6e, 0x2e, + 0xf6, 0x50, 0x3f, 0x6f, 0x3f, 0xff, 0x70, 0x3f, 0x01, 0x46, 0x10, 0xc7, 0xd5, 0xcf, 0xd1, 0xc9, + 0xc7, 0xd5, 0x45, 0x80, 0x09, 0xc4, 0x09, 0x72, 0xf5, 0xf5, 0x0f, 0x73, 0x75, 0x11, 0x60, 0x76, + 0x3a, 0xc4, 0xc8, 0xa5, 0x98, 0x9c, 0x9f, 0xab, 0x87, 0xd7, 0x05, 0x4e, 0x82, 0xc8, 0x76, 0x05, + 0x80, 0xdc, 0x1c, 0xc0, 0x18, 0xe5, 0x04, 0xd5, 0x93, 0x9e, 0x9f, 0x93, 0x98, 0x97, 0xae, 0x97, + 0x5f, 0x94, 0xae, 0x9f, 0x9e, 0x9a, 0x07, 0xf6, 0x11, 0xcc, 0xe3, 0x05, 0x99, 0xc5, 0x38, 0xc2, + 0xc1, 0x1a, 0x4c, 0x2e, 0x62, 0x62, 0x76, 0x77, 0x74, 0x5c, 0xc5, 0x24, 0xeb, 0x0e, 0x31, 0xca, + 0x31, 0xa5, 0x58, 0x0f, 0xc2, 0x04, 0xb1, 0xc2, 0x0c, 0xf4, 0x40, 0x7e, 0x2d, 0x3e, 0x05, 0x93, + 0x8f, 0x71, 0x4c, 0x29, 0x8e, 0x81, 0xcb, 0xc7, 0x84, 0x19, 0xc4, 0x80, 0xe5, 0x93, 0xd8, 0xc0, + 0x96, 0x1a, 0x03, 0x02, 0x00, 0x00, 0xff, 0xff, 0xf4, 0xbd, 0x23, 0x9e, 0x7b, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/call_conversion_reporting_state.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/call_conversion_reporting_state.pb.go new file mode 100644 index 000000000..de6dddcc9 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/call_conversion_reporting_state.pb.go @@ -0,0 +1,125 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/call_conversion_reporting_state.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Possible data types for a call conversion action state. +type CallConversionReportingStateEnum_CallConversionReportingState int32 + +const ( + // Not specified. + CallConversionReportingStateEnum_UNSPECIFIED CallConversionReportingStateEnum_CallConversionReportingState = 0 + // Used for return value only. Represents value unknown in this version. + CallConversionReportingStateEnum_UNKNOWN CallConversionReportingStateEnum_CallConversionReportingState = 1 + // Call conversion action is disabled. + CallConversionReportingStateEnum_DISABLED CallConversionReportingStateEnum_CallConversionReportingState = 2 + // Call conversion action will use call conversion type set at the + // account level. + CallConversionReportingStateEnum_USE_ACCOUNT_LEVEL_CALL_CONVERSION_ACTION CallConversionReportingStateEnum_CallConversionReportingState = 3 + // Call conversion action will use call conversion type set at the resource + // (call only ads/call extensions) level. + CallConversionReportingStateEnum_USE_RESOURCE_LEVEL_CALL_CONVERSION_ACTION CallConversionReportingStateEnum_CallConversionReportingState = 4 +) + +var CallConversionReportingStateEnum_CallConversionReportingState_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "DISABLED", + 3: "USE_ACCOUNT_LEVEL_CALL_CONVERSION_ACTION", + 4: "USE_RESOURCE_LEVEL_CALL_CONVERSION_ACTION", +} +var CallConversionReportingStateEnum_CallConversionReportingState_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "DISABLED": 2, + "USE_ACCOUNT_LEVEL_CALL_CONVERSION_ACTION": 3, + "USE_RESOURCE_LEVEL_CALL_CONVERSION_ACTION": 4, +} + +func (x CallConversionReportingStateEnum_CallConversionReportingState) String() string { + return proto.EnumName(CallConversionReportingStateEnum_CallConversionReportingState_name, int32(x)) +} +func (CallConversionReportingStateEnum_CallConversionReportingState) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_call_conversion_reporting_state_7cdcaa6987dc2f7b, []int{0, 0} +} + +// Container for enum describing possible data types for call conversion +// reporting state. +type CallConversionReportingStateEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CallConversionReportingStateEnum) Reset() { *m = CallConversionReportingStateEnum{} } +func (m *CallConversionReportingStateEnum) String() string { return proto.CompactTextString(m) } +func (*CallConversionReportingStateEnum) ProtoMessage() {} +func (*CallConversionReportingStateEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_call_conversion_reporting_state_7cdcaa6987dc2f7b, []int{0} +} +func (m *CallConversionReportingStateEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CallConversionReportingStateEnum.Unmarshal(m, b) +} +func (m *CallConversionReportingStateEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CallConversionReportingStateEnum.Marshal(b, m, deterministic) +} +func (dst *CallConversionReportingStateEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_CallConversionReportingStateEnum.Merge(dst, src) +} +func (m *CallConversionReportingStateEnum) XXX_Size() int { + return xxx_messageInfo_CallConversionReportingStateEnum.Size(m) +} +func (m *CallConversionReportingStateEnum) XXX_DiscardUnknown() { + xxx_messageInfo_CallConversionReportingStateEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_CallConversionReportingStateEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*CallConversionReportingStateEnum)(nil), "google.ads.googleads.v0.enums.CallConversionReportingStateEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.CallConversionReportingStateEnum_CallConversionReportingState", CallConversionReportingStateEnum_CallConversionReportingState_name, CallConversionReportingStateEnum_CallConversionReportingState_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/call_conversion_reporting_state.proto", fileDescriptor_call_conversion_reporting_state_7cdcaa6987dc2f7b) +} + +var fileDescriptor_call_conversion_reporting_state_7cdcaa6987dc2f7b = []byte{ + // 328 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x91, 0x41, 0x4b, 0xfb, 0x30, + 0x18, 0xc6, 0xff, 0xdd, 0xfe, 0xa8, 0x64, 0x82, 0xa5, 0x67, 0x07, 0x6e, 0x27, 0x05, 0x4d, 0x0b, + 0x1e, 0x3d, 0xa5, 0x59, 0x1c, 0xc5, 0x92, 0x8e, 0x76, 0xad, 0x20, 0x85, 0x50, 0xd7, 0x12, 0x06, + 0x59, 0x32, 0x9a, 0x6e, 0x1f, 0xc8, 0x8b, 0xe0, 0x47, 0x11, 0x4f, 0x7e, 0x22, 0x49, 0xeb, 0x76, + 0xb3, 0x97, 0xf0, 0xc0, 0xf3, 0xe4, 0xf7, 0xf2, 0x3e, 0x2f, 0xc0, 0x5c, 0x29, 0x2e, 0x2a, 0xb7, + 0x28, 0xb5, 0xdb, 0x49, 0xa3, 0xf6, 0x9e, 0x5b, 0xc9, 0xdd, 0x46, 0xbb, 0xab, 0x42, 0x08, 0xb6, + 0x52, 0x72, 0x5f, 0xd5, 0x7a, 0xad, 0x24, 0xab, 0xab, 0xad, 0xaa, 0x9b, 0xb5, 0xe4, 0x4c, 0x37, + 0x45, 0x53, 0xc1, 0x6d, 0xad, 0x1a, 0xe5, 0x8c, 0xbb, 0x9f, 0xb0, 0x28, 0x35, 0x3c, 0x42, 0xe0, + 0xde, 0x83, 0x2d, 0x64, 0xfa, 0x65, 0x81, 0x2b, 0x5c, 0x08, 0x81, 0x8f, 0x9c, 0xf8, 0x80, 0x49, + 0x0c, 0x85, 0xc8, 0xdd, 0x66, 0xfa, 0x6e, 0x81, 0xcb, 0xbe, 0x90, 0x73, 0x01, 0x46, 0x29, 0x4d, + 0x16, 0x04, 0x07, 0x8f, 0x01, 0x99, 0xd9, 0xff, 0x9c, 0x11, 0x38, 0x4d, 0xe9, 0x13, 0x8d, 0x9e, + 0xa9, 0x6d, 0x39, 0xe7, 0xe0, 0x6c, 0x16, 0x24, 0xc8, 0x0f, 0xc9, 0xcc, 0x1e, 0x38, 0xb7, 0xe0, + 0x3a, 0x4d, 0x08, 0x43, 0x18, 0x47, 0x29, 0x5d, 0xb2, 0x90, 0x64, 0x24, 0x64, 0x18, 0x85, 0x21, + 0xc3, 0x11, 0xcd, 0x48, 0x9c, 0x04, 0x11, 0x65, 0x08, 0x2f, 0x83, 0x88, 0xda, 0x43, 0xe7, 0x0e, + 0xdc, 0x98, 0x74, 0x4c, 0x92, 0x28, 0x8d, 0x31, 0xe9, 0x8f, 0xff, 0xf7, 0xbf, 0x2d, 0x30, 0x59, + 0xa9, 0x0d, 0xec, 0x5d, 0xda, 0x9f, 0xf4, 0x2d, 0xb3, 0x30, 0xb5, 0x2d, 0xac, 0x17, 0xff, 0x97, + 0xc1, 0x95, 0x28, 0x24, 0x87, 0xaa, 0xe6, 0x2e, 0xaf, 0x64, 0x5b, 0xea, 0xe1, 0x1a, 0xdb, 0xb5, + 0xfe, 0xe3, 0x38, 0x0f, 0xed, 0xfb, 0x36, 0x18, 0xce, 0x11, 0xfa, 0x18, 0x8c, 0xe7, 0x1d, 0x0a, + 0x95, 0x1a, 0x76, 0xd2, 0xa8, 0xcc, 0x83, 0xa6, 0x5d, 0xfd, 0x79, 0xf0, 0x73, 0x54, 0xea, 0xfc, + 0xe8, 0xe7, 0x99, 0x97, 0xb7, 0xfe, 0xeb, 0x49, 0x3b, 0xf4, 0xfe, 0x27, 0x00, 0x00, 0xff, 0xff, + 0xc1, 0xfc, 0x20, 0x51, 0x10, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/call_placeholder_field.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/call_placeholder_field.pb.go new file mode 100644 index 000000000..a64f4e340 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/call_placeholder_field.pb.go @@ -0,0 +1,137 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/call_placeholder_field.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Possible values for Call placeholder fields. +type CallPlaceholderFieldEnum_CallPlaceholderField int32 + +const ( + // Not specified. + CallPlaceholderFieldEnum_UNSPECIFIED CallPlaceholderFieldEnum_CallPlaceholderField = 0 + // Used for return value only. Represents value unknown in this version. + CallPlaceholderFieldEnum_UNKNOWN CallPlaceholderFieldEnum_CallPlaceholderField = 1 + // Data Type: STRING. The advertiser's phone number to append to the ad. + CallPlaceholderFieldEnum_PHONE_NUMBER CallPlaceholderFieldEnum_CallPlaceholderField = 2 + // Data Type: STRING. Uppercase two-letter country code of the advertiser's + // phone number. + CallPlaceholderFieldEnum_COUNTRY_CODE CallPlaceholderFieldEnum_CallPlaceholderField = 3 + // Data Type: BOOLEAN. Indicates whether call tracking is enabled. Default: + // true. + CallPlaceholderFieldEnum_TRACKED CallPlaceholderFieldEnum_CallPlaceholderField = 4 + // Data Type: INT64. The ID of an AdCallMetricsConversion object. This + // object contains the phoneCallDurationfield which is the minimum duration + // (in seconds) of a call to be considered a conversion. + CallPlaceholderFieldEnum_CONVERSION_TYPE_ID CallPlaceholderFieldEnum_CallPlaceholderField = 5 + // Data Type: STRING. Indicates whether this call extension uses its own + // call conversion setting or follows the account level setting. + // Valid values are: USE_ACCOUNT_LEVEL_CALL_CONVERSION_ACTION and + // USE_RESOURCE_LEVEL_CALL_CONVERSION_ACTION. + CallPlaceholderFieldEnum_CONVERSION_REPORTING_STATE CallPlaceholderFieldEnum_CallPlaceholderField = 6 +) + +var CallPlaceholderFieldEnum_CallPlaceholderField_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "PHONE_NUMBER", + 3: "COUNTRY_CODE", + 4: "TRACKED", + 5: "CONVERSION_TYPE_ID", + 6: "CONVERSION_REPORTING_STATE", +} +var CallPlaceholderFieldEnum_CallPlaceholderField_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "PHONE_NUMBER": 2, + "COUNTRY_CODE": 3, + "TRACKED": 4, + "CONVERSION_TYPE_ID": 5, + "CONVERSION_REPORTING_STATE": 6, +} + +func (x CallPlaceholderFieldEnum_CallPlaceholderField) String() string { + return proto.EnumName(CallPlaceholderFieldEnum_CallPlaceholderField_name, int32(x)) +} +func (CallPlaceholderFieldEnum_CallPlaceholderField) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_call_placeholder_field_1efb02a4392b5d2d, []int{0, 0} +} + +// Values for Call placeholder fields. +type CallPlaceholderFieldEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CallPlaceholderFieldEnum) Reset() { *m = CallPlaceholderFieldEnum{} } +func (m *CallPlaceholderFieldEnum) String() string { return proto.CompactTextString(m) } +func (*CallPlaceholderFieldEnum) ProtoMessage() {} +func (*CallPlaceholderFieldEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_call_placeholder_field_1efb02a4392b5d2d, []int{0} +} +func (m *CallPlaceholderFieldEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CallPlaceholderFieldEnum.Unmarshal(m, b) +} +func (m *CallPlaceholderFieldEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CallPlaceholderFieldEnum.Marshal(b, m, deterministic) +} +func (dst *CallPlaceholderFieldEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_CallPlaceholderFieldEnum.Merge(dst, src) +} +func (m *CallPlaceholderFieldEnum) XXX_Size() int { + return xxx_messageInfo_CallPlaceholderFieldEnum.Size(m) +} +func (m *CallPlaceholderFieldEnum) XXX_DiscardUnknown() { + xxx_messageInfo_CallPlaceholderFieldEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_CallPlaceholderFieldEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*CallPlaceholderFieldEnum)(nil), "google.ads.googleads.v0.enums.CallPlaceholderFieldEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.CallPlaceholderFieldEnum_CallPlaceholderField", CallPlaceholderFieldEnum_CallPlaceholderField_name, CallPlaceholderFieldEnum_CallPlaceholderField_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/call_placeholder_field.proto", fileDescriptor_call_placeholder_field_1efb02a4392b5d2d) +} + +var fileDescriptor_call_placeholder_field_1efb02a4392b5d2d = []byte{ + // 332 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0xdf, 0x4a, 0xc3, 0x30, + 0x14, 0xc6, 0xed, 0xa6, 0x13, 0x32, 0xc1, 0x50, 0x44, 0x54, 0x98, 0xe0, 0x1e, 0x20, 0x2d, 0x78, + 0xa7, 0x57, 0xfd, 0x93, 0xcd, 0x32, 0x4c, 0x42, 0xd7, 0x4e, 0x26, 0x85, 0x50, 0xd7, 0x5a, 0x07, + 0x59, 0x33, 0x16, 0xb7, 0xb7, 0xf1, 0xc6, 0x4b, 0x1f, 0xc1, 0x47, 0xd8, 0x53, 0x49, 0x5a, 0x37, + 0xbd, 0x98, 0xde, 0x84, 0x8f, 0xf3, 0xf1, 0xcb, 0xe1, 0xfc, 0xc0, 0x4d, 0x21, 0x65, 0x21, 0x72, + 0x2b, 0xcd, 0x94, 0x55, 0x47, 0x9d, 0x56, 0xb6, 0x95, 0x97, 0xcb, 0x99, 0xb2, 0x26, 0xa9, 0x10, + 0x7c, 0x2e, 0xd2, 0x49, 0xfe, 0x22, 0x45, 0x96, 0x2f, 0xf8, 0xf3, 0x34, 0x17, 0x19, 0x9a, 0x2f, + 0xe4, 0xab, 0x34, 0x3b, 0x35, 0x80, 0xd2, 0x4c, 0xa1, 0x2d, 0x8b, 0x56, 0x36, 0xaa, 0xd8, 0xee, + 0xa7, 0x01, 0xce, 0xbc, 0x54, 0x08, 0xf6, 0x83, 0xf7, 0x34, 0x8d, 0xcb, 0xe5, 0xac, 0xfb, 0x66, + 0x80, 0x93, 0x5d, 0xa5, 0x79, 0x0c, 0xda, 0x31, 0x19, 0x32, 0xec, 0x05, 0xbd, 0x00, 0xfb, 0x70, + 0xcf, 0x6c, 0x83, 0xc3, 0x98, 0x0c, 0x08, 0x7d, 0x20, 0xd0, 0x30, 0x21, 0x38, 0x62, 0x77, 0x94, + 0x60, 0x4e, 0xe2, 0x7b, 0x17, 0x87, 0xb0, 0xa1, 0x27, 0x1e, 0x8d, 0x49, 0x14, 0x8e, 0xb9, 0x47, + 0x7d, 0x0c, 0x9b, 0x1a, 0x88, 0x42, 0xc7, 0x1b, 0x60, 0x1f, 0xee, 0x9b, 0xa7, 0xc0, 0xf4, 0x28, + 0x19, 0xe1, 0x70, 0x18, 0x50, 0xc2, 0xa3, 0x31, 0xc3, 0x3c, 0xf0, 0xe1, 0x81, 0x79, 0x09, 0x2e, + 0x7e, 0xcd, 0x43, 0xcc, 0x68, 0x18, 0x05, 0xa4, 0xcf, 0x87, 0x91, 0x13, 0x61, 0xd8, 0x72, 0xd7, + 0x06, 0xb8, 0x9a, 0xc8, 0x19, 0xfa, 0xf7, 0x44, 0xf7, 0x7c, 0xd7, 0x09, 0x4c, 0xcb, 0x61, 0xc6, + 0xa3, 0xfb, 0xcd, 0x16, 0x52, 0xa4, 0x65, 0x81, 0xe4, 0xa2, 0xb0, 0x8a, 0xbc, 0xac, 0xd4, 0x6d, + 0x54, 0xcf, 0xa7, 0xea, 0x0f, 0xf3, 0xb7, 0xd5, 0xfb, 0xde, 0x68, 0xf6, 0x1d, 0xe7, 0xa3, 0xd1, + 0xe9, 0xd7, 0x5f, 0x39, 0x99, 0x42, 0x75, 0xd4, 0x69, 0x64, 0x23, 0xed, 0x52, 0xad, 0x37, 0x7d, + 0xe2, 0x64, 0x2a, 0xd9, 0xf6, 0xc9, 0xc8, 0x4e, 0xaa, 0xfe, 0xa9, 0x55, 0x2d, 0xbd, 0xfe, 0x0a, + 0x00, 0x00, 0xff, 0xff, 0xfb, 0xf5, 0x10, 0x42, 0xed, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/callout_placeholder_field.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/callout_placeholder_field.pb.go new file mode 100644 index 000000000..a2efc2256 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/callout_placeholder_field.pb.go @@ -0,0 +1,110 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/callout_placeholder_field.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Possible values for Callout placeholder fields. +type CalloutPlaceholderFieldEnum_CalloutPlaceholderField int32 + +const ( + // Not specified. + CalloutPlaceholderFieldEnum_UNSPECIFIED CalloutPlaceholderFieldEnum_CalloutPlaceholderField = 0 + // Used for return value only. Represents value unknown in this version. + CalloutPlaceholderFieldEnum_UNKNOWN CalloutPlaceholderFieldEnum_CalloutPlaceholderField = 1 + // Data Type: STRING. Callout text. + CalloutPlaceholderFieldEnum_CALLOUT_TEXT CalloutPlaceholderFieldEnum_CalloutPlaceholderField = 2 +) + +var CalloutPlaceholderFieldEnum_CalloutPlaceholderField_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "CALLOUT_TEXT", +} +var CalloutPlaceholderFieldEnum_CalloutPlaceholderField_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "CALLOUT_TEXT": 2, +} + +func (x CalloutPlaceholderFieldEnum_CalloutPlaceholderField) String() string { + return proto.EnumName(CalloutPlaceholderFieldEnum_CalloutPlaceholderField_name, int32(x)) +} +func (CalloutPlaceholderFieldEnum_CalloutPlaceholderField) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_callout_placeholder_field_4df33348e5fa305d, []int{0, 0} +} + +// Values for Callout placeholder fields. +type CalloutPlaceholderFieldEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CalloutPlaceholderFieldEnum) Reset() { *m = CalloutPlaceholderFieldEnum{} } +func (m *CalloutPlaceholderFieldEnum) String() string { return proto.CompactTextString(m) } +func (*CalloutPlaceholderFieldEnum) ProtoMessage() {} +func (*CalloutPlaceholderFieldEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_callout_placeholder_field_4df33348e5fa305d, []int{0} +} +func (m *CalloutPlaceholderFieldEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CalloutPlaceholderFieldEnum.Unmarshal(m, b) +} +func (m *CalloutPlaceholderFieldEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CalloutPlaceholderFieldEnum.Marshal(b, m, deterministic) +} +func (dst *CalloutPlaceholderFieldEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_CalloutPlaceholderFieldEnum.Merge(dst, src) +} +func (m *CalloutPlaceholderFieldEnum) XXX_Size() int { + return xxx_messageInfo_CalloutPlaceholderFieldEnum.Size(m) +} +func (m *CalloutPlaceholderFieldEnum) XXX_DiscardUnknown() { + xxx_messageInfo_CalloutPlaceholderFieldEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_CalloutPlaceholderFieldEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*CalloutPlaceholderFieldEnum)(nil), "google.ads.googleads.v0.enums.CalloutPlaceholderFieldEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.CalloutPlaceholderFieldEnum_CalloutPlaceholderField", CalloutPlaceholderFieldEnum_CalloutPlaceholderField_name, CalloutPlaceholderFieldEnum_CalloutPlaceholderField_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/callout_placeholder_field.proto", fileDescriptor_callout_placeholder_field_4df33348e5fa305d) +} + +var fileDescriptor_callout_placeholder_field_4df33348e5fa305d = []byte{ + // 268 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x4d, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xbc, + 0xd2, 0xdc, 0x62, 0xfd, 0xe4, 0xc4, 0x9c, 0x9c, 0xfc, 0xd2, 0x92, 0xf8, 0x82, 0x9c, 0xc4, 0xe4, + 0xd4, 0x8c, 0xfc, 0x9c, 0x94, 0xd4, 0xa2, 0xf8, 0xb4, 0xcc, 0xd4, 0x9c, 0x14, 0xbd, 0x82, 0xa2, + 0xfc, 0x92, 0x7c, 0x21, 0x59, 0x88, 0x1e, 0xbd, 0xc4, 0x94, 0x62, 0x3d, 0xb8, 0x76, 0xbd, 0x32, + 0x03, 0x3d, 0xb0, 0x76, 0xa5, 0x0c, 0x2e, 0x69, 0x67, 0x88, 0x09, 0x01, 0x08, 0x03, 0xdc, 0x40, + 0xfa, 0x5d, 0xf3, 0x4a, 0x73, 0x95, 0x3c, 0xb9, 0xc4, 0x71, 0x48, 0x0b, 0xf1, 0x73, 0x71, 0x87, + 0xfa, 0x05, 0x07, 0xb8, 0x3a, 0x7b, 0xba, 0x79, 0xba, 0xba, 0x08, 0x30, 0x08, 0x71, 0x73, 0xb1, + 0x87, 0xfa, 0x79, 0xfb, 0xf9, 0x87, 0xfb, 0x09, 0x30, 0x0a, 0x09, 0x70, 0xf1, 0x38, 0x3b, 0xfa, + 0xf8, 0xf8, 0x87, 0x86, 0xc4, 0x87, 0xb8, 0x46, 0x84, 0x08, 0x30, 0x39, 0x9d, 0x65, 0xe4, 0x52, + 0x4c, 0xce, 0xcf, 0xd5, 0xc3, 0xeb, 0x1e, 0x27, 0x19, 0x1c, 0xd6, 0x05, 0x80, 0x3c, 0x13, 0xc0, + 0x18, 0xe5, 0x04, 0xd5, 0x9e, 0x9e, 0x9f, 0x93, 0x98, 0x97, 0xae, 0x97, 0x5f, 0x94, 0xae, 0x9f, + 0x9e, 0x9a, 0x07, 0xf6, 0x2a, 0x2c, 0x74, 0x0a, 0x32, 0x8b, 0x71, 0x04, 0x96, 0x35, 0x98, 0x5c, + 0xc4, 0xc4, 0xec, 0xee, 0xe8, 0xb8, 0x8a, 0x49, 0xd6, 0x1d, 0x62, 0x94, 0x63, 0x4a, 0xb1, 0x1e, + 0x84, 0x09, 0x62, 0x85, 0x19, 0xe8, 0x81, 0x7c, 0x5e, 0x7c, 0x0a, 0x26, 0x1f, 0xe3, 0x98, 0x52, + 0x1c, 0x03, 0x97, 0x8f, 0x09, 0x33, 0x88, 0x01, 0xcb, 0x27, 0xb1, 0x81, 0x2d, 0x35, 0x06, 0x04, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x10, 0x36, 0x00, 0xa0, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/campaign_group_status.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/campaign_group_status.pb.go new file mode 100644 index 000000000..916822704 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/campaign_group_status.pb.go @@ -0,0 +1,114 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/campaign_group_status.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Possible statuses of a CampaignGroup. +type CampaignGroupStatusEnum_CampaignGroupStatus int32 + +const ( + // Not specified. + CampaignGroupStatusEnum_UNSPECIFIED CampaignGroupStatusEnum_CampaignGroupStatus = 0 + // Used for return value only. Represents value unknown in this version. + CampaignGroupStatusEnum_UNKNOWN CampaignGroupStatusEnum_CampaignGroupStatus = 1 + // Campaign group is currently serving ads depending on budget information. + CampaignGroupStatusEnum_ENABLED CampaignGroupStatusEnum_CampaignGroupStatus = 2 + // Campaign group has been removed. + CampaignGroupStatusEnum_REMOVED CampaignGroupStatusEnum_CampaignGroupStatus = 4 +) + +var CampaignGroupStatusEnum_CampaignGroupStatus_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "ENABLED", + 4: "REMOVED", +} +var CampaignGroupStatusEnum_CampaignGroupStatus_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "ENABLED": 2, + "REMOVED": 4, +} + +func (x CampaignGroupStatusEnum_CampaignGroupStatus) String() string { + return proto.EnumName(CampaignGroupStatusEnum_CampaignGroupStatus_name, int32(x)) +} +func (CampaignGroupStatusEnum_CampaignGroupStatus) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_campaign_group_status_0530aace33372d44, []int{0, 0} +} + +// Message describing CampaignGroup statuses. +type CampaignGroupStatusEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CampaignGroupStatusEnum) Reset() { *m = CampaignGroupStatusEnum{} } +func (m *CampaignGroupStatusEnum) String() string { return proto.CompactTextString(m) } +func (*CampaignGroupStatusEnum) ProtoMessage() {} +func (*CampaignGroupStatusEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_group_status_0530aace33372d44, []int{0} +} +func (m *CampaignGroupStatusEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CampaignGroupStatusEnum.Unmarshal(m, b) +} +func (m *CampaignGroupStatusEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CampaignGroupStatusEnum.Marshal(b, m, deterministic) +} +func (dst *CampaignGroupStatusEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_CampaignGroupStatusEnum.Merge(dst, src) +} +func (m *CampaignGroupStatusEnum) XXX_Size() int { + return xxx_messageInfo_CampaignGroupStatusEnum.Size(m) +} +func (m *CampaignGroupStatusEnum) XXX_DiscardUnknown() { + xxx_messageInfo_CampaignGroupStatusEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_CampaignGroupStatusEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*CampaignGroupStatusEnum)(nil), "google.ads.googleads.v0.enums.CampaignGroupStatusEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.CampaignGroupStatusEnum_CampaignGroupStatus", CampaignGroupStatusEnum_CampaignGroupStatus_name, CampaignGroupStatusEnum_CampaignGroupStatus_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/campaign_group_status.proto", fileDescriptor_campaign_group_status_0530aace33372d44) +} + +var fileDescriptor_campaign_group_status_0530aace33372d44 = []byte{ + // 267 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x4c, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xbc, + 0xd2, 0xdc, 0x62, 0xfd, 0xe4, 0xc4, 0xdc, 0x82, 0xc4, 0xcc, 0xf4, 0xbc, 0xf8, 0xf4, 0xa2, 0xfc, + 0xd2, 0x82, 0xf8, 0xe2, 0x92, 0xc4, 0x92, 0xd2, 0x62, 0xbd, 0x82, 0xa2, 0xfc, 0x92, 0x7c, 0x21, + 0x59, 0x88, 0x7a, 0xbd, 0xc4, 0x94, 0x62, 0x3d, 0xb8, 0x56, 0xbd, 0x32, 0x03, 0x3d, 0xb0, 0x56, + 0xa5, 0x0c, 0x2e, 0x71, 0x67, 0xa8, 0x6e, 0x77, 0x90, 0xe6, 0x60, 0xb0, 0x5e, 0xd7, 0xbc, 0xd2, + 0x5c, 0x25, 0x5f, 0x2e, 0x61, 0x2c, 0x52, 0x42, 0xfc, 0x5c, 0xdc, 0xa1, 0x7e, 0xc1, 0x01, 0xae, + 0xce, 0x9e, 0x6e, 0x9e, 0xae, 0x2e, 0x02, 0x0c, 0x42, 0xdc, 0x5c, 0xec, 0xa1, 0x7e, 0xde, 0x7e, + 0xfe, 0xe1, 0x7e, 0x02, 0x8c, 0x20, 0x8e, 0xab, 0x9f, 0xa3, 0x93, 0x8f, 0xab, 0x8b, 0x00, 0x13, + 0x88, 0x13, 0xe4, 0xea, 0xeb, 0x1f, 0xe6, 0xea, 0x22, 0xc0, 0xe2, 0x74, 0x92, 0x91, 0x4b, 0x31, + 0x39, 0x3f, 0x57, 0x0f, 0xaf, 0x7b, 0x9c, 0x24, 0xb0, 0x58, 0x19, 0x00, 0xf2, 0x48, 0x00, 0x63, + 0x94, 0x13, 0x54, 0x6b, 0x7a, 0x7e, 0x4e, 0x62, 0x5e, 0xba, 0x5e, 0x7e, 0x51, 0xba, 0x7e, 0x7a, + 0x6a, 0x1e, 0xd8, 0x9b, 0xb0, 0x50, 0x29, 0xc8, 0x2c, 0xc6, 0x11, 0x48, 0xd6, 0x60, 0x72, 0x11, + 0x13, 0xb3, 0xbb, 0xa3, 0xe3, 0x2a, 0x26, 0x59, 0x77, 0x88, 0x51, 0x8e, 0x29, 0xc5, 0x7a, 0x10, + 0x26, 0x88, 0x15, 0x66, 0xa0, 0x07, 0xf2, 0x79, 0xf1, 0x29, 0x98, 0x7c, 0x8c, 0x63, 0x4a, 0x71, + 0x0c, 0x5c, 0x3e, 0x26, 0xcc, 0x20, 0x06, 0x2c, 0x9f, 0xc4, 0x06, 0xb6, 0xd4, 0x18, 0x10, 0x00, + 0x00, 0xff, 0xff, 0x2f, 0xcf, 0x77, 0xdc, 0x98, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/campaign_serving_status.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/campaign_serving_status.pb.go new file mode 100644 index 000000000..f131fd682 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/campaign_serving_status.pb.go @@ -0,0 +1,130 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/campaign_serving_status.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Possible serving statuses of a campaign. +type CampaignServingStatusEnum_CampaignServingStatus int32 + +const ( + // No value has been specified. + CampaignServingStatusEnum_UNSPECIFIED CampaignServingStatusEnum_CampaignServingStatus = 0 + // The received value is not known in this version. + // + // This is a response-only value. + CampaignServingStatusEnum_UNKNOWN CampaignServingStatusEnum_CampaignServingStatus = 1 + // Serving. + CampaignServingStatusEnum_SERVING CampaignServingStatusEnum_CampaignServingStatus = 2 + // None. + CampaignServingStatusEnum_NONE CampaignServingStatusEnum_CampaignServingStatus = 3 + // Ended. + CampaignServingStatusEnum_ENDED CampaignServingStatusEnum_CampaignServingStatus = 4 + // Pending. + CampaignServingStatusEnum_PENDING CampaignServingStatusEnum_CampaignServingStatus = 5 + // Suspended. + CampaignServingStatusEnum_SUSPENDED CampaignServingStatusEnum_CampaignServingStatus = 6 +) + +var CampaignServingStatusEnum_CampaignServingStatus_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "SERVING", + 3: "NONE", + 4: "ENDED", + 5: "PENDING", + 6: "SUSPENDED", +} +var CampaignServingStatusEnum_CampaignServingStatus_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "SERVING": 2, + "NONE": 3, + "ENDED": 4, + "PENDING": 5, + "SUSPENDED": 6, +} + +func (x CampaignServingStatusEnum_CampaignServingStatus) String() string { + return proto.EnumName(CampaignServingStatusEnum_CampaignServingStatus_name, int32(x)) +} +func (CampaignServingStatusEnum_CampaignServingStatus) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_campaign_serving_status_73372c2f9572d776, []int{0, 0} +} + +// Message describing Campaign serving statuses. +type CampaignServingStatusEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CampaignServingStatusEnum) Reset() { *m = CampaignServingStatusEnum{} } +func (m *CampaignServingStatusEnum) String() string { return proto.CompactTextString(m) } +func (*CampaignServingStatusEnum) ProtoMessage() {} +func (*CampaignServingStatusEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_serving_status_73372c2f9572d776, []int{0} +} +func (m *CampaignServingStatusEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CampaignServingStatusEnum.Unmarshal(m, b) +} +func (m *CampaignServingStatusEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CampaignServingStatusEnum.Marshal(b, m, deterministic) +} +func (dst *CampaignServingStatusEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_CampaignServingStatusEnum.Merge(dst, src) +} +func (m *CampaignServingStatusEnum) XXX_Size() int { + return xxx_messageInfo_CampaignServingStatusEnum.Size(m) +} +func (m *CampaignServingStatusEnum) XXX_DiscardUnknown() { + xxx_messageInfo_CampaignServingStatusEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_CampaignServingStatusEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*CampaignServingStatusEnum)(nil), "google.ads.googleads.v0.enums.CampaignServingStatusEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.CampaignServingStatusEnum_CampaignServingStatus", CampaignServingStatusEnum_CampaignServingStatus_name, CampaignServingStatusEnum_CampaignServingStatus_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/campaign_serving_status.proto", fileDescriptor_campaign_serving_status_73372c2f9572d776) +} + +var fileDescriptor_campaign_serving_status_73372c2f9572d776 = []byte{ + // 297 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0xdf, 0x4a, 0xc3, 0x30, + 0x18, 0xc5, 0xed, 0xfe, 0xe9, 0x32, 0xc4, 0x12, 0xf0, 0x42, 0x61, 0x17, 0xee, 0x01, 0xd2, 0x82, + 0x97, 0xbb, 0xea, 0xd6, 0x38, 0x86, 0x90, 0x15, 0x43, 0x2b, 0x48, 0x61, 0xc4, 0xb5, 0x84, 0xc2, + 0x9a, 0x94, 0xa6, 0xed, 0x73, 0xf8, 0x0c, 0x5e, 0xfa, 0x28, 0xfa, 0x52, 0x92, 0x64, 0xdb, 0xd5, + 0xf4, 0x26, 0x9c, 0x70, 0xbe, 0xdf, 0x97, 0x93, 0x03, 0xe6, 0x5c, 0x4a, 0xbe, 0xcf, 0x3d, 0x96, + 0x29, 0xcf, 0x4a, 0xad, 0x3a, 0xdf, 0xcb, 0x45, 0x5b, 0x2a, 0x6f, 0xc7, 0xca, 0x8a, 0x15, 0x5c, + 0x6c, 0x55, 0x5e, 0x77, 0x85, 0xe0, 0x5b, 0xd5, 0xb0, 0xa6, 0x55, 0xa8, 0xaa, 0x65, 0x23, 0xe1, + 0xd4, 0x12, 0x88, 0x65, 0x0a, 0x9d, 0x60, 0xd4, 0xf9, 0xc8, 0xc0, 0xb3, 0x0f, 0x07, 0xdc, 0x2d, + 0x0f, 0x0b, 0xa8, 0xe5, 0xa9, 0xc1, 0xb1, 0x68, 0xcb, 0x99, 0x02, 0xb7, 0x67, 0x4d, 0x78, 0x03, + 0x26, 0x31, 0xa1, 0x11, 0x5e, 0xae, 0x9f, 0xd6, 0x38, 0x74, 0x2f, 0xe0, 0x04, 0x5c, 0xc6, 0xe4, + 0x99, 0x6c, 0x5e, 0x89, 0xeb, 0xe8, 0x0b, 0xc5, 0x2f, 0xc9, 0x9a, 0xac, 0xdc, 0x1e, 0xbc, 0x02, + 0x03, 0xb2, 0x21, 0xd8, 0xed, 0xc3, 0x31, 0x18, 0x62, 0x12, 0xe2, 0xd0, 0x1d, 0xe8, 0x89, 0x08, + 0x93, 0x50, 0x4f, 0x0c, 0xe1, 0x35, 0x18, 0xd3, 0x98, 0x46, 0xd6, 0x1b, 0x2d, 0x7e, 0x1c, 0xf0, + 0xb0, 0x93, 0x25, 0xfa, 0x37, 0xf8, 0xe2, 0xfe, 0x6c, 0xb0, 0x48, 0xff, 0x39, 0x72, 0xde, 0x16, + 0x07, 0x98, 0xcb, 0x3d, 0x13, 0x1c, 0xc9, 0x9a, 0x7b, 0x3c, 0x17, 0xa6, 0x91, 0x63, 0x85, 0x55, + 0xa1, 0xfe, 0x68, 0x74, 0x6e, 0xce, 0xcf, 0x5e, 0x7f, 0x15, 0x04, 0x5f, 0xbd, 0xe9, 0xca, 0xae, + 0x0a, 0x32, 0x85, 0xac, 0xd4, 0x2a, 0xf1, 0x91, 0x6e, 0x48, 0x7d, 0x1f, 0xfd, 0x34, 0xc8, 0x54, + 0x7a, 0xf2, 0xd3, 0xc4, 0x4f, 0x8d, 0xff, 0x3e, 0x32, 0x8f, 0x3e, 0xfe, 0x06, 0x00, 0x00, 0xff, + 0xff, 0x88, 0x30, 0x07, 0xeb, 0xc5, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/campaign_shared_set_status.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/campaign_shared_set_status.pb.go new file mode 100644 index 000000000..72a082ebd --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/campaign_shared_set_status.pb.go @@ -0,0 +1,115 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/campaign_shared_set_status.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum listing the possible campaign shared set statuses. +type CampaignSharedSetStatusEnum_CampaignSharedSetStatus int32 + +const ( + // Not specified. + CampaignSharedSetStatusEnum_UNSPECIFIED CampaignSharedSetStatusEnum_CampaignSharedSetStatus = 0 + // Used for return value only. Represents value unknown in this version. + CampaignSharedSetStatusEnum_UNKNOWN CampaignSharedSetStatusEnum_CampaignSharedSetStatus = 1 + // The campaign shared set is enabled. + CampaignSharedSetStatusEnum_ENABLED CampaignSharedSetStatusEnum_CampaignSharedSetStatus = 2 + // The campaign shared set is removed and can no longer be used. + CampaignSharedSetStatusEnum_REMOVED CampaignSharedSetStatusEnum_CampaignSharedSetStatus = 3 +) + +var CampaignSharedSetStatusEnum_CampaignSharedSetStatus_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "ENABLED", + 3: "REMOVED", +} +var CampaignSharedSetStatusEnum_CampaignSharedSetStatus_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "ENABLED": 2, + "REMOVED": 3, +} + +func (x CampaignSharedSetStatusEnum_CampaignSharedSetStatus) String() string { + return proto.EnumName(CampaignSharedSetStatusEnum_CampaignSharedSetStatus_name, int32(x)) +} +func (CampaignSharedSetStatusEnum_CampaignSharedSetStatus) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_campaign_shared_set_status_82017bcab3cc753a, []int{0, 0} +} + +// Container for enum describing types of campaign shared set statuses. +type CampaignSharedSetStatusEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CampaignSharedSetStatusEnum) Reset() { *m = CampaignSharedSetStatusEnum{} } +func (m *CampaignSharedSetStatusEnum) String() string { return proto.CompactTextString(m) } +func (*CampaignSharedSetStatusEnum) ProtoMessage() {} +func (*CampaignSharedSetStatusEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_shared_set_status_82017bcab3cc753a, []int{0} +} +func (m *CampaignSharedSetStatusEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CampaignSharedSetStatusEnum.Unmarshal(m, b) +} +func (m *CampaignSharedSetStatusEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CampaignSharedSetStatusEnum.Marshal(b, m, deterministic) +} +func (dst *CampaignSharedSetStatusEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_CampaignSharedSetStatusEnum.Merge(dst, src) +} +func (m *CampaignSharedSetStatusEnum) XXX_Size() int { + return xxx_messageInfo_CampaignSharedSetStatusEnum.Size(m) +} +func (m *CampaignSharedSetStatusEnum) XXX_DiscardUnknown() { + xxx_messageInfo_CampaignSharedSetStatusEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_CampaignSharedSetStatusEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*CampaignSharedSetStatusEnum)(nil), "google.ads.googleads.v0.enums.CampaignSharedSetStatusEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.CampaignSharedSetStatusEnum_CampaignSharedSetStatus", CampaignSharedSetStatusEnum_CampaignSharedSetStatus_name, CampaignSharedSetStatusEnum_CampaignSharedSetStatus_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/campaign_shared_set_status.proto", fileDescriptor_campaign_shared_set_status_82017bcab3cc753a) +} + +var fileDescriptor_campaign_shared_set_status_82017bcab3cc753a = []byte{ + // 276 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x4b, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xbc, + 0xd2, 0xdc, 0x62, 0xfd, 0xe4, 0xc4, 0xdc, 0x82, 0xc4, 0xcc, 0xf4, 0xbc, 0xf8, 0xe2, 0x8c, 0xc4, + 0xa2, 0xd4, 0x94, 0xf8, 0xe2, 0xd4, 0x92, 0xf8, 0xe2, 0x92, 0xc4, 0x92, 0xd2, 0x62, 0xbd, 0x82, + 0xa2, 0xfc, 0x92, 0x7c, 0x21, 0x59, 0x88, 0x26, 0xbd, 0xc4, 0x94, 0x62, 0x3d, 0xb8, 0x7e, 0xbd, + 0x32, 0x03, 0x3d, 0xb0, 0x7e, 0xa5, 0x02, 0x2e, 0x69, 0x67, 0xa8, 0x11, 0xc1, 0x60, 0x13, 0x82, + 0x53, 0x4b, 0x82, 0xc1, 0xfa, 0x5d, 0xf3, 0x4a, 0x73, 0x95, 0x02, 0xb9, 0xc4, 0x71, 0x48, 0x0b, + 0xf1, 0x73, 0x71, 0x87, 0xfa, 0x05, 0x07, 0xb8, 0x3a, 0x7b, 0xba, 0x79, 0xba, 0xba, 0x08, 0x30, + 0x08, 0x71, 0x73, 0xb1, 0x87, 0xfa, 0x79, 0xfb, 0xf9, 0x87, 0xfb, 0x09, 0x30, 0x82, 0x38, 0xae, + 0x7e, 0x8e, 0x4e, 0x3e, 0xae, 0x2e, 0x02, 0x4c, 0x20, 0x4e, 0x90, 0xab, 0xaf, 0x7f, 0x98, 0xab, + 0x8b, 0x00, 0xb3, 0xd3, 0x59, 0x46, 0x2e, 0xc5, 0xe4, 0xfc, 0x5c, 0x3d, 0xbc, 0xee, 0x72, 0x92, + 0xc1, 0x61, 0x6d, 0x00, 0xc8, 0x53, 0x01, 0x8c, 0x51, 0x4e, 0x50, 0xed, 0xe9, 0xf9, 0x39, 0x89, + 0x79, 0xe9, 0x7a, 0xf9, 0x45, 0xe9, 0xfa, 0xe9, 0xa9, 0x79, 0x60, 0x2f, 0xc3, 0x82, 0xa9, 0x20, + 0xb3, 0x18, 0x47, 0xa8, 0x59, 0x83, 0xc9, 0x45, 0x4c, 0xcc, 0xee, 0x8e, 0x8e, 0xab, 0x98, 0x64, + 0xdd, 0x21, 0x46, 0x39, 0xa6, 0x14, 0xeb, 0x41, 0x98, 0x20, 0x56, 0x98, 0x81, 0x1e, 0x28, 0x04, + 0x8a, 0x4f, 0xc1, 0xe4, 0x63, 0x1c, 0x53, 0x8a, 0x63, 0xe0, 0xf2, 0x31, 0x61, 0x06, 0x31, 0x60, + 0xf9, 0x24, 0x36, 0xb0, 0xa5, 0xc6, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0x4c, 0xcf, 0xee, 0xb5, + 0xa9, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/campaign_status.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/campaign_status.pb.go new file mode 100644 index 000000000..afb605c57 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/campaign_status.pb.go @@ -0,0 +1,118 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/campaign_status.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Possible statuses of a campaign. +type CampaignStatusEnum_CampaignStatus int32 + +const ( + // Not specified. + CampaignStatusEnum_UNSPECIFIED CampaignStatusEnum_CampaignStatus = 0 + // Used for return value only. Represents value unknown in this version. + CampaignStatusEnum_UNKNOWN CampaignStatusEnum_CampaignStatus = 1 + // Campaign is currently serving ads depending on budget information. + CampaignStatusEnum_ENABLED CampaignStatusEnum_CampaignStatus = 2 + // Campaign has been paused by the user. + CampaignStatusEnum_PAUSED CampaignStatusEnum_CampaignStatus = 3 + // Campaign has been removed. + CampaignStatusEnum_REMOVED CampaignStatusEnum_CampaignStatus = 4 +) + +var CampaignStatusEnum_CampaignStatus_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "ENABLED", + 3: "PAUSED", + 4: "REMOVED", +} +var CampaignStatusEnum_CampaignStatus_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "ENABLED": 2, + "PAUSED": 3, + "REMOVED": 4, +} + +func (x CampaignStatusEnum_CampaignStatus) String() string { + return proto.EnumName(CampaignStatusEnum_CampaignStatus_name, int32(x)) +} +func (CampaignStatusEnum_CampaignStatus) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_campaign_status_a4946b8bf190e841, []int{0, 0} +} + +// Container for enum describing possible statuses of a campaign. +type CampaignStatusEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CampaignStatusEnum) Reset() { *m = CampaignStatusEnum{} } +func (m *CampaignStatusEnum) String() string { return proto.CompactTextString(m) } +func (*CampaignStatusEnum) ProtoMessage() {} +func (*CampaignStatusEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_status_a4946b8bf190e841, []int{0} +} +func (m *CampaignStatusEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CampaignStatusEnum.Unmarshal(m, b) +} +func (m *CampaignStatusEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CampaignStatusEnum.Marshal(b, m, deterministic) +} +func (dst *CampaignStatusEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_CampaignStatusEnum.Merge(dst, src) +} +func (m *CampaignStatusEnum) XXX_Size() int { + return xxx_messageInfo_CampaignStatusEnum.Size(m) +} +func (m *CampaignStatusEnum) XXX_DiscardUnknown() { + xxx_messageInfo_CampaignStatusEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_CampaignStatusEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*CampaignStatusEnum)(nil), "google.ads.googleads.v0.enums.CampaignStatusEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.CampaignStatusEnum_CampaignStatus", CampaignStatusEnum_CampaignStatus_name, CampaignStatusEnum_CampaignStatus_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/campaign_status.proto", fileDescriptor_campaign_status_a4946b8bf190e841) +} + +var fileDescriptor_campaign_status_a4946b8bf190e841 = []byte{ + // 270 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x32, 0x4e, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xbc, + 0xd2, 0xdc, 0x62, 0xfd, 0xe4, 0xc4, 0xdc, 0x82, 0xc4, 0xcc, 0xf4, 0xbc, 0xf8, 0xe2, 0x92, 0xc4, + 0x92, 0xd2, 0x62, 0xbd, 0x82, 0xa2, 0xfc, 0x92, 0x7c, 0x21, 0x59, 0x88, 0x4a, 0xbd, 0xc4, 0x94, + 0x62, 0x3d, 0xb8, 0x26, 0xbd, 0x32, 0x03, 0x3d, 0xb0, 0x26, 0xa5, 0x2c, 0x2e, 0x21, 0x67, 0xa8, + 0xbe, 0x60, 0xb0, 0x36, 0xd7, 0xbc, 0xd2, 0x5c, 0xa5, 0x10, 0x2e, 0x3e, 0x54, 0x51, 0x21, 0x7e, + 0x2e, 0xee, 0x50, 0xbf, 0xe0, 0x00, 0x57, 0x67, 0x4f, 0x37, 0x4f, 0x57, 0x17, 0x01, 0x06, 0x21, + 0x6e, 0x2e, 0xf6, 0x50, 0x3f, 0x6f, 0x3f, 0xff, 0x70, 0x3f, 0x01, 0x46, 0x10, 0xc7, 0xd5, 0xcf, + 0xd1, 0xc9, 0xc7, 0xd5, 0x45, 0x80, 0x49, 0x88, 0x8b, 0x8b, 0x2d, 0xc0, 0x31, 0x34, 0xd8, 0xd5, + 0x45, 0x80, 0x19, 0x24, 0x11, 0xe4, 0xea, 0xeb, 0x1f, 0xe6, 0xea, 0x22, 0xc0, 0xe2, 0x74, 0x84, + 0x91, 0x4b, 0x31, 0x39, 0x3f, 0x57, 0x0f, 0xaf, 0x8b, 0x9c, 0x84, 0x51, 0x6d, 0x0e, 0x00, 0xf9, + 0x22, 0x80, 0x31, 0xca, 0x09, 0xaa, 0x2b, 0x3d, 0x3f, 0x27, 0x31, 0x2f, 0x5d, 0x2f, 0xbf, 0x28, + 0x5d, 0x3f, 0x3d, 0x35, 0x0f, 0xec, 0x47, 0x58, 0x60, 0x14, 0x64, 0x16, 0xe3, 0x08, 0x1b, 0x6b, + 0x30, 0xb9, 0x88, 0x89, 0xd9, 0xdd, 0xd1, 0x71, 0x15, 0x93, 0xac, 0x3b, 0xc4, 0x28, 0xc7, 0x94, + 0x62, 0x3d, 0x08, 0x13, 0xc4, 0x0a, 0x33, 0xd0, 0x03, 0xf9, 0xbd, 0xf8, 0x14, 0x4c, 0x3e, 0xc6, + 0x31, 0xa5, 0x38, 0x06, 0x2e, 0x1f, 0x13, 0x66, 0x10, 0x03, 0x96, 0x4f, 0x62, 0x03, 0x5b, 0x6a, + 0x0c, 0x08, 0x00, 0x00, 0xff, 0xff, 0xc6, 0x73, 0xa2, 0x1a, 0x8f, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/change_status_operation.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/change_status_operation.pb.go new file mode 100644 index 000000000..32751d9f8 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/change_status_operation.pb.go @@ -0,0 +1,120 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/change_status_operation.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Status of the changed resource +type ChangeStatusOperationEnum_ChangeStatusOperation int32 + +const ( + // No value has been specified. + ChangeStatusOperationEnum_UNSPECIFIED ChangeStatusOperationEnum_ChangeStatusOperation = 0 + // Used for return value only. Represents an unclassified resource unknown + // in this version. + ChangeStatusOperationEnum_UNKNOWN ChangeStatusOperationEnum_ChangeStatusOperation = 1 + // The resource was created. + ChangeStatusOperationEnum_ADDED ChangeStatusOperationEnum_ChangeStatusOperation = 2 + // The resource was modified. + ChangeStatusOperationEnum_CHANGED ChangeStatusOperationEnum_ChangeStatusOperation = 3 + // The resource was removed. + ChangeStatusOperationEnum_REMOVED ChangeStatusOperationEnum_ChangeStatusOperation = 4 +) + +var ChangeStatusOperationEnum_ChangeStatusOperation_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "ADDED", + 3: "CHANGED", + 4: "REMOVED", +} +var ChangeStatusOperationEnum_ChangeStatusOperation_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "ADDED": 2, + "CHANGED": 3, + "REMOVED": 4, +} + +func (x ChangeStatusOperationEnum_ChangeStatusOperation) String() string { + return proto.EnumName(ChangeStatusOperationEnum_ChangeStatusOperation_name, int32(x)) +} +func (ChangeStatusOperationEnum_ChangeStatusOperation) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_change_status_operation_b1df569575e87122, []int{0, 0} +} + +// Container for enum describing operations for the ChangeStatus resource. +type ChangeStatusOperationEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ChangeStatusOperationEnum) Reset() { *m = ChangeStatusOperationEnum{} } +func (m *ChangeStatusOperationEnum) String() string { return proto.CompactTextString(m) } +func (*ChangeStatusOperationEnum) ProtoMessage() {} +func (*ChangeStatusOperationEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_change_status_operation_b1df569575e87122, []int{0} +} +func (m *ChangeStatusOperationEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ChangeStatusOperationEnum.Unmarshal(m, b) +} +func (m *ChangeStatusOperationEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ChangeStatusOperationEnum.Marshal(b, m, deterministic) +} +func (dst *ChangeStatusOperationEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_ChangeStatusOperationEnum.Merge(dst, src) +} +func (m *ChangeStatusOperationEnum) XXX_Size() int { + return xxx_messageInfo_ChangeStatusOperationEnum.Size(m) +} +func (m *ChangeStatusOperationEnum) XXX_DiscardUnknown() { + xxx_messageInfo_ChangeStatusOperationEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_ChangeStatusOperationEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*ChangeStatusOperationEnum)(nil), "google.ads.googleads.v0.enums.ChangeStatusOperationEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.ChangeStatusOperationEnum_ChangeStatusOperation", ChangeStatusOperationEnum_ChangeStatusOperation_name, ChangeStatusOperationEnum_ChangeStatusOperation_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/change_status_operation.proto", fileDescriptor_change_status_operation_b1df569575e87122) +} + +var fileDescriptor_change_status_operation_b1df569575e87122 = []byte{ + // 281 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x4e, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xbc, + 0xd2, 0xdc, 0x62, 0xfd, 0xe4, 0x8c, 0xc4, 0xbc, 0xf4, 0xd4, 0xf8, 0xe2, 0x92, 0xc4, 0x92, 0xd2, + 0xe2, 0xf8, 0xfc, 0x82, 0xd4, 0xa2, 0xc4, 0x92, 0xcc, 0xfc, 0x3c, 0xbd, 0x82, 0xa2, 0xfc, 0x92, + 0x7c, 0x21, 0x59, 0x88, 0x0e, 0xbd, 0xc4, 0x94, 0x62, 0x3d, 0xb8, 0x66, 0xbd, 0x32, 0x03, 0x3d, + 0xb0, 0x66, 0xa5, 0x72, 0x2e, 0x49, 0x67, 0xb0, 0xfe, 0x60, 0xb0, 0x76, 0x7f, 0x98, 0x6e, 0xd7, + 0xbc, 0xd2, 0x5c, 0xa5, 0x28, 0x2e, 0x51, 0xac, 0x92, 0x42, 0xfc, 0x5c, 0xdc, 0xa1, 0x7e, 0xc1, + 0x01, 0xae, 0xce, 0x9e, 0x6e, 0x9e, 0xae, 0x2e, 0x02, 0x0c, 0x42, 0xdc, 0x5c, 0xec, 0xa1, 0x7e, + 0xde, 0x7e, 0xfe, 0xe1, 0x7e, 0x02, 0x8c, 0x42, 0x9c, 0x5c, 0xac, 0x8e, 0x2e, 0x2e, 0xae, 0x2e, + 0x02, 0x4c, 0x20, 0x71, 0x67, 0x0f, 0x47, 0x3f, 0x77, 0x57, 0x17, 0x01, 0x66, 0x10, 0x27, 0xc8, + 0xd5, 0xd7, 0x3f, 0xcc, 0xd5, 0x45, 0x80, 0xc5, 0xe9, 0x34, 0x23, 0x97, 0x62, 0x72, 0x7e, 0xae, + 0x1e, 0x5e, 0xe7, 0x39, 0x49, 0x61, 0xb5, 0x3f, 0x00, 0xe4, 0xb3, 0x00, 0xc6, 0x28, 0x27, 0xa8, + 0xe6, 0xf4, 0xfc, 0x9c, 0xc4, 0xbc, 0x74, 0xbd, 0xfc, 0xa2, 0x74, 0xfd, 0xf4, 0xd4, 0x3c, 0xb0, + 0xbf, 0x61, 0x01, 0x55, 0x90, 0x59, 0x8c, 0x23, 0xdc, 0xac, 0xc1, 0xe4, 0x22, 0x26, 0x66, 0x77, + 0x47, 0xc7, 0x55, 0x4c, 0xb2, 0xee, 0x10, 0xa3, 0x1c, 0x53, 0x8a, 0xf5, 0x20, 0x4c, 0x10, 0x2b, + 0xcc, 0x40, 0x0f, 0x14, 0x10, 0xc5, 0xa7, 0x60, 0xf2, 0x31, 0x8e, 0x29, 0xc5, 0x31, 0x70, 0xf9, + 0x98, 0x30, 0x83, 0x18, 0xb0, 0x7c, 0x12, 0x1b, 0xd8, 0x52, 0x63, 0x40, 0x00, 0x00, 0x00, 0xff, + 0xff, 0x02, 0xe5, 0xee, 0xbb, 0xab, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/change_status_resource_type.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/change_status_resource_type.pb.go new file mode 100644 index 000000000..7a91f1cb6 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/change_status_resource_type.pb.go @@ -0,0 +1,131 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/change_status_resource_type.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum listing the resource types support by the ChangeStatus resource. +type ChangeStatusResourceTypeEnum_ChangeStatusResourceType int32 + +const ( + // No value has been specified. + ChangeStatusResourceTypeEnum_UNSPECIFIED ChangeStatusResourceTypeEnum_ChangeStatusResourceType = 0 + // Used for return value only. Represents an unclassified resource unknown + // in this version. + ChangeStatusResourceTypeEnum_UNKNOWN ChangeStatusResourceTypeEnum_ChangeStatusResourceType = 1 + // An AdGroup resource change. + ChangeStatusResourceTypeEnum_AD_GROUP ChangeStatusResourceTypeEnum_ChangeStatusResourceType = 3 + // An AdGroupAd resource change. + ChangeStatusResourceTypeEnum_AD_GROUP_AD ChangeStatusResourceTypeEnum_ChangeStatusResourceType = 4 + // An AdGroupCriterion resource change. + ChangeStatusResourceTypeEnum_AD_GROUP_CRITERION ChangeStatusResourceTypeEnum_ChangeStatusResourceType = 5 + // A Campaign resource change. + ChangeStatusResourceTypeEnum_CAMPAIGN ChangeStatusResourceTypeEnum_ChangeStatusResourceType = 6 + // A CampaignCriterion resource change. + ChangeStatusResourceTypeEnum_CAMPAIGN_CRITERION ChangeStatusResourceTypeEnum_ChangeStatusResourceType = 7 +) + +var ChangeStatusResourceTypeEnum_ChangeStatusResourceType_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 3: "AD_GROUP", + 4: "AD_GROUP_AD", + 5: "AD_GROUP_CRITERION", + 6: "CAMPAIGN", + 7: "CAMPAIGN_CRITERION", +} +var ChangeStatusResourceTypeEnum_ChangeStatusResourceType_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "AD_GROUP": 3, + "AD_GROUP_AD": 4, + "AD_GROUP_CRITERION": 5, + "CAMPAIGN": 6, + "CAMPAIGN_CRITERION": 7, +} + +func (x ChangeStatusResourceTypeEnum_ChangeStatusResourceType) String() string { + return proto.EnumName(ChangeStatusResourceTypeEnum_ChangeStatusResourceType_name, int32(x)) +} +func (ChangeStatusResourceTypeEnum_ChangeStatusResourceType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_change_status_resource_type_21cfa4bee3165095, []int{0, 0} +} + +// Container for enum describing supported resource types for the ChangeStatus +// resource. +type ChangeStatusResourceTypeEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ChangeStatusResourceTypeEnum) Reset() { *m = ChangeStatusResourceTypeEnum{} } +func (m *ChangeStatusResourceTypeEnum) String() string { return proto.CompactTextString(m) } +func (*ChangeStatusResourceTypeEnum) ProtoMessage() {} +func (*ChangeStatusResourceTypeEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_change_status_resource_type_21cfa4bee3165095, []int{0} +} +func (m *ChangeStatusResourceTypeEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ChangeStatusResourceTypeEnum.Unmarshal(m, b) +} +func (m *ChangeStatusResourceTypeEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ChangeStatusResourceTypeEnum.Marshal(b, m, deterministic) +} +func (dst *ChangeStatusResourceTypeEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_ChangeStatusResourceTypeEnum.Merge(dst, src) +} +func (m *ChangeStatusResourceTypeEnum) XXX_Size() int { + return xxx_messageInfo_ChangeStatusResourceTypeEnum.Size(m) +} +func (m *ChangeStatusResourceTypeEnum) XXX_DiscardUnknown() { + xxx_messageInfo_ChangeStatusResourceTypeEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_ChangeStatusResourceTypeEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*ChangeStatusResourceTypeEnum)(nil), "google.ads.googleads.v0.enums.ChangeStatusResourceTypeEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.ChangeStatusResourceTypeEnum_ChangeStatusResourceType", ChangeStatusResourceTypeEnum_ChangeStatusResourceType_name, ChangeStatusResourceTypeEnum_ChangeStatusResourceType_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/change_status_resource_type.proto", fileDescriptor_change_status_resource_type_21cfa4bee3165095) +} + +var fileDescriptor_change_status_resource_type_21cfa4bee3165095 = []byte{ + // 318 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x4f, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xbc, + 0xd2, 0xdc, 0x62, 0xfd, 0xe4, 0x8c, 0xc4, 0xbc, 0xf4, 0xd4, 0xf8, 0xe2, 0x92, 0xc4, 0x92, 0xd2, + 0xe2, 0xf8, 0xa2, 0xd4, 0xe2, 0xfc, 0xd2, 0xa2, 0xe4, 0xd4, 0xf8, 0x92, 0xca, 0x82, 0x54, 0xbd, + 0x82, 0xa2, 0xfc, 0x92, 0x7c, 0x21, 0x59, 0x88, 0x2e, 0xbd, 0xc4, 0x94, 0x62, 0x3d, 0xb8, 0x01, + 0x7a, 0x65, 0x06, 0x7a, 0x60, 0x03, 0x94, 0xb6, 0x31, 0x72, 0xc9, 0x38, 0x83, 0x0d, 0x09, 0x06, + 0x9b, 0x11, 0x04, 0x35, 0x22, 0xa4, 0xb2, 0x20, 0xd5, 0x35, 0xaf, 0x34, 0x57, 0x69, 0x2a, 0x23, + 0x97, 0x04, 0x2e, 0x05, 0x42, 0xfc, 0x5c, 0xdc, 0xa1, 0x7e, 0xc1, 0x01, 0xae, 0xce, 0x9e, 0x6e, + 0x9e, 0xae, 0x2e, 0x02, 0x0c, 0x42, 0xdc, 0x5c, 0xec, 0xa1, 0x7e, 0xde, 0x7e, 0xfe, 0xe1, 0x7e, + 0x02, 0x8c, 0x42, 0x3c, 0x5c, 0x1c, 0x8e, 0x2e, 0xf1, 0xee, 0x41, 0xfe, 0xa1, 0x01, 0x02, 0xcc, + 0x20, 0xb5, 0x30, 0x5e, 0xbc, 0xa3, 0x8b, 0x00, 0x8b, 0x90, 0x18, 0x97, 0x10, 0x5c, 0xc0, 0x39, + 0xc8, 0x33, 0xc4, 0x35, 0xc8, 0xd3, 0xdf, 0x4f, 0x80, 0x15, 0xa4, 0xcd, 0xd9, 0xd1, 0x37, 0xc0, + 0xd1, 0xd3, 0xdd, 0x4f, 0x80, 0x0d, 0xa4, 0x0a, 0xc6, 0x43, 0x52, 0xc5, 0xee, 0x74, 0x8e, 0x91, + 0x4b, 0x31, 0x39, 0x3f, 0x57, 0x0f, 0xaf, 0xf7, 0x9c, 0x64, 0x71, 0x39, 0x3d, 0x00, 0x14, 0x38, + 0x01, 0x8c, 0x51, 0x4e, 0x50, 0xfd, 0xe9, 0xf9, 0x39, 0x89, 0x79, 0xe9, 0x7a, 0xf9, 0x45, 0xe9, + 0xfa, 0xe9, 0xa9, 0x79, 0xe0, 0xa0, 0x83, 0x85, 0x77, 0x41, 0x66, 0x31, 0x8e, 0xe0, 0xb7, 0x06, + 0x93, 0x8b, 0x98, 0x98, 0xdd, 0x1d, 0x1d, 0x57, 0x31, 0xc9, 0xba, 0x43, 0x8c, 0x72, 0x4c, 0x29, + 0xd6, 0x83, 0x30, 0x41, 0xac, 0x30, 0x03, 0x3d, 0x50, 0x38, 0x16, 0x9f, 0x82, 0xc9, 0xc7, 0x38, + 0xa6, 0x14, 0xc7, 0xc0, 0xe5, 0x63, 0xc2, 0x0c, 0x62, 0xc0, 0xf2, 0x49, 0x6c, 0x60, 0x4b, 0x8d, + 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0x5a, 0x54, 0x8c, 0x19, 0xf2, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/content_label_type.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/content_label_type.pb.go new file mode 100644 index 000000000..f1a7c5373 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/content_label_type.pb.go @@ -0,0 +1,177 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/content_label_type.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum listing the content label types supported by ContentLabel criterion. +type ContentLabelTypeEnum_ContentLabelType int32 + +const ( + // Not specified. + ContentLabelTypeEnum_UNSPECIFIED ContentLabelTypeEnum_ContentLabelType = 0 + // Used for return value only. Represents value unknown in this version. + ContentLabelTypeEnum_UNKNOWN ContentLabelTypeEnum_ContentLabelType = 1 + // Sexually suggestive content. + ContentLabelTypeEnum_SEXUALLY_SUGGESTIVE ContentLabelTypeEnum_ContentLabelType = 2 + // Below the fold placement. + ContentLabelTypeEnum_BELOW_THE_FOLD ContentLabelTypeEnum_ContentLabelType = 3 + // Parked domain. + ContentLabelTypeEnum_PARKED_DOMAIN ContentLabelTypeEnum_ContentLabelType = 4 + // Game. + ContentLabelTypeEnum_GAME ContentLabelTypeEnum_ContentLabelType = 5 + // Juvenile, gross & bizarre content. + ContentLabelTypeEnum_JUVENILE ContentLabelTypeEnum_ContentLabelType = 6 + // Profanity & rough language. + ContentLabelTypeEnum_PROFANITY ContentLabelTypeEnum_ContentLabelType = 7 + // Death & tragedy. + ContentLabelTypeEnum_TRAGEDY ContentLabelTypeEnum_ContentLabelType = 8 + // Video. + ContentLabelTypeEnum_VIDEO ContentLabelTypeEnum_ContentLabelType = 9 + // Content rating: G. + ContentLabelTypeEnum_VIDEO_RATING_DV_G ContentLabelTypeEnum_ContentLabelType = 10 + // Content rating: PG. + ContentLabelTypeEnum_VIDEO_RATING_DV_PG ContentLabelTypeEnum_ContentLabelType = 11 + // Content rating: T. + ContentLabelTypeEnum_VIDEO_RATING_DV_T ContentLabelTypeEnum_ContentLabelType = 12 + // Content rating: MA. + ContentLabelTypeEnum_VIDEO_RATING_DV_MA ContentLabelTypeEnum_ContentLabelType = 13 + // Content rating: not yet rated. + ContentLabelTypeEnum_VIDEO_NOT_YET_RATED ContentLabelTypeEnum_ContentLabelType = 14 + // Embedded video. + ContentLabelTypeEnum_EMBEDDED_VIDEO ContentLabelTypeEnum_ContentLabelType = 15 + // Live streaming video. + ContentLabelTypeEnum_LIVE_STREAMING_VIDEO ContentLabelTypeEnum_ContentLabelType = 16 +) + +var ContentLabelTypeEnum_ContentLabelType_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "SEXUALLY_SUGGESTIVE", + 3: "BELOW_THE_FOLD", + 4: "PARKED_DOMAIN", + 5: "GAME", + 6: "JUVENILE", + 7: "PROFANITY", + 8: "TRAGEDY", + 9: "VIDEO", + 10: "VIDEO_RATING_DV_G", + 11: "VIDEO_RATING_DV_PG", + 12: "VIDEO_RATING_DV_T", + 13: "VIDEO_RATING_DV_MA", + 14: "VIDEO_NOT_YET_RATED", + 15: "EMBEDDED_VIDEO", + 16: "LIVE_STREAMING_VIDEO", +} +var ContentLabelTypeEnum_ContentLabelType_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "SEXUALLY_SUGGESTIVE": 2, + "BELOW_THE_FOLD": 3, + "PARKED_DOMAIN": 4, + "GAME": 5, + "JUVENILE": 6, + "PROFANITY": 7, + "TRAGEDY": 8, + "VIDEO": 9, + "VIDEO_RATING_DV_G": 10, + "VIDEO_RATING_DV_PG": 11, + "VIDEO_RATING_DV_T": 12, + "VIDEO_RATING_DV_MA": 13, + "VIDEO_NOT_YET_RATED": 14, + "EMBEDDED_VIDEO": 15, + "LIVE_STREAMING_VIDEO": 16, +} + +func (x ContentLabelTypeEnum_ContentLabelType) String() string { + return proto.EnumName(ContentLabelTypeEnum_ContentLabelType_name, int32(x)) +} +func (ContentLabelTypeEnum_ContentLabelType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_content_label_type_29d39b60679e7f56, []int{0, 0} +} + +// Container for enum describing content label types in ContentLabel. +type ContentLabelTypeEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ContentLabelTypeEnum) Reset() { *m = ContentLabelTypeEnum{} } +func (m *ContentLabelTypeEnum) String() string { return proto.CompactTextString(m) } +func (*ContentLabelTypeEnum) ProtoMessage() {} +func (*ContentLabelTypeEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_content_label_type_29d39b60679e7f56, []int{0} +} +func (m *ContentLabelTypeEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ContentLabelTypeEnum.Unmarshal(m, b) +} +func (m *ContentLabelTypeEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ContentLabelTypeEnum.Marshal(b, m, deterministic) +} +func (dst *ContentLabelTypeEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_ContentLabelTypeEnum.Merge(dst, src) +} +func (m *ContentLabelTypeEnum) XXX_Size() int { + return xxx_messageInfo_ContentLabelTypeEnum.Size(m) +} +func (m *ContentLabelTypeEnum) XXX_DiscardUnknown() { + xxx_messageInfo_ContentLabelTypeEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_ContentLabelTypeEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*ContentLabelTypeEnum)(nil), "google.ads.googleads.v0.enums.ContentLabelTypeEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.ContentLabelTypeEnum_ContentLabelType", ContentLabelTypeEnum_ContentLabelType_name, ContentLabelTypeEnum_ContentLabelType_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/content_label_type.proto", fileDescriptor_content_label_type_29d39b60679e7f56) +} + +var fileDescriptor_content_label_type_29d39b60679e7f56 = []byte{ + // 438 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x52, 0xcd, 0x6e, 0xd3, 0x40, + 0x10, 0x26, 0xee, 0x5f, 0xb2, 0x69, 0xda, 0xed, 0xd2, 0x02, 0x97, 0x1e, 0xe8, 0x03, 0xac, 0x23, + 0x21, 0x71, 0xe1, 0xb4, 0xee, 0x4e, 0x96, 0xa5, 0xf6, 0xda, 0xb2, 0xd7, 0x2e, 0x41, 0x91, 0x56, + 0x69, 0x63, 0x59, 0x48, 0x89, 0x1d, 0xd5, 0x6e, 0xa5, 0xbe, 0x0e, 0x47, 0x1e, 0x84, 0x03, 0x67, + 0x5e, 0x83, 0x77, 0x40, 0x6b, 0xd3, 0x1e, 0xa2, 0xc0, 0xc5, 0xfa, 0x34, 0xdf, 0xf7, 0xcd, 0x78, + 0xf6, 0x1b, 0xf4, 0xbe, 0xa8, 0xaa, 0x62, 0x99, 0xbb, 0xf3, 0x45, 0xed, 0x76, 0xd0, 0xa2, 0x87, + 0xb1, 0x9b, 0x97, 0xf7, 0xab, 0xda, 0xbd, 0xad, 0xca, 0x26, 0x2f, 0x1b, 0xb3, 0x9c, 0xdf, 0xe4, + 0x4b, 0xd3, 0x3c, 0xae, 0x73, 0xba, 0xbe, 0xab, 0x9a, 0x8a, 0x9c, 0x77, 0x62, 0x3a, 0x5f, 0xd4, + 0xf4, 0xd9, 0x47, 0x1f, 0xc6, 0xb4, 0xf5, 0x5d, 0xfc, 0x76, 0xd0, 0xe9, 0x65, 0xe7, 0xf5, 0xad, + 0x55, 0x3f, 0xae, 0x73, 0x28, 0xef, 0x57, 0x17, 0xbf, 0x1c, 0x84, 0x37, 0x09, 0x72, 0x8c, 0x86, + 0xa9, 0x4a, 0x22, 0xb8, 0x94, 0x13, 0x09, 0x1c, 0xbf, 0x20, 0x43, 0x74, 0x90, 0xaa, 0x2b, 0x15, + 0x5e, 0x2b, 0xdc, 0x23, 0xaf, 0xd1, 0xcb, 0x04, 0x3e, 0xa7, 0xcc, 0xf7, 0xa7, 0x26, 0x49, 0x85, + 0x80, 0x44, 0xcb, 0x0c, 0xb0, 0x43, 0x08, 0x3a, 0xf2, 0xc0, 0x0f, 0xaf, 0x8d, 0xfe, 0x08, 0x66, + 0x12, 0xfa, 0x1c, 0xef, 0x90, 0x13, 0x34, 0x8a, 0x58, 0x7c, 0x05, 0xdc, 0xf0, 0x30, 0x60, 0x52, + 0xe1, 0x5d, 0xd2, 0x47, 0xbb, 0x82, 0x05, 0x80, 0xf7, 0xc8, 0x21, 0xea, 0x7f, 0x4a, 0x33, 0x50, + 0xd2, 0x07, 0xbc, 0x4f, 0x46, 0x68, 0x10, 0xc5, 0xe1, 0x84, 0x29, 0xa9, 0xa7, 0xf8, 0xc0, 0xce, + 0xd4, 0x31, 0x13, 0xc0, 0xa7, 0xb8, 0x4f, 0x06, 0x68, 0x2f, 0x93, 0x1c, 0x42, 0x3c, 0x20, 0x67, + 0xe8, 0xa4, 0x85, 0x26, 0x66, 0x5a, 0x2a, 0x61, 0x78, 0x66, 0x04, 0x46, 0xe4, 0x15, 0x22, 0x9b, + 0xe5, 0x48, 0xe0, 0xe1, 0x36, 0xb9, 0xc6, 0x87, 0xdb, 0xe4, 0x01, 0xc3, 0x23, 0xbb, 0x5c, 0x57, + 0x57, 0xa1, 0x36, 0x53, 0xd0, 0x96, 0x07, 0x8e, 0x8f, 0xec, 0x72, 0x10, 0x78, 0xc0, 0x39, 0x70, + 0xd3, 0xfd, 0xca, 0x31, 0x79, 0x83, 0x4e, 0x7d, 0x99, 0x81, 0x49, 0x74, 0x0c, 0x2c, 0xb0, 0x6d, + 0x3a, 0x06, 0x7b, 0x3f, 0x7a, 0xe8, 0xed, 0x6d, 0xb5, 0xa2, 0xff, 0x4d, 0xc5, 0x3b, 0xdb, 0x7c, + 0xf9, 0xc8, 0x66, 0x19, 0xf5, 0xbe, 0x78, 0x7f, 0x7d, 0x45, 0xb5, 0x9c, 0x97, 0x05, 0xad, 0xee, + 0x0a, 0xb7, 0xc8, 0xcb, 0x36, 0xe9, 0xa7, 0xab, 0x58, 0x7f, 0xad, 0xff, 0x71, 0x24, 0x1f, 0xda, + 0xef, 0x37, 0x67, 0x47, 0x30, 0xf6, 0xdd, 0x39, 0x17, 0x5d, 0x2b, 0xb6, 0xa8, 0x69, 0x07, 0x2d, + 0xca, 0xc6, 0xd4, 0xc6, 0x5f, 0xff, 0x7c, 0xe2, 0x67, 0x6c, 0x51, 0xcf, 0x9e, 0xf9, 0x59, 0x36, + 0x9e, 0xb5, 0xfc, 0xcd, 0x7e, 0x3b, 0xf4, 0xdd, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x05, 0xeb, + 0x43, 0x52, 0x98, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/conversion_action_category.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/conversion_action_category.pb.go new file mode 100644 index 000000000..048ac5aeb --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/conversion_action_category.pb.go @@ -0,0 +1,135 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/conversion_action_category.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// The category of conversions that are associated with a ConversionAction. +type ConversionActionCategoryEnum_ConversionActionCategory int32 + +const ( + // Not specified. + ConversionActionCategoryEnum_UNSPECIFIED ConversionActionCategoryEnum_ConversionActionCategory = 0 + // Used for return value only. Represents value unknown in this version. + ConversionActionCategoryEnum_UNKNOWN ConversionActionCategoryEnum_ConversionActionCategory = 1 + // Default category. + ConversionActionCategoryEnum_DEFAULT ConversionActionCategoryEnum_ConversionActionCategory = 2 + // User visiting a page. + ConversionActionCategoryEnum_PAGE_VIEW ConversionActionCategoryEnum_ConversionActionCategory = 3 + // Purchase, sales, or "order placed" event. + ConversionActionCategoryEnum_PURCHASE ConversionActionCategoryEnum_ConversionActionCategory = 4 + // Signup user action. + ConversionActionCategoryEnum_SIGNUP ConversionActionCategoryEnum_ConversionActionCategory = 5 + // Lead-generating action. + ConversionActionCategoryEnum_LEAD ConversionActionCategoryEnum_ConversionActionCategory = 6 + // Software download action (as for an app). + ConversionActionCategoryEnum_DOWNLOAD ConversionActionCategoryEnum_ConversionActionCategory = 7 +) + +var ConversionActionCategoryEnum_ConversionActionCategory_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "DEFAULT", + 3: "PAGE_VIEW", + 4: "PURCHASE", + 5: "SIGNUP", + 6: "LEAD", + 7: "DOWNLOAD", +} +var ConversionActionCategoryEnum_ConversionActionCategory_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "DEFAULT": 2, + "PAGE_VIEW": 3, + "PURCHASE": 4, + "SIGNUP": 5, + "LEAD": 6, + "DOWNLOAD": 7, +} + +func (x ConversionActionCategoryEnum_ConversionActionCategory) String() string { + return proto.EnumName(ConversionActionCategoryEnum_ConversionActionCategory_name, int32(x)) +} +func (ConversionActionCategoryEnum_ConversionActionCategory) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_conversion_action_category_58fddaaaba20c6a0, []int{0, 0} +} + +// Container for enum describing the category of conversions that are associated +// with a ConversionAction. +type ConversionActionCategoryEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ConversionActionCategoryEnum) Reset() { *m = ConversionActionCategoryEnum{} } +func (m *ConversionActionCategoryEnum) String() string { return proto.CompactTextString(m) } +func (*ConversionActionCategoryEnum) ProtoMessage() {} +func (*ConversionActionCategoryEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_conversion_action_category_58fddaaaba20c6a0, []int{0} +} +func (m *ConversionActionCategoryEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ConversionActionCategoryEnum.Unmarshal(m, b) +} +func (m *ConversionActionCategoryEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ConversionActionCategoryEnum.Marshal(b, m, deterministic) +} +func (dst *ConversionActionCategoryEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_ConversionActionCategoryEnum.Merge(dst, src) +} +func (m *ConversionActionCategoryEnum) XXX_Size() int { + return xxx_messageInfo_ConversionActionCategoryEnum.Size(m) +} +func (m *ConversionActionCategoryEnum) XXX_DiscardUnknown() { + xxx_messageInfo_ConversionActionCategoryEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_ConversionActionCategoryEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*ConversionActionCategoryEnum)(nil), "google.ads.googleads.v0.enums.ConversionActionCategoryEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.ConversionActionCategoryEnum_ConversionActionCategory", ConversionActionCategoryEnum_ConversionActionCategory_name, ConversionActionCategoryEnum_ConversionActionCategory_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/conversion_action_category.proto", fileDescriptor_conversion_action_category_58fddaaaba20c6a0) +} + +var fileDescriptor_conversion_action_category_58fddaaaba20c6a0 = []byte{ + // 322 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0xd1, 0x6a, 0xf2, 0x30, + 0x1c, 0xc5, 0xbf, 0xaa, 0x9f, 0xba, 0xb8, 0xb1, 0x90, 0xab, 0x5d, 0xcc, 0x8b, 0xf9, 0x00, 0x69, + 0x61, 0x97, 0x83, 0x41, 0x6c, 0x63, 0x57, 0x26, 0x31, 0xcc, 0x55, 0x61, 0x14, 0xa4, 0x6b, 0x4b, + 0x10, 0x34, 0x91, 0x46, 0x85, 0xbd, 0xc0, 0x1e, 0x64, 0x37, 0x83, 0x3d, 0xca, 0x2e, 0xf6, 0x4c, + 0x23, 0xa9, 0x7a, 0xd7, 0xdd, 0x24, 0x27, 0x9c, 0xff, 0x39, 0x49, 0x7e, 0xe0, 0x5e, 0x28, 0x25, + 0x56, 0x85, 0x9b, 0xe6, 0xda, 0xad, 0xa4, 0x51, 0x7b, 0xcf, 0x2d, 0xe4, 0x6e, 0xad, 0xdd, 0x4c, + 0xc9, 0x7d, 0x51, 0xea, 0xa5, 0x92, 0x8b, 0x34, 0xdb, 0x9a, 0x2d, 0x4b, 0xb7, 0x85, 0x50, 0xe5, + 0x1b, 0xde, 0x94, 0x6a, 0xab, 0x50, 0xbf, 0x0a, 0xe1, 0x34, 0xd7, 0xf8, 0x94, 0xc7, 0x7b, 0x0f, + 0xdb, 0xfc, 0xe0, 0xd3, 0x01, 0xd7, 0xfe, 0xa9, 0x83, 0xd8, 0x0a, 0xff, 0xd0, 0x40, 0xe5, 0x6e, + 0x3d, 0x78, 0x77, 0xc0, 0x55, 0xdd, 0x00, 0xba, 0x04, 0xbd, 0x98, 0x4d, 0x39, 0xf5, 0xa3, 0x51, + 0x44, 0x03, 0xf8, 0x0f, 0xf5, 0x40, 0x27, 0x66, 0x8f, 0x6c, 0x32, 0x67, 0xd0, 0x31, 0x87, 0x80, + 0x8e, 0x48, 0x3c, 0x7e, 0x86, 0x0d, 0x74, 0x01, 0xce, 0x38, 0x09, 0xe9, 0x62, 0x16, 0xd1, 0x39, + 0x6c, 0xa2, 0x73, 0xd0, 0xe5, 0xf1, 0x93, 0xff, 0x40, 0xa6, 0x14, 0xb6, 0x10, 0x00, 0xed, 0x69, + 0x14, 0xb2, 0x98, 0xc3, 0xff, 0xa8, 0x0b, 0x5a, 0x63, 0x4a, 0x02, 0xd8, 0x36, 0x33, 0xc1, 0x64, + 0xce, 0xc6, 0x13, 0x12, 0xc0, 0xce, 0xf0, 0xc7, 0x01, 0x37, 0x99, 0x5a, 0xe3, 0x3f, 0xff, 0x33, + 0xec, 0xd7, 0xbd, 0x95, 0x1b, 0x1a, 0xdc, 0x79, 0x19, 0x1e, 0xf2, 0x42, 0xad, 0x52, 0x29, 0xb0, + 0x2a, 0x85, 0x2b, 0x0a, 0x69, 0x59, 0x1d, 0xf9, 0x6e, 0x96, 0xba, 0x06, 0xf7, 0x9d, 0x5d, 0x3f, + 0x1a, 0xcd, 0x90, 0x90, 0xaf, 0x46, 0x3f, 0xac, 0xaa, 0x48, 0xae, 0x71, 0x25, 0x8d, 0x9a, 0x79, + 0xd8, 0x80, 0xd3, 0xdf, 0x47, 0x3f, 0x21, 0xb9, 0x4e, 0x4e, 0x7e, 0x32, 0xf3, 0x12, 0xeb, 0xbf, + 0xb6, 0xed, 0xa5, 0xb7, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x28, 0x09, 0x80, 0xdc, 0xe2, 0x01, + 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/conversion_action_counting_type.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/conversion_action_counting_type.pb.go new file mode 100644 index 000000000..d85d721ec --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/conversion_action_counting_type.pb.go @@ -0,0 +1,118 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/conversion_action_counting_type.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Indicates how conversions for this action will be counted. For more +// information, see https://support.google.com/google-ads/answer/3438531. +type ConversionActionCountingTypeEnum_ConversionActionCountingType int32 + +const ( + // Not specified. + ConversionActionCountingTypeEnum_UNSPECIFIED ConversionActionCountingTypeEnum_ConversionActionCountingType = 0 + // Used for return value only. Represents value unknown in this version. + ConversionActionCountingTypeEnum_UNKNOWN ConversionActionCountingTypeEnum_ConversionActionCountingType = 1 + // Count only one conversion per click. + ConversionActionCountingTypeEnum_ONE_PER_CLICK ConversionActionCountingTypeEnum_ConversionActionCountingType = 2 + // Count all conversions per click. + ConversionActionCountingTypeEnum_MANY_PER_CLICK ConversionActionCountingTypeEnum_ConversionActionCountingType = 3 +) + +var ConversionActionCountingTypeEnum_ConversionActionCountingType_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "ONE_PER_CLICK", + 3: "MANY_PER_CLICK", +} +var ConversionActionCountingTypeEnum_ConversionActionCountingType_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "ONE_PER_CLICK": 2, + "MANY_PER_CLICK": 3, +} + +func (x ConversionActionCountingTypeEnum_ConversionActionCountingType) String() string { + return proto.EnumName(ConversionActionCountingTypeEnum_ConversionActionCountingType_name, int32(x)) +} +func (ConversionActionCountingTypeEnum_ConversionActionCountingType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_conversion_action_counting_type_a5ab9312a541ab18, []int{0, 0} +} + +// Container for enum describing the conversion deduplication mode for +// conversion optimizer. +type ConversionActionCountingTypeEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ConversionActionCountingTypeEnum) Reset() { *m = ConversionActionCountingTypeEnum{} } +func (m *ConversionActionCountingTypeEnum) String() string { return proto.CompactTextString(m) } +func (*ConversionActionCountingTypeEnum) ProtoMessage() {} +func (*ConversionActionCountingTypeEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_conversion_action_counting_type_a5ab9312a541ab18, []int{0} +} +func (m *ConversionActionCountingTypeEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ConversionActionCountingTypeEnum.Unmarshal(m, b) +} +func (m *ConversionActionCountingTypeEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ConversionActionCountingTypeEnum.Marshal(b, m, deterministic) +} +func (dst *ConversionActionCountingTypeEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_ConversionActionCountingTypeEnum.Merge(dst, src) +} +func (m *ConversionActionCountingTypeEnum) XXX_Size() int { + return xxx_messageInfo_ConversionActionCountingTypeEnum.Size(m) +} +func (m *ConversionActionCountingTypeEnum) XXX_DiscardUnknown() { + xxx_messageInfo_ConversionActionCountingTypeEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_ConversionActionCountingTypeEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*ConversionActionCountingTypeEnum)(nil), "google.ads.googleads.v0.enums.ConversionActionCountingTypeEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.ConversionActionCountingTypeEnum_ConversionActionCountingType", ConversionActionCountingTypeEnum_ConversionActionCountingType_name, ConversionActionCountingTypeEnum_ConversionActionCountingType_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/conversion_action_counting_type.proto", fileDescriptor_conversion_action_counting_type_a5ab9312a541ab18) +} + +var fileDescriptor_conversion_action_counting_type_a5ab9312a541ab18 = []byte{ + // 289 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0xc1, 0x4a, 0xc3, 0x30, + 0x1c, 0xc6, 0xed, 0x06, 0x0a, 0x19, 0x6a, 0xcd, 0xd9, 0x81, 0xdb, 0x03, 0xa4, 0x05, 0x8f, 0x9e, + 0xd2, 0x58, 0x47, 0x99, 0x66, 0x45, 0xdd, 0x44, 0x29, 0x94, 0xda, 0x86, 0x50, 0x58, 0x93, 0xd2, + 0xb4, 0x85, 0x3d, 0x81, 0xef, 0xe1, 0xd1, 0x47, 0xf1, 0xe8, 0x13, 0x49, 0xd2, 0xad, 0x78, 0xb1, + 0x97, 0xe4, 0x23, 0x5f, 0xf2, 0xcb, 0xf7, 0xff, 0x00, 0xe1, 0x52, 0xf2, 0x2d, 0x73, 0x92, 0x4c, + 0x39, 0x9d, 0xd4, 0xaa, 0x75, 0x1d, 0x26, 0x9a, 0x42, 0x39, 0xa9, 0x14, 0x2d, 0xab, 0x54, 0x2e, + 0x45, 0x9c, 0xa4, 0xb5, 0xde, 0x52, 0xd9, 0x88, 0x3a, 0x17, 0x3c, 0xae, 0x77, 0x25, 0x43, 0x65, + 0x25, 0x6b, 0x09, 0xa7, 0xdd, 0x4b, 0x94, 0x64, 0x0a, 0xf5, 0x10, 0xd4, 0xba, 0xc8, 0x40, 0xe6, + 0x1f, 0x16, 0xb8, 0x22, 0x3d, 0x08, 0x1b, 0x0e, 0xd9, 0x63, 0x9e, 0x77, 0x25, 0xf3, 0x45, 0x53, + 0xcc, 0x53, 0x70, 0x39, 0x74, 0x07, 0x9e, 0x83, 0xc9, 0x9a, 0x3e, 0x85, 0x3e, 0x09, 0xee, 0x02, + 0xff, 0xd6, 0x3e, 0x82, 0x13, 0x70, 0xb2, 0xa6, 0x4b, 0xba, 0x7a, 0xa1, 0xb6, 0x05, 0x2f, 0xc0, + 0xe9, 0x8a, 0xfa, 0x71, 0xe8, 0x3f, 0xc6, 0xe4, 0x3e, 0x20, 0x4b, 0x7b, 0x04, 0x21, 0x38, 0x7b, + 0xc0, 0xf4, 0xf5, 0xcf, 0xd9, 0xd8, 0xfb, 0xb1, 0xc0, 0x2c, 0x95, 0x05, 0x1a, 0xcc, 0xeb, 0xcd, + 0x86, 0x82, 0x84, 0x7a, 0xe2, 0xd0, 0x7a, 0xf3, 0xf6, 0x0c, 0x2e, 0xb7, 0x89, 0xe0, 0x48, 0x56, + 0xdc, 0xe1, 0x4c, 0x98, 0x3e, 0x0e, 0x45, 0x96, 0xb9, 0xfa, 0xa7, 0xd7, 0x1b, 0xb3, 0x7e, 0x8e, + 0xc6, 0x0b, 0x8c, 0xbf, 0x46, 0xd3, 0x45, 0x87, 0xc2, 0x99, 0x42, 0x9d, 0xd4, 0x6a, 0xe3, 0x22, + 0x5d, 0x8c, 0xfa, 0x3e, 0xf8, 0x11, 0xce, 0x54, 0xd4, 0xfb, 0xd1, 0xc6, 0x8d, 0x8c, 0xff, 0x7e, + 0x6c, 0x3e, 0xbd, 0xfe, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x6f, 0x44, 0xe6, 0xb3, 0xcb, 0x01, 0x00, + 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/conversion_action_status.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/conversion_action_status.pb.go new file mode 100644 index 000000000..973a73c75 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/conversion_action_status.pb.go @@ -0,0 +1,120 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/conversion_action_status.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Possible statuses of a conversion action. +type ConversionActionStatusEnum_ConversionActionStatus int32 + +const ( + // Not specified. + ConversionActionStatusEnum_UNSPECIFIED ConversionActionStatusEnum_ConversionActionStatus = 0 + // Used for return value only. Represents value unknown in this version. + ConversionActionStatusEnum_UNKNOWN ConversionActionStatusEnum_ConversionActionStatus = 1 + // Conversions will be recorded. + ConversionActionStatusEnum_ENABLED ConversionActionStatusEnum_ConversionActionStatus = 2 + // Conversions will not be recorded. + ConversionActionStatusEnum_REMOVED ConversionActionStatusEnum_ConversionActionStatus = 3 + // Conversions will not be recorded and the conversion action will not + // appear in the UI. + ConversionActionStatusEnum_HIDDEN ConversionActionStatusEnum_ConversionActionStatus = 4 +) + +var ConversionActionStatusEnum_ConversionActionStatus_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "ENABLED", + 3: "REMOVED", + 4: "HIDDEN", +} +var ConversionActionStatusEnum_ConversionActionStatus_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "ENABLED": 2, + "REMOVED": 3, + "HIDDEN": 4, +} + +func (x ConversionActionStatusEnum_ConversionActionStatus) String() string { + return proto.EnumName(ConversionActionStatusEnum_ConversionActionStatus_name, int32(x)) +} +func (ConversionActionStatusEnum_ConversionActionStatus) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_conversion_action_status_b2b7ef780a9c4a8e, []int{0, 0} +} + +// Container for enum describing possible statuses of a conversion action. +type ConversionActionStatusEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ConversionActionStatusEnum) Reset() { *m = ConversionActionStatusEnum{} } +func (m *ConversionActionStatusEnum) String() string { return proto.CompactTextString(m) } +func (*ConversionActionStatusEnum) ProtoMessage() {} +func (*ConversionActionStatusEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_conversion_action_status_b2b7ef780a9c4a8e, []int{0} +} +func (m *ConversionActionStatusEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ConversionActionStatusEnum.Unmarshal(m, b) +} +func (m *ConversionActionStatusEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ConversionActionStatusEnum.Marshal(b, m, deterministic) +} +func (dst *ConversionActionStatusEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_ConversionActionStatusEnum.Merge(dst, src) +} +func (m *ConversionActionStatusEnum) XXX_Size() int { + return xxx_messageInfo_ConversionActionStatusEnum.Size(m) +} +func (m *ConversionActionStatusEnum) XXX_DiscardUnknown() { + xxx_messageInfo_ConversionActionStatusEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_ConversionActionStatusEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*ConversionActionStatusEnum)(nil), "google.ads.googleads.v0.enums.ConversionActionStatusEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.ConversionActionStatusEnum_ConversionActionStatus", ConversionActionStatusEnum_ConversionActionStatus_name, ConversionActionStatusEnum_ConversionActionStatus_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/conversion_action_status.proto", fileDescriptor_conversion_action_status_b2b7ef780a9c4a8e) +} + +var fileDescriptor_conversion_action_status_b2b7ef780a9c4a8e = []byte{ + // 280 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x49, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xbc, + 0xd2, 0xdc, 0x62, 0xfd, 0xe4, 0xfc, 0xbc, 0xb2, 0xd4, 0xa2, 0xe2, 0xcc, 0xfc, 0xbc, 0xf8, 0xc4, + 0xe4, 0x12, 0x10, 0x55, 0x5c, 0x92, 0x58, 0x52, 0x5a, 0xac, 0x57, 0x50, 0x94, 0x5f, 0x92, 0x2f, + 0x24, 0x0b, 0xd1, 0xa2, 0x97, 0x98, 0x52, 0xac, 0x07, 0xd7, 0xad, 0x57, 0x66, 0xa0, 0x07, 0xd6, + 0xad, 0x54, 0xc5, 0x25, 0xe5, 0x0c, 0x37, 0xc0, 0x11, 0xac, 0x3f, 0x18, 0xac, 0xdd, 0x35, 0xaf, + 0x34, 0x57, 0x29, 0x86, 0x4b, 0x0c, 0xbb, 0xac, 0x10, 0x3f, 0x17, 0x77, 0xa8, 0x5f, 0x70, 0x80, + 0xab, 0xb3, 0xa7, 0x9b, 0xa7, 0xab, 0x8b, 0x00, 0x83, 0x10, 0x37, 0x17, 0x7b, 0xa8, 0x9f, 0xb7, + 0x9f, 0x7f, 0xb8, 0x9f, 0x00, 0x23, 0x88, 0xe3, 0xea, 0xe7, 0xe8, 0xe4, 0xe3, 0xea, 0x22, 0xc0, + 0x04, 0xe2, 0x04, 0xb9, 0xfa, 0xfa, 0x87, 0xb9, 0xba, 0x08, 0x30, 0x0b, 0x71, 0x71, 0xb1, 0x79, + 0x78, 0xba, 0xb8, 0xb8, 0xfa, 0x09, 0xb0, 0x38, 0x9d, 0x61, 0xe4, 0x52, 0x4c, 0xce, 0xcf, 0xd5, + 0xc3, 0xeb, 0x42, 0x27, 0x69, 0xec, 0x2e, 0x08, 0x00, 0xf9, 0x2e, 0x80, 0x31, 0xca, 0x09, 0xaa, + 0x3b, 0x3d, 0x3f, 0x27, 0x31, 0x2f, 0x5d, 0x2f, 0xbf, 0x28, 0x5d, 0x3f, 0x3d, 0x35, 0x0f, 0xec, + 0x77, 0x58, 0x68, 0x15, 0x64, 0x16, 0xe3, 0x08, 0x3c, 0x6b, 0x30, 0xb9, 0x88, 0x89, 0xd9, 0xdd, + 0xd1, 0x71, 0x15, 0x93, 0xac, 0x3b, 0xc4, 0x28, 0xc7, 0x94, 0x62, 0x3d, 0x08, 0x13, 0xc4, 0x0a, + 0x33, 0xd0, 0x03, 0x85, 0x45, 0xf1, 0x29, 0x98, 0x7c, 0x8c, 0x63, 0x4a, 0x71, 0x0c, 0x5c, 0x3e, + 0x26, 0xcc, 0x20, 0x06, 0x2c, 0x9f, 0xc4, 0x06, 0xb6, 0xd4, 0x18, 0x10, 0x00, 0x00, 0xff, 0xff, + 0x5f, 0x8e, 0x82, 0x7b, 0xb0, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/conversion_action_type.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/conversion_action_type.pb.go new file mode 100644 index 000000000..ef7f2caf1 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/conversion_action_type.pb.go @@ -0,0 +1,149 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/conversion_action_type.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Possible types of a conversion action. +type ConversionActionTypeEnum_ConversionActionType int32 + +const ( + // Not specified. + ConversionActionTypeEnum_UNSPECIFIED ConversionActionTypeEnum_ConversionActionType = 0 + // Used for return value only. Represents value unknown in this version. + ConversionActionTypeEnum_UNKNOWN ConversionActionTypeEnum_ConversionActionType = 1 + // Conversions that occur when a user clicks on an ad's call extension. + ConversionActionTypeEnum_AD_CALL ConversionActionTypeEnum_ConversionActionType = 2 + // Conversions that occur when a user on a mobile device clicks a phone + // number. + ConversionActionTypeEnum_CLICK_TO_CALL ConversionActionTypeEnum_ConversionActionType = 3 + // Conversions that occur when a user downloads a mobile app from the Google + // Play Store. + ConversionActionTypeEnum_GOOGLE_PLAY_DOWNLOAD ConversionActionTypeEnum_ConversionActionType = 4 + // Conversions that occur when a user makes a purchase in an app through + // Android billing. + ConversionActionTypeEnum_GOOGLE_PLAY_IN_APP_PURCHASE ConversionActionTypeEnum_ConversionActionType = 5 + // Call conversions that are tracked by the advertiser and uploaded. + ConversionActionTypeEnum_UPLOAD_CALLS ConversionActionTypeEnum_ConversionActionType = 6 + // Conversions that are tracked by the advertiser and uploaded with + // attributed clicks. + ConversionActionTypeEnum_UPLOAD_CLICKS ConversionActionTypeEnum_ConversionActionType = 7 + // Conversions that occur on a webpage. + ConversionActionTypeEnum_WEBPAGE ConversionActionTypeEnum_ConversionActionType = 8 + // Conversions that occur when a user calls a dynamically-generated phone + // number from an advertiser's website. + ConversionActionTypeEnum_WEBSITE_CALL ConversionActionTypeEnum_ConversionActionType = 9 +) + +var ConversionActionTypeEnum_ConversionActionType_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "AD_CALL", + 3: "CLICK_TO_CALL", + 4: "GOOGLE_PLAY_DOWNLOAD", + 5: "GOOGLE_PLAY_IN_APP_PURCHASE", + 6: "UPLOAD_CALLS", + 7: "UPLOAD_CLICKS", + 8: "WEBPAGE", + 9: "WEBSITE_CALL", +} +var ConversionActionTypeEnum_ConversionActionType_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "AD_CALL": 2, + "CLICK_TO_CALL": 3, + "GOOGLE_PLAY_DOWNLOAD": 4, + "GOOGLE_PLAY_IN_APP_PURCHASE": 5, + "UPLOAD_CALLS": 6, + "UPLOAD_CLICKS": 7, + "WEBPAGE": 8, + "WEBSITE_CALL": 9, +} + +func (x ConversionActionTypeEnum_ConversionActionType) String() string { + return proto.EnumName(ConversionActionTypeEnum_ConversionActionType_name, int32(x)) +} +func (ConversionActionTypeEnum_ConversionActionType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_conversion_action_type_b6eff01350215c1e, []int{0, 0} +} + +// Container for enum describing possible types of a conversion action. +type ConversionActionTypeEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ConversionActionTypeEnum) Reset() { *m = ConversionActionTypeEnum{} } +func (m *ConversionActionTypeEnum) String() string { return proto.CompactTextString(m) } +func (*ConversionActionTypeEnum) ProtoMessage() {} +func (*ConversionActionTypeEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_conversion_action_type_b6eff01350215c1e, []int{0} +} +func (m *ConversionActionTypeEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ConversionActionTypeEnum.Unmarshal(m, b) +} +func (m *ConversionActionTypeEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ConversionActionTypeEnum.Marshal(b, m, deterministic) +} +func (dst *ConversionActionTypeEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_ConversionActionTypeEnum.Merge(dst, src) +} +func (m *ConversionActionTypeEnum) XXX_Size() int { + return xxx_messageInfo_ConversionActionTypeEnum.Size(m) +} +func (m *ConversionActionTypeEnum) XXX_DiscardUnknown() { + xxx_messageInfo_ConversionActionTypeEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_ConversionActionTypeEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*ConversionActionTypeEnum)(nil), "google.ads.googleads.v0.enums.ConversionActionTypeEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.ConversionActionTypeEnum_ConversionActionType", ConversionActionTypeEnum_ConversionActionType_name, ConversionActionTypeEnum_ConversionActionType_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/conversion_action_type.proto", fileDescriptor_conversion_action_type_b6eff01350215c1e) +} + +var fileDescriptor_conversion_action_type_b6eff01350215c1e = []byte{ + // 360 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x91, 0xd1, 0x4e, 0xbb, 0x30, + 0x14, 0xc6, 0xff, 0x6c, 0x7f, 0x37, 0xed, 0x34, 0x56, 0xb2, 0x8b, 0x19, 0xb3, 0x18, 0xf7, 0x00, + 0x85, 0xc4, 0x3b, 0xbd, 0x2a, 0x50, 0x91, 0x8c, 0x40, 0x23, 0x63, 0x44, 0x43, 0x42, 0x70, 0x10, + 0xb2, 0x64, 0xa3, 0x64, 0xdd, 0x96, 0xec, 0x75, 0xbc, 0xf4, 0x51, 0x76, 0xeb, 0x8b, 0xf8, 0x08, + 0xa6, 0xc5, 0x2d, 0x5e, 0x4c, 0x6f, 0xe0, 0xeb, 0xf9, 0xfa, 0x3b, 0x5f, 0x7a, 0x0e, 0xb8, 0x2b, + 0x18, 0x2b, 0x66, 0xb9, 0x96, 0x66, 0x5c, 0xab, 0xa5, 0x50, 0x6b, 0x5d, 0xcb, 0xcb, 0xd5, 0x9c, + 0x6b, 0x13, 0x56, 0xae, 0xf3, 0x05, 0x9f, 0xb2, 0x32, 0x49, 0x27, 0x4b, 0xf1, 0x5b, 0x6e, 0xaa, + 0x1c, 0x55, 0x0b, 0xb6, 0x64, 0x6a, 0xbf, 0x06, 0x50, 0x9a, 0x71, 0xb4, 0x67, 0xd1, 0x5a, 0x47, + 0x92, 0x1d, 0x7c, 0x2a, 0xa0, 0x67, 0xee, 0x79, 0x2c, 0xf1, 0xd1, 0xa6, 0xca, 0x49, 0xb9, 0x9a, + 0x0f, 0x3e, 0x14, 0xd0, 0x3d, 0x64, 0xaa, 0xe7, 0xa0, 0x13, 0x7a, 0x01, 0x25, 0xa6, 0xf3, 0xe0, + 0x10, 0x0b, 0xfe, 0x53, 0x3b, 0xa0, 0x1d, 0x7a, 0x43, 0xcf, 0x8f, 0x3c, 0xa8, 0x88, 0x03, 0xb6, + 0x12, 0x13, 0xbb, 0x2e, 0x6c, 0xa8, 0x17, 0xe0, 0xcc, 0x74, 0x1d, 0x73, 0x98, 0x8c, 0xfc, 0xba, + 0xd4, 0x54, 0x7b, 0xa0, 0x6b, 0xfb, 0xbe, 0xed, 0x92, 0x84, 0xba, 0xf8, 0x39, 0xb1, 0xfc, 0xc8, + 0x73, 0x7d, 0x6c, 0xc1, 0xff, 0xea, 0x35, 0xb8, 0xfa, 0xe9, 0x38, 0x5e, 0x82, 0x29, 0x4d, 0x68, + 0xf8, 0x64, 0x3e, 0xe2, 0x80, 0xc0, 0x23, 0x15, 0x82, 0xd3, 0x90, 0x8a, 0xcb, 0xb2, 0x57, 0x00, + 0x5b, 0xa2, 0xff, 0xae, 0x22, 0x62, 0x02, 0xd8, 0x16, 0xf9, 0x11, 0x31, 0x28, 0xb6, 0x09, 0x3c, + 0x16, 0x44, 0x44, 0x8c, 0xc0, 0x19, 0x91, 0x3a, 0xfe, 0xc4, 0xd8, 0x2a, 0xe0, 0x66, 0xc2, 0xe6, + 0xe8, 0xcf, 0xc1, 0x18, 0x97, 0x87, 0x1e, 0x4e, 0xc5, 0x48, 0xa9, 0xf2, 0x62, 0x7c, 0xb3, 0x05, + 0x9b, 0xa5, 0x65, 0x81, 0xd8, 0xa2, 0xd0, 0x8a, 0xbc, 0x94, 0x03, 0xdf, 0x2d, 0xa8, 0x9a, 0xf2, + 0x5f, 0xf6, 0x75, 0x2f, 0xbf, 0x6f, 0x8d, 0xa6, 0x8d, 0xf1, 0x7b, 0xa3, 0x6f, 0xd7, 0xad, 0x70, + 0xc6, 0x51, 0x2d, 0x85, 0x1a, 0xeb, 0x48, 0x6c, 0x80, 0x6f, 0x77, 0x7e, 0x8c, 0x33, 0x1e, 0xef, + 0xfd, 0x78, 0xac, 0xc7, 0xd2, 0x7f, 0x6d, 0xc9, 0xd0, 0xdb, 0xaf, 0x00, 0x00, 0x00, 0xff, 0xff, + 0x2c, 0xd4, 0xfc, 0x8a, 0x23, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/criterion_category_channel_availability_mode.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/criterion_category_channel_availability_mode.pb.go new file mode 100644 index 000000000..08a50cae2 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/criterion_category_channel_availability_mode.pb.go @@ -0,0 +1,131 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/criterion_category_channel_availability_mode.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum containing the possible CriterionCategoryChannelAvailabilityMode. +type CriterionCategoryChannelAvailabilityModeEnum_CriterionCategoryChannelAvailabilityMode int32 + +const ( + // Not specified. + CriterionCategoryChannelAvailabilityModeEnum_UNSPECIFIED CriterionCategoryChannelAvailabilityModeEnum_CriterionCategoryChannelAvailabilityMode = 0 + // Used for return value only. Represents value unknown in this version. + CriterionCategoryChannelAvailabilityModeEnum_UNKNOWN CriterionCategoryChannelAvailabilityModeEnum_CriterionCategoryChannelAvailabilityMode = 1 + // The category is available to campaigns of all channel types and subtypes. + CriterionCategoryChannelAvailabilityModeEnum_ALL_CHANNELS CriterionCategoryChannelAvailabilityModeEnum_CriterionCategoryChannelAvailabilityMode = 2 + // The category is available to campaigns of a specific channel type, + // including all subtypes under it. + CriterionCategoryChannelAvailabilityModeEnum_CHANNEL_TYPE_AND_ALL_SUBTYPES CriterionCategoryChannelAvailabilityModeEnum_CriterionCategoryChannelAvailabilityMode = 3 + // The category is available to campaigns of a specific channel type and + // subtype(s). + CriterionCategoryChannelAvailabilityModeEnum_CHANNEL_TYPE_AND_SUBSET_SUBTYPES CriterionCategoryChannelAvailabilityModeEnum_CriterionCategoryChannelAvailabilityMode = 4 +) + +var CriterionCategoryChannelAvailabilityModeEnum_CriterionCategoryChannelAvailabilityMode_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "ALL_CHANNELS", + 3: "CHANNEL_TYPE_AND_ALL_SUBTYPES", + 4: "CHANNEL_TYPE_AND_SUBSET_SUBTYPES", +} +var CriterionCategoryChannelAvailabilityModeEnum_CriterionCategoryChannelAvailabilityMode_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "ALL_CHANNELS": 2, + "CHANNEL_TYPE_AND_ALL_SUBTYPES": 3, + "CHANNEL_TYPE_AND_SUBSET_SUBTYPES": 4, +} + +func (x CriterionCategoryChannelAvailabilityModeEnum_CriterionCategoryChannelAvailabilityMode) String() string { + return proto.EnumName(CriterionCategoryChannelAvailabilityModeEnum_CriterionCategoryChannelAvailabilityMode_name, int32(x)) +} +func (CriterionCategoryChannelAvailabilityModeEnum_CriterionCategoryChannelAvailabilityMode) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_criterion_category_channel_availability_mode_9b4137a1b0eff9b7, []int{0, 0} +} + +// Describes channel availability mode for a criterion availability - whether +// the availability is meant to include all advertising channels, or a +// particular channel with all its channel subtypes, or a channel with a certain +// subset of channel subtypes. +type CriterionCategoryChannelAvailabilityModeEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CriterionCategoryChannelAvailabilityModeEnum) Reset() { + *m = CriterionCategoryChannelAvailabilityModeEnum{} +} +func (m *CriterionCategoryChannelAvailabilityModeEnum) String() string { + return proto.CompactTextString(m) +} +func (*CriterionCategoryChannelAvailabilityModeEnum) ProtoMessage() {} +func (*CriterionCategoryChannelAvailabilityModeEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_criterion_category_channel_availability_mode_9b4137a1b0eff9b7, []int{0} +} +func (m *CriterionCategoryChannelAvailabilityModeEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CriterionCategoryChannelAvailabilityModeEnum.Unmarshal(m, b) +} +func (m *CriterionCategoryChannelAvailabilityModeEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CriterionCategoryChannelAvailabilityModeEnum.Marshal(b, m, deterministic) +} +func (dst *CriterionCategoryChannelAvailabilityModeEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_CriterionCategoryChannelAvailabilityModeEnum.Merge(dst, src) +} +func (m *CriterionCategoryChannelAvailabilityModeEnum) XXX_Size() int { + return xxx_messageInfo_CriterionCategoryChannelAvailabilityModeEnum.Size(m) +} +func (m *CriterionCategoryChannelAvailabilityModeEnum) XXX_DiscardUnknown() { + xxx_messageInfo_CriterionCategoryChannelAvailabilityModeEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_CriterionCategoryChannelAvailabilityModeEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*CriterionCategoryChannelAvailabilityModeEnum)(nil), "google.ads.googleads.v0.enums.CriterionCategoryChannelAvailabilityModeEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.CriterionCategoryChannelAvailabilityModeEnum_CriterionCategoryChannelAvailabilityMode", CriterionCategoryChannelAvailabilityModeEnum_CriterionCategoryChannelAvailabilityMode_name, CriterionCategoryChannelAvailabilityModeEnum_CriterionCategoryChannelAvailabilityMode_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/criterion_category_channel_availability_mode.proto", fileDescriptor_criterion_category_channel_availability_mode_9b4137a1b0eff9b7) +} + +var fileDescriptor_criterion_category_channel_availability_mode_9b4137a1b0eff9b7 = []byte{ + // 332 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x91, 0x41, 0x4b, 0xc3, 0x30, + 0x1c, 0xc5, 0xed, 0x26, 0x0a, 0x99, 0x60, 0xe9, 0x7d, 0xe0, 0x86, 0x07, 0x0f, 0x9a, 0x16, 0x3c, + 0x7a, 0x4a, 0xbb, 0x3a, 0x87, 0x33, 0x16, 0xba, 0x4e, 0x94, 0x42, 0xc8, 0xda, 0x10, 0x0b, 0x6d, + 0x32, 0x9a, 0x6e, 0xb0, 0xaf, 0xa3, 0x37, 0x3f, 0x8a, 0x67, 0xcf, 0x7e, 0x16, 0x49, 0xbb, 0x4d, + 0x41, 0x94, 0x5d, 0xca, 0xfb, 0xf3, 0x5e, 0x7f, 0xe1, 0xff, 0xfe, 0x20, 0xe0, 0x52, 0xf2, 0x9c, + 0xd9, 0x34, 0x55, 0x76, 0x23, 0xb5, 0x5a, 0x3a, 0x36, 0x13, 0x8b, 0x42, 0xd9, 0x49, 0x99, 0x55, + 0xac, 0xcc, 0xa4, 0x20, 0x09, 0xad, 0x18, 0x97, 0xe5, 0x8a, 0x24, 0xcf, 0x54, 0x08, 0x96, 0x13, + 0xba, 0xa4, 0x59, 0x4e, 0x67, 0x59, 0x9e, 0x55, 0x2b, 0x52, 0xc8, 0x94, 0xc1, 0x79, 0x29, 0x2b, + 0x69, 0x75, 0x1b, 0x0c, 0xa4, 0xa9, 0x82, 0x5b, 0x22, 0x5c, 0x3a, 0xb0, 0x26, 0xf6, 0x3f, 0x0c, + 0x70, 0xee, 0x6d, 0xa8, 0xde, 0x1a, 0xea, 0x35, 0x4c, 0xf4, 0x03, 0x79, 0x27, 0x53, 0xe6, 0x8b, + 0x45, 0xd1, 0x7f, 0x35, 0xc0, 0xd9, 0xae, 0x3f, 0x58, 0xc7, 0xa0, 0x13, 0xe1, 0x30, 0xf0, 0xbd, + 0xd1, 0xf5, 0xc8, 0x1f, 0x98, 0x7b, 0x56, 0x07, 0x1c, 0x46, 0xf8, 0x16, 0xdf, 0x3f, 0x60, 0xd3, + 0xb0, 0x4c, 0x70, 0x84, 0xc6, 0x63, 0xe2, 0xdd, 0x20, 0x8c, 0xfd, 0x71, 0x68, 0xb6, 0xac, 0x1e, + 0xe8, 0xae, 0x27, 0x32, 0x79, 0x0c, 0x7c, 0x82, 0xf0, 0x80, 0xe8, 0x48, 0x18, 0xb9, 0x7a, 0x0e, + 0xcd, 0xb6, 0x75, 0x0a, 0x4e, 0x7e, 0x45, 0xc2, 0xc8, 0x0d, 0xfd, 0xc9, 0x77, 0x6a, 0xdf, 0xfd, + 0x34, 0x40, 0x2f, 0x91, 0x05, 0xfc, 0x77, 0x79, 0xf7, 0x62, 0xd7, 0x45, 0x02, 0x5d, 0x65, 0x60, + 0x3c, 0xb9, 0x6b, 0x1e, 0x97, 0x39, 0x15, 0x1c, 0xca, 0x92, 0xdb, 0x9c, 0x89, 0xba, 0xe8, 0xcd, + 0xb9, 0xe6, 0x99, 0xfa, 0xe3, 0x7a, 0x57, 0xf5, 0xf7, 0xa5, 0xd5, 0x1e, 0x22, 0xf4, 0xd6, 0xea, + 0x0e, 0x1b, 0x14, 0x4a, 0x15, 0x6c, 0xa4, 0x56, 0x53, 0x07, 0xea, 0x96, 0xd5, 0xfb, 0xc6, 0x8f, + 0x51, 0xaa, 0xe2, 0xad, 0x1f, 0x4f, 0x9d, 0xb8, 0xf6, 0x67, 0x07, 0xf5, 0xa3, 0x97, 0x5f, 0x01, + 0x00, 0x00, 0xff, 0xff, 0x00, 0xc3, 0x3f, 0x00, 0x31, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/criterion_category_locale_availability_mode.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/criterion_category_locale_availability_mode.pb.go new file mode 100644 index 000000000..b83cbc56e --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/criterion_category_locale_availability_mode.pb.go @@ -0,0 +1,136 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/criterion_category_locale_availability_mode.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum containing the possible CriterionCategoryLocaleAvailabilityMode. +type CriterionCategoryLocaleAvailabilityModeEnum_CriterionCategoryLocaleAvailabilityMode int32 + +const ( + // Not specified. + CriterionCategoryLocaleAvailabilityModeEnum_UNSPECIFIED CriterionCategoryLocaleAvailabilityModeEnum_CriterionCategoryLocaleAvailabilityMode = 0 + // Used for return value only. Represents value unknown in this version. + CriterionCategoryLocaleAvailabilityModeEnum_UNKNOWN CriterionCategoryLocaleAvailabilityModeEnum_CriterionCategoryLocaleAvailabilityMode = 1 + // The category is available to campaigns of all locales. + CriterionCategoryLocaleAvailabilityModeEnum_ALL_LOCALES CriterionCategoryLocaleAvailabilityModeEnum_CriterionCategoryLocaleAvailabilityMode = 2 + // The category is available to campaigns within a list of countries, + // regardless of language. + CriterionCategoryLocaleAvailabilityModeEnum_COUNTRY_AND_ALL_LANGUAGES CriterionCategoryLocaleAvailabilityModeEnum_CriterionCategoryLocaleAvailabilityMode = 3 + // The category is available to campaigns within a list of languages, + // regardless of country. + CriterionCategoryLocaleAvailabilityModeEnum_LANGUAGE_AND_ALL_COUNTRIES CriterionCategoryLocaleAvailabilityModeEnum_CriterionCategoryLocaleAvailabilityMode = 4 + // The category is available to campaigns within a list of country, language + // pairs. + CriterionCategoryLocaleAvailabilityModeEnum_COUNTRY_AND_LANGUAGE CriterionCategoryLocaleAvailabilityModeEnum_CriterionCategoryLocaleAvailabilityMode = 5 +) + +var CriterionCategoryLocaleAvailabilityModeEnum_CriterionCategoryLocaleAvailabilityMode_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "ALL_LOCALES", + 3: "COUNTRY_AND_ALL_LANGUAGES", + 4: "LANGUAGE_AND_ALL_COUNTRIES", + 5: "COUNTRY_AND_LANGUAGE", +} +var CriterionCategoryLocaleAvailabilityModeEnum_CriterionCategoryLocaleAvailabilityMode_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "ALL_LOCALES": 2, + "COUNTRY_AND_ALL_LANGUAGES": 3, + "LANGUAGE_AND_ALL_COUNTRIES": 4, + "COUNTRY_AND_LANGUAGE": 5, +} + +func (x CriterionCategoryLocaleAvailabilityModeEnum_CriterionCategoryLocaleAvailabilityMode) String() string { + return proto.EnumName(CriterionCategoryLocaleAvailabilityModeEnum_CriterionCategoryLocaleAvailabilityMode_name, int32(x)) +} +func (CriterionCategoryLocaleAvailabilityModeEnum_CriterionCategoryLocaleAvailabilityMode) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_criterion_category_locale_availability_mode_3ad4b9809399a3b4, []int{0, 0} +} + +// Describes locale availabilty mode for a criterion availability - whether +// it's available globally, or a particular country with all languages, or a +// particular language with all countries, or a country-language pair. +type CriterionCategoryLocaleAvailabilityModeEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CriterionCategoryLocaleAvailabilityModeEnum) Reset() { + *m = CriterionCategoryLocaleAvailabilityModeEnum{} +} +func (m *CriterionCategoryLocaleAvailabilityModeEnum) String() string { + return proto.CompactTextString(m) +} +func (*CriterionCategoryLocaleAvailabilityModeEnum) ProtoMessage() {} +func (*CriterionCategoryLocaleAvailabilityModeEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_criterion_category_locale_availability_mode_3ad4b9809399a3b4, []int{0} +} +func (m *CriterionCategoryLocaleAvailabilityModeEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CriterionCategoryLocaleAvailabilityModeEnum.Unmarshal(m, b) +} +func (m *CriterionCategoryLocaleAvailabilityModeEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CriterionCategoryLocaleAvailabilityModeEnum.Marshal(b, m, deterministic) +} +func (dst *CriterionCategoryLocaleAvailabilityModeEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_CriterionCategoryLocaleAvailabilityModeEnum.Merge(dst, src) +} +func (m *CriterionCategoryLocaleAvailabilityModeEnum) XXX_Size() int { + return xxx_messageInfo_CriterionCategoryLocaleAvailabilityModeEnum.Size(m) +} +func (m *CriterionCategoryLocaleAvailabilityModeEnum) XXX_DiscardUnknown() { + xxx_messageInfo_CriterionCategoryLocaleAvailabilityModeEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_CriterionCategoryLocaleAvailabilityModeEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*CriterionCategoryLocaleAvailabilityModeEnum)(nil), "google.ads.googleads.v0.enums.CriterionCategoryLocaleAvailabilityModeEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.CriterionCategoryLocaleAvailabilityModeEnum_CriterionCategoryLocaleAvailabilityMode", CriterionCategoryLocaleAvailabilityModeEnum_CriterionCategoryLocaleAvailabilityMode_name, CriterionCategoryLocaleAvailabilityModeEnum_CriterionCategoryLocaleAvailabilityMode_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/criterion_category_locale_availability_mode.proto", fileDescriptor_criterion_category_locale_availability_mode_3ad4b9809399a3b4) +} + +var fileDescriptor_criterion_category_locale_availability_mode_3ad4b9809399a3b4 = []byte{ + // 341 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x91, 0xcf, 0x4a, 0xc3, 0x30, + 0x1c, 0xc7, 0xed, 0xe6, 0x1f, 0xc8, 0x0e, 0x96, 0xe2, 0x41, 0x85, 0x09, 0xee, 0xe2, 0x41, 0x49, + 0x0b, 0x1e, 0x3d, 0x65, 0x5d, 0x2d, 0xc3, 0x9a, 0x0e, 0x6b, 0x27, 0x4a, 0x21, 0x64, 0x6d, 0x08, + 0x85, 0xb6, 0x19, 0x4d, 0x37, 0xd8, 0xeb, 0x78, 0xf4, 0xe6, 0x6b, 0xf8, 0x0e, 0x1e, 0x7c, 0x13, + 0x69, 0xba, 0x8e, 0x5d, 0x94, 0x5d, 0xca, 0xb7, 0x7c, 0x7e, 0xf9, 0x84, 0x7c, 0x7f, 0xc0, 0xe7, + 0x42, 0xf0, 0x8c, 0x99, 0x34, 0x91, 0x66, 0x13, 0xeb, 0xb4, 0xb4, 0x4c, 0x56, 0x2c, 0x72, 0x69, + 0xc6, 0x65, 0x5a, 0xb1, 0x32, 0x15, 0x05, 0x89, 0x69, 0xc5, 0xb8, 0x28, 0x57, 0x24, 0x13, 0x31, + 0xcd, 0x18, 0xa1, 0x4b, 0x9a, 0x66, 0x74, 0x96, 0x66, 0x69, 0xb5, 0x22, 0xb9, 0x48, 0x18, 0x9c, + 0x97, 0xa2, 0x12, 0x46, 0xbf, 0xb1, 0x40, 0x9a, 0x48, 0xb8, 0x11, 0xc2, 0xa5, 0x05, 0x95, 0x70, + 0xf0, 0xa3, 0x81, 0x6b, 0xbb, 0x95, 0xda, 0x6b, 0xa7, 0xa7, 0x94, 0x68, 0xcb, 0xf8, 0x28, 0x12, + 0xe6, 0x14, 0x8b, 0x7c, 0xf0, 0xa9, 0x81, 0xab, 0x1d, 0xe7, 0x8d, 0x63, 0xd0, 0x0b, 0x71, 0x30, + 0x71, 0xec, 0xf1, 0xfd, 0xd8, 0x19, 0xe9, 0x7b, 0x46, 0x0f, 0x1c, 0x85, 0xf8, 0x01, 0xfb, 0x2f, + 0x58, 0xd7, 0x6a, 0x8a, 0x3c, 0x8f, 0x78, 0xbe, 0x8d, 0x3c, 0x27, 0xd0, 0x3b, 0x46, 0x1f, 0x9c, + 0xd9, 0x7e, 0x88, 0x9f, 0x9f, 0x5e, 0x09, 0xc2, 0x23, 0xa2, 0x20, 0xc2, 0x6e, 0x88, 0x5c, 0x27, + 0xd0, 0xbb, 0xc6, 0x05, 0x38, 0x6f, 0x7f, 0x37, 0xbc, 0x99, 0x1f, 0x3b, 0x81, 0xbe, 0x6f, 0x9c, + 0x82, 0x93, 0xed, 0xe3, 0xed, 0xac, 0x7e, 0x30, 0xfc, 0xd6, 0xc0, 0x65, 0x2c, 0x72, 0xf8, 0x6f, + 0x13, 0xc3, 0x9b, 0x1d, 0x9f, 0x35, 0xa9, 0x6b, 0x9d, 0x68, 0x6f, 0xc3, 0xb5, 0x8e, 0x8b, 0x8c, + 0x16, 0x1c, 0x8a, 0x92, 0x9b, 0x9c, 0x15, 0xaa, 0xf4, 0x76, 0x73, 0xf3, 0x54, 0xfe, 0xb1, 0xc8, + 0x3b, 0xf5, 0x7d, 0xef, 0x74, 0x5d, 0x84, 0x3e, 0x3a, 0x7d, 0xb7, 0x51, 0xa1, 0x44, 0xc2, 0x26, + 0xd6, 0x69, 0x6a, 0xc1, 0xba, 0x72, 0xf9, 0xd5, 0xf2, 0x08, 0x25, 0x32, 0xda, 0xf0, 0x68, 0x6a, + 0x45, 0x8a, 0xcf, 0x0e, 0xd5, 0xa5, 0xb7, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0xc4, 0xfc, 0x96, + 0x5b, 0x3c, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/criterion_type.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/criterion_type.pb.go new file mode 100644 index 000000000..9316cb32b --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/criterion_type.pb.go @@ -0,0 +1,203 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/criterion_type.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible criterion types. +type CriterionTypeEnum_CriterionType int32 + +const ( + // Not specified. + CriterionTypeEnum_UNSPECIFIED CriterionTypeEnum_CriterionType = 0 + // Used for return value only. Represents value unknown in this version. + CriterionTypeEnum_UNKNOWN CriterionTypeEnum_CriterionType = 1 + // Keyword. e.g. 'mars cruise'. + CriterionTypeEnum_KEYWORD CriterionTypeEnum_CriterionType = 2 + // Placement, aka Website. e.g. 'www.flowers4sale.com' + CriterionTypeEnum_PLACEMENT CriterionTypeEnum_CriterionType = 3 + // Devices to target. + CriterionTypeEnum_DEVICE CriterionTypeEnum_CriterionType = 6 + // Locations to target. + CriterionTypeEnum_LOCATION CriterionTypeEnum_CriterionType = 7 + // Listing groups to target. + CriterionTypeEnum_LISTING_GROUP CriterionTypeEnum_CriterionType = 8 + // Ad Schedule. + CriterionTypeEnum_AD_SCHEDULE CriterionTypeEnum_CriterionType = 9 + // Age range. + CriterionTypeEnum_AGE_RANGE CriterionTypeEnum_CriterionType = 10 + // Gender. + CriterionTypeEnum_GENDER CriterionTypeEnum_CriterionType = 11 + // Income Range. + CriterionTypeEnum_INCOME_RANGE CriterionTypeEnum_CriterionType = 12 + // Parental status. + CriterionTypeEnum_PARENTAL_STATUS CriterionTypeEnum_CriterionType = 13 + // YouTube Video. + CriterionTypeEnum_YOUTUBE_VIDEO CriterionTypeEnum_CriterionType = 14 + // YouTube Channel. + CriterionTypeEnum_YOUTUBE_CHANNEL CriterionTypeEnum_CriterionType = 15 + // User list. + CriterionTypeEnum_USER_LIST CriterionTypeEnum_CriterionType = 16 + // Proximity. + CriterionTypeEnum_PROXIMITY CriterionTypeEnum_CriterionType = 17 + // A topic target on the display network (e.g. "Pets & Animals"). + CriterionTypeEnum_TOPIC CriterionTypeEnum_CriterionType = 18 + // Listing scope to target. + CriterionTypeEnum_LISTING_SCOPE CriterionTypeEnum_CriterionType = 19 + // Language. + CriterionTypeEnum_LANGUAGE CriterionTypeEnum_CriterionType = 20 + // IpBlock. + CriterionTypeEnum_IP_BLOCK CriterionTypeEnum_CriterionType = 21 + // Content Label for category exclusion. + CriterionTypeEnum_CONTENT_LABEL CriterionTypeEnum_CriterionType = 22 + // Carrier. + CriterionTypeEnum_CARRIER CriterionTypeEnum_CriterionType = 23 + // A category the user is interested in. + CriterionTypeEnum_USER_INTEREST CriterionTypeEnum_CriterionType = 24 +) + +var CriterionTypeEnum_CriterionType_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "KEYWORD", + 3: "PLACEMENT", + 6: "DEVICE", + 7: "LOCATION", + 8: "LISTING_GROUP", + 9: "AD_SCHEDULE", + 10: "AGE_RANGE", + 11: "GENDER", + 12: "INCOME_RANGE", + 13: "PARENTAL_STATUS", + 14: "YOUTUBE_VIDEO", + 15: "YOUTUBE_CHANNEL", + 16: "USER_LIST", + 17: "PROXIMITY", + 18: "TOPIC", + 19: "LISTING_SCOPE", + 20: "LANGUAGE", + 21: "IP_BLOCK", + 22: "CONTENT_LABEL", + 23: "CARRIER", + 24: "USER_INTEREST", +} +var CriterionTypeEnum_CriterionType_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "KEYWORD": 2, + "PLACEMENT": 3, + "DEVICE": 6, + "LOCATION": 7, + "LISTING_GROUP": 8, + "AD_SCHEDULE": 9, + "AGE_RANGE": 10, + "GENDER": 11, + "INCOME_RANGE": 12, + "PARENTAL_STATUS": 13, + "YOUTUBE_VIDEO": 14, + "YOUTUBE_CHANNEL": 15, + "USER_LIST": 16, + "PROXIMITY": 17, + "TOPIC": 18, + "LISTING_SCOPE": 19, + "LANGUAGE": 20, + "IP_BLOCK": 21, + "CONTENT_LABEL": 22, + "CARRIER": 23, + "USER_INTEREST": 24, +} + +func (x CriterionTypeEnum_CriterionType) String() string { + return proto.EnumName(CriterionTypeEnum_CriterionType_name, int32(x)) +} +func (CriterionTypeEnum_CriterionType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_criterion_type_f43400bfbfc8f5e1, []int{0, 0} +} + +// The possible types of a criterion. +type CriterionTypeEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CriterionTypeEnum) Reset() { *m = CriterionTypeEnum{} } +func (m *CriterionTypeEnum) String() string { return proto.CompactTextString(m) } +func (*CriterionTypeEnum) ProtoMessage() {} +func (*CriterionTypeEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_criterion_type_f43400bfbfc8f5e1, []int{0} +} +func (m *CriterionTypeEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CriterionTypeEnum.Unmarshal(m, b) +} +func (m *CriterionTypeEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CriterionTypeEnum.Marshal(b, m, deterministic) +} +func (dst *CriterionTypeEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_CriterionTypeEnum.Merge(dst, src) +} +func (m *CriterionTypeEnum) XXX_Size() int { + return xxx_messageInfo_CriterionTypeEnum.Size(m) +} +func (m *CriterionTypeEnum) XXX_DiscardUnknown() { + xxx_messageInfo_CriterionTypeEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_CriterionTypeEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*CriterionTypeEnum)(nil), "google.ads.googleads.v0.enums.CriterionTypeEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.CriterionTypeEnum_CriterionType", CriterionTypeEnum_CriterionType_name, CriterionTypeEnum_CriterionType_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/criterion_type.proto", fileDescriptor_criterion_type_f43400bfbfc8f5e1) +} + +var fileDescriptor_criterion_type_f43400bfbfc8f5e1 = []byte{ + // 473 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x52, 0xcd, 0x6e, 0xda, 0x40, + 0x10, 0x2e, 0xa0, 0x92, 0xb0, 0x40, 0x19, 0x36, 0xfd, 0xbb, 0xe4, 0xd0, 0x3c, 0x80, 0x8d, 0xda, + 0x63, 0x4f, 0xeb, 0xf5, 0xd4, 0x59, 0x61, 0x76, 0xad, 0xf5, 0x9a, 0x94, 0x0a, 0xc9, 0xa2, 0xc1, + 0xb2, 0x90, 0x82, 0x8d, 0x30, 0x89, 0x94, 0xd7, 0xe8, 0x23, 0xf4, 0xd8, 0xd7, 0xe8, 0xad, 0xcf, + 0xd4, 0x43, 0xb5, 0xa6, 0x8e, 0x9a, 0x43, 0x73, 0xb1, 0xbe, 0xdd, 0x6f, 0xbe, 0xf9, 0x76, 0x3c, + 0x1f, 0x79, 0x9f, 0x97, 0x65, 0x7e, 0x93, 0xb9, 0xab, 0x75, 0xe5, 0x1e, 0xa1, 0x45, 0x77, 0x13, + 0x37, 0x2b, 0x6e, 0xb7, 0x95, 0x7b, 0xbd, 0xdf, 0x1c, 0xb2, 0xfd, 0xa6, 0x2c, 0xd2, 0xc3, 0xfd, + 0x2e, 0x73, 0x76, 0xfb, 0xf2, 0x50, 0xd2, 0xf3, 0x63, 0xa1, 0xb3, 0x5a, 0x57, 0xce, 0x83, 0xc6, + 0xb9, 0x9b, 0x38, 0xb5, 0xe6, 0xe2, 0x5b, 0x87, 0x8c, 0x79, 0xa3, 0x33, 0xf7, 0xbb, 0x0c, 0x8b, + 0xdb, 0xed, 0xc5, 0xef, 0x36, 0x19, 0x3e, 0xba, 0xa5, 0x23, 0xd2, 0x4f, 0x64, 0x1c, 0x21, 0x17, + 0x9f, 0x04, 0xfa, 0xf0, 0x8c, 0xf6, 0xc9, 0x49, 0x22, 0xa7, 0x52, 0x5d, 0x49, 0x68, 0xd9, 0xc3, + 0x14, 0x17, 0x57, 0x4a, 0xfb, 0xd0, 0xa6, 0x43, 0xd2, 0x8b, 0x42, 0xc6, 0x71, 0x86, 0xd2, 0x40, + 0x87, 0x12, 0xd2, 0xf5, 0x71, 0x2e, 0x38, 0x42, 0x97, 0x0e, 0xc8, 0x69, 0xa8, 0x38, 0x33, 0x42, + 0x49, 0x38, 0xa1, 0x63, 0x32, 0x0c, 0x45, 0x6c, 0x84, 0x0c, 0xd2, 0x40, 0xab, 0x24, 0x82, 0x53, + 0x6b, 0xc3, 0xfc, 0x34, 0xe6, 0x97, 0xe8, 0x27, 0x21, 0x42, 0xcf, 0x36, 0x63, 0x01, 0xa6, 0x9a, + 0xc9, 0x00, 0x81, 0xd8, 0x66, 0x01, 0x4a, 0x1f, 0x35, 0xf4, 0x29, 0x90, 0x81, 0x90, 0x5c, 0xcd, + 0x1a, 0x76, 0x40, 0xcf, 0xc8, 0x28, 0x62, 0x1a, 0xa5, 0x61, 0x61, 0x1a, 0x1b, 0x66, 0x92, 0x18, + 0x86, 0xd6, 0x65, 0xa1, 0x12, 0x93, 0x78, 0x98, 0xce, 0x85, 0x8f, 0x0a, 0x5e, 0xd8, 0xba, 0xe6, + 0x8a, 0x5f, 0x32, 0x29, 0x31, 0x84, 0x91, 0x75, 0x4a, 0x62, 0xd4, 0xa9, 0x7d, 0x12, 0x40, 0x3d, + 0x85, 0x56, 0x9f, 0xc5, 0x4c, 0x98, 0x05, 0x8c, 0x69, 0x8f, 0x3c, 0x37, 0x2a, 0x12, 0x1c, 0xe8, + 0xbf, 0xcf, 0x8e, 0xb9, 0x8a, 0x10, 0xce, 0xea, 0xb9, 0x98, 0x0c, 0x12, 0x16, 0x20, 0xbc, 0xb4, + 0x27, 0x11, 0xa5, 0x5e, 0xa8, 0xf8, 0x14, 0x5e, 0xd9, 0x72, 0xae, 0xa4, 0x41, 0x69, 0xd2, 0x90, + 0x79, 0x18, 0xc2, 0x6b, 0xfb, 0xbb, 0x38, 0xd3, 0x5a, 0xa0, 0x86, 0x37, 0x96, 0xaf, 0x7d, 0x85, + 0x34, 0xa8, 0x31, 0x36, 0xf0, 0xd6, 0xfb, 0xd9, 0x22, 0xef, 0xae, 0xcb, 0xad, 0xf3, 0xe4, 0xea, + 0x3c, 0xfa, 0x68, 0x43, 0x91, 0xdd, 0x76, 0xd4, 0xfa, 0xe2, 0xfd, 0x15, 0xe5, 0xe5, 0xcd, 0xaa, + 0xc8, 0x9d, 0x72, 0x9f, 0xbb, 0x79, 0x56, 0xd4, 0x59, 0x68, 0x32, 0xb3, 0xdb, 0x54, 0xff, 0x89, + 0xd0, 0xc7, 0xfa, 0xfb, 0xbd, 0xdd, 0x09, 0x18, 0xfb, 0xd1, 0x3e, 0x0f, 0x8e, 0xad, 0xd8, 0xba, + 0x72, 0x8e, 0xd0, 0xa2, 0xf9, 0xc4, 0xb1, 0x19, 0xa9, 0x7e, 0x35, 0xfc, 0x92, 0xad, 0xab, 0xe5, + 0x03, 0xbf, 0x9c, 0x4f, 0x96, 0x35, 0xff, 0xb5, 0x5b, 0x9b, 0x7e, 0xf8, 0x13, 0x00, 0x00, 0xff, + 0xff, 0xd0, 0xd6, 0x60, 0x96, 0xb6, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/custom_placeholder_field.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/custom_placeholder_field.pb.go new file mode 100644 index 000000000..263800cdc --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/custom_placeholder_field.pb.go @@ -0,0 +1,225 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/custom_placeholder_field.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Possible values for Custom placeholder fields. +type CustomPlaceholderFieldEnum_CustomPlaceholderField int32 + +const ( + // Not specified. + CustomPlaceholderFieldEnum_UNSPECIFIED CustomPlaceholderFieldEnum_CustomPlaceholderField = 0 + // Used for return value only. Represents value unknown in this version. + CustomPlaceholderFieldEnum_UNKNOWN CustomPlaceholderFieldEnum_CustomPlaceholderField = 1 + // Data Type: STRING. Required. Combination ID and ID2 must be unique per + // offer. + CustomPlaceholderFieldEnum_ID CustomPlaceholderFieldEnum_CustomPlaceholderField = 2 + // Data Type: STRING. Combination ID and ID2 must be unique per offer. + CustomPlaceholderFieldEnum_ID2 CustomPlaceholderFieldEnum_CustomPlaceholderField = 3 + // Data Type: STRING. Required. Main headline with product name to be shown + // in dynamic ad. + CustomPlaceholderFieldEnum_ITEM_TITLE CustomPlaceholderFieldEnum_CustomPlaceholderField = 4 + // Data Type: STRING. Optional text to be shown in the image ad. + CustomPlaceholderFieldEnum_ITEM_SUBTITLE CustomPlaceholderFieldEnum_CustomPlaceholderField = 5 + // Data Type: STRING. Optional description of the product to be shown in the + // ad. + CustomPlaceholderFieldEnum_ITEM_DESCRIPTION CustomPlaceholderFieldEnum_CustomPlaceholderField = 6 + // Data Type: STRING. Full address of your offer or service, including + // postal code. This will be used to identify the closest product to the + // user when there are multiple offers in the feed that are relevant to the + // user. + CustomPlaceholderFieldEnum_ITEM_ADDRESS CustomPlaceholderFieldEnum_CustomPlaceholderField = 7 + // Data Type: STRING. Price to be shown in the ad. + // Example: "100.00 USD" + CustomPlaceholderFieldEnum_PRICE CustomPlaceholderFieldEnum_CustomPlaceholderField = 8 + // Data Type: STRING. Formatted price to be shown in the ad. + // Example: "Starting at $100.00 USD", "$80 - $100" + CustomPlaceholderFieldEnum_FORMATTED_PRICE CustomPlaceholderFieldEnum_CustomPlaceholderField = 9 + // Data Type: STRING. Sale price to be shown in the ad. + // Example: "80.00 USD" + CustomPlaceholderFieldEnum_SALE_PRICE CustomPlaceholderFieldEnum_CustomPlaceholderField = 10 + // Data Type: STRING. Formatted sale price to be shown in the ad. + // Example: "On sale for $80.00", "$60 - $80" + CustomPlaceholderFieldEnum_FORMATTED_SALE_PRICE CustomPlaceholderFieldEnum_CustomPlaceholderField = 11 + // Data Type: URL. Image to be displayed in the ad. Highly recommended for + // image ads. + CustomPlaceholderFieldEnum_IMAGE_URL CustomPlaceholderFieldEnum_CustomPlaceholderField = 12 + // Data Type: STRING. Used as a recommendation engine signal to serve items + // in the same category. + CustomPlaceholderFieldEnum_ITEM_CATEGORY CustomPlaceholderFieldEnum_CustomPlaceholderField = 13 + // Data Type: URL_LIST. Final URLs for the ad when using Upgraded + // URLs. User will be redirected to these URLs when they click on an ad, or + // when they click on a specific product for ads that have multiple + // products. + CustomPlaceholderFieldEnum_FINAL_URLS CustomPlaceholderFieldEnum_CustomPlaceholderField = 14 + // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded + // URLs. + CustomPlaceholderFieldEnum_FINAL_MOBILE_URLS CustomPlaceholderFieldEnum_CustomPlaceholderField = 15 + // Data Type: URL. Tracking template for the ad when using Upgraded URLs. + CustomPlaceholderFieldEnum_TRACKING_URL CustomPlaceholderFieldEnum_CustomPlaceholderField = 16 + // Data Type: STRING_LIST. Keywords used for product retrieval. + CustomPlaceholderFieldEnum_CONTEXTUAL_KEYWORDS CustomPlaceholderFieldEnum_CustomPlaceholderField = 17 + // Data Type: STRING. Android app link. Must be formatted as: + // android-app://{package_id}/{scheme}/{host_path}. + // The components are defined as follows: + // package_id: app ID as specified in Google Play. + // scheme: the scheme to pass to the application. Can be HTTP, or a custom + // scheme. + // host_path: identifies the specific content within your application. + CustomPlaceholderFieldEnum_ANDROID_APP_LINK CustomPlaceholderFieldEnum_CustomPlaceholderField = 18 + // Data Type: STRING_LIST. List of recommended IDs to show together with + // this item. + CustomPlaceholderFieldEnum_SIMILAR_IDS CustomPlaceholderFieldEnum_CustomPlaceholderField = 19 + // Data Type: STRING. iOS app link. + CustomPlaceholderFieldEnum_IOS_APP_LINK CustomPlaceholderFieldEnum_CustomPlaceholderField = 20 + // Data Type: INT64. iOS app store ID. + CustomPlaceholderFieldEnum_IOS_APP_STORE_ID CustomPlaceholderFieldEnum_CustomPlaceholderField = 21 +) + +var CustomPlaceholderFieldEnum_CustomPlaceholderField_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "ID", + 3: "ID2", + 4: "ITEM_TITLE", + 5: "ITEM_SUBTITLE", + 6: "ITEM_DESCRIPTION", + 7: "ITEM_ADDRESS", + 8: "PRICE", + 9: "FORMATTED_PRICE", + 10: "SALE_PRICE", + 11: "FORMATTED_SALE_PRICE", + 12: "IMAGE_URL", + 13: "ITEM_CATEGORY", + 14: "FINAL_URLS", + 15: "FINAL_MOBILE_URLS", + 16: "TRACKING_URL", + 17: "CONTEXTUAL_KEYWORDS", + 18: "ANDROID_APP_LINK", + 19: "SIMILAR_IDS", + 20: "IOS_APP_LINK", + 21: "IOS_APP_STORE_ID", +} +var CustomPlaceholderFieldEnum_CustomPlaceholderField_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "ID": 2, + "ID2": 3, + "ITEM_TITLE": 4, + "ITEM_SUBTITLE": 5, + "ITEM_DESCRIPTION": 6, + "ITEM_ADDRESS": 7, + "PRICE": 8, + "FORMATTED_PRICE": 9, + "SALE_PRICE": 10, + "FORMATTED_SALE_PRICE": 11, + "IMAGE_URL": 12, + "ITEM_CATEGORY": 13, + "FINAL_URLS": 14, + "FINAL_MOBILE_URLS": 15, + "TRACKING_URL": 16, + "CONTEXTUAL_KEYWORDS": 17, + "ANDROID_APP_LINK": 18, + "SIMILAR_IDS": 19, + "IOS_APP_LINK": 20, + "IOS_APP_STORE_ID": 21, +} + +func (x CustomPlaceholderFieldEnum_CustomPlaceholderField) String() string { + return proto.EnumName(CustomPlaceholderFieldEnum_CustomPlaceholderField_name, int32(x)) +} +func (CustomPlaceholderFieldEnum_CustomPlaceholderField) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_custom_placeholder_field_da1fc5fdf27a9f46, []int{0, 0} +} + +// Values for Custom placeholder fields. +// For more information about dynamic remarketing feeds, see +// https://support.google.com/google-ads/answer/6053288. +type CustomPlaceholderFieldEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CustomPlaceholderFieldEnum) Reset() { *m = CustomPlaceholderFieldEnum{} } +func (m *CustomPlaceholderFieldEnum) String() string { return proto.CompactTextString(m) } +func (*CustomPlaceholderFieldEnum) ProtoMessage() {} +func (*CustomPlaceholderFieldEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_custom_placeholder_field_da1fc5fdf27a9f46, []int{0} +} +func (m *CustomPlaceholderFieldEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CustomPlaceholderFieldEnum.Unmarshal(m, b) +} +func (m *CustomPlaceholderFieldEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CustomPlaceholderFieldEnum.Marshal(b, m, deterministic) +} +func (dst *CustomPlaceholderFieldEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_CustomPlaceholderFieldEnum.Merge(dst, src) +} +func (m *CustomPlaceholderFieldEnum) XXX_Size() int { + return xxx_messageInfo_CustomPlaceholderFieldEnum.Size(m) +} +func (m *CustomPlaceholderFieldEnum) XXX_DiscardUnknown() { + xxx_messageInfo_CustomPlaceholderFieldEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_CustomPlaceholderFieldEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*CustomPlaceholderFieldEnum)(nil), "google.ads.googleads.v0.enums.CustomPlaceholderFieldEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.CustomPlaceholderFieldEnum_CustomPlaceholderField", CustomPlaceholderFieldEnum_CustomPlaceholderField_name, CustomPlaceholderFieldEnum_CustomPlaceholderField_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/custom_placeholder_field.proto", fileDescriptor_custom_placeholder_field_da1fc5fdf27a9f46) +} + +var fileDescriptor_custom_placeholder_field_da1fc5fdf27a9f46 = []byte{ + // 484 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x52, 0xdd, 0x8e, 0x12, 0x31, + 0x18, 0x15, 0x70, 0x41, 0x3e, 0x96, 0xa5, 0x14, 0x56, 0x8d, 0x66, 0x2f, 0xdc, 0x07, 0x18, 0x88, + 0x5e, 0xea, 0x4d, 0x99, 0x16, 0xd2, 0x30, 0x4c, 0x27, 0x6d, 0xd9, 0x75, 0x0d, 0x49, 0x83, 0xcc, + 0x38, 0x6e, 0x02, 0x0c, 0x61, 0x96, 0x7d, 0x1d, 0x13, 0x2f, 0x7d, 0x08, 0x1f, 0xc0, 0xf8, 0x50, + 0xa6, 0x1d, 0x16, 0xbc, 0x58, 0xbd, 0x69, 0xbe, 0xef, 0x9c, 0xef, 0x9c, 0xfe, 0x1d, 0xf8, 0x90, + 0x66, 0x59, 0xba, 0x4c, 0x7a, 0xf3, 0x38, 0xef, 0x15, 0xa5, 0xad, 0xee, 0xfb, 0xbd, 0x64, 0xbd, + 0x5b, 0xe5, 0xbd, 0xc5, 0x2e, 0xbf, 0xcb, 0x56, 0x66, 0xb3, 0x9c, 0x2f, 0x92, 0xaf, 0xd9, 0x32, + 0x4e, 0xb6, 0xe6, 0xcb, 0x6d, 0xb2, 0x8c, 0xbd, 0xcd, 0x36, 0xbb, 0xcb, 0xf0, 0x45, 0x21, 0xf1, + 0xe6, 0x71, 0xee, 0x1d, 0xd4, 0xde, 0x7d, 0xdf, 0x73, 0xea, 0xcb, 0x9f, 0x15, 0x78, 0xe5, 0x3b, + 0x87, 0xe8, 0x68, 0x30, 0xb4, 0x7a, 0xb6, 0xde, 0xad, 0x2e, 0xbf, 0x55, 0xe0, 0xf9, 0xe3, 0x34, + 0x6e, 0x41, 0x63, 0x1a, 0xaa, 0x88, 0xf9, 0x7c, 0xc8, 0x19, 0x45, 0x4f, 0x70, 0x03, 0x6a, 0xd3, + 0x70, 0x1c, 0x8a, 0xeb, 0x10, 0x95, 0x70, 0x15, 0xca, 0x9c, 0xa2, 0x32, 0xae, 0x41, 0x85, 0xd3, + 0xb7, 0xa8, 0x82, 0xcf, 0x00, 0xb8, 0x66, 0x13, 0xa3, 0xb9, 0x0e, 0x18, 0x7a, 0x8a, 0xdb, 0xd0, + 0x74, 0xbd, 0x9a, 0x0e, 0x0a, 0xe8, 0x04, 0x77, 0x01, 0x39, 0x88, 0x32, 0xe5, 0x4b, 0x1e, 0x69, + 0x2e, 0x42, 0x54, 0xc5, 0x08, 0x4e, 0x1d, 0x4a, 0x28, 0x95, 0x4c, 0x29, 0x54, 0xc3, 0x75, 0x38, + 0x89, 0x24, 0xf7, 0x19, 0x7a, 0x86, 0x3b, 0xd0, 0x1a, 0x0a, 0x39, 0x21, 0x5a, 0x33, 0x6a, 0x0a, + 0xb0, 0x6e, 0xb7, 0x52, 0x24, 0x60, 0xfb, 0x1e, 0xf0, 0x4b, 0xe8, 0x1e, 0x87, 0xfe, 0x62, 0x1a, + 0xb8, 0x09, 0x75, 0x3e, 0x21, 0x23, 0x66, 0xa6, 0x32, 0x40, 0xa7, 0x87, 0x33, 0xf9, 0x44, 0xb3, + 0x91, 0x90, 0x37, 0xa8, 0x69, 0xbd, 0x86, 0x3c, 0x24, 0x81, 0x9d, 0x50, 0xe8, 0x0c, 0x9f, 0x43, + 0xbb, 0xe8, 0x27, 0x62, 0xc0, 0x03, 0x56, 0xc0, 0x2d, 0x7b, 0x48, 0x2d, 0x89, 0x3f, 0xe6, 0xe1, + 0xc8, 0x79, 0x21, 0xfc, 0x02, 0x3a, 0xbe, 0x08, 0x35, 0xfb, 0xa8, 0xa7, 0x24, 0x30, 0x63, 0x76, + 0x73, 0x2d, 0x24, 0x55, 0xa8, 0x6d, 0x6f, 0x49, 0x42, 0x2a, 0x05, 0xa7, 0x86, 0x44, 0x91, 0x09, + 0x78, 0x38, 0x46, 0xd8, 0xbe, 0xa6, 0xe2, 0x13, 0x1e, 0x10, 0x69, 0x38, 0x55, 0xa8, 0xe3, 0xae, + 0x2d, 0xd4, 0x71, 0xa4, 0xeb, 0x9e, 0x67, 0x8f, 0x28, 0x2d, 0x24, 0x33, 0x9c, 0xa2, 0xf3, 0xc1, + 0xef, 0x12, 0xbc, 0x59, 0x64, 0x2b, 0xef, 0xbf, 0xdf, 0x3c, 0x78, 0xfd, 0xf8, 0x27, 0x46, 0x36, + 0x22, 0x51, 0xe9, 0xd3, 0x60, 0xaf, 0x4e, 0xb3, 0xe5, 0x7c, 0x9d, 0x7a, 0xd9, 0x36, 0xed, 0xa5, + 0xc9, 0xda, 0x05, 0xe8, 0x21, 0x72, 0x9b, 0xdb, 0xfc, 0x1f, 0x09, 0x7c, 0xef, 0xd6, 0xef, 0xe5, + 0xca, 0x88, 0x90, 0x1f, 0xe5, 0x8b, 0x51, 0x61, 0x45, 0xe2, 0xdc, 0x2b, 0x4a, 0x5b, 0x5d, 0xf5, + 0x3d, 0x9b, 0xa7, 0xfc, 0xd7, 0x03, 0x3f, 0x23, 0x71, 0x3e, 0x3b, 0xf0, 0xb3, 0xab, 0xfe, 0xcc, + 0xf1, 0x9f, 0xab, 0x6e, 0xd3, 0x77, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x58, 0x53, 0x00, 0x84, + 0xf5, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/customer_match_upload_key_type.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/customer_match_upload_key_type.pb.go new file mode 100644 index 000000000..495f0e3fa --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/customer_match_upload_key_type.pb.go @@ -0,0 +1,123 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/customer_match_upload_key_type.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible customer match upload key types. +type CustomerMatchUploadKeyTypeEnum_CustomerMatchUploadKeyType int32 + +const ( + // Not specified. + CustomerMatchUploadKeyTypeEnum_UNSPECIFIED CustomerMatchUploadKeyTypeEnum_CustomerMatchUploadKeyType = 0 + // Used for return value only. Represents value unknown in this version. + CustomerMatchUploadKeyTypeEnum_UNKNOWN CustomerMatchUploadKeyTypeEnum_CustomerMatchUploadKeyType = 1 + // Members are matched from customer info such as email address, phone + // number or physical address. + CustomerMatchUploadKeyTypeEnum_CONTACT_INFO CustomerMatchUploadKeyTypeEnum_CustomerMatchUploadKeyType = 2 + // Members are matched from a user id generated and assigned by the + // advertiser. + CustomerMatchUploadKeyTypeEnum_CRM_ID CustomerMatchUploadKeyTypeEnum_CustomerMatchUploadKeyType = 3 + // Members are matched from mobile advertising ids. + CustomerMatchUploadKeyTypeEnum_MOBILE_ADVERTISING_ID CustomerMatchUploadKeyTypeEnum_CustomerMatchUploadKeyType = 4 +) + +var CustomerMatchUploadKeyTypeEnum_CustomerMatchUploadKeyType_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "CONTACT_INFO", + 3: "CRM_ID", + 4: "MOBILE_ADVERTISING_ID", +} +var CustomerMatchUploadKeyTypeEnum_CustomerMatchUploadKeyType_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "CONTACT_INFO": 2, + "CRM_ID": 3, + "MOBILE_ADVERTISING_ID": 4, +} + +func (x CustomerMatchUploadKeyTypeEnum_CustomerMatchUploadKeyType) String() string { + return proto.EnumName(CustomerMatchUploadKeyTypeEnum_CustomerMatchUploadKeyType_name, int32(x)) +} +func (CustomerMatchUploadKeyTypeEnum_CustomerMatchUploadKeyType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_customer_match_upload_key_type_49e9fec7ee2e2de4, []int{0, 0} +} + +// Indicates what type of data are the user list's members matched from. +type CustomerMatchUploadKeyTypeEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CustomerMatchUploadKeyTypeEnum) Reset() { *m = CustomerMatchUploadKeyTypeEnum{} } +func (m *CustomerMatchUploadKeyTypeEnum) String() string { return proto.CompactTextString(m) } +func (*CustomerMatchUploadKeyTypeEnum) ProtoMessage() {} +func (*CustomerMatchUploadKeyTypeEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_customer_match_upload_key_type_49e9fec7ee2e2de4, []int{0} +} +func (m *CustomerMatchUploadKeyTypeEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CustomerMatchUploadKeyTypeEnum.Unmarshal(m, b) +} +func (m *CustomerMatchUploadKeyTypeEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CustomerMatchUploadKeyTypeEnum.Marshal(b, m, deterministic) +} +func (dst *CustomerMatchUploadKeyTypeEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_CustomerMatchUploadKeyTypeEnum.Merge(dst, src) +} +func (m *CustomerMatchUploadKeyTypeEnum) XXX_Size() int { + return xxx_messageInfo_CustomerMatchUploadKeyTypeEnum.Size(m) +} +func (m *CustomerMatchUploadKeyTypeEnum) XXX_DiscardUnknown() { + xxx_messageInfo_CustomerMatchUploadKeyTypeEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_CustomerMatchUploadKeyTypeEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*CustomerMatchUploadKeyTypeEnum)(nil), "google.ads.googleads.v0.enums.CustomerMatchUploadKeyTypeEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.CustomerMatchUploadKeyTypeEnum_CustomerMatchUploadKeyType", CustomerMatchUploadKeyTypeEnum_CustomerMatchUploadKeyType_name, CustomerMatchUploadKeyTypeEnum_CustomerMatchUploadKeyType_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/customer_match_upload_key_type.proto", fileDescriptor_customer_match_upload_key_type_49e9fec7ee2e2de4) +} + +var fileDescriptor_customer_match_upload_key_type_49e9fec7ee2e2de4 = []byte{ + // 315 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0xd1, 0x4a, 0xf3, 0x30, + 0x18, 0x86, 0xff, 0x6e, 0x3f, 0x13, 0x32, 0xc1, 0x12, 0xf0, 0x40, 0x61, 0x8a, 0xbb, 0x80, 0xb4, + 0xe0, 0xa1, 0x47, 0x69, 0xd7, 0x8d, 0x30, 0x97, 0x8e, 0xad, 0x9b, 0x20, 0x85, 0x50, 0xd7, 0x10, + 0xc5, 0xb5, 0x29, 0x4b, 0x3b, 0xe8, 0x85, 0x78, 0x03, 0x1e, 0x7a, 0x29, 0x1e, 0x79, 0x49, 0x92, + 0x74, 0xdb, 0x59, 0x3d, 0x09, 0x2f, 0xbc, 0xc9, 0x93, 0xef, 0x7b, 0x80, 0x27, 0xa4, 0x14, 0x5b, + 0xee, 0x24, 0xa9, 0x72, 0x9a, 0xa8, 0xd3, 0xde, 0x75, 0x78, 0x5e, 0x65, 0xca, 0xd9, 0x54, 0xaa, + 0x94, 0x19, 0xdf, 0xb1, 0x2c, 0x29, 0x37, 0xaf, 0xac, 0x2a, 0xb6, 0x32, 0x49, 0xd9, 0x3b, 0xaf, + 0x59, 0x59, 0x17, 0x1c, 0x15, 0x3b, 0x59, 0x4a, 0x38, 0x68, 0x1e, 0xa2, 0x24, 0x55, 0xe8, 0xc4, + 0x40, 0x7b, 0x17, 0x19, 0xc6, 0xf0, 0xc3, 0x02, 0x37, 0xfe, 0x81, 0x33, 0xd3, 0x98, 0x95, 0xa1, + 0x4c, 0x79, 0x1d, 0xd5, 0x05, 0x0f, 0xf2, 0x2a, 0x1b, 0x2a, 0x70, 0xdd, 0x7e, 0x03, 0x5e, 0x80, + 0xfe, 0x8a, 0x2e, 0xe7, 0x81, 0x4f, 0xc6, 0x24, 0x18, 0xd9, 0xff, 0x60, 0x1f, 0x9c, 0xad, 0xe8, + 0x94, 0x86, 0x4f, 0xd4, 0xb6, 0xa0, 0x0d, 0xce, 0xfd, 0x90, 0x46, 0xd8, 0x8f, 0x18, 0xa1, 0xe3, + 0xd0, 0xee, 0x40, 0x00, 0x7a, 0xfe, 0x62, 0xc6, 0xc8, 0xc8, 0xee, 0xc2, 0x2b, 0x70, 0x39, 0x0b, + 0x3d, 0xf2, 0x18, 0x30, 0x3c, 0x5a, 0x07, 0x8b, 0x88, 0x2c, 0x09, 0x9d, 0xe8, 0xea, 0xbf, 0xf7, + 0x63, 0x81, 0xbb, 0x8d, 0xcc, 0xd0, 0x9f, 0xd3, 0x7b, 0xb7, 0xed, 0x83, 0xcd, 0xf5, 0xf6, 0x73, + 0xeb, 0xf9, 0xe0, 0x10, 0x09, 0xb9, 0x4d, 0x72, 0x81, 0xe4, 0x4e, 0x38, 0x82, 0xe7, 0xc6, 0xcd, + 0xd1, 0x69, 0xf1, 0xa6, 0x5a, 0x14, 0x3f, 0x98, 0xf3, 0xb3, 0xd3, 0x9d, 0x60, 0xfc, 0xd5, 0x19, + 0x4c, 0x1a, 0x14, 0x4e, 0x15, 0x6a, 0xa2, 0x4e, 0x6b, 0x17, 0x69, 0x4d, 0xea, 0xfb, 0xd8, 0xc7, + 0x38, 0x55, 0xf1, 0xa9, 0x8f, 0xd7, 0x6e, 0x6c, 0xfa, 0x97, 0x9e, 0xf9, 0xf4, 0xfe, 0x37, 0x00, + 0x00, 0xff, 0xff, 0x99, 0xad, 0x2f, 0x13, 0xd6, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/data_driven_model_status.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/data_driven_model_status.pb.go new file mode 100644 index 000000000..ac14f2b49 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/data_driven_model_status.pb.go @@ -0,0 +1,131 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/data_driven_model_status.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enumerates data driven model statuses. +type DataDrivenModelStatusEnum_DataDrivenModelStatus int32 + +const ( + // Not specified. + DataDrivenModelStatusEnum_UNSPECIFIED DataDrivenModelStatusEnum_DataDrivenModelStatus = 0 + // Used for return value only. Represents value unknown in this version. + DataDrivenModelStatusEnum_UNKNOWN DataDrivenModelStatusEnum_DataDrivenModelStatus = 1 + // The data driven model is available. + DataDrivenModelStatusEnum_AVAILABLE DataDrivenModelStatusEnum_DataDrivenModelStatus = 2 + // The data driven model is stale. It hasn't been updated for at least 7 + // days. It is still being used, but will become expired if it does not get + // updated for 30 days. + DataDrivenModelStatusEnum_STALE DataDrivenModelStatusEnum_DataDrivenModelStatus = 3 + // The data driven model expired. It hasn't been updated for at least 30 + // days and cannot be used. Most commonly this is because there hasn't been + // the required number of events in a recent 30-day period. + DataDrivenModelStatusEnum_EXPIRED DataDrivenModelStatusEnum_DataDrivenModelStatus = 4 + // The data driven model has never been generated. Most commonly this is + // because there has never been the required number of events in any 30-day + // period. + DataDrivenModelStatusEnum_NEVER_GENERATED DataDrivenModelStatusEnum_DataDrivenModelStatus = 5 +) + +var DataDrivenModelStatusEnum_DataDrivenModelStatus_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "AVAILABLE", + 3: "STALE", + 4: "EXPIRED", + 5: "NEVER_GENERATED", +} +var DataDrivenModelStatusEnum_DataDrivenModelStatus_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "AVAILABLE": 2, + "STALE": 3, + "EXPIRED": 4, + "NEVER_GENERATED": 5, +} + +func (x DataDrivenModelStatusEnum_DataDrivenModelStatus) String() string { + return proto.EnumName(DataDrivenModelStatusEnum_DataDrivenModelStatus_name, int32(x)) +} +func (DataDrivenModelStatusEnum_DataDrivenModelStatus) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_data_driven_model_status_0a8e32904769d8b5, []int{0, 0} +} + +// Container for enum indicating data driven model status. +type DataDrivenModelStatusEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DataDrivenModelStatusEnum) Reset() { *m = DataDrivenModelStatusEnum{} } +func (m *DataDrivenModelStatusEnum) String() string { return proto.CompactTextString(m) } +func (*DataDrivenModelStatusEnum) ProtoMessage() {} +func (*DataDrivenModelStatusEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_data_driven_model_status_0a8e32904769d8b5, []int{0} +} +func (m *DataDrivenModelStatusEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DataDrivenModelStatusEnum.Unmarshal(m, b) +} +func (m *DataDrivenModelStatusEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DataDrivenModelStatusEnum.Marshal(b, m, deterministic) +} +func (dst *DataDrivenModelStatusEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_DataDrivenModelStatusEnum.Merge(dst, src) +} +func (m *DataDrivenModelStatusEnum) XXX_Size() int { + return xxx_messageInfo_DataDrivenModelStatusEnum.Size(m) +} +func (m *DataDrivenModelStatusEnum) XXX_DiscardUnknown() { + xxx_messageInfo_DataDrivenModelStatusEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_DataDrivenModelStatusEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*DataDrivenModelStatusEnum)(nil), "google.ads.googleads.v0.enums.DataDrivenModelStatusEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.DataDrivenModelStatusEnum_DataDrivenModelStatus", DataDrivenModelStatusEnum_DataDrivenModelStatus_name, DataDrivenModelStatusEnum_DataDrivenModelStatus_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/data_driven_model_status.proto", fileDescriptor_data_driven_model_status_0a8e32904769d8b5) +} + +var fileDescriptor_data_driven_model_status_0a8e32904769d8b5 = []byte{ + // 308 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0xdf, 0x4a, 0xf3, 0x30, + 0x18, 0xc6, 0xbf, 0x6e, 0xdf, 0x94, 0x65, 0xc8, 0x4a, 0xc4, 0x03, 0x85, 0x1d, 0xb8, 0x0b, 0x48, + 0x0b, 0x1e, 0xea, 0x49, 0x6a, 0x5f, 0x47, 0x71, 0xc6, 0xb2, 0x3f, 0x55, 0xa4, 0x50, 0xa2, 0x29, + 0x61, 0xb0, 0x36, 0x73, 0xe9, 0x7a, 0x19, 0x5e, 0x84, 0x87, 0x5e, 0x8a, 0xde, 0x94, 0x24, 0x75, + 0x3b, 0x9a, 0x9e, 0x84, 0x07, 0x9e, 0xfc, 0xde, 0xbc, 0xf9, 0xa1, 0x2b, 0xa9, 0x94, 0x5c, 0xe6, + 0x1e, 0x17, 0xda, 0x6b, 0xa2, 0x49, 0xb5, 0xef, 0xe5, 0xe5, 0xa6, 0xd0, 0x9e, 0xe0, 0x15, 0xcf, + 0xc4, 0x7a, 0x51, 0xe7, 0x65, 0x56, 0x28, 0x91, 0x2f, 0x33, 0x5d, 0xf1, 0x6a, 0xa3, 0xc9, 0x6a, + 0xad, 0x2a, 0x85, 0x07, 0x0d, 0x42, 0xb8, 0xd0, 0x64, 0x47, 0x93, 0xda, 0x27, 0x96, 0x1e, 0xbe, + 0x39, 0xe8, 0x34, 0xe4, 0x15, 0x0f, 0xed, 0x80, 0x3b, 0xc3, 0x4f, 0x2d, 0x0e, 0xe5, 0xa6, 0x18, + 0xbe, 0xa2, 0x93, 0xbd, 0x25, 0xee, 0xa3, 0xde, 0x9c, 0x4d, 0x63, 0xb8, 0x8e, 0x6e, 0x22, 0x08, + 0xdd, 0x7f, 0xb8, 0x87, 0x0e, 0xe7, 0xec, 0x96, 0xdd, 0x3f, 0x30, 0xd7, 0xc1, 0x47, 0xa8, 0x4b, + 0x13, 0x1a, 0x8d, 0x69, 0x30, 0x06, 0xb7, 0x85, 0xbb, 0xa8, 0x33, 0x9d, 0xd1, 0x31, 0xb8, 0x6d, + 0x73, 0x0d, 0x1e, 0xe3, 0x68, 0x02, 0xa1, 0xfb, 0x1f, 0x1f, 0xa3, 0x3e, 0x83, 0x04, 0x26, 0xd9, + 0x08, 0x18, 0x4c, 0xe8, 0x0c, 0x42, 0xb7, 0x13, 0x7c, 0x39, 0xe8, 0xfc, 0x45, 0x15, 0xe4, 0xcf, + 0xb5, 0x83, 0xb3, 0xbd, 0x6b, 0xc5, 0xe6, 0xc7, 0xb1, 0xf3, 0x14, 0xfc, 0xc0, 0x52, 0x2d, 0x79, + 0x29, 0x89, 0x5a, 0x4b, 0x4f, 0xe6, 0xa5, 0xf5, 0xb1, 0x35, 0xb8, 0x5a, 0xe8, 0x5f, 0x84, 0x5e, + 0xda, 0xf3, 0xbd, 0xd5, 0x1e, 0x51, 0xfa, 0xd1, 0x1a, 0x8c, 0x9a, 0x51, 0x54, 0x68, 0xd2, 0x44, + 0x93, 0x12, 0x9f, 0x18, 0x3f, 0xfa, 0x73, 0xdb, 0xa7, 0x54, 0xe8, 0x74, 0xd7, 0xa7, 0x89, 0x9f, + 0xda, 0xfe, 0xf9, 0xc0, 0x3e, 0x7a, 0xf1, 0x1d, 0x00, 0x00, 0xff, 0xff, 0xbb, 0x5e, 0x3b, 0x28, + 0xc4, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/day_of_week.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/day_of_week.pb.go new file mode 100644 index 000000000..435af0752 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/day_of_week.pb.go @@ -0,0 +1,136 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/day_of_week.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enumerates days of the week, e.g., "Monday". +type DayOfWeekEnum_DayOfWeek int32 + +const ( + // Not specified. + DayOfWeekEnum_UNSPECIFIED DayOfWeekEnum_DayOfWeek = 0 + // The value is unknown in this version. + DayOfWeekEnum_UNKNOWN DayOfWeekEnum_DayOfWeek = 1 + // Monday. + DayOfWeekEnum_MONDAY DayOfWeekEnum_DayOfWeek = 2 + // Tuesday. + DayOfWeekEnum_TUESDAY DayOfWeekEnum_DayOfWeek = 3 + // Wednesday. + DayOfWeekEnum_WEDNESDAY DayOfWeekEnum_DayOfWeek = 4 + // Thursday. + DayOfWeekEnum_THURSDAY DayOfWeekEnum_DayOfWeek = 5 + // Friday. + DayOfWeekEnum_FRIDAY DayOfWeekEnum_DayOfWeek = 6 + // Saturday. + DayOfWeekEnum_SATURDAY DayOfWeekEnum_DayOfWeek = 7 + // Sunday. + DayOfWeekEnum_SUNDAY DayOfWeekEnum_DayOfWeek = 8 +) + +var DayOfWeekEnum_DayOfWeek_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "MONDAY", + 3: "TUESDAY", + 4: "WEDNESDAY", + 5: "THURSDAY", + 6: "FRIDAY", + 7: "SATURDAY", + 8: "SUNDAY", +} +var DayOfWeekEnum_DayOfWeek_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "MONDAY": 2, + "TUESDAY": 3, + "WEDNESDAY": 4, + "THURSDAY": 5, + "FRIDAY": 6, + "SATURDAY": 7, + "SUNDAY": 8, +} + +func (x DayOfWeekEnum_DayOfWeek) String() string { + return proto.EnumName(DayOfWeekEnum_DayOfWeek_name, int32(x)) +} +func (DayOfWeekEnum_DayOfWeek) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_day_of_week_8b74b2709672516d, []int{0, 0} +} + +// Container for enumeration of days of the week, e.g., "Monday". +type DayOfWeekEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DayOfWeekEnum) Reset() { *m = DayOfWeekEnum{} } +func (m *DayOfWeekEnum) String() string { return proto.CompactTextString(m) } +func (*DayOfWeekEnum) ProtoMessage() {} +func (*DayOfWeekEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_day_of_week_8b74b2709672516d, []int{0} +} +func (m *DayOfWeekEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DayOfWeekEnum.Unmarshal(m, b) +} +func (m *DayOfWeekEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DayOfWeekEnum.Marshal(b, m, deterministic) +} +func (dst *DayOfWeekEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_DayOfWeekEnum.Merge(dst, src) +} +func (m *DayOfWeekEnum) XXX_Size() int { + return xxx_messageInfo_DayOfWeekEnum.Size(m) +} +func (m *DayOfWeekEnum) XXX_DiscardUnknown() { + xxx_messageInfo_DayOfWeekEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_DayOfWeekEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*DayOfWeekEnum)(nil), "google.ads.googleads.v0.enums.DayOfWeekEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.DayOfWeekEnum_DayOfWeek", DayOfWeekEnum_DayOfWeek_name, DayOfWeekEnum_DayOfWeek_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/day_of_week.proto", fileDescriptor_day_of_week_8b74b2709672516d) +} + +var fileDescriptor_day_of_week_8b74b2709672516d = []byte{ + // 303 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xd2, 0x4f, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0x86, 0x32, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xbc, 0xd2, + 0xdc, 0x62, 0xfd, 0x94, 0xc4, 0xca, 0xf8, 0xfc, 0xb4, 0xf8, 0xf2, 0xd4, 0xd4, 0x6c, 0xbd, 0x82, + 0xa2, 0xfc, 0x92, 0x7c, 0x21, 0x59, 0x88, 0x2a, 0xbd, 0xc4, 0x94, 0x62, 0x3d, 0xb8, 0x06, 0xbd, + 0x32, 0x03, 0x3d, 0xb0, 0x06, 0xa5, 0xe9, 0x8c, 0x5c, 0xbc, 0x2e, 0x89, 0x95, 0xfe, 0x69, 0xe1, + 0xa9, 0xa9, 0xd9, 0xae, 0x79, 0xa5, 0xb9, 0x4a, 0xad, 0x8c, 0x5c, 0x9c, 0x70, 0x11, 0x21, 0x7e, + 0x2e, 0xee, 0x50, 0xbf, 0xe0, 0x00, 0x57, 0x67, 0x4f, 0x37, 0x4f, 0x57, 0x17, 0x01, 0x06, 0x21, + 0x6e, 0x2e, 0xf6, 0x50, 0x3f, 0x6f, 0x3f, 0xff, 0x70, 0x3f, 0x01, 0x46, 0x21, 0x2e, 0x2e, 0x36, + 0x5f, 0x7f, 0x3f, 0x17, 0xc7, 0x48, 0x01, 0x26, 0x90, 0x44, 0x48, 0xa8, 0x6b, 0x30, 0x88, 0xc3, + 0x2c, 0xc4, 0xcb, 0xc5, 0x19, 0xee, 0xea, 0xe2, 0x07, 0xe1, 0xb2, 0x08, 0xf1, 0x70, 0x71, 0x84, + 0x78, 0x84, 0x06, 0x81, 0x79, 0xac, 0x20, 0x5d, 0x6e, 0x41, 0x9e, 0x20, 0x36, 0x1b, 0x48, 0x26, + 0xd8, 0x31, 0x24, 0x34, 0x08, 0xc4, 0x63, 0x07, 0xc9, 0x04, 0x87, 0x82, 0xcd, 0xe3, 0x70, 0xda, + 0xcf, 0xc8, 0xa5, 0x98, 0x9c, 0x9f, 0xab, 0x87, 0xd7, 0xfd, 0x4e, 0x7c, 0x70, 0xa7, 0x06, 0x80, + 0xbc, 0x1b, 0xc0, 0x18, 0xe5, 0x04, 0xd5, 0x90, 0x9e, 0x9f, 0x93, 0x98, 0x97, 0xae, 0x97, 0x5f, + 0x94, 0xae, 0x9f, 0x9e, 0x9a, 0x07, 0x0e, 0x0c, 0x58, 0x88, 0x15, 0x64, 0x16, 0xe3, 0x08, 0x40, + 0x6b, 0x30, 0xb9, 0x88, 0x89, 0xd9, 0xdd, 0xd1, 0x71, 0x15, 0x93, 0xac, 0x3b, 0xc4, 0x28, 0xc7, + 0x94, 0x62, 0x3d, 0x08, 0x13, 0xc4, 0x0a, 0x33, 0xd0, 0x03, 0x05, 0x54, 0xf1, 0x29, 0x98, 0x7c, + 0x8c, 0x63, 0x4a, 0x71, 0x0c, 0x5c, 0x3e, 0x26, 0xcc, 0x20, 0x06, 0x2c, 0x9f, 0xc4, 0x06, 0xb6, + 0xd4, 0x18, 0x10, 0x00, 0x00, 0xff, 0xff, 0xeb, 0xea, 0x27, 0x3e, 0xb4, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/device.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/device.pb.go new file mode 100644 index 000000000..34eaa09f3 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/device.pb.go @@ -0,0 +1,118 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/device.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enumerates Google Ads devices available for targeting. +type DeviceEnum_Device int32 + +const ( + // Not specified. + DeviceEnum_UNSPECIFIED DeviceEnum_Device = 0 + // The value is unknown in this version. + DeviceEnum_UNKNOWN DeviceEnum_Device = 1 + // Mobile devices with full browsers. + DeviceEnum_MOBILE DeviceEnum_Device = 2 + // Tablets with full browsers. + DeviceEnum_TABLET DeviceEnum_Device = 3 + // Computers. + DeviceEnum_DESKTOP DeviceEnum_Device = 4 +) + +var DeviceEnum_Device_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "MOBILE", + 3: "TABLET", + 4: "DESKTOP", +} +var DeviceEnum_Device_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "MOBILE": 2, + "TABLET": 3, + "DESKTOP": 4, +} + +func (x DeviceEnum_Device) String() string { + return proto.EnumName(DeviceEnum_Device_name, int32(x)) +} +func (DeviceEnum_Device) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_device_8acc755801fd4e7c, []int{0, 0} +} + +// Container for enumeration of Google Ads devices available for targeting. +type DeviceEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DeviceEnum) Reset() { *m = DeviceEnum{} } +func (m *DeviceEnum) String() string { return proto.CompactTextString(m) } +func (*DeviceEnum) ProtoMessage() {} +func (*DeviceEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_device_8acc755801fd4e7c, []int{0} +} +func (m *DeviceEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeviceEnum.Unmarshal(m, b) +} +func (m *DeviceEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeviceEnum.Marshal(b, m, deterministic) +} +func (dst *DeviceEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeviceEnum.Merge(dst, src) +} +func (m *DeviceEnum) XXX_Size() int { + return xxx_messageInfo_DeviceEnum.Size(m) +} +func (m *DeviceEnum) XXX_DiscardUnknown() { + xxx_messageInfo_DeviceEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_DeviceEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*DeviceEnum)(nil), "google.ads.googleads.v0.enums.DeviceEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.DeviceEnum_Device", DeviceEnum_Device_name, DeviceEnum_Device_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/device.proto", fileDescriptor_device_8acc755801fd4e7c) +} + +var fileDescriptor_device_8acc755801fd4e7c = []byte{ + // 257 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xd2, 0x4a, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xbc, + 0xd2, 0xdc, 0x62, 0xfd, 0x94, 0xd4, 0xb2, 0xcc, 0xe4, 0x54, 0xbd, 0x82, 0xa2, 0xfc, 0x92, 0x7c, + 0x21, 0x59, 0x88, 0x02, 0xbd, 0xc4, 0x94, 0x62, 0x3d, 0xb8, 0x5a, 0xbd, 0x32, 0x03, 0x3d, 0xb0, + 0x5a, 0xa5, 0x48, 0x2e, 0x2e, 0x17, 0xb0, 0x72, 0xd7, 0xbc, 0xd2, 0x5c, 0x25, 0x6f, 0x2e, 0x36, + 0x08, 0x4f, 0x88, 0x9f, 0x8b, 0x3b, 0xd4, 0x2f, 0x38, 0xc0, 0xd5, 0xd9, 0xd3, 0xcd, 0xd3, 0xd5, + 0x45, 0x80, 0x41, 0x88, 0x9b, 0x8b, 0x3d, 0xd4, 0xcf, 0xdb, 0xcf, 0x3f, 0xdc, 0x4f, 0x80, 0x51, + 0x88, 0x8b, 0x8b, 0xcd, 0xd7, 0xdf, 0xc9, 0xd3, 0xc7, 0x55, 0x80, 0x09, 0xc4, 0x0e, 0x71, 0x74, + 0xf2, 0x71, 0x0d, 0x11, 0x60, 0x06, 0x29, 0x72, 0x71, 0x0d, 0xf6, 0x0e, 0xf1, 0x0f, 0x10, 0x60, + 0x71, 0xda, 0xc3, 0xc8, 0xa5, 0x98, 0x9c, 0x9f, 0xab, 0x87, 0xd7, 0x01, 0x4e, 0xdc, 0x10, 0x0b, + 0x03, 0x40, 0x8e, 0x0d, 0x60, 0x8c, 0x72, 0x82, 0xaa, 0x4e, 0xcf, 0xcf, 0x49, 0xcc, 0x4b, 0xd7, + 0xcb, 0x2f, 0x4a, 0xd7, 0x4f, 0x4f, 0xcd, 0x03, 0x7b, 0x05, 0xe6, 0xd5, 0x82, 0xcc, 0x62, 0x1c, + 0x3e, 0xb7, 0x06, 0x93, 0x8b, 0x98, 0x98, 0xdd, 0x1d, 0x1d, 0x57, 0x31, 0xc9, 0xba, 0x43, 0x8c, + 0x72, 0x4c, 0x29, 0xd6, 0x83, 0x30, 0x41, 0xac, 0x30, 0x03, 0x3d, 0x90, 0x57, 0x8b, 0x4f, 0xc1, + 0xe4, 0x63, 0x1c, 0x53, 0x8a, 0x63, 0xe0, 0xf2, 0x31, 0x61, 0x06, 0x31, 0x60, 0xf9, 0x24, 0x36, + 0xb0, 0xa5, 0xc6, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0x85, 0x99, 0x03, 0x92, 0x6d, 0x01, 0x00, + 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/display_ad_format_setting.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/display_ad_format_setting.pb.go new file mode 100644 index 000000000..2637fd2d4 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/display_ad_format_setting.pb.go @@ -0,0 +1,121 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/display_ad_format_setting.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enumerates display ad format settings. +type DisplayAdFormatSettingEnum_DisplayAdFormatSetting int32 + +const ( + // Not specified. + DisplayAdFormatSettingEnum_UNSPECIFIED DisplayAdFormatSettingEnum_DisplayAdFormatSetting = 0 + // The value is unknown in this version. + DisplayAdFormatSettingEnum_UNKNOWN DisplayAdFormatSettingEnum_DisplayAdFormatSetting = 1 + // Text, image and native formats. + DisplayAdFormatSettingEnum_ALL_FORMATS DisplayAdFormatSettingEnum_DisplayAdFormatSetting = 2 + // Text and image formats. + DisplayAdFormatSettingEnum_NON_NATIVE DisplayAdFormatSettingEnum_DisplayAdFormatSetting = 3 + // Native format, i.e. the format rendering is controlled by the publisher + // and not by Google. + DisplayAdFormatSettingEnum_NATIVE DisplayAdFormatSettingEnum_DisplayAdFormatSetting = 4 +) + +var DisplayAdFormatSettingEnum_DisplayAdFormatSetting_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "ALL_FORMATS", + 3: "NON_NATIVE", + 4: "NATIVE", +} +var DisplayAdFormatSettingEnum_DisplayAdFormatSetting_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "ALL_FORMATS": 2, + "NON_NATIVE": 3, + "NATIVE": 4, +} + +func (x DisplayAdFormatSettingEnum_DisplayAdFormatSetting) String() string { + return proto.EnumName(DisplayAdFormatSettingEnum_DisplayAdFormatSetting_name, int32(x)) +} +func (DisplayAdFormatSettingEnum_DisplayAdFormatSetting) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_display_ad_format_setting_4e0440badaec0ae7, []int{0, 0} +} + +// Container for display ad format settings. +type DisplayAdFormatSettingEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DisplayAdFormatSettingEnum) Reset() { *m = DisplayAdFormatSettingEnum{} } +func (m *DisplayAdFormatSettingEnum) String() string { return proto.CompactTextString(m) } +func (*DisplayAdFormatSettingEnum) ProtoMessage() {} +func (*DisplayAdFormatSettingEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_display_ad_format_setting_4e0440badaec0ae7, []int{0} +} +func (m *DisplayAdFormatSettingEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DisplayAdFormatSettingEnum.Unmarshal(m, b) +} +func (m *DisplayAdFormatSettingEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DisplayAdFormatSettingEnum.Marshal(b, m, deterministic) +} +func (dst *DisplayAdFormatSettingEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_DisplayAdFormatSettingEnum.Merge(dst, src) +} +func (m *DisplayAdFormatSettingEnum) XXX_Size() int { + return xxx_messageInfo_DisplayAdFormatSettingEnum.Size(m) +} +func (m *DisplayAdFormatSettingEnum) XXX_DiscardUnknown() { + xxx_messageInfo_DisplayAdFormatSettingEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_DisplayAdFormatSettingEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*DisplayAdFormatSettingEnum)(nil), "google.ads.googleads.v0.enums.DisplayAdFormatSettingEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.DisplayAdFormatSettingEnum_DisplayAdFormatSetting", DisplayAdFormatSettingEnum_DisplayAdFormatSetting_name, DisplayAdFormatSettingEnum_DisplayAdFormatSetting_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/display_ad_format_setting.proto", fileDescriptor_display_ad_format_setting_4e0440badaec0ae7) +} + +var fileDescriptor_display_ad_format_setting_4e0440badaec0ae7 = []byte{ + // 291 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0xc1, 0x4a, 0xc3, 0x30, + 0x1c, 0xc6, 0x6d, 0x27, 0x13, 0x32, 0xd0, 0xd2, 0x83, 0x07, 0x65, 0x07, 0xf7, 0x00, 0x69, 0xc1, + 0xa3, 0x78, 0x48, 0x5d, 0x3b, 0x8a, 0x33, 0x2d, 0x76, 0xab, 0x20, 0x85, 0x12, 0x97, 0x1a, 0x0a, + 0x6d, 0x53, 0x9a, 0x6e, 0xe0, 0xd1, 0x57, 0xf1, 0xe8, 0xa3, 0x88, 0x0f, 0x25, 0x49, 0xb6, 0x9d, + 0xe6, 0x2e, 0xe5, 0x83, 0x1f, 0xbf, 0xaf, 0xff, 0x7c, 0xe0, 0x9e, 0x71, 0xce, 0xaa, 0xc2, 0x21, + 0x54, 0x38, 0x3a, 0xca, 0xb4, 0x71, 0x9d, 0xa2, 0x59, 0xd7, 0xc2, 0xa1, 0xa5, 0x68, 0x2b, 0xf2, + 0x91, 0x13, 0x9a, 0xbf, 0xf3, 0xae, 0x26, 0x7d, 0x2e, 0x8a, 0xbe, 0x2f, 0x1b, 0x06, 0xdb, 0x8e, + 0xf7, 0xdc, 0x1e, 0x6b, 0x07, 0x12, 0x2a, 0xe0, 0x5e, 0x87, 0x1b, 0x17, 0x2a, 0x7d, 0xf2, 0x69, + 0x80, 0xab, 0xa9, 0xae, 0x40, 0x34, 0x50, 0x05, 0x89, 0xf6, 0xfd, 0x66, 0x5d, 0x4f, 0x56, 0xe0, + 0xf2, 0x30, 0xb5, 0x2f, 0xc0, 0x68, 0x89, 0x93, 0xd8, 0x7f, 0x08, 0x83, 0xd0, 0x9f, 0x5a, 0x27, + 0xf6, 0x08, 0x9c, 0x2d, 0xf1, 0x23, 0x8e, 0x5e, 0xb0, 0x65, 0x48, 0x8a, 0xe6, 0xf3, 0x3c, 0x88, + 0x9e, 0x9f, 0xd0, 0x22, 0xb1, 0x4c, 0xfb, 0x1c, 0x00, 0x1c, 0xe1, 0x1c, 0xa3, 0x45, 0x98, 0xfa, + 0xd6, 0xc0, 0x06, 0x60, 0xb8, 0xcd, 0xa7, 0xde, 0xaf, 0x01, 0x6e, 0x56, 0xbc, 0x86, 0x47, 0x2f, + 0xf5, 0xae, 0x0f, 0x1f, 0x12, 0xcb, 0x57, 0xc6, 0xc6, 0xab, 0xb7, 0xb5, 0x19, 0xaf, 0x48, 0xc3, + 0x20, 0xef, 0x98, 0xc3, 0x8a, 0x46, 0x6d, 0xb0, 0x9b, 0xad, 0x2d, 0xc5, 0x3f, 0x2b, 0xde, 0xa9, + 0xef, 0x97, 0x39, 0x98, 0x21, 0xf4, 0x6d, 0x8e, 0x67, 0xba, 0x0a, 0x51, 0x01, 0x75, 0x94, 0x29, + 0x75, 0xa1, 0x9c, 0x44, 0xfc, 0xec, 0x78, 0x86, 0xa8, 0xc8, 0xf6, 0x3c, 0x4b, 0xdd, 0x4c, 0xf1, + 0xb7, 0xa1, 0xfa, 0xe9, 0xed, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x1f, 0x9a, 0x0f, 0xb8, 0xb9, + 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/education_placeholder_field.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/education_placeholder_field.pb.go new file mode 100644 index 000000000..85c03ed74 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/education_placeholder_field.pb.go @@ -0,0 +1,203 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/education_placeholder_field.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Possible values for Education placeholder fields. +type EducationPlaceholderFieldEnum_EducationPlaceholderField int32 + +const ( + // Not specified. + EducationPlaceholderFieldEnum_UNSPECIFIED EducationPlaceholderFieldEnum_EducationPlaceholderField = 0 + // Used for return value only. Represents value unknown in this version. + EducationPlaceholderFieldEnum_UNKNOWN EducationPlaceholderFieldEnum_EducationPlaceholderField = 1 + // Data Type: STRING. Required. Combination of PROGRAM ID and LOCATION ID + // must be unique per offer. + EducationPlaceholderFieldEnum_PROGRAM_ID EducationPlaceholderFieldEnum_EducationPlaceholderField = 2 + // Data Type: STRING. Combination of PROGRAM ID and LOCATION ID must be + // unique per offer. + EducationPlaceholderFieldEnum_LOCATION_ID EducationPlaceholderFieldEnum_EducationPlaceholderField = 3 + // Data Type: STRING. Required. Main headline with program name to be shown + // in dynamic ad. + EducationPlaceholderFieldEnum_PROGRAM_NAME EducationPlaceholderFieldEnum_EducationPlaceholderField = 4 + // Data Type: STRING. Area of study that can be shown in dynamic ad. + EducationPlaceholderFieldEnum_AREA_OF_STUDY EducationPlaceholderFieldEnum_EducationPlaceholderField = 5 + // Data Type: STRING. Description of program that can be shown in dynamic + // ad. + EducationPlaceholderFieldEnum_PROGRAM_DESCRIPTION EducationPlaceholderFieldEnum_EducationPlaceholderField = 6 + // Data Type: STRING. Name of school that can be shown in dynamic ad. + EducationPlaceholderFieldEnum_SCHOOL_NAME EducationPlaceholderFieldEnum_EducationPlaceholderField = 7 + // Data Type: STRING. Complete school address, including postal code. + EducationPlaceholderFieldEnum_ADDRESS EducationPlaceholderFieldEnum_EducationPlaceholderField = 8 + // Data Type: URL. Image to be displayed in ads. + EducationPlaceholderFieldEnum_THUMBNAIL_IMAGE_URL EducationPlaceholderFieldEnum_EducationPlaceholderField = 9 + // Data Type: URL. Alternative hosted file of image to be used in the ad. + EducationPlaceholderFieldEnum_ALTERNATIVE_THUMBNAIL_IMAGE_URL EducationPlaceholderFieldEnum_EducationPlaceholderField = 10 + // Data Type: URL_LIST. Required. Final URLs to be used in ad when using + // Upgraded URLs; the more specific the better (e.g. the individual URL of a + // specific program and its location). + EducationPlaceholderFieldEnum_FINAL_URLS EducationPlaceholderFieldEnum_EducationPlaceholderField = 11 + // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded + // URLs. + EducationPlaceholderFieldEnum_FINAL_MOBILE_URLS EducationPlaceholderFieldEnum_EducationPlaceholderField = 12 + // Data Type: URL. Tracking template for the ad when using Upgraded URLs. + EducationPlaceholderFieldEnum_TRACKING_URL EducationPlaceholderFieldEnum_EducationPlaceholderField = 13 + // Data Type: STRING_LIST. Keywords used for product retrieval. + EducationPlaceholderFieldEnum_CONTEXTUAL_KEYWORDS EducationPlaceholderFieldEnum_EducationPlaceholderField = 14 + // Data Type: STRING. Android app link. Must be formatted as: + // android-app://{package_id}/{scheme}/{host_path}. + // The components are defined as follows: + // package_id: app ID as specified in Google Play. + // scheme: the scheme to pass to the application. Can be HTTP, or a custom + // scheme. + // host_path: identifies the specific content within your application. + EducationPlaceholderFieldEnum_ANDROID_APP_LINK EducationPlaceholderFieldEnum_EducationPlaceholderField = 15 + // Data Type: STRING_LIST. List of recommended program IDs to show together + // with this item. + EducationPlaceholderFieldEnum_SIMILAR_PROGRAM_IDS EducationPlaceholderFieldEnum_EducationPlaceholderField = 16 + // Data Type: STRING. iOS app link. + EducationPlaceholderFieldEnum_IOS_APP_LINK EducationPlaceholderFieldEnum_EducationPlaceholderField = 17 + // Data Type: INT64. iOS app store ID. + EducationPlaceholderFieldEnum_IOS_APP_STORE_ID EducationPlaceholderFieldEnum_EducationPlaceholderField = 18 +) + +var EducationPlaceholderFieldEnum_EducationPlaceholderField_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "PROGRAM_ID", + 3: "LOCATION_ID", + 4: "PROGRAM_NAME", + 5: "AREA_OF_STUDY", + 6: "PROGRAM_DESCRIPTION", + 7: "SCHOOL_NAME", + 8: "ADDRESS", + 9: "THUMBNAIL_IMAGE_URL", + 10: "ALTERNATIVE_THUMBNAIL_IMAGE_URL", + 11: "FINAL_URLS", + 12: "FINAL_MOBILE_URLS", + 13: "TRACKING_URL", + 14: "CONTEXTUAL_KEYWORDS", + 15: "ANDROID_APP_LINK", + 16: "SIMILAR_PROGRAM_IDS", + 17: "IOS_APP_LINK", + 18: "IOS_APP_STORE_ID", +} +var EducationPlaceholderFieldEnum_EducationPlaceholderField_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "PROGRAM_ID": 2, + "LOCATION_ID": 3, + "PROGRAM_NAME": 4, + "AREA_OF_STUDY": 5, + "PROGRAM_DESCRIPTION": 6, + "SCHOOL_NAME": 7, + "ADDRESS": 8, + "THUMBNAIL_IMAGE_URL": 9, + "ALTERNATIVE_THUMBNAIL_IMAGE_URL": 10, + "FINAL_URLS": 11, + "FINAL_MOBILE_URLS": 12, + "TRACKING_URL": 13, + "CONTEXTUAL_KEYWORDS": 14, + "ANDROID_APP_LINK": 15, + "SIMILAR_PROGRAM_IDS": 16, + "IOS_APP_LINK": 17, + "IOS_APP_STORE_ID": 18, +} + +func (x EducationPlaceholderFieldEnum_EducationPlaceholderField) String() string { + return proto.EnumName(EducationPlaceholderFieldEnum_EducationPlaceholderField_name, int32(x)) +} +func (EducationPlaceholderFieldEnum_EducationPlaceholderField) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_education_placeholder_field_d137ac4ba72ea1ae, []int{0, 0} +} + +// Values for Education placeholder fields. +// For more information about dynamic remarketing feeds, see +// https://support.google.com/google-ads/answer/6053288. +type EducationPlaceholderFieldEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *EducationPlaceholderFieldEnum) Reset() { *m = EducationPlaceholderFieldEnum{} } +func (m *EducationPlaceholderFieldEnum) String() string { return proto.CompactTextString(m) } +func (*EducationPlaceholderFieldEnum) ProtoMessage() {} +func (*EducationPlaceholderFieldEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_education_placeholder_field_d137ac4ba72ea1ae, []int{0} +} +func (m *EducationPlaceholderFieldEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_EducationPlaceholderFieldEnum.Unmarshal(m, b) +} +func (m *EducationPlaceholderFieldEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_EducationPlaceholderFieldEnum.Marshal(b, m, deterministic) +} +func (dst *EducationPlaceholderFieldEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_EducationPlaceholderFieldEnum.Merge(dst, src) +} +func (m *EducationPlaceholderFieldEnum) XXX_Size() int { + return xxx_messageInfo_EducationPlaceholderFieldEnum.Size(m) +} +func (m *EducationPlaceholderFieldEnum) XXX_DiscardUnknown() { + xxx_messageInfo_EducationPlaceholderFieldEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_EducationPlaceholderFieldEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*EducationPlaceholderFieldEnum)(nil), "google.ads.googleads.v0.enums.EducationPlaceholderFieldEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.EducationPlaceholderFieldEnum_EducationPlaceholderField", EducationPlaceholderFieldEnum_EducationPlaceholderField_name, EducationPlaceholderFieldEnum_EducationPlaceholderField_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/education_placeholder_field.proto", fileDescriptor_education_placeholder_field_d137ac4ba72ea1ae) +} + +var fileDescriptor_education_placeholder_field_d137ac4ba72ea1ae = []byte{ + // 477 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x92, 0xcf, 0x8e, 0xd3, 0x30, + 0x10, 0xc6, 0xd9, 0x16, 0x76, 0xc1, 0xdd, 0x3f, 0xae, 0x01, 0x21, 0x0e, 0x05, 0xb1, 0xdc, 0xd3, + 0x4a, 0x1c, 0x39, 0xa0, 0x69, 0xe2, 0x76, 0xad, 0x3a, 0x76, 0x64, 0x27, 0x5d, 0x16, 0x55, 0xb2, + 0x42, 0x13, 0x42, 0xa5, 0x34, 0xa9, 0x9a, 0xed, 0xbe, 0x0d, 0x17, 0x8e, 0xbc, 0x04, 0x77, 0x2e, + 0xbc, 0x12, 0x72, 0x42, 0xb6, 0x17, 0xca, 0x25, 0x1a, 0xcf, 0x7c, 0xf3, 0x9b, 0xd8, 0xf3, 0xa1, + 0x0f, 0x59, 0x59, 0x66, 0x79, 0x3a, 0x8c, 0x93, 0x6a, 0xd8, 0x84, 0x36, 0xba, 0x1b, 0x0d, 0xd3, + 0x62, 0xb7, 0xae, 0x86, 0x69, 0xb2, 0x5b, 0xc6, 0xb7, 0xab, 0xb2, 0x30, 0x9b, 0x3c, 0x5e, 0xa6, + 0x5f, 0xcb, 0x3c, 0x49, 0xb7, 0xe6, 0xcb, 0x2a, 0xcd, 0x13, 0x67, 0xb3, 0x2d, 0x6f, 0x4b, 0x32, + 0x68, 0xba, 0x9c, 0x38, 0xa9, 0x9c, 0x7b, 0x80, 0x73, 0x37, 0x72, 0x6a, 0xc0, 0xe5, 0xcf, 0x2e, + 0x1a, 0xd0, 0x16, 0x12, 0xec, 0x19, 0x13, 0x8b, 0xa0, 0xc5, 0x6e, 0x7d, 0xf9, 0xad, 0x8b, 0x5e, + 0x1e, 0x54, 0x90, 0x0b, 0xd4, 0x8b, 0x84, 0x0e, 0xa8, 0xcb, 0x26, 0x8c, 0x7a, 0xf8, 0x01, 0xe9, + 0xa1, 0x93, 0x48, 0xcc, 0x84, 0xbc, 0x16, 0xf8, 0x88, 0x9c, 0x23, 0x14, 0x28, 0x39, 0x55, 0xe0, + 0x1b, 0xe6, 0xe1, 0x8e, 0x55, 0x73, 0xe9, 0x42, 0xc8, 0xa4, 0xb0, 0x89, 0x2e, 0xc1, 0xe8, 0xb4, + 0x15, 0x08, 0xf0, 0x29, 0x7e, 0x48, 0xfa, 0xe8, 0x0c, 0x14, 0x05, 0x23, 0x27, 0x46, 0x87, 0x91, + 0x77, 0x83, 0x1f, 0x91, 0x17, 0xe8, 0x69, 0x2b, 0xf2, 0xa8, 0x76, 0x15, 0x0b, 0x2c, 0x00, 0x1f, + 0x5b, 0x9c, 0x76, 0xaf, 0xa4, 0xe4, 0x4d, 0xf3, 0x89, 0x1d, 0x0e, 0x9e, 0xa7, 0xa8, 0xd6, 0xf8, + 0xb1, 0x6d, 0x0b, 0xaf, 0x22, 0x7f, 0x2c, 0x80, 0x71, 0xc3, 0x7c, 0x98, 0x52, 0x13, 0x29, 0x8e, + 0x9f, 0x90, 0xb7, 0xe8, 0x35, 0xf0, 0x90, 0x2a, 0x01, 0x21, 0x9b, 0x53, 0xf3, 0x2f, 0x11, 0xb2, + 0xbf, 0x3e, 0x61, 0x02, 0xb8, 0x3d, 0x6a, 0xdc, 0x23, 0xcf, 0x51, 0xbf, 0x39, 0xfb, 0x72, 0xcc, + 0x38, 0x6d, 0xd2, 0xa7, 0xf6, 0x02, 0xa1, 0x02, 0x77, 0xc6, 0xc4, 0xb4, 0x6e, 0x3c, 0xb3, 0x63, + 0x5d, 0x29, 0x42, 0xfa, 0x31, 0x8c, 0x80, 0x9b, 0x19, 0xbd, 0xb9, 0x96, 0xca, 0xd3, 0xf8, 0x9c, + 0x3c, 0x43, 0x18, 0x84, 0xa7, 0x24, 0xf3, 0x0c, 0x04, 0x81, 0xe1, 0x4c, 0xcc, 0xf0, 0x85, 0x95, + 0x6b, 0xe6, 0x33, 0x0e, 0xca, 0xec, 0x9f, 0x4a, 0x63, 0x6c, 0xc9, 0x4c, 0xea, 0xbd, 0xb4, 0x6f, + 0x01, 0x6d, 0x46, 0x87, 0x52, 0x51, 0xfb, 0x84, 0x64, 0xfc, 0xfb, 0x08, 0xbd, 0x59, 0x96, 0x6b, + 0xe7, 0xbf, 0x7b, 0x1e, 0xbf, 0x3a, 0xb8, 0xc2, 0xc0, 0xda, 0x24, 0x38, 0xfa, 0x34, 0xfe, 0x0b, + 0xc8, 0xca, 0x3c, 0x2e, 0x32, 0xa7, 0xdc, 0x66, 0xc3, 0x2c, 0x2d, 0x6a, 0x13, 0xb5, 0xce, 0xdb, + 0xac, 0xaa, 0x03, 0x46, 0x7c, 0x5f, 0x7f, 0xbf, 0x77, 0xba, 0x53, 0x80, 0x1f, 0x9d, 0xc1, 0xb4, + 0x41, 0x41, 0x52, 0x39, 0x4d, 0x68, 0xa3, 0xf9, 0xc8, 0xb1, 0x86, 0xaa, 0x7e, 0xb5, 0xf5, 0x05, + 0x24, 0xd5, 0xe2, 0xbe, 0xbe, 0x98, 0x8f, 0x16, 0x75, 0xfd, 0xf3, 0x71, 0x3d, 0xf4, 0xdd, 0x9f, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xfd, 0x8b, 0x0c, 0x41, 0xfc, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/feed_attribute_type.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/feed_attribute_type.pb.go new file mode 100644 index 000000000..6a68f1909 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/feed_attribute_type.pb.go @@ -0,0 +1,165 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/feed_attribute_type.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Possible data types for a feed attribute. +type FeedAttributeTypeEnum_FeedAttributeType int32 + +const ( + // Not specified. + FeedAttributeTypeEnum_UNSPECIFIED FeedAttributeTypeEnum_FeedAttributeType = 0 + // Used for return value only. Represents value unknown in this version. + FeedAttributeTypeEnum_UNKNOWN FeedAttributeTypeEnum_FeedAttributeType = 1 + // Int64. + FeedAttributeTypeEnum_INT64 FeedAttributeTypeEnum_FeedAttributeType = 2 + // Double. + FeedAttributeTypeEnum_DOUBLE FeedAttributeTypeEnum_FeedAttributeType = 3 + // String. + FeedAttributeTypeEnum_STRING FeedAttributeTypeEnum_FeedAttributeType = 4 + // Boolean. + FeedAttributeTypeEnum_BOOLEAN FeedAttributeTypeEnum_FeedAttributeType = 5 + // Url. + FeedAttributeTypeEnum_URL FeedAttributeTypeEnum_FeedAttributeType = 6 + // Datetime. + FeedAttributeTypeEnum_DATE_TIME FeedAttributeTypeEnum_FeedAttributeType = 7 + // Int64 list. + FeedAttributeTypeEnum_INT64_LIST FeedAttributeTypeEnum_FeedAttributeType = 8 + // Double (8 bytes) list. + FeedAttributeTypeEnum_DOUBLE_LIST FeedAttributeTypeEnum_FeedAttributeType = 9 + // String list. + FeedAttributeTypeEnum_STRING_LIST FeedAttributeTypeEnum_FeedAttributeType = 10 + // Boolean list. + FeedAttributeTypeEnum_BOOLEAN_LIST FeedAttributeTypeEnum_FeedAttributeType = 11 + // Url list. + FeedAttributeTypeEnum_URL_LIST FeedAttributeTypeEnum_FeedAttributeType = 12 + // Datetime list. + FeedAttributeTypeEnum_DATE_TIME_LIST FeedAttributeTypeEnum_FeedAttributeType = 13 + // Price. + FeedAttributeTypeEnum_PRICE FeedAttributeTypeEnum_FeedAttributeType = 14 +) + +var FeedAttributeTypeEnum_FeedAttributeType_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "INT64", + 3: "DOUBLE", + 4: "STRING", + 5: "BOOLEAN", + 6: "URL", + 7: "DATE_TIME", + 8: "INT64_LIST", + 9: "DOUBLE_LIST", + 10: "STRING_LIST", + 11: "BOOLEAN_LIST", + 12: "URL_LIST", + 13: "DATE_TIME_LIST", + 14: "PRICE", +} +var FeedAttributeTypeEnum_FeedAttributeType_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "INT64": 2, + "DOUBLE": 3, + "STRING": 4, + "BOOLEAN": 5, + "URL": 6, + "DATE_TIME": 7, + "INT64_LIST": 8, + "DOUBLE_LIST": 9, + "STRING_LIST": 10, + "BOOLEAN_LIST": 11, + "URL_LIST": 12, + "DATE_TIME_LIST": 13, + "PRICE": 14, +} + +func (x FeedAttributeTypeEnum_FeedAttributeType) String() string { + return proto.EnumName(FeedAttributeTypeEnum_FeedAttributeType_name, int32(x)) +} +func (FeedAttributeTypeEnum_FeedAttributeType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_feed_attribute_type_f28cb50283557059, []int{0, 0} +} + +// Container for enum describing possible data types for a feed attribute. +type FeedAttributeTypeEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FeedAttributeTypeEnum) Reset() { *m = FeedAttributeTypeEnum{} } +func (m *FeedAttributeTypeEnum) String() string { return proto.CompactTextString(m) } +func (*FeedAttributeTypeEnum) ProtoMessage() {} +func (*FeedAttributeTypeEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_feed_attribute_type_f28cb50283557059, []int{0} +} +func (m *FeedAttributeTypeEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FeedAttributeTypeEnum.Unmarshal(m, b) +} +func (m *FeedAttributeTypeEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FeedAttributeTypeEnum.Marshal(b, m, deterministic) +} +func (dst *FeedAttributeTypeEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_FeedAttributeTypeEnum.Merge(dst, src) +} +func (m *FeedAttributeTypeEnum) XXX_Size() int { + return xxx_messageInfo_FeedAttributeTypeEnum.Size(m) +} +func (m *FeedAttributeTypeEnum) XXX_DiscardUnknown() { + xxx_messageInfo_FeedAttributeTypeEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_FeedAttributeTypeEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*FeedAttributeTypeEnum)(nil), "google.ads.googleads.v0.enums.FeedAttributeTypeEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.FeedAttributeTypeEnum_FeedAttributeType", FeedAttributeTypeEnum_FeedAttributeType_name, FeedAttributeTypeEnum_FeedAttributeType_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/feed_attribute_type.proto", fileDescriptor_feed_attribute_type_f28cb50283557059) +} + +var fileDescriptor_feed_attribute_type_f28cb50283557059 = []byte{ + // 369 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x51, 0xcd, 0x6a, 0xab, 0x40, + 0x18, 0xbd, 0x9a, 0x9b, 0xbf, 0x2f, 0x3f, 0x77, 0xee, 0xc0, 0xbd, 0xbb, 0x2c, 0x9a, 0x07, 0x18, + 0x85, 0x96, 0x76, 0xd1, 0x95, 0x26, 0x93, 0x20, 0xb5, 0x2a, 0x46, 0x53, 0x28, 0x82, 0x98, 0x3a, + 0x95, 0x40, 0xa2, 0x12, 0x4d, 0x20, 0xfb, 0x3e, 0x49, 0x97, 0x7d, 0x91, 0x42, 0x1f, 0xa5, 0x4f, + 0x51, 0xc6, 0x49, 0xb2, 0x09, 0xed, 0x46, 0x8e, 0xe7, 0x7c, 0xe7, 0x7c, 0xc3, 0x77, 0xe0, 0x26, + 0xc9, 0xb2, 0x64, 0xc5, 0x94, 0x28, 0x2e, 0x14, 0x01, 0x39, 0xda, 0xa9, 0x0a, 0x4b, 0xb7, 0xeb, + 0x42, 0x79, 0x66, 0x2c, 0x0e, 0xa3, 0xb2, 0xdc, 0x2c, 0x17, 0xdb, 0x92, 0x85, 0xe5, 0x3e, 0x67, + 0x24, 0xdf, 0x64, 0x65, 0x86, 0x07, 0x62, 0x9a, 0x44, 0x71, 0x41, 0x4e, 0x46, 0xb2, 0x53, 0x49, + 0x65, 0x1c, 0xbe, 0xc8, 0xf0, 0x6f, 0xc2, 0x58, 0xac, 0x1d, 0xbd, 0xde, 0x3e, 0x67, 0x34, 0xdd, + 0xae, 0x87, 0x9f, 0x12, 0xfc, 0x3d, 0x53, 0xf0, 0x1f, 0xe8, 0xf8, 0xd6, 0xcc, 0xa1, 0x23, 0x63, + 0x62, 0xd0, 0x31, 0xfa, 0x85, 0x3b, 0xd0, 0xf4, 0xad, 0x3b, 0xcb, 0x7e, 0xb0, 0x90, 0x84, 0xdb, + 0x50, 0x37, 0x2c, 0xef, 0xfa, 0x0a, 0xc9, 0x18, 0xa0, 0x31, 0xb6, 0x7d, 0xdd, 0xa4, 0xa8, 0xc6, + 0xf1, 0xcc, 0x73, 0x0d, 0x6b, 0x8a, 0x7e, 0xf3, 0x79, 0xdd, 0xb6, 0x4d, 0xaa, 0x59, 0xa8, 0x8e, + 0x9b, 0x50, 0xf3, 0x5d, 0x13, 0x35, 0x70, 0x0f, 0xda, 0x63, 0xcd, 0xa3, 0xa1, 0x67, 0xdc, 0x53, + 0xd4, 0xc4, 0x7d, 0x80, 0x2a, 0x27, 0x34, 0x8d, 0x99, 0x87, 0x5a, 0x7c, 0xab, 0x08, 0x13, 0x44, + 0x9b, 0x13, 0x22, 0x51, 0x10, 0x80, 0x11, 0x74, 0x0f, 0xb1, 0x82, 0xe9, 0xe0, 0x2e, 0xb4, 0x7c, + 0xd7, 0x14, 0x7f, 0x5d, 0x8c, 0xa1, 0x7f, 0x5a, 0x20, 0xb8, 0x1e, 0x7f, 0xad, 0xe3, 0x1a, 0x23, + 0x8a, 0xfa, 0xfa, 0xbb, 0x04, 0x17, 0x4f, 0xd9, 0x9a, 0xfc, 0x78, 0x2c, 0xfd, 0xff, 0xd9, 0x3d, + 0x1c, 0x7e, 0x63, 0x47, 0x7a, 0xd4, 0x0f, 0xc6, 0x24, 0x5b, 0x45, 0x69, 0x42, 0xb2, 0x4d, 0xa2, + 0x24, 0x2c, 0xad, 0x1a, 0x38, 0xd6, 0x95, 0x2f, 0x8b, 0x6f, 0xda, 0xbb, 0xad, 0xbe, 0xaf, 0x72, + 0x6d, 0xaa, 0x69, 0x6f, 0xf2, 0x60, 0x2a, 0xa2, 0xb4, 0xb8, 0x20, 0x02, 0x72, 0x34, 0x57, 0x09, + 0x6f, 0xa5, 0xf8, 0x38, 0xea, 0x81, 0x16, 0x17, 0xc1, 0x49, 0x0f, 0xe6, 0x6a, 0x50, 0xe9, 0x8b, + 0x46, 0xb5, 0xf4, 0xf2, 0x2b, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xb4, 0xcc, 0xb0, 0x31, 0x02, 0x00, + 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/feed_item_status.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/feed_item_status.pb.go new file mode 100644 index 000000000..894bdd575 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/feed_item_status.pb.go @@ -0,0 +1,114 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/feed_item_status.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Possible statuses of a feed item. +type FeedItemStatusEnum_FeedItemStatus int32 + +const ( + // Not specified. + FeedItemStatusEnum_UNSPECIFIED FeedItemStatusEnum_FeedItemStatus = 0 + // Used for return value only. Represents value unknown in this version. + FeedItemStatusEnum_UNKNOWN FeedItemStatusEnum_FeedItemStatus = 1 + // Feed item is enabled. + FeedItemStatusEnum_ENABLED FeedItemStatusEnum_FeedItemStatus = 2 + // Feed item has been removed. + FeedItemStatusEnum_REMOVED FeedItemStatusEnum_FeedItemStatus = 3 +) + +var FeedItemStatusEnum_FeedItemStatus_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "ENABLED", + 3: "REMOVED", +} +var FeedItemStatusEnum_FeedItemStatus_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "ENABLED": 2, + "REMOVED": 3, +} + +func (x FeedItemStatusEnum_FeedItemStatus) String() string { + return proto.EnumName(FeedItemStatusEnum_FeedItemStatus_name, int32(x)) +} +func (FeedItemStatusEnum_FeedItemStatus) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_feed_item_status_fb1ba51d1ba4287a, []int{0, 0} +} + +// Container for enum describing possible statuses of a feed item. +type FeedItemStatusEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FeedItemStatusEnum) Reset() { *m = FeedItemStatusEnum{} } +func (m *FeedItemStatusEnum) String() string { return proto.CompactTextString(m) } +func (*FeedItemStatusEnum) ProtoMessage() {} +func (*FeedItemStatusEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_feed_item_status_fb1ba51d1ba4287a, []int{0} +} +func (m *FeedItemStatusEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FeedItemStatusEnum.Unmarshal(m, b) +} +func (m *FeedItemStatusEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FeedItemStatusEnum.Marshal(b, m, deterministic) +} +func (dst *FeedItemStatusEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_FeedItemStatusEnum.Merge(dst, src) +} +func (m *FeedItemStatusEnum) XXX_Size() int { + return xxx_messageInfo_FeedItemStatusEnum.Size(m) +} +func (m *FeedItemStatusEnum) XXX_DiscardUnknown() { + xxx_messageInfo_FeedItemStatusEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_FeedItemStatusEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*FeedItemStatusEnum)(nil), "google.ads.googleads.v0.enums.FeedItemStatusEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.FeedItemStatusEnum_FeedItemStatus", FeedItemStatusEnum_FeedItemStatus_name, FeedItemStatusEnum_FeedItemStatus_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/feed_item_status.proto", fileDescriptor_feed_item_status_fb1ba51d1ba4287a) +} + +var fileDescriptor_feed_item_status_fb1ba51d1ba4287a = []byte{ + // 264 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x32, 0x49, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xbc, + 0xd2, 0xdc, 0x62, 0xfd, 0xb4, 0xd4, 0xd4, 0x94, 0xf8, 0xcc, 0x92, 0xd4, 0xdc, 0xf8, 0xe2, 0x92, + 0xc4, 0x92, 0xd2, 0x62, 0xbd, 0x82, 0xa2, 0xfc, 0x92, 0x7c, 0x21, 0x59, 0x88, 0x52, 0xbd, 0xc4, + 0x94, 0x62, 0x3d, 0xb8, 0x2e, 0xbd, 0x32, 0x03, 0x3d, 0xb0, 0x2e, 0xa5, 0x38, 0x2e, 0x21, 0xb7, + 0xd4, 0xd4, 0x14, 0xcf, 0x92, 0xd4, 0xdc, 0x60, 0xb0, 0x36, 0xd7, 0xbc, 0xd2, 0x5c, 0x25, 0x0f, + 0x2e, 0x3e, 0x54, 0x51, 0x21, 0x7e, 0x2e, 0xee, 0x50, 0xbf, 0xe0, 0x00, 0x57, 0x67, 0x4f, 0x37, + 0x4f, 0x57, 0x17, 0x01, 0x06, 0x21, 0x6e, 0x2e, 0xf6, 0x50, 0x3f, 0x6f, 0x3f, 0xff, 0x70, 0x3f, + 0x01, 0x46, 0x10, 0xc7, 0xd5, 0xcf, 0xd1, 0xc9, 0xc7, 0xd5, 0x45, 0x80, 0x09, 0xc4, 0x09, 0x72, + 0xf5, 0xf5, 0x0f, 0x73, 0x75, 0x11, 0x60, 0x76, 0x3a, 0xc2, 0xc8, 0xa5, 0x98, 0x9c, 0x9f, 0xab, + 0x87, 0xd7, 0x15, 0x4e, 0xc2, 0xa8, 0xb6, 0x05, 0x80, 0x5c, 0x1e, 0xc0, 0x18, 0xe5, 0x04, 0xd5, + 0x95, 0x9e, 0x9f, 0x93, 0x98, 0x97, 0xae, 0x97, 0x5f, 0x94, 0xae, 0x9f, 0x9e, 0x9a, 0x07, 0xf6, + 0x17, 0x2c, 0x04, 0x0a, 0x32, 0x8b, 0x71, 0x04, 0x88, 0x35, 0x98, 0x5c, 0xc4, 0xc4, 0xec, 0xee, + 0xe8, 0xb8, 0x8a, 0x49, 0xd6, 0x1d, 0x62, 0x94, 0x63, 0x4a, 0xb1, 0x1e, 0x84, 0x09, 0x62, 0x85, + 0x19, 0xe8, 0x81, 0xfc, 0x5b, 0x7c, 0x0a, 0x26, 0x1f, 0xe3, 0x98, 0x52, 0x1c, 0x03, 0x97, 0x8f, + 0x09, 0x33, 0x88, 0x01, 0xcb, 0x27, 0xb1, 0x81, 0x2d, 0x35, 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, + 0x86, 0xa7, 0xa3, 0xa7, 0x84, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/feed_link_status.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/feed_link_status.pb.go new file mode 100644 index 000000000..c5f30086d --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/feed_link_status.pb.go @@ -0,0 +1,114 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/feed_link_status.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Possible statuses of a feed link. +type FeedLinkStatusEnum_FeedLinkStatus int32 + +const ( + // Not specified. + FeedLinkStatusEnum_UNSPECIFIED FeedLinkStatusEnum_FeedLinkStatus = 0 + // Used for return value only. Represents value unknown in this version. + FeedLinkStatusEnum_UNKNOWN FeedLinkStatusEnum_FeedLinkStatus = 1 + // Feed link is enabled. + FeedLinkStatusEnum_ENABLED FeedLinkStatusEnum_FeedLinkStatus = 2 + // Feed link has been removed. + FeedLinkStatusEnum_REMOVED FeedLinkStatusEnum_FeedLinkStatus = 3 +) + +var FeedLinkStatusEnum_FeedLinkStatus_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "ENABLED", + 3: "REMOVED", +} +var FeedLinkStatusEnum_FeedLinkStatus_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "ENABLED": 2, + "REMOVED": 3, +} + +func (x FeedLinkStatusEnum_FeedLinkStatus) String() string { + return proto.EnumName(FeedLinkStatusEnum_FeedLinkStatus_name, int32(x)) +} +func (FeedLinkStatusEnum_FeedLinkStatus) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_feed_link_status_46af2d1278b1086e, []int{0, 0} +} + +// Container for an enum describing possible statuses of a feed link. +type FeedLinkStatusEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FeedLinkStatusEnum) Reset() { *m = FeedLinkStatusEnum{} } +func (m *FeedLinkStatusEnum) String() string { return proto.CompactTextString(m) } +func (*FeedLinkStatusEnum) ProtoMessage() {} +func (*FeedLinkStatusEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_feed_link_status_46af2d1278b1086e, []int{0} +} +func (m *FeedLinkStatusEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FeedLinkStatusEnum.Unmarshal(m, b) +} +func (m *FeedLinkStatusEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FeedLinkStatusEnum.Marshal(b, m, deterministic) +} +func (dst *FeedLinkStatusEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_FeedLinkStatusEnum.Merge(dst, src) +} +func (m *FeedLinkStatusEnum) XXX_Size() int { + return xxx_messageInfo_FeedLinkStatusEnum.Size(m) +} +func (m *FeedLinkStatusEnum) XXX_DiscardUnknown() { + xxx_messageInfo_FeedLinkStatusEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_FeedLinkStatusEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*FeedLinkStatusEnum)(nil), "google.ads.googleads.v0.enums.FeedLinkStatusEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.FeedLinkStatusEnum_FeedLinkStatus", FeedLinkStatusEnum_FeedLinkStatus_name, FeedLinkStatusEnum_FeedLinkStatus_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/feed_link_status.proto", fileDescriptor_feed_link_status_46af2d1278b1086e) +} + +var fileDescriptor_feed_link_status_46af2d1278b1086e = []byte{ + // 264 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x32, 0x49, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xbc, + 0xd2, 0xdc, 0x62, 0xfd, 0xb4, 0xd4, 0xd4, 0x94, 0xf8, 0x9c, 0xcc, 0xbc, 0xec, 0xf8, 0xe2, 0x92, + 0xc4, 0x92, 0xd2, 0x62, 0xbd, 0x82, 0xa2, 0xfc, 0x92, 0x7c, 0x21, 0x59, 0x88, 0x52, 0xbd, 0xc4, + 0x94, 0x62, 0x3d, 0xb8, 0x2e, 0xbd, 0x32, 0x03, 0x3d, 0xb0, 0x2e, 0xa5, 0x38, 0x2e, 0x21, 0xb7, + 0xd4, 0xd4, 0x14, 0x9f, 0xcc, 0xbc, 0xec, 0x60, 0xb0, 0x36, 0xd7, 0xbc, 0xd2, 0x5c, 0x25, 0x0f, + 0x2e, 0x3e, 0x54, 0x51, 0x21, 0x7e, 0x2e, 0xee, 0x50, 0xbf, 0xe0, 0x00, 0x57, 0x67, 0x4f, 0x37, + 0x4f, 0x57, 0x17, 0x01, 0x06, 0x21, 0x6e, 0x2e, 0xf6, 0x50, 0x3f, 0x6f, 0x3f, 0xff, 0x70, 0x3f, + 0x01, 0x46, 0x10, 0xc7, 0xd5, 0xcf, 0xd1, 0xc9, 0xc7, 0xd5, 0x45, 0x80, 0x09, 0xc4, 0x09, 0x72, + 0xf5, 0xf5, 0x0f, 0x73, 0x75, 0x11, 0x60, 0x76, 0x3a, 0xc2, 0xc8, 0xa5, 0x98, 0x9c, 0x9f, 0xab, + 0x87, 0xd7, 0x15, 0x4e, 0xc2, 0xa8, 0xb6, 0x05, 0x80, 0x5c, 0x1e, 0xc0, 0x18, 0xe5, 0x04, 0xd5, + 0x95, 0x9e, 0x9f, 0x93, 0x98, 0x97, 0xae, 0x97, 0x5f, 0x94, 0xae, 0x9f, 0x9e, 0x9a, 0x07, 0xf6, + 0x17, 0x2c, 0x04, 0x0a, 0x32, 0x8b, 0x71, 0x04, 0x88, 0x35, 0x98, 0x5c, 0xc4, 0xc4, 0xec, 0xee, + 0xe8, 0xb8, 0x8a, 0x49, 0xd6, 0x1d, 0x62, 0x94, 0x63, 0x4a, 0xb1, 0x1e, 0x84, 0x09, 0x62, 0x85, + 0x19, 0xe8, 0x81, 0xfc, 0x5b, 0x7c, 0x0a, 0x26, 0x1f, 0xe3, 0x98, 0x52, 0x1c, 0x03, 0x97, 0x8f, + 0x09, 0x33, 0x88, 0x01, 0xcb, 0x27, 0xb1, 0x81, 0x2d, 0x35, 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, + 0x4d, 0x2b, 0x63, 0x50, 0x84, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/feed_mapping_criterion_type.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/feed_mapping_criterion_type.pb.go new file mode 100644 index 000000000..0e8be2c3f --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/feed_mapping_criterion_type.pb.go @@ -0,0 +1,117 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/feed_mapping_criterion_type.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Possible placeholder types for a feed mapping. +type FeedMappingCriterionTypeEnum_FeedMappingCriterionType int32 + +const ( + // Not specified. + FeedMappingCriterionTypeEnum_UNSPECIFIED FeedMappingCriterionTypeEnum_FeedMappingCriterionType = 0 + // Used for return value only. Represents value unknown in this version. + FeedMappingCriterionTypeEnum_UNKNOWN FeedMappingCriterionTypeEnum_FeedMappingCriterionType = 1 + // Allows campaign targeting at locations within a location feed. + FeedMappingCriterionTypeEnum_CAMPAIGN_LOCATION_TARGETS FeedMappingCriterionTypeEnum_FeedMappingCriterionType = 2 + // Allows url targeting for your dynamic search ads within a page feed. + FeedMappingCriterionTypeEnum_DSA_PAGE_FEED FeedMappingCriterionTypeEnum_FeedMappingCriterionType = 3 +) + +var FeedMappingCriterionTypeEnum_FeedMappingCriterionType_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "CAMPAIGN_LOCATION_TARGETS", + 3: "DSA_PAGE_FEED", +} +var FeedMappingCriterionTypeEnum_FeedMappingCriterionType_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "CAMPAIGN_LOCATION_TARGETS": 2, + "DSA_PAGE_FEED": 3, +} + +func (x FeedMappingCriterionTypeEnum_FeedMappingCriterionType) String() string { + return proto.EnumName(FeedMappingCriterionTypeEnum_FeedMappingCriterionType_name, int32(x)) +} +func (FeedMappingCriterionTypeEnum_FeedMappingCriterionType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_feed_mapping_criterion_type_93ad8a18e2c6175b, []int{0, 0} +} + +// Container for enum describing possible criterion types for a feed mapping. +type FeedMappingCriterionTypeEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FeedMappingCriterionTypeEnum) Reset() { *m = FeedMappingCriterionTypeEnum{} } +func (m *FeedMappingCriterionTypeEnum) String() string { return proto.CompactTextString(m) } +func (*FeedMappingCriterionTypeEnum) ProtoMessage() {} +func (*FeedMappingCriterionTypeEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_feed_mapping_criterion_type_93ad8a18e2c6175b, []int{0} +} +func (m *FeedMappingCriterionTypeEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FeedMappingCriterionTypeEnum.Unmarshal(m, b) +} +func (m *FeedMappingCriterionTypeEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FeedMappingCriterionTypeEnum.Marshal(b, m, deterministic) +} +func (dst *FeedMappingCriterionTypeEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_FeedMappingCriterionTypeEnum.Merge(dst, src) +} +func (m *FeedMappingCriterionTypeEnum) XXX_Size() int { + return xxx_messageInfo_FeedMappingCriterionTypeEnum.Size(m) +} +func (m *FeedMappingCriterionTypeEnum) XXX_DiscardUnknown() { + xxx_messageInfo_FeedMappingCriterionTypeEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_FeedMappingCriterionTypeEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*FeedMappingCriterionTypeEnum)(nil), "google.ads.googleads.v0.enums.FeedMappingCriterionTypeEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.FeedMappingCriterionTypeEnum_FeedMappingCriterionType", FeedMappingCriterionTypeEnum_FeedMappingCriterionType_name, FeedMappingCriterionTypeEnum_FeedMappingCriterionType_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/feed_mapping_criterion_type.proto", fileDescriptor_feed_mapping_criterion_type_93ad8a18e2c6175b) +} + +var fileDescriptor_feed_mapping_criterion_type_93ad8a18e2c6175b = []byte{ + // 306 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0xd1, 0x4a, 0xf3, 0x30, + 0x18, 0x86, 0xff, 0x6e, 0xf0, 0x0b, 0x19, 0x62, 0xed, 0x91, 0x82, 0x3d, 0x70, 0x17, 0x90, 0x16, + 0x3c, 0xf4, 0x40, 0xb2, 0x2e, 0x2b, 0x45, 0x97, 0x15, 0xd7, 0x4d, 0x90, 0x42, 0xa8, 0x4b, 0x0c, + 0x95, 0x35, 0x09, 0x4d, 0x37, 0xd8, 0x2d, 0x78, 0x19, 0x1e, 0x7a, 0x29, 0x1e, 0x78, 0x4d, 0xd2, + 0xd6, 0xee, 0xac, 0x9e, 0x84, 0x17, 0x5e, 0xbe, 0x27, 0xdf, 0xf7, 0x80, 0x3b, 0xa1, 0x94, 0xd8, + 0x72, 0x2f, 0x63, 0xc6, 0x6b, 0x63, 0x9d, 0xf6, 0xbe, 0xc7, 0xe5, 0xae, 0x30, 0xde, 0x2b, 0xe7, + 0x8c, 0x16, 0x99, 0xd6, 0xb9, 0x14, 0x74, 0x53, 0xe6, 0x15, 0x2f, 0x73, 0x25, 0x69, 0x75, 0xd0, + 0x1c, 0xea, 0x52, 0x55, 0xca, 0x71, 0xdb, 0x29, 0x98, 0x31, 0x03, 0x8f, 0x00, 0xb8, 0xf7, 0x61, + 0x03, 0x18, 0xbf, 0x5b, 0xe0, 0x6a, 0xc6, 0x39, 0x9b, 0xb7, 0x8c, 0xa0, 0x43, 0x24, 0x07, 0xcd, + 0xb1, 0xdc, 0x15, 0xe3, 0x37, 0x70, 0xd1, 0xd7, 0x3b, 0x67, 0x60, 0xb4, 0x22, 0xcb, 0x18, 0x07, + 0xd1, 0x2c, 0xc2, 0x53, 0xfb, 0x9f, 0x33, 0x02, 0x27, 0x2b, 0x72, 0x4f, 0x16, 0x4f, 0xc4, 0xb6, + 0x1c, 0x17, 0x5c, 0x06, 0x68, 0x1e, 0xa3, 0x28, 0x24, 0xf4, 0x61, 0x11, 0xa0, 0x24, 0x5a, 0x10, + 0x9a, 0xa0, 0xc7, 0x10, 0x27, 0x4b, 0x7b, 0xe0, 0x9c, 0x83, 0xd3, 0xe9, 0x12, 0xd1, 0x18, 0x85, + 0x98, 0xce, 0x30, 0x9e, 0xda, 0xc3, 0xc9, 0xb7, 0x05, 0xae, 0x37, 0xaa, 0x80, 0x7f, 0xae, 0x3c, + 0x71, 0xfb, 0xf6, 0x89, 0xeb, 0x83, 0x63, 0xeb, 0x79, 0xf2, 0x3b, 0x2f, 0xd4, 0x36, 0x93, 0x02, + 0xaa, 0x52, 0x78, 0x82, 0xcb, 0x46, 0x47, 0xe7, 0x50, 0xe7, 0xa6, 0x47, 0xe9, 0x6d, 0xf3, 0x7e, + 0x0c, 0x86, 0x21, 0x42, 0x9f, 0x03, 0x37, 0x6c, 0x51, 0x88, 0x19, 0xd8, 0xc6, 0x3a, 0xad, 0x7d, + 0x58, 0xbb, 0x31, 0x5f, 0x5d, 0x9f, 0x22, 0x66, 0xd2, 0x63, 0x9f, 0xae, 0xfd, 0xb4, 0xe9, 0x5f, + 0xfe, 0x37, 0x9f, 0xde, 0xfc, 0x04, 0x00, 0x00, 0xff, 0xff, 0x3c, 0xc4, 0xa2, 0x02, 0xc6, 0x01, + 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/feed_mapping_status.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/feed_mapping_status.pb.go new file mode 100644 index 000000000..ea5d396c6 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/feed_mapping_status.pb.go @@ -0,0 +1,114 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/feed_mapping_status.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Possible statuses of a feed mapping. +type FeedMappingStatusEnum_FeedMappingStatus int32 + +const ( + // Not specified. + FeedMappingStatusEnum_UNSPECIFIED FeedMappingStatusEnum_FeedMappingStatus = 0 + // Used for return value only. Represents value unknown in this version. + FeedMappingStatusEnum_UNKNOWN FeedMappingStatusEnum_FeedMappingStatus = 1 + // Feed mapping is enabled. + FeedMappingStatusEnum_ENABLED FeedMappingStatusEnum_FeedMappingStatus = 2 + // Feed mapping has been removed. + FeedMappingStatusEnum_REMOVED FeedMappingStatusEnum_FeedMappingStatus = 3 +) + +var FeedMappingStatusEnum_FeedMappingStatus_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "ENABLED", + 3: "REMOVED", +} +var FeedMappingStatusEnum_FeedMappingStatus_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "ENABLED": 2, + "REMOVED": 3, +} + +func (x FeedMappingStatusEnum_FeedMappingStatus) String() string { + return proto.EnumName(FeedMappingStatusEnum_FeedMappingStatus_name, int32(x)) +} +func (FeedMappingStatusEnum_FeedMappingStatus) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_feed_mapping_status_654747732e989e69, []int{0, 0} +} + +// Container for enum describing possible statuses of a feed mapping. +type FeedMappingStatusEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FeedMappingStatusEnum) Reset() { *m = FeedMappingStatusEnum{} } +func (m *FeedMappingStatusEnum) String() string { return proto.CompactTextString(m) } +func (*FeedMappingStatusEnum) ProtoMessage() {} +func (*FeedMappingStatusEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_feed_mapping_status_654747732e989e69, []int{0} +} +func (m *FeedMappingStatusEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FeedMappingStatusEnum.Unmarshal(m, b) +} +func (m *FeedMappingStatusEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FeedMappingStatusEnum.Marshal(b, m, deterministic) +} +func (dst *FeedMappingStatusEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_FeedMappingStatusEnum.Merge(dst, src) +} +func (m *FeedMappingStatusEnum) XXX_Size() int { + return xxx_messageInfo_FeedMappingStatusEnum.Size(m) +} +func (m *FeedMappingStatusEnum) XXX_DiscardUnknown() { + xxx_messageInfo_FeedMappingStatusEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_FeedMappingStatusEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*FeedMappingStatusEnum)(nil), "google.ads.googleads.v0.enums.FeedMappingStatusEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.FeedMappingStatusEnum_FeedMappingStatus", FeedMappingStatusEnum_FeedMappingStatus_name, FeedMappingStatusEnum_FeedMappingStatus_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/feed_mapping_status.proto", fileDescriptor_feed_mapping_status_654747732e989e69) +} + +var fileDescriptor_feed_mapping_status_654747732e989e69 = []byte{ + // 266 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x32, 0x4f, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xbc, + 0xd2, 0xdc, 0x62, 0xfd, 0xb4, 0xd4, 0xd4, 0x94, 0xf8, 0xdc, 0xc4, 0x82, 0x82, 0xcc, 0xbc, 0xf4, + 0xf8, 0xe2, 0x92, 0xc4, 0x92, 0xd2, 0x62, 0xbd, 0x82, 0xa2, 0xfc, 0x92, 0x7c, 0x21, 0x59, 0x88, + 0x6a, 0xbd, 0xc4, 0x94, 0x62, 0x3d, 0xb8, 0x46, 0xbd, 0x32, 0x03, 0x3d, 0xb0, 0x46, 0xa5, 0x14, + 0x2e, 0x51, 0xb7, 0xd4, 0xd4, 0x14, 0x5f, 0x88, 0xd6, 0x60, 0xb0, 0x4e, 0xd7, 0xbc, 0xd2, 0x5c, + 0x25, 0x6f, 0x2e, 0x41, 0x0c, 0x09, 0x21, 0x7e, 0x2e, 0xee, 0x50, 0xbf, 0xe0, 0x00, 0x57, 0x67, + 0x4f, 0x37, 0x4f, 0x57, 0x17, 0x01, 0x06, 0x21, 0x6e, 0x2e, 0xf6, 0x50, 0x3f, 0x6f, 0x3f, 0xff, + 0x70, 0x3f, 0x01, 0x46, 0x10, 0xc7, 0xd5, 0xcf, 0xd1, 0xc9, 0xc7, 0xd5, 0x45, 0x80, 0x09, 0xc4, + 0x09, 0x72, 0xf5, 0xf5, 0x0f, 0x73, 0x75, 0x11, 0x60, 0x76, 0x3a, 0xce, 0xc8, 0xa5, 0x98, 0x9c, + 0x9f, 0xab, 0x87, 0xd7, 0x2d, 0x4e, 0x62, 0x18, 0x16, 0x06, 0x80, 0xbc, 0x10, 0xc0, 0x18, 0xe5, + 0x04, 0xd5, 0x98, 0x9e, 0x9f, 0x93, 0x98, 0x97, 0xae, 0x97, 0x5f, 0x94, 0xae, 0x9f, 0x9e, 0x9a, + 0x07, 0xf6, 0x20, 0x2c, 0x34, 0x0a, 0x32, 0x8b, 0x71, 0x04, 0x8e, 0x35, 0x98, 0x5c, 0xc4, 0xc4, + 0xec, 0xee, 0xe8, 0xb8, 0x8a, 0x49, 0xd6, 0x1d, 0x62, 0x94, 0x63, 0x4a, 0xb1, 0x1e, 0x84, 0x09, + 0x62, 0x85, 0x19, 0xe8, 0x81, 0x7c, 0x5d, 0x7c, 0x0a, 0x26, 0x1f, 0xe3, 0x98, 0x52, 0x1c, 0x03, + 0x97, 0x8f, 0x09, 0x33, 0x88, 0x01, 0xcb, 0x27, 0xb1, 0x81, 0x2d, 0x35, 0x06, 0x04, 0x00, 0x00, + 0xff, 0xff, 0x4f, 0x07, 0xd5, 0x76, 0x90, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/feed_origin.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/feed_origin.pb.go new file mode 100644 index 000000000..23fae1b74 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/feed_origin.pb.go @@ -0,0 +1,116 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/feed_origin.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Possible values for a feed origin. +type FeedOriginEnum_FeedOrigin int32 + +const ( + // Not specified. + FeedOriginEnum_UNSPECIFIED FeedOriginEnum_FeedOrigin = 0 + // Used for return value only. Represents value unknown in this version. + FeedOriginEnum_UNKNOWN FeedOriginEnum_FeedOrigin = 1 + // The FeedAttributes for this Feed are managed by the + // user. Users can add FeedAttributes to this Feed. + FeedOriginEnum_USER FeedOriginEnum_FeedOrigin = 2 + // The FeedAttributes for an GOOGLE Feed are created by Google. A feed of + // this type is maintained by Google and will have the correct attributes + // for the placeholder type of the feed. + FeedOriginEnum_GOOGLE FeedOriginEnum_FeedOrigin = 3 +) + +var FeedOriginEnum_FeedOrigin_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "USER", + 3: "GOOGLE", +} +var FeedOriginEnum_FeedOrigin_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "USER": 2, + "GOOGLE": 3, +} + +func (x FeedOriginEnum_FeedOrigin) String() string { + return proto.EnumName(FeedOriginEnum_FeedOrigin_name, int32(x)) +} +func (FeedOriginEnum_FeedOrigin) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_feed_origin_5aa9a66e5b46cb8f, []int{0, 0} +} + +// Container for enum describing possible values for a feed origin. +type FeedOriginEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FeedOriginEnum) Reset() { *m = FeedOriginEnum{} } +func (m *FeedOriginEnum) String() string { return proto.CompactTextString(m) } +func (*FeedOriginEnum) ProtoMessage() {} +func (*FeedOriginEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_feed_origin_5aa9a66e5b46cb8f, []int{0} +} +func (m *FeedOriginEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FeedOriginEnum.Unmarshal(m, b) +} +func (m *FeedOriginEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FeedOriginEnum.Marshal(b, m, deterministic) +} +func (dst *FeedOriginEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_FeedOriginEnum.Merge(dst, src) +} +func (m *FeedOriginEnum) XXX_Size() int { + return xxx_messageInfo_FeedOriginEnum.Size(m) +} +func (m *FeedOriginEnum) XXX_DiscardUnknown() { + xxx_messageInfo_FeedOriginEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_FeedOriginEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*FeedOriginEnum)(nil), "google.ads.googleads.v0.enums.FeedOriginEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.FeedOriginEnum_FeedOrigin", FeedOriginEnum_FeedOrigin_name, FeedOriginEnum_FeedOrigin_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/feed_origin.proto", fileDescriptor_feed_origin_5aa9a66e5b46cb8f) +} + +var fileDescriptor_feed_origin_5aa9a66e5b46cb8f = []byte{ + // 254 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xd2, 0x4f, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0x86, 0x32, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xbc, 0xd2, + 0xdc, 0x62, 0xfd, 0xb4, 0xd4, 0xd4, 0x94, 0xf8, 0xfc, 0xa2, 0xcc, 0xf4, 0xcc, 0x3c, 0xbd, 0x82, + 0xa2, 0xfc, 0x92, 0x7c, 0x21, 0x59, 0x88, 0x2a, 0xbd, 0xc4, 0x94, 0x62, 0x3d, 0xb8, 0x06, 0xbd, + 0x32, 0x03, 0x3d, 0xb0, 0x06, 0xa5, 0x20, 0x2e, 0x3e, 0xb7, 0xd4, 0xd4, 0x14, 0x7f, 0xb0, 0x16, + 0xd7, 0xbc, 0xd2, 0x5c, 0x25, 0x07, 0x2e, 0x2e, 0x84, 0x88, 0x10, 0x3f, 0x17, 0x77, 0xa8, 0x5f, + 0x70, 0x80, 0xab, 0xb3, 0xa7, 0x9b, 0xa7, 0xab, 0x8b, 0x00, 0x83, 0x10, 0x37, 0x17, 0x7b, 0xa8, + 0x9f, 0xb7, 0x9f, 0x7f, 0xb8, 0x9f, 0x00, 0xa3, 0x10, 0x07, 0x17, 0x4b, 0x68, 0xb0, 0x6b, 0x90, + 0x00, 0x93, 0x10, 0x17, 0x17, 0x9b, 0xbb, 0xbf, 0xbf, 0xbb, 0x8f, 0xab, 0x00, 0xb3, 0xd3, 0x01, + 0x46, 0x2e, 0xc5, 0xe4, 0xfc, 0x5c, 0x3d, 0xbc, 0x36, 0x3b, 0xf1, 0x23, 0x6c, 0x09, 0x00, 0xb9, + 0x34, 0x80, 0x31, 0xca, 0x09, 0xaa, 0x23, 0x3d, 0x3f, 0x27, 0x31, 0x2f, 0x5d, 0x2f, 0xbf, 0x28, + 0x5d, 0x3f, 0x3d, 0x35, 0x0f, 0xec, 0x0f, 0x98, 0x67, 0x0b, 0x32, 0x8b, 0x71, 0xf8, 0xdd, 0x1a, + 0x4c, 0x2e, 0x62, 0x62, 0x76, 0x77, 0x74, 0x5c, 0xc5, 0x24, 0xeb, 0x0e, 0x31, 0xca, 0x31, 0xa5, + 0x58, 0x0f, 0xc2, 0x04, 0xb1, 0xc2, 0x0c, 0xf4, 0x40, 0x7e, 0x2c, 0x3e, 0x05, 0x93, 0x8f, 0x71, + 0x4c, 0x29, 0x8e, 0x81, 0xcb, 0xc7, 0x84, 0x19, 0xc4, 0x80, 0xe5, 0x93, 0xd8, 0xc0, 0x96, 0x1a, + 0x03, 0x02, 0x00, 0x00, 0xff, 0xff, 0x41, 0xa0, 0x95, 0x7f, 0x6f, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/feed_status.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/feed_status.pb.go new file mode 100644 index 000000000..ec7938a07 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/feed_status.pb.go @@ -0,0 +1,113 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/feed_status.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Possible statuses of a feed. +type FeedStatusEnum_FeedStatus int32 + +const ( + // Not specified. + FeedStatusEnum_UNSPECIFIED FeedStatusEnum_FeedStatus = 0 + // Used for return value only. Represents value unknown in this version. + FeedStatusEnum_UNKNOWN FeedStatusEnum_FeedStatus = 1 + // Feed is enabled. + FeedStatusEnum_ENABLED FeedStatusEnum_FeedStatus = 2 + // Feed has been removed. + FeedStatusEnum_REMOVED FeedStatusEnum_FeedStatus = 3 +) + +var FeedStatusEnum_FeedStatus_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "ENABLED", + 3: "REMOVED", +} +var FeedStatusEnum_FeedStatus_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "ENABLED": 2, + "REMOVED": 3, +} + +func (x FeedStatusEnum_FeedStatus) String() string { + return proto.EnumName(FeedStatusEnum_FeedStatus_name, int32(x)) +} +func (FeedStatusEnum_FeedStatus) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_feed_status_dd159d67991f6ccc, []int{0, 0} +} + +// Container for enum describing possible statuses of a feed. +type FeedStatusEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FeedStatusEnum) Reset() { *m = FeedStatusEnum{} } +func (m *FeedStatusEnum) String() string { return proto.CompactTextString(m) } +func (*FeedStatusEnum) ProtoMessage() {} +func (*FeedStatusEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_feed_status_dd159d67991f6ccc, []int{0} +} +func (m *FeedStatusEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FeedStatusEnum.Unmarshal(m, b) +} +func (m *FeedStatusEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FeedStatusEnum.Marshal(b, m, deterministic) +} +func (dst *FeedStatusEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_FeedStatusEnum.Merge(dst, src) +} +func (m *FeedStatusEnum) XXX_Size() int { + return xxx_messageInfo_FeedStatusEnum.Size(m) +} +func (m *FeedStatusEnum) XXX_DiscardUnknown() { + xxx_messageInfo_FeedStatusEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_FeedStatusEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*FeedStatusEnum)(nil), "google.ads.googleads.v0.enums.FeedStatusEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.FeedStatusEnum_FeedStatus", FeedStatusEnum_FeedStatus_name, FeedStatusEnum_FeedStatus_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/feed_status.proto", fileDescriptor_feed_status_dd159d67991f6ccc) +} + +var fileDescriptor_feed_status_dd159d67991f6ccc = []byte{ + // 253 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xd2, 0x4f, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0x86, 0x32, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xbc, 0xd2, + 0xdc, 0x62, 0xfd, 0xb4, 0xd4, 0xd4, 0x94, 0xf8, 0xe2, 0x92, 0xc4, 0x92, 0xd2, 0x62, 0xbd, 0x82, + 0xa2, 0xfc, 0x92, 0x7c, 0x21, 0x59, 0x88, 0x2a, 0xbd, 0xc4, 0x94, 0x62, 0x3d, 0xb8, 0x06, 0xbd, + 0x32, 0x03, 0x3d, 0xb0, 0x06, 0xa5, 0x30, 0x2e, 0x3e, 0xb7, 0xd4, 0xd4, 0x94, 0x60, 0xb0, 0x16, + 0xd7, 0xbc, 0xd2, 0x5c, 0x25, 0x17, 0x2e, 0x2e, 0x84, 0x88, 0x10, 0x3f, 0x17, 0x77, 0xa8, 0x5f, + 0x70, 0x80, 0xab, 0xb3, 0xa7, 0x9b, 0xa7, 0xab, 0x8b, 0x00, 0x83, 0x10, 0x37, 0x17, 0x7b, 0xa8, + 0x9f, 0xb7, 0x9f, 0x7f, 0xb8, 0x9f, 0x00, 0x23, 0x88, 0xe3, 0xea, 0xe7, 0xe8, 0xe4, 0xe3, 0xea, + 0x22, 0xc0, 0x04, 0xe2, 0x04, 0xb9, 0xfa, 0xfa, 0x87, 0xb9, 0xba, 0x08, 0x30, 0x3b, 0x1d, 0x60, + 0xe4, 0x52, 0x4c, 0xce, 0xcf, 0xd5, 0xc3, 0x6b, 0xbb, 0x13, 0x3f, 0xc2, 0xa6, 0x00, 0x90, 0x6b, + 0x03, 0x18, 0xa3, 0x9c, 0xa0, 0x3a, 0xd2, 0xf3, 0x73, 0x12, 0xf3, 0xd2, 0xf5, 0xf2, 0x8b, 0xd2, + 0xf5, 0xd3, 0x53, 0xf3, 0xc0, 0x7e, 0x81, 0x79, 0xb8, 0x20, 0xb3, 0x18, 0x87, 0xff, 0xad, 0xc1, + 0xe4, 0x22, 0x26, 0x66, 0x77, 0x47, 0xc7, 0x55, 0x4c, 0xb2, 0xee, 0x10, 0xa3, 0x1c, 0x53, 0x8a, + 0xf5, 0x20, 0x4c, 0x10, 0x2b, 0xcc, 0x40, 0x0f, 0xe4, 0xcf, 0xe2, 0x53, 0x30, 0xf9, 0x18, 0xc7, + 0x94, 0xe2, 0x18, 0xb8, 0x7c, 0x4c, 0x98, 0x41, 0x0c, 0x58, 0x3e, 0x89, 0x0d, 0x6c, 0xa9, 0x31, + 0x20, 0x00, 0x00, 0xff, 0xff, 0x60, 0x36, 0x0a, 0x4e, 0x73, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/flight_placeholder_field.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/flight_placeholder_field.pb.go new file mode 100644 index 000000000..d8c855cd7 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/flight_placeholder_field.pb.go @@ -0,0 +1,209 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/flight_placeholder_field.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Possible values for Flight placeholder fields. +type FlightPlaceholderFieldEnum_FlightPlaceholderField int32 + +const ( + // Not specified. + FlightPlaceholderFieldEnum_UNSPECIFIED FlightPlaceholderFieldEnum_FlightPlaceholderField = 0 + // Used for return value only. Represents value unknown in this version. + FlightPlaceholderFieldEnum_UNKNOWN FlightPlaceholderFieldEnum_FlightPlaceholderField = 1 + // Data Type: STRING. Required. Destination id. Example: PAR, LON. + // For feed items that only have destination id, destination id must be a + // unique key. For feed items that have both destination id and origin id, + // then the combination must be a unique key. + FlightPlaceholderFieldEnum_DESTINATION_ID FlightPlaceholderFieldEnum_FlightPlaceholderField = 2 + // Data Type: STRING. Origin id. Example: PAR, LON. + // Optional. Combination of destination id and origin id must be unique per + // offer. + FlightPlaceholderFieldEnum_ORIGIN_ID FlightPlaceholderFieldEnum_FlightPlaceholderField = 3 + // Data Type: STRING. Required. Main headline with product name to be shown + // in dynamic ad. + FlightPlaceholderFieldEnum_FLIGHT_DESCRIPTION FlightPlaceholderFieldEnum_FlightPlaceholderField = 4 + // Data Type: STRING. Shorter names are recommended. + FlightPlaceholderFieldEnum_ORIGIN_NAME FlightPlaceholderFieldEnum_FlightPlaceholderField = 5 + // Data Type: STRING. Shorter names are recommended. + FlightPlaceholderFieldEnum_DESTINATION_NAME FlightPlaceholderFieldEnum_FlightPlaceholderField = 6 + // Data Type: STRING. Price to be shown in the ad. + // Example: "100.00 USD" + FlightPlaceholderFieldEnum_FLIGHT_PRICE FlightPlaceholderFieldEnum_FlightPlaceholderField = 7 + // Data Type: STRING. Formatted price to be shown in the ad. + // Example: "Starting at $100.00 USD", "$80 - $100" + FlightPlaceholderFieldEnum_FORMATTED_PRICE FlightPlaceholderFieldEnum_FlightPlaceholderField = 8 + // Data Type: STRING. Sale price to be shown in the ad. + // Example: "80.00 USD" + FlightPlaceholderFieldEnum_FLIGHT_SALE_PRICE FlightPlaceholderFieldEnum_FlightPlaceholderField = 9 + // Data Type: STRING. Formatted sale price to be shown in the ad. + // Example: "On sale for $80.00", "$60 - $80" + FlightPlaceholderFieldEnum_FORMATTED_SALE_PRICE FlightPlaceholderFieldEnum_FlightPlaceholderField = 10 + // Data Type: URL. Image to be displayed in the ad. + FlightPlaceholderFieldEnum_IMAGE_URL FlightPlaceholderFieldEnum_FlightPlaceholderField = 11 + // Data Type: URL_LIST. Required. Final URLs for the ad when using Upgraded + // URLs. User will be redirected to these URLs when they click on an ad, or + // when they click on a specific flight for ads that show multiple + // flights. + FlightPlaceholderFieldEnum_FINAL_URLS FlightPlaceholderFieldEnum_FlightPlaceholderField = 12 + // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded + // URLs. + FlightPlaceholderFieldEnum_FINAL_MOBILE_URLS FlightPlaceholderFieldEnum_FlightPlaceholderField = 13 + // Data Type: URL. Tracking template for the ad when using Upgraded URLs. + FlightPlaceholderFieldEnum_TRACKING_URL FlightPlaceholderFieldEnum_FlightPlaceholderField = 14 + // Data Type: STRING. Android app link. Must be formatted as: + // android-app://{package_id}/{scheme}/{host_path}. + // The components are defined as follows: + // package_id: app ID as specified in Google Play. + // scheme: the scheme to pass to the application. Can be HTTP, or a custom + // scheme. + // host_path: identifies the specific content within your application. + FlightPlaceholderFieldEnum_ANDROID_APP_LINK FlightPlaceholderFieldEnum_FlightPlaceholderField = 15 + // Data Type: STRING_LIST. List of recommended destination IDs to show + // together with this item. + FlightPlaceholderFieldEnum_SIMILAR_DESTINATION_IDS FlightPlaceholderFieldEnum_FlightPlaceholderField = 16 + // Data Type: STRING. iOS app link. + FlightPlaceholderFieldEnum_IOS_APP_LINK FlightPlaceholderFieldEnum_FlightPlaceholderField = 17 + // Data Type: INT64. iOS app store ID. + FlightPlaceholderFieldEnum_IOS_APP_STORE_ID FlightPlaceholderFieldEnum_FlightPlaceholderField = 18 +) + +var FlightPlaceholderFieldEnum_FlightPlaceholderField_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "DESTINATION_ID", + 3: "ORIGIN_ID", + 4: "FLIGHT_DESCRIPTION", + 5: "ORIGIN_NAME", + 6: "DESTINATION_NAME", + 7: "FLIGHT_PRICE", + 8: "FORMATTED_PRICE", + 9: "FLIGHT_SALE_PRICE", + 10: "FORMATTED_SALE_PRICE", + 11: "IMAGE_URL", + 12: "FINAL_URLS", + 13: "FINAL_MOBILE_URLS", + 14: "TRACKING_URL", + 15: "ANDROID_APP_LINK", + 16: "SIMILAR_DESTINATION_IDS", + 17: "IOS_APP_LINK", + 18: "IOS_APP_STORE_ID", +} +var FlightPlaceholderFieldEnum_FlightPlaceholderField_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "DESTINATION_ID": 2, + "ORIGIN_ID": 3, + "FLIGHT_DESCRIPTION": 4, + "ORIGIN_NAME": 5, + "DESTINATION_NAME": 6, + "FLIGHT_PRICE": 7, + "FORMATTED_PRICE": 8, + "FLIGHT_SALE_PRICE": 9, + "FORMATTED_SALE_PRICE": 10, + "IMAGE_URL": 11, + "FINAL_URLS": 12, + "FINAL_MOBILE_URLS": 13, + "TRACKING_URL": 14, + "ANDROID_APP_LINK": 15, + "SIMILAR_DESTINATION_IDS": 16, + "IOS_APP_LINK": 17, + "IOS_APP_STORE_ID": 18, +} + +func (x FlightPlaceholderFieldEnum_FlightPlaceholderField) String() string { + return proto.EnumName(FlightPlaceholderFieldEnum_FlightPlaceholderField_name, int32(x)) +} +func (FlightPlaceholderFieldEnum_FlightPlaceholderField) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_flight_placeholder_field_b2b97ba1cb854d8c, []int{0, 0} +} + +// Values for Flight placeholder fields. +// For more information about dynamic remarketing feeds, see +// https://support.google.com/google-ads/answer/6053288. +type FlightPlaceholderFieldEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FlightPlaceholderFieldEnum) Reset() { *m = FlightPlaceholderFieldEnum{} } +func (m *FlightPlaceholderFieldEnum) String() string { return proto.CompactTextString(m) } +func (*FlightPlaceholderFieldEnum) ProtoMessage() {} +func (*FlightPlaceholderFieldEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_flight_placeholder_field_b2b97ba1cb854d8c, []int{0} +} +func (m *FlightPlaceholderFieldEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FlightPlaceholderFieldEnum.Unmarshal(m, b) +} +func (m *FlightPlaceholderFieldEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FlightPlaceholderFieldEnum.Marshal(b, m, deterministic) +} +func (dst *FlightPlaceholderFieldEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_FlightPlaceholderFieldEnum.Merge(dst, src) +} +func (m *FlightPlaceholderFieldEnum) XXX_Size() int { + return xxx_messageInfo_FlightPlaceholderFieldEnum.Size(m) +} +func (m *FlightPlaceholderFieldEnum) XXX_DiscardUnknown() { + xxx_messageInfo_FlightPlaceholderFieldEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_FlightPlaceholderFieldEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*FlightPlaceholderFieldEnum)(nil), "google.ads.googleads.v0.enums.FlightPlaceholderFieldEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.FlightPlaceholderFieldEnum_FlightPlaceholderField", FlightPlaceholderFieldEnum_FlightPlaceholderField_name, FlightPlaceholderFieldEnum_FlightPlaceholderField_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/flight_placeholder_field.proto", fileDescriptor_flight_placeholder_field_b2b97ba1cb854d8c) +} + +var fileDescriptor_flight_placeholder_field_b2b97ba1cb854d8c = []byte{ + // 459 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x52, 0xcd, 0x6e, 0xd3, 0x40, + 0x10, 0x26, 0x09, 0xb4, 0x74, 0xd2, 0x26, 0xdb, 0xa5, 0x14, 0x04, 0xf4, 0x40, 0x1f, 0xc0, 0x8e, + 0xc4, 0x11, 0x2e, 0x9b, 0x78, 0x6d, 0x46, 0xb1, 0xd7, 0xd6, 0xae, 0x53, 0x24, 0x14, 0xc9, 0x0a, + 0xb5, 0xeb, 0x46, 0x72, 0xe2, 0x28, 0x6e, 0xfb, 0x22, 0xbc, 0x01, 0x47, 0x8e, 0x3c, 0x06, 0x12, + 0xef, 0x84, 0x76, 0xed, 0x34, 0x01, 0x41, 0x2f, 0xd6, 0xcc, 0x7c, 0x3f, 0x1e, 0xed, 0x7c, 0xf0, + 0x21, 0x2f, 0xcb, 0xbc, 0xc8, 0xec, 0x59, 0x5a, 0xd9, 0x75, 0xa9, 0xab, 0xbb, 0x81, 0x9d, 0x2d, + 0x6f, 0x17, 0x95, 0x7d, 0x55, 0xcc, 0xf3, 0xeb, 0x9b, 0x64, 0x55, 0xcc, 0x2e, 0xb3, 0xeb, 0xb2, + 0x48, 0xb3, 0x75, 0x72, 0x35, 0xcf, 0x8a, 0xd4, 0x5a, 0xad, 0xcb, 0x9b, 0x92, 0x9e, 0xd5, 0x12, + 0x6b, 0x96, 0x56, 0xd6, 0xbd, 0xda, 0xba, 0x1b, 0x58, 0x46, 0x7d, 0xfe, 0xa3, 0x03, 0xaf, 0x5c, + 0xe3, 0x10, 0x6d, 0x0d, 0x5c, 0xad, 0xe7, 0xcb, 0xdb, 0xc5, 0xf9, 0xd7, 0x0e, 0x9c, 0xfe, 0x1b, + 0xa6, 0x7d, 0xe8, 0x4e, 0x84, 0x8a, 0xf8, 0x08, 0x5d, 0xe4, 0x0e, 0x79, 0x44, 0xbb, 0xb0, 0x3f, + 0x11, 0x63, 0x11, 0x7e, 0x12, 0xa4, 0x45, 0x29, 0xf4, 0x1c, 0xae, 0x62, 0x14, 0x2c, 0xc6, 0x50, + 0x24, 0xe8, 0x90, 0x36, 0x3d, 0x82, 0x83, 0x50, 0xa2, 0x87, 0xa6, 0xed, 0xd0, 0x53, 0xa0, 0xae, + 0x8f, 0xde, 0xc7, 0x38, 0x71, 0xb8, 0x1a, 0x49, 0x8c, 0x34, 0x93, 0x3c, 0xd6, 0xc6, 0x0d, 0x4d, + 0xb0, 0x80, 0x93, 0x27, 0xf4, 0x04, 0xc8, 0xae, 0x97, 0x99, 0xee, 0x51, 0x02, 0x87, 0x8d, 0x3c, + 0x92, 0x38, 0xe2, 0x64, 0x9f, 0x3e, 0x83, 0xbe, 0x1b, 0xca, 0x80, 0xc5, 0x31, 0x77, 0x9a, 0xe1, + 0x53, 0xfa, 0x1c, 0x8e, 0x1b, 0x9a, 0x62, 0x3e, 0x6f, 0xc6, 0x07, 0xf4, 0x25, 0x9c, 0x6c, 0xb9, + 0x3b, 0x08, 0xe8, 0x2d, 0x31, 0x60, 0x1e, 0x4f, 0x26, 0xd2, 0x27, 0x5d, 0xda, 0x03, 0x70, 0x51, + 0x30, 0x5f, 0xb7, 0x8a, 0x1c, 0x1a, 0x3f, 0xd3, 0x07, 0xe1, 0x10, 0x7d, 0x5e, 0x8f, 0x8f, 0xf4, + 0x36, 0xb1, 0x64, 0xa3, 0x31, 0x0a, 0xcf, 0x08, 0x7b, 0x7a, 0x6b, 0x26, 0x1c, 0x19, 0xa2, 0x93, + 0xb0, 0x28, 0x4a, 0x7c, 0x14, 0x63, 0xd2, 0xa7, 0xaf, 0xe1, 0x85, 0xc2, 0x00, 0x7d, 0x26, 0x93, + 0x3f, 0xdf, 0x47, 0x11, 0xa2, 0x4d, 0x30, 0x54, 0x5b, 0xfa, 0xb1, 0x36, 0xd9, 0x4c, 0x54, 0x1c, + 0x4a, 0xae, 0x5f, 0x8e, 0x0e, 0x7f, 0xb5, 0xe0, 0xed, 0x65, 0xb9, 0xb0, 0x1e, 0x3c, 0xed, 0xf0, + 0x4d, 0x7d, 0xb8, 0xea, 0xef, 0xcb, 0x45, 0x3a, 0x17, 0x51, 0xeb, 0xf3, 0xb0, 0x91, 0xe7, 0x65, + 0x31, 0x5b, 0xe6, 0x56, 0xb9, 0xce, 0xed, 0x3c, 0x5b, 0x9a, 0xd4, 0x6c, 0x72, 0xb6, 0x9a, 0x57, + 0xff, 0x89, 0xdd, 0x7b, 0xf3, 0xfd, 0xd6, 0xee, 0x78, 0x8c, 0x7d, 0x6f, 0x9f, 0x79, 0xb5, 0x15, + 0x4b, 0x2b, 0xab, 0x2e, 0x75, 0x75, 0x31, 0xb0, 0x74, 0x88, 0xaa, 0x9f, 0x1b, 0x7c, 0xca, 0xd2, + 0x6a, 0x7a, 0x8f, 0x4f, 0x2f, 0x06, 0x53, 0x83, 0x7f, 0xd9, 0x33, 0x3f, 0x7d, 0xf7, 0x3b, 0x00, + 0x00, 0xff, 0xff, 0xad, 0x22, 0x49, 0x9f, 0xea, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/frequency_cap_event_type.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/frequency_cap_event_type.pb.go new file mode 100644 index 000000000..569600efa --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/frequency_cap_event_type.pb.go @@ -0,0 +1,115 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/frequency_cap_event_type.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// The type of event that the cap applies to (e.g. impression). +type FrequencyCapEventTypeEnum_FrequencyCapEventType int32 + +const ( + // Not specified. + FrequencyCapEventTypeEnum_UNSPECIFIED FrequencyCapEventTypeEnum_FrequencyCapEventType = 0 + // Used for return value only. Represents value unknown in this version. + FrequencyCapEventTypeEnum_UNKNOWN FrequencyCapEventTypeEnum_FrequencyCapEventType = 1 + // The cap applies on ad impressions. + FrequencyCapEventTypeEnum_IMPRESSION FrequencyCapEventTypeEnum_FrequencyCapEventType = 2 + // The cap applies on video ad views. + FrequencyCapEventTypeEnum_VIDEO_VIEW FrequencyCapEventTypeEnum_FrequencyCapEventType = 3 +) + +var FrequencyCapEventTypeEnum_FrequencyCapEventType_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "IMPRESSION", + 3: "VIDEO_VIEW", +} +var FrequencyCapEventTypeEnum_FrequencyCapEventType_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "IMPRESSION": 2, + "VIDEO_VIEW": 3, +} + +func (x FrequencyCapEventTypeEnum_FrequencyCapEventType) String() string { + return proto.EnumName(FrequencyCapEventTypeEnum_FrequencyCapEventType_name, int32(x)) +} +func (FrequencyCapEventTypeEnum_FrequencyCapEventType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_frequency_cap_event_type_c321322f57b41e88, []int{0, 0} +} + +// Container for enum describing the type of event that the cap applies to. +type FrequencyCapEventTypeEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FrequencyCapEventTypeEnum) Reset() { *m = FrequencyCapEventTypeEnum{} } +func (m *FrequencyCapEventTypeEnum) String() string { return proto.CompactTextString(m) } +func (*FrequencyCapEventTypeEnum) ProtoMessage() {} +func (*FrequencyCapEventTypeEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_frequency_cap_event_type_c321322f57b41e88, []int{0} +} +func (m *FrequencyCapEventTypeEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FrequencyCapEventTypeEnum.Unmarshal(m, b) +} +func (m *FrequencyCapEventTypeEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FrequencyCapEventTypeEnum.Marshal(b, m, deterministic) +} +func (dst *FrequencyCapEventTypeEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_FrequencyCapEventTypeEnum.Merge(dst, src) +} +func (m *FrequencyCapEventTypeEnum) XXX_Size() int { + return xxx_messageInfo_FrequencyCapEventTypeEnum.Size(m) +} +func (m *FrequencyCapEventTypeEnum) XXX_DiscardUnknown() { + xxx_messageInfo_FrequencyCapEventTypeEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_FrequencyCapEventTypeEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*FrequencyCapEventTypeEnum)(nil), "google.ads.googleads.v0.enums.FrequencyCapEventTypeEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.FrequencyCapEventTypeEnum_FrequencyCapEventType", FrequencyCapEventTypeEnum_FrequencyCapEventType_name, FrequencyCapEventTypeEnum_FrequencyCapEventType_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/frequency_cap_event_type.proto", fileDescriptor_frequency_cap_event_type_c321322f57b41e88) +} + +var fileDescriptor_frequency_cap_event_type_c321322f57b41e88 = []byte{ + // 283 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x49, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xbc, + 0xd2, 0xdc, 0x62, 0xfd, 0xb4, 0xa2, 0xd4, 0xc2, 0xd2, 0xd4, 0xbc, 0xe4, 0xca, 0xf8, 0xe4, 0xc4, + 0x82, 0xf8, 0xd4, 0xb2, 0xd4, 0xbc, 0x92, 0xf8, 0x92, 0xca, 0x82, 0x54, 0xbd, 0x82, 0xa2, 0xfc, + 0x92, 0x7c, 0x21, 0x59, 0x88, 0x16, 0xbd, 0xc4, 0x94, 0x62, 0x3d, 0xb8, 0x6e, 0xbd, 0x32, 0x03, + 0x3d, 0xb0, 0x6e, 0xa5, 0x22, 0x2e, 0x49, 0x37, 0x98, 0x01, 0xce, 0x89, 0x05, 0xae, 0x20, 0xed, + 0x21, 0x95, 0x05, 0xa9, 0xae, 0x79, 0xa5, 0xb9, 0x4a, 0xa1, 0x5c, 0xa2, 0x58, 0x25, 0x85, 0xf8, + 0xb9, 0xb8, 0x43, 0xfd, 0x82, 0x03, 0x5c, 0x9d, 0x3d, 0xdd, 0x3c, 0x5d, 0x5d, 0x04, 0x18, 0x84, + 0xb8, 0xb9, 0xd8, 0x43, 0xfd, 0xbc, 0xfd, 0xfc, 0xc3, 0xfd, 0x04, 0x18, 0x85, 0xf8, 0xb8, 0xb8, + 0x3c, 0x7d, 0x03, 0x82, 0x5c, 0x83, 0x83, 0x3d, 0xfd, 0xfd, 0x04, 0x98, 0x40, 0xfc, 0x30, 0x4f, + 0x17, 0x57, 0xff, 0xf8, 0x30, 0x4f, 0xd7, 0x70, 0x01, 0x66, 0xa7, 0xd3, 0x8c, 0x5c, 0x8a, 0xc9, + 0xf9, 0xb9, 0x7a, 0x78, 0x5d, 0xe6, 0x24, 0x85, 0xd5, 0xea, 0x00, 0x90, 0xa7, 0x02, 0x18, 0xa3, + 0x9c, 0xa0, 0x9a, 0xd3, 0xf3, 0x73, 0x12, 0xf3, 0xd2, 0xf5, 0xf2, 0x8b, 0xd2, 0xf5, 0xd3, 0x53, + 0xf3, 0xc0, 0x5e, 0x86, 0x05, 0x52, 0x41, 0x66, 0x31, 0x8e, 0x30, 0xb3, 0x06, 0x93, 0x8b, 0x98, + 0x98, 0xdd, 0x1d, 0x1d, 0x57, 0x31, 0xc9, 0xba, 0x43, 0x8c, 0x72, 0x4c, 0x29, 0xd6, 0x83, 0x30, + 0x41, 0xac, 0x30, 0x03, 0x3d, 0x50, 0x18, 0x14, 0x9f, 0x82, 0xc9, 0xc7, 0x38, 0xa6, 0x14, 0xc7, + 0xc0, 0xe5, 0x63, 0xc2, 0x0c, 0x62, 0xc0, 0xf2, 0x49, 0x6c, 0x60, 0x4b, 0x8d, 0x01, 0x01, 0x00, + 0x00, 0xff, 0xff, 0x2a, 0x2b, 0x21, 0xfe, 0xa7, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/frequency_cap_level.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/frequency_cap_level.pb.go new file mode 100644 index 000000000..f45fbdb83 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/frequency_cap_level.pb.go @@ -0,0 +1,120 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/frequency_cap_level.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// The level on which the cap is to be applied (e.g ad group ad, ad group). +// Cap is applied to all the resources of this level. +type FrequencyCapLevelEnum_FrequencyCapLevel int32 + +const ( + // Not specified. + FrequencyCapLevelEnum_UNSPECIFIED FrequencyCapLevelEnum_FrequencyCapLevel = 0 + // Used for return value only. Represents value unknown in this version. + FrequencyCapLevelEnum_UNKNOWN FrequencyCapLevelEnum_FrequencyCapLevel = 1 + // The cap is applied at the ad group ad level. + FrequencyCapLevelEnum_AD_GROUP_AD FrequencyCapLevelEnum_FrequencyCapLevel = 2 + // The cap is applied at the ad group level. + FrequencyCapLevelEnum_AD_GROUP FrequencyCapLevelEnum_FrequencyCapLevel = 3 + // The cap is applied at the campaign level. + FrequencyCapLevelEnum_CAMPAIGN FrequencyCapLevelEnum_FrequencyCapLevel = 4 +) + +var FrequencyCapLevelEnum_FrequencyCapLevel_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "AD_GROUP_AD", + 3: "AD_GROUP", + 4: "CAMPAIGN", +} +var FrequencyCapLevelEnum_FrequencyCapLevel_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "AD_GROUP_AD": 2, + "AD_GROUP": 3, + "CAMPAIGN": 4, +} + +func (x FrequencyCapLevelEnum_FrequencyCapLevel) String() string { + return proto.EnumName(FrequencyCapLevelEnum_FrequencyCapLevel_name, int32(x)) +} +func (FrequencyCapLevelEnum_FrequencyCapLevel) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_frequency_cap_level_35a61c6952c59b53, []int{0, 0} +} + +// Container for enum describing the level on which the cap is to be applied. +type FrequencyCapLevelEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FrequencyCapLevelEnum) Reset() { *m = FrequencyCapLevelEnum{} } +func (m *FrequencyCapLevelEnum) String() string { return proto.CompactTextString(m) } +func (*FrequencyCapLevelEnum) ProtoMessage() {} +func (*FrequencyCapLevelEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_frequency_cap_level_35a61c6952c59b53, []int{0} +} +func (m *FrequencyCapLevelEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FrequencyCapLevelEnum.Unmarshal(m, b) +} +func (m *FrequencyCapLevelEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FrequencyCapLevelEnum.Marshal(b, m, deterministic) +} +func (dst *FrequencyCapLevelEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_FrequencyCapLevelEnum.Merge(dst, src) +} +func (m *FrequencyCapLevelEnum) XXX_Size() int { + return xxx_messageInfo_FrequencyCapLevelEnum.Size(m) +} +func (m *FrequencyCapLevelEnum) XXX_DiscardUnknown() { + xxx_messageInfo_FrequencyCapLevelEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_FrequencyCapLevelEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*FrequencyCapLevelEnum)(nil), "google.ads.googleads.v0.enums.FrequencyCapLevelEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.FrequencyCapLevelEnum_FrequencyCapLevel", FrequencyCapLevelEnum_FrequencyCapLevel_name, FrequencyCapLevelEnum_FrequencyCapLevel_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/frequency_cap_level.proto", fileDescriptor_frequency_cap_level_35a61c6952c59b53) +} + +var fileDescriptor_frequency_cap_level_35a61c6952c59b53 = []byte{ + // 278 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x32, 0x4f, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xbc, + 0xd2, 0xdc, 0x62, 0xfd, 0xb4, 0xa2, 0xd4, 0xc2, 0xd2, 0xd4, 0xbc, 0xe4, 0xca, 0xf8, 0xe4, 0xc4, + 0x82, 0xf8, 0x9c, 0xd4, 0xb2, 0xd4, 0x1c, 0xbd, 0x82, 0xa2, 0xfc, 0x92, 0x7c, 0x21, 0x59, 0x88, + 0x6a, 0xbd, 0xc4, 0x94, 0x62, 0x3d, 0xb8, 0x46, 0xbd, 0x32, 0x03, 0x3d, 0xb0, 0x46, 0xa5, 0x72, + 0x2e, 0x51, 0x37, 0x98, 0x5e, 0xe7, 0xc4, 0x02, 0x1f, 0x90, 0x4e, 0xd7, 0xbc, 0xd2, 0x5c, 0xa5, + 0x38, 0x2e, 0x41, 0x0c, 0x09, 0x21, 0x7e, 0x2e, 0xee, 0x50, 0xbf, 0xe0, 0x00, 0x57, 0x67, 0x4f, + 0x37, 0x4f, 0x57, 0x17, 0x01, 0x06, 0x21, 0x6e, 0x2e, 0xf6, 0x50, 0x3f, 0x6f, 0x3f, 0xff, 0x70, + 0x3f, 0x01, 0x46, 0x90, 0xac, 0xa3, 0x4b, 0xbc, 0x7b, 0x90, 0x7f, 0x68, 0x40, 0xbc, 0xa3, 0x8b, + 0x00, 0x93, 0x10, 0x0f, 0x17, 0x07, 0x4c, 0x40, 0x80, 0x19, 0xc4, 0x73, 0x76, 0xf4, 0x0d, 0x70, + 0xf4, 0x74, 0xf7, 0x13, 0x60, 0x71, 0x3a, 0xce, 0xc8, 0xa5, 0x98, 0x9c, 0x9f, 0xab, 0x87, 0xd7, + 0x79, 0x4e, 0x62, 0x18, 0x6e, 0x08, 0x00, 0xf9, 0x2a, 0x80, 0x31, 0xca, 0x09, 0xaa, 0x31, 0x3d, + 0x3f, 0x27, 0x31, 0x2f, 0x5d, 0x2f, 0xbf, 0x28, 0x5d, 0x3f, 0x3d, 0x35, 0x0f, 0xec, 0x67, 0x58, + 0x00, 0x15, 0x64, 0x16, 0xe3, 0x08, 0x2f, 0x6b, 0x30, 0xb9, 0x88, 0x89, 0xd9, 0xdd, 0xd1, 0x71, + 0x15, 0x93, 0xac, 0x3b, 0xc4, 0x28, 0xc7, 0x94, 0x62, 0x3d, 0x08, 0x13, 0xc4, 0x0a, 0x33, 0xd0, + 0x03, 0x05, 0x44, 0xf1, 0x29, 0x98, 0x7c, 0x8c, 0x63, 0x4a, 0x71, 0x0c, 0x5c, 0x3e, 0x26, 0xcc, + 0x20, 0x06, 0x2c, 0x9f, 0xc4, 0x06, 0xb6, 0xd4, 0x18, 0x10, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xd4, + 0x7b, 0x7f, 0xa3, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/frequency_cap_time_unit.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/frequency_cap_time_unit.pb.go new file mode 100644 index 000000000..cbe8c3eba --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/frequency_cap_time_unit.pb.go @@ -0,0 +1,119 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/frequency_cap_time_unit.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Unit of time the cap is defined at (e.g. day, week). +type FrequencyCapTimeUnitEnum_FrequencyCapTimeUnit int32 + +const ( + // Not specified. + FrequencyCapTimeUnitEnum_UNSPECIFIED FrequencyCapTimeUnitEnum_FrequencyCapTimeUnit = 0 + // Used for return value only. Represents value unknown in this version. + FrequencyCapTimeUnitEnum_UNKNOWN FrequencyCapTimeUnitEnum_FrequencyCapTimeUnit = 1 + // The cap would define limit per one day. + FrequencyCapTimeUnitEnum_DAY FrequencyCapTimeUnitEnum_FrequencyCapTimeUnit = 2 + // The cap would define limit per one week. + FrequencyCapTimeUnitEnum_WEEK FrequencyCapTimeUnitEnum_FrequencyCapTimeUnit = 3 + // The cap would define limit per one month. + FrequencyCapTimeUnitEnum_MONTH FrequencyCapTimeUnitEnum_FrequencyCapTimeUnit = 4 +) + +var FrequencyCapTimeUnitEnum_FrequencyCapTimeUnit_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "DAY", + 3: "WEEK", + 4: "MONTH", +} +var FrequencyCapTimeUnitEnum_FrequencyCapTimeUnit_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "DAY": 2, + "WEEK": 3, + "MONTH": 4, +} + +func (x FrequencyCapTimeUnitEnum_FrequencyCapTimeUnit) String() string { + return proto.EnumName(FrequencyCapTimeUnitEnum_FrequencyCapTimeUnit_name, int32(x)) +} +func (FrequencyCapTimeUnitEnum_FrequencyCapTimeUnit) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_frequency_cap_time_unit_53c48a163d408dee, []int{0, 0} +} + +// Container for enum describing the unit of time the cap is defined at. +type FrequencyCapTimeUnitEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FrequencyCapTimeUnitEnum) Reset() { *m = FrequencyCapTimeUnitEnum{} } +func (m *FrequencyCapTimeUnitEnum) String() string { return proto.CompactTextString(m) } +func (*FrequencyCapTimeUnitEnum) ProtoMessage() {} +func (*FrequencyCapTimeUnitEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_frequency_cap_time_unit_53c48a163d408dee, []int{0} +} +func (m *FrequencyCapTimeUnitEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FrequencyCapTimeUnitEnum.Unmarshal(m, b) +} +func (m *FrequencyCapTimeUnitEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FrequencyCapTimeUnitEnum.Marshal(b, m, deterministic) +} +func (dst *FrequencyCapTimeUnitEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_FrequencyCapTimeUnitEnum.Merge(dst, src) +} +func (m *FrequencyCapTimeUnitEnum) XXX_Size() int { + return xxx_messageInfo_FrequencyCapTimeUnitEnum.Size(m) +} +func (m *FrequencyCapTimeUnitEnum) XXX_DiscardUnknown() { + xxx_messageInfo_FrequencyCapTimeUnitEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_FrequencyCapTimeUnitEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*FrequencyCapTimeUnitEnum)(nil), "google.ads.googleads.v0.enums.FrequencyCapTimeUnitEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.FrequencyCapTimeUnitEnum_FrequencyCapTimeUnit", FrequencyCapTimeUnitEnum_FrequencyCapTimeUnit_name, FrequencyCapTimeUnitEnum_FrequencyCapTimeUnit_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/frequency_cap_time_unit.proto", fileDescriptor_frequency_cap_time_unit_53c48a163d408dee) +} + +var fileDescriptor_frequency_cap_time_unit_53c48a163d408dee = []byte{ + // 283 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x4e, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xbc, + 0xd2, 0xdc, 0x62, 0xfd, 0xb4, 0xa2, 0xd4, 0xc2, 0xd2, 0xd4, 0xbc, 0xe4, 0xca, 0xf8, 0xe4, 0xc4, + 0x82, 0xf8, 0x92, 0xcc, 0xdc, 0xd4, 0xf8, 0xd2, 0xbc, 0xcc, 0x12, 0xbd, 0x82, 0xa2, 0xfc, 0x92, + 0x7c, 0x21, 0x59, 0x88, 0x0e, 0xbd, 0xc4, 0x94, 0x62, 0x3d, 0xb8, 0x66, 0xbd, 0x32, 0x03, 0x3d, + 0xb0, 0x66, 0xa5, 0x3c, 0x2e, 0x09, 0x37, 0x98, 0x7e, 0xe7, 0xc4, 0x82, 0x90, 0xcc, 0xdc, 0xd4, + 0xd0, 0xbc, 0xcc, 0x12, 0xd7, 0xbc, 0xd2, 0x5c, 0xa5, 0x20, 0x2e, 0x11, 0x6c, 0x72, 0x42, 0xfc, + 0x5c, 0xdc, 0xa1, 0x7e, 0xc1, 0x01, 0xae, 0xce, 0x9e, 0x6e, 0x9e, 0xae, 0x2e, 0x02, 0x0c, 0x42, + 0xdc, 0x5c, 0xec, 0xa1, 0x7e, 0xde, 0x7e, 0xfe, 0xe1, 0x7e, 0x02, 0x8c, 0x42, 0xec, 0x5c, 0xcc, + 0x2e, 0x8e, 0x91, 0x02, 0x4c, 0x42, 0x1c, 0x5c, 0x2c, 0xe1, 0xae, 0xae, 0xde, 0x02, 0xcc, 0x42, + 0x9c, 0x5c, 0xac, 0xbe, 0xfe, 0x7e, 0x21, 0x1e, 0x02, 0x2c, 0x4e, 0xa7, 0x18, 0xb9, 0x14, 0x93, + 0xf3, 0x73, 0xf5, 0xf0, 0xba, 0xca, 0x49, 0x12, 0x9b, 0xbd, 0x01, 0x20, 0xff, 0x04, 0x30, 0x46, + 0x39, 0x41, 0xf5, 0xa6, 0xe7, 0xe7, 0x24, 0xe6, 0xa5, 0xeb, 0xe5, 0x17, 0xa5, 0xeb, 0xa7, 0xa7, + 0xe6, 0x81, 0x7d, 0x0b, 0x0b, 0x9e, 0x82, 0xcc, 0x62, 0x1c, 0xa1, 0x65, 0x0d, 0x26, 0x17, 0x31, + 0x31, 0xbb, 0x3b, 0x3a, 0xae, 0x62, 0x92, 0x75, 0x87, 0x18, 0xe5, 0x98, 0x52, 0xac, 0x07, 0x61, + 0x82, 0x58, 0x61, 0x06, 0x7a, 0x20, 0xff, 0x17, 0x9f, 0x82, 0xc9, 0xc7, 0x38, 0xa6, 0x14, 0xc7, + 0xc0, 0xe5, 0x63, 0xc2, 0x0c, 0x62, 0xc0, 0xf2, 0x49, 0x6c, 0x60, 0x4b, 0x8d, 0x01, 0x01, 0x00, + 0x00, 0xff, 0xff, 0x08, 0x5e, 0x5d, 0x49, 0xa1, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/gender_type.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/gender_type.pb.go new file mode 100644 index 000000000..25f0720a4 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/gender_type.pb.go @@ -0,0 +1,118 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/gender_type.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// The type of demographic genders (e.g. female). +type GenderTypeEnum_GenderType int32 + +const ( + // Not specified. + GenderTypeEnum_UNSPECIFIED GenderTypeEnum_GenderType = 0 + // Used for return value only. Represents value unknown in this version. + GenderTypeEnum_UNKNOWN GenderTypeEnum_GenderType = 1 + // Male. + GenderTypeEnum_MALE GenderTypeEnum_GenderType = 10 + // Female. + GenderTypeEnum_FEMALE GenderTypeEnum_GenderType = 11 + // Undetermined gender. + GenderTypeEnum_UNDETERMINED GenderTypeEnum_GenderType = 20 +) + +var GenderTypeEnum_GenderType_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 10: "MALE", + 11: "FEMALE", + 20: "UNDETERMINED", +} +var GenderTypeEnum_GenderType_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "MALE": 10, + "FEMALE": 11, + "UNDETERMINED": 20, +} + +func (x GenderTypeEnum_GenderType) String() string { + return proto.EnumName(GenderTypeEnum_GenderType_name, int32(x)) +} +func (GenderTypeEnum_GenderType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_gender_type_224225f2f930dba5, []int{0, 0} +} + +// Container for enum describing the type of demographic genders. +type GenderTypeEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GenderTypeEnum) Reset() { *m = GenderTypeEnum{} } +func (m *GenderTypeEnum) String() string { return proto.CompactTextString(m) } +func (*GenderTypeEnum) ProtoMessage() {} +func (*GenderTypeEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_gender_type_224225f2f930dba5, []int{0} +} +func (m *GenderTypeEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GenderTypeEnum.Unmarshal(m, b) +} +func (m *GenderTypeEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GenderTypeEnum.Marshal(b, m, deterministic) +} +func (dst *GenderTypeEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_GenderTypeEnum.Merge(dst, src) +} +func (m *GenderTypeEnum) XXX_Size() int { + return xxx_messageInfo_GenderTypeEnum.Size(m) +} +func (m *GenderTypeEnum) XXX_DiscardUnknown() { + xxx_messageInfo_GenderTypeEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_GenderTypeEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*GenderTypeEnum)(nil), "google.ads.googleads.v0.enums.GenderTypeEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.GenderTypeEnum_GenderType", GenderTypeEnum_GenderType_name, GenderTypeEnum_GenderType_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/gender_type.proto", fileDescriptor_gender_type_224225f2f930dba5) +} + +var fileDescriptor_gender_type_224225f2f930dba5 = []byte{ + // 267 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xd2, 0x4f, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0x86, 0x32, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xbc, 0xd2, + 0xdc, 0x62, 0xfd, 0xf4, 0xd4, 0xbc, 0x94, 0xd4, 0xa2, 0xf8, 0x92, 0xca, 0x82, 0x54, 0xbd, 0x82, + 0xa2, 0xfc, 0x92, 0x7c, 0x21, 0x59, 0x88, 0x2a, 0xbd, 0xc4, 0x94, 0x62, 0x3d, 0xb8, 0x06, 0xbd, + 0x32, 0x03, 0x3d, 0xb0, 0x06, 0xa5, 0x14, 0x2e, 0x3e, 0x77, 0xb0, 0x9e, 0x90, 0xca, 0x82, 0x54, + 0xd7, 0xbc, 0xd2, 0x5c, 0xa5, 0x20, 0x2e, 0x2e, 0x84, 0x88, 0x10, 0x3f, 0x17, 0x77, 0xa8, 0x5f, + 0x70, 0x80, 0xab, 0xb3, 0xa7, 0x9b, 0xa7, 0xab, 0x8b, 0x00, 0x83, 0x10, 0x37, 0x17, 0x7b, 0xa8, + 0x9f, 0xb7, 0x9f, 0x7f, 0xb8, 0x9f, 0x00, 0xa3, 0x10, 0x07, 0x17, 0x8b, 0xaf, 0xa3, 0x8f, 0xab, + 0x00, 0x97, 0x10, 0x17, 0x17, 0x9b, 0x9b, 0x2b, 0x98, 0xcd, 0x2d, 0x24, 0xc0, 0xc5, 0x13, 0xea, + 0xe7, 0xe2, 0x1a, 0xe2, 0x1a, 0xe4, 0xeb, 0xe9, 0xe7, 0xea, 0x22, 0x20, 0xe2, 0x74, 0x80, 0x91, + 0x4b, 0x31, 0x39, 0x3f, 0x57, 0x0f, 0xaf, 0x5b, 0x9c, 0xf8, 0x11, 0xf6, 0x06, 0x80, 0xdc, 0x1e, + 0xc0, 0x18, 0xe5, 0x04, 0xd5, 0x91, 0x9e, 0x9f, 0x93, 0x98, 0x97, 0xae, 0x97, 0x5f, 0x94, 0x0e, + 0xf2, 0x22, 0xd8, 0x67, 0x30, 0xef, 0x17, 0x64, 0x16, 0xe3, 0x08, 0x0d, 0x6b, 0x30, 0xb9, 0x88, + 0x89, 0xd9, 0xdd, 0xd1, 0x71, 0x15, 0x93, 0xac, 0x3b, 0xc4, 0x28, 0xc7, 0x94, 0x62, 0x3d, 0x08, + 0x13, 0xc4, 0x0a, 0x33, 0xd0, 0x03, 0xf9, 0xba, 0xf8, 0x14, 0x4c, 0x3e, 0xc6, 0x31, 0xa5, 0x38, + 0x06, 0x2e, 0x1f, 0x13, 0x66, 0x10, 0x03, 0x96, 0x4f, 0x62, 0x03, 0x5b, 0x6a, 0x0c, 0x08, 0x00, + 0x00, 0xff, 0xff, 0xc3, 0x0d, 0x58, 0x77, 0x81, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/geo_target_constant_status.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/geo_target_constant_status.pb.go new file mode 100644 index 000000000..5d79f3b1d --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/geo_target_constant_status.pb.go @@ -0,0 +1,117 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/geo_target_constant_status.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// The possible statuses of a geo target constant. +type GeoTargetConstantStatusEnum_GeoTargetConstantStatus int32 + +const ( + // No value has been specified. + GeoTargetConstantStatusEnum_UNSPECIFIED GeoTargetConstantStatusEnum_GeoTargetConstantStatus = 0 + // The received value is not known in this version. + // + // This is a response-only value. + GeoTargetConstantStatusEnum_UNKNOWN GeoTargetConstantStatusEnum_GeoTargetConstantStatus = 1 + // The geo target constant is valid. + GeoTargetConstantStatusEnum_ENABLED GeoTargetConstantStatusEnum_GeoTargetConstantStatus = 2 + // The geo target constant is obsolete and will be removed. + GeoTargetConstantStatusEnum_REMOVAL_PLANNED GeoTargetConstantStatusEnum_GeoTargetConstantStatus = 3 +) + +var GeoTargetConstantStatusEnum_GeoTargetConstantStatus_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "ENABLED", + 3: "REMOVAL_PLANNED", +} +var GeoTargetConstantStatusEnum_GeoTargetConstantStatus_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "ENABLED": 2, + "REMOVAL_PLANNED": 3, +} + +func (x GeoTargetConstantStatusEnum_GeoTargetConstantStatus) String() string { + return proto.EnumName(GeoTargetConstantStatusEnum_GeoTargetConstantStatus_name, int32(x)) +} +func (GeoTargetConstantStatusEnum_GeoTargetConstantStatus) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_geo_target_constant_status_01172c2684dfd41a, []int{0, 0} +} + +// Container for describing the status of a geo target constant. +type GeoTargetConstantStatusEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GeoTargetConstantStatusEnum) Reset() { *m = GeoTargetConstantStatusEnum{} } +func (m *GeoTargetConstantStatusEnum) String() string { return proto.CompactTextString(m) } +func (*GeoTargetConstantStatusEnum) ProtoMessage() {} +func (*GeoTargetConstantStatusEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_geo_target_constant_status_01172c2684dfd41a, []int{0} +} +func (m *GeoTargetConstantStatusEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GeoTargetConstantStatusEnum.Unmarshal(m, b) +} +func (m *GeoTargetConstantStatusEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GeoTargetConstantStatusEnum.Marshal(b, m, deterministic) +} +func (dst *GeoTargetConstantStatusEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_GeoTargetConstantStatusEnum.Merge(dst, src) +} +func (m *GeoTargetConstantStatusEnum) XXX_Size() int { + return xxx_messageInfo_GeoTargetConstantStatusEnum.Size(m) +} +func (m *GeoTargetConstantStatusEnum) XXX_DiscardUnknown() { + xxx_messageInfo_GeoTargetConstantStatusEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_GeoTargetConstantStatusEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*GeoTargetConstantStatusEnum)(nil), "google.ads.googleads.v0.enums.GeoTargetConstantStatusEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.GeoTargetConstantStatusEnum_GeoTargetConstantStatus", GeoTargetConstantStatusEnum_GeoTargetConstantStatus_name, GeoTargetConstantStatusEnum_GeoTargetConstantStatus_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/geo_target_constant_status.proto", fileDescriptor_geo_target_constant_status_01172c2684dfd41a) +} + +var fileDescriptor_geo_target_constant_status_01172c2684dfd41a = []byte{ + // 285 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0x41, 0x4b, 0xc3, 0x30, + 0x18, 0x86, 0x5d, 0x07, 0x0a, 0xd9, 0x61, 0xa5, 0x1e, 0x3c, 0xe8, 0x0e, 0xee, 0x07, 0xa4, 0x05, + 0x8f, 0x82, 0x90, 0xae, 0xb1, 0x0c, 0x6b, 0x56, 0x9c, 0xab, 0x28, 0x85, 0x12, 0xd7, 0x10, 0x84, + 0x35, 0x19, 0xfd, 0xd2, 0xe1, 0xef, 0xf1, 0xe8, 0x4f, 0x11, 0xfc, 0x4f, 0xd2, 0x74, 0xdb, 0xad, + 0x5e, 0xc2, 0x1b, 0x5e, 0x9e, 0xf7, 0xfb, 0xbe, 0x17, 0xdd, 0x49, 0xad, 0xe5, 0x46, 0xf8, 0xbc, + 0x04, 0xbf, 0x93, 0xad, 0xda, 0x05, 0xbe, 0x50, 0x4d, 0x05, 0xbe, 0x14, 0xba, 0x30, 0xbc, 0x96, + 0xc2, 0x14, 0x6b, 0xad, 0xc0, 0x70, 0x65, 0x0a, 0x30, 0xdc, 0x34, 0x80, 0xb7, 0xb5, 0x36, 0xda, + 0x9b, 0x74, 0x10, 0xe6, 0x25, 0xe0, 0x23, 0x8f, 0x77, 0x01, 0xb6, 0xfc, 0xf4, 0x13, 0x5d, 0xc6, + 0x42, 0x3f, 0xdb, 0x84, 0xd9, 0x3e, 0x60, 0x69, 0x79, 0xaa, 0x9a, 0x6a, 0xfa, 0x8a, 0x2e, 0x7a, + 0x6c, 0x6f, 0x8c, 0x46, 0x2b, 0xb6, 0x4c, 0xe9, 0x6c, 0x7e, 0x3f, 0xa7, 0x91, 0x7b, 0xe2, 0x8d, + 0xd0, 0xd9, 0x8a, 0x3d, 0xb0, 0xc5, 0x0b, 0x73, 0x07, 0xed, 0x87, 0x32, 0x12, 0x26, 0x34, 0x72, + 0x1d, 0xef, 0x1c, 0x8d, 0x9f, 0xe8, 0xe3, 0x22, 0x23, 0x49, 0x91, 0x26, 0x84, 0x31, 0x1a, 0xb9, + 0xc3, 0xf0, 0x77, 0x80, 0xae, 0xd7, 0xba, 0xc2, 0xff, 0xee, 0x17, 0x5e, 0xf5, 0x8c, 0x4f, 0xdb, + 0xe3, 0xd2, 0xc1, 0x5b, 0xb8, 0xc7, 0xa5, 0xde, 0x70, 0x25, 0xb1, 0xae, 0xa5, 0x2f, 0x85, 0xb2, + 0xa7, 0x1f, 0xea, 0xda, 0x7e, 0x40, 0x4f, 0x7b, 0xb7, 0xf6, 0xfd, 0x72, 0x86, 0x31, 0x21, 0xdf, + 0xce, 0x24, 0xee, 0xa2, 0x48, 0x09, 0xb8, 0x93, 0xad, 0xca, 0x02, 0xdc, 0x36, 0x01, 0x3f, 0x07, + 0x3f, 0x27, 0x25, 0xe4, 0x47, 0x3f, 0xcf, 0x82, 0xdc, 0xfa, 0xef, 0xa7, 0x76, 0xe8, 0xcd, 0x5f, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x49, 0x25, 0x72, 0x39, 0xb1, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/geo_targeting_restriction.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/geo_targeting_restriction.pb.go new file mode 100644 index 000000000..a7e898482 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/geo_targeting_restriction.pb.go @@ -0,0 +1,113 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/geo_targeting_restriction.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A restriction used to determine if the request context's +// geo should be matched. +type GeoTargetingRestrictionEnum_GeoTargetingRestriction int32 + +const ( + // Not specified. + GeoTargetingRestrictionEnum_UNSPECIFIED GeoTargetingRestrictionEnum_GeoTargetingRestriction = 0 + // Used for return value only. Represents value unknown in this version. + GeoTargetingRestrictionEnum_UNKNOWN GeoTargetingRestrictionEnum_GeoTargetingRestriction = 1 + // Indicates that request context should match the physical location of + // the user. + GeoTargetingRestrictionEnum_LOCATION_OF_PRESENCE GeoTargetingRestrictionEnum_GeoTargetingRestriction = 2 +) + +var GeoTargetingRestrictionEnum_GeoTargetingRestriction_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "LOCATION_OF_PRESENCE", +} +var GeoTargetingRestrictionEnum_GeoTargetingRestriction_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "LOCATION_OF_PRESENCE": 2, +} + +func (x GeoTargetingRestrictionEnum_GeoTargetingRestriction) String() string { + return proto.EnumName(GeoTargetingRestrictionEnum_GeoTargetingRestriction_name, int32(x)) +} +func (GeoTargetingRestrictionEnum_GeoTargetingRestriction) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_geo_targeting_restriction_f1a4d0dcbbcc21ed, []int{0, 0} +} + +// Message describing feed item geo targeting restriction. +type GeoTargetingRestrictionEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GeoTargetingRestrictionEnum) Reset() { *m = GeoTargetingRestrictionEnum{} } +func (m *GeoTargetingRestrictionEnum) String() string { return proto.CompactTextString(m) } +func (*GeoTargetingRestrictionEnum) ProtoMessage() {} +func (*GeoTargetingRestrictionEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_geo_targeting_restriction_f1a4d0dcbbcc21ed, []int{0} +} +func (m *GeoTargetingRestrictionEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GeoTargetingRestrictionEnum.Unmarshal(m, b) +} +func (m *GeoTargetingRestrictionEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GeoTargetingRestrictionEnum.Marshal(b, m, deterministic) +} +func (dst *GeoTargetingRestrictionEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_GeoTargetingRestrictionEnum.Merge(dst, src) +} +func (m *GeoTargetingRestrictionEnum) XXX_Size() int { + return xxx_messageInfo_GeoTargetingRestrictionEnum.Size(m) +} +func (m *GeoTargetingRestrictionEnum) XXX_DiscardUnknown() { + xxx_messageInfo_GeoTargetingRestrictionEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_GeoTargetingRestrictionEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*GeoTargetingRestrictionEnum)(nil), "google.ads.googleads.v0.enums.GeoTargetingRestrictionEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.GeoTargetingRestrictionEnum_GeoTargetingRestriction", GeoTargetingRestrictionEnum_GeoTargetingRestriction_name, GeoTargetingRestrictionEnum_GeoTargetingRestriction_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/geo_targeting_restriction.proto", fileDescriptor_geo_targeting_restriction_f1a4d0dcbbcc21ed) +} + +var fileDescriptor_geo_targeting_restriction_f1a4d0dcbbcc21ed = []byte{ + // 276 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x4d, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xbc, + 0xd2, 0xdc, 0x62, 0xfd, 0xf4, 0xd4, 0xfc, 0xf8, 0x92, 0xc4, 0xa2, 0xf4, 0xd4, 0x92, 0xcc, 0xbc, + 0xf4, 0xf8, 0xa2, 0xd4, 0xe2, 0x92, 0xa2, 0xcc, 0xe4, 0x92, 0xcc, 0xfc, 0x3c, 0xbd, 0x82, 0xa2, + 0xfc, 0x92, 0x7c, 0x21, 0x59, 0x88, 0x1e, 0xbd, 0xc4, 0x94, 0x62, 0x3d, 0xb8, 0x76, 0xbd, 0x32, + 0x03, 0x3d, 0xb0, 0x76, 0xa5, 0x02, 0x2e, 0x69, 0xf7, 0xd4, 0xfc, 0x10, 0x98, 0x01, 0x41, 0x08, + 0xfd, 0xae, 0x79, 0xa5, 0xb9, 0x4a, 0x81, 0x5c, 0xe2, 0x38, 0xa4, 0x85, 0xf8, 0xb9, 0xb8, 0x43, + 0xfd, 0x82, 0x03, 0x5c, 0x9d, 0x3d, 0xdd, 0x3c, 0x5d, 0x5d, 0x04, 0x18, 0x84, 0xb8, 0xb9, 0xd8, + 0x43, 0xfd, 0xbc, 0xfd, 0xfc, 0xc3, 0xfd, 0x04, 0x18, 0x85, 0x24, 0xb8, 0x44, 0x7c, 0xfc, 0x9d, + 0x1d, 0x43, 0x3c, 0xfd, 0xfd, 0xe2, 0xfd, 0xdd, 0xe2, 0x03, 0x82, 0x5c, 0x83, 0x5d, 0xfd, 0x9c, + 0x5d, 0x05, 0x98, 0x9c, 0xce, 0x32, 0x72, 0x29, 0x26, 0xe7, 0xe7, 0xea, 0xe1, 0x75, 0x97, 0x93, + 0x0c, 0x0e, 0x6b, 0x03, 0x40, 0x9e, 0x0a, 0x60, 0x8c, 0x72, 0x82, 0x6a, 0x4f, 0xcf, 0xcf, 0x49, + 0xcc, 0x4b, 0xd7, 0xcb, 0x2f, 0x4a, 0xd7, 0x4f, 0x4f, 0xcd, 0x03, 0x7b, 0x19, 0x16, 0x4a, 0x05, + 0x99, 0xc5, 0x38, 0x02, 0xcd, 0x1a, 0x4c, 0x2e, 0x62, 0x62, 0x76, 0x77, 0x74, 0x5c, 0xc5, 0x24, + 0xeb, 0x0e, 0x31, 0xca, 0x31, 0xa5, 0x58, 0x0f, 0xc2, 0x04, 0xb1, 0xc2, 0x0c, 0xf4, 0x40, 0x21, + 0x50, 0x7c, 0x0a, 0x26, 0x1f, 0xe3, 0x98, 0x52, 0x1c, 0x03, 0x97, 0x8f, 0x09, 0x33, 0x88, 0x01, + 0xcb, 0x27, 0xb1, 0x81, 0x2d, 0x35, 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, 0xd8, 0xda, 0x14, 0x81, + 0xa8, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/google_ads_field_category.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/google_ads_field_category.pb.go new file mode 100644 index 000000000..85e842554 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/google_ads_field_category.pb.go @@ -0,0 +1,129 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/google_ads_field_category.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// The category of the artifact. +type GoogleAdsFieldCategoryEnum_GoogleAdsFieldCategory int32 + +const ( + // Unspecified + GoogleAdsFieldCategoryEnum_UNSPECIFIED GoogleAdsFieldCategoryEnum_GoogleAdsFieldCategory = 0 + // Unknown + GoogleAdsFieldCategoryEnum_UNKNOWN GoogleAdsFieldCategoryEnum_GoogleAdsFieldCategory = 1 + // The described artifact is a resource. + GoogleAdsFieldCategoryEnum_RESOURCE GoogleAdsFieldCategoryEnum_GoogleAdsFieldCategory = 2 + // The described artifact is a field and is an attribute of a resource. + // Including a resource attribute field in a query may segment the query if + // the resource to which it is attributed segments the resource found in + // the FROM clause. + GoogleAdsFieldCategoryEnum_ATTRIBUTE GoogleAdsFieldCategoryEnum_GoogleAdsFieldCategory = 3 + // The described artifact is a field and always segments search queries. + GoogleAdsFieldCategoryEnum_SEGMENT GoogleAdsFieldCategoryEnum_GoogleAdsFieldCategory = 5 + // The described artifact is a field and is a metric. It never segments + // search queries. + GoogleAdsFieldCategoryEnum_METRIC GoogleAdsFieldCategoryEnum_GoogleAdsFieldCategory = 6 +) + +var GoogleAdsFieldCategoryEnum_GoogleAdsFieldCategory_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "RESOURCE", + 3: "ATTRIBUTE", + 5: "SEGMENT", + 6: "METRIC", +} +var GoogleAdsFieldCategoryEnum_GoogleAdsFieldCategory_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "RESOURCE": 2, + "ATTRIBUTE": 3, + "SEGMENT": 5, + "METRIC": 6, +} + +func (x GoogleAdsFieldCategoryEnum_GoogleAdsFieldCategory) String() string { + return proto.EnumName(GoogleAdsFieldCategoryEnum_GoogleAdsFieldCategory_name, int32(x)) +} +func (GoogleAdsFieldCategoryEnum_GoogleAdsFieldCategory) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_google_ads_field_category_97cde39ce3aca2c0, []int{0, 0} +} + +// Container for enum that determines if the described artifact is a resource +// or a field, and if it is a field, when it segments search queries. +type GoogleAdsFieldCategoryEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GoogleAdsFieldCategoryEnum) Reset() { *m = GoogleAdsFieldCategoryEnum{} } +func (m *GoogleAdsFieldCategoryEnum) String() string { return proto.CompactTextString(m) } +func (*GoogleAdsFieldCategoryEnum) ProtoMessage() {} +func (*GoogleAdsFieldCategoryEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_google_ads_field_category_97cde39ce3aca2c0, []int{0} +} +func (m *GoogleAdsFieldCategoryEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GoogleAdsFieldCategoryEnum.Unmarshal(m, b) +} +func (m *GoogleAdsFieldCategoryEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GoogleAdsFieldCategoryEnum.Marshal(b, m, deterministic) +} +func (dst *GoogleAdsFieldCategoryEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_GoogleAdsFieldCategoryEnum.Merge(dst, src) +} +func (m *GoogleAdsFieldCategoryEnum) XXX_Size() int { + return xxx_messageInfo_GoogleAdsFieldCategoryEnum.Size(m) +} +func (m *GoogleAdsFieldCategoryEnum) XXX_DiscardUnknown() { + xxx_messageInfo_GoogleAdsFieldCategoryEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_GoogleAdsFieldCategoryEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*GoogleAdsFieldCategoryEnum)(nil), "google.ads.googleads.v0.enums.GoogleAdsFieldCategoryEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.GoogleAdsFieldCategoryEnum_GoogleAdsFieldCategory", GoogleAdsFieldCategoryEnum_GoogleAdsFieldCategory_name, GoogleAdsFieldCategoryEnum_GoogleAdsFieldCategory_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/google_ads_field_category.proto", fileDescriptor_google_ads_field_category_97cde39ce3aca2c0) +} + +var fileDescriptor_google_ads_field_category_97cde39ce3aca2c0 = []byte{ + // 300 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x4d, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xbc, + 0xd2, 0x5c, 0x98, 0x50, 0x7c, 0x62, 0x4a, 0x71, 0x7c, 0x5a, 0x66, 0x6a, 0x4e, 0x4a, 0x7c, 0x72, + 0x62, 0x49, 0x6a, 0x7a, 0x7e, 0x51, 0xa5, 0x5e, 0x41, 0x51, 0x7e, 0x49, 0xbe, 0x90, 0x2c, 0x44, + 0x81, 0x5e, 0x62, 0x4a, 0xb1, 0x1e, 0x5c, 0xbb, 0x5e, 0x99, 0x81, 0x1e, 0x58, 0xbb, 0x52, 0x17, + 0x23, 0x97, 0x94, 0x3b, 0x58, 0xd8, 0x31, 0xa5, 0xd8, 0x0d, 0x64, 0x80, 0x33, 0x54, 0xbf, 0x6b, + 0x5e, 0x69, 0xae, 0x52, 0x0e, 0x97, 0x18, 0x76, 0x59, 0x21, 0x7e, 0x2e, 0xee, 0x50, 0xbf, 0xe0, + 0x00, 0x57, 0x67, 0x4f, 0x37, 0x4f, 0x57, 0x17, 0x01, 0x06, 0x21, 0x6e, 0x2e, 0xf6, 0x50, 0x3f, + 0x6f, 0x3f, 0xff, 0x70, 0x3f, 0x01, 0x46, 0x21, 0x1e, 0x2e, 0x8e, 0x20, 0xd7, 0x60, 0xff, 0xd0, + 0x20, 0x67, 0x57, 0x01, 0x26, 0x21, 0x5e, 0x2e, 0x4e, 0xc7, 0x90, 0x90, 0x20, 0x4f, 0xa7, 0xd0, + 0x10, 0x57, 0x01, 0x66, 0x90, 0xca, 0x60, 0x57, 0x77, 0x5f, 0x57, 0xbf, 0x10, 0x01, 0x56, 0x21, + 0x2e, 0x2e, 0x36, 0x5f, 0xd7, 0x90, 0x20, 0x4f, 0x67, 0x01, 0x36, 0xa7, 0x33, 0x8c, 0x5c, 0x8a, + 0xc9, 0xf9, 0xb9, 0x7a, 0x78, 0x9d, 0xec, 0x24, 0x8d, 0xdd, 0x45, 0x01, 0x20, 0xef, 0x06, 0x30, + 0x46, 0x39, 0x41, 0x75, 0xa7, 0xe7, 0xe7, 0x24, 0xe6, 0xa5, 0xeb, 0xe5, 0x17, 0xa5, 0xeb, 0xa7, + 0xa7, 0xe6, 0x81, 0x03, 0x03, 0x16, 0x7e, 0x05, 0x99, 0xc5, 0x38, 0x82, 0xd3, 0x1a, 0x4c, 0x2e, + 0x62, 0x62, 0x76, 0x77, 0x74, 0x5c, 0xc5, 0x24, 0x0b, 0xb1, 0x49, 0xcf, 0x31, 0xa5, 0x58, 0x0f, + 0x6e, 0xa9, 0x5e, 0x98, 0x81, 0x1e, 0x28, 0x6c, 0x8a, 0x4f, 0xc1, 0xe4, 0x63, 0x1c, 0x53, 0x8a, + 0x63, 0xe0, 0xf2, 0x31, 0x61, 0x06, 0x31, 0x60, 0xf9, 0x24, 0x36, 0xb0, 0xa5, 0xc6, 0x80, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xb3, 0x56, 0xff, 0x0d, 0xc2, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/google_ads_field_data_type.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/google_ads_field_data_type.pb.go new file mode 100644 index 000000000..0623405d2 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/google_ads_field_data_type.pb.go @@ -0,0 +1,175 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/google_ads_field_data_type.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// These are the various types a GoogleAdsService artifact may take on. +type GoogleAdsFieldDataTypeEnum_GoogleAdsFieldDataType int32 + +const ( + // Unspecified + GoogleAdsFieldDataTypeEnum_UNSPECIFIED GoogleAdsFieldDataTypeEnum_GoogleAdsFieldDataType = 0 + // Unknown + GoogleAdsFieldDataTypeEnum_UNKNOWN GoogleAdsFieldDataTypeEnum_GoogleAdsFieldDataType = 1 + // Maps to google.protobuf.BoolValue + // + // Applicable operators: =, != + GoogleAdsFieldDataTypeEnum_BOOLEAN GoogleAdsFieldDataTypeEnum_GoogleAdsFieldDataType = 2 + // Maps to google.protobuf.StringValue. It can be compared using the set of + // operators specific to dates however. + // + // Applicable operators: =, <, >, <=, >=, BETWEEN, DURING, and IN + GoogleAdsFieldDataTypeEnum_DATE GoogleAdsFieldDataTypeEnum_GoogleAdsFieldDataType = 3 + // Maps to google.protobuf.DoubleValue + // + // Applicable operators: =, !=, <, >, IN, NOT IN + GoogleAdsFieldDataTypeEnum_DOUBLE GoogleAdsFieldDataTypeEnum_GoogleAdsFieldDataType = 4 + // Maps to an enum. It's specific definition can be found at type_url. + // + // Applicable operators: =, !=, IN, NOT IN + GoogleAdsFieldDataTypeEnum_ENUM GoogleAdsFieldDataTypeEnum_GoogleAdsFieldDataType = 5 + // Maps to google.protobuf.FloatValue + // + // Applicable operators: =, !=, <, >, IN, NOT IN + GoogleAdsFieldDataTypeEnum_FLOAT GoogleAdsFieldDataTypeEnum_GoogleAdsFieldDataType = 6 + // Maps to google.protobuf.Int32Value + // + // Applicable operators: =, !=, <, >, <=, >=, BETWEEN, IN, NOT IN + GoogleAdsFieldDataTypeEnum_INT32 GoogleAdsFieldDataTypeEnum_GoogleAdsFieldDataType = 7 + // Maps to google.protobuf.Int64Value + // + // Applicable operators: =, !=, <, >, <=, >=, BETWEEN, IN, NOT IN + GoogleAdsFieldDataTypeEnum_INT64 GoogleAdsFieldDataTypeEnum_GoogleAdsFieldDataType = 8 + // Maps to a protocol buffer message type. The data type's details can be + // found in type_url. + // + // No operators work with MESSAGE fields. + GoogleAdsFieldDataTypeEnum_MESSAGE GoogleAdsFieldDataTypeEnum_GoogleAdsFieldDataType = 9 + // Maps to google.protobuf.StringValue. Represents the resource name + // (unique id) of a resource or one of its foreign keys. + // + // No operators work with RESOURCE_NAME fields. + GoogleAdsFieldDataTypeEnum_RESOURCE_NAME GoogleAdsFieldDataTypeEnum_GoogleAdsFieldDataType = 10 + // Maps to google.protobuf.StringValue. + // + // Applicable operators: =, !=, LIKE, NOT LIKE, IN, NOT IN + GoogleAdsFieldDataTypeEnum_STRING GoogleAdsFieldDataTypeEnum_GoogleAdsFieldDataType = 11 +) + +var GoogleAdsFieldDataTypeEnum_GoogleAdsFieldDataType_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "BOOLEAN", + 3: "DATE", + 4: "DOUBLE", + 5: "ENUM", + 6: "FLOAT", + 7: "INT32", + 8: "INT64", + 9: "MESSAGE", + 10: "RESOURCE_NAME", + 11: "STRING", +} +var GoogleAdsFieldDataTypeEnum_GoogleAdsFieldDataType_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "BOOLEAN": 2, + "DATE": 3, + "DOUBLE": 4, + "ENUM": 5, + "FLOAT": 6, + "INT32": 7, + "INT64": 8, + "MESSAGE": 9, + "RESOURCE_NAME": 10, + "STRING": 11, +} + +func (x GoogleAdsFieldDataTypeEnum_GoogleAdsFieldDataType) String() string { + return proto.EnumName(GoogleAdsFieldDataTypeEnum_GoogleAdsFieldDataType_name, int32(x)) +} +func (GoogleAdsFieldDataTypeEnum_GoogleAdsFieldDataType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_google_ads_field_data_type_48f8da58e8f99892, []int{0, 0} +} + +// Container holding the various data types. +type GoogleAdsFieldDataTypeEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GoogleAdsFieldDataTypeEnum) Reset() { *m = GoogleAdsFieldDataTypeEnum{} } +func (m *GoogleAdsFieldDataTypeEnum) String() string { return proto.CompactTextString(m) } +func (*GoogleAdsFieldDataTypeEnum) ProtoMessage() {} +func (*GoogleAdsFieldDataTypeEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_google_ads_field_data_type_48f8da58e8f99892, []int{0} +} +func (m *GoogleAdsFieldDataTypeEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GoogleAdsFieldDataTypeEnum.Unmarshal(m, b) +} +func (m *GoogleAdsFieldDataTypeEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GoogleAdsFieldDataTypeEnum.Marshal(b, m, deterministic) +} +func (dst *GoogleAdsFieldDataTypeEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_GoogleAdsFieldDataTypeEnum.Merge(dst, src) +} +func (m *GoogleAdsFieldDataTypeEnum) XXX_Size() int { + return xxx_messageInfo_GoogleAdsFieldDataTypeEnum.Size(m) +} +func (m *GoogleAdsFieldDataTypeEnum) XXX_DiscardUnknown() { + xxx_messageInfo_GoogleAdsFieldDataTypeEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_GoogleAdsFieldDataTypeEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*GoogleAdsFieldDataTypeEnum)(nil), "google.ads.googleads.v0.enums.GoogleAdsFieldDataTypeEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.GoogleAdsFieldDataTypeEnum_GoogleAdsFieldDataType", GoogleAdsFieldDataTypeEnum_GoogleAdsFieldDataType_name, GoogleAdsFieldDataTypeEnum_GoogleAdsFieldDataType_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/google_ads_field_data_type.proto", fileDescriptor_google_ads_field_data_type_48f8da58e8f99892) +} + +var fileDescriptor_google_ads_field_data_type_48f8da58e8f99892 = []byte{ + // 353 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x51, 0xcd, 0x4a, 0xeb, 0x40, + 0x18, 0xbd, 0xe9, 0x7f, 0xa7, 0x5c, 0xee, 0xdc, 0x2c, 0x5c, 0x28, 0x5d, 0xd8, 0x07, 0x98, 0x04, + 0x2b, 0x6e, 0x04, 0x61, 0xd2, 0x4c, 0x43, 0xb0, 0x9d, 0x94, 0x26, 0xa9, 0x20, 0x81, 0x30, 0x3a, + 0x31, 0x14, 0xda, 0x4c, 0xe8, 0xa4, 0x85, 0xbe, 0x8e, 0x4b, 0x57, 0x3e, 0x87, 0x08, 0xbe, 0x92, + 0x4c, 0xfa, 0xb3, 0xaa, 0x6e, 0xc2, 0xc9, 0x77, 0xe6, 0x9c, 0xc3, 0x77, 0x3e, 0x70, 0x97, 0x0a, + 0x91, 0x2e, 0x12, 0x83, 0x71, 0x69, 0xec, 0xa0, 0x42, 0x1b, 0xd3, 0x48, 0xb2, 0xf5, 0xf2, 0x30, + 0x8a, 0x19, 0x97, 0xf1, 0xcb, 0x3c, 0x59, 0xf0, 0x98, 0xb3, 0x82, 0xc5, 0xc5, 0x36, 0x4f, 0x50, + 0xbe, 0x12, 0x85, 0xd0, 0xbb, 0xbb, 0x17, 0x88, 0x71, 0x89, 0x8e, 0x7a, 0xb4, 0x31, 0x51, 0xa9, + 0xef, 0x7d, 0x69, 0xe0, 0xdc, 0x29, 0xc7, 0x98, 0xcb, 0xa1, 0x72, 0xb0, 0x59, 0xc1, 0x82, 0x6d, + 0x9e, 0x90, 0x6c, 0xbd, 0xec, 0xbd, 0x6b, 0xe0, 0xec, 0x34, 0xad, 0xff, 0x03, 0x9d, 0x90, 0xfa, + 0x13, 0x32, 0x70, 0x87, 0x2e, 0xb1, 0xe1, 0x1f, 0xbd, 0x03, 0x9a, 0x21, 0xbd, 0xa7, 0xde, 0x03, + 0x85, 0x9a, 0xfa, 0xb1, 0x3c, 0x6f, 0x44, 0x30, 0x85, 0x15, 0xbd, 0x05, 0x6a, 0x36, 0x0e, 0x08, + 0xac, 0xea, 0x00, 0x34, 0x6c, 0x2f, 0xb4, 0x46, 0x04, 0xd6, 0xd4, 0x94, 0xd0, 0x70, 0x0c, 0xeb, + 0x7a, 0x1b, 0xd4, 0x87, 0x23, 0x0f, 0x07, 0xb0, 0xa1, 0xa0, 0x4b, 0x83, 0xfe, 0x15, 0x6c, 0xee, + 0xe1, 0xcd, 0x35, 0x6c, 0x29, 0xb7, 0x31, 0xf1, 0x7d, 0xec, 0x10, 0xd8, 0xd6, 0xff, 0x83, 0xbf, + 0x53, 0xe2, 0x7b, 0xe1, 0x74, 0x40, 0x62, 0x8a, 0xc7, 0x04, 0x02, 0x65, 0xeb, 0x07, 0x53, 0x97, + 0x3a, 0xb0, 0x63, 0x7d, 0x6a, 0xe0, 0xf2, 0x59, 0x2c, 0xd1, 0xaf, 0x7b, 0x5b, 0x17, 0xa7, 0xb7, + 0x9a, 0xa8, 0xce, 0x26, 0xda, 0xa3, 0xb5, 0x57, 0xa7, 0x62, 0xc1, 0xb2, 0x14, 0x89, 0x55, 0x6a, + 0xa4, 0x49, 0x56, 0x36, 0x7a, 0xb8, 0x42, 0x3e, 0x97, 0x3f, 0x1c, 0xe5, 0xb6, 0xfc, 0xbe, 0x56, + 0xaa, 0x0e, 0xc6, 0x6f, 0x95, 0xee, 0x2e, 0x09, 0x61, 0x2e, 0xd1, 0x31, 0x14, 0xcd, 0x4c, 0xa4, + 0x0a, 0x96, 0x1f, 0x07, 0x3e, 0xc2, 0x5c, 0x46, 0x47, 0x3e, 0x9a, 0x99, 0x51, 0xc9, 0x3f, 0x35, + 0xca, 0xd0, 0xfe, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0x96, 0x06, 0xb3, 0xb7, 0x08, 0x02, 0x00, + 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/hotel_date_selection_type.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/hotel_date_selection_type.pb.go new file mode 100644 index 000000000..0d873d9af --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/hotel_date_selection_type.pb.go @@ -0,0 +1,116 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/hotel_date_selection_type.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible hotel date selection types. +type HotelDateSelectionTypeEnum_HotelDateSelectionType int32 + +const ( + // Not specified. + HotelDateSelectionTypeEnum_UNSPECIFIED HotelDateSelectionTypeEnum_HotelDateSelectionType = 0 + // Used for return value only. Represents value unknown in this version. + HotelDateSelectionTypeEnum_UNKNOWN HotelDateSelectionTypeEnum_HotelDateSelectionType = 1 + // Dates selected by default. + HotelDateSelectionTypeEnum_DEFAULT_SELECTION HotelDateSelectionTypeEnum_HotelDateSelectionType = 50 + // Dates selected by the user. + HotelDateSelectionTypeEnum_USER_SELECTED HotelDateSelectionTypeEnum_HotelDateSelectionType = 51 +) + +var HotelDateSelectionTypeEnum_HotelDateSelectionType_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 50: "DEFAULT_SELECTION", + 51: "USER_SELECTED", +} +var HotelDateSelectionTypeEnum_HotelDateSelectionType_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "DEFAULT_SELECTION": 50, + "USER_SELECTED": 51, +} + +func (x HotelDateSelectionTypeEnum_HotelDateSelectionType) String() string { + return proto.EnumName(HotelDateSelectionTypeEnum_HotelDateSelectionType_name, int32(x)) +} +func (HotelDateSelectionTypeEnum_HotelDateSelectionType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_hotel_date_selection_type_2e676c6d0c7214c3, []int{0, 0} +} + +// Container for enum describing possible hotel date selection types +type HotelDateSelectionTypeEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *HotelDateSelectionTypeEnum) Reset() { *m = HotelDateSelectionTypeEnum{} } +func (m *HotelDateSelectionTypeEnum) String() string { return proto.CompactTextString(m) } +func (*HotelDateSelectionTypeEnum) ProtoMessage() {} +func (*HotelDateSelectionTypeEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_hotel_date_selection_type_2e676c6d0c7214c3, []int{0} +} +func (m *HotelDateSelectionTypeEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HotelDateSelectionTypeEnum.Unmarshal(m, b) +} +func (m *HotelDateSelectionTypeEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HotelDateSelectionTypeEnum.Marshal(b, m, deterministic) +} +func (dst *HotelDateSelectionTypeEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_HotelDateSelectionTypeEnum.Merge(dst, src) +} +func (m *HotelDateSelectionTypeEnum) XXX_Size() int { + return xxx_messageInfo_HotelDateSelectionTypeEnum.Size(m) +} +func (m *HotelDateSelectionTypeEnum) XXX_DiscardUnknown() { + xxx_messageInfo_HotelDateSelectionTypeEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_HotelDateSelectionTypeEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*HotelDateSelectionTypeEnum)(nil), "google.ads.googleads.v0.enums.HotelDateSelectionTypeEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.HotelDateSelectionTypeEnum_HotelDateSelectionType", HotelDateSelectionTypeEnum_HotelDateSelectionType_name, HotelDateSelectionTypeEnum_HotelDateSelectionType_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/hotel_date_selection_type.proto", fileDescriptor_hotel_date_selection_type_2e676c6d0c7214c3) +} + +var fileDescriptor_hotel_date_selection_type_2e676c6d0c7214c3 = []byte{ + // 292 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x4d, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xbc, + 0xd2, 0xdc, 0x62, 0xfd, 0x8c, 0xfc, 0x92, 0xd4, 0x9c, 0xf8, 0x94, 0xc4, 0x92, 0xd4, 0xf8, 0xe2, + 0xd4, 0x9c, 0xd4, 0xe4, 0x92, 0xcc, 0xfc, 0xbc, 0xf8, 0x92, 0xca, 0x82, 0x54, 0xbd, 0x82, 0xa2, + 0xfc, 0x92, 0x7c, 0x21, 0x59, 0x88, 0x1e, 0xbd, 0xc4, 0x94, 0x62, 0x3d, 0xb8, 0x76, 0xbd, 0x32, + 0x03, 0x3d, 0xb0, 0x76, 0xa5, 0x3a, 0x2e, 0x29, 0x0f, 0x90, 0x09, 0x2e, 0x89, 0x25, 0xa9, 0xc1, + 0x30, 0xfd, 0x21, 0x95, 0x05, 0xa9, 0xae, 0x79, 0xa5, 0xb9, 0x4a, 0x09, 0x5c, 0x62, 0xd8, 0x65, + 0x85, 0xf8, 0xb9, 0xb8, 0x43, 0xfd, 0x82, 0x03, 0x5c, 0x9d, 0x3d, 0xdd, 0x3c, 0x5d, 0x5d, 0x04, + 0x18, 0x84, 0xb8, 0xb9, 0xd8, 0x43, 0xfd, 0xbc, 0xfd, 0xfc, 0xc3, 0xfd, 0x04, 0x18, 0x85, 0x44, + 0xb9, 0x04, 0x5d, 0x5c, 0xdd, 0x1c, 0x43, 0x7d, 0x42, 0xe2, 0x83, 0x5d, 0x7d, 0x5c, 0x9d, 0x43, + 0x3c, 0xfd, 0xfd, 0x04, 0x8c, 0x84, 0x04, 0xb9, 0x78, 0x43, 0x83, 0x5d, 0x83, 0xa0, 0x62, 0xae, + 0x2e, 0x02, 0xc6, 0x4e, 0x67, 0x18, 0xb9, 0x14, 0x93, 0xf3, 0x73, 0xf5, 0xf0, 0xba, 0xd2, 0x49, + 0x1a, 0xbb, 0x2b, 0x02, 0x40, 0x3e, 0x0c, 0x60, 0x8c, 0x72, 0x82, 0xea, 0x4e, 0xcf, 0xcf, 0x49, + 0xcc, 0x4b, 0xd7, 0xcb, 0x2f, 0x4a, 0xd7, 0x4f, 0x4f, 0xcd, 0x03, 0xfb, 0x1f, 0x16, 0x64, 0x05, + 0x99, 0xc5, 0x38, 0x42, 0xd0, 0x1a, 0x4c, 0x2e, 0x62, 0x62, 0x76, 0x77, 0x74, 0x5c, 0xc5, 0x24, + 0xeb, 0x0e, 0x31, 0xca, 0x31, 0xa5, 0x58, 0x0f, 0xc2, 0x04, 0xb1, 0xc2, 0x0c, 0xf4, 0x40, 0xe1, + 0x51, 0x7c, 0x0a, 0x26, 0x1f, 0xe3, 0x98, 0x52, 0x1c, 0x03, 0x97, 0x8f, 0x09, 0x33, 0x88, 0x01, + 0xcb, 0x27, 0xb1, 0x81, 0x2d, 0x35, 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x9a, 0xc2, 0x8b, + 0xb5, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/hotel_placeholder_field.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/hotel_placeholder_field.pb.go new file mode 100644 index 000000000..2547edf24 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/hotel_placeholder_field.pb.go @@ -0,0 +1,220 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/hotel_placeholder_field.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Possible values for Hotel placeholder fields. +type HotelPlaceholderFieldEnum_HotelPlaceholderField int32 + +const ( + // Not specified. + HotelPlaceholderFieldEnum_UNSPECIFIED HotelPlaceholderFieldEnum_HotelPlaceholderField = 0 + // Used for return value only. Represents value unknown in this version. + HotelPlaceholderFieldEnum_UNKNOWN HotelPlaceholderFieldEnum_HotelPlaceholderField = 1 + // Data Type: STRING. Required. Unique ID. + HotelPlaceholderFieldEnum_PROPERTY_ID HotelPlaceholderFieldEnum_HotelPlaceholderField = 2 + // Data Type: STRING. Required. Main headline with property name to be shown + // in dynamic ad. + HotelPlaceholderFieldEnum_PROPERTY_NAME HotelPlaceholderFieldEnum_HotelPlaceholderField = 3 + // Data Type: STRING. Name of destination to be shown in dynamic ad. + HotelPlaceholderFieldEnum_DESTINATION_NAME HotelPlaceholderFieldEnum_HotelPlaceholderField = 4 + // Data Type: STRING. Description of destination to be shown in dynamic ad. + HotelPlaceholderFieldEnum_DESCRIPTION HotelPlaceholderFieldEnum_HotelPlaceholderField = 5 + // Data Type: STRING. Complete property address, including postal code. + HotelPlaceholderFieldEnum_ADDRESS HotelPlaceholderFieldEnum_HotelPlaceholderField = 6 + // Data Type: STRING. Price to be shown in the ad. + // Example: "100.00 USD" + HotelPlaceholderFieldEnum_PRICE HotelPlaceholderFieldEnum_HotelPlaceholderField = 7 + // Data Type: STRING. Formatted price to be shown in the ad. + // Example: "Starting at $100.00 USD", "$80 - $100" + HotelPlaceholderFieldEnum_FORMATTED_PRICE HotelPlaceholderFieldEnum_HotelPlaceholderField = 8 + // Data Type: STRING. Sale price to be shown in the ad. + // Example: "80.00 USD" + HotelPlaceholderFieldEnum_SALE_PRICE HotelPlaceholderFieldEnum_HotelPlaceholderField = 9 + // Data Type: STRING. Formatted sale price to be shown in the ad. + // Example: "On sale for $80.00", "$60 - $80" + HotelPlaceholderFieldEnum_FORMATTED_SALE_PRICE HotelPlaceholderFieldEnum_HotelPlaceholderField = 10 + // Data Type: URL. Image to be displayed in the ad. + HotelPlaceholderFieldEnum_IMAGE_URL HotelPlaceholderFieldEnum_HotelPlaceholderField = 11 + // Data Type: STRING. Category of property used to group like items together + // for recommendation engine. + HotelPlaceholderFieldEnum_CATEGORY HotelPlaceholderFieldEnum_HotelPlaceholderField = 12 + // Data Type: INT64. Star rating (1 to 5) used to group like items + // together for recommendation engine. + HotelPlaceholderFieldEnum_STAR_RATING HotelPlaceholderFieldEnum_HotelPlaceholderField = 13 + // Data Type: STRING_LIST. Keywords used for product retrieval. + HotelPlaceholderFieldEnum_CONTEXTUAL_KEYWORDS HotelPlaceholderFieldEnum_HotelPlaceholderField = 14 + // Data Type: URL_LIST. Required. Final URLs for the ad when using Upgraded + // URLs. User will be redirected to these URLs when they click on an ad, or + // when they click on a specific flight for ads that show multiple + // flights. + HotelPlaceholderFieldEnum_FINAL_URLS HotelPlaceholderFieldEnum_HotelPlaceholderField = 15 + // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded + // URLs. + HotelPlaceholderFieldEnum_FINAL_MOBILE_URLS HotelPlaceholderFieldEnum_HotelPlaceholderField = 16 + // Data Type: URL. Tracking template for the ad when using Upgraded URLs. + HotelPlaceholderFieldEnum_TRACKING_URL HotelPlaceholderFieldEnum_HotelPlaceholderField = 17 + // Data Type: STRING. Android app link. Must be formatted as: + // android-app://{package_id}/{scheme}/{host_path}. + // The components are defined as follows: + // package_id: app ID as specified in Google Play. + // scheme: the scheme to pass to the application. Can be HTTP, or a custom + // scheme. + // host_path: identifies the specific content within your application. + HotelPlaceholderFieldEnum_ANDROID_APP_LINK HotelPlaceholderFieldEnum_HotelPlaceholderField = 18 + // Data Type: STRING_LIST. List of recommended property IDs to show together + // with this item. + HotelPlaceholderFieldEnum_SIMILAR_PROPERTY_IDS HotelPlaceholderFieldEnum_HotelPlaceholderField = 19 + // Data Type: STRING. iOS app link. + HotelPlaceholderFieldEnum_IOS_APP_LINK HotelPlaceholderFieldEnum_HotelPlaceholderField = 20 + // Data Type: INT64. iOS app store ID. + HotelPlaceholderFieldEnum_IOS_APP_STORE_ID HotelPlaceholderFieldEnum_HotelPlaceholderField = 21 +) + +var HotelPlaceholderFieldEnum_HotelPlaceholderField_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "PROPERTY_ID", + 3: "PROPERTY_NAME", + 4: "DESTINATION_NAME", + 5: "DESCRIPTION", + 6: "ADDRESS", + 7: "PRICE", + 8: "FORMATTED_PRICE", + 9: "SALE_PRICE", + 10: "FORMATTED_SALE_PRICE", + 11: "IMAGE_URL", + 12: "CATEGORY", + 13: "STAR_RATING", + 14: "CONTEXTUAL_KEYWORDS", + 15: "FINAL_URLS", + 16: "FINAL_MOBILE_URLS", + 17: "TRACKING_URL", + 18: "ANDROID_APP_LINK", + 19: "SIMILAR_PROPERTY_IDS", + 20: "IOS_APP_LINK", + 21: "IOS_APP_STORE_ID", +} +var HotelPlaceholderFieldEnum_HotelPlaceholderField_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "PROPERTY_ID": 2, + "PROPERTY_NAME": 3, + "DESTINATION_NAME": 4, + "DESCRIPTION": 5, + "ADDRESS": 6, + "PRICE": 7, + "FORMATTED_PRICE": 8, + "SALE_PRICE": 9, + "FORMATTED_SALE_PRICE": 10, + "IMAGE_URL": 11, + "CATEGORY": 12, + "STAR_RATING": 13, + "CONTEXTUAL_KEYWORDS": 14, + "FINAL_URLS": 15, + "FINAL_MOBILE_URLS": 16, + "TRACKING_URL": 17, + "ANDROID_APP_LINK": 18, + "SIMILAR_PROPERTY_IDS": 19, + "IOS_APP_LINK": 20, + "IOS_APP_STORE_ID": 21, +} + +func (x HotelPlaceholderFieldEnum_HotelPlaceholderField) String() string { + return proto.EnumName(HotelPlaceholderFieldEnum_HotelPlaceholderField_name, int32(x)) +} +func (HotelPlaceholderFieldEnum_HotelPlaceholderField) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_hotel_placeholder_field_e2aef94dde7f15bf, []int{0, 0} +} + +// Values for Hotel placeholder fields. +// For more information about dynamic remarketing feeds, see +// https://support.google.com/google-ads/answer/6053288. +type HotelPlaceholderFieldEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *HotelPlaceholderFieldEnum) Reset() { *m = HotelPlaceholderFieldEnum{} } +func (m *HotelPlaceholderFieldEnum) String() string { return proto.CompactTextString(m) } +func (*HotelPlaceholderFieldEnum) ProtoMessage() {} +func (*HotelPlaceholderFieldEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_hotel_placeholder_field_e2aef94dde7f15bf, []int{0} +} +func (m *HotelPlaceholderFieldEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HotelPlaceholderFieldEnum.Unmarshal(m, b) +} +func (m *HotelPlaceholderFieldEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HotelPlaceholderFieldEnum.Marshal(b, m, deterministic) +} +func (dst *HotelPlaceholderFieldEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_HotelPlaceholderFieldEnum.Merge(dst, src) +} +func (m *HotelPlaceholderFieldEnum) XXX_Size() int { + return xxx_messageInfo_HotelPlaceholderFieldEnum.Size(m) +} +func (m *HotelPlaceholderFieldEnum) XXX_DiscardUnknown() { + xxx_messageInfo_HotelPlaceholderFieldEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_HotelPlaceholderFieldEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*HotelPlaceholderFieldEnum)(nil), "google.ads.googleads.v0.enums.HotelPlaceholderFieldEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.HotelPlaceholderFieldEnum_HotelPlaceholderField", HotelPlaceholderFieldEnum_HotelPlaceholderField_name, HotelPlaceholderFieldEnum_HotelPlaceholderField_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/hotel_placeholder_field.proto", fileDescriptor_hotel_placeholder_field_e2aef94dde7f15bf) +} + +var fileDescriptor_hotel_placeholder_field_e2aef94dde7f15bf = []byte{ + // 491 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x52, 0xdd, 0x6e, 0xda, 0x30, + 0x18, 0x1d, 0xb0, 0xfe, 0x60, 0xa0, 0x18, 0x03, 0xda, 0xa6, 0xa9, 0x17, 0xeb, 0x03, 0x04, 0xa4, + 0x5d, 0xf6, 0xca, 0xc4, 0x26, 0xb3, 0x08, 0xb6, 0x65, 0x9b, 0x76, 0x4c, 0x48, 0x16, 0x6b, 0xb2, + 0xb4, 0x52, 0x20, 0x88, 0xb4, 0x7d, 0xa0, 0x5d, 0xee, 0x66, 0xef, 0x31, 0x6d, 0xef, 0x34, 0x39, + 0x29, 0x50, 0x4d, 0xdb, 0x6e, 0xa2, 0xcf, 0xe7, 0xf8, 0x9c, 0xcf, 0xf9, 0xbe, 0x03, 0x2e, 0x93, + 0x2c, 0x4b, 0xd2, 0x78, 0xb0, 0x8c, 0xf2, 0x41, 0x59, 0xba, 0xea, 0x71, 0x38, 0x88, 0xd7, 0x0f, + 0xab, 0x7c, 0x70, 0x9b, 0xdd, 0xc7, 0xa9, 0xdd, 0xa4, 0xcb, 0x9b, 0xf8, 0x36, 0x4b, 0xa3, 0x78, + 0x6b, 0xbf, 0xdc, 0xc5, 0x69, 0xe4, 0x6d, 0xb6, 0xd9, 0x7d, 0x86, 0xce, 0x4b, 0x85, 0xb7, 0x8c, + 0x72, 0x6f, 0x2f, 0xf6, 0x1e, 0x87, 0x5e, 0x21, 0xbe, 0xf8, 0x55, 0x03, 0x6f, 0x3e, 0x38, 0x03, + 0x79, 0xd0, 0x8f, 0x9d, 0x9c, 0xae, 0x1f, 0x56, 0x17, 0xdf, 0x6b, 0xa0, 0xff, 0x57, 0x16, 0xb5, + 0x41, 0x63, 0xc6, 0xb5, 0xa4, 0x3e, 0x1b, 0x33, 0x4a, 0xe0, 0x0b, 0xd4, 0x00, 0x27, 0x33, 0x3e, + 0xe1, 0xe2, 0x9a, 0xc3, 0x8a, 0x63, 0xa5, 0x12, 0x92, 0x2a, 0x33, 0xb7, 0x8c, 0xc0, 0x2a, 0xea, + 0x80, 0xd6, 0x1e, 0xe0, 0x78, 0x4a, 0x61, 0x0d, 0xf5, 0x00, 0x24, 0x54, 0x1b, 0xc6, 0xb1, 0x61, + 0x82, 0x97, 0xe8, 0x4b, 0xa7, 0x24, 0x54, 0xfb, 0x8a, 0x49, 0x87, 0xc2, 0x23, 0xe7, 0x8b, 0x09, + 0x51, 0x54, 0x6b, 0x78, 0x8c, 0xea, 0xe0, 0x48, 0x2a, 0xe6, 0x53, 0x78, 0x82, 0xba, 0xa0, 0x3d, + 0x16, 0x6a, 0x8a, 0x8d, 0xa1, 0xc4, 0x96, 0xe0, 0x29, 0x3a, 0x03, 0x40, 0xe3, 0x90, 0x3e, 0x9d, + 0xeb, 0xe8, 0x35, 0xe8, 0x1d, 0x2e, 0x3d, 0x63, 0x00, 0x6a, 0x81, 0x3a, 0x9b, 0xe2, 0x80, 0xda, + 0x99, 0x0a, 0x61, 0x03, 0x35, 0xc1, 0xa9, 0x8f, 0x0d, 0x0d, 0x84, 0x9a, 0xc3, 0xa6, 0x7b, 0x84, + 0x36, 0x58, 0x59, 0x85, 0x0d, 0xe3, 0x01, 0x6c, 0xa1, 0x57, 0xa0, 0xeb, 0x0b, 0x6e, 0xe8, 0x47, + 0x33, 0xc3, 0xa1, 0x9d, 0xd0, 0xf9, 0xb5, 0x50, 0x44, 0xc3, 0x33, 0xd7, 0x70, 0xcc, 0x38, 0x0e, + 0x9d, 0x8d, 0x86, 0x6d, 0xd4, 0x07, 0x9d, 0xf2, 0x3c, 0x15, 0x23, 0x16, 0xd2, 0x12, 0x86, 0x08, + 0x82, 0xa6, 0x51, 0xd8, 0x9f, 0x30, 0x1e, 0x14, 0x0d, 0x3b, 0xee, 0xef, 0x31, 0x27, 0x4a, 0x30, + 0x62, 0xb1, 0x94, 0x36, 0x64, 0x7c, 0x02, 0x91, 0x7b, 0xaf, 0x66, 0x53, 0x16, 0x62, 0x65, 0x9f, + 0xcd, 0x4f, 0xc3, 0xae, 0x73, 0x60, 0x42, 0x1f, 0xee, 0xf6, 0x9c, 0xc3, 0x0e, 0xd1, 0x46, 0x28, + 0xea, 0x06, 0xdd, 0x1f, 0xfd, 0xac, 0x80, 0x77, 0x37, 0xd9, 0xca, 0xfb, 0xef, 0xd6, 0x47, 0x6f, + 0x8b, 0xa5, 0xe6, 0x7f, 0x6e, 0x55, 0xba, 0xc4, 0xc8, 0xca, 0xa7, 0xd1, 0x93, 0x3a, 0xc9, 0xd2, + 0xe5, 0x3a, 0xf1, 0xb2, 0x6d, 0x32, 0x48, 0xe2, 0x75, 0x91, 0xa7, 0x5d, 0x00, 0x37, 0x77, 0xf9, + 0x3f, 0xf2, 0x78, 0x59, 0x7c, 0xbf, 0x56, 0x6b, 0x01, 0xc6, 0xdf, 0xaa, 0xe7, 0x41, 0x69, 0x85, + 0xa3, 0xdc, 0x2b, 0x4b, 0x57, 0x5d, 0x0d, 0x3d, 0x97, 0xaf, 0xfc, 0xc7, 0x8e, 0x5f, 0xe0, 0x28, + 0x5f, 0xec, 0xf9, 0xc5, 0xd5, 0x70, 0x51, 0xf0, 0x9f, 0x8f, 0x8b, 0xa6, 0xef, 0x7f, 0x07, 0x00, + 0x00, 0xff, 0xff, 0x43, 0x1f, 0x90, 0xbe, 0x03, 0x03, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/income_range_type.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/income_range_type.pb.go new file mode 100644 index 000000000..0a8b70acd --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/income_range_type.pb.go @@ -0,0 +1,139 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/income_range_type.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// The type of demographic income ranges (e.g. between 0% to 50%). +type IncomeRangeTypeEnum_IncomeRangeType int32 + +const ( + // Not specified. + IncomeRangeTypeEnum_UNSPECIFIED IncomeRangeTypeEnum_IncomeRangeType = 0 + // Used for return value only. Represents value unknown in this version. + IncomeRangeTypeEnum_UNKNOWN IncomeRangeTypeEnum_IncomeRangeType = 1 + // 0%-50%. + IncomeRangeTypeEnum_INCOME_RANGE_0_50 IncomeRangeTypeEnum_IncomeRangeType = 510001 + // 50% to 60%. + IncomeRangeTypeEnum_INCOME_RANGE_50_60 IncomeRangeTypeEnum_IncomeRangeType = 510002 + // 60% to 70%. + IncomeRangeTypeEnum_INCOME_RANGE_60_70 IncomeRangeTypeEnum_IncomeRangeType = 510003 + // 70% to 80%. + IncomeRangeTypeEnum_INCOME_RANGE_70_80 IncomeRangeTypeEnum_IncomeRangeType = 510004 + // 80% to 90%. + IncomeRangeTypeEnum_INCOME_RANGE_80_90 IncomeRangeTypeEnum_IncomeRangeType = 510005 + // Greater than 90%. + IncomeRangeTypeEnum_INCOME_RANGE_90_UP IncomeRangeTypeEnum_IncomeRangeType = 510006 + // Undetermined income range. + IncomeRangeTypeEnum_INCOME_RANGE_UNDETERMINED IncomeRangeTypeEnum_IncomeRangeType = 510000 +) + +var IncomeRangeTypeEnum_IncomeRangeType_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 510001: "INCOME_RANGE_0_50", + 510002: "INCOME_RANGE_50_60", + 510003: "INCOME_RANGE_60_70", + 510004: "INCOME_RANGE_70_80", + 510005: "INCOME_RANGE_80_90", + 510006: "INCOME_RANGE_90_UP", + 510000: "INCOME_RANGE_UNDETERMINED", +} +var IncomeRangeTypeEnum_IncomeRangeType_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "INCOME_RANGE_0_50": 510001, + "INCOME_RANGE_50_60": 510002, + "INCOME_RANGE_60_70": 510003, + "INCOME_RANGE_70_80": 510004, + "INCOME_RANGE_80_90": 510005, + "INCOME_RANGE_90_UP": 510006, + "INCOME_RANGE_UNDETERMINED": 510000, +} + +func (x IncomeRangeTypeEnum_IncomeRangeType) String() string { + return proto.EnumName(IncomeRangeTypeEnum_IncomeRangeType_name, int32(x)) +} +func (IncomeRangeTypeEnum_IncomeRangeType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_income_range_type_7650859890133832, []int{0, 0} +} + +// Container for enum describing the type of demographic income ranges. +type IncomeRangeTypeEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *IncomeRangeTypeEnum) Reset() { *m = IncomeRangeTypeEnum{} } +func (m *IncomeRangeTypeEnum) String() string { return proto.CompactTextString(m) } +func (*IncomeRangeTypeEnum) ProtoMessage() {} +func (*IncomeRangeTypeEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_income_range_type_7650859890133832, []int{0} +} +func (m *IncomeRangeTypeEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_IncomeRangeTypeEnum.Unmarshal(m, b) +} +func (m *IncomeRangeTypeEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_IncomeRangeTypeEnum.Marshal(b, m, deterministic) +} +func (dst *IncomeRangeTypeEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_IncomeRangeTypeEnum.Merge(dst, src) +} +func (m *IncomeRangeTypeEnum) XXX_Size() int { + return xxx_messageInfo_IncomeRangeTypeEnum.Size(m) +} +func (m *IncomeRangeTypeEnum) XXX_DiscardUnknown() { + xxx_messageInfo_IncomeRangeTypeEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_IncomeRangeTypeEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*IncomeRangeTypeEnum)(nil), "google.ads.googleads.v0.enums.IncomeRangeTypeEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.IncomeRangeTypeEnum_IncomeRangeType", IncomeRangeTypeEnum_IncomeRangeType_name, IncomeRangeTypeEnum_IncomeRangeType_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/income_range_type.proto", fileDescriptor_income_range_type_7650859890133832) +} + +var fileDescriptor_income_range_type_7650859890133832 = []byte{ + // 344 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x91, 0x4d, 0x4a, 0xc3, 0x40, + 0x1c, 0xc5, 0x4d, 0x05, 0x85, 0xe9, 0xa2, 0x63, 0x14, 0xd4, 0x45, 0x09, 0xf6, 0x00, 0x93, 0x3f, + 0x48, 0xbf, 0x70, 0x95, 0xb6, 0x63, 0x09, 0xd2, 0x69, 0xa8, 0x4d, 0x05, 0x09, 0x0c, 0xb1, 0x09, + 0xa1, 0xd0, 0x64, 0x42, 0xd3, 0x16, 0xba, 0xf6, 0x02, 0x3d, 0x83, 0x4b, 0x57, 0x7e, 0xdf, 0xc0, + 0x8d, 0x57, 0xf1, 0x12, 0x92, 0xc4, 0x16, 0x5a, 0xa2, 0x9b, 0xf0, 0xc8, 0x6f, 0x7e, 0x33, 0xf0, + 0x1e, 0x2a, 0x7b, 0x42, 0x78, 0x63, 0x57, 0xb5, 0x9d, 0x48, 0x4d, 0x63, 0x9c, 0xe6, 0xa0, 0xba, + 0xc1, 0xcc, 0x8f, 0xd4, 0x51, 0x30, 0x14, 0xbe, 0xcb, 0x27, 0x76, 0xe0, 0xb9, 0x7c, 0xba, 0x08, + 0x5d, 0x12, 0x4e, 0xc4, 0x54, 0xc8, 0xc5, 0xf4, 0x2c, 0xb1, 0x9d, 0x88, 0xac, 0x35, 0x32, 0x07, + 0x92, 0x68, 0xa5, 0xfb, 0x1c, 0x3a, 0xd4, 0x13, 0xb5, 0x17, 0x9b, 0xfd, 0x45, 0xe8, 0xd2, 0x60, + 0xe6, 0x97, 0xbe, 0x25, 0x54, 0xd8, 0xfa, 0x2f, 0x17, 0x50, 0xde, 0x64, 0xd7, 0x06, 0x6d, 0xea, + 0x97, 0x3a, 0x6d, 0xe1, 0x1d, 0x39, 0x8f, 0xf6, 0x4d, 0x76, 0xc5, 0xba, 0x37, 0x0c, 0x4b, 0xf2, + 0x31, 0x3a, 0xd0, 0x59, 0xb3, 0xdb, 0xa1, 0xbc, 0xa7, 0xb1, 0x36, 0xe5, 0xc0, 0xcb, 0x80, 0x9f, + 0x97, 0x8a, 0x7c, 0x82, 0xe4, 0x0d, 0x50, 0x06, 0x5e, 0x01, 0xfc, 0x92, 0x41, 0x2a, 0xc0, 0xab, + 0x80, 0x5f, 0x33, 0x48, 0x15, 0x78, 0x0d, 0xf0, 0x5b, 0x06, 0xa9, 0x01, 0xaf, 0x03, 0x7e, 0xcf, + 0x20, 0x75, 0xe0, 0xa6, 0x81, 0x3f, 0x96, 0x8a, 0xac, 0xa0, 0xd3, 0x0d, 0x62, 0xb2, 0x16, 0xed, + 0xd3, 0x5e, 0x47, 0x67, 0xb4, 0x85, 0x9f, 0x96, 0x4a, 0xe3, 0x53, 0x42, 0x67, 0x43, 0xe1, 0x93, + 0x7f, 0xbb, 0x6a, 0x1c, 0x6d, 0x15, 0x62, 0xc4, 0x05, 0x1b, 0xd2, 0x6d, 0xe3, 0x57, 0xf3, 0xc4, + 0xd8, 0x0e, 0x3c, 0x22, 0x26, 0x9e, 0xea, 0xb9, 0x41, 0x52, 0xff, 0x6a, 0xa9, 0x70, 0x14, 0xfd, + 0x31, 0xdc, 0x45, 0xf2, 0x7d, 0xc8, 0xed, 0xb6, 0x35, 0xed, 0x31, 0x57, 0x6c, 0xa7, 0x57, 0x69, + 0x4e, 0x44, 0xd2, 0x18, 0xa7, 0x01, 0x90, 0x78, 0x94, 0xe8, 0x6b, 0xc5, 0x2d, 0xcd, 0x89, 0xac, + 0x35, 0xb7, 0x06, 0x60, 0x25, 0xfc, 0x6e, 0x2f, 0x79, 0xf4, 0xfc, 0x27, 0x00, 0x00, 0xff, 0xff, + 0x7c, 0x81, 0x86, 0x1b, 0x2c, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/interaction_type.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/interaction_type.pb.go new file mode 100644 index 000000000..91c7d776e --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/interaction_type.pb.go @@ -0,0 +1,109 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/interaction_type.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible interaction types. +type InteractionTypeEnum_InteractionType int32 + +const ( + // Not specified. + InteractionTypeEnum_UNSPECIFIED InteractionTypeEnum_InteractionType = 0 + // Used for return value only. Represents value unknown in this version. + InteractionTypeEnum_UNKNOWN InteractionTypeEnum_InteractionType = 1 + // Calls. + InteractionTypeEnum_CALLS InteractionTypeEnum_InteractionType = 8000 +) + +var InteractionTypeEnum_InteractionType_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 8000: "CALLS", +} +var InteractionTypeEnum_InteractionType_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "CALLS": 8000, +} + +func (x InteractionTypeEnum_InteractionType) String() string { + return proto.EnumName(InteractionTypeEnum_InteractionType_name, int32(x)) +} +func (InteractionTypeEnum_InteractionType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_interaction_type_e3686e1d7e48d812, []int{0, 0} +} + +// Container for enum describing possible interaction types. +type InteractionTypeEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *InteractionTypeEnum) Reset() { *m = InteractionTypeEnum{} } +func (m *InteractionTypeEnum) String() string { return proto.CompactTextString(m) } +func (*InteractionTypeEnum) ProtoMessage() {} +func (*InteractionTypeEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_interaction_type_e3686e1d7e48d812, []int{0} +} +func (m *InteractionTypeEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_InteractionTypeEnum.Unmarshal(m, b) +} +func (m *InteractionTypeEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_InteractionTypeEnum.Marshal(b, m, deterministic) +} +func (dst *InteractionTypeEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_InteractionTypeEnum.Merge(dst, src) +} +func (m *InteractionTypeEnum) XXX_Size() int { + return xxx_messageInfo_InteractionTypeEnum.Size(m) +} +func (m *InteractionTypeEnum) XXX_DiscardUnknown() { + xxx_messageInfo_InteractionTypeEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_InteractionTypeEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*InteractionTypeEnum)(nil), "google.ads.googleads.v0.enums.InteractionTypeEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.InteractionTypeEnum_InteractionType", InteractionTypeEnum_InteractionType_name, InteractionTypeEnum_InteractionType_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/interaction_type.proto", fileDescriptor_interaction_type_e3686e1d7e48d812) +} + +var fileDescriptor_interaction_type_e3686e1d7e48d812 = []byte{ + // 250 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x32, 0x49, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xbc, + 0xd2, 0xdc, 0x62, 0xfd, 0xcc, 0xbc, 0x92, 0xd4, 0xa2, 0xc4, 0xe4, 0x92, 0xcc, 0xfc, 0xbc, 0xf8, + 0x92, 0xca, 0x82, 0x54, 0xbd, 0x82, 0xa2, 0xfc, 0x92, 0x7c, 0x21, 0x59, 0x88, 0x52, 0xbd, 0xc4, + 0x94, 0x62, 0x3d, 0xb8, 0x2e, 0xbd, 0x32, 0x03, 0x3d, 0xb0, 0x2e, 0xa5, 0x20, 0x2e, 0x61, 0x4f, + 0x84, 0xc6, 0x90, 0xca, 0x82, 0x54, 0xd7, 0xbc, 0xd2, 0x5c, 0x25, 0x6b, 0x2e, 0x7e, 0x34, 0x61, + 0x21, 0x7e, 0x2e, 0xee, 0x50, 0xbf, 0xe0, 0x00, 0x57, 0x67, 0x4f, 0x37, 0x4f, 0x57, 0x17, 0x01, + 0x06, 0x21, 0x6e, 0x2e, 0xf6, 0x50, 0x3f, 0x6f, 0x3f, 0xff, 0x70, 0x3f, 0x01, 0x46, 0x21, 0x2e, + 0x2e, 0x56, 0x67, 0x47, 0x1f, 0x9f, 0x60, 0x81, 0x03, 0x76, 0x4e, 0x47, 0x19, 0xb9, 0x14, 0x93, + 0xf3, 0x73, 0xf5, 0xf0, 0xda, 0xec, 0x24, 0x82, 0x66, 0x41, 0x00, 0xc8, 0xb9, 0x01, 0x8c, 0x51, + 0x4e, 0x50, 0x6d, 0xe9, 0xf9, 0x39, 0x89, 0x79, 0xe9, 0x7a, 0xf9, 0x45, 0xe9, 0xfa, 0xe9, 0xa9, + 0x79, 0x60, 0xcf, 0xc0, 0xbc, 0x5d, 0x90, 0x59, 0x8c, 0x23, 0x14, 0xac, 0xc1, 0xe4, 0x22, 0x26, + 0x66, 0x77, 0x47, 0xc7, 0x55, 0x4c, 0xb2, 0xee, 0x10, 0xa3, 0x1c, 0x53, 0x8a, 0xf5, 0x20, 0x4c, + 0x10, 0x2b, 0xcc, 0x40, 0x0f, 0xe4, 0xc7, 0xe2, 0x53, 0x30, 0xf9, 0x18, 0xc7, 0x94, 0xe2, 0x18, + 0xb8, 0x7c, 0x4c, 0x98, 0x41, 0x0c, 0x58, 0x3e, 0x89, 0x0d, 0x6c, 0xa9, 0x31, 0x20, 0x00, 0x00, + 0xff, 0xff, 0x9e, 0x4d, 0x5b, 0x36, 0x79, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/job_placeholder_field.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/job_placeholder_field.pb.go new file mode 100644 index 000000000..ad617b8d0 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/job_placeholder_field.pb.go @@ -0,0 +1,206 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/job_placeholder_field.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Possible values for Job placeholder fields. +type JobPlaceholderFieldEnum_JobPlaceholderField int32 + +const ( + // Not specified. + JobPlaceholderFieldEnum_UNSPECIFIED JobPlaceholderFieldEnum_JobPlaceholderField = 0 + // Used for return value only. Represents value unknown in this version. + JobPlaceholderFieldEnum_UNKNOWN JobPlaceholderFieldEnum_JobPlaceholderField = 1 + // Data Type: STRING. Required. If only JOB_ID is specified, then it must be + // unique. If both JOB_ID and LOCATION_ID are specified, then the + // pair must be unique. + // ID) pair must be unique. + JobPlaceholderFieldEnum_JOB_ID JobPlaceholderFieldEnum_JobPlaceholderField = 2 + // Data Type: STRING. Combination of JOB_ID and LOCATION_ID must be unique + // per offer. + JobPlaceholderFieldEnum_LOCATION_ID JobPlaceholderFieldEnum_JobPlaceholderField = 3 + // Data Type: STRING. Required. Main headline with job title to be shown in + // dynamic ad. + JobPlaceholderFieldEnum_TITLE JobPlaceholderFieldEnum_JobPlaceholderField = 4 + // Data Type: STRING. Job subtitle to be shown in dynamic ad. + JobPlaceholderFieldEnum_SUBTITLE JobPlaceholderFieldEnum_JobPlaceholderField = 5 + // Data Type: STRING. Description of job to be shown in dynamic ad. + JobPlaceholderFieldEnum_DESCRIPTION JobPlaceholderFieldEnum_JobPlaceholderField = 6 + // Data Type: URL. Image to be displayed in the ad. Highly recommended for + // image ads. + JobPlaceholderFieldEnum_IMAGE_URL JobPlaceholderFieldEnum_JobPlaceholderField = 7 + // Data Type: STRING. Category of property used to group like items together + // for recommendation engine. + JobPlaceholderFieldEnum_CATEGORY JobPlaceholderFieldEnum_JobPlaceholderField = 8 + // Data Type: STRING_LIST. Keywords used for product retrieval. + JobPlaceholderFieldEnum_CONTEXTUAL_KEYWORDS JobPlaceholderFieldEnum_JobPlaceholderField = 9 + // Data Type: STRING. Complete property address, including postal code. + JobPlaceholderFieldEnum_ADDRESS JobPlaceholderFieldEnum_JobPlaceholderField = 10 + // Data Type: STRING. Salary or salary range of job to be shown in dynamic + // ad. + JobPlaceholderFieldEnum_SALARY JobPlaceholderFieldEnum_JobPlaceholderField = 11 + // Data Type: URL_LIST. Required. Final URLs to be used in ad when using + // Upgraded URLs; the more specific the better (e.g. the individual URL of a + // specific job and its location). + JobPlaceholderFieldEnum_FINAL_URLS JobPlaceholderFieldEnum_JobPlaceholderField = 12 + // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded + // URLs. + JobPlaceholderFieldEnum_FINAL_MOBILE_URLS JobPlaceholderFieldEnum_JobPlaceholderField = 14 + // Data Type: URL. Tracking template for the ad when using Upgraded URLs. + JobPlaceholderFieldEnum_TRACKING_URL JobPlaceholderFieldEnum_JobPlaceholderField = 15 + // Data Type: STRING. Android app link. Must be formatted as: + // android-app://{package_id}/{scheme}/{host_path}. + // The components are defined as follows: + // package_id: app ID as specified in Google Play. + // scheme: the scheme to pass to the application. Can be HTTP, or a custom + // scheme. + // host_path: identifies the specific content within your application. + JobPlaceholderFieldEnum_ANDROID_APP_LINK JobPlaceholderFieldEnum_JobPlaceholderField = 16 + // Data Type: STRING_LIST. List of recommended job IDs to show together with + // this item. + JobPlaceholderFieldEnum_SIMILAR_JOB_IDS JobPlaceholderFieldEnum_JobPlaceholderField = 17 + // Data Type: STRING. iOS app link. + JobPlaceholderFieldEnum_IOS_APP_LINK JobPlaceholderFieldEnum_JobPlaceholderField = 18 + // Data Type: INT64. iOS app store ID. + JobPlaceholderFieldEnum_IOS_APP_STORE_ID JobPlaceholderFieldEnum_JobPlaceholderField = 19 +) + +var JobPlaceholderFieldEnum_JobPlaceholderField_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "JOB_ID", + 3: "LOCATION_ID", + 4: "TITLE", + 5: "SUBTITLE", + 6: "DESCRIPTION", + 7: "IMAGE_URL", + 8: "CATEGORY", + 9: "CONTEXTUAL_KEYWORDS", + 10: "ADDRESS", + 11: "SALARY", + 12: "FINAL_URLS", + 14: "FINAL_MOBILE_URLS", + 15: "TRACKING_URL", + 16: "ANDROID_APP_LINK", + 17: "SIMILAR_JOB_IDS", + 18: "IOS_APP_LINK", + 19: "IOS_APP_STORE_ID", +} +var JobPlaceholderFieldEnum_JobPlaceholderField_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "JOB_ID": 2, + "LOCATION_ID": 3, + "TITLE": 4, + "SUBTITLE": 5, + "DESCRIPTION": 6, + "IMAGE_URL": 7, + "CATEGORY": 8, + "CONTEXTUAL_KEYWORDS": 9, + "ADDRESS": 10, + "SALARY": 11, + "FINAL_URLS": 12, + "FINAL_MOBILE_URLS": 14, + "TRACKING_URL": 15, + "ANDROID_APP_LINK": 16, + "SIMILAR_JOB_IDS": 17, + "IOS_APP_LINK": 18, + "IOS_APP_STORE_ID": 19, +} + +func (x JobPlaceholderFieldEnum_JobPlaceholderField) String() string { + return proto.EnumName(JobPlaceholderFieldEnum_JobPlaceholderField_name, int32(x)) +} +func (JobPlaceholderFieldEnum_JobPlaceholderField) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_job_placeholder_field_11ce2f9d6d7c7d9d, []int{0, 0} +} + +// Values for Job placeholder fields. +// For more information about dynamic remarketing feeds, see +// https://support.google.com/google-ads/answer/6053288. +type JobPlaceholderFieldEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *JobPlaceholderFieldEnum) Reset() { *m = JobPlaceholderFieldEnum{} } +func (m *JobPlaceholderFieldEnum) String() string { return proto.CompactTextString(m) } +func (*JobPlaceholderFieldEnum) ProtoMessage() {} +func (*JobPlaceholderFieldEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_job_placeholder_field_11ce2f9d6d7c7d9d, []int{0} +} +func (m *JobPlaceholderFieldEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_JobPlaceholderFieldEnum.Unmarshal(m, b) +} +func (m *JobPlaceholderFieldEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_JobPlaceholderFieldEnum.Marshal(b, m, deterministic) +} +func (dst *JobPlaceholderFieldEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_JobPlaceholderFieldEnum.Merge(dst, src) +} +func (m *JobPlaceholderFieldEnum) XXX_Size() int { + return xxx_messageInfo_JobPlaceholderFieldEnum.Size(m) +} +func (m *JobPlaceholderFieldEnum) XXX_DiscardUnknown() { + xxx_messageInfo_JobPlaceholderFieldEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_JobPlaceholderFieldEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*JobPlaceholderFieldEnum)(nil), "google.ads.googleads.v0.enums.JobPlaceholderFieldEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.JobPlaceholderFieldEnum_JobPlaceholderField", JobPlaceholderFieldEnum_JobPlaceholderField_name, JobPlaceholderFieldEnum_JobPlaceholderField_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/job_placeholder_field.proto", fileDescriptor_job_placeholder_field_11ce2f9d6d7c7d9d) +} + +var fileDescriptor_job_placeholder_field_11ce2f9d6d7c7d9d = []byte{ + // 454 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x52, 0xc1, 0x6e, 0xd3, 0x40, + 0x10, 0xa5, 0x2e, 0x4d, 0x9b, 0x49, 0x68, 0xb6, 0x1b, 0x50, 0xc5, 0xa1, 0x07, 0xfa, 0x01, 0x76, + 0x24, 0x4e, 0x88, 0xd3, 0xda, 0xde, 0x58, 0x9b, 0x6c, 0x76, 0xad, 0x5d, 0xbb, 0x25, 0x28, 0x92, + 0x95, 0xd4, 0xc6, 0x14, 0x39, 0xd9, 0x28, 0xa6, 0xfd, 0x20, 0x8e, 0x7c, 0x4a, 0xef, 0x7c, 0x08, + 0x7f, 0x80, 0xd6, 0x26, 0xad, 0x84, 0x80, 0x8b, 0xf5, 0x76, 0xde, 0x7b, 0x33, 0xe3, 0x99, 0x81, + 0x77, 0xa5, 0x31, 0x65, 0x55, 0x78, 0xcb, 0xbc, 0xf6, 0x5a, 0x68, 0xd1, 0xfd, 0xc8, 0x2b, 0x36, + 0x77, 0xeb, 0xda, 0xfb, 0x62, 0x56, 0xd9, 0xb6, 0x5a, 0xde, 0x14, 0x9f, 0x4d, 0x95, 0x17, 0xbb, + 0xec, 0xd3, 0x6d, 0x51, 0xe5, 0xee, 0x76, 0x67, 0xbe, 0x1a, 0x7c, 0xd1, 0xea, 0xdd, 0x65, 0x5e, + 0xbb, 0x8f, 0x56, 0xf7, 0x7e, 0xe4, 0x36, 0xd6, 0xcb, 0x9f, 0x0e, 0x9c, 0x4f, 0xcc, 0x2a, 0x7e, + 0x72, 0x8f, 0xad, 0x99, 0x6e, 0xee, 0xd6, 0x97, 0x3f, 0x1c, 0x18, 0xfe, 0x85, 0xc3, 0x03, 0xe8, + 0xa5, 0x42, 0xc7, 0x34, 0x60, 0x63, 0x46, 0x43, 0xf4, 0x0c, 0xf7, 0xe0, 0x38, 0x15, 0x53, 0x21, + 0xaf, 0x05, 0x3a, 0xc0, 0x00, 0x9d, 0x89, 0xf4, 0x33, 0x16, 0x22, 0xc7, 0x2a, 0xb9, 0x0c, 0x48, + 0xc2, 0xa4, 0xb0, 0x81, 0x43, 0xdc, 0x85, 0xa3, 0x84, 0x25, 0x9c, 0xa2, 0xe7, 0xb8, 0x0f, 0x27, + 0x3a, 0xf5, 0xdb, 0xd7, 0x91, 0x55, 0x86, 0x54, 0x07, 0x8a, 0xc5, 0x56, 0x8c, 0x3a, 0xf8, 0x05, + 0x74, 0xd9, 0x8c, 0x44, 0x34, 0x4b, 0x15, 0x47, 0xc7, 0x56, 0x1d, 0x90, 0x84, 0x46, 0x52, 0xcd, + 0xd1, 0x09, 0x3e, 0x87, 0x61, 0x20, 0x45, 0x42, 0x3f, 0x24, 0x29, 0xe1, 0xd9, 0x94, 0xce, 0xaf, + 0xa5, 0x0a, 0x35, 0xea, 0xda, 0x4e, 0x48, 0x18, 0x2a, 0xaa, 0x35, 0x02, 0xdb, 0x89, 0x26, 0x9c, + 0xa8, 0x39, 0xea, 0xe1, 0x53, 0x80, 0x31, 0x13, 0x84, 0xdb, 0x74, 0x1a, 0xf5, 0xf1, 0x2b, 0x38, + 0x6b, 0xdf, 0x33, 0xe9, 0x33, 0x4e, 0xdb, 0xf0, 0x29, 0x46, 0xd0, 0x4f, 0x14, 0x09, 0xa6, 0x4c, + 0x44, 0x4d, 0xe1, 0x01, 0x7e, 0x09, 0x88, 0x88, 0x50, 0x49, 0x16, 0x66, 0x24, 0x8e, 0x33, 0xce, + 0xc4, 0x14, 0x21, 0x3c, 0x84, 0x81, 0x66, 0x33, 0xc6, 0x89, 0xca, 0xda, 0x9f, 0xd5, 0xe8, 0xcc, + 0x9a, 0x99, 0xd4, 0x4f, 0x32, 0x6c, 0xcd, 0xfb, 0x88, 0x4e, 0xa4, 0xa2, 0x76, 0x08, 0x43, 0xff, + 0xe1, 0x00, 0xde, 0xdc, 0x98, 0xb5, 0xfb, 0xdf, 0xcd, 0xf8, 0xaf, 0x27, 0x66, 0x55, 0xff, 0x39, + 0xfb, 0xd8, 0xee, 0x34, 0x3e, 0xf8, 0xe8, 0xff, 0xf6, 0x96, 0xa6, 0x5a, 0x6e, 0x4a, 0xd7, 0xec, + 0x4a, 0xaf, 0x2c, 0x36, 0xcd, 0xc6, 0xf7, 0x07, 0xb2, 0xbd, 0xad, 0xff, 0x71, 0x2f, 0xef, 0x9b, + 0xef, 0x37, 0xe7, 0x30, 0x22, 0xe4, 0xbb, 0x73, 0x11, 0xb5, 0xa9, 0x48, 0x5e, 0xbb, 0x2d, 0xb4, + 0xe8, 0x6a, 0xe4, 0xda, 0x1b, 0xa8, 0x1f, 0xf6, 0xfc, 0x82, 0xe4, 0xf5, 0xe2, 0x91, 0x5f, 0x5c, + 0x8d, 0x16, 0x0d, 0xbf, 0xea, 0x34, 0x45, 0xdf, 0xfe, 0x0a, 0x00, 0x00, 0xff, 0xff, 0x41, 0xa3, + 0x7b, 0x35, 0xa3, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/keyword_match_type.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/keyword_match_type.pb.go new file mode 100644 index 000000000..a67176f2f --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/keyword_match_type.pb.go @@ -0,0 +1,119 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/keyword_match_type.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Possible Keyword match types. +type KeywordMatchTypeEnum_KeywordMatchType int32 + +const ( + // Not specified. + KeywordMatchTypeEnum_UNSPECIFIED KeywordMatchTypeEnum_KeywordMatchType = 0 + // Used for return value only. Represents value unknown in this version. + KeywordMatchTypeEnum_UNKNOWN KeywordMatchTypeEnum_KeywordMatchType = 1 + // Exact match. + KeywordMatchTypeEnum_EXACT KeywordMatchTypeEnum_KeywordMatchType = 2 + // Phrase match. + KeywordMatchTypeEnum_PHRASE KeywordMatchTypeEnum_KeywordMatchType = 3 + // Broad match. + KeywordMatchTypeEnum_BROAD KeywordMatchTypeEnum_KeywordMatchType = 4 +) + +var KeywordMatchTypeEnum_KeywordMatchType_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "EXACT", + 3: "PHRASE", + 4: "BROAD", +} +var KeywordMatchTypeEnum_KeywordMatchType_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "EXACT": 2, + "PHRASE": 3, + "BROAD": 4, +} + +func (x KeywordMatchTypeEnum_KeywordMatchType) String() string { + return proto.EnumName(KeywordMatchTypeEnum_KeywordMatchType_name, int32(x)) +} +func (KeywordMatchTypeEnum_KeywordMatchType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_keyword_match_type_ee22d7efa4d15984, []int{0, 0} +} + +// Message describing Keyword match types. +type KeywordMatchTypeEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *KeywordMatchTypeEnum) Reset() { *m = KeywordMatchTypeEnum{} } +func (m *KeywordMatchTypeEnum) String() string { return proto.CompactTextString(m) } +func (*KeywordMatchTypeEnum) ProtoMessage() {} +func (*KeywordMatchTypeEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_match_type_ee22d7efa4d15984, []int{0} +} +func (m *KeywordMatchTypeEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_KeywordMatchTypeEnum.Unmarshal(m, b) +} +func (m *KeywordMatchTypeEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_KeywordMatchTypeEnum.Marshal(b, m, deterministic) +} +func (dst *KeywordMatchTypeEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_KeywordMatchTypeEnum.Merge(dst, src) +} +func (m *KeywordMatchTypeEnum) XXX_Size() int { + return xxx_messageInfo_KeywordMatchTypeEnum.Size(m) +} +func (m *KeywordMatchTypeEnum) XXX_DiscardUnknown() { + xxx_messageInfo_KeywordMatchTypeEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_KeywordMatchTypeEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*KeywordMatchTypeEnum)(nil), "google.ads.googleads.v0.enums.KeywordMatchTypeEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.KeywordMatchTypeEnum_KeywordMatchType", KeywordMatchTypeEnum_KeywordMatchType_name, KeywordMatchTypeEnum_KeywordMatchType_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/keyword_match_type.proto", fileDescriptor_keyword_match_type_ee22d7efa4d15984) +} + +var fileDescriptor_keyword_match_type_ee22d7efa4d15984 = []byte{ + // 275 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x32, 0x4b, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xbc, + 0xd2, 0xdc, 0x62, 0xfd, 0xec, 0xd4, 0xca, 0xf2, 0xfc, 0xa2, 0x94, 0xf8, 0xdc, 0xc4, 0x92, 0xe4, + 0x8c, 0xf8, 0x92, 0xca, 0x82, 0x54, 0xbd, 0x82, 0xa2, 0xfc, 0x92, 0x7c, 0x21, 0x59, 0x88, 0x62, + 0xbd, 0xc4, 0x94, 0x62, 0x3d, 0xb8, 0x3e, 0xbd, 0x32, 0x03, 0x3d, 0xb0, 0x3e, 0xa5, 0x2c, 0x2e, + 0x11, 0x6f, 0x88, 0x56, 0x5f, 0x90, 0xce, 0x90, 0xca, 0x82, 0x54, 0xd7, 0xbc, 0xd2, 0x5c, 0xa5, + 0x20, 0x2e, 0x01, 0x74, 0x71, 0x21, 0x7e, 0x2e, 0xee, 0x50, 0xbf, 0xe0, 0x00, 0x57, 0x67, 0x4f, + 0x37, 0x4f, 0x57, 0x17, 0x01, 0x06, 0x21, 0x6e, 0x2e, 0xf6, 0x50, 0x3f, 0x6f, 0x3f, 0xff, 0x70, + 0x3f, 0x01, 0x46, 0x21, 0x4e, 0x2e, 0x56, 0xd7, 0x08, 0x47, 0xe7, 0x10, 0x01, 0x26, 0x21, 0x2e, + 0x2e, 0xb6, 0x00, 0x8f, 0x20, 0xc7, 0x60, 0x57, 0x01, 0x66, 0x90, 0xb0, 0x53, 0x90, 0xbf, 0xa3, + 0x8b, 0x00, 0x8b, 0xd3, 0x31, 0x46, 0x2e, 0xc5, 0xe4, 0xfc, 0x5c, 0x3d, 0xbc, 0x2e, 0x72, 0x12, + 0x45, 0xb7, 0x37, 0x00, 0xe4, 0x8f, 0x00, 0xc6, 0x28, 0x27, 0xa8, 0xbe, 0xf4, 0xfc, 0x9c, 0xc4, + 0xbc, 0x74, 0xbd, 0xfc, 0xa2, 0x74, 0xfd, 0xf4, 0xd4, 0x3c, 0xb0, 0x2f, 0x61, 0x21, 0x52, 0x90, + 0x59, 0x8c, 0x23, 0x80, 0xac, 0xc1, 0xe4, 0x22, 0x26, 0x66, 0x77, 0x47, 0xc7, 0x55, 0x4c, 0xb2, + 0xee, 0x10, 0xa3, 0x1c, 0x53, 0x8a, 0xf5, 0x20, 0x4c, 0x10, 0x2b, 0xcc, 0x40, 0x0f, 0xe4, 0xf7, + 0xe2, 0x53, 0x30, 0xf9, 0x18, 0xc7, 0x94, 0xe2, 0x18, 0xb8, 0x7c, 0x4c, 0x98, 0x41, 0x0c, 0x58, + 0x3e, 0x89, 0x0d, 0x6c, 0xa9, 0x31, 0x20, 0x00, 0x00, 0xff, 0xff, 0x94, 0x89, 0x6e, 0x8a, 0x94, + 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/keyword_plan_competition_level.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/keyword_plan_competition_level.pb.go new file mode 100644 index 000000000..d3dd791c2 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/keyword_plan_competition_level.pb.go @@ -0,0 +1,124 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/keyword_plan_competition_level.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Competition level of a keyword. +type KeywordPlanCompetitionLevelEnum_KeywordPlanCompetitionLevel int32 + +const ( + // Not specified. + KeywordPlanCompetitionLevelEnum_UNSPECIFIED KeywordPlanCompetitionLevelEnum_KeywordPlanCompetitionLevel = 0 + // The value is unknown in this version. + KeywordPlanCompetitionLevelEnum_UNKNOWN KeywordPlanCompetitionLevelEnum_KeywordPlanCompetitionLevel = 1 + // Low competition. + KeywordPlanCompetitionLevelEnum_LOW KeywordPlanCompetitionLevelEnum_KeywordPlanCompetitionLevel = 2 + // Medium competition. + KeywordPlanCompetitionLevelEnum_MEDIUM KeywordPlanCompetitionLevelEnum_KeywordPlanCompetitionLevel = 3 + // High competition. + KeywordPlanCompetitionLevelEnum_HIGH KeywordPlanCompetitionLevelEnum_KeywordPlanCompetitionLevel = 4 +) + +var KeywordPlanCompetitionLevelEnum_KeywordPlanCompetitionLevel_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "LOW", + 3: "MEDIUM", + 4: "HIGH", +} +var KeywordPlanCompetitionLevelEnum_KeywordPlanCompetitionLevel_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "LOW": 2, + "MEDIUM": 3, + "HIGH": 4, +} + +func (x KeywordPlanCompetitionLevelEnum_KeywordPlanCompetitionLevel) String() string { + return proto.EnumName(KeywordPlanCompetitionLevelEnum_KeywordPlanCompetitionLevel_name, int32(x)) +} +func (KeywordPlanCompetitionLevelEnum_KeywordPlanCompetitionLevel) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_competition_level_253209b650169a13, []int{0, 0} +} + +// Container for enumeration of keyword competition levels. The competition +// level indicates how competitive ad placement is for a keyword and +// is determined by the number of advertisers bidding on that keyword relative +// to all keywords across Google. The competition level can depend on the +// location and Search Network targeting options you've selected. +type KeywordPlanCompetitionLevelEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *KeywordPlanCompetitionLevelEnum) Reset() { *m = KeywordPlanCompetitionLevelEnum{} } +func (m *KeywordPlanCompetitionLevelEnum) String() string { return proto.CompactTextString(m) } +func (*KeywordPlanCompetitionLevelEnum) ProtoMessage() {} +func (*KeywordPlanCompetitionLevelEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_competition_level_253209b650169a13, []int{0} +} +func (m *KeywordPlanCompetitionLevelEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_KeywordPlanCompetitionLevelEnum.Unmarshal(m, b) +} +func (m *KeywordPlanCompetitionLevelEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_KeywordPlanCompetitionLevelEnum.Marshal(b, m, deterministic) +} +func (dst *KeywordPlanCompetitionLevelEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_KeywordPlanCompetitionLevelEnum.Merge(dst, src) +} +func (m *KeywordPlanCompetitionLevelEnum) XXX_Size() int { + return xxx_messageInfo_KeywordPlanCompetitionLevelEnum.Size(m) +} +func (m *KeywordPlanCompetitionLevelEnum) XXX_DiscardUnknown() { + xxx_messageInfo_KeywordPlanCompetitionLevelEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_KeywordPlanCompetitionLevelEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*KeywordPlanCompetitionLevelEnum)(nil), "google.ads.googleads.v0.enums.KeywordPlanCompetitionLevelEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.KeywordPlanCompetitionLevelEnum_KeywordPlanCompetitionLevel", KeywordPlanCompetitionLevelEnum_KeywordPlanCompetitionLevel_name, KeywordPlanCompetitionLevelEnum_KeywordPlanCompetitionLevel_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/keyword_plan_competition_level.proto", fileDescriptor_keyword_plan_competition_level_253209b650169a13) +} + +var fileDescriptor_keyword_plan_competition_level_253209b650169a13 = []byte{ + // 291 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0xc1, 0x6a, 0x83, 0x30, + 0x18, 0xc7, 0xa7, 0x96, 0x76, 0xa4, 0x87, 0x49, 0xae, 0xa3, 0x6c, 0xeb, 0x03, 0x44, 0x61, 0xc7, + 0x9d, 0xb4, 0x75, 0x56, 0xda, 0x5a, 0x61, 0xd8, 0x42, 0x11, 0xc4, 0xd5, 0x10, 0x64, 0x31, 0x9f, + 0x18, 0xeb, 0xd8, 0x61, 0x2f, 0xb3, 0xe3, 0x1e, 0x65, 0xb7, 0xbd, 0xd1, 0x50, 0xd7, 0xee, 0x34, + 0x2f, 0xe1, 0x0f, 0xff, 0xe4, 0xf7, 0xe5, 0xfb, 0x21, 0x9b, 0x01, 0x30, 0x4e, 0x8d, 0x24, 0x95, + 0x46, 0x17, 0x9b, 0x54, 0x9b, 0x06, 0x15, 0xc7, 0x5c, 0x1a, 0x2f, 0xf4, 0xed, 0x15, 0xca, 0x34, + 0x2e, 0x78, 0x22, 0xe2, 0x03, 0xe4, 0x05, 0xad, 0xb2, 0x2a, 0x03, 0x11, 0x73, 0x5a, 0x53, 0x4e, + 0x8a, 0x12, 0x2a, 0xc0, 0x93, 0xee, 0x21, 0x49, 0x52, 0x49, 0xce, 0x0c, 0x52, 0x9b, 0xa4, 0x65, + 0x4c, 0xdf, 0xd1, 0xcd, 0xb2, 0xc3, 0x04, 0x3c, 0x11, 0xb3, 0x3f, 0xc8, 0xaa, 0x61, 0x38, 0xe2, + 0x98, 0x4f, 0xf7, 0xe8, 0xba, 0xe7, 0x0a, 0xbe, 0x42, 0xe3, 0xd0, 0x7f, 0x0a, 0x9c, 0x99, 0xf7, + 0xe8, 0x39, 0x73, 0xfd, 0x02, 0x8f, 0xd1, 0x28, 0xf4, 0x97, 0xfe, 0x66, 0xe7, 0xeb, 0x0a, 0x1e, + 0x21, 0x6d, 0xb5, 0xd9, 0xe9, 0x2a, 0x46, 0x68, 0xb8, 0x76, 0xe6, 0x5e, 0xb8, 0xd6, 0x35, 0x7c, + 0x89, 0x06, 0x0b, 0xcf, 0x5d, 0xe8, 0x03, 0xfb, 0x5b, 0x41, 0x77, 0x07, 0xc8, 0x49, 0xef, 0x27, + 0xed, 0xdb, 0x9e, 0xf9, 0x41, 0xb3, 0x65, 0xa0, 0xec, 0x7f, 0x5d, 0x11, 0x06, 0x3c, 0x11, 0x8c, + 0x40, 0xc9, 0x0c, 0x46, 0x45, 0xeb, 0xe0, 0xe4, 0xae, 0xc8, 0xe4, 0x3f, 0x2a, 0x1f, 0xda, 0xf3, + 0x43, 0xd5, 0x5c, 0xcb, 0xfa, 0x54, 0x27, 0x6e, 0x87, 0xb2, 0x52, 0x49, 0xba, 0xd8, 0xa4, 0xad, + 0x49, 0x1a, 0x1d, 0xf2, 0xeb, 0xd4, 0x47, 0x56, 0x2a, 0xa3, 0x73, 0x1f, 0x6d, 0xcd, 0xa8, 0xed, + 0x9f, 0x87, 0xed, 0xd0, 0xfb, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe1, 0x98, 0xeb, 0x0f, 0xbe, + 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/keyword_plan_forecast_interval.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/keyword_plan_forecast_interval.pb.go new file mode 100644 index 000000000..6b323ade5 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/keyword_plan_forecast_interval.pb.go @@ -0,0 +1,123 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/keyword_plan_forecast_interval.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Forecast intervals. +type KeywordPlanForecastIntervalEnum_KeywordPlanForecastInterval int32 + +const ( + // Not specified. + KeywordPlanForecastIntervalEnum_UNSPECIFIED KeywordPlanForecastIntervalEnum_KeywordPlanForecastInterval = 0 + // The value is unknown in this version. + KeywordPlanForecastIntervalEnum_UNKNOWN KeywordPlanForecastIntervalEnum_KeywordPlanForecastInterval = 1 + // The next week date range for keyword plan. The next week is based + // on the default locale of the user's account and is mostly SUN-SAT or + // MON-SUN. + // This can be different from next-7 days. + KeywordPlanForecastIntervalEnum_NEXT_WEEK KeywordPlanForecastIntervalEnum_KeywordPlanForecastInterval = 3 + // The next month date range for keyword plan. + KeywordPlanForecastIntervalEnum_NEXT_MONTH KeywordPlanForecastIntervalEnum_KeywordPlanForecastInterval = 4 + // The next quarter date range for keyword plan. + KeywordPlanForecastIntervalEnum_NEXT_QUARTER KeywordPlanForecastIntervalEnum_KeywordPlanForecastInterval = 5 +) + +var KeywordPlanForecastIntervalEnum_KeywordPlanForecastInterval_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 3: "NEXT_WEEK", + 4: "NEXT_MONTH", + 5: "NEXT_QUARTER", +} +var KeywordPlanForecastIntervalEnum_KeywordPlanForecastInterval_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "NEXT_WEEK": 3, + "NEXT_MONTH": 4, + "NEXT_QUARTER": 5, +} + +func (x KeywordPlanForecastIntervalEnum_KeywordPlanForecastInterval) String() string { + return proto.EnumName(KeywordPlanForecastIntervalEnum_KeywordPlanForecastInterval_name, int32(x)) +} +func (KeywordPlanForecastIntervalEnum_KeywordPlanForecastInterval) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_forecast_interval_48060c037199c7ef, []int{0, 0} +} + +// Container for enumeration of forecast intervals. +type KeywordPlanForecastIntervalEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *KeywordPlanForecastIntervalEnum) Reset() { *m = KeywordPlanForecastIntervalEnum{} } +func (m *KeywordPlanForecastIntervalEnum) String() string { return proto.CompactTextString(m) } +func (*KeywordPlanForecastIntervalEnum) ProtoMessage() {} +func (*KeywordPlanForecastIntervalEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_forecast_interval_48060c037199c7ef, []int{0} +} +func (m *KeywordPlanForecastIntervalEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_KeywordPlanForecastIntervalEnum.Unmarshal(m, b) +} +func (m *KeywordPlanForecastIntervalEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_KeywordPlanForecastIntervalEnum.Marshal(b, m, deterministic) +} +func (dst *KeywordPlanForecastIntervalEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_KeywordPlanForecastIntervalEnum.Merge(dst, src) +} +func (m *KeywordPlanForecastIntervalEnum) XXX_Size() int { + return xxx_messageInfo_KeywordPlanForecastIntervalEnum.Size(m) +} +func (m *KeywordPlanForecastIntervalEnum) XXX_DiscardUnknown() { + xxx_messageInfo_KeywordPlanForecastIntervalEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_KeywordPlanForecastIntervalEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*KeywordPlanForecastIntervalEnum)(nil), "google.ads.googleads.v0.enums.KeywordPlanForecastIntervalEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.KeywordPlanForecastIntervalEnum_KeywordPlanForecastInterval", KeywordPlanForecastIntervalEnum_KeywordPlanForecastInterval_name, KeywordPlanForecastIntervalEnum_KeywordPlanForecastInterval_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/keyword_plan_forecast_interval.proto", fileDescriptor_keyword_plan_forecast_interval_48060c037199c7ef) +} + +var fileDescriptor_keyword_plan_forecast_interval_48060c037199c7ef = []byte{ + // 303 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0x4b, 0x4e, 0xc3, 0x30, + 0x14, 0x45, 0x49, 0xcb, 0x47, 0xb8, 0x7c, 0x2c, 0x4f, 0x51, 0x05, 0x74, 0x01, 0x4e, 0x24, 0x86, + 0x8c, 0x52, 0x70, 0x4b, 0x55, 0xe1, 0x86, 0xd2, 0x0f, 0x42, 0x91, 0x22, 0xd3, 0x18, 0xab, 0xc2, + 0xb5, 0xa3, 0x38, 0x0d, 0x62, 0x15, 0xec, 0x81, 0x21, 0x4b, 0x61, 0xc6, 0x8e, 0x50, 0x9c, 0xb4, + 0x33, 0x32, 0x89, 0xee, 0xd3, 0x8d, 0x8f, 0x9f, 0x0f, 0xe8, 0x0a, 0xad, 0x85, 0xe4, 0x2e, 0x8b, + 0x8d, 0x5b, 0xc6, 0x22, 0xe5, 0x9e, 0xcb, 0xd5, 0x7a, 0x65, 0xdc, 0x37, 0xfe, 0xf1, 0xae, 0xd3, + 0x38, 0x4a, 0x24, 0x53, 0xd1, 0xab, 0x4e, 0xf9, 0x82, 0x99, 0x2c, 0x5a, 0xaa, 0x8c, 0xa7, 0x39, + 0x93, 0x38, 0x49, 0x75, 0xa6, 0x51, 0xbb, 0x3c, 0x88, 0x59, 0x6c, 0xf0, 0x96, 0x81, 0x73, 0x0f, + 0x5b, 0x46, 0xe7, 0xd3, 0x01, 0xe7, 0xc3, 0x92, 0x13, 0x48, 0xa6, 0x7a, 0x15, 0x65, 0x50, 0x41, + 0x88, 0x5a, 0xaf, 0x3a, 0x12, 0x9c, 0xd5, 0xfc, 0x82, 0x4e, 0x41, 0x6b, 0x4a, 0x1f, 0x03, 0x72, + 0x33, 0xe8, 0x0d, 0xc8, 0x2d, 0xdc, 0x41, 0x2d, 0x70, 0x30, 0xa5, 0x43, 0x3a, 0x9a, 0x53, 0xe8, + 0xa0, 0x63, 0x70, 0x48, 0xc9, 0xd3, 0x24, 0x9a, 0x13, 0x32, 0x84, 0x4d, 0x74, 0x02, 0x80, 0x1d, + 0xef, 0x47, 0x74, 0x72, 0x07, 0x77, 0x11, 0x04, 0x47, 0x76, 0x7e, 0x98, 0xfa, 0xe3, 0x09, 0x19, + 0xc3, 0xbd, 0xee, 0xaf, 0x03, 0x2e, 0x17, 0x7a, 0x85, 0x6b, 0xf7, 0xee, 0x5e, 0xd4, 0x6c, 0x14, + 0x14, 0x0f, 0x0f, 0x9c, 0xe7, 0x4a, 0x1f, 0x16, 0x5a, 0x32, 0x25, 0xb0, 0x4e, 0x85, 0x2b, 0xb8, + 0xb2, 0x5a, 0x36, 0x3a, 0x93, 0xa5, 0xf9, 0xc7, 0xee, 0xb5, 0xfd, 0x7e, 0x35, 0x9a, 0x7d, 0xdf, + 0xff, 0x6e, 0xb4, 0xfb, 0x25, 0xca, 0x8f, 0x0d, 0x2e, 0x63, 0x91, 0x66, 0x1e, 0x2e, 0x04, 0x99, + 0x9f, 0x4d, 0x1f, 0xfa, 0xb1, 0x09, 0xb7, 0x7d, 0x38, 0xf3, 0x42, 0xdb, 0xbf, 0xec, 0xdb, 0x4b, + 0xaf, 0xfe, 0x02, 0x00, 0x00, 0xff, 0xff, 0xc0, 0x3c, 0x2c, 0x01, 0xd1, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/keyword_plan_network.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/keyword_plan_network.pb.go new file mode 100644 index 000000000..4d6bf0ae8 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/keyword_plan_network.pb.go @@ -0,0 +1,115 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/keyword_plan_network.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enumerates keyword plan forecastable network types. +type KeywordPlanNetworkEnum_KeywordPlanNetwork int32 + +const ( + // Not specified. + KeywordPlanNetworkEnum_UNSPECIFIED KeywordPlanNetworkEnum_KeywordPlanNetwork = 0 + // The value is unknown in this version. + KeywordPlanNetworkEnum_UNKNOWN KeywordPlanNetworkEnum_KeywordPlanNetwork = 1 + // Google Search. + KeywordPlanNetworkEnum_GOOGLE_SEARCH KeywordPlanNetworkEnum_KeywordPlanNetwork = 2 + // Google Search + Search partners. + KeywordPlanNetworkEnum_GOOGLE_SEARCH_AND_PARTNERS KeywordPlanNetworkEnum_KeywordPlanNetwork = 3 +) + +var KeywordPlanNetworkEnum_KeywordPlanNetwork_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "GOOGLE_SEARCH", + 3: "GOOGLE_SEARCH_AND_PARTNERS", +} +var KeywordPlanNetworkEnum_KeywordPlanNetwork_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "GOOGLE_SEARCH": 2, + "GOOGLE_SEARCH_AND_PARTNERS": 3, +} + +func (x KeywordPlanNetworkEnum_KeywordPlanNetwork) String() string { + return proto.EnumName(KeywordPlanNetworkEnum_KeywordPlanNetwork_name, int32(x)) +} +func (KeywordPlanNetworkEnum_KeywordPlanNetwork) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_network_bcfc8cc44ad88964, []int{0, 0} +} + +// Container for enumeration of keyword plan forecastable network types. +type KeywordPlanNetworkEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *KeywordPlanNetworkEnum) Reset() { *m = KeywordPlanNetworkEnum{} } +func (m *KeywordPlanNetworkEnum) String() string { return proto.CompactTextString(m) } +func (*KeywordPlanNetworkEnum) ProtoMessage() {} +func (*KeywordPlanNetworkEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_network_bcfc8cc44ad88964, []int{0} +} +func (m *KeywordPlanNetworkEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_KeywordPlanNetworkEnum.Unmarshal(m, b) +} +func (m *KeywordPlanNetworkEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_KeywordPlanNetworkEnum.Marshal(b, m, deterministic) +} +func (dst *KeywordPlanNetworkEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_KeywordPlanNetworkEnum.Merge(dst, src) +} +func (m *KeywordPlanNetworkEnum) XXX_Size() int { + return xxx_messageInfo_KeywordPlanNetworkEnum.Size(m) +} +func (m *KeywordPlanNetworkEnum) XXX_DiscardUnknown() { + xxx_messageInfo_KeywordPlanNetworkEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_KeywordPlanNetworkEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*KeywordPlanNetworkEnum)(nil), "google.ads.googleads.v0.enums.KeywordPlanNetworkEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.KeywordPlanNetworkEnum_KeywordPlanNetwork", KeywordPlanNetworkEnum_KeywordPlanNetwork_name, KeywordPlanNetworkEnum_KeywordPlanNetwork_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/keyword_plan_network.proto", fileDescriptor_keyword_plan_network_bcfc8cc44ad88964) +} + +var fileDescriptor_keyword_plan_network_bcfc8cc44ad88964 = []byte{ + // 286 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x48, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xbc, + 0xd2, 0xdc, 0x62, 0xfd, 0xec, 0xd4, 0xca, 0xf2, 0xfc, 0xa2, 0x94, 0xf8, 0x82, 0x9c, 0xc4, 0xbc, + 0xf8, 0xbc, 0xd4, 0x92, 0xf2, 0xfc, 0xa2, 0x6c, 0xbd, 0x82, 0xa2, 0xfc, 0x92, 0x7c, 0x21, 0x59, + 0x88, 0x72, 0xbd, 0xc4, 0x94, 0x62, 0x3d, 0xb8, 0x4e, 0xbd, 0x32, 0x03, 0x3d, 0xb0, 0x4e, 0xa5, + 0x7a, 0x2e, 0x31, 0x6f, 0x88, 0xe6, 0x80, 0x9c, 0xc4, 0x3c, 0x3f, 0x88, 0x56, 0xd7, 0xbc, 0xd2, + 0x5c, 0xa5, 0x54, 0x2e, 0x21, 0x4c, 0x19, 0x21, 0x7e, 0x2e, 0xee, 0x50, 0xbf, 0xe0, 0x00, 0x57, + 0x67, 0x4f, 0x37, 0x4f, 0x57, 0x17, 0x01, 0x06, 0x21, 0x6e, 0x2e, 0xf6, 0x50, 0x3f, 0x6f, 0x3f, + 0xff, 0x70, 0x3f, 0x01, 0x46, 0x21, 0x41, 0x2e, 0x5e, 0x77, 0x7f, 0x7f, 0x77, 0x1f, 0xd7, 0xf8, + 0x60, 0x57, 0xc7, 0x20, 0x67, 0x0f, 0x01, 0x26, 0x21, 0x39, 0x2e, 0x29, 0x14, 0xa1, 0x78, 0x47, + 0x3f, 0x97, 0xf8, 0x00, 0xc7, 0xa0, 0x10, 0x3f, 0xd7, 0xa0, 0x60, 0x01, 0x66, 0xa7, 0x13, 0x8c, + 0x5c, 0x8a, 0xc9, 0xf9, 0xb9, 0x7a, 0x78, 0x9d, 0xe9, 0x24, 0x8e, 0xe9, 0x94, 0x00, 0x90, 0xf7, + 0x02, 0x18, 0xa3, 0x9c, 0xa0, 0x3a, 0xd3, 0xf3, 0x73, 0x12, 0xf3, 0xd2, 0xf5, 0xf2, 0x8b, 0xd2, + 0xf5, 0xd3, 0x53, 0xf3, 0xc0, 0x9e, 0x87, 0x05, 0x55, 0x41, 0x66, 0x31, 0x8e, 0x90, 0xb3, 0x06, + 0x93, 0x8b, 0x98, 0x98, 0xdd, 0x1d, 0x1d, 0x57, 0x31, 0xc9, 0xba, 0x43, 0x8c, 0x72, 0x4c, 0x29, + 0xd6, 0x83, 0x30, 0x41, 0xac, 0x30, 0x03, 0x3d, 0x50, 0x80, 0x14, 0x9f, 0x82, 0xc9, 0xc7, 0x38, + 0xa6, 0x14, 0xc7, 0xc0, 0xe5, 0x63, 0xc2, 0x0c, 0x62, 0xc0, 0xf2, 0x49, 0x6c, 0x60, 0x4b, 0x8d, + 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0x21, 0x62, 0xf1, 0x14, 0xad, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/listing_custom_attribute_index.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/listing_custom_attribute_index.pb.go new file mode 100644 index 000000000..56af308a4 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/listing_custom_attribute_index.pb.go @@ -0,0 +1,129 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/listing_custom_attribute_index.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// The index of the listing custom attribute. +type ListingCustomAttributeIndexEnum_ListingCustomAttributeIndex int32 + +const ( + // Not specified. + ListingCustomAttributeIndexEnum_UNSPECIFIED ListingCustomAttributeIndexEnum_ListingCustomAttributeIndex = 0 + // Used for return value only. Represents value unknown in this version. + ListingCustomAttributeIndexEnum_UNKNOWN ListingCustomAttributeIndexEnum_ListingCustomAttributeIndex = 1 + // First listing custom attribute. + ListingCustomAttributeIndexEnum_CUSTOM_ATTRIBUTE_0 ListingCustomAttributeIndexEnum_ListingCustomAttributeIndex = 2 + // Second listing custom attribute. + ListingCustomAttributeIndexEnum_CUSTOM_ATTRIBUTE_1 ListingCustomAttributeIndexEnum_ListingCustomAttributeIndex = 3 + // Third listing custom attribute. + ListingCustomAttributeIndexEnum_CUSTOM_ATTRIBUTE_2 ListingCustomAttributeIndexEnum_ListingCustomAttributeIndex = 4 + // Fourth listing custom attribute. + ListingCustomAttributeIndexEnum_CUSTOM_ATTRIBUTE_3 ListingCustomAttributeIndexEnum_ListingCustomAttributeIndex = 5 + // Fifth listing custom attribute. + ListingCustomAttributeIndexEnum_CUSTOM_ATTRIBUTE_4 ListingCustomAttributeIndexEnum_ListingCustomAttributeIndex = 6 +) + +var ListingCustomAttributeIndexEnum_ListingCustomAttributeIndex_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "CUSTOM_ATTRIBUTE_0", + 3: "CUSTOM_ATTRIBUTE_1", + 4: "CUSTOM_ATTRIBUTE_2", + 5: "CUSTOM_ATTRIBUTE_3", + 6: "CUSTOM_ATTRIBUTE_4", +} +var ListingCustomAttributeIndexEnum_ListingCustomAttributeIndex_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "CUSTOM_ATTRIBUTE_0": 2, + "CUSTOM_ATTRIBUTE_1": 3, + "CUSTOM_ATTRIBUTE_2": 4, + "CUSTOM_ATTRIBUTE_3": 5, + "CUSTOM_ATTRIBUTE_4": 6, +} + +func (x ListingCustomAttributeIndexEnum_ListingCustomAttributeIndex) String() string { + return proto.EnumName(ListingCustomAttributeIndexEnum_ListingCustomAttributeIndex_name, int32(x)) +} +func (ListingCustomAttributeIndexEnum_ListingCustomAttributeIndex) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_listing_custom_attribute_index_238055c47db24f86, []int{0, 0} +} + +// Container for enum describing the index of the listing custom attribute. +type ListingCustomAttributeIndexEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListingCustomAttributeIndexEnum) Reset() { *m = ListingCustomAttributeIndexEnum{} } +func (m *ListingCustomAttributeIndexEnum) String() string { return proto.CompactTextString(m) } +func (*ListingCustomAttributeIndexEnum) ProtoMessage() {} +func (*ListingCustomAttributeIndexEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_listing_custom_attribute_index_238055c47db24f86, []int{0} +} +func (m *ListingCustomAttributeIndexEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListingCustomAttributeIndexEnum.Unmarshal(m, b) +} +func (m *ListingCustomAttributeIndexEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListingCustomAttributeIndexEnum.Marshal(b, m, deterministic) +} +func (dst *ListingCustomAttributeIndexEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListingCustomAttributeIndexEnum.Merge(dst, src) +} +func (m *ListingCustomAttributeIndexEnum) XXX_Size() int { + return xxx_messageInfo_ListingCustomAttributeIndexEnum.Size(m) +} +func (m *ListingCustomAttributeIndexEnum) XXX_DiscardUnknown() { + xxx_messageInfo_ListingCustomAttributeIndexEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_ListingCustomAttributeIndexEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*ListingCustomAttributeIndexEnum)(nil), "google.ads.googleads.v0.enums.ListingCustomAttributeIndexEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.ListingCustomAttributeIndexEnum_ListingCustomAttributeIndex", ListingCustomAttributeIndexEnum_ListingCustomAttributeIndex_name, ListingCustomAttributeIndexEnum_ListingCustomAttributeIndex_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/listing_custom_attribute_index.proto", fileDescriptor_listing_custom_attribute_index_238055c47db24f86) +} + +var fileDescriptor_listing_custom_attribute_index_238055c47db24f86 = []byte{ + // 306 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x72, 0x4a, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xbc, + 0xd2, 0xdc, 0x62, 0xfd, 0x9c, 0xcc, 0xe2, 0x92, 0xcc, 0xbc, 0xf4, 0xf8, 0xe4, 0xd2, 0xe2, 0x92, + 0xfc, 0xdc, 0xf8, 0xc4, 0x92, 0x92, 0xa2, 0xcc, 0xa4, 0xd2, 0x92, 0xd4, 0xf8, 0xcc, 0xbc, 0x94, + 0xd4, 0x0a, 0xbd, 0x82, 0xa2, 0xfc, 0x92, 0x7c, 0x21, 0x59, 0x88, 0x46, 0xbd, 0xc4, 0x94, 0x62, + 0x3d, 0xb8, 0x19, 0x7a, 0x65, 0x06, 0x7a, 0x60, 0x33, 0x94, 0xae, 0x33, 0x72, 0xc9, 0xfb, 0x40, + 0xcc, 0x71, 0x06, 0x1b, 0xe3, 0x08, 0x33, 0xc5, 0x13, 0x64, 0x88, 0x6b, 0x5e, 0x69, 0xae, 0xd2, + 0x66, 0x46, 0x2e, 0x69, 0x3c, 0x6a, 0x84, 0xf8, 0xb9, 0xb8, 0x43, 0xfd, 0x82, 0x03, 0x5c, 0x9d, + 0x3d, 0xdd, 0x3c, 0x5d, 0x5d, 0x04, 0x18, 0x84, 0xb8, 0xb9, 0xd8, 0x43, 0xfd, 0xbc, 0xfd, 0xfc, + 0xc3, 0xfd, 0x04, 0x18, 0x85, 0xc4, 0xb8, 0x84, 0x9c, 0x43, 0x83, 0x43, 0xfc, 0x7d, 0xe3, 0x1d, + 0x43, 0x42, 0x82, 0x3c, 0x9d, 0x42, 0x43, 0x5c, 0xe3, 0x0d, 0x04, 0x98, 0xb0, 0x8a, 0x1b, 0x0a, + 0x30, 0x63, 0x15, 0x37, 0x12, 0x60, 0xc1, 0x2a, 0x6e, 0x2c, 0xc0, 0x8a, 0x55, 0xdc, 0x44, 0x80, + 0xcd, 0xe9, 0x22, 0x23, 0x97, 0x62, 0x72, 0x7e, 0xae, 0x1e, 0x5e, 0xff, 0x3b, 0x29, 0xe0, 0xf1, + 0x58, 0x00, 0x28, 0x00, 0x03, 0x18, 0xa3, 0xa0, 0xd1, 0xa0, 0x97, 0x9e, 0x9f, 0x93, 0x98, 0x97, + 0xae, 0x97, 0x5f, 0x94, 0xae, 0x9f, 0x9e, 0x9a, 0x07, 0x0e, 0x5e, 0x58, 0xb4, 0x14, 0x64, 0x16, + 0xe3, 0x88, 0x25, 0x6b, 0x30, 0xb9, 0x88, 0x89, 0xd9, 0xdd, 0xd1, 0x71, 0x15, 0x93, 0xac, 0x3b, + 0xc4, 0x28, 0xc7, 0x94, 0x62, 0x3d, 0x08, 0x13, 0xc4, 0x0a, 0x33, 0xd0, 0x03, 0x05, 0x74, 0xf1, + 0x29, 0x98, 0x7c, 0x8c, 0x63, 0x4a, 0x71, 0x0c, 0x5c, 0x3e, 0x26, 0xcc, 0x20, 0x06, 0x2c, 0x9f, + 0xc4, 0x06, 0xb6, 0xd4, 0x18, 0x10, 0x00, 0x00, 0xff, 0xff, 0x4f, 0x05, 0xe3, 0x48, 0x19, 0x02, + 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/listing_group_type.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/listing_group_type.pb.go new file mode 100644 index 000000000..a95c33de3 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/listing_group_type.pb.go @@ -0,0 +1,116 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/listing_group_type.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// The type of the listing group. +type ListingGroupTypeEnum_ListingGroupType int32 + +const ( + // Not specified. + ListingGroupTypeEnum_UNSPECIFIED ListingGroupTypeEnum_ListingGroupType = 0 + // Used for return value only. Represents value unknown in this version. + ListingGroupTypeEnum_UNKNOWN ListingGroupTypeEnum_ListingGroupType = 1 + // Subdivision of products along some listing dimension. These nodes + // are not used by serving to target listing entries, but is purely + // to define the structure of the tree. + ListingGroupTypeEnum_SUBDIVISION ListingGroupTypeEnum_ListingGroupType = 2 + // Listing group unit that defines a bid. + ListingGroupTypeEnum_UNIT ListingGroupTypeEnum_ListingGroupType = 3 +) + +var ListingGroupTypeEnum_ListingGroupType_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "SUBDIVISION", + 3: "UNIT", +} +var ListingGroupTypeEnum_ListingGroupType_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "SUBDIVISION": 2, + "UNIT": 3, +} + +func (x ListingGroupTypeEnum_ListingGroupType) String() string { + return proto.EnumName(ListingGroupTypeEnum_ListingGroupType_name, int32(x)) +} +func (ListingGroupTypeEnum_ListingGroupType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_listing_group_type_2f6adbfc1adad4a7, []int{0, 0} +} + +// Container for enum describing the type of the listing group. +type ListingGroupTypeEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListingGroupTypeEnum) Reset() { *m = ListingGroupTypeEnum{} } +func (m *ListingGroupTypeEnum) String() string { return proto.CompactTextString(m) } +func (*ListingGroupTypeEnum) ProtoMessage() {} +func (*ListingGroupTypeEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_listing_group_type_2f6adbfc1adad4a7, []int{0} +} +func (m *ListingGroupTypeEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListingGroupTypeEnum.Unmarshal(m, b) +} +func (m *ListingGroupTypeEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListingGroupTypeEnum.Marshal(b, m, deterministic) +} +func (dst *ListingGroupTypeEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListingGroupTypeEnum.Merge(dst, src) +} +func (m *ListingGroupTypeEnum) XXX_Size() int { + return xxx_messageInfo_ListingGroupTypeEnum.Size(m) +} +func (m *ListingGroupTypeEnum) XXX_DiscardUnknown() { + xxx_messageInfo_ListingGroupTypeEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_ListingGroupTypeEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*ListingGroupTypeEnum)(nil), "google.ads.googleads.v0.enums.ListingGroupTypeEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.ListingGroupTypeEnum_ListingGroupType", ListingGroupTypeEnum_ListingGroupType_name, ListingGroupTypeEnum_ListingGroupType_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/listing_group_type.proto", fileDescriptor_listing_group_type_2f6adbfc1adad4a7) +} + +var fileDescriptor_listing_group_type_2f6adbfc1adad4a7 = []byte{ + // 268 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x32, 0x4b, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xbc, + 0xd2, 0xdc, 0x62, 0xfd, 0x9c, 0xcc, 0xe2, 0x92, 0xcc, 0xbc, 0xf4, 0xf8, 0xf4, 0xa2, 0xfc, 0xd2, + 0x82, 0xf8, 0x92, 0xca, 0x82, 0x54, 0xbd, 0x82, 0xa2, 0xfc, 0x92, 0x7c, 0x21, 0x59, 0x88, 0x62, + 0xbd, 0xc4, 0x94, 0x62, 0x3d, 0xb8, 0x3e, 0xbd, 0x32, 0x03, 0x3d, 0xb0, 0x3e, 0xa5, 0x64, 0x2e, + 0x11, 0x1f, 0x88, 0x56, 0x77, 0x90, 0xce, 0x90, 0xca, 0x82, 0x54, 0xd7, 0xbc, 0xd2, 0x5c, 0x25, + 0x6f, 0x2e, 0x01, 0x74, 0x71, 0x21, 0x7e, 0x2e, 0xee, 0x50, 0xbf, 0xe0, 0x00, 0x57, 0x67, 0x4f, + 0x37, 0x4f, 0x57, 0x17, 0x01, 0x06, 0x21, 0x6e, 0x2e, 0xf6, 0x50, 0x3f, 0x6f, 0x3f, 0xff, 0x70, + 0x3f, 0x01, 0x46, 0x90, 0x6c, 0x70, 0xa8, 0x93, 0x8b, 0x67, 0x98, 0x67, 0xb0, 0xa7, 0xbf, 0x9f, + 0x00, 0x93, 0x10, 0x07, 0x17, 0x4b, 0xa8, 0x9f, 0x67, 0x88, 0x00, 0xb3, 0xd3, 0x31, 0x46, 0x2e, + 0xc5, 0xe4, 0xfc, 0x5c, 0x3d, 0xbc, 0x4e, 0x71, 0x12, 0x45, 0xb7, 0x30, 0x00, 0xe4, 0x81, 0x00, + 0xc6, 0x28, 0x27, 0xa8, 0xbe, 0xf4, 0xfc, 0x9c, 0xc4, 0xbc, 0x74, 0xbd, 0xfc, 0xa2, 0x74, 0xfd, + 0xf4, 0xd4, 0x3c, 0xb0, 0xf7, 0x60, 0x41, 0x51, 0x90, 0x59, 0x8c, 0x23, 0x64, 0xac, 0xc1, 0xe4, + 0x22, 0x26, 0x66, 0x77, 0x47, 0xc7, 0x55, 0x4c, 0xb2, 0xee, 0x10, 0xa3, 0x1c, 0x53, 0x8a, 0xf5, + 0x20, 0x4c, 0x10, 0x2b, 0xcc, 0x40, 0x0f, 0xe4, 0xe9, 0xe2, 0x53, 0x30, 0xf9, 0x18, 0xc7, 0x94, + 0xe2, 0x18, 0xb8, 0x7c, 0x4c, 0x98, 0x41, 0x0c, 0x58, 0x3e, 0x89, 0x0d, 0x6c, 0xa9, 0x31, 0x20, + 0x00, 0x00, 0xff, 0xff, 0x44, 0x5a, 0x2e, 0x34, 0x8d, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/local_placeholder_field.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/local_placeholder_field.pb.go new file mode 100644 index 000000000..478751fdb --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/local_placeholder_field.pb.go @@ -0,0 +1,213 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/local_placeholder_field.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Possible values for Local placeholder fields. +type LocalPlaceholderFieldEnum_LocalPlaceholderField int32 + +const ( + // Not specified. + LocalPlaceholderFieldEnum_UNSPECIFIED LocalPlaceholderFieldEnum_LocalPlaceholderField = 0 + // Used for return value only. Represents value unknown in this version. + LocalPlaceholderFieldEnum_UNKNOWN LocalPlaceholderFieldEnum_LocalPlaceholderField = 1 + // Data Type: STRING. Required. Unique ID. + LocalPlaceholderFieldEnum_DEAL_ID LocalPlaceholderFieldEnum_LocalPlaceholderField = 2 + // Data Type: STRING. Required. Main headline with local deal title to be + // shown in dynamic ad. + LocalPlaceholderFieldEnum_DEAL_NAME LocalPlaceholderFieldEnum_LocalPlaceholderField = 3 + // Data Type: STRING. Local deal subtitle to be shown in dynamic ad. + LocalPlaceholderFieldEnum_SUBTITLE LocalPlaceholderFieldEnum_LocalPlaceholderField = 4 + // Data Type: STRING. Description of local deal to be shown in dynamic ad. + LocalPlaceholderFieldEnum_DESCRIPTION LocalPlaceholderFieldEnum_LocalPlaceholderField = 5 + // Data Type: STRING. Price to be shown in the ad. Highly recommended for + // dynamic ads. Example: "100.00 USD" + LocalPlaceholderFieldEnum_PRICE LocalPlaceholderFieldEnum_LocalPlaceholderField = 6 + // Data Type: STRING. Formatted price to be shown in the ad. + // Example: "Starting at $100.00 USD", "$80 - $100" + LocalPlaceholderFieldEnum_FORMATTED_PRICE LocalPlaceholderFieldEnum_LocalPlaceholderField = 7 + // Data Type: STRING. Sale price to be shown in the ad. + // Example: "80.00 USD" + LocalPlaceholderFieldEnum_SALE_PRICE LocalPlaceholderFieldEnum_LocalPlaceholderField = 8 + // Data Type: STRING. Formatted sale price to be shown in the ad. + // Example: "On sale for $80.00", "$60 - $80" + LocalPlaceholderFieldEnum_FORMATTED_SALE_PRICE LocalPlaceholderFieldEnum_LocalPlaceholderField = 9 + // Data Type: URL. Image to be displayed in the ad. + LocalPlaceholderFieldEnum_IMAGE_URL LocalPlaceholderFieldEnum_LocalPlaceholderField = 10 + // Data Type: STRING. Complete property address, including postal code. + LocalPlaceholderFieldEnum_ADDRESS LocalPlaceholderFieldEnum_LocalPlaceholderField = 11 + // Data Type: STRING. Category of local deal used to group like items + // together for recommendation engine. + LocalPlaceholderFieldEnum_CATEGORY LocalPlaceholderFieldEnum_LocalPlaceholderField = 12 + // Data Type: STRING_LIST. Keywords used for product retrieval. + LocalPlaceholderFieldEnum_CONTEXTUAL_KEYWORDS LocalPlaceholderFieldEnum_LocalPlaceholderField = 13 + // Data Type: URL_LIST. Required. Final URLs to be used in ad when using + // Upgraded URLs; the more specific the better (e.g. the individual URL of a + // specific local deal and its location). + LocalPlaceholderFieldEnum_FINAL_URLS LocalPlaceholderFieldEnum_LocalPlaceholderField = 14 + // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded + // URLs. + LocalPlaceholderFieldEnum_FINAL_MOBILE_URLS LocalPlaceholderFieldEnum_LocalPlaceholderField = 15 + // Data Type: URL. Tracking template for the ad when using Upgraded URLs. + LocalPlaceholderFieldEnum_TRACKING_URL LocalPlaceholderFieldEnum_LocalPlaceholderField = 16 + // Data Type: STRING. Android app link. Must be formatted as: + // android-app://{package_id}/{scheme}/{host_path}. + // The components are defined as follows: + // package_id: app ID as specified in Google Play. + // scheme: the scheme to pass to the application. Can be HTTP, or a custom + // scheme. + // host_path: identifies the specific content within your application. + LocalPlaceholderFieldEnum_ANDROID_APP_LINK LocalPlaceholderFieldEnum_LocalPlaceholderField = 17 + // Data Type: STRING_LIST. List of recommended local deal IDs to show + // together with this item. + LocalPlaceholderFieldEnum_SIMILAR_DEAL_IDS LocalPlaceholderFieldEnum_LocalPlaceholderField = 18 + // Data Type: STRING. iOS app link. + LocalPlaceholderFieldEnum_IOS_APP_LINK LocalPlaceholderFieldEnum_LocalPlaceholderField = 19 + // Data Type: INT64. iOS app store ID. + LocalPlaceholderFieldEnum_IOS_APP_STORE_ID LocalPlaceholderFieldEnum_LocalPlaceholderField = 20 +) + +var LocalPlaceholderFieldEnum_LocalPlaceholderField_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "DEAL_ID", + 3: "DEAL_NAME", + 4: "SUBTITLE", + 5: "DESCRIPTION", + 6: "PRICE", + 7: "FORMATTED_PRICE", + 8: "SALE_PRICE", + 9: "FORMATTED_SALE_PRICE", + 10: "IMAGE_URL", + 11: "ADDRESS", + 12: "CATEGORY", + 13: "CONTEXTUAL_KEYWORDS", + 14: "FINAL_URLS", + 15: "FINAL_MOBILE_URLS", + 16: "TRACKING_URL", + 17: "ANDROID_APP_LINK", + 18: "SIMILAR_DEAL_IDS", + 19: "IOS_APP_LINK", + 20: "IOS_APP_STORE_ID", +} +var LocalPlaceholderFieldEnum_LocalPlaceholderField_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "DEAL_ID": 2, + "DEAL_NAME": 3, + "SUBTITLE": 4, + "DESCRIPTION": 5, + "PRICE": 6, + "FORMATTED_PRICE": 7, + "SALE_PRICE": 8, + "FORMATTED_SALE_PRICE": 9, + "IMAGE_URL": 10, + "ADDRESS": 11, + "CATEGORY": 12, + "CONTEXTUAL_KEYWORDS": 13, + "FINAL_URLS": 14, + "FINAL_MOBILE_URLS": 15, + "TRACKING_URL": 16, + "ANDROID_APP_LINK": 17, + "SIMILAR_DEAL_IDS": 18, + "IOS_APP_LINK": 19, + "IOS_APP_STORE_ID": 20, +} + +func (x LocalPlaceholderFieldEnum_LocalPlaceholderField) String() string { + return proto.EnumName(LocalPlaceholderFieldEnum_LocalPlaceholderField_name, int32(x)) +} +func (LocalPlaceholderFieldEnum_LocalPlaceholderField) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_local_placeholder_field_023a7c86e9401707, []int{0, 0} +} + +// Values for Local placeholder fields. +// For more information about dynamic remarketing feeds, see +// https://support.google.com/google-ads/answer/6053288. +type LocalPlaceholderFieldEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *LocalPlaceholderFieldEnum) Reset() { *m = LocalPlaceholderFieldEnum{} } +func (m *LocalPlaceholderFieldEnum) String() string { return proto.CompactTextString(m) } +func (*LocalPlaceholderFieldEnum) ProtoMessage() {} +func (*LocalPlaceholderFieldEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_local_placeholder_field_023a7c86e9401707, []int{0} +} +func (m *LocalPlaceholderFieldEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_LocalPlaceholderFieldEnum.Unmarshal(m, b) +} +func (m *LocalPlaceholderFieldEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_LocalPlaceholderFieldEnum.Marshal(b, m, deterministic) +} +func (dst *LocalPlaceholderFieldEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_LocalPlaceholderFieldEnum.Merge(dst, src) +} +func (m *LocalPlaceholderFieldEnum) XXX_Size() int { + return xxx_messageInfo_LocalPlaceholderFieldEnum.Size(m) +} +func (m *LocalPlaceholderFieldEnum) XXX_DiscardUnknown() { + xxx_messageInfo_LocalPlaceholderFieldEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_LocalPlaceholderFieldEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*LocalPlaceholderFieldEnum)(nil), "google.ads.googleads.v0.enums.LocalPlaceholderFieldEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.LocalPlaceholderFieldEnum_LocalPlaceholderField", LocalPlaceholderFieldEnum_LocalPlaceholderField_name, LocalPlaceholderFieldEnum_LocalPlaceholderField_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/local_placeholder_field.proto", fileDescriptor_local_placeholder_field_023a7c86e9401707) +} + +var fileDescriptor_local_placeholder_field_023a7c86e9401707 = []byte{ + // 472 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x52, 0x4b, 0x6e, 0xdb, 0x30, + 0x14, 0x6c, 0xec, 0xe6, 0x63, 0xda, 0x89, 0x19, 0xda, 0x41, 0x3f, 0x40, 0x16, 0xcd, 0x01, 0x24, + 0x03, 0x5d, 0x66, 0x45, 0x89, 0xb4, 0x40, 0x98, 0x22, 0x05, 0x92, 0x4a, 0x9a, 0xc2, 0x80, 0xa0, + 0x5a, 0xaa, 0x1a, 0x40, 0xb6, 0x0c, 0xab, 0xc9, 0x21, 0x7a, 0x8c, 0xae, 0x8a, 0x1e, 0xa5, 0xbd, + 0x54, 0x41, 0xc9, 0x8e, 0xbb, 0x48, 0xbb, 0x21, 0xde, 0x7b, 0xf3, 0x66, 0x86, 0x20, 0x07, 0x5c, + 0x17, 0x55, 0x55, 0x94, 0xb9, 0x9b, 0x66, 0xb5, 0xdb, 0x96, 0xb6, 0x7a, 0x9c, 0xb8, 0xf9, 0xea, + 0x61, 0x59, 0xbb, 0x65, 0xb5, 0x48, 0xcb, 0x64, 0x5d, 0xa6, 0x8b, 0xfc, 0x4b, 0x55, 0x66, 0xf9, + 0x26, 0xf9, 0x7c, 0x9f, 0x97, 0x99, 0xb3, 0xde, 0x54, 0x5f, 0x2b, 0x74, 0xd9, 0x32, 0x9c, 0x34, + 0xab, 0x9d, 0x27, 0xb2, 0xf3, 0x38, 0x71, 0x1a, 0xf2, 0xd5, 0x8f, 0x2e, 0x78, 0xc3, 0xad, 0x40, + 0xb4, 0xe7, 0x4f, 0x2d, 0x9d, 0xae, 0x1e, 0x96, 0x57, 0xdf, 0xba, 0xe0, 0xe2, 0x59, 0x14, 0x0d, + 0x41, 0x3f, 0x16, 0x3a, 0xa2, 0x3e, 0x9b, 0x32, 0x4a, 0xe0, 0x0b, 0xd4, 0x07, 0xc7, 0xb1, 0x98, + 0x09, 0x79, 0x2b, 0xe0, 0x81, 0x6d, 0x08, 0xc5, 0x3c, 0x61, 0x04, 0x76, 0xd0, 0x29, 0xe8, 0x35, + 0x8d, 0xc0, 0x21, 0x85, 0x5d, 0x34, 0x00, 0x27, 0x3a, 0xf6, 0x0c, 0x33, 0x9c, 0xc2, 0x97, 0x56, + 0x87, 0x50, 0xed, 0x2b, 0x16, 0x19, 0x26, 0x05, 0x3c, 0x44, 0x3d, 0x70, 0x18, 0x29, 0xe6, 0x53, + 0x78, 0x84, 0x46, 0x60, 0x38, 0x95, 0x2a, 0xc4, 0xc6, 0x50, 0x92, 0xb4, 0xc3, 0x63, 0x74, 0x06, + 0x80, 0xc6, 0x9c, 0x6e, 0xfb, 0x13, 0xf4, 0x1a, 0x8c, 0xf7, 0x4b, 0x7f, 0x21, 0x3d, 0xeb, 0xcb, + 0x42, 0x1c, 0xd0, 0x24, 0x56, 0x1c, 0x02, 0x7b, 0x27, 0x4c, 0x88, 0xa2, 0x5a, 0xc3, 0xbe, 0xbd, + 0x84, 0x8f, 0x0d, 0x0d, 0xa4, 0xba, 0x83, 0x03, 0xf4, 0x0a, 0x8c, 0x7c, 0x29, 0x0c, 0xfd, 0x60, + 0x62, 0xcc, 0x93, 0x19, 0xbd, 0xbb, 0x95, 0x8a, 0x68, 0x78, 0x6a, 0xcd, 0xa6, 0x4c, 0x60, 0x6e, + 0x25, 0x34, 0x3c, 0x43, 0x17, 0xe0, 0xbc, 0xed, 0x43, 0xe9, 0x31, 0x4e, 0xdb, 0xf1, 0x10, 0x41, + 0x30, 0x30, 0x0a, 0xfb, 0x33, 0x26, 0x82, 0xc6, 0x0c, 0xa2, 0x31, 0x80, 0x58, 0x10, 0x25, 0x19, + 0x49, 0x70, 0x14, 0x25, 0x9c, 0x89, 0x19, 0x3c, 0xb7, 0x53, 0xcd, 0x42, 0xc6, 0xb1, 0x4a, 0xb6, + 0xcf, 0xa3, 0x21, 0xb2, 0x6c, 0x26, 0xf5, 0x7e, 0x6f, 0x64, 0xf7, 0x76, 0x13, 0x6d, 0xa4, 0xa2, + 0xf6, 0x1d, 0xc7, 0xde, 0xef, 0x03, 0xf0, 0x6e, 0x51, 0x2d, 0x9d, 0xff, 0x7e, 0xa8, 0xf7, 0xf6, + 0xd9, 0xff, 0x8a, 0x6c, 0x16, 0xa2, 0x83, 0x8f, 0xde, 0x96, 0x5c, 0x54, 0x65, 0xba, 0x2a, 0x9c, + 0x6a, 0x53, 0xb8, 0x45, 0xbe, 0x6a, 0x92, 0xb2, 0x8b, 0xd6, 0xfa, 0xbe, 0xfe, 0x47, 0xd2, 0xae, + 0x9b, 0xf3, 0x7b, 0xa7, 0x1b, 0x60, 0xfc, 0xb3, 0x73, 0x19, 0xb4, 0x52, 0x38, 0xab, 0x9d, 0xb6, + 0xb4, 0xd5, 0xcd, 0xc4, 0xb1, 0xc9, 0xa9, 0x7f, 0xed, 0xf0, 0x39, 0xce, 0xea, 0xf9, 0x13, 0x3e, + 0xbf, 0x99, 0xcc, 0x1b, 0xfc, 0xd3, 0x51, 0x63, 0xfa, 0xfe, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, + 0x06, 0xf2, 0xd4, 0x06, 0xdd, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/manager_link_status.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/manager_link_status.pb.go new file mode 100644 index 000000000..9acda89c1 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/manager_link_status.pb.go @@ -0,0 +1,130 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/manager_link_status.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Possible statuses of a link. +type ManagerLinkStatusEnum_ManagerLinkStatus int32 + +const ( + // Not specified. + ManagerLinkStatusEnum_UNSPECIFIED ManagerLinkStatusEnum_ManagerLinkStatus = 0 + // Used for return value only. Represents value unknown in this version. + ManagerLinkStatusEnum_UNKNOWN ManagerLinkStatusEnum_ManagerLinkStatus = 1 + // Indicates current in-effect relationship + ManagerLinkStatusEnum_ACTIVE ManagerLinkStatusEnum_ManagerLinkStatus = 2 + // Indicates terminated relationship + ManagerLinkStatusEnum_INACTIVE ManagerLinkStatusEnum_ManagerLinkStatus = 3 + // Indicates relationship has been requested by manager, but the client + // hasn't accepted yet. + ManagerLinkStatusEnum_PENDING ManagerLinkStatusEnum_ManagerLinkStatus = 4 + // Relationship was requested by the manager, but the client has refused. + ManagerLinkStatusEnum_REFUSED ManagerLinkStatusEnum_ManagerLinkStatus = 5 + // Indicates relationship has been requested by manager, but manager + // canceled it. + ManagerLinkStatusEnum_CANCELED ManagerLinkStatusEnum_ManagerLinkStatus = 6 +) + +var ManagerLinkStatusEnum_ManagerLinkStatus_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "ACTIVE", + 3: "INACTIVE", + 4: "PENDING", + 5: "REFUSED", + 6: "CANCELED", +} +var ManagerLinkStatusEnum_ManagerLinkStatus_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "ACTIVE": 2, + "INACTIVE": 3, + "PENDING": 4, + "REFUSED": 5, + "CANCELED": 6, +} + +func (x ManagerLinkStatusEnum_ManagerLinkStatus) String() string { + return proto.EnumName(ManagerLinkStatusEnum_ManagerLinkStatus_name, int32(x)) +} +func (ManagerLinkStatusEnum_ManagerLinkStatus) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_manager_link_status_1264462a2bb5df34, []int{0, 0} +} + +// Container for enum describing possible status of a manager and client link. +type ManagerLinkStatusEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ManagerLinkStatusEnum) Reset() { *m = ManagerLinkStatusEnum{} } +func (m *ManagerLinkStatusEnum) String() string { return proto.CompactTextString(m) } +func (*ManagerLinkStatusEnum) ProtoMessage() {} +func (*ManagerLinkStatusEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_manager_link_status_1264462a2bb5df34, []int{0} +} +func (m *ManagerLinkStatusEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ManagerLinkStatusEnum.Unmarshal(m, b) +} +func (m *ManagerLinkStatusEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ManagerLinkStatusEnum.Marshal(b, m, deterministic) +} +func (dst *ManagerLinkStatusEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_ManagerLinkStatusEnum.Merge(dst, src) +} +func (m *ManagerLinkStatusEnum) XXX_Size() int { + return xxx_messageInfo_ManagerLinkStatusEnum.Size(m) +} +func (m *ManagerLinkStatusEnum) XXX_DiscardUnknown() { + xxx_messageInfo_ManagerLinkStatusEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_ManagerLinkStatusEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*ManagerLinkStatusEnum)(nil), "google.ads.googleads.v0.enums.ManagerLinkStatusEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.ManagerLinkStatusEnum_ManagerLinkStatus", ManagerLinkStatusEnum_ManagerLinkStatus_name, ManagerLinkStatusEnum_ManagerLinkStatus_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/manager_link_status.proto", fileDescriptor_manager_link_status_1264462a2bb5df34) +} + +var fileDescriptor_manager_link_status_1264462a2bb5df34 = []byte{ + // 300 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x32, 0x4f, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xbc, + 0xd2, 0xdc, 0x62, 0xfd, 0xdc, 0xc4, 0xbc, 0xc4, 0xf4, 0xd4, 0xa2, 0xf8, 0x9c, 0xcc, 0xbc, 0xec, + 0xf8, 0xe2, 0x92, 0xc4, 0x92, 0xd2, 0x62, 0xbd, 0x82, 0xa2, 0xfc, 0x92, 0x7c, 0x21, 0x59, 0x88, + 0x6a, 0xbd, 0xc4, 0x94, 0x62, 0x3d, 0xb8, 0x46, 0xbd, 0x32, 0x03, 0x3d, 0xb0, 0x46, 0xa5, 0x1e, + 0x46, 0x2e, 0x51, 0x5f, 0x88, 0x66, 0x9f, 0xcc, 0xbc, 0xec, 0x60, 0xb0, 0x56, 0xd7, 0xbc, 0xd2, + 0x5c, 0xa5, 0x62, 0x2e, 0x41, 0x0c, 0x09, 0x21, 0x7e, 0x2e, 0xee, 0x50, 0xbf, 0xe0, 0x00, 0x57, + 0x67, 0x4f, 0x37, 0x4f, 0x57, 0x17, 0x01, 0x06, 0x21, 0x6e, 0x2e, 0xf6, 0x50, 0x3f, 0x6f, 0x3f, + 0xff, 0x70, 0x3f, 0x01, 0x46, 0x21, 0x2e, 0x2e, 0x36, 0x47, 0xe7, 0x10, 0xcf, 0x30, 0x57, 0x01, + 0x26, 0x21, 0x1e, 0x2e, 0x0e, 0x4f, 0x3f, 0x28, 0x8f, 0x19, 0xa4, 0x2c, 0xc0, 0xd5, 0xcf, 0xc5, + 0xd3, 0xcf, 0x5d, 0x80, 0x05, 0xc4, 0x09, 0x72, 0x75, 0x0b, 0x0d, 0x76, 0x75, 0x11, 0x60, 0x05, + 0xa9, 0x73, 0x76, 0xf4, 0x73, 0x76, 0xf5, 0x71, 0x75, 0x11, 0x60, 0x73, 0x3a, 0xce, 0xc8, 0xa5, + 0x98, 0x9c, 0x9f, 0xab, 0x87, 0xd7, 0xd1, 0x4e, 0x62, 0x18, 0x0e, 0x0b, 0x00, 0xf9, 0x35, 0x80, + 0x31, 0xca, 0x09, 0xaa, 0x31, 0x3d, 0x3f, 0x27, 0x31, 0x2f, 0x5d, 0x2f, 0xbf, 0x28, 0x5d, 0x3f, + 0x3d, 0x35, 0x0f, 0x1c, 0x12, 0xb0, 0x60, 0x2b, 0xc8, 0x2c, 0xc6, 0x11, 0x8a, 0xd6, 0x60, 0x72, + 0x11, 0x13, 0xb3, 0xbb, 0xa3, 0xe3, 0x2a, 0x26, 0x59, 0x77, 0x88, 0x51, 0x8e, 0x29, 0xc5, 0x7a, + 0x10, 0x26, 0x88, 0x15, 0x66, 0xa0, 0x07, 0x0a, 0x9d, 0xe2, 0x53, 0x30, 0xf9, 0x18, 0xc7, 0x94, + 0xe2, 0x18, 0xb8, 0x7c, 0x4c, 0x98, 0x41, 0x0c, 0x58, 0x3e, 0x89, 0x0d, 0x6c, 0xa9, 0x31, 0x20, + 0x00, 0x00, 0xff, 0xff, 0xa3, 0xd0, 0xba, 0x7b, 0xb9, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/media_type.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/media_type.pb.go new file mode 100644 index 000000000..e1a486b6b --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/media_type.pb.go @@ -0,0 +1,134 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/media_type.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// The type of media. +type MediaTypeEnum_MediaType int32 + +const ( + // The media type has not been specified. + MediaTypeEnum_UNSPECIFIED MediaTypeEnum_MediaType = 0 + // The received value is not known in this version. + // + // This is a response-only value. + MediaTypeEnum_UNKNOWN MediaTypeEnum_MediaType = 1 + // Static image, used for image ad. + MediaTypeEnum_IMAGE MediaTypeEnum_MediaType = 2 + // Small image, used for map ad. + MediaTypeEnum_ICON MediaTypeEnum_MediaType = 3 + // ZIP file, used in fields of template ads. + MediaTypeEnum_MEDIA_BUNDLE MediaTypeEnum_MediaType = 4 + // Audio file. + MediaTypeEnum_AUDIO MediaTypeEnum_MediaType = 5 + // Video file. + MediaTypeEnum_VIDEO MediaTypeEnum_MediaType = 6 + // Animated image, such as animated GIF. + MediaTypeEnum_DYNAMIC_IMAGE MediaTypeEnum_MediaType = 7 +) + +var MediaTypeEnum_MediaType_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "IMAGE", + 3: "ICON", + 4: "MEDIA_BUNDLE", + 5: "AUDIO", + 6: "VIDEO", + 7: "DYNAMIC_IMAGE", +} +var MediaTypeEnum_MediaType_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "IMAGE": 2, + "ICON": 3, + "MEDIA_BUNDLE": 4, + "AUDIO": 5, + "VIDEO": 6, + "DYNAMIC_IMAGE": 7, +} + +func (x MediaTypeEnum_MediaType) String() string { + return proto.EnumName(MediaTypeEnum_MediaType_name, int32(x)) +} +func (MediaTypeEnum_MediaType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_media_type_f416f7e8a8d21052, []int{0, 0} +} + +// Container for enum describing the types of media. +type MediaTypeEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MediaTypeEnum) Reset() { *m = MediaTypeEnum{} } +func (m *MediaTypeEnum) String() string { return proto.CompactTextString(m) } +func (*MediaTypeEnum) ProtoMessage() {} +func (*MediaTypeEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_media_type_f416f7e8a8d21052, []int{0} +} +func (m *MediaTypeEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MediaTypeEnum.Unmarshal(m, b) +} +func (m *MediaTypeEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MediaTypeEnum.Marshal(b, m, deterministic) +} +func (dst *MediaTypeEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_MediaTypeEnum.Merge(dst, src) +} +func (m *MediaTypeEnum) XXX_Size() int { + return xxx_messageInfo_MediaTypeEnum.Size(m) +} +func (m *MediaTypeEnum) XXX_DiscardUnknown() { + xxx_messageInfo_MediaTypeEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_MediaTypeEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*MediaTypeEnum)(nil), "google.ads.googleads.v0.enums.MediaTypeEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.MediaTypeEnum_MediaType", MediaTypeEnum_MediaType_name, MediaTypeEnum_MediaType_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/media_type.proto", fileDescriptor_media_type_f416f7e8a8d21052) +} + +var fileDescriptor_media_type_f416f7e8a8d21052 = []byte{ + // 299 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0xcf, 0x4a, 0xc3, 0x30, + 0x1c, 0xc7, 0xed, 0xfe, 0xba, 0xcc, 0x69, 0xcc, 0x7d, 0x07, 0xf7, 0x00, 0x69, 0xc1, 0xa3, 0xa7, + 0x74, 0x89, 0x23, 0x68, 0xd3, 0x81, 0x76, 0xa2, 0x14, 0x4a, 0xb5, 0x21, 0x0c, 0xd6, 0xa6, 0x2c, + 0xdb, 0xa0, 0xaf, 0xe0, 0x63, 0x78, 0xf4, 0x25, 0xbc, 0xfb, 0x54, 0x92, 0xd6, 0xf5, 0xa6, 0x97, + 0xf0, 0x21, 0xdf, 0xef, 0xef, 0xdf, 0x17, 0x60, 0xa5, 0xb5, 0xda, 0x48, 0x37, 0xcd, 0x8c, 0xdb, + 0xa0, 0xa5, 0x83, 0xe7, 0xca, 0x62, 0x9f, 0x1b, 0x37, 0x97, 0xd9, 0x3a, 0x4d, 0x76, 0x55, 0x29, + 0x71, 0xb9, 0xd5, 0x3b, 0x8d, 0xa6, 0x8d, 0x09, 0xa7, 0x99, 0xc1, 0xad, 0x1f, 0x1f, 0x3c, 0x5c, + 0xfb, 0x67, 0xef, 0x0e, 0x98, 0x04, 0xb6, 0xe6, 0xb1, 0x2a, 0x25, 0x2b, 0xf6, 0xf9, 0xac, 0x02, + 0xa3, 0xf6, 0x03, 0x5d, 0x80, 0x71, 0x24, 0x1e, 0x96, 0x6c, 0xce, 0x6f, 0x39, 0xa3, 0xf0, 0x04, + 0x8d, 0xc1, 0x30, 0x12, 0x77, 0x22, 0x7c, 0x12, 0xd0, 0x41, 0x23, 0xd0, 0xe7, 0x01, 0x59, 0x30, + 0xd8, 0x41, 0xa7, 0xa0, 0xc7, 0xe7, 0xa1, 0x80, 0x5d, 0x04, 0xc1, 0x59, 0xc0, 0x28, 0x27, 0x89, + 0x1f, 0x09, 0x7a, 0xcf, 0x60, 0xcf, 0xda, 0x48, 0x44, 0x79, 0x08, 0xfb, 0x16, 0x57, 0x9c, 0xb2, + 0x10, 0x0e, 0xd0, 0x25, 0x98, 0xd0, 0x67, 0x41, 0x02, 0x3e, 0x4f, 0x9a, 0x26, 0x43, 0xff, 0xcb, + 0x01, 0x57, 0x6f, 0x3a, 0xc7, 0xff, 0xae, 0xec, 0x9f, 0xb7, 0xeb, 0x2d, 0xed, 0x85, 0x4b, 0xe7, + 0xc5, 0xff, 0x2d, 0x50, 0x7a, 0x93, 0x16, 0x0a, 0xeb, 0xad, 0x72, 0x95, 0x2c, 0xea, 0xfb, 0x8f, + 0x19, 0x95, 0x6b, 0xf3, 0x47, 0x64, 0x37, 0xf5, 0xfb, 0xd1, 0xe9, 0x2e, 0x08, 0xf9, 0xec, 0x4c, + 0x17, 0x4d, 0x2b, 0x92, 0x19, 0xdc, 0xa0, 0xa5, 0x95, 0x87, 0x6d, 0x36, 0xe6, 0xfb, 0xa8, 0xc7, + 0x24, 0x33, 0x71, 0xab, 0xc7, 0x2b, 0x2f, 0xae, 0xf5, 0xd7, 0x41, 0x3d, 0xf4, 0xfa, 0x27, 0x00, + 0x00, 0xff, 0xff, 0x7b, 0x20, 0xa1, 0xf0, 0xa6, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/message_placeholder_field.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/message_placeholder_field.pb.go new file mode 100644 index 000000000..e136e8df7 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/message_placeholder_field.pb.go @@ -0,0 +1,132 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/message_placeholder_field.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Possible values for Message placeholder fields. +type MessagePlaceholderFieldEnum_MessagePlaceholderField int32 + +const ( + // Not specified. + MessagePlaceholderFieldEnum_UNSPECIFIED MessagePlaceholderFieldEnum_MessagePlaceholderField = 0 + // Used for return value only. Represents value unknown in this version. + MessagePlaceholderFieldEnum_UNKNOWN MessagePlaceholderFieldEnum_MessagePlaceholderField = 1 + // Data Type: STRING. The name of your business. + MessagePlaceholderFieldEnum_BUSINESS_NAME MessagePlaceholderFieldEnum_MessagePlaceholderField = 2 + // Data Type: STRING. Country code of phone number. + MessagePlaceholderFieldEnum_COUNTRY_CODE MessagePlaceholderFieldEnum_MessagePlaceholderField = 3 + // Data Type: STRING. A phone number that's capable of sending and receiving + // text messages. + MessagePlaceholderFieldEnum_PHONE_NUMBER MessagePlaceholderFieldEnum_MessagePlaceholderField = 4 + // Data Type: STRING. The text that will go in your click-to-message ad. + MessagePlaceholderFieldEnum_MESSAGE_EXTENSION_TEXT MessagePlaceholderFieldEnum_MessagePlaceholderField = 5 + // Data Type: STRING. The message text automatically shows in people's + // messaging apps when they tap to send you a message. + MessagePlaceholderFieldEnum_MESSAGE_TEXT MessagePlaceholderFieldEnum_MessagePlaceholderField = 6 +) + +var MessagePlaceholderFieldEnum_MessagePlaceholderField_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "BUSINESS_NAME", + 3: "COUNTRY_CODE", + 4: "PHONE_NUMBER", + 5: "MESSAGE_EXTENSION_TEXT", + 6: "MESSAGE_TEXT", +} +var MessagePlaceholderFieldEnum_MessagePlaceholderField_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "BUSINESS_NAME": 2, + "COUNTRY_CODE": 3, + "PHONE_NUMBER": 4, + "MESSAGE_EXTENSION_TEXT": 5, + "MESSAGE_TEXT": 6, +} + +func (x MessagePlaceholderFieldEnum_MessagePlaceholderField) String() string { + return proto.EnumName(MessagePlaceholderFieldEnum_MessagePlaceholderField_name, int32(x)) +} +func (MessagePlaceholderFieldEnum_MessagePlaceholderField) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_message_placeholder_field_4313c91f38e4b5b2, []int{0, 0} +} + +// Values for Message placeholder fields. +type MessagePlaceholderFieldEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MessagePlaceholderFieldEnum) Reset() { *m = MessagePlaceholderFieldEnum{} } +func (m *MessagePlaceholderFieldEnum) String() string { return proto.CompactTextString(m) } +func (*MessagePlaceholderFieldEnum) ProtoMessage() {} +func (*MessagePlaceholderFieldEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_message_placeholder_field_4313c91f38e4b5b2, []int{0} +} +func (m *MessagePlaceholderFieldEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MessagePlaceholderFieldEnum.Unmarshal(m, b) +} +func (m *MessagePlaceholderFieldEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MessagePlaceholderFieldEnum.Marshal(b, m, deterministic) +} +func (dst *MessagePlaceholderFieldEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_MessagePlaceholderFieldEnum.Merge(dst, src) +} +func (m *MessagePlaceholderFieldEnum) XXX_Size() int { + return xxx_messageInfo_MessagePlaceholderFieldEnum.Size(m) +} +func (m *MessagePlaceholderFieldEnum) XXX_DiscardUnknown() { + xxx_messageInfo_MessagePlaceholderFieldEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_MessagePlaceholderFieldEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*MessagePlaceholderFieldEnum)(nil), "google.ads.googleads.v0.enums.MessagePlaceholderFieldEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.MessagePlaceholderFieldEnum_MessagePlaceholderField", MessagePlaceholderFieldEnum_MessagePlaceholderField_name, MessagePlaceholderFieldEnum_MessagePlaceholderField_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/message_placeholder_field.proto", fileDescriptor_message_placeholder_field_4313c91f38e4b5b2) +} + +var fileDescriptor_message_placeholder_field_4313c91f38e4b5b2 = []byte{ + // 333 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x91, 0xc1, 0x4a, 0xc3, 0x30, + 0x1c, 0xc6, 0xed, 0xa6, 0x13, 0x32, 0xc5, 0xd8, 0x83, 0x82, 0xba, 0x83, 0x7b, 0x80, 0xb4, 0xe0, + 0x51, 0x3c, 0xb4, 0x5b, 0x36, 0x8b, 0x34, 0x2d, 0x4b, 0x3b, 0xa7, 0x14, 0x42, 0x5d, 0x63, 0x1c, + 0xb4, 0xcd, 0x58, 0xdc, 0x9e, 0xc6, 0x93, 0x47, 0x9f, 0xc1, 0x27, 0x10, 0x7c, 0x27, 0x49, 0xeb, + 0xe6, 0x69, 0x5e, 0xc2, 0xc7, 0xff, 0x97, 0xef, 0x0b, 0xff, 0x2f, 0xe0, 0x46, 0x48, 0x29, 0x72, + 0x6e, 0xa5, 0x99, 0xb2, 0x6a, 0xa9, 0xd5, 0xca, 0xb6, 0x78, 0xb9, 0x2c, 0x94, 0x55, 0x70, 0xa5, + 0x52, 0xc1, 0xd9, 0x3c, 0x4f, 0xa7, 0xfc, 0x45, 0xe6, 0x19, 0x5f, 0xb0, 0xe7, 0x19, 0xcf, 0x33, + 0x34, 0x5f, 0xc8, 0x57, 0x69, 0x76, 0x6a, 0x0f, 0x4a, 0x33, 0x85, 0x36, 0x76, 0xb4, 0xb2, 0x51, + 0x65, 0xef, 0x7e, 0x1a, 0xe0, 0xdc, 0xaf, 0x23, 0xc2, 0xbf, 0x84, 0x81, 0x0e, 0xc0, 0xe5, 0xb2, + 0xe8, 0xbe, 0x19, 0xe0, 0x74, 0x0b, 0x37, 0x8f, 0x40, 0x3b, 0x26, 0x34, 0xc4, 0x3d, 0x6f, 0xe0, + 0xe1, 0x3e, 0xdc, 0x31, 0xdb, 0x60, 0x3f, 0x26, 0x77, 0x24, 0xb8, 0x27, 0xd0, 0x30, 0x8f, 0xc1, + 0xa1, 0x1b, 0x53, 0x8f, 0x60, 0x4a, 0x19, 0x71, 0x7c, 0x0c, 0x1b, 0x26, 0x04, 0x07, 0xbd, 0x20, + 0x26, 0xd1, 0xe8, 0x81, 0xf5, 0x82, 0x3e, 0x86, 0x4d, 0x3d, 0x09, 0x6f, 0x03, 0x82, 0x19, 0x89, + 0x7d, 0x17, 0x8f, 0xe0, 0xae, 0x79, 0x06, 0x4e, 0x7c, 0x4c, 0xa9, 0x33, 0xc4, 0x0c, 0x4f, 0x22, + 0x4c, 0xa8, 0x17, 0x10, 0x16, 0xe1, 0x49, 0x04, 0xf7, 0xf4, 0xed, 0x35, 0xab, 0x26, 0x2d, 0xf7, + 0xdb, 0x00, 0x97, 0x53, 0x59, 0xa0, 0x7f, 0x97, 0x74, 0x2f, 0xb6, 0x6c, 0x10, 0xea, 0x86, 0x42, + 0xe3, 0xd1, 0xfd, 0xb5, 0x0b, 0x99, 0xa7, 0xa5, 0x40, 0x72, 0x21, 0x2c, 0xc1, 0xcb, 0xaa, 0xbf, + 0x75, 0xe5, 0xf3, 0x99, 0xda, 0xf2, 0x03, 0xd7, 0xd5, 0xf9, 0xde, 0x68, 0x0e, 0x1d, 0xe7, 0xa3, + 0xd1, 0x19, 0xd6, 0x51, 0x4e, 0xa6, 0x50, 0x2d, 0xb5, 0x1a, 0xdb, 0x48, 0xb7, 0xa9, 0xbe, 0xd6, + 0x3c, 0x71, 0x32, 0x95, 0x6c, 0x78, 0x32, 0xb6, 0x93, 0x8a, 0x3f, 0xb5, 0xaa, 0x47, 0xaf, 0x7e, + 0x02, 0x00, 0x00, 0xff, 0xff, 0xb3, 0x09, 0x2c, 0x49, 0xf5, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/mime_type.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/mime_type.pb.go new file mode 100644 index 000000000..e63e18bb0 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/mime_type.pb.go @@ -0,0 +1,162 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/mime_type.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// The mime type +type MimeTypeEnum_MimeType int32 + +const ( + // The mime type has not been specified. + MimeTypeEnum_UNSPECIFIED MimeTypeEnum_MimeType = 0 + // The received value is not known in this version. + // + // This is a response-only value. + MimeTypeEnum_UNKNOWN MimeTypeEnum_MimeType = 1 + // MIME type of image/jpeg. + MimeTypeEnum_IMAGE_JPEG MimeTypeEnum_MimeType = 2 + // MIME type of image/gif. + MimeTypeEnum_IMAGE_GIF MimeTypeEnum_MimeType = 3 + // MIME type of image/png. + MimeTypeEnum_IMAGE_PNG MimeTypeEnum_MimeType = 4 + // MIME type of application/x-shockwave-flash. + MimeTypeEnum_FLASH MimeTypeEnum_MimeType = 5 + // MIME type of text/html. + MimeTypeEnum_TEXT_HTML MimeTypeEnum_MimeType = 6 + // MIME type of application/pdf. + MimeTypeEnum_PDF MimeTypeEnum_MimeType = 7 + // MIME type of application/msword. + MimeTypeEnum_MSWORD MimeTypeEnum_MimeType = 8 + // MIME type of application/vnd.ms-excel. + MimeTypeEnum_MSEXCEL MimeTypeEnum_MimeType = 9 + // MIME type of application/rtf. + MimeTypeEnum_RTF MimeTypeEnum_MimeType = 10 + // MIME type of audio/wav. + MimeTypeEnum_AUDIO_WAV MimeTypeEnum_MimeType = 11 + // MIME type of audio/mp3. + MimeTypeEnum_AUDIO_MP3 MimeTypeEnum_MimeType = 12 + // MIME type of application/x-html5-ad-zip. + MimeTypeEnum_HTML5_AD_ZIP MimeTypeEnum_MimeType = 13 +) + +var MimeTypeEnum_MimeType_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "IMAGE_JPEG", + 3: "IMAGE_GIF", + 4: "IMAGE_PNG", + 5: "FLASH", + 6: "TEXT_HTML", + 7: "PDF", + 8: "MSWORD", + 9: "MSEXCEL", + 10: "RTF", + 11: "AUDIO_WAV", + 12: "AUDIO_MP3", + 13: "HTML5_AD_ZIP", +} +var MimeTypeEnum_MimeType_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "IMAGE_JPEG": 2, + "IMAGE_GIF": 3, + "IMAGE_PNG": 4, + "FLASH": 5, + "TEXT_HTML": 6, + "PDF": 7, + "MSWORD": 8, + "MSEXCEL": 9, + "RTF": 10, + "AUDIO_WAV": 11, + "AUDIO_MP3": 12, + "HTML5_AD_ZIP": 13, +} + +func (x MimeTypeEnum_MimeType) String() string { + return proto.EnumName(MimeTypeEnum_MimeType_name, int32(x)) +} +func (MimeTypeEnum_MimeType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_mime_type_488ab8ea3bec433a, []int{0, 0} +} + +// Container for enum describing the mime types. +type MimeTypeEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MimeTypeEnum) Reset() { *m = MimeTypeEnum{} } +func (m *MimeTypeEnum) String() string { return proto.CompactTextString(m) } +func (*MimeTypeEnum) ProtoMessage() {} +func (*MimeTypeEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_mime_type_488ab8ea3bec433a, []int{0} +} +func (m *MimeTypeEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MimeTypeEnum.Unmarshal(m, b) +} +func (m *MimeTypeEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MimeTypeEnum.Marshal(b, m, deterministic) +} +func (dst *MimeTypeEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_MimeTypeEnum.Merge(dst, src) +} +func (m *MimeTypeEnum) XXX_Size() int { + return xxx_messageInfo_MimeTypeEnum.Size(m) +} +func (m *MimeTypeEnum) XXX_DiscardUnknown() { + xxx_messageInfo_MimeTypeEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_MimeTypeEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*MimeTypeEnum)(nil), "google.ads.googleads.v0.enums.MimeTypeEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.MimeTypeEnum_MimeType", MimeTypeEnum_MimeType_name, MimeTypeEnum_MimeType_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/mime_type.proto", fileDescriptor_mime_type_488ab8ea3bec433a) +} + +var fileDescriptor_mime_type_488ab8ea3bec433a = []byte{ + // 356 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x91, 0xcd, 0x6e, 0xaa, 0x40, + 0x1c, 0xc5, 0x2f, 0x7a, 0xfd, 0x1a, 0xf5, 0xde, 0x7f, 0x66, 0xef, 0xa2, 0xee, 0x3b, 0x90, 0x98, + 0xae, 0xba, 0x1a, 0x65, 0x40, 0x5a, 0xc1, 0x89, 0xe0, 0x47, 0x0c, 0x09, 0xb1, 0x85, 0x10, 0x13, + 0xf9, 0x88, 0xa8, 0x89, 0xaf, 0xd3, 0x65, 0x1f, 0xa2, 0x0f, 0xd0, 0xbe, 0x42, 0x1f, 0xa6, 0x19, + 0x28, 0xba, 0x6a, 0x37, 0xe4, 0x1c, 0xce, 0x99, 0xff, 0x3f, 0xf3, 0x1b, 0x74, 0x1b, 0x26, 0x49, + 0xb8, 0x0b, 0xe4, 0x8d, 0x9f, 0xc9, 0x85, 0x14, 0xea, 0xa4, 0xc8, 0x41, 0x7c, 0x8c, 0x32, 0x39, + 0xda, 0x46, 0x81, 0x77, 0x38, 0xa7, 0x01, 0x49, 0xf7, 0xc9, 0x21, 0xc1, 0xbd, 0xa2, 0x43, 0x36, + 0x7e, 0x46, 0x2e, 0x75, 0x72, 0x52, 0x48, 0x5e, 0xef, 0x7f, 0x4a, 0xa8, 0x63, 0x6e, 0xa3, 0xc0, + 0x39, 0xa7, 0x01, 0x8b, 0x8f, 0x51, 0xff, 0x43, 0x42, 0xcd, 0xf2, 0x07, 0xfe, 0x8f, 0xda, 0x73, + 0xcb, 0xe6, 0x6c, 0x64, 0x68, 0x06, 0x53, 0xe1, 0x0f, 0x6e, 0xa3, 0xc6, 0xdc, 0x7a, 0xb4, 0xa6, + 0x4b, 0x0b, 0x24, 0xfc, 0x0f, 0x21, 0xc3, 0xa4, 0x3a, 0xf3, 0x1e, 0x38, 0xd3, 0xa1, 0x82, 0xbb, + 0xa8, 0x55, 0x78, 0xdd, 0xd0, 0xa0, 0x7a, 0xb5, 0xdc, 0xd2, 0xe1, 0x2f, 0x6e, 0xa1, 0x9a, 0x36, + 0xa1, 0xf6, 0x18, 0x6a, 0x22, 0x71, 0xd8, 0xca, 0xf1, 0xc6, 0x8e, 0x39, 0x81, 0x3a, 0x6e, 0xa0, + 0x2a, 0x57, 0x35, 0x68, 0x60, 0x84, 0xea, 0xa6, 0xbd, 0x9c, 0xce, 0x54, 0x68, 0x8a, 0x4d, 0xa6, + 0xcd, 0x56, 0x23, 0x36, 0x81, 0x96, 0x68, 0xcc, 0x1c, 0x0d, 0x90, 0x38, 0x49, 0xe7, 0xaa, 0x31, + 0xf5, 0x96, 0x74, 0x01, 0xed, 0xab, 0x35, 0xf9, 0x00, 0x3a, 0x18, 0x50, 0x47, 0x8c, 0xbc, 0xf3, + 0xa8, 0xea, 0xad, 0x0d, 0x0e, 0xdd, 0xe1, 0x9b, 0x84, 0x6e, 0x9e, 0x93, 0x88, 0xfc, 0x0a, 0x61, + 0xd8, 0x2d, 0x2f, 0xcc, 0x05, 0x32, 0x2e, 0xad, 0x87, 0xdf, 0xfd, 0x30, 0xd9, 0x6d, 0xe2, 0x90, + 0x24, 0xfb, 0x50, 0x0e, 0x83, 0x38, 0x07, 0x5a, 0x32, 0x4f, 0xb7, 0xd9, 0x0f, 0x4f, 0x70, 0x9f, + 0x7f, 0x5f, 0x2a, 0x55, 0x9d, 0xd2, 0xd7, 0x4a, 0x4f, 0x2f, 0x46, 0x51, 0x3f, 0x23, 0x85, 0x14, + 0x6a, 0xa1, 0x10, 0x41, 0x3b, 0x7b, 0x2f, 0x73, 0x97, 0xfa, 0x99, 0x7b, 0xc9, 0xdd, 0x85, 0xe2, + 0xe6, 0xf9, 0x53, 0x3d, 0x5f, 0x3a, 0xf8, 0x0a, 0x00, 0x00, 0xff, 0xff, 0xa8, 0x64, 0xde, 0xc3, + 0xf6, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/minute_of_hour.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/minute_of_hour.pb.go new file mode 100644 index 000000000..d46d2fd03 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/minute_of_hour.pb.go @@ -0,0 +1,123 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/minute_of_hour.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enumerates of quarter-hours. E.g. "FIFTEEN" +type MinuteOfHourEnum_MinuteOfHour int32 + +const ( + // Not specified. + MinuteOfHourEnum_UNSPECIFIED MinuteOfHourEnum_MinuteOfHour = 0 + // The value is unknown in this version. + MinuteOfHourEnum_UNKNOWN MinuteOfHourEnum_MinuteOfHour = 1 + // Zero minutes past the hour. + MinuteOfHourEnum_ZERO MinuteOfHourEnum_MinuteOfHour = 2 + // Fifteen minutes past the hour. + MinuteOfHourEnum_FIFTEEN MinuteOfHourEnum_MinuteOfHour = 3 + // Thirty minutes past the hour. + MinuteOfHourEnum_THIRTY MinuteOfHourEnum_MinuteOfHour = 4 + // Forty-five minutes past the hour. + MinuteOfHourEnum_FORTY_FIVE MinuteOfHourEnum_MinuteOfHour = 5 +) + +var MinuteOfHourEnum_MinuteOfHour_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "ZERO", + 3: "FIFTEEN", + 4: "THIRTY", + 5: "FORTY_FIVE", +} +var MinuteOfHourEnum_MinuteOfHour_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "ZERO": 2, + "FIFTEEN": 3, + "THIRTY": 4, + "FORTY_FIVE": 5, +} + +func (x MinuteOfHourEnum_MinuteOfHour) String() string { + return proto.EnumName(MinuteOfHourEnum_MinuteOfHour_name, int32(x)) +} +func (MinuteOfHourEnum_MinuteOfHour) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_minute_of_hour_498f12470e9a0321, []int{0, 0} +} + +// Container for enumeration of quarter-hours. +type MinuteOfHourEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MinuteOfHourEnum) Reset() { *m = MinuteOfHourEnum{} } +func (m *MinuteOfHourEnum) String() string { return proto.CompactTextString(m) } +func (*MinuteOfHourEnum) ProtoMessage() {} +func (*MinuteOfHourEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_minute_of_hour_498f12470e9a0321, []int{0} +} +func (m *MinuteOfHourEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MinuteOfHourEnum.Unmarshal(m, b) +} +func (m *MinuteOfHourEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MinuteOfHourEnum.Marshal(b, m, deterministic) +} +func (dst *MinuteOfHourEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_MinuteOfHourEnum.Merge(dst, src) +} +func (m *MinuteOfHourEnum) XXX_Size() int { + return xxx_messageInfo_MinuteOfHourEnum.Size(m) +} +func (m *MinuteOfHourEnum) XXX_DiscardUnknown() { + xxx_messageInfo_MinuteOfHourEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_MinuteOfHourEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*MinuteOfHourEnum)(nil), "google.ads.googleads.v0.enums.MinuteOfHourEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.MinuteOfHourEnum_MinuteOfHour", MinuteOfHourEnum_MinuteOfHour_name, MinuteOfHourEnum_MinuteOfHour_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/minute_of_hour.proto", fileDescriptor_minute_of_hour_498f12470e9a0321) +} + +var fileDescriptor_minute_of_hour_498f12470e9a0321 = []byte{ + // 287 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0xc1, 0x4e, 0xb3, 0x40, + 0x14, 0x85, 0x7f, 0x68, 0xff, 0x6a, 0x6e, 0x8d, 0x8e, 0xb3, 0xef, 0xc2, 0x3e, 0xc0, 0x40, 0x74, + 0xe9, 0x0a, 0x74, 0x68, 0x89, 0x11, 0x08, 0x52, 0x4c, 0x1b, 0x12, 0x82, 0x42, 0xc7, 0x26, 0x85, + 0xdb, 0x30, 0xa5, 0x0f, 0xe4, 0xd2, 0xc7, 0x70, 0xe9, 0x53, 0x19, 0x06, 0xdb, 0x74, 0xa3, 0x9b, + 0xc9, 0xc9, 0x3d, 0xf3, 0xcd, 0xdc, 0x73, 0xe0, 0x5a, 0x20, 0x8a, 0x75, 0x61, 0x64, 0xb9, 0x34, + 0x3a, 0xd9, 0xaa, 0x9d, 0x69, 0x14, 0x55, 0x53, 0x4a, 0xa3, 0x5c, 0x55, 0xcd, 0xb6, 0x48, 0x71, + 0x99, 0xbe, 0x61, 0x53, 0xb3, 0x4d, 0x8d, 0x5b, 0xa4, 0xa3, 0xee, 0x22, 0xcb, 0x72, 0xc9, 0x0e, + 0x0c, 0xdb, 0x99, 0x4c, 0x31, 0x63, 0x09, 0xe4, 0x51, 0x61, 0xfe, 0x72, 0x8a, 0x4d, 0xcd, 0xab, + 0xa6, 0x1c, 0xa7, 0x70, 0x76, 0x3c, 0xa3, 0x17, 0x30, 0x9c, 0x79, 0x4f, 0x01, 0xbf, 0x73, 0x1d, + 0x97, 0xdf, 0x93, 0x7f, 0x74, 0x08, 0x27, 0x33, 0xef, 0xc1, 0xf3, 0x9f, 0x3d, 0xa2, 0xd1, 0x53, + 0xe8, 0x2f, 0x78, 0xe8, 0x13, 0xbd, 0x1d, 0x3b, 0xae, 0x13, 0x71, 0xee, 0x91, 0x1e, 0x05, 0x18, + 0x44, 0x53, 0x37, 0x8c, 0xe6, 0xa4, 0x4f, 0xcf, 0x01, 0x1c, 0x3f, 0x8c, 0xe6, 0xa9, 0xe3, 0xc6, + 0x9c, 0xfc, 0xb7, 0x3f, 0x35, 0xb8, 0x7a, 0xc5, 0x92, 0xfd, 0xb9, 0x9a, 0x7d, 0x79, 0xbc, 0x44, + 0xd0, 0x86, 0x09, 0xb4, 0x85, 0xfd, 0xc3, 0x08, 0x5c, 0x67, 0x95, 0x60, 0x58, 0x0b, 0x43, 0x14, + 0x95, 0x8a, 0xba, 0xaf, 0x64, 0xb3, 0x92, 0xbf, 0x34, 0x74, 0xab, 0xce, 0x77, 0xbd, 0x37, 0xb1, + 0xac, 0x0f, 0x7d, 0x34, 0xe9, 0x9e, 0xb2, 0x72, 0xc9, 0x3a, 0xd9, 0xaa, 0xd8, 0x64, 0x6d, 0x09, + 0xf2, 0x6b, 0xef, 0x27, 0x56, 0x2e, 0x93, 0x83, 0x9f, 0xc4, 0x66, 0xa2, 0xfc, 0x97, 0x81, 0xfa, + 0xf4, 0xe6, 0x3b, 0x00, 0x00, 0xff, 0xff, 0xc2, 0x96, 0x97, 0x89, 0x95, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/month_of_year.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/month_of_year.pb.go new file mode 100644 index 000000000..1b7a71ec9 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/month_of_year.pb.go @@ -0,0 +1,159 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/month_of_year.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enumerates months of the year, e.g., "January". +type MonthOfYearEnum_MonthOfYear int32 + +const ( + // Not specified. + MonthOfYearEnum_UNSPECIFIED MonthOfYearEnum_MonthOfYear = 0 + // The value is unknown in this version. + MonthOfYearEnum_UNKNOWN MonthOfYearEnum_MonthOfYear = 1 + // January. + MonthOfYearEnum_JANUARY MonthOfYearEnum_MonthOfYear = 2 + // February. + MonthOfYearEnum_FEBRUARY MonthOfYearEnum_MonthOfYear = 3 + // March. + MonthOfYearEnum_MARCH MonthOfYearEnum_MonthOfYear = 4 + // April. + MonthOfYearEnum_APRIL MonthOfYearEnum_MonthOfYear = 5 + // May. + MonthOfYearEnum_MAY MonthOfYearEnum_MonthOfYear = 6 + // June. + MonthOfYearEnum_JUNE MonthOfYearEnum_MonthOfYear = 7 + // July. + MonthOfYearEnum_JULY MonthOfYearEnum_MonthOfYear = 8 + // August. + MonthOfYearEnum_AUGUST MonthOfYearEnum_MonthOfYear = 9 + // September. + MonthOfYearEnum_SEPTEMBER MonthOfYearEnum_MonthOfYear = 10 + // October. + MonthOfYearEnum_OCTOBER MonthOfYearEnum_MonthOfYear = 11 + // November. + MonthOfYearEnum_NOVEMBER MonthOfYearEnum_MonthOfYear = 12 + // December. + MonthOfYearEnum_DECEMBER MonthOfYearEnum_MonthOfYear = 13 +) + +var MonthOfYearEnum_MonthOfYear_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "JANUARY", + 3: "FEBRUARY", + 4: "MARCH", + 5: "APRIL", + 6: "MAY", + 7: "JUNE", + 8: "JULY", + 9: "AUGUST", + 10: "SEPTEMBER", + 11: "OCTOBER", + 12: "NOVEMBER", + 13: "DECEMBER", +} +var MonthOfYearEnum_MonthOfYear_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "JANUARY": 2, + "FEBRUARY": 3, + "MARCH": 4, + "APRIL": 5, + "MAY": 6, + "JUNE": 7, + "JULY": 8, + "AUGUST": 9, + "SEPTEMBER": 10, + "OCTOBER": 11, + "NOVEMBER": 12, + "DECEMBER": 13, +} + +func (x MonthOfYearEnum_MonthOfYear) String() string { + return proto.EnumName(MonthOfYearEnum_MonthOfYear_name, int32(x)) +} +func (MonthOfYearEnum_MonthOfYear) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_month_of_year_0ecbc5ae6aea17e4, []int{0, 0} +} + +// Container for enumeration of months of the year, e.g., "January". +type MonthOfYearEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MonthOfYearEnum) Reset() { *m = MonthOfYearEnum{} } +func (m *MonthOfYearEnum) String() string { return proto.CompactTextString(m) } +func (*MonthOfYearEnum) ProtoMessage() {} +func (*MonthOfYearEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_month_of_year_0ecbc5ae6aea17e4, []int{0} +} +func (m *MonthOfYearEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MonthOfYearEnum.Unmarshal(m, b) +} +func (m *MonthOfYearEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MonthOfYearEnum.Marshal(b, m, deterministic) +} +func (dst *MonthOfYearEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_MonthOfYearEnum.Merge(dst, src) +} +func (m *MonthOfYearEnum) XXX_Size() int { + return xxx_messageInfo_MonthOfYearEnum.Size(m) +} +func (m *MonthOfYearEnum) XXX_DiscardUnknown() { + xxx_messageInfo_MonthOfYearEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_MonthOfYearEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*MonthOfYearEnum)(nil), "google.ads.googleads.v0.enums.MonthOfYearEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.MonthOfYearEnum_MonthOfYear", MonthOfYearEnum_MonthOfYear_name, MonthOfYearEnum_MonthOfYear_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/month_of_year.proto", fileDescriptor_month_of_year_0ecbc5ae6aea17e4) +} + +var fileDescriptor_month_of_year_0ecbc5ae6aea17e4 = []byte{ + // 344 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0xcd, 0x4e, 0xc2, 0x40, + 0x14, 0x85, 0x2d, 0xff, 0xdc, 0x42, 0x98, 0xcc, 0x9e, 0x85, 0x3c, 0xc0, 0xb4, 0xc6, 0xa5, 0xab, + 0x69, 0x19, 0x10, 0xa4, 0x3f, 0x29, 0x14, 0x53, 0xd3, 0x84, 0x54, 0x5b, 0xaa, 0x09, 0xed, 0x90, + 0x16, 0x48, 0x7c, 0x1d, 0x97, 0xbe, 0x83, 0x0b, 0xb7, 0xee, 0x7c, 0x23, 0x33, 0xad, 0x10, 0x36, + 0xba, 0x99, 0x7c, 0x67, 0xce, 0x9c, 0xb9, 0xb9, 0x07, 0xae, 0x62, 0xce, 0xe3, 0x4d, 0xa4, 0x04, + 0x61, 0xae, 0x94, 0x28, 0xe8, 0xa0, 0x2a, 0x51, 0xba, 0x4f, 0x72, 0x25, 0xe1, 0xe9, 0xee, 0x79, + 0xc5, 0xd7, 0xab, 0xd7, 0x28, 0xc8, 0xc8, 0x36, 0xe3, 0x3b, 0x8e, 0xfb, 0xe5, 0x3b, 0x12, 0x84, + 0x39, 0x39, 0x45, 0xc8, 0x41, 0x25, 0x45, 0x64, 0xf0, 0x2d, 0x41, 0xcf, 0x10, 0x31, 0x6b, 0xed, + 0x45, 0x41, 0xc6, 0xd2, 0x7d, 0x32, 0xf8, 0x90, 0x40, 0x3e, 0xbb, 0xc3, 0x3d, 0x90, 0x5d, 0x73, + 0x6e, 0x33, 0x7d, 0x32, 0x9a, 0xb0, 0x21, 0xba, 0xc0, 0x32, 0x34, 0x5d, 0xf3, 0xce, 0xb4, 0xee, + 0x4d, 0x24, 0x09, 0x31, 0xa5, 0xa6, 0x4b, 0x1d, 0x0f, 0x55, 0x70, 0x07, 0x5a, 0x23, 0xa6, 0x39, + 0x85, 0xaa, 0xe2, 0x36, 0xd4, 0x0d, 0xea, 0xe8, 0xb7, 0xa8, 0x26, 0x90, 0xda, 0xce, 0x64, 0x86, + 0xea, 0xb8, 0x09, 0x55, 0x83, 0x7a, 0xa8, 0x81, 0x5b, 0x50, 0x9b, 0xba, 0x26, 0x43, 0xcd, 0x92, + 0x66, 0x1e, 0x6a, 0x61, 0x80, 0x06, 0x75, 0xc7, 0xee, 0x7c, 0x81, 0xda, 0xb8, 0x0b, 0xed, 0x39, + 0xb3, 0x17, 0xcc, 0xd0, 0x98, 0x83, 0x40, 0x0c, 0xb2, 0xf4, 0x85, 0x25, 0x84, 0x2c, 0x06, 0x99, + 0xd6, 0xb2, 0xb4, 0x3a, 0x42, 0x0d, 0x99, 0x5e, 0xaa, 0xae, 0xf6, 0x29, 0xc1, 0xe5, 0x13, 0x4f, + 0xc8, 0xbf, 0x9b, 0x6b, 0xe8, 0x6c, 0x45, 0x5b, 0x54, 0x65, 0x4b, 0x0f, 0xda, 0x6f, 0x24, 0xe6, + 0x9b, 0x20, 0x8d, 0x09, 0xcf, 0x62, 0x25, 0x8e, 0xd2, 0xa2, 0xc8, 0x63, 0xdf, 0xdb, 0x97, 0xfc, + 0x8f, 0xfa, 0x6f, 0x8a, 0xf3, 0xad, 0x52, 0x1d, 0x53, 0xfa, 0x5e, 0xe9, 0x8f, 0xcb, 0xaf, 0x68, + 0x98, 0x93, 0x12, 0x05, 0x2d, 0x55, 0x22, 0x2a, 0xce, 0xbf, 0x8e, 0xbe, 0x4f, 0xc3, 0xdc, 0x3f, + 0xf9, 0xfe, 0x52, 0xf5, 0x0b, 0xff, 0xb1, 0x51, 0x0c, 0xbd, 0xfe, 0x09, 0x00, 0x00, 0xff, 0xff, + 0xce, 0x84, 0x46, 0xe2, 0xf2, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/page_one_promoted_strategy_goal.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/page_one_promoted_strategy_goal.pb.go new file mode 100644 index 000000000..63ea9cfd7 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/page_one_promoted_strategy_goal.pb.go @@ -0,0 +1,117 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/page_one_promoted_strategy_goal.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible strategy goals. +type PageOnePromotedStrategyGoalEnum_PageOnePromotedStrategyGoal int32 + +const ( + // Not specified. + PageOnePromotedStrategyGoalEnum_UNSPECIFIED PageOnePromotedStrategyGoalEnum_PageOnePromotedStrategyGoal = 0 + // Used for return value only. Represents value unknown in this version. + PageOnePromotedStrategyGoalEnum_UNKNOWN PageOnePromotedStrategyGoalEnum_PageOnePromotedStrategyGoal = 1 + // First page on google.com. + PageOnePromotedStrategyGoalEnum_FIRST_PAGE PageOnePromotedStrategyGoalEnum_PageOnePromotedStrategyGoal = 2 + // Top slots of the first page on google.com. + PageOnePromotedStrategyGoalEnum_FIRST_PAGE_PROMOTED PageOnePromotedStrategyGoalEnum_PageOnePromotedStrategyGoal = 3 +) + +var PageOnePromotedStrategyGoalEnum_PageOnePromotedStrategyGoal_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "FIRST_PAGE", + 3: "FIRST_PAGE_PROMOTED", +} +var PageOnePromotedStrategyGoalEnum_PageOnePromotedStrategyGoal_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "FIRST_PAGE": 2, + "FIRST_PAGE_PROMOTED": 3, +} + +func (x PageOnePromotedStrategyGoalEnum_PageOnePromotedStrategyGoal) String() string { + return proto.EnumName(PageOnePromotedStrategyGoalEnum_PageOnePromotedStrategyGoal_name, int32(x)) +} +func (PageOnePromotedStrategyGoalEnum_PageOnePromotedStrategyGoal) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_page_one_promoted_strategy_goal_9679274d22e7547d, []int{0, 0} +} + +// Container for enum describing possible strategy goals: where impressions are +// desired to be shown on search result pages. +type PageOnePromotedStrategyGoalEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PageOnePromotedStrategyGoalEnum) Reset() { *m = PageOnePromotedStrategyGoalEnum{} } +func (m *PageOnePromotedStrategyGoalEnum) String() string { return proto.CompactTextString(m) } +func (*PageOnePromotedStrategyGoalEnum) ProtoMessage() {} +func (*PageOnePromotedStrategyGoalEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_page_one_promoted_strategy_goal_9679274d22e7547d, []int{0} +} +func (m *PageOnePromotedStrategyGoalEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PageOnePromotedStrategyGoalEnum.Unmarshal(m, b) +} +func (m *PageOnePromotedStrategyGoalEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PageOnePromotedStrategyGoalEnum.Marshal(b, m, deterministic) +} +func (dst *PageOnePromotedStrategyGoalEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_PageOnePromotedStrategyGoalEnum.Merge(dst, src) +} +func (m *PageOnePromotedStrategyGoalEnum) XXX_Size() int { + return xxx_messageInfo_PageOnePromotedStrategyGoalEnum.Size(m) +} +func (m *PageOnePromotedStrategyGoalEnum) XXX_DiscardUnknown() { + xxx_messageInfo_PageOnePromotedStrategyGoalEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_PageOnePromotedStrategyGoalEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*PageOnePromotedStrategyGoalEnum)(nil), "google.ads.googleads.v0.enums.PageOnePromotedStrategyGoalEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.PageOnePromotedStrategyGoalEnum_PageOnePromotedStrategyGoal", PageOnePromotedStrategyGoalEnum_PageOnePromotedStrategyGoal_name, PageOnePromotedStrategyGoalEnum_PageOnePromotedStrategyGoal_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/page_one_promoted_strategy_goal.proto", fileDescriptor_page_one_promoted_strategy_goal_9679274d22e7547d) +} + +var fileDescriptor_page_one_promoted_strategy_goal_9679274d22e7547d = []byte{ + // 295 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0xcf, 0x4a, 0xc3, 0x30, + 0x1c, 0xc7, 0x6d, 0x07, 0x0a, 0x19, 0x68, 0xa9, 0x07, 0x0f, 0x32, 0xd4, 0x3d, 0x40, 0x5a, 0xf0, + 0xe8, 0xa9, 0xdd, 0xba, 0x52, 0xc4, 0x36, 0xac, 0xdb, 0x04, 0x29, 0x84, 0x68, 0x42, 0x10, 0xda, + 0xfc, 0x4a, 0xd3, 0x0d, 0x7c, 0x02, 0xdf, 0xc3, 0xa3, 0x8f, 0xe2, 0xcd, 0x37, 0x92, 0xfe, 0xd9, + 0x3c, 0xad, 0x97, 0xf0, 0x0d, 0xdf, 0xe4, 0x93, 0x5f, 0x3e, 0x68, 0x26, 0x01, 0x64, 0x2e, 0x1c, + 0xc6, 0xb5, 0xd3, 0xc5, 0x26, 0xed, 0x5c, 0x47, 0xa8, 0x6d, 0xa1, 0x9d, 0x92, 0x49, 0x41, 0x41, + 0x09, 0x5a, 0x56, 0x50, 0x40, 0x2d, 0x38, 0xd5, 0x75, 0xc5, 0x6a, 0x21, 0x3f, 0xa8, 0x04, 0x96, + 0xe3, 0xb2, 0x82, 0x1a, 0xec, 0x49, 0x77, 0x13, 0x33, 0xae, 0xf1, 0x01, 0x82, 0x77, 0x2e, 0x6e, + 0x21, 0xd3, 0x4f, 0x03, 0xdd, 0x10, 0x26, 0x45, 0xa2, 0x04, 0xe9, 0x31, 0x69, 0x4f, 0x09, 0x81, + 0xe5, 0x81, 0xda, 0x16, 0x53, 0x8e, 0xae, 0x07, 0x8e, 0xd8, 0x17, 0x68, 0xbc, 0x8e, 0x53, 0x12, + 0xcc, 0xa2, 0x45, 0x14, 0xcc, 0xad, 0x13, 0x7b, 0x8c, 0xce, 0xd6, 0xf1, 0x63, 0x9c, 0x3c, 0xc7, + 0x96, 0x61, 0x9f, 0x23, 0xb4, 0x88, 0x96, 0xe9, 0x8a, 0x12, 0x2f, 0x0c, 0x2c, 0xd3, 0xbe, 0x42, + 0x97, 0xff, 0x7b, 0x4a, 0x96, 0xc9, 0x53, 0xb2, 0x0a, 0xe6, 0xd6, 0xc8, 0xff, 0x35, 0xd0, 0xdd, + 0x1b, 0x14, 0x78, 0x70, 0x5e, 0xff, 0x76, 0x60, 0x12, 0xd2, 0x7c, 0x98, 0x18, 0x2f, 0x7e, 0x8f, + 0x90, 0x90, 0x33, 0x25, 0x31, 0x54, 0xd2, 0x91, 0x42, 0xb5, 0x3a, 0xf6, 0x1e, 0xcb, 0x77, 0x7d, + 0x44, 0xeb, 0x43, 0xbb, 0x7e, 0x99, 0xa3, 0xd0, 0xf3, 0xbe, 0xcd, 0x49, 0xd8, 0xa1, 0x3c, 0xae, + 0x71, 0x17, 0x9b, 0xb4, 0x71, 0x71, 0x23, 0x46, 0xff, 0xec, 0xfb, 0xcc, 0xe3, 0x3a, 0x3b, 0xf4, + 0xd9, 0xc6, 0xcd, 0xda, 0xfe, 0xf5, 0xb4, 0x7d, 0xf4, 0xfe, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x95, + 0x7d, 0x22, 0x31, 0xca, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/parental_status_type.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/parental_status_type.pb.go new file mode 100644 index 000000000..240e7b2bc --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/parental_status_type.pb.go @@ -0,0 +1,120 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/parental_status_type.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// The type of parental statuses (e.g. not a parent). +type ParentalStatusTypeEnum_ParentalStatusType int32 + +const ( + // Not specified. + ParentalStatusTypeEnum_UNSPECIFIED ParentalStatusTypeEnum_ParentalStatusType = 0 + // Used for return value only. Represents value unknown in this version. + ParentalStatusTypeEnum_UNKNOWN ParentalStatusTypeEnum_ParentalStatusType = 1 + // Parent. + ParentalStatusTypeEnum_PARENT ParentalStatusTypeEnum_ParentalStatusType = 300 + // Not a parent. + ParentalStatusTypeEnum_NOT_A_PARENT ParentalStatusTypeEnum_ParentalStatusType = 301 + // Undetermined parental status. + ParentalStatusTypeEnum_UNDETERMINED ParentalStatusTypeEnum_ParentalStatusType = 302 +) + +var ParentalStatusTypeEnum_ParentalStatusType_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 300: "PARENT", + 301: "NOT_A_PARENT", + 302: "UNDETERMINED", +} +var ParentalStatusTypeEnum_ParentalStatusType_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "PARENT": 300, + "NOT_A_PARENT": 301, + "UNDETERMINED": 302, +} + +func (x ParentalStatusTypeEnum_ParentalStatusType) String() string { + return proto.EnumName(ParentalStatusTypeEnum_ParentalStatusType_name, int32(x)) +} +func (ParentalStatusTypeEnum_ParentalStatusType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_parental_status_type_345646dd1d155058, []int{0, 0} +} + +// Container for enum describing the type of demographic parental statuses. +type ParentalStatusTypeEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ParentalStatusTypeEnum) Reset() { *m = ParentalStatusTypeEnum{} } +func (m *ParentalStatusTypeEnum) String() string { return proto.CompactTextString(m) } +func (*ParentalStatusTypeEnum) ProtoMessage() {} +func (*ParentalStatusTypeEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_parental_status_type_345646dd1d155058, []int{0} +} +func (m *ParentalStatusTypeEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ParentalStatusTypeEnum.Unmarshal(m, b) +} +func (m *ParentalStatusTypeEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ParentalStatusTypeEnum.Marshal(b, m, deterministic) +} +func (dst *ParentalStatusTypeEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_ParentalStatusTypeEnum.Merge(dst, src) +} +func (m *ParentalStatusTypeEnum) XXX_Size() int { + return xxx_messageInfo_ParentalStatusTypeEnum.Size(m) +} +func (m *ParentalStatusTypeEnum) XXX_DiscardUnknown() { + xxx_messageInfo_ParentalStatusTypeEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_ParentalStatusTypeEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*ParentalStatusTypeEnum)(nil), "google.ads.googleads.v0.enums.ParentalStatusTypeEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.ParentalStatusTypeEnum_ParentalStatusType", ParentalStatusTypeEnum_ParentalStatusType_name, ParentalStatusTypeEnum_ParentalStatusType_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/parental_status_type.proto", fileDescriptor_parental_status_type_345646dd1d155058) +} + +var fileDescriptor_parental_status_type_345646dd1d155058 = []byte{ + // 289 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x48, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xbc, + 0xd2, 0xdc, 0x62, 0xfd, 0x82, 0xc4, 0xa2, 0xd4, 0xbc, 0x92, 0xc4, 0x9c, 0xf8, 0xe2, 0x92, 0xc4, + 0x92, 0xd2, 0xe2, 0xf8, 0x92, 0xca, 0x82, 0x54, 0xbd, 0x82, 0xa2, 0xfc, 0x92, 0x7c, 0x21, 0x59, + 0x88, 0x72, 0xbd, 0xc4, 0x94, 0x62, 0x3d, 0xb8, 0x4e, 0xbd, 0x32, 0x03, 0x3d, 0xb0, 0x4e, 0xa5, + 0x7a, 0x2e, 0xb1, 0x00, 0xa8, 0xe6, 0x60, 0xb0, 0xde, 0x90, 0xca, 0x82, 0x54, 0xd7, 0xbc, 0xd2, + 0x5c, 0xa5, 0x54, 0x2e, 0x21, 0x4c, 0x19, 0x21, 0x7e, 0x2e, 0xee, 0x50, 0xbf, 0xe0, 0x00, 0x57, + 0x67, 0x4f, 0x37, 0x4f, 0x57, 0x17, 0x01, 0x06, 0x21, 0x6e, 0x2e, 0xf6, 0x50, 0x3f, 0x6f, 0x3f, + 0xff, 0x70, 0x3f, 0x01, 0x46, 0x21, 0x6e, 0x2e, 0xb6, 0x00, 0xc7, 0x20, 0x57, 0xbf, 0x10, 0x81, + 0x35, 0x4c, 0x42, 0x82, 0x5c, 0x3c, 0x7e, 0xfe, 0x21, 0xf1, 0x8e, 0xf1, 0x50, 0xa1, 0xb5, 0x60, + 0xa1, 0x50, 0x3f, 0x17, 0xd7, 0x10, 0xd7, 0x20, 0x5f, 0x4f, 0x3f, 0x57, 0x17, 0x81, 0x75, 0x4c, + 0x4e, 0x27, 0x18, 0xb9, 0x14, 0x93, 0xf3, 0x73, 0xf5, 0xf0, 0x3a, 0xd3, 0x49, 0x1c, 0xd3, 0x29, + 0x01, 0x20, 0xef, 0x05, 0x30, 0x46, 0x39, 0x41, 0x75, 0xa6, 0xe7, 0xe7, 0x24, 0xe6, 0xa5, 0xeb, + 0xe5, 0x17, 0xa5, 0xeb, 0xa7, 0xa7, 0xe6, 0x81, 0x3d, 0x0f, 0x0b, 0xaa, 0x82, 0xcc, 0x62, 0x1c, + 0x21, 0x67, 0x0d, 0x26, 0x17, 0x31, 0x31, 0xbb, 0x3b, 0x3a, 0xae, 0x62, 0x92, 0x75, 0x87, 0x18, + 0xe5, 0x98, 0x52, 0xac, 0x07, 0x61, 0x82, 0x58, 0x61, 0x06, 0x7a, 0xa0, 0x00, 0x29, 0x3e, 0x05, + 0x93, 0x8f, 0x71, 0x4c, 0x29, 0x8e, 0x81, 0xcb, 0xc7, 0x84, 0x19, 0xc4, 0x80, 0xe5, 0x93, 0xd8, + 0xc0, 0x96, 0x1a, 0x03, 0x02, 0x00, 0x00, 0xff, 0xff, 0x60, 0xad, 0x5c, 0x54, 0xad, 0x01, 0x00, + 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/placeholder_type.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/placeholder_type.pb.go new file mode 100644 index 000000000..d50889d87 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/placeholder_type.pb.go @@ -0,0 +1,194 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/placeholder_type.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Possible placeholder types for a feed mapping. +type PlaceholderTypeEnum_PlaceholderType int32 + +const ( + // Not specified. + PlaceholderTypeEnum_UNSPECIFIED PlaceholderTypeEnum_PlaceholderType = 0 + // Used for return value only. Represents value unknown in this version. + PlaceholderTypeEnum_UNKNOWN PlaceholderTypeEnum_PlaceholderType = 1 + // Sitelink. + PlaceholderTypeEnum_SITELINK PlaceholderTypeEnum_PlaceholderType = 2 + // Call. + PlaceholderTypeEnum_CALL PlaceholderTypeEnum_PlaceholderType = 3 + // App. + PlaceholderTypeEnum_APP PlaceholderTypeEnum_PlaceholderType = 4 + // Location. + PlaceholderTypeEnum_LOCATION PlaceholderTypeEnum_PlaceholderType = 5 + // Affiliate location. + PlaceholderTypeEnum_AFFILIATE_LOCATION PlaceholderTypeEnum_PlaceholderType = 6 + // Callout. + PlaceholderTypeEnum_CALLOUT PlaceholderTypeEnum_PlaceholderType = 7 + // Structured snippet. + PlaceholderTypeEnum_STRUCTURED_SNIPPET PlaceholderTypeEnum_PlaceholderType = 8 + // Message. + PlaceholderTypeEnum_MESSAGE PlaceholderTypeEnum_PlaceholderType = 9 + // Price. + PlaceholderTypeEnum_PRICE PlaceholderTypeEnum_PlaceholderType = 10 + // Promotion. + PlaceholderTypeEnum_PROMOTION PlaceholderTypeEnum_PlaceholderType = 11 + // Ad customizer. + PlaceholderTypeEnum_AD_CUSTOMIZER PlaceholderTypeEnum_PlaceholderType = 12 + // Dynamic education. + PlaceholderTypeEnum_DYNAMIC_EDUCATION PlaceholderTypeEnum_PlaceholderType = 13 + // Dynamic flights. + PlaceholderTypeEnum_DYNAMIC_FLIGHT PlaceholderTypeEnum_PlaceholderType = 14 + // Dynamic custom. + PlaceholderTypeEnum_DYNAMIC_CUSTOM PlaceholderTypeEnum_PlaceholderType = 15 + // Dynamic hotels. + PlaceholderTypeEnum_DYNAMIC_HOTEL PlaceholderTypeEnum_PlaceholderType = 16 + // Dynamic real estate. + PlaceholderTypeEnum_DYNAMIC_REAL_ESTATE PlaceholderTypeEnum_PlaceholderType = 17 + // Dynamic travel. + PlaceholderTypeEnum_DYNAMIC_TRAVEL PlaceholderTypeEnum_PlaceholderType = 18 + // Dynamic local. + PlaceholderTypeEnum_DYNAMIC_LOCAL PlaceholderTypeEnum_PlaceholderType = 19 + // Dynamic jobs. + PlaceholderTypeEnum_DYNAMIC_JOB PlaceholderTypeEnum_PlaceholderType = 20 +) + +var PlaceholderTypeEnum_PlaceholderType_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "SITELINK", + 3: "CALL", + 4: "APP", + 5: "LOCATION", + 6: "AFFILIATE_LOCATION", + 7: "CALLOUT", + 8: "STRUCTURED_SNIPPET", + 9: "MESSAGE", + 10: "PRICE", + 11: "PROMOTION", + 12: "AD_CUSTOMIZER", + 13: "DYNAMIC_EDUCATION", + 14: "DYNAMIC_FLIGHT", + 15: "DYNAMIC_CUSTOM", + 16: "DYNAMIC_HOTEL", + 17: "DYNAMIC_REAL_ESTATE", + 18: "DYNAMIC_TRAVEL", + 19: "DYNAMIC_LOCAL", + 20: "DYNAMIC_JOB", +} +var PlaceholderTypeEnum_PlaceholderType_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "SITELINK": 2, + "CALL": 3, + "APP": 4, + "LOCATION": 5, + "AFFILIATE_LOCATION": 6, + "CALLOUT": 7, + "STRUCTURED_SNIPPET": 8, + "MESSAGE": 9, + "PRICE": 10, + "PROMOTION": 11, + "AD_CUSTOMIZER": 12, + "DYNAMIC_EDUCATION": 13, + "DYNAMIC_FLIGHT": 14, + "DYNAMIC_CUSTOM": 15, + "DYNAMIC_HOTEL": 16, + "DYNAMIC_REAL_ESTATE": 17, + "DYNAMIC_TRAVEL": 18, + "DYNAMIC_LOCAL": 19, + "DYNAMIC_JOB": 20, +} + +func (x PlaceholderTypeEnum_PlaceholderType) String() string { + return proto.EnumName(PlaceholderTypeEnum_PlaceholderType_name, int32(x)) +} +func (PlaceholderTypeEnum_PlaceholderType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_placeholder_type_816ab67b31ba6b71, []int{0, 0} +} + +// Container for enum describing possible placeholder types for a feed mapping. +type PlaceholderTypeEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PlaceholderTypeEnum) Reset() { *m = PlaceholderTypeEnum{} } +func (m *PlaceholderTypeEnum) String() string { return proto.CompactTextString(m) } +func (*PlaceholderTypeEnum) ProtoMessage() {} +func (*PlaceholderTypeEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_placeholder_type_816ab67b31ba6b71, []int{0} +} +func (m *PlaceholderTypeEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PlaceholderTypeEnum.Unmarshal(m, b) +} +func (m *PlaceholderTypeEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PlaceholderTypeEnum.Marshal(b, m, deterministic) +} +func (dst *PlaceholderTypeEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_PlaceholderTypeEnum.Merge(dst, src) +} +func (m *PlaceholderTypeEnum) XXX_Size() int { + return xxx_messageInfo_PlaceholderTypeEnum.Size(m) +} +func (m *PlaceholderTypeEnum) XXX_DiscardUnknown() { + xxx_messageInfo_PlaceholderTypeEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_PlaceholderTypeEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*PlaceholderTypeEnum)(nil), "google.ads.googleads.v0.enums.PlaceholderTypeEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.PlaceholderTypeEnum_PlaceholderType", PlaceholderTypeEnum_PlaceholderType_name, PlaceholderTypeEnum_PlaceholderType_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/placeholder_type.proto", fileDescriptor_placeholder_type_816ab67b31ba6b71) +} + +var fileDescriptor_placeholder_type_816ab67b31ba6b71 = []byte{ + // 451 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x52, 0xc1, 0x6e, 0xda, 0x40, + 0x14, 0x2c, 0x90, 0x04, 0x58, 0x42, 0x78, 0x2c, 0x69, 0x7b, 0xca, 0xa1, 0xf9, 0x00, 0x1b, 0xa9, + 0xbd, 0xf5, 0xb4, 0xd8, 0x0f, 0xb2, 0xcd, 0xe2, 0x5d, 0xd9, 0x6b, 0xaa, 0x46, 0x48, 0x16, 0x8d, + 0x2d, 0xb7, 0x12, 0x60, 0x0b, 0x27, 0x91, 0xf2, 0x17, 0xfd, 0x86, 0x1e, 0xfb, 0x1f, 0xbd, 0xf4, + 0x8b, 0x7a, 0xac, 0xd6, 0x8e, 0x29, 0x8a, 0xd4, 0x5e, 0xac, 0xd1, 0xbc, 0x99, 0x79, 0xf2, 0xbe, + 0x21, 0xef, 0xd2, 0x2c, 0x4b, 0xd7, 0x89, 0xbd, 0x8a, 0x0b, 0xbb, 0x82, 0x06, 0x3d, 0x8c, 0xed, + 0x64, 0x7b, 0xbf, 0x29, 0xec, 0x7c, 0xbd, 0xba, 0x4d, 0xbe, 0x64, 0xeb, 0x38, 0xd9, 0x45, 0x77, + 0x8f, 0x79, 0x62, 0xe5, 0xbb, 0xec, 0x2e, 0xa3, 0x17, 0x95, 0xd4, 0x5a, 0xc5, 0x85, 0xb5, 0x77, + 0x59, 0x0f, 0x63, 0xab, 0x74, 0x5d, 0x7e, 0x6b, 0x91, 0x91, 0xfa, 0xeb, 0xd4, 0x8f, 0x79, 0x82, + 0xdb, 0xfb, 0xcd, 0xe5, 0xef, 0x26, 0x19, 0x3c, 0xe3, 0xe9, 0x80, 0xf4, 0x42, 0x2f, 0x50, 0xe8, + 0xf0, 0x29, 0x47, 0x17, 0x5e, 0xd0, 0x1e, 0x69, 0x87, 0xde, 0xb5, 0x27, 0x3f, 0x7a, 0xd0, 0xa0, + 0xa7, 0xa4, 0x13, 0x70, 0x8d, 0x82, 0x7b, 0xd7, 0xd0, 0xa4, 0x1d, 0x72, 0xe4, 0x30, 0x21, 0xa0, + 0x45, 0xdb, 0xa4, 0xc5, 0x94, 0x82, 0x23, 0x23, 0x10, 0xd2, 0x61, 0x9a, 0x4b, 0x0f, 0x8e, 0xe9, + 0x2b, 0x42, 0xd9, 0x74, 0xca, 0x05, 0x67, 0x1a, 0xa3, 0x3d, 0x7f, 0x62, 0x32, 0x8d, 0x51, 0x86, + 0x1a, 0xda, 0x46, 0x14, 0x68, 0x3f, 0x74, 0x74, 0xe8, 0xa3, 0x1b, 0x05, 0x1e, 0x57, 0x0a, 0x35, + 0x74, 0x8c, 0x68, 0x8e, 0x41, 0xc0, 0x66, 0x08, 0x5d, 0xda, 0x25, 0xc7, 0xca, 0xe7, 0x0e, 0x02, + 0xa1, 0x7d, 0xd2, 0x55, 0xbe, 0x9c, 0xcb, 0x32, 0xab, 0x47, 0x87, 0xa4, 0xcf, 0xdc, 0xc8, 0x09, + 0x03, 0x2d, 0xe7, 0xfc, 0x06, 0x7d, 0x38, 0xa5, 0x2f, 0xc9, 0xd0, 0xfd, 0xe4, 0xb1, 0x39, 0x77, + 0x22, 0x74, 0xc3, 0xa7, 0xad, 0x7d, 0x4a, 0xc9, 0x59, 0x4d, 0x4f, 0x05, 0x9f, 0x5d, 0x69, 0x38, + 0x3b, 0xe4, 0xaa, 0x08, 0x18, 0x98, 0xc4, 0x9a, 0xbb, 0x92, 0x1a, 0x05, 0x00, 0x7d, 0x4d, 0x46, + 0x35, 0xe5, 0x23, 0x13, 0x11, 0x06, 0x9a, 0x69, 0x84, 0xe1, 0xa1, 0x5f, 0xfb, 0x6c, 0x81, 0x02, + 0xe8, 0xa1, 0xdf, 0xfc, 0xb3, 0x80, 0x91, 0x79, 0xd5, 0x9a, 0xfa, 0x20, 0x27, 0x70, 0x3e, 0xf9, + 0xd9, 0x20, 0x6f, 0x6e, 0xb3, 0x8d, 0xf5, 0xdf, 0xc3, 0x4d, 0xce, 0x9f, 0x5d, 0x47, 0x99, 0x6b, + 0xab, 0xc6, 0xcd, 0xe4, 0xc9, 0x96, 0x66, 0xeb, 0xd5, 0x36, 0xb5, 0xb2, 0x5d, 0x6a, 0xa7, 0xc9, + 0xb6, 0xec, 0x42, 0xdd, 0x9a, 0xfc, 0x6b, 0xf1, 0x8f, 0x12, 0xbd, 0x2f, 0xbf, 0xdf, 0x9b, 0xad, + 0x19, 0x63, 0x3f, 0x9a, 0x17, 0xb3, 0x2a, 0x8a, 0xc5, 0x85, 0x55, 0x41, 0x83, 0x16, 0x63, 0xcb, + 0x34, 0xa4, 0xf8, 0x55, 0xcf, 0x97, 0x2c, 0x2e, 0x96, 0xfb, 0xf9, 0x72, 0x31, 0x5e, 0x96, 0xf3, + 0xcf, 0x27, 0xe5, 0xd2, 0xb7, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x1f, 0xd3, 0x86, 0x87, 0xb8, + 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/policy_approval_status.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/policy_approval_status.pb.go new file mode 100644 index 000000000..7e3455130 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/policy_approval_status.pb.go @@ -0,0 +1,130 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/policy_approval_status.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// The possible policy approval statuses. When there are several approval +// statuses available the most severe one will be used. The order of severity +// is DISAPPROVED, AREA_OF_INTEREST_ONLY, APPROVED_LIMITED and APPROVED. +type PolicyApprovalStatusEnum_PolicyApprovalStatus int32 + +const ( + // No value has been specified. + PolicyApprovalStatusEnum_UNSPECIFIED PolicyApprovalStatusEnum_PolicyApprovalStatus = 0 + // The received value is not known in this version. + // + // This is a response-only value. + PolicyApprovalStatusEnum_UNKNOWN PolicyApprovalStatusEnum_PolicyApprovalStatus = 1 + // Will not serve. + PolicyApprovalStatusEnum_DISAPPROVED PolicyApprovalStatusEnum_PolicyApprovalStatus = 2 + // Serves with restrictions. + PolicyApprovalStatusEnum_APPROVED_LIMITED PolicyApprovalStatusEnum_PolicyApprovalStatus = 3 + // Serves without restrictions. + PolicyApprovalStatusEnum_APPROVED PolicyApprovalStatusEnum_PolicyApprovalStatus = 4 + // Will not serve in targeted countries, but may serve for users who are + // searching for information about the targeted countries. + PolicyApprovalStatusEnum_AREA_OF_INTEREST_ONLY PolicyApprovalStatusEnum_PolicyApprovalStatus = 5 +) + +var PolicyApprovalStatusEnum_PolicyApprovalStatus_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "DISAPPROVED", + 3: "APPROVED_LIMITED", + 4: "APPROVED", + 5: "AREA_OF_INTEREST_ONLY", +} +var PolicyApprovalStatusEnum_PolicyApprovalStatus_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "DISAPPROVED": 2, + "APPROVED_LIMITED": 3, + "APPROVED": 4, + "AREA_OF_INTEREST_ONLY": 5, +} + +func (x PolicyApprovalStatusEnum_PolicyApprovalStatus) String() string { + return proto.EnumName(PolicyApprovalStatusEnum_PolicyApprovalStatus_name, int32(x)) +} +func (PolicyApprovalStatusEnum_PolicyApprovalStatus) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_policy_approval_status_2ba8a47eda115be6, []int{0, 0} +} + +// Container for enum describing possible policy approval statuses. +type PolicyApprovalStatusEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PolicyApprovalStatusEnum) Reset() { *m = PolicyApprovalStatusEnum{} } +func (m *PolicyApprovalStatusEnum) String() string { return proto.CompactTextString(m) } +func (*PolicyApprovalStatusEnum) ProtoMessage() {} +func (*PolicyApprovalStatusEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_policy_approval_status_2ba8a47eda115be6, []int{0} +} +func (m *PolicyApprovalStatusEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PolicyApprovalStatusEnum.Unmarshal(m, b) +} +func (m *PolicyApprovalStatusEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PolicyApprovalStatusEnum.Marshal(b, m, deterministic) +} +func (dst *PolicyApprovalStatusEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_PolicyApprovalStatusEnum.Merge(dst, src) +} +func (m *PolicyApprovalStatusEnum) XXX_Size() int { + return xxx_messageInfo_PolicyApprovalStatusEnum.Size(m) +} +func (m *PolicyApprovalStatusEnum) XXX_DiscardUnknown() { + xxx_messageInfo_PolicyApprovalStatusEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_PolicyApprovalStatusEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*PolicyApprovalStatusEnum)(nil), "google.ads.googleads.v0.enums.PolicyApprovalStatusEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.PolicyApprovalStatusEnum_PolicyApprovalStatus", PolicyApprovalStatusEnum_PolicyApprovalStatus_name, PolicyApprovalStatusEnum_PolicyApprovalStatus_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/policy_approval_status.proto", fileDescriptor_policy_approval_status_2ba8a47eda115be6) +} + +var fileDescriptor_policy_approval_status_2ba8a47eda115be6 = []byte{ + // 311 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0x4f, 0x6b, 0xf2, 0x30, + 0x1c, 0xc7, 0x9f, 0xea, 0xb3, 0x3f, 0xc4, 0xc1, 0x42, 0x70, 0x30, 0x0f, 0x1e, 0xe6, 0x0b, 0x48, + 0x0b, 0xbb, 0x6d, 0xa7, 0xb8, 0x46, 0x09, 0x73, 0x69, 0xb0, 0xea, 0xd8, 0x28, 0x84, 0xcc, 0x4a, + 0x10, 0x6a, 0x53, 0x8c, 0x0a, 0xbb, 0xef, 0x8d, 0x6c, 0xc7, 0xbd, 0x14, 0x5f, 0xd5, 0x68, 0xaa, + 0x9e, 0xdc, 0x2e, 0xe1, 0x1b, 0xbe, 0xf9, 0x24, 0xf9, 0x7d, 0xc0, 0x9d, 0x36, 0x46, 0x67, 0x33, + 0x5f, 0xa5, 0xd6, 0xaf, 0x62, 0x99, 0x36, 0x81, 0x3f, 0xcb, 0xd7, 0x0b, 0xeb, 0x17, 0x26, 0x9b, + 0x4f, 0xdf, 0xa5, 0x2a, 0x8a, 0xa5, 0xd9, 0xa8, 0x4c, 0xda, 0x95, 0x5a, 0xad, 0x2d, 0x2e, 0x96, + 0x66, 0x65, 0x50, 0xbb, 0x02, 0xb0, 0x4a, 0x2d, 0x3e, 0xb0, 0x78, 0x13, 0x60, 0xc7, 0x76, 0x3e, + 0x3d, 0x70, 0x2d, 0x1c, 0x4f, 0x76, 0x78, 0xec, 0x68, 0x9a, 0xaf, 0x17, 0x9d, 0x0f, 0x0f, 0x34, + 0x8f, 0x95, 0xe8, 0x12, 0x34, 0xc6, 0x3c, 0x16, 0xf4, 0x81, 0xf5, 0x18, 0x0d, 0xe1, 0x3f, 0xd4, + 0x00, 0x67, 0x63, 0xfe, 0xc8, 0xa3, 0x67, 0x0e, 0xbd, 0xb2, 0x0d, 0x59, 0x4c, 0x84, 0x18, 0x46, + 0x13, 0x1a, 0xc2, 0x1a, 0x6a, 0x02, 0xb8, 0xdf, 0xc9, 0x01, 0x7b, 0x62, 0x23, 0x1a, 0xc2, 0x3a, + 0xba, 0x00, 0xe7, 0x87, 0x33, 0xff, 0x51, 0x0b, 0x5c, 0x91, 0x21, 0x25, 0x32, 0xea, 0x49, 0xc6, + 0x47, 0x74, 0x48, 0xe3, 0x91, 0x8c, 0xf8, 0xe0, 0x05, 0x9e, 0x74, 0xb7, 0x1e, 0xb8, 0x99, 0x9a, + 0x05, 0xfe, 0x73, 0x92, 0x6e, 0xeb, 0xd8, 0x4f, 0x45, 0xe9, 0x40, 0x78, 0xaf, 0xdd, 0x1d, 0xab, + 0x4d, 0xa6, 0x72, 0x8d, 0xcd, 0x52, 0xfb, 0x7a, 0x96, 0x3b, 0x43, 0x7b, 0xa3, 0xc5, 0xdc, 0xfe, + 0x22, 0xf8, 0xde, 0xad, 0x5f, 0xb5, 0x7a, 0x9f, 0x90, 0xef, 0x5a, 0xbb, 0x5f, 0x5d, 0x45, 0x52, + 0x8b, 0xab, 0x58, 0xa6, 0x49, 0x80, 0x4b, 0x65, 0x76, 0xbb, 0xef, 0x13, 0x92, 0xda, 0xe4, 0xd0, + 0x27, 0x93, 0x20, 0x71, 0xfd, 0xdb, 0xa9, 0x7b, 0xf4, 0xf6, 0x27, 0x00, 0x00, 0xff, 0xff, 0x3a, + 0x71, 0xbe, 0xc1, 0xd4, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/policy_review_status.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/policy_review_status.pb.go new file mode 100644 index 000000000..6f67337c0 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/policy_review_status.pb.go @@ -0,0 +1,123 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/policy_review_status.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// The possible policy review statuses. +type PolicyReviewStatusEnum_PolicyReviewStatus int32 + +const ( + // No value has been specified. + PolicyReviewStatusEnum_UNSPECIFIED PolicyReviewStatusEnum_PolicyReviewStatus = 0 + // The received value is not known in this version. + // + // This is a response-only value. + PolicyReviewStatusEnum_UNKNOWN PolicyReviewStatusEnum_PolicyReviewStatus = 1 + // Currently under review. + PolicyReviewStatusEnum_REVIEW_IN_PROGRESS PolicyReviewStatusEnum_PolicyReviewStatus = 2 + // Primary review complete. Other reviews may be continuing. + PolicyReviewStatusEnum_REVIEWED PolicyReviewStatusEnum_PolicyReviewStatus = 3 + // The resource has been resubmitted for approval or its policy decision has + // been appealed. + PolicyReviewStatusEnum_UNDER_APPEAL PolicyReviewStatusEnum_PolicyReviewStatus = 4 +) + +var PolicyReviewStatusEnum_PolicyReviewStatus_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "REVIEW_IN_PROGRESS", + 3: "REVIEWED", + 4: "UNDER_APPEAL", +} +var PolicyReviewStatusEnum_PolicyReviewStatus_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "REVIEW_IN_PROGRESS": 2, + "REVIEWED": 3, + "UNDER_APPEAL": 4, +} + +func (x PolicyReviewStatusEnum_PolicyReviewStatus) String() string { + return proto.EnumName(PolicyReviewStatusEnum_PolicyReviewStatus_name, int32(x)) +} +func (PolicyReviewStatusEnum_PolicyReviewStatus) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_policy_review_status_bda03f767fc6a7da, []int{0, 0} +} + +// Container for enum describing possible policy review statuses. +type PolicyReviewStatusEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PolicyReviewStatusEnum) Reset() { *m = PolicyReviewStatusEnum{} } +func (m *PolicyReviewStatusEnum) String() string { return proto.CompactTextString(m) } +func (*PolicyReviewStatusEnum) ProtoMessage() {} +func (*PolicyReviewStatusEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_policy_review_status_bda03f767fc6a7da, []int{0} +} +func (m *PolicyReviewStatusEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PolicyReviewStatusEnum.Unmarshal(m, b) +} +func (m *PolicyReviewStatusEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PolicyReviewStatusEnum.Marshal(b, m, deterministic) +} +func (dst *PolicyReviewStatusEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_PolicyReviewStatusEnum.Merge(dst, src) +} +func (m *PolicyReviewStatusEnum) XXX_Size() int { + return xxx_messageInfo_PolicyReviewStatusEnum.Size(m) +} +func (m *PolicyReviewStatusEnum) XXX_DiscardUnknown() { + xxx_messageInfo_PolicyReviewStatusEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_PolicyReviewStatusEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*PolicyReviewStatusEnum)(nil), "google.ads.googleads.v0.enums.PolicyReviewStatusEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.PolicyReviewStatusEnum_PolicyReviewStatus", PolicyReviewStatusEnum_PolicyReviewStatus_name, PolicyReviewStatusEnum_PolicyReviewStatus_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/policy_review_status.proto", fileDescriptor_policy_review_status_bda03f767fc6a7da) +} + +var fileDescriptor_policy_review_status_bda03f767fc6a7da = []byte{ + // 297 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0xc1, 0x4a, 0xfb, 0x30, + 0x1c, 0xc7, 0xff, 0xdd, 0xfe, 0xa8, 0x64, 0x03, 0x43, 0x0e, 0xf3, 0xb4, 0x83, 0x7b, 0x80, 0xb4, + 0xe0, 0x45, 0xf0, 0x94, 0xd9, 0x58, 0x8a, 0x92, 0x85, 0x96, 0x76, 0x20, 0x85, 0x52, 0xd7, 0x12, + 0x2a, 0x6d, 0x53, 0x9a, 0xb6, 0xe2, 0xdd, 0x27, 0xf1, 0xe8, 0x93, 0x88, 0x4f, 0x25, 0x4d, 0xdd, + 0x2e, 0x43, 0x2f, 0xe1, 0x4b, 0xbe, 0xf9, 0x24, 0xbf, 0x7c, 0xc0, 0xb5, 0x90, 0x52, 0x14, 0x99, + 0x99, 0xa4, 0xca, 0x1c, 0xe3, 0x90, 0x7a, 0xcb, 0xcc, 0xaa, 0xae, 0x54, 0x66, 0x2d, 0x8b, 0x7c, + 0xf7, 0x1a, 0x37, 0x59, 0x9f, 0x67, 0x2f, 0xb1, 0x6a, 0x93, 0xb6, 0x53, 0xb8, 0x6e, 0x64, 0x2b, + 0xd1, 0x72, 0x3c, 0x8e, 0x93, 0x54, 0xe1, 0x03, 0x89, 0x7b, 0x0b, 0x6b, 0x72, 0xf5, 0x66, 0x80, + 0x05, 0xd7, 0xb4, 0xa7, 0x61, 0x5f, 0xb3, 0xb4, 0xea, 0xca, 0xd5, 0x33, 0x40, 0xc7, 0x0d, 0x3a, + 0x07, 0xb3, 0x80, 0xf9, 0x9c, 0xde, 0xba, 0x77, 0x2e, 0xb5, 0xe1, 0x3f, 0x34, 0x03, 0xa7, 0x01, + 0xbb, 0x67, 0x9b, 0x2d, 0x83, 0x06, 0x5a, 0x00, 0xe4, 0xd1, 0xd0, 0xa5, 0xdb, 0xd8, 0x65, 0x31, + 0xf7, 0x36, 0x8e, 0x47, 0x7d, 0x1f, 0x4e, 0xd0, 0x1c, 0x9c, 0x8d, 0xfb, 0xd4, 0x86, 0x53, 0x04, + 0xc1, 0x3c, 0x60, 0x36, 0xf5, 0x62, 0xc2, 0x39, 0x25, 0x0f, 0xf0, 0xff, 0xfa, 0xd3, 0x00, 0x97, + 0x3b, 0x59, 0xe2, 0x3f, 0x87, 0x5d, 0x5f, 0x1c, 0xcf, 0xc3, 0x87, 0x4f, 0x72, 0xe3, 0x71, 0xfd, + 0x43, 0x0a, 0x59, 0x24, 0x95, 0xc0, 0xb2, 0x11, 0xa6, 0xc8, 0x2a, 0xad, 0x60, 0x2f, 0xac, 0xce, + 0xd5, 0x2f, 0xfe, 0x6e, 0xf4, 0xfa, 0x3e, 0x99, 0x3a, 0x84, 0x7c, 0x4c, 0x96, 0xce, 0x78, 0x15, + 0x49, 0x15, 0x1e, 0xe3, 0x90, 0x42, 0x0b, 0x0f, 0x56, 0xd4, 0xd7, 0xbe, 0x8f, 0x48, 0xaa, 0xa2, + 0x43, 0x1f, 0x85, 0x56, 0xa4, 0xfb, 0xa7, 0x13, 0xfd, 0xe8, 0xd5, 0x77, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xaa, 0xe0, 0x6f, 0x5b, 0xb3, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/policy_topic_entry_type.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/policy_topic_entry_type.pb.go new file mode 100644 index 000000000..0c34069d3 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/policy_topic_entry_type.pb.go @@ -0,0 +1,133 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/policy_topic_entry_type.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// The possible policy topic entry types. +type PolicyTopicEntryTypeEnum_PolicyTopicEntryType int32 + +const ( + // No value has been specified. + PolicyTopicEntryTypeEnum_UNSPECIFIED PolicyTopicEntryTypeEnum_PolicyTopicEntryType = 0 + // The received value is not known in this version. + // + // This is a response-only value. + PolicyTopicEntryTypeEnum_UNKNOWN PolicyTopicEntryTypeEnum_PolicyTopicEntryType = 1 + // The resource will not be served. + PolicyTopicEntryTypeEnum_PROHIBITED PolicyTopicEntryTypeEnum_PolicyTopicEntryType = 2 + // The resource will not be served under some circumstances. + PolicyTopicEntryTypeEnum_LIMITED PolicyTopicEntryTypeEnum_PolicyTopicEntryType = 4 + // May be of interest, but does not limit how the resource is served. + PolicyTopicEntryTypeEnum_DESCRIPTIVE PolicyTopicEntryTypeEnum_PolicyTopicEntryType = 5 + // Could increase coverage beyond normal. + PolicyTopicEntryTypeEnum_BROADENING PolicyTopicEntryTypeEnum_PolicyTopicEntryType = 6 + // Constrained for all targeted countries, but may serve in other countries + // through area of interest. + PolicyTopicEntryTypeEnum_AREA_OF_INTEREST_ONLY PolicyTopicEntryTypeEnum_PolicyTopicEntryType = 7 +) + +var PolicyTopicEntryTypeEnum_PolicyTopicEntryType_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "PROHIBITED", + 4: "LIMITED", + 5: "DESCRIPTIVE", + 6: "BROADENING", + 7: "AREA_OF_INTEREST_ONLY", +} +var PolicyTopicEntryTypeEnum_PolicyTopicEntryType_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "PROHIBITED": 2, + "LIMITED": 4, + "DESCRIPTIVE": 5, + "BROADENING": 6, + "AREA_OF_INTEREST_ONLY": 7, +} + +func (x PolicyTopicEntryTypeEnum_PolicyTopicEntryType) String() string { + return proto.EnumName(PolicyTopicEntryTypeEnum_PolicyTopicEntryType_name, int32(x)) +} +func (PolicyTopicEntryTypeEnum_PolicyTopicEntryType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_policy_topic_entry_type_52b04dc0fc027921, []int{0, 0} +} + +// Container for enum describing possible policy topic entry types. +type PolicyTopicEntryTypeEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PolicyTopicEntryTypeEnum) Reset() { *m = PolicyTopicEntryTypeEnum{} } +func (m *PolicyTopicEntryTypeEnum) String() string { return proto.CompactTextString(m) } +func (*PolicyTopicEntryTypeEnum) ProtoMessage() {} +func (*PolicyTopicEntryTypeEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_policy_topic_entry_type_52b04dc0fc027921, []int{0} +} +func (m *PolicyTopicEntryTypeEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PolicyTopicEntryTypeEnum.Unmarshal(m, b) +} +func (m *PolicyTopicEntryTypeEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PolicyTopicEntryTypeEnum.Marshal(b, m, deterministic) +} +func (dst *PolicyTopicEntryTypeEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_PolicyTopicEntryTypeEnum.Merge(dst, src) +} +func (m *PolicyTopicEntryTypeEnum) XXX_Size() int { + return xxx_messageInfo_PolicyTopicEntryTypeEnum.Size(m) +} +func (m *PolicyTopicEntryTypeEnum) XXX_DiscardUnknown() { + xxx_messageInfo_PolicyTopicEntryTypeEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_PolicyTopicEntryTypeEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*PolicyTopicEntryTypeEnum)(nil), "google.ads.googleads.v0.enums.PolicyTopicEntryTypeEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.PolicyTopicEntryTypeEnum_PolicyTopicEntryType", PolicyTopicEntryTypeEnum_PolicyTopicEntryType_name, PolicyTopicEntryTypeEnum_PolicyTopicEntryType_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/policy_topic_entry_type.proto", fileDescriptor_policy_topic_entry_type_52b04dc0fc027921) +} + +var fileDescriptor_policy_topic_entry_type_52b04dc0fc027921 = []byte{ + // 324 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0xc1, 0x6a, 0xc2, 0x30, + 0x1c, 0xc6, 0x57, 0xb7, 0x29, 0x44, 0xd8, 0x4a, 0xd9, 0x60, 0x1e, 0x3c, 0xcc, 0x07, 0x48, 0x0b, + 0x3b, 0x7a, 0x4a, 0x6d, 0x74, 0x61, 0x2e, 0x2d, 0xb5, 0x3a, 0x36, 0x0a, 0xc5, 0xd9, 0x10, 0x04, + 0x6d, 0x82, 0xa9, 0x42, 0x1f, 0x62, 0x2f, 0xb1, 0xa3, 0x8f, 0xe2, 0x53, 0x8d, 0xa4, 0xd3, 0x93, + 0xdb, 0x25, 0x7c, 0xe1, 0xcb, 0xef, 0x9f, 0xe4, 0x07, 0xfa, 0x5c, 0x08, 0xbe, 0x62, 0xee, 0x3c, + 0x57, 0x6e, 0x1d, 0x75, 0xda, 0x79, 0x2e, 0x2b, 0xb6, 0x6b, 0xe5, 0x4a, 0xb1, 0x5a, 0x2e, 0xaa, + 0xac, 0x14, 0x72, 0xb9, 0xc8, 0x58, 0x51, 0x6e, 0xaa, 0xac, 0xac, 0x24, 0x83, 0x72, 0x23, 0x4a, + 0xe1, 0x74, 0x6b, 0x02, 0xce, 0x73, 0x05, 0x4f, 0x30, 0xdc, 0x79, 0xd0, 0xc0, 0xbd, 0xbd, 0x05, + 0x1e, 0x22, 0x33, 0x20, 0xd1, 0x3c, 0xd6, 0x78, 0x52, 0x49, 0x86, 0x8b, 0xed, 0xba, 0xf7, 0x65, + 0x81, 0xbb, 0x73, 0xa5, 0x73, 0x0b, 0xda, 0x53, 0x3a, 0x89, 0xf0, 0x80, 0x0c, 0x09, 0x0e, 0xec, + 0x0b, 0xa7, 0x0d, 0x5a, 0x53, 0xfa, 0x42, 0xc3, 0x37, 0x6a, 0x5b, 0xce, 0x0d, 0x00, 0x51, 0x1c, + 0x3e, 0x13, 0x9f, 0x24, 0x38, 0xb0, 0x1b, 0xba, 0x1c, 0x93, 0x57, 0xb3, 0xb9, 0xd2, 0x68, 0x80, + 0x27, 0x83, 0x98, 0x44, 0x09, 0x99, 0x61, 0xfb, 0x5a, 0x9f, 0xf6, 0xe3, 0x10, 0x05, 0x98, 0x12, + 0x3a, 0xb2, 0x9b, 0x4e, 0x07, 0xdc, 0xa3, 0x18, 0xa3, 0x2c, 0x1c, 0x66, 0x84, 0x26, 0x38, 0xc6, + 0x93, 0x24, 0x0b, 0xe9, 0xf8, 0xdd, 0x6e, 0xf9, 0x07, 0x0b, 0x3c, 0x2e, 0xc4, 0x1a, 0xfe, 0xfb, + 0x25, 0xbf, 0x73, 0xee, 0xc9, 0x91, 0x96, 0x11, 0x59, 0x1f, 0xfe, 0x2f, 0xcb, 0xc5, 0x6a, 0x5e, + 0x70, 0x28, 0x36, 0xdc, 0xe5, 0xac, 0x30, 0xaa, 0x8e, 0x6e, 0xe5, 0x52, 0xfd, 0xa1, 0xba, 0x6f, + 0xd6, 0xef, 0xc6, 0xe5, 0x08, 0xa1, 0x7d, 0xa3, 0x3b, 0xaa, 0x47, 0xa1, 0x5c, 0xc1, 0x3a, 0xea, + 0x34, 0xf3, 0xa0, 0x76, 0xa7, 0x0e, 0xc7, 0x3e, 0x45, 0xb9, 0x4a, 0x4f, 0x7d, 0x3a, 0xf3, 0x52, + 0xd3, 0x7f, 0x36, 0xcd, 0xa5, 0x4f, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x35, 0x02, 0xfc, 0x7f, + 0xde, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/policy_topic_evidence_destination_mismatch_url_type.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/policy_topic_evidence_destination_mismatch_url_type.pb.go new file mode 100644 index 000000000..66c539f93 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/policy_topic_evidence_destination_mismatch_url_type.pb.go @@ -0,0 +1,138 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/policy_topic_evidence_destination_mismatch_url_type.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// The possible policy topic evidence destination mismatch url types. +type PolicyTopicEvidenceDestinationMismatchUrlTypeEnum_PolicyTopicEvidenceDestinationMismatchUrlType int32 + +const ( + // No value has been specified. + PolicyTopicEvidenceDestinationMismatchUrlTypeEnum_UNSPECIFIED PolicyTopicEvidenceDestinationMismatchUrlTypeEnum_PolicyTopicEvidenceDestinationMismatchUrlType = 0 + // The received value is not known in this version. + // + // This is a response-only value. + PolicyTopicEvidenceDestinationMismatchUrlTypeEnum_UNKNOWN PolicyTopicEvidenceDestinationMismatchUrlTypeEnum_PolicyTopicEvidenceDestinationMismatchUrlType = 1 + // The display url. + PolicyTopicEvidenceDestinationMismatchUrlTypeEnum_DISPLAY_URL PolicyTopicEvidenceDestinationMismatchUrlTypeEnum_PolicyTopicEvidenceDestinationMismatchUrlType = 2 + // The final url. + PolicyTopicEvidenceDestinationMismatchUrlTypeEnum_FINAL_URL PolicyTopicEvidenceDestinationMismatchUrlTypeEnum_PolicyTopicEvidenceDestinationMismatchUrlType = 3 + // The final mobile url. + PolicyTopicEvidenceDestinationMismatchUrlTypeEnum_FINAL_MOBILE_URL PolicyTopicEvidenceDestinationMismatchUrlTypeEnum_PolicyTopicEvidenceDestinationMismatchUrlType = 4 + // The tracking url template, with substituted desktop url. + PolicyTopicEvidenceDestinationMismatchUrlTypeEnum_TRACKING_URL PolicyTopicEvidenceDestinationMismatchUrlTypeEnum_PolicyTopicEvidenceDestinationMismatchUrlType = 5 + // The tracking url template, with substituted mobile url. + PolicyTopicEvidenceDestinationMismatchUrlTypeEnum_MOBILE_TRACKING_URL PolicyTopicEvidenceDestinationMismatchUrlTypeEnum_PolicyTopicEvidenceDestinationMismatchUrlType = 6 +) + +var PolicyTopicEvidenceDestinationMismatchUrlTypeEnum_PolicyTopicEvidenceDestinationMismatchUrlType_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "DISPLAY_URL", + 3: "FINAL_URL", + 4: "FINAL_MOBILE_URL", + 5: "TRACKING_URL", + 6: "MOBILE_TRACKING_URL", +} +var PolicyTopicEvidenceDestinationMismatchUrlTypeEnum_PolicyTopicEvidenceDestinationMismatchUrlType_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "DISPLAY_URL": 2, + "FINAL_URL": 3, + "FINAL_MOBILE_URL": 4, + "TRACKING_URL": 5, + "MOBILE_TRACKING_URL": 6, +} + +func (x PolicyTopicEvidenceDestinationMismatchUrlTypeEnum_PolicyTopicEvidenceDestinationMismatchUrlType) String() string { + return proto.EnumName(PolicyTopicEvidenceDestinationMismatchUrlTypeEnum_PolicyTopicEvidenceDestinationMismatchUrlType_name, int32(x)) +} +func (PolicyTopicEvidenceDestinationMismatchUrlTypeEnum_PolicyTopicEvidenceDestinationMismatchUrlType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_policy_topic_evidence_destination_mismatch_url_type_d09c4b0e366cf65b, []int{0, 0} +} + +// Container for enum describing possible policy topic evidence destination +// mismatch url types. +type PolicyTopicEvidenceDestinationMismatchUrlTypeEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PolicyTopicEvidenceDestinationMismatchUrlTypeEnum) Reset() { + *m = PolicyTopicEvidenceDestinationMismatchUrlTypeEnum{} +} +func (m *PolicyTopicEvidenceDestinationMismatchUrlTypeEnum) String() string { + return proto.CompactTextString(m) +} +func (*PolicyTopicEvidenceDestinationMismatchUrlTypeEnum) ProtoMessage() {} +func (*PolicyTopicEvidenceDestinationMismatchUrlTypeEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_policy_topic_evidence_destination_mismatch_url_type_d09c4b0e366cf65b, []int{0} +} +func (m *PolicyTopicEvidenceDestinationMismatchUrlTypeEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PolicyTopicEvidenceDestinationMismatchUrlTypeEnum.Unmarshal(m, b) +} +func (m *PolicyTopicEvidenceDestinationMismatchUrlTypeEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PolicyTopicEvidenceDestinationMismatchUrlTypeEnum.Marshal(b, m, deterministic) +} +func (dst *PolicyTopicEvidenceDestinationMismatchUrlTypeEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_PolicyTopicEvidenceDestinationMismatchUrlTypeEnum.Merge(dst, src) +} +func (m *PolicyTopicEvidenceDestinationMismatchUrlTypeEnum) XXX_Size() int { + return xxx_messageInfo_PolicyTopicEvidenceDestinationMismatchUrlTypeEnum.Size(m) +} +func (m *PolicyTopicEvidenceDestinationMismatchUrlTypeEnum) XXX_DiscardUnknown() { + xxx_messageInfo_PolicyTopicEvidenceDestinationMismatchUrlTypeEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_PolicyTopicEvidenceDestinationMismatchUrlTypeEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*PolicyTopicEvidenceDestinationMismatchUrlTypeEnum)(nil), "google.ads.googleads.v0.enums.PolicyTopicEvidenceDestinationMismatchUrlTypeEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.PolicyTopicEvidenceDestinationMismatchUrlTypeEnum_PolicyTopicEvidenceDestinationMismatchUrlType", PolicyTopicEvidenceDestinationMismatchUrlTypeEnum_PolicyTopicEvidenceDestinationMismatchUrlType_name, PolicyTopicEvidenceDestinationMismatchUrlTypeEnum_PolicyTopicEvidenceDestinationMismatchUrlType_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/policy_topic_evidence_destination_mismatch_url_type.proto", fileDescriptor_policy_topic_evidence_destination_mismatch_url_type_d09c4b0e366cf65b) +} + +var fileDescriptor_policy_topic_evidence_destination_mismatch_url_type_d09c4b0e366cf65b = []byte{ + // 351 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x91, 0xc1, 0x4e, 0x83, 0x30, + 0x18, 0xc7, 0x65, 0xd3, 0x19, 0x3b, 0x8d, 0x04, 0x4d, 0x3c, 0xed, 0xe0, 0xee, 0x16, 0xd4, 0xa3, + 0x27, 0xd8, 0xd8, 0x42, 0xc6, 0x18, 0xd9, 0xc6, 0x16, 0x0d, 0x49, 0x83, 0xd0, 0x60, 0x13, 0x68, + 0x09, 0x65, 0x4b, 0xf6, 0x3a, 0x1e, 0x3d, 0xf8, 0x20, 0xbe, 0x86, 0x3e, 0x88, 0xa1, 0xb0, 0x19, + 0x0f, 0x9a, 0xec, 0xd2, 0xfc, 0xbf, 0xef, 0xdf, 0xfe, 0x9a, 0xef, 0xff, 0x81, 0x65, 0xcc, 0x58, + 0x9c, 0x60, 0x35, 0x88, 0xb8, 0x5a, 0xc9, 0x52, 0xad, 0x35, 0x15, 0xd3, 0x55, 0xca, 0xd5, 0x8c, + 0x25, 0x24, 0xdc, 0xa0, 0x82, 0x65, 0x24, 0x44, 0x78, 0x4d, 0x22, 0x4c, 0x43, 0x8c, 0x22, 0xcc, + 0x0b, 0x42, 0x83, 0x82, 0x30, 0x8a, 0x52, 0xc2, 0xd3, 0xa0, 0x08, 0x5f, 0xd0, 0x2a, 0x4f, 0x50, + 0xb1, 0xc9, 0x30, 0xcc, 0x72, 0x56, 0x30, 0xa5, 0x53, 0xd1, 0x60, 0x10, 0x71, 0xb8, 0x03, 0xc3, + 0xb5, 0x06, 0x05, 0xb8, 0xfb, 0x25, 0x81, 0x5b, 0x57, 0xc0, 0xe7, 0x25, 0xdb, 0xac, 0xd1, 0xfd, + 0x1f, 0xf2, 0xb8, 0x06, 0x7b, 0x79, 0x32, 0xdf, 0x64, 0xd8, 0xa4, 0xab, 0xb4, 0xfb, 0x2e, 0x81, + 0x9b, 0xbd, 0x5e, 0x29, 0xe7, 0xa0, 0xed, 0x39, 0x33, 0xd7, 0xec, 0x59, 0x03, 0xcb, 0xec, 0xcb, + 0x07, 0x4a, 0x1b, 0x1c, 0x7b, 0xce, 0xc8, 0x99, 0x2c, 0x1d, 0x59, 0x2a, 0xdd, 0xbe, 0x35, 0x73, + 0x6d, 0xfd, 0x11, 0x79, 0x53, 0x5b, 0x6e, 0x28, 0x67, 0xe0, 0x64, 0x60, 0x39, 0xba, 0x2d, 0xca, + 0xa6, 0x72, 0x09, 0xe4, 0xaa, 0x1c, 0x4f, 0x0c, 0xcb, 0x36, 0x45, 0xf7, 0x50, 0x91, 0xc1, 0xe9, + 0x7c, 0xaa, 0xf7, 0x46, 0x96, 0x33, 0x14, 0x9d, 0x23, 0xe5, 0x0a, 0x5c, 0xd4, 0x37, 0x7e, 0x19, + 0x2d, 0xe3, 0x53, 0x02, 0xd7, 0x21, 0x4b, 0xe1, 0xbf, 0x61, 0x18, 0x77, 0x7b, 0xcd, 0xe4, 0x96, + 0xf9, 0xba, 0xd2, 0x93, 0x51, 0x43, 0x63, 0x96, 0x04, 0x34, 0x86, 0x2c, 0x8f, 0xd5, 0x18, 0x53, + 0x91, 0xfe, 0x76, 0x95, 0x19, 0xe1, 0x7f, 0x6c, 0xf6, 0x41, 0x9c, 0xaf, 0x8d, 0xe6, 0x50, 0xd7, + 0xdf, 0x1a, 0x9d, 0x61, 0x85, 0xd2, 0x23, 0x0e, 0x2b, 0x59, 0xaa, 0x85, 0x06, 0xcb, 0xd4, 0xf9, + 0xc7, 0xd6, 0xf7, 0xf5, 0x88, 0xfb, 0x3b, 0xdf, 0x5f, 0x68, 0xbe, 0xf0, 0x9f, 0x5b, 0xe2, 0xd3, + 0xfb, 0xef, 0x00, 0x00, 0x00, 0xff, 0xff, 0x6b, 0x46, 0x2f, 0x08, 0x4d, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/preferred_content_type.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/preferred_content_type.pb.go new file mode 100644 index 000000000..733c5836b --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/preferred_content_type.pb.go @@ -0,0 +1,111 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/preferred_content_type.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enumerates preferred content criterion type. +type PreferredContentTypeEnum_PreferredContentType int32 + +const ( + // Not specified. + PreferredContentTypeEnum_UNSPECIFIED PreferredContentTypeEnum_PreferredContentType = 0 + // The value is unknown in this version. + PreferredContentTypeEnum_UNKNOWN PreferredContentTypeEnum_PreferredContentType = 1 + // Represents top content on YouTube. + PreferredContentTypeEnum_YOUTUBE_TOP_CONTENT PreferredContentTypeEnum_PreferredContentType = 400 +) + +var PreferredContentTypeEnum_PreferredContentType_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 400: "YOUTUBE_TOP_CONTENT", +} +var PreferredContentTypeEnum_PreferredContentType_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "YOUTUBE_TOP_CONTENT": 400, +} + +func (x PreferredContentTypeEnum_PreferredContentType) String() string { + return proto.EnumName(PreferredContentTypeEnum_PreferredContentType_name, int32(x)) +} +func (PreferredContentTypeEnum_PreferredContentType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_preferred_content_type_153c6f2bd55c50c3, []int{0, 0} +} + +// Container for enumeration of preferred content criterion type. +type PreferredContentTypeEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PreferredContentTypeEnum) Reset() { *m = PreferredContentTypeEnum{} } +func (m *PreferredContentTypeEnum) String() string { return proto.CompactTextString(m) } +func (*PreferredContentTypeEnum) ProtoMessage() {} +func (*PreferredContentTypeEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_preferred_content_type_153c6f2bd55c50c3, []int{0} +} +func (m *PreferredContentTypeEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PreferredContentTypeEnum.Unmarshal(m, b) +} +func (m *PreferredContentTypeEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PreferredContentTypeEnum.Marshal(b, m, deterministic) +} +func (dst *PreferredContentTypeEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_PreferredContentTypeEnum.Merge(dst, src) +} +func (m *PreferredContentTypeEnum) XXX_Size() int { + return xxx_messageInfo_PreferredContentTypeEnum.Size(m) +} +func (m *PreferredContentTypeEnum) XXX_DiscardUnknown() { + xxx_messageInfo_PreferredContentTypeEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_PreferredContentTypeEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*PreferredContentTypeEnum)(nil), "google.ads.googleads.v0.enums.PreferredContentTypeEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.PreferredContentTypeEnum_PreferredContentType", PreferredContentTypeEnum_PreferredContentType_name, PreferredContentTypeEnum_PreferredContentType_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/preferred_content_type.proto", fileDescriptor_preferred_content_type_153c6f2bd55c50c3) +} + +var fileDescriptor_preferred_content_type_153c6f2bd55c50c3 = []byte{ + // 274 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x4a, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xbc, + 0xd2, 0xdc, 0x62, 0xfd, 0x82, 0xa2, 0xd4, 0xb4, 0xd4, 0xa2, 0xa2, 0xd4, 0x94, 0xf8, 0xe4, 0xfc, + 0xbc, 0x92, 0xd4, 0xbc, 0x92, 0xf8, 0x92, 0xca, 0x82, 0x54, 0xbd, 0x82, 0xa2, 0xfc, 0x92, 0x7c, + 0x21, 0x59, 0x88, 0x06, 0xbd, 0xc4, 0x94, 0x62, 0x3d, 0xb8, 0x5e, 0xbd, 0x32, 0x03, 0x3d, 0xb0, + 0x5e, 0xa5, 0x2c, 0x2e, 0x89, 0x00, 0x98, 0x76, 0x67, 0x88, 0xee, 0x90, 0xca, 0x82, 0x54, 0xd7, + 0xbc, 0xd2, 0x5c, 0x25, 0x3f, 0x2e, 0x11, 0x6c, 0x72, 0x42, 0xfc, 0x5c, 0xdc, 0xa1, 0x7e, 0xc1, + 0x01, 0xae, 0xce, 0x9e, 0x6e, 0x9e, 0xae, 0x2e, 0x02, 0x0c, 0x42, 0xdc, 0x5c, 0xec, 0xa1, 0x7e, + 0xde, 0x7e, 0xfe, 0xe1, 0x7e, 0x02, 0x8c, 0x42, 0x12, 0x5c, 0xc2, 0x91, 0xfe, 0xa1, 0x21, 0xa1, + 0x4e, 0xae, 0xf1, 0x21, 0xfe, 0x01, 0xf1, 0xce, 0xfe, 0x7e, 0x21, 0xae, 0x7e, 0x21, 0x02, 0x13, + 0x98, 0x9d, 0x4e, 0x31, 0x72, 0x29, 0x26, 0xe7, 0xe7, 0xea, 0xe1, 0x75, 0x91, 0x93, 0x24, 0x36, + 0x3b, 0x03, 0x40, 0x7e, 0x09, 0x60, 0x8c, 0x72, 0x82, 0xea, 0x4d, 0xcf, 0xcf, 0x49, 0xcc, 0x4b, + 0xd7, 0xcb, 0x2f, 0x4a, 0xd7, 0x4f, 0x4f, 0xcd, 0x03, 0xfb, 0x14, 0x16, 0x32, 0x05, 0x99, 0xc5, + 0x38, 0x02, 0xca, 0x1a, 0x4c, 0x2e, 0x62, 0x62, 0x76, 0x77, 0x74, 0x5c, 0xc5, 0x24, 0xeb, 0x0e, + 0x31, 0xca, 0x31, 0xa5, 0x58, 0x0f, 0xc2, 0x04, 0xb1, 0xc2, 0x0c, 0xf4, 0x40, 0x7e, 0x2f, 0x3e, + 0x05, 0x93, 0x8f, 0x71, 0x4c, 0x29, 0x8e, 0x81, 0xcb, 0xc7, 0x84, 0x19, 0xc4, 0x80, 0xe5, 0x93, + 0xd8, 0xc0, 0x96, 0x1a, 0x03, 0x02, 0x00, 0x00, 0xff, 0xff, 0xc9, 0xfb, 0x86, 0xdb, 0x9c, 0x01, + 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/price_placeholder_field.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/price_placeholder_field.pb.go new file mode 100644 index 000000000..cd40c6d03 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/price_placeholder_field.pb.go @@ -0,0 +1,382 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/price_placeholder_field.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Possible values for Price placeholder fields. +type PricePlaceholderFieldEnum_PricePlaceholderField int32 + +const ( + // Not specified. + PricePlaceholderFieldEnum_UNSPECIFIED PricePlaceholderFieldEnum_PricePlaceholderField = 0 + // Used for return value only. Represents value unknown in this version. + PricePlaceholderFieldEnum_UNKNOWN PricePlaceholderFieldEnum_PricePlaceholderField = 1 + // Data Type: STRING. The type of your price feed. Must match one of the + // predefined price feed type exactly. + PricePlaceholderFieldEnum_TYPE PricePlaceholderFieldEnum_PricePlaceholderField = 2 + // Data Type: STRING. The qualifier of each price. Must match one of the + // predefined price qualifiers exactly. + PricePlaceholderFieldEnum_PRICE_QUALIFIER PricePlaceholderFieldEnum_PricePlaceholderField = 3 + // Data Type: URL. Tracking template for the price feed when using Upgraded + // URLs. + PricePlaceholderFieldEnum_TRACKING_TEMPLATE PricePlaceholderFieldEnum_PricePlaceholderField = 4 + // Data Type: STRING. Language of the price feed. Must match one of the + // available available locale codes exactly. + PricePlaceholderFieldEnum_LANGUAGE PricePlaceholderFieldEnum_PricePlaceholderField = 5 + // Data Type: STRING. Final URL suffix for the price feed when using + // parallel tracking. + PricePlaceholderFieldEnum_FINAL_URL_SUFFIX PricePlaceholderFieldEnum_PricePlaceholderField = 6 + // Data Type: STRING. The header of item 1 of the table. + PricePlaceholderFieldEnum_ITEM_1_HEADER PricePlaceholderFieldEnum_PricePlaceholderField = 100 + // Data Type: STRING. The description of item 1 of the table. + PricePlaceholderFieldEnum_ITEM_1_DESCRIPTION PricePlaceholderFieldEnum_PricePlaceholderField = 101 + // Data Type: PRICE. The price (money with currency) of item 1 of the table, + // e.g., 30 USD. The currency must match one of the available currencies. + PricePlaceholderFieldEnum_ITEM_1_PRICE PricePlaceholderFieldEnum_PricePlaceholderField = 102 + // Data Type: STRING. The price unit of item 1 of the table. Must match one + // of the predefined price units. + PricePlaceholderFieldEnum_ITEM_1_UNIT PricePlaceholderFieldEnum_PricePlaceholderField = 103 + // Data Type: URL_LIST. The final URLs of item 1 of the table when using + // Upgraded URLs. + PricePlaceholderFieldEnum_ITEM_1_FINAL_URLS PricePlaceholderFieldEnum_PricePlaceholderField = 104 + // Data Type: URL_LIST. The final mobile URLs of item 1 of the table when + // using Upgraded URLs. + PricePlaceholderFieldEnum_ITEM_1_FINAL_MOBILE_URLS PricePlaceholderFieldEnum_PricePlaceholderField = 105 + // Data Type: STRING. The header of item 2 of the table. + PricePlaceholderFieldEnum_ITEM_2_HEADER PricePlaceholderFieldEnum_PricePlaceholderField = 200 + // Data Type: STRING. The description of item 2 of the table. + PricePlaceholderFieldEnum_ITEM_2_DESCRIPTION PricePlaceholderFieldEnum_PricePlaceholderField = 201 + // Data Type: PRICE. The price (money with currency) of item 2 of the table, + // e.g., 30 USD. The currency must match one of the available currencies. + PricePlaceholderFieldEnum_ITEM_2_PRICE PricePlaceholderFieldEnum_PricePlaceholderField = 202 + // Data Type: STRING. The price unit of item 2 of the table. Must match one + // of the predefined price units. + PricePlaceholderFieldEnum_ITEM_2_UNIT PricePlaceholderFieldEnum_PricePlaceholderField = 203 + // Data Type: URL_LIST. The final URLs of item 2 of the table when using + // Upgraded URLs. + PricePlaceholderFieldEnum_ITEM_2_FINAL_URLS PricePlaceholderFieldEnum_PricePlaceholderField = 204 + // Data Type: URL_LIST. The final mobile URLs of item 2 of the table when + // using Upgraded URLs. + PricePlaceholderFieldEnum_ITEM_2_FINAL_MOBILE_URLS PricePlaceholderFieldEnum_PricePlaceholderField = 205 + // Data Type: STRING. The header of item 3 of the table. + PricePlaceholderFieldEnum_ITEM_3_HEADER PricePlaceholderFieldEnum_PricePlaceholderField = 300 + // Data Type: STRING. The description of item 3 of the table. + PricePlaceholderFieldEnum_ITEM_3_DESCRIPTION PricePlaceholderFieldEnum_PricePlaceholderField = 301 + // Data Type: PRICE. The price (money with currency) of item 3 of the table, + // e.g., 30 USD. The currency must match one of the available currencies. + PricePlaceholderFieldEnum_ITEM_3_PRICE PricePlaceholderFieldEnum_PricePlaceholderField = 302 + // Data Type: STRING. The price unit of item 3 of the table. Must match one + // of the predefined price units. + PricePlaceholderFieldEnum_ITEM_3_UNIT PricePlaceholderFieldEnum_PricePlaceholderField = 303 + // Data Type: URL_LIST. The final URLs of item 3 of the table when using + // Upgraded URLs. + PricePlaceholderFieldEnum_ITEM_3_FINAL_URLS PricePlaceholderFieldEnum_PricePlaceholderField = 304 + // Data Type: URL_LIST. The final mobile URLs of item 3 of the table when + // using Upgraded URLs. + PricePlaceholderFieldEnum_ITEM_3_FINAL_MOBILE_URLS PricePlaceholderFieldEnum_PricePlaceholderField = 305 + // Data Type: STRING. The header of item 4 of the table. + PricePlaceholderFieldEnum_ITEM_4_HEADER PricePlaceholderFieldEnum_PricePlaceholderField = 400 + // Data Type: STRING. The description of item 4 of the table. + PricePlaceholderFieldEnum_ITEM_4_DESCRIPTION PricePlaceholderFieldEnum_PricePlaceholderField = 401 + // Data Type: PRICE. The price (money with currency) of item 4 of the table, + // e.g., 30 USD. The currency must match one of the available currencies. + PricePlaceholderFieldEnum_ITEM_4_PRICE PricePlaceholderFieldEnum_PricePlaceholderField = 402 + // Data Type: STRING. The price unit of item 4 of the table. Must match one + // of the predefined price units. + PricePlaceholderFieldEnum_ITEM_4_UNIT PricePlaceholderFieldEnum_PricePlaceholderField = 403 + // Data Type: URL_LIST. The final URLs of item 4 of the table when using + // Upgraded URLs. + PricePlaceholderFieldEnum_ITEM_4_FINAL_URLS PricePlaceholderFieldEnum_PricePlaceholderField = 404 + // Data Type: URL_LIST. The final mobile URLs of item 4 of the table when + // using Upgraded URLs. + PricePlaceholderFieldEnum_ITEM_4_FINAL_MOBILE_URLS PricePlaceholderFieldEnum_PricePlaceholderField = 405 + // Data Type: STRING. The header of item 5 of the table. + PricePlaceholderFieldEnum_ITEM_5_HEADER PricePlaceholderFieldEnum_PricePlaceholderField = 500 + // Data Type: STRING. The description of item 5 of the table. + PricePlaceholderFieldEnum_ITEM_5_DESCRIPTION PricePlaceholderFieldEnum_PricePlaceholderField = 501 + // Data Type: PRICE. The price (money with currency) of item 5 of the table, + // e.g., 30 USD. The currency must match one of the available currencies. + PricePlaceholderFieldEnum_ITEM_5_PRICE PricePlaceholderFieldEnum_PricePlaceholderField = 502 + // Data Type: STRING. The price unit of item 5 of the table. Must match one + // of the predefined price units. + PricePlaceholderFieldEnum_ITEM_5_UNIT PricePlaceholderFieldEnum_PricePlaceholderField = 503 + // Data Type: URL_LIST. The final URLs of item 5 of the table when using + // Upgraded URLs. + PricePlaceholderFieldEnum_ITEM_5_FINAL_URLS PricePlaceholderFieldEnum_PricePlaceholderField = 504 + // Data Type: URL_LIST. The final mobile URLs of item 5 of the table when + // using Upgraded URLs. + PricePlaceholderFieldEnum_ITEM_5_FINAL_MOBILE_URLS PricePlaceholderFieldEnum_PricePlaceholderField = 505 + // Data Type: STRING. The header of item 6 of the table. + PricePlaceholderFieldEnum_ITEM_6_HEADER PricePlaceholderFieldEnum_PricePlaceholderField = 600 + // Data Type: STRING. The description of item 6 of the table. + PricePlaceholderFieldEnum_ITEM_6_DESCRIPTION PricePlaceholderFieldEnum_PricePlaceholderField = 601 + // Data Type: PRICE. The price (money with currency) of item 6 of the table, + // e.g., 30 USD. The currency must match one of the available currencies. + PricePlaceholderFieldEnum_ITEM_6_PRICE PricePlaceholderFieldEnum_PricePlaceholderField = 602 + // Data Type: STRING. The price unit of item 6 of the table. Must match one + // of the predefined price units. + PricePlaceholderFieldEnum_ITEM_6_UNIT PricePlaceholderFieldEnum_PricePlaceholderField = 603 + // Data Type: URL_LIST. The final URLs of item 6 of the table when using + // Upgraded URLs. + PricePlaceholderFieldEnum_ITEM_6_FINAL_URLS PricePlaceholderFieldEnum_PricePlaceholderField = 604 + // Data Type: URL_LIST. The final mobile URLs of item 6 of the table when + // using Upgraded URLs. + PricePlaceholderFieldEnum_ITEM_6_FINAL_MOBILE_URLS PricePlaceholderFieldEnum_PricePlaceholderField = 605 + // Data Type: STRING. The header of item 7 of the table. + PricePlaceholderFieldEnum_ITEM_7_HEADER PricePlaceholderFieldEnum_PricePlaceholderField = 700 + // Data Type: STRING. The description of item 7 of the table. + PricePlaceholderFieldEnum_ITEM_7_DESCRIPTION PricePlaceholderFieldEnum_PricePlaceholderField = 701 + // Data Type: PRICE. The price (money with currency) of item 7 of the table, + // e.g., 30 USD. The currency must match one of the available currencies. + PricePlaceholderFieldEnum_ITEM_7_PRICE PricePlaceholderFieldEnum_PricePlaceholderField = 702 + // Data Type: STRING. The price unit of item 7 of the table. Must match one + // of the predefined price units. + PricePlaceholderFieldEnum_ITEM_7_UNIT PricePlaceholderFieldEnum_PricePlaceholderField = 703 + // Data Type: URL_LIST. The final URLs of item 7 of the table when using + // Upgraded URLs. + PricePlaceholderFieldEnum_ITEM_7_FINAL_URLS PricePlaceholderFieldEnum_PricePlaceholderField = 704 + // Data Type: URL_LIST. The final mobile URLs of item 7 of the table when + // using Upgraded URLs. + PricePlaceholderFieldEnum_ITEM_7_FINAL_MOBILE_URLS PricePlaceholderFieldEnum_PricePlaceholderField = 705 + // Data Type: STRING. The header of item 8 of the table. + PricePlaceholderFieldEnum_ITEM_8_HEADER PricePlaceholderFieldEnum_PricePlaceholderField = 800 + // Data Type: STRING. The description of item 8 of the table. + PricePlaceholderFieldEnum_ITEM_8_DESCRIPTION PricePlaceholderFieldEnum_PricePlaceholderField = 801 + // Data Type: PRICE. The price (money with currency) of item 8 of the table, + // e.g., 30 USD. The currency must match one of the available currencies. + PricePlaceholderFieldEnum_ITEM_8_PRICE PricePlaceholderFieldEnum_PricePlaceholderField = 802 + // Data Type: STRING. The price unit of item 8 of the table. Must match one + // of the predefined price units. + PricePlaceholderFieldEnum_ITEM_8_UNIT PricePlaceholderFieldEnum_PricePlaceholderField = 803 + // Data Type: URL_LIST. The final URLs of item 8 of the table when using + // Upgraded URLs. + PricePlaceholderFieldEnum_ITEM_8_FINAL_URLS PricePlaceholderFieldEnum_PricePlaceholderField = 804 + // Data Type: URL_LIST. The final mobile URLs of item 8 of the table when + // using Upgraded URLs. + PricePlaceholderFieldEnum_ITEM_8_FINAL_MOBILE_URLS PricePlaceholderFieldEnum_PricePlaceholderField = 805 +) + +var PricePlaceholderFieldEnum_PricePlaceholderField_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "TYPE", + 3: "PRICE_QUALIFIER", + 4: "TRACKING_TEMPLATE", + 5: "LANGUAGE", + 6: "FINAL_URL_SUFFIX", + 100: "ITEM_1_HEADER", + 101: "ITEM_1_DESCRIPTION", + 102: "ITEM_1_PRICE", + 103: "ITEM_1_UNIT", + 104: "ITEM_1_FINAL_URLS", + 105: "ITEM_1_FINAL_MOBILE_URLS", + 200: "ITEM_2_HEADER", + 201: "ITEM_2_DESCRIPTION", + 202: "ITEM_2_PRICE", + 203: "ITEM_2_UNIT", + 204: "ITEM_2_FINAL_URLS", + 205: "ITEM_2_FINAL_MOBILE_URLS", + 300: "ITEM_3_HEADER", + 301: "ITEM_3_DESCRIPTION", + 302: "ITEM_3_PRICE", + 303: "ITEM_3_UNIT", + 304: "ITEM_3_FINAL_URLS", + 305: "ITEM_3_FINAL_MOBILE_URLS", + 400: "ITEM_4_HEADER", + 401: "ITEM_4_DESCRIPTION", + 402: "ITEM_4_PRICE", + 403: "ITEM_4_UNIT", + 404: "ITEM_4_FINAL_URLS", + 405: "ITEM_4_FINAL_MOBILE_URLS", + 500: "ITEM_5_HEADER", + 501: "ITEM_5_DESCRIPTION", + 502: "ITEM_5_PRICE", + 503: "ITEM_5_UNIT", + 504: "ITEM_5_FINAL_URLS", + 505: "ITEM_5_FINAL_MOBILE_URLS", + 600: "ITEM_6_HEADER", + 601: "ITEM_6_DESCRIPTION", + 602: "ITEM_6_PRICE", + 603: "ITEM_6_UNIT", + 604: "ITEM_6_FINAL_URLS", + 605: "ITEM_6_FINAL_MOBILE_URLS", + 700: "ITEM_7_HEADER", + 701: "ITEM_7_DESCRIPTION", + 702: "ITEM_7_PRICE", + 703: "ITEM_7_UNIT", + 704: "ITEM_7_FINAL_URLS", + 705: "ITEM_7_FINAL_MOBILE_URLS", + 800: "ITEM_8_HEADER", + 801: "ITEM_8_DESCRIPTION", + 802: "ITEM_8_PRICE", + 803: "ITEM_8_UNIT", + 804: "ITEM_8_FINAL_URLS", + 805: "ITEM_8_FINAL_MOBILE_URLS", +} +var PricePlaceholderFieldEnum_PricePlaceholderField_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "TYPE": 2, + "PRICE_QUALIFIER": 3, + "TRACKING_TEMPLATE": 4, + "LANGUAGE": 5, + "FINAL_URL_SUFFIX": 6, + "ITEM_1_HEADER": 100, + "ITEM_1_DESCRIPTION": 101, + "ITEM_1_PRICE": 102, + "ITEM_1_UNIT": 103, + "ITEM_1_FINAL_URLS": 104, + "ITEM_1_FINAL_MOBILE_URLS": 105, + "ITEM_2_HEADER": 200, + "ITEM_2_DESCRIPTION": 201, + "ITEM_2_PRICE": 202, + "ITEM_2_UNIT": 203, + "ITEM_2_FINAL_URLS": 204, + "ITEM_2_FINAL_MOBILE_URLS": 205, + "ITEM_3_HEADER": 300, + "ITEM_3_DESCRIPTION": 301, + "ITEM_3_PRICE": 302, + "ITEM_3_UNIT": 303, + "ITEM_3_FINAL_URLS": 304, + "ITEM_3_FINAL_MOBILE_URLS": 305, + "ITEM_4_HEADER": 400, + "ITEM_4_DESCRIPTION": 401, + "ITEM_4_PRICE": 402, + "ITEM_4_UNIT": 403, + "ITEM_4_FINAL_URLS": 404, + "ITEM_4_FINAL_MOBILE_URLS": 405, + "ITEM_5_HEADER": 500, + "ITEM_5_DESCRIPTION": 501, + "ITEM_5_PRICE": 502, + "ITEM_5_UNIT": 503, + "ITEM_5_FINAL_URLS": 504, + "ITEM_5_FINAL_MOBILE_URLS": 505, + "ITEM_6_HEADER": 600, + "ITEM_6_DESCRIPTION": 601, + "ITEM_6_PRICE": 602, + "ITEM_6_UNIT": 603, + "ITEM_6_FINAL_URLS": 604, + "ITEM_6_FINAL_MOBILE_URLS": 605, + "ITEM_7_HEADER": 700, + "ITEM_7_DESCRIPTION": 701, + "ITEM_7_PRICE": 702, + "ITEM_7_UNIT": 703, + "ITEM_7_FINAL_URLS": 704, + "ITEM_7_FINAL_MOBILE_URLS": 705, + "ITEM_8_HEADER": 800, + "ITEM_8_DESCRIPTION": 801, + "ITEM_8_PRICE": 802, + "ITEM_8_UNIT": 803, + "ITEM_8_FINAL_URLS": 804, + "ITEM_8_FINAL_MOBILE_URLS": 805, +} + +func (x PricePlaceholderFieldEnum_PricePlaceholderField) String() string { + return proto.EnumName(PricePlaceholderFieldEnum_PricePlaceholderField_name, int32(x)) +} +func (PricePlaceholderFieldEnum_PricePlaceholderField) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_price_placeholder_field_d206949894631163, []int{0, 0} +} + +// Values for Price placeholder fields. +type PricePlaceholderFieldEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PricePlaceholderFieldEnum) Reset() { *m = PricePlaceholderFieldEnum{} } +func (m *PricePlaceholderFieldEnum) String() string { return proto.CompactTextString(m) } +func (*PricePlaceholderFieldEnum) ProtoMessage() {} +func (*PricePlaceholderFieldEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_price_placeholder_field_d206949894631163, []int{0} +} +func (m *PricePlaceholderFieldEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PricePlaceholderFieldEnum.Unmarshal(m, b) +} +func (m *PricePlaceholderFieldEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PricePlaceholderFieldEnum.Marshal(b, m, deterministic) +} +func (dst *PricePlaceholderFieldEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_PricePlaceholderFieldEnum.Merge(dst, src) +} +func (m *PricePlaceholderFieldEnum) XXX_Size() int { + return xxx_messageInfo_PricePlaceholderFieldEnum.Size(m) +} +func (m *PricePlaceholderFieldEnum) XXX_DiscardUnknown() { + xxx_messageInfo_PricePlaceholderFieldEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_PricePlaceholderFieldEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*PricePlaceholderFieldEnum)(nil), "google.ads.googleads.v0.enums.PricePlaceholderFieldEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.PricePlaceholderFieldEnum_PricePlaceholderField", PricePlaceholderFieldEnum_PricePlaceholderField_name, PricePlaceholderFieldEnum_PricePlaceholderField_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/price_placeholder_field.proto", fileDescriptor_price_placeholder_field_d206949894631163) +} + +var fileDescriptor_price_placeholder_field_d206949894631163 = []byte{ + // 692 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0xd4, 0x49, 0x6f, 0xd3, 0x5a, + 0x14, 0x07, 0xf0, 0xe7, 0x21, 0x7e, 0xed, 0x6d, 0x9f, 0x7a, 0x7b, 0xdf, 0x6b, 0x1f, 0x20, 0xba, + 0xa0, 0x1f, 0xc0, 0x09, 0x99, 0xa5, 0xae, 0x9c, 0xd4, 0x09, 0x56, 0x53, 0xd7, 0x24, 0x71, 0x19, + 0x14, 0xc9, 0x0a, 0xb5, 0xeb, 0x46, 0x4a, 0xe3, 0x28, 0xa6, 0xfd, 0x1c, 0x8c, 0x7b, 0x28, 0xb0, + 0x41, 0x8c, 0x7b, 0xc6, 0x1d, 0xb4, 0xb0, 0x60, 0xc7, 0xf8, 0x19, 0xd8, 0x30, 0xee, 0x90, 0xe3, + 0xeb, 0x63, 0x5b, 0x32, 0x6c, 0xa2, 0xa3, 0x73, 0xf2, 0xf7, 0xfd, 0xad, 0xfe, 0x68, 0xc9, 0x76, + 0x1c, 0xbb, 0x6f, 0xa5, 0xbb, 0xa6, 0x9b, 0xf6, 0x47, 0x6f, 0xda, 0xcd, 0xa4, 0xad, 0xc1, 0xce, + 0xb6, 0x9b, 0x1e, 0x8e, 0x7a, 0x1b, 0x96, 0x31, 0xec, 0x77, 0x37, 0xac, 0x2d, 0xa7, 0x6f, 0x5a, + 0x23, 0x63, 0xb3, 0x67, 0xf5, 0x4d, 0x71, 0x38, 0x72, 0xce, 0x3b, 0x64, 0xc1, 0x4f, 0x88, 0x5d, + 0xd3, 0x15, 0x21, 0x2c, 0xee, 0x66, 0xc4, 0x71, 0x78, 0xf1, 0xf3, 0x24, 0x3a, 0xac, 0x79, 0x1f, + 0xd0, 0xc2, 0x7c, 0xcd, 0x8b, 0xcb, 0x83, 0x9d, 0xed, 0xc5, 0x37, 0x93, 0x68, 0x2e, 0xf1, 0x4a, + 0x66, 0xd0, 0x94, 0xae, 0xb6, 0x34, 0xb9, 0xaa, 0xd4, 0x14, 0x79, 0x19, 0xff, 0x45, 0xa6, 0xd0, + 0xdf, 0xba, 0xba, 0xa2, 0xae, 0x9d, 0x52, 0x31, 0x43, 0x26, 0x10, 0xdf, 0x3e, 0xa3, 0xc9, 0x98, + 0x25, 0xff, 0xa2, 0x19, 0xad, 0xa9, 0x54, 0x65, 0xe3, 0xa4, 0x2e, 0x35, 0xbc, 0xff, 0x36, 0x31, + 0x47, 0xe6, 0xd0, 0x6c, 0xbb, 0x29, 0x55, 0x57, 0x14, 0xb5, 0x6e, 0xb4, 0xe5, 0x55, 0xad, 0x21, + 0xb5, 0x65, 0xcc, 0x93, 0x69, 0x34, 0xd1, 0x90, 0xd4, 0xba, 0x2e, 0xd5, 0x65, 0x9c, 0x22, 0xff, + 0x21, 0x5c, 0x53, 0x54, 0xa9, 0x61, 0xe8, 0xcd, 0x86, 0xd1, 0xd2, 0x6b, 0x35, 0xe5, 0x34, 0x16, + 0xc8, 0x2c, 0xfa, 0x47, 0x69, 0xcb, 0xab, 0xc6, 0x71, 0xe3, 0x84, 0x2c, 0x2d, 0xcb, 0x4d, 0x6c, + 0x92, 0x79, 0x44, 0xe8, 0x6a, 0x59, 0x6e, 0x55, 0x9b, 0x8a, 0xd6, 0x56, 0xd6, 0x54, 0x6c, 0x11, + 0x8c, 0xa6, 0xe9, 0x7e, 0x2c, 0xc0, 0x9b, 0x1e, 0x9a, 0x6e, 0x74, 0x55, 0x69, 0x63, 0xdb, 0x83, + 0xd0, 0x05, 0x3c, 0xd5, 0xc2, 0x5b, 0xe4, 0x28, 0x3a, 0x14, 0x5b, 0xaf, 0xae, 0x55, 0x94, 0x86, + 0xec, 0x5f, 0x7b, 0x84, 0x50, 0x42, 0x36, 0x20, 0xbc, 0x60, 0xc8, 0xff, 0xd4, 0x90, 0x8d, 0x19, + 0x5e, 0x32, 0x64, 0x96, 0x22, 0xb2, 0x14, 0xb1, 0xcf, 0x10, 0x4c, 0x15, 0x59, 0x5f, 0x71, 0xc0, + 0x90, 0x79, 0xca, 0xc8, 0x46, 0x19, 0xaf, 0x18, 0xb2, 0x40, 0x1d, 0xd9, 0x04, 0xc7, 0x6b, 0x06, + 0x20, 0xb9, 0x00, 0x72, 0x87, 0x05, 0x48, 0x2e, 0x06, 0xb9, 0xcb, 0x02, 0x24, 0x47, 0x21, 0xf7, + 0x58, 0x80, 0xe4, 0x7c, 0xc8, 0x7d, 0x16, 0x20, 0xb9, 0x28, 0xe4, 0x01, 0x0b, 0x90, 0x5c, 0x02, + 0xe4, 0x21, 0x0b, 0x90, 0x7c, 0x00, 0xb9, 0xc0, 0x01, 0x24, 0x1f, 0x83, 0x5c, 0xe4, 0x00, 0x92, + 0xa7, 0x90, 0x4b, 0x1c, 0x40, 0xf2, 0x3e, 0xe4, 0x32, 0x07, 0x90, 0x7c, 0x14, 0x72, 0x85, 0x03, + 0x48, 0x3e, 0x01, 0x72, 0x95, 0x03, 0x48, 0x21, 0x80, 0x7c, 0x09, 0x21, 0x85, 0x18, 0xe4, 0x6b, + 0x08, 0x29, 0x50, 0xc8, 0xb7, 0x10, 0x52, 0xf0, 0x21, 0xdf, 0x43, 0x48, 0x21, 0x0a, 0xf9, 0x11, + 0x42, 0x0a, 0x09, 0x90, 0x9f, 0x21, 0xa4, 0x18, 0x40, 0xde, 0xf2, 0x00, 0x29, 0xc6, 0x20, 0xef, + 0x78, 0x80, 0x14, 0x29, 0xe4, 0x3d, 0x0f, 0x90, 0xa2, 0x0f, 0xf9, 0xc0, 0x03, 0xa4, 0x18, 0x85, + 0x7c, 0xe4, 0x01, 0x52, 0x4c, 0x80, 0x7c, 0xe2, 0x01, 0x52, 0x0a, 0x20, 0x8f, 0x52, 0x00, 0x29, + 0xc5, 0x20, 0x8f, 0x53, 0x00, 0x29, 0x51, 0xc8, 0x93, 0x14, 0x40, 0x4a, 0x3e, 0xe4, 0x69, 0x0a, + 0x20, 0xa5, 0x28, 0xe4, 0x59, 0x0a, 0x20, 0xa5, 0x04, 0xc8, 0xf3, 0x14, 0x40, 0xca, 0x01, 0xe4, + 0x9a, 0x00, 0x90, 0x72, 0x0c, 0x72, 0x5d, 0x00, 0x48, 0x99, 0x42, 0xf6, 0x04, 0x80, 0x94, 0x7d, + 0xc8, 0x0d, 0x01, 0x20, 0xe5, 0x28, 0xe4, 0xa6, 0x00, 0x90, 0x72, 0x02, 0xe4, 0x96, 0x50, 0x39, + 0x60, 0xd0, 0xb1, 0x0d, 0x67, 0x5b, 0xfc, 0x63, 0x2f, 0x56, 0x8e, 0x24, 0xd6, 0x9e, 0xe6, 0x55, + 0xaa, 0xc6, 0x9c, 0xad, 0xd0, 0xb0, 0xed, 0xf4, 0xbb, 0x03, 0x5b, 0x74, 0x46, 0x76, 0xda, 0xb6, + 0x06, 0xe3, 0xc2, 0x0d, 0x1a, 0x7a, 0xd8, 0x73, 0x7f, 0x53, 0xd8, 0x4b, 0xe3, 0xdf, 0x3d, 0x96, + 0xab, 0x4b, 0xd2, 0x6d, 0x76, 0xa1, 0xee, 0x7f, 0x4a, 0x32, 0x5d, 0xd1, 0x1f, 0xbd, 0x69, 0x3d, + 0x23, 0x7a, 0x05, 0xec, 0xee, 0x07, 0xf7, 0x8e, 0x64, 0xba, 0x1d, 0xb8, 0x77, 0xd6, 0x33, 0x9d, + 0xf1, 0xfd, 0x9c, 0x30, 0x7e, 0x34, 0xf7, 0x2b, 0x00, 0x00, 0xff, 0xff, 0xb0, 0x4a, 0x19, 0xe7, + 0x24, 0x06, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/product_channel.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/product_channel.pb.go new file mode 100644 index 000000000..01939e553 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/product_channel.pb.go @@ -0,0 +1,114 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/product_channel.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing the locality of a product offer. +type ProductChannelEnum_ProductChannel int32 + +const ( + // Not specified. + ProductChannelEnum_UNSPECIFIED ProductChannelEnum_ProductChannel = 0 + // Used for return value only. Represents value unknown in this version. + ProductChannelEnum_UNKNOWN ProductChannelEnum_ProductChannel = 1 + // The item is sold online. + ProductChannelEnum_ONLINE ProductChannelEnum_ProductChannel = 2 + // The item is sold in local stores. + ProductChannelEnum_LOCAL ProductChannelEnum_ProductChannel = 3 +) + +var ProductChannelEnum_ProductChannel_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "ONLINE", + 3: "LOCAL", +} +var ProductChannelEnum_ProductChannel_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "ONLINE": 2, + "LOCAL": 3, +} + +func (x ProductChannelEnum_ProductChannel) String() string { + return proto.EnumName(ProductChannelEnum_ProductChannel_name, int32(x)) +} +func (ProductChannelEnum_ProductChannel) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_product_channel_81186d77dbd458b5, []int{0, 0} +} + +// Locality of a product offer. +type ProductChannelEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ProductChannelEnum) Reset() { *m = ProductChannelEnum{} } +func (m *ProductChannelEnum) String() string { return proto.CompactTextString(m) } +func (*ProductChannelEnum) ProtoMessage() {} +func (*ProductChannelEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_product_channel_81186d77dbd458b5, []int{0} +} +func (m *ProductChannelEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ProductChannelEnum.Unmarshal(m, b) +} +func (m *ProductChannelEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ProductChannelEnum.Marshal(b, m, deterministic) +} +func (dst *ProductChannelEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProductChannelEnum.Merge(dst, src) +} +func (m *ProductChannelEnum) XXX_Size() int { + return xxx_messageInfo_ProductChannelEnum.Size(m) +} +func (m *ProductChannelEnum) XXX_DiscardUnknown() { + xxx_messageInfo_ProductChannelEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_ProductChannelEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*ProductChannelEnum)(nil), "google.ads.googleads.v0.enums.ProductChannelEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.ProductChannelEnum_ProductChannel", ProductChannelEnum_ProductChannel_name, ProductChannelEnum_ProductChannel_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/product_channel.proto", fileDescriptor_product_channel_81186d77dbd458b5) +} + +var fileDescriptor_product_channel_81186d77dbd458b5 = []byte{ + // 259 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x32, 0x4e, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xbc, + 0xd2, 0xdc, 0x62, 0xfd, 0x82, 0xa2, 0xfc, 0x94, 0xd2, 0xe4, 0x92, 0xf8, 0xe4, 0x8c, 0xc4, 0xbc, + 0xbc, 0xd4, 0x1c, 0xbd, 0x82, 0xa2, 0xfc, 0x92, 0x7c, 0x21, 0x59, 0x88, 0x4a, 0xbd, 0xc4, 0x94, + 0x62, 0x3d, 0xb8, 0x26, 0xbd, 0x32, 0x03, 0x3d, 0xb0, 0x26, 0xa5, 0x68, 0x2e, 0xa1, 0x00, 0x88, + 0x3e, 0x67, 0x88, 0x36, 0xd7, 0xbc, 0xd2, 0x5c, 0x25, 0x57, 0x2e, 0x3e, 0x54, 0x51, 0x21, 0x7e, + 0x2e, 0xee, 0x50, 0xbf, 0xe0, 0x00, 0x57, 0x67, 0x4f, 0x37, 0x4f, 0x57, 0x17, 0x01, 0x06, 0x21, + 0x6e, 0x2e, 0xf6, 0x50, 0x3f, 0x6f, 0x3f, 0xff, 0x70, 0x3f, 0x01, 0x46, 0x21, 0x2e, 0x2e, 0x36, + 0x7f, 0x3f, 0x1f, 0x4f, 0x3f, 0x57, 0x01, 0x26, 0x21, 0x4e, 0x2e, 0x56, 0x1f, 0x7f, 0x67, 0x47, + 0x1f, 0x01, 0x66, 0xa7, 0x23, 0x8c, 0x5c, 0x8a, 0xc9, 0xf9, 0xb9, 0x7a, 0x78, 0x9d, 0xe0, 0x24, + 0x8c, 0x6a, 0x55, 0x00, 0xc8, 0xd9, 0x01, 0x8c, 0x51, 0x4e, 0x50, 0x5d, 0xe9, 0xf9, 0x39, 0x89, + 0x79, 0xe9, 0x7a, 0xf9, 0x45, 0xe9, 0xfa, 0xe9, 0xa9, 0x79, 0x60, 0x4f, 0xc1, 0x7c, 0x5f, 0x90, + 0x59, 0x8c, 0x23, 0x30, 0xac, 0xc1, 0xe4, 0x22, 0x26, 0x66, 0x77, 0x47, 0xc7, 0x55, 0x4c, 0xb2, + 0xee, 0x10, 0xa3, 0x1c, 0x53, 0x8a, 0xf5, 0x20, 0x4c, 0x10, 0x2b, 0xcc, 0x40, 0x0f, 0xe4, 0xd9, + 0xe2, 0x53, 0x30, 0xf9, 0x18, 0xc7, 0x94, 0xe2, 0x18, 0xb8, 0x7c, 0x4c, 0x98, 0x41, 0x0c, 0x58, + 0x3e, 0x89, 0x0d, 0x6c, 0xa9, 0x31, 0x20, 0x00, 0x00, 0xff, 0xff, 0x47, 0xf7, 0x35, 0x74, 0x80, + 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/product_channel_exclusivity.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/product_channel_exclusivity.pb.go new file mode 100644 index 000000000..095db05d2 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/product_channel_exclusivity.pb.go @@ -0,0 +1,117 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/product_channel_exclusivity.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing the availability of a product offer. +type ProductChannelExclusivityEnum_ProductChannelExclusivity int32 + +const ( + // Not specified. + ProductChannelExclusivityEnum_UNSPECIFIED ProductChannelExclusivityEnum_ProductChannelExclusivity = 0 + // Used for return value only. Represents value unknown in this version. + ProductChannelExclusivityEnum_UNKNOWN ProductChannelExclusivityEnum_ProductChannelExclusivity = 1 + // The item is sold through one channel only, either local stores or online + // as indicated by its ProductChannel. + ProductChannelExclusivityEnum_SINGLE_CHANNEL ProductChannelExclusivityEnum_ProductChannelExclusivity = 2 + // The item is matched to its online or local stores counterpart, indicating + // it is available for purchase in both ShoppingProductChannels. + ProductChannelExclusivityEnum_MULTI_CHANNEL ProductChannelExclusivityEnum_ProductChannelExclusivity = 3 +) + +var ProductChannelExclusivityEnum_ProductChannelExclusivity_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "SINGLE_CHANNEL", + 3: "MULTI_CHANNEL", +} +var ProductChannelExclusivityEnum_ProductChannelExclusivity_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "SINGLE_CHANNEL": 2, + "MULTI_CHANNEL": 3, +} + +func (x ProductChannelExclusivityEnum_ProductChannelExclusivity) String() string { + return proto.EnumName(ProductChannelExclusivityEnum_ProductChannelExclusivity_name, int32(x)) +} +func (ProductChannelExclusivityEnum_ProductChannelExclusivity) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_product_channel_exclusivity_8ac2b04352a1c000, []int{0, 0} +} + +// Availability of a product offer. +type ProductChannelExclusivityEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ProductChannelExclusivityEnum) Reset() { *m = ProductChannelExclusivityEnum{} } +func (m *ProductChannelExclusivityEnum) String() string { return proto.CompactTextString(m) } +func (*ProductChannelExclusivityEnum) ProtoMessage() {} +func (*ProductChannelExclusivityEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_product_channel_exclusivity_8ac2b04352a1c000, []int{0} +} +func (m *ProductChannelExclusivityEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ProductChannelExclusivityEnum.Unmarshal(m, b) +} +func (m *ProductChannelExclusivityEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ProductChannelExclusivityEnum.Marshal(b, m, deterministic) +} +func (dst *ProductChannelExclusivityEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProductChannelExclusivityEnum.Merge(dst, src) +} +func (m *ProductChannelExclusivityEnum) XXX_Size() int { + return xxx_messageInfo_ProductChannelExclusivityEnum.Size(m) +} +func (m *ProductChannelExclusivityEnum) XXX_DiscardUnknown() { + xxx_messageInfo_ProductChannelExclusivityEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_ProductChannelExclusivityEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*ProductChannelExclusivityEnum)(nil), "google.ads.googleads.v0.enums.ProductChannelExclusivityEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.ProductChannelExclusivityEnum_ProductChannelExclusivity", ProductChannelExclusivityEnum_ProductChannelExclusivity_name, ProductChannelExclusivityEnum_ProductChannelExclusivity_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/product_channel_exclusivity.proto", fileDescriptor_product_channel_exclusivity_8ac2b04352a1c000) +} + +var fileDescriptor_product_channel_exclusivity_8ac2b04352a1c000 = []byte{ + // 286 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x4f, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xbc, + 0xd2, 0xdc, 0x62, 0xfd, 0x82, 0xa2, 0xfc, 0x94, 0xd2, 0xe4, 0x92, 0xf8, 0xe4, 0x8c, 0xc4, 0xbc, + 0xbc, 0xd4, 0x9c, 0xf8, 0xd4, 0x8a, 0xe4, 0x9c, 0xd2, 0xe2, 0xcc, 0xb2, 0xcc, 0x92, 0x4a, 0xbd, + 0x82, 0xa2, 0xfc, 0x92, 0x7c, 0x21, 0x59, 0x88, 0x2e, 0xbd, 0xc4, 0x94, 0x62, 0x3d, 0xb8, 0x01, + 0x7a, 0x65, 0x06, 0x7a, 0x60, 0x03, 0x94, 0x1a, 0x19, 0xb9, 0x64, 0x03, 0x20, 0x86, 0x38, 0x43, + 0xcc, 0x70, 0x45, 0x18, 0xe1, 0x9a, 0x57, 0x9a, 0xab, 0x94, 0xc0, 0x25, 0x89, 0x53, 0x81, 0x10, + 0x3f, 0x17, 0x77, 0xa8, 0x5f, 0x70, 0x80, 0xab, 0xb3, 0xa7, 0x9b, 0xa7, 0xab, 0x8b, 0x00, 0x83, + 0x10, 0x37, 0x17, 0x7b, 0xa8, 0x9f, 0xb7, 0x9f, 0x7f, 0xb8, 0x9f, 0x00, 0xa3, 0x90, 0x10, 0x17, + 0x5f, 0xb0, 0xa7, 0x9f, 0xbb, 0x8f, 0x6b, 0xbc, 0xb3, 0x87, 0xa3, 0x9f, 0x9f, 0xab, 0x8f, 0x00, + 0x93, 0x90, 0x20, 0x17, 0xaf, 0x6f, 0xa8, 0x4f, 0x88, 0x27, 0x5c, 0x88, 0xd9, 0xe9, 0x3c, 0x23, + 0x97, 0x62, 0x72, 0x7e, 0xae, 0x1e, 0x5e, 0x97, 0x3a, 0xc9, 0xe1, 0x74, 0x45, 0x00, 0xc8, 0xa3, + 0x01, 0x8c, 0x51, 0x4e, 0x50, 0x03, 0xd2, 0xf3, 0x73, 0x12, 0xf3, 0xd2, 0xf5, 0xf2, 0x8b, 0xd2, + 0xf5, 0xd3, 0x53, 0xf3, 0xc0, 0xc1, 0x00, 0x0b, 0xbb, 0x82, 0xcc, 0x62, 0x1c, 0x41, 0x69, 0x0d, + 0x26, 0x17, 0x31, 0x31, 0xbb, 0x3b, 0x3a, 0xae, 0x62, 0x92, 0x75, 0x87, 0x18, 0xe5, 0x98, 0x52, + 0xac, 0x07, 0x61, 0x82, 0x58, 0x61, 0x06, 0x7a, 0xa0, 0x20, 0x29, 0x3e, 0x05, 0x93, 0x8f, 0x71, + 0x4c, 0x29, 0x8e, 0x81, 0xcb, 0xc7, 0x84, 0x19, 0xc4, 0x80, 0xe5, 0x93, 0xd8, 0xc0, 0x96, 0x1a, + 0x03, 0x02, 0x00, 0x00, 0xff, 0xff, 0x7d, 0xf1, 0xef, 0x78, 0xbe, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/product_condition.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/product_condition.pb.go new file mode 100644 index 000000000..adebe3ff6 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/product_condition.pb.go @@ -0,0 +1,119 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/product_condition.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing the condition of a product offer. +type ProductConditionEnum_ProductCondition int32 + +const ( + // Not specified. + ProductConditionEnum_UNSPECIFIED ProductConditionEnum_ProductCondition = 0 + // Used for return value only. Represents value unknown in this version. + ProductConditionEnum_UNKNOWN ProductConditionEnum_ProductCondition = 1 + // The product condition is new. + ProductConditionEnum_NEW ProductConditionEnum_ProductCondition = 3 + // The product condition is refurbished. + ProductConditionEnum_REFURBISHED ProductConditionEnum_ProductCondition = 4 + // The product condition is used. + ProductConditionEnum_USED ProductConditionEnum_ProductCondition = 5 +) + +var ProductConditionEnum_ProductCondition_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 3: "NEW", + 4: "REFURBISHED", + 5: "USED", +} +var ProductConditionEnum_ProductCondition_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "NEW": 3, + "REFURBISHED": 4, + "USED": 5, +} + +func (x ProductConditionEnum_ProductCondition) String() string { + return proto.EnumName(ProductConditionEnum_ProductCondition_name, int32(x)) +} +func (ProductConditionEnum_ProductCondition) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_product_condition_929fee96e58b4c70, []int{0, 0} +} + +// Condition of a product offer. +type ProductConditionEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ProductConditionEnum) Reset() { *m = ProductConditionEnum{} } +func (m *ProductConditionEnum) String() string { return proto.CompactTextString(m) } +func (*ProductConditionEnum) ProtoMessage() {} +func (*ProductConditionEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_product_condition_929fee96e58b4c70, []int{0} +} +func (m *ProductConditionEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ProductConditionEnum.Unmarshal(m, b) +} +func (m *ProductConditionEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ProductConditionEnum.Marshal(b, m, deterministic) +} +func (dst *ProductConditionEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProductConditionEnum.Merge(dst, src) +} +func (m *ProductConditionEnum) XXX_Size() int { + return xxx_messageInfo_ProductConditionEnum.Size(m) +} +func (m *ProductConditionEnum) XXX_DiscardUnknown() { + xxx_messageInfo_ProductConditionEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_ProductConditionEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*ProductConditionEnum)(nil), "google.ads.googleads.v0.enums.ProductConditionEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.ProductConditionEnum_ProductCondition", ProductConditionEnum_ProductCondition_name, ProductConditionEnum_ProductCondition_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/product_condition.proto", fileDescriptor_product_condition_929fee96e58b4c70) +} + +var fileDescriptor_product_condition_929fee96e58b4c70 = []byte{ + // 273 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x32, 0x4d, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xbc, + 0xd2, 0xdc, 0x62, 0xfd, 0x82, 0xa2, 0xfc, 0x94, 0xd2, 0xe4, 0x92, 0xf8, 0xe4, 0xfc, 0xbc, 0x94, + 0xcc, 0x92, 0xcc, 0xfc, 0x3c, 0xbd, 0x82, 0xa2, 0xfc, 0x92, 0x7c, 0x21, 0x59, 0x88, 0x5a, 0xbd, + 0xc4, 0x94, 0x62, 0x3d, 0xb8, 0x36, 0xbd, 0x32, 0x03, 0x3d, 0xb0, 0x36, 0xa5, 0x1c, 0x2e, 0x91, + 0x00, 0x88, 0x4e, 0x67, 0x98, 0x46, 0xd7, 0xbc, 0xd2, 0x5c, 0xa5, 0x10, 0x2e, 0x01, 0x74, 0x71, + 0x21, 0x7e, 0x2e, 0xee, 0x50, 0xbf, 0xe0, 0x00, 0x57, 0x67, 0x4f, 0x37, 0x4f, 0x57, 0x17, 0x01, + 0x06, 0x21, 0x6e, 0x2e, 0xf6, 0x50, 0x3f, 0x6f, 0x3f, 0xff, 0x70, 0x3f, 0x01, 0x46, 0x21, 0x76, + 0x2e, 0x66, 0x3f, 0xd7, 0x70, 0x01, 0x66, 0x90, 0xb2, 0x20, 0x57, 0xb7, 0xd0, 0x20, 0x27, 0xcf, + 0x60, 0x0f, 0x57, 0x17, 0x01, 0x16, 0x21, 0x0e, 0x2e, 0x96, 0xd0, 0x60, 0x57, 0x17, 0x01, 0x56, + 0xa7, 0x63, 0x8c, 0x5c, 0x8a, 0xc9, 0xf9, 0xb9, 0x7a, 0x78, 0xdd, 0xe4, 0x24, 0x8a, 0x6e, 0x73, + 0x00, 0xc8, 0x27, 0x01, 0x8c, 0x51, 0x4e, 0x50, 0x7d, 0xe9, 0xf9, 0x39, 0x89, 0x79, 0xe9, 0x7a, + 0xf9, 0x45, 0xe9, 0xfa, 0xe9, 0xa9, 0x79, 0x60, 0x7f, 0xc2, 0x82, 0xa4, 0x20, 0xb3, 0x18, 0x47, + 0x08, 0x59, 0x83, 0xc9, 0x45, 0x4c, 0xcc, 0xee, 0x8e, 0x8e, 0xab, 0x98, 0x64, 0xdd, 0x21, 0x46, + 0x39, 0xa6, 0x14, 0xeb, 0x41, 0x98, 0x20, 0x56, 0x98, 0x81, 0x1e, 0xc8, 0xf7, 0xc5, 0xa7, 0x60, + 0xf2, 0x31, 0x8e, 0x29, 0xc5, 0x31, 0x70, 0xf9, 0x98, 0x30, 0x83, 0x18, 0xb0, 0x7c, 0x12, 0x1b, + 0xd8, 0x52, 0x63, 0x40, 0x00, 0x00, 0x00, 0xff, 0xff, 0x98, 0xa4, 0xf5, 0x40, 0x95, 0x01, 0x00, + 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/product_type_level.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/product_type_level.pb.go new file mode 100644 index 000000000..9f61214e9 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/product_type_level.pb.go @@ -0,0 +1,127 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/product_type_level.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing the level of the type of a product offer. +type ProductTypeLevelEnum_ProductTypeLevel int32 + +const ( + // Not specified. + ProductTypeLevelEnum_UNSPECIFIED ProductTypeLevelEnum_ProductTypeLevel = 0 + // Used for return value only. Represents value unknown in this version. + ProductTypeLevelEnum_UNKNOWN ProductTypeLevelEnum_ProductTypeLevel = 1 + // Level 1. + ProductTypeLevelEnum_PRODUCT_TYPE_L1 ProductTypeLevelEnum_ProductTypeLevel = 2 + // Level 2. + ProductTypeLevelEnum_PRODUCT_TYPE_L2 ProductTypeLevelEnum_ProductTypeLevel = 3 + // Level 3. + ProductTypeLevelEnum_PRODUCT_TYPE_L3 ProductTypeLevelEnum_ProductTypeLevel = 4 + // Level 4. + ProductTypeLevelEnum_PRODUCT_TYPE_L4 ProductTypeLevelEnum_ProductTypeLevel = 5 + // Level 5. + ProductTypeLevelEnum_PRODUCT_TYPE_L5 ProductTypeLevelEnum_ProductTypeLevel = 6 +) + +var ProductTypeLevelEnum_ProductTypeLevel_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "PRODUCT_TYPE_L1", + 3: "PRODUCT_TYPE_L2", + 4: "PRODUCT_TYPE_L3", + 5: "PRODUCT_TYPE_L4", + 6: "PRODUCT_TYPE_L5", +} +var ProductTypeLevelEnum_ProductTypeLevel_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "PRODUCT_TYPE_L1": 2, + "PRODUCT_TYPE_L2": 3, + "PRODUCT_TYPE_L3": 4, + "PRODUCT_TYPE_L4": 5, + "PRODUCT_TYPE_L5": 6, +} + +func (x ProductTypeLevelEnum_ProductTypeLevel) String() string { + return proto.EnumName(ProductTypeLevelEnum_ProductTypeLevel_name, int32(x)) +} +func (ProductTypeLevelEnum_ProductTypeLevel) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_product_type_level_e9b6c5214d538040, []int{0, 0} +} + +// Level of the type of a product offer. +type ProductTypeLevelEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ProductTypeLevelEnum) Reset() { *m = ProductTypeLevelEnum{} } +func (m *ProductTypeLevelEnum) String() string { return proto.CompactTextString(m) } +func (*ProductTypeLevelEnum) ProtoMessage() {} +func (*ProductTypeLevelEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_product_type_level_e9b6c5214d538040, []int{0} +} +func (m *ProductTypeLevelEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ProductTypeLevelEnum.Unmarshal(m, b) +} +func (m *ProductTypeLevelEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ProductTypeLevelEnum.Marshal(b, m, deterministic) +} +func (dst *ProductTypeLevelEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProductTypeLevelEnum.Merge(dst, src) +} +func (m *ProductTypeLevelEnum) XXX_Size() int { + return xxx_messageInfo_ProductTypeLevelEnum.Size(m) +} +func (m *ProductTypeLevelEnum) XXX_DiscardUnknown() { + xxx_messageInfo_ProductTypeLevelEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_ProductTypeLevelEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*ProductTypeLevelEnum)(nil), "google.ads.googleads.v0.enums.ProductTypeLevelEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.ProductTypeLevelEnum_ProductTypeLevel", ProductTypeLevelEnum_ProductTypeLevel_name, ProductTypeLevelEnum_ProductTypeLevel_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/product_type_level.proto", fileDescriptor_product_type_level_e9b6c5214d538040) +} + +var fileDescriptor_product_type_level_e9b6c5214d538040 = []byte{ + // 287 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x32, 0x4b, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xbc, + 0xd2, 0xdc, 0x62, 0xfd, 0x82, 0xa2, 0xfc, 0x94, 0xd2, 0xe4, 0x92, 0xf8, 0x92, 0xca, 0x82, 0xd4, + 0xf8, 0x9c, 0xd4, 0xb2, 0xd4, 0x1c, 0xbd, 0x82, 0xa2, 0xfc, 0x92, 0x7c, 0x21, 0x59, 0x88, 0x62, + 0xbd, 0xc4, 0x94, 0x62, 0x3d, 0xb8, 0x3e, 0xbd, 0x32, 0x03, 0x3d, 0xb0, 0x3e, 0xa5, 0x4d, 0x8c, + 0x5c, 0x22, 0x01, 0x10, 0xbd, 0x21, 0x95, 0x05, 0xa9, 0x3e, 0x20, 0x9d, 0xae, 0x79, 0xa5, 0xb9, + 0x4a, 0x33, 0x19, 0xb9, 0x04, 0xd0, 0x25, 0x84, 0xf8, 0xb9, 0xb8, 0x43, 0xfd, 0x82, 0x03, 0x5c, + 0x9d, 0x3d, 0xdd, 0x3c, 0x5d, 0x5d, 0x04, 0x18, 0x84, 0xb8, 0xb9, 0xd8, 0x43, 0xfd, 0xbc, 0xfd, + 0xfc, 0xc3, 0xfd, 0x04, 0x18, 0x85, 0x84, 0xb9, 0xf8, 0x03, 0x82, 0xfc, 0x5d, 0x42, 0x9d, 0x43, + 0xe2, 0x43, 0x22, 0x03, 0x5c, 0xe3, 0x7d, 0x0c, 0x05, 0x98, 0x30, 0x05, 0x8d, 0x04, 0x98, 0x31, + 0x05, 0x8d, 0x05, 0x58, 0x30, 0x05, 0x4d, 0x04, 0x58, 0x31, 0x05, 0x4d, 0x05, 0xd8, 0x9c, 0x8e, + 0x31, 0x72, 0x29, 0x26, 0xe7, 0xe7, 0xea, 0xe1, 0xf5, 0x9a, 0x93, 0x28, 0xba, 0xf3, 0x03, 0x40, + 0x01, 0x12, 0xc0, 0x18, 0xe5, 0x04, 0xd5, 0x97, 0x9e, 0x9f, 0x93, 0x98, 0x97, 0xae, 0x97, 0x5f, + 0x94, 0xae, 0x9f, 0x9e, 0x9a, 0x07, 0x0e, 0x2e, 0x58, 0xd0, 0x16, 0x64, 0x16, 0xe3, 0x08, 0x69, + 0x6b, 0x30, 0xb9, 0x88, 0x89, 0xd9, 0xdd, 0xd1, 0x71, 0x15, 0x93, 0xac, 0x3b, 0xc4, 0x28, 0xc7, + 0x94, 0x62, 0x3d, 0x08, 0x13, 0xc4, 0x0a, 0x33, 0xd0, 0x03, 0x85, 0x61, 0xf1, 0x29, 0x98, 0x7c, + 0x8c, 0x63, 0x4a, 0x71, 0x0c, 0x5c, 0x3e, 0x26, 0xcc, 0x20, 0x06, 0x2c, 0x9f, 0xc4, 0x06, 0xb6, + 0xd4, 0x18, 0x10, 0x00, 0x00, 0xff, 0xff, 0xae, 0x5a, 0x72, 0x1e, 0xdd, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/promotion_placeholder_field.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/promotion_placeholder_field.pb.go new file mode 100644 index 000000000..0b67b6c47 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/promotion_placeholder_field.pb.go @@ -0,0 +1,182 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/promotion_placeholder_field.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Possible values for Promotion placeholder fields. +type PromotionPlaceholderFieldEnum_PromotionPlaceholderField int32 + +const ( + // Not specified. + PromotionPlaceholderFieldEnum_UNSPECIFIED PromotionPlaceholderFieldEnum_PromotionPlaceholderField = 0 + // Used for return value only. Represents value unknown in this version. + PromotionPlaceholderFieldEnum_UNKNOWN PromotionPlaceholderFieldEnum_PromotionPlaceholderField = 1 + // Data Type: STRING. The text that appears on the ad when the extension is + // shown. + PromotionPlaceholderFieldEnum_PROMOTION_TARGET PromotionPlaceholderFieldEnum_PromotionPlaceholderField = 2 + // Data Type: STRING. Allows you to add "up to" phrase to the promotion, + // in case you have variable promotion rates. + PromotionPlaceholderFieldEnum_DISCOUNT_MODIFIER PromotionPlaceholderFieldEnum_PromotionPlaceholderField = 3 + // Data Type: INT64. Takes a value in micros, where 1 million micros + // represents 1%, and is shown as a percentage when rendered. + PromotionPlaceholderFieldEnum_PERCENT_OFF PromotionPlaceholderFieldEnum_PromotionPlaceholderField = 4 + // Data Type: PRICE. Requires a currency and an amount of money. + PromotionPlaceholderFieldEnum_MONEY_AMOUNT_OFF PromotionPlaceholderFieldEnum_PromotionPlaceholderField = 5 + // Data Type: STRING. A string that the user enters to get the discount. + PromotionPlaceholderFieldEnum_PROMOTION_CODE PromotionPlaceholderFieldEnum_PromotionPlaceholderField = 6 + // Data Type: PRICE. A minimum spend before the user qualifies for the + // promotion. + PromotionPlaceholderFieldEnum_ORDERS_OVER_AMOUNT PromotionPlaceholderFieldEnum_PromotionPlaceholderField = 7 + // Data Type: DATE. The start date of the promotion. + PromotionPlaceholderFieldEnum_PROMOTION_START PromotionPlaceholderFieldEnum_PromotionPlaceholderField = 8 + // Data Type: DATE. The end date of the promotion. + PromotionPlaceholderFieldEnum_PROMOTION_END PromotionPlaceholderFieldEnum_PromotionPlaceholderField = 9 + // Data Type: STRING. Describes the associated event for the promotion using + // one of the PromotionExtensionOccasion enum values, for example NEW_YEARS. + PromotionPlaceholderFieldEnum_OCCASION PromotionPlaceholderFieldEnum_PromotionPlaceholderField = 10 + // Data Type: URL_LIST. Final URLs to be used in the ad when using Upgraded + // URLs. + PromotionPlaceholderFieldEnum_FINAL_URLS PromotionPlaceholderFieldEnum_PromotionPlaceholderField = 11 + // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded + // URLs. + PromotionPlaceholderFieldEnum_FINAL_MOBILE_URLS PromotionPlaceholderFieldEnum_PromotionPlaceholderField = 12 + // Data Type: URL. Tracking template for the ad when using Upgraded URLs. + PromotionPlaceholderFieldEnum_TRACKING_URL PromotionPlaceholderFieldEnum_PromotionPlaceholderField = 13 + // Data Type: STRING. A string represented by a language code for the + // promotion. + PromotionPlaceholderFieldEnum_LANGUAGE PromotionPlaceholderFieldEnum_PromotionPlaceholderField = 14 + // Data Type: STRING. Final URL suffix for the ad when using parallel + // tracking. + PromotionPlaceholderFieldEnum_FINAL_URL_SUFFIX PromotionPlaceholderFieldEnum_PromotionPlaceholderField = 15 +) + +var PromotionPlaceholderFieldEnum_PromotionPlaceholderField_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "PROMOTION_TARGET", + 3: "DISCOUNT_MODIFIER", + 4: "PERCENT_OFF", + 5: "MONEY_AMOUNT_OFF", + 6: "PROMOTION_CODE", + 7: "ORDERS_OVER_AMOUNT", + 8: "PROMOTION_START", + 9: "PROMOTION_END", + 10: "OCCASION", + 11: "FINAL_URLS", + 12: "FINAL_MOBILE_URLS", + 13: "TRACKING_URL", + 14: "LANGUAGE", + 15: "FINAL_URL_SUFFIX", +} +var PromotionPlaceholderFieldEnum_PromotionPlaceholderField_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "PROMOTION_TARGET": 2, + "DISCOUNT_MODIFIER": 3, + "PERCENT_OFF": 4, + "MONEY_AMOUNT_OFF": 5, + "PROMOTION_CODE": 6, + "ORDERS_OVER_AMOUNT": 7, + "PROMOTION_START": 8, + "PROMOTION_END": 9, + "OCCASION": 10, + "FINAL_URLS": 11, + "FINAL_MOBILE_URLS": 12, + "TRACKING_URL": 13, + "LANGUAGE": 14, + "FINAL_URL_SUFFIX": 15, +} + +func (x PromotionPlaceholderFieldEnum_PromotionPlaceholderField) String() string { + return proto.EnumName(PromotionPlaceholderFieldEnum_PromotionPlaceholderField_name, int32(x)) +} +func (PromotionPlaceholderFieldEnum_PromotionPlaceholderField) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_promotion_placeholder_field_6a43d446aaa76383, []int{0, 0} +} + +// Values for Promotion placeholder fields. +type PromotionPlaceholderFieldEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PromotionPlaceholderFieldEnum) Reset() { *m = PromotionPlaceholderFieldEnum{} } +func (m *PromotionPlaceholderFieldEnum) String() string { return proto.CompactTextString(m) } +func (*PromotionPlaceholderFieldEnum) ProtoMessage() {} +func (*PromotionPlaceholderFieldEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_promotion_placeholder_field_6a43d446aaa76383, []int{0} +} +func (m *PromotionPlaceholderFieldEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PromotionPlaceholderFieldEnum.Unmarshal(m, b) +} +func (m *PromotionPlaceholderFieldEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PromotionPlaceholderFieldEnum.Marshal(b, m, deterministic) +} +func (dst *PromotionPlaceholderFieldEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_PromotionPlaceholderFieldEnum.Merge(dst, src) +} +func (m *PromotionPlaceholderFieldEnum) XXX_Size() int { + return xxx_messageInfo_PromotionPlaceholderFieldEnum.Size(m) +} +func (m *PromotionPlaceholderFieldEnum) XXX_DiscardUnknown() { + xxx_messageInfo_PromotionPlaceholderFieldEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_PromotionPlaceholderFieldEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*PromotionPlaceholderFieldEnum)(nil), "google.ads.googleads.v0.enums.PromotionPlaceholderFieldEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.PromotionPlaceholderFieldEnum_PromotionPlaceholderField", PromotionPlaceholderFieldEnum_PromotionPlaceholderField_name, PromotionPlaceholderFieldEnum_PromotionPlaceholderField_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/promotion_placeholder_field.proto", fileDescriptor_promotion_placeholder_field_6a43d446aaa76383) +} + +var fileDescriptor_promotion_placeholder_field_6a43d446aaa76383 = []byte{ + // 438 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x92, 0xdf, 0x6e, 0x9b, 0x30, + 0x18, 0xc5, 0x17, 0xba, 0xb5, 0xdd, 0x97, 0x34, 0x71, 0xbd, 0x3f, 0xd2, 0x2e, 0x32, 0x69, 0x7d, + 0x00, 0x13, 0x69, 0x97, 0xbb, 0x98, 0x1c, 0x30, 0xc8, 0x6a, 0xb0, 0x91, 0x81, 0xec, 0x8f, 0x22, + 0x59, 0x59, 0x61, 0x2c, 0x12, 0xc1, 0x51, 0x68, 0xfb, 0x40, 0xbb, 0xdc, 0xa3, 0x4c, 0x93, 0xf6, + 0x26, 0x7b, 0x86, 0xc9, 0xd0, 0x24, 0x57, 0xe9, 0x0d, 0x3a, 0x9c, 0xef, 0x7c, 0x3f, 0x2c, 0x8e, + 0xe1, 0x63, 0x69, 0x4c, 0x59, 0x15, 0xee, 0x32, 0x6f, 0xdc, 0x4e, 0x5a, 0x75, 0x3f, 0x71, 0x8b, + 0xfa, 0x6e, 0xdd, 0xb8, 0x9b, 0xad, 0x59, 0x9b, 0xdb, 0x95, 0xa9, 0xf5, 0xa6, 0x5a, 0xde, 0x14, + 0x3f, 0x4c, 0x95, 0x17, 0x5b, 0xfd, 0x7d, 0x55, 0x54, 0x39, 0xd9, 0x6c, 0xcd, 0xad, 0xc1, 0xe3, + 0x6e, 0x8b, 0x2c, 0xf3, 0x86, 0xec, 0x01, 0xe4, 0x7e, 0x42, 0x5a, 0xc0, 0xd5, 0x3f, 0x07, 0xc6, + 0xf1, 0x0e, 0x12, 0x1f, 0x18, 0x81, 0x45, 0xb0, 0xfa, 0x6e, 0x7d, 0xf5, 0xc7, 0x81, 0x37, 0x47, + 0x13, 0x78, 0x04, 0xfd, 0x4c, 0x24, 0x31, 0xf3, 0x78, 0xc0, 0x99, 0x8f, 0x9e, 0xe0, 0x3e, 0x9c, + 0x65, 0xe2, 0x5a, 0xc8, 0x4f, 0x02, 0xf5, 0xf0, 0x4b, 0x40, 0xb1, 0x92, 0x91, 0x4c, 0xb9, 0x14, + 0x3a, 0xa5, 0x2a, 0x64, 0x29, 0x72, 0xf0, 0x2b, 0xb8, 0xf4, 0x79, 0xe2, 0xc9, 0x4c, 0xa4, 0x3a, + 0x92, 0xbe, 0xdd, 0x54, 0xe8, 0xc4, 0xa2, 0x62, 0xa6, 0x3c, 0x26, 0x52, 0x2d, 0x83, 0x00, 0x3d, + 0xb5, 0xdb, 0x91, 0x14, 0xec, 0x8b, 0xa6, 0x51, 0x9b, 0xb5, 0xee, 0x33, 0x8c, 0x61, 0x78, 0x60, + 0x7a, 0xd2, 0x67, 0xe8, 0x14, 0xbf, 0x06, 0x2c, 0x95, 0xcf, 0x54, 0xa2, 0xe5, 0x9c, 0xa9, 0x87, + 0x3c, 0x3a, 0xc3, 0x2f, 0x60, 0x74, 0xc8, 0x26, 0x29, 0x55, 0x29, 0x3a, 0xc7, 0x97, 0x70, 0x71, + 0x30, 0x99, 0xf0, 0xd1, 0x73, 0x3c, 0x80, 0x73, 0xe9, 0x79, 0x34, 0xe1, 0x52, 0x20, 0xc0, 0x43, + 0x80, 0x80, 0x0b, 0x3a, 0xd3, 0x99, 0x9a, 0x25, 0xa8, 0x6f, 0xcf, 0xdb, 0xbd, 0x47, 0x72, 0xca, + 0x67, 0xac, 0xb3, 0x07, 0x18, 0xc1, 0x20, 0x55, 0xd4, 0xbb, 0xe6, 0x22, 0xb4, 0x16, 0xba, 0xb0, + 0x98, 0x19, 0x15, 0x61, 0x46, 0x43, 0x86, 0x86, 0xf6, 0xf8, 0x7b, 0x8c, 0x4e, 0xb2, 0x20, 0xe0, + 0x9f, 0xd1, 0x68, 0xfa, 0xb7, 0x07, 0xef, 0x6e, 0xcc, 0x9a, 0x3c, 0x5a, 0xcb, 0xf4, 0xed, 0xd1, + 0x3f, 0x1e, 0xdb, 0x56, 0xe3, 0xde, 0xd7, 0xe9, 0x03, 0xa0, 0x34, 0xd5, 0xb2, 0x2e, 0x89, 0xd9, + 0x96, 0x6e, 0x59, 0xd4, 0x6d, 0xe7, 0xbb, 0x8b, 0xb2, 0x59, 0x35, 0x47, 0xee, 0xcd, 0x87, 0xf6, + 0xf9, 0xd3, 0x39, 0x09, 0x29, 0xfd, 0xe5, 0x8c, 0xc3, 0x0e, 0x45, 0xf3, 0x86, 0x74, 0xd2, 0xaa, + 0xf9, 0x84, 0xd8, 0xfe, 0x9b, 0xdf, 0xbb, 0xf9, 0x82, 0xe6, 0xcd, 0x62, 0x3f, 0x5f, 0xcc, 0x27, + 0x8b, 0x76, 0xfe, 0xed, 0xb4, 0xfd, 0xe8, 0xfb, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, 0x2b, 0xb1, + 0x0f, 0xf2, 0xab, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/proximity_radius_units.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/proximity_radius_units.pb.go new file mode 100644 index 000000000..e4e121613 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/proximity_radius_units.pb.go @@ -0,0 +1,115 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/proximity_radius_units.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// The unit of radius distance in proximity (e.g. MILES) +type ProximityRadiusUnitsEnum_ProximityRadiusUnits int32 + +const ( + // Not specified. + ProximityRadiusUnitsEnum_UNSPECIFIED ProximityRadiusUnitsEnum_ProximityRadiusUnits = 0 + // Used for return value only. Represents value unknown in this version. + ProximityRadiusUnitsEnum_UNKNOWN ProximityRadiusUnitsEnum_ProximityRadiusUnits = 1 + // Miles + ProximityRadiusUnitsEnum_MILES ProximityRadiusUnitsEnum_ProximityRadiusUnits = 2 + // Kilometers + ProximityRadiusUnitsEnum_KILOMETERS ProximityRadiusUnitsEnum_ProximityRadiusUnits = 3 +) + +var ProximityRadiusUnitsEnum_ProximityRadiusUnits_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "MILES", + 3: "KILOMETERS", +} +var ProximityRadiusUnitsEnum_ProximityRadiusUnits_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "MILES": 2, + "KILOMETERS": 3, +} + +func (x ProximityRadiusUnitsEnum_ProximityRadiusUnits) String() string { + return proto.EnumName(ProximityRadiusUnitsEnum_ProximityRadiusUnits_name, int32(x)) +} +func (ProximityRadiusUnitsEnum_ProximityRadiusUnits) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_proximity_radius_units_5dd96de9f46de87e, []int{0, 0} +} + +// Container for enum describing unit of radius in proximity. +type ProximityRadiusUnitsEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ProximityRadiusUnitsEnum) Reset() { *m = ProximityRadiusUnitsEnum{} } +func (m *ProximityRadiusUnitsEnum) String() string { return proto.CompactTextString(m) } +func (*ProximityRadiusUnitsEnum) ProtoMessage() {} +func (*ProximityRadiusUnitsEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_proximity_radius_units_5dd96de9f46de87e, []int{0} +} +func (m *ProximityRadiusUnitsEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ProximityRadiusUnitsEnum.Unmarshal(m, b) +} +func (m *ProximityRadiusUnitsEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ProximityRadiusUnitsEnum.Marshal(b, m, deterministic) +} +func (dst *ProximityRadiusUnitsEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProximityRadiusUnitsEnum.Merge(dst, src) +} +func (m *ProximityRadiusUnitsEnum) XXX_Size() int { + return xxx_messageInfo_ProximityRadiusUnitsEnum.Size(m) +} +func (m *ProximityRadiusUnitsEnum) XXX_DiscardUnknown() { + xxx_messageInfo_ProximityRadiusUnitsEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_ProximityRadiusUnitsEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*ProximityRadiusUnitsEnum)(nil), "google.ads.googleads.v0.enums.ProximityRadiusUnitsEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.ProximityRadiusUnitsEnum_ProximityRadiusUnits", ProximityRadiusUnitsEnum_ProximityRadiusUnits_name, ProximityRadiusUnitsEnum_ProximityRadiusUnits_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/proximity_radius_units.proto", fileDescriptor_proximity_radius_units_5dd96de9f46de87e) +} + +var fileDescriptor_proximity_radius_units_5dd96de9f46de87e = []byte{ + // 274 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x4a, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xbc, + 0xd2, 0xdc, 0x62, 0xfd, 0x82, 0xa2, 0xfc, 0x8a, 0xcc, 0xdc, 0xcc, 0x92, 0xca, 0xf8, 0xa2, 0xc4, + 0x94, 0xcc, 0xd2, 0xe2, 0xf8, 0xd2, 0xbc, 0xcc, 0x92, 0x62, 0xbd, 0x82, 0xa2, 0xfc, 0x92, 0x7c, + 0x21, 0x59, 0x88, 0x06, 0xbd, 0xc4, 0x94, 0x62, 0x3d, 0xb8, 0x5e, 0xbd, 0x32, 0x03, 0x3d, 0xb0, + 0x5e, 0xa5, 0x6c, 0x2e, 0x89, 0x00, 0x98, 0xf6, 0x20, 0xb0, 0xee, 0x50, 0x90, 0x66, 0xd7, 0xbc, + 0xd2, 0x5c, 0x25, 0x7f, 0x2e, 0x11, 0x6c, 0x72, 0x42, 0xfc, 0x5c, 0xdc, 0xa1, 0x7e, 0xc1, 0x01, + 0xae, 0xce, 0x9e, 0x6e, 0x9e, 0xae, 0x2e, 0x02, 0x0c, 0x42, 0xdc, 0x5c, 0xec, 0xa1, 0x7e, 0xde, + 0x7e, 0xfe, 0xe1, 0x7e, 0x02, 0x8c, 0x42, 0x9c, 0x5c, 0xac, 0xbe, 0x9e, 0x3e, 0xae, 0xc1, 0x02, + 0x4c, 0x42, 0x7c, 0x5c, 0x5c, 0xde, 0x9e, 0x3e, 0xfe, 0xbe, 0xae, 0x21, 0xae, 0x41, 0xc1, 0x02, + 0xcc, 0x4e, 0xa7, 0x18, 0xb9, 0x14, 0x93, 0xf3, 0x73, 0xf5, 0xf0, 0x3a, 0xc9, 0x49, 0x12, 0x9b, + 0xa5, 0x01, 0x20, 0xcf, 0x04, 0x30, 0x46, 0x39, 0x41, 0xf5, 0xa6, 0xe7, 0xe7, 0x24, 0xe6, 0xa5, + 0xeb, 0xe5, 0x17, 0xa5, 0xeb, 0xa7, 0xa7, 0xe6, 0x81, 0xbd, 0x0a, 0x0b, 0x9a, 0x82, 0xcc, 0x62, + 0x1c, 0x21, 0x65, 0x0d, 0x26, 0x17, 0x31, 0x31, 0xbb, 0x3b, 0x3a, 0xae, 0x62, 0x92, 0x75, 0x87, + 0x18, 0xe5, 0x98, 0x52, 0xac, 0x07, 0x61, 0x82, 0x58, 0x61, 0x06, 0x7a, 0x20, 0xcf, 0x17, 0x9f, + 0x82, 0xc9, 0xc7, 0x38, 0xa6, 0x14, 0xc7, 0xc0, 0xe5, 0x63, 0xc2, 0x0c, 0x62, 0xc0, 0xf2, 0x49, + 0x6c, 0x60, 0x4b, 0x8d, 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0x05, 0xa6, 0x15, 0x88, 0x9d, 0x01, + 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/quality_score_bucket.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/quality_score_bucket.pb.go new file mode 100644 index 000000000..4b1330ef4 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/quality_score_bucket.pb.go @@ -0,0 +1,119 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/quality_score_bucket.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum listing the possible quality score buckets. +type QualityScoreBucketEnum_QualityScoreBucket int32 + +const ( + // Not specified. + QualityScoreBucketEnum_UNSPECIFIED QualityScoreBucketEnum_QualityScoreBucket = 0 + // Used for return value only. Represents value unknown in this version. + QualityScoreBucketEnum_UNKNOWN QualityScoreBucketEnum_QualityScoreBucket = 1 + // Quality of the creative is below average. + QualityScoreBucketEnum_BELOW_AVERAGE QualityScoreBucketEnum_QualityScoreBucket = 2 + // Quality of the creative is average. + QualityScoreBucketEnum_AVERAGE QualityScoreBucketEnum_QualityScoreBucket = 3 + // Quality of the creative is above average. + QualityScoreBucketEnum_ABOVE_AVERAGE QualityScoreBucketEnum_QualityScoreBucket = 4 +) + +var QualityScoreBucketEnum_QualityScoreBucket_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "BELOW_AVERAGE", + 3: "AVERAGE", + 4: "ABOVE_AVERAGE", +} +var QualityScoreBucketEnum_QualityScoreBucket_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "BELOW_AVERAGE": 2, + "AVERAGE": 3, + "ABOVE_AVERAGE": 4, +} + +func (x QualityScoreBucketEnum_QualityScoreBucket) String() string { + return proto.EnumName(QualityScoreBucketEnum_QualityScoreBucket_name, int32(x)) +} +func (QualityScoreBucketEnum_QualityScoreBucket) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_quality_score_bucket_4a13fc1ac760516e, []int{0, 0} +} + +// The relative performance compared to other advertisers. +type QualityScoreBucketEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *QualityScoreBucketEnum) Reset() { *m = QualityScoreBucketEnum{} } +func (m *QualityScoreBucketEnum) String() string { return proto.CompactTextString(m) } +func (*QualityScoreBucketEnum) ProtoMessage() {} +func (*QualityScoreBucketEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_quality_score_bucket_4a13fc1ac760516e, []int{0} +} +func (m *QualityScoreBucketEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_QualityScoreBucketEnum.Unmarshal(m, b) +} +func (m *QualityScoreBucketEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_QualityScoreBucketEnum.Marshal(b, m, deterministic) +} +func (dst *QualityScoreBucketEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_QualityScoreBucketEnum.Merge(dst, src) +} +func (m *QualityScoreBucketEnum) XXX_Size() int { + return xxx_messageInfo_QualityScoreBucketEnum.Size(m) +} +func (m *QualityScoreBucketEnum) XXX_DiscardUnknown() { + xxx_messageInfo_QualityScoreBucketEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_QualityScoreBucketEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*QualityScoreBucketEnum)(nil), "google.ads.googleads.v0.enums.QualityScoreBucketEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.QualityScoreBucketEnum_QualityScoreBucket", QualityScoreBucketEnum_QualityScoreBucket_name, QualityScoreBucketEnum_QualityScoreBucket_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/quality_score_bucket.proto", fileDescriptor_quality_score_bucket_4a13fc1ac760516e) +} + +var fileDescriptor_quality_score_bucket_4a13fc1ac760516e = []byte{ + // 278 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x48, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xbc, + 0xd2, 0xdc, 0x62, 0xfd, 0xc2, 0xd2, 0xc4, 0x9c, 0xcc, 0x92, 0xca, 0xf8, 0xe2, 0xe4, 0xfc, 0xa2, + 0xd4, 0xf8, 0xa4, 0xd2, 0xe4, 0xec, 0xd4, 0x12, 0xbd, 0x82, 0xa2, 0xfc, 0x92, 0x7c, 0x21, 0x59, + 0x88, 0x72, 0xbd, 0xc4, 0x94, 0x62, 0x3d, 0xb8, 0x4e, 0xbd, 0x32, 0x03, 0x3d, 0xb0, 0x4e, 0xa5, + 0x7a, 0x2e, 0xb1, 0x40, 0x88, 0xe6, 0x60, 0x90, 0x5e, 0x27, 0xb0, 0x56, 0xd7, 0xbc, 0xd2, 0x5c, + 0xa5, 0x54, 0x2e, 0x21, 0x4c, 0x19, 0x21, 0x7e, 0x2e, 0xee, 0x50, 0xbf, 0xe0, 0x00, 0x57, 0x67, + 0x4f, 0x37, 0x4f, 0x57, 0x17, 0x01, 0x06, 0x21, 0x6e, 0x2e, 0xf6, 0x50, 0x3f, 0x6f, 0x3f, 0xff, + 0x70, 0x3f, 0x01, 0x46, 0x21, 0x41, 0x2e, 0x5e, 0x27, 0x57, 0x1f, 0xff, 0xf0, 0x78, 0xc7, 0x30, + 0xd7, 0x20, 0x47, 0x77, 0x57, 0x01, 0x26, 0x90, 0x3c, 0x8c, 0xc3, 0x0c, 0x92, 0x77, 0x74, 0xf2, + 0x0f, 0x73, 0x85, 0xcb, 0xb3, 0x38, 0x9d, 0x60, 0xe4, 0x52, 0x4c, 0xce, 0xcf, 0xd5, 0xc3, 0xeb, + 0x4c, 0x27, 0x71, 0x4c, 0xa7, 0x04, 0x80, 0xbc, 0x17, 0xc0, 0x18, 0xe5, 0x04, 0xd5, 0x99, 0x9e, + 0x9f, 0x93, 0x98, 0x97, 0xae, 0x97, 0x5f, 0x94, 0xae, 0x9f, 0x9e, 0x9a, 0x07, 0xf6, 0x3c, 0x2c, + 0xa8, 0x0a, 0x32, 0x8b, 0x71, 0x84, 0x9c, 0x35, 0x98, 0x5c, 0xc4, 0xc4, 0xec, 0xee, 0xe8, 0xb8, + 0x8a, 0x49, 0xd6, 0x1d, 0x62, 0x94, 0x63, 0x4a, 0xb1, 0x1e, 0x84, 0x09, 0x62, 0x85, 0x19, 0xe8, + 0x81, 0x02, 0xa4, 0xf8, 0x14, 0x4c, 0x3e, 0xc6, 0x31, 0xa5, 0x38, 0x06, 0x2e, 0x1f, 0x13, 0x66, + 0x10, 0x03, 0x96, 0x4f, 0x62, 0x03, 0x5b, 0x6a, 0x0c, 0x08, 0x00, 0x00, 0xff, 0xff, 0xa3, 0x20, + 0x20, 0x4c, 0xad, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/real_estate_placeholder_field.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/real_estate_placeholder_field.pb.go new file mode 100644 index 000000000..4504de9fd --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/real_estate_placeholder_field.pb.go @@ -0,0 +1,208 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/real_estate_placeholder_field.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Possible values for Real Estate placeholder fields. +type RealEstatePlaceholderFieldEnum_RealEstatePlaceholderField int32 + +const ( + // Not specified. + RealEstatePlaceholderFieldEnum_UNSPECIFIED RealEstatePlaceholderFieldEnum_RealEstatePlaceholderField = 0 + // Used for return value only. Represents value unknown in this version. + RealEstatePlaceholderFieldEnum_UNKNOWN RealEstatePlaceholderFieldEnum_RealEstatePlaceholderField = 1 + // Data Type: STRING. Unique ID. + RealEstatePlaceholderFieldEnum_LISTING_ID RealEstatePlaceholderFieldEnum_RealEstatePlaceholderField = 2 + // Data Type: STRING. Main headline with listing name to be shown in dynamic + // ad. + RealEstatePlaceholderFieldEnum_LISTING_NAME RealEstatePlaceholderFieldEnum_RealEstatePlaceholderField = 3 + // Data Type: STRING. City name to be shown in dynamic ad. + RealEstatePlaceholderFieldEnum_CITY_NAME RealEstatePlaceholderFieldEnum_RealEstatePlaceholderField = 4 + // Data Type: STRING. Description of listing to be shown in dynamic ad. + RealEstatePlaceholderFieldEnum_DESCRIPTION RealEstatePlaceholderFieldEnum_RealEstatePlaceholderField = 5 + // Data Type: STRING. Complete listing address, including postal code. + RealEstatePlaceholderFieldEnum_ADDRESS RealEstatePlaceholderFieldEnum_RealEstatePlaceholderField = 6 + // Data Type: STRING. Price to be shown in the ad. + // Example: "100.00 USD" + RealEstatePlaceholderFieldEnum_PRICE RealEstatePlaceholderFieldEnum_RealEstatePlaceholderField = 7 + // Data Type: STRING. Formatted price to be shown in the ad. + // Example: "Starting at $100.00 USD", "$80 - $100" + RealEstatePlaceholderFieldEnum_FORMATTED_PRICE RealEstatePlaceholderFieldEnum_RealEstatePlaceholderField = 8 + // Data Type: URL. Image to be displayed in the ad. + RealEstatePlaceholderFieldEnum_IMAGE_URL RealEstatePlaceholderFieldEnum_RealEstatePlaceholderField = 9 + // Data Type: STRING. Type of property (house, condo, apartment, etc.) used + // to group like items together for recommendation engine. + RealEstatePlaceholderFieldEnum_PROPERTY_TYPE RealEstatePlaceholderFieldEnum_RealEstatePlaceholderField = 10 + // Data Type: STRING. Type of listing (resale, rental, foreclosure, etc.) + // used to group like items together for recommendation engine. + RealEstatePlaceholderFieldEnum_LISTING_TYPE RealEstatePlaceholderFieldEnum_RealEstatePlaceholderField = 11 + // Data Type: STRING_LIST. Keywords used for product retrieval. + RealEstatePlaceholderFieldEnum_CONTEXTUAL_KEYWORDS RealEstatePlaceholderFieldEnum_RealEstatePlaceholderField = 12 + // Data Type: URL_LIST. Final URLs to be used in ad when using Upgraded + // URLs; the more specific the better (e.g. the individual URL of a specific + // listing and its location). + RealEstatePlaceholderFieldEnum_FINAL_URLS RealEstatePlaceholderFieldEnum_RealEstatePlaceholderField = 13 + // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded + // URLs. + RealEstatePlaceholderFieldEnum_FINAL_MOBILE_URLS RealEstatePlaceholderFieldEnum_RealEstatePlaceholderField = 14 + // Data Type: URL. Tracking template for the ad when using Upgraded URLs. + RealEstatePlaceholderFieldEnum_TRACKING_URL RealEstatePlaceholderFieldEnum_RealEstatePlaceholderField = 15 + // Data Type: STRING. Android app link. Must be formatted as: + // android-app://{package_id}/{scheme}/{host_path}. + // The components are defined as follows: + // package_id: app ID as specified in Google Play. + // scheme: the scheme to pass to the application. Can be HTTP, or a custom + // scheme. + // host_path: identifies the specific content within your application. + RealEstatePlaceholderFieldEnum_ANDROID_APP_LINK RealEstatePlaceholderFieldEnum_RealEstatePlaceholderField = 16 + // Data Type: STRING_LIST. List of recommended listing IDs to show together + // with this item. + RealEstatePlaceholderFieldEnum_SIMILAR_LISTING_IDS RealEstatePlaceholderFieldEnum_RealEstatePlaceholderField = 17 + // Data Type: STRING. iOS app link. + RealEstatePlaceholderFieldEnum_IOS_APP_LINK RealEstatePlaceholderFieldEnum_RealEstatePlaceholderField = 18 + // Data Type: INT64. iOS app store ID. + RealEstatePlaceholderFieldEnum_IOS_APP_STORE_ID RealEstatePlaceholderFieldEnum_RealEstatePlaceholderField = 19 +) + +var RealEstatePlaceholderFieldEnum_RealEstatePlaceholderField_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "LISTING_ID", + 3: "LISTING_NAME", + 4: "CITY_NAME", + 5: "DESCRIPTION", + 6: "ADDRESS", + 7: "PRICE", + 8: "FORMATTED_PRICE", + 9: "IMAGE_URL", + 10: "PROPERTY_TYPE", + 11: "LISTING_TYPE", + 12: "CONTEXTUAL_KEYWORDS", + 13: "FINAL_URLS", + 14: "FINAL_MOBILE_URLS", + 15: "TRACKING_URL", + 16: "ANDROID_APP_LINK", + 17: "SIMILAR_LISTING_IDS", + 18: "IOS_APP_LINK", + 19: "IOS_APP_STORE_ID", +} +var RealEstatePlaceholderFieldEnum_RealEstatePlaceholderField_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "LISTING_ID": 2, + "LISTING_NAME": 3, + "CITY_NAME": 4, + "DESCRIPTION": 5, + "ADDRESS": 6, + "PRICE": 7, + "FORMATTED_PRICE": 8, + "IMAGE_URL": 9, + "PROPERTY_TYPE": 10, + "LISTING_TYPE": 11, + "CONTEXTUAL_KEYWORDS": 12, + "FINAL_URLS": 13, + "FINAL_MOBILE_URLS": 14, + "TRACKING_URL": 15, + "ANDROID_APP_LINK": 16, + "SIMILAR_LISTING_IDS": 17, + "IOS_APP_LINK": 18, + "IOS_APP_STORE_ID": 19, +} + +func (x RealEstatePlaceholderFieldEnum_RealEstatePlaceholderField) String() string { + return proto.EnumName(RealEstatePlaceholderFieldEnum_RealEstatePlaceholderField_name, int32(x)) +} +func (RealEstatePlaceholderFieldEnum_RealEstatePlaceholderField) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_real_estate_placeholder_field_e43e61bd7be00afd, []int{0, 0} +} + +// Values for Real Estate placeholder fields. +// For more information about dynamic remarketing feeds, see +// https://support.google.com/google-ads/answer/6053288. +type RealEstatePlaceholderFieldEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RealEstatePlaceholderFieldEnum) Reset() { *m = RealEstatePlaceholderFieldEnum{} } +func (m *RealEstatePlaceholderFieldEnum) String() string { return proto.CompactTextString(m) } +func (*RealEstatePlaceholderFieldEnum) ProtoMessage() {} +func (*RealEstatePlaceholderFieldEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_real_estate_placeholder_field_e43e61bd7be00afd, []int{0} +} +func (m *RealEstatePlaceholderFieldEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RealEstatePlaceholderFieldEnum.Unmarshal(m, b) +} +func (m *RealEstatePlaceholderFieldEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RealEstatePlaceholderFieldEnum.Marshal(b, m, deterministic) +} +func (dst *RealEstatePlaceholderFieldEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_RealEstatePlaceholderFieldEnum.Merge(dst, src) +} +func (m *RealEstatePlaceholderFieldEnum) XXX_Size() int { + return xxx_messageInfo_RealEstatePlaceholderFieldEnum.Size(m) +} +func (m *RealEstatePlaceholderFieldEnum) XXX_DiscardUnknown() { + xxx_messageInfo_RealEstatePlaceholderFieldEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_RealEstatePlaceholderFieldEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*RealEstatePlaceholderFieldEnum)(nil), "google.ads.googleads.v0.enums.RealEstatePlaceholderFieldEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.RealEstatePlaceholderFieldEnum_RealEstatePlaceholderField", RealEstatePlaceholderFieldEnum_RealEstatePlaceholderField_name, RealEstatePlaceholderFieldEnum_RealEstatePlaceholderField_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/real_estate_placeholder_field.proto", fileDescriptor_real_estate_placeholder_field_e43e61bd7be00afd) +} + +var fileDescriptor_real_estate_placeholder_field_e43e61bd7be00afd = []byte{ + // 472 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x92, 0xd1, 0x6e, 0xd3, 0x30, + 0x14, 0x86, 0x69, 0xcb, 0x36, 0xea, 0xae, 0xab, 0xeb, 0x82, 0x90, 0x90, 0x06, 0x62, 0x0f, 0x90, + 0x56, 0xe2, 0x92, 0x2b, 0x37, 0x76, 0x2b, 0xab, 0x89, 0x6d, 0xd9, 0xee, 0x46, 0x51, 0x25, 0x2b, + 0x2c, 0x26, 0x4c, 0x4a, 0x9b, 0xaa, 0xe9, 0xf6, 0x08, 0x3c, 0x08, 0x77, 0xf0, 0x28, 0x5c, 0xf1, + 0x48, 0xc8, 0x09, 0x5d, 0xb9, 0xe9, 0x6e, 0xa2, 0xff, 0xfc, 0xc7, 0xf9, 0x8e, 0xe5, 0xf3, 0x03, + 0x9c, 0x15, 0x45, 0x96, 0xbb, 0x61, 0x92, 0x96, 0xc3, 0x5a, 0x7a, 0xf5, 0x30, 0x1a, 0xba, 0xf5, + 0xfd, 0xaa, 0x1c, 0x6e, 0x5d, 0x92, 0x5b, 0x57, 0xee, 0x92, 0x9d, 0xb3, 0x9b, 0x3c, 0xb9, 0x75, + 0xdf, 0x8a, 0x3c, 0x75, 0x5b, 0xfb, 0xf5, 0xce, 0xe5, 0x69, 0xb0, 0xd9, 0x16, 0xbb, 0x02, 0x5d, + 0xd6, 0xff, 0x05, 0x49, 0x5a, 0x06, 0x8f, 0x88, 0xe0, 0x61, 0x14, 0x54, 0x88, 0xab, 0x9f, 0x2d, + 0xf0, 0x56, 0xb9, 0x24, 0xa7, 0x15, 0x45, 0x1e, 0x20, 0x13, 0xcf, 0xa0, 0xeb, 0xfb, 0xd5, 0xd5, + 0xf7, 0x16, 0x78, 0x73, 0xfc, 0x08, 0xea, 0x81, 0xce, 0x9c, 0x6b, 0x49, 0x43, 0x36, 0x61, 0x94, + 0xc0, 0x67, 0xa8, 0x03, 0xce, 0xe6, 0x7c, 0xc6, 0xc5, 0x0d, 0x87, 0x0d, 0x74, 0x01, 0x40, 0xc4, + 0xb4, 0x61, 0x7c, 0x6a, 0x19, 0x81, 0x4d, 0x04, 0xc1, 0xf9, 0xbe, 0xe6, 0x38, 0xa6, 0xb0, 0x85, + 0xba, 0xa0, 0x1d, 0x32, 0xb3, 0xa8, 0xcb, 0xe7, 0x1e, 0x47, 0xa8, 0x0e, 0x15, 0x93, 0x86, 0x09, + 0x0e, 0x4f, 0x3c, 0x0e, 0x13, 0xa2, 0xa8, 0xd6, 0xf0, 0x14, 0xb5, 0xc1, 0x89, 0x54, 0x2c, 0xa4, + 0xf0, 0x0c, 0x0d, 0x40, 0x6f, 0x22, 0x54, 0x8c, 0x8d, 0xa1, 0xc4, 0xd6, 0xe6, 0x0b, 0x0f, 0x63, + 0x31, 0x9e, 0x52, 0x3b, 0x57, 0x11, 0x6c, 0xa3, 0x3e, 0xe8, 0x4a, 0x25, 0x24, 0x55, 0x66, 0x61, + 0xcd, 0x42, 0x52, 0x08, 0xfe, 0xbf, 0x40, 0xe5, 0x74, 0xd0, 0x6b, 0x30, 0x08, 0x05, 0x37, 0xf4, + 0x93, 0x99, 0xe3, 0xc8, 0xce, 0xe8, 0xe2, 0x46, 0x28, 0xa2, 0xe1, 0xb9, 0xbf, 0xfb, 0x84, 0x71, + 0x1c, 0x79, 0x98, 0x86, 0x5d, 0xf4, 0x0a, 0xf4, 0xeb, 0x3a, 0x16, 0x63, 0x16, 0xd1, 0xda, 0xbe, + 0xf0, 0x44, 0xa3, 0x70, 0x38, 0xf3, 0x48, 0x3f, 0xb6, 0x87, 0x5e, 0x02, 0x88, 0x39, 0x51, 0x82, + 0x11, 0x8b, 0xa5, 0xb4, 0x11, 0xe3, 0x33, 0x08, 0xfd, 0x1c, 0xcd, 0x62, 0x16, 0x61, 0x65, 0x0f, + 0x4f, 0xa2, 0x61, 0xdf, 0x03, 0x98, 0xd0, 0x87, 0xa3, 0xc8, 0x03, 0xf6, 0x8e, 0x36, 0x42, 0x51, + 0xff, 0x76, 0x83, 0xf1, 0x9f, 0x06, 0x78, 0x7f, 0x5b, 0xac, 0x82, 0x27, 0x37, 0x3a, 0x7e, 0x77, + 0x7c, 0x57, 0xd2, 0x27, 0x42, 0x36, 0x3e, 0x8f, 0xff, 0x11, 0xb2, 0x22, 0x4f, 0xd6, 0x59, 0x50, + 0x6c, 0xb3, 0x61, 0xe6, 0xd6, 0x55, 0x5e, 0xf6, 0x31, 0xdb, 0xdc, 0x95, 0x47, 0x52, 0xf7, 0xb1, + 0xfa, 0xfe, 0x68, 0xb6, 0xa6, 0x18, 0xff, 0x6a, 0x5e, 0x4e, 0x6b, 0x14, 0x4e, 0xcb, 0xa0, 0x96, + 0x5e, 0x5d, 0x8f, 0x02, 0x1f, 0x9d, 0xf2, 0xf7, 0xbe, 0xbf, 0xc4, 0x69, 0xb9, 0x7c, 0xec, 0x2f, + 0xaf, 0x47, 0xcb, 0xaa, 0xff, 0xe5, 0xb4, 0x1a, 0xfa, 0xe1, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, + 0x03, 0xff, 0x7e, 0x7c, 0xe9, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/recommendation_type.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/recommendation_type.pb.go new file mode 100644 index 000000000..668e7b5c9 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/recommendation_type.pb.go @@ -0,0 +1,154 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/recommendation_type.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Types of recommendations. +type RecommendationTypeEnum_RecommendationType int32 + +const ( + // Not specified. + RecommendationTypeEnum_UNSPECIFIED RecommendationTypeEnum_RecommendationType = 0 + // Used for return value only. Represents value unknown in this version. + RecommendationTypeEnum_UNKNOWN RecommendationTypeEnum_RecommendationType = 1 + // Budget recommendation for budget constrained campaigns. + RecommendationTypeEnum_CAMPAIGN_BUDGET RecommendationTypeEnum_RecommendationType = 2 + // Keyword recommendation. + RecommendationTypeEnum_KEYWORD RecommendationTypeEnum_RecommendationType = 3 + // Recommendation to add a new text ad. + RecommendationTypeEnum_TEXT_AD RecommendationTypeEnum_RecommendationType = 4 + // Recommendation to update a campaign to use a Target CPA bidding strategy. + RecommendationTypeEnum_TARGET_CPA_OPT_IN RecommendationTypeEnum_RecommendationType = 5 + // Recommendation to update a campaign to use the Maximize Conversions + // bidding strategy. + RecommendationTypeEnum_MAXIMIZE_CONVERSIONS_OPT_IN RecommendationTypeEnum_RecommendationType = 6 + // Recommendation to enable Enhanced Cost Per Click for a campaign. + RecommendationTypeEnum_ENHANCED_CPC_OPT_IN RecommendationTypeEnum_RecommendationType = 7 + // Recommendation to start showing your campaign's ads on Google Search + // Partners Websites. + RecommendationTypeEnum_SEARCH_PARTNERS_OPT_IN RecommendationTypeEnum_RecommendationType = 8 + // Recommendation to update a campaign to use a Maximize Clicks bidding + // strategy. + RecommendationTypeEnum_MAXIMIZE_CLICKS_OPT_IN RecommendationTypeEnum_RecommendationType = 9 + // Recommendation to start using the "Optimize" ad rotation setting for the + // given ad group. + RecommendationTypeEnum_OPTIMIZE_AD_ROTATION RecommendationTypeEnum_RecommendationType = 10 +) + +var RecommendationTypeEnum_RecommendationType_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "CAMPAIGN_BUDGET", + 3: "KEYWORD", + 4: "TEXT_AD", + 5: "TARGET_CPA_OPT_IN", + 6: "MAXIMIZE_CONVERSIONS_OPT_IN", + 7: "ENHANCED_CPC_OPT_IN", + 8: "SEARCH_PARTNERS_OPT_IN", + 9: "MAXIMIZE_CLICKS_OPT_IN", + 10: "OPTIMIZE_AD_ROTATION", +} +var RecommendationTypeEnum_RecommendationType_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "CAMPAIGN_BUDGET": 2, + "KEYWORD": 3, + "TEXT_AD": 4, + "TARGET_CPA_OPT_IN": 5, + "MAXIMIZE_CONVERSIONS_OPT_IN": 6, + "ENHANCED_CPC_OPT_IN": 7, + "SEARCH_PARTNERS_OPT_IN": 8, + "MAXIMIZE_CLICKS_OPT_IN": 9, + "OPTIMIZE_AD_ROTATION": 10, +} + +func (x RecommendationTypeEnum_RecommendationType) String() string { + return proto.EnumName(RecommendationTypeEnum_RecommendationType_name, int32(x)) +} +func (RecommendationTypeEnum_RecommendationType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_recommendation_type_7c3269b466303113, []int{0, 0} +} + +// Container for enum describing types of recommendations. +type RecommendationTypeEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RecommendationTypeEnum) Reset() { *m = RecommendationTypeEnum{} } +func (m *RecommendationTypeEnum) String() string { return proto.CompactTextString(m) } +func (*RecommendationTypeEnum) ProtoMessage() {} +func (*RecommendationTypeEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_recommendation_type_7c3269b466303113, []int{0} +} +func (m *RecommendationTypeEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RecommendationTypeEnum.Unmarshal(m, b) +} +func (m *RecommendationTypeEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RecommendationTypeEnum.Marshal(b, m, deterministic) +} +func (dst *RecommendationTypeEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_RecommendationTypeEnum.Merge(dst, src) +} +func (m *RecommendationTypeEnum) XXX_Size() int { + return xxx_messageInfo_RecommendationTypeEnum.Size(m) +} +func (m *RecommendationTypeEnum) XXX_DiscardUnknown() { + xxx_messageInfo_RecommendationTypeEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_RecommendationTypeEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*RecommendationTypeEnum)(nil), "google.ads.googleads.v0.enums.RecommendationTypeEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.RecommendationTypeEnum_RecommendationType", RecommendationTypeEnum_RecommendationType_name, RecommendationTypeEnum_RecommendationType_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/recommendation_type.proto", fileDescriptor_recommendation_type_7c3269b466303113) +} + +var fileDescriptor_recommendation_type_7c3269b466303113 = []byte{ + // 392 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x91, 0x41, 0x6b, 0xd4, 0x40, + 0x1c, 0xc5, 0xdd, 0x54, 0x5b, 0x9d, 0x1e, 0x1a, 0xa7, 0xda, 0x8a, 0x52, 0xc4, 0x7e, 0x80, 0x49, + 0xc0, 0x83, 0x07, 0x4f, 0x93, 0xc9, 0x98, 0x0e, 0xeb, 0xce, 0x0c, 0x93, 0xd9, 0x6d, 0x2d, 0x81, + 0x21, 0x36, 0x21, 0x14, 0x36, 0x99, 0xb0, 0xd9, 0x5d, 0xd8, 0xbb, 0xdf, 0x43, 0xf0, 0xe8, 0x27, + 0x11, 0x3f, 0x95, 0x24, 0x31, 0x11, 0x59, 0xf4, 0x12, 0x5e, 0xf8, 0xbd, 0xf7, 0x1f, 0x78, 0x0f, + 0xbc, 0x2b, 0xac, 0x2d, 0x96, 0xb9, 0x97, 0x66, 0x8d, 0xd7, 0xcb, 0x56, 0x6d, 0x7d, 0x2f, 0xaf, + 0x36, 0x65, 0xe3, 0xad, 0xf2, 0x3b, 0x5b, 0x96, 0x79, 0x95, 0xa5, 0xeb, 0x7b, 0x5b, 0x99, 0xf5, + 0xae, 0xce, 0x51, 0xbd, 0xb2, 0x6b, 0x0b, 0x2f, 0x7a, 0x37, 0x4a, 0xb3, 0x06, 0x8d, 0x41, 0xb4, + 0xf5, 0x51, 0x17, 0xbc, 0xfc, 0xea, 0x80, 0x33, 0xf5, 0x57, 0x58, 0xef, 0xea, 0x9c, 0x56, 0x9b, + 0xf2, 0xf2, 0x8b, 0x03, 0xe0, 0x3e, 0x82, 0x27, 0xe0, 0x78, 0xce, 0x63, 0x49, 0x09, 0xfb, 0xc0, + 0x68, 0xe8, 0x3e, 0x80, 0xc7, 0xe0, 0x68, 0xce, 0xa7, 0x5c, 0x5c, 0x73, 0x77, 0x02, 0x4f, 0xc1, + 0x09, 0xc1, 0x33, 0x89, 0x59, 0xc4, 0x4d, 0x30, 0x0f, 0x23, 0xaa, 0x5d, 0xa7, 0x75, 0x4c, 0xe9, + 0xa7, 0x6b, 0xa1, 0x42, 0xf7, 0xa0, 0xfd, 0xd1, 0xf4, 0x46, 0x1b, 0x1c, 0xba, 0x0f, 0xe1, 0x73, + 0xf0, 0x54, 0x63, 0x15, 0x51, 0x6d, 0x88, 0xc4, 0x46, 0x48, 0x6d, 0x18, 0x77, 0x1f, 0xc1, 0xd7, + 0xe0, 0xd5, 0x0c, 0xdf, 0xb0, 0x19, 0xbb, 0xa5, 0x86, 0x08, 0xbe, 0xa0, 0x2a, 0x66, 0x82, 0xc7, + 0x83, 0xe1, 0x10, 0x9e, 0x83, 0x53, 0xca, 0xaf, 0x30, 0x27, 0x34, 0x34, 0x44, 0x92, 0x01, 0x1c, + 0xc1, 0x97, 0xe0, 0x2c, 0xa6, 0x58, 0x91, 0x2b, 0x23, 0xb1, 0xd2, 0x9c, 0xaa, 0x31, 0xf4, 0xb8, + 0x65, 0x7f, 0xae, 0x7e, 0x64, 0x64, 0x3a, 0xb2, 0x27, 0xf0, 0x05, 0x78, 0x26, 0xa4, 0xee, 0x19, + 0x0e, 0x8d, 0x12, 0x1a, 0x6b, 0x26, 0xb8, 0x0b, 0x82, 0x1f, 0x13, 0xf0, 0xe6, 0xce, 0x96, 0xe8, + 0xbf, 0x3d, 0x06, 0xe7, 0xfb, 0x4d, 0xc9, 0xb6, 0x7f, 0x39, 0xb9, 0x0d, 0x7e, 0x27, 0x0b, 0xbb, + 0x4c, 0xab, 0x02, 0xd9, 0x55, 0xe1, 0x15, 0x79, 0xd5, 0xad, 0x33, 0x4c, 0x59, 0xdf, 0x37, 0xff, + 0x58, 0xf6, 0x7d, 0xf7, 0xfd, 0xe6, 0x1c, 0x44, 0x18, 0x7f, 0x77, 0x2e, 0xa2, 0xfe, 0x14, 0xce, + 0x1a, 0xd4, 0xcb, 0x56, 0x2d, 0x7c, 0xd4, 0x0e, 0xd6, 0xfc, 0x1c, 0x78, 0x82, 0xb3, 0x26, 0x19, + 0x79, 0xb2, 0xf0, 0x93, 0x8e, 0x7f, 0x3e, 0xec, 0x1e, 0x7d, 0xfb, 0x2b, 0x00, 0x00, 0xff, 0xff, + 0x47, 0x43, 0x4a, 0x0d, 0x4d, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/search_term_match_type.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/search_term_match_type.pb.go new file mode 100644 index 000000000..3ff0fee9b --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/search_term_match_type.pb.go @@ -0,0 +1,128 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/search_term_match_type.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Possible match types for a keyword triggering an ad, including variants. +type SearchTermMatchTypeEnum_SearchTermMatchType int32 + +const ( + // Not specified. + SearchTermMatchTypeEnum_UNSPECIFIED SearchTermMatchTypeEnum_SearchTermMatchType = 0 + // Used for return value only. Represents value unknown in this version. + SearchTermMatchTypeEnum_UNKNOWN SearchTermMatchTypeEnum_SearchTermMatchType = 1 + // Broad match. + SearchTermMatchTypeEnum_BROAD SearchTermMatchTypeEnum_SearchTermMatchType = 2 + // Exact match. + SearchTermMatchTypeEnum_EXACT SearchTermMatchTypeEnum_SearchTermMatchType = 3 + // Phrase match. + SearchTermMatchTypeEnum_PHRASE SearchTermMatchTypeEnum_SearchTermMatchType = 4 + // Exact match (close variant). + SearchTermMatchTypeEnum_NEAR_EXACT SearchTermMatchTypeEnum_SearchTermMatchType = 5 + // Phrase match (close variant). + SearchTermMatchTypeEnum_NEAR_PHRASE SearchTermMatchTypeEnum_SearchTermMatchType = 6 +) + +var SearchTermMatchTypeEnum_SearchTermMatchType_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "BROAD", + 3: "EXACT", + 4: "PHRASE", + 5: "NEAR_EXACT", + 6: "NEAR_PHRASE", +} +var SearchTermMatchTypeEnum_SearchTermMatchType_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "BROAD": 2, + "EXACT": 3, + "PHRASE": 4, + "NEAR_EXACT": 5, + "NEAR_PHRASE": 6, +} + +func (x SearchTermMatchTypeEnum_SearchTermMatchType) String() string { + return proto.EnumName(SearchTermMatchTypeEnum_SearchTermMatchType_name, int32(x)) +} +func (SearchTermMatchTypeEnum_SearchTermMatchType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_search_term_match_type_e09c4b2680f9d005, []int{0, 0} +} + +// Container for enum describing match types for a keyword triggering an ad. +type SearchTermMatchTypeEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SearchTermMatchTypeEnum) Reset() { *m = SearchTermMatchTypeEnum{} } +func (m *SearchTermMatchTypeEnum) String() string { return proto.CompactTextString(m) } +func (*SearchTermMatchTypeEnum) ProtoMessage() {} +func (*SearchTermMatchTypeEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_search_term_match_type_e09c4b2680f9d005, []int{0} +} +func (m *SearchTermMatchTypeEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SearchTermMatchTypeEnum.Unmarshal(m, b) +} +func (m *SearchTermMatchTypeEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SearchTermMatchTypeEnum.Marshal(b, m, deterministic) +} +func (dst *SearchTermMatchTypeEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_SearchTermMatchTypeEnum.Merge(dst, src) +} +func (m *SearchTermMatchTypeEnum) XXX_Size() int { + return xxx_messageInfo_SearchTermMatchTypeEnum.Size(m) +} +func (m *SearchTermMatchTypeEnum) XXX_DiscardUnknown() { + xxx_messageInfo_SearchTermMatchTypeEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_SearchTermMatchTypeEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*SearchTermMatchTypeEnum)(nil), "google.ads.googleads.v0.enums.SearchTermMatchTypeEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.SearchTermMatchTypeEnum_SearchTermMatchType", SearchTermMatchTypeEnum_SearchTermMatchType_name, SearchTermMatchTypeEnum_SearchTermMatchType_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/search_term_match_type.proto", fileDescriptor_search_term_match_type_e09c4b2680f9d005) +} + +var fileDescriptor_search_term_match_type_e09c4b2680f9d005 = []byte{ + // 300 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0xc1, 0x4e, 0x83, 0x30, + 0x18, 0xc7, 0x85, 0x39, 0x8c, 0x5d, 0xa2, 0xa4, 0x1e, 0xf4, 0xb2, 0x83, 0x7b, 0x80, 0x42, 0xe2, + 0x4d, 0x4f, 0x65, 0xab, 0x73, 0x31, 0x32, 0x02, 0x6c, 0x1a, 0x43, 0x42, 0x70, 0x34, 0xd5, 0x64, + 0xa5, 0x84, 0x32, 0x92, 0x3d, 0x86, 0xaf, 0xe0, 0xd1, 0x37, 0xd1, 0xa7, 0x32, 0x2d, 0xdb, 0x4e, + 0x73, 0x17, 0xf2, 0x23, 0xff, 0xfe, 0xbe, 0x7e, 0xfd, 0x83, 0x5b, 0x26, 0x04, 0x5b, 0x52, 0x27, + 0xcb, 0xa5, 0xd3, 0xa2, 0xa2, 0xc6, 0x75, 0x68, 0xb1, 0xe2, 0xd2, 0x91, 0x34, 0xab, 0x16, 0xef, + 0x69, 0x4d, 0x2b, 0x9e, 0xf2, 0xac, 0x56, 0xb8, 0x2e, 0x29, 0x2a, 0x2b, 0x51, 0x0b, 0xd8, 0x6f, + 0x05, 0x94, 0xe5, 0x12, 0xed, 0x5c, 0xd4, 0xb8, 0x48, 0xbb, 0x83, 0x4f, 0x03, 0x5c, 0x46, 0xda, + 0x8f, 0x69, 0xc5, 0x9f, 0x94, 0x1d, 0xaf, 0x4b, 0x4a, 0x8a, 0x15, 0x1f, 0x34, 0xe0, 0x62, 0x4f, + 0x04, 0xcf, 0x41, 0x6f, 0xe6, 0x47, 0x01, 0x19, 0x4e, 0xee, 0x27, 0x64, 0x64, 0x1f, 0xc1, 0x1e, + 0x38, 0x99, 0xf9, 0x8f, 0xfe, 0xf4, 0xd9, 0xb7, 0x0d, 0x78, 0x0a, 0xba, 0x5e, 0x38, 0xc5, 0x23, + 0xdb, 0x54, 0x48, 0x5e, 0xf0, 0x30, 0xb6, 0x3b, 0x10, 0x00, 0x2b, 0x78, 0x08, 0x71, 0x44, 0xec, + 0x63, 0x78, 0x06, 0x80, 0x4f, 0x70, 0x98, 0xb6, 0x59, 0x57, 0xcd, 0xd3, 0xff, 0x9b, 0x03, 0x96, + 0xf7, 0x63, 0x80, 0xeb, 0x85, 0xe0, 0xe8, 0xe0, 0xe6, 0xde, 0xd5, 0x9e, 0xdd, 0x02, 0xf5, 0xe4, + 0xc0, 0x78, 0xf5, 0x36, 0x2a, 0x13, 0xcb, 0xac, 0x60, 0x48, 0x54, 0xcc, 0x61, 0xb4, 0xd0, 0x85, + 0x6c, 0x0b, 0x2c, 0x3f, 0xe4, 0x3f, 0x7d, 0xde, 0xe9, 0xef, 0x97, 0xd9, 0x19, 0x63, 0xfc, 0x6d, + 0xf6, 0xc7, 0xed, 0x28, 0x9c, 0x4b, 0xd4, 0xa2, 0xa2, 0xb9, 0x8b, 0x54, 0x45, 0xf2, 0x77, 0x9b, + 0x27, 0x38, 0x97, 0xc9, 0x2e, 0x4f, 0xe6, 0x6e, 0xa2, 0xf3, 0x37, 0x4b, 0x5f, 0x7a, 0xf3, 0x17, + 0x00, 0x00, 0xff, 0xff, 0xe3, 0x18, 0x85, 0xc8, 0xc3, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/search_term_targeting_status.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/search_term_targeting_status.pb.go new file mode 100644 index 000000000..cba3a15b6 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/search_term_targeting_status.pb.go @@ -0,0 +1,126 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/search_term_targeting_status.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Indicates whether the search term is one of your targeted or excluded +// keywords. +type SearchTermTargetingStatusEnum_SearchTermTargetingStatus int32 + +const ( + // Not specified. + SearchTermTargetingStatusEnum_UNSPECIFIED SearchTermTargetingStatusEnum_SearchTermTargetingStatus = 0 + // Used for return value only. Represents value unknown in this version. + SearchTermTargetingStatusEnum_UNKNOWN SearchTermTargetingStatusEnum_SearchTermTargetingStatus = 1 + // Search term is added to targeted keywords. + SearchTermTargetingStatusEnum_ADDED SearchTermTargetingStatusEnum_SearchTermTargetingStatus = 2 + // Search term matches a negative keyword. + SearchTermTargetingStatusEnum_EXCLUDED SearchTermTargetingStatusEnum_SearchTermTargetingStatus = 3 + // Search term has been both added and excluded. + SearchTermTargetingStatusEnum_ADDED_EXCLUDED SearchTermTargetingStatusEnum_SearchTermTargetingStatus = 4 + // Search term is neither targeted nor excluded. + SearchTermTargetingStatusEnum_NONE SearchTermTargetingStatusEnum_SearchTermTargetingStatus = 5 +) + +var SearchTermTargetingStatusEnum_SearchTermTargetingStatus_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "ADDED", + 3: "EXCLUDED", + 4: "ADDED_EXCLUDED", + 5: "NONE", +} +var SearchTermTargetingStatusEnum_SearchTermTargetingStatus_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "ADDED": 2, + "EXCLUDED": 3, + "ADDED_EXCLUDED": 4, + "NONE": 5, +} + +func (x SearchTermTargetingStatusEnum_SearchTermTargetingStatus) String() string { + return proto.EnumName(SearchTermTargetingStatusEnum_SearchTermTargetingStatus_name, int32(x)) +} +func (SearchTermTargetingStatusEnum_SearchTermTargetingStatus) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_search_term_targeting_status_1ae39de7a4166d06, []int{0, 0} +} + +// Container for enum indicating whether a search term is one of your targeted +// or excluded keywords. +type SearchTermTargetingStatusEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SearchTermTargetingStatusEnum) Reset() { *m = SearchTermTargetingStatusEnum{} } +func (m *SearchTermTargetingStatusEnum) String() string { return proto.CompactTextString(m) } +func (*SearchTermTargetingStatusEnum) ProtoMessage() {} +func (*SearchTermTargetingStatusEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_search_term_targeting_status_1ae39de7a4166d06, []int{0} +} +func (m *SearchTermTargetingStatusEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SearchTermTargetingStatusEnum.Unmarshal(m, b) +} +func (m *SearchTermTargetingStatusEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SearchTermTargetingStatusEnum.Marshal(b, m, deterministic) +} +func (dst *SearchTermTargetingStatusEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_SearchTermTargetingStatusEnum.Merge(dst, src) +} +func (m *SearchTermTargetingStatusEnum) XXX_Size() int { + return xxx_messageInfo_SearchTermTargetingStatusEnum.Size(m) +} +func (m *SearchTermTargetingStatusEnum) XXX_DiscardUnknown() { + xxx_messageInfo_SearchTermTargetingStatusEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_SearchTermTargetingStatusEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*SearchTermTargetingStatusEnum)(nil), "google.ads.googleads.v0.enums.SearchTermTargetingStatusEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.SearchTermTargetingStatusEnum_SearchTermTargetingStatus", SearchTermTargetingStatusEnum_SearchTermTargetingStatus_name, SearchTermTargetingStatusEnum_SearchTermTargetingStatus_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/search_term_targeting_status.proto", fileDescriptor_search_term_targeting_status_1ae39de7a4166d06) +} + +var fileDescriptor_search_term_targeting_status_1ae39de7a4166d06 = []byte{ + // 300 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0xdf, 0x4e, 0xbb, 0x30, + 0x1c, 0xc5, 0x7f, 0xec, 0xcf, 0xcf, 0xd9, 0x19, 0x25, 0xbd, 0xf3, 0x62, 0x26, 0xee, 0x01, 0x0a, + 0x89, 0x97, 0xde, 0x08, 0xa3, 0x2e, 0x8b, 0xa6, 0x23, 0x61, 0x4c, 0x63, 0x48, 0x48, 0x1d, 0x4d, + 0x5d, 0x32, 0x28, 0x69, 0xcb, 0xde, 0xc3, 0x57, 0xf0, 0xd2, 0x47, 0xf1, 0xc6, 0x57, 0x32, 0x14, + 0xe1, 0x0e, 0x6f, 0x9a, 0xd3, 0x9e, 0xf6, 0xd3, 0xf3, 0x3d, 0xe0, 0x8e, 0x0b, 0xc1, 0x0f, 0xcc, + 0xa1, 0x99, 0x72, 0x1a, 0x59, 0xab, 0xa3, 0xeb, 0xb0, 0xa2, 0xca, 0x95, 0xa3, 0x18, 0x95, 0xbb, + 0xb7, 0x54, 0x33, 0x99, 0xa7, 0x9a, 0x4a, 0xce, 0xf4, 0xbe, 0xe0, 0xa9, 0xd2, 0x54, 0x57, 0x0a, + 0x95, 0x52, 0x68, 0x01, 0x67, 0xcd, 0x33, 0x44, 0x33, 0x85, 0x3a, 0x02, 0x3a, 0xba, 0xc8, 0x10, + 0xe6, 0xef, 0x16, 0x98, 0x45, 0x86, 0xb2, 0x61, 0x32, 0xdf, 0xb4, 0x8c, 0xc8, 0x20, 0x70, 0x51, + 0xe5, 0xf3, 0x12, 0x5c, 0xf6, 0x5e, 0x80, 0x17, 0x60, 0x1a, 0x93, 0x28, 0xc4, 0x8b, 0xd5, 0xfd, + 0x0a, 0x07, 0xf6, 0x3f, 0x38, 0x05, 0x27, 0x31, 0x79, 0x20, 0xeb, 0x27, 0x62, 0x5b, 0xf0, 0x14, + 0x8c, 0xbd, 0x20, 0xc0, 0x81, 0x3d, 0x80, 0x67, 0x60, 0x82, 0x9f, 0x17, 0x8f, 0x71, 0xbd, 0x1b, + 0x42, 0x08, 0xce, 0x8d, 0x91, 0x76, 0x67, 0x23, 0x38, 0x01, 0x23, 0xb2, 0x26, 0xd8, 0x1e, 0xfb, + 0xdf, 0x16, 0xb8, 0xde, 0x89, 0x1c, 0xfd, 0x99, 0xdc, 0xbf, 0xea, 0x4d, 0x15, 0xd6, 0x83, 0x87, + 0xd6, 0x8b, 0xff, 0x0b, 0xe0, 0xe2, 0x40, 0x0b, 0x8e, 0x84, 0xe4, 0x0e, 0x67, 0x85, 0xa9, 0xa5, + 0x2d, 0xb3, 0xdc, 0xab, 0x9e, 0x6e, 0x6f, 0xcd, 0xfa, 0x31, 0x18, 0x2e, 0x3d, 0xef, 0x73, 0x30, + 0x5b, 0x36, 0x28, 0x2f, 0x53, 0xa8, 0x91, 0xb5, 0xda, 0xba, 0xa8, 0xae, 0x48, 0x7d, 0xb5, 0x7e, + 0xe2, 0x65, 0x2a, 0xe9, 0xfc, 0x64, 0xeb, 0x26, 0xc6, 0x7f, 0xfd, 0x6f, 0x3e, 0xbd, 0xf9, 0x09, + 0x00, 0x00, 0xff, 0xff, 0x67, 0x8b, 0xe4, 0x66, 0xcf, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/shared_set_status.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/shared_set_status.pb.go new file mode 100644 index 000000000..5f774ba95 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/shared_set_status.pb.go @@ -0,0 +1,114 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/shared_set_status.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum listing the possible shared set statuses. +type SharedSetStatusEnum_SharedSetStatus int32 + +const ( + // Not specified. + SharedSetStatusEnum_UNSPECIFIED SharedSetStatusEnum_SharedSetStatus = 0 + // Used for return value only. Represents value unknown in this version. + SharedSetStatusEnum_UNKNOWN SharedSetStatusEnum_SharedSetStatus = 1 + // The shared set is enabled. + SharedSetStatusEnum_ENABLED SharedSetStatusEnum_SharedSetStatus = 2 + // The shared set is removed and can no longer be used. + SharedSetStatusEnum_REMOVED SharedSetStatusEnum_SharedSetStatus = 3 +) + +var SharedSetStatusEnum_SharedSetStatus_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "ENABLED", + 3: "REMOVED", +} +var SharedSetStatusEnum_SharedSetStatus_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "ENABLED": 2, + "REMOVED": 3, +} + +func (x SharedSetStatusEnum_SharedSetStatus) String() string { + return proto.EnumName(SharedSetStatusEnum_SharedSetStatus_name, int32(x)) +} +func (SharedSetStatusEnum_SharedSetStatus) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_shared_set_status_11341c2190eea701, []int{0, 0} +} + +// Container for enum describing types of shared set statuses. +type SharedSetStatusEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SharedSetStatusEnum) Reset() { *m = SharedSetStatusEnum{} } +func (m *SharedSetStatusEnum) String() string { return proto.CompactTextString(m) } +func (*SharedSetStatusEnum) ProtoMessage() {} +func (*SharedSetStatusEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_shared_set_status_11341c2190eea701, []int{0} +} +func (m *SharedSetStatusEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SharedSetStatusEnum.Unmarshal(m, b) +} +func (m *SharedSetStatusEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SharedSetStatusEnum.Marshal(b, m, deterministic) +} +func (dst *SharedSetStatusEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_SharedSetStatusEnum.Merge(dst, src) +} +func (m *SharedSetStatusEnum) XXX_Size() int { + return xxx_messageInfo_SharedSetStatusEnum.Size(m) +} +func (m *SharedSetStatusEnum) XXX_DiscardUnknown() { + xxx_messageInfo_SharedSetStatusEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_SharedSetStatusEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*SharedSetStatusEnum)(nil), "google.ads.googleads.v0.enums.SharedSetStatusEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.SharedSetStatusEnum_SharedSetStatus", SharedSetStatusEnum_SharedSetStatus_name, SharedSetStatusEnum_SharedSetStatus_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/shared_set_status.proto", fileDescriptor_shared_set_status_11341c2190eea701) +} + +var fileDescriptor_shared_set_status_11341c2190eea701 = []byte{ + // 263 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x32, 0x4d, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xbc, + 0xd2, 0xdc, 0x62, 0xfd, 0xe2, 0x8c, 0xc4, 0xa2, 0xd4, 0x94, 0xf8, 0xe2, 0xd4, 0x92, 0xf8, 0xe2, + 0x92, 0xc4, 0x92, 0xd2, 0x62, 0xbd, 0x82, 0xa2, 0xfc, 0x92, 0x7c, 0x21, 0x59, 0x88, 0x5a, 0xbd, + 0xc4, 0x94, 0x62, 0x3d, 0xb8, 0x36, 0xbd, 0x32, 0x03, 0x3d, 0xb0, 0x36, 0xa5, 0x04, 0x2e, 0xe1, + 0x60, 0xb0, 0xce, 0xe0, 0xd4, 0x92, 0x60, 0xb0, 0x3e, 0xd7, 0xbc, 0xd2, 0x5c, 0x25, 0x4f, 0x2e, + 0x7e, 0x34, 0x61, 0x21, 0x7e, 0x2e, 0xee, 0x50, 0xbf, 0xe0, 0x00, 0x57, 0x67, 0x4f, 0x37, 0x4f, + 0x57, 0x17, 0x01, 0x06, 0x21, 0x6e, 0x2e, 0xf6, 0x50, 0x3f, 0x6f, 0x3f, 0xff, 0x70, 0x3f, 0x01, + 0x46, 0x10, 0xc7, 0xd5, 0xcf, 0xd1, 0xc9, 0xc7, 0xd5, 0x45, 0x80, 0x09, 0xc4, 0x09, 0x72, 0xf5, + 0xf5, 0x0f, 0x73, 0x75, 0x11, 0x60, 0x76, 0x3a, 0xca, 0xc8, 0xa5, 0x98, 0x9c, 0x9f, 0xab, 0x87, + 0xd7, 0x1d, 0x4e, 0x22, 0x68, 0xd6, 0x05, 0x80, 0x1c, 0x1f, 0xc0, 0x18, 0xe5, 0x04, 0xd5, 0x96, + 0x9e, 0x9f, 0x93, 0x98, 0x97, 0xae, 0x97, 0x5f, 0x94, 0xae, 0x9f, 0x9e, 0x9a, 0x07, 0xf6, 0x1a, + 0x2c, 0x14, 0x0a, 0x32, 0x8b, 0x71, 0x04, 0x8a, 0x35, 0x98, 0x5c, 0xc4, 0xc4, 0xec, 0xee, 0xe8, + 0xb8, 0x8a, 0x49, 0xd6, 0x1d, 0x62, 0x94, 0x63, 0x4a, 0xb1, 0x1e, 0x84, 0x09, 0x62, 0x85, 0x19, + 0xe8, 0x81, 0x7c, 0x5c, 0x7c, 0x0a, 0x26, 0x1f, 0xe3, 0x98, 0x52, 0x1c, 0x03, 0x97, 0x8f, 0x09, + 0x33, 0x88, 0x01, 0xcb, 0x27, 0xb1, 0x81, 0x2d, 0x35, 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, 0x74, + 0x72, 0x4c, 0x3e, 0x88, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/shared_set_type.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/shared_set_type.pb.go new file mode 100644 index 000000000..58dff42e0 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/shared_set_type.pb.go @@ -0,0 +1,115 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/shared_set_type.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum listing the possible shared set types. +type SharedSetTypeEnum_SharedSetType int32 + +const ( + // Not specified. + SharedSetTypeEnum_UNSPECIFIED SharedSetTypeEnum_SharedSetType = 0 + // Used for return value only. Represents value unknown in this version. + SharedSetTypeEnum_UNKNOWN SharedSetTypeEnum_SharedSetType = 1 + // A set of keywords that can be excluded from targeting. + SharedSetTypeEnum_NEGATIVE_KEYWORDS SharedSetTypeEnum_SharedSetType = 2 + // A set of placements that can be excluded from targeting. + SharedSetTypeEnum_NEGATIVE_PLACEMENTS SharedSetTypeEnum_SharedSetType = 3 +) + +var SharedSetTypeEnum_SharedSetType_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "NEGATIVE_KEYWORDS", + 3: "NEGATIVE_PLACEMENTS", +} +var SharedSetTypeEnum_SharedSetType_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "NEGATIVE_KEYWORDS": 2, + "NEGATIVE_PLACEMENTS": 3, +} + +func (x SharedSetTypeEnum_SharedSetType) String() string { + return proto.EnumName(SharedSetTypeEnum_SharedSetType_name, int32(x)) +} +func (SharedSetTypeEnum_SharedSetType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_shared_set_type_2742d987288196bb, []int{0, 0} +} + +// Container for enum describing types of shared sets. +type SharedSetTypeEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SharedSetTypeEnum) Reset() { *m = SharedSetTypeEnum{} } +func (m *SharedSetTypeEnum) String() string { return proto.CompactTextString(m) } +func (*SharedSetTypeEnum) ProtoMessage() {} +func (*SharedSetTypeEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_shared_set_type_2742d987288196bb, []int{0} +} +func (m *SharedSetTypeEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SharedSetTypeEnum.Unmarshal(m, b) +} +func (m *SharedSetTypeEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SharedSetTypeEnum.Marshal(b, m, deterministic) +} +func (dst *SharedSetTypeEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_SharedSetTypeEnum.Merge(dst, src) +} +func (m *SharedSetTypeEnum) XXX_Size() int { + return xxx_messageInfo_SharedSetTypeEnum.Size(m) +} +func (m *SharedSetTypeEnum) XXX_DiscardUnknown() { + xxx_messageInfo_SharedSetTypeEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_SharedSetTypeEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*SharedSetTypeEnum)(nil), "google.ads.googleads.v0.enums.SharedSetTypeEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.SharedSetTypeEnum_SharedSetType", SharedSetTypeEnum_SharedSetType_name, SharedSetTypeEnum_SharedSetType_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/shared_set_type.proto", fileDescriptor_shared_set_type_2742d987288196bb) +} + +var fileDescriptor_shared_set_type_2742d987288196bb = []byte{ + // 282 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x32, 0x4e, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xbc, + 0xd2, 0xdc, 0x62, 0xfd, 0xe2, 0x8c, 0xc4, 0xa2, 0xd4, 0x94, 0xf8, 0xe2, 0xd4, 0x92, 0xf8, 0x92, + 0xca, 0x82, 0x54, 0xbd, 0x82, 0xa2, 0xfc, 0x92, 0x7c, 0x21, 0x59, 0x88, 0x4a, 0xbd, 0xc4, 0x94, + 0x62, 0x3d, 0xb8, 0x26, 0xbd, 0x32, 0x03, 0x3d, 0xb0, 0x26, 0xa5, 0x22, 0x2e, 0xc1, 0x60, 0xb0, + 0xbe, 0xe0, 0xd4, 0x92, 0x90, 0xca, 0x82, 0x54, 0xd7, 0xbc, 0xd2, 0x5c, 0xa5, 0x58, 0x2e, 0x5e, + 0x14, 0x41, 0x21, 0x7e, 0x2e, 0xee, 0x50, 0xbf, 0xe0, 0x00, 0x57, 0x67, 0x4f, 0x37, 0x4f, 0x57, + 0x17, 0x01, 0x06, 0x21, 0x6e, 0x2e, 0xf6, 0x50, 0x3f, 0x6f, 0x3f, 0xff, 0x70, 0x3f, 0x01, 0x46, + 0x21, 0x51, 0x2e, 0x41, 0x3f, 0x57, 0x77, 0xc7, 0x10, 0xcf, 0x30, 0xd7, 0x78, 0x6f, 0xd7, 0xc8, + 0x70, 0xff, 0x20, 0x97, 0x60, 0x01, 0x26, 0x21, 0x71, 0x2e, 0x61, 0xb8, 0x70, 0x80, 0x8f, 0xa3, + 0xb3, 0xab, 0xaf, 0xab, 0x5f, 0x48, 0xb0, 0x00, 0xb3, 0xd3, 0x61, 0x46, 0x2e, 0xc5, 0xe4, 0xfc, + 0x5c, 0x3d, 0xbc, 0x2e, 0x73, 0x12, 0x42, 0x71, 0x42, 0x00, 0xc8, 0x33, 0x01, 0x8c, 0x51, 0x4e, + 0x50, 0x4d, 0xe9, 0xf9, 0x39, 0x89, 0x79, 0xe9, 0x7a, 0xf9, 0x45, 0xe9, 0xfa, 0xe9, 0xa9, 0x79, + 0x60, 0xaf, 0xc2, 0xc2, 0xa4, 0x20, 0xb3, 0x18, 0x47, 0x10, 0x59, 0x83, 0xc9, 0x45, 0x4c, 0xcc, + 0xee, 0x8e, 0x8e, 0xab, 0x98, 0x64, 0xdd, 0x21, 0x46, 0x39, 0xa6, 0x14, 0xeb, 0x41, 0x98, 0x20, + 0x56, 0x98, 0x81, 0x1e, 0x28, 0x0c, 0x8a, 0x4f, 0xc1, 0xe4, 0x63, 0x1c, 0x53, 0x8a, 0x63, 0xe0, + 0xf2, 0x31, 0x61, 0x06, 0x31, 0x60, 0xf9, 0x24, 0x36, 0xb0, 0xa5, 0xc6, 0x80, 0x00, 0x00, 0x00, + 0xff, 0xff, 0x31, 0xeb, 0x1d, 0x88, 0x96, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/sitelink_placeholder_field.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/sitelink_placeholder_field.pb.go new file mode 100644 index 000000000..b334ea6bf --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/sitelink_placeholder_field.pb.go @@ -0,0 +1,143 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/sitelink_placeholder_field.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Possible values for Sitelink placeholder fields. +type SitelinkPlaceholderFieldEnum_SitelinkPlaceholderField int32 + +const ( + // Not specified. + SitelinkPlaceholderFieldEnum_UNSPECIFIED SitelinkPlaceholderFieldEnum_SitelinkPlaceholderField = 0 + // Used for return value only. Represents value unknown in this version. + SitelinkPlaceholderFieldEnum_UNKNOWN SitelinkPlaceholderFieldEnum_SitelinkPlaceholderField = 1 + // Data Type: STRING. The link text for your sitelink. + SitelinkPlaceholderFieldEnum_TEXT SitelinkPlaceholderFieldEnum_SitelinkPlaceholderField = 2 + // Data Type: STRING. First line of the sitelink description. + SitelinkPlaceholderFieldEnum_LINE_1 SitelinkPlaceholderFieldEnum_SitelinkPlaceholderField = 3 + // Data Type: STRING. Second line of the sitelink description. + SitelinkPlaceholderFieldEnum_LINE_2 SitelinkPlaceholderFieldEnum_SitelinkPlaceholderField = 4 + // Data Type: URL_LIST. Final URLs for the sitelink when using Upgraded + // URLs. + SitelinkPlaceholderFieldEnum_FINAL_URLS SitelinkPlaceholderFieldEnum_SitelinkPlaceholderField = 5 + // Data Type: URL_LIST. Final Mobile URLs for the sitelink when using + // Upgraded URLs. + SitelinkPlaceholderFieldEnum_FINAL_MOBILE_URLS SitelinkPlaceholderFieldEnum_SitelinkPlaceholderField = 6 + // Data Type: URL. Tracking template for the sitelink when using Upgraded + // URLs. + SitelinkPlaceholderFieldEnum_TRACKING_URL SitelinkPlaceholderFieldEnum_SitelinkPlaceholderField = 7 + // Data Type: STRING. Final URL suffix for sitelink when using parallel + // tracking. + SitelinkPlaceholderFieldEnum_FINAL_URL_SUFFIX SitelinkPlaceholderFieldEnum_SitelinkPlaceholderField = 8 +) + +var SitelinkPlaceholderFieldEnum_SitelinkPlaceholderField_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "TEXT", + 3: "LINE_1", + 4: "LINE_2", + 5: "FINAL_URLS", + 6: "FINAL_MOBILE_URLS", + 7: "TRACKING_URL", + 8: "FINAL_URL_SUFFIX", +} +var SitelinkPlaceholderFieldEnum_SitelinkPlaceholderField_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "TEXT": 2, + "LINE_1": 3, + "LINE_2": 4, + "FINAL_URLS": 5, + "FINAL_MOBILE_URLS": 6, + "TRACKING_URL": 7, + "FINAL_URL_SUFFIX": 8, +} + +func (x SitelinkPlaceholderFieldEnum_SitelinkPlaceholderField) String() string { + return proto.EnumName(SitelinkPlaceholderFieldEnum_SitelinkPlaceholderField_name, int32(x)) +} +func (SitelinkPlaceholderFieldEnum_SitelinkPlaceholderField) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_sitelink_placeholder_field_1dbac5ed08bf4cb2, []int{0, 0} +} + +// Values for Sitelink placeholder fields. +type SitelinkPlaceholderFieldEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SitelinkPlaceholderFieldEnum) Reset() { *m = SitelinkPlaceholderFieldEnum{} } +func (m *SitelinkPlaceholderFieldEnum) String() string { return proto.CompactTextString(m) } +func (*SitelinkPlaceholderFieldEnum) ProtoMessage() {} +func (*SitelinkPlaceholderFieldEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_sitelink_placeholder_field_1dbac5ed08bf4cb2, []int{0} +} +func (m *SitelinkPlaceholderFieldEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SitelinkPlaceholderFieldEnum.Unmarshal(m, b) +} +func (m *SitelinkPlaceholderFieldEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SitelinkPlaceholderFieldEnum.Marshal(b, m, deterministic) +} +func (dst *SitelinkPlaceholderFieldEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_SitelinkPlaceholderFieldEnum.Merge(dst, src) +} +func (m *SitelinkPlaceholderFieldEnum) XXX_Size() int { + return xxx_messageInfo_SitelinkPlaceholderFieldEnum.Size(m) +} +func (m *SitelinkPlaceholderFieldEnum) XXX_DiscardUnknown() { + xxx_messageInfo_SitelinkPlaceholderFieldEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_SitelinkPlaceholderFieldEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*SitelinkPlaceholderFieldEnum)(nil), "google.ads.googleads.v0.enums.SitelinkPlaceholderFieldEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.SitelinkPlaceholderFieldEnum_SitelinkPlaceholderField", SitelinkPlaceholderFieldEnum_SitelinkPlaceholderField_name, SitelinkPlaceholderFieldEnum_SitelinkPlaceholderField_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/sitelink_placeholder_field.proto", fileDescriptor_sitelink_placeholder_field_1dbac5ed08bf4cb2) +} + +var fileDescriptor_sitelink_placeholder_field_1dbac5ed08bf4cb2 = []byte{ + // 339 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x91, 0xc1, 0x4e, 0xea, 0x40, + 0x14, 0x86, 0x6f, 0x81, 0x0b, 0xe4, 0x70, 0x73, 0xef, 0xdc, 0x89, 0x26, 0x2e, 0x64, 0x21, 0x0f, + 0x30, 0xad, 0xba, 0x34, 0x31, 0x69, 0xb1, 0x25, 0x13, 0xea, 0xd0, 0x50, 0x8a, 0xc4, 0x34, 0x69, + 0x2a, 0x1d, 0x6b, 0x63, 0xe9, 0x10, 0x06, 0x78, 0x20, 0x77, 0xfa, 0x28, 0x2c, 0x7c, 0x26, 0xd3, + 0x16, 0xea, 0x0a, 0x37, 0x93, 0x7f, 0xce, 0x99, 0xef, 0x9f, 0x9c, 0xff, 0xc0, 0x6d, 0x2c, 0x44, + 0x9c, 0x72, 0x35, 0x8c, 0xa4, 0x5a, 0xca, 0x5c, 0x6d, 0x35, 0x95, 0x67, 0x9b, 0x85, 0x54, 0x65, + 0xb2, 0xe6, 0x69, 0x92, 0xbd, 0x06, 0xcb, 0x34, 0x9c, 0xf3, 0x17, 0x91, 0x46, 0x7c, 0x15, 0x3c, + 0x27, 0x3c, 0x8d, 0xc8, 0x72, 0x25, 0xd6, 0x02, 0x77, 0x4b, 0x88, 0x84, 0x91, 0x24, 0x15, 0x4f, + 0xb6, 0x1a, 0x29, 0xf8, 0xde, 0x4e, 0x81, 0x73, 0x77, 0xef, 0xe1, 0x7c, 0x5b, 0x58, 0xb9, 0x83, + 0x99, 0x6d, 0x16, 0xbd, 0x77, 0x05, 0xce, 0x8e, 0x3d, 0xc0, 0xff, 0xa0, 0xe3, 0x31, 0xd7, 0x31, + 0xfb, 0xd4, 0xa2, 0xe6, 0x1d, 0xfa, 0x85, 0x3b, 0xd0, 0xf2, 0xd8, 0x90, 0x8d, 0x1e, 0x18, 0x52, + 0x70, 0x1b, 0x1a, 0x13, 0x73, 0x36, 0x41, 0x35, 0x0c, 0xd0, 0xb4, 0x29, 0x33, 0x83, 0x4b, 0x54, + 0xaf, 0xf4, 0x15, 0x6a, 0xe0, 0xbf, 0x00, 0x16, 0x65, 0xba, 0x1d, 0x78, 0x63, 0xdb, 0x45, 0xbf, + 0xf1, 0x29, 0xfc, 0x2f, 0xef, 0xf7, 0x23, 0x83, 0xda, 0x66, 0x59, 0x6e, 0x62, 0x04, 0x7f, 0x26, + 0x63, 0xbd, 0x3f, 0xa4, 0x6c, 0x90, 0x97, 0x50, 0x0b, 0x9f, 0x00, 0xaa, 0xc0, 0xc0, 0xf5, 0x2c, + 0x8b, 0xce, 0x50, 0xdb, 0xf8, 0x54, 0xe0, 0x62, 0x2e, 0x16, 0xe4, 0xc7, 0x91, 0x8d, 0xee, 0xb1, + 0x71, 0x9c, 0x3c, 0x30, 0x47, 0x79, 0x34, 0xf6, 0x7c, 0x2c, 0xd2, 0x30, 0x8b, 0x89, 0x58, 0xc5, + 0x6a, 0xcc, 0xb3, 0x22, 0xce, 0xc3, 0x0a, 0x96, 0x89, 0x3c, 0xb2, 0x91, 0x9b, 0xe2, 0x7c, 0xab, + 0xd5, 0x07, 0xba, 0xfe, 0x51, 0xeb, 0x0e, 0x4a, 0x2b, 0x3d, 0x92, 0xa4, 0x94, 0xb9, 0x9a, 0x6a, + 0x24, 0xcf, 0x56, 0xee, 0x0e, 0x7d, 0x5f, 0x8f, 0xa4, 0x5f, 0xf5, 0xfd, 0xa9, 0xe6, 0x17, 0xfd, + 0xa7, 0x66, 0xf1, 0xe9, 0xf5, 0x57, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa3, 0xa3, 0x37, 0xa7, 0x05, + 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/slot.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/slot.pb.go new file mode 100644 index 000000000..8f83c0bd2 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/slot.pb.go @@ -0,0 +1,137 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/slot.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enumerates possible positions of the Ad. +type SlotEnum_Slot int32 + +const ( + // Not specified. + SlotEnum_UNSPECIFIED SlotEnum_Slot = 0 + // The value is unknown in this version. + SlotEnum_UNKNOWN SlotEnum_Slot = 1 + // Google search: Side. + SlotEnum_SEARCH_SIDE SlotEnum_Slot = 2 + // Google search: Top. + SlotEnum_SEARCH_TOP SlotEnum_Slot = 3 + // Google search: Other. + SlotEnum_SEARCH_OTHER SlotEnum_Slot = 4 + // Google Display Network. + SlotEnum_CONTENT SlotEnum_Slot = 5 + // Search partners: Top. + SlotEnum_SEARCH_PARTNER_TOP SlotEnum_Slot = 6 + // Search partners: Other. + SlotEnum_SEARCH_PARTNER_OTHER SlotEnum_Slot = 7 + // Cross-network. + SlotEnum_MIXED SlotEnum_Slot = 8 +) + +var SlotEnum_Slot_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "SEARCH_SIDE", + 3: "SEARCH_TOP", + 4: "SEARCH_OTHER", + 5: "CONTENT", + 6: "SEARCH_PARTNER_TOP", + 7: "SEARCH_PARTNER_OTHER", + 8: "MIXED", +} +var SlotEnum_Slot_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "SEARCH_SIDE": 2, + "SEARCH_TOP": 3, + "SEARCH_OTHER": 4, + "CONTENT": 5, + "SEARCH_PARTNER_TOP": 6, + "SEARCH_PARTNER_OTHER": 7, + "MIXED": 8, +} + +func (x SlotEnum_Slot) String() string { + return proto.EnumName(SlotEnum_Slot_name, int32(x)) +} +func (SlotEnum_Slot) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_slot_595ff7b86bb21b12, []int{0, 0} +} + +// Container for enumeration of possible positions of the Ad. +type SlotEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SlotEnum) Reset() { *m = SlotEnum{} } +func (m *SlotEnum) String() string { return proto.CompactTextString(m) } +func (*SlotEnum) ProtoMessage() {} +func (*SlotEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_slot_595ff7b86bb21b12, []int{0} +} +func (m *SlotEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SlotEnum.Unmarshal(m, b) +} +func (m *SlotEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SlotEnum.Marshal(b, m, deterministic) +} +func (dst *SlotEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_SlotEnum.Merge(dst, src) +} +func (m *SlotEnum) XXX_Size() int { + return xxx_messageInfo_SlotEnum.Size(m) +} +func (m *SlotEnum) XXX_DiscardUnknown() { + xxx_messageInfo_SlotEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_SlotEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*SlotEnum)(nil), "google.ads.googleads.v0.enums.SlotEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.SlotEnum_Slot", SlotEnum_Slot_name, SlotEnum_Slot_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/slot.proto", fileDescriptor_slot_595ff7b86bb21b12) +} + +var fileDescriptor_slot_595ff7b86bb21b12 = []byte{ + // 310 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0xcf, 0x4a, 0xf3, 0x40, + 0x14, 0xc5, 0xbf, 0xf4, 0x7f, 0x6f, 0x3f, 0x74, 0x18, 0x44, 0xdc, 0x74, 0x61, 0x57, 0xae, 0x26, + 0x01, 0x97, 0xae, 0xa6, 0xed, 0xd8, 0x06, 0x71, 0x12, 0x92, 0xb4, 0x8a, 0x04, 0xa4, 0x9a, 0x30, + 0x08, 0x49, 0xa6, 0x74, 0xd2, 0xbe, 0x8f, 0x2e, 0x5d, 0xf8, 0x00, 0x3e, 0x82, 0x4f, 0x25, 0x33, + 0x49, 0xbb, 0x10, 0x74, 0x13, 0xce, 0xbd, 0xbf, 0x73, 0x32, 0xdc, 0x03, 0x17, 0x42, 0x4a, 0x91, + 0xa5, 0xf6, 0x2a, 0x51, 0x76, 0x25, 0xb5, 0xda, 0x39, 0x76, 0x5a, 0x6c, 0x73, 0x65, 0xab, 0x4c, + 0x96, 0x64, 0xbd, 0x91, 0xa5, 0xc4, 0xc3, 0x0a, 0x93, 0x55, 0xa2, 0xc8, 0xc1, 0x49, 0x76, 0x0e, + 0x31, 0xce, 0xd1, 0x87, 0x05, 0xbd, 0x30, 0x93, 0x25, 0x2b, 0xb6, 0xf9, 0xe8, 0xd5, 0x82, 0x96, + 0x1e, 0xf0, 0x31, 0x0c, 0x16, 0x3c, 0xf4, 0xd9, 0xc4, 0xbd, 0x76, 0xd9, 0x14, 0xfd, 0xc3, 0x03, + 0xe8, 0x2e, 0xf8, 0x0d, 0xf7, 0xee, 0x38, 0xb2, 0x34, 0x0d, 0x19, 0x0d, 0x26, 0xf3, 0xc7, 0xd0, + 0x9d, 0x32, 0xd4, 0xc0, 0x47, 0x00, 0xf5, 0x22, 0xf2, 0x7c, 0xd4, 0xc4, 0x08, 0xfe, 0xd7, 0xb3, + 0x17, 0xcd, 0x59, 0x80, 0x5a, 0x3a, 0x3f, 0xf1, 0x78, 0xc4, 0x78, 0x84, 0xda, 0xf8, 0x14, 0x70, + 0x8d, 0x7d, 0x1a, 0x44, 0x9c, 0x05, 0x26, 0xd6, 0xc1, 0x67, 0x70, 0xf2, 0x63, 0x5f, 0xc5, 0xbb, + 0xb8, 0x0f, 0xed, 0x5b, 0xf7, 0x9e, 0x4d, 0x51, 0x6f, 0xfc, 0x69, 0xc1, 0xf9, 0xb3, 0xcc, 0xc9, + 0x9f, 0x67, 0x8d, 0xfb, 0xfa, 0x0c, 0x5f, 0x17, 0xe0, 0x5b, 0x0f, 0xe3, 0xda, 0x2b, 0x64, 0xb6, + 0x2a, 0x04, 0x91, 0x1b, 0x61, 0x8b, 0xb4, 0x30, 0xf5, 0xec, 0xcb, 0x5b, 0xbf, 0xa8, 0x5f, 0xba, + 0xbc, 0x32, 0xdf, 0xb7, 0x46, 0x73, 0x46, 0xe9, 0x7b, 0x63, 0x38, 0xab, 0x7e, 0x45, 0x13, 0x45, + 0x2a, 0xa9, 0xd5, 0xd2, 0x21, 0xba, 0x3f, 0xf5, 0xb5, 0xe7, 0x31, 0x4d, 0x54, 0x7c, 0xe0, 0xf1, + 0xd2, 0x89, 0x0d, 0x7f, 0xea, 0x98, 0x47, 0x2f, 0xbf, 0x03, 0x00, 0x00, 0xff, 0xff, 0x68, 0x82, + 0x7a, 0x46, 0xbf, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/spending_limit_type.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/spending_limit_type.pb.go new file mode 100644 index 000000000..3ec63f02f --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/spending_limit_type.pb.go @@ -0,0 +1,111 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/spending_limit_type.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// The possible spending limit types used by certain resources as an +// alternative to absolute money values in micros. +type SpendingLimitTypeEnum_SpendingLimitType int32 + +const ( + // Not specified. + SpendingLimitTypeEnum_UNSPECIFIED SpendingLimitTypeEnum_SpendingLimitType = 0 + // Used for return value only. Represents value unknown in this version. + SpendingLimitTypeEnum_UNKNOWN SpendingLimitTypeEnum_SpendingLimitType = 1 + // Infinite, indicates unlimited spending power. + SpendingLimitTypeEnum_INFINITE SpendingLimitTypeEnum_SpendingLimitType = 2 +) + +var SpendingLimitTypeEnum_SpendingLimitType_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "INFINITE", +} +var SpendingLimitTypeEnum_SpendingLimitType_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "INFINITE": 2, +} + +func (x SpendingLimitTypeEnum_SpendingLimitType) String() string { + return proto.EnumName(SpendingLimitTypeEnum_SpendingLimitType_name, int32(x)) +} +func (SpendingLimitTypeEnum_SpendingLimitType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_spending_limit_type_5f13fab4ccb8ebff, []int{0, 0} +} + +// Message describing spending limit types. +type SpendingLimitTypeEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SpendingLimitTypeEnum) Reset() { *m = SpendingLimitTypeEnum{} } +func (m *SpendingLimitTypeEnum) String() string { return proto.CompactTextString(m) } +func (*SpendingLimitTypeEnum) ProtoMessage() {} +func (*SpendingLimitTypeEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_spending_limit_type_5f13fab4ccb8ebff, []int{0} +} +func (m *SpendingLimitTypeEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SpendingLimitTypeEnum.Unmarshal(m, b) +} +func (m *SpendingLimitTypeEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SpendingLimitTypeEnum.Marshal(b, m, deterministic) +} +func (dst *SpendingLimitTypeEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_SpendingLimitTypeEnum.Merge(dst, src) +} +func (m *SpendingLimitTypeEnum) XXX_Size() int { + return xxx_messageInfo_SpendingLimitTypeEnum.Size(m) +} +func (m *SpendingLimitTypeEnum) XXX_DiscardUnknown() { + xxx_messageInfo_SpendingLimitTypeEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_SpendingLimitTypeEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*SpendingLimitTypeEnum)(nil), "google.ads.googleads.v0.enums.SpendingLimitTypeEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.SpendingLimitTypeEnum_SpendingLimitType", SpendingLimitTypeEnum_SpendingLimitType_name, SpendingLimitTypeEnum_SpendingLimitType_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/spending_limit_type.proto", fileDescriptor_spending_limit_type_5f13fab4ccb8ebff) +} + +var fileDescriptor_spending_limit_type_5f13fab4ccb8ebff = []byte{ + // 258 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x32, 0x4f, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xbc, + 0xd2, 0xdc, 0x62, 0xfd, 0xe2, 0x82, 0xd4, 0xbc, 0x94, 0xcc, 0xbc, 0xf4, 0xf8, 0x9c, 0xcc, 0xdc, + 0xcc, 0x92, 0xf8, 0x92, 0xca, 0x82, 0x54, 0xbd, 0x82, 0xa2, 0xfc, 0x92, 0x7c, 0x21, 0x59, 0x88, + 0x6a, 0xbd, 0xc4, 0x94, 0x62, 0x3d, 0xb8, 0x46, 0xbd, 0x32, 0x03, 0x3d, 0xb0, 0x46, 0xa5, 0x08, + 0x2e, 0xd1, 0x60, 0xa8, 0x5e, 0x1f, 0x90, 0xd6, 0x90, 0xca, 0x82, 0x54, 0xd7, 0xbc, 0xd2, 0x5c, + 0x25, 0x7b, 0x2e, 0x41, 0x0c, 0x09, 0x21, 0x7e, 0x2e, 0xee, 0x50, 0xbf, 0xe0, 0x00, 0x57, 0x67, + 0x4f, 0x37, 0x4f, 0x57, 0x17, 0x01, 0x06, 0x21, 0x6e, 0x2e, 0xf6, 0x50, 0x3f, 0x6f, 0x3f, 0xff, + 0x70, 0x3f, 0x01, 0x46, 0x21, 0x1e, 0x2e, 0x0e, 0x4f, 0x3f, 0x37, 0x4f, 0x3f, 0xcf, 0x10, 0x57, + 0x01, 0x26, 0xa7, 0xe3, 0x8c, 0x5c, 0x8a, 0xc9, 0xf9, 0xb9, 0x7a, 0x78, 0xed, 0x77, 0x12, 0xc3, + 0xb0, 0x24, 0x00, 0xe4, 0xec, 0x00, 0xc6, 0x28, 0x27, 0xa8, 0xc6, 0xf4, 0xfc, 0x9c, 0xc4, 0xbc, + 0x74, 0xbd, 0xfc, 0xa2, 0x74, 0xfd, 0xf4, 0xd4, 0x3c, 0xb0, 0xa7, 0x60, 0x21, 0x50, 0x90, 0x59, + 0x8c, 0x23, 0x40, 0xac, 0xc1, 0xe4, 0x22, 0x26, 0x66, 0x77, 0x47, 0xc7, 0x55, 0x4c, 0xb2, 0xee, + 0x10, 0xa3, 0x1c, 0x53, 0x8a, 0xf5, 0x20, 0x4c, 0x10, 0x2b, 0xcc, 0x40, 0x0f, 0xe4, 0xd3, 0xe2, + 0x53, 0x30, 0xf9, 0x18, 0xc7, 0x94, 0xe2, 0x18, 0xb8, 0x7c, 0x4c, 0x98, 0x41, 0x0c, 0x58, 0x3e, + 0x89, 0x0d, 0x6c, 0xa9, 0x31, 0x20, 0x00, 0x00, 0xff, 0xff, 0x86, 0x41, 0xe0, 0xb2, 0x84, 0x01, + 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/structured_snippet_placeholder_field.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/structured_snippet_placeholder_field.pb.go new file mode 100644 index 000000000..bb34b9686 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/structured_snippet_placeholder_field.pb.go @@ -0,0 +1,122 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/structured_snippet_placeholder_field.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Possible values for Structured Snippet placeholder fields. +type StructuredSnippetPlaceholderFieldEnum_StructuredSnippetPlaceholderField int32 + +const ( + // Not specified. + StructuredSnippetPlaceholderFieldEnum_UNSPECIFIED StructuredSnippetPlaceholderFieldEnum_StructuredSnippetPlaceholderField = 0 + // Used for return value only. Represents value unknown in this version. + StructuredSnippetPlaceholderFieldEnum_UNKNOWN StructuredSnippetPlaceholderFieldEnum_StructuredSnippetPlaceholderField = 1 + // Data Type: STRING. The category of snippet of your products/services. + // Must match one of the predefined structured snippets headers exactly. + // See + // https://developers.google.com/adwords/api + // /docs/appendix/structured-snippet-headers + StructuredSnippetPlaceholderFieldEnum_HEADER StructuredSnippetPlaceholderFieldEnum_StructuredSnippetPlaceholderField = 2 + // Data Type: STRING_LIST. Text values that describe your products/services. + // All text must be family safe. Special or non-ASCII characters are not + // permitted. A snippet can be at most 25 characters. + StructuredSnippetPlaceholderFieldEnum_SNIPPETS StructuredSnippetPlaceholderFieldEnum_StructuredSnippetPlaceholderField = 3 +) + +var StructuredSnippetPlaceholderFieldEnum_StructuredSnippetPlaceholderField_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "HEADER", + 3: "SNIPPETS", +} +var StructuredSnippetPlaceholderFieldEnum_StructuredSnippetPlaceholderField_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "HEADER": 2, + "SNIPPETS": 3, +} + +func (x StructuredSnippetPlaceholderFieldEnum_StructuredSnippetPlaceholderField) String() string { + return proto.EnumName(StructuredSnippetPlaceholderFieldEnum_StructuredSnippetPlaceholderField_name, int32(x)) +} +func (StructuredSnippetPlaceholderFieldEnum_StructuredSnippetPlaceholderField) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_structured_snippet_placeholder_field_83f6792b7ed6205b, []int{0, 0} +} + +// Values for Structured Snippet placeholder fields. +type StructuredSnippetPlaceholderFieldEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *StructuredSnippetPlaceholderFieldEnum) Reset() { *m = StructuredSnippetPlaceholderFieldEnum{} } +func (m *StructuredSnippetPlaceholderFieldEnum) String() string { return proto.CompactTextString(m) } +func (*StructuredSnippetPlaceholderFieldEnum) ProtoMessage() {} +func (*StructuredSnippetPlaceholderFieldEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_structured_snippet_placeholder_field_83f6792b7ed6205b, []int{0} +} +func (m *StructuredSnippetPlaceholderFieldEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_StructuredSnippetPlaceholderFieldEnum.Unmarshal(m, b) +} +func (m *StructuredSnippetPlaceholderFieldEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_StructuredSnippetPlaceholderFieldEnum.Marshal(b, m, deterministic) +} +func (dst *StructuredSnippetPlaceholderFieldEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_StructuredSnippetPlaceholderFieldEnum.Merge(dst, src) +} +func (m *StructuredSnippetPlaceholderFieldEnum) XXX_Size() int { + return xxx_messageInfo_StructuredSnippetPlaceholderFieldEnum.Size(m) +} +func (m *StructuredSnippetPlaceholderFieldEnum) XXX_DiscardUnknown() { + xxx_messageInfo_StructuredSnippetPlaceholderFieldEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_StructuredSnippetPlaceholderFieldEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*StructuredSnippetPlaceholderFieldEnum)(nil), "google.ads.googleads.v0.enums.StructuredSnippetPlaceholderFieldEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.StructuredSnippetPlaceholderFieldEnum_StructuredSnippetPlaceholderField", StructuredSnippetPlaceholderFieldEnum_StructuredSnippetPlaceholderField_name, StructuredSnippetPlaceholderFieldEnum_StructuredSnippetPlaceholderField_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/structured_snippet_placeholder_field.proto", fileDescriptor_structured_snippet_placeholder_field_83f6792b7ed6205b) +} + +var fileDescriptor_structured_snippet_placeholder_field_83f6792b7ed6205b = []byte{ + // 291 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x90, 0xc1, 0x4a, 0xc3, 0x30, + 0x18, 0xc7, 0x6d, 0x07, 0x53, 0x32, 0xc1, 0xd2, 0xfb, 0x0e, 0x1b, 0xe8, 0x31, 0x2d, 0x78, 0xf4, + 0xd4, 0xba, 0x6c, 0x2b, 0x42, 0x0d, 0xd6, 0x4d, 0xd0, 0x42, 0xa9, 0x4d, 0x8c, 0x85, 0xb6, 0x29, + 0x49, 0xbb, 0x27, 0xf0, 0x49, 0x3c, 0xfa, 0x28, 0xbe, 0x80, 0xaf, 0x23, 0x49, 0x5c, 0x3d, 0xe9, + 0x2e, 0xe1, 0x0f, 0xff, 0xe4, 0x97, 0xef, 0xfb, 0x81, 0x35, 0xe3, 0x9c, 0x55, 0xd4, 0xcb, 0x89, + 0xf4, 0x4c, 0x54, 0x69, 0xe7, 0x7b, 0xb4, 0xe9, 0x6b, 0xe9, 0xc9, 0x4e, 0xf4, 0x45, 0xd7, 0x0b, + 0x4a, 0x32, 0xd9, 0x94, 0x6d, 0x4b, 0xbb, 0xac, 0xad, 0xf2, 0x82, 0xbe, 0xf2, 0x8a, 0x50, 0x91, + 0xbd, 0x94, 0xb4, 0x22, 0xb0, 0x15, 0xbc, 0xe3, 0xee, 0xd4, 0x3c, 0x87, 0x39, 0x91, 0x70, 0x20, + 0xc1, 0x9d, 0x0f, 0x35, 0x69, 0xfe, 0x66, 0x81, 0xf3, 0x64, 0xa0, 0x25, 0x06, 0x86, 0x7f, 0x59, + 0x4b, 0x85, 0x42, 0x4d, 0x5f, 0xcf, 0x9f, 0xc0, 0xec, 0xe0, 0x45, 0xf7, 0x0c, 0x4c, 0x36, 0x71, + 0x82, 0xd1, 0x75, 0xb4, 0x8c, 0xd0, 0xc2, 0x39, 0x72, 0x27, 0xe0, 0x78, 0x13, 0xdf, 0xc4, 0xb7, + 0x0f, 0xb1, 0x63, 0xb9, 0x00, 0x8c, 0xd7, 0x28, 0x58, 0xa0, 0x3b, 0xc7, 0x76, 0x4f, 0xc1, 0x49, + 0x12, 0x47, 0x18, 0xa3, 0xfb, 0xc4, 0x19, 0x85, 0x5f, 0x16, 0x98, 0x15, 0xbc, 0x86, 0xff, 0x0e, + 0x1b, 0x5e, 0x1c, 0x1c, 0x00, 0xab, 0x9d, 0xb1, 0xf5, 0x18, 0xfe, 0x80, 0x18, 0xaf, 0xf2, 0x86, + 0x41, 0x2e, 0x98, 0xc7, 0x68, 0xa3, 0x8d, 0xec, 0x7d, 0xb6, 0xa5, 0xfc, 0x43, 0xef, 0x95, 0x3e, + 0xdf, 0xed, 0xd1, 0x2a, 0x08, 0x3e, 0xec, 0xe9, 0xca, 0xa0, 0x02, 0x22, 0xa1, 0x89, 0x2a, 0x6d, + 0x7d, 0xa8, 0xac, 0xc8, 0xcf, 0x7d, 0x9f, 0x06, 0x44, 0xa6, 0x43, 0x9f, 0x6e, 0xfd, 0x54, 0xf7, + 0xcf, 0x63, 0xfd, 0xe9, 0xe5, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0xec, 0xa3, 0x08, 0x30, 0xd2, + 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/target_cpa_opt_in_recommendation_goal.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/target_cpa_opt_in_recommendation_goal.pb.go new file mode 100644 index 000000000..cb71fbf2d --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/target_cpa_opt_in_recommendation_goal.pb.go @@ -0,0 +1,127 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/target_cpa_opt_in_recommendation_goal.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Goal of TargetCpaOptIn recommendation. +type TargetCpaOptInRecommendationGoalEnum_TargetCpaOptInRecommendationGoal int32 + +const ( + // Not specified. + TargetCpaOptInRecommendationGoalEnum_UNSPECIFIED TargetCpaOptInRecommendationGoalEnum_TargetCpaOptInRecommendationGoal = 0 + // Used for return value only. Represents value unknown in this version. + TargetCpaOptInRecommendationGoalEnum_UNKNOWN TargetCpaOptInRecommendationGoalEnum_TargetCpaOptInRecommendationGoal = 1 + // Recommendation to set Target CPA to maintain the same cost. + TargetCpaOptInRecommendationGoalEnum_SAME_COST TargetCpaOptInRecommendationGoalEnum_TargetCpaOptInRecommendationGoal = 2 + // Recommendation to set Target CPA to maintain the same conversions. + TargetCpaOptInRecommendationGoalEnum_SAME_CONVERSIONS TargetCpaOptInRecommendationGoalEnum_TargetCpaOptInRecommendationGoal = 3 + // Recommendation to set Target CPA to maintain the same CPA. + TargetCpaOptInRecommendationGoalEnum_SAME_CPA TargetCpaOptInRecommendationGoalEnum_TargetCpaOptInRecommendationGoal = 4 + // Recommendation to set Target CPA to a value that is as close as possible + // to, yet lower than, the actual CPA (computed for past 28 days). + TargetCpaOptInRecommendationGoalEnum_CLOSEST_CPA TargetCpaOptInRecommendationGoalEnum_TargetCpaOptInRecommendationGoal = 5 +) + +var TargetCpaOptInRecommendationGoalEnum_TargetCpaOptInRecommendationGoal_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "SAME_COST", + 3: "SAME_CONVERSIONS", + 4: "SAME_CPA", + 5: "CLOSEST_CPA", +} +var TargetCpaOptInRecommendationGoalEnum_TargetCpaOptInRecommendationGoal_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "SAME_COST": 2, + "SAME_CONVERSIONS": 3, + "SAME_CPA": 4, + "CLOSEST_CPA": 5, +} + +func (x TargetCpaOptInRecommendationGoalEnum_TargetCpaOptInRecommendationGoal) String() string { + return proto.EnumName(TargetCpaOptInRecommendationGoalEnum_TargetCpaOptInRecommendationGoal_name, int32(x)) +} +func (TargetCpaOptInRecommendationGoalEnum_TargetCpaOptInRecommendationGoal) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_target_cpa_opt_in_recommendation_goal_ca9ee4bf5aa58147, []int{0, 0} +} + +// Container for enum describing goals for TargetCpaOptIn recommendation. +type TargetCpaOptInRecommendationGoalEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TargetCpaOptInRecommendationGoalEnum) Reset() { *m = TargetCpaOptInRecommendationGoalEnum{} } +func (m *TargetCpaOptInRecommendationGoalEnum) String() string { return proto.CompactTextString(m) } +func (*TargetCpaOptInRecommendationGoalEnum) ProtoMessage() {} +func (*TargetCpaOptInRecommendationGoalEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_target_cpa_opt_in_recommendation_goal_ca9ee4bf5aa58147, []int{0} +} +func (m *TargetCpaOptInRecommendationGoalEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TargetCpaOptInRecommendationGoalEnum.Unmarshal(m, b) +} +func (m *TargetCpaOptInRecommendationGoalEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TargetCpaOptInRecommendationGoalEnum.Marshal(b, m, deterministic) +} +func (dst *TargetCpaOptInRecommendationGoalEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_TargetCpaOptInRecommendationGoalEnum.Merge(dst, src) +} +func (m *TargetCpaOptInRecommendationGoalEnum) XXX_Size() int { + return xxx_messageInfo_TargetCpaOptInRecommendationGoalEnum.Size(m) +} +func (m *TargetCpaOptInRecommendationGoalEnum) XXX_DiscardUnknown() { + xxx_messageInfo_TargetCpaOptInRecommendationGoalEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_TargetCpaOptInRecommendationGoalEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*TargetCpaOptInRecommendationGoalEnum)(nil), "google.ads.googleads.v0.enums.TargetCpaOptInRecommendationGoalEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.TargetCpaOptInRecommendationGoalEnum_TargetCpaOptInRecommendationGoal", TargetCpaOptInRecommendationGoalEnum_TargetCpaOptInRecommendationGoal_name, TargetCpaOptInRecommendationGoalEnum_TargetCpaOptInRecommendationGoal_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/target_cpa_opt_in_recommendation_goal.proto", fileDescriptor_target_cpa_opt_in_recommendation_goal_ca9ee4bf5aa58147) +} + +var fileDescriptor_target_cpa_opt_in_recommendation_goal_ca9ee4bf5aa58147 = []byte{ + // 323 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x91, 0xdf, 0x4a, 0xfb, 0x30, + 0x1c, 0xc5, 0x7f, 0xdd, 0x7e, 0xfe, 0xcb, 0x14, 0x4b, 0xf1, 0x76, 0xa0, 0x43, 0x6f, 0xd3, 0x82, + 0x97, 0x5e, 0x75, 0xb5, 0x8e, 0xa2, 0xb6, 0x65, 0xd9, 0x26, 0x48, 0xa1, 0xc4, 0x35, 0x84, 0x41, + 0x9b, 0x6f, 0x68, 0xb2, 0x3d, 0x81, 0x4f, 0xe2, 0xa5, 0xe0, 0x8b, 0xf8, 0x00, 0x3e, 0x8f, 0x34, + 0xdd, 0x06, 0x5e, 0xe8, 0x6e, 0xc2, 0xc9, 0x39, 0xc9, 0x27, 0xc9, 0x09, 0x8a, 0x38, 0x00, 0x2f, + 0x99, 0x4b, 0x0b, 0xe5, 0xb6, 0xb2, 0x51, 0x2b, 0xcf, 0x65, 0x62, 0x59, 0x29, 0x57, 0xd3, 0x9a, + 0x33, 0x9d, 0xcf, 0x25, 0xcd, 0x41, 0xea, 0x7c, 0x21, 0xf2, 0x9a, 0xcd, 0xa1, 0xaa, 0x98, 0x28, + 0xa8, 0x5e, 0x80, 0xc8, 0x39, 0xd0, 0x12, 0xcb, 0x1a, 0x34, 0x38, 0xfd, 0x76, 0x3f, 0xa6, 0x85, + 0xc2, 0x5b, 0x14, 0x5e, 0x79, 0xd8, 0xa0, 0x06, 0x1f, 0x16, 0xba, 0x9c, 0x18, 0x5c, 0x20, 0x69, + 0x22, 0x75, 0x24, 0xc6, 0x3f, 0x50, 0x23, 0xa0, 0x65, 0x28, 0x96, 0xd5, 0xe0, 0xd5, 0x42, 0xe7, + 0xbb, 0x16, 0x3a, 0xa7, 0xa8, 0x37, 0x8d, 0x49, 0x1a, 0x06, 0xd1, 0x5d, 0x14, 0xde, 0xda, 0xff, + 0x9c, 0x1e, 0x3a, 0x98, 0xc6, 0xf7, 0x71, 0xf2, 0x14, 0xdb, 0x96, 0x73, 0x82, 0x8e, 0x88, 0xff, + 0x18, 0xe6, 0x41, 0x42, 0x26, 0x76, 0xc7, 0x39, 0x43, 0xf6, 0x7a, 0x1a, 0xcf, 0xc2, 0x31, 0x89, + 0x92, 0x98, 0xd8, 0x5d, 0xe7, 0x18, 0x1d, 0xb6, 0x6e, 0xea, 0xdb, 0xff, 0x1b, 0x60, 0xf0, 0x90, + 0x90, 0x90, 0x4c, 0x8c, 0xb1, 0x37, 0xfc, 0xb2, 0xd0, 0xc5, 0x1c, 0x2a, 0xfc, 0xe7, 0xab, 0x86, + 0x57, 0xbb, 0x6e, 0x9a, 0x36, 0xdd, 0xa4, 0xd6, 0xf3, 0x70, 0xcd, 0xe1, 0x50, 0x52, 0xc1, 0x31, + 0xd4, 0xdc, 0xe5, 0x4c, 0x98, 0xe6, 0x36, 0xc5, 0xcb, 0x85, 0xfa, 0xe5, 0x1f, 0x6e, 0xcc, 0xf8, + 0xd6, 0xe9, 0x8e, 0x7c, 0xff, 0xbd, 0xd3, 0x1f, 0xb5, 0x28, 0xbf, 0x50, 0xb8, 0x95, 0x8d, 0x9a, + 0x79, 0xb8, 0xa9, 0x4f, 0x7d, 0x6e, 0xf2, 0xcc, 0x2f, 0x54, 0xb6, 0xcd, 0xb3, 0x99, 0x97, 0x99, + 0xfc, 0x65, 0xdf, 0x1c, 0x7a, 0xfd, 0x1d, 0x00, 0x00, 0xff, 0xff, 0xcb, 0xb8, 0x78, 0x0d, 0xfb, + 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/targeting_dimension.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/targeting_dimension.pb.go new file mode 100644 index 000000000..53ba2141b --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/targeting_dimension.pb.go @@ -0,0 +1,149 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/targeting_dimension.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible targeting dimensions. +type TargetingDimensionEnum_TargetingDimension int32 + +const ( + // Not specified. + TargetingDimensionEnum_UNSPECIFIED TargetingDimensionEnum_TargetingDimension = 0 + // Used for return value only. Represents value unknown in this version. + TargetingDimensionEnum_UNKNOWN TargetingDimensionEnum_TargetingDimension = 1 + // Keyword criteria, e.g. 'mars cruise'. KEYWORD may be used as a custom bid + // dimension. Keywords are always a targeting dimension, so may not be set + // as a target "ALL" dimension with TargetRestriction. + TargetingDimensionEnum_KEYWORD TargetingDimensionEnum_TargetingDimension = 2 + // Audience criteria, which include user list, user interest, custom + // affinity, and custom in market. + TargetingDimensionEnum_AUDIENCE TargetingDimensionEnum_TargetingDimension = 3 + // Topic criteria for targeting categories of content, e.g. + // 'category::Animals>Pets' Used for Display and Video targeting. + TargetingDimensionEnum_TOPIC TargetingDimensionEnum_TargetingDimension = 4 + // Criteria for targeting gender. + TargetingDimensionEnum_GENDER TargetingDimensionEnum_TargetingDimension = 5 + // Criteria for targeting age ranges. + TargetingDimensionEnum_AGE_RANGE TargetingDimensionEnum_TargetingDimension = 6 + // Placement criteria, which include websites like 'www.flowers4sale.com', + // as well as mobile applications, mobile app categories, YouTube videos, + // and YouTube channels. + TargetingDimensionEnum_PLACEMENT TargetingDimensionEnum_TargetingDimension = 7 + // Criteria for parental status targeting. + TargetingDimensionEnum_PARENTAL_STATUS TargetingDimensionEnum_TargetingDimension = 8 + // Criteria for income range targeting. + TargetingDimensionEnum_INCOME_RANGE TargetingDimensionEnum_TargetingDimension = 9 +) + +var TargetingDimensionEnum_TargetingDimension_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "KEYWORD", + 3: "AUDIENCE", + 4: "TOPIC", + 5: "GENDER", + 6: "AGE_RANGE", + 7: "PLACEMENT", + 8: "PARENTAL_STATUS", + 9: "INCOME_RANGE", +} +var TargetingDimensionEnum_TargetingDimension_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "KEYWORD": 2, + "AUDIENCE": 3, + "TOPIC": 4, + "GENDER": 5, + "AGE_RANGE": 6, + "PLACEMENT": 7, + "PARENTAL_STATUS": 8, + "INCOME_RANGE": 9, +} + +func (x TargetingDimensionEnum_TargetingDimension) String() string { + return proto.EnumName(TargetingDimensionEnum_TargetingDimension_name, int32(x)) +} +func (TargetingDimensionEnum_TargetingDimension) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_targeting_dimension_91506e51c2bbdcdf, []int{0, 0} +} + +// The dimensions that can be targeted. +type TargetingDimensionEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TargetingDimensionEnum) Reset() { *m = TargetingDimensionEnum{} } +func (m *TargetingDimensionEnum) String() string { return proto.CompactTextString(m) } +func (*TargetingDimensionEnum) ProtoMessage() {} +func (*TargetingDimensionEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_targeting_dimension_91506e51c2bbdcdf, []int{0} +} +func (m *TargetingDimensionEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TargetingDimensionEnum.Unmarshal(m, b) +} +func (m *TargetingDimensionEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TargetingDimensionEnum.Marshal(b, m, deterministic) +} +func (dst *TargetingDimensionEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_TargetingDimensionEnum.Merge(dst, src) +} +func (m *TargetingDimensionEnum) XXX_Size() int { + return xxx_messageInfo_TargetingDimensionEnum.Size(m) +} +func (m *TargetingDimensionEnum) XXX_DiscardUnknown() { + xxx_messageInfo_TargetingDimensionEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_TargetingDimensionEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*TargetingDimensionEnum)(nil), "google.ads.googleads.v0.enums.TargetingDimensionEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.TargetingDimensionEnum_TargetingDimension", TargetingDimensionEnum_TargetingDimension_name, TargetingDimensionEnum_TargetingDimension_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/targeting_dimension.proto", fileDescriptor_targeting_dimension_91506e51c2bbdcdf) +} + +var fileDescriptor_targeting_dimension_91506e51c2bbdcdf = []byte{ + // 339 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0x4f, 0x6b, 0xf2, 0x30, + 0x1c, 0xc7, 0x9f, 0xea, 0xe3, 0xbf, 0xe8, 0x30, 0x64, 0xb0, 0x9d, 0x3c, 0xcc, 0x17, 0x90, 0x16, + 0x76, 0xd8, 0x61, 0xa7, 0xd8, 0x66, 0xa5, 0xa8, 0x69, 0xa9, 0xad, 0xb2, 0x51, 0x90, 0x6e, 0x2d, + 0xa1, 0x60, 0x13, 0x31, 0xea, 0x0b, 0xda, 0x6d, 0x7b, 0x1d, 0x3b, 0x8c, 0xbd, 0xaa, 0xd1, 0x76, + 0xf5, 0x22, 0xdb, 0x25, 0x7c, 0x7f, 0x7c, 0xf3, 0x49, 0xf8, 0x7d, 0xc0, 0x1d, 0x97, 0x92, 0x6f, + 0x52, 0x3d, 0x4e, 0x94, 0x5e, 0xc5, 0x22, 0x1d, 0x0d, 0x3d, 0x15, 0x87, 0x5c, 0xe9, 0xfb, 0x78, + 0xc7, 0xd3, 0x7d, 0x26, 0xf8, 0x3a, 0xc9, 0xf2, 0x54, 0xa8, 0x4c, 0x0a, 0xbc, 0xdd, 0xc9, 0xbd, + 0x44, 0xa3, 0xea, 0x36, 0x8e, 0x13, 0x85, 0x4f, 0x20, 0x3e, 0x1a, 0xb8, 0x04, 0xc7, 0x1f, 0x1a, + 0xb8, 0x0a, 0x6a, 0xd8, 0xaa, 0x59, 0x2a, 0x0e, 0xf9, 0xf8, 0x4d, 0x03, 0xe8, 0xbc, 0x42, 0x43, + 0xd0, 0x0f, 0xd9, 0xc2, 0xa3, 0xa6, 0xf3, 0xe0, 0x50, 0x0b, 0xfe, 0x43, 0x7d, 0xd0, 0x09, 0xd9, + 0x94, 0xb9, 0x2b, 0x06, 0xb5, 0x62, 0x98, 0xd2, 0xc7, 0x95, 0xeb, 0x5b, 0xb0, 0x81, 0x06, 0xa0, + 0x4b, 0x42, 0xcb, 0xa1, 0xcc, 0xa4, 0xb0, 0x89, 0x7a, 0xa0, 0x15, 0xb8, 0x9e, 0x63, 0xc2, 0xff, + 0x08, 0x80, 0xb6, 0x4d, 0x99, 0x45, 0x7d, 0xd8, 0x42, 0x17, 0xa0, 0x47, 0x6c, 0xba, 0xf6, 0x09, + 0xb3, 0x29, 0x6c, 0x17, 0xa3, 0x37, 0x23, 0x26, 0x9d, 0x53, 0x16, 0xc0, 0x0e, 0xba, 0x04, 0x43, + 0x8f, 0xf8, 0x94, 0x05, 0x64, 0xb6, 0x5e, 0x04, 0x24, 0x08, 0x17, 0xb0, 0x8b, 0x20, 0x18, 0x38, + 0xcc, 0x74, 0xe7, 0x35, 0xd5, 0x9b, 0x7c, 0x6a, 0xe0, 0xe6, 0x45, 0xe6, 0xf8, 0xcf, 0x65, 0x27, + 0xd7, 0xe7, 0xeb, 0x78, 0x85, 0x24, 0x4f, 0x7b, 0x9a, 0xfc, 0x90, 0x5c, 0x6e, 0x62, 0xc1, 0xb1, + 0xdc, 0x71, 0x9d, 0xa7, 0xa2, 0x54, 0x58, 0xfb, 0xde, 0x66, 0xea, 0x17, 0xfd, 0xf7, 0xe5, 0xf9, + 0xda, 0x68, 0xda, 0x84, 0xbc, 0x37, 0x46, 0x76, 0xf5, 0x14, 0x49, 0x14, 0xae, 0x62, 0x91, 0x96, + 0x06, 0x2e, 0xac, 0xaa, 0xaf, 0xba, 0x8f, 0x48, 0xa2, 0xa2, 0x53, 0x1f, 0x2d, 0x8d, 0xa8, 0xec, + 0x9f, 0xdb, 0xe5, 0xa7, 0xb7, 0xdf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x09, 0x9d, 0xce, 0xbf, 0xf2, + 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/time_type.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/time_type.pb.go new file mode 100644 index 000000000..0c59e7902 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/time_type.pb.go @@ -0,0 +1,114 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/time_type.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// The possible time types used by certain resources as an alternative to +// absolute timestamps. +type TimeTypeEnum_TimeType int32 + +const ( + // Not specified. + TimeTypeEnum_UNSPECIFIED TimeTypeEnum_TimeType = 0 + // Used for return value only. Represents value unknown in this version. + TimeTypeEnum_UNKNOWN TimeTypeEnum_TimeType = 1 + // As soon as possible. + TimeTypeEnum_NOW TimeTypeEnum_TimeType = 2 + // An infinite point in the future. + TimeTypeEnum_FOREVER TimeTypeEnum_TimeType = 3 +) + +var TimeTypeEnum_TimeType_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "NOW", + 3: "FOREVER", +} +var TimeTypeEnum_TimeType_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "NOW": 2, + "FOREVER": 3, +} + +func (x TimeTypeEnum_TimeType) String() string { + return proto.EnumName(TimeTypeEnum_TimeType_name, int32(x)) +} +func (TimeTypeEnum_TimeType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_time_type_5fcdbdb55d070640, []int{0, 0} +} + +// Message describing time types. +type TimeTypeEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TimeTypeEnum) Reset() { *m = TimeTypeEnum{} } +func (m *TimeTypeEnum) String() string { return proto.CompactTextString(m) } +func (*TimeTypeEnum) ProtoMessage() {} +func (*TimeTypeEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_time_type_5fcdbdb55d070640, []int{0} +} +func (m *TimeTypeEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TimeTypeEnum.Unmarshal(m, b) +} +func (m *TimeTypeEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TimeTypeEnum.Marshal(b, m, deterministic) +} +func (dst *TimeTypeEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_TimeTypeEnum.Merge(dst, src) +} +func (m *TimeTypeEnum) XXX_Size() int { + return xxx_messageInfo_TimeTypeEnum.Size(m) +} +func (m *TimeTypeEnum) XXX_DiscardUnknown() { + xxx_messageInfo_TimeTypeEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_TimeTypeEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*TimeTypeEnum)(nil), "google.ads.googleads.v0.enums.TimeTypeEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.TimeTypeEnum_TimeType", TimeTypeEnum_TimeType_name, TimeTypeEnum_TimeType_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/time_type.proto", fileDescriptor_time_type_5fcdbdb55d070640) +} + +var fileDescriptor_time_type_5fcdbdb55d070640 = []byte{ + // 252 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xd2, 0x4d, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xbc, + 0xd2, 0xdc, 0x62, 0xfd, 0x92, 0xcc, 0xdc, 0xd4, 0xf8, 0x92, 0xca, 0x82, 0x54, 0xbd, 0x82, 0xa2, + 0xfc, 0x92, 0x7c, 0x21, 0x59, 0x88, 0x1a, 0xbd, 0xc4, 0x94, 0x62, 0x3d, 0xb8, 0x72, 0xbd, 0x32, + 0x03, 0x3d, 0xb0, 0x72, 0x25, 0x3f, 0x2e, 0x9e, 0x90, 0xcc, 0xdc, 0xd4, 0x90, 0xca, 0x82, 0x54, + 0xd7, 0xbc, 0xd2, 0x5c, 0x25, 0x3b, 0x2e, 0x0e, 0x18, 0x5f, 0x88, 0x9f, 0x8b, 0x3b, 0xd4, 0x2f, + 0x38, 0xc0, 0xd5, 0xd9, 0xd3, 0xcd, 0xd3, 0xd5, 0x45, 0x80, 0x41, 0x88, 0x9b, 0x8b, 0x3d, 0xd4, + 0xcf, 0xdb, 0xcf, 0x3f, 0xdc, 0x4f, 0x80, 0x51, 0x88, 0x9d, 0x8b, 0xd9, 0xcf, 0x3f, 0x5c, 0x80, + 0x09, 0x24, 0xea, 0xe6, 0x1f, 0xe4, 0x1a, 0xe6, 0x1a, 0x24, 0xc0, 0xec, 0xb4, 0x8f, 0x91, 0x4b, + 0x31, 0x39, 0x3f, 0x57, 0x0f, 0xaf, 0xad, 0x4e, 0xbc, 0x30, 0x3b, 0x02, 0x40, 0x6e, 0x0c, 0x60, + 0x8c, 0x72, 0x82, 0xaa, 0x4f, 0xcf, 0xcf, 0x49, 0xcc, 0x4b, 0xd7, 0xcb, 0x2f, 0x4a, 0xd7, 0x4f, + 0x4f, 0xcd, 0x03, 0xfb, 0x00, 0xe6, 0xc9, 0x82, 0xcc, 0x62, 0x1c, 0x7e, 0xb6, 0x06, 0x93, 0x8b, + 0x98, 0x98, 0xdd, 0x1d, 0x1d, 0x57, 0x31, 0xc9, 0xba, 0x43, 0x8c, 0x72, 0x4c, 0x29, 0xd6, 0x83, + 0x30, 0x41, 0xac, 0x30, 0x03, 0x3d, 0x90, 0xff, 0x8a, 0x4f, 0xc1, 0xe4, 0x63, 0x1c, 0x53, 0x8a, + 0x63, 0xe0, 0xf2, 0x31, 0x61, 0x06, 0x31, 0x60, 0xf9, 0x24, 0x36, 0xb0, 0xa5, 0xc6, 0x80, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xb3, 0xaf, 0x4d, 0x2b, 0x67, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/tracking_code_page_format.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/tracking_code_page_format.pb.go new file mode 100644 index 000000000..3318cc3bc --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/tracking_code_page_format.pb.go @@ -0,0 +1,117 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/tracking_code_page_format.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// The format of the web page where the tracking tag and snippet will be +// installed. +type TrackingCodePageFormatEnum_TrackingCodePageFormat int32 + +const ( + // Not specified. + TrackingCodePageFormatEnum_UNSPECIFIED TrackingCodePageFormatEnum_TrackingCodePageFormat = 0 + // Used for return value only. Represents value unknown in this version. + TrackingCodePageFormatEnum_UNKNOWN TrackingCodePageFormatEnum_TrackingCodePageFormat = 1 + // Standard HTML page format. + TrackingCodePageFormatEnum_HTML TrackingCodePageFormatEnum_TrackingCodePageFormat = 2 + // Google AMP page format. + TrackingCodePageFormatEnum_AMP TrackingCodePageFormatEnum_TrackingCodePageFormat = 3 +) + +var TrackingCodePageFormatEnum_TrackingCodePageFormat_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "HTML", + 3: "AMP", +} +var TrackingCodePageFormatEnum_TrackingCodePageFormat_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "HTML": 2, + "AMP": 3, +} + +func (x TrackingCodePageFormatEnum_TrackingCodePageFormat) String() string { + return proto.EnumName(TrackingCodePageFormatEnum_TrackingCodePageFormat_name, int32(x)) +} +func (TrackingCodePageFormatEnum_TrackingCodePageFormat) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_tracking_code_page_format_dedd59df73042aa1, []int{0, 0} +} + +// Container for enum describing the format of the web page where the tracking +// tag and snippet will be installed. +type TrackingCodePageFormatEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TrackingCodePageFormatEnum) Reset() { *m = TrackingCodePageFormatEnum{} } +func (m *TrackingCodePageFormatEnum) String() string { return proto.CompactTextString(m) } +func (*TrackingCodePageFormatEnum) ProtoMessage() {} +func (*TrackingCodePageFormatEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_tracking_code_page_format_dedd59df73042aa1, []int{0} +} +func (m *TrackingCodePageFormatEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TrackingCodePageFormatEnum.Unmarshal(m, b) +} +func (m *TrackingCodePageFormatEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TrackingCodePageFormatEnum.Marshal(b, m, deterministic) +} +func (dst *TrackingCodePageFormatEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_TrackingCodePageFormatEnum.Merge(dst, src) +} +func (m *TrackingCodePageFormatEnum) XXX_Size() int { + return xxx_messageInfo_TrackingCodePageFormatEnum.Size(m) +} +func (m *TrackingCodePageFormatEnum) XXX_DiscardUnknown() { + xxx_messageInfo_TrackingCodePageFormatEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_TrackingCodePageFormatEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*TrackingCodePageFormatEnum)(nil), "google.ads.googleads.v0.enums.TrackingCodePageFormatEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.TrackingCodePageFormatEnum_TrackingCodePageFormat", TrackingCodePageFormatEnum_TrackingCodePageFormat_name, TrackingCodePageFormatEnum_TrackingCodePageFormat_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/tracking_code_page_format.proto", fileDescriptor_tracking_code_page_format_dedd59df73042aa1) +} + +var fileDescriptor_tracking_code_page_format_dedd59df73042aa1 = []byte{ + // 274 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x4d, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xbc, + 0xd2, 0xdc, 0x62, 0xfd, 0x92, 0xa2, 0xc4, 0xe4, 0xec, 0xcc, 0xbc, 0xf4, 0xf8, 0xe4, 0xfc, 0x94, + 0xd4, 0xf8, 0x82, 0xc4, 0xf4, 0xd4, 0xf8, 0xb4, 0xfc, 0xa2, 0xdc, 0xc4, 0x12, 0xbd, 0x82, 0xa2, + 0xfc, 0x92, 0x7c, 0x21, 0x59, 0x88, 0x1e, 0xbd, 0xc4, 0x94, 0x62, 0x3d, 0xb8, 0x76, 0xbd, 0x32, + 0x03, 0x3d, 0xb0, 0x76, 0xa5, 0x74, 0x2e, 0xa9, 0x10, 0xa8, 0x09, 0xce, 0xf9, 0x29, 0xa9, 0x01, + 0x89, 0xe9, 0xa9, 0x6e, 0x60, 0xed, 0xae, 0x79, 0xa5, 0xb9, 0x4a, 0x9e, 0x5c, 0x62, 0xd8, 0x65, + 0x85, 0xf8, 0xb9, 0xb8, 0x43, 0xfd, 0x82, 0x03, 0x5c, 0x9d, 0x3d, 0xdd, 0x3c, 0x5d, 0x5d, 0x04, + 0x18, 0x84, 0xb8, 0xb9, 0xd8, 0x43, 0xfd, 0xbc, 0xfd, 0xfc, 0xc3, 0xfd, 0x04, 0x18, 0x85, 0x38, + 0xb8, 0x58, 0x3c, 0x42, 0x7c, 0x7d, 0x04, 0x98, 0x84, 0xd8, 0xb9, 0x98, 0x1d, 0x7d, 0x03, 0x04, + 0x98, 0x9d, 0xce, 0x30, 0x72, 0x29, 0x26, 0xe7, 0xe7, 0xea, 0xe1, 0x75, 0x8e, 0x93, 0x34, 0x76, + 0xeb, 0x02, 0x40, 0x5e, 0x09, 0x60, 0x8c, 0x72, 0x82, 0xea, 0x4e, 0xcf, 0xcf, 0x49, 0xcc, 0x4b, + 0xd7, 0xcb, 0x2f, 0x4a, 0xd7, 0x4f, 0x4f, 0xcd, 0x03, 0x7b, 0x14, 0x16, 0x36, 0x05, 0x99, 0xc5, + 0x38, 0x82, 0xca, 0x1a, 0x4c, 0x2e, 0x62, 0x62, 0x76, 0x77, 0x74, 0x5c, 0xc5, 0x24, 0xeb, 0x0e, + 0x31, 0xca, 0x31, 0xa5, 0x58, 0x0f, 0xc2, 0x04, 0xb1, 0xc2, 0x0c, 0xf4, 0x40, 0x1e, 0x2f, 0x3e, + 0x05, 0x93, 0x8f, 0x71, 0x4c, 0x29, 0x8e, 0x81, 0xcb, 0xc7, 0x84, 0x19, 0xc4, 0x80, 0xe5, 0x93, + 0xd8, 0xc0, 0x96, 0x1a, 0x03, 0x02, 0x00, 0x00, 0xff, 0xff, 0xd0, 0x49, 0x08, 0x44, 0x9e, 0x01, + 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/tracking_code_type.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/tracking_code_type.pb.go new file mode 100644 index 000000000..3d50aee66 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/tracking_code_type.pb.go @@ -0,0 +1,123 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/tracking_code_type.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// The type of the generated tag snippets for tracking conversions. +type TrackingCodeTypeEnum_TrackingCodeType int32 + +const ( + // Not specified. + TrackingCodeTypeEnum_UNSPECIFIED TrackingCodeTypeEnum_TrackingCodeType = 0 + // Used for return value only. Represents value unknown in this version. + TrackingCodeTypeEnum_UNKNOWN TrackingCodeTypeEnum_TrackingCodeType = 1 + // The snippet that is fired as a result of a website page loading. + TrackingCodeTypeEnum_WEBPAGE TrackingCodeTypeEnum_TrackingCodeType = 2 + // The snippet contains a JavaScript function which fires the tag. This + // function is typically called from an onClick handler added to a link or + // button element on the page. + TrackingCodeTypeEnum_WEBPAGE_ONCLICK TrackingCodeTypeEnum_TrackingCodeType = 3 + // For embedding on a mobile webpage. The snippet contains a JavaScript + // function which fires the tag. + TrackingCodeTypeEnum_CLICK_TO_CALL TrackingCodeTypeEnum_TrackingCodeType = 4 +) + +var TrackingCodeTypeEnum_TrackingCodeType_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "WEBPAGE", + 3: "WEBPAGE_ONCLICK", + 4: "CLICK_TO_CALL", +} +var TrackingCodeTypeEnum_TrackingCodeType_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "WEBPAGE": 2, + "WEBPAGE_ONCLICK": 3, + "CLICK_TO_CALL": 4, +} + +func (x TrackingCodeTypeEnum_TrackingCodeType) String() string { + return proto.EnumName(TrackingCodeTypeEnum_TrackingCodeType_name, int32(x)) +} +func (TrackingCodeTypeEnum_TrackingCodeType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_tracking_code_type_637cc16341c8b183, []int{0, 0} +} + +// Container for enum describing the type of the generated tag snippets for +// tracking conversions. +type TrackingCodeTypeEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TrackingCodeTypeEnum) Reset() { *m = TrackingCodeTypeEnum{} } +func (m *TrackingCodeTypeEnum) String() string { return proto.CompactTextString(m) } +func (*TrackingCodeTypeEnum) ProtoMessage() {} +func (*TrackingCodeTypeEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_tracking_code_type_637cc16341c8b183, []int{0} +} +func (m *TrackingCodeTypeEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TrackingCodeTypeEnum.Unmarshal(m, b) +} +func (m *TrackingCodeTypeEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TrackingCodeTypeEnum.Marshal(b, m, deterministic) +} +func (dst *TrackingCodeTypeEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_TrackingCodeTypeEnum.Merge(dst, src) +} +func (m *TrackingCodeTypeEnum) XXX_Size() int { + return xxx_messageInfo_TrackingCodeTypeEnum.Size(m) +} +func (m *TrackingCodeTypeEnum) XXX_DiscardUnknown() { + xxx_messageInfo_TrackingCodeTypeEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_TrackingCodeTypeEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*TrackingCodeTypeEnum)(nil), "google.ads.googleads.v0.enums.TrackingCodeTypeEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.TrackingCodeTypeEnum_TrackingCodeType", TrackingCodeTypeEnum_TrackingCodeType_name, TrackingCodeTypeEnum_TrackingCodeType_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/tracking_code_type.proto", fileDescriptor_tracking_code_type_637cc16341c8b183) +} + +var fileDescriptor_tracking_code_type_637cc16341c8b183 = []byte{ + // 287 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x32, 0x4b, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xbc, + 0xd2, 0xdc, 0x62, 0xfd, 0x92, 0xa2, 0xc4, 0xe4, 0xec, 0xcc, 0xbc, 0xf4, 0xf8, 0xe4, 0xfc, 0x94, + 0xd4, 0xf8, 0x92, 0xca, 0x82, 0x54, 0xbd, 0x82, 0xa2, 0xfc, 0x92, 0x7c, 0x21, 0x59, 0x88, 0x62, + 0xbd, 0xc4, 0x94, 0x62, 0x3d, 0xb8, 0x3e, 0xbd, 0x32, 0x03, 0x3d, 0xb0, 0x3e, 0xa5, 0x5a, 0x2e, + 0x91, 0x10, 0xa8, 0x56, 0xe7, 0xfc, 0x94, 0xd4, 0x90, 0xca, 0x82, 0x54, 0xd7, 0xbc, 0xd2, 0x5c, + 0xa5, 0x54, 0x2e, 0x01, 0x74, 0x71, 0x21, 0x7e, 0x2e, 0xee, 0x50, 0xbf, 0xe0, 0x00, 0x57, 0x67, + 0x4f, 0x37, 0x4f, 0x57, 0x17, 0x01, 0x06, 0x21, 0x6e, 0x2e, 0xf6, 0x50, 0x3f, 0x6f, 0x3f, 0xff, + 0x70, 0x3f, 0x01, 0x46, 0x10, 0x27, 0xdc, 0xd5, 0x29, 0xc0, 0xd1, 0xdd, 0x55, 0x80, 0x49, 0x48, + 0x98, 0x8b, 0x1f, 0xca, 0x89, 0xf7, 0xf7, 0x73, 0xf6, 0xf1, 0x74, 0xf6, 0x16, 0x60, 0x16, 0x12, + 0xe4, 0xe2, 0x05, 0x33, 0xe3, 0x43, 0xfc, 0xe3, 0x9d, 0x1d, 0x7d, 0x7c, 0x04, 0x58, 0x9c, 0x8e, + 0x31, 0x72, 0x29, 0x26, 0xe7, 0xe7, 0xea, 0xe1, 0x75, 0xa4, 0x93, 0x28, 0xba, 0x53, 0x02, 0x40, + 0x5e, 0x0b, 0x60, 0x8c, 0x72, 0x82, 0xea, 0x4b, 0xcf, 0xcf, 0x49, 0xcc, 0x4b, 0xd7, 0xcb, 0x2f, + 0x4a, 0xd7, 0x4f, 0x4f, 0xcd, 0x03, 0x7b, 0x1c, 0x16, 0x48, 0x05, 0x99, 0xc5, 0x38, 0xc2, 0xcc, + 0x1a, 0x4c, 0x2e, 0x62, 0x62, 0x76, 0x77, 0x74, 0x5c, 0xc5, 0x24, 0xeb, 0x0e, 0x31, 0xca, 0x31, + 0xa5, 0x58, 0x0f, 0xc2, 0x04, 0xb1, 0xc2, 0x0c, 0xf4, 0x40, 0xc1, 0x51, 0x7c, 0x0a, 0x26, 0x1f, + 0xe3, 0x98, 0x52, 0x1c, 0x03, 0x97, 0x8f, 0x09, 0x33, 0x88, 0x01, 0xcb, 0x27, 0xb1, 0x81, 0x2d, + 0x35, 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, 0xf7, 0x3a, 0x69, 0xa9, 0xa7, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/travel_placeholder_field.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/travel_placeholder_field.pb.go new file mode 100644 index 000000000..b226f88f2 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/travel_placeholder_field.pb.go @@ -0,0 +1,224 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/travel_placeholder_field.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Possible values for Travel placeholder fields. +type TravelPlaceholderFieldEnum_TravelPlaceholderField int32 + +const ( + // Not specified. + TravelPlaceholderFieldEnum_UNSPECIFIED TravelPlaceholderFieldEnum_TravelPlaceholderField = 0 + // Used for return value only. Represents value unknown in this version. + TravelPlaceholderFieldEnum_UNKNOWN TravelPlaceholderFieldEnum_TravelPlaceholderField = 1 + // Data Type: STRING. Required. Destination id. Example: PAR, LON. + // For feed items that only have destination id, destination id must be a + // unique key. For feed items that have both destination id and origin id, + // then the combination must be a unique key. + TravelPlaceholderFieldEnum_DESTINATION_ID TravelPlaceholderFieldEnum_TravelPlaceholderField = 2 + // Data Type: STRING. Origin id. Example: PAR, LON. + // Combination of DESTINATION_ID and ORIGIN_ID must be + // unique per offer. + TravelPlaceholderFieldEnum_ORIGIN_ID TravelPlaceholderFieldEnum_TravelPlaceholderField = 3 + // Data Type: STRING. Required. Main headline with name to be shown in + // dynamic ad. + TravelPlaceholderFieldEnum_TITLE TravelPlaceholderFieldEnum_TravelPlaceholderField = 4 + // Data Type: STRING. The destination name. Shorter names are recommended. + TravelPlaceholderFieldEnum_DESTINATION_NAME TravelPlaceholderFieldEnum_TravelPlaceholderField = 5 + // Data Type: STRING. Origin name. Shorter names are recommended. + TravelPlaceholderFieldEnum_ORIGIN_NAME TravelPlaceholderFieldEnum_TravelPlaceholderField = 6 + // Data Type: STRING. Price to be shown in the ad. Highly recommended for + // dynamic ads. + // Example: "100.00 USD" + TravelPlaceholderFieldEnum_PRICE TravelPlaceholderFieldEnum_TravelPlaceholderField = 7 + // Data Type: STRING. Formatted price to be shown in the ad. + // Example: "Starting at $100.00 USD", "$80 - $100" + TravelPlaceholderFieldEnum_FORMATTED_PRICE TravelPlaceholderFieldEnum_TravelPlaceholderField = 8 + // Data Type: STRING. Sale price to be shown in the ad. + // Example: "80.00 USD" + TravelPlaceholderFieldEnum_SALE_PRICE TravelPlaceholderFieldEnum_TravelPlaceholderField = 9 + // Data Type: STRING. Formatted sale price to be shown in the ad. + // Example: "On sale for $80.00", "$60 - $80" + TravelPlaceholderFieldEnum_FORMATTED_SALE_PRICE TravelPlaceholderFieldEnum_TravelPlaceholderField = 10 + // Data Type: URL. Image to be displayed in the ad. + TravelPlaceholderFieldEnum_IMAGE_URL TravelPlaceholderFieldEnum_TravelPlaceholderField = 11 + // Data Type: STRING. Category of travel offer used to group like items + // together for recommendation engine. + TravelPlaceholderFieldEnum_CATEGORY TravelPlaceholderFieldEnum_TravelPlaceholderField = 12 + // Data Type: STRING_LIST. Keywords used for product retrieval. + TravelPlaceholderFieldEnum_CONTEXTUAL_KEYWORDS TravelPlaceholderFieldEnum_TravelPlaceholderField = 13 + // Data Type: STRING. Address of travel offer, including postal code. + TravelPlaceholderFieldEnum_DESTINATION_ADDRESS TravelPlaceholderFieldEnum_TravelPlaceholderField = 14 + // Data Type: URL_LIST. Required. Final URLs to be used in ad, when using + // Upgraded URLs; the more specific the better (e.g. the individual URL of a + // specific travel offer and its location). + TravelPlaceholderFieldEnum_FINAL_URL TravelPlaceholderFieldEnum_TravelPlaceholderField = 15 + // Data Type: URL_LIST. Final mobile URLs for the ad when using Upgraded + // URLs. + TravelPlaceholderFieldEnum_FINAL_MOBILE_URLS TravelPlaceholderFieldEnum_TravelPlaceholderField = 16 + // Data Type: URL. Tracking template for the ad when using Upgraded URLs. + TravelPlaceholderFieldEnum_TRACKING_URL TravelPlaceholderFieldEnum_TravelPlaceholderField = 17 + // Data Type: STRING. Android app link. Must be formatted as: + // android-app://{package_id}/{scheme}/{host_path}. + // The components are defined as follows: + // package_id: app ID as specified in Google Play. + // scheme: the scheme to pass to the application. Can be HTTP, or a custom + // scheme. + // host_path: identifies the specific content within your application. + TravelPlaceholderFieldEnum_ANDROID_APP_LINK TravelPlaceholderFieldEnum_TravelPlaceholderField = 18 + // Data Type: STRING_LIST. List of recommended destination IDs to show + // together with this item. + TravelPlaceholderFieldEnum_SIMILAR_DESTINATION_IDS TravelPlaceholderFieldEnum_TravelPlaceholderField = 19 + // Data Type: STRING. iOS app link. + TravelPlaceholderFieldEnum_IOS_APP_LINK TravelPlaceholderFieldEnum_TravelPlaceholderField = 20 + // Data Type: INT64. iOS app store ID. + TravelPlaceholderFieldEnum_IOS_APP_STORE_ID TravelPlaceholderFieldEnum_TravelPlaceholderField = 21 +) + +var TravelPlaceholderFieldEnum_TravelPlaceholderField_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "DESTINATION_ID", + 3: "ORIGIN_ID", + 4: "TITLE", + 5: "DESTINATION_NAME", + 6: "ORIGIN_NAME", + 7: "PRICE", + 8: "FORMATTED_PRICE", + 9: "SALE_PRICE", + 10: "FORMATTED_SALE_PRICE", + 11: "IMAGE_URL", + 12: "CATEGORY", + 13: "CONTEXTUAL_KEYWORDS", + 14: "DESTINATION_ADDRESS", + 15: "FINAL_URL", + 16: "FINAL_MOBILE_URLS", + 17: "TRACKING_URL", + 18: "ANDROID_APP_LINK", + 19: "SIMILAR_DESTINATION_IDS", + 20: "IOS_APP_LINK", + 21: "IOS_APP_STORE_ID", +} +var TravelPlaceholderFieldEnum_TravelPlaceholderField_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "DESTINATION_ID": 2, + "ORIGIN_ID": 3, + "TITLE": 4, + "DESTINATION_NAME": 5, + "ORIGIN_NAME": 6, + "PRICE": 7, + "FORMATTED_PRICE": 8, + "SALE_PRICE": 9, + "FORMATTED_SALE_PRICE": 10, + "IMAGE_URL": 11, + "CATEGORY": 12, + "CONTEXTUAL_KEYWORDS": 13, + "DESTINATION_ADDRESS": 14, + "FINAL_URL": 15, + "FINAL_MOBILE_URLS": 16, + "TRACKING_URL": 17, + "ANDROID_APP_LINK": 18, + "SIMILAR_DESTINATION_IDS": 19, + "IOS_APP_LINK": 20, + "IOS_APP_STORE_ID": 21, +} + +func (x TravelPlaceholderFieldEnum_TravelPlaceholderField) String() string { + return proto.EnumName(TravelPlaceholderFieldEnum_TravelPlaceholderField_name, int32(x)) +} +func (TravelPlaceholderFieldEnum_TravelPlaceholderField) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_travel_placeholder_field_dcb19d408bed3d7c, []int{0, 0} +} + +// Values for Travel placeholder fields. +// For more information about dynamic remarketing feeds, see +// https://support.google.com/google-ads/answer/6053288. +type TravelPlaceholderFieldEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TravelPlaceholderFieldEnum) Reset() { *m = TravelPlaceholderFieldEnum{} } +func (m *TravelPlaceholderFieldEnum) String() string { return proto.CompactTextString(m) } +func (*TravelPlaceholderFieldEnum) ProtoMessage() {} +func (*TravelPlaceholderFieldEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_travel_placeholder_field_dcb19d408bed3d7c, []int{0} +} +func (m *TravelPlaceholderFieldEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TravelPlaceholderFieldEnum.Unmarshal(m, b) +} +func (m *TravelPlaceholderFieldEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TravelPlaceholderFieldEnum.Marshal(b, m, deterministic) +} +func (dst *TravelPlaceholderFieldEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_TravelPlaceholderFieldEnum.Merge(dst, src) +} +func (m *TravelPlaceholderFieldEnum) XXX_Size() int { + return xxx_messageInfo_TravelPlaceholderFieldEnum.Size(m) +} +func (m *TravelPlaceholderFieldEnum) XXX_DiscardUnknown() { + xxx_messageInfo_TravelPlaceholderFieldEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_TravelPlaceholderFieldEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*TravelPlaceholderFieldEnum)(nil), "google.ads.googleads.v0.enums.TravelPlaceholderFieldEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.TravelPlaceholderFieldEnum_TravelPlaceholderField", TravelPlaceholderFieldEnum_TravelPlaceholderField_name, TravelPlaceholderFieldEnum_TravelPlaceholderField_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/travel_placeholder_field.proto", fileDescriptor_travel_placeholder_field_dcb19d408bed3d7c) +} + +var fileDescriptor_travel_placeholder_field_dcb19d408bed3d7c = []byte{ + // 484 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x52, 0xdd, 0x6e, 0xda, 0x30, + 0x14, 0x1e, 0xb0, 0xfe, 0x70, 0xa0, 0xe0, 0x1a, 0xba, 0x4e, 0xab, 0x7a, 0xb1, 0x3e, 0x40, 0x40, + 0xda, 0xe5, 0x76, 0x63, 0x88, 0x89, 0x2c, 0x82, 0x1d, 0xd9, 0xa6, 0x5d, 0x27, 0xa4, 0x28, 0x6b, + 0xb2, 0xac, 0x52, 0x20, 0x88, 0xb4, 0x3c, 0xd0, 0x2e, 0xf7, 0x02, 0x7b, 0x87, 0x69, 0xd7, 0x7b, + 0x9e, 0xc9, 0x0e, 0x14, 0x26, 0x75, 0xbb, 0x89, 0xce, 0x39, 0xdf, 0xcf, 0x71, 0xec, 0x0f, 0x3e, + 0xa4, 0x79, 0x9e, 0x66, 0x49, 0x2f, 0x8a, 0x8b, 0x5e, 0x59, 0x9a, 0x6a, 0xdd, 0xef, 0x25, 0x8b, + 0xc7, 0x79, 0xd1, 0x7b, 0x58, 0x45, 0xeb, 0x24, 0x0b, 0x97, 0x59, 0x74, 0x97, 0x7c, 0xcd, 0xb3, + 0x38, 0x59, 0x85, 0x5f, 0xee, 0x93, 0x2c, 0x76, 0x96, 0xab, 0xfc, 0x21, 0xc7, 0x97, 0xa5, 0xc4, + 0x89, 0xe2, 0xc2, 0x79, 0x52, 0x3b, 0xeb, 0xbe, 0x63, 0xd5, 0x57, 0xbf, 0x6b, 0xf0, 0x46, 0x5b, + 0x87, 0x60, 0x67, 0x30, 0x32, 0x7a, 0xba, 0x78, 0x9c, 0x5f, 0xfd, 0xa8, 0xc1, 0xab, 0xe7, 0x61, + 0xdc, 0x86, 0xc6, 0x94, 0xab, 0x80, 0x0e, 0xd9, 0x88, 0x51, 0x17, 0xbd, 0xc0, 0x0d, 0x38, 0x9a, + 0xf2, 0x31, 0x17, 0x37, 0x1c, 0x55, 0x30, 0x86, 0x96, 0x4b, 0x95, 0x66, 0x9c, 0x68, 0x26, 0x78, + 0xc8, 0x5c, 0x54, 0xc5, 0x27, 0x50, 0x17, 0x92, 0x79, 0xcc, 0xb6, 0x35, 0x5c, 0x87, 0x03, 0xcd, + 0xb4, 0x4f, 0xd1, 0x4b, 0xdc, 0x05, 0xb4, 0xcf, 0xe6, 0x64, 0x42, 0xd1, 0x81, 0xd9, 0xb0, 0xe1, + 0xdb, 0xc1, 0xa1, 0x51, 0x04, 0x92, 0x0d, 0x29, 0x3a, 0xc2, 0x1d, 0x68, 0x8f, 0x84, 0x9c, 0x10, + 0xad, 0xa9, 0x1b, 0x96, 0xc3, 0x63, 0xdc, 0x02, 0x50, 0xc4, 0xa7, 0x9b, 0xbe, 0x8e, 0x5f, 0x43, + 0x77, 0x47, 0xda, 0x43, 0xc0, 0x1c, 0x85, 0x4d, 0x88, 0x47, 0xc3, 0xa9, 0xf4, 0x51, 0x03, 0x37, + 0xe1, 0x78, 0x48, 0x34, 0xf5, 0x84, 0xbc, 0x45, 0x4d, 0x7c, 0x0e, 0x9d, 0xa1, 0xe0, 0x9a, 0x7e, + 0xd4, 0x53, 0xe2, 0x87, 0x63, 0x7a, 0x7b, 0x23, 0xa4, 0xab, 0xd0, 0x89, 0x01, 0xf6, 0x8f, 0x49, + 0x5c, 0x57, 0x52, 0xa5, 0x50, 0xcb, 0xd8, 0x8d, 0x18, 0x27, 0xbe, 0xb5, 0x6b, 0xe3, 0x33, 0x38, + 0x2d, 0xdb, 0x89, 0x18, 0x30, 0xdf, 0x2e, 0x51, 0x08, 0x61, 0x04, 0x4d, 0x2d, 0xc9, 0x70, 0xcc, + 0xb8, 0x67, 0x89, 0xa7, 0xe6, 0xbf, 0x09, 0x77, 0xa5, 0x60, 0x6e, 0x48, 0x82, 0x20, 0xf4, 0x19, + 0x1f, 0x23, 0x8c, 0x2f, 0xe0, 0x5c, 0xb1, 0x09, 0xf3, 0x89, 0x0c, 0xff, 0xbe, 0x43, 0x85, 0x3a, + 0xc6, 0x84, 0x09, 0xb5, 0xa3, 0x77, 0x8d, 0xc9, 0x76, 0xa2, 0xb4, 0x90, 0xd4, 0xdc, 0xee, 0xd9, + 0xe0, 0x57, 0x05, 0xde, 0xde, 0xe5, 0x73, 0xe7, 0xbf, 0xcf, 0x3f, 0xb8, 0x78, 0xfe, 0x71, 0x03, + 0x13, 0x9d, 0xa0, 0xf2, 0x69, 0xb0, 0x51, 0xa7, 0x79, 0x16, 0x2d, 0x52, 0x27, 0x5f, 0xa5, 0xbd, + 0x34, 0x59, 0xd8, 0x60, 0x6d, 0xa3, 0xb8, 0xbc, 0x2f, 0xfe, 0x91, 0xcc, 0xf7, 0xf6, 0xfb, 0xad, + 0x5a, 0xf3, 0x08, 0xf9, 0x5e, 0xbd, 0xf4, 0x4a, 0x2b, 0x12, 0x17, 0x4e, 0x59, 0x9a, 0xea, 0xba, + 0xef, 0x98, 0x9c, 0x15, 0x3f, 0xb7, 0xf8, 0x8c, 0xc4, 0xc5, 0xec, 0x09, 0x9f, 0x5d, 0xf7, 0x67, + 0x16, 0xff, 0x7c, 0x68, 0x97, 0xbe, 0xfb, 0x13, 0x00, 0x00, 0xff, 0xff, 0xb6, 0xb8, 0x9c, 0x9b, + 0x0d, 0x03, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/user_interest_taxonomy_type.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/user_interest_taxonomy_type.pb.go new file mode 100644 index 000000000..fef0facfd --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/user_interest_taxonomy_type.pb.go @@ -0,0 +1,131 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/user_interest_taxonomy_type.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum containing the possible UserInterestTaxonomyTypes. +type UserInterestTaxonomyTypeEnum_UserInterestTaxonomyType int32 + +const ( + // Not specified. + UserInterestTaxonomyTypeEnum_UNSPECIFIED UserInterestTaxonomyTypeEnum_UserInterestTaxonomyType = 0 + // Used for return value only. Represents value unknown in this version. + UserInterestTaxonomyTypeEnum_UNKNOWN UserInterestTaxonomyTypeEnum_UserInterestTaxonomyType = 1 + // The affinity for this user interest. + UserInterestTaxonomyTypeEnum_AFFINITY UserInterestTaxonomyTypeEnum_UserInterestTaxonomyType = 2 + // The market for this user interest. + UserInterestTaxonomyTypeEnum_IN_MARKET UserInterestTaxonomyTypeEnum_UserInterestTaxonomyType = 3 + // Users known to have installed applications in the specified categories. + UserInterestTaxonomyTypeEnum_MOBILE_APP_INSTALL_USER UserInterestTaxonomyTypeEnum_UserInterestTaxonomyType = 4 + // The geographical location of the interest-based vertical. + UserInterestTaxonomyTypeEnum_VERTICAL_GEO UserInterestTaxonomyTypeEnum_UserInterestTaxonomyType = 5 + // User interest criteria for new smart phone users. + UserInterestTaxonomyTypeEnum_NEW_SMART_PHONE_USER UserInterestTaxonomyTypeEnum_UserInterestTaxonomyType = 6 +) + +var UserInterestTaxonomyTypeEnum_UserInterestTaxonomyType_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "AFFINITY", + 3: "IN_MARKET", + 4: "MOBILE_APP_INSTALL_USER", + 5: "VERTICAL_GEO", + 6: "NEW_SMART_PHONE_USER", +} +var UserInterestTaxonomyTypeEnum_UserInterestTaxonomyType_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "AFFINITY": 2, + "IN_MARKET": 3, + "MOBILE_APP_INSTALL_USER": 4, + "VERTICAL_GEO": 5, + "NEW_SMART_PHONE_USER": 6, +} + +func (x UserInterestTaxonomyTypeEnum_UserInterestTaxonomyType) String() string { + return proto.EnumName(UserInterestTaxonomyTypeEnum_UserInterestTaxonomyType_name, int32(x)) +} +func (UserInterestTaxonomyTypeEnum_UserInterestTaxonomyType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_user_interest_taxonomy_type_c8f56b49ce1dcc23, []int{0, 0} +} + +// Message describing a UserInterestTaxonomyType. +type UserInterestTaxonomyTypeEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UserInterestTaxonomyTypeEnum) Reset() { *m = UserInterestTaxonomyTypeEnum{} } +func (m *UserInterestTaxonomyTypeEnum) String() string { return proto.CompactTextString(m) } +func (*UserInterestTaxonomyTypeEnum) ProtoMessage() {} +func (*UserInterestTaxonomyTypeEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_user_interest_taxonomy_type_c8f56b49ce1dcc23, []int{0} +} +func (m *UserInterestTaxonomyTypeEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserInterestTaxonomyTypeEnum.Unmarshal(m, b) +} +func (m *UserInterestTaxonomyTypeEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserInterestTaxonomyTypeEnum.Marshal(b, m, deterministic) +} +func (dst *UserInterestTaxonomyTypeEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserInterestTaxonomyTypeEnum.Merge(dst, src) +} +func (m *UserInterestTaxonomyTypeEnum) XXX_Size() int { + return xxx_messageInfo_UserInterestTaxonomyTypeEnum.Size(m) +} +func (m *UserInterestTaxonomyTypeEnum) XXX_DiscardUnknown() { + xxx_messageInfo_UserInterestTaxonomyTypeEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_UserInterestTaxonomyTypeEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*UserInterestTaxonomyTypeEnum)(nil), "google.ads.googleads.v0.enums.UserInterestTaxonomyTypeEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.UserInterestTaxonomyTypeEnum_UserInterestTaxonomyType", UserInterestTaxonomyTypeEnum_UserInterestTaxonomyType_name, UserInterestTaxonomyTypeEnum_UserInterestTaxonomyType_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/user_interest_taxonomy_type.proto", fileDescriptor_user_interest_taxonomy_type_c8f56b49ce1dcc23) +} + +var fileDescriptor_user_interest_taxonomy_type_c8f56b49ce1dcc23 = []byte{ + // 352 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x91, 0x4f, 0x6b, 0xdb, 0x30, + 0x18, 0xc6, 0xe7, 0x64, 0xcb, 0x36, 0x25, 0x63, 0x46, 0x0c, 0x16, 0xd8, 0x72, 0x58, 0x3e, 0x80, + 0x6c, 0xd8, 0xb1, 0x87, 0x22, 0xa7, 0x4a, 0x2a, 0xe2, 0xc8, 0xc6, 0x7f, 0x12, 0x5a, 0x0c, 0xc2, + 0xad, 0x85, 0x09, 0xc4, 0x96, 0xb1, 0x9c, 0xd0, 0x7c, 0x99, 0x1e, 0x7a, 0xec, 0x97, 0xe8, 0xbd, + 0x87, 0x7e, 0xa6, 0x62, 0x3b, 0xc9, 0x2d, 0xbd, 0x88, 0x07, 0x9e, 0xf7, 0xfd, 0x89, 0xe7, 0x79, + 0xc1, 0x65, 0x2a, 0x65, 0xba, 0x11, 0x46, 0x9c, 0x28, 0xa3, 0x95, 0xb5, 0xda, 0x99, 0x86, 0xc8, + 0xb7, 0x99, 0x32, 0xb6, 0x4a, 0x94, 0x7c, 0x9d, 0x57, 0xa2, 0x14, 0xaa, 0xe2, 0x55, 0xfc, 0x20, + 0x73, 0x99, 0xed, 0x79, 0xb5, 0x2f, 0x04, 0x2a, 0x4a, 0x59, 0x49, 0x38, 0x6a, 0xb7, 0x50, 0x9c, + 0x28, 0x74, 0x02, 0xa0, 0x9d, 0x89, 0x1a, 0xc0, 0xf8, 0x45, 0x03, 0x7f, 0x43, 0x25, 0x4a, 0x7a, + 0x60, 0x04, 0x07, 0x44, 0xb0, 0x2f, 0x04, 0xc9, 0xb7, 0xd9, 0xf8, 0x51, 0x03, 0xc3, 0x73, 0x03, + 0xf0, 0x27, 0xe8, 0x87, 0xcc, 0x77, 0xc9, 0x84, 0x4e, 0x29, 0xb9, 0xd2, 0x3f, 0xc1, 0x3e, 0xf8, + 0x1a, 0xb2, 0x39, 0x73, 0x56, 0x4c, 0xd7, 0xe0, 0x00, 0x7c, 0xc3, 0xd3, 0x29, 0x65, 0x34, 0xb8, + 0xd1, 0x3b, 0xf0, 0x07, 0xf8, 0x4e, 0x19, 0x5f, 0x60, 0x6f, 0x4e, 0x02, 0xbd, 0x0b, 0xff, 0x80, + 0xdf, 0x0b, 0xc7, 0xa2, 0x36, 0xe1, 0xd8, 0x75, 0x39, 0x65, 0x7e, 0x80, 0x6d, 0x9b, 0x87, 0x3e, + 0xf1, 0xf4, 0xcf, 0x50, 0x07, 0x83, 0x25, 0xf1, 0x02, 0x3a, 0xc1, 0x36, 0x9f, 0x11, 0x47, 0xff, + 0x02, 0x87, 0xe0, 0x17, 0x23, 0x2b, 0xee, 0x2f, 0xb0, 0x17, 0x70, 0xf7, 0xda, 0x61, 0xa4, 0x9d, + 0xed, 0x59, 0x6f, 0x1a, 0xf8, 0x77, 0x2f, 0x33, 0xf4, 0x61, 0x4e, 0x6b, 0x74, 0x2e, 0x83, 0x5b, + 0xb7, 0xe4, 0x6a, 0xb7, 0xd6, 0x61, 0x3f, 0x95, 0x9b, 0x38, 0x4f, 0x91, 0x2c, 0x53, 0x23, 0x15, + 0x79, 0xd3, 0xe1, 0xb1, 0xf8, 0x62, 0xad, 0xce, 0xdc, 0xe1, 0xa2, 0x79, 0x9f, 0x3a, 0xdd, 0x19, + 0xc6, 0xcf, 0x9d, 0xd1, 0xac, 0x45, 0xe1, 0x44, 0xa1, 0x56, 0xd6, 0x6a, 0x69, 0xa2, 0xba, 0x50, + 0xf5, 0x7a, 0xf4, 0x23, 0x9c, 0xa8, 0xe8, 0xe4, 0x47, 0x4b, 0x33, 0x6a, 0xfc, 0xbb, 0x5e, 0xf3, + 0xe9, 0xff, 0xf7, 0x00, 0x00, 0x00, 0xff, 0xff, 0x3c, 0x48, 0x44, 0x81, 0xfb, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/user_list_access_status.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/user_list_access_status.pb.go new file mode 100644 index 000000000..d98958c7b --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/user_list_access_status.pb.go @@ -0,0 +1,114 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/user_list_access_status.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum containing possible user list access statuses. +type UserListAccessStatusEnum_UserListAccessStatus int32 + +const ( + // Not specified. + UserListAccessStatusEnum_UNSPECIFIED UserListAccessStatusEnum_UserListAccessStatus = 0 + // Used for return value only. Represents value unknown in this version. + UserListAccessStatusEnum_UNKNOWN UserListAccessStatusEnum_UserListAccessStatus = 1 + // The access is enabled. + UserListAccessStatusEnum_ENABLED UserListAccessStatusEnum_UserListAccessStatus = 2 + // The access is disabled. + UserListAccessStatusEnum_DISABLED UserListAccessStatusEnum_UserListAccessStatus = 3 +) + +var UserListAccessStatusEnum_UserListAccessStatus_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "ENABLED", + 3: "DISABLED", +} +var UserListAccessStatusEnum_UserListAccessStatus_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "ENABLED": 2, + "DISABLED": 3, +} + +func (x UserListAccessStatusEnum_UserListAccessStatus) String() string { + return proto.EnumName(UserListAccessStatusEnum_UserListAccessStatus_name, int32(x)) +} +func (UserListAccessStatusEnum_UserListAccessStatus) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_user_list_access_status_fec1189b245b8f63, []int{0, 0} +} + +// Indicates if this client still has access to the list. +type UserListAccessStatusEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UserListAccessStatusEnum) Reset() { *m = UserListAccessStatusEnum{} } +func (m *UserListAccessStatusEnum) String() string { return proto.CompactTextString(m) } +func (*UserListAccessStatusEnum) ProtoMessage() {} +func (*UserListAccessStatusEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_user_list_access_status_fec1189b245b8f63, []int{0} +} +func (m *UserListAccessStatusEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserListAccessStatusEnum.Unmarshal(m, b) +} +func (m *UserListAccessStatusEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserListAccessStatusEnum.Marshal(b, m, deterministic) +} +func (dst *UserListAccessStatusEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserListAccessStatusEnum.Merge(dst, src) +} +func (m *UserListAccessStatusEnum) XXX_Size() int { + return xxx_messageInfo_UserListAccessStatusEnum.Size(m) +} +func (m *UserListAccessStatusEnum) XXX_DiscardUnknown() { + xxx_messageInfo_UserListAccessStatusEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_UserListAccessStatusEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*UserListAccessStatusEnum)(nil), "google.ads.googleads.v0.enums.UserListAccessStatusEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.UserListAccessStatusEnum_UserListAccessStatus", UserListAccessStatusEnum_UserListAccessStatus_name, UserListAccessStatusEnum_UserListAccessStatus_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/user_list_access_status.proto", fileDescriptor_user_list_access_status_fec1189b245b8f63) +} + +var fileDescriptor_user_list_access_status_fec1189b245b8f63 = []byte{ + // 272 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0x41, 0x4b, 0xc3, 0x30, + 0x18, 0x86, 0x5d, 0x07, 0x2a, 0x99, 0x60, 0x29, 0x1e, 0xf4, 0xb0, 0x83, 0xfb, 0x01, 0x69, 0xc1, + 0xe3, 0x4e, 0xa9, 0xad, 0xa3, 0x38, 0xb2, 0x42, 0xe9, 0x04, 0x29, 0x94, 0xd8, 0x86, 0x50, 0x6c, + 0x9b, 0xd1, 0x2f, 0xdd, 0x0f, 0xf2, 0xe8, 0x4f, 0xd9, 0xaf, 0x92, 0x24, 0x6e, 0xa7, 0xe9, 0x25, + 0xbc, 0x1f, 0x2f, 0x4f, 0xbe, 0xef, 0x7d, 0xd1, 0x52, 0x48, 0x29, 0x5a, 0xee, 0xb3, 0x1a, 0x7c, + 0x2b, 0xb5, 0xda, 0x07, 0x3e, 0xef, 0xc7, 0x0e, 0xfc, 0x11, 0xf8, 0x50, 0xb6, 0x0d, 0xa8, 0x92, + 0x55, 0x15, 0x07, 0x28, 0x41, 0x31, 0x35, 0x02, 0xde, 0x0d, 0x52, 0x49, 0x6f, 0x6e, 0x09, 0xcc, + 0x6a, 0xc0, 0x27, 0x18, 0xef, 0x03, 0x6c, 0xe0, 0xc5, 0x27, 0xba, 0xcf, 0x81, 0x0f, 0xeb, 0x06, + 0x14, 0x31, 0x74, 0x66, 0xe0, 0xb8, 0x1f, 0xbb, 0xc5, 0x06, 0xdd, 0x9d, 0xf3, 0xbc, 0x5b, 0x34, + 0xcb, 0x69, 0x96, 0xc6, 0xcf, 0xc9, 0x4b, 0x12, 0x47, 0xee, 0x85, 0x37, 0x43, 0x57, 0x39, 0x7d, + 0xa5, 0x9b, 0x37, 0xea, 0x4e, 0xf4, 0x10, 0x53, 0x12, 0xae, 0xe3, 0xc8, 0x75, 0xbc, 0x1b, 0x74, + 0x1d, 0x25, 0x99, 0x9d, 0xa6, 0xe1, 0x61, 0x82, 0x1e, 0x2b, 0xd9, 0xe1, 0x7f, 0x4f, 0x0a, 0x1f, + 0xce, 0x2d, 0x4d, 0x75, 0x98, 0x74, 0xf2, 0x1e, 0xfe, 0xb2, 0x42, 0xb6, 0xac, 0x17, 0x58, 0x0e, + 0xc2, 0x17, 0xbc, 0x37, 0x51, 0x8f, 0xdd, 0xec, 0x1a, 0xf8, 0xa3, 0xaa, 0xa5, 0x79, 0xbf, 0x9c, + 0xe9, 0x8a, 0x90, 0x6f, 0x67, 0xbe, 0xb2, 0x5f, 0x91, 0x1a, 0xb0, 0x95, 0x5a, 0x6d, 0x03, 0xac, + 0xc3, 0xc3, 0xe1, 0xe8, 0x17, 0xa4, 0x86, 0xe2, 0xe4, 0x17, 0xdb, 0xa0, 0x30, 0xfe, 0xc7, 0xa5, + 0x59, 0xfa, 0xf4, 0x13, 0x00, 0x00, 0xff, 0xff, 0xba, 0x89, 0xe1, 0xa8, 0x9e, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/user_list_closing_reason.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/user_list_closing_reason.pb.go new file mode 100644 index 000000000..91f0e83eb --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/user_list_closing_reason.pb.go @@ -0,0 +1,111 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/user_list_closing_reason.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible user list closing reasons. +type UserListClosingReasonEnum_UserListClosingReason int32 + +const ( + // Not specified. + UserListClosingReasonEnum_UNSPECIFIED UserListClosingReasonEnum_UserListClosingReason = 0 + // Used for return value only. Represents value unknown in this version. + UserListClosingReasonEnum_UNKNOWN UserListClosingReasonEnum_UserListClosingReason = 1 + // The userlist was closed because of not being used for over one year. + UserListClosingReasonEnum_UNUSED UserListClosingReasonEnum_UserListClosingReason = 2 +) + +var UserListClosingReasonEnum_UserListClosingReason_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "UNUSED", +} +var UserListClosingReasonEnum_UserListClosingReason_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "UNUSED": 2, +} + +func (x UserListClosingReasonEnum_UserListClosingReason) String() string { + return proto.EnumName(UserListClosingReasonEnum_UserListClosingReason_name, int32(x)) +} +func (UserListClosingReasonEnum_UserListClosingReason) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_user_list_closing_reason_42ba988910729065, []int{0, 0} +} + +// Indicates the reason why the userlist was closed. +// This enum is only used when a list is auto-closed by the system. +type UserListClosingReasonEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UserListClosingReasonEnum) Reset() { *m = UserListClosingReasonEnum{} } +func (m *UserListClosingReasonEnum) String() string { return proto.CompactTextString(m) } +func (*UserListClosingReasonEnum) ProtoMessage() {} +func (*UserListClosingReasonEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_user_list_closing_reason_42ba988910729065, []int{0} +} +func (m *UserListClosingReasonEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserListClosingReasonEnum.Unmarshal(m, b) +} +func (m *UserListClosingReasonEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserListClosingReasonEnum.Marshal(b, m, deterministic) +} +func (dst *UserListClosingReasonEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserListClosingReasonEnum.Merge(dst, src) +} +func (m *UserListClosingReasonEnum) XXX_Size() int { + return xxx_messageInfo_UserListClosingReasonEnum.Size(m) +} +func (m *UserListClosingReasonEnum) XXX_DiscardUnknown() { + xxx_messageInfo_UserListClosingReasonEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_UserListClosingReasonEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*UserListClosingReasonEnum)(nil), "google.ads.googleads.v0.enums.UserListClosingReasonEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.UserListClosingReasonEnum_UserListClosingReason", UserListClosingReasonEnum_UserListClosingReason_name, UserListClosingReasonEnum_UserListClosingReason_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/user_list_closing_reason.proto", fileDescriptor_user_list_closing_reason_42ba988910729065) +} + +var fileDescriptor_user_list_closing_reason_42ba988910729065 = []byte{ + // 266 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x49, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xbc, + 0xd2, 0xdc, 0x62, 0xfd, 0xd2, 0xe2, 0xd4, 0xa2, 0xf8, 0x9c, 0xcc, 0xe2, 0x92, 0xf8, 0xe4, 0x9c, + 0xfc, 0xe2, 0xcc, 0xbc, 0xf4, 0xf8, 0xa2, 0xd4, 0xc4, 0xe2, 0xfc, 0x3c, 0xbd, 0x82, 0xa2, 0xfc, + 0x92, 0x7c, 0x21, 0x59, 0x88, 0x16, 0xbd, 0xc4, 0x94, 0x62, 0x3d, 0xb8, 0x6e, 0xbd, 0x32, 0x03, + 0x3d, 0xb0, 0x6e, 0xa5, 0x38, 0x2e, 0xc9, 0xd0, 0xe2, 0xd4, 0x22, 0x9f, 0xcc, 0xe2, 0x12, 0x67, + 0x88, 0xf6, 0x20, 0xb0, 0x6e, 0xd7, 0xbc, 0xd2, 0x5c, 0x25, 0x47, 0x2e, 0x51, 0xac, 0x92, 0x42, + 0xfc, 0x5c, 0xdc, 0xa1, 0x7e, 0xc1, 0x01, 0xae, 0xce, 0x9e, 0x6e, 0x9e, 0xae, 0x2e, 0x02, 0x0c, + 0x42, 0xdc, 0x5c, 0xec, 0xa1, 0x7e, 0xde, 0x7e, 0xfe, 0xe1, 0x7e, 0x02, 0x8c, 0x42, 0x5c, 0x5c, + 0x6c, 0xa1, 0x7e, 0xa1, 0xc1, 0xae, 0x2e, 0x02, 0x4c, 0x4e, 0xa7, 0x19, 0xb9, 0x14, 0x93, 0xf3, + 0x73, 0xf5, 0xf0, 0xba, 0xc2, 0x49, 0x0a, 0xab, 0x35, 0x01, 0x20, 0x0f, 0x04, 0x30, 0x46, 0x39, + 0x41, 0x35, 0xa7, 0xe7, 0xe7, 0x24, 0xe6, 0xa5, 0xeb, 0xe5, 0x17, 0xa5, 0xeb, 0xa7, 0xa7, 0xe6, + 0x81, 0xbd, 0x07, 0x0b, 0x90, 0x82, 0xcc, 0x62, 0x1c, 0xe1, 0x63, 0x0d, 0x26, 0x17, 0x31, 0x31, + 0xbb, 0x3b, 0x3a, 0xae, 0x62, 0x92, 0x75, 0x87, 0x18, 0xe5, 0x98, 0x52, 0xac, 0x07, 0x61, 0x82, + 0x58, 0x61, 0x06, 0x7a, 0x20, 0xff, 0x16, 0x9f, 0x82, 0xc9, 0xc7, 0x38, 0xa6, 0x14, 0xc7, 0xc0, + 0xe5, 0x63, 0xc2, 0x0c, 0x62, 0xc0, 0xf2, 0x49, 0x6c, 0x60, 0x4b, 0x8d, 0x01, 0x01, 0x00, 0x00, + 0xff, 0xff, 0xea, 0x1d, 0x66, 0x86, 0x93, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/user_list_crm_data_source_type.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/user_list_crm_data_source_type.pb.go new file mode 100644 index 000000000..26707118e --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/user_list_crm_data_source_type.pb.go @@ -0,0 +1,122 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/user_list_crm_data_source_type.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible user list crm data source type. +type UserListCrmDataSourceTypeEnum_UserListCrmDataSourceType int32 + +const ( + // Not specified. + UserListCrmDataSourceTypeEnum_UNSPECIFIED UserListCrmDataSourceTypeEnum_UserListCrmDataSourceType = 0 + // Used for return value only. Represents value unknown in this version. + UserListCrmDataSourceTypeEnum_UNKNOWN UserListCrmDataSourceTypeEnum_UserListCrmDataSourceType = 1 + // The uploaded data is first party data. + UserListCrmDataSourceTypeEnum_FIRST_PARTY UserListCrmDataSourceTypeEnum_UserListCrmDataSourceType = 2 + // The uploaded data is from a third party credit bureau. + UserListCrmDataSourceTypeEnum_THIRD_PARTY_CREDIT_BUREAU UserListCrmDataSourceTypeEnum_UserListCrmDataSourceType = 3 + // The uploaded data is from a third party voter file. + UserListCrmDataSourceTypeEnum_THIRD_PARTY_VOTER_FILE UserListCrmDataSourceTypeEnum_UserListCrmDataSourceType = 4 +) + +var UserListCrmDataSourceTypeEnum_UserListCrmDataSourceType_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "FIRST_PARTY", + 3: "THIRD_PARTY_CREDIT_BUREAU", + 4: "THIRD_PARTY_VOTER_FILE", +} +var UserListCrmDataSourceTypeEnum_UserListCrmDataSourceType_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "FIRST_PARTY": 2, + "THIRD_PARTY_CREDIT_BUREAU": 3, + "THIRD_PARTY_VOTER_FILE": 4, +} + +func (x UserListCrmDataSourceTypeEnum_UserListCrmDataSourceType) String() string { + return proto.EnumName(UserListCrmDataSourceTypeEnum_UserListCrmDataSourceType_name, int32(x)) +} +func (UserListCrmDataSourceTypeEnum_UserListCrmDataSourceType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_user_list_crm_data_source_type_207bd7e19482b37d, []int{0, 0} +} + +// Indicates source of Crm upload data. +type UserListCrmDataSourceTypeEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UserListCrmDataSourceTypeEnum) Reset() { *m = UserListCrmDataSourceTypeEnum{} } +func (m *UserListCrmDataSourceTypeEnum) String() string { return proto.CompactTextString(m) } +func (*UserListCrmDataSourceTypeEnum) ProtoMessage() {} +func (*UserListCrmDataSourceTypeEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_user_list_crm_data_source_type_207bd7e19482b37d, []int{0} +} +func (m *UserListCrmDataSourceTypeEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserListCrmDataSourceTypeEnum.Unmarshal(m, b) +} +func (m *UserListCrmDataSourceTypeEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserListCrmDataSourceTypeEnum.Marshal(b, m, deterministic) +} +func (dst *UserListCrmDataSourceTypeEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserListCrmDataSourceTypeEnum.Merge(dst, src) +} +func (m *UserListCrmDataSourceTypeEnum) XXX_Size() int { + return xxx_messageInfo_UserListCrmDataSourceTypeEnum.Size(m) +} +func (m *UserListCrmDataSourceTypeEnum) XXX_DiscardUnknown() { + xxx_messageInfo_UserListCrmDataSourceTypeEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_UserListCrmDataSourceTypeEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*UserListCrmDataSourceTypeEnum)(nil), "google.ads.googleads.v0.enums.UserListCrmDataSourceTypeEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.UserListCrmDataSourceTypeEnum_UserListCrmDataSourceType", UserListCrmDataSourceTypeEnum_UserListCrmDataSourceType_name, UserListCrmDataSourceTypeEnum_UserListCrmDataSourceType_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/user_list_crm_data_source_type.proto", fileDescriptor_user_list_crm_data_source_type_207bd7e19482b37d) +} + +var fileDescriptor_user_list_crm_data_source_type_207bd7e19482b37d = []byte{ + // 325 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0xc1, 0x6a, 0xbb, 0x30, + 0x1c, 0xc7, 0xff, 0xb6, 0x7f, 0x36, 0x48, 0x0f, 0x13, 0x0f, 0x83, 0x0e, 0x1c, 0xac, 0x0f, 0x10, + 0x85, 0x1d, 0x77, 0xd2, 0x9a, 0x76, 0xb2, 0x62, 0xc5, 0x6a, 0xc7, 0x86, 0x10, 0xb2, 0x1a, 0xa4, + 0x50, 0x8d, 0xe4, 0xa7, 0x85, 0x3e, 0xc0, 0x5e, 0x64, 0x97, 0xc1, 0x1e, 0x65, 0x97, 0xbd, 0xd2, + 0x30, 0xae, 0x65, 0x17, 0x77, 0x09, 0x5f, 0xf2, 0x49, 0xbe, 0xc9, 0xef, 0x83, 0xdc, 0x5c, 0x88, + 0x7c, 0xc7, 0x2d, 0x96, 0x81, 0xd5, 0xc5, 0x36, 0xed, 0x6d, 0x8b, 0x97, 0x4d, 0x01, 0x56, 0x03, + 0x5c, 0xd2, 0xdd, 0x16, 0x6a, 0xba, 0x91, 0x05, 0xcd, 0x58, 0xcd, 0x28, 0x88, 0x46, 0x6e, 0x38, + 0xad, 0x0f, 0x15, 0xc7, 0x95, 0x14, 0xb5, 0x30, 0xcc, 0xee, 0x22, 0x66, 0x19, 0xe0, 0x53, 0x07, + 0xde, 0xdb, 0x58, 0x75, 0x4c, 0xde, 0x35, 0x64, 0x26, 0xc0, 0xe5, 0x62, 0x0b, 0xf5, 0x54, 0x16, + 0x1e, 0xab, 0xd9, 0x4a, 0x75, 0xc4, 0x87, 0x8a, 0x93, 0xb2, 0x29, 0x26, 0xaf, 0x1a, 0x1a, 0xf7, + 0x9e, 0x30, 0x2e, 0xd0, 0x28, 0x09, 0x56, 0x21, 0x99, 0xfa, 0x33, 0x9f, 0x78, 0xfa, 0x3f, 0x63, + 0x84, 0xce, 0x93, 0xe0, 0x21, 0x58, 0x3e, 0x06, 0xba, 0xd6, 0xd2, 0x99, 0x1f, 0xad, 0x62, 0x1a, + 0x3a, 0x51, 0xfc, 0xa4, 0x0f, 0x0c, 0x13, 0x8d, 0xe3, 0x7b, 0x3f, 0xf2, 0xba, 0x0d, 0x3a, 0x8d, + 0x88, 0xe7, 0xc7, 0xd4, 0x4d, 0x22, 0xe2, 0x24, 0xfa, 0xd0, 0xb8, 0x42, 0x97, 0xbf, 0xf1, 0x7a, + 0x19, 0x93, 0x88, 0xce, 0xfc, 0x05, 0xd1, 0xff, 0xbb, 0x5f, 0x1a, 0xba, 0xd9, 0x88, 0x02, 0xff, + 0x39, 0x8f, 0x7b, 0xdd, 0xfb, 0xd5, 0xb0, 0xd5, 0x11, 0x6a, 0xcf, 0x3f, 0x52, 0x71, 0x2e, 0x76, + 0xac, 0xcc, 0xb1, 0x90, 0xb9, 0x95, 0xf3, 0x52, 0xc9, 0x3a, 0x4a, 0xae, 0xb6, 0xd0, 0xe3, 0xfc, + 0x4e, 0xad, 0x6f, 0x83, 0xe1, 0xdc, 0x71, 0x3e, 0x06, 0xe6, 0xbc, 0xab, 0x72, 0x32, 0xc0, 0x5d, + 0x6c, 0xd3, 0xda, 0xc6, 0xad, 0x38, 0xf8, 0x3c, 0xf2, 0xd4, 0xc9, 0x20, 0x3d, 0xf1, 0x74, 0x6d, + 0xa7, 0x8a, 0xbf, 0x9c, 0xa9, 0x47, 0x6f, 0xbf, 0x03, 0x00, 0x00, 0xff, 0xff, 0xc2, 0xab, 0x98, + 0x86, 0xe7, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/user_list_membership_status.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/user_list_membership_status.pb.go new file mode 100644 index 000000000..eeb4a9efc --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/user_list_membership_status.pb.go @@ -0,0 +1,117 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/user_list_membership_status.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum containing possible user list membership statuses. +type UserListMembershipStatusEnum_UserListMembershipStatus int32 + +const ( + // Not specified. + UserListMembershipStatusEnum_UNSPECIFIED UserListMembershipStatusEnum_UserListMembershipStatus = 0 + // Used for return value only. Represents value unknown in this version. + UserListMembershipStatusEnum_UNKNOWN UserListMembershipStatusEnum_UserListMembershipStatus = 1 + // Open status - List is accruing members and can be targeted to. + UserListMembershipStatusEnum_OPEN UserListMembershipStatusEnum_UserListMembershipStatus = 2 + // Closed status - No new members being added. Cannot be used for targeting. + UserListMembershipStatusEnum_CLOSED UserListMembershipStatusEnum_UserListMembershipStatus = 3 +) + +var UserListMembershipStatusEnum_UserListMembershipStatus_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "OPEN", + 3: "CLOSED", +} +var UserListMembershipStatusEnum_UserListMembershipStatus_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "OPEN": 2, + "CLOSED": 3, +} + +func (x UserListMembershipStatusEnum_UserListMembershipStatus) String() string { + return proto.EnumName(UserListMembershipStatusEnum_UserListMembershipStatus_name, int32(x)) +} +func (UserListMembershipStatusEnum_UserListMembershipStatus) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_user_list_membership_status_d983670b77875dec, []int{0, 0} +} + +// Membership status of this user list. Indicates whether a user list is open +// or active. Only open user lists can accumulate more users and can be used for +// targeting. +type UserListMembershipStatusEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UserListMembershipStatusEnum) Reset() { *m = UserListMembershipStatusEnum{} } +func (m *UserListMembershipStatusEnum) String() string { return proto.CompactTextString(m) } +func (*UserListMembershipStatusEnum) ProtoMessage() {} +func (*UserListMembershipStatusEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_user_list_membership_status_d983670b77875dec, []int{0} +} +func (m *UserListMembershipStatusEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserListMembershipStatusEnum.Unmarshal(m, b) +} +func (m *UserListMembershipStatusEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserListMembershipStatusEnum.Marshal(b, m, deterministic) +} +func (dst *UserListMembershipStatusEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserListMembershipStatusEnum.Merge(dst, src) +} +func (m *UserListMembershipStatusEnum) XXX_Size() int { + return xxx_messageInfo_UserListMembershipStatusEnum.Size(m) +} +func (m *UserListMembershipStatusEnum) XXX_DiscardUnknown() { + xxx_messageInfo_UserListMembershipStatusEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_UserListMembershipStatusEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*UserListMembershipStatusEnum)(nil), "google.ads.googleads.v0.enums.UserListMembershipStatusEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.UserListMembershipStatusEnum_UserListMembershipStatus", UserListMembershipStatusEnum_UserListMembershipStatus_name, UserListMembershipStatusEnum_UserListMembershipStatus_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/user_list_membership_status.proto", fileDescriptor_user_list_membership_status_d983670b77875dec) +} + +var fileDescriptor_user_list_membership_status_d983670b77875dec = []byte{ + // 277 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0xc1, 0x6a, 0x83, 0x30, + 0x18, 0xc7, 0xa7, 0x1d, 0xdd, 0x48, 0x0f, 0x13, 0x4f, 0x3b, 0xcc, 0xc3, 0xfa, 0x00, 0x51, 0xd8, + 0x71, 0x87, 0xa1, 0xad, 0x2b, 0x65, 0x5d, 0x14, 0xc4, 0x0e, 0x86, 0x20, 0x76, 0x86, 0x4c, 0xd0, + 0x44, 0xf2, 0xc5, 0x3e, 0xd0, 0x8e, 0x7b, 0x94, 0x1d, 0xf6, 0x4c, 0xc3, 0xb8, 0x7a, 0xb3, 0x97, + 0xf0, 0x87, 0x1f, 0xdf, 0xef, 0xcb, 0xff, 0x43, 0x4f, 0x4c, 0x08, 0x56, 0x53, 0xb7, 0x28, 0xc1, + 0x1d, 0x62, 0x9f, 0x8e, 0x9e, 0x4b, 0x79, 0xd7, 0x80, 0xdb, 0x01, 0x95, 0x79, 0x5d, 0x81, 0xca, + 0x1b, 0xda, 0x1c, 0xa8, 0x84, 0xcf, 0xaa, 0xcd, 0x41, 0x15, 0xaa, 0x03, 0xdc, 0x4a, 0xa1, 0x84, + 0xed, 0x0c, 0x53, 0xb8, 0x28, 0x01, 0x8f, 0x02, 0x7c, 0xf4, 0xb0, 0x16, 0x2c, 0x39, 0xba, 0x4b, + 0x81, 0xca, 0x5d, 0x05, 0xea, 0x75, 0x34, 0x24, 0x5a, 0x10, 0xf2, 0xae, 0x59, 0x12, 0x74, 0x3b, + 0xc5, 0xed, 0x1b, 0xb4, 0x48, 0x49, 0x12, 0x87, 0xab, 0xed, 0xf3, 0x36, 0x5c, 0x5b, 0x17, 0xf6, + 0x02, 0x5d, 0xa5, 0xe4, 0x85, 0x44, 0x6f, 0xc4, 0x32, 0xec, 0x6b, 0x74, 0x19, 0xc5, 0x21, 0xb1, + 0x4c, 0x1b, 0xa1, 0xf9, 0x6a, 0x17, 0x25, 0xe1, 0xda, 0x9a, 0x05, 0xbf, 0x06, 0xba, 0xff, 0x10, + 0x0d, 0x3e, 0xfb, 0xab, 0xc0, 0x99, 0xda, 0x19, 0xf7, 0x9d, 0x62, 0xe3, 0x3d, 0xf8, 0x9f, 0x67, + 0xa2, 0x2e, 0x38, 0xc3, 0x42, 0x32, 0x97, 0x51, 0xae, 0x1b, 0x9f, 0xce, 0xd4, 0x56, 0x30, 0x71, + 0xb5, 0x47, 0xfd, 0x7e, 0x99, 0xb3, 0x8d, 0xef, 0x7f, 0x9b, 0xce, 0x66, 0x50, 0xf9, 0x25, 0xe0, + 0x21, 0xf6, 0x69, 0xef, 0xe1, 0xbe, 0x3f, 0xfc, 0x9c, 0x78, 0xe6, 0x97, 0x90, 0x8d, 0x3c, 0xdb, + 0x7b, 0x99, 0xe6, 0x87, 0xb9, 0x5e, 0xfa, 0xf0, 0x17, 0x00, 0x00, 0xff, 0xff, 0xc2, 0x02, 0x88, + 0xc1, 0xa9, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/user_list_size_range.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/user_list_size_range.pb.go new file mode 100644 index 000000000..8bbe2b001 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/user_list_size_range.pb.go @@ -0,0 +1,183 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/user_list_size_range.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum containing possible user list size ranges. +type UserListSizeRangeEnum_UserListSizeRange int32 + +const ( + // Not specified. + UserListSizeRangeEnum_UNSPECIFIED UserListSizeRangeEnum_UserListSizeRange = 0 + // Used for return value only. Represents value unknown in this version. + UserListSizeRangeEnum_UNKNOWN UserListSizeRangeEnum_UserListSizeRange = 1 + // User list has less than 500 users. + UserListSizeRangeEnum_LESS_THAN_FIVE_HUNDRED UserListSizeRangeEnum_UserListSizeRange = 2 + // User list has number of users in range of 500 to 1000. + UserListSizeRangeEnum_LESS_THAN_ONE_THOUSAND UserListSizeRangeEnum_UserListSizeRange = 3 + // User list has number of users in range of 1000 to 10000. + UserListSizeRangeEnum_ONE_THOUSAND_TO_TEN_THOUSAND UserListSizeRangeEnum_UserListSizeRange = 4 + // User list has number of users in range of 10000 to 50000. + UserListSizeRangeEnum_TEN_THOUSAND_TO_FIFTY_THOUSAND UserListSizeRangeEnum_UserListSizeRange = 5 + // User list has number of users in range of 50000 to 100000. + UserListSizeRangeEnum_FIFTY_THOUSAND_TO_ONE_HUNDRED_THOUSAND UserListSizeRangeEnum_UserListSizeRange = 6 + // User list has number of users in range of 100000 to 300000. + UserListSizeRangeEnum_ONE_HUNDRED_THOUSAND_TO_THREE_HUNDRED_THOUSAND UserListSizeRangeEnum_UserListSizeRange = 7 + // User list has number of users in range of 300000 to 500000. + UserListSizeRangeEnum_THREE_HUNDRED_THOUSAND_TO_FIVE_HUNDRED_THOUSAND UserListSizeRangeEnum_UserListSizeRange = 8 + // User list has number of users in range of 500000 to 1 million. + UserListSizeRangeEnum_FIVE_HUNDRED_THOUSAND_TO_ONE_MILLION UserListSizeRangeEnum_UserListSizeRange = 9 + // User list has number of users in range of 1 to 2 millions. + UserListSizeRangeEnum_ONE_MILLION_TO_TWO_MILLION UserListSizeRangeEnum_UserListSizeRange = 10 + // User list has number of users in range of 2 to 3 millions. + UserListSizeRangeEnum_TWO_MILLION_TO_THREE_MILLION UserListSizeRangeEnum_UserListSizeRange = 11 + // User list has number of users in range of 3 to 5 millions. + UserListSizeRangeEnum_THREE_MILLION_TO_FIVE_MILLION UserListSizeRangeEnum_UserListSizeRange = 12 + // User list has number of users in range of 5 to 10 millions. + UserListSizeRangeEnum_FIVE_MILLION_TO_TEN_MILLION UserListSizeRangeEnum_UserListSizeRange = 13 + // User list has number of users in range of 10 to 20 millions. + UserListSizeRangeEnum_TEN_MILLION_TO_TWENTY_MILLION UserListSizeRangeEnum_UserListSizeRange = 14 + // User list has number of users in range of 20 to 30 millions. + UserListSizeRangeEnum_TWENTY_MILLION_TO_THIRTY_MILLION UserListSizeRangeEnum_UserListSizeRange = 15 + // User list has number of users in range of 30 to 50 millions. + UserListSizeRangeEnum_THIRTY_MILLION_TO_FIFTY_MILLION UserListSizeRangeEnum_UserListSizeRange = 16 + // User list has over 50 million users. + UserListSizeRangeEnum_OVER_FIFTY_MILLION UserListSizeRangeEnum_UserListSizeRange = 17 +) + +var UserListSizeRangeEnum_UserListSizeRange_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "LESS_THAN_FIVE_HUNDRED", + 3: "LESS_THAN_ONE_THOUSAND", + 4: "ONE_THOUSAND_TO_TEN_THOUSAND", + 5: "TEN_THOUSAND_TO_FIFTY_THOUSAND", + 6: "FIFTY_THOUSAND_TO_ONE_HUNDRED_THOUSAND", + 7: "ONE_HUNDRED_THOUSAND_TO_THREE_HUNDRED_THOUSAND", + 8: "THREE_HUNDRED_THOUSAND_TO_FIVE_HUNDRED_THOUSAND", + 9: "FIVE_HUNDRED_THOUSAND_TO_ONE_MILLION", + 10: "ONE_MILLION_TO_TWO_MILLION", + 11: "TWO_MILLION_TO_THREE_MILLION", + 12: "THREE_MILLION_TO_FIVE_MILLION", + 13: "FIVE_MILLION_TO_TEN_MILLION", + 14: "TEN_MILLION_TO_TWENTY_MILLION", + 15: "TWENTY_MILLION_TO_THIRTY_MILLION", + 16: "THIRTY_MILLION_TO_FIFTY_MILLION", + 17: "OVER_FIFTY_MILLION", +} +var UserListSizeRangeEnum_UserListSizeRange_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "LESS_THAN_FIVE_HUNDRED": 2, + "LESS_THAN_ONE_THOUSAND": 3, + "ONE_THOUSAND_TO_TEN_THOUSAND": 4, + "TEN_THOUSAND_TO_FIFTY_THOUSAND": 5, + "FIFTY_THOUSAND_TO_ONE_HUNDRED_THOUSAND": 6, + "ONE_HUNDRED_THOUSAND_TO_THREE_HUNDRED_THOUSAND": 7, + "THREE_HUNDRED_THOUSAND_TO_FIVE_HUNDRED_THOUSAND": 8, + "FIVE_HUNDRED_THOUSAND_TO_ONE_MILLION": 9, + "ONE_MILLION_TO_TWO_MILLION": 10, + "TWO_MILLION_TO_THREE_MILLION": 11, + "THREE_MILLION_TO_FIVE_MILLION": 12, + "FIVE_MILLION_TO_TEN_MILLION": 13, + "TEN_MILLION_TO_TWENTY_MILLION": 14, + "TWENTY_MILLION_TO_THIRTY_MILLION": 15, + "THIRTY_MILLION_TO_FIFTY_MILLION": 16, + "OVER_FIFTY_MILLION": 17, +} + +func (x UserListSizeRangeEnum_UserListSizeRange) String() string { + return proto.EnumName(UserListSizeRangeEnum_UserListSizeRange_name, int32(x)) +} +func (UserListSizeRangeEnum_UserListSizeRange) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_user_list_size_range_66b8c4cb6c2c03b0, []int{0, 0} +} + +// Size range in terms of number of users of a UserList. +type UserListSizeRangeEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UserListSizeRangeEnum) Reset() { *m = UserListSizeRangeEnum{} } +func (m *UserListSizeRangeEnum) String() string { return proto.CompactTextString(m) } +func (*UserListSizeRangeEnum) ProtoMessage() {} +func (*UserListSizeRangeEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_user_list_size_range_66b8c4cb6c2c03b0, []int{0} +} +func (m *UserListSizeRangeEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserListSizeRangeEnum.Unmarshal(m, b) +} +func (m *UserListSizeRangeEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserListSizeRangeEnum.Marshal(b, m, deterministic) +} +func (dst *UserListSizeRangeEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserListSizeRangeEnum.Merge(dst, src) +} +func (m *UserListSizeRangeEnum) XXX_Size() int { + return xxx_messageInfo_UserListSizeRangeEnum.Size(m) +} +func (m *UserListSizeRangeEnum) XXX_DiscardUnknown() { + xxx_messageInfo_UserListSizeRangeEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_UserListSizeRangeEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*UserListSizeRangeEnum)(nil), "google.ads.googleads.v0.enums.UserListSizeRangeEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.UserListSizeRangeEnum_UserListSizeRange", UserListSizeRangeEnum_UserListSizeRange_name, UserListSizeRangeEnum_UserListSizeRange_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/user_list_size_range.proto", fileDescriptor_user_list_size_range_66b8c4cb6c2c03b0) +} + +var fileDescriptor_user_list_size_range_66b8c4cb6c2c03b0 = []byte{ + // 469 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x93, 0xcb, 0x6e, 0xd3, 0x40, + 0x14, 0x86, 0x49, 0x7a, 0x83, 0x13, 0xa0, 0xee, 0x91, 0xc8, 0xa2, 0x90, 0x5e, 0x42, 0x85, 0x10, + 0x8b, 0x71, 0x44, 0x37, 0x48, 0xac, 0x1c, 0x32, 0x69, 0x2c, 0xc2, 0x38, 0xf2, 0xad, 0x2a, 0x8a, + 0x34, 0x0a, 0xd8, 0xb2, 0x2c, 0x25, 0x76, 0xe5, 0x49, 0xba, 0xe8, 0x73, 0xf0, 0x04, 0x2c, 0x79, + 0x11, 0x24, 0x1e, 0x89, 0x15, 0x1a, 0xbb, 0xbe, 0x51, 0xc3, 0xc6, 0x3a, 0xfa, 0xff, 0xef, 0xcc, + 0xfc, 0x1a, 0x9f, 0x03, 0xef, 0x82, 0x38, 0x0e, 0x96, 0xbe, 0xba, 0xf0, 0x84, 0x9a, 0x95, 0xb2, + 0xba, 0x19, 0xa8, 0x7e, 0xb4, 0x59, 0x09, 0x75, 0x23, 0xfc, 0x84, 0x2f, 0x43, 0xb1, 0xe6, 0x22, + 0xbc, 0xf5, 0x79, 0xb2, 0x88, 0x02, 0x9f, 0x5c, 0x27, 0xf1, 0x3a, 0xc6, 0x5e, 0x86, 0x93, 0x85, + 0x27, 0x48, 0xd1, 0x49, 0x6e, 0x06, 0x24, 0xed, 0xec, 0x7f, 0xdb, 0x81, 0x67, 0x8e, 0xf0, 0x93, + 0x69, 0x28, 0xd6, 0x56, 0x78, 0xeb, 0x9b, 0xb2, 0x95, 0x46, 0x9b, 0x55, 0xff, 0xf7, 0x36, 0x1c, + 0xdc, 0x73, 0x70, 0x1f, 0x3a, 0x0e, 0xb3, 0x66, 0xf4, 0x83, 0x3e, 0xd6, 0xe9, 0x48, 0x79, 0x80, + 0x1d, 0xd8, 0x73, 0xd8, 0x47, 0x66, 0x5c, 0x32, 0xa5, 0x85, 0x87, 0xd0, 0x9d, 0x52, 0xcb, 0xe2, + 0xf6, 0x44, 0x63, 0x7c, 0xac, 0xbb, 0x94, 0x4f, 0x1c, 0x36, 0x32, 0xe9, 0x48, 0x69, 0xd7, 0x3d, + 0x83, 0x51, 0x6e, 0x4f, 0x0c, 0xc7, 0xd2, 0xd8, 0x48, 0xd9, 0xc2, 0x13, 0x78, 0x51, 0x55, 0xb8, + 0x6d, 0x70, 0x9b, 0xb2, 0x92, 0xd8, 0xc6, 0x3e, 0x1c, 0x55, 0x15, 0x49, 0x8c, 0xf5, 0xb1, 0x7d, + 0x55, 0x32, 0x3b, 0xf8, 0x06, 0x5e, 0xd5, 0x35, 0x49, 0xc9, 0x73, 0xef, 0x42, 0x94, 0xec, 0x2e, + 0xbe, 0x05, 0xd2, 0xe4, 0xa4, 0x37, 0x4f, 0x4c, 0xda, 0xd0, 0xb3, 0x87, 0xe7, 0xa0, 0x36, 0x7b, + 0x59, 0x1a, 0xb7, 0xa1, 0xe9, 0x21, 0xbe, 0x86, 0xb3, 0x46, 0x2b, 0xcf, 0xf6, 0x49, 0x9f, 0x4e, + 0x75, 0x83, 0x29, 0x8f, 0xf0, 0x08, 0x0e, 0x2b, 0x42, 0x9a, 0xe4, 0xd2, 0x28, 0x7c, 0x90, 0x8f, + 0x54, 0x11, 0xca, 0xa4, 0x39, 0xd1, 0xc1, 0x53, 0xe8, 0xd5, 0xa4, 0x22, 0x57, 0x8e, 0x3c, 0xc6, + 0x63, 0x78, 0x5e, 0x55, 0xf2, 0x97, 0xce, 0x81, 0x27, 0xe9, 0x19, 0xa5, 0x90, 0xa5, 0xa0, 0xcc, + 0xbe, 0x2a, 0x90, 0xa7, 0x78, 0x06, 0x27, 0x75, 0x2d, 0xcb, 0xa2, 0x9b, 0x15, 0x6a, 0x1f, 0x5f, + 0xc2, 0x71, 0x5d, 0x2b, 0xff, 0x59, 0x0e, 0x29, 0xd8, 0x05, 0x34, 0x5c, 0x6a, 0xfe, 0xa5, 0x1f, + 0x0c, 0x7f, 0xb6, 0xe0, 0xf4, 0x6b, 0xbc, 0x22, 0xff, 0x1d, 0xde, 0x61, 0xf7, 0xde, 0x7c, 0xce, + 0xe4, 0xcc, 0xcf, 0x5a, 0x9f, 0x87, 0x77, 0x8d, 0x41, 0xbc, 0x5c, 0x44, 0x01, 0x89, 0x93, 0x40, + 0x0d, 0xfc, 0x28, 0xdd, 0x88, 0x7c, 0x7f, 0xae, 0x43, 0xf1, 0x8f, 0x75, 0x7a, 0x9f, 0x7e, 0xbf, + 0xb7, 0xb7, 0x2e, 0x34, 0xed, 0x47, 0xbb, 0x77, 0x91, 0x1d, 0xa5, 0x79, 0x82, 0x64, 0xa5, 0xac, + 0xdc, 0x01, 0x91, 0x5b, 0x22, 0x7e, 0xe5, 0xfe, 0x5c, 0xf3, 0xc4, 0xbc, 0xf0, 0xe7, 0xee, 0x60, + 0x9e, 0xfa, 0x5f, 0x76, 0xd3, 0x4b, 0xcf, 0xff, 0x04, 0x00, 0x00, 0xff, 0xff, 0xff, 0xcb, 0xe4, + 0xf3, 0xc2, 0x03, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/user_list_type.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/user_list_type.pb.go new file mode 100644 index 000000000..581590059 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/enums/user_list_type.pb.go @@ -0,0 +1,135 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/enums/user_list_type.proto + +package enums // import "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum containing possible user list types. +type UserListTypeEnum_UserListType int32 + +const ( + // Not specified. + UserListTypeEnum_UNSPECIFIED UserListTypeEnum_UserListType = 0 + // Used for return value only. Represents value unknown in this version. + UserListTypeEnum_UNKNOWN UserListTypeEnum_UserListType = 1 + // UserList represented as a collection of conversion types. + UserListTypeEnum_REMARKETING UserListTypeEnum_UserListType = 2 + // UserList represented as a combination of other user lists/interests. + UserListTypeEnum_LOGICAL UserListTypeEnum_UserListType = 3 + // UserList created in the Google Ad Manager platform. + UserListTypeEnum_EXTERNAL_REMARKETING UserListTypeEnum_UserListType = 4 + // UserList associated with a rule. + UserListTypeEnum_RULE_BASED UserListTypeEnum_UserListType = 5 + // UserList with users similar to users of another UserList. + UserListTypeEnum_SIMILAR UserListTypeEnum_UserListType = 6 + // UserList of first party CRM data provided by advertiser in the form of + // emails or other formats. + UserListTypeEnum_CRM_BASED UserListTypeEnum_UserListType = 7 +) + +var UserListTypeEnum_UserListType_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "REMARKETING", + 3: "LOGICAL", + 4: "EXTERNAL_REMARKETING", + 5: "RULE_BASED", + 6: "SIMILAR", + 7: "CRM_BASED", +} +var UserListTypeEnum_UserListType_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "REMARKETING": 2, + "LOGICAL": 3, + "EXTERNAL_REMARKETING": 4, + "RULE_BASED": 5, + "SIMILAR": 6, + "CRM_BASED": 7, +} + +func (x UserListTypeEnum_UserListType) String() string { + return proto.EnumName(UserListTypeEnum_UserListType_name, int32(x)) +} +func (UserListTypeEnum_UserListType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_user_list_type_33358370125a2b4a, []int{0, 0} +} + +// The user list types. +type UserListTypeEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UserListTypeEnum) Reset() { *m = UserListTypeEnum{} } +func (m *UserListTypeEnum) String() string { return proto.CompactTextString(m) } +func (*UserListTypeEnum) ProtoMessage() {} +func (*UserListTypeEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_user_list_type_33358370125a2b4a, []int{0} +} +func (m *UserListTypeEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserListTypeEnum.Unmarshal(m, b) +} +func (m *UserListTypeEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserListTypeEnum.Marshal(b, m, deterministic) +} +func (dst *UserListTypeEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserListTypeEnum.Merge(dst, src) +} +func (m *UserListTypeEnum) XXX_Size() int { + return xxx_messageInfo_UserListTypeEnum.Size(m) +} +func (m *UserListTypeEnum) XXX_DiscardUnknown() { + xxx_messageInfo_UserListTypeEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_UserListTypeEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*UserListTypeEnum)(nil), "google.ads.googleads.v0.enums.UserListTypeEnum") + proto.RegisterEnum("google.ads.googleads.v0.enums.UserListTypeEnum_UserListType", UserListTypeEnum_UserListType_name, UserListTypeEnum_UserListType_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/enums/user_list_type.proto", fileDescriptor_user_list_type_33358370125a2b4a) +} + +var fileDescriptor_user_list_type_33358370125a2b4a = []byte{ + // 321 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0x4f, 0x4f, 0xc2, 0x30, + 0x18, 0xc6, 0x1d, 0x28, 0xc4, 0xe2, 0x9f, 0xba, 0x78, 0xf0, 0xc2, 0x41, 0x3e, 0x40, 0xb7, 0xe8, + 0xd1, 0x53, 0x07, 0x75, 0x59, 0x28, 0x85, 0x14, 0x86, 0xc6, 0x2c, 0x59, 0xd0, 0x35, 0x0d, 0x09, + 0xac, 0xcb, 0x3a, 0x48, 0xf8, 0x16, 0x7e, 0x06, 0x13, 0x2f, 0x7e, 0x0c, 0x8f, 0x7e, 0x2a, 0xd3, + 0x0d, 0x08, 0x17, 0xbd, 0x34, 0x4f, 0xfa, 0x7b, 0x9f, 0xf6, 0x7d, 0x1e, 0x70, 0x27, 0x95, 0x92, + 0x0b, 0xe1, 0xcc, 0x12, 0xed, 0x54, 0xd2, 0xa8, 0xb5, 0xeb, 0x88, 0x74, 0xb5, 0xd4, 0xce, 0x4a, + 0x8b, 0x3c, 0x5e, 0xcc, 0x75, 0x11, 0x17, 0x9b, 0x4c, 0xa0, 0x2c, 0x57, 0x85, 0xb2, 0xdb, 0xd5, + 0x20, 0x9a, 0x25, 0x1a, 0xed, 0x3d, 0x68, 0xed, 0xa2, 0xd2, 0xd3, 0xf9, 0xb4, 0x00, 0x0c, 0xb5, + 0xc8, 0xe9, 0x5c, 0x17, 0x93, 0x4d, 0x26, 0x48, 0xba, 0x5a, 0x76, 0xde, 0x2d, 0x70, 0x76, 0x78, + 0x69, 0x5f, 0x82, 0x56, 0xc8, 0xc6, 0x23, 0xd2, 0x0d, 0x1e, 0x03, 0xd2, 0x83, 0x47, 0x76, 0x0b, + 0x34, 0x43, 0xd6, 0x67, 0xc3, 0x27, 0x06, 0x2d, 0x43, 0x39, 0x19, 0x60, 0xde, 0x27, 0x93, 0x80, + 0xf9, 0xb0, 0x66, 0x28, 0x1d, 0xfa, 0x41, 0x17, 0x53, 0x58, 0xb7, 0x6f, 0xc0, 0x35, 0x79, 0x9e, + 0x10, 0xce, 0x30, 0x8d, 0x0f, 0xc7, 0x8e, 0xed, 0x0b, 0x00, 0x78, 0x48, 0x49, 0xec, 0xe1, 0x31, + 0xe9, 0xc1, 0x13, 0x63, 0x1b, 0x07, 0x83, 0x80, 0x62, 0x0e, 0x1b, 0xf6, 0x39, 0x38, 0xed, 0xf2, + 0xc1, 0x96, 0x35, 0xbd, 0x6f, 0x0b, 0xdc, 0xbe, 0xa9, 0x25, 0xfa, 0x37, 0x8d, 0x77, 0x75, 0xb8, + 0xf5, 0xc8, 0xe4, 0x1f, 0x59, 0x2f, 0xde, 0xd6, 0x23, 0xd5, 0x62, 0x96, 0x4a, 0xa4, 0x72, 0xe9, + 0x48, 0x91, 0x96, 0xed, 0xec, 0x5a, 0xcc, 0xe6, 0xfa, 0x8f, 0x52, 0x1f, 0xca, 0xf3, 0xa3, 0x56, + 0xf7, 0x31, 0xfe, 0xaa, 0xb5, 0xfd, 0xea, 0x29, 0x9c, 0x68, 0x54, 0x49, 0xa3, 0xa6, 0x2e, 0x32, + 0xb5, 0xe9, 0x9f, 0x1d, 0x8f, 0x70, 0xa2, 0xa3, 0x3d, 0x8f, 0xa6, 0x6e, 0x54, 0xf2, 0xd7, 0x46, + 0xf9, 0xe9, 0xfd, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xdc, 0xc0, 0x85, 0x5b, 0xc8, 0x01, 0x00, + 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/account_budget_proposal_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/account_budget_proposal_error.pb.go new file mode 100644 index 000000000..27cc1f925 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/account_budget_proposal_error.pb.go @@ -0,0 +1,222 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/account_budget_proposal_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible account budget proposal errors. +type AccountBudgetProposalErrorEnum_AccountBudgetProposalError int32 + +const ( + // Enum unspecified. + AccountBudgetProposalErrorEnum_UNSPECIFIED AccountBudgetProposalErrorEnum_AccountBudgetProposalError = 0 + // The received error code is not known in this version. + AccountBudgetProposalErrorEnum_UNKNOWN AccountBudgetProposalErrorEnum_AccountBudgetProposalError = 1 + // The field mask must be empty for create/end/remove proposals. + AccountBudgetProposalErrorEnum_FIELD_MASK_NOT_ALLOWED AccountBudgetProposalErrorEnum_AccountBudgetProposalError = 2 + // The field cannot be set because of the proposal type. + AccountBudgetProposalErrorEnum_IMMUTABLE_FIELD AccountBudgetProposalErrorEnum_AccountBudgetProposalError = 3 + // The field is required because of the proposal type. + AccountBudgetProposalErrorEnum_REQUIRED_FIELD_MISSING AccountBudgetProposalErrorEnum_AccountBudgetProposalError = 4 + // Proposals that have been approved cannot be cancelled. + AccountBudgetProposalErrorEnum_CANNOT_CANCEL_APPROVED_PROPOSAL AccountBudgetProposalErrorEnum_AccountBudgetProposalError = 5 + // Budgets that haven't been approved cannot be removed. + AccountBudgetProposalErrorEnum_CANNOT_REMOVE_UNAPPROVED_BUDGET AccountBudgetProposalErrorEnum_AccountBudgetProposalError = 6 + // Budgets that are currently running cannot be removed. + AccountBudgetProposalErrorEnum_CANNOT_REMOVE_RUNNING_BUDGET AccountBudgetProposalErrorEnum_AccountBudgetProposalError = 7 + // Budgets that haven't been approved cannot be truncated. + AccountBudgetProposalErrorEnum_CANNOT_END_UNAPPROVED_BUDGET AccountBudgetProposalErrorEnum_AccountBudgetProposalError = 8 + // Only budgets that are currently running can be truncated. + AccountBudgetProposalErrorEnum_CANNOT_END_INACTIVE_BUDGET AccountBudgetProposalErrorEnum_AccountBudgetProposalError = 9 + // All budgets must have names. + AccountBudgetProposalErrorEnum_BUDGET_NAME_REQUIRED AccountBudgetProposalErrorEnum_AccountBudgetProposalError = 10 + // Expired budgets cannot be edited after a sufficient amount of time has + // passed. + AccountBudgetProposalErrorEnum_CANNOT_UPDATE_OLD_BUDGET AccountBudgetProposalErrorEnum_AccountBudgetProposalError = 11 + // It is not permissible a propose a new budget that ends in the past. + AccountBudgetProposalErrorEnum_CANNOT_END_IN_PAST AccountBudgetProposalErrorEnum_AccountBudgetProposalError = 12 + // An expired budget cannot be extended to overlap with the running budget. + AccountBudgetProposalErrorEnum_CANNOT_EXTEND_END_TIME AccountBudgetProposalErrorEnum_AccountBudgetProposalError = 13 + // A purchase order number is required. + AccountBudgetProposalErrorEnum_PURCHASE_ORDER_NUMBER_REQUIRED AccountBudgetProposalErrorEnum_AccountBudgetProposalError = 14 + // Budgets that have a pending update cannot be updated. + AccountBudgetProposalErrorEnum_PENDING_UPDATE_PROPOSAL_EXISTS AccountBudgetProposalErrorEnum_AccountBudgetProposalError = 15 + // Cannot propose more than one budget when the corresponding billing setup + // hasn't been approved. + AccountBudgetProposalErrorEnum_MULTIPLE_BUDGETS_NOT_ALLOWED_FOR_UNAPPROVED_BILLING_SETUP AccountBudgetProposalErrorEnum_AccountBudgetProposalError = 16 + // Cannot update the start time of a budget that has already started. + AccountBudgetProposalErrorEnum_CANNOT_UPDATE_START_TIME_FOR_STARTED_BUDGET AccountBudgetProposalErrorEnum_AccountBudgetProposalError = 17 + // Cannot update the spending limit of a budget with an amount lower than + // what has already been spent. + AccountBudgetProposalErrorEnum_SPENDING_LIMIT_LOWER_THAN_ACCRUED_COST_NOT_ALLOWED AccountBudgetProposalErrorEnum_AccountBudgetProposalError = 18 + // Cannot propose a budget update without actually changing any fields. + AccountBudgetProposalErrorEnum_UPDATE_IS_NO_OP AccountBudgetProposalErrorEnum_AccountBudgetProposalError = 19 + // The end time must come after the start time. + AccountBudgetProposalErrorEnum_END_TIME_MUST_FOLLOW_START_TIME AccountBudgetProposalErrorEnum_AccountBudgetProposalError = 20 + // The budget's date range must fall within the date range of its billing + // setup. + AccountBudgetProposalErrorEnum_BUDGET_DATE_RANGE_INCOMPATIBLE_WITH_BILLING_SETUP AccountBudgetProposalErrorEnum_AccountBudgetProposalError = 21 + // The user is not authorized to mutate budgets for the given billing setup. + AccountBudgetProposalErrorEnum_NOT_AUTHORIZED AccountBudgetProposalErrorEnum_AccountBudgetProposalError = 22 + // Mutates are not allowed for the given billing setup. + AccountBudgetProposalErrorEnum_INVALID_BILLING_SETUP AccountBudgetProposalErrorEnum_AccountBudgetProposalError = 23 +) + +var AccountBudgetProposalErrorEnum_AccountBudgetProposalError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "FIELD_MASK_NOT_ALLOWED", + 3: "IMMUTABLE_FIELD", + 4: "REQUIRED_FIELD_MISSING", + 5: "CANNOT_CANCEL_APPROVED_PROPOSAL", + 6: "CANNOT_REMOVE_UNAPPROVED_BUDGET", + 7: "CANNOT_REMOVE_RUNNING_BUDGET", + 8: "CANNOT_END_UNAPPROVED_BUDGET", + 9: "CANNOT_END_INACTIVE_BUDGET", + 10: "BUDGET_NAME_REQUIRED", + 11: "CANNOT_UPDATE_OLD_BUDGET", + 12: "CANNOT_END_IN_PAST", + 13: "CANNOT_EXTEND_END_TIME", + 14: "PURCHASE_ORDER_NUMBER_REQUIRED", + 15: "PENDING_UPDATE_PROPOSAL_EXISTS", + 16: "MULTIPLE_BUDGETS_NOT_ALLOWED_FOR_UNAPPROVED_BILLING_SETUP", + 17: "CANNOT_UPDATE_START_TIME_FOR_STARTED_BUDGET", + 18: "SPENDING_LIMIT_LOWER_THAN_ACCRUED_COST_NOT_ALLOWED", + 19: "UPDATE_IS_NO_OP", + 20: "END_TIME_MUST_FOLLOW_START_TIME", + 21: "BUDGET_DATE_RANGE_INCOMPATIBLE_WITH_BILLING_SETUP", + 22: "NOT_AUTHORIZED", + 23: "INVALID_BILLING_SETUP", +} +var AccountBudgetProposalErrorEnum_AccountBudgetProposalError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "FIELD_MASK_NOT_ALLOWED": 2, + "IMMUTABLE_FIELD": 3, + "REQUIRED_FIELD_MISSING": 4, + "CANNOT_CANCEL_APPROVED_PROPOSAL": 5, + "CANNOT_REMOVE_UNAPPROVED_BUDGET": 6, + "CANNOT_REMOVE_RUNNING_BUDGET": 7, + "CANNOT_END_UNAPPROVED_BUDGET": 8, + "CANNOT_END_INACTIVE_BUDGET": 9, + "BUDGET_NAME_REQUIRED": 10, + "CANNOT_UPDATE_OLD_BUDGET": 11, + "CANNOT_END_IN_PAST": 12, + "CANNOT_EXTEND_END_TIME": 13, + "PURCHASE_ORDER_NUMBER_REQUIRED": 14, + "PENDING_UPDATE_PROPOSAL_EXISTS": 15, + "MULTIPLE_BUDGETS_NOT_ALLOWED_FOR_UNAPPROVED_BILLING_SETUP": 16, + "CANNOT_UPDATE_START_TIME_FOR_STARTED_BUDGET": 17, + "SPENDING_LIMIT_LOWER_THAN_ACCRUED_COST_NOT_ALLOWED": 18, + "UPDATE_IS_NO_OP": 19, + "END_TIME_MUST_FOLLOW_START_TIME": 20, + "BUDGET_DATE_RANGE_INCOMPATIBLE_WITH_BILLING_SETUP": 21, + "NOT_AUTHORIZED": 22, + "INVALID_BILLING_SETUP": 23, +} + +func (x AccountBudgetProposalErrorEnum_AccountBudgetProposalError) String() string { + return proto.EnumName(AccountBudgetProposalErrorEnum_AccountBudgetProposalError_name, int32(x)) +} +func (AccountBudgetProposalErrorEnum_AccountBudgetProposalError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_account_budget_proposal_error_c86ef659348a5c67, []int{0, 0} +} + +// Container for enum describing possible account budget proposal errors. +type AccountBudgetProposalErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AccountBudgetProposalErrorEnum) Reset() { *m = AccountBudgetProposalErrorEnum{} } +func (m *AccountBudgetProposalErrorEnum) String() string { return proto.CompactTextString(m) } +func (*AccountBudgetProposalErrorEnum) ProtoMessage() {} +func (*AccountBudgetProposalErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_account_budget_proposal_error_c86ef659348a5c67, []int{0} +} +func (m *AccountBudgetProposalErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AccountBudgetProposalErrorEnum.Unmarshal(m, b) +} +func (m *AccountBudgetProposalErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AccountBudgetProposalErrorEnum.Marshal(b, m, deterministic) +} +func (dst *AccountBudgetProposalErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_AccountBudgetProposalErrorEnum.Merge(dst, src) +} +func (m *AccountBudgetProposalErrorEnum) XXX_Size() int { + return xxx_messageInfo_AccountBudgetProposalErrorEnum.Size(m) +} +func (m *AccountBudgetProposalErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_AccountBudgetProposalErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_AccountBudgetProposalErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*AccountBudgetProposalErrorEnum)(nil), "google.ads.googleads.v0.errors.AccountBudgetProposalErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.AccountBudgetProposalErrorEnum_AccountBudgetProposalError", AccountBudgetProposalErrorEnum_AccountBudgetProposalError_name, AccountBudgetProposalErrorEnum_AccountBudgetProposalError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/account_budget_proposal_error.proto", fileDescriptor_account_budget_proposal_error_c86ef659348a5c67) +} + +var fileDescriptor_account_budget_proposal_error_c86ef659348a5c67 = []byte{ + // 648 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x54, 0x5d, 0x6f, 0xd3, 0x3c, + 0x14, 0x7e, 0xb7, 0xbd, 0x6f, 0xf7, 0xe2, 0xc1, 0x66, 0xbc, 0x0f, 0xc6, 0x34, 0x75, 0xa8, 0x5c, + 0x22, 0xa5, 0x05, 0x04, 0x12, 0x42, 0x5c, 0xb8, 0xc9, 0x69, 0x6b, 0x2d, 0xb1, 0x8d, 0x3f, 0xba, + 0x69, 0xaa, 0x64, 0x75, 0x6b, 0x55, 0x21, 0x6d, 0x4d, 0xd5, 0x6c, 0xfb, 0x41, 0x5c, 0x72, 0xc7, + 0xdf, 0xe0, 0x1a, 0xfe, 0x0f, 0x72, 0xd2, 0x74, 0xed, 0xc4, 0xb8, 0x88, 0x72, 0x92, 0xf3, 0x3c, + 0xcf, 0xf9, 0xf0, 0x39, 0x46, 0xcd, 0x51, 0x9a, 0x8e, 0x2e, 0x87, 0xf5, 0xfe, 0x20, 0xab, 0x17, + 0xa6, 0xb7, 0x6e, 0x1b, 0xf5, 0xe1, 0x74, 0x9a, 0x4e, 0xb3, 0x7a, 0xff, 0xe2, 0x22, 0xbd, 0x19, + 0x5f, 0xbb, 0xf3, 0x9b, 0xc1, 0x68, 0x78, 0xed, 0x26, 0xd3, 0x74, 0x92, 0x66, 0xfd, 0x4b, 0x97, + 0xbb, 0x83, 0xc9, 0x34, 0xbd, 0x4e, 0x49, 0xb5, 0x20, 0x06, 0xfd, 0x41, 0x16, 0xcc, 0x35, 0x82, + 0xdb, 0x46, 0x50, 0x68, 0xd4, 0x7e, 0x56, 0x50, 0x95, 0x16, 0x3a, 0xcd, 0x5c, 0x46, 0xce, 0x54, + 0xc0, 0xfb, 0x61, 0x7c, 0x73, 0x55, 0xfb, 0x5e, 0x41, 0x07, 0x0f, 0x43, 0xc8, 0x16, 0xda, 0xb0, + 0x5c, 0x4b, 0x08, 0x59, 0x8b, 0x41, 0x84, 0xff, 0x21, 0x1b, 0x68, 0xdd, 0xf2, 0x63, 0x2e, 0x4e, + 0x38, 0x5e, 0x21, 0x07, 0x68, 0xaf, 0xc5, 0x20, 0x8e, 0x5c, 0x42, 0xf5, 0xb1, 0xe3, 0xc2, 0x38, + 0x1a, 0xc7, 0xe2, 0x04, 0x22, 0xbc, 0x4a, 0xb6, 0xd1, 0x16, 0x4b, 0x12, 0x6b, 0x68, 0x33, 0x06, + 0x97, 0xa3, 0xf0, 0x9a, 0x27, 0x28, 0xf8, 0x6c, 0x99, 0x82, 0xc8, 0xcd, 0x98, 0x4c, 0x6b, 0xc6, + 0xdb, 0xf8, 0x5f, 0xf2, 0x12, 0x1d, 0x85, 0x94, 0x7b, 0x91, 0x90, 0xf2, 0x10, 0x62, 0x47, 0xa5, + 0x54, 0xa2, 0x0b, 0x91, 0x93, 0x4a, 0x48, 0xa1, 0x69, 0x8c, 0xff, 0x5b, 0x00, 0x29, 0x48, 0x44, + 0x17, 0x9c, 0xe5, 0x73, 0x58, 0xd3, 0x46, 0x6d, 0x30, 0xb8, 0x42, 0x5e, 0xa0, 0xc3, 0x65, 0x90, + 0xb2, 0x9c, 0x33, 0xde, 0x2e, 0x11, 0xeb, 0x0b, 0x08, 0xe0, 0xd1, 0x1f, 0x34, 0xfe, 0x27, 0x55, + 0x74, 0xb0, 0x80, 0x60, 0x9c, 0x86, 0x86, 0x75, 0xa1, 0xf4, 0x3f, 0x22, 0xfb, 0x68, 0xa7, 0xb0, + 0x1d, 0xa7, 0x09, 0xb8, 0xb2, 0x2a, 0x8c, 0xc8, 0x21, 0xda, 0x9f, 0x31, 0xad, 0x8c, 0xa8, 0x01, + 0x27, 0xe2, 0xb9, 0xee, 0x06, 0xd9, 0x43, 0x64, 0x49, 0xd7, 0x49, 0xaa, 0x0d, 0x7e, 0xec, 0x3b, + 0x53, 0xfe, 0x3f, 0x35, 0xde, 0xe5, 0x1f, 0xc3, 0x12, 0xc0, 0x4f, 0x48, 0x0d, 0x55, 0xa5, 0x55, + 0x61, 0x87, 0x6a, 0x70, 0x42, 0x45, 0xa0, 0x1c, 0xb7, 0x49, 0x13, 0xd4, 0x5d, 0xd4, 0xcd, 0x1c, + 0x03, 0x3c, 0xf2, 0x55, 0xce, 0xc2, 0x96, 0x5d, 0x73, 0x70, 0xca, 0xb4, 0xd1, 0x78, 0x8b, 0x7c, + 0x42, 0x1f, 0x12, 0x1b, 0x1b, 0x26, 0xe3, 0xb2, 0x10, 0xbd, 0x78, 0x68, 0xae, 0x25, 0xd4, 0x52, + 0x2f, 0x58, 0x1c, 0x7b, 0x3d, 0x0d, 0xc6, 0x4a, 0x8c, 0x49, 0x1d, 0xbd, 0x5a, 0x2e, 0x4c, 0x1b, + 0xaa, 0x4c, 0x9e, 0x64, 0x4e, 0xcd, 0x3f, 0xef, 0x7a, 0xf8, 0x94, 0xbc, 0x47, 0x6f, 0x74, 0x99, + 0x54, 0xcc, 0x12, 0x66, 0x9c, 0x8f, 0xa3, 0x9c, 0xe9, 0x50, 0xee, 0x68, 0x18, 0x2a, 0x0b, 0x91, + 0x0b, 0x85, 0x36, 0x4b, 0xa3, 0x43, 0xfc, 0xe8, 0xcc, 0x22, 0x30, 0x9f, 0xa0, 0x13, 0x12, 0x6f, + 0xfb, 0x93, 0x2f, 0x5b, 0xe2, 0x12, 0xab, 0x8d, 0x6b, 0x09, 0x4f, 0x58, 0x48, 0x02, 0xef, 0x90, + 0x77, 0xe8, 0xf5, 0xec, 0x54, 0x72, 0xba, 0xa2, 0xbc, 0x0d, 0x8e, 0xf1, 0x50, 0x24, 0x92, 0x1a, + 0xe6, 0x27, 0xf1, 0x84, 0x99, 0xce, 0xbd, 0xca, 0x76, 0x09, 0x41, 0x9b, 0x79, 0x06, 0xd6, 0x74, + 0x84, 0x62, 0x67, 0x10, 0xe1, 0x3d, 0xf2, 0x1c, 0xed, 0x32, 0xde, 0xa5, 0x31, 0xbb, 0xdf, 0x88, + 0x67, 0xcd, 0x5f, 0x2b, 0xa8, 0x76, 0x91, 0x5e, 0x05, 0x7f, 0xdf, 0xbe, 0xe6, 0xd1, 0xc3, 0x7b, + 0x25, 0xfd, 0xfa, 0xca, 0x95, 0xb3, 0x68, 0x26, 0x31, 0x4a, 0x2f, 0xfb, 0xe3, 0x51, 0x90, 0x4e, + 0x47, 0xf5, 0xd1, 0x70, 0x9c, 0x2f, 0x77, 0x79, 0x29, 0x4c, 0xbe, 0x64, 0x0f, 0xdd, 0x11, 0x1f, + 0x8b, 0xd7, 0xd7, 0xd5, 0xb5, 0x36, 0xa5, 0xdf, 0x56, 0xab, 0xed, 0x42, 0x8c, 0x0e, 0xb2, 0xa0, + 0x30, 0xbd, 0xd5, 0x6d, 0x04, 0x79, 0xc8, 0xec, 0x47, 0x09, 0xe8, 0xd1, 0x41, 0xd6, 0x9b, 0x03, + 0x7a, 0xdd, 0x46, 0xaf, 0x00, 0x9c, 0x57, 0xf2, 0xc0, 0x6f, 0x7f, 0x07, 0x00, 0x00, 0xff, 0xff, + 0x48, 0xff, 0xc4, 0xda, 0x9b, 0x04, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/ad_customizer_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/ad_customizer_error.pb.go new file mode 100644 index 000000000..249ced178 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/ad_customizer_error.pb.go @@ -0,0 +1,131 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/ad_customizer_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible ad customizer errors. +type AdCustomizerErrorEnum_AdCustomizerError int32 + +const ( + // Enum unspecified. + AdCustomizerErrorEnum_UNSPECIFIED AdCustomizerErrorEnum_AdCustomizerError = 0 + // The received error code is not known in this version. + AdCustomizerErrorEnum_UNKNOWN AdCustomizerErrorEnum_AdCustomizerError = 1 + // Invalid date argument in countdown function. + AdCustomizerErrorEnum_COUNTDOWN_INVALID_DATE_FORMAT AdCustomizerErrorEnum_AdCustomizerError = 2 + // Countdown end date is in the past. + AdCustomizerErrorEnum_COUNTDOWN_DATE_IN_PAST AdCustomizerErrorEnum_AdCustomizerError = 3 + // Invalid locale string in countdown function. + AdCustomizerErrorEnum_COUNTDOWN_INVALID_LOCALE AdCustomizerErrorEnum_AdCustomizerError = 4 + // Days-before argument to countdown function is not positive. + AdCustomizerErrorEnum_COUNTDOWN_INVALID_START_DAYS_BEFORE AdCustomizerErrorEnum_AdCustomizerError = 5 + // A user list referenced in an IF function does not exist. + AdCustomizerErrorEnum_UNKNOWN_USER_LIST AdCustomizerErrorEnum_AdCustomizerError = 6 +) + +var AdCustomizerErrorEnum_AdCustomizerError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "COUNTDOWN_INVALID_DATE_FORMAT", + 3: "COUNTDOWN_DATE_IN_PAST", + 4: "COUNTDOWN_INVALID_LOCALE", + 5: "COUNTDOWN_INVALID_START_DAYS_BEFORE", + 6: "UNKNOWN_USER_LIST", +} +var AdCustomizerErrorEnum_AdCustomizerError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "COUNTDOWN_INVALID_DATE_FORMAT": 2, + "COUNTDOWN_DATE_IN_PAST": 3, + "COUNTDOWN_INVALID_LOCALE": 4, + "COUNTDOWN_INVALID_START_DAYS_BEFORE": 5, + "UNKNOWN_USER_LIST": 6, +} + +func (x AdCustomizerErrorEnum_AdCustomizerError) String() string { + return proto.EnumName(AdCustomizerErrorEnum_AdCustomizerError_name, int32(x)) +} +func (AdCustomizerErrorEnum_AdCustomizerError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_ad_customizer_error_d214061e54f1882d, []int{0, 0} +} + +// Container for enum describing possible ad customizer errors. +type AdCustomizerErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AdCustomizerErrorEnum) Reset() { *m = AdCustomizerErrorEnum{} } +func (m *AdCustomizerErrorEnum) String() string { return proto.CompactTextString(m) } +func (*AdCustomizerErrorEnum) ProtoMessage() {} +func (*AdCustomizerErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_customizer_error_d214061e54f1882d, []int{0} +} +func (m *AdCustomizerErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AdCustomizerErrorEnum.Unmarshal(m, b) +} +func (m *AdCustomizerErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AdCustomizerErrorEnum.Marshal(b, m, deterministic) +} +func (dst *AdCustomizerErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_AdCustomizerErrorEnum.Merge(dst, src) +} +func (m *AdCustomizerErrorEnum) XXX_Size() int { + return xxx_messageInfo_AdCustomizerErrorEnum.Size(m) +} +func (m *AdCustomizerErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_AdCustomizerErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_AdCustomizerErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*AdCustomizerErrorEnum)(nil), "google.ads.googleads.v0.errors.AdCustomizerErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.AdCustomizerErrorEnum_AdCustomizerError", AdCustomizerErrorEnum_AdCustomizerError_name, AdCustomizerErrorEnum_AdCustomizerError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/ad_customizer_error.proto", fileDescriptor_ad_customizer_error_d214061e54f1882d) +} + +var fileDescriptor_ad_customizer_error_d214061e54f1882d = []byte{ + // 349 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x91, 0xc1, 0x6a, 0xea, 0x40, + 0x14, 0x86, 0x6f, 0xf4, 0x5e, 0x2f, 0x8c, 0x8b, 0x1b, 0x07, 0x94, 0x4b, 0x69, 0x85, 0xda, 0x45, + 0x77, 0x93, 0x40, 0x37, 0x85, 0xae, 0xc6, 0x64, 0x94, 0xd0, 0x74, 0x12, 0x92, 0x89, 0xd2, 0x12, + 0x18, 0x52, 0x13, 0x82, 0xa0, 0x8e, 0x64, 0xd4, 0x45, 0x1f, 0xa7, 0xcb, 0x3e, 0x4a, 0x29, 0x7d, + 0x8e, 0x3e, 0x46, 0x49, 0x46, 0xed, 0x22, 0xb4, 0xab, 0xf9, 0x39, 0xe7, 0xff, 0xe6, 0xcc, 0xfc, + 0x07, 0x5c, 0xe7, 0x42, 0xe4, 0x8b, 0xcc, 0x48, 0x52, 0x69, 0x28, 0x59, 0xaa, 0x9d, 0x69, 0x64, + 0x45, 0x21, 0x0a, 0x69, 0x24, 0x29, 0x9f, 0x6d, 0xe5, 0x46, 0x2c, 0xe7, 0x4f, 0x59, 0xc1, 0xab, + 0x22, 0x5a, 0x17, 0x62, 0x23, 0x60, 0x5f, 0xd9, 0x51, 0x92, 0x4a, 0x74, 0x24, 0xd1, 0xce, 0x44, + 0x8a, 0x1c, 0x7c, 0x68, 0xa0, 0x8b, 0x53, 0xeb, 0x08, 0x93, 0xb2, 0x4c, 0x56, 0xdb, 0xe5, 0xe0, + 0x5d, 0x03, 0x9d, 0x5a, 0x07, 0xfe, 0x03, 0xed, 0x88, 0x86, 0x3e, 0xb1, 0x9c, 0x91, 0x43, 0x6c, + 0xfd, 0x17, 0x6c, 0x83, 0xbf, 0x11, 0xbd, 0xa5, 0xde, 0x94, 0xea, 0x1a, 0x3c, 0x07, 0x67, 0x96, + 0x17, 0x51, 0x66, 0x7b, 0x53, 0xca, 0x1d, 0x3a, 0xc1, 0xae, 0x63, 0x73, 0x1b, 0x33, 0xc2, 0x47, + 0x5e, 0x70, 0x87, 0x99, 0xde, 0x80, 0x27, 0xa0, 0xf7, 0x65, 0xa9, 0x5a, 0x0e, 0xe5, 0x3e, 0x0e, + 0x99, 0xde, 0x84, 0xa7, 0xe0, 0x7f, 0x1d, 0x77, 0x3d, 0x0b, 0xbb, 0x44, 0xff, 0x0d, 0x2f, 0xc1, + 0x45, 0xbd, 0x1b, 0x32, 0x1c, 0x30, 0x6e, 0xe3, 0xfb, 0x90, 0x0f, 0xc9, 0xc8, 0x0b, 0x88, 0xfe, + 0x07, 0x76, 0x41, 0x67, 0xff, 0x24, 0x1e, 0x85, 0x24, 0xe0, 0xae, 0x13, 0x32, 0xbd, 0x35, 0x7c, + 0xd3, 0xc0, 0x60, 0x26, 0x96, 0xe8, 0xe7, 0x44, 0x86, 0xbd, 0xda, 0xa7, 0xfd, 0x32, 0x49, 0x5f, + 0x7b, 0xb0, 0xf7, 0x64, 0x2e, 0x16, 0xc9, 0x2a, 0x47, 0xa2, 0xc8, 0x8d, 0x3c, 0x5b, 0x55, 0x39, + 0x1f, 0xb6, 0xb2, 0x9e, 0xcb, 0xef, 0x96, 0x74, 0xa3, 0x8e, 0xe7, 0x46, 0x73, 0x8c, 0xf1, 0x4b, + 0xa3, 0x3f, 0x56, 0x97, 0xe1, 0x54, 0x22, 0x25, 0x4b, 0x35, 0x31, 0x51, 0x35, 0x52, 0xbe, 0x1e, + 0x0c, 0x31, 0x4e, 0x65, 0x7c, 0x34, 0xc4, 0x13, 0x33, 0x56, 0x86, 0xc7, 0x56, 0x35, 0xf8, 0xea, + 0x33, 0x00, 0x00, 0xff, 0xff, 0x20, 0xba, 0x61, 0xed, 0x1c, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/ad_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/ad_error.pb.go new file mode 100644 index 000000000..3e7826428 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/ad_error.pb.go @@ -0,0 +1,754 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/ad_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible ad errors. +type AdErrorEnum_AdError int32 + +const ( + // Enum unspecified. + AdErrorEnum_UNSPECIFIED AdErrorEnum_AdError = 0 + // The received error code is not known in this version. + AdErrorEnum_UNKNOWN AdErrorEnum_AdError = 1 + // Ad customizers are not supported for ad type. + AdErrorEnum_AD_CUSTOMIZERS_NOT_SUPPORTED_FOR_AD_TYPE AdErrorEnum_AdError = 2 + // Estimating character sizes the string is too long. + AdErrorEnum_APPROXIMATELY_TOO_LONG AdErrorEnum_AdError = 3 + // Estimating character sizes the string is too short. + AdErrorEnum_APPROXIMATELY_TOO_SHORT AdErrorEnum_AdError = 4 + // There is a problem with the snippet. + AdErrorEnum_BAD_SNIPPET AdErrorEnum_AdError = 5 + // Cannot modify an ad. + AdErrorEnum_CANNOT_MODIFY_AD AdErrorEnum_AdError = 6 + // business name and url cannot be set at the same time + AdErrorEnum_CANNOT_SET_BUSINESS_NAME_IF_URL_SET AdErrorEnum_AdError = 7 + // The specified field is incompatible with this ad's type or settings. + AdErrorEnum_CANNOT_SET_FIELD AdErrorEnum_AdError = 8 + // Cannot set field when originAdId is set. + AdErrorEnum_CANNOT_SET_FIELD_WITH_ORIGIN_AD_ID_SET AdErrorEnum_AdError = 9 + // Cannot set field when an existing ad id is set for sharing. + AdErrorEnum_CANNOT_SET_FIELD_WITH_AD_ID_SET_FOR_SHARING AdErrorEnum_AdError = 10 + // Cannot set allowFlexibleColor false if no color is provided by user. + AdErrorEnum_CANNOT_SET_ALLOW_FLEXIBLE_COLOR_FALSE AdErrorEnum_AdError = 11 + // When user select native, no color control is allowed because we will + // always respect publisher color for native format serving. + AdErrorEnum_CANNOT_SET_COLOR_CONTROL_WHEN_NATIVE_FORMAT_SETTING AdErrorEnum_AdError = 12 + // Cannot specify a url for the ad type + AdErrorEnum_CANNOT_SET_URL AdErrorEnum_AdError = 13 + // Cannot specify a tracking or mobile url without also setting final urls + AdErrorEnum_CANNOT_SET_WITHOUT_FINAL_URLS AdErrorEnum_AdError = 14 + // Cannot specify a legacy url and a final url simultaneously + AdErrorEnum_CANNOT_SET_WITH_FINAL_URLS AdErrorEnum_AdError = 15 + // Cannot specify a legacy url and a tracking url template simultaneously in + // a DSA. + AdErrorEnum_CANNOT_SET_WITH_TRACKING_URL_TEMPLATE AdErrorEnum_AdError = 16 + // Cannot specify a urls in UrlData and in template fields simultaneously. + AdErrorEnum_CANNOT_SET_WITH_URL_DATA AdErrorEnum_AdError = 17 + // This operator cannot be used with a subclass of Ad. + AdErrorEnum_CANNOT_USE_AD_SUBCLASS_FOR_OPERATOR AdErrorEnum_AdError = 18 + // Customer is not approved for mobile ads. + AdErrorEnum_CUSTOMER_NOT_APPROVED_MOBILEADS AdErrorEnum_AdError = 19 + // Customer is not approved for 3PAS richmedia ads. + AdErrorEnum_CUSTOMER_NOT_APPROVED_THIRDPARTY_ADS AdErrorEnum_AdError = 20 + // Customer is not approved for 3PAS redirect richmedia (Ad Exchange) ads. + AdErrorEnum_CUSTOMER_NOT_APPROVED_THIRDPARTY_REDIRECT_ADS AdErrorEnum_AdError = 21 + // Not an eligible customer + AdErrorEnum_CUSTOMER_NOT_ELIGIBLE AdErrorEnum_AdError = 22 + // Customer is not eligible for updating beacon url + AdErrorEnum_CUSTOMER_NOT_ELIGIBLE_FOR_UPDATING_BEACON_URL AdErrorEnum_AdError = 23 + // There already exists an ad with the same dimensions in the union. + AdErrorEnum_DIMENSION_ALREADY_IN_UNION AdErrorEnum_AdError = 24 + // Ad's dimension must be set before setting union dimension. + AdErrorEnum_DIMENSION_MUST_BE_SET AdErrorEnum_AdError = 25 + // Ad's dimension must be included in the union dimensions. + AdErrorEnum_DIMENSION_NOT_IN_UNION AdErrorEnum_AdError = 26 + // Display Url cannot be specified (applies to Ad Exchange Ads) + AdErrorEnum_DISPLAY_URL_CANNOT_BE_SPECIFIED AdErrorEnum_AdError = 27 + // Telephone number contains invalid characters or invalid format. Please + // re-enter your number using digits (0-9), dashes (-), and parentheses + // only. + AdErrorEnum_DOMESTIC_PHONE_NUMBER_FORMAT AdErrorEnum_AdError = 28 + // Emergency telephone numbers are not allowed. Please enter a valid + // domestic phone number to connect customers to your business. + AdErrorEnum_EMERGENCY_PHONE_NUMBER AdErrorEnum_AdError = 29 + // A required field was not specified or is an empty string. + AdErrorEnum_EMPTY_FIELD AdErrorEnum_AdError = 30 + // A feed attribute referenced in an ad customizer tag is not in the ad + // customizer mapping for the feed. + AdErrorEnum_FEED_ATTRIBUTE_MUST_HAVE_MAPPING_FOR_TYPE_ID AdErrorEnum_AdError = 31 + // The ad customizer field mapping for the feed attribute does not match the + // expected field type. + AdErrorEnum_FEED_ATTRIBUTE_MAPPING_TYPE_MISMATCH AdErrorEnum_AdError = 32 + // The use of ad customizer tags in the ad text is disallowed. Details in + // trigger. + AdErrorEnum_ILLEGAL_AD_CUSTOMIZER_TAG_USE AdErrorEnum_AdError = 33 + // Tags of the form {PH_x}, where x is a number, are disallowed in ad text. + AdErrorEnum_ILLEGAL_TAG_USE AdErrorEnum_AdError = 34 + // The dimensions of the ad are specified or derived in multiple ways and + // are not consistent. + AdErrorEnum_INCONSISTENT_DIMENSIONS AdErrorEnum_AdError = 35 + // The status cannot differ among template ads of the same union. + AdErrorEnum_INCONSISTENT_STATUS_IN_TEMPLATE_UNION AdErrorEnum_AdError = 36 + // The length of the string is not valid. + AdErrorEnum_INCORRECT_LENGTH AdErrorEnum_AdError = 37 + // The ad is ineligible for upgrade. + AdErrorEnum_INELIGIBLE_FOR_UPGRADE AdErrorEnum_AdError = 38 + // User cannot create mobile ad for countries targeted in specified + // campaign. + AdErrorEnum_INVALID_AD_ADDRESS_CAMPAIGN_TARGET AdErrorEnum_AdError = 39 + // Invalid Ad type. A specific type of Ad is required. + AdErrorEnum_INVALID_AD_TYPE AdErrorEnum_AdError = 40 + // Headline, description or phone cannot be present when creating mobile + // image ad. + AdErrorEnum_INVALID_ATTRIBUTES_FOR_MOBILE_IMAGE AdErrorEnum_AdError = 41 + // Image cannot be present when creating mobile text ad. + AdErrorEnum_INVALID_ATTRIBUTES_FOR_MOBILE_TEXT AdErrorEnum_AdError = 42 + // Invalid call to action text. + AdErrorEnum_INVALID_CALL_TO_ACTION_TEXT AdErrorEnum_AdError = 43 + // Invalid character in URL. + AdErrorEnum_INVALID_CHARACTER_FOR_URL AdErrorEnum_AdError = 44 + // Creative's country code is not valid. + AdErrorEnum_INVALID_COUNTRY_CODE AdErrorEnum_AdError = 45 + // Invalid use of Dynamic Search Ads tags ({lpurl} etc.) + AdErrorEnum_INVALID_DSA_URL_TAG AdErrorEnum_AdError = 46 + // Invalid use of Expanded Dynamic Search Ads tags ({lpurl} etc.) + AdErrorEnum_INVALID_EXPANDED_DYNAMIC_SEARCH_AD_TAG AdErrorEnum_AdError = 47 + // An input error whose real reason was not properly mapped (should not + // happen). + AdErrorEnum_INVALID_INPUT AdErrorEnum_AdError = 48 + // An invalid markup language was entered. + AdErrorEnum_INVALID_MARKUP_LANGUAGE AdErrorEnum_AdError = 49 + // An invalid mobile carrier was entered. + AdErrorEnum_INVALID_MOBILE_CARRIER AdErrorEnum_AdError = 50 + // Specified mobile carriers target a country not targeted by the campaign. + AdErrorEnum_INVALID_MOBILE_CARRIER_TARGET AdErrorEnum_AdError = 51 + // Wrong number of elements for given element type + AdErrorEnum_INVALID_NUMBER_OF_ELEMENTS AdErrorEnum_AdError = 52 + // The format of the telephone number is incorrect. Please re-enter the + // number using the correct format. + AdErrorEnum_INVALID_PHONE_NUMBER_FORMAT AdErrorEnum_AdError = 53 + // The certified vendor format id is incorrect. + AdErrorEnum_INVALID_RICH_MEDIA_CERTIFIED_VENDOR_FORMAT_ID AdErrorEnum_AdError = 54 + // The template ad data contains validation errors. + AdErrorEnum_INVALID_TEMPLATE_DATA AdErrorEnum_AdError = 55 + // The template field doesn't have have the correct type. + AdErrorEnum_INVALID_TEMPLATE_ELEMENT_FIELD_TYPE AdErrorEnum_AdError = 56 + // Invalid template id. + AdErrorEnum_INVALID_TEMPLATE_ID AdErrorEnum_AdError = 57 + // After substituting replacement strings, the line is too wide. + AdErrorEnum_LINE_TOO_WIDE AdErrorEnum_AdError = 58 + // The feed referenced must have ad customizer mapping to be used in a + // customizer tag. + AdErrorEnum_MISSING_AD_CUSTOMIZER_MAPPING AdErrorEnum_AdError = 59 + // Missing address component in template element address field. + AdErrorEnum_MISSING_ADDRESS_COMPONENT AdErrorEnum_AdError = 60 + // An ad name must be entered. + AdErrorEnum_MISSING_ADVERTISEMENT_NAME AdErrorEnum_AdError = 61 + // Business name must be entered. + AdErrorEnum_MISSING_BUSINESS_NAME AdErrorEnum_AdError = 62 + // Description (line 2) must be entered. + AdErrorEnum_MISSING_DESCRIPTION1 AdErrorEnum_AdError = 63 + // Description (line 3) must be entered. + AdErrorEnum_MISSING_DESCRIPTION2 AdErrorEnum_AdError = 64 + // The destination url must contain at least one tag (e.g. {lpurl}) + AdErrorEnum_MISSING_DESTINATION_URL_TAG AdErrorEnum_AdError = 65 + // The tracking url template of ExpandedDynamicSearchAd must contain at + // least one tag. (e.g. {lpurl}) + AdErrorEnum_MISSING_LANDING_PAGE_URL_TAG AdErrorEnum_AdError = 66 + // A valid dimension must be specified for this ad. + AdErrorEnum_MISSING_DIMENSION AdErrorEnum_AdError = 67 + // A display URL must be entered. + AdErrorEnum_MISSING_DISPLAY_URL AdErrorEnum_AdError = 68 + // Headline must be entered. + AdErrorEnum_MISSING_HEADLINE AdErrorEnum_AdError = 69 + // A height must be entered. + AdErrorEnum_MISSING_HEIGHT AdErrorEnum_AdError = 70 + // An image must be entered. + AdErrorEnum_MISSING_IMAGE AdErrorEnum_AdError = 71 + // Marketing image or product videos are required. + AdErrorEnum_MISSING_MARKETING_IMAGE_OR_PRODUCT_VIDEOS AdErrorEnum_AdError = 72 + // The markup language in which your site is written must be entered. + AdErrorEnum_MISSING_MARKUP_LANGUAGES AdErrorEnum_AdError = 73 + // A mobile carrier must be entered. + AdErrorEnum_MISSING_MOBILE_CARRIER AdErrorEnum_AdError = 74 + // Phone number must be entered. + AdErrorEnum_MISSING_PHONE AdErrorEnum_AdError = 75 + // Missing required template fields + AdErrorEnum_MISSING_REQUIRED_TEMPLATE_FIELDS AdErrorEnum_AdError = 76 + // Missing a required field value + AdErrorEnum_MISSING_TEMPLATE_FIELD_VALUE AdErrorEnum_AdError = 77 + // The ad must have text. + AdErrorEnum_MISSING_TEXT AdErrorEnum_AdError = 78 + // A visible URL must be entered. + AdErrorEnum_MISSING_VISIBLE_URL AdErrorEnum_AdError = 79 + // A width must be entered. + AdErrorEnum_MISSING_WIDTH AdErrorEnum_AdError = 80 + // Only 1 feed can be used as the source of ad customizer substitutions in a + // single ad. + AdErrorEnum_MULTIPLE_DISTINCT_FEEDS_UNSUPPORTED AdErrorEnum_AdError = 81 + // TempAdUnionId must be use when adding template ads. + AdErrorEnum_MUST_USE_TEMP_AD_UNION_ID_ON_ADD AdErrorEnum_AdError = 82 + // The string has too many characters. + AdErrorEnum_TOO_LONG AdErrorEnum_AdError = 83 + // The string has too few characters. + AdErrorEnum_TOO_SHORT AdErrorEnum_AdError = 84 + // Ad union dimensions cannot change for saved ads. + AdErrorEnum_UNION_DIMENSIONS_CANNOT_CHANGE AdErrorEnum_AdError = 85 + // Address component is not {country, lat, lng}. + AdErrorEnum_UNKNOWN_ADDRESS_COMPONENT AdErrorEnum_AdError = 86 + // Unknown unique field name + AdErrorEnum_UNKNOWN_FIELD_NAME AdErrorEnum_AdError = 87 + // Unknown unique name (template element type specifier) + AdErrorEnum_UNKNOWN_UNIQUE_NAME AdErrorEnum_AdError = 88 + // Unsupported ad dimension + AdErrorEnum_UNSUPPORTED_DIMENSIONS AdErrorEnum_AdError = 89 + // URL starts with an invalid scheme. + AdErrorEnum_URL_INVALID_SCHEME AdErrorEnum_AdError = 90 + // URL ends with an invalid top-level domain name. + AdErrorEnum_URL_INVALID_TOP_LEVEL_DOMAIN AdErrorEnum_AdError = 91 + // URL contains illegal characters. + AdErrorEnum_URL_MALFORMED AdErrorEnum_AdError = 92 + // URL must contain a host name. + AdErrorEnum_URL_NO_HOST AdErrorEnum_AdError = 93 + // URL not equivalent during upgrade. + AdErrorEnum_URL_NOT_EQUIVALENT AdErrorEnum_AdError = 94 + // URL host name too long to be stored as visible URL (applies to Ad + // Exchange ads) + AdErrorEnum_URL_HOST_NAME_TOO_LONG AdErrorEnum_AdError = 95 + // URL must start with a scheme. + AdErrorEnum_URL_NO_SCHEME AdErrorEnum_AdError = 96 + // URL should end in a valid domain extension, such as .com or .net. + AdErrorEnum_URL_NO_TOP_LEVEL_DOMAIN AdErrorEnum_AdError = 97 + // URL must not end with a path. + AdErrorEnum_URL_PATH_NOT_ALLOWED AdErrorEnum_AdError = 98 + // URL must not specify a port. + AdErrorEnum_URL_PORT_NOT_ALLOWED AdErrorEnum_AdError = 99 + // URL must not contain a query. + AdErrorEnum_URL_QUERY_NOT_ALLOWED AdErrorEnum_AdError = 100 + // A url scheme is not allowed in front of tag in dest url (e.g. + // http://{lpurl}) + AdErrorEnum_URL_SCHEME_BEFORE_DSA_TAG AdErrorEnum_AdError = 101 + // A url scheme is not allowed in front of tag in tracking url template + // (e.g. http://{lpurl}) + AdErrorEnum_URL_SCHEME_BEFORE_EXPANDED_DYNAMIC_SEARCH_AD_TAG AdErrorEnum_AdError = 102 + // The user does not have permissions to create a template ad for the given + // template. + AdErrorEnum_USER_DOES_NOT_HAVE_ACCESS_TO_TEMPLATE AdErrorEnum_AdError = 103 + // Expandable setting is inconsistent/wrong. For example, an AdX ad is + // invalid if it has a expandable vendor format but no expanding directions + // specified, or expanding directions is specified, but the vendor format is + // not expandable. + AdErrorEnum_INCONSISTENT_EXPANDABLE_SETTINGS AdErrorEnum_AdError = 104 + // Format is invalid + AdErrorEnum_INVALID_FORMAT AdErrorEnum_AdError = 105 + // The text of this field did not match a pattern of allowed values. + AdErrorEnum_INVALID_FIELD_TEXT AdErrorEnum_AdError = 106 + // Template element is mising + AdErrorEnum_ELEMENT_NOT_PRESENT AdErrorEnum_AdError = 107 + // Error occurred during image processing + AdErrorEnum_IMAGE_ERROR AdErrorEnum_AdError = 108 + // The value is not within the valid range + AdErrorEnum_VALUE_NOT_IN_RANGE AdErrorEnum_AdError = 109 + // Template element field is not present + AdErrorEnum_FIELD_NOT_PRESENT AdErrorEnum_AdError = 110 + // Address is incomplete + AdErrorEnum_ADDRESS_NOT_COMPLETE AdErrorEnum_AdError = 111 + // Invalid address + AdErrorEnum_ADDRESS_INVALID AdErrorEnum_AdError = 112 + // Error retrieving specified video + AdErrorEnum_VIDEO_RETRIEVAL_ERROR AdErrorEnum_AdError = 113 + // Error processing audio + AdErrorEnum_AUDIO_ERROR AdErrorEnum_AdError = 114 + // Display URL is incorrect for YouTube PYV ads + AdErrorEnum_INVALID_YOUTUBE_DISPLAY_URL AdErrorEnum_AdError = 115 + // Too many product Images in GmailAd + AdErrorEnum_TOO_MANY_PRODUCT_IMAGES AdErrorEnum_AdError = 116 + // Too many product Videos in GmailAd + AdErrorEnum_TOO_MANY_PRODUCT_VIDEOS AdErrorEnum_AdError = 117 + // The device preference is not compatible with the ad type + AdErrorEnum_INCOMPATIBLE_AD_TYPE_AND_DEVICE_PREFERENCE AdErrorEnum_AdError = 118 + // Call tracking is not supported for specified country. + AdErrorEnum_CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY AdErrorEnum_AdError = 119 + // Carrier specific short number is not allowed. + AdErrorEnum_CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED AdErrorEnum_AdError = 120 + // Specified phone number type is disallowed. + AdErrorEnum_DISALLOWED_NUMBER_TYPE AdErrorEnum_AdError = 121 + // Phone number not supported for country. + AdErrorEnum_PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY AdErrorEnum_AdError = 122 + // Phone number not supported with call tracking enabled for country. + AdErrorEnum_PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY AdErrorEnum_AdError = 123 + // Premium rate phone number is not allowed. + AdErrorEnum_PREMIUM_RATE_NUMBER_NOT_ALLOWED AdErrorEnum_AdError = 124 + // Vanity phone number is not allowed. + AdErrorEnum_VANITY_PHONE_NUMBER_NOT_ALLOWED AdErrorEnum_AdError = 125 + // Invalid call conversion type id. + AdErrorEnum_INVALID_CALL_CONVERSION_TYPE_ID AdErrorEnum_AdError = 126 + // Cannot disable call conversion and set conversion type id. + AdErrorEnum_CANNOT_DISABLE_CALL_CONVERSION_AND_SET_CONVERSION_TYPE_ID AdErrorEnum_AdError = 127 + // Cannot set path2 without path1. + AdErrorEnum_CANNOT_SET_PATH2_WITHOUT_PATH1 AdErrorEnum_AdError = 128 + // Missing domain name in campaign setting when adding expanded dynamic + // search ad. + AdErrorEnum_MISSING_DYNAMIC_SEARCH_ADS_SETTING_DOMAIN_NAME AdErrorEnum_AdError = 129 + // The associated ad is not compatible with restriction type. + AdErrorEnum_INCOMPATIBLE_WITH_RESTRICTION_TYPE AdErrorEnum_AdError = 130 +) + +var AdErrorEnum_AdError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "AD_CUSTOMIZERS_NOT_SUPPORTED_FOR_AD_TYPE", + 3: "APPROXIMATELY_TOO_LONG", + 4: "APPROXIMATELY_TOO_SHORT", + 5: "BAD_SNIPPET", + 6: "CANNOT_MODIFY_AD", + 7: "CANNOT_SET_BUSINESS_NAME_IF_URL_SET", + 8: "CANNOT_SET_FIELD", + 9: "CANNOT_SET_FIELD_WITH_ORIGIN_AD_ID_SET", + 10: "CANNOT_SET_FIELD_WITH_AD_ID_SET_FOR_SHARING", + 11: "CANNOT_SET_ALLOW_FLEXIBLE_COLOR_FALSE", + 12: "CANNOT_SET_COLOR_CONTROL_WHEN_NATIVE_FORMAT_SETTING", + 13: "CANNOT_SET_URL", + 14: "CANNOT_SET_WITHOUT_FINAL_URLS", + 15: "CANNOT_SET_WITH_FINAL_URLS", + 16: "CANNOT_SET_WITH_TRACKING_URL_TEMPLATE", + 17: "CANNOT_SET_WITH_URL_DATA", + 18: "CANNOT_USE_AD_SUBCLASS_FOR_OPERATOR", + 19: "CUSTOMER_NOT_APPROVED_MOBILEADS", + 20: "CUSTOMER_NOT_APPROVED_THIRDPARTY_ADS", + 21: "CUSTOMER_NOT_APPROVED_THIRDPARTY_REDIRECT_ADS", + 22: "CUSTOMER_NOT_ELIGIBLE", + 23: "CUSTOMER_NOT_ELIGIBLE_FOR_UPDATING_BEACON_URL", + 24: "DIMENSION_ALREADY_IN_UNION", + 25: "DIMENSION_MUST_BE_SET", + 26: "DIMENSION_NOT_IN_UNION", + 27: "DISPLAY_URL_CANNOT_BE_SPECIFIED", + 28: "DOMESTIC_PHONE_NUMBER_FORMAT", + 29: "EMERGENCY_PHONE_NUMBER", + 30: "EMPTY_FIELD", + 31: "FEED_ATTRIBUTE_MUST_HAVE_MAPPING_FOR_TYPE_ID", + 32: "FEED_ATTRIBUTE_MAPPING_TYPE_MISMATCH", + 33: "ILLEGAL_AD_CUSTOMIZER_TAG_USE", + 34: "ILLEGAL_TAG_USE", + 35: "INCONSISTENT_DIMENSIONS", + 36: "INCONSISTENT_STATUS_IN_TEMPLATE_UNION", + 37: "INCORRECT_LENGTH", + 38: "INELIGIBLE_FOR_UPGRADE", + 39: "INVALID_AD_ADDRESS_CAMPAIGN_TARGET", + 40: "INVALID_AD_TYPE", + 41: "INVALID_ATTRIBUTES_FOR_MOBILE_IMAGE", + 42: "INVALID_ATTRIBUTES_FOR_MOBILE_TEXT", + 43: "INVALID_CALL_TO_ACTION_TEXT", + 44: "INVALID_CHARACTER_FOR_URL", + 45: "INVALID_COUNTRY_CODE", + 46: "INVALID_DSA_URL_TAG", + 47: "INVALID_EXPANDED_DYNAMIC_SEARCH_AD_TAG", + 48: "INVALID_INPUT", + 49: "INVALID_MARKUP_LANGUAGE", + 50: "INVALID_MOBILE_CARRIER", + 51: "INVALID_MOBILE_CARRIER_TARGET", + 52: "INVALID_NUMBER_OF_ELEMENTS", + 53: "INVALID_PHONE_NUMBER_FORMAT", + 54: "INVALID_RICH_MEDIA_CERTIFIED_VENDOR_FORMAT_ID", + 55: "INVALID_TEMPLATE_DATA", + 56: "INVALID_TEMPLATE_ELEMENT_FIELD_TYPE", + 57: "INVALID_TEMPLATE_ID", + 58: "LINE_TOO_WIDE", + 59: "MISSING_AD_CUSTOMIZER_MAPPING", + 60: "MISSING_ADDRESS_COMPONENT", + 61: "MISSING_ADVERTISEMENT_NAME", + 62: "MISSING_BUSINESS_NAME", + 63: "MISSING_DESCRIPTION1", + 64: "MISSING_DESCRIPTION2", + 65: "MISSING_DESTINATION_URL_TAG", + 66: "MISSING_LANDING_PAGE_URL_TAG", + 67: "MISSING_DIMENSION", + 68: "MISSING_DISPLAY_URL", + 69: "MISSING_HEADLINE", + 70: "MISSING_HEIGHT", + 71: "MISSING_IMAGE", + 72: "MISSING_MARKETING_IMAGE_OR_PRODUCT_VIDEOS", + 73: "MISSING_MARKUP_LANGUAGES", + 74: "MISSING_MOBILE_CARRIER", + 75: "MISSING_PHONE", + 76: "MISSING_REQUIRED_TEMPLATE_FIELDS", + 77: "MISSING_TEMPLATE_FIELD_VALUE", + 78: "MISSING_TEXT", + 79: "MISSING_VISIBLE_URL", + 80: "MISSING_WIDTH", + 81: "MULTIPLE_DISTINCT_FEEDS_UNSUPPORTED", + 82: "MUST_USE_TEMP_AD_UNION_ID_ON_ADD", + 83: "TOO_LONG", + 84: "TOO_SHORT", + 85: "UNION_DIMENSIONS_CANNOT_CHANGE", + 86: "UNKNOWN_ADDRESS_COMPONENT", + 87: "UNKNOWN_FIELD_NAME", + 88: "UNKNOWN_UNIQUE_NAME", + 89: "UNSUPPORTED_DIMENSIONS", + 90: "URL_INVALID_SCHEME", + 91: "URL_INVALID_TOP_LEVEL_DOMAIN", + 92: "URL_MALFORMED", + 93: "URL_NO_HOST", + 94: "URL_NOT_EQUIVALENT", + 95: "URL_HOST_NAME_TOO_LONG", + 96: "URL_NO_SCHEME", + 97: "URL_NO_TOP_LEVEL_DOMAIN", + 98: "URL_PATH_NOT_ALLOWED", + 99: "URL_PORT_NOT_ALLOWED", + 100: "URL_QUERY_NOT_ALLOWED", + 101: "URL_SCHEME_BEFORE_DSA_TAG", + 102: "URL_SCHEME_BEFORE_EXPANDED_DYNAMIC_SEARCH_AD_TAG", + 103: "USER_DOES_NOT_HAVE_ACCESS_TO_TEMPLATE", + 104: "INCONSISTENT_EXPANDABLE_SETTINGS", + 105: "INVALID_FORMAT", + 106: "INVALID_FIELD_TEXT", + 107: "ELEMENT_NOT_PRESENT", + 108: "IMAGE_ERROR", + 109: "VALUE_NOT_IN_RANGE", + 110: "FIELD_NOT_PRESENT", + 111: "ADDRESS_NOT_COMPLETE", + 112: "ADDRESS_INVALID", + 113: "VIDEO_RETRIEVAL_ERROR", + 114: "AUDIO_ERROR", + 115: "INVALID_YOUTUBE_DISPLAY_URL", + 116: "TOO_MANY_PRODUCT_IMAGES", + 117: "TOO_MANY_PRODUCT_VIDEOS", + 118: "INCOMPATIBLE_AD_TYPE_AND_DEVICE_PREFERENCE", + 119: "CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY", + 120: "CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED", + 121: "DISALLOWED_NUMBER_TYPE", + 122: "PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY", + 123: "PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY", + 124: "PREMIUM_RATE_NUMBER_NOT_ALLOWED", + 125: "VANITY_PHONE_NUMBER_NOT_ALLOWED", + 126: "INVALID_CALL_CONVERSION_TYPE_ID", + 127: "CANNOT_DISABLE_CALL_CONVERSION_AND_SET_CONVERSION_TYPE_ID", + 128: "CANNOT_SET_PATH2_WITHOUT_PATH1", + 129: "MISSING_DYNAMIC_SEARCH_ADS_SETTING_DOMAIN_NAME", + 130: "INCOMPATIBLE_WITH_RESTRICTION_TYPE", +} +var AdErrorEnum_AdError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "AD_CUSTOMIZERS_NOT_SUPPORTED_FOR_AD_TYPE": 2, + "APPROXIMATELY_TOO_LONG": 3, + "APPROXIMATELY_TOO_SHORT": 4, + "BAD_SNIPPET": 5, + "CANNOT_MODIFY_AD": 6, + "CANNOT_SET_BUSINESS_NAME_IF_URL_SET": 7, + "CANNOT_SET_FIELD": 8, + "CANNOT_SET_FIELD_WITH_ORIGIN_AD_ID_SET": 9, + "CANNOT_SET_FIELD_WITH_AD_ID_SET_FOR_SHARING": 10, + "CANNOT_SET_ALLOW_FLEXIBLE_COLOR_FALSE": 11, + "CANNOT_SET_COLOR_CONTROL_WHEN_NATIVE_FORMAT_SETTING": 12, + "CANNOT_SET_URL": 13, + "CANNOT_SET_WITHOUT_FINAL_URLS": 14, + "CANNOT_SET_WITH_FINAL_URLS": 15, + "CANNOT_SET_WITH_TRACKING_URL_TEMPLATE": 16, + "CANNOT_SET_WITH_URL_DATA": 17, + "CANNOT_USE_AD_SUBCLASS_FOR_OPERATOR": 18, + "CUSTOMER_NOT_APPROVED_MOBILEADS": 19, + "CUSTOMER_NOT_APPROVED_THIRDPARTY_ADS": 20, + "CUSTOMER_NOT_APPROVED_THIRDPARTY_REDIRECT_ADS": 21, + "CUSTOMER_NOT_ELIGIBLE": 22, + "CUSTOMER_NOT_ELIGIBLE_FOR_UPDATING_BEACON_URL": 23, + "DIMENSION_ALREADY_IN_UNION": 24, + "DIMENSION_MUST_BE_SET": 25, + "DIMENSION_NOT_IN_UNION": 26, + "DISPLAY_URL_CANNOT_BE_SPECIFIED": 27, + "DOMESTIC_PHONE_NUMBER_FORMAT": 28, + "EMERGENCY_PHONE_NUMBER": 29, + "EMPTY_FIELD": 30, + "FEED_ATTRIBUTE_MUST_HAVE_MAPPING_FOR_TYPE_ID": 31, + "FEED_ATTRIBUTE_MAPPING_TYPE_MISMATCH": 32, + "ILLEGAL_AD_CUSTOMIZER_TAG_USE": 33, + "ILLEGAL_TAG_USE": 34, + "INCONSISTENT_DIMENSIONS": 35, + "INCONSISTENT_STATUS_IN_TEMPLATE_UNION": 36, + "INCORRECT_LENGTH": 37, + "INELIGIBLE_FOR_UPGRADE": 38, + "INVALID_AD_ADDRESS_CAMPAIGN_TARGET": 39, + "INVALID_AD_TYPE": 40, + "INVALID_ATTRIBUTES_FOR_MOBILE_IMAGE": 41, + "INVALID_ATTRIBUTES_FOR_MOBILE_TEXT": 42, + "INVALID_CALL_TO_ACTION_TEXT": 43, + "INVALID_CHARACTER_FOR_URL": 44, + "INVALID_COUNTRY_CODE": 45, + "INVALID_DSA_URL_TAG": 46, + "INVALID_EXPANDED_DYNAMIC_SEARCH_AD_TAG": 47, + "INVALID_INPUT": 48, + "INVALID_MARKUP_LANGUAGE": 49, + "INVALID_MOBILE_CARRIER": 50, + "INVALID_MOBILE_CARRIER_TARGET": 51, + "INVALID_NUMBER_OF_ELEMENTS": 52, + "INVALID_PHONE_NUMBER_FORMAT": 53, + "INVALID_RICH_MEDIA_CERTIFIED_VENDOR_FORMAT_ID": 54, + "INVALID_TEMPLATE_DATA": 55, + "INVALID_TEMPLATE_ELEMENT_FIELD_TYPE": 56, + "INVALID_TEMPLATE_ID": 57, + "LINE_TOO_WIDE": 58, + "MISSING_AD_CUSTOMIZER_MAPPING": 59, + "MISSING_ADDRESS_COMPONENT": 60, + "MISSING_ADVERTISEMENT_NAME": 61, + "MISSING_BUSINESS_NAME": 62, + "MISSING_DESCRIPTION1": 63, + "MISSING_DESCRIPTION2": 64, + "MISSING_DESTINATION_URL_TAG": 65, + "MISSING_LANDING_PAGE_URL_TAG": 66, + "MISSING_DIMENSION": 67, + "MISSING_DISPLAY_URL": 68, + "MISSING_HEADLINE": 69, + "MISSING_HEIGHT": 70, + "MISSING_IMAGE": 71, + "MISSING_MARKETING_IMAGE_OR_PRODUCT_VIDEOS": 72, + "MISSING_MARKUP_LANGUAGES": 73, + "MISSING_MOBILE_CARRIER": 74, + "MISSING_PHONE": 75, + "MISSING_REQUIRED_TEMPLATE_FIELDS": 76, + "MISSING_TEMPLATE_FIELD_VALUE": 77, + "MISSING_TEXT": 78, + "MISSING_VISIBLE_URL": 79, + "MISSING_WIDTH": 80, + "MULTIPLE_DISTINCT_FEEDS_UNSUPPORTED": 81, + "MUST_USE_TEMP_AD_UNION_ID_ON_ADD": 82, + "TOO_LONG": 83, + "TOO_SHORT": 84, + "UNION_DIMENSIONS_CANNOT_CHANGE": 85, + "UNKNOWN_ADDRESS_COMPONENT": 86, + "UNKNOWN_FIELD_NAME": 87, + "UNKNOWN_UNIQUE_NAME": 88, + "UNSUPPORTED_DIMENSIONS": 89, + "URL_INVALID_SCHEME": 90, + "URL_INVALID_TOP_LEVEL_DOMAIN": 91, + "URL_MALFORMED": 92, + "URL_NO_HOST": 93, + "URL_NOT_EQUIVALENT": 94, + "URL_HOST_NAME_TOO_LONG": 95, + "URL_NO_SCHEME": 96, + "URL_NO_TOP_LEVEL_DOMAIN": 97, + "URL_PATH_NOT_ALLOWED": 98, + "URL_PORT_NOT_ALLOWED": 99, + "URL_QUERY_NOT_ALLOWED": 100, + "URL_SCHEME_BEFORE_DSA_TAG": 101, + "URL_SCHEME_BEFORE_EXPANDED_DYNAMIC_SEARCH_AD_TAG": 102, + "USER_DOES_NOT_HAVE_ACCESS_TO_TEMPLATE": 103, + "INCONSISTENT_EXPANDABLE_SETTINGS": 104, + "INVALID_FORMAT": 105, + "INVALID_FIELD_TEXT": 106, + "ELEMENT_NOT_PRESENT": 107, + "IMAGE_ERROR": 108, + "VALUE_NOT_IN_RANGE": 109, + "FIELD_NOT_PRESENT": 110, + "ADDRESS_NOT_COMPLETE": 111, + "ADDRESS_INVALID": 112, + "VIDEO_RETRIEVAL_ERROR": 113, + "AUDIO_ERROR": 114, + "INVALID_YOUTUBE_DISPLAY_URL": 115, + "TOO_MANY_PRODUCT_IMAGES": 116, + "TOO_MANY_PRODUCT_VIDEOS": 117, + "INCOMPATIBLE_AD_TYPE_AND_DEVICE_PREFERENCE": 118, + "CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY": 119, + "CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED": 120, + "DISALLOWED_NUMBER_TYPE": 121, + "PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY": 122, + "PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY": 123, + "PREMIUM_RATE_NUMBER_NOT_ALLOWED": 124, + "VANITY_PHONE_NUMBER_NOT_ALLOWED": 125, + "INVALID_CALL_CONVERSION_TYPE_ID": 126, + "CANNOT_DISABLE_CALL_CONVERSION_AND_SET_CONVERSION_TYPE_ID": 127, + "CANNOT_SET_PATH2_WITHOUT_PATH1": 128, + "MISSING_DYNAMIC_SEARCH_ADS_SETTING_DOMAIN_NAME": 129, + "INCOMPATIBLE_WITH_RESTRICTION_TYPE": 130, +} + +func (x AdErrorEnum_AdError) String() string { + return proto.EnumName(AdErrorEnum_AdError_name, int32(x)) +} +func (AdErrorEnum_AdError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_ad_error_aca81f4d1458cbc6, []int{0, 0} +} + +// Container for enum describing possible ad errors. +type AdErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AdErrorEnum) Reset() { *m = AdErrorEnum{} } +func (m *AdErrorEnum) String() string { return proto.CompactTextString(m) } +func (*AdErrorEnum) ProtoMessage() {} +func (*AdErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_error_aca81f4d1458cbc6, []int{0} +} +func (m *AdErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AdErrorEnum.Unmarshal(m, b) +} +func (m *AdErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AdErrorEnum.Marshal(b, m, deterministic) +} +func (dst *AdErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_AdErrorEnum.Merge(dst, src) +} +func (m *AdErrorEnum) XXX_Size() int { + return xxx_messageInfo_AdErrorEnum.Size(m) +} +func (m *AdErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_AdErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_AdErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*AdErrorEnum)(nil), "google.ads.googleads.v0.errors.AdErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.AdErrorEnum_AdError", AdErrorEnum_AdError_name, AdErrorEnum_AdError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/ad_error.proto", fileDescriptor_ad_error_aca81f4d1458cbc6) +} + +var fileDescriptor_ad_error_aca81f4d1458cbc6 = []byte{ + // 1985 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x58, 0x5b, 0x7f, 0x14, 0xb7, + 0x15, 0xaf, 0x49, 0x1b, 0x12, 0x01, 0x41, 0x88, 0xfb, 0xcd, 0x10, 0x43, 0xb8, 0x05, 0xd6, 0x06, + 0xd2, 0x26, 0x69, 0x92, 0xb6, 0xda, 0xd1, 0xd9, 0x19, 0x15, 0x8d, 0x34, 0x96, 0x34, 0x6b, 0x2f, + 0x75, 0xab, 0x3a, 0x31, 0x75, 0xd3, 0x02, 0x4b, 0x6d, 0x42, 0xef, 0xd7, 0x8f, 0xd2, 0xc7, 0x7e, + 0x84, 0x3e, 0xf6, 0x31, 0x9f, 0xaa, 0xbf, 0xa3, 0x19, 0xcd, 0xce, 0xda, 0x26, 0x79, 0xda, 0x59, + 0x9d, 0xbf, 0x46, 0x47, 0x7f, 0xfd, 0xcf, 0x45, 0x43, 0xee, 0x6d, 0x4f, 0xa7, 0xdb, 0x4f, 0x9f, + 0x2c, 0x6f, 0x6e, 0xed, 0x2e, 0x37, 0x8f, 0xf8, 0xf4, 0x6a, 0x65, 0xf9, 0xc9, 0xce, 0xce, 0x74, + 0x67, 0x77, 0x79, 0x73, 0x2b, 0xc4, 0xa7, 0xc1, 0x8b, 0x9d, 0xe9, 0xcb, 0x29, 0x5b, 0x6c, 0x30, + 0x83, 0xcd, 0xad, 0xdd, 0x41, 0x07, 0x1f, 0xbc, 0x5a, 0x19, 0x34, 0xf0, 0xa5, 0xaf, 0xaf, 0x92, + 0x23, 0x7c, 0x0b, 0xf0, 0x0f, 0x3c, 0xff, 0xea, 0xd9, 0xd2, 0x7f, 0xaf, 0x92, 0xc3, 0xed, 0x7f, + 0x76, 0x9c, 0x1c, 0xa9, 0xb5, 0xab, 0x20, 0x93, 0x23, 0x09, 0x82, 0x7e, 0x87, 0x1d, 0x21, 0x87, + 0x6b, 0xfd, 0x48, 0x9b, 0x35, 0x4d, 0x17, 0xd8, 0x5d, 0x72, 0x8b, 0x8b, 0x90, 0xd5, 0xce, 0x9b, + 0x52, 0x3e, 0x06, 0xeb, 0x82, 0x36, 0x3e, 0xb8, 0xba, 0xaa, 0x8c, 0xf5, 0x20, 0xc2, 0xc8, 0xd8, + 0xc0, 0x45, 0xf0, 0x93, 0x0a, 0xe8, 0x21, 0x76, 0x81, 0x9c, 0xe1, 0x55, 0x65, 0xcd, 0xba, 0x2c, + 0xb9, 0x07, 0x35, 0x09, 0xde, 0x98, 0xa0, 0x8c, 0xce, 0xe9, 0x1b, 0xec, 0x22, 0x39, 0xbb, 0xdf, + 0xe6, 0x0a, 0x63, 0x3d, 0xfd, 0x2e, 0x3a, 0x31, 0xe4, 0x22, 0x38, 0x2d, 0xab, 0x0a, 0x3c, 0xfd, + 0x1e, 0x3b, 0x45, 0x68, 0xc6, 0x35, 0xae, 0x55, 0x1a, 0x21, 0x47, 0x93, 0xc0, 0x05, 0x7d, 0x93, + 0xdd, 0x24, 0xd7, 0xda, 0x51, 0x07, 0x3e, 0x0c, 0x6b, 0x27, 0x35, 0x38, 0x17, 0x34, 0x2f, 0x21, + 0xc8, 0x51, 0xa8, 0xad, 0x42, 0x03, 0x3d, 0xdc, 0x9b, 0x8e, 0xc0, 0x91, 0x04, 0x25, 0xe8, 0x5b, + 0xec, 0x0e, 0xb9, 0xb1, 0x77, 0x34, 0xac, 0x49, 0x5f, 0x04, 0x63, 0x65, 0x2e, 0x35, 0x6e, 0x44, + 0x8a, 0xf8, 0x86, 0xb7, 0xd9, 0x32, 0x79, 0xff, 0x60, 0x6c, 0x07, 0x8a, 0x7b, 0x77, 0x05, 0xb7, + 0x52, 0xe7, 0x94, 0xb0, 0xdb, 0xe4, 0xbd, 0xde, 0x04, 0xae, 0x94, 0x59, 0x0b, 0x23, 0x05, 0xeb, + 0x72, 0xa8, 0x20, 0x64, 0x46, 0x19, 0x1b, 0x46, 0x5c, 0x39, 0xa0, 0x47, 0xd8, 0x87, 0xe4, 0x61, + 0x0f, 0xda, 0xd8, 0x32, 0xa3, 0xbd, 0x35, 0x2a, 0xac, 0x15, 0xa0, 0x83, 0xe6, 0x5e, 0x8e, 0x01, + 0x17, 0x28, 0x79, 0x04, 0x79, 0x5c, 0xe3, 0x28, 0x63, 0xe4, 0x9d, 0xde, 0xc4, 0xda, 0x2a, 0x7a, + 0x8c, 0xbd, 0x4b, 0x2e, 0xf7, 0xc6, 0xd0, 0x45, 0x53, 0xa3, 0xc3, 0x9a, 0x2b, 0x44, 0x38, 0xfa, + 0x0e, 0x5b, 0x24, 0x17, 0xf6, 0x40, 0xfa, 0xf6, 0xe3, 0x7b, 0x5c, 0x8f, 0x76, 0x6f, 0x79, 0xf6, + 0x48, 0xea, 0x3c, 0x72, 0xea, 0xa1, 0xac, 0x14, 0xf7, 0x40, 0x29, 0xbb, 0x44, 0xce, 0xed, 0x85, + 0x22, 0x42, 0x70, 0xcf, 0xe9, 0x89, 0xde, 0xf9, 0xd4, 0x0e, 0x90, 0x29, 0x57, 0x0f, 0x33, 0xc5, + 0x9d, 0x8b, 0x5c, 0x99, 0x0a, 0x2c, 0xf7, 0xc6, 0x52, 0xc6, 0xae, 0x91, 0x2b, 0x8d, 0xa6, 0xc0, + 0x46, 0x41, 0x45, 0x65, 0x8c, 0x41, 0x84, 0xd2, 0x0c, 0xa5, 0x02, 0x2e, 0x1c, 0x3d, 0xc9, 0x6e, + 0x91, 0xeb, 0x07, 0x83, 0x7c, 0x21, 0xad, 0xa8, 0xb8, 0xf5, 0x28, 0x0b, 0x47, 0x4f, 0xb1, 0xfb, + 0xe4, 0xde, 0xb7, 0x22, 0x2d, 0x08, 0x69, 0x21, 0xf3, 0x71, 0xca, 0x69, 0x76, 0x9e, 0x9c, 0x9e, + 0x9b, 0x02, 0x4a, 0xe6, 0x78, 0x54, 0xf4, 0xcc, 0xbe, 0xb7, 0x25, 0x53, 0xdc, 0x44, 0x5d, 0x09, + 0x8e, 0xa7, 0x11, 0x86, 0xc0, 0x33, 0xa3, 0xe3, 0x21, 0x9c, 0x45, 0x86, 0x85, 0x2c, 0x41, 0x3b, + 0x69, 0x74, 0xe0, 0xca, 0x02, 0x17, 0x93, 0x20, 0x75, 0xa8, 0xb5, 0x34, 0x9a, 0x9e, 0xc3, 0xd5, + 0x66, 0xf6, 0xb2, 0x76, 0x3e, 0x0c, 0x21, 0x0a, 0xed, 0x3c, 0xc6, 0xcc, 0xcc, 0x84, 0xcb, 0x75, + 0xd3, 0x2e, 0x20, 0x4d, 0x42, 0xba, 0x4a, 0xf1, 0x49, 0x64, 0xb9, 0xe5, 0x16, 0xa7, 0x76, 0xf1, + 0x7a, 0x91, 0x5d, 0x25, 0x97, 0x84, 0x29, 0xc1, 0x79, 0x99, 0x85, 0xaa, 0x30, 0x1a, 0x82, 0xae, + 0xcb, 0x21, 0xd8, 0x56, 0x3e, 0xf4, 0x12, 0x2e, 0x01, 0x25, 0xd8, 0x1c, 0x74, 0x36, 0x99, 0x83, + 0xd0, 0xcb, 0x18, 0x79, 0x50, 0x56, 0x7e, 0xd2, 0x06, 0xc9, 0x22, 0x5b, 0x21, 0x77, 0x47, 0x00, + 0x22, 0x70, 0xef, 0xad, 0x1c, 0xd6, 0x1e, 0x1a, 0x7f, 0x0b, 0x3e, 0x86, 0x50, 0xf2, 0xaa, 0xc2, + 0xbd, 0x23, 0x11, 0x18, 0xf2, 0x41, 0x0a, 0x7a, 0x05, 0xcf, 0x69, 0xef, 0x8c, 0x16, 0x17, 0x31, + 0xa5, 0x74, 0x25, 0xf7, 0x59, 0x41, 0xaf, 0xa2, 0x56, 0xa5, 0x52, 0x90, 0x73, 0x15, 0xe6, 0xb2, + 0x4a, 0xf0, 0x3c, 0x47, 0xc9, 0xd0, 0x77, 0xd9, 0x49, 0x72, 0x3c, 0x41, 0xd2, 0xe0, 0x12, 0xe6, + 0x0e, 0xa9, 0x33, 0xa3, 0x9d, 0x74, 0x1e, 0xb4, 0x0f, 0x1d, 0x61, 0x8e, 0x5e, 0x43, 0xf5, 0xce, + 0x19, 0x9d, 0xe7, 0xbe, 0x76, 0x48, 0x63, 0xd2, 0x6d, 0xcb, 0xe7, 0x75, 0x4c, 0x0b, 0x08, 0xb5, + 0x51, 0x07, 0x0a, 0x74, 0xee, 0x0b, 0xfa, 0x1e, 0xd2, 0x23, 0xf5, 0x9e, 0x43, 0xce, 0x2d, 0x17, + 0x40, 0x6f, 0xb0, 0x1b, 0x64, 0x49, 0xea, 0x31, 0x57, 0x52, 0xa0, 0xc7, 0x5c, 0x08, 0x8b, 0x09, + 0x27, 0xe3, 0x65, 0xc5, 0x65, 0xae, 0x83, 0xe7, 0x36, 0x07, 0x4f, 0x6f, 0x46, 0xb7, 0x67, 0xb8, + 0x98, 0x0e, 0x6f, 0x61, 0x38, 0x74, 0x83, 0x89, 0x9b, 0x26, 0x14, 0x1a, 0x99, 0x07, 0x59, 0xf2, + 0x1c, 0xe8, 0xed, 0xb9, 0x55, 0x0e, 0x04, 0x7a, 0x58, 0xf7, 0xf4, 0x0e, 0xbb, 0x42, 0x2e, 0x26, + 0x5c, 0xc6, 0x95, 0x0a, 0xde, 0x04, 0x9e, 0x79, 0x14, 0x4e, 0x04, 0xbc, 0xcf, 0x2e, 0x93, 0xf3, + 0x1d, 0xa0, 0xe0, 0x96, 0x67, 0xbe, 0xd1, 0x41, 0x94, 0xe9, 0x5d, 0x76, 0x8e, 0x9c, 0xea, 0xcc, + 0xa6, 0xd6, 0xde, 0x4e, 0x42, 0x66, 0x04, 0xd0, 0x7b, 0xec, 0x2c, 0x39, 0x99, 0x2c, 0xc2, 0xf1, + 0x26, 0xea, 0x79, 0x4e, 0x07, 0x98, 0x33, 0x93, 0x01, 0xd6, 0x2b, 0xae, 0x05, 0x88, 0x20, 0x26, + 0x9a, 0x97, 0x32, 0x0b, 0x0e, 0xb8, 0xcd, 0x62, 0x46, 0x44, 0xec, 0x32, 0x3b, 0x41, 0x8e, 0x25, + 0xac, 0xd4, 0x55, 0xed, 0xe9, 0x4a, 0x73, 0x72, 0xcd, 0x50, 0xc9, 0xed, 0xa3, 0xba, 0x0a, 0x8a, + 0xeb, 0xbc, 0xc6, 0x6d, 0xdf, 0x6f, 0x88, 0x6f, 0x8d, 0xcd, 0x3e, 0x33, 0x6e, 0xad, 0x04, 0x4b, + 0x1f, 0x44, 0xa9, 0x1c, 0x68, 0x4b, 0x9c, 0x3f, 0xc4, 0xa0, 0x4b, 0x90, 0x56, 0xf1, 0x66, 0x14, + 0x40, 0x41, 0x09, 0xda, 0x3b, 0xfa, 0x41, 0x9f, 0xad, 0x83, 0xe2, 0xe2, 0xfb, 0x18, 0xe8, 0x09, + 0x60, 0x65, 0x56, 0x84, 0x12, 0x84, 0xe4, 0x21, 0x03, 0xeb, 0x63, 0x6c, 0x85, 0x31, 0x68, 0x61, + 0x12, 0x1e, 0xb5, 0xfe, 0x03, 0x0c, 0xe4, 0x34, 0xa5, 0x53, 0x57, 0x4c, 0x7e, 0x1f, 0xf6, 0x4f, + 0xbb, 0x33, 0xb5, 0xde, 0xb4, 0xf5, 0x23, 0xca, 0xe2, 0xa3, 0x3e, 0xd7, 0x1d, 0x50, 0x0a, 0xfa, + 0x31, 0xf2, 0xa7, 0xa4, 0x86, 0x58, 0x19, 0xd7, 0xa4, 0x00, 0xfa, 0x43, 0xa4, 0xa1, 0x94, 0xce, + 0x61, 0x30, 0xcd, 0x47, 0x4c, 0x1b, 0x62, 0xf4, 0x13, 0x3c, 0xf3, 0x19, 0xa4, 0xd5, 0xa7, 0x29, + 0x2b, 0xa3, 0x41, 0x7b, 0xfa, 0x29, 0xb2, 0x34, 0x33, 0x8f, 0x71, 0x6f, 0xae, 0xf1, 0x09, 0xab, + 0x26, 0xfd, 0x0c, 0x77, 0x94, 0xec, 0x73, 0x05, 0x95, 0xfe, 0x08, 0xe5, 0x92, 0x4c, 0x02, 0x5c, + 0x66, 0x65, 0x85, 0x5a, 0xbb, 0x4f, 0x7f, 0xfc, 0x1a, 0xcb, 0x03, 0xfa, 0x13, 0x24, 0xbd, 0x67, + 0xf1, 0x12, 0x4b, 0x59, 0x93, 0x26, 0xa3, 0x48, 0x38, 0xa6, 0xab, 0x04, 0x50, 0x5c, 0x0b, 0xfc, + 0xad, 0x78, 0x0e, 0x1d, 0x62, 0xc8, 0x4e, 0x93, 0x13, 0xdd, 0x2b, 0x52, 0xa0, 0xd3, 0x0c, 0x69, + 0x9b, 0x0d, 0x77, 0x49, 0x91, 0x0a, 0x8c, 0xea, 0x64, 0x28, 0x80, 0x0b, 0xa4, 0x90, 0x02, 0xd6, + 0xca, 0xd9, 0xa8, 0xcc, 0x0b, 0x4f, 0x47, 0x48, 0x70, 0x1a, 0x6b, 0x42, 0x2f, 0x67, 0xf7, 0xc8, + 0xed, 0x34, 0x84, 0x02, 0x05, 0xdf, 0x19, 0x83, 0xb1, 0xa1, 0xb2, 0x46, 0xd4, 0x99, 0x0f, 0x63, + 0x29, 0xc0, 0x38, 0x5a, 0x60, 0xfd, 0xeb, 0xc3, 0x7b, 0x7a, 0x76, 0x54, 0xa2, 0xa0, 0x3b, 0xeb, + 0xbc, 0xa0, 0x7f, 0xda, 0x5f, 0x3b, 0xaa, 0x91, 0x3e, 0x62, 0xd7, 0xc9, 0xd5, 0x34, 0x64, 0x61, + 0xb5, 0x96, 0x16, 0x7a, 0x8a, 0x88, 0x92, 0x71, 0x54, 0xf5, 0x09, 0x9b, 0x37, 0x86, 0x31, 0x57, + 0x35, 0xd0, 0x92, 0x51, 0x72, 0x74, 0x86, 0x58, 0xf7, 0x54, 0xf7, 0xb9, 0x1a, 0x4b, 0x17, 0xf3, + 0x1a, 0x72, 0x65, 0xfa, 0x5e, 0xac, 0x49, 0xe1, 0x0b, 0x5a, 0xa1, 0x6e, 0xcb, 0x5a, 0x79, 0x59, + 0x29, 0x40, 0x62, 0xbd, 0xd4, 0x99, 0x0f, 0x98, 0xd0, 0x5d, 0xa8, 0x75, 0xd7, 0xe9, 0xd1, 0xd5, + 0xe8, 0x2e, 0x96, 0x02, 0xac, 0xed, 0xe8, 0x09, 0x2a, 0x32, 0x66, 0x56, 0x6c, 0x88, 0xb0, 0xee, + 0x09, 0x41, 0x2d, 0x3b, 0x4a, 0xde, 0xea, 0xba, 0x3e, 0xc7, 0x8e, 0x91, 0xb7, 0x67, 0x7d, 0x9e, + 0x67, 0x4b, 0x64, 0xb1, 0x99, 0x31, 0xcb, 0xe0, 0xa9, 0xaa, 0x65, 0x05, 0xd7, 0x39, 0xd0, 0x1a, + 0xf5, 0xdc, 0xf6, 0x9f, 0x07, 0xe8, 0x79, 0xcc, 0xce, 0x10, 0x96, 0xcc, 0x0d, 0x0b, 0x51, 0xac, + 0x6b, 0xb8, 0xe5, 0x34, 0x5e, 0x6b, 0xb9, 0x5a, 0x43, 0x63, 0x58, 0xc7, 0x43, 0xe9, 0xed, 0xa3, + 0x5f, 0x3b, 0x26, 0xf1, 0x65, 0x56, 0x85, 0x14, 0x8e, 0x2e, 0x2b, 0xa0, 0x04, 0xfa, 0x18, 0x39, + 0xef, 0x8f, 0x7b, 0x53, 0x05, 0x05, 0x63, 0x50, 0x41, 0x98, 0x92, 0x4b, 0x4d, 0x7f, 0x86, 0x44, + 0x22, 0xa2, 0xe4, 0x0a, 0xd3, 0x03, 0x08, 0xba, 0x11, 0x3b, 0x69, 0xab, 0x82, 0x36, 0xa1, 0x30, + 0xce, 0xd3, 0x9f, 0xa7, 0xb7, 0xc7, 0x1e, 0x62, 0xb5, 0x96, 0x63, 0xae, 0x70, 0x0b, 0xbf, 0x88, + 0x1e, 0x59, 0x15, 0x51, 0x4d, 0xef, 0xda, 0x11, 0x16, 0xd2, 0x7b, 0xb5, 0x49, 0xce, 0xfc, 0x12, + 0x73, 0x68, 0x3b, 0xb4, 0xcf, 0x8f, 0x4d, 0x8c, 0x44, 0x34, 0x56, 0xdc, 0x17, 0x4d, 0xeb, 0x83, + 0x8d, 0x27, 0x08, 0xfa, 0x79, 0x67, 0x31, 0xd6, 0xcf, 0x59, 0xbe, 0xc0, 0x90, 0x47, 0xcb, 0x6a, + 0x0d, 0x76, 0x32, 0x67, 0xda, 0x8a, 0xe4, 0x63, 0x17, 0x1d, 0xd7, 0x0e, 0x43, 0x18, 0x19, 0x0b, + 0xb1, 0x22, 0x60, 0x68, 0x3e, 0x61, 0x1f, 0x90, 0x95, 0xfd, 0xe6, 0x6f, 0xa9, 0x0b, 0xbf, 0xc2, + 0x0a, 0x5d, 0x3b, 0xb0, 0x41, 0x18, 0x68, 0xee, 0x0f, 0xb1, 0x99, 0xe0, 0x59, 0x86, 0x67, 0xeb, + 0xcd, 0xac, 0xbf, 0xdc, 0x46, 0x8d, 0xcd, 0x15, 0xf3, 0xe6, 0xdd, 0x1c, 0x05, 0xdc, 0xb6, 0xc1, + 0x8e, 0xfe, 0x1a, 0x63, 0x3b, 0x1d, 0x4d, 0x9b, 0xcc, 0xbf, 0x44, 0xb2, 0xbb, 0xb1, 0x26, 0xdb, + 0x62, 0x28, 0xfc, 0x06, 0x75, 0x91, 0xb2, 0x30, 0x2e, 0x5d, 0x59, 0x70, 0x78, 0x0a, 0xbf, 0xc5, + 0xe3, 0x6a, 0xe2, 0x1c, 0xac, 0x35, 0x96, 0x3e, 0xc5, 0x37, 0xc4, 0x88, 0x4a, 0x5d, 0x98, 0x8d, + 0x82, 0x7c, 0x86, 0xf9, 0xa8, 0x55, 0x5a, 0x6f, 0xfe, 0x73, 0xe4, 0x37, 0xe9, 0x33, 0xea, 0xd7, + 0x94, 0x95, 0x02, 0x0f, 0x74, 0x8a, 0xcd, 0x40, 0xb2, 0xb4, 0x2e, 0xd1, 0x17, 0x48, 0x7a, 0xcc, + 0x22, 0xc1, 0x82, 0xb7, 0x12, 0xc6, 0x5c, 0xb5, 0x0b, 0xff, 0x0e, 0x3d, 0xe1, 0xb5, 0x90, 0xa6, + 0x1d, 0xd8, 0xe9, 0x57, 0xae, 0x89, 0xa9, 0x7d, 0x3d, 0x84, 0xb9, 0x94, 0xb7, 0x8b, 0x92, 0x40, + 0xcd, 0x94, 0x5c, 0x4f, 0xba, 0x1c, 0x15, 0x37, 0xe3, 0xe8, 0xcb, 0x03, 0x8d, 0x6d, 0x02, 0xfb, + 0x8a, 0x0d, 0xc8, 0x1d, 0x24, 0xb8, 0xac, 0xb8, 0x8f, 0x69, 0xa1, 0xed, 0x56, 0x02, 0xd7, 0x22, + 0x08, 0x18, 0xcb, 0x0c, 0x70, 0x8b, 0x23, 0xb0, 0xa0, 0x33, 0xa0, 0xaf, 0x9a, 0x3b, 0x93, 0x52, + 0xdd, 0x7d, 0x60, 0xff, 0xf5, 0xaf, 0xed, 0x24, 0xe8, 0xef, 0x31, 0x97, 0xa6, 0x22, 0xdd, 0x36, + 0xa8, 0x59, 0x13, 0xf9, 0xa9, 0xf2, 0xf6, 0xb5, 0xf6, 0x87, 0xa6, 0xf3, 0x75, 0xed, 0xff, 0x04, + 0x89, 0x35, 0xf2, 0x8f, 0xb8, 0xec, 0x5c, 0xcd, 0x7e, 0xfd, 0xb2, 0x7f, 0x62, 0x9f, 0x92, 0x8f, + 0xbe, 0x01, 0x1b, 0xef, 0x28, 0x73, 0x5b, 0xe8, 0xcf, 0xfe, 0x33, 0xf6, 0xd8, 0x95, 0x85, 0x52, + 0xd6, 0x65, 0xb0, 0x98, 0x5a, 0x0f, 0x70, 0xf5, 0x2f, 0x08, 0x1a, 0x73, 0x2d, 0xfd, 0x7c, 0xfb, + 0x3c, 0x07, 0xfa, 0x2b, 0x82, 0xe6, 0xba, 0xb3, 0xcc, 0xe8, 0x31, 0xd8, 0xd8, 0xd7, 0xa7, 0x66, + 0xf9, 0x6f, 0xec, 0x33, 0xf2, 0x71, 0x9b, 0xf0, 0x70, 0xef, 0xf1, 0x6e, 0xb8, 0x07, 0x8b, 0x27, + 0xd1, 0xdc, 0x0b, 0xf7, 0x4d, 0xff, 0x3b, 0xbb, 0x46, 0x16, 0x7b, 0xf7, 0x2f, 0x8c, 0xfa, 0x07, + 0xdd, 0x9d, 0x0f, 0xff, 0xdd, 0xa7, 0xff, 0x58, 0x60, 0x0f, 0xc9, 0xa0, 0xab, 0x94, 0x7b, 0x43, + 0xd2, 0xa5, 0x38, 0x6a, 0x53, 0x48, 0x93, 0x25, 0xff, 0xb9, 0xc0, 0x6e, 0x62, 0x0f, 0xda, 0x13, + 0x46, 0xe4, 0xcd, 0x82, 0xf3, 0x56, 0xb6, 0x2d, 0x26, 0x9e, 0xcc, 0xbf, 0x16, 0x86, 0xff, 0x5b, + 0x20, 0x4b, 0x5f, 0x4c, 0x9f, 0x0d, 0xbe, 0xf9, 0x9b, 0xc3, 0xf0, 0x68, 0xfb, 0x81, 0xa1, 0xda, + 0x99, 0xbe, 0x9c, 0x56, 0x0b, 0x8f, 0x45, 0x8b, 0xdf, 0x9e, 0x3e, 0xdd, 0x7c, 0xbe, 0x3d, 0x98, + 0xee, 0x6c, 0x2f, 0x6f, 0x3f, 0x79, 0x1e, 0xbf, 0x5f, 0xa4, 0x4f, 0x1c, 0x2f, 0xbe, 0xdc, 0x7d, + 0xdd, 0x17, 0x8f, 0x4f, 0x9a, 0x9f, 0x7f, 0x1f, 0x7a, 0x23, 0xe7, 0xfc, 0x3f, 0x87, 0x16, 0xf3, + 0xe6, 0x65, 0x7c, 0x6b, 0x77, 0xd0, 0x3c, 0xe2, 0xd3, 0x78, 0x65, 0x10, 0x97, 0xdc, 0xfd, 0x3a, + 0x01, 0x36, 0xf8, 0xd6, 0xee, 0x46, 0x07, 0xd8, 0x18, 0xaf, 0x6c, 0x34, 0x80, 0xcf, 0xdf, 0x8c, + 0x0b, 0x3f, 0xfc, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x41, 0xd3, 0x0b, 0xf0, 0x69, 0x11, 0x00, + 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/ad_group_ad_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/ad_group_ad_error.pb.go new file mode 100644 index 000000000..7b0170dbd --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/ad_group_ad_error.pb.go @@ -0,0 +1,149 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/ad_group_ad_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible ad group ad errors. +type AdGroupAdErrorEnum_AdGroupAdError int32 + +const ( + // Enum unspecified. + AdGroupAdErrorEnum_UNSPECIFIED AdGroupAdErrorEnum_AdGroupAdError = 0 + // The received error code is not known in this version. + AdGroupAdErrorEnum_UNKNOWN AdGroupAdErrorEnum_AdGroupAdError = 1 + // No link found between the adgroup ad and the label. + AdGroupAdErrorEnum_AD_GROUP_AD_LABEL_DOES_NOT_EXIST AdGroupAdErrorEnum_AdGroupAdError = 2 + // The label has already been attached to the adgroup ad. + AdGroupAdErrorEnum_AD_GROUP_AD_LABEL_ALREADY_EXISTS AdGroupAdErrorEnum_AdGroupAdError = 3 + // The specified ad was not found in the adgroup + AdGroupAdErrorEnum_AD_NOT_UNDER_ADGROUP AdGroupAdErrorEnum_AdGroupAdError = 4 + // Removed ads may not be modified + AdGroupAdErrorEnum_CANNOT_OPERATE_ON_REMOVED_ADGROUPAD AdGroupAdErrorEnum_AdGroupAdError = 5 + // An ad of this type is deprecated and cannot be created. Only deletions + // are permitted. + AdGroupAdErrorEnum_CANNOT_CREATE_DEPRECATED_ADS AdGroupAdErrorEnum_AdGroupAdError = 6 + // Text ads are deprecated and cannot be created. Use expanded text ads + // instead. + AdGroupAdErrorEnum_CANNOT_CREATE_TEXT_ADS AdGroupAdErrorEnum_AdGroupAdError = 7 + // A required field was not specified or is an empty string. + AdGroupAdErrorEnum_EMPTY_FIELD AdGroupAdErrorEnum_AdGroupAdError = 8 + // An ad may only be modified once per call + AdGroupAdErrorEnum_RESOURCE_REFERENCED_IN_MULTIPLE_OPS AdGroupAdErrorEnum_AdGroupAdError = 9 +) + +var AdGroupAdErrorEnum_AdGroupAdError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "AD_GROUP_AD_LABEL_DOES_NOT_EXIST", + 3: "AD_GROUP_AD_LABEL_ALREADY_EXISTS", + 4: "AD_NOT_UNDER_ADGROUP", + 5: "CANNOT_OPERATE_ON_REMOVED_ADGROUPAD", + 6: "CANNOT_CREATE_DEPRECATED_ADS", + 7: "CANNOT_CREATE_TEXT_ADS", + 8: "EMPTY_FIELD", + 9: "RESOURCE_REFERENCED_IN_MULTIPLE_OPS", +} +var AdGroupAdErrorEnum_AdGroupAdError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "AD_GROUP_AD_LABEL_DOES_NOT_EXIST": 2, + "AD_GROUP_AD_LABEL_ALREADY_EXISTS": 3, + "AD_NOT_UNDER_ADGROUP": 4, + "CANNOT_OPERATE_ON_REMOVED_ADGROUPAD": 5, + "CANNOT_CREATE_DEPRECATED_ADS": 6, + "CANNOT_CREATE_TEXT_ADS": 7, + "EMPTY_FIELD": 8, + "RESOURCE_REFERENCED_IN_MULTIPLE_OPS": 9, +} + +func (x AdGroupAdErrorEnum_AdGroupAdError) String() string { + return proto.EnumName(AdGroupAdErrorEnum_AdGroupAdError_name, int32(x)) +} +func (AdGroupAdErrorEnum_AdGroupAdError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_ad_group_ad_error_f8ac183f11835402, []int{0, 0} +} + +// Container for enum describing possible ad group ad errors. +type AdGroupAdErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AdGroupAdErrorEnum) Reset() { *m = AdGroupAdErrorEnum{} } +func (m *AdGroupAdErrorEnum) String() string { return proto.CompactTextString(m) } +func (*AdGroupAdErrorEnum) ProtoMessage() {} +func (*AdGroupAdErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_group_ad_error_f8ac183f11835402, []int{0} +} +func (m *AdGroupAdErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AdGroupAdErrorEnum.Unmarshal(m, b) +} +func (m *AdGroupAdErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AdGroupAdErrorEnum.Marshal(b, m, deterministic) +} +func (dst *AdGroupAdErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_AdGroupAdErrorEnum.Merge(dst, src) +} +func (m *AdGroupAdErrorEnum) XXX_Size() int { + return xxx_messageInfo_AdGroupAdErrorEnum.Size(m) +} +func (m *AdGroupAdErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_AdGroupAdErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_AdGroupAdErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*AdGroupAdErrorEnum)(nil), "google.ads.googleads.v0.errors.AdGroupAdErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.AdGroupAdErrorEnum_AdGroupAdError", AdGroupAdErrorEnum_AdGroupAdError_name, AdGroupAdErrorEnum_AdGroupAdError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/ad_group_ad_error.proto", fileDescriptor_ad_group_ad_error_f8ac183f11835402) +} + +var fileDescriptor_ad_group_ad_error_f8ac183f11835402 = []byte{ + // 408 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x92, 0x51, 0x8b, 0xd4, 0x30, + 0x10, 0xc7, 0xdd, 0x9e, 0xde, 0x69, 0x0e, 0x34, 0x44, 0x11, 0x11, 0x39, 0x8e, 0x55, 0xf0, 0x2d, + 0x5d, 0x10, 0x7c, 0xf1, 0x69, 0xb6, 0x99, 0x5d, 0x8a, 0xdd, 0x24, 0xa4, 0xed, 0x7a, 0x27, 0x0b, + 0x43, 0xb5, 0x4b, 0x11, 0xee, 0x36, 0x4b, 0xeb, 0xdd, 0x07, 0xf2, 0xd1, 0x77, 0x3f, 0x84, 0xe2, + 0x87, 0x92, 0xb4, 0xb7, 0x07, 0x0b, 0xea, 0x53, 0xfe, 0xcc, 0xfc, 0xfe, 0x19, 0x32, 0xff, 0xb0, + 0xb7, 0x8d, 0xf7, 0xcd, 0xc5, 0x3a, 0xae, 0xea, 0x2e, 0x1e, 0x64, 0x50, 0xd7, 0x93, 0x78, 0xdd, + 0xb6, 0xbe, 0xed, 0xe2, 0xaa, 0xa6, 0xa6, 0xf5, 0x57, 0x5b, 0xaa, 0x6a, 0xea, 0x4b, 0x72, 0xdb, + 0xfa, 0xaf, 0x5e, 0x9c, 0x0c, 0xb0, 0xac, 0xea, 0x4e, 0xde, 0xfa, 0xe4, 0xf5, 0x44, 0x0e, 0xbe, + 0xf1, 0xef, 0x88, 0x09, 0xa8, 0xe7, 0xc1, 0x0a, 0x35, 0x86, 0x1a, 0x6e, 0xae, 0x2e, 0xc7, 0x3f, + 0x22, 0xf6, 0x70, 0xbf, 0x2c, 0x1e, 0xb1, 0xe3, 0x52, 0xe7, 0x16, 0x93, 0x74, 0x96, 0xa2, 0xe2, + 0x77, 0xc4, 0x31, 0x3b, 0x2a, 0xf5, 0x7b, 0x6d, 0x3e, 0x68, 0x3e, 0x12, 0xaf, 0xd8, 0x29, 0x28, + 0x9a, 0x3b, 0x53, 0x5a, 0x02, 0x45, 0x19, 0x4c, 0x31, 0x23, 0x65, 0x30, 0x27, 0x6d, 0x0a, 0xc2, + 0xb3, 0x34, 0x2f, 0x78, 0xf4, 0x77, 0x0a, 0x32, 0x87, 0xa0, 0xce, 0x07, 0x28, 0xe7, 0x07, 0xe2, + 0x19, 0x7b, 0x02, 0xaa, 0xf7, 0x95, 0x5a, 0xa1, 0x23, 0x50, 0xbd, 0x83, 0xdf, 0x15, 0xaf, 0xd9, + 0xcb, 0x04, 0x74, 0xe8, 0x18, 0x8b, 0x0e, 0x0a, 0x24, 0xa3, 0xc9, 0xe1, 0xc2, 0x2c, 0x51, 0xed, + 0x30, 0x50, 0xfc, 0x9e, 0x38, 0x65, 0x2f, 0x6e, 0xc0, 0xc4, 0x61, 0xe0, 0x14, 0x5a, 0x87, 0x09, + 0x14, 0x3d, 0x97, 0xf3, 0x43, 0xf1, 0x9c, 0x3d, 0xdd, 0x27, 0x0a, 0x3c, 0x2b, 0xfa, 0xde, 0x51, + 0x78, 0x2a, 0x2e, 0x6c, 0x71, 0x4e, 0xb3, 0x14, 0x33, 0xc5, 0xef, 0x87, 0xb9, 0x0e, 0x73, 0x53, + 0xba, 0x04, 0xc9, 0xe1, 0x0c, 0x1d, 0xea, 0x04, 0x15, 0xa5, 0x9a, 0x16, 0x65, 0x56, 0xa4, 0x36, + 0x43, 0x32, 0x36, 0xe7, 0x0f, 0xa6, 0x3f, 0x47, 0x6c, 0xfc, 0xd9, 0x5f, 0xca, 0xff, 0x6f, 0x7d, + 0xfa, 0x78, 0x7f, 0xb7, 0x36, 0x44, 0x65, 0x47, 0x1f, 0xd5, 0x8d, 0xad, 0xf1, 0x17, 0xd5, 0xa6, + 0x91, 0xbe, 0x6d, 0xe2, 0x66, 0xbd, 0xe9, 0x83, 0xdc, 0x85, 0xbe, 0xfd, 0xd2, 0xfd, 0xeb, 0x0f, + 0xbc, 0x1b, 0x8e, 0x6f, 0xd1, 0xc1, 0x1c, 0xe0, 0x7b, 0x74, 0x32, 0x1f, 0x2e, 0x83, 0xba, 0x93, + 0x83, 0x0c, 0x6a, 0x39, 0x91, 0xfd, 0xc8, 0xee, 0xd7, 0x0e, 0x58, 0x41, 0xdd, 0xad, 0x6e, 0x81, + 0xd5, 0x72, 0xb2, 0x1a, 0x80, 0x4f, 0x87, 0xfd, 0xe0, 0x37, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, + 0x6d, 0x4c, 0x9a, 0x33, 0x7b, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/ad_group_bid_modifier_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/ad_group_bid_modifier_error.pb.go new file mode 100644 index 000000000..f5d809dc4 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/ad_group_bid_modifier_error.pb.go @@ -0,0 +1,119 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/ad_group_bid_modifier_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible ad group bid modifier errors. +type AdGroupBidModifierErrorEnum_AdGroupBidModifierError int32 + +const ( + // Enum unspecified. + AdGroupBidModifierErrorEnum_UNSPECIFIED AdGroupBidModifierErrorEnum_AdGroupBidModifierError = 0 + // The received error code is not known in this version. + AdGroupBidModifierErrorEnum_UNKNOWN AdGroupBidModifierErrorEnum_AdGroupBidModifierError = 1 + // The criterion ID does not support bid modification. + AdGroupBidModifierErrorEnum_CRITERION_ID_NOT_SUPPORTED AdGroupBidModifierErrorEnum_AdGroupBidModifierError = 2 + // Cannot override the bid modifier for the given criterion ID if the parent + // campaign is opted out of the same criterion. + AdGroupBidModifierErrorEnum_CANNOT_OVERRIDE_OPTED_OUT_CAMPAIGN_CRITERION_BID_MODIFIER AdGroupBidModifierErrorEnum_AdGroupBidModifierError = 3 +) + +var AdGroupBidModifierErrorEnum_AdGroupBidModifierError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "CRITERION_ID_NOT_SUPPORTED", + 3: "CANNOT_OVERRIDE_OPTED_OUT_CAMPAIGN_CRITERION_BID_MODIFIER", +} +var AdGroupBidModifierErrorEnum_AdGroupBidModifierError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "CRITERION_ID_NOT_SUPPORTED": 2, + "CANNOT_OVERRIDE_OPTED_OUT_CAMPAIGN_CRITERION_BID_MODIFIER": 3, +} + +func (x AdGroupBidModifierErrorEnum_AdGroupBidModifierError) String() string { + return proto.EnumName(AdGroupBidModifierErrorEnum_AdGroupBidModifierError_name, int32(x)) +} +func (AdGroupBidModifierErrorEnum_AdGroupBidModifierError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_ad_group_bid_modifier_error_3bb7ac3c0a520d5f, []int{0, 0} +} + +// Container for enum describing possible ad group bid modifier errors. +type AdGroupBidModifierErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AdGroupBidModifierErrorEnum) Reset() { *m = AdGroupBidModifierErrorEnum{} } +func (m *AdGroupBidModifierErrorEnum) String() string { return proto.CompactTextString(m) } +func (*AdGroupBidModifierErrorEnum) ProtoMessage() {} +func (*AdGroupBidModifierErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_group_bid_modifier_error_3bb7ac3c0a520d5f, []int{0} +} +func (m *AdGroupBidModifierErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AdGroupBidModifierErrorEnum.Unmarshal(m, b) +} +func (m *AdGroupBidModifierErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AdGroupBidModifierErrorEnum.Marshal(b, m, deterministic) +} +func (dst *AdGroupBidModifierErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_AdGroupBidModifierErrorEnum.Merge(dst, src) +} +func (m *AdGroupBidModifierErrorEnum) XXX_Size() int { + return xxx_messageInfo_AdGroupBidModifierErrorEnum.Size(m) +} +func (m *AdGroupBidModifierErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_AdGroupBidModifierErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_AdGroupBidModifierErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*AdGroupBidModifierErrorEnum)(nil), "google.ads.googleads.v0.errors.AdGroupBidModifierErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.AdGroupBidModifierErrorEnum_AdGroupBidModifierError", AdGroupBidModifierErrorEnum_AdGroupBidModifierError_name, AdGroupBidModifierErrorEnum_AdGroupBidModifierError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/ad_group_bid_modifier_error.proto", fileDescriptor_ad_group_bid_modifier_error_3bb7ac3c0a520d5f) +} + +var fileDescriptor_ad_group_bid_modifier_error_3bb7ac3c0a520d5f = []byte{ + // 333 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x91, 0x41, 0x6a, 0xe3, 0x30, + 0x18, 0x85, 0xc7, 0x09, 0xcc, 0x80, 0xb2, 0x18, 0xe3, 0xcd, 0xc0, 0xb4, 0x64, 0x91, 0x03, 0xc8, + 0x86, 0xae, 0x4a, 0x29, 0x54, 0xb6, 0x54, 0x23, 0x4a, 0x24, 0xe3, 0xd8, 0x29, 0x14, 0x83, 0x70, + 0x2a, 0xd7, 0x18, 0x92, 0x28, 0x48, 0x4d, 0x8e, 0xd2, 0x03, 0x74, 0xd9, 0x03, 0xf4, 0x10, 0x5d, + 0xf6, 0x44, 0x45, 0x56, 0x92, 0xae, 0xd2, 0x95, 0x1f, 0xfe, 0xdf, 0xff, 0x3d, 0xe9, 0x09, 0xdc, + 0xb4, 0x4a, 0xb5, 0xcb, 0x26, 0xac, 0xa5, 0x09, 0x9d, 0xb4, 0x6a, 0x17, 0x85, 0x8d, 0xd6, 0x4a, + 0x9b, 0xb0, 0x96, 0xa2, 0xd5, 0x6a, 0xbb, 0x11, 0x8b, 0x4e, 0x8a, 0x95, 0x92, 0xdd, 0x53, 0xd7, + 0x68, 0xd1, 0x0f, 0xe1, 0x46, 0xab, 0x67, 0x15, 0x8c, 0xdd, 0x1a, 0xac, 0xa5, 0x81, 0x47, 0x02, + 0xdc, 0x45, 0xd0, 0x11, 0x26, 0xef, 0x1e, 0x38, 0x43, 0x32, 0xb5, 0x90, 0xb8, 0x93, 0xd3, 0x3d, + 0x82, 0xd8, 0x21, 0x59, 0x6f, 0x57, 0x93, 0x17, 0x0f, 0xfc, 0x3b, 0x31, 0x0f, 0xfe, 0x82, 0x51, + 0xc9, 0x66, 0x19, 0x49, 0xe8, 0x2d, 0x25, 0xd8, 0xff, 0x15, 0x8c, 0xc0, 0x9f, 0x92, 0xdd, 0x31, + 0x7e, 0xcf, 0x7c, 0x2f, 0x18, 0x83, 0xff, 0x49, 0x4e, 0x0b, 0x92, 0x53, 0xce, 0x04, 0xc5, 0x82, + 0xf1, 0x42, 0xcc, 0xca, 0x2c, 0xe3, 0x79, 0x41, 0xb0, 0x3f, 0x08, 0xae, 0xc1, 0x65, 0x82, 0x98, + 0xfd, 0xcb, 0xe7, 0x24, 0xcf, 0x29, 0x26, 0x82, 0x67, 0x05, 0xc1, 0x82, 0x97, 0x85, 0x48, 0xd0, + 0x34, 0x43, 0x34, 0x65, 0xe2, 0x1b, 0x11, 0x53, 0x2c, 0xa6, 0x1c, 0xdb, 0xac, 0xdc, 0x1f, 0xc6, + 0x9f, 0x1e, 0x98, 0x3c, 0xaa, 0x15, 0xfc, 0xf9, 0x7e, 0xf1, 0xf9, 0x89, 0xc3, 0x67, 0xb6, 0x9d, + 0xcc, 0x7b, 0xc0, 0xfb, 0xfd, 0x56, 0x2d, 0xeb, 0x75, 0x0b, 0x95, 0x6e, 0xc3, 0xb6, 0x59, 0xf7, + 0xdd, 0x1d, 0x1a, 0xdf, 0x74, 0xe6, 0xd4, 0x03, 0x5c, 0xb9, 0xcf, 0xeb, 0x60, 0x98, 0x22, 0xf4, + 0x36, 0x18, 0xa7, 0x0e, 0x86, 0xa4, 0x81, 0x4e, 0x5a, 0x35, 0x8f, 0x60, 0x1f, 0x69, 0x3e, 0x0e, + 0x86, 0x0a, 0x49, 0x53, 0x1d, 0x0d, 0xd5, 0x3c, 0xaa, 0x9c, 0x61, 0xf1, 0xbb, 0x0f, 0xbe, 0xf8, + 0x0a, 0x00, 0x00, 0xff, 0xff, 0xb1, 0x0a, 0x9b, 0xd3, 0xf8, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/ad_group_criterion_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/ad_group_criterion_error.pb.go new file mode 100644 index 000000000..0fe537fde --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/ad_group_criterion_error.pb.go @@ -0,0 +1,306 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/ad_group_criterion_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible ad group criterion errors. +type AdGroupCriterionErrorEnum_AdGroupCriterionError int32 + +const ( + // Enum unspecified. + AdGroupCriterionErrorEnum_UNSPECIFIED AdGroupCriterionErrorEnum_AdGroupCriterionError = 0 + // The received error code is not known in this version. + AdGroupCriterionErrorEnum_UNKNOWN AdGroupCriterionErrorEnum_AdGroupCriterionError = 1 + // No link found between the AdGroupCriterion and the label. + AdGroupCriterionErrorEnum_AD_GROUP_CRITERION_LABEL_DOES_NOT_EXIST AdGroupCriterionErrorEnum_AdGroupCriterionError = 2 + // The label has already been attached to the AdGroupCriterion. + AdGroupCriterionErrorEnum_AD_GROUP_CRITERION_LABEL_ALREADY_EXISTS AdGroupCriterionErrorEnum_AdGroupCriterionError = 3 + // Negative AdGroupCriterion cannot have labels. + AdGroupCriterionErrorEnum_CANNOT_ADD_LABEL_TO_NEGATIVE_CRITERION AdGroupCriterionErrorEnum_AdGroupCriterionError = 4 + // Too many operations for a single call. + AdGroupCriterionErrorEnum_TOO_MANY_OPERATIONS AdGroupCriterionErrorEnum_AdGroupCriterionError = 5 + // Negative ad group criteria are not updateable. + AdGroupCriterionErrorEnum_CANT_UPDATE_NEGATIVE AdGroupCriterionErrorEnum_AdGroupCriterionError = 6 + // Concrete type of criterion (keyword v.s. placement) is required for ADD + // and SET operations. + AdGroupCriterionErrorEnum_CONCRETE_TYPE_REQUIRED AdGroupCriterionErrorEnum_AdGroupCriterionError = 7 + // Bid is incompatible with ad group's bidding settings. + AdGroupCriterionErrorEnum_BID_INCOMPATIBLE_WITH_ADGROUP AdGroupCriterionErrorEnum_AdGroupCriterionError = 8 + // Cannot target and exclude the same criterion at once. + AdGroupCriterionErrorEnum_CANNOT_TARGET_AND_EXCLUDE AdGroupCriterionErrorEnum_AdGroupCriterionError = 9 + // The URL of a placement is invalid. + AdGroupCriterionErrorEnum_ILLEGAL_URL AdGroupCriterionErrorEnum_AdGroupCriterionError = 10 + // Keyword text was invalid. + AdGroupCriterionErrorEnum_INVALID_KEYWORD_TEXT AdGroupCriterionErrorEnum_AdGroupCriterionError = 11 + // Destination URL was invalid. + AdGroupCriterionErrorEnum_INVALID_DESTINATION_URL AdGroupCriterionErrorEnum_AdGroupCriterionError = 12 + // The destination url must contain at least one tag (e.g. {lpurl}) + AdGroupCriterionErrorEnum_MISSING_DESTINATION_URL_TAG AdGroupCriterionErrorEnum_AdGroupCriterionError = 13 + // Keyword-level cpm bid is not supported + AdGroupCriterionErrorEnum_KEYWORD_LEVEL_BID_NOT_SUPPORTED_FOR_MANUALCPM AdGroupCriterionErrorEnum_AdGroupCriterionError = 14 + // For example, cannot add a biddable ad group criterion that had been + // removed. + AdGroupCriterionErrorEnum_INVALID_USER_STATUS AdGroupCriterionErrorEnum_AdGroupCriterionError = 15 + // Criteria type cannot be targeted for the ad group. Either the account is + // restricted to keywords only, the criteria type is incompatible with the + // campaign's bidding strategy, or the criteria type can only be applied to + // campaigns. + AdGroupCriterionErrorEnum_CANNOT_ADD_CRITERIA_TYPE AdGroupCriterionErrorEnum_AdGroupCriterionError = 16 + // Criteria type cannot be excluded for the ad group. Refer to the + // documentation for a specific criterion to check if it is excludable. + AdGroupCriterionErrorEnum_CANNOT_EXCLUDE_CRITERIA_TYPE AdGroupCriterionErrorEnum_AdGroupCriterionError = 17 + // Partial failure is not supported for shopping campaign mutate operations. + AdGroupCriterionErrorEnum_CAMPAIGN_TYPE_NOT_COMPATIBLE_WITH_PARTIAL_FAILURE AdGroupCriterionErrorEnum_AdGroupCriterionError = 27 + // Operations in the mutate request changes too many shopping ad groups. + // Please split requests for multiple shopping ad groups across multiple + // requests. + AdGroupCriterionErrorEnum_OPERATIONS_FOR_TOO_MANY_SHOPPING_ADGROUPS AdGroupCriterionErrorEnum_AdGroupCriterionError = 28 + // Not allowed to modify url fields of an ad group criterion if there are + // duplicate elements for that ad group criterion in the request. + AdGroupCriterionErrorEnum_CANNOT_MODIFY_URL_FIELDS_WITH_DUPLICATE_ELEMENTS AdGroupCriterionErrorEnum_AdGroupCriterionError = 29 + // Cannot set url fields without also setting final urls. + AdGroupCriterionErrorEnum_CANNOT_SET_WITHOUT_FINAL_URLS AdGroupCriterionErrorEnum_AdGroupCriterionError = 30 + // Cannot clear final urls if final mobile urls exist. + AdGroupCriterionErrorEnum_CANNOT_CLEAR_FINAL_URLS_IF_FINAL_MOBILE_URLS_EXIST AdGroupCriterionErrorEnum_AdGroupCriterionError = 31 + // Cannot clear final urls if final app urls exist. + AdGroupCriterionErrorEnum_CANNOT_CLEAR_FINAL_URLS_IF_FINAL_APP_URLS_EXIST AdGroupCriterionErrorEnum_AdGroupCriterionError = 32 + // Cannot clear final urls if tracking url template exists. + AdGroupCriterionErrorEnum_CANNOT_CLEAR_FINAL_URLS_IF_TRACKING_URL_TEMPLATE_EXISTS AdGroupCriterionErrorEnum_AdGroupCriterionError = 33 + // Cannot clear final urls if url custom parameters exist. + AdGroupCriterionErrorEnum_CANNOT_CLEAR_FINAL_URLS_IF_URL_CUSTOM_PARAMETERS_EXIST AdGroupCriterionErrorEnum_AdGroupCriterionError = 34 + // Cannot set both destination url and final urls. + AdGroupCriterionErrorEnum_CANNOT_SET_BOTH_DESTINATION_URL_AND_FINAL_URLS AdGroupCriterionErrorEnum_AdGroupCriterionError = 35 + // Cannot set both destination url and tracking url template. + AdGroupCriterionErrorEnum_CANNOT_SET_BOTH_DESTINATION_URL_AND_TRACKING_URL_TEMPLATE AdGroupCriterionErrorEnum_AdGroupCriterionError = 36 + // Final urls are not supported for this criterion type. + AdGroupCriterionErrorEnum_FINAL_URLS_NOT_SUPPORTED_FOR_CRITERION_TYPE AdGroupCriterionErrorEnum_AdGroupCriterionError = 37 + // Final mobile urls are not supported for this criterion type. + AdGroupCriterionErrorEnum_FINAL_MOBILE_URLS_NOT_SUPPORTED_FOR_CRITERION_TYPE AdGroupCriterionErrorEnum_AdGroupCriterionError = 38 + // Ad group is invalid due to the listing groups it contains. + AdGroupCriterionErrorEnum_INVALID_LISTING_GROUP_HIERARCHY AdGroupCriterionErrorEnum_AdGroupCriterionError = 39 + // Listing group unit cannot have children. + AdGroupCriterionErrorEnum_LISTING_GROUP_UNIT_CANNOT_HAVE_CHILDREN AdGroupCriterionErrorEnum_AdGroupCriterionError = 40 + // Subdivided listing groups must have an "others" case. + AdGroupCriterionErrorEnum_LISTING_GROUP_SUBDIVISION_REQUIRES_OTHERS_CASE AdGroupCriterionErrorEnum_AdGroupCriterionError = 41 + // Dimension type of listing group must be the same as that of its siblings. + AdGroupCriterionErrorEnum_LISTING_GROUP_REQUIRES_SAME_DIMENSION_TYPE_AS_SIBLINGS AdGroupCriterionErrorEnum_AdGroupCriterionError = 42 + // Listing group cannot be added to the ad group because it already exists. + AdGroupCriterionErrorEnum_LISTING_GROUP_ALREADY_EXISTS AdGroupCriterionErrorEnum_AdGroupCriterionError = 43 + // Listing group referenced in the operation was not found in the ad group. + AdGroupCriterionErrorEnum_LISTING_GROUP_DOES_NOT_EXIST AdGroupCriterionErrorEnum_AdGroupCriterionError = 44 + // Recursive removal failed because listing group subdivision is being + // created or modified in this request. + AdGroupCriterionErrorEnum_LISTING_GROUP_CANNOT_BE_REMOVED AdGroupCriterionErrorEnum_AdGroupCriterionError = 45 + // Listing group type is not allowed for specified ad group criterion type. + AdGroupCriterionErrorEnum_INVALID_LISTING_GROUP_TYPE AdGroupCriterionErrorEnum_AdGroupCriterionError = 46 + // Listing group in an ADD operation specifies a non temporary criterion id. + AdGroupCriterionErrorEnum_LISTING_GROUP_ADD_MAY_ONLY_USE_TEMP_ID AdGroupCriterionErrorEnum_AdGroupCriterionError = 47 +) + +var AdGroupCriterionErrorEnum_AdGroupCriterionError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "AD_GROUP_CRITERION_LABEL_DOES_NOT_EXIST", + 3: "AD_GROUP_CRITERION_LABEL_ALREADY_EXISTS", + 4: "CANNOT_ADD_LABEL_TO_NEGATIVE_CRITERION", + 5: "TOO_MANY_OPERATIONS", + 6: "CANT_UPDATE_NEGATIVE", + 7: "CONCRETE_TYPE_REQUIRED", + 8: "BID_INCOMPATIBLE_WITH_ADGROUP", + 9: "CANNOT_TARGET_AND_EXCLUDE", + 10: "ILLEGAL_URL", + 11: "INVALID_KEYWORD_TEXT", + 12: "INVALID_DESTINATION_URL", + 13: "MISSING_DESTINATION_URL_TAG", + 14: "KEYWORD_LEVEL_BID_NOT_SUPPORTED_FOR_MANUALCPM", + 15: "INVALID_USER_STATUS", + 16: "CANNOT_ADD_CRITERIA_TYPE", + 17: "CANNOT_EXCLUDE_CRITERIA_TYPE", + 27: "CAMPAIGN_TYPE_NOT_COMPATIBLE_WITH_PARTIAL_FAILURE", + 28: "OPERATIONS_FOR_TOO_MANY_SHOPPING_ADGROUPS", + 29: "CANNOT_MODIFY_URL_FIELDS_WITH_DUPLICATE_ELEMENTS", + 30: "CANNOT_SET_WITHOUT_FINAL_URLS", + 31: "CANNOT_CLEAR_FINAL_URLS_IF_FINAL_MOBILE_URLS_EXIST", + 32: "CANNOT_CLEAR_FINAL_URLS_IF_FINAL_APP_URLS_EXIST", + 33: "CANNOT_CLEAR_FINAL_URLS_IF_TRACKING_URL_TEMPLATE_EXISTS", + 34: "CANNOT_CLEAR_FINAL_URLS_IF_URL_CUSTOM_PARAMETERS_EXIST", + 35: "CANNOT_SET_BOTH_DESTINATION_URL_AND_FINAL_URLS", + 36: "CANNOT_SET_BOTH_DESTINATION_URL_AND_TRACKING_URL_TEMPLATE", + 37: "FINAL_URLS_NOT_SUPPORTED_FOR_CRITERION_TYPE", + 38: "FINAL_MOBILE_URLS_NOT_SUPPORTED_FOR_CRITERION_TYPE", + 39: "INVALID_LISTING_GROUP_HIERARCHY", + 40: "LISTING_GROUP_UNIT_CANNOT_HAVE_CHILDREN", + 41: "LISTING_GROUP_SUBDIVISION_REQUIRES_OTHERS_CASE", + 42: "LISTING_GROUP_REQUIRES_SAME_DIMENSION_TYPE_AS_SIBLINGS", + 43: "LISTING_GROUP_ALREADY_EXISTS", + 44: "LISTING_GROUP_DOES_NOT_EXIST", + 45: "LISTING_GROUP_CANNOT_BE_REMOVED", + 46: "INVALID_LISTING_GROUP_TYPE", + 47: "LISTING_GROUP_ADD_MAY_ONLY_USE_TEMP_ID", +} +var AdGroupCriterionErrorEnum_AdGroupCriterionError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "AD_GROUP_CRITERION_LABEL_DOES_NOT_EXIST": 2, + "AD_GROUP_CRITERION_LABEL_ALREADY_EXISTS": 3, + "CANNOT_ADD_LABEL_TO_NEGATIVE_CRITERION": 4, + "TOO_MANY_OPERATIONS": 5, + "CANT_UPDATE_NEGATIVE": 6, + "CONCRETE_TYPE_REQUIRED": 7, + "BID_INCOMPATIBLE_WITH_ADGROUP": 8, + "CANNOT_TARGET_AND_EXCLUDE": 9, + "ILLEGAL_URL": 10, + "INVALID_KEYWORD_TEXT": 11, + "INVALID_DESTINATION_URL": 12, + "MISSING_DESTINATION_URL_TAG": 13, + "KEYWORD_LEVEL_BID_NOT_SUPPORTED_FOR_MANUALCPM": 14, + "INVALID_USER_STATUS": 15, + "CANNOT_ADD_CRITERIA_TYPE": 16, + "CANNOT_EXCLUDE_CRITERIA_TYPE": 17, + "CAMPAIGN_TYPE_NOT_COMPATIBLE_WITH_PARTIAL_FAILURE": 27, + "OPERATIONS_FOR_TOO_MANY_SHOPPING_ADGROUPS": 28, + "CANNOT_MODIFY_URL_FIELDS_WITH_DUPLICATE_ELEMENTS": 29, + "CANNOT_SET_WITHOUT_FINAL_URLS": 30, + "CANNOT_CLEAR_FINAL_URLS_IF_FINAL_MOBILE_URLS_EXIST": 31, + "CANNOT_CLEAR_FINAL_URLS_IF_FINAL_APP_URLS_EXIST": 32, + "CANNOT_CLEAR_FINAL_URLS_IF_TRACKING_URL_TEMPLATE_EXISTS": 33, + "CANNOT_CLEAR_FINAL_URLS_IF_URL_CUSTOM_PARAMETERS_EXIST": 34, + "CANNOT_SET_BOTH_DESTINATION_URL_AND_FINAL_URLS": 35, + "CANNOT_SET_BOTH_DESTINATION_URL_AND_TRACKING_URL_TEMPLATE": 36, + "FINAL_URLS_NOT_SUPPORTED_FOR_CRITERION_TYPE": 37, + "FINAL_MOBILE_URLS_NOT_SUPPORTED_FOR_CRITERION_TYPE": 38, + "INVALID_LISTING_GROUP_HIERARCHY": 39, + "LISTING_GROUP_UNIT_CANNOT_HAVE_CHILDREN": 40, + "LISTING_GROUP_SUBDIVISION_REQUIRES_OTHERS_CASE": 41, + "LISTING_GROUP_REQUIRES_SAME_DIMENSION_TYPE_AS_SIBLINGS": 42, + "LISTING_GROUP_ALREADY_EXISTS": 43, + "LISTING_GROUP_DOES_NOT_EXIST": 44, + "LISTING_GROUP_CANNOT_BE_REMOVED": 45, + "INVALID_LISTING_GROUP_TYPE": 46, + "LISTING_GROUP_ADD_MAY_ONLY_USE_TEMP_ID": 47, +} + +func (x AdGroupCriterionErrorEnum_AdGroupCriterionError) String() string { + return proto.EnumName(AdGroupCriterionErrorEnum_AdGroupCriterionError_name, int32(x)) +} +func (AdGroupCriterionErrorEnum_AdGroupCriterionError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_ad_group_criterion_error_64389e9bd7c7c16e, []int{0, 0} +} + +// Container for enum describing possible ad group criterion errors. +type AdGroupCriterionErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AdGroupCriterionErrorEnum) Reset() { *m = AdGroupCriterionErrorEnum{} } +func (m *AdGroupCriterionErrorEnum) String() string { return proto.CompactTextString(m) } +func (*AdGroupCriterionErrorEnum) ProtoMessage() {} +func (*AdGroupCriterionErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_group_criterion_error_64389e9bd7c7c16e, []int{0} +} +func (m *AdGroupCriterionErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AdGroupCriterionErrorEnum.Unmarshal(m, b) +} +func (m *AdGroupCriterionErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AdGroupCriterionErrorEnum.Marshal(b, m, deterministic) +} +func (dst *AdGroupCriterionErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_AdGroupCriterionErrorEnum.Merge(dst, src) +} +func (m *AdGroupCriterionErrorEnum) XXX_Size() int { + return xxx_messageInfo_AdGroupCriterionErrorEnum.Size(m) +} +func (m *AdGroupCriterionErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_AdGroupCriterionErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_AdGroupCriterionErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*AdGroupCriterionErrorEnum)(nil), "google.ads.googleads.v0.errors.AdGroupCriterionErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.AdGroupCriterionErrorEnum_AdGroupCriterionError", AdGroupCriterionErrorEnum_AdGroupCriterionError_name, AdGroupCriterionErrorEnum_AdGroupCriterionError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/ad_group_criterion_error.proto", fileDescriptor_ad_group_criterion_error_64389e9bd7c7c16e) +} + +var fileDescriptor_ad_group_criterion_error_64389e9bd7c7c16e = []byte{ + // 936 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x55, 0xdd, 0x72, 0x1b, 0x35, + 0x14, 0x26, 0x29, 0xb4, 0xa0, 0x04, 0x2a, 0xc4, 0x4f, 0xdb, 0xfc, 0xb6, 0x29, 0xb4, 0xb4, 0x21, + 0xeb, 0xb4, 0x85, 0x32, 0xd0, 0xe9, 0xc5, 0xd9, 0xd5, 0xf1, 0x5a, 0x13, 0xad, 0xb4, 0x48, 0x5a, + 0x27, 0x66, 0x32, 0xa3, 0x09, 0x75, 0xc6, 0x93, 0x99, 0x36, 0x9b, 0xb1, 0xdb, 0x3e, 0x10, 0x97, + 0xbc, 0x01, 0xaf, 0xc0, 0x15, 0x77, 0xbc, 0x0e, 0xa3, 0xdd, 0x75, 0x62, 0x3b, 0x21, 0xed, 0x55, + 0x14, 0x9f, 0xef, 0x93, 0xbe, 0xf3, 0x9d, 0xb3, 0xe7, 0x90, 0xe7, 0x83, 0xb2, 0x1c, 0xbc, 0x3c, + 0x6c, 0x1d, 0xf4, 0x47, 0xad, 0xfa, 0x18, 0x4e, 0x6f, 0xb7, 0x5b, 0x87, 0xc3, 0x61, 0x39, 0x1c, + 0xb5, 0x0e, 0xfa, 0x7e, 0x30, 0x2c, 0xdf, 0x9c, 0xf8, 0x17, 0xc3, 0xa3, 0xd7, 0x87, 0xc3, 0xa3, + 0xf2, 0xd8, 0x57, 0x91, 0xe8, 0x64, 0x58, 0xbe, 0x2e, 0xd9, 0x5a, 0xcd, 0x89, 0x0e, 0xfa, 0xa3, + 0xe8, 0x94, 0x1e, 0xbd, 0xdd, 0x8e, 0x6a, 0xfa, 0xc6, 0xbf, 0x8b, 0xe4, 0x16, 0xf4, 0xd3, 0x70, + 0x43, 0x32, 0xbe, 0x00, 0x43, 0x08, 0x8f, 0xdf, 0xbc, 0xda, 0xf8, 0x6b, 0x91, 0x7c, 0x75, 0x61, + 0x94, 0x5d, 0x27, 0x0b, 0x85, 0xb2, 0x39, 0x26, 0xa2, 0x2d, 0x90, 0xd3, 0x0f, 0xd8, 0x02, 0xb9, + 0x56, 0xa8, 0x1d, 0xa5, 0x77, 0x15, 0x9d, 0x63, 0x9b, 0xe4, 0x3e, 0x70, 0x9f, 0x1a, 0x5d, 0xe4, + 0x3e, 0x31, 0xc2, 0xa1, 0x11, 0x5a, 0x79, 0x09, 0x31, 0x4a, 0xcf, 0x35, 0x5a, 0xaf, 0xb4, 0xf3, + 0xb8, 0x27, 0xac, 0xa3, 0xf3, 0x97, 0x82, 0x41, 0x1a, 0x04, 0xde, 0xab, 0xb1, 0x96, 0x5e, 0x61, + 0x0f, 0xc9, 0xbd, 0x04, 0x54, 0xa0, 0x03, 0xe7, 0x0d, 0xc8, 0x69, 0xaf, 0x30, 0x05, 0x27, 0xba, + 0x78, 0x76, 0x01, 0xfd, 0x90, 0xdd, 0x20, 0x5f, 0x38, 0xad, 0x7d, 0x06, 0xaa, 0xe7, 0x75, 0x8e, + 0x06, 0x9c, 0xd0, 0xca, 0xd2, 0x8f, 0xd8, 0x4d, 0xf2, 0x65, 0x02, 0xca, 0xf9, 0x22, 0xe7, 0xe0, + 0xf0, 0x94, 0x4c, 0xaf, 0xb2, 0x25, 0xf2, 0x75, 0xa2, 0x55, 0x62, 0xd0, 0xa1, 0x77, 0xbd, 0x1c, + 0xbd, 0xc1, 0x5f, 0x0b, 0x61, 0x90, 0xd3, 0x6b, 0xec, 0x0e, 0x59, 0x8d, 0x05, 0xf7, 0x42, 0x25, + 0x3a, 0xcb, 0xc1, 0x89, 0x58, 0xa2, 0xdf, 0x15, 0xae, 0xe3, 0x81, 0x57, 0xe2, 0xe9, 0xc7, 0x6c, + 0x95, 0xdc, 0x6a, 0xd4, 0x39, 0x30, 0x29, 0x3a, 0x0f, 0x8a, 0x7b, 0xdc, 0x4b, 0x64, 0xc1, 0x91, + 0x7e, 0x12, 0x4c, 0x13, 0x52, 0x62, 0x0a, 0xd2, 0x17, 0x46, 0x52, 0x12, 0x84, 0x08, 0xd5, 0x05, + 0x29, 0xb8, 0xdf, 0xc1, 0xde, 0xae, 0x36, 0xdc, 0x3b, 0xdc, 0x73, 0x74, 0x81, 0x2d, 0x93, 0x1b, + 0xe3, 0x08, 0x47, 0xeb, 0x84, 0xaa, 0xc4, 0x57, 0xb4, 0x45, 0xb6, 0x4e, 0x96, 0x33, 0x61, 0xad, + 0x50, 0xe9, 0x6c, 0xd0, 0x3b, 0x48, 0xe9, 0xa7, 0xec, 0x11, 0xd9, 0x1a, 0xdf, 0x27, 0xb1, 0x8b, + 0xd2, 0x07, 0xe1, 0x41, 0x96, 0x2d, 0xf2, 0x5c, 0x1b, 0x87, 0xdc, 0xb7, 0xb5, 0x09, 0xce, 0x14, + 0x20, 0x93, 0x3c, 0xa3, 0x9f, 0x05, 0xb3, 0xc6, 0x0f, 0x16, 0x16, 0x8d, 0xb7, 0x0e, 0x5c, 0x61, + 0xe9, 0x75, 0xb6, 0x42, 0x6e, 0x4e, 0x38, 0xde, 0xf8, 0x0b, 0x95, 0x3b, 0x94, 0xb2, 0xdb, 0x64, + 0xa5, 0x89, 0x36, 0x69, 0xce, 0x20, 0x3e, 0x67, 0x3f, 0x92, 0x47, 0x09, 0x64, 0x39, 0x88, 0x54, + 0xd5, 0x96, 0x06, 0xf0, 0xac, 0x85, 0x39, 0x18, 0x27, 0x40, 0xfa, 0x36, 0x08, 0x59, 0x18, 0xa4, + 0xcb, 0x6c, 0x8b, 0x3c, 0x38, 0xab, 0x59, 0xa5, 0xf6, 0xb4, 0x96, 0xb6, 0xa3, 0xf3, 0x3c, 0x24, + 0xdf, 0x18, 0x6f, 0xe9, 0x0a, 0xfb, 0x81, 0x6c, 0x37, 0x3a, 0x32, 0xcd, 0x45, 0xbb, 0x57, 0x99, + 0xd1, 0x16, 0x28, 0xb9, 0xad, 0x5f, 0xe0, 0x45, 0x2e, 0x45, 0x12, 0xca, 0x8d, 0x12, 0x33, 0x54, + 0xce, 0xd2, 0xd5, 0x50, 0xd2, 0x86, 0x65, 0xd1, 0x55, 0x38, 0x5d, 0x38, 0xdf, 0x16, 0xaa, 0xae, + 0x90, 0xa5, 0x6b, 0xec, 0x29, 0x79, 0xdc, 0x40, 0x12, 0x89, 0x60, 0x26, 0x82, 0x5e, 0xb4, 0x9b, + 0xff, 0x32, 0x1d, 0x0b, 0x89, 0xf5, 0x8f, 0x75, 0x57, 0xaf, 0xb3, 0x27, 0xa4, 0xf5, 0x4e, 0x1e, + 0xe4, 0xf9, 0x24, 0xe9, 0x36, 0x7b, 0x46, 0x7e, 0xba, 0x84, 0xe4, 0x0c, 0x24, 0x3b, 0x21, 0xef, + 0xaa, 0xd0, 0x98, 0xe5, 0xb2, 0x4a, 0xa7, 0xfe, 0x34, 0xee, 0xb0, 0x5f, 0xc8, 0xd3, 0x4b, 0xc8, + 0x81, 0x93, 0x14, 0xd6, 0xe9, 0x2c, 0x98, 0x0d, 0x19, 0x3a, 0x34, 0xe3, 0x87, 0x37, 0xd8, 0x63, + 0x12, 0x4d, 0x18, 0x11, 0xeb, 0x60, 0xd8, 0x4c, 0x67, 0x85, 0x56, 0x9e, 0x70, 0xe6, 0x2e, 0x7b, + 0x4e, 0x7e, 0x7e, 0x1f, 0xce, 0x85, 0xaa, 0xe9, 0x37, 0xac, 0x45, 0x36, 0x27, 0x14, 0x9e, 0x6f, + 0xce, 0xb3, 0x51, 0x50, 0x35, 0xd2, 0xb7, 0xa1, 0x12, 0xe7, 0xed, 0x7e, 0x27, 0xef, 0x1e, 0xbb, + 0x4b, 0xd6, 0xc7, 0x9d, 0x2d, 0x45, 0xd0, 0x97, 0x36, 0xc3, 0xa6, 0x23, 0xd0, 0x80, 0x49, 0x3a, + 0x3d, 0x7a, 0x3f, 0x0c, 0xa1, 0xe9, 0x60, 0xa1, 0x84, 0xf3, 0x4d, 0x7e, 0x1d, 0x08, 0x93, 0xa5, + 0x23, 0x24, 0x37, 0xa8, 0xe8, 0x77, 0xc1, 0xad, 0x69, 0xb0, 0x2d, 0x62, 0x2e, 0xba, 0xc2, 0x86, + 0x57, 0x9b, 0x89, 0x61, 0xbd, 0x76, 0x9d, 0x60, 0x71, 0x02, 0x16, 0xe9, 0x83, 0x50, 0x9d, 0x69, + 0xce, 0x29, 0xce, 0x42, 0x86, 0x9e, 0x8b, 0x0c, 0x95, 0x1d, 0xab, 0xf6, 0x60, 0xbd, 0x15, 0xb1, + 0x14, 0x2a, 0xb5, 0xf4, 0x61, 0xf8, 0xc8, 0xa6, 0xb9, 0x33, 0x63, 0x71, 0xf3, 0x3c, 0x62, 0x66, + 0xca, 0x7e, 0x1f, 0x5c, 0x98, 0x46, 0x34, 0xb9, 0xc5, 0x61, 0xc6, 0x65, 0xba, 0x8b, 0x9c, 0x6e, + 0xb1, 0x35, 0xb2, 0x74, 0xb1, 0x55, 0x95, 0x95, 0x51, 0x98, 0xbe, 0x33, 0x42, 0x38, 0xf7, 0x19, + 0xf4, 0xbc, 0x56, 0xb2, 0x17, 0xe6, 0x46, 0x55, 0x60, 0x2f, 0x38, 0x6d, 0xc5, 0xff, 0xcc, 0x91, + 0x8d, 0x17, 0xe5, 0xab, 0xe8, 0xf2, 0x05, 0x14, 0x2f, 0x5d, 0xb8, 0x5f, 0xf2, 0xb0, 0xbc, 0xf2, + 0xb9, 0xdf, 0x78, 0xc3, 0x1e, 0x94, 0x2f, 0x0f, 0x8e, 0x07, 0x51, 0x39, 0x1c, 0xb4, 0x06, 0x87, + 0xc7, 0xd5, 0x6a, 0x1b, 0x6f, 0xc3, 0x93, 0xa3, 0xd1, 0xff, 0x2d, 0xc7, 0x67, 0xf5, 0x9f, 0x3f, + 0xe6, 0xaf, 0xa4, 0x00, 0x7f, 0xce, 0xaf, 0xa5, 0xf5, 0x65, 0xd0, 0x1f, 0x45, 0xf5, 0x31, 0x9c, + 0xba, 0xdb, 0x51, 0xf5, 0xe4, 0xe8, 0xef, 0x31, 0x60, 0x1f, 0xfa, 0xa3, 0xfd, 0x53, 0xc0, 0x7e, + 0x77, 0x7b, 0xbf, 0x06, 0xfc, 0x7e, 0xb5, 0x7a, 0xf8, 0xc9, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, + 0x3f, 0x5b, 0xb6, 0x2f, 0x94, 0x07, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/ad_group_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/ad_group_error.pb.go new file mode 100644 index 000000000..4385f7ec8 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/ad_group_error.pb.go @@ -0,0 +1,173 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/ad_group_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible ad group errors. +type AdGroupErrorEnum_AdGroupError int32 + +const ( + // Enum unspecified. + AdGroupErrorEnum_UNSPECIFIED AdGroupErrorEnum_AdGroupError = 0 + // The received error code is not known in this version. + AdGroupErrorEnum_UNKNOWN AdGroupErrorEnum_AdGroupError = 1 + // AdGroup with the same name already exists for the campaign. + AdGroupErrorEnum_DUPLICATE_ADGROUP_NAME AdGroupErrorEnum_AdGroupError = 2 + // AdGroup name is not valid. + AdGroupErrorEnum_INVALID_ADGROUP_NAME AdGroupErrorEnum_AdGroupError = 3 + // Advertiser is not allowed to target sites or set site bids that are not + // on the Google Search Network. + AdGroupErrorEnum_ADVERTISER_NOT_ON_CONTENT_NETWORK AdGroupErrorEnum_AdGroupError = 5 + // Bid amount is too big. + AdGroupErrorEnum_BID_TOO_BIG AdGroupErrorEnum_AdGroupError = 6 + // AdGroup bid does not match the campaign's bidding strategy. + AdGroupErrorEnum_BID_TYPE_AND_BIDDING_STRATEGY_MISMATCH AdGroupErrorEnum_AdGroupError = 7 + // AdGroup name is required for Add. + AdGroupErrorEnum_MISSING_ADGROUP_NAME AdGroupErrorEnum_AdGroupError = 8 + // No link found between the ad group and the label. + AdGroupErrorEnum_ADGROUP_LABEL_DOES_NOT_EXIST AdGroupErrorEnum_AdGroupError = 9 + // The label has already been attached to the ad group. + AdGroupErrorEnum_ADGROUP_LABEL_ALREADY_EXISTS AdGroupErrorEnum_AdGroupError = 10 + // The CriterionTypeGroup is not supported for the content bid dimension. + AdGroupErrorEnum_INVALID_CONTENT_BID_CRITERION_TYPE_GROUP AdGroupErrorEnum_AdGroupError = 11 + // The ad group type is not compatible with the campaign channel type. + AdGroupErrorEnum_AD_GROUP_TYPE_NOT_VALID_FOR_ADVERTISING_CHANNEL_TYPE AdGroupErrorEnum_AdGroupError = 12 + // The ad group type is not supported in the country of sale of the + // campaign. + AdGroupErrorEnum_ADGROUP_TYPE_NOT_SUPPORTED_FOR_CAMPAIGN_SALES_COUNTRY AdGroupErrorEnum_AdGroupError = 13 + // Ad groups of AdGroupType.SEARCH_DYNAMIC_ADS can only be added to + // campaigns that have DynamicSearchAdsSetting attached. + AdGroupErrorEnum_CANNOT_ADD_ADGROUP_OF_TYPE_DSA_TO_CAMPAIGN_WITHOUT_DSA_SETTING AdGroupErrorEnum_AdGroupError = 14 +) + +var AdGroupErrorEnum_AdGroupError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "DUPLICATE_ADGROUP_NAME", + 3: "INVALID_ADGROUP_NAME", + 5: "ADVERTISER_NOT_ON_CONTENT_NETWORK", + 6: "BID_TOO_BIG", + 7: "BID_TYPE_AND_BIDDING_STRATEGY_MISMATCH", + 8: "MISSING_ADGROUP_NAME", + 9: "ADGROUP_LABEL_DOES_NOT_EXIST", + 10: "ADGROUP_LABEL_ALREADY_EXISTS", + 11: "INVALID_CONTENT_BID_CRITERION_TYPE_GROUP", + 12: "AD_GROUP_TYPE_NOT_VALID_FOR_ADVERTISING_CHANNEL_TYPE", + 13: "ADGROUP_TYPE_NOT_SUPPORTED_FOR_CAMPAIGN_SALES_COUNTRY", + 14: "CANNOT_ADD_ADGROUP_OF_TYPE_DSA_TO_CAMPAIGN_WITHOUT_DSA_SETTING", +} +var AdGroupErrorEnum_AdGroupError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "DUPLICATE_ADGROUP_NAME": 2, + "INVALID_ADGROUP_NAME": 3, + "ADVERTISER_NOT_ON_CONTENT_NETWORK": 5, + "BID_TOO_BIG": 6, + "BID_TYPE_AND_BIDDING_STRATEGY_MISMATCH": 7, + "MISSING_ADGROUP_NAME": 8, + "ADGROUP_LABEL_DOES_NOT_EXIST": 9, + "ADGROUP_LABEL_ALREADY_EXISTS": 10, + "INVALID_CONTENT_BID_CRITERION_TYPE_GROUP": 11, + "AD_GROUP_TYPE_NOT_VALID_FOR_ADVERTISING_CHANNEL_TYPE": 12, + "ADGROUP_TYPE_NOT_SUPPORTED_FOR_CAMPAIGN_SALES_COUNTRY": 13, + "CANNOT_ADD_ADGROUP_OF_TYPE_DSA_TO_CAMPAIGN_WITHOUT_DSA_SETTING": 14, +} + +func (x AdGroupErrorEnum_AdGroupError) String() string { + return proto.EnumName(AdGroupErrorEnum_AdGroupError_name, int32(x)) +} +func (AdGroupErrorEnum_AdGroupError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_ad_group_error_19fdb626fdf61d89, []int{0, 0} +} + +// Container for enum describing possible ad group errors. +type AdGroupErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AdGroupErrorEnum) Reset() { *m = AdGroupErrorEnum{} } +func (m *AdGroupErrorEnum) String() string { return proto.CompactTextString(m) } +func (*AdGroupErrorEnum) ProtoMessage() {} +func (*AdGroupErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_group_error_19fdb626fdf61d89, []int{0} +} +func (m *AdGroupErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AdGroupErrorEnum.Unmarshal(m, b) +} +func (m *AdGroupErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AdGroupErrorEnum.Marshal(b, m, deterministic) +} +func (dst *AdGroupErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_AdGroupErrorEnum.Merge(dst, src) +} +func (m *AdGroupErrorEnum) XXX_Size() int { + return xxx_messageInfo_AdGroupErrorEnum.Size(m) +} +func (m *AdGroupErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_AdGroupErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_AdGroupErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*AdGroupErrorEnum)(nil), "google.ads.googleads.v0.errors.AdGroupErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.AdGroupErrorEnum_AdGroupError", AdGroupErrorEnum_AdGroupError_name, AdGroupErrorEnum_AdGroupError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/ad_group_error.proto", fileDescriptor_ad_group_error_19fdb626fdf61d89) +} + +var fileDescriptor_ad_group_error_19fdb626fdf61d89 = []byte{ + // 515 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x52, 0xe1, 0x8a, 0xd3, 0x4c, + 0x14, 0xfd, 0xda, 0xdd, 0x6f, 0x57, 0xa7, 0xab, 0x8e, 0x83, 0x88, 0x88, 0x2c, 0x5a, 0x50, 0x44, + 0x24, 0x2d, 0xac, 0x82, 0x22, 0x08, 0x37, 0x99, 0x69, 0x3a, 0x6c, 0x3a, 0x13, 0x66, 0x26, 0xad, + 0x95, 0xc2, 0x50, 0x4d, 0x09, 0xc2, 0x6e, 0x53, 0x12, 0x77, 0x5f, 0xc2, 0x97, 0x10, 0x7f, 0xfa, + 0x22, 0x82, 0x4f, 0x25, 0x93, 0x31, 0xdd, 0x5d, 0x44, 0x7f, 0xe5, 0xce, 0x99, 0x73, 0xee, 0x39, + 0x49, 0x0e, 0x3a, 0x2a, 0xca, 0xb2, 0x38, 0x59, 0x0d, 0x96, 0x79, 0x3d, 0xf0, 0xa3, 0x9b, 0xce, + 0x87, 0x83, 0x55, 0x55, 0x95, 0x55, 0x3d, 0x58, 0xe6, 0xb6, 0xa8, 0xca, 0xb3, 0x8d, 0x6d, 0xce, + 0xc1, 0xa6, 0x2a, 0x3f, 0x97, 0xe4, 0xd0, 0x33, 0x83, 0x65, 0x5e, 0x07, 0x5b, 0x51, 0x70, 0x3e, + 0x0c, 0xbc, 0xa8, 0xff, 0x75, 0x17, 0x61, 0xc8, 0x63, 0xa7, 0x63, 0x0e, 0x61, 0xeb, 0xb3, 0xd3, + 0xfe, 0x97, 0x5d, 0x74, 0x70, 0x19, 0x24, 0xb7, 0x50, 0x2f, 0x13, 0x3a, 0x65, 0x11, 0x1f, 0x71, + 0x46, 0xf1, 0x7f, 0xa4, 0x87, 0xf6, 0x33, 0x71, 0x2c, 0xe4, 0x4c, 0xe0, 0x0e, 0xb9, 0x8f, 0xee, + 0xd2, 0x2c, 0x4d, 0x78, 0x04, 0x86, 0x59, 0xa0, 0xb1, 0x92, 0x59, 0x6a, 0x05, 0x4c, 0x18, 0xee, + 0x92, 0x7b, 0xe8, 0x0e, 0x17, 0x53, 0x48, 0x38, 0xbd, 0x7a, 0xb3, 0x43, 0x1e, 0xa3, 0x47, 0x40, + 0xa7, 0x4c, 0x19, 0xae, 0x99, 0xb2, 0x42, 0x1a, 0x2b, 0x85, 0x8d, 0xa4, 0x30, 0x4c, 0x18, 0x2b, + 0x98, 0x99, 0x49, 0x75, 0x8c, 0xff, 0x77, 0xd6, 0x21, 0xa7, 0xd6, 0x48, 0x69, 0x43, 0x1e, 0xe3, + 0x3d, 0xf2, 0x0c, 0x3d, 0x69, 0x80, 0x79, 0xca, 0x2c, 0x08, 0x6a, 0x43, 0x4e, 0x29, 0x17, 0xb1, + 0xd5, 0x46, 0x81, 0x61, 0xf1, 0xdc, 0x4e, 0xb8, 0x9e, 0x80, 0x89, 0xc6, 0x78, 0xdf, 0xb9, 0x4f, + 0xb8, 0xd6, 0xee, 0xfa, 0x8a, 0xfb, 0x35, 0xf2, 0x10, 0x3d, 0x68, 0x91, 0x04, 0x42, 0x96, 0x58, + 0x2a, 0x99, 0x6e, 0x52, 0xb0, 0x77, 0x5c, 0x1b, 0x7c, 0xfd, 0x4f, 0x06, 0x24, 0x8a, 0x01, 0x9d, + 0x7b, 0x82, 0xc6, 0x88, 0x3c, 0x47, 0x4f, 0xdb, 0x77, 0x6b, 0x73, 0xbb, 0x64, 0x91, 0xe2, 0x86, + 0x29, 0x2e, 0x85, 0xcf, 0xd8, 0xac, 0xc0, 0x3d, 0xf2, 0x0a, 0xbd, 0x00, 0xea, 0x4f, 0xfe, 0xc2, + 0x99, 0x79, 0xf5, 0x48, 0x2a, 0xdb, 0x7e, 0x0b, 0x97, 0x35, 0x1a, 0x83, 0x10, 0x2c, 0x69, 0x68, + 0xf8, 0x80, 0xbc, 0x46, 0x2f, 0xdb, 0x24, 0x5b, 0xa1, 0xce, 0xd2, 0x54, 0x2a, 0xc3, 0xbc, 0x38, + 0x82, 0x49, 0x0a, 0x3c, 0x16, 0x56, 0x43, 0xc2, 0xb4, 0x8d, 0x64, 0x26, 0x8c, 0x9a, 0xe3, 0x1b, + 0x24, 0x44, 0x6f, 0x23, 0x10, 0x4e, 0x00, 0xf4, 0xe2, 0x0f, 0xc8, 0x91, 0x5f, 0x44, 0x35, 0x58, + 0x23, 0x2f, 0xd4, 0x33, 0x6e, 0xc6, 0x32, 0x33, 0x0d, 0xae, 0x99, 0x31, 0x5c, 0xc4, 0xf8, 0x66, + 0xf8, 0xa3, 0x83, 0xfa, 0x1f, 0xcb, 0xd3, 0xe0, 0xdf, 0x4d, 0x0a, 0x6f, 0x5f, 0x6e, 0x4c, 0xea, + 0xca, 0x97, 0x76, 0xde, 0xd3, 0xdf, 0xa2, 0xa2, 0x3c, 0x59, 0xae, 0x8b, 0xa0, 0xac, 0x8a, 0x41, + 0xb1, 0x5a, 0x37, 0xd5, 0x6c, 0x3b, 0xbc, 0xf9, 0x54, 0xff, 0xad, 0xd2, 0x6f, 0xfc, 0xe3, 0x5b, + 0x77, 0x27, 0x06, 0xf8, 0xde, 0x3d, 0x8c, 0xfd, 0x32, 0xc8, 0xeb, 0xc0, 0x8f, 0x6e, 0x9a, 0x0e, + 0x83, 0xc6, 0xb2, 0xfe, 0xd9, 0x12, 0x16, 0x90, 0xd7, 0x8b, 0x2d, 0x61, 0x31, 0x1d, 0x2e, 0x3c, + 0xe1, 0xc3, 0x5e, 0x63, 0x7c, 0xf4, 0x2b, 0x00, 0x00, 0xff, 0xff, 0xf9, 0x21, 0x87, 0x0e, 0x4a, + 0x03, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/ad_group_feed_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/ad_group_feed_error.pb.go new file mode 100644 index 000000000..f91f50815 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/ad_group_feed_error.pb.go @@ -0,0 +1,145 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/ad_group_feed_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible ad group feed errors. +type AdGroupFeedErrorEnum_AdGroupFeedError int32 + +const ( + // Enum unspecified. + AdGroupFeedErrorEnum_UNSPECIFIED AdGroupFeedErrorEnum_AdGroupFeedError = 0 + // The received error code is not known in this version. + AdGroupFeedErrorEnum_UNKNOWN AdGroupFeedErrorEnum_AdGroupFeedError = 1 + // An active feed already exists for this ad group and place holder type. + AdGroupFeedErrorEnum_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE AdGroupFeedErrorEnum_AdGroupFeedError = 2 + // The specified feed is removed. + AdGroupFeedErrorEnum_CANNOT_CREATE_FOR_REMOVED_FEED AdGroupFeedErrorEnum_AdGroupFeedError = 3 + // The AdGroupFeed already exists. UPDATE operation should be used to modify + // the existing AdGroupFeed. + AdGroupFeedErrorEnum_ADGROUP_FEED_ALREADY_EXISTS AdGroupFeedErrorEnum_AdGroupFeedError = 4 + // Cannot operate on removed AdGroupFeed. + AdGroupFeedErrorEnum_CANNOT_OPERATE_ON_REMOVED_ADGROUP_FEED AdGroupFeedErrorEnum_AdGroupFeedError = 5 + // Invalid placeholder type. + AdGroupFeedErrorEnum_INVALID_PLACEHOLDER_TYPE AdGroupFeedErrorEnum_AdGroupFeedError = 6 + // Feed mapping for this placeholder type does not exist. + AdGroupFeedErrorEnum_MISSING_FEEDMAPPING_FOR_PLACEHOLDER_TYPE AdGroupFeedErrorEnum_AdGroupFeedError = 7 + // Location AdGroupFeeds cannot be created unless there is a location + // CustomerFeed for the specified feed. + AdGroupFeedErrorEnum_NO_EXISTING_LOCATION_CUSTOMER_FEED AdGroupFeedErrorEnum_AdGroupFeedError = 8 +) + +var AdGroupFeedErrorEnum_AdGroupFeedError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE", + 3: "CANNOT_CREATE_FOR_REMOVED_FEED", + 4: "ADGROUP_FEED_ALREADY_EXISTS", + 5: "CANNOT_OPERATE_ON_REMOVED_ADGROUP_FEED", + 6: "INVALID_PLACEHOLDER_TYPE", + 7: "MISSING_FEEDMAPPING_FOR_PLACEHOLDER_TYPE", + 8: "NO_EXISTING_LOCATION_CUSTOMER_FEED", +} +var AdGroupFeedErrorEnum_AdGroupFeedError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE": 2, + "CANNOT_CREATE_FOR_REMOVED_FEED": 3, + "ADGROUP_FEED_ALREADY_EXISTS": 4, + "CANNOT_OPERATE_ON_REMOVED_ADGROUP_FEED": 5, + "INVALID_PLACEHOLDER_TYPE": 6, + "MISSING_FEEDMAPPING_FOR_PLACEHOLDER_TYPE": 7, + "NO_EXISTING_LOCATION_CUSTOMER_FEED": 8, +} + +func (x AdGroupFeedErrorEnum_AdGroupFeedError) String() string { + return proto.EnumName(AdGroupFeedErrorEnum_AdGroupFeedError_name, int32(x)) +} +func (AdGroupFeedErrorEnum_AdGroupFeedError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_ad_group_feed_error_c3514b578457331e, []int{0, 0} +} + +// Container for enum describing possible ad group feed errors. +type AdGroupFeedErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AdGroupFeedErrorEnum) Reset() { *m = AdGroupFeedErrorEnum{} } +func (m *AdGroupFeedErrorEnum) String() string { return proto.CompactTextString(m) } +func (*AdGroupFeedErrorEnum) ProtoMessage() {} +func (*AdGroupFeedErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_group_feed_error_c3514b578457331e, []int{0} +} +func (m *AdGroupFeedErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AdGroupFeedErrorEnum.Unmarshal(m, b) +} +func (m *AdGroupFeedErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AdGroupFeedErrorEnum.Marshal(b, m, deterministic) +} +func (dst *AdGroupFeedErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_AdGroupFeedErrorEnum.Merge(dst, src) +} +func (m *AdGroupFeedErrorEnum) XXX_Size() int { + return xxx_messageInfo_AdGroupFeedErrorEnum.Size(m) +} +func (m *AdGroupFeedErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_AdGroupFeedErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_AdGroupFeedErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*AdGroupFeedErrorEnum)(nil), "google.ads.googleads.v0.errors.AdGroupFeedErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.AdGroupFeedErrorEnum_AdGroupFeedError", AdGroupFeedErrorEnum_AdGroupFeedError_name, AdGroupFeedErrorEnum_AdGroupFeedError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/ad_group_feed_error.proto", fileDescriptor_ad_group_feed_error_c3514b578457331e) +} + +var fileDescriptor_ad_group_feed_error_c3514b578457331e = []byte{ + // 406 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x92, 0xd1, 0x8a, 0xd4, 0x30, + 0x18, 0x85, 0x9d, 0xae, 0xee, 0x4a, 0xf6, 0xc2, 0x12, 0x14, 0x04, 0x65, 0x84, 0x5e, 0x2c, 0x22, + 0x92, 0x0e, 0x78, 0x23, 0x78, 0x95, 0x6d, 0xfe, 0xa9, 0xc1, 0x4e, 0x12, 0xd2, 0x4e, 0x75, 0xa5, + 0x10, 0xaa, 0xa9, 0x45, 0xd8, 0x9d, 0x0c, 0xad, 0xbb, 0x0f, 0xe4, 0xa5, 0xaf, 0xe1, 0x9d, 0xbe, + 0x82, 0x0f, 0x23, 0x69, 0x76, 0x07, 0x59, 0x57, 0xaf, 0x7a, 0x48, 0xbf, 0x73, 0xfe, 0x43, 0xfe, + 0xa0, 0x97, 0xbd, 0x73, 0xfd, 0x69, 0x97, 0xb6, 0x76, 0x4c, 0x83, 0xf4, 0xea, 0x62, 0x91, 0x76, + 0xc3, 0xe0, 0x86, 0x31, 0x6d, 0xad, 0xe9, 0x07, 0x77, 0xbe, 0x35, 0x9f, 0xba, 0xce, 0x9a, 0xe9, + 0x90, 0x6c, 0x07, 0xf7, 0xc5, 0xe1, 0x79, 0xc0, 0x49, 0x6b, 0x47, 0xb2, 0x73, 0x92, 0x8b, 0x05, + 0x09, 0xce, 0xe4, 0x57, 0x84, 0xee, 0x53, 0x9b, 0x7b, 0xf3, 0xb2, 0xeb, 0x2c, 0xf8, 0x53, 0xd8, + 0x9c, 0x9f, 0x25, 0xdf, 0x23, 0x14, 0x5f, 0xff, 0x81, 0xef, 0xa1, 0xc3, 0xb5, 0x28, 0x15, 0x64, + 0x7c, 0xc9, 0x81, 0xc5, 0xb7, 0xf0, 0x21, 0x3a, 0x58, 0x8b, 0x37, 0x42, 0xbe, 0x15, 0xf1, 0x0c, + 0x3f, 0x47, 0x4f, 0x97, 0x00, 0xcc, 0xd0, 0x42, 0x03, 0x65, 0x27, 0x06, 0xde, 0xf1, 0xb2, 0x2a, + 0xcd, 0x52, 0x6a, 0xa3, 0x0a, 0x9a, 0xc1, 0x6b, 0x59, 0x30, 0xd0, 0xa6, 0x3a, 0x51, 0x10, 0x47, + 0x38, 0x41, 0xf3, 0x8c, 0x0a, 0x21, 0x2b, 0x93, 0x69, 0xa0, 0x15, 0x4c, 0x9c, 0x86, 0x95, 0xac, + 0x81, 0x19, 0x9f, 0x13, 0xef, 0xe1, 0x27, 0xe8, 0x11, 0x65, 0xb9, 0x96, 0x6b, 0x65, 0x6e, 0x48, + 0x8e, 0x6f, 0xe3, 0x67, 0xe8, 0xe8, 0x32, 0x44, 0x2a, 0xd0, 0x3e, 0x45, 0x8a, 0x5d, 0xc8, 0x9f, + 0xd6, 0xf8, 0x0e, 0x7e, 0x8c, 0x1e, 0x72, 0x51, 0xd3, 0x82, 0xb3, 0xbf, 0xeb, 0xec, 0xfb, 0xf2, + 0x2b, 0x5e, 0x96, 0x5c, 0xe4, 0x13, 0xbf, 0xa2, 0x4a, 0x4d, 0xfa, 0xa6, 0xf2, 0x07, 0xf8, 0x08, + 0x25, 0x42, 0x86, 0x1a, 0x9e, 0x2a, 0x64, 0x46, 0x2b, 0x2e, 0x85, 0xc9, 0xd6, 0x65, 0x25, 0x57, + 0xa0, 0xc3, 0xcc, 0xbb, 0xc7, 0x3f, 0x67, 0x28, 0xf9, 0xe8, 0xce, 0xc8, 0xff, 0xb7, 0x70, 0xfc, + 0xe0, 0xfa, 0x4d, 0x2b, 0xbf, 0x3c, 0x35, 0x7b, 0xcf, 0x2e, 0x8d, 0xbd, 0x3b, 0x6d, 0x37, 0x3d, + 0x71, 0x43, 0x9f, 0xf6, 0xdd, 0x66, 0x5a, 0xed, 0xd5, 0x43, 0xd8, 0x7e, 0x1e, 0xff, 0xf5, 0x2e, + 0x5e, 0x85, 0xcf, 0xd7, 0x68, 0x2f, 0xa7, 0xf4, 0x5b, 0x34, 0xcf, 0x43, 0x18, 0xb5, 0x23, 0x09, + 0xd2, 0xab, 0x7a, 0x41, 0xa6, 0x91, 0xe3, 0x8f, 0x2b, 0xa0, 0xa1, 0x76, 0x6c, 0x76, 0x40, 0x53, + 0x2f, 0x9a, 0x00, 0x7c, 0xd8, 0x9f, 0x06, 0xbf, 0xf8, 0x1d, 0x00, 0x00, 0xff, 0xff, 0x87, 0x97, + 0x7a, 0x4d, 0x8f, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/ad_sharing_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/ad_sharing_error.pb.go new file mode 100644 index 000000000..d4fa6bd2a --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/ad_sharing_error.pb.go @@ -0,0 +1,123 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/ad_sharing_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible ad sharing errors. +type AdSharingErrorEnum_AdSharingError int32 + +const ( + // Enum unspecified. + AdSharingErrorEnum_UNSPECIFIED AdSharingErrorEnum_AdSharingError = 0 + // The received error code is not known in this version. + AdSharingErrorEnum_UNKNOWN AdSharingErrorEnum_AdSharingError = 1 + // Error resulting in attempting to add an Ad to an AdGroup that already + // contains the Ad. + AdSharingErrorEnum_AD_GROUP_ALREADY_CONTAINS_AD AdSharingErrorEnum_AdSharingError = 2 + // Ad is not compatible with the AdGroup it is being shared with. + AdSharingErrorEnum_INCOMPATIBLE_AD_UNDER_AD_GROUP AdSharingErrorEnum_AdSharingError = 3 + // Cannot add AdGroupAd on inactive Ad. + AdSharingErrorEnum_CANNOT_SHARE_INACTIVE_AD AdSharingErrorEnum_AdSharingError = 4 +) + +var AdSharingErrorEnum_AdSharingError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "AD_GROUP_ALREADY_CONTAINS_AD", + 3: "INCOMPATIBLE_AD_UNDER_AD_GROUP", + 4: "CANNOT_SHARE_INACTIVE_AD", +} +var AdSharingErrorEnum_AdSharingError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "AD_GROUP_ALREADY_CONTAINS_AD": 2, + "INCOMPATIBLE_AD_UNDER_AD_GROUP": 3, + "CANNOT_SHARE_INACTIVE_AD": 4, +} + +func (x AdSharingErrorEnum_AdSharingError) String() string { + return proto.EnumName(AdSharingErrorEnum_AdSharingError_name, int32(x)) +} +func (AdSharingErrorEnum_AdSharingError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_ad_sharing_error_1f026b2ad4c0cf9b, []int{0, 0} +} + +// Container for enum describing possible ad sharing errors. +type AdSharingErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AdSharingErrorEnum) Reset() { *m = AdSharingErrorEnum{} } +func (m *AdSharingErrorEnum) String() string { return proto.CompactTextString(m) } +func (*AdSharingErrorEnum) ProtoMessage() {} +func (*AdSharingErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_sharing_error_1f026b2ad4c0cf9b, []int{0} +} +func (m *AdSharingErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AdSharingErrorEnum.Unmarshal(m, b) +} +func (m *AdSharingErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AdSharingErrorEnum.Marshal(b, m, deterministic) +} +func (dst *AdSharingErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_AdSharingErrorEnum.Merge(dst, src) +} +func (m *AdSharingErrorEnum) XXX_Size() int { + return xxx_messageInfo_AdSharingErrorEnum.Size(m) +} +func (m *AdSharingErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_AdSharingErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_AdSharingErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*AdSharingErrorEnum)(nil), "google.ads.googleads.v0.errors.AdSharingErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.AdSharingErrorEnum_AdSharingError", AdSharingErrorEnum_AdSharingError_name, AdSharingErrorEnum_AdSharingError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/ad_sharing_error.proto", fileDescriptor_ad_sharing_error_1f026b2ad4c0cf9b) +} + +var fileDescriptor_ad_sharing_error_1f026b2ad4c0cf9b = []byte{ + // 322 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0xdf, 0x4a, 0xf3, 0x30, + 0x18, 0xc6, 0xbf, 0x6e, 0x1f, 0xdf, 0x07, 0x19, 0x68, 0x89, 0x27, 0x1e, 0x8c, 0x21, 0xbd, 0x80, + 0xb4, 0x20, 0x1e, 0x79, 0xf4, 0xae, 0x89, 0x33, 0x38, 0xd3, 0xd2, 0x3f, 0x13, 0xa5, 0x10, 0xaa, + 0x1d, 0x71, 0xb0, 0x35, 0xa3, 0xd1, 0x5d, 0x88, 0x97, 0xe0, 0x99, 0xde, 0x89, 0x5e, 0x95, 0xb4, + 0x71, 0x83, 0x1d, 0xe8, 0x51, 0x1e, 0x5e, 0x7e, 0xbf, 0xbc, 0xc9, 0x83, 0xce, 0x94, 0xd6, 0x6a, + 0x39, 0xf7, 0xcb, 0xca, 0xf8, 0x36, 0xb6, 0x69, 0x13, 0xf8, 0xf3, 0xa6, 0xd1, 0x8d, 0xf1, 0xcb, + 0x4a, 0x9a, 0xc7, 0xb2, 0x59, 0xd4, 0x4a, 0x76, 0x13, 0xb2, 0x6e, 0xf4, 0x93, 0xc6, 0x23, 0xcb, + 0x92, 0xb2, 0x32, 0x64, 0xa7, 0x91, 0x4d, 0x40, 0xac, 0xe6, 0xbd, 0x39, 0x08, 0x43, 0x95, 0x5a, + 0x93, 0xb5, 0x33, 0x56, 0x3f, 0xaf, 0xbc, 0x17, 0x07, 0x1d, 0xec, 0x8f, 0xf1, 0x21, 0x1a, 0xe4, + 0x22, 0x8d, 0x59, 0xc8, 0x2f, 0x38, 0xa3, 0xee, 0x1f, 0x3c, 0x40, 0xff, 0x73, 0x71, 0x25, 0xa2, + 0x1b, 0xe1, 0x3a, 0xf8, 0x04, 0x0d, 0x81, 0xca, 0x49, 0x12, 0xe5, 0xb1, 0x84, 0x69, 0xc2, 0x80, + 0xde, 0xca, 0x30, 0x12, 0x19, 0x70, 0x91, 0x4a, 0xa0, 0x6e, 0x0f, 0x7b, 0x68, 0xc4, 0x45, 0x18, + 0x5d, 0xc7, 0x90, 0xf1, 0xf1, 0x94, 0x49, 0xa0, 0x32, 0x17, 0x94, 0x25, 0x72, 0xeb, 0xb9, 0x7d, + 0x3c, 0x44, 0xc7, 0x21, 0x08, 0x11, 0x65, 0x32, 0xbd, 0x84, 0x84, 0x49, 0x2e, 0x20, 0xcc, 0xf8, + 0xac, 0x85, 0xdd, 0xbf, 0xe3, 0x0f, 0x07, 0x79, 0x0f, 0x7a, 0x45, 0x7e, 0xff, 0xd2, 0xf8, 0x68, + 0xff, 0xe1, 0x71, 0xdb, 0x43, 0xec, 0xdc, 0xd1, 0x6f, 0x4d, 0xe9, 0x65, 0x59, 0x2b, 0xa2, 0x1b, + 0xe5, 0xab, 0x79, 0xdd, 0xb5, 0xb4, 0x2d, 0x74, 0xbd, 0x30, 0x3f, 0xf5, 0x7b, 0x6e, 0x8f, 0xd7, + 0x5e, 0x7f, 0x02, 0xf0, 0xde, 0x1b, 0x4d, 0xec, 0x65, 0x50, 0x19, 0x62, 0x63, 0x9b, 0x66, 0x01, + 0xe9, 0x56, 0x9a, 0xcf, 0x2d, 0x50, 0x40, 0x65, 0x8a, 0x1d, 0x50, 0xcc, 0x82, 0xc2, 0x02, 0xf7, + 0xff, 0xba, 0xc5, 0xa7, 0x5f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xa9, 0x38, 0xb7, 0x41, 0xd7, 0x01, + 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/adx_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/adx_error.pb.go new file mode 100644 index 000000000..9629ffbc0 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/adx_error.pb.go @@ -0,0 +1,109 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/adx_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible adx errors. +type AdxErrorEnum_AdxError int32 + +const ( + // Enum unspecified. + AdxErrorEnum_UNSPECIFIED AdxErrorEnum_AdxError = 0 + // The received error code is not known in this version. + AdxErrorEnum_UNKNOWN AdxErrorEnum_AdxError = 1 + // Attempt to use non-AdX feature by AdX customer. + AdxErrorEnum_UNSUPPORTED_FEATURE AdxErrorEnum_AdxError = 2 +) + +var AdxErrorEnum_AdxError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "UNSUPPORTED_FEATURE", +} +var AdxErrorEnum_AdxError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "UNSUPPORTED_FEATURE": 2, +} + +func (x AdxErrorEnum_AdxError) String() string { + return proto.EnumName(AdxErrorEnum_AdxError_name, int32(x)) +} +func (AdxErrorEnum_AdxError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_adx_error_4966203c5ec48a3a, []int{0, 0} +} + +// Container for enum describing possible adx errors. +type AdxErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AdxErrorEnum) Reset() { *m = AdxErrorEnum{} } +func (m *AdxErrorEnum) String() string { return proto.CompactTextString(m) } +func (*AdxErrorEnum) ProtoMessage() {} +func (*AdxErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_adx_error_4966203c5ec48a3a, []int{0} +} +func (m *AdxErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AdxErrorEnum.Unmarshal(m, b) +} +func (m *AdxErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AdxErrorEnum.Marshal(b, m, deterministic) +} +func (dst *AdxErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_AdxErrorEnum.Merge(dst, src) +} +func (m *AdxErrorEnum) XXX_Size() int { + return xxx_messageInfo_AdxErrorEnum.Size(m) +} +func (m *AdxErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_AdxErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_AdxErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*AdxErrorEnum)(nil), "google.ads.googleads.v0.errors.AdxErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.AdxErrorEnum_AdxError", AdxErrorEnum_AdxError_name, AdxErrorEnum_AdxError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/adx_error.proto", fileDescriptor_adx_error_4966203c5ec48a3a) +} + +var fileDescriptor_adx_error_4966203c5ec48a3a = []byte{ + // 253 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xd2, 0x4b, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xa2, + 0xa2, 0xfc, 0xa2, 0x62, 0xfd, 0xc4, 0x94, 0x8a, 0x78, 0x30, 0x53, 0xaf, 0xa0, 0x28, 0xbf, 0x24, + 0x5f, 0x48, 0x0e, 0xa2, 0x48, 0x2f, 0x31, 0xa5, 0x58, 0x0f, 0xae, 0x5e, 0xaf, 0xcc, 0x40, 0x0f, + 0xa2, 0x5e, 0x29, 0x90, 0x8b, 0xc7, 0x31, 0xa5, 0xc2, 0x15, 0xc4, 0x71, 0xcd, 0x2b, 0xcd, 0x55, + 0x72, 0xe4, 0xe2, 0x80, 0xf1, 0x85, 0xf8, 0xb9, 0xb8, 0x43, 0xfd, 0x82, 0x03, 0x5c, 0x9d, 0x3d, + 0xdd, 0x3c, 0x5d, 0x5d, 0x04, 0x18, 0x84, 0xb8, 0xb9, 0xd8, 0x43, 0xfd, 0xbc, 0xfd, 0xfc, 0xc3, + 0xfd, 0x04, 0x18, 0x85, 0xc4, 0xb9, 0x84, 0x43, 0xfd, 0x82, 0x43, 0x03, 0x02, 0xfc, 0x83, 0x42, + 0x5c, 0x5d, 0xe2, 0xdd, 0x5c, 0x1d, 0x43, 0x42, 0x83, 0x5c, 0x05, 0x98, 0x9c, 0x0e, 0x33, 0x72, + 0x29, 0x25, 0xe7, 0xe7, 0xea, 0xe1, 0xb7, 0xd9, 0x89, 0x17, 0x66, 0x4f, 0x00, 0xc8, 0xa1, 0x01, + 0x8c, 0x51, 0x2e, 0x50, 0x0d, 0xe9, 0xf9, 0x39, 0x89, 0x79, 0xe9, 0x7a, 0xf9, 0x45, 0xe9, 0xfa, + 0xe9, 0xa9, 0x79, 0x60, 0x6f, 0xc0, 0xbc, 0x5a, 0x90, 0x59, 0x8c, 0xcb, 0xe7, 0xd6, 0x10, 0x6a, + 0x11, 0x13, 0xb3, 0xbb, 0xa3, 0xe3, 0x2a, 0x26, 0x39, 0x77, 0x88, 0x61, 0x8e, 0x29, 0xc5, 0x7a, + 0x10, 0x26, 0x88, 0x15, 0x66, 0xa0, 0x07, 0xb6, 0xb2, 0xf8, 0x14, 0x4c, 0x41, 0x8c, 0x63, 0x4a, + 0x71, 0x0c, 0x5c, 0x41, 0x4c, 0x98, 0x41, 0x0c, 0x44, 0x41, 0x12, 0x1b, 0xd8, 0x62, 0x63, 0x40, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x54, 0xbf, 0x75, 0xe3, 0x71, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/authentication_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/authentication_error.pb.go new file mode 100644 index 000000000..5dd8481d0 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/authentication_error.pb.go @@ -0,0 +1,199 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/authentication_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible authentication errors. +type AuthenticationErrorEnum_AuthenticationError int32 + +const ( + // Enum unspecified. + AuthenticationErrorEnum_UNSPECIFIED AuthenticationErrorEnum_AuthenticationError = 0 + // The received error code is not known in this version. + AuthenticationErrorEnum_UNKNOWN AuthenticationErrorEnum_AuthenticationError = 1 + // Authentication of the request failed. + AuthenticationErrorEnum_AUTHENTICATION_ERROR AuthenticationErrorEnum_AuthenticationError = 2 + // Client Customer Id is not a number. + AuthenticationErrorEnum_CLIENT_CUSTOMER_ID_INVALID AuthenticationErrorEnum_AuthenticationError = 5 + // No customer found for the provided customer id. + AuthenticationErrorEnum_CUSTOMER_NOT_FOUND AuthenticationErrorEnum_AuthenticationError = 8 + // Client's Google Account is deleted. + AuthenticationErrorEnum_GOOGLE_ACCOUNT_DELETED AuthenticationErrorEnum_AuthenticationError = 9 + // Google account login token in the cookie is invalid. + AuthenticationErrorEnum_GOOGLE_ACCOUNT_COOKIE_INVALID AuthenticationErrorEnum_AuthenticationError = 10 + // A problem occurred during Google account authentication. + AuthenticationErrorEnum_GOOGLE_ACCOUNT_AUTHENTICATION_FAILED AuthenticationErrorEnum_AuthenticationError = 25 + // The user in the google account login token does not match the UserId in + // the cookie. + AuthenticationErrorEnum_GOOGLE_ACCOUNT_USER_AND_ADS_USER_MISMATCH AuthenticationErrorEnum_AuthenticationError = 12 + // Login cookie is required for authentication. + AuthenticationErrorEnum_LOGIN_COOKIE_REQUIRED AuthenticationErrorEnum_AuthenticationError = 13 + // User in the cookie is not a valid Ads user. + AuthenticationErrorEnum_NOT_ADS_USER AuthenticationErrorEnum_AuthenticationError = 14 + // Oauth token in the header is not valid. + AuthenticationErrorEnum_OAUTH_TOKEN_INVALID AuthenticationErrorEnum_AuthenticationError = 15 + // Oauth token in the header has expired. + AuthenticationErrorEnum_OAUTH_TOKEN_EXPIRED AuthenticationErrorEnum_AuthenticationError = 16 + // Oauth token in the header has been disabled. + AuthenticationErrorEnum_OAUTH_TOKEN_DISABLED AuthenticationErrorEnum_AuthenticationError = 17 + // Oauth token in the header has been revoked. + AuthenticationErrorEnum_OAUTH_TOKEN_REVOKED AuthenticationErrorEnum_AuthenticationError = 18 + // Oauth token HTTP header is malformed. + AuthenticationErrorEnum_OAUTH_TOKEN_HEADER_INVALID AuthenticationErrorEnum_AuthenticationError = 19 + // Login cookie is not valid. + AuthenticationErrorEnum_LOGIN_COOKIE_INVALID AuthenticationErrorEnum_AuthenticationError = 20 + // User Id in the header is not a valid id. + AuthenticationErrorEnum_USER_ID_INVALID AuthenticationErrorEnum_AuthenticationError = 22 + // An account administrator changed this account's authentication settings. + // To access this Google Ads account, enable 2-Step Verification in your + // Google account at https://www.google.com/landing/2step. + AuthenticationErrorEnum_TWO_STEP_VERIFICATION_NOT_ENROLLED AuthenticationErrorEnum_AuthenticationError = 23 + // An account administrator changed this account's authentication settings. + // To access this Google Ads account, enable Advanced Protection in your + // Google account at https://landing.google.com/advancedprotection. + AuthenticationErrorEnum_ADVANCED_PROTECTION_NOT_ENROLLED AuthenticationErrorEnum_AuthenticationError = 24 +) + +var AuthenticationErrorEnum_AuthenticationError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "AUTHENTICATION_ERROR", + 5: "CLIENT_CUSTOMER_ID_INVALID", + 8: "CUSTOMER_NOT_FOUND", + 9: "GOOGLE_ACCOUNT_DELETED", + 10: "GOOGLE_ACCOUNT_COOKIE_INVALID", + 25: "GOOGLE_ACCOUNT_AUTHENTICATION_FAILED", + 12: "GOOGLE_ACCOUNT_USER_AND_ADS_USER_MISMATCH", + 13: "LOGIN_COOKIE_REQUIRED", + 14: "NOT_ADS_USER", + 15: "OAUTH_TOKEN_INVALID", + 16: "OAUTH_TOKEN_EXPIRED", + 17: "OAUTH_TOKEN_DISABLED", + 18: "OAUTH_TOKEN_REVOKED", + 19: "OAUTH_TOKEN_HEADER_INVALID", + 20: "LOGIN_COOKIE_INVALID", + 22: "USER_ID_INVALID", + 23: "TWO_STEP_VERIFICATION_NOT_ENROLLED", + 24: "ADVANCED_PROTECTION_NOT_ENROLLED", +} +var AuthenticationErrorEnum_AuthenticationError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "AUTHENTICATION_ERROR": 2, + "CLIENT_CUSTOMER_ID_INVALID": 5, + "CUSTOMER_NOT_FOUND": 8, + "GOOGLE_ACCOUNT_DELETED": 9, + "GOOGLE_ACCOUNT_COOKIE_INVALID": 10, + "GOOGLE_ACCOUNT_AUTHENTICATION_FAILED": 25, + "GOOGLE_ACCOUNT_USER_AND_ADS_USER_MISMATCH": 12, + "LOGIN_COOKIE_REQUIRED": 13, + "NOT_ADS_USER": 14, + "OAUTH_TOKEN_INVALID": 15, + "OAUTH_TOKEN_EXPIRED": 16, + "OAUTH_TOKEN_DISABLED": 17, + "OAUTH_TOKEN_REVOKED": 18, + "OAUTH_TOKEN_HEADER_INVALID": 19, + "LOGIN_COOKIE_INVALID": 20, + "USER_ID_INVALID": 22, + "TWO_STEP_VERIFICATION_NOT_ENROLLED": 23, + "ADVANCED_PROTECTION_NOT_ENROLLED": 24, +} + +func (x AuthenticationErrorEnum_AuthenticationError) String() string { + return proto.EnumName(AuthenticationErrorEnum_AuthenticationError_name, int32(x)) +} +func (AuthenticationErrorEnum_AuthenticationError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_authentication_error_8d31aef746d95263, []int{0, 0} +} + +// Container for enum describing possible authentication errors. +type AuthenticationErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AuthenticationErrorEnum) Reset() { *m = AuthenticationErrorEnum{} } +func (m *AuthenticationErrorEnum) String() string { return proto.CompactTextString(m) } +func (*AuthenticationErrorEnum) ProtoMessage() {} +func (*AuthenticationErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_authentication_error_8d31aef746d95263, []int{0} +} +func (m *AuthenticationErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AuthenticationErrorEnum.Unmarshal(m, b) +} +func (m *AuthenticationErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AuthenticationErrorEnum.Marshal(b, m, deterministic) +} +func (dst *AuthenticationErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_AuthenticationErrorEnum.Merge(dst, src) +} +func (m *AuthenticationErrorEnum) XXX_Size() int { + return xxx_messageInfo_AuthenticationErrorEnum.Size(m) +} +func (m *AuthenticationErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_AuthenticationErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_AuthenticationErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*AuthenticationErrorEnum)(nil), "google.ads.googleads.v0.errors.AuthenticationErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.AuthenticationErrorEnum_AuthenticationError", AuthenticationErrorEnum_AuthenticationError_name, AuthenticationErrorEnum_AuthenticationError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/authentication_error.proto", fileDescriptor_authentication_error_8d31aef746d95263) +} + +var fileDescriptor_authentication_error_8d31aef746d95263 = []byte{ + // 524 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x53, 0x5d, 0x6f, 0xd3, 0x30, + 0x14, 0x65, 0x65, 0x7c, 0x79, 0x83, 0x1a, 0x77, 0xb4, 0xdd, 0x24, 0x2a, 0xa8, 0x26, 0x04, 0x0f, + 0xa4, 0x95, 0x78, 0x42, 0x3c, 0xb9, 0xf1, 0x6d, 0x6b, 0x35, 0xb5, 0x83, 0xe3, 0x64, 0x08, 0x55, + 0xb2, 0xca, 0x5a, 0x85, 0x4a, 0x5b, 0x33, 0x35, 0xdd, 0x7e, 0x10, 0x8f, 0xfc, 0x14, 0x84, 0xf8, + 0x1d, 0xfc, 0x0c, 0xe4, 0x64, 0xa9, 0xba, 0x30, 0x78, 0xca, 0x4d, 0xce, 0x39, 0xf7, 0x1c, 0xdf, + 0x5c, 0xa3, 0xf7, 0x71, 0x92, 0xc4, 0x67, 0xf3, 0xce, 0x74, 0x96, 0x76, 0xf2, 0xd2, 0x56, 0x57, + 0xdd, 0xce, 0x7c, 0xb5, 0x4a, 0x56, 0x69, 0x67, 0x7a, 0xb9, 0xfe, 0x3a, 0x5f, 0xae, 0x17, 0xa7, + 0xd3, 0xf5, 0x22, 0x59, 0x9a, 0xec, 0xab, 0x73, 0xb1, 0x4a, 0xd6, 0x09, 0x69, 0xe5, 0x7c, 0x67, + 0x3a, 0x4b, 0x9d, 0x8d, 0xd4, 0xb9, 0xea, 0x3a, 0xb9, 0xb4, 0xfd, 0x7b, 0x17, 0x35, 0xe8, 0x0d, + 0x39, 0x58, 0x00, 0x96, 0x97, 0xe7, 0xed, 0x9f, 0xbb, 0xa8, 0x76, 0x0b, 0x46, 0xaa, 0x68, 0x2f, + 0x14, 0x81, 0x0f, 0x2e, 0xef, 0x73, 0x60, 0xf8, 0x0e, 0xd9, 0x43, 0x0f, 0x42, 0x31, 0x12, 0xf2, + 0x44, 0xe0, 0x1d, 0xd2, 0x44, 0x07, 0x34, 0xd4, 0x43, 0x10, 0x9a, 0xbb, 0x54, 0x73, 0x29, 0x0c, + 0x28, 0x25, 0x15, 0xae, 0x90, 0x16, 0x3a, 0x72, 0x3d, 0x0e, 0x42, 0x1b, 0x37, 0x0c, 0xb4, 0x1c, + 0x83, 0x32, 0x9c, 0x19, 0x2e, 0x22, 0xea, 0x71, 0x86, 0xef, 0x91, 0x3a, 0x22, 0x1b, 0x40, 0x48, + 0x6d, 0xfa, 0x32, 0x14, 0x0c, 0x3f, 0x24, 0x47, 0xa8, 0x3e, 0x90, 0x72, 0xe0, 0x81, 0xa1, 0xae, + 0x2b, 0x43, 0xa1, 0x0d, 0x03, 0x0f, 0x34, 0x30, 0xfc, 0x88, 0xbc, 0x44, 0xcf, 0x4b, 0x98, 0x2b, + 0xe5, 0x88, 0xc3, 0xa6, 0x2d, 0x22, 0xaf, 0xd1, 0x71, 0x89, 0x52, 0xca, 0xd7, 0xa7, 0xdc, 0x03, + 0x86, 0x0f, 0xc9, 0x5b, 0xf4, 0xa6, 0xc4, 0x0c, 0x03, 0x50, 0x86, 0x0a, 0x66, 0x28, 0x0b, 0xf2, + 0x97, 0x31, 0x0f, 0xc6, 0x54, 0xbb, 0x43, 0xbc, 0x4f, 0x0e, 0xd1, 0x33, 0x4f, 0x0e, 0xb8, 0x28, + 0x2c, 0x15, 0x7c, 0x0c, 0xb9, 0x02, 0x86, 0x1f, 0x13, 0x8c, 0xf6, 0xed, 0x09, 0x0a, 0x15, 0x7e, + 0x42, 0x1a, 0xa8, 0x26, 0xad, 0xaf, 0xd1, 0x72, 0x04, 0x62, 0x13, 0xaf, 0x5a, 0x06, 0xe0, 0x93, + 0x9f, 0xf5, 0xc0, 0x76, 0x90, 0xdb, 0x00, 0xe3, 0x01, 0xed, 0xd9, 0x9c, 0x4f, 0xcb, 0x12, 0x05, + 0x91, 0x1c, 0x01, 0xc3, 0xc4, 0x4e, 0x78, 0x1b, 0x18, 0x02, 0x65, 0x76, 0xc8, 0xd7, 0x5e, 0x35, + 0xdb, 0xf2, 0x46, 0xe2, 0x02, 0x39, 0x20, 0x35, 0x54, 0xcd, 0x8e, 0xb7, 0xf5, 0x43, 0xea, 0xe4, + 0x15, 0x6a, 0xeb, 0x13, 0x69, 0x02, 0x0d, 0xbe, 0x89, 0x40, 0xf1, 0x7e, 0x31, 0x31, 0x7b, 0x36, + 0x10, 0x4a, 0x7a, 0x36, 0x4f, 0x83, 0x1c, 0xa3, 0x17, 0x94, 0x45, 0x54, 0xb8, 0xc0, 0x8c, 0xaf, + 0xa4, 0x06, 0xf7, 0x6f, 0x56, 0xb3, 0xf7, 0x6b, 0x07, 0xb5, 0x4f, 0x93, 0x73, 0xe7, 0xff, 0x1b, + 0xd9, 0x6b, 0xde, 0xb2, 0x72, 0xbe, 0xdd, 0x65, 0x7f, 0xe7, 0x33, 0xbb, 0xd6, 0xc6, 0xc9, 0xd9, + 0x74, 0x19, 0x3b, 0xc9, 0x2a, 0xee, 0xc4, 0xf3, 0x65, 0xb6, 0xe9, 0xc5, 0xc5, 0xb8, 0x58, 0xa4, + 0xff, 0xba, 0x27, 0x1f, 0xf2, 0xc7, 0xb7, 0xca, 0xdd, 0x01, 0xa5, 0xdf, 0x2b, 0xad, 0x41, 0xde, + 0x8c, 0xce, 0x52, 0x27, 0x2f, 0x6d, 0x15, 0x75, 0x9d, 0xcc, 0x32, 0xfd, 0x51, 0x10, 0x26, 0x74, + 0x96, 0x4e, 0x36, 0x84, 0x49, 0xd4, 0x9d, 0xe4, 0x84, 0x2f, 0xf7, 0x33, 0xe3, 0x77, 0x7f, 0x02, + 0x00, 0x00, 0xff, 0xff, 0xa3, 0x01, 0xf3, 0x55, 0x9f, 0x03, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/authorization_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/authorization_error.pb.go new file mode 100644 index 000000000..f0d3f0649 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/authorization_error.pb.go @@ -0,0 +1,144 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/authorization_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible authorization errors. +type AuthorizationErrorEnum_AuthorizationError int32 + +const ( + // Enum unspecified. + AuthorizationErrorEnum_UNSPECIFIED AuthorizationErrorEnum_AuthorizationError = 0 + // The received error code is not known in this version. + AuthorizationErrorEnum_UNKNOWN AuthorizationErrorEnum_AuthorizationError = 1 + // User doesn't have permission to access customer. + AuthorizationErrorEnum_USER_PERMISSION_DENIED AuthorizationErrorEnum_AuthorizationError = 2 + // The developer token is not whitelisted. + AuthorizationErrorEnum_DEVELOPER_TOKEN_NOT_WHITELISTED AuthorizationErrorEnum_AuthorizationError = 3 + // The developer token is not allowed with the project sent in the request. + AuthorizationErrorEnum_DEVELOPER_TOKEN_PROHIBITED AuthorizationErrorEnum_AuthorizationError = 4 + // The Google Cloud project sent in the request does not have permission to + // access the api. + AuthorizationErrorEnum_PROJECT_DISABLED AuthorizationErrorEnum_AuthorizationError = 5 + // Authorization of the client failed. + AuthorizationErrorEnum_AUTHORIZATION_ERROR AuthorizationErrorEnum_AuthorizationError = 6 + // The user does not have permission to perform this action + // (e.g., ADD, UPDATE, REMOVE) on the resource or call a method. + AuthorizationErrorEnum_ACTION_NOT_PERMITTED AuthorizationErrorEnum_AuthorizationError = 7 + // Signup not complete. + AuthorizationErrorEnum_INCOMPLETE_SIGNUP AuthorizationErrorEnum_AuthorizationError = 8 +) + +var AuthorizationErrorEnum_AuthorizationError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "USER_PERMISSION_DENIED", + 3: "DEVELOPER_TOKEN_NOT_WHITELISTED", + 4: "DEVELOPER_TOKEN_PROHIBITED", + 5: "PROJECT_DISABLED", + 6: "AUTHORIZATION_ERROR", + 7: "ACTION_NOT_PERMITTED", + 8: "INCOMPLETE_SIGNUP", +} +var AuthorizationErrorEnum_AuthorizationError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "USER_PERMISSION_DENIED": 2, + "DEVELOPER_TOKEN_NOT_WHITELISTED": 3, + "DEVELOPER_TOKEN_PROHIBITED": 4, + "PROJECT_DISABLED": 5, + "AUTHORIZATION_ERROR": 6, + "ACTION_NOT_PERMITTED": 7, + "INCOMPLETE_SIGNUP": 8, +} + +func (x AuthorizationErrorEnum_AuthorizationError) String() string { + return proto.EnumName(AuthorizationErrorEnum_AuthorizationError_name, int32(x)) +} +func (AuthorizationErrorEnum_AuthorizationError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_authorization_error_bfcafdfe999de0f1, []int{0, 0} +} + +// Container for enum describing possible authorization errors. +type AuthorizationErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AuthorizationErrorEnum) Reset() { *m = AuthorizationErrorEnum{} } +func (m *AuthorizationErrorEnum) String() string { return proto.CompactTextString(m) } +func (*AuthorizationErrorEnum) ProtoMessage() {} +func (*AuthorizationErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_authorization_error_bfcafdfe999de0f1, []int{0} +} +func (m *AuthorizationErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AuthorizationErrorEnum.Unmarshal(m, b) +} +func (m *AuthorizationErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AuthorizationErrorEnum.Marshal(b, m, deterministic) +} +func (dst *AuthorizationErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_AuthorizationErrorEnum.Merge(dst, src) +} +func (m *AuthorizationErrorEnum) XXX_Size() int { + return xxx_messageInfo_AuthorizationErrorEnum.Size(m) +} +func (m *AuthorizationErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_AuthorizationErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_AuthorizationErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*AuthorizationErrorEnum)(nil), "google.ads.googleads.v0.errors.AuthorizationErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.AuthorizationErrorEnum_AuthorizationError", AuthorizationErrorEnum_AuthorizationError_name, AuthorizationErrorEnum_AuthorizationError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/authorization_error.proto", fileDescriptor_authorization_error_bfcafdfe999de0f1) +} + +var fileDescriptor_authorization_error_bfcafdfe999de0f1 = []byte{ + // 390 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x91, 0xc1, 0x6e, 0xd4, 0x30, + 0x10, 0x86, 0x49, 0x0a, 0x2d, 0x72, 0x0f, 0x04, 0x53, 0x5a, 0xd4, 0xc3, 0x22, 0x2d, 0x77, 0x27, + 0x12, 0x17, 0x24, 0x4e, 0x4e, 0x32, 0xec, 0x9a, 0xa6, 0xb6, 0xe5, 0x38, 0x5b, 0xa9, 0x8a, 0x64, + 0x05, 0xb2, 0x0a, 0x2b, 0xb5, 0x71, 0x95, 0x6c, 0xf7, 0xc0, 0x43, 0xf0, 0x10, 0x1c, 0x79, 0x14, + 0x24, 0x9e, 0x86, 0x17, 0x40, 0x4e, 0xd8, 0x15, 0x62, 0x05, 0x27, 0xff, 0x9a, 0xf9, 0xfe, 0xf9, + 0xad, 0x19, 0xf4, 0xa6, 0xb1, 0xb6, 0xb9, 0x59, 0x86, 0x55, 0xdd, 0x87, 0xa3, 0x74, 0x6a, 0x13, + 0x85, 0xcb, 0xae, 0xb3, 0x5d, 0x1f, 0x56, 0xf7, 0xeb, 0x4f, 0xb6, 0x5b, 0x7d, 0xae, 0xd6, 0x2b, + 0xdb, 0x9a, 0xa1, 0x48, 0xee, 0x3a, 0xbb, 0xb6, 0x78, 0x32, 0xe2, 0xa4, 0xaa, 0x7b, 0xb2, 0x73, + 0x92, 0x4d, 0x44, 0x46, 0xe7, 0xf4, 0x8b, 0x8f, 0x4e, 0xe9, 0x9f, 0x6e, 0x70, 0x75, 0x68, 0xef, + 0x6f, 0xa7, 0x3f, 0x3d, 0x84, 0xf7, 0x5b, 0xf8, 0x09, 0x3a, 0x2e, 0x78, 0x2e, 0x21, 0x61, 0xef, + 0x18, 0xa4, 0xc1, 0x03, 0x7c, 0x8c, 0x8e, 0x0a, 0x7e, 0xc1, 0xc5, 0x15, 0x0f, 0x3c, 0x7c, 0x8e, + 0x4e, 0x8b, 0x1c, 0x94, 0x91, 0xa0, 0x2e, 0x59, 0x9e, 0x33, 0xc1, 0x4d, 0x0a, 0xdc, 0x81, 0x3e, + 0x7e, 0x85, 0x5e, 0xa6, 0xb0, 0x80, 0x4c, 0x48, 0x50, 0x46, 0x8b, 0x0b, 0xe0, 0x86, 0x0b, 0x6d, + 0xae, 0xe6, 0x4c, 0x43, 0xc6, 0x72, 0x0d, 0x69, 0x70, 0x80, 0x27, 0xe8, 0xfc, 0x6f, 0x48, 0x2a, + 0x31, 0x67, 0x31, 0x73, 0xfd, 0x87, 0xf8, 0x04, 0x05, 0x52, 0x89, 0xf7, 0x90, 0x68, 0x93, 0xb2, + 0x9c, 0xc6, 0x19, 0xa4, 0xc1, 0x23, 0x7c, 0x86, 0x9e, 0xd1, 0x42, 0xcf, 0x85, 0x62, 0xd7, 0x54, + 0xbb, 0x50, 0x50, 0x4a, 0xa8, 0xe0, 0x10, 0xbf, 0x40, 0x27, 0x34, 0x19, 0x2a, 0x2e, 0x6a, 0xf8, + 0x95, 0x76, 0x83, 0x8e, 0xf0, 0x73, 0xf4, 0x94, 0xf1, 0x44, 0x5c, 0xca, 0x0c, 0x34, 0x98, 0x9c, + 0xcd, 0x78, 0x21, 0x83, 0xc7, 0xf1, 0x0f, 0x0f, 0x4d, 0x3f, 0xda, 0x5b, 0xf2, 0xff, 0xbd, 0xc5, + 0x67, 0xfb, 0x9b, 0x91, 0x6e, 0xe1, 0xd2, 0xbb, 0x4e, 0x7f, 0x5b, 0x1b, 0x7b, 0x53, 0xb5, 0x0d, + 0xb1, 0x5d, 0x13, 0x36, 0xcb, 0x76, 0x38, 0xc7, 0xf6, 0x78, 0x77, 0xab, 0xfe, 0x5f, 0xb7, 0x7c, + 0x3b, 0x3e, 0x5f, 0xfd, 0x83, 0x19, 0xa5, 0xdf, 0xfc, 0xc9, 0x6c, 0x1c, 0x46, 0xeb, 0x9e, 0x8c, + 0xd2, 0xa9, 0x45, 0x44, 0x86, 0xc8, 0xfe, 0xfb, 0x16, 0x28, 0x69, 0xdd, 0x97, 0x3b, 0xa0, 0x5c, + 0x44, 0xe5, 0x08, 0x7c, 0x38, 0x1c, 0x82, 0x5f, 0xff, 0x0a, 0x00, 0x00, 0xff, 0xff, 0x28, 0x0d, + 0x58, 0xa5, 0x43, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/bidding_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/bidding_error.pb.go new file mode 100644 index 000000000..de4e9ed08 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/bidding_error.pb.go @@ -0,0 +1,215 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/bidding_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible bidding errors. +type BiddingErrorEnum_BiddingError int32 + +const ( + // Enum unspecified. + BiddingErrorEnum_UNSPECIFIED BiddingErrorEnum_BiddingError = 0 + // The received error code is not known in this version. + BiddingErrorEnum_UNKNOWN BiddingErrorEnum_BiddingError = 1 + // Cannot transition to new bidding strategy. + BiddingErrorEnum_BIDDING_STRATEGY_TRANSITION_NOT_ALLOWED BiddingErrorEnum_BiddingError = 2 + // Cannot attach bidding strategy to campaign. + BiddingErrorEnum_CANNOT_ATTACH_BIDDING_STRATEGY_TO_CAMPAIGN BiddingErrorEnum_BiddingError = 7 + // Bidding strategy is not supported or cannot be used as anonymous. + BiddingErrorEnum_INVALID_ANONYMOUS_BIDDING_STRATEGY_TYPE BiddingErrorEnum_BiddingError = 10 + // The type does not match the named strategy's type. + BiddingErrorEnum_INVALID_BIDDING_STRATEGY_TYPE BiddingErrorEnum_BiddingError = 14 + // The bid is invalid. + BiddingErrorEnum_INVALID_BID BiddingErrorEnum_BiddingError = 17 + // Bidding strategy is not available for the account type. + BiddingErrorEnum_BIDDING_STRATEGY_NOT_AVAILABLE_FOR_ACCOUNT_TYPE BiddingErrorEnum_BiddingError = 18 + // Conversion tracking is not enabled for the campaign for VBB transition. + BiddingErrorEnum_CONVERSION_TRACKING_NOT_ENABLED BiddingErrorEnum_BiddingError = 19 + // Not enough conversions tracked for VBB transitions. + BiddingErrorEnum_NOT_ENOUGH_CONVERSIONS BiddingErrorEnum_BiddingError = 20 + // Campaign can not be created with given bidding strategy. It can be + // transitioned to the strategy, once eligible. + BiddingErrorEnum_CANNOT_CREATE_CAMPAIGN_WITH_BIDDING_STRATEGY BiddingErrorEnum_BiddingError = 21 + // Cannot target content network only as campaign uses Page One Promoted + // bidding strategy. + BiddingErrorEnum_CANNOT_TARGET_CONTENT_NETWORK_ONLY_WITH_CAMPAIGN_LEVEL_POP_BIDDING_STRATEGY BiddingErrorEnum_BiddingError = 23 + // Budget Optimizer and Target Spend bidding strategies are not supported + // for campaigns with AdSchedule targeting. + BiddingErrorEnum_BIDDING_STRATEGY_NOT_SUPPORTED_WITH_AD_SCHEDULE BiddingErrorEnum_BiddingError = 24 + // Pay per conversion is not available to all the customer, only few + // whitelisted customers can use this. + BiddingErrorEnum_PAY_PER_CONVERSION_NOT_AVAILABLE_FOR_CUSTOMER BiddingErrorEnum_BiddingError = 25 + // Pay per conversion is not allowed with Target CPA. + BiddingErrorEnum_PAY_PER_CONVERSION_NOT_ALLOWED_WITH_TARGET_CPA BiddingErrorEnum_BiddingError = 26 + // Cannot set bidding strategy to Manual CPM for search network only + // campaigns. + BiddingErrorEnum_BIDDING_STRATEGY_NOT_ALLOWED_FOR_SEARCH_ONLY_CAMPAIGNS BiddingErrorEnum_BiddingError = 27 + // The bidding strategy is not supported for use in drafts or experiments. + BiddingErrorEnum_BIDDING_STRATEGY_NOT_SUPPORTED_IN_DRAFTS_OR_EXPERIMENTS BiddingErrorEnum_BiddingError = 28 + // Bidding strategy type does not support product type ad group criterion. + BiddingErrorEnum_BIDDING_STRATEGY_TYPE_DOES_NOT_SUPPORT_PRODUCT_TYPE_ADGROUP_CRITERION BiddingErrorEnum_BiddingError = 29 + // Bid amount is too small. + BiddingErrorEnum_BID_TOO_SMALL BiddingErrorEnum_BiddingError = 30 + // Bid amount is too big. + BiddingErrorEnum_BID_TOO_BIG BiddingErrorEnum_BiddingError = 31 + // Bid has too many fractional digit precision. + BiddingErrorEnum_BID_TOO_MANY_FRACTIONAL_DIGITS BiddingErrorEnum_BiddingError = 32 + // Invalid domain name specified. + BiddingErrorEnum_INVALID_DOMAIN_NAME BiddingErrorEnum_BiddingError = 33 +) + +var BiddingErrorEnum_BiddingError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "BIDDING_STRATEGY_TRANSITION_NOT_ALLOWED", + 7: "CANNOT_ATTACH_BIDDING_STRATEGY_TO_CAMPAIGN", + 10: "INVALID_ANONYMOUS_BIDDING_STRATEGY_TYPE", + 14: "INVALID_BIDDING_STRATEGY_TYPE", + 17: "INVALID_BID", + 18: "BIDDING_STRATEGY_NOT_AVAILABLE_FOR_ACCOUNT_TYPE", + 19: "CONVERSION_TRACKING_NOT_ENABLED", + 20: "NOT_ENOUGH_CONVERSIONS", + 21: "CANNOT_CREATE_CAMPAIGN_WITH_BIDDING_STRATEGY", + 23: "CANNOT_TARGET_CONTENT_NETWORK_ONLY_WITH_CAMPAIGN_LEVEL_POP_BIDDING_STRATEGY", + 24: "BIDDING_STRATEGY_NOT_SUPPORTED_WITH_AD_SCHEDULE", + 25: "PAY_PER_CONVERSION_NOT_AVAILABLE_FOR_CUSTOMER", + 26: "PAY_PER_CONVERSION_NOT_ALLOWED_WITH_TARGET_CPA", + 27: "BIDDING_STRATEGY_NOT_ALLOWED_FOR_SEARCH_ONLY_CAMPAIGNS", + 28: "BIDDING_STRATEGY_NOT_SUPPORTED_IN_DRAFTS_OR_EXPERIMENTS", + 29: "BIDDING_STRATEGY_TYPE_DOES_NOT_SUPPORT_PRODUCT_TYPE_ADGROUP_CRITERION", + 30: "BID_TOO_SMALL", + 31: "BID_TOO_BIG", + 32: "BID_TOO_MANY_FRACTIONAL_DIGITS", + 33: "INVALID_DOMAIN_NAME", +} +var BiddingErrorEnum_BiddingError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "BIDDING_STRATEGY_TRANSITION_NOT_ALLOWED": 2, + "CANNOT_ATTACH_BIDDING_STRATEGY_TO_CAMPAIGN": 7, + "INVALID_ANONYMOUS_BIDDING_STRATEGY_TYPE": 10, + "INVALID_BIDDING_STRATEGY_TYPE": 14, + "INVALID_BID": 17, + "BIDDING_STRATEGY_NOT_AVAILABLE_FOR_ACCOUNT_TYPE": 18, + "CONVERSION_TRACKING_NOT_ENABLED": 19, + "NOT_ENOUGH_CONVERSIONS": 20, + "CANNOT_CREATE_CAMPAIGN_WITH_BIDDING_STRATEGY": 21, + "CANNOT_TARGET_CONTENT_NETWORK_ONLY_WITH_CAMPAIGN_LEVEL_POP_BIDDING_STRATEGY": 23, + "BIDDING_STRATEGY_NOT_SUPPORTED_WITH_AD_SCHEDULE": 24, + "PAY_PER_CONVERSION_NOT_AVAILABLE_FOR_CUSTOMER": 25, + "PAY_PER_CONVERSION_NOT_ALLOWED_WITH_TARGET_CPA": 26, + "BIDDING_STRATEGY_NOT_ALLOWED_FOR_SEARCH_ONLY_CAMPAIGNS": 27, + "BIDDING_STRATEGY_NOT_SUPPORTED_IN_DRAFTS_OR_EXPERIMENTS": 28, + "BIDDING_STRATEGY_TYPE_DOES_NOT_SUPPORT_PRODUCT_TYPE_ADGROUP_CRITERION": 29, + "BID_TOO_SMALL": 30, + "BID_TOO_BIG": 31, + "BID_TOO_MANY_FRACTIONAL_DIGITS": 32, + "INVALID_DOMAIN_NAME": 33, +} + +func (x BiddingErrorEnum_BiddingError) String() string { + return proto.EnumName(BiddingErrorEnum_BiddingError_name, int32(x)) +} +func (BiddingErrorEnum_BiddingError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_bidding_error_04ed8b812bcf4766, []int{0, 0} +} + +// Container for enum describing possible bidding errors. +type BiddingErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BiddingErrorEnum) Reset() { *m = BiddingErrorEnum{} } +func (m *BiddingErrorEnum) String() string { return proto.CompactTextString(m) } +func (*BiddingErrorEnum) ProtoMessage() {} +func (*BiddingErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_bidding_error_04ed8b812bcf4766, []int{0} +} +func (m *BiddingErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BiddingErrorEnum.Unmarshal(m, b) +} +func (m *BiddingErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BiddingErrorEnum.Marshal(b, m, deterministic) +} +func (dst *BiddingErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_BiddingErrorEnum.Merge(dst, src) +} +func (m *BiddingErrorEnum) XXX_Size() int { + return xxx_messageInfo_BiddingErrorEnum.Size(m) +} +func (m *BiddingErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_BiddingErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_BiddingErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*BiddingErrorEnum)(nil), "google.ads.googleads.v0.errors.BiddingErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.BiddingErrorEnum_BiddingError", BiddingErrorEnum_BiddingError_name, BiddingErrorEnum_BiddingError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/bidding_error.proto", fileDescriptor_bidding_error_04ed8b812bcf4766) +} + +var fileDescriptor_bidding_error_04ed8b812bcf4766 = []byte{ + // 655 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x54, 0xed, 0x6e, 0xd3, 0x4a, + 0x10, 0xbd, 0xed, 0x95, 0x6e, 0xa4, 0xed, 0xfd, 0xd8, 0x6e, 0x2f, 0x14, 0x0a, 0x4d, 0x69, 0xf8, + 0x81, 0xc4, 0x87, 0x13, 0x5a, 0x09, 0x24, 0xfa, 0x6b, 0xe2, 0x9d, 0x38, 0xab, 0xd8, 0xbb, 0xd6, + 0xee, 0x3a, 0x21, 0x28, 0xd2, 0xaa, 0x25, 0x55, 0x54, 0xa9, 0x8d, 0xab, 0x04, 0xfa, 0x40, 0x88, + 0x5f, 0xbc, 0x01, 0x4f, 0x80, 0xc4, 0x53, 0x21, 0x67, 0xe3, 0x10, 0x29, 0x29, 0xfc, 0xf2, 0xf8, + 0xe8, 0x9c, 0x33, 0x3e, 0xeb, 0xd9, 0x21, 0x47, 0xa3, 0x3c, 0x1f, 0x5d, 0x9e, 0xd7, 0x4f, 0x87, + 0xd3, 0xba, 0x2f, 0x8b, 0xea, 0xa6, 0x51, 0x3f, 0x9f, 0x4c, 0xf2, 0xc9, 0xb4, 0x7e, 0x76, 0x31, + 0x1c, 0x5e, 0x8c, 0x47, 0x6e, 0xf6, 0x1a, 0x5c, 0x4f, 0xf2, 0x0f, 0x39, 0xab, 0x7a, 0x62, 0x70, + 0x3a, 0x9c, 0x06, 0x0b, 0x4d, 0x70, 0xd3, 0x08, 0xbc, 0xa6, 0xf6, 0xb5, 0x42, 0x68, 0xd3, 0xeb, + 0xb0, 0x40, 0x70, 0xfc, 0xf1, 0xaa, 0xf6, 0xb9, 0x42, 0xfe, 0x5e, 0x06, 0xd9, 0x7f, 0x64, 0x2b, + 0x93, 0x26, 0xc5, 0x50, 0xb4, 0x04, 0x72, 0xfa, 0x07, 0xdb, 0x22, 0x95, 0x4c, 0x76, 0xa4, 0xea, + 0x49, 0xba, 0xc1, 0x9e, 0x91, 0x27, 0x4d, 0xc1, 0xb9, 0x90, 0x91, 0x33, 0x56, 0x83, 0xc5, 0xa8, + 0xef, 0xac, 0x06, 0x69, 0x84, 0x15, 0x4a, 0x3a, 0xa9, 0xac, 0x83, 0x38, 0x56, 0x3d, 0xe4, 0x74, + 0x93, 0x05, 0xe4, 0x69, 0x08, 0x72, 0x86, 0x59, 0x0b, 0x61, 0xdb, 0xad, 0x4a, 0x95, 0x0b, 0x21, + 0x49, 0x41, 0x44, 0x92, 0x56, 0x0a, 0x73, 0x21, 0xbb, 0x10, 0x0b, 0xee, 0x40, 0x2a, 0xd9, 0x4f, + 0x54, 0x66, 0xd6, 0x68, 0xfa, 0x29, 0x52, 0xc2, 0x0e, 0xc9, 0x7e, 0x49, 0x5e, 0x4f, 0xf9, 0xb7, + 0x88, 0xb2, 0x44, 0xa1, 0xdb, 0xec, 0x98, 0xd4, 0x57, 0xb8, 0xb3, 0xcf, 0xeb, 0x82, 0x88, 0xa1, + 0x19, 0xa3, 0x6b, 0x29, 0xed, 0x20, 0x0c, 0x55, 0x26, 0xad, 0x77, 0x61, 0xec, 0x31, 0x39, 0x08, + 0x95, 0xec, 0xa2, 0x36, 0x45, 0x42, 0xab, 0x21, 0xec, 0x14, 0x06, 0x85, 0x0e, 0x65, 0x21, 0xe2, + 0x74, 0x87, 0xed, 0x91, 0xbb, 0x1e, 0x50, 0x59, 0xd4, 0x76, 0x3f, 0xf9, 0x86, 0xfe, 0xcf, 0x1a, + 0xe4, 0xf9, 0xfc, 0x18, 0x42, 0x8d, 0x60, 0x71, 0x11, 0xd9, 0xf5, 0x84, 0x5d, 0x3d, 0x14, 0x7a, + 0x87, 0x29, 0xd2, 0x99, 0x2b, 0x2c, 0xe8, 0x08, 0x6d, 0x61, 0x68, 0x51, 0x5a, 0x27, 0xd1, 0xf6, + 0x94, 0xee, 0x38, 0x25, 0xe3, 0xbe, 0x57, 0x2f, 0xbc, 0x62, 0xec, 0x62, 0xec, 0x52, 0x95, 0xae, + 0x1a, 0xee, 0xde, 0x1a, 0xdc, 0x64, 0x69, 0xaa, 0xb4, 0x45, 0xee, 0xcd, 0x80, 0x3b, 0x13, 0xb6, + 0x91, 0x67, 0x31, 0xd2, 0x7b, 0xec, 0x25, 0x79, 0x91, 0x42, 0xdf, 0xa5, 0xa8, 0x97, 0x02, 0xad, + 0x39, 0xaf, 0x30, 0x33, 0x56, 0x25, 0xa8, 0xe9, 0x7d, 0x76, 0x44, 0x82, 0xdb, 0x24, 0x7e, 0x2a, + 0x7c, 0x9f, 0x32, 0x55, 0x0a, 0x74, 0x8f, 0xbd, 0x21, 0xaf, 0xd6, 0xff, 0x94, 0xb9, 0xa2, 0x68, + 0x61, 0x10, 0x74, 0xd8, 0xf6, 0xb1, 0xcb, 0xc4, 0x86, 0x3e, 0x60, 0x27, 0xe4, 0xf5, 0x6f, 0x72, + 0x09, 0xe9, 0xb8, 0x86, 0x96, 0x35, 0x4e, 0x69, 0x87, 0x6f, 0x53, 0xd4, 0x22, 0x41, 0x69, 0x0d, + 0x7d, 0xc8, 0x04, 0xc1, 0xb5, 0x93, 0xe3, 0xb8, 0x42, 0xb3, 0x6c, 0xe3, 0x52, 0xad, 0x78, 0x16, + 0xfa, 0x89, 0x70, 0xc0, 0x23, 0xad, 0xb2, 0xd4, 0x85, 0x5a, 0x58, 0xd4, 0x42, 0x49, 0xba, 0xcf, + 0xb6, 0xc9, 0x3f, 0x4d, 0xc1, 0x9d, 0x55, 0xca, 0x99, 0x04, 0xe2, 0x98, 0x56, 0x8b, 0xe1, 0x2b, + 0xa1, 0xa6, 0x88, 0xe8, 0x01, 0xab, 0x91, 0x6a, 0x09, 0x24, 0x20, 0xfb, 0xae, 0xa5, 0x21, 0x2c, + 0x2e, 0x0d, 0xc4, 0x8e, 0x8b, 0x48, 0x58, 0x43, 0x1f, 0xb1, 0x5d, 0xb2, 0x53, 0x4e, 0x2c, 0x57, + 0x09, 0x08, 0xe9, 0x24, 0x24, 0x48, 0x0f, 0x9b, 0xdf, 0x36, 0x48, 0xed, 0x7d, 0x7e, 0x15, 0xfc, + 0xfa, 0x8a, 0x37, 0xb7, 0x97, 0xaf, 0x72, 0x5a, 0x6c, 0x85, 0x74, 0xe3, 0x1d, 0x9f, 0x8b, 0x46, + 0xf9, 0xe5, 0xe9, 0x78, 0x14, 0xe4, 0x93, 0x51, 0x7d, 0x74, 0x3e, 0x9e, 0xed, 0x8c, 0x72, 0xb7, + 0x5c, 0x5f, 0x4c, 0x6f, 0x5b, 0x35, 0x27, 0xfe, 0xf1, 0x69, 0xf3, 0xcf, 0x08, 0xe0, 0xcb, 0x66, + 0x35, 0xf2, 0x66, 0x30, 0x9c, 0x06, 0xbe, 0x2c, 0xaa, 0x6e, 0x23, 0x98, 0xb5, 0x9c, 0x7e, 0x2f, + 0x09, 0x03, 0x18, 0x4e, 0x07, 0x0b, 0xc2, 0xa0, 0xdb, 0x18, 0x78, 0xc2, 0xd9, 0x5f, 0xb3, 0xc6, + 0xc7, 0x3f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x66, 0x6a, 0x7a, 0x65, 0xe2, 0x04, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/bidding_strategy_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/bidding_strategy_error.pb.go new file mode 100644 index 000000000..fe89c8a58 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/bidding_strategy_error.pb.go @@ -0,0 +1,128 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/bidding_strategy_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible bidding strategy errors. +type BiddingStrategyErrorEnum_BiddingStrategyError int32 + +const ( + // Enum unspecified. + BiddingStrategyErrorEnum_UNSPECIFIED BiddingStrategyErrorEnum_BiddingStrategyError = 0 + // The received error code is not known in this version. + BiddingStrategyErrorEnum_UNKNOWN BiddingStrategyErrorEnum_BiddingStrategyError = 1 + // Each bidding strategy must have a unique name. + BiddingStrategyErrorEnum_DUPLICATE_NAME BiddingStrategyErrorEnum_BiddingStrategyError = 2 + // Bidding strategy type is immutable. + BiddingStrategyErrorEnum_CANNOT_CHANGE_BIDDING_STRATEGY_TYPE BiddingStrategyErrorEnum_BiddingStrategyError = 3 + // Only bidding strategies not linked to campaigns, adgroups or adgroup + // criteria can be removed. + BiddingStrategyErrorEnum_CANNOT_REMOVE_ASSOCIATED_STRATEGY BiddingStrategyErrorEnum_BiddingStrategyError = 4 + // The specified bidding strategy is not supported. + BiddingStrategyErrorEnum_BIDDING_STRATEGY_NOT_SUPPORTED BiddingStrategyErrorEnum_BiddingStrategyError = 5 +) + +var BiddingStrategyErrorEnum_BiddingStrategyError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "DUPLICATE_NAME", + 3: "CANNOT_CHANGE_BIDDING_STRATEGY_TYPE", + 4: "CANNOT_REMOVE_ASSOCIATED_STRATEGY", + 5: "BIDDING_STRATEGY_NOT_SUPPORTED", +} +var BiddingStrategyErrorEnum_BiddingStrategyError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "DUPLICATE_NAME": 2, + "CANNOT_CHANGE_BIDDING_STRATEGY_TYPE": 3, + "CANNOT_REMOVE_ASSOCIATED_STRATEGY": 4, + "BIDDING_STRATEGY_NOT_SUPPORTED": 5, +} + +func (x BiddingStrategyErrorEnum_BiddingStrategyError) String() string { + return proto.EnumName(BiddingStrategyErrorEnum_BiddingStrategyError_name, int32(x)) +} +func (BiddingStrategyErrorEnum_BiddingStrategyError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_bidding_strategy_error_e371ee92178e1434, []int{0, 0} +} + +// Container for enum describing possible bidding strategy errors. +type BiddingStrategyErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BiddingStrategyErrorEnum) Reset() { *m = BiddingStrategyErrorEnum{} } +func (m *BiddingStrategyErrorEnum) String() string { return proto.CompactTextString(m) } +func (*BiddingStrategyErrorEnum) ProtoMessage() {} +func (*BiddingStrategyErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_bidding_strategy_error_e371ee92178e1434, []int{0} +} +func (m *BiddingStrategyErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BiddingStrategyErrorEnum.Unmarshal(m, b) +} +func (m *BiddingStrategyErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BiddingStrategyErrorEnum.Marshal(b, m, deterministic) +} +func (dst *BiddingStrategyErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_BiddingStrategyErrorEnum.Merge(dst, src) +} +func (m *BiddingStrategyErrorEnum) XXX_Size() int { + return xxx_messageInfo_BiddingStrategyErrorEnum.Size(m) +} +func (m *BiddingStrategyErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_BiddingStrategyErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_BiddingStrategyErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*BiddingStrategyErrorEnum)(nil), "google.ads.googleads.v0.errors.BiddingStrategyErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.BiddingStrategyErrorEnum_BiddingStrategyError", BiddingStrategyErrorEnum_BiddingStrategyError_name, BiddingStrategyErrorEnum_BiddingStrategyError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/bidding_strategy_error.proto", fileDescriptor_bidding_strategy_error_e371ee92178e1434) +} + +var fileDescriptor_bidding_strategy_error_e371ee92178e1434 = []byte{ + // 347 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x91, 0xc1, 0x4a, 0xeb, 0x40, + 0x18, 0x85, 0x6f, 0xda, 0x7b, 0xaf, 0x30, 0x05, 0x0d, 0x83, 0x0b, 0xdd, 0x14, 0x8c, 0x88, 0xbb, + 0x49, 0xc0, 0x65, 0x57, 0x93, 0x64, 0x8c, 0x41, 0x3b, 0x09, 0xcd, 0xa4, 0x52, 0x09, 0x0c, 0xa9, + 0x09, 0x43, 0xa1, 0xcd, 0x94, 0x4c, 0x2d, 0xf8, 0x3a, 0x2e, 0x7d, 0x06, 0x9f, 0xc0, 0x8d, 0x6b, + 0xdf, 0x46, 0x92, 0x69, 0xbb, 0xb1, 0xba, 0xca, 0x21, 0xff, 0xf9, 0xce, 0xcf, 0x9c, 0x1f, 0x0c, + 0x84, 0x94, 0x62, 0x5e, 0xda, 0x79, 0xa1, 0x6c, 0x2d, 0x1b, 0xb5, 0x76, 0xec, 0xb2, 0xae, 0x65, + 0xad, 0xec, 0xe9, 0xac, 0x28, 0x66, 0x95, 0xe0, 0x6a, 0x55, 0xe7, 0xab, 0x52, 0x3c, 0xf3, 0xf6, + 0x3f, 0x5a, 0xd6, 0x72, 0x25, 0x61, 0x5f, 0x13, 0x28, 0x2f, 0x14, 0xda, 0xc1, 0x68, 0xed, 0x20, + 0x0d, 0x5b, 0x9f, 0x06, 0x38, 0x71, 0x75, 0x40, 0xb2, 0xe1, 0x49, 0x33, 0x21, 0xd5, 0xd3, 0xc2, + 0x7a, 0x33, 0xc0, 0xf1, 0xbe, 0x21, 0x3c, 0x02, 0xbd, 0x94, 0x26, 0x31, 0xf1, 0xc2, 0xeb, 0x90, + 0xf8, 0xe6, 0x1f, 0xd8, 0x03, 0x07, 0x29, 0xbd, 0xa5, 0xd1, 0x3d, 0x35, 0x0d, 0x08, 0xc1, 0xa1, + 0x9f, 0xc6, 0x77, 0xa1, 0x87, 0x19, 0xe1, 0x14, 0x0f, 0x89, 0xd9, 0x81, 0x97, 0xe0, 0xdc, 0xc3, + 0x94, 0x46, 0x8c, 0x7b, 0x37, 0x98, 0x06, 0x84, 0xbb, 0xa1, 0xef, 0x87, 0x34, 0xe0, 0x09, 0x1b, + 0x61, 0x46, 0x82, 0x09, 0x67, 0x93, 0x98, 0x98, 0x5d, 0x78, 0x01, 0xce, 0x36, 0xc6, 0x11, 0x19, + 0x46, 0x63, 0xc2, 0x71, 0x92, 0x44, 0x5e, 0x88, 0x19, 0xf1, 0x77, 0x5e, 0xf3, 0x2f, 0xb4, 0x40, + 0xff, 0x5b, 0x42, 0x03, 0x25, 0x69, 0x1c, 0x47, 0x23, 0x46, 0x7c, 0xf3, 0x9f, 0xfb, 0x61, 0x00, + 0xeb, 0x51, 0x2e, 0xd0, 0xef, 0x15, 0xb8, 0xa7, 0xfb, 0x9e, 0x18, 0x37, 0xed, 0xc5, 0xc6, 0x83, + 0xbf, 0x81, 0x85, 0x9c, 0xe7, 0x95, 0x40, 0xb2, 0x16, 0xb6, 0x28, 0xab, 0xb6, 0xdb, 0xed, 0x31, + 0x96, 0x33, 0xf5, 0xd3, 0x6d, 0x06, 0xfa, 0xf3, 0xd2, 0xe9, 0x06, 0x18, 0xbf, 0x76, 0xfa, 0x81, + 0x0e, 0xc3, 0x85, 0x42, 0x5a, 0x36, 0x6a, 0xec, 0xa0, 0x76, 0xa5, 0x7a, 0xdf, 0x1a, 0x32, 0x5c, + 0xa8, 0x6c, 0x67, 0xc8, 0xc6, 0x4e, 0xa6, 0x0d, 0xd3, 0xff, 0xed, 0xe2, 0xab, 0xaf, 0x00, 0x00, + 0x00, 0xff, 0xff, 0xa8, 0x67, 0x71, 0x4a, 0x13, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/billing_setup_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/billing_setup_error.pb.go new file mode 100644 index 000000000..8f7b6aa5e --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/billing_setup_error.pb.go @@ -0,0 +1,195 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/billing_setup_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible billing setup errors. +type BillingSetupErrorEnum_BillingSetupError int32 + +const ( + // Enum unspecified. + BillingSetupErrorEnum_UNSPECIFIED BillingSetupErrorEnum_BillingSetupError = 0 + // The received error code is not known in this version. + BillingSetupErrorEnum_UNKNOWN BillingSetupErrorEnum_BillingSetupError = 1 + // Cannot use both an existing Payments account and a new Payments account + // when setting up billing. + BillingSetupErrorEnum_CANNOT_USE_EXISTING_AND_NEW_ACCOUNT BillingSetupErrorEnum_BillingSetupError = 2 + // Cannot cancel an APPROVED billing setup whose start time has passed. + BillingSetupErrorEnum_CANNOT_REMOVE_STARTED_BILLING_SETUP BillingSetupErrorEnum_BillingSetupError = 3 + // Cannot perform a Change of Bill-To (CBT) to the same Payments account. + BillingSetupErrorEnum_CANNOT_CHANGE_BILLING_TO_SAME_PAYMENTS_ACCOUNT BillingSetupErrorEnum_BillingSetupError = 4 + // Billing Setups can only be used by customers with ENABLED or DRAFT + // status. + BillingSetupErrorEnum_BILLING_SETUP_NOT_PERMITTED_FOR_CUSTOMER_STATUS BillingSetupErrorEnum_BillingSetupError = 5 + // Billing Setups must either include a correctly formatted existing + // Payments account id, or a non-empty new Payments account name. + BillingSetupErrorEnum_INVALID_PAYMENTS_ACCOUNT BillingSetupErrorEnum_BillingSetupError = 6 + // Only billable and third party customers can create billing setups. + BillingSetupErrorEnum_BILLING_SETUP_NOT_PERMITTED_FOR_CUSTOMER_CATEGORY BillingSetupErrorEnum_BillingSetupError = 7 + // Billing Setup creations can only use NOW for start time type. + BillingSetupErrorEnum_INVALID_START_TIME_TYPE BillingSetupErrorEnum_BillingSetupError = 8 + // Billing Setups can only be created for a third party customer if they do + // not already have a setup. + BillingSetupErrorEnum_THIRD_PARTY_ALREADY_HAS_BILLING BillingSetupErrorEnum_BillingSetupError = 9 + // Billing Setups cannot be created if there is already a pending billing in + // progress, ie. a billing known to Payments. + BillingSetupErrorEnum_BILLING_SETUP_IN_PROGRESS BillingSetupErrorEnum_BillingSetupError = 10 + // Billing Setups can only be created by customers who have permission to + // setup billings. Users can contact a representative for help setting up + // permissions. + BillingSetupErrorEnum_NO_SIGNUP_PERMISSION BillingSetupErrorEnum_BillingSetupError = 11 + // Billing Setups cannot be created if there is already a future-approved + // billing. + BillingSetupErrorEnum_CHANGE_OF_BILL_TO_IN_PROGRESS BillingSetupErrorEnum_BillingSetupError = 12 + // Billing Setup creation failed because Payments could not find the + // requested Payments profile. + BillingSetupErrorEnum_PAYMENTS_PROFILE_NOT_FOUND BillingSetupErrorEnum_BillingSetupError = 13 + // Billing Setup creation failed because Payments could not find the + // requested Payments account. + BillingSetupErrorEnum_PAYMENTS_ACCOUNT_NOT_FOUND BillingSetupErrorEnum_BillingSetupError = 14 + // Billing Setup creation failed because Payments considers requested + // Payments profile ineligible. + BillingSetupErrorEnum_PAYMENTS_PROFILE_INELIGIBLE BillingSetupErrorEnum_BillingSetupError = 15 + // Billing Setup creation failed because Payments considers requested + // Payments account ineligible. + BillingSetupErrorEnum_PAYMENTS_ACCOUNT_INELIGIBLE BillingSetupErrorEnum_BillingSetupError = 16 +) + +var BillingSetupErrorEnum_BillingSetupError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "CANNOT_USE_EXISTING_AND_NEW_ACCOUNT", + 3: "CANNOT_REMOVE_STARTED_BILLING_SETUP", + 4: "CANNOT_CHANGE_BILLING_TO_SAME_PAYMENTS_ACCOUNT", + 5: "BILLING_SETUP_NOT_PERMITTED_FOR_CUSTOMER_STATUS", + 6: "INVALID_PAYMENTS_ACCOUNT", + 7: "BILLING_SETUP_NOT_PERMITTED_FOR_CUSTOMER_CATEGORY", + 8: "INVALID_START_TIME_TYPE", + 9: "THIRD_PARTY_ALREADY_HAS_BILLING", + 10: "BILLING_SETUP_IN_PROGRESS", + 11: "NO_SIGNUP_PERMISSION", + 12: "CHANGE_OF_BILL_TO_IN_PROGRESS", + 13: "PAYMENTS_PROFILE_NOT_FOUND", + 14: "PAYMENTS_ACCOUNT_NOT_FOUND", + 15: "PAYMENTS_PROFILE_INELIGIBLE", + 16: "PAYMENTS_ACCOUNT_INELIGIBLE", +} +var BillingSetupErrorEnum_BillingSetupError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "CANNOT_USE_EXISTING_AND_NEW_ACCOUNT": 2, + "CANNOT_REMOVE_STARTED_BILLING_SETUP": 3, + "CANNOT_CHANGE_BILLING_TO_SAME_PAYMENTS_ACCOUNT": 4, + "BILLING_SETUP_NOT_PERMITTED_FOR_CUSTOMER_STATUS": 5, + "INVALID_PAYMENTS_ACCOUNT": 6, + "BILLING_SETUP_NOT_PERMITTED_FOR_CUSTOMER_CATEGORY": 7, + "INVALID_START_TIME_TYPE": 8, + "THIRD_PARTY_ALREADY_HAS_BILLING": 9, + "BILLING_SETUP_IN_PROGRESS": 10, + "NO_SIGNUP_PERMISSION": 11, + "CHANGE_OF_BILL_TO_IN_PROGRESS": 12, + "PAYMENTS_PROFILE_NOT_FOUND": 13, + "PAYMENTS_ACCOUNT_NOT_FOUND": 14, + "PAYMENTS_PROFILE_INELIGIBLE": 15, + "PAYMENTS_ACCOUNT_INELIGIBLE": 16, +} + +func (x BillingSetupErrorEnum_BillingSetupError) String() string { + return proto.EnumName(BillingSetupErrorEnum_BillingSetupError_name, int32(x)) +} +func (BillingSetupErrorEnum_BillingSetupError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_billing_setup_error_107368948c349ada, []int{0, 0} +} + +// Container for enum describing possible billing setup errors. +type BillingSetupErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BillingSetupErrorEnum) Reset() { *m = BillingSetupErrorEnum{} } +func (m *BillingSetupErrorEnum) String() string { return proto.CompactTextString(m) } +func (*BillingSetupErrorEnum) ProtoMessage() {} +func (*BillingSetupErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_billing_setup_error_107368948c349ada, []int{0} +} +func (m *BillingSetupErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BillingSetupErrorEnum.Unmarshal(m, b) +} +func (m *BillingSetupErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BillingSetupErrorEnum.Marshal(b, m, deterministic) +} +func (dst *BillingSetupErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_BillingSetupErrorEnum.Merge(dst, src) +} +func (m *BillingSetupErrorEnum) XXX_Size() int { + return xxx_messageInfo_BillingSetupErrorEnum.Size(m) +} +func (m *BillingSetupErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_BillingSetupErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_BillingSetupErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*BillingSetupErrorEnum)(nil), "google.ads.googleads.v0.errors.BillingSetupErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.BillingSetupErrorEnum_BillingSetupError", BillingSetupErrorEnum_BillingSetupError_name, BillingSetupErrorEnum_BillingSetupError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/billing_setup_error.proto", fileDescriptor_billing_setup_error_107368948c349ada) +} + +var fileDescriptor_billing_setup_error_107368948c349ada = []byte{ + // 530 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x93, 0xdf, 0x6e, 0xd3, 0x30, + 0x14, 0xc6, 0x69, 0x57, 0x36, 0x70, 0x81, 0x19, 0x8b, 0x3f, 0x83, 0xb1, 0x4e, 0x74, 0x17, 0xdc, + 0x25, 0x85, 0x09, 0x09, 0x89, 0x2b, 0x37, 0x39, 0x4d, 0x2d, 0x12, 0x3b, 0xb2, 0x9d, 0x8e, 0xa2, + 0x4a, 0x56, 0x47, 0xab, 0xa8, 0x52, 0xd7, 0x54, 0xcd, 0xb6, 0x07, 0xe2, 0x92, 0x47, 0x41, 0xbc, + 0x04, 0xcf, 0xc1, 0x0d, 0x72, 0xd2, 0x56, 0xad, 0x2a, 0x10, 0x57, 0x39, 0xb2, 0xbf, 0xdf, 0xf7, + 0xe5, 0x1c, 0x1d, 0xa3, 0x0f, 0x69, 0x96, 0xa5, 0xd3, 0xb1, 0x3b, 0x1c, 0xe5, 0x6e, 0x59, 0xda, + 0xea, 0xb6, 0xe5, 0x8e, 0x17, 0x8b, 0x6c, 0x91, 0xbb, 0x97, 0x93, 0xe9, 0x74, 0x32, 0x4b, 0x4d, + 0x3e, 0xbe, 0xbe, 0x99, 0x9b, 0xe2, 0xd0, 0x99, 0x2f, 0xb2, 0xeb, 0x8c, 0x34, 0x4a, 0xb9, 0x33, + 0x1c, 0xe5, 0xce, 0x9a, 0x74, 0x6e, 0x5b, 0x4e, 0x49, 0x36, 0x7f, 0xd7, 0xd0, 0xd3, 0x76, 0x49, + 0x2b, 0x0b, 0x83, 0x3d, 0x86, 0xd9, 0xcd, 0x55, 0xf3, 0x57, 0x0d, 0x3d, 0xde, 0xb9, 0x21, 0x87, + 0xa8, 0x9e, 0x70, 0x15, 0x83, 0xc7, 0x3a, 0x0c, 0x7c, 0x7c, 0x87, 0xd4, 0xd1, 0x41, 0xc2, 0x3f, + 0x71, 0x71, 0xc1, 0x71, 0x85, 0xbc, 0x41, 0x67, 0x1e, 0xe5, 0x5c, 0x68, 0x93, 0x28, 0x30, 0xf0, + 0x99, 0x29, 0xcd, 0x78, 0x60, 0x28, 0xf7, 0x0d, 0x87, 0x0b, 0x43, 0x3d, 0x4f, 0x24, 0x5c, 0xe3, + 0xea, 0x86, 0x50, 0x42, 0x24, 0x7a, 0x60, 0x94, 0xa6, 0x52, 0x83, 0x6f, 0xda, 0x2c, 0x0c, 0x2d, + 0xa2, 0x40, 0x27, 0x31, 0xde, 0x23, 0xef, 0x90, 0xb3, 0x14, 0x7a, 0x5d, 0xca, 0x03, 0x58, 0x0b, + 0xb4, 0x30, 0x8a, 0x46, 0x60, 0x62, 0xda, 0x8f, 0x80, 0x6b, 0xb5, 0x36, 0xaf, 0x91, 0x73, 0xe4, + 0x6e, 0xd9, 0x18, 0x8b, 0xc7, 0x20, 0x23, 0xa6, 0x6d, 0x44, 0x47, 0x48, 0xe3, 0x25, 0x4a, 0x8b, + 0x08, 0xa4, 0xcd, 0xd5, 0x89, 0xc2, 0x77, 0xc9, 0x2b, 0x74, 0xc4, 0x78, 0x8f, 0x86, 0xcc, 0xdf, + 0xb5, 0xdc, 0x27, 0xef, 0xd1, 0xdb, 0xff, 0xb6, 0xf4, 0xa8, 0x86, 0x40, 0xc8, 0x3e, 0x3e, 0x20, + 0xc7, 0xe8, 0xf9, 0xca, 0xb4, 0x68, 0xd0, 0x68, 0x16, 0x81, 0xd1, 0xfd, 0x18, 0xf0, 0x3d, 0x72, + 0x86, 0x4e, 0x75, 0x97, 0x49, 0x9b, 0x27, 0x75, 0xdf, 0xd0, 0x50, 0x02, 0xf5, 0xfb, 0xa6, 0x4b, + 0xd5, 0xaa, 0x49, 0x7c, 0x9f, 0x9c, 0xa0, 0x17, 0xdb, 0xc1, 0x8c, 0x9b, 0x58, 0x8a, 0x40, 0x82, + 0x52, 0x18, 0x91, 0x23, 0xf4, 0x84, 0x0b, 0xa3, 0x58, 0xc0, 0x93, 0xb8, 0xfc, 0x1f, 0xa5, 0x98, + 0xe0, 0xb8, 0x4e, 0x5e, 0xa3, 0x93, 0xe5, 0xc4, 0x44, 0xa7, 0xf0, 0xb3, 0x13, 0xdb, 0x84, 0x1f, + 0x90, 0x06, 0x7a, 0xb9, 0x6e, 0x35, 0x96, 0xa2, 0xc3, 0x42, 0x28, 0xfa, 0xea, 0x88, 0x84, 0xfb, + 0xf8, 0xe1, 0xd6, 0xfd, 0x72, 0x14, 0x1b, 0xf7, 0x8f, 0xc8, 0x29, 0x3a, 0xde, 0xe1, 0x19, 0x87, + 0x90, 0x05, 0xac, 0x1d, 0x02, 0x3e, 0xdc, 0x12, 0xac, 0x0c, 0x36, 0x04, 0xb8, 0xfd, 0xb3, 0x82, + 0x9a, 0x5f, 0xb3, 0x2b, 0xe7, 0xdf, 0x4b, 0xda, 0x7e, 0xb6, 0xb3, 0x87, 0xb1, 0x5d, 0xee, 0xb8, + 0xf2, 0xc5, 0x5f, 0x92, 0x69, 0x36, 0x1d, 0xce, 0x52, 0x27, 0x5b, 0xa4, 0x6e, 0x3a, 0x9e, 0x15, + 0xab, 0xbf, 0x7a, 0x28, 0xf3, 0x49, 0xfe, 0xb7, 0x77, 0xf3, 0xb1, 0xfc, 0x7c, 0xab, 0xee, 0x05, + 0x94, 0x7e, 0xaf, 0x36, 0x82, 0xd2, 0x8c, 0x8e, 0x72, 0xa7, 0x2c, 0x6d, 0xd5, 0x6b, 0x39, 0x45, + 0x64, 0xfe, 0x63, 0x25, 0x18, 0xd0, 0x51, 0x3e, 0x58, 0x0b, 0x06, 0xbd, 0xd6, 0xa0, 0x14, 0x5c, + 0xee, 0x17, 0xc1, 0xe7, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0xee, 0x6c, 0xd2, 0x8a, 0xaf, 0x03, + 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/campaign_budget_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/campaign_budget_error.pb.go new file mode 100644 index 000000000..9eb71b9bc --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/campaign_budget_error.pb.go @@ -0,0 +1,188 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/campaign_budget_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible campaign budget errors. +type CampaignBudgetErrorEnum_CampaignBudgetError int32 + +const ( + // Enum unspecified. + CampaignBudgetErrorEnum_UNSPECIFIED CampaignBudgetErrorEnum_CampaignBudgetError = 0 + // The received error code is not known in this version. + CampaignBudgetErrorEnum_UNKNOWN CampaignBudgetErrorEnum_CampaignBudgetError = 1 + // The campaign budget cannot be shared. + CampaignBudgetErrorEnum_CAMPAIGN_BUDGET_CANNOT_BE_SHARED CampaignBudgetErrorEnum_CampaignBudgetError = 17 + // The requested campaign budget no longer exists. + CampaignBudgetErrorEnum_CAMPAIGN_BUDGET_REMOVED CampaignBudgetErrorEnum_CampaignBudgetError = 2 + // The campaign budget is associated with at least one campaign, and so the + // campaign budget cannot be removed. + CampaignBudgetErrorEnum_CAMPAIGN_BUDGET_IN_USE CampaignBudgetErrorEnum_CampaignBudgetError = 3 + // Customer is not whitelisted for this campaign budget period. + CampaignBudgetErrorEnum_CAMPAIGN_BUDGET_PERIOD_NOT_AVAILABLE CampaignBudgetErrorEnum_CampaignBudgetError = 4 + // This field is not mutable on implicitly shared campaign budgets + CampaignBudgetErrorEnum_CANNOT_MODIFY_FIELD_OF_IMPLICITLY_SHARED_CAMPAIGN_BUDGET CampaignBudgetErrorEnum_CampaignBudgetError = 6 + // Cannot change explicitly shared campaign budgets back to implicitly + // shared ones. + CampaignBudgetErrorEnum_CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_IMPLICITLY_SHARED CampaignBudgetErrorEnum_CampaignBudgetError = 7 + // An implicit campaign budget without a name cannot be changed to + // explicitly shared campaign budget. + CampaignBudgetErrorEnum_CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_EXPLICITLY_SHARED_WITHOUT_NAME CampaignBudgetErrorEnum_CampaignBudgetError = 8 + // Cannot change an implicitly shared campaign budget to an explicitly + // shared one. + CampaignBudgetErrorEnum_CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_EXPLICITLY_SHARED CampaignBudgetErrorEnum_CampaignBudgetError = 9 + // Only explicitly shared campaign budgets can be used with multiple + // campaigns. + CampaignBudgetErrorEnum_CANNOT_USE_IMPLICITLY_SHARED_CAMPAIGN_BUDGET_WITH_MULTIPLE_CAMPAIGNS CampaignBudgetErrorEnum_CampaignBudgetError = 10 + // A campaign budget with this name already exists. + CampaignBudgetErrorEnum_DUPLICATE_NAME CampaignBudgetErrorEnum_CampaignBudgetError = 11 + // A money amount was not in the expected currency. + CampaignBudgetErrorEnum_MONEY_AMOUNT_IN_WRONG_CURRENCY CampaignBudgetErrorEnum_CampaignBudgetError = 12 + // A money amount was less than the minimum CPC for currency. + CampaignBudgetErrorEnum_MONEY_AMOUNT_LESS_THAN_CURRENCY_MINIMUM_CPC CampaignBudgetErrorEnum_CampaignBudgetError = 13 + // A money amount was greater than the maximum allowed. + CampaignBudgetErrorEnum_MONEY_AMOUNT_TOO_LARGE CampaignBudgetErrorEnum_CampaignBudgetError = 14 + // A money amount was negative. + CampaignBudgetErrorEnum_NEGATIVE_MONEY_AMOUNT CampaignBudgetErrorEnum_CampaignBudgetError = 15 + // A money amount was not a multiple of a minimum unit. + CampaignBudgetErrorEnum_NON_MULTIPLE_OF_MINIMUM_CURRENCY_UNIT CampaignBudgetErrorEnum_CampaignBudgetError = 16 +) + +var CampaignBudgetErrorEnum_CampaignBudgetError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 17: "CAMPAIGN_BUDGET_CANNOT_BE_SHARED", + 2: "CAMPAIGN_BUDGET_REMOVED", + 3: "CAMPAIGN_BUDGET_IN_USE", + 4: "CAMPAIGN_BUDGET_PERIOD_NOT_AVAILABLE", + 6: "CANNOT_MODIFY_FIELD_OF_IMPLICITLY_SHARED_CAMPAIGN_BUDGET", + 7: "CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_IMPLICITLY_SHARED", + 8: "CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_EXPLICITLY_SHARED_WITHOUT_NAME", + 9: "CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_EXPLICITLY_SHARED", + 10: "CANNOT_USE_IMPLICITLY_SHARED_CAMPAIGN_BUDGET_WITH_MULTIPLE_CAMPAIGNS", + 11: "DUPLICATE_NAME", + 12: "MONEY_AMOUNT_IN_WRONG_CURRENCY", + 13: "MONEY_AMOUNT_LESS_THAN_CURRENCY_MINIMUM_CPC", + 14: "MONEY_AMOUNT_TOO_LARGE", + 15: "NEGATIVE_MONEY_AMOUNT", + 16: "NON_MULTIPLE_OF_MINIMUM_CURRENCY_UNIT", +} +var CampaignBudgetErrorEnum_CampaignBudgetError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "CAMPAIGN_BUDGET_CANNOT_BE_SHARED": 17, + "CAMPAIGN_BUDGET_REMOVED": 2, + "CAMPAIGN_BUDGET_IN_USE": 3, + "CAMPAIGN_BUDGET_PERIOD_NOT_AVAILABLE": 4, + "CANNOT_MODIFY_FIELD_OF_IMPLICITLY_SHARED_CAMPAIGN_BUDGET": 6, + "CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_IMPLICITLY_SHARED": 7, + "CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_EXPLICITLY_SHARED_WITHOUT_NAME": 8, + "CANNOT_UPDATE_CAMPAIGN_BUDGET_TO_EXPLICITLY_SHARED": 9, + "CANNOT_USE_IMPLICITLY_SHARED_CAMPAIGN_BUDGET_WITH_MULTIPLE_CAMPAIGNS": 10, + "DUPLICATE_NAME": 11, + "MONEY_AMOUNT_IN_WRONG_CURRENCY": 12, + "MONEY_AMOUNT_LESS_THAN_CURRENCY_MINIMUM_CPC": 13, + "MONEY_AMOUNT_TOO_LARGE": 14, + "NEGATIVE_MONEY_AMOUNT": 15, + "NON_MULTIPLE_OF_MINIMUM_CURRENCY_UNIT": 16, +} + +func (x CampaignBudgetErrorEnum_CampaignBudgetError) String() string { + return proto.EnumName(CampaignBudgetErrorEnum_CampaignBudgetError_name, int32(x)) +} +func (CampaignBudgetErrorEnum_CampaignBudgetError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_campaign_budget_error_ab6396a2a8fee8c4, []int{0, 0} +} + +// Container for enum describing possible campaign budget errors. +type CampaignBudgetErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CampaignBudgetErrorEnum) Reset() { *m = CampaignBudgetErrorEnum{} } +func (m *CampaignBudgetErrorEnum) String() string { return proto.CompactTextString(m) } +func (*CampaignBudgetErrorEnum) ProtoMessage() {} +func (*CampaignBudgetErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_budget_error_ab6396a2a8fee8c4, []int{0} +} +func (m *CampaignBudgetErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CampaignBudgetErrorEnum.Unmarshal(m, b) +} +func (m *CampaignBudgetErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CampaignBudgetErrorEnum.Marshal(b, m, deterministic) +} +func (dst *CampaignBudgetErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_CampaignBudgetErrorEnum.Merge(dst, src) +} +func (m *CampaignBudgetErrorEnum) XXX_Size() int { + return xxx_messageInfo_CampaignBudgetErrorEnum.Size(m) +} +func (m *CampaignBudgetErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_CampaignBudgetErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_CampaignBudgetErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*CampaignBudgetErrorEnum)(nil), "google.ads.googleads.v0.errors.CampaignBudgetErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.CampaignBudgetErrorEnum_CampaignBudgetError", CampaignBudgetErrorEnum_CampaignBudgetError_name, CampaignBudgetErrorEnum_CampaignBudgetError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/campaign_budget_error.proto", fileDescriptor_campaign_budget_error_ab6396a2a8fee8c4) +} + +var fileDescriptor_campaign_budget_error_ab6396a2a8fee8c4 = []byte{ + // 544 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x93, 0xdf, 0x6a, 0xd4, 0x4e, + 0x14, 0xc7, 0x7f, 0xdd, 0xfe, 0xda, 0xea, 0xac, 0xb6, 0xe3, 0x88, 0xd6, 0x3f, 0xb0, 0xc8, 0x52, + 0x41, 0x11, 0x92, 0x45, 0x41, 0x44, 0x05, 0x99, 0x24, 0x67, 0xb3, 0x83, 0x99, 0x99, 0x90, 0xcc, + 0xec, 0xba, 0xb2, 0x30, 0x6c, 0xbb, 0x4b, 0x28, 0x74, 0x37, 0xcb, 0xa6, 0xed, 0x03, 0x79, 0xe9, + 0x73, 0x78, 0xe5, 0x85, 0xcf, 0xe0, 0xa3, 0x48, 0x92, 0xfd, 0x63, 0xd3, 0x6a, 0xbd, 0xca, 0x21, + 0xe7, 0xfb, 0x39, 0x9f, 0x09, 0x93, 0x83, 0xde, 0x26, 0x69, 0x9a, 0x9c, 0x8c, 0xed, 0xe1, 0x28, + 0xb3, 0xcb, 0x32, 0xaf, 0xce, 0x5b, 0xf6, 0x78, 0x3e, 0x4f, 0xe7, 0x99, 0x7d, 0x34, 0x9c, 0xcc, + 0x86, 0xc7, 0xc9, 0xd4, 0x1c, 0x9e, 0x8d, 0x92, 0xf1, 0xa9, 0x29, 0x5e, 0x5b, 0xb3, 0x79, 0x7a, + 0x9a, 0x92, 0x46, 0x09, 0x58, 0xc3, 0x51, 0x66, 0xad, 0x58, 0xeb, 0xbc, 0x65, 0x95, 0x6c, 0xf3, + 0xe7, 0x16, 0xda, 0x77, 0x17, 0xbc, 0x53, 0xe0, 0x90, 0x37, 0x60, 0x7a, 0x36, 0x69, 0x7e, 0xdb, + 0x42, 0x77, 0xaf, 0xe8, 0x91, 0x3d, 0x54, 0xd7, 0x22, 0x0e, 0xc1, 0x65, 0x6d, 0x06, 0x1e, 0xfe, + 0x8f, 0xd4, 0xd1, 0x8e, 0x16, 0x1f, 0x85, 0xec, 0x09, 0xbc, 0x41, 0x0e, 0xd0, 0x13, 0x97, 0xf2, + 0x90, 0x32, 0x5f, 0x18, 0x47, 0x7b, 0x3e, 0x28, 0xe3, 0x52, 0x21, 0xa4, 0x32, 0x0e, 0x98, 0xb8, + 0x43, 0x23, 0xf0, 0xf0, 0x1d, 0xf2, 0x18, 0xed, 0x57, 0x53, 0x11, 0x70, 0xd9, 0x05, 0x0f, 0xd7, + 0xc8, 0x23, 0x74, 0xbf, 0xda, 0x64, 0xc2, 0xe8, 0x18, 0xf0, 0x26, 0x79, 0x86, 0x0e, 0xaa, 0xbd, + 0x10, 0x22, 0x26, 0x3d, 0x93, 0x2b, 0x68, 0x97, 0xb2, 0x80, 0x3a, 0x01, 0xe0, 0xff, 0xc9, 0x7b, + 0xf4, 0x66, 0x21, 0xe6, 0xd2, 0x63, 0xed, 0xbe, 0x69, 0x33, 0x08, 0x3c, 0x23, 0xdb, 0x86, 0xf1, + 0x30, 0x60, 0x2e, 0x53, 0x41, 0x7f, 0x71, 0x20, 0x53, 0x19, 0x89, 0xb7, 0xc9, 0x6b, 0xf4, 0x72, + 0x41, 0xeb, 0xd0, 0xa3, 0x0a, 0xaa, 0x11, 0xa3, 0xe4, 0xe5, 0x39, 0x78, 0x87, 0xb8, 0xe8, 0xc3, + 0xb5, 0x1c, 0x7c, 0xaa, 0xfa, 0x7b, 0x4c, 0x75, 0xa4, 0x56, 0x46, 0x50, 0x0e, 0xf8, 0xc6, 0x3f, + 0xc9, 0x2f, 0x0d, 0xc1, 0x37, 0x49, 0x07, 0x79, 0x4b, 0x2e, 0x86, 0xeb, 0x3f, 0xb3, 0xd0, 0x1a, + 0xae, 0x03, 0xc5, 0xc2, 0x60, 0x2d, 0x89, 0x31, 0x22, 0x04, 0xed, 0x7a, 0x3a, 0xc7, 0x73, 0x7b, + 0x71, 0xaa, 0x3a, 0x69, 0xa2, 0x06, 0x97, 0x02, 0xfa, 0x86, 0x72, 0xa9, 0x45, 0x71, 0x27, 0xbd, + 0x48, 0x0a, 0xdf, 0xb8, 0x3a, 0x8a, 0x40, 0xb8, 0x7d, 0x7c, 0x8b, 0xd8, 0xe8, 0xc5, 0x85, 0x4c, + 0x00, 0x71, 0x6c, 0x54, 0x87, 0x8a, 0x55, 0xc8, 0x70, 0x26, 0x18, 0xd7, 0xdc, 0xb8, 0xa1, 0x8b, + 0x6f, 0xe7, 0x77, 0x7d, 0x01, 0x50, 0x52, 0x9a, 0x80, 0x46, 0x3e, 0xe0, 0x5d, 0xf2, 0x10, 0xdd, + 0x13, 0xe0, 0x53, 0xc5, 0xba, 0x60, 0x7e, 0x0f, 0xe1, 0x3d, 0xf2, 0x1c, 0x3d, 0x15, 0x52, 0xac, + 0xcf, 0x2e, 0xdb, 0xeb, 0xb9, 0x4b, 0x91, 0x16, 0x4c, 0x61, 0xec, 0xfc, 0xd8, 0x40, 0xcd, 0xa3, + 0x74, 0x62, 0xfd, 0x7d, 0x13, 0x9c, 0x07, 0x57, 0xfc, 0xea, 0x61, 0xbe, 0x43, 0xe1, 0xc6, 0x67, + 0x6f, 0xc1, 0x26, 0xe9, 0xc9, 0x70, 0x9a, 0x58, 0xe9, 0x3c, 0xb1, 0x93, 0xf1, 0xb4, 0xd8, 0xb0, + 0xe5, 0x46, 0xce, 0x8e, 0xb3, 0x3f, 0x2d, 0xe8, 0xbb, 0xf2, 0xf1, 0xa5, 0xb6, 0xe9, 0x53, 0xfa, + 0xb5, 0xd6, 0xf0, 0xcb, 0x61, 0x74, 0x94, 0x59, 0x65, 0x99, 0x57, 0xdd, 0x96, 0x55, 0x28, 0xb3, + 0xef, 0xcb, 0xc0, 0x80, 0x8e, 0xb2, 0xc1, 0x2a, 0x30, 0xe8, 0xb6, 0x06, 0x65, 0xe0, 0x70, 0xbb, + 0x10, 0xbf, 0xfa, 0x15, 0x00, 0x00, 0xff, 0xff, 0x71, 0xa6, 0x49, 0xb4, 0x18, 0x04, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/campaign_criterion_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/campaign_criterion_error.pb.go new file mode 100644 index 000000000..d9b83d562 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/campaign_criterion_error.pb.go @@ -0,0 +1,168 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/campaign_criterion_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible campaign criterion errors. +type CampaignCriterionErrorEnum_CampaignCriterionError int32 + +const ( + // Enum unspecified. + CampaignCriterionErrorEnum_UNSPECIFIED CampaignCriterionErrorEnum_CampaignCriterionError = 0 + // The received error code is not known in this version. + CampaignCriterionErrorEnum_UNKNOWN CampaignCriterionErrorEnum_CampaignCriterionError = 1 + // Concrete type of criterion (keyword v.s. placement) is required for + // CREATE and UPDATE operations. + CampaignCriterionErrorEnum_CONCRETE_TYPE_REQUIRED CampaignCriterionErrorEnum_CampaignCriterionError = 2 + // Invalid placement URL. + CampaignCriterionErrorEnum_INVALID_PLACEMENT_URL CampaignCriterionErrorEnum_CampaignCriterionError = 3 + // Criteria type can not be excluded for the campaign by the customer. like + // AOL account type cannot target site type criteria + CampaignCriterionErrorEnum_CANNOT_EXCLUDE_CRITERIA_TYPE CampaignCriterionErrorEnum_CampaignCriterionError = 4 + // Cannot set the campaign criterion status for this criteria type. + CampaignCriterionErrorEnum_CANNOT_SET_STATUS_FOR_CRITERIA_TYPE CampaignCriterionErrorEnum_CampaignCriterionError = 5 + // Cannot set the campaign criterion status for an excluded criteria. + CampaignCriterionErrorEnum_CANNOT_SET_STATUS_FOR_EXCLUDED_CRITERIA CampaignCriterionErrorEnum_CampaignCriterionError = 6 + // Cannot target and exclude the same criterion. + CampaignCriterionErrorEnum_CANNOT_TARGET_AND_EXCLUDE CampaignCriterionErrorEnum_CampaignCriterionError = 7 + // The mutate contained too many operations. + CampaignCriterionErrorEnum_TOO_MANY_OPERATIONS CampaignCriterionErrorEnum_CampaignCriterionError = 8 + // This operator cannot be applied to a criterion of this type. + CampaignCriterionErrorEnum_OPERATOR_NOT_SUPPORTED_FOR_CRITERION_TYPE CampaignCriterionErrorEnum_CampaignCriterionError = 9 + // The Shopping campaign sales country is not supported for + // ProductSalesChannel targeting. + CampaignCriterionErrorEnum_SHOPPING_CAMPAIGN_SALES_COUNTRY_NOT_SUPPORTED_FOR_SALES_CHANNEL CampaignCriterionErrorEnum_CampaignCriterionError = 10 + // The existing field can't be updated with CREATE operation. It can be + // updated with UPDATE operation only. + CampaignCriterionErrorEnum_CANNOT_ADD_EXISTING_FIELD CampaignCriterionErrorEnum_CampaignCriterionError = 11 + // Negative criteria are immutable, so updates are not allowed. + CampaignCriterionErrorEnum_CANNOT_UPDATE_NEGATIVE_CRITERION CampaignCriterionErrorEnum_CampaignCriterionError = 12 +) + +var CampaignCriterionErrorEnum_CampaignCriterionError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "CONCRETE_TYPE_REQUIRED", + 3: "INVALID_PLACEMENT_URL", + 4: "CANNOT_EXCLUDE_CRITERIA_TYPE", + 5: "CANNOT_SET_STATUS_FOR_CRITERIA_TYPE", + 6: "CANNOT_SET_STATUS_FOR_EXCLUDED_CRITERIA", + 7: "CANNOT_TARGET_AND_EXCLUDE", + 8: "TOO_MANY_OPERATIONS", + 9: "OPERATOR_NOT_SUPPORTED_FOR_CRITERION_TYPE", + 10: "SHOPPING_CAMPAIGN_SALES_COUNTRY_NOT_SUPPORTED_FOR_SALES_CHANNEL", + 11: "CANNOT_ADD_EXISTING_FIELD", + 12: "CANNOT_UPDATE_NEGATIVE_CRITERION", +} +var CampaignCriterionErrorEnum_CampaignCriterionError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "CONCRETE_TYPE_REQUIRED": 2, + "INVALID_PLACEMENT_URL": 3, + "CANNOT_EXCLUDE_CRITERIA_TYPE": 4, + "CANNOT_SET_STATUS_FOR_CRITERIA_TYPE": 5, + "CANNOT_SET_STATUS_FOR_EXCLUDED_CRITERIA": 6, + "CANNOT_TARGET_AND_EXCLUDE": 7, + "TOO_MANY_OPERATIONS": 8, + "OPERATOR_NOT_SUPPORTED_FOR_CRITERION_TYPE": 9, + "SHOPPING_CAMPAIGN_SALES_COUNTRY_NOT_SUPPORTED_FOR_SALES_CHANNEL": 10, + "CANNOT_ADD_EXISTING_FIELD": 11, + "CANNOT_UPDATE_NEGATIVE_CRITERION": 12, +} + +func (x CampaignCriterionErrorEnum_CampaignCriterionError) String() string { + return proto.EnumName(CampaignCriterionErrorEnum_CampaignCriterionError_name, int32(x)) +} +func (CampaignCriterionErrorEnum_CampaignCriterionError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_campaign_criterion_error_d0d1f7612cbd8dc8, []int{0, 0} +} + +// Container for enum describing possible campaign criterion errors. +type CampaignCriterionErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CampaignCriterionErrorEnum) Reset() { *m = CampaignCriterionErrorEnum{} } +func (m *CampaignCriterionErrorEnum) String() string { return proto.CompactTextString(m) } +func (*CampaignCriterionErrorEnum) ProtoMessage() {} +func (*CampaignCriterionErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_criterion_error_d0d1f7612cbd8dc8, []int{0} +} +func (m *CampaignCriterionErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CampaignCriterionErrorEnum.Unmarshal(m, b) +} +func (m *CampaignCriterionErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CampaignCriterionErrorEnum.Marshal(b, m, deterministic) +} +func (dst *CampaignCriterionErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_CampaignCriterionErrorEnum.Merge(dst, src) +} +func (m *CampaignCriterionErrorEnum) XXX_Size() int { + return xxx_messageInfo_CampaignCriterionErrorEnum.Size(m) +} +func (m *CampaignCriterionErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_CampaignCriterionErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_CampaignCriterionErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*CampaignCriterionErrorEnum)(nil), "google.ads.googleads.v0.errors.CampaignCriterionErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.CampaignCriterionErrorEnum_CampaignCriterionError", CampaignCriterionErrorEnum_CampaignCriterionError_name, CampaignCriterionErrorEnum_CampaignCriterionError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/campaign_criterion_error.proto", fileDescriptor_campaign_criterion_error_d0d1f7612cbd8dc8) +} + +var fileDescriptor_campaign_criterion_error_d0d1f7612cbd8dc8 = []byte{ + // 486 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x52, 0xdd, 0x6a, 0x13, 0x41, + 0x18, 0x35, 0x89, 0xb6, 0x3a, 0x11, 0x1c, 0x46, 0xac, 0xb4, 0x6a, 0x29, 0x51, 0x28, 0x22, 0x6e, + 0x02, 0x5e, 0x8a, 0xc8, 0x74, 0xe6, 0xcb, 0x76, 0x70, 0x33, 0x33, 0xce, 0xce, 0x46, 0x23, 0x81, + 0x61, 0x4d, 0xc2, 0x12, 0x68, 0x76, 0xc3, 0x6e, 0xed, 0x03, 0x79, 0xe9, 0xa3, 0x78, 0xe7, 0x8d, + 0x6f, 0xe2, 0xbd, 0xec, 0x4f, 0x62, 0x91, 0xe8, 0xd5, 0x9e, 0xe5, 0xfc, 0x7c, 0x07, 0xe6, 0xa0, + 0x37, 0x49, 0x96, 0x25, 0x17, 0x8b, 0x7e, 0x3c, 0x2f, 0xfa, 0x35, 0x2c, 0xd1, 0xd5, 0xa0, 0xbf, + 0xc8, 0xf3, 0x2c, 0x2f, 0xfa, 0xb3, 0x78, 0xb5, 0x8e, 0x97, 0x49, 0xea, 0x66, 0xf9, 0xf2, 0x72, + 0x91, 0x2f, 0xb3, 0xd4, 0x55, 0x8c, 0xb7, 0xce, 0xb3, 0xcb, 0x8c, 0x1c, 0xd7, 0x1e, 0x2f, 0x9e, + 0x17, 0xde, 0xd6, 0xee, 0x5d, 0x0d, 0xbc, 0xda, 0xde, 0xfb, 0xd5, 0x41, 0x47, 0xac, 0x89, 0x60, + 0x9b, 0x04, 0x28, 0x39, 0x48, 0xbf, 0xac, 0x7a, 0x3f, 0x3b, 0xe8, 0x60, 0x37, 0x4d, 0xee, 0xa1, + 0x6e, 0x24, 0x43, 0x0d, 0x4c, 0x0c, 0x05, 0x70, 0x7c, 0x83, 0x74, 0xd1, 0x7e, 0x24, 0xdf, 0x49, + 0xf5, 0x41, 0xe2, 0x16, 0x39, 0x42, 0x07, 0x4c, 0x49, 0x66, 0xc0, 0x82, 0xb3, 0x13, 0x0d, 0xce, + 0xc0, 0xfb, 0x48, 0x18, 0xe0, 0xb8, 0x4d, 0x0e, 0xd1, 0x03, 0x21, 0xc7, 0x34, 0x10, 0xdc, 0xe9, + 0x80, 0x32, 0x18, 0x81, 0xb4, 0x2e, 0x32, 0x01, 0xee, 0x90, 0x13, 0xf4, 0x98, 0x51, 0x29, 0x95, + 0x75, 0xf0, 0x91, 0x05, 0x11, 0x07, 0xc7, 0x8c, 0xb0, 0x60, 0x04, 0xad, 0x52, 0xf0, 0x4d, 0x72, + 0x8a, 0x9e, 0x36, 0x8a, 0x10, 0xac, 0x0b, 0x2d, 0xb5, 0x51, 0xe8, 0x86, 0xca, 0xfc, 0x25, 0xbc, + 0x45, 0x5e, 0xa0, 0xd3, 0xdd, 0xc2, 0x26, 0x99, 0x6f, 0x1d, 0x78, 0x8f, 0x3c, 0x41, 0x87, 0x8d, + 0xd8, 0x52, 0xe3, 0x83, 0x75, 0x54, 0xf2, 0x8d, 0x10, 0xef, 0x93, 0x87, 0xe8, 0xbe, 0x55, 0xca, + 0x8d, 0xa8, 0x9c, 0x38, 0xa5, 0xc1, 0x50, 0x2b, 0x94, 0x0c, 0xf1, 0x6d, 0xf2, 0x12, 0x3d, 0xaf, + 0xff, 0x95, 0x71, 0xd5, 0xa9, 0x48, 0x6b, 0x65, 0x2c, 0xf0, 0xeb, 0x95, 0x94, 0xac, 0x3b, 0xdd, + 0x21, 0x0c, 0xbd, 0x0d, 0xcf, 0x95, 0xd6, 0x42, 0xfa, 0x8e, 0xd1, 0x91, 0xa6, 0xc2, 0x97, 0x2e, + 0xa4, 0x01, 0x84, 0x8e, 0xa9, 0x48, 0x5a, 0x33, 0xd9, 0x91, 0xd2, 0xf0, 0xe7, 0x54, 0x4a, 0x08, + 0x30, 0xba, 0xd6, 0x95, 0xf2, 0xb2, 0xa4, 0x08, 0x6d, 0x99, 0x37, 0x14, 0x10, 0x70, 0xdc, 0x25, + 0xcf, 0xd0, 0x49, 0x43, 0x47, 0x9a, 0x53, 0x0b, 0x4e, 0x82, 0x4f, 0xad, 0x18, 0xc3, 0x9f, 0x3a, + 0xf8, 0xee, 0xd9, 0x8f, 0x16, 0xea, 0xcd, 0xb2, 0x95, 0xf7, 0xff, 0x79, 0x9c, 0x3d, 0xda, 0xfd, + 0xf8, 0xba, 0xdc, 0x96, 0x6e, 0x7d, 0xe2, 0x8d, 0x3d, 0xc9, 0x2e, 0xe2, 0x34, 0xf1, 0xb2, 0x3c, + 0xe9, 0x27, 0x8b, 0xb4, 0x5a, 0xde, 0x66, 0xac, 0xeb, 0x65, 0xf1, 0xaf, 0xed, 0xbe, 0xae, 0x3f, + 0x5f, 0xdb, 0x1d, 0x9f, 0xd2, 0x6f, 0xed, 0x63, 0xbf, 0x0e, 0xa3, 0xf3, 0xc2, 0xab, 0x61, 0x89, + 0xc6, 0x03, 0xaf, 0x3a, 0x59, 0x7c, 0xdf, 0x08, 0xa6, 0x74, 0x5e, 0x4c, 0xb7, 0x82, 0xe9, 0x78, + 0x30, 0xad, 0x05, 0x9f, 0xf7, 0xaa, 0xc3, 0xaf, 0x7e, 0x07, 0x00, 0x00, 0xff, 0xff, 0x60, 0xe8, + 0xd8, 0x4f, 0x33, 0x03, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/campaign_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/campaign_error.pb.go new file mode 100644 index 000000000..e10d2f879 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/campaign_error.pb.go @@ -0,0 +1,304 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/campaign_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible campaign errors. +type CampaignErrorEnum_CampaignError int32 + +const ( + // Enum unspecified. + CampaignErrorEnum_UNSPECIFIED CampaignErrorEnum_CampaignError = 0 + // The received error code is not known in this version. + CampaignErrorEnum_UNKNOWN CampaignErrorEnum_CampaignError = 1 + // Cannot target content network. + CampaignErrorEnum_CANNOT_TARGET_CONTENT_NETWORK CampaignErrorEnum_CampaignError = 3 + // Cannot target search network. + CampaignErrorEnum_CANNOT_TARGET_SEARCH_NETWORK CampaignErrorEnum_CampaignError = 4 + // Cannot cover search network without google search network. + CampaignErrorEnum_CANNOT_TARGET_SEARCH_NETWORK_WITHOUT_GOOGLE_SEARCH CampaignErrorEnum_CampaignError = 5 + // Cannot target Google Search network for a CPM campaign. + CampaignErrorEnum_CANNOT_TARGET_GOOGLE_SEARCH_FOR_CPM_CAMPAIGN CampaignErrorEnum_CampaignError = 6 + // Must target at least one network. + CampaignErrorEnum_CAMPAIGN_MUST_TARGET_AT_LEAST_ONE_NETWORK CampaignErrorEnum_CampaignError = 7 + // Only some Google partners are allowed to target partner search network. + CampaignErrorEnum_CANNOT_TARGET_PARTNER_SEARCH_NETWORK CampaignErrorEnum_CampaignError = 8 + // Cannot target content network only as campaign has criteria-level bidding + // strategy. + CampaignErrorEnum_CANNOT_TARGET_CONTENT_NETWORK_ONLY_WITH_CRITERIA_LEVEL_BIDDING_STRATEGY CampaignErrorEnum_CampaignError = 9 + // Cannot modify the start or end date such that the campaign duration would + // not contain the durations of all runnable trials. + CampaignErrorEnum_CAMPAIGN_DURATION_MUST_CONTAIN_ALL_RUNNABLE_TRIALS CampaignErrorEnum_CampaignError = 10 + // Cannot modify dates, budget or campaign name of a trial campaign. + CampaignErrorEnum_CANNOT_MODIFY_FOR_TRIAL_CAMPAIGN CampaignErrorEnum_CampaignError = 11 + // Trying to modify the name of an active or paused campaign, where the name + // is already assigned to another active or paused campaign. + CampaignErrorEnum_DUPLICATE_CAMPAIGN_NAME CampaignErrorEnum_CampaignError = 12 + // Two fields are in conflicting modes. + CampaignErrorEnum_INCOMPATIBLE_CAMPAIGN_FIELD CampaignErrorEnum_CampaignError = 13 + // Campaign name cannot be used. + CampaignErrorEnum_INVALID_CAMPAIGN_NAME CampaignErrorEnum_CampaignError = 14 + // Given status is invalid. + CampaignErrorEnum_INVALID_AD_SERVING_OPTIMIZATION_STATUS CampaignErrorEnum_CampaignError = 15 + // Error in the campaign level tracking url. + CampaignErrorEnum_INVALID_TRACKING_URL CampaignErrorEnum_CampaignError = 16 + // Cannot set both tracking url template and tracking setting. An user has + // to clear legacy tracking setting in order to add tracking url template. + CampaignErrorEnum_CANNOT_SET_BOTH_TRACKING_URL_TEMPLATE_AND_TRACKING_SETTING CampaignErrorEnum_CampaignError = 17 + // The maximum number of impressions for Frequency Cap should be an integer + // greater than 0. + CampaignErrorEnum_MAX_IMPRESSIONS_NOT_IN_RANGE CampaignErrorEnum_CampaignError = 18 + // Only the Day, Week and Month time units are supported. + CampaignErrorEnum_TIME_UNIT_NOT_SUPPORTED CampaignErrorEnum_CampaignError = 19 + // Operation not allowed on a campaign whose serving status has ended + CampaignErrorEnum_INVALID_OPERATION_IF_SERVING_STATUS_HAS_ENDED CampaignErrorEnum_CampaignError = 20 + // This budget is exclusively linked to a Campaign that is using experiments + // so it cannot be shared. + CampaignErrorEnum_BUDGET_CANNOT_BE_SHARED CampaignErrorEnum_CampaignError = 21 + // Campaigns using experiments cannot use a shared budget. + CampaignErrorEnum_CAMPAIGN_CANNOT_USE_SHARED_BUDGET CampaignErrorEnum_CampaignError = 22 + // A different budget cannot be assigned to a campaign when there are + // running or scheduled trials. + CampaignErrorEnum_CANNOT_CHANGE_BUDGET_ON_CAMPAIGN_WITH_TRIALS CampaignErrorEnum_CampaignError = 23 + // No link found between the campaign and the label. + CampaignErrorEnum_CAMPAIGN_LABEL_DOES_NOT_EXIST CampaignErrorEnum_CampaignError = 24 + // The label has already been attached to the campaign. + CampaignErrorEnum_CAMPAIGN_LABEL_ALREADY_EXISTS CampaignErrorEnum_CampaignError = 25 + // A ShoppingSetting was not found when creating a shopping campaign. + CampaignErrorEnum_MISSING_SHOPPING_SETTING CampaignErrorEnum_CampaignError = 26 + // The country in shopping setting is not an allowed country. + CampaignErrorEnum_INVALID_SHOPPING_SALES_COUNTRY CampaignErrorEnum_CampaignError = 27 + // A Campaign with channel sub type UNIVERSAL_APP_CAMPAIGN must have a + // UniversalAppCampaignSetting specified. + CampaignErrorEnum_MISSING_UNIVERSAL_APP_CAMPAIGN_SETTING CampaignErrorEnum_CampaignError = 30 + // The requested channel type is not available according to the customer's + // account setting. + CampaignErrorEnum_ADVERTISING_CHANNEL_TYPE_NOT_AVAILABLE_FOR_ACCOUNT_TYPE CampaignErrorEnum_CampaignError = 31 + // The AdvertisingChannelSubType is not a valid subtype of the primary + // channel type. + CampaignErrorEnum_INVALID_ADVERTISING_CHANNEL_SUB_TYPE CampaignErrorEnum_CampaignError = 32 + // At least one conversion must be selected. + CampaignErrorEnum_AT_LEAST_ONE_CONVERSION_MUST_BE_SELECTED CampaignErrorEnum_CampaignError = 33 + // Setting ad rotation mode for a campaign is not allowed. Ad rotation mode + // at campaign is deprecated. + CampaignErrorEnum_CANNOT_SET_AD_ROTATION_MODE CampaignErrorEnum_CampaignError = 34 + // Trying to change start date on a campaign that has started. + CampaignErrorEnum_CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED CampaignErrorEnum_CampaignError = 35 + // Trying to modify a date into the past. + CampaignErrorEnum_CANNOT_SET_DATE_TO_PAST CampaignErrorEnum_CampaignError = 36 + // Hotel center id in the hotel setting does not match any customer links. + CampaignErrorEnum_MISSING_HOTEL_CUSTOMER_LINK CampaignErrorEnum_CampaignError = 37 + // Hotel center id in the hotel setting must match an active customer link. + CampaignErrorEnum_INVALID_HOTEL_CUSTOMER_LINK CampaignErrorEnum_CampaignError = 38 + // Hotel setting was not found when creating a hotel ads campaign. + CampaignErrorEnum_MISSING_HOTEL_SETTING CampaignErrorEnum_CampaignError = 39 + // A Campaign cannot use shared campaign budgets and be part of a campaign + // group. + CampaignErrorEnum_CANNOT_USE_SHARED_CAMPAIGN_BUDGET_WHILE_PART_OF_CAMPAIGN_GROUP CampaignErrorEnum_CampaignError = 40 +) + +var CampaignErrorEnum_CampaignError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 3: "CANNOT_TARGET_CONTENT_NETWORK", + 4: "CANNOT_TARGET_SEARCH_NETWORK", + 5: "CANNOT_TARGET_SEARCH_NETWORK_WITHOUT_GOOGLE_SEARCH", + 6: "CANNOT_TARGET_GOOGLE_SEARCH_FOR_CPM_CAMPAIGN", + 7: "CAMPAIGN_MUST_TARGET_AT_LEAST_ONE_NETWORK", + 8: "CANNOT_TARGET_PARTNER_SEARCH_NETWORK", + 9: "CANNOT_TARGET_CONTENT_NETWORK_ONLY_WITH_CRITERIA_LEVEL_BIDDING_STRATEGY", + 10: "CAMPAIGN_DURATION_MUST_CONTAIN_ALL_RUNNABLE_TRIALS", + 11: "CANNOT_MODIFY_FOR_TRIAL_CAMPAIGN", + 12: "DUPLICATE_CAMPAIGN_NAME", + 13: "INCOMPATIBLE_CAMPAIGN_FIELD", + 14: "INVALID_CAMPAIGN_NAME", + 15: "INVALID_AD_SERVING_OPTIMIZATION_STATUS", + 16: "INVALID_TRACKING_URL", + 17: "CANNOT_SET_BOTH_TRACKING_URL_TEMPLATE_AND_TRACKING_SETTING", + 18: "MAX_IMPRESSIONS_NOT_IN_RANGE", + 19: "TIME_UNIT_NOT_SUPPORTED", + 20: "INVALID_OPERATION_IF_SERVING_STATUS_HAS_ENDED", + 21: "BUDGET_CANNOT_BE_SHARED", + 22: "CAMPAIGN_CANNOT_USE_SHARED_BUDGET", + 23: "CANNOT_CHANGE_BUDGET_ON_CAMPAIGN_WITH_TRIALS", + 24: "CAMPAIGN_LABEL_DOES_NOT_EXIST", + 25: "CAMPAIGN_LABEL_ALREADY_EXISTS", + 26: "MISSING_SHOPPING_SETTING", + 27: "INVALID_SHOPPING_SALES_COUNTRY", + 30: "MISSING_UNIVERSAL_APP_CAMPAIGN_SETTING", + 31: "ADVERTISING_CHANNEL_TYPE_NOT_AVAILABLE_FOR_ACCOUNT_TYPE", + 32: "INVALID_ADVERTISING_CHANNEL_SUB_TYPE", + 33: "AT_LEAST_ONE_CONVERSION_MUST_BE_SELECTED", + 34: "CANNOT_SET_AD_ROTATION_MODE", + 35: "CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED", + 36: "CANNOT_SET_DATE_TO_PAST", + 37: "MISSING_HOTEL_CUSTOMER_LINK", + 38: "INVALID_HOTEL_CUSTOMER_LINK", + 39: "MISSING_HOTEL_SETTING", + 40: "CANNOT_USE_SHARED_CAMPAIGN_BUDGET_WHILE_PART_OF_CAMPAIGN_GROUP", +} +var CampaignErrorEnum_CampaignError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "CANNOT_TARGET_CONTENT_NETWORK": 3, + "CANNOT_TARGET_SEARCH_NETWORK": 4, + "CANNOT_TARGET_SEARCH_NETWORK_WITHOUT_GOOGLE_SEARCH": 5, + "CANNOT_TARGET_GOOGLE_SEARCH_FOR_CPM_CAMPAIGN": 6, + "CAMPAIGN_MUST_TARGET_AT_LEAST_ONE_NETWORK": 7, + "CANNOT_TARGET_PARTNER_SEARCH_NETWORK": 8, + "CANNOT_TARGET_CONTENT_NETWORK_ONLY_WITH_CRITERIA_LEVEL_BIDDING_STRATEGY": 9, + "CAMPAIGN_DURATION_MUST_CONTAIN_ALL_RUNNABLE_TRIALS": 10, + "CANNOT_MODIFY_FOR_TRIAL_CAMPAIGN": 11, + "DUPLICATE_CAMPAIGN_NAME": 12, + "INCOMPATIBLE_CAMPAIGN_FIELD": 13, + "INVALID_CAMPAIGN_NAME": 14, + "INVALID_AD_SERVING_OPTIMIZATION_STATUS": 15, + "INVALID_TRACKING_URL": 16, + "CANNOT_SET_BOTH_TRACKING_URL_TEMPLATE_AND_TRACKING_SETTING": 17, + "MAX_IMPRESSIONS_NOT_IN_RANGE": 18, + "TIME_UNIT_NOT_SUPPORTED": 19, + "INVALID_OPERATION_IF_SERVING_STATUS_HAS_ENDED": 20, + "BUDGET_CANNOT_BE_SHARED": 21, + "CAMPAIGN_CANNOT_USE_SHARED_BUDGET": 22, + "CANNOT_CHANGE_BUDGET_ON_CAMPAIGN_WITH_TRIALS": 23, + "CAMPAIGN_LABEL_DOES_NOT_EXIST": 24, + "CAMPAIGN_LABEL_ALREADY_EXISTS": 25, + "MISSING_SHOPPING_SETTING": 26, + "INVALID_SHOPPING_SALES_COUNTRY": 27, + "MISSING_UNIVERSAL_APP_CAMPAIGN_SETTING": 30, + "ADVERTISING_CHANNEL_TYPE_NOT_AVAILABLE_FOR_ACCOUNT_TYPE": 31, + "INVALID_ADVERTISING_CHANNEL_SUB_TYPE": 32, + "AT_LEAST_ONE_CONVERSION_MUST_BE_SELECTED": 33, + "CANNOT_SET_AD_ROTATION_MODE": 34, + "CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED": 35, + "CANNOT_SET_DATE_TO_PAST": 36, + "MISSING_HOTEL_CUSTOMER_LINK": 37, + "INVALID_HOTEL_CUSTOMER_LINK": 38, + "MISSING_HOTEL_SETTING": 39, + "CANNOT_USE_SHARED_CAMPAIGN_BUDGET_WHILE_PART_OF_CAMPAIGN_GROUP": 40, +} + +func (x CampaignErrorEnum_CampaignError) String() string { + return proto.EnumName(CampaignErrorEnum_CampaignError_name, int32(x)) +} +func (CampaignErrorEnum_CampaignError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_campaign_error_67c91d16be8f048d, []int{0, 0} +} + +// Container for enum describing possible campaign errors. +type CampaignErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CampaignErrorEnum) Reset() { *m = CampaignErrorEnum{} } +func (m *CampaignErrorEnum) String() string { return proto.CompactTextString(m) } +func (*CampaignErrorEnum) ProtoMessage() {} +func (*CampaignErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_error_67c91d16be8f048d, []int{0} +} +func (m *CampaignErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CampaignErrorEnum.Unmarshal(m, b) +} +func (m *CampaignErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CampaignErrorEnum.Marshal(b, m, deterministic) +} +func (dst *CampaignErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_CampaignErrorEnum.Merge(dst, src) +} +func (m *CampaignErrorEnum) XXX_Size() int { + return xxx_messageInfo_CampaignErrorEnum.Size(m) +} +func (m *CampaignErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_CampaignErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_CampaignErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*CampaignErrorEnum)(nil), "google.ads.googleads.v0.errors.CampaignErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.CampaignErrorEnum_CampaignError", CampaignErrorEnum_CampaignError_name, CampaignErrorEnum_CampaignError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/campaign_error.proto", fileDescriptor_campaign_error_67c91d16be8f048d) +} + +var fileDescriptor_campaign_error_67c91d16be8f048d = []byte{ + // 937 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x55, 0x6f, 0x6f, 0x1c, 0xb5, + 0x13, 0xfe, 0xa5, 0xfd, 0xd1, 0x82, 0x93, 0x52, 0xd7, 0xb4, 0x34, 0x25, 0x25, 0x4d, 0x42, 0x5a, + 0x02, 0xb4, 0x77, 0x81, 0x4a, 0x20, 0x51, 0xa9, 0xd2, 0xdc, 0x7a, 0x6e, 0xcf, 0x8a, 0xd7, 0x5e, + 0xd9, 0xde, 0x4b, 0xaf, 0x8a, 0x34, 0x0a, 0x4d, 0x74, 0xaa, 0xd4, 0xe4, 0xa2, 0x1c, 0xf4, 0x35, + 0x9f, 0x82, 0x0f, 0xc0, 0x4b, 0x3e, 0x09, 0xe2, 0x53, 0x21, 0xef, 0xbf, 0xcb, 0xb6, 0x25, 0xaf, + 0xce, 0xeb, 0xe7, 0x99, 0xf1, 0xcc, 0xe3, 0x67, 0xce, 0xec, 0xe9, 0x74, 0x36, 0x9b, 0xbe, 0x39, + 0xee, 0x1f, 0x1e, 0xcd, 0xfb, 0xd5, 0x32, 0xae, 0xde, 0xee, 0xf6, 0x8f, 0xcf, 0xcf, 0x67, 0xe7, + 0xf3, 0xfe, 0xab, 0xc3, 0x93, 0xb3, 0xc3, 0xd7, 0xd3, 0x53, 0x2a, 0xbf, 0x7b, 0x67, 0xe7, 0xb3, + 0x5f, 0x67, 0x62, 0xbd, 0x62, 0xf6, 0x0e, 0x8f, 0xe6, 0xbd, 0x36, 0xa8, 0xf7, 0x76, 0xb7, 0x57, + 0x05, 0x6d, 0xfd, 0xb1, 0xc2, 0x6e, 0x25, 0x75, 0x20, 0xc6, 0x2d, 0x3c, 0xfd, 0xed, 0x64, 0xeb, + 0xf7, 0x15, 0x76, 0xa3, 0xb3, 0x2b, 0x6e, 0xb2, 0xe5, 0xc2, 0xf8, 0x1c, 0x13, 0x35, 0x54, 0x28, + 0xf9, 0xff, 0xc4, 0x32, 0xbb, 0x5e, 0x98, 0x3d, 0x63, 0xf7, 0x0d, 0x5f, 0x12, 0x9b, 0xec, 0xcb, + 0x04, 0x8c, 0xb1, 0x81, 0x02, 0xb8, 0x14, 0x03, 0x25, 0xd6, 0x04, 0x34, 0x81, 0x0c, 0x86, 0x7d, + 0xeb, 0xf6, 0xf8, 0x55, 0xb1, 0xc1, 0xee, 0x77, 0x29, 0x1e, 0xc1, 0x25, 0xa3, 0x96, 0xf1, 0x7f, + 0xf1, 0x23, 0xfb, 0xe1, 0x32, 0x06, 0xed, 0xab, 0x30, 0xb2, 0x45, 0xa0, 0xd4, 0xda, 0x54, 0x63, + 0x8d, 0xf2, 0x8f, 0xc4, 0x2e, 0x7b, 0xdc, 0x8d, 0xeb, 0x10, 0x68, 0x68, 0x1d, 0x25, 0x79, 0x46, + 0x09, 0x64, 0x39, 0xa8, 0xd4, 0xf0, 0x6b, 0xe2, 0x09, 0xfb, 0xa6, 0xf9, 0xa2, 0xac, 0xf0, 0x6d, + 0x20, 0x04, 0xd2, 0x08, 0x3e, 0x90, 0x35, 0xd8, 0x16, 0x76, 0x5d, 0xec, 0xb0, 0xed, 0xee, 0x01, + 0x39, 0xb8, 0x60, 0xd0, 0xbd, 0xdb, 0xc2, 0xc7, 0x62, 0x8f, 0xa5, 0x97, 0xea, 0x40, 0xd6, 0xe8, + 0x49, 0xd9, 0x08, 0x25, 0x4e, 0x05, 0x74, 0x0a, 0x48, 0xe3, 0x18, 0x35, 0x0d, 0x94, 0x94, 0xca, + 0xa4, 0xe4, 0x83, 0x83, 0x80, 0xe9, 0x84, 0x7f, 0x52, 0xe9, 0x51, 0x57, 0x29, 0x0b, 0x07, 0x41, + 0xd9, 0xba, 0xdc, 0x98, 0x15, 0x94, 0x21, 0xd0, 0x9a, 0x5c, 0x61, 0x0c, 0x0c, 0x34, 0x52, 0x70, + 0x0a, 0xb4, 0xe7, 0x4c, 0x6c, 0xb3, 0x8d, 0xba, 0x88, 0xcc, 0x4a, 0x35, 0x9c, 0x94, 0x0a, 0x94, + 0xe8, 0x42, 0x83, 0x65, 0xb1, 0xc6, 0xee, 0xca, 0x22, 0xd7, 0x2a, 0x81, 0x80, 0xed, 0x3e, 0x19, + 0xc8, 0x90, 0xaf, 0x88, 0x07, 0x6c, 0x4d, 0x99, 0xc4, 0x66, 0x39, 0x04, 0x15, 0x73, 0xb7, 0xf8, + 0x50, 0xa1, 0x96, 0xfc, 0x86, 0xb8, 0xc7, 0xee, 0x28, 0x33, 0x06, 0xad, 0xe4, 0x3b, 0xb1, 0x9f, + 0x8a, 0x6f, 0xd9, 0xa3, 0x06, 0x02, 0x49, 0x1e, 0xdd, 0x38, 0xf6, 0x65, 0xf3, 0xa0, 0x32, 0xf5, + 0xb2, 0x6a, 0xc2, 0x07, 0x08, 0x85, 0xe7, 0x37, 0xc5, 0x2a, 0xbb, 0xdd, 0x70, 0x83, 0x83, 0x64, + 0x2f, 0x32, 0x0b, 0xa7, 0x39, 0x17, 0xcf, 0xd9, 0xcf, 0x75, 0x13, 0x1e, 0x03, 0x0d, 0x6c, 0x18, + 0x75, 0x18, 0x14, 0x30, 0xcb, 0x75, 0x2c, 0x1d, 0xcc, 0x85, 0x58, 0x8f, 0x21, 0x28, 0x93, 0xf2, + 0x5b, 0xd1, 0x6e, 0x19, 0xbc, 0x20, 0x95, 0xe5, 0x0e, 0xbd, 0x57, 0xd6, 0x78, 0x8a, 0xc9, 0x94, + 0x21, 0x07, 0x26, 0x45, 0x2e, 0xa2, 0x00, 0x41, 0x65, 0x48, 0x85, 0x51, 0xa1, 0xc4, 0x7c, 0x91, + 0xe7, 0xd6, 0x05, 0x94, 0xfc, 0x33, 0xf1, 0x3d, 0x7b, 0xd2, 0x14, 0x66, 0x73, 0xac, 0xb5, 0x57, + 0xc3, 0xb6, 0x9d, 0xaa, 0x03, 0x1a, 0x81, 0x27, 0x34, 0x12, 0x25, 0xbf, 0x1d, 0xf3, 0x0d, 0x0a, + 0x59, 0x5e, 0x7a, 0x55, 0xf8, 0x00, 0xc9, 0x8f, 0xc0, 0xa1, 0xe4, 0x77, 0xc4, 0x43, 0xb6, 0xd9, + 0xea, 0x54, 0xc3, 0x85, 0x6f, 0x70, 0xaa, 0xe2, 0xf8, 0xe7, 0x17, 0xac, 0x9c, 0x8c, 0x62, 0x99, + 0x35, 0x42, 0xd6, 0x2c, 0x64, 0x2e, 0xdd, 0x53, 0x5f, 0xf6, 0xdd, 0x6a, 0xf2, 0x6a, 0x44, 0xc3, + 0x00, 0x35, 0x49, 0x8b, 0x55, 0xaf, 0xf8, 0x42, 0xf9, 0xc0, 0x57, 0x3f, 0x40, 0x01, 0xed, 0x10, + 0xe4, 0xa4, 0x62, 0x78, 0x7e, 0x4f, 0xdc, 0x67, 0xab, 0x99, 0xf2, 0xbe, 0xec, 0x6c, 0x64, 0xf3, + 0xfc, 0xa2, 0x96, 0x5f, 0x88, 0x2d, 0xb6, 0xde, 0x88, 0xb1, 0x40, 0x41, 0xa3, 0xa7, 0xc4, 0x16, + 0x26, 0xb8, 0x09, 0x5f, 0x8b, 0xb7, 0xde, 0x64, 0x28, 0x8c, 0x1a, 0xa3, 0xf3, 0xa0, 0x09, 0xf2, + 0x7c, 0x51, 0x77, 0x93, 0x6f, 0x5d, 0x3c, 0x63, 0x3f, 0x81, 0x1c, 0xa3, 0x0b, 0xaa, 0xe4, 0xc7, + 0x56, 0x0d, 0x6a, 0x0a, 0x93, 0x1c, 0xcb, 0xc2, 0x61, 0x0c, 0x4a, 0x97, 0x9e, 0x8e, 0xce, 0x85, + 0xa4, 0x3c, 0xa5, 0x84, 0xf9, 0x83, 0x38, 0x8c, 0x0b, 0x7b, 0xbd, 0x9f, 0xc4, 0x17, 0x83, 0x8a, + 0xb9, 0x21, 0x1e, 0xb3, 0x9d, 0xce, 0x40, 0x27, 0xd6, 0xc4, 0xba, 0xda, 0x29, 0x8a, 0xf7, 0x83, + 0x1a, 0x93, 0x78, 0xe3, 0x9b, 0xd1, 0xf2, 0x17, 0x0c, 0x07, 0x92, 0x9c, 0x0d, 0xf5, 0xc8, 0x59, + 0x89, 0x7c, 0x4b, 0xf4, 0xd9, 0x77, 0xdd, 0xb1, 0xf2, 0x01, 0x5c, 0x20, 0x19, 0x4d, 0xa8, 0x86, + 0xad, 0xa6, 0xe5, 0x2e, 0x4a, 0xfe, 0x55, 0x34, 0xc4, 0x85, 0x8c, 0x25, 0x2f, 0x58, 0xca, 0xc1, + 0x07, 0xbe, 0x1d, 0x8f, 0x6b, 0xf4, 0x1a, 0xd9, 0x80, 0x9a, 0x92, 0xc2, 0x07, 0x9b, 0xa1, 0x23, + 0xad, 0xcc, 0x1e, 0x7f, 0x58, 0x8d, 0x60, 0xd5, 0xe7, 0x87, 0x08, 0x8f, 0xe2, 0x08, 0x76, 0x33, + 0x34, 0x02, 0x7f, 0x2d, 0x06, 0xec, 0xf9, 0xfb, 0x26, 0x6b, 0x2f, 0xa2, 0xf6, 0xd4, 0xfe, 0x48, + 0x69, 0x2c, 0xff, 0xca, 0xc8, 0x0e, 0x17, 0x68, 0xea, 0x6c, 0x91, 0xf3, 0x9d, 0xc1, 0xdf, 0x4b, + 0x6c, 0xeb, 0xd5, 0xec, 0xa4, 0x77, 0xf9, 0xfb, 0x31, 0x10, 0x9d, 0x67, 0x22, 0x8f, 0x6f, 0x4e, + 0xbe, 0xf4, 0x52, 0xd6, 0x51, 0xd3, 0xd9, 0x9b, 0xc3, 0xd3, 0x69, 0x6f, 0x76, 0x3e, 0xed, 0x4f, + 0x8f, 0x4f, 0xcb, 0x17, 0xa9, 0x79, 0xba, 0xce, 0x5e, 0xcf, 0xff, 0xeb, 0x25, 0x7b, 0x56, 0xfd, + 0xfc, 0x79, 0xe5, 0x6a, 0x0a, 0xf0, 0xd7, 0x95, 0xf5, 0xb4, 0x4a, 0x06, 0x47, 0xf3, 0x5e, 0xb5, + 0x8c, 0xab, 0xf1, 0x6e, 0xaf, 0x3c, 0x72, 0xfe, 0x4f, 0x43, 0x38, 0x80, 0xa3, 0xf9, 0x41, 0x4b, + 0x38, 0x18, 0xef, 0x1e, 0x54, 0x84, 0x5f, 0xae, 0x95, 0x07, 0x3f, 0xfd, 0x37, 0x00, 0x00, 0xff, + 0xff, 0xcf, 0xa0, 0xc1, 0x07, 0x41, 0x07, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/campaign_feed_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/campaign_feed_error.pb.go new file mode 100644 index 000000000..535a2b443 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/campaign_feed_error.pb.go @@ -0,0 +1,138 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/campaign_feed_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible campaign feed errors. +type CampaignFeedErrorEnum_CampaignFeedError int32 + +const ( + // Enum unspecified. + CampaignFeedErrorEnum_UNSPECIFIED CampaignFeedErrorEnum_CampaignFeedError = 0 + // The received error code is not known in this version. + CampaignFeedErrorEnum_UNKNOWN CampaignFeedErrorEnum_CampaignFeedError = 1 + // An active feed already exists for this campaign and placeholder type. + CampaignFeedErrorEnum_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE CampaignFeedErrorEnum_CampaignFeedError = 2 + // The specified feed is removed. + CampaignFeedErrorEnum_CANNOT_CREATE_FOR_REMOVED_FEED CampaignFeedErrorEnum_CampaignFeedError = 4 + // The CampaignFeed already exists. UPDATE should be used to modify the + // existing CampaignFeed. + CampaignFeedErrorEnum_CANNOT_CREATE_ALREADY_EXISTING_CAMPAIGN_FEED CampaignFeedErrorEnum_CampaignFeedError = 5 + // Cannot update removed campaign feed. + CampaignFeedErrorEnum_CANNOT_MODIFY_REMOVED_CAMPAIGN_FEED CampaignFeedErrorEnum_CampaignFeedError = 6 + // Invalid placeholder type. + CampaignFeedErrorEnum_INVALID_PLACEHOLDER_TYPE CampaignFeedErrorEnum_CampaignFeedError = 7 + // Feed mapping for this placeholder type does not exist. + CampaignFeedErrorEnum_MISSING_FEEDMAPPING_FOR_PLACEHOLDER_TYPE CampaignFeedErrorEnum_CampaignFeedError = 8 +) + +var CampaignFeedErrorEnum_CampaignFeedError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE", + 4: "CANNOT_CREATE_FOR_REMOVED_FEED", + 5: "CANNOT_CREATE_ALREADY_EXISTING_CAMPAIGN_FEED", + 6: "CANNOT_MODIFY_REMOVED_CAMPAIGN_FEED", + 7: "INVALID_PLACEHOLDER_TYPE", + 8: "MISSING_FEEDMAPPING_FOR_PLACEHOLDER_TYPE", +} +var CampaignFeedErrorEnum_CampaignFeedError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE": 2, + "CANNOT_CREATE_FOR_REMOVED_FEED": 4, + "CANNOT_CREATE_ALREADY_EXISTING_CAMPAIGN_FEED": 5, + "CANNOT_MODIFY_REMOVED_CAMPAIGN_FEED": 6, + "INVALID_PLACEHOLDER_TYPE": 7, + "MISSING_FEEDMAPPING_FOR_PLACEHOLDER_TYPE": 8, +} + +func (x CampaignFeedErrorEnum_CampaignFeedError) String() string { + return proto.EnumName(CampaignFeedErrorEnum_CampaignFeedError_name, int32(x)) +} +func (CampaignFeedErrorEnum_CampaignFeedError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_campaign_feed_error_8ad65cf273383026, []int{0, 0} +} + +// Container for enum describing possible campaign feed errors. +type CampaignFeedErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CampaignFeedErrorEnum) Reset() { *m = CampaignFeedErrorEnum{} } +func (m *CampaignFeedErrorEnum) String() string { return proto.CompactTextString(m) } +func (*CampaignFeedErrorEnum) ProtoMessage() {} +func (*CampaignFeedErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_feed_error_8ad65cf273383026, []int{0} +} +func (m *CampaignFeedErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CampaignFeedErrorEnum.Unmarshal(m, b) +} +func (m *CampaignFeedErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CampaignFeedErrorEnum.Marshal(b, m, deterministic) +} +func (dst *CampaignFeedErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_CampaignFeedErrorEnum.Merge(dst, src) +} +func (m *CampaignFeedErrorEnum) XXX_Size() int { + return xxx_messageInfo_CampaignFeedErrorEnum.Size(m) +} +func (m *CampaignFeedErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_CampaignFeedErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_CampaignFeedErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*CampaignFeedErrorEnum)(nil), "google.ads.googleads.v0.errors.CampaignFeedErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.CampaignFeedErrorEnum_CampaignFeedError", CampaignFeedErrorEnum_CampaignFeedError_name, CampaignFeedErrorEnum_CampaignFeedError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/campaign_feed_error.proto", fileDescriptor_campaign_feed_error_8ad65cf273383026) +} + +var fileDescriptor_campaign_feed_error_8ad65cf273383026 = []byte{ + // 383 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x92, 0xc1, 0xae, 0x93, 0x40, + 0x14, 0x86, 0x2d, 0xea, 0xbd, 0x66, 0xee, 0x42, 0x9c, 0x44, 0xe3, 0xc2, 0x74, 0x81, 0x0b, 0x5d, + 0x34, 0x03, 0x89, 0x1b, 0x13, 0x57, 0x53, 0x66, 0xc0, 0x89, 0x30, 0x4c, 0x80, 0xa2, 0x35, 0x24, + 0x13, 0x2c, 0x48, 0x9a, 0xb4, 0x4c, 0x03, 0xda, 0x07, 0x72, 0xd9, 0xe7, 0x70, 0x65, 0x7c, 0x28, + 0x33, 0x4c, 0xdb, 0xa4, 0xa9, 0xba, 0xe2, 0xcf, 0xe1, 0xfb, 0xff, 0xc3, 0x39, 0x07, 0xf0, 0xb6, + 0x55, 0xaa, 0xdd, 0x34, 0x6e, 0x55, 0x0f, 0xae, 0x91, 0x5a, 0xed, 0x3d, 0xb7, 0xe9, 0x7b, 0xd5, + 0x0f, 0xee, 0xaa, 0xda, 0xee, 0xaa, 0x75, 0xdb, 0xc9, 0xaf, 0x4d, 0x53, 0xcb, 0xb1, 0x88, 0x76, + 0xbd, 0xfa, 0xa6, 0xe0, 0xd4, 0xe0, 0xa8, 0xaa, 0x07, 0x74, 0x76, 0xa2, 0xbd, 0x87, 0x8c, 0xd3, + 0xf9, 0x69, 0x81, 0xa7, 0xfe, 0xd1, 0x1d, 0x34, 0x4d, 0x4d, 0x75, 0x99, 0x76, 0xdf, 0xb7, 0xce, + 0xc1, 0x02, 0x4f, 0xae, 0xde, 0xc0, 0xc7, 0xe0, 0x6e, 0xc1, 0x33, 0x41, 0x7d, 0x16, 0x30, 0x4a, + 0xec, 0x7b, 0xf0, 0x0e, 0xdc, 0x2e, 0xf8, 0x07, 0x9e, 0x7c, 0xe4, 0xf6, 0x04, 0xce, 0xc0, 0xeb, + 0x80, 0x52, 0x22, 0x71, 0x94, 0x52, 0x4c, 0x96, 0x92, 0x7e, 0x62, 0x59, 0x9e, 0xc9, 0x20, 0x49, + 0xa5, 0x88, 0xb0, 0x4f, 0xdf, 0x27, 0x11, 0xa1, 0xa9, 0xcc, 0x97, 0x82, 0xda, 0x16, 0x74, 0xc0, + 0xd4, 0xc7, 0x9c, 0x27, 0xb9, 0xf4, 0x53, 0x8a, 0x73, 0x3a, 0x72, 0x29, 0x8d, 0x93, 0x82, 0x12, + 0xa9, 0x73, 0xec, 0x07, 0xd0, 0x03, 0xb3, 0x4b, 0xe6, 0x22, 0x9a, 0xf1, 0x50, 0xfa, 0x38, 0x16, + 0x98, 0x85, 0xdc, 0x38, 0x1e, 0xc2, 0x57, 0xe0, 0xe5, 0xd1, 0x11, 0x27, 0x84, 0x05, 0xcb, 0x73, + 0xe2, 0x25, 0x78, 0x03, 0x5f, 0x80, 0xe7, 0x8c, 0x17, 0x38, 0x62, 0xe4, 0xfa, 0xe3, 0x6e, 0xf5, + 0x28, 0x31, 0xcb, 0x32, 0xdd, 0x41, 0xf3, 0x31, 0x16, 0x62, 0xd4, 0x7f, 0x1b, 0xe5, 0xd1, 0xfc, + 0xf7, 0x04, 0x38, 0x2b, 0xb5, 0x45, 0xff, 0xdf, 0xf6, 0xfc, 0xd9, 0xd5, 0x42, 0x85, 0xbe, 0x92, + 0x98, 0x7c, 0x26, 0x47, 0x67, 0xab, 0x36, 0x55, 0xd7, 0x22, 0xd5, 0xb7, 0x6e, 0xdb, 0x74, 0xe3, + 0x0d, 0x4f, 0x17, 0xdf, 0xad, 0x87, 0x7f, 0xfd, 0x00, 0xef, 0xcc, 0xe3, 0x87, 0x75, 0x3f, 0xc4, + 0xf8, 0x60, 0x4d, 0x43, 0x13, 0x86, 0xeb, 0x01, 0x19, 0xa9, 0x55, 0xe1, 0xa1, 0xb1, 0xe5, 0xf0, + 0xeb, 0x04, 0x94, 0xb8, 0x1e, 0xca, 0x33, 0x50, 0x16, 0x5e, 0x69, 0x80, 0x2f, 0x37, 0x63, 0xe3, + 0x37, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0xe9, 0x6a, 0xa0, 0x54, 0x78, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/campaign_group_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/campaign_group_error.pb.go new file mode 100644 index 000000000..85cb1a42e --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/campaign_group_error.pb.go @@ -0,0 +1,123 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/campaign_group_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible campaign group errors. +type CampaignGroupErrorEnum_CampaignGroupError int32 + +const ( + // Enum unspecified. + CampaignGroupErrorEnum_UNSPECIFIED CampaignGroupErrorEnum_CampaignGroupError = 0 + // The received error code is not known in this version. + CampaignGroupErrorEnum_UNKNOWN CampaignGroupErrorEnum_CampaignGroupError = 1 + // CampaignGroup was removed with ENABLED or PAUSED Campaigns associated + // with it. + CampaignGroupErrorEnum_CANNOT_REMOVE_CAMPAIGN_GROUP_WITH_ENABLED_OR_PAUSED_CAMPAIGNS CampaignGroupErrorEnum_CampaignGroupError = 2 + // CampaignGroup with the given name already exists. + CampaignGroupErrorEnum_DUPLICATE_NAME CampaignGroupErrorEnum_CampaignGroupError = 3 + // Cannot modify a removed campaign group. + CampaignGroupErrorEnum_CANNOT_MODIFY_REMOVED_CAMPAIGN_GROUP CampaignGroupErrorEnum_CampaignGroupError = 4 +) + +var CampaignGroupErrorEnum_CampaignGroupError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "CANNOT_REMOVE_CAMPAIGN_GROUP_WITH_ENABLED_OR_PAUSED_CAMPAIGNS", + 3: "DUPLICATE_NAME", + 4: "CANNOT_MODIFY_REMOVED_CAMPAIGN_GROUP", +} +var CampaignGroupErrorEnum_CampaignGroupError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "CANNOT_REMOVE_CAMPAIGN_GROUP_WITH_ENABLED_OR_PAUSED_CAMPAIGNS": 2, + "DUPLICATE_NAME": 3, + "CANNOT_MODIFY_REMOVED_CAMPAIGN_GROUP": 4, +} + +func (x CampaignGroupErrorEnum_CampaignGroupError) String() string { + return proto.EnumName(CampaignGroupErrorEnum_CampaignGroupError_name, int32(x)) +} +func (CampaignGroupErrorEnum_CampaignGroupError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_campaign_group_error_675a06723b979a2f, []int{0, 0} +} + +// Container for enum describing possible campaign group errors. +type CampaignGroupErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CampaignGroupErrorEnum) Reset() { *m = CampaignGroupErrorEnum{} } +func (m *CampaignGroupErrorEnum) String() string { return proto.CompactTextString(m) } +func (*CampaignGroupErrorEnum) ProtoMessage() {} +func (*CampaignGroupErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_group_error_675a06723b979a2f, []int{0} +} +func (m *CampaignGroupErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CampaignGroupErrorEnum.Unmarshal(m, b) +} +func (m *CampaignGroupErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CampaignGroupErrorEnum.Marshal(b, m, deterministic) +} +func (dst *CampaignGroupErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_CampaignGroupErrorEnum.Merge(dst, src) +} +func (m *CampaignGroupErrorEnum) XXX_Size() int { + return xxx_messageInfo_CampaignGroupErrorEnum.Size(m) +} +func (m *CampaignGroupErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_CampaignGroupErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_CampaignGroupErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*CampaignGroupErrorEnum)(nil), "google.ads.googleads.v0.errors.CampaignGroupErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.CampaignGroupErrorEnum_CampaignGroupError", CampaignGroupErrorEnum_CampaignGroupError_name, CampaignGroupErrorEnum_CampaignGroupError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/campaign_group_error.proto", fileDescriptor_campaign_group_error_675a06723b979a2f) +} + +var fileDescriptor_campaign_group_error_675a06723b979a2f = []byte{ + // 334 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x91, 0x41, 0x4b, 0xc3, 0x30, + 0x1c, 0xc5, 0xed, 0x26, 0x0a, 0x19, 0x68, 0xc9, 0x41, 0x6f, 0x3b, 0x0c, 0x0f, 0x9e, 0xd2, 0x82, + 0x27, 0x11, 0x0f, 0x59, 0x93, 0xd5, 0xe2, 0x9a, 0x86, 0x6d, 0xdd, 0x50, 0x0a, 0xa1, 0xae, 0x23, + 0x0c, 0xb6, 0xa6, 0x34, 0x6e, 0x1f, 0xc8, 0xa3, 0x57, 0xbf, 0x85, 0xa0, 0x9f, 0x49, 0xda, 0x74, + 0x3b, 0x38, 0xf4, 0xd4, 0xc7, 0xbf, 0xef, 0xf7, 0xfe, 0xfc, 0x5f, 0xc0, 0xad, 0x54, 0x4a, 0xae, + 0x16, 0x4e, 0x9a, 0x69, 0xc7, 0xc8, 0x4a, 0x6d, 0x5d, 0x67, 0x51, 0x96, 0xaa, 0xd4, 0xce, 0x3c, + 0x5d, 0x17, 0xe9, 0x52, 0xe6, 0x42, 0x96, 0x6a, 0x53, 0x88, 0x7a, 0x8a, 0x8a, 0x52, 0xbd, 0x2a, + 0xd8, 0x35, 0x7e, 0x94, 0x66, 0x1a, 0xed, 0x51, 0xb4, 0x75, 0x91, 0x41, 0x7b, 0xdf, 0x16, 0xb8, + 0xf0, 0x1a, 0xdc, 0xaf, 0x68, 0x5a, 0xcd, 0x69, 0xbe, 0x59, 0xf7, 0x3e, 0x2c, 0x00, 0x0f, 0x7f, + 0xc1, 0x73, 0xd0, 0x89, 0xd9, 0x98, 0x53, 0x2f, 0x18, 0x04, 0x94, 0xd8, 0x47, 0xb0, 0x03, 0x4e, + 0x63, 0xf6, 0xc8, 0xa2, 0x19, 0xb3, 0x2d, 0x88, 0xc1, 0xbd, 0x87, 0x19, 0x8b, 0x26, 0x62, 0x44, + 0xc3, 0x68, 0x4a, 0x85, 0x87, 0x43, 0x8e, 0x03, 0x9f, 0x09, 0x7f, 0x14, 0xc5, 0x5c, 0xcc, 0x82, + 0xc9, 0x83, 0xa0, 0x0c, 0xf7, 0x87, 0x94, 0x88, 0x68, 0x24, 0x38, 0x8e, 0xc7, 0x94, 0xec, 0x5d, + 0x63, 0xbb, 0x05, 0x21, 0x38, 0x23, 0x31, 0x1f, 0x06, 0x1e, 0x9e, 0x50, 0xc1, 0x70, 0x48, 0xed, + 0x36, 0xbc, 0x06, 0x57, 0x4d, 0x6c, 0x18, 0x91, 0x60, 0xf0, 0xd4, 0xa4, 0x93, 0x5f, 0xf1, 0xf6, + 0x71, 0xff, 0xcb, 0x02, 0xbd, 0xb9, 0x5a, 0xa3, 0xff, 0xef, 0xee, 0x5f, 0x1e, 0x5e, 0xc6, 0xab, + 0xc2, 0xb8, 0xf5, 0x4c, 0x1a, 0x54, 0xaa, 0x55, 0x9a, 0x4b, 0xa4, 0x4a, 0xe9, 0xc8, 0x45, 0x5e, + 0xd7, 0xb9, 0x6b, 0xbf, 0x58, 0xea, 0xbf, 0x1e, 0xe3, 0xce, 0x7c, 0xde, 0x5a, 0x6d, 0x1f, 0xe3, + 0xf7, 0x56, 0xd7, 0x37, 0x61, 0x38, 0xd3, 0xc8, 0xc8, 0x4a, 0x4d, 0x5d, 0x54, 0xaf, 0xd4, 0x9f, + 0x3b, 0x43, 0x82, 0x33, 0x9d, 0xec, 0x0d, 0xc9, 0xd4, 0x4d, 0x8c, 0xe1, 0xe5, 0xa4, 0x5e, 0x7c, + 0xf3, 0x13, 0x00, 0x00, 0xff, 0xff, 0x18, 0x8d, 0x63, 0x1d, 0x04, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/campaign_shared_set_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/campaign_shared_set_error.pb.go new file mode 100644 index 000000000..c77daf605 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/campaign_shared_set_error.pb.go @@ -0,0 +1,111 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/campaign_shared_set_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible campaign shared set errors. +type CampaignSharedSetErrorEnum_CampaignSharedSetError int32 + +const ( + // Enum unspecified. + CampaignSharedSetErrorEnum_UNSPECIFIED CampaignSharedSetErrorEnum_CampaignSharedSetError = 0 + // The received error code is not known in this version. + CampaignSharedSetErrorEnum_UNKNOWN CampaignSharedSetErrorEnum_CampaignSharedSetError = 1 + // The shared set belongs to another customer and permission isn't granted. + CampaignSharedSetErrorEnum_SHARED_SET_ACCESS_DENIED CampaignSharedSetErrorEnum_CampaignSharedSetError = 2 +) + +var CampaignSharedSetErrorEnum_CampaignSharedSetError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "SHARED_SET_ACCESS_DENIED", +} +var CampaignSharedSetErrorEnum_CampaignSharedSetError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "SHARED_SET_ACCESS_DENIED": 2, +} + +func (x CampaignSharedSetErrorEnum_CampaignSharedSetError) String() string { + return proto.EnumName(CampaignSharedSetErrorEnum_CampaignSharedSetError_name, int32(x)) +} +func (CampaignSharedSetErrorEnum_CampaignSharedSetError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_campaign_shared_set_error_6fb036bae1aa3bd9, []int{0, 0} +} + +// Container for enum describing possible campaign shared set errors. +type CampaignSharedSetErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CampaignSharedSetErrorEnum) Reset() { *m = CampaignSharedSetErrorEnum{} } +func (m *CampaignSharedSetErrorEnum) String() string { return proto.CompactTextString(m) } +func (*CampaignSharedSetErrorEnum) ProtoMessage() {} +func (*CampaignSharedSetErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_shared_set_error_6fb036bae1aa3bd9, []int{0} +} +func (m *CampaignSharedSetErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CampaignSharedSetErrorEnum.Unmarshal(m, b) +} +func (m *CampaignSharedSetErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CampaignSharedSetErrorEnum.Marshal(b, m, deterministic) +} +func (dst *CampaignSharedSetErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_CampaignSharedSetErrorEnum.Merge(dst, src) +} +func (m *CampaignSharedSetErrorEnum) XXX_Size() int { + return xxx_messageInfo_CampaignSharedSetErrorEnum.Size(m) +} +func (m *CampaignSharedSetErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_CampaignSharedSetErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_CampaignSharedSetErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*CampaignSharedSetErrorEnum)(nil), "google.ads.googleads.v0.errors.CampaignSharedSetErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.CampaignSharedSetErrorEnum_CampaignSharedSetError", CampaignSharedSetErrorEnum_CampaignSharedSetError_name, CampaignSharedSetErrorEnum_CampaignSharedSetError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/campaign_shared_set_error.proto", fileDescriptor_campaign_shared_set_error_6fb036bae1aa3bd9) +} + +var fileDescriptor_campaign_shared_set_error_6fb036bae1aa3bd9 = []byte{ + // 275 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x50, 0xcf, 0x4a, 0xc3, 0x30, + 0x1c, 0xb6, 0x15, 0x14, 0xb2, 0x83, 0xa3, 0x07, 0x11, 0x95, 0x1d, 0xfa, 0x00, 0x69, 0xc1, 0xa3, + 0x20, 0x64, 0x6d, 0x9c, 0x43, 0x88, 0xc5, 0x6c, 0x13, 0xa4, 0x10, 0xe2, 0x12, 0xe2, 0x60, 0x6d, + 0x4a, 0x52, 0xf7, 0x40, 0x1e, 0x7d, 0x14, 0x6f, 0xbe, 0x91, 0x24, 0xd9, 0x76, 0x9a, 0x9e, 0xf2, + 0xc1, 0xf7, 0x2f, 0xbf, 0x0f, 0xdc, 0x29, 0xad, 0xd5, 0x5a, 0x66, 0x5c, 0xd8, 0x2c, 0x40, 0x87, + 0x36, 0x79, 0x26, 0x8d, 0xd1, 0xc6, 0x66, 0x4b, 0xde, 0x74, 0x7c, 0xa5, 0x5a, 0x66, 0xdf, 0xb9, + 0x91, 0x82, 0x59, 0xd9, 0x33, 0x4f, 0xc1, 0xce, 0xe8, 0x5e, 0x27, 0xa3, 0x60, 0x82, 0x5c, 0x58, + 0xb8, 0xf7, 0xc3, 0x4d, 0x0e, 0x83, 0x3f, 0x35, 0xe0, 0xb2, 0xd8, 0x46, 0x50, 0x9f, 0x40, 0x65, + 0x8f, 0x1d, 0x85, 0xdb, 0x8f, 0x26, 0x9d, 0x81, 0xf3, 0xc3, 0x6c, 0x72, 0x06, 0x06, 0x73, 0x42, + 0x2b, 0x5c, 0x4c, 0xef, 0xa7, 0xb8, 0x1c, 0x1e, 0x25, 0x03, 0x70, 0x3a, 0x27, 0x8f, 0xe4, 0xe9, + 0x85, 0x0c, 0xa3, 0xe4, 0x1a, 0x5c, 0xd0, 0x07, 0xf4, 0x8c, 0x4b, 0x46, 0xf1, 0x8c, 0xa1, 0xa2, + 0xc0, 0x94, 0xb2, 0x12, 0x13, 0x27, 0x8d, 0xc7, 0x3f, 0x11, 0x48, 0x97, 0xba, 0x81, 0xff, 0x7f, + 0x6d, 0x7c, 0x75, 0xb8, 0xba, 0x72, 0x77, 0x55, 0xd1, 0x6b, 0xb9, 0xb5, 0x2b, 0xbd, 0xe6, 0xad, + 0x82, 0xda, 0xa8, 0x4c, 0xc9, 0xd6, 0x5f, 0xbd, 0x5b, 0xaa, 0x5b, 0xd9, 0xbf, 0x86, 0xbb, 0x0d, + 0xcf, 0x67, 0x7c, 0x3c, 0x41, 0xe8, 0x2b, 0x1e, 0x4d, 0x42, 0x18, 0x12, 0x16, 0x06, 0xe8, 0xd0, + 0x22, 0x87, 0xbe, 0xd2, 0x7e, 0xef, 0x04, 0x35, 0x12, 0xb6, 0xde, 0x0b, 0xea, 0x45, 0x5e, 0x07, + 0xc1, 0xdb, 0x89, 0x2f, 0xbe, 0xf9, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x05, 0x13, 0x71, 0xbb, 0xb0, + 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/change_status_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/change_status_error.pb.go new file mode 100644 index 000000000..a224ee13f --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/change_status_error.pb.go @@ -0,0 +1,110 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/change_status_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible change status errors. +type ChangeStatusErrorEnum_ChangeStatusError int32 + +const ( + // Enum unspecified. + ChangeStatusErrorEnum_UNSPECIFIED ChangeStatusErrorEnum_ChangeStatusError = 0 + // The received error code is not known in this version. + ChangeStatusErrorEnum_UNKNOWN ChangeStatusErrorEnum_ChangeStatusError = 1 + // The requested start date is too old. + ChangeStatusErrorEnum_START_DATE_TOO_OLD ChangeStatusErrorEnum_ChangeStatusError = 3 +) + +var ChangeStatusErrorEnum_ChangeStatusError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 3: "START_DATE_TOO_OLD", +} +var ChangeStatusErrorEnum_ChangeStatusError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "START_DATE_TOO_OLD": 3, +} + +func (x ChangeStatusErrorEnum_ChangeStatusError) String() string { + return proto.EnumName(ChangeStatusErrorEnum_ChangeStatusError_name, int32(x)) +} +func (ChangeStatusErrorEnum_ChangeStatusError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_change_status_error_3510b0503a390638, []int{0, 0} +} + +// Container for enum describing possible change status errors. +type ChangeStatusErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ChangeStatusErrorEnum) Reset() { *m = ChangeStatusErrorEnum{} } +func (m *ChangeStatusErrorEnum) String() string { return proto.CompactTextString(m) } +func (*ChangeStatusErrorEnum) ProtoMessage() {} +func (*ChangeStatusErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_change_status_error_3510b0503a390638, []int{0} +} +func (m *ChangeStatusErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ChangeStatusErrorEnum.Unmarshal(m, b) +} +func (m *ChangeStatusErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ChangeStatusErrorEnum.Marshal(b, m, deterministic) +} +func (dst *ChangeStatusErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_ChangeStatusErrorEnum.Merge(dst, src) +} +func (m *ChangeStatusErrorEnum) XXX_Size() int { + return xxx_messageInfo_ChangeStatusErrorEnum.Size(m) +} +func (m *ChangeStatusErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_ChangeStatusErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_ChangeStatusErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*ChangeStatusErrorEnum)(nil), "google.ads.googleads.v0.errors.ChangeStatusErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.ChangeStatusErrorEnum_ChangeStatusError", ChangeStatusErrorEnum_ChangeStatusError_name, ChangeStatusErrorEnum_ChangeStatusError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/change_status_error.proto", fileDescriptor_change_status_error_3510b0503a390638) +} + +var fileDescriptor_change_status_error_3510b0503a390638 = []byte{ + // 266 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x48, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xa2, + 0xa2, 0xfc, 0xa2, 0x62, 0xfd, 0xe4, 0x8c, 0xc4, 0xbc, 0xf4, 0xd4, 0xf8, 0xe2, 0x92, 0xc4, 0x92, + 0xd2, 0xe2, 0x78, 0xb0, 0xa0, 0x5e, 0x41, 0x51, 0x7e, 0x49, 0xbe, 0x90, 0x1c, 0x44, 0xb9, 0x5e, + 0x62, 0x4a, 0xb1, 0x1e, 0x5c, 0xa7, 0x5e, 0x99, 0x81, 0x1e, 0x44, 0xa7, 0x52, 0x12, 0x97, 0xa8, + 0x33, 0x58, 0x73, 0x30, 0x58, 0xaf, 0x2b, 0x48, 0xd4, 0x35, 0xaf, 0x34, 0x57, 0xc9, 0x93, 0x4b, + 0x10, 0x43, 0x42, 0x88, 0x9f, 0x8b, 0x3b, 0xd4, 0x2f, 0x38, 0xc0, 0xd5, 0xd9, 0xd3, 0xcd, 0xd3, + 0xd5, 0x45, 0x80, 0x41, 0x88, 0x9b, 0x8b, 0x3d, 0xd4, 0xcf, 0xdb, 0xcf, 0x3f, 0xdc, 0x4f, 0x80, + 0x51, 0x48, 0x8c, 0x4b, 0x28, 0x38, 0xc4, 0x31, 0x28, 0x24, 0xde, 0xc5, 0x31, 0xc4, 0x35, 0x3e, + 0xc4, 0xdf, 0x3f, 0xde, 0xdf, 0xc7, 0x45, 0x80, 0xd9, 0xe9, 0x0c, 0x23, 0x97, 0x52, 0x72, 0x7e, + 0xae, 0x1e, 0x7e, 0xa7, 0x38, 0x89, 0x61, 0xd8, 0x17, 0x00, 0xf2, 0x42, 0x00, 0x63, 0x94, 0x0b, + 0x54, 0x67, 0x7a, 0x7e, 0x4e, 0x62, 0x5e, 0xba, 0x5e, 0x7e, 0x51, 0xba, 0x7e, 0x7a, 0x6a, 0x1e, + 0xd8, 0x83, 0xb0, 0xe0, 0x28, 0xc8, 0x2c, 0xc6, 0x15, 0x3a, 0xd6, 0x10, 0x6a, 0x11, 0x13, 0xb3, + 0xbb, 0xa3, 0xe3, 0x2a, 0x26, 0x39, 0x77, 0x88, 0x61, 0x8e, 0x29, 0xc5, 0x7a, 0x10, 0x26, 0x88, + 0x15, 0x66, 0xa0, 0x07, 0xb6, 0xb2, 0xf8, 0x14, 0x4c, 0x41, 0x8c, 0x63, 0x4a, 0x71, 0x0c, 0x5c, + 0x41, 0x4c, 0x98, 0x41, 0x0c, 0x44, 0x41, 0x12, 0x1b, 0xd8, 0x62, 0x63, 0x40, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xc6, 0x6d, 0xde, 0x35, 0x95, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/collection_size_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/collection_size_error.pb.go new file mode 100644 index 000000000..1e48345c3 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/collection_size_error.pb.go @@ -0,0 +1,114 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/collection_size_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible collection size errors. +type CollectionSizeErrorEnum_CollectionSizeError int32 + +const ( + // Enum unspecified. + CollectionSizeErrorEnum_UNSPECIFIED CollectionSizeErrorEnum_CollectionSizeError = 0 + // The received error code is not known in this version. + CollectionSizeErrorEnum_UNKNOWN CollectionSizeErrorEnum_CollectionSizeError = 1 + // Too few. + CollectionSizeErrorEnum_TOO_FEW CollectionSizeErrorEnum_CollectionSizeError = 2 + // Too many. + CollectionSizeErrorEnum_TOO_MANY CollectionSizeErrorEnum_CollectionSizeError = 3 +) + +var CollectionSizeErrorEnum_CollectionSizeError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "TOO_FEW", + 3: "TOO_MANY", +} +var CollectionSizeErrorEnum_CollectionSizeError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "TOO_FEW": 2, + "TOO_MANY": 3, +} + +func (x CollectionSizeErrorEnum_CollectionSizeError) String() string { + return proto.EnumName(CollectionSizeErrorEnum_CollectionSizeError_name, int32(x)) +} +func (CollectionSizeErrorEnum_CollectionSizeError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_collection_size_error_d621fd7462c2de8f, []int{0, 0} +} + +// Container for enum describing possible collection size errors. +type CollectionSizeErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CollectionSizeErrorEnum) Reset() { *m = CollectionSizeErrorEnum{} } +func (m *CollectionSizeErrorEnum) String() string { return proto.CompactTextString(m) } +func (*CollectionSizeErrorEnum) ProtoMessage() {} +func (*CollectionSizeErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_collection_size_error_d621fd7462c2de8f, []int{0} +} +func (m *CollectionSizeErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CollectionSizeErrorEnum.Unmarshal(m, b) +} +func (m *CollectionSizeErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CollectionSizeErrorEnum.Marshal(b, m, deterministic) +} +func (dst *CollectionSizeErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_CollectionSizeErrorEnum.Merge(dst, src) +} +func (m *CollectionSizeErrorEnum) XXX_Size() int { + return xxx_messageInfo_CollectionSizeErrorEnum.Size(m) +} +func (m *CollectionSizeErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_CollectionSizeErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_CollectionSizeErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*CollectionSizeErrorEnum)(nil), "google.ads.googleads.v0.errors.CollectionSizeErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.CollectionSizeErrorEnum_CollectionSizeError", CollectionSizeErrorEnum_CollectionSizeError_name, CollectionSizeErrorEnum_CollectionSizeError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/collection_size_error.proto", fileDescriptor_collection_size_error_d621fd7462c2de8f) +} + +var fileDescriptor_collection_size_error_d621fd7462c2de8f = []byte{ + // 267 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x4a, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xa2, + 0xa2, 0xfc, 0xa2, 0x62, 0xfd, 0xe4, 0xfc, 0x9c, 0x9c, 0xd4, 0xe4, 0x92, 0xcc, 0xfc, 0xbc, 0xf8, + 0xe2, 0xcc, 0xaa, 0xd4, 0x78, 0xb0, 0xb0, 0x5e, 0x41, 0x51, 0x7e, 0x49, 0xbe, 0x90, 0x1c, 0x44, + 0x83, 0x5e, 0x62, 0x4a, 0xb1, 0x1e, 0x5c, 0xaf, 0x5e, 0x99, 0x81, 0x1e, 0x44, 0xaf, 0x52, 0x26, + 0x97, 0xb8, 0x33, 0x5c, 0x7b, 0x70, 0x66, 0x55, 0xaa, 0x2b, 0x48, 0xdc, 0x35, 0xaf, 0x34, 0x57, + 0xc9, 0x8f, 0x4b, 0x18, 0x8b, 0x94, 0x10, 0x3f, 0x17, 0x77, 0xa8, 0x5f, 0x70, 0x80, 0xab, 0xb3, + 0xa7, 0x9b, 0xa7, 0xab, 0x8b, 0x00, 0x83, 0x10, 0x37, 0x17, 0x7b, 0xa8, 0x9f, 0xb7, 0x9f, 0x7f, + 0xb8, 0x9f, 0x00, 0x23, 0x88, 0x13, 0xe2, 0xef, 0x1f, 0xef, 0xe6, 0x1a, 0x2e, 0xc0, 0x24, 0xc4, + 0xc3, 0xc5, 0x01, 0xe2, 0xf8, 0x3a, 0xfa, 0x45, 0x0a, 0x30, 0x3b, 0x9d, 0x63, 0xe4, 0x52, 0x4a, + 0xce, 0xcf, 0xd5, 0xc3, 0xef, 0x22, 0x27, 0x09, 0x2c, 0x96, 0x06, 0x80, 0xfc, 0x12, 0xc0, 0x18, + 0xe5, 0x02, 0xd5, 0x9b, 0x9e, 0x9f, 0x93, 0x98, 0x97, 0xae, 0x97, 0x5f, 0x94, 0xae, 0x9f, 0x9e, + 0x9a, 0x07, 0xf6, 0x29, 0x2c, 0x64, 0x0a, 0x32, 0x8b, 0x71, 0x05, 0x94, 0x35, 0x84, 0x5a, 0xc4, + 0xc4, 0xec, 0xee, 0xe8, 0xb8, 0x8a, 0x49, 0xce, 0x1d, 0x62, 0x98, 0x63, 0x4a, 0xb1, 0x1e, 0x84, + 0x09, 0x62, 0x85, 0x19, 0xe8, 0x81, 0xad, 0x2c, 0x3e, 0x05, 0x53, 0x10, 0xe3, 0x98, 0x52, 0x1c, + 0x03, 0x57, 0x10, 0x13, 0x66, 0x10, 0x03, 0x51, 0x90, 0xc4, 0x06, 0xb6, 0xd8, 0x18, 0x10, 0x00, + 0x00, 0xff, 0xff, 0x9e, 0xae, 0x5b, 0xc8, 0xa0, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/context_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/context_error.pb.go new file mode 100644 index 000000000..df514418f --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/context_error.pb.go @@ -0,0 +1,116 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/context_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible context errors. +type ContextErrorEnum_ContextError int32 + +const ( + // Enum unspecified. + ContextErrorEnum_UNSPECIFIED ContextErrorEnum_ContextError = 0 + // The received error code is not known in this version. + ContextErrorEnum_UNKNOWN ContextErrorEnum_ContextError = 1 + // The operation is not allowed for the given context. + ContextErrorEnum_OPERATION_NOT_PERMITTED_FOR_CONTEXT ContextErrorEnum_ContextError = 2 + // The operation is not allowed for removed resources. + ContextErrorEnum_OPERATION_NOT_PERMITTED_FOR_REMOVED_RESOURCE ContextErrorEnum_ContextError = 3 +) + +var ContextErrorEnum_ContextError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "OPERATION_NOT_PERMITTED_FOR_CONTEXT", + 3: "OPERATION_NOT_PERMITTED_FOR_REMOVED_RESOURCE", +} +var ContextErrorEnum_ContextError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "OPERATION_NOT_PERMITTED_FOR_CONTEXT": 2, + "OPERATION_NOT_PERMITTED_FOR_REMOVED_RESOURCE": 3, +} + +func (x ContextErrorEnum_ContextError) String() string { + return proto.EnumName(ContextErrorEnum_ContextError_name, int32(x)) +} +func (ContextErrorEnum_ContextError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_context_error_9a745e2a82a873d0, []int{0, 0} +} + +// Container for enum describing possible context errors. +type ContextErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ContextErrorEnum) Reset() { *m = ContextErrorEnum{} } +func (m *ContextErrorEnum) String() string { return proto.CompactTextString(m) } +func (*ContextErrorEnum) ProtoMessage() {} +func (*ContextErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_context_error_9a745e2a82a873d0, []int{0} +} +func (m *ContextErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ContextErrorEnum.Unmarshal(m, b) +} +func (m *ContextErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ContextErrorEnum.Marshal(b, m, deterministic) +} +func (dst *ContextErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_ContextErrorEnum.Merge(dst, src) +} +func (m *ContextErrorEnum) XXX_Size() int { + return xxx_messageInfo_ContextErrorEnum.Size(m) +} +func (m *ContextErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_ContextErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_ContextErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*ContextErrorEnum)(nil), "google.ads.googleads.v0.errors.ContextErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.ContextErrorEnum_ContextError", ContextErrorEnum_ContextError_name, ContextErrorEnum_ContextError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/context_error.proto", fileDescriptor_context_error_9a745e2a82a873d0) +} + +var fileDescriptor_context_error_9a745e2a82a873d0 = []byte{ + // 300 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x32, 0x4a, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xa2, + 0xa2, 0xfc, 0xa2, 0x62, 0xfd, 0xe4, 0xfc, 0xbc, 0x92, 0xd4, 0x8a, 0x92, 0x78, 0x30, 0x57, 0xaf, + 0xa0, 0x28, 0xbf, 0x24, 0x5f, 0x48, 0x0e, 0xa2, 0x50, 0x2f, 0x31, 0xa5, 0x58, 0x0f, 0xae, 0x47, + 0xaf, 0xcc, 0x40, 0x0f, 0xa2, 0x47, 0x69, 0x0e, 0x23, 0x97, 0x80, 0x33, 0x44, 0x9f, 0x2b, 0x48, + 0xc4, 0x35, 0xaf, 0x34, 0x57, 0xa9, 0x9d, 0x91, 0x8b, 0x07, 0x59, 0x50, 0x88, 0x9f, 0x8b, 0x3b, + 0xd4, 0x2f, 0x38, 0xc0, 0xd5, 0xd9, 0xd3, 0xcd, 0xd3, 0xd5, 0x45, 0x80, 0x41, 0x88, 0x9b, 0x8b, + 0x3d, 0xd4, 0xcf, 0xdb, 0xcf, 0x3f, 0xdc, 0x4f, 0x80, 0x51, 0x48, 0x9d, 0x4b, 0xd9, 0x3f, 0xc0, + 0x35, 0xc8, 0x31, 0xc4, 0xd3, 0xdf, 0x2f, 0xde, 0xcf, 0x3f, 0x24, 0x3e, 0xc0, 0x35, 0xc8, 0xd7, + 0x33, 0x24, 0xc4, 0xd5, 0x25, 0xde, 0xcd, 0x3f, 0x28, 0xde, 0xd9, 0xdf, 0x2f, 0xc4, 0x35, 0x22, + 0x44, 0x80, 0x49, 0xc8, 0x80, 0x4b, 0x07, 0x9f, 0xc2, 0x20, 0x57, 0x5f, 0xff, 0x30, 0x57, 0x97, + 0xf8, 0x20, 0xd7, 0x60, 0xff, 0xd0, 0x20, 0x67, 0x57, 0x01, 0x66, 0xa7, 0xe3, 0x8c, 0x5c, 0x4a, + 0xc9, 0xf9, 0xb9, 0x7a, 0xf8, 0x7d, 0xe1, 0x24, 0x88, 0xec, 0xda, 0x00, 0x90, 0xc7, 0x03, 0x18, + 0xa3, 0x5c, 0xa0, 0x9a, 0xd2, 0xf3, 0x73, 0x12, 0xf3, 0xd2, 0xf5, 0xf2, 0x8b, 0xd2, 0xf5, 0xd3, + 0x53, 0xf3, 0xc0, 0xc1, 0x02, 0x0b, 0xbe, 0x82, 0xcc, 0x62, 0x5c, 0xa1, 0x69, 0x0d, 0xa1, 0x16, + 0x31, 0x31, 0xbb, 0x3b, 0x3a, 0xae, 0x62, 0x92, 0x73, 0x87, 0x18, 0xe6, 0x98, 0x52, 0xac, 0x07, + 0x61, 0x82, 0x58, 0x61, 0x06, 0x7a, 0x60, 0x2b, 0x8b, 0x4f, 0xc1, 0x14, 0xc4, 0x38, 0xa6, 0x14, + 0xc7, 0xc0, 0x15, 0xc4, 0x84, 0x19, 0xc4, 0x40, 0x14, 0x24, 0xb1, 0x81, 0x2d, 0x36, 0x06, 0x04, + 0x00, 0x00, 0xff, 0xff, 0x46, 0x21, 0xd9, 0x0a, 0xc5, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/conversion_action_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/conversion_action_error.pb.go new file mode 100644 index 000000000..6d5ff2357 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/conversion_action_error.pb.go @@ -0,0 +1,154 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/conversion_action_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible conversion action errors. +type ConversionActionErrorEnum_ConversionActionError int32 + +const ( + // Enum unspecified. + ConversionActionErrorEnum_UNSPECIFIED ConversionActionErrorEnum_ConversionActionError = 0 + // The received error code is not known in this version. + ConversionActionErrorEnum_UNKNOWN ConversionActionErrorEnum_ConversionActionError = 1 + // The specified conversion action name already exists. + ConversionActionErrorEnum_DUPLICATE_NAME ConversionActionErrorEnum_ConversionActionError = 2 + // Another conversion action with the specified app id already exists. + ConversionActionErrorEnum_DUPLICATE_APP_ID ConversionActionErrorEnum_ConversionActionError = 3 + // Android first open action conflicts with Google play codeless download + // action tracking the same app. + ConversionActionErrorEnum_TWO_CONVERSION_ACTIONS_BIDDING_ON_SAME_APP_DOWNLOAD ConversionActionErrorEnum_ConversionActionError = 4 + // Android first open action conflicts with Google play codeless download + // action tracking the same app. + ConversionActionErrorEnum_BIDDING_ON_SAME_APP_DOWNLOAD_AS_GLOBAL_ACTION ConversionActionErrorEnum_ConversionActionError = 5 + // The attribution model cannot be set to DATA_DRIVEN because a data-driven + // model has never been generated. + ConversionActionErrorEnum_DATA_DRIVEN_MODEL_WAS_NEVER_GENERATED ConversionActionErrorEnum_ConversionActionError = 6 + // The attribution model cannot be set to DATA_DRIVEN because the + // data-driven model is expired. + ConversionActionErrorEnum_DATA_DRIVEN_MODEL_EXPIRED ConversionActionErrorEnum_ConversionActionError = 7 + // The attribution model cannot be set to DATA_DRIVEN because the + // data-driven model is stale. + ConversionActionErrorEnum_DATA_DRIVEN_MODEL_STALE ConversionActionErrorEnum_ConversionActionError = 8 + // The attribution model cannot be set to DATA_DRIVEN because the + // data-driven model is unavailable or the conversion action was newly + // added. + ConversionActionErrorEnum_DATA_DRIVEN_MODEL_UNKNOWN ConversionActionErrorEnum_ConversionActionError = 9 +) + +var ConversionActionErrorEnum_ConversionActionError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "DUPLICATE_NAME", + 3: "DUPLICATE_APP_ID", + 4: "TWO_CONVERSION_ACTIONS_BIDDING_ON_SAME_APP_DOWNLOAD", + 5: "BIDDING_ON_SAME_APP_DOWNLOAD_AS_GLOBAL_ACTION", + 6: "DATA_DRIVEN_MODEL_WAS_NEVER_GENERATED", + 7: "DATA_DRIVEN_MODEL_EXPIRED", + 8: "DATA_DRIVEN_MODEL_STALE", + 9: "DATA_DRIVEN_MODEL_UNKNOWN", +} +var ConversionActionErrorEnum_ConversionActionError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "DUPLICATE_NAME": 2, + "DUPLICATE_APP_ID": 3, + "TWO_CONVERSION_ACTIONS_BIDDING_ON_SAME_APP_DOWNLOAD": 4, + "BIDDING_ON_SAME_APP_DOWNLOAD_AS_GLOBAL_ACTION": 5, + "DATA_DRIVEN_MODEL_WAS_NEVER_GENERATED": 6, + "DATA_DRIVEN_MODEL_EXPIRED": 7, + "DATA_DRIVEN_MODEL_STALE": 8, + "DATA_DRIVEN_MODEL_UNKNOWN": 9, +} + +func (x ConversionActionErrorEnum_ConversionActionError) String() string { + return proto.EnumName(ConversionActionErrorEnum_ConversionActionError_name, int32(x)) +} +func (ConversionActionErrorEnum_ConversionActionError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_conversion_action_error_529ca4a007cbb9ef, []int{0, 0} +} + +// Container for enum describing possible conversion action errors. +type ConversionActionErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ConversionActionErrorEnum) Reset() { *m = ConversionActionErrorEnum{} } +func (m *ConversionActionErrorEnum) String() string { return proto.CompactTextString(m) } +func (*ConversionActionErrorEnum) ProtoMessage() {} +func (*ConversionActionErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_conversion_action_error_529ca4a007cbb9ef, []int{0} +} +func (m *ConversionActionErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ConversionActionErrorEnum.Unmarshal(m, b) +} +func (m *ConversionActionErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ConversionActionErrorEnum.Marshal(b, m, deterministic) +} +func (dst *ConversionActionErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_ConversionActionErrorEnum.Merge(dst, src) +} +func (m *ConversionActionErrorEnum) XXX_Size() int { + return xxx_messageInfo_ConversionActionErrorEnum.Size(m) +} +func (m *ConversionActionErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_ConversionActionErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_ConversionActionErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*ConversionActionErrorEnum)(nil), "google.ads.googleads.v0.errors.ConversionActionErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.ConversionActionErrorEnum_ConversionActionError", ConversionActionErrorEnum_ConversionActionError_name, ConversionActionErrorEnum_ConversionActionError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/conversion_action_error.proto", fileDescriptor_conversion_action_error_529ca4a007cbb9ef) +} + +var fileDescriptor_conversion_action_error_529ca4a007cbb9ef = []byte{ + // 407 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x52, 0x4f, 0x6f, 0xd3, 0x30, + 0x14, 0xa7, 0x19, 0x6c, 0xe0, 0x49, 0x60, 0x59, 0x20, 0x34, 0x10, 0x3b, 0x54, 0xe2, 0xc0, 0x01, + 0xa7, 0x68, 0x07, 0x0e, 0x70, 0x79, 0x8d, 0x1f, 0x91, 0x45, 0x6a, 0x47, 0x49, 0x9a, 0x22, 0x54, + 0xc9, 0x2a, 0x6d, 0x14, 0x4d, 0xda, 0xe2, 0x29, 0x1e, 0xfd, 0x40, 0x1c, 0xf9, 0x28, 0x9c, 0xe0, + 0x93, 0xf0, 0x15, 0x50, 0xe2, 0xb5, 0x1c, 0xd6, 0xf5, 0xe4, 0x9f, 0xfc, 0xfb, 0xf3, 0xa4, 0xf7, + 0x7b, 0xe4, 0x63, 0x6d, 0x6d, 0x7d, 0x51, 0x85, 0x8b, 0x95, 0x0b, 0x3d, 0xec, 0xd0, 0x7a, 0x14, + 0x56, 0x6d, 0x6b, 0x5b, 0x17, 0x2e, 0x6d, 0xb3, 0xae, 0x5a, 0x77, 0x6e, 0x1b, 0xb3, 0x58, 0x5e, + 0x77, 0x4f, 0x4f, 0xf0, 0xab, 0xd6, 0x5e, 0x5b, 0x76, 0xea, 0x2d, 0x7c, 0xb1, 0x72, 0x7c, 0xeb, + 0xe6, 0xeb, 0x11, 0xf7, 0xee, 0xe1, 0xdf, 0x80, 0x9c, 0x44, 0xdb, 0x04, 0xe8, 0x03, 0xb0, 0xa3, + 0xb0, 0xf9, 0x7e, 0x39, 0xfc, 0x13, 0x90, 0x67, 0x3b, 0x59, 0xf6, 0x84, 0x1c, 0x4f, 0x55, 0x9e, + 0x62, 0x24, 0x3f, 0x49, 0x14, 0xf4, 0x1e, 0x3b, 0x26, 0x47, 0x53, 0xf5, 0x59, 0xe9, 0x99, 0xa2, + 0x03, 0xc6, 0xc8, 0x63, 0x31, 0x4d, 0x13, 0x19, 0x41, 0x81, 0x46, 0xc1, 0x04, 0x69, 0xc0, 0x9e, + 0x12, 0xfa, 0xff, 0x0f, 0xd2, 0xd4, 0x48, 0x41, 0x0f, 0xd8, 0x7b, 0x72, 0x56, 0xcc, 0xb4, 0x89, + 0xb4, 0x2a, 0x31, 0xcb, 0xa5, 0x56, 0x06, 0xa2, 0x42, 0x6a, 0x95, 0x9b, 0xb1, 0x14, 0x42, 0xaa, + 0xd8, 0x68, 0x65, 0x72, 0x98, 0x78, 0x8b, 0xd0, 0x33, 0x95, 0x68, 0x10, 0xf4, 0x3e, 0x7b, 0x47, + 0xde, 0xee, 0x53, 0x18, 0xc8, 0x4d, 0x9c, 0xe8, 0x31, 0x24, 0x37, 0x81, 0xf4, 0x01, 0x7b, 0x43, + 0x5e, 0x0b, 0x28, 0xc0, 0x88, 0x4c, 0x96, 0xa8, 0xcc, 0x44, 0x0b, 0x4c, 0xcc, 0x0c, 0x72, 0xa3, + 0xb0, 0xc4, 0xcc, 0xc4, 0xa8, 0x30, 0x83, 0x02, 0x05, 0x3d, 0x64, 0xaf, 0xc8, 0xc9, 0x6d, 0x29, + 0x7e, 0x49, 0x65, 0x86, 0x82, 0x1e, 0xb1, 0x97, 0xe4, 0xf9, 0x6d, 0x3a, 0x2f, 0x20, 0x41, 0xfa, + 0x70, 0xb7, 0x77, 0xb3, 0x9b, 0x47, 0xe3, 0xdf, 0x03, 0x32, 0x5c, 0xda, 0x4b, 0xbe, 0xbf, 0x98, + 0xf1, 0x8b, 0x9d, 0x7b, 0x4f, 0xbb, 0x52, 0xd3, 0xc1, 0x57, 0x71, 0xe3, 0xae, 0xed, 0xc5, 0xa2, + 0xa9, 0xb9, 0x6d, 0xeb, 0xb0, 0xae, 0x9a, 0xbe, 0xf2, 0xcd, 0x91, 0x5c, 0x9d, 0xbb, 0xbb, 0x6e, + 0xe6, 0x83, 0x7f, 0x7e, 0x04, 0x07, 0x31, 0xc0, 0xcf, 0xe0, 0x34, 0xf6, 0x61, 0xb0, 0x72, 0xdc, + 0xc3, 0x0e, 0x95, 0x23, 0xde, 0x8f, 0x74, 0xbf, 0x36, 0x82, 0x39, 0xac, 0xdc, 0x7c, 0x2b, 0x98, + 0x97, 0xa3, 0xb9, 0x17, 0x7c, 0x3b, 0xec, 0x07, 0x9f, 0xfd, 0x0b, 0x00, 0x00, 0xff, 0xff, 0x82, + 0x96, 0xeb, 0x1a, 0xab, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/criterion_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/criterion_error.pb.go new file mode 100644 index 000000000..b4a054c70 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/criterion_error.pb.go @@ -0,0 +1,544 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/criterion_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible criterion errors. +type CriterionErrorEnum_CriterionError int32 + +const ( + // Enum unspecified. + CriterionErrorEnum_UNSPECIFIED CriterionErrorEnum_CriterionError = 0 + // The received error code is not known in this version. + CriterionErrorEnum_UNKNOWN CriterionErrorEnum_CriterionError = 1 + // Concrete type of criterion is required for CREATE and UPDATE operations. + CriterionErrorEnum_CONCRETE_TYPE_REQUIRED CriterionErrorEnum_CriterionError = 2 + // The category requested for exclusion is invalid. + CriterionErrorEnum_INVALID_EXCLUDED_CATEGORY CriterionErrorEnum_CriterionError = 3 + // Invalid keyword criteria text. + CriterionErrorEnum_INVALID_KEYWORD_TEXT CriterionErrorEnum_CriterionError = 4 + // Keyword text should be less than 80 chars. + CriterionErrorEnum_KEYWORD_TEXT_TOO_LONG CriterionErrorEnum_CriterionError = 5 + // Keyword text has too many words. + CriterionErrorEnum_KEYWORD_HAS_TOO_MANY_WORDS CriterionErrorEnum_CriterionError = 6 + // Keyword text has invalid characters or symbols. + CriterionErrorEnum_KEYWORD_HAS_INVALID_CHARS CriterionErrorEnum_CriterionError = 7 + // Invalid placement URL. + CriterionErrorEnum_INVALID_PLACEMENT_URL CriterionErrorEnum_CriterionError = 8 + // Invalid user list criterion. + CriterionErrorEnum_INVALID_USER_LIST CriterionErrorEnum_CriterionError = 9 + // Invalid user interest criterion. + CriterionErrorEnum_INVALID_USER_INTEREST CriterionErrorEnum_CriterionError = 10 + // Placement URL has wrong format. + CriterionErrorEnum_INVALID_FORMAT_FOR_PLACEMENT_URL CriterionErrorEnum_CriterionError = 11 + // Placement URL is too long. + CriterionErrorEnum_PLACEMENT_URL_IS_TOO_LONG CriterionErrorEnum_CriterionError = 12 + // Indicates the URL contains an illegal character. + CriterionErrorEnum_PLACEMENT_URL_HAS_ILLEGAL_CHAR CriterionErrorEnum_CriterionError = 13 + // Indicates the URL contains multiple comma separated URLs. + CriterionErrorEnum_PLACEMENT_URL_HAS_MULTIPLE_SITES_IN_LINE CriterionErrorEnum_CriterionError = 14 + // Indicates the domain is blacklisted. + CriterionErrorEnum_PLACEMENT_IS_NOT_AVAILABLE_FOR_TARGETING_OR_EXCLUSION CriterionErrorEnum_CriterionError = 15 + // Invalid topic path. + CriterionErrorEnum_INVALID_TOPIC_PATH CriterionErrorEnum_CriterionError = 16 + // The YouTube Channel Id is invalid. + CriterionErrorEnum_INVALID_YOUTUBE_CHANNEL_ID CriterionErrorEnum_CriterionError = 17 + // The YouTube Video Id is invalid. + CriterionErrorEnum_INVALID_YOUTUBE_VIDEO_ID CriterionErrorEnum_CriterionError = 18 + // Indicates the placement is a YouTube vertical channel, which is no longer + // supported. + CriterionErrorEnum_YOUTUBE_VERTICAL_CHANNEL_DEPRECATED CriterionErrorEnum_CriterionError = 19 + // Indicates the placement is a YouTube demographic channel, which is no + // longer supported. + CriterionErrorEnum_YOUTUBE_DEMOGRAPHIC_CHANNEL_DEPRECATED CriterionErrorEnum_CriterionError = 20 + // YouTube urls are not supported in Placement criterion. Use YouTubeChannel + // and YouTubeVideo criterion instead. + CriterionErrorEnum_YOUTUBE_URL_UNSUPPORTED CriterionErrorEnum_CriterionError = 21 + // Criteria type can not be excluded by the customer, like AOL account type + // cannot target site type criteria. + CriterionErrorEnum_CANNOT_EXCLUDE_CRITERIA_TYPE CriterionErrorEnum_CriterionError = 22 + // Criteria type can not be targeted. + CriterionErrorEnum_CANNOT_ADD_CRITERIA_TYPE CriterionErrorEnum_CriterionError = 23 + // Product filter in the product criteria has invalid characters. Operand + // and the argument in the filter can not have "==" or "&+". + CriterionErrorEnum_INVALID_PRODUCT_FILTER CriterionErrorEnum_CriterionError = 24 + // Product filter in the product criteria is translated to a string as + // operand1==argument1&+operand2==argument2, maximum allowed length for the + // string is 255 chars. + CriterionErrorEnum_PRODUCT_FILTER_TOO_LONG CriterionErrorEnum_CriterionError = 25 + // Not allowed to exclude similar user list. + CriterionErrorEnum_CANNOT_EXCLUDE_SIMILAR_USER_LIST CriterionErrorEnum_CriterionError = 26 + // Not allowed to target a closed user list. + CriterionErrorEnum_CANNOT_ADD_CLOSED_USER_LIST CriterionErrorEnum_CriterionError = 27 + // Not allowed to add display only UserLists to search only campaigns. + CriterionErrorEnum_CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SEARCH_ONLY_CAMPAIGNS CriterionErrorEnum_CriterionError = 28 + // Not allowed to add display only UserLists to search plus campaigns. + CriterionErrorEnum_CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SEARCH_CAMPAIGNS CriterionErrorEnum_CriterionError = 29 + // Not allowed to add display only UserLists to shopping campaigns. + CriterionErrorEnum_CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SHOPPING_CAMPAIGNS CriterionErrorEnum_CriterionError = 30 + // Not allowed to add User interests to search only campaigns. + CriterionErrorEnum_CANNOT_ADD_USER_INTERESTS_TO_SEARCH_CAMPAIGNS CriterionErrorEnum_CriterionError = 31 + // Not allowed to set bids for this criterion type in search campaigns + CriterionErrorEnum_CANNOT_SET_BIDS_ON_CRITERION_TYPE_IN_SEARCH_CAMPAIGNS CriterionErrorEnum_CriterionError = 32 + // Final URLs, URL Templates and CustomParameters cannot be set for the + // criterion types of Gender, AgeRange, UserList, Placement, MobileApp, and + // MobileAppCategory in search campaigns and shopping campaigns. + CriterionErrorEnum_CANNOT_ADD_URLS_TO_CRITERION_TYPE_FOR_CAMPAIGN_TYPE CriterionErrorEnum_CriterionError = 33 + // IP address is not valid. + CriterionErrorEnum_INVALID_IP_ADDRESS CriterionErrorEnum_CriterionError = 34 + // IP format is not valid. + CriterionErrorEnum_INVALID_IP_FORMAT CriterionErrorEnum_CriterionError = 35 + // Mobile application is not valid. + CriterionErrorEnum_INVALID_MOBILE_APP CriterionErrorEnum_CriterionError = 36 + // Mobile application category is not valid. + CriterionErrorEnum_INVALID_MOBILE_APP_CATEGORY CriterionErrorEnum_CriterionError = 37 + // The CriterionId does not exist or is of the incorrect type. + CriterionErrorEnum_INVALID_CRITERION_ID CriterionErrorEnum_CriterionError = 38 + // The Criterion is not allowed to be targeted. + CriterionErrorEnum_CANNOT_TARGET_CRITERION CriterionErrorEnum_CriterionError = 39 + // The criterion is not allowed to be targeted as it is deprecated. + CriterionErrorEnum_CANNOT_TARGET_OBSOLETE_CRITERION CriterionErrorEnum_CriterionError = 40 + // The CriterionId is not valid for the type. + CriterionErrorEnum_CRITERION_ID_AND_TYPE_MISMATCH CriterionErrorEnum_CriterionError = 41 + // Distance for the radius for the proximity criterion is invalid. + CriterionErrorEnum_INVALID_PROXIMITY_RADIUS CriterionErrorEnum_CriterionError = 42 + // Units for the distance for the radius for the proximity criterion is + // invalid. + CriterionErrorEnum_INVALID_PROXIMITY_RADIUS_UNITS CriterionErrorEnum_CriterionError = 43 + // Street address in the address is not valid. + CriterionErrorEnum_INVALID_STREETADDRESS_LENGTH CriterionErrorEnum_CriterionError = 44 + // City name in the address is not valid. + CriterionErrorEnum_INVALID_CITYNAME_LENGTH CriterionErrorEnum_CriterionError = 45 + // Region code in the address is not valid. + CriterionErrorEnum_INVALID_REGIONCODE_LENGTH CriterionErrorEnum_CriterionError = 46 + // Region name in the address is not valid. + CriterionErrorEnum_INVALID_REGIONNAME_LENGTH CriterionErrorEnum_CriterionError = 47 + // Postal code in the address is not valid. + CriterionErrorEnum_INVALID_POSTALCODE_LENGTH CriterionErrorEnum_CriterionError = 48 + // Country code in the address is not valid. + CriterionErrorEnum_INVALID_COUNTRY_CODE CriterionErrorEnum_CriterionError = 49 + // Latitude for the GeoPoint is not valid. + CriterionErrorEnum_INVALID_LATITUDE CriterionErrorEnum_CriterionError = 50 + // Longitude for the GeoPoint is not valid. + CriterionErrorEnum_INVALID_LONGITUDE CriterionErrorEnum_CriterionError = 51 + // The Proximity input is not valid. Both address and geoPoint cannot be + // null. + CriterionErrorEnum_PROXIMITY_GEOPOINT_AND_ADDRESS_BOTH_CANNOT_BE_NULL CriterionErrorEnum_CriterionError = 52 + // The Proximity address cannot be geocoded to a valid lat/long. + CriterionErrorEnum_INVALID_PROXIMITY_ADDRESS CriterionErrorEnum_CriterionError = 53 + // User domain name is not valid. + CriterionErrorEnum_INVALID_USER_DOMAIN_NAME CriterionErrorEnum_CriterionError = 54 + // Length of serialized criterion parameter exceeded size limit. + CriterionErrorEnum_CRITERION_PARAMETER_TOO_LONG CriterionErrorEnum_CriterionError = 55 + // Time interval in the AdSchedule overlaps with another AdSchedule. + CriterionErrorEnum_AD_SCHEDULE_TIME_INTERVALS_OVERLAP CriterionErrorEnum_CriterionError = 56 + // AdSchedule time interval cannot span multiple days. + CriterionErrorEnum_AD_SCHEDULE_INTERVAL_CANNOT_SPAN_MULTIPLE_DAYS CriterionErrorEnum_CriterionError = 57 + // AdSchedule time interval specified is invalid, endTime cannot be earlier + // than startTime. + CriterionErrorEnum_AD_SCHEDULE_INVALID_TIME_INTERVAL CriterionErrorEnum_CriterionError = 58 + // The number of AdSchedule entries in a day exceeds the limit. + CriterionErrorEnum_AD_SCHEDULE_EXCEEDED_INTERVALS_PER_DAY_LIMIT CriterionErrorEnum_CriterionError = 59 + // CriteriaId does not match the interval of the AdSchedule specified. + CriterionErrorEnum_AD_SCHEDULE_CRITERION_ID_MISMATCHING_FIELDS CriterionErrorEnum_CriterionError = 60 + // Cannot set bid modifier for this criterion type. + CriterionErrorEnum_CANNOT_BID_MODIFY_CRITERION_TYPE CriterionErrorEnum_CriterionError = 61 + // Cannot bid modify criterion, since it is opted out of the campaign. + CriterionErrorEnum_CANNOT_BID_MODIFY_CRITERION_CAMPAIGN_OPTED_OUT CriterionErrorEnum_CriterionError = 62 + // Cannot set bid modifier for a negative criterion. + CriterionErrorEnum_CANNOT_BID_MODIFY_NEGATIVE_CRITERION CriterionErrorEnum_CriterionError = 63 + // Bid Modifier already exists. Use SET operation to update. + CriterionErrorEnum_BID_MODIFIER_ALREADY_EXISTS CriterionErrorEnum_CriterionError = 64 + // Feed Id is not allowed in these Location Groups. + CriterionErrorEnum_FEED_ID_NOT_ALLOWED CriterionErrorEnum_CriterionError = 65 + // The account may not use the requested criteria type. For example, some + // accounts are restricted to keywords only. + CriterionErrorEnum_ACCOUNT_INELIGIBLE_FOR_CRITERIA_TYPE CriterionErrorEnum_CriterionError = 66 + // The requested criteria type cannot be used with campaign or ad group + // bidding strategy. + CriterionErrorEnum_CRITERIA_TYPE_INVALID_FOR_BIDDING_STRATEGY CriterionErrorEnum_CriterionError = 67 + // The Criterion is not allowed to be excluded. + CriterionErrorEnum_CANNOT_EXCLUDE_CRITERION CriterionErrorEnum_CriterionError = 68 + // The criterion is not allowed to be removed. For example, we cannot remove + // any of the device criterion. + CriterionErrorEnum_CANNOT_REMOVE_CRITERION CriterionErrorEnum_CriterionError = 69 + // The combined length of product dimension values of the product scope + // criterion is too long. + CriterionErrorEnum_PRODUCT_SCOPE_TOO_LONG CriterionErrorEnum_CriterionError = 70 + // Product scope contains too many dimensions. + CriterionErrorEnum_PRODUCT_SCOPE_TOO_MANY_DIMENSIONS CriterionErrorEnum_CriterionError = 71 + // The combined length of product dimension values of the product partition + // criterion is too long. + CriterionErrorEnum_PRODUCT_PARTITION_TOO_LONG CriterionErrorEnum_CriterionError = 72 + // Product partition contains too many dimensions. + CriterionErrorEnum_PRODUCT_PARTITION_TOO_MANY_DIMENSIONS CriterionErrorEnum_CriterionError = 73 + // The product dimension is invalid (e.g. dimension contains illegal value, + // dimension type is represented with wrong class, etc). Product dimension + // value can not contain "==" or "&+". + CriterionErrorEnum_INVALID_PRODUCT_DIMENSION CriterionErrorEnum_CriterionError = 74 + // Product dimension type is either invalid for campaigns of this type or + // cannot be used in the current context. BIDDING_CATEGORY_Lx and + // PRODUCT_TYPE_Lx product dimensions must be used in ascending order of + // their levels: L1, L2, L3, L4, L5... The levels must be specified + // sequentially and start from L1. Furthermore, an "others" product + // partition cannot be subdivided with a dimension of the same type but of a + // higher level ("others" BIDDING_CATEGORY_L3 can be subdivided with BRAND + // but not with BIDDING_CATEGORY_L4). + CriterionErrorEnum_INVALID_PRODUCT_DIMENSION_TYPE CriterionErrorEnum_CriterionError = 75 + // Bidding categories do not form a valid path in the Shopping bidding + // category taxonomy. + CriterionErrorEnum_INVALID_PRODUCT_BIDDING_CATEGORY CriterionErrorEnum_CriterionError = 76 + // ShoppingSetting must be added to the campaign before ProductScope + // criteria can be added. + CriterionErrorEnum_MISSING_SHOPPING_SETTING CriterionErrorEnum_CriterionError = 77 + // Matching function is invalid. + CriterionErrorEnum_INVALID_MATCHING_FUNCTION CriterionErrorEnum_CriterionError = 78 + // Filter parameters not allowed for location groups targeting. + CriterionErrorEnum_LOCATION_FILTER_NOT_ALLOWED CriterionErrorEnum_CriterionError = 79 + // Given location filter parameter is invalid for location groups targeting. + CriterionErrorEnum_LOCATION_FILTER_INVALID CriterionErrorEnum_CriterionError = 80 + // Criteria type cannot be associated with a campaign and its ad group(s) + // simultaneously. + CriterionErrorEnum_CANNOT_ATTACH_CRITERIA_AT_CAMPAIGN_AND_ADGROUP CriterionErrorEnum_CriterionError = 81 + // Range represented by hotel length of stay's min nights and max nights + // overlaps with an existing criterion. + CriterionErrorEnum_HOTEL_LENGTH_OF_STAY_OVERLAPS_WITH_EXISTING_CRITERION CriterionErrorEnum_CriterionError = 82 + // Range represented by hotel advance booking window's min days and max days + // overlaps with an existing criterion. + CriterionErrorEnum_HOTEL_ADVANCE_BOOKING_WINDOW_OVERLAPS_WITH_EXISTING_CRITERION CriterionErrorEnum_CriterionError = 83 + // The field is not allowed to be set when the negative field is set to + // true, e.g. we don't allow bids in negative ad group or campaign criteria. + CriterionErrorEnum_FIELD_INCOMPATIBLE_WITH_NEGATIVE_TARGETING CriterionErrorEnum_CriterionError = 84 +) + +var CriterionErrorEnum_CriterionError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "CONCRETE_TYPE_REQUIRED", + 3: "INVALID_EXCLUDED_CATEGORY", + 4: "INVALID_KEYWORD_TEXT", + 5: "KEYWORD_TEXT_TOO_LONG", + 6: "KEYWORD_HAS_TOO_MANY_WORDS", + 7: "KEYWORD_HAS_INVALID_CHARS", + 8: "INVALID_PLACEMENT_URL", + 9: "INVALID_USER_LIST", + 10: "INVALID_USER_INTEREST", + 11: "INVALID_FORMAT_FOR_PLACEMENT_URL", + 12: "PLACEMENT_URL_IS_TOO_LONG", + 13: "PLACEMENT_URL_HAS_ILLEGAL_CHAR", + 14: "PLACEMENT_URL_HAS_MULTIPLE_SITES_IN_LINE", + 15: "PLACEMENT_IS_NOT_AVAILABLE_FOR_TARGETING_OR_EXCLUSION", + 16: "INVALID_TOPIC_PATH", + 17: "INVALID_YOUTUBE_CHANNEL_ID", + 18: "INVALID_YOUTUBE_VIDEO_ID", + 19: "YOUTUBE_VERTICAL_CHANNEL_DEPRECATED", + 20: "YOUTUBE_DEMOGRAPHIC_CHANNEL_DEPRECATED", + 21: "YOUTUBE_URL_UNSUPPORTED", + 22: "CANNOT_EXCLUDE_CRITERIA_TYPE", + 23: "CANNOT_ADD_CRITERIA_TYPE", + 24: "INVALID_PRODUCT_FILTER", + 25: "PRODUCT_FILTER_TOO_LONG", + 26: "CANNOT_EXCLUDE_SIMILAR_USER_LIST", + 27: "CANNOT_ADD_CLOSED_USER_LIST", + 28: "CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SEARCH_ONLY_CAMPAIGNS", + 29: "CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SEARCH_CAMPAIGNS", + 30: "CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SHOPPING_CAMPAIGNS", + 31: "CANNOT_ADD_USER_INTERESTS_TO_SEARCH_CAMPAIGNS", + 32: "CANNOT_SET_BIDS_ON_CRITERION_TYPE_IN_SEARCH_CAMPAIGNS", + 33: "CANNOT_ADD_URLS_TO_CRITERION_TYPE_FOR_CAMPAIGN_TYPE", + 34: "INVALID_IP_ADDRESS", + 35: "INVALID_IP_FORMAT", + 36: "INVALID_MOBILE_APP", + 37: "INVALID_MOBILE_APP_CATEGORY", + 38: "INVALID_CRITERION_ID", + 39: "CANNOT_TARGET_CRITERION", + 40: "CANNOT_TARGET_OBSOLETE_CRITERION", + 41: "CRITERION_ID_AND_TYPE_MISMATCH", + 42: "INVALID_PROXIMITY_RADIUS", + 43: "INVALID_PROXIMITY_RADIUS_UNITS", + 44: "INVALID_STREETADDRESS_LENGTH", + 45: "INVALID_CITYNAME_LENGTH", + 46: "INVALID_REGIONCODE_LENGTH", + 47: "INVALID_REGIONNAME_LENGTH", + 48: "INVALID_POSTALCODE_LENGTH", + 49: "INVALID_COUNTRY_CODE", + 50: "INVALID_LATITUDE", + 51: "INVALID_LONGITUDE", + 52: "PROXIMITY_GEOPOINT_AND_ADDRESS_BOTH_CANNOT_BE_NULL", + 53: "INVALID_PROXIMITY_ADDRESS", + 54: "INVALID_USER_DOMAIN_NAME", + 55: "CRITERION_PARAMETER_TOO_LONG", + 56: "AD_SCHEDULE_TIME_INTERVALS_OVERLAP", + 57: "AD_SCHEDULE_INTERVAL_CANNOT_SPAN_MULTIPLE_DAYS", + 58: "AD_SCHEDULE_INVALID_TIME_INTERVAL", + 59: "AD_SCHEDULE_EXCEEDED_INTERVALS_PER_DAY_LIMIT", + 60: "AD_SCHEDULE_CRITERION_ID_MISMATCHING_FIELDS", + 61: "CANNOT_BID_MODIFY_CRITERION_TYPE", + 62: "CANNOT_BID_MODIFY_CRITERION_CAMPAIGN_OPTED_OUT", + 63: "CANNOT_BID_MODIFY_NEGATIVE_CRITERION", + 64: "BID_MODIFIER_ALREADY_EXISTS", + 65: "FEED_ID_NOT_ALLOWED", + 66: "ACCOUNT_INELIGIBLE_FOR_CRITERIA_TYPE", + 67: "CRITERIA_TYPE_INVALID_FOR_BIDDING_STRATEGY", + 68: "CANNOT_EXCLUDE_CRITERION", + 69: "CANNOT_REMOVE_CRITERION", + 70: "PRODUCT_SCOPE_TOO_LONG", + 71: "PRODUCT_SCOPE_TOO_MANY_DIMENSIONS", + 72: "PRODUCT_PARTITION_TOO_LONG", + 73: "PRODUCT_PARTITION_TOO_MANY_DIMENSIONS", + 74: "INVALID_PRODUCT_DIMENSION", + 75: "INVALID_PRODUCT_DIMENSION_TYPE", + 76: "INVALID_PRODUCT_BIDDING_CATEGORY", + 77: "MISSING_SHOPPING_SETTING", + 78: "INVALID_MATCHING_FUNCTION", + 79: "LOCATION_FILTER_NOT_ALLOWED", + 80: "LOCATION_FILTER_INVALID", + 81: "CANNOT_ATTACH_CRITERIA_AT_CAMPAIGN_AND_ADGROUP", + 82: "HOTEL_LENGTH_OF_STAY_OVERLAPS_WITH_EXISTING_CRITERION", + 83: "HOTEL_ADVANCE_BOOKING_WINDOW_OVERLAPS_WITH_EXISTING_CRITERION", + 84: "FIELD_INCOMPATIBLE_WITH_NEGATIVE_TARGETING", +} +var CriterionErrorEnum_CriterionError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "CONCRETE_TYPE_REQUIRED": 2, + "INVALID_EXCLUDED_CATEGORY": 3, + "INVALID_KEYWORD_TEXT": 4, + "KEYWORD_TEXT_TOO_LONG": 5, + "KEYWORD_HAS_TOO_MANY_WORDS": 6, + "KEYWORD_HAS_INVALID_CHARS": 7, + "INVALID_PLACEMENT_URL": 8, + "INVALID_USER_LIST": 9, + "INVALID_USER_INTEREST": 10, + "INVALID_FORMAT_FOR_PLACEMENT_URL": 11, + "PLACEMENT_URL_IS_TOO_LONG": 12, + "PLACEMENT_URL_HAS_ILLEGAL_CHAR": 13, + "PLACEMENT_URL_HAS_MULTIPLE_SITES_IN_LINE": 14, + "PLACEMENT_IS_NOT_AVAILABLE_FOR_TARGETING_OR_EXCLUSION": 15, + "INVALID_TOPIC_PATH": 16, + "INVALID_YOUTUBE_CHANNEL_ID": 17, + "INVALID_YOUTUBE_VIDEO_ID": 18, + "YOUTUBE_VERTICAL_CHANNEL_DEPRECATED": 19, + "YOUTUBE_DEMOGRAPHIC_CHANNEL_DEPRECATED": 20, + "YOUTUBE_URL_UNSUPPORTED": 21, + "CANNOT_EXCLUDE_CRITERIA_TYPE": 22, + "CANNOT_ADD_CRITERIA_TYPE": 23, + "INVALID_PRODUCT_FILTER": 24, + "PRODUCT_FILTER_TOO_LONG": 25, + "CANNOT_EXCLUDE_SIMILAR_USER_LIST": 26, + "CANNOT_ADD_CLOSED_USER_LIST": 27, + "CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SEARCH_ONLY_CAMPAIGNS": 28, + "CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SEARCH_CAMPAIGNS": 29, + "CANNOT_ADD_DISPLAY_ONLY_LISTS_TO_SHOPPING_CAMPAIGNS": 30, + "CANNOT_ADD_USER_INTERESTS_TO_SEARCH_CAMPAIGNS": 31, + "CANNOT_SET_BIDS_ON_CRITERION_TYPE_IN_SEARCH_CAMPAIGNS": 32, + "CANNOT_ADD_URLS_TO_CRITERION_TYPE_FOR_CAMPAIGN_TYPE": 33, + "INVALID_IP_ADDRESS": 34, + "INVALID_IP_FORMAT": 35, + "INVALID_MOBILE_APP": 36, + "INVALID_MOBILE_APP_CATEGORY": 37, + "INVALID_CRITERION_ID": 38, + "CANNOT_TARGET_CRITERION": 39, + "CANNOT_TARGET_OBSOLETE_CRITERION": 40, + "CRITERION_ID_AND_TYPE_MISMATCH": 41, + "INVALID_PROXIMITY_RADIUS": 42, + "INVALID_PROXIMITY_RADIUS_UNITS": 43, + "INVALID_STREETADDRESS_LENGTH": 44, + "INVALID_CITYNAME_LENGTH": 45, + "INVALID_REGIONCODE_LENGTH": 46, + "INVALID_REGIONNAME_LENGTH": 47, + "INVALID_POSTALCODE_LENGTH": 48, + "INVALID_COUNTRY_CODE": 49, + "INVALID_LATITUDE": 50, + "INVALID_LONGITUDE": 51, + "PROXIMITY_GEOPOINT_AND_ADDRESS_BOTH_CANNOT_BE_NULL": 52, + "INVALID_PROXIMITY_ADDRESS": 53, + "INVALID_USER_DOMAIN_NAME": 54, + "CRITERION_PARAMETER_TOO_LONG": 55, + "AD_SCHEDULE_TIME_INTERVALS_OVERLAP": 56, + "AD_SCHEDULE_INTERVAL_CANNOT_SPAN_MULTIPLE_DAYS": 57, + "AD_SCHEDULE_INVALID_TIME_INTERVAL": 58, + "AD_SCHEDULE_EXCEEDED_INTERVALS_PER_DAY_LIMIT": 59, + "AD_SCHEDULE_CRITERION_ID_MISMATCHING_FIELDS": 60, + "CANNOT_BID_MODIFY_CRITERION_TYPE": 61, + "CANNOT_BID_MODIFY_CRITERION_CAMPAIGN_OPTED_OUT": 62, + "CANNOT_BID_MODIFY_NEGATIVE_CRITERION": 63, + "BID_MODIFIER_ALREADY_EXISTS": 64, + "FEED_ID_NOT_ALLOWED": 65, + "ACCOUNT_INELIGIBLE_FOR_CRITERIA_TYPE": 66, + "CRITERIA_TYPE_INVALID_FOR_BIDDING_STRATEGY": 67, + "CANNOT_EXCLUDE_CRITERION": 68, + "CANNOT_REMOVE_CRITERION": 69, + "PRODUCT_SCOPE_TOO_LONG": 70, + "PRODUCT_SCOPE_TOO_MANY_DIMENSIONS": 71, + "PRODUCT_PARTITION_TOO_LONG": 72, + "PRODUCT_PARTITION_TOO_MANY_DIMENSIONS": 73, + "INVALID_PRODUCT_DIMENSION": 74, + "INVALID_PRODUCT_DIMENSION_TYPE": 75, + "INVALID_PRODUCT_BIDDING_CATEGORY": 76, + "MISSING_SHOPPING_SETTING": 77, + "INVALID_MATCHING_FUNCTION": 78, + "LOCATION_FILTER_NOT_ALLOWED": 79, + "LOCATION_FILTER_INVALID": 80, + "CANNOT_ATTACH_CRITERIA_AT_CAMPAIGN_AND_ADGROUP": 81, + "HOTEL_LENGTH_OF_STAY_OVERLAPS_WITH_EXISTING_CRITERION": 82, + "HOTEL_ADVANCE_BOOKING_WINDOW_OVERLAPS_WITH_EXISTING_CRITERION": 83, + "FIELD_INCOMPATIBLE_WITH_NEGATIVE_TARGETING": 84, +} + +func (x CriterionErrorEnum_CriterionError) String() string { + return proto.EnumName(CriterionErrorEnum_CriterionError_name, int32(x)) +} +func (CriterionErrorEnum_CriterionError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_criterion_error_e6ddf5f52ad99d20, []int{0, 0} +} + +// Container for enum describing possible criterion errors. +type CriterionErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CriterionErrorEnum) Reset() { *m = CriterionErrorEnum{} } +func (m *CriterionErrorEnum) String() string { return proto.CompactTextString(m) } +func (*CriterionErrorEnum) ProtoMessage() {} +func (*CriterionErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_criterion_error_e6ddf5f52ad99d20, []int{0} +} +func (m *CriterionErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CriterionErrorEnum.Unmarshal(m, b) +} +func (m *CriterionErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CriterionErrorEnum.Marshal(b, m, deterministic) +} +func (dst *CriterionErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_CriterionErrorEnum.Merge(dst, src) +} +func (m *CriterionErrorEnum) XXX_Size() int { + return xxx_messageInfo_CriterionErrorEnum.Size(m) +} +func (m *CriterionErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_CriterionErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_CriterionErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*CriterionErrorEnum)(nil), "google.ads.googleads.v0.errors.CriterionErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.CriterionErrorEnum_CriterionError", CriterionErrorEnum_CriterionError_name, CriterionErrorEnum_CriterionError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/criterion_error.proto", fileDescriptor_criterion_error_e6ddf5f52ad99d20) +} + +var fileDescriptor_criterion_error_e6ddf5f52ad99d20 = []byte{ + // 1443 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x57, 0xe9, 0x72, 0x54, 0xbb, + 0x11, 0x0e, 0x90, 0x40, 0x22, 0x12, 0x10, 0x62, 0x33, 0x9b, 0x01, 0xb3, 0x6f, 0x63, 0xb3, 0x07, + 0x08, 0x49, 0x34, 0x47, 0x3d, 0x67, 0x14, 0xeb, 0x48, 0x42, 0xd2, 0x19, 0x7b, 0x52, 0xae, 0x52, + 0x11, 0xec, 0x72, 0x51, 0x05, 0x1e, 0xca, 0x26, 0xbc, 0x43, 0xde, 0x22, 0x95, 0x9f, 0x79, 0x93, + 0x7b, 0x9f, 0xea, 0x56, 0x9f, 0x33, 0x9a, 0xd1, 0x8c, 0x59, 0xee, 0xaf, 0x99, 0xea, 0xfe, 0x5a, + 0xea, 0xe5, 0xeb, 0xee, 0x23, 0xf2, 0x64, 0x7b, 0x34, 0xda, 0xfe, 0xb0, 0xb5, 0xfc, 0x76, 0x73, + 0x6f, 0xb9, 0xfd, 0x8b, 0xff, 0xbe, 0xac, 0x2c, 0x6f, 0xed, 0xee, 0x8e, 0x76, 0xf7, 0x96, 0xdf, + 0xed, 0xbe, 0xff, 0xbc, 0xb5, 0xfb, 0x7e, 0xb4, 0x13, 0x1b, 0x41, 0xe7, 0xd3, 0xee, 0xe8, 0xf3, + 0x88, 0x2d, 0xb6, 0xd0, 0xce, 0xdb, 0xcd, 0xbd, 0xce, 0xc4, 0xaa, 0xf3, 0x65, 0xa5, 0xd3, 0x5a, + 0x2d, 0xfd, 0x77, 0x81, 0xb0, 0x22, 0x59, 0x02, 0xca, 0x60, 0xe7, 0xdf, 0x1f, 0x97, 0xfe, 0xb3, + 0x40, 0x8e, 0xcd, 0x8a, 0xd9, 0x71, 0x72, 0xb4, 0xd6, 0xde, 0x42, 0x21, 0x7b, 0x12, 0x04, 0xfd, + 0x0d, 0x3b, 0x4a, 0x8e, 0xd4, 0x7a, 0x55, 0x9b, 0x35, 0x4d, 0x0f, 0xb0, 0xf3, 0xe4, 0x4c, 0x61, + 0x74, 0xe1, 0x20, 0x40, 0x0c, 0x43, 0x0b, 0xd1, 0xc1, 0x9b, 0x5a, 0x3a, 0x10, 0xf4, 0x20, 0xbb, + 0x44, 0xce, 0x49, 0x3d, 0xe0, 0x4a, 0x8a, 0x08, 0xeb, 0x85, 0xaa, 0x05, 0x88, 0x58, 0xf0, 0x00, + 0xa5, 0x71, 0x43, 0x7a, 0x88, 0x2d, 0x90, 0x53, 0x49, 0xbd, 0x0a, 0xc3, 0x35, 0xe3, 0x44, 0x0c, + 0xb0, 0x1e, 0xe8, 0x6f, 0xd9, 0x39, 0x72, 0x3a, 0x97, 0xc4, 0x60, 0x4c, 0x54, 0x46, 0x97, 0xf4, + 0x77, 0x6c, 0x91, 0x9c, 0x4f, 0xaa, 0x3e, 0xf7, 0x8d, 0xa6, 0xe2, 0x7a, 0x18, 0x51, 0xe2, 0xe9, + 0x61, 0xbc, 0x33, 0xd7, 0xa7, 0x0b, 0x8a, 0x3e, 0x77, 0x9e, 0x1e, 0xc1, 0x93, 0x93, 0xc8, 0x2a, + 0x5e, 0x40, 0x05, 0x3a, 0xc4, 0xda, 0x29, 0xfa, 0x7b, 0x76, 0x9a, 0x9c, 0x48, 0xaa, 0xda, 0x83, + 0x8b, 0x4a, 0xfa, 0x40, 0xff, 0x90, 0x5b, 0x34, 0x62, 0xa9, 0x03, 0x38, 0xf0, 0x81, 0x12, 0x76, + 0x9d, 0x5c, 0x49, 0xaa, 0x9e, 0x71, 0x15, 0x0f, 0xf8, 0x33, 0x77, 0xee, 0x51, 0xf4, 0x68, 0x46, + 0x14, 0xa5, 0x9f, 0x06, 0xf4, 0x47, 0xb6, 0x44, 0x16, 0x67, 0xd5, 0x8d, 0xdb, 0x4a, 0x41, 0xc9, + 0x55, 0xe3, 0x36, 0xfd, 0x13, 0xbb, 0x4f, 0x6e, 0xef, 0xc7, 0x54, 0xb5, 0x0a, 0xd2, 0x2a, 0x88, + 0x5e, 0x06, 0xc0, 0x48, 0xa3, 0x92, 0x1a, 0xe8, 0x31, 0xf6, 0x82, 0x3c, 0x9d, 0xa2, 0xa5, 0x8f, + 0xda, 0x84, 0xc8, 0x07, 0x5c, 0x2a, 0xde, 0x55, 0xd0, 0xb8, 0x18, 0xb8, 0x2b, 0x21, 0x48, 0x5d, + 0x46, 0xe3, 0xda, 0xd2, 0x78, 0x69, 0x34, 0x3d, 0xce, 0xce, 0x10, 0x96, 0x22, 0x0a, 0xc6, 0xca, + 0x22, 0x5a, 0x1e, 0xfa, 0x94, 0x62, 0xd6, 0x93, 0x7c, 0x68, 0xea, 0x50, 0x77, 0x01, 0x5d, 0xd3, + 0x1a, 0x54, 0x94, 0x82, 0x9e, 0x60, 0x17, 0xc9, 0xc2, 0xbc, 0x7e, 0x20, 0x05, 0x18, 0xd4, 0x32, + 0x76, 0x8b, 0x5c, 0x9b, 0x48, 0xc1, 0x05, 0x59, 0xb4, 0x91, 0x35, 0xe6, 0x02, 0xac, 0x03, 0x24, + 0x85, 0xa0, 0x27, 0xd9, 0x5d, 0x72, 0x33, 0x01, 0x05, 0x54, 0xa6, 0x74, 0xdc, 0xf6, 0x65, 0xf1, + 0x35, 0xec, 0x29, 0x76, 0x81, 0x9c, 0x4d, 0x58, 0xcc, 0x48, 0xad, 0x7d, 0x6d, 0xad, 0x71, 0xa8, + 0x3c, 0xcd, 0xae, 0x90, 0x8b, 0x05, 0xd7, 0x18, 0xf8, 0x98, 0x78, 0xb1, 0x70, 0x32, 0x80, 0x93, + 0xbc, 0x21, 0x29, 0x3d, 0x83, 0x1e, 0x8f, 0x11, 0x5c, 0x88, 0x39, 0xed, 0x59, 0x64, 0xf5, 0x84, + 0x26, 0xce, 0x88, 0xba, 0x08, 0xb1, 0x27, 0x55, 0x00, 0x47, 0x17, 0xf0, 0xe2, 0x59, 0xd9, 0xb4, + 0x9a, 0xe7, 0x90, 0x12, 0x73, 0x17, 0x7b, 0x59, 0x49, 0xc5, 0x5d, 0xc6, 0xa9, 0xf3, 0xec, 0x32, + 0xb9, 0x90, 0x5f, 0xae, 0x8c, 0x87, 0x9c, 0x74, 0x17, 0xd8, 0x4b, 0xf2, 0x2c, 0x03, 0x08, 0xe9, + 0xad, 0xe2, 0xc3, 0x68, 0xb4, 0x1a, 0x36, 0x08, 0x24, 0x50, 0xf4, 0xc0, 0x5d, 0xd1, 0x6f, 0x85, + 0x05, 0xaf, 0x2c, 0x97, 0xa5, 0xf6, 0xf4, 0x22, 0x7b, 0x4a, 0x1e, 0xfe, 0x5a, 0xdb, 0xa9, 0xd9, + 0x25, 0xf6, 0x9c, 0x3c, 0xfe, 0xb1, 0x59, 0xdf, 0x58, 0x8b, 0xb4, 0x99, 0x1a, 0x2e, 0xb2, 0x87, + 0xe4, 0x41, 0x66, 0x38, 0xd3, 0x23, 0x5f, 0xbf, 0xeb, 0x32, 0x32, 0x74, 0x6c, 0xe2, 0x21, 0xc4, + 0xae, 0x14, 0x3e, 0x1a, 0x9d, 0x8a, 0x60, 0x74, 0x3b, 0x48, 0xa4, 0xde, 0x6f, 0x7a, 0x65, 0xce, + 0xcd, 0xda, 0xa9, 0xe6, 0x8e, 0x39, 0x53, 0xe4, 0x78, 0x32, 0x6a, 0x4b, 0x7a, 0x35, 0xa7, 0xb6, + 0xb4, 0x68, 0xec, 0xc0, 0x7b, 0xba, 0x94, 0xb7, 0xbd, 0xb4, 0xe3, 0x3e, 0xa6, 0xd7, 0x72, 0x78, + 0x65, 0xba, 0x52, 0x41, 0xe4, 0xd6, 0xd2, 0xeb, 0x58, 0xba, 0xfd, 0xf2, 0xe9, 0x54, 0xbb, 0x91, + 0x4f, 0xb5, 0xa9, 0x57, 0x52, 0xd0, 0x9b, 0x48, 0x9c, 0xb1, 0xeb, 0x6d, 0xff, 0x4d, 0xf5, 0xf4, + 0x56, 0x46, 0x9c, 0xb1, 0xd2, 0x74, 0xbd, 0x51, 0x38, 0x55, 0xa7, 0xa8, 0xdb, 0x38, 0x2c, 0xf2, + 0x43, 0x23, 0xd7, 0xa2, 0x8d, 0xb8, 0x92, 0xbe, 0xe2, 0xa1, 0xe8, 0xd3, 0x3b, 0x79, 0x2f, 0x5a, + 0x67, 0xd6, 0x65, 0x25, 0xc3, 0x30, 0x3a, 0x2e, 0x64, 0xed, 0xe9, 0x5d, 0x3c, 0xe1, 0x5b, 0xda, + 0x58, 0x6b, 0x19, 0x3c, 0xbd, 0x87, 0xdd, 0x93, 0x30, 0x3e, 0x38, 0x80, 0x30, 0xce, 0x56, 0x54, + 0xa0, 0xcb, 0xd0, 0xa7, 0xf7, 0x31, 0x94, 0x49, 0x90, 0x32, 0x0c, 0x35, 0xaf, 0x20, 0x29, 0x1f, + 0xe4, 0x63, 0xdf, 0x41, 0x29, 0x8d, 0x2e, 0x8c, 0x98, 0xa8, 0x3b, 0xfb, 0xd5, 0xb9, 0xf5, 0x72, + 0xae, 0xb6, 0xc6, 0x07, 0xae, 0x72, 0xeb, 0x95, 0x99, 0xf4, 0x9a, 0x5a, 0x07, 0x37, 0x8c, 0x08, + 0xa0, 0x0f, 0xd9, 0x29, 0x42, 0x93, 0x46, 0xf1, 0x20, 0x43, 0x2d, 0x80, 0x3e, 0xca, 0xcb, 0x8b, + 0x2d, 0xda, 0x8a, 0x1f, 0xb3, 0x67, 0xe4, 0xd1, 0x34, 0xfc, 0x12, 0x8c, 0x35, 0x52, 0x87, 0x26, + 0x9d, 0x29, 0xd6, 0xae, 0x09, 0xc8, 0xbc, 0xa6, 0x24, 0x5d, 0x88, 0xba, 0x56, 0x8a, 0x3e, 0x99, + 0xf1, 0x6e, 0x62, 0x9f, 0xc8, 0xf4, 0x34, 0xcf, 0x7d, 0xd3, 0x08, 0xc2, 0x54, 0x5c, 0xea, 0x88, + 0x11, 0xd2, 0x67, 0xcd, 0x54, 0x9a, 0x54, 0xcf, 0x72, 0xc7, 0x2b, 0x98, 0x19, 0x1f, 0xcf, 0xd9, + 0x4d, 0xb2, 0xc4, 0x45, 0xf4, 0x45, 0x1f, 0x44, 0xad, 0x20, 0x06, 0x59, 0x41, 0xdb, 0x4c, 0x03, + 0xae, 0x7c, 0x34, 0x03, 0x70, 0x8a, 0x5b, 0xfa, 0x67, 0xf6, 0x88, 0x74, 0x72, 0x5c, 0x82, 0x24, + 0x7f, 0xbd, 0xe5, 0x7a, 0xba, 0x1f, 0x04, 0x1f, 0x7a, 0xfa, 0x82, 0xdd, 0x20, 0x57, 0x67, 0x6d, + 0xc6, 0x73, 0x3e, 0xbf, 0x83, 0xbe, 0x64, 0x2b, 0xe4, 0x7e, 0x0e, 0x83, 0xf5, 0x02, 0x00, 0x17, + 0xf7, 0xd4, 0x0d, 0x8b, 0x81, 0x71, 0x1c, 0x0b, 0x95, 0x0c, 0xf4, 0x15, 0x5b, 0x26, 0xf7, 0x72, + 0x8b, 0x19, 0x82, 0x26, 0x5e, 0xe2, 0xd0, 0xe8, 0x49, 0x50, 0xc2, 0xd3, 0xbf, 0x64, 0x5c, 0xef, + 0x36, 0x6d, 0x24, 0x64, 0x6f, 0x38, 0xd7, 0xc2, 0xf4, 0x35, 0xc6, 0xf8, 0x3d, 0xd4, 0xa4, 0xbf, + 0x8d, 0x0d, 0x20, 0xa2, 0xa9, 0x03, 0xfd, 0x2b, 0xbb, 0x4d, 0xae, 0xef, 0xb7, 0xd1, 0x50, 0xf2, + 0x20, 0x07, 0x79, 0x27, 0xfd, 0x0d, 0xfb, 0x78, 0x02, 0x91, 0xe0, 0x22, 0x57, 0x0e, 0xb8, 0x18, + 0x46, 0x58, 0xc7, 0x61, 0x47, 0xff, 0xce, 0xce, 0x92, 0x93, 0x3d, 0xc0, 0xb8, 0x45, 0xbb, 0x40, + 0x95, 0x32, 0x6b, 0x20, 0x28, 0xc7, 0x3b, 0x78, 0xd1, 0x70, 0x2f, 0x4a, 0x0d, 0x4a, 0x96, 0x32, + 0xad, 0xd5, 0xd9, 0x2d, 0xd2, 0x65, 0x1d, 0x72, 0x77, 0x46, 0x14, 0xb3, 0xaf, 0x05, 0x74, 0x50, + 0x60, 0x56, 0x7c, 0x70, 0x38, 0x3c, 0x86, 0xb4, 0xc8, 0x76, 0xd2, 0xdc, 0xd6, 0x32, 0x9a, 0x8a, + 0x6c, 0x7c, 0x38, 0xa8, 0xcc, 0x4c, 0x38, 0x80, 0x0b, 0x2b, 0x2d, 0x25, 0x5f, 0x18, 0x0b, 0x53, + 0x52, 0xf5, 0xb0, 0xf0, 0xfb, 0x75, 0xcd, 0x47, 0x93, 0x90, 0x15, 0x68, 0x5c, 0xfd, 0x9e, 0x96, + 0xb8, 0xe3, 0x13, 0xcc, 0x72, 0x17, 0x64, 0x68, 0x6a, 0x91, 0x8e, 0xe9, 0xb3, 0x3b, 0xe4, 0xc6, + 0xd7, 0xf5, 0xf3, 0x47, 0xc9, 0xb9, 0x2e, 0x69, 0x4c, 0x26, 0x7a, 0xfa, 0x8f, 0xb9, 0x19, 0x34, + 0xab, 0x6e, 0x73, 0xb7, 0x9a, 0x7f, 0x5b, 0x25, 0x4c, 0xca, 0xd8, 0x64, 0xd8, 0x2a, 0xcc, 0x58, + 0x25, 0xbd, 0x6f, 0xf2, 0x98, 0x76, 0x93, 0x87, 0x80, 0x9f, 0x36, 0xb4, 0xca, 0xdd, 0x98, 0x92, + 0xb0, 0xd6, 0x05, 0x7a, 0x4e, 0x35, 0x52, 0x40, 0x99, 0x82, 0x37, 0x71, 0x8c, 0x37, 0x79, 0x5e, + 0x69, 0x83, 0x19, 0x9f, 0x07, 0x8c, 0xcf, 0xa3, 0x36, 0xa3, 0x27, 0x0f, 0x81, 0xe3, 0x96, 0x4a, + 0xa5, 0xe6, 0x61, 0x4a, 0xce, 0x76, 0xa2, 0x94, 0xce, 0xd4, 0x96, 0xbe, 0xc1, 0xbd, 0xd7, 0x37, + 0x01, 0xd4, 0x78, 0x9c, 0x45, 0xd3, 0x8b, 0x3e, 0xe0, 0x96, 0x6d, 0x1b, 0xdb, 0xc7, 0x35, 0x19, + 0xfa, 0x2d, 0x05, 0x9b, 0x40, 0x27, 0x05, 0x76, 0x8c, 0x93, 0xd7, 0xad, 0x29, 0x17, 0x03, 0xae, + 0x0b, 0x88, 0x5d, 0x63, 0x56, 0x11, 0xb4, 0x26, 0xb5, 0x30, 0x6b, 0x3f, 0x3e, 0xc2, 0x23, 0x1d, + 0x9b, 0x16, 0x8c, 0x52, 0x17, 0xa6, 0xb2, 0x3c, 0x34, 0xc4, 0x6d, 0xf0, 0x93, 0x16, 0x99, 0x7c, + 0x19, 0xd2, 0xd0, 0xfd, 0xe9, 0x00, 0x59, 0x7a, 0x37, 0xfa, 0xd8, 0xf9, 0xfe, 0x4b, 0xa2, 0x7b, + 0x72, 0xf6, 0xbd, 0x60, 0xf1, 0xf9, 0x61, 0x0f, 0xfc, 0x53, 0x8c, 0xcd, 0xb6, 0x47, 0x1f, 0xde, + 0xee, 0x6c, 0x77, 0x46, 0xbb, 0xdb, 0xcb, 0xdb, 0x5b, 0x3b, 0xcd, 0xe3, 0x24, 0x3d, 0x63, 0x3e, + 0xbd, 0xdf, 0xfb, 0xd6, 0xab, 0xe6, 0x55, 0xfb, 0xf3, 0xbf, 0x83, 0x87, 0x4a, 0xce, 0xff, 0x7f, + 0x70, 0xb1, 0x6c, 0x0f, 0xe3, 0x9b, 0x7b, 0x9d, 0xf6, 0x2f, 0xfe, 0x1b, 0xac, 0x74, 0x9a, 0x2b, + 0xf7, 0x7e, 0x4e, 0x80, 0x0d, 0xbe, 0xb9, 0xb7, 0x31, 0x01, 0x6c, 0x0c, 0x56, 0x36, 0x5a, 0xc0, + 0xbf, 0x0e, 0x37, 0x17, 0x3f, 0xfe, 0x25, 0x00, 0x00, 0xff, 0xff, 0x16, 0x22, 0xbc, 0x13, 0x4d, + 0x0d, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/customer_client_link_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/customer_client_link_error.pb.go new file mode 100644 index 000000000..8abcee349 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/customer_client_link_error.pb.go @@ -0,0 +1,144 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/customer_client_link_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible CustomerClientLink errors. +type CustomerClientLinkErrorEnum_CustomerClientLinkError int32 + +const ( + // Enum unspecified. + CustomerClientLinkErrorEnum_UNSPECIFIED CustomerClientLinkErrorEnum_CustomerClientLinkError = 0 + // The received error code is not known in this version. + CustomerClientLinkErrorEnum_UNKNOWN CustomerClientLinkErrorEnum_CustomerClientLinkError = 1 + // Trying to manage a client that already in being managed by customer. + CustomerClientLinkErrorEnum_CLIENT_ALREADY_INVITED_BY_THIS_MANAGER CustomerClientLinkErrorEnum_CustomerClientLinkError = 2 + // Already managed by some other manager in the hierarchy. + CustomerClientLinkErrorEnum_CLIENT_ALREADY_MANAGED_IN_HIERARCHY CustomerClientLinkErrorEnum_CustomerClientLinkError = 3 + // Attempt to create a cycle in the hierarchy. + CustomerClientLinkErrorEnum_CYCLIC_LINK_NOT_ALLOWED CustomerClientLinkErrorEnum_CustomerClientLinkError = 4 + // Managed accounts has the maximum number of linked accounts. + CustomerClientLinkErrorEnum_CUSTOMER_HAS_TOO_MANY_ACCOUNTS CustomerClientLinkErrorEnum_CustomerClientLinkError = 5 + // Invitor has the maximum pending invitations. + CustomerClientLinkErrorEnum_CLIENT_HAS_TOO_MANY_INVITATIONS CustomerClientLinkErrorEnum_CustomerClientLinkError = 6 + // Attempt to change hidden status of a link that is not active. + CustomerClientLinkErrorEnum_CANNOT_HIDE_OR_UNHIDE_MANAGER_ACCOUNTS CustomerClientLinkErrorEnum_CustomerClientLinkError = 7 + // Parent manager account has the maximum number of linked accounts. + CustomerClientLinkErrorEnum_CUSTOMER_HAS_TOO_MANY_ACCOUNTS_AT_MANAGER CustomerClientLinkErrorEnum_CustomerClientLinkError = 8 +) + +var CustomerClientLinkErrorEnum_CustomerClientLinkError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "CLIENT_ALREADY_INVITED_BY_THIS_MANAGER", + 3: "CLIENT_ALREADY_MANAGED_IN_HIERARCHY", + 4: "CYCLIC_LINK_NOT_ALLOWED", + 5: "CUSTOMER_HAS_TOO_MANY_ACCOUNTS", + 6: "CLIENT_HAS_TOO_MANY_INVITATIONS", + 7: "CANNOT_HIDE_OR_UNHIDE_MANAGER_ACCOUNTS", + 8: "CUSTOMER_HAS_TOO_MANY_ACCOUNTS_AT_MANAGER", +} +var CustomerClientLinkErrorEnum_CustomerClientLinkError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "CLIENT_ALREADY_INVITED_BY_THIS_MANAGER": 2, + "CLIENT_ALREADY_MANAGED_IN_HIERARCHY": 3, + "CYCLIC_LINK_NOT_ALLOWED": 4, + "CUSTOMER_HAS_TOO_MANY_ACCOUNTS": 5, + "CLIENT_HAS_TOO_MANY_INVITATIONS": 6, + "CANNOT_HIDE_OR_UNHIDE_MANAGER_ACCOUNTS": 7, + "CUSTOMER_HAS_TOO_MANY_ACCOUNTS_AT_MANAGER": 8, +} + +func (x CustomerClientLinkErrorEnum_CustomerClientLinkError) String() string { + return proto.EnumName(CustomerClientLinkErrorEnum_CustomerClientLinkError_name, int32(x)) +} +func (CustomerClientLinkErrorEnum_CustomerClientLinkError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_customer_client_link_error_8f1a745bcc958e5b, []int{0, 0} +} + +// Container for enum describing possible CustomeClientLink errors. +type CustomerClientLinkErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CustomerClientLinkErrorEnum) Reset() { *m = CustomerClientLinkErrorEnum{} } +func (m *CustomerClientLinkErrorEnum) String() string { return proto.CompactTextString(m) } +func (*CustomerClientLinkErrorEnum) ProtoMessage() {} +func (*CustomerClientLinkErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_customer_client_link_error_8f1a745bcc958e5b, []int{0} +} +func (m *CustomerClientLinkErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CustomerClientLinkErrorEnum.Unmarshal(m, b) +} +func (m *CustomerClientLinkErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CustomerClientLinkErrorEnum.Marshal(b, m, deterministic) +} +func (dst *CustomerClientLinkErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_CustomerClientLinkErrorEnum.Merge(dst, src) +} +func (m *CustomerClientLinkErrorEnum) XXX_Size() int { + return xxx_messageInfo_CustomerClientLinkErrorEnum.Size(m) +} +func (m *CustomerClientLinkErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_CustomerClientLinkErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_CustomerClientLinkErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*CustomerClientLinkErrorEnum)(nil), "google.ads.googleads.v0.errors.CustomerClientLinkErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.CustomerClientLinkErrorEnum_CustomerClientLinkError", CustomerClientLinkErrorEnum_CustomerClientLinkError_name, CustomerClientLinkErrorEnum_CustomerClientLinkError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/customer_client_link_error.proto", fileDescriptor_customer_client_link_error_8f1a745bcc958e5b) +} + +var fileDescriptor_customer_client_link_error_8f1a745bcc958e5b = []byte{ + // 420 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x92, 0x41, 0x6b, 0xdb, 0x30, + 0x14, 0xc7, 0x17, 0x77, 0x6b, 0x87, 0x7a, 0x98, 0xd1, 0xa5, 0x87, 0x8e, 0x0c, 0x52, 0xd8, 0xd8, + 0x60, 0x72, 0x60, 0xc7, 0x1d, 0x86, 0x22, 0x6b, 0xb1, 0xa8, 0x2b, 0x05, 0x5b, 0x4e, 0xf1, 0x08, + 0x3c, 0xb2, 0xc4, 0x98, 0xd0, 0xc4, 0x2a, 0x56, 0xda, 0x0f, 0xb4, 0xe3, 0x3e, 0xca, 0x60, 0x97, + 0x7d, 0x8f, 0x7d, 0x87, 0x61, 0x29, 0xcd, 0xd8, 0x20, 0x3d, 0xf9, 0x0f, 0xef, 0xff, 0x7e, 0xff, + 0x67, 0xbd, 0x87, 0x3e, 0xd5, 0xc6, 0xd4, 0xeb, 0x2a, 0x9a, 0x2f, 0x6d, 0xe4, 0x65, 0xa7, 0xee, + 0x87, 0x51, 0xd5, 0xb6, 0xa6, 0xb5, 0xd1, 0xe2, 0xce, 0x6e, 0xcd, 0xa6, 0x6a, 0x61, 0xb1, 0x5e, + 0x55, 0xcd, 0x16, 0xd6, 0xab, 0xe6, 0x06, 0x5c, 0x8d, 0xdc, 0xb6, 0x66, 0x6b, 0x70, 0xdf, 0x77, + 0x91, 0xf9, 0xd2, 0x92, 0x3d, 0x80, 0xdc, 0x0f, 0x89, 0x07, 0x0c, 0x7e, 0x07, 0xe8, 0x9c, 0xed, + 0x20, 0xcc, 0x31, 0xd2, 0x55, 0x73, 0xc3, 0xbb, 0x22, 0x6f, 0xee, 0x36, 0x83, 0x9f, 0x01, 0x3a, + 0x3b, 0x50, 0xc7, 0x2f, 0xd0, 0x69, 0x21, 0xf3, 0x09, 0x67, 0xe2, 0xb3, 0xe0, 0x71, 0xf8, 0x04, + 0x9f, 0xa2, 0x93, 0x42, 0x5e, 0x4a, 0x75, 0x2d, 0xc3, 0x1e, 0x7e, 0x87, 0x5e, 0xb3, 0x54, 0x70, + 0xa9, 0x81, 0xa6, 0x19, 0xa7, 0x71, 0x09, 0x42, 0x4e, 0x85, 0xe6, 0x31, 0x8c, 0x4a, 0xd0, 0x89, + 0xc8, 0xe1, 0x8a, 0x4a, 0x3a, 0xe6, 0x59, 0x18, 0xe0, 0x37, 0xe8, 0xe2, 0x3f, 0xaf, 0xaf, 0xc5, + 0x20, 0x24, 0x24, 0x82, 0x67, 0x34, 0x63, 0x49, 0x19, 0x1e, 0xe1, 0x73, 0x74, 0xc6, 0x4a, 0x96, + 0x0a, 0x06, 0xa9, 0x90, 0x97, 0x20, 0x55, 0xd7, 0x91, 0xaa, 0x6b, 0x1e, 0x87, 0x4f, 0xf1, 0x00, + 0xf5, 0x59, 0x91, 0x6b, 0x75, 0xc5, 0x33, 0x48, 0x68, 0x0e, 0x5a, 0xa9, 0x8e, 0x53, 0x02, 0x65, + 0x4c, 0x15, 0x52, 0xe7, 0xe1, 0x33, 0x7c, 0x81, 0x5e, 0xed, 0x92, 0xfe, 0x71, 0xb8, 0xd1, 0xa8, + 0x16, 0x4a, 0xe6, 0xe1, 0xb1, 0x1b, 0x9d, 0xca, 0x0e, 0x9e, 0x88, 0x98, 0x83, 0xca, 0xa0, 0x90, + 0x4e, 0xed, 0x26, 0xfe, 0x0b, 0x3c, 0xc1, 0xef, 0xd1, 0xdb, 0xc7, 0x43, 0x81, 0xea, 0xfd, 0x9f, + 0x3e, 0x1f, 0xfd, 0xea, 0xa1, 0xc1, 0xc2, 0x6c, 0xc8, 0xe3, 0x6b, 0x19, 0xbd, 0x3c, 0xf0, 0xe6, + 0x93, 0x6e, 0xa9, 0x93, 0xde, 0x97, 0x78, 0xd7, 0x5f, 0x9b, 0xf5, 0xbc, 0xa9, 0x89, 0x69, 0xeb, + 0xa8, 0xae, 0x1a, 0xb7, 0xf2, 0x87, 0x3b, 0xb9, 0x5d, 0xd9, 0x43, 0x67, 0xf3, 0xd1, 0x7f, 0xbe, + 0x05, 0x47, 0x63, 0x4a, 0xbf, 0x07, 0xfd, 0xb1, 0x87, 0xd1, 0xa5, 0x25, 0x5e, 0x76, 0x6a, 0x3a, + 0x24, 0x2e, 0xd2, 0xfe, 0x78, 0x30, 0xcc, 0xe8, 0xd2, 0xce, 0xf6, 0x86, 0xd9, 0x74, 0x38, 0xf3, + 0x86, 0xaf, 0xc7, 0x2e, 0xf8, 0xc3, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa4, 0x7f, 0x37, 0x19, + 0xae, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/customer_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/customer_error.pb.go new file mode 100644 index 000000000..1a2a46978 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/customer_error.pb.go @@ -0,0 +1,118 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/customer_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Set of errors that are related to requests dealing with Customer. +// Next id: 26 +type CustomerErrorEnum_CustomerError int32 + +const ( + // Enum unspecified. + CustomerErrorEnum_UNSPECIFIED CustomerErrorEnum_CustomerError = 0 + // The received error code is not known in this version. + CustomerErrorEnum_UNKNOWN CustomerErrorEnum_CustomerError = 1 + // Customer status is not allowed to be changed from DRAFT and CLOSED. + // Currency code and at least one of country code and time zone needs to be + // set when status is changed to ENABLED. + CustomerErrorEnum_STATUS_CHANGE_DISALLOWED CustomerErrorEnum_CustomerError = 2 + // CustomerService cannot get a customer that has not been fully set up. + CustomerErrorEnum_ACCOUNT_NOT_SET_UP CustomerErrorEnum_CustomerError = 3 +) + +var CustomerErrorEnum_CustomerError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "STATUS_CHANGE_DISALLOWED", + 3: "ACCOUNT_NOT_SET_UP", +} +var CustomerErrorEnum_CustomerError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "STATUS_CHANGE_DISALLOWED": 2, + "ACCOUNT_NOT_SET_UP": 3, +} + +func (x CustomerErrorEnum_CustomerError) String() string { + return proto.EnumName(CustomerErrorEnum_CustomerError_name, int32(x)) +} +func (CustomerErrorEnum_CustomerError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_customer_error_67eed9e7530db687, []int{0, 0} +} + +// Container for enum describing possible customer errors. +type CustomerErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CustomerErrorEnum) Reset() { *m = CustomerErrorEnum{} } +func (m *CustomerErrorEnum) String() string { return proto.CompactTextString(m) } +func (*CustomerErrorEnum) ProtoMessage() {} +func (*CustomerErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_customer_error_67eed9e7530db687, []int{0} +} +func (m *CustomerErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CustomerErrorEnum.Unmarshal(m, b) +} +func (m *CustomerErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CustomerErrorEnum.Marshal(b, m, deterministic) +} +func (dst *CustomerErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_CustomerErrorEnum.Merge(dst, src) +} +func (m *CustomerErrorEnum) XXX_Size() int { + return xxx_messageInfo_CustomerErrorEnum.Size(m) +} +func (m *CustomerErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_CustomerErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_CustomerErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*CustomerErrorEnum)(nil), "google.ads.googleads.v0.errors.CustomerErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.CustomerErrorEnum_CustomerError", CustomerErrorEnum_CustomerError_name, CustomerErrorEnum_CustomerError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/customer_error.proto", fileDescriptor_customer_error_67eed9e7530db687) +} + +var fileDescriptor_customer_error_67eed9e7530db687 = []byte{ + // 285 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0x4f, 0x4b, 0xc3, 0x30, + 0x18, 0xc6, 0x5d, 0x07, 0x0a, 0x19, 0x62, 0xcd, 0x41, 0x3c, 0xc8, 0x0e, 0xfd, 0x00, 0x69, 0x61, + 0x47, 0x4f, 0x59, 0x1b, 0x6b, 0x71, 0xa4, 0x85, 0x26, 0x1b, 0x48, 0x21, 0xd4, 0xb6, 0x04, 0x61, + 0x6d, 0x46, 0xb2, 0x0d, 0x3f, 0x8f, 0x47, 0x3f, 0x89, 0xf8, 0xa9, 0xa4, 0xcd, 0x36, 0xd8, 0x41, + 0x4f, 0x79, 0xf2, 0xf2, 0xfc, 0xde, 0x3f, 0x0f, 0x98, 0x49, 0xa5, 0xe4, 0xba, 0xf1, 0xcb, 0xda, + 0xf8, 0x56, 0xf6, 0x6a, 0x1f, 0xf8, 0x8d, 0xd6, 0x4a, 0x1b, 0xbf, 0xda, 0x99, 0xad, 0x6a, 0x1b, + 0x2d, 0x86, 0x3f, 0xda, 0x68, 0xb5, 0x55, 0x70, 0x6a, 0x9d, 0xa8, 0xac, 0x0d, 0x3a, 0x41, 0x68, + 0x1f, 0x20, 0x0b, 0x79, 0x1f, 0xe0, 0x36, 0x3c, 0x70, 0xa4, 0xaf, 0x90, 0x6e, 0xd7, 0x7a, 0x15, + 0xb8, 0x3e, 0x2b, 0xc2, 0x1b, 0x30, 0xe1, 0x34, 0xcf, 0x48, 0x98, 0x3c, 0x25, 0x24, 0x72, 0x2f, + 0xe0, 0x04, 0x5c, 0x71, 0xfa, 0x42, 0xd3, 0x15, 0x75, 0x47, 0xf0, 0x01, 0xdc, 0xe7, 0x0c, 0x33, + 0x9e, 0x8b, 0xf0, 0x19, 0xd3, 0x98, 0x88, 0x28, 0xc9, 0xf1, 0x62, 0x91, 0xae, 0x48, 0xe4, 0x3a, + 0xf0, 0x0e, 0x40, 0x1c, 0x86, 0x29, 0xa7, 0x4c, 0xd0, 0x94, 0x89, 0x9c, 0x30, 0xc1, 0x33, 0x77, + 0x3c, 0xff, 0x1e, 0x01, 0xaf, 0x52, 0x2d, 0xfa, 0x7f, 0xc1, 0x39, 0x3c, 0xdb, 0x24, 0xeb, 0x8f, + 0xca, 0x46, 0xaf, 0xd1, 0x81, 0x92, 0x6a, 0x5d, 0x76, 0x12, 0x29, 0x2d, 0x7d, 0xd9, 0x74, 0xc3, + 0xc9, 0xc7, 0x6c, 0x36, 0xef, 0xe6, 0xaf, 0xa8, 0x1e, 0xed, 0xf3, 0xe9, 0x8c, 0x63, 0x8c, 0xbf, + 0x9c, 0x69, 0x6c, 0x9b, 0xe1, 0xda, 0x20, 0x2b, 0x7b, 0xb5, 0x0c, 0xd0, 0x30, 0xd2, 0xfc, 0x1c, + 0x0d, 0x05, 0xae, 0x4d, 0x71, 0x32, 0x14, 0xcb, 0xa0, 0xb0, 0x86, 0xb7, 0xcb, 0x61, 0xf0, 0xec, + 0x37, 0x00, 0x00, 0xff, 0xff, 0x98, 0x99, 0x68, 0x2b, 0xa2, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/customer_feed_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/customer_feed_error.pb.go new file mode 100644 index 000000000..068ee7fdc --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/customer_feed_error.pb.go @@ -0,0 +1,144 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/customer_feed_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible customer feed errors. +type CustomerFeedErrorEnum_CustomerFeedError int32 + +const ( + // Enum unspecified. + CustomerFeedErrorEnum_UNSPECIFIED CustomerFeedErrorEnum_CustomerFeedError = 0 + // The received error code is not known in this version. + CustomerFeedErrorEnum_UNKNOWN CustomerFeedErrorEnum_CustomerFeedError = 1 + // An active feed already exists for this customer and place holder type. + CustomerFeedErrorEnum_FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE CustomerFeedErrorEnum_CustomerFeedError = 2 + // The specified feed is removed. + CustomerFeedErrorEnum_CANNOT_CREATE_FOR_REMOVED_FEED CustomerFeedErrorEnum_CustomerFeedError = 3 + // The CustomerFeed already exists. Update should be used to modify the + // existing CustomerFeed. + CustomerFeedErrorEnum_CANNOT_CREATE_ALREADY_EXISTING_CUSTOMER_FEED CustomerFeedErrorEnum_CustomerFeedError = 4 + // Cannot update removed customer feed. + CustomerFeedErrorEnum_CANNOT_MODIFY_REMOVED_CUSTOMER_FEED CustomerFeedErrorEnum_CustomerFeedError = 5 + // Invalid placeholder type. + CustomerFeedErrorEnum_INVALID_PLACEHOLDER_TYPE CustomerFeedErrorEnum_CustomerFeedError = 6 + // Feed mapping for this placeholder type does not exist. + CustomerFeedErrorEnum_MISSING_FEEDMAPPING_FOR_PLACEHOLDER_TYPE CustomerFeedErrorEnum_CustomerFeedError = 7 + // Placeholder not allowed at the account level. + CustomerFeedErrorEnum_PLACEHOLDER_TYPE_NOT_ALLOWED_ON_CUSTOMER_FEED CustomerFeedErrorEnum_CustomerFeedError = 8 +) + +var CustomerFeedErrorEnum_CustomerFeedError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE", + 3: "CANNOT_CREATE_FOR_REMOVED_FEED", + 4: "CANNOT_CREATE_ALREADY_EXISTING_CUSTOMER_FEED", + 5: "CANNOT_MODIFY_REMOVED_CUSTOMER_FEED", + 6: "INVALID_PLACEHOLDER_TYPE", + 7: "MISSING_FEEDMAPPING_FOR_PLACEHOLDER_TYPE", + 8: "PLACEHOLDER_TYPE_NOT_ALLOWED_ON_CUSTOMER_FEED", +} +var CustomerFeedErrorEnum_CustomerFeedError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "FEED_ALREADY_EXISTS_FOR_PLACEHOLDER_TYPE": 2, + "CANNOT_CREATE_FOR_REMOVED_FEED": 3, + "CANNOT_CREATE_ALREADY_EXISTING_CUSTOMER_FEED": 4, + "CANNOT_MODIFY_REMOVED_CUSTOMER_FEED": 5, + "INVALID_PLACEHOLDER_TYPE": 6, + "MISSING_FEEDMAPPING_FOR_PLACEHOLDER_TYPE": 7, + "PLACEHOLDER_TYPE_NOT_ALLOWED_ON_CUSTOMER_FEED": 8, +} + +func (x CustomerFeedErrorEnum_CustomerFeedError) String() string { + return proto.EnumName(CustomerFeedErrorEnum_CustomerFeedError_name, int32(x)) +} +func (CustomerFeedErrorEnum_CustomerFeedError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_customer_feed_error_7d219f169025f9b2, []int{0, 0} +} + +// Container for enum describing possible customer feed errors. +type CustomerFeedErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CustomerFeedErrorEnum) Reset() { *m = CustomerFeedErrorEnum{} } +func (m *CustomerFeedErrorEnum) String() string { return proto.CompactTextString(m) } +func (*CustomerFeedErrorEnum) ProtoMessage() {} +func (*CustomerFeedErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_customer_feed_error_7d219f169025f9b2, []int{0} +} +func (m *CustomerFeedErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CustomerFeedErrorEnum.Unmarshal(m, b) +} +func (m *CustomerFeedErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CustomerFeedErrorEnum.Marshal(b, m, deterministic) +} +func (dst *CustomerFeedErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_CustomerFeedErrorEnum.Merge(dst, src) +} +func (m *CustomerFeedErrorEnum) XXX_Size() int { + return xxx_messageInfo_CustomerFeedErrorEnum.Size(m) +} +func (m *CustomerFeedErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_CustomerFeedErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_CustomerFeedErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*CustomerFeedErrorEnum)(nil), "google.ads.googleads.v0.errors.CustomerFeedErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.CustomerFeedErrorEnum_CustomerFeedError", CustomerFeedErrorEnum_CustomerFeedError_name, CustomerFeedErrorEnum_CustomerFeedError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/customer_feed_error.proto", fileDescriptor_customer_feed_error_7d219f169025f9b2) +} + +var fileDescriptor_customer_feed_error_7d219f169025f9b2 = []byte{ + // 406 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x92, 0xc1, 0x6e, 0xd3, 0x30, + 0x1c, 0xc6, 0x69, 0x06, 0x1b, 0xf2, 0x0e, 0x14, 0x4b, 0x20, 0x0e, 0xa8, 0x87, 0x72, 0x80, 0xc3, + 0x70, 0x82, 0xb8, 0x20, 0x71, 0xf2, 0xe2, 0x7f, 0x8a, 0x45, 0x62, 0x47, 0x49, 0xda, 0x51, 0x14, + 0xc9, 0x2a, 0x8b, 0x89, 0x90, 0xd6, 0x7a, 0x8a, 0xb7, 0x3d, 0x10, 0x47, 0x1e, 0x05, 0xf1, 0x0a, + 0x3c, 0x07, 0x57, 0xe4, 0xb8, 0xab, 0xd4, 0x16, 0x76, 0xca, 0xa7, 0x7f, 0x7e, 0xdf, 0xff, 0xb3, + 0xf5, 0x19, 0xbd, 0x6b, 0x8d, 0x69, 0x2f, 0x74, 0xb8, 0x68, 0x6c, 0xe8, 0xa5, 0x53, 0x37, 0x51, + 0xa8, 0xbb, 0xce, 0x74, 0x36, 0x3c, 0xbf, 0xb6, 0x57, 0x66, 0xa9, 0x3b, 0xf5, 0x55, 0xeb, 0x46, + 0xf5, 0x43, 0x72, 0xd9, 0x99, 0x2b, 0x83, 0x47, 0x1e, 0x27, 0x8b, 0xc6, 0x92, 0x8d, 0x93, 0xdc, + 0x44, 0xc4, 0x3b, 0xc7, 0x7f, 0x02, 0xf4, 0x24, 0x5e, 0xbb, 0x13, 0xad, 0x1b, 0x70, 0x63, 0x58, + 0x5d, 0x2f, 0xc7, 0xbf, 0x03, 0xf4, 0x78, 0xef, 0x0f, 0x7e, 0x84, 0x8e, 0xa7, 0xa2, 0xcc, 0x21, + 0xe6, 0x09, 0x07, 0x36, 0xbc, 0x87, 0x8f, 0xd1, 0xd1, 0x54, 0x7c, 0x14, 0xf2, 0x4c, 0x0c, 0x07, + 0xf8, 0x04, 0xbd, 0x4a, 0x00, 0x98, 0xa2, 0x69, 0x01, 0x94, 0xcd, 0x15, 0x7c, 0xe2, 0x65, 0x55, + 0xaa, 0x44, 0x16, 0x2a, 0x4f, 0x69, 0x0c, 0x1f, 0x64, 0xca, 0xa0, 0x50, 0xd5, 0x3c, 0x87, 0x61, + 0x80, 0xc7, 0x68, 0x14, 0x53, 0x21, 0x64, 0xa5, 0xe2, 0x02, 0x68, 0x05, 0x3d, 0x57, 0x40, 0x26, + 0x67, 0xc0, 0x94, 0xdb, 0x33, 0x3c, 0xc0, 0x11, 0x3a, 0xd9, 0x66, 0xb6, 0x56, 0x73, 0x31, 0x51, + 0xf1, 0xb4, 0xac, 0x64, 0x06, 0x85, 0x77, 0xdc, 0xc7, 0x2f, 0xd1, 0x8b, 0xb5, 0x23, 0x93, 0x8c, + 0x27, 0xf3, 0xcd, 0xc6, 0x6d, 0xf0, 0x01, 0x7e, 0x8e, 0x9e, 0x71, 0x31, 0xa3, 0x29, 0x67, 0xfb, + 0x87, 0x3b, 0x74, 0x57, 0xc9, 0x78, 0x59, 0xba, 0x04, 0xc7, 0x67, 0x34, 0xcf, 0x7b, 0xfd, 0xaf, + 0xab, 0x1c, 0xe1, 0x37, 0xe8, 0xf5, 0xee, 0x54, 0xb9, 0x23, 0xd0, 0x34, 0x95, 0x67, 0xc0, 0x94, + 0x14, 0x3b, 0xf1, 0x0f, 0x4f, 0x7f, 0x0d, 0xd0, 0xf8, 0xdc, 0x2c, 0xc9, 0xdd, 0x05, 0x9d, 0x3e, + 0xdd, 0xeb, 0x20, 0x77, 0xc5, 0xe6, 0x83, 0xcf, 0x6c, 0xed, 0x6c, 0xcd, 0xc5, 0x62, 0xd5, 0x12, + 0xd3, 0xb5, 0x61, 0xab, 0x57, 0x7d, 0xed, 0xb7, 0x8f, 0xe4, 0xf2, 0x9b, 0xfd, 0xdf, 0x9b, 0x79, + 0xef, 0x3f, 0xdf, 0x83, 0x83, 0x09, 0xa5, 0x3f, 0x82, 0xd1, 0xc4, 0x2f, 0xa3, 0x8d, 0x25, 0x5e, + 0x3a, 0x35, 0x8b, 0x48, 0x1f, 0x69, 0x7f, 0xde, 0x02, 0x35, 0x6d, 0x6c, 0xbd, 0x01, 0xea, 0x59, + 0x54, 0x7b, 0xe0, 0xcb, 0x61, 0x1f, 0xfc, 0xf6, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x3a, 0x13, + 0xb5, 0x65, 0xab, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/customer_manager_link_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/customer_manager_link_error.pb.go new file mode 100644 index 000000000..b5d575973 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/customer_manager_link_error.pb.go @@ -0,0 +1,153 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/customer_manager_link_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible CustomerManagerLink errors. +type CustomerManagerLinkErrorEnum_CustomerManagerLinkError int32 + +const ( + // Enum unspecified. + CustomerManagerLinkErrorEnum_UNSPECIFIED CustomerManagerLinkErrorEnum_CustomerManagerLinkError = 0 + // The received error code is not known in this version. + CustomerManagerLinkErrorEnum_UNKNOWN CustomerManagerLinkErrorEnum_CustomerManagerLinkError = 1 + // No pending invitation. + CustomerManagerLinkErrorEnum_NO_PENDING_INVITE CustomerManagerLinkErrorEnum_CustomerManagerLinkError = 2 + // Attempt to operate on the same client more than once in the same call. + CustomerManagerLinkErrorEnum_SAME_CLIENT_MORE_THAN_ONCE_PER_CALL CustomerManagerLinkErrorEnum_CustomerManagerLinkError = 3 + // Manager account has the maximum number of linked accounts. + CustomerManagerLinkErrorEnum_MANAGER_HAS_MAX_NUMBER_OF_LINKED_ACCOUNTS CustomerManagerLinkErrorEnum_CustomerManagerLinkError = 4 + // If no active user on account it cannot be unlinked from its manager. + CustomerManagerLinkErrorEnum_CANNOT_UNLINK_ACCOUNT_WITHOUT_ACTIVE_USER CustomerManagerLinkErrorEnum_CustomerManagerLinkError = 5 + // Account should have at least one active owner on it before being + // unlinked. + CustomerManagerLinkErrorEnum_CANNOT_REMOVE_LAST_CLIENT_ACCOUNT_OWNER CustomerManagerLinkErrorEnum_CustomerManagerLinkError = 6 + // Only account owners may change their permission role. + CustomerManagerLinkErrorEnum_CANNOT_CHANGE_ROLE_BY_NON_ACCOUNT_OWNER CustomerManagerLinkErrorEnum_CustomerManagerLinkError = 7 + // When a client's link to its manager is not active, the link role cannot + // be changed. + CustomerManagerLinkErrorEnum_CANNOT_CHANGE_ROLE_FOR_NON_ACTIVE_LINK_ACCOUNT CustomerManagerLinkErrorEnum_CustomerManagerLinkError = 8 + // Attempt to link a child to a parent that contains or will contain + // duplicate children. + CustomerManagerLinkErrorEnum_DUPLICATE_CHILD_FOUND CustomerManagerLinkErrorEnum_CustomerManagerLinkError = 9 +) + +var CustomerManagerLinkErrorEnum_CustomerManagerLinkError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "NO_PENDING_INVITE", + 3: "SAME_CLIENT_MORE_THAN_ONCE_PER_CALL", + 4: "MANAGER_HAS_MAX_NUMBER_OF_LINKED_ACCOUNTS", + 5: "CANNOT_UNLINK_ACCOUNT_WITHOUT_ACTIVE_USER", + 6: "CANNOT_REMOVE_LAST_CLIENT_ACCOUNT_OWNER", + 7: "CANNOT_CHANGE_ROLE_BY_NON_ACCOUNT_OWNER", + 8: "CANNOT_CHANGE_ROLE_FOR_NON_ACTIVE_LINK_ACCOUNT", + 9: "DUPLICATE_CHILD_FOUND", +} +var CustomerManagerLinkErrorEnum_CustomerManagerLinkError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "NO_PENDING_INVITE": 2, + "SAME_CLIENT_MORE_THAN_ONCE_PER_CALL": 3, + "MANAGER_HAS_MAX_NUMBER_OF_LINKED_ACCOUNTS": 4, + "CANNOT_UNLINK_ACCOUNT_WITHOUT_ACTIVE_USER": 5, + "CANNOT_REMOVE_LAST_CLIENT_ACCOUNT_OWNER": 6, + "CANNOT_CHANGE_ROLE_BY_NON_ACCOUNT_OWNER": 7, + "CANNOT_CHANGE_ROLE_FOR_NON_ACTIVE_LINK_ACCOUNT": 8, + "DUPLICATE_CHILD_FOUND": 9, +} + +func (x CustomerManagerLinkErrorEnum_CustomerManagerLinkError) String() string { + return proto.EnumName(CustomerManagerLinkErrorEnum_CustomerManagerLinkError_name, int32(x)) +} +func (CustomerManagerLinkErrorEnum_CustomerManagerLinkError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_customer_manager_link_error_3b39935325f9f58c, []int{0, 0} +} + +// Container for enum describing possible CustomerManagerLink errors. +type CustomerManagerLinkErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CustomerManagerLinkErrorEnum) Reset() { *m = CustomerManagerLinkErrorEnum{} } +func (m *CustomerManagerLinkErrorEnum) String() string { return proto.CompactTextString(m) } +func (*CustomerManagerLinkErrorEnum) ProtoMessage() {} +func (*CustomerManagerLinkErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_customer_manager_link_error_3b39935325f9f58c, []int{0} +} +func (m *CustomerManagerLinkErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CustomerManagerLinkErrorEnum.Unmarshal(m, b) +} +func (m *CustomerManagerLinkErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CustomerManagerLinkErrorEnum.Marshal(b, m, deterministic) +} +func (dst *CustomerManagerLinkErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_CustomerManagerLinkErrorEnum.Merge(dst, src) +} +func (m *CustomerManagerLinkErrorEnum) XXX_Size() int { + return xxx_messageInfo_CustomerManagerLinkErrorEnum.Size(m) +} +func (m *CustomerManagerLinkErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_CustomerManagerLinkErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_CustomerManagerLinkErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*CustomerManagerLinkErrorEnum)(nil), "google.ads.googleads.v0.errors.CustomerManagerLinkErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.CustomerManagerLinkErrorEnum_CustomerManagerLinkError", CustomerManagerLinkErrorEnum_CustomerManagerLinkError_name, CustomerManagerLinkErrorEnum_CustomerManagerLinkError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/customer_manager_link_error.proto", fileDescriptor_customer_manager_link_error_3b39935325f9f58c) +} + +var fileDescriptor_customer_manager_link_error_3b39935325f9f58c = []byte{ + // 457 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x92, 0x41, 0x6f, 0xd3, 0x40, + 0x10, 0x85, 0x49, 0x02, 0x2d, 0x6c, 0x0f, 0x18, 0x4b, 0x95, 0x40, 0x82, 0x1e, 0xc2, 0xa1, 0x42, + 0x88, 0x4d, 0x04, 0x47, 0x2e, 0x6c, 0xd6, 0x93, 0x64, 0x55, 0x7b, 0xd6, 0xb2, 0xd7, 0x0e, 0xa0, + 0x48, 0x23, 0xd3, 0x58, 0x56, 0xd4, 0xc4, 0xae, 0xec, 0xb6, 0xbf, 0x07, 0x71, 0xe4, 0xa7, 0x70, + 0xe5, 0x07, 0x81, 0x6c, 0xc7, 0x55, 0x85, 0x48, 0x4f, 0xfb, 0xa4, 0xf7, 0xed, 0x9b, 0x91, 0xe6, + 0xb1, 0x4f, 0x59, 0x51, 0x64, 0x9b, 0x74, 0x94, 0xac, 0xaa, 0x51, 0x2b, 0x6b, 0x75, 0x33, 0x1e, + 0xa5, 0x65, 0x59, 0x94, 0xd5, 0xe8, 0xfc, 0xba, 0xba, 0x2a, 0xb6, 0x69, 0x49, 0xdb, 0x24, 0x4f, + 0xb2, 0xb4, 0xa4, 0xcd, 0x3a, 0xbf, 0xa0, 0xc6, 0xe4, 0x97, 0x65, 0x71, 0x55, 0xd8, 0x27, 0xed, + 0x37, 0x9e, 0xac, 0x2a, 0x7e, 0x9b, 0xc0, 0x6f, 0xc6, 0xbc, 0x4d, 0x18, 0x7e, 0x1f, 0xb0, 0x97, + 0x72, 0x97, 0xe2, 0xb5, 0x21, 0xee, 0x3a, 0xbf, 0x80, 0xda, 0x85, 0xfc, 0x7a, 0x3b, 0xfc, 0xd3, + 0x67, 0xcf, 0xf7, 0x01, 0xf6, 0x53, 0x76, 0x14, 0x61, 0xe8, 0x83, 0x54, 0x53, 0x05, 0x8e, 0xf5, + 0xc0, 0x3e, 0x62, 0x87, 0x11, 0x9e, 0xa1, 0x5e, 0xa0, 0xd5, 0xb3, 0x8f, 0xd9, 0x33, 0xd4, 0xe4, + 0x03, 0x3a, 0x0a, 0x67, 0xa4, 0x30, 0x56, 0x06, 0xac, 0xbe, 0x7d, 0xca, 0x5e, 0x87, 0xc2, 0x03, + 0x92, 0xae, 0x02, 0x34, 0xe4, 0xe9, 0x00, 0xc8, 0xcc, 0x05, 0x92, 0x46, 0x09, 0xe4, 0x43, 0x40, + 0x52, 0xb8, 0xae, 0x35, 0xb0, 0xdf, 0xb1, 0x37, 0x9e, 0x40, 0x31, 0x83, 0x80, 0xe6, 0x22, 0x24, + 0x4f, 0x7c, 0x26, 0x8c, 0xbc, 0x09, 0x04, 0xa4, 0xa7, 0xe4, 0x2a, 0x3c, 0x03, 0x87, 0x84, 0x94, + 0x3a, 0x42, 0x13, 0x5a, 0x0f, 0x6b, 0x5c, 0x0a, 0x44, 0x6d, 0x28, 0xc2, 0xda, 0xed, 0x3c, 0x5a, + 0x28, 0x33, 0xd7, 0x91, 0x21, 0x21, 0x8d, 0x8a, 0x81, 0xa2, 0x10, 0x02, 0xeb, 0x91, 0xfd, 0x96, + 0x9d, 0xee, 0xf0, 0x00, 0x3c, 0x1d, 0x03, 0xb9, 0x22, 0x34, 0xdd, 0x52, 0xdd, 0x57, 0xbd, 0x40, + 0x08, 0xac, 0x83, 0x3b, 0xb0, 0x9c, 0x0b, 0x9c, 0x01, 0x05, 0xda, 0x05, 0x9a, 0x7c, 0x21, 0xd4, + 0xf8, 0x0f, 0x7c, 0x68, 0xbf, 0x67, 0xfc, 0x3f, 0xf0, 0x54, 0x07, 0x3b, 0xba, 0xd9, 0xe2, 0xee, + 0x86, 0xd6, 0x63, 0xfb, 0x05, 0x3b, 0x76, 0x22, 0xdf, 0x55, 0x52, 0x18, 0x20, 0x39, 0x57, 0xae, + 0x43, 0x53, 0x1d, 0xa1, 0x63, 0x3d, 0x99, 0xfc, 0xee, 0xb1, 0xe1, 0x79, 0xb1, 0xe5, 0xf7, 0x5f, + 0x72, 0xf2, 0x6a, 0xdf, 0x95, 0xfc, 0xba, 0x08, 0x7e, 0xef, 0xab, 0xb3, 0x0b, 0xc8, 0x8a, 0x4d, + 0x92, 0x67, 0xbc, 0x28, 0xb3, 0x51, 0x96, 0xe6, 0x4d, 0x4d, 0xba, 0x72, 0x5d, 0xae, 0xab, 0x7d, + 0x5d, 0xfb, 0xd8, 0x3e, 0x3f, 0xfa, 0x83, 0x99, 0x10, 0x3f, 0xfb, 0x27, 0xb3, 0x36, 0x4c, 0xac, + 0x2a, 0xde, 0xca, 0x5a, 0xc5, 0x63, 0xde, 0x8c, 0xac, 0x7e, 0x75, 0xc0, 0x52, 0xac, 0xaa, 0xe5, + 0x2d, 0xb0, 0x8c, 0xc7, 0xcb, 0x16, 0xf8, 0x76, 0xd0, 0x0c, 0xfe, 0xf0, 0x37, 0x00, 0x00, 0xff, + 0xff, 0x6c, 0x06, 0x95, 0xed, 0xe3, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/database_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/database_error.pb.go new file mode 100644 index 000000000..e15d1c0e3 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/database_error.pb.go @@ -0,0 +1,111 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/database_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible database errors. +type DatabaseErrorEnum_DatabaseError int32 + +const ( + // Enum unspecified. + DatabaseErrorEnum_UNSPECIFIED DatabaseErrorEnum_DatabaseError = 0 + // The received error code is not known in this version. + DatabaseErrorEnum_UNKNOWN DatabaseErrorEnum_DatabaseError = 1 + // Multiple requests were attempting to modify the same resource at once. + // Please retry the request. + DatabaseErrorEnum_CONCURRENT_MODIFICATION DatabaseErrorEnum_DatabaseError = 2 +) + +var DatabaseErrorEnum_DatabaseError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "CONCURRENT_MODIFICATION", +} +var DatabaseErrorEnum_DatabaseError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "CONCURRENT_MODIFICATION": 2, +} + +func (x DatabaseErrorEnum_DatabaseError) String() string { + return proto.EnumName(DatabaseErrorEnum_DatabaseError_name, int32(x)) +} +func (DatabaseErrorEnum_DatabaseError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_database_error_967d4f3a60ca34cc, []int{0, 0} +} + +// Container for enum describing possible database errors. +type DatabaseErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DatabaseErrorEnum) Reset() { *m = DatabaseErrorEnum{} } +func (m *DatabaseErrorEnum) String() string { return proto.CompactTextString(m) } +func (*DatabaseErrorEnum) ProtoMessage() {} +func (*DatabaseErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_database_error_967d4f3a60ca34cc, []int{0} +} +func (m *DatabaseErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DatabaseErrorEnum.Unmarshal(m, b) +} +func (m *DatabaseErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DatabaseErrorEnum.Marshal(b, m, deterministic) +} +func (dst *DatabaseErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_DatabaseErrorEnum.Merge(dst, src) +} +func (m *DatabaseErrorEnum) XXX_Size() int { + return xxx_messageInfo_DatabaseErrorEnum.Size(m) +} +func (m *DatabaseErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_DatabaseErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_DatabaseErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*DatabaseErrorEnum)(nil), "google.ads.googleads.v0.errors.DatabaseErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.DatabaseErrorEnum_DatabaseError", DatabaseErrorEnum_DatabaseError_name, DatabaseErrorEnum_DatabaseError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/database_error.proto", fileDescriptor_database_error_967d4f3a60ca34cc) +} + +var fileDescriptor_database_error_967d4f3a60ca34cc = []byte{ + // 262 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x32, 0x4e, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xa2, + 0xa2, 0xfc, 0xa2, 0x62, 0xfd, 0x94, 0xc4, 0x92, 0xc4, 0xa4, 0xc4, 0xe2, 0xd4, 0x78, 0x30, 0x5f, + 0xaf, 0xa0, 0x28, 0xbf, 0x24, 0x5f, 0x48, 0x0e, 0xa2, 0x52, 0x2f, 0x31, 0xa5, 0x58, 0x0f, 0xae, + 0x49, 0xaf, 0xcc, 0x40, 0x0f, 0xa2, 0x49, 0x29, 0x9e, 0x4b, 0xd0, 0x05, 0xaa, 0xcf, 0x15, 0x24, + 0xe2, 0x9a, 0x57, 0x9a, 0xab, 0xe4, 0xc5, 0xc5, 0x8b, 0x22, 0x28, 0xc4, 0xcf, 0xc5, 0x1d, 0xea, + 0x17, 0x1c, 0xe0, 0xea, 0xec, 0xe9, 0xe6, 0xe9, 0xea, 0x22, 0xc0, 0x20, 0xc4, 0xcd, 0xc5, 0x1e, + 0xea, 0xe7, 0xed, 0xe7, 0x1f, 0xee, 0x27, 0xc0, 0x28, 0x24, 0xcd, 0x25, 0xee, 0xec, 0xef, 0xe7, + 0x1c, 0x1a, 0x14, 0xe4, 0xea, 0x17, 0x12, 0xef, 0xeb, 0xef, 0xe2, 0xe9, 0xe6, 0xe9, 0xec, 0x18, + 0xe2, 0xe9, 0xef, 0x27, 0xc0, 0xe4, 0x74, 0x82, 0x91, 0x4b, 0x29, 0x39, 0x3f, 0x57, 0x0f, 0xbf, + 0x3b, 0x9c, 0x84, 0x50, 0x2c, 0x0c, 0x00, 0xb9, 0x3d, 0x80, 0x31, 0xca, 0x05, 0xaa, 0x2b, 0x3d, + 0x3f, 0x27, 0x31, 0x2f, 0x5d, 0x2f, 0xbf, 0x28, 0x5d, 0x3f, 0x3d, 0x35, 0x0f, 0xec, 0x33, 0x58, + 0x10, 0x14, 0x64, 0x16, 0xe3, 0x0a, 0x11, 0x6b, 0x08, 0xb5, 0x88, 0x89, 0xd9, 0xdd, 0xd1, 0x71, + 0x15, 0x93, 0x9c, 0x3b, 0xc4, 0x30, 0xc7, 0x94, 0x62, 0x3d, 0x08, 0x13, 0xc4, 0x0a, 0x33, 0xd0, + 0x03, 0x5b, 0x59, 0x7c, 0x0a, 0xa6, 0x20, 0xc6, 0x31, 0xa5, 0x38, 0x06, 0xae, 0x20, 0x26, 0xcc, + 0x20, 0x06, 0xa2, 0x20, 0x89, 0x0d, 0x6c, 0xb1, 0x31, 0x20, 0x00, 0x00, 0xff, 0xff, 0x3d, 0xf4, + 0x59, 0x5f, 0x89, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/date_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/date_error.pb.go new file mode 100644 index 000000000..7bdfef19f --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/date_error.pb.go @@ -0,0 +1,150 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/date_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible date errors. +type DateErrorEnum_DateError int32 + +const ( + // Enum unspecified. + DateErrorEnum_UNSPECIFIED DateErrorEnum_DateError = 0 + // The received error code is not known in this version. + DateErrorEnum_UNKNOWN DateErrorEnum_DateError = 1 + // Given field values do not correspond to a valid date. + DateErrorEnum_INVALID_FIELD_VALUES_IN_DATE DateErrorEnum_DateError = 2 + // Given field values do not correspond to a valid date time. + DateErrorEnum_INVALID_FIELD_VALUES_IN_DATE_TIME DateErrorEnum_DateError = 3 + // The string date's format should be yyyy-mm-dd. + DateErrorEnum_INVALID_STRING_DATE DateErrorEnum_DateError = 4 + // The string date time's format should be yyyy-mm-dd hh:mm:ss.ssssss. + DateErrorEnum_INVALID_STRING_DATE_TIME_MICROS DateErrorEnum_DateError = 6 + // The string date time's format should be yyyy-mm-dd hh:mm:ss. + DateErrorEnum_INVALID_STRING_DATE_TIME_SECONDS DateErrorEnum_DateError = 11 + // Date is before allowed minimum. + DateErrorEnum_EARLIER_THAN_MINIMUM_DATE DateErrorEnum_DateError = 7 + // Date is after allowed maximum. + DateErrorEnum_LATER_THAN_MAXIMUM_DATE DateErrorEnum_DateError = 8 + // Date range bounds are not in order. + DateErrorEnum_DATE_RANGE_MINIMUM_DATE_LATER_THAN_MAXIMUM_DATE DateErrorEnum_DateError = 9 + // Both dates in range are null. + DateErrorEnum_DATE_RANGE_MINIMUM_AND_MAXIMUM_DATES_BOTH_NULL DateErrorEnum_DateError = 10 +) + +var DateErrorEnum_DateError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "INVALID_FIELD_VALUES_IN_DATE", + 3: "INVALID_FIELD_VALUES_IN_DATE_TIME", + 4: "INVALID_STRING_DATE", + 6: "INVALID_STRING_DATE_TIME_MICROS", + 11: "INVALID_STRING_DATE_TIME_SECONDS", + 7: "EARLIER_THAN_MINIMUM_DATE", + 8: "LATER_THAN_MAXIMUM_DATE", + 9: "DATE_RANGE_MINIMUM_DATE_LATER_THAN_MAXIMUM_DATE", + 10: "DATE_RANGE_MINIMUM_AND_MAXIMUM_DATES_BOTH_NULL", +} +var DateErrorEnum_DateError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "INVALID_FIELD_VALUES_IN_DATE": 2, + "INVALID_FIELD_VALUES_IN_DATE_TIME": 3, + "INVALID_STRING_DATE": 4, + "INVALID_STRING_DATE_TIME_MICROS": 6, + "INVALID_STRING_DATE_TIME_SECONDS": 11, + "EARLIER_THAN_MINIMUM_DATE": 7, + "LATER_THAN_MAXIMUM_DATE": 8, + "DATE_RANGE_MINIMUM_DATE_LATER_THAN_MAXIMUM_DATE": 9, + "DATE_RANGE_MINIMUM_AND_MAXIMUM_DATES_BOTH_NULL": 10, +} + +func (x DateErrorEnum_DateError) String() string { + return proto.EnumName(DateErrorEnum_DateError_name, int32(x)) +} +func (DateErrorEnum_DateError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_date_error_e503fbf0897d3786, []int{0, 0} +} + +// Container for enum describing possible date errors. +type DateErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DateErrorEnum) Reset() { *m = DateErrorEnum{} } +func (m *DateErrorEnum) String() string { return proto.CompactTextString(m) } +func (*DateErrorEnum) ProtoMessage() {} +func (*DateErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_date_error_e503fbf0897d3786, []int{0} +} +func (m *DateErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DateErrorEnum.Unmarshal(m, b) +} +func (m *DateErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DateErrorEnum.Marshal(b, m, deterministic) +} +func (dst *DateErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_DateErrorEnum.Merge(dst, src) +} +func (m *DateErrorEnum) XXX_Size() int { + return xxx_messageInfo_DateErrorEnum.Size(m) +} +func (m *DateErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_DateErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_DateErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*DateErrorEnum)(nil), "google.ads.googleads.v0.errors.DateErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.DateErrorEnum_DateError", DateErrorEnum_DateError_name, DateErrorEnum_DateError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/date_error.proto", fileDescriptor_date_error_e503fbf0897d3786) +} + +var fileDescriptor_date_error_e503fbf0897d3786 = []byte{ + // 392 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x92, 0xcf, 0xae, 0xd2, 0x40, + 0x14, 0x87, 0xa5, 0x98, 0x7b, 0xbd, 0x87, 0xa8, 0xcd, 0xb8, 0xb8, 0x31, 0xea, 0x15, 0x51, 0xb7, + 0xd3, 0x46, 0x96, 0xae, 0x06, 0x66, 0x28, 0x13, 0xdb, 0x29, 0xe9, 0x3f, 0x8d, 0x69, 0x32, 0xa9, + 0xb6, 0x69, 0x4c, 0x80, 0x21, 0x2d, 0xf2, 0x16, 0xbe, 0x84, 0x4b, 0x9f, 0xc3, 0x95, 0xaf, 0xe4, + 0xc6, 0xb4, 0x03, 0x35, 0x24, 0xc0, 0xaa, 0xbf, 0xce, 0xf9, 0xbe, 0x73, 0x16, 0xe7, 0x80, 0x55, + 0x2a, 0x55, 0x2e, 0x0b, 0x2b, 0xcb, 0xeb, 0x7d, 0x6c, 0xd2, 0xce, 0xb6, 0x8a, 0xaa, 0x52, 0x55, + 0x6d, 0xe5, 0xd9, 0xb6, 0x90, 0x6d, 0xc6, 0x9b, 0x4a, 0x6d, 0x15, 0xba, 0xd3, 0x14, 0xce, 0xf2, + 0x1a, 0x77, 0x02, 0xde, 0xd9, 0x58, 0x0b, 0xa3, 0x1f, 0x7d, 0x78, 0x48, 0xb3, 0x6d, 0xc1, 0x9a, + 0x5f, 0xb6, 0xfe, 0xbe, 0x1a, 0xfd, 0x35, 0xe0, 0xa6, 0x7b, 0x41, 0x8f, 0x61, 0x10, 0x8b, 0x70, + 0xc1, 0xa6, 0x7c, 0xc6, 0x19, 0x35, 0xef, 0xa1, 0x01, 0x5c, 0xc7, 0xe2, 0x83, 0xf0, 0x3f, 0x0a, + 0xb3, 0x87, 0x86, 0xf0, 0x9c, 0x8b, 0x84, 0xb8, 0x9c, 0xca, 0x19, 0x67, 0x2e, 0x95, 0x09, 0x71, + 0x63, 0x16, 0x4a, 0x2e, 0x24, 0x25, 0x11, 0x33, 0x0d, 0xf4, 0x16, 0x5e, 0x5d, 0x22, 0x64, 0xc4, + 0x3d, 0x66, 0xf6, 0xd1, 0x2d, 0x3c, 0x39, 0x60, 0x61, 0x14, 0x70, 0xe1, 0x68, 0xff, 0x3e, 0x7a, + 0x0d, 0x2f, 0x4f, 0x14, 0x5a, 0x4d, 0x7a, 0x7c, 0x1a, 0xf8, 0xa1, 0x79, 0x85, 0xde, 0xc0, 0xf0, + 0x2c, 0x14, 0xb2, 0xa9, 0x2f, 0x68, 0x68, 0x0e, 0xd0, 0x0b, 0x78, 0xca, 0x48, 0xe0, 0x72, 0x16, + 0xc8, 0x68, 0x4e, 0x84, 0xf4, 0xb8, 0xe0, 0x5e, 0xec, 0xe9, 0x49, 0xd7, 0xe8, 0x19, 0xdc, 0xba, + 0x24, 0xea, 0x8a, 0xe4, 0xd3, 0xff, 0xe2, 0x03, 0x34, 0x06, 0xab, 0x6d, 0x19, 0x10, 0xe1, 0xb0, + 0x23, 0x53, 0x9e, 0x93, 0x6e, 0xd0, 0x3b, 0xc0, 0x27, 0x24, 0x22, 0xe8, 0x11, 0x18, 0xca, 0x89, + 0x1f, 0xcd, 0xa5, 0x88, 0x5d, 0xd7, 0x84, 0xc9, 0xef, 0x1e, 0x8c, 0xbe, 0xaa, 0x15, 0xbe, 0xbc, + 0xb6, 0xc9, 0xa3, 0x6e, 0x43, 0x8b, 0x66, 0xcd, 0x8b, 0xde, 0x67, 0xba, 0x37, 0x4a, 0xb5, 0xcc, + 0xd6, 0x25, 0x56, 0x55, 0x69, 0x95, 0xc5, 0xba, 0x3d, 0x82, 0xc3, 0xa5, 0x6c, 0xbe, 0xd5, 0xe7, + 0x0e, 0xe7, 0xbd, 0xfe, 0xfc, 0x34, 0xfa, 0x0e, 0x21, 0xbf, 0x8c, 0x3b, 0x47, 0x37, 0x23, 0x79, + 0x8d, 0x75, 0x6c, 0x52, 0x62, 0xe3, 0x76, 0x64, 0xfd, 0xe7, 0x00, 0xa4, 0x24, 0xaf, 0xd3, 0x0e, + 0x48, 0x13, 0x3b, 0xd5, 0xc0, 0x97, 0xab, 0x76, 0xf0, 0xf8, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xc4, 0x62, 0x40, 0x2a, 0xb0, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/date_range_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/date_range_error.pb.go new file mode 100644 index 000000000..07ab2bd42 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/date_range_error.pb.go @@ -0,0 +1,132 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/date_range_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible date range errors. +type DateRangeErrorEnum_DateRangeError int32 + +const ( + // Enum unspecified. + DateRangeErrorEnum_UNSPECIFIED DateRangeErrorEnum_DateRangeError = 0 + // The received error code is not known in this version. + DateRangeErrorEnum_UNKNOWN DateRangeErrorEnum_DateRangeError = 1 + // Invalid date. + DateRangeErrorEnum_INVALID_DATE DateRangeErrorEnum_DateRangeError = 2 + // The start date was after the end date. + DateRangeErrorEnum_START_DATE_AFTER_END_DATE DateRangeErrorEnum_DateRangeError = 3 + // Cannot set date to past time + DateRangeErrorEnum_CANNOT_SET_DATE_TO_PAST DateRangeErrorEnum_DateRangeError = 4 + // A date was used that is past the system "last" date. + DateRangeErrorEnum_AFTER_MAXIMUM_ALLOWABLE_DATE DateRangeErrorEnum_DateRangeError = 5 + // Trying to change start date on a campaign that has started. + DateRangeErrorEnum_CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED DateRangeErrorEnum_DateRangeError = 6 +) + +var DateRangeErrorEnum_DateRangeError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "INVALID_DATE", + 3: "START_DATE_AFTER_END_DATE", + 4: "CANNOT_SET_DATE_TO_PAST", + 5: "AFTER_MAXIMUM_ALLOWABLE_DATE", + 6: "CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED", +} +var DateRangeErrorEnum_DateRangeError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "INVALID_DATE": 2, + "START_DATE_AFTER_END_DATE": 3, + "CANNOT_SET_DATE_TO_PAST": 4, + "AFTER_MAXIMUM_ALLOWABLE_DATE": 5, + "CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED": 6, +} + +func (x DateRangeErrorEnum_DateRangeError) String() string { + return proto.EnumName(DateRangeErrorEnum_DateRangeError_name, int32(x)) +} +func (DateRangeErrorEnum_DateRangeError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_date_range_error_46426a282e457061, []int{0, 0} +} + +// Container for enum describing possible date range errors. +type DateRangeErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DateRangeErrorEnum) Reset() { *m = DateRangeErrorEnum{} } +func (m *DateRangeErrorEnum) String() string { return proto.CompactTextString(m) } +func (*DateRangeErrorEnum) ProtoMessage() {} +func (*DateRangeErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_date_range_error_46426a282e457061, []int{0} +} +func (m *DateRangeErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DateRangeErrorEnum.Unmarshal(m, b) +} +func (m *DateRangeErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DateRangeErrorEnum.Marshal(b, m, deterministic) +} +func (dst *DateRangeErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_DateRangeErrorEnum.Merge(dst, src) +} +func (m *DateRangeErrorEnum) XXX_Size() int { + return xxx_messageInfo_DateRangeErrorEnum.Size(m) +} +func (m *DateRangeErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_DateRangeErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_DateRangeErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*DateRangeErrorEnum)(nil), "google.ads.googleads.v0.errors.DateRangeErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.DateRangeErrorEnum_DateRangeError", DateRangeErrorEnum_DateRangeError_name, DateRangeErrorEnum_DateRangeError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/date_range_error.proto", fileDescriptor_date_range_error_46426a282e457061) +} + +var fileDescriptor_date_range_error_46426a282e457061 = []byte{ + // 353 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x91, 0xc1, 0x4a, 0xe3, 0x40, + 0x1c, 0xc6, 0x37, 0xed, 0x6e, 0x17, 0xa6, 0xcb, 0x6e, 0x98, 0x3d, 0x88, 0xa8, 0x45, 0x7a, 0x15, + 0x26, 0x01, 0xf1, 0xe4, 0xe9, 0xdf, 0xce, 0xa4, 0x04, 0x93, 0x49, 0x48, 0xd2, 0x56, 0x25, 0x30, + 0x44, 0x13, 0x82, 0xd0, 0x66, 0x4a, 0x52, 0xfb, 0x40, 0x1e, 0x7d, 0x13, 0xbd, 0xf8, 0x16, 0x3e, + 0x87, 0x24, 0x93, 0x16, 0x7b, 0xd0, 0x53, 0xbe, 0x7c, 0xf3, 0xfd, 0xe6, 0xcf, 0x7c, 0x7f, 0x74, + 0x91, 0x4b, 0x99, 0x2f, 0x32, 0x23, 0x49, 0x2b, 0x43, 0xc9, 0x5a, 0x6d, 0x4c, 0x23, 0x2b, 0x4b, + 0x59, 0x56, 0x46, 0x9a, 0xac, 0x33, 0x51, 0x26, 0x45, 0x9e, 0x89, 0xc6, 0x21, 0xab, 0x52, 0xae, + 0x25, 0x1e, 0xa8, 0x2c, 0x49, 0xd2, 0x8a, 0xec, 0x30, 0xb2, 0x31, 0x89, 0xc2, 0x86, 0xef, 0x1a, + 0xc2, 0x34, 0x59, 0x67, 0x41, 0x4d, 0xb2, 0xda, 0x63, 0xc5, 0xe3, 0x72, 0xf8, 0xa6, 0xa1, 0xbf, + 0xfb, 0x36, 0xfe, 0x87, 0xfa, 0x53, 0x1e, 0xfa, 0x6c, 0x6c, 0x5b, 0x36, 0xa3, 0xfa, 0x0f, 0xdc, + 0x47, 0xbf, 0xa7, 0xfc, 0x8a, 0x7b, 0x73, 0xae, 0x6b, 0x58, 0x47, 0x7f, 0x6c, 0x3e, 0x03, 0xc7, + 0xa6, 0x82, 0x42, 0xc4, 0xf4, 0x0e, 0x3e, 0x41, 0x87, 0x61, 0x04, 0x41, 0xd4, 0xfc, 0x0b, 0xb0, + 0x22, 0x16, 0x08, 0xc6, 0xdb, 0xe3, 0x2e, 0x3e, 0x42, 0x07, 0x63, 0xe0, 0xdc, 0x8b, 0x44, 0xc8, + 0xda, 0x4c, 0xe4, 0x09, 0x1f, 0xc2, 0x48, 0xff, 0x89, 0x4f, 0xd1, 0xb1, 0x02, 0x5c, 0xb8, 0xb6, + 0xdd, 0xa9, 0x2b, 0xc0, 0x71, 0xbc, 0x39, 0x8c, 0x1c, 0xa6, 0xf0, 0x5f, 0xd8, 0x40, 0x67, 0x2d, + 0xee, 0x7a, 0xd4, 0xb6, 0x6e, 0xc4, 0xa7, 0x59, 0xb6, 0x25, 0xc0, 0x09, 0x18, 0xd0, 0xd6, 0x65, + 0x54, 0xef, 0x8d, 0x5e, 0x34, 0x34, 0xbc, 0x97, 0x4b, 0xf2, 0x7d, 0x1f, 0xa3, 0xff, 0xfb, 0xaf, + 0xf6, 0xeb, 0x12, 0x7d, 0xed, 0x96, 0xb6, 0x58, 0x2e, 0x17, 0x49, 0x91, 0x13, 0x59, 0xe6, 0x46, + 0x9e, 0x15, 0x4d, 0xc5, 0xdb, 0x6d, 0xac, 0x1e, 0xaa, 0xaf, 0x96, 0x73, 0xa9, 0x3e, 0x4f, 0x9d, + 0xee, 0x04, 0xe0, 0xb9, 0x33, 0x98, 0xa8, 0xcb, 0x20, 0xad, 0x88, 0x92, 0xb5, 0x9a, 0x99, 0xa4, + 0x19, 0x59, 0xbd, 0x6e, 0x03, 0x31, 0xa4, 0x55, 0xbc, 0x0b, 0xc4, 0x33, 0x33, 0x56, 0x81, 0xbb, + 0x5e, 0x33, 0xf8, 0xfc, 0x23, 0x00, 0x00, 0xff, 0xff, 0x76, 0x21, 0xc0, 0x89, 0x14, 0x02, 0x00, + 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/distinct_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/distinct_error.pb.go new file mode 100644 index 000000000..c86789c7b --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/distinct_error.pb.go @@ -0,0 +1,114 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/distinct_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible distinct errors. +type DistinctErrorEnum_DistinctError int32 + +const ( + // Enum unspecified. + DistinctErrorEnum_UNSPECIFIED DistinctErrorEnum_DistinctError = 0 + // The received error code is not known in this version. + DistinctErrorEnum_UNKNOWN DistinctErrorEnum_DistinctError = 1 + // Duplicate element. + DistinctErrorEnum_DUPLICATE_ELEMENT DistinctErrorEnum_DistinctError = 2 + // Duplicate type. + DistinctErrorEnum_DUPLICATE_TYPE DistinctErrorEnum_DistinctError = 3 +) + +var DistinctErrorEnum_DistinctError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "DUPLICATE_ELEMENT", + 3: "DUPLICATE_TYPE", +} +var DistinctErrorEnum_DistinctError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "DUPLICATE_ELEMENT": 2, + "DUPLICATE_TYPE": 3, +} + +func (x DistinctErrorEnum_DistinctError) String() string { + return proto.EnumName(DistinctErrorEnum_DistinctError_name, int32(x)) +} +func (DistinctErrorEnum_DistinctError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_distinct_error_5ad5da077f636ddb, []int{0, 0} +} + +// Container for enum describing possible distinct errors. +type DistinctErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DistinctErrorEnum) Reset() { *m = DistinctErrorEnum{} } +func (m *DistinctErrorEnum) String() string { return proto.CompactTextString(m) } +func (*DistinctErrorEnum) ProtoMessage() {} +func (*DistinctErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_distinct_error_5ad5da077f636ddb, []int{0} +} +func (m *DistinctErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DistinctErrorEnum.Unmarshal(m, b) +} +func (m *DistinctErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DistinctErrorEnum.Marshal(b, m, deterministic) +} +func (dst *DistinctErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_DistinctErrorEnum.Merge(dst, src) +} +func (m *DistinctErrorEnum) XXX_Size() int { + return xxx_messageInfo_DistinctErrorEnum.Size(m) +} +func (m *DistinctErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_DistinctErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_DistinctErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*DistinctErrorEnum)(nil), "google.ads.googleads.v0.errors.DistinctErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.DistinctErrorEnum_DistinctError", DistinctErrorEnum_DistinctError_name, DistinctErrorEnum_DistinctError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/distinct_error.proto", fileDescriptor_distinct_error_5ad5da077f636ddb) +} + +var fileDescriptor_distinct_error_5ad5da077f636ddb = []byte{ + // 268 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x32, 0x4e, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xa2, + 0xa2, 0xfc, 0xa2, 0x62, 0xfd, 0x94, 0xcc, 0xe2, 0x92, 0xcc, 0xbc, 0xe4, 0x92, 0x78, 0x30, 0x5f, + 0xaf, 0xa0, 0x28, 0xbf, 0x24, 0x5f, 0x48, 0x0e, 0xa2, 0x52, 0x2f, 0x31, 0xa5, 0x58, 0x0f, 0xae, + 0x49, 0xaf, 0xcc, 0x40, 0x0f, 0xa2, 0x49, 0x29, 0x97, 0x4b, 0xd0, 0x05, 0xaa, 0xcf, 0x15, 0x24, + 0xe2, 0x9a, 0x57, 0x9a, 0xab, 0x14, 0xc1, 0xc5, 0x8b, 0x22, 0x28, 0xc4, 0xcf, 0xc5, 0x1d, 0xea, + 0x17, 0x1c, 0xe0, 0xea, 0xec, 0xe9, 0xe6, 0xe9, 0xea, 0x22, 0xc0, 0x20, 0xc4, 0xcd, 0xc5, 0x1e, + 0xea, 0xe7, 0xed, 0xe7, 0x1f, 0xee, 0x27, 0xc0, 0x28, 0x24, 0xca, 0x25, 0xe8, 0x12, 0x1a, 0xe0, + 0xe3, 0xe9, 0xec, 0x18, 0xe2, 0x1a, 0xef, 0xea, 0xe3, 0xea, 0xeb, 0xea, 0x17, 0x22, 0xc0, 0x24, + 0x24, 0xc4, 0xc5, 0x87, 0x10, 0x0e, 0x89, 0x0c, 0x70, 0x15, 0x60, 0x76, 0x3a, 0xc1, 0xc8, 0xa5, + 0x94, 0x9c, 0x9f, 0xab, 0x87, 0xdf, 0x55, 0x4e, 0x42, 0x28, 0xd6, 0x07, 0x80, 0x7c, 0x12, 0xc0, + 0x18, 0xe5, 0x02, 0xd5, 0x95, 0x9e, 0x9f, 0x93, 0x98, 0x97, 0xae, 0x97, 0x5f, 0x94, 0xae, 0x9f, + 0x9e, 0x9a, 0x07, 0xf6, 0x27, 0x2c, 0x40, 0x0a, 0x32, 0x8b, 0x71, 0x85, 0x8f, 0x35, 0x84, 0x5a, + 0xc4, 0xc4, 0xec, 0xee, 0xe8, 0xb8, 0x8a, 0x49, 0xce, 0x1d, 0x62, 0x98, 0x63, 0x4a, 0xb1, 0x1e, + 0x84, 0x09, 0x62, 0x85, 0x19, 0xe8, 0x81, 0xad, 0x2c, 0x3e, 0x05, 0x53, 0x10, 0xe3, 0x98, 0x52, + 0x1c, 0x03, 0x57, 0x10, 0x13, 0x66, 0x10, 0x03, 0x51, 0x90, 0xc4, 0x06, 0xb6, 0xd8, 0x18, 0x10, + 0x00, 0x00, 0xff, 0xff, 0x4a, 0x23, 0x22, 0x57, 0x97, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/enum_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/enum_error.pb.go new file mode 100644 index 000000000..44503b704 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/enum_error.pb.go @@ -0,0 +1,110 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/enum_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible enum errors. +type EnumErrorEnum_EnumError int32 + +const ( + // Enum unspecified. + EnumErrorEnum_UNSPECIFIED EnumErrorEnum_EnumError = 0 + // The received error code is not known in this version. + EnumErrorEnum_UNKNOWN EnumErrorEnum_EnumError = 1 + // The enum value is not permitted. + EnumErrorEnum_ENUM_VALUE_NOT_PERMITTED EnumErrorEnum_EnumError = 3 +) + +var EnumErrorEnum_EnumError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 3: "ENUM_VALUE_NOT_PERMITTED", +} +var EnumErrorEnum_EnumError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "ENUM_VALUE_NOT_PERMITTED": 3, +} + +func (x EnumErrorEnum_EnumError) String() string { + return proto.EnumName(EnumErrorEnum_EnumError_name, int32(x)) +} +func (EnumErrorEnum_EnumError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_enum_error_95b237d25cdd3851, []int{0, 0} +} + +// Container for enum describing possible enum errors. +type EnumErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *EnumErrorEnum) Reset() { *m = EnumErrorEnum{} } +func (m *EnumErrorEnum) String() string { return proto.CompactTextString(m) } +func (*EnumErrorEnum) ProtoMessage() {} +func (*EnumErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_enum_error_95b237d25cdd3851, []int{0} +} +func (m *EnumErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_EnumErrorEnum.Unmarshal(m, b) +} +func (m *EnumErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_EnumErrorEnum.Marshal(b, m, deterministic) +} +func (dst *EnumErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_EnumErrorEnum.Merge(dst, src) +} +func (m *EnumErrorEnum) XXX_Size() int { + return xxx_messageInfo_EnumErrorEnum.Size(m) +} +func (m *EnumErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_EnumErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_EnumErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*EnumErrorEnum)(nil), "google.ads.googleads.v0.errors.EnumErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.EnumErrorEnum_EnumError", EnumErrorEnum_EnumError_name, EnumErrorEnum_EnumError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/enum_error.proto", fileDescriptor_enum_error_95b237d25cdd3851) +} + +var fileDescriptor_enum_error_95b237d25cdd3851 = []byte{ + // 257 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xd2, 0x4f, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0x86, 0x32, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xa2, 0xa2, + 0xfc, 0xa2, 0x62, 0xfd, 0xd4, 0xbc, 0xd2, 0xdc, 0x78, 0x30, 0x5b, 0xaf, 0xa0, 0x28, 0xbf, 0x24, + 0x5f, 0x48, 0x0e, 0xa2, 0x4a, 0x2f, 0x31, 0xa5, 0x58, 0x0f, 0xae, 0x41, 0xaf, 0xcc, 0x40, 0x0f, + 0xa2, 0x41, 0x29, 0x82, 0x8b, 0xd7, 0x35, 0xaf, 0x34, 0xd7, 0x15, 0xc4, 0x03, 0x31, 0x94, 0xdc, + 0xb9, 0x38, 0xe1, 0x02, 0x42, 0xfc, 0x5c, 0xdc, 0xa1, 0x7e, 0xc1, 0x01, 0xae, 0xce, 0x9e, 0x6e, + 0x9e, 0xae, 0x2e, 0x02, 0x0c, 0x42, 0xdc, 0x5c, 0xec, 0xa1, 0x7e, 0xde, 0x7e, 0xfe, 0xe1, 0x7e, + 0x02, 0x8c, 0x42, 0x32, 0x5c, 0x12, 0xae, 0x7e, 0xa1, 0xbe, 0xf1, 0x61, 0x8e, 0x3e, 0xa1, 0xae, + 0xf1, 0x7e, 0xfe, 0x21, 0xf1, 0x01, 0xae, 0x41, 0xbe, 0x9e, 0x21, 0x21, 0xae, 0x2e, 0x02, 0xcc, + 0x4e, 0x47, 0x18, 0xb9, 0x94, 0x92, 0xf3, 0x73, 0xf5, 0xf0, 0x3b, 0xc0, 0x89, 0x0f, 0x6e, 0x5b, + 0x00, 0xc8, 0xc1, 0x01, 0x8c, 0x51, 0x2e, 0x50, 0x1d, 0xe9, 0xf9, 0x39, 0x89, 0x79, 0xe9, 0x7a, + 0xf9, 0x45, 0xe9, 0xfa, 0xe9, 0xa9, 0x79, 0x60, 0xef, 0xc0, 0xfc, 0x5c, 0x90, 0x59, 0x8c, 0x2b, + 0x08, 0xac, 0x21, 0xd4, 0x22, 0x26, 0x66, 0x77, 0x47, 0xc7, 0x55, 0x4c, 0x72, 0xee, 0x10, 0xc3, + 0x1c, 0x53, 0x8a, 0xf5, 0x20, 0x4c, 0x10, 0x2b, 0xcc, 0x40, 0x0f, 0x6c, 0x65, 0xf1, 0x29, 0x98, + 0x82, 0x18, 0xc7, 0x94, 0xe2, 0x18, 0xb8, 0x82, 0x98, 0x30, 0x83, 0x18, 0x88, 0x82, 0x24, 0x36, + 0xb0, 0xc5, 0xc6, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0xb1, 0xa7, 0x5a, 0xd1, 0x7a, 0x01, 0x00, + 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/errors.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/errors.pb.go new file mode 100644 index 000000000..fb8f7fb36 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/errors.pb.go @@ -0,0 +1,2962 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/errors.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import common "google.golang.org/genproto/googleapis/ads/googleads/v0/common" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Describes how a GoogleAds API call failed. It's returned inside +// google.rpc.Status.details when a call fails. +type GoogleAdsFailure struct { + // The list of errors that occurred. + Errors []*GoogleAdsError `protobuf:"bytes,1,rep,name=errors,proto3" json:"errors,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GoogleAdsFailure) Reset() { *m = GoogleAdsFailure{} } +func (m *GoogleAdsFailure) String() string { return proto.CompactTextString(m) } +func (*GoogleAdsFailure) ProtoMessage() {} +func (*GoogleAdsFailure) Descriptor() ([]byte, []int) { + return fileDescriptor_errors_fa6b3b0791612cfd, []int{0} +} +func (m *GoogleAdsFailure) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GoogleAdsFailure.Unmarshal(m, b) +} +func (m *GoogleAdsFailure) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GoogleAdsFailure.Marshal(b, m, deterministic) +} +func (dst *GoogleAdsFailure) XXX_Merge(src proto.Message) { + xxx_messageInfo_GoogleAdsFailure.Merge(dst, src) +} +func (m *GoogleAdsFailure) XXX_Size() int { + return xxx_messageInfo_GoogleAdsFailure.Size(m) +} +func (m *GoogleAdsFailure) XXX_DiscardUnknown() { + xxx_messageInfo_GoogleAdsFailure.DiscardUnknown(m) +} + +var xxx_messageInfo_GoogleAdsFailure proto.InternalMessageInfo + +func (m *GoogleAdsFailure) GetErrors() []*GoogleAdsError { + if m != nil { + return m.Errors + } + return nil +} + +// GoogleAds-specific error. +type GoogleAdsError struct { + // An enum value that indicates which error occurred. + ErrorCode *ErrorCode `protobuf:"bytes,1,opt,name=error_code,json=errorCode,proto3" json:"error_code,omitempty"` + // A human-readable description of the error. + Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` + // The value that triggered the error. + Trigger *common.Value `protobuf:"bytes,3,opt,name=trigger,proto3" json:"trigger,omitempty"` + // Describes the part of the request proto that caused the error. + Location *ErrorLocation `protobuf:"bytes,4,opt,name=location,proto3" json:"location,omitempty"` + // Additional error details, which are returned by certain error codes. Most + // error codes do not include details. + Details *ErrorDetails `protobuf:"bytes,5,opt,name=details,proto3" json:"details,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GoogleAdsError) Reset() { *m = GoogleAdsError{} } +func (m *GoogleAdsError) String() string { return proto.CompactTextString(m) } +func (*GoogleAdsError) ProtoMessage() {} +func (*GoogleAdsError) Descriptor() ([]byte, []int) { + return fileDescriptor_errors_fa6b3b0791612cfd, []int{1} +} +func (m *GoogleAdsError) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GoogleAdsError.Unmarshal(m, b) +} +func (m *GoogleAdsError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GoogleAdsError.Marshal(b, m, deterministic) +} +func (dst *GoogleAdsError) XXX_Merge(src proto.Message) { + xxx_messageInfo_GoogleAdsError.Merge(dst, src) +} +func (m *GoogleAdsError) XXX_Size() int { + return xxx_messageInfo_GoogleAdsError.Size(m) +} +func (m *GoogleAdsError) XXX_DiscardUnknown() { + xxx_messageInfo_GoogleAdsError.DiscardUnknown(m) +} + +var xxx_messageInfo_GoogleAdsError proto.InternalMessageInfo + +func (m *GoogleAdsError) GetErrorCode() *ErrorCode { + if m != nil { + return m.ErrorCode + } + return nil +} + +func (m *GoogleAdsError) GetMessage() string { + if m != nil { + return m.Message + } + return "" +} + +func (m *GoogleAdsError) GetTrigger() *common.Value { + if m != nil { + return m.Trigger + } + return nil +} + +func (m *GoogleAdsError) GetLocation() *ErrorLocation { + if m != nil { + return m.Location + } + return nil +} + +func (m *GoogleAdsError) GetDetails() *ErrorDetails { + if m != nil { + return m.Details + } + return nil +} + +// The error reason represented by type and enum. +type ErrorCode struct { + // The list of error enums + // + // Types that are valid to be assigned to ErrorCode: + // *ErrorCode_RequestError + // *ErrorCode_BiddingStrategyError + // *ErrorCode_UrlFieldError + // *ErrorCode_ListOperationError + // *ErrorCode_QueryError + // *ErrorCode_MutateError + // *ErrorCode_FieldMaskError + // *ErrorCode_AuthorizationError + // *ErrorCode_InternalError + // *ErrorCode_QuotaError + // *ErrorCode_AdError + // *ErrorCode_AdGroupError + // *ErrorCode_CampaignBudgetError + // *ErrorCode_CampaignError + // *ErrorCode_AuthenticationError + // *ErrorCode_AdGroupCriterionError + // *ErrorCode_AdCustomizerError + // *ErrorCode_AdGroupAdError + // *ErrorCode_AdSharingError + // *ErrorCode_AdxError + // *ErrorCode_BiddingError + // *ErrorCode_CampaignCriterionError + // *ErrorCode_CollectionSizeError + // *ErrorCode_CriterionError + // *ErrorCode_CustomerError + // *ErrorCode_DateError + // *ErrorCode_DateRangeError + // *ErrorCode_DistinctError + // *ErrorCode_FeedAttributeReferenceError + // *ErrorCode_FunctionError + // *ErrorCode_FunctionParsingError + // *ErrorCode_IdError + // *ErrorCode_ImageError + // *ErrorCode_MediaBundleError + // *ErrorCode_MediaFileError + // *ErrorCode_MultiplierError + // *ErrorCode_NewResourceCreationError + // *ErrorCode_NotEmptyError + // *ErrorCode_NullError + // *ErrorCode_OperatorError + // *ErrorCode_RangeError + // *ErrorCode_RecommendationError + // *ErrorCode_RegionCodeError + // *ErrorCode_SettingError + // *ErrorCode_StringFormatError + // *ErrorCode_StringLengthError + // *ErrorCode_OperationAccessDeniedError + // *ErrorCode_ResourceAccessDeniedError + // *ErrorCode_ResourceCountLimitExceededError + // *ErrorCode_AdGroupBidModifierError + // *ErrorCode_ContextError + // *ErrorCode_FieldError + // *ErrorCode_SharedSetError + // *ErrorCode_SharedCriterionError + // *ErrorCode_CampaignSharedSetError + // *ErrorCode_ConversionActionError + // *ErrorCode_HeaderError + // *ErrorCode_DatabaseError + // *ErrorCode_PolicyFindingError + // *ErrorCode_CampaignGroupError + // *ErrorCode_EnumError + // *ErrorCode_KeywordPlanError + // *ErrorCode_KeywordPlanCampaignError + // *ErrorCode_KeywordPlanNegativeKeywordError + // *ErrorCode_KeywordPlanAdGroupError + // *ErrorCode_KeywordPlanKeywordError + // *ErrorCode_KeywordPlanIdeaError + // *ErrorCode_AccountBudgetProposalError + // *ErrorCode_UserListError + // *ErrorCode_ChangeStatusError + // *ErrorCode_FeedError + // *ErrorCode_GeoTargetConstantSuggestionError + // *ErrorCode_FeedItemError + // *ErrorCode_BillingSetupError + // *ErrorCode_CustomerClientLinkError + // *ErrorCode_CustomerManagerLinkError + // *ErrorCode_FeedMappingError + // *ErrorCode_CustomerFeedError + // *ErrorCode_AdGroupFeedError + // *ErrorCode_CampaignFeedError + ErrorCode isErrorCode_ErrorCode `protobuf_oneof:"error_code"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ErrorCode) Reset() { *m = ErrorCode{} } +func (m *ErrorCode) String() string { return proto.CompactTextString(m) } +func (*ErrorCode) ProtoMessage() {} +func (*ErrorCode) Descriptor() ([]byte, []int) { + return fileDescriptor_errors_fa6b3b0791612cfd, []int{2} +} +func (m *ErrorCode) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ErrorCode.Unmarshal(m, b) +} +func (m *ErrorCode) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ErrorCode.Marshal(b, m, deterministic) +} +func (dst *ErrorCode) XXX_Merge(src proto.Message) { + xxx_messageInfo_ErrorCode.Merge(dst, src) +} +func (m *ErrorCode) XXX_Size() int { + return xxx_messageInfo_ErrorCode.Size(m) +} +func (m *ErrorCode) XXX_DiscardUnknown() { + xxx_messageInfo_ErrorCode.DiscardUnknown(m) +} + +var xxx_messageInfo_ErrorCode proto.InternalMessageInfo + +type isErrorCode_ErrorCode interface { + isErrorCode_ErrorCode() +} + +type ErrorCode_RequestError struct { + RequestError RequestErrorEnum_RequestError `protobuf:"varint,1,opt,name=request_error,json=requestError,proto3,enum=google.ads.googleads.v0.errors.RequestErrorEnum_RequestError,oneof"` +} + +type ErrorCode_BiddingStrategyError struct { + BiddingStrategyError BiddingStrategyErrorEnum_BiddingStrategyError `protobuf:"varint,2,opt,name=bidding_strategy_error,json=biddingStrategyError,proto3,enum=google.ads.googleads.v0.errors.BiddingStrategyErrorEnum_BiddingStrategyError,oneof"` +} + +type ErrorCode_UrlFieldError struct { + UrlFieldError UrlFieldErrorEnum_UrlFieldError `protobuf:"varint,3,opt,name=url_field_error,json=urlFieldError,proto3,enum=google.ads.googleads.v0.errors.UrlFieldErrorEnum_UrlFieldError,oneof"` +} + +type ErrorCode_ListOperationError struct { + ListOperationError ListOperationErrorEnum_ListOperationError `protobuf:"varint,4,opt,name=list_operation_error,json=listOperationError,proto3,enum=google.ads.googleads.v0.errors.ListOperationErrorEnum_ListOperationError,oneof"` +} + +type ErrorCode_QueryError struct { + QueryError QueryErrorEnum_QueryError `protobuf:"varint,5,opt,name=query_error,json=queryError,proto3,enum=google.ads.googleads.v0.errors.QueryErrorEnum_QueryError,oneof"` +} + +type ErrorCode_MutateError struct { + MutateError MutateErrorEnum_MutateError `protobuf:"varint,7,opt,name=mutate_error,json=mutateError,proto3,enum=google.ads.googleads.v0.errors.MutateErrorEnum_MutateError,oneof"` +} + +type ErrorCode_FieldMaskError struct { + FieldMaskError FieldMaskErrorEnum_FieldMaskError `protobuf:"varint,8,opt,name=field_mask_error,json=fieldMaskError,proto3,enum=google.ads.googleads.v0.errors.FieldMaskErrorEnum_FieldMaskError,oneof"` +} + +type ErrorCode_AuthorizationError struct { + AuthorizationError AuthorizationErrorEnum_AuthorizationError `protobuf:"varint,9,opt,name=authorization_error,json=authorizationError,proto3,enum=google.ads.googleads.v0.errors.AuthorizationErrorEnum_AuthorizationError,oneof"` +} + +type ErrorCode_InternalError struct { + InternalError InternalErrorEnum_InternalError `protobuf:"varint,10,opt,name=internal_error,json=internalError,proto3,enum=google.ads.googleads.v0.errors.InternalErrorEnum_InternalError,oneof"` +} + +type ErrorCode_QuotaError struct { + QuotaError QuotaErrorEnum_QuotaError `protobuf:"varint,11,opt,name=quota_error,json=quotaError,proto3,enum=google.ads.googleads.v0.errors.QuotaErrorEnum_QuotaError,oneof"` +} + +type ErrorCode_AdError struct { + AdError AdErrorEnum_AdError `protobuf:"varint,12,opt,name=ad_error,json=adError,proto3,enum=google.ads.googleads.v0.errors.AdErrorEnum_AdError,oneof"` +} + +type ErrorCode_AdGroupError struct { + AdGroupError AdGroupErrorEnum_AdGroupError `protobuf:"varint,13,opt,name=ad_group_error,json=adGroupError,proto3,enum=google.ads.googleads.v0.errors.AdGroupErrorEnum_AdGroupError,oneof"` +} + +type ErrorCode_CampaignBudgetError struct { + CampaignBudgetError CampaignBudgetErrorEnum_CampaignBudgetError `protobuf:"varint,14,opt,name=campaign_budget_error,json=campaignBudgetError,proto3,enum=google.ads.googleads.v0.errors.CampaignBudgetErrorEnum_CampaignBudgetError,oneof"` +} + +type ErrorCode_CampaignError struct { + CampaignError CampaignErrorEnum_CampaignError `protobuf:"varint,15,opt,name=campaign_error,json=campaignError,proto3,enum=google.ads.googleads.v0.errors.CampaignErrorEnum_CampaignError,oneof"` +} + +type ErrorCode_AuthenticationError struct { + AuthenticationError AuthenticationErrorEnum_AuthenticationError `protobuf:"varint,17,opt,name=authentication_error,json=authenticationError,proto3,enum=google.ads.googleads.v0.errors.AuthenticationErrorEnum_AuthenticationError,oneof"` +} + +type ErrorCode_AdGroupCriterionError struct { + AdGroupCriterionError AdGroupCriterionErrorEnum_AdGroupCriterionError `protobuf:"varint,18,opt,name=ad_group_criterion_error,json=adGroupCriterionError,proto3,enum=google.ads.googleads.v0.errors.AdGroupCriterionErrorEnum_AdGroupCriterionError,oneof"` +} + +type ErrorCode_AdCustomizerError struct { + AdCustomizerError AdCustomizerErrorEnum_AdCustomizerError `protobuf:"varint,19,opt,name=ad_customizer_error,json=adCustomizerError,proto3,enum=google.ads.googleads.v0.errors.AdCustomizerErrorEnum_AdCustomizerError,oneof"` +} + +type ErrorCode_AdGroupAdError struct { + AdGroupAdError AdGroupAdErrorEnum_AdGroupAdError `protobuf:"varint,21,opt,name=ad_group_ad_error,json=adGroupAdError,proto3,enum=google.ads.googleads.v0.errors.AdGroupAdErrorEnum_AdGroupAdError,oneof"` +} + +type ErrorCode_AdSharingError struct { + AdSharingError AdSharingErrorEnum_AdSharingError `protobuf:"varint,24,opt,name=ad_sharing_error,json=adSharingError,proto3,enum=google.ads.googleads.v0.errors.AdSharingErrorEnum_AdSharingError,oneof"` +} + +type ErrorCode_AdxError struct { + AdxError AdxErrorEnum_AdxError `protobuf:"varint,25,opt,name=adx_error,json=adxError,proto3,enum=google.ads.googleads.v0.errors.AdxErrorEnum_AdxError,oneof"` +} + +type ErrorCode_BiddingError struct { + BiddingError BiddingErrorEnum_BiddingError `protobuf:"varint,26,opt,name=bidding_error,json=biddingError,proto3,enum=google.ads.googleads.v0.errors.BiddingErrorEnum_BiddingError,oneof"` +} + +type ErrorCode_CampaignCriterionError struct { + CampaignCriterionError CampaignCriterionErrorEnum_CampaignCriterionError `protobuf:"varint,29,opt,name=campaign_criterion_error,json=campaignCriterionError,proto3,enum=google.ads.googleads.v0.errors.CampaignCriterionErrorEnum_CampaignCriterionError,oneof"` +} + +type ErrorCode_CollectionSizeError struct { + CollectionSizeError CollectionSizeErrorEnum_CollectionSizeError `protobuf:"varint,31,opt,name=collection_size_error,json=collectionSizeError,proto3,enum=google.ads.googleads.v0.errors.CollectionSizeErrorEnum_CollectionSizeError,oneof"` +} + +type ErrorCode_CriterionError struct { + CriterionError CriterionErrorEnum_CriterionError `protobuf:"varint,32,opt,name=criterion_error,json=criterionError,proto3,enum=google.ads.googleads.v0.errors.CriterionErrorEnum_CriterionError,oneof"` +} + +type ErrorCode_CustomerError struct { + CustomerError CustomerErrorEnum_CustomerError `protobuf:"varint,90,opt,name=customer_error,json=customerError,proto3,enum=google.ads.googleads.v0.errors.CustomerErrorEnum_CustomerError,oneof"` +} + +type ErrorCode_DateError struct { + DateError DateErrorEnum_DateError `protobuf:"varint,33,opt,name=date_error,json=dateError,proto3,enum=google.ads.googleads.v0.errors.DateErrorEnum_DateError,oneof"` +} + +type ErrorCode_DateRangeError struct { + DateRangeError DateRangeErrorEnum_DateRangeError `protobuf:"varint,34,opt,name=date_range_error,json=dateRangeError,proto3,enum=google.ads.googleads.v0.errors.DateRangeErrorEnum_DateRangeError,oneof"` +} + +type ErrorCode_DistinctError struct { + DistinctError DistinctErrorEnum_DistinctError `protobuf:"varint,35,opt,name=distinct_error,json=distinctError,proto3,enum=google.ads.googleads.v0.errors.DistinctErrorEnum_DistinctError,oneof"` +} + +type ErrorCode_FeedAttributeReferenceError struct { + FeedAttributeReferenceError FeedAttributeReferenceErrorEnum_FeedAttributeReferenceError `protobuf:"varint,36,opt,name=feed_attribute_reference_error,json=feedAttributeReferenceError,proto3,enum=google.ads.googleads.v0.errors.FeedAttributeReferenceErrorEnum_FeedAttributeReferenceError,oneof"` +} + +type ErrorCode_FunctionError struct { + FunctionError FunctionErrorEnum_FunctionError `protobuf:"varint,37,opt,name=function_error,json=functionError,proto3,enum=google.ads.googleads.v0.errors.FunctionErrorEnum_FunctionError,oneof"` +} + +type ErrorCode_FunctionParsingError struct { + FunctionParsingError FunctionParsingErrorEnum_FunctionParsingError `protobuf:"varint,38,opt,name=function_parsing_error,json=functionParsingError,proto3,enum=google.ads.googleads.v0.errors.FunctionParsingErrorEnum_FunctionParsingError,oneof"` +} + +type ErrorCode_IdError struct { + IdError IdErrorEnum_IdError `protobuf:"varint,39,opt,name=id_error,json=idError,proto3,enum=google.ads.googleads.v0.errors.IdErrorEnum_IdError,oneof"` +} + +type ErrorCode_ImageError struct { + ImageError ImageErrorEnum_ImageError `protobuf:"varint,40,opt,name=image_error,json=imageError,proto3,enum=google.ads.googleads.v0.errors.ImageErrorEnum_ImageError,oneof"` +} + +type ErrorCode_MediaBundleError struct { + MediaBundleError MediaBundleErrorEnum_MediaBundleError `protobuf:"varint,42,opt,name=media_bundle_error,json=mediaBundleError,proto3,enum=google.ads.googleads.v0.errors.MediaBundleErrorEnum_MediaBundleError,oneof"` +} + +type ErrorCode_MediaFileError struct { + MediaFileError MediaFileErrorEnum_MediaFileError `protobuf:"varint,86,opt,name=media_file_error,json=mediaFileError,proto3,enum=google.ads.googleads.v0.errors.MediaFileErrorEnum_MediaFileError,oneof"` +} + +type ErrorCode_MultiplierError struct { + MultiplierError MultiplierErrorEnum_MultiplierError `protobuf:"varint,44,opt,name=multiplier_error,json=multiplierError,proto3,enum=google.ads.googleads.v0.errors.MultiplierErrorEnum_MultiplierError,oneof"` +} + +type ErrorCode_NewResourceCreationError struct { + NewResourceCreationError NewResourceCreationErrorEnum_NewResourceCreationError `protobuf:"varint,45,opt,name=new_resource_creation_error,json=newResourceCreationError,proto3,enum=google.ads.googleads.v0.errors.NewResourceCreationErrorEnum_NewResourceCreationError,oneof"` +} + +type ErrorCode_NotEmptyError struct { + NotEmptyError NotEmptyErrorEnum_NotEmptyError `protobuf:"varint,46,opt,name=not_empty_error,json=notEmptyError,proto3,enum=google.ads.googleads.v0.errors.NotEmptyErrorEnum_NotEmptyError,oneof"` +} + +type ErrorCode_NullError struct { + NullError NullErrorEnum_NullError `protobuf:"varint,47,opt,name=null_error,json=nullError,proto3,enum=google.ads.googleads.v0.errors.NullErrorEnum_NullError,oneof"` +} + +type ErrorCode_OperatorError struct { + OperatorError OperatorErrorEnum_OperatorError `protobuf:"varint,48,opt,name=operator_error,json=operatorError,proto3,enum=google.ads.googleads.v0.errors.OperatorErrorEnum_OperatorError,oneof"` +} + +type ErrorCode_RangeError struct { + RangeError RangeErrorEnum_RangeError `protobuf:"varint,49,opt,name=range_error,json=rangeError,proto3,enum=google.ads.googleads.v0.errors.RangeErrorEnum_RangeError,oneof"` +} + +type ErrorCode_RecommendationError struct { + RecommendationError RecommendationErrorEnum_RecommendationError `protobuf:"varint,58,opt,name=recommendation_error,json=recommendationError,proto3,enum=google.ads.googleads.v0.errors.RecommendationErrorEnum_RecommendationError,oneof"` +} + +type ErrorCode_RegionCodeError struct { + RegionCodeError RegionCodeErrorEnum_RegionCodeError `protobuf:"varint,51,opt,name=region_code_error,json=regionCodeError,proto3,enum=google.ads.googleads.v0.errors.RegionCodeErrorEnum_RegionCodeError,oneof"` +} + +type ErrorCode_SettingError struct { + SettingError SettingErrorEnum_SettingError `protobuf:"varint,52,opt,name=setting_error,json=settingError,proto3,enum=google.ads.googleads.v0.errors.SettingErrorEnum_SettingError,oneof"` +} + +type ErrorCode_StringFormatError struct { + StringFormatError StringFormatErrorEnum_StringFormatError `protobuf:"varint,53,opt,name=string_format_error,json=stringFormatError,proto3,enum=google.ads.googleads.v0.errors.StringFormatErrorEnum_StringFormatError,oneof"` +} + +type ErrorCode_StringLengthError struct { + StringLengthError StringLengthErrorEnum_StringLengthError `protobuf:"varint,54,opt,name=string_length_error,json=stringLengthError,proto3,enum=google.ads.googleads.v0.errors.StringLengthErrorEnum_StringLengthError,oneof"` +} + +type ErrorCode_OperationAccessDeniedError struct { + OperationAccessDeniedError OperationAccessDeniedErrorEnum_OperationAccessDeniedError `protobuf:"varint,55,opt,name=operation_access_denied_error,json=operationAccessDeniedError,proto3,enum=google.ads.googleads.v0.errors.OperationAccessDeniedErrorEnum_OperationAccessDeniedError,oneof"` +} + +type ErrorCode_ResourceAccessDeniedError struct { + ResourceAccessDeniedError ResourceAccessDeniedErrorEnum_ResourceAccessDeniedError `protobuf:"varint,56,opt,name=resource_access_denied_error,json=resourceAccessDeniedError,proto3,enum=google.ads.googleads.v0.errors.ResourceAccessDeniedErrorEnum_ResourceAccessDeniedError,oneof"` +} + +type ErrorCode_ResourceCountLimitExceededError struct { + ResourceCountLimitExceededError ResourceCountLimitExceededErrorEnum_ResourceCountLimitExceededError `protobuf:"varint,57,opt,name=resource_count_limit_exceeded_error,json=resourceCountLimitExceededError,proto3,enum=google.ads.googleads.v0.errors.ResourceCountLimitExceededErrorEnum_ResourceCountLimitExceededError,oneof"` +} + +type ErrorCode_AdGroupBidModifierError struct { + AdGroupBidModifierError AdGroupBidModifierErrorEnum_AdGroupBidModifierError `protobuf:"varint,59,opt,name=ad_group_bid_modifier_error,json=adGroupBidModifierError,proto3,enum=google.ads.googleads.v0.errors.AdGroupBidModifierErrorEnum_AdGroupBidModifierError,oneof"` +} + +type ErrorCode_ContextError struct { + ContextError ContextErrorEnum_ContextError `protobuf:"varint,60,opt,name=context_error,json=contextError,proto3,enum=google.ads.googleads.v0.errors.ContextErrorEnum_ContextError,oneof"` +} + +type ErrorCode_FieldError struct { + FieldError FieldErrorEnum_FieldError `protobuf:"varint,61,opt,name=field_error,json=fieldError,proto3,enum=google.ads.googleads.v0.errors.FieldErrorEnum_FieldError,oneof"` +} + +type ErrorCode_SharedSetError struct { + SharedSetError SharedSetErrorEnum_SharedSetError `protobuf:"varint,62,opt,name=shared_set_error,json=sharedSetError,proto3,enum=google.ads.googleads.v0.errors.SharedSetErrorEnum_SharedSetError,oneof"` +} + +type ErrorCode_SharedCriterionError struct { + SharedCriterionError SharedCriterionErrorEnum_SharedCriterionError `protobuf:"varint,63,opt,name=shared_criterion_error,json=sharedCriterionError,proto3,enum=google.ads.googleads.v0.errors.SharedCriterionErrorEnum_SharedCriterionError,oneof"` +} + +type ErrorCode_CampaignSharedSetError struct { + CampaignSharedSetError CampaignSharedSetErrorEnum_CampaignSharedSetError `protobuf:"varint,64,opt,name=campaign_shared_set_error,json=campaignSharedSetError,proto3,enum=google.ads.googleads.v0.errors.CampaignSharedSetErrorEnum_CampaignSharedSetError,oneof"` +} + +type ErrorCode_ConversionActionError struct { + ConversionActionError ConversionActionErrorEnum_ConversionActionError `protobuf:"varint,65,opt,name=conversion_action_error,json=conversionActionError,proto3,enum=google.ads.googleads.v0.errors.ConversionActionErrorEnum_ConversionActionError,oneof"` +} + +type ErrorCode_HeaderError struct { + HeaderError HeaderErrorEnum_HeaderError `protobuf:"varint,66,opt,name=header_error,json=headerError,proto3,enum=google.ads.googleads.v0.errors.HeaderErrorEnum_HeaderError,oneof"` +} + +type ErrorCode_DatabaseError struct { + DatabaseError DatabaseErrorEnum_DatabaseError `protobuf:"varint,67,opt,name=database_error,json=databaseError,proto3,enum=google.ads.googleads.v0.errors.DatabaseErrorEnum_DatabaseError,oneof"` +} + +type ErrorCode_PolicyFindingError struct { + PolicyFindingError PolicyFindingErrorEnum_PolicyFindingError `protobuf:"varint,68,opt,name=policy_finding_error,json=policyFindingError,proto3,enum=google.ads.googleads.v0.errors.PolicyFindingErrorEnum_PolicyFindingError,oneof"` +} + +type ErrorCode_CampaignGroupError struct { + CampaignGroupError CampaignGroupErrorEnum_CampaignGroupError `protobuf:"varint,69,opt,name=campaign_group_error,json=campaignGroupError,proto3,enum=google.ads.googleads.v0.errors.CampaignGroupErrorEnum_CampaignGroupError,oneof"` +} + +type ErrorCode_EnumError struct { + EnumError EnumErrorEnum_EnumError `protobuf:"varint,70,opt,name=enum_error,json=enumError,proto3,enum=google.ads.googleads.v0.errors.EnumErrorEnum_EnumError,oneof"` +} + +type ErrorCode_KeywordPlanError struct { + KeywordPlanError KeywordPlanErrorEnum_KeywordPlanError `protobuf:"varint,71,opt,name=keyword_plan_error,json=keywordPlanError,proto3,enum=google.ads.googleads.v0.errors.KeywordPlanErrorEnum_KeywordPlanError,oneof"` +} + +type ErrorCode_KeywordPlanCampaignError struct { + KeywordPlanCampaignError KeywordPlanCampaignErrorEnum_KeywordPlanCampaignError `protobuf:"varint,72,opt,name=keyword_plan_campaign_error,json=keywordPlanCampaignError,proto3,enum=google.ads.googleads.v0.errors.KeywordPlanCampaignErrorEnum_KeywordPlanCampaignError,oneof"` +} + +type ErrorCode_KeywordPlanNegativeKeywordError struct { + KeywordPlanNegativeKeywordError KeywordPlanNegativeKeywordErrorEnum_KeywordPlanNegativeKeywordError `protobuf:"varint,73,opt,name=keyword_plan_negative_keyword_error,json=keywordPlanNegativeKeywordError,proto3,enum=google.ads.googleads.v0.errors.KeywordPlanNegativeKeywordErrorEnum_KeywordPlanNegativeKeywordError,oneof"` +} + +type ErrorCode_KeywordPlanAdGroupError struct { + KeywordPlanAdGroupError KeywordPlanAdGroupErrorEnum_KeywordPlanAdGroupError `protobuf:"varint,74,opt,name=keyword_plan_ad_group_error,json=keywordPlanAdGroupError,proto3,enum=google.ads.googleads.v0.errors.KeywordPlanAdGroupErrorEnum_KeywordPlanAdGroupError,oneof"` +} + +type ErrorCode_KeywordPlanKeywordError struct { + KeywordPlanKeywordError KeywordPlanKeywordErrorEnum_KeywordPlanKeywordError `protobuf:"varint,75,opt,name=keyword_plan_keyword_error,json=keywordPlanKeywordError,proto3,enum=google.ads.googleads.v0.errors.KeywordPlanKeywordErrorEnum_KeywordPlanKeywordError,oneof"` +} + +type ErrorCode_KeywordPlanIdeaError struct { + KeywordPlanIdeaError KeywordPlanIdeaErrorEnum_KeywordPlanIdeaError `protobuf:"varint,76,opt,name=keyword_plan_idea_error,json=keywordPlanIdeaError,proto3,enum=google.ads.googleads.v0.errors.KeywordPlanIdeaErrorEnum_KeywordPlanIdeaError,oneof"` +} + +type ErrorCode_AccountBudgetProposalError struct { + AccountBudgetProposalError AccountBudgetProposalErrorEnum_AccountBudgetProposalError `protobuf:"varint,77,opt,name=account_budget_proposal_error,json=accountBudgetProposalError,proto3,enum=google.ads.googleads.v0.errors.AccountBudgetProposalErrorEnum_AccountBudgetProposalError,oneof"` +} + +type ErrorCode_UserListError struct { + UserListError UserListErrorEnum_UserListError `protobuf:"varint,78,opt,name=user_list_error,json=userListError,proto3,enum=google.ads.googleads.v0.errors.UserListErrorEnum_UserListError,oneof"` +} + +type ErrorCode_ChangeStatusError struct { + ChangeStatusError ChangeStatusErrorEnum_ChangeStatusError `protobuf:"varint,79,opt,name=change_status_error,json=changeStatusError,proto3,enum=google.ads.googleads.v0.errors.ChangeStatusErrorEnum_ChangeStatusError,oneof"` +} + +type ErrorCode_FeedError struct { + FeedError FeedErrorEnum_FeedError `protobuf:"varint,80,opt,name=feed_error,json=feedError,proto3,enum=google.ads.googleads.v0.errors.FeedErrorEnum_FeedError,oneof"` +} + +type ErrorCode_GeoTargetConstantSuggestionError struct { + GeoTargetConstantSuggestionError GeoTargetConstantSuggestionErrorEnum_GeoTargetConstantSuggestionError `protobuf:"varint,81,opt,name=geo_target_constant_suggestion_error,json=geoTargetConstantSuggestionError,proto3,enum=google.ads.googleads.v0.errors.GeoTargetConstantSuggestionErrorEnum_GeoTargetConstantSuggestionError,oneof"` +} + +type ErrorCode_FeedItemError struct { + FeedItemError FeedItemErrorEnum_FeedItemError `protobuf:"varint,83,opt,name=feed_item_error,json=feedItemError,proto3,enum=google.ads.googleads.v0.errors.FeedItemErrorEnum_FeedItemError,oneof"` +} + +type ErrorCode_BillingSetupError struct { + BillingSetupError BillingSetupErrorEnum_BillingSetupError `protobuf:"varint,87,opt,name=billing_setup_error,json=billingSetupError,proto3,enum=google.ads.googleads.v0.errors.BillingSetupErrorEnum_BillingSetupError,oneof"` +} + +type ErrorCode_CustomerClientLinkError struct { + CustomerClientLinkError CustomerClientLinkErrorEnum_CustomerClientLinkError `protobuf:"varint,88,opt,name=customer_client_link_error,json=customerClientLinkError,proto3,enum=google.ads.googleads.v0.errors.CustomerClientLinkErrorEnum_CustomerClientLinkError,oneof"` +} + +type ErrorCode_CustomerManagerLinkError struct { + CustomerManagerLinkError CustomerManagerLinkErrorEnum_CustomerManagerLinkError `protobuf:"varint,91,opt,name=customer_manager_link_error,json=customerManagerLinkError,proto3,enum=google.ads.googleads.v0.errors.CustomerManagerLinkErrorEnum_CustomerManagerLinkError,oneof"` +} + +type ErrorCode_FeedMappingError struct { + FeedMappingError FeedMappingErrorEnum_FeedMappingError `protobuf:"varint,92,opt,name=feed_mapping_error,json=feedMappingError,proto3,enum=google.ads.googleads.v0.errors.FeedMappingErrorEnum_FeedMappingError,oneof"` +} + +type ErrorCode_CustomerFeedError struct { + CustomerFeedError CustomerFeedErrorEnum_CustomerFeedError `protobuf:"varint,93,opt,name=customer_feed_error,json=customerFeedError,proto3,enum=google.ads.googleads.v0.errors.CustomerFeedErrorEnum_CustomerFeedError,oneof"` +} + +type ErrorCode_AdGroupFeedError struct { + AdGroupFeedError AdGroupFeedErrorEnum_AdGroupFeedError `protobuf:"varint,94,opt,name=ad_group_feed_error,json=adGroupFeedError,proto3,enum=google.ads.googleads.v0.errors.AdGroupFeedErrorEnum_AdGroupFeedError,oneof"` +} + +type ErrorCode_CampaignFeedError struct { + CampaignFeedError CampaignFeedErrorEnum_CampaignFeedError `protobuf:"varint,96,opt,name=campaign_feed_error,json=campaignFeedError,proto3,enum=google.ads.googleads.v0.errors.CampaignFeedErrorEnum_CampaignFeedError,oneof"` +} + +func (*ErrorCode_RequestError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_BiddingStrategyError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_UrlFieldError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_ListOperationError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_QueryError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_MutateError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_FieldMaskError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_AuthorizationError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_InternalError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_QuotaError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_AdError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_AdGroupError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_CampaignBudgetError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_CampaignError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_AuthenticationError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_AdGroupCriterionError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_AdCustomizerError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_AdGroupAdError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_AdSharingError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_AdxError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_BiddingError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_CampaignCriterionError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_CollectionSizeError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_CriterionError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_CustomerError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_DateError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_DateRangeError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_DistinctError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_FeedAttributeReferenceError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_FunctionError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_FunctionParsingError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_IdError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_ImageError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_MediaBundleError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_MediaFileError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_MultiplierError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_NewResourceCreationError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_NotEmptyError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_NullError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_OperatorError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_RangeError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_RecommendationError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_RegionCodeError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_SettingError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_StringFormatError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_StringLengthError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_OperationAccessDeniedError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_ResourceAccessDeniedError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_ResourceCountLimitExceededError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_AdGroupBidModifierError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_ContextError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_FieldError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_SharedSetError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_SharedCriterionError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_CampaignSharedSetError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_ConversionActionError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_HeaderError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_DatabaseError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_PolicyFindingError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_CampaignGroupError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_EnumError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_KeywordPlanError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_KeywordPlanCampaignError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_KeywordPlanNegativeKeywordError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_KeywordPlanAdGroupError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_KeywordPlanKeywordError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_KeywordPlanIdeaError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_AccountBudgetProposalError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_UserListError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_ChangeStatusError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_FeedError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_GeoTargetConstantSuggestionError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_FeedItemError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_BillingSetupError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_CustomerClientLinkError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_CustomerManagerLinkError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_FeedMappingError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_CustomerFeedError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_AdGroupFeedError) isErrorCode_ErrorCode() {} + +func (*ErrorCode_CampaignFeedError) isErrorCode_ErrorCode() {} + +func (m *ErrorCode) GetErrorCode() isErrorCode_ErrorCode { + if m != nil { + return m.ErrorCode + } + return nil +} + +func (m *ErrorCode) GetRequestError() RequestErrorEnum_RequestError { + if x, ok := m.GetErrorCode().(*ErrorCode_RequestError); ok { + return x.RequestError + } + return RequestErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetBiddingStrategyError() BiddingStrategyErrorEnum_BiddingStrategyError { + if x, ok := m.GetErrorCode().(*ErrorCode_BiddingStrategyError); ok { + return x.BiddingStrategyError + } + return BiddingStrategyErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetUrlFieldError() UrlFieldErrorEnum_UrlFieldError { + if x, ok := m.GetErrorCode().(*ErrorCode_UrlFieldError); ok { + return x.UrlFieldError + } + return UrlFieldErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetListOperationError() ListOperationErrorEnum_ListOperationError { + if x, ok := m.GetErrorCode().(*ErrorCode_ListOperationError); ok { + return x.ListOperationError + } + return ListOperationErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetQueryError() QueryErrorEnum_QueryError { + if x, ok := m.GetErrorCode().(*ErrorCode_QueryError); ok { + return x.QueryError + } + return QueryErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetMutateError() MutateErrorEnum_MutateError { + if x, ok := m.GetErrorCode().(*ErrorCode_MutateError); ok { + return x.MutateError + } + return MutateErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetFieldMaskError() FieldMaskErrorEnum_FieldMaskError { + if x, ok := m.GetErrorCode().(*ErrorCode_FieldMaskError); ok { + return x.FieldMaskError + } + return FieldMaskErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetAuthorizationError() AuthorizationErrorEnum_AuthorizationError { + if x, ok := m.GetErrorCode().(*ErrorCode_AuthorizationError); ok { + return x.AuthorizationError + } + return AuthorizationErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetInternalError() InternalErrorEnum_InternalError { + if x, ok := m.GetErrorCode().(*ErrorCode_InternalError); ok { + return x.InternalError + } + return InternalErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetQuotaError() QuotaErrorEnum_QuotaError { + if x, ok := m.GetErrorCode().(*ErrorCode_QuotaError); ok { + return x.QuotaError + } + return QuotaErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetAdError() AdErrorEnum_AdError { + if x, ok := m.GetErrorCode().(*ErrorCode_AdError); ok { + return x.AdError + } + return AdErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetAdGroupError() AdGroupErrorEnum_AdGroupError { + if x, ok := m.GetErrorCode().(*ErrorCode_AdGroupError); ok { + return x.AdGroupError + } + return AdGroupErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetCampaignBudgetError() CampaignBudgetErrorEnum_CampaignBudgetError { + if x, ok := m.GetErrorCode().(*ErrorCode_CampaignBudgetError); ok { + return x.CampaignBudgetError + } + return CampaignBudgetErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetCampaignError() CampaignErrorEnum_CampaignError { + if x, ok := m.GetErrorCode().(*ErrorCode_CampaignError); ok { + return x.CampaignError + } + return CampaignErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetAuthenticationError() AuthenticationErrorEnum_AuthenticationError { + if x, ok := m.GetErrorCode().(*ErrorCode_AuthenticationError); ok { + return x.AuthenticationError + } + return AuthenticationErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetAdGroupCriterionError() AdGroupCriterionErrorEnum_AdGroupCriterionError { + if x, ok := m.GetErrorCode().(*ErrorCode_AdGroupCriterionError); ok { + return x.AdGroupCriterionError + } + return AdGroupCriterionErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetAdCustomizerError() AdCustomizerErrorEnum_AdCustomizerError { + if x, ok := m.GetErrorCode().(*ErrorCode_AdCustomizerError); ok { + return x.AdCustomizerError + } + return AdCustomizerErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetAdGroupAdError() AdGroupAdErrorEnum_AdGroupAdError { + if x, ok := m.GetErrorCode().(*ErrorCode_AdGroupAdError); ok { + return x.AdGroupAdError + } + return AdGroupAdErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetAdSharingError() AdSharingErrorEnum_AdSharingError { + if x, ok := m.GetErrorCode().(*ErrorCode_AdSharingError); ok { + return x.AdSharingError + } + return AdSharingErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetAdxError() AdxErrorEnum_AdxError { + if x, ok := m.GetErrorCode().(*ErrorCode_AdxError); ok { + return x.AdxError + } + return AdxErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetBiddingError() BiddingErrorEnum_BiddingError { + if x, ok := m.GetErrorCode().(*ErrorCode_BiddingError); ok { + return x.BiddingError + } + return BiddingErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetCampaignCriterionError() CampaignCriterionErrorEnum_CampaignCriterionError { + if x, ok := m.GetErrorCode().(*ErrorCode_CampaignCriterionError); ok { + return x.CampaignCriterionError + } + return CampaignCriterionErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetCollectionSizeError() CollectionSizeErrorEnum_CollectionSizeError { + if x, ok := m.GetErrorCode().(*ErrorCode_CollectionSizeError); ok { + return x.CollectionSizeError + } + return CollectionSizeErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetCriterionError() CriterionErrorEnum_CriterionError { + if x, ok := m.GetErrorCode().(*ErrorCode_CriterionError); ok { + return x.CriterionError + } + return CriterionErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetCustomerError() CustomerErrorEnum_CustomerError { + if x, ok := m.GetErrorCode().(*ErrorCode_CustomerError); ok { + return x.CustomerError + } + return CustomerErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetDateError() DateErrorEnum_DateError { + if x, ok := m.GetErrorCode().(*ErrorCode_DateError); ok { + return x.DateError + } + return DateErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetDateRangeError() DateRangeErrorEnum_DateRangeError { + if x, ok := m.GetErrorCode().(*ErrorCode_DateRangeError); ok { + return x.DateRangeError + } + return DateRangeErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetDistinctError() DistinctErrorEnum_DistinctError { + if x, ok := m.GetErrorCode().(*ErrorCode_DistinctError); ok { + return x.DistinctError + } + return DistinctErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetFeedAttributeReferenceError() FeedAttributeReferenceErrorEnum_FeedAttributeReferenceError { + if x, ok := m.GetErrorCode().(*ErrorCode_FeedAttributeReferenceError); ok { + return x.FeedAttributeReferenceError + } + return FeedAttributeReferenceErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetFunctionError() FunctionErrorEnum_FunctionError { + if x, ok := m.GetErrorCode().(*ErrorCode_FunctionError); ok { + return x.FunctionError + } + return FunctionErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetFunctionParsingError() FunctionParsingErrorEnum_FunctionParsingError { + if x, ok := m.GetErrorCode().(*ErrorCode_FunctionParsingError); ok { + return x.FunctionParsingError + } + return FunctionParsingErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetIdError() IdErrorEnum_IdError { + if x, ok := m.GetErrorCode().(*ErrorCode_IdError); ok { + return x.IdError + } + return IdErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetImageError() ImageErrorEnum_ImageError { + if x, ok := m.GetErrorCode().(*ErrorCode_ImageError); ok { + return x.ImageError + } + return ImageErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetMediaBundleError() MediaBundleErrorEnum_MediaBundleError { + if x, ok := m.GetErrorCode().(*ErrorCode_MediaBundleError); ok { + return x.MediaBundleError + } + return MediaBundleErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetMediaFileError() MediaFileErrorEnum_MediaFileError { + if x, ok := m.GetErrorCode().(*ErrorCode_MediaFileError); ok { + return x.MediaFileError + } + return MediaFileErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetMultiplierError() MultiplierErrorEnum_MultiplierError { + if x, ok := m.GetErrorCode().(*ErrorCode_MultiplierError); ok { + return x.MultiplierError + } + return MultiplierErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetNewResourceCreationError() NewResourceCreationErrorEnum_NewResourceCreationError { + if x, ok := m.GetErrorCode().(*ErrorCode_NewResourceCreationError); ok { + return x.NewResourceCreationError + } + return NewResourceCreationErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetNotEmptyError() NotEmptyErrorEnum_NotEmptyError { + if x, ok := m.GetErrorCode().(*ErrorCode_NotEmptyError); ok { + return x.NotEmptyError + } + return NotEmptyErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetNullError() NullErrorEnum_NullError { + if x, ok := m.GetErrorCode().(*ErrorCode_NullError); ok { + return x.NullError + } + return NullErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetOperatorError() OperatorErrorEnum_OperatorError { + if x, ok := m.GetErrorCode().(*ErrorCode_OperatorError); ok { + return x.OperatorError + } + return OperatorErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetRangeError() RangeErrorEnum_RangeError { + if x, ok := m.GetErrorCode().(*ErrorCode_RangeError); ok { + return x.RangeError + } + return RangeErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetRecommendationError() RecommendationErrorEnum_RecommendationError { + if x, ok := m.GetErrorCode().(*ErrorCode_RecommendationError); ok { + return x.RecommendationError + } + return RecommendationErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetRegionCodeError() RegionCodeErrorEnum_RegionCodeError { + if x, ok := m.GetErrorCode().(*ErrorCode_RegionCodeError); ok { + return x.RegionCodeError + } + return RegionCodeErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetSettingError() SettingErrorEnum_SettingError { + if x, ok := m.GetErrorCode().(*ErrorCode_SettingError); ok { + return x.SettingError + } + return SettingErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetStringFormatError() StringFormatErrorEnum_StringFormatError { + if x, ok := m.GetErrorCode().(*ErrorCode_StringFormatError); ok { + return x.StringFormatError + } + return StringFormatErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetStringLengthError() StringLengthErrorEnum_StringLengthError { + if x, ok := m.GetErrorCode().(*ErrorCode_StringLengthError); ok { + return x.StringLengthError + } + return StringLengthErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetOperationAccessDeniedError() OperationAccessDeniedErrorEnum_OperationAccessDeniedError { + if x, ok := m.GetErrorCode().(*ErrorCode_OperationAccessDeniedError); ok { + return x.OperationAccessDeniedError + } + return OperationAccessDeniedErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetResourceAccessDeniedError() ResourceAccessDeniedErrorEnum_ResourceAccessDeniedError { + if x, ok := m.GetErrorCode().(*ErrorCode_ResourceAccessDeniedError); ok { + return x.ResourceAccessDeniedError + } + return ResourceAccessDeniedErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetResourceCountLimitExceededError() ResourceCountLimitExceededErrorEnum_ResourceCountLimitExceededError { + if x, ok := m.GetErrorCode().(*ErrorCode_ResourceCountLimitExceededError); ok { + return x.ResourceCountLimitExceededError + } + return ResourceCountLimitExceededErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetAdGroupBidModifierError() AdGroupBidModifierErrorEnum_AdGroupBidModifierError { + if x, ok := m.GetErrorCode().(*ErrorCode_AdGroupBidModifierError); ok { + return x.AdGroupBidModifierError + } + return AdGroupBidModifierErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetContextError() ContextErrorEnum_ContextError { + if x, ok := m.GetErrorCode().(*ErrorCode_ContextError); ok { + return x.ContextError + } + return ContextErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetFieldError() FieldErrorEnum_FieldError { + if x, ok := m.GetErrorCode().(*ErrorCode_FieldError); ok { + return x.FieldError + } + return FieldErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetSharedSetError() SharedSetErrorEnum_SharedSetError { + if x, ok := m.GetErrorCode().(*ErrorCode_SharedSetError); ok { + return x.SharedSetError + } + return SharedSetErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetSharedCriterionError() SharedCriterionErrorEnum_SharedCriterionError { + if x, ok := m.GetErrorCode().(*ErrorCode_SharedCriterionError); ok { + return x.SharedCriterionError + } + return SharedCriterionErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetCampaignSharedSetError() CampaignSharedSetErrorEnum_CampaignSharedSetError { + if x, ok := m.GetErrorCode().(*ErrorCode_CampaignSharedSetError); ok { + return x.CampaignSharedSetError + } + return CampaignSharedSetErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetConversionActionError() ConversionActionErrorEnum_ConversionActionError { + if x, ok := m.GetErrorCode().(*ErrorCode_ConversionActionError); ok { + return x.ConversionActionError + } + return ConversionActionErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetHeaderError() HeaderErrorEnum_HeaderError { + if x, ok := m.GetErrorCode().(*ErrorCode_HeaderError); ok { + return x.HeaderError + } + return HeaderErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetDatabaseError() DatabaseErrorEnum_DatabaseError { + if x, ok := m.GetErrorCode().(*ErrorCode_DatabaseError); ok { + return x.DatabaseError + } + return DatabaseErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetPolicyFindingError() PolicyFindingErrorEnum_PolicyFindingError { + if x, ok := m.GetErrorCode().(*ErrorCode_PolicyFindingError); ok { + return x.PolicyFindingError + } + return PolicyFindingErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetCampaignGroupError() CampaignGroupErrorEnum_CampaignGroupError { + if x, ok := m.GetErrorCode().(*ErrorCode_CampaignGroupError); ok { + return x.CampaignGroupError + } + return CampaignGroupErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetEnumError() EnumErrorEnum_EnumError { + if x, ok := m.GetErrorCode().(*ErrorCode_EnumError); ok { + return x.EnumError + } + return EnumErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetKeywordPlanError() KeywordPlanErrorEnum_KeywordPlanError { + if x, ok := m.GetErrorCode().(*ErrorCode_KeywordPlanError); ok { + return x.KeywordPlanError + } + return KeywordPlanErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetKeywordPlanCampaignError() KeywordPlanCampaignErrorEnum_KeywordPlanCampaignError { + if x, ok := m.GetErrorCode().(*ErrorCode_KeywordPlanCampaignError); ok { + return x.KeywordPlanCampaignError + } + return KeywordPlanCampaignErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetKeywordPlanNegativeKeywordError() KeywordPlanNegativeKeywordErrorEnum_KeywordPlanNegativeKeywordError { + if x, ok := m.GetErrorCode().(*ErrorCode_KeywordPlanNegativeKeywordError); ok { + return x.KeywordPlanNegativeKeywordError + } + return KeywordPlanNegativeKeywordErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetKeywordPlanAdGroupError() KeywordPlanAdGroupErrorEnum_KeywordPlanAdGroupError { + if x, ok := m.GetErrorCode().(*ErrorCode_KeywordPlanAdGroupError); ok { + return x.KeywordPlanAdGroupError + } + return KeywordPlanAdGroupErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetKeywordPlanKeywordError() KeywordPlanKeywordErrorEnum_KeywordPlanKeywordError { + if x, ok := m.GetErrorCode().(*ErrorCode_KeywordPlanKeywordError); ok { + return x.KeywordPlanKeywordError + } + return KeywordPlanKeywordErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetKeywordPlanIdeaError() KeywordPlanIdeaErrorEnum_KeywordPlanIdeaError { + if x, ok := m.GetErrorCode().(*ErrorCode_KeywordPlanIdeaError); ok { + return x.KeywordPlanIdeaError + } + return KeywordPlanIdeaErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetAccountBudgetProposalError() AccountBudgetProposalErrorEnum_AccountBudgetProposalError { + if x, ok := m.GetErrorCode().(*ErrorCode_AccountBudgetProposalError); ok { + return x.AccountBudgetProposalError + } + return AccountBudgetProposalErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetUserListError() UserListErrorEnum_UserListError { + if x, ok := m.GetErrorCode().(*ErrorCode_UserListError); ok { + return x.UserListError + } + return UserListErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetChangeStatusError() ChangeStatusErrorEnum_ChangeStatusError { + if x, ok := m.GetErrorCode().(*ErrorCode_ChangeStatusError); ok { + return x.ChangeStatusError + } + return ChangeStatusErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetFeedError() FeedErrorEnum_FeedError { + if x, ok := m.GetErrorCode().(*ErrorCode_FeedError); ok { + return x.FeedError + } + return FeedErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetGeoTargetConstantSuggestionError() GeoTargetConstantSuggestionErrorEnum_GeoTargetConstantSuggestionError { + if x, ok := m.GetErrorCode().(*ErrorCode_GeoTargetConstantSuggestionError); ok { + return x.GeoTargetConstantSuggestionError + } + return GeoTargetConstantSuggestionErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetFeedItemError() FeedItemErrorEnum_FeedItemError { + if x, ok := m.GetErrorCode().(*ErrorCode_FeedItemError); ok { + return x.FeedItemError + } + return FeedItemErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetBillingSetupError() BillingSetupErrorEnum_BillingSetupError { + if x, ok := m.GetErrorCode().(*ErrorCode_BillingSetupError); ok { + return x.BillingSetupError + } + return BillingSetupErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetCustomerClientLinkError() CustomerClientLinkErrorEnum_CustomerClientLinkError { + if x, ok := m.GetErrorCode().(*ErrorCode_CustomerClientLinkError); ok { + return x.CustomerClientLinkError + } + return CustomerClientLinkErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetCustomerManagerLinkError() CustomerManagerLinkErrorEnum_CustomerManagerLinkError { + if x, ok := m.GetErrorCode().(*ErrorCode_CustomerManagerLinkError); ok { + return x.CustomerManagerLinkError + } + return CustomerManagerLinkErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetFeedMappingError() FeedMappingErrorEnum_FeedMappingError { + if x, ok := m.GetErrorCode().(*ErrorCode_FeedMappingError); ok { + return x.FeedMappingError + } + return FeedMappingErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetCustomerFeedError() CustomerFeedErrorEnum_CustomerFeedError { + if x, ok := m.GetErrorCode().(*ErrorCode_CustomerFeedError); ok { + return x.CustomerFeedError + } + return CustomerFeedErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetAdGroupFeedError() AdGroupFeedErrorEnum_AdGroupFeedError { + if x, ok := m.GetErrorCode().(*ErrorCode_AdGroupFeedError); ok { + return x.AdGroupFeedError + } + return AdGroupFeedErrorEnum_UNSPECIFIED +} + +func (m *ErrorCode) GetCampaignFeedError() CampaignFeedErrorEnum_CampaignFeedError { + if x, ok := m.GetErrorCode().(*ErrorCode_CampaignFeedError); ok { + return x.CampaignFeedError + } + return CampaignFeedErrorEnum_UNSPECIFIED +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*ErrorCode) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _ErrorCode_OneofMarshaler, _ErrorCode_OneofUnmarshaler, _ErrorCode_OneofSizer, []interface{}{ + (*ErrorCode_RequestError)(nil), + (*ErrorCode_BiddingStrategyError)(nil), + (*ErrorCode_UrlFieldError)(nil), + (*ErrorCode_ListOperationError)(nil), + (*ErrorCode_QueryError)(nil), + (*ErrorCode_MutateError)(nil), + (*ErrorCode_FieldMaskError)(nil), + (*ErrorCode_AuthorizationError)(nil), + (*ErrorCode_InternalError)(nil), + (*ErrorCode_QuotaError)(nil), + (*ErrorCode_AdError)(nil), + (*ErrorCode_AdGroupError)(nil), + (*ErrorCode_CampaignBudgetError)(nil), + (*ErrorCode_CampaignError)(nil), + (*ErrorCode_AuthenticationError)(nil), + (*ErrorCode_AdGroupCriterionError)(nil), + (*ErrorCode_AdCustomizerError)(nil), + (*ErrorCode_AdGroupAdError)(nil), + (*ErrorCode_AdSharingError)(nil), + (*ErrorCode_AdxError)(nil), + (*ErrorCode_BiddingError)(nil), + (*ErrorCode_CampaignCriterionError)(nil), + (*ErrorCode_CollectionSizeError)(nil), + (*ErrorCode_CriterionError)(nil), + (*ErrorCode_CustomerError)(nil), + (*ErrorCode_DateError)(nil), + (*ErrorCode_DateRangeError)(nil), + (*ErrorCode_DistinctError)(nil), + (*ErrorCode_FeedAttributeReferenceError)(nil), + (*ErrorCode_FunctionError)(nil), + (*ErrorCode_FunctionParsingError)(nil), + (*ErrorCode_IdError)(nil), + (*ErrorCode_ImageError)(nil), + (*ErrorCode_MediaBundleError)(nil), + (*ErrorCode_MediaFileError)(nil), + (*ErrorCode_MultiplierError)(nil), + (*ErrorCode_NewResourceCreationError)(nil), + (*ErrorCode_NotEmptyError)(nil), + (*ErrorCode_NullError)(nil), + (*ErrorCode_OperatorError)(nil), + (*ErrorCode_RangeError)(nil), + (*ErrorCode_RecommendationError)(nil), + (*ErrorCode_RegionCodeError)(nil), + (*ErrorCode_SettingError)(nil), + (*ErrorCode_StringFormatError)(nil), + (*ErrorCode_StringLengthError)(nil), + (*ErrorCode_OperationAccessDeniedError)(nil), + (*ErrorCode_ResourceAccessDeniedError)(nil), + (*ErrorCode_ResourceCountLimitExceededError)(nil), + (*ErrorCode_AdGroupBidModifierError)(nil), + (*ErrorCode_ContextError)(nil), + (*ErrorCode_FieldError)(nil), + (*ErrorCode_SharedSetError)(nil), + (*ErrorCode_SharedCriterionError)(nil), + (*ErrorCode_CampaignSharedSetError)(nil), + (*ErrorCode_ConversionActionError)(nil), + (*ErrorCode_HeaderError)(nil), + (*ErrorCode_DatabaseError)(nil), + (*ErrorCode_PolicyFindingError)(nil), + (*ErrorCode_CampaignGroupError)(nil), + (*ErrorCode_EnumError)(nil), + (*ErrorCode_KeywordPlanError)(nil), + (*ErrorCode_KeywordPlanCampaignError)(nil), + (*ErrorCode_KeywordPlanNegativeKeywordError)(nil), + (*ErrorCode_KeywordPlanAdGroupError)(nil), + (*ErrorCode_KeywordPlanKeywordError)(nil), + (*ErrorCode_KeywordPlanIdeaError)(nil), + (*ErrorCode_AccountBudgetProposalError)(nil), + (*ErrorCode_UserListError)(nil), + (*ErrorCode_ChangeStatusError)(nil), + (*ErrorCode_FeedError)(nil), + (*ErrorCode_GeoTargetConstantSuggestionError)(nil), + (*ErrorCode_FeedItemError)(nil), + (*ErrorCode_BillingSetupError)(nil), + (*ErrorCode_CustomerClientLinkError)(nil), + (*ErrorCode_CustomerManagerLinkError)(nil), + (*ErrorCode_FeedMappingError)(nil), + (*ErrorCode_CustomerFeedError)(nil), + (*ErrorCode_AdGroupFeedError)(nil), + (*ErrorCode_CampaignFeedError)(nil), + } +} + +func _ErrorCode_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*ErrorCode) + // error_code + switch x := m.ErrorCode.(type) { + case *ErrorCode_RequestError: + b.EncodeVarint(1<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.RequestError)) + case *ErrorCode_BiddingStrategyError: + b.EncodeVarint(2<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.BiddingStrategyError)) + case *ErrorCode_UrlFieldError: + b.EncodeVarint(3<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.UrlFieldError)) + case *ErrorCode_ListOperationError: + b.EncodeVarint(4<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.ListOperationError)) + case *ErrorCode_QueryError: + b.EncodeVarint(5<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.QueryError)) + case *ErrorCode_MutateError: + b.EncodeVarint(7<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.MutateError)) + case *ErrorCode_FieldMaskError: + b.EncodeVarint(8<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.FieldMaskError)) + case *ErrorCode_AuthorizationError: + b.EncodeVarint(9<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.AuthorizationError)) + case *ErrorCode_InternalError: + b.EncodeVarint(10<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.InternalError)) + case *ErrorCode_QuotaError: + b.EncodeVarint(11<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.QuotaError)) + case *ErrorCode_AdError: + b.EncodeVarint(12<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.AdError)) + case *ErrorCode_AdGroupError: + b.EncodeVarint(13<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.AdGroupError)) + case *ErrorCode_CampaignBudgetError: + b.EncodeVarint(14<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.CampaignBudgetError)) + case *ErrorCode_CampaignError: + b.EncodeVarint(15<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.CampaignError)) + case *ErrorCode_AuthenticationError: + b.EncodeVarint(17<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.AuthenticationError)) + case *ErrorCode_AdGroupCriterionError: + b.EncodeVarint(18<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.AdGroupCriterionError)) + case *ErrorCode_AdCustomizerError: + b.EncodeVarint(19<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.AdCustomizerError)) + case *ErrorCode_AdGroupAdError: + b.EncodeVarint(21<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.AdGroupAdError)) + case *ErrorCode_AdSharingError: + b.EncodeVarint(24<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.AdSharingError)) + case *ErrorCode_AdxError: + b.EncodeVarint(25<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.AdxError)) + case *ErrorCode_BiddingError: + b.EncodeVarint(26<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.BiddingError)) + case *ErrorCode_CampaignCriterionError: + b.EncodeVarint(29<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.CampaignCriterionError)) + case *ErrorCode_CollectionSizeError: + b.EncodeVarint(31<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.CollectionSizeError)) + case *ErrorCode_CriterionError: + b.EncodeVarint(32<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.CriterionError)) + case *ErrorCode_CustomerError: + b.EncodeVarint(90<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.CustomerError)) + case *ErrorCode_DateError: + b.EncodeVarint(33<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.DateError)) + case *ErrorCode_DateRangeError: + b.EncodeVarint(34<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.DateRangeError)) + case *ErrorCode_DistinctError: + b.EncodeVarint(35<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.DistinctError)) + case *ErrorCode_FeedAttributeReferenceError: + b.EncodeVarint(36<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.FeedAttributeReferenceError)) + case *ErrorCode_FunctionError: + b.EncodeVarint(37<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.FunctionError)) + case *ErrorCode_FunctionParsingError: + b.EncodeVarint(38<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.FunctionParsingError)) + case *ErrorCode_IdError: + b.EncodeVarint(39<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.IdError)) + case *ErrorCode_ImageError: + b.EncodeVarint(40<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.ImageError)) + case *ErrorCode_MediaBundleError: + b.EncodeVarint(42<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.MediaBundleError)) + case *ErrorCode_MediaFileError: + b.EncodeVarint(86<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.MediaFileError)) + case *ErrorCode_MultiplierError: + b.EncodeVarint(44<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.MultiplierError)) + case *ErrorCode_NewResourceCreationError: + b.EncodeVarint(45<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.NewResourceCreationError)) + case *ErrorCode_NotEmptyError: + b.EncodeVarint(46<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.NotEmptyError)) + case *ErrorCode_NullError: + b.EncodeVarint(47<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.NullError)) + case *ErrorCode_OperatorError: + b.EncodeVarint(48<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.OperatorError)) + case *ErrorCode_RangeError: + b.EncodeVarint(49<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.RangeError)) + case *ErrorCode_RecommendationError: + b.EncodeVarint(58<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.RecommendationError)) + case *ErrorCode_RegionCodeError: + b.EncodeVarint(51<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.RegionCodeError)) + case *ErrorCode_SettingError: + b.EncodeVarint(52<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.SettingError)) + case *ErrorCode_StringFormatError: + b.EncodeVarint(53<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.StringFormatError)) + case *ErrorCode_StringLengthError: + b.EncodeVarint(54<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.StringLengthError)) + case *ErrorCode_OperationAccessDeniedError: + b.EncodeVarint(55<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.OperationAccessDeniedError)) + case *ErrorCode_ResourceAccessDeniedError: + b.EncodeVarint(56<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.ResourceAccessDeniedError)) + case *ErrorCode_ResourceCountLimitExceededError: + b.EncodeVarint(57<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.ResourceCountLimitExceededError)) + case *ErrorCode_AdGroupBidModifierError: + b.EncodeVarint(59<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.AdGroupBidModifierError)) + case *ErrorCode_ContextError: + b.EncodeVarint(60<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.ContextError)) + case *ErrorCode_FieldError: + b.EncodeVarint(61<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.FieldError)) + case *ErrorCode_SharedSetError: + b.EncodeVarint(62<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.SharedSetError)) + case *ErrorCode_SharedCriterionError: + b.EncodeVarint(63<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.SharedCriterionError)) + case *ErrorCode_CampaignSharedSetError: + b.EncodeVarint(64<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.CampaignSharedSetError)) + case *ErrorCode_ConversionActionError: + b.EncodeVarint(65<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.ConversionActionError)) + case *ErrorCode_HeaderError: + b.EncodeVarint(66<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.HeaderError)) + case *ErrorCode_DatabaseError: + b.EncodeVarint(67<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.DatabaseError)) + case *ErrorCode_PolicyFindingError: + b.EncodeVarint(68<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.PolicyFindingError)) + case *ErrorCode_CampaignGroupError: + b.EncodeVarint(69<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.CampaignGroupError)) + case *ErrorCode_EnumError: + b.EncodeVarint(70<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.EnumError)) + case *ErrorCode_KeywordPlanError: + b.EncodeVarint(71<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.KeywordPlanError)) + case *ErrorCode_KeywordPlanCampaignError: + b.EncodeVarint(72<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.KeywordPlanCampaignError)) + case *ErrorCode_KeywordPlanNegativeKeywordError: + b.EncodeVarint(73<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.KeywordPlanNegativeKeywordError)) + case *ErrorCode_KeywordPlanAdGroupError: + b.EncodeVarint(74<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.KeywordPlanAdGroupError)) + case *ErrorCode_KeywordPlanKeywordError: + b.EncodeVarint(75<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.KeywordPlanKeywordError)) + case *ErrorCode_KeywordPlanIdeaError: + b.EncodeVarint(76<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.KeywordPlanIdeaError)) + case *ErrorCode_AccountBudgetProposalError: + b.EncodeVarint(77<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.AccountBudgetProposalError)) + case *ErrorCode_UserListError: + b.EncodeVarint(78<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.UserListError)) + case *ErrorCode_ChangeStatusError: + b.EncodeVarint(79<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.ChangeStatusError)) + case *ErrorCode_FeedError: + b.EncodeVarint(80<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.FeedError)) + case *ErrorCode_GeoTargetConstantSuggestionError: + b.EncodeVarint(81<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.GeoTargetConstantSuggestionError)) + case *ErrorCode_FeedItemError: + b.EncodeVarint(83<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.FeedItemError)) + case *ErrorCode_BillingSetupError: + b.EncodeVarint(87<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.BillingSetupError)) + case *ErrorCode_CustomerClientLinkError: + b.EncodeVarint(88<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.CustomerClientLinkError)) + case *ErrorCode_CustomerManagerLinkError: + b.EncodeVarint(91<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.CustomerManagerLinkError)) + case *ErrorCode_FeedMappingError: + b.EncodeVarint(92<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.FeedMappingError)) + case *ErrorCode_CustomerFeedError: + b.EncodeVarint(93<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.CustomerFeedError)) + case *ErrorCode_AdGroupFeedError: + b.EncodeVarint(94<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.AdGroupFeedError)) + case *ErrorCode_CampaignFeedError: + b.EncodeVarint(96<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.CampaignFeedError)) + case nil: + default: + return fmt.Errorf("ErrorCode.ErrorCode has unexpected type %T", x) + } + return nil +} + +func _ErrorCode_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*ErrorCode) + switch tag { + case 1: // error_code.request_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_RequestError{RequestErrorEnum_RequestError(x)} + return true, err + case 2: // error_code.bidding_strategy_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_BiddingStrategyError{BiddingStrategyErrorEnum_BiddingStrategyError(x)} + return true, err + case 3: // error_code.url_field_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_UrlFieldError{UrlFieldErrorEnum_UrlFieldError(x)} + return true, err + case 4: // error_code.list_operation_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_ListOperationError{ListOperationErrorEnum_ListOperationError(x)} + return true, err + case 5: // error_code.query_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_QueryError{QueryErrorEnum_QueryError(x)} + return true, err + case 7: // error_code.mutate_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_MutateError{MutateErrorEnum_MutateError(x)} + return true, err + case 8: // error_code.field_mask_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_FieldMaskError{FieldMaskErrorEnum_FieldMaskError(x)} + return true, err + case 9: // error_code.authorization_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_AuthorizationError{AuthorizationErrorEnum_AuthorizationError(x)} + return true, err + case 10: // error_code.internal_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_InternalError{InternalErrorEnum_InternalError(x)} + return true, err + case 11: // error_code.quota_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_QuotaError{QuotaErrorEnum_QuotaError(x)} + return true, err + case 12: // error_code.ad_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_AdError{AdErrorEnum_AdError(x)} + return true, err + case 13: // error_code.ad_group_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_AdGroupError{AdGroupErrorEnum_AdGroupError(x)} + return true, err + case 14: // error_code.campaign_budget_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_CampaignBudgetError{CampaignBudgetErrorEnum_CampaignBudgetError(x)} + return true, err + case 15: // error_code.campaign_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_CampaignError{CampaignErrorEnum_CampaignError(x)} + return true, err + case 17: // error_code.authentication_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_AuthenticationError{AuthenticationErrorEnum_AuthenticationError(x)} + return true, err + case 18: // error_code.ad_group_criterion_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_AdGroupCriterionError{AdGroupCriterionErrorEnum_AdGroupCriterionError(x)} + return true, err + case 19: // error_code.ad_customizer_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_AdCustomizerError{AdCustomizerErrorEnum_AdCustomizerError(x)} + return true, err + case 21: // error_code.ad_group_ad_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_AdGroupAdError{AdGroupAdErrorEnum_AdGroupAdError(x)} + return true, err + case 24: // error_code.ad_sharing_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_AdSharingError{AdSharingErrorEnum_AdSharingError(x)} + return true, err + case 25: // error_code.adx_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_AdxError{AdxErrorEnum_AdxError(x)} + return true, err + case 26: // error_code.bidding_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_BiddingError{BiddingErrorEnum_BiddingError(x)} + return true, err + case 29: // error_code.campaign_criterion_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_CampaignCriterionError{CampaignCriterionErrorEnum_CampaignCriterionError(x)} + return true, err + case 31: // error_code.collection_size_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_CollectionSizeError{CollectionSizeErrorEnum_CollectionSizeError(x)} + return true, err + case 32: // error_code.criterion_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_CriterionError{CriterionErrorEnum_CriterionError(x)} + return true, err + case 90: // error_code.customer_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_CustomerError{CustomerErrorEnum_CustomerError(x)} + return true, err + case 33: // error_code.date_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_DateError{DateErrorEnum_DateError(x)} + return true, err + case 34: // error_code.date_range_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_DateRangeError{DateRangeErrorEnum_DateRangeError(x)} + return true, err + case 35: // error_code.distinct_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_DistinctError{DistinctErrorEnum_DistinctError(x)} + return true, err + case 36: // error_code.feed_attribute_reference_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_FeedAttributeReferenceError{FeedAttributeReferenceErrorEnum_FeedAttributeReferenceError(x)} + return true, err + case 37: // error_code.function_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_FunctionError{FunctionErrorEnum_FunctionError(x)} + return true, err + case 38: // error_code.function_parsing_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_FunctionParsingError{FunctionParsingErrorEnum_FunctionParsingError(x)} + return true, err + case 39: // error_code.id_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_IdError{IdErrorEnum_IdError(x)} + return true, err + case 40: // error_code.image_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_ImageError{ImageErrorEnum_ImageError(x)} + return true, err + case 42: // error_code.media_bundle_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_MediaBundleError{MediaBundleErrorEnum_MediaBundleError(x)} + return true, err + case 86: // error_code.media_file_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_MediaFileError{MediaFileErrorEnum_MediaFileError(x)} + return true, err + case 44: // error_code.multiplier_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_MultiplierError{MultiplierErrorEnum_MultiplierError(x)} + return true, err + case 45: // error_code.new_resource_creation_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_NewResourceCreationError{NewResourceCreationErrorEnum_NewResourceCreationError(x)} + return true, err + case 46: // error_code.not_empty_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_NotEmptyError{NotEmptyErrorEnum_NotEmptyError(x)} + return true, err + case 47: // error_code.null_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_NullError{NullErrorEnum_NullError(x)} + return true, err + case 48: // error_code.operator_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_OperatorError{OperatorErrorEnum_OperatorError(x)} + return true, err + case 49: // error_code.range_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_RangeError{RangeErrorEnum_RangeError(x)} + return true, err + case 58: // error_code.recommendation_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_RecommendationError{RecommendationErrorEnum_RecommendationError(x)} + return true, err + case 51: // error_code.region_code_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_RegionCodeError{RegionCodeErrorEnum_RegionCodeError(x)} + return true, err + case 52: // error_code.setting_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_SettingError{SettingErrorEnum_SettingError(x)} + return true, err + case 53: // error_code.string_format_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_StringFormatError{StringFormatErrorEnum_StringFormatError(x)} + return true, err + case 54: // error_code.string_length_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_StringLengthError{StringLengthErrorEnum_StringLengthError(x)} + return true, err + case 55: // error_code.operation_access_denied_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_OperationAccessDeniedError{OperationAccessDeniedErrorEnum_OperationAccessDeniedError(x)} + return true, err + case 56: // error_code.resource_access_denied_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_ResourceAccessDeniedError{ResourceAccessDeniedErrorEnum_ResourceAccessDeniedError(x)} + return true, err + case 57: // error_code.resource_count_limit_exceeded_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_ResourceCountLimitExceededError{ResourceCountLimitExceededErrorEnum_ResourceCountLimitExceededError(x)} + return true, err + case 59: // error_code.ad_group_bid_modifier_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_AdGroupBidModifierError{AdGroupBidModifierErrorEnum_AdGroupBidModifierError(x)} + return true, err + case 60: // error_code.context_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_ContextError{ContextErrorEnum_ContextError(x)} + return true, err + case 61: // error_code.field_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_FieldError{FieldErrorEnum_FieldError(x)} + return true, err + case 62: // error_code.shared_set_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_SharedSetError{SharedSetErrorEnum_SharedSetError(x)} + return true, err + case 63: // error_code.shared_criterion_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_SharedCriterionError{SharedCriterionErrorEnum_SharedCriterionError(x)} + return true, err + case 64: // error_code.campaign_shared_set_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_CampaignSharedSetError{CampaignSharedSetErrorEnum_CampaignSharedSetError(x)} + return true, err + case 65: // error_code.conversion_action_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_ConversionActionError{ConversionActionErrorEnum_ConversionActionError(x)} + return true, err + case 66: // error_code.header_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_HeaderError{HeaderErrorEnum_HeaderError(x)} + return true, err + case 67: // error_code.database_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_DatabaseError{DatabaseErrorEnum_DatabaseError(x)} + return true, err + case 68: // error_code.policy_finding_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_PolicyFindingError{PolicyFindingErrorEnum_PolicyFindingError(x)} + return true, err + case 69: // error_code.campaign_group_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_CampaignGroupError{CampaignGroupErrorEnum_CampaignGroupError(x)} + return true, err + case 70: // error_code.enum_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_EnumError{EnumErrorEnum_EnumError(x)} + return true, err + case 71: // error_code.keyword_plan_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_KeywordPlanError{KeywordPlanErrorEnum_KeywordPlanError(x)} + return true, err + case 72: // error_code.keyword_plan_campaign_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_KeywordPlanCampaignError{KeywordPlanCampaignErrorEnum_KeywordPlanCampaignError(x)} + return true, err + case 73: // error_code.keyword_plan_negative_keyword_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_KeywordPlanNegativeKeywordError{KeywordPlanNegativeKeywordErrorEnum_KeywordPlanNegativeKeywordError(x)} + return true, err + case 74: // error_code.keyword_plan_ad_group_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_KeywordPlanAdGroupError{KeywordPlanAdGroupErrorEnum_KeywordPlanAdGroupError(x)} + return true, err + case 75: // error_code.keyword_plan_keyword_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_KeywordPlanKeywordError{KeywordPlanKeywordErrorEnum_KeywordPlanKeywordError(x)} + return true, err + case 76: // error_code.keyword_plan_idea_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_KeywordPlanIdeaError{KeywordPlanIdeaErrorEnum_KeywordPlanIdeaError(x)} + return true, err + case 77: // error_code.account_budget_proposal_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_AccountBudgetProposalError{AccountBudgetProposalErrorEnum_AccountBudgetProposalError(x)} + return true, err + case 78: // error_code.user_list_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_UserListError{UserListErrorEnum_UserListError(x)} + return true, err + case 79: // error_code.change_status_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_ChangeStatusError{ChangeStatusErrorEnum_ChangeStatusError(x)} + return true, err + case 80: // error_code.feed_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_FeedError{FeedErrorEnum_FeedError(x)} + return true, err + case 81: // error_code.geo_target_constant_suggestion_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_GeoTargetConstantSuggestionError{GeoTargetConstantSuggestionErrorEnum_GeoTargetConstantSuggestionError(x)} + return true, err + case 83: // error_code.feed_item_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_FeedItemError{FeedItemErrorEnum_FeedItemError(x)} + return true, err + case 87: // error_code.billing_setup_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_BillingSetupError{BillingSetupErrorEnum_BillingSetupError(x)} + return true, err + case 88: // error_code.customer_client_link_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_CustomerClientLinkError{CustomerClientLinkErrorEnum_CustomerClientLinkError(x)} + return true, err + case 91: // error_code.customer_manager_link_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_CustomerManagerLinkError{CustomerManagerLinkErrorEnum_CustomerManagerLinkError(x)} + return true, err + case 92: // error_code.feed_mapping_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_FeedMappingError{FeedMappingErrorEnum_FeedMappingError(x)} + return true, err + case 93: // error_code.customer_feed_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_CustomerFeedError{CustomerFeedErrorEnum_CustomerFeedError(x)} + return true, err + case 94: // error_code.ad_group_feed_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_AdGroupFeedError{AdGroupFeedErrorEnum_AdGroupFeedError(x)} + return true, err + case 96: // error_code.campaign_feed_error + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ErrorCode = &ErrorCode_CampaignFeedError{CampaignFeedErrorEnum_CampaignFeedError(x)} + return true, err + default: + return false, nil + } +} + +func _ErrorCode_OneofSizer(msg proto.Message) (n int) { + m := msg.(*ErrorCode) + // error_code + switch x := m.ErrorCode.(type) { + case *ErrorCode_RequestError: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(x.RequestError)) + case *ErrorCode_BiddingStrategyError: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(x.BiddingStrategyError)) + case *ErrorCode_UrlFieldError: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(x.UrlFieldError)) + case *ErrorCode_ListOperationError: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(x.ListOperationError)) + case *ErrorCode_QueryError: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(x.QueryError)) + case *ErrorCode_MutateError: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(x.MutateError)) + case *ErrorCode_FieldMaskError: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(x.FieldMaskError)) + case *ErrorCode_AuthorizationError: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(x.AuthorizationError)) + case *ErrorCode_InternalError: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(x.InternalError)) + case *ErrorCode_QuotaError: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(x.QuotaError)) + case *ErrorCode_AdError: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(x.AdError)) + case *ErrorCode_AdGroupError: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(x.AdGroupError)) + case *ErrorCode_CampaignBudgetError: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(x.CampaignBudgetError)) + case *ErrorCode_CampaignError: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(x.CampaignError)) + case *ErrorCode_AuthenticationError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.AuthenticationError)) + case *ErrorCode_AdGroupCriterionError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.AdGroupCriterionError)) + case *ErrorCode_AdCustomizerError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.AdCustomizerError)) + case *ErrorCode_AdGroupAdError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.AdGroupAdError)) + case *ErrorCode_AdSharingError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.AdSharingError)) + case *ErrorCode_AdxError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.AdxError)) + case *ErrorCode_BiddingError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.BiddingError)) + case *ErrorCode_CampaignCriterionError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.CampaignCriterionError)) + case *ErrorCode_CollectionSizeError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.CollectionSizeError)) + case *ErrorCode_CriterionError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.CriterionError)) + case *ErrorCode_CustomerError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.CustomerError)) + case *ErrorCode_DateError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.DateError)) + case *ErrorCode_DateRangeError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.DateRangeError)) + case *ErrorCode_DistinctError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.DistinctError)) + case *ErrorCode_FeedAttributeReferenceError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.FeedAttributeReferenceError)) + case *ErrorCode_FunctionError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.FunctionError)) + case *ErrorCode_FunctionParsingError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.FunctionParsingError)) + case *ErrorCode_IdError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.IdError)) + case *ErrorCode_ImageError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.ImageError)) + case *ErrorCode_MediaBundleError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.MediaBundleError)) + case *ErrorCode_MediaFileError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.MediaFileError)) + case *ErrorCode_MultiplierError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.MultiplierError)) + case *ErrorCode_NewResourceCreationError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.NewResourceCreationError)) + case *ErrorCode_NotEmptyError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.NotEmptyError)) + case *ErrorCode_NullError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.NullError)) + case *ErrorCode_OperatorError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.OperatorError)) + case *ErrorCode_RangeError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.RangeError)) + case *ErrorCode_RecommendationError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.RecommendationError)) + case *ErrorCode_RegionCodeError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.RegionCodeError)) + case *ErrorCode_SettingError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.SettingError)) + case *ErrorCode_StringFormatError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.StringFormatError)) + case *ErrorCode_StringLengthError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.StringLengthError)) + case *ErrorCode_OperationAccessDeniedError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.OperationAccessDeniedError)) + case *ErrorCode_ResourceAccessDeniedError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.ResourceAccessDeniedError)) + case *ErrorCode_ResourceCountLimitExceededError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.ResourceCountLimitExceededError)) + case *ErrorCode_AdGroupBidModifierError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.AdGroupBidModifierError)) + case *ErrorCode_ContextError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.ContextError)) + case *ErrorCode_FieldError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.FieldError)) + case *ErrorCode_SharedSetError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.SharedSetError)) + case *ErrorCode_SharedCriterionError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.SharedCriterionError)) + case *ErrorCode_CampaignSharedSetError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.CampaignSharedSetError)) + case *ErrorCode_ConversionActionError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.ConversionActionError)) + case *ErrorCode_HeaderError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.HeaderError)) + case *ErrorCode_DatabaseError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.DatabaseError)) + case *ErrorCode_PolicyFindingError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.PolicyFindingError)) + case *ErrorCode_CampaignGroupError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.CampaignGroupError)) + case *ErrorCode_EnumError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.EnumError)) + case *ErrorCode_KeywordPlanError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.KeywordPlanError)) + case *ErrorCode_KeywordPlanCampaignError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.KeywordPlanCampaignError)) + case *ErrorCode_KeywordPlanNegativeKeywordError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.KeywordPlanNegativeKeywordError)) + case *ErrorCode_KeywordPlanAdGroupError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.KeywordPlanAdGroupError)) + case *ErrorCode_KeywordPlanKeywordError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.KeywordPlanKeywordError)) + case *ErrorCode_KeywordPlanIdeaError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.KeywordPlanIdeaError)) + case *ErrorCode_AccountBudgetProposalError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.AccountBudgetProposalError)) + case *ErrorCode_UserListError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.UserListError)) + case *ErrorCode_ChangeStatusError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.ChangeStatusError)) + case *ErrorCode_FeedError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.FeedError)) + case *ErrorCode_GeoTargetConstantSuggestionError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.GeoTargetConstantSuggestionError)) + case *ErrorCode_FeedItemError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.FeedItemError)) + case *ErrorCode_BillingSetupError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.BillingSetupError)) + case *ErrorCode_CustomerClientLinkError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.CustomerClientLinkError)) + case *ErrorCode_CustomerManagerLinkError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.CustomerManagerLinkError)) + case *ErrorCode_FeedMappingError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.FeedMappingError)) + case *ErrorCode_CustomerFeedError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.CustomerFeedError)) + case *ErrorCode_AdGroupFeedError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.AdGroupFeedError)) + case *ErrorCode_CampaignFeedError: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.CampaignFeedError)) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// Describes the part of the request proto that caused the error. +type ErrorLocation struct { + // The mutate operation that failed + OperationIndex *wrappers.Int64Value `protobuf:"bytes,1,opt,name=operation_index,json=operationIndex,proto3" json:"operation_index,omitempty"` + // A field path that indicates which field was invalid in the request. + FieldPathElements []*ErrorLocation_FieldPathElement `protobuf:"bytes,2,rep,name=field_path_elements,json=fieldPathElements,proto3" json:"field_path_elements,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ErrorLocation) Reset() { *m = ErrorLocation{} } +func (m *ErrorLocation) String() string { return proto.CompactTextString(m) } +func (*ErrorLocation) ProtoMessage() {} +func (*ErrorLocation) Descriptor() ([]byte, []int) { + return fileDescriptor_errors_fa6b3b0791612cfd, []int{3} +} +func (m *ErrorLocation) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ErrorLocation.Unmarshal(m, b) +} +func (m *ErrorLocation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ErrorLocation.Marshal(b, m, deterministic) +} +func (dst *ErrorLocation) XXX_Merge(src proto.Message) { + xxx_messageInfo_ErrorLocation.Merge(dst, src) +} +func (m *ErrorLocation) XXX_Size() int { + return xxx_messageInfo_ErrorLocation.Size(m) +} +func (m *ErrorLocation) XXX_DiscardUnknown() { + xxx_messageInfo_ErrorLocation.DiscardUnknown(m) +} + +var xxx_messageInfo_ErrorLocation proto.InternalMessageInfo + +func (m *ErrorLocation) GetOperationIndex() *wrappers.Int64Value { + if m != nil { + return m.OperationIndex + } + return nil +} + +func (m *ErrorLocation) GetFieldPathElements() []*ErrorLocation_FieldPathElement { + if m != nil { + return m.FieldPathElements + } + return nil +} + +// A part of a field path. +type ErrorLocation_FieldPathElement struct { + // The name of a field or a oneof + FieldName string `protobuf:"bytes,1,opt,name=field_name,json=fieldName,proto3" json:"field_name,omitempty"` + // If field_name is a repeated field, this is the element that failed + Index *wrappers.Int64Value `protobuf:"bytes,2,opt,name=index,proto3" json:"index,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ErrorLocation_FieldPathElement) Reset() { *m = ErrorLocation_FieldPathElement{} } +func (m *ErrorLocation_FieldPathElement) String() string { return proto.CompactTextString(m) } +func (*ErrorLocation_FieldPathElement) ProtoMessage() {} +func (*ErrorLocation_FieldPathElement) Descriptor() ([]byte, []int) { + return fileDescriptor_errors_fa6b3b0791612cfd, []int{3, 0} +} +func (m *ErrorLocation_FieldPathElement) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ErrorLocation_FieldPathElement.Unmarshal(m, b) +} +func (m *ErrorLocation_FieldPathElement) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ErrorLocation_FieldPathElement.Marshal(b, m, deterministic) +} +func (dst *ErrorLocation_FieldPathElement) XXX_Merge(src proto.Message) { + xxx_messageInfo_ErrorLocation_FieldPathElement.Merge(dst, src) +} +func (m *ErrorLocation_FieldPathElement) XXX_Size() int { + return xxx_messageInfo_ErrorLocation_FieldPathElement.Size(m) +} +func (m *ErrorLocation_FieldPathElement) XXX_DiscardUnknown() { + xxx_messageInfo_ErrorLocation_FieldPathElement.DiscardUnknown(m) +} + +var xxx_messageInfo_ErrorLocation_FieldPathElement proto.InternalMessageInfo + +func (m *ErrorLocation_FieldPathElement) GetFieldName() string { + if m != nil { + return m.FieldName + } + return "" +} + +func (m *ErrorLocation_FieldPathElement) GetIndex() *wrappers.Int64Value { + if m != nil { + return m.Index + } + return nil +} + +// Additional error details. +type ErrorDetails struct { + // The error code that should have been returned, but wasn't. This is used + // when the error code is InternalError.ERROR_CODE_NOT_PUBLISHED. + UnpublishedErrorCode string `protobuf:"bytes,1,opt,name=unpublished_error_code,json=unpublishedErrorCode,proto3" json:"unpublished_error_code,omitempty"` + // Describes an ad policy violation. + PolicyViolationDetails *PolicyViolationDetails `protobuf:"bytes,2,opt,name=policy_violation_details,json=policyViolationDetails,proto3" json:"policy_violation_details,omitempty"` + // Describes policy violation findings. + PolicyFindingDetails *PolicyFindingDetails `protobuf:"bytes,3,opt,name=policy_finding_details,json=policyFindingDetails,proto3" json:"policy_finding_details,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ErrorDetails) Reset() { *m = ErrorDetails{} } +func (m *ErrorDetails) String() string { return proto.CompactTextString(m) } +func (*ErrorDetails) ProtoMessage() {} +func (*ErrorDetails) Descriptor() ([]byte, []int) { + return fileDescriptor_errors_fa6b3b0791612cfd, []int{4} +} +func (m *ErrorDetails) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ErrorDetails.Unmarshal(m, b) +} +func (m *ErrorDetails) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ErrorDetails.Marshal(b, m, deterministic) +} +func (dst *ErrorDetails) XXX_Merge(src proto.Message) { + xxx_messageInfo_ErrorDetails.Merge(dst, src) +} +func (m *ErrorDetails) XXX_Size() int { + return xxx_messageInfo_ErrorDetails.Size(m) +} +func (m *ErrorDetails) XXX_DiscardUnknown() { + xxx_messageInfo_ErrorDetails.DiscardUnknown(m) +} + +var xxx_messageInfo_ErrorDetails proto.InternalMessageInfo + +func (m *ErrorDetails) GetUnpublishedErrorCode() string { + if m != nil { + return m.UnpublishedErrorCode + } + return "" +} + +func (m *ErrorDetails) GetPolicyViolationDetails() *PolicyViolationDetails { + if m != nil { + return m.PolicyViolationDetails + } + return nil +} + +func (m *ErrorDetails) GetPolicyFindingDetails() *PolicyFindingDetails { + if m != nil { + return m.PolicyFindingDetails + } + return nil +} + +// Error returned as part of a mutate response. +// This error indicates single policy violation by some text +// in one of the fields. +type PolicyViolationDetails struct { + // Human readable description of policy violation. + ExternalPolicyDescription string `protobuf:"bytes,2,opt,name=external_policy_description,json=externalPolicyDescription,proto3" json:"external_policy_description,omitempty"` + // Unique identifier for this violation. + // If policy is exemptible, this key may be used to request exemption. + Key *common.PolicyViolationKey `protobuf:"bytes,4,opt,name=key,proto3" json:"key,omitempty"` + // Human readable name of the policy. + ExternalPolicyName string `protobuf:"bytes,5,opt,name=external_policy_name,json=externalPolicyName,proto3" json:"external_policy_name,omitempty"` + // Whether user can file an exemption request for this violation. + IsExemptible bool `protobuf:"varint,6,opt,name=is_exemptible,json=isExemptible,proto3" json:"is_exemptible,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PolicyViolationDetails) Reset() { *m = PolicyViolationDetails{} } +func (m *PolicyViolationDetails) String() string { return proto.CompactTextString(m) } +func (*PolicyViolationDetails) ProtoMessage() {} +func (*PolicyViolationDetails) Descriptor() ([]byte, []int) { + return fileDescriptor_errors_fa6b3b0791612cfd, []int{5} +} +func (m *PolicyViolationDetails) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PolicyViolationDetails.Unmarshal(m, b) +} +func (m *PolicyViolationDetails) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PolicyViolationDetails.Marshal(b, m, deterministic) +} +func (dst *PolicyViolationDetails) XXX_Merge(src proto.Message) { + xxx_messageInfo_PolicyViolationDetails.Merge(dst, src) +} +func (m *PolicyViolationDetails) XXX_Size() int { + return xxx_messageInfo_PolicyViolationDetails.Size(m) +} +func (m *PolicyViolationDetails) XXX_DiscardUnknown() { + xxx_messageInfo_PolicyViolationDetails.DiscardUnknown(m) +} + +var xxx_messageInfo_PolicyViolationDetails proto.InternalMessageInfo + +func (m *PolicyViolationDetails) GetExternalPolicyDescription() string { + if m != nil { + return m.ExternalPolicyDescription + } + return "" +} + +func (m *PolicyViolationDetails) GetKey() *common.PolicyViolationKey { + if m != nil { + return m.Key + } + return nil +} + +func (m *PolicyViolationDetails) GetExternalPolicyName() string { + if m != nil { + return m.ExternalPolicyName + } + return "" +} + +func (m *PolicyViolationDetails) GetIsExemptible() bool { + if m != nil { + return m.IsExemptible + } + return false +} + +// Error returned as part of a mutate response. +// This error indicates one or more policy findings in the fields of a +// resource. +type PolicyFindingDetails struct { + // The list of policy topics for the resource. Contains the PROHIBITED or + // FULLY_LIMITED policy topic entries that prevented the resource from being + // saved (among any other entries the resource may also have). + PolicyTopicEntries []*common.PolicyTopicEntry `protobuf:"bytes,1,rep,name=policy_topic_entries,json=policyTopicEntries,proto3" json:"policy_topic_entries,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PolicyFindingDetails) Reset() { *m = PolicyFindingDetails{} } +func (m *PolicyFindingDetails) String() string { return proto.CompactTextString(m) } +func (*PolicyFindingDetails) ProtoMessage() {} +func (*PolicyFindingDetails) Descriptor() ([]byte, []int) { + return fileDescriptor_errors_fa6b3b0791612cfd, []int{6} +} +func (m *PolicyFindingDetails) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PolicyFindingDetails.Unmarshal(m, b) +} +func (m *PolicyFindingDetails) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PolicyFindingDetails.Marshal(b, m, deterministic) +} +func (dst *PolicyFindingDetails) XXX_Merge(src proto.Message) { + xxx_messageInfo_PolicyFindingDetails.Merge(dst, src) +} +func (m *PolicyFindingDetails) XXX_Size() int { + return xxx_messageInfo_PolicyFindingDetails.Size(m) +} +func (m *PolicyFindingDetails) XXX_DiscardUnknown() { + xxx_messageInfo_PolicyFindingDetails.DiscardUnknown(m) +} + +var xxx_messageInfo_PolicyFindingDetails proto.InternalMessageInfo + +func (m *PolicyFindingDetails) GetPolicyTopicEntries() []*common.PolicyTopicEntry { + if m != nil { + return m.PolicyTopicEntries + } + return nil +} + +func init() { + proto.RegisterType((*GoogleAdsFailure)(nil), "google.ads.googleads.v0.errors.GoogleAdsFailure") + proto.RegisterType((*GoogleAdsError)(nil), "google.ads.googleads.v0.errors.GoogleAdsError") + proto.RegisterType((*ErrorCode)(nil), "google.ads.googleads.v0.errors.ErrorCode") + proto.RegisterType((*ErrorLocation)(nil), "google.ads.googleads.v0.errors.ErrorLocation") + proto.RegisterType((*ErrorLocation_FieldPathElement)(nil), "google.ads.googleads.v0.errors.ErrorLocation.FieldPathElement") + proto.RegisterType((*ErrorDetails)(nil), "google.ads.googleads.v0.errors.ErrorDetails") + proto.RegisterType((*PolicyViolationDetails)(nil), "google.ads.googleads.v0.errors.PolicyViolationDetails") + proto.RegisterType((*PolicyFindingDetails)(nil), "google.ads.googleads.v0.errors.PolicyFindingDetails") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/errors.proto", fileDescriptor_errors_fa6b3b0791612cfd) +} + +var fileDescriptor_errors_fa6b3b0791612cfd = []byte{ + // 3366 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x5b, 0xcd, 0x73, 0x1c, 0x47, + 0x15, 0xdf, 0x95, 0x49, 0x6c, 0xb5, 0x65, 0xd9, 0x6e, 0xcb, 0x4e, 0xdb, 0x26, 0x89, 0x51, 0x12, + 0x30, 0x21, 0x59, 0xc9, 0xf2, 0x57, 0x1c, 0x27, 0x76, 0x56, 0x2b, 0xc9, 0x23, 0x2c, 0xd9, 0xca, + 0x28, 0x71, 0x42, 0x62, 0xd8, 0xf4, 0xce, 0xf4, 0xae, 0x1a, 0xcd, 0xc7, 0x7a, 0x3e, 0x64, 0xc9, + 0x45, 0xaa, 0xe0, 0x00, 0x55, 0x50, 0x05, 0x07, 0xa8, 0xe2, 0xc0, 0x81, 0x43, 0x8e, 0x70, 0xe4, + 0xc0, 0x99, 0x1b, 0xc5, 0xff, 0xc3, 0x91, 0x2a, 0xaa, 0x7b, 0xbe, 0xba, 0x7b, 0x66, 0x77, 0x7a, + 0x72, 0x92, 0xfa, 0xd7, 0xfd, 0x7b, 0xaf, 0xbb, 0xa7, 0x3f, 0xde, 0x7b, 0xfd, 0x16, 0xfc, 0x68, + 0xe4, 0xfb, 0x23, 0x87, 0x2c, 0x61, 0x3b, 0x5c, 0x4a, 0xfe, 0x65, 0xff, 0x1d, 0x2c, 0x2f, 0x91, + 0x20, 0xf0, 0x83, 0x30, 0xfd, 0xd3, 0x19, 0x07, 0x7e, 0xe4, 0xc3, 0xd7, 0x92, 0x16, 0x1d, 0x6c, + 0x87, 0x9d, 0xbc, 0x71, 0xe7, 0x60, 0xb9, 0x93, 0xb4, 0xba, 0x34, 0x51, 0x98, 0xe5, 0xbb, 0xae, + 0xef, 0x2d, 0x8d, 0x7d, 0x87, 0x5a, 0x47, 0x89, 0xb0, 0x4b, 0x6f, 0xd7, 0x34, 0x3e, 0xc0, 0x4e, + 0x4c, 0xd2, 0xb6, 0xab, 0x35, 0xbd, 0xc4, 0x96, 0xe5, 0xc7, 0x5e, 0xd4, 0x1f, 0xc4, 0xf6, 0x88, + 0x44, 0xfd, 0x71, 0xe0, 0x8f, 0xfd, 0x10, 0x3b, 0x7d, 0x5e, 0x9d, 0xca, 0x78, 0xaf, 0x4e, 0x86, + 0xdd, 0xb7, 0xe2, 0x30, 0xf2, 0x5d, 0xfa, 0x82, 0x04, 0x12, 0xf3, 0xdd, 0x7a, 0xa6, 0xd8, 0xfc, + 0x56, 0x7d, 0xf3, 0x51, 0xe0, 0xc7, 0xe3, 0xbe, 0xc2, 0xfb, 0x48, 0x97, 0x37, 0xa0, 0x76, 0xdf, + 0xf5, 0x6d, 0x3a, 0xa4, 0x4a, 0x47, 0x3f, 0xd4, 0x95, 0x60, 0x05, 0x34, 0x22, 0x01, 0xf5, 0x3d, + 0x89, 0x7e, 0x5d, 0x97, 0xde, 0x70, 0x5a, 0x13, 0xd2, 0x90, 0x10, 0x79, 0xbc, 0x37, 0xeb, 0x99, + 0xe1, 0x1e, 0x0e, 0xa8, 0x37, 0x92, 0x68, 0x9d, 0x5a, 0xda, 0xa1, 0xd4, 0xfe, 0x4e, 0x5d, 0xfb, + 0x38, 0xda, 0x23, 0x5e, 0x44, 0x2d, 0x1c, 0xa9, 0x13, 0xf2, 0x9e, 0x06, 0xd5, 0x0f, 0xe8, 0x8b, + 0x32, 0x73, 0xa5, 0x86, 0x39, 0xa0, 0xb6, 0xad, 0x0e, 0xec, 0xae, 0x26, 0x27, 0x8c, 0x02, 0x1c, + 0x91, 0xd1, 0x51, 0xa3, 0xae, 0x0e, 0xa8, 0xe3, 0x70, 0x32, 0x89, 0x94, 0x0f, 0xf8, 0x7e, 0x0d, + 0xd3, 0xc2, 0xee, 0x18, 0xd3, 0x91, 0x97, 0x6d, 0xae, 0x26, 0x0b, 0x2e, 0xe7, 0x7e, 0xbb, 0x05, + 0x97, 0xd3, 0x9b, 0x8c, 0x34, 0x27, 0x95, 0x16, 0xdc, 0x1d, 0x5d, 0x66, 0x79, 0x95, 0xdf, 0xd3, + 0xa5, 0xb2, 0x15, 0x4b, 0x6c, 0x36, 0xcd, 0xcd, 0x3a, 0xbd, 0x87, 0xbd, 0x11, 0xe9, 0x87, 0x11, + 0x8e, 0xe2, 0xb0, 0xd9, 0xe7, 0xf1, 0x1d, 0x87, 0x58, 0x7c, 0x01, 0x86, 0xf4, 0x05, 0x69, 0xb4, + 0x0a, 0x2d, 0xdf, 0x8b, 0xc8, 0xa1, 0xdc, 0xd3, 0x0f, 0xea, 0x39, 0x07, 0x24, 0x08, 0x99, 0x3e, + 0x6c, 0x95, 0xd6, 0xfd, 0x8d, 0x3a, 0x76, 0xe5, 0x3a, 0xb8, 0x5f, 0xc7, 0xe2, 0xe7, 0x32, 0x09, + 0xfa, 0x96, 0x43, 0x89, 0x17, 0xf5, 0x1d, 0xea, 0xed, 0x37, 0x5b, 0x48, 0x99, 0x80, 0x46, 0xdf, + 0x24, 0x23, 0x95, 0x16, 0xd2, 0x47, 0xba, 0x4c, 0x17, 0x7b, 0x78, 0x44, 0x82, 0xe6, 0x1d, 0xb6, + 0x71, 0x84, 0x07, 0x38, 0x94, 0x3f, 0xe7, 0x52, 0x3d, 0x89, 0x34, 0x3a, 0x61, 0x39, 0x21, 0xe0, + 0x2b, 0xaf, 0x51, 0xe7, 0x68, 0x18, 0x51, 0xcf, 0x8a, 0x1a, 0x75, 0x8e, 0x78, 0xb1, 0x2b, 0x11, + 0x7a, 0x35, 0x04, 0x3e, 0xeb, 0x38, 0x8a, 0x02, 0x3a, 0x88, 0x59, 0x37, 0xc9, 0x90, 0x04, 0xc4, + 0xb3, 0x9a, 0x4d, 0x49, 0xe9, 0xd3, 0xdd, 0xd0, 0x21, 0xd0, 0x88, 0xc8, 0x7d, 0xbd, 0xad, 0xc3, + 0x72, 0xf1, 0x78, 0xac, 0x9e, 0xe9, 0xcb, 0x75, 0x44, 0x4a, 0x9c, 0x66, 0xb7, 0x62, 0xc2, 0x70, + 0x71, 0xd8, 0x6c, 0x41, 0x0d, 0x63, 0xaf, 0xbc, 0x5b, 0xef, 0xea, 0x92, 0xc6, 0x38, 0x08, 0xd5, + 0xa1, 0x6d, 0xd6, 0x90, 0x47, 0xc4, 0xef, 0x47, 0x38, 0x60, 0x57, 0x86, 0xe5, 0x7b, 0x61, 0x84, + 0xbd, 0xa8, 0x1f, 0xc6, 0xa3, 0x11, 0x09, 0x4b, 0xfd, 0xb8, 0x56, 0x23, 0x6a, 0x8f, 0x60, 0xbb, + 0xa1, 0x4d, 0x46, 0xed, 0x46, 0xdf, 0x81, 0xba, 0xb8, 0xe1, 0x26, 0xa0, 0x5e, 0x44, 0x02, 0x4f, + 0xb1, 0x31, 0xeb, 0x0e, 0x86, 0x7d, 0x72, 0xf4, 0xdc, 0x0f, 0xec, 0xfe, 0xd8, 0xc1, 0x5e, 0xbf, + 0xd2, 0x9c, 0x6a, 0x24, 0xa1, 0xf2, 0x7e, 0xbc, 0xdd, 0x44, 0x42, 0x93, 0x93, 0x5f, 0x22, 0x52, + 0x9b, 0xe0, 0x46, 0x67, 0xb8, 0xc4, 0xce, 0x0a, 0xa2, 0x00, 0xa3, 0x89, 0x00, 0x8f, 0x8c, 0x70, + 0x44, 0x0f, 0x48, 0xa5, 0xa4, 0xba, 0x7b, 0xde, 0xa1, 0x61, 0xd4, 0xf7, 0xc7, 0x24, 0x28, 0xdb, + 0x6d, 0x75, 0x93, 0xe7, 0x12, 0x9b, 0xe2, 0xfe, 0x20, 0xf6, 0x6c, 0xa7, 0xd9, 0x51, 0x9b, 0x10, + 0x87, 0xb4, 0x29, 0x2d, 0x76, 0x22, 0x3a, 0x76, 0x54, 0x43, 0xff, 0x5a, 0x2d, 0x2d, 0x52, 0xef, + 0x82, 0xba, 0x85, 0xe5, 0x91, 0xe7, 0xfd, 0x80, 0x84, 0x7e, 0x1c, 0x58, 0xa4, 0x6f, 0x05, 0x04, + 0x37, 0xbe, 0xdb, 0x3d, 0x3f, 0xea, 0x13, 0x77, 0x1c, 0x1d, 0x35, 0x3a, 0xa1, 0xbd, 0xd8, 0x91, + 0xf7, 0x50, 0x9d, 0xaf, 0x57, 0x7c, 0x38, 0x6c, 0x59, 0x24, 0x0c, 0xfb, 0x36, 0xf1, 0xa8, 0x72, + 0xca, 0x5f, 0xd7, 0x92, 0xe1, 0x07, 0x8d, 0x96, 0x4d, 0xe2, 0xbd, 0xf6, 0x87, 0xd4, 0xb3, 0x9b, + 0x1e, 0xf3, 0xcf, 0x62, 0x12, 0x1c, 0x35, 0x64, 0xf8, 0x11, 0x6e, 0xc4, 0x28, 0xdf, 0xe3, 0x75, + 0x03, 0x0a, 0x08, 0x73, 0xb5, 0x89, 0x67, 0x97, 0xbf, 0xf5, 0xad, 0x5a, 0xea, 0x88, 0x51, 0x2c, + 0xdf, 0x6e, 0x66, 0x71, 0x06, 0xe4, 0x59, 0x4c, 0x42, 0xd9, 0x72, 0xe8, 0xd6, 0x72, 0xd2, 0x55, + 0x39, 0xf9, 0x7b, 0x1b, 0xba, 0x22, 0x92, 0x30, 0x81, 0x43, 0x5d, 0x1a, 0xf5, 0xc9, 0xa1, 0x45, + 0x88, 0xad, 0x48, 0xaa, 0x1b, 0x40, 0x48, 0xa2, 0xa8, 0xa9, 0xe3, 0x96, 0xfa, 0x04, 0xd5, 0xb6, + 0xef, 0x4d, 0x3d, 0x72, 0x53, 0x87, 0x22, 0x8c, 0xb8, 0xe3, 0x3c, 0xf4, 0x03, 0x17, 0x7f, 0x2b, + 0xa6, 0x43, 0xbc, 0x51, 0xb4, 0xd7, 0xe8, 0x00, 0x88, 0x03, 0xa7, 0x5f, 0x36, 0x68, 0x6a, 0x59, + 0x21, 0x37, 0x90, 0x95, 0x45, 0x91, 0x86, 0x9a, 0x96, 0x78, 0x69, 0x10, 0x0f, 0x97, 0x9e, 0x07, + 0x78, 0x3c, 0x26, 0x59, 0x28, 0x6a, 0xf1, 0x0b, 0x70, 0xe6, 0x01, 0x6f, 0xd1, 0xb5, 0xc3, 0x0d, + 0x4c, 0x9d, 0x38, 0x20, 0x70, 0x03, 0xbc, 0x9c, 0xc8, 0x44, 0xed, 0x2b, 0xc7, 0xae, 0x9e, 0x5c, + 0xe9, 0x74, 0xa6, 0xc7, 0xab, 0x3a, 0xb9, 0x84, 0x75, 0x56, 0x36, 0x53, 0xf6, 0xe2, 0xbf, 0x67, + 0xc0, 0xbc, 0x5c, 0x05, 0x0d, 0x00, 0x78, 0x25, 0x5f, 0xf1, 0xa8, 0x7d, 0xa5, 0x7d, 0xf5, 0xe4, + 0xca, 0x0f, 0xeb, 0xc4, 0x73, 0x6a, 0xcf, 0xb7, 0x89, 0x39, 0x4b, 0xb2, 0x7f, 0x21, 0x02, 0xc7, + 0x5d, 0x12, 0x86, 0x78, 0x44, 0xd0, 0xcc, 0x95, 0xf6, 0xd5, 0x59, 0x33, 0x2b, 0xc2, 0xfb, 0xe0, + 0x78, 0x14, 0xd0, 0xd1, 0x88, 0x04, 0xe8, 0x18, 0x57, 0xf0, 0xd6, 0x44, 0x05, 0x49, 0x88, 0xac, + 0xf3, 0x04, 0x3b, 0x31, 0x31, 0x33, 0x16, 0xdc, 0x04, 0x27, 0x1c, 0x3f, 0x09, 0x63, 0xa0, 0xef, + 0x70, 0x09, 0xef, 0x6a, 0x75, 0x71, 0x2b, 0x25, 0x99, 0x39, 0x1d, 0x6e, 0x80, 0xe3, 0x36, 0x89, + 0x30, 0x75, 0x42, 0xf4, 0x12, 0x97, 0xf4, 0x8e, 0x96, 0xa4, 0xb5, 0x84, 0x63, 0x66, 0xe4, 0xc5, + 0xff, 0x3d, 0x04, 0xb3, 0xf9, 0x34, 0x40, 0x1b, 0x9c, 0x92, 0x0e, 0x00, 0x3e, 0x91, 0xf3, 0x2b, + 0x1f, 0xd6, 0xc9, 0x36, 0x13, 0x12, 0x17, 0xb4, 0xee, 0xc5, 0xae, 0x04, 0x18, 0x2d, 0x73, 0x2e, + 0x10, 0xca, 0xf0, 0xd7, 0x6d, 0x70, 0xa1, 0x3a, 0x56, 0xc2, 0x67, 0x7c, 0x7e, 0x65, 0xbb, 0x4e, + 0xdf, 0x6a, 0xc2, 0xde, 0x4d, 0xc9, 0x85, 0xde, 0xaa, 0x0a, 0xa3, 0x65, 0x2e, 0x0c, 0x2a, 0x70, + 0x48, 0xc1, 0x69, 0x65, 0x47, 0xf0, 0xef, 0x3a, 0xbf, 0x72, 0xbf, 0x4e, 0xff, 0xa7, 0x81, 0xb3, + 0xc1, 0x58, 0x85, 0x62, 0x09, 0x31, 0x5a, 0xe6, 0xa9, 0x58, 0x04, 0xe0, 0xd7, 0x60, 0xa1, 0xca, + 0xa8, 0xe1, 0xab, 0x60, 0x7e, 0x65, 0xb3, 0x4e, 0xdf, 0x16, 0x0d, 0xa3, 0xc7, 0x19, 0xb5, 0x50, + 0x5a, 0x86, 0x8d, 0x96, 0x09, 0x9d, 0x12, 0x0a, 0x9f, 0x82, 0x93, 0xc2, 0x0d, 0xc7, 0x57, 0xcc, + 0xfc, 0xca, 0x9d, 0x3a, 0xad, 0x1f, 0x33, 0x4a, 0xa1, 0xad, 0x28, 0x1a, 0x2d, 0x13, 0x3c, 0xcb, + 0x4b, 0xf0, 0x2b, 0x30, 0x27, 0xda, 0x33, 0xe8, 0x38, 0x17, 0x7f, 0xb7, 0x4e, 0xfc, 0x36, 0xe7, + 0x14, 0xf2, 0x85, 0xb2, 0xd1, 0x32, 0x4f, 0xba, 0x45, 0x11, 0xba, 0xe0, 0x8c, 0xea, 0x56, 0xa1, + 0x13, 0x5c, 0x4b, 0xb7, 0x4e, 0x0b, 0xff, 0x08, 0xdb, 0x38, 0xdc, 0x2f, 0x14, 0xc9, 0x90, 0xd1, + 0x32, 0xe7, 0x87, 0x12, 0x02, 0x7f, 0x01, 0xce, 0x55, 0x44, 0x0e, 0xd1, 0xac, 0xde, 0xc7, 0xea, + 0x8a, 0xd4, 0x42, 0x6b, 0x19, 0x66, 0x1f, 0x0b, 0x97, 0x50, 0xb8, 0x07, 0xe6, 0x65, 0xdf, 0x05, + 0x01, 0xbd, 0x55, 0xb9, 0x99, 0xb2, 0x0a, 0x9d, 0x12, 0xc2, 0x56, 0x25, 0x15, 0x81, 0x64, 0x59, + 0xe4, 0x66, 0x0c, 0x3a, 0xa9, 0xbb, 0x2c, 0xfc, 0x08, 0x8b, 0xcb, 0x22, 0x2b, 0x26, 0xcb, 0x22, + 0x2b, 0xc1, 0x1d, 0x70, 0x22, 0x0b, 0xa0, 0xa3, 0x39, 0x2e, 0xfa, 0x7a, 0xed, 0xd4, 0x09, 0x3b, + 0xaa, 0x9b, 0xef, 0xa5, 0xe3, 0x38, 0xdd, 0x45, 0x04, 0xcc, 0xcb, 0x3e, 0x19, 0x3a, 0xa5, 0x77, + 0x3e, 0x75, 0xed, 0x07, 0x8c, 0x24, 0x0a, 0x2f, 0x00, 0x76, 0x3e, 0x61, 0xa1, 0x0c, 0x7f, 0xd5, + 0x06, 0xe7, 0x2b, 0x83, 0xaa, 0x68, 0x9e, 0xab, 0x7b, 0x58, 0xa7, 0xae, 0x97, 0x92, 0x57, 0x39, + 0xb7, 0xd0, 0x5a, 0x81, 0x1b, 0x2d, 0xf3, 0x9c, 0x55, 0x86, 0xd9, 0x22, 0x90, 0x9d, 0x47, 0x74, + 0x5a, 0x6f, 0x11, 0x64, 0x3a, 0xca, 0x5a, 0xf3, 0x45, 0x60, 0x89, 0x00, 0xfc, 0x65, 0x1b, 0x2c, + 0x54, 0x85, 0xd8, 0xd1, 0x59, 0xbd, 0xc1, 0x76, 0x25, 0xae, 0xbc, 0xde, 0x15, 0x9c, 0x0d, 0x16, + 0x97, 0x61, 0xf8, 0xbb, 0x36, 0x40, 0x93, 0x9e, 0x3e, 0x10, 0xe4, 0xdd, 0x78, 0xac, 0xf9, 0x89, + 0x7b, 0x19, 0xbb, 0xf4, 0xad, 0xe5, 0x1a, 0xa3, 0x65, 0x9e, 0xc7, 0x55, 0x15, 0xf0, 0x08, 0x9c, + 0xab, 0x78, 0x69, 0x42, 0xe7, 0x78, 0x37, 0x1e, 0xd4, 0x77, 0xa3, 0x97, 0x33, 0xc5, 0x2e, 0x28, + 0xa8, 0xd1, 0x32, 0xcf, 0x62, 0x15, 0x84, 0x1e, 0x38, 0x5b, 0x7a, 0x7b, 0x42, 0xe7, 0xf5, 0xce, + 0xb9, 0x74, 0x94, 0xf2, 0x0e, 0x12, 0x21, 0x76, 0xce, 0x61, 0x09, 0x61, 0xc7, 0xaa, 0xfa, 0x86, + 0x83, 0x90, 0xae, 0xba, 0xdd, 0x84, 0x26, 0xaa, 0x13, 0xa1, 0x44, 0x9d, 0x88, 0xc0, 0x4f, 0xc0, + 0x6c, 0xfe, 0xf6, 0x83, 0x2e, 0x72, 0x3d, 0x37, 0xeb, 0xf5, 0x1c, 0x8a, 0x1a, 0x0e, 0x33, 0xd9, + 0x27, 0x70, 0xfa, 0x3f, 0xb3, 0x59, 0xa4, 0xc7, 0x1a, 0x74, 0x49, 0xef, 0x4c, 0x48, 0x4d, 0x85, + 0x92, 0xed, 0x90, 0x9f, 0x09, 0x03, 0xa1, 0x0c, 0x7f, 0xdf, 0x06, 0x68, 0xd2, 0x63, 0x09, 0x7a, + 0x95, 0x6b, 0xfc, 0x58, 0x77, 0x6b, 0x56, 0xac, 0xd1, 0xea, 0x2a, 0xa3, 0x65, 0x5e, 0xb0, 0x2a, + 0x6b, 0x92, 0x33, 0xaa, 0xea, 0x65, 0x01, 0xbd, 0xae, 0x79, 0x46, 0xe5, 0xe4, 0x5d, 0xfa, 0x42, + 0xb8, 0x85, 0x2b, 0x70, 0x7e, 0x46, 0x95, 0x61, 0xe8, 0x80, 0xd3, 0xea, 0x4c, 0x5c, 0xd1, 0x5b, + 0x3d, 0x55, 0x33, 0xa0, 0x8e, 0x7c, 0xde, 0x92, 0x47, 0xcc, 0x4e, 0x44, 0xe9, 0x95, 0x00, 0x7d, + 0xa1, 0x79, 0x22, 0xa6, 0x2c, 0x41, 0x97, 0x88, 0xf0, 0x13, 0x51, 0x04, 0xe0, 0xe7, 0x00, 0x14, + 0x91, 0x7a, 0xf4, 0x3d, 0xae, 0xe5, 0x76, 0x9d, 0x96, 0x35, 0xc9, 0x96, 0x59, 0x13, 0x2c, 0x99, + 0x59, 0x5b, 0xb4, 0x63, 0xd4, 0x90, 0x3e, 0x5a, 0xd4, 0x9b, 0x32, 0x26, 0xd1, 0x64, 0x34, 0x59, + 0x49, 0x01, 0xb1, 0x29, 0xb3, 0x25, 0x84, 0x4d, 0x99, 0xfc, 0x14, 0x80, 0xde, 0xd0, 0x9b, 0xb2, + 0xb5, 0x94, 0x25, 0xe8, 0x12, 0x11, 0x36, 0x65, 0xb6, 0x08, 0xc0, 0x6f, 0xda, 0xe0, 0xb5, 0xe9, + 0xef, 0x01, 0xe8, 0x4d, 0xae, 0xfa, 0xcb, 0x5a, 0x7b, 0x8d, 0x10, 0xbb, 0x9b, 0x09, 0x31, 0x33, + 0x19, 0x82, 0xf1, 0x36, 0xb9, 0xde, 0x68, 0x99, 0x97, 0x87, 0x93, 0xab, 0xd9, 0x74, 0xc8, 0x51, + 0x76, 0xf4, 0x96, 0xde, 0x74, 0x6c, 0xa4, 0x2c, 0xa1, 0x17, 0x22, 0xc2, 0xa6, 0x63, 0x28, 0x02, + 0xdc, 0xc3, 0xa9, 0x8e, 0xcd, 0xa3, 0xef, 0xeb, 0x79, 0x38, 0x99, 0x82, 0x9d, 0x84, 0x5c, 0xd6, + 0x2c, 0x56, 0x30, 0x0f, 0x67, 0x58, 0x81, 0x33, 0x13, 0x2c, 0x8b, 0xb3, 0xa3, 0x1f, 0xe8, 0x99, + 0x60, 0x9b, 0xc2, 0x05, 0xb2, 0x59, 0x98, 0x60, 0xd4, 0xce, 0x4d, 0x46, 0x21, 0x14, 0x8f, 0xae, + 0xea, 0x99, 0x8c, 0x9b, 0x8c, 0x22, 0xc8, 0xcd, 0x8b, 0xcc, 0x64, 0xa4, 0x79, 0x09, 0xc6, 0x00, + 0x96, 0x03, 0xb8, 0xe8, 0x6d, 0xae, 0x64, 0xbd, 0xd6, 0x9f, 0x60, 0xcc, 0x55, 0x4e, 0x14, 0x9c, + 0x0a, 0x05, 0x34, 0x5a, 0xe6, 0x19, 0x57, 0xc1, 0xd8, 0xb6, 0x54, 0xc3, 0xbf, 0xe8, 0x89, 0xde, + 0xb6, 0xe4, 0xf2, 0x37, 0x68, 0x49, 0x65, 0x0e, 0xb1, 0x6d, 0xe9, 0x4a, 0x08, 0x1c, 0x83, 0x33, + 0x6a, 0xd8, 0x18, 0xbd, 0xc3, 0xd5, 0xf5, 0xea, 0x7d, 0xa6, 0x8c, 0x27, 0xfa, 0x4d, 0x12, 0x66, + 0xb4, 0xcc, 0xd3, 0xae, 0x0c, 0xc1, 0x3f, 0xb7, 0xc1, 0xe5, 0x29, 0xf1, 0x63, 0xf4, 0x2e, 0xd7, + 0xfe, 0x69, 0x9d, 0xf6, 0x47, 0xe4, 0xb9, 0x99, 0x4a, 0xe8, 0xa5, 0x02, 0x8a, 0x6e, 0x4c, 0xaa, + 0x34, 0x5a, 0x26, 0xf2, 0x26, 0xd4, 0x31, 0x17, 0x5c, 0x89, 0x4a, 0xa3, 0x8e, 0xde, 0x9e, 0x7c, + 0xe4, 0x47, 0xeb, 0x8c, 0x25, 0x74, 0x40, 0x44, 0xd8, 0x9e, 0xf4, 0x44, 0x80, 0x9d, 0xea, 0x45, + 0x28, 0x1b, 0x2d, 0xe9, 0x9d, 0xea, 0x8f, 0x62, 0x47, 0x70, 0xa7, 0xf2, 0x12, 0x3b, 0xd5, 0xbd, + 0xac, 0xc0, 0xce, 0x15, 0x39, 0x5e, 0x8d, 0x96, 0xf5, 0xc6, 0xf0, 0x38, 0x65, 0x15, 0x1a, 0x24, + 0x84, 0x8d, 0xc1, 0x17, 0x01, 0xb6, 0xfb, 0xc4, 0xab, 0xe3, 0x9a, 0xde, 0xee, 0x53, 0xae, 0x0d, + 0xe9, 0xca, 0x00, 0x41, 0x71, 0x5d, 0x30, 0x4f, 0xa0, 0x2a, 0xe4, 0x8c, 0xde, 0xd7, 0x33, 0x29, + 0x4c, 0x89, 0x2b, 0x06, 0x83, 0x4a, 0x38, 0x33, 0x29, 0x82, 0x32, 0x0c, 0x9f, 0x81, 0xb3, 0xa5, + 0xc8, 0x35, 0xba, 0xae, 0xb7, 0x37, 0x4c, 0x4e, 0xec, 0xf9, 0xb6, 0x38, 0x56, 0x19, 0x63, 0x7b, + 0x23, 0x90, 0x21, 0x66, 0x3f, 0x4a, 0x31, 0x63, 0x74, 0x43, 0xcf, 0x7e, 0xdc, 0x4d, 0x48, 0x85, + 0x2e, 0x11, 0x60, 0xf6, 0x63, 0x28, 0x94, 0x99, 0x57, 0x51, 0x11, 0xf1, 0x45, 0x37, 0xf5, 0xbc, + 0x8a, 0x5d, 0x4e, 0xdd, 0xe0, 0x4c, 0x41, 0xa1, 0x8a, 0x32, 0xaf, 0x22, 0x54, 0x41, 0x41, 0xb5, + 0x18, 0x32, 0x46, 0xb7, 0x9a, 0xa8, 0xde, 0xe2, 0x4c, 0x55, 0xb5, 0x80, 0x16, 0xaa, 0x05, 0x10, + 0xfe, 0xb5, 0x0d, 0x5e, 0x9d, 0xfa, 0x1c, 0x84, 0x6e, 0xf3, 0x5e, 0xfc, 0x44, 0x6f, 0xa7, 0x50, + 0xdf, 0xeb, 0x72, 0x19, 0x6b, 0x5c, 0x84, 0xba, 0x6d, 0xaa, 0xaa, 0x8d, 0x96, 0x79, 0xc9, 0x9f, + 0x58, 0x0b, 0xff, 0xd2, 0x06, 0xdf, 0x9d, 0xf6, 0x7c, 0x81, 0xde, 0xe3, 0xfd, 0xfb, 0xac, 0x7e, + 0xed, 0x25, 0x32, 0xaa, 0xbb, 0x37, 0xb1, 0xd6, 0x68, 0x99, 0x17, 0x83, 0x49, 0x95, 0xf0, 0x1f, + 0x6d, 0xf0, 0x86, 0xc6, 0xc3, 0x08, 0xba, 0xc3, 0xfb, 0x68, 0xe9, 0xf6, 0xb1, 0xc7, 0x24, 0x6d, + 0x31, 0x41, 0xeb, 0xa9, 0x9c, 0x72, 0x4f, 0x27, 0xb4, 0x31, 0x5a, 0xe6, 0xeb, 0xc1, 0xf4, 0x26, + 0xf0, 0x4f, 0x6d, 0x70, 0x79, 0x4a, 0x26, 0x24, 0xba, 0xcb, 0x7b, 0xbb, 0xab, 0xe9, 0xcf, 0xae, + 0x52, 0x7b, 0x3b, 0xe5, 0x97, 0x1c, 0x5b, 0xb5, 0xce, 0x68, 0x99, 0xaf, 0xe0, 0xea, 0x2a, 0xb6, + 0xcb, 0xa5, 0x64, 0x2a, 0xf4, 0x81, 0xde, 0x2e, 0xef, 0x25, 0x24, 0xd1, 0x3f, 0x2a, 0x00, 0xb6, + 0xcb, 0x2d, 0xa1, 0xcc, 0xce, 0x67, 0x31, 0x9a, 0xfc, 0xa1, 0xde, 0xf9, 0xac, 0x84, 0x92, 0xa5, + 0x38, 0x32, 0x18, 0x16, 0x41, 0x64, 0x17, 0x9c, 0x51, 0x1f, 0x9b, 0xd0, 0x3d, 0x3d, 0x33, 0x65, + 0x97, 0xf3, 0x76, 0xc5, 0x60, 0x94, 0x0c, 0x31, 0x33, 0x25, 0x94, 0x10, 0x6e, 0xc4, 0x56, 0xbf, + 0x8c, 0xa1, 0xfb, 0x7a, 0x46, 0x6c, 0xa2, 0xa2, 0xc2, 0xd9, 0xab, 0xaa, 0x60, 0x46, 0x6c, 0x58, + 0x81, 0xc3, 0x3f, 0xb4, 0xc1, 0xc5, 0x89, 0xe9, 0x7b, 0xe8, 0xa3, 0x66, 0xbe, 0x77, 0xc5, 0x44, + 0x54, 0x57, 0x89, 0xbe, 0xb7, 0x5c, 0x03, 0x7f, 0xdb, 0x06, 0xaf, 0x4c, 0xc8, 0xb2, 0x43, 0x5d, + 0xbd, 0x68, 0x55, 0x2f, 0xa7, 0x77, 0x15, 0xcf, 0xa2, 0xb2, 0xc6, 0x68, 0x99, 0xe7, 0xad, 0xaa, + 0x0a, 0xf8, 0x15, 0x98, 0x13, 0x93, 0x6f, 0xd0, 0xaa, 0x5e, 0xec, 0xdd, 0xe0, 0x9c, 0x42, 0xab, + 0x50, 0x36, 0x5a, 0xe6, 0xc9, 0xbd, 0xa2, 0xc8, 0x9d, 0x48, 0x29, 0xd9, 0x0d, 0xf5, 0x34, 0x9d, + 0xc8, 0x94, 0x25, 0x39, 0xac, 0x05, 0xc2, 0x9d, 0x48, 0x11, 0x80, 0x5f, 0x83, 0x85, 0xaa, 0x27, + 0x7c, 0xb4, 0xa6, 0x17, 0x77, 0xdf, 0xe1, 0xdc, 0x8d, 0x84, 0x5a, 0x28, 0x2d, 0xc3, 0x46, 0xcb, + 0x84, 0xe3, 0x12, 0xca, 0xd4, 0x57, 0x25, 0x98, 0xa2, 0x75, 0x3d, 0xf5, 0xd9, 0x32, 0x52, 0x22, + 0xcd, 0x65, 0x98, 0xa9, 0xb7, 0x4a, 0x28, 0xb3, 0x4f, 0x8b, 0x14, 0x3c, 0xb4, 0xa1, 0x67, 0x9f, + 0x32, 0x15, 0x85, 0xae, 0xbc, 0xc4, 0xec, 0x53, 0x92, 0x15, 0x98, 0x57, 0x55, 0xce, 0x29, 0x42, + 0x0f, 0xf4, 0xbc, 0xaa, 0x87, 0x09, 0x73, 0xc7, 0xc1, 0xc2, 0x22, 0x55, 0x41, 0xe6, 0x55, 0xed, + 0x2b, 0x18, 0x77, 0x3a, 0xa6, 0x64, 0x43, 0x21, 0x43, 0xcf, 0xe9, 0x10, 0x74, 0x95, 0x63, 0xdb, + 0x93, 0x2a, 0x99, 0xd3, 0xb1, 0x3f, 0xa1, 0x8e, 0xdf, 0xab, 0x1a, 0xc9, 0x4a, 0x68, 0x53, 0xef, + 0x5e, 0x15, 0xfa, 0xf0, 0x28, 0x15, 0x94, 0x42, 0x95, 0xfd, 0xac, 0x6a, 0xc3, 0xee, 0xd5, 0xfd, + 0xe9, 0x4d, 0xf8, 0xbd, 0x3a, 0x25, 0x3d, 0x0d, 0xfd, 0x58, 0xef, 0x5e, 0x15, 0x7a, 0x52, 0x7a, + 0x15, 0x99, 0x50, 0xc7, 0xee, 0xd5, 0xfd, 0xea, 0x2a, 0xf8, 0xc7, 0x36, 0xb8, 0x34, 0x39, 0x73, + 0x0c, 0x3d, 0x6c, 0xdc, 0xa9, 0x69, 0x53, 0xa7, 0x4c, 0x99, 0xd8, 0x29, 0x69, 0xaa, 0x7e, 0xd3, + 0x06, 0xaf, 0x4c, 0x48, 0x86, 0x43, 0x5b, 0x7a, 0x57, 0x97, 0xa0, 0x75, 0xd3, 0x26, 0xb8, 0xb2, + 0x3b, 0x79, 0x05, 0xbb, 0xba, 0xf6, 0x2b, 0x70, 0x6e, 0xff, 0x4e, 0xfd, 0xe9, 0x0b, 0xda, 0xd6, + 0xb3, 0x7f, 0xbb, 0x89, 0x90, 0xe4, 0x85, 0x68, 0x27, 0x15, 0x21, 0x18, 0x44, 0x13, 0xab, 0x99, + 0xfd, 0x8b, 0x27, 0xd6, 0xf2, 0x27, 0x70, 0x39, 0xbd, 0x03, 0x3d, 0xd2, 0x7c, 0x02, 0x0f, 0x49, + 0xb0, 0x45, 0xc5, 0x37, 0x7f, 0x09, 0xe1, 0x4f, 0xe0, 0x22, 0xc0, 0xdc, 0x90, 0x8a, 0x24, 0x7a, + 0xf4, 0x58, 0xcf, 0x0d, 0xe9, 0x71, 0xea, 0x2e, 0x67, 0x0a, 0x87, 0xab, 0x8a, 0x32, 0x37, 0xc4, + 0x52, 0x41, 0x76, 0xb4, 0x16, 0x79, 0xc6, 0x68, 0x47, 0xef, 0x68, 0xdd, 0x20, 0xa2, 0x61, 0x9c, + 0x97, 0xd8, 0xd1, 0x3a, 0xcc, 0x0a, 0xf0, 0x9f, 0x6d, 0xf0, 0xa6, 0x4e, 0x1e, 0x2d, 0xfa, 0x98, + 0x2b, 0x25, 0xb5, 0x09, 0x2f, 0xc4, 0xff, 0x84, 0x8b, 0xea, 0xa5, 0x92, 0x76, 0x73, 0x41, 0x45, + 0x5f, 0xea, 0x1a, 0x19, 0x2d, 0xf3, 0xca, 0xa8, 0xa6, 0x0d, 0xfb, 0xf2, 0x4a, 0x2a, 0x35, 0xda, + 0xd5, 0x8c, 0x86, 0x12, 0x62, 0x6f, 0x46, 0xc4, 0x95, 0x27, 0x27, 0x47, 0x78, 0x34, 0x54, 0x04, + 0xd8, 0x97, 0xaf, 0xf8, 0x75, 0x0b, 0xfa, 0x4c, 0xef, 0xcb, 0xaf, 0x26, 0xd4, 0x5d, 0xc6, 0x14, + 0x1f, 0x6b, 0x14, 0x94, 0x7d, 0xf9, 0x81, 0x0a, 0xf2, 0xe3, 0x69, 0xf2, 0x8f, 0x13, 0xd0, 0xe7, + 0x7a, 0xc7, 0x53, 0xf6, 0x5e, 0xd0, 0xe3, 0x02, 0xb6, 0xa8, 0xb7, 0x5f, 0x7e, 0x4b, 0x50, 0xea, + 0xd8, 0xf1, 0x64, 0x55, 0x57, 0xf1, 0x8b, 0x71, 0xca, 0x2f, 0x10, 0xd0, 0x97, 0x7a, 0x17, 0x63, + 0xa6, 0x79, 0x3b, 0x91, 0x50, 0xdd, 0x2d, 0xb5, 0x92, 0x5d, 0x8c, 0xd6, 0x84, 0x3a, 0x66, 0x28, + 0x94, 0x13, 0xe5, 0xd1, 0x53, 0x3d, 0x43, 0x81, 0x2d, 0x82, 0xed, 0x84, 0x28, 0xaf, 0x0c, 0x11, + 0x64, 0x86, 0xc2, 0x50, 0xc1, 0xf8, 0xc9, 0x50, 0xfe, 0x29, 0x07, 0xfa, 0xa9, 0xe6, 0xc9, 0x90, + 0x52, 0xe5, 0xfd, 0x5a, 0x42, 0xf9, 0xc9, 0xa0, 0x82, 0xf0, 0x80, 0x3f, 0xf6, 0xaa, 0xbf, 0x7f, + 0x43, 0x3f, 0xd3, 0x1b, 0x72, 0x7a, 0x13, 0xca, 0x9a, 0x55, 0x90, 0x0d, 0x19, 0x2b, 0x18, 0x1f, + 0x72, 0xf9, 0x67, 0x50, 0xe8, 0x2b, 0xcd, 0x21, 0xa7, 0x54, 0x65, 0xc8, 0x2a, 0xca, 0x87, 0xac, + 0x82, 0xab, 0x73, 0x62, 0xa6, 0xdc, 0xe2, 0xdf, 0x67, 0xc0, 0x29, 0x29, 0xc7, 0x0c, 0xae, 0x81, + 0xd3, 0x45, 0xc8, 0x86, 0x7a, 0x36, 0x39, 0x4c, 0xd3, 0xe9, 0x2e, 0x67, 0xdd, 0xca, 0x52, 0xfe, + 0x3a, 0x9b, 0x5e, 0x74, 0xeb, 0x46, 0x92, 0xe3, 0x36, 0x9f, 0x73, 0x36, 0x19, 0x05, 0x7a, 0xe0, + 0x5c, 0xe2, 0x09, 0x8f, 0x71, 0xb4, 0xd7, 0x27, 0x0e, 0x71, 0x89, 0x17, 0x85, 0x68, 0x86, 0xe7, + 0xfd, 0xdd, 0x6b, 0x94, 0xf5, 0x96, 0x38, 0xc4, 0x3b, 0x38, 0xda, 0x5b, 0x4f, 0xc4, 0x98, 0x67, + 0x87, 0x0a, 0x12, 0x5e, 0xb2, 0xc1, 0x19, 0xb5, 0x19, 0x7c, 0x15, 0x24, 0xde, 0x73, 0xdf, 0xc3, + 0x6e, 0x92, 0x13, 0x38, 0x6b, 0xce, 0x72, 0xe4, 0x11, 0x76, 0x09, 0xbc, 0x06, 0x5e, 0x4a, 0x86, + 0x37, 0x53, 0x3f, 0xbc, 0xa4, 0xe5, 0xe2, 0x37, 0x33, 0x60, 0x4e, 0xcc, 0xa3, 0x83, 0x37, 0xc0, + 0x85, 0xd8, 0x1b, 0xc7, 0x03, 0x87, 0x86, 0x7b, 0xd9, 0x57, 0x2c, 0x52, 0x10, 0x67, 0xcd, 0x05, + 0xa1, 0xb6, 0x48, 0xb3, 0x1b, 0x03, 0x94, 0x3a, 0x3a, 0x07, 0xd4, 0x77, 0x92, 0x99, 0xce, 0xb2, + 0xf9, 0x92, 0xce, 0xdc, 0xd2, 0x73, 0x76, 0x9e, 0x64, 0xf4, 0x2c, 0xaf, 0xef, 0xc2, 0xb8, 0x12, + 0x87, 0x3f, 0x07, 0x17, 0x14, 0xd7, 0x2a, 0xd3, 0x97, 0x64, 0x32, 0xde, 0x68, 0xe4, 0x5c, 0x65, + 0xda, 0x16, 0xc6, 0x15, 0xe8, 0xe2, 0x7f, 0xdb, 0xe0, 0x42, 0x75, 0xf7, 0xe0, 0x3d, 0x70, 0x99, + 0x1c, 0xa6, 0xa9, 0x4d, 0x69, 0x7f, 0x6c, 0x12, 0x5a, 0x01, 0x1d, 0xf3, 0x9c, 0xc8, 0x24, 0xdf, + 0xf2, 0x62, 0xd6, 0x24, 0x11, 0xb2, 0x56, 0x34, 0x80, 0x6b, 0xe0, 0xd8, 0x3e, 0x39, 0x4a, 0x73, + 0x27, 0x57, 0xea, 0xb2, 0x2f, 0x95, 0x4e, 0x3c, 0x24, 0x47, 0x26, 0xa3, 0xc3, 0x65, 0xb0, 0xa0, + 0xf6, 0x82, 0xaf, 0x90, 0x97, 0xb8, 0x7a, 0x28, 0xab, 0xe7, 0x4b, 0xe5, 0x0d, 0x70, 0x8a, 0x86, + 0x7d, 0x72, 0x48, 0xdc, 0x71, 0x44, 0x07, 0x0e, 0x41, 0x2f, 0x5f, 0x69, 0x5f, 0x3d, 0x61, 0xce, + 0xd1, 0x70, 0x3d, 0xc7, 0x16, 0x5f, 0x80, 0x85, 0xaa, 0x59, 0x82, 0x83, 0xdc, 0xad, 0x8d, 0xfc, + 0x31, 0xb5, 0xfa, 0xc4, 0x8b, 0x02, 0x4a, 0xb2, 0x1c, 0xd8, 0x65, 0xbd, 0x51, 0x7c, 0xc2, 0xa8, + 0xeb, 0x5e, 0x14, 0x1c, 0x65, 0xbe, 0x6b, 0x8e, 0x50, 0x12, 0xae, 0xfe, 0xab, 0x0d, 0x16, 0x2d, + 0xdf, 0xad, 0xf9, 0x8a, 0xab, 0x27, 0xf9, 0x1a, 0x0c, 0x77, 0xd8, 0x0a, 0xdf, 0x69, 0x7f, 0xb1, + 0x96, 0x36, 0x1f, 0xf9, 0x0e, 0xf6, 0x46, 0x1d, 0x3f, 0x18, 0x2d, 0x8d, 0x88, 0xc7, 0xd7, 0x7f, + 0x96, 0x09, 0x3c, 0xa6, 0xe1, 0xa4, 0xc4, 0xe0, 0xbb, 0xc9, 0x9f, 0x6f, 0x66, 0x8e, 0x3d, 0xe8, + 0x76, 0xff, 0x36, 0xf3, 0x5a, 0x92, 0x91, 0xdb, 0xe9, 0xda, 0x42, 0xde, 0x6e, 0xe7, 0xc9, 0x72, + 0xb2, 0x99, 0xc3, 0xff, 0x64, 0x0d, 0x9e, 0x76, 0xed, 0xf0, 0x69, 0xde, 0xe0, 0xe9, 0x93, 0xe5, + 0xa7, 0x49, 0x83, 0xc1, 0xcb, 0x5c, 0xf1, 0xf5, 0xff, 0x07, 0x00, 0x00, 0xff, 0xff, 0x72, 0x91, + 0xd2, 0x81, 0xf2, 0x3e, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/feed_attribute_reference_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/feed_attribute_reference_error.pb.go new file mode 100644 index 000000000..ec1004dd5 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/feed_attribute_reference_error.pb.go @@ -0,0 +1,122 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/feed_attribute_reference_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible feed attribute reference errors. +type FeedAttributeReferenceErrorEnum_FeedAttributeReferenceError int32 + +const ( + // Enum unspecified. + FeedAttributeReferenceErrorEnum_UNSPECIFIED FeedAttributeReferenceErrorEnum_FeedAttributeReferenceError = 0 + // The received error code is not known in this version. + FeedAttributeReferenceErrorEnum_UNKNOWN FeedAttributeReferenceErrorEnum_FeedAttributeReferenceError = 1 + // A feed referenced by ID has been deleted. + FeedAttributeReferenceErrorEnum_CANNOT_REFERENCE_DELETED_FEED FeedAttributeReferenceErrorEnum_FeedAttributeReferenceError = 2 + // There is no active feed with the given name. + FeedAttributeReferenceErrorEnum_INVALID_FEED_NAME FeedAttributeReferenceErrorEnum_FeedAttributeReferenceError = 3 + // There is no feed attribute in an active feed with the given name. + FeedAttributeReferenceErrorEnum_INVALID_FEED_ATTRIBUTE_NAME FeedAttributeReferenceErrorEnum_FeedAttributeReferenceError = 4 +) + +var FeedAttributeReferenceErrorEnum_FeedAttributeReferenceError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "CANNOT_REFERENCE_DELETED_FEED", + 3: "INVALID_FEED_NAME", + 4: "INVALID_FEED_ATTRIBUTE_NAME", +} +var FeedAttributeReferenceErrorEnum_FeedAttributeReferenceError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "CANNOT_REFERENCE_DELETED_FEED": 2, + "INVALID_FEED_NAME": 3, + "INVALID_FEED_ATTRIBUTE_NAME": 4, +} + +func (x FeedAttributeReferenceErrorEnum_FeedAttributeReferenceError) String() string { + return proto.EnumName(FeedAttributeReferenceErrorEnum_FeedAttributeReferenceError_name, int32(x)) +} +func (FeedAttributeReferenceErrorEnum_FeedAttributeReferenceError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_feed_attribute_reference_error_a22b1b7f38948ef0, []int{0, 0} +} + +// Container for enum describing possible feed attribute reference errors. +type FeedAttributeReferenceErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FeedAttributeReferenceErrorEnum) Reset() { *m = FeedAttributeReferenceErrorEnum{} } +func (m *FeedAttributeReferenceErrorEnum) String() string { return proto.CompactTextString(m) } +func (*FeedAttributeReferenceErrorEnum) ProtoMessage() {} +func (*FeedAttributeReferenceErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_feed_attribute_reference_error_a22b1b7f38948ef0, []int{0} +} +func (m *FeedAttributeReferenceErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FeedAttributeReferenceErrorEnum.Unmarshal(m, b) +} +func (m *FeedAttributeReferenceErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FeedAttributeReferenceErrorEnum.Marshal(b, m, deterministic) +} +func (dst *FeedAttributeReferenceErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_FeedAttributeReferenceErrorEnum.Merge(dst, src) +} +func (m *FeedAttributeReferenceErrorEnum) XXX_Size() int { + return xxx_messageInfo_FeedAttributeReferenceErrorEnum.Size(m) +} +func (m *FeedAttributeReferenceErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_FeedAttributeReferenceErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_FeedAttributeReferenceErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*FeedAttributeReferenceErrorEnum)(nil), "google.ads.googleads.v0.errors.FeedAttributeReferenceErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.FeedAttributeReferenceErrorEnum_FeedAttributeReferenceError", FeedAttributeReferenceErrorEnum_FeedAttributeReferenceError_name, FeedAttributeReferenceErrorEnum_FeedAttributeReferenceError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/feed_attribute_reference_error.proto", fileDescriptor_feed_attribute_reference_error_a22b1b7f38948ef0) +} + +var fileDescriptor_feed_attribute_reference_error_a22b1b7f38948ef0 = []byte{ + // 326 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x91, 0xd1, 0x4e, 0xf2, 0x30, + 0x14, 0xc7, 0xbf, 0xc1, 0x17, 0x4d, 0xca, 0x85, 0x73, 0x89, 0x57, 0x44, 0x50, 0x1e, 0xa0, 0x5b, + 0xe2, 0xa5, 0x57, 0x65, 0x3b, 0x23, 0x8b, 0x58, 0xc8, 0x1c, 0x98, 0x98, 0x25, 0xcd, 0x60, 0xa5, + 0x21, 0x81, 0x95, 0xb4, 0x83, 0x47, 0xf1, 0x01, 0xbc, 0xf4, 0x11, 0x7c, 0x04, 0x1f, 0xc0, 0xe7, + 0x31, 0x5b, 0x1d, 0x89, 0x17, 0x72, 0xd5, 0x7f, 0x4e, 0x7f, 0xfd, 0x9d, 0xf6, 0x14, 0xf9, 0x42, + 0x4a, 0xb1, 0xe1, 0x6e, 0x96, 0x6b, 0xd7, 0xc4, 0x2a, 0x1d, 0x3c, 0x97, 0x2b, 0x25, 0x95, 0x76, + 0x57, 0x9c, 0xe7, 0x2c, 0x2b, 0x4b, 0xb5, 0x5e, 0xec, 0x4b, 0xce, 0x14, 0x5f, 0x71, 0xc5, 0x8b, + 0x25, 0x67, 0xf5, 0x3e, 0xde, 0x29, 0x59, 0x4a, 0xa7, 0x67, 0x4e, 0xe2, 0x2c, 0xd7, 0xf8, 0x28, + 0xc1, 0x07, 0x0f, 0x1b, 0xc9, 0xe0, 0xc3, 0x42, 0xfd, 0x90, 0xf3, 0x9c, 0x34, 0x9e, 0xb8, 0xd1, + 0x40, 0x05, 0x40, 0xb1, 0xdf, 0x0e, 0x5e, 0x2d, 0xd4, 0x3d, 0xc1, 0x38, 0x17, 0xa8, 0x33, 0xa3, + 0x4f, 0x53, 0xf0, 0xa3, 0x30, 0x82, 0xc0, 0xfe, 0xe7, 0x74, 0xd0, 0xf9, 0x8c, 0x3e, 0xd0, 0xc9, + 0x33, 0xb5, 0x2d, 0xe7, 0x16, 0x5d, 0xfb, 0x84, 0xd2, 0x49, 0xc2, 0x62, 0x08, 0x21, 0x06, 0xea, + 0x03, 0x0b, 0x60, 0x0c, 0x09, 0x04, 0x2c, 0x04, 0x08, 0xec, 0x96, 0x73, 0x85, 0x2e, 0x23, 0x3a, + 0x27, 0xe3, 0xc8, 0x54, 0x18, 0x25, 0x8f, 0x60, 0xb7, 0x9d, 0x3e, 0xea, 0xfe, 0x2a, 0x93, 0x24, + 0x89, 0xa3, 0xe1, 0x2c, 0x01, 0x03, 0xfc, 0x1f, 0x7e, 0x59, 0x68, 0xb0, 0x94, 0x5b, 0x7c, 0xfa, + 0x8d, 0xc3, 0x9b, 0x13, 0x97, 0x9f, 0x56, 0x53, 0x9a, 0x5a, 0x2f, 0xc1, 0x8f, 0x43, 0xc8, 0x4d, + 0x56, 0x08, 0x2c, 0x95, 0x70, 0x05, 0x2f, 0xea, 0x19, 0x36, 0xc3, 0xdf, 0xad, 0xf5, 0x5f, 0x7f, + 0x71, 0x6f, 0x96, 0xb7, 0x56, 0x7b, 0x44, 0xc8, 0x7b, 0xab, 0x37, 0x32, 0x32, 0x92, 0x6b, 0x6c, + 0x62, 0x95, 0xe6, 0x1e, 0xae, 0x5b, 0xea, 0xcf, 0x06, 0x48, 0x49, 0xae, 0xd3, 0x23, 0x90, 0xce, + 0xbd, 0xd4, 0x00, 0x8b, 0xb3, 0xba, 0xf1, 0xdd, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0x2a, 0x51, + 0xca, 0x0c, 0x03, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/feed_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/feed_error.pb.go new file mode 100644 index 000000000..5924e2412 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/feed_error.pb.go @@ -0,0 +1,202 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/feed_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible feed errors. +type FeedErrorEnum_FeedError int32 + +const ( + // Enum unspecified. + FeedErrorEnum_UNSPECIFIED FeedErrorEnum_FeedError = 0 + // The received error code is not known in this version. + FeedErrorEnum_UNKNOWN FeedErrorEnum_FeedError = 1 + // The names of the FeedAttributes must be unique. + FeedErrorEnum_ATTRIBUTE_NAMES_NOT_UNIQUE FeedErrorEnum_FeedError = 2 + // The attribute list must be an exact copy of the existing list if the + // attribute ID's are present. + FeedErrorEnum_ATTRIBUTES_DO_NOT_MATCH_EXISTING_ATTRIBUTES FeedErrorEnum_FeedError = 3 + // Cannot specify USER origin for a system generated feed. + FeedErrorEnum_CANNOT_SPECIFY_USER_ORIGIN_FOR_SYSTEM_FEED FeedErrorEnum_FeedError = 4 + // Cannot specify GOOGLE origin for a non-system generated feed. + FeedErrorEnum_CANNOT_SPECIFY_GOOGLE_ORIGIN_FOR_NON_SYSTEM_FEED FeedErrorEnum_FeedError = 5 + // Cannot specify feed attributes for system feed. + FeedErrorEnum_CANNOT_SPECIFY_FEED_ATTRIBUTES_FOR_SYSTEM_FEED FeedErrorEnum_FeedError = 6 + // Cannot update FeedAttributes on feed with origin GOOGLE. + FeedErrorEnum_CANNOT_UPDATE_FEED_ATTRIBUTES_WITH_ORIGIN_GOOGLE FeedErrorEnum_FeedError = 7 + // The given ID refers to a removed Feed. Removed Feeds are immutable. + FeedErrorEnum_FEED_REMOVED FeedErrorEnum_FeedError = 8 + // The origin of the feed is not valid for the client. + FeedErrorEnum_INVALID_ORIGIN_VALUE FeedErrorEnum_FeedError = 9 + // A user can only create and modify feeds with USER origin. + FeedErrorEnum_FEED_ORIGIN_IS_NOT_USER FeedErrorEnum_FeedError = 10 + // Invalid auth token for the given email. + FeedErrorEnum_INVALID_AUTH_TOKEN_FOR_EMAIL FeedErrorEnum_FeedError = 11 + // Invalid email specified. + FeedErrorEnum_INVALID_EMAIL FeedErrorEnum_FeedError = 12 + // Feed name matches that of another active Feed. + FeedErrorEnum_DUPLICATE_FEED_NAME FeedErrorEnum_FeedError = 13 + // Name of feed is not allowed. + FeedErrorEnum_INVALID_FEED_NAME FeedErrorEnum_FeedError = 14 + // Missing OAuthInfo. + FeedErrorEnum_MISSING_OAUTH_INFO FeedErrorEnum_FeedError = 15 + // New FeedAttributes must not affect the unique key. + FeedErrorEnum_NEW_ATTRIBUTE_CANNOT_BE_PART_OF_UNIQUE_KEY FeedErrorEnum_FeedError = 16 + // Too many FeedAttributes for a Feed. + FeedErrorEnum_TOO_MANY_ATTRIBUTES FeedErrorEnum_FeedError = 17 + // The business account is not valid. + FeedErrorEnum_INVALID_BUSINESS_ACCOUNT FeedErrorEnum_FeedError = 18 + // Business account cannot access Google My Business account. + FeedErrorEnum_BUSINESS_ACCOUNT_CANNOT_ACCESS_LOCATION_ACCOUNT FeedErrorEnum_FeedError = 19 + // Invalid chain ID provided for affiliate location feed. + FeedErrorEnum_INVALID_AFFILIATE_CHAIN_ID FeedErrorEnum_FeedError = 20 +) + +var FeedErrorEnum_FeedError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "ATTRIBUTE_NAMES_NOT_UNIQUE", + 3: "ATTRIBUTES_DO_NOT_MATCH_EXISTING_ATTRIBUTES", + 4: "CANNOT_SPECIFY_USER_ORIGIN_FOR_SYSTEM_FEED", + 5: "CANNOT_SPECIFY_GOOGLE_ORIGIN_FOR_NON_SYSTEM_FEED", + 6: "CANNOT_SPECIFY_FEED_ATTRIBUTES_FOR_SYSTEM_FEED", + 7: "CANNOT_UPDATE_FEED_ATTRIBUTES_WITH_ORIGIN_GOOGLE", + 8: "FEED_REMOVED", + 9: "INVALID_ORIGIN_VALUE", + 10: "FEED_ORIGIN_IS_NOT_USER", + 11: "INVALID_AUTH_TOKEN_FOR_EMAIL", + 12: "INVALID_EMAIL", + 13: "DUPLICATE_FEED_NAME", + 14: "INVALID_FEED_NAME", + 15: "MISSING_OAUTH_INFO", + 16: "NEW_ATTRIBUTE_CANNOT_BE_PART_OF_UNIQUE_KEY", + 17: "TOO_MANY_ATTRIBUTES", + 18: "INVALID_BUSINESS_ACCOUNT", + 19: "BUSINESS_ACCOUNT_CANNOT_ACCESS_LOCATION_ACCOUNT", + 20: "INVALID_AFFILIATE_CHAIN_ID", +} +var FeedErrorEnum_FeedError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "ATTRIBUTE_NAMES_NOT_UNIQUE": 2, + "ATTRIBUTES_DO_NOT_MATCH_EXISTING_ATTRIBUTES": 3, + "CANNOT_SPECIFY_USER_ORIGIN_FOR_SYSTEM_FEED": 4, + "CANNOT_SPECIFY_GOOGLE_ORIGIN_FOR_NON_SYSTEM_FEED": 5, + "CANNOT_SPECIFY_FEED_ATTRIBUTES_FOR_SYSTEM_FEED": 6, + "CANNOT_UPDATE_FEED_ATTRIBUTES_WITH_ORIGIN_GOOGLE": 7, + "FEED_REMOVED": 8, + "INVALID_ORIGIN_VALUE": 9, + "FEED_ORIGIN_IS_NOT_USER": 10, + "INVALID_AUTH_TOKEN_FOR_EMAIL": 11, + "INVALID_EMAIL": 12, + "DUPLICATE_FEED_NAME": 13, + "INVALID_FEED_NAME": 14, + "MISSING_OAUTH_INFO": 15, + "NEW_ATTRIBUTE_CANNOT_BE_PART_OF_UNIQUE_KEY": 16, + "TOO_MANY_ATTRIBUTES": 17, + "INVALID_BUSINESS_ACCOUNT": 18, + "BUSINESS_ACCOUNT_CANNOT_ACCESS_LOCATION_ACCOUNT": 19, + "INVALID_AFFILIATE_CHAIN_ID": 20, +} + +func (x FeedErrorEnum_FeedError) String() string { + return proto.EnumName(FeedErrorEnum_FeedError_name, int32(x)) +} +func (FeedErrorEnum_FeedError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_feed_error_f116f5801b32d835, []int{0, 0} +} + +// Container for enum describing possible feed errors. +type FeedErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FeedErrorEnum) Reset() { *m = FeedErrorEnum{} } +func (m *FeedErrorEnum) String() string { return proto.CompactTextString(m) } +func (*FeedErrorEnum) ProtoMessage() {} +func (*FeedErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_feed_error_f116f5801b32d835, []int{0} +} +func (m *FeedErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FeedErrorEnum.Unmarshal(m, b) +} +func (m *FeedErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FeedErrorEnum.Marshal(b, m, deterministic) +} +func (dst *FeedErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_FeedErrorEnum.Merge(dst, src) +} +func (m *FeedErrorEnum) XXX_Size() int { + return xxx_messageInfo_FeedErrorEnum.Size(m) +} +func (m *FeedErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_FeedErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_FeedErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*FeedErrorEnum)(nil), "google.ads.googleads.v0.errors.FeedErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.FeedErrorEnum_FeedError", FeedErrorEnum_FeedError_name, FeedErrorEnum_FeedError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/feed_error.proto", fileDescriptor_feed_error_f116f5801b32d835) +} + +var fileDescriptor_feed_error_f116f5801b32d835 = []byte{ + // 570 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x93, 0xdd, 0x4e, 0xd4, 0x40, + 0x14, 0xc7, 0x05, 0x04, 0x64, 0xf8, 0x1a, 0x06, 0x14, 0xa2, 0x84, 0x18, 0x2e, 0x35, 0x69, 0x37, + 0xe2, 0x9d, 0x57, 0xb3, 0xed, 0x69, 0x77, 0x42, 0x3b, 0x53, 0x3b, 0x33, 0x8b, 0x6b, 0x36, 0x99, + 0xa0, 0xad, 0x8d, 0x09, 0x50, 0xb2, 0x55, 0x1e, 0xc8, 0x4b, 0x9f, 0xc3, 0x2b, 0xe3, 0x33, 0xf8, + 0x2c, 0x66, 0xfa, 0xc5, 0x0a, 0xd1, 0xab, 0x3d, 0x7b, 0xe6, 0xf7, 0xef, 0x7f, 0xce, 0x39, 0x73, + 0x90, 0x5b, 0x94, 0x65, 0x71, 0x91, 0xbb, 0xe7, 0x59, 0xd5, 0x86, 0x36, 0xba, 0x19, 0xb8, 0xf9, + 0x6c, 0x56, 0xce, 0x2a, 0xf7, 0x53, 0x9e, 0x67, 0xa6, 0x8e, 0x9d, 0xeb, 0x59, 0xf9, 0xa5, 0x24, + 0x47, 0x0d, 0xe5, 0x9c, 0x67, 0x95, 0xd3, 0x0b, 0x9c, 0x9b, 0x81, 0xd3, 0x08, 0x8e, 0x7f, 0x2f, + 0xa3, 0xcd, 0x20, 0xcf, 0x33, 0xb0, 0x7f, 0xe1, 0xea, 0xeb, 0xe5, 0xf1, 0xaf, 0x65, 0xb4, 0xd6, + 0x67, 0xc8, 0x36, 0x5a, 0xd7, 0x5c, 0x26, 0xe0, 0xb1, 0x80, 0x81, 0x8f, 0x1f, 0x90, 0x75, 0xb4, + 0xaa, 0xf9, 0x29, 0x17, 0x67, 0x1c, 0x2f, 0x90, 0x23, 0xf4, 0x94, 0x2a, 0x95, 0xb2, 0xa1, 0x56, + 0x60, 0x38, 0x8d, 0x41, 0x1a, 0x2e, 0x94, 0xd1, 0x9c, 0xbd, 0xd5, 0x80, 0x17, 0x89, 0x8b, 0x5e, + 0xf6, 0xe7, 0xd2, 0xf8, 0xa2, 0x3e, 0x8d, 0xa9, 0xf2, 0x46, 0x06, 0xde, 0x31, 0xa9, 0x18, 0x0f, + 0xcd, 0x2d, 0x80, 0x97, 0x88, 0x83, 0x5e, 0x78, 0x94, 0x5b, 0xaa, 0xf1, 0x9c, 0x18, 0x2d, 0x21, + 0x35, 0x22, 0x65, 0x21, 0xe3, 0x26, 0x10, 0xa9, 0x91, 0x13, 0xa9, 0x20, 0x36, 0x01, 0x80, 0x8f, + 0x1f, 0x92, 0xd7, 0x68, 0x70, 0x87, 0x0f, 0x85, 0x08, 0x23, 0x98, 0x57, 0x70, 0xc1, 0xff, 0x52, + 0x2d, 0x93, 0x57, 0xc8, 0xb9, 0xa3, 0xb2, 0x07, 0x73, 0x37, 0xb9, 0xe7, 0xb4, 0x32, 0xe7, 0xa4, + 0x13, 0x9f, 0x2a, 0xb8, 0x27, 0x39, 0x63, 0x6a, 0xd4, 0xd9, 0x36, 0x97, 0xc0, 0xab, 0x04, 0xa3, + 0x8d, 0x9a, 0x4b, 0x21, 0x16, 0x63, 0xf0, 0xf1, 0x23, 0x72, 0x80, 0xf6, 0x18, 0x1f, 0xd3, 0x88, + 0xf9, 0x1d, 0x3c, 0xa6, 0x91, 0x06, 0xbc, 0x46, 0x9e, 0xa1, 0xfd, 0x9a, 0x6d, 0xd3, 0xac, 0xed, + 0xa5, 0x84, 0x14, 0x23, 0xf2, 0x1c, 0x1d, 0x76, 0x32, 0xaa, 0xd5, 0xc8, 0x28, 0x71, 0x0a, 0x4d, + 0x79, 0x10, 0x53, 0x16, 0xe1, 0x75, 0xb2, 0x83, 0x36, 0x3b, 0xa2, 0x49, 0x6d, 0x90, 0x7d, 0xb4, + 0xeb, 0xeb, 0x24, 0x62, 0x5e, 0x7f, 0x5f, 0x3b, 0x23, 0xbc, 0x49, 0x1e, 0xa3, 0x9d, 0x8e, 0xbd, + 0x4d, 0x6f, 0x91, 0x27, 0x88, 0xc4, 0x4c, 0x4a, 0x3b, 0x15, 0x51, 0xbb, 0x30, 0x1e, 0x08, 0xbc, + 0x6d, 0xa7, 0xc2, 0xe1, 0xec, 0xb6, 0x58, 0xd3, 0x76, 0x62, 0x08, 0x26, 0xa1, 0xa9, 0x32, 0x22, + 0x68, 0x47, 0x6e, 0x4e, 0x61, 0x82, 0xb1, 0xf5, 0x55, 0x42, 0x98, 0x98, 0xf2, 0xc9, 0xfc, 0x78, + 0x77, 0xc8, 0x21, 0x3a, 0xe8, 0x7c, 0x87, 0x5a, 0x32, 0x0e, 0x52, 0x1a, 0xea, 0x79, 0x42, 0x73, + 0x85, 0x09, 0x39, 0x41, 0xee, 0xdd, 0x6c, 0xe7, 0x44, 0x3d, 0xcf, 0x66, 0x23, 0xe1, 0x51, 0xc5, + 0x04, 0xef, 0x45, 0xbb, 0xf6, 0x09, 0xf6, 0x8d, 0x09, 0x02, 0x16, 0x31, 0x5b, 0xab, 0x37, 0xa2, + 0xb6, 0x83, 0x3e, 0xde, 0x1b, 0xfe, 0x58, 0x40, 0xc7, 0x1f, 0xcb, 0x4b, 0xe7, 0xff, 0x7b, 0x30, + 0xdc, 0xea, 0x9f, 0x7c, 0x62, 0xf7, 0x26, 0x59, 0x78, 0xef, 0xb7, 0x8a, 0xa2, 0xbc, 0x38, 0xbf, + 0x2a, 0x9c, 0x72, 0x56, 0xb8, 0x45, 0x7e, 0x55, 0x6f, 0x55, 0xb7, 0x7a, 0xd7, 0x9f, 0xab, 0x7f, + 0x6d, 0xe2, 0x9b, 0xe6, 0xe7, 0xdb, 0xe2, 0x52, 0x48, 0xe9, 0xf7, 0xc5, 0xa3, 0xb0, 0xf9, 0x18, + 0xcd, 0x2a, 0xa7, 0x09, 0x6d, 0x34, 0x1e, 0x38, 0xb5, 0x65, 0xf5, 0xb3, 0x03, 0xa6, 0x34, 0xab, + 0xa6, 0x3d, 0x30, 0x1d, 0x0f, 0xa6, 0x0d, 0xf0, 0x61, 0xa5, 0x36, 0x3e, 0xf9, 0x13, 0x00, 0x00, + 0xff, 0xff, 0x33, 0xfd, 0x24, 0x7d, 0x01, 0x04, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/feed_item_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/feed_item_error.pb.go new file mode 100644 index 000000000..98bc5b83a --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/feed_item_error.pb.go @@ -0,0 +1,153 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/feed_item_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible feed item errors. +type FeedItemErrorEnum_FeedItemError int32 + +const ( + // Enum unspecified. + FeedItemErrorEnum_UNSPECIFIED FeedItemErrorEnum_FeedItemError = 0 + // The received error code is not known in this version. + FeedItemErrorEnum_UNKNOWN FeedItemErrorEnum_FeedItemError = 1 + // Cannot convert the feed attribute value from string to its real type. + FeedItemErrorEnum_CANNOT_CONVERT_ATTRIBUTE_VALUE_FROM_STRING FeedItemErrorEnum_FeedItemError = 2 + // Cannot operate on removed feed item. + FeedItemErrorEnum_CANNOT_OPERATE_ON_REMOVED_FEED_ITEM FeedItemErrorEnum_FeedItemError = 3 + // Date time zone does not match the account's time zone. + FeedItemErrorEnum_DATE_TIME_MUST_BE_IN_ACCOUNT_TIME_ZONE FeedItemErrorEnum_FeedItemError = 4 + // Feed item with the key attributes could not be found. + FeedItemErrorEnum_KEY_ATTRIBUTES_NOT_FOUND FeedItemErrorEnum_FeedItemError = 5 + // Url feed attribute value is not valid. + FeedItemErrorEnum_INVALID_URL FeedItemErrorEnum_FeedItemError = 6 + // Some key attributes are missing. + FeedItemErrorEnum_MISSING_KEY_ATTRIBUTES FeedItemErrorEnum_FeedItemError = 7 + // Feed item has same key attributes as another feed item. + FeedItemErrorEnum_KEY_ATTRIBUTES_NOT_UNIQUE FeedItemErrorEnum_FeedItemError = 8 + // Cannot modify key attributes on an existing feed item. + FeedItemErrorEnum_CANNOT_MODIFY_KEY_ATTRIBUTE_VALUE FeedItemErrorEnum_FeedItemError = 9 + // The feed attribute value is too large. + FeedItemErrorEnum_SIZE_TOO_LARGE_FOR_MULTI_VALUE_ATTRIBUTE FeedItemErrorEnum_FeedItemError = 10 +) + +var FeedItemErrorEnum_FeedItemError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "CANNOT_CONVERT_ATTRIBUTE_VALUE_FROM_STRING", + 3: "CANNOT_OPERATE_ON_REMOVED_FEED_ITEM", + 4: "DATE_TIME_MUST_BE_IN_ACCOUNT_TIME_ZONE", + 5: "KEY_ATTRIBUTES_NOT_FOUND", + 6: "INVALID_URL", + 7: "MISSING_KEY_ATTRIBUTES", + 8: "KEY_ATTRIBUTES_NOT_UNIQUE", + 9: "CANNOT_MODIFY_KEY_ATTRIBUTE_VALUE", + 10: "SIZE_TOO_LARGE_FOR_MULTI_VALUE_ATTRIBUTE", +} +var FeedItemErrorEnum_FeedItemError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "CANNOT_CONVERT_ATTRIBUTE_VALUE_FROM_STRING": 2, + "CANNOT_OPERATE_ON_REMOVED_FEED_ITEM": 3, + "DATE_TIME_MUST_BE_IN_ACCOUNT_TIME_ZONE": 4, + "KEY_ATTRIBUTES_NOT_FOUND": 5, + "INVALID_URL": 6, + "MISSING_KEY_ATTRIBUTES": 7, + "KEY_ATTRIBUTES_NOT_UNIQUE": 8, + "CANNOT_MODIFY_KEY_ATTRIBUTE_VALUE": 9, + "SIZE_TOO_LARGE_FOR_MULTI_VALUE_ATTRIBUTE": 10, +} + +func (x FeedItemErrorEnum_FeedItemError) String() string { + return proto.EnumName(FeedItemErrorEnum_FeedItemError_name, int32(x)) +} +func (FeedItemErrorEnum_FeedItemError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_feed_item_error_d7f66157bcdcedc7, []int{0, 0} +} + +// Container for enum describing possible feed item errors. +type FeedItemErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FeedItemErrorEnum) Reset() { *m = FeedItemErrorEnum{} } +func (m *FeedItemErrorEnum) String() string { return proto.CompactTextString(m) } +func (*FeedItemErrorEnum) ProtoMessage() {} +func (*FeedItemErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_feed_item_error_d7f66157bcdcedc7, []int{0} +} +func (m *FeedItemErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FeedItemErrorEnum.Unmarshal(m, b) +} +func (m *FeedItemErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FeedItemErrorEnum.Marshal(b, m, deterministic) +} +func (dst *FeedItemErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_FeedItemErrorEnum.Merge(dst, src) +} +func (m *FeedItemErrorEnum) XXX_Size() int { + return xxx_messageInfo_FeedItemErrorEnum.Size(m) +} +func (m *FeedItemErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_FeedItemErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_FeedItemErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*FeedItemErrorEnum)(nil), "google.ads.googleads.v0.errors.FeedItemErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.FeedItemErrorEnum_FeedItemError", FeedItemErrorEnum_FeedItemError_name, FeedItemErrorEnum_FeedItemError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/feed_item_error.proto", fileDescriptor_feed_item_error_d7f66157bcdcedc7) +} + +var fileDescriptor_feed_item_error_d7f66157bcdcedc7 = []byte{ + // 448 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x52, 0xdd, 0x8a, 0xd3, 0x40, + 0x14, 0xb6, 0xad, 0xee, 0xea, 0x2c, 0xe2, 0x38, 0x17, 0xa2, 0xa2, 0x0b, 0x56, 0xfc, 0x61, 0x91, + 0x49, 0x41, 0xef, 0xbc, 0x9a, 0x26, 0x27, 0x61, 0xd8, 0x64, 0xa6, 0x26, 0x33, 0x91, 0x2d, 0x85, + 0x43, 0x35, 0x31, 0x2c, 0x6c, 0x9b, 0x25, 0xa9, 0xfb, 0x0a, 0xbe, 0x87, 0x97, 0x3e, 0x89, 0xf8, + 0x36, 0xbe, 0x81, 0xa4, 0xd3, 0x56, 0x0a, 0xba, 0x57, 0xf3, 0xf1, 0xcd, 0xf7, 0x9d, 0x6f, 0xce, + 0x9c, 0x43, 0xde, 0x55, 0x75, 0x5d, 0x5d, 0x94, 0xde, 0xbc, 0x68, 0x3d, 0x07, 0x3b, 0x74, 0x35, + 0xf2, 0xca, 0xa6, 0xa9, 0x9b, 0xd6, 0xfb, 0x52, 0x96, 0x05, 0x9e, 0xaf, 0xca, 0x05, 0xae, 0x09, + 0x7e, 0xd9, 0xd4, 0xab, 0x9a, 0x1d, 0x3b, 0x29, 0x9f, 0x17, 0x2d, 0xdf, 0xb9, 0xf8, 0xd5, 0x88, + 0x3b, 0xd7, 0xf0, 0xdb, 0x80, 0xdc, 0x0f, 0xcb, 0xb2, 0x90, 0xab, 0x72, 0x01, 0x1d, 0x05, 0xcb, + 0xaf, 0x8b, 0xe1, 0xef, 0x3e, 0xb9, 0xbb, 0xc7, 0xb2, 0x7b, 0xe4, 0xc8, 0xaa, 0x6c, 0x02, 0xbe, + 0x0c, 0x25, 0x04, 0xf4, 0x06, 0x3b, 0x22, 0x87, 0x56, 0x9d, 0x2a, 0xfd, 0x51, 0xd1, 0x1e, 0xe3, + 0xe4, 0xc4, 0x17, 0x4a, 0x69, 0x83, 0xbe, 0x56, 0x39, 0xa4, 0x06, 0x85, 0x31, 0xa9, 0x1c, 0x5b, + 0x03, 0x98, 0x8b, 0xd8, 0x02, 0x86, 0xa9, 0x4e, 0x30, 0x33, 0xa9, 0x54, 0x11, 0xed, 0xb3, 0x57, + 0xe4, 0xf9, 0x46, 0xaf, 0x27, 0x90, 0x0a, 0x03, 0xa8, 0x15, 0xa6, 0x90, 0xe8, 0x1c, 0x02, 0x0c, + 0x01, 0x02, 0x94, 0x06, 0x12, 0x3a, 0x60, 0x27, 0xe4, 0x65, 0xd0, 0x5d, 0x1b, 0x99, 0x00, 0x26, + 0x36, 0x33, 0x38, 0x06, 0x94, 0x0a, 0x85, 0xef, 0x6b, 0xab, 0x8c, 0xe3, 0xa7, 0x5a, 0x01, 0xbd, + 0xc9, 0x9e, 0x90, 0x87, 0xa7, 0x70, 0xf6, 0x37, 0x39, 0xc3, 0x2e, 0x20, 0xd4, 0x56, 0x05, 0xf4, + 0x56, 0xd7, 0x80, 0x54, 0xb9, 0x88, 0x65, 0x80, 0x36, 0x8d, 0xe9, 0x01, 0x7b, 0x4c, 0x1e, 0x24, + 0x32, 0xcb, 0xa4, 0x8a, 0x70, 0xdf, 0x46, 0x0f, 0xd9, 0x53, 0xf2, 0xe8, 0x1f, 0xa5, 0xac, 0x92, + 0x1f, 0x2c, 0xd0, 0xdb, 0xec, 0x05, 0x79, 0xb6, 0x79, 0x7e, 0xa2, 0x03, 0x19, 0x9e, 0xed, 0x17, + 0x70, 0x1d, 0xd3, 0x3b, 0xec, 0x0d, 0x79, 0x9d, 0xc9, 0x29, 0xa0, 0xd1, 0x1a, 0x63, 0x91, 0x46, + 0x80, 0xa1, 0x4e, 0x31, 0xb1, 0xb1, 0x91, 0x9b, 0x5f, 0xd9, 0x79, 0x28, 0x19, 0xff, 0xec, 0x91, + 0xe1, 0xe7, 0x7a, 0xc1, 0xaf, 0x1f, 0xd8, 0x98, 0xed, 0xcd, 0x65, 0xd2, 0x0d, 0x79, 0xd2, 0x9b, + 0x06, 0x1b, 0x57, 0x55, 0x5f, 0xcc, 0x97, 0x15, 0xaf, 0x9b, 0xca, 0xab, 0xca, 0xe5, 0x7a, 0x05, + 0xb6, 0xcb, 0x72, 0x79, 0xde, 0xfe, 0x6f, 0x77, 0xde, 0xbb, 0xe3, 0x7b, 0x7f, 0x10, 0x09, 0xf1, + 0xa3, 0x7f, 0x1c, 0xb9, 0x62, 0xa2, 0x68, 0xb9, 0x83, 0x1d, 0xca, 0x47, 0x7c, 0x1d, 0xd9, 0xfe, + 0xda, 0x0a, 0x66, 0xa2, 0x68, 0x67, 0x3b, 0xc1, 0x2c, 0x1f, 0xcd, 0x9c, 0xe0, 0xd3, 0xc1, 0x3a, + 0xf8, 0xed, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x6d, 0x06, 0x99, 0xd8, 0xb3, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/feed_mapping_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/feed_mapping_error.pb.go new file mode 100644 index 000000000..691bf1bd9 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/feed_mapping_error.pb.go @@ -0,0 +1,191 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/feed_mapping_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible feed item errors. +type FeedMappingErrorEnum_FeedMappingError int32 + +const ( + // Enum unspecified. + FeedMappingErrorEnum_UNSPECIFIED FeedMappingErrorEnum_FeedMappingError = 0 + // The received error code is not known in this version. + FeedMappingErrorEnum_UNKNOWN FeedMappingErrorEnum_FeedMappingError = 1 + // The given placeholder field does not exist. + FeedMappingErrorEnum_INVALID_PLACEHOLDER_FIELD FeedMappingErrorEnum_FeedMappingError = 2 + // The given criterion field does not exist. + FeedMappingErrorEnum_INVALID_CRITERION_FIELD FeedMappingErrorEnum_FeedMappingError = 3 + // The given placeholder type does not exist. + FeedMappingErrorEnum_INVALID_PLACEHOLDER_TYPE FeedMappingErrorEnum_FeedMappingError = 4 + // The given criterion type does not exist. + FeedMappingErrorEnum_INVALID_CRITERION_TYPE FeedMappingErrorEnum_FeedMappingError = 5 + // A feed mapping must contain at least one attribute field mapping. + FeedMappingErrorEnum_NO_ATTRIBUTE_FIELD_MAPPINGS FeedMappingErrorEnum_FeedMappingError = 7 + // The type of the feed attribute referenced in the attribute field mapping + // must match the type of the placeholder field. + FeedMappingErrorEnum_FEED_ATTRIBUTE_TYPE_MISMATCH FeedMappingErrorEnum_FeedMappingError = 8 + // A feed mapping for a system generated feed cannot be operated on. + FeedMappingErrorEnum_CANNOT_OPERATE_ON_MAPPINGS_FOR_SYSTEM_GENERATED_FEED FeedMappingErrorEnum_FeedMappingError = 9 + // Only one feed mapping for a placeholder type is allowed per feed or + // customer (depending on the placeholder type). + FeedMappingErrorEnum_MULTIPLE_MAPPINGS_FOR_PLACEHOLDER_TYPE FeedMappingErrorEnum_FeedMappingError = 10 + // Only one feed mapping for a criterion type is allowed per customer. + FeedMappingErrorEnum_MULTIPLE_MAPPINGS_FOR_CRITERION_TYPE FeedMappingErrorEnum_FeedMappingError = 11 + // Only one feed attribute mapping for a placeholder field is allowed + // (depending on the placeholder type). + FeedMappingErrorEnum_MULTIPLE_MAPPINGS_FOR_PLACEHOLDER_FIELD FeedMappingErrorEnum_FeedMappingError = 12 + // Only one feed attribute mapping for a criterion field is allowed + // (depending on the criterion type). + FeedMappingErrorEnum_MULTIPLE_MAPPINGS_FOR_CRITERION_FIELD FeedMappingErrorEnum_FeedMappingError = 13 + // This feed mapping may not contain any explicit attribute field mappings. + FeedMappingErrorEnum_UNEXPECTED_ATTRIBUTE_FIELD_MAPPINGS FeedMappingErrorEnum_FeedMappingError = 14 + // Location placeholder feed mappings can only be created for Places feeds. + FeedMappingErrorEnum_LOCATION_PLACEHOLDER_ONLY_FOR_PLACES_FEEDS FeedMappingErrorEnum_FeedMappingError = 15 + // Mappings for typed feeds cannot be modified. + FeedMappingErrorEnum_CANNOT_MODIFY_MAPPINGS_FOR_TYPED_FEED FeedMappingErrorEnum_FeedMappingError = 16 + // The given placeholder type can only be mapped to system generated feeds. + FeedMappingErrorEnum_INVALID_PLACEHOLDER_TYPE_FOR_NON_SYSTEM_GENERATED_FEED FeedMappingErrorEnum_FeedMappingError = 17 + // The given placeholder type cannot be mapped to a system generated feed + // with the given type. + FeedMappingErrorEnum_INVALID_PLACEHOLDER_TYPE_FOR_SYSTEM_GENERATED_FEED_TYPE FeedMappingErrorEnum_FeedMappingError = 18 +) + +var FeedMappingErrorEnum_FeedMappingError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "INVALID_PLACEHOLDER_FIELD", + 3: "INVALID_CRITERION_FIELD", + 4: "INVALID_PLACEHOLDER_TYPE", + 5: "INVALID_CRITERION_TYPE", + 7: "NO_ATTRIBUTE_FIELD_MAPPINGS", + 8: "FEED_ATTRIBUTE_TYPE_MISMATCH", + 9: "CANNOT_OPERATE_ON_MAPPINGS_FOR_SYSTEM_GENERATED_FEED", + 10: "MULTIPLE_MAPPINGS_FOR_PLACEHOLDER_TYPE", + 11: "MULTIPLE_MAPPINGS_FOR_CRITERION_TYPE", + 12: "MULTIPLE_MAPPINGS_FOR_PLACEHOLDER_FIELD", + 13: "MULTIPLE_MAPPINGS_FOR_CRITERION_FIELD", + 14: "UNEXPECTED_ATTRIBUTE_FIELD_MAPPINGS", + 15: "LOCATION_PLACEHOLDER_ONLY_FOR_PLACES_FEEDS", + 16: "CANNOT_MODIFY_MAPPINGS_FOR_TYPED_FEED", + 17: "INVALID_PLACEHOLDER_TYPE_FOR_NON_SYSTEM_GENERATED_FEED", + 18: "INVALID_PLACEHOLDER_TYPE_FOR_SYSTEM_GENERATED_FEED_TYPE", +} +var FeedMappingErrorEnum_FeedMappingError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "INVALID_PLACEHOLDER_FIELD": 2, + "INVALID_CRITERION_FIELD": 3, + "INVALID_PLACEHOLDER_TYPE": 4, + "INVALID_CRITERION_TYPE": 5, + "NO_ATTRIBUTE_FIELD_MAPPINGS": 7, + "FEED_ATTRIBUTE_TYPE_MISMATCH": 8, + "CANNOT_OPERATE_ON_MAPPINGS_FOR_SYSTEM_GENERATED_FEED": 9, + "MULTIPLE_MAPPINGS_FOR_PLACEHOLDER_TYPE": 10, + "MULTIPLE_MAPPINGS_FOR_CRITERION_TYPE": 11, + "MULTIPLE_MAPPINGS_FOR_PLACEHOLDER_FIELD": 12, + "MULTIPLE_MAPPINGS_FOR_CRITERION_FIELD": 13, + "UNEXPECTED_ATTRIBUTE_FIELD_MAPPINGS": 14, + "LOCATION_PLACEHOLDER_ONLY_FOR_PLACES_FEEDS": 15, + "CANNOT_MODIFY_MAPPINGS_FOR_TYPED_FEED": 16, + "INVALID_PLACEHOLDER_TYPE_FOR_NON_SYSTEM_GENERATED_FEED": 17, + "INVALID_PLACEHOLDER_TYPE_FOR_SYSTEM_GENERATED_FEED_TYPE": 18, +} + +func (x FeedMappingErrorEnum_FeedMappingError) String() string { + return proto.EnumName(FeedMappingErrorEnum_FeedMappingError_name, int32(x)) +} +func (FeedMappingErrorEnum_FeedMappingError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_feed_mapping_error_00493e471bdaff0d, []int{0, 0} +} + +// Container for enum describing possible feed item errors. +type FeedMappingErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FeedMappingErrorEnum) Reset() { *m = FeedMappingErrorEnum{} } +func (m *FeedMappingErrorEnum) String() string { return proto.CompactTextString(m) } +func (*FeedMappingErrorEnum) ProtoMessage() {} +func (*FeedMappingErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_feed_mapping_error_00493e471bdaff0d, []int{0} +} +func (m *FeedMappingErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FeedMappingErrorEnum.Unmarshal(m, b) +} +func (m *FeedMappingErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FeedMappingErrorEnum.Marshal(b, m, deterministic) +} +func (dst *FeedMappingErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_FeedMappingErrorEnum.Merge(dst, src) +} +func (m *FeedMappingErrorEnum) XXX_Size() int { + return xxx_messageInfo_FeedMappingErrorEnum.Size(m) +} +func (m *FeedMappingErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_FeedMappingErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_FeedMappingErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*FeedMappingErrorEnum)(nil), "google.ads.googleads.v0.errors.FeedMappingErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.FeedMappingErrorEnum_FeedMappingError", FeedMappingErrorEnum_FeedMappingError_name, FeedMappingErrorEnum_FeedMappingError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/feed_mapping_error.proto", fileDescriptor_feed_mapping_error_00493e471bdaff0d) +} + +var fileDescriptor_feed_mapping_error_00493e471bdaff0d = []byte{ + // 518 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x93, 0xdf, 0x6e, 0xd3, 0x30, + 0x14, 0xc6, 0x69, 0x47, 0x19, 0x9c, 0x02, 0x0b, 0x16, 0xff, 0x37, 0x06, 0x2a, 0x7f, 0x06, 0x43, + 0x72, 0x2b, 0x81, 0x18, 0x62, 0x57, 0x6e, 0xe2, 0x74, 0x16, 0x89, 0x6d, 0x25, 0x6e, 0xa1, 0xa8, + 0x92, 0x55, 0x48, 0x88, 0x26, 0xad, 0x4d, 0xd5, 0xc0, 0x1e, 0x88, 0x4b, 0x1e, 0x05, 0x24, 0x5e, + 0x83, 0xd7, 0x40, 0x89, 0xdb, 0xb2, 0x76, 0xed, 0x76, 0xd5, 0x23, 0x9f, 0xef, 0xf7, 0xd9, 0xe7, + 0x6b, 0x0e, 0xec, 0x25, 0x69, 0x9a, 0x1c, 0xc5, 0xf5, 0x7e, 0x94, 0xd5, 0x4d, 0x99, 0x57, 0xc7, + 0x8d, 0x7a, 0x3c, 0x1e, 0xa7, 0xe3, 0xac, 0xfe, 0x35, 0x8e, 0x23, 0x3d, 0xe8, 0x8f, 0x46, 0x87, + 0xc3, 0x44, 0x17, 0x67, 0x78, 0x34, 0x4e, 0xbf, 0xa5, 0x68, 0xdb, 0xa8, 0x71, 0x3f, 0xca, 0xf0, + 0x0c, 0xc4, 0xc7, 0x0d, 0x6c, 0xc0, 0xda, 0xdf, 0x0a, 0xdc, 0x74, 0xe3, 0x38, 0xf2, 0x0d, 0x4b, + 0xf3, 0x53, 0x3a, 0xfc, 0x3e, 0xa8, 0xfd, 0xa9, 0x80, 0xb5, 0xd8, 0x40, 0x1b, 0x50, 0x6d, 0xf3, + 0x50, 0x52, 0x9b, 0xb9, 0x8c, 0x3a, 0xd6, 0x05, 0x54, 0x85, 0xf5, 0x36, 0x7f, 0xcf, 0xc5, 0x07, + 0x6e, 0x95, 0xd0, 0x03, 0xb8, 0xc7, 0x78, 0x87, 0x78, 0xcc, 0xd1, 0xd2, 0x23, 0x36, 0x3d, 0x10, + 0x9e, 0x43, 0x03, 0xed, 0x32, 0xea, 0x39, 0x56, 0x19, 0x6d, 0xc2, 0x9d, 0x69, 0xdb, 0x0e, 0x98, + 0xa2, 0x01, 0x13, 0x7c, 0xd2, 0x5c, 0x43, 0x5b, 0x70, 0x77, 0x19, 0xab, 0xba, 0x92, 0x5a, 0x17, + 0xd1, 0x7d, 0xb8, 0x7d, 0x1a, 0x2d, 0x7a, 0x15, 0xf4, 0x10, 0x36, 0xb9, 0xd0, 0x44, 0xa9, 0x80, + 0x35, 0xdb, 0x8a, 0x1a, 0x47, 0xed, 0x13, 0x29, 0x19, 0x6f, 0x85, 0xd6, 0x3a, 0x7a, 0x04, 0x5b, + 0x2e, 0xa5, 0xce, 0x09, 0x49, 0x4e, 0x6a, 0x9f, 0x85, 0x3e, 0x51, 0xf6, 0x81, 0x75, 0x19, 0xbd, + 0x85, 0xd7, 0x36, 0xe1, 0x5c, 0x28, 0x2d, 0x24, 0x0d, 0x88, 0xa2, 0x5a, 0xf0, 0x99, 0x83, 0x76, + 0x45, 0xa0, 0xc3, 0x6e, 0xa8, 0xa8, 0xaf, 0x5b, 0x94, 0x17, 0x7d, 0x47, 0xe7, 0x8e, 0xd6, 0x15, + 0xb4, 0x0b, 0xcf, 0xfc, 0xb6, 0xa7, 0x98, 0xf4, 0xe8, 0x3c, 0x70, 0x6a, 0x08, 0x40, 0xcf, 0xe1, + 0xc9, 0x72, 0xed, 0xc2, 0x48, 0x55, 0xf4, 0x12, 0x76, 0xce, 0x77, 0x35, 0xc9, 0x5d, 0x45, 0x2f, + 0xe0, 0xe9, 0x79, 0xb6, 0x46, 0x7a, 0x0d, 0xed, 0xc0, 0xe3, 0x36, 0xa7, 0x1f, 0x25, 0xb5, 0xd5, + 0x5c, 0x1e, 0x0b, 0x91, 0x5d, 0x47, 0x18, 0x76, 0x3d, 0x61, 0x13, 0x95, 0xc3, 0x27, 0xef, 0x14, + 0xdc, 0xeb, 0xfe, 0x7f, 0x48, 0x58, 0xa4, 0x10, 0x5a, 0x1b, 0xf9, 0x1b, 0x26, 0x01, 0xfa, 0xc2, + 0x61, 0x6e, 0x77, 0xfe, 0x21, 0xf9, 0x54, 0x93, 0xc4, 0x2c, 0xf4, 0x0e, 0xde, 0xac, 0xfa, 0xa3, + 0x0b, 0x31, 0x17, 0x7c, 0x45, 0xda, 0x37, 0xd0, 0x3e, 0xec, 0x9d, 0xc9, 0x2e, 0xe5, 0x4c, 0xa8, + 0xa8, 0xf9, 0xbb, 0x04, 0xb5, 0x2f, 0xe9, 0x00, 0x9f, 0xbd, 0x10, 0xcd, 0x5b, 0x8b, 0x1f, 0xbd, + 0xcc, 0xf7, 0x48, 0x96, 0x3e, 0x39, 0x13, 0x30, 0x49, 0x8f, 0xfa, 0xc3, 0x04, 0xa7, 0xe3, 0xa4, + 0x9e, 0xc4, 0xc3, 0x62, 0xcb, 0xa6, 0x2b, 0x39, 0x3a, 0xcc, 0x56, 0x6d, 0xe8, 0xbe, 0xf9, 0xf9, + 0x51, 0x5e, 0x6b, 0x11, 0xf2, 0xb3, 0xbc, 0xdd, 0x32, 0x66, 0x24, 0xca, 0xb0, 0x29, 0xf3, 0xaa, + 0xd3, 0xc0, 0xc5, 0x95, 0xd9, 0xaf, 0xa9, 0xa0, 0x47, 0xa2, 0xac, 0x37, 0x13, 0xf4, 0x3a, 0x8d, + 0x9e, 0x11, 0x7c, 0xbe, 0x54, 0x5c, 0xfc, 0xea, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x47, 0x3b, + 0x01, 0x4f, 0x19, 0x04, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/field_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/field_error.pb.go new file mode 100644 index 000000000..849e0a048 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/field_error.pb.go @@ -0,0 +1,135 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/field_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible field errors. +type FieldErrorEnum_FieldError int32 + +const ( + // Enum unspecified. + FieldErrorEnum_UNSPECIFIED FieldErrorEnum_FieldError = 0 + // The received error code is not known in this version. + FieldErrorEnum_UNKNOWN FieldErrorEnum_FieldError = 1 + // The required field was not present in the resource. + FieldErrorEnum_REQUIRED FieldErrorEnum_FieldError = 2 + // The field attempted to be mutated is immutable. + FieldErrorEnum_IMMUTABLE_FIELD FieldErrorEnum_FieldError = 3 + // The field's value is invalid. + FieldErrorEnum_INVALID_VALUE FieldErrorEnum_FieldError = 4 + // The field cannot be set. + FieldErrorEnum_VALUE_MUST_BE_UNSET FieldErrorEnum_FieldError = 5 + // The required repeated field was empty. + FieldErrorEnum_REQUIRED_NONEMPTY_LIST FieldErrorEnum_FieldError = 6 + // The field cannot be cleared. + FieldErrorEnum_FIELD_CANNOT_BE_CLEARED FieldErrorEnum_FieldError = 7 +) + +var FieldErrorEnum_FieldError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "REQUIRED", + 3: "IMMUTABLE_FIELD", + 4: "INVALID_VALUE", + 5: "VALUE_MUST_BE_UNSET", + 6: "REQUIRED_NONEMPTY_LIST", + 7: "FIELD_CANNOT_BE_CLEARED", +} +var FieldErrorEnum_FieldError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "REQUIRED": 2, + "IMMUTABLE_FIELD": 3, + "INVALID_VALUE": 4, + "VALUE_MUST_BE_UNSET": 5, + "REQUIRED_NONEMPTY_LIST": 6, + "FIELD_CANNOT_BE_CLEARED": 7, +} + +func (x FieldErrorEnum_FieldError) String() string { + return proto.EnumName(FieldErrorEnum_FieldError_name, int32(x)) +} +func (FieldErrorEnum_FieldError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_field_error_e825b142d7742744, []int{0, 0} +} + +// Container for enum describing possible field errors. +type FieldErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FieldErrorEnum) Reset() { *m = FieldErrorEnum{} } +func (m *FieldErrorEnum) String() string { return proto.CompactTextString(m) } +func (*FieldErrorEnum) ProtoMessage() {} +func (*FieldErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_field_error_e825b142d7742744, []int{0} +} +func (m *FieldErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FieldErrorEnum.Unmarshal(m, b) +} +func (m *FieldErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FieldErrorEnum.Marshal(b, m, deterministic) +} +func (dst *FieldErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_FieldErrorEnum.Merge(dst, src) +} +func (m *FieldErrorEnum) XXX_Size() int { + return xxx_messageInfo_FieldErrorEnum.Size(m) +} +func (m *FieldErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_FieldErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_FieldErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*FieldErrorEnum)(nil), "google.ads.googleads.v0.errors.FieldErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.FieldErrorEnum_FieldError", FieldErrorEnum_FieldError_name, FieldErrorEnum_FieldError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/field_error.proto", fileDescriptor_field_error_e825b142d7742744) +} + +var fileDescriptor_field_error_e825b142d7742744 = []byte{ + // 341 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0xc1, 0x4e, 0xea, 0x40, + 0x18, 0x85, 0x6f, 0xe1, 0x5e, 0xb8, 0x19, 0xee, 0x95, 0x3a, 0x24, 0x92, 0x68, 0xc2, 0x82, 0x07, + 0x98, 0x36, 0x71, 0xe9, 0x6a, 0x4a, 0x07, 0x32, 0xb1, 0x1d, 0x2a, 0xed, 0xd4, 0x68, 0x9a, 0x4c, + 0xd0, 0xd6, 0x86, 0x04, 0x18, 0xd2, 0x51, 0x1e, 0xc8, 0xa5, 0x4b, 0xdf, 0x81, 0x8d, 0x4f, 0x65, + 0x3a, 0x23, 0xb0, 0xd2, 0xd5, 0x9c, 0x7f, 0x72, 0xbe, 0xff, 0xe4, 0x3f, 0xc0, 0x2d, 0xa5, 0x2c, + 0x97, 0x85, 0x33, 0xcf, 0x95, 0x63, 0x64, 0xad, 0xb6, 0xae, 0x53, 0x54, 0x95, 0xac, 0x94, 0xf3, + 0xb4, 0x28, 0x96, 0xb9, 0xd0, 0x03, 0xda, 0x54, 0xf2, 0x59, 0xc2, 0x81, 0xb1, 0xa1, 0x79, 0xae, + 0xd0, 0x81, 0x40, 0x5b, 0x17, 0x19, 0x62, 0xb8, 0xb3, 0xc0, 0xc9, 0xb8, 0xa6, 0x48, 0x3d, 0x93, + 0xf5, 0xcb, 0x6a, 0xf8, 0x6e, 0x01, 0x70, 0xfc, 0x82, 0x5d, 0xd0, 0xe1, 0x2c, 0x8e, 0xc8, 0x88, + 0x8e, 0x29, 0xf1, 0xed, 0x5f, 0xb0, 0x03, 0xda, 0x9c, 0x5d, 0xb3, 0xe9, 0x2d, 0xb3, 0x2d, 0xf8, + 0x0f, 0xfc, 0x9d, 0x91, 0x1b, 0x4e, 0x67, 0xc4, 0xb7, 0x1b, 0xb0, 0x07, 0xba, 0x34, 0x0c, 0x79, + 0x82, 0xbd, 0x80, 0x88, 0x31, 0x25, 0x81, 0x6f, 0x37, 0xe1, 0x29, 0xf8, 0x4f, 0x59, 0x8a, 0x03, + 0xea, 0x8b, 0x14, 0x07, 0x9c, 0xd8, 0xbf, 0x61, 0x1f, 0xf4, 0xb4, 0x14, 0x21, 0x8f, 0x13, 0xe1, + 0x11, 0xc1, 0x59, 0x4c, 0x12, 0xfb, 0x0f, 0x3c, 0x07, 0x67, 0xfb, 0x75, 0x82, 0x4d, 0x19, 0x09, + 0xa3, 0xe4, 0x4e, 0x04, 0x34, 0x4e, 0xec, 0x16, 0xbc, 0x00, 0x7d, 0xbd, 0x52, 0x8c, 0x30, 0x63, + 0x53, 0x8d, 0x8d, 0x02, 0x82, 0xeb, 0xe4, 0xb6, 0xb7, 0xb3, 0xc0, 0xf0, 0x51, 0xae, 0xd0, 0xcf, + 0xe7, 0x7a, 0xdd, 0xe3, 0x61, 0x51, 0xdd, 0x4f, 0x64, 0xdd, 0xfb, 0x5f, 0x48, 0x29, 0x97, 0xf3, + 0x75, 0x89, 0x64, 0x55, 0x3a, 0x65, 0xb1, 0xd6, 0xed, 0xed, 0x3b, 0xde, 0x2c, 0xd4, 0x77, 0x95, + 0x5f, 0x99, 0xe7, 0xb5, 0xd1, 0x9c, 0x60, 0xfc, 0xd6, 0x18, 0x4c, 0xcc, 0x32, 0x9c, 0x2b, 0x64, + 0x64, 0xad, 0x52, 0x17, 0xe9, 0x48, 0xf5, 0xb1, 0x37, 0x64, 0x38, 0x57, 0xd9, 0xc1, 0x90, 0xa5, + 0x6e, 0x66, 0x0c, 0x0f, 0x2d, 0x1d, 0x7c, 0xf9, 0x19, 0x00, 0x00, 0xff, 0xff, 0x00, 0x61, 0x58, + 0x18, 0xea, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/field_mask_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/field_mask_error.pb.go new file mode 100644 index 000000000..cfaa56e47 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/field_mask_error.pb.go @@ -0,0 +1,127 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/field_mask_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible field mask errors. +type FieldMaskErrorEnum_FieldMaskError int32 + +const ( + // Enum unspecified. + FieldMaskErrorEnum_UNSPECIFIED FieldMaskErrorEnum_FieldMaskError = 0 + // The received error code is not known in this version. + FieldMaskErrorEnum_UNKNOWN FieldMaskErrorEnum_FieldMaskError = 1 + // The field mask must be provided for update operations. + FieldMaskErrorEnum_FIELD_MASK_MISSING FieldMaskErrorEnum_FieldMaskError = 5 + // The field mask must be empty for create and remove operations. + FieldMaskErrorEnum_FIELD_MASK_NOT_ALLOWED FieldMaskErrorEnum_FieldMaskError = 4 + // The field mask contained an invalid field. + FieldMaskErrorEnum_FIELD_NOT_FOUND FieldMaskErrorEnum_FieldMaskError = 2 + // The field mask updated a field with subfields. Fields with subfields may + // be cleared, but not updated. To fix this, the field mask should select + // all the subfields of the invalid field. + FieldMaskErrorEnum_FIELD_HAS_SUBFIELDS FieldMaskErrorEnum_FieldMaskError = 3 +) + +var FieldMaskErrorEnum_FieldMaskError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 5: "FIELD_MASK_MISSING", + 4: "FIELD_MASK_NOT_ALLOWED", + 2: "FIELD_NOT_FOUND", + 3: "FIELD_HAS_SUBFIELDS", +} +var FieldMaskErrorEnum_FieldMaskError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "FIELD_MASK_MISSING": 5, + "FIELD_MASK_NOT_ALLOWED": 4, + "FIELD_NOT_FOUND": 2, + "FIELD_HAS_SUBFIELDS": 3, +} + +func (x FieldMaskErrorEnum_FieldMaskError) String() string { + return proto.EnumName(FieldMaskErrorEnum_FieldMaskError_name, int32(x)) +} +func (FieldMaskErrorEnum_FieldMaskError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_field_mask_error_33f5aadb43a7526c, []int{0, 0} +} + +// Container for enum describing possible field mask errors. +type FieldMaskErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FieldMaskErrorEnum) Reset() { *m = FieldMaskErrorEnum{} } +func (m *FieldMaskErrorEnum) String() string { return proto.CompactTextString(m) } +func (*FieldMaskErrorEnum) ProtoMessage() {} +func (*FieldMaskErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_field_mask_error_33f5aadb43a7526c, []int{0} +} +func (m *FieldMaskErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FieldMaskErrorEnum.Unmarshal(m, b) +} +func (m *FieldMaskErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FieldMaskErrorEnum.Marshal(b, m, deterministic) +} +func (dst *FieldMaskErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_FieldMaskErrorEnum.Merge(dst, src) +} +func (m *FieldMaskErrorEnum) XXX_Size() int { + return xxx_messageInfo_FieldMaskErrorEnum.Size(m) +} +func (m *FieldMaskErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_FieldMaskErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_FieldMaskErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*FieldMaskErrorEnum)(nil), "google.ads.googleads.v0.errors.FieldMaskErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.FieldMaskErrorEnum_FieldMaskError", FieldMaskErrorEnum_FieldMaskError_name, FieldMaskErrorEnum_FieldMaskError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/field_mask_error.proto", fileDescriptor_field_mask_error_33f5aadb43a7526c) +} + +var fileDescriptor_field_mask_error_33f5aadb43a7526c = []byte{ + // 315 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0xd1, 0x4a, 0xf3, 0x30, + 0x1c, 0xc5, 0xbf, 0x6e, 0x9f, 0x0a, 0x19, 0xb8, 0x90, 0xc1, 0x04, 0x2f, 0x76, 0xb1, 0x07, 0x48, + 0x0b, 0xe2, 0x95, 0x57, 0x99, 0x4d, 0x67, 0xd9, 0x96, 0x0e, 0x62, 0x37, 0x90, 0x42, 0xa8, 0xb6, + 0x86, 0xb1, 0xb6, 0x19, 0x8d, 0xee, 0x39, 0x7c, 0x06, 0x6f, 0x04, 0xdf, 0x44, 0x9f, 0x4a, 0xd2, + 0xb8, 0xe1, 0x2e, 0xf4, 0x2a, 0x27, 0xbf, 0x9c, 0x93, 0x7f, 0x72, 0xc0, 0xa5, 0x54, 0x4a, 0x16, + 0xb9, 0x9b, 0x66, 0xda, 0xb5, 0xd2, 0xa8, 0xad, 0xe7, 0xe6, 0x75, 0xad, 0x6a, 0xed, 0x3e, 0xae, + 0xf2, 0x22, 0x13, 0x65, 0xaa, 0xd7, 0xa2, 0x21, 0x78, 0x53, 0xab, 0x27, 0x85, 0x06, 0xd6, 0x8b, + 0xd3, 0x4c, 0xe3, 0x7d, 0x0c, 0x6f, 0x3d, 0x6c, 0x63, 0xc3, 0x37, 0x07, 0xa0, 0xc0, 0x44, 0x67, + 0xa9, 0x5e, 0x53, 0xc3, 0x68, 0xf5, 0x5c, 0x0e, 0x5f, 0x1c, 0x70, 0x7a, 0x88, 0x51, 0x17, 0x74, + 0x62, 0xc6, 0xe7, 0xf4, 0x3a, 0x0c, 0x42, 0xea, 0xc3, 0x7f, 0xa8, 0x03, 0x4e, 0x62, 0x36, 0x61, + 0xd1, 0x92, 0x41, 0x07, 0xf5, 0x01, 0x0a, 0x42, 0x3a, 0xf5, 0xc5, 0x8c, 0xf0, 0x89, 0x98, 0x85, + 0x9c, 0x87, 0x6c, 0x0c, 0x8f, 0xd0, 0x39, 0xe8, 0xff, 0xe0, 0x2c, 0xba, 0x15, 0x64, 0x3a, 0x8d, + 0x96, 0xd4, 0x87, 0xff, 0x51, 0x0f, 0x74, 0xed, 0x99, 0xc1, 0x41, 0x14, 0x33, 0x1f, 0xb6, 0xd0, + 0x19, 0xe8, 0x59, 0x78, 0x43, 0xb8, 0xe0, 0xf1, 0xa8, 0xd9, 0x70, 0xd8, 0x1e, 0x7d, 0x38, 0x60, + 0xf8, 0xa0, 0x4a, 0xfc, 0xf7, 0x87, 0x46, 0xbd, 0xc3, 0x67, 0xcf, 0x4d, 0x0b, 0x73, 0xe7, 0xce, + 0xff, 0x8e, 0x49, 0x55, 0xa4, 0x95, 0xc4, 0xaa, 0x96, 0xae, 0xcc, 0xab, 0xa6, 0xa3, 0x5d, 0x9d, + 0x9b, 0x95, 0xfe, 0xad, 0xdd, 0x2b, 0xbb, 0xbc, 0xb6, 0xda, 0x63, 0x42, 0xde, 0x5b, 0x83, 0xb1, + 0xbd, 0x8c, 0x64, 0x1a, 0x5b, 0x69, 0xd4, 0xc2, 0xc3, 0xcd, 0x48, 0xfd, 0xb9, 0x33, 0x24, 0x24, + 0xd3, 0xc9, 0xde, 0x90, 0x2c, 0xbc, 0xc4, 0x1a, 0xee, 0x8f, 0x9b, 0xc1, 0x17, 0x5f, 0x01, 0x00, + 0x00, 0xff, 0xff, 0x95, 0x75, 0xb9, 0x40, 0xd5, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/function_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/function_error.pb.go new file mode 100644 index 000000000..718eec080 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/function_error.pb.go @@ -0,0 +1,186 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/function_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible function errors. +type FunctionErrorEnum_FunctionError int32 + +const ( + // Enum unspecified. + FunctionErrorEnum_UNSPECIFIED FunctionErrorEnum_FunctionError = 0 + // The received error code is not known in this version. + FunctionErrorEnum_UNKNOWN FunctionErrorEnum_FunctionError = 1 + // The format of the function is not recognized as a supported function + // format. + FunctionErrorEnum_INVALID_FUNCTION_FORMAT FunctionErrorEnum_FunctionError = 2 + // Operand data types do not match. + FunctionErrorEnum_DATA_TYPE_MISMATCH FunctionErrorEnum_FunctionError = 3 + // The operands cannot be used together in a conjunction. + FunctionErrorEnum_INVALID_CONJUNCTION_OPERANDS FunctionErrorEnum_FunctionError = 4 + // Invalid numer of Operands. + FunctionErrorEnum_INVALID_NUMBER_OF_OPERANDS FunctionErrorEnum_FunctionError = 5 + // Operand Type not supported. + FunctionErrorEnum_INVALID_OPERAND_TYPE FunctionErrorEnum_FunctionError = 6 + // Operator not supported. + FunctionErrorEnum_INVALID_OPERATOR FunctionErrorEnum_FunctionError = 7 + // Request context type not supported. + FunctionErrorEnum_INVALID_REQUEST_CONTEXT_TYPE FunctionErrorEnum_FunctionError = 8 + // The matching function is not allowed for call placeholders + FunctionErrorEnum_INVALID_FUNCTION_FOR_CALL_PLACEHOLDER FunctionErrorEnum_FunctionError = 9 + // The matching function is not allowed for the specified placeholder + FunctionErrorEnum_INVALID_FUNCTION_FOR_PLACEHOLDER FunctionErrorEnum_FunctionError = 10 + // Invalid operand. + FunctionErrorEnum_INVALID_OPERAND FunctionErrorEnum_FunctionError = 11 + // Missing value for the constant operand. + FunctionErrorEnum_MISSING_CONSTANT_OPERAND_VALUE FunctionErrorEnum_FunctionError = 12 + // The value of the constant operand is invalid. + FunctionErrorEnum_INVALID_CONSTANT_OPERAND_VALUE FunctionErrorEnum_FunctionError = 13 + // Invalid function nesting. + FunctionErrorEnum_INVALID_NESTING FunctionErrorEnum_FunctionError = 14 + // The Feed ID was different from another Feed ID in the same function. + FunctionErrorEnum_MULTIPLE_FEED_IDS_NOT_SUPPORTED FunctionErrorEnum_FunctionError = 15 + // The matching function is invalid for use with a feed with a fixed schema. + FunctionErrorEnum_INVALID_FUNCTION_FOR_FEED_WITH_FIXED_SCHEMA FunctionErrorEnum_FunctionError = 16 + // Invalid attribute name. + FunctionErrorEnum_INVALID_ATTRIBUTE_NAME FunctionErrorEnum_FunctionError = 17 +) + +var FunctionErrorEnum_FunctionError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "INVALID_FUNCTION_FORMAT", + 3: "DATA_TYPE_MISMATCH", + 4: "INVALID_CONJUNCTION_OPERANDS", + 5: "INVALID_NUMBER_OF_OPERANDS", + 6: "INVALID_OPERAND_TYPE", + 7: "INVALID_OPERATOR", + 8: "INVALID_REQUEST_CONTEXT_TYPE", + 9: "INVALID_FUNCTION_FOR_CALL_PLACEHOLDER", + 10: "INVALID_FUNCTION_FOR_PLACEHOLDER", + 11: "INVALID_OPERAND", + 12: "MISSING_CONSTANT_OPERAND_VALUE", + 13: "INVALID_CONSTANT_OPERAND_VALUE", + 14: "INVALID_NESTING", + 15: "MULTIPLE_FEED_IDS_NOT_SUPPORTED", + 16: "INVALID_FUNCTION_FOR_FEED_WITH_FIXED_SCHEMA", + 17: "INVALID_ATTRIBUTE_NAME", +} +var FunctionErrorEnum_FunctionError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "INVALID_FUNCTION_FORMAT": 2, + "DATA_TYPE_MISMATCH": 3, + "INVALID_CONJUNCTION_OPERANDS": 4, + "INVALID_NUMBER_OF_OPERANDS": 5, + "INVALID_OPERAND_TYPE": 6, + "INVALID_OPERATOR": 7, + "INVALID_REQUEST_CONTEXT_TYPE": 8, + "INVALID_FUNCTION_FOR_CALL_PLACEHOLDER": 9, + "INVALID_FUNCTION_FOR_PLACEHOLDER": 10, + "INVALID_OPERAND": 11, + "MISSING_CONSTANT_OPERAND_VALUE": 12, + "INVALID_CONSTANT_OPERAND_VALUE": 13, + "INVALID_NESTING": 14, + "MULTIPLE_FEED_IDS_NOT_SUPPORTED": 15, + "INVALID_FUNCTION_FOR_FEED_WITH_FIXED_SCHEMA": 16, + "INVALID_ATTRIBUTE_NAME": 17, +} + +func (x FunctionErrorEnum_FunctionError) String() string { + return proto.EnumName(FunctionErrorEnum_FunctionError_name, int32(x)) +} +func (FunctionErrorEnum_FunctionError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_function_error_6eac0af30e166d98, []int{0, 0} +} + +// Container for enum describing possible function errors. +type FunctionErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FunctionErrorEnum) Reset() { *m = FunctionErrorEnum{} } +func (m *FunctionErrorEnum) String() string { return proto.CompactTextString(m) } +func (*FunctionErrorEnum) ProtoMessage() {} +func (*FunctionErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_function_error_6eac0af30e166d98, []int{0} +} +func (m *FunctionErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FunctionErrorEnum.Unmarshal(m, b) +} +func (m *FunctionErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FunctionErrorEnum.Marshal(b, m, deterministic) +} +func (dst *FunctionErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_FunctionErrorEnum.Merge(dst, src) +} +func (m *FunctionErrorEnum) XXX_Size() int { + return xxx_messageInfo_FunctionErrorEnum.Size(m) +} +func (m *FunctionErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_FunctionErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_FunctionErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*FunctionErrorEnum)(nil), "google.ads.googleads.v0.errors.FunctionErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.FunctionErrorEnum_FunctionError", FunctionErrorEnum_FunctionError_name, FunctionErrorEnum_FunctionError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/function_error.proto", fileDescriptor_function_error_6eac0af30e166d98) +} + +var fileDescriptor_function_error_6eac0af30e166d98 = []byte{ + // 502 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x92, 0xd1, 0x6e, 0xd3, 0x30, + 0x14, 0x86, 0x69, 0x57, 0x36, 0x38, 0x65, 0xd4, 0x33, 0xd3, 0x40, 0x03, 0x95, 0xa9, 0xc0, 0x05, + 0x42, 0x4a, 0x2a, 0xed, 0x92, 0x2b, 0x37, 0x39, 0x69, 0x0d, 0x89, 0x1d, 0x62, 0xa7, 0x1b, 0xa8, + 0x92, 0x55, 0xd6, 0x12, 0x4d, 0xda, 0x9a, 0xa9, 0xd9, 0xf6, 0x40, 0x5c, 0xc2, 0x53, 0x70, 0x87, + 0x78, 0x2a, 0x94, 0xa4, 0x29, 0x2d, 0x2a, 0x5c, 0xe5, 0xe4, 0x9c, 0xff, 0xf3, 0xef, 0x63, 0xfd, + 0x70, 0x9c, 0xa4, 0x69, 0x72, 0x31, 0xb5, 0xc7, 0x93, 0xcc, 0x2e, 0xcb, 0xbc, 0xba, 0xed, 0xda, + 0xd3, 0xf9, 0x3c, 0x9d, 0x67, 0xf6, 0x97, 0x9b, 0xd9, 0xd9, 0xf5, 0x79, 0x3a, 0x33, 0xc5, 0xbf, + 0x75, 0x35, 0x4f, 0xaf, 0x53, 0xda, 0x2e, 0x95, 0xd6, 0x78, 0x92, 0x59, 0x4b, 0xc8, 0xba, 0xed, + 0x5a, 0x25, 0xd4, 0xf9, 0xd1, 0x80, 0x3d, 0x6f, 0x01, 0x62, 0xde, 0xc2, 0xd9, 0xcd, 0x65, 0xe7, + 0x7b, 0x03, 0x76, 0xd7, 0xba, 0xb4, 0x05, 0xcd, 0x58, 0xa8, 0x10, 0x1d, 0xee, 0x71, 0x74, 0xc9, + 0x1d, 0xda, 0x84, 0x9d, 0x58, 0xbc, 0x17, 0xf2, 0x44, 0x90, 0x1a, 0x7d, 0x0a, 0x8f, 0xb9, 0x18, + 0x32, 0x9f, 0xbb, 0xc6, 0x8b, 0x85, 0xa3, 0xb9, 0x14, 0xc6, 0x93, 0x51, 0xc0, 0x34, 0xa9, 0xd3, + 0x03, 0xa0, 0x2e, 0xd3, 0xcc, 0xe8, 0x8f, 0x21, 0x9a, 0x80, 0xab, 0x80, 0x69, 0x67, 0x40, 0xb6, + 0xe8, 0x11, 0x3c, 0xab, 0x20, 0x47, 0x8a, 0x77, 0x15, 0x27, 0x43, 0x8c, 0x98, 0x70, 0x15, 0x69, + 0xd0, 0x36, 0x1c, 0x56, 0x0a, 0x11, 0x07, 0x3d, 0x8c, 0x8c, 0xf4, 0xfe, 0xcc, 0xef, 0xd2, 0x27, + 0xb0, 0x5f, 0xcd, 0x17, 0xdd, 0xc2, 0x84, 0x6c, 0xd3, 0x7d, 0x20, 0x6b, 0x13, 0x2d, 0x23, 0xb2, + 0xb3, 0xea, 0x18, 0xe1, 0x87, 0x18, 0x95, 0xce, 0x9d, 0x35, 0x9e, 0xea, 0x92, 0xbb, 0x47, 0x5f, + 0xc3, 0xab, 0x4d, 0x8b, 0x18, 0x87, 0xf9, 0xbe, 0x09, 0x7d, 0xe6, 0xe0, 0x40, 0xfa, 0x2e, 0x46, + 0xe4, 0x3e, 0x7d, 0x09, 0x47, 0x1b, 0xa5, 0xab, 0x2a, 0xa0, 0x8f, 0xa0, 0xf5, 0xd7, 0x15, 0x49, + 0x93, 0x76, 0xa0, 0x1d, 0x70, 0xa5, 0xb8, 0xe8, 0xe7, 0xfe, 0x4a, 0x33, 0xa1, 0x97, 0x0b, 0x0c, + 0x99, 0x1f, 0x23, 0x79, 0x90, 0x6b, 0x56, 0x5e, 0x67, 0x93, 0x66, 0x77, 0xf5, 0x70, 0x81, 0x4a, + 0x73, 0xd1, 0x27, 0x0f, 0xe9, 0x0b, 0x78, 0x1e, 0xc4, 0xbe, 0xe6, 0xa1, 0x8f, 0xc6, 0x43, 0x74, + 0x0d, 0x77, 0x95, 0x11, 0x52, 0x1b, 0x15, 0x87, 0xa1, 0x8c, 0x34, 0xba, 0xa4, 0x45, 0x6d, 0x78, + 0xb3, 0xf1, 0xf2, 0x05, 0x70, 0xc2, 0xf5, 0xc0, 0x78, 0xfc, 0x14, 0x5d, 0xa3, 0x9c, 0x01, 0x06, + 0x8c, 0x10, 0x7a, 0x08, 0x07, 0x15, 0xc0, 0xb4, 0x8e, 0x78, 0x2f, 0xd6, 0x68, 0x04, 0x0b, 0x90, + 0xec, 0xf5, 0x7e, 0xd6, 0xa0, 0x73, 0x96, 0x5e, 0x5a, 0xff, 0x8f, 0x5a, 0x8f, 0xae, 0x25, 0x2a, + 0xcc, 0xe3, 0x19, 0xd6, 0x3e, 0xb9, 0x0b, 0x2a, 0x49, 0x2f, 0xc6, 0xb3, 0xc4, 0x4a, 0xe7, 0x89, + 0x9d, 0x4c, 0x67, 0x45, 0x78, 0xab, 0x94, 0x5f, 0x9d, 0x67, 0xff, 0x0a, 0xfd, 0xdb, 0xf2, 0xf3, + 0xb5, 0xbe, 0xd5, 0x67, 0xec, 0x5b, 0xbd, 0xdd, 0x2f, 0x0f, 0x63, 0x93, 0xcc, 0x2a, 0xcb, 0xbc, + 0x1a, 0x76, 0xad, 0xc2, 0x32, 0xfb, 0x55, 0x09, 0x46, 0x6c, 0x92, 0x8d, 0x96, 0x82, 0xd1, 0xb0, + 0x3b, 0x2a, 0x05, 0x9f, 0xb7, 0x0b, 0xe3, 0xe3, 0xdf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x0d, 0x0e, + 0xda, 0xaa, 0x6c, 0x03, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/function_parsing_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/function_parsing_error.pb.go new file mode 100644 index 000000000..6339389c3 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/function_parsing_error.pb.go @@ -0,0 +1,162 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/function_parsing_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible function parsing errors. +type FunctionParsingErrorEnum_FunctionParsingError int32 + +const ( + // Enum unspecified. + FunctionParsingErrorEnum_UNSPECIFIED FunctionParsingErrorEnum_FunctionParsingError = 0 + // The received error code is not known in this version. + FunctionParsingErrorEnum_UNKNOWN FunctionParsingErrorEnum_FunctionParsingError = 1 + // Unexpected end of function string. + FunctionParsingErrorEnum_NO_MORE_INPUT FunctionParsingErrorEnum_FunctionParsingError = 2 + // Could not find an expected character. + FunctionParsingErrorEnum_EXPECTED_CHARACTER FunctionParsingErrorEnum_FunctionParsingError = 3 + // Unexpected separator character. + FunctionParsingErrorEnum_UNEXPECTED_SEPARATOR FunctionParsingErrorEnum_FunctionParsingError = 4 + // Unmatched left bracket or parenthesis. + FunctionParsingErrorEnum_UNMATCHED_LEFT_BRACKET FunctionParsingErrorEnum_FunctionParsingError = 5 + // Unmatched right bracket or parenthesis. + FunctionParsingErrorEnum_UNMATCHED_RIGHT_BRACKET FunctionParsingErrorEnum_FunctionParsingError = 6 + // Functions are nested too deeply. + FunctionParsingErrorEnum_TOO_MANY_NESTED_FUNCTIONS FunctionParsingErrorEnum_FunctionParsingError = 7 + // Missing right-hand-side operand. + FunctionParsingErrorEnum_MISSING_RIGHT_HAND_OPERAND FunctionParsingErrorEnum_FunctionParsingError = 8 + // Invalid operator/function name. + FunctionParsingErrorEnum_INVALID_OPERATOR_NAME FunctionParsingErrorEnum_FunctionParsingError = 9 + // Feed attribute operand's argument is not an integer. + FunctionParsingErrorEnum_FEED_ATTRIBUTE_OPERAND_ARGUMENT_NOT_INTEGER FunctionParsingErrorEnum_FunctionParsingError = 10 + // Missing function operands. + FunctionParsingErrorEnum_NO_OPERANDS FunctionParsingErrorEnum_FunctionParsingError = 11 + // Function had too many operands. + FunctionParsingErrorEnum_TOO_MANY_OPERANDS FunctionParsingErrorEnum_FunctionParsingError = 12 +) + +var FunctionParsingErrorEnum_FunctionParsingError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "NO_MORE_INPUT", + 3: "EXPECTED_CHARACTER", + 4: "UNEXPECTED_SEPARATOR", + 5: "UNMATCHED_LEFT_BRACKET", + 6: "UNMATCHED_RIGHT_BRACKET", + 7: "TOO_MANY_NESTED_FUNCTIONS", + 8: "MISSING_RIGHT_HAND_OPERAND", + 9: "INVALID_OPERATOR_NAME", + 10: "FEED_ATTRIBUTE_OPERAND_ARGUMENT_NOT_INTEGER", + 11: "NO_OPERANDS", + 12: "TOO_MANY_OPERANDS", +} +var FunctionParsingErrorEnum_FunctionParsingError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "NO_MORE_INPUT": 2, + "EXPECTED_CHARACTER": 3, + "UNEXPECTED_SEPARATOR": 4, + "UNMATCHED_LEFT_BRACKET": 5, + "UNMATCHED_RIGHT_BRACKET": 6, + "TOO_MANY_NESTED_FUNCTIONS": 7, + "MISSING_RIGHT_HAND_OPERAND": 8, + "INVALID_OPERATOR_NAME": 9, + "FEED_ATTRIBUTE_OPERAND_ARGUMENT_NOT_INTEGER": 10, + "NO_OPERANDS": 11, + "TOO_MANY_OPERANDS": 12, +} + +func (x FunctionParsingErrorEnum_FunctionParsingError) String() string { + return proto.EnumName(FunctionParsingErrorEnum_FunctionParsingError_name, int32(x)) +} +func (FunctionParsingErrorEnum_FunctionParsingError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_function_parsing_error_692dba496bc85c78, []int{0, 0} +} + +// Container for enum describing possible function parsing errors. +type FunctionParsingErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FunctionParsingErrorEnum) Reset() { *m = FunctionParsingErrorEnum{} } +func (m *FunctionParsingErrorEnum) String() string { return proto.CompactTextString(m) } +func (*FunctionParsingErrorEnum) ProtoMessage() {} +func (*FunctionParsingErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_function_parsing_error_692dba496bc85c78, []int{0} +} +func (m *FunctionParsingErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FunctionParsingErrorEnum.Unmarshal(m, b) +} +func (m *FunctionParsingErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FunctionParsingErrorEnum.Marshal(b, m, deterministic) +} +func (dst *FunctionParsingErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_FunctionParsingErrorEnum.Merge(dst, src) +} +func (m *FunctionParsingErrorEnum) XXX_Size() int { + return xxx_messageInfo_FunctionParsingErrorEnum.Size(m) +} +func (m *FunctionParsingErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_FunctionParsingErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_FunctionParsingErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*FunctionParsingErrorEnum)(nil), "google.ads.googleads.v0.errors.FunctionParsingErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.FunctionParsingErrorEnum_FunctionParsingError", FunctionParsingErrorEnum_FunctionParsingError_name, FunctionParsingErrorEnum_FunctionParsingError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/function_parsing_error.proto", fileDescriptor_function_parsing_error_692dba496bc85c78) +} + +var fileDescriptor_function_parsing_error_692dba496bc85c78 = []byte{ + // 452 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x92, 0xcf, 0x6e, 0xd3, 0x40, + 0x10, 0xc6, 0x69, 0x02, 0x2d, 0x6c, 0x40, 0x6c, 0x57, 0x6d, 0x69, 0x8a, 0xc8, 0x21, 0x57, 0xa4, + 0x75, 0x24, 0x8e, 0x3d, 0x6d, 0xec, 0xb1, 0xb3, 0x6a, 0x3d, 0x6b, 0xad, 0xd7, 0xe1, 0x8f, 0x22, + 0xad, 0x42, 0x13, 0xac, 0x48, 0xad, 0x37, 0xb2, 0xdb, 0x3e, 0x00, 0x8f, 0xc2, 0x91, 0x47, 0xe1, + 0xc2, 0x53, 0xf0, 0x1e, 0xc8, 0x71, 0xe2, 0x5e, 0x0a, 0x27, 0x7f, 0x9a, 0xef, 0xfb, 0xcd, 0x58, + 0x3b, 0x43, 0xce, 0x73, 0xe7, 0xf2, 0xeb, 0xa5, 0x37, 0x5f, 0x54, 0x5e, 0x23, 0x6b, 0x75, 0x3f, + 0xf2, 0x96, 0x65, 0xe9, 0xca, 0xca, 0xfb, 0x76, 0x57, 0x5c, 0xdd, 0xae, 0x5c, 0x61, 0xd7, 0xf3, + 0xb2, 0x5a, 0x15, 0xb9, 0xdd, 0xd4, 0xf9, 0xba, 0x74, 0xb7, 0x8e, 0x0d, 0x1a, 0x82, 0xcf, 0x17, + 0x15, 0x6f, 0x61, 0x7e, 0x3f, 0xe2, 0x0d, 0x3c, 0xfc, 0xde, 0x25, 0xa7, 0xe1, 0xb6, 0x41, 0xd2, + 0xf0, 0x50, 0x3b, 0x50, 0xdc, 0xdd, 0x0c, 0xff, 0x74, 0xc8, 0xd1, 0x63, 0x26, 0x7b, 0x4d, 0x7a, + 0x19, 0xa6, 0x09, 0xf8, 0x32, 0x94, 0x10, 0xd0, 0x27, 0xac, 0x47, 0x0e, 0x32, 0xbc, 0x40, 0xf5, + 0x11, 0xe9, 0x1e, 0x3b, 0x24, 0xaf, 0x50, 0xd9, 0x58, 0x69, 0xb0, 0x12, 0x93, 0xcc, 0xd0, 0x0e, + 0x3b, 0x21, 0x0c, 0x3e, 0x25, 0xe0, 0x1b, 0x08, 0xac, 0x3f, 0x11, 0x5a, 0xf8, 0x06, 0x34, 0xed, + 0xb2, 0x53, 0x72, 0x94, 0x61, 0xeb, 0xa4, 0x90, 0x08, 0x2d, 0x8c, 0xd2, 0xf4, 0x29, 0x3b, 0x23, + 0x27, 0x19, 0xc6, 0xc2, 0xf8, 0x13, 0x08, 0xec, 0x25, 0x84, 0xc6, 0x8e, 0xb5, 0xf0, 0x2f, 0xc0, + 0xd0, 0x67, 0xec, 0x2d, 0x79, 0xf3, 0xe0, 0x69, 0x19, 0x4d, 0x1e, 0xcc, 0x7d, 0xf6, 0x8e, 0xf4, + 0x8d, 0x52, 0x36, 0x16, 0xf8, 0xd9, 0x22, 0xa4, 0x75, 0xdf, 0x30, 0x43, 0xdf, 0x48, 0x85, 0x29, + 0x3d, 0x60, 0x03, 0x72, 0x16, 0xcb, 0x34, 0x95, 0x18, 0x6d, 0xc9, 0x89, 0xc0, 0xc0, 0xaa, 0x04, + 0xb4, 0xc0, 0x80, 0x3e, 0x67, 0x7d, 0x72, 0x2c, 0x71, 0x2a, 0x2e, 0xe5, 0xb6, 0x68, 0x94, 0xb6, + 0x28, 0x62, 0xa0, 0x2f, 0x98, 0x47, 0xde, 0x87, 0x00, 0x81, 0x15, 0xc6, 0x68, 0x39, 0xce, 0x0c, + 0xec, 0x30, 0x2b, 0x74, 0x94, 0xc5, 0x80, 0xc6, 0xa2, 0x32, 0x56, 0xa2, 0x81, 0x08, 0x34, 0x25, + 0xf5, 0x33, 0xa1, 0xda, 0x85, 0x52, 0xda, 0x63, 0xc7, 0xe4, 0xb0, 0xfd, 0xb7, 0xb6, 0xfc, 0x72, + 0xfc, 0x7b, 0x8f, 0x0c, 0xaf, 0xdc, 0x0d, 0xff, 0xff, 0xae, 0xc6, 0xfd, 0xc7, 0x76, 0x91, 0xd4, + 0x6b, 0x4e, 0xf6, 0xbe, 0x04, 0x5b, 0x38, 0x77, 0xd7, 0xf3, 0x22, 0xe7, 0xae, 0xcc, 0xbd, 0x7c, + 0x59, 0x6c, 0x8e, 0x60, 0x77, 0x35, 0xeb, 0x55, 0xf5, 0xaf, 0x23, 0x3a, 0x6f, 0x3e, 0x3f, 0x3a, + 0xdd, 0x48, 0x88, 0x9f, 0x9d, 0x41, 0xd4, 0x34, 0x13, 0x8b, 0x8a, 0x37, 0xb2, 0x56, 0xd3, 0x11, + 0xdf, 0x8c, 0xac, 0x7e, 0xed, 0x02, 0x33, 0xb1, 0xa8, 0x66, 0x6d, 0x60, 0x36, 0x1d, 0xcd, 0x9a, + 0xc0, 0xd7, 0xfd, 0xcd, 0xe0, 0x0f, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x79, 0x2f, 0x06, 0xfd, + 0xbc, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/geo_target_constant_suggestion_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/geo_target_constant_suggestion_error.pb.go new file mode 100644 index 000000000..1d6be46bf --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/geo_target_constant_suggestion_error.pb.go @@ -0,0 +1,129 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/geo_target_constant_suggestion_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible geo target constant suggestion errors. +type GeoTargetConstantSuggestionErrorEnum_GeoTargetConstantSuggestionError int32 + +const ( + // Enum unspecified. + GeoTargetConstantSuggestionErrorEnum_UNSPECIFIED GeoTargetConstantSuggestionErrorEnum_GeoTargetConstantSuggestionError = 0 + // The received error code is not known in this version. + GeoTargetConstantSuggestionErrorEnum_UNKNOWN GeoTargetConstantSuggestionErrorEnum_GeoTargetConstantSuggestionError = 1 + // A location name cannot be greater than 300 characters. + GeoTargetConstantSuggestionErrorEnum_LOCATION_NAME_SIZE_LIMIT GeoTargetConstantSuggestionErrorEnum_GeoTargetConstantSuggestionError = 2 + // At most 25 location names can be specified in a SuggestGeoTargetConstants + // method. + GeoTargetConstantSuggestionErrorEnum_LOCATION_NAME_LIMIT GeoTargetConstantSuggestionErrorEnum_GeoTargetConstantSuggestionError = 3 + // The country code is invalid. + GeoTargetConstantSuggestionErrorEnum_INVALID_COUNTRY_CODE GeoTargetConstantSuggestionErrorEnum_GeoTargetConstantSuggestionError = 4 + // Geo target constant resource names or location names must be provided in + // the request. + GeoTargetConstantSuggestionErrorEnum_REQUEST_PARAMETERS_UNSET GeoTargetConstantSuggestionErrorEnum_GeoTargetConstantSuggestionError = 5 +) + +var GeoTargetConstantSuggestionErrorEnum_GeoTargetConstantSuggestionError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "LOCATION_NAME_SIZE_LIMIT", + 3: "LOCATION_NAME_LIMIT", + 4: "INVALID_COUNTRY_CODE", + 5: "REQUEST_PARAMETERS_UNSET", +} +var GeoTargetConstantSuggestionErrorEnum_GeoTargetConstantSuggestionError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "LOCATION_NAME_SIZE_LIMIT": 2, + "LOCATION_NAME_LIMIT": 3, + "INVALID_COUNTRY_CODE": 4, + "REQUEST_PARAMETERS_UNSET": 5, +} + +func (x GeoTargetConstantSuggestionErrorEnum_GeoTargetConstantSuggestionError) String() string { + return proto.EnumName(GeoTargetConstantSuggestionErrorEnum_GeoTargetConstantSuggestionError_name, int32(x)) +} +func (GeoTargetConstantSuggestionErrorEnum_GeoTargetConstantSuggestionError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_geo_target_constant_suggestion_error_31080d85d3836c4e, []int{0, 0} +} + +// Container for enum describing possible geo target constant suggestion errors. +type GeoTargetConstantSuggestionErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GeoTargetConstantSuggestionErrorEnum) Reset() { *m = GeoTargetConstantSuggestionErrorEnum{} } +func (m *GeoTargetConstantSuggestionErrorEnum) String() string { return proto.CompactTextString(m) } +func (*GeoTargetConstantSuggestionErrorEnum) ProtoMessage() {} +func (*GeoTargetConstantSuggestionErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_geo_target_constant_suggestion_error_31080d85d3836c4e, []int{0} +} +func (m *GeoTargetConstantSuggestionErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GeoTargetConstantSuggestionErrorEnum.Unmarshal(m, b) +} +func (m *GeoTargetConstantSuggestionErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GeoTargetConstantSuggestionErrorEnum.Marshal(b, m, deterministic) +} +func (dst *GeoTargetConstantSuggestionErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_GeoTargetConstantSuggestionErrorEnum.Merge(dst, src) +} +func (m *GeoTargetConstantSuggestionErrorEnum) XXX_Size() int { + return xxx_messageInfo_GeoTargetConstantSuggestionErrorEnum.Size(m) +} +func (m *GeoTargetConstantSuggestionErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_GeoTargetConstantSuggestionErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_GeoTargetConstantSuggestionErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*GeoTargetConstantSuggestionErrorEnum)(nil), "google.ads.googleads.v0.errors.GeoTargetConstantSuggestionErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.GeoTargetConstantSuggestionErrorEnum_GeoTargetConstantSuggestionError", GeoTargetConstantSuggestionErrorEnum_GeoTargetConstantSuggestionError_name, GeoTargetConstantSuggestionErrorEnum_GeoTargetConstantSuggestionError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/geo_target_constant_suggestion_error.proto", fileDescriptor_geo_target_constant_suggestion_error_31080d85d3836c4e) +} + +var fileDescriptor_geo_target_constant_suggestion_error_31080d85d3836c4e = []byte{ + // 348 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x91, 0xcd, 0x4a, 0xf3, 0x40, + 0x14, 0x86, 0xbf, 0xb4, 0x9f, 0x0a, 0xd3, 0x85, 0x21, 0x0a, 0x76, 0x21, 0x45, 0x8a, 0x6e, 0x27, + 0x01, 0x97, 0xae, 0xa6, 0xc9, 0x58, 0x06, 0xdb, 0x49, 0xcc, 0x4f, 0xc5, 0x12, 0x18, 0x62, 0x33, + 0x0c, 0x85, 0x36, 0x53, 0x32, 0x69, 0x2f, 0xc8, 0xa5, 0x1b, 0xef, 0xc3, 0x2b, 0x10, 0xbc, 0x19, + 0x49, 0xa6, 0x2d, 0xb8, 0xd0, 0xae, 0xf2, 0xc2, 0x79, 0xf2, 0x1c, 0xe6, 0x3d, 0x80, 0x08, 0x29, + 0xc5, 0x82, 0xdb, 0x59, 0xae, 0x6c, 0x1d, 0xeb, 0xb4, 0x71, 0x6c, 0x5e, 0x96, 0xb2, 0x54, 0xb6, + 0xe0, 0x92, 0x55, 0x59, 0x29, 0x78, 0xc5, 0x66, 0xb2, 0x50, 0x55, 0x56, 0x54, 0x4c, 0xad, 0x85, + 0xe0, 0xaa, 0x9a, 0xcb, 0x82, 0x35, 0x14, 0x5c, 0x95, 0xb2, 0x92, 0x56, 0x4f, 0xff, 0x0f, 0xb3, + 0x5c, 0xc1, 0xbd, 0x0a, 0x6e, 0x1c, 0xa8, 0x55, 0xfd, 0x4f, 0x03, 0x5c, 0x0f, 0xb9, 0x8c, 0x1b, + 0x9b, 0xbb, 0x95, 0x45, 0x7b, 0x17, 0xae, 0x29, 0x5c, 0xac, 0x97, 0xfd, 0x77, 0x03, 0x5c, 0x1d, + 0x02, 0xad, 0x53, 0xd0, 0x49, 0x68, 0x14, 0x60, 0x97, 0xdc, 0x13, 0xec, 0x99, 0xff, 0xac, 0x0e, + 0x38, 0x49, 0xe8, 0x03, 0xf5, 0x9f, 0xa8, 0x69, 0x58, 0x97, 0xa0, 0x3b, 0xf2, 0x5d, 0x14, 0x13, + 0x9f, 0x32, 0x8a, 0xc6, 0x98, 0x45, 0x64, 0x8a, 0xd9, 0x88, 0x8c, 0x49, 0x6c, 0xb6, 0xac, 0x0b, + 0x70, 0xf6, 0x73, 0xaa, 0x07, 0x6d, 0xab, 0x0b, 0xce, 0x09, 0x9d, 0xa0, 0x11, 0xf1, 0x98, 0xeb, + 0x27, 0x34, 0x0e, 0x9f, 0x99, 0xeb, 0x7b, 0xd8, 0xfc, 0x5f, 0x0b, 0x43, 0xfc, 0x98, 0xe0, 0x28, + 0x66, 0x01, 0x0a, 0xd1, 0x18, 0xc7, 0x38, 0x8c, 0x58, 0x42, 0x23, 0x1c, 0x9b, 0x47, 0x83, 0x2f, + 0x03, 0xf4, 0x67, 0x72, 0x09, 0xff, 0x6e, 0x60, 0x70, 0x73, 0xe8, 0x55, 0x41, 0x5d, 0x64, 0x60, + 0x4c, 0xbd, 0xad, 0x48, 0xc8, 0x45, 0x56, 0x08, 0x28, 0x4b, 0x61, 0x0b, 0x5e, 0x34, 0x35, 0xef, + 0xae, 0xb4, 0x9a, 0xab, 0xdf, 0x8e, 0x76, 0xa7, 0x3f, 0xaf, 0xad, 0xf6, 0x10, 0xa1, 0xb7, 0x56, + 0x6f, 0xa8, 0x65, 0x28, 0x57, 0x50, 0xc7, 0x3a, 0x4d, 0x1c, 0xd8, 0xac, 0x54, 0x1f, 0x3b, 0x20, + 0x45, 0xb9, 0x4a, 0xf7, 0x40, 0x3a, 0x71, 0x52, 0x0d, 0xbc, 0x1c, 0x37, 0x8b, 0x6f, 0xbf, 0x03, + 0x00, 0x00, 0xff, 0xff, 0x71, 0xd6, 0x36, 0xfe, 0x2c, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/header_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/header_error.pb.go new file mode 100644 index 000000000..9f5989a31 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/header_error.pb.go @@ -0,0 +1,115 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/header_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible header errors. +type HeaderErrorEnum_HeaderError int32 + +const ( + // Enum unspecified. + HeaderErrorEnum_UNSPECIFIED HeaderErrorEnum_HeaderError = 0 + // The received error code is not known in this version. + HeaderErrorEnum_UNKNOWN HeaderErrorEnum_HeaderError = 1 + // The login customer id could not be validated. + HeaderErrorEnum_INVALID_LOGIN_CUSTOMER_ID HeaderErrorEnum_HeaderError = 3 + // One or more task headers could not be parsed. + HeaderErrorEnum_MALFORMED_TASK_INFO HeaderErrorEnum_HeaderError = 4 +) + +var HeaderErrorEnum_HeaderError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 3: "INVALID_LOGIN_CUSTOMER_ID", + 4: "MALFORMED_TASK_INFO", +} +var HeaderErrorEnum_HeaderError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "INVALID_LOGIN_CUSTOMER_ID": 3, + "MALFORMED_TASK_INFO": 4, +} + +func (x HeaderErrorEnum_HeaderError) String() string { + return proto.EnumName(HeaderErrorEnum_HeaderError_name, int32(x)) +} +func (HeaderErrorEnum_HeaderError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_header_error_eabd2af5e7269dcb, []int{0, 0} +} + +// Container for enum describing possible header errors. +type HeaderErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *HeaderErrorEnum) Reset() { *m = HeaderErrorEnum{} } +func (m *HeaderErrorEnum) String() string { return proto.CompactTextString(m) } +func (*HeaderErrorEnum) ProtoMessage() {} +func (*HeaderErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_header_error_eabd2af5e7269dcb, []int{0} +} +func (m *HeaderErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HeaderErrorEnum.Unmarshal(m, b) +} +func (m *HeaderErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HeaderErrorEnum.Marshal(b, m, deterministic) +} +func (dst *HeaderErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_HeaderErrorEnum.Merge(dst, src) +} +func (m *HeaderErrorEnum) XXX_Size() int { + return xxx_messageInfo_HeaderErrorEnum.Size(m) +} +func (m *HeaderErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_HeaderErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_HeaderErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*HeaderErrorEnum)(nil), "google.ads.googleads.v0.errors.HeaderErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.HeaderErrorEnum_HeaderError", HeaderErrorEnum_HeaderError_name, HeaderErrorEnum_HeaderError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/header_error.proto", fileDescriptor_header_error_eabd2af5e7269dcb) +} + +var fileDescriptor_header_error_eabd2af5e7269dcb = []byte{ + // 287 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0x4f, 0x4f, 0x83, 0x30, + 0x18, 0xc6, 0x65, 0x33, 0x9a, 0x94, 0xc3, 0x08, 0x1e, 0x8c, 0x07, 0x77, 0xe0, 0x03, 0x14, 0x8c, + 0x47, 0x4f, 0xdd, 0x28, 0xd8, 0x0c, 0x0a, 0x19, 0x03, 0x13, 0x43, 0xd2, 0xe0, 0x20, 0xd5, 0x64, + 0xa3, 0x4b, 0xab, 0x7c, 0x20, 0x8f, 0x7e, 0x10, 0x0f, 0x7e, 0x2a, 0x03, 0x75, 0xcb, 0x2e, 0xee, + 0xd4, 0xe7, 0x6d, 0x9e, 0xdf, 0xfb, 0xe7, 0x01, 0x77, 0x5c, 0x08, 0xbe, 0x69, 0xdc, 0xaa, 0x56, + 0xae, 0x96, 0xbd, 0xea, 0x3c, 0xb7, 0x91, 0x52, 0x48, 0xe5, 0xbe, 0x36, 0x55, 0xdd, 0x48, 0x36, + 0x54, 0x70, 0x27, 0xc5, 0xbb, 0xb0, 0xa7, 0xda, 0x07, 0xab, 0x5a, 0xc1, 0x03, 0x02, 0x3b, 0x0f, + 0x6a, 0xc4, 0xe9, 0xc0, 0xe4, 0x71, 0xa0, 0x70, 0x5f, 0xe3, 0xf6, 0x63, 0xeb, 0xac, 0x81, 0x79, + 0xf4, 0x65, 0x4f, 0x80, 0x99, 0xd3, 0x2c, 0xc5, 0x73, 0x12, 0x10, 0xec, 0x5b, 0x67, 0xb6, 0x09, + 0x2e, 0x73, 0xba, 0xa0, 0xc9, 0x13, 0xb5, 0x0c, 0xfb, 0x16, 0xdc, 0x10, 0x5a, 0xa0, 0x88, 0xf8, + 0x2c, 0x4a, 0x42, 0x42, 0xd9, 0x3c, 0xcf, 0x56, 0x49, 0x8c, 0x97, 0x8c, 0xf8, 0xd6, 0xd8, 0xbe, + 0x06, 0x57, 0x31, 0x8a, 0x82, 0x64, 0x19, 0x63, 0x9f, 0xad, 0x50, 0xb6, 0x60, 0x84, 0x06, 0x89, + 0x75, 0x3e, 0xfb, 0x36, 0x80, 0xb3, 0x16, 0x5b, 0x78, 0x7a, 0xbd, 0x99, 0x75, 0xb4, 0x49, 0xda, + 0x1f, 0x94, 0x1a, 0xcf, 0xfe, 0x1f, 0xc3, 0xc5, 0xa6, 0x6a, 0x39, 0x14, 0x92, 0xbb, 0xbc, 0x69, + 0x87, 0x73, 0xf7, 0xa9, 0xec, 0xde, 0xd4, 0x7f, 0x21, 0x3d, 0xe8, 0xe7, 0x73, 0x34, 0x0e, 0x11, + 0xfa, 0x1a, 0x4d, 0x43, 0xdd, 0x0c, 0xd5, 0x0a, 0x6a, 0xd9, 0xab, 0xc2, 0x83, 0xc3, 0x48, 0xf5, + 0xb3, 0x37, 0x94, 0xa8, 0x56, 0xe5, 0xc1, 0x50, 0x16, 0x5e, 0xa9, 0x0d, 0x2f, 0x17, 0xc3, 0xe0, + 0xfb, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x42, 0x27, 0xed, 0x8b, 0x9c, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/id_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/id_error.pb.go new file mode 100644 index 000000000..4396b878f --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/id_error.pb.go @@ -0,0 +1,109 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/id_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible id errors. +type IdErrorEnum_IdError int32 + +const ( + // Enum unspecified. + IdErrorEnum_UNSPECIFIED IdErrorEnum_IdError = 0 + // The received error code is not known in this version. + IdErrorEnum_UNKNOWN IdErrorEnum_IdError = 1 + // Id not found + IdErrorEnum_NOT_FOUND IdErrorEnum_IdError = 2 +) + +var IdErrorEnum_IdError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "NOT_FOUND", +} +var IdErrorEnum_IdError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "NOT_FOUND": 2, +} + +func (x IdErrorEnum_IdError) String() string { + return proto.EnumName(IdErrorEnum_IdError_name, int32(x)) +} +func (IdErrorEnum_IdError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_id_error_830ff368cfbe18b8, []int{0, 0} +} + +// Container for enum describing possible id errors. +type IdErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *IdErrorEnum) Reset() { *m = IdErrorEnum{} } +func (m *IdErrorEnum) String() string { return proto.CompactTextString(m) } +func (*IdErrorEnum) ProtoMessage() {} +func (*IdErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_id_error_830ff368cfbe18b8, []int{0} +} +func (m *IdErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_IdErrorEnum.Unmarshal(m, b) +} +func (m *IdErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_IdErrorEnum.Marshal(b, m, deterministic) +} +func (dst *IdErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_IdErrorEnum.Merge(dst, src) +} +func (m *IdErrorEnum) XXX_Size() int { + return xxx_messageInfo_IdErrorEnum.Size(m) +} +func (m *IdErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_IdErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_IdErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*IdErrorEnum)(nil), "google.ads.googleads.v0.errors.IdErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.IdErrorEnum_IdError", IdErrorEnum_IdError_name, IdErrorEnum_IdError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/id_error.proto", fileDescriptor_id_error_830ff368cfbe18b8) +} + +var fileDescriptor_id_error_830ff368cfbe18b8 = []byte{ + // 241 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xd2, 0x4d, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xa2, + 0xa2, 0xfc, 0xa2, 0x62, 0xfd, 0xcc, 0x94, 0x78, 0x30, 0x4b, 0xaf, 0xa0, 0x28, 0xbf, 0x24, 0x5f, + 0x48, 0x0e, 0xa2, 0x46, 0x2f, 0x31, 0xa5, 0x58, 0x0f, 0xae, 0x5c, 0xaf, 0xcc, 0x40, 0x0f, 0xa2, + 0x5c, 0xc9, 0x95, 0x8b, 0xdb, 0x33, 0xc5, 0x15, 0xc4, 0x76, 0xcd, 0x2b, 0xcd, 0x55, 0x32, 0xe3, + 0x62, 0x87, 0x72, 0x85, 0xf8, 0xb9, 0xb8, 0x43, 0xfd, 0x82, 0x03, 0x5c, 0x9d, 0x3d, 0xdd, 0x3c, + 0x5d, 0x5d, 0x04, 0x18, 0x84, 0xb8, 0xb9, 0xd8, 0x43, 0xfd, 0xbc, 0xfd, 0xfc, 0xc3, 0xfd, 0x04, + 0x18, 0x85, 0x78, 0xb9, 0x38, 0xfd, 0xfc, 0x43, 0xe2, 0xdd, 0xfc, 0x43, 0xfd, 0x5c, 0x04, 0x98, + 0x9c, 0x0e, 0x31, 0x72, 0x29, 0x25, 0xe7, 0xe7, 0xea, 0xe1, 0xb7, 0xcd, 0x89, 0x07, 0x6a, 0x78, + 0x00, 0xc8, 0x6d, 0x01, 0x8c, 0x51, 0x2e, 0x50, 0xf5, 0xe9, 0xf9, 0x39, 0x89, 0x79, 0xe9, 0x7a, + 0xf9, 0x45, 0xe9, 0xfa, 0xe9, 0xa9, 0x79, 0x60, 0x97, 0xc3, 0x3c, 0x57, 0x90, 0x59, 0x8c, 0xcb, + 0xaf, 0xd6, 0x10, 0x6a, 0x11, 0x13, 0xb3, 0xbb, 0xa3, 0xe3, 0x2a, 0x26, 0x39, 0x77, 0x88, 0x61, + 0x8e, 0x29, 0xc5, 0x7a, 0x10, 0x26, 0x88, 0x15, 0x66, 0xa0, 0x07, 0xb6, 0xb2, 0xf8, 0x14, 0x4c, + 0x41, 0x8c, 0x63, 0x4a, 0x71, 0x0c, 0x5c, 0x41, 0x4c, 0x98, 0x41, 0x0c, 0x44, 0x41, 0x12, 0x1b, + 0xd8, 0x62, 0x63, 0x40, 0x00, 0x00, 0x00, 0xff, 0xff, 0x0b, 0xc3, 0x73, 0x1b, 0x63, 0x01, 0x00, + 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/image_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/image_error.pb.go new file mode 100644 index 000000000..e97f7838d --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/image_error.pb.go @@ -0,0 +1,285 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/image_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible image errors. +type ImageErrorEnum_ImageError int32 + +const ( + // Enum unspecified. + ImageErrorEnum_UNSPECIFIED ImageErrorEnum_ImageError = 0 + // The received error code is not known in this version. + ImageErrorEnum_UNKNOWN ImageErrorEnum_ImageError = 1 + // The image is not valid. + ImageErrorEnum_INVALID_IMAGE ImageErrorEnum_ImageError = 2 + // The image could not be stored. + ImageErrorEnum_STORAGE_ERROR ImageErrorEnum_ImageError = 3 + // There was a problem with the request. + ImageErrorEnum_BAD_REQUEST ImageErrorEnum_ImageError = 4 + // The image is not of legal dimensions. + ImageErrorEnum_UNEXPECTED_SIZE ImageErrorEnum_ImageError = 5 + // Animated image are not permitted. + ImageErrorEnum_ANIMATED_NOT_ALLOWED ImageErrorEnum_ImageError = 6 + // Animation is too long. + ImageErrorEnum_ANIMATION_TOO_LONG ImageErrorEnum_ImageError = 7 + // There was an error on the server. + ImageErrorEnum_SERVER_ERROR ImageErrorEnum_ImageError = 8 + // Image cannot be in CMYK color format. + ImageErrorEnum_CMYK_JPEG_NOT_ALLOWED ImageErrorEnum_ImageError = 9 + // Flash images are not permitted. + ImageErrorEnum_FLASH_NOT_ALLOWED ImageErrorEnum_ImageError = 10 + // Flash images must support clickTag. + ImageErrorEnum_FLASH_WITHOUT_CLICKTAG ImageErrorEnum_ImageError = 11 + // A flash error has occurred after fixing the click tag. + ImageErrorEnum_FLASH_ERROR_AFTER_FIXING_CLICK_TAG ImageErrorEnum_ImageError = 12 + // Unacceptable visual effects. + ImageErrorEnum_ANIMATED_VISUAL_EFFECT ImageErrorEnum_ImageError = 13 + // There was a problem with the flash image. + ImageErrorEnum_FLASH_ERROR ImageErrorEnum_ImageError = 14 + // Incorrect image layout. + ImageErrorEnum_LAYOUT_PROBLEM ImageErrorEnum_ImageError = 15 + // There was a problem reading the image file. + ImageErrorEnum_PROBLEM_READING_IMAGE_FILE ImageErrorEnum_ImageError = 16 + // There was an error storing the image. + ImageErrorEnum_ERROR_STORING_IMAGE ImageErrorEnum_ImageError = 17 + // The aspect ratio of the image is not allowed. + ImageErrorEnum_ASPECT_RATIO_NOT_ALLOWED ImageErrorEnum_ImageError = 18 + // Flash cannot have network objects. + ImageErrorEnum_FLASH_HAS_NETWORK_OBJECTS ImageErrorEnum_ImageError = 19 + // Flash cannot have network methods. + ImageErrorEnum_FLASH_HAS_NETWORK_METHODS ImageErrorEnum_ImageError = 20 + // Flash cannot have a Url. + ImageErrorEnum_FLASH_HAS_URL ImageErrorEnum_ImageError = 21 + // Flash cannot use mouse tracking. + ImageErrorEnum_FLASH_HAS_MOUSE_TRACKING ImageErrorEnum_ImageError = 22 + // Flash cannot have a random number. + ImageErrorEnum_FLASH_HAS_RANDOM_NUM ImageErrorEnum_ImageError = 23 + // Ad click target cannot be '_self'. + ImageErrorEnum_FLASH_SELF_TARGETS ImageErrorEnum_ImageError = 24 + // GetUrl method should only use '_blank'. + ImageErrorEnum_FLASH_BAD_GETURL_TARGET ImageErrorEnum_ImageError = 25 + // Flash version is not supported. + ImageErrorEnum_FLASH_VERSION_NOT_SUPPORTED ImageErrorEnum_ImageError = 26 + // Flash movies need to have hard coded click URL or clickTAG + ImageErrorEnum_FLASH_WITHOUT_HARD_CODED_CLICK_URL ImageErrorEnum_ImageError = 27 + // Uploaded flash file is corrupted. + ImageErrorEnum_INVALID_FLASH_FILE ImageErrorEnum_ImageError = 28 + // Uploaded flash file can be parsed, but the click tag can not be fixed + // properly. + ImageErrorEnum_FAILED_TO_FIX_CLICK_TAG_IN_FLASH ImageErrorEnum_ImageError = 29 + // Flash movie accesses network resources + ImageErrorEnum_FLASH_ACCESSES_NETWORK_RESOURCES ImageErrorEnum_ImageError = 30 + // Flash movie attempts to call external javascript code + ImageErrorEnum_FLASH_EXTERNAL_JS_CALL ImageErrorEnum_ImageError = 31 + // Flash movie attempts to call flash system commands + ImageErrorEnum_FLASH_EXTERNAL_FS_CALL ImageErrorEnum_ImageError = 32 + // Image file is too large. + ImageErrorEnum_FILE_TOO_LARGE ImageErrorEnum_ImageError = 33 + // Image data is too large. + ImageErrorEnum_IMAGE_DATA_TOO_LARGE ImageErrorEnum_ImageError = 34 + // Error while processing the image. + ImageErrorEnum_IMAGE_PROCESSING_ERROR ImageErrorEnum_ImageError = 35 + // Image is too small. + ImageErrorEnum_IMAGE_TOO_SMALL ImageErrorEnum_ImageError = 36 + // Input was invalid. + ImageErrorEnum_INVALID_INPUT ImageErrorEnum_ImageError = 37 + // There was a problem reading the image file. + ImageErrorEnum_PROBLEM_READING_FILE ImageErrorEnum_ImageError = 38 +) + +var ImageErrorEnum_ImageError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "INVALID_IMAGE", + 3: "STORAGE_ERROR", + 4: "BAD_REQUEST", + 5: "UNEXPECTED_SIZE", + 6: "ANIMATED_NOT_ALLOWED", + 7: "ANIMATION_TOO_LONG", + 8: "SERVER_ERROR", + 9: "CMYK_JPEG_NOT_ALLOWED", + 10: "FLASH_NOT_ALLOWED", + 11: "FLASH_WITHOUT_CLICKTAG", + 12: "FLASH_ERROR_AFTER_FIXING_CLICK_TAG", + 13: "ANIMATED_VISUAL_EFFECT", + 14: "FLASH_ERROR", + 15: "LAYOUT_PROBLEM", + 16: "PROBLEM_READING_IMAGE_FILE", + 17: "ERROR_STORING_IMAGE", + 18: "ASPECT_RATIO_NOT_ALLOWED", + 19: "FLASH_HAS_NETWORK_OBJECTS", + 20: "FLASH_HAS_NETWORK_METHODS", + 21: "FLASH_HAS_URL", + 22: "FLASH_HAS_MOUSE_TRACKING", + 23: "FLASH_HAS_RANDOM_NUM", + 24: "FLASH_SELF_TARGETS", + 25: "FLASH_BAD_GETURL_TARGET", + 26: "FLASH_VERSION_NOT_SUPPORTED", + 27: "FLASH_WITHOUT_HARD_CODED_CLICK_URL", + 28: "INVALID_FLASH_FILE", + 29: "FAILED_TO_FIX_CLICK_TAG_IN_FLASH", + 30: "FLASH_ACCESSES_NETWORK_RESOURCES", + 31: "FLASH_EXTERNAL_JS_CALL", + 32: "FLASH_EXTERNAL_FS_CALL", + 33: "FILE_TOO_LARGE", + 34: "IMAGE_DATA_TOO_LARGE", + 35: "IMAGE_PROCESSING_ERROR", + 36: "IMAGE_TOO_SMALL", + 37: "INVALID_INPUT", + 38: "PROBLEM_READING_FILE", +} +var ImageErrorEnum_ImageError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "INVALID_IMAGE": 2, + "STORAGE_ERROR": 3, + "BAD_REQUEST": 4, + "UNEXPECTED_SIZE": 5, + "ANIMATED_NOT_ALLOWED": 6, + "ANIMATION_TOO_LONG": 7, + "SERVER_ERROR": 8, + "CMYK_JPEG_NOT_ALLOWED": 9, + "FLASH_NOT_ALLOWED": 10, + "FLASH_WITHOUT_CLICKTAG": 11, + "FLASH_ERROR_AFTER_FIXING_CLICK_TAG": 12, + "ANIMATED_VISUAL_EFFECT": 13, + "FLASH_ERROR": 14, + "LAYOUT_PROBLEM": 15, + "PROBLEM_READING_IMAGE_FILE": 16, + "ERROR_STORING_IMAGE": 17, + "ASPECT_RATIO_NOT_ALLOWED": 18, + "FLASH_HAS_NETWORK_OBJECTS": 19, + "FLASH_HAS_NETWORK_METHODS": 20, + "FLASH_HAS_URL": 21, + "FLASH_HAS_MOUSE_TRACKING": 22, + "FLASH_HAS_RANDOM_NUM": 23, + "FLASH_SELF_TARGETS": 24, + "FLASH_BAD_GETURL_TARGET": 25, + "FLASH_VERSION_NOT_SUPPORTED": 26, + "FLASH_WITHOUT_HARD_CODED_CLICK_URL": 27, + "INVALID_FLASH_FILE": 28, + "FAILED_TO_FIX_CLICK_TAG_IN_FLASH": 29, + "FLASH_ACCESSES_NETWORK_RESOURCES": 30, + "FLASH_EXTERNAL_JS_CALL": 31, + "FLASH_EXTERNAL_FS_CALL": 32, + "FILE_TOO_LARGE": 33, + "IMAGE_DATA_TOO_LARGE": 34, + "IMAGE_PROCESSING_ERROR": 35, + "IMAGE_TOO_SMALL": 36, + "INVALID_INPUT": 37, + "PROBLEM_READING_FILE": 38, +} + +func (x ImageErrorEnum_ImageError) String() string { + return proto.EnumName(ImageErrorEnum_ImageError_name, int32(x)) +} +func (ImageErrorEnum_ImageError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_image_error_ebc5093c3fe82b29, []int{0, 0} +} + +// Container for enum describing possible image errors. +type ImageErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ImageErrorEnum) Reset() { *m = ImageErrorEnum{} } +func (m *ImageErrorEnum) String() string { return proto.CompactTextString(m) } +func (*ImageErrorEnum) ProtoMessage() {} +func (*ImageErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_image_error_ebc5093c3fe82b29, []int{0} +} +func (m *ImageErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ImageErrorEnum.Unmarshal(m, b) +} +func (m *ImageErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ImageErrorEnum.Marshal(b, m, deterministic) +} +func (dst *ImageErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_ImageErrorEnum.Merge(dst, src) +} +func (m *ImageErrorEnum) XXX_Size() int { + return xxx_messageInfo_ImageErrorEnum.Size(m) +} +func (m *ImageErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_ImageErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_ImageErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*ImageErrorEnum)(nil), "google.ads.googleads.v0.errors.ImageErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.ImageErrorEnum_ImageError", ImageErrorEnum_ImageError_name, ImageErrorEnum_ImageError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/image_error.proto", fileDescriptor_image_error_ebc5093c3fe82b29) +} + +var fileDescriptor_image_error_ebc5093c3fe82b29 = []byte{ + // 745 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x54, 0xcd, 0x8e, 0xdb, 0x36, + 0x10, 0xee, 0x6e, 0xda, 0x6c, 0xca, 0x4d, 0xd6, 0x5c, 0x6e, 0xf6, 0x3f, 0x71, 0x52, 0x37, 0xcd, + 0x51, 0x36, 0xd0, 0x63, 0x4f, 0xb4, 0x34, 0x92, 0xb9, 0xa6, 0x48, 0x95, 0xa4, 0xec, 0x4d, 0x60, + 0x80, 0x70, 0x6b, 0xc3, 0x08, 0x90, 0x5d, 0x05, 0x76, 0x9b, 0x87, 0xe8, 0x63, 0xf4, 0xd8, 0xf7, + 0xe8, 0xa5, 0x2f, 0xd4, 0x6b, 0x31, 0xa2, 0x6d, 0xc5, 0x45, 0xda, 0x93, 0xc8, 0xf9, 0x66, 0xbe, + 0x19, 0xce, 0x37, 0x1a, 0xd2, 0x5b, 0x54, 0xd5, 0xe2, 0xfd, 0xbc, 0x3b, 0x9d, 0xad, 0xba, 0xe1, + 0x88, 0xa7, 0x8f, 0xbd, 0xee, 0x7c, 0xb9, 0xac, 0x96, 0xab, 0xee, 0xbb, 0xbb, 0xe9, 0x62, 0xee, + 0xeb, 0x4b, 0xf4, 0x61, 0x59, 0xfd, 0x52, 0xb1, 0x76, 0x70, 0x8b, 0xa6, 0xb3, 0x55, 0xb4, 0x8d, + 0x88, 0x3e, 0xf6, 0xa2, 0x10, 0xd1, 0xf9, 0xed, 0x11, 0x39, 0x12, 0x18, 0x05, 0x78, 0x87, 0xfb, + 0x5f, 0xef, 0x3a, 0x7f, 0x1f, 0x10, 0xd2, 0x98, 0x58, 0x8b, 0x1c, 0x96, 0xca, 0x16, 0x10, 0x8b, + 0x54, 0x40, 0x42, 0xbf, 0x60, 0x87, 0xe4, 0xa0, 0x54, 0x43, 0xa5, 0xc7, 0x8a, 0xee, 0xb1, 0x63, + 0xf2, 0x44, 0xa8, 0x11, 0x97, 0x22, 0xf1, 0x22, 0xe7, 0x19, 0xd0, 0x7d, 0x34, 0x59, 0xa7, 0x0d, + 0xcf, 0xc0, 0x83, 0x31, 0xda, 0xd0, 0x07, 0xc8, 0xd1, 0xe7, 0x89, 0x37, 0xf0, 0x63, 0x09, 0xd6, + 0xd1, 0x2f, 0xd9, 0x09, 0x69, 0x95, 0x0a, 0x6e, 0x0b, 0x88, 0x1d, 0x24, 0xde, 0x8a, 0xb7, 0x40, + 0xbf, 0x62, 0x17, 0xe4, 0x29, 0x57, 0x22, 0xe7, 0x68, 0x52, 0xda, 0x79, 0x2e, 0xa5, 0x1e, 0x43, + 0x42, 0x1f, 0xb2, 0x33, 0xc2, 0x02, 0x22, 0xb4, 0xf2, 0x4e, 0x6b, 0x2f, 0xb5, 0xca, 0xe8, 0x01, + 0xa3, 0xe4, 0xb1, 0x05, 0x33, 0x02, 0xb3, 0xce, 0xf4, 0x88, 0x5d, 0x92, 0xd3, 0x38, 0x7f, 0x33, + 0xf4, 0x37, 0x05, 0x64, 0x3b, 0x24, 0x5f, 0xb3, 0x53, 0x72, 0x9c, 0x4a, 0x6e, 0x07, 0x3b, 0x66, + 0xc2, 0xae, 0xc8, 0x59, 0x30, 0x8f, 0x85, 0x1b, 0xe8, 0xd2, 0xf9, 0x58, 0x8a, 0x78, 0xe8, 0x78, + 0x46, 0x0f, 0xd9, 0x6b, 0xd2, 0x09, 0x58, 0x4d, 0xef, 0x79, 0xea, 0xc0, 0xf8, 0x54, 0xdc, 0x0a, + 0x95, 0x05, 0x37, 0x8f, 0x7e, 0x8f, 0x91, 0x63, 0x5b, 0xf9, 0x48, 0xd8, 0x92, 0x4b, 0x0f, 0x69, + 0x0a, 0xb1, 0xa3, 0x4f, 0xf0, 0xed, 0x9f, 0x70, 0xd0, 0x23, 0xc6, 0xc8, 0x91, 0xe4, 0x6f, 0x30, + 0x53, 0x61, 0x74, 0x5f, 0x42, 0x4e, 0x5b, 0xac, 0x4d, 0xae, 0xd6, 0x17, 0x6f, 0x80, 0x27, 0xc8, + 0x5f, 0xb7, 0xd3, 0xa7, 0x42, 0x02, 0xa5, 0xec, 0x9c, 0x9c, 0x84, 0x12, 0xb0, 0xb3, 0x5b, 0x94, + 0x1e, 0xb3, 0x67, 0xe4, 0x82, 0xa3, 0x38, 0xce, 0x1b, 0xec, 0xce, 0xce, 0xdb, 0x18, 0x7b, 0x4e, + 0x2e, 0x43, 0xee, 0x01, 0xb7, 0x5e, 0x81, 0x1b, 0x6b, 0x33, 0xf4, 0xba, 0x7f, 0x03, 0xb1, 0xb3, + 0xf4, 0xe4, 0xf3, 0x70, 0x0e, 0x6e, 0xa0, 0x13, 0x4b, 0x9f, 0xa2, 0x90, 0x0d, 0x5c, 0x1a, 0x49, + 0x4f, 0x31, 0x5d, 0x63, 0xca, 0x75, 0x69, 0xc1, 0x3b, 0xc3, 0xe3, 0xa1, 0x50, 0x19, 0x3d, 0x43, + 0x01, 0x1b, 0xd4, 0x70, 0x95, 0xe8, 0xdc, 0xab, 0x32, 0xa7, 0xe7, 0x28, 0x60, 0x40, 0x2c, 0xc8, + 0xd4, 0x3b, 0x6e, 0x32, 0x70, 0x96, 0x5e, 0xb0, 0x6b, 0x72, 0x1e, 0xec, 0x38, 0x1e, 0x19, 0xb8, + 0xd2, 0xc8, 0x35, 0x4a, 0x2f, 0xd9, 0x0b, 0x72, 0x1d, 0xc0, 0x11, 0x18, 0x8b, 0xca, 0xe3, 0xe3, + 0x6c, 0x59, 0x14, 0xda, 0x38, 0x48, 0xe8, 0x55, 0x23, 0xcf, 0x46, 0xba, 0x01, 0x37, 0x89, 0x8f, + 0x75, 0x02, 0xc9, 0x5a, 0x1e, 0xac, 0xfa, 0x1a, 0xb3, 0x6f, 0x86, 0x34, 0xf8, 0xd7, 0x5d, 0x7d, + 0xc6, 0x5e, 0x91, 0x97, 0x29, 0x17, 0x12, 0x12, 0xef, 0x34, 0xca, 0xda, 0x68, 0xea, 0x85, 0x0a, + 0xae, 0xf4, 0x79, 0xed, 0x55, 0x47, 0xf1, 0x38, 0x06, 0x6b, 0xa1, 0x69, 0x95, 0x01, 0xab, 0x4b, + 0x13, 0x83, 0xa5, 0xed, 0x66, 0x8c, 0xe0, 0xd6, 0x81, 0x51, 0x5c, 0xfa, 0x1b, 0xeb, 0x63, 0x2e, + 0x25, 0x7d, 0xf1, 0x19, 0x2c, 0x5d, 0x63, 0x2f, 0x71, 0x1a, 0xb0, 0x9a, 0x30, 0xd5, 0xf8, 0x72, + 0xfa, 0x0d, 0xf6, 0x31, 0xa8, 0x9f, 0x70, 0xc7, 0x3f, 0x41, 0x3a, 0xc8, 0x14, 0x90, 0xc2, 0x68, + 0x2c, 0x06, 0x47, 0x21, 0xcc, 0xd5, 0xb7, 0xf8, 0x4f, 0x05, 0x0c, 0x03, 0x6c, 0x8e, 0xf4, 0xaf, + 0x76, 0xfe, 0x4f, 0x55, 0x94, 0x8e, 0x7e, 0x87, 0xec, 0xff, 0x9e, 0xb5, 0xba, 0x1f, 0xaf, 0xfb, + 0x7f, 0xee, 0x91, 0xce, 0xcf, 0xd5, 0x5d, 0xf4, 0xff, 0x3b, 0xa3, 0xdf, 0x6a, 0xb6, 0x43, 0x81, + 0x4b, 0xa6, 0xd8, 0x7b, 0x9b, 0xac, 0x43, 0x16, 0xd5, 0xfb, 0xe9, 0xfd, 0x22, 0xaa, 0x96, 0x8b, + 0xee, 0x62, 0x7e, 0x5f, 0xaf, 0xa0, 0xcd, 0xa2, 0xfa, 0xf0, 0x6e, 0xf5, 0x5f, 0x7b, 0xeb, 0x87, + 0xf0, 0xf9, 0x7d, 0xff, 0x41, 0xc6, 0xf9, 0x1f, 0xfb, 0xed, 0x2c, 0x90, 0xf1, 0xd9, 0x2a, 0x0a, + 0x47, 0x3c, 0x8d, 0x7a, 0x51, 0x9d, 0x72, 0xf5, 0xd7, 0xc6, 0x61, 0xc2, 0x67, 0xab, 0xc9, 0xd6, + 0x61, 0x32, 0xea, 0x4d, 0x82, 0xc3, 0x4f, 0x0f, 0xeb, 0xc4, 0xdf, 0xff, 0x13, 0x00, 0x00, 0xff, + 0xff, 0x7f, 0xbf, 0x42, 0x86, 0x2f, 0x05, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/internal_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/internal_error.pb.go new file mode 100644 index 000000000..d5b815f5a --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/internal_error.pb.go @@ -0,0 +1,122 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/internal_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible internal errors. +type InternalErrorEnum_InternalError int32 + +const ( + // Enum unspecified. + InternalErrorEnum_UNSPECIFIED InternalErrorEnum_InternalError = 0 + // The received error code is not known in this version. + InternalErrorEnum_UNKNOWN InternalErrorEnum_InternalError = 1 + // Google Ads API encountered unexpected internal error. + InternalErrorEnum_INTERNAL_ERROR InternalErrorEnum_InternalError = 2 + // The intended error code doesn't exist in any API version. This will be + // fixed by adding a new error code as soon as possible. + InternalErrorEnum_ERROR_CODE_NOT_PUBLISHED InternalErrorEnum_InternalError = 3 + // Google Ads API encountered an unexpected transient error. The user + // should retry their request in these cases. + InternalErrorEnum_TRANSIENT_ERROR InternalErrorEnum_InternalError = 4 +) + +var InternalErrorEnum_InternalError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "INTERNAL_ERROR", + 3: "ERROR_CODE_NOT_PUBLISHED", + 4: "TRANSIENT_ERROR", +} +var InternalErrorEnum_InternalError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "INTERNAL_ERROR": 2, + "ERROR_CODE_NOT_PUBLISHED": 3, + "TRANSIENT_ERROR": 4, +} + +func (x InternalErrorEnum_InternalError) String() string { + return proto.EnumName(InternalErrorEnum_InternalError_name, int32(x)) +} +func (InternalErrorEnum_InternalError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_internal_error_e2abdd822d282a61, []int{0, 0} +} + +// Container for enum describing possible internal errors. +type InternalErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *InternalErrorEnum) Reset() { *m = InternalErrorEnum{} } +func (m *InternalErrorEnum) String() string { return proto.CompactTextString(m) } +func (*InternalErrorEnum) ProtoMessage() {} +func (*InternalErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_internal_error_e2abdd822d282a61, []int{0} +} +func (m *InternalErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_InternalErrorEnum.Unmarshal(m, b) +} +func (m *InternalErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_InternalErrorEnum.Marshal(b, m, deterministic) +} +func (dst *InternalErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_InternalErrorEnum.Merge(dst, src) +} +func (m *InternalErrorEnum) XXX_Size() int { + return xxx_messageInfo_InternalErrorEnum.Size(m) +} +func (m *InternalErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_InternalErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_InternalErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*InternalErrorEnum)(nil), "google.ads.googleads.v0.errors.InternalErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.InternalErrorEnum_InternalError", InternalErrorEnum_InternalError_name, InternalErrorEnum_InternalError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/internal_error.proto", fileDescriptor_internal_error_e2abdd822d282a61) +} + +var fileDescriptor_internal_error_e2abdd822d282a61 = []byte{ + // 295 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0xdf, 0x4a, 0xc3, 0x30, + 0x14, 0x87, 0x6d, 0x27, 0x0a, 0x19, 0xba, 0x1a, 0x6f, 0xbc, 0x90, 0x5d, 0xf4, 0x01, 0xd2, 0xc2, + 0x2e, 0xbd, 0x4a, 0xd7, 0x38, 0x83, 0x23, 0x2d, 0xfd, 0x33, 0x41, 0x0a, 0xa5, 0xda, 0x12, 0x06, + 0x5d, 0x33, 0x92, 0xba, 0x77, 0xf0, 0x35, 0xbc, 0xf4, 0x49, 0xc4, 0xa7, 0x92, 0x36, 0xdd, 0x60, + 0x17, 0xee, 0x2a, 0x5f, 0x0e, 0xbf, 0x2f, 0xe7, 0xe4, 0x80, 0x19, 0x17, 0x82, 0xd7, 0x95, 0x53, + 0x94, 0xca, 0xd1, 0xd8, 0xd1, 0xce, 0x75, 0x2a, 0x29, 0x85, 0x54, 0xce, 0xba, 0x69, 0x2b, 0xd9, + 0x14, 0x75, 0xde, 0xdf, 0xd1, 0x56, 0x8a, 0x56, 0xc0, 0xa9, 0x4e, 0xa2, 0xa2, 0x54, 0xe8, 0x20, + 0xa1, 0x9d, 0x8b, 0xb4, 0x64, 0x7f, 0x1a, 0xe0, 0x86, 0x0e, 0x22, 0xe9, 0x4a, 0xa4, 0xf9, 0xd8, + 0xd8, 0x2d, 0xb8, 0x3a, 0x2a, 0xc2, 0x09, 0x18, 0xa7, 0x2c, 0x0e, 0xc9, 0x9c, 0x3e, 0x52, 0xe2, + 0x5b, 0x67, 0x70, 0x0c, 0x2e, 0x53, 0xf6, 0xcc, 0x82, 0x17, 0x66, 0x19, 0x10, 0x82, 0x6b, 0xca, + 0x12, 0x12, 0x31, 0xbc, 0xcc, 0x49, 0x14, 0x05, 0x91, 0x65, 0xc2, 0x7b, 0x70, 0xd7, 0x63, 0x3e, + 0x0f, 0x7c, 0x92, 0xb3, 0x20, 0xc9, 0xc3, 0xd4, 0x5b, 0xd2, 0xf8, 0x89, 0xf8, 0xd6, 0x08, 0xde, + 0x82, 0x49, 0x12, 0x61, 0x16, 0x53, 0xc2, 0x92, 0x41, 0x39, 0xf7, 0x7e, 0x0c, 0x60, 0xbf, 0x8b, + 0x0d, 0x3a, 0x3d, 0xb2, 0x07, 0x8f, 0x46, 0x0b, 0xbb, 0x6f, 0x86, 0xc6, 0xab, 0x3f, 0x58, 0x5c, + 0xd4, 0x45, 0xc3, 0x91, 0x90, 0xdc, 0xe1, 0x55, 0xd3, 0x2f, 0x61, 0xbf, 0xad, 0xed, 0x5a, 0xfd, + 0xb7, 0xbc, 0x07, 0x7d, 0x7c, 0x99, 0xa3, 0x05, 0xc6, 0xdf, 0xe6, 0x74, 0xa1, 0x1f, 0xc3, 0xa5, + 0x42, 0x1a, 0x3b, 0x5a, 0xb9, 0xa8, 0x6f, 0xa9, 0x7e, 0xf7, 0x81, 0x0c, 0x97, 0x2a, 0x3b, 0x04, + 0xb2, 0x95, 0x9b, 0xe9, 0xc0, 0xdb, 0x45, 0xdf, 0x78, 0xf6, 0x17, 0x00, 0x00, 0xff, 0xff, 0xde, + 0xc7, 0xf6, 0x6e, 0xb4, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/keyword_plan_ad_group_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/keyword_plan_ad_group_error.pb.go new file mode 100644 index 000000000..9a573641f --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/keyword_plan_ad_group_error.pb.go @@ -0,0 +1,119 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/keyword_plan_ad_group_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible errors from applying a keyword plan ad group. +type KeywordPlanAdGroupErrorEnum_KeywordPlanAdGroupError int32 + +const ( + // Enum unspecified. + KeywordPlanAdGroupErrorEnum_UNSPECIFIED KeywordPlanAdGroupErrorEnum_KeywordPlanAdGroupError = 0 + // The received error code is not known in this version. + KeywordPlanAdGroupErrorEnum_UNKNOWN KeywordPlanAdGroupErrorEnum_KeywordPlanAdGroupError = 1 + // The keyword plan ad group name is missing, empty, longer than allowed + // limit or contains invalid chars. + KeywordPlanAdGroupErrorEnum_INVALID_NAME KeywordPlanAdGroupErrorEnum_KeywordPlanAdGroupError = 2 + // The keyword plan ad group name is duplicate to an existing keyword plan + // AdGroup name or other keyword plan AdGroup name in the request. + KeywordPlanAdGroupErrorEnum_DUPLICATE_NAME KeywordPlanAdGroupErrorEnum_KeywordPlanAdGroupError = 3 +) + +var KeywordPlanAdGroupErrorEnum_KeywordPlanAdGroupError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "INVALID_NAME", + 3: "DUPLICATE_NAME", +} +var KeywordPlanAdGroupErrorEnum_KeywordPlanAdGroupError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "INVALID_NAME": 2, + "DUPLICATE_NAME": 3, +} + +func (x KeywordPlanAdGroupErrorEnum_KeywordPlanAdGroupError) String() string { + return proto.EnumName(KeywordPlanAdGroupErrorEnum_KeywordPlanAdGroupError_name, int32(x)) +} +func (KeywordPlanAdGroupErrorEnum_KeywordPlanAdGroupError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_ad_group_error_316b3c2b5e41568d, []int{0, 0} +} + +// Container for enum describing possible errors from applying a keyword plan +// ad group. +type KeywordPlanAdGroupErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *KeywordPlanAdGroupErrorEnum) Reset() { *m = KeywordPlanAdGroupErrorEnum{} } +func (m *KeywordPlanAdGroupErrorEnum) String() string { return proto.CompactTextString(m) } +func (*KeywordPlanAdGroupErrorEnum) ProtoMessage() {} +func (*KeywordPlanAdGroupErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_ad_group_error_316b3c2b5e41568d, []int{0} +} +func (m *KeywordPlanAdGroupErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_KeywordPlanAdGroupErrorEnum.Unmarshal(m, b) +} +func (m *KeywordPlanAdGroupErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_KeywordPlanAdGroupErrorEnum.Marshal(b, m, deterministic) +} +func (dst *KeywordPlanAdGroupErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_KeywordPlanAdGroupErrorEnum.Merge(dst, src) +} +func (m *KeywordPlanAdGroupErrorEnum) XXX_Size() int { + return xxx_messageInfo_KeywordPlanAdGroupErrorEnum.Size(m) +} +func (m *KeywordPlanAdGroupErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_KeywordPlanAdGroupErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_KeywordPlanAdGroupErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*KeywordPlanAdGroupErrorEnum)(nil), "google.ads.googleads.v0.errors.KeywordPlanAdGroupErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.KeywordPlanAdGroupErrorEnum_KeywordPlanAdGroupError", KeywordPlanAdGroupErrorEnum_KeywordPlanAdGroupError_name, KeywordPlanAdGroupErrorEnum_KeywordPlanAdGroupError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/keyword_plan_ad_group_error.proto", fileDescriptor_keyword_plan_ad_group_error_316b3c2b5e41568d) +} + +var fileDescriptor_keyword_plan_ad_group_error_316b3c2b5e41568d = []byte{ + // 289 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0x41, 0x4b, 0xc3, 0x30, + 0x18, 0x86, 0x6d, 0x07, 0x0a, 0x99, 0x68, 0xc9, 0xc5, 0x83, 0xb2, 0x43, 0x7f, 0x40, 0x5a, 0xf0, + 0xe8, 0xc5, 0x6c, 0x8d, 0xa5, 0x6c, 0xc6, 0x82, 0xb6, 0x82, 0x54, 0x4a, 0x34, 0x25, 0x88, 0x5d, + 0xbf, 0x92, 0xb8, 0x89, 0xe0, 0xaf, 0xf1, 0xe8, 0x4f, 0xf1, 0xe8, 0x2f, 0x92, 0x36, 0x6e, 0xb7, + 0xee, 0xd4, 0x97, 0xbe, 0xef, 0xf7, 0x7c, 0x5f, 0x5e, 0x74, 0xa9, 0x00, 0x54, 0x5d, 0x05, 0x42, + 0x9a, 0xc0, 0xca, 0x4e, 0xad, 0xc3, 0xa0, 0xd2, 0x1a, 0xb4, 0x09, 0x5e, 0xab, 0x8f, 0x77, 0xd0, + 0xb2, 0x6c, 0x6b, 0xd1, 0x94, 0x42, 0x96, 0x4a, 0xc3, 0xaa, 0x2d, 0x7b, 0x93, 0xb4, 0x1a, 0xde, + 0x00, 0x4f, 0xec, 0x18, 0x11, 0xd2, 0x90, 0x2d, 0x81, 0xac, 0x43, 0x62, 0x09, 0xfe, 0x27, 0x3a, + 0x9d, 0x5b, 0x48, 0x5a, 0x8b, 0x86, 0xca, 0xb8, 0x23, 0xb0, 0xce, 0x63, 0xcd, 0x6a, 0xe9, 0x3f, + 0xa2, 0x93, 0x01, 0x1b, 0x1f, 0xa3, 0x71, 0xc6, 0x6f, 0x53, 0x36, 0x4b, 0xae, 0x12, 0x16, 0x79, + 0x7b, 0x78, 0x8c, 0x0e, 0x32, 0x3e, 0xe7, 0x37, 0xf7, 0xdc, 0x73, 0xb0, 0x87, 0x0e, 0x13, 0x9e, + 0xd3, 0x45, 0x12, 0x95, 0x9c, 0x5e, 0x33, 0xcf, 0xc5, 0x18, 0x1d, 0x45, 0x59, 0xba, 0x48, 0x66, + 0xf4, 0x8e, 0xd9, 0x7f, 0xa3, 0xe9, 0xaf, 0x83, 0xfc, 0x67, 0x58, 0x92, 0xdd, 0x47, 0x4e, 0xcf, + 0x06, 0x6e, 0x48, 0xbb, 0x27, 0xa6, 0xce, 0x43, 0xf4, 0x3f, 0xaf, 0xa0, 0x16, 0x8d, 0x22, 0xa0, + 0x55, 0xa0, 0xaa, 0xa6, 0x2f, 0x60, 0x53, 0x5b, 0xfb, 0x62, 0x86, 0x5a, 0xbc, 0xb0, 0x9f, 0x2f, + 0x77, 0x14, 0x53, 0xfa, 0xed, 0x4e, 0x62, 0x0b, 0xa3, 0xd2, 0x10, 0x2b, 0x3b, 0x95, 0x87, 0xa4, + 0x5f, 0x69, 0x7e, 0x36, 0x81, 0x82, 0x4a, 0x53, 0x6c, 0x03, 0x45, 0x1e, 0x16, 0x36, 0xf0, 0xb4, + 0xdf, 0x2f, 0x3e, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0x83, 0x02, 0x58, 0xe4, 0xbd, 0x01, 0x00, + 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/keyword_plan_campaign_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/keyword_plan_campaign_error.pb.go new file mode 100644 index 000000000..5f959ba02 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/keyword_plan_campaign_error.pb.go @@ -0,0 +1,133 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/keyword_plan_campaign_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible errors from applying a keyword plan campaign. +type KeywordPlanCampaignErrorEnum_KeywordPlanCampaignError int32 + +const ( + // Enum unspecified. + KeywordPlanCampaignErrorEnum_UNSPECIFIED KeywordPlanCampaignErrorEnum_KeywordPlanCampaignError = 0 + // The received error code is not known in this version. + KeywordPlanCampaignErrorEnum_UNKNOWN KeywordPlanCampaignErrorEnum_KeywordPlanCampaignError = 1 + // A keyword plan campaign name is missing, empty, longer than allowed limit + // or contains invalid chars. + KeywordPlanCampaignErrorEnum_INVALID_NAME KeywordPlanCampaignErrorEnum_KeywordPlanCampaignError = 2 + // A keyword plan campaign contains one or more untargetable languages. + KeywordPlanCampaignErrorEnum_INVALID_LANGUAGES KeywordPlanCampaignErrorEnum_KeywordPlanCampaignError = 3 + // A keyword plan campaign contains one or more invalid geo targets. + KeywordPlanCampaignErrorEnum_INVALID_GEOS KeywordPlanCampaignErrorEnum_KeywordPlanCampaignError = 4 + // The keyword plan campaign name is duplicate to an existing keyword plan + // campaign name or other keyword plan campaign name in the request. + KeywordPlanCampaignErrorEnum_DUPLICATE_NAME KeywordPlanCampaignErrorEnum_KeywordPlanCampaignError = 5 + // The number of geo targets in the keyword plan campaign exceeds limits. + KeywordPlanCampaignErrorEnum_MAX_GEOS_EXCEEDED KeywordPlanCampaignErrorEnum_KeywordPlanCampaignError = 6 +) + +var KeywordPlanCampaignErrorEnum_KeywordPlanCampaignError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "INVALID_NAME", + 3: "INVALID_LANGUAGES", + 4: "INVALID_GEOS", + 5: "DUPLICATE_NAME", + 6: "MAX_GEOS_EXCEEDED", +} +var KeywordPlanCampaignErrorEnum_KeywordPlanCampaignError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "INVALID_NAME": 2, + "INVALID_LANGUAGES": 3, + "INVALID_GEOS": 4, + "DUPLICATE_NAME": 5, + "MAX_GEOS_EXCEEDED": 6, +} + +func (x KeywordPlanCampaignErrorEnum_KeywordPlanCampaignError) String() string { + return proto.EnumName(KeywordPlanCampaignErrorEnum_KeywordPlanCampaignError_name, int32(x)) +} +func (KeywordPlanCampaignErrorEnum_KeywordPlanCampaignError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_campaign_error_2abe709d47e6a6ba, []int{0, 0} +} + +// Container for enum describing possible errors from applying a keyword plan +// campaign. +type KeywordPlanCampaignErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *KeywordPlanCampaignErrorEnum) Reset() { *m = KeywordPlanCampaignErrorEnum{} } +func (m *KeywordPlanCampaignErrorEnum) String() string { return proto.CompactTextString(m) } +func (*KeywordPlanCampaignErrorEnum) ProtoMessage() {} +func (*KeywordPlanCampaignErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_campaign_error_2abe709d47e6a6ba, []int{0} +} +func (m *KeywordPlanCampaignErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_KeywordPlanCampaignErrorEnum.Unmarshal(m, b) +} +func (m *KeywordPlanCampaignErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_KeywordPlanCampaignErrorEnum.Marshal(b, m, deterministic) +} +func (dst *KeywordPlanCampaignErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_KeywordPlanCampaignErrorEnum.Merge(dst, src) +} +func (m *KeywordPlanCampaignErrorEnum) XXX_Size() int { + return xxx_messageInfo_KeywordPlanCampaignErrorEnum.Size(m) +} +func (m *KeywordPlanCampaignErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_KeywordPlanCampaignErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_KeywordPlanCampaignErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*KeywordPlanCampaignErrorEnum)(nil), "google.ads.googleads.v0.errors.KeywordPlanCampaignErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.KeywordPlanCampaignErrorEnum_KeywordPlanCampaignError", KeywordPlanCampaignErrorEnum_KeywordPlanCampaignError_name, KeywordPlanCampaignErrorEnum_KeywordPlanCampaignError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/keyword_plan_campaign_error.proto", fileDescriptor_keyword_plan_campaign_error_2abe709d47e6a6ba) +} + +var fileDescriptor_keyword_plan_campaign_error_2abe709d47e6a6ba = []byte{ + // 328 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x91, 0x41, 0x4b, 0xc3, 0x30, + 0x14, 0xc7, 0xed, 0xa6, 0x13, 0x32, 0xd1, 0x18, 0x10, 0x3c, 0xe8, 0x0e, 0xfb, 0x00, 0x69, 0xc1, + 0xa3, 0x17, 0xb3, 0x36, 0x96, 0xb2, 0x2d, 0x2b, 0xcc, 0xce, 0x21, 0x85, 0x12, 0xd7, 0x12, 0x86, + 0x5d, 0x53, 0x12, 0x9d, 0xf8, 0x65, 0x3c, 0x78, 0xf4, 0x4b, 0x78, 0xf7, 0xea, 0x17, 0x92, 0x36, + 0xdb, 0xf0, 0x52, 0x4f, 0xfd, 0xd3, 0xf7, 0x7b, 0xbf, 0xc7, 0x7b, 0x01, 0x37, 0x42, 0x4a, 0x91, + 0x67, 0x36, 0x4f, 0xb5, 0x6d, 0x62, 0x95, 0xd6, 0x8e, 0x9d, 0x29, 0x25, 0x95, 0xb6, 0x9f, 0xb2, + 0xb7, 0x57, 0xa9, 0xd2, 0xa4, 0xcc, 0x79, 0x91, 0x2c, 0xf8, 0xaa, 0xe4, 0x4b, 0x51, 0x24, 0x75, + 0x11, 0x97, 0x4a, 0x3e, 0x4b, 0xd4, 0x33, 0x6d, 0x98, 0xa7, 0x1a, 0xef, 0x0c, 0x78, 0xed, 0x60, + 0x63, 0xe8, 0x7f, 0x59, 0xe0, 0x62, 0x68, 0x2c, 0x61, 0xce, 0x0b, 0x77, 0xe3, 0xa0, 0x55, 0x95, + 0x16, 0x2f, 0xab, 0xfe, 0xbb, 0x05, 0xce, 0x9b, 0x00, 0x74, 0x02, 0xba, 0x11, 0x9b, 0x86, 0xd4, + 0x0d, 0x6e, 0x03, 0xea, 0xc1, 0x3d, 0xd4, 0x05, 0x87, 0x11, 0x1b, 0xb2, 0xc9, 0x3d, 0x83, 0x16, + 0x82, 0xe0, 0x28, 0x60, 0x33, 0x32, 0x0a, 0xbc, 0x84, 0x91, 0x31, 0x85, 0x2d, 0x74, 0x06, 0x4e, + 0xb7, 0x7f, 0x46, 0x84, 0xf9, 0x11, 0xf1, 0xe9, 0x14, 0xb6, 0xff, 0x82, 0x3e, 0x9d, 0x4c, 0xe1, + 0x3e, 0x42, 0xe0, 0xd8, 0x8b, 0xc2, 0x51, 0xe0, 0x92, 0x3b, 0x6a, 0x9a, 0x0f, 0xaa, 0xe6, 0x31, + 0x99, 0xd7, 0x44, 0x42, 0xe7, 0x2e, 0xa5, 0x1e, 0xf5, 0x60, 0x67, 0xf0, 0x63, 0x81, 0xfe, 0x42, + 0xae, 0xf0, 0xff, 0x8b, 0x0e, 0x2e, 0x9b, 0x96, 0x08, 0xab, 0x3b, 0x85, 0xd6, 0x83, 0xb7, 0x11, + 0x08, 0x99, 0xf3, 0x42, 0x60, 0xa9, 0x84, 0x2d, 0xb2, 0xa2, 0xbe, 0xe2, 0xf6, 0xf6, 0xe5, 0x52, + 0x37, 0x3d, 0xc5, 0xb5, 0xf9, 0x7c, 0xb4, 0xda, 0x3e, 0x21, 0x9f, 0xad, 0x9e, 0x6f, 0x64, 0x24, + 0xd5, 0xd8, 0xc4, 0x2a, 0xcd, 0x1c, 0x5c, 0x8f, 0xd4, 0xdf, 0x5b, 0x20, 0x26, 0xa9, 0x8e, 0x77, + 0x40, 0x3c, 0x73, 0x62, 0x03, 0x3c, 0x76, 0xea, 0xc1, 0x57, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, + 0x73, 0x6c, 0xa6, 0x10, 0x02, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/keyword_plan_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/keyword_plan_error.pb.go new file mode 100644 index 000000000..5260c0a5e --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/keyword_plan_error.pb.go @@ -0,0 +1,178 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/keyword_plan_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible errors from applying a keyword plan. +type KeywordPlanErrorEnum_KeywordPlanError int32 + +const ( + // Enum unspecified. + KeywordPlanErrorEnum_UNSPECIFIED KeywordPlanErrorEnum_KeywordPlanError = 0 + // The received error code is not known in this version. + KeywordPlanErrorEnum_UNKNOWN KeywordPlanErrorEnum_KeywordPlanError = 1 + // The plan's bid multiplier value is outside the valid range. + KeywordPlanErrorEnum_BID_MULTIPLIER_OUT_OF_RANGE KeywordPlanErrorEnum_KeywordPlanError = 2 + // The plan's bid value is too high. + KeywordPlanErrorEnum_BID_TOO_HIGH KeywordPlanErrorEnum_KeywordPlanError = 3 + // The plan's bid value is too low. + KeywordPlanErrorEnum_BID_TOO_LOW KeywordPlanErrorEnum_KeywordPlanError = 4 + // The plan's cpc bid is not a multiple of the minimum billable unit. + KeywordPlanErrorEnum_BID_TOO_MANY_FRACTIONAL_DIGITS KeywordPlanErrorEnum_KeywordPlanError = 5 + // The plan's daily budget value is too low. + KeywordPlanErrorEnum_DAILY_BUDGET_TOO_LOW KeywordPlanErrorEnum_KeywordPlanError = 6 + // The plan's daily budget is not a multiple of the minimum billable unit. + KeywordPlanErrorEnum_DAILY_BUDGET_TOO_MANY_FRACTIONAL_DIGITS KeywordPlanErrorEnum_KeywordPlanError = 7 + // The input has an invalid value. + KeywordPlanErrorEnum_INVALID_VALUE KeywordPlanErrorEnum_KeywordPlanError = 8 + // The plan has no keyword. + KeywordPlanErrorEnum_KEYWORD_PLAN_HAS_NO_KEYWORDS KeywordPlanErrorEnum_KeywordPlanError = 9 + // The plan is not enabled and API cannot provide mutation, forecast or + // stats. + KeywordPlanErrorEnum_KEYWORD_PLAN_NOT_ENABLED KeywordPlanErrorEnum_KeywordPlanError = 10 + // The requested plan cannot be found for providing forecast or stats. + KeywordPlanErrorEnum_KEYWORD_PLAN_NOT_FOUND KeywordPlanErrorEnum_KeywordPlanError = 11 + // The plan is missing a cpc bid. + KeywordPlanErrorEnum_MISSING_BID KeywordPlanErrorEnum_KeywordPlanError = 13 + // The plan is missing required forecast_period field. + KeywordPlanErrorEnum_MISSING_FORECAST_PERIOD KeywordPlanErrorEnum_KeywordPlanError = 14 + // The plan's forecast_period has invalid forecast date range. + KeywordPlanErrorEnum_INVALID_FORECAST_DATE_RANGE KeywordPlanErrorEnum_KeywordPlanError = 15 + // The plan's name is invalid. + KeywordPlanErrorEnum_INVALID_NAME KeywordPlanErrorEnum_KeywordPlanError = 16 +) + +var KeywordPlanErrorEnum_KeywordPlanError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "BID_MULTIPLIER_OUT_OF_RANGE", + 3: "BID_TOO_HIGH", + 4: "BID_TOO_LOW", + 5: "BID_TOO_MANY_FRACTIONAL_DIGITS", + 6: "DAILY_BUDGET_TOO_LOW", + 7: "DAILY_BUDGET_TOO_MANY_FRACTIONAL_DIGITS", + 8: "INVALID_VALUE", + 9: "KEYWORD_PLAN_HAS_NO_KEYWORDS", + 10: "KEYWORD_PLAN_NOT_ENABLED", + 11: "KEYWORD_PLAN_NOT_FOUND", + 13: "MISSING_BID", + 14: "MISSING_FORECAST_PERIOD", + 15: "INVALID_FORECAST_DATE_RANGE", + 16: "INVALID_NAME", +} +var KeywordPlanErrorEnum_KeywordPlanError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "BID_MULTIPLIER_OUT_OF_RANGE": 2, + "BID_TOO_HIGH": 3, + "BID_TOO_LOW": 4, + "BID_TOO_MANY_FRACTIONAL_DIGITS": 5, + "DAILY_BUDGET_TOO_LOW": 6, + "DAILY_BUDGET_TOO_MANY_FRACTIONAL_DIGITS": 7, + "INVALID_VALUE": 8, + "KEYWORD_PLAN_HAS_NO_KEYWORDS": 9, + "KEYWORD_PLAN_NOT_ENABLED": 10, + "KEYWORD_PLAN_NOT_FOUND": 11, + "MISSING_BID": 13, + "MISSING_FORECAST_PERIOD": 14, + "INVALID_FORECAST_DATE_RANGE": 15, + "INVALID_NAME": 16, +} + +func (x KeywordPlanErrorEnum_KeywordPlanError) String() string { + return proto.EnumName(KeywordPlanErrorEnum_KeywordPlanError_name, int32(x)) +} +func (KeywordPlanErrorEnum_KeywordPlanError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_error_e0f5dce844afa4cf, []int{0, 0} +} + +// Container for enum describing possible errors from applying a keyword plan +// resource (keyword plan, keyword plan campaign, keyword plan ad group or +// keyword plan keyword) or KeywordPlanService RPC. +type KeywordPlanErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *KeywordPlanErrorEnum) Reset() { *m = KeywordPlanErrorEnum{} } +func (m *KeywordPlanErrorEnum) String() string { return proto.CompactTextString(m) } +func (*KeywordPlanErrorEnum) ProtoMessage() {} +func (*KeywordPlanErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_error_e0f5dce844afa4cf, []int{0} +} +func (m *KeywordPlanErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_KeywordPlanErrorEnum.Unmarshal(m, b) +} +func (m *KeywordPlanErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_KeywordPlanErrorEnum.Marshal(b, m, deterministic) +} +func (dst *KeywordPlanErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_KeywordPlanErrorEnum.Merge(dst, src) +} +func (m *KeywordPlanErrorEnum) XXX_Size() int { + return xxx_messageInfo_KeywordPlanErrorEnum.Size(m) +} +func (m *KeywordPlanErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_KeywordPlanErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_KeywordPlanErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*KeywordPlanErrorEnum)(nil), "google.ads.googleads.v0.errors.KeywordPlanErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.KeywordPlanErrorEnum_KeywordPlanError", KeywordPlanErrorEnum_KeywordPlanError_name, KeywordPlanErrorEnum_KeywordPlanError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/keyword_plan_error.proto", fileDescriptor_keyword_plan_error_e0f5dce844afa4cf) +} + +var fileDescriptor_keyword_plan_error_e0f5dce844afa4cf = []byte{ + // 467 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x52, 0x4d, 0x6f, 0xd3, 0x30, + 0x18, 0xa6, 0x2d, 0x6c, 0xe0, 0x32, 0x66, 0xac, 0x01, 0x13, 0x9b, 0x0a, 0xea, 0x85, 0x03, 0x52, + 0x5a, 0x89, 0x03, 0x07, 0x4e, 0x4e, 0xed, 0xa4, 0x56, 0x53, 0x3b, 0x4a, 0x9c, 0x56, 0x45, 0x95, + 0x5e, 0x05, 0x52, 0x45, 0x88, 0x2e, 0xae, 0x12, 0x18, 0xe2, 0xef, 0x70, 0xe4, 0xc2, 0xdf, 0x40, + 0xf0, 0xa7, 0x90, 0x9b, 0xa6, 0x12, 0x9b, 0xb6, 0x53, 0x1e, 0x3d, 0x1f, 0xaf, 0xe3, 0xd7, 0x0f, + 0x7a, 0x9b, 0x1b, 0x93, 0xaf, 0x57, 0x83, 0x34, 0xab, 0x06, 0x35, 0xb4, 0xe8, 0x72, 0x38, 0x58, + 0x95, 0xa5, 0x29, 0xab, 0xc1, 0xe7, 0xd5, 0xf7, 0x6f, 0xa6, 0xcc, 0x60, 0xb3, 0x4e, 0x0b, 0xd8, + 0x72, 0xce, 0xa6, 0x34, 0x5f, 0x0c, 0xe9, 0xd5, 0x6e, 0x27, 0xcd, 0x2a, 0x67, 0x1f, 0x74, 0x2e, + 0x87, 0x4e, 0x1d, 0xec, 0xff, 0xee, 0xa0, 0x93, 0x49, 0x1d, 0x0e, 0xd7, 0x69, 0xc1, 0x2d, 0xcb, + 0x8b, 0xaf, 0x17, 0xfd, 0x5f, 0x1d, 0x84, 0xaf, 0x0a, 0xe4, 0x18, 0x75, 0x13, 0x19, 0x87, 0x7c, + 0x24, 0x3c, 0xc1, 0x19, 0xbe, 0x43, 0xba, 0xe8, 0x30, 0x91, 0x13, 0xa9, 0xe6, 0x12, 0xb7, 0xc8, + 0x0b, 0x74, 0xe6, 0x0a, 0x06, 0xd3, 0x24, 0xd0, 0x22, 0x0c, 0x04, 0x8f, 0x40, 0x25, 0x1a, 0x94, + 0x07, 0x11, 0x95, 0x3e, 0xc7, 0x6d, 0x82, 0xd1, 0x43, 0x6b, 0xd0, 0x4a, 0xc1, 0x58, 0xf8, 0x63, + 0xdc, 0xb1, 0x03, 0x1b, 0x26, 0x50, 0x73, 0x7c, 0x97, 0xf4, 0x51, 0xaf, 0x21, 0xa6, 0x54, 0x2e, + 0xc0, 0x8b, 0xe8, 0x48, 0x0b, 0x25, 0x69, 0x00, 0x4c, 0xf8, 0x42, 0xc7, 0xf8, 0x1e, 0x39, 0x45, + 0x27, 0x8c, 0x8a, 0x60, 0x01, 0x6e, 0xc2, 0x7c, 0xae, 0xf7, 0xe9, 0x03, 0xf2, 0x1a, 0xbd, 0xba, + 0xa6, 0xdc, 0x30, 0xe6, 0x90, 0x3c, 0x46, 0x47, 0x42, 0xce, 0x68, 0x20, 0x18, 0xcc, 0x68, 0x90, + 0x70, 0x7c, 0x9f, 0xbc, 0x44, 0xe7, 0x13, 0xbe, 0x98, 0xab, 0x88, 0x41, 0x18, 0x50, 0x09, 0x63, + 0x1a, 0x83, 0x54, 0xb0, 0xe3, 0x62, 0xfc, 0x80, 0x9c, 0xa3, 0xd3, 0xff, 0x1c, 0x52, 0x69, 0xe0, + 0x92, 0xba, 0x01, 0x67, 0x18, 0x91, 0xe7, 0xe8, 0xe9, 0x35, 0xd5, 0x53, 0x89, 0x64, 0xb8, 0x6b, + 0xaf, 0x3a, 0x15, 0x71, 0x2c, 0xa4, 0x0f, 0xae, 0x60, 0xf8, 0x88, 0x9c, 0xa1, 0x67, 0x0d, 0xe1, + 0xa9, 0x88, 0x8f, 0x68, 0xac, 0x21, 0xe4, 0x91, 0x50, 0x0c, 0x3f, 0xb2, 0xbb, 0x6c, 0x7e, 0x6e, + 0x2f, 0x32, 0xaa, 0xf9, 0x6e, 0x97, 0xc7, 0x76, 0x97, 0x8d, 0x41, 0xd2, 0x29, 0xc7, 0xd8, 0xfd, + 0xdb, 0x42, 0xfd, 0x8f, 0xe6, 0xc2, 0xb9, 0xfd, 0xc5, 0xdd, 0x27, 0x57, 0x5f, 0x35, 0xb4, 0x45, + 0x09, 0x5b, 0xef, 0xd9, 0x2e, 0x98, 0x9b, 0x75, 0x5a, 0xe4, 0x8e, 0x29, 0xf3, 0x41, 0xbe, 0x2a, + 0xb6, 0x35, 0x6a, 0x3a, 0xb7, 0xf9, 0x54, 0xdd, 0x54, 0xc1, 0x77, 0xf5, 0xe7, 0x47, 0xbb, 0xe3, + 0x53, 0xfa, 0xb3, 0xdd, 0xf3, 0xeb, 0x61, 0x34, 0xab, 0x9c, 0x1a, 0x5a, 0x34, 0x1b, 0x3a, 0xdb, + 0x23, 0xab, 0x3f, 0x8d, 0x61, 0x49, 0xb3, 0x6a, 0xb9, 0x37, 0x2c, 0x67, 0xc3, 0x65, 0x6d, 0xf8, + 0x70, 0xb0, 0x3d, 0xf8, 0xcd, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf6, 0x2f, 0x8e, 0x16, 0xfa, + 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/keyword_plan_idea_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/keyword_plan_idea_error.pb.go new file mode 100644 index 000000000..304b184e5 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/keyword_plan_idea_error.pb.go @@ -0,0 +1,116 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/keyword_plan_idea_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible errors from KeywordPlanIdeaService. +type KeywordPlanIdeaErrorEnum_KeywordPlanIdeaError int32 + +const ( + // Enum unspecified. + KeywordPlanIdeaErrorEnum_UNSPECIFIED KeywordPlanIdeaErrorEnum_KeywordPlanIdeaError = 0 + // The received error code is not known in this version. + KeywordPlanIdeaErrorEnum_UNKNOWN KeywordPlanIdeaErrorEnum_KeywordPlanIdeaError = 1 + // Error when crawling the input URL. + KeywordPlanIdeaErrorEnum_URL_CRAWL_ERROR KeywordPlanIdeaErrorEnum_KeywordPlanIdeaError = 2 + // The input has an invalid value. + KeywordPlanIdeaErrorEnum_INVALID_VALUE KeywordPlanIdeaErrorEnum_KeywordPlanIdeaError = 3 +) + +var KeywordPlanIdeaErrorEnum_KeywordPlanIdeaError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "URL_CRAWL_ERROR", + 3: "INVALID_VALUE", +} +var KeywordPlanIdeaErrorEnum_KeywordPlanIdeaError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "URL_CRAWL_ERROR": 2, + "INVALID_VALUE": 3, +} + +func (x KeywordPlanIdeaErrorEnum_KeywordPlanIdeaError) String() string { + return proto.EnumName(KeywordPlanIdeaErrorEnum_KeywordPlanIdeaError_name, int32(x)) +} +func (KeywordPlanIdeaErrorEnum_KeywordPlanIdeaError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_idea_error_c1825bc9235d52d9, []int{0, 0} +} + +// Container for enum describing possible errors from KeywordPlanIdeaService. +type KeywordPlanIdeaErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *KeywordPlanIdeaErrorEnum) Reset() { *m = KeywordPlanIdeaErrorEnum{} } +func (m *KeywordPlanIdeaErrorEnum) String() string { return proto.CompactTextString(m) } +func (*KeywordPlanIdeaErrorEnum) ProtoMessage() {} +func (*KeywordPlanIdeaErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_idea_error_c1825bc9235d52d9, []int{0} +} +func (m *KeywordPlanIdeaErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_KeywordPlanIdeaErrorEnum.Unmarshal(m, b) +} +func (m *KeywordPlanIdeaErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_KeywordPlanIdeaErrorEnum.Marshal(b, m, deterministic) +} +func (dst *KeywordPlanIdeaErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_KeywordPlanIdeaErrorEnum.Merge(dst, src) +} +func (m *KeywordPlanIdeaErrorEnum) XXX_Size() int { + return xxx_messageInfo_KeywordPlanIdeaErrorEnum.Size(m) +} +func (m *KeywordPlanIdeaErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_KeywordPlanIdeaErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_KeywordPlanIdeaErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*KeywordPlanIdeaErrorEnum)(nil), "google.ads.googleads.v0.errors.KeywordPlanIdeaErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.KeywordPlanIdeaErrorEnum_KeywordPlanIdeaError", KeywordPlanIdeaErrorEnum_KeywordPlanIdeaError_name, KeywordPlanIdeaErrorEnum_KeywordPlanIdeaError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/keyword_plan_idea_error.proto", fileDescriptor_keyword_plan_idea_error_c1825bc9235d52d9) +} + +var fileDescriptor_keyword_plan_idea_error_c1825bc9235d52d9 = []byte{ + // 289 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0x4f, 0x4b, 0xc3, 0x30, + 0x18, 0xc6, 0x6d, 0x07, 0x0a, 0x19, 0xb2, 0x5a, 0x3d, 0xe8, 0x65, 0x87, 0x7e, 0x80, 0xb4, 0xe0, + 0x51, 0x2f, 0xd9, 0x1a, 0x47, 0x59, 0xe9, 0x4a, 0xa5, 0x1d, 0x48, 0x21, 0x44, 0x13, 0xc2, 0xb0, + 0x4b, 0x4a, 0xa2, 0x53, 0xbf, 0x8e, 0x47, 0x3f, 0x8a, 0x17, 0xbf, 0x92, 0xb4, 0x71, 0x3b, 0xcd, + 0x9d, 0xde, 0x07, 0x9e, 0xe7, 0xf7, 0xfe, 0x03, 0xb7, 0x42, 0x29, 0xd1, 0xf0, 0x90, 0x32, 0x13, + 0x5a, 0xd9, 0xa9, 0x4d, 0x14, 0x72, 0xad, 0x95, 0x36, 0xe1, 0x33, 0xff, 0x78, 0x53, 0x9a, 0x91, + 0xb6, 0xa1, 0x92, 0xac, 0x18, 0xa7, 0xa4, 0x37, 0x60, 0xab, 0xd5, 0x8b, 0xf2, 0xc7, 0x16, 0x81, + 0x94, 0x19, 0xb8, 0xa3, 0xe1, 0x26, 0x82, 0x96, 0x0e, 0xde, 0xc1, 0xe5, 0xdc, 0x36, 0xc8, 0x1b, + 0x2a, 0x13, 0xc6, 0x29, 0xee, 0x0c, 0x2c, 0x5f, 0xd7, 0x41, 0x0d, 0x2e, 0xf6, 0x79, 0xfe, 0x08, + 0x0c, 0xcb, 0xec, 0x3e, 0xc7, 0xd3, 0xe4, 0x2e, 0xc1, 0xb1, 0x77, 0xe4, 0x0f, 0xc1, 0x49, 0x99, + 0xcd, 0xb3, 0xc5, 0x32, 0xf3, 0x1c, 0xff, 0x1c, 0x8c, 0xca, 0x22, 0x25, 0xd3, 0x02, 0x2d, 0x53, + 0x82, 0x8b, 0x62, 0x51, 0x78, 0xae, 0x7f, 0x06, 0x4e, 0x93, 0xac, 0x42, 0x69, 0x12, 0x93, 0x0a, + 0xa5, 0x25, 0xf6, 0x06, 0x93, 0x1f, 0x07, 0x04, 0x4f, 0x6a, 0x0d, 0x0f, 0x2f, 0x38, 0xb9, 0xda, + 0xb7, 0x42, 0xde, 0xdd, 0x96, 0x3b, 0x0f, 0xf1, 0x1f, 0x2c, 0x54, 0x43, 0xa5, 0x80, 0x4a, 0x8b, + 0x50, 0x70, 0xd9, 0x5f, 0xbe, 0xfd, 0x55, 0xbb, 0x32, 0xff, 0xbd, 0xee, 0xc6, 0x96, 0x4f, 0x77, + 0x30, 0x43, 0xe8, 0xcb, 0x1d, 0xcf, 0x6c, 0x33, 0xc4, 0x0c, 0xb4, 0xb2, 0x53, 0x55, 0x04, 0xfb, + 0x91, 0xe6, 0x7b, 0x1b, 0xa8, 0x11, 0x33, 0xf5, 0x2e, 0x50, 0x57, 0x51, 0x6d, 0x03, 0x8f, 0xc7, + 0xfd, 0xe0, 0xeb, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xd8, 0x17, 0x69, 0x77, 0xb2, 0x01, 0x00, + 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/keyword_plan_keyword_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/keyword_plan_keyword_error.pb.go new file mode 100644 index 000000000..53e3caf74 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/keyword_plan_keyword_error.pb.go @@ -0,0 +1,138 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/keyword_plan_keyword_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible errors from applying a keyword plan keyword. +type KeywordPlanKeywordErrorEnum_KeywordPlanKeywordError int32 + +const ( + // Enum unspecified. + KeywordPlanKeywordErrorEnum_UNSPECIFIED KeywordPlanKeywordErrorEnum_KeywordPlanKeywordError = 0 + // The received error code is not known in this version. + KeywordPlanKeywordErrorEnum_UNKNOWN KeywordPlanKeywordErrorEnum_KeywordPlanKeywordError = 1 + // A keyword or negative keyword has invalid match type. + KeywordPlanKeywordErrorEnum_INVALID_KEYWORD_MATCH_TYPE KeywordPlanKeywordErrorEnum_KeywordPlanKeywordError = 2 + // A keyword or negative keyword with same text and match type already + // exists. + KeywordPlanKeywordErrorEnum_DUPLICATE_KEYWORD KeywordPlanKeywordErrorEnum_KeywordPlanKeywordError = 3 + // Keyword or negative keyword text exceeds the allowed limit. + KeywordPlanKeywordErrorEnum_KEYWORD_TEXT_TOO_LONG KeywordPlanKeywordErrorEnum_KeywordPlanKeywordError = 4 + // Keyword or negative keyword text has invalid characters or symbols. + KeywordPlanKeywordErrorEnum_KEYWORD_HAS_INVALID_CHARS KeywordPlanKeywordErrorEnum_KeywordPlanKeywordError = 5 + // Keyword or negative keyword text has too many words. + KeywordPlanKeywordErrorEnum_KEYWORD_HAS_TOO_MANY_WORDS KeywordPlanKeywordErrorEnum_KeywordPlanKeywordError = 6 + // Keyword or negative keyword has invalid text. + KeywordPlanKeywordErrorEnum_INVALID_KEYWORD_TEXT KeywordPlanKeywordErrorEnum_KeywordPlanKeywordError = 7 +) + +var KeywordPlanKeywordErrorEnum_KeywordPlanKeywordError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "INVALID_KEYWORD_MATCH_TYPE", + 3: "DUPLICATE_KEYWORD", + 4: "KEYWORD_TEXT_TOO_LONG", + 5: "KEYWORD_HAS_INVALID_CHARS", + 6: "KEYWORD_HAS_TOO_MANY_WORDS", + 7: "INVALID_KEYWORD_TEXT", +} +var KeywordPlanKeywordErrorEnum_KeywordPlanKeywordError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "INVALID_KEYWORD_MATCH_TYPE": 2, + "DUPLICATE_KEYWORD": 3, + "KEYWORD_TEXT_TOO_LONG": 4, + "KEYWORD_HAS_INVALID_CHARS": 5, + "KEYWORD_HAS_TOO_MANY_WORDS": 6, + "INVALID_KEYWORD_TEXT": 7, +} + +func (x KeywordPlanKeywordErrorEnum_KeywordPlanKeywordError) String() string { + return proto.EnumName(KeywordPlanKeywordErrorEnum_KeywordPlanKeywordError_name, int32(x)) +} +func (KeywordPlanKeywordErrorEnum_KeywordPlanKeywordError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_keyword_error_89795332c468dd89, []int{0, 0} +} + +// Container for enum describing possible errors from applying a keyword or a +// negative keyword from a keyword plan. +type KeywordPlanKeywordErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *KeywordPlanKeywordErrorEnum) Reset() { *m = KeywordPlanKeywordErrorEnum{} } +func (m *KeywordPlanKeywordErrorEnum) String() string { return proto.CompactTextString(m) } +func (*KeywordPlanKeywordErrorEnum) ProtoMessage() {} +func (*KeywordPlanKeywordErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_keyword_error_89795332c468dd89, []int{0} +} +func (m *KeywordPlanKeywordErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_KeywordPlanKeywordErrorEnum.Unmarshal(m, b) +} +func (m *KeywordPlanKeywordErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_KeywordPlanKeywordErrorEnum.Marshal(b, m, deterministic) +} +func (dst *KeywordPlanKeywordErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_KeywordPlanKeywordErrorEnum.Merge(dst, src) +} +func (m *KeywordPlanKeywordErrorEnum) XXX_Size() int { + return xxx_messageInfo_KeywordPlanKeywordErrorEnum.Size(m) +} +func (m *KeywordPlanKeywordErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_KeywordPlanKeywordErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_KeywordPlanKeywordErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*KeywordPlanKeywordErrorEnum)(nil), "google.ads.googleads.v0.errors.KeywordPlanKeywordErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.KeywordPlanKeywordErrorEnum_KeywordPlanKeywordError", KeywordPlanKeywordErrorEnum_KeywordPlanKeywordError_name, KeywordPlanKeywordErrorEnum_KeywordPlanKeywordError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/keyword_plan_keyword_error.proto", fileDescriptor_keyword_plan_keyword_error_89795332c468dd89) +} + +var fileDescriptor_keyword_plan_keyword_error_89795332c468dd89 = []byte{ + // 358 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x51, 0xdd, 0x4e, 0xea, 0x30, + 0x1c, 0x3f, 0x1b, 0xe7, 0x40, 0x52, 0x2e, 0x4e, 0x6d, 0x24, 0x8a, 0x1f, 0x5c, 0xf0, 0x00, 0xdd, + 0x12, 0x2f, 0xbd, 0x30, 0x65, 0xab, 0xb0, 0x00, 0xdb, 0xc2, 0x06, 0x88, 0x59, 0xd2, 0x4c, 0xb7, + 0x2c, 0xc6, 0xb1, 0x92, 0x4d, 0x31, 0xde, 0xfa, 0x28, 0x5e, 0xfa, 0x28, 0x5e, 0xfa, 0x08, 0x3e, + 0x89, 0xe9, 0xca, 0x88, 0x31, 0xc1, 0xab, 0xfe, 0xda, 0xdf, 0x57, 0xf3, 0xff, 0x83, 0x8b, 0x84, + 0xf3, 0x24, 0x8d, 0xb5, 0x30, 0x2a, 0x34, 0x09, 0x05, 0x5a, 0xeb, 0x5a, 0x9c, 0xe7, 0x3c, 0x2f, + 0xb4, 0xfb, 0xf8, 0xf9, 0x89, 0xe7, 0x11, 0x5b, 0xa5, 0x61, 0xc6, 0xaa, 0x4b, 0xc9, 0xe1, 0x55, + 0xce, 0x1f, 0x38, 0xea, 0x48, 0x17, 0x0e, 0xa3, 0x02, 0x6f, 0x03, 0xf0, 0x5a, 0xc7, 0x32, 0xa0, + 0xfb, 0xa2, 0x82, 0xe3, 0xa1, 0xf4, 0xb9, 0x69, 0x98, 0x6d, 0x20, 0x15, 0x24, 0xcd, 0x1e, 0x97, + 0xdd, 0x4f, 0x05, 0x1c, 0xec, 0xe0, 0xd1, 0x7f, 0xd0, 0x9c, 0xda, 0x9e, 0x4b, 0x0d, 0xeb, 0xd2, + 0xa2, 0x26, 0xfc, 0x83, 0x9a, 0xa0, 0x31, 0xb5, 0x87, 0xb6, 0x33, 0xb7, 0xa1, 0x82, 0x3a, 0xe0, + 0xc8, 0xb2, 0x67, 0x64, 0x64, 0x99, 0x6c, 0x48, 0x17, 0x73, 0x67, 0x62, 0xb2, 0x31, 0xf1, 0x8d, + 0x01, 0xf3, 0x17, 0x2e, 0x85, 0x2a, 0x6a, 0x81, 0x3d, 0x73, 0xea, 0x8e, 0x2c, 0x83, 0xf8, 0xb4, + 0x52, 0xc0, 0x1a, 0x6a, 0x83, 0x56, 0x25, 0xf7, 0xe9, 0x95, 0xcf, 0x7c, 0xc7, 0x61, 0x23, 0xc7, + 0xee, 0xc3, 0xbf, 0xe8, 0x14, 0xb4, 0x2b, 0x6a, 0x40, 0x3c, 0x56, 0xa5, 0x1b, 0x03, 0x32, 0xf1, + 0xe0, 0x3f, 0x51, 0xf8, 0x9d, 0x16, 0xc6, 0x31, 0xb1, 0x17, 0x4c, 0xbc, 0x78, 0xb0, 0x8e, 0x0e, + 0xc1, 0xfe, 0xcf, 0x0f, 0x89, 0x06, 0xd8, 0xe8, 0x7d, 0x28, 0xa0, 0x7b, 0xcb, 0x97, 0xf8, 0xf7, + 0x59, 0xf5, 0x4e, 0x76, 0x0c, 0xc2, 0x15, 0x93, 0x76, 0x95, 0x6b, 0x73, 0xe3, 0x4f, 0x78, 0x1a, + 0x66, 0x09, 0xe6, 0x79, 0xa2, 0x25, 0x71, 0x56, 0xee, 0xa1, 0x5a, 0xde, 0xea, 0xae, 0xd8, 0xb5, + 0xcb, 0x73, 0x79, 0xbc, 0xaa, 0xb5, 0x3e, 0x21, 0x6f, 0x6a, 0xa7, 0x2f, 0xc3, 0x48, 0x54, 0x60, + 0x09, 0x05, 0x9a, 0xe9, 0xb8, 0xac, 0x2c, 0xde, 0x2b, 0x41, 0x40, 0xa2, 0x22, 0xd8, 0x0a, 0x82, + 0x99, 0x1e, 0x48, 0xc1, 0x4d, 0xbd, 0x2c, 0x3e, 0xfb, 0x0a, 0x00, 0x00, 0xff, 0xff, 0x47, 0x8a, + 0x95, 0xb0, 0x43, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/keyword_plan_negative_keyword_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/keyword_plan_negative_keyword_error.pb.go new file mode 100644 index 000000000..9efd211ce --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/keyword_plan_negative_keyword_error.pb.go @@ -0,0 +1,108 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/keyword_plan_negative_keyword_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible errors from applying a keyword plan negative +// keyword. +type KeywordPlanNegativeKeywordErrorEnum_KeywordPlanNegativeKeywordError int32 + +const ( + // Enum unspecified. + KeywordPlanNegativeKeywordErrorEnum_UNSPECIFIED KeywordPlanNegativeKeywordErrorEnum_KeywordPlanNegativeKeywordError = 0 + // The received error code is not known in this version. + KeywordPlanNegativeKeywordErrorEnum_UNKNOWN KeywordPlanNegativeKeywordErrorEnum_KeywordPlanNegativeKeywordError = 1 +) + +var KeywordPlanNegativeKeywordErrorEnum_KeywordPlanNegativeKeywordError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", +} +var KeywordPlanNegativeKeywordErrorEnum_KeywordPlanNegativeKeywordError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, +} + +func (x KeywordPlanNegativeKeywordErrorEnum_KeywordPlanNegativeKeywordError) String() string { + return proto.EnumName(KeywordPlanNegativeKeywordErrorEnum_KeywordPlanNegativeKeywordError_name, int32(x)) +} +func (KeywordPlanNegativeKeywordErrorEnum_KeywordPlanNegativeKeywordError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_negative_keyword_error_82bc2dba02d6e017, []int{0, 0} +} + +// Container for enum describing possible errors from applying a keyword plan +// negative keyword. +type KeywordPlanNegativeKeywordErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *KeywordPlanNegativeKeywordErrorEnum) Reset() { *m = KeywordPlanNegativeKeywordErrorEnum{} } +func (m *KeywordPlanNegativeKeywordErrorEnum) String() string { return proto.CompactTextString(m) } +func (*KeywordPlanNegativeKeywordErrorEnum) ProtoMessage() {} +func (*KeywordPlanNegativeKeywordErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_negative_keyword_error_82bc2dba02d6e017, []int{0} +} +func (m *KeywordPlanNegativeKeywordErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_KeywordPlanNegativeKeywordErrorEnum.Unmarshal(m, b) +} +func (m *KeywordPlanNegativeKeywordErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_KeywordPlanNegativeKeywordErrorEnum.Marshal(b, m, deterministic) +} +func (dst *KeywordPlanNegativeKeywordErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_KeywordPlanNegativeKeywordErrorEnum.Merge(dst, src) +} +func (m *KeywordPlanNegativeKeywordErrorEnum) XXX_Size() int { + return xxx_messageInfo_KeywordPlanNegativeKeywordErrorEnum.Size(m) +} +func (m *KeywordPlanNegativeKeywordErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_KeywordPlanNegativeKeywordErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_KeywordPlanNegativeKeywordErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*KeywordPlanNegativeKeywordErrorEnum)(nil), "google.ads.googleads.v0.errors.KeywordPlanNegativeKeywordErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.KeywordPlanNegativeKeywordErrorEnum_KeywordPlanNegativeKeywordError", KeywordPlanNegativeKeywordErrorEnum_KeywordPlanNegativeKeywordError_name, KeywordPlanNegativeKeywordErrorEnum_KeywordPlanNegativeKeywordError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/keyword_plan_negative_keyword_error.proto", fileDescriptor_keyword_plan_negative_keyword_error_82bc2dba02d6e017) +} + +var fileDescriptor_keyword_plan_negative_keyword_error_82bc2dba02d6e017 = []byte{ + // 258 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xf2, 0x48, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xa2, + 0xa2, 0xfc, 0xa2, 0x62, 0xfd, 0xec, 0xd4, 0xca, 0xf2, 0xfc, 0xa2, 0x94, 0xf8, 0x82, 0x9c, 0xc4, + 0xbc, 0xf8, 0xbc, 0xd4, 0xf4, 0xc4, 0x92, 0xcc, 0xb2, 0xd4, 0x78, 0x98, 0x28, 0x58, 0x91, 0x5e, + 0x41, 0x51, 0x7e, 0x49, 0xbe, 0x90, 0x1c, 0x44, 0xbb, 0x5e, 0x62, 0x4a, 0xb1, 0x1e, 0xdc, 0x24, + 0xbd, 0x32, 0x03, 0x3d, 0x88, 0x49, 0x4a, 0x69, 0x5c, 0xca, 0xde, 0x10, 0x6d, 0x01, 0x39, 0x89, + 0x79, 0x7e, 0x50, 0xa3, 0xa0, 0x42, 0xae, 0x20, 0x35, 0xae, 0x79, 0xa5, 0xb9, 0x4a, 0xf6, 0x5c, + 0xf2, 0x04, 0x94, 0x09, 0xf1, 0x73, 0x71, 0x87, 0xfa, 0x05, 0x07, 0xb8, 0x3a, 0x7b, 0xba, 0x79, + 0xba, 0xba, 0x08, 0x30, 0x08, 0x71, 0x73, 0xb1, 0x87, 0xfa, 0x79, 0xfb, 0xf9, 0x87, 0xfb, 0x09, + 0x30, 0x3a, 0xdd, 0x62, 0xe4, 0x52, 0x4a, 0xce, 0xcf, 0xd5, 0xc3, 0xef, 0x1c, 0x27, 0x15, 0x02, + 0xb6, 0x04, 0x80, 0x3c, 0x15, 0xc0, 0x18, 0xe5, 0x02, 0x35, 0x27, 0x3d, 0x3f, 0x27, 0x31, 0x2f, + 0x5d, 0x2f, 0xbf, 0x28, 0x5d, 0x3f, 0x3d, 0x35, 0x0f, 0xec, 0x65, 0x58, 0x80, 0x15, 0x64, 0x16, + 0xe3, 0x0a, 0x3f, 0x6b, 0x08, 0xb5, 0x88, 0x89, 0xd9, 0xdd, 0xd1, 0x71, 0x15, 0x93, 0x9c, 0x3b, + 0xc4, 0x30, 0xc7, 0x94, 0x62, 0x3d, 0x08, 0x13, 0xc4, 0x0a, 0x33, 0xd0, 0x03, 0x5b, 0x59, 0x7c, + 0x0a, 0xa6, 0x20, 0xc6, 0x31, 0xa5, 0x38, 0x06, 0xae, 0x20, 0x26, 0xcc, 0x20, 0x06, 0xa2, 0x20, + 0x89, 0x0d, 0x6c, 0xb1, 0x31, 0x20, 0x00, 0x00, 0xff, 0xff, 0x21, 0x8a, 0x64, 0xf8, 0xb7, 0x01, + 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/list_operation_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/list_operation_error.pb.go new file mode 100644 index 000000000..c019b2a93 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/list_operation_error.pb.go @@ -0,0 +1,116 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/list_operation_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible list operation errors. +type ListOperationErrorEnum_ListOperationError int32 + +const ( + // Enum unspecified. + ListOperationErrorEnum_UNSPECIFIED ListOperationErrorEnum_ListOperationError = 0 + // The received error code is not known in this version. + ListOperationErrorEnum_UNKNOWN ListOperationErrorEnum_ListOperationError = 1 + // Field required in value is missing. + ListOperationErrorEnum_REQUIRED_FIELD_MISSING ListOperationErrorEnum_ListOperationError = 7 + // Duplicate or identical value is sent in multiple list operations. + ListOperationErrorEnum_DUPLICATE_VALUES ListOperationErrorEnum_ListOperationError = 8 +) + +var ListOperationErrorEnum_ListOperationError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 7: "REQUIRED_FIELD_MISSING", + 8: "DUPLICATE_VALUES", +} +var ListOperationErrorEnum_ListOperationError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "REQUIRED_FIELD_MISSING": 7, + "DUPLICATE_VALUES": 8, +} + +func (x ListOperationErrorEnum_ListOperationError) String() string { + return proto.EnumName(ListOperationErrorEnum_ListOperationError_name, int32(x)) +} +func (ListOperationErrorEnum_ListOperationError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_list_operation_error_2f6e3c2f7387aa7b, []int{0, 0} +} + +// Container for enum describing possible list operation errors. +type ListOperationErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListOperationErrorEnum) Reset() { *m = ListOperationErrorEnum{} } +func (m *ListOperationErrorEnum) String() string { return proto.CompactTextString(m) } +func (*ListOperationErrorEnum) ProtoMessage() {} +func (*ListOperationErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_list_operation_error_2f6e3c2f7387aa7b, []int{0} +} +func (m *ListOperationErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListOperationErrorEnum.Unmarshal(m, b) +} +func (m *ListOperationErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListOperationErrorEnum.Marshal(b, m, deterministic) +} +func (dst *ListOperationErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListOperationErrorEnum.Merge(dst, src) +} +func (m *ListOperationErrorEnum) XXX_Size() int { + return xxx_messageInfo_ListOperationErrorEnum.Size(m) +} +func (m *ListOperationErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_ListOperationErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_ListOperationErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*ListOperationErrorEnum)(nil), "google.ads.googleads.v0.errors.ListOperationErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.ListOperationErrorEnum_ListOperationError", ListOperationErrorEnum_ListOperationError_name, ListOperationErrorEnum_ListOperationError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/list_operation_error.proto", fileDescriptor_list_operation_error_2f6e3c2f7387aa7b) +} + +var fileDescriptor_list_operation_error_2f6e3c2f7387aa7b = []byte{ + // 294 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0xcf, 0x4a, 0xf3, 0x40, + 0x14, 0xc5, 0xbf, 0xf4, 0x03, 0x2b, 0xd3, 0x85, 0x61, 0x90, 0x0a, 0x2e, 0xba, 0xc8, 0x03, 0x4c, + 0x02, 0xae, 0xc4, 0xd5, 0xb4, 0x99, 0x86, 0xc1, 0x98, 0xc6, 0xc6, 0x44, 0x90, 0x40, 0x88, 0x26, + 0x0c, 0x81, 0x34, 0x37, 0xcc, 0xc4, 0x2e, 0x7d, 0x18, 0x97, 0x3e, 0x8a, 0xe0, 0x3b, 0x49, 0x32, + 0xa6, 0x9b, 0xa2, 0xab, 0x39, 0xdc, 0x39, 0xbf, 0xfb, 0xe7, 0xa0, 0x6b, 0x01, 0x20, 0xea, 0xd2, + 0xce, 0x0b, 0x65, 0x6b, 0xd9, 0xab, 0xbd, 0x63, 0x97, 0x52, 0x82, 0x54, 0x76, 0x5d, 0xa9, 0x2e, + 0x83, 0xb6, 0x94, 0x79, 0x57, 0x41, 0x93, 0x0d, 0x55, 0xd2, 0x4a, 0xe8, 0x00, 0x2f, 0xb4, 0x9f, + 0xe4, 0x85, 0x22, 0x07, 0x94, 0xec, 0x1d, 0xa2, 0x51, 0xeb, 0x0d, 0xcd, 0xfd, 0x4a, 0x75, 0x9b, + 0x11, 0x66, 0x7d, 0x99, 0x35, 0xaf, 0x3b, 0xab, 0x40, 0xf8, 0xf8, 0x07, 0x9f, 0xa1, 0x59, 0x1c, + 0x44, 0x21, 0x5b, 0xf1, 0x35, 0x67, 0xae, 0xf9, 0x0f, 0xcf, 0xd0, 0x34, 0x0e, 0x6e, 0x83, 0xcd, + 0x63, 0x60, 0x1a, 0xf8, 0x12, 0xcd, 0xb7, 0xec, 0x3e, 0xe6, 0x5b, 0xe6, 0x66, 0x6b, 0xce, 0x7c, + 0x37, 0xbb, 0xe3, 0x51, 0xc4, 0x03, 0xcf, 0x9c, 0xe2, 0x73, 0x64, 0xba, 0x71, 0xe8, 0xf3, 0x15, + 0x7d, 0x60, 0x59, 0x42, 0xfd, 0x98, 0x45, 0xe6, 0xe9, 0xf2, 0xcb, 0x40, 0xd6, 0x0b, 0xec, 0xc8, + 0xdf, 0x6b, 0x2e, 0x2f, 0x8e, 0x57, 0x09, 0xfb, 0xfb, 0x42, 0xe3, 0xc9, 0xfd, 0x41, 0x05, 0xd4, + 0x79, 0x23, 0x08, 0x48, 0x61, 0x8b, 0xb2, 0x19, 0xae, 0x1f, 0xc3, 0x6a, 0x2b, 0xf5, 0x5b, 0x76, + 0x37, 0xfa, 0x79, 0x9f, 0xfc, 0xf7, 0x28, 0xfd, 0x98, 0x2c, 0x3c, 0xdd, 0x8c, 0x16, 0x8a, 0x68, + 0xd9, 0xab, 0xc4, 0x21, 0xc3, 0x48, 0xf5, 0x39, 0x1a, 0x52, 0x5a, 0xa8, 0xf4, 0x60, 0x48, 0x13, + 0x27, 0xd5, 0x86, 0xe7, 0x93, 0x61, 0xf0, 0xd5, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0xdc, 0x1d, + 0x71, 0x9f, 0xb3, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/media_bundle_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/media_bundle_error.pb.go new file mode 100644 index 000000000..ed2cd1cfb --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/media_bundle_error.pb.go @@ -0,0 +1,215 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/media_bundle_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible media bundle errors. +type MediaBundleErrorEnum_MediaBundleError int32 + +const ( + // Enum unspecified. + MediaBundleErrorEnum_UNSPECIFIED MediaBundleErrorEnum_MediaBundleError = 0 + // The received error code is not known in this version. + MediaBundleErrorEnum_UNKNOWN MediaBundleErrorEnum_MediaBundleError = 1 + // There was a problem with the request. + MediaBundleErrorEnum_BAD_REQUEST MediaBundleErrorEnum_MediaBundleError = 3 + // HTML5 ads using DoubleClick Studio created ZIP files are not supported. + MediaBundleErrorEnum_DOUBLECLICK_BUNDLE_NOT_ALLOWED MediaBundleErrorEnum_MediaBundleError = 4 + // Cannot reference URL external to the media bundle. + MediaBundleErrorEnum_EXTERNAL_URL_NOT_ALLOWED MediaBundleErrorEnum_MediaBundleError = 5 + // Media bundle file is too large. + MediaBundleErrorEnum_FILE_TOO_LARGE MediaBundleErrorEnum_MediaBundleError = 6 + // ZIP file from Google Web Designer is not published. + MediaBundleErrorEnum_GOOGLE_WEB_DESIGNER_ZIP_FILE_NOT_PUBLISHED MediaBundleErrorEnum_MediaBundleError = 7 + // Input was invalid. + MediaBundleErrorEnum_INVALID_INPUT MediaBundleErrorEnum_MediaBundleError = 8 + // There was a problem with the media bundle. + MediaBundleErrorEnum_INVALID_MEDIA_BUNDLE MediaBundleErrorEnum_MediaBundleError = 9 + // There was a problem with one or more of the media bundle entries. + MediaBundleErrorEnum_INVALID_MEDIA_BUNDLE_ENTRY MediaBundleErrorEnum_MediaBundleError = 10 + // The media bundle contains a file with an unknown mime type + MediaBundleErrorEnum_INVALID_MIME_TYPE MediaBundleErrorEnum_MediaBundleError = 11 + // The media bundle contain an invalid asset path. + MediaBundleErrorEnum_INVALID_PATH MediaBundleErrorEnum_MediaBundleError = 12 + // HTML5 ad is trying to reference an asset not in .ZIP file + MediaBundleErrorEnum_INVALID_URL_REFERENCE MediaBundleErrorEnum_MediaBundleError = 13 + // Media data is too large. + MediaBundleErrorEnum_MEDIA_DATA_TOO_LARGE MediaBundleErrorEnum_MediaBundleError = 14 + // The media bundle contains no primary entry. + MediaBundleErrorEnum_MISSING_PRIMARY_MEDIA_BUNDLE_ENTRY MediaBundleErrorEnum_MediaBundleError = 15 + // There was an error on the server. + MediaBundleErrorEnum_SERVER_ERROR MediaBundleErrorEnum_MediaBundleError = 16 + // The image could not be stored. + MediaBundleErrorEnum_STORAGE_ERROR MediaBundleErrorEnum_MediaBundleError = 17 + // Media bundle created with the Swiffy tool is not allowed. + MediaBundleErrorEnum_SWIFFY_BUNDLE_NOT_ALLOWED MediaBundleErrorEnum_MediaBundleError = 18 + // The media bundle contains too many files. + MediaBundleErrorEnum_TOO_MANY_FILES MediaBundleErrorEnum_MediaBundleError = 19 + // The media bundle is not of legal dimensions. + MediaBundleErrorEnum_UNEXPECTED_SIZE MediaBundleErrorEnum_MediaBundleError = 20 + // Google Web Designer not created for "Google Ads" environment. + MediaBundleErrorEnum_UNSUPPORTED_GOOGLE_WEB_DESIGNER_ENVIRONMENT MediaBundleErrorEnum_MediaBundleError = 21 + // Unsupported HTML5 feature in HTML5 asset. + MediaBundleErrorEnum_UNSUPPORTED_HTML5_FEATURE MediaBundleErrorEnum_MediaBundleError = 22 + // URL in HTML5 entry is not ssl compliant. + MediaBundleErrorEnum_URL_IN_MEDIA_BUNDLE_NOT_SSL_COMPLIANT MediaBundleErrorEnum_MediaBundleError = 23 + // Custom exits not allowed in HTML5 entry. + MediaBundleErrorEnum_CUSTOM_EXIT_NOT_ALLOWED MediaBundleErrorEnum_MediaBundleError = 24 +) + +var MediaBundleErrorEnum_MediaBundleError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 3: "BAD_REQUEST", + 4: "DOUBLECLICK_BUNDLE_NOT_ALLOWED", + 5: "EXTERNAL_URL_NOT_ALLOWED", + 6: "FILE_TOO_LARGE", + 7: "GOOGLE_WEB_DESIGNER_ZIP_FILE_NOT_PUBLISHED", + 8: "INVALID_INPUT", + 9: "INVALID_MEDIA_BUNDLE", + 10: "INVALID_MEDIA_BUNDLE_ENTRY", + 11: "INVALID_MIME_TYPE", + 12: "INVALID_PATH", + 13: "INVALID_URL_REFERENCE", + 14: "MEDIA_DATA_TOO_LARGE", + 15: "MISSING_PRIMARY_MEDIA_BUNDLE_ENTRY", + 16: "SERVER_ERROR", + 17: "STORAGE_ERROR", + 18: "SWIFFY_BUNDLE_NOT_ALLOWED", + 19: "TOO_MANY_FILES", + 20: "UNEXPECTED_SIZE", + 21: "UNSUPPORTED_GOOGLE_WEB_DESIGNER_ENVIRONMENT", + 22: "UNSUPPORTED_HTML5_FEATURE", + 23: "URL_IN_MEDIA_BUNDLE_NOT_SSL_COMPLIANT", + 24: "CUSTOM_EXIT_NOT_ALLOWED", +} +var MediaBundleErrorEnum_MediaBundleError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "BAD_REQUEST": 3, + "DOUBLECLICK_BUNDLE_NOT_ALLOWED": 4, + "EXTERNAL_URL_NOT_ALLOWED": 5, + "FILE_TOO_LARGE": 6, + "GOOGLE_WEB_DESIGNER_ZIP_FILE_NOT_PUBLISHED": 7, + "INVALID_INPUT": 8, + "INVALID_MEDIA_BUNDLE": 9, + "INVALID_MEDIA_BUNDLE_ENTRY": 10, + "INVALID_MIME_TYPE": 11, + "INVALID_PATH": 12, + "INVALID_URL_REFERENCE": 13, + "MEDIA_DATA_TOO_LARGE": 14, + "MISSING_PRIMARY_MEDIA_BUNDLE_ENTRY": 15, + "SERVER_ERROR": 16, + "STORAGE_ERROR": 17, + "SWIFFY_BUNDLE_NOT_ALLOWED": 18, + "TOO_MANY_FILES": 19, + "UNEXPECTED_SIZE": 20, + "UNSUPPORTED_GOOGLE_WEB_DESIGNER_ENVIRONMENT": 21, + "UNSUPPORTED_HTML5_FEATURE": 22, + "URL_IN_MEDIA_BUNDLE_NOT_SSL_COMPLIANT": 23, + "CUSTOM_EXIT_NOT_ALLOWED": 24, +} + +func (x MediaBundleErrorEnum_MediaBundleError) String() string { + return proto.EnumName(MediaBundleErrorEnum_MediaBundleError_name, int32(x)) +} +func (MediaBundleErrorEnum_MediaBundleError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_media_bundle_error_5156370a3b217af5, []int{0, 0} +} + +// Container for enum describing possible media bundle errors. +type MediaBundleErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MediaBundleErrorEnum) Reset() { *m = MediaBundleErrorEnum{} } +func (m *MediaBundleErrorEnum) String() string { return proto.CompactTextString(m) } +func (*MediaBundleErrorEnum) ProtoMessage() {} +func (*MediaBundleErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_media_bundle_error_5156370a3b217af5, []int{0} +} +func (m *MediaBundleErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MediaBundleErrorEnum.Unmarshal(m, b) +} +func (m *MediaBundleErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MediaBundleErrorEnum.Marshal(b, m, deterministic) +} +func (dst *MediaBundleErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_MediaBundleErrorEnum.Merge(dst, src) +} +func (m *MediaBundleErrorEnum) XXX_Size() int { + return xxx_messageInfo_MediaBundleErrorEnum.Size(m) +} +func (m *MediaBundleErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_MediaBundleErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_MediaBundleErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*MediaBundleErrorEnum)(nil), "google.ads.googleads.v0.errors.MediaBundleErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.MediaBundleErrorEnum_MediaBundleError", MediaBundleErrorEnum_MediaBundleError_name, MediaBundleErrorEnum_MediaBundleError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/media_bundle_error.proto", fileDescriptor_media_bundle_error_5156370a3b217af5) +} + +var fileDescriptor_media_bundle_error_5156370a3b217af5 = []byte{ + // 599 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x53, 0xdb, 0x4e, 0x1b, 0x31, + 0x10, 0x2d, 0x50, 0xa0, 0x35, 0x37, 0x63, 0x48, 0x81, 0x5e, 0xf2, 0x10, 0xa9, 0x95, 0xda, 0x4a, + 0x9b, 0x48, 0x55, 0xd5, 0x87, 0x3e, 0x79, 0x77, 0x27, 0x8b, 0x85, 0xd7, 0xde, 0xfa, 0x92, 0x10, + 0x14, 0xc9, 0x0a, 0x4d, 0x14, 0x21, 0x41, 0x16, 0x65, 0x0b, 0xbf, 0x53, 0xa9, 0x8f, 0xfd, 0x82, + 0x7e, 0x43, 0xfb, 0x53, 0x95, 0x77, 0x09, 0x02, 0x94, 0xf6, 0xc9, 0xa3, 0x33, 0x73, 0xe6, 0xcc, + 0x1c, 0x79, 0xd0, 0xa7, 0x71, 0x9e, 0x8f, 0xcf, 0x47, 0xcd, 0xc1, 0xb0, 0x68, 0x56, 0xa1, 0x8f, + 0xae, 0x5b, 0xcd, 0xd1, 0x74, 0x9a, 0x4f, 0x8b, 0xe6, 0xc5, 0x68, 0x78, 0x36, 0x70, 0xa7, 0x57, + 0x93, 0xe1, 0xf9, 0xc8, 0x95, 0x58, 0x70, 0x39, 0xcd, 0xbf, 0xe5, 0xa4, 0x5e, 0x55, 0x07, 0x83, + 0x61, 0x11, 0xdc, 0x12, 0x83, 0xeb, 0x56, 0x50, 0x11, 0x1b, 0xbf, 0x96, 0xd1, 0x6e, 0xea, 0xc9, + 0x61, 0xc9, 0x05, 0x8f, 0xc2, 0xe4, 0xea, 0xa2, 0xf1, 0x7d, 0x19, 0xe1, 0x87, 0x09, 0xb2, 0x85, + 0xd6, 0xac, 0xd0, 0x19, 0x44, 0xac, 0xcd, 0x20, 0xc6, 0x8f, 0xc8, 0x1a, 0x5a, 0xb5, 0xe2, 0x48, + 0xc8, 0xae, 0xc0, 0x0b, 0x3e, 0x1b, 0xd2, 0xd8, 0x29, 0xf8, 0x62, 0x41, 0x1b, 0xbc, 0x44, 0x1a, + 0xa8, 0x1e, 0x4b, 0x1b, 0x72, 0x88, 0x38, 0x8b, 0x8e, 0x5c, 0x68, 0x45, 0xcc, 0xc1, 0x09, 0x69, + 0x1c, 0xe5, 0x5c, 0x76, 0x21, 0xc6, 0x8f, 0xc9, 0x4b, 0xb4, 0x0f, 0xc7, 0x06, 0x94, 0xa0, 0xdc, + 0x59, 0xc5, 0xef, 0x65, 0x97, 0x09, 0x41, 0x9b, 0x6d, 0xc6, 0xc1, 0x19, 0x29, 0x1d, 0xa7, 0x2a, + 0x01, 0xbc, 0x42, 0x02, 0xf4, 0x2e, 0x91, 0x32, 0xe1, 0xe0, 0xba, 0x10, 0xba, 0x18, 0x34, 0x4b, + 0x04, 0x28, 0x77, 0xc2, 0x32, 0x57, 0xd6, 0xfa, 0x0e, 0x99, 0x0d, 0x39, 0xd3, 0x87, 0x10, 0xe3, + 0x55, 0xb2, 0x8d, 0x36, 0x98, 0xe8, 0x50, 0xce, 0x62, 0xc7, 0x44, 0x66, 0x0d, 0x7e, 0x42, 0xf6, + 0xd1, 0xee, 0x0c, 0x4a, 0x21, 0x66, 0xf4, 0x66, 0x34, 0xfc, 0x94, 0xd4, 0xd1, 0xf3, 0x79, 0x19, + 0x07, 0xc2, 0xa8, 0x1e, 0x46, 0xa4, 0x86, 0xb6, 0x6f, 0xf3, 0x2c, 0x05, 0x67, 0x7a, 0x19, 0xe0, + 0x35, 0x82, 0xd1, 0xfa, 0x0c, 0xce, 0xa8, 0x39, 0xc4, 0xeb, 0xe4, 0x00, 0xd5, 0x66, 0x88, 0x5f, + 0x4b, 0x41, 0x1b, 0x14, 0x88, 0x08, 0xf0, 0x86, 0x57, 0xaf, 0x7a, 0xc7, 0xd4, 0xd0, 0x3b, 0xab, + 0x6d, 0x92, 0x37, 0xa8, 0x91, 0x32, 0xad, 0x99, 0x48, 0x5c, 0xa6, 0x58, 0x4a, 0x55, 0x6f, 0xde, + 0x14, 0x5b, 0x5e, 0x4e, 0x83, 0xea, 0x80, 0x72, 0xa0, 0x94, 0x54, 0x18, 0xfb, 0x25, 0xb5, 0x91, + 0x8a, 0x26, 0x70, 0x03, 0x6d, 0x93, 0x57, 0xe8, 0x40, 0x77, 0x59, 0xbb, 0xdd, 0x9b, 0x67, 0x3c, + 0xf1, 0xd6, 0x7a, 0xe9, 0x94, 0x8a, 0x5e, 0xe9, 0x9b, 0xc6, 0x3b, 0x64, 0x07, 0x6d, 0x59, 0x01, + 0xc7, 0x19, 0x44, 0x06, 0x62, 0xa7, 0xd9, 0x09, 0xe0, 0x5d, 0xd2, 0x44, 0xef, 0xad, 0xd0, 0x36, + 0xcb, 0xa4, 0xf2, 0xe8, 0x3c, 0xef, 0x41, 0x74, 0x98, 0x92, 0x22, 0x05, 0x61, 0x70, 0xcd, 0x0b, + 0xdf, 0x25, 0x1c, 0x9a, 0x94, 0x7f, 0x74, 0x6d, 0xa0, 0xc6, 0x2a, 0xc0, 0xcf, 0xc8, 0x5b, 0xf4, + 0xda, 0x3b, 0xc2, 0xc4, 0xfd, 0xdd, 0xfc, 0x74, 0x5a, 0x73, 0x17, 0xc9, 0x34, 0xe3, 0x8c, 0x0a, + 0x83, 0xf7, 0xc8, 0x0b, 0xb4, 0x17, 0x59, 0x6d, 0x64, 0xea, 0xe0, 0x98, 0x99, 0x7b, 0x0b, 0xec, + 0x87, 0x7f, 0x16, 0x50, 0xe3, 0x6b, 0x7e, 0x11, 0xfc, 0xff, 0x87, 0x87, 0xb5, 0x87, 0xbf, 0x38, + 0xf3, 0x87, 0x91, 0x2d, 0x9c, 0xc4, 0x37, 0xc4, 0x71, 0x7e, 0x3e, 0x98, 0x8c, 0x83, 0x7c, 0x3a, + 0x6e, 0x8e, 0x47, 0x93, 0xf2, 0x6c, 0x66, 0x37, 0x76, 0x79, 0x56, 0xfc, 0xeb, 0xe4, 0x3e, 0x57, + 0xcf, 0x8f, 0xc5, 0xa5, 0x84, 0xd2, 0x9f, 0x8b, 0xf5, 0xa4, 0x6a, 0x46, 0x87, 0x45, 0x50, 0x85, + 0x3e, 0xea, 0xb4, 0x82, 0x52, 0xb2, 0xf8, 0x3d, 0x2b, 0xe8, 0xd3, 0x61, 0xd1, 0xbf, 0x2d, 0xe8, + 0x77, 0x5a, 0xfd, 0xaa, 0xe0, 0x74, 0xa5, 0x14, 0xfe, 0xf0, 0x37, 0x00, 0x00, 0xff, 0xff, 0x6a, + 0xb2, 0xae, 0x49, 0xea, 0x03, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/media_file_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/media_file_error.pb.go new file mode 100644 index 000000000..1d535b5e8 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/media_file_error.pb.go @@ -0,0 +1,221 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/media_file_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible media file errors. +type MediaFileErrorEnum_MediaFileError int32 + +const ( + // Enum unspecified. + MediaFileErrorEnum_UNSPECIFIED MediaFileErrorEnum_MediaFileError = 0 + // The received error code is not known in this version. + MediaFileErrorEnum_UNKNOWN MediaFileErrorEnum_MediaFileError = 1 + // Cannot create a standard icon type. + MediaFileErrorEnum_CANNOT_CREATE_STANDARD_ICON MediaFileErrorEnum_MediaFileError = 2 + // May only select Standard Icons alone. + MediaFileErrorEnum_CANNOT_SELECT_STANDARD_ICON_WITH_OTHER_TYPES MediaFileErrorEnum_MediaFileError = 3 + // Image contains both a media file ID and data. + MediaFileErrorEnum_CANNOT_SPECIFY_MEDIA_FILE_ID_AND_DATA MediaFileErrorEnum_MediaFileError = 4 + // A media file with given type and reference ID already exists. + MediaFileErrorEnum_DUPLICATE_MEDIA MediaFileErrorEnum_MediaFileError = 5 + // A required field was not specified or is an empty string. + MediaFileErrorEnum_EMPTY_FIELD MediaFileErrorEnum_MediaFileError = 6 + // A media file may only be modified once per call. + MediaFileErrorEnum_RESOURCE_REFERENCED_IN_MULTIPLE_OPS MediaFileErrorEnum_MediaFileError = 7 + // Field is not supported for the media sub type. + MediaFileErrorEnum_FIELD_NOT_SUPPORTED_FOR_MEDIA_SUB_TYPE MediaFileErrorEnum_MediaFileError = 8 + // The media file ID is invalid. + MediaFileErrorEnum_INVALID_MEDIA_FILE_ID MediaFileErrorEnum_MediaFileError = 9 + // The media subtype is invalid. + MediaFileErrorEnum_INVALID_MEDIA_SUB_TYPE MediaFileErrorEnum_MediaFileError = 10 + // The media file type is invalid. + MediaFileErrorEnum_INVALID_MEDIA_FILE_TYPE MediaFileErrorEnum_MediaFileError = 11 + // The mimetype is invalid. + MediaFileErrorEnum_INVALID_MIME_TYPE MediaFileErrorEnum_MediaFileError = 12 + // The media reference ID is invalid. + MediaFileErrorEnum_INVALID_REFERENCE_ID MediaFileErrorEnum_MediaFileError = 13 + // The YouTube video ID is invalid. + MediaFileErrorEnum_INVALID_YOU_TUBE_ID MediaFileErrorEnum_MediaFileError = 14 + // Media file has failed transcoding + MediaFileErrorEnum_MEDIA_FILE_FAILED_TRANSCODING MediaFileErrorEnum_MediaFileError = 15 + // Media file has not been transcoded. + MediaFileErrorEnum_MEDIA_NOT_TRANSCODED MediaFileErrorEnum_MediaFileError = 16 + // The media type does not match the actual media file's type. + MediaFileErrorEnum_MEDIA_TYPE_DOES_NOT_MATCH_MEDIA_FILE_TYPE MediaFileErrorEnum_MediaFileError = 17 + // None of the fields have been specified. + MediaFileErrorEnum_NO_FIELDS_SPECIFIED MediaFileErrorEnum_MediaFileError = 18 + // One of reference ID or media file ID must be specified. + MediaFileErrorEnum_NULL_REFERENCE_ID_AND_MEDIA_ID MediaFileErrorEnum_MediaFileError = 19 + // The string has too many characters. + MediaFileErrorEnum_TOO_LONG MediaFileErrorEnum_MediaFileError = 20 + // The specified type is not supported. + MediaFileErrorEnum_UNSUPPORTED_TYPE MediaFileErrorEnum_MediaFileError = 21 + // YouTube is unavailable for requesting video data. + MediaFileErrorEnum_YOU_TUBE_SERVICE_UNAVAILABLE MediaFileErrorEnum_MediaFileError = 22 + // The YouTube video has a non positive duration. + MediaFileErrorEnum_YOU_TUBE_VIDEO_HAS_NON_POSITIVE_DURATION MediaFileErrorEnum_MediaFileError = 23 + // The YouTube video ID is syntactically valid but the video was not found. + MediaFileErrorEnum_YOU_TUBE_VIDEO_NOT_FOUND MediaFileErrorEnum_MediaFileError = 24 +) + +var MediaFileErrorEnum_MediaFileError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "CANNOT_CREATE_STANDARD_ICON", + 3: "CANNOT_SELECT_STANDARD_ICON_WITH_OTHER_TYPES", + 4: "CANNOT_SPECIFY_MEDIA_FILE_ID_AND_DATA", + 5: "DUPLICATE_MEDIA", + 6: "EMPTY_FIELD", + 7: "RESOURCE_REFERENCED_IN_MULTIPLE_OPS", + 8: "FIELD_NOT_SUPPORTED_FOR_MEDIA_SUB_TYPE", + 9: "INVALID_MEDIA_FILE_ID", + 10: "INVALID_MEDIA_SUB_TYPE", + 11: "INVALID_MEDIA_FILE_TYPE", + 12: "INVALID_MIME_TYPE", + 13: "INVALID_REFERENCE_ID", + 14: "INVALID_YOU_TUBE_ID", + 15: "MEDIA_FILE_FAILED_TRANSCODING", + 16: "MEDIA_NOT_TRANSCODED", + 17: "MEDIA_TYPE_DOES_NOT_MATCH_MEDIA_FILE_TYPE", + 18: "NO_FIELDS_SPECIFIED", + 19: "NULL_REFERENCE_ID_AND_MEDIA_ID", + 20: "TOO_LONG", + 21: "UNSUPPORTED_TYPE", + 22: "YOU_TUBE_SERVICE_UNAVAILABLE", + 23: "YOU_TUBE_VIDEO_HAS_NON_POSITIVE_DURATION", + 24: "YOU_TUBE_VIDEO_NOT_FOUND", +} +var MediaFileErrorEnum_MediaFileError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "CANNOT_CREATE_STANDARD_ICON": 2, + "CANNOT_SELECT_STANDARD_ICON_WITH_OTHER_TYPES": 3, + "CANNOT_SPECIFY_MEDIA_FILE_ID_AND_DATA": 4, + "DUPLICATE_MEDIA": 5, + "EMPTY_FIELD": 6, + "RESOURCE_REFERENCED_IN_MULTIPLE_OPS": 7, + "FIELD_NOT_SUPPORTED_FOR_MEDIA_SUB_TYPE": 8, + "INVALID_MEDIA_FILE_ID": 9, + "INVALID_MEDIA_SUB_TYPE": 10, + "INVALID_MEDIA_FILE_TYPE": 11, + "INVALID_MIME_TYPE": 12, + "INVALID_REFERENCE_ID": 13, + "INVALID_YOU_TUBE_ID": 14, + "MEDIA_FILE_FAILED_TRANSCODING": 15, + "MEDIA_NOT_TRANSCODED": 16, + "MEDIA_TYPE_DOES_NOT_MATCH_MEDIA_FILE_TYPE": 17, + "NO_FIELDS_SPECIFIED": 18, + "NULL_REFERENCE_ID_AND_MEDIA_ID": 19, + "TOO_LONG": 20, + "UNSUPPORTED_TYPE": 21, + "YOU_TUBE_SERVICE_UNAVAILABLE": 22, + "YOU_TUBE_VIDEO_HAS_NON_POSITIVE_DURATION": 23, + "YOU_TUBE_VIDEO_NOT_FOUND": 24, +} + +func (x MediaFileErrorEnum_MediaFileError) String() string { + return proto.EnumName(MediaFileErrorEnum_MediaFileError_name, int32(x)) +} +func (MediaFileErrorEnum_MediaFileError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_media_file_error_84addac25c50f409, []int{0, 0} +} + +// Container for enum describing possible media file errors. +type MediaFileErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MediaFileErrorEnum) Reset() { *m = MediaFileErrorEnum{} } +func (m *MediaFileErrorEnum) String() string { return proto.CompactTextString(m) } +func (*MediaFileErrorEnum) ProtoMessage() {} +func (*MediaFileErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_media_file_error_84addac25c50f409, []int{0} +} +func (m *MediaFileErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MediaFileErrorEnum.Unmarshal(m, b) +} +func (m *MediaFileErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MediaFileErrorEnum.Marshal(b, m, deterministic) +} +func (dst *MediaFileErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_MediaFileErrorEnum.Merge(dst, src) +} +func (m *MediaFileErrorEnum) XXX_Size() int { + return xxx_messageInfo_MediaFileErrorEnum.Size(m) +} +func (m *MediaFileErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_MediaFileErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_MediaFileErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*MediaFileErrorEnum)(nil), "google.ads.googleads.v0.errors.MediaFileErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.MediaFileErrorEnum_MediaFileError", MediaFileErrorEnum_MediaFileError_name, MediaFileErrorEnum_MediaFileError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/media_file_error.proto", fileDescriptor_media_file_error_84addac25c50f409) +} + +var fileDescriptor_media_file_error_84addac25c50f409 = []byte{ + // 632 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x53, 0xdd, 0x6e, 0xd3, 0x4c, + 0x10, 0xfd, 0xda, 0x7e, 0xa4, 0x65, 0x5b, 0xda, 0xed, 0xa6, 0x7f, 0xd0, 0x52, 0x20, 0x88, 0x9f, + 0xa2, 0xe2, 0x44, 0x42, 0x5c, 0x71, 0xb5, 0xf1, 0x8e, 0x93, 0x15, 0xce, 0xae, 0x65, 0xaf, 0x53, + 0x05, 0x45, 0x1a, 0x05, 0x12, 0xa2, 0x48, 0x69, 0x5d, 0x25, 0xd0, 0x6b, 0xde, 0x82, 0x7b, 0x2e, + 0x79, 0x13, 0x78, 0x2a, 0xb4, 0xeb, 0xc4, 0x25, 0xfc, 0x5d, 0x65, 0x34, 0xe7, 0x9c, 0x39, 0x67, + 0x36, 0x1e, 0xf2, 0x72, 0x98, 0x65, 0xc3, 0xf1, 0xa0, 0xda, 0xeb, 0x4f, 0xab, 0x79, 0x69, 0xab, + 0xab, 0x5a, 0x75, 0x30, 0x99, 0x64, 0x93, 0x69, 0xf5, 0x7c, 0xd0, 0x1f, 0xf5, 0xf0, 0xfd, 0x68, + 0x3c, 0x40, 0xd7, 0xf1, 0x2e, 0x27, 0xd9, 0x87, 0x8c, 0x1d, 0xe7, 0x5c, 0xaf, 0xd7, 0x9f, 0x7a, + 0x85, 0xcc, 0xbb, 0xaa, 0x79, 0xb9, 0xac, 0xf2, 0xb9, 0x44, 0x58, 0xcb, 0x4a, 0x83, 0xd1, 0x78, + 0x00, 0xb6, 0x07, 0x17, 0x1f, 0xcf, 0x2b, 0x9f, 0x4a, 0x64, 0x73, 0xb1, 0xcd, 0xb6, 0xc8, 0x7a, + 0xaa, 0x92, 0x08, 0x7c, 0x19, 0x48, 0x10, 0xf4, 0x3f, 0xb6, 0x4e, 0x56, 0x53, 0xf5, 0x5a, 0xe9, + 0x33, 0x45, 0x97, 0xd8, 0x3d, 0x72, 0xe8, 0x73, 0xa5, 0xb4, 0x41, 0x3f, 0x06, 0x6e, 0x00, 0x13, + 0xc3, 0x95, 0xe0, 0xb1, 0x40, 0xe9, 0x6b, 0x45, 0x97, 0x59, 0x8d, 0x9c, 0xce, 0x08, 0x09, 0x84, + 0xe0, 0x9b, 0x45, 0x02, 0x9e, 0x49, 0xd3, 0x44, 0x6d, 0x9a, 0x10, 0xa3, 0xe9, 0x44, 0x90, 0xd0, + 0x15, 0x76, 0x42, 0x1e, 0xcd, 0x15, 0xce, 0xb5, 0x83, 0x2d, 0x10, 0x92, 0x63, 0x20, 0x43, 0x40, + 0x29, 0x90, 0x2b, 0x81, 0x82, 0x1b, 0x4e, 0xff, 0x67, 0x65, 0xb2, 0x25, 0xd2, 0x28, 0x94, 0xbe, + 0x75, 0x76, 0x2c, 0x7a, 0xc3, 0x06, 0x86, 0x56, 0x64, 0x3a, 0x18, 0x48, 0x08, 0x05, 0x2d, 0xb1, + 0x27, 0xe4, 0x61, 0x0c, 0x89, 0x4e, 0x63, 0x1f, 0x30, 0x86, 0x00, 0x62, 0x50, 0x3e, 0x08, 0x94, + 0x0a, 0x5b, 0x69, 0x68, 0x64, 0x14, 0x02, 0xea, 0x28, 0xa1, 0xab, 0xec, 0x19, 0x79, 0xec, 0x34, + 0xe8, 0xcc, 0xd3, 0x28, 0xd2, 0xb1, 0x01, 0x81, 0x81, 0x8e, 0x67, 0x11, 0x92, 0xb4, 0xee, 0x62, + 0xd2, 0x35, 0x76, 0x9b, 0xec, 0x4a, 0xd5, 0xe6, 0xa1, 0x14, 0x8b, 0xf1, 0xe8, 0x4d, 0x76, 0x87, + 0xec, 0x2d, 0x42, 0x85, 0x8c, 0xb0, 0x43, 0xb2, 0xff, 0x07, 0x99, 0x03, 0xd7, 0xd9, 0x2e, 0xd9, + 0x2e, 0x40, 0xd9, 0x9a, 0xb5, 0x37, 0xd8, 0x01, 0xd9, 0x99, 0xb7, 0x8b, 0xf8, 0xd6, 0xe9, 0x16, + 0xdb, 0x27, 0xe5, 0x39, 0xd2, 0xd1, 0x29, 0x9a, 0xb4, 0xee, 0x80, 0x4d, 0xf6, 0x80, 0xdc, 0xfd, + 0x69, 0x7c, 0xc0, 0x65, 0x08, 0x02, 0x4d, 0xcc, 0x55, 0xe2, 0x6b, 0x21, 0x55, 0x83, 0x6e, 0xd9, + 0xa9, 0x39, 0xc5, 0x2e, 0x3b, 0x87, 0x40, 0x50, 0xca, 0x9e, 0x93, 0x93, 0x1c, 0xb1, 0xfe, 0x28, + 0x34, 0x24, 0x8e, 0xd3, 0xe2, 0xc6, 0x6f, 0xfe, 0x96, 0x7a, 0xdb, 0x86, 0x50, 0x3a, 0x7f, 0xec, + 0x04, 0xaf, 0x3f, 0x14, 0xc6, 0x2a, 0xe4, 0x58, 0xa5, 0x61, 0xb8, 0x10, 0xda, 0xfd, 0x7b, 0xf9, + 0x0c, 0x29, 0x68, 0x99, 0x6d, 0x90, 0x35, 0xa3, 0x35, 0x86, 0x5a, 0x35, 0xe8, 0x0e, 0xdb, 0x21, + 0x34, 0x55, 0xd7, 0x0f, 0xef, 0x0c, 0x76, 0xd9, 0x7d, 0x72, 0x54, 0x6c, 0x97, 0x40, 0xdc, 0x96, + 0x3e, 0x60, 0xaa, 0x78, 0x9b, 0xcb, 0x90, 0xd7, 0x43, 0xa0, 0x7b, 0xec, 0x94, 0x3c, 0x2d, 0x18, + 0x6d, 0x29, 0x40, 0x63, 0x93, 0xdb, 0xd0, 0x0a, 0x23, 0x9d, 0x48, 0x23, 0xdb, 0x80, 0x22, 0x8d, + 0xb9, 0x91, 0x5a, 0xd1, 0x7d, 0x76, 0x44, 0x0e, 0x7e, 0x61, 0xdb, 0xf5, 0x02, 0x9d, 0x2a, 0x41, + 0x0f, 0xea, 0xdf, 0x96, 0x48, 0xe5, 0x5d, 0x76, 0xee, 0xfd, 0xfb, 0x80, 0xea, 0xe5, 0xc5, 0x33, + 0x89, 0xec, 0xd5, 0x45, 0x4b, 0x6f, 0xc4, 0x4c, 0x36, 0xcc, 0xc6, 0xbd, 0x8b, 0xa1, 0x97, 0x4d, + 0x86, 0xd5, 0xe1, 0xe0, 0xc2, 0xdd, 0xe4, 0xfc, 0x7c, 0x2f, 0x47, 0xd3, 0xbf, 0x5d, 0xf3, 0xab, + 0xfc, 0xe7, 0xcb, 0xf2, 0x4a, 0x83, 0xf3, 0xaf, 0xcb, 0xc7, 0x8d, 0x7c, 0x18, 0xef, 0x4f, 0xbd, + 0xbc, 0xb4, 0x55, 0xbb, 0xe6, 0x39, 0xcb, 0xe9, 0xf7, 0x39, 0xa1, 0xcb, 0xfb, 0xd3, 0x6e, 0x41, + 0xe8, 0xb6, 0x6b, 0xdd, 0x9c, 0xf0, 0xb6, 0xe4, 0x8c, 0x5f, 0xfc, 0x08, 0x00, 0x00, 0xff, 0xff, + 0x5b, 0x29, 0xd6, 0xd9, 0x45, 0x04, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/multiplier_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/multiplier_error.pb.go new file mode 100644 index 000000000..2802c3c83 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/multiplier_error.pb.go @@ -0,0 +1,169 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/multiplier_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible multiplier errors. +type MultiplierErrorEnum_MultiplierError int32 + +const ( + // Enum unspecified. + MultiplierErrorEnum_UNSPECIFIED MultiplierErrorEnum_MultiplierError = 0 + // The received error code is not known in this version. + MultiplierErrorEnum_UNKNOWN MultiplierErrorEnum_MultiplierError = 1 + // Multiplier value is too high + MultiplierErrorEnum_MULTIPLIER_TOO_HIGH MultiplierErrorEnum_MultiplierError = 2 + // Multiplier value is too low + MultiplierErrorEnum_MULTIPLIER_TOO_LOW MultiplierErrorEnum_MultiplierError = 3 + // Too many fractional digits + MultiplierErrorEnum_TOO_MANY_FRACTIONAL_DIGITS MultiplierErrorEnum_MultiplierError = 4 + // A multiplier cannot be set for this bidding strategy + MultiplierErrorEnum_MULTIPLIER_NOT_ALLOWED_FOR_BIDDING_STRATEGY MultiplierErrorEnum_MultiplierError = 5 + // A multiplier cannot be set when there is no base bid (e.g., content max + // cpc) + MultiplierErrorEnum_MULTIPLIER_NOT_ALLOWED_WHEN_BASE_BID_IS_MISSING MultiplierErrorEnum_MultiplierError = 6 + // A bid multiplier must be specified + MultiplierErrorEnum_NO_MULTIPLIER_SPECIFIED MultiplierErrorEnum_MultiplierError = 7 + // Multiplier causes bid to exceed daily budget + MultiplierErrorEnum_MULTIPLIER_CAUSES_BID_TO_EXCEED_DAILY_BUDGET MultiplierErrorEnum_MultiplierError = 8 + // Multiplier causes bid to exceed monthly budget + MultiplierErrorEnum_MULTIPLIER_CAUSES_BID_TO_EXCEED_MONTHLY_BUDGET MultiplierErrorEnum_MultiplierError = 9 + // Multiplier causes bid to exceed custom budget + MultiplierErrorEnum_MULTIPLIER_CAUSES_BID_TO_EXCEED_CUSTOM_BUDGET MultiplierErrorEnum_MultiplierError = 10 + // Multiplier causes bid to exceed maximum allowed bid + MultiplierErrorEnum_MULTIPLIER_CAUSES_BID_TO_EXCEED_MAX_ALLOWED_BID MultiplierErrorEnum_MultiplierError = 11 + // Multiplier causes bid to become less than the minimum bid allowed + MultiplierErrorEnum_BID_LESS_THAN_MIN_ALLOWED_BID_WITH_MULTIPLIER MultiplierErrorEnum_MultiplierError = 12 + // Multiplier type (cpc vs. cpm) needs to match campaign's bidding strategy + MultiplierErrorEnum_MULTIPLIER_AND_BIDDING_STRATEGY_TYPE_MISMATCH MultiplierErrorEnum_MultiplierError = 13 +) + +var MultiplierErrorEnum_MultiplierError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "MULTIPLIER_TOO_HIGH", + 3: "MULTIPLIER_TOO_LOW", + 4: "TOO_MANY_FRACTIONAL_DIGITS", + 5: "MULTIPLIER_NOT_ALLOWED_FOR_BIDDING_STRATEGY", + 6: "MULTIPLIER_NOT_ALLOWED_WHEN_BASE_BID_IS_MISSING", + 7: "NO_MULTIPLIER_SPECIFIED", + 8: "MULTIPLIER_CAUSES_BID_TO_EXCEED_DAILY_BUDGET", + 9: "MULTIPLIER_CAUSES_BID_TO_EXCEED_MONTHLY_BUDGET", + 10: "MULTIPLIER_CAUSES_BID_TO_EXCEED_CUSTOM_BUDGET", + 11: "MULTIPLIER_CAUSES_BID_TO_EXCEED_MAX_ALLOWED_BID", + 12: "BID_LESS_THAN_MIN_ALLOWED_BID_WITH_MULTIPLIER", + 13: "MULTIPLIER_AND_BIDDING_STRATEGY_TYPE_MISMATCH", +} +var MultiplierErrorEnum_MultiplierError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "MULTIPLIER_TOO_HIGH": 2, + "MULTIPLIER_TOO_LOW": 3, + "TOO_MANY_FRACTIONAL_DIGITS": 4, + "MULTIPLIER_NOT_ALLOWED_FOR_BIDDING_STRATEGY": 5, + "MULTIPLIER_NOT_ALLOWED_WHEN_BASE_BID_IS_MISSING": 6, + "NO_MULTIPLIER_SPECIFIED": 7, + "MULTIPLIER_CAUSES_BID_TO_EXCEED_DAILY_BUDGET": 8, + "MULTIPLIER_CAUSES_BID_TO_EXCEED_MONTHLY_BUDGET": 9, + "MULTIPLIER_CAUSES_BID_TO_EXCEED_CUSTOM_BUDGET": 10, + "MULTIPLIER_CAUSES_BID_TO_EXCEED_MAX_ALLOWED_BID": 11, + "BID_LESS_THAN_MIN_ALLOWED_BID_WITH_MULTIPLIER": 12, + "MULTIPLIER_AND_BIDDING_STRATEGY_TYPE_MISMATCH": 13, +} + +func (x MultiplierErrorEnum_MultiplierError) String() string { + return proto.EnumName(MultiplierErrorEnum_MultiplierError_name, int32(x)) +} +func (MultiplierErrorEnum_MultiplierError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_multiplier_error_b4af260a1d032c63, []int{0, 0} +} + +// Container for enum describing possible multiplier errors. +type MultiplierErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MultiplierErrorEnum) Reset() { *m = MultiplierErrorEnum{} } +func (m *MultiplierErrorEnum) String() string { return proto.CompactTextString(m) } +func (*MultiplierErrorEnum) ProtoMessage() {} +func (*MultiplierErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_multiplier_error_b4af260a1d032c63, []int{0} +} +func (m *MultiplierErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MultiplierErrorEnum.Unmarshal(m, b) +} +func (m *MultiplierErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MultiplierErrorEnum.Marshal(b, m, deterministic) +} +func (dst *MultiplierErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_MultiplierErrorEnum.Merge(dst, src) +} +func (m *MultiplierErrorEnum) XXX_Size() int { + return xxx_messageInfo_MultiplierErrorEnum.Size(m) +} +func (m *MultiplierErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_MultiplierErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_MultiplierErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*MultiplierErrorEnum)(nil), "google.ads.googleads.v0.errors.MultiplierErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.MultiplierErrorEnum_MultiplierError", MultiplierErrorEnum_MultiplierError_name, MultiplierErrorEnum_MultiplierError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/multiplier_error.proto", fileDescriptor_multiplier_error_b4af260a1d032c63) +} + +var fileDescriptor_multiplier_error_b4af260a1d032c63 = []byte{ + // 481 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x93, 0xd1, 0x6e, 0xd3, 0x30, + 0x14, 0x86, 0x59, 0x57, 0x36, 0x70, 0x41, 0xb3, 0x3c, 0xc4, 0x24, 0x90, 0x7a, 0xd1, 0x5b, 0xc0, + 0x29, 0x4c, 0x5c, 0x71, 0xe5, 0xc4, 0x6e, 0x62, 0x91, 0xd8, 0x55, 0xed, 0xac, 0x2b, 0xaa, 0x74, + 0x54, 0x68, 0x15, 0x55, 0x6a, 0x9b, 0x2a, 0xd9, 0xf6, 0x40, 0x5c, 0xf2, 0x02, 0xbc, 0xc3, 0x6e, + 0x78, 0x25, 0x94, 0x84, 0x76, 0x51, 0x60, 0xec, 0x2a, 0x27, 0xc7, 0xff, 0xe7, 0x3f, 0xe7, 0xe8, + 0x0f, 0xfa, 0x98, 0xa4, 0x69, 0xb2, 0x5a, 0x38, 0xb3, 0x79, 0xee, 0x54, 0x65, 0x51, 0xdd, 0xf4, + 0x9d, 0x45, 0x96, 0xa5, 0x59, 0xee, 0xac, 0xaf, 0x57, 0x57, 0xcb, 0xed, 0x6a, 0xb9, 0xc8, 0xa0, + 0xec, 0xd0, 0x6d, 0x96, 0x5e, 0xa5, 0xa4, 0x5b, 0x69, 0xe9, 0x6c, 0x9e, 0xd3, 0x3d, 0x46, 0x6f, + 0xfa, 0xb4, 0xc2, 0x7a, 0xbf, 0xda, 0xe8, 0x34, 0xda, 0xa3, 0xa2, 0x68, 0x8a, 0xcd, 0xf5, 0xba, + 0xf7, 0xb3, 0x8d, 0x4e, 0x1a, 0x7d, 0x72, 0x82, 0x3a, 0xb1, 0x32, 0x43, 0xe1, 0xc9, 0x81, 0x14, + 0x1c, 0x3f, 0x22, 0x1d, 0x74, 0x1c, 0xab, 0xcf, 0x4a, 0x8f, 0x15, 0x3e, 0x20, 0x67, 0xe8, 0x34, + 0x8a, 0x43, 0x2b, 0x87, 0xa1, 0x14, 0x23, 0xb0, 0x5a, 0x43, 0x20, 0xfd, 0x00, 0xb7, 0xc8, 0x4b, + 0x44, 0x1a, 0x07, 0xa1, 0x1e, 0xe3, 0x43, 0xd2, 0x45, 0xaf, 0x8a, 0x97, 0x88, 0xa9, 0x09, 0x0c, + 0x46, 0xcc, 0xb3, 0x52, 0x2b, 0x16, 0x02, 0x97, 0xbe, 0xb4, 0x06, 0xb7, 0x89, 0x83, 0xde, 0xd4, + 0x38, 0xa5, 0x2d, 0xb0, 0x30, 0xd4, 0x63, 0xc1, 0x61, 0xa0, 0x47, 0xe0, 0x4a, 0xce, 0xa5, 0xf2, + 0xc1, 0xd8, 0x11, 0xb3, 0xc2, 0x9f, 0xe0, 0xc7, 0xe4, 0x1c, 0x39, 0xf7, 0x00, 0xe3, 0x40, 0x28, + 0x70, 0x99, 0x11, 0x05, 0x06, 0xd2, 0x40, 0x24, 0x8d, 0x91, 0xca, 0xc7, 0x47, 0xe4, 0x35, 0x3a, + 0x53, 0x1a, 0x6a, 0xdc, 0xdd, 0x80, 0xc7, 0xa4, 0x8f, 0xde, 0xd6, 0x4e, 0x3c, 0x16, 0x1b, 0x61, + 0xca, 0x2b, 0xac, 0x06, 0x71, 0xe9, 0x09, 0xc1, 0x81, 0x33, 0x19, 0x4e, 0xc0, 0x8d, 0xb9, 0x2f, + 0x2c, 0x7e, 0x42, 0x3e, 0x20, 0xfa, 0x10, 0x11, 0x69, 0x65, 0x83, 0x3b, 0xe6, 0x29, 0x79, 0x8f, + 0xde, 0x3d, 0xc4, 0x78, 0xb1, 0xb1, 0x3a, 0xda, 0x21, 0xa8, 0x31, 0xea, 0xbf, 0x6d, 0xd8, 0xe5, + 0x7e, 0x7e, 0x57, 0x72, 0xdc, 0x29, 0x7c, 0x0a, 0x49, 0x28, 0x8c, 0x01, 0x1b, 0x30, 0x05, 0x91, + 0x54, 0x75, 0x09, 0x8c, 0xa5, 0x0d, 0x6a, 0xab, 0xc0, 0xcf, 0x1a, 0x9f, 0xc6, 0x14, 0xff, 0x6b, + 0xef, 0x60, 0x27, 0x43, 0x51, 0xec, 0x33, 0x62, 0xd6, 0x0b, 0xf0, 0x73, 0xf7, 0xf6, 0x00, 0xf5, + 0xbe, 0xa5, 0x6b, 0xfa, 0xff, 0xe0, 0xb9, 0x2f, 0x1a, 0xe9, 0x1a, 0x16, 0x71, 0x1d, 0x1e, 0x7c, + 0xe1, 0x7f, 0xb8, 0x24, 0x5d, 0xcd, 0x36, 0x09, 0x4d, 0xb3, 0xc4, 0x49, 0x16, 0x9b, 0x32, 0xcc, + 0xbb, 0xdc, 0x6f, 0x97, 0xf9, 0x7d, 0xbf, 0xc1, 0xa7, 0xea, 0xf1, 0xbd, 0x75, 0xe8, 0x33, 0xf6, + 0xa3, 0xd5, 0xf5, 0xab, 0xcb, 0xd8, 0x3c, 0xa7, 0x55, 0x59, 0x54, 0x17, 0x7d, 0x5a, 0x5a, 0xe6, + 0xb7, 0x3b, 0xc1, 0x94, 0xcd, 0xf3, 0xe9, 0x5e, 0x30, 0xbd, 0xe8, 0x4f, 0x2b, 0xc1, 0xd7, 0xa3, + 0xd2, 0xf8, 0xfc, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0x91, 0xa1, 0x55, 0x16, 0x7e, 0x03, 0x00, + 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/mutate_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/mutate_error.pb.go new file mode 100644 index 000000000..d75e3df22 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/mutate_error.pb.go @@ -0,0 +1,127 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/mutate_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible mutate errors. +type MutateErrorEnum_MutateError int32 + +const ( + // Enum unspecified. + MutateErrorEnum_UNSPECIFIED MutateErrorEnum_MutateError = 0 + // The received error code is not known in this version. + MutateErrorEnum_UNKNOWN MutateErrorEnum_MutateError = 1 + // Requested resource was not found. + MutateErrorEnum_RESOURCE_NOT_FOUND MutateErrorEnum_MutateError = 3 + // Cannot mutate the same resource twice in one request. + MutateErrorEnum_ID_EXISTS_IN_MULTIPLE_MUTATES MutateErrorEnum_MutateError = 7 + // The field's contents don't match another field that represents the same + // data. + MutateErrorEnum_INCONSISTENT_FIELD_VALUES MutateErrorEnum_MutateError = 8 + // Mutates are not allowed for the requested resource. + MutateErrorEnum_MUTATE_NOT_ALLOWED MutateErrorEnum_MutateError = 9 +) + +var MutateErrorEnum_MutateError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 3: "RESOURCE_NOT_FOUND", + 7: "ID_EXISTS_IN_MULTIPLE_MUTATES", + 8: "INCONSISTENT_FIELD_VALUES", + 9: "MUTATE_NOT_ALLOWED", +} +var MutateErrorEnum_MutateError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "RESOURCE_NOT_FOUND": 3, + "ID_EXISTS_IN_MULTIPLE_MUTATES": 7, + "INCONSISTENT_FIELD_VALUES": 8, + "MUTATE_NOT_ALLOWED": 9, +} + +func (x MutateErrorEnum_MutateError) String() string { + return proto.EnumName(MutateErrorEnum_MutateError_name, int32(x)) +} +func (MutateErrorEnum_MutateError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_mutate_error_662b71f580e25d75, []int{0, 0} +} + +// Container for enum describing possible mutate errors. +type MutateErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateErrorEnum) Reset() { *m = MutateErrorEnum{} } +func (m *MutateErrorEnum) String() string { return proto.CompactTextString(m) } +func (*MutateErrorEnum) ProtoMessage() {} +func (*MutateErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_mutate_error_662b71f580e25d75, []int{0} +} +func (m *MutateErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateErrorEnum.Unmarshal(m, b) +} +func (m *MutateErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateErrorEnum.Marshal(b, m, deterministic) +} +func (dst *MutateErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateErrorEnum.Merge(dst, src) +} +func (m *MutateErrorEnum) XXX_Size() int { + return xxx_messageInfo_MutateErrorEnum.Size(m) +} +func (m *MutateErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_MutateErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*MutateErrorEnum)(nil), "google.ads.googleads.v0.errors.MutateErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.MutateErrorEnum_MutateError", MutateErrorEnum_MutateError_name, MutateErrorEnum_MutateError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/mutate_error.proto", fileDescriptor_mutate_error_662b71f580e25d75) +} + +var fileDescriptor_mutate_error_662b71f580e25d75 = []byte{ + // 329 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0xb1, 0x6e, 0xea, 0x30, + 0x18, 0x85, 0x6f, 0x40, 0xba, 0xdc, 0x6b, 0x06, 0x2c, 0x0f, 0x95, 0x3a, 0x80, 0x54, 0x1e, 0xc0, + 0x49, 0xd5, 0xb1, 0x93, 0x21, 0x06, 0x59, 0x0d, 0x4e, 0x84, 0x6d, 0xa8, 0xaa, 0x48, 0x56, 0xda, + 0x44, 0x51, 0x25, 0xc0, 0x28, 0x06, 0xde, 0xa6, 0x4b, 0xc7, 0x6e, 0x7d, 0x89, 0x0e, 0x7d, 0xaa, + 0x2a, 0x71, 0x41, 0x2c, 0xed, 0xe4, 0xe3, 0x5f, 0xdf, 0x39, 0xbf, 0xfe, 0x03, 0xae, 0x4b, 0x63, + 0xca, 0x55, 0xe1, 0x67, 0xb9, 0xf5, 0x9d, 0xac, 0xd5, 0x21, 0xf0, 0x8b, 0xaa, 0x32, 0x95, 0xf5, + 0xd7, 0xfb, 0x5d, 0xb6, 0x2b, 0x74, 0xf3, 0xc3, 0xdb, 0xca, 0xec, 0x0c, 0x1a, 0x38, 0x0e, 0x67, + 0xb9, 0xc5, 0x27, 0x0b, 0x3e, 0x04, 0xd8, 0x59, 0x86, 0xef, 0x1e, 0xe8, 0xcd, 0x1a, 0x1b, 0xad, + 0x07, 0x74, 0xb3, 0x5f, 0x0f, 0x5f, 0x3c, 0xd0, 0x3d, 0x9b, 0xa1, 0x1e, 0xe8, 0x2a, 0x2e, 0x12, + 0x3a, 0x66, 0x13, 0x46, 0x43, 0xf8, 0x07, 0x75, 0x41, 0x47, 0xf1, 0x3b, 0x1e, 0x2f, 0x39, 0xf4, + 0xd0, 0x05, 0x40, 0x73, 0x2a, 0x62, 0x35, 0x1f, 0x53, 0xcd, 0x63, 0xa9, 0x27, 0xb1, 0xe2, 0x21, + 0x6c, 0xa3, 0x2b, 0xd0, 0x67, 0xa1, 0xa6, 0xf7, 0x4c, 0x48, 0xa1, 0x19, 0xd7, 0x33, 0x15, 0x49, + 0x96, 0x44, 0x54, 0xcf, 0x94, 0x24, 0x92, 0x0a, 0xd8, 0x41, 0x7d, 0x70, 0xc9, 0xf8, 0x38, 0xe6, + 0x82, 0x09, 0x49, 0xb9, 0xd4, 0x13, 0x46, 0xa3, 0x50, 0x2f, 0x48, 0xa4, 0xa8, 0x80, 0xff, 0xea, + 0x64, 0xc7, 0x36, 0xb9, 0x24, 0x8a, 0xe2, 0x25, 0x0d, 0xe1, 0xff, 0xd1, 0x87, 0x07, 0x86, 0x4f, + 0x66, 0x8d, 0x7f, 0x3f, 0x6d, 0x04, 0xcf, 0x6e, 0x48, 0xea, 0x32, 0x12, 0xef, 0x21, 0xfc, 0xf6, + 0x94, 0x66, 0x95, 0x6d, 0x4a, 0x6c, 0xaa, 0xd2, 0x2f, 0x8b, 0x4d, 0x53, 0xd5, 0xb1, 0xd1, 0xed, + 0xb3, 0xfd, 0xa9, 0xe0, 0x5b, 0xf7, 0xbc, 0xb6, 0xda, 0x53, 0x42, 0xde, 0x5a, 0x83, 0xa9, 0x0b, + 0x23, 0xb9, 0xc5, 0x4e, 0xd6, 0x6a, 0x11, 0xe0, 0x66, 0xa5, 0xfd, 0x3c, 0x02, 0x29, 0xc9, 0x6d, + 0x7a, 0x02, 0xd2, 0x45, 0x90, 0x3a, 0xe0, 0xf1, 0x6f, 0xb3, 0xf8, 0xe6, 0x2b, 0x00, 0x00, 0xff, + 0xff, 0x79, 0xae, 0x21, 0x09, 0xd8, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/new_resource_creation_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/new_resource_creation_error.pb.go new file mode 100644 index 000000000..4da2a4516 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/new_resource_creation_error.pb.go @@ -0,0 +1,123 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/new_resource_creation_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible new resource creation errors. +type NewResourceCreationErrorEnum_NewResourceCreationError int32 + +const ( + // Enum unspecified. + NewResourceCreationErrorEnum_UNSPECIFIED NewResourceCreationErrorEnum_NewResourceCreationError = 0 + // The received error code is not known in this version. + NewResourceCreationErrorEnum_UNKNOWN NewResourceCreationErrorEnum_NewResourceCreationError = 1 + // Do not set the id field while creating new resources. + NewResourceCreationErrorEnum_CANNOT_SET_ID_FOR_CREATE NewResourceCreationErrorEnum_NewResourceCreationError = 2 + // Creating more than one resource with the same temp ID is not allowed. + NewResourceCreationErrorEnum_DUPLICATE_TEMP_IDS NewResourceCreationErrorEnum_NewResourceCreationError = 3 + // Parent resource with specified temp ID failed validation, so no + // validation will be done for this child resource. + NewResourceCreationErrorEnum_TEMP_ID_RESOURCE_HAD_ERRORS NewResourceCreationErrorEnum_NewResourceCreationError = 4 +) + +var NewResourceCreationErrorEnum_NewResourceCreationError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "CANNOT_SET_ID_FOR_CREATE", + 3: "DUPLICATE_TEMP_IDS", + 4: "TEMP_ID_RESOURCE_HAD_ERRORS", +} +var NewResourceCreationErrorEnum_NewResourceCreationError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "CANNOT_SET_ID_FOR_CREATE": 2, + "DUPLICATE_TEMP_IDS": 3, + "TEMP_ID_RESOURCE_HAD_ERRORS": 4, +} + +func (x NewResourceCreationErrorEnum_NewResourceCreationError) String() string { + return proto.EnumName(NewResourceCreationErrorEnum_NewResourceCreationError_name, int32(x)) +} +func (NewResourceCreationErrorEnum_NewResourceCreationError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_new_resource_creation_error_1adcb44311ee3769, []int{0, 0} +} + +// Container for enum describing possible new resource creation errors. +type NewResourceCreationErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NewResourceCreationErrorEnum) Reset() { *m = NewResourceCreationErrorEnum{} } +func (m *NewResourceCreationErrorEnum) String() string { return proto.CompactTextString(m) } +func (*NewResourceCreationErrorEnum) ProtoMessage() {} +func (*NewResourceCreationErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_new_resource_creation_error_1adcb44311ee3769, []int{0} +} +func (m *NewResourceCreationErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NewResourceCreationErrorEnum.Unmarshal(m, b) +} +func (m *NewResourceCreationErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NewResourceCreationErrorEnum.Marshal(b, m, deterministic) +} +func (dst *NewResourceCreationErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_NewResourceCreationErrorEnum.Merge(dst, src) +} +func (m *NewResourceCreationErrorEnum) XXX_Size() int { + return xxx_messageInfo_NewResourceCreationErrorEnum.Size(m) +} +func (m *NewResourceCreationErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_NewResourceCreationErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_NewResourceCreationErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*NewResourceCreationErrorEnum)(nil), "google.ads.googleads.v0.errors.NewResourceCreationErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.NewResourceCreationErrorEnum_NewResourceCreationError", NewResourceCreationErrorEnum_NewResourceCreationError_name, NewResourceCreationErrorEnum_NewResourceCreationError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/new_resource_creation_error.proto", fileDescriptor_new_resource_creation_error_1adcb44311ee3769) +} + +var fileDescriptor_new_resource_creation_error_1adcb44311ee3769 = []byte{ + // 329 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0x4f, 0x4b, 0xfb, 0x30, + 0x1c, 0xc6, 0x7f, 0xdd, 0x7e, 0x28, 0x64, 0x07, 0x4b, 0x0e, 0x32, 0x70, 0x4e, 0xd8, 0x0b, 0x48, + 0x0b, 0x1e, 0xbd, 0x98, 0xb5, 0xd9, 0x2c, 0x6a, 0x5a, 0xd2, 0x76, 0x82, 0x14, 0x42, 0x5d, 0x43, + 0x19, 0x6c, 0xcd, 0x48, 0xf6, 0xe7, 0x65, 0xf8, 0x1e, 0x3c, 0x7a, 0xf2, 0x75, 0x78, 0xf5, 0x0d, + 0x49, 0x9b, 0x6e, 0xb7, 0x79, 0xca, 0x13, 0xbe, 0x4f, 0x3e, 0x4f, 0xbe, 0x0f, 0xb8, 0x2f, 0xa5, + 0x2c, 0x97, 0xc2, 0xc9, 0x0b, 0xed, 0x18, 0x59, 0xab, 0x9d, 0xeb, 0x08, 0xa5, 0xa4, 0xd2, 0x4e, + 0x25, 0xf6, 0x5c, 0x09, 0x2d, 0xb7, 0x6a, 0x2e, 0xf8, 0x5c, 0x89, 0x7c, 0xb3, 0x90, 0x15, 0x6f, + 0x86, 0x68, 0xad, 0xe4, 0x46, 0xc2, 0xa1, 0x79, 0x86, 0xf2, 0x42, 0xa3, 0x23, 0x01, 0xed, 0x5c, + 0x64, 0x08, 0xa3, 0x2f, 0x0b, 0x0c, 0xa8, 0xd8, 0xb3, 0x16, 0xe2, 0xb5, 0x0c, 0x52, 0x4f, 0x49, + 0xb5, 0x5d, 0x8d, 0xde, 0x2d, 0xd0, 0x3f, 0x65, 0x80, 0x17, 0xa0, 0x97, 0xd2, 0x38, 0x22, 0x5e, + 0x30, 0x09, 0x88, 0x6f, 0xff, 0x83, 0x3d, 0x70, 0x9e, 0xd2, 0x47, 0x1a, 0xbe, 0x50, 0xdb, 0x82, + 0x03, 0xd0, 0xf7, 0x30, 0xa5, 0x61, 0xc2, 0x63, 0x92, 0xf0, 0xc0, 0xe7, 0x93, 0x90, 0x71, 0x8f, + 0x11, 0x9c, 0x10, 0xbb, 0x03, 0x2f, 0x01, 0xf4, 0xd3, 0xe8, 0x29, 0xf0, 0x70, 0x42, 0x78, 0x42, + 0x9e, 0x23, 0x1e, 0xf8, 0xb1, 0xdd, 0x85, 0x37, 0xe0, 0xaa, 0xbd, 0x71, 0x46, 0xe2, 0x30, 0x65, + 0x1e, 0xe1, 0x0f, 0xd8, 0xe7, 0x84, 0xb1, 0x90, 0xc5, 0xf6, 0xff, 0xf1, 0x8f, 0x05, 0x46, 0x73, + 0xb9, 0x42, 0x7f, 0x6f, 0x36, 0xbe, 0x3e, 0xf5, 0xeb, 0xa8, 0x2e, 0x26, 0xb2, 0x5e, 0xfd, 0x16, + 0x50, 0xca, 0x65, 0x5e, 0x95, 0x48, 0xaa, 0xd2, 0x29, 0x45, 0xd5, 0xd4, 0x76, 0x28, 0x7b, 0xbd, + 0xd0, 0xa7, 0xba, 0xbf, 0x33, 0xc7, 0x47, 0xa7, 0x3b, 0xc5, 0xf8, 0xb3, 0x33, 0x9c, 0x1a, 0x18, + 0x2e, 0x34, 0x32, 0xb2, 0x56, 0x33, 0x17, 0x35, 0x91, 0xfa, 0xfb, 0x60, 0xc8, 0x70, 0xa1, 0xb3, + 0xa3, 0x21, 0x9b, 0xb9, 0x99, 0x31, 0xbc, 0x9d, 0x35, 0xc1, 0xb7, 0xbf, 0x01, 0x00, 0x00, 0xff, + 0xff, 0x60, 0xb1, 0xef, 0x4e, 0xf3, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/not_empty_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/not_empty_error.pb.go new file mode 100644 index 000000000..372a330ad --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/not_empty_error.pb.go @@ -0,0 +1,109 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/not_empty_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible not empty errors. +type NotEmptyErrorEnum_NotEmptyError int32 + +const ( + // Enum unspecified. + NotEmptyErrorEnum_UNSPECIFIED NotEmptyErrorEnum_NotEmptyError = 0 + // The received error code is not known in this version. + NotEmptyErrorEnum_UNKNOWN NotEmptyErrorEnum_NotEmptyError = 1 + // Empty list. + NotEmptyErrorEnum_EMPTY_LIST NotEmptyErrorEnum_NotEmptyError = 2 +) + +var NotEmptyErrorEnum_NotEmptyError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "EMPTY_LIST", +} +var NotEmptyErrorEnum_NotEmptyError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "EMPTY_LIST": 2, +} + +func (x NotEmptyErrorEnum_NotEmptyError) String() string { + return proto.EnumName(NotEmptyErrorEnum_NotEmptyError_name, int32(x)) +} +func (NotEmptyErrorEnum_NotEmptyError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_not_empty_error_68be394d8b4cf555, []int{0, 0} +} + +// Container for enum describing possible not empty errors. +type NotEmptyErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NotEmptyErrorEnum) Reset() { *m = NotEmptyErrorEnum{} } +func (m *NotEmptyErrorEnum) String() string { return proto.CompactTextString(m) } +func (*NotEmptyErrorEnum) ProtoMessage() {} +func (*NotEmptyErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_not_empty_error_68be394d8b4cf555, []int{0} +} +func (m *NotEmptyErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NotEmptyErrorEnum.Unmarshal(m, b) +} +func (m *NotEmptyErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NotEmptyErrorEnum.Marshal(b, m, deterministic) +} +func (dst *NotEmptyErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_NotEmptyErrorEnum.Merge(dst, src) +} +func (m *NotEmptyErrorEnum) XXX_Size() int { + return xxx_messageInfo_NotEmptyErrorEnum.Size(m) +} +func (m *NotEmptyErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_NotEmptyErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_NotEmptyErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*NotEmptyErrorEnum)(nil), "google.ads.googleads.v0.errors.NotEmptyErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.NotEmptyErrorEnum_NotEmptyError", NotEmptyErrorEnum_NotEmptyError_name, NotEmptyErrorEnum_NotEmptyError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/not_empty_error.proto", fileDescriptor_not_empty_error_68be394d8b4cf555) +} + +var fileDescriptor_not_empty_error_68be394d8b4cf555 = []byte{ + // 253 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x32, 0x49, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xa2, + 0xa2, 0xfc, 0xa2, 0x62, 0xfd, 0xbc, 0xfc, 0x92, 0xf8, 0xd4, 0xdc, 0x82, 0x92, 0xca, 0x78, 0xb0, + 0x80, 0x5e, 0x41, 0x51, 0x7e, 0x49, 0xbe, 0x90, 0x1c, 0x44, 0xa9, 0x5e, 0x62, 0x4a, 0xb1, 0x1e, + 0x5c, 0x97, 0x5e, 0x99, 0x81, 0x1e, 0x44, 0x97, 0x52, 0x10, 0x97, 0xa0, 0x5f, 0x7e, 0x89, 0x2b, + 0x48, 0x9f, 0x2b, 0x48, 0xc4, 0x35, 0xaf, 0x34, 0x57, 0xc9, 0x96, 0x8b, 0x17, 0x45, 0x50, 0x88, + 0x9f, 0x8b, 0x3b, 0xd4, 0x2f, 0x38, 0xc0, 0xd5, 0xd9, 0xd3, 0xcd, 0xd3, 0xd5, 0x45, 0x80, 0x41, + 0x88, 0x9b, 0x8b, 0x3d, 0xd4, 0xcf, 0xdb, 0xcf, 0x3f, 0xdc, 0x4f, 0x80, 0x51, 0x88, 0x8f, 0x8b, + 0xcb, 0xd5, 0x37, 0x20, 0x24, 0x32, 0xde, 0xc7, 0x33, 0x38, 0x44, 0x80, 0xc9, 0xe9, 0x04, 0x23, + 0x97, 0x52, 0x72, 0x7e, 0xae, 0x1e, 0x7e, 0xab, 0x9d, 0x84, 0x50, 0xec, 0x08, 0x00, 0x39, 0x37, + 0x80, 0x31, 0xca, 0x05, 0xaa, 0x2b, 0x3d, 0x3f, 0x27, 0x31, 0x2f, 0x5d, 0x2f, 0xbf, 0x28, 0x5d, + 0x3f, 0x3d, 0x35, 0x0f, 0xec, 0x19, 0x98, 0xb7, 0x0b, 0x32, 0x8b, 0x71, 0x85, 0x82, 0x35, 0x84, + 0x5a, 0xc4, 0xc4, 0xec, 0xee, 0xe8, 0xb8, 0x8a, 0x49, 0xce, 0x1d, 0x62, 0x98, 0x63, 0x4a, 0xb1, + 0x1e, 0x84, 0x09, 0x62, 0x85, 0x19, 0xe8, 0x81, 0xad, 0x2c, 0x3e, 0x05, 0x53, 0x10, 0xe3, 0x98, + 0x52, 0x1c, 0x03, 0x57, 0x10, 0x13, 0x66, 0x10, 0x03, 0x51, 0x90, 0xc4, 0x06, 0xb6, 0xd8, 0x18, + 0x10, 0x00, 0x00, 0xff, 0xff, 0x91, 0x69, 0x2e, 0x63, 0x7d, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/null_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/null_error.pb.go new file mode 100644 index 000000000..ff58164bd --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/null_error.pb.go @@ -0,0 +1,109 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/null_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible null errors. +type NullErrorEnum_NullError int32 + +const ( + // Enum unspecified. + NullErrorEnum_UNSPECIFIED NullErrorEnum_NullError = 0 + // The received error code is not known in this version. + NullErrorEnum_UNKNOWN NullErrorEnum_NullError = 1 + // Specified list/container must not contain any null elements + NullErrorEnum_NULL_CONTENT NullErrorEnum_NullError = 2 +) + +var NullErrorEnum_NullError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "NULL_CONTENT", +} +var NullErrorEnum_NullError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "NULL_CONTENT": 2, +} + +func (x NullErrorEnum_NullError) String() string { + return proto.EnumName(NullErrorEnum_NullError_name, int32(x)) +} +func (NullErrorEnum_NullError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_null_error_fd3a1ae5b7a6b83e, []int{0, 0} +} + +// Container for enum describing possible null errors. +type NullErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NullErrorEnum) Reset() { *m = NullErrorEnum{} } +func (m *NullErrorEnum) String() string { return proto.CompactTextString(m) } +func (*NullErrorEnum) ProtoMessage() {} +func (*NullErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_null_error_fd3a1ae5b7a6b83e, []int{0} +} +func (m *NullErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NullErrorEnum.Unmarshal(m, b) +} +func (m *NullErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NullErrorEnum.Marshal(b, m, deterministic) +} +func (dst *NullErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_NullErrorEnum.Merge(dst, src) +} +func (m *NullErrorEnum) XXX_Size() int { + return xxx_messageInfo_NullErrorEnum.Size(m) +} +func (m *NullErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_NullErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_NullErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*NullErrorEnum)(nil), "google.ads.googleads.v0.errors.NullErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.NullErrorEnum_NullError", NullErrorEnum_NullError_name, NullErrorEnum_NullError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/null_error.proto", fileDescriptor_null_error_fd3a1ae5b7a6b83e) +} + +var fileDescriptor_null_error_fd3a1ae5b7a6b83e = []byte{ + // 247 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xd2, 0x4f, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0x86, 0x32, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xa2, 0xa2, + 0xfc, 0xa2, 0x62, 0xfd, 0xbc, 0xd2, 0x9c, 0x9c, 0x78, 0x30, 0x5b, 0xaf, 0xa0, 0x28, 0xbf, 0x24, + 0x5f, 0x48, 0x0e, 0xa2, 0x4a, 0x2f, 0x31, 0xa5, 0x58, 0x0f, 0xae, 0x41, 0xaf, 0xcc, 0x40, 0x0f, + 0xa2, 0x41, 0xc9, 0x87, 0x8b, 0xd7, 0xaf, 0x34, 0x27, 0xc7, 0x15, 0xc4, 0x73, 0xcd, 0x2b, 0xcd, + 0x55, 0xb2, 0xe6, 0xe2, 0x84, 0x0b, 0x08, 0xf1, 0x73, 0x71, 0x87, 0xfa, 0x05, 0x07, 0xb8, 0x3a, + 0x7b, 0xba, 0x79, 0xba, 0xba, 0x08, 0x30, 0x08, 0x71, 0x73, 0xb1, 0x87, 0xfa, 0x79, 0xfb, 0xf9, + 0x87, 0xfb, 0x09, 0x30, 0x0a, 0x09, 0x70, 0xf1, 0xf8, 0x85, 0xfa, 0xf8, 0xc4, 0x3b, 0xfb, 0xfb, + 0x85, 0xb8, 0xfa, 0x85, 0x08, 0x30, 0x39, 0x1d, 0x61, 0xe4, 0x52, 0x4a, 0xce, 0xcf, 0xd5, 0xc3, + 0x6f, 0xa9, 0x13, 0x1f, 0xdc, 0x86, 0x00, 0x90, 0x23, 0x03, 0x18, 0xa3, 0x5c, 0xa0, 0x3a, 0xd2, + 0xf3, 0x73, 0x12, 0xf3, 0xd2, 0xf5, 0xf2, 0x8b, 0xd2, 0xf5, 0xd3, 0x53, 0xf3, 0xc0, 0x5e, 0x80, + 0xf9, 0xb3, 0x20, 0xb3, 0x18, 0x97, 0xb7, 0xad, 0x21, 0xd4, 0x22, 0x26, 0x66, 0x77, 0x47, 0xc7, + 0x55, 0x4c, 0x72, 0xee, 0x10, 0xc3, 0x1c, 0x53, 0x8a, 0xf5, 0x20, 0x4c, 0x10, 0x2b, 0xcc, 0x40, + 0x0f, 0x6c, 0x65, 0xf1, 0x29, 0x98, 0x82, 0x18, 0xc7, 0x94, 0xe2, 0x18, 0xb8, 0x82, 0x98, 0x30, + 0x83, 0x18, 0x88, 0x82, 0x24, 0x36, 0xb0, 0xc5, 0xc6, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0xbe, + 0xf4, 0xdb, 0xb6, 0x6e, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/operation_access_denied_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/operation_access_denied_error.pb.go new file mode 100644 index 000000000..c3bd18c70 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/operation_access_denied_error.pb.go @@ -0,0 +1,155 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/operation_access_denied_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible operation access denied errors. +type OperationAccessDeniedErrorEnum_OperationAccessDeniedError int32 + +const ( + // Enum unspecified. + OperationAccessDeniedErrorEnum_UNSPECIFIED OperationAccessDeniedErrorEnum_OperationAccessDeniedError = 0 + // The received error code is not known in this version. + OperationAccessDeniedErrorEnum_UNKNOWN OperationAccessDeniedErrorEnum_OperationAccessDeniedError = 1 + // Unauthorized invocation of a service's method (get, mutate, etc.) + OperationAccessDeniedErrorEnum_ACTION_NOT_PERMITTED OperationAccessDeniedErrorEnum_OperationAccessDeniedError = 2 + // Unauthorized CREATE operation in invoking a service's mutate method. + OperationAccessDeniedErrorEnum_CREATE_OPERATION_NOT_PERMITTED OperationAccessDeniedErrorEnum_OperationAccessDeniedError = 3 + // Unauthorized REMOVE operation in invoking a service's mutate method. + OperationAccessDeniedErrorEnum_REMOVE_OPERATION_NOT_PERMITTED OperationAccessDeniedErrorEnum_OperationAccessDeniedError = 4 + // Unauthorized UPDATE operation in invoking a service's mutate method. + OperationAccessDeniedErrorEnum_UPDATE_OPERATION_NOT_PERMITTED OperationAccessDeniedErrorEnum_OperationAccessDeniedError = 5 + // A mutate action is not allowed on this campaign, from this client. + OperationAccessDeniedErrorEnum_MUTATE_ACTION_NOT_PERMITTED_FOR_CLIENT OperationAccessDeniedErrorEnum_OperationAccessDeniedError = 6 + // This operation is not permitted on this campaign type + OperationAccessDeniedErrorEnum_OPERATION_NOT_PERMITTED_FOR_CAMPAIGN_TYPE OperationAccessDeniedErrorEnum_OperationAccessDeniedError = 7 + // A CREATE operation may not set status to REMOVED. + OperationAccessDeniedErrorEnum_CREATE_AS_REMOVED_NOT_PERMITTED OperationAccessDeniedErrorEnum_OperationAccessDeniedError = 8 + // This operation is not allowed because the campaign or adgroup is removed. + OperationAccessDeniedErrorEnum_OPERATION_NOT_PERMITTED_FOR_REMOVED_RESOURCE OperationAccessDeniedErrorEnum_OperationAccessDeniedError = 9 + // This operation is not permitted on this ad group type. + OperationAccessDeniedErrorEnum_OPERATION_NOT_PERMITTED_FOR_AD_GROUP_TYPE OperationAccessDeniedErrorEnum_OperationAccessDeniedError = 10 + // The mutate is not allowed for this customer. + OperationAccessDeniedErrorEnum_MUTATE_NOT_PERMITTED_FOR_CUSTOMER OperationAccessDeniedErrorEnum_OperationAccessDeniedError = 11 +) + +var OperationAccessDeniedErrorEnum_OperationAccessDeniedError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "ACTION_NOT_PERMITTED", + 3: "CREATE_OPERATION_NOT_PERMITTED", + 4: "REMOVE_OPERATION_NOT_PERMITTED", + 5: "UPDATE_OPERATION_NOT_PERMITTED", + 6: "MUTATE_ACTION_NOT_PERMITTED_FOR_CLIENT", + 7: "OPERATION_NOT_PERMITTED_FOR_CAMPAIGN_TYPE", + 8: "CREATE_AS_REMOVED_NOT_PERMITTED", + 9: "OPERATION_NOT_PERMITTED_FOR_REMOVED_RESOURCE", + 10: "OPERATION_NOT_PERMITTED_FOR_AD_GROUP_TYPE", + 11: "MUTATE_NOT_PERMITTED_FOR_CUSTOMER", +} +var OperationAccessDeniedErrorEnum_OperationAccessDeniedError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "ACTION_NOT_PERMITTED": 2, + "CREATE_OPERATION_NOT_PERMITTED": 3, + "REMOVE_OPERATION_NOT_PERMITTED": 4, + "UPDATE_OPERATION_NOT_PERMITTED": 5, + "MUTATE_ACTION_NOT_PERMITTED_FOR_CLIENT": 6, + "OPERATION_NOT_PERMITTED_FOR_CAMPAIGN_TYPE": 7, + "CREATE_AS_REMOVED_NOT_PERMITTED": 8, + "OPERATION_NOT_PERMITTED_FOR_REMOVED_RESOURCE": 9, + "OPERATION_NOT_PERMITTED_FOR_AD_GROUP_TYPE": 10, + "MUTATE_NOT_PERMITTED_FOR_CUSTOMER": 11, +} + +func (x OperationAccessDeniedErrorEnum_OperationAccessDeniedError) String() string { + return proto.EnumName(OperationAccessDeniedErrorEnum_OperationAccessDeniedError_name, int32(x)) +} +func (OperationAccessDeniedErrorEnum_OperationAccessDeniedError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_operation_access_denied_error_07fb74df990e60d7, []int{0, 0} +} + +// Container for enum describing possible operation access denied errors. +type OperationAccessDeniedErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *OperationAccessDeniedErrorEnum) Reset() { *m = OperationAccessDeniedErrorEnum{} } +func (m *OperationAccessDeniedErrorEnum) String() string { return proto.CompactTextString(m) } +func (*OperationAccessDeniedErrorEnum) ProtoMessage() {} +func (*OperationAccessDeniedErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_operation_access_denied_error_07fb74df990e60d7, []int{0} +} +func (m *OperationAccessDeniedErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_OperationAccessDeniedErrorEnum.Unmarshal(m, b) +} +func (m *OperationAccessDeniedErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_OperationAccessDeniedErrorEnum.Marshal(b, m, deterministic) +} +func (dst *OperationAccessDeniedErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_OperationAccessDeniedErrorEnum.Merge(dst, src) +} +func (m *OperationAccessDeniedErrorEnum) XXX_Size() int { + return xxx_messageInfo_OperationAccessDeniedErrorEnum.Size(m) +} +func (m *OperationAccessDeniedErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_OperationAccessDeniedErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_OperationAccessDeniedErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*OperationAccessDeniedErrorEnum)(nil), "google.ads.googleads.v0.errors.OperationAccessDeniedErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.OperationAccessDeniedErrorEnum_OperationAccessDeniedError", OperationAccessDeniedErrorEnum_OperationAccessDeniedError_name, OperationAccessDeniedErrorEnum_OperationAccessDeniedError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/operation_access_denied_error.proto", fileDescriptor_operation_access_denied_error_07fb74df990e60d7) +} + +var fileDescriptor_operation_access_denied_error_07fb74df990e60d7 = []byte{ + // 413 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x92, 0xc1, 0x8a, 0xd4, 0x30, + 0x18, 0xc7, 0x9d, 0x19, 0xdd, 0xd5, 0xcc, 0xc1, 0x12, 0x3c, 0x88, 0x87, 0x2e, 0x56, 0x14, 0x14, + 0x4d, 0x0b, 0x1e, 0x3d, 0x65, 0xda, 0x6c, 0x29, 0xda, 0x24, 0xa4, 0xe9, 0x88, 0x52, 0x08, 0x75, + 0x5a, 0xca, 0xc0, 0x6e, 0x33, 0x34, 0xeb, 0x3e, 0x90, 0x47, 0x9f, 0x44, 0xbc, 0xfb, 0x14, 0xbe, + 0x84, 0xb4, 0x99, 0xce, 0x41, 0xa6, 0xb3, 0xa7, 0x7e, 0x90, 0x5f, 0x7e, 0xdf, 0x3f, 0xf4, 0x0f, + 0x56, 0x8d, 0xd6, 0xcd, 0x55, 0xed, 0x97, 0x95, 0xf1, 0xed, 0xd8, 0x4f, 0xb7, 0x81, 0x5f, 0x77, + 0x9d, 0xee, 0x8c, 0xaf, 0x77, 0x75, 0x57, 0xde, 0x6c, 0x75, 0xab, 0xca, 0xcd, 0xa6, 0x36, 0x46, + 0x55, 0x75, 0xbb, 0xad, 0x2b, 0x35, 0x1c, 0xa3, 0x5d, 0xa7, 0x6f, 0x34, 0x74, 0xed, 0x45, 0x54, + 0x56, 0x06, 0x1d, 0x1c, 0xe8, 0x36, 0x40, 0xd6, 0xe1, 0xfd, 0x5d, 0x00, 0x97, 0x8d, 0x1e, 0x3c, + 0x68, 0xa2, 0xc1, 0x42, 0xfa, 0x73, 0xd2, 0x7e, 0xbf, 0xf6, 0x7e, 0x2d, 0xc0, 0xb3, 0x69, 0x04, + 0x3e, 0x06, 0xcb, 0x9c, 0x66, 0x9c, 0x84, 0xc9, 0x65, 0x42, 0x22, 0xe7, 0x1e, 0x5c, 0x82, 0xf3, + 0x9c, 0x7e, 0xa4, 0xec, 0x33, 0x75, 0x66, 0xf0, 0x29, 0x78, 0x82, 0x43, 0x99, 0x30, 0xaa, 0x28, + 0x93, 0x8a, 0x13, 0x91, 0x26, 0x52, 0x92, 0xc8, 0x99, 0x43, 0x0f, 0xb8, 0xa1, 0x20, 0x58, 0x12, + 0xc5, 0x38, 0x11, 0xf8, 0x08, 0xb3, 0xe8, 0x19, 0x41, 0x52, 0xb6, 0x9e, 0x66, 0xee, 0xf7, 0x4c, + 0xce, 0xa3, 0x53, 0x9e, 0x07, 0xf0, 0x0d, 0x78, 0x95, 0xe6, 0xb2, 0x67, 0x8e, 0x85, 0x51, 0x97, + 0x4c, 0xa8, 0xf0, 0x53, 0x42, 0xa8, 0x74, 0xce, 0xe0, 0x3b, 0xf0, 0x7a, 0x42, 0x64, 0x39, 0x9c, + 0x72, 0x9c, 0xc4, 0x54, 0xc9, 0x2f, 0x9c, 0x38, 0xe7, 0xf0, 0x05, 0xb8, 0xd8, 0x3f, 0x03, 0x67, + 0xca, 0x86, 0x8d, 0xfe, 0xdb, 0xff, 0x10, 0x06, 0xe0, 0xed, 0x29, 0xe7, 0x78, 0x4d, 0x90, 0x8c, + 0xe5, 0x22, 0x24, 0xce, 0xa3, 0xbb, 0x52, 0xe0, 0x48, 0xc5, 0x82, 0xe5, 0xdc, 0xa6, 0x00, 0xf0, + 0x25, 0x78, 0xbe, 0x7f, 0xe0, 0x91, 0xc4, 0x79, 0x26, 0x59, 0x4a, 0x84, 0xb3, 0x5c, 0xfd, 0x99, + 0x01, 0x6f, 0xa3, 0xaf, 0xd1, 0xe9, 0x52, 0xac, 0x2e, 0xa6, 0x7f, 0x37, 0xef, 0x5b, 0xc5, 0x67, + 0x5f, 0xa3, 0xbd, 0xa2, 0xd1, 0x57, 0x65, 0xdb, 0x20, 0xdd, 0x35, 0x7e, 0x53, 0xb7, 0x43, 0xe7, + 0xc6, 0xae, 0xee, 0xb6, 0x66, 0xaa, 0xba, 0x1f, 0xec, 0xe7, 0xc7, 0x7c, 0x11, 0x63, 0xfc, 0x73, + 0xee, 0xc6, 0x56, 0x86, 0x2b, 0x83, 0xec, 0xd8, 0x4f, 0xeb, 0x00, 0x0d, 0x2b, 0xcd, 0xef, 0x11, + 0x28, 0x70, 0x65, 0x8a, 0x03, 0x50, 0xac, 0x83, 0xc2, 0x02, 0xdf, 0xce, 0x86, 0xc5, 0xef, 0xff, + 0x05, 0x00, 0x00, 0xff, 0xff, 0x14, 0xb6, 0x57, 0x19, 0x32, 0x03, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/operator_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/operator_error.pb.go new file mode 100644 index 000000000..47a7c0816 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/operator_error.pb.go @@ -0,0 +1,110 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/operator_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible operator errors. +type OperatorErrorEnum_OperatorError int32 + +const ( + // Enum unspecified. + OperatorErrorEnum_UNSPECIFIED OperatorErrorEnum_OperatorError = 0 + // The received error code is not known in this version. + OperatorErrorEnum_UNKNOWN OperatorErrorEnum_OperatorError = 1 + // Operator not supported. + OperatorErrorEnum_OPERATOR_NOT_SUPPORTED OperatorErrorEnum_OperatorError = 2 +) + +var OperatorErrorEnum_OperatorError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "OPERATOR_NOT_SUPPORTED", +} +var OperatorErrorEnum_OperatorError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "OPERATOR_NOT_SUPPORTED": 2, +} + +func (x OperatorErrorEnum_OperatorError) String() string { + return proto.EnumName(OperatorErrorEnum_OperatorError_name, int32(x)) +} +func (OperatorErrorEnum_OperatorError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_operator_error_e214472ec4870bc9, []int{0, 0} +} + +// Container for enum describing possible operator errors. +type OperatorErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *OperatorErrorEnum) Reset() { *m = OperatorErrorEnum{} } +func (m *OperatorErrorEnum) String() string { return proto.CompactTextString(m) } +func (*OperatorErrorEnum) ProtoMessage() {} +func (*OperatorErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_operator_error_e214472ec4870bc9, []int{0} +} +func (m *OperatorErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_OperatorErrorEnum.Unmarshal(m, b) +} +func (m *OperatorErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_OperatorErrorEnum.Marshal(b, m, deterministic) +} +func (dst *OperatorErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_OperatorErrorEnum.Merge(dst, src) +} +func (m *OperatorErrorEnum) XXX_Size() int { + return xxx_messageInfo_OperatorErrorEnum.Size(m) +} +func (m *OperatorErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_OperatorErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_OperatorErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*OperatorErrorEnum)(nil), "google.ads.googleads.v0.errors.OperatorErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.OperatorErrorEnum_OperatorError", OperatorErrorEnum_OperatorError_name, OperatorErrorEnum_OperatorError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/operator_error.proto", fileDescriptor_operator_error_e214472ec4870bc9) +} + +var fileDescriptor_operator_error_e214472ec4870bc9 = []byte{ + // 261 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x32, 0x4e, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xa2, + 0xa2, 0xfc, 0xa2, 0x62, 0xfd, 0xfc, 0x82, 0xd4, 0xa2, 0xc4, 0x92, 0xfc, 0xa2, 0x78, 0x30, 0x5f, + 0xaf, 0xa0, 0x28, 0xbf, 0x24, 0x5f, 0x48, 0x0e, 0xa2, 0x52, 0x2f, 0x31, 0xa5, 0x58, 0x0f, 0xae, + 0x49, 0xaf, 0xcc, 0x40, 0x0f, 0xa2, 0x49, 0x29, 0x8e, 0x4b, 0xd0, 0x1f, 0xaa, 0xcf, 0x15, 0x24, + 0xe2, 0x9a, 0x57, 0x9a, 0xab, 0xe4, 0xc9, 0xc5, 0x8b, 0x22, 0x28, 0xc4, 0xcf, 0xc5, 0x1d, 0xea, + 0x17, 0x1c, 0xe0, 0xea, 0xec, 0xe9, 0xe6, 0xe9, 0xea, 0x22, 0xc0, 0x20, 0xc4, 0xcd, 0xc5, 0x1e, + 0xea, 0xe7, 0xed, 0xe7, 0x1f, 0xee, 0x27, 0xc0, 0x28, 0x24, 0xc5, 0x25, 0xe6, 0x1f, 0xe0, 0x1a, + 0xe4, 0x18, 0xe2, 0x1f, 0x14, 0xef, 0xe7, 0x1f, 0x12, 0x1f, 0x1c, 0x1a, 0x10, 0xe0, 0x1f, 0x14, + 0xe2, 0xea, 0x22, 0xc0, 0xe4, 0x74, 0x82, 0x91, 0x4b, 0x29, 0x39, 0x3f, 0x57, 0x0f, 0xbf, 0x33, + 0x9c, 0x84, 0x50, 0xec, 0x0b, 0x00, 0x39, 0x3d, 0x80, 0x31, 0xca, 0x05, 0xaa, 0x2b, 0x3d, 0x3f, + 0x27, 0x31, 0x2f, 0x5d, 0x2f, 0xbf, 0x28, 0x5d, 0x3f, 0x3d, 0x35, 0x0f, 0xec, 0x31, 0x58, 0x08, + 0x14, 0x64, 0x16, 0xe3, 0x0a, 0x10, 0x6b, 0x08, 0xb5, 0x88, 0x89, 0xd9, 0xdd, 0xd1, 0x71, 0x15, + 0x93, 0x9c, 0x3b, 0xc4, 0x30, 0xc7, 0x94, 0x62, 0x3d, 0x08, 0x13, 0xc4, 0x0a, 0x33, 0xd0, 0x03, + 0x5b, 0x59, 0x7c, 0x0a, 0xa6, 0x20, 0xc6, 0x31, 0xa5, 0x38, 0x06, 0xae, 0x20, 0x26, 0xcc, 0x20, + 0x06, 0xa2, 0x20, 0x89, 0x0d, 0x6c, 0xb1, 0x31, 0x20, 0x00, 0x00, 0xff, 0xff, 0xea, 0x71, 0xee, + 0x87, 0x88, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/policy_finding_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/policy_finding_error.pb.go new file mode 100644 index 000000000..b1abc0502 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/policy_finding_error.pb.go @@ -0,0 +1,116 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/policy_finding_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible policy finding errors. +type PolicyFindingErrorEnum_PolicyFindingError int32 + +const ( + // Enum unspecified. + PolicyFindingErrorEnum_UNSPECIFIED PolicyFindingErrorEnum_PolicyFindingError = 0 + // The received error code is not known in this version. + PolicyFindingErrorEnum_UNKNOWN PolicyFindingErrorEnum_PolicyFindingError = 1 + // The resource has been disapproved since the policy summary includes + // policy topics of type PROHIBITED. + PolicyFindingErrorEnum_POLICY_FINDING PolicyFindingErrorEnum_PolicyFindingError = 2 + // The given policy topic does not exist. + PolicyFindingErrorEnum_POLICY_TOPIC_NOT_FOUND PolicyFindingErrorEnum_PolicyFindingError = 3 +) + +var PolicyFindingErrorEnum_PolicyFindingError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "POLICY_FINDING", + 3: "POLICY_TOPIC_NOT_FOUND", +} +var PolicyFindingErrorEnum_PolicyFindingError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "POLICY_FINDING": 2, + "POLICY_TOPIC_NOT_FOUND": 3, +} + +func (x PolicyFindingErrorEnum_PolicyFindingError) String() string { + return proto.EnumName(PolicyFindingErrorEnum_PolicyFindingError_name, int32(x)) +} +func (PolicyFindingErrorEnum_PolicyFindingError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_policy_finding_error_85bd0bfad47f6f0e, []int{0, 0} +} + +// Container for enum describing possible policy finding errors. +type PolicyFindingErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PolicyFindingErrorEnum) Reset() { *m = PolicyFindingErrorEnum{} } +func (m *PolicyFindingErrorEnum) String() string { return proto.CompactTextString(m) } +func (*PolicyFindingErrorEnum) ProtoMessage() {} +func (*PolicyFindingErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_policy_finding_error_85bd0bfad47f6f0e, []int{0} +} +func (m *PolicyFindingErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PolicyFindingErrorEnum.Unmarshal(m, b) +} +func (m *PolicyFindingErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PolicyFindingErrorEnum.Marshal(b, m, deterministic) +} +func (dst *PolicyFindingErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_PolicyFindingErrorEnum.Merge(dst, src) +} +func (m *PolicyFindingErrorEnum) XXX_Size() int { + return xxx_messageInfo_PolicyFindingErrorEnum.Size(m) +} +func (m *PolicyFindingErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_PolicyFindingErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_PolicyFindingErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*PolicyFindingErrorEnum)(nil), "google.ads.googleads.v0.errors.PolicyFindingErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.PolicyFindingErrorEnum_PolicyFindingError", PolicyFindingErrorEnum_PolicyFindingError_name, PolicyFindingErrorEnum_PolicyFindingError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/policy_finding_error.proto", fileDescriptor_policy_finding_error_85bd0bfad47f6f0e) +} + +var fileDescriptor_policy_finding_error_85bd0bfad47f6f0e = []byte{ + // 285 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0x4d, 0x4b, 0xc3, 0x30, + 0x1c, 0xc6, 0x5d, 0x07, 0x0a, 0x19, 0x68, 0xc9, 0x61, 0x82, 0x87, 0x1d, 0xfa, 0x01, 0xd2, 0x82, + 0x27, 0xf1, 0xd4, 0xf5, 0x8d, 0xa0, 0xa4, 0x01, 0xd7, 0x89, 0x52, 0x28, 0xdd, 0x52, 0x43, 0xa1, + 0x4b, 0x4a, 0xa2, 0x03, 0xc1, 0x4f, 0xe3, 0xd1, 0x8f, 0x22, 0xf8, 0x9d, 0xa4, 0xc9, 0xb6, 0xcb, + 0xd0, 0x53, 0x1e, 0x9e, 0x3c, 0xbf, 0xff, 0x1b, 0xb8, 0xe1, 0x52, 0xf2, 0xae, 0xf1, 0x6b, 0xa6, + 0x7d, 0x2b, 0x07, 0xb5, 0x0d, 0xfc, 0x46, 0x29, 0xa9, 0xb4, 0xdf, 0xcb, 0xae, 0x5d, 0xbf, 0x57, + 0x2f, 0xad, 0x60, 0xad, 0xe0, 0x95, 0x71, 0x51, 0xaf, 0xe4, 0xab, 0x84, 0x33, 0x9b, 0x47, 0x35, + 0xd3, 0xe8, 0x80, 0xa2, 0x6d, 0x80, 0x2c, 0xea, 0x7d, 0x80, 0x29, 0x35, 0x74, 0x6a, 0xe1, 0x64, + 0xb0, 0x13, 0xf1, 0xb6, 0xf1, 0x56, 0x00, 0x1e, 0xff, 0xc0, 0x0b, 0x30, 0x29, 0xc8, 0x03, 0x4d, + 0x22, 0x9c, 0xe2, 0x24, 0x76, 0x4f, 0xe0, 0x04, 0x9c, 0x15, 0xe4, 0x8e, 0xe4, 0x8f, 0xc4, 0x1d, + 0x41, 0x08, 0xce, 0x69, 0x7e, 0x8f, 0xa3, 0xa7, 0x2a, 0xc5, 0x24, 0xc6, 0x24, 0x73, 0x1d, 0x78, + 0x05, 0xa6, 0x3b, 0x6f, 0x91, 0x53, 0x1c, 0x55, 0x24, 0x5f, 0x54, 0x69, 0x5e, 0x90, 0xd8, 0x1d, + 0xcf, 0x7f, 0x46, 0xc0, 0x5b, 0xcb, 0x0d, 0xfa, 0x7f, 0xc8, 0xf9, 0xe5, 0xf1, 0x20, 0x74, 0xd8, + 0x8e, 0x8e, 0x9e, 0xe3, 0x1d, 0xca, 0x65, 0x57, 0x0b, 0x8e, 0xa4, 0xe2, 0x3e, 0x6f, 0x84, 0xd9, + 0x7d, 0x7f, 0xaa, 0xbe, 0xd5, 0x7f, 0x5d, 0xee, 0xd6, 0x3e, 0x9f, 0xce, 0x38, 0x0b, 0xc3, 0x2f, + 0x67, 0x96, 0xd9, 0x62, 0x21, 0xd3, 0xc8, 0xca, 0x41, 0x2d, 0x03, 0x64, 0x5a, 0xea, 0xef, 0x7d, + 0xa0, 0x0c, 0x99, 0x2e, 0x0f, 0x81, 0x72, 0x19, 0x94, 0x36, 0xb0, 0x3a, 0x35, 0x8d, 0xaf, 0x7f, + 0x03, 0x00, 0x00, 0xff, 0xff, 0x25, 0x19, 0x48, 0x61, 0xb1, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/query_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/query_error.pb.go new file mode 100644 index 000000000..4ef6ff492 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/query_error.pb.go @@ -0,0 +1,353 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/query_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible query errors. +type QueryErrorEnum_QueryError int32 + +const ( + // Name unspecified. + QueryErrorEnum_UNSPECIFIED QueryErrorEnum_QueryError = 0 + // The received error code is not known in this version. + QueryErrorEnum_UNKNOWN QueryErrorEnum_QueryError = 1 + // Returned if all other query error reasons are not applicable. + QueryErrorEnum_QUERY_ERROR QueryErrorEnum_QueryError = 50 + // A condition used in the query references an invalid enum constant. + QueryErrorEnum_BAD_ENUM_CONSTANT QueryErrorEnum_QueryError = 18 + // Query contains an invalid escape sequence. + QueryErrorEnum_BAD_ESCAPE_SEQUENCE QueryErrorEnum_QueryError = 7 + // Field name is invalid. + QueryErrorEnum_BAD_FIELD_NAME QueryErrorEnum_QueryError = 12 + // Limit value is invalid (i.e. not a number) + QueryErrorEnum_BAD_LIMIT_VALUE QueryErrorEnum_QueryError = 15 + // Encountered number can not be parsed. + QueryErrorEnum_BAD_NUMBER QueryErrorEnum_QueryError = 5 + // Invalid operator encountered. + QueryErrorEnum_BAD_OPERATOR QueryErrorEnum_QueryError = 3 + // Invalid resource type was specified in the FROM clause. + QueryErrorEnum_BAD_RESOURCE_TYPE_IN_FROM_CLAUSE QueryErrorEnum_QueryError = 45 + // Non-ASCII symbol encountered outside of strings. + QueryErrorEnum_BAD_SYMBOL QueryErrorEnum_QueryError = 2 + // Value is invalid. + QueryErrorEnum_BAD_VALUE QueryErrorEnum_QueryError = 4 + // Date filters fail to restrict date to a range smaller than 31 days. + // Applicable if the query is segmented by date. + QueryErrorEnum_DATE_RANGE_TOO_WIDE QueryErrorEnum_QueryError = 36 + // Expected AND between values with BETWEEN operator. + QueryErrorEnum_EXPECTED_AND QueryErrorEnum_QueryError = 30 + // Expecting ORDER BY to have BY. + QueryErrorEnum_EXPECTED_BY QueryErrorEnum_QueryError = 14 + // There was no dimension field selected. + QueryErrorEnum_EXPECTED_DIMENSION_FIELD_IN_SELECT_CLAUSE QueryErrorEnum_QueryError = 37 + // Missing filters on date related fields. + QueryErrorEnum_EXPECTED_FILTERS_ON_DATE_RANGE QueryErrorEnum_QueryError = 55 + // Missing FROM clause. + QueryErrorEnum_EXPECTED_FROM QueryErrorEnum_QueryError = 44 + // The operator used in the conditions requires the value to be a list. + QueryErrorEnum_EXPECTED_LIST QueryErrorEnum_QueryError = 41 + // Fields used in WHERE or ORDER BY clauses are missing from the SELECT + // clause. + QueryErrorEnum_EXPECTED_REFERENCED_FIELD_IN_SELECT_CLAUSE QueryErrorEnum_QueryError = 16 + // SELECT is missing at the beginning of query. + QueryErrorEnum_EXPECTED_SELECT QueryErrorEnum_QueryError = 13 + // A list was passed as a value to a condition whose operator expects a + // single value. + QueryErrorEnum_EXPECTED_SINGLE_VALUE QueryErrorEnum_QueryError = 42 + // Missing one or both values with BETWEEN operator. + QueryErrorEnum_EXPECTED_VALUE_WITH_BETWEEN_OPERATOR QueryErrorEnum_QueryError = 29 + // Invalid date format. Expected 'YYYY-MM-DD'. + QueryErrorEnum_INVALID_DATE_FORMAT QueryErrorEnum_QueryError = 38 + // Value passed was not a string when it should have been. I.e., it was a + // number or unquoted literal. + QueryErrorEnum_INVALID_STRING_VALUE QueryErrorEnum_QueryError = 57 + // A String value passed to the BETWEEN operator does not parse as a date. + QueryErrorEnum_INVALID_VALUE_WITH_BETWEEN_OPERATOR QueryErrorEnum_QueryError = 26 + // The value passed to the DURING operator is not a Date range literal + QueryErrorEnum_INVALID_VALUE_WITH_DURING_OPERATOR QueryErrorEnum_QueryError = 22 + // A non-string value was passed to the LIKE operator. + QueryErrorEnum_INVALID_VALUE_WITH_LIKE_OPERATOR QueryErrorEnum_QueryError = 56 + // An operator was provided that is inapplicable to the field being + // filtered. + QueryErrorEnum_OPERATOR_FIELD_MISMATCH QueryErrorEnum_QueryError = 35 + // A Condition was found with an empty list. + QueryErrorEnum_PROHIBITED_EMPTY_LIST_IN_CONDITION QueryErrorEnum_QueryError = 28 + // A condition used in the query references an unsupported enum constant. + QueryErrorEnum_PROHIBITED_ENUM_CONSTANT QueryErrorEnum_QueryError = 54 + // Fields that are not allowed to be selected together were included in + // the SELECT clause. + QueryErrorEnum_PROHIBITED_FIELD_COMBINATION_IN_SELECT_CLAUSE QueryErrorEnum_QueryError = 31 + // A field that is not orderable was included in the ORDER BY clause. + QueryErrorEnum_PROHIBITED_FIELD_IN_ORDER_BY_CLAUSE QueryErrorEnum_QueryError = 40 + // A field that is not selectable was included in the SELECT clause. + QueryErrorEnum_PROHIBITED_FIELD_IN_SELECT_CLAUSE QueryErrorEnum_QueryError = 23 + // A field that is not filterable was included in the WHERE clause. + QueryErrorEnum_PROHIBITED_FIELD_IN_WHERE_CLAUSE QueryErrorEnum_QueryError = 24 + // Resource type specified in the FROM clause is not supported by this + // service. + QueryErrorEnum_PROHIBITED_RESOURCE_TYPE_IN_FROM_CLAUSE QueryErrorEnum_QueryError = 43 + // A field that comes from an incompatible resource was included in the + // SELECT clause. + QueryErrorEnum_PROHIBITED_RESOURCE_TYPE_IN_SELECT_CLAUSE QueryErrorEnum_QueryError = 48 + // A field that comes from an incompatible resource was included in the + // WHERE clause. + QueryErrorEnum_PROHIBITED_RESOURCE_TYPE_IN_WHERE_CLAUSE QueryErrorEnum_QueryError = 58 + // A metric incompatible with the main resource or other selected + // segmenting resources was included in the SELECT or WHERE clause. + QueryErrorEnum_PROHIBITED_METRIC_IN_SELECT_OR_WHERE_CLAUSE QueryErrorEnum_QueryError = 49 + // A segment incompatible with the main resource or other selected + // segmenting resources was included in the SELECT or WHERE clause. + QueryErrorEnum_PROHIBITED_SEGMENT_IN_SELECT_OR_WHERE_CLAUSE QueryErrorEnum_QueryError = 51 + // A segment in the SELECT clause is incompatible with a metric in the + // SELECT or WHERE clause. + QueryErrorEnum_PROHIBITED_SEGMENT_WITH_METRIC_IN_SELECT_OR_WHERE_CLAUSE QueryErrorEnum_QueryError = 53 + // The value passed to the limit clause is too low. + QueryErrorEnum_LIMIT_VALUE_TOO_LOW QueryErrorEnum_QueryError = 25 + // Query has a string containing a newline character. + QueryErrorEnum_PROHIBITED_NEWLINE_IN_STRING QueryErrorEnum_QueryError = 8 + // List contains values of different types. + QueryErrorEnum_PROHIBITED_VALUE_COMBINATION_IN_LIST QueryErrorEnum_QueryError = 10 + // The values passed to the BETWEEN operator are not of the same type. + QueryErrorEnum_PROHIBITED_VALUE_COMBINATION_WITH_BETWEEN_OPERATOR QueryErrorEnum_QueryError = 21 + // Query contains unterminated string. + QueryErrorEnum_STRING_NOT_TERMINATED QueryErrorEnum_QueryError = 6 + // Too many segments are specified in SELECT clause. + QueryErrorEnum_TOO_MANY_SEGMENTS QueryErrorEnum_QueryError = 34 + // Query is incomplete and cannot be parsed. + QueryErrorEnum_UNEXPECTED_END_OF_QUERY QueryErrorEnum_QueryError = 9 + // FROM clause cannot be specified in this query. + QueryErrorEnum_UNEXPECTED_FROM_CLAUSE QueryErrorEnum_QueryError = 47 + // Query contains one or more unrecognized fields. + QueryErrorEnum_UNRECOGNIZED_FIELD QueryErrorEnum_QueryError = 32 + // Query has an unexpected extra part. + QueryErrorEnum_UNEXPECTED_INPUT QueryErrorEnum_QueryError = 11 +) + +var QueryErrorEnum_QueryError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 50: "QUERY_ERROR", + 18: "BAD_ENUM_CONSTANT", + 7: "BAD_ESCAPE_SEQUENCE", + 12: "BAD_FIELD_NAME", + 15: "BAD_LIMIT_VALUE", + 5: "BAD_NUMBER", + 3: "BAD_OPERATOR", + 45: "BAD_RESOURCE_TYPE_IN_FROM_CLAUSE", + 2: "BAD_SYMBOL", + 4: "BAD_VALUE", + 36: "DATE_RANGE_TOO_WIDE", + 30: "EXPECTED_AND", + 14: "EXPECTED_BY", + 37: "EXPECTED_DIMENSION_FIELD_IN_SELECT_CLAUSE", + 55: "EXPECTED_FILTERS_ON_DATE_RANGE", + 44: "EXPECTED_FROM", + 41: "EXPECTED_LIST", + 16: "EXPECTED_REFERENCED_FIELD_IN_SELECT_CLAUSE", + 13: "EXPECTED_SELECT", + 42: "EXPECTED_SINGLE_VALUE", + 29: "EXPECTED_VALUE_WITH_BETWEEN_OPERATOR", + 38: "INVALID_DATE_FORMAT", + 57: "INVALID_STRING_VALUE", + 26: "INVALID_VALUE_WITH_BETWEEN_OPERATOR", + 22: "INVALID_VALUE_WITH_DURING_OPERATOR", + 56: "INVALID_VALUE_WITH_LIKE_OPERATOR", + 35: "OPERATOR_FIELD_MISMATCH", + 28: "PROHIBITED_EMPTY_LIST_IN_CONDITION", + 54: "PROHIBITED_ENUM_CONSTANT", + 31: "PROHIBITED_FIELD_COMBINATION_IN_SELECT_CLAUSE", + 40: "PROHIBITED_FIELD_IN_ORDER_BY_CLAUSE", + 23: "PROHIBITED_FIELD_IN_SELECT_CLAUSE", + 24: "PROHIBITED_FIELD_IN_WHERE_CLAUSE", + 43: "PROHIBITED_RESOURCE_TYPE_IN_FROM_CLAUSE", + 48: "PROHIBITED_RESOURCE_TYPE_IN_SELECT_CLAUSE", + 58: "PROHIBITED_RESOURCE_TYPE_IN_WHERE_CLAUSE", + 49: "PROHIBITED_METRIC_IN_SELECT_OR_WHERE_CLAUSE", + 51: "PROHIBITED_SEGMENT_IN_SELECT_OR_WHERE_CLAUSE", + 53: "PROHIBITED_SEGMENT_WITH_METRIC_IN_SELECT_OR_WHERE_CLAUSE", + 25: "LIMIT_VALUE_TOO_LOW", + 8: "PROHIBITED_NEWLINE_IN_STRING", + 10: "PROHIBITED_VALUE_COMBINATION_IN_LIST", + 21: "PROHIBITED_VALUE_COMBINATION_WITH_BETWEEN_OPERATOR", + 6: "STRING_NOT_TERMINATED", + 34: "TOO_MANY_SEGMENTS", + 9: "UNEXPECTED_END_OF_QUERY", + 47: "UNEXPECTED_FROM_CLAUSE", + 32: "UNRECOGNIZED_FIELD", + 11: "UNEXPECTED_INPUT", +} +var QueryErrorEnum_QueryError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "QUERY_ERROR": 50, + "BAD_ENUM_CONSTANT": 18, + "BAD_ESCAPE_SEQUENCE": 7, + "BAD_FIELD_NAME": 12, + "BAD_LIMIT_VALUE": 15, + "BAD_NUMBER": 5, + "BAD_OPERATOR": 3, + "BAD_RESOURCE_TYPE_IN_FROM_CLAUSE": 45, + "BAD_SYMBOL": 2, + "BAD_VALUE": 4, + "DATE_RANGE_TOO_WIDE": 36, + "EXPECTED_AND": 30, + "EXPECTED_BY": 14, + "EXPECTED_DIMENSION_FIELD_IN_SELECT_CLAUSE": 37, + "EXPECTED_FILTERS_ON_DATE_RANGE": 55, + "EXPECTED_FROM": 44, + "EXPECTED_LIST": 41, + "EXPECTED_REFERENCED_FIELD_IN_SELECT_CLAUSE": 16, + "EXPECTED_SELECT": 13, + "EXPECTED_SINGLE_VALUE": 42, + "EXPECTED_VALUE_WITH_BETWEEN_OPERATOR": 29, + "INVALID_DATE_FORMAT": 38, + "INVALID_STRING_VALUE": 57, + "INVALID_VALUE_WITH_BETWEEN_OPERATOR": 26, + "INVALID_VALUE_WITH_DURING_OPERATOR": 22, + "INVALID_VALUE_WITH_LIKE_OPERATOR": 56, + "OPERATOR_FIELD_MISMATCH": 35, + "PROHIBITED_EMPTY_LIST_IN_CONDITION": 28, + "PROHIBITED_ENUM_CONSTANT": 54, + "PROHIBITED_FIELD_COMBINATION_IN_SELECT_CLAUSE": 31, + "PROHIBITED_FIELD_IN_ORDER_BY_CLAUSE": 40, + "PROHIBITED_FIELD_IN_SELECT_CLAUSE": 23, + "PROHIBITED_FIELD_IN_WHERE_CLAUSE": 24, + "PROHIBITED_RESOURCE_TYPE_IN_FROM_CLAUSE": 43, + "PROHIBITED_RESOURCE_TYPE_IN_SELECT_CLAUSE": 48, + "PROHIBITED_RESOURCE_TYPE_IN_WHERE_CLAUSE": 58, + "PROHIBITED_METRIC_IN_SELECT_OR_WHERE_CLAUSE": 49, + "PROHIBITED_SEGMENT_IN_SELECT_OR_WHERE_CLAUSE": 51, + "PROHIBITED_SEGMENT_WITH_METRIC_IN_SELECT_OR_WHERE_CLAUSE": 53, + "LIMIT_VALUE_TOO_LOW": 25, + "PROHIBITED_NEWLINE_IN_STRING": 8, + "PROHIBITED_VALUE_COMBINATION_IN_LIST": 10, + "PROHIBITED_VALUE_COMBINATION_WITH_BETWEEN_OPERATOR": 21, + "STRING_NOT_TERMINATED": 6, + "TOO_MANY_SEGMENTS": 34, + "UNEXPECTED_END_OF_QUERY": 9, + "UNEXPECTED_FROM_CLAUSE": 47, + "UNRECOGNIZED_FIELD": 32, + "UNEXPECTED_INPUT": 11, +} + +func (x QueryErrorEnum_QueryError) String() string { + return proto.EnumName(QueryErrorEnum_QueryError_name, int32(x)) +} +func (QueryErrorEnum_QueryError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_query_error_05d7949cfbd507aa, []int{0, 0} +} + +// Container for enum describing possible query errors. +type QueryErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *QueryErrorEnum) Reset() { *m = QueryErrorEnum{} } +func (m *QueryErrorEnum) String() string { return proto.CompactTextString(m) } +func (*QueryErrorEnum) ProtoMessage() {} +func (*QueryErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_query_error_05d7949cfbd507aa, []int{0} +} +func (m *QueryErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_QueryErrorEnum.Unmarshal(m, b) +} +func (m *QueryErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_QueryErrorEnum.Marshal(b, m, deterministic) +} +func (dst *QueryErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryErrorEnum.Merge(dst, src) +} +func (m *QueryErrorEnum) XXX_Size() int { + return xxx_messageInfo_QueryErrorEnum.Size(m) +} +func (m *QueryErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_QueryErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*QueryErrorEnum)(nil), "google.ads.googleads.v0.errors.QueryErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.QueryErrorEnum_QueryError", QueryErrorEnum_QueryError_name, QueryErrorEnum_QueryError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/query_error.proto", fileDescriptor_query_error_05d7949cfbd507aa) +} + +var fileDescriptor_query_error_05d7949cfbd507aa = []byte{ + // 891 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x55, 0x6d, 0x73, 0xd3, 0x46, + 0x10, 0x2e, 0xd0, 0x42, 0xd9, 0xbc, 0x1d, 0x0b, 0x79, 0x81, 0xa6, 0x69, 0x6a, 0x02, 0x04, 0x92, + 0xc8, 0x06, 0xa6, 0x94, 0xbe, 0x7c, 0x39, 0x49, 0x6b, 0xe7, 0x06, 0xe9, 0x4e, 0x39, 0x9d, 0xe2, + 0x9a, 0xc9, 0xcc, 0x4d, 0xda, 0x64, 0x3c, 0x9d, 0x81, 0x98, 0xda, 0x85, 0x99, 0xfe, 0x9d, 0x7e, + 0xec, 0xff, 0xe8, 0x97, 0x7e, 0xeb, 0x7f, 0xe8, 0x0f, 0xe9, 0x9c, 0x64, 0xc9, 0x72, 0x31, 0xee, + 0x27, 0xdd, 0x3d, 0xfb, 0x3c, 0xbb, 0x77, 0xab, 0xdd, 0x5b, 0x68, 0xf5, 0x07, 0x83, 0xfe, 0xab, + 0xf3, 0xe6, 0xe9, 0xd9, 0xa8, 0x59, 0x2c, 0xdd, 0xea, 0x5d, 0xab, 0x79, 0x3e, 0x1c, 0x0e, 0x86, + 0xa3, 0xe6, 0x2f, 0x6f, 0xcf, 0x87, 0xbf, 0xd9, 0x7c, 0xe3, 0xbd, 0x19, 0x0e, 0x7e, 0x1d, 0xe0, + 0x56, 0x41, 0xf3, 0x4e, 0xcf, 0x46, 0x5e, 0xa5, 0xf0, 0xde, 0xb5, 0xbc, 0x42, 0xd1, 0xf8, 0x67, + 0x11, 0x96, 0x8f, 0x9c, 0x8a, 0xdc, 0x9e, 0x2e, 0xde, 0xbe, 0x6e, 0xfc, 0xbd, 0x08, 0x30, 0x81, + 0x70, 0x05, 0x16, 0x32, 0x99, 0x26, 0x14, 0x88, 0xb6, 0xa0, 0x90, 0x7d, 0x84, 0x0b, 0x70, 0x2d, + 0x93, 0x2f, 0xa4, 0xea, 0x4a, 0x76, 0xc9, 0x59, 0x8f, 0x32, 0xd2, 0x3d, 0x4b, 0x5a, 0x2b, 0xcd, + 0x9e, 0xe0, 0x2a, 0xdc, 0xf0, 0x79, 0x68, 0x49, 0x66, 0xb1, 0x0d, 0x94, 0x4c, 0x0d, 0x97, 0x86, + 0x21, 0xae, 0xc3, 0xcd, 0x1c, 0x4e, 0x03, 0x9e, 0x90, 0x4d, 0xe9, 0x28, 0x23, 0x19, 0x10, 0xbb, + 0x86, 0x08, 0xcb, 0xce, 0xd0, 0x16, 0x14, 0x85, 0x56, 0xf2, 0x98, 0xd8, 0x22, 0xde, 0x84, 0x15, + 0x87, 0x45, 0x22, 0x16, 0xc6, 0x1e, 0xf3, 0x28, 0x23, 0xb6, 0x82, 0xcb, 0x00, 0x0e, 0x94, 0x59, + 0xec, 0x93, 0x66, 0x9f, 0x20, 0x83, 0x45, 0xb7, 0x57, 0x09, 0x69, 0x6e, 0x94, 0x66, 0x57, 0x70, + 0x07, 0xb6, 0x1d, 0xa2, 0x29, 0x55, 0x99, 0x0e, 0xc8, 0x9a, 0x5e, 0x42, 0x56, 0x48, 0xdb, 0xd6, + 0x2a, 0xb6, 0x41, 0xc4, 0xb3, 0x94, 0xd8, 0x41, 0xe9, 0x27, 0xed, 0xc5, 0xbe, 0x8a, 0xd8, 0x65, + 0x5c, 0x82, 0xeb, 0x6e, 0x5f, 0x84, 0xf9, 0xd8, 0x1d, 0x34, 0xe4, 0x86, 0xac, 0xe6, 0xb2, 0x43, + 0xd6, 0x28, 0x65, 0xbb, 0x22, 0x24, 0xb6, 0xe3, 0xe2, 0xd1, 0x0f, 0x09, 0x05, 0x86, 0x42, 0xcb, + 0x65, 0xc8, 0xb6, 0xdc, 0xdd, 0x2b, 0xc4, 0xef, 0xb1, 0x65, 0x3c, 0x80, 0x87, 0x15, 0x10, 0x8a, + 0x98, 0x64, 0x2a, 0x94, 0x1c, 0x5f, 0x4d, 0x48, 0x9b, 0x52, 0x44, 0x81, 0x29, 0x4f, 0x72, 0x0f, + 0x1b, 0xb0, 0x55, 0xd1, 0xdb, 0x22, 0x32, 0xa4, 0x53, 0xab, 0xa4, 0x9d, 0x84, 0x67, 0x5f, 0xe3, + 0x0d, 0x58, 0x9a, 0x70, 0xb4, 0x8a, 0xd9, 0xfe, 0x14, 0x14, 0x89, 0xd4, 0xb0, 0x87, 0xe8, 0xc1, + 0xa3, 0x0a, 0xd2, 0xd4, 0x26, 0xed, 0x92, 0x1b, 0x7e, 0x28, 0x32, 0x73, 0x09, 0xae, 0xf8, 0x85, + 0x8d, 0x2d, 0xe1, 0x6d, 0x58, 0x9d, 0x80, 0x42, 0x76, 0x22, 0x1a, 0x27, 0xe5, 0x11, 0xee, 0xc2, + 0x4e, 0x65, 0xca, 0x31, 0xdb, 0x15, 0xe6, 0xd0, 0xfa, 0x64, 0xba, 0x44, 0x72, 0xf2, 0x0f, 0x3e, + 0x77, 0xe9, 0x13, 0xf2, 0x98, 0x47, 0x22, 0x2c, 0xee, 0xd1, 0x56, 0x3a, 0xe6, 0x86, 0xdd, 0xc7, + 0x0d, 0xb8, 0x55, 0x1a, 0x52, 0xa3, 0x85, 0xec, 0x8c, 0x9d, 0x7f, 0x83, 0x0f, 0xe0, 0x6e, 0x69, + 0x99, 0xe7, 0xfb, 0x0e, 0xde, 0x87, 0xc6, 0x0c, 0x62, 0x98, 0xe5, 0xde, 0x2a, 0xde, 0x9a, 0xab, + 0x83, 0x19, 0xbc, 0x48, 0xbc, 0xa0, 0x09, 0xeb, 0x39, 0x7e, 0x06, 0xeb, 0xe5, 0x6e, 0x9c, 0xa8, + 0x58, 0xa4, 0x31, 0x37, 0xc1, 0x21, 0xbb, 0xeb, 0x42, 0x25, 0x5a, 0x1d, 0x0a, 0x5f, 0xb8, 0x2b, + 0x53, 0x9c, 0x98, 0x5e, 0x9e, 0x6b, 0x97, 0xcc, 0x40, 0xc9, 0x50, 0x18, 0xa1, 0x24, 0xdb, 0xc4, + 0x4d, 0xd8, 0xa8, 0xf3, 0xa6, 0x8a, 0xfe, 0x19, 0x3e, 0x86, 0x83, 0x9a, 0xb5, 0x08, 0x12, 0xa8, + 0xd8, 0x17, 0x92, 0x3b, 0xfd, 0xfb, 0x7f, 0xe6, 0x0b, 0x97, 0x8c, 0xf7, 0x24, 0x42, 0x5a, 0xa5, + 0x43, 0xd2, 0xd6, 0xef, 0x95, 0xc4, 0x5d, 0xbc, 0x07, 0x5f, 0xce, 0x22, 0x4e, 0xfb, 0x5b, 0x77, + 0xb9, 0x98, 0x45, 0xeb, 0x1e, 0x92, 0xa6, 0x92, 0xb5, 0x81, 0x7b, 0xf0, 0xa0, 0xc6, 0x9a, 0xdb, + 0x40, 0x7b, 0xae, 0xca, 0xe7, 0x91, 0xa7, 0x4f, 0xd0, 0xc2, 0x7d, 0xd8, 0x9d, 0x47, 0x9f, 0x3a, + 0xc9, 0xb7, 0xd8, 0x84, 0xbd, 0x1a, 0x3b, 0x26, 0xa3, 0x45, 0x50, 0xf3, 0xaa, 0xf4, 0xb4, 0xe0, + 0x31, 0xb6, 0x60, 0xbf, 0x26, 0x48, 0xa9, 0x13, 0x93, 0x34, 0x73, 0x14, 0x4f, 0xf1, 0x7b, 0x78, + 0x3e, 0x43, 0x91, 0xd7, 0xc8, 0xff, 0xc6, 0xfb, 0xca, 0x15, 0x78, 0xed, 0x5d, 0xca, 0x1f, 0x88, + 0x48, 0x75, 0xd9, 0x6d, 0xdc, 0x86, 0xcd, 0x9a, 0x5b, 0x49, 0xdd, 0x48, 0xc8, 0x22, 0x21, 0x79, + 0xb9, 0xb3, 0x4f, 0x5d, 0x17, 0xd5, 0x18, 0x85, 0xfe, 0x3f, 0xe5, 0x90, 0xf7, 0x33, 0xe0, 0x33, + 0x78, 0x32, 0x97, 0x39, 0xbb, 0x43, 0x56, 0x5d, 0x0b, 0x8f, 0x9b, 0x4b, 0x2a, 0x63, 0x0d, 0xe9, + 0xd8, 0x29, 0x28, 0x64, 0x57, 0xdd, 0xbb, 0xec, 0xce, 0x1a, 0x73, 0xd9, 0x2b, 0xef, 0x9c, 0xb2, + 0x86, 0xeb, 0x82, 0x4c, 0x56, 0xbd, 0x4d, 0x32, 0xb4, 0xaa, 0x6d, 0xf3, 0x17, 0x9d, 0x5d, 0xc7, + 0x3b, 0xb0, 0x56, 0x33, 0xd6, 0xab, 0xa0, 0x89, 0x6b, 0x80, 0x99, 0xd4, 0x14, 0xa8, 0x8e, 0x14, + 0x2f, 0xcb, 0xd2, 0x62, 0xdb, 0x78, 0x0b, 0x58, 0x4d, 0x23, 0x64, 0x92, 0x19, 0xb6, 0xe0, 0xff, + 0x79, 0x09, 0x1a, 0x3f, 0x0d, 0x5e, 0x7b, 0xf3, 0xa7, 0x91, 0xbf, 0x32, 0x99, 0x3b, 0x89, 0x1b, + 0x5f, 0xc9, 0xa5, 0x97, 0xe1, 0x58, 0xd2, 0x1f, 0xbc, 0x3a, 0xbd, 0xe8, 0x7b, 0x83, 0x61, 0xbf, + 0xd9, 0x3f, 0xbf, 0xc8, 0x87, 0x5b, 0x39, 0x02, 0xdf, 0xfc, 0x3c, 0xfa, 0xd0, 0x44, 0xfc, 0xae, + 0xf8, 0xfc, 0x7e, 0xf9, 0x4a, 0x87, 0xf3, 0x3f, 0x2e, 0x6f, 0x75, 0x0a, 0x67, 0xfc, 0x6c, 0xe4, + 0x15, 0x4b, 0xb7, 0x3a, 0x6e, 0x79, 0x79, 0xc8, 0xd1, 0x5f, 0x25, 0xe1, 0x84, 0x9f, 0x8d, 0x4e, + 0x2a, 0xc2, 0xc9, 0x71, 0xeb, 0xa4, 0x20, 0xfc, 0x78, 0x35, 0x0f, 0xfc, 0xf4, 0xdf, 0x00, 0x00, + 0x00, 0xff, 0xff, 0x91, 0x95, 0x3d, 0x58, 0x89, 0x07, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/quota_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/quota_error.pb.go new file mode 100644 index 000000000..e1cd9e3b4 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/quota_error.pb.go @@ -0,0 +1,120 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/quota_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible quota errors. +type QuotaErrorEnum_QuotaError int32 + +const ( + // Enum unspecified. + QuotaErrorEnum_UNSPECIFIED QuotaErrorEnum_QuotaError = 0 + // The received error code is not known in this version. + QuotaErrorEnum_UNKNOWN QuotaErrorEnum_QuotaError = 1 + // Too many requests. + QuotaErrorEnum_RESOURCE_EXHAUSTED QuotaErrorEnum_QuotaError = 2 + // Access is prohibited. + QuotaErrorEnum_ACCESS_PROHIBITED QuotaErrorEnum_QuotaError = 3 + // Too many requests in a short amount of time. + QuotaErrorEnum_RESOURCE_TEMPORARILY_EXHAUSTED QuotaErrorEnum_QuotaError = 4 +) + +var QuotaErrorEnum_QuotaError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "RESOURCE_EXHAUSTED", + 3: "ACCESS_PROHIBITED", + 4: "RESOURCE_TEMPORARILY_EXHAUSTED", +} +var QuotaErrorEnum_QuotaError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "RESOURCE_EXHAUSTED": 2, + "ACCESS_PROHIBITED": 3, + "RESOURCE_TEMPORARILY_EXHAUSTED": 4, +} + +func (x QuotaErrorEnum_QuotaError) String() string { + return proto.EnumName(QuotaErrorEnum_QuotaError_name, int32(x)) +} +func (QuotaErrorEnum_QuotaError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_quota_error_9801f34daa09281d, []int{0, 0} +} + +// Container for enum describing possible quota errors. +type QuotaErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *QuotaErrorEnum) Reset() { *m = QuotaErrorEnum{} } +func (m *QuotaErrorEnum) String() string { return proto.CompactTextString(m) } +func (*QuotaErrorEnum) ProtoMessage() {} +func (*QuotaErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_quota_error_9801f34daa09281d, []int{0} +} +func (m *QuotaErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_QuotaErrorEnum.Unmarshal(m, b) +} +func (m *QuotaErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_QuotaErrorEnum.Marshal(b, m, deterministic) +} +func (dst *QuotaErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_QuotaErrorEnum.Merge(dst, src) +} +func (m *QuotaErrorEnum) XXX_Size() int { + return xxx_messageInfo_QuotaErrorEnum.Size(m) +} +func (m *QuotaErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_QuotaErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_QuotaErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*QuotaErrorEnum)(nil), "google.ads.googleads.v0.errors.QuotaErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.QuotaErrorEnum_QuotaError", QuotaErrorEnum_QuotaError_name, QuotaErrorEnum_QuotaError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/quota_error.proto", fileDescriptor_quota_error_9801f34daa09281d) +} + +var fileDescriptor_quota_error_9801f34daa09281d = []byte{ + // 296 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x32, 0x48, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xa2, + 0xa2, 0xfc, 0xa2, 0x62, 0xfd, 0xc2, 0xd2, 0xfc, 0x92, 0xc4, 0x78, 0x30, 0x47, 0xaf, 0xa0, 0x28, + 0xbf, 0x24, 0x5f, 0x48, 0x0e, 0xa2, 0x4c, 0x2f, 0x31, 0xa5, 0x58, 0x0f, 0xae, 0x43, 0xaf, 0xcc, + 0x40, 0x0f, 0xa2, 0x43, 0xa9, 0x9f, 0x91, 0x8b, 0x2f, 0x10, 0xa4, 0xcb, 0x15, 0xc4, 0x77, 0xcd, + 0x2b, 0xcd, 0x55, 0xaa, 0xe5, 0xe2, 0x42, 0x88, 0x08, 0xf1, 0x73, 0x71, 0x87, 0xfa, 0x05, 0x07, + 0xb8, 0x3a, 0x7b, 0xba, 0x79, 0xba, 0xba, 0x08, 0x30, 0x08, 0x71, 0x73, 0xb1, 0x87, 0xfa, 0x79, + 0xfb, 0xf9, 0x87, 0xfb, 0x09, 0x30, 0x0a, 0x89, 0x71, 0x09, 0x05, 0xb9, 0x06, 0xfb, 0x87, 0x06, + 0x39, 0xbb, 0xc6, 0xbb, 0x46, 0x78, 0x38, 0x86, 0x06, 0x87, 0xb8, 0xba, 0x08, 0x30, 0x09, 0x89, + 0x72, 0x09, 0x3a, 0x3a, 0x3b, 0xbb, 0x06, 0x07, 0xc7, 0x07, 0x04, 0xf9, 0x7b, 0x78, 0x3a, 0x79, + 0x82, 0x84, 0x99, 0x85, 0x94, 0xb8, 0xe4, 0xe0, 0xca, 0x43, 0x5c, 0x7d, 0x03, 0xfc, 0x83, 0x1c, + 0x83, 0x3c, 0x7d, 0x22, 0x91, 0xb4, 0xb2, 0x38, 0x1d, 0x65, 0xe4, 0x52, 0x4a, 0xce, 0xcf, 0xd5, + 0xc3, 0xef, 0x70, 0x27, 0x7e, 0x84, 0x1b, 0x03, 0x40, 0x3e, 0x0d, 0x60, 0x8c, 0x72, 0x81, 0x6a, + 0x49, 0xcf, 0xcf, 0x49, 0xcc, 0x4b, 0xd7, 0xcb, 0x2f, 0x4a, 0xd7, 0x4f, 0x4f, 0xcd, 0x03, 0x87, + 0x03, 0x2c, 0xb4, 0x0a, 0x32, 0x8b, 0x71, 0x05, 0x9e, 0x35, 0x84, 0x5a, 0xc4, 0xc4, 0xec, 0xee, + 0xe8, 0xb8, 0x8a, 0x49, 0xce, 0x1d, 0x62, 0x98, 0x63, 0x4a, 0xb1, 0x1e, 0x84, 0x09, 0x62, 0x85, + 0x19, 0xe8, 0x81, 0xad, 0x2c, 0x3e, 0x05, 0x53, 0x10, 0xe3, 0x98, 0x52, 0x1c, 0x03, 0x57, 0x10, + 0x13, 0x66, 0x10, 0x03, 0x51, 0x90, 0xc4, 0x06, 0xb6, 0xd8, 0x18, 0x10, 0x00, 0x00, 0xff, 0xff, + 0x3d, 0x54, 0x2f, 0x04, 0xb4, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/range_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/range_error.pb.go new file mode 100644 index 000000000..0cb47f94e --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/range_error.pb.go @@ -0,0 +1,113 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/range_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible range errors. +type RangeErrorEnum_RangeError int32 + +const ( + // Enum unspecified. + RangeErrorEnum_UNSPECIFIED RangeErrorEnum_RangeError = 0 + // The received error code is not known in this version. + RangeErrorEnum_UNKNOWN RangeErrorEnum_RangeError = 1 + // Too low. + RangeErrorEnum_TOO_LOW RangeErrorEnum_RangeError = 2 + // Too high. + RangeErrorEnum_TOO_HIGH RangeErrorEnum_RangeError = 3 +) + +var RangeErrorEnum_RangeError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "TOO_LOW", + 3: "TOO_HIGH", +} +var RangeErrorEnum_RangeError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "TOO_LOW": 2, + "TOO_HIGH": 3, +} + +func (x RangeErrorEnum_RangeError) String() string { + return proto.EnumName(RangeErrorEnum_RangeError_name, int32(x)) +} +func (RangeErrorEnum_RangeError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_range_error_ead582fc3159a23a, []int{0, 0} +} + +// Container for enum describing possible range errors. +type RangeErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RangeErrorEnum) Reset() { *m = RangeErrorEnum{} } +func (m *RangeErrorEnum) String() string { return proto.CompactTextString(m) } +func (*RangeErrorEnum) ProtoMessage() {} +func (*RangeErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_range_error_ead582fc3159a23a, []int{0} +} +func (m *RangeErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RangeErrorEnum.Unmarshal(m, b) +} +func (m *RangeErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RangeErrorEnum.Marshal(b, m, deterministic) +} +func (dst *RangeErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_RangeErrorEnum.Merge(dst, src) +} +func (m *RangeErrorEnum) XXX_Size() int { + return xxx_messageInfo_RangeErrorEnum.Size(m) +} +func (m *RangeErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_RangeErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_RangeErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*RangeErrorEnum)(nil), "google.ads.googleads.v0.errors.RangeErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.RangeErrorEnum_RangeError", RangeErrorEnum_RangeError_name, RangeErrorEnum_RangeError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/range_error.proto", fileDescriptor_range_error_ead582fc3159a23a) +} + +var fileDescriptor_range_error_ead582fc3159a23a = []byte{ + // 252 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x32, 0x48, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xa2, + 0xa2, 0xfc, 0xa2, 0x62, 0xfd, 0xa2, 0xc4, 0xbc, 0xf4, 0xd4, 0x78, 0x30, 0x47, 0xaf, 0xa0, 0x28, + 0xbf, 0x24, 0x5f, 0x48, 0x0e, 0xa2, 0x4c, 0x2f, 0x31, 0xa5, 0x58, 0x0f, 0xae, 0x43, 0xaf, 0xcc, + 0x40, 0x0f, 0xa2, 0x43, 0x29, 0x9c, 0x8b, 0x2f, 0x08, 0xa4, 0xc9, 0x15, 0xc4, 0x75, 0xcd, 0x2b, + 0xcd, 0x55, 0x72, 0xe5, 0xe2, 0x42, 0x88, 0x08, 0xf1, 0x73, 0x71, 0x87, 0xfa, 0x05, 0x07, 0xb8, + 0x3a, 0x7b, 0xba, 0x79, 0xba, 0xba, 0x08, 0x30, 0x08, 0x71, 0x73, 0xb1, 0x87, 0xfa, 0x79, 0xfb, + 0xf9, 0x87, 0xfb, 0x09, 0x30, 0x82, 0x38, 0x21, 0xfe, 0xfe, 0xf1, 0x3e, 0xfe, 0xe1, 0x02, 0x4c, + 0x42, 0x3c, 0x5c, 0x1c, 0x20, 0x8e, 0x87, 0xa7, 0xbb, 0x87, 0x00, 0xb3, 0xd3, 0x51, 0x46, 0x2e, + 0xa5, 0xe4, 0xfc, 0x5c, 0x3d, 0xfc, 0xf6, 0x3b, 0xf1, 0x23, 0xec, 0x0a, 0x00, 0x39, 0x38, 0x80, + 0x31, 0xca, 0x05, 0xaa, 0x25, 0x3d, 0x3f, 0x27, 0x31, 0x2f, 0x5d, 0x2f, 0xbf, 0x28, 0x5d, 0x3f, + 0x3d, 0x35, 0x0f, 0xec, 0x1d, 0x98, 0xa7, 0x0b, 0x32, 0x8b, 0x71, 0x85, 0x81, 0x35, 0x84, 0x5a, + 0xc4, 0xc4, 0xec, 0xee, 0xe8, 0xb8, 0x8a, 0x49, 0xce, 0x1d, 0x62, 0x98, 0x63, 0x4a, 0xb1, 0x1e, + 0x84, 0x09, 0x62, 0x85, 0x19, 0xe8, 0x81, 0xad, 0x2c, 0x3e, 0x05, 0x53, 0x10, 0xe3, 0x98, 0x52, + 0x1c, 0x03, 0x57, 0x10, 0x13, 0x66, 0x10, 0x03, 0x51, 0x90, 0xc4, 0x06, 0xb6, 0xd8, 0x18, 0x10, + 0x00, 0x00, 0xff, 0xff, 0x08, 0xef, 0x18, 0x16, 0x7b, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/recommendation_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/recommendation_error.pb.go new file mode 100644 index 000000000..d84fb1fea --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/recommendation_error.pb.go @@ -0,0 +1,174 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/recommendation_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible errors from applying a recommendation. +type RecommendationErrorEnum_RecommendationError int32 + +const ( + // Enum unspecified. + RecommendationErrorEnum_UNSPECIFIED RecommendationErrorEnum_RecommendationError = 0 + // The received error code is not known in this version. + RecommendationErrorEnum_UNKNOWN RecommendationErrorEnum_RecommendationError = 1 + // The specified budget amount is too low e.g. lower than minimum currency + // unit or lower than ad group minimum cost-per-click. + RecommendationErrorEnum_BUDGET_AMOUNT_TOO_SMALL RecommendationErrorEnum_RecommendationError = 2 + // The specified budget amount is too large. + RecommendationErrorEnum_BUDGET_AMOUNT_TOO_LARGE RecommendationErrorEnum_RecommendationError = 3 + // The specified budget amount is not a valid amount. e.g. not a multiple + // of minimum currency unit. + RecommendationErrorEnum_INVALID_BUDGET_AMOUNT RecommendationErrorEnum_RecommendationError = 4 + // The specified keyword or ad violates ad policy. + RecommendationErrorEnum_POLICY_ERROR RecommendationErrorEnum_RecommendationError = 5 + // The specified bid amount is not valid. e.g. too many fractional digits, + // or negative amount. + RecommendationErrorEnum_INVALID_BID_AMOUNT RecommendationErrorEnum_RecommendationError = 6 + // The number of keywords in ad group have reached the maximum allowed. + RecommendationErrorEnum_ADGROUP_KEYWORD_LIMIT RecommendationErrorEnum_RecommendationError = 7 + // The recommendation requested to apply has already been applied. + RecommendationErrorEnum_RECOMMENDATION_ALREADY_APPLIED RecommendationErrorEnum_RecommendationError = 8 + // The recommendation requested to apply has been invalidated. + RecommendationErrorEnum_RECOMMENDATION_INVALIDATED RecommendationErrorEnum_RecommendationError = 9 + // The number of operations in a single request exceeds the maximum allowed. + RecommendationErrorEnum_TOO_MANY_OPERATIONS RecommendationErrorEnum_RecommendationError = 10 + // There are no operations in the request. + RecommendationErrorEnum_NO_OPERATIONS RecommendationErrorEnum_RecommendationError = 11 + // Operations with multiple recommendation types are not supported when + // partial failure mode is not enabled. + RecommendationErrorEnum_DIFFERENT_TYPES_NOT_SUPPORTED RecommendationErrorEnum_RecommendationError = 12 + // Request contains multiple operations with the same resource_name. + RecommendationErrorEnum_DUPLICATE_RESOURCE_NAME RecommendationErrorEnum_RecommendationError = 13 + // The recommendation requested to dismiss has already been dismissed. + RecommendationErrorEnum_RECOMMENDATION_ALREADY_DISMISSED RecommendationErrorEnum_RecommendationError = 14 +) + +var RecommendationErrorEnum_RecommendationError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "BUDGET_AMOUNT_TOO_SMALL", + 3: "BUDGET_AMOUNT_TOO_LARGE", + 4: "INVALID_BUDGET_AMOUNT", + 5: "POLICY_ERROR", + 6: "INVALID_BID_AMOUNT", + 7: "ADGROUP_KEYWORD_LIMIT", + 8: "RECOMMENDATION_ALREADY_APPLIED", + 9: "RECOMMENDATION_INVALIDATED", + 10: "TOO_MANY_OPERATIONS", + 11: "NO_OPERATIONS", + 12: "DIFFERENT_TYPES_NOT_SUPPORTED", + 13: "DUPLICATE_RESOURCE_NAME", + 14: "RECOMMENDATION_ALREADY_DISMISSED", +} +var RecommendationErrorEnum_RecommendationError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "BUDGET_AMOUNT_TOO_SMALL": 2, + "BUDGET_AMOUNT_TOO_LARGE": 3, + "INVALID_BUDGET_AMOUNT": 4, + "POLICY_ERROR": 5, + "INVALID_BID_AMOUNT": 6, + "ADGROUP_KEYWORD_LIMIT": 7, + "RECOMMENDATION_ALREADY_APPLIED": 8, + "RECOMMENDATION_INVALIDATED": 9, + "TOO_MANY_OPERATIONS": 10, + "NO_OPERATIONS": 11, + "DIFFERENT_TYPES_NOT_SUPPORTED": 12, + "DUPLICATE_RESOURCE_NAME": 13, + "RECOMMENDATION_ALREADY_DISMISSED": 14, +} + +func (x RecommendationErrorEnum_RecommendationError) String() string { + return proto.EnumName(RecommendationErrorEnum_RecommendationError_name, int32(x)) +} +func (RecommendationErrorEnum_RecommendationError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_recommendation_error_a079eff07de8f83e, []int{0, 0} +} + +// Container for enum describing possible errors from applying a recommendation. +type RecommendationErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RecommendationErrorEnum) Reset() { *m = RecommendationErrorEnum{} } +func (m *RecommendationErrorEnum) String() string { return proto.CompactTextString(m) } +func (*RecommendationErrorEnum) ProtoMessage() {} +func (*RecommendationErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_recommendation_error_a079eff07de8f83e, []int{0} +} +func (m *RecommendationErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RecommendationErrorEnum.Unmarshal(m, b) +} +func (m *RecommendationErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RecommendationErrorEnum.Marshal(b, m, deterministic) +} +func (dst *RecommendationErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_RecommendationErrorEnum.Merge(dst, src) +} +func (m *RecommendationErrorEnum) XXX_Size() int { + return xxx_messageInfo_RecommendationErrorEnum.Size(m) +} +func (m *RecommendationErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_RecommendationErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_RecommendationErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*RecommendationErrorEnum)(nil), "google.ads.googleads.v0.errors.RecommendationErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.RecommendationErrorEnum_RecommendationError", RecommendationErrorEnum_RecommendationError_name, RecommendationErrorEnum_RecommendationError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/recommendation_error.proto", fileDescriptor_recommendation_error_a079eff07de8f83e) +} + +var fileDescriptor_recommendation_error_a079eff07de8f83e = []byte{ + // 464 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x92, 0xdf, 0x6e, 0xd3, 0x30, + 0x14, 0xc6, 0x59, 0x0b, 0x1b, 0xb8, 0x1b, 0x18, 0x4f, 0x50, 0xfe, 0x88, 0x0a, 0x2a, 0xae, 0xd3, + 0x4a, 0x5c, 0x21, 0xae, 0xdc, 0xf8, 0x34, 0xb2, 0x96, 0xd8, 0x96, 0x93, 0x74, 0x0a, 0xaa, 0x64, + 0x95, 0x25, 0x8a, 0x26, 0xad, 0xf1, 0x94, 0x8c, 0x3d, 0x10, 0xdc, 0xf1, 0x12, 0xdc, 0x73, 0xc1, + 0x33, 0x21, 0x27, 0x6b, 0xc5, 0x50, 0xc7, 0x55, 0x3e, 0xf9, 0xfc, 0xbe, 0x73, 0xec, 0x9c, 0x0f, + 0x7d, 0x2c, 0xad, 0x2d, 0x2f, 0x8a, 0xc9, 0x2a, 0x6f, 0x26, 0x9d, 0x74, 0xea, 0x7a, 0x3a, 0x29, + 0xea, 0xda, 0xd6, 0xcd, 0xa4, 0x2e, 0xce, 0xec, 0x7a, 0x5d, 0x54, 0xf9, 0xea, 0xea, 0xdc, 0x56, + 0xa6, 0x3d, 0xf5, 0x2e, 0x6b, 0x7b, 0x65, 0xc9, 0xa8, 0xe3, 0xbd, 0x55, 0xde, 0x78, 0x5b, 0xab, + 0x77, 0x3d, 0xf5, 0x3a, 0xeb, 0xf8, 0x67, 0x1f, 0x0d, 0xf5, 0x2d, 0x3b, 0xb8, 0x02, 0x54, 0x5f, + 0xd7, 0xe3, 0xef, 0x7d, 0x74, 0xbc, 0xa3, 0x46, 0x9e, 0xa0, 0x41, 0x2a, 0x62, 0x05, 0x3e, 0x9f, + 0x73, 0x60, 0xf8, 0x1e, 0x19, 0xa0, 0x83, 0x54, 0x9c, 0x08, 0x79, 0x2a, 0xf0, 0x1e, 0x79, 0x8d, + 0x86, 0xb3, 0x94, 0x05, 0x90, 0x18, 0x1a, 0xc9, 0x54, 0x24, 0x26, 0x91, 0xd2, 0xc4, 0x11, 0x0d, + 0x43, 0xdc, 0xdb, 0x5d, 0x0c, 0xa9, 0x0e, 0x00, 0xf7, 0xc9, 0x4b, 0xf4, 0x8c, 0x8b, 0x05, 0x0d, + 0x39, 0x33, 0xb7, 0x20, 0x7c, 0x9f, 0x60, 0x74, 0xa8, 0x64, 0xc8, 0xfd, 0xcc, 0x80, 0xd6, 0x52, + 0xe3, 0x07, 0xe4, 0x39, 0x22, 0x5b, 0x98, 0xb3, 0x0d, 0xb9, 0xef, 0x9a, 0x50, 0x16, 0x68, 0x99, + 0x2a, 0x73, 0x02, 0xd9, 0xa9, 0xd4, 0xcc, 0x84, 0x3c, 0xe2, 0x09, 0x3e, 0x20, 0x63, 0x34, 0xd2, + 0xe0, 0xcb, 0x28, 0x02, 0xc1, 0x68, 0xc2, 0xa5, 0x30, 0x34, 0xd4, 0x40, 0x59, 0x66, 0xa8, 0x52, + 0xa1, 0x7b, 0xca, 0x43, 0x32, 0x42, 0xaf, 0xfe, 0x61, 0x6e, 0xa6, 0xd0, 0x04, 0x18, 0x7e, 0x44, + 0x86, 0xe8, 0xd8, 0x5d, 0x39, 0xa2, 0x22, 0x33, 0x52, 0x81, 0x6e, 0x99, 0x18, 0x23, 0xf2, 0x14, + 0x1d, 0x09, 0xf9, 0xf7, 0xd1, 0x80, 0xbc, 0x43, 0x6f, 0x18, 0x9f, 0xcf, 0x41, 0x83, 0x7b, 0x68, + 0xa6, 0x20, 0x36, 0x42, 0x26, 0x26, 0x4e, 0x95, 0x92, 0xda, 0xb5, 0x3b, 0x74, 0xff, 0x83, 0xa5, + 0x2a, 0xe4, 0x3e, 0x4d, 0xc0, 0x68, 0x88, 0x65, 0xaa, 0x7d, 0x30, 0x82, 0x46, 0x80, 0x8f, 0xc8, + 0x7b, 0xf4, 0xf6, 0x8e, 0xfb, 0x32, 0x1e, 0x47, 0x3c, 0x8e, 0x81, 0xe1, 0xc7, 0xb3, 0xdf, 0x7b, + 0x68, 0x7c, 0x66, 0xd7, 0xde, 0xff, 0x17, 0x3d, 0x7b, 0xb1, 0x63, 0x93, 0xca, 0x45, 0x44, 0xed, + 0x7d, 0x66, 0x37, 0xde, 0xd2, 0x5e, 0xac, 0xaa, 0xd2, 0xb3, 0x75, 0x39, 0x29, 0x8b, 0xaa, 0x0d, + 0xd0, 0x26, 0x6f, 0x97, 0xe7, 0xcd, 0x5d, 0xf1, 0xfb, 0xd4, 0x7d, 0xbe, 0xf5, 0xfa, 0x01, 0xa5, + 0x3f, 0x7a, 0xa3, 0xa0, 0x6b, 0x46, 0xf3, 0xc6, 0xeb, 0xa4, 0x53, 0x8b, 0xa9, 0xd7, 0x8e, 0x6c, + 0x7e, 0x6d, 0x80, 0x25, 0xcd, 0x9b, 0xe5, 0x16, 0x58, 0x2e, 0xa6, 0xcb, 0x0e, 0xf8, 0xb2, 0xdf, + 0x0e, 0xfe, 0xf0, 0x27, 0x00, 0x00, 0xff, 0xff, 0xba, 0xfb, 0xc9, 0x17, 0xf6, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/region_code_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/region_code_error.pb.go new file mode 100644 index 000000000..b8a7f2acd --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/region_code_error.pb.go @@ -0,0 +1,110 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/region_code_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible region code errors. +type RegionCodeErrorEnum_RegionCodeError int32 + +const ( + // Enum unspecified. + RegionCodeErrorEnum_UNSPECIFIED RegionCodeErrorEnum_RegionCodeError = 0 + // The received error code is not known in this version. + RegionCodeErrorEnum_UNKNOWN RegionCodeErrorEnum_RegionCodeError = 1 + // Invalid region code. + RegionCodeErrorEnum_INVALID_REGION_CODE RegionCodeErrorEnum_RegionCodeError = 2 +) + +var RegionCodeErrorEnum_RegionCodeError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "INVALID_REGION_CODE", +} +var RegionCodeErrorEnum_RegionCodeError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "INVALID_REGION_CODE": 2, +} + +func (x RegionCodeErrorEnum_RegionCodeError) String() string { + return proto.EnumName(RegionCodeErrorEnum_RegionCodeError_name, int32(x)) +} +func (RegionCodeErrorEnum_RegionCodeError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_region_code_error_2e633c8a092599b8, []int{0, 0} +} + +// Container for enum describing possible region code errors. +type RegionCodeErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RegionCodeErrorEnum) Reset() { *m = RegionCodeErrorEnum{} } +func (m *RegionCodeErrorEnum) String() string { return proto.CompactTextString(m) } +func (*RegionCodeErrorEnum) ProtoMessage() {} +func (*RegionCodeErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_region_code_error_2e633c8a092599b8, []int{0} +} +func (m *RegionCodeErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RegionCodeErrorEnum.Unmarshal(m, b) +} +func (m *RegionCodeErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RegionCodeErrorEnum.Marshal(b, m, deterministic) +} +func (dst *RegionCodeErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_RegionCodeErrorEnum.Merge(dst, src) +} +func (m *RegionCodeErrorEnum) XXX_Size() int { + return xxx_messageInfo_RegionCodeErrorEnum.Size(m) +} +func (m *RegionCodeErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_RegionCodeErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_RegionCodeErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*RegionCodeErrorEnum)(nil), "google.ads.googleads.v0.errors.RegionCodeErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.RegionCodeErrorEnum_RegionCodeError", RegionCodeErrorEnum_RegionCodeError_name, RegionCodeErrorEnum_RegionCodeError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/region_code_error.proto", fileDescriptor_region_code_error_2e633c8a092599b8) +} + +var fileDescriptor_region_code_error_2e633c8a092599b8 = []byte{ + // 266 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x32, 0x4b, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xa2, + 0xa2, 0xfc, 0xa2, 0x62, 0xfd, 0xa2, 0xd4, 0xf4, 0xcc, 0xfc, 0xbc, 0xf8, 0xe4, 0xfc, 0x94, 0xd4, + 0x78, 0xb0, 0x90, 0x5e, 0x41, 0x51, 0x7e, 0x49, 0xbe, 0x90, 0x1c, 0x44, 0xb1, 0x5e, 0x62, 0x4a, + 0xb1, 0x1e, 0x5c, 0x9f, 0x5e, 0x99, 0x81, 0x1e, 0x44, 0x9f, 0x52, 0x3c, 0x97, 0x70, 0x10, 0x58, + 0xab, 0x73, 0x7e, 0x4a, 0xaa, 0x2b, 0x48, 0xcc, 0x35, 0xaf, 0x34, 0x57, 0xc9, 0x83, 0x8b, 0x1f, + 0x4d, 0x58, 0x88, 0x9f, 0x8b, 0x3b, 0xd4, 0x2f, 0x38, 0xc0, 0xd5, 0xd9, 0xd3, 0xcd, 0xd3, 0xd5, + 0x45, 0x80, 0x41, 0x88, 0x9b, 0x8b, 0x3d, 0xd4, 0xcf, 0xdb, 0xcf, 0x3f, 0xdc, 0x4f, 0x80, 0x51, + 0x48, 0x9c, 0x4b, 0xd8, 0xd3, 0x2f, 0xcc, 0xd1, 0xc7, 0xd3, 0x25, 0x3e, 0xc8, 0xd5, 0xdd, 0xd3, + 0xdf, 0x2f, 0xde, 0xd9, 0xdf, 0xc5, 0x55, 0x80, 0xc9, 0xe9, 0x14, 0x23, 0x97, 0x52, 0x72, 0x7e, + 0xae, 0x1e, 0x7e, 0x77, 0x38, 0x89, 0xa0, 0x59, 0x17, 0x00, 0x72, 0x7d, 0x00, 0x63, 0x94, 0x0b, + 0x54, 0x5f, 0x7a, 0x7e, 0x4e, 0x62, 0x5e, 0xba, 0x5e, 0x7e, 0x51, 0xba, 0x7e, 0x7a, 0x6a, 0x1e, + 0xd8, 0x6f, 0xb0, 0x70, 0x28, 0xc8, 0x2c, 0xc6, 0x15, 0x2c, 0xd6, 0x10, 0x6a, 0x11, 0x13, 0xb3, + 0xbb, 0xa3, 0xe3, 0x2a, 0x26, 0x39, 0x77, 0x88, 0x61, 0x8e, 0x29, 0xc5, 0x7a, 0x10, 0x26, 0x88, + 0x15, 0x66, 0xa0, 0x07, 0xb6, 0xb2, 0xf8, 0x14, 0x4c, 0x41, 0x8c, 0x63, 0x4a, 0x71, 0x0c, 0x5c, + 0x41, 0x4c, 0x98, 0x41, 0x0c, 0x44, 0x41, 0x12, 0x1b, 0xd8, 0x62, 0x63, 0x40, 0x00, 0x00, 0x00, + 0xff, 0xff, 0x37, 0x1f, 0x25, 0x84, 0x8e, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/request_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/request_error.pb.go new file mode 100644 index 000000000..0e13604d0 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/request_error.pb.go @@ -0,0 +1,188 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/request_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible request errors. +type RequestErrorEnum_RequestError int32 + +const ( + // Enum unspecified. + RequestErrorEnum_UNSPECIFIED RequestErrorEnum_RequestError = 0 + // The received error code is not known in this version. + RequestErrorEnum_UNKNOWN RequestErrorEnum_RequestError = 1 + // Resource name is required for this request. + RequestErrorEnum_RESOURCE_NAME_MISSING RequestErrorEnum_RequestError = 3 + // Resource name provided is malformed. + RequestErrorEnum_RESOURCE_NAME_MALFORMED RequestErrorEnum_RequestError = 4 + // Resource name provided is malformed. + RequestErrorEnum_BAD_RESOURCE_ID RequestErrorEnum_RequestError = 17 + // Customer ID is invalid. + RequestErrorEnum_INVALID_CUSTOMER_ID RequestErrorEnum_RequestError = 16 + // Mutate operation should have either create, update, or remove specified. + RequestErrorEnum_OPERATION_REQUIRED RequestErrorEnum_RequestError = 5 + // Requested resource not found. + RequestErrorEnum_RESOURCE_NOT_FOUND RequestErrorEnum_RequestError = 6 + // Next page token specified in user request is invalid. + RequestErrorEnum_INVALID_PAGE_TOKEN RequestErrorEnum_RequestError = 7 + // Next page token specified in user request has expired. + RequestErrorEnum_EXPIRED_PAGE_TOKEN RequestErrorEnum_RequestError = 8 + // Required field is missing. + RequestErrorEnum_REQUIRED_FIELD_MISSING RequestErrorEnum_RequestError = 9 + // The field cannot be modified because it's immutable. It's also possible + // that the field can be modified using 'create' operation but not 'update'. + RequestErrorEnum_IMMUTABLE_FIELD RequestErrorEnum_RequestError = 11 + // Received too many entries in request. + RequestErrorEnum_TOO_MANY_MUTATE_OPERATIONS RequestErrorEnum_RequestError = 13 + // Request cannot be executed by a manager account. + RequestErrorEnum_CANNOT_BE_EXECUTED_BY_MANAGER_ACCOUNT RequestErrorEnum_RequestError = 14 + // Mutate request was attempting to modify a readonly field. + // For instance, Budget fields can be requested for Ad Group, + // but are read-only for adGroups:mutate. + RequestErrorEnum_CANNOT_MODIFY_FOREIGN_FIELD RequestErrorEnum_RequestError = 15 + // Enum value is not permitted. + RequestErrorEnum_INVALID_ENUM_VALUE RequestErrorEnum_RequestError = 18 + // The developer-token parameter is required for all requests. + RequestErrorEnum_DEVELOPER_TOKEN_PARAMETER_MISSING RequestErrorEnum_RequestError = 19 + // The login-customer-id parameter is required for this request. + RequestErrorEnum_LOGIN_CUSTOMER_ID_PARAMETER_MISSING RequestErrorEnum_RequestError = 20 +) + +var RequestErrorEnum_RequestError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 3: "RESOURCE_NAME_MISSING", + 4: "RESOURCE_NAME_MALFORMED", + 17: "BAD_RESOURCE_ID", + 16: "INVALID_CUSTOMER_ID", + 5: "OPERATION_REQUIRED", + 6: "RESOURCE_NOT_FOUND", + 7: "INVALID_PAGE_TOKEN", + 8: "EXPIRED_PAGE_TOKEN", + 9: "REQUIRED_FIELD_MISSING", + 11: "IMMUTABLE_FIELD", + 13: "TOO_MANY_MUTATE_OPERATIONS", + 14: "CANNOT_BE_EXECUTED_BY_MANAGER_ACCOUNT", + 15: "CANNOT_MODIFY_FOREIGN_FIELD", + 18: "INVALID_ENUM_VALUE", + 19: "DEVELOPER_TOKEN_PARAMETER_MISSING", + 20: "LOGIN_CUSTOMER_ID_PARAMETER_MISSING", +} +var RequestErrorEnum_RequestError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "RESOURCE_NAME_MISSING": 3, + "RESOURCE_NAME_MALFORMED": 4, + "BAD_RESOURCE_ID": 17, + "INVALID_CUSTOMER_ID": 16, + "OPERATION_REQUIRED": 5, + "RESOURCE_NOT_FOUND": 6, + "INVALID_PAGE_TOKEN": 7, + "EXPIRED_PAGE_TOKEN": 8, + "REQUIRED_FIELD_MISSING": 9, + "IMMUTABLE_FIELD": 11, + "TOO_MANY_MUTATE_OPERATIONS": 13, + "CANNOT_BE_EXECUTED_BY_MANAGER_ACCOUNT": 14, + "CANNOT_MODIFY_FOREIGN_FIELD": 15, + "INVALID_ENUM_VALUE": 18, + "DEVELOPER_TOKEN_PARAMETER_MISSING": 19, + "LOGIN_CUSTOMER_ID_PARAMETER_MISSING": 20, +} + +func (x RequestErrorEnum_RequestError) String() string { + return proto.EnumName(RequestErrorEnum_RequestError_name, int32(x)) +} +func (RequestErrorEnum_RequestError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_request_error_7fde1cab6fa86182, []int{0, 0} +} + +// Container for enum describing possible request errors. +type RequestErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RequestErrorEnum) Reset() { *m = RequestErrorEnum{} } +func (m *RequestErrorEnum) String() string { return proto.CompactTextString(m) } +func (*RequestErrorEnum) ProtoMessage() {} +func (*RequestErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_request_error_7fde1cab6fa86182, []int{0} +} +func (m *RequestErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RequestErrorEnum.Unmarshal(m, b) +} +func (m *RequestErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RequestErrorEnum.Marshal(b, m, deterministic) +} +func (dst *RequestErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_RequestErrorEnum.Merge(dst, src) +} +func (m *RequestErrorEnum) XXX_Size() int { + return xxx_messageInfo_RequestErrorEnum.Size(m) +} +func (m *RequestErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_RequestErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_RequestErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*RequestErrorEnum)(nil), "google.ads.googleads.v0.errors.RequestErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.RequestErrorEnum_RequestError", RequestErrorEnum_RequestError_name, RequestErrorEnum_RequestError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/request_error.proto", fileDescriptor_request_error_7fde1cab6fa86182) +} + +var fileDescriptor_request_error_7fde1cab6fa86182 = []byte{ + // 503 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x52, 0x51, 0x6f, 0xd3, 0x3c, + 0x14, 0xfd, 0xba, 0xee, 0xdb, 0xc0, 0x05, 0xea, 0xb9, 0xb0, 0x89, 0x4d, 0x2a, 0xa2, 0x68, 0x42, + 0xbc, 0xa4, 0x15, 0x3c, 0xf2, 0xe4, 0xc4, 0x37, 0x91, 0xb5, 0xc4, 0x0e, 0x4e, 0x5c, 0x56, 0x54, + 0xc9, 0x2a, 0xb4, 0x8a, 0x90, 0xb6, 0x66, 0x24, 0xdb, 0x7e, 0x05, 0xbf, 0x82, 0x47, 0xfe, 0x08, + 0x12, 0x7f, 0x88, 0x57, 0xe4, 0xba, 0x0d, 0x15, 0x02, 0x9e, 0x72, 0x73, 0xee, 0x39, 0xf7, 0xdc, + 0x6b, 0x1d, 0xf4, 0xb2, 0x28, 0xcb, 0xe2, 0x62, 0x31, 0x9c, 0xcd, 0xeb, 0xa1, 0x2b, 0x6d, 0x75, + 0x3b, 0x1a, 0x2e, 0xaa, 0xaa, 0xac, 0xea, 0x61, 0xb5, 0xf8, 0x74, 0xb3, 0xa8, 0xaf, 0xcd, 0xea, + 0xd7, 0xbb, 0xaa, 0xca, 0xeb, 0x92, 0xf4, 0x1d, 0xd1, 0x9b, 0xcd, 0x6b, 0xaf, 0xd1, 0x78, 0xb7, + 0x23, 0xcf, 0x69, 0x06, 0x9f, 0x77, 0x11, 0x56, 0x4e, 0x07, 0x16, 0x81, 0xe5, 0xcd, 0xe5, 0xe0, + 0x47, 0x1b, 0xdd, 0xdb, 0x06, 0x49, 0x17, 0x75, 0xb4, 0xc8, 0x52, 0x08, 0x78, 0xc8, 0x81, 0xe1, + 0xff, 0x48, 0x07, 0xed, 0x6b, 0x71, 0x26, 0xe4, 0x5b, 0x81, 0x5b, 0xe4, 0x31, 0x7a, 0xa4, 0x20, + 0x93, 0x5a, 0x05, 0x60, 0x04, 0x4d, 0xc0, 0x24, 0x3c, 0xcb, 0xb8, 0x88, 0x70, 0x9b, 0x9c, 0xa0, + 0xa3, 0xdf, 0x5a, 0x34, 0x0e, 0xa5, 0x4a, 0x80, 0xe1, 0x5d, 0xd2, 0x43, 0x5d, 0x9f, 0x32, 0xd3, + 0x10, 0x38, 0xc3, 0x07, 0xe4, 0x08, 0xf5, 0xb8, 0x18, 0xd3, 0x98, 0x33, 0x13, 0xe8, 0x2c, 0x97, + 0x09, 0x28, 0xdb, 0xc0, 0xe4, 0x10, 0x11, 0x99, 0x82, 0xa2, 0x39, 0x97, 0xc2, 0x28, 0x78, 0xa3, + 0xb9, 0x02, 0x86, 0xff, 0xb7, 0xf8, 0x2f, 0x0b, 0x99, 0x9b, 0x50, 0x6a, 0xc1, 0xf0, 0x9e, 0xc5, + 0x37, 0x83, 0x52, 0x1a, 0x81, 0xc9, 0xe5, 0x19, 0x08, 0xbc, 0x6f, 0x71, 0x38, 0x4f, 0xad, 0x78, + 0x1b, 0xbf, 0x43, 0x8e, 0xd1, 0xe1, 0x66, 0xaa, 0x09, 0x39, 0xc4, 0xac, 0x39, 0xe3, 0xae, 0xdd, + 0x94, 0x27, 0x89, 0xce, 0xa9, 0x1f, 0x83, 0x6b, 0xe2, 0x0e, 0xe9, 0xa3, 0xe3, 0x5c, 0x4a, 0x93, + 0x50, 0x31, 0x31, 0xb6, 0x97, 0x83, 0x69, 0x16, 0xcc, 0xf0, 0x7d, 0xf2, 0x02, 0x9d, 0x06, 0x54, + 0xd8, 0x95, 0x7c, 0x30, 0x70, 0x0e, 0x81, 0xce, 0x81, 0x19, 0x7f, 0x62, 0x15, 0x34, 0x02, 0x65, + 0x68, 0x10, 0x48, 0x2d, 0x72, 0xfc, 0x80, 0x3c, 0x41, 0x27, 0x6b, 0x6a, 0x22, 0x19, 0x0f, 0x27, + 0x26, 0x94, 0x0a, 0x78, 0x24, 0xd6, 0x5e, 0xdd, 0xed, 0x63, 0x40, 0xe8, 0xc4, 0x8c, 0x69, 0xac, + 0x01, 0x13, 0x72, 0x8a, 0x9e, 0x32, 0x18, 0x43, 0x6c, 0x8d, 0xdd, 0x25, 0x26, 0xa5, 0x8a, 0x26, + 0x90, 0x83, 0x6a, 0xf6, 0xef, 0x91, 0xe7, 0xe8, 0x59, 0x2c, 0x23, 0x2e, 0xb6, 0x9f, 0xf4, 0x0f, + 0xc4, 0x87, 0xfe, 0xb7, 0x16, 0x1a, 0x7c, 0x28, 0x2f, 0xbd, 0x7f, 0xa7, 0xc6, 0x3f, 0xd8, 0x4e, + 0x47, 0x6a, 0x83, 0x96, 0xb6, 0xde, 0xb1, 0xb5, 0xa8, 0x28, 0x2f, 0x66, 0xcb, 0xc2, 0x2b, 0xab, + 0x62, 0x58, 0x2c, 0x96, 0xab, 0x18, 0x6e, 0xe2, 0x7a, 0xf5, 0xb1, 0xfe, 0x5b, 0x7a, 0x5f, 0xbb, + 0xcf, 0x97, 0x9d, 0x76, 0x44, 0xe9, 0xd7, 0x9d, 0x7e, 0xe4, 0x86, 0xd1, 0x79, 0xed, 0xb9, 0xd2, + 0x56, 0xe3, 0x91, 0xb7, 0xb2, 0xac, 0xbf, 0x6f, 0x08, 0x53, 0x3a, 0xaf, 0xa7, 0x0d, 0x61, 0x3a, + 0x1e, 0x4d, 0x1d, 0xe1, 0xfd, 0xde, 0xca, 0xf8, 0xd5, 0xcf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x58, + 0xab, 0xbb, 0xa7, 0x35, 0x03, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/resource_access_denied_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/resource_access_denied_error.pb.go new file mode 100644 index 000000000..3e79a521d --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/resource_access_denied_error.pb.go @@ -0,0 +1,111 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/resource_access_denied_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible resource access denied errors. +type ResourceAccessDeniedErrorEnum_ResourceAccessDeniedError int32 + +const ( + // Enum unspecified. + ResourceAccessDeniedErrorEnum_UNSPECIFIED ResourceAccessDeniedErrorEnum_ResourceAccessDeniedError = 0 + // The received error code is not known in this version. + ResourceAccessDeniedErrorEnum_UNKNOWN ResourceAccessDeniedErrorEnum_ResourceAccessDeniedError = 1 + // User did not have write access. + ResourceAccessDeniedErrorEnum_WRITE_ACCESS_DENIED ResourceAccessDeniedErrorEnum_ResourceAccessDeniedError = 3 +) + +var ResourceAccessDeniedErrorEnum_ResourceAccessDeniedError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 3: "WRITE_ACCESS_DENIED", +} +var ResourceAccessDeniedErrorEnum_ResourceAccessDeniedError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "WRITE_ACCESS_DENIED": 3, +} + +func (x ResourceAccessDeniedErrorEnum_ResourceAccessDeniedError) String() string { + return proto.EnumName(ResourceAccessDeniedErrorEnum_ResourceAccessDeniedError_name, int32(x)) +} +func (ResourceAccessDeniedErrorEnum_ResourceAccessDeniedError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_resource_access_denied_error_b80c60a02ee829fa, []int{0, 0} +} + +// Container for enum describing possible resource access denied errors. +type ResourceAccessDeniedErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ResourceAccessDeniedErrorEnum) Reset() { *m = ResourceAccessDeniedErrorEnum{} } +func (m *ResourceAccessDeniedErrorEnum) String() string { return proto.CompactTextString(m) } +func (*ResourceAccessDeniedErrorEnum) ProtoMessage() {} +func (*ResourceAccessDeniedErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_resource_access_denied_error_b80c60a02ee829fa, []int{0} +} +func (m *ResourceAccessDeniedErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ResourceAccessDeniedErrorEnum.Unmarshal(m, b) +} +func (m *ResourceAccessDeniedErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ResourceAccessDeniedErrorEnum.Marshal(b, m, deterministic) +} +func (dst *ResourceAccessDeniedErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_ResourceAccessDeniedErrorEnum.Merge(dst, src) +} +func (m *ResourceAccessDeniedErrorEnum) XXX_Size() int { + return xxx_messageInfo_ResourceAccessDeniedErrorEnum.Size(m) +} +func (m *ResourceAccessDeniedErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_ResourceAccessDeniedErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_ResourceAccessDeniedErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*ResourceAccessDeniedErrorEnum)(nil), "google.ads.googleads.v0.errors.ResourceAccessDeniedErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.ResourceAccessDeniedErrorEnum_ResourceAccessDeniedError", ResourceAccessDeniedErrorEnum_ResourceAccessDeniedError_name, ResourceAccessDeniedErrorEnum_ResourceAccessDeniedError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/resource_access_denied_error.proto", fileDescriptor_resource_access_denied_error_b80c60a02ee829fa) +} + +var fileDescriptor_resource_access_denied_error_b80c60a02ee829fa = []byte{ + // 275 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0xc1, 0x4a, 0xc3, 0x30, + 0x18, 0xc7, 0xed, 0x06, 0x0a, 0xd9, 0xc1, 0x51, 0x0f, 0xe2, 0xc1, 0x1e, 0xfa, 0x00, 0x69, 0xc1, + 0xa3, 0xa7, 0xac, 0x8d, 0xa3, 0x08, 0xb1, 0xb4, 0x6e, 0x03, 0x29, 0x84, 0xda, 0x84, 0x30, 0xd8, + 0x9a, 0x91, 0xcf, 0xed, 0x81, 0x3c, 0xfa, 0x28, 0x9e, 0x7d, 0x20, 0x49, 0xb2, 0xed, 0xd6, 0x9d, + 0xfa, 0x87, 0xef, 0xd7, 0xdf, 0x3f, 0xdf, 0x87, 0x88, 0xd2, 0x5a, 0x6d, 0x64, 0xd2, 0x0a, 0x48, + 0x7c, 0xb4, 0xe9, 0x90, 0x26, 0xd2, 0x18, 0x6d, 0x20, 0x31, 0x12, 0xf4, 0xde, 0x74, 0x92, 0xb7, + 0x5d, 0x27, 0x01, 0xb8, 0x90, 0xfd, 0x5a, 0x0a, 0xee, 0xa6, 0x78, 0x67, 0xf4, 0x97, 0x0e, 0x23, + 0xff, 0x1f, 0x6e, 0x05, 0xe0, 0xb3, 0x02, 0x1f, 0x52, 0xec, 0x15, 0x31, 0xa0, 0xc7, 0xea, 0x68, + 0x21, 0x4e, 0x92, 0x3b, 0x07, 0xb5, 0x53, 0xda, 0xef, 0xb7, 0x71, 0x85, 0x1e, 0x06, 0x81, 0xf0, + 0x16, 0x4d, 0x16, 0xac, 0x2e, 0x69, 0x56, 0xbc, 0x14, 0x34, 0x9f, 0x5e, 0x85, 0x13, 0x74, 0xb3, + 0x60, 0xaf, 0xec, 0x6d, 0xc5, 0xa6, 0x41, 0x78, 0x8f, 0xee, 0x56, 0x55, 0xf1, 0x4e, 0x39, 0xc9, + 0x32, 0x5a, 0xd7, 0x3c, 0xa7, 0xcc, 0x52, 0xe3, 0xd9, 0x5f, 0x80, 0xe2, 0x4e, 0x6f, 0xf1, 0xe5, + 0xb7, 0xcd, 0xa2, 0xc1, 0xe2, 0xd2, 0xee, 0x56, 0x06, 0x1f, 0xf9, 0xd1, 0xa0, 0xf4, 0xa6, 0xed, + 0x15, 0xd6, 0x46, 0x25, 0x4a, 0xf6, 0x6e, 0xf3, 0xd3, 0xc1, 0x76, 0x6b, 0x18, 0xba, 0xdf, 0xb3, + 0xff, 0x7c, 0x8f, 0xc6, 0x73, 0x42, 0x7e, 0x46, 0xd1, 0xdc, 0xcb, 0x88, 0x00, 0xec, 0xa3, 0x4d, + 0xcb, 0x14, 0xbb, 0x4a, 0xf8, 0x3d, 0x01, 0x0d, 0x11, 0xd0, 0x9c, 0x81, 0x66, 0x99, 0x36, 0x1e, + 0xf8, 0xbc, 0x76, 0xc5, 0x4f, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, 0x64, 0xcb, 0xa6, 0x9e, 0xb7, + 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/resource_count_limit_exceeded_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/resource_count_limit_exceeded_error.pb.go new file mode 100644 index 000000000..28230b158 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/resource_count_limit_exceeded_error.pb.go @@ -0,0 +1,167 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/resource_count_limit_exceeded_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible resource count limit exceeded errors. +type ResourceCountLimitExceededErrorEnum_ResourceCountLimitExceededError int32 + +const ( + // Enum unspecified. + ResourceCountLimitExceededErrorEnum_UNSPECIFIED ResourceCountLimitExceededErrorEnum_ResourceCountLimitExceededError = 0 + // The received error code is not known in this version. + ResourceCountLimitExceededErrorEnum_UNKNOWN ResourceCountLimitExceededErrorEnum_ResourceCountLimitExceededError = 1 + // Indicates that this request would exceed the number of allowed resources + // for the Google Ads account. The exact resource type and limit being + // checked + // can be inferred from accountLimitType. + ResourceCountLimitExceededErrorEnum_ACCOUNT_LIMIT ResourceCountLimitExceededErrorEnum_ResourceCountLimitExceededError = 2 + // Indicates that this request would exceed the number of allowed resources + // in a Campaign. The exact resource type and limit being checked can be + // inferred from accountLimitType, and the numeric id of the + // Campaign involved is given by enclosingId. + ResourceCountLimitExceededErrorEnum_CAMPAIGN_LIMIT ResourceCountLimitExceededErrorEnum_ResourceCountLimitExceededError = 3 + // Indicates that this request would exceed the number of allowed resources + // in an ad group. The exact resource type and limit being checked can be + // inferred from accountLimitType, and the numeric id of the + // ad group involved is given by enclosingId. + ResourceCountLimitExceededErrorEnum_ADGROUP_LIMIT ResourceCountLimitExceededErrorEnum_ResourceCountLimitExceededError = 4 + // Indicates that this request would exceed the number of allowed resources + // in an ad group ad. The exact resource type and limit being checked can + // be inferred from accountLimitType, and the enclosingId + // contains the ad group id followed by the ad id, separated by a single + // comma (,). + ResourceCountLimitExceededErrorEnum_AD_GROUP_AD_LIMIT ResourceCountLimitExceededErrorEnum_ResourceCountLimitExceededError = 5 + // Indicates that this request would exceed the number of allowed resources + // in an ad group criterion. The exact resource type and limit being checked + // can be inferred from accountLimitType, and the + // enclosingId contains the ad group id followed by the + // criterion id, separated by a single comma (,). + ResourceCountLimitExceededErrorEnum_AD_GROUP_CRITERION_LIMIT ResourceCountLimitExceededErrorEnum_ResourceCountLimitExceededError = 6 + // Indicates that this request would exceed the number of allowed resources + // in this shared set. The exact resource type and limit being checked can + // be inferred from accountLimitType, and the numeric id of the + // shared set involved is given by enclosingId. + ResourceCountLimitExceededErrorEnum_SHARED_SET_LIMIT ResourceCountLimitExceededErrorEnum_ResourceCountLimitExceededError = 7 + // Exceeds a limit related to a matching function. + ResourceCountLimitExceededErrorEnum_MATCHING_FUNCTION_LIMIT ResourceCountLimitExceededErrorEnum_ResourceCountLimitExceededError = 8 + // The response for this request would exceed the maximum number of rows + // that can be returned. + ResourceCountLimitExceededErrorEnum_RESPONSE_ROW_LIMIT_EXCEEDED ResourceCountLimitExceededErrorEnum_ResourceCountLimitExceededError = 9 +) + +var ResourceCountLimitExceededErrorEnum_ResourceCountLimitExceededError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "ACCOUNT_LIMIT", + 3: "CAMPAIGN_LIMIT", + 4: "ADGROUP_LIMIT", + 5: "AD_GROUP_AD_LIMIT", + 6: "AD_GROUP_CRITERION_LIMIT", + 7: "SHARED_SET_LIMIT", + 8: "MATCHING_FUNCTION_LIMIT", + 9: "RESPONSE_ROW_LIMIT_EXCEEDED", +} +var ResourceCountLimitExceededErrorEnum_ResourceCountLimitExceededError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "ACCOUNT_LIMIT": 2, + "CAMPAIGN_LIMIT": 3, + "ADGROUP_LIMIT": 4, + "AD_GROUP_AD_LIMIT": 5, + "AD_GROUP_CRITERION_LIMIT": 6, + "SHARED_SET_LIMIT": 7, + "MATCHING_FUNCTION_LIMIT": 8, + "RESPONSE_ROW_LIMIT_EXCEEDED": 9, +} + +func (x ResourceCountLimitExceededErrorEnum_ResourceCountLimitExceededError) String() string { + return proto.EnumName(ResourceCountLimitExceededErrorEnum_ResourceCountLimitExceededError_name, int32(x)) +} +func (ResourceCountLimitExceededErrorEnum_ResourceCountLimitExceededError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_resource_count_limit_exceeded_error_f3bc7c2ea6e6b0d7, []int{0, 0} +} + +// Container for enum describing possible resource count limit exceeded errors. +type ResourceCountLimitExceededErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ResourceCountLimitExceededErrorEnum) Reset() { *m = ResourceCountLimitExceededErrorEnum{} } +func (m *ResourceCountLimitExceededErrorEnum) String() string { return proto.CompactTextString(m) } +func (*ResourceCountLimitExceededErrorEnum) ProtoMessage() {} +func (*ResourceCountLimitExceededErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_resource_count_limit_exceeded_error_f3bc7c2ea6e6b0d7, []int{0} +} +func (m *ResourceCountLimitExceededErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ResourceCountLimitExceededErrorEnum.Unmarshal(m, b) +} +func (m *ResourceCountLimitExceededErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ResourceCountLimitExceededErrorEnum.Marshal(b, m, deterministic) +} +func (dst *ResourceCountLimitExceededErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_ResourceCountLimitExceededErrorEnum.Merge(dst, src) +} +func (m *ResourceCountLimitExceededErrorEnum) XXX_Size() int { + return xxx_messageInfo_ResourceCountLimitExceededErrorEnum.Size(m) +} +func (m *ResourceCountLimitExceededErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_ResourceCountLimitExceededErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_ResourceCountLimitExceededErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*ResourceCountLimitExceededErrorEnum)(nil), "google.ads.googleads.v0.errors.ResourceCountLimitExceededErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.ResourceCountLimitExceededErrorEnum_ResourceCountLimitExceededError", ResourceCountLimitExceededErrorEnum_ResourceCountLimitExceededError_name, ResourceCountLimitExceededErrorEnum_ResourceCountLimitExceededError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/resource_count_limit_exceeded_error.proto", fileDescriptor_resource_count_limit_exceeded_error_f3bc7c2ea6e6b0d7) +} + +var fileDescriptor_resource_count_limit_exceeded_error_f3bc7c2ea6e6b0d7 = []byte{ + // 392 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x92, 0x4f, 0x8b, 0xd3, 0x40, + 0x18, 0xc6, 0x6d, 0x56, 0x77, 0x75, 0x16, 0x35, 0x3b, 0x28, 0x0a, 0x2b, 0xbb, 0x50, 0x3d, 0x4f, + 0x02, 0x1e, 0x3d, 0xcd, 0xce, 0xcc, 0xa6, 0x83, 0xdb, 0x49, 0xc8, 0x9f, 0x56, 0x24, 0x30, 0xd4, + 0x64, 0x08, 0x85, 0x36, 0x53, 0x32, 0x6d, 0xf1, 0xec, 0x47, 0xf1, 0xd8, 0x8f, 0xe2, 0x47, 0xf0, + 0xd3, 0x48, 0x32, 0x49, 0x3d, 0x69, 0x4f, 0x79, 0x78, 0xf8, 0xcd, 0xef, 0x85, 0xf7, 0x0d, 0x98, + 0x54, 0x5a, 0x57, 0x2b, 0xe5, 0x2d, 0x4a, 0xe3, 0xd9, 0xd8, 0xa6, 0xbd, 0xef, 0xa9, 0xa6, 0xd1, + 0x8d, 0xf1, 0x1a, 0x65, 0xf4, 0xae, 0x29, 0x94, 0x2c, 0xf4, 0xae, 0xde, 0xca, 0xd5, 0x72, 0xbd, + 0xdc, 0x4a, 0xf5, 0xbd, 0x50, 0xaa, 0x54, 0xa5, 0xec, 0x20, 0xb4, 0x69, 0xf4, 0x56, 0xc3, 0x1b, + 0xfb, 0x1c, 0x2d, 0x4a, 0x83, 0x8e, 0x26, 0xb4, 0xf7, 0x91, 0x35, 0x8d, 0x0f, 0x0e, 0x78, 0x1f, + 0xf7, 0x36, 0xd2, 0xca, 0x1e, 0x5a, 0x17, 0xeb, 0x55, 0xac, 0x85, 0x58, 0xbd, 0x5b, 0x8f, 0x7f, + 0x38, 0xe0, 0xf6, 0x04, 0x07, 0x5f, 0x82, 0xcb, 0x4c, 0x24, 0x11, 0x23, 0xfc, 0x9e, 0x33, 0xea, + 0x3e, 0x82, 0x97, 0xe0, 0x22, 0x13, 0x9f, 0x45, 0x38, 0x17, 0xee, 0x08, 0x5e, 0x81, 0xe7, 0x98, + 0x90, 0x30, 0x13, 0xa9, 0x7c, 0xe0, 0x53, 0x9e, 0xba, 0x0e, 0x84, 0xe0, 0x05, 0xc1, 0xd3, 0x08, + 0xf3, 0x40, 0xf4, 0xdd, 0x59, 0x87, 0xd1, 0x20, 0x0e, 0xb3, 0xa8, 0xaf, 0x1e, 0xc3, 0xd7, 0xe0, + 0x0a, 0x53, 0x69, 0x3b, 0x4c, 0xfb, 0xfa, 0x09, 0x7c, 0x07, 0xde, 0x1e, 0x6b, 0x12, 0xf3, 0x94, + 0xc5, 0x3c, 0x1c, 0x3c, 0xe7, 0xf0, 0x15, 0x70, 0x93, 0x09, 0x8e, 0x19, 0x95, 0x09, 0x1b, 0x26, + 0x5e, 0xc0, 0x6b, 0xf0, 0x66, 0x8a, 0x53, 0x32, 0xe1, 0x22, 0x90, 0xf7, 0x99, 0x20, 0xe9, 0xdf, + 0x27, 0x4f, 0xe1, 0x2d, 0xb8, 0x8e, 0x59, 0x12, 0x85, 0x22, 0x61, 0x32, 0x0e, 0xe7, 0xb6, 0x97, + 0xec, 0x0b, 0x61, 0x8c, 0x32, 0xea, 0x3e, 0xbb, 0xfb, 0x3d, 0x02, 0xe3, 0x42, 0xaf, 0xd1, 0xff, + 0x77, 0x7a, 0xf7, 0xe1, 0xc4, 0xa2, 0xa2, 0xf6, 0x32, 0xd1, 0xe8, 0x2b, 0xed, 0x3d, 0x95, 0x5e, + 0x2d, 0xea, 0x0a, 0xe9, 0xa6, 0xf2, 0x2a, 0x55, 0x77, 0x77, 0x1b, 0xae, 0xbe, 0x59, 0x9a, 0x7f, + 0xfd, 0x04, 0x9f, 0xec, 0xe7, 0xa7, 0x73, 0x16, 0x60, 0x7c, 0x70, 0x6e, 0x02, 0x2b, 0xc3, 0xa5, + 0x41, 0x36, 0xb6, 0x69, 0xe6, 0xa3, 0x6e, 0xa4, 0xf9, 0x35, 0x00, 0x39, 0x2e, 0x4d, 0x7e, 0x04, + 0xf2, 0x99, 0x9f, 0x5b, 0xe0, 0xdb, 0x79, 0x37, 0xf8, 0xe3, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xd2, 0x18, 0x76, 0xc6, 0x7c, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/setting_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/setting_error.pb.go new file mode 100644 index 000000000..0669c7ab6 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/setting_error.pb.go @@ -0,0 +1,208 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/setting_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible setting errors. +type SettingErrorEnum_SettingError int32 + +const ( + // Enum unspecified. + SettingErrorEnum_UNSPECIFIED SettingErrorEnum_SettingError = 0 + // The received error code is not known in this version. + SettingErrorEnum_UNKNOWN SettingErrorEnum_SettingError = 1 + // The campaign setting is not available for this Google Ads account. + SettingErrorEnum_SETTING_TYPE_IS_NOT_AVAILABLE SettingErrorEnum_SettingError = 3 + // The setting is not compatible with the campaign. + SettingErrorEnum_SETTING_TYPE_IS_NOT_COMPATIBLE_WITH_CAMPAIGN SettingErrorEnum_SettingError = 4 + // The supplied TargetingSetting contains an invalid CriterionTypeGroup. See + // CriterionTypeGroup documentation for CriterionTypeGroups allowed + // in Campaign or AdGroup TargetingSettings. + SettingErrorEnum_TARGETING_SETTING_CONTAINS_INVALID_CRITERION_TYPE_GROUP SettingErrorEnum_SettingError = 5 + // TargetingSetting must not explicitly + // set any of the Demographic CriterionTypeGroups (AGE_RANGE, GENDER, + // PARENT, INCOME_RANGE) to false (it's okay to not set them at all, in + // which case the system will set them to true automatically). + SettingErrorEnum_TARGETING_SETTING_DEMOGRAPHIC_CRITERION_TYPE_GROUPS_MUST_BE_SET_TO_TARGET_ALL SettingErrorEnum_SettingError = 6 + // TargetingSetting cannot change any of + // the Demographic CriterionTypeGroups (AGE_RANGE, GENDER, PARENT, + // INCOME_RANGE) from true to false. + SettingErrorEnum_TARGETING_SETTING_CANNOT_CHANGE_TARGET_ALL_TO_FALSE_FOR_DEMOGRAPHIC_CRITERION_TYPE_GROUP SettingErrorEnum_SettingError = 7 + // At least one feed id should be present. + SettingErrorEnum_DYNAMIC_SEARCH_ADS_SETTING_AT_LEAST_ONE_FEED_ID_MUST_BE_PRESENT SettingErrorEnum_SettingError = 8 + // The supplied DynamicSearchAdsSetting contains an invalid domain name. + SettingErrorEnum_DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_INVALID_DOMAIN_NAME SettingErrorEnum_SettingError = 9 + // The supplied DynamicSearchAdsSetting contains a subdomain name. + SettingErrorEnum_DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_SUBDOMAIN_NAME SettingErrorEnum_SettingError = 10 + // The supplied DynamicSearchAdsSetting contains an invalid language code. + SettingErrorEnum_DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_INVALID_LANGUAGE_CODE SettingErrorEnum_SettingError = 11 + // TargetingSettings in search campaigns should not have + // CriterionTypeGroup.PLACEMENT set to targetAll. + SettingErrorEnum_TARGET_ALL_IS_NOT_ALLOWED_FOR_PLACEMENT_IN_SEARCH_CAMPAIGN SettingErrorEnum_SettingError = 12 + // Duplicate description in universal app setting description field. + SettingErrorEnum_UNIVERSAL_APP_CAMPAIGN_SETTING_DUPLICATE_DESCRIPTION SettingErrorEnum_SettingError = 13 + // Description line width is too long in universal app setting description + // field. + SettingErrorEnum_UNIVERSAL_APP_CAMPAIGN_SETTING_DESCRIPTION_LINE_WIDTH_TOO_LONG SettingErrorEnum_SettingError = 14 + // Universal app setting appId field cannot be modified for COMPLETE + // campaigns. + SettingErrorEnum_UNIVERSAL_APP_CAMPAIGN_SETTING_APP_ID_CANNOT_BE_MODIFIED SettingErrorEnum_SettingError = 15 + // YoutubeVideoMediaIds in universal app setting cannot exceed size limit. + SettingErrorEnum_TOO_MANY_YOUTUBE_MEDIA_IDS_IN_UNIVERSAL_APP_CAMPAIGN SettingErrorEnum_SettingError = 16 + // ImageMediaIds in universal app setting cannot exceed size limit. + SettingErrorEnum_TOO_MANY_IMAGE_MEDIA_IDS_IN_UNIVERSAL_APP_CAMPAIGN SettingErrorEnum_SettingError = 17 + // Media is incompatible for universal app campaign. + SettingErrorEnum_MEDIA_INCOMPATIBLE_FOR_UNIVERSAL_APP_CAMPAIGN SettingErrorEnum_SettingError = 18 + // Too many exclamation marks in universal app campaign ad text ideas. + SettingErrorEnum_TOO_MANY_EXCLAMATION_MARKS SettingErrorEnum_SettingError = 19 +) + +var SettingErrorEnum_SettingError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 3: "SETTING_TYPE_IS_NOT_AVAILABLE", + 4: "SETTING_TYPE_IS_NOT_COMPATIBLE_WITH_CAMPAIGN", + 5: "TARGETING_SETTING_CONTAINS_INVALID_CRITERION_TYPE_GROUP", + 6: "TARGETING_SETTING_DEMOGRAPHIC_CRITERION_TYPE_GROUPS_MUST_BE_SET_TO_TARGET_ALL", + 7: "TARGETING_SETTING_CANNOT_CHANGE_TARGET_ALL_TO_FALSE_FOR_DEMOGRAPHIC_CRITERION_TYPE_GROUP", + 8: "DYNAMIC_SEARCH_ADS_SETTING_AT_LEAST_ONE_FEED_ID_MUST_BE_PRESENT", + 9: "DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_INVALID_DOMAIN_NAME", + 10: "DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_SUBDOMAIN_NAME", + 11: "DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_INVALID_LANGUAGE_CODE", + 12: "TARGET_ALL_IS_NOT_ALLOWED_FOR_PLACEMENT_IN_SEARCH_CAMPAIGN", + 13: "UNIVERSAL_APP_CAMPAIGN_SETTING_DUPLICATE_DESCRIPTION", + 14: "UNIVERSAL_APP_CAMPAIGN_SETTING_DESCRIPTION_LINE_WIDTH_TOO_LONG", + 15: "UNIVERSAL_APP_CAMPAIGN_SETTING_APP_ID_CANNOT_BE_MODIFIED", + 16: "TOO_MANY_YOUTUBE_MEDIA_IDS_IN_UNIVERSAL_APP_CAMPAIGN", + 17: "TOO_MANY_IMAGE_MEDIA_IDS_IN_UNIVERSAL_APP_CAMPAIGN", + 18: "MEDIA_INCOMPATIBLE_FOR_UNIVERSAL_APP_CAMPAIGN", + 19: "TOO_MANY_EXCLAMATION_MARKS", +} +var SettingErrorEnum_SettingError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "SETTING_TYPE_IS_NOT_AVAILABLE": 3, + "SETTING_TYPE_IS_NOT_COMPATIBLE_WITH_CAMPAIGN": 4, + "TARGETING_SETTING_CONTAINS_INVALID_CRITERION_TYPE_GROUP": 5, + "TARGETING_SETTING_DEMOGRAPHIC_CRITERION_TYPE_GROUPS_MUST_BE_SET_TO_TARGET_ALL": 6, + "TARGETING_SETTING_CANNOT_CHANGE_TARGET_ALL_TO_FALSE_FOR_DEMOGRAPHIC_CRITERION_TYPE_GROUP": 7, + "DYNAMIC_SEARCH_ADS_SETTING_AT_LEAST_ONE_FEED_ID_MUST_BE_PRESENT": 8, + "DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_INVALID_DOMAIN_NAME": 9, + "DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_SUBDOMAIN_NAME": 10, + "DYNAMIC_SEARCH_ADS_SETTING_CONTAINS_INVALID_LANGUAGE_CODE": 11, + "TARGET_ALL_IS_NOT_ALLOWED_FOR_PLACEMENT_IN_SEARCH_CAMPAIGN": 12, + "UNIVERSAL_APP_CAMPAIGN_SETTING_DUPLICATE_DESCRIPTION": 13, + "UNIVERSAL_APP_CAMPAIGN_SETTING_DESCRIPTION_LINE_WIDTH_TOO_LONG": 14, + "UNIVERSAL_APP_CAMPAIGN_SETTING_APP_ID_CANNOT_BE_MODIFIED": 15, + "TOO_MANY_YOUTUBE_MEDIA_IDS_IN_UNIVERSAL_APP_CAMPAIGN": 16, + "TOO_MANY_IMAGE_MEDIA_IDS_IN_UNIVERSAL_APP_CAMPAIGN": 17, + "MEDIA_INCOMPATIBLE_FOR_UNIVERSAL_APP_CAMPAIGN": 18, + "TOO_MANY_EXCLAMATION_MARKS": 19, +} + +func (x SettingErrorEnum_SettingError) String() string { + return proto.EnumName(SettingErrorEnum_SettingError_name, int32(x)) +} +func (SettingErrorEnum_SettingError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_setting_error_eba8811c43ea9e48, []int{0, 0} +} + +// Container for enum describing possible setting errors. +type SettingErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SettingErrorEnum) Reset() { *m = SettingErrorEnum{} } +func (m *SettingErrorEnum) String() string { return proto.CompactTextString(m) } +func (*SettingErrorEnum) ProtoMessage() {} +func (*SettingErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_setting_error_eba8811c43ea9e48, []int{0} +} +func (m *SettingErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SettingErrorEnum.Unmarshal(m, b) +} +func (m *SettingErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SettingErrorEnum.Marshal(b, m, deterministic) +} +func (dst *SettingErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_SettingErrorEnum.Merge(dst, src) +} +func (m *SettingErrorEnum) XXX_Size() int { + return xxx_messageInfo_SettingErrorEnum.Size(m) +} +func (m *SettingErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_SettingErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_SettingErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*SettingErrorEnum)(nil), "google.ads.googleads.v0.errors.SettingErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.SettingErrorEnum_SettingError", SettingErrorEnum_SettingError_name, SettingErrorEnum_SettingError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/setting_error.proto", fileDescriptor_setting_error_eba8811c43ea9e48) +} + +var fileDescriptor_setting_error_eba8811c43ea9e48 = []byte{ + // 655 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x94, 0xdf, 0x6f, 0x23, 0x35, + 0x10, 0xc7, 0xe9, 0x1d, 0xdc, 0x15, 0xf7, 0xe0, 0x7c, 0xe6, 0x0d, 0x89, 0x4a, 0xf4, 0x19, 0x36, + 0xe1, 0x40, 0x50, 0x28, 0x14, 0xcd, 0xae, 0x27, 0x1b, 0xab, 0x5e, 0x7b, 0x59, 0x7b, 0xd3, 0x06, + 0x45, 0x1a, 0x15, 0x12, 0x45, 0x95, 0xda, 0x6c, 0x95, 0x2d, 0xfd, 0x83, 0x78, 0x83, 0x3f, 0x82, + 0x57, 0x24, 0xfe, 0x2a, 0xe4, 0xdd, 0x66, 0x1b, 0xa9, 0xe9, 0x8f, 0x7b, 0xca, 0xc4, 0xfe, 0x7e, + 0x66, 0xbc, 0x5f, 0x8f, 0x87, 0xbd, 0x9d, 0x57, 0xd5, 0xfc, 0x7c, 0xd6, 0x3b, 0x9d, 0xd6, 0xbd, + 0x36, 0x0c, 0xd1, 0x75, 0xbf, 0x37, 0x5b, 0x2e, 0xab, 0x65, 0xdd, 0xab, 0x67, 0x57, 0x57, 0x67, + 0x8b, 0x39, 0x35, 0x7f, 0xa3, 0xcb, 0x65, 0x75, 0x55, 0x89, 0xdd, 0x56, 0x18, 0x9d, 0x4e, 0xeb, + 0xa8, 0x63, 0xa2, 0xeb, 0x7e, 0xd4, 0x32, 0x7b, 0xff, 0x6c, 0x33, 0xee, 0x5a, 0x0e, 0xc3, 0x0a, + 0x2e, 0xfe, 0xb8, 0xd8, 0xfb, 0x6b, 0x9b, 0xbd, 0x5a, 0x5f, 0x14, 0xaf, 0xd9, 0x4e, 0x69, 0x5c, + 0x8e, 0x89, 0x1a, 0x28, 0x94, 0xfc, 0x3d, 0xb1, 0xc3, 0x5e, 0x96, 0xe6, 0xc8, 0xd8, 0x63, 0xc3, + 0xb7, 0xc4, 0xe7, 0xec, 0x33, 0x87, 0xde, 0x2b, 0x93, 0x92, 0x1f, 0xe7, 0x48, 0xca, 0x91, 0xb1, + 0x9e, 0x60, 0x04, 0x4a, 0x43, 0xac, 0x91, 0x3f, 0x17, 0x7d, 0xf6, 0xc5, 0x26, 0x49, 0x62, 0xb3, + 0x1c, 0xbc, 0x8a, 0x35, 0xd2, 0xb1, 0xf2, 0x43, 0x4a, 0x20, 0xcb, 0x41, 0xa5, 0x86, 0xbf, 0x2f, + 0x0e, 0xd8, 0x77, 0x1e, 0x8a, 0x14, 0x1b, 0x66, 0xc5, 0x26, 0xd6, 0x78, 0x50, 0xc6, 0x91, 0x32, + 0x23, 0xd0, 0x4a, 0x52, 0x52, 0x28, 0x8f, 0x85, 0xb2, 0xa6, 0x4d, 0x9b, 0x16, 0xb6, 0xcc, 0xf9, + 0x07, 0xe2, 0x17, 0x96, 0xdd, 0x85, 0x25, 0x66, 0x36, 0x2d, 0x20, 0x1f, 0xaa, 0x64, 0x23, 0xe7, + 0x28, 0x2b, 0x9d, 0xa7, 0x18, 0x03, 0x41, 0xde, 0x52, 0x9b, 0x82, 0x40, 0x6b, 0xfe, 0x42, 0x4c, + 0xd8, 0xc9, 0x86, 0xf3, 0x80, 0x69, 0x3e, 0x63, 0x08, 0x26, 0xc5, 0x35, 0x7d, 0xa0, 0x07, 0xa0, + 0x1d, 0xd2, 0xc0, 0x16, 0x8f, 0x16, 0xe6, 0x2f, 0x45, 0xc2, 0x7e, 0x96, 0x63, 0x03, 0x99, 0x4a, + 0xc8, 0x21, 0x14, 0xc9, 0x90, 0x40, 0xba, 0xae, 0x0c, 0x78, 0xd2, 0x08, 0xce, 0x93, 0x35, 0x48, + 0x03, 0x44, 0x49, 0x4a, 0x76, 0x87, 0xcd, 0x0b, 0x74, 0x68, 0x3c, 0xdf, 0x0e, 0x96, 0x3d, 0x90, + 0xe4, 0x8e, 0x77, 0xd2, 0x66, 0xa0, 0x0c, 0x19, 0xc8, 0x90, 0x7f, 0x28, 0xbe, 0x65, 0x6f, 0x9f, + 0x02, 0xbb, 0x32, 0x5e, 0xe7, 0x98, 0xf8, 0x89, 0x7d, 0xff, 0x2e, 0x45, 0x35, 0x98, 0xb4, 0x84, + 0x14, 0x29, 0xb1, 0x12, 0xf9, 0x8e, 0x38, 0x64, 0x3f, 0xac, 0xd9, 0xb6, 0xea, 0x1c, 0xad, 0xed, + 0x31, 0xca, 0xc6, 0xbc, 0x5c, 0x43, 0x82, 0x19, 0x1a, 0x4f, 0xca, 0xac, 0x2a, 0x74, 0x6d, 0xf2, + 0x4a, 0xec, 0xb3, 0x6f, 0x4a, 0xa3, 0x46, 0x58, 0x38, 0xd0, 0x04, 0x79, 0xde, 0xed, 0xdd, 0x5e, + 0x7b, 0x99, 0x6b, 0x95, 0x80, 0x47, 0x92, 0xe8, 0x92, 0x42, 0xe5, 0x5e, 0x59, 0xc3, 0x3f, 0x12, + 0x31, 0x3b, 0x7c, 0x8c, 0xbc, 0xd5, 0x93, 0x56, 0x26, 0xf4, 0xa8, 0xf4, 0x43, 0xf2, 0xd6, 0x92, + 0xb6, 0x26, 0xe5, 0x1f, 0x8b, 0x1f, 0xd9, 0xfe, 0x23, 0x39, 0xc2, 0x62, 0xe8, 0xd3, 0xb6, 0x51, + 0x62, 0xa4, 0xcc, 0xca, 0xf6, 0x11, 0xbd, 0x0e, 0x67, 0x0f, 0xb9, 0x32, 0x30, 0x63, 0x1a, 0xdb, + 0xd2, 0x97, 0x61, 0x1b, 0xa5, 0x02, 0x52, 0x32, 0x38, 0x46, 0x9b, 0x73, 0x73, 0x1e, 0x2e, 0xab, + 0x23, 0x55, 0x16, 0xec, 0x7c, 0x0a, 0xf7, 0x46, 0x7c, 0xc5, 0xbe, 0xbc, 0x11, 0x9a, 0xb5, 0xa7, + 0x17, 0x6c, 0xbe, 0x07, 0x11, 0x62, 0x97, 0x7d, 0xda, 0x95, 0xc2, 0x93, 0x44, 0x43, 0x06, 0x8d, + 0x21, 0x19, 0x14, 0x47, 0x8e, 0x7f, 0x12, 0xff, 0xbb, 0xc5, 0xf6, 0x7e, 0xaf, 0x2e, 0xa2, 0x87, + 0xe7, 0x4c, 0xfc, 0x66, 0x7d, 0x9e, 0xe4, 0x61, 0x34, 0xe5, 0x5b, 0xbf, 0xca, 0x1b, 0x68, 0x5e, + 0x9d, 0x9f, 0x2e, 0xe6, 0x51, 0xb5, 0x9c, 0xf7, 0xe6, 0xb3, 0x45, 0x33, 0xb8, 0x56, 0x03, 0xee, + 0xf2, 0xac, 0xbe, 0x6f, 0xde, 0x1d, 0xb4, 0x3f, 0x7f, 0x3e, 0x7b, 0x9e, 0x02, 0xfc, 0xfd, 0x6c, + 0x37, 0x6d, 0x93, 0xc1, 0xb4, 0x8e, 0xda, 0x30, 0x44, 0xa3, 0x7e, 0xd4, 0x94, 0xac, 0xff, 0x5b, + 0x09, 0x26, 0x30, 0xad, 0x27, 0x9d, 0x60, 0x32, 0xea, 0x4f, 0x5a, 0xc1, 0x6f, 0x2f, 0x9a, 0xc2, + 0x5f, 0xff, 0x1f, 0x00, 0x00, 0xff, 0xff, 0xff, 0x66, 0x02, 0xb2, 0x67, 0x05, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/shared_criterion_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/shared_criterion_error.pb.go new file mode 100644 index 000000000..3aa3e1735 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/shared_criterion_error.pb.go @@ -0,0 +1,112 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/shared_criterion_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible shared criterion errors. +type SharedCriterionErrorEnum_SharedCriterionError int32 + +const ( + // Enum unspecified. + SharedCriterionErrorEnum_UNSPECIFIED SharedCriterionErrorEnum_SharedCriterionError = 0 + // The received error code is not known in this version. + SharedCriterionErrorEnum_UNKNOWN SharedCriterionErrorEnum_SharedCriterionError = 1 + // The criterion is not appropriate for the shared set type. + SharedCriterionErrorEnum_CRITERION_TYPE_NOT_ALLOWED_FOR_SHARED_SET_TYPE SharedCriterionErrorEnum_SharedCriterionError = 2 +) + +var SharedCriterionErrorEnum_SharedCriterionError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "CRITERION_TYPE_NOT_ALLOWED_FOR_SHARED_SET_TYPE", +} +var SharedCriterionErrorEnum_SharedCriterionError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "CRITERION_TYPE_NOT_ALLOWED_FOR_SHARED_SET_TYPE": 2, +} + +func (x SharedCriterionErrorEnum_SharedCriterionError) String() string { + return proto.EnumName(SharedCriterionErrorEnum_SharedCriterionError_name, int32(x)) +} +func (SharedCriterionErrorEnum_SharedCriterionError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_shared_criterion_error_29250238080bbe7a, []int{0, 0} +} + +// Container for enum describing possible shared criterion errors. +type SharedCriterionErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SharedCriterionErrorEnum) Reset() { *m = SharedCriterionErrorEnum{} } +func (m *SharedCriterionErrorEnum) String() string { return proto.CompactTextString(m) } +func (*SharedCriterionErrorEnum) ProtoMessage() {} +func (*SharedCriterionErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_shared_criterion_error_29250238080bbe7a, []int{0} +} +func (m *SharedCriterionErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SharedCriterionErrorEnum.Unmarshal(m, b) +} +func (m *SharedCriterionErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SharedCriterionErrorEnum.Marshal(b, m, deterministic) +} +func (dst *SharedCriterionErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_SharedCriterionErrorEnum.Merge(dst, src) +} +func (m *SharedCriterionErrorEnum) XXX_Size() int { + return xxx_messageInfo_SharedCriterionErrorEnum.Size(m) +} +func (m *SharedCriterionErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_SharedCriterionErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_SharedCriterionErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*SharedCriterionErrorEnum)(nil), "google.ads.googleads.v0.errors.SharedCriterionErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.SharedCriterionErrorEnum_SharedCriterionError", SharedCriterionErrorEnum_SharedCriterionError_name, SharedCriterionErrorEnum_SharedCriterionError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/shared_criterion_error.proto", fileDescriptor_shared_criterion_error_29250238080bbe7a) +} + +var fileDescriptor_shared_criterion_error_29250238080bbe7a = []byte{ + // 294 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0xc1, 0x4e, 0x83, 0x30, + 0x1c, 0xc6, 0x05, 0x13, 0x4d, 0xba, 0x83, 0x84, 0x78, 0xd0, 0xcb, 0x0e, 0x3c, 0x40, 0x21, 0x7a, + 0xdc, 0xa9, 0x83, 0x6e, 0x12, 0x97, 0x42, 0x80, 0x6d, 0xd1, 0x90, 0x34, 0x38, 0x9a, 0x8e, 0x64, + 0xa3, 0x4b, 0x3b, 0xf7, 0x04, 0x3e, 0x89, 0x47, 0x1f, 0xc5, 0x8b, 0xaf, 0x64, 0x68, 0x65, 0xa7, + 0xb9, 0x13, 0x5f, 0xf8, 0xbe, 0xdf, 0xff, 0xff, 0xef, 0x07, 0x46, 0x5c, 0x08, 0xbe, 0x61, 0x7e, + 0x55, 0x2b, 0xdf, 0xc8, 0x4e, 0x1d, 0x02, 0x9f, 0x49, 0x29, 0xa4, 0xf2, 0xd5, 0xba, 0x92, 0xac, + 0xa6, 0x2b, 0xd9, 0xec, 0x99, 0x6c, 0x44, 0x4b, 0xf5, 0x7f, 0xb8, 0x93, 0x62, 0x2f, 0xdc, 0xa1, + 0x21, 0x60, 0x55, 0x2b, 0x78, 0x84, 0xe1, 0x21, 0x80, 0x06, 0xf6, 0x3e, 0x2c, 0x70, 0x97, 0xeb, + 0x01, 0x61, 0xcf, 0xe3, 0xce, 0xc1, 0xed, 0xfb, 0xd6, 0x5b, 0x83, 0xdb, 0x53, 0x9e, 0x7b, 0x03, + 0x06, 0x73, 0x92, 0xa7, 0x38, 0x8c, 0x27, 0x31, 0x8e, 0x9c, 0x0b, 0x77, 0x00, 0xae, 0xe7, 0xe4, + 0x99, 0x24, 0x4b, 0xe2, 0x58, 0xee, 0x03, 0x80, 0x61, 0x16, 0x17, 0x38, 0x8b, 0x13, 0x42, 0x8b, + 0x97, 0x14, 0x53, 0x92, 0x14, 0x14, 0xcd, 0x66, 0xc9, 0x12, 0x47, 0x74, 0x92, 0x64, 0x34, 0x7f, + 0x42, 0x19, 0x8e, 0x68, 0x8e, 0x0b, 0xed, 0x3b, 0xf6, 0xf8, 0xc7, 0x02, 0xde, 0x4a, 0x6c, 0xe1, + 0xf9, 0x6b, 0xc7, 0xf7, 0xa7, 0xce, 0x49, 0xbb, 0x87, 0xa6, 0xd6, 0x6b, 0xf4, 0x07, 0x73, 0xb1, + 0xa9, 0x5a, 0x0e, 0x85, 0xe4, 0x3e, 0x67, 0xad, 0xae, 0xa1, 0xef, 0x6d, 0xd7, 0xa8, 0xff, 0x6a, + 0x1c, 0x99, 0xcf, 0xa7, 0x7d, 0x39, 0x45, 0xe8, 0xcb, 0x1e, 0x4e, 0xcd, 0x30, 0x54, 0x2b, 0x68, + 0x64, 0xa7, 0x16, 0x01, 0xd4, 0x2b, 0xd5, 0x77, 0x1f, 0x28, 0x51, 0xad, 0xca, 0x63, 0xa0, 0x5c, + 0x04, 0xa5, 0x09, 0xbc, 0x5d, 0xe9, 0xc5, 0x8f, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0xd8, 0x15, + 0x2d, 0x19, 0xbe, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/shared_set_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/shared_set_error.pb.go new file mode 100644 index 000000000..33647a176 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/shared_set_error.pb.go @@ -0,0 +1,126 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/shared_set_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible shared set errors. +type SharedSetErrorEnum_SharedSetError int32 + +const ( + // Enum unspecified. + SharedSetErrorEnum_UNSPECIFIED SharedSetErrorEnum_SharedSetError = 0 + // The received error code is not known in this version. + SharedSetErrorEnum_UNKNOWN SharedSetErrorEnum_SharedSetError = 1 + // The customer cannot create this type of shared set. + SharedSetErrorEnum_CUSTOMER_CANNOT_CREATE_SHARED_SET_OF_THIS_TYPE SharedSetErrorEnum_SharedSetError = 2 + // A shared set with this name already exists. + SharedSetErrorEnum_DUPLICATE_NAME SharedSetErrorEnum_SharedSetError = 3 + // Removed shared sets cannot be mutated. + SharedSetErrorEnum_SHARED_SET_REMOVED SharedSetErrorEnum_SharedSetError = 4 + // The shared set cannot be removed because it is in use. + SharedSetErrorEnum_SHARED_SET_IN_USE SharedSetErrorEnum_SharedSetError = 5 +) + +var SharedSetErrorEnum_SharedSetError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "CUSTOMER_CANNOT_CREATE_SHARED_SET_OF_THIS_TYPE", + 3: "DUPLICATE_NAME", + 4: "SHARED_SET_REMOVED", + 5: "SHARED_SET_IN_USE", +} +var SharedSetErrorEnum_SharedSetError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "CUSTOMER_CANNOT_CREATE_SHARED_SET_OF_THIS_TYPE": 2, + "DUPLICATE_NAME": 3, + "SHARED_SET_REMOVED": 4, + "SHARED_SET_IN_USE": 5, +} + +func (x SharedSetErrorEnum_SharedSetError) String() string { + return proto.EnumName(SharedSetErrorEnum_SharedSetError_name, int32(x)) +} +func (SharedSetErrorEnum_SharedSetError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_shared_set_error_15982e85f8f1e082, []int{0, 0} +} + +// Container for enum describing possible shared set errors. +type SharedSetErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SharedSetErrorEnum) Reset() { *m = SharedSetErrorEnum{} } +func (m *SharedSetErrorEnum) String() string { return proto.CompactTextString(m) } +func (*SharedSetErrorEnum) ProtoMessage() {} +func (*SharedSetErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_shared_set_error_15982e85f8f1e082, []int{0} +} +func (m *SharedSetErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SharedSetErrorEnum.Unmarshal(m, b) +} +func (m *SharedSetErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SharedSetErrorEnum.Marshal(b, m, deterministic) +} +func (dst *SharedSetErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_SharedSetErrorEnum.Merge(dst, src) +} +func (m *SharedSetErrorEnum) XXX_Size() int { + return xxx_messageInfo_SharedSetErrorEnum.Size(m) +} +func (m *SharedSetErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_SharedSetErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_SharedSetErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*SharedSetErrorEnum)(nil), "google.ads.googleads.v0.errors.SharedSetErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.SharedSetErrorEnum_SharedSetError", SharedSetErrorEnum_SharedSetError_name, SharedSetErrorEnum_SharedSetError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/shared_set_error.proto", fileDescriptor_shared_set_error_15982e85f8f1e082) +} + +var fileDescriptor_shared_set_error_15982e85f8f1e082 = []byte{ + // 328 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0xdf, 0x4a, 0xc3, 0x30, + 0x18, 0xc5, 0xed, 0xe6, 0x1f, 0xc8, 0x60, 0xd6, 0x88, 0x5e, 0xee, 0x62, 0x0f, 0x90, 0x16, 0xc5, + 0x2b, 0xaf, 0xb2, 0xf6, 0xdb, 0x56, 0x74, 0x69, 0x69, 0xda, 0x89, 0x52, 0x08, 0xd5, 0x96, 0x2a, + 0x6c, 0xcb, 0x68, 0xea, 0x1e, 0x48, 0xf0, 0xc6, 0x67, 0xf0, 0x05, 0xf4, 0xa9, 0xa4, 0x8d, 0x1b, + 0xdb, 0x85, 0x5e, 0xe5, 0x70, 0x38, 0xbf, 0x7c, 0x9c, 0x83, 0xae, 0x0a, 0x29, 0x8b, 0x59, 0x6e, + 0xa5, 0x99, 0xb2, 0xb4, 0xac, 0xd5, 0xca, 0xb6, 0xf2, 0xb2, 0x94, 0xa5, 0xb2, 0xd4, 0x73, 0x5a, + 0xe6, 0x99, 0x50, 0x79, 0x25, 0x1a, 0x87, 0x2c, 0x4b, 0x59, 0x49, 0xdc, 0xd3, 0x59, 0x92, 0x66, + 0x8a, 0x6c, 0x30, 0xb2, 0xb2, 0x89, 0xc6, 0xfa, 0x9f, 0x06, 0xc2, 0xbc, 0x41, 0x79, 0x5e, 0x41, + 0xed, 0xc1, 0xe2, 0x75, 0xde, 0x7f, 0x37, 0x50, 0x77, 0xd7, 0xc6, 0xc7, 0xa8, 0x13, 0x33, 0x1e, + 0x80, 0xe3, 0x0d, 0x3d, 0x70, 0xcd, 0x3d, 0xdc, 0x41, 0x47, 0x31, 0xbb, 0x61, 0xfe, 0x1d, 0x33, + 0x0d, 0x7c, 0x81, 0x88, 0x13, 0xf3, 0xc8, 0x9f, 0x40, 0x28, 0x1c, 0xca, 0x98, 0x1f, 0x09, 0x27, + 0x04, 0x1a, 0x81, 0xe0, 0x63, 0x1a, 0x82, 0x2b, 0x38, 0x44, 0xc2, 0x1f, 0x8a, 0x68, 0xec, 0x71, + 0x11, 0xdd, 0x07, 0x60, 0xb6, 0x30, 0x46, 0x5d, 0x37, 0x0e, 0x6e, 0x3d, 0xa7, 0x8e, 0x31, 0x3a, + 0x01, 0xb3, 0x8d, 0xcf, 0x11, 0xde, 0x02, 0x42, 0x98, 0xf8, 0x53, 0x70, 0xcd, 0x7d, 0x7c, 0x86, + 0x4e, 0xb6, 0x7c, 0x8f, 0x89, 0x98, 0x83, 0x79, 0x30, 0xf8, 0x32, 0x50, 0xff, 0x49, 0xce, 0xc9, + 0xff, 0x2d, 0x07, 0xa7, 0xbb, 0x5d, 0x82, 0x7a, 0x9a, 0xc0, 0x78, 0x70, 0x7f, 0xb1, 0x42, 0xce, + 0xd2, 0x45, 0x41, 0x64, 0x59, 0x58, 0x45, 0xbe, 0x68, 0x86, 0x5b, 0x6f, 0xbc, 0x7c, 0x51, 0x7f, + 0x4d, 0x7e, 0xad, 0x9f, 0xb7, 0x56, 0x7b, 0x44, 0xe9, 0x47, 0xab, 0x37, 0xd2, 0x9f, 0xd1, 0x4c, + 0x11, 0x2d, 0x6b, 0x35, 0xb5, 0x49, 0x73, 0x52, 0x7d, 0xaf, 0x03, 0x09, 0xcd, 0x54, 0xb2, 0x09, + 0x24, 0x53, 0x3b, 0xd1, 0x81, 0xc7, 0xc3, 0xe6, 0xf0, 0xe5, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, + 0x6c, 0xdd, 0x1f, 0xfe, 0xea, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/string_format_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/string_format_error.pb.go new file mode 100644 index 000000000..30e558cc6 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/string_format_error.pb.go @@ -0,0 +1,115 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/string_format_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible string format errors. +type StringFormatErrorEnum_StringFormatError int32 + +const ( + // Enum unspecified. + StringFormatErrorEnum_UNSPECIFIED StringFormatErrorEnum_StringFormatError = 0 + // The received error code is not known in this version. + StringFormatErrorEnum_UNKNOWN StringFormatErrorEnum_StringFormatError = 1 + // The input string value contains disallowed characters. + StringFormatErrorEnum_ILLEGAL_CHARS StringFormatErrorEnum_StringFormatError = 2 + // The input string value is invalid for the associated field. + StringFormatErrorEnum_INVALID_FORMAT StringFormatErrorEnum_StringFormatError = 3 +) + +var StringFormatErrorEnum_StringFormatError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "ILLEGAL_CHARS", + 3: "INVALID_FORMAT", +} +var StringFormatErrorEnum_StringFormatError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "ILLEGAL_CHARS": 2, + "INVALID_FORMAT": 3, +} + +func (x StringFormatErrorEnum_StringFormatError) String() string { + return proto.EnumName(StringFormatErrorEnum_StringFormatError_name, int32(x)) +} +func (StringFormatErrorEnum_StringFormatError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_string_format_error_507abb9d06602679, []int{0, 0} +} + +// Container for enum describing possible string format errors. +type StringFormatErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *StringFormatErrorEnum) Reset() { *m = StringFormatErrorEnum{} } +func (m *StringFormatErrorEnum) String() string { return proto.CompactTextString(m) } +func (*StringFormatErrorEnum) ProtoMessage() {} +func (*StringFormatErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_string_format_error_507abb9d06602679, []int{0} +} +func (m *StringFormatErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_StringFormatErrorEnum.Unmarshal(m, b) +} +func (m *StringFormatErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_StringFormatErrorEnum.Marshal(b, m, deterministic) +} +func (dst *StringFormatErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_StringFormatErrorEnum.Merge(dst, src) +} +func (m *StringFormatErrorEnum) XXX_Size() int { + return xxx_messageInfo_StringFormatErrorEnum.Size(m) +} +func (m *StringFormatErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_StringFormatErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_StringFormatErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*StringFormatErrorEnum)(nil), "google.ads.googleads.v0.errors.StringFormatErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.StringFormatErrorEnum_StringFormatError", StringFormatErrorEnum_StringFormatError_name, StringFormatErrorEnum_StringFormatError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/string_format_error.proto", fileDescriptor_string_format_error_507abb9d06602679) +} + +var fileDescriptor_string_format_error_507abb9d06602679 = []byte{ + // 281 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x48, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xa2, + 0xa2, 0xfc, 0xa2, 0x62, 0xfd, 0xe2, 0x92, 0xa2, 0xcc, 0xbc, 0xf4, 0xf8, 0xb4, 0xfc, 0xa2, 0xdc, + 0xc4, 0x92, 0x78, 0xb0, 0xa0, 0x5e, 0x41, 0x51, 0x7e, 0x49, 0xbe, 0x90, 0x1c, 0x44, 0xb9, 0x5e, + 0x62, 0x4a, 0xb1, 0x1e, 0x5c, 0xa7, 0x5e, 0x99, 0x81, 0x1e, 0x44, 0xa7, 0x52, 0x21, 0x97, 0x68, + 0x30, 0x58, 0xb3, 0x1b, 0x58, 0xaf, 0x2b, 0x48, 0xd4, 0x35, 0xaf, 0x34, 0x57, 0x29, 0x82, 0x4b, + 0x10, 0x43, 0x42, 0x88, 0x9f, 0x8b, 0x3b, 0xd4, 0x2f, 0x38, 0xc0, 0xd5, 0xd9, 0xd3, 0xcd, 0xd3, + 0xd5, 0x45, 0x80, 0x41, 0x88, 0x9b, 0x8b, 0x3d, 0xd4, 0xcf, 0xdb, 0xcf, 0x3f, 0xdc, 0x4f, 0x80, + 0x51, 0x48, 0x90, 0x8b, 0xd7, 0xd3, 0xc7, 0xc7, 0xd5, 0xdd, 0xd1, 0x27, 0xde, 0xd9, 0xc3, 0x31, + 0x28, 0x58, 0x80, 0x49, 0x48, 0x88, 0x8b, 0xcf, 0xd3, 0x2f, 0xcc, 0xd1, 0xc7, 0xd3, 0x25, 0xde, + 0xcd, 0x3f, 0xc8, 0xd7, 0x31, 0x44, 0x80, 0xd9, 0xe9, 0x0c, 0x23, 0x97, 0x52, 0x72, 0x7e, 0xae, + 0x1e, 0x7e, 0x97, 0x39, 0x89, 0x61, 0x58, 0x1f, 0x00, 0xf2, 0x51, 0x00, 0x63, 0x94, 0x0b, 0x54, + 0x67, 0x7a, 0x7e, 0x4e, 0x62, 0x5e, 0xba, 0x5e, 0x7e, 0x51, 0xba, 0x7e, 0x7a, 0x6a, 0x1e, 0xd8, + 0xbf, 0xb0, 0xd0, 0x29, 0xc8, 0x2c, 0xc6, 0x15, 0x58, 0xd6, 0x10, 0x6a, 0x11, 0x13, 0xb3, 0xbb, + 0xa3, 0xe3, 0x2a, 0x26, 0x39, 0x77, 0x88, 0x61, 0x8e, 0x29, 0xc5, 0x7a, 0x10, 0x26, 0x88, 0x15, + 0x66, 0xa0, 0x07, 0xb6, 0xb2, 0xf8, 0x14, 0x4c, 0x41, 0x8c, 0x63, 0x4a, 0x71, 0x0c, 0x5c, 0x41, + 0x4c, 0x98, 0x41, 0x0c, 0x44, 0x41, 0x12, 0x1b, 0xd8, 0x62, 0x63, 0x40, 0x00, 0x00, 0x00, 0xff, + 0xff, 0x2a, 0x92, 0xc6, 0x00, 0xa4, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/string_length_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/string_length_error.pb.go new file mode 100644 index 000000000..88211b3c7 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/string_length_error.pb.go @@ -0,0 +1,114 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/string_length_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible string length errors. +type StringLengthErrorEnum_StringLengthError int32 + +const ( + // Enum unspecified. + StringLengthErrorEnum_UNSPECIFIED StringLengthErrorEnum_StringLengthError = 0 + // The received error code is not known in this version. + StringLengthErrorEnum_UNKNOWN StringLengthErrorEnum_StringLengthError = 1 + // Too short. + StringLengthErrorEnum_TOO_SHORT StringLengthErrorEnum_StringLengthError = 2 + // Too long. + StringLengthErrorEnum_TOO_LONG StringLengthErrorEnum_StringLengthError = 3 +) + +var StringLengthErrorEnum_StringLengthError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "TOO_SHORT", + 3: "TOO_LONG", +} +var StringLengthErrorEnum_StringLengthError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "TOO_SHORT": 2, + "TOO_LONG": 3, +} + +func (x StringLengthErrorEnum_StringLengthError) String() string { + return proto.EnumName(StringLengthErrorEnum_StringLengthError_name, int32(x)) +} +func (StringLengthErrorEnum_StringLengthError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_string_length_error_0467ecd3ba05d90e, []int{0, 0} +} + +// Container for enum describing possible string length errors. +type StringLengthErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *StringLengthErrorEnum) Reset() { *m = StringLengthErrorEnum{} } +func (m *StringLengthErrorEnum) String() string { return proto.CompactTextString(m) } +func (*StringLengthErrorEnum) ProtoMessage() {} +func (*StringLengthErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_string_length_error_0467ecd3ba05d90e, []int{0} +} +func (m *StringLengthErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_StringLengthErrorEnum.Unmarshal(m, b) +} +func (m *StringLengthErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_StringLengthErrorEnum.Marshal(b, m, deterministic) +} +func (dst *StringLengthErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_StringLengthErrorEnum.Merge(dst, src) +} +func (m *StringLengthErrorEnum) XXX_Size() int { + return xxx_messageInfo_StringLengthErrorEnum.Size(m) +} +func (m *StringLengthErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_StringLengthErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_StringLengthErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*StringLengthErrorEnum)(nil), "google.ads.googleads.v0.errors.StringLengthErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.StringLengthErrorEnum_StringLengthError", StringLengthErrorEnum_StringLengthError_name, StringLengthErrorEnum_StringLengthError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/string_length_error.proto", fileDescriptor_string_length_error_0467ecd3ba05d90e) +} + +var fileDescriptor_string_length_error_0467ecd3ba05d90e = []byte{ + // 268 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x48, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xd4, 0xa2, + 0xa2, 0xfc, 0xa2, 0x62, 0xfd, 0xe2, 0x92, 0xa2, 0xcc, 0xbc, 0xf4, 0xf8, 0x9c, 0xd4, 0xbc, 0xf4, + 0x92, 0x8c, 0x78, 0xb0, 0xa0, 0x5e, 0x41, 0x51, 0x7e, 0x49, 0xbe, 0x90, 0x1c, 0x44, 0xb9, 0x5e, + 0x62, 0x4a, 0xb1, 0x1e, 0x5c, 0xa7, 0x5e, 0x99, 0x81, 0x1e, 0x44, 0xa7, 0x52, 0x3a, 0x97, 0x68, + 0x30, 0x58, 0xb3, 0x0f, 0x58, 0xaf, 0x2b, 0x48, 0xd4, 0x35, 0xaf, 0x34, 0x57, 0xc9, 0x8f, 0x4b, + 0x10, 0x43, 0x42, 0x88, 0x9f, 0x8b, 0x3b, 0xd4, 0x2f, 0x38, 0xc0, 0xd5, 0xd9, 0xd3, 0xcd, 0xd3, + 0xd5, 0x45, 0x80, 0x41, 0x88, 0x9b, 0x8b, 0x3d, 0xd4, 0xcf, 0xdb, 0xcf, 0x3f, 0xdc, 0x4f, 0x80, + 0x51, 0x88, 0x97, 0x8b, 0x33, 0xc4, 0xdf, 0x3f, 0x3e, 0xd8, 0xc3, 0x3f, 0x28, 0x44, 0x80, 0x49, + 0x88, 0x87, 0x8b, 0x03, 0xc4, 0xf5, 0xf1, 0xf7, 0x73, 0x17, 0x60, 0x76, 0x3a, 0xc3, 0xc8, 0xa5, + 0x94, 0x9c, 0x9f, 0xab, 0x87, 0xdf, 0x3d, 0x4e, 0x62, 0x18, 0x96, 0x06, 0x80, 0xfc, 0x11, 0xc0, + 0x18, 0xe5, 0x02, 0xd5, 0x99, 0x9e, 0x9f, 0x93, 0x98, 0x97, 0xae, 0x97, 0x5f, 0x94, 0xae, 0x9f, + 0x9e, 0x9a, 0x07, 0xf6, 0x25, 0x2c, 0x4c, 0x0a, 0x32, 0x8b, 0x71, 0x05, 0x91, 0x35, 0x84, 0x5a, + 0xc4, 0xc4, 0xec, 0xee, 0xe8, 0xb8, 0x8a, 0x49, 0xce, 0x1d, 0x62, 0x98, 0x63, 0x4a, 0xb1, 0x1e, + 0x84, 0x09, 0x62, 0x85, 0x19, 0xe8, 0x81, 0xad, 0x2c, 0x3e, 0x05, 0x53, 0x10, 0xe3, 0x98, 0x52, + 0x1c, 0x03, 0x57, 0x10, 0x13, 0x66, 0x10, 0x03, 0x51, 0x90, 0xc4, 0x06, 0xb6, 0xd8, 0x18, 0x10, + 0x00, 0x00, 0xff, 0xff, 0x2f, 0x89, 0x28, 0x9f, 0x9a, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/url_field_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/url_field_error.pb.go new file mode 100644 index 000000000..3f3e06f53 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/url_field_error.pb.go @@ -0,0 +1,359 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/url_field_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible url field errors. +type UrlFieldErrorEnum_UrlFieldError int32 + +const ( + // Enum unspecified. + UrlFieldErrorEnum_UNSPECIFIED UrlFieldErrorEnum_UrlFieldError = 0 + // The received error code is not known in this version. + UrlFieldErrorEnum_UNKNOWN UrlFieldErrorEnum_UrlFieldError = 1 + // The tracking url template is invalid. + UrlFieldErrorEnum_INVALID_TRACKING_URL_TEMPLATE UrlFieldErrorEnum_UrlFieldError = 2 + // The tracking url template contains invalid tag. + UrlFieldErrorEnum_INVALID_TAG_IN_TRACKING_URL_TEMPLATE UrlFieldErrorEnum_UrlFieldError = 3 + // The tracking url template must contain at least one tag (e.g. {lpurl}), + // This applies only to tracking url template associated with website ads or + // product ads. + UrlFieldErrorEnum_MISSING_TRACKING_URL_TEMPLATE_TAG UrlFieldErrorEnum_UrlFieldError = 4 + // The tracking url template must start with a valid protocol (or lpurl + // tag). + UrlFieldErrorEnum_MISSING_PROTOCOL_IN_TRACKING_URL_TEMPLATE UrlFieldErrorEnum_UrlFieldError = 5 + // The tracking url template starts with an invalid protocol. + UrlFieldErrorEnum_INVALID_PROTOCOL_IN_TRACKING_URL_TEMPLATE UrlFieldErrorEnum_UrlFieldError = 6 + // The tracking url template contains illegal characters. + UrlFieldErrorEnum_MALFORMED_TRACKING_URL_TEMPLATE UrlFieldErrorEnum_UrlFieldError = 7 + // The tracking url template must contain a host name (or lpurl tag). + UrlFieldErrorEnum_MISSING_HOST_IN_TRACKING_URL_TEMPLATE UrlFieldErrorEnum_UrlFieldError = 8 + // The tracking url template has an invalid or missing top level domain + // extension. + UrlFieldErrorEnum_INVALID_TLD_IN_TRACKING_URL_TEMPLATE UrlFieldErrorEnum_UrlFieldError = 9 + // The tracking url template contains nested occurrences of the same + // conditional tag (i.e. {ifmobile:{ifmobile:x}}). + UrlFieldErrorEnum_REDUNDANT_NESTED_TRACKING_URL_TEMPLATE_TAG UrlFieldErrorEnum_UrlFieldError = 10 + // The final url is invalid. + UrlFieldErrorEnum_INVALID_FINAL_URL UrlFieldErrorEnum_UrlFieldError = 11 + // The final url contains invalid tag. + UrlFieldErrorEnum_INVALID_TAG_IN_FINAL_URL UrlFieldErrorEnum_UrlFieldError = 12 + // The final url contains nested occurrences of the same conditional tag + // (i.e. {ifmobile:{ifmobile:x}}). + UrlFieldErrorEnum_REDUNDANT_NESTED_FINAL_URL_TAG UrlFieldErrorEnum_UrlFieldError = 13 + // The final url must start with a valid protocol. + UrlFieldErrorEnum_MISSING_PROTOCOL_IN_FINAL_URL UrlFieldErrorEnum_UrlFieldError = 14 + // The final url starts with an invalid protocol. + UrlFieldErrorEnum_INVALID_PROTOCOL_IN_FINAL_URL UrlFieldErrorEnum_UrlFieldError = 15 + // The final url contains illegal characters. + UrlFieldErrorEnum_MALFORMED_FINAL_URL UrlFieldErrorEnum_UrlFieldError = 16 + // The final url must contain a host name. + UrlFieldErrorEnum_MISSING_HOST_IN_FINAL_URL UrlFieldErrorEnum_UrlFieldError = 17 + // The tracking url template has an invalid or missing top level domain + // extension. + UrlFieldErrorEnum_INVALID_TLD_IN_FINAL_URL UrlFieldErrorEnum_UrlFieldError = 18 + // The final mobile url is invalid. + UrlFieldErrorEnum_INVALID_FINAL_MOBILE_URL UrlFieldErrorEnum_UrlFieldError = 19 + // The final mobile url contains invalid tag. + UrlFieldErrorEnum_INVALID_TAG_IN_FINAL_MOBILE_URL UrlFieldErrorEnum_UrlFieldError = 20 + // The final mobile url contains nested occurrences of the same conditional + // tag (i.e. {ifmobile:{ifmobile:x}}). + UrlFieldErrorEnum_REDUNDANT_NESTED_FINAL_MOBILE_URL_TAG UrlFieldErrorEnum_UrlFieldError = 21 + // The final mobile url must start with a valid protocol. + UrlFieldErrorEnum_MISSING_PROTOCOL_IN_FINAL_MOBILE_URL UrlFieldErrorEnum_UrlFieldError = 22 + // The final mobile url starts with an invalid protocol. + UrlFieldErrorEnum_INVALID_PROTOCOL_IN_FINAL_MOBILE_URL UrlFieldErrorEnum_UrlFieldError = 23 + // The final mobile url contains illegal characters. + UrlFieldErrorEnum_MALFORMED_FINAL_MOBILE_URL UrlFieldErrorEnum_UrlFieldError = 24 + // The final mobile url must contain a host name. + UrlFieldErrorEnum_MISSING_HOST_IN_FINAL_MOBILE_URL UrlFieldErrorEnum_UrlFieldError = 25 + // The tracking url template has an invalid or missing top level domain + // extension. + UrlFieldErrorEnum_INVALID_TLD_IN_FINAL_MOBILE_URL UrlFieldErrorEnum_UrlFieldError = 26 + // The final app url is invalid. + UrlFieldErrorEnum_INVALID_FINAL_APP_URL UrlFieldErrorEnum_UrlFieldError = 27 + // The final app url contains invalid tag. + UrlFieldErrorEnum_INVALID_TAG_IN_FINAL_APP_URL UrlFieldErrorEnum_UrlFieldError = 28 + // The final app url contains nested occurrences of the same conditional tag + // (i.e. {ifmobile:{ifmobile:x}}). + UrlFieldErrorEnum_REDUNDANT_NESTED_FINAL_APP_URL_TAG UrlFieldErrorEnum_UrlFieldError = 29 + // More than one app url found for the same OS type. + UrlFieldErrorEnum_MULTIPLE_APP_URLS_FOR_OSTYPE UrlFieldErrorEnum_UrlFieldError = 30 + // The OS type given for an app url is not valid. + UrlFieldErrorEnum_INVALID_OSTYPE UrlFieldErrorEnum_UrlFieldError = 31 + // The protocol given for an app url is not valid. (E.g. "android-app://") + UrlFieldErrorEnum_INVALID_PROTOCOL_FOR_APP_URL UrlFieldErrorEnum_UrlFieldError = 32 + // The package id (app id) given for an app url is not valid. + UrlFieldErrorEnum_INVALID_PACKAGE_ID_FOR_APP_URL UrlFieldErrorEnum_UrlFieldError = 33 + // The number of url custom parameters for an resource exceeds the maximum + // limit allowed. + UrlFieldErrorEnum_URL_CUSTOM_PARAMETERS_COUNT_EXCEEDS_LIMIT UrlFieldErrorEnum_UrlFieldError = 34 + // An invalid character appears in the parameter key. + UrlFieldErrorEnum_INVALID_CHARACTERS_IN_URL_CUSTOM_PARAMETER_KEY UrlFieldErrorEnum_UrlFieldError = 39 + // An invalid character appears in the parameter value. + UrlFieldErrorEnum_INVALID_CHARACTERS_IN_URL_CUSTOM_PARAMETER_VALUE UrlFieldErrorEnum_UrlFieldError = 40 + // The url custom parameter value fails url tag validation. + UrlFieldErrorEnum_INVALID_TAG_IN_URL_CUSTOM_PARAMETER_VALUE UrlFieldErrorEnum_UrlFieldError = 41 + // The custom parameter contains nested occurrences of the same conditional + // tag (i.e. {ifmobile:{ifmobile:x}}). + UrlFieldErrorEnum_REDUNDANT_NESTED_URL_CUSTOM_PARAMETER_TAG UrlFieldErrorEnum_UrlFieldError = 42 + // The protocol (http:// or https://) is missing. + UrlFieldErrorEnum_MISSING_PROTOCOL UrlFieldErrorEnum_UrlFieldError = 43 + // Unsupported protocol in URL. Only http and https are supported. + UrlFieldErrorEnum_INVALID_PROTOCOL UrlFieldErrorEnum_UrlFieldError = 52 + // The url is invalid. + UrlFieldErrorEnum_INVALID_URL UrlFieldErrorEnum_UrlFieldError = 44 + // Destination Url is deprecated. + UrlFieldErrorEnum_DESTINATION_URL_DEPRECATED UrlFieldErrorEnum_UrlFieldError = 45 + // The url contains invalid tag. + UrlFieldErrorEnum_INVALID_TAG_IN_URL UrlFieldErrorEnum_UrlFieldError = 46 + // The url must contain at least one tag (e.g. {lpurl}), This applies only + // to urls associated with website ads or product ads. + UrlFieldErrorEnum_MISSING_URL_TAG UrlFieldErrorEnum_UrlFieldError = 47 + // Duplicate url id. + UrlFieldErrorEnum_DUPLICATE_URL_ID UrlFieldErrorEnum_UrlFieldError = 48 + // Invalid url id. + UrlFieldErrorEnum_INVALID_URL_ID UrlFieldErrorEnum_UrlFieldError = 49 + // The final url suffix cannot begin with '?' or '&' characters and must be + // a valid query string. + UrlFieldErrorEnum_FINAL_URL_SUFFIX_MALFORMED UrlFieldErrorEnum_UrlFieldError = 50 + // The final url suffix cannot contain {lpurl} related or {ignore} tags. + UrlFieldErrorEnum_INVALID_TAG_IN_FINAL_URL_SUFFIX UrlFieldErrorEnum_UrlFieldError = 51 + // The top level domain is invalid, e.g, not a public top level domain + // listed in publicsuffix.org. + UrlFieldErrorEnum_INVALID_TOP_LEVEL_DOMAIN UrlFieldErrorEnum_UrlFieldError = 53 + // Malformed top level domain in URL. + UrlFieldErrorEnum_MALFORMED_TOP_LEVEL_DOMAIN UrlFieldErrorEnum_UrlFieldError = 54 + // Malformed URL. + UrlFieldErrorEnum_MALFORMED_URL UrlFieldErrorEnum_UrlFieldError = 55 + // No host found in URL. + UrlFieldErrorEnum_MISSING_HOST UrlFieldErrorEnum_UrlFieldError = 56 +) + +var UrlFieldErrorEnum_UrlFieldError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "INVALID_TRACKING_URL_TEMPLATE", + 3: "INVALID_TAG_IN_TRACKING_URL_TEMPLATE", + 4: "MISSING_TRACKING_URL_TEMPLATE_TAG", + 5: "MISSING_PROTOCOL_IN_TRACKING_URL_TEMPLATE", + 6: "INVALID_PROTOCOL_IN_TRACKING_URL_TEMPLATE", + 7: "MALFORMED_TRACKING_URL_TEMPLATE", + 8: "MISSING_HOST_IN_TRACKING_URL_TEMPLATE", + 9: "INVALID_TLD_IN_TRACKING_URL_TEMPLATE", + 10: "REDUNDANT_NESTED_TRACKING_URL_TEMPLATE_TAG", + 11: "INVALID_FINAL_URL", + 12: "INVALID_TAG_IN_FINAL_URL", + 13: "REDUNDANT_NESTED_FINAL_URL_TAG", + 14: "MISSING_PROTOCOL_IN_FINAL_URL", + 15: "INVALID_PROTOCOL_IN_FINAL_URL", + 16: "MALFORMED_FINAL_URL", + 17: "MISSING_HOST_IN_FINAL_URL", + 18: "INVALID_TLD_IN_FINAL_URL", + 19: "INVALID_FINAL_MOBILE_URL", + 20: "INVALID_TAG_IN_FINAL_MOBILE_URL", + 21: "REDUNDANT_NESTED_FINAL_MOBILE_URL_TAG", + 22: "MISSING_PROTOCOL_IN_FINAL_MOBILE_URL", + 23: "INVALID_PROTOCOL_IN_FINAL_MOBILE_URL", + 24: "MALFORMED_FINAL_MOBILE_URL", + 25: "MISSING_HOST_IN_FINAL_MOBILE_URL", + 26: "INVALID_TLD_IN_FINAL_MOBILE_URL", + 27: "INVALID_FINAL_APP_URL", + 28: "INVALID_TAG_IN_FINAL_APP_URL", + 29: "REDUNDANT_NESTED_FINAL_APP_URL_TAG", + 30: "MULTIPLE_APP_URLS_FOR_OSTYPE", + 31: "INVALID_OSTYPE", + 32: "INVALID_PROTOCOL_FOR_APP_URL", + 33: "INVALID_PACKAGE_ID_FOR_APP_URL", + 34: "URL_CUSTOM_PARAMETERS_COUNT_EXCEEDS_LIMIT", + 39: "INVALID_CHARACTERS_IN_URL_CUSTOM_PARAMETER_KEY", + 40: "INVALID_CHARACTERS_IN_URL_CUSTOM_PARAMETER_VALUE", + 41: "INVALID_TAG_IN_URL_CUSTOM_PARAMETER_VALUE", + 42: "REDUNDANT_NESTED_URL_CUSTOM_PARAMETER_TAG", + 43: "MISSING_PROTOCOL", + 52: "INVALID_PROTOCOL", + 44: "INVALID_URL", + 45: "DESTINATION_URL_DEPRECATED", + 46: "INVALID_TAG_IN_URL", + 47: "MISSING_URL_TAG", + 48: "DUPLICATE_URL_ID", + 49: "INVALID_URL_ID", + 50: "FINAL_URL_SUFFIX_MALFORMED", + 51: "INVALID_TAG_IN_FINAL_URL_SUFFIX", + 53: "INVALID_TOP_LEVEL_DOMAIN", + 54: "MALFORMED_TOP_LEVEL_DOMAIN", + 55: "MALFORMED_URL", + 56: "MISSING_HOST", +} +var UrlFieldErrorEnum_UrlFieldError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "INVALID_TRACKING_URL_TEMPLATE": 2, + "INVALID_TAG_IN_TRACKING_URL_TEMPLATE": 3, + "MISSING_TRACKING_URL_TEMPLATE_TAG": 4, + "MISSING_PROTOCOL_IN_TRACKING_URL_TEMPLATE": 5, + "INVALID_PROTOCOL_IN_TRACKING_URL_TEMPLATE": 6, + "MALFORMED_TRACKING_URL_TEMPLATE": 7, + "MISSING_HOST_IN_TRACKING_URL_TEMPLATE": 8, + "INVALID_TLD_IN_TRACKING_URL_TEMPLATE": 9, + "REDUNDANT_NESTED_TRACKING_URL_TEMPLATE_TAG": 10, + "INVALID_FINAL_URL": 11, + "INVALID_TAG_IN_FINAL_URL": 12, + "REDUNDANT_NESTED_FINAL_URL_TAG": 13, + "MISSING_PROTOCOL_IN_FINAL_URL": 14, + "INVALID_PROTOCOL_IN_FINAL_URL": 15, + "MALFORMED_FINAL_URL": 16, + "MISSING_HOST_IN_FINAL_URL": 17, + "INVALID_TLD_IN_FINAL_URL": 18, + "INVALID_FINAL_MOBILE_URL": 19, + "INVALID_TAG_IN_FINAL_MOBILE_URL": 20, + "REDUNDANT_NESTED_FINAL_MOBILE_URL_TAG": 21, + "MISSING_PROTOCOL_IN_FINAL_MOBILE_URL": 22, + "INVALID_PROTOCOL_IN_FINAL_MOBILE_URL": 23, + "MALFORMED_FINAL_MOBILE_URL": 24, + "MISSING_HOST_IN_FINAL_MOBILE_URL": 25, + "INVALID_TLD_IN_FINAL_MOBILE_URL": 26, + "INVALID_FINAL_APP_URL": 27, + "INVALID_TAG_IN_FINAL_APP_URL": 28, + "REDUNDANT_NESTED_FINAL_APP_URL_TAG": 29, + "MULTIPLE_APP_URLS_FOR_OSTYPE": 30, + "INVALID_OSTYPE": 31, + "INVALID_PROTOCOL_FOR_APP_URL": 32, + "INVALID_PACKAGE_ID_FOR_APP_URL": 33, + "URL_CUSTOM_PARAMETERS_COUNT_EXCEEDS_LIMIT": 34, + "INVALID_CHARACTERS_IN_URL_CUSTOM_PARAMETER_KEY": 39, + "INVALID_CHARACTERS_IN_URL_CUSTOM_PARAMETER_VALUE": 40, + "INVALID_TAG_IN_URL_CUSTOM_PARAMETER_VALUE": 41, + "REDUNDANT_NESTED_URL_CUSTOM_PARAMETER_TAG": 42, + "MISSING_PROTOCOL": 43, + "INVALID_PROTOCOL": 52, + "INVALID_URL": 44, + "DESTINATION_URL_DEPRECATED": 45, + "INVALID_TAG_IN_URL": 46, + "MISSING_URL_TAG": 47, + "DUPLICATE_URL_ID": 48, + "INVALID_URL_ID": 49, + "FINAL_URL_SUFFIX_MALFORMED": 50, + "INVALID_TAG_IN_FINAL_URL_SUFFIX": 51, + "INVALID_TOP_LEVEL_DOMAIN": 53, + "MALFORMED_TOP_LEVEL_DOMAIN": 54, + "MALFORMED_URL": 55, + "MISSING_HOST": 56, +} + +func (x UrlFieldErrorEnum_UrlFieldError) String() string { + return proto.EnumName(UrlFieldErrorEnum_UrlFieldError_name, int32(x)) +} +func (UrlFieldErrorEnum_UrlFieldError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_url_field_error_9d171e417763e4ac, []int{0, 0} +} + +// Container for enum describing possible url field errors. +type UrlFieldErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UrlFieldErrorEnum) Reset() { *m = UrlFieldErrorEnum{} } +func (m *UrlFieldErrorEnum) String() string { return proto.CompactTextString(m) } +func (*UrlFieldErrorEnum) ProtoMessage() {} +func (*UrlFieldErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_url_field_error_9d171e417763e4ac, []int{0} +} +func (m *UrlFieldErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UrlFieldErrorEnum.Unmarshal(m, b) +} +func (m *UrlFieldErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UrlFieldErrorEnum.Marshal(b, m, deterministic) +} +func (dst *UrlFieldErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_UrlFieldErrorEnum.Merge(dst, src) +} +func (m *UrlFieldErrorEnum) XXX_Size() int { + return xxx_messageInfo_UrlFieldErrorEnum.Size(m) +} +func (m *UrlFieldErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_UrlFieldErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_UrlFieldErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*UrlFieldErrorEnum)(nil), "google.ads.googleads.v0.errors.UrlFieldErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.UrlFieldErrorEnum_UrlFieldError", UrlFieldErrorEnum_UrlFieldError_name, UrlFieldErrorEnum_UrlFieldError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/url_field_error.proto", fileDescriptor_url_field_error_9d171e417763e4ac) +} + +var fileDescriptor_url_field_error_9d171e417763e4ac = []byte{ + // 813 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x95, 0x6d, 0x4f, 0xe3, 0x46, + 0x10, 0xc7, 0x0b, 0xd7, 0xde, 0xb5, 0xc3, 0x05, 0x36, 0xc3, 0x71, 0x77, 0x5c, 0x21, 0x07, 0x29, + 0xb4, 0x40, 0x8b, 0x93, 0x02, 0x7d, 0x90, 0xfa, 0x6a, 0xb1, 0x37, 0x61, 0x15, 0x3f, 0xc9, 0x5e, + 0xa7, 0x50, 0x45, 0x5a, 0xd1, 0x26, 0x8d, 0x90, 0x02, 0x46, 0x49, 0xe1, 0x9b, 0xf4, 0x0b, 0xf4, + 0x65, 0x3f, 0x49, 0xd5, 0x2f, 0xd5, 0x6a, 0xed, 0x38, 0xb6, 0x13, 0x9b, 0xaa, 0xaf, 0xbc, 0x9a, + 0xf9, 0xcd, 0xcc, 0xee, 0x7f, 0xbc, 0x3b, 0x70, 0x36, 0x0c, 0xc3, 0xe1, 0x68, 0xd0, 0xb8, 0xee, + 0x4f, 0x1a, 0xf1, 0x52, 0xad, 0x1e, 0x9b, 0x8d, 0xc1, 0x78, 0x1c, 0x8e, 0x27, 0x8d, 0x87, 0xf1, + 0x48, 0xfe, 0x7a, 0x33, 0x18, 0xf5, 0x65, 0x64, 0xd0, 0xee, 0xc7, 0xe1, 0x6f, 0x21, 0xd6, 0x62, + 0x54, 0xbb, 0xee, 0x4f, 0xb4, 0x59, 0x94, 0xf6, 0xd8, 0xd4, 0xe2, 0xa8, 0xfa, 0xef, 0xab, 0x50, + 0x0d, 0xc6, 0xa3, 0x96, 0x0a, 0x64, 0xca, 0xc4, 0xee, 0x1e, 0x6e, 0xeb, 0xff, 0x54, 0xa0, 0x92, + 0xb3, 0xe2, 0x1a, 0xac, 0x04, 0xb6, 0xef, 0x32, 0x9d, 0xb7, 0x38, 0x33, 0xc8, 0x07, 0xb8, 0x02, + 0x2f, 0x02, 0xbb, 0x63, 0x3b, 0x3f, 0xda, 0x64, 0x09, 0x77, 0x61, 0x9b, 0xdb, 0x5d, 0x6a, 0x72, + 0x43, 0x0a, 0x8f, 0xea, 0x1d, 0x6e, 0xb7, 0x65, 0xe0, 0x99, 0x52, 0x30, 0xcb, 0x35, 0xa9, 0x60, + 0x64, 0x19, 0x0f, 0x60, 0x6f, 0x86, 0xd0, 0xb6, 0xe4, 0x76, 0x09, 0xf9, 0x0c, 0xf7, 0x61, 0xd7, + 0xe2, 0xbe, 0xaf, 0x3c, 0x85, 0x88, 0x8a, 0x27, 0x1f, 0xe2, 0x31, 0x1c, 0x26, 0x98, 0xeb, 0x39, + 0xc2, 0xd1, 0x1d, 0xb3, 0x3c, 0xeb, 0x47, 0x0a, 0x4f, 0xea, 0xff, 0x37, 0xfe, 0x1c, 0x3f, 0x83, + 0xf7, 0x16, 0x35, 0x5b, 0x8e, 0x67, 0xb1, 0xb2, 0x33, 0xbd, 0xc0, 0x43, 0xd8, 0x4f, 0xb6, 0x70, + 0xe1, 0xf8, 0xa2, 0x3c, 0xdf, 0xc7, 0xb9, 0xe3, 0x9b, 0x46, 0x39, 0xf9, 0x09, 0x6a, 0x70, 0xe4, + 0x31, 0x23, 0xb0, 0x0d, 0x6a, 0x0b, 0x69, 0x33, 0x5f, 0x94, 0x6d, 0x20, 0xd2, 0x01, 0x70, 0x03, + 0xaa, 0x49, 0xe6, 0x16, 0xb7, 0xa9, 0xa9, 0x18, 0xb2, 0x82, 0x5b, 0xf0, 0x76, 0x4e, 0xef, 0xd4, + 0xfb, 0x12, 0xeb, 0x50, 0x5b, 0x28, 0x32, 0xf3, 0x47, 0x89, 0x2b, 0xaa, 0xa9, 0x45, 0x02, 0xa7, + 0x69, 0x56, 0xb3, 0x7d, 0x2f, 0x46, 0xd6, 0xf0, 0x0d, 0xac, 0xa7, 0x42, 0xa6, 0x0e, 0x82, 0xdb, + 0xb0, 0x39, 0x2f, 0x5e, 0xea, 0xae, 0xe6, 0xf6, 0x1f, 0x0b, 0x96, 0x7a, 0x31, 0xeb, 0x8d, 0xcd, + 0x96, 0x73, 0xce, 0x4d, 0x16, 0x79, 0xd7, 0x55, 0xf3, 0x0a, 0xcf, 0x9e, 0x81, 0x5e, 0xa9, 0xe6, + 0x95, 0x48, 0x90, 0x62, 0x91, 0x12, 0x1b, 0xaa, 0x79, 0xe5, 0x4a, 0x64, 0x92, 0xbe, 0xce, 0xb6, + 0xf9, 0x49, 0xf2, 0x0d, 0xd6, 0xe0, 0xdd, 0xbc, 0x2e, 0x19, 0xff, 0x5b, 0xdc, 0x83, 0x9d, 0x62, + 0x79, 0x32, 0xd4, 0x66, 0xee, 0xa4, 0x59, 0x95, 0x32, 0xd0, 0x3b, 0xdc, 0x84, 0x8d, 0xbc, 0x58, + 0xd4, 0x75, 0x23, 0xd7, 0xa7, 0xb8, 0x03, 0x5b, 0x85, 0x4a, 0x25, 0xc4, 0x16, 0x7e, 0x0e, 0xf5, + 0x12, 0x99, 0xa6, 0x4c, 0xa4, 0xd1, 0xb6, 0xca, 0x64, 0x05, 0xa6, 0xe0, 0xae, 0xc9, 0x12, 0x8f, + 0x2f, 0x5b, 0x8e, 0x27, 0x1d, 0x5f, 0x5c, 0xb9, 0x8c, 0xd4, 0x10, 0x61, 0x35, 0xa9, 0x35, 0xb5, + 0xbd, 0xcf, 0xd6, 0x9f, 0xe9, 0xa5, 0x82, 0x92, 0xfa, 0x3b, 0xea, 0x4f, 0x9d, 0x11, 0x54, 0xef, + 0xd0, 0x36, 0x93, 0xea, 0x1c, 0x19, 0x66, 0x57, 0xdd, 0x6d, 0xb5, 0x11, 0x3d, 0xf0, 0x85, 0x63, + 0x49, 0x97, 0x7a, 0xd4, 0x62, 0x82, 0x79, 0xbe, 0xd4, 0x9d, 0xc0, 0x16, 0x92, 0x5d, 0xea, 0x8c, + 0x19, 0xbe, 0x34, 0xb9, 0xc5, 0x05, 0xa9, 0xe3, 0x09, 0x68, 0x49, 0x4a, 0xfd, 0x82, 0x7a, 0x54, + 0x8f, 0x58, 0x6e, 0xcb, 0xa2, 0x24, 0xb2, 0xc3, 0xae, 0xc8, 0x17, 0x78, 0x06, 0xcd, 0xff, 0x11, + 0xd3, 0xa5, 0x66, 0xc0, 0xc8, 0x41, 0xf6, 0xd1, 0x99, 0xca, 0xfb, 0x04, 0x7e, 0xa8, 0xf0, 0x05, + 0xad, 0x0b, 0x03, 0x94, 0xe4, 0x47, 0xf8, 0x0a, 0xc8, 0xfc, 0x6f, 0x49, 0xbe, 0x54, 0xd6, 0x79, + 0x49, 0xc9, 0x99, 0x7a, 0xbf, 0x13, 0xab, 0xd2, 0xec, 0x2b, 0xf5, 0xff, 0x19, 0xcc, 0x17, 0xdc, + 0xa6, 0x82, 0x3b, 0xf1, 0xbe, 0x0c, 0xe6, 0x7a, 0x4c, 0xa7, 0x82, 0x19, 0xe4, 0x18, 0x5f, 0x03, + 0x2e, 0x6e, 0x9d, 0x68, 0xb8, 0x0e, 0x6b, 0x49, 0xd1, 0xa4, 0xf9, 0x0d, 0x55, 0xd3, 0x08, 0x5c, + 0x93, 0xab, 0xe0, 0xc8, 0xcc, 0x0d, 0xd2, 0xcc, 0x36, 0x7c, 0x6a, 0xfb, 0x5a, 0x95, 0x4d, 0xdf, + 0x19, 0x3f, 0x68, 0xb5, 0xf8, 0xa5, 0x9c, 0xdd, 0x03, 0x72, 0x52, 0x7a, 0x75, 0x53, 0x9c, 0x9c, + 0xe6, 0xde, 0x06, 0xc7, 0x95, 0x26, 0xeb, 0x32, 0x53, 0x1a, 0x8e, 0x45, 0xb9, 0x4d, 0xbe, 0xc9, + 0xdf, 0xac, 0x05, 0xff, 0xb7, 0x58, 0x85, 0x4a, 0xea, 0x57, 0x87, 0xfa, 0x0e, 0x09, 0xbc, 0xcc, + 0x5e, 0x36, 0xf2, 0xfd, 0xf9, 0x5f, 0x4b, 0x50, 0xff, 0x25, 0xbc, 0xd5, 0x9e, 0x1e, 0x9f, 0xe7, + 0x98, 0x9b, 0x92, 0xae, 0x1a, 0xb9, 0xee, 0xd2, 0x4f, 0xc6, 0x34, 0x6a, 0x18, 0x8e, 0xae, 0xef, + 0x86, 0x5a, 0x38, 0x1e, 0x36, 0x86, 0x83, 0xbb, 0x68, 0x20, 0x27, 0xa3, 0xfb, 0xfe, 0x66, 0x52, + 0x36, 0xc9, 0x7f, 0x88, 0x3f, 0x7f, 0x2c, 0x3f, 0x6b, 0x53, 0xfa, 0xe7, 0x72, 0xad, 0x1d, 0x27, + 0xa3, 0xfd, 0x89, 0x16, 0x2f, 0xd5, 0xaa, 0xdb, 0xd4, 0xa2, 0x92, 0x93, 0xbf, 0x13, 0xa0, 0x47, + 0xfb, 0x93, 0xde, 0x0c, 0xe8, 0x75, 0x9b, 0xbd, 0x18, 0xf8, 0xf9, 0x79, 0x54, 0xf8, 0xf4, 0xdf, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x3f, 0x19, 0x6c, 0x41, 0x08, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/user_list_error.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/user_list_error.pb.go new file mode 100644 index 000000000..6d38bc3bc --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/errors/user_list_error.pb.go @@ -0,0 +1,227 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/errors/user_list_error.proto + +package errors // import "google.golang.org/genproto/googleapis/ads/googleads/v0/errors" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Enum describing possible user list errors. +type UserListErrorEnum_UserListError int32 + +const ( + // Enum unspecified. + UserListErrorEnum_UNSPECIFIED UserListErrorEnum_UserListError = 0 + // The received error code is not known in this version. + UserListErrorEnum_UNKNOWN UserListErrorEnum_UserListError = 1 + // Creating and updating external remarketing user lists is not supported. + UserListErrorEnum_EXTERNAL_REMARKETING_USER_LIST_MUTATE_NOT_SUPPORTED UserListErrorEnum_UserListError = 2 + // Concrete type of user list is required. + UserListErrorEnum_CONCRETE_TYPE_REQUIRED UserListErrorEnum_UserListError = 3 + // Creating/updating user list conversion types requires specifying the + // conversion type Id. + UserListErrorEnum_CONVERSION_TYPE_ID_REQUIRED UserListErrorEnum_UserListError = 4 + // Remarketing user list cannot have duplicate conversion types. + UserListErrorEnum_DUPLICATE_CONVERSION_TYPES UserListErrorEnum_UserListError = 5 + // Conversion type is invalid/unknown. + UserListErrorEnum_INVALID_CONVERSION_TYPE UserListErrorEnum_UserListError = 6 + // User list description is empty or invalid. + UserListErrorEnum_INVALID_DESCRIPTION UserListErrorEnum_UserListError = 7 + // User list name is empty or invalid. + UserListErrorEnum_INVALID_NAME UserListErrorEnum_UserListError = 8 + // Type of the UserList does not match. + UserListErrorEnum_INVALID_TYPE UserListErrorEnum_UserListError = 9 + // Embedded logical user lists are not allowed. + UserListErrorEnum_CAN_NOT_ADD_LOGICAL_LIST_AS_LOGICAL_LIST_OPERAND UserListErrorEnum_UserListError = 10 + // User list rule operand is invalid. + UserListErrorEnum_INVALID_USER_LIST_LOGICAL_RULE_OPERAND UserListErrorEnum_UserListError = 11 + // Name is already being used for another user list for the account. + UserListErrorEnum_NAME_ALREADY_USED UserListErrorEnum_UserListError = 12 + // Name is required when creating a new conversion type. + UserListErrorEnum_NEW_CONVERSION_TYPE_NAME_REQUIRED UserListErrorEnum_UserListError = 13 + // The given conversion type name has been used. + UserListErrorEnum_CONVERSION_TYPE_NAME_ALREADY_USED UserListErrorEnum_UserListError = 14 + // Only an owner account may edit a user list. + UserListErrorEnum_OWNERSHIP_REQUIRED_FOR_SET UserListErrorEnum_UserListError = 15 + // The user list of the type is not mutable. + UserListErrorEnum_USER_LIST_MUTATE_NOT_SUPPORTED UserListErrorEnum_UserListError = 16 + // Rule is invalid. + UserListErrorEnum_INVALID_RULE UserListErrorEnum_UserListError = 17 + // The specified date range is empty. + UserListErrorEnum_INVALID_DATE_RANGE UserListErrorEnum_UserListError = 27 + // A UserList which is privacy sensitive or legal rejected cannot be mutated + // by external users. + UserListErrorEnum_CAN_NOT_MUTATE_SENSITIVE_USERLIST UserListErrorEnum_UserListError = 28 + // Maximum number of rulebased user lists a customer can have. + UserListErrorEnum_MAX_NUM_RULEBASED_USERLISTS UserListErrorEnum_UserListError = 29 + // BasicUserList's billable record field cannot be modified once it is set. + UserListErrorEnum_CANNOT_MODIFY_BILLABLE_RECORD_COUNT UserListErrorEnum_UserListError = 30 + // crm_based_user_list.app_id field must be set when upload_key_type is + // MOBILE_ADVERTISING_ID. + UserListErrorEnum_APP_ID_NOT_SET UserListErrorEnum_UserListError = 31 + // Name of the user list is reserved for system generated lists and cannot + // be used. + UserListErrorEnum_USERLIST_NAME_IS_RESERVED_FOR_SYSTEM_LIST UserListErrorEnum_UserListError = 32 + // Advertiser needs to be whitelisted to use remarketing lists created from + // advertiser uploaded data (e.g., Customer Match lists). + UserListErrorEnum_ADVERTISER_NOT_WHITELISTED_FOR_USING_UPLOADED_DATA UserListErrorEnum_UserListError = 33 +) + +var UserListErrorEnum_UserListError_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "EXTERNAL_REMARKETING_USER_LIST_MUTATE_NOT_SUPPORTED", + 3: "CONCRETE_TYPE_REQUIRED", + 4: "CONVERSION_TYPE_ID_REQUIRED", + 5: "DUPLICATE_CONVERSION_TYPES", + 6: "INVALID_CONVERSION_TYPE", + 7: "INVALID_DESCRIPTION", + 8: "INVALID_NAME", + 9: "INVALID_TYPE", + 10: "CAN_NOT_ADD_LOGICAL_LIST_AS_LOGICAL_LIST_OPERAND", + 11: "INVALID_USER_LIST_LOGICAL_RULE_OPERAND", + 12: "NAME_ALREADY_USED", + 13: "NEW_CONVERSION_TYPE_NAME_REQUIRED", + 14: "CONVERSION_TYPE_NAME_ALREADY_USED", + 15: "OWNERSHIP_REQUIRED_FOR_SET", + 16: "USER_LIST_MUTATE_NOT_SUPPORTED", + 17: "INVALID_RULE", + 27: "INVALID_DATE_RANGE", + 28: "CAN_NOT_MUTATE_SENSITIVE_USERLIST", + 29: "MAX_NUM_RULEBASED_USERLISTS", + 30: "CANNOT_MODIFY_BILLABLE_RECORD_COUNT", + 31: "APP_ID_NOT_SET", + 32: "USERLIST_NAME_IS_RESERVED_FOR_SYSTEM_LIST", + 33: "ADVERTISER_NOT_WHITELISTED_FOR_USING_UPLOADED_DATA", +} +var UserListErrorEnum_UserListError_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "EXTERNAL_REMARKETING_USER_LIST_MUTATE_NOT_SUPPORTED": 2, + "CONCRETE_TYPE_REQUIRED": 3, + "CONVERSION_TYPE_ID_REQUIRED": 4, + "DUPLICATE_CONVERSION_TYPES": 5, + "INVALID_CONVERSION_TYPE": 6, + "INVALID_DESCRIPTION": 7, + "INVALID_NAME": 8, + "INVALID_TYPE": 9, + "CAN_NOT_ADD_LOGICAL_LIST_AS_LOGICAL_LIST_OPERAND": 10, + "INVALID_USER_LIST_LOGICAL_RULE_OPERAND": 11, + "NAME_ALREADY_USED": 12, + "NEW_CONVERSION_TYPE_NAME_REQUIRED": 13, + "CONVERSION_TYPE_NAME_ALREADY_USED": 14, + "OWNERSHIP_REQUIRED_FOR_SET": 15, + "USER_LIST_MUTATE_NOT_SUPPORTED": 16, + "INVALID_RULE": 17, + "INVALID_DATE_RANGE": 27, + "CAN_NOT_MUTATE_SENSITIVE_USERLIST": 28, + "MAX_NUM_RULEBASED_USERLISTS": 29, + "CANNOT_MODIFY_BILLABLE_RECORD_COUNT": 30, + "APP_ID_NOT_SET": 31, + "USERLIST_NAME_IS_RESERVED_FOR_SYSTEM_LIST": 32, + "ADVERTISER_NOT_WHITELISTED_FOR_USING_UPLOADED_DATA": 33, +} + +func (x UserListErrorEnum_UserListError) String() string { + return proto.EnumName(UserListErrorEnum_UserListError_name, int32(x)) +} +func (UserListErrorEnum_UserListError) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_user_list_error_3e90e40f8cd88dd5, []int{0, 0} +} + +// Container for enum describing possible user list errors. +type UserListErrorEnum struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UserListErrorEnum) Reset() { *m = UserListErrorEnum{} } +func (m *UserListErrorEnum) String() string { return proto.CompactTextString(m) } +func (*UserListErrorEnum) ProtoMessage() {} +func (*UserListErrorEnum) Descriptor() ([]byte, []int) { + return fileDescriptor_user_list_error_3e90e40f8cd88dd5, []int{0} +} +func (m *UserListErrorEnum) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserListErrorEnum.Unmarshal(m, b) +} +func (m *UserListErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserListErrorEnum.Marshal(b, m, deterministic) +} +func (dst *UserListErrorEnum) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserListErrorEnum.Merge(dst, src) +} +func (m *UserListErrorEnum) XXX_Size() int { + return xxx_messageInfo_UserListErrorEnum.Size(m) +} +func (m *UserListErrorEnum) XXX_DiscardUnknown() { + xxx_messageInfo_UserListErrorEnum.DiscardUnknown(m) +} + +var xxx_messageInfo_UserListErrorEnum proto.InternalMessageInfo + +func init() { + proto.RegisterType((*UserListErrorEnum)(nil), "google.ads.googleads.v0.errors.UserListErrorEnum") + proto.RegisterEnum("google.ads.googleads.v0.errors.UserListErrorEnum_UserListError", UserListErrorEnum_UserListError_name, UserListErrorEnum_UserListError_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/errors/user_list_error.proto", fileDescriptor_user_list_error_3e90e40f8cd88dd5) +} + +var fileDescriptor_user_list_error_3e90e40f8cd88dd5 = []byte{ + // 645 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x54, 0x5d, 0x4f, 0x13, 0x41, + 0x14, 0x15, 0xd0, 0xa2, 0xc3, 0xd7, 0x30, 0x46, 0x48, 0x40, 0x8b, 0xd4, 0xa8, 0xd1, 0xc4, 0x6d, + 0x23, 0x44, 0x1f, 0x7c, 0x9a, 0xee, 0x5c, 0xca, 0x84, 0xed, 0xcc, 0x3a, 0x33, 0xdb, 0x52, 0xd3, + 0x64, 0x82, 0xb6, 0x69, 0x48, 0x80, 0x25, 0xbb, 0xc0, 0x0f, 0xf2, 0xd1, 0x1f, 0xe1, 0xb3, 0xf1, + 0xd9, 0x1f, 0x64, 0x66, 0xb6, 0x5b, 0x28, 0xf1, 0xe3, 0xa9, 0xb7, 0xf7, 0x9e, 0x7b, 0xee, 0x9c, + 0x33, 0x73, 0x17, 0xed, 0x8e, 0xd2, 0x74, 0x74, 0x32, 0xac, 0x1f, 0x0d, 0xf2, 0x7a, 0x11, 0xba, + 0xe8, 0xaa, 0x51, 0x1f, 0x66, 0x59, 0x9a, 0xe5, 0xf5, 0xcb, 0x7c, 0x98, 0xd9, 0x93, 0xe3, 0xfc, + 0xc2, 0xfa, 0x44, 0x70, 0x9e, 0xa5, 0x17, 0x29, 0xa9, 0x16, 0xd0, 0xe0, 0x68, 0x90, 0x07, 0x93, + 0xae, 0xe0, 0xaa, 0x11, 0x14, 0x5d, 0xb5, 0x5f, 0x15, 0xb4, 0x9a, 0xe4, 0xc3, 0x2c, 0x3a, 0xce, + 0x2f, 0xc0, 0xa5, 0xe0, 0xec, 0xf2, 0xb4, 0xf6, 0xbd, 0x82, 0x96, 0xa6, 0xb2, 0x64, 0x05, 0x2d, + 0x24, 0x42, 0xc7, 0x10, 0xf2, 0x3d, 0x0e, 0x0c, 0xdf, 0x21, 0x0b, 0x68, 0x3e, 0x11, 0x07, 0x42, + 0x76, 0x05, 0x9e, 0x21, 0xef, 0xd1, 0x0e, 0x1c, 0x1a, 0x50, 0x82, 0x46, 0x56, 0x41, 0x9b, 0xaa, + 0x03, 0x30, 0x5c, 0xb4, 0x6c, 0xa2, 0x41, 0xd9, 0x88, 0x6b, 0x63, 0xdb, 0x89, 0xa1, 0x06, 0xac, + 0x90, 0xc6, 0xea, 0x24, 0x8e, 0xa5, 0x32, 0xc0, 0xf0, 0x2c, 0xd9, 0x40, 0x6b, 0xa1, 0x14, 0xa1, + 0x02, 0x03, 0xd6, 0xf4, 0x62, 0xb0, 0x0a, 0x3e, 0x26, 0x5c, 0x01, 0xc3, 0x73, 0x64, 0x0b, 0x6d, + 0x86, 0x52, 0x74, 0x40, 0x69, 0x2e, 0x45, 0x51, 0xe5, 0xec, 0x1a, 0x70, 0x97, 0x54, 0xd1, 0x06, + 0x4b, 0xe2, 0x88, 0x87, 0x8e, 0xf9, 0x16, 0x54, 0xe3, 0x7b, 0x64, 0x13, 0xad, 0x73, 0xd1, 0xa1, + 0x11, 0x67, 0xb7, 0xab, 0xb8, 0x42, 0xd6, 0xd1, 0xc3, 0xb2, 0xc8, 0x40, 0x87, 0x8a, 0xc7, 0x86, + 0x4b, 0x81, 0xe7, 0x09, 0x46, 0x8b, 0x65, 0x41, 0xd0, 0x36, 0xe0, 0xfb, 0x37, 0x33, 0xbe, 0xf9, + 0x01, 0xd9, 0x45, 0x8d, 0x90, 0x0a, 0xaf, 0x86, 0x32, 0x66, 0x23, 0xd9, 0xe2, 0x21, 0x8d, 0x0a, + 0xa5, 0x54, 0x4f, 0xff, 0x97, 0x31, 0x28, 0x2a, 0x18, 0x46, 0xe4, 0x35, 0x7a, 0x51, 0xf2, 0x5c, + 0x1b, 0x53, 0x62, 0x55, 0x12, 0xc1, 0x04, 0xbb, 0x40, 0x1e, 0xa1, 0x55, 0x37, 0xdd, 0xd2, 0x48, + 0x01, 0x65, 0x3d, 0xd7, 0xc0, 0xf0, 0x22, 0x79, 0x8e, 0xb6, 0x05, 0x74, 0x6f, 0xcb, 0xf1, 0x07, + 0xbd, 0x76, 0x66, 0xc9, 0xc1, 0xfe, 0x08, 0x99, 0x62, 0x5b, 0x76, 0x06, 0xca, 0xae, 0x00, 0xa5, + 0xf7, 0x79, 0x3c, 0x69, 0xb7, 0x7b, 0x52, 0x59, 0x0d, 0x06, 0xaf, 0x90, 0x1a, 0xaa, 0xfe, 0xe7, + 0x06, 0xf1, 0x4d, 0x73, 0x9c, 0x04, 0xbc, 0x4a, 0xd6, 0x10, 0x99, 0x38, 0xeb, 0x3a, 0x14, 0x15, + 0x2d, 0xc0, 0x9b, 0xfe, 0x50, 0x63, 0xd3, 0xc6, 0x5c, 0x1a, 0x84, 0xe6, 0x86, 0x77, 0xc0, 0xfb, + 0xe1, 0xa6, 0xe0, 0xc7, 0xee, 0xda, 0xdb, 0xf4, 0xd0, 0x8a, 0xa4, 0xed, 0x09, 0x9b, 0x54, 0x03, + 0x9b, 0xd4, 0x35, 0x7e, 0x42, 0x5e, 0xa2, 0x67, 0x21, 0x15, 0x9e, 0x46, 0x32, 0xbe, 0xd7, 0xb3, + 0x4d, 0x1e, 0x45, 0xb4, 0x19, 0x39, 0x07, 0x42, 0xa9, 0xdc, 0x65, 0x27, 0xc2, 0xe0, 0x2a, 0x21, + 0x68, 0x99, 0xc6, 0xb1, 0x7b, 0x34, 0xfe, 0xd0, 0x60, 0xf0, 0x16, 0x79, 0x83, 0x5e, 0x95, 0x5c, + 0x85, 0x25, 0x5c, 0x5b, 0x05, 0x1a, 0x54, 0xa7, 0x54, 0xde, 0xd3, 0x06, 0xda, 0x5e, 0x32, 0x7e, + 0x4a, 0xde, 0xa1, 0xb7, 0x94, 0x75, 0x40, 0x19, 0xee, 0x7c, 0x70, 0x34, 0xdd, 0x7d, 0x6e, 0xc0, + 0x55, 0xc7, 0xf8, 0x44, 0xfb, 0x87, 0x1e, 0x47, 0x92, 0x32, 0xf0, 0x8a, 0x29, 0xde, 0x6e, 0xfe, + 0x98, 0x41, 0xb5, 0x2f, 0xe9, 0x69, 0xf0, 0xef, 0xed, 0x6b, 0x92, 0xa9, 0x25, 0x8b, 0xdd, 0xc6, + 0xc6, 0x33, 0x9f, 0xd8, 0xb8, 0x6b, 0x94, 0x9e, 0x1c, 0x9d, 0x8d, 0x82, 0x34, 0x1b, 0xd5, 0x47, + 0xc3, 0x33, 0xbf, 0xcf, 0xe5, 0xe6, 0x9f, 0x1f, 0xe7, 0x7f, 0xfb, 0x10, 0x7c, 0x28, 0x7e, 0xbe, + 0xce, 0xce, 0xb5, 0x28, 0xfd, 0x36, 0x5b, 0x6d, 0x15, 0x64, 0x74, 0x90, 0x07, 0x45, 0xe8, 0xa2, + 0x4e, 0x23, 0xf0, 0x23, 0xf3, 0x9f, 0x25, 0xa0, 0x4f, 0x07, 0x79, 0x7f, 0x02, 0xe8, 0x77, 0x1a, + 0xfd, 0x02, 0xf0, 0xb9, 0xe2, 0x07, 0xef, 0xfc, 0x0e, 0x00, 0x00, 0xff, 0xff, 0x76, 0x6d, 0xea, + 0x58, 0x80, 0x04, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/account_budget.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/account_budget.pb.go new file mode 100644 index 000000000..5fbde3845 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/account_budget.pb.go @@ -0,0 +1,1051 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/account_budget.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// An account-level budget. It contains information about the budget itself, +// as well as the most recently approved changes to the budget and proposed +// changes that are pending approval. The proposed changes that are pending +// approval, if any, are found in 'pending_proposal'. Effective details about +// the budget are found in fields prefixed 'approved_', 'adjusted_' and those +// without a prefix. Since some effective details may differ from what the user +// had originally requested (e.g. spending limit), these differences are +// juxtaposed via 'proposed_', 'approved_', and possibly 'adjusted_' fields. +// +// This resource is mutated using AccountBudgetProposal and cannot be mutated +// directly. A budget may have at most one pending proposal at any given time. +// It is read through pending_proposal. +// +// Once approved, a budget may be subject to adjustments, such as credit +// adjustments. Adjustments create differences between the 'approved' and +// 'adjusted' fields, which would otherwise be identical. +type AccountBudget struct { + // The resource name of the account-level budget. + // AccountBudget resource names have the form: + // + // `customers/{customer_id}/accountBudgets/{account_budget_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + // The ID of the account-level budget. + Id *wrappers.Int64Value `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` + // The resource name of the billing setup associated with this account-level + // budget. BillingSetup resource names have the form: + // + // `customers/{customer_id}/billingSetups/{billing_setup_id}` + BillingSetup *wrappers.StringValue `protobuf:"bytes,3,opt,name=billing_setup,json=billingSetup,proto3" json:"billing_setup,omitempty"` + // The status of this account-level budget. + Status enums.AccountBudgetStatusEnum_AccountBudgetStatus `protobuf:"varint,4,opt,name=status,proto3,enum=google.ads.googleads.v0.enums.AccountBudgetStatusEnum_AccountBudgetStatus" json:"status,omitempty"` + // The name of the account-level budget. + Name *wrappers.StringValue `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"` + // The proposed start time of the account-level budget in + // yyyy-MM-dd HH:mm:ss format. If a start time type of NOW was proposed, + // this is the time of request. + ProposedStartDateTime *wrappers.StringValue `protobuf:"bytes,6,opt,name=proposed_start_date_time,json=proposedStartDateTime,proto3" json:"proposed_start_date_time,omitempty"` + // The approved start time of the account-level budget in yyyy-MM-dd HH:mm:ss + // format. + // + // For example, if a new budget is approved after the proposed start time, + // the approved start time is the time of approval. + ApprovedStartDateTime *wrappers.StringValue `protobuf:"bytes,7,opt,name=approved_start_date_time,json=approvedStartDateTime,proto3" json:"approved_start_date_time,omitempty"` + // The total adjustments amount. + // + // An example of an adjustment is courtesy credits. + TotalAdjustmentsMicros *wrappers.Int64Value `protobuf:"bytes,18,opt,name=total_adjustments_micros,json=totalAdjustmentsMicros,proto3" json:"total_adjustments_micros,omitempty"` + // The value of Ads that have been served, in micros. + // + // This includes overdelivery costs, in which case a credit might be + // automatically applied to the budget (see total_adjustments_micros). + AmountServedMicros *wrappers.Int64Value `protobuf:"bytes,19,opt,name=amount_served_micros,json=amountServedMicros,proto3" json:"amount_served_micros,omitempty"` + // A purchase order number is a value that helps users reference this budget + // in their monthly invoices. + PurchaseOrderNumber *wrappers.StringValue `protobuf:"bytes,20,opt,name=purchase_order_number,json=purchaseOrderNumber,proto3" json:"purchase_order_number,omitempty"` + // Notes associated with the budget. + Notes *wrappers.StringValue `protobuf:"bytes,21,opt,name=notes,proto3" json:"notes,omitempty"` + // The pending proposal to modify this budget, if applicable. + PendingProposal *AccountBudget_PendingAccountBudgetProposal `protobuf:"bytes,22,opt,name=pending_proposal,json=pendingProposal,proto3" json:"pending_proposal,omitempty"` + // The proposed end time of the account-level budget. + // + // Types that are valid to be assigned to ProposedEndTime: + // *AccountBudget_ProposedEndDateTime + // *AccountBudget_ProposedEndTimeType + ProposedEndTime isAccountBudget_ProposedEndTime `protobuf_oneof:"proposed_end_time"` + // The approved end time of the account-level budget. + // + // For example, if a budget's end time is updated and the proposal is approved + // after the proposed end time, the approved end time is the time of approval. + // + // Types that are valid to be assigned to ApprovedEndTime: + // *AccountBudget_ApprovedEndDateTime + // *AccountBudget_ApprovedEndTimeType + ApprovedEndTime isAccountBudget_ApprovedEndTime `protobuf_oneof:"approved_end_time"` + // The proposed spending limit. + // + // Types that are valid to be assigned to ProposedSpendingLimit: + // *AccountBudget_ProposedSpendingLimitMicros + // *AccountBudget_ProposedSpendingLimitType + ProposedSpendingLimit isAccountBudget_ProposedSpendingLimit `protobuf_oneof:"proposed_spending_limit"` + // The approved spending limit. + // + // For example, if the amount already spent by the account exceeds the + // proposed spending limit at the time the proposal is approved, the approved + // spending limit is set to the amount already spent. + // + // Types that are valid to be assigned to ApprovedSpendingLimit: + // *AccountBudget_ApprovedSpendingLimitMicros + // *AccountBudget_ApprovedSpendingLimitType + ApprovedSpendingLimit isAccountBudget_ApprovedSpendingLimit `protobuf_oneof:"approved_spending_limit"` + // The spending limit after adjustments have been applied. Adjustments are + // stored in total_adjustments_micros. + // + // This value has the final say on how much the account is allowed to spend. + // + // Types that are valid to be assigned to AdjustedSpendingLimit: + // *AccountBudget_AdjustedSpendingLimitMicros + // *AccountBudget_AdjustedSpendingLimitType + AdjustedSpendingLimit isAccountBudget_AdjustedSpendingLimit `protobuf_oneof:"adjusted_spending_limit"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AccountBudget) Reset() { *m = AccountBudget{} } +func (m *AccountBudget) String() string { return proto.CompactTextString(m) } +func (*AccountBudget) ProtoMessage() {} +func (*AccountBudget) Descriptor() ([]byte, []int) { + return fileDescriptor_account_budget_0b2aa8095fe7f986, []int{0} +} +func (m *AccountBudget) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AccountBudget.Unmarshal(m, b) +} +func (m *AccountBudget) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AccountBudget.Marshal(b, m, deterministic) +} +func (dst *AccountBudget) XXX_Merge(src proto.Message) { + xxx_messageInfo_AccountBudget.Merge(dst, src) +} +func (m *AccountBudget) XXX_Size() int { + return xxx_messageInfo_AccountBudget.Size(m) +} +func (m *AccountBudget) XXX_DiscardUnknown() { + xxx_messageInfo_AccountBudget.DiscardUnknown(m) +} + +var xxx_messageInfo_AccountBudget proto.InternalMessageInfo + +func (m *AccountBudget) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func (m *AccountBudget) GetId() *wrappers.Int64Value { + if m != nil { + return m.Id + } + return nil +} + +func (m *AccountBudget) GetBillingSetup() *wrappers.StringValue { + if m != nil { + return m.BillingSetup + } + return nil +} + +func (m *AccountBudget) GetStatus() enums.AccountBudgetStatusEnum_AccountBudgetStatus { + if m != nil { + return m.Status + } + return enums.AccountBudgetStatusEnum_UNSPECIFIED +} + +func (m *AccountBudget) GetName() *wrappers.StringValue { + if m != nil { + return m.Name + } + return nil +} + +func (m *AccountBudget) GetProposedStartDateTime() *wrappers.StringValue { + if m != nil { + return m.ProposedStartDateTime + } + return nil +} + +func (m *AccountBudget) GetApprovedStartDateTime() *wrappers.StringValue { + if m != nil { + return m.ApprovedStartDateTime + } + return nil +} + +func (m *AccountBudget) GetTotalAdjustmentsMicros() *wrappers.Int64Value { + if m != nil { + return m.TotalAdjustmentsMicros + } + return nil +} + +func (m *AccountBudget) GetAmountServedMicros() *wrappers.Int64Value { + if m != nil { + return m.AmountServedMicros + } + return nil +} + +func (m *AccountBudget) GetPurchaseOrderNumber() *wrappers.StringValue { + if m != nil { + return m.PurchaseOrderNumber + } + return nil +} + +func (m *AccountBudget) GetNotes() *wrappers.StringValue { + if m != nil { + return m.Notes + } + return nil +} + +func (m *AccountBudget) GetPendingProposal() *AccountBudget_PendingAccountBudgetProposal { + if m != nil { + return m.PendingProposal + } + return nil +} + +type isAccountBudget_ProposedEndTime interface { + isAccountBudget_ProposedEndTime() +} + +type AccountBudget_ProposedEndDateTime struct { + ProposedEndDateTime *wrappers.StringValue `protobuf:"bytes,8,opt,name=proposed_end_date_time,json=proposedEndDateTime,proto3,oneof"` +} + +type AccountBudget_ProposedEndTimeType struct { + ProposedEndTimeType enums.TimeTypeEnum_TimeType `protobuf:"varint,9,opt,name=proposed_end_time_type,json=proposedEndTimeType,proto3,enum=google.ads.googleads.v0.enums.TimeTypeEnum_TimeType,oneof"` +} + +func (*AccountBudget_ProposedEndDateTime) isAccountBudget_ProposedEndTime() {} + +func (*AccountBudget_ProposedEndTimeType) isAccountBudget_ProposedEndTime() {} + +func (m *AccountBudget) GetProposedEndTime() isAccountBudget_ProposedEndTime { + if m != nil { + return m.ProposedEndTime + } + return nil +} + +func (m *AccountBudget) GetProposedEndDateTime() *wrappers.StringValue { + if x, ok := m.GetProposedEndTime().(*AccountBudget_ProposedEndDateTime); ok { + return x.ProposedEndDateTime + } + return nil +} + +func (m *AccountBudget) GetProposedEndTimeType() enums.TimeTypeEnum_TimeType { + if x, ok := m.GetProposedEndTime().(*AccountBudget_ProposedEndTimeType); ok { + return x.ProposedEndTimeType + } + return enums.TimeTypeEnum_UNSPECIFIED +} + +type isAccountBudget_ApprovedEndTime interface { + isAccountBudget_ApprovedEndTime() +} + +type AccountBudget_ApprovedEndDateTime struct { + ApprovedEndDateTime *wrappers.StringValue `protobuf:"bytes,10,opt,name=approved_end_date_time,json=approvedEndDateTime,proto3,oneof"` +} + +type AccountBudget_ApprovedEndTimeType struct { + ApprovedEndTimeType enums.TimeTypeEnum_TimeType `protobuf:"varint,11,opt,name=approved_end_time_type,json=approvedEndTimeType,proto3,enum=google.ads.googleads.v0.enums.TimeTypeEnum_TimeType,oneof"` +} + +func (*AccountBudget_ApprovedEndDateTime) isAccountBudget_ApprovedEndTime() {} + +func (*AccountBudget_ApprovedEndTimeType) isAccountBudget_ApprovedEndTime() {} + +func (m *AccountBudget) GetApprovedEndTime() isAccountBudget_ApprovedEndTime { + if m != nil { + return m.ApprovedEndTime + } + return nil +} + +func (m *AccountBudget) GetApprovedEndDateTime() *wrappers.StringValue { + if x, ok := m.GetApprovedEndTime().(*AccountBudget_ApprovedEndDateTime); ok { + return x.ApprovedEndDateTime + } + return nil +} + +func (m *AccountBudget) GetApprovedEndTimeType() enums.TimeTypeEnum_TimeType { + if x, ok := m.GetApprovedEndTime().(*AccountBudget_ApprovedEndTimeType); ok { + return x.ApprovedEndTimeType + } + return enums.TimeTypeEnum_UNSPECIFIED +} + +type isAccountBudget_ProposedSpendingLimit interface { + isAccountBudget_ProposedSpendingLimit() +} + +type AccountBudget_ProposedSpendingLimitMicros struct { + ProposedSpendingLimitMicros *wrappers.Int64Value `protobuf:"bytes,12,opt,name=proposed_spending_limit_micros,json=proposedSpendingLimitMicros,proto3,oneof"` +} + +type AccountBudget_ProposedSpendingLimitType struct { + ProposedSpendingLimitType enums.SpendingLimitTypeEnum_SpendingLimitType `protobuf:"varint,13,opt,name=proposed_spending_limit_type,json=proposedSpendingLimitType,proto3,enum=google.ads.googleads.v0.enums.SpendingLimitTypeEnum_SpendingLimitType,oneof"` +} + +func (*AccountBudget_ProposedSpendingLimitMicros) isAccountBudget_ProposedSpendingLimit() {} + +func (*AccountBudget_ProposedSpendingLimitType) isAccountBudget_ProposedSpendingLimit() {} + +func (m *AccountBudget) GetProposedSpendingLimit() isAccountBudget_ProposedSpendingLimit { + if m != nil { + return m.ProposedSpendingLimit + } + return nil +} + +func (m *AccountBudget) GetProposedSpendingLimitMicros() *wrappers.Int64Value { + if x, ok := m.GetProposedSpendingLimit().(*AccountBudget_ProposedSpendingLimitMicros); ok { + return x.ProposedSpendingLimitMicros + } + return nil +} + +func (m *AccountBudget) GetProposedSpendingLimitType() enums.SpendingLimitTypeEnum_SpendingLimitType { + if x, ok := m.GetProposedSpendingLimit().(*AccountBudget_ProposedSpendingLimitType); ok { + return x.ProposedSpendingLimitType + } + return enums.SpendingLimitTypeEnum_UNSPECIFIED +} + +type isAccountBudget_ApprovedSpendingLimit interface { + isAccountBudget_ApprovedSpendingLimit() +} + +type AccountBudget_ApprovedSpendingLimitMicros struct { + ApprovedSpendingLimitMicros *wrappers.Int64Value `protobuf:"bytes,14,opt,name=approved_spending_limit_micros,json=approvedSpendingLimitMicros,proto3,oneof"` +} + +type AccountBudget_ApprovedSpendingLimitType struct { + ApprovedSpendingLimitType enums.SpendingLimitTypeEnum_SpendingLimitType `protobuf:"varint,15,opt,name=approved_spending_limit_type,json=approvedSpendingLimitType,proto3,enum=google.ads.googleads.v0.enums.SpendingLimitTypeEnum_SpendingLimitType,oneof"` +} + +func (*AccountBudget_ApprovedSpendingLimitMicros) isAccountBudget_ApprovedSpendingLimit() {} + +func (*AccountBudget_ApprovedSpendingLimitType) isAccountBudget_ApprovedSpendingLimit() {} + +func (m *AccountBudget) GetApprovedSpendingLimit() isAccountBudget_ApprovedSpendingLimit { + if m != nil { + return m.ApprovedSpendingLimit + } + return nil +} + +func (m *AccountBudget) GetApprovedSpendingLimitMicros() *wrappers.Int64Value { + if x, ok := m.GetApprovedSpendingLimit().(*AccountBudget_ApprovedSpendingLimitMicros); ok { + return x.ApprovedSpendingLimitMicros + } + return nil +} + +func (m *AccountBudget) GetApprovedSpendingLimitType() enums.SpendingLimitTypeEnum_SpendingLimitType { + if x, ok := m.GetApprovedSpendingLimit().(*AccountBudget_ApprovedSpendingLimitType); ok { + return x.ApprovedSpendingLimitType + } + return enums.SpendingLimitTypeEnum_UNSPECIFIED +} + +type isAccountBudget_AdjustedSpendingLimit interface { + isAccountBudget_AdjustedSpendingLimit() +} + +type AccountBudget_AdjustedSpendingLimitMicros struct { + AdjustedSpendingLimitMicros *wrappers.Int64Value `protobuf:"bytes,16,opt,name=adjusted_spending_limit_micros,json=adjustedSpendingLimitMicros,proto3,oneof"` +} + +type AccountBudget_AdjustedSpendingLimitType struct { + AdjustedSpendingLimitType enums.SpendingLimitTypeEnum_SpendingLimitType `protobuf:"varint,17,opt,name=adjusted_spending_limit_type,json=adjustedSpendingLimitType,proto3,enum=google.ads.googleads.v0.enums.SpendingLimitTypeEnum_SpendingLimitType,oneof"` +} + +func (*AccountBudget_AdjustedSpendingLimitMicros) isAccountBudget_AdjustedSpendingLimit() {} + +func (*AccountBudget_AdjustedSpendingLimitType) isAccountBudget_AdjustedSpendingLimit() {} + +func (m *AccountBudget) GetAdjustedSpendingLimit() isAccountBudget_AdjustedSpendingLimit { + if m != nil { + return m.AdjustedSpendingLimit + } + return nil +} + +func (m *AccountBudget) GetAdjustedSpendingLimitMicros() *wrappers.Int64Value { + if x, ok := m.GetAdjustedSpendingLimit().(*AccountBudget_AdjustedSpendingLimitMicros); ok { + return x.AdjustedSpendingLimitMicros + } + return nil +} + +func (m *AccountBudget) GetAdjustedSpendingLimitType() enums.SpendingLimitTypeEnum_SpendingLimitType { + if x, ok := m.GetAdjustedSpendingLimit().(*AccountBudget_AdjustedSpendingLimitType); ok { + return x.AdjustedSpendingLimitType + } + return enums.SpendingLimitTypeEnum_UNSPECIFIED +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*AccountBudget) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _AccountBudget_OneofMarshaler, _AccountBudget_OneofUnmarshaler, _AccountBudget_OneofSizer, []interface{}{ + (*AccountBudget_ProposedEndDateTime)(nil), + (*AccountBudget_ProposedEndTimeType)(nil), + (*AccountBudget_ApprovedEndDateTime)(nil), + (*AccountBudget_ApprovedEndTimeType)(nil), + (*AccountBudget_ProposedSpendingLimitMicros)(nil), + (*AccountBudget_ProposedSpendingLimitType)(nil), + (*AccountBudget_ApprovedSpendingLimitMicros)(nil), + (*AccountBudget_ApprovedSpendingLimitType)(nil), + (*AccountBudget_AdjustedSpendingLimitMicros)(nil), + (*AccountBudget_AdjustedSpendingLimitType)(nil), + } +} + +func _AccountBudget_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*AccountBudget) + // proposed_end_time + switch x := m.ProposedEndTime.(type) { + case *AccountBudget_ProposedEndDateTime: + b.EncodeVarint(8<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.ProposedEndDateTime); err != nil { + return err + } + case *AccountBudget_ProposedEndTimeType: + b.EncodeVarint(9<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.ProposedEndTimeType)) + case nil: + default: + return fmt.Errorf("AccountBudget.ProposedEndTime has unexpected type %T", x) + } + // approved_end_time + switch x := m.ApprovedEndTime.(type) { + case *AccountBudget_ApprovedEndDateTime: + b.EncodeVarint(10<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.ApprovedEndDateTime); err != nil { + return err + } + case *AccountBudget_ApprovedEndTimeType: + b.EncodeVarint(11<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.ApprovedEndTimeType)) + case nil: + default: + return fmt.Errorf("AccountBudget.ApprovedEndTime has unexpected type %T", x) + } + // proposed_spending_limit + switch x := m.ProposedSpendingLimit.(type) { + case *AccountBudget_ProposedSpendingLimitMicros: + b.EncodeVarint(12<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.ProposedSpendingLimitMicros); err != nil { + return err + } + case *AccountBudget_ProposedSpendingLimitType: + b.EncodeVarint(13<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.ProposedSpendingLimitType)) + case nil: + default: + return fmt.Errorf("AccountBudget.ProposedSpendingLimit has unexpected type %T", x) + } + // approved_spending_limit + switch x := m.ApprovedSpendingLimit.(type) { + case *AccountBudget_ApprovedSpendingLimitMicros: + b.EncodeVarint(14<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.ApprovedSpendingLimitMicros); err != nil { + return err + } + case *AccountBudget_ApprovedSpendingLimitType: + b.EncodeVarint(15<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.ApprovedSpendingLimitType)) + case nil: + default: + return fmt.Errorf("AccountBudget.ApprovedSpendingLimit has unexpected type %T", x) + } + // adjusted_spending_limit + switch x := m.AdjustedSpendingLimit.(type) { + case *AccountBudget_AdjustedSpendingLimitMicros: + b.EncodeVarint(16<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.AdjustedSpendingLimitMicros); err != nil { + return err + } + case *AccountBudget_AdjustedSpendingLimitType: + b.EncodeVarint(17<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.AdjustedSpendingLimitType)) + case nil: + default: + return fmt.Errorf("AccountBudget.AdjustedSpendingLimit has unexpected type %T", x) + } + return nil +} + +func _AccountBudget_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*AccountBudget) + switch tag { + case 8: // proposed_end_time.proposed_end_date_time + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(wrappers.StringValue) + err := b.DecodeMessage(msg) + m.ProposedEndTime = &AccountBudget_ProposedEndDateTime{msg} + return true, err + case 9: // proposed_end_time.proposed_end_time_type + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ProposedEndTime = &AccountBudget_ProposedEndTimeType{enums.TimeTypeEnum_TimeType(x)} + return true, err + case 10: // approved_end_time.approved_end_date_time + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(wrappers.StringValue) + err := b.DecodeMessage(msg) + m.ApprovedEndTime = &AccountBudget_ApprovedEndDateTime{msg} + return true, err + case 11: // approved_end_time.approved_end_time_type + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ApprovedEndTime = &AccountBudget_ApprovedEndTimeType{enums.TimeTypeEnum_TimeType(x)} + return true, err + case 12: // proposed_spending_limit.proposed_spending_limit_micros + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(wrappers.Int64Value) + err := b.DecodeMessage(msg) + m.ProposedSpendingLimit = &AccountBudget_ProposedSpendingLimitMicros{msg} + return true, err + case 13: // proposed_spending_limit.proposed_spending_limit_type + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ProposedSpendingLimit = &AccountBudget_ProposedSpendingLimitType{enums.SpendingLimitTypeEnum_SpendingLimitType(x)} + return true, err + case 14: // approved_spending_limit.approved_spending_limit_micros + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(wrappers.Int64Value) + err := b.DecodeMessage(msg) + m.ApprovedSpendingLimit = &AccountBudget_ApprovedSpendingLimitMicros{msg} + return true, err + case 15: // approved_spending_limit.approved_spending_limit_type + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ApprovedSpendingLimit = &AccountBudget_ApprovedSpendingLimitType{enums.SpendingLimitTypeEnum_SpendingLimitType(x)} + return true, err + case 16: // adjusted_spending_limit.adjusted_spending_limit_micros + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(wrappers.Int64Value) + err := b.DecodeMessage(msg) + m.AdjustedSpendingLimit = &AccountBudget_AdjustedSpendingLimitMicros{msg} + return true, err + case 17: // adjusted_spending_limit.adjusted_spending_limit_type + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.AdjustedSpendingLimit = &AccountBudget_AdjustedSpendingLimitType{enums.SpendingLimitTypeEnum_SpendingLimitType(x)} + return true, err + default: + return false, nil + } +} + +func _AccountBudget_OneofSizer(msg proto.Message) (n int) { + m := msg.(*AccountBudget) + // proposed_end_time + switch x := m.ProposedEndTime.(type) { + case *AccountBudget_ProposedEndDateTime: + s := proto.Size(x.ProposedEndDateTime) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *AccountBudget_ProposedEndTimeType: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(x.ProposedEndTimeType)) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + // approved_end_time + switch x := m.ApprovedEndTime.(type) { + case *AccountBudget_ApprovedEndDateTime: + s := proto.Size(x.ApprovedEndDateTime) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *AccountBudget_ApprovedEndTimeType: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(x.ApprovedEndTimeType)) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + // proposed_spending_limit + switch x := m.ProposedSpendingLimit.(type) { + case *AccountBudget_ProposedSpendingLimitMicros: + s := proto.Size(x.ProposedSpendingLimitMicros) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *AccountBudget_ProposedSpendingLimitType: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(x.ProposedSpendingLimitType)) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + // approved_spending_limit + switch x := m.ApprovedSpendingLimit.(type) { + case *AccountBudget_ApprovedSpendingLimitMicros: + s := proto.Size(x.ApprovedSpendingLimitMicros) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *AccountBudget_ApprovedSpendingLimitType: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(x.ApprovedSpendingLimitType)) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + // adjusted_spending_limit + switch x := m.AdjustedSpendingLimit.(type) { + case *AccountBudget_AdjustedSpendingLimitMicros: + s := proto.Size(x.AdjustedSpendingLimitMicros) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *AccountBudget_AdjustedSpendingLimitType: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.AdjustedSpendingLimitType)) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// A pending proposal associated with the enclosing account-level budget, +// if applicable. +type AccountBudget_PendingAccountBudgetProposal struct { + // The resource name of the proposal. + // AccountBudgetProposal resource names have the form: + // + // + // `customers/{customer_id}/accountBudgetProposals/{account_budget_proposal_id}` + AccountBudgetProposal *wrappers.StringValue `protobuf:"bytes,1,opt,name=account_budget_proposal,json=accountBudgetProposal,proto3" json:"account_budget_proposal,omitempty"` + // The type of this proposal, e.g. END to end the budget associated + // with this proposal. + ProposalType enums.AccountBudgetProposalTypeEnum_AccountBudgetProposalType `protobuf:"varint,2,opt,name=proposal_type,json=proposalType,proto3,enum=google.ads.googleads.v0.enums.AccountBudgetProposalTypeEnum_AccountBudgetProposalType" json:"proposal_type,omitempty"` + // The name to assign to the account-level budget. + Name *wrappers.StringValue `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + // The start time in yyyy-MM-dd HH:mm:ss format. + StartDateTime *wrappers.StringValue `protobuf:"bytes,4,opt,name=start_date_time,json=startDateTime,proto3" json:"start_date_time,omitempty"` + // A purchase order number is a value that helps users reference this budget + // in their monthly invoices. + PurchaseOrderNumber *wrappers.StringValue `protobuf:"bytes,9,opt,name=purchase_order_number,json=purchaseOrderNumber,proto3" json:"purchase_order_number,omitempty"` + // Notes associated with this budget. + Notes *wrappers.StringValue `protobuf:"bytes,10,opt,name=notes,proto3" json:"notes,omitempty"` + // The time when this account-level budget proposal was created. + // Formatted as yyyy-MM-dd HH:mm:ss. + CreationDateTime *wrappers.StringValue `protobuf:"bytes,11,opt,name=creation_date_time,json=creationDateTime,proto3" json:"creation_date_time,omitempty"` + // The end time of the account-level budget. + // + // Types that are valid to be assigned to EndTime: + // *AccountBudget_PendingAccountBudgetProposal_EndDateTime + // *AccountBudget_PendingAccountBudgetProposal_EndTimeType + EndTime isAccountBudget_PendingAccountBudgetProposal_EndTime `protobuf_oneof:"end_time"` + // The spending limit. + // + // Types that are valid to be assigned to SpendingLimit: + // *AccountBudget_PendingAccountBudgetProposal_SpendingLimitMicros + // *AccountBudget_PendingAccountBudgetProposal_SpendingLimitType + SpendingLimit isAccountBudget_PendingAccountBudgetProposal_SpendingLimit `protobuf_oneof:"spending_limit"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AccountBudget_PendingAccountBudgetProposal) Reset() { + *m = AccountBudget_PendingAccountBudgetProposal{} +} +func (m *AccountBudget_PendingAccountBudgetProposal) String() string { + return proto.CompactTextString(m) +} +func (*AccountBudget_PendingAccountBudgetProposal) ProtoMessage() {} +func (*AccountBudget_PendingAccountBudgetProposal) Descriptor() ([]byte, []int) { + return fileDescriptor_account_budget_0b2aa8095fe7f986, []int{0, 0} +} +func (m *AccountBudget_PendingAccountBudgetProposal) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AccountBudget_PendingAccountBudgetProposal.Unmarshal(m, b) +} +func (m *AccountBudget_PendingAccountBudgetProposal) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AccountBudget_PendingAccountBudgetProposal.Marshal(b, m, deterministic) +} +func (dst *AccountBudget_PendingAccountBudgetProposal) XXX_Merge(src proto.Message) { + xxx_messageInfo_AccountBudget_PendingAccountBudgetProposal.Merge(dst, src) +} +func (m *AccountBudget_PendingAccountBudgetProposal) XXX_Size() int { + return xxx_messageInfo_AccountBudget_PendingAccountBudgetProposal.Size(m) +} +func (m *AccountBudget_PendingAccountBudgetProposal) XXX_DiscardUnknown() { + xxx_messageInfo_AccountBudget_PendingAccountBudgetProposal.DiscardUnknown(m) +} + +var xxx_messageInfo_AccountBudget_PendingAccountBudgetProposal proto.InternalMessageInfo + +func (m *AccountBudget_PendingAccountBudgetProposal) GetAccountBudgetProposal() *wrappers.StringValue { + if m != nil { + return m.AccountBudgetProposal + } + return nil +} + +func (m *AccountBudget_PendingAccountBudgetProposal) GetProposalType() enums.AccountBudgetProposalTypeEnum_AccountBudgetProposalType { + if m != nil { + return m.ProposalType + } + return enums.AccountBudgetProposalTypeEnum_UNSPECIFIED +} + +func (m *AccountBudget_PendingAccountBudgetProposal) GetName() *wrappers.StringValue { + if m != nil { + return m.Name + } + return nil +} + +func (m *AccountBudget_PendingAccountBudgetProposal) GetStartDateTime() *wrappers.StringValue { + if m != nil { + return m.StartDateTime + } + return nil +} + +func (m *AccountBudget_PendingAccountBudgetProposal) GetPurchaseOrderNumber() *wrappers.StringValue { + if m != nil { + return m.PurchaseOrderNumber + } + return nil +} + +func (m *AccountBudget_PendingAccountBudgetProposal) GetNotes() *wrappers.StringValue { + if m != nil { + return m.Notes + } + return nil +} + +func (m *AccountBudget_PendingAccountBudgetProposal) GetCreationDateTime() *wrappers.StringValue { + if m != nil { + return m.CreationDateTime + } + return nil +} + +type isAccountBudget_PendingAccountBudgetProposal_EndTime interface { + isAccountBudget_PendingAccountBudgetProposal_EndTime() +} + +type AccountBudget_PendingAccountBudgetProposal_EndDateTime struct { + EndDateTime *wrappers.StringValue `protobuf:"bytes,5,opt,name=end_date_time,json=endDateTime,proto3,oneof"` +} + +type AccountBudget_PendingAccountBudgetProposal_EndTimeType struct { + EndTimeType enums.TimeTypeEnum_TimeType `protobuf:"varint,6,opt,name=end_time_type,json=endTimeType,proto3,enum=google.ads.googleads.v0.enums.TimeTypeEnum_TimeType,oneof"` +} + +func (*AccountBudget_PendingAccountBudgetProposal_EndDateTime) isAccountBudget_PendingAccountBudgetProposal_EndTime() { +} + +func (*AccountBudget_PendingAccountBudgetProposal_EndTimeType) isAccountBudget_PendingAccountBudgetProposal_EndTime() { +} + +func (m *AccountBudget_PendingAccountBudgetProposal) GetEndTime() isAccountBudget_PendingAccountBudgetProposal_EndTime { + if m != nil { + return m.EndTime + } + return nil +} + +func (m *AccountBudget_PendingAccountBudgetProposal) GetEndDateTime() *wrappers.StringValue { + if x, ok := m.GetEndTime().(*AccountBudget_PendingAccountBudgetProposal_EndDateTime); ok { + return x.EndDateTime + } + return nil +} + +func (m *AccountBudget_PendingAccountBudgetProposal) GetEndTimeType() enums.TimeTypeEnum_TimeType { + if x, ok := m.GetEndTime().(*AccountBudget_PendingAccountBudgetProposal_EndTimeType); ok { + return x.EndTimeType + } + return enums.TimeTypeEnum_UNSPECIFIED +} + +type isAccountBudget_PendingAccountBudgetProposal_SpendingLimit interface { + isAccountBudget_PendingAccountBudgetProposal_SpendingLimit() +} + +type AccountBudget_PendingAccountBudgetProposal_SpendingLimitMicros struct { + SpendingLimitMicros *wrappers.Int64Value `protobuf:"bytes,7,opt,name=spending_limit_micros,json=spendingLimitMicros,proto3,oneof"` +} + +type AccountBudget_PendingAccountBudgetProposal_SpendingLimitType struct { + SpendingLimitType enums.SpendingLimitTypeEnum_SpendingLimitType `protobuf:"varint,8,opt,name=spending_limit_type,json=spendingLimitType,proto3,enum=google.ads.googleads.v0.enums.SpendingLimitTypeEnum_SpendingLimitType,oneof"` +} + +func (*AccountBudget_PendingAccountBudgetProposal_SpendingLimitMicros) isAccountBudget_PendingAccountBudgetProposal_SpendingLimit() { +} + +func (*AccountBudget_PendingAccountBudgetProposal_SpendingLimitType) isAccountBudget_PendingAccountBudgetProposal_SpendingLimit() { +} + +func (m *AccountBudget_PendingAccountBudgetProposal) GetSpendingLimit() isAccountBudget_PendingAccountBudgetProposal_SpendingLimit { + if m != nil { + return m.SpendingLimit + } + return nil +} + +func (m *AccountBudget_PendingAccountBudgetProposal) GetSpendingLimitMicros() *wrappers.Int64Value { + if x, ok := m.GetSpendingLimit().(*AccountBudget_PendingAccountBudgetProposal_SpendingLimitMicros); ok { + return x.SpendingLimitMicros + } + return nil +} + +func (m *AccountBudget_PendingAccountBudgetProposal) GetSpendingLimitType() enums.SpendingLimitTypeEnum_SpendingLimitType { + if x, ok := m.GetSpendingLimit().(*AccountBudget_PendingAccountBudgetProposal_SpendingLimitType); ok { + return x.SpendingLimitType + } + return enums.SpendingLimitTypeEnum_UNSPECIFIED +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*AccountBudget_PendingAccountBudgetProposal) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _AccountBudget_PendingAccountBudgetProposal_OneofMarshaler, _AccountBudget_PendingAccountBudgetProposal_OneofUnmarshaler, _AccountBudget_PendingAccountBudgetProposal_OneofSizer, []interface{}{ + (*AccountBudget_PendingAccountBudgetProposal_EndDateTime)(nil), + (*AccountBudget_PendingAccountBudgetProposal_EndTimeType)(nil), + (*AccountBudget_PendingAccountBudgetProposal_SpendingLimitMicros)(nil), + (*AccountBudget_PendingAccountBudgetProposal_SpendingLimitType)(nil), + } +} + +func _AccountBudget_PendingAccountBudgetProposal_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*AccountBudget_PendingAccountBudgetProposal) + // end_time + switch x := m.EndTime.(type) { + case *AccountBudget_PendingAccountBudgetProposal_EndDateTime: + b.EncodeVarint(5<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.EndDateTime); err != nil { + return err + } + case *AccountBudget_PendingAccountBudgetProposal_EndTimeType: + b.EncodeVarint(6<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.EndTimeType)) + case nil: + default: + return fmt.Errorf("AccountBudget_PendingAccountBudgetProposal.EndTime has unexpected type %T", x) + } + // spending_limit + switch x := m.SpendingLimit.(type) { + case *AccountBudget_PendingAccountBudgetProposal_SpendingLimitMicros: + b.EncodeVarint(7<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.SpendingLimitMicros); err != nil { + return err + } + case *AccountBudget_PendingAccountBudgetProposal_SpendingLimitType: + b.EncodeVarint(8<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.SpendingLimitType)) + case nil: + default: + return fmt.Errorf("AccountBudget_PendingAccountBudgetProposal.SpendingLimit has unexpected type %T", x) + } + return nil +} + +func _AccountBudget_PendingAccountBudgetProposal_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*AccountBudget_PendingAccountBudgetProposal) + switch tag { + case 5: // end_time.end_date_time + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(wrappers.StringValue) + err := b.DecodeMessage(msg) + m.EndTime = &AccountBudget_PendingAccountBudgetProposal_EndDateTime{msg} + return true, err + case 6: // end_time.end_time_type + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.EndTime = &AccountBudget_PendingAccountBudgetProposal_EndTimeType{enums.TimeTypeEnum_TimeType(x)} + return true, err + case 7: // spending_limit.spending_limit_micros + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(wrappers.Int64Value) + err := b.DecodeMessage(msg) + m.SpendingLimit = &AccountBudget_PendingAccountBudgetProposal_SpendingLimitMicros{msg} + return true, err + case 8: // spending_limit.spending_limit_type + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.SpendingLimit = &AccountBudget_PendingAccountBudgetProposal_SpendingLimitType{enums.SpendingLimitTypeEnum_SpendingLimitType(x)} + return true, err + default: + return false, nil + } +} + +func _AccountBudget_PendingAccountBudgetProposal_OneofSizer(msg proto.Message) (n int) { + m := msg.(*AccountBudget_PendingAccountBudgetProposal) + // end_time + switch x := m.EndTime.(type) { + case *AccountBudget_PendingAccountBudgetProposal_EndDateTime: + s := proto.Size(x.EndDateTime) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *AccountBudget_PendingAccountBudgetProposal_EndTimeType: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(x.EndTimeType)) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + // spending_limit + switch x := m.SpendingLimit.(type) { + case *AccountBudget_PendingAccountBudgetProposal_SpendingLimitMicros: + s := proto.Size(x.SpendingLimitMicros) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *AccountBudget_PendingAccountBudgetProposal_SpendingLimitType: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(x.SpendingLimitType)) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +func init() { + proto.RegisterType((*AccountBudget)(nil), "google.ads.googleads.v0.resources.AccountBudget") + proto.RegisterType((*AccountBudget_PendingAccountBudgetProposal)(nil), "google.ads.googleads.v0.resources.AccountBudget.PendingAccountBudgetProposal") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/account_budget.proto", fileDescriptor_account_budget_0b2aa8095fe7f986) +} + +var fileDescriptor_account_budget_0b2aa8095fe7f986 = []byte{ + // 976 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0xdb, 0x6e, 0xdb, 0x36, + 0x18, 0x9e, 0x6c, 0xe7, 0xc4, 0xc4, 0x39, 0xc8, 0x4d, 0xaa, 0x1c, 0x50, 0xa4, 0x1b, 0x06, 0x04, + 0x18, 0x26, 0x1b, 0x59, 0xd1, 0x61, 0xd8, 0xcd, 0x6c, 0xb4, 0x6b, 0x16, 0x2c, 0x5d, 0x46, 0x67, + 0xb9, 0x28, 0x02, 0x08, 0xb4, 0xc5, 0x69, 0xda, 0x2c, 0x52, 0x20, 0xa9, 0xac, 0xc5, 0x9e, 0x60, + 0xaf, 0xb1, 0x8b, 0x5d, 0xec, 0x41, 0x76, 0xb1, 0x17, 0xd8, 0xeb, 0x14, 0xa4, 0x44, 0xda, 0xb2, + 0xa5, 0x48, 0x45, 0x72, 0x47, 0x51, 0xff, 0xf7, 0xfd, 0xff, 0x47, 0xfe, 0x07, 0x09, 0x3c, 0x0f, + 0x28, 0x0d, 0x26, 0xb8, 0x8b, 0x7c, 0xde, 0x4d, 0x97, 0x72, 0x75, 0xdb, 0xeb, 0x32, 0xcc, 0x69, + 0xc2, 0xc6, 0x98, 0x77, 0xd1, 0x78, 0x4c, 0x13, 0x22, 0xbc, 0x51, 0xe2, 0x07, 0x58, 0xb8, 0x31, + 0xa3, 0x82, 0xda, 0x4f, 0x53, 0x63, 0x17, 0xf9, 0xdc, 0x35, 0x38, 0xf7, 0xb6, 0xe7, 0x1a, 0xdc, + 0xc1, 0x37, 0x65, 0xd4, 0x98, 0x24, 0xd1, 0x3c, 0xad, 0x17, 0x33, 0x1a, 0x53, 0x8e, 0x26, 0x9e, + 0x78, 0x17, 0xe3, 0xd4, 0xc9, 0xc1, 0x57, 0x1f, 0xc4, 0xc0, 0x05, 0x12, 0x09, 0xcf, 0xa0, 0x5f, + 0xde, 0x0d, 0xe5, 0x31, 0x26, 0x7e, 0x48, 0x02, 0x6f, 0x12, 0x46, 0xa1, 0x98, 0xf5, 0xf9, 0xf9, + 0xdd, 0x40, 0x11, 0x46, 0x78, 0xd6, 0xfc, 0x49, 0x66, 0xae, 0x9e, 0x46, 0xc9, 0xcf, 0xdd, 0xdf, + 0x19, 0x8a, 0x63, 0xcc, 0xb2, 0x38, 0x3e, 0xfe, 0xdb, 0x01, 0xed, 0x7e, 0x1a, 0xe7, 0x40, 0x85, + 0x69, 0x7f, 0x02, 0xda, 0xfa, 0x8c, 0x3c, 0x82, 0x22, 0xec, 0x58, 0xc7, 0xd6, 0xc9, 0x1a, 0xdc, + 0xd0, 0x9b, 0xaf, 0x51, 0x84, 0xed, 0xcf, 0x40, 0x23, 0xf4, 0x9d, 0xc6, 0xb1, 0x75, 0xb2, 0x7e, + 0x7a, 0x98, 0x1d, 0xb0, 0xab, 0x7d, 0xb8, 0xdf, 0x11, 0xf1, 0xfc, 0xd9, 0x35, 0x9a, 0x24, 0x18, + 0x36, 0x42, 0xdf, 0xee, 0x83, 0xf6, 0x28, 0x9c, 0x4c, 0xa4, 0x1c, 0x8e, 0x45, 0x12, 0x3b, 0x4d, + 0x85, 0x3b, 0x5a, 0xc0, 0x0d, 0x05, 0x0b, 0x49, 0x90, 0x02, 0x37, 0x32, 0xc8, 0x50, 0x22, 0xec, + 0x11, 0x58, 0x4e, 0x8f, 0xcf, 0x69, 0x1d, 0x5b, 0x27, 0x9b, 0xa7, 0xe7, 0x6e, 0xd9, 0xfd, 0xaa, + 0x63, 0x70, 0x73, 0x92, 0x86, 0x0a, 0xf9, 0x92, 0x24, 0x51, 0xd1, 0x3e, 0xcc, 0x98, 0xed, 0x1e, + 0x68, 0x29, 0xbd, 0x4b, 0x35, 0xa2, 0x53, 0x96, 0xf6, 0x4f, 0xc0, 0x49, 0xd3, 0x02, 0xfb, 0xf2, + 0x76, 0x99, 0xf0, 0x7c, 0x24, 0xb0, 0x27, 0xef, 0xc0, 0x59, 0xae, 0xc1, 0xb2, 0xab, 0xd1, 0x43, + 0x09, 0x7e, 0x81, 0x04, 0xbe, 0x0a, 0x53, 0x5a, 0x14, 0xc7, 0x8c, 0xde, 0x16, 0xd0, 0xae, 0xd4, + 0xa1, 0xd5, 0xe8, 0x05, 0x5a, 0x41, 0x05, 0x9a, 0x78, 0xc8, 0xff, 0x35, 0xe1, 0x22, 0xc2, 0x44, + 0x70, 0x2f, 0x0a, 0xc7, 0x8c, 0x72, 0xc7, 0xae, 0xbe, 0xc9, 0x3d, 0x05, 0xee, 0x4f, 0xb1, 0x17, + 0x0a, 0x6a, 0x5f, 0x80, 0x47, 0x28, 0x52, 0x79, 0xce, 0x31, 0x93, 0x21, 0x67, 0x94, 0x9d, 0x6a, + 0x4a, 0x3b, 0x05, 0x0e, 0x15, 0x2e, 0xa3, 0xbb, 0x04, 0xbb, 0x71, 0xc2, 0xc6, 0xbf, 0x20, 0x8e, + 0x3d, 0xca, 0x7c, 0xcc, 0x3c, 0x92, 0x44, 0x23, 0xcc, 0x9c, 0x47, 0x35, 0x94, 0x77, 0x34, 0xf4, + 0x07, 0x89, 0x7c, 0xad, 0x80, 0xf6, 0x29, 0x58, 0x22, 0x54, 0x60, 0xee, 0xec, 0xd6, 0x60, 0x48, + 0x4d, 0xed, 0xb7, 0x60, 0x5b, 0x57, 0xa0, 0x2e, 0x7c, 0x67, 0x4f, 0xc1, 0x2f, 0xdc, 0xca, 0xce, + 0x92, 0xcf, 0x32, 0xf7, 0x32, 0x25, 0xca, 0x6d, 0x5e, 0x66, 0xa4, 0x70, 0x2b, 0x73, 0xa3, 0x37, + 0xec, 0x21, 0xd8, 0x33, 0x39, 0x85, 0x89, 0x3f, 0x73, 0xf5, 0xab, 0xd5, 0xe1, 0x9f, 0x7d, 0x04, + 0x3b, 0x1a, 0xfd, 0x92, 0xf8, 0xe6, 0xea, 0x7f, 0x9b, 0x23, 0x35, 0x5d, 0xc2, 0x59, 0x53, 0xe5, + 0xf4, 0xac, 0xa2, 0x9c, 0x24, 0xc9, 0xd5, 0xbb, 0x18, 0xab, 0x1a, 0xd2, 0x0f, 0x73, 0xce, 0xf4, + 0xb6, 0x54, 0x60, 0xd2, 0x37, 0xaf, 0x00, 0xd4, 0x50, 0x60, 0xc1, 0x8e, 0x46, 0xcf, 0x29, 0xc8, + 0x91, 0x4e, 0x15, 0xac, 0xdf, 0x43, 0x41, 0xde, 0x99, 0x51, 0x30, 0x02, 0x4f, 0xa6, 0x75, 0x9d, + 0xef, 0xc4, 0x59, 0x72, 0x6f, 0x54, 0x26, 0xf7, 0x59, 0x03, 0x1e, 0x9a, 0xf2, 0xce, 0x38, 0xbe, + 0x97, 0x14, 0x59, 0x9e, 0xff, 0x69, 0x81, 0xa3, 0x32, 0x27, 0x4a, 0x57, 0x5b, 0xe9, 0xfa, 0xb6, + 0x42, 0x57, 0x8e, 0xda, 0x08, 0x5c, 0xd8, 0x3d, 0x6b, 0xc0, 0xfd, 0xc2, 0x68, 0xb4, 0xde, 0x69, + 0xc3, 0x29, 0xd4, 0xbb, 0x59, 0xad, 0xb7, 0x09, 0x0f, 0x4d, 0xdf, 0x29, 0xd1, 0x5b, 0xe6, 0x44, + 0xe9, 0xdd, 0x7a, 0x50, 0xbd, 0x4d, 0xb8, 0x5f, 0x18, 0x8d, 0xd1, 0xab, 0xfa, 0x58, 0xa9, 0xde, + 0xed, 0x6a, 0xbd, 0x2d, 0x78, 0xa8, 0x49, 0x4a, 0xf5, 0x96, 0x38, 0x51, 0x7a, 0x77, 0x1e, 0x54, + 0x6f, 0x0b, 0xee, 0x17, 0x46, 0x23, 0x5f, 0x1e, 0xfc, 0xbb, 0x02, 0x8e, 0xee, 0xea, 0x42, 0xf6, + 0x15, 0x78, 0x5c, 0xf2, 0xb9, 0xa3, 0xa6, 0x7f, 0xf5, 0xc0, 0x29, 0x64, 0xfd, 0x03, 0xb4, 0x73, + 0x5f, 0x4d, 0xea, 0x7b, 0x61, 0xf3, 0xf4, 0xfa, 0x43, 0x66, 0xb7, 0x26, 0x33, 0xd2, 0x4b, 0xdf, + 0xc2, 0x8d, 0x78, 0xe6, 0xc9, 0x4c, 0xf3, 0x66, 0xed, 0x69, 0xfe, 0x02, 0x6c, 0xcd, 0x4f, 0xdb, + 0x56, 0x0d, 0x70, 0x9b, 0xe7, 0xa6, 0x6c, 0xe9, 0xfc, 0x5a, 0xbb, 0xf7, 0xfc, 0x02, 0xf5, 0xe7, + 0xd7, 0x39, 0xb0, 0xc7, 0x0c, 0x23, 0x11, 0x52, 0x32, 0x23, 0x67, 0xbd, 0x06, 0xc1, 0xb6, 0xc6, + 0x19, 0x45, 0x03, 0xd0, 0xce, 0xb7, 0xf1, 0xa5, 0x5a, 0x83, 0x68, 0x1d, 0xcf, 0xb4, 0xef, 0x37, + 0x29, 0xc7, 0xb4, 0x6b, 0x2f, 0xdf, 0x6b, 0xee, 0x48, 0x6e, 0xd3, 0xad, 0x7f, 0x04, 0xbb, 0xc5, + 0x45, 0xbc, 0x52, 0x5d, 0xc4, 0x16, 0xec, 0xf0, 0x82, 0xe2, 0x7d, 0x0b, 0x3a, 0x45, 0x25, 0xbb, + 0xfa, 0xa0, 0x25, 0x6b, 0xc1, 0x1d, 0x3e, 0xbf, 0x39, 0x00, 0x60, 0x55, 0x1f, 0xd4, 0x60, 0x1b, + 0x6c, 0xe6, 0xa3, 0x18, 0x74, 0xc0, 0xce, 0xc2, 0x1c, 0x97, 0x9b, 0x0b, 0xa3, 0x71, 0xb0, 0x0f, + 0x1e, 0x97, 0x4c, 0x17, 0xf9, 0xaa, 0xa4, 0x11, 0xab, 0x57, 0xc5, 0x3d, 0x6b, 0xf0, 0xbf, 0x05, + 0x3e, 0x1d, 0xd3, 0xa8, 0xfa, 0xeb, 0x67, 0x60, 0xcf, 0x97, 0xa8, 0xa0, 0x97, 0xd6, 0x9b, 0xf3, + 0x0c, 0x18, 0xd0, 0x09, 0x22, 0x81, 0x4b, 0x59, 0xd0, 0x0d, 0x30, 0x51, 0x77, 0xa2, 0xff, 0x63, + 0xe2, 0x90, 0xdf, 0xf1, 0x9f, 0xf7, 0xb5, 0x59, 0xfd, 0xd5, 0x68, 0xbe, 0xea, 0xf7, 0xff, 0x69, + 0x3c, 0x7d, 0x95, 0x52, 0xf6, 0x7d, 0xee, 0xa6, 0x4b, 0xb9, 0xba, 0xee, 0xb9, 0x50, 0x5b, 0xfe, + 0xa7, 0x6d, 0x6e, 0xfa, 0x3e, 0xbf, 0x31, 0x36, 0x37, 0xd7, 0xbd, 0x1b, 0x63, 0x33, 0x5a, 0x56, + 0x41, 0x7c, 0xf1, 0x3e, 0x00, 0x00, 0xff, 0xff, 0x70, 0x45, 0x2e, 0xc2, 0x6b, 0x0e, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/account_budget_proposal.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/account_budget_proposal.pb.go new file mode 100644 index 000000000..2fcc4cf33 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/account_budget_proposal.pb.go @@ -0,0 +1,710 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/account_budget_proposal.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// An account-level budget proposal. +// +// All fields prefixed with 'proposed' may not necessarily be applied directly. +// For example, proposed spending limits may be adjusted before their +// application. This is true if the 'proposed' field has an 'approved' +// counterpart, e.g. spending limits. +// +// Please note that the proposal type (proposal_type) changes which fields are +// required and which must remain empty. +type AccountBudgetProposal struct { + // The resource name of the proposal. + // AccountBudgetProposal resource names have the form: + // + // + // `customers/{customer_id}/accountBudgetProposals/{account_budget_proposal_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + // The ID of the proposal. + Id *wrappers.Int64Value `protobuf:"bytes,14,opt,name=id,proto3" json:"id,omitempty"` + // The resource name of the billing setup associated with this proposal. + BillingSetup *wrappers.StringValue `protobuf:"bytes,2,opt,name=billing_setup,json=billingSetup,proto3" json:"billing_setup,omitempty"` + // The resource name of the account-level budget associated with this + // proposal. + AccountBudget *wrappers.StringValue `protobuf:"bytes,3,opt,name=account_budget,json=accountBudget,proto3" json:"account_budget,omitempty"` + // The type of this proposal, e.g. END to end the budget associated with this + // proposal. + ProposalType enums.AccountBudgetProposalTypeEnum_AccountBudgetProposalType `protobuf:"varint,4,opt,name=proposal_type,json=proposalType,proto3,enum=google.ads.googleads.v0.enums.AccountBudgetProposalTypeEnum_AccountBudgetProposalType" json:"proposal_type,omitempty"` + // The status of this proposal. + // When a new proposal is created, the status defaults to PENDING. + Status enums.AccountBudgetProposalStatusEnum_AccountBudgetProposalStatus `protobuf:"varint,15,opt,name=status,proto3,enum=google.ads.googleads.v0.enums.AccountBudgetProposalStatusEnum_AccountBudgetProposalStatus" json:"status,omitempty"` + // The name to assign to the account-level budget. + ProposedName *wrappers.StringValue `protobuf:"bytes,5,opt,name=proposed_name,json=proposedName,proto3" json:"proposed_name,omitempty"` + // The approved start date time in yyyy-mm-dd hh:mm:ss format. + ApprovedStartDateTime *wrappers.StringValue `protobuf:"bytes,20,opt,name=approved_start_date_time,json=approvedStartDateTime,proto3" json:"approved_start_date_time,omitempty"` + // A purchase order number is a value that enables the user to help them + // reference this budget in their monthly invoices. + ProposedPurchaseOrderNumber *wrappers.StringValue `protobuf:"bytes,12,opt,name=proposed_purchase_order_number,json=proposedPurchaseOrderNumber,proto3" json:"proposed_purchase_order_number,omitempty"` + // Notes associated with this budget. + ProposedNotes *wrappers.StringValue `protobuf:"bytes,13,opt,name=proposed_notes,json=proposedNotes,proto3" json:"proposed_notes,omitempty"` + // The date time when this account-level budget proposal was created, which is + // not the same as its approval date time, if applicable. + CreationDateTime *wrappers.StringValue `protobuf:"bytes,16,opt,name=creation_date_time,json=creationDateTime,proto3" json:"creation_date_time,omitempty"` + // The date time when this account-level budget was approved, if applicable. + ApprovalDateTime *wrappers.StringValue `protobuf:"bytes,17,opt,name=approval_date_time,json=approvalDateTime,proto3" json:"approval_date_time,omitempty"` + // The proposed start date time of the account-level budget, which cannot be + // in the past. + // + // Types that are valid to be assigned to ProposedStartTime: + // *AccountBudgetProposal_ProposedStartDateTime + // *AccountBudgetProposal_ProposedStartTimeType + ProposedStartTime isAccountBudgetProposal_ProposedStartTime `protobuf_oneof:"proposed_start_time"` + // The proposed end date time of the account-level budget, which cannot be in + // the past. + // + // Types that are valid to be assigned to ProposedEndTime: + // *AccountBudgetProposal_ProposedEndDateTime + // *AccountBudgetProposal_ProposedEndTimeType + ProposedEndTime isAccountBudgetProposal_ProposedEndTime `protobuf_oneof:"proposed_end_time"` + // The approved end date time of the account-level budget. + // + // Types that are valid to be assigned to ApprovedEndTime: + // *AccountBudgetProposal_ApprovedEndDateTime + // *AccountBudgetProposal_ApprovedEndTimeType + ApprovedEndTime isAccountBudgetProposal_ApprovedEndTime `protobuf_oneof:"approved_end_time"` + // The proposed spending limit. + // + // Types that are valid to be assigned to ProposedSpendingLimit: + // *AccountBudgetProposal_ProposedSpendingLimitMicros + // *AccountBudgetProposal_ProposedSpendingLimitType + ProposedSpendingLimit isAccountBudgetProposal_ProposedSpendingLimit `protobuf_oneof:"proposed_spending_limit"` + // The approved spending limit. + // + // Types that are valid to be assigned to ApprovedSpendingLimit: + // *AccountBudgetProposal_ApprovedSpendingLimitMicros + // *AccountBudgetProposal_ApprovedSpendingLimitType + ApprovedSpendingLimit isAccountBudgetProposal_ApprovedSpendingLimit `protobuf_oneof:"approved_spending_limit"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AccountBudgetProposal) Reset() { *m = AccountBudgetProposal{} } +func (m *AccountBudgetProposal) String() string { return proto.CompactTextString(m) } +func (*AccountBudgetProposal) ProtoMessage() {} +func (*AccountBudgetProposal) Descriptor() ([]byte, []int) { + return fileDescriptor_account_budget_proposal_0a40c45df7b8d2e1, []int{0} +} +func (m *AccountBudgetProposal) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AccountBudgetProposal.Unmarshal(m, b) +} +func (m *AccountBudgetProposal) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AccountBudgetProposal.Marshal(b, m, deterministic) +} +func (dst *AccountBudgetProposal) XXX_Merge(src proto.Message) { + xxx_messageInfo_AccountBudgetProposal.Merge(dst, src) +} +func (m *AccountBudgetProposal) XXX_Size() int { + return xxx_messageInfo_AccountBudgetProposal.Size(m) +} +func (m *AccountBudgetProposal) XXX_DiscardUnknown() { + xxx_messageInfo_AccountBudgetProposal.DiscardUnknown(m) +} + +var xxx_messageInfo_AccountBudgetProposal proto.InternalMessageInfo + +func (m *AccountBudgetProposal) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func (m *AccountBudgetProposal) GetId() *wrappers.Int64Value { + if m != nil { + return m.Id + } + return nil +} + +func (m *AccountBudgetProposal) GetBillingSetup() *wrappers.StringValue { + if m != nil { + return m.BillingSetup + } + return nil +} + +func (m *AccountBudgetProposal) GetAccountBudget() *wrappers.StringValue { + if m != nil { + return m.AccountBudget + } + return nil +} + +func (m *AccountBudgetProposal) GetProposalType() enums.AccountBudgetProposalTypeEnum_AccountBudgetProposalType { + if m != nil { + return m.ProposalType + } + return enums.AccountBudgetProposalTypeEnum_UNSPECIFIED +} + +func (m *AccountBudgetProposal) GetStatus() enums.AccountBudgetProposalStatusEnum_AccountBudgetProposalStatus { + if m != nil { + return m.Status + } + return enums.AccountBudgetProposalStatusEnum_UNSPECIFIED +} + +func (m *AccountBudgetProposal) GetProposedName() *wrappers.StringValue { + if m != nil { + return m.ProposedName + } + return nil +} + +func (m *AccountBudgetProposal) GetApprovedStartDateTime() *wrappers.StringValue { + if m != nil { + return m.ApprovedStartDateTime + } + return nil +} + +func (m *AccountBudgetProposal) GetProposedPurchaseOrderNumber() *wrappers.StringValue { + if m != nil { + return m.ProposedPurchaseOrderNumber + } + return nil +} + +func (m *AccountBudgetProposal) GetProposedNotes() *wrappers.StringValue { + if m != nil { + return m.ProposedNotes + } + return nil +} + +func (m *AccountBudgetProposal) GetCreationDateTime() *wrappers.StringValue { + if m != nil { + return m.CreationDateTime + } + return nil +} + +func (m *AccountBudgetProposal) GetApprovalDateTime() *wrappers.StringValue { + if m != nil { + return m.ApprovalDateTime + } + return nil +} + +type isAccountBudgetProposal_ProposedStartTime interface { + isAccountBudgetProposal_ProposedStartTime() +} + +type AccountBudgetProposal_ProposedStartDateTime struct { + ProposedStartDateTime *wrappers.StringValue `protobuf:"bytes,18,opt,name=proposed_start_date_time,json=proposedStartDateTime,proto3,oneof"` +} + +type AccountBudgetProposal_ProposedStartTimeType struct { + ProposedStartTimeType enums.TimeTypeEnum_TimeType `protobuf:"varint,7,opt,name=proposed_start_time_type,json=proposedStartTimeType,proto3,enum=google.ads.googleads.v0.enums.TimeTypeEnum_TimeType,oneof"` +} + +func (*AccountBudgetProposal_ProposedStartDateTime) isAccountBudgetProposal_ProposedStartTime() {} + +func (*AccountBudgetProposal_ProposedStartTimeType) isAccountBudgetProposal_ProposedStartTime() {} + +func (m *AccountBudgetProposal) GetProposedStartTime() isAccountBudgetProposal_ProposedStartTime { + if m != nil { + return m.ProposedStartTime + } + return nil +} + +func (m *AccountBudgetProposal) GetProposedStartDateTime() *wrappers.StringValue { + if x, ok := m.GetProposedStartTime().(*AccountBudgetProposal_ProposedStartDateTime); ok { + return x.ProposedStartDateTime + } + return nil +} + +func (m *AccountBudgetProposal) GetProposedStartTimeType() enums.TimeTypeEnum_TimeType { + if x, ok := m.GetProposedStartTime().(*AccountBudgetProposal_ProposedStartTimeType); ok { + return x.ProposedStartTimeType + } + return enums.TimeTypeEnum_UNSPECIFIED +} + +type isAccountBudgetProposal_ProposedEndTime interface { + isAccountBudgetProposal_ProposedEndTime() +} + +type AccountBudgetProposal_ProposedEndDateTime struct { + ProposedEndDateTime *wrappers.StringValue `protobuf:"bytes,19,opt,name=proposed_end_date_time,json=proposedEndDateTime,proto3,oneof"` +} + +type AccountBudgetProposal_ProposedEndTimeType struct { + ProposedEndTimeType enums.TimeTypeEnum_TimeType `protobuf:"varint,9,opt,name=proposed_end_time_type,json=proposedEndTimeType,proto3,enum=google.ads.googleads.v0.enums.TimeTypeEnum_TimeType,oneof"` +} + +func (*AccountBudgetProposal_ProposedEndDateTime) isAccountBudgetProposal_ProposedEndTime() {} + +func (*AccountBudgetProposal_ProposedEndTimeType) isAccountBudgetProposal_ProposedEndTime() {} + +func (m *AccountBudgetProposal) GetProposedEndTime() isAccountBudgetProposal_ProposedEndTime { + if m != nil { + return m.ProposedEndTime + } + return nil +} + +func (m *AccountBudgetProposal) GetProposedEndDateTime() *wrappers.StringValue { + if x, ok := m.GetProposedEndTime().(*AccountBudgetProposal_ProposedEndDateTime); ok { + return x.ProposedEndDateTime + } + return nil +} + +func (m *AccountBudgetProposal) GetProposedEndTimeType() enums.TimeTypeEnum_TimeType { + if x, ok := m.GetProposedEndTime().(*AccountBudgetProposal_ProposedEndTimeType); ok { + return x.ProposedEndTimeType + } + return enums.TimeTypeEnum_UNSPECIFIED +} + +type isAccountBudgetProposal_ApprovedEndTime interface { + isAccountBudgetProposal_ApprovedEndTime() +} + +type AccountBudgetProposal_ApprovedEndDateTime struct { + ApprovedEndDateTime *wrappers.StringValue `protobuf:"bytes,21,opt,name=approved_end_date_time,json=approvedEndDateTime,proto3,oneof"` +} + +type AccountBudgetProposal_ApprovedEndTimeType struct { + ApprovedEndTimeType enums.TimeTypeEnum_TimeType `protobuf:"varint,22,opt,name=approved_end_time_type,json=approvedEndTimeType,proto3,enum=google.ads.googleads.v0.enums.TimeTypeEnum_TimeType,oneof"` +} + +func (*AccountBudgetProposal_ApprovedEndDateTime) isAccountBudgetProposal_ApprovedEndTime() {} + +func (*AccountBudgetProposal_ApprovedEndTimeType) isAccountBudgetProposal_ApprovedEndTime() {} + +func (m *AccountBudgetProposal) GetApprovedEndTime() isAccountBudgetProposal_ApprovedEndTime { + if m != nil { + return m.ApprovedEndTime + } + return nil +} + +func (m *AccountBudgetProposal) GetApprovedEndDateTime() *wrappers.StringValue { + if x, ok := m.GetApprovedEndTime().(*AccountBudgetProposal_ApprovedEndDateTime); ok { + return x.ApprovedEndDateTime + } + return nil +} + +func (m *AccountBudgetProposal) GetApprovedEndTimeType() enums.TimeTypeEnum_TimeType { + if x, ok := m.GetApprovedEndTime().(*AccountBudgetProposal_ApprovedEndTimeType); ok { + return x.ApprovedEndTimeType + } + return enums.TimeTypeEnum_UNSPECIFIED +} + +type isAccountBudgetProposal_ProposedSpendingLimit interface { + isAccountBudgetProposal_ProposedSpendingLimit() +} + +type AccountBudgetProposal_ProposedSpendingLimitMicros struct { + ProposedSpendingLimitMicros *wrappers.Int64Value `protobuf:"bytes,10,opt,name=proposed_spending_limit_micros,json=proposedSpendingLimitMicros,proto3,oneof"` +} + +type AccountBudgetProposal_ProposedSpendingLimitType struct { + ProposedSpendingLimitType enums.SpendingLimitTypeEnum_SpendingLimitType `protobuf:"varint,11,opt,name=proposed_spending_limit_type,json=proposedSpendingLimitType,proto3,enum=google.ads.googleads.v0.enums.SpendingLimitTypeEnum_SpendingLimitType,oneof"` +} + +func (*AccountBudgetProposal_ProposedSpendingLimitMicros) isAccountBudgetProposal_ProposedSpendingLimit() { +} + +func (*AccountBudgetProposal_ProposedSpendingLimitType) isAccountBudgetProposal_ProposedSpendingLimit() { +} + +func (m *AccountBudgetProposal) GetProposedSpendingLimit() isAccountBudgetProposal_ProposedSpendingLimit { + if m != nil { + return m.ProposedSpendingLimit + } + return nil +} + +func (m *AccountBudgetProposal) GetProposedSpendingLimitMicros() *wrappers.Int64Value { + if x, ok := m.GetProposedSpendingLimit().(*AccountBudgetProposal_ProposedSpendingLimitMicros); ok { + return x.ProposedSpendingLimitMicros + } + return nil +} + +func (m *AccountBudgetProposal) GetProposedSpendingLimitType() enums.SpendingLimitTypeEnum_SpendingLimitType { + if x, ok := m.GetProposedSpendingLimit().(*AccountBudgetProposal_ProposedSpendingLimitType); ok { + return x.ProposedSpendingLimitType + } + return enums.SpendingLimitTypeEnum_UNSPECIFIED +} + +type isAccountBudgetProposal_ApprovedSpendingLimit interface { + isAccountBudgetProposal_ApprovedSpendingLimit() +} + +type AccountBudgetProposal_ApprovedSpendingLimitMicros struct { + ApprovedSpendingLimitMicros *wrappers.Int64Value `protobuf:"bytes,23,opt,name=approved_spending_limit_micros,json=approvedSpendingLimitMicros,proto3,oneof"` +} + +type AccountBudgetProposal_ApprovedSpendingLimitType struct { + ApprovedSpendingLimitType enums.SpendingLimitTypeEnum_SpendingLimitType `protobuf:"varint,24,opt,name=approved_spending_limit_type,json=approvedSpendingLimitType,proto3,enum=google.ads.googleads.v0.enums.SpendingLimitTypeEnum_SpendingLimitType,oneof"` +} + +func (*AccountBudgetProposal_ApprovedSpendingLimitMicros) isAccountBudgetProposal_ApprovedSpendingLimit() { +} + +func (*AccountBudgetProposal_ApprovedSpendingLimitType) isAccountBudgetProposal_ApprovedSpendingLimit() { +} + +func (m *AccountBudgetProposal) GetApprovedSpendingLimit() isAccountBudgetProposal_ApprovedSpendingLimit { + if m != nil { + return m.ApprovedSpendingLimit + } + return nil +} + +func (m *AccountBudgetProposal) GetApprovedSpendingLimitMicros() *wrappers.Int64Value { + if x, ok := m.GetApprovedSpendingLimit().(*AccountBudgetProposal_ApprovedSpendingLimitMicros); ok { + return x.ApprovedSpendingLimitMicros + } + return nil +} + +func (m *AccountBudgetProposal) GetApprovedSpendingLimitType() enums.SpendingLimitTypeEnum_SpendingLimitType { + if x, ok := m.GetApprovedSpendingLimit().(*AccountBudgetProposal_ApprovedSpendingLimitType); ok { + return x.ApprovedSpendingLimitType + } + return enums.SpendingLimitTypeEnum_UNSPECIFIED +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*AccountBudgetProposal) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _AccountBudgetProposal_OneofMarshaler, _AccountBudgetProposal_OneofUnmarshaler, _AccountBudgetProposal_OneofSizer, []interface{}{ + (*AccountBudgetProposal_ProposedStartDateTime)(nil), + (*AccountBudgetProposal_ProposedStartTimeType)(nil), + (*AccountBudgetProposal_ProposedEndDateTime)(nil), + (*AccountBudgetProposal_ProposedEndTimeType)(nil), + (*AccountBudgetProposal_ApprovedEndDateTime)(nil), + (*AccountBudgetProposal_ApprovedEndTimeType)(nil), + (*AccountBudgetProposal_ProposedSpendingLimitMicros)(nil), + (*AccountBudgetProposal_ProposedSpendingLimitType)(nil), + (*AccountBudgetProposal_ApprovedSpendingLimitMicros)(nil), + (*AccountBudgetProposal_ApprovedSpendingLimitType)(nil), + } +} + +func _AccountBudgetProposal_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*AccountBudgetProposal) + // proposed_start_time + switch x := m.ProposedStartTime.(type) { + case *AccountBudgetProposal_ProposedStartDateTime: + b.EncodeVarint(18<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.ProposedStartDateTime); err != nil { + return err + } + case *AccountBudgetProposal_ProposedStartTimeType: + b.EncodeVarint(7<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.ProposedStartTimeType)) + case nil: + default: + return fmt.Errorf("AccountBudgetProposal.ProposedStartTime has unexpected type %T", x) + } + // proposed_end_time + switch x := m.ProposedEndTime.(type) { + case *AccountBudgetProposal_ProposedEndDateTime: + b.EncodeVarint(19<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.ProposedEndDateTime); err != nil { + return err + } + case *AccountBudgetProposal_ProposedEndTimeType: + b.EncodeVarint(9<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.ProposedEndTimeType)) + case nil: + default: + return fmt.Errorf("AccountBudgetProposal.ProposedEndTime has unexpected type %T", x) + } + // approved_end_time + switch x := m.ApprovedEndTime.(type) { + case *AccountBudgetProposal_ApprovedEndDateTime: + b.EncodeVarint(21<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.ApprovedEndDateTime); err != nil { + return err + } + case *AccountBudgetProposal_ApprovedEndTimeType: + b.EncodeVarint(22<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.ApprovedEndTimeType)) + case nil: + default: + return fmt.Errorf("AccountBudgetProposal.ApprovedEndTime has unexpected type %T", x) + } + // proposed_spending_limit + switch x := m.ProposedSpendingLimit.(type) { + case *AccountBudgetProposal_ProposedSpendingLimitMicros: + b.EncodeVarint(10<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.ProposedSpendingLimitMicros); err != nil { + return err + } + case *AccountBudgetProposal_ProposedSpendingLimitType: + b.EncodeVarint(11<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.ProposedSpendingLimitType)) + case nil: + default: + return fmt.Errorf("AccountBudgetProposal.ProposedSpendingLimit has unexpected type %T", x) + } + // approved_spending_limit + switch x := m.ApprovedSpendingLimit.(type) { + case *AccountBudgetProposal_ApprovedSpendingLimitMicros: + b.EncodeVarint(23<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.ApprovedSpendingLimitMicros); err != nil { + return err + } + case *AccountBudgetProposal_ApprovedSpendingLimitType: + b.EncodeVarint(24<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.ApprovedSpendingLimitType)) + case nil: + default: + return fmt.Errorf("AccountBudgetProposal.ApprovedSpendingLimit has unexpected type %T", x) + } + return nil +} + +func _AccountBudgetProposal_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*AccountBudgetProposal) + switch tag { + case 18: // proposed_start_time.proposed_start_date_time + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(wrappers.StringValue) + err := b.DecodeMessage(msg) + m.ProposedStartTime = &AccountBudgetProposal_ProposedStartDateTime{msg} + return true, err + case 7: // proposed_start_time.proposed_start_time_type + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ProposedStartTime = &AccountBudgetProposal_ProposedStartTimeType{enums.TimeTypeEnum_TimeType(x)} + return true, err + case 19: // proposed_end_time.proposed_end_date_time + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(wrappers.StringValue) + err := b.DecodeMessage(msg) + m.ProposedEndTime = &AccountBudgetProposal_ProposedEndDateTime{msg} + return true, err + case 9: // proposed_end_time.proposed_end_time_type + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ProposedEndTime = &AccountBudgetProposal_ProposedEndTimeType{enums.TimeTypeEnum_TimeType(x)} + return true, err + case 21: // approved_end_time.approved_end_date_time + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(wrappers.StringValue) + err := b.DecodeMessage(msg) + m.ApprovedEndTime = &AccountBudgetProposal_ApprovedEndDateTime{msg} + return true, err + case 22: // approved_end_time.approved_end_time_type + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ApprovedEndTime = &AccountBudgetProposal_ApprovedEndTimeType{enums.TimeTypeEnum_TimeType(x)} + return true, err + case 10: // proposed_spending_limit.proposed_spending_limit_micros + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(wrappers.Int64Value) + err := b.DecodeMessage(msg) + m.ProposedSpendingLimit = &AccountBudgetProposal_ProposedSpendingLimitMicros{msg} + return true, err + case 11: // proposed_spending_limit.proposed_spending_limit_type + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ProposedSpendingLimit = &AccountBudgetProposal_ProposedSpendingLimitType{enums.SpendingLimitTypeEnum_SpendingLimitType(x)} + return true, err + case 23: // approved_spending_limit.approved_spending_limit_micros + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(wrappers.Int64Value) + err := b.DecodeMessage(msg) + m.ApprovedSpendingLimit = &AccountBudgetProposal_ApprovedSpendingLimitMicros{msg} + return true, err + case 24: // approved_spending_limit.approved_spending_limit_type + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ApprovedSpendingLimit = &AccountBudgetProposal_ApprovedSpendingLimitType{enums.SpendingLimitTypeEnum_SpendingLimitType(x)} + return true, err + default: + return false, nil + } +} + +func _AccountBudgetProposal_OneofSizer(msg proto.Message) (n int) { + m := msg.(*AccountBudgetProposal) + // proposed_start_time + switch x := m.ProposedStartTime.(type) { + case *AccountBudgetProposal_ProposedStartDateTime: + s := proto.Size(x.ProposedStartDateTime) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *AccountBudgetProposal_ProposedStartTimeType: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(x.ProposedStartTimeType)) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + // proposed_end_time + switch x := m.ProposedEndTime.(type) { + case *AccountBudgetProposal_ProposedEndDateTime: + s := proto.Size(x.ProposedEndDateTime) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *AccountBudgetProposal_ProposedEndTimeType: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(x.ProposedEndTimeType)) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + // approved_end_time + switch x := m.ApprovedEndTime.(type) { + case *AccountBudgetProposal_ApprovedEndDateTime: + s := proto.Size(x.ApprovedEndDateTime) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *AccountBudgetProposal_ApprovedEndTimeType: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.ApprovedEndTimeType)) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + // proposed_spending_limit + switch x := m.ProposedSpendingLimit.(type) { + case *AccountBudgetProposal_ProposedSpendingLimitMicros: + s := proto.Size(x.ProposedSpendingLimitMicros) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *AccountBudgetProposal_ProposedSpendingLimitType: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(x.ProposedSpendingLimitType)) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + // approved_spending_limit + switch x := m.ApprovedSpendingLimit.(type) { + case *AccountBudgetProposal_ApprovedSpendingLimitMicros: + s := proto.Size(x.ApprovedSpendingLimitMicros) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *AccountBudgetProposal_ApprovedSpendingLimitType: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.ApprovedSpendingLimitType)) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +func init() { + proto.RegisterType((*AccountBudgetProposal)(nil), "google.ads.googleads.v0.resources.AccountBudgetProposal") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/account_budget_proposal.proto", fileDescriptor_account_budget_proposal_0a40c45df7b8d2e1) +} + +var fileDescriptor_account_budget_proposal_0a40c45df7b8d2e1 = []byte{ + // 803 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x96, 0xdf, 0x6e, 0xd3, 0x30, + 0x14, 0xc6, 0x49, 0x3b, 0x86, 0xe6, 0xb5, 0x63, 0x4b, 0xe9, 0x96, 0xfd, 0xd1, 0xb4, 0x81, 0x90, + 0x26, 0x21, 0xd2, 0x6a, 0x4c, 0x70, 0xc1, 0x05, 0xb4, 0x30, 0x36, 0x26, 0x18, 0x55, 0x3a, 0x8a, + 0x34, 0x55, 0x8a, 0xdc, 0xc6, 0x84, 0x88, 0x24, 0x8e, 0x1c, 0x67, 0x68, 0xe2, 0x09, 0x78, 0x0d, + 0x2e, 0x79, 0x14, 0x5e, 0x02, 0xf1, 0x26, 0xc8, 0x4e, 0xec, 0x26, 0x6d, 0xb3, 0x46, 0x1b, 0x77, + 0x4e, 0xec, 0xef, 0x3b, 0xe7, 0x77, 0x7c, 0xec, 0x04, 0xbc, 0xb0, 0x31, 0xb6, 0x5d, 0xd4, 0x80, + 0x56, 0xd8, 0x88, 0x87, 0x6c, 0x74, 0xd1, 0x6c, 0x10, 0x14, 0xe2, 0x88, 0x0c, 0x51, 0xd8, 0x80, + 0xc3, 0x21, 0x8e, 0x7c, 0x6a, 0x0e, 0x22, 0xcb, 0x46, 0xd4, 0x0c, 0x08, 0x0e, 0x70, 0x08, 0x5d, + 0x3d, 0x20, 0x98, 0x62, 0x75, 0x37, 0x56, 0xe9, 0xd0, 0x0a, 0x75, 0x69, 0xa0, 0x5f, 0x34, 0x75, + 0x69, 0xb0, 0xd1, 0xce, 0x8b, 0x81, 0xfc, 0xc8, 0xcb, 0xf5, 0x37, 0x43, 0x0a, 0x69, 0x14, 0xc6, + 0x61, 0x36, 0x5e, 0x5e, 0xcf, 0x83, 0x5e, 0x06, 0x28, 0x71, 0x78, 0x76, 0xb5, 0x43, 0x18, 0x20, + 0xdf, 0x72, 0x7c, 0xdb, 0x74, 0x1d, 0xcf, 0xa1, 0x69, 0xe1, 0xe3, 0xab, 0x85, 0xd4, 0xf1, 0x50, + 0x7a, 0xf9, 0x76, 0xb2, 0x9c, 0x3f, 0x0d, 0xa2, 0xcf, 0x8d, 0x6f, 0x04, 0x06, 0x01, 0x22, 0x09, + 0xc9, 0xfd, 0xbf, 0xcb, 0xa0, 0xde, 0x8a, 0xd3, 0x6d, 0xf3, 0x6c, 0x3b, 0x49, 0xb2, 0xea, 0x03, + 0x50, 0x15, 0x45, 0x33, 0x7d, 0xe8, 0x21, 0x4d, 0xd9, 0x51, 0xf6, 0x16, 0x8c, 0x8a, 0x78, 0x79, + 0x0a, 0x3d, 0xa4, 0x3e, 0x02, 0x25, 0xc7, 0xd2, 0x96, 0x76, 0x94, 0xbd, 0xc5, 0xfd, 0xcd, 0xa4, + 0xe2, 0xba, 0x88, 0xa5, 0xbf, 0xf5, 0xe9, 0xd3, 0x83, 0x1e, 0x74, 0x23, 0x64, 0x94, 0x1c, 0x4b, + 0x6d, 0x81, 0xea, 0xc0, 0x71, 0x5d, 0x86, 0x15, 0x22, 0x1a, 0x05, 0x5a, 0x89, 0xeb, 0xb6, 0x26, + 0x74, 0x5d, 0x4a, 0x1c, 0xdf, 0x8e, 0x85, 0x95, 0x44, 0xd2, 0x65, 0x0a, 0xf5, 0x15, 0x58, 0xca, + 0x16, 0x57, 0x2b, 0x17, 0xf0, 0xa8, 0xc2, 0x34, 0xa1, 0xfa, 0x1d, 0x54, 0x33, 0x5b, 0xa2, 0xcd, + 0xed, 0x28, 0x7b, 0x4b, 0xfb, 0x3d, 0x3d, 0xaf, 0x79, 0x78, 0x69, 0xf5, 0xa9, 0x65, 0x3a, 0xbb, + 0x0c, 0xd0, 0xa1, 0x1f, 0x79, 0xf9, 0xb3, 0x46, 0x25, 0x48, 0x3d, 0xa9, 0x04, 0xcc, 0xc7, 0xad, + 0xa4, 0xdd, 0xe5, 0x51, 0xcf, 0xaf, 0x13, 0xb5, 0xcb, 0x1d, 0xf2, 0xe3, 0xc6, 0xf3, 0x46, 0x12, + 0x89, 0x15, 0x3e, 0xce, 0x01, 0x59, 0xf1, 0x56, 0xde, 0x2e, 0x52, 0x78, 0x21, 0xe1, 0x1b, 0xfd, + 0x11, 0x68, 0x30, 0x08, 0x08, 0xbe, 0x40, 0x16, 0x3b, 0x0a, 0x84, 0x9a, 0x16, 0xa4, 0xc8, 0x64, + 0xed, 0xa6, 0xdd, 0x2b, 0xe0, 0x56, 0x17, 0xea, 0x2e, 0x13, 0xbf, 0x86, 0x14, 0x9d, 0x39, 0x1e, + 0x52, 0x21, 0xd8, 0x96, 0x99, 0x05, 0x11, 0x19, 0x7e, 0x81, 0x21, 0x32, 0x31, 0xb1, 0x10, 0x31, + 0xfd, 0xc8, 0x1b, 0x20, 0xa2, 0x55, 0x0a, 0x98, 0x6f, 0x0a, 0x8f, 0x4e, 0x62, 0xf1, 0x81, 0x39, + 0x9c, 0x72, 0x03, 0xd6, 0x32, 0x23, 0x78, 0x4c, 0x51, 0xa8, 0x55, 0x8b, 0xb4, 0x8c, 0xa4, 0x67, + 0x12, 0xf5, 0x04, 0xa8, 0x43, 0x82, 0x20, 0x75, 0xb0, 0x9f, 0x02, 0x5f, 0x2e, 0x60, 0xb4, 0x2c, + 0x74, 0x92, 0xf9, 0x04, 0xa8, 0x71, 0x31, 0xa0, 0x9b, 0xf2, 0x5a, 0x29, 0xe2, 0x25, 0x74, 0xd2, + 0xeb, 0x13, 0xd0, 0x24, 0xdc, 0xf8, 0xb6, 0xa8, 0xb3, 0x1d, 0x8f, 0x6f, 0x19, 0x75, 0xa1, 0xcf, + 0x6e, 0x0c, 0x9e, 0x30, 0x96, 0x37, 0x8b, 0x76, 0x87, 0x37, 0xee, 0xc1, 0x8c, 0xc6, 0x65, 0x36, + 0xf2, 0x74, 0x88, 0x87, 0x89, 0x80, 0x62, 0x42, 0xed, 0x82, 0x55, 0x19, 0x10, 0xf9, 0x56, 0x8a, + 0xa3, 0x56, 0x80, 0x43, 0x31, 0x6a, 0x42, 0x7d, 0xe8, 0x5b, 0x92, 0xe2, 0xeb, 0x98, 0xe9, 0x88, + 0x61, 0xe1, 0x06, 0x0c, 0xd9, 0x60, 0x69, 0x02, 0x79, 0x44, 0xb2, 0x04, 0xf5, 0x02, 0x04, 0x25, + 0xa3, 0x26, 0xd4, 0x63, 0x04, 0x19, 0xd3, 0x11, 0xc1, 0xea, 0x0d, 0x08, 0xb2, 0xc1, 0x24, 0xc1, + 0x20, 0x75, 0x1a, 0xc7, 0xbe, 0x40, 0x9e, 0x33, 0x24, 0x38, 0xd4, 0xc0, 0xcc, 0x9b, 0xfe, 0xb8, + 0x3c, 0x3a, 0x8e, 0xdd, 0xc4, 0xe3, 0x1d, 0xb3, 0x78, 0xcf, 0x1d, 0xd4, 0x1f, 0x0a, 0xd8, 0xca, + 0x0b, 0xc2, 0xb9, 0x16, 0x39, 0xd7, 0x9b, 0x19, 0x5c, 0x19, 0x6b, 0x09, 0x38, 0xf1, 0xf6, 0xb8, + 0x6c, 0xac, 0x4f, 0xcd, 0x46, 0xf0, 0x8e, 0x2e, 0xb5, 0xa9, 0xbc, 0x6b, 0xb3, 0x79, 0xe7, 0x8c, + 0x4d, 0x79, 0xb7, 0xe5, 0xf0, 0xe6, 0x05, 0xe1, 0xbc, 0xda, 0x7f, 0xe5, 0x9d, 0x33, 0xd6, 0xa7, + 0x66, 0xc3, 0x26, 0xdb, 0x75, 0x50, 0x9b, 0x72, 0xa8, 0xdb, 0x35, 0xb0, 0x32, 0x71, 0x4a, 0xd8, + 0xcb, 0x89, 0xc6, 0x6b, 0xaf, 0x83, 0xb5, 0x9c, 0xbd, 0x63, 0x53, 0x39, 0x98, 0xed, 0x3f, 0x0a, + 0x78, 0x38, 0xc4, 0x9e, 0x3e, 0xf3, 0xdf, 0xac, 0xbd, 0x31, 0xf5, 0x6b, 0xd6, 0x61, 0x55, 0xef, + 0x28, 0xe7, 0x27, 0x89, 0x81, 0x8d, 0x5d, 0xe8, 0xdb, 0x3a, 0x26, 0x76, 0xc3, 0x46, 0x3e, 0xdf, + 0x13, 0xf1, 0x2b, 0x14, 0x38, 0xe1, 0x15, 0x3f, 0x8f, 0xcf, 0xe5, 0xe8, 0x67, 0xa9, 0x7c, 0xd4, + 0x6a, 0xfd, 0x2a, 0xed, 0x1e, 0xc5, 0x96, 0x2d, 0x2b, 0xd4, 0xe3, 0x21, 0x1b, 0xf5, 0x9a, 0xba, + 0x21, 0x56, 0xfe, 0x16, 0x6b, 0xfa, 0x2d, 0x2b, 0xec, 0xcb, 0x35, 0xfd, 0x5e, 0xb3, 0x2f, 0xd7, + 0x0c, 0xe6, 0x79, 0x12, 0x4f, 0xfe, 0x05, 0x00, 0x00, 0xff, 0xff, 0x4a, 0x32, 0xf4, 0xce, 0xc0, + 0x0a, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/ad.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/ad.pb.go new file mode 100644 index 000000000..01a10c08c --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/ad.pb.go @@ -0,0 +1,635 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/ad.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import common "google.golang.org/genproto/googleapis/ads/googleads/v0/common" +import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// An ad. +type Ad struct { + // The ID of the ad. + Id *wrappers.Int64Value `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + // The list of possible final URLs after all cross-domain redirects for the + // ad. + FinalUrls []*wrappers.StringValue `protobuf:"bytes,2,rep,name=final_urls,json=finalUrls,proto3" json:"final_urls,omitempty"` + // The list of possible final mobile URLs after all cross-domain redirects + // for the ad. + FinalMobileUrls []*wrappers.StringValue `protobuf:"bytes,16,rep,name=final_mobile_urls,json=finalMobileUrls,proto3" json:"final_mobile_urls,omitempty"` + // The URL template for constructing a tracking URL. + TrackingUrlTemplate *wrappers.StringValue `protobuf:"bytes,12,opt,name=tracking_url_template,json=trackingUrlTemplate,proto3" json:"tracking_url_template,omitempty"` + // The list of mappings that can be used to substitute custom parameter tags + // in a + // `tracking_url_template`, `final_urls`, or `mobile_final_urls`. + UrlCustomParameters []*common.CustomParameter `protobuf:"bytes,10,rep,name=url_custom_parameters,json=urlCustomParameters,proto3" json:"url_custom_parameters,omitempty"` + // The URL that appears in the ad description for some ad formats. + DisplayUrl *wrappers.StringValue `protobuf:"bytes,4,opt,name=display_url,json=displayUrl,proto3" json:"display_url,omitempty"` + // The type of ad. + Type enums.AdTypeEnum_AdType `protobuf:"varint,5,opt,name=type,proto3,enum=google.ads.googleads.v0.enums.AdTypeEnum_AdType" json:"type,omitempty"` + // Indicates if this ad was automatically added by Google Ads and not by a + // user. For example, this could happen when ads are automatically created as + // suggestions for new ads based on knowledge of how existing ads are + // performing. + AddedByGoogleAds *wrappers.BoolValue `protobuf:"bytes,19,opt,name=added_by_google_ads,json=addedByGoogleAds,proto3" json:"added_by_google_ads,omitempty"` + // The device preference for the ad. You can only specify a preference for + // mobile devices. When this preference is set the ad will be preferred over + // other ads when being displayed on a mobile device. The ad can still be + // displayed on other device types, e.g. if no other ads are available. + // If unspecified (no device preference), all devices are targeted. + // This is only supported by some ad types. + DevicePreference enums.DeviceEnum_Device `protobuf:"varint,20,opt,name=device_preference,json=devicePreference,proto3,enum=google.ads.googleads.v0.enums.DeviceEnum_Device" json:"device_preference,omitempty"` + // The name of the ad. This is only used to be able to identify the ad. It + // does not need to be unique and does not affect the served ad. + Name *wrappers.StringValue `protobuf:"bytes,23,opt,name=name,proto3" json:"name,omitempty"` + // Details pertinent to the ad type. Exactly one value must be set. + // + // Types that are valid to be assigned to AdData: + // *Ad_TextAd + // *Ad_ExpandedTextAd + // *Ad_DynamicSearchAd + // *Ad_ResponsiveDisplayAd + // *Ad_CallOnlyAd + // *Ad_ExpandedDynamicSearchAd + // *Ad_HotelAd + // *Ad_ShoppingSmartAd + // *Ad_ShoppingProductAd + // *Ad_GmailAd + // *Ad_ImageAd + AdData isAd_AdData `protobuf_oneof:"ad_data"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Ad) Reset() { *m = Ad{} } +func (m *Ad) String() string { return proto.CompactTextString(m) } +func (*Ad) ProtoMessage() {} +func (*Ad) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_81ea002d2bacbe35, []int{0} +} +func (m *Ad) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Ad.Unmarshal(m, b) +} +func (m *Ad) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Ad.Marshal(b, m, deterministic) +} +func (dst *Ad) XXX_Merge(src proto.Message) { + xxx_messageInfo_Ad.Merge(dst, src) +} +func (m *Ad) XXX_Size() int { + return xxx_messageInfo_Ad.Size(m) +} +func (m *Ad) XXX_DiscardUnknown() { + xxx_messageInfo_Ad.DiscardUnknown(m) +} + +var xxx_messageInfo_Ad proto.InternalMessageInfo + +func (m *Ad) GetId() *wrappers.Int64Value { + if m != nil { + return m.Id + } + return nil +} + +func (m *Ad) GetFinalUrls() []*wrappers.StringValue { + if m != nil { + return m.FinalUrls + } + return nil +} + +func (m *Ad) GetFinalMobileUrls() []*wrappers.StringValue { + if m != nil { + return m.FinalMobileUrls + } + return nil +} + +func (m *Ad) GetTrackingUrlTemplate() *wrappers.StringValue { + if m != nil { + return m.TrackingUrlTemplate + } + return nil +} + +func (m *Ad) GetUrlCustomParameters() []*common.CustomParameter { + if m != nil { + return m.UrlCustomParameters + } + return nil +} + +func (m *Ad) GetDisplayUrl() *wrappers.StringValue { + if m != nil { + return m.DisplayUrl + } + return nil +} + +func (m *Ad) GetType() enums.AdTypeEnum_AdType { + if m != nil { + return m.Type + } + return enums.AdTypeEnum_UNSPECIFIED +} + +func (m *Ad) GetAddedByGoogleAds() *wrappers.BoolValue { + if m != nil { + return m.AddedByGoogleAds + } + return nil +} + +func (m *Ad) GetDevicePreference() enums.DeviceEnum_Device { + if m != nil { + return m.DevicePreference + } + return enums.DeviceEnum_UNSPECIFIED +} + +func (m *Ad) GetName() *wrappers.StringValue { + if m != nil { + return m.Name + } + return nil +} + +type isAd_AdData interface { + isAd_AdData() +} + +type Ad_TextAd struct { + TextAd *common.TextAdInfo `protobuf:"bytes,6,opt,name=text_ad,json=textAd,proto3,oneof"` +} + +type Ad_ExpandedTextAd struct { + ExpandedTextAd *common.ExpandedTextAdInfo `protobuf:"bytes,7,opt,name=expanded_text_ad,json=expandedTextAd,proto3,oneof"` +} + +type Ad_DynamicSearchAd struct { + DynamicSearchAd *common.DynamicSearchAdInfo `protobuf:"bytes,8,opt,name=dynamic_search_ad,json=dynamicSearchAd,proto3,oneof"` +} + +type Ad_ResponsiveDisplayAd struct { + ResponsiveDisplayAd *common.ResponsiveDisplayAdInfo `protobuf:"bytes,9,opt,name=responsive_display_ad,json=responsiveDisplayAd,proto3,oneof"` +} + +type Ad_CallOnlyAd struct { + CallOnlyAd *common.CallOnlyAdInfo `protobuf:"bytes,13,opt,name=call_only_ad,json=callOnlyAd,proto3,oneof"` +} + +type Ad_ExpandedDynamicSearchAd struct { + ExpandedDynamicSearchAd *common.ExpandedDynamicSearchAdInfo `protobuf:"bytes,14,opt,name=expanded_dynamic_search_ad,json=expandedDynamicSearchAd,proto3,oneof"` +} + +type Ad_HotelAd struct { + HotelAd *common.HotelAdInfo `protobuf:"bytes,15,opt,name=hotel_ad,json=hotelAd,proto3,oneof"` +} + +type Ad_ShoppingSmartAd struct { + ShoppingSmartAd *common.ShoppingSmartAdInfo `protobuf:"bytes,17,opt,name=shopping_smart_ad,json=shoppingSmartAd,proto3,oneof"` +} + +type Ad_ShoppingProductAd struct { + ShoppingProductAd *common.ShoppingProductAdInfo `protobuf:"bytes,18,opt,name=shopping_product_ad,json=shoppingProductAd,proto3,oneof"` +} + +type Ad_GmailAd struct { + GmailAd *common.GmailAdInfo `protobuf:"bytes,21,opt,name=gmail_ad,json=gmailAd,proto3,oneof"` +} + +type Ad_ImageAd struct { + ImageAd *common.ImageAdInfo `protobuf:"bytes,22,opt,name=image_ad,json=imageAd,proto3,oneof"` +} + +func (*Ad_TextAd) isAd_AdData() {} + +func (*Ad_ExpandedTextAd) isAd_AdData() {} + +func (*Ad_DynamicSearchAd) isAd_AdData() {} + +func (*Ad_ResponsiveDisplayAd) isAd_AdData() {} + +func (*Ad_CallOnlyAd) isAd_AdData() {} + +func (*Ad_ExpandedDynamicSearchAd) isAd_AdData() {} + +func (*Ad_HotelAd) isAd_AdData() {} + +func (*Ad_ShoppingSmartAd) isAd_AdData() {} + +func (*Ad_ShoppingProductAd) isAd_AdData() {} + +func (*Ad_GmailAd) isAd_AdData() {} + +func (*Ad_ImageAd) isAd_AdData() {} + +func (m *Ad) GetAdData() isAd_AdData { + if m != nil { + return m.AdData + } + return nil +} + +func (m *Ad) GetTextAd() *common.TextAdInfo { + if x, ok := m.GetAdData().(*Ad_TextAd); ok { + return x.TextAd + } + return nil +} + +func (m *Ad) GetExpandedTextAd() *common.ExpandedTextAdInfo { + if x, ok := m.GetAdData().(*Ad_ExpandedTextAd); ok { + return x.ExpandedTextAd + } + return nil +} + +func (m *Ad) GetDynamicSearchAd() *common.DynamicSearchAdInfo { + if x, ok := m.GetAdData().(*Ad_DynamicSearchAd); ok { + return x.DynamicSearchAd + } + return nil +} + +func (m *Ad) GetResponsiveDisplayAd() *common.ResponsiveDisplayAdInfo { + if x, ok := m.GetAdData().(*Ad_ResponsiveDisplayAd); ok { + return x.ResponsiveDisplayAd + } + return nil +} + +func (m *Ad) GetCallOnlyAd() *common.CallOnlyAdInfo { + if x, ok := m.GetAdData().(*Ad_CallOnlyAd); ok { + return x.CallOnlyAd + } + return nil +} + +func (m *Ad) GetExpandedDynamicSearchAd() *common.ExpandedDynamicSearchAdInfo { + if x, ok := m.GetAdData().(*Ad_ExpandedDynamicSearchAd); ok { + return x.ExpandedDynamicSearchAd + } + return nil +} + +func (m *Ad) GetHotelAd() *common.HotelAdInfo { + if x, ok := m.GetAdData().(*Ad_HotelAd); ok { + return x.HotelAd + } + return nil +} + +func (m *Ad) GetShoppingSmartAd() *common.ShoppingSmartAdInfo { + if x, ok := m.GetAdData().(*Ad_ShoppingSmartAd); ok { + return x.ShoppingSmartAd + } + return nil +} + +func (m *Ad) GetShoppingProductAd() *common.ShoppingProductAdInfo { + if x, ok := m.GetAdData().(*Ad_ShoppingProductAd); ok { + return x.ShoppingProductAd + } + return nil +} + +func (m *Ad) GetGmailAd() *common.GmailAdInfo { + if x, ok := m.GetAdData().(*Ad_GmailAd); ok { + return x.GmailAd + } + return nil +} + +func (m *Ad) GetImageAd() *common.ImageAdInfo { + if x, ok := m.GetAdData().(*Ad_ImageAd); ok { + return x.ImageAd + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*Ad) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _Ad_OneofMarshaler, _Ad_OneofUnmarshaler, _Ad_OneofSizer, []interface{}{ + (*Ad_TextAd)(nil), + (*Ad_ExpandedTextAd)(nil), + (*Ad_DynamicSearchAd)(nil), + (*Ad_ResponsiveDisplayAd)(nil), + (*Ad_CallOnlyAd)(nil), + (*Ad_ExpandedDynamicSearchAd)(nil), + (*Ad_HotelAd)(nil), + (*Ad_ShoppingSmartAd)(nil), + (*Ad_ShoppingProductAd)(nil), + (*Ad_GmailAd)(nil), + (*Ad_ImageAd)(nil), + } +} + +func _Ad_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*Ad) + // ad_data + switch x := m.AdData.(type) { + case *Ad_TextAd: + b.EncodeVarint(6<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.TextAd); err != nil { + return err + } + case *Ad_ExpandedTextAd: + b.EncodeVarint(7<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.ExpandedTextAd); err != nil { + return err + } + case *Ad_DynamicSearchAd: + b.EncodeVarint(8<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.DynamicSearchAd); err != nil { + return err + } + case *Ad_ResponsiveDisplayAd: + b.EncodeVarint(9<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.ResponsiveDisplayAd); err != nil { + return err + } + case *Ad_CallOnlyAd: + b.EncodeVarint(13<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.CallOnlyAd); err != nil { + return err + } + case *Ad_ExpandedDynamicSearchAd: + b.EncodeVarint(14<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.ExpandedDynamicSearchAd); err != nil { + return err + } + case *Ad_HotelAd: + b.EncodeVarint(15<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.HotelAd); err != nil { + return err + } + case *Ad_ShoppingSmartAd: + b.EncodeVarint(17<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.ShoppingSmartAd); err != nil { + return err + } + case *Ad_ShoppingProductAd: + b.EncodeVarint(18<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.ShoppingProductAd); err != nil { + return err + } + case *Ad_GmailAd: + b.EncodeVarint(21<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.GmailAd); err != nil { + return err + } + case *Ad_ImageAd: + b.EncodeVarint(22<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.ImageAd); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("Ad.AdData has unexpected type %T", x) + } + return nil +} + +func _Ad_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*Ad) + switch tag { + case 6: // ad_data.text_ad + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.TextAdInfo) + err := b.DecodeMessage(msg) + m.AdData = &Ad_TextAd{msg} + return true, err + case 7: // ad_data.expanded_text_ad + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.ExpandedTextAdInfo) + err := b.DecodeMessage(msg) + m.AdData = &Ad_ExpandedTextAd{msg} + return true, err + case 8: // ad_data.dynamic_search_ad + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.DynamicSearchAdInfo) + err := b.DecodeMessage(msg) + m.AdData = &Ad_DynamicSearchAd{msg} + return true, err + case 9: // ad_data.responsive_display_ad + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.ResponsiveDisplayAdInfo) + err := b.DecodeMessage(msg) + m.AdData = &Ad_ResponsiveDisplayAd{msg} + return true, err + case 13: // ad_data.call_only_ad + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.CallOnlyAdInfo) + err := b.DecodeMessage(msg) + m.AdData = &Ad_CallOnlyAd{msg} + return true, err + case 14: // ad_data.expanded_dynamic_search_ad + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.ExpandedDynamicSearchAdInfo) + err := b.DecodeMessage(msg) + m.AdData = &Ad_ExpandedDynamicSearchAd{msg} + return true, err + case 15: // ad_data.hotel_ad + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.HotelAdInfo) + err := b.DecodeMessage(msg) + m.AdData = &Ad_HotelAd{msg} + return true, err + case 17: // ad_data.shopping_smart_ad + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.ShoppingSmartAdInfo) + err := b.DecodeMessage(msg) + m.AdData = &Ad_ShoppingSmartAd{msg} + return true, err + case 18: // ad_data.shopping_product_ad + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.ShoppingProductAdInfo) + err := b.DecodeMessage(msg) + m.AdData = &Ad_ShoppingProductAd{msg} + return true, err + case 21: // ad_data.gmail_ad + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.GmailAdInfo) + err := b.DecodeMessage(msg) + m.AdData = &Ad_GmailAd{msg} + return true, err + case 22: // ad_data.image_ad + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.ImageAdInfo) + err := b.DecodeMessage(msg) + m.AdData = &Ad_ImageAd{msg} + return true, err + default: + return false, nil + } +} + +func _Ad_OneofSizer(msg proto.Message) (n int) { + m := msg.(*Ad) + // ad_data + switch x := m.AdData.(type) { + case *Ad_TextAd: + s := proto.Size(x.TextAd) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *Ad_ExpandedTextAd: + s := proto.Size(x.ExpandedTextAd) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *Ad_DynamicSearchAd: + s := proto.Size(x.DynamicSearchAd) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *Ad_ResponsiveDisplayAd: + s := proto.Size(x.ResponsiveDisplayAd) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *Ad_CallOnlyAd: + s := proto.Size(x.CallOnlyAd) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *Ad_ExpandedDynamicSearchAd: + s := proto.Size(x.ExpandedDynamicSearchAd) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *Ad_HotelAd: + s := proto.Size(x.HotelAd) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *Ad_ShoppingSmartAd: + s := proto.Size(x.ShoppingSmartAd) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *Ad_ShoppingProductAd: + s := proto.Size(x.ShoppingProductAd) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *Ad_GmailAd: + s := proto.Size(x.GmailAd) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *Ad_ImageAd: + s := proto.Size(x.ImageAd) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +func init() { + proto.RegisterType((*Ad)(nil), "google.ads.googleads.v0.resources.Ad") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/ad.proto", fileDescriptor_ad_81ea002d2bacbe35) +} + +var fileDescriptor_ad_81ea002d2bacbe35 = []byte{ + // 841 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x96, 0xdf, 0x6e, 0xe4, 0x34, + 0x14, 0xc6, 0x99, 0xd9, 0xd2, 0xd9, 0xba, 0xbb, 0xfd, 0xe3, 0xa1, 0x6c, 0x54, 0x10, 0xea, 0x22, + 0x21, 0x55, 0xad, 0xe4, 0x19, 0xcd, 0xb2, 0x70, 0x51, 0x71, 0x91, 0xa1, 0x55, 0x5b, 0x24, 0xc4, + 0x68, 0xfa, 0xe7, 0x02, 0x15, 0x22, 0x37, 0xf6, 0xa4, 0x11, 0x8e, 0x1d, 0xd9, 0x49, 0xe9, 0xf0, + 0x38, 0x5c, 0xf2, 0x28, 0x08, 0xf1, 0x4c, 0x2b, 0x1f, 0x27, 0xae, 0xba, 0xed, 0x34, 0xb9, 0xb3, + 0x9d, 0xef, 0xf7, 0x7d, 0x67, 0x8e, 0x1d, 0x67, 0xd0, 0x5e, 0xa2, 0x54, 0x22, 0xf8, 0x80, 0x32, + 0x33, 0x70, 0x43, 0x3b, 0xba, 0x1d, 0x0e, 0x34, 0x37, 0xaa, 0xd4, 0x31, 0x37, 0x03, 0xca, 0x48, + 0xae, 0x55, 0xa1, 0xf0, 0x5b, 0x27, 0x20, 0x94, 0x19, 0xe2, 0xb5, 0xe4, 0x76, 0x48, 0xbc, 0x76, + 0x7b, 0xb4, 0xc8, 0x2e, 0x56, 0x59, 0xa6, 0xe4, 0x80, 0xb2, 0xa8, 0x98, 0xe7, 0x3c, 0x4a, 0xe5, + 0x4c, 0x19, 0x67, 0xbb, 0xfd, 0xbe, 0x81, 0x89, 0x4b, 0x53, 0xa8, 0x2c, 0xca, 0xa9, 0xa6, 0x19, + 0x2f, 0xb8, 0xae, 0xb0, 0xfd, 0x45, 0x18, 0x97, 0x65, 0x66, 0xea, 0xa4, 0x4a, 0xbc, 0xf7, 0xbc, + 0x98, 0xf1, 0xdb, 0x34, 0xae, 0xb5, 0x5f, 0x55, 0x5a, 0x98, 0x5d, 0x97, 0xb3, 0xc1, 0x9f, 0x9a, + 0xe6, 0x39, 0xd7, 0x55, 0xbd, 0x5f, 0xff, 0xff, 0x1a, 0x75, 0x43, 0x86, 0xf7, 0x51, 0x37, 0x65, + 0x41, 0x67, 0xa7, 0xb3, 0xbb, 0x3a, 0xfa, 0xa2, 0xea, 0x07, 0xa9, 0x19, 0x72, 0x2a, 0x8b, 0xef, + 0xbe, 0xbd, 0xa4, 0xa2, 0xe4, 0xd3, 0x6e, 0xca, 0xf0, 0x01, 0x42, 0xb3, 0x54, 0x52, 0x11, 0x95, + 0x5a, 0x98, 0xa0, 0xbb, 0xf3, 0x62, 0x77, 0x75, 0xf4, 0xe5, 0x23, 0xe8, 0xac, 0xd0, 0xa9, 0x4c, + 0x1c, 0xb5, 0x02, 0xfa, 0x0b, 0x2d, 0x0c, 0x3e, 0x41, 0x9b, 0x0e, 0xce, 0xd4, 0x75, 0x2a, 0xb8, + 0xf3, 0xd8, 0x68, 0xe1, 0xb1, 0x0e, 0xd8, 0xcf, 0x40, 0x81, 0xd3, 0x04, 0x6d, 0x15, 0x9a, 0xc6, + 0x7f, 0xa4, 0x32, 0xb1, 0x2e, 0x51, 0xc1, 0xb3, 0x5c, 0xd0, 0x82, 0x07, 0xaf, 0xe0, 0x67, 0x3c, + 0xef, 0xd6, 0xaf, 0xd1, 0x0b, 0x2d, 0xce, 0x2b, 0x10, 0xc7, 0x68, 0xcb, 0x1a, 0x7d, 0xbc, 0x47, + 0x26, 0x40, 0x50, 0xdf, 0x80, 0x2c, 0x3a, 0x33, 0x6e, 0x73, 0xc9, 0x8f, 0x00, 0x4e, 0x6a, 0x6e, + 0xda, 0x2f, 0xb5, 0xf8, 0x68, 0xcd, 0xe0, 0x1f, 0xd0, 0x2a, 0x4b, 0x4d, 0x2e, 0xe8, 0xdc, 0x56, + 0x1d, 0x2c, 0xb5, 0x28, 0x16, 0x55, 0xc0, 0x85, 0x16, 0xf8, 0x10, 0x2d, 0xd9, 0xa3, 0x10, 0x7c, + 0xba, 0xd3, 0xd9, 0x5d, 0x1b, 0x0d, 0x17, 0x96, 0x04, 0x67, 0x81, 0x84, 0xec, 0x7c, 0x9e, 0xf3, + 0x23, 0x59, 0x66, 0xd5, 0x70, 0x0a, 0x34, 0x3e, 0x45, 0x7d, 0xca, 0x18, 0x67, 0xd1, 0xf5, 0x3c, + 0x72, 0x58, 0x44, 0x99, 0x09, 0xfa, 0x50, 0xcc, 0xf6, 0xa3, 0x62, 0xc6, 0x4a, 0x09, 0x57, 0xca, + 0x06, 0x60, 0xe3, 0xf9, 0x31, 0x28, 0x42, 0x66, 0xf0, 0x6f, 0x68, 0xd3, 0x9d, 0xb8, 0x28, 0xd7, + 0x7c, 0xc6, 0x35, 0x97, 0x31, 0x0f, 0x3e, 0x6b, 0x55, 0xdd, 0x21, 0x70, 0x50, 0x9d, 0x1b, 0x4e, + 0x37, 0x9c, 0xd5, 0xc4, 0x3b, 0xe1, 0x21, 0x5a, 0x92, 0x34, 0xe3, 0xc1, 0x9b, 0x16, 0x7d, 0x02, + 0x25, 0x3e, 0x42, 0xbd, 0x82, 0xdf, 0x15, 0x11, 0x65, 0xc1, 0x32, 0x40, 0x7b, 0x4d, 0xfb, 0x76, + 0xce, 0xef, 0x8a, 0x90, 0x9d, 0xca, 0x99, 0x3a, 0xf9, 0x64, 0xba, 0x5c, 0xc0, 0x0c, 0xff, 0x8e, + 0x36, 0xf8, 0x5d, 0x4e, 0xa5, 0xed, 0x52, 0xed, 0xd7, 0x03, 0xbf, 0x51, 0x93, 0xdf, 0x51, 0xc5, + 0x3d, 0xf0, 0x5d, 0xe3, 0x0f, 0x56, 0x31, 0x45, 0x9b, 0x6c, 0x2e, 0x69, 0x96, 0xc6, 0x91, 0xe1, + 0x54, 0xc7, 0x37, 0x36, 0xe0, 0x25, 0x04, 0xbc, 0x6b, 0x0a, 0x38, 0x74, 0xe0, 0x19, 0x70, 0x3e, + 0x61, 0x9d, 0x3d, 0x5c, 0xc6, 0x19, 0xda, 0xd2, 0xdc, 0xe4, 0x4a, 0x9a, 0xf4, 0x96, 0x47, 0xf5, + 0xa9, 0xa3, 0x2c, 0x58, 0x81, 0x98, 0xef, 0x9b, 0x62, 0xa6, 0x1e, 0x3e, 0x74, 0xac, 0x8f, 0xea, + 0xeb, 0xc7, 0x8f, 0xf0, 0x14, 0xbd, 0x8a, 0xa9, 0x10, 0x91, 0x92, 0x02, 0x52, 0x5e, 0x43, 0x0a, + 0x69, 0x7c, 0x6b, 0xa8, 0x10, 0xbf, 0x48, 0x71, 0x6f, 0x8e, 0x62, 0xbf, 0x82, 0xff, 0x42, 0xdb, + 0x7e, 0x17, 0x1e, 0xb7, 0x6b, 0x0d, 0x12, 0x0e, 0xda, 0xee, 0xc7, 0xd3, 0x6d, 0x7b, 0xc3, 0x9f, + 0x7e, 0x8c, 0x4f, 0xd0, 0xcb, 0x1b, 0x55, 0x70, 0x61, 0x93, 0xd6, 0x21, 0x69, 0xbf, 0x29, 0xe9, + 0xc4, 0xea, 0xbd, 0x73, 0xef, 0xc6, 0x4d, 0xed, 0x5e, 0x9b, 0x1b, 0x95, 0xe7, 0xf6, 0xaa, 0x32, + 0x19, 0xd5, 0x70, 0x98, 0x36, 0xdb, 0xed, 0xf5, 0x59, 0x05, 0x9e, 0x59, 0xee, 0x7e, 0xaf, 0xcd, + 0xc3, 0x65, 0x9c, 0xa0, 0xbe, 0x8f, 0xc8, 0xb5, 0x62, 0x65, 0x0c, 0x21, 0x18, 0x42, 0xde, 0xb7, + 0x0d, 0x99, 0x38, 0xd2, 0xc7, 0xf8, 0xb2, 0xfd, 0x03, 0xdb, 0x95, 0x24, 0xa3, 0x29, 0x74, 0x65, + 0xab, 0x5d, 0x57, 0x8e, 0xad, 0xfe, 0xbe, 0x2b, 0x89, 0x9b, 0x5a, 0xa7, 0x34, 0xa3, 0x89, 0xbd, + 0x7a, 0x82, 0xcf, 0xdb, 0x39, 0x9d, 0x5a, 0xfd, 0xbd, 0x53, 0xea, 0xa6, 0xe3, 0x15, 0xd4, 0xa3, + 0x2c, 0x62, 0xb4, 0xa0, 0xe3, 0xff, 0x3a, 0xe8, 0x9b, 0x58, 0x65, 0xa4, 0xf1, 0xf3, 0x3e, 0xee, + 0x85, 0x6c, 0x62, 0x6f, 0x91, 0x49, 0xe7, 0xd7, 0x9f, 0x2a, 0x75, 0xa2, 0x04, 0x95, 0x09, 0x51, + 0x3a, 0x19, 0x24, 0x5c, 0xc2, 0x1d, 0x53, 0x7f, 0x61, 0xf3, 0xd4, 0x3c, 0xf3, 0xbf, 0xe2, 0xc0, + 0x8f, 0xfe, 0xee, 0xbe, 0x38, 0x0e, 0xc3, 0x7f, 0xba, 0x6f, 0xdd, 0x0d, 0x49, 0x42, 0x66, 0x88, + 0xbf, 0x2c, 0xc9, 0xe5, 0xd0, 0xbe, 0x54, 0x4e, 0xf9, 0x6f, 0xad, 0xb9, 0x0a, 0x99, 0xb9, 0xf2, + 0x9a, 0xab, 0xcb, 0xe1, 0x95, 0xd7, 0x5c, 0x2f, 0x43, 0x11, 0xef, 0x3e, 0x04, 0x00, 0x00, 0xff, + 0xff, 0x1d, 0xb0, 0x28, 0xdd, 0xdb, 0x08, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/ad_group.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/ad_group.pb.go new file mode 100644 index 000000000..2b32660d5 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/ad_group.pb.go @@ -0,0 +1,295 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/ad_group.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import common "google.golang.org/genproto/googleapis/ads/googleads/v0/common" +import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// An ad group. +type AdGroup struct { + // The resource name of the ad group. + // Ad group resource names have the form: + // + // `customers/{customer_id}/adGroups/{ad_group_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + // The ID of the ad group. + Id *wrappers.Int64Value `protobuf:"bytes,3,opt,name=id,proto3" json:"id,omitempty"` + // The name of the ad group. + // + // This field is required and should not be empty when creating new ad + // groups. + // + // It must contain fewer than 255 UTF-8 full-width characters. + // + // It must not contain any null (code point 0x0), NL line feed + // (code point 0xA) or carriage return (code point 0xD) characters. + Name *wrappers.StringValue `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + // The status of the ad group. + Status enums.AdGroupStatusEnum_AdGroupStatus `protobuf:"varint,5,opt,name=status,proto3,enum=google.ads.googleads.v0.enums.AdGroupStatusEnum_AdGroupStatus" json:"status,omitempty"` + // The type of the ad group. + Type enums.AdGroupTypeEnum_AdGroupType `protobuf:"varint,12,opt,name=type,proto3,enum=google.ads.googleads.v0.enums.AdGroupTypeEnum_AdGroupType" json:"type,omitempty"` + // The ad rotation mode of the ad group. + AdRotationMode enums.AdGroupAdRotationModeEnum_AdGroupAdRotationMode `protobuf:"varint,22,opt,name=ad_rotation_mode,json=adRotationMode,proto3,enum=google.ads.googleads.v0.enums.AdGroupAdRotationModeEnum_AdGroupAdRotationMode" json:"ad_rotation_mode,omitempty"` + // The URL template for constructing a tracking URL. + TrackingUrlTemplate *wrappers.StringValue `protobuf:"bytes,13,opt,name=tracking_url_template,json=trackingUrlTemplate,proto3" json:"tracking_url_template,omitempty"` + // The list of mappings used to substitute custom parameter tags in a + // `tracking_url_template`, `final_urls`, or `mobile_final_urls`. + UrlCustomParameters []*common.CustomParameter `protobuf:"bytes,6,rep,name=url_custom_parameters,json=urlCustomParameters,proto3" json:"url_custom_parameters,omitempty"` + // The campaign to which the ad group belongs. + Campaign *wrappers.StringValue `protobuf:"bytes,10,opt,name=campaign,proto3" json:"campaign,omitempty"` + // The maximum CPC (cost-per-click) bid. + CpcBidMicros *wrappers.Int64Value `protobuf:"bytes,14,opt,name=cpc_bid_micros,json=cpcBidMicros,proto3" json:"cpc_bid_micros,omitempty"` + // The maximum CPM (cost-per-thousand viewable impressions) bid. + CpmBidMicros *wrappers.Int64Value `protobuf:"bytes,15,opt,name=cpm_bid_micros,json=cpmBidMicros,proto3" json:"cpm_bid_micros,omitempty"` + // The target cost-per-acquisition (conversion) bid. + CpaBidMicros *wrappers.Int64Value `protobuf:"bytes,16,opt,name=cpa_bid_micros,json=cpaBidMicros,proto3" json:"cpa_bid_micros,omitempty"` + // The CPV (cost-per-view) bid. + CpvBidMicros *wrappers.Int64Value `protobuf:"bytes,17,opt,name=cpv_bid_micros,json=cpvBidMicros,proto3" json:"cpv_bid_micros,omitempty"` + // The target return on ad spend (ROAS) override. If the ad group's campaign + // bidding strategy is a standard Target ROAS strategy, then this field + // overrides the target ROAS specified in the campaign's bidding strategy. + // Otherwise, this value is ignored. + TargetRoasOverride *wrappers.DoubleValue `protobuf:"bytes,19,opt,name=target_roas_override,json=targetRoasOverride,proto3" json:"target_roas_override,omitempty"` + // The percent cpc bid amount, expressed as a fraction of the advertised price + // for some good or service. The valid range for the fraction is [0,1) and the + // value stored here is 1,000,000 * [fraction]. + PercentCpcBidMicros *wrappers.Int64Value `protobuf:"bytes,20,opt,name=percent_cpc_bid_micros,json=percentCpcBidMicros,proto3" json:"percent_cpc_bid_micros,omitempty"` + // Settings for the Display Campaign Optimizer, initially termed "Explorer". + ExplorerAutoOptimizerSetting *common.ExplorerAutoOptimizerSetting `protobuf:"bytes,21,opt,name=explorer_auto_optimizer_setting,json=explorerAutoOptimizerSetting,proto3" json:"explorer_auto_optimizer_setting,omitempty"` + // Allows advertisers to specify a targeting dimension on which to place + // absolute bids. This is only applicable for campaigns that target only the + // display network and not search. + DisplayCustomBidDimension enums.TargetingDimensionEnum_TargetingDimension `protobuf:"varint,23,opt,name=display_custom_bid_dimension,json=displayCustomBidDimension,proto3,enum=google.ads.googleads.v0.enums.TargetingDimensionEnum_TargetingDimension" json:"display_custom_bid_dimension,omitempty"` + // URL template for appending params to Final URL. + FinalUrlSuffix *wrappers.StringValue `protobuf:"bytes,24,opt,name=final_url_suffix,json=finalUrlSuffix,proto3" json:"final_url_suffix,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AdGroup) Reset() { *m = AdGroup{} } +func (m *AdGroup) String() string { return proto.CompactTextString(m) } +func (*AdGroup) ProtoMessage() {} +func (*AdGroup) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_group_35a993e3f6807d38, []int{0} +} +func (m *AdGroup) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AdGroup.Unmarshal(m, b) +} +func (m *AdGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AdGroup.Marshal(b, m, deterministic) +} +func (dst *AdGroup) XXX_Merge(src proto.Message) { + xxx_messageInfo_AdGroup.Merge(dst, src) +} +func (m *AdGroup) XXX_Size() int { + return xxx_messageInfo_AdGroup.Size(m) +} +func (m *AdGroup) XXX_DiscardUnknown() { + xxx_messageInfo_AdGroup.DiscardUnknown(m) +} + +var xxx_messageInfo_AdGroup proto.InternalMessageInfo + +func (m *AdGroup) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func (m *AdGroup) GetId() *wrappers.Int64Value { + if m != nil { + return m.Id + } + return nil +} + +func (m *AdGroup) GetName() *wrappers.StringValue { + if m != nil { + return m.Name + } + return nil +} + +func (m *AdGroup) GetStatus() enums.AdGroupStatusEnum_AdGroupStatus { + if m != nil { + return m.Status + } + return enums.AdGroupStatusEnum_UNSPECIFIED +} + +func (m *AdGroup) GetType() enums.AdGroupTypeEnum_AdGroupType { + if m != nil { + return m.Type + } + return enums.AdGroupTypeEnum_UNSPECIFIED +} + +func (m *AdGroup) GetAdRotationMode() enums.AdGroupAdRotationModeEnum_AdGroupAdRotationMode { + if m != nil { + return m.AdRotationMode + } + return enums.AdGroupAdRotationModeEnum_UNSPECIFIED +} + +func (m *AdGroup) GetTrackingUrlTemplate() *wrappers.StringValue { + if m != nil { + return m.TrackingUrlTemplate + } + return nil +} + +func (m *AdGroup) GetUrlCustomParameters() []*common.CustomParameter { + if m != nil { + return m.UrlCustomParameters + } + return nil +} + +func (m *AdGroup) GetCampaign() *wrappers.StringValue { + if m != nil { + return m.Campaign + } + return nil +} + +func (m *AdGroup) GetCpcBidMicros() *wrappers.Int64Value { + if m != nil { + return m.CpcBidMicros + } + return nil +} + +func (m *AdGroup) GetCpmBidMicros() *wrappers.Int64Value { + if m != nil { + return m.CpmBidMicros + } + return nil +} + +func (m *AdGroup) GetCpaBidMicros() *wrappers.Int64Value { + if m != nil { + return m.CpaBidMicros + } + return nil +} + +func (m *AdGroup) GetCpvBidMicros() *wrappers.Int64Value { + if m != nil { + return m.CpvBidMicros + } + return nil +} + +func (m *AdGroup) GetTargetRoasOverride() *wrappers.DoubleValue { + if m != nil { + return m.TargetRoasOverride + } + return nil +} + +func (m *AdGroup) GetPercentCpcBidMicros() *wrappers.Int64Value { + if m != nil { + return m.PercentCpcBidMicros + } + return nil +} + +func (m *AdGroup) GetExplorerAutoOptimizerSetting() *common.ExplorerAutoOptimizerSetting { + if m != nil { + return m.ExplorerAutoOptimizerSetting + } + return nil +} + +func (m *AdGroup) GetDisplayCustomBidDimension() enums.TargetingDimensionEnum_TargetingDimension { + if m != nil { + return m.DisplayCustomBidDimension + } + return enums.TargetingDimensionEnum_UNSPECIFIED +} + +func (m *AdGroup) GetFinalUrlSuffix() *wrappers.StringValue { + if m != nil { + return m.FinalUrlSuffix + } + return nil +} + +func init() { + proto.RegisterType((*AdGroup)(nil), "google.ads.googleads.v0.resources.AdGroup") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/ad_group.proto", fileDescriptor_ad_group_35a993e3f6807d38) +} + +var fileDescriptor_ad_group_35a993e3f6807d38 = []byte{ + // 780 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x95, 0x5f, 0x6f, 0xeb, 0x34, + 0x14, 0xc0, 0x95, 0x6e, 0x0c, 0xf0, 0x7a, 0xcb, 0x48, 0xef, 0x2e, 0xe1, 0x32, 0x41, 0x2f, 0x08, + 0xa9, 0x12, 0x52, 0x52, 0x76, 0xf9, 0x27, 0xfe, 0x49, 0xe9, 0xdd, 0x18, 0x20, 0xad, 0xab, 0xd2, + 0xad, 0x0f, 0xa8, 0x92, 0xe5, 0xc6, 0x6e, 0x64, 0x11, 0xc7, 0x96, 0xed, 0x94, 0x8d, 0x57, 0x9e, + 0xf8, 0x1a, 0x3c, 0x21, 0x3e, 0x0a, 0x6f, 0x7c, 0x23, 0x14, 0xc7, 0xc9, 0xda, 0x4e, 0x5d, 0xf3, + 0xe6, 0x38, 0xe7, 0xf7, 0xb3, 0x7d, 0x72, 0x8e, 0x03, 0x06, 0x09, 0xe7, 0x49, 0x4a, 0x02, 0x84, + 0x55, 0x50, 0x0e, 0x8b, 0xd1, 0x72, 0x10, 0x48, 0xa2, 0x78, 0x2e, 0x63, 0xa2, 0x02, 0x84, 0x61, + 0x22, 0x79, 0x2e, 0x7c, 0x21, 0xb9, 0xe6, 0xee, 0x8b, 0x32, 0xcc, 0x47, 0x58, 0xf9, 0x35, 0xe1, + 0x2f, 0x07, 0x7e, 0x4d, 0x3c, 0xff, 0x7c, 0x9b, 0x34, 0xe6, 0x8c, 0xf1, 0x2c, 0x88, 0x73, 0xa5, + 0x39, 0x83, 0x02, 0x49, 0xc4, 0x88, 0x26, 0xb2, 0x34, 0x3f, 0x3f, 0xdb, 0x81, 0x91, 0x5b, 0x91, + 0x72, 0x49, 0x24, 0x44, 0xb9, 0xe6, 0x90, 0x0b, 0x4d, 0x19, 0xfd, 0x9d, 0x48, 0xa8, 0x88, 0xd6, + 0x34, 0x4b, 0xac, 0xe5, 0xbb, 0x6d, 0x16, 0x92, 0xe5, 0xec, 0xfe, 0x34, 0x10, 0x61, 0x28, 0xb9, + 0x46, 0x9a, 0xf2, 0x0c, 0x32, 0x8e, 0x89, 0xc5, 0x5f, 0x36, 0xc4, 0x95, 0x46, 0x3a, 0x57, 0x16, + 0xfa, 0xb4, 0x21, 0xa4, 0xef, 0x44, 0xb5, 0xce, 0x97, 0x8f, 0x23, 0x1a, 0xc9, 0x84, 0x14, 0xa7, + 0x82, 0x98, 0x32, 0x92, 0x29, 0xca, 0x33, 0x0b, 0xbe, 0x6f, 0x41, 0xf3, 0x34, 0xcf, 0x17, 0xc1, + 0x6f, 0x12, 0x09, 0x41, 0xa4, 0xdd, 0xcb, 0x87, 0x7f, 0x1f, 0x82, 0xd7, 0x43, 0x7c, 0x51, 0xac, + 0xe7, 0x7e, 0x04, 0x9e, 0x54, 0x5f, 0x05, 0x66, 0x88, 0x11, 0xcf, 0xe9, 0x39, 0xfd, 0x37, 0xa3, + 0x76, 0x35, 0x39, 0x42, 0x8c, 0xb8, 0x9f, 0x80, 0x16, 0xc5, 0xde, 0x5e, 0xcf, 0xe9, 0x1f, 0x9e, + 0xbe, 0x67, 0x3f, 0xa9, 0x5f, 0xd9, 0xfd, 0x9f, 0x32, 0xfd, 0xc5, 0x67, 0x53, 0x94, 0xe6, 0x24, + 0x6a, 0x51, 0xec, 0x0e, 0xc0, 0xbe, 0x11, 0xed, 0x9b, 0xf0, 0x93, 0x07, 0xe1, 0x13, 0x2d, 0x69, + 0x96, 0x94, 0xf1, 0x26, 0xd2, 0x9d, 0x82, 0x83, 0x32, 0x57, 0xde, 0x6b, 0x3d, 0xa7, 0xdf, 0x39, + 0xfd, 0xde, 0xdf, 0x56, 0x40, 0xe6, 0xe4, 0xbe, 0xdd, 0xfb, 0xc4, 0x30, 0xe7, 0x59, 0xce, 0xd6, + 0x67, 0x22, 0x6b, 0x73, 0x47, 0x60, 0xbf, 0x48, 0xa7, 0xd7, 0x36, 0xd6, 0xaf, 0x9b, 0x59, 0xaf, + 0xef, 0x04, 0x59, 0x75, 0x16, 0xcf, 0x91, 0xf1, 0xb8, 0xb7, 0xe0, 0x68, 0xb3, 0x24, 0xbc, 0x67, + 0xc6, 0x3d, 0x6a, 0xe6, 0x0e, 0x71, 0x64, 0xe1, 0x4b, 0x8e, 0xd7, 0x56, 0x59, 0x7f, 0x13, 0x75, + 0xd0, 0xda, 0xb3, 0x3b, 0x06, 0xc7, 0x5a, 0xa2, 0xf8, 0xd7, 0xe2, 0x6b, 0xe7, 0x32, 0x85, 0x9a, + 0x30, 0x91, 0x22, 0x4d, 0xbc, 0x27, 0x0d, 0x92, 0xdc, 0xad, 0xd0, 0x1b, 0x99, 0x5e, 0x5b, 0xd0, + 0x8d, 0xc1, 0x71, 0x21, 0xda, 0xec, 0x33, 0xe5, 0x1d, 0xf4, 0xf6, 0xfa, 0x87, 0xa7, 0xc1, 0xd6, + 0x03, 0x95, 0x9d, 0xe6, 0xbf, 0x32, 0xe0, 0xb8, 0xe2, 0xa2, 0x6e, 0x2e, 0xd3, 0x8d, 0x39, 0xe5, + 0x7e, 0x05, 0xde, 0x88, 0x11, 0x13, 0x88, 0x26, 0x99, 0x07, 0x1a, 0xec, 0xb4, 0x8e, 0x76, 0x43, + 0xd0, 0x89, 0x45, 0x0c, 0xe7, 0x14, 0x43, 0x46, 0x63, 0xc9, 0x95, 0xd7, 0xd9, 0x5d, 0x7d, 0xed, + 0x58, 0xc4, 0x43, 0x8a, 0x2f, 0x0d, 0x50, 0x2a, 0xd8, 0xaa, 0xe2, 0xad, 0x46, 0x0a, 0xb6, 0xa1, + 0x40, 0xab, 0x8a, 0xa3, 0x46, 0x0a, 0xb4, 0xa1, 0x58, 0xae, 0x2a, 0xde, 0x6e, 0xa4, 0x58, 0xde, + 0x2b, 0x46, 0xe0, 0x69, 0xd9, 0xeb, 0x50, 0x72, 0xa4, 0x20, 0x5f, 0x12, 0x29, 0x29, 0x26, 0x5e, + 0x77, 0x4b, 0x46, 0xcf, 0x78, 0x3e, 0x4f, 0x49, 0x69, 0x72, 0x4b, 0x32, 0xe2, 0x48, 0x5d, 0x59, + 0xce, 0x1d, 0x83, 0x67, 0x82, 0xc8, 0x98, 0x64, 0x1a, 0x6e, 0xe4, 0xf8, 0xe9, 0xee, 0xad, 0x75, + 0x2d, 0xfa, 0x6a, 0x35, 0xd5, 0x7f, 0x38, 0xe0, 0x83, 0x1d, 0x57, 0xaf, 0x77, 0x6c, 0xdc, 0xdf, + 0xee, 0xaa, 0xab, 0x73, 0xab, 0x09, 0x73, 0xcd, 0xaf, 0x2a, 0xc9, 0xa4, 0x74, 0x44, 0x27, 0xe4, + 0x91, 0xb7, 0xee, 0x9f, 0x0e, 0x38, 0xc1, 0x54, 0x89, 0x14, 0xdd, 0x55, 0x75, 0x5d, 0x9c, 0xad, + 0xbe, 0x1d, 0xbd, 0x77, 0x4c, 0xaf, 0xfe, 0xb8, 0xa3, 0x57, 0xaf, 0xab, 0x7b, 0xf5, 0xac, 0x02, + 0x4d, 0xa3, 0x3e, 0x9c, 0x8e, 0xde, 0xb5, 0xab, 0x95, 0x75, 0x3f, 0xa4, 0xb8, 0x7e, 0xe5, 0xfe, + 0x00, 0x8e, 0x16, 0x34, 0x43, 0xa9, 0xe9, 0x56, 0x95, 0x2f, 0x16, 0xf4, 0xd6, 0xf3, 0x1a, 0x74, + 0x40, 0xc7, 0x50, 0x37, 0x32, 0x9d, 0x18, 0x66, 0xf8, 0x9f, 0x03, 0x3e, 0x8e, 0x39, 0xf3, 0x77, + 0xfe, 0x51, 0x87, 0x6d, 0x7b, 0x93, 0x8c, 0x0b, 0xed, 0xd8, 0xf9, 0xe5, 0x67, 0x8b, 0x24, 0x3c, + 0x45, 0x59, 0xe2, 0x73, 0x99, 0x04, 0x09, 0xc9, 0xcc, 0xa2, 0xd5, 0xdf, 0x44, 0x50, 0xf5, 0xc8, + 0x5f, 0xfd, 0x9b, 0x7a, 0xf4, 0x57, 0x6b, 0xef, 0x22, 0x0c, 0xff, 0x69, 0xbd, 0xb8, 0x28, 0x95, + 0x21, 0x56, 0x7e, 0x39, 0x2c, 0x46, 0xd3, 0x81, 0x1f, 0x55, 0x91, 0xff, 0x56, 0x31, 0xb3, 0x10, + 0xab, 0x59, 0x1d, 0x33, 0x9b, 0x0e, 0x66, 0x75, 0xcc, 0xfc, 0xc0, 0x6c, 0xe2, 0xe5, 0xff, 0x01, + 0x00, 0x00, 0xff, 0xff, 0x2e, 0x2f, 0x7c, 0xf6, 0x59, 0x08, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/ad_group_ad.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/ad_group_ad.pb.go new file mode 100644 index 000000000..c8cf37cd6 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/ad_group_ad.pb.go @@ -0,0 +1,206 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/ad_group_ad.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import common "google.golang.org/genproto/googleapis/ads/googleads/v0/common" +import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// An ad group ad. +type AdGroupAd struct { + // The resource name of the ad. + // Ad group ad resource names have the form: + // + // `customers/{customer_id}/adGroupAds/{ad_group_id}_{ad_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + // The status of the ad. + Status enums.AdGroupAdStatusEnum_AdGroupAdStatus `protobuf:"varint,3,opt,name=status,proto3,enum=google.ads.googleads.v0.enums.AdGroupAdStatusEnum_AdGroupAdStatus" json:"status,omitempty"` + // The ad group to which the ad belongs. + AdGroup *wrappers.StringValue `protobuf:"bytes,4,opt,name=ad_group,json=adGroup,proto3" json:"ad_group,omitempty"` + // The ad. + Ad *Ad `protobuf:"bytes,5,opt,name=ad,proto3" json:"ad,omitempty"` + // Policy information for the ad. + PolicySummary *AdGroupAdPolicySummary `protobuf:"bytes,6,opt,name=policy_summary,json=policySummary,proto3" json:"policy_summary,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AdGroupAd) Reset() { *m = AdGroupAd{} } +func (m *AdGroupAd) String() string { return proto.CompactTextString(m) } +func (*AdGroupAd) ProtoMessage() {} +func (*AdGroupAd) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_group_ad_c15aeab0e0f89685, []int{0} +} +func (m *AdGroupAd) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AdGroupAd.Unmarshal(m, b) +} +func (m *AdGroupAd) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AdGroupAd.Marshal(b, m, deterministic) +} +func (dst *AdGroupAd) XXX_Merge(src proto.Message) { + xxx_messageInfo_AdGroupAd.Merge(dst, src) +} +func (m *AdGroupAd) XXX_Size() int { + return xxx_messageInfo_AdGroupAd.Size(m) +} +func (m *AdGroupAd) XXX_DiscardUnknown() { + xxx_messageInfo_AdGroupAd.DiscardUnknown(m) +} + +var xxx_messageInfo_AdGroupAd proto.InternalMessageInfo + +func (m *AdGroupAd) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func (m *AdGroupAd) GetStatus() enums.AdGroupAdStatusEnum_AdGroupAdStatus { + if m != nil { + return m.Status + } + return enums.AdGroupAdStatusEnum_UNSPECIFIED +} + +func (m *AdGroupAd) GetAdGroup() *wrappers.StringValue { + if m != nil { + return m.AdGroup + } + return nil +} + +func (m *AdGroupAd) GetAd() *Ad { + if m != nil { + return m.Ad + } + return nil +} + +func (m *AdGroupAd) GetPolicySummary() *AdGroupAdPolicySummary { + if m != nil { + return m.PolicySummary + } + return nil +} + +// Contains policy information for an ad. +type AdGroupAdPolicySummary struct { + // The list of policy findings for this ad. + PolicyTopicEntries []*common.PolicyTopicEntry `protobuf:"bytes,1,rep,name=policy_topic_entries,json=policyTopicEntries,proto3" json:"policy_topic_entries,omitempty"` + // Where in the review process this ad is. + ReviewStatus enums.PolicyReviewStatusEnum_PolicyReviewStatus `protobuf:"varint,2,opt,name=review_status,json=reviewStatus,proto3,enum=google.ads.googleads.v0.enums.PolicyReviewStatusEnum_PolicyReviewStatus" json:"review_status,omitempty"` + // The overall approval status of this ad, calculated based on the status of + // its individual policy topic entries. + ApprovalStatus enums.PolicyApprovalStatusEnum_PolicyApprovalStatus `protobuf:"varint,3,opt,name=approval_status,json=approvalStatus,proto3,enum=google.ads.googleads.v0.enums.PolicyApprovalStatusEnum_PolicyApprovalStatus" json:"approval_status,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AdGroupAdPolicySummary) Reset() { *m = AdGroupAdPolicySummary{} } +func (m *AdGroupAdPolicySummary) String() string { return proto.CompactTextString(m) } +func (*AdGroupAdPolicySummary) ProtoMessage() {} +func (*AdGroupAdPolicySummary) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_group_ad_c15aeab0e0f89685, []int{1} +} +func (m *AdGroupAdPolicySummary) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AdGroupAdPolicySummary.Unmarshal(m, b) +} +func (m *AdGroupAdPolicySummary) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AdGroupAdPolicySummary.Marshal(b, m, deterministic) +} +func (dst *AdGroupAdPolicySummary) XXX_Merge(src proto.Message) { + xxx_messageInfo_AdGroupAdPolicySummary.Merge(dst, src) +} +func (m *AdGroupAdPolicySummary) XXX_Size() int { + return xxx_messageInfo_AdGroupAdPolicySummary.Size(m) +} +func (m *AdGroupAdPolicySummary) XXX_DiscardUnknown() { + xxx_messageInfo_AdGroupAdPolicySummary.DiscardUnknown(m) +} + +var xxx_messageInfo_AdGroupAdPolicySummary proto.InternalMessageInfo + +func (m *AdGroupAdPolicySummary) GetPolicyTopicEntries() []*common.PolicyTopicEntry { + if m != nil { + return m.PolicyTopicEntries + } + return nil +} + +func (m *AdGroupAdPolicySummary) GetReviewStatus() enums.PolicyReviewStatusEnum_PolicyReviewStatus { + if m != nil { + return m.ReviewStatus + } + return enums.PolicyReviewStatusEnum_UNSPECIFIED +} + +func (m *AdGroupAdPolicySummary) GetApprovalStatus() enums.PolicyApprovalStatusEnum_PolicyApprovalStatus { + if m != nil { + return m.ApprovalStatus + } + return enums.PolicyApprovalStatusEnum_UNSPECIFIED +} + +func init() { + proto.RegisterType((*AdGroupAd)(nil), "google.ads.googleads.v0.resources.AdGroupAd") + proto.RegisterType((*AdGroupAdPolicySummary)(nil), "google.ads.googleads.v0.resources.AdGroupAdPolicySummary") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/ad_group_ad.proto", fileDescriptor_ad_group_ad_c15aeab0e0f89685) +} + +var fileDescriptor_ad_group_ad_c15aeab0e0f89685 = []byte{ + // 522 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x53, 0x5d, 0x6b, 0xdb, 0x30, + 0x14, 0xc5, 0xce, 0x96, 0xad, 0xea, 0x9a, 0x81, 0x18, 0xc3, 0x94, 0x31, 0xd2, 0x8e, 0x42, 0xd8, + 0x40, 0x0e, 0x29, 0xfb, 0x7e, 0x72, 0xa0, 0x64, 0x8c, 0x31, 0x8a, 0x33, 0xf2, 0x50, 0x02, 0x9e, + 0x62, 0x69, 0xc6, 0x60, 0x59, 0x42, 0xb2, 0x53, 0xf2, 0x77, 0xf6, 0xb8, 0x9f, 0xb2, 0xd7, 0xbd, + 0xef, 0x61, 0xbf, 0x64, 0x58, 0x92, 0xdd, 0xb8, 0x6d, 0x9a, 0xbc, 0xdd, 0x7b, 0x7d, 0xce, 0xb9, + 0xf7, 0xea, 0x1e, 0x83, 0xd3, 0x84, 0xf3, 0x24, 0xa3, 0x3e, 0x26, 0xca, 0x37, 0x61, 0x15, 0x2d, + 0x87, 0xbe, 0xa4, 0x8a, 0x97, 0x32, 0xa6, 0xca, 0xc7, 0x24, 0x4a, 0x24, 0x2f, 0x45, 0x84, 0x09, + 0x12, 0x92, 0x17, 0x1c, 0x1e, 0x19, 0x24, 0xc2, 0x44, 0xa1, 0x86, 0x84, 0x96, 0x43, 0xd4, 0x90, + 0x0e, 0x5f, 0x6d, 0xd2, 0x8d, 0x39, 0x63, 0x3c, 0xf7, 0x05, 0xcf, 0xd2, 0x78, 0x65, 0xf4, 0x0e, + 0xdf, 0x6c, 0x02, 0xd3, 0xbc, 0x64, 0xad, 0x01, 0x22, 0x55, 0xe0, 0xa2, 0x54, 0x96, 0xf7, 0xe1, + 0x6e, 0x9e, 0xe9, 0x11, 0x61, 0x21, 0x24, 0x5f, 0xe2, 0xac, 0xcd, 0x7d, 0xb7, 0x13, 0x57, 0xd2, + 0x65, 0x4a, 0x2f, 0xdb, 0xcc, 0x97, 0xbb, 0x3c, 0x99, 0xc5, 0x3e, 0xb7, 0x58, 0x9d, 0x2d, 0xca, + 0x1f, 0xfe, 0xa5, 0xc4, 0x42, 0x50, 0x69, 0xb5, 0x8e, 0xff, 0xba, 0x60, 0x2f, 0x20, 0x93, 0x6a, + 0xbb, 0x80, 0xc0, 0x17, 0xe0, 0xa0, 0xd6, 0x88, 0x72, 0xcc, 0xa8, 0xe7, 0xf4, 0x9d, 0xc1, 0x5e, + 0xf8, 0xa8, 0x2e, 0x7e, 0xc5, 0x8c, 0xc2, 0x0b, 0xd0, 0x35, 0xe3, 0x78, 0x9d, 0xbe, 0x33, 0xe8, + 0x8d, 0xc6, 0x68, 0xd3, 0x35, 0xf4, 0x26, 0xa8, 0x91, 0x9f, 0x6a, 0xd6, 0x59, 0x5e, 0xb2, 0xeb, + 0xb5, 0xd0, 0x2a, 0xc2, 0xb7, 0xe0, 0x61, 0xfd, 0xd8, 0xde, 0xbd, 0xbe, 0x33, 0xd8, 0x1f, 0x3d, + 0xab, 0xd5, 0xeb, 0x0d, 0xd0, 0xb4, 0x90, 0x69, 0x9e, 0xcc, 0x70, 0x56, 0xd2, 0xf0, 0x01, 0x36, + 0x42, 0xf0, 0x35, 0x70, 0x31, 0xf1, 0xee, 0x6b, 0xca, 0x09, 0xda, 0x6a, 0x0f, 0x14, 0x90, 0xd0, + 0xc5, 0x04, 0x7e, 0x07, 0x3d, 0xfb, 0xd0, 0xaa, 0x64, 0x0c, 0xcb, 0x95, 0xd7, 0xd5, 0x12, 0xef, + 0x77, 0x92, 0xb0, 0x3b, 0x9c, 0x6b, 0x85, 0xa9, 0x11, 0x08, 0x0f, 0xc4, 0x7a, 0x7a, 0xfc, 0xcf, + 0x05, 0x4f, 0x6f, 0x47, 0xc2, 0x05, 0x78, 0x62, 0x9b, 0x17, 0x5c, 0xa4, 0x71, 0x44, 0xf3, 0x42, + 0xa6, 0x54, 0x79, 0x4e, 0xbf, 0x33, 0xd8, 0x1f, 0x0d, 0x37, 0x8e, 0x60, 0x1c, 0x8c, 0x8c, 0xd8, + 0xb7, 0x8a, 0x7a, 0x96, 0x17, 0x72, 0x15, 0x42, 0xd1, 0xae, 0xa4, 0x54, 0x41, 0x56, 0x5d, 0x74, + 0xcd, 0x42, 0x9e, 0xab, 0x6f, 0xf6, 0x69, 0xcb, 0xcd, 0x8c, 0x76, 0xa8, 0x99, 0x6b, 0x67, 0xbb, + 0x59, 0xae, 0xbc, 0x71, 0x95, 0xc1, 0x12, 0x3c, 0xbe, 0xe6, 0x76, 0x6b, 0x92, 0x2f, 0x3b, 0x35, + 0x0c, 0x2c, 0xf7, 0x46, 0xcb, 0xf6, 0x87, 0xb0, 0x87, 0x5b, 0xf9, 0xf8, 0x8f, 0x03, 0x4e, 0x62, + 0xce, 0xb6, 0x1f, 0x6d, 0xdc, 0xbb, 0xba, 0x45, 0xe5, 0xa7, 0x73, 0xe7, 0xe2, 0xb3, 0x25, 0x25, + 0x3c, 0xc3, 0x79, 0x82, 0xb8, 0x4c, 0xfc, 0x84, 0xe6, 0xda, 0x6d, 0xf5, 0xdf, 0x25, 0x52, 0x75, + 0xc7, 0xcf, 0xf6, 0xb1, 0x89, 0x7e, 0xba, 0x9d, 0x49, 0x10, 0xfc, 0x72, 0x8f, 0x26, 0x46, 0x32, + 0x20, 0x0a, 0x99, 0xb0, 0x8a, 0x66, 0x43, 0x14, 0xd6, 0xc8, 0xdf, 0x35, 0x66, 0x1e, 0x10, 0x35, + 0x6f, 0x30, 0xf3, 0xd9, 0x70, 0xde, 0x60, 0x16, 0x5d, 0x3d, 0xc4, 0xe9, 0xff, 0x00, 0x00, 0x00, + 0xff, 0xff, 0x4e, 0x9d, 0x31, 0x0d, 0x23, 0x05, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/ad_group_audience_view.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/ad_group_audience_view.pb.go new file mode 100644 index 000000000..2ea853620 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/ad_group_audience_view.pb.go @@ -0,0 +1,92 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/ad_group_audience_view.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// An ad group audience view. +// Includes performance data from interests and remarketing lists for Display +// Network and YouTube Network ads, and remarketing lists for search ads (RLSA), +// aggregated at the audience level. +type AdGroupAudienceView struct { + // The resource name of the ad group audience view. + // Ad group audience view resource names have the form: + // + // `customers/{customer_id}/adGroupAudienceViews/{ad_group_id}_{criterion_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AdGroupAudienceView) Reset() { *m = AdGroupAudienceView{} } +func (m *AdGroupAudienceView) String() string { return proto.CompactTextString(m) } +func (*AdGroupAudienceView) ProtoMessage() {} +func (*AdGroupAudienceView) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_group_audience_view_20b0cb0c6b38a70d, []int{0} +} +func (m *AdGroupAudienceView) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AdGroupAudienceView.Unmarshal(m, b) +} +func (m *AdGroupAudienceView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AdGroupAudienceView.Marshal(b, m, deterministic) +} +func (dst *AdGroupAudienceView) XXX_Merge(src proto.Message) { + xxx_messageInfo_AdGroupAudienceView.Merge(dst, src) +} +func (m *AdGroupAudienceView) XXX_Size() int { + return xxx_messageInfo_AdGroupAudienceView.Size(m) +} +func (m *AdGroupAudienceView) XXX_DiscardUnknown() { + xxx_messageInfo_AdGroupAudienceView.DiscardUnknown(m) +} + +var xxx_messageInfo_AdGroupAudienceView proto.InternalMessageInfo + +func (m *AdGroupAudienceView) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*AdGroupAudienceView)(nil), "google.ads.googleads.v0.resources.AdGroupAudienceView") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/ad_group_audience_view.proto", fileDescriptor_ad_group_audience_view_20b0cb0c6b38a70d) +} + +var fileDescriptor_ad_group_audience_view_20b0cb0c6b38a70d = []byte{ + // 239 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x4b, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xa2, 0xd4, + 0xe2, 0xfc, 0xd2, 0xa2, 0xe4, 0xd4, 0x62, 0xfd, 0xc4, 0x94, 0xf8, 0xf4, 0xa2, 0xfc, 0xd2, 0x82, + 0xf8, 0xc4, 0xd2, 0x94, 0xcc, 0xd4, 0xbc, 0xe4, 0xd4, 0xf8, 0xb2, 0xcc, 0xd4, 0x72, 0xbd, 0x82, + 0xa2, 0xfc, 0x92, 0x7c, 0x21, 0x45, 0x88, 0x26, 0xbd, 0xc4, 0x94, 0x62, 0x3d, 0xb8, 0x7e, 0xbd, + 0x32, 0x03, 0x3d, 0xb8, 0x7e, 0x25, 0x2b, 0x2e, 0x61, 0xc7, 0x14, 0x77, 0x90, 0x09, 0x8e, 0x50, + 0x03, 0xc2, 0x32, 0x53, 0xcb, 0x85, 0x94, 0xb9, 0x78, 0x61, 0x6a, 0xe2, 0xf3, 0x12, 0x73, 0x53, + 0x25, 0x18, 0x15, 0x18, 0x35, 0x38, 0x83, 0x78, 0x60, 0x82, 0x7e, 0x89, 0xb9, 0xa9, 0x4e, 0x77, + 0x19, 0xb9, 0x54, 0x93, 0xf3, 0x73, 0xf5, 0x08, 0xda, 0xe2, 0x24, 0x81, 0xc5, 0x8e, 0x00, 0x90, + 0x13, 0x03, 0x18, 0xa3, 0xbc, 0xa0, 0xda, 0xd3, 0xf3, 0x73, 0x12, 0xf3, 0xd2, 0xf5, 0xf2, 0x8b, + 0xd2, 0xf5, 0xd3, 0x53, 0xf3, 0xc0, 0x1e, 0x80, 0x79, 0xba, 0x20, 0xb3, 0x18, 0x4f, 0x18, 0x58, + 0xc3, 0x59, 0x8b, 0x98, 0x98, 0xdd, 0x1d, 0x1d, 0x57, 0x31, 0x29, 0xba, 0x43, 0x8c, 0x74, 0x4c, + 0x29, 0xd6, 0x83, 0x30, 0x41, 0xac, 0x30, 0x03, 0xbd, 0x20, 0x98, 0xca, 0x53, 0x30, 0x35, 0x31, + 0x8e, 0x29, 0xc5, 0x31, 0x70, 0x35, 0x31, 0x61, 0x06, 0x31, 0x70, 0x35, 0x49, 0x6c, 0x60, 0x47, + 0x18, 0x03, 0x02, 0x00, 0x00, 0xff, 0xff, 0x1e, 0xd2, 0x5c, 0xee, 0x87, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/ad_group_bid_modifier.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/ad_group_bid_modifier.pb.go new file mode 100644 index 000000000..fc1380ec6 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/ad_group_bid_modifier.pb.go @@ -0,0 +1,420 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/ad_group_bid_modifier.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import common "google.golang.org/genproto/googleapis/ads/googleads/v0/common" +import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Represents an ad group bid modifier. +type AdGroupBidModifier struct { + // The resource name of the ad group bid modifier. + // Ad group bid modifier resource names have the form: + // + // `customers/{customer_id}/adGroupBidModifiers/{ad_group_id}_{criterion_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + // The ad group to which this criterion belongs. + AdGroup *wrappers.StringValue `protobuf:"bytes,2,opt,name=ad_group,json=adGroup,proto3" json:"ad_group,omitempty"` + // The ID of the criterion to bid modify. + // + // This field is ignored for mutates. + CriterionId *wrappers.Int64Value `protobuf:"bytes,3,opt,name=criterion_id,json=criterionId,proto3" json:"criterion_id,omitempty"` + // The modifier for the bid when the criterion matches. The modifier must be + // in the range: 0.1 - 10.0. The range is 1.0 - 6.0 for PreferredContent. + // Use 0 to opt out of a Device type. + BidModifier *wrappers.DoubleValue `protobuf:"bytes,4,opt,name=bid_modifier,json=bidModifier,proto3" json:"bid_modifier,omitempty"` + // The base ad group from which this draft/trial adgroup bid modifier was + // created. If ad_group is a base ad group then this field will be equal to + // ad_group. If the ad group was created in the draft or trial and has no + // corresponding base ad group, then this field will be null. + // This field is readonly. + BaseAdGroup *wrappers.StringValue `protobuf:"bytes,9,opt,name=base_ad_group,json=baseAdGroup,proto3" json:"base_ad_group,omitempty"` + // Bid modifier source. + BidModifierSource enums.BidModifierSourceEnum_BidModifierSource `protobuf:"varint,10,opt,name=bid_modifier_source,json=bidModifierSource,proto3,enum=google.ads.googleads.v0.enums.BidModifierSourceEnum_BidModifierSource" json:"bid_modifier_source,omitempty"` + // The criterion of this ad group bid modifier. + // + // Types that are valid to be assigned to Criterion: + // *AdGroupBidModifier_HotelDateSelectionType + // *AdGroupBidModifier_HotelAdvanceBookingWindow + // *AdGroupBidModifier_HotelLengthOfStay + // *AdGroupBidModifier_HotelCheckInDay + // *AdGroupBidModifier_Device + // *AdGroupBidModifier_PreferredContent + Criterion isAdGroupBidModifier_Criterion `protobuf_oneof:"criterion"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AdGroupBidModifier) Reset() { *m = AdGroupBidModifier{} } +func (m *AdGroupBidModifier) String() string { return proto.CompactTextString(m) } +func (*AdGroupBidModifier) ProtoMessage() {} +func (*AdGroupBidModifier) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_group_bid_modifier_771431a7da3a20c0, []int{0} +} +func (m *AdGroupBidModifier) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AdGroupBidModifier.Unmarshal(m, b) +} +func (m *AdGroupBidModifier) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AdGroupBidModifier.Marshal(b, m, deterministic) +} +func (dst *AdGroupBidModifier) XXX_Merge(src proto.Message) { + xxx_messageInfo_AdGroupBidModifier.Merge(dst, src) +} +func (m *AdGroupBidModifier) XXX_Size() int { + return xxx_messageInfo_AdGroupBidModifier.Size(m) +} +func (m *AdGroupBidModifier) XXX_DiscardUnknown() { + xxx_messageInfo_AdGroupBidModifier.DiscardUnknown(m) +} + +var xxx_messageInfo_AdGroupBidModifier proto.InternalMessageInfo + +func (m *AdGroupBidModifier) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func (m *AdGroupBidModifier) GetAdGroup() *wrappers.StringValue { + if m != nil { + return m.AdGroup + } + return nil +} + +func (m *AdGroupBidModifier) GetCriterionId() *wrappers.Int64Value { + if m != nil { + return m.CriterionId + } + return nil +} + +func (m *AdGroupBidModifier) GetBidModifier() *wrappers.DoubleValue { + if m != nil { + return m.BidModifier + } + return nil +} + +func (m *AdGroupBidModifier) GetBaseAdGroup() *wrappers.StringValue { + if m != nil { + return m.BaseAdGroup + } + return nil +} + +func (m *AdGroupBidModifier) GetBidModifierSource() enums.BidModifierSourceEnum_BidModifierSource { + if m != nil { + return m.BidModifierSource + } + return enums.BidModifierSourceEnum_UNSPECIFIED +} + +type isAdGroupBidModifier_Criterion interface { + isAdGroupBidModifier_Criterion() +} + +type AdGroupBidModifier_HotelDateSelectionType struct { + HotelDateSelectionType *common.HotelDateSelectionTypeInfo `protobuf:"bytes,5,opt,name=hotel_date_selection_type,json=hotelDateSelectionType,proto3,oneof"` +} + +type AdGroupBidModifier_HotelAdvanceBookingWindow struct { + HotelAdvanceBookingWindow *common.HotelAdvanceBookingWindowInfo `protobuf:"bytes,6,opt,name=hotel_advance_booking_window,json=hotelAdvanceBookingWindow,proto3,oneof"` +} + +type AdGroupBidModifier_HotelLengthOfStay struct { + HotelLengthOfStay *common.HotelLengthOfStayInfo `protobuf:"bytes,7,opt,name=hotel_length_of_stay,json=hotelLengthOfStay,proto3,oneof"` +} + +type AdGroupBidModifier_HotelCheckInDay struct { + HotelCheckInDay *common.HotelCheckInDayInfo `protobuf:"bytes,8,opt,name=hotel_check_in_day,json=hotelCheckInDay,proto3,oneof"` +} + +type AdGroupBidModifier_Device struct { + Device *common.DeviceInfo `protobuf:"bytes,11,opt,name=device,proto3,oneof"` +} + +type AdGroupBidModifier_PreferredContent struct { + PreferredContent *common.PreferredContentInfo `protobuf:"bytes,12,opt,name=preferred_content,json=preferredContent,proto3,oneof"` +} + +func (*AdGroupBidModifier_HotelDateSelectionType) isAdGroupBidModifier_Criterion() {} + +func (*AdGroupBidModifier_HotelAdvanceBookingWindow) isAdGroupBidModifier_Criterion() {} + +func (*AdGroupBidModifier_HotelLengthOfStay) isAdGroupBidModifier_Criterion() {} + +func (*AdGroupBidModifier_HotelCheckInDay) isAdGroupBidModifier_Criterion() {} + +func (*AdGroupBidModifier_Device) isAdGroupBidModifier_Criterion() {} + +func (*AdGroupBidModifier_PreferredContent) isAdGroupBidModifier_Criterion() {} + +func (m *AdGroupBidModifier) GetCriterion() isAdGroupBidModifier_Criterion { + if m != nil { + return m.Criterion + } + return nil +} + +func (m *AdGroupBidModifier) GetHotelDateSelectionType() *common.HotelDateSelectionTypeInfo { + if x, ok := m.GetCriterion().(*AdGroupBidModifier_HotelDateSelectionType); ok { + return x.HotelDateSelectionType + } + return nil +} + +func (m *AdGroupBidModifier) GetHotelAdvanceBookingWindow() *common.HotelAdvanceBookingWindowInfo { + if x, ok := m.GetCriterion().(*AdGroupBidModifier_HotelAdvanceBookingWindow); ok { + return x.HotelAdvanceBookingWindow + } + return nil +} + +func (m *AdGroupBidModifier) GetHotelLengthOfStay() *common.HotelLengthOfStayInfo { + if x, ok := m.GetCriterion().(*AdGroupBidModifier_HotelLengthOfStay); ok { + return x.HotelLengthOfStay + } + return nil +} + +func (m *AdGroupBidModifier) GetHotelCheckInDay() *common.HotelCheckInDayInfo { + if x, ok := m.GetCriterion().(*AdGroupBidModifier_HotelCheckInDay); ok { + return x.HotelCheckInDay + } + return nil +} + +func (m *AdGroupBidModifier) GetDevice() *common.DeviceInfo { + if x, ok := m.GetCriterion().(*AdGroupBidModifier_Device); ok { + return x.Device + } + return nil +} + +func (m *AdGroupBidModifier) GetPreferredContent() *common.PreferredContentInfo { + if x, ok := m.GetCriterion().(*AdGroupBidModifier_PreferredContent); ok { + return x.PreferredContent + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*AdGroupBidModifier) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _AdGroupBidModifier_OneofMarshaler, _AdGroupBidModifier_OneofUnmarshaler, _AdGroupBidModifier_OneofSizer, []interface{}{ + (*AdGroupBidModifier_HotelDateSelectionType)(nil), + (*AdGroupBidModifier_HotelAdvanceBookingWindow)(nil), + (*AdGroupBidModifier_HotelLengthOfStay)(nil), + (*AdGroupBidModifier_HotelCheckInDay)(nil), + (*AdGroupBidModifier_Device)(nil), + (*AdGroupBidModifier_PreferredContent)(nil), + } +} + +func _AdGroupBidModifier_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*AdGroupBidModifier) + // criterion + switch x := m.Criterion.(type) { + case *AdGroupBidModifier_HotelDateSelectionType: + b.EncodeVarint(5<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.HotelDateSelectionType); err != nil { + return err + } + case *AdGroupBidModifier_HotelAdvanceBookingWindow: + b.EncodeVarint(6<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.HotelAdvanceBookingWindow); err != nil { + return err + } + case *AdGroupBidModifier_HotelLengthOfStay: + b.EncodeVarint(7<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.HotelLengthOfStay); err != nil { + return err + } + case *AdGroupBidModifier_HotelCheckInDay: + b.EncodeVarint(8<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.HotelCheckInDay); err != nil { + return err + } + case *AdGroupBidModifier_Device: + b.EncodeVarint(11<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Device); err != nil { + return err + } + case *AdGroupBidModifier_PreferredContent: + b.EncodeVarint(12<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.PreferredContent); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("AdGroupBidModifier.Criterion has unexpected type %T", x) + } + return nil +} + +func _AdGroupBidModifier_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*AdGroupBidModifier) + switch tag { + case 5: // criterion.hotel_date_selection_type + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.HotelDateSelectionTypeInfo) + err := b.DecodeMessage(msg) + m.Criterion = &AdGroupBidModifier_HotelDateSelectionType{msg} + return true, err + case 6: // criterion.hotel_advance_booking_window + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.HotelAdvanceBookingWindowInfo) + err := b.DecodeMessage(msg) + m.Criterion = &AdGroupBidModifier_HotelAdvanceBookingWindow{msg} + return true, err + case 7: // criterion.hotel_length_of_stay + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.HotelLengthOfStayInfo) + err := b.DecodeMessage(msg) + m.Criterion = &AdGroupBidModifier_HotelLengthOfStay{msg} + return true, err + case 8: // criterion.hotel_check_in_day + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.HotelCheckInDayInfo) + err := b.DecodeMessage(msg) + m.Criterion = &AdGroupBidModifier_HotelCheckInDay{msg} + return true, err + case 11: // criterion.device + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.DeviceInfo) + err := b.DecodeMessage(msg) + m.Criterion = &AdGroupBidModifier_Device{msg} + return true, err + case 12: // criterion.preferred_content + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.PreferredContentInfo) + err := b.DecodeMessage(msg) + m.Criterion = &AdGroupBidModifier_PreferredContent{msg} + return true, err + default: + return false, nil + } +} + +func _AdGroupBidModifier_OneofSizer(msg proto.Message) (n int) { + m := msg.(*AdGroupBidModifier) + // criterion + switch x := m.Criterion.(type) { + case *AdGroupBidModifier_HotelDateSelectionType: + s := proto.Size(x.HotelDateSelectionType) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *AdGroupBidModifier_HotelAdvanceBookingWindow: + s := proto.Size(x.HotelAdvanceBookingWindow) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *AdGroupBidModifier_HotelLengthOfStay: + s := proto.Size(x.HotelLengthOfStay) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *AdGroupBidModifier_HotelCheckInDay: + s := proto.Size(x.HotelCheckInDay) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *AdGroupBidModifier_Device: + s := proto.Size(x.Device) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *AdGroupBidModifier_PreferredContent: + s := proto.Size(x.PreferredContent) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +func init() { + proto.RegisterType((*AdGroupBidModifier)(nil), "google.ads.googleads.v0.resources.AdGroupBidModifier") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/ad_group_bid_modifier.proto", fileDescriptor_ad_group_bid_modifier_771431a7da3a20c0) +} + +var fileDescriptor_ad_group_bid_modifier_771431a7da3a20c0 = []byte{ + // 656 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x94, 0xdd, 0x6e, 0xd3, 0x30, + 0x14, 0xc7, 0xe9, 0x06, 0xfb, 0x70, 0x3b, 0x60, 0x06, 0x41, 0x18, 0x13, 0xda, 0x40, 0x48, 0x13, + 0x12, 0x4e, 0xb5, 0x0d, 0x26, 0x81, 0x06, 0xb4, 0x2b, 0x6c, 0x45, 0x7c, 0x4c, 0x2d, 0x1a, 0x12, + 0xaa, 0x64, 0x39, 0xf1, 0x69, 0x1a, 0xad, 0xb1, 0x23, 0xc7, 0x6d, 0xd5, 0x3b, 0x9e, 0x85, 0x4b, + 0x6e, 0x78, 0x0f, 0x9e, 0x81, 0x87, 0x41, 0xb1, 0x93, 0xa8, 0x6c, 0x2b, 0xeb, 0xdd, 0xe9, 0xf1, + 0xf9, 0xfd, 0xff, 0xe7, 0x9c, 0xc6, 0x46, 0xfb, 0x81, 0x94, 0x41, 0x1f, 0x5c, 0xc6, 0x13, 0xd7, + 0x86, 0x69, 0x34, 0xac, 0xba, 0x0a, 0x12, 0x39, 0x50, 0x3e, 0x24, 0x2e, 0xe3, 0x34, 0x50, 0x72, + 0x10, 0x53, 0x2f, 0xe4, 0x34, 0x92, 0x3c, 0xec, 0x86, 0xa0, 0x48, 0xac, 0xa4, 0x96, 0x78, 0xd3, + 0x32, 0x84, 0xf1, 0x84, 0x14, 0x38, 0x19, 0x56, 0x49, 0x81, 0xaf, 0x3d, 0x9d, 0xe6, 0xe0, 0xcb, + 0x28, 0x92, 0xc2, 0xf5, 0x55, 0xa8, 0x41, 0x85, 0xcc, 0x2a, 0xae, 0xed, 0x4d, 0x2b, 0x07, 0x31, + 0x88, 0x12, 0x77, 0xb2, 0x07, 0x6a, 0x2d, 0x32, 0xf0, 0x41, 0x06, 0x9a, 0x5f, 0xde, 0xa0, 0xeb, + 0x8e, 0x14, 0x8b, 0x63, 0x50, 0x89, 0x3d, 0x7f, 0xf8, 0x6b, 0x09, 0xe1, 0x1a, 0x3f, 0x4c, 0x27, + 0xa9, 0x87, 0xfc, 0x63, 0xa6, 0x81, 0x1f, 0xa1, 0x95, 0xbc, 0x57, 0x2a, 0x58, 0x04, 0x4e, 0x69, + 0xa3, 0xb4, 0xb5, 0xdc, 0xaa, 0xe4, 0xc9, 0x4f, 0x2c, 0x02, 0xbc, 0x87, 0x96, 0xf2, 0x2d, 0x38, + 0x73, 0x1b, 0xa5, 0xad, 0xf2, 0xf6, 0x7a, 0x36, 0x2e, 0xc9, 0xed, 0x48, 0x5b, 0xab, 0x50, 0x04, + 0x27, 0xac, 0x3f, 0x80, 0xd6, 0x22, 0xb3, 0x46, 0xf8, 0x15, 0xaa, 0x64, 0xf3, 0x49, 0x41, 0x43, + 0xee, 0xcc, 0x1b, 0xf8, 0xfe, 0x39, 0xb8, 0x29, 0xf4, 0xf3, 0x5d, 0xcb, 0x96, 0x0b, 0xa0, 0xc9, + 0xf1, 0x6b, 0x54, 0x99, 0x9c, 0xd8, 0xb9, 0x3a, 0xc5, 0xbc, 0x21, 0x07, 0x5e, 0x1f, 0x32, 0x01, + 0x6f, 0x62, 0xbc, 0x37, 0x68, 0xc5, 0x63, 0x09, 0xd0, 0xa2, 0xfd, 0xe5, 0x19, 0xda, 0x2f, 0xa7, + 0x48, 0xb6, 0x2b, 0x3c, 0x44, 0xb7, 0x2e, 0x58, 0xba, 0x83, 0x36, 0x4a, 0x5b, 0xd7, 0xb7, 0xdf, + 0x91, 0x69, 0x1f, 0x80, 0xf9, 0xbb, 0xc8, 0xc4, 0xa6, 0xdb, 0x86, 0x7b, 0x2b, 0x06, 0xd1, 0xf9, + 0x6c, 0x6b, 0xd5, 0x3b, 0x9b, 0xc2, 0x23, 0x74, 0xaf, 0x27, 0x35, 0xf4, 0x29, 0x67, 0x1a, 0x68, + 0x02, 0x7d, 0xf0, 0x75, 0xba, 0x45, 0x3d, 0x8e, 0xc1, 0xb9, 0x66, 0xa6, 0x78, 0x31, 0xd5, 0xdd, + 0x7e, 0x5b, 0xe4, 0x28, 0x15, 0x68, 0x30, 0x0d, 0xed, 0x1c, 0xff, 0x32, 0x8e, 0xa1, 0x29, 0xba, + 0xf2, 0xe8, 0x4a, 0xeb, 0x4e, 0xef, 0xc2, 0x53, 0xfc, 0xbd, 0x84, 0xd6, 0xad, 0x33, 0xe3, 0x43, + 0x26, 0x7c, 0xa0, 0x9e, 0x94, 0xa7, 0xa1, 0x08, 0xe8, 0x28, 0x14, 0x5c, 0x8e, 0x9c, 0x05, 0x63, + 0xbe, 0x3f, 0x93, 0x79, 0xcd, 0x4a, 0xd4, 0xad, 0xc2, 0x57, 0x23, 0x90, 0xf9, 0xdb, 0xf1, 0x2e, + 0x2a, 0xc0, 0x3d, 0x74, 0xdb, 0x76, 0xd0, 0x07, 0x11, 0xe8, 0x1e, 0x95, 0x5d, 0x9a, 0x68, 0x36, + 0x76, 0x16, 0x8d, 0xf3, 0xb3, 0x99, 0x9c, 0x3f, 0x18, 0xf4, 0x73, 0xb7, 0xad, 0xd9, 0x38, 0x73, + 0x5c, 0xed, 0x9d, 0x3d, 0xc0, 0x1e, 0xc2, 0xd6, 0xc9, 0xef, 0x81, 0x7f, 0x4a, 0x43, 0x41, 0x39, + 0x1b, 0x3b, 0x4b, 0xc6, 0x67, 0x67, 0x26, 0x9f, 0x83, 0x14, 0x6c, 0x8a, 0x46, 0xe1, 0x72, 0xa3, + 0xf7, 0x6f, 0x1a, 0x37, 0xd0, 0x02, 0x87, 0x61, 0xe8, 0x83, 0x53, 0x36, 0xba, 0x4f, 0x2e, 0xd3, + 0x6d, 0x98, 0xea, 0x4c, 0x2e, 0x63, 0xb1, 0x8f, 0x56, 0x63, 0x05, 0x5d, 0x50, 0x0a, 0x38, 0xf5, + 0xa5, 0xd0, 0x20, 0xb4, 0x53, 0x31, 0x82, 0xbb, 0x97, 0x09, 0x1e, 0xe7, 0xe0, 0x81, 0xe5, 0x32, + 0xe9, 0x9b, 0xf1, 0x99, 0x7c, 0xbd, 0x8c, 0x96, 0x8b, 0xeb, 0x57, 0xff, 0x53, 0x42, 0x8f, 0x7d, + 0x19, 0x91, 0x4b, 0xdf, 0xb8, 0xfa, 0xdd, 0xf3, 0x0f, 0xcb, 0x71, 0x7a, 0xb1, 0x8e, 0x4b, 0xdf, + 0xde, 0x67, 0x74, 0x20, 0xfb, 0x4c, 0x04, 0x44, 0xaa, 0xc0, 0x0d, 0x40, 0x98, 0x6b, 0x97, 0xbf, + 0x6f, 0x71, 0x98, 0xfc, 0xe7, 0xfd, 0x7d, 0x59, 0x44, 0x3f, 0xe6, 0xe6, 0x0f, 0x6b, 0xb5, 0x9f, + 0x73, 0x9b, 0x87, 0x56, 0xb2, 0xc6, 0x13, 0x62, 0xc3, 0x34, 0x3a, 0xa9, 0x92, 0x56, 0x5e, 0xf9, + 0x3b, 0xaf, 0xe9, 0xd4, 0x78, 0xd2, 0x29, 0x6a, 0x3a, 0x27, 0xd5, 0x4e, 0x51, 0xe3, 0x2d, 0x98, + 0x26, 0x76, 0xfe, 0x06, 0x00, 0x00, 0xff, 0xff, 0x54, 0x6c, 0xde, 0x0c, 0x03, 0x06, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/ad_group_criterion.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/ad_group_criterion.pb.go new file mode 100644 index 000000000..b3945db11 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/ad_group_criterion.pb.go @@ -0,0 +1,960 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/ad_group_criterion.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import common "google.golang.org/genproto/googleapis/ads/googleads/v0/common" +import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// An ad group criterion. +type AdGroupCriterion struct { + // The resource name of the ad group criterion. + // Ad group criterion resource names have the form: + // + // `customers/{customer_id}/adGroupCriteria/{ad_group_id}_{criterion_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + // The ID of the criterion. + // + // This field is ignored for mutates. + CriterionId *wrappers.Int64Value `protobuf:"bytes,26,opt,name=criterion_id,json=criterionId,proto3" json:"criterion_id,omitempty"` + // The status of the criterion. + Status enums.AdGroupCriterionStatusEnum_AdGroupCriterionStatus `protobuf:"varint,3,opt,name=status,proto3,enum=google.ads.googleads.v0.enums.AdGroupCriterionStatusEnum_AdGroupCriterionStatus" json:"status,omitempty"` + // Information regarding the quality of the criterion. + QualityInfo *AdGroupCriterion_QualityInfo `protobuf:"bytes,4,opt,name=quality_info,json=qualityInfo,proto3" json:"quality_info,omitempty"` + // The ad group to which the criterion belongs. + AdGroup *wrappers.StringValue `protobuf:"bytes,5,opt,name=ad_group,json=adGroup,proto3" json:"ad_group,omitempty"` + // The type of the criterion. + Type enums.CriterionTypeEnum_CriterionType `protobuf:"varint,25,opt,name=type,proto3,enum=google.ads.googleads.v0.enums.CriterionTypeEnum_CriterionType" json:"type,omitempty"` + // Whether to target (`false`) or exclude (`true`) the criterion. + // + // This field is immutable. To switch a criterion from positive to negative, + // remove then re-add it. + Negative *wrappers.BoolValue `protobuf:"bytes,31,opt,name=negative,proto3" json:"negative,omitempty"` + // The modifier for the bid when the criterion matches. The modifier must be + // in the range: 0.1 - 10.0. Most targetable criteria types support modifiers. + BidModifier *wrappers.DoubleValue `protobuf:"bytes,44,opt,name=bid_modifier,json=bidModifier,proto3" json:"bid_modifier,omitempty"` + // The CPC (cost-per-click) bid. + CpcBidMicros *wrappers.Int64Value `protobuf:"bytes,16,opt,name=cpc_bid_micros,json=cpcBidMicros,proto3" json:"cpc_bid_micros,omitempty"` + // The CPM (cost-per-thousand viewable impressions) bid. + CpmBidMicros *wrappers.Int64Value `protobuf:"bytes,17,opt,name=cpm_bid_micros,json=cpmBidMicros,proto3" json:"cpm_bid_micros,omitempty"` + // The CPV (cost-per-view) bid. + CpvBidMicros *wrappers.Int64Value `protobuf:"bytes,24,opt,name=cpv_bid_micros,json=cpvBidMicros,proto3" json:"cpv_bid_micros,omitempty"` + // The CPC bid amount, expressed as a fraction of the advertised price + // for some good or service. The valid range for the fraction is [0,1) and the + // value stored here is 1,000,000 * [fraction]. + PercentCpcBidMicros *wrappers.Int64Value `protobuf:"bytes,33,opt,name=percent_cpc_bid_micros,json=percentCpcBidMicros,proto3" json:"percent_cpc_bid_micros,omitempty"` + // The effective CPC (cost-per-click) bid. + EffectiveCpcBidMicros *wrappers.Int64Value `protobuf:"bytes,18,opt,name=effective_cpc_bid_micros,json=effectiveCpcBidMicros,proto3" json:"effective_cpc_bid_micros,omitempty"` + // The effective CPM (cost-per-thousand viewable impressions) bid. + EffectiveCpmBidMicros *wrappers.Int64Value `protobuf:"bytes,19,opt,name=effective_cpm_bid_micros,json=effectiveCpmBidMicros,proto3" json:"effective_cpm_bid_micros,omitempty"` + // The effective CPV (cost-per-view) bid. + EffectiveCpvBidMicros *wrappers.Int64Value `protobuf:"bytes,20,opt,name=effective_cpv_bid_micros,json=effectiveCpvBidMicros,proto3" json:"effective_cpv_bid_micros,omitempty"` + // The effective Percent CPC bid amount. + EffectivePercentCpcBidMicros *wrappers.Int64Value `protobuf:"bytes,34,opt,name=effective_percent_cpc_bid_micros,json=effectivePercentCpcBidMicros,proto3" json:"effective_percent_cpc_bid_micros,omitempty"` + // Source of the effective CPC bid. + EffectiveCpcBidSource enums.BiddingSourceEnum_BiddingSource `protobuf:"varint,21,opt,name=effective_cpc_bid_source,json=effectiveCpcBidSource,proto3,enum=google.ads.googleads.v0.enums.BiddingSourceEnum_BiddingSource" json:"effective_cpc_bid_source,omitempty"` + // Source of the effective CPM bid. + EffectiveCpmBidSource enums.BiddingSourceEnum_BiddingSource `protobuf:"varint,22,opt,name=effective_cpm_bid_source,json=effectiveCpmBidSource,proto3,enum=google.ads.googleads.v0.enums.BiddingSourceEnum_BiddingSource" json:"effective_cpm_bid_source,omitempty"` + // Source of the effective CPV bid. + EffectiveCpvBidSource enums.BiddingSourceEnum_BiddingSource `protobuf:"varint,23,opt,name=effective_cpv_bid_source,json=effectiveCpvBidSource,proto3,enum=google.ads.googleads.v0.enums.BiddingSourceEnum_BiddingSource" json:"effective_cpv_bid_source,omitempty"` + // Source of the effective Percent CPC bid. + EffectivePercentCpcBidSource enums.BiddingSourceEnum_BiddingSource `protobuf:"varint,35,opt,name=effective_percent_cpc_bid_source,json=effectivePercentCpcBidSource,proto3,enum=google.ads.googleads.v0.enums.BiddingSourceEnum_BiddingSource" json:"effective_percent_cpc_bid_source,omitempty"` + // Estimates for criterion bids at various positions. + PositionEstimates *AdGroupCriterion_PositionEstimates `protobuf:"bytes,10,opt,name=position_estimates,json=positionEstimates,proto3" json:"position_estimates,omitempty"` + // The list of possible final URLs after all cross-domain redirects for the + // ad. + FinalUrls []*wrappers.StringValue `protobuf:"bytes,11,rep,name=final_urls,json=finalUrls,proto3" json:"final_urls,omitempty"` + // The URL template for constructing a tracking URL. + TrackingUrlTemplate *wrappers.StringValue `protobuf:"bytes,13,opt,name=tracking_url_template,json=trackingUrlTemplate,proto3" json:"tracking_url_template,omitempty"` + // The list of mappings used to substitute custom parameter tags in a + // `tracking_url_template`, `final_urls`, or `mobile_final_urls`. + UrlCustomParameters []*common.CustomParameter `protobuf:"bytes,14,rep,name=url_custom_parameters,json=urlCustomParameters,proto3" json:"url_custom_parameters,omitempty"` + // The ad group criterion. + // + // Exactly one must be set. + // + // Types that are valid to be assigned to Criterion: + // *AdGroupCriterion_Keyword + // *AdGroupCriterion_Placement + // *AdGroupCriterion_ListingGroup + // *AdGroupCriterion_AgeRange + // *AdGroupCriterion_Gender + // *AdGroupCriterion_IncomeRange + // *AdGroupCriterion_ParentalStatus + // *AdGroupCriterion_UserList + // *AdGroupCriterion_YoutubeVideo + // *AdGroupCriterion_YoutubeChannel + // *AdGroupCriterion_Topic + // *AdGroupCriterion_UserInterest + Criterion isAdGroupCriterion_Criterion `protobuf_oneof:"criterion"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AdGroupCriterion) Reset() { *m = AdGroupCriterion{} } +func (m *AdGroupCriterion) String() string { return proto.CompactTextString(m) } +func (*AdGroupCriterion) ProtoMessage() {} +func (*AdGroupCriterion) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_group_criterion_84c24ce63224e446, []int{0} +} +func (m *AdGroupCriterion) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AdGroupCriterion.Unmarshal(m, b) +} +func (m *AdGroupCriterion) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AdGroupCriterion.Marshal(b, m, deterministic) +} +func (dst *AdGroupCriterion) XXX_Merge(src proto.Message) { + xxx_messageInfo_AdGroupCriterion.Merge(dst, src) +} +func (m *AdGroupCriterion) XXX_Size() int { + return xxx_messageInfo_AdGroupCriterion.Size(m) +} +func (m *AdGroupCriterion) XXX_DiscardUnknown() { + xxx_messageInfo_AdGroupCriterion.DiscardUnknown(m) +} + +var xxx_messageInfo_AdGroupCriterion proto.InternalMessageInfo + +func (m *AdGroupCriterion) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func (m *AdGroupCriterion) GetCriterionId() *wrappers.Int64Value { + if m != nil { + return m.CriterionId + } + return nil +} + +func (m *AdGroupCriterion) GetStatus() enums.AdGroupCriterionStatusEnum_AdGroupCriterionStatus { + if m != nil { + return m.Status + } + return enums.AdGroupCriterionStatusEnum_UNSPECIFIED +} + +func (m *AdGroupCriterion) GetQualityInfo() *AdGroupCriterion_QualityInfo { + if m != nil { + return m.QualityInfo + } + return nil +} + +func (m *AdGroupCriterion) GetAdGroup() *wrappers.StringValue { + if m != nil { + return m.AdGroup + } + return nil +} + +func (m *AdGroupCriterion) GetType() enums.CriterionTypeEnum_CriterionType { + if m != nil { + return m.Type + } + return enums.CriterionTypeEnum_UNSPECIFIED +} + +func (m *AdGroupCriterion) GetNegative() *wrappers.BoolValue { + if m != nil { + return m.Negative + } + return nil +} + +func (m *AdGroupCriterion) GetBidModifier() *wrappers.DoubleValue { + if m != nil { + return m.BidModifier + } + return nil +} + +func (m *AdGroupCriterion) GetCpcBidMicros() *wrappers.Int64Value { + if m != nil { + return m.CpcBidMicros + } + return nil +} + +func (m *AdGroupCriterion) GetCpmBidMicros() *wrappers.Int64Value { + if m != nil { + return m.CpmBidMicros + } + return nil +} + +func (m *AdGroupCriterion) GetCpvBidMicros() *wrappers.Int64Value { + if m != nil { + return m.CpvBidMicros + } + return nil +} + +func (m *AdGroupCriterion) GetPercentCpcBidMicros() *wrappers.Int64Value { + if m != nil { + return m.PercentCpcBidMicros + } + return nil +} + +func (m *AdGroupCriterion) GetEffectiveCpcBidMicros() *wrappers.Int64Value { + if m != nil { + return m.EffectiveCpcBidMicros + } + return nil +} + +func (m *AdGroupCriterion) GetEffectiveCpmBidMicros() *wrappers.Int64Value { + if m != nil { + return m.EffectiveCpmBidMicros + } + return nil +} + +func (m *AdGroupCriterion) GetEffectiveCpvBidMicros() *wrappers.Int64Value { + if m != nil { + return m.EffectiveCpvBidMicros + } + return nil +} + +func (m *AdGroupCriterion) GetEffectivePercentCpcBidMicros() *wrappers.Int64Value { + if m != nil { + return m.EffectivePercentCpcBidMicros + } + return nil +} + +func (m *AdGroupCriterion) GetEffectiveCpcBidSource() enums.BiddingSourceEnum_BiddingSource { + if m != nil { + return m.EffectiveCpcBidSource + } + return enums.BiddingSourceEnum_UNSPECIFIED +} + +func (m *AdGroupCriterion) GetEffectiveCpmBidSource() enums.BiddingSourceEnum_BiddingSource { + if m != nil { + return m.EffectiveCpmBidSource + } + return enums.BiddingSourceEnum_UNSPECIFIED +} + +func (m *AdGroupCriterion) GetEffectiveCpvBidSource() enums.BiddingSourceEnum_BiddingSource { + if m != nil { + return m.EffectiveCpvBidSource + } + return enums.BiddingSourceEnum_UNSPECIFIED +} + +func (m *AdGroupCriterion) GetEffectivePercentCpcBidSource() enums.BiddingSourceEnum_BiddingSource { + if m != nil { + return m.EffectivePercentCpcBidSource + } + return enums.BiddingSourceEnum_UNSPECIFIED +} + +func (m *AdGroupCriterion) GetPositionEstimates() *AdGroupCriterion_PositionEstimates { + if m != nil { + return m.PositionEstimates + } + return nil +} + +func (m *AdGroupCriterion) GetFinalUrls() []*wrappers.StringValue { + if m != nil { + return m.FinalUrls + } + return nil +} + +func (m *AdGroupCriterion) GetTrackingUrlTemplate() *wrappers.StringValue { + if m != nil { + return m.TrackingUrlTemplate + } + return nil +} + +func (m *AdGroupCriterion) GetUrlCustomParameters() []*common.CustomParameter { + if m != nil { + return m.UrlCustomParameters + } + return nil +} + +type isAdGroupCriterion_Criterion interface { + isAdGroupCriterion_Criterion() +} + +type AdGroupCriterion_Keyword struct { + Keyword *common.KeywordInfo `protobuf:"bytes,27,opt,name=keyword,proto3,oneof"` +} + +type AdGroupCriterion_Placement struct { + Placement *common.PlacementInfo `protobuf:"bytes,28,opt,name=placement,proto3,oneof"` +} + +type AdGroupCriterion_ListingGroup struct { + ListingGroup *common.ListingGroupInfo `protobuf:"bytes,32,opt,name=listing_group,json=listingGroup,proto3,oneof"` +} + +type AdGroupCriterion_AgeRange struct { + AgeRange *common.AgeRangeInfo `protobuf:"bytes,36,opt,name=age_range,json=ageRange,proto3,oneof"` +} + +type AdGroupCriterion_Gender struct { + Gender *common.GenderInfo `protobuf:"bytes,37,opt,name=gender,proto3,oneof"` +} + +type AdGroupCriterion_IncomeRange struct { + IncomeRange *common.IncomeRangeInfo `protobuf:"bytes,38,opt,name=income_range,json=incomeRange,proto3,oneof"` +} + +type AdGroupCriterion_ParentalStatus struct { + ParentalStatus *common.ParentalStatusInfo `protobuf:"bytes,39,opt,name=parental_status,json=parentalStatus,proto3,oneof"` +} + +type AdGroupCriterion_UserList struct { + UserList *common.UserListInfo `protobuf:"bytes,42,opt,name=user_list,json=userList,proto3,oneof"` +} + +type AdGroupCriterion_YoutubeVideo struct { + YoutubeVideo *common.YouTubeVideoInfo `protobuf:"bytes,40,opt,name=youtube_video,json=youtubeVideo,proto3,oneof"` +} + +type AdGroupCriterion_YoutubeChannel struct { + YoutubeChannel *common.YouTubeChannelInfo `protobuf:"bytes,41,opt,name=youtube_channel,json=youtubeChannel,proto3,oneof"` +} + +type AdGroupCriterion_Topic struct { + Topic *common.TopicInfo `protobuf:"bytes,43,opt,name=topic,proto3,oneof"` +} + +type AdGroupCriterion_UserInterest struct { + UserInterest *common.UserInterestInfo `protobuf:"bytes,45,opt,name=user_interest,json=userInterest,proto3,oneof"` +} + +func (*AdGroupCriterion_Keyword) isAdGroupCriterion_Criterion() {} + +func (*AdGroupCriterion_Placement) isAdGroupCriterion_Criterion() {} + +func (*AdGroupCriterion_ListingGroup) isAdGroupCriterion_Criterion() {} + +func (*AdGroupCriterion_AgeRange) isAdGroupCriterion_Criterion() {} + +func (*AdGroupCriterion_Gender) isAdGroupCriterion_Criterion() {} + +func (*AdGroupCriterion_IncomeRange) isAdGroupCriterion_Criterion() {} + +func (*AdGroupCriterion_ParentalStatus) isAdGroupCriterion_Criterion() {} + +func (*AdGroupCriterion_UserList) isAdGroupCriterion_Criterion() {} + +func (*AdGroupCriterion_YoutubeVideo) isAdGroupCriterion_Criterion() {} + +func (*AdGroupCriterion_YoutubeChannel) isAdGroupCriterion_Criterion() {} + +func (*AdGroupCriterion_Topic) isAdGroupCriterion_Criterion() {} + +func (*AdGroupCriterion_UserInterest) isAdGroupCriterion_Criterion() {} + +func (m *AdGroupCriterion) GetCriterion() isAdGroupCriterion_Criterion { + if m != nil { + return m.Criterion + } + return nil +} + +func (m *AdGroupCriterion) GetKeyword() *common.KeywordInfo { + if x, ok := m.GetCriterion().(*AdGroupCriterion_Keyword); ok { + return x.Keyword + } + return nil +} + +func (m *AdGroupCriterion) GetPlacement() *common.PlacementInfo { + if x, ok := m.GetCriterion().(*AdGroupCriterion_Placement); ok { + return x.Placement + } + return nil +} + +func (m *AdGroupCriterion) GetListingGroup() *common.ListingGroupInfo { + if x, ok := m.GetCriterion().(*AdGroupCriterion_ListingGroup); ok { + return x.ListingGroup + } + return nil +} + +func (m *AdGroupCriterion) GetAgeRange() *common.AgeRangeInfo { + if x, ok := m.GetCriterion().(*AdGroupCriterion_AgeRange); ok { + return x.AgeRange + } + return nil +} + +func (m *AdGroupCriterion) GetGender() *common.GenderInfo { + if x, ok := m.GetCriterion().(*AdGroupCriterion_Gender); ok { + return x.Gender + } + return nil +} + +func (m *AdGroupCriterion) GetIncomeRange() *common.IncomeRangeInfo { + if x, ok := m.GetCriterion().(*AdGroupCriterion_IncomeRange); ok { + return x.IncomeRange + } + return nil +} + +func (m *AdGroupCriterion) GetParentalStatus() *common.ParentalStatusInfo { + if x, ok := m.GetCriterion().(*AdGroupCriterion_ParentalStatus); ok { + return x.ParentalStatus + } + return nil +} + +func (m *AdGroupCriterion) GetUserList() *common.UserListInfo { + if x, ok := m.GetCriterion().(*AdGroupCriterion_UserList); ok { + return x.UserList + } + return nil +} + +func (m *AdGroupCriterion) GetYoutubeVideo() *common.YouTubeVideoInfo { + if x, ok := m.GetCriterion().(*AdGroupCriterion_YoutubeVideo); ok { + return x.YoutubeVideo + } + return nil +} + +func (m *AdGroupCriterion) GetYoutubeChannel() *common.YouTubeChannelInfo { + if x, ok := m.GetCriterion().(*AdGroupCriterion_YoutubeChannel); ok { + return x.YoutubeChannel + } + return nil +} + +func (m *AdGroupCriterion) GetTopic() *common.TopicInfo { + if x, ok := m.GetCriterion().(*AdGroupCriterion_Topic); ok { + return x.Topic + } + return nil +} + +func (m *AdGroupCriterion) GetUserInterest() *common.UserInterestInfo { + if x, ok := m.GetCriterion().(*AdGroupCriterion_UserInterest); ok { + return x.UserInterest + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*AdGroupCriterion) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _AdGroupCriterion_OneofMarshaler, _AdGroupCriterion_OneofUnmarshaler, _AdGroupCriterion_OneofSizer, []interface{}{ + (*AdGroupCriterion_Keyword)(nil), + (*AdGroupCriterion_Placement)(nil), + (*AdGroupCriterion_ListingGroup)(nil), + (*AdGroupCriterion_AgeRange)(nil), + (*AdGroupCriterion_Gender)(nil), + (*AdGroupCriterion_IncomeRange)(nil), + (*AdGroupCriterion_ParentalStatus)(nil), + (*AdGroupCriterion_UserList)(nil), + (*AdGroupCriterion_YoutubeVideo)(nil), + (*AdGroupCriterion_YoutubeChannel)(nil), + (*AdGroupCriterion_Topic)(nil), + (*AdGroupCriterion_UserInterest)(nil), + } +} + +func _AdGroupCriterion_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*AdGroupCriterion) + // criterion + switch x := m.Criterion.(type) { + case *AdGroupCriterion_Keyword: + b.EncodeVarint(27<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Keyword); err != nil { + return err + } + case *AdGroupCriterion_Placement: + b.EncodeVarint(28<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Placement); err != nil { + return err + } + case *AdGroupCriterion_ListingGroup: + b.EncodeVarint(32<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.ListingGroup); err != nil { + return err + } + case *AdGroupCriterion_AgeRange: + b.EncodeVarint(36<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.AgeRange); err != nil { + return err + } + case *AdGroupCriterion_Gender: + b.EncodeVarint(37<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Gender); err != nil { + return err + } + case *AdGroupCriterion_IncomeRange: + b.EncodeVarint(38<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.IncomeRange); err != nil { + return err + } + case *AdGroupCriterion_ParentalStatus: + b.EncodeVarint(39<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.ParentalStatus); err != nil { + return err + } + case *AdGroupCriterion_UserList: + b.EncodeVarint(42<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.UserList); err != nil { + return err + } + case *AdGroupCriterion_YoutubeVideo: + b.EncodeVarint(40<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.YoutubeVideo); err != nil { + return err + } + case *AdGroupCriterion_YoutubeChannel: + b.EncodeVarint(41<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.YoutubeChannel); err != nil { + return err + } + case *AdGroupCriterion_Topic: + b.EncodeVarint(43<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Topic); err != nil { + return err + } + case *AdGroupCriterion_UserInterest: + b.EncodeVarint(45<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.UserInterest); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("AdGroupCriterion.Criterion has unexpected type %T", x) + } + return nil +} + +func _AdGroupCriterion_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*AdGroupCriterion) + switch tag { + case 27: // criterion.keyword + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.KeywordInfo) + err := b.DecodeMessage(msg) + m.Criterion = &AdGroupCriterion_Keyword{msg} + return true, err + case 28: // criterion.placement + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.PlacementInfo) + err := b.DecodeMessage(msg) + m.Criterion = &AdGroupCriterion_Placement{msg} + return true, err + case 32: // criterion.listing_group + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.ListingGroupInfo) + err := b.DecodeMessage(msg) + m.Criterion = &AdGroupCriterion_ListingGroup{msg} + return true, err + case 36: // criterion.age_range + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.AgeRangeInfo) + err := b.DecodeMessage(msg) + m.Criterion = &AdGroupCriterion_AgeRange{msg} + return true, err + case 37: // criterion.gender + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.GenderInfo) + err := b.DecodeMessage(msg) + m.Criterion = &AdGroupCriterion_Gender{msg} + return true, err + case 38: // criterion.income_range + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.IncomeRangeInfo) + err := b.DecodeMessage(msg) + m.Criterion = &AdGroupCriterion_IncomeRange{msg} + return true, err + case 39: // criterion.parental_status + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.ParentalStatusInfo) + err := b.DecodeMessage(msg) + m.Criterion = &AdGroupCriterion_ParentalStatus{msg} + return true, err + case 42: // criterion.user_list + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.UserListInfo) + err := b.DecodeMessage(msg) + m.Criterion = &AdGroupCriterion_UserList{msg} + return true, err + case 40: // criterion.youtube_video + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.YouTubeVideoInfo) + err := b.DecodeMessage(msg) + m.Criterion = &AdGroupCriterion_YoutubeVideo{msg} + return true, err + case 41: // criterion.youtube_channel + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.YouTubeChannelInfo) + err := b.DecodeMessage(msg) + m.Criterion = &AdGroupCriterion_YoutubeChannel{msg} + return true, err + case 43: // criterion.topic + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.TopicInfo) + err := b.DecodeMessage(msg) + m.Criterion = &AdGroupCriterion_Topic{msg} + return true, err + case 45: // criterion.user_interest + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.UserInterestInfo) + err := b.DecodeMessage(msg) + m.Criterion = &AdGroupCriterion_UserInterest{msg} + return true, err + default: + return false, nil + } +} + +func _AdGroupCriterion_OneofSizer(msg proto.Message) (n int) { + m := msg.(*AdGroupCriterion) + // criterion + switch x := m.Criterion.(type) { + case *AdGroupCriterion_Keyword: + s := proto.Size(x.Keyword) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *AdGroupCriterion_Placement: + s := proto.Size(x.Placement) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *AdGroupCriterion_ListingGroup: + s := proto.Size(x.ListingGroup) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *AdGroupCriterion_AgeRange: + s := proto.Size(x.AgeRange) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *AdGroupCriterion_Gender: + s := proto.Size(x.Gender) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *AdGroupCriterion_IncomeRange: + s := proto.Size(x.IncomeRange) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *AdGroupCriterion_ParentalStatus: + s := proto.Size(x.ParentalStatus) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *AdGroupCriterion_UserList: + s := proto.Size(x.UserList) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *AdGroupCriterion_YoutubeVideo: + s := proto.Size(x.YoutubeVideo) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *AdGroupCriterion_YoutubeChannel: + s := proto.Size(x.YoutubeChannel) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *AdGroupCriterion_Topic: + s := proto.Size(x.Topic) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *AdGroupCriterion_UserInterest: + s := proto.Size(x.UserInterest) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// A container for ad group criterion quality information. +type AdGroupCriterion_QualityInfo struct { + // The quality score. + // + // This field may not be populated if Google does not have enough + // information to determine a value. + QualityScore *wrappers.Int32Value `protobuf:"bytes,1,opt,name=quality_score,json=qualityScore,proto3" json:"quality_score,omitempty"` + // The performance of the ad compared to other advertisers. + CreativeQualityScore enums.QualityScoreBucketEnum_QualityScoreBucket `protobuf:"varint,2,opt,name=creative_quality_score,json=creativeQualityScore,proto3,enum=google.ads.googleads.v0.enums.QualityScoreBucketEnum_QualityScoreBucket" json:"creative_quality_score,omitempty"` + // The quality score of the landing page. + PostClickQualityScore enums.QualityScoreBucketEnum_QualityScoreBucket `protobuf:"varint,3,opt,name=post_click_quality_score,json=postClickQualityScore,proto3,enum=google.ads.googleads.v0.enums.QualityScoreBucketEnum_QualityScoreBucket" json:"post_click_quality_score,omitempty"` + // The click-through rate compared to that of other advertisers. + SearchPredictedCtr enums.QualityScoreBucketEnum_QualityScoreBucket `protobuf:"varint,4,opt,name=search_predicted_ctr,json=searchPredictedCtr,proto3,enum=google.ads.googleads.v0.enums.QualityScoreBucketEnum_QualityScoreBucket" json:"search_predicted_ctr,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AdGroupCriterion_QualityInfo) Reset() { *m = AdGroupCriterion_QualityInfo{} } +func (m *AdGroupCriterion_QualityInfo) String() string { return proto.CompactTextString(m) } +func (*AdGroupCriterion_QualityInfo) ProtoMessage() {} +func (*AdGroupCriterion_QualityInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_group_criterion_84c24ce63224e446, []int{0, 0} +} +func (m *AdGroupCriterion_QualityInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AdGroupCriterion_QualityInfo.Unmarshal(m, b) +} +func (m *AdGroupCriterion_QualityInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AdGroupCriterion_QualityInfo.Marshal(b, m, deterministic) +} +func (dst *AdGroupCriterion_QualityInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_AdGroupCriterion_QualityInfo.Merge(dst, src) +} +func (m *AdGroupCriterion_QualityInfo) XXX_Size() int { + return xxx_messageInfo_AdGroupCriterion_QualityInfo.Size(m) +} +func (m *AdGroupCriterion_QualityInfo) XXX_DiscardUnknown() { + xxx_messageInfo_AdGroupCriterion_QualityInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_AdGroupCriterion_QualityInfo proto.InternalMessageInfo + +func (m *AdGroupCriterion_QualityInfo) GetQualityScore() *wrappers.Int32Value { + if m != nil { + return m.QualityScore + } + return nil +} + +func (m *AdGroupCriterion_QualityInfo) GetCreativeQualityScore() enums.QualityScoreBucketEnum_QualityScoreBucket { + if m != nil { + return m.CreativeQualityScore + } + return enums.QualityScoreBucketEnum_UNSPECIFIED +} + +func (m *AdGroupCriterion_QualityInfo) GetPostClickQualityScore() enums.QualityScoreBucketEnum_QualityScoreBucket { + if m != nil { + return m.PostClickQualityScore + } + return enums.QualityScoreBucketEnum_UNSPECIFIED +} + +func (m *AdGroupCriterion_QualityInfo) GetSearchPredictedCtr() enums.QualityScoreBucketEnum_QualityScoreBucket { + if m != nil { + return m.SearchPredictedCtr + } + return enums.QualityScoreBucketEnum_UNSPECIFIED +} + +// Estimates for criterion bids at various positions. +type AdGroupCriterion_PositionEstimates struct { + // The estimate of the CPC bid required for ad to be shown on first + // page of search results. + FirstPageCpcMicros *wrappers.Int64Value `protobuf:"bytes,1,opt,name=first_page_cpc_micros,json=firstPageCpcMicros,proto3" json:"first_page_cpc_micros,omitempty"` + // The estimate of the CPC bid required for ad to be displayed in first + // position, at the top of the first page of search results. + FirstPositionCpcMicros *wrappers.Int64Value `protobuf:"bytes,2,opt,name=first_position_cpc_micros,json=firstPositionCpcMicros,proto3" json:"first_position_cpc_micros,omitempty"` + // The estimate of the CPC bid required for ad to be displayed at the top + // of the first page of search results. + TopOfPageCpcMicros *wrappers.Int64Value `protobuf:"bytes,3,opt,name=top_of_page_cpc_micros,json=topOfPageCpcMicros,proto3" json:"top_of_page_cpc_micros,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AdGroupCriterion_PositionEstimates) Reset() { *m = AdGroupCriterion_PositionEstimates{} } +func (m *AdGroupCriterion_PositionEstimates) String() string { return proto.CompactTextString(m) } +func (*AdGroupCriterion_PositionEstimates) ProtoMessage() {} +func (*AdGroupCriterion_PositionEstimates) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_group_criterion_84c24ce63224e446, []int{0, 1} +} +func (m *AdGroupCriterion_PositionEstimates) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AdGroupCriterion_PositionEstimates.Unmarshal(m, b) +} +func (m *AdGroupCriterion_PositionEstimates) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AdGroupCriterion_PositionEstimates.Marshal(b, m, deterministic) +} +func (dst *AdGroupCriterion_PositionEstimates) XXX_Merge(src proto.Message) { + xxx_messageInfo_AdGroupCriterion_PositionEstimates.Merge(dst, src) +} +func (m *AdGroupCriterion_PositionEstimates) XXX_Size() int { + return xxx_messageInfo_AdGroupCriterion_PositionEstimates.Size(m) +} +func (m *AdGroupCriterion_PositionEstimates) XXX_DiscardUnknown() { + xxx_messageInfo_AdGroupCriterion_PositionEstimates.DiscardUnknown(m) +} + +var xxx_messageInfo_AdGroupCriterion_PositionEstimates proto.InternalMessageInfo + +func (m *AdGroupCriterion_PositionEstimates) GetFirstPageCpcMicros() *wrappers.Int64Value { + if m != nil { + return m.FirstPageCpcMicros + } + return nil +} + +func (m *AdGroupCriterion_PositionEstimates) GetFirstPositionCpcMicros() *wrappers.Int64Value { + if m != nil { + return m.FirstPositionCpcMicros + } + return nil +} + +func (m *AdGroupCriterion_PositionEstimates) GetTopOfPageCpcMicros() *wrappers.Int64Value { + if m != nil { + return m.TopOfPageCpcMicros + } + return nil +} + +func init() { + proto.RegisterType((*AdGroupCriterion)(nil), "google.ads.googleads.v0.resources.AdGroupCriterion") + proto.RegisterType((*AdGroupCriterion_QualityInfo)(nil), "google.ads.googleads.v0.resources.AdGroupCriterion.QualityInfo") + proto.RegisterType((*AdGroupCriterion_PositionEstimates)(nil), "google.ads.googleads.v0.resources.AdGroupCriterion.PositionEstimates") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/ad_group_criterion.proto", fileDescriptor_ad_group_criterion_84c24ce63224e446) +} + +var fileDescriptor_ad_group_criterion_84c24ce63224e446 = []byte{ + // 1334 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x98, 0xdf, 0x72, 0xdb, 0xc4, + 0x17, 0xc7, 0x7f, 0x4e, 0xfa, 0x2f, 0x6b, 0x27, 0xbf, 0x76, 0x53, 0x87, 0x6d, 0x5a, 0x20, 0x6d, + 0x29, 0xa4, 0xff, 0xe4, 0x4c, 0x0a, 0x85, 0xa1, 0x43, 0x8b, 0x9d, 0x76, 0xd2, 0x50, 0xda, 0xba, + 0x8a, 0x1b, 0x06, 0x26, 0x8c, 0x66, 0xbd, 0x5a, 0xab, 0x3b, 0x91, 0xb4, 0xea, 0xee, 0xca, 0x9d, + 0x70, 0xc1, 0x0c, 0x37, 0x5c, 0xf1, 0x14, 0x5c, 0xf2, 0x28, 0xdc, 0x70, 0xcf, 0x6b, 0xf0, 0x02, + 0xcc, 0xae, 0x56, 0xb6, 0x6c, 0xd7, 0x91, 0xcb, 0xe4, 0x4e, 0x3a, 0xd9, 0xef, 0xe7, 0x9c, 0xfd, + 0x1e, 0x59, 0x7b, 0x14, 0xf0, 0x65, 0xc0, 0x79, 0x10, 0xd2, 0x06, 0xf6, 0x65, 0x23, 0xbb, 0xd4, + 0x57, 0xfd, 0x8d, 0x86, 0xa0, 0x92, 0xa7, 0x82, 0x50, 0xd9, 0xc0, 0xbe, 0x17, 0x08, 0x9e, 0x26, + 0x1e, 0x11, 0x4c, 0x51, 0xc1, 0x78, 0xec, 0x24, 0x82, 0x2b, 0x0e, 0x2f, 0x67, 0x02, 0x07, 0xfb, + 0xd2, 0x19, 0x68, 0x9d, 0xfe, 0x86, 0x33, 0xd0, 0xae, 0xde, 0x9e, 0x86, 0x27, 0x3c, 0x8a, 0x78, + 0xdc, 0xb0, 0x48, 0x9c, 0x11, 0x57, 0x3f, 0x2b, 0x5b, 0x9e, 0x4a, 0xc5, 0x23, 0x2f, 0xc1, 0x02, + 0x47, 0x54, 0x51, 0x61, 0x65, 0x5f, 0x4d, 0x93, 0xd1, 0x38, 0x8d, 0xde, 0xb6, 0x01, 0x4f, 0x2a, + 0xac, 0x52, 0x69, 0xe5, 0x9b, 0x47, 0xcb, 0xbb, 0xcc, 0xf7, 0x59, 0x1c, 0x78, 0xd9, 0x9e, 0x66, + 0xd3, 0x0c, 0x33, 0xa9, 0xc3, 0x24, 0xd7, 0x7c, 0x71, 0xb4, 0xe6, 0x75, 0x8a, 0x43, 0xa6, 0x0e, + 0x3d, 0x49, 0xb8, 0xa0, 0x5e, 0x37, 0x25, 0x07, 0x54, 0x59, 0xe5, 0x07, 0x56, 0x69, 0xee, 0xba, + 0x69, 0xaf, 0xf1, 0x46, 0xe0, 0x24, 0xa1, 0xc2, 0xee, 0xe0, 0xca, 0x3f, 0xef, 0x83, 0xb3, 0x4d, + 0x7f, 0x5b, 0x6f, 0x72, 0x2b, 0xcf, 0x0c, 0xaf, 0x82, 0xc5, 0xbc, 0x11, 0x5e, 0x8c, 0x23, 0x8a, + 0x2a, 0x6b, 0x95, 0xf5, 0x05, 0xb7, 0x96, 0x07, 0x9f, 0xe1, 0x88, 0xc2, 0xfb, 0xa0, 0x36, 0xac, + 0x95, 0xf9, 0x68, 0x75, 0xad, 0xb2, 0x5e, 0xdd, 0xbc, 0x68, 0xfb, 0xe9, 0xe4, 0x09, 0x9d, 0x9d, + 0x58, 0xdd, 0xfd, 0x74, 0x0f, 0x87, 0x29, 0x75, 0xab, 0x03, 0xc1, 0x8e, 0x0f, 0x5f, 0x81, 0x53, + 0x99, 0x97, 0x68, 0x7e, 0xad, 0xb2, 0xbe, 0xb4, 0xd9, 0x76, 0xa6, 0x3d, 0x14, 0x66, 0x93, 0xce, + 0x78, 0x95, 0xbb, 0x46, 0xfc, 0x28, 0x4e, 0xa3, 0x29, 0x7f, 0x72, 0x2d, 0x1f, 0x76, 0x41, 0x2d, + 0x77, 0x88, 0xc5, 0x3d, 0x8e, 0x4e, 0x98, 0x4a, 0x1f, 0x38, 0xa5, 0x0f, 0xe1, 0x04, 0xd8, 0x79, + 0x91, 0x71, 0x76, 0xe2, 0x1e, 0x77, 0xab, 0xaf, 0x87, 0x37, 0xf0, 0x73, 0x70, 0x26, 0x7f, 0x58, + 0xd0, 0x49, 0xc3, 0xbf, 0x34, 0xe1, 0xc4, 0xae, 0x12, 0x2c, 0x0e, 0x32, 0x2b, 0x4e, 0xe3, 0x0c, + 0x0d, 0x5d, 0x70, 0x42, 0x37, 0x1a, 0x5d, 0x30, 0x26, 0xdc, 0x2f, 0x31, 0x61, 0x50, 0x49, 0xe7, + 0x30, 0xa1, 0x66, 0xef, 0x23, 0x11, 0xd7, 0xb0, 0xe0, 0x5d, 0x70, 0x26, 0xa6, 0x01, 0x56, 0xac, + 0x4f, 0xd1, 0x87, 0xa6, 0x98, 0xd5, 0x89, 0x62, 0x5a, 0x9c, 0x87, 0x59, 0x29, 0x83, 0xb5, 0xf0, + 0x01, 0xa8, 0x75, 0x99, 0xef, 0x45, 0xdc, 0x67, 0x3d, 0x46, 0x05, 0xba, 0x35, 0x65, 0x23, 0x0f, + 0x79, 0xda, 0x0d, 0xa9, 0xed, 0x69, 0x97, 0xf9, 0x4f, 0xad, 0x00, 0x36, 0xc1, 0x12, 0x49, 0x88, + 0x67, 0x20, 0x8c, 0x08, 0x2e, 0xd1, 0xd9, 0xf2, 0xa7, 0xa2, 0x46, 0x12, 0xd2, 0x62, 0xfe, 0x53, + 0x23, 0xc8, 0x10, 0x51, 0x11, 0x71, 0x6e, 0x26, 0x44, 0x34, 0x86, 0xe8, 0x17, 0x11, 0x68, 0x26, + 0x44, 0x7f, 0x88, 0x68, 0x83, 0x95, 0x84, 0x0a, 0x42, 0x63, 0xe5, 0x8d, 0x6d, 0xe8, 0x72, 0x39, + 0x6a, 0xd9, 0x4a, 0xb7, 0x8a, 0xfb, 0xea, 0x00, 0x44, 0x7b, 0x3d, 0x4a, 0xb4, 0xd1, 0xe3, 0x4c, + 0x58, 0xce, 0xac, 0x0f, 0xc4, 0x47, 0x51, 0x47, 0x7c, 0x5b, 0x7e, 0x37, 0x6a, 0x34, 0x95, 0x3a, + 0x62, 0xe5, 0xf9, 0x77, 0xa3, 0x16, 0x3c, 0x25, 0x60, 0x6d, 0x48, 0x9d, 0xe2, 0xee, 0x95, 0x72, + 0xfa, 0xa5, 0x01, 0xa4, 0xfd, 0x16, 0x9b, 0xdf, 0xbc, 0xcd, 0xe6, 0xec, 0xe7, 0x8c, 0xea, 0x33, + 0xfd, 0xc4, 0x5a, 0xd9, 0x4b, 0x7b, 0xd7, 0x68, 0xcc, 0x4f, 0x6c, 0x24, 0x32, 0xd1, 0x89, 0x2c, + 0x3c, 0x9e, 0x38, 0x2a, 0x26, 0x5e, 0x39, 0xf6, 0xc4, 0xd1, 0xd4, 0xc4, 0xfd, 0x62, 0xe2, 0xf7, + 0x8e, 0x3d, 0x71, 0x7f, 0x98, 0xf8, 0xd7, 0xca, 0x51, 0x0d, 0xb5, 0x15, 0x5c, 0x3d, 0x96, 0x0a, + 0xa6, 0xf4, 0xdc, 0x16, 0xa2, 0x00, 0x4c, 0xb8, 0x64, 0x4a, 0x1f, 0x44, 0x54, 0x2a, 0x16, 0x61, + 0x45, 0x25, 0x02, 0xe6, 0x51, 0x7a, 0xf4, 0x5f, 0xde, 0xf2, 0x6d, 0x4b, 0x7b, 0x94, 0xc3, 0xdc, + 0x73, 0xc9, 0x78, 0x08, 0xde, 0x03, 0xa0, 0xc7, 0x62, 0x1c, 0x7a, 0xa9, 0x08, 0x25, 0xaa, 0xae, + 0xcd, 0x97, 0xbe, 0xf3, 0x17, 0xcc, 0xfa, 0x97, 0x22, 0xd4, 0xef, 0x97, 0xba, 0x12, 0x98, 0x1c, + 0xe8, 0xe9, 0x20, 0x15, 0xa1, 0xa7, 0x68, 0x94, 0x84, 0x58, 0x51, 0xb4, 0x38, 0xc3, 0xd9, 0xb1, + 0x9c, 0x4b, 0x5f, 0x8a, 0xb0, 0x63, 0x85, 0x90, 0x80, 0xba, 0x06, 0x8d, 0xcf, 0x39, 0x12, 0x2d, + 0x99, 0xca, 0x1a, 0x53, 0x7d, 0xc8, 0x06, 0x24, 0x67, 0xcb, 0x08, 0xdb, 0xb9, 0xce, 0x5d, 0x4e, + 0x45, 0x38, 0x16, 0x93, 0x70, 0x1b, 0x9c, 0x3e, 0xa0, 0x87, 0x6f, 0xb8, 0xf0, 0xd1, 0x45, 0x53, + 0xe8, 0xcd, 0x32, 0xec, 0x93, 0x6c, 0xb9, 0x3e, 0x23, 0x1f, 0xff, 0xcf, 0xcd, 0xd5, 0xf0, 0x29, + 0x58, 0x48, 0x42, 0x4c, 0x68, 0x44, 0x63, 0x85, 0x2e, 0x19, 0xd4, 0xed, 0x32, 0x54, 0x3b, 0x17, + 0x58, 0xd8, 0x90, 0x00, 0xbf, 0x03, 0x8b, 0x21, 0x93, 0x4a, 0xbb, 0x99, 0x1d, 0xc1, 0x6b, 0x06, + 0xb9, 0x51, 0x86, 0xfc, 0x36, 0x13, 0x99, 0xf6, 0x5b, 0x6a, 0x2d, 0x2c, 0xc4, 0xe0, 0x13, 0xb0, + 0x80, 0x03, 0xea, 0x09, 0x1c, 0x07, 0x14, 0x7d, 0x64, 0xa0, 0xb7, 0xca, 0xa0, 0xcd, 0x80, 0xba, + 0x7a, 0xbd, 0x05, 0x9e, 0xc1, 0xf6, 0x1e, 0x3e, 0x04, 0xa7, 0x02, 0x1a, 0xfb, 0x54, 0xa0, 0x6b, + 0x86, 0x74, 0xa3, 0x8c, 0xb4, 0x6d, 0x56, 0x5b, 0x8e, 0xd5, 0xc2, 0x0e, 0xa8, 0xb1, 0x98, 0xf0, + 0x28, 0xaf, 0xea, 0x63, 0xc3, 0x2a, 0xed, 0xef, 0x8e, 0xd1, 0x14, 0x0b, 0xab, 0xb2, 0x61, 0x08, + 0xfe, 0x08, 0xfe, 0x9f, 0x60, 0x41, 0x63, 0x85, 0x43, 0x3b, 0xe2, 0xa2, 0x4f, 0x0c, 0x78, 0xb3, + 0xb4, 0x2d, 0x56, 0x96, 0x0d, 0x5d, 0x96, 0xbd, 0x94, 0x8c, 0x44, 0xb5, 0x8f, 0xa9, 0xa4, 0xc2, + 0xd3, 0xe6, 0xa2, 0x1b, 0xb3, 0xf9, 0xf8, 0x52, 0x52, 0xa1, 0x1b, 0x94, 0xfb, 0x98, 0xda, 0x7b, + 0xdd, 0xed, 0x43, 0x9e, 0xaa, 0xb4, 0x4b, 0xbd, 0x3e, 0xf3, 0x29, 0x47, 0xeb, 0xb3, 0x75, 0xfb, + 0x7b, 0x9e, 0x76, 0xd2, 0x2e, 0xdd, 0xd3, 0x9a, 0xbc, 0xdb, 0x16, 0x64, 0x62, 0xda, 0x84, 0x1c, + 0x4c, 0x5e, 0xe1, 0x38, 0xa6, 0x21, 0xba, 0x3e, 0x9b, 0x09, 0x16, 0xbd, 0x95, 0xa9, 0x72, 0x13, + 0x2c, 0xcc, 0x46, 0x61, 0x13, 0x9c, 0x54, 0x3c, 0x61, 0x04, 0xdd, 0x34, 0xd0, 0xeb, 0x65, 0xd0, + 0x8e, 0x5e, 0x6c, 0x59, 0x99, 0x52, 0x6f, 0xdd, 0xf8, 0xc8, 0x62, 0x45, 0x05, 0x95, 0x0a, 0xdd, + 0x9e, 0x6d, 0xeb, 0xda, 0xcb, 0x1d, 0xab, 0xc9, 0xb7, 0x9e, 0x16, 0x62, 0xab, 0x7f, 0xcd, 0x83, + 0x6a, 0x61, 0xb8, 0x85, 0x5f, 0x83, 0xc5, 0x91, 0xaf, 0x0a, 0xf3, 0x09, 0x30, 0xe5, 0x64, 0xbe, + 0xb3, 0x69, 0x47, 0x28, 0xab, 0xd8, 0xd5, 0x02, 0xf8, 0x33, 0x58, 0x21, 0x82, 0x9a, 0xc1, 0xd2, + 0x1b, 0x45, 0xcd, 0x99, 0x33, 0xe1, 0x71, 0xc9, 0x99, 0xf0, 0xa2, 0x00, 0x6b, 0x99, 0x4f, 0x1a, + 0x73, 0x30, 0x4c, 0x86, 0xdd, 0xf3, 0x79, 0x9e, 0xe2, 0xdf, 0xe0, 0x2f, 0x15, 0x80, 0x12, 0x2e, + 0x95, 0x47, 0x42, 0x46, 0x0e, 0xc6, 0x4a, 0x98, 0x3f, 0xe6, 0x12, 0xea, 0x3a, 0xd3, 0x96, 0x4e, + 0x34, 0x52, 0xc3, 0x4f, 0xe0, 0xbc, 0xa4, 0x58, 0x90, 0x57, 0x5e, 0x22, 0xa8, 0xcf, 0x88, 0xa2, + 0xbe, 0x47, 0x94, 0x30, 0x5f, 0x20, 0xc7, 0x99, 0x1e, 0x66, 0x59, 0xda, 0x79, 0x92, 0x2d, 0x25, + 0x56, 0x7f, 0x9b, 0x03, 0xe7, 0x26, 0x0e, 0x32, 0xf8, 0x0c, 0xd4, 0x7b, 0x4c, 0x48, 0xe5, 0x25, + 0xfa, 0xbd, 0xa6, 0x0f, 0x6b, 0x3b, 0x79, 0x55, 0xca, 0x27, 0x2f, 0x68, 0x94, 0x6d, 0x1c, 0xe8, + 0xc9, 0xc7, 0xce, 0x5b, 0x7b, 0xe0, 0x82, 0xe5, 0xe5, 0x27, 0x70, 0x81, 0x39, 0x57, 0xce, 0x5c, + 0xc9, 0x98, 0x56, 0x3c, 0xe4, 0x3e, 0x07, 0x2b, 0x8a, 0x27, 0x1e, 0xef, 0x4d, 0x14, 0x3a, 0x3f, + 0x43, 0xa1, 0x8a, 0x27, 0xcf, 0x7b, 0x23, 0x85, 0xb6, 0xaa, 0x60, 0x61, 0xf0, 0xf5, 0xd9, 0xfa, + 0xbb, 0x02, 0xae, 0x11, 0x1e, 0x95, 0xcf, 0x06, 0xad, 0xfa, 0xf8, 0x70, 0xd0, 0xd6, 0xf9, 0xda, + 0x95, 0x1f, 0xbe, 0xb1, 0xda, 0x80, 0x87, 0x38, 0x0e, 0x1c, 0x2e, 0x82, 0x46, 0x40, 0x63, 0x53, + 0x4d, 0xfe, 0x89, 0x9e, 0x30, 0x79, 0xc4, 0x7f, 0x47, 0xee, 0x0d, 0xae, 0x7e, 0x9f, 0x9b, 0xdf, + 0x6e, 0x36, 0xff, 0x98, 0xbb, 0xbc, 0x9d, 0x21, 0x9b, 0xbe, 0x74, 0xb2, 0x4b, 0x7d, 0xb5, 0xb7, + 0xe1, 0xb8, 0xf9, 0xca, 0x3f, 0xf3, 0x35, 0xfb, 0x4d, 0x5f, 0xee, 0x0f, 0xd6, 0xec, 0xef, 0x6d, + 0xec, 0x0f, 0xd6, 0x74, 0x4f, 0x99, 0x22, 0xee, 0xfc, 0x1b, 0x00, 0x00, 0xff, 0xff, 0x69, 0x3e, + 0xbe, 0xa3, 0xa1, 0x11, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/ad_group_feed.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/ad_group_feed.pb.go new file mode 100644 index 000000000..1f85b1d26 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/ad_group_feed.pb.go @@ -0,0 +1,155 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/ad_group_feed.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import common "google.golang.org/genproto/googleapis/ads/googleads/v0/common" +import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// An ad group feed. +type AdGroupFeed struct { + // The resource name of the ad group feed. + // Ad group feed resource names have the form: + // + // `customers/{customer_id}/adGroupFeeds/{ad_group_id}_{feed_id} + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + // The feed being linked to the ad group. + Feed *wrappers.StringValue `protobuf:"bytes,2,opt,name=feed,proto3" json:"feed,omitempty"` + // The ad group being linked to the feed. + AdGroup *wrappers.StringValue `protobuf:"bytes,3,opt,name=ad_group,json=adGroup,proto3" json:"ad_group,omitempty"` + // Indicates which placeholder types the feed may populate under the connected + // ad group. Required. + PlaceholderTypes []enums.PlaceholderTypeEnum_PlaceholderType `protobuf:"varint,4,rep,packed,name=placeholder_types,json=placeholderTypes,proto3,enum=google.ads.googleads.v0.enums.PlaceholderTypeEnum_PlaceholderType" json:"placeholder_types,omitempty"` + // Matching function associated with the AdGroupFeed. + // The matching function is used to filter the set of feed items selected. + // Required. + MatchingFunction *common.MatchingFunction `protobuf:"bytes,5,opt,name=matching_function,json=matchingFunction,proto3" json:"matching_function,omitempty"` + // Status of the ad group feed. + // This field is read-only. + Status enums.FeedLinkStatusEnum_FeedLinkStatus `protobuf:"varint,6,opt,name=status,proto3,enum=google.ads.googleads.v0.enums.FeedLinkStatusEnum_FeedLinkStatus" json:"status,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AdGroupFeed) Reset() { *m = AdGroupFeed{} } +func (m *AdGroupFeed) String() string { return proto.CompactTextString(m) } +func (*AdGroupFeed) ProtoMessage() {} +func (*AdGroupFeed) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_group_feed_b1adbabb521ebfb6, []int{0} +} +func (m *AdGroupFeed) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AdGroupFeed.Unmarshal(m, b) +} +func (m *AdGroupFeed) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AdGroupFeed.Marshal(b, m, deterministic) +} +func (dst *AdGroupFeed) XXX_Merge(src proto.Message) { + xxx_messageInfo_AdGroupFeed.Merge(dst, src) +} +func (m *AdGroupFeed) XXX_Size() int { + return xxx_messageInfo_AdGroupFeed.Size(m) +} +func (m *AdGroupFeed) XXX_DiscardUnknown() { + xxx_messageInfo_AdGroupFeed.DiscardUnknown(m) +} + +var xxx_messageInfo_AdGroupFeed proto.InternalMessageInfo + +func (m *AdGroupFeed) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func (m *AdGroupFeed) GetFeed() *wrappers.StringValue { + if m != nil { + return m.Feed + } + return nil +} + +func (m *AdGroupFeed) GetAdGroup() *wrappers.StringValue { + if m != nil { + return m.AdGroup + } + return nil +} + +func (m *AdGroupFeed) GetPlaceholderTypes() []enums.PlaceholderTypeEnum_PlaceholderType { + if m != nil { + return m.PlaceholderTypes + } + return nil +} + +func (m *AdGroupFeed) GetMatchingFunction() *common.MatchingFunction { + if m != nil { + return m.MatchingFunction + } + return nil +} + +func (m *AdGroupFeed) GetStatus() enums.FeedLinkStatusEnum_FeedLinkStatus { + if m != nil { + return m.Status + } + return enums.FeedLinkStatusEnum_UNSPECIFIED +} + +func init() { + proto.RegisterType((*AdGroupFeed)(nil), "google.ads.googleads.v0.resources.AdGroupFeed") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/ad_group_feed.proto", fileDescriptor_ad_group_feed_b1adbabb521ebfb6) +} + +var fileDescriptor_ad_group_feed_b1adbabb521ebfb6 = []byte{ + // 454 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x93, 0xdf, 0x6b, 0xd4, 0x40, + 0x10, 0xc7, 0xc9, 0x5d, 0x3d, 0x75, 0xab, 0xe5, 0x9a, 0xa7, 0x50, 0x44, 0xae, 0x8a, 0x70, 0x4f, + 0x9b, 0x70, 0xfe, 0x7a, 0xf0, 0xc5, 0x1c, 0xd8, 0x03, 0x51, 0x39, 0x52, 0x39, 0x44, 0x4e, 0xc2, + 0x36, 0x3b, 0xb7, 0x0d, 0xcd, 0xfe, 0x60, 0x37, 0xa9, 0xf4, 0xdf, 0xf1, 0xd1, 0x7f, 0x44, 0xf0, + 0xdd, 0xff, 0x47, 0x92, 0xdd, 0x44, 0x7b, 0x12, 0x7b, 0x6f, 0x93, 0xe1, 0xfb, 0x99, 0x9d, 0x99, + 0xef, 0x04, 0x3d, 0x67, 0x52, 0xb2, 0x02, 0x42, 0x42, 0x4d, 0x68, 0xc3, 0x3a, 0xba, 0x8c, 0x42, + 0x0d, 0x46, 0x56, 0x3a, 0x03, 0x13, 0x12, 0x9a, 0x32, 0x2d, 0x2b, 0x95, 0x6e, 0x00, 0x28, 0x56, + 0x5a, 0x96, 0xd2, 0x3f, 0xb6, 0x5a, 0x4c, 0xa8, 0xc1, 0x1d, 0x86, 0x2f, 0x23, 0xdc, 0x61, 0x47, + 0x2f, 0xfa, 0x2a, 0x67, 0x92, 0x73, 0x29, 0x42, 0x4e, 0xca, 0xec, 0x3c, 0x17, 0x2c, 0xdd, 0x54, + 0x22, 0x2b, 0x73, 0x29, 0x6c, 0xe9, 0xa3, 0x67, 0x7d, 0x1c, 0x88, 0x8a, 0x9b, 0xb0, 0x6e, 0x22, + 0x2d, 0x72, 0x71, 0x91, 0x9a, 0x92, 0x94, 0x95, 0xd9, 0x8d, 0x52, 0x05, 0xc9, 0xe0, 0x5c, 0x16, + 0x14, 0x74, 0x5a, 0x5e, 0x29, 0x70, 0xd4, 0x43, 0x47, 0x35, 0x5f, 0x67, 0xd5, 0x26, 0xfc, 0xaa, + 0x89, 0x52, 0xa0, 0x5d, 0xd5, 0x47, 0x3f, 0x86, 0x68, 0x3f, 0xa6, 0x8b, 0x7a, 0xfa, 0x13, 0x00, + 0xea, 0x3f, 0x46, 0xf7, 0xdb, 0x01, 0x53, 0x41, 0x38, 0x04, 0xde, 0xc4, 0x9b, 0xde, 0x4d, 0xee, + 0xb5, 0xc9, 0x0f, 0x84, 0x83, 0x1f, 0xa1, 0xbd, 0xba, 0xc9, 0x60, 0x30, 0xf1, 0xa6, 0xfb, 0xb3, + 0x07, 0x6e, 0x3f, 0xb8, 0x7d, 0x03, 0x9f, 0x96, 0x3a, 0x17, 0x6c, 0x45, 0x8a, 0x0a, 0x92, 0x46, + 0xe9, 0xbf, 0x44, 0x77, 0xda, 0x25, 0x07, 0xc3, 0x1d, 0xa8, 0xdb, 0xc4, 0xf6, 0xe4, 0x4b, 0x74, + 0xb8, 0x3d, 0x99, 0x09, 0xf6, 0x26, 0xc3, 0xe9, 0xc1, 0x6c, 0x8e, 0xfb, 0x2c, 0x6a, 0x36, 0x82, + 0x97, 0x7f, 0xb8, 0x8f, 0x57, 0x0a, 0xde, 0x88, 0x8a, 0x6f, 0xe7, 0x92, 0xb1, 0xba, 0x9e, 0x30, + 0xfe, 0x17, 0x74, 0xf8, 0x8f, 0x6f, 0xc1, 0xad, 0xa6, 0xe5, 0xa8, 0xf7, 0x41, 0x6b, 0x38, 0x7e, + 0xef, 0xc0, 0x13, 0xc7, 0x25, 0x63, 0xbe, 0x95, 0xf1, 0x3f, 0xa1, 0x91, 0x75, 0x35, 0x18, 0x4d, + 0xbc, 0xe9, 0xc1, 0xec, 0xf5, 0x0d, 0x43, 0xd4, 0xa6, 0xbc, 0xcb, 0xc5, 0xc5, 0x69, 0x03, 0x35, + 0x33, 0x5c, 0x4f, 0x25, 0xae, 0xde, 0xfc, 0x97, 0x87, 0x9e, 0x64, 0x92, 0xe3, 0x1b, 0xef, 0x76, + 0x3e, 0xfe, 0xcb, 0xf0, 0x65, 0xbd, 0xfd, 0xa5, 0xf7, 0xf9, 0xad, 0xc3, 0x98, 0x2c, 0x88, 0x60, + 0x58, 0x6a, 0x16, 0x32, 0x10, 0x8d, 0x37, 0xed, 0xb5, 0xa9, 0xdc, 0xfc, 0xe7, 0x27, 0x7a, 0xd5, + 0x45, 0xdf, 0x06, 0xc3, 0x45, 0x1c, 0x7f, 0x1f, 0x1c, 0x2f, 0x6c, 0xc9, 0x98, 0x1a, 0x6c, 0xc3, + 0x3a, 0x5a, 0x45, 0x38, 0x69, 0x95, 0x3f, 0x5b, 0xcd, 0x3a, 0xa6, 0x66, 0xdd, 0x69, 0xd6, 0xab, + 0x68, 0xdd, 0x69, 0xce, 0x46, 0x4d, 0x13, 0x4f, 0x7f, 0x07, 0x00, 0x00, 0xff, 0xff, 0x4a, 0x06, + 0x3f, 0xc0, 0xc8, 0x03, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/age_range_view.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/age_range_view.pb.go new file mode 100644 index 000000000..3848b4a2a --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/age_range_view.pb.go @@ -0,0 +1,89 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/age_range_view.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// An age range view. +type AgeRangeView struct { + // The resource name of the age range view. + // Age range view resource names have the form: + // + // `customers/{customer_id}/ageRangeViews/{ad_group_id}_{criterion_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AgeRangeView) Reset() { *m = AgeRangeView{} } +func (m *AgeRangeView) String() string { return proto.CompactTextString(m) } +func (*AgeRangeView) ProtoMessage() {} +func (*AgeRangeView) Descriptor() ([]byte, []int) { + return fileDescriptor_age_range_view_f299b327e9938b24, []int{0} +} +func (m *AgeRangeView) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AgeRangeView.Unmarshal(m, b) +} +func (m *AgeRangeView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AgeRangeView.Marshal(b, m, deterministic) +} +func (dst *AgeRangeView) XXX_Merge(src proto.Message) { + xxx_messageInfo_AgeRangeView.Merge(dst, src) +} +func (m *AgeRangeView) XXX_Size() int { + return xxx_messageInfo_AgeRangeView.Size(m) +} +func (m *AgeRangeView) XXX_DiscardUnknown() { + xxx_messageInfo_AgeRangeView.DiscardUnknown(m) +} + +var xxx_messageInfo_AgeRangeView proto.InternalMessageInfo + +func (m *AgeRangeView) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*AgeRangeView)(nil), "google.ads.googleads.v0.resources.AgeRangeView") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/age_range_view.proto", fileDescriptor_age_range_view_f299b327e9938b24) +} + +var fileDescriptor_age_range_view_f299b327e9938b24 = []byte{ + // 228 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x32, 0x4b, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xa2, 0xd4, + 0xe2, 0xfc, 0xd2, 0xa2, 0xe4, 0xd4, 0x62, 0xfd, 0xc4, 0xf4, 0xd4, 0xf8, 0xa2, 0xc4, 0xbc, 0xf4, + 0xd4, 0xf8, 0xb2, 0xcc, 0xd4, 0x72, 0xbd, 0x82, 0xa2, 0xfc, 0x92, 0x7c, 0x21, 0x45, 0x88, 0x62, + 0xbd, 0xc4, 0x94, 0x62, 0x3d, 0xb8, 0x3e, 0xbd, 0x32, 0x03, 0x3d, 0xb8, 0x3e, 0x25, 0x63, 0x2e, + 0x1e, 0xc7, 0xf4, 0xd4, 0x20, 0x90, 0xce, 0xb0, 0xcc, 0xd4, 0x72, 0x21, 0x65, 0x2e, 0x5e, 0x98, + 0x64, 0x7c, 0x5e, 0x62, 0x6e, 0xaa, 0x04, 0xa3, 0x02, 0xa3, 0x06, 0x67, 0x10, 0x0f, 0x4c, 0xd0, + 0x2f, 0x31, 0x37, 0xd5, 0xe9, 0x1a, 0x23, 0x97, 0x6a, 0x72, 0x7e, 0xae, 0x1e, 0x41, 0xe3, 0x9d, + 0x04, 0x91, 0x0d, 0x0f, 0x00, 0x39, 0x2a, 0x80, 0x31, 0xca, 0x0b, 0xaa, 0x2f, 0x3d, 0x3f, 0x27, + 0x31, 0x2f, 0x5d, 0x2f, 0xbf, 0x28, 0x5d, 0x3f, 0x3d, 0x35, 0x0f, 0xec, 0x64, 0x98, 0xf7, 0x0a, + 0x32, 0x8b, 0xf1, 0xf8, 0xd6, 0x1a, 0xce, 0x5a, 0xc4, 0xc4, 0xec, 0xee, 0xe8, 0xb8, 0x8a, 0x49, + 0xd1, 0x1d, 0x62, 0xa4, 0x63, 0x4a, 0xb1, 0x1e, 0x84, 0x09, 0x62, 0x85, 0x19, 0xe8, 0x05, 0xc1, + 0x54, 0x9e, 0x82, 0xa9, 0x89, 0x71, 0x4c, 0x29, 0x8e, 0x81, 0xab, 0x89, 0x09, 0x33, 0x88, 0x81, + 0xab, 0x49, 0x62, 0x03, 0x3b, 0xc2, 0x18, 0x10, 0x00, 0x00, 0xff, 0xff, 0xba, 0x0f, 0x61, 0x81, + 0x71, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/bidding_strategy.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/bidding_strategy.pb.go new file mode 100644 index 000000000..d58808d0e --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/bidding_strategy.pb.go @@ -0,0 +1,397 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/bidding_strategy.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import common "google.golang.org/genproto/googleapis/ads/googleads/v0/common" +import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A bidding strategy. +type BiddingStrategy struct { + // The resource name of the bidding strategy. + // Bidding strategy resource names have the form: + // + // `customers/{customer_id}/biddingStrategies/{bidding_strategy_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + // The ID of the bidding strategy. + Id *wrappers.Int64Value `protobuf:"bytes,3,opt,name=id,proto3" json:"id,omitempty"` + // The name of the bidding strategy. + // All bidding strategies within an account must be named distinctly. + // + // The length of this string should be between 1 and 255, inclusive, + // in UTF-8 bytes, (trimmed). + Name *wrappers.StringValue `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + // The type of the bidding strategy. + // Create a bidding strategy by setting the bidding scheme. + // + // This field is read-only. + Type enums.BiddingStrategyTypeEnum_BiddingStrategyType `protobuf:"varint,5,opt,name=type,proto3,enum=google.ads.googleads.v0.enums.BiddingStrategyTypeEnum_BiddingStrategyType" json:"type,omitempty"` + // The bidding scheme. + // + // Only one can be set. + // + // Types that are valid to be assigned to Scheme: + // *BiddingStrategy_EnhancedCpc + // *BiddingStrategy_PageOnePromoted + // *BiddingStrategy_TargetCpa + // *BiddingStrategy_TargetOutrankShare + // *BiddingStrategy_TargetRoas + // *BiddingStrategy_TargetSpend + Scheme isBiddingStrategy_Scheme `protobuf_oneof:"scheme"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BiddingStrategy) Reset() { *m = BiddingStrategy{} } +func (m *BiddingStrategy) String() string { return proto.CompactTextString(m) } +func (*BiddingStrategy) ProtoMessage() {} +func (*BiddingStrategy) Descriptor() ([]byte, []int) { + return fileDescriptor_bidding_strategy_d0682b5c71f925fb, []int{0} +} +func (m *BiddingStrategy) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BiddingStrategy.Unmarshal(m, b) +} +func (m *BiddingStrategy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BiddingStrategy.Marshal(b, m, deterministic) +} +func (dst *BiddingStrategy) XXX_Merge(src proto.Message) { + xxx_messageInfo_BiddingStrategy.Merge(dst, src) +} +func (m *BiddingStrategy) XXX_Size() int { + return xxx_messageInfo_BiddingStrategy.Size(m) +} +func (m *BiddingStrategy) XXX_DiscardUnknown() { + xxx_messageInfo_BiddingStrategy.DiscardUnknown(m) +} + +var xxx_messageInfo_BiddingStrategy proto.InternalMessageInfo + +func (m *BiddingStrategy) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func (m *BiddingStrategy) GetId() *wrappers.Int64Value { + if m != nil { + return m.Id + } + return nil +} + +func (m *BiddingStrategy) GetName() *wrappers.StringValue { + if m != nil { + return m.Name + } + return nil +} + +func (m *BiddingStrategy) GetType() enums.BiddingStrategyTypeEnum_BiddingStrategyType { + if m != nil { + return m.Type + } + return enums.BiddingStrategyTypeEnum_UNSPECIFIED +} + +type isBiddingStrategy_Scheme interface { + isBiddingStrategy_Scheme() +} + +type BiddingStrategy_EnhancedCpc struct { + EnhancedCpc *common.EnhancedCpc `protobuf:"bytes,7,opt,name=enhanced_cpc,json=enhancedCpc,proto3,oneof"` +} + +type BiddingStrategy_PageOnePromoted struct { + PageOnePromoted *common.PageOnePromoted `protobuf:"bytes,8,opt,name=page_one_promoted,json=pageOnePromoted,proto3,oneof"` +} + +type BiddingStrategy_TargetCpa struct { + TargetCpa *common.TargetCpa `protobuf:"bytes,9,opt,name=target_cpa,json=targetCpa,proto3,oneof"` +} + +type BiddingStrategy_TargetOutrankShare struct { + TargetOutrankShare *common.TargetOutrankShare `protobuf:"bytes,10,opt,name=target_outrank_share,json=targetOutrankShare,proto3,oneof"` +} + +type BiddingStrategy_TargetRoas struct { + TargetRoas *common.TargetRoas `protobuf:"bytes,11,opt,name=target_roas,json=targetRoas,proto3,oneof"` +} + +type BiddingStrategy_TargetSpend struct { + TargetSpend *common.TargetSpend `protobuf:"bytes,12,opt,name=target_spend,json=targetSpend,proto3,oneof"` +} + +func (*BiddingStrategy_EnhancedCpc) isBiddingStrategy_Scheme() {} + +func (*BiddingStrategy_PageOnePromoted) isBiddingStrategy_Scheme() {} + +func (*BiddingStrategy_TargetCpa) isBiddingStrategy_Scheme() {} + +func (*BiddingStrategy_TargetOutrankShare) isBiddingStrategy_Scheme() {} + +func (*BiddingStrategy_TargetRoas) isBiddingStrategy_Scheme() {} + +func (*BiddingStrategy_TargetSpend) isBiddingStrategy_Scheme() {} + +func (m *BiddingStrategy) GetScheme() isBiddingStrategy_Scheme { + if m != nil { + return m.Scheme + } + return nil +} + +func (m *BiddingStrategy) GetEnhancedCpc() *common.EnhancedCpc { + if x, ok := m.GetScheme().(*BiddingStrategy_EnhancedCpc); ok { + return x.EnhancedCpc + } + return nil +} + +func (m *BiddingStrategy) GetPageOnePromoted() *common.PageOnePromoted { + if x, ok := m.GetScheme().(*BiddingStrategy_PageOnePromoted); ok { + return x.PageOnePromoted + } + return nil +} + +func (m *BiddingStrategy) GetTargetCpa() *common.TargetCpa { + if x, ok := m.GetScheme().(*BiddingStrategy_TargetCpa); ok { + return x.TargetCpa + } + return nil +} + +func (m *BiddingStrategy) GetTargetOutrankShare() *common.TargetOutrankShare { + if x, ok := m.GetScheme().(*BiddingStrategy_TargetOutrankShare); ok { + return x.TargetOutrankShare + } + return nil +} + +func (m *BiddingStrategy) GetTargetRoas() *common.TargetRoas { + if x, ok := m.GetScheme().(*BiddingStrategy_TargetRoas); ok { + return x.TargetRoas + } + return nil +} + +func (m *BiddingStrategy) GetTargetSpend() *common.TargetSpend { + if x, ok := m.GetScheme().(*BiddingStrategy_TargetSpend); ok { + return x.TargetSpend + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*BiddingStrategy) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _BiddingStrategy_OneofMarshaler, _BiddingStrategy_OneofUnmarshaler, _BiddingStrategy_OneofSizer, []interface{}{ + (*BiddingStrategy_EnhancedCpc)(nil), + (*BiddingStrategy_PageOnePromoted)(nil), + (*BiddingStrategy_TargetCpa)(nil), + (*BiddingStrategy_TargetOutrankShare)(nil), + (*BiddingStrategy_TargetRoas)(nil), + (*BiddingStrategy_TargetSpend)(nil), + } +} + +func _BiddingStrategy_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*BiddingStrategy) + // scheme + switch x := m.Scheme.(type) { + case *BiddingStrategy_EnhancedCpc: + b.EncodeVarint(7<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.EnhancedCpc); err != nil { + return err + } + case *BiddingStrategy_PageOnePromoted: + b.EncodeVarint(8<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.PageOnePromoted); err != nil { + return err + } + case *BiddingStrategy_TargetCpa: + b.EncodeVarint(9<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.TargetCpa); err != nil { + return err + } + case *BiddingStrategy_TargetOutrankShare: + b.EncodeVarint(10<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.TargetOutrankShare); err != nil { + return err + } + case *BiddingStrategy_TargetRoas: + b.EncodeVarint(11<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.TargetRoas); err != nil { + return err + } + case *BiddingStrategy_TargetSpend: + b.EncodeVarint(12<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.TargetSpend); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("BiddingStrategy.Scheme has unexpected type %T", x) + } + return nil +} + +func _BiddingStrategy_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*BiddingStrategy) + switch tag { + case 7: // scheme.enhanced_cpc + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.EnhancedCpc) + err := b.DecodeMessage(msg) + m.Scheme = &BiddingStrategy_EnhancedCpc{msg} + return true, err + case 8: // scheme.page_one_promoted + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.PageOnePromoted) + err := b.DecodeMessage(msg) + m.Scheme = &BiddingStrategy_PageOnePromoted{msg} + return true, err + case 9: // scheme.target_cpa + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.TargetCpa) + err := b.DecodeMessage(msg) + m.Scheme = &BiddingStrategy_TargetCpa{msg} + return true, err + case 10: // scheme.target_outrank_share + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.TargetOutrankShare) + err := b.DecodeMessage(msg) + m.Scheme = &BiddingStrategy_TargetOutrankShare{msg} + return true, err + case 11: // scheme.target_roas + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.TargetRoas) + err := b.DecodeMessage(msg) + m.Scheme = &BiddingStrategy_TargetRoas{msg} + return true, err + case 12: // scheme.target_spend + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.TargetSpend) + err := b.DecodeMessage(msg) + m.Scheme = &BiddingStrategy_TargetSpend{msg} + return true, err + default: + return false, nil + } +} + +func _BiddingStrategy_OneofSizer(msg proto.Message) (n int) { + m := msg.(*BiddingStrategy) + // scheme + switch x := m.Scheme.(type) { + case *BiddingStrategy_EnhancedCpc: + s := proto.Size(x.EnhancedCpc) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *BiddingStrategy_PageOnePromoted: + s := proto.Size(x.PageOnePromoted) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *BiddingStrategy_TargetCpa: + s := proto.Size(x.TargetCpa) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *BiddingStrategy_TargetOutrankShare: + s := proto.Size(x.TargetOutrankShare) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *BiddingStrategy_TargetRoas: + s := proto.Size(x.TargetRoas) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *BiddingStrategy_TargetSpend: + s := proto.Size(x.TargetSpend) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +func init() { + proto.RegisterType((*BiddingStrategy)(nil), "google.ads.googleads.v0.resources.BiddingStrategy") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/bidding_strategy.proto", fileDescriptor_bidding_strategy_d0682b5c71f925fb) +} + +var fileDescriptor_bidding_strategy_d0682b5c71f925fb = []byte{ + // 554 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x94, 0xd1, 0x6e, 0xd3, 0x3c, + 0x14, 0xc7, 0x9b, 0x6e, 0xdf, 0xbe, 0xd5, 0x2d, 0x4c, 0x44, 0xbb, 0x88, 0x06, 0x42, 0x1d, 0x08, + 0xa9, 0x30, 0xe4, 0x54, 0x05, 0x21, 0x10, 0x57, 0xed, 0x34, 0xad, 0x54, 0x82, 0x55, 0xe9, 0xd4, + 0x0b, 0x54, 0x88, 0xdc, 0xe4, 0xcc, 0x8d, 0x68, 0x6c, 0xcb, 0x76, 0x86, 0xfa, 0x00, 0xbc, 0x08, + 0x97, 0x3c, 0x0a, 0x6f, 0xc0, 0xdb, 0xa0, 0x38, 0x4e, 0x27, 0x56, 0x4a, 0x7b, 0x77, 0xce, 0xe9, + 0xff, 0xff, 0xf3, 0x39, 0x39, 0x76, 0xd1, 0x6b, 0xca, 0x39, 0x9d, 0x83, 0x4f, 0x62, 0xe5, 0x17, + 0x61, 0x1e, 0x5d, 0xb7, 0x7d, 0x09, 0x8a, 0x67, 0x32, 0x02, 0xe5, 0x4f, 0x93, 0x38, 0x4e, 0x18, + 0x0d, 0x95, 0x96, 0x44, 0x03, 0x5d, 0x60, 0x21, 0xb9, 0xe6, 0xee, 0x71, 0x21, 0xc7, 0x24, 0x56, + 0x78, 0xe9, 0xc4, 0xd7, 0x6d, 0xbc, 0x74, 0x1e, 0x3d, 0x5f, 0x07, 0x8f, 0x78, 0x9a, 0x72, 0x56, + 0x92, 0x0b, 0xe0, 0xd1, 0x9b, 0x75, 0x6a, 0x60, 0x59, 0xba, 0xda, 0x46, 0xa8, 0x17, 0x02, 0xac, + 0xf5, 0xa1, 0xb5, 0x9a, 0x6c, 0x9a, 0x5d, 0xf9, 0x5f, 0x25, 0x11, 0x02, 0xa4, 0x2a, 0x7e, 0x7f, + 0xf4, 0x6d, 0x0f, 0x1d, 0xf4, 0x0a, 0xff, 0xc8, 0xda, 0xdd, 0xc7, 0xe8, 0x4e, 0xd9, 0x69, 0xc8, + 0x48, 0x0a, 0x9e, 0xd3, 0x74, 0x5a, 0xb5, 0xa0, 0x51, 0x16, 0x3f, 0x90, 0x14, 0xdc, 0x13, 0x54, + 0x4d, 0x62, 0x6f, 0xa7, 0xe9, 0xb4, 0xea, 0x9d, 0xfb, 0x76, 0x4c, 0x5c, 0x9e, 0x82, 0xdf, 0x31, + 0xfd, 0xea, 0xe5, 0x98, 0xcc, 0x33, 0x08, 0xaa, 0x49, 0xec, 0xb6, 0xd1, 0xae, 0x01, 0xed, 0x1a, + 0xf9, 0x83, 0x15, 0xf9, 0x48, 0xcb, 0x84, 0xd1, 0x42, 0x6f, 0x94, 0xee, 0x67, 0xb4, 0x9b, 0x4f, + 0xe1, 0xfd, 0xd7, 0x74, 0x5a, 0x77, 0x3b, 0x03, 0xbc, 0xee, 0x93, 0x9a, 0x2f, 0x80, 0x6f, 0x4d, + 0x70, 0xb9, 0x10, 0x70, 0xc6, 0xb2, 0xf4, 0x6f, 0xf5, 0xc0, 0x70, 0xdd, 0x21, 0x6a, 0x00, 0x9b, + 0x11, 0x16, 0x41, 0x1c, 0x46, 0x22, 0xf2, 0xfe, 0x37, 0x9d, 0x9d, 0xac, 0x3d, 0xa7, 0xd8, 0x0b, + 0x3e, 0xb3, 0x9e, 0x53, 0x11, 0xf5, 0x2b, 0x41, 0x1d, 0x6e, 0x52, 0xf7, 0x13, 0xba, 0x27, 0x08, + 0x85, 0x90, 0x33, 0x08, 0x85, 0xe4, 0x29, 0xd7, 0x10, 0x7b, 0xfb, 0x06, 0xeb, 0x6f, 0xc2, 0x0e, + 0x09, 0x85, 0x0b, 0x06, 0x43, 0x6b, 0xeb, 0x57, 0x82, 0x03, 0xf1, 0x67, 0xc9, 0x1d, 0x20, 0xa4, + 0x89, 0xa4, 0xa0, 0xc3, 0x48, 0x10, 0xaf, 0x66, 0xb8, 0x4f, 0x37, 0x71, 0x2f, 0x8d, 0xe3, 0x54, + 0x90, 0x7e, 0x25, 0xa8, 0xe9, 0x32, 0x71, 0xaf, 0xd0, 0xa1, 0x65, 0xf1, 0x4c, 0x4b, 0xc2, 0xbe, + 0x84, 0x6a, 0x46, 0x24, 0x78, 0xc8, 0x50, 0x3b, 0xdb, 0x51, 0x2f, 0x0a, 0xeb, 0x28, 0x77, 0xf6, + 0x2b, 0x81, 0xab, 0x57, 0xaa, 0xee, 0x7b, 0x54, 0xb7, 0xe7, 0x48, 0x4e, 0x94, 0x57, 0x37, 0xf8, + 0x67, 0xdb, 0xe1, 0x03, 0x4e, 0x54, 0xbf, 0x12, 0xd8, 0xa1, 0xf3, 0x2c, 0xdf, 0x99, 0xc5, 0x29, + 0x01, 0x2c, 0xf6, 0x1a, 0xdb, 0xed, 0xac, 0xe0, 0x8d, 0x72, 0x4b, 0xbe, 0x33, 0x7d, 0x93, 0xf6, + 0xf6, 0xd1, 0x9e, 0x8a, 0x66, 0x90, 0x42, 0xef, 0x97, 0x83, 0x9e, 0x44, 0x3c, 0xc5, 0x1b, 0x9f, + 0x6e, 0xef, 0xf0, 0xd6, 0xa5, 0x1a, 0xe6, 0x97, 0x78, 0xe8, 0x7c, 0x1c, 0x58, 0x2b, 0xe5, 0x73, + 0xc2, 0x28, 0xe6, 0x92, 0xfa, 0x14, 0x98, 0xb9, 0xe2, 0xe5, 0xa3, 0x15, 0x89, 0xfa, 0xc7, 0xdf, + 0xc9, 0xdb, 0x65, 0xf4, 0xbd, 0xba, 0x73, 0xde, 0xed, 0xfe, 0xa8, 0x1e, 0x9f, 0x17, 0xc8, 0x6e, + 0xac, 0x70, 0x11, 0xe6, 0xd1, 0xb8, 0x8d, 0x83, 0x52, 0xf9, 0xb3, 0xd4, 0x4c, 0xba, 0xb1, 0x9a, + 0x2c, 0x35, 0x93, 0x71, 0x7b, 0xb2, 0xd4, 0x4c, 0xf7, 0x4c, 0x13, 0x2f, 0x7e, 0x07, 0x00, 0x00, + 0xff, 0xff, 0x20, 0x42, 0x14, 0xed, 0xd2, 0x04, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/billing_setup.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/billing_setup.pb.go new file mode 100644 index 000000000..039f52f0e --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/billing_setup.pb.go @@ -0,0 +1,460 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/billing_setup.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A billing setup across Ads and Payments systems; an association between a +// Payments account and an advertiser. A billing setup is specific to one +// advertiser. +type BillingSetup struct { + // The resource name of the billing setup. + // BillingSetup resource names have the form: + // + // `customers/{customer_id}/billingSetups/{billing_setup_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + // The ID of the billing setup. + Id *wrappers.Int64Value `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` + // The status of the billing setup. + Status enums.BillingSetupStatusEnum_BillingSetupStatus `protobuf:"varint,3,opt,name=status,proto3,enum=google.ads.googleads.v0.enums.BillingSetupStatusEnum_BillingSetupStatus" json:"status,omitempty"` + // The resource name of the Payments account associated with this billing + // setup. Payments resource names have the form: + // + // `customers/{customer_id}/paymentsAccounts/ + // {payments_profile_id}_{payments_account_id}` + // When setting up billing, this is used to signup with an existing Payments + // account (and then payments_account_info should not be set). + // When getting a billing setup, this and payments_account_info will be + // populated. + PaymentsAccount *wrappers.StringValue `protobuf:"bytes,11,opt,name=payments_account,json=paymentsAccount,proto3" json:"payments_account,omitempty"` + // The Payments account information associated with this billing setup. + // When setting up billing, this is used to signup with a new Payments account + // (and then payments_account should not be set). + // When getting a billing setup, this and payments_account will be + // populated. + PaymentsAccountInfo *BillingSetup_PaymentsAccountInfo `protobuf:"bytes,12,opt,name=payments_account_info,json=paymentsAccountInfo,proto3" json:"payments_account_info,omitempty"` + // When creating a new billing setup, this is when the setup should take + // effect. NOW is the only acceptable start time if the customer doesn't have + // any approved setups. + // + // When fetching an existing billing setup, this is the requested start time. + // However, if the setup was approved (see status) after the requested start + // time, then this is the approval time. + // + // Types that are valid to be assigned to StartTime: + // *BillingSetup_StartDateTime + // *BillingSetup_StartTimeType + StartTime isBillingSetup_StartTime `protobuf_oneof:"start_time"` + // When the billing setup ends / ended. This is either FOREVER or the start + // time of the next scheduled billing setup. + // + // Types that are valid to be assigned to EndTime: + // *BillingSetup_EndDateTime + // *BillingSetup_EndTimeType + EndTime isBillingSetup_EndTime `protobuf_oneof:"end_time"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BillingSetup) Reset() { *m = BillingSetup{} } +func (m *BillingSetup) String() string { return proto.CompactTextString(m) } +func (*BillingSetup) ProtoMessage() {} +func (*BillingSetup) Descriptor() ([]byte, []int) { + return fileDescriptor_billing_setup_4fe3af0a77df0755, []int{0} +} +func (m *BillingSetup) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BillingSetup.Unmarshal(m, b) +} +func (m *BillingSetup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BillingSetup.Marshal(b, m, deterministic) +} +func (dst *BillingSetup) XXX_Merge(src proto.Message) { + xxx_messageInfo_BillingSetup.Merge(dst, src) +} +func (m *BillingSetup) XXX_Size() int { + return xxx_messageInfo_BillingSetup.Size(m) +} +func (m *BillingSetup) XXX_DiscardUnknown() { + xxx_messageInfo_BillingSetup.DiscardUnknown(m) +} + +var xxx_messageInfo_BillingSetup proto.InternalMessageInfo + +func (m *BillingSetup) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func (m *BillingSetup) GetId() *wrappers.Int64Value { + if m != nil { + return m.Id + } + return nil +} + +func (m *BillingSetup) GetStatus() enums.BillingSetupStatusEnum_BillingSetupStatus { + if m != nil { + return m.Status + } + return enums.BillingSetupStatusEnum_UNSPECIFIED +} + +func (m *BillingSetup) GetPaymentsAccount() *wrappers.StringValue { + if m != nil { + return m.PaymentsAccount + } + return nil +} + +func (m *BillingSetup) GetPaymentsAccountInfo() *BillingSetup_PaymentsAccountInfo { + if m != nil { + return m.PaymentsAccountInfo + } + return nil +} + +type isBillingSetup_StartTime interface { + isBillingSetup_StartTime() +} + +type BillingSetup_StartDateTime struct { + StartDateTime *wrappers.StringValue `protobuf:"bytes,9,opt,name=start_date_time,json=startDateTime,proto3,oneof"` +} + +type BillingSetup_StartTimeType struct { + StartTimeType enums.TimeTypeEnum_TimeType `protobuf:"varint,10,opt,name=start_time_type,json=startTimeType,proto3,enum=google.ads.googleads.v0.enums.TimeTypeEnum_TimeType,oneof"` +} + +func (*BillingSetup_StartDateTime) isBillingSetup_StartTime() {} + +func (*BillingSetup_StartTimeType) isBillingSetup_StartTime() {} + +func (m *BillingSetup) GetStartTime() isBillingSetup_StartTime { + if m != nil { + return m.StartTime + } + return nil +} + +func (m *BillingSetup) GetStartDateTime() *wrappers.StringValue { + if x, ok := m.GetStartTime().(*BillingSetup_StartDateTime); ok { + return x.StartDateTime + } + return nil +} + +func (m *BillingSetup) GetStartTimeType() enums.TimeTypeEnum_TimeType { + if x, ok := m.GetStartTime().(*BillingSetup_StartTimeType); ok { + return x.StartTimeType + } + return enums.TimeTypeEnum_UNSPECIFIED +} + +type isBillingSetup_EndTime interface { + isBillingSetup_EndTime() +} + +type BillingSetup_EndDateTime struct { + EndDateTime *wrappers.StringValue `protobuf:"bytes,13,opt,name=end_date_time,json=endDateTime,proto3,oneof"` +} + +type BillingSetup_EndTimeType struct { + EndTimeType enums.TimeTypeEnum_TimeType `protobuf:"varint,14,opt,name=end_time_type,json=endTimeType,proto3,enum=google.ads.googleads.v0.enums.TimeTypeEnum_TimeType,oneof"` +} + +func (*BillingSetup_EndDateTime) isBillingSetup_EndTime() {} + +func (*BillingSetup_EndTimeType) isBillingSetup_EndTime() {} + +func (m *BillingSetup) GetEndTime() isBillingSetup_EndTime { + if m != nil { + return m.EndTime + } + return nil +} + +func (m *BillingSetup) GetEndDateTime() *wrappers.StringValue { + if x, ok := m.GetEndTime().(*BillingSetup_EndDateTime); ok { + return x.EndDateTime + } + return nil +} + +func (m *BillingSetup) GetEndTimeType() enums.TimeTypeEnum_TimeType { + if x, ok := m.GetEndTime().(*BillingSetup_EndTimeType); ok { + return x.EndTimeType + } + return enums.TimeTypeEnum_UNSPECIFIED +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*BillingSetup) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _BillingSetup_OneofMarshaler, _BillingSetup_OneofUnmarshaler, _BillingSetup_OneofSizer, []interface{}{ + (*BillingSetup_StartDateTime)(nil), + (*BillingSetup_StartTimeType)(nil), + (*BillingSetup_EndDateTime)(nil), + (*BillingSetup_EndTimeType)(nil), + } +} + +func _BillingSetup_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*BillingSetup) + // start_time + switch x := m.StartTime.(type) { + case *BillingSetup_StartDateTime: + b.EncodeVarint(9<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.StartDateTime); err != nil { + return err + } + case *BillingSetup_StartTimeType: + b.EncodeVarint(10<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.StartTimeType)) + case nil: + default: + return fmt.Errorf("BillingSetup.StartTime has unexpected type %T", x) + } + // end_time + switch x := m.EndTime.(type) { + case *BillingSetup_EndDateTime: + b.EncodeVarint(13<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.EndDateTime); err != nil { + return err + } + case *BillingSetup_EndTimeType: + b.EncodeVarint(14<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.EndTimeType)) + case nil: + default: + return fmt.Errorf("BillingSetup.EndTime has unexpected type %T", x) + } + return nil +} + +func _BillingSetup_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*BillingSetup) + switch tag { + case 9: // start_time.start_date_time + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(wrappers.StringValue) + err := b.DecodeMessage(msg) + m.StartTime = &BillingSetup_StartDateTime{msg} + return true, err + case 10: // start_time.start_time_type + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.StartTime = &BillingSetup_StartTimeType{enums.TimeTypeEnum_TimeType(x)} + return true, err + case 13: // end_time.end_date_time + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(wrappers.StringValue) + err := b.DecodeMessage(msg) + m.EndTime = &BillingSetup_EndDateTime{msg} + return true, err + case 14: // end_time.end_time_type + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.EndTime = &BillingSetup_EndTimeType{enums.TimeTypeEnum_TimeType(x)} + return true, err + default: + return false, nil + } +} + +func _BillingSetup_OneofSizer(msg proto.Message) (n int) { + m := msg.(*BillingSetup) + // start_time + switch x := m.StartTime.(type) { + case *BillingSetup_StartDateTime: + s := proto.Size(x.StartDateTime) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *BillingSetup_StartTimeType: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(x.StartTimeType)) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + // end_time + switch x := m.EndTime.(type) { + case *BillingSetup_EndDateTime: + s := proto.Size(x.EndDateTime) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *BillingSetup_EndTimeType: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(x.EndTimeType)) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// Container of Payments account information for this billing. +type BillingSetup_PaymentsAccountInfo struct { + // A 16 digit id used to identify the Payments account associated with the + // billing setup. + // + // This must be passed as a string with dashes, e.g. "1234-5678-9012-3456". + PaymentsAccountId *wrappers.StringValue `protobuf:"bytes,1,opt,name=payments_account_id,json=paymentsAccountId,proto3" json:"payments_account_id,omitempty"` + // The name of the Payments account associated with the billing setup. + // + // This enables the user to specify a meaningful name for a Payments account + // to aid in reconciling monthly invoices. + // + // This name will be printed in the monthly invoices. + PaymentsAccountName *wrappers.StringValue `protobuf:"bytes,2,opt,name=payments_account_name,json=paymentsAccountName,proto3" json:"payments_account_name,omitempty"` + // A 12 digit id used to identify the Payments profile associated with the + // billing setup. + // + // This must be passed in as a string with dashes, e.g. "1234-5678-9012". + PaymentsProfileId *wrappers.StringValue `protobuf:"bytes,3,opt,name=payments_profile_id,json=paymentsProfileId,proto3" json:"payments_profile_id,omitempty"` + // The name of the Payments profile associated with the billing setup. + PaymentsProfileName *wrappers.StringValue `protobuf:"bytes,4,opt,name=payments_profile_name,json=paymentsProfileName,proto3" json:"payments_profile_name,omitempty"` + // A secondary payments profile id present in uncommon situations, e.g. + // when a sequential liability agreement has been arranged. + SecondaryPaymentsProfileId *wrappers.StringValue `protobuf:"bytes,5,opt,name=secondary_payments_profile_id,json=secondaryPaymentsProfileId,proto3" json:"secondary_payments_profile_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BillingSetup_PaymentsAccountInfo) Reset() { *m = BillingSetup_PaymentsAccountInfo{} } +func (m *BillingSetup_PaymentsAccountInfo) String() string { return proto.CompactTextString(m) } +func (*BillingSetup_PaymentsAccountInfo) ProtoMessage() {} +func (*BillingSetup_PaymentsAccountInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_billing_setup_4fe3af0a77df0755, []int{0, 0} +} +func (m *BillingSetup_PaymentsAccountInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BillingSetup_PaymentsAccountInfo.Unmarshal(m, b) +} +func (m *BillingSetup_PaymentsAccountInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BillingSetup_PaymentsAccountInfo.Marshal(b, m, deterministic) +} +func (dst *BillingSetup_PaymentsAccountInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_BillingSetup_PaymentsAccountInfo.Merge(dst, src) +} +func (m *BillingSetup_PaymentsAccountInfo) XXX_Size() int { + return xxx_messageInfo_BillingSetup_PaymentsAccountInfo.Size(m) +} +func (m *BillingSetup_PaymentsAccountInfo) XXX_DiscardUnknown() { + xxx_messageInfo_BillingSetup_PaymentsAccountInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_BillingSetup_PaymentsAccountInfo proto.InternalMessageInfo + +func (m *BillingSetup_PaymentsAccountInfo) GetPaymentsAccountId() *wrappers.StringValue { + if m != nil { + return m.PaymentsAccountId + } + return nil +} + +func (m *BillingSetup_PaymentsAccountInfo) GetPaymentsAccountName() *wrappers.StringValue { + if m != nil { + return m.PaymentsAccountName + } + return nil +} + +func (m *BillingSetup_PaymentsAccountInfo) GetPaymentsProfileId() *wrappers.StringValue { + if m != nil { + return m.PaymentsProfileId + } + return nil +} + +func (m *BillingSetup_PaymentsAccountInfo) GetPaymentsProfileName() *wrappers.StringValue { + if m != nil { + return m.PaymentsProfileName + } + return nil +} + +func (m *BillingSetup_PaymentsAccountInfo) GetSecondaryPaymentsProfileId() *wrappers.StringValue { + if m != nil { + return m.SecondaryPaymentsProfileId + } + return nil +} + +func init() { + proto.RegisterType((*BillingSetup)(nil), "google.ads.googleads.v0.resources.BillingSetup") + proto.RegisterType((*BillingSetup_PaymentsAccountInfo)(nil), "google.ads.googleads.v0.resources.BillingSetup.PaymentsAccountInfo") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/billing_setup.proto", fileDescriptor_billing_setup_4fe3af0a77df0755) +} + +var fileDescriptor_billing_setup_4fe3af0a77df0755 = []byte{ + // 599 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x94, 0xdf, 0x6a, 0xdb, 0x3e, + 0x14, 0xc7, 0x7f, 0x76, 0x7e, 0x2b, 0xab, 0x9a, 0xb4, 0xab, 0xcb, 0xc0, 0x64, 0x7f, 0x68, 0x37, + 0x06, 0x81, 0x31, 0x39, 0x74, 0xdd, 0x18, 0xec, 0x2a, 0xde, 0x9f, 0xb4, 0x63, 0x0c, 0xe3, 0x94, + 0x5c, 0x94, 0x30, 0x4f, 0x89, 0x14, 0x63, 0xb0, 0x25, 0x63, 0xc9, 0x2d, 0x79, 0x9a, 0xc1, 0x2e, + 0xf7, 0x00, 0x7b, 0x88, 0x3d, 0xc0, 0x9e, 0x67, 0x58, 0xb2, 0xdc, 0xd4, 0x49, 0x9b, 0x94, 0xdd, + 0x1d, 0x89, 0xf3, 0xfd, 0xea, 0xa3, 0x73, 0x8e, 0x04, 0x5e, 0x85, 0x8c, 0x85, 0x31, 0x71, 0x10, + 0xe6, 0x8e, 0x0a, 0x8b, 0xe8, 0xbc, 0xeb, 0x64, 0x84, 0xb3, 0x3c, 0x9b, 0x10, 0xee, 0x8c, 0xa3, + 0x38, 0x8e, 0x68, 0x18, 0x70, 0x22, 0xf2, 0x14, 0xa6, 0x19, 0x13, 0xcc, 0x3a, 0x50, 0xb9, 0x10, + 0x61, 0x0e, 0x2b, 0x19, 0x3c, 0xef, 0xc2, 0x4a, 0xd6, 0x7e, 0x73, 0x9d, 0x33, 0xa1, 0x79, 0x52, + 0x73, 0x0d, 0xb8, 0x40, 0x22, 0xe7, 0xca, 0xbc, 0xfd, 0xe2, 0x66, 0xa5, 0x88, 0x12, 0x12, 0x88, + 0x59, 0x4a, 0xca, 0xf4, 0xc7, 0x65, 0xba, 0x5c, 0x8d, 0xf3, 0xa9, 0x73, 0x91, 0xa1, 0x34, 0x25, + 0x59, 0x69, 0xf7, 0xe4, 0xfb, 0x26, 0x68, 0xba, 0xea, 0xb4, 0x41, 0x71, 0x98, 0xf5, 0x14, 0xb4, + 0x34, 0x66, 0x40, 0x51, 0x42, 0x6c, 0x63, 0xdf, 0xe8, 0x6c, 0xfa, 0x4d, 0xbd, 0xf9, 0x05, 0x25, + 0xc4, 0x7a, 0x0e, 0xcc, 0x08, 0xdb, 0xe6, 0xbe, 0xd1, 0xd9, 0x3a, 0x7c, 0x50, 0xde, 0x11, 0xea, + 0x23, 0xe0, 0x09, 0x15, 0xaf, 0x8f, 0x86, 0x28, 0xce, 0x89, 0x6f, 0x46, 0xd8, 0xfa, 0x06, 0x36, + 0xd4, 0x0d, 0xec, 0xc6, 0xbe, 0xd1, 0xd9, 0x3e, 0x3c, 0x86, 0xd7, 0xd5, 0x47, 0x5e, 0x01, 0xce, + 0xe3, 0x0c, 0xa4, 0xf0, 0x03, 0xcd, 0x93, 0x25, 0xdb, 0x7e, 0xe9, 0x6b, 0xf5, 0xc1, 0xbd, 0x14, + 0xcd, 0x12, 0x42, 0x05, 0x0f, 0xd0, 0x64, 0xc2, 0x72, 0x2a, 0xec, 0x2d, 0x09, 0xf7, 0x70, 0x01, + 0x6e, 0x20, 0xb2, 0x88, 0x86, 0x8a, 0x6e, 0x47, 0xab, 0x7a, 0x4a, 0x64, 0x5d, 0x80, 0xfb, 0x75, + 0xa3, 0x20, 0xa2, 0x53, 0x66, 0x37, 0xa5, 0xdb, 0x3b, 0xb8, 0xb2, 0xb3, 0x57, 0x30, 0xa1, 0x77, + 0xd5, 0xff, 0x84, 0x4e, 0x99, 0xbf, 0x97, 0x2e, 0x6e, 0x5a, 0x1f, 0xc1, 0x0e, 0x17, 0x28, 0x13, + 0x01, 0x46, 0x82, 0x04, 0x45, 0x13, 0xed, 0xcd, 0xd5, 0x17, 0x38, 0xfe, 0xcf, 0x6f, 0x49, 0xd9, + 0x7b, 0x24, 0xc8, 0x69, 0x94, 0x10, 0xeb, 0xab, 0xf6, 0xa9, 0xe6, 0xc0, 0x06, 0xb2, 0xe8, 0x47, + 0x2b, 0x8a, 0x5e, 0xa8, 0x4f, 0x67, 0x29, 0x91, 0xa5, 0xd6, 0x8b, 0xca, 0x5f, 0x6f, 0x58, 0x2e, + 0x68, 0x11, 0x8a, 0xe7, 0x28, 0x5b, 0x6b, 0x50, 0x1a, 0xfe, 0x16, 0xa1, 0xb8, 0x62, 0x3c, 0x53, + 0x1e, 0x97, 0x84, 0xdb, 0xff, 0x40, 0xa8, 0xbc, 0xf5, 0xb2, 0xfd, 0xab, 0x01, 0xf6, 0x96, 0x14, + 0xdd, 0xfa, 0x0c, 0xf6, 0x16, 0x1b, 0x8b, 0xe5, 0x6c, 0xaf, 0x1a, 0x92, 0xdd, 0x7a, 0xbf, 0xb0, + 0xe5, 0x2d, 0x19, 0x13, 0xf9, 0x56, 0xcc, 0x35, 0xfc, 0xea, 0xfd, 0x97, 0x0f, 0x6a, 0x9e, 0x2f, + 0xcd, 0xd8, 0x34, 0x8a, 0x49, 0xc1, 0xd7, 0xb8, 0x0d, 0x9f, 0xa7, 0x74, 0x35, 0x3e, 0xed, 0x26, + 0xf9, 0xfe, 0xbf, 0x0d, 0x5f, 0xe9, 0x27, 0xf9, 0x02, 0xf0, 0x88, 0x93, 0x09, 0xa3, 0x18, 0x65, + 0xb3, 0x60, 0x19, 0xe9, 0x9d, 0x35, 0x9c, 0xdb, 0x95, 0x85, 0x57, 0x47, 0x76, 0x9b, 0x00, 0x5c, + 0x0e, 0xae, 0x0b, 0xc0, 0x5d, 0x3d, 0x22, 0xee, 0x1f, 0x03, 0x3c, 0x9b, 0xb0, 0x64, 0xf5, 0xd3, + 0x73, 0x77, 0xe7, 0xdf, 0x9e, 0x57, 0x10, 0x78, 0xc6, 0xd9, 0xa7, 0x52, 0x17, 0xb2, 0x18, 0xd1, + 0x10, 0xb2, 0x2c, 0x74, 0x42, 0x42, 0x25, 0x9f, 0xfe, 0x3f, 0xd3, 0x88, 0xdf, 0xf0, 0xc5, 0xbf, + 0xad, 0xa2, 0x1f, 0x66, 0xa3, 0xdf, 0xeb, 0xfd, 0x34, 0x0f, 0xfa, 0xca, 0xb2, 0x87, 0x39, 0x54, + 0x61, 0x11, 0x0d, 0xbb, 0xd0, 0xd7, 0x99, 0xbf, 0x75, 0xce, 0xa8, 0x87, 0xf9, 0xa8, 0xca, 0x19, + 0x0d, 0xbb, 0xa3, 0x2a, 0x67, 0xbc, 0x21, 0x21, 0x5e, 0xfe, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x51, + 0x82, 0x16, 0x94, 0x66, 0x06, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/campaign.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/campaign.pb.go new file mode 100644 index 000000000..fe1dc851d --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/campaign.pb.go @@ -0,0 +1,1039 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/campaign.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import common "google.golang.org/genproto/googleapis/ads/googleads/v0/common" +import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A campaign. +type Campaign struct { + // The resource name of the campaign. + // Campaign resource names have the form: + // + // `customers/{customer_id}/campaigns/{campaign_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + // The ID of the campaign. + Id *wrappers.Int64Value `protobuf:"bytes,3,opt,name=id,proto3" json:"id,omitempty"` + // The name of the campaign. + // + // This field is required and should not be empty when creating new + // campaigns. + // + // It must not contain any null (code point 0x0), NL line feed + // (code point 0xA) or carriage return (code point 0xD) characters. + Name *wrappers.StringValue `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + // The status of the campaign. + // + // When a new campaign is added, the status defaults to ENABLED. + Status enums.CampaignStatusEnum_CampaignStatus `protobuf:"varint,5,opt,name=status,proto3,enum=google.ads.googleads.v0.enums.CampaignStatusEnum_CampaignStatus" json:"status,omitempty"` + // The ad serving status of the campaign. + ServingStatus enums.CampaignServingStatusEnum_CampaignServingStatus `protobuf:"varint,21,opt,name=serving_status,json=servingStatus,proto3,enum=google.ads.googleads.v0.enums.CampaignServingStatusEnum_CampaignServingStatus" json:"serving_status,omitempty"` + // The ad serving optimization status of the campaign. + AdServingOptimizationStatus enums.AdServingOptimizationStatusEnum_AdServingOptimizationStatus `protobuf:"varint,8,opt,name=ad_serving_optimization_status,json=adServingOptimizationStatus,proto3,enum=google.ads.googleads.v0.enums.AdServingOptimizationStatusEnum_AdServingOptimizationStatus" json:"ad_serving_optimization_status,omitempty"` + // The primary serving target for ads within the campaign. + // The targeting options can be refined in `network_settings`. + // + // This field is required and should not be empty when creating new + // campaigns. + // + // Can be set only when creating campaigns. + // After the campaign is created, the field can not be changed. + AdvertisingChannelType enums.AdvertisingChannelTypeEnum_AdvertisingChannelType `protobuf:"varint,9,opt,name=advertising_channel_type,json=advertisingChannelType,proto3,enum=google.ads.googleads.v0.enums.AdvertisingChannelTypeEnum_AdvertisingChannelType" json:"advertising_channel_type,omitempty"` + // Optional refinement to `advertising_channel_type`. + // Must be a valid sub-type of the parent channel type. + // + // Can be set only when creating campaigns. + // After campaign is created, the field can not be changed. + AdvertisingChannelSubType enums.AdvertisingChannelSubTypeEnum_AdvertisingChannelSubType `protobuf:"varint,10,opt,name=advertising_channel_sub_type,json=advertisingChannelSubType,proto3,enum=google.ads.googleads.v0.enums.AdvertisingChannelSubTypeEnum_AdvertisingChannelSubType" json:"advertising_channel_sub_type,omitempty"` + // The URL template for constructing a tracking URL. + TrackingUrlTemplate *wrappers.StringValue `protobuf:"bytes,11,opt,name=tracking_url_template,json=trackingUrlTemplate,proto3" json:"tracking_url_template,omitempty"` + // The list of mappings used to substitute custom parameter tags in a + // `tracking_url_template`, `final_urls`, or `mobile_final_urls`. + UrlCustomParameters []*common.CustomParameter `protobuf:"bytes,12,rep,name=url_custom_parameters,json=urlCustomParameters,proto3" json:"url_custom_parameters,omitempty"` + // Settings for Real-Time Bidding, a feature only available for campaigns + // targeting the Ad Exchange network. + RealTimeBiddingSetting *common.RealTimeBiddingSetting `protobuf:"bytes,39,opt,name=real_time_bidding_setting,json=realTimeBiddingSetting,proto3" json:"real_time_bidding_setting,omitempty"` + // The network settings for the campaign. + NetworkSettings *Campaign_NetworkSettings `protobuf:"bytes,14,opt,name=network_settings,json=networkSettings,proto3" json:"network_settings,omitempty"` + // The hotel setting for the campaign. + HotelSetting *Campaign_HotelSettingInfo `protobuf:"bytes,32,opt,name=hotel_setting,json=hotelSetting,proto3" json:"hotel_setting,omitempty"` + // The setting for controlling Dynamic Search Ads (DSA). + DynamicSearchAdsSetting *Campaign_DynamicSearchAdsSetting `protobuf:"bytes,33,opt,name=dynamic_search_ads_setting,json=dynamicSearchAdsSetting,proto3" json:"dynamic_search_ads_setting,omitempty"` + // The setting for controlling Shopping campaigns. + ShoppingSetting *Campaign_ShoppingSetting `protobuf:"bytes,36,opt,name=shopping_setting,json=shoppingSetting,proto3" json:"shopping_setting,omitempty"` + // The budget of the campaign. + CampaignBudget *wrappers.StringValue `protobuf:"bytes,6,opt,name=campaign_budget,json=campaignBudget,proto3" json:"campaign_budget,omitempty"` + // The type of bidding strategy. + // + // A bidding strategy can be created by setting either the bidding scheme to + // create a standard bidding strategy or the `bidding_strategy` field to + // create a portfolio bidding strategy. + // + // This field is read-only. + BiddingStrategyType enums.BiddingStrategyTypeEnum_BiddingStrategyType `protobuf:"varint,22,opt,name=bidding_strategy_type,json=biddingStrategyType,proto3,enum=google.ads.googleads.v0.enums.BiddingStrategyTypeEnum_BiddingStrategyType" json:"bidding_strategy_type,omitempty"` + // The date when campaign started. + // + // This field must not be used in WHERE clauses. + StartDate *wrappers.StringValue `protobuf:"bytes,19,opt,name=start_date,json=startDate,proto3" json:"start_date,omitempty"` + // The campaign group this campaign belongs to. + CampaignGroup *wrappers.StringValue `protobuf:"bytes,35,opt,name=campaign_group,json=campaignGroup,proto3" json:"campaign_group,omitempty"` + // The date when campaign ended. + // + // This field must not be used in WHERE clauses. + EndDate *wrappers.StringValue `protobuf:"bytes,20,opt,name=end_date,json=endDate,proto3" json:"end_date,omitempty"` + // Suffix used to append query parameters to landing pages that are served + // with parallel tracking. + FinalUrlSuffix *wrappers.StringValue `protobuf:"bytes,38,opt,name=final_url_suffix,json=finalUrlSuffix,proto3" json:"final_url_suffix,omitempty"` + // A list that limits how often each user will see this campaign's ads. + FrequencyCaps []*common.FrequencyCapEntry `protobuf:"bytes,40,rep,name=frequency_caps,json=frequencyCaps,proto3" json:"frequency_caps,omitempty"` + // The bidding strategy for the campaign. + // + // Must be either portfolio (created via BiddingStrategy service) or + // standard, that is embedded into the campaign. + // + // Types that are valid to be assigned to CampaignBiddingStrategy: + // *Campaign_BiddingStrategy + // *Campaign_ManualCpc + // *Campaign_ManualCpm + // *Campaign_ManualCpv + // *Campaign_MaximizeConversions + // *Campaign_MaximizeConversionValue + // *Campaign_TargetCpa + // *Campaign_TargetRoas + // *Campaign_TargetSpend + // *Campaign_PercentCpc + CampaignBiddingStrategy isCampaign_CampaignBiddingStrategy `protobuf_oneof:"campaign_bidding_strategy"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Campaign) Reset() { *m = Campaign{} } +func (m *Campaign) String() string { return proto.CompactTextString(m) } +func (*Campaign) ProtoMessage() {} +func (*Campaign) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_153eb7de4e2bcd72, []int{0} +} +func (m *Campaign) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Campaign.Unmarshal(m, b) +} +func (m *Campaign) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Campaign.Marshal(b, m, deterministic) +} +func (dst *Campaign) XXX_Merge(src proto.Message) { + xxx_messageInfo_Campaign.Merge(dst, src) +} +func (m *Campaign) XXX_Size() int { + return xxx_messageInfo_Campaign.Size(m) +} +func (m *Campaign) XXX_DiscardUnknown() { + xxx_messageInfo_Campaign.DiscardUnknown(m) +} + +var xxx_messageInfo_Campaign proto.InternalMessageInfo + +func (m *Campaign) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func (m *Campaign) GetId() *wrappers.Int64Value { + if m != nil { + return m.Id + } + return nil +} + +func (m *Campaign) GetName() *wrappers.StringValue { + if m != nil { + return m.Name + } + return nil +} + +func (m *Campaign) GetStatus() enums.CampaignStatusEnum_CampaignStatus { + if m != nil { + return m.Status + } + return enums.CampaignStatusEnum_UNSPECIFIED +} + +func (m *Campaign) GetServingStatus() enums.CampaignServingStatusEnum_CampaignServingStatus { + if m != nil { + return m.ServingStatus + } + return enums.CampaignServingStatusEnum_UNSPECIFIED +} + +func (m *Campaign) GetAdServingOptimizationStatus() enums.AdServingOptimizationStatusEnum_AdServingOptimizationStatus { + if m != nil { + return m.AdServingOptimizationStatus + } + return enums.AdServingOptimizationStatusEnum_UNSPECIFIED +} + +func (m *Campaign) GetAdvertisingChannelType() enums.AdvertisingChannelTypeEnum_AdvertisingChannelType { + if m != nil { + return m.AdvertisingChannelType + } + return enums.AdvertisingChannelTypeEnum_UNSPECIFIED +} + +func (m *Campaign) GetAdvertisingChannelSubType() enums.AdvertisingChannelSubTypeEnum_AdvertisingChannelSubType { + if m != nil { + return m.AdvertisingChannelSubType + } + return enums.AdvertisingChannelSubTypeEnum_UNSPECIFIED +} + +func (m *Campaign) GetTrackingUrlTemplate() *wrappers.StringValue { + if m != nil { + return m.TrackingUrlTemplate + } + return nil +} + +func (m *Campaign) GetUrlCustomParameters() []*common.CustomParameter { + if m != nil { + return m.UrlCustomParameters + } + return nil +} + +func (m *Campaign) GetRealTimeBiddingSetting() *common.RealTimeBiddingSetting { + if m != nil { + return m.RealTimeBiddingSetting + } + return nil +} + +func (m *Campaign) GetNetworkSettings() *Campaign_NetworkSettings { + if m != nil { + return m.NetworkSettings + } + return nil +} + +func (m *Campaign) GetHotelSetting() *Campaign_HotelSettingInfo { + if m != nil { + return m.HotelSetting + } + return nil +} + +func (m *Campaign) GetDynamicSearchAdsSetting() *Campaign_DynamicSearchAdsSetting { + if m != nil { + return m.DynamicSearchAdsSetting + } + return nil +} + +func (m *Campaign) GetShoppingSetting() *Campaign_ShoppingSetting { + if m != nil { + return m.ShoppingSetting + } + return nil +} + +func (m *Campaign) GetCampaignBudget() *wrappers.StringValue { + if m != nil { + return m.CampaignBudget + } + return nil +} + +func (m *Campaign) GetBiddingStrategyType() enums.BiddingStrategyTypeEnum_BiddingStrategyType { + if m != nil { + return m.BiddingStrategyType + } + return enums.BiddingStrategyTypeEnum_UNSPECIFIED +} + +func (m *Campaign) GetStartDate() *wrappers.StringValue { + if m != nil { + return m.StartDate + } + return nil +} + +func (m *Campaign) GetCampaignGroup() *wrappers.StringValue { + if m != nil { + return m.CampaignGroup + } + return nil +} + +func (m *Campaign) GetEndDate() *wrappers.StringValue { + if m != nil { + return m.EndDate + } + return nil +} + +func (m *Campaign) GetFinalUrlSuffix() *wrappers.StringValue { + if m != nil { + return m.FinalUrlSuffix + } + return nil +} + +func (m *Campaign) GetFrequencyCaps() []*common.FrequencyCapEntry { + if m != nil { + return m.FrequencyCaps + } + return nil +} + +type isCampaign_CampaignBiddingStrategy interface { + isCampaign_CampaignBiddingStrategy() +} + +type Campaign_BiddingStrategy struct { + BiddingStrategy *wrappers.StringValue `protobuf:"bytes,23,opt,name=bidding_strategy,json=biddingStrategy,proto3,oneof"` +} + +type Campaign_ManualCpc struct { + ManualCpc *common.ManualCpc `protobuf:"bytes,24,opt,name=manual_cpc,json=manualCpc,proto3,oneof"` +} + +type Campaign_ManualCpm struct { + ManualCpm *common.ManualCpm `protobuf:"bytes,25,opt,name=manual_cpm,json=manualCpm,proto3,oneof"` +} + +type Campaign_ManualCpv struct { + ManualCpv *common.ManualCpv `protobuf:"bytes,37,opt,name=manual_cpv,json=manualCpv,proto3,oneof"` +} + +type Campaign_MaximizeConversions struct { + MaximizeConversions *common.MaximizeConversions `protobuf:"bytes,30,opt,name=maximize_conversions,json=maximizeConversions,proto3,oneof"` +} + +type Campaign_MaximizeConversionValue struct { + MaximizeConversionValue *common.MaximizeConversionValue `protobuf:"bytes,31,opt,name=maximize_conversion_value,json=maximizeConversionValue,proto3,oneof"` +} + +type Campaign_TargetCpa struct { + TargetCpa *common.TargetCpa `protobuf:"bytes,26,opt,name=target_cpa,json=targetCpa,proto3,oneof"` +} + +type Campaign_TargetRoas struct { + TargetRoas *common.TargetRoas `protobuf:"bytes,29,opt,name=target_roas,json=targetRoas,proto3,oneof"` +} + +type Campaign_TargetSpend struct { + TargetSpend *common.TargetSpend `protobuf:"bytes,27,opt,name=target_spend,json=targetSpend,proto3,oneof"` +} + +type Campaign_PercentCpc struct { + PercentCpc *common.PercentCpc `protobuf:"bytes,34,opt,name=percent_cpc,json=percentCpc,proto3,oneof"` +} + +func (*Campaign_BiddingStrategy) isCampaign_CampaignBiddingStrategy() {} + +func (*Campaign_ManualCpc) isCampaign_CampaignBiddingStrategy() {} + +func (*Campaign_ManualCpm) isCampaign_CampaignBiddingStrategy() {} + +func (*Campaign_ManualCpv) isCampaign_CampaignBiddingStrategy() {} + +func (*Campaign_MaximizeConversions) isCampaign_CampaignBiddingStrategy() {} + +func (*Campaign_MaximizeConversionValue) isCampaign_CampaignBiddingStrategy() {} + +func (*Campaign_TargetCpa) isCampaign_CampaignBiddingStrategy() {} + +func (*Campaign_TargetRoas) isCampaign_CampaignBiddingStrategy() {} + +func (*Campaign_TargetSpend) isCampaign_CampaignBiddingStrategy() {} + +func (*Campaign_PercentCpc) isCampaign_CampaignBiddingStrategy() {} + +func (m *Campaign) GetCampaignBiddingStrategy() isCampaign_CampaignBiddingStrategy { + if m != nil { + return m.CampaignBiddingStrategy + } + return nil +} + +func (m *Campaign) GetBiddingStrategy() *wrappers.StringValue { + if x, ok := m.GetCampaignBiddingStrategy().(*Campaign_BiddingStrategy); ok { + return x.BiddingStrategy + } + return nil +} + +func (m *Campaign) GetManualCpc() *common.ManualCpc { + if x, ok := m.GetCampaignBiddingStrategy().(*Campaign_ManualCpc); ok { + return x.ManualCpc + } + return nil +} + +func (m *Campaign) GetManualCpm() *common.ManualCpm { + if x, ok := m.GetCampaignBiddingStrategy().(*Campaign_ManualCpm); ok { + return x.ManualCpm + } + return nil +} + +func (m *Campaign) GetManualCpv() *common.ManualCpv { + if x, ok := m.GetCampaignBiddingStrategy().(*Campaign_ManualCpv); ok { + return x.ManualCpv + } + return nil +} + +func (m *Campaign) GetMaximizeConversions() *common.MaximizeConversions { + if x, ok := m.GetCampaignBiddingStrategy().(*Campaign_MaximizeConversions); ok { + return x.MaximizeConversions + } + return nil +} + +func (m *Campaign) GetMaximizeConversionValue() *common.MaximizeConversionValue { + if x, ok := m.GetCampaignBiddingStrategy().(*Campaign_MaximizeConversionValue); ok { + return x.MaximizeConversionValue + } + return nil +} + +func (m *Campaign) GetTargetCpa() *common.TargetCpa { + if x, ok := m.GetCampaignBiddingStrategy().(*Campaign_TargetCpa); ok { + return x.TargetCpa + } + return nil +} + +func (m *Campaign) GetTargetRoas() *common.TargetRoas { + if x, ok := m.GetCampaignBiddingStrategy().(*Campaign_TargetRoas); ok { + return x.TargetRoas + } + return nil +} + +func (m *Campaign) GetTargetSpend() *common.TargetSpend { + if x, ok := m.GetCampaignBiddingStrategy().(*Campaign_TargetSpend); ok { + return x.TargetSpend + } + return nil +} + +func (m *Campaign) GetPercentCpc() *common.PercentCpc { + if x, ok := m.GetCampaignBiddingStrategy().(*Campaign_PercentCpc); ok { + return x.PercentCpc + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*Campaign) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _Campaign_OneofMarshaler, _Campaign_OneofUnmarshaler, _Campaign_OneofSizer, []interface{}{ + (*Campaign_BiddingStrategy)(nil), + (*Campaign_ManualCpc)(nil), + (*Campaign_ManualCpm)(nil), + (*Campaign_ManualCpv)(nil), + (*Campaign_MaximizeConversions)(nil), + (*Campaign_MaximizeConversionValue)(nil), + (*Campaign_TargetCpa)(nil), + (*Campaign_TargetRoas)(nil), + (*Campaign_TargetSpend)(nil), + (*Campaign_PercentCpc)(nil), + } +} + +func _Campaign_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*Campaign) + // campaign_bidding_strategy + switch x := m.CampaignBiddingStrategy.(type) { + case *Campaign_BiddingStrategy: + b.EncodeVarint(23<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.BiddingStrategy); err != nil { + return err + } + case *Campaign_ManualCpc: + b.EncodeVarint(24<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.ManualCpc); err != nil { + return err + } + case *Campaign_ManualCpm: + b.EncodeVarint(25<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.ManualCpm); err != nil { + return err + } + case *Campaign_ManualCpv: + b.EncodeVarint(37<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.ManualCpv); err != nil { + return err + } + case *Campaign_MaximizeConversions: + b.EncodeVarint(30<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.MaximizeConversions); err != nil { + return err + } + case *Campaign_MaximizeConversionValue: + b.EncodeVarint(31<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.MaximizeConversionValue); err != nil { + return err + } + case *Campaign_TargetCpa: + b.EncodeVarint(26<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.TargetCpa); err != nil { + return err + } + case *Campaign_TargetRoas: + b.EncodeVarint(29<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.TargetRoas); err != nil { + return err + } + case *Campaign_TargetSpend: + b.EncodeVarint(27<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.TargetSpend); err != nil { + return err + } + case *Campaign_PercentCpc: + b.EncodeVarint(34<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.PercentCpc); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("Campaign.CampaignBiddingStrategy has unexpected type %T", x) + } + return nil +} + +func _Campaign_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*Campaign) + switch tag { + case 23: // campaign_bidding_strategy.bidding_strategy + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(wrappers.StringValue) + err := b.DecodeMessage(msg) + m.CampaignBiddingStrategy = &Campaign_BiddingStrategy{msg} + return true, err + case 24: // campaign_bidding_strategy.manual_cpc + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.ManualCpc) + err := b.DecodeMessage(msg) + m.CampaignBiddingStrategy = &Campaign_ManualCpc{msg} + return true, err + case 25: // campaign_bidding_strategy.manual_cpm + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.ManualCpm) + err := b.DecodeMessage(msg) + m.CampaignBiddingStrategy = &Campaign_ManualCpm{msg} + return true, err + case 37: // campaign_bidding_strategy.manual_cpv + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.ManualCpv) + err := b.DecodeMessage(msg) + m.CampaignBiddingStrategy = &Campaign_ManualCpv{msg} + return true, err + case 30: // campaign_bidding_strategy.maximize_conversions + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.MaximizeConversions) + err := b.DecodeMessage(msg) + m.CampaignBiddingStrategy = &Campaign_MaximizeConversions{msg} + return true, err + case 31: // campaign_bidding_strategy.maximize_conversion_value + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.MaximizeConversionValue) + err := b.DecodeMessage(msg) + m.CampaignBiddingStrategy = &Campaign_MaximizeConversionValue{msg} + return true, err + case 26: // campaign_bidding_strategy.target_cpa + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.TargetCpa) + err := b.DecodeMessage(msg) + m.CampaignBiddingStrategy = &Campaign_TargetCpa{msg} + return true, err + case 29: // campaign_bidding_strategy.target_roas + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.TargetRoas) + err := b.DecodeMessage(msg) + m.CampaignBiddingStrategy = &Campaign_TargetRoas{msg} + return true, err + case 27: // campaign_bidding_strategy.target_spend + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.TargetSpend) + err := b.DecodeMessage(msg) + m.CampaignBiddingStrategy = &Campaign_TargetSpend{msg} + return true, err + case 34: // campaign_bidding_strategy.percent_cpc + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.PercentCpc) + err := b.DecodeMessage(msg) + m.CampaignBiddingStrategy = &Campaign_PercentCpc{msg} + return true, err + default: + return false, nil + } +} + +func _Campaign_OneofSizer(msg proto.Message) (n int) { + m := msg.(*Campaign) + // campaign_bidding_strategy + switch x := m.CampaignBiddingStrategy.(type) { + case *Campaign_BiddingStrategy: + s := proto.Size(x.BiddingStrategy) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *Campaign_ManualCpc: + s := proto.Size(x.ManualCpc) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *Campaign_ManualCpm: + s := proto.Size(x.ManualCpm) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *Campaign_ManualCpv: + s := proto.Size(x.ManualCpv) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *Campaign_MaximizeConversions: + s := proto.Size(x.MaximizeConversions) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *Campaign_MaximizeConversionValue: + s := proto.Size(x.MaximizeConversionValue) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *Campaign_TargetCpa: + s := proto.Size(x.TargetCpa) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *Campaign_TargetRoas: + s := proto.Size(x.TargetRoas) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *Campaign_TargetSpend: + s := proto.Size(x.TargetSpend) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *Campaign_PercentCpc: + s := proto.Size(x.PercentCpc) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// The network settings for the campaign. +type Campaign_NetworkSettings struct { + // Whether ads will be served with google.com search results. + TargetGoogleSearch *wrappers.BoolValue `protobuf:"bytes,1,opt,name=target_google_search,json=targetGoogleSearch,proto3" json:"target_google_search,omitempty"` + // Whether ads will be served on partner sites in the Google Search Network + // (requires `target_google_search` to also be `true`). + TargetSearchNetwork *wrappers.BoolValue `protobuf:"bytes,2,opt,name=target_search_network,json=targetSearchNetwork,proto3" json:"target_search_network,omitempty"` + // Whether ads will be served on specified placements in the Google Display + // Network. Placements are specified using the Placement criterion. + TargetContentNetwork *wrappers.BoolValue `protobuf:"bytes,3,opt,name=target_content_network,json=targetContentNetwork,proto3" json:"target_content_network,omitempty"` + // Whether ads will be served on the Google Partner Network. + // This is available only to some select Google partner accounts. + TargetPartnerSearchNetwork *wrappers.BoolValue `protobuf:"bytes,4,opt,name=target_partner_search_network,json=targetPartnerSearchNetwork,proto3" json:"target_partner_search_network,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Campaign_NetworkSettings) Reset() { *m = Campaign_NetworkSettings{} } +func (m *Campaign_NetworkSettings) String() string { return proto.CompactTextString(m) } +func (*Campaign_NetworkSettings) ProtoMessage() {} +func (*Campaign_NetworkSettings) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_153eb7de4e2bcd72, []int{0, 0} +} +func (m *Campaign_NetworkSettings) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Campaign_NetworkSettings.Unmarshal(m, b) +} +func (m *Campaign_NetworkSettings) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Campaign_NetworkSettings.Marshal(b, m, deterministic) +} +func (dst *Campaign_NetworkSettings) XXX_Merge(src proto.Message) { + xxx_messageInfo_Campaign_NetworkSettings.Merge(dst, src) +} +func (m *Campaign_NetworkSettings) XXX_Size() int { + return xxx_messageInfo_Campaign_NetworkSettings.Size(m) +} +func (m *Campaign_NetworkSettings) XXX_DiscardUnknown() { + xxx_messageInfo_Campaign_NetworkSettings.DiscardUnknown(m) +} + +var xxx_messageInfo_Campaign_NetworkSettings proto.InternalMessageInfo + +func (m *Campaign_NetworkSettings) GetTargetGoogleSearch() *wrappers.BoolValue { + if m != nil { + return m.TargetGoogleSearch + } + return nil +} + +func (m *Campaign_NetworkSettings) GetTargetSearchNetwork() *wrappers.BoolValue { + if m != nil { + return m.TargetSearchNetwork + } + return nil +} + +func (m *Campaign_NetworkSettings) GetTargetContentNetwork() *wrappers.BoolValue { + if m != nil { + return m.TargetContentNetwork + } + return nil +} + +func (m *Campaign_NetworkSettings) GetTargetPartnerSearchNetwork() *wrappers.BoolValue { + if m != nil { + return m.TargetPartnerSearchNetwork + } + return nil +} + +// Campaign-level settings for hotel ads. +type Campaign_HotelSettingInfo struct { + // The linked Hotel Center account. + HotelCenterId *wrappers.Int64Value `protobuf:"bytes,1,opt,name=hotel_center_id,json=hotelCenterId,proto3" json:"hotel_center_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Campaign_HotelSettingInfo) Reset() { *m = Campaign_HotelSettingInfo{} } +func (m *Campaign_HotelSettingInfo) String() string { return proto.CompactTextString(m) } +func (*Campaign_HotelSettingInfo) ProtoMessage() {} +func (*Campaign_HotelSettingInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_153eb7de4e2bcd72, []int{0, 1} +} +func (m *Campaign_HotelSettingInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Campaign_HotelSettingInfo.Unmarshal(m, b) +} +func (m *Campaign_HotelSettingInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Campaign_HotelSettingInfo.Marshal(b, m, deterministic) +} +func (dst *Campaign_HotelSettingInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_Campaign_HotelSettingInfo.Merge(dst, src) +} +func (m *Campaign_HotelSettingInfo) XXX_Size() int { + return xxx_messageInfo_Campaign_HotelSettingInfo.Size(m) +} +func (m *Campaign_HotelSettingInfo) XXX_DiscardUnknown() { + xxx_messageInfo_Campaign_HotelSettingInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_Campaign_HotelSettingInfo proto.InternalMessageInfo + +func (m *Campaign_HotelSettingInfo) GetHotelCenterId() *wrappers.Int64Value { + if m != nil { + return m.HotelCenterId + } + return nil +} + +// The setting for controlling Dynamic Search Ads (DSA). +type Campaign_DynamicSearchAdsSetting struct { + // The Internet domain name that this setting represents, e.g., "google.com" + // or "www.google.com". + DomainName *wrappers.StringValue `protobuf:"bytes,1,opt,name=domain_name,json=domainName,proto3" json:"domain_name,omitempty"` + // The language code specifying the language of the domain, e.g., "en". + LanguageCode *wrappers.StringValue `protobuf:"bytes,2,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"` + // Whether the campaign uses advertiser supplied URLs exclusively. + UseSuppliedUrlsOnly *wrappers.BoolValue `protobuf:"bytes,3,opt,name=use_supplied_urls_only,json=useSuppliedUrlsOnly,proto3" json:"use_supplied_urls_only,omitempty"` + // The list of page feeds associated with the campaign. + FeedIds []*wrappers.Int64Value `protobuf:"bytes,4,rep,name=feed_ids,json=feedIds,proto3" json:"feed_ids,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Campaign_DynamicSearchAdsSetting) Reset() { *m = Campaign_DynamicSearchAdsSetting{} } +func (m *Campaign_DynamicSearchAdsSetting) String() string { return proto.CompactTextString(m) } +func (*Campaign_DynamicSearchAdsSetting) ProtoMessage() {} +func (*Campaign_DynamicSearchAdsSetting) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_153eb7de4e2bcd72, []int{0, 2} +} +func (m *Campaign_DynamicSearchAdsSetting) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Campaign_DynamicSearchAdsSetting.Unmarshal(m, b) +} +func (m *Campaign_DynamicSearchAdsSetting) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Campaign_DynamicSearchAdsSetting.Marshal(b, m, deterministic) +} +func (dst *Campaign_DynamicSearchAdsSetting) XXX_Merge(src proto.Message) { + xxx_messageInfo_Campaign_DynamicSearchAdsSetting.Merge(dst, src) +} +func (m *Campaign_DynamicSearchAdsSetting) XXX_Size() int { + return xxx_messageInfo_Campaign_DynamicSearchAdsSetting.Size(m) +} +func (m *Campaign_DynamicSearchAdsSetting) XXX_DiscardUnknown() { + xxx_messageInfo_Campaign_DynamicSearchAdsSetting.DiscardUnknown(m) +} + +var xxx_messageInfo_Campaign_DynamicSearchAdsSetting proto.InternalMessageInfo + +func (m *Campaign_DynamicSearchAdsSetting) GetDomainName() *wrappers.StringValue { + if m != nil { + return m.DomainName + } + return nil +} + +func (m *Campaign_DynamicSearchAdsSetting) GetLanguageCode() *wrappers.StringValue { + if m != nil { + return m.LanguageCode + } + return nil +} + +func (m *Campaign_DynamicSearchAdsSetting) GetUseSuppliedUrlsOnly() *wrappers.BoolValue { + if m != nil { + return m.UseSuppliedUrlsOnly + } + return nil +} + +func (m *Campaign_DynamicSearchAdsSetting) GetFeedIds() []*wrappers.Int64Value { + if m != nil { + return m.FeedIds + } + return nil +} + +// The setting for Shopping campaigns. Defines the universe of products that +// can be advertised by the campaign, and how this campaign interacts with +// other Shopping campaigns. +type Campaign_ShoppingSetting struct { + // ID of the Merchant Center account. + // This field is required for create operations. This field is immutable for + // Shopping campaigns. + MerchantId *wrappers.Int64Value `protobuf:"bytes,1,opt,name=merchant_id,json=merchantId,proto3" json:"merchant_id,omitempty"` + // Sales country of products to include in the campaign. + // This field is required for Shopping campaigns. This field is immutable. + // This field is optional for non-Shopping campaigns, but it must be equal + // to 'ZZ' if set. + SalesCountry *wrappers.StringValue `protobuf:"bytes,2,opt,name=sales_country,json=salesCountry,proto3" json:"sales_country,omitempty"` + // Priority of the campaign. Campaigns with numerically higher priorities + // take precedence over those with lower priorities. + // This field is required for Shopping campaigns, with values between 0 and + // 2, inclusive. + // This field is optional for Smart Shopping campaigns, but must be equal to + // 3 if set. + CampaignPriority *wrappers.Int32Value `protobuf:"bytes,3,opt,name=campaign_priority,json=campaignPriority,proto3" json:"campaign_priority,omitempty"` + // Enable local inventory ads. This field is ignored for Smart Shopping + // campaigns. + EnableLocal *wrappers.BoolValue `protobuf:"bytes,4,opt,name=enable_local,json=enableLocal,proto3" json:"enable_local,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Campaign_ShoppingSetting) Reset() { *m = Campaign_ShoppingSetting{} } +func (m *Campaign_ShoppingSetting) String() string { return proto.CompactTextString(m) } +func (*Campaign_ShoppingSetting) ProtoMessage() {} +func (*Campaign_ShoppingSetting) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_153eb7de4e2bcd72, []int{0, 3} +} +func (m *Campaign_ShoppingSetting) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Campaign_ShoppingSetting.Unmarshal(m, b) +} +func (m *Campaign_ShoppingSetting) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Campaign_ShoppingSetting.Marshal(b, m, deterministic) +} +func (dst *Campaign_ShoppingSetting) XXX_Merge(src proto.Message) { + xxx_messageInfo_Campaign_ShoppingSetting.Merge(dst, src) +} +func (m *Campaign_ShoppingSetting) XXX_Size() int { + return xxx_messageInfo_Campaign_ShoppingSetting.Size(m) +} +func (m *Campaign_ShoppingSetting) XXX_DiscardUnknown() { + xxx_messageInfo_Campaign_ShoppingSetting.DiscardUnknown(m) +} + +var xxx_messageInfo_Campaign_ShoppingSetting proto.InternalMessageInfo + +func (m *Campaign_ShoppingSetting) GetMerchantId() *wrappers.Int64Value { + if m != nil { + return m.MerchantId + } + return nil +} + +func (m *Campaign_ShoppingSetting) GetSalesCountry() *wrappers.StringValue { + if m != nil { + return m.SalesCountry + } + return nil +} + +func (m *Campaign_ShoppingSetting) GetCampaignPriority() *wrappers.Int32Value { + if m != nil { + return m.CampaignPriority + } + return nil +} + +func (m *Campaign_ShoppingSetting) GetEnableLocal() *wrappers.BoolValue { + if m != nil { + return m.EnableLocal + } + return nil +} + +func init() { + proto.RegisterType((*Campaign)(nil), "google.ads.googleads.v0.resources.Campaign") + proto.RegisterType((*Campaign_NetworkSettings)(nil), "google.ads.googleads.v0.resources.Campaign.NetworkSettings") + proto.RegisterType((*Campaign_HotelSettingInfo)(nil), "google.ads.googleads.v0.resources.Campaign.HotelSettingInfo") + proto.RegisterType((*Campaign_DynamicSearchAdsSetting)(nil), "google.ads.googleads.v0.resources.Campaign.DynamicSearchAdsSetting") + proto.RegisterType((*Campaign_ShoppingSetting)(nil), "google.ads.googleads.v0.resources.Campaign.ShoppingSetting") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/campaign.proto", fileDescriptor_campaign_153eb7de4e2bcd72) +} + +var fileDescriptor_campaign_153eb7de4e2bcd72 = []byte{ + // 1511 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x98, 0x5d, 0x6f, 0xdb, 0x36, + 0x17, 0xc7, 0x63, 0x27, 0x4f, 0x9b, 0xd0, 0x79, 0x7b, 0x98, 0x26, 0x51, 0x9c, 0xbe, 0xa4, 0xed, + 0xd3, 0x67, 0xd9, 0x3a, 0xc8, 0x59, 0xb2, 0xb5, 0x18, 0xd2, 0x0e, 0x4d, 0xdc, 0x97, 0xa4, 0x68, + 0x53, 0x43, 0x4e, 0xb3, 0xa2, 0xc8, 0x20, 0xd0, 0x12, 0xed, 0x08, 0x95, 0x48, 0x95, 0xa4, 0xdc, + 0x7a, 0x17, 0xc3, 0xae, 0xf7, 0x01, 0xb6, 0x8b, 0x5d, 0x0c, 0x18, 0x76, 0xb5, 0x8f, 0xb2, 0xcb, + 0x7d, 0x82, 0x7d, 0x94, 0x41, 0x24, 0xa5, 0xd8, 0x8e, 0x6d, 0xc9, 0x77, 0x22, 0x79, 0x7e, 0xff, + 0x73, 0x78, 0xf8, 0x72, 0x68, 0x83, 0xad, 0x16, 0xa5, 0x2d, 0x1f, 0x57, 0x90, 0xcb, 0x2b, 0xea, + 0x33, 0xfe, 0x6a, 0x6f, 0x55, 0x18, 0xe6, 0x34, 0x62, 0x0e, 0xe6, 0x15, 0x07, 0x05, 0x21, 0xf2, + 0x5a, 0xc4, 0x0c, 0x19, 0x15, 0x14, 0xde, 0x54, 0x66, 0x26, 0x72, 0xb9, 0x99, 0x12, 0x66, 0x7b, + 0xcb, 0x4c, 0x89, 0xf2, 0xe7, 0xc3, 0x44, 0x1d, 0x1a, 0x04, 0x94, 0x54, 0x1a, 0x9e, 0xeb, 0x7a, + 0xa4, 0xa5, 0x04, 0xcb, 0x5f, 0x65, 0x58, 0x3b, 0x11, 0x17, 0x34, 0xb0, 0x43, 0xc4, 0x50, 0x80, + 0x05, 0x66, 0x1a, 0xdb, 0xce, 0xc0, 0x9a, 0x0c, 0xbf, 0x8f, 0x30, 0x71, 0x3a, 0xb6, 0x83, 0x42, + 0xcd, 0x7c, 0x93, 0xc1, 0x30, 0x8c, 0x7c, 0x5b, 0x78, 0x01, 0xb6, 0x75, 0x88, 0x36, 0xc7, 0x42, + 0x9c, 0x87, 0xba, 0x3f, 0x8c, 0xc7, 0x24, 0x0a, 0x78, 0x05, 0xb9, 0x36, 0xc7, 0xac, 0x1d, 0x73, + 0x34, 0x14, 0x5e, 0xe0, 0x7d, 0x8f, 0x84, 0x47, 0x89, 0xcd, 0x05, 0x12, 0x11, 0xd7, 0x1a, 0x8f, + 0xb2, 0x34, 0xda, 0x98, 0x09, 0x8f, 0xc7, 0x22, 0xce, 0x19, 0x22, 0x04, 0xfb, 0x36, 0x8f, 0x1a, + 0xb6, 0xe8, 0x84, 0x58, 0x2b, 0x3c, 0x18, 0x5f, 0xa1, 0x8b, 0xfe, 0x7a, 0x34, 0x9d, 0x4e, 0x5c, + 0x30, 0x24, 0x70, 0xab, 0xd3, 0x8d, 0xee, 0x8e, 0x46, 0x93, 0x8d, 0x92, 0x26, 0xa1, 0x67, 0xde, + 0x3b, 0x79, 0xe1, 0x6e, 0xe8, 0xba, 0x86, 0x64, 0xab, 0x11, 0x35, 0x2b, 0x1f, 0x18, 0x0a, 0x43, + 0xcc, 0xf4, 0xf8, 0xad, 0x9f, 0x6f, 0x80, 0xe9, 0xaa, 0x26, 0xe1, 0x6d, 0x30, 0x97, 0xec, 0x41, + 0x9b, 0xa0, 0x00, 0x1b, 0x85, 0x8d, 0xc2, 0xe6, 0x8c, 0x35, 0x9b, 0x74, 0x1e, 0xa1, 0x00, 0xc3, + 0xbb, 0xa0, 0xe8, 0xb9, 0xc6, 0xe4, 0x46, 0x61, 0xb3, 0xb4, 0xbd, 0xae, 0x37, 0xb0, 0x99, 0xc8, + 0x9b, 0x87, 0x44, 0xdc, 0xfb, 0xf2, 0x04, 0xf9, 0x11, 0xb6, 0x8a, 0x9e, 0x0b, 0xb7, 0xc0, 0x94, + 0x14, 0x9a, 0x92, 0xe6, 0x57, 0x2f, 0x98, 0xd7, 0x05, 0xf3, 0x48, 0x4b, 0xd9, 0x4b, 0x4b, 0xf8, + 0x06, 0x5c, 0x52, 0x13, 0x30, 0xfe, 0xb3, 0x51, 0xd8, 0x9c, 0xdf, 0x7e, 0x64, 0x0e, 0x3b, 0x2e, + 0x72, 0xda, 0x66, 0x12, 0x7c, 0x5d, 0x42, 0x4f, 0x48, 0x14, 0xf4, 0x75, 0x59, 0x5a, 0x0f, 0x46, + 0x60, 0xbe, 0x37, 0xaf, 0xc6, 0xb2, 0xf4, 0x70, 0x94, 0xd7, 0x83, 0x82, 0x07, 0x39, 0xea, 0x1e, + 0xb1, 0xe6, 0x78, 0x77, 0x13, 0xfe, 0x56, 0x00, 0xd7, 0x47, 0xef, 0x6b, 0x63, 0x5a, 0xc6, 0xf1, + 0x36, 0x23, 0x8e, 0x3d, 0x57, 0xfb, 0x79, 0xd5, 0x25, 0xd1, 0x15, 0xcd, 0x88, 0x71, 0x6b, 0x1d, + 0x0d, 0x1f, 0x84, 0x3f, 0x15, 0x80, 0x31, 0x6c, 0xcf, 0x1b, 0x33, 0x32, 0xb6, 0x5a, 0x66, 0x6c, + 0x29, 0x5e, 0x55, 0xf4, 0x71, 0x27, 0xc4, 0x3a, 0xac, 0x41, 0x43, 0xd6, 0x0a, 0x1a, 0xd8, 0x0f, + 0x7f, 0x29, 0x80, 0xab, 0xa3, 0x8e, 0xb0, 0x01, 0x64, 0x40, 0x27, 0x63, 0x07, 0x54, 0x8f, 0x1a, + 0x23, 0x62, 0xd2, 0xa3, 0xd6, 0x1a, 0x1a, 0x36, 0x04, 0x6b, 0x60, 0x59, 0x30, 0xe4, 0xbc, 0x8b, + 0xa3, 0x8a, 0x98, 0x6f, 0x0b, 0x1c, 0x84, 0x3e, 0x12, 0xd8, 0x28, 0xe5, 0xd8, 0xdc, 0x4b, 0x09, + 0xfa, 0x9a, 0xf9, 0xc7, 0x1a, 0x84, 0x0e, 0x58, 0x8e, 0x85, 0xfa, 0xef, 0x67, 0x6e, 0xcc, 0x6e, + 0x4c, 0x6e, 0x96, 0xb6, 0x2b, 0x43, 0xe7, 0xa8, 0x6e, 0x5b, 0xb3, 0x2a, 0xc1, 0x5a, 0xc2, 0x59, + 0x4b, 0x11, 0xf3, 0xfb, 0xfa, 0x38, 0x7c, 0x0f, 0xd6, 0x86, 0xde, 0xca, 0xc6, 0x27, 0x32, 0xf4, + 0x7b, 0x59, 0x8e, 0x2c, 0x8c, 0xfc, 0x63, 0x2f, 0xc0, 0xfb, 0x0a, 0xaf, 0x2b, 0xda, 0x5a, 0x61, + 0x03, 0xfb, 0x61, 0x13, 0x2c, 0x12, 0x2c, 0x3e, 0x50, 0xf6, 0x2e, 0x71, 0xc4, 0x8d, 0x79, 0xe9, + 0x69, 0xd7, 0xcc, 0x2c, 0x7e, 0xe9, 0xa9, 0x32, 0x8f, 0x94, 0x86, 0x56, 0xe5, 0xd6, 0x02, 0xe9, + 0xed, 0x80, 0x08, 0xcc, 0x9d, 0x51, 0x11, 0x6f, 0x0e, 0x3d, 0x9d, 0x0d, 0xe9, 0xe4, 0xc1, 0x38, + 0x4e, 0x0e, 0x62, 0x01, 0xad, 0x78, 0x48, 0x9a, 0xd4, 0x9a, 0x3d, 0xeb, 0xea, 0x81, 0x3f, 0x16, + 0x40, 0xd9, 0xed, 0x10, 0x14, 0x78, 0x8e, 0xcd, 0x31, 0x62, 0xce, 0x99, 0x8d, 0x5c, 0x9e, 0x3a, + 0xbc, 0x29, 0x1d, 0x56, 0xc7, 0x71, 0xf8, 0x58, 0xa9, 0xd5, 0xa5, 0xd8, 0x9e, 0xcb, 0x93, 0x64, + 0xae, 0xba, 0x83, 0x07, 0xe2, 0x6c, 0xf2, 0x33, 0x1a, 0x86, 0xdd, 0xeb, 0xf6, 0xbf, 0xf1, 0xb3, + 0x59, 0xd7, 0x1a, 0x89, 0xbf, 0x05, 0xde, 0xdb, 0x01, 0x9f, 0x80, 0x85, 0xb4, 0x86, 0x34, 0x22, + 0xb7, 0x85, 0x85, 0x71, 0x29, 0xc7, 0xce, 0x9e, 0x4f, 0xa0, 0x7d, 0xc9, 0xc0, 0x1f, 0xc0, 0xf2, + 0xc0, 0x12, 0x68, 0xac, 0xc8, 0x83, 0xfb, 0x3c, 0xe3, 0xe0, 0x26, 0x5b, 0x49, 0xa3, 0xe9, 0x91, + 0x1d, 0xd0, 0x6f, 0x2d, 0x35, 0x2e, 0x76, 0xc2, 0x5d, 0x00, 0xb8, 0x40, 0x4c, 0xd8, 0x6e, 0x7c, + 0x36, 0x97, 0x72, 0xcc, 0x60, 0x46, 0xda, 0x3f, 0x8e, 0x4f, 0x64, 0x15, 0xa4, 0xd3, 0xb1, 0x5b, + 0x8c, 0x46, 0xa1, 0x71, 0x3b, 0x87, 0xc0, 0x5c, 0xc2, 0x3c, 0x8b, 0x11, 0x78, 0x1f, 0x4c, 0x63, + 0xe2, 0x2a, 0xff, 0x57, 0x72, 0xe0, 0x97, 0x31, 0x71, 0xa5, 0xf7, 0xa7, 0x60, 0xb1, 0xe9, 0x11, + 0xe4, 0xcb, 0xeb, 0x85, 0x47, 0xcd, 0xa6, 0xf7, 0xd1, 0xf8, 0x7f, 0x9e, 0x25, 0x90, 0xd4, 0x6b, + 0xe6, 0xd7, 0x25, 0x03, 0xdf, 0x80, 0xf9, 0x9e, 0xc7, 0x1b, 0x37, 0x36, 0xe5, 0x85, 0xf2, 0x45, + 0xd6, 0x39, 0x7f, 0x9a, 0x50, 0x55, 0x14, 0x3e, 0x21, 0x82, 0x75, 0xac, 0xb9, 0x66, 0x57, 0x17, + 0x87, 0x87, 0x60, 0xb1, 0x7f, 0x71, 0x8d, 0xd5, 0xec, 0x08, 0x0f, 0x26, 0xac, 0x85, 0xbe, 0xb5, + 0x82, 0xcf, 0x01, 0x08, 0x10, 0x89, 0x90, 0x6f, 0x3b, 0xa1, 0x63, 0x18, 0x52, 0xe4, 0xd3, 0xac, + 0x00, 0x5f, 0x4a, 0xa2, 0x1a, 0x3a, 0x07, 0x13, 0xd6, 0x4c, 0x90, 0x34, 0x7a, 0xb4, 0x02, 0x63, + 0x6d, 0x3c, 0xad, 0xa0, 0x5b, 0x2b, 0xe8, 0xd1, 0x6a, 0x1b, 0x77, 0xc6, 0xd3, 0x6a, 0x77, 0x6b, + 0xb5, 0xe1, 0x19, 0xb8, 0x12, 0xa0, 0x8f, 0x71, 0xbd, 0xc5, 0xb6, 0x43, 0x49, 0x1b, 0x33, 0xee, + 0x51, 0xc2, 0x8d, 0xeb, 0x52, 0x75, 0x27, 0x5b, 0x55, 0xb1, 0xd5, 0x73, 0xf4, 0x60, 0xc2, 0x5a, + 0x0a, 0x2e, 0x76, 0xc3, 0x08, 0xac, 0x0d, 0xf0, 0x64, 0xb7, 0xe3, 0xec, 0x1b, 0x37, 0xa4, 0xbb, + 0xfb, 0xe3, 0xbb, 0x4b, 0x16, 0x6f, 0x35, 0x18, 0x3c, 0x14, 0x27, 0x4b, 0x20, 0xd6, 0xc2, 0xc2, + 0x76, 0x42, 0x64, 0x94, 0xf3, 0x25, 0xeb, 0x58, 0x12, 0xd5, 0x10, 0xc5, 0xc9, 0x12, 0x49, 0x03, + 0xbe, 0x04, 0x25, 0xad, 0xc5, 0x28, 0xe2, 0xc6, 0x35, 0x29, 0xf6, 0x59, 0x3e, 0x31, 0x8b, 0xa2, + 0x38, 0x35, 0x3a, 0x98, 0xb8, 0x05, 0x6b, 0x60, 0x56, 0xcb, 0xf1, 0x10, 0x13, 0xd7, 0x58, 0x97, + 0x7a, 0x77, 0xf3, 0xe9, 0xd5, 0x63, 0xe4, 0x60, 0xc2, 0xd2, 0x11, 0xc9, 0x66, 0x1c, 0x60, 0x88, + 0x99, 0x83, 0x89, 0x90, 0x5b, 0xf6, 0x56, 0xbe, 0x00, 0x6b, 0x0a, 0x51, 0x7b, 0x16, 0x84, 0x69, + 0xab, 0xfc, 0x4f, 0x11, 0x2c, 0xf4, 0x95, 0x38, 0xf8, 0x02, 0x5c, 0xd1, 0x41, 0x2b, 0x29, 0x5d, + 0x73, 0xe4, 0x43, 0xbc, 0xb4, 0x5d, 0xbe, 0x70, 0xc6, 0xf6, 0x29, 0xf5, 0xd5, 0x1d, 0x00, 0x15, + 0xf7, 0x4c, 0x1a, 0xa8, 0x1a, 0x02, 0x8f, 0xc0, 0x72, 0x92, 0x02, 0x55, 0xba, 0x74, 0x01, 0x35, + 0x8a, 0x99, 0x72, 0x4b, 0x7a, 0xe2, 0x92, 0xd3, 0x51, 0xc2, 0x1a, 0x58, 0x49, 0x56, 0x9b, 0x12, + 0x11, 0xe7, 0x21, 0x11, 0x9c, 0xcc, 0x14, 0xd4, 0xf3, 0xaa, 0x2a, 0x30, 0x51, 0xfc, 0x0e, 0x5c, + 0xd3, 0x8a, 0x21, 0x62, 0x82, 0x60, 0xd6, 0x1f, 0xe9, 0x54, 0xa6, 0x70, 0x59, 0x09, 0xd4, 0x14, + 0xdf, 0x13, 0x70, 0xf9, 0x5b, 0xb0, 0xd8, 0x5f, 0xdf, 0x61, 0x15, 0x2c, 0xa8, 0x47, 0x43, 0xbc, + 0x0e, 0x98, 0xd9, 0x9e, 0xab, 0xb3, 0x3b, 0xf2, 0xc7, 0x8c, 0x7a, 0x68, 0x54, 0x25, 0x72, 0xe8, + 0x96, 0xff, 0x28, 0x82, 0xd5, 0x21, 0x85, 0x1c, 0x3e, 0x04, 0x25, 0x97, 0x06, 0xc8, 0x23, 0xe7, + 0xbf, 0xa1, 0xb2, 0x2e, 0x70, 0xa0, 0x00, 0xf9, 0xfb, 0x6a, 0x0f, 0xcc, 0xf9, 0x88, 0xb4, 0x22, + 0xd4, 0x8a, 0x4f, 0xb2, 0x8b, 0xf5, 0x62, 0x8d, 0x16, 0x98, 0x4d, 0x90, 0x2a, 0x75, 0x31, 0x7c, + 0x05, 0x56, 0x22, 0x8e, 0x6d, 0x1e, 0x85, 0xa1, 0xef, 0x61, 0x37, 0x2e, 0x27, 0xdc, 0xa6, 0xc4, + 0xef, 0xe4, 0x58, 0xa7, 0xa5, 0x88, 0xe3, 0xba, 0x06, 0x5f, 0x33, 0x9f, 0xbf, 0x22, 0x7e, 0x07, + 0xde, 0x03, 0xd3, 0x4d, 0x8c, 0x5d, 0xdb, 0x73, 0xb9, 0x31, 0x25, 0x4b, 0xc9, 0xc8, 0x64, 0x5d, + 0x8e, 0x8d, 0x0f, 0x5d, 0x5e, 0xfe, 0xb5, 0x08, 0x16, 0xfa, 0xde, 0x1d, 0xf0, 0x01, 0x28, 0x05, + 0x98, 0xc5, 0xcf, 0x7a, 0x91, 0x33, 0xf7, 0x20, 0xb1, 0x3f, 0x74, 0xe3, 0xec, 0x70, 0xe4, 0x63, + 0x6e, 0x3b, 0x34, 0x8a, 0x0b, 0x54, 0xbe, 0xec, 0x48, 0xa4, 0xaa, 0x08, 0x78, 0x00, 0xfe, 0x9b, + 0xd6, 0xf8, 0x90, 0x79, 0x94, 0x79, 0xa2, 0x33, 0xea, 0xf7, 0xec, 0xce, 0xb6, 0x52, 0x59, 0x4c, + 0xa8, 0x9a, 0x86, 0xe0, 0x43, 0x30, 0x8b, 0x09, 0x6a, 0xf8, 0xd8, 0xf6, 0xa9, 0x83, 0xfc, 0x1c, + 0x9b, 0xb5, 0xa4, 0xec, 0x5f, 0xc4, 0xe6, 0xfb, 0xeb, 0x60, 0xed, 0xfc, 0xc1, 0xd5, 0x57, 0x55, + 0xf7, 0xff, 0x2e, 0x80, 0x3b, 0x0e, 0x0d, 0xb2, 0x5f, 0x78, 0xfb, 0x73, 0xd5, 0x34, 0x2e, 0x2a, + 0x68, 0xad, 0xf0, 0xf6, 0xb9, 0x66, 0x5a, 0x34, 0xde, 0x15, 0x26, 0x65, 0xad, 0x4a, 0x0b, 0x13, + 0x19, 0x4d, 0xf2, 0xc7, 0x41, 0xe8, 0xf1, 0x11, 0xff, 0x58, 0xed, 0xa6, 0x5f, 0xbf, 0x17, 0x27, + 0x9f, 0xed, 0xed, 0xfd, 0x59, 0xbc, 0xa9, 0xee, 0x15, 0x73, 0xcf, 0xe5, 0xa6, 0xfa, 0x8c, 0xbf, + 0x4e, 0xb6, 0x4c, 0x2b, 0xb1, 0xfc, 0x2b, 0xb1, 0x39, 0xdd, 0x73, 0xf9, 0x69, 0x6a, 0x73, 0x7a, + 0xb2, 0x75, 0x9a, 0xda, 0x34, 0x2e, 0xc9, 0x20, 0x76, 0xfe, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x40, + 0x6d, 0xdb, 0x8e, 0x35, 0x13, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/campaign_audience_view.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/campaign_audience_view.pb.go new file mode 100644 index 000000000..0e5e052c8 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/campaign_audience_view.pb.go @@ -0,0 +1,94 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/campaign_audience_view.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A campaign audience view. +// Includes performance data from interests and remarketing lists for Display +// Network and YouTube Network ads, and remarketing lists for search ads (RLSA), +// aggregated by campaign and audience criterion. This view only includes +// audiences attached at the campaign level. +type CampaignAudienceView struct { + // The resource name of the campaign audience view. + // Campaign audience view resource names have the form: + // + // + // `customers/{customer_id}/campaignAudienceViews/{campaign_id}_{criterion_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CampaignAudienceView) Reset() { *m = CampaignAudienceView{} } +func (m *CampaignAudienceView) String() string { return proto.CompactTextString(m) } +func (*CampaignAudienceView) ProtoMessage() {} +func (*CampaignAudienceView) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_audience_view_597e3d8f42495af1, []int{0} +} +func (m *CampaignAudienceView) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CampaignAudienceView.Unmarshal(m, b) +} +func (m *CampaignAudienceView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CampaignAudienceView.Marshal(b, m, deterministic) +} +func (dst *CampaignAudienceView) XXX_Merge(src proto.Message) { + xxx_messageInfo_CampaignAudienceView.Merge(dst, src) +} +func (m *CampaignAudienceView) XXX_Size() int { + return xxx_messageInfo_CampaignAudienceView.Size(m) +} +func (m *CampaignAudienceView) XXX_DiscardUnknown() { + xxx_messageInfo_CampaignAudienceView.DiscardUnknown(m) +} + +var xxx_messageInfo_CampaignAudienceView proto.InternalMessageInfo + +func (m *CampaignAudienceView) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*CampaignAudienceView)(nil), "google.ads.googleads.v0.resources.CampaignAudienceView") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/campaign_audience_view.proto", fileDescriptor_campaign_audience_view_597e3d8f42495af1) +} + +var fileDescriptor_campaign_audience_view_597e3d8f42495af1 = []byte{ + // 237 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x4b, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xa2, 0xd4, + 0xe2, 0xfc, 0xd2, 0xa2, 0xe4, 0xd4, 0x62, 0xfd, 0xe4, 0xc4, 0xdc, 0x82, 0xc4, 0xcc, 0xf4, 0xbc, + 0xf8, 0xc4, 0xd2, 0x94, 0xcc, 0xd4, 0xbc, 0xe4, 0xd4, 0xf8, 0xb2, 0xcc, 0xd4, 0x72, 0xbd, 0x82, + 0xa2, 0xfc, 0x92, 0x7c, 0x21, 0x45, 0x88, 0x26, 0xbd, 0xc4, 0x94, 0x62, 0x3d, 0xb8, 0x7e, 0xbd, + 0x32, 0x03, 0x3d, 0xb8, 0x7e, 0x25, 0x6b, 0x2e, 0x11, 0x67, 0xa8, 0x11, 0x8e, 0x50, 0x13, 0xc2, + 0x32, 0x53, 0xcb, 0x85, 0x94, 0xb9, 0x78, 0x61, 0x8a, 0xe2, 0xf3, 0x12, 0x73, 0x53, 0x25, 0x18, + 0x15, 0x18, 0x35, 0x38, 0x83, 0x78, 0x60, 0x82, 0x7e, 0x89, 0xb9, 0xa9, 0x4e, 0xf7, 0x18, 0xb9, + 0x54, 0x93, 0xf3, 0x73, 0xf5, 0x08, 0x5a, 0xe3, 0x24, 0x89, 0xcd, 0x92, 0x00, 0x90, 0x23, 0x03, + 0x18, 0xa3, 0xbc, 0xa0, 0xfa, 0xd3, 0xf3, 0x73, 0x12, 0xf3, 0xd2, 0xf5, 0xf2, 0x8b, 0xd2, 0xf5, + 0xd3, 0x53, 0xf3, 0xc0, 0x5e, 0x80, 0x79, 0xbb, 0x20, 0xb3, 0x18, 0x4f, 0x28, 0x58, 0xc3, 0x59, + 0x8b, 0x98, 0x98, 0xdd, 0x1d, 0x1d, 0x57, 0x31, 0x29, 0xba, 0x43, 0x8c, 0x74, 0x4c, 0x29, 0xd6, + 0x83, 0x30, 0x41, 0xac, 0x30, 0x03, 0xbd, 0x20, 0x98, 0xca, 0x53, 0x30, 0x35, 0x31, 0x8e, 0x29, + 0xc5, 0x31, 0x70, 0x35, 0x31, 0x61, 0x06, 0x31, 0x70, 0x35, 0x49, 0x6c, 0x60, 0x47, 0x18, 0x03, + 0x02, 0x00, 0x00, 0xff, 0xff, 0x29, 0xac, 0x5f, 0xd7, 0x89, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/campaign_bid_modifier.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/campaign_bid_modifier.pb.go new file mode 100644 index 000000000..8e8de6cb6 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/campaign_bid_modifier.pb.go @@ -0,0 +1,215 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/campaign_bid_modifier.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import common "google.golang.org/genproto/googleapis/ads/googleads/v0/common" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Represents a bid-modifiable only criterion at the campaign level. +type CampaignBidModifier struct { + // The resource name of the campaign bid modifier. + // Campaign bid modifier resource names have the form: + // + // `customers/{customer_id}/campaignBidModifiers/{campaign_id}_{criterion_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + // The campaign to which this criterion belongs. + Campaign *wrappers.StringValue `protobuf:"bytes,2,opt,name=campaign,proto3" json:"campaign,omitempty"` + // The ID of the criterion to bid modify. + // + // This field is ignored for mutates. + CriterionId *wrappers.Int64Value `protobuf:"bytes,3,opt,name=criterion_id,json=criterionId,proto3" json:"criterion_id,omitempty"` + // The modifier for the bid when the criterion matches. + BidModifier *wrappers.DoubleValue `protobuf:"bytes,4,opt,name=bid_modifier,json=bidModifier,proto3" json:"bid_modifier,omitempty"` + // The criterion of this campaign bid modifier. + // + // Types that are valid to be assigned to Criterion: + // *CampaignBidModifier_InteractionType + Criterion isCampaignBidModifier_Criterion `protobuf_oneof:"criterion"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CampaignBidModifier) Reset() { *m = CampaignBidModifier{} } +func (m *CampaignBidModifier) String() string { return proto.CompactTextString(m) } +func (*CampaignBidModifier) ProtoMessage() {} +func (*CampaignBidModifier) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_bid_modifier_114f01e910f343fe, []int{0} +} +func (m *CampaignBidModifier) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CampaignBidModifier.Unmarshal(m, b) +} +func (m *CampaignBidModifier) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CampaignBidModifier.Marshal(b, m, deterministic) +} +func (dst *CampaignBidModifier) XXX_Merge(src proto.Message) { + xxx_messageInfo_CampaignBidModifier.Merge(dst, src) +} +func (m *CampaignBidModifier) XXX_Size() int { + return xxx_messageInfo_CampaignBidModifier.Size(m) +} +func (m *CampaignBidModifier) XXX_DiscardUnknown() { + xxx_messageInfo_CampaignBidModifier.DiscardUnknown(m) +} + +var xxx_messageInfo_CampaignBidModifier proto.InternalMessageInfo + +func (m *CampaignBidModifier) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func (m *CampaignBidModifier) GetCampaign() *wrappers.StringValue { + if m != nil { + return m.Campaign + } + return nil +} + +func (m *CampaignBidModifier) GetCriterionId() *wrappers.Int64Value { + if m != nil { + return m.CriterionId + } + return nil +} + +func (m *CampaignBidModifier) GetBidModifier() *wrappers.DoubleValue { + if m != nil { + return m.BidModifier + } + return nil +} + +type isCampaignBidModifier_Criterion interface { + isCampaignBidModifier_Criterion() +} + +type CampaignBidModifier_InteractionType struct { + InteractionType *common.InteractionTypeInfo `protobuf:"bytes,5,opt,name=interaction_type,json=interactionType,proto3,oneof"` +} + +func (*CampaignBidModifier_InteractionType) isCampaignBidModifier_Criterion() {} + +func (m *CampaignBidModifier) GetCriterion() isCampaignBidModifier_Criterion { + if m != nil { + return m.Criterion + } + return nil +} + +func (m *CampaignBidModifier) GetInteractionType() *common.InteractionTypeInfo { + if x, ok := m.GetCriterion().(*CampaignBidModifier_InteractionType); ok { + return x.InteractionType + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*CampaignBidModifier) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _CampaignBidModifier_OneofMarshaler, _CampaignBidModifier_OneofUnmarshaler, _CampaignBidModifier_OneofSizer, []interface{}{ + (*CampaignBidModifier_InteractionType)(nil), + } +} + +func _CampaignBidModifier_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*CampaignBidModifier) + // criterion + switch x := m.Criterion.(type) { + case *CampaignBidModifier_InteractionType: + b.EncodeVarint(5<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.InteractionType); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("CampaignBidModifier.Criterion has unexpected type %T", x) + } + return nil +} + +func _CampaignBidModifier_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*CampaignBidModifier) + switch tag { + case 5: // criterion.interaction_type + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.InteractionTypeInfo) + err := b.DecodeMessage(msg) + m.Criterion = &CampaignBidModifier_InteractionType{msg} + return true, err + default: + return false, nil + } +} + +func _CampaignBidModifier_OneofSizer(msg proto.Message) (n int) { + m := msg.(*CampaignBidModifier) + // criterion + switch x := m.Criterion.(type) { + case *CampaignBidModifier_InteractionType: + s := proto.Size(x.InteractionType) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +func init() { + proto.RegisterType((*CampaignBidModifier)(nil), "google.ads.googleads.v0.resources.CampaignBidModifier") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/campaign_bid_modifier.proto", fileDescriptor_campaign_bid_modifier_114f01e910f343fe) +} + +var fileDescriptor_campaign_bid_modifier_114f01e910f343fe = []byte{ + // 404 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x92, 0xd1, 0xea, 0xd3, 0x30, + 0x14, 0xc6, 0x6d, 0xa7, 0xe2, 0xb2, 0x89, 0x52, 0x6f, 0xca, 0x14, 0xd9, 0x14, 0x61, 0x37, 0xa6, + 0xc5, 0x89, 0x08, 0xa2, 0xd2, 0x2a, 0xcc, 0x09, 0xca, 0xa8, 0xb2, 0x0b, 0x29, 0xd4, 0xb4, 0xc9, + 0x42, 0xa0, 0x4d, 0x4a, 0xd2, 0x4e, 0xf6, 0x3a, 0x5e, 0xfa, 0x28, 0xbe, 0x83, 0x77, 0x3e, 0x88, + 0xb4, 0x69, 0xc2, 0x44, 0xf7, 0xff, 0xdf, 0x7d, 0x4d, 0xbf, 0xdf, 0x39, 0xdf, 0xc9, 0x09, 0x78, + 0x49, 0x85, 0xa0, 0x25, 0x09, 0x10, 0x56, 0x81, 0x96, 0x9d, 0x3a, 0x84, 0x81, 0x24, 0x4a, 0xb4, + 0xb2, 0x20, 0x2a, 0x28, 0x50, 0x55, 0x23, 0x46, 0x79, 0x96, 0x33, 0x9c, 0x55, 0x02, 0xb3, 0x3d, + 0x23, 0x12, 0xd6, 0x52, 0x34, 0xc2, 0x5b, 0x68, 0x06, 0x22, 0xac, 0xa0, 0xc5, 0xe1, 0x21, 0x84, + 0x16, 0x9f, 0x3d, 0x3e, 0xd7, 0xa1, 0x10, 0x55, 0x25, 0x78, 0x50, 0x48, 0xd6, 0x10, 0xc9, 0x90, + 0xae, 0x38, 0xbb, 0x3f, 0xd8, 0xfb, 0xaf, 0xbc, 0xdd, 0x07, 0xdf, 0x24, 0xaa, 0x6b, 0x22, 0x95, + 0xfe, 0xff, 0xe0, 0xb7, 0x0b, 0xee, 0xbc, 0x19, 0x12, 0xc5, 0x0c, 0x7f, 0x18, 0xf2, 0x78, 0x0f, + 0xc1, 0x4d, 0xd3, 0x33, 0xe3, 0xa8, 0x22, 0xbe, 0x33, 0x77, 0x96, 0xe3, 0x64, 0x6a, 0x0e, 0x3f, + 0xa2, 0x8a, 0x78, 0xcf, 0xc1, 0x0d, 0x33, 0x8d, 0xef, 0xce, 0x9d, 0xe5, 0xe4, 0xc9, 0xbd, 0x21, + 0x36, 0x34, 0xfd, 0xe0, 0xa7, 0x46, 0x32, 0x4e, 0x77, 0xa8, 0x6c, 0x49, 0x62, 0xdd, 0xde, 0x2b, + 0x30, 0x1d, 0x82, 0x0a, 0x9e, 0x31, 0xec, 0x8f, 0x7a, 0xfa, 0xee, 0x3f, 0xf4, 0x86, 0x37, 0xcf, + 0x9e, 0x6a, 0x78, 0x62, 0x81, 0x0d, 0xf6, 0x5e, 0x83, 0xe9, 0xe9, 0xf5, 0xf9, 0x57, 0xcf, 0x74, + 0x7f, 0x2b, 0xda, 0xbc, 0x24, 0x43, 0x81, 0xfc, 0x64, 0xbe, 0xaf, 0xe0, 0x36, 0xe3, 0x0d, 0x91, + 0xa8, 0x68, 0xba, 0x08, 0xcd, 0xb1, 0x26, 0xfe, 0xb5, 0xbe, 0xc8, 0x0a, 0x9e, 0x5b, 0x82, 0xbe, + 0xe1, 0x2e, 0x93, 0xe1, 0x3e, 0x1f, 0x6b, 0xb2, 0xe1, 0x7b, 0xf1, 0xee, 0x4a, 0x72, 0x8b, 0xfd, + 0x7d, 0x1c, 0x4f, 0xc0, 0xd8, 0x26, 0x8e, 0x7f, 0x39, 0xe0, 0x51, 0x21, 0x2a, 0x78, 0xe9, 0x7e, + 0x63, 0xff, 0x3f, 0xdb, 0xd8, 0x76, 0xe3, 0x6c, 0x9d, 0x2f, 0xef, 0x07, 0x9c, 0x8a, 0x12, 0x71, + 0x0a, 0x85, 0xa4, 0x01, 0x25, 0xbc, 0x1f, 0xd6, 0xbc, 0x85, 0x9a, 0xa9, 0x0b, 0x1e, 0xdf, 0x0b, + 0xab, 0xbe, 0xbb, 0xa3, 0x75, 0x14, 0xfd, 0x70, 0x17, 0x6b, 0x5d, 0x32, 0xc2, 0x0a, 0x6a, 0xd9, + 0xa9, 0x5d, 0x08, 0x13, 0xe3, 0xfc, 0x69, 0x3c, 0x69, 0x84, 0x55, 0x6a, 0x3d, 0xe9, 0x2e, 0x4c, + 0xad, 0x27, 0xbf, 0xde, 0x87, 0x58, 0xfd, 0x09, 0x00, 0x00, 0xff, 0xff, 0xe0, 0xd9, 0xa7, 0x4a, + 0x00, 0x03, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/campaign_budget.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/campaign_budget.pb.go new file mode 100644 index 000000000..a61d8e7b2 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/campaign_budget.pb.go @@ -0,0 +1,217 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/campaign_budget.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A campaign budget. +type CampaignBudget struct { + // The resource name of the campaign budget. + // Campaign budget resource names have the form: + // + // `customers/{customer_id}/campaignBudgets/{budget_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + // The ID of the campaign budget. + // + // A campaign budget is created using the CampaignBudgetService create + // operation and is assigned a budget ID. A budget ID can be shared across + // different campaigns; the system will then allocate the campaign budget + // among different campaigns to get optimum results. + Id *wrappers.Int64Value `protobuf:"bytes,3,opt,name=id,proto3" json:"id,omitempty"` + // The name of the campaign budget. + // + // When creating a campaign budget through CampaignBudgetService, every + // explicitly shared campaign budget must have a non-null, non-empty name. + // Campaign budgets that are not explicitly shared derive their name from the + // attached campaign's name. + // + // The length of this string must be between 1 and 255, inclusive, + // in UTF-8 bytes, (trimmed). + Name *wrappers.StringValue `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + // The amount of the budget, in the local currency for the account. + // Amount is specified in micros, where one million is equivalent to one + // currency unit. + AmountMicros *wrappers.Int64Value `protobuf:"bytes,5,opt,name=amount_micros,json=amountMicros,proto3" json:"amount_micros,omitempty"` + // The lifetime amount of the budget, in the local currency for the account. + // Amount is specified in micros, where one million is equivalent to one + // currency unit. + TotalAmountMicros *wrappers.Int64Value `protobuf:"bytes,10,opt,name=total_amount_micros,json=totalAmountMicros,proto3" json:"total_amount_micros,omitempty"` + // The status of this campaign budget. This field is read-only. + Status enums.BudgetStatusEnum_BudgetStatus `protobuf:"varint,6,opt,name=status,proto3,enum=google.ads.googleads.v0.enums.BudgetStatusEnum_BudgetStatus" json:"status,omitempty"` + // The delivery method that determines the rate at which the campaign budget + // is spent. + // + // Defaults to STANDARD if unspecified in a create operation. + DeliveryMethod enums.BudgetDeliveryMethodEnum_BudgetDeliveryMethod `protobuf:"varint,7,opt,name=delivery_method,json=deliveryMethod,proto3,enum=google.ads.googleads.v0.enums.BudgetDeliveryMethodEnum_BudgetDeliveryMethod" json:"delivery_method,omitempty"` + // Whether the budget is explicitly shared. This field is set to false by + // default. + // + // If true, the budget was created with the purpose of sharing + // across one or more campaigns. + // + // If false, the budget was created with the intention of only being used + // with a single campaign. The budget's name and status will stay in sync + // with the campaign's name and status. Attempting to share the budget with a + // second campaign will result in an error. + // + // A non-shared budget can become an explicitly shared. The same operation + // must + // also assign the budget a name. + // + // A shared campaign budget can never become non-shared. + ExplicitlyShared *wrappers.BoolValue `protobuf:"bytes,8,opt,name=explicitly_shared,json=explicitlyShared,proto3" json:"explicitly_shared,omitempty"` + // The number of campaigns actively using the budget. + // + // This field is read-only. + ReferenceCount *wrappers.Int64Value `protobuf:"bytes,9,opt,name=reference_count,json=referenceCount,proto3" json:"reference_count,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CampaignBudget) Reset() { *m = CampaignBudget{} } +func (m *CampaignBudget) String() string { return proto.CompactTextString(m) } +func (*CampaignBudget) ProtoMessage() {} +func (*CampaignBudget) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_budget_866e5dbe05012bda, []int{0} +} +func (m *CampaignBudget) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CampaignBudget.Unmarshal(m, b) +} +func (m *CampaignBudget) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CampaignBudget.Marshal(b, m, deterministic) +} +func (dst *CampaignBudget) XXX_Merge(src proto.Message) { + xxx_messageInfo_CampaignBudget.Merge(dst, src) +} +func (m *CampaignBudget) XXX_Size() int { + return xxx_messageInfo_CampaignBudget.Size(m) +} +func (m *CampaignBudget) XXX_DiscardUnknown() { + xxx_messageInfo_CampaignBudget.DiscardUnknown(m) +} + +var xxx_messageInfo_CampaignBudget proto.InternalMessageInfo + +func (m *CampaignBudget) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func (m *CampaignBudget) GetId() *wrappers.Int64Value { + if m != nil { + return m.Id + } + return nil +} + +func (m *CampaignBudget) GetName() *wrappers.StringValue { + if m != nil { + return m.Name + } + return nil +} + +func (m *CampaignBudget) GetAmountMicros() *wrappers.Int64Value { + if m != nil { + return m.AmountMicros + } + return nil +} + +func (m *CampaignBudget) GetTotalAmountMicros() *wrappers.Int64Value { + if m != nil { + return m.TotalAmountMicros + } + return nil +} + +func (m *CampaignBudget) GetStatus() enums.BudgetStatusEnum_BudgetStatus { + if m != nil { + return m.Status + } + return enums.BudgetStatusEnum_UNSPECIFIED +} + +func (m *CampaignBudget) GetDeliveryMethod() enums.BudgetDeliveryMethodEnum_BudgetDeliveryMethod { + if m != nil { + return m.DeliveryMethod + } + return enums.BudgetDeliveryMethodEnum_UNSPECIFIED +} + +func (m *CampaignBudget) GetExplicitlyShared() *wrappers.BoolValue { + if m != nil { + return m.ExplicitlyShared + } + return nil +} + +func (m *CampaignBudget) GetReferenceCount() *wrappers.Int64Value { + if m != nil { + return m.ReferenceCount + } + return nil +} + +func init() { + proto.RegisterType((*CampaignBudget)(nil), "google.ads.googleads.v0.resources.CampaignBudget") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/campaign_budget.proto", fileDescriptor_campaign_budget_866e5dbe05012bda) +} + +var fileDescriptor_campaign_budget_866e5dbe05012bda = []byte{ + // 498 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x93, 0xdf, 0x6e, 0xd3, 0x30, + 0x14, 0xc6, 0x95, 0xae, 0x14, 0x66, 0xb6, 0x8e, 0x65, 0x37, 0x51, 0x41, 0xa8, 0x03, 0x21, 0x55, + 0x42, 0x72, 0xca, 0x40, 0x20, 0x01, 0x17, 0xa4, 0x1b, 0xaa, 0xf8, 0x33, 0x34, 0xa5, 0xa8, 0x17, + 0xa8, 0x52, 0xe4, 0xc6, 0x67, 0x59, 0xa4, 0xc4, 0x8e, 0xfc, 0xa7, 0xb0, 0xd7, 0xe1, 0x92, 0x47, + 0xe1, 0x09, 0x78, 0x1b, 0x50, 0xec, 0x24, 0x2c, 0x4c, 0xa3, 0xbb, 0x3b, 0xb1, 0xbf, 0xdf, 0x77, + 0xec, 0xcf, 0x39, 0xe8, 0x45, 0xc2, 0x79, 0x92, 0x81, 0x4f, 0xa8, 0xf4, 0x6d, 0x59, 0x56, 0xab, + 0xb1, 0x2f, 0x40, 0x72, 0x2d, 0x62, 0x90, 0x7e, 0x4c, 0xf2, 0x82, 0xa4, 0x09, 0x8b, 0x96, 0x9a, + 0x26, 0xa0, 0x70, 0x21, 0xb8, 0xe2, 0xee, 0xbe, 0x55, 0x63, 0x42, 0x25, 0x6e, 0x40, 0xbc, 0x1a, + 0xe3, 0x06, 0x1c, 0xbc, 0xbc, 0xca, 0x1b, 0x98, 0xce, 0xa5, 0x6f, 0xed, 0x22, 0x0a, 0x59, 0xba, + 0x02, 0x71, 0x1e, 0xe5, 0xa0, 0xce, 0x38, 0xb5, 0xf6, 0x83, 0x27, 0xd7, 0x62, 0xa5, 0x22, 0x4a, + 0xcb, 0x0a, 0xb9, 0x5f, 0x21, 0xe6, 0x6b, 0xa9, 0x4f, 0xfd, 0xaf, 0x82, 0x14, 0x05, 0x88, 0x6a, + 0xff, 0xc1, 0xef, 0x2e, 0xea, 0x1f, 0x56, 0x77, 0x99, 0x18, 0xde, 0x7d, 0x88, 0xb6, 0xeb, 0xe3, + 0x46, 0x8c, 0xe4, 0xe0, 0x39, 0x43, 0x67, 0xb4, 0x19, 0x6e, 0xd5, 0x8b, 0x9f, 0x48, 0x0e, 0xee, + 0x63, 0xd4, 0x49, 0xa9, 0xb7, 0x31, 0x74, 0x46, 0xb7, 0x0f, 0xee, 0x56, 0x77, 0xc5, 0x75, 0x13, + 0xfc, 0x8e, 0xa9, 0xe7, 0xcf, 0xe6, 0x24, 0xd3, 0x10, 0x76, 0x52, 0xea, 0x8e, 0x51, 0xd7, 0x18, + 0x75, 0x8d, 0xfc, 0xde, 0x25, 0xf9, 0x4c, 0x89, 0x94, 0x25, 0x56, 0x6f, 0x94, 0xee, 0x1b, 0xb4, + 0x4d, 0x72, 0xae, 0x99, 0x8a, 0xf2, 0x34, 0x16, 0x5c, 0x7a, 0x37, 0xd6, 0x77, 0xda, 0xb2, 0xc4, + 0xb1, 0x01, 0xdc, 0x0f, 0x68, 0x4f, 0x71, 0x45, 0xb2, 0xa8, 0xed, 0x83, 0xd6, 0xfb, 0xec, 0x1a, + 0x2e, 0xb8, 0x68, 0xf6, 0x19, 0xf5, 0x6c, 0xaa, 0x5e, 0x6f, 0xe8, 0x8c, 0xfa, 0x07, 0xaf, 0xf1, + 0x55, 0x0f, 0x6d, 0x5e, 0x02, 0xdb, 0x24, 0x67, 0x06, 0x79, 0xcb, 0x74, 0xde, 0x5a, 0x08, 0x2b, + 0x2f, 0x57, 0xa3, 0x9d, 0x7f, 0xde, 0xd9, 0xbb, 0x69, 0xec, 0x3f, 0x5e, 0xcb, 0xfe, 0xa8, 0x62, + 0x8f, 0x0d, 0x7a, 0xa1, 0x4d, 0x7b, 0x23, 0xec, 0xd3, 0xd6, 0xb7, 0x3b, 0x45, 0xbb, 0xf0, 0xad, + 0xc8, 0xd2, 0x38, 0x55, 0xd9, 0x79, 0x24, 0xcf, 0x88, 0x00, 0xea, 0xdd, 0x32, 0xb9, 0x0c, 0x2e, + 0xe5, 0x32, 0xe1, 0x3c, 0xb3, 0xb1, 0xdc, 0xf9, 0x0b, 0xcd, 0x0c, 0xe3, 0x1e, 0xa1, 0x1d, 0x01, + 0xa7, 0x20, 0x80, 0xc5, 0x10, 0xc5, 0x65, 0x5c, 0xde, 0xe6, 0xfa, 0x78, 0xfb, 0x0d, 0x73, 0x58, + 0x22, 0x93, 0x5f, 0x0e, 0x7a, 0x14, 0xf3, 0x1c, 0xaf, 0x1d, 0x9d, 0xc9, 0x5e, 0xfb, 0x47, 0x3d, + 0x29, 0xcd, 0x4f, 0x9c, 0x2f, 0xef, 0x2b, 0x32, 0xe1, 0x19, 0x61, 0x09, 0xe6, 0x22, 0xf1, 0x13, + 0x60, 0xa6, 0x75, 0x3d, 0x25, 0x45, 0x2a, 0xff, 0x33, 0xcc, 0xaf, 0x9a, 0xea, 0x7b, 0x67, 0x63, + 0x1a, 0x04, 0x3f, 0x3a, 0xfb, 0x53, 0x6b, 0x19, 0x50, 0x89, 0x6d, 0x59, 0x56, 0xf3, 0x31, 0x0e, + 0x6b, 0xe5, 0xcf, 0x5a, 0xb3, 0x08, 0xa8, 0x5c, 0x34, 0x9a, 0xc5, 0x7c, 0xbc, 0x68, 0x34, 0xcb, + 0x9e, 0x39, 0xc4, 0xd3, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x06, 0x9f, 0x5d, 0x80, 0x50, 0x04, + 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/campaign_criterion.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/campaign_criterion.pb.go new file mode 100644 index 000000000..d34cb9a13 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/campaign_criterion.pb.go @@ -0,0 +1,895 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/campaign_criterion.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import common "google.golang.org/genproto/googleapis/ads/googleads/v0/common" +import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A campaign criterion. +type CampaignCriterion struct { + // The resource name of the campaign criterion. + // Campaign criterion resource names have the form: + // + // `customers/{customer_id}/campaignCriteria/{campaign_id}_{criterion_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + // The campaign to which the criterion belongs. + Campaign *wrappers.StringValue `protobuf:"bytes,4,opt,name=campaign,proto3" json:"campaign,omitempty"` + // The ID of the criterion. + // + // This field is ignored during mutate. + CriterionId *wrappers.Int64Value `protobuf:"bytes,5,opt,name=criterion_id,json=criterionId,proto3" json:"criterion_id,omitempty"` + // The modifier for the bids when the criterion matches. The modifier must be + // in the range: 0.1 - 10.0. Most targetable criteria types support modifiers. + // Use 0 to opt out of a Device type. + BidModifier *wrappers.FloatValue `protobuf:"bytes,14,opt,name=bid_modifier,json=bidModifier,proto3" json:"bid_modifier,omitempty"` + // Whether to target (`false`) or exclude (`true`) the criterion. + Negative *wrappers.BoolValue `protobuf:"bytes,7,opt,name=negative,proto3" json:"negative,omitempty"` + // The type of the criterion. + Type enums.CriterionTypeEnum_CriterionType `protobuf:"varint,6,opt,name=type,proto3,enum=google.ads.googleads.v0.enums.CriterionTypeEnum_CriterionType" json:"type,omitempty"` + // The campaign criterion. + // + // Exactly one must be set. + // + // Types that are valid to be assigned to Criterion: + // *CampaignCriterion_Keyword + // *CampaignCriterion_Placement + // *CampaignCriterion_Location + // *CampaignCriterion_Device + // *CampaignCriterion_AdSchedule + // *CampaignCriterion_AgeRange + // *CampaignCriterion_Gender + // *CampaignCriterion_IncomeRange + // *CampaignCriterion_ParentalStatus + // *CampaignCriterion_UserList + // *CampaignCriterion_YoutubeVideo + // *CampaignCriterion_YoutubeChannel + // *CampaignCriterion_Proximity + // *CampaignCriterion_Topic + // *CampaignCriterion_ListingScope + // *CampaignCriterion_Language + // *CampaignCriterion_IpBlock + // *CampaignCriterion_ContentLabel + // *CampaignCriterion_Carrier + // *CampaignCriterion_UserInterest + Criterion isCampaignCriterion_Criterion `protobuf_oneof:"criterion"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CampaignCriterion) Reset() { *m = CampaignCriterion{} } +func (m *CampaignCriterion) String() string { return proto.CompactTextString(m) } +func (*CampaignCriterion) ProtoMessage() {} +func (*CampaignCriterion) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_criterion_b68a52a17805f4eb, []int{0} +} +func (m *CampaignCriterion) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CampaignCriterion.Unmarshal(m, b) +} +func (m *CampaignCriterion) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CampaignCriterion.Marshal(b, m, deterministic) +} +func (dst *CampaignCriterion) XXX_Merge(src proto.Message) { + xxx_messageInfo_CampaignCriterion.Merge(dst, src) +} +func (m *CampaignCriterion) XXX_Size() int { + return xxx_messageInfo_CampaignCriterion.Size(m) +} +func (m *CampaignCriterion) XXX_DiscardUnknown() { + xxx_messageInfo_CampaignCriterion.DiscardUnknown(m) +} + +var xxx_messageInfo_CampaignCriterion proto.InternalMessageInfo + +func (m *CampaignCriterion) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func (m *CampaignCriterion) GetCampaign() *wrappers.StringValue { + if m != nil { + return m.Campaign + } + return nil +} + +func (m *CampaignCriterion) GetCriterionId() *wrappers.Int64Value { + if m != nil { + return m.CriterionId + } + return nil +} + +func (m *CampaignCriterion) GetBidModifier() *wrappers.FloatValue { + if m != nil { + return m.BidModifier + } + return nil +} + +func (m *CampaignCriterion) GetNegative() *wrappers.BoolValue { + if m != nil { + return m.Negative + } + return nil +} + +func (m *CampaignCriterion) GetType() enums.CriterionTypeEnum_CriterionType { + if m != nil { + return m.Type + } + return enums.CriterionTypeEnum_UNSPECIFIED +} + +type isCampaignCriterion_Criterion interface { + isCampaignCriterion_Criterion() +} + +type CampaignCriterion_Keyword struct { + Keyword *common.KeywordInfo `protobuf:"bytes,8,opt,name=keyword,proto3,oneof"` +} + +type CampaignCriterion_Placement struct { + Placement *common.PlacementInfo `protobuf:"bytes,9,opt,name=placement,proto3,oneof"` +} + +type CampaignCriterion_Location struct { + Location *common.LocationInfo `protobuf:"bytes,12,opt,name=location,proto3,oneof"` +} + +type CampaignCriterion_Device struct { + Device *common.DeviceInfo `protobuf:"bytes,13,opt,name=device,proto3,oneof"` +} + +type CampaignCriterion_AdSchedule struct { + AdSchedule *common.AdScheduleInfo `protobuf:"bytes,15,opt,name=ad_schedule,json=adSchedule,proto3,oneof"` +} + +type CampaignCriterion_AgeRange struct { + AgeRange *common.AgeRangeInfo `protobuf:"bytes,16,opt,name=age_range,json=ageRange,proto3,oneof"` +} + +type CampaignCriterion_Gender struct { + Gender *common.GenderInfo `protobuf:"bytes,17,opt,name=gender,proto3,oneof"` +} + +type CampaignCriterion_IncomeRange struct { + IncomeRange *common.IncomeRangeInfo `protobuf:"bytes,18,opt,name=income_range,json=incomeRange,proto3,oneof"` +} + +type CampaignCriterion_ParentalStatus struct { + ParentalStatus *common.ParentalStatusInfo `protobuf:"bytes,19,opt,name=parental_status,json=parentalStatus,proto3,oneof"` +} + +type CampaignCriterion_UserList struct { + UserList *common.UserListInfo `protobuf:"bytes,22,opt,name=user_list,json=userList,proto3,oneof"` +} + +type CampaignCriterion_YoutubeVideo struct { + YoutubeVideo *common.YouTubeVideoInfo `protobuf:"bytes,20,opt,name=youtube_video,json=youtubeVideo,proto3,oneof"` +} + +type CampaignCriterion_YoutubeChannel struct { + YoutubeChannel *common.YouTubeChannelInfo `protobuf:"bytes,21,opt,name=youtube_channel,json=youtubeChannel,proto3,oneof"` +} + +type CampaignCriterion_Proximity struct { + Proximity *common.ProximityInfo `protobuf:"bytes,23,opt,name=proximity,proto3,oneof"` +} + +type CampaignCriterion_Topic struct { + Topic *common.TopicInfo `protobuf:"bytes,24,opt,name=topic,proto3,oneof"` +} + +type CampaignCriterion_ListingScope struct { + ListingScope *common.ListingScopeInfo `protobuf:"bytes,25,opt,name=listing_scope,json=listingScope,proto3,oneof"` +} + +type CampaignCriterion_Language struct { + Language *common.LanguageInfo `protobuf:"bytes,26,opt,name=language,proto3,oneof"` +} + +type CampaignCriterion_IpBlock struct { + IpBlock *common.IpBlockInfo `protobuf:"bytes,27,opt,name=ip_block,json=ipBlock,proto3,oneof"` +} + +type CampaignCriterion_ContentLabel struct { + ContentLabel *common.ContentLabelInfo `protobuf:"bytes,28,opt,name=content_label,json=contentLabel,proto3,oneof"` +} + +type CampaignCriterion_Carrier struct { + Carrier *common.CarrierInfo `protobuf:"bytes,29,opt,name=carrier,proto3,oneof"` +} + +type CampaignCriterion_UserInterest struct { + UserInterest *common.UserInterestInfo `protobuf:"bytes,30,opt,name=user_interest,json=userInterest,proto3,oneof"` +} + +func (*CampaignCriterion_Keyword) isCampaignCriterion_Criterion() {} + +func (*CampaignCriterion_Placement) isCampaignCriterion_Criterion() {} + +func (*CampaignCriterion_Location) isCampaignCriterion_Criterion() {} + +func (*CampaignCriterion_Device) isCampaignCriterion_Criterion() {} + +func (*CampaignCriterion_AdSchedule) isCampaignCriterion_Criterion() {} + +func (*CampaignCriterion_AgeRange) isCampaignCriterion_Criterion() {} + +func (*CampaignCriterion_Gender) isCampaignCriterion_Criterion() {} + +func (*CampaignCriterion_IncomeRange) isCampaignCriterion_Criterion() {} + +func (*CampaignCriterion_ParentalStatus) isCampaignCriterion_Criterion() {} + +func (*CampaignCriterion_UserList) isCampaignCriterion_Criterion() {} + +func (*CampaignCriterion_YoutubeVideo) isCampaignCriterion_Criterion() {} + +func (*CampaignCriterion_YoutubeChannel) isCampaignCriterion_Criterion() {} + +func (*CampaignCriterion_Proximity) isCampaignCriterion_Criterion() {} + +func (*CampaignCriterion_Topic) isCampaignCriterion_Criterion() {} + +func (*CampaignCriterion_ListingScope) isCampaignCriterion_Criterion() {} + +func (*CampaignCriterion_Language) isCampaignCriterion_Criterion() {} + +func (*CampaignCriterion_IpBlock) isCampaignCriterion_Criterion() {} + +func (*CampaignCriterion_ContentLabel) isCampaignCriterion_Criterion() {} + +func (*CampaignCriterion_Carrier) isCampaignCriterion_Criterion() {} + +func (*CampaignCriterion_UserInterest) isCampaignCriterion_Criterion() {} + +func (m *CampaignCriterion) GetCriterion() isCampaignCriterion_Criterion { + if m != nil { + return m.Criterion + } + return nil +} + +func (m *CampaignCriterion) GetKeyword() *common.KeywordInfo { + if x, ok := m.GetCriterion().(*CampaignCriterion_Keyword); ok { + return x.Keyword + } + return nil +} + +func (m *CampaignCriterion) GetPlacement() *common.PlacementInfo { + if x, ok := m.GetCriterion().(*CampaignCriterion_Placement); ok { + return x.Placement + } + return nil +} + +func (m *CampaignCriterion) GetLocation() *common.LocationInfo { + if x, ok := m.GetCriterion().(*CampaignCriterion_Location); ok { + return x.Location + } + return nil +} + +func (m *CampaignCriterion) GetDevice() *common.DeviceInfo { + if x, ok := m.GetCriterion().(*CampaignCriterion_Device); ok { + return x.Device + } + return nil +} + +func (m *CampaignCriterion) GetAdSchedule() *common.AdScheduleInfo { + if x, ok := m.GetCriterion().(*CampaignCriterion_AdSchedule); ok { + return x.AdSchedule + } + return nil +} + +func (m *CampaignCriterion) GetAgeRange() *common.AgeRangeInfo { + if x, ok := m.GetCriterion().(*CampaignCriterion_AgeRange); ok { + return x.AgeRange + } + return nil +} + +func (m *CampaignCriterion) GetGender() *common.GenderInfo { + if x, ok := m.GetCriterion().(*CampaignCriterion_Gender); ok { + return x.Gender + } + return nil +} + +func (m *CampaignCriterion) GetIncomeRange() *common.IncomeRangeInfo { + if x, ok := m.GetCriterion().(*CampaignCriterion_IncomeRange); ok { + return x.IncomeRange + } + return nil +} + +func (m *CampaignCriterion) GetParentalStatus() *common.ParentalStatusInfo { + if x, ok := m.GetCriterion().(*CampaignCriterion_ParentalStatus); ok { + return x.ParentalStatus + } + return nil +} + +func (m *CampaignCriterion) GetUserList() *common.UserListInfo { + if x, ok := m.GetCriterion().(*CampaignCriterion_UserList); ok { + return x.UserList + } + return nil +} + +func (m *CampaignCriterion) GetYoutubeVideo() *common.YouTubeVideoInfo { + if x, ok := m.GetCriterion().(*CampaignCriterion_YoutubeVideo); ok { + return x.YoutubeVideo + } + return nil +} + +func (m *CampaignCriterion) GetYoutubeChannel() *common.YouTubeChannelInfo { + if x, ok := m.GetCriterion().(*CampaignCriterion_YoutubeChannel); ok { + return x.YoutubeChannel + } + return nil +} + +func (m *CampaignCriterion) GetProximity() *common.ProximityInfo { + if x, ok := m.GetCriterion().(*CampaignCriterion_Proximity); ok { + return x.Proximity + } + return nil +} + +func (m *CampaignCriterion) GetTopic() *common.TopicInfo { + if x, ok := m.GetCriterion().(*CampaignCriterion_Topic); ok { + return x.Topic + } + return nil +} + +func (m *CampaignCriterion) GetListingScope() *common.ListingScopeInfo { + if x, ok := m.GetCriterion().(*CampaignCriterion_ListingScope); ok { + return x.ListingScope + } + return nil +} + +func (m *CampaignCriterion) GetLanguage() *common.LanguageInfo { + if x, ok := m.GetCriterion().(*CampaignCriterion_Language); ok { + return x.Language + } + return nil +} + +func (m *CampaignCriterion) GetIpBlock() *common.IpBlockInfo { + if x, ok := m.GetCriterion().(*CampaignCriterion_IpBlock); ok { + return x.IpBlock + } + return nil +} + +func (m *CampaignCriterion) GetContentLabel() *common.ContentLabelInfo { + if x, ok := m.GetCriterion().(*CampaignCriterion_ContentLabel); ok { + return x.ContentLabel + } + return nil +} + +func (m *CampaignCriterion) GetCarrier() *common.CarrierInfo { + if x, ok := m.GetCriterion().(*CampaignCriterion_Carrier); ok { + return x.Carrier + } + return nil +} + +func (m *CampaignCriterion) GetUserInterest() *common.UserInterestInfo { + if x, ok := m.GetCriterion().(*CampaignCriterion_UserInterest); ok { + return x.UserInterest + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*CampaignCriterion) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _CampaignCriterion_OneofMarshaler, _CampaignCriterion_OneofUnmarshaler, _CampaignCriterion_OneofSizer, []interface{}{ + (*CampaignCriterion_Keyword)(nil), + (*CampaignCriterion_Placement)(nil), + (*CampaignCriterion_Location)(nil), + (*CampaignCriterion_Device)(nil), + (*CampaignCriterion_AdSchedule)(nil), + (*CampaignCriterion_AgeRange)(nil), + (*CampaignCriterion_Gender)(nil), + (*CampaignCriterion_IncomeRange)(nil), + (*CampaignCriterion_ParentalStatus)(nil), + (*CampaignCriterion_UserList)(nil), + (*CampaignCriterion_YoutubeVideo)(nil), + (*CampaignCriterion_YoutubeChannel)(nil), + (*CampaignCriterion_Proximity)(nil), + (*CampaignCriterion_Topic)(nil), + (*CampaignCriterion_ListingScope)(nil), + (*CampaignCriterion_Language)(nil), + (*CampaignCriterion_IpBlock)(nil), + (*CampaignCriterion_ContentLabel)(nil), + (*CampaignCriterion_Carrier)(nil), + (*CampaignCriterion_UserInterest)(nil), + } +} + +func _CampaignCriterion_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*CampaignCriterion) + // criterion + switch x := m.Criterion.(type) { + case *CampaignCriterion_Keyword: + b.EncodeVarint(8<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Keyword); err != nil { + return err + } + case *CampaignCriterion_Placement: + b.EncodeVarint(9<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Placement); err != nil { + return err + } + case *CampaignCriterion_Location: + b.EncodeVarint(12<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Location); err != nil { + return err + } + case *CampaignCriterion_Device: + b.EncodeVarint(13<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Device); err != nil { + return err + } + case *CampaignCriterion_AdSchedule: + b.EncodeVarint(15<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.AdSchedule); err != nil { + return err + } + case *CampaignCriterion_AgeRange: + b.EncodeVarint(16<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.AgeRange); err != nil { + return err + } + case *CampaignCriterion_Gender: + b.EncodeVarint(17<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Gender); err != nil { + return err + } + case *CampaignCriterion_IncomeRange: + b.EncodeVarint(18<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.IncomeRange); err != nil { + return err + } + case *CampaignCriterion_ParentalStatus: + b.EncodeVarint(19<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.ParentalStatus); err != nil { + return err + } + case *CampaignCriterion_UserList: + b.EncodeVarint(22<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.UserList); err != nil { + return err + } + case *CampaignCriterion_YoutubeVideo: + b.EncodeVarint(20<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.YoutubeVideo); err != nil { + return err + } + case *CampaignCriterion_YoutubeChannel: + b.EncodeVarint(21<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.YoutubeChannel); err != nil { + return err + } + case *CampaignCriterion_Proximity: + b.EncodeVarint(23<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Proximity); err != nil { + return err + } + case *CampaignCriterion_Topic: + b.EncodeVarint(24<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Topic); err != nil { + return err + } + case *CampaignCriterion_ListingScope: + b.EncodeVarint(25<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.ListingScope); err != nil { + return err + } + case *CampaignCriterion_Language: + b.EncodeVarint(26<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Language); err != nil { + return err + } + case *CampaignCriterion_IpBlock: + b.EncodeVarint(27<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.IpBlock); err != nil { + return err + } + case *CampaignCriterion_ContentLabel: + b.EncodeVarint(28<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.ContentLabel); err != nil { + return err + } + case *CampaignCriterion_Carrier: + b.EncodeVarint(29<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Carrier); err != nil { + return err + } + case *CampaignCriterion_UserInterest: + b.EncodeVarint(30<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.UserInterest); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("CampaignCriterion.Criterion has unexpected type %T", x) + } + return nil +} + +func _CampaignCriterion_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*CampaignCriterion) + switch tag { + case 8: // criterion.keyword + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.KeywordInfo) + err := b.DecodeMessage(msg) + m.Criterion = &CampaignCriterion_Keyword{msg} + return true, err + case 9: // criterion.placement + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.PlacementInfo) + err := b.DecodeMessage(msg) + m.Criterion = &CampaignCriterion_Placement{msg} + return true, err + case 12: // criterion.location + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.LocationInfo) + err := b.DecodeMessage(msg) + m.Criterion = &CampaignCriterion_Location{msg} + return true, err + case 13: // criterion.device + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.DeviceInfo) + err := b.DecodeMessage(msg) + m.Criterion = &CampaignCriterion_Device{msg} + return true, err + case 15: // criterion.ad_schedule + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.AdScheduleInfo) + err := b.DecodeMessage(msg) + m.Criterion = &CampaignCriterion_AdSchedule{msg} + return true, err + case 16: // criterion.age_range + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.AgeRangeInfo) + err := b.DecodeMessage(msg) + m.Criterion = &CampaignCriterion_AgeRange{msg} + return true, err + case 17: // criterion.gender + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.GenderInfo) + err := b.DecodeMessage(msg) + m.Criterion = &CampaignCriterion_Gender{msg} + return true, err + case 18: // criterion.income_range + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.IncomeRangeInfo) + err := b.DecodeMessage(msg) + m.Criterion = &CampaignCriterion_IncomeRange{msg} + return true, err + case 19: // criterion.parental_status + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.ParentalStatusInfo) + err := b.DecodeMessage(msg) + m.Criterion = &CampaignCriterion_ParentalStatus{msg} + return true, err + case 22: // criterion.user_list + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.UserListInfo) + err := b.DecodeMessage(msg) + m.Criterion = &CampaignCriterion_UserList{msg} + return true, err + case 20: // criterion.youtube_video + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.YouTubeVideoInfo) + err := b.DecodeMessage(msg) + m.Criterion = &CampaignCriterion_YoutubeVideo{msg} + return true, err + case 21: // criterion.youtube_channel + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.YouTubeChannelInfo) + err := b.DecodeMessage(msg) + m.Criterion = &CampaignCriterion_YoutubeChannel{msg} + return true, err + case 23: // criterion.proximity + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.ProximityInfo) + err := b.DecodeMessage(msg) + m.Criterion = &CampaignCriterion_Proximity{msg} + return true, err + case 24: // criterion.topic + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.TopicInfo) + err := b.DecodeMessage(msg) + m.Criterion = &CampaignCriterion_Topic{msg} + return true, err + case 25: // criterion.listing_scope + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.ListingScopeInfo) + err := b.DecodeMessage(msg) + m.Criterion = &CampaignCriterion_ListingScope{msg} + return true, err + case 26: // criterion.language + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.LanguageInfo) + err := b.DecodeMessage(msg) + m.Criterion = &CampaignCriterion_Language{msg} + return true, err + case 27: // criterion.ip_block + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.IpBlockInfo) + err := b.DecodeMessage(msg) + m.Criterion = &CampaignCriterion_IpBlock{msg} + return true, err + case 28: // criterion.content_label + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.ContentLabelInfo) + err := b.DecodeMessage(msg) + m.Criterion = &CampaignCriterion_ContentLabel{msg} + return true, err + case 29: // criterion.carrier + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.CarrierInfo) + err := b.DecodeMessage(msg) + m.Criterion = &CampaignCriterion_Carrier{msg} + return true, err + case 30: // criterion.user_interest + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.UserInterestInfo) + err := b.DecodeMessage(msg) + m.Criterion = &CampaignCriterion_UserInterest{msg} + return true, err + default: + return false, nil + } +} + +func _CampaignCriterion_OneofSizer(msg proto.Message) (n int) { + m := msg.(*CampaignCriterion) + // criterion + switch x := m.Criterion.(type) { + case *CampaignCriterion_Keyword: + s := proto.Size(x.Keyword) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *CampaignCriterion_Placement: + s := proto.Size(x.Placement) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *CampaignCriterion_Location: + s := proto.Size(x.Location) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *CampaignCriterion_Device: + s := proto.Size(x.Device) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *CampaignCriterion_AdSchedule: + s := proto.Size(x.AdSchedule) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *CampaignCriterion_AgeRange: + s := proto.Size(x.AgeRange) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *CampaignCriterion_Gender: + s := proto.Size(x.Gender) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *CampaignCriterion_IncomeRange: + s := proto.Size(x.IncomeRange) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *CampaignCriterion_ParentalStatus: + s := proto.Size(x.ParentalStatus) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *CampaignCriterion_UserList: + s := proto.Size(x.UserList) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *CampaignCriterion_YoutubeVideo: + s := proto.Size(x.YoutubeVideo) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *CampaignCriterion_YoutubeChannel: + s := proto.Size(x.YoutubeChannel) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *CampaignCriterion_Proximity: + s := proto.Size(x.Proximity) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *CampaignCriterion_Topic: + s := proto.Size(x.Topic) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *CampaignCriterion_ListingScope: + s := proto.Size(x.ListingScope) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *CampaignCriterion_Language: + s := proto.Size(x.Language) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *CampaignCriterion_IpBlock: + s := proto.Size(x.IpBlock) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *CampaignCriterion_ContentLabel: + s := proto.Size(x.ContentLabel) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *CampaignCriterion_Carrier: + s := proto.Size(x.Carrier) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *CampaignCriterion_UserInterest: + s := proto.Size(x.UserInterest) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +func init() { + proto.RegisterType((*CampaignCriterion)(nil), "google.ads.googleads.v0.resources.CampaignCriterion") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/campaign_criterion.proto", fileDescriptor_campaign_criterion_b68a52a17805f4eb) +} + +var fileDescriptor_campaign_criterion_b68a52a17805f4eb = []byte{ + // 895 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x96, 0x6f, 0x6f, 0x1b, 0x35, + 0x18, 0xc0, 0xc9, 0xd8, 0xba, 0xc4, 0x49, 0x5b, 0x66, 0x60, 0x98, 0x6e, 0x4c, 0x1d, 0x08, 0xa9, + 0xfc, 0xd9, 0x25, 0x2a, 0x68, 0x42, 0x20, 0x4d, 0x4a, 0x32, 0xe8, 0xb2, 0x75, 0xa8, 0xa4, 0xa5, + 0x08, 0x54, 0x74, 0x72, 0x7c, 0x4f, 0x6f, 0xd6, 0xee, 0xec, 0x93, 0xed, 0xcb, 0xc8, 0xd7, 0xe1, + 0x25, 0x1f, 0x85, 0x77, 0xbc, 0xe6, 0xcb, 0x20, 0xfb, 0xec, 0x6b, 0xab, 0x2a, 0xdc, 0xbd, 0x3b, + 0x3f, 0x7d, 0x7e, 0xbf, 0x3e, 0xcf, 0x73, 0xb1, 0x7d, 0xe8, 0xdb, 0x54, 0xca, 0x34, 0x83, 0x21, + 0x4d, 0xf4, 0xb0, 0x7a, 0xb4, 0x4f, 0xcb, 0xd1, 0x50, 0x81, 0x96, 0xa5, 0x62, 0xa0, 0x87, 0x8c, + 0xe6, 0x05, 0xe5, 0xa9, 0x88, 0x99, 0xe2, 0x06, 0x14, 0x97, 0x22, 0x2a, 0x94, 0x34, 0x12, 0x3f, + 0xac, 0x80, 0x88, 0x26, 0x3a, 0xaa, 0xd9, 0x68, 0x39, 0x8a, 0x6a, 0x76, 0xe7, 0xd1, 0x3a, 0x3d, + 0x93, 0x79, 0x2e, 0xc5, 0xd0, 0x2b, 0x69, 0x65, 0xdc, 0xd9, 0x5f, 0x97, 0x0e, 0xa2, 0xcc, 0xf5, + 0xb0, 0x2e, 0x20, 0x36, 0xab, 0x02, 0x3c, 0xf3, 0xc0, 0x33, 0x6e, 0xb5, 0x28, 0xcf, 0x87, 0x6f, + 0x14, 0x2d, 0x0a, 0x50, 0xba, 0xfa, 0xfb, 0xc7, 0xff, 0x6c, 0xa3, 0x3b, 0x53, 0xdf, 0xc2, 0x34, + 0x08, 0xf0, 0x27, 0x68, 0x33, 0x54, 0x19, 0x0b, 0x9a, 0x03, 0xe9, 0xec, 0x76, 0xf6, 0x7a, 0xf3, + 0x41, 0x08, 0xfe, 0x48, 0x73, 0xc0, 0xdf, 0xa0, 0x6e, 0x68, 0x9e, 0xdc, 0xdc, 0xed, 0xec, 0xf5, + 0xf7, 0xef, 0xfb, 0x46, 0xa3, 0xf0, 0xdf, 0xa2, 0x63, 0xa3, 0xb8, 0x48, 0x4f, 0x69, 0x56, 0xc2, + 0xbc, 0xce, 0xc6, 0x4f, 0xd0, 0xe0, 0xa2, 0x58, 0x9e, 0x90, 0x5b, 0x8e, 0xbe, 0x77, 0x8d, 0x9e, + 0x09, 0xf3, 0xf8, 0xeb, 0x0a, 0xee, 0xd7, 0xc0, 0x2c, 0xb1, 0xfc, 0x82, 0x27, 0x71, 0x2e, 0x13, + 0x7e, 0xce, 0x41, 0x91, 0xad, 0x35, 0xfc, 0x0f, 0x99, 0xa4, 0xc6, 0xf3, 0x0b, 0x9e, 0xbc, 0xf4, + 0xf9, 0xf8, 0x31, 0xea, 0x0a, 0x48, 0xa9, 0xe1, 0x4b, 0x20, 0xb7, 0x1d, 0xbb, 0x73, 0x8d, 0x9d, + 0x48, 0x99, 0xf9, 0xba, 0x43, 0x2e, 0x9e, 0xa3, 0x9b, 0x76, 0xb4, 0x64, 0x63, 0xb7, 0xb3, 0xb7, + 0xb5, 0xff, 0x24, 0x5a, 0xf7, 0x86, 0xdd, 0xfb, 0x88, 0xea, 0x71, 0x9e, 0xac, 0x0a, 0xf8, 0x5e, + 0x94, 0xf9, 0xd5, 0xc8, 0xdc, 0xb9, 0xf0, 0x01, 0xba, 0xfd, 0x1a, 0x56, 0x6f, 0xa4, 0x4a, 0x48, + 0xd7, 0x95, 0xf2, 0xc5, 0x5a, 0x6d, 0xf5, 0xab, 0x88, 0x5e, 0x54, 0xe9, 0x33, 0x71, 0x2e, 0x9f, + 0xbd, 0x35, 0x0f, 0x34, 0x7e, 0x89, 0x7a, 0x45, 0x46, 0x19, 0xe4, 0x20, 0x0c, 0xe9, 0x39, 0xd5, + 0xa3, 0x26, 0xd5, 0x51, 0x00, 0xbc, 0xec, 0xc2, 0x80, 0x9f, 0xa3, 0x6e, 0x26, 0x19, 0x35, 0x5c, + 0x0a, 0x32, 0x70, 0xb6, 0x2f, 0x9b, 0x6c, 0x87, 0x3e, 0xdf, 0xcb, 0x6a, 0x1e, 0x3f, 0x45, 0x1b, + 0x09, 0x2c, 0x39, 0x03, 0xb2, 0xe9, 0x4c, 0x9f, 0x37, 0x99, 0x9e, 0xba, 0x6c, 0xef, 0xf1, 0x2c, + 0xfe, 0x09, 0xf5, 0x69, 0x12, 0x6b, 0xf6, 0x0a, 0x92, 0x32, 0x03, 0xb2, 0xed, 0x54, 0x51, 0x93, + 0x6a, 0x9c, 0x1c, 0x7b, 0xc2, 0xeb, 0x10, 0xad, 0x23, 0xf8, 0x05, 0xea, 0xd1, 0x14, 0x62, 0x45, + 0x45, 0x0a, 0xe4, 0x9d, 0x76, 0x5d, 0x8e, 0x53, 0x98, 0xdb, 0xfc, 0xd0, 0x25, 0xf5, 0x6b, 0xdb, + 0x65, 0x0a, 0x22, 0x01, 0x45, 0xee, 0xb4, 0xeb, 0xf2, 0xc0, 0x65, 0x87, 0x2e, 0x2b, 0x16, 0x9f, + 0xa0, 0x01, 0x17, 0x4c, 0xe6, 0xa1, 0x2a, 0xec, 0x5c, 0xc3, 0x26, 0xd7, 0xcc, 0x31, 0x97, 0x0b, + 0xeb, 0xf3, 0x8b, 0x10, 0xfe, 0x1d, 0x6d, 0x17, 0x54, 0x81, 0x30, 0x34, 0x8b, 0xb5, 0xa1, 0xa6, + 0xd4, 0xe4, 0x5d, 0x27, 0xde, 0x6f, 0xfc, 0x89, 0x78, 0xec, 0xd8, 0x51, 0xde, 0xbd, 0x55, 0x5c, + 0x89, 0xda, 0x39, 0x96, 0x1a, 0x54, 0x9c, 0x71, 0x6d, 0xc8, 0xdd, 0x76, 0x73, 0xfc, 0x59, 0x83, + 0x3a, 0xe4, 0x3a, 0xfc, 0xf4, 0xba, 0xa5, 0x5f, 0xe3, 0x5f, 0xd0, 0xe6, 0x4a, 0x96, 0xa6, 0x5c, + 0x40, 0xbc, 0xe4, 0x09, 0x48, 0xf2, 0x9e, 0x13, 0x8e, 0x9a, 0x84, 0xbf, 0xca, 0xf2, 0xa4, 0x5c, + 0xc0, 0xa9, 0x65, 0xbc, 0x74, 0xe0, 0x45, 0x2e, 0x66, 0x87, 0x10, 0xc4, 0xec, 0x15, 0x15, 0x02, + 0x32, 0xf2, 0x7e, 0xbb, 0x21, 0x78, 0xf5, 0xb4, 0xa2, 0xc2, 0x10, 0xbc, 0xcc, 0x47, 0xdd, 0x06, + 0x54, 0xf2, 0x0f, 0x9e, 0x73, 0xb3, 0x22, 0x1f, 0xb4, 0xdc, 0x80, 0x01, 0xa8, 0x37, 0x60, 0x08, + 0xe0, 0x31, 0xba, 0x65, 0x64, 0xc1, 0x19, 0x21, 0x4e, 0xf5, 0x59, 0x93, 0xea, 0xc4, 0x26, 0x7b, + 0x4d, 0x45, 0xda, 0x49, 0xda, 0x37, 0xc2, 0x45, 0x1a, 0x6b, 0x26, 0x0b, 0x20, 0x1f, 0xb6, 0x9b, + 0xe4, 0x61, 0x05, 0x1d, 0x5b, 0x26, 0x4c, 0x32, 0xbb, 0x14, 0x73, 0x87, 0x03, 0x15, 0x69, 0x49, + 0x53, 0x20, 0x3b, 0x2d, 0x0f, 0x07, 0x9f, 0x5f, 0x1f, 0x0e, 0x7e, 0x8d, 0x9f, 0xa1, 0x2e, 0x2f, + 0xe2, 0x45, 0x26, 0xd9, 0x6b, 0x72, 0xaf, 0xdd, 0x09, 0x38, 0x2b, 0x26, 0x36, 0x3d, 0x9c, 0x80, + 0xbc, 0x5a, 0xda, 0x76, 0x99, 0x14, 0x06, 0x84, 0x89, 0x33, 0xba, 0x80, 0x8c, 0xdc, 0x6f, 0xd7, + 0xee, 0xb4, 0x82, 0x0e, 0x2d, 0x13, 0xda, 0x65, 0x97, 0x62, 0xf6, 0x8c, 0x66, 0x54, 0x29, 0x7b, + 0xd5, 0x7c, 0xd4, 0xae, 0xc2, 0x69, 0x95, 0x1e, 0x2a, 0xf4, 0xb4, 0xad, 0xd0, 0xed, 0x13, 0x2e, + 0x0c, 0x28, 0xd0, 0x86, 0x3c, 0x68, 0x57, 0xa1, 0xdd, 0x2b, 0x33, 0xcf, 0x84, 0x0a, 0xcb, 0x4b, + 0xb1, 0x49, 0x1f, 0xf5, 0xea, 0x0b, 0x72, 0xf2, 0x6f, 0x07, 0x7d, 0xca, 0x64, 0x1e, 0x35, 0x7e, + 0x80, 0x4c, 0xee, 0x5e, 0xbb, 0xfa, 0x8f, 0xec, 0xfd, 0x77, 0xd4, 0xf9, 0xed, 0xb9, 0x87, 0x53, + 0x69, 0x5f, 0x54, 0x24, 0x55, 0x3a, 0x4c, 0x41, 0xb8, 0xdb, 0x31, 0x7c, 0x7b, 0x14, 0x5c, 0xff, + 0xcf, 0x87, 0xd1, 0x77, 0xf5, 0xd3, 0x9f, 0x37, 0xde, 0x3e, 0x18, 0x8f, 0xff, 0xba, 0xf1, 0xf0, + 0xa0, 0x52, 0x8e, 0x13, 0x1d, 0x55, 0x8f, 0xf6, 0xe9, 0x74, 0x14, 0xcd, 0x43, 0xe6, 0xdf, 0x21, + 0xe7, 0x6c, 0x9c, 0xe8, 0xb3, 0x3a, 0xe7, 0xec, 0x74, 0x74, 0x56, 0xe7, 0x2c, 0x36, 0x5c, 0x11, + 0x5f, 0xfd, 0x17, 0x00, 0x00, 0xff, 0xff, 0xf1, 0x90, 0xae, 0x1a, 0x9c, 0x09, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/campaign_feed.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/campaign_feed.pb.go new file mode 100644 index 000000000..670338de2 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/campaign_feed.pb.go @@ -0,0 +1,155 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/campaign_feed.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import common "google.golang.org/genproto/googleapis/ads/googleads/v0/common" +import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A campaign feed. +type CampaignFeed struct { + // The resource name of the campaign feed. + // Campaign feed resource names have the form: + // + // `customers/{customer_id}/campaignFeeds/{campaign_id}_{feed_id} + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + // The feed to which the CampaignFeed belongs. + Feed *wrappers.StringValue `protobuf:"bytes,2,opt,name=feed,proto3" json:"feed,omitempty"` + // The campaign to which the CampaignFeed belongs. + Campaign *wrappers.StringValue `protobuf:"bytes,3,opt,name=campaign,proto3" json:"campaign,omitempty"` + // Indicates which placeholder types the feed may populate under the connected + // campaign. Required. + PlaceholderTypes []enums.PlaceholderTypeEnum_PlaceholderType `protobuf:"varint,4,rep,packed,name=placeholder_types,json=placeholderTypes,proto3,enum=google.ads.googleads.v0.enums.PlaceholderTypeEnum_PlaceholderType" json:"placeholder_types,omitempty"` + // Matching function associated with the CampaignFeed. + // The matching function is used to filter the set of feed items selected. + // Required. + MatchingFunction *common.MatchingFunction `protobuf:"bytes,5,opt,name=matching_function,json=matchingFunction,proto3" json:"matching_function,omitempty"` + // Status of the campaign feed. + // This field is read-only. + Status enums.FeedLinkStatusEnum_FeedLinkStatus `protobuf:"varint,6,opt,name=status,proto3,enum=google.ads.googleads.v0.enums.FeedLinkStatusEnum_FeedLinkStatus" json:"status,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CampaignFeed) Reset() { *m = CampaignFeed{} } +func (m *CampaignFeed) String() string { return proto.CompactTextString(m) } +func (*CampaignFeed) ProtoMessage() {} +func (*CampaignFeed) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_feed_95914acc8f5259ce, []int{0} +} +func (m *CampaignFeed) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CampaignFeed.Unmarshal(m, b) +} +func (m *CampaignFeed) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CampaignFeed.Marshal(b, m, deterministic) +} +func (dst *CampaignFeed) XXX_Merge(src proto.Message) { + xxx_messageInfo_CampaignFeed.Merge(dst, src) +} +func (m *CampaignFeed) XXX_Size() int { + return xxx_messageInfo_CampaignFeed.Size(m) +} +func (m *CampaignFeed) XXX_DiscardUnknown() { + xxx_messageInfo_CampaignFeed.DiscardUnknown(m) +} + +var xxx_messageInfo_CampaignFeed proto.InternalMessageInfo + +func (m *CampaignFeed) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func (m *CampaignFeed) GetFeed() *wrappers.StringValue { + if m != nil { + return m.Feed + } + return nil +} + +func (m *CampaignFeed) GetCampaign() *wrappers.StringValue { + if m != nil { + return m.Campaign + } + return nil +} + +func (m *CampaignFeed) GetPlaceholderTypes() []enums.PlaceholderTypeEnum_PlaceholderType { + if m != nil { + return m.PlaceholderTypes + } + return nil +} + +func (m *CampaignFeed) GetMatchingFunction() *common.MatchingFunction { + if m != nil { + return m.MatchingFunction + } + return nil +} + +func (m *CampaignFeed) GetStatus() enums.FeedLinkStatusEnum_FeedLinkStatus { + if m != nil { + return m.Status + } + return enums.FeedLinkStatusEnum_UNSPECIFIED +} + +func init() { + proto.RegisterType((*CampaignFeed)(nil), "google.ads.googleads.v0.resources.CampaignFeed") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/campaign_feed.proto", fileDescriptor_campaign_feed_95914acc8f5259ce) +} + +var fileDescriptor_campaign_feed_95914acc8f5259ce = []byte{ + // 450 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x93, 0xdd, 0x6a, 0xd4, 0x40, + 0x14, 0xc7, 0xc9, 0x6e, 0x5d, 0x74, 0xac, 0xa5, 0x9b, 0xab, 0x50, 0x44, 0xb6, 0x8a, 0xb0, 0x57, + 0x33, 0x61, 0xfd, 0x40, 0xf0, 0xc6, 0xac, 0xd8, 0x82, 0xa8, 0x2c, 0xa9, 0x2c, 0x22, 0x91, 0x30, + 0x4d, 0xce, 0x4e, 0x43, 0x33, 0x1f, 0xcc, 0x24, 0x95, 0xbe, 0x8e, 0x97, 0xbe, 0x89, 0x3e, 0x80, + 0xcf, 0x23, 0x99, 0x4c, 0xa2, 0x5d, 0x89, 0xed, 0xdd, 0xc9, 0xe1, 0xff, 0x3b, 0x73, 0xce, 0xf9, + 0x9f, 0xa0, 0x67, 0x4c, 0x4a, 0x56, 0x02, 0xa1, 0xb9, 0x21, 0x6d, 0xd8, 0x44, 0x17, 0x21, 0xd1, + 0x60, 0x64, 0xad, 0x33, 0x30, 0x24, 0xa3, 0x5c, 0xd1, 0x82, 0x89, 0x74, 0x03, 0x90, 0x63, 0xa5, + 0x65, 0x25, 0xfd, 0xc3, 0x56, 0x8b, 0x69, 0x6e, 0x70, 0x8f, 0xe1, 0x8b, 0x10, 0xf7, 0xd8, 0xc1, + 0xf3, 0xa1, 0xca, 0x99, 0xe4, 0x5c, 0x0a, 0xc2, 0x69, 0x95, 0x9d, 0x15, 0x82, 0xa5, 0x9b, 0x5a, + 0x64, 0x55, 0x21, 0x45, 0x5b, 0xfa, 0xe0, 0xe9, 0x10, 0x07, 0xa2, 0xe6, 0x86, 0x34, 0x4d, 0xa4, + 0x65, 0x21, 0xce, 0x53, 0x53, 0xd1, 0xaa, 0x36, 0x37, 0xa3, 0x54, 0x49, 0x33, 0x38, 0x93, 0x65, + 0x0e, 0x3a, 0xad, 0x2e, 0x15, 0x38, 0xea, 0x81, 0xa3, 0xec, 0xd7, 0x69, 0xbd, 0x21, 0x5f, 0x35, + 0x55, 0x0a, 0xb4, 0xab, 0xfa, 0xf0, 0xc7, 0x18, 0xed, 0xbe, 0x76, 0xe3, 0x1f, 0x01, 0xe4, 0xfe, + 0x23, 0x74, 0xaf, 0x9b, 0x30, 0x15, 0x94, 0x43, 0xe0, 0xcd, 0xbc, 0xf9, 0x9d, 0x78, 0xb7, 0x4b, + 0x7e, 0xa0, 0x1c, 0xfc, 0x10, 0xed, 0x34, 0x5d, 0x06, 0xa3, 0x99, 0x37, 0xbf, 0xbb, 0xb8, 0xef, + 0x16, 0x84, 0xbb, 0x47, 0xf0, 0x49, 0xa5, 0x0b, 0xc1, 0xd6, 0xb4, 0xac, 0x21, 0xb6, 0x4a, 0xff, + 0x05, 0xba, 0xdd, 0x6d, 0x39, 0x18, 0xdf, 0x80, 0xea, 0xd5, 0xbe, 0x44, 0xd3, 0xed, 0xd9, 0x4c, + 0xb0, 0x33, 0x1b, 0xcf, 0xf7, 0x16, 0x4b, 0x3c, 0x64, 0x92, 0xdd, 0x09, 0x5e, 0xfd, 0xe1, 0x3e, + 0x5e, 0x2a, 0x78, 0x23, 0x6a, 0xbe, 0x9d, 0x8b, 0xf7, 0xd5, 0xd5, 0x84, 0xf1, 0xbf, 0xa0, 0xe9, + 0x3f, 0xce, 0x05, 0xb7, 0x6c, 0xcf, 0xe1, 0xe0, 0x83, 0xad, 0xe5, 0xf8, 0xbd, 0x03, 0x8f, 0x1c, + 0x17, 0xef, 0xf3, 0xad, 0x8c, 0xff, 0x09, 0x4d, 0x5a, 0x5f, 0x83, 0xc9, 0xcc, 0x9b, 0xef, 0x2d, + 0x5e, 0x5d, 0x33, 0x44, 0xe3, 0xca, 0xbb, 0x42, 0x9c, 0x9f, 0x58, 0xc8, 0xce, 0x70, 0x35, 0x15, + 0xbb, 0x7a, 0xcb, 0x5f, 0x1e, 0x7a, 0x9c, 0x49, 0x8e, 0xaf, 0xbd, 0xdc, 0xe5, 0xf4, 0x6f, 0xcb, + 0x57, 0xcd, 0xfe, 0x57, 0xde, 0xe7, 0xb7, 0x8e, 0x63, 0xb2, 0xa4, 0x82, 0x61, 0xa9, 0x19, 0x61, + 0x20, 0xac, 0x3b, 0xdd, 0xc1, 0xa9, 0xc2, 0xfc, 0xe7, 0x3f, 0x7a, 0xd9, 0x47, 0xdf, 0x46, 0xe3, + 0xe3, 0x28, 0xfa, 0x3e, 0x3a, 0x3c, 0x6e, 0x4b, 0x46, 0xb9, 0xc1, 0x6d, 0xd8, 0x44, 0xeb, 0x10, + 0xc7, 0x9d, 0xf2, 0x67, 0xa7, 0x49, 0xa2, 0xdc, 0x24, 0xbd, 0x26, 0x59, 0x87, 0x49, 0xaf, 0x39, + 0x9d, 0xd8, 0x26, 0x9e, 0xfc, 0x0e, 0x00, 0x00, 0xff, 0xff, 0x37, 0x82, 0x1b, 0x4b, 0xcb, 0x03, + 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/campaign_group.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/campaign_group.pb.go new file mode 100644 index 000000000..b5cf7d30b --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/campaign_group.pb.go @@ -0,0 +1,133 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/campaign_group.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A campaign group. +type CampaignGroup struct { + // The resource name of the campaign group. + // Campaign group resource names have the form: + // + // `customers/{customer_id}/campaignGroups/{campaign_group_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + // The ID of the campaign group. + Id *wrappers.Int64Value `protobuf:"bytes,3,opt,name=id,proto3" json:"id,omitempty"` + // The name of the campaign group. + // + // This field is required and should not be empty when creating new campaign + // groups. + // + // It must not contain any null (code point 0x0), NL line feed + // (code point 0xA) or carriage return (code point 0xD) characters. + Name *wrappers.StringValue `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + // The status of the campaign group. + // + // When a new campaign group is added, the status defaults to ENABLED. + Status enums.CampaignGroupStatusEnum_CampaignGroupStatus `protobuf:"varint,5,opt,name=status,proto3,enum=google.ads.googleads.v0.enums.CampaignGroupStatusEnum_CampaignGroupStatus" json:"status,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CampaignGroup) Reset() { *m = CampaignGroup{} } +func (m *CampaignGroup) String() string { return proto.CompactTextString(m) } +func (*CampaignGroup) ProtoMessage() {} +func (*CampaignGroup) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_group_14ee489e1e23e16b, []int{0} +} +func (m *CampaignGroup) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CampaignGroup.Unmarshal(m, b) +} +func (m *CampaignGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CampaignGroup.Marshal(b, m, deterministic) +} +func (dst *CampaignGroup) XXX_Merge(src proto.Message) { + xxx_messageInfo_CampaignGroup.Merge(dst, src) +} +func (m *CampaignGroup) XXX_Size() int { + return xxx_messageInfo_CampaignGroup.Size(m) +} +func (m *CampaignGroup) XXX_DiscardUnknown() { + xxx_messageInfo_CampaignGroup.DiscardUnknown(m) +} + +var xxx_messageInfo_CampaignGroup proto.InternalMessageInfo + +func (m *CampaignGroup) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func (m *CampaignGroup) GetId() *wrappers.Int64Value { + if m != nil { + return m.Id + } + return nil +} + +func (m *CampaignGroup) GetName() *wrappers.StringValue { + if m != nil { + return m.Name + } + return nil +} + +func (m *CampaignGroup) GetStatus() enums.CampaignGroupStatusEnum_CampaignGroupStatus { + if m != nil { + return m.Status + } + return enums.CampaignGroupStatusEnum_UNSPECIFIED +} + +func init() { + proto.RegisterType((*CampaignGroup)(nil), "google.ads.googleads.v0.resources.CampaignGroup") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/campaign_group.proto", fileDescriptor_campaign_group_14ee489e1e23e16b) +} + +var fileDescriptor_campaign_group_14ee489e1e23e16b = []byte{ + // 351 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x92, 0xcf, 0x4a, 0xeb, 0x40, + 0x14, 0xc6, 0x99, 0xb4, 0xb7, 0x70, 0xe7, 0xde, 0xba, 0xc8, 0xaa, 0x54, 0x91, 0x56, 0x11, 0x0a, + 0xc2, 0x49, 0xa8, 0x52, 0x10, 0x57, 0xa9, 0x48, 0xb1, 0x0b, 0x29, 0x29, 0x74, 0x21, 0x81, 0x32, + 0x6d, 0xc6, 0x21, 0xd0, 0xcc, 0x84, 0x99, 0x4c, 0x7d, 0x1f, 0x97, 0x3e, 0x8a, 0x2f, 0xe0, 0xa3, + 0xb8, 0x95, 0xcc, 0x24, 0x81, 0xaa, 0xd5, 0xdd, 0x97, 0x93, 0xdf, 0xf7, 0x9d, 0x3f, 0x09, 0x1e, + 0x31, 0x21, 0xd8, 0x86, 0x7a, 0x24, 0x56, 0x9e, 0x95, 0x85, 0xda, 0xfa, 0x9e, 0xa4, 0x4a, 0x68, + 0xb9, 0xa6, 0xca, 0x5b, 0x93, 0x34, 0x23, 0x09, 0xe3, 0x4b, 0x26, 0x85, 0xce, 0x20, 0x93, 0x22, + 0x17, 0x6e, 0xdf, 0xc2, 0x40, 0x62, 0x05, 0xb5, 0x0f, 0xb6, 0x3e, 0xd4, 0xbe, 0xee, 0xd5, 0xbe, + 0x68, 0xca, 0x75, 0xfa, 0x39, 0x76, 0xa9, 0x72, 0x92, 0x6b, 0x65, 0xd3, 0xbb, 0xc7, 0xa5, 0xd5, + 0x3c, 0xad, 0xf4, 0xa3, 0xf7, 0x24, 0x49, 0x96, 0x51, 0x59, 0xbe, 0x3f, 0x79, 0x47, 0xb8, 0x7d, + 0x53, 0xfa, 0x27, 0x85, 0xdd, 0x3d, 0xc5, 0xed, 0xaa, 0xf3, 0x92, 0x93, 0x94, 0x76, 0x50, 0x0f, + 0x0d, 0xfe, 0x86, 0xff, 0xab, 0xe2, 0x3d, 0x49, 0xa9, 0x7b, 0x8e, 0x9d, 0x24, 0xee, 0x34, 0x7a, + 0x68, 0xf0, 0x6f, 0x78, 0x58, 0x8e, 0x0d, 0x55, 0x0f, 0xb8, 0xe3, 0xf9, 0xe8, 0x72, 0x41, 0x36, + 0x9a, 0x86, 0x4e, 0x12, 0xbb, 0x3e, 0x6e, 0x9a, 0xa0, 0xa6, 0xc1, 0x8f, 0xbe, 0xe0, 0xf3, 0x5c, + 0x26, 0x9c, 0x59, 0xde, 0x90, 0xee, 0x0a, 0xb7, 0xec, 0x16, 0x9d, 0x3f, 0x3d, 0x34, 0x38, 0x18, + 0x4e, 0x61, 0xdf, 0x91, 0xcc, 0x05, 0x60, 0x67, 0x83, 0xb9, 0x71, 0xde, 0x72, 0x9d, 0x7e, 0x57, + 0x0f, 0xcb, 0xe4, 0xf1, 0x1b, 0xc2, 0x67, 0x6b, 0x91, 0xc2, 0xaf, 0xe7, 0x1f, 0xbb, 0x3b, 0x31, + 0xb3, 0x62, 0xec, 0x19, 0x7a, 0x98, 0x96, 0x46, 0x26, 0x36, 0x84, 0x33, 0x10, 0x92, 0x79, 0x8c, + 0x72, 0xb3, 0x54, 0xf5, 0x91, 0xb2, 0x44, 0xfd, 0xf0, 0x3b, 0x5c, 0xd7, 0xea, 0xd9, 0x69, 0x4c, + 0x82, 0xe0, 0xc5, 0xe9, 0x4f, 0x6c, 0x64, 0x10, 0x2b, 0xb0, 0xb2, 0x50, 0x0b, 0x1f, 0xc2, 0x8a, + 0x7c, 0xad, 0x98, 0x28, 0x88, 0x55, 0x54, 0x33, 0xd1, 0xc2, 0x8f, 0x6a, 0x66, 0xd5, 0x32, 0x43, + 0x5c, 0x7c, 0x04, 0x00, 0x00, 0xff, 0xff, 0x77, 0x85, 0x5a, 0x80, 0x92, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/campaign_shared_set.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/campaign_shared_set.pb.go new file mode 100644 index 000000000..119d5cf0e --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/campaign_shared_set.pb.go @@ -0,0 +1,131 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/campaign_shared_set.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// CampaignSharedSets are used for managing the shared sets associated with a +// campaign. +type CampaignSharedSet struct { + // The resource name of the campaign shared set. + // Campaign shared set resource names have the form: + // + // `customers/{customer_id}/campaignSharedSets/{campaign_id}_{shared_set_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + // The campaign to which the campaign shared set belongs. + Campaign *wrappers.StringValue `protobuf:"bytes,3,opt,name=campaign,proto3" json:"campaign,omitempty"` + // The shared set associated with the campaign. This may be a negative keyword + // shared set of another customer. This customer should be a manager of the + // other customer, otherwise the campaign shared set will exist but have no + // serving effect. Only negative keyword shared sets can be associated with + // Shopping campaigns. Only negative placement shared sets can be associated + // with Display mobile app campaigns. + SharedSet *wrappers.StringValue `protobuf:"bytes,4,opt,name=shared_set,json=sharedSet,proto3" json:"shared_set,omitempty"` + // The status of this campaign shared set. Read only. + Status enums.CampaignSharedSetStatusEnum_CampaignSharedSetStatus `protobuf:"varint,2,opt,name=status,proto3,enum=google.ads.googleads.v0.enums.CampaignSharedSetStatusEnum_CampaignSharedSetStatus" json:"status,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CampaignSharedSet) Reset() { *m = CampaignSharedSet{} } +func (m *CampaignSharedSet) String() string { return proto.CompactTextString(m) } +func (*CampaignSharedSet) ProtoMessage() {} +func (*CampaignSharedSet) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_shared_set_5be2acea5bdaff30, []int{0} +} +func (m *CampaignSharedSet) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CampaignSharedSet.Unmarshal(m, b) +} +func (m *CampaignSharedSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CampaignSharedSet.Marshal(b, m, deterministic) +} +func (dst *CampaignSharedSet) XXX_Merge(src proto.Message) { + xxx_messageInfo_CampaignSharedSet.Merge(dst, src) +} +func (m *CampaignSharedSet) XXX_Size() int { + return xxx_messageInfo_CampaignSharedSet.Size(m) +} +func (m *CampaignSharedSet) XXX_DiscardUnknown() { + xxx_messageInfo_CampaignSharedSet.DiscardUnknown(m) +} + +var xxx_messageInfo_CampaignSharedSet proto.InternalMessageInfo + +func (m *CampaignSharedSet) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func (m *CampaignSharedSet) GetCampaign() *wrappers.StringValue { + if m != nil { + return m.Campaign + } + return nil +} + +func (m *CampaignSharedSet) GetSharedSet() *wrappers.StringValue { + if m != nil { + return m.SharedSet + } + return nil +} + +func (m *CampaignSharedSet) GetStatus() enums.CampaignSharedSetStatusEnum_CampaignSharedSetStatus { + if m != nil { + return m.Status + } + return enums.CampaignSharedSetStatusEnum_UNSPECIFIED +} + +func init() { + proto.RegisterType((*CampaignSharedSet)(nil), "google.ads.googleads.v0.resources.CampaignSharedSet") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/campaign_shared_set.proto", fileDescriptor_campaign_shared_set_5be2acea5bdaff30) +} + +var fileDescriptor_campaign_shared_set_5be2acea5bdaff30 = []byte{ + // 350 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x52, 0x4f, 0x4b, 0xc3, 0x30, + 0x1c, 0xa5, 0x9d, 0x0c, 0x17, 0xff, 0x80, 0x3d, 0x48, 0x19, 0x22, 0x9b, 0x22, 0xec, 0xf4, 0x6b, + 0x99, 0x17, 0x61, 0x20, 0x74, 0x22, 0x03, 0x0f, 0x32, 0x5a, 0xd8, 0x41, 0x0a, 0x25, 0x5b, 0x63, + 0x9c, 0xac, 0x49, 0x49, 0xda, 0xf9, 0x61, 0xbc, 0x79, 0xf4, 0xa3, 0xf8, 0x15, 0xfc, 0x32, 0xb2, + 0x36, 0x89, 0x87, 0x59, 0xf5, 0xf6, 0xda, 0xbc, 0xf7, 0x7e, 0xef, 0xe5, 0x17, 0x34, 0xa2, 0x9c, + 0xd3, 0x15, 0xf1, 0x70, 0x2a, 0xbd, 0x1a, 0x6e, 0xd0, 0xda, 0xf7, 0x04, 0x91, 0xbc, 0x14, 0x0b, + 0x22, 0xbd, 0x05, 0xce, 0x72, 0xbc, 0xa4, 0x2c, 0x91, 0x4f, 0x58, 0x90, 0x34, 0x91, 0xa4, 0x80, + 0x5c, 0xf0, 0x82, 0x3b, 0xfd, 0x5a, 0x01, 0x38, 0x95, 0x60, 0xc4, 0xb0, 0xf6, 0xc1, 0x88, 0xbb, + 0xd7, 0x4d, 0xfe, 0x84, 0x95, 0xd9, 0x8f, 0xde, 0x89, 0x2c, 0x70, 0x51, 0xca, 0x7a, 0x44, 0xf7, + 0x54, 0xe9, 0xab, 0xaf, 0x79, 0xf9, 0xe8, 0xbd, 0x08, 0x9c, 0xe7, 0x44, 0xa8, 0xf3, 0xb3, 0x57, + 0x1b, 0x1d, 0xdd, 0x28, 0x93, 0xa8, 0xf2, 0x88, 0x48, 0xe1, 0x9c, 0xa3, 0x03, 0x1d, 0x21, 0x61, + 0x38, 0x23, 0xae, 0xd5, 0xb3, 0x06, 0x9d, 0x70, 0x5f, 0xff, 0xbc, 0xc7, 0x19, 0x71, 0xae, 0xd0, + 0xae, 0x1e, 0xef, 0xb6, 0x7a, 0xd6, 0x60, 0x6f, 0x78, 0xa2, 0x5a, 0x80, 0x9e, 0x06, 0x51, 0x21, + 0x96, 0x8c, 0xce, 0xf0, 0xaa, 0x24, 0xa1, 0x61, 0x3b, 0x23, 0x84, 0xbe, 0xf3, 0xba, 0x3b, 0xff, + 0xd0, 0x76, 0xa4, 0xc9, 0xf6, 0x8c, 0xda, 0x75, 0x43, 0xd7, 0xee, 0x59, 0x83, 0xc3, 0x61, 0x08, + 0x4d, 0xb7, 0x58, 0x5d, 0x11, 0x6c, 0xb5, 0x8b, 0x2a, 0xf5, 0x2d, 0x2b, 0xb3, 0xa6, 0xb3, 0x50, + 0x4d, 0x18, 0x7f, 0x5a, 0xe8, 0x62, 0xc1, 0x33, 0xf8, 0x73, 0x4f, 0xe3, 0xe3, 0x2d, 0xab, 0xe9, + 0xa6, 0xc7, 0xd4, 0x7a, 0xb8, 0x53, 0x62, 0xca, 0x57, 0x98, 0x51, 0xe0, 0x82, 0x7a, 0x94, 0xb0, + 0xaa, 0xa5, 0xde, 0x68, 0xbe, 0x94, 0xbf, 0x3c, 0xa0, 0x91, 0x41, 0x6f, 0x76, 0x6b, 0x12, 0x04, + 0xef, 0x76, 0x7f, 0x52, 0x5b, 0x06, 0xa9, 0x84, 0x1a, 0x6e, 0xd0, 0xcc, 0x87, 0x50, 0x33, 0x3f, + 0x34, 0x27, 0x0e, 0x52, 0x19, 0x1b, 0x4e, 0x3c, 0xf3, 0x63, 0xc3, 0x99, 0xb7, 0xab, 0x10, 0x97, + 0x5f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xbe, 0xc4, 0xbd, 0xff, 0xc4, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/carrier_constant.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/carrier_constant.pb.go new file mode 100644 index 000000000..5c09e6515 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/carrier_constant.pb.go @@ -0,0 +1,124 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/carrier_constant.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A carrier criterion that can be used in campaign targeting. +type CarrierConstant struct { + // The resource name of the carrier criterion. + // Carrier criterion resource names have the form: + // + // `carrierConstants/{criterion_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + // The ID of the carrier criterion. + Id *wrappers.Int64Value `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` + // The full name of the carrier in English. + Name *wrappers.StringValue `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + // The country code of the country where the carrier is located, e.g., "AR", + // "FR", etc. + CountryCode *wrappers.StringValue `protobuf:"bytes,4,opt,name=country_code,json=countryCode,proto3" json:"country_code,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CarrierConstant) Reset() { *m = CarrierConstant{} } +func (m *CarrierConstant) String() string { return proto.CompactTextString(m) } +func (*CarrierConstant) ProtoMessage() {} +func (*CarrierConstant) Descriptor() ([]byte, []int) { + return fileDescriptor_carrier_constant_35c37f2f532b03be, []int{0} +} +func (m *CarrierConstant) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CarrierConstant.Unmarshal(m, b) +} +func (m *CarrierConstant) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CarrierConstant.Marshal(b, m, deterministic) +} +func (dst *CarrierConstant) XXX_Merge(src proto.Message) { + xxx_messageInfo_CarrierConstant.Merge(dst, src) +} +func (m *CarrierConstant) XXX_Size() int { + return xxx_messageInfo_CarrierConstant.Size(m) +} +func (m *CarrierConstant) XXX_DiscardUnknown() { + xxx_messageInfo_CarrierConstant.DiscardUnknown(m) +} + +var xxx_messageInfo_CarrierConstant proto.InternalMessageInfo + +func (m *CarrierConstant) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func (m *CarrierConstant) GetId() *wrappers.Int64Value { + if m != nil { + return m.Id + } + return nil +} + +func (m *CarrierConstant) GetName() *wrappers.StringValue { + if m != nil { + return m.Name + } + return nil +} + +func (m *CarrierConstant) GetCountryCode() *wrappers.StringValue { + if m != nil { + return m.CountryCode + } + return nil +} + +func init() { + proto.RegisterType((*CarrierConstant)(nil), "google.ads.googleads.v0.resources.CarrierConstant") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/carrier_constant.proto", fileDescriptor_carrier_constant_35c37f2f532b03be) +} + +var fileDescriptor_carrier_constant_35c37f2f532b03be = []byte{ + // 326 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x91, 0x41, 0x4b, 0xf3, 0x30, + 0x18, 0xc7, 0x69, 0x37, 0x5e, 0x78, 0xb3, 0x89, 0x50, 0x3c, 0x0c, 0x15, 0xd9, 0x14, 0x61, 0x20, + 0xa4, 0x45, 0x45, 0x04, 0x0f, 0xd2, 0xed, 0x30, 0xf4, 0x20, 0x63, 0xc2, 0x0e, 0x52, 0x18, 0x59, + 0x12, 0x43, 0x61, 0xcb, 0x53, 0x92, 0x74, 0xe2, 0xd7, 0xf1, 0xe8, 0x47, 0xf1, 0x03, 0x08, 0x7e, + 0x1b, 0x69, 0xd2, 0xf4, 0xa0, 0xa0, 0xde, 0xfe, 0x84, 0xdf, 0xff, 0xf7, 0x24, 0x79, 0xd0, 0xa5, + 0x00, 0x10, 0x2b, 0x1e, 0x13, 0xa6, 0x63, 0x17, 0xab, 0xb4, 0x49, 0x62, 0xc5, 0x35, 0x94, 0x8a, + 0x72, 0x1d, 0x53, 0xa2, 0x54, 0xce, 0xd5, 0x82, 0x82, 0xd4, 0x86, 0x48, 0x83, 0x0b, 0x05, 0x06, + 0xa2, 0x81, 0xc3, 0x31, 0x61, 0x1a, 0x37, 0x4d, 0xbc, 0x49, 0x70, 0xd3, 0xdc, 0x3d, 0xa8, 0xe5, + 0xb6, 0xb0, 0x2c, 0x1f, 0xe3, 0x27, 0x45, 0x8a, 0x82, 0x2b, 0xed, 0x14, 0x87, 0xef, 0x01, 0xda, + 0x1e, 0x3b, 0xfb, 0xb8, 0x96, 0x47, 0x47, 0x68, 0xcb, 0x0b, 0x16, 0x92, 0xac, 0x79, 0x2f, 0xe8, + 0x07, 0xc3, 0xff, 0xb3, 0xae, 0x3f, 0xbc, 0x23, 0x6b, 0x1e, 0x9d, 0xa0, 0x30, 0x67, 0xbd, 0xb0, + 0x1f, 0x0c, 0x3b, 0xa7, 0x7b, 0xf5, 0x74, 0xec, 0xa7, 0xe0, 0x1b, 0x69, 0x2e, 0xce, 0xe7, 0x64, + 0x55, 0xf2, 0x59, 0x98, 0xb3, 0x28, 0x41, 0x6d, 0x2b, 0x6a, 0x59, 0x7c, 0xff, 0x1b, 0x7e, 0x6f, + 0x54, 0x2e, 0x85, 0xe3, 0x2d, 0x19, 0x5d, 0xa3, 0x2e, 0x85, 0x52, 0x1a, 0xf5, 0xbc, 0xa0, 0xc0, + 0x78, 0xaf, 0xfd, 0x87, 0x66, 0xa7, 0x6e, 0x8c, 0x81, 0xf1, 0xd1, 0x47, 0x80, 0x8e, 0x29, 0xac, + 0xf1, 0xaf, 0x5f, 0x34, 0xda, 0xf9, 0xf2, 0xfe, 0x69, 0xe5, 0x9e, 0x06, 0x0f, 0xb7, 0x75, 0x55, + 0xc0, 0x8a, 0x48, 0x81, 0x41, 0x89, 0x58, 0x70, 0x69, 0x27, 0xfb, 0x3d, 0x15, 0xb9, 0xfe, 0x61, + 0x6d, 0x57, 0x4d, 0x7a, 0x09, 0x5b, 0x93, 0x34, 0x7d, 0x0d, 0x07, 0x13, 0xa7, 0x4c, 0x99, 0xc6, + 0x2e, 0x56, 0x69, 0x9e, 0xe0, 0x99, 0x27, 0xdf, 0x3c, 0x93, 0xa5, 0x4c, 0x67, 0x0d, 0x93, 0xcd, + 0x93, 0xac, 0x61, 0x96, 0xff, 0xec, 0x25, 0xce, 0x3e, 0x03, 0x00, 0x00, 0xff, 0xff, 0x00, 0x76, + 0x3f, 0x4b, 0x3a, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/change_status.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/change_status.pb.go new file mode 100644 index 000000000..770cb5a23 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/change_status.pb.go @@ -0,0 +1,181 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/change_status.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Describes the status of returned resource. +type ChangeStatus struct { + // The resource name of the change status. + // Change status resource names have the form: + // + // `customers/{customer_id}/changeStatus/{change_status_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + // Time at which the most recent change has occurred on this resource. + LastChangeDateTime *wrappers.StringValue `protobuf:"bytes,3,opt,name=last_change_date_time,json=lastChangeDateTime,proto3" json:"last_change_date_time,omitempty"` + // Represents the type of the changed resource. This dictates what fields + // will be set. For example, for AD_GROUP, campaign and ad_group fields will + // be set. + ResourceType enums.ChangeStatusResourceTypeEnum_ChangeStatusResourceType `protobuf:"varint,4,opt,name=resource_type,json=resourceType,proto3,enum=google.ads.googleads.v0.enums.ChangeStatusResourceTypeEnum_ChangeStatusResourceType" json:"resource_type,omitempty"` + // The Campaign affected by this change. + Campaign *wrappers.StringValue `protobuf:"bytes,5,opt,name=campaign,proto3" json:"campaign,omitempty"` + // The AdGroup affected by this change. + AdGroup *wrappers.StringValue `protobuf:"bytes,6,opt,name=ad_group,json=adGroup,proto3" json:"ad_group,omitempty"` + // Represents the status of the changed resource. + ResourceStatus enums.ChangeStatusOperationEnum_ChangeStatusOperation `protobuf:"varint,8,opt,name=resource_status,json=resourceStatus,proto3,enum=google.ads.googleads.v0.enums.ChangeStatusOperationEnum_ChangeStatusOperation" json:"resource_status,omitempty"` + // The AdGroupAd affected by this change. + AdGroupAd *wrappers.StringValue `protobuf:"bytes,9,opt,name=ad_group_ad,json=adGroupAd,proto3" json:"ad_group_ad,omitempty"` + // The AdGroupCriterion affected by this change. + AdGroupCriterion *wrappers.StringValue `protobuf:"bytes,10,opt,name=ad_group_criterion,json=adGroupCriterion,proto3" json:"ad_group_criterion,omitempty"` + // The CampaignCriterion affected by this change. + CampaignCriterion *wrappers.StringValue `protobuf:"bytes,11,opt,name=campaign_criterion,json=campaignCriterion,proto3" json:"campaign_criterion,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ChangeStatus) Reset() { *m = ChangeStatus{} } +func (m *ChangeStatus) String() string { return proto.CompactTextString(m) } +func (*ChangeStatus) ProtoMessage() {} +func (*ChangeStatus) Descriptor() ([]byte, []int) { + return fileDescriptor_change_status_c2a3b58499ad5eda, []int{0} +} +func (m *ChangeStatus) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ChangeStatus.Unmarshal(m, b) +} +func (m *ChangeStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ChangeStatus.Marshal(b, m, deterministic) +} +func (dst *ChangeStatus) XXX_Merge(src proto.Message) { + xxx_messageInfo_ChangeStatus.Merge(dst, src) +} +func (m *ChangeStatus) XXX_Size() int { + return xxx_messageInfo_ChangeStatus.Size(m) +} +func (m *ChangeStatus) XXX_DiscardUnknown() { + xxx_messageInfo_ChangeStatus.DiscardUnknown(m) +} + +var xxx_messageInfo_ChangeStatus proto.InternalMessageInfo + +func (m *ChangeStatus) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func (m *ChangeStatus) GetLastChangeDateTime() *wrappers.StringValue { + if m != nil { + return m.LastChangeDateTime + } + return nil +} + +func (m *ChangeStatus) GetResourceType() enums.ChangeStatusResourceTypeEnum_ChangeStatusResourceType { + if m != nil { + return m.ResourceType + } + return enums.ChangeStatusResourceTypeEnum_UNSPECIFIED +} + +func (m *ChangeStatus) GetCampaign() *wrappers.StringValue { + if m != nil { + return m.Campaign + } + return nil +} + +func (m *ChangeStatus) GetAdGroup() *wrappers.StringValue { + if m != nil { + return m.AdGroup + } + return nil +} + +func (m *ChangeStatus) GetResourceStatus() enums.ChangeStatusOperationEnum_ChangeStatusOperation { + if m != nil { + return m.ResourceStatus + } + return enums.ChangeStatusOperationEnum_UNSPECIFIED +} + +func (m *ChangeStatus) GetAdGroupAd() *wrappers.StringValue { + if m != nil { + return m.AdGroupAd + } + return nil +} + +func (m *ChangeStatus) GetAdGroupCriterion() *wrappers.StringValue { + if m != nil { + return m.AdGroupCriterion + } + return nil +} + +func (m *ChangeStatus) GetCampaignCriterion() *wrappers.StringValue { + if m != nil { + return m.CampaignCriterion + } + return nil +} + +func init() { + proto.RegisterType((*ChangeStatus)(nil), "google.ads.googleads.v0.resources.ChangeStatus") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/change_status.proto", fileDescriptor_change_status_c2a3b58499ad5eda) +} + +var fileDescriptor_change_status_c2a3b58499ad5eda = []byte{ + // 486 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x94, 0x51, 0x6b, 0xd4, 0x40, + 0x10, 0xc7, 0x49, 0x6b, 0x6b, 0x6f, 0xaf, 0x56, 0xbb, 0x20, 0x84, 0x22, 0x72, 0x55, 0x84, 0x7b, + 0xda, 0x1c, 0x15, 0x51, 0xa8, 0x20, 0x69, 0x95, 0x83, 0x0a, 0x6d, 0xb9, 0x1e, 0xf7, 0x20, 0x07, + 0x61, 0x9a, 0x8c, 0x6b, 0xe0, 0xb2, 0x1b, 0x76, 0x37, 0x2d, 0xf7, 0x75, 0x7c, 0xf4, 0x63, 0xf8, + 0xe8, 0x07, 0xf0, 0xf3, 0x48, 0x92, 0xdd, 0xf5, 0x50, 0x4e, 0xd3, 0xb7, 0xd9, 0xec, 0xfc, 0x7f, + 0x33, 0xff, 0xd9, 0xdd, 0x90, 0x57, 0x5c, 0x4a, 0xbe, 0xc0, 0x08, 0x32, 0x1d, 0xb5, 0x61, 0x1d, + 0xdd, 0x8c, 0x22, 0x85, 0x5a, 0x56, 0x2a, 0x45, 0x1d, 0xa5, 0x5f, 0x40, 0x70, 0x4c, 0xb4, 0x01, + 0x53, 0x69, 0x56, 0x2a, 0x69, 0x24, 0x3d, 0x6c, 0x73, 0x19, 0x64, 0x9a, 0x79, 0x19, 0xbb, 0x19, + 0x31, 0x2f, 0x3b, 0x38, 0x5e, 0x47, 0x46, 0x51, 0x15, 0x7f, 0x50, 0x13, 0x59, 0xa2, 0x02, 0x93, + 0x4b, 0xd1, 0xf2, 0x0f, 0xde, 0xdd, 0x45, 0xec, 0x6a, 0x26, 0x66, 0x59, 0xa2, 0x05, 0x3c, 0xb5, + 0x80, 0x66, 0x75, 0x5d, 0x7d, 0x8e, 0x6e, 0x15, 0x94, 0x25, 0x2a, 0x6b, 0xe0, 0xd9, 0xf7, 0x2d, + 0xb2, 0x7b, 0xda, 0x50, 0xae, 0x1a, 0x08, 0x7d, 0x4e, 0x1e, 0x78, 0x8e, 0x80, 0x02, 0xc3, 0x60, + 0x10, 0x0c, 0x7b, 0x93, 0x5d, 0xf7, 0xf1, 0x1c, 0x0a, 0xa4, 0x17, 0xe4, 0xf1, 0x02, 0xb4, 0x49, + 0x6c, 0xfd, 0x0c, 0x0c, 0x26, 0x26, 0x2f, 0x30, 0xdc, 0x1c, 0x04, 0xc3, 0xfe, 0xd1, 0x13, 0x3b, + 0x0b, 0xe6, 0xaa, 0xb2, 0x2b, 0xa3, 0x72, 0xc1, 0x67, 0xb0, 0xa8, 0x70, 0x42, 0x6b, 0x69, 0x5b, + 0xf3, 0x3d, 0x18, 0x9c, 0xe6, 0x05, 0xd2, 0xe5, 0x4a, 0xd5, 0xba, 0xfb, 0xf0, 0xde, 0x20, 0x18, + 0xee, 0x1d, 0x4d, 0xd9, 0xba, 0xf9, 0x36, 0xfe, 0xd9, 0x6a, 0xe7, 0x13, 0xab, 0x9f, 0x2e, 0x4b, + 0xfc, 0x20, 0xaa, 0x62, 0xed, 0xe6, 0x6f, 0x2f, 0xf5, 0x8a, 0xbe, 0x21, 0x3b, 0x29, 0x14, 0x25, + 0xe4, 0x5c, 0x84, 0x5b, 0x1d, 0xda, 0xf7, 0xd9, 0xf4, 0x35, 0xd9, 0x81, 0x2c, 0xe1, 0x4a, 0x56, + 0x65, 0xb8, 0xdd, 0x41, 0x79, 0x1f, 0xb2, 0x71, 0x9d, 0x4c, 0x6f, 0xc9, 0x43, 0xef, 0xb6, 0x3d, + 0xbb, 0x70, 0xa7, 0xf1, 0x7b, 0x7e, 0x07, 0xbf, 0x17, 0xee, 0xaa, 0xfc, 0x65, 0xd6, 0xef, 0x4c, + 0xf6, 0x5c, 0x19, 0x7b, 0xb8, 0x6f, 0x49, 0xdf, 0x75, 0x9c, 0x40, 0x16, 0xf6, 0x3a, 0x34, 0xdd, + 0xb3, 0x4d, 0xc7, 0x19, 0x3d, 0x23, 0xd4, 0xab, 0x53, 0x95, 0x1b, 0x54, 0xb9, 0x14, 0x21, 0xe9, + 0x00, 0x79, 0x64, 0x21, 0xa7, 0x4e, 0x45, 0x3f, 0x12, 0xea, 0xe6, 0xb8, 0xc2, 0xea, 0x77, 0x60, + 0xed, 0x3b, 0x9d, 0x87, 0x9d, 0xfc, 0x0c, 0xc8, 0x8b, 0x54, 0x16, 0xec, 0xbf, 0x8f, 0xf1, 0x64, + 0x7f, 0x75, 0x4e, 0x97, 0x35, 0xfe, 0x32, 0xf8, 0x74, 0x66, 0x75, 0x5c, 0x2e, 0x40, 0x70, 0x26, + 0x15, 0x8f, 0x38, 0x8a, 0xa6, 0xb8, 0x7b, 0x74, 0x65, 0xae, 0xff, 0xf1, 0x6b, 0x38, 0xf6, 0xd1, + 0xd7, 0x8d, 0xcd, 0x71, 0x1c, 0x7f, 0xdb, 0x38, 0x1c, 0xb7, 0xc8, 0x38, 0xd3, 0xac, 0x0d, 0xeb, + 0x68, 0x36, 0x62, 0xee, 0x22, 0xea, 0x1f, 0x2e, 0x67, 0x1e, 0x67, 0x7a, 0xee, 0x73, 0xe6, 0xb3, + 0xd1, 0xdc, 0xe7, 0x5c, 0x6f, 0x37, 0x4d, 0xbc, 0xfc, 0x15, 0x00, 0x00, 0xff, 0xff, 0x76, 0xfb, + 0xc9, 0xbc, 0x9e, 0x04, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/conversion_action.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/conversion_action.pb.go new file mode 100644 index 000000000..09170f40b --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/conversion_action.pb.go @@ -0,0 +1,401 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/conversion_action.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import common "google.golang.org/genproto/googleapis/ads/googleads/v0/common" +import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A conversion action. +type ConversionAction struct { + // The resource name of the conversion action. + // Conversion action resource names have the form: + // + // `customers/{customer_id}/conversionActions/{conversion_action_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + // The ID of the conversion action. + Id *wrappers.Int64Value `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` + // The name of the conversion action. + // + // This field is required and should not be empty when creating new + // conversion actions. + Name *wrappers.StringValue `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + // The status of this conversion action for conversion event accrual. + Status enums.ConversionActionStatusEnum_ConversionActionStatus `protobuf:"varint,4,opt,name=status,proto3,enum=google.ads.googleads.v0.enums.ConversionActionStatusEnum_ConversionActionStatus" json:"status,omitempty"` + // The type of this conversion action. + Type enums.ConversionActionTypeEnum_ConversionActionType `protobuf:"varint,5,opt,name=type,proto3,enum=google.ads.googleads.v0.enums.ConversionActionTypeEnum_ConversionActionType" json:"type,omitempty"` + // The category of conversions reported for this conversion action. + Category enums.ConversionActionCategoryEnum_ConversionActionCategory `protobuf:"varint,6,opt,name=category,proto3,enum=google.ads.googleads.v0.enums.ConversionActionCategoryEnum_ConversionActionCategory" json:"category,omitempty"` + // The resource name of the conversion action owner customer, or null if this + // is a system-defined conversion action. + OwnerCustomer *wrappers.StringValue `protobuf:"bytes,7,opt,name=owner_customer,json=ownerCustomer,proto3" json:"owner_customer,omitempty"` + // Whether this conversion action should be included in the "conversions" + // metric. + IncludeInConversionsMetric *wrappers.BoolValue `protobuf:"bytes,8,opt,name=include_in_conversions_metric,json=includeInConversionsMetric,proto3" json:"include_in_conversions_metric,omitempty"` + // The maximum number of days that may elapse between an interaction + // (e.g., a click) and a conversion event. + ClickThroughLookbackWindowDays *wrappers.Int64Value `protobuf:"bytes,9,opt,name=click_through_lookback_window_days,json=clickThroughLookbackWindowDays,proto3" json:"click_through_lookback_window_days,omitempty"` + // The maximum number of days which may elapse between an impression and a + // conversion without an interaction. + ViewThroughLookbackWindowDays *wrappers.Int64Value `protobuf:"bytes,10,opt,name=view_through_lookback_window_days,json=viewThroughLookbackWindowDays,proto3" json:"view_through_lookback_window_days,omitempty"` + // Settings related to the value for conversion events associated with this + // conversion action. + ValueSettings *ConversionAction_ValueSettings `protobuf:"bytes,11,opt,name=value_settings,json=valueSettings,proto3" json:"value_settings,omitempty"` + // How to count conversion events for the conversion action. + CountingType enums.ConversionActionCountingTypeEnum_ConversionActionCountingType `protobuf:"varint,12,opt,name=counting_type,json=countingType,proto3,enum=google.ads.googleads.v0.enums.ConversionActionCountingTypeEnum_ConversionActionCountingType" json:"counting_type,omitempty"` + // Settings related to this conversion action's attribution model. + AttributionModelSettings *ConversionAction_AttributionModelSettings `protobuf:"bytes,13,opt,name=attribution_model_settings,json=attributionModelSettings,proto3" json:"attribution_model_settings,omitempty"` + // The snippets used for tracking conversions. + TagSnippets []*common.TagSnippet `protobuf:"bytes,14,rep,name=tag_snippets,json=tagSnippets,proto3" json:"tag_snippets,omitempty"` + // The phone call duration in seconds after which a conversion should be + // reported for this conversion action. + // + // The value must be between 0 and 10000, inclusive. + PhoneCallDurationSeconds *wrappers.Int64Value `protobuf:"bytes,15,opt,name=phone_call_duration_seconds,json=phoneCallDurationSeconds,proto3" json:"phone_call_duration_seconds,omitempty"` + // App ID for an app conversion action. + AppId *wrappers.StringValue `protobuf:"bytes,16,opt,name=app_id,json=appId,proto3" json:"app_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ConversionAction) Reset() { *m = ConversionAction{} } +func (m *ConversionAction) String() string { return proto.CompactTextString(m) } +func (*ConversionAction) ProtoMessage() {} +func (*ConversionAction) Descriptor() ([]byte, []int) { + return fileDescriptor_conversion_action_062b3205e664191a, []int{0} +} +func (m *ConversionAction) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ConversionAction.Unmarshal(m, b) +} +func (m *ConversionAction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ConversionAction.Marshal(b, m, deterministic) +} +func (dst *ConversionAction) XXX_Merge(src proto.Message) { + xxx_messageInfo_ConversionAction.Merge(dst, src) +} +func (m *ConversionAction) XXX_Size() int { + return xxx_messageInfo_ConversionAction.Size(m) +} +func (m *ConversionAction) XXX_DiscardUnknown() { + xxx_messageInfo_ConversionAction.DiscardUnknown(m) +} + +var xxx_messageInfo_ConversionAction proto.InternalMessageInfo + +func (m *ConversionAction) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func (m *ConversionAction) GetId() *wrappers.Int64Value { + if m != nil { + return m.Id + } + return nil +} + +func (m *ConversionAction) GetName() *wrappers.StringValue { + if m != nil { + return m.Name + } + return nil +} + +func (m *ConversionAction) GetStatus() enums.ConversionActionStatusEnum_ConversionActionStatus { + if m != nil { + return m.Status + } + return enums.ConversionActionStatusEnum_UNSPECIFIED +} + +func (m *ConversionAction) GetType() enums.ConversionActionTypeEnum_ConversionActionType { + if m != nil { + return m.Type + } + return enums.ConversionActionTypeEnum_UNSPECIFIED +} + +func (m *ConversionAction) GetCategory() enums.ConversionActionCategoryEnum_ConversionActionCategory { + if m != nil { + return m.Category + } + return enums.ConversionActionCategoryEnum_UNSPECIFIED +} + +func (m *ConversionAction) GetOwnerCustomer() *wrappers.StringValue { + if m != nil { + return m.OwnerCustomer + } + return nil +} + +func (m *ConversionAction) GetIncludeInConversionsMetric() *wrappers.BoolValue { + if m != nil { + return m.IncludeInConversionsMetric + } + return nil +} + +func (m *ConversionAction) GetClickThroughLookbackWindowDays() *wrappers.Int64Value { + if m != nil { + return m.ClickThroughLookbackWindowDays + } + return nil +} + +func (m *ConversionAction) GetViewThroughLookbackWindowDays() *wrappers.Int64Value { + if m != nil { + return m.ViewThroughLookbackWindowDays + } + return nil +} + +func (m *ConversionAction) GetValueSettings() *ConversionAction_ValueSettings { + if m != nil { + return m.ValueSettings + } + return nil +} + +func (m *ConversionAction) GetCountingType() enums.ConversionActionCountingTypeEnum_ConversionActionCountingType { + if m != nil { + return m.CountingType + } + return enums.ConversionActionCountingTypeEnum_UNSPECIFIED +} + +func (m *ConversionAction) GetAttributionModelSettings() *ConversionAction_AttributionModelSettings { + if m != nil { + return m.AttributionModelSettings + } + return nil +} + +func (m *ConversionAction) GetTagSnippets() []*common.TagSnippet { + if m != nil { + return m.TagSnippets + } + return nil +} + +func (m *ConversionAction) GetPhoneCallDurationSeconds() *wrappers.Int64Value { + if m != nil { + return m.PhoneCallDurationSeconds + } + return nil +} + +func (m *ConversionAction) GetAppId() *wrappers.StringValue { + if m != nil { + return m.AppId + } + return nil +} + +// Settings related to this conversion action's attribution model. +type ConversionAction_AttributionModelSettings struct { + // The attribution model type of this conversion action. + AttributionModel enums.AttributionModelEnum_AttributionModel `protobuf:"varint,1,opt,name=attribution_model,json=attributionModel,proto3,enum=google.ads.googleads.v0.enums.AttributionModelEnum_AttributionModel" json:"attribution_model,omitempty"` + // The status of the data-driven attribution model for the conversion + // action. + DataDrivenModelStatus enums.DataDrivenModelStatusEnum_DataDrivenModelStatus `protobuf:"varint,2,opt,name=data_driven_model_status,json=dataDrivenModelStatus,proto3,enum=google.ads.googleads.v0.enums.DataDrivenModelStatusEnum_DataDrivenModelStatus" json:"data_driven_model_status,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ConversionAction_AttributionModelSettings) Reset() { + *m = ConversionAction_AttributionModelSettings{} +} +func (m *ConversionAction_AttributionModelSettings) String() string { return proto.CompactTextString(m) } +func (*ConversionAction_AttributionModelSettings) ProtoMessage() {} +func (*ConversionAction_AttributionModelSettings) Descriptor() ([]byte, []int) { + return fileDescriptor_conversion_action_062b3205e664191a, []int{0, 0} +} +func (m *ConversionAction_AttributionModelSettings) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ConversionAction_AttributionModelSettings.Unmarshal(m, b) +} +func (m *ConversionAction_AttributionModelSettings) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ConversionAction_AttributionModelSettings.Marshal(b, m, deterministic) +} +func (dst *ConversionAction_AttributionModelSettings) XXX_Merge(src proto.Message) { + xxx_messageInfo_ConversionAction_AttributionModelSettings.Merge(dst, src) +} +func (m *ConversionAction_AttributionModelSettings) XXX_Size() int { + return xxx_messageInfo_ConversionAction_AttributionModelSettings.Size(m) +} +func (m *ConversionAction_AttributionModelSettings) XXX_DiscardUnknown() { + xxx_messageInfo_ConversionAction_AttributionModelSettings.DiscardUnknown(m) +} + +var xxx_messageInfo_ConversionAction_AttributionModelSettings proto.InternalMessageInfo + +func (m *ConversionAction_AttributionModelSettings) GetAttributionModel() enums.AttributionModelEnum_AttributionModel { + if m != nil { + return m.AttributionModel + } + return enums.AttributionModelEnum_UNSPECIFIED +} + +func (m *ConversionAction_AttributionModelSettings) GetDataDrivenModelStatus() enums.DataDrivenModelStatusEnum_DataDrivenModelStatus { + if m != nil { + return m.DataDrivenModelStatus + } + return enums.DataDrivenModelStatusEnum_UNSPECIFIED +} + +// Settings related to the value for conversion events associated with this +// conversion action. +type ConversionAction_ValueSettings struct { + // The value to use when conversion events for this conversion action are + // sent with an invalid, disallowed or missing value, or when + // this conversion action is configured to always use the default value. + DefaultValue *wrappers.DoubleValue `protobuf:"bytes,1,opt,name=default_value,json=defaultValue,proto3" json:"default_value,omitempty"` + // The currency code to use when conversion events for this conversion + // action are sent with an invalid or missing currency code, or when this + // conversion action is configured to always use the default value. + DefaultCurrencyCode *wrappers.StringValue `protobuf:"bytes,2,opt,name=default_currency_code,json=defaultCurrencyCode,proto3" json:"default_currency_code,omitempty"` + // Controls whether the default value and default currency code are used in + // place of the value and currency code specified in conversion events for + // this conversion action. + AlwaysUseDefaultValue *wrappers.BoolValue `protobuf:"bytes,3,opt,name=always_use_default_value,json=alwaysUseDefaultValue,proto3" json:"always_use_default_value,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ConversionAction_ValueSettings) Reset() { *m = ConversionAction_ValueSettings{} } +func (m *ConversionAction_ValueSettings) String() string { return proto.CompactTextString(m) } +func (*ConversionAction_ValueSettings) ProtoMessage() {} +func (*ConversionAction_ValueSettings) Descriptor() ([]byte, []int) { + return fileDescriptor_conversion_action_062b3205e664191a, []int{0, 1} +} +func (m *ConversionAction_ValueSettings) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ConversionAction_ValueSettings.Unmarshal(m, b) +} +func (m *ConversionAction_ValueSettings) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ConversionAction_ValueSettings.Marshal(b, m, deterministic) +} +func (dst *ConversionAction_ValueSettings) XXX_Merge(src proto.Message) { + xxx_messageInfo_ConversionAction_ValueSettings.Merge(dst, src) +} +func (m *ConversionAction_ValueSettings) XXX_Size() int { + return xxx_messageInfo_ConversionAction_ValueSettings.Size(m) +} +func (m *ConversionAction_ValueSettings) XXX_DiscardUnknown() { + xxx_messageInfo_ConversionAction_ValueSettings.DiscardUnknown(m) +} + +var xxx_messageInfo_ConversionAction_ValueSettings proto.InternalMessageInfo + +func (m *ConversionAction_ValueSettings) GetDefaultValue() *wrappers.DoubleValue { + if m != nil { + return m.DefaultValue + } + return nil +} + +func (m *ConversionAction_ValueSettings) GetDefaultCurrencyCode() *wrappers.StringValue { + if m != nil { + return m.DefaultCurrencyCode + } + return nil +} + +func (m *ConversionAction_ValueSettings) GetAlwaysUseDefaultValue() *wrappers.BoolValue { + if m != nil { + return m.AlwaysUseDefaultValue + } + return nil +} + +func init() { + proto.RegisterType((*ConversionAction)(nil), "google.ads.googleads.v0.resources.ConversionAction") + proto.RegisterType((*ConversionAction_AttributionModelSettings)(nil), "google.ads.googleads.v0.resources.ConversionAction.AttributionModelSettings") + proto.RegisterType((*ConversionAction_ValueSettings)(nil), "google.ads.googleads.v0.resources.ConversionAction.ValueSettings") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/conversion_action.proto", fileDescriptor_conversion_action_062b3205e664191a) +} + +var fileDescriptor_conversion_action_062b3205e664191a = []byte{ + // 937 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x56, 0xdf, 0x6a, 0x23, 0xb7, + 0x17, 0x66, 0x9c, 0x6c, 0x7e, 0xbb, 0x8a, 0xed, 0xcd, 0x4f, 0x25, 0x30, 0x78, 0xbb, 0x4b, 0xb2, + 0xa5, 0x10, 0x5a, 0x18, 0x1b, 0x6f, 0x5b, 0xe8, 0x1f, 0x0a, 0x8e, 0x5d, 0x96, 0x94, 0x64, 0x09, + 0xe3, 0x34, 0x85, 0xc5, 0x45, 0x95, 0x25, 0xed, 0x78, 0xc8, 0x8c, 0x34, 0x95, 0x34, 0x36, 0xbe, + 0xec, 0x55, 0xa1, 0x2f, 0xd0, 0xfb, 0x5e, 0xf6, 0x0d, 0xfa, 0x0a, 0x7d, 0x84, 0xbe, 0x49, 0xef, + 0xca, 0x68, 0x34, 0x13, 0xc7, 0xf6, 0xc4, 0x71, 0xef, 0xa4, 0xd1, 0xf9, 0xbe, 0xef, 0x9c, 0xa3, + 0x73, 0x8e, 0x06, 0x7c, 0x1e, 0x08, 0x11, 0x44, 0xac, 0x8d, 0xa9, 0x6a, 0xe7, 0xcb, 0x6c, 0x35, + 0xed, 0xb4, 0x25, 0x53, 0x22, 0x95, 0x84, 0xa9, 0x36, 0x11, 0x7c, 0xca, 0xa4, 0x0a, 0x05, 0x47, + 0x98, 0xe8, 0x50, 0x70, 0x2f, 0x91, 0x42, 0x0b, 0x78, 0x9c, 0xdb, 0x7b, 0x98, 0x2a, 0xaf, 0x84, + 0x7a, 0xd3, 0x8e, 0x57, 0x42, 0x5b, 0x9d, 0x2a, 0x76, 0x22, 0xe2, 0x58, 0xf0, 0xb6, 0xc6, 0x01, + 0x52, 0x3c, 0x4c, 0x12, 0xa6, 0x73, 0xd2, 0xd6, 0xa7, 0x55, 0x08, 0xc6, 0xd3, 0x58, 0xb5, 0xb1, + 0xd6, 0x32, 0x1c, 0xa7, 0x99, 0x17, 0x28, 0x16, 0x94, 0x45, 0x16, 0xf6, 0xf5, 0xfd, 0xb0, 0x95, + 0x10, 0x10, 0xc1, 0x9a, 0x05, 0x42, 0xce, 0x2d, 0xbe, 0xbf, 0x35, 0x5e, 0xa4, 0x5c, 0x87, 0x3c, + 0x40, 0x7a, 0x9e, 0x30, 0x4b, 0xf2, 0xd5, 0xb6, 0x24, 0x4a, 0x63, 0x9d, 0x2a, 0x8b, 0xfe, 0x62, + 0x5b, 0xf4, 0xc3, 0x95, 0x29, 0xd6, 0x18, 0x51, 0x19, 0x4e, 0x99, 0xcd, 0xda, 0x5d, 0xe5, 0x17, + 0x16, 0x6d, 0x76, 0xe3, 0xf4, 0x5d, 0x7b, 0x26, 0x71, 0x92, 0x30, 0x69, 0xcf, 0x5f, 0xfe, 0xf9, + 0x14, 0x1c, 0xf4, 0x4b, 0xf9, 0x9e, 0x51, 0x87, 0x1f, 0x80, 0x46, 0x71, 0xcf, 0x88, 0xe3, 0x98, + 0xb9, 0xce, 0x91, 0x73, 0xf2, 0xc4, 0xaf, 0x17, 0x1f, 0xdf, 0xe0, 0x98, 0xc1, 0x8f, 0x41, 0x2d, + 0xa4, 0x6e, 0xed, 0xc8, 0x39, 0xd9, 0xef, 0x3e, 0xb3, 0x45, 0xe2, 0x15, 0x32, 0xde, 0x19, 0xd7, + 0x9f, 0x7d, 0x72, 0x8d, 0xa3, 0x94, 0xf9, 0xb5, 0x90, 0xc2, 0x0e, 0xd8, 0x35, 0x44, 0x3b, 0xc6, + 0xfc, 0xfd, 0x15, 0xf3, 0xa1, 0x96, 0x21, 0x0f, 0x72, 0x7b, 0x63, 0x09, 0x27, 0x60, 0x2f, 0x0f, + 0xc4, 0xdd, 0x3d, 0x72, 0x4e, 0x9a, 0xdd, 0x4b, 0xaf, 0xaa, 0x24, 0x4d, 0x1e, 0xbc, 0xe5, 0x20, + 0x86, 0x06, 0xfc, 0x0d, 0x4f, 0xe3, 0x8a, 0x23, 0xdf, 0xf2, 0xc3, 0x1f, 0xc1, 0x6e, 0x96, 0x6e, + 0xf7, 0x91, 0xd1, 0x39, 0xdf, 0x52, 0xe7, 0x6a, 0x9e, 0xb0, 0xb5, 0x2a, 0xd9, 0x81, 0x6f, 0x98, + 0x61, 0x02, 0x1e, 0x17, 0x35, 0xe9, 0xee, 0x19, 0x95, 0xab, 0x2d, 0x55, 0xfa, 0x16, 0xbe, 0x56, + 0xa9, 0x38, 0xf4, 0x4b, 0x15, 0xd8, 0x07, 0x4d, 0x31, 0xe3, 0x4c, 0x22, 0x92, 0x2a, 0x2d, 0x62, + 0x26, 0xdd, 0xff, 0x3d, 0x20, 0xf3, 0x0d, 0x83, 0xe9, 0x5b, 0x08, 0xfc, 0x01, 0x3c, 0x0f, 0x39, + 0x89, 0x52, 0xca, 0x50, 0x98, 0x75, 0x45, 0xa1, 0xaa, 0x50, 0xcc, 0xb4, 0x0c, 0x89, 0xfb, 0xd8, + 0x70, 0xb6, 0x56, 0x38, 0x4f, 0x85, 0x88, 0x72, 0xc6, 0x96, 0x25, 0x38, 0xe3, 0xb7, 0x4e, 0xab, + 0x0b, 0x83, 0x86, 0x01, 0x78, 0x49, 0xa2, 0x90, 0xdc, 0x20, 0x3d, 0x91, 0x22, 0x0d, 0x26, 0x28, + 0x12, 0xe2, 0x66, 0x8c, 0xc9, 0x0d, 0x9a, 0x85, 0x9c, 0x8a, 0x19, 0xa2, 0x78, 0xae, 0xdc, 0x27, + 0x9b, 0x0b, 0xec, 0x85, 0xa1, 0xb9, 0xca, 0x59, 0xce, 0x2d, 0xc9, 0xf7, 0x86, 0x63, 0x80, 0xe7, + 0x0a, 0x32, 0x70, 0x3c, 0x0d, 0xd9, 0xec, 0x7e, 0x1d, 0xb0, 0x59, 0xe7, 0x79, 0xc6, 0x52, 0x2d, + 0x33, 0x01, 0xcd, 0x69, 0x66, 0x87, 0x14, 0xd3, 0xd9, 0xf8, 0x50, 0xee, 0xbe, 0xe1, 0xec, 0x79, + 0x1b, 0x87, 0xe9, 0xca, 0x95, 0x7a, 0x46, 0x71, 0x68, 0x89, 0xfc, 0xc6, 0x74, 0x71, 0x0b, 0x7f, + 0x76, 0x40, 0xe3, 0xce, 0x90, 0x72, 0xeb, 0xa6, 0xaa, 0x46, 0xdb, 0x56, 0x95, 0xe5, 0xa8, 0xac, + 0xe1, 0x45, 0x03, 0xbf, 0x4e, 0x16, 0x76, 0xf0, 0x57, 0x07, 0xb4, 0x56, 0x26, 0xf6, 0x6d, 0xe8, + 0x0d, 0x13, 0xfa, 0xf9, 0x7f, 0x09, 0xbd, 0x77, 0xcb, 0x7a, 0x91, 0x91, 0x96, 0x59, 0x70, 0x71, + 0xc5, 0x09, 0xbc, 0x00, 0xf5, 0x85, 0xe7, 0x46, 0xb9, 0xcd, 0xa3, 0x9d, 0x93, 0xfd, 0xee, 0x47, + 0x95, 0xea, 0xf9, 0x13, 0xe5, 0x5d, 0xe1, 0x60, 0x98, 0x43, 0xfc, 0x7d, 0x5d, 0xae, 0x15, 0x7c, + 0x0b, 0x9e, 0x25, 0x13, 0xc1, 0x19, 0x22, 0x38, 0x8a, 0x10, 0x4d, 0x25, 0xce, 0x47, 0x3a, 0x23, + 0x82, 0x53, 0xe5, 0x3e, 0xdd, 0x5c, 0x2a, 0xae, 0xc1, 0xf7, 0x71, 0x14, 0x0d, 0x2c, 0x7a, 0x98, + 0x83, 0xe1, 0x2b, 0xb0, 0x87, 0x93, 0x04, 0x85, 0xd4, 0x3d, 0x78, 0x40, 0x47, 0x3e, 0xc2, 0x49, + 0x72, 0x46, 0x5b, 0xbf, 0xd5, 0x80, 0x5b, 0x95, 0x16, 0xf8, 0x13, 0xf8, 0xff, 0xca, 0x45, 0x98, + 0x89, 0xdd, 0xec, 0x0e, 0x36, 0x14, 0xc4, 0x32, 0xa7, 0x29, 0x82, 0xe5, 0x8f, 0xfe, 0xc1, 0x72, + 0xde, 0xe1, 0x2f, 0x0e, 0x70, 0xab, 0x1e, 0x1e, 0xf3, 0x24, 0x34, 0xbb, 0x6f, 0x36, 0x48, 0x0f, + 0xb0, 0xc6, 0x03, 0x83, 0xce, 0xa3, 0xb9, 0x1d, 0xd7, 0x6b, 0x4f, 0xfc, 0x43, 0xba, 0xee, 0x73, + 0xeb, 0x1f, 0x07, 0x34, 0xee, 0xf4, 0x0a, 0xec, 0x81, 0x06, 0x65, 0xef, 0x70, 0x1a, 0x69, 0x64, + 0xba, 0xc6, 0xa4, 0x62, 0x5d, 0x9e, 0x07, 0x22, 0x1d, 0x47, 0x2c, 0xcf, 0x73, 0xdd, 0x42, 0xcc, + 0x0e, 0x5e, 0x82, 0xc3, 0x82, 0x82, 0xa4, 0x52, 0x32, 0x4e, 0xe6, 0x88, 0x08, 0xca, 0xec, 0x6b, + 0x77, 0xff, 0x95, 0xbd, 0x67, 0xa1, 0x7d, 0x8b, 0xec, 0x0b, 0xca, 0xe0, 0x10, 0xb8, 0x38, 0x9a, + 0xe1, 0xb9, 0x42, 0xa9, 0x62, 0xe8, 0xae, 0x7f, 0x3b, 0x1b, 0xa7, 0xe8, 0x61, 0x8e, 0xfd, 0x4e, + 0xb1, 0xc1, 0x82, 0x9b, 0xa7, 0x7f, 0x3b, 0xe0, 0x43, 0x22, 0xe2, 0xcd, 0x3d, 0x76, 0x7a, 0xb8, + 0xdc, 0x64, 0x97, 0x99, 0xc8, 0xa5, 0xf3, 0xf6, 0x5b, 0x8b, 0x0d, 0x44, 0x84, 0x79, 0xe0, 0x09, + 0x19, 0xb4, 0x03, 0xc6, 0x8d, 0x0b, 0xc5, 0xcf, 0x46, 0x12, 0xaa, 0x7b, 0xfe, 0x20, 0xbf, 0x2c, + 0x57, 0xbf, 0xd7, 0x76, 0x5e, 0xf7, 0x7a, 0x7f, 0xd4, 0x8e, 0x5f, 0xe7, 0x94, 0x3d, 0xaa, 0xbc, + 0x7c, 0x99, 0xad, 0xae, 0x3b, 0x9e, 0x5f, 0x58, 0xfe, 0x55, 0xd8, 0x8c, 0x7a, 0x54, 0x8d, 0x4a, + 0x9b, 0xd1, 0x75, 0x67, 0x54, 0xda, 0x8c, 0xf7, 0x8c, 0x13, 0xaf, 0xfe, 0x0d, 0x00, 0x00, 0xff, + 0xff, 0xe2, 0x37, 0x9d, 0xcc, 0xc5, 0x0a, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/customer.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/customer.pb.go new file mode 100644 index 000000000..983414be5 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/customer.pb.go @@ -0,0 +1,258 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/customer.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A customer. +type Customer struct { + // The resource name of the customer. + // Customer resource names have the form: + // + // `customers/{customer_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + // The ID of the customer. + Id *wrappers.Int64Value `protobuf:"bytes,3,opt,name=id,proto3" json:"id,omitempty"` + // Optional, non-unique descriptive name of the customer. + DescriptiveName *wrappers.StringValue `protobuf:"bytes,4,opt,name=descriptive_name,json=descriptiveName,proto3" json:"descriptive_name,omitempty"` + // The currency in which the account operates. + // A subset of the currency codes from the ISO 4217 standard is + // supported. + CurrencyCode *wrappers.StringValue `protobuf:"bytes,5,opt,name=currency_code,json=currencyCode,proto3" json:"currency_code,omitempty"` + // The local timezone ID of the customer. + TimeZone *wrappers.StringValue `protobuf:"bytes,6,opt,name=time_zone,json=timeZone,proto3" json:"time_zone,omitempty"` + // The URL template for constructing a tracking URL out of parameters. + TrackingUrlTemplate *wrappers.StringValue `protobuf:"bytes,7,opt,name=tracking_url_template,json=trackingUrlTemplate,proto3" json:"tracking_url_template,omitempty"` + // The URL template for appending params to the final URL + FinalUrlSuffix *wrappers.StringValue `protobuf:"bytes,11,opt,name=final_url_suffix,json=finalUrlSuffix,proto3" json:"final_url_suffix,omitempty"` + // Whether auto-tagging is enabled for the customer. + AutoTaggingEnabled *wrappers.BoolValue `protobuf:"bytes,8,opt,name=auto_tagging_enabled,json=autoTaggingEnabled,proto3" json:"auto_tagging_enabled,omitempty"` + // Whether the Customer has a Partners program badge. If the Customer is not + // associated with the Partners program, this will be false. For more + // information, see https://support.google.com/partners/answer/3125774. + HasPartnersBadge *wrappers.BoolValue `protobuf:"bytes,9,opt,name=has_partners_badge,json=hasPartnersBadge,proto3" json:"has_partners_badge,omitempty"` + // Call reporting setting for a customer. + CallReportingSetting *CallReportingSetting `protobuf:"bytes,10,opt,name=call_reporting_setting,json=callReportingSetting,proto3" json:"call_reporting_setting,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Customer) Reset() { *m = Customer{} } +func (m *Customer) String() string { return proto.CompactTextString(m) } +func (*Customer) ProtoMessage() {} +func (*Customer) Descriptor() ([]byte, []int) { + return fileDescriptor_customer_1a67549631f2cc56, []int{0} +} +func (m *Customer) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Customer.Unmarshal(m, b) +} +func (m *Customer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Customer.Marshal(b, m, deterministic) +} +func (dst *Customer) XXX_Merge(src proto.Message) { + xxx_messageInfo_Customer.Merge(dst, src) +} +func (m *Customer) XXX_Size() int { + return xxx_messageInfo_Customer.Size(m) +} +func (m *Customer) XXX_DiscardUnknown() { + xxx_messageInfo_Customer.DiscardUnknown(m) +} + +var xxx_messageInfo_Customer proto.InternalMessageInfo + +func (m *Customer) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func (m *Customer) GetId() *wrappers.Int64Value { + if m != nil { + return m.Id + } + return nil +} + +func (m *Customer) GetDescriptiveName() *wrappers.StringValue { + if m != nil { + return m.DescriptiveName + } + return nil +} + +func (m *Customer) GetCurrencyCode() *wrappers.StringValue { + if m != nil { + return m.CurrencyCode + } + return nil +} + +func (m *Customer) GetTimeZone() *wrappers.StringValue { + if m != nil { + return m.TimeZone + } + return nil +} + +func (m *Customer) GetTrackingUrlTemplate() *wrappers.StringValue { + if m != nil { + return m.TrackingUrlTemplate + } + return nil +} + +func (m *Customer) GetFinalUrlSuffix() *wrappers.StringValue { + if m != nil { + return m.FinalUrlSuffix + } + return nil +} + +func (m *Customer) GetAutoTaggingEnabled() *wrappers.BoolValue { + if m != nil { + return m.AutoTaggingEnabled + } + return nil +} + +func (m *Customer) GetHasPartnersBadge() *wrappers.BoolValue { + if m != nil { + return m.HasPartnersBadge + } + return nil +} + +func (m *Customer) GetCallReportingSetting() *CallReportingSetting { + if m != nil { + return m.CallReportingSetting + } + return nil +} + +// Call reporting setting for a customer. +type CallReportingSetting struct { + // Enable reporting of phone call events by redirecting them via Google + // System. + CallReportingEnabled *wrappers.BoolValue `protobuf:"bytes,1,opt,name=call_reporting_enabled,json=callReportingEnabled,proto3" json:"call_reporting_enabled,omitempty"` + // Whether to enable call conversion reporting. + CallConversionReportingEnabled *wrappers.BoolValue `protobuf:"bytes,2,opt,name=call_conversion_reporting_enabled,json=callConversionReportingEnabled,proto3" json:"call_conversion_reporting_enabled,omitempty"` + // Customer-level call conversion action to attribute a call conversion to. + // If not set a default conversion action is used. Only in effect when + // call_conversion_reporting_enabled is set to true. + CallConversionAction *wrappers.StringValue `protobuf:"bytes,9,opt,name=call_conversion_action,json=callConversionAction,proto3" json:"call_conversion_action,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CallReportingSetting) Reset() { *m = CallReportingSetting{} } +func (m *CallReportingSetting) String() string { return proto.CompactTextString(m) } +func (*CallReportingSetting) ProtoMessage() {} +func (*CallReportingSetting) Descriptor() ([]byte, []int) { + return fileDescriptor_customer_1a67549631f2cc56, []int{1} +} +func (m *CallReportingSetting) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CallReportingSetting.Unmarshal(m, b) +} +func (m *CallReportingSetting) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CallReportingSetting.Marshal(b, m, deterministic) +} +func (dst *CallReportingSetting) XXX_Merge(src proto.Message) { + xxx_messageInfo_CallReportingSetting.Merge(dst, src) +} +func (m *CallReportingSetting) XXX_Size() int { + return xxx_messageInfo_CallReportingSetting.Size(m) +} +func (m *CallReportingSetting) XXX_DiscardUnknown() { + xxx_messageInfo_CallReportingSetting.DiscardUnknown(m) +} + +var xxx_messageInfo_CallReportingSetting proto.InternalMessageInfo + +func (m *CallReportingSetting) GetCallReportingEnabled() *wrappers.BoolValue { + if m != nil { + return m.CallReportingEnabled + } + return nil +} + +func (m *CallReportingSetting) GetCallConversionReportingEnabled() *wrappers.BoolValue { + if m != nil { + return m.CallConversionReportingEnabled + } + return nil +} + +func (m *CallReportingSetting) GetCallConversionAction() *wrappers.StringValue { + if m != nil { + return m.CallConversionAction + } + return nil +} + +func init() { + proto.RegisterType((*Customer)(nil), "google.ads.googleads.v0.resources.Customer") + proto.RegisterType((*CallReportingSetting)(nil), "google.ads.googleads.v0.resources.CallReportingSetting") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/customer.proto", fileDescriptor_customer_1a67549631f2cc56) +} + +var fileDescriptor_customer_1a67549631f2cc56 = []byte{ + // 570 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x94, 0xdd, 0x6a, 0x13, 0x41, + 0x14, 0xc7, 0x49, 0x6a, 0x6b, 0x3b, 0x6d, 0xb5, 0x8c, 0x51, 0x96, 0x2a, 0xa5, 0xad, 0x08, 0x05, + 0x61, 0x12, 0x54, 0x14, 0xf1, 0x6a, 0x13, 0xb4, 0x2a, 0x22, 0x61, 0xfb, 0x71, 0x51, 0x02, 0xcb, + 0x64, 0xf6, 0x64, 0x3b, 0x38, 0x3b, 0xb3, 0xcc, 0xcc, 0xc6, 0x8f, 0xc7, 0xd1, 0x3b, 0x9f, 0xc3, + 0x2b, 0x2f, 0x7d, 0x22, 0xd9, 0xd9, 0x9d, 0xa5, 0x25, 0xa1, 0xc9, 0x55, 0x0e, 0xc3, 0xff, 0xf7, + 0x3b, 0x27, 0xb3, 0xc3, 0x41, 0xbd, 0x54, 0xa9, 0x54, 0x40, 0x97, 0x26, 0xa6, 0x5b, 0x95, 0x65, + 0x35, 0xed, 0x75, 0x35, 0x18, 0x55, 0x68, 0x06, 0xa6, 0xcb, 0x0a, 0x63, 0x55, 0x06, 0x9a, 0xe4, + 0x5a, 0x59, 0x85, 0x0f, 0xaa, 0x18, 0xa1, 0x89, 0x21, 0x0d, 0x41, 0xa6, 0x3d, 0xd2, 0x10, 0xbb, + 0x7b, 0xb5, 0xd4, 0x01, 0xe3, 0x62, 0xd2, 0xfd, 0xaa, 0x69, 0x9e, 0x83, 0x36, 0x95, 0xe2, 0xf0, + 0xcf, 0x2a, 0x5a, 0x1f, 0xd4, 0x56, 0xfc, 0x18, 0x6d, 0x7b, 0x32, 0x96, 0x34, 0x83, 0xa0, 0xb5, + 0xdf, 0x3a, 0xda, 0x88, 0xb6, 0xfc, 0xe1, 0x67, 0x9a, 0x01, 0x7e, 0x8a, 0xda, 0x3c, 0x09, 0x56, + 0xf6, 0x5b, 0x47, 0x9b, 0xcf, 0x1e, 0xd6, 0x6d, 0x89, 0xd7, 0x93, 0x0f, 0xd2, 0xbe, 0x7c, 0x71, + 0x4e, 0x45, 0x01, 0x51, 0x9b, 0x27, 0xf8, 0x18, 0xed, 0x24, 0x60, 0x98, 0xe6, 0xb9, 0xe5, 0xd3, + 0x5a, 0x7a, 0xcb, 0xa1, 0x8f, 0x66, 0xd0, 0x13, 0xab, 0xb9, 0x4c, 0x2b, 0xf6, 0xee, 0x15, 0xca, + 0x75, 0x0d, 0xd1, 0x36, 0x2b, 0xb4, 0x06, 0xc9, 0xbe, 0xc7, 0x4c, 0x25, 0x10, 0xac, 0x2e, 0x61, + 0xd9, 0xf2, 0xc8, 0x40, 0x25, 0x80, 0x5f, 0xa3, 0x0d, 0xcb, 0x33, 0x88, 0x7f, 0x28, 0x09, 0xc1, + 0xda, 0x12, 0xf8, 0x7a, 0x19, 0xbf, 0x50, 0x12, 0xf0, 0x10, 0xdd, 0xb7, 0x9a, 0xb2, 0x2f, 0x5c, + 0xa6, 0x71, 0xa1, 0x45, 0x6c, 0x21, 0xcb, 0x05, 0xb5, 0x10, 0xdc, 0x5e, 0x42, 0x73, 0xcf, 0xa3, + 0x67, 0x5a, 0x9c, 0xd6, 0x20, 0x7e, 0x87, 0x76, 0x26, 0x5c, 0x52, 0xe1, 0x74, 0xa6, 0x98, 0x4c, + 0xf8, 0xb7, 0x60, 0x73, 0x09, 0xd9, 0x1d, 0x47, 0x9d, 0x69, 0x71, 0xe2, 0x18, 0xfc, 0x09, 0x75, + 0x68, 0x61, 0x55, 0x6c, 0x69, 0x9a, 0x96, 0xd3, 0x81, 0xa4, 0x63, 0x01, 0x49, 0xb0, 0xee, 0x5c, + 0xbb, 0x33, 0xae, 0xbe, 0x52, 0xa2, 0x32, 0xe1, 0x92, 0x3b, 0xad, 0xb0, 0xb7, 0x15, 0x85, 0xdf, + 0x23, 0x7c, 0x49, 0x4d, 0x9c, 0x53, 0x6d, 0x25, 0x68, 0x13, 0x8f, 0x69, 0x92, 0x42, 0xb0, 0xb1, + 0xd0, 0xb5, 0x73, 0x49, 0xcd, 0xb0, 0x86, 0xfa, 0x25, 0x83, 0x33, 0xf4, 0x80, 0x51, 0x21, 0x62, + 0x0d, 0xb9, 0xd2, 0xb6, 0x9c, 0xcc, 0x80, 0x2d, 0x7f, 0x03, 0xe4, 0x6c, 0xaf, 0xc8, 0xc2, 0xb7, + 0x4b, 0x06, 0x54, 0x88, 0xc8, 0xf3, 0x27, 0x15, 0x1e, 0x75, 0xd8, 0x9c, 0xd3, 0xc3, 0x5f, 0x6d, + 0xd4, 0x99, 0x17, 0xc7, 0xc3, 0x99, 0x39, 0xfc, 0x0d, 0xb5, 0x16, 0xfe, 0xab, 0xeb, 0xad, 0xfc, + 0x1d, 0x01, 0x3a, 0x70, 0x46, 0xa6, 0xe4, 0x14, 0xb4, 0xe1, 0x4a, 0xce, 0x91, 0xb7, 0x17, 0xca, + 0xf7, 0x4a, 0xc9, 0xa0, 0x71, 0xcc, 0xb4, 0x89, 0xea, 0xc1, 0xaf, 0xb4, 0xa1, 0xcc, 0x72, 0x25, + 0xeb, 0xcf, 0x71, 0xf3, 0x33, 0xe9, 0x5c, 0xb7, 0x87, 0x8e, 0xec, 0xff, 0x6b, 0xa1, 0x27, 0x4c, + 0x65, 0x8b, 0xaf, 0xbe, 0xbf, 0xed, 0x77, 0xc2, 0xb0, 0xb4, 0x0f, 0x5b, 0x17, 0x1f, 0x6b, 0x26, + 0x55, 0x82, 0xca, 0x94, 0x28, 0x9d, 0x76, 0x53, 0x90, 0xae, 0xb7, 0x5f, 0x56, 0x39, 0x37, 0x37, + 0xec, 0xae, 0x37, 0x4d, 0xf5, 0xb3, 0xbd, 0x72, 0x1c, 0x86, 0xbf, 0xdb, 0x07, 0xc7, 0x95, 0x32, + 0x4c, 0x0c, 0xa9, 0xca, 0xb2, 0x3a, 0xef, 0x91, 0xc8, 0x27, 0xff, 0xfa, 0xcc, 0x28, 0x4c, 0xcc, + 0xa8, 0xc9, 0x8c, 0xce, 0x7b, 0xa3, 0x26, 0x33, 0x5e, 0x73, 0x43, 0x3c, 0xff, 0x1f, 0x00, 0x00, + 0xff, 0xff, 0xe1, 0x9c, 0xcb, 0x74, 0x3f, 0x05, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/customer_client.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/customer_client.pb.go new file mode 100644 index 000000000..5942abff9 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/customer_client.pb.go @@ -0,0 +1,123 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/customer_client.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// For a manager, it returns all the customers in its hierarchy and self. +type CustomerClient struct { + // The resource name of the customer client. + // CustomerClient resource names have the form: + // `customers/{customer_id}/customerClients/{client_customer_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + // The client customer linked to this customer. Read only. + ClientCustomer *wrappers.StringValue `protobuf:"bytes,3,opt,name=client_customer,json=clientCustomer,proto3" json:"client_customer,omitempty"` + // Whether the client is hidden or not. Default value is false. Read only. + Hidden *wrappers.BoolValue `protobuf:"bytes,4,opt,name=hidden,proto3" json:"hidden,omitempty"` + // Distance between customer and client. For self link, the level value will + // be 0. Read only. + Level *wrappers.Int64Value `protobuf:"bytes,5,opt,name=level,proto3" json:"level,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CustomerClient) Reset() { *m = CustomerClient{} } +func (m *CustomerClient) String() string { return proto.CompactTextString(m) } +func (*CustomerClient) ProtoMessage() {} +func (*CustomerClient) Descriptor() ([]byte, []int) { + return fileDescriptor_customer_client_4e068b1367c0b0ff, []int{0} +} +func (m *CustomerClient) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CustomerClient.Unmarshal(m, b) +} +func (m *CustomerClient) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CustomerClient.Marshal(b, m, deterministic) +} +func (dst *CustomerClient) XXX_Merge(src proto.Message) { + xxx_messageInfo_CustomerClient.Merge(dst, src) +} +func (m *CustomerClient) XXX_Size() int { + return xxx_messageInfo_CustomerClient.Size(m) +} +func (m *CustomerClient) XXX_DiscardUnknown() { + xxx_messageInfo_CustomerClient.DiscardUnknown(m) +} + +var xxx_messageInfo_CustomerClient proto.InternalMessageInfo + +func (m *CustomerClient) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func (m *CustomerClient) GetClientCustomer() *wrappers.StringValue { + if m != nil { + return m.ClientCustomer + } + return nil +} + +func (m *CustomerClient) GetHidden() *wrappers.BoolValue { + if m != nil { + return m.Hidden + } + return nil +} + +func (m *CustomerClient) GetLevel() *wrappers.Int64Value { + if m != nil { + return m.Level + } + return nil +} + +func init() { + proto.RegisterType((*CustomerClient)(nil), "google.ads.googleads.v0.resources.CustomerClient") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/customer_client.proto", fileDescriptor_customer_client_4e068b1367c0b0ff) +} + +var fileDescriptor_customer_client_4e068b1367c0b0ff = []byte{ + // 331 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x91, 0x41, 0x4b, 0xf3, 0x30, + 0x18, 0xc7, 0xe9, 0xf6, 0x6e, 0xf0, 0x46, 0x9d, 0x50, 0x2f, 0x65, 0x8a, 0x6c, 0x8a, 0xb0, 0x53, + 0x5a, 0xa7, 0xe8, 0xc1, 0x53, 0x37, 0x64, 0xe8, 0x41, 0xc6, 0x84, 0x1d, 0xa4, 0x30, 0xb2, 0xf6, + 0x31, 0x16, 0xd2, 0xa4, 0x24, 0xed, 0xfc, 0x3e, 0x1e, 0xfd, 0x28, 0x7e, 0x02, 0xef, 0x7e, 0x11, + 0x69, 0xd2, 0x14, 0x64, 0xa0, 0xb7, 0x3f, 0xe1, 0xf7, 0xfb, 0x3f, 0x0f, 0x79, 0xd0, 0x35, 0x15, + 0x82, 0x32, 0xf0, 0x49, 0xa2, 0x7c, 0x13, 0xab, 0xb4, 0x09, 0x7c, 0x09, 0x4a, 0x94, 0x32, 0x06, + 0xe5, 0xc7, 0xa5, 0x2a, 0x44, 0x06, 0x72, 0x15, 0xb3, 0x14, 0x78, 0x81, 0x73, 0x29, 0x0a, 0xe1, + 0x0e, 0x0d, 0x8d, 0x49, 0xa2, 0x70, 0x23, 0xe2, 0x4d, 0x80, 0x1b, 0xb1, 0x7f, 0x5c, 0x77, 0x6b, + 0x61, 0x5d, 0x3e, 0xfb, 0xaf, 0x92, 0xe4, 0x39, 0x48, 0x65, 0x2a, 0x4e, 0xbe, 0x1c, 0xd4, 0x9b, + 0xd6, 0xe5, 0x53, 0xdd, 0xed, 0x9e, 0xa2, 0x3d, 0xeb, 0xaf, 0x38, 0xc9, 0xc0, 0x73, 0x06, 0xce, + 0xe8, 0xff, 0x62, 0xd7, 0x3e, 0x3e, 0x90, 0x0c, 0xdc, 0x5b, 0xb4, 0x6f, 0x56, 0x59, 0xd9, 0xd5, + 0xbc, 0xf6, 0xc0, 0x19, 0xed, 0x8c, 0x8f, 0xea, 0x4d, 0xb0, 0x9d, 0x88, 0x1f, 0x0b, 0x99, 0x72, + 0xba, 0x24, 0xac, 0x84, 0x45, 0xcf, 0x48, 0x76, 0xa2, 0x3b, 0x46, 0xdd, 0x97, 0x34, 0x49, 0x80, + 0x7b, 0xff, 0xb4, 0xdd, 0xdf, 0xb2, 0x27, 0x42, 0x30, 0xe3, 0xd6, 0xa4, 0x7b, 0x8e, 0x3a, 0x0c, + 0x36, 0xc0, 0xbc, 0x8e, 0x56, 0x0e, 0xb7, 0x94, 0x3b, 0x5e, 0x5c, 0x5d, 0x1a, 0xc7, 0x90, 0x93, + 0x4f, 0x07, 0x9d, 0xc5, 0x22, 0xc3, 0x7f, 0xfe, 0xd7, 0xe4, 0xe0, 0xe7, 0x67, 0xcc, 0xab, 0xce, + 0xb9, 0xf3, 0x74, 0x5f, 0x9b, 0x54, 0x30, 0xc2, 0x29, 0x16, 0x92, 0xfa, 0x14, 0xb8, 0x9e, 0x68, + 0x4f, 0x96, 0xa7, 0xea, 0x97, 0x0b, 0xde, 0x34, 0xe9, 0xad, 0xd5, 0x9e, 0x85, 0xe1, 0x7b, 0x6b, + 0x38, 0x33, 0x95, 0x61, 0xa2, 0xb0, 0x89, 0x55, 0x5a, 0x06, 0x78, 0x61, 0xc9, 0x0f, 0xcb, 0x44, + 0x61, 0xa2, 0xa2, 0x86, 0x89, 0x96, 0x41, 0xd4, 0x30, 0xeb, 0xae, 0x5e, 0xe2, 0xe2, 0x3b, 0x00, + 0x00, 0xff, 0xff, 0x13, 0x2b, 0x34, 0x21, 0x45, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/customer_client_link.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/customer_client_link.pb.go new file mode 100644 index 000000000..78b8d2060 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/customer_client_link.pb.go @@ -0,0 +1,139 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/customer_client_link.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Represents customer client link relationship. +type CustomerClientLink struct { + // Name of the resource. + // CustomerClientLink resource names have the form: + // + // `customers/{customer_id}/customerClientLinks/{client_customer_id}_{manager_link_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + // The client customer linked to this customer. Read only. + ClientCustomer *wrappers.StringValue `protobuf:"bytes,3,opt,name=client_customer,json=clientCustomer,proto3" json:"client_customer,omitempty"` + // This is uniquely identifies a customer client link. Read only. + ManagerLinkId *wrappers.Int64Value `protobuf:"bytes,4,opt,name=manager_link_id,json=managerLinkId,proto3" json:"manager_link_id,omitempty"` + // This is the status of the link between client and manager. + Status enums.ManagerLinkStatusEnum_ManagerLinkStatus `protobuf:"varint,5,opt,name=status,proto3,enum=google.ads.googleads.v0.enums.ManagerLinkStatusEnum_ManagerLinkStatus" json:"status,omitempty"` + // The visibility of the link. Users can choose whether or not to see hidden + // links in the AdWords UI. + // Default value is false + Hidden *wrappers.BoolValue `protobuf:"bytes,6,opt,name=hidden,proto3" json:"hidden,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CustomerClientLink) Reset() { *m = CustomerClientLink{} } +func (m *CustomerClientLink) String() string { return proto.CompactTextString(m) } +func (*CustomerClientLink) ProtoMessage() {} +func (*CustomerClientLink) Descriptor() ([]byte, []int) { + return fileDescriptor_customer_client_link_d7ddbf2da55444fb, []int{0} +} +func (m *CustomerClientLink) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CustomerClientLink.Unmarshal(m, b) +} +func (m *CustomerClientLink) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CustomerClientLink.Marshal(b, m, deterministic) +} +func (dst *CustomerClientLink) XXX_Merge(src proto.Message) { + xxx_messageInfo_CustomerClientLink.Merge(dst, src) +} +func (m *CustomerClientLink) XXX_Size() int { + return xxx_messageInfo_CustomerClientLink.Size(m) +} +func (m *CustomerClientLink) XXX_DiscardUnknown() { + xxx_messageInfo_CustomerClientLink.DiscardUnknown(m) +} + +var xxx_messageInfo_CustomerClientLink proto.InternalMessageInfo + +func (m *CustomerClientLink) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func (m *CustomerClientLink) GetClientCustomer() *wrappers.StringValue { + if m != nil { + return m.ClientCustomer + } + return nil +} + +func (m *CustomerClientLink) GetManagerLinkId() *wrappers.Int64Value { + if m != nil { + return m.ManagerLinkId + } + return nil +} + +func (m *CustomerClientLink) GetStatus() enums.ManagerLinkStatusEnum_ManagerLinkStatus { + if m != nil { + return m.Status + } + return enums.ManagerLinkStatusEnum_UNSPECIFIED +} + +func (m *CustomerClientLink) GetHidden() *wrappers.BoolValue { + if m != nil { + return m.Hidden + } + return nil +} + +func init() { + proto.RegisterType((*CustomerClientLink)(nil), "google.ads.googleads.v0.resources.CustomerClientLink") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/customer_client_link.proto", fileDescriptor_customer_client_link_d7ddbf2da55444fb) +} + +var fileDescriptor_customer_client_link_d7ddbf2da55444fb = []byte{ + // 398 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x52, 0xdd, 0xca, 0xd3, 0x30, + 0x18, 0xa6, 0x9b, 0x16, 0x8c, 0x6e, 0x83, 0x9e, 0x58, 0xa6, 0xc8, 0xa6, 0x08, 0x3b, 0x4a, 0xcb, + 0x14, 0x3d, 0xd0, 0x93, 0x6e, 0xcc, 0x31, 0x51, 0x19, 0x1d, 0xec, 0x40, 0x8a, 0x25, 0x6b, 0x62, + 0x2c, 0x6b, 0x93, 0x92, 0xb4, 0xf3, 0x7e, 0x3c, 0xf4, 0x52, 0xbc, 0x03, 0xc1, 0x8b, 0x91, 0xe6, + 0xa7, 0x22, 0x65, 0xdf, 0x77, 0xf6, 0x34, 0x7d, 0xfe, 0xde, 0xe4, 0x05, 0x6f, 0x29, 0xe7, 0xb4, + 0x20, 0x01, 0xc2, 0x32, 0xd0, 0xb0, 0x45, 0x97, 0x30, 0x10, 0x44, 0xf2, 0x46, 0x64, 0x44, 0x06, + 0x59, 0x23, 0x6b, 0x5e, 0x12, 0x91, 0x66, 0x45, 0x4e, 0x58, 0x9d, 0x16, 0x39, 0x3b, 0xc3, 0x4a, + 0xf0, 0x9a, 0x7b, 0x73, 0x2d, 0x81, 0x08, 0x4b, 0xd8, 0xa9, 0xe1, 0x25, 0x84, 0x9d, 0x7a, 0xfa, + 0xfa, 0x5a, 0x00, 0x61, 0x4d, 0x29, 0x83, 0x12, 0x31, 0x44, 0x89, 0x50, 0xa6, 0xa9, 0xac, 0x51, + 0xdd, 0x48, 0xed, 0x3d, 0x7d, 0x62, 0x84, 0xea, 0xeb, 0xd4, 0x7c, 0x0d, 0xbe, 0x0b, 0x54, 0x55, + 0x44, 0x98, 0xff, 0x4f, 0x7f, 0x0f, 0x80, 0xb7, 0x36, 0xd5, 0xd6, 0xaa, 0xd9, 0x87, 0x9c, 0x9d, + 0xbd, 0x67, 0x60, 0x64, 0xc3, 0x53, 0x86, 0x4a, 0xe2, 0x3b, 0x33, 0x67, 0x71, 0x2f, 0x7e, 0x60, + 0x0f, 0x3f, 0xa1, 0x92, 0x78, 0x1b, 0x30, 0x31, 0xc3, 0xd8, 0xe1, 0xfc, 0xe1, 0xcc, 0x59, 0xdc, + 0x5f, 0x3e, 0x36, 0x63, 0x40, 0x9b, 0x0a, 0x0f, 0xb5, 0xc8, 0x19, 0x3d, 0xa2, 0xa2, 0x21, 0xf1, + 0x58, 0x8b, 0x6c, 0xaa, 0xb7, 0x06, 0x93, 0xff, 0xfa, 0xe7, 0xd8, 0xbf, 0xa3, 0x6c, 0x1e, 0xf5, + 0x6c, 0x76, 0xac, 0x7e, 0xf5, 0x52, 0xbb, 0x8c, 0x8c, 0xa6, 0xad, 0xbb, 0xc3, 0xde, 0x17, 0xe0, + 0xea, 0xb9, 0xfd, 0xbb, 0x33, 0x67, 0x31, 0x5e, 0xbe, 0x83, 0xd7, 0x2e, 0x55, 0xdd, 0x18, 0xfc, + 0xf8, 0x4f, 0x7d, 0x50, 0xba, 0x0d, 0x6b, 0xca, 0xfe, 0x69, 0x6c, 0x5c, 0xbd, 0x25, 0x70, 0xbf, + 0xe5, 0x18, 0x13, 0xe6, 0xbb, 0xaa, 0xdb, 0xb4, 0xd7, 0x6d, 0xc5, 0x79, 0xa1, 0xab, 0x19, 0xe6, + 0xea, 0x8f, 0x03, 0x9e, 0x67, 0xbc, 0x84, 0xb7, 0x3e, 0xef, 0xea, 0x61, 0xff, 0x09, 0xf6, 0xad, + 0xef, 0xde, 0xf9, 0xfc, 0xde, 0xa8, 0x29, 0x2f, 0x10, 0xa3, 0x90, 0x0b, 0x1a, 0x50, 0xc2, 0x54, + 0xaa, 0xdd, 0x84, 0x2a, 0x97, 0x37, 0x6c, 0xde, 0x9b, 0x0e, 0xfd, 0x18, 0x0c, 0xb7, 0x51, 0xf4, + 0x73, 0x30, 0xdf, 0x6a, 0xcb, 0x08, 0x4b, 0xa8, 0x61, 0x8b, 0x8e, 0x21, 0x8c, 0x2d, 0xf3, 0x97, + 0xe5, 0x24, 0x11, 0x96, 0x49, 0xc7, 0x49, 0x8e, 0x61, 0xd2, 0x71, 0x4e, 0xae, 0x2a, 0xf1, 0xe2, + 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xc6, 0xb0, 0x07, 0xf7, 0xfd, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/customer_feed.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/customer_feed.pb.go new file mode 100644 index 000000000..9309144a6 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/customer_feed.pb.go @@ -0,0 +1,145 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/customer_feed.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import common "google.golang.org/genproto/googleapis/ads/googleads/v0/common" +import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A customer feed. +type CustomerFeed struct { + // The resource name of the customer feed. + // Customer feed resource names have the form: + // + // `customers/{customer_id}/customerFeeds/{feed_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + // The feed being linked to the customer. + Feed *wrappers.StringValue `protobuf:"bytes,2,opt,name=feed,proto3" json:"feed,omitempty"` + // Indicates which placeholder types the feed may populate under the connected + // customer. Required. + PlaceholderTypes []enums.PlaceholderTypeEnum_PlaceholderType `protobuf:"varint,3,rep,packed,name=placeholder_types,json=placeholderTypes,proto3,enum=google.ads.googleads.v0.enums.PlaceholderTypeEnum_PlaceholderType" json:"placeholder_types,omitempty"` + // Matching function associated with the CustomerFeed. + // The matching function is used to filter the set of feed items selected. + // Required. + MatchingFunction *common.MatchingFunction `protobuf:"bytes,4,opt,name=matching_function,json=matchingFunction,proto3" json:"matching_function,omitempty"` + // Status of the customer feed. + // This field is read-only. + Status enums.FeedLinkStatusEnum_FeedLinkStatus `protobuf:"varint,5,opt,name=status,proto3,enum=google.ads.googleads.v0.enums.FeedLinkStatusEnum_FeedLinkStatus" json:"status,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CustomerFeed) Reset() { *m = CustomerFeed{} } +func (m *CustomerFeed) String() string { return proto.CompactTextString(m) } +func (*CustomerFeed) ProtoMessage() {} +func (*CustomerFeed) Descriptor() ([]byte, []int) { + return fileDescriptor_customer_feed_ce4640adfc3deabc, []int{0} +} +func (m *CustomerFeed) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CustomerFeed.Unmarshal(m, b) +} +func (m *CustomerFeed) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CustomerFeed.Marshal(b, m, deterministic) +} +func (dst *CustomerFeed) XXX_Merge(src proto.Message) { + xxx_messageInfo_CustomerFeed.Merge(dst, src) +} +func (m *CustomerFeed) XXX_Size() int { + return xxx_messageInfo_CustomerFeed.Size(m) +} +func (m *CustomerFeed) XXX_DiscardUnknown() { + xxx_messageInfo_CustomerFeed.DiscardUnknown(m) +} + +var xxx_messageInfo_CustomerFeed proto.InternalMessageInfo + +func (m *CustomerFeed) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func (m *CustomerFeed) GetFeed() *wrappers.StringValue { + if m != nil { + return m.Feed + } + return nil +} + +func (m *CustomerFeed) GetPlaceholderTypes() []enums.PlaceholderTypeEnum_PlaceholderType { + if m != nil { + return m.PlaceholderTypes + } + return nil +} + +func (m *CustomerFeed) GetMatchingFunction() *common.MatchingFunction { + if m != nil { + return m.MatchingFunction + } + return nil +} + +func (m *CustomerFeed) GetStatus() enums.FeedLinkStatusEnum_FeedLinkStatus { + if m != nil { + return m.Status + } + return enums.FeedLinkStatusEnum_UNSPECIFIED +} + +func init() { + proto.RegisterType((*CustomerFeed)(nil), "google.ads.googleads.v0.resources.CustomerFeed") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/customer_feed.proto", fileDescriptor_customer_feed_ce4640adfc3deabc) +} + +var fileDescriptor_customer_feed_ce4640adfc3deabc = []byte{ + // 440 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x93, 0xdd, 0x6a, 0xd4, 0x40, + 0x14, 0xc7, 0xc9, 0x6e, 0x2d, 0x38, 0xd6, 0xd2, 0xcd, 0x55, 0x28, 0x22, 0x5b, 0x45, 0xd8, 0xab, + 0x99, 0xb0, 0x7e, 0xdc, 0x78, 0xe3, 0xae, 0xd8, 0x82, 0xa8, 0x2c, 0xa9, 0x2c, 0x22, 0x2b, 0x61, + 0x9a, 0x9c, 0x9d, 0x86, 0x66, 0x3e, 0x98, 0x8f, 0x4a, 0x9f, 0xc2, 0x77, 0xf0, 0xd2, 0x47, 0xf1, + 0x01, 0x7c, 0x1e, 0xc9, 0x64, 0x12, 0xed, 0xca, 0xda, 0xde, 0x9d, 0x1c, 0xfe, 0xbf, 0x33, 0xe7, + 0xfc, 0xcf, 0x09, 0x7a, 0xce, 0xa4, 0x64, 0x35, 0x10, 0x5a, 0x1a, 0xd2, 0x86, 0x4d, 0x74, 0x99, + 0x12, 0x0d, 0x46, 0x3a, 0x5d, 0x80, 0x21, 0x85, 0x33, 0x56, 0x72, 0xd0, 0xf9, 0x1a, 0xa0, 0xc4, + 0x4a, 0x4b, 0x2b, 0xe3, 0xa3, 0x56, 0x8b, 0x69, 0x69, 0x70, 0x8f, 0xe1, 0xcb, 0x14, 0xf7, 0xd8, + 0xe1, 0x8b, 0x6d, 0x95, 0x0b, 0xc9, 0xb9, 0x14, 0x84, 0x53, 0x5b, 0x9c, 0x57, 0x82, 0xe5, 0x6b, + 0x27, 0x0a, 0x5b, 0x49, 0xd1, 0x96, 0x3e, 0x7c, 0xb6, 0x8d, 0x03, 0xe1, 0xb8, 0x21, 0x4d, 0x13, + 0x79, 0x5d, 0x89, 0x8b, 0xdc, 0x58, 0x6a, 0x9d, 0xb9, 0x1d, 0xa5, 0x6a, 0x5a, 0xc0, 0xb9, 0xac, + 0x4b, 0xd0, 0xb9, 0xbd, 0x52, 0x10, 0xa8, 0x87, 0x81, 0xf2, 0x5f, 0x67, 0x6e, 0x4d, 0xbe, 0x6a, + 0xaa, 0x14, 0xe8, 0x50, 0xf5, 0xd1, 0xb7, 0x21, 0xda, 0x7b, 0x1d, 0xc6, 0x3f, 0x06, 0x28, 0xe3, + 0xc7, 0xe8, 0x7e, 0x37, 0x61, 0x2e, 0x28, 0x87, 0x24, 0x1a, 0x47, 0x93, 0xbb, 0xd9, 0x5e, 0x97, + 0xfc, 0x40, 0x39, 0xc4, 0x29, 0xda, 0x69, 0xba, 0x4c, 0x06, 0xe3, 0x68, 0x72, 0x6f, 0xfa, 0x20, + 0x18, 0x84, 0xbb, 0x47, 0xf0, 0xa9, 0xd5, 0x95, 0x60, 0x4b, 0x5a, 0x3b, 0xc8, 0xbc, 0x32, 0x96, + 0x68, 0xb4, 0xd9, 0xa1, 0x49, 0x86, 0xe3, 0xe1, 0x64, 0x7f, 0x3a, 0xc7, 0xdb, 0xac, 0xf6, 0x93, + 0xe1, 0xc5, 0x1f, 0xee, 0xe3, 0x95, 0x82, 0x37, 0xc2, 0xf1, 0xcd, 0x5c, 0x76, 0xa0, 0xae, 0x27, + 0x4c, 0xfc, 0x05, 0x8d, 0xfe, 0xf1, 0x3f, 0xd9, 0xf1, 0xfd, 0xa6, 0x5b, 0x1f, 0x6c, 0x17, 0x87, + 0xdf, 0x07, 0xf0, 0x38, 0x70, 0xd9, 0x01, 0xdf, 0xc8, 0xc4, 0x9f, 0xd0, 0x6e, 0xbb, 0x9d, 0xe4, + 0xce, 0x38, 0x9a, 0xec, 0x4f, 0x5f, 0xdd, 0x30, 0x44, 0xe3, 0xed, 0xbb, 0x4a, 0x5c, 0x9c, 0x7a, + 0xc8, 0xcf, 0x70, 0x3d, 0x95, 0x85, 0x7a, 0xf3, 0x5f, 0x11, 0x7a, 0x52, 0x48, 0x8e, 0x6f, 0xbc, + 0xbf, 0xf9, 0xe8, 0xef, 0xc5, 0x2d, 0x1a, 0xef, 0x17, 0xd1, 0xe7, 0xb7, 0x81, 0x63, 0xb2, 0xa6, + 0x82, 0x61, 0xa9, 0x19, 0x61, 0x20, 0xfc, 0x66, 0xba, 0xb3, 0x51, 0x95, 0xf9, 0xcf, 0xdf, 0xf0, + 0xb2, 0x8f, 0xbe, 0x0f, 0x86, 0x27, 0xb3, 0xd9, 0x8f, 0xc1, 0xd1, 0x49, 0x5b, 0x72, 0x56, 0x1a, + 0xdc, 0x86, 0x4d, 0xb4, 0x4c, 0x71, 0xd6, 0x29, 0x7f, 0x76, 0x9a, 0xd5, 0xac, 0x34, 0xab, 0x5e, + 0xb3, 0x5a, 0xa6, 0xab, 0x5e, 0x73, 0xb6, 0xeb, 0x9b, 0x78, 0xfa, 0x3b, 0x00, 0x00, 0xff, 0xff, + 0x98, 0x66, 0x60, 0xe7, 0x91, 0x03, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/customer_manager_link.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/customer_manager_link.pb.go new file mode 100644 index 000000000..4326524f3 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/customer_manager_link.pb.go @@ -0,0 +1,127 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/customer_manager_link.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Represents customer-manager link relationship. +type CustomerManagerLink struct { + // Name of the resource. + // CustomerManagerLink resource names have the form: + // + // `customers/{customer_id}/customerManagerLinks/{manager_customer_id}_{manager_link_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + // The manager customer linked to the customer. This field is read only. + ManagerCustomer *wrappers.StringValue `protobuf:"bytes,3,opt,name=manager_customer,json=managerCustomer,proto3" json:"manager_customer,omitempty"` + // ID of the customer-manager link. This field is read only. + ManagerLinkId *wrappers.Int64Value `protobuf:"bytes,4,opt,name=manager_link_id,json=managerLinkId,proto3" json:"manager_link_id,omitempty"` + // Status of the link between the customer and the manager. + Status enums.ManagerLinkStatusEnum_ManagerLinkStatus `protobuf:"varint,5,opt,name=status,proto3,enum=google.ads.googleads.v0.enums.ManagerLinkStatusEnum_ManagerLinkStatus" json:"status,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CustomerManagerLink) Reset() { *m = CustomerManagerLink{} } +func (m *CustomerManagerLink) String() string { return proto.CompactTextString(m) } +func (*CustomerManagerLink) ProtoMessage() {} +func (*CustomerManagerLink) Descriptor() ([]byte, []int) { + return fileDescriptor_customer_manager_link_1a8c7ae152be5754, []int{0} +} +func (m *CustomerManagerLink) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CustomerManagerLink.Unmarshal(m, b) +} +func (m *CustomerManagerLink) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CustomerManagerLink.Marshal(b, m, deterministic) +} +func (dst *CustomerManagerLink) XXX_Merge(src proto.Message) { + xxx_messageInfo_CustomerManagerLink.Merge(dst, src) +} +func (m *CustomerManagerLink) XXX_Size() int { + return xxx_messageInfo_CustomerManagerLink.Size(m) +} +func (m *CustomerManagerLink) XXX_DiscardUnknown() { + xxx_messageInfo_CustomerManagerLink.DiscardUnknown(m) +} + +var xxx_messageInfo_CustomerManagerLink proto.InternalMessageInfo + +func (m *CustomerManagerLink) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func (m *CustomerManagerLink) GetManagerCustomer() *wrappers.StringValue { + if m != nil { + return m.ManagerCustomer + } + return nil +} + +func (m *CustomerManagerLink) GetManagerLinkId() *wrappers.Int64Value { + if m != nil { + return m.ManagerLinkId + } + return nil +} + +func (m *CustomerManagerLink) GetStatus() enums.ManagerLinkStatusEnum_ManagerLinkStatus { + if m != nil { + return m.Status + } + return enums.ManagerLinkStatusEnum_UNSPECIFIED +} + +func init() { + proto.RegisterType((*CustomerManagerLink)(nil), "google.ads.googleads.v0.resources.CustomerManagerLink") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/customer_manager_link.proto", fileDescriptor_customer_manager_link_1a8c7ae152be5754) +} + +var fileDescriptor_customer_manager_link_1a8c7ae152be5754 = []byte{ + // 375 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x52, 0xdf, 0x4a, 0xeb, 0x30, + 0x1c, 0xa6, 0xdb, 0x39, 0x83, 0xd3, 0x73, 0x76, 0x26, 0xf5, 0xa6, 0x4c, 0x91, 0x4d, 0x11, 0x76, + 0x95, 0x96, 0x29, 0x7a, 0x21, 0x5e, 0x74, 0x43, 0xc7, 0x44, 0x65, 0x74, 0xb0, 0x0b, 0x29, 0x96, + 0x6c, 0x8d, 0xa1, 0xac, 0x49, 0x4a, 0xd2, 0xce, 0xf7, 0xf1, 0x4a, 0x7c, 0x14, 0xdf, 0xc1, 0x77, + 0x91, 0x35, 0x49, 0x9d, 0xcc, 0xe9, 0xdd, 0xd7, 0xf4, 0xfb, 0xf3, 0xfb, 0x7e, 0x89, 0x79, 0x8e, + 0x19, 0xc3, 0x09, 0x72, 0x60, 0x24, 0x1c, 0x09, 0x97, 0x68, 0xe1, 0x3a, 0x1c, 0x09, 0x96, 0xf3, + 0x19, 0x12, 0xce, 0x2c, 0x17, 0x19, 0x23, 0x88, 0x87, 0x04, 0x52, 0x88, 0x11, 0x0f, 0x93, 0x98, + 0xce, 0x41, 0xca, 0x59, 0xc6, 0xac, 0xb6, 0xd4, 0x00, 0x18, 0x09, 0x50, 0xca, 0xc1, 0xc2, 0x05, + 0xa5, 0xbc, 0x79, 0xba, 0x29, 0x01, 0xd1, 0x9c, 0x08, 0x67, 0xd5, 0x34, 0x14, 0x19, 0xcc, 0x72, + 0x21, 0xbd, 0x9b, 0x7b, 0x4a, 0x58, 0x7c, 0x4d, 0xf3, 0x07, 0xe7, 0x91, 0xc3, 0x34, 0x45, 0x5c, + 0xfd, 0xdf, 0x7f, 0xae, 0x98, 0xdb, 0x7d, 0x35, 0xdb, 0x8d, 0x74, 0xb9, 0x8e, 0xe9, 0xdc, 0x3a, + 0x30, 0xeb, 0x3a, 0x3d, 0xa4, 0x90, 0x20, 0xdb, 0x68, 0x19, 0x9d, 0x3f, 0xfe, 0x3f, 0x7d, 0x78, + 0x0b, 0x09, 0xb2, 0x06, 0xe6, 0x96, 0x4e, 0xd6, 0xfd, 0xec, 0x6a, 0xcb, 0xe8, 0xfc, 0xed, 0xee, + 0xaa, 0x22, 0x40, 0xe7, 0x82, 0x71, 0xc6, 0x63, 0x8a, 0x27, 0x30, 0xc9, 0x91, 0xdf, 0x50, 0x2a, + 0x1d, 0x6c, 0xf5, 0xcd, 0xc6, 0xa7, 0x0a, 0x71, 0x64, 0xff, 0x2a, 0x7c, 0x76, 0xd6, 0x7c, 0x86, + 0x34, 0x3b, 0x39, 0x96, 0x36, 0x75, 0xf2, 0x31, 0xf0, 0x30, 0xb2, 0xee, 0xcd, 0x9a, 0xac, 0x6e, + 0xff, 0x6e, 0x19, 0x9d, 0xff, 0xdd, 0x4b, 0xb0, 0x69, 0xaf, 0xc5, 0xd2, 0xc0, 0x4a, 0xdd, 0x71, + 0xa1, 0xbb, 0xa0, 0x39, 0x59, 0x3f, 0xf5, 0x95, 0x6b, 0xef, 0xcd, 0x30, 0x0f, 0x67, 0x8c, 0x80, + 0x1f, 0x6f, 0xab, 0x67, 0x7f, 0xb1, 0xd1, 0xd1, 0xb2, 0xc0, 0xc8, 0xb8, 0xbb, 0x52, 0x72, 0xcc, + 0x12, 0x48, 0x31, 0x60, 0x1c, 0x3b, 0x18, 0xd1, 0xa2, 0x9e, 0xbe, 0xd9, 0x34, 0x16, 0xdf, 0x3c, + 0xa5, 0xb3, 0x12, 0x3d, 0x55, 0xaa, 0x03, 0xcf, 0x7b, 0xa9, 0xb4, 0x07, 0xd2, 0xd2, 0x8b, 0x04, + 0x90, 0x70, 0x89, 0x26, 0x2e, 0xf0, 0x35, 0xf3, 0x55, 0x73, 0x02, 0x2f, 0x12, 0x41, 0xc9, 0x09, + 0x26, 0x6e, 0x50, 0x72, 0xa6, 0xb5, 0x62, 0x88, 0xa3, 0xf7, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa6, + 0xb2, 0x1a, 0x50, 0xce, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/display_keyword_view.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/display_keyword_view.pb.go new file mode 100644 index 000000000..bdf4f2b78 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/display_keyword_view.pb.go @@ -0,0 +1,89 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/display_keyword_view.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A display keyword view. +type DisplayKeywordView struct { + // The resource name of the display keyword view. + // Display Keyword view resource names have the form: + // + // `customers/{customer_id}/displayKeywordViews/{ad_group_id}_{criterion_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DisplayKeywordView) Reset() { *m = DisplayKeywordView{} } +func (m *DisplayKeywordView) String() string { return proto.CompactTextString(m) } +func (*DisplayKeywordView) ProtoMessage() {} +func (*DisplayKeywordView) Descriptor() ([]byte, []int) { + return fileDescriptor_display_keyword_view_8e70ac1b36b894b2, []int{0} +} +func (m *DisplayKeywordView) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DisplayKeywordView.Unmarshal(m, b) +} +func (m *DisplayKeywordView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DisplayKeywordView.Marshal(b, m, deterministic) +} +func (dst *DisplayKeywordView) XXX_Merge(src proto.Message) { + xxx_messageInfo_DisplayKeywordView.Merge(dst, src) +} +func (m *DisplayKeywordView) XXX_Size() int { + return xxx_messageInfo_DisplayKeywordView.Size(m) +} +func (m *DisplayKeywordView) XXX_DiscardUnknown() { + xxx_messageInfo_DisplayKeywordView.DiscardUnknown(m) +} + +var xxx_messageInfo_DisplayKeywordView proto.InternalMessageInfo + +func (m *DisplayKeywordView) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*DisplayKeywordView)(nil), "google.ads.googleads.v0.resources.DisplayKeywordView") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/display_keyword_view.proto", fileDescriptor_display_keyword_view_8e70ac1b36b894b2) +} + +var fileDescriptor_display_keyword_view_8e70ac1b36b894b2 = []byte{ + // 235 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x49, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xa2, 0xd4, + 0xe2, 0xfc, 0xd2, 0xa2, 0xe4, 0xd4, 0x62, 0xfd, 0x94, 0xcc, 0xe2, 0x82, 0x9c, 0xc4, 0xca, 0xf8, + 0xec, 0xd4, 0xca, 0xf2, 0xfc, 0xa2, 0x94, 0xf8, 0xb2, 0xcc, 0xd4, 0x72, 0xbd, 0x82, 0xa2, 0xfc, + 0x92, 0x7c, 0x21, 0x45, 0x88, 0x16, 0xbd, 0xc4, 0x94, 0x62, 0x3d, 0xb8, 0x6e, 0xbd, 0x32, 0x03, + 0x3d, 0xb8, 0x6e, 0x25, 0x4b, 0x2e, 0x21, 0x17, 0x88, 0x01, 0xde, 0x10, 0xfd, 0x61, 0x99, 0xa9, + 0xe5, 0x42, 0xca, 0x5c, 0xbc, 0x30, 0x25, 0xf1, 0x79, 0x89, 0xb9, 0xa9, 0x12, 0x8c, 0x0a, 0x8c, + 0x1a, 0x9c, 0x41, 0x3c, 0x30, 0x41, 0xbf, 0xc4, 0xdc, 0x54, 0xa7, 0x3b, 0x8c, 0x5c, 0xaa, 0xc9, + 0xf9, 0xb9, 0x7a, 0x04, 0x2d, 0x71, 0x12, 0xc7, 0xb4, 0x22, 0x00, 0xe4, 0xc0, 0x00, 0xc6, 0x28, + 0x2f, 0xa8, 0xee, 0xf4, 0xfc, 0x9c, 0xc4, 0xbc, 0x74, 0xbd, 0xfc, 0xa2, 0x74, 0xfd, 0xf4, 0xd4, + 0x3c, 0xb0, 0xf3, 0x61, 0x1e, 0x2e, 0xc8, 0x2c, 0xc6, 0xe3, 0x7f, 0x6b, 0x38, 0x6b, 0x11, 0x13, + 0xb3, 0xbb, 0xa3, 0xe3, 0x2a, 0x26, 0x45, 0x77, 0x88, 0x91, 0x8e, 0x29, 0xc5, 0x7a, 0x10, 0x26, + 0x88, 0x15, 0x66, 0xa0, 0x17, 0x04, 0x53, 0x79, 0x0a, 0xa6, 0x26, 0xc6, 0x31, 0xa5, 0x38, 0x06, + 0xae, 0x26, 0x26, 0xcc, 0x20, 0x06, 0xae, 0x26, 0x89, 0x0d, 0xec, 0x08, 0x63, 0x40, 0x00, 0x00, + 0x00, 0xff, 0xff, 0x64, 0xb4, 0x1f, 0x4e, 0x83, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/feed.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/feed.pb.go new file mode 100644 index 000000000..95472752d --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/feed.pb.go @@ -0,0 +1,679 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/feed.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// The operator. +type FeedAttributeOperation_Operator int32 + +const ( + // Unspecified. + FeedAttributeOperation_UNSPECIFIED FeedAttributeOperation_Operator = 0 + // Used for return value only. Represents value unknown in this version. + FeedAttributeOperation_UNKNOWN FeedAttributeOperation_Operator = 1 + // Add the attribute to the existing attributes. + FeedAttributeOperation_ADD FeedAttributeOperation_Operator = 2 +) + +var FeedAttributeOperation_Operator_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "UNKNOWN", + 2: "ADD", +} +var FeedAttributeOperation_Operator_value = map[string]int32{ + "UNSPECIFIED": 0, + "UNKNOWN": 1, + "ADD": 2, +} + +func (x FeedAttributeOperation_Operator) String() string { + return proto.EnumName(FeedAttributeOperation_Operator_name, int32(x)) +} +func (FeedAttributeOperation_Operator) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_feed_c128d3201d6e53c9, []int{2, 0} +} + +// A feed. +type Feed struct { + // The resource name of the feed. + // Feed resource names have the form: + // + // `customers/{customer_id}/feeds/{feed_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + // The ID of the feed. + // This field is read-only. + Id *wrappers.Int64Value `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` + // Name of the feed. Required. + Name *wrappers.StringValue `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + // The Feed's attributes. Required on CREATE. + // Disallowed on UPDATE. Use attribute_operations to add new attributes. + Attributes []*FeedAttribute `protobuf:"bytes,4,rep,name=attributes,proto3" json:"attributes,omitempty"` + // The list of operations changing the feed attributes. Attributes can only + // be added, not removed. + AttributeOperations []*FeedAttributeOperation `protobuf:"bytes,9,rep,name=attribute_operations,json=attributeOperations,proto3" json:"attribute_operations,omitempty"` + // Specifies who manages the FeedAttributes for the Feed. + Origin enums.FeedOriginEnum_FeedOrigin `protobuf:"varint,5,opt,name=origin,proto3,enum=google.ads.googleads.v0.enums.FeedOriginEnum_FeedOrigin" json:"origin,omitempty"` + // Status of the feed. + // This field is read-only. + Status enums.FeedStatusEnum_FeedStatus `protobuf:"varint,8,opt,name=status,proto3,enum=google.ads.googleads.v0.enums.FeedStatusEnum_FeedStatus" json:"status,omitempty"` + // The system data for the Feed. This data specifies information for + // generating the feed items of the system generated feed. + // + // Types that are valid to be assigned to SystemFeedGenerationData: + // *Feed_PlacesLocationFeedData_ + // *Feed_AffiliateLocationFeedData_ + SystemFeedGenerationData isFeed_SystemFeedGenerationData `protobuf_oneof:"system_feed_generation_data"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Feed) Reset() { *m = Feed{} } +func (m *Feed) String() string { return proto.CompactTextString(m) } +func (*Feed) ProtoMessage() {} +func (*Feed) Descriptor() ([]byte, []int) { + return fileDescriptor_feed_c128d3201d6e53c9, []int{0} +} +func (m *Feed) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Feed.Unmarshal(m, b) +} +func (m *Feed) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Feed.Marshal(b, m, deterministic) +} +func (dst *Feed) XXX_Merge(src proto.Message) { + xxx_messageInfo_Feed.Merge(dst, src) +} +func (m *Feed) XXX_Size() int { + return xxx_messageInfo_Feed.Size(m) +} +func (m *Feed) XXX_DiscardUnknown() { + xxx_messageInfo_Feed.DiscardUnknown(m) +} + +var xxx_messageInfo_Feed proto.InternalMessageInfo + +func (m *Feed) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func (m *Feed) GetId() *wrappers.Int64Value { + if m != nil { + return m.Id + } + return nil +} + +func (m *Feed) GetName() *wrappers.StringValue { + if m != nil { + return m.Name + } + return nil +} + +func (m *Feed) GetAttributes() []*FeedAttribute { + if m != nil { + return m.Attributes + } + return nil +} + +func (m *Feed) GetAttributeOperations() []*FeedAttributeOperation { + if m != nil { + return m.AttributeOperations + } + return nil +} + +func (m *Feed) GetOrigin() enums.FeedOriginEnum_FeedOrigin { + if m != nil { + return m.Origin + } + return enums.FeedOriginEnum_UNSPECIFIED +} + +func (m *Feed) GetStatus() enums.FeedStatusEnum_FeedStatus { + if m != nil { + return m.Status + } + return enums.FeedStatusEnum_UNSPECIFIED +} + +type isFeed_SystemFeedGenerationData interface { + isFeed_SystemFeedGenerationData() +} + +type Feed_PlacesLocationFeedData_ struct { + PlacesLocationFeedData *Feed_PlacesLocationFeedData `protobuf:"bytes,6,opt,name=places_location_feed_data,json=placesLocationFeedData,proto3,oneof"` +} + +type Feed_AffiliateLocationFeedData_ struct { + AffiliateLocationFeedData *Feed_AffiliateLocationFeedData `protobuf:"bytes,7,opt,name=affiliate_location_feed_data,json=affiliateLocationFeedData,proto3,oneof"` +} + +func (*Feed_PlacesLocationFeedData_) isFeed_SystemFeedGenerationData() {} + +func (*Feed_AffiliateLocationFeedData_) isFeed_SystemFeedGenerationData() {} + +func (m *Feed) GetSystemFeedGenerationData() isFeed_SystemFeedGenerationData { + if m != nil { + return m.SystemFeedGenerationData + } + return nil +} + +func (m *Feed) GetPlacesLocationFeedData() *Feed_PlacesLocationFeedData { + if x, ok := m.GetSystemFeedGenerationData().(*Feed_PlacesLocationFeedData_); ok { + return x.PlacesLocationFeedData + } + return nil +} + +func (m *Feed) GetAffiliateLocationFeedData() *Feed_AffiliateLocationFeedData { + if x, ok := m.GetSystemFeedGenerationData().(*Feed_AffiliateLocationFeedData_); ok { + return x.AffiliateLocationFeedData + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*Feed) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _Feed_OneofMarshaler, _Feed_OneofUnmarshaler, _Feed_OneofSizer, []interface{}{ + (*Feed_PlacesLocationFeedData_)(nil), + (*Feed_AffiliateLocationFeedData_)(nil), + } +} + +func _Feed_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*Feed) + // system_feed_generation_data + switch x := m.SystemFeedGenerationData.(type) { + case *Feed_PlacesLocationFeedData_: + b.EncodeVarint(6<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.PlacesLocationFeedData); err != nil { + return err + } + case *Feed_AffiliateLocationFeedData_: + b.EncodeVarint(7<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.AffiliateLocationFeedData); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("Feed.SystemFeedGenerationData has unexpected type %T", x) + } + return nil +} + +func _Feed_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*Feed) + switch tag { + case 6: // system_feed_generation_data.places_location_feed_data + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(Feed_PlacesLocationFeedData) + err := b.DecodeMessage(msg) + m.SystemFeedGenerationData = &Feed_PlacesLocationFeedData_{msg} + return true, err + case 7: // system_feed_generation_data.affiliate_location_feed_data + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(Feed_AffiliateLocationFeedData) + err := b.DecodeMessage(msg) + m.SystemFeedGenerationData = &Feed_AffiliateLocationFeedData_{msg} + return true, err + default: + return false, nil + } +} + +func _Feed_OneofSizer(msg proto.Message) (n int) { + m := msg.(*Feed) + // system_feed_generation_data + switch x := m.SystemFeedGenerationData.(type) { + case *Feed_PlacesLocationFeedData_: + s := proto.Size(x.PlacesLocationFeedData) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *Feed_AffiliateLocationFeedData_: + s := proto.Size(x.AffiliateLocationFeedData) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// Data used to configure a location feed populated from Google My Business +// Locations. +type Feed_PlacesLocationFeedData struct { + // Required authentication token (from OAuth API) for the email. + OauthInfo *Feed_PlacesLocationFeedData_OAuthInfo `protobuf:"bytes,1,opt,name=oauth_info,json=oauthInfo,proto3" json:"oauth_info,omitempty"` + // Email address of a Google My Business account or email address of a + // manager of the Google My Business account. Required. + EmailAddress *wrappers.StringValue `protobuf:"bytes,2,opt,name=email_address,json=emailAddress,proto3" json:"email_address,omitempty"` + // Plus page ID of the managed business whose locations should be used. If + // this field is not set, then all businesses accessible by the user + // (specified by email_address) are used. + BusinessAccountIdentifier *wrappers.StringValue `protobuf:"bytes,3,opt,name=business_account_identifier,json=businessAccountIdentifier,proto3" json:"business_account_identifier,omitempty"` + // Used to filter Google My Business listings by business name. If + // business_name_filter is set, only listings with a matching business name + // are candidates to be sync'd into FeedItems. + BusinessNameFilter *wrappers.StringValue `protobuf:"bytes,4,opt,name=business_name_filter,json=businessNameFilter,proto3" json:"business_name_filter,omitempty"` + // Used to filter Google My Business listings by categories. If entries + // exist in category_filters, only listings that belong to any of the + // categories are candidates to be sync'd into FeedItems. If no entries + // exist in category_filters, then all listings are candidates for syncing. + CategoryFilters []*wrappers.StringValue `protobuf:"bytes,5,rep,name=category_filters,json=categoryFilters,proto3" json:"category_filters,omitempty"` + // Used to filter Google My Business listings by labels. If entries exist in + // label_filters, only listings that has any of the labels set are + // candidates to be synchronized into FeedItems. If no entries exist in + // label_filters, then all listings are candidates for syncing. + LabelFilters []*wrappers.StringValue `protobuf:"bytes,6,rep,name=label_filters,json=labelFilters,proto3" json:"label_filters,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Feed_PlacesLocationFeedData) Reset() { *m = Feed_PlacesLocationFeedData{} } +func (m *Feed_PlacesLocationFeedData) String() string { return proto.CompactTextString(m) } +func (*Feed_PlacesLocationFeedData) ProtoMessage() {} +func (*Feed_PlacesLocationFeedData) Descriptor() ([]byte, []int) { + return fileDescriptor_feed_c128d3201d6e53c9, []int{0, 0} +} +func (m *Feed_PlacesLocationFeedData) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Feed_PlacesLocationFeedData.Unmarshal(m, b) +} +func (m *Feed_PlacesLocationFeedData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Feed_PlacesLocationFeedData.Marshal(b, m, deterministic) +} +func (dst *Feed_PlacesLocationFeedData) XXX_Merge(src proto.Message) { + xxx_messageInfo_Feed_PlacesLocationFeedData.Merge(dst, src) +} +func (m *Feed_PlacesLocationFeedData) XXX_Size() int { + return xxx_messageInfo_Feed_PlacesLocationFeedData.Size(m) +} +func (m *Feed_PlacesLocationFeedData) XXX_DiscardUnknown() { + xxx_messageInfo_Feed_PlacesLocationFeedData.DiscardUnknown(m) +} + +var xxx_messageInfo_Feed_PlacesLocationFeedData proto.InternalMessageInfo + +func (m *Feed_PlacesLocationFeedData) GetOauthInfo() *Feed_PlacesLocationFeedData_OAuthInfo { + if m != nil { + return m.OauthInfo + } + return nil +} + +func (m *Feed_PlacesLocationFeedData) GetEmailAddress() *wrappers.StringValue { + if m != nil { + return m.EmailAddress + } + return nil +} + +func (m *Feed_PlacesLocationFeedData) GetBusinessAccountIdentifier() *wrappers.StringValue { + if m != nil { + return m.BusinessAccountIdentifier + } + return nil +} + +func (m *Feed_PlacesLocationFeedData) GetBusinessNameFilter() *wrappers.StringValue { + if m != nil { + return m.BusinessNameFilter + } + return nil +} + +func (m *Feed_PlacesLocationFeedData) GetCategoryFilters() []*wrappers.StringValue { + if m != nil { + return m.CategoryFilters + } + return nil +} + +func (m *Feed_PlacesLocationFeedData) GetLabelFilters() []*wrappers.StringValue { + if m != nil { + return m.LabelFilters + } + return nil +} + +// Data used for authorization using OAuth. +type Feed_PlacesLocationFeedData_OAuthInfo struct { + // The HTTP method used to obtain authorization. + HttpMethod *wrappers.StringValue `protobuf:"bytes,1,opt,name=http_method,json=httpMethod,proto3" json:"http_method,omitempty"` + // The HTTP request URL used to obtain authorization. + HttpRequestUrl *wrappers.StringValue `protobuf:"bytes,2,opt,name=http_request_url,json=httpRequestUrl,proto3" json:"http_request_url,omitempty"` + // The HTTP authorization header used to obtain authorization. + HttpAuthorizationHeader *wrappers.StringValue `protobuf:"bytes,3,opt,name=http_authorization_header,json=httpAuthorizationHeader,proto3" json:"http_authorization_header,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Feed_PlacesLocationFeedData_OAuthInfo) Reset() { *m = Feed_PlacesLocationFeedData_OAuthInfo{} } +func (m *Feed_PlacesLocationFeedData_OAuthInfo) String() string { return proto.CompactTextString(m) } +func (*Feed_PlacesLocationFeedData_OAuthInfo) ProtoMessage() {} +func (*Feed_PlacesLocationFeedData_OAuthInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_feed_c128d3201d6e53c9, []int{0, 0, 0} +} +func (m *Feed_PlacesLocationFeedData_OAuthInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Feed_PlacesLocationFeedData_OAuthInfo.Unmarshal(m, b) +} +func (m *Feed_PlacesLocationFeedData_OAuthInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Feed_PlacesLocationFeedData_OAuthInfo.Marshal(b, m, deterministic) +} +func (dst *Feed_PlacesLocationFeedData_OAuthInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_Feed_PlacesLocationFeedData_OAuthInfo.Merge(dst, src) +} +func (m *Feed_PlacesLocationFeedData_OAuthInfo) XXX_Size() int { + return xxx_messageInfo_Feed_PlacesLocationFeedData_OAuthInfo.Size(m) +} +func (m *Feed_PlacesLocationFeedData_OAuthInfo) XXX_DiscardUnknown() { + xxx_messageInfo_Feed_PlacesLocationFeedData_OAuthInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_Feed_PlacesLocationFeedData_OAuthInfo proto.InternalMessageInfo + +func (m *Feed_PlacesLocationFeedData_OAuthInfo) GetHttpMethod() *wrappers.StringValue { + if m != nil { + return m.HttpMethod + } + return nil +} + +func (m *Feed_PlacesLocationFeedData_OAuthInfo) GetHttpRequestUrl() *wrappers.StringValue { + if m != nil { + return m.HttpRequestUrl + } + return nil +} + +func (m *Feed_PlacesLocationFeedData_OAuthInfo) GetHttpAuthorizationHeader() *wrappers.StringValue { + if m != nil { + return m.HttpAuthorizationHeader + } + return nil +} + +// Data used to configure an affiliate location feed populated with the +// specified chains. +type Feed_AffiliateLocationFeedData struct { + // The list of chains that the affiliate location feed will sync the + // locations from. + ChainIds []*wrappers.Int64Value `protobuf:"bytes,1,rep,name=chain_ids,json=chainIds,proto3" json:"chain_ids,omitempty"` + // The relationship the chains have with the advertiser. + RelationshipType enums.AffiliateLocationFeedRelationshipTypeEnum_AffiliateLocationFeedRelationshipType `protobuf:"varint,2,opt,name=relationship_type,json=relationshipType,proto3,enum=google.ads.googleads.v0.enums.AffiliateLocationFeedRelationshipTypeEnum_AffiliateLocationFeedRelationshipType" json:"relationship_type,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Feed_AffiliateLocationFeedData) Reset() { *m = Feed_AffiliateLocationFeedData{} } +func (m *Feed_AffiliateLocationFeedData) String() string { return proto.CompactTextString(m) } +func (*Feed_AffiliateLocationFeedData) ProtoMessage() {} +func (*Feed_AffiliateLocationFeedData) Descriptor() ([]byte, []int) { + return fileDescriptor_feed_c128d3201d6e53c9, []int{0, 1} +} +func (m *Feed_AffiliateLocationFeedData) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Feed_AffiliateLocationFeedData.Unmarshal(m, b) +} +func (m *Feed_AffiliateLocationFeedData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Feed_AffiliateLocationFeedData.Marshal(b, m, deterministic) +} +func (dst *Feed_AffiliateLocationFeedData) XXX_Merge(src proto.Message) { + xxx_messageInfo_Feed_AffiliateLocationFeedData.Merge(dst, src) +} +func (m *Feed_AffiliateLocationFeedData) XXX_Size() int { + return xxx_messageInfo_Feed_AffiliateLocationFeedData.Size(m) +} +func (m *Feed_AffiliateLocationFeedData) XXX_DiscardUnknown() { + xxx_messageInfo_Feed_AffiliateLocationFeedData.DiscardUnknown(m) +} + +var xxx_messageInfo_Feed_AffiliateLocationFeedData proto.InternalMessageInfo + +func (m *Feed_AffiliateLocationFeedData) GetChainIds() []*wrappers.Int64Value { + if m != nil { + return m.ChainIds + } + return nil +} + +func (m *Feed_AffiliateLocationFeedData) GetRelationshipType() enums.AffiliateLocationFeedRelationshipTypeEnum_AffiliateLocationFeedRelationshipType { + if m != nil { + return m.RelationshipType + } + return enums.AffiliateLocationFeedRelationshipTypeEnum_UNSPECIFIED +} + +// FeedAttributes define the types of data expected to be present in a Feed. A +// single FeedAttribute specifies the expected type of the FeedItemAttributes +// with the same FeedAttributeId. Optionally, a FeedAttribute can be marked as +// being part of a FeedItem's unique key. +type FeedAttribute struct { + // ID of the attribute. + Id *wrappers.Int64Value `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + // The name of the attribute. Required. + Name *wrappers.StringValue `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + // Data type for feed attribute. Required. + Type enums.FeedAttributeTypeEnum_FeedAttributeType `protobuf:"varint,3,opt,name=type,proto3,enum=google.ads.googleads.v0.enums.FeedAttributeTypeEnum_FeedAttributeType" json:"type,omitempty"` + // Indicates that data corresponding to this attribute is part of a + // FeedItem's unique key. It defaults to false if it is unspecified. Note + // that a unique key is not required in a Feed's schema, in which case the + // FeedItems must be referenced by their feed_item_id. + IsPartOfKey *wrappers.BoolValue `protobuf:"bytes,4,opt,name=is_part_of_key,json=isPartOfKey,proto3" json:"is_part_of_key,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FeedAttribute) Reset() { *m = FeedAttribute{} } +func (m *FeedAttribute) String() string { return proto.CompactTextString(m) } +func (*FeedAttribute) ProtoMessage() {} +func (*FeedAttribute) Descriptor() ([]byte, []int) { + return fileDescriptor_feed_c128d3201d6e53c9, []int{1} +} +func (m *FeedAttribute) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FeedAttribute.Unmarshal(m, b) +} +func (m *FeedAttribute) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FeedAttribute.Marshal(b, m, deterministic) +} +func (dst *FeedAttribute) XXX_Merge(src proto.Message) { + xxx_messageInfo_FeedAttribute.Merge(dst, src) +} +func (m *FeedAttribute) XXX_Size() int { + return xxx_messageInfo_FeedAttribute.Size(m) +} +func (m *FeedAttribute) XXX_DiscardUnknown() { + xxx_messageInfo_FeedAttribute.DiscardUnknown(m) +} + +var xxx_messageInfo_FeedAttribute proto.InternalMessageInfo + +func (m *FeedAttribute) GetId() *wrappers.Int64Value { + if m != nil { + return m.Id + } + return nil +} + +func (m *FeedAttribute) GetName() *wrappers.StringValue { + if m != nil { + return m.Name + } + return nil +} + +func (m *FeedAttribute) GetType() enums.FeedAttributeTypeEnum_FeedAttributeType { + if m != nil { + return m.Type + } + return enums.FeedAttributeTypeEnum_UNSPECIFIED +} + +func (m *FeedAttribute) GetIsPartOfKey() *wrappers.BoolValue { + if m != nil { + return m.IsPartOfKey + } + return nil +} + +// Operation to be performed on a feed attribute list in a mutate. +type FeedAttributeOperation struct { + // Type of list operation to perform. + Operator FeedAttributeOperation_Operator `protobuf:"varint,1,opt,name=operator,proto3,enum=google.ads.googleads.v0.resources.FeedAttributeOperation_Operator" json:"operator,omitempty"` + // The feed attribute being added to the list. + Value *FeedAttribute `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FeedAttributeOperation) Reset() { *m = FeedAttributeOperation{} } +func (m *FeedAttributeOperation) String() string { return proto.CompactTextString(m) } +func (*FeedAttributeOperation) ProtoMessage() {} +func (*FeedAttributeOperation) Descriptor() ([]byte, []int) { + return fileDescriptor_feed_c128d3201d6e53c9, []int{2} +} +func (m *FeedAttributeOperation) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FeedAttributeOperation.Unmarshal(m, b) +} +func (m *FeedAttributeOperation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FeedAttributeOperation.Marshal(b, m, deterministic) +} +func (dst *FeedAttributeOperation) XXX_Merge(src proto.Message) { + xxx_messageInfo_FeedAttributeOperation.Merge(dst, src) +} +func (m *FeedAttributeOperation) XXX_Size() int { + return xxx_messageInfo_FeedAttributeOperation.Size(m) +} +func (m *FeedAttributeOperation) XXX_DiscardUnknown() { + xxx_messageInfo_FeedAttributeOperation.DiscardUnknown(m) +} + +var xxx_messageInfo_FeedAttributeOperation proto.InternalMessageInfo + +func (m *FeedAttributeOperation) GetOperator() FeedAttributeOperation_Operator { + if m != nil { + return m.Operator + } + return FeedAttributeOperation_UNSPECIFIED +} + +func (m *FeedAttributeOperation) GetValue() *FeedAttribute { + if m != nil { + return m.Value + } + return nil +} + +func init() { + proto.RegisterType((*Feed)(nil), "google.ads.googleads.v0.resources.Feed") + proto.RegisterType((*Feed_PlacesLocationFeedData)(nil), "google.ads.googleads.v0.resources.Feed.PlacesLocationFeedData") + proto.RegisterType((*Feed_PlacesLocationFeedData_OAuthInfo)(nil), "google.ads.googleads.v0.resources.Feed.PlacesLocationFeedData.OAuthInfo") + proto.RegisterType((*Feed_AffiliateLocationFeedData)(nil), "google.ads.googleads.v0.resources.Feed.AffiliateLocationFeedData") + proto.RegisterType((*FeedAttribute)(nil), "google.ads.googleads.v0.resources.FeedAttribute") + proto.RegisterType((*FeedAttributeOperation)(nil), "google.ads.googleads.v0.resources.FeedAttributeOperation") + proto.RegisterEnum("google.ads.googleads.v0.resources.FeedAttributeOperation_Operator", FeedAttributeOperation_Operator_name, FeedAttributeOperation_Operator_value) +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/feed.proto", fileDescriptor_feed_c128d3201d6e53c9) +} + +var fileDescriptor_feed_c128d3201d6e53c9 = []byte{ + // 999 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x96, 0xcf, 0x6f, 0xe3, 0x44, + 0x14, 0xc7, 0xd7, 0x49, 0xfa, 0x23, 0x93, 0x36, 0x1b, 0x86, 0x55, 0x71, 0xd2, 0x05, 0x75, 0x8b, + 0x90, 0x2a, 0x81, 0x9c, 0x10, 0x10, 0x2c, 0x42, 0x80, 0x1c, 0xda, 0xb4, 0x61, 0xd9, 0x24, 0x72, + 0x69, 0x41, 0xab, 0x08, 0x6b, 0x12, 0x8f, 0x9d, 0x11, 0x8e, 0xc7, 0xcc, 0x8c, 0x8b, 0x02, 0x57, + 0x6e, 0xfc, 0x09, 0xdc, 0x38, 0xf2, 0xa7, 0x70, 0xe0, 0x2f, 0x81, 0xd3, 0x1e, 0xb8, 0x22, 0xcf, + 0xd8, 0x26, 0x6c, 0x7e, 0xd4, 0x85, 0xdb, 0xcc, 0xf8, 0x7d, 0x3f, 0x7e, 0xf9, 0xbe, 0xbc, 0x37, + 0x06, 0x6f, 0x79, 0x94, 0x7a, 0x3e, 0x6e, 0x22, 0x87, 0x37, 0xd5, 0x32, 0x5e, 0xdd, 0xb4, 0x9a, + 0x0c, 0x73, 0x1a, 0xb1, 0x09, 0xe6, 0x4d, 0x17, 0x63, 0xc7, 0x08, 0x19, 0x15, 0x14, 0x3e, 0x52, + 0x21, 0x06, 0x72, 0xb8, 0x91, 0x45, 0x1b, 0x37, 0x2d, 0x23, 0x8b, 0x6e, 0x3c, 0x5d, 0x07, 0xc4, + 0x41, 0x34, 0xe3, 0x4d, 0xe4, 0xba, 0xc4, 0x27, 0x48, 0x60, 0xdb, 0xa7, 0x13, 0x24, 0x08, 0x0d, + 0xec, 0x98, 0x6f, 0x33, 0xec, 0xcb, 0x1d, 0x9f, 0x92, 0xd0, 0x16, 0xf3, 0x10, 0xab, 0x37, 0x36, + 0xde, 0xdf, 0x8c, 0x93, 0x5a, 0x24, 0x04, 0x23, 0xe3, 0x48, 0xe0, 0x45, 0x61, 0x33, 0x87, 0x90, + 0x32, 0xe2, 0x91, 0xe0, 0x0e, 0x02, 0x2e, 0x90, 0x88, 0x78, 0x22, 0x78, 0x2d, 0x11, 0xc8, 0xdd, + 0x38, 0x72, 0x9b, 0xdf, 0x31, 0x14, 0x86, 0x98, 0x25, 0xcf, 0x8f, 0xff, 0xda, 0x07, 0xa5, 0x2e, + 0xc6, 0x0e, 0x7c, 0x1d, 0xec, 0xa7, 0xfe, 0xd8, 0x01, 0x9a, 0x61, 0x5d, 0x3b, 0xd2, 0x4e, 0xca, + 0xd6, 0x5e, 0x7a, 0xd8, 0x47, 0x33, 0x0c, 0xdf, 0x04, 0x05, 0xe2, 0xe8, 0x85, 0x23, 0xed, 0xa4, + 0xd2, 0x3e, 0x4c, 0xcc, 0x35, 0x52, 0xb4, 0xd1, 0x0b, 0xc4, 0x7b, 0xef, 0x5e, 0x23, 0x3f, 0xc2, + 0x56, 0x81, 0x38, 0xb0, 0x05, 0x4a, 0x12, 0x54, 0x94, 0xe1, 0x0f, 0x97, 0xc2, 0x2f, 0x05, 0x23, + 0x81, 0xa7, 0xe2, 0x65, 0x24, 0x1c, 0x02, 0x90, 0xd9, 0xc4, 0xf5, 0xd2, 0x51, 0xf1, 0xa4, 0xd2, + 0x6e, 0x19, 0xb7, 0x96, 0xd3, 0x88, 0x7f, 0x80, 0x99, 0x0a, 0xad, 0x05, 0x06, 0xf4, 0xc1, 0x83, + 0x7f, 0x8c, 0xa7, 0x21, 0x66, 0xaa, 0x7e, 0x7a, 0x59, 0xb2, 0x3f, 0xb8, 0x2b, 0x7b, 0x90, 0x12, + 0xac, 0x97, 0xd1, 0xd2, 0x19, 0x87, 0x43, 0xb0, 0xad, 0xaa, 0xa5, 0x6f, 0x1d, 0x69, 0x27, 0xd5, + 0xf6, 0xe3, 0xb5, 0x7c, 0x59, 0x2e, 0xc9, 0x1e, 0x48, 0xc1, 0x59, 0x10, 0xcd, 0x16, 0xb6, 0x56, + 0xc2, 0x89, 0x89, 0xaa, 0x9c, 0xfa, 0x6e, 0x6e, 0xe2, 0xa5, 0x14, 0x64, 0x44, 0xb5, 0xb5, 0x12, + 0x0e, 0xfc, 0x01, 0xd4, 0x43, 0x1f, 0x4d, 0x30, 0x7f, 0xe1, 0xbf, 0xed, 0x20, 0x81, 0xf4, 0x6d, + 0x59, 0xaa, 0x8f, 0x73, 0xda, 0x62, 0x0c, 0x25, 0xe8, 0xf3, 0x84, 0x13, 0x1f, 0x9d, 0x22, 0x81, + 0x2e, 0xee, 0x59, 0x07, 0xe1, 0xca, 0x27, 0xf0, 0x47, 0x0d, 0x3c, 0x5c, 0xd7, 0x5c, 0x32, 0x81, + 0x1d, 0x99, 0x80, 0x99, 0x37, 0x01, 0x33, 0x65, 0xad, 0xc8, 0xa1, 0x8e, 0xd6, 0x3d, 0x6c, 0xfc, + 0xb9, 0x05, 0x0e, 0x56, 0xe7, 0x0e, 0x3d, 0x00, 0x28, 0x8a, 0xc4, 0xd4, 0x26, 0x81, 0x4b, 0x65, + 0x0f, 0x54, 0xda, 0x17, 0xff, 0xcf, 0x0f, 0x63, 0x60, 0x46, 0x62, 0xda, 0x0b, 0x5c, 0x6a, 0x95, + 0x25, 0x3b, 0x5e, 0x42, 0x13, 0xec, 0xe3, 0x19, 0x22, 0xbe, 0x8d, 0x1c, 0x87, 0x61, 0xce, 0x93, + 0xae, 0xda, 0xdc, 0x26, 0x7b, 0x52, 0x62, 0x2a, 0x05, 0x1c, 0x81, 0xc3, 0x71, 0xc4, 0x49, 0x80, + 0x39, 0xb7, 0xd1, 0x64, 0x42, 0xa3, 0x40, 0xd8, 0xc4, 0xc1, 0x81, 0x20, 0x2e, 0xc1, 0x2c, 0x57, + 0xdf, 0xd5, 0x53, 0x80, 0xa9, 0xf4, 0xbd, 0x4c, 0x0e, 0xfb, 0xe0, 0x41, 0x46, 0x8f, 0xbb, 0xd3, + 0x76, 0x89, 0x2f, 0x30, 0xd3, 0x4b, 0x39, 0xb0, 0x30, 0x55, 0xc6, 0x53, 0xa3, 0x2b, 0x75, 0xf0, + 0x1c, 0xd4, 0x26, 0x48, 0x60, 0x8f, 0xb2, 0x79, 0x82, 0xe2, 0xfa, 0x96, 0x6c, 0xc3, 0xcd, 0xac, + 0xfb, 0xa9, 0x4a, 0x71, 0x78, 0xec, 0x9c, 0x8f, 0xc6, 0xd8, 0xcf, 0x28, 0xdb, 0x39, 0x28, 0x7b, + 0x52, 0x92, 0x20, 0x1a, 0x7f, 0x68, 0xa0, 0x9c, 0x55, 0x05, 0x7e, 0x04, 0x2a, 0x53, 0x21, 0x42, + 0x7b, 0x86, 0xc5, 0x94, 0x3a, 0x49, 0xd1, 0x37, 0xe3, 0x40, 0x2c, 0x78, 0x2a, 0xe3, 0x61, 0x17, + 0xd4, 0xa4, 0x9c, 0xe1, 0x6f, 0x23, 0xcc, 0x85, 0x1d, 0x31, 0x3f, 0x57, 0x31, 0xab, 0xb1, 0xca, + 0x52, 0xa2, 0x2b, 0xe6, 0xc3, 0xaf, 0x40, 0x5d, 0x72, 0xe2, 0xbf, 0x08, 0x65, 0xe4, 0x7b, 0xd5, + 0x1b, 0x53, 0x8c, 0x9c, 0x9c, 0xc5, 0x7c, 0x25, 0x96, 0x9b, 0x8b, 0xea, 0x0b, 0x29, 0x6e, 0x3c, + 0xd7, 0x40, 0x7d, 0x6d, 0xab, 0xc0, 0xc7, 0xa0, 0x3c, 0x99, 0x22, 0x12, 0xd8, 0xc4, 0xe1, 0xba, + 0x26, 0xbd, 0xdc, 0x38, 0xdb, 0x77, 0x65, 0x74, 0xcf, 0xe1, 0xf0, 0x67, 0x0d, 0xbc, 0xb4, 0x74, + 0x27, 0xca, 0xdf, 0x5e, 0x6d, 0x07, 0xb7, 0x4c, 0xaa, 0x95, 0xf9, 0x58, 0x0b, 0xb0, 0x2f, 0xe6, + 0x21, 0x96, 0x43, 0x2c, 0x57, 0xa4, 0x55, 0x63, 0x2f, 0x9c, 0x74, 0x5e, 0x05, 0x87, 0x7c, 0xce, + 0x05, 0x9e, 0xa9, 0xf9, 0xe2, 0xe1, 0x20, 0x19, 0xd4, 0x72, 0xd4, 0x1c, 0xff, 0x54, 0x00, 0xfb, + 0xff, 0x1a, 0xee, 0xc9, 0xed, 0xa6, 0xdd, 0xed, 0x76, 0x2b, 0xe4, 0xbe, 0xdd, 0x9e, 0x81, 0x92, + 0xf4, 0xa7, 0x28, 0xfd, 0xe9, 0xe6, 0x98, 0xe4, 0x59, 0x6a, 0x99, 0x17, 0x4b, 0xa7, 0x96, 0x64, + 0xc2, 0x4f, 0x40, 0x95, 0x70, 0x3b, 0x44, 0x4c, 0xd8, 0xd4, 0xb5, 0xbf, 0xc1, 0xf3, 0xa4, 0x4d, + 0x1b, 0x4b, 0x79, 0x75, 0x28, 0xf5, 0x55, 0x56, 0x15, 0xc2, 0x87, 0x88, 0x89, 0x81, 0xfb, 0x04, + 0xcf, 0x8f, 0x9f, 0x6b, 0xe0, 0x60, 0xf5, 0x55, 0x07, 0xbf, 0x06, 0xbb, 0xea, 0xe6, 0xa4, 0x4c, + 0x9a, 0x53, 0x6d, 0x77, 0xfe, 0xf3, 0xbd, 0x69, 0x0c, 0x12, 0x92, 0x95, 0x31, 0x61, 0x17, 0x6c, + 0xdd, 0xc4, 0x09, 0x25, 0x56, 0xde, 0xfd, 0xc2, 0x57, 0xf2, 0xe3, 0xb7, 0xc1, 0x6e, 0x4a, 0x87, + 0xf7, 0x41, 0xe5, 0xaa, 0x7f, 0x39, 0x3c, 0xfb, 0xb4, 0xd7, 0xed, 0x9d, 0x9d, 0xd6, 0xee, 0xc1, + 0x0a, 0xd8, 0xb9, 0xea, 0x3f, 0xe9, 0x0f, 0xbe, 0xec, 0xd7, 0x34, 0xb8, 0x03, 0x8a, 0xe6, 0xe9, + 0x69, 0xad, 0xd0, 0xf9, 0x5d, 0x03, 0x6f, 0x4c, 0xe8, 0xec, 0xf6, 0x37, 0x76, 0xca, 0xf1, 0x2b, + 0x87, 0xb1, 0x89, 0x43, 0xed, 0xd9, 0x67, 0x49, 0xbc, 0x47, 0x7d, 0x14, 0x78, 0x06, 0x65, 0x5e, + 0xd3, 0xc3, 0x81, 0xb4, 0x38, 0xfd, 0x2a, 0x0b, 0x09, 0xdf, 0xf0, 0xb9, 0xfa, 0x61, 0xb6, 0xfa, + 0xa5, 0x50, 0x3c, 0x37, 0xcd, 0x5f, 0x0b, 0x8f, 0xce, 0x15, 0xd2, 0x74, 0xb8, 0xa1, 0x96, 0xf1, + 0xea, 0xba, 0x65, 0x58, 0x69, 0xe4, 0x6f, 0x69, 0xcc, 0xc8, 0x74, 0xf8, 0x28, 0x8b, 0x19, 0x5d, + 0xb7, 0x46, 0x59, 0xcc, 0x78, 0x5b, 0x26, 0xf1, 0xce, 0xdf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x31, + 0xb1, 0x3b, 0x1b, 0x32, 0x0b, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/feed_item.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/feed_item.pb.go new file mode 100644 index 000000000..e94e12938 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/feed_item.pb.go @@ -0,0 +1,343 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/feed_item.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import common "google.golang.org/genproto/googleapis/ads/googleads/v0/common" +import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A feed item. +type FeedItem struct { + // The resource name of the feed item. + // Feed item resource names have the form: + // + // `customers/{customer_id}/feedItems/{feed_id}_{feed_item_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + // The feed to which this feed item belongs. + Feed *wrappers.StringValue `protobuf:"bytes,2,opt,name=feed,proto3" json:"feed,omitempty"` + // The ID of this feed item. + Id *wrappers.Int64Value `protobuf:"bytes,3,opt,name=id,proto3" json:"id,omitempty"` + // Start time in which this feed item is effective and can begin serving. + // The format is "YYYY-MM-DD HH:MM:SS". + // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30" + StartDateTime *wrappers.StringValue `protobuf:"bytes,4,opt,name=start_date_time,json=startDateTime,proto3" json:"start_date_time,omitempty"` + // End time in which this feed item is no longer effective and will stop + // The format is "YYYY-MM-DD HH:MM:SS". + // Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30" + EndDateTime *wrappers.StringValue `protobuf:"bytes,5,opt,name=end_date_time,json=endDateTime,proto3" json:"end_date_time,omitempty"` + // The feed item's attribute values. + AttributeValues []*FeedItemAttributeValue `protobuf:"bytes,6,rep,name=attribute_values,json=attributeValues,proto3" json:"attribute_values,omitempty"` + // Geo targeting restriction specifies the type of location that can be used + // for targeting. + GeoTargetingRestriction enums.GeoTargetingRestrictionEnum_GeoTargetingRestriction `protobuf:"varint,7,opt,name=geo_targeting_restriction,json=geoTargetingRestriction,proto3,enum=google.ads.googleads.v0.enums.GeoTargetingRestrictionEnum_GeoTargetingRestriction" json:"geo_targeting_restriction,omitempty"` + // The list of mappings used to substitute custom parameter tags in a + // `tracking_url_template`, `final_urls`, or `mobile_final_urls`. + UrlCustomParameters []*common.CustomParameter `protobuf:"bytes,8,rep,name=url_custom_parameters,json=urlCustomParameters,proto3" json:"url_custom_parameters,omitempty"` + // Status of the feed item. + // This field is read-only. + Status enums.FeedItemStatusEnum_FeedItemStatus `protobuf:"varint,9,opt,name=status,proto3,enum=google.ads.googleads.v0.enums.FeedItemStatusEnum_FeedItemStatus" json:"status,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FeedItem) Reset() { *m = FeedItem{} } +func (m *FeedItem) String() string { return proto.CompactTextString(m) } +func (*FeedItem) ProtoMessage() {} +func (*FeedItem) Descriptor() ([]byte, []int) { + return fileDescriptor_feed_item_528e30839a34eac0, []int{0} +} +func (m *FeedItem) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FeedItem.Unmarshal(m, b) +} +func (m *FeedItem) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FeedItem.Marshal(b, m, deterministic) +} +func (dst *FeedItem) XXX_Merge(src proto.Message) { + xxx_messageInfo_FeedItem.Merge(dst, src) +} +func (m *FeedItem) XXX_Size() int { + return xxx_messageInfo_FeedItem.Size(m) +} +func (m *FeedItem) XXX_DiscardUnknown() { + xxx_messageInfo_FeedItem.DiscardUnknown(m) +} + +var xxx_messageInfo_FeedItem proto.InternalMessageInfo + +func (m *FeedItem) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func (m *FeedItem) GetFeed() *wrappers.StringValue { + if m != nil { + return m.Feed + } + return nil +} + +func (m *FeedItem) GetId() *wrappers.Int64Value { + if m != nil { + return m.Id + } + return nil +} + +func (m *FeedItem) GetStartDateTime() *wrappers.StringValue { + if m != nil { + return m.StartDateTime + } + return nil +} + +func (m *FeedItem) GetEndDateTime() *wrappers.StringValue { + if m != nil { + return m.EndDateTime + } + return nil +} + +func (m *FeedItem) GetAttributeValues() []*FeedItemAttributeValue { + if m != nil { + return m.AttributeValues + } + return nil +} + +func (m *FeedItem) GetGeoTargetingRestriction() enums.GeoTargetingRestrictionEnum_GeoTargetingRestriction { + if m != nil { + return m.GeoTargetingRestriction + } + return enums.GeoTargetingRestrictionEnum_UNSPECIFIED +} + +func (m *FeedItem) GetUrlCustomParameters() []*common.CustomParameter { + if m != nil { + return m.UrlCustomParameters + } + return nil +} + +func (m *FeedItem) GetStatus() enums.FeedItemStatusEnum_FeedItemStatus { + if m != nil { + return m.Status + } + return enums.FeedItemStatusEnum_UNSPECIFIED +} + +// A feed item attribute value. +type FeedItemAttributeValue struct { + // Id of the feed attribute for which the value is associated with. + FeedAttributeId *wrappers.Int64Value `protobuf:"bytes,1,opt,name=feed_attribute_id,json=feedAttributeId,proto3" json:"feed_attribute_id,omitempty"` + // Int64 value. Should be set if feed_attribute_id refers to a feed attribute + // of type INT64. + IntegerValue *wrappers.Int64Value `protobuf:"bytes,2,opt,name=integer_value,json=integerValue,proto3" json:"integer_value,omitempty"` + // Bool value. Should be set if feed_attribute_id refers to a feed attribute + // of type BOOLEAN. + BooleanValue *wrappers.BoolValue `protobuf:"bytes,3,opt,name=boolean_value,json=booleanValue,proto3" json:"boolean_value,omitempty"` + // String value. Should be set if feed_attribute_id refers to a feed attribute + // of type STRING, URL or DATE_TIME. + // For STRING the maximum length is 1500 characters. For URL the maximum + // length is 2076 characters. For DATE_TIME the format of the string must + // be the same as start and end time for the feed item. + StringValue *wrappers.StringValue `protobuf:"bytes,4,opt,name=string_value,json=stringValue,proto3" json:"string_value,omitempty"` + // Double value. Should be set if feed_attribute_id refers to a feed attribute + // of type DOUBLE. + DoubleValue *wrappers.DoubleValue `protobuf:"bytes,5,opt,name=double_value,json=doubleValue,proto3" json:"double_value,omitempty"` + // Price value. Should be set if feed_attribute_id refers to a feed attribute + // of type PRICE. + PriceValue *common.Price `protobuf:"bytes,6,opt,name=price_value,json=priceValue,proto3" json:"price_value,omitempty"` + // Repeated int64 value. Should be set if feed_attribute_id refers to a feed + // attribute of type INT64_LIST. + IntegerValues []*wrappers.Int64Value `protobuf:"bytes,7,rep,name=integer_values,json=integerValues,proto3" json:"integer_values,omitempty"` + // Repeated bool value. Should be set if feed_attribute_id refers to a feed + // attribute of type BOOLEAN_LIST. + BooleanValues []*wrappers.BoolValue `protobuf:"bytes,8,rep,name=boolean_values,json=booleanValues,proto3" json:"boolean_values,omitempty"` + // Repeated string value. Should be set if feed_attribute_id refers to a feed + // attribute of type STRING_LIST, URL_LIST or DATE_TIME_LIST. + // For STRING_LIST and URL_LIST the total size of the list in bytes may not + // exceed 3000. For DATE_TIME_LIST the number of elements may not exceed 200. + // + // For STRING_LIST the maximum length of each string element is 1500 + // characters. For URL_LIST the maximum length is 2076 characters. For + // DATE_TIME the format of the string must be the same as start and end time + // for the feed item. + StringValues []*wrappers.StringValue `protobuf:"bytes,9,rep,name=string_values,json=stringValues,proto3" json:"string_values,omitempty"` + // Repeated double value. Should be set if feed_attribute_id refers to a feed + // attribute of type DOUBLE_LIST. + DoubleValues []*wrappers.DoubleValue `protobuf:"bytes,10,rep,name=double_values,json=doubleValues,proto3" json:"double_values,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FeedItemAttributeValue) Reset() { *m = FeedItemAttributeValue{} } +func (m *FeedItemAttributeValue) String() string { return proto.CompactTextString(m) } +func (*FeedItemAttributeValue) ProtoMessage() {} +func (*FeedItemAttributeValue) Descriptor() ([]byte, []int) { + return fileDescriptor_feed_item_528e30839a34eac0, []int{1} +} +func (m *FeedItemAttributeValue) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FeedItemAttributeValue.Unmarshal(m, b) +} +func (m *FeedItemAttributeValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FeedItemAttributeValue.Marshal(b, m, deterministic) +} +func (dst *FeedItemAttributeValue) XXX_Merge(src proto.Message) { + xxx_messageInfo_FeedItemAttributeValue.Merge(dst, src) +} +func (m *FeedItemAttributeValue) XXX_Size() int { + return xxx_messageInfo_FeedItemAttributeValue.Size(m) +} +func (m *FeedItemAttributeValue) XXX_DiscardUnknown() { + xxx_messageInfo_FeedItemAttributeValue.DiscardUnknown(m) +} + +var xxx_messageInfo_FeedItemAttributeValue proto.InternalMessageInfo + +func (m *FeedItemAttributeValue) GetFeedAttributeId() *wrappers.Int64Value { + if m != nil { + return m.FeedAttributeId + } + return nil +} + +func (m *FeedItemAttributeValue) GetIntegerValue() *wrappers.Int64Value { + if m != nil { + return m.IntegerValue + } + return nil +} + +func (m *FeedItemAttributeValue) GetBooleanValue() *wrappers.BoolValue { + if m != nil { + return m.BooleanValue + } + return nil +} + +func (m *FeedItemAttributeValue) GetStringValue() *wrappers.StringValue { + if m != nil { + return m.StringValue + } + return nil +} + +func (m *FeedItemAttributeValue) GetDoubleValue() *wrappers.DoubleValue { + if m != nil { + return m.DoubleValue + } + return nil +} + +func (m *FeedItemAttributeValue) GetPriceValue() *common.Price { + if m != nil { + return m.PriceValue + } + return nil +} + +func (m *FeedItemAttributeValue) GetIntegerValues() []*wrappers.Int64Value { + if m != nil { + return m.IntegerValues + } + return nil +} + +func (m *FeedItemAttributeValue) GetBooleanValues() []*wrappers.BoolValue { + if m != nil { + return m.BooleanValues + } + return nil +} + +func (m *FeedItemAttributeValue) GetStringValues() []*wrappers.StringValue { + if m != nil { + return m.StringValues + } + return nil +} + +func (m *FeedItemAttributeValue) GetDoubleValues() []*wrappers.DoubleValue { + if m != nil { + return m.DoubleValues + } + return nil +} + +func init() { + proto.RegisterType((*FeedItem)(nil), "google.ads.googleads.v0.resources.FeedItem") + proto.RegisterType((*FeedItemAttributeValue)(nil), "google.ads.googleads.v0.resources.FeedItemAttributeValue") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/feed_item.proto", fileDescriptor_feed_item_528e30839a34eac0) +} + +var fileDescriptor_feed_item_528e30839a34eac0 = []byte{ + // 722 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x95, 0xd1, 0x6a, 0xdb, 0x3a, + 0x18, 0xc7, 0x49, 0xd2, 0xa6, 0xad, 0x12, 0xb7, 0xe7, 0xf8, 0x70, 0xce, 0xf1, 0xba, 0x31, 0xd2, + 0x8e, 0x42, 0x60, 0x60, 0x67, 0x5d, 0x37, 0x18, 0x63, 0xac, 0xc9, 0xba, 0x86, 0xee, 0x62, 0x04, + 0xb7, 0x94, 0x31, 0x02, 0x46, 0x89, 0xbe, 0x1a, 0x81, 0x6d, 0x05, 0x49, 0xee, 0xde, 0x62, 0x0f, + 0xb1, 0xcb, 0xbd, 0xc2, 0xde, 0x60, 0xec, 0x6a, 0x4f, 0x34, 0x2c, 0x4b, 0x8e, 0xd3, 0xd6, 0x49, + 0xef, 0x24, 0xfb, 0xfb, 0xfd, 0xbf, 0x4f, 0xff, 0xfc, 0x15, 0xa3, 0x67, 0x21, 0x63, 0x61, 0x04, + 0x1e, 0x26, 0xc2, 0xcb, 0x97, 0xd9, 0xea, 0xba, 0xe7, 0x71, 0x10, 0x2c, 0xe5, 0x53, 0x10, 0xde, + 0x15, 0x00, 0x09, 0xa8, 0x84, 0xd8, 0x9d, 0x71, 0x26, 0x99, 0xbd, 0x97, 0xd7, 0xb9, 0x98, 0x08, + 0xb7, 0x40, 0xdc, 0xeb, 0x9e, 0x5b, 0x20, 0xbb, 0x2f, 0xaa, 0x54, 0xa7, 0x2c, 0x8e, 0x59, 0xe2, + 0x4d, 0x53, 0x21, 0x59, 0x1c, 0xcc, 0x30, 0xc7, 0x31, 0x48, 0xe0, 0xb9, 0xf2, 0x6e, 0x6f, 0x05, + 0xa6, 0x26, 0xc9, 0xd7, 0x9a, 0x38, 0xaa, 0x22, 0x20, 0x49, 0xe3, 0xd2, 0xe8, 0x81, 0x90, 0x58, + 0xa6, 0x42, 0x53, 0x6f, 0x96, 0x53, 0x21, 0xb0, 0x40, 0x62, 0x1e, 0x82, 0xa4, 0x49, 0x18, 0x70, + 0x10, 0x92, 0xd3, 0xa9, 0xa4, 0x45, 0xd3, 0xc7, 0x1a, 0x57, 0xbb, 0x49, 0x7a, 0xe5, 0x7d, 0xe1, + 0x78, 0x36, 0x03, 0xae, 0xe5, 0xf7, 0x7f, 0xad, 0xa3, 0xcd, 0x53, 0x00, 0x72, 0x26, 0x21, 0xb6, + 0x9f, 0x20, 0xcb, 0xf8, 0x12, 0x24, 0x38, 0x06, 0xa7, 0xd6, 0xa9, 0x75, 0xb7, 0xfc, 0xb6, 0x79, + 0xf8, 0x11, 0xc7, 0x60, 0xf7, 0xd0, 0x5a, 0x36, 0xaa, 0x53, 0xef, 0xd4, 0xba, 0xad, 0xc3, 0x47, + 0xda, 0x56, 0xd7, 0x34, 0x70, 0xcf, 0x25, 0xa7, 0x49, 0x78, 0x89, 0xa3, 0x14, 0x7c, 0x55, 0x69, + 0x3f, 0x45, 0x75, 0x4a, 0x9c, 0x86, 0xaa, 0x7f, 0x78, 0xab, 0xfe, 0x2c, 0x91, 0x2f, 0x8f, 0xf2, + 0xf2, 0x3a, 0x25, 0xf6, 0x09, 0xda, 0x11, 0x12, 0x73, 0x19, 0x10, 0x2c, 0x21, 0x90, 0x34, 0x06, + 0x67, 0xed, 0x1e, 0x9d, 0x2c, 0x05, 0x9d, 0x60, 0x09, 0x17, 0x34, 0x06, 0xfb, 0x18, 0x59, 0x90, + 0x90, 0x92, 0xc6, 0xfa, 0x3d, 0x34, 0x5a, 0x90, 0x90, 0x42, 0x81, 0xa0, 0xbf, 0xb0, 0x94, 0x9c, + 0x4e, 0x52, 0x09, 0xc1, 0x75, 0xf6, 0x5e, 0x38, 0xcd, 0x4e, 0xa3, 0xdb, 0x3a, 0x7c, 0xe5, 0xae, + 0x0c, 0x95, 0x6b, 0x2c, 0xed, 0x1b, 0x89, 0xbc, 0xc3, 0x0e, 0x5e, 0xd8, 0x0b, 0xfb, 0x6b, 0x0d, + 0x3d, 0xa8, 0xfc, 0x09, 0x9d, 0x8d, 0x4e, 0xad, 0xbb, 0x7d, 0xe8, 0x57, 0xf6, 0x53, 0x11, 0x70, + 0x87, 0xc0, 0x2e, 0x0c, 0xee, 0xcf, 0xe9, 0xf7, 0x49, 0x1a, 0x57, 0xbd, 0xf3, 0xff, 0x0f, 0xef, + 0x7e, 0x61, 0x4f, 0xd1, 0xbf, 0x29, 0x8f, 0x82, 0x9b, 0xa1, 0x17, 0xce, 0xa6, 0x3a, 0xbb, 0x57, + 0x39, 0x8b, 0x8e, 0xfa, 0x3b, 0x05, 0x8e, 0x0c, 0xe7, 0xff, 0x93, 0xf2, 0xe8, 0xc6, 0x33, 0x61, + 0x7f, 0x42, 0xcd, 0x3c, 0xe3, 0xce, 0x96, 0x3a, 0xe1, 0xf1, 0x8a, 0x13, 0x1a, 0x37, 0xcf, 0x15, + 0xa4, 0x0e, 0xb6, 0xf8, 0xc8, 0xd7, 0x7a, 0xfb, 0x3f, 0xd6, 0xd1, 0x7f, 0x77, 0x7b, 0x6f, 0x0f, + 0xd1, 0xdf, 0xea, 0x8a, 0xcd, 0x7f, 0x55, 0x4a, 0x54, 0xc0, 0x57, 0x84, 0x72, 0x27, 0xa3, 0x0a, + 0xad, 0x33, 0x92, 0x65, 0x8b, 0x26, 0x12, 0x42, 0xe0, 0x79, 0x2e, 0xf4, 0x4d, 0x58, 0x2a, 0xd2, + 0xd6, 0x44, 0x3e, 0xca, 0x5b, 0x64, 0x4d, 0x18, 0x8b, 0x00, 0x27, 0x5a, 0x21, 0xbf, 0x1b, 0xbb, + 0xb7, 0x14, 0x06, 0x8c, 0x45, 0x5a, 0x40, 0x03, 0x46, 0xa0, 0x2d, 0x54, 0x70, 0x35, 0x7f, 0x9f, + 0x1b, 0xd2, 0x12, 0xf3, 0x4d, 0x26, 0x40, 0x58, 0x3a, 0x89, 0x74, 0xb4, 0x2b, 0xaf, 0xc7, 0x89, + 0x2a, 0xd2, 0x02, 0x64, 0xbe, 0xb1, 0x4f, 0x51, 0x6b, 0xc6, 0xe9, 0xd4, 0xf0, 0x4d, 0xc5, 0x1f, + 0xac, 0x4a, 0xc7, 0x28, 0x43, 0x7c, 0xa4, 0xc8, 0x5c, 0x67, 0x80, 0xb6, 0x17, 0xcc, 0x14, 0xce, + 0x86, 0x0a, 0xda, 0x52, 0x37, 0xad, 0xb2, 0x9b, 0xc2, 0xee, 0xa3, 0xed, 0x05, 0x3b, 0x4d, 0x58, + 0x97, 0xf9, 0x69, 0x95, 0xfd, 0xcc, 0x24, 0xac, 0xb2, 0xa1, 0x59, 0x30, 0x1b, 0x2b, 0x1d, 0x6d, + 0x97, 0x1c, 0x55, 0x12, 0x65, 0x4b, 0x85, 0x83, 0x2a, 0x24, 0xca, 0x9e, 0xb6, 0x4b, 0x9e, 0x8a, + 0xc1, 0xef, 0x1a, 0x3a, 0x98, 0xb2, 0x78, 0xf5, 0xff, 0xcb, 0xc0, 0x32, 0x21, 0x1f, 0x65, 0xaa, + 0xa3, 0xda, 0xe7, 0x0f, 0x9a, 0x09, 0x59, 0x84, 0x93, 0xd0, 0x65, 0x3c, 0xf4, 0x42, 0x48, 0x54, + 0x4f, 0xf3, 0xd9, 0x98, 0x51, 0xb1, 0xe4, 0xd3, 0xf9, 0xba, 0x58, 0x7d, 0xab, 0x37, 0x86, 0xfd, + 0xfe, 0xf7, 0xfa, 0xde, 0x30, 0x97, 0xec, 0x13, 0xe1, 0xe6, 0xcb, 0x6c, 0x75, 0xd9, 0x73, 0x7d, + 0x53, 0xf9, 0xd3, 0xd4, 0x8c, 0xfb, 0x44, 0x8c, 0x8b, 0x9a, 0xf1, 0x65, 0x6f, 0x5c, 0xd4, 0x4c, + 0x9a, 0x6a, 0x88, 0xe7, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x75, 0x42, 0x94, 0x5b, 0xbe, 0x07, + 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/feed_mapping.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/feed_mapping.pb.go new file mode 100644 index 000000000..fdb059b83 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/feed_mapping.pb.go @@ -0,0 +1,867 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/feed_mapping.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A feed mapping. +type FeedMapping struct { + // The resource name of the feed mapping. + // Feed mapping resource names have the form: + // + // `customers/{customer_id}/feedMappings/{feed_id}_{feed_mapping_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + // The feed of this feed mapping. + Feed *wrappers.StringValue `protobuf:"bytes,2,opt,name=feed,proto3" json:"feed,omitempty"` + // Feed attributes to field mappings. These mappings are a one-to-many + // relationship meaning that 1 feed attribute can be used to populate + // multiple placeholder fields, but 1 placeholder field can only draw + // data from 1 feed attribute. Ad Customizer is an exception, 1 placeholder + // field can be mapped to multiple feed attributes. Required. + AttributeFieldMappings []*AttributeFieldMapping `protobuf:"bytes,5,rep,name=attribute_field_mappings,json=attributeFieldMappings,proto3" json:"attribute_field_mappings,omitempty"` + // Status of the feed mapping. + // This field is read-only. + Status enums.FeedMappingStatusEnum_FeedMappingStatus `protobuf:"varint,6,opt,name=status,proto3,enum=google.ads.googleads.v0.enums.FeedMappingStatusEnum_FeedMappingStatus" json:"status,omitempty"` + // Feed mapping target. Can be either a placeholder or a criterion. For a + // given feed, the active FeedMappings must have unique targets. Required. + // + // Types that are valid to be assigned to Target: + // *FeedMapping_PlaceholderType + // *FeedMapping_CriterionType + Target isFeedMapping_Target `protobuf_oneof:"target"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FeedMapping) Reset() { *m = FeedMapping{} } +func (m *FeedMapping) String() string { return proto.CompactTextString(m) } +func (*FeedMapping) ProtoMessage() {} +func (*FeedMapping) Descriptor() ([]byte, []int) { + return fileDescriptor_feed_mapping_531c94f1bcfe6b63, []int{0} +} +func (m *FeedMapping) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FeedMapping.Unmarshal(m, b) +} +func (m *FeedMapping) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FeedMapping.Marshal(b, m, deterministic) +} +func (dst *FeedMapping) XXX_Merge(src proto.Message) { + xxx_messageInfo_FeedMapping.Merge(dst, src) +} +func (m *FeedMapping) XXX_Size() int { + return xxx_messageInfo_FeedMapping.Size(m) +} +func (m *FeedMapping) XXX_DiscardUnknown() { + xxx_messageInfo_FeedMapping.DiscardUnknown(m) +} + +var xxx_messageInfo_FeedMapping proto.InternalMessageInfo + +func (m *FeedMapping) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func (m *FeedMapping) GetFeed() *wrappers.StringValue { + if m != nil { + return m.Feed + } + return nil +} + +func (m *FeedMapping) GetAttributeFieldMappings() []*AttributeFieldMapping { + if m != nil { + return m.AttributeFieldMappings + } + return nil +} + +func (m *FeedMapping) GetStatus() enums.FeedMappingStatusEnum_FeedMappingStatus { + if m != nil { + return m.Status + } + return enums.FeedMappingStatusEnum_UNSPECIFIED +} + +type isFeedMapping_Target interface { + isFeedMapping_Target() +} + +type FeedMapping_PlaceholderType struct { + PlaceholderType enums.PlaceholderTypeEnum_PlaceholderType `protobuf:"varint,3,opt,name=placeholder_type,json=placeholderType,proto3,enum=google.ads.googleads.v0.enums.PlaceholderTypeEnum_PlaceholderType,oneof"` +} + +type FeedMapping_CriterionType struct { + CriterionType enums.FeedMappingCriterionTypeEnum_FeedMappingCriterionType `protobuf:"varint,4,opt,name=criterion_type,json=criterionType,proto3,enum=google.ads.googleads.v0.enums.FeedMappingCriterionTypeEnum_FeedMappingCriterionType,oneof"` +} + +func (*FeedMapping_PlaceholderType) isFeedMapping_Target() {} + +func (*FeedMapping_CriterionType) isFeedMapping_Target() {} + +func (m *FeedMapping) GetTarget() isFeedMapping_Target { + if m != nil { + return m.Target + } + return nil +} + +func (m *FeedMapping) GetPlaceholderType() enums.PlaceholderTypeEnum_PlaceholderType { + if x, ok := m.GetTarget().(*FeedMapping_PlaceholderType); ok { + return x.PlaceholderType + } + return enums.PlaceholderTypeEnum_UNSPECIFIED +} + +func (m *FeedMapping) GetCriterionType() enums.FeedMappingCriterionTypeEnum_FeedMappingCriterionType { + if x, ok := m.GetTarget().(*FeedMapping_CriterionType); ok { + return x.CriterionType + } + return enums.FeedMappingCriterionTypeEnum_UNSPECIFIED +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*FeedMapping) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _FeedMapping_OneofMarshaler, _FeedMapping_OneofUnmarshaler, _FeedMapping_OneofSizer, []interface{}{ + (*FeedMapping_PlaceholderType)(nil), + (*FeedMapping_CriterionType)(nil), + } +} + +func _FeedMapping_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*FeedMapping) + // target + switch x := m.Target.(type) { + case *FeedMapping_PlaceholderType: + b.EncodeVarint(3<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.PlaceholderType)) + case *FeedMapping_CriterionType: + b.EncodeVarint(4<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.CriterionType)) + case nil: + default: + return fmt.Errorf("FeedMapping.Target has unexpected type %T", x) + } + return nil +} + +func _FeedMapping_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*FeedMapping) + switch tag { + case 3: // target.placeholder_type + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Target = &FeedMapping_PlaceholderType{enums.PlaceholderTypeEnum_PlaceholderType(x)} + return true, err + case 4: // target.criterion_type + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Target = &FeedMapping_CriterionType{enums.FeedMappingCriterionTypeEnum_FeedMappingCriterionType(x)} + return true, err + default: + return false, nil + } +} + +func _FeedMapping_OneofSizer(msg proto.Message) (n int) { + m := msg.(*FeedMapping) + // target + switch x := m.Target.(type) { + case *FeedMapping_PlaceholderType: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(x.PlaceholderType)) + case *FeedMapping_CriterionType: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(x.CriterionType)) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// Maps from feed attribute id to a placeholder or criterion field id. +type AttributeFieldMapping struct { + // Feed attribute from which to map. + FeedAttributeId *wrappers.Int64Value `protobuf:"bytes,1,opt,name=feed_attribute_id,json=feedAttributeId,proto3" json:"feed_attribute_id,omitempty"` + // The placeholder field ID. If a placeholder field enum is not published in + // the current API version, then this field will be populated and the field + // oneof will be empty. + // This field is read-only. + FieldId *wrappers.Int64Value `protobuf:"bytes,2,opt,name=field_id,json=fieldId,proto3" json:"field_id,omitempty"` + // Placeholder or criterion field to be populated using data from + // the above feed attribute. Required. + // + // Types that are valid to be assigned to Field: + // *AttributeFieldMapping_SitelinkField + // *AttributeFieldMapping_CallField + // *AttributeFieldMapping_AppField + // *AttributeFieldMapping_CalloutField + // *AttributeFieldMapping_StructuredSnippetField + // *AttributeFieldMapping_MessageField + // *AttributeFieldMapping_PriceField + // *AttributeFieldMapping_PromotionField + // *AttributeFieldMapping_AdCustomizerField + // *AttributeFieldMapping_EducationField + // *AttributeFieldMapping_FlightField + // *AttributeFieldMapping_CustomField + // *AttributeFieldMapping_HotelField + // *AttributeFieldMapping_RealEstateField + // *AttributeFieldMapping_TravelField + // *AttributeFieldMapping_LocalField + // *AttributeFieldMapping_JobField + Field isAttributeFieldMapping_Field `protobuf_oneof:"field"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AttributeFieldMapping) Reset() { *m = AttributeFieldMapping{} } +func (m *AttributeFieldMapping) String() string { return proto.CompactTextString(m) } +func (*AttributeFieldMapping) ProtoMessage() {} +func (*AttributeFieldMapping) Descriptor() ([]byte, []int) { + return fileDescriptor_feed_mapping_531c94f1bcfe6b63, []int{1} +} +func (m *AttributeFieldMapping) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AttributeFieldMapping.Unmarshal(m, b) +} +func (m *AttributeFieldMapping) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AttributeFieldMapping.Marshal(b, m, deterministic) +} +func (dst *AttributeFieldMapping) XXX_Merge(src proto.Message) { + xxx_messageInfo_AttributeFieldMapping.Merge(dst, src) +} +func (m *AttributeFieldMapping) XXX_Size() int { + return xxx_messageInfo_AttributeFieldMapping.Size(m) +} +func (m *AttributeFieldMapping) XXX_DiscardUnknown() { + xxx_messageInfo_AttributeFieldMapping.DiscardUnknown(m) +} + +var xxx_messageInfo_AttributeFieldMapping proto.InternalMessageInfo + +func (m *AttributeFieldMapping) GetFeedAttributeId() *wrappers.Int64Value { + if m != nil { + return m.FeedAttributeId + } + return nil +} + +func (m *AttributeFieldMapping) GetFieldId() *wrappers.Int64Value { + if m != nil { + return m.FieldId + } + return nil +} + +type isAttributeFieldMapping_Field interface { + isAttributeFieldMapping_Field() +} + +type AttributeFieldMapping_SitelinkField struct { + SitelinkField enums.SitelinkPlaceholderFieldEnum_SitelinkPlaceholderField `protobuf:"varint,3,opt,name=sitelink_field,json=sitelinkField,proto3,enum=google.ads.googleads.v0.enums.SitelinkPlaceholderFieldEnum_SitelinkPlaceholderField,oneof"` +} + +type AttributeFieldMapping_CallField struct { + CallField enums.CallPlaceholderFieldEnum_CallPlaceholderField `protobuf:"varint,4,opt,name=call_field,json=callField,proto3,enum=google.ads.googleads.v0.enums.CallPlaceholderFieldEnum_CallPlaceholderField,oneof"` +} + +type AttributeFieldMapping_AppField struct { + AppField enums.AppPlaceholderFieldEnum_AppPlaceholderField `protobuf:"varint,5,opt,name=app_field,json=appField,proto3,enum=google.ads.googleads.v0.enums.AppPlaceholderFieldEnum_AppPlaceholderField,oneof"` +} + +type AttributeFieldMapping_CalloutField struct { + CalloutField enums.CalloutPlaceholderFieldEnum_CalloutPlaceholderField `protobuf:"varint,8,opt,name=callout_field,json=calloutField,proto3,enum=google.ads.googleads.v0.enums.CalloutPlaceholderFieldEnum_CalloutPlaceholderField,oneof"` +} + +type AttributeFieldMapping_StructuredSnippetField struct { + StructuredSnippetField enums.StructuredSnippetPlaceholderFieldEnum_StructuredSnippetPlaceholderField `protobuf:"varint,9,opt,name=structured_snippet_field,json=structuredSnippetField,proto3,enum=google.ads.googleads.v0.enums.StructuredSnippetPlaceholderFieldEnum_StructuredSnippetPlaceholderField,oneof"` +} + +type AttributeFieldMapping_MessageField struct { + MessageField enums.MessagePlaceholderFieldEnum_MessagePlaceholderField `protobuf:"varint,10,opt,name=message_field,json=messageField,proto3,enum=google.ads.googleads.v0.enums.MessagePlaceholderFieldEnum_MessagePlaceholderField,oneof"` +} + +type AttributeFieldMapping_PriceField struct { + PriceField enums.PricePlaceholderFieldEnum_PricePlaceholderField `protobuf:"varint,11,opt,name=price_field,json=priceField,proto3,enum=google.ads.googleads.v0.enums.PricePlaceholderFieldEnum_PricePlaceholderField,oneof"` +} + +type AttributeFieldMapping_PromotionField struct { + PromotionField enums.PromotionPlaceholderFieldEnum_PromotionPlaceholderField `protobuf:"varint,12,opt,name=promotion_field,json=promotionField,proto3,enum=google.ads.googleads.v0.enums.PromotionPlaceholderFieldEnum_PromotionPlaceholderField,oneof"` +} + +type AttributeFieldMapping_AdCustomizerField struct { + AdCustomizerField enums.AdCustomizerPlaceholderFieldEnum_AdCustomizerPlaceholderField `protobuf:"varint,13,opt,name=ad_customizer_field,json=adCustomizerField,proto3,enum=google.ads.googleads.v0.enums.AdCustomizerPlaceholderFieldEnum_AdCustomizerPlaceholderField,oneof"` +} + +type AttributeFieldMapping_EducationField struct { + EducationField enums.EducationPlaceholderFieldEnum_EducationPlaceholderField `protobuf:"varint,16,opt,name=education_field,json=educationField,proto3,enum=google.ads.googleads.v0.enums.EducationPlaceholderFieldEnum_EducationPlaceholderField,oneof"` +} + +type AttributeFieldMapping_FlightField struct { + FlightField enums.FlightPlaceholderFieldEnum_FlightPlaceholderField `protobuf:"varint,17,opt,name=flight_field,json=flightField,proto3,enum=google.ads.googleads.v0.enums.FlightPlaceholderFieldEnum_FlightPlaceholderField,oneof"` +} + +type AttributeFieldMapping_CustomField struct { + CustomField enums.CustomPlaceholderFieldEnum_CustomPlaceholderField `protobuf:"varint,18,opt,name=custom_field,json=customField,proto3,enum=google.ads.googleads.v0.enums.CustomPlaceholderFieldEnum_CustomPlaceholderField,oneof"` +} + +type AttributeFieldMapping_HotelField struct { + HotelField enums.HotelPlaceholderFieldEnum_HotelPlaceholderField `protobuf:"varint,19,opt,name=hotel_field,json=hotelField,proto3,enum=google.ads.googleads.v0.enums.HotelPlaceholderFieldEnum_HotelPlaceholderField,oneof"` +} + +type AttributeFieldMapping_RealEstateField struct { + RealEstateField enums.RealEstatePlaceholderFieldEnum_RealEstatePlaceholderField `protobuf:"varint,20,opt,name=real_estate_field,json=realEstateField,proto3,enum=google.ads.googleads.v0.enums.RealEstatePlaceholderFieldEnum_RealEstatePlaceholderField,oneof"` +} + +type AttributeFieldMapping_TravelField struct { + TravelField enums.TravelPlaceholderFieldEnum_TravelPlaceholderField `protobuf:"varint,21,opt,name=travel_field,json=travelField,proto3,enum=google.ads.googleads.v0.enums.TravelPlaceholderFieldEnum_TravelPlaceholderField,oneof"` +} + +type AttributeFieldMapping_LocalField struct { + LocalField enums.LocalPlaceholderFieldEnum_LocalPlaceholderField `protobuf:"varint,22,opt,name=local_field,json=localField,proto3,enum=google.ads.googleads.v0.enums.LocalPlaceholderFieldEnum_LocalPlaceholderField,oneof"` +} + +type AttributeFieldMapping_JobField struct { + JobField enums.JobPlaceholderFieldEnum_JobPlaceholderField `protobuf:"varint,23,opt,name=job_field,json=jobField,proto3,enum=google.ads.googleads.v0.enums.JobPlaceholderFieldEnum_JobPlaceholderField,oneof"` +} + +func (*AttributeFieldMapping_SitelinkField) isAttributeFieldMapping_Field() {} + +func (*AttributeFieldMapping_CallField) isAttributeFieldMapping_Field() {} + +func (*AttributeFieldMapping_AppField) isAttributeFieldMapping_Field() {} + +func (*AttributeFieldMapping_CalloutField) isAttributeFieldMapping_Field() {} + +func (*AttributeFieldMapping_StructuredSnippetField) isAttributeFieldMapping_Field() {} + +func (*AttributeFieldMapping_MessageField) isAttributeFieldMapping_Field() {} + +func (*AttributeFieldMapping_PriceField) isAttributeFieldMapping_Field() {} + +func (*AttributeFieldMapping_PromotionField) isAttributeFieldMapping_Field() {} + +func (*AttributeFieldMapping_AdCustomizerField) isAttributeFieldMapping_Field() {} + +func (*AttributeFieldMapping_EducationField) isAttributeFieldMapping_Field() {} + +func (*AttributeFieldMapping_FlightField) isAttributeFieldMapping_Field() {} + +func (*AttributeFieldMapping_CustomField) isAttributeFieldMapping_Field() {} + +func (*AttributeFieldMapping_HotelField) isAttributeFieldMapping_Field() {} + +func (*AttributeFieldMapping_RealEstateField) isAttributeFieldMapping_Field() {} + +func (*AttributeFieldMapping_TravelField) isAttributeFieldMapping_Field() {} + +func (*AttributeFieldMapping_LocalField) isAttributeFieldMapping_Field() {} + +func (*AttributeFieldMapping_JobField) isAttributeFieldMapping_Field() {} + +func (m *AttributeFieldMapping) GetField() isAttributeFieldMapping_Field { + if m != nil { + return m.Field + } + return nil +} + +func (m *AttributeFieldMapping) GetSitelinkField() enums.SitelinkPlaceholderFieldEnum_SitelinkPlaceholderField { + if x, ok := m.GetField().(*AttributeFieldMapping_SitelinkField); ok { + return x.SitelinkField + } + return enums.SitelinkPlaceholderFieldEnum_UNSPECIFIED +} + +func (m *AttributeFieldMapping) GetCallField() enums.CallPlaceholderFieldEnum_CallPlaceholderField { + if x, ok := m.GetField().(*AttributeFieldMapping_CallField); ok { + return x.CallField + } + return enums.CallPlaceholderFieldEnum_UNSPECIFIED +} + +func (m *AttributeFieldMapping) GetAppField() enums.AppPlaceholderFieldEnum_AppPlaceholderField { + if x, ok := m.GetField().(*AttributeFieldMapping_AppField); ok { + return x.AppField + } + return enums.AppPlaceholderFieldEnum_UNSPECIFIED +} + +func (m *AttributeFieldMapping) GetCalloutField() enums.CalloutPlaceholderFieldEnum_CalloutPlaceholderField { + if x, ok := m.GetField().(*AttributeFieldMapping_CalloutField); ok { + return x.CalloutField + } + return enums.CalloutPlaceholderFieldEnum_UNSPECIFIED +} + +func (m *AttributeFieldMapping) GetStructuredSnippetField() enums.StructuredSnippetPlaceholderFieldEnum_StructuredSnippetPlaceholderField { + if x, ok := m.GetField().(*AttributeFieldMapping_StructuredSnippetField); ok { + return x.StructuredSnippetField + } + return enums.StructuredSnippetPlaceholderFieldEnum_UNSPECIFIED +} + +func (m *AttributeFieldMapping) GetMessageField() enums.MessagePlaceholderFieldEnum_MessagePlaceholderField { + if x, ok := m.GetField().(*AttributeFieldMapping_MessageField); ok { + return x.MessageField + } + return enums.MessagePlaceholderFieldEnum_UNSPECIFIED +} + +func (m *AttributeFieldMapping) GetPriceField() enums.PricePlaceholderFieldEnum_PricePlaceholderField { + if x, ok := m.GetField().(*AttributeFieldMapping_PriceField); ok { + return x.PriceField + } + return enums.PricePlaceholderFieldEnum_UNSPECIFIED +} + +func (m *AttributeFieldMapping) GetPromotionField() enums.PromotionPlaceholderFieldEnum_PromotionPlaceholderField { + if x, ok := m.GetField().(*AttributeFieldMapping_PromotionField); ok { + return x.PromotionField + } + return enums.PromotionPlaceholderFieldEnum_UNSPECIFIED +} + +func (m *AttributeFieldMapping) GetAdCustomizerField() enums.AdCustomizerPlaceholderFieldEnum_AdCustomizerPlaceholderField { + if x, ok := m.GetField().(*AttributeFieldMapping_AdCustomizerField); ok { + return x.AdCustomizerField + } + return enums.AdCustomizerPlaceholderFieldEnum_UNSPECIFIED +} + +func (m *AttributeFieldMapping) GetEducationField() enums.EducationPlaceholderFieldEnum_EducationPlaceholderField { + if x, ok := m.GetField().(*AttributeFieldMapping_EducationField); ok { + return x.EducationField + } + return enums.EducationPlaceholderFieldEnum_UNSPECIFIED +} + +func (m *AttributeFieldMapping) GetFlightField() enums.FlightPlaceholderFieldEnum_FlightPlaceholderField { + if x, ok := m.GetField().(*AttributeFieldMapping_FlightField); ok { + return x.FlightField + } + return enums.FlightPlaceholderFieldEnum_UNSPECIFIED +} + +func (m *AttributeFieldMapping) GetCustomField() enums.CustomPlaceholderFieldEnum_CustomPlaceholderField { + if x, ok := m.GetField().(*AttributeFieldMapping_CustomField); ok { + return x.CustomField + } + return enums.CustomPlaceholderFieldEnum_UNSPECIFIED +} + +func (m *AttributeFieldMapping) GetHotelField() enums.HotelPlaceholderFieldEnum_HotelPlaceholderField { + if x, ok := m.GetField().(*AttributeFieldMapping_HotelField); ok { + return x.HotelField + } + return enums.HotelPlaceholderFieldEnum_UNSPECIFIED +} + +func (m *AttributeFieldMapping) GetRealEstateField() enums.RealEstatePlaceholderFieldEnum_RealEstatePlaceholderField { + if x, ok := m.GetField().(*AttributeFieldMapping_RealEstateField); ok { + return x.RealEstateField + } + return enums.RealEstatePlaceholderFieldEnum_UNSPECIFIED +} + +func (m *AttributeFieldMapping) GetTravelField() enums.TravelPlaceholderFieldEnum_TravelPlaceholderField { + if x, ok := m.GetField().(*AttributeFieldMapping_TravelField); ok { + return x.TravelField + } + return enums.TravelPlaceholderFieldEnum_UNSPECIFIED +} + +func (m *AttributeFieldMapping) GetLocalField() enums.LocalPlaceholderFieldEnum_LocalPlaceholderField { + if x, ok := m.GetField().(*AttributeFieldMapping_LocalField); ok { + return x.LocalField + } + return enums.LocalPlaceholderFieldEnum_UNSPECIFIED +} + +func (m *AttributeFieldMapping) GetJobField() enums.JobPlaceholderFieldEnum_JobPlaceholderField { + if x, ok := m.GetField().(*AttributeFieldMapping_JobField); ok { + return x.JobField + } + return enums.JobPlaceholderFieldEnum_UNSPECIFIED +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*AttributeFieldMapping) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _AttributeFieldMapping_OneofMarshaler, _AttributeFieldMapping_OneofUnmarshaler, _AttributeFieldMapping_OneofSizer, []interface{}{ + (*AttributeFieldMapping_SitelinkField)(nil), + (*AttributeFieldMapping_CallField)(nil), + (*AttributeFieldMapping_AppField)(nil), + (*AttributeFieldMapping_CalloutField)(nil), + (*AttributeFieldMapping_StructuredSnippetField)(nil), + (*AttributeFieldMapping_MessageField)(nil), + (*AttributeFieldMapping_PriceField)(nil), + (*AttributeFieldMapping_PromotionField)(nil), + (*AttributeFieldMapping_AdCustomizerField)(nil), + (*AttributeFieldMapping_EducationField)(nil), + (*AttributeFieldMapping_FlightField)(nil), + (*AttributeFieldMapping_CustomField)(nil), + (*AttributeFieldMapping_HotelField)(nil), + (*AttributeFieldMapping_RealEstateField)(nil), + (*AttributeFieldMapping_TravelField)(nil), + (*AttributeFieldMapping_LocalField)(nil), + (*AttributeFieldMapping_JobField)(nil), + } +} + +func _AttributeFieldMapping_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*AttributeFieldMapping) + // field + switch x := m.Field.(type) { + case *AttributeFieldMapping_SitelinkField: + b.EncodeVarint(3<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.SitelinkField)) + case *AttributeFieldMapping_CallField: + b.EncodeVarint(4<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.CallField)) + case *AttributeFieldMapping_AppField: + b.EncodeVarint(5<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.AppField)) + case *AttributeFieldMapping_CalloutField: + b.EncodeVarint(8<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.CalloutField)) + case *AttributeFieldMapping_StructuredSnippetField: + b.EncodeVarint(9<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.StructuredSnippetField)) + case *AttributeFieldMapping_MessageField: + b.EncodeVarint(10<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.MessageField)) + case *AttributeFieldMapping_PriceField: + b.EncodeVarint(11<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.PriceField)) + case *AttributeFieldMapping_PromotionField: + b.EncodeVarint(12<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.PromotionField)) + case *AttributeFieldMapping_AdCustomizerField: + b.EncodeVarint(13<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.AdCustomizerField)) + case *AttributeFieldMapping_EducationField: + b.EncodeVarint(16<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.EducationField)) + case *AttributeFieldMapping_FlightField: + b.EncodeVarint(17<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.FlightField)) + case *AttributeFieldMapping_CustomField: + b.EncodeVarint(18<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.CustomField)) + case *AttributeFieldMapping_HotelField: + b.EncodeVarint(19<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.HotelField)) + case *AttributeFieldMapping_RealEstateField: + b.EncodeVarint(20<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.RealEstateField)) + case *AttributeFieldMapping_TravelField: + b.EncodeVarint(21<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.TravelField)) + case *AttributeFieldMapping_LocalField: + b.EncodeVarint(22<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.LocalField)) + case *AttributeFieldMapping_JobField: + b.EncodeVarint(23<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.JobField)) + case nil: + default: + return fmt.Errorf("AttributeFieldMapping.Field has unexpected type %T", x) + } + return nil +} + +func _AttributeFieldMapping_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*AttributeFieldMapping) + switch tag { + case 3: // field.sitelink_field + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Field = &AttributeFieldMapping_SitelinkField{enums.SitelinkPlaceholderFieldEnum_SitelinkPlaceholderField(x)} + return true, err + case 4: // field.call_field + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Field = &AttributeFieldMapping_CallField{enums.CallPlaceholderFieldEnum_CallPlaceholderField(x)} + return true, err + case 5: // field.app_field + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Field = &AttributeFieldMapping_AppField{enums.AppPlaceholderFieldEnum_AppPlaceholderField(x)} + return true, err + case 8: // field.callout_field + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Field = &AttributeFieldMapping_CalloutField{enums.CalloutPlaceholderFieldEnum_CalloutPlaceholderField(x)} + return true, err + case 9: // field.structured_snippet_field + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Field = &AttributeFieldMapping_StructuredSnippetField{enums.StructuredSnippetPlaceholderFieldEnum_StructuredSnippetPlaceholderField(x)} + return true, err + case 10: // field.message_field + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Field = &AttributeFieldMapping_MessageField{enums.MessagePlaceholderFieldEnum_MessagePlaceholderField(x)} + return true, err + case 11: // field.price_field + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Field = &AttributeFieldMapping_PriceField{enums.PricePlaceholderFieldEnum_PricePlaceholderField(x)} + return true, err + case 12: // field.promotion_field + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Field = &AttributeFieldMapping_PromotionField{enums.PromotionPlaceholderFieldEnum_PromotionPlaceholderField(x)} + return true, err + case 13: // field.ad_customizer_field + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Field = &AttributeFieldMapping_AdCustomizerField{enums.AdCustomizerPlaceholderFieldEnum_AdCustomizerPlaceholderField(x)} + return true, err + case 16: // field.education_field + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Field = &AttributeFieldMapping_EducationField{enums.EducationPlaceholderFieldEnum_EducationPlaceholderField(x)} + return true, err + case 17: // field.flight_field + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Field = &AttributeFieldMapping_FlightField{enums.FlightPlaceholderFieldEnum_FlightPlaceholderField(x)} + return true, err + case 18: // field.custom_field + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Field = &AttributeFieldMapping_CustomField{enums.CustomPlaceholderFieldEnum_CustomPlaceholderField(x)} + return true, err + case 19: // field.hotel_field + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Field = &AttributeFieldMapping_HotelField{enums.HotelPlaceholderFieldEnum_HotelPlaceholderField(x)} + return true, err + case 20: // field.real_estate_field + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Field = &AttributeFieldMapping_RealEstateField{enums.RealEstatePlaceholderFieldEnum_RealEstatePlaceholderField(x)} + return true, err + case 21: // field.travel_field + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Field = &AttributeFieldMapping_TravelField{enums.TravelPlaceholderFieldEnum_TravelPlaceholderField(x)} + return true, err + case 22: // field.local_field + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Field = &AttributeFieldMapping_LocalField{enums.LocalPlaceholderFieldEnum_LocalPlaceholderField(x)} + return true, err + case 23: // field.job_field + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Field = &AttributeFieldMapping_JobField{enums.JobPlaceholderFieldEnum_JobPlaceholderField(x)} + return true, err + default: + return false, nil + } +} + +func _AttributeFieldMapping_OneofSizer(msg proto.Message) (n int) { + m := msg.(*AttributeFieldMapping) + // field + switch x := m.Field.(type) { + case *AttributeFieldMapping_SitelinkField: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(x.SitelinkField)) + case *AttributeFieldMapping_CallField: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(x.CallField)) + case *AttributeFieldMapping_AppField: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(x.AppField)) + case *AttributeFieldMapping_CalloutField: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(x.CalloutField)) + case *AttributeFieldMapping_StructuredSnippetField: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(x.StructuredSnippetField)) + case *AttributeFieldMapping_MessageField: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(x.MessageField)) + case *AttributeFieldMapping_PriceField: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(x.PriceField)) + case *AttributeFieldMapping_PromotionField: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(x.PromotionField)) + case *AttributeFieldMapping_AdCustomizerField: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(x.AdCustomizerField)) + case *AttributeFieldMapping_EducationField: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.EducationField)) + case *AttributeFieldMapping_FlightField: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.FlightField)) + case *AttributeFieldMapping_CustomField: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.CustomField)) + case *AttributeFieldMapping_HotelField: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.HotelField)) + case *AttributeFieldMapping_RealEstateField: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.RealEstateField)) + case *AttributeFieldMapping_TravelField: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.TravelField)) + case *AttributeFieldMapping_LocalField: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.LocalField)) + case *AttributeFieldMapping_JobField: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(x.JobField)) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +func init() { + proto.RegisterType((*FeedMapping)(nil), "google.ads.googleads.v0.resources.FeedMapping") + proto.RegisterType((*AttributeFieldMapping)(nil), "google.ads.googleads.v0.resources.AttributeFieldMapping") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/feed_mapping.proto", fileDescriptor_feed_mapping_531c94f1bcfe6b63) +} + +var fileDescriptor_feed_mapping_531c94f1bcfe6b63 = []byte{ + // 1111 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x98, 0x4b, 0x6f, 0xdc, 0x36, + 0x10, 0xc7, 0xa5, 0xf8, 0x11, 0x9b, 0xeb, 0xa7, 0xd2, 0xb8, 0x8b, 0xb4, 0x28, 0x9c, 0x14, 0x05, + 0x7c, 0xd2, 0x1a, 0xae, 0x91, 0x3e, 0xd2, 0x07, 0xd6, 0x86, 0x6d, 0xd9, 0x48, 0x02, 0x43, 0x36, + 0x8c, 0xa2, 0x58, 0x74, 0xc1, 0x95, 0xb8, 0xb2, 0x52, 0x49, 0x64, 0x29, 0xca, 0x85, 0x0b, 0xf4, + 0xd0, 0x4b, 0x8f, 0xfd, 0x10, 0x39, 0xf6, 0xd8, 0x8f, 0xd1, 0x7b, 0xef, 0xfd, 0x28, 0x05, 0x39, + 0x92, 0x76, 0xed, 0x50, 0x8f, 0xee, 0x4d, 0xe6, 0xf0, 0x3f, 0xbf, 0xe1, 0x70, 0x48, 0xce, 0x1a, + 0xed, 0x07, 0x94, 0x06, 0x11, 0xe9, 0x61, 0x3f, 0xed, 0xc1, 0xa7, 0xfc, 0xba, 0xd9, 0xed, 0x71, + 0x92, 0xd2, 0x8c, 0x7b, 0x24, 0xed, 0x8d, 0x09, 0xf1, 0x87, 0x31, 0x66, 0x2c, 0x4c, 0x02, 0x9b, + 0x71, 0x2a, 0xa8, 0xf5, 0x14, 0xa6, 0xda, 0xd8, 0x4f, 0xed, 0x52, 0x65, 0xdf, 0xec, 0xda, 0xa5, + 0xea, 0xc9, 0x61, 0x95, 0x63, 0x92, 0x64, 0x71, 0xda, 0xc3, 0xfe, 0xd0, 0xcb, 0x52, 0x41, 0xe3, + 0xf0, 0x17, 0xc2, 0x87, 0x2c, 0xc2, 0x1e, 0xb9, 0xa6, 0x91, 0x4f, 0xf8, 0x70, 0x1c, 0x92, 0xc8, + 0x07, 0xce, 0x93, 0x2f, 0x1a, 0x9c, 0x30, 0x56, 0x29, 0xfd, 0xb2, 0x5e, 0xea, 0xe1, 0x28, 0xaa, + 0xd4, 0x7e, 0xdd, 0xac, 0xa5, 0x99, 0xa8, 0x94, 0x7f, 0xd5, 0x20, 0x57, 0xeb, 0xae, 0x54, 0x7f, + 0x5b, 0xaf, 0x26, 0x7e, 0xe6, 0x61, 0x11, 0xd2, 0x64, 0x56, 0x07, 0xd3, 0xdb, 0x39, 0xf4, 0x78, + 0x28, 0x08, 0x97, 0xde, 0xc4, 0x2d, 0x23, 0xb9, 0x83, 0xcf, 0xfe, 0x87, 0x83, 0x54, 0x60, 0x91, + 0xa5, 0xed, 0x16, 0x3e, 0x8e, 0xc2, 0xe0, 0xba, 0x3a, 0x6d, 0x2f, 0xea, 0xd5, 0xd7, 0x54, 0x90, + 0x68, 0xd6, 0x4a, 0x79, 0x43, 0x47, 0xb3, 0x72, 0x23, 0xea, 0xe1, 0x99, 0x4b, 0x25, 0x26, 0x69, + 0x8a, 0x03, 0x52, 0x29, 0xdf, 0xaf, 0x97, 0x4f, 0xcb, 0xa6, 0x36, 0xa8, 0x21, 0x62, 0xc6, 0x43, + 0x8f, 0xcc, 0x5a, 0x1e, 0x8c, 0xd3, 0x98, 0xd6, 0xd6, 0x57, 0xbf, 0xde, 0x01, 0x27, 0x38, 0x1a, + 0x12, 0x59, 0x17, 0xd5, 0x31, 0x7c, 0x53, 0xef, 0x22, 0x0d, 0x05, 0x89, 0xc2, 0xe4, 0xc7, 0x4a, + 0xbd, 0xd3, 0xa0, 0x17, 0x3c, 0xf3, 0x44, 0xc6, 0x89, 0x3f, 0x4c, 0x93, 0x90, 0x31, 0x32, 0xf3, + 0x59, 0x15, 0x1c, 0xdf, 0xd4, 0x54, 0xdd, 0x47, 0xb9, 0x5a, 0xfd, 0x35, 0xca, 0xc6, 0xbd, 0x9f, + 0x39, 0x66, 0x8c, 0xf0, 0xfc, 0x40, 0x3c, 0xfb, 0x6b, 0x1e, 0x75, 0x8e, 0x09, 0xf1, 0x5f, 0xc1, + 0x69, 0xb1, 0x3e, 0x46, 0xab, 0xc5, 0x0d, 0x39, 0x4c, 0x70, 0x4c, 0xba, 0xe6, 0xb6, 0xb9, 0xb3, + 0xec, 0xae, 0x14, 0x83, 0xaf, 0x71, 0x4c, 0xac, 0x5d, 0x34, 0x2f, 0x8f, 0x58, 0xf7, 0xc1, 0xb6, + 0xb9, 0xd3, 0xd9, 0xfb, 0x30, 0xbf, 0x60, 0xed, 0x82, 0x61, 0x5f, 0x08, 0x1e, 0x26, 0xc1, 0x15, + 0x8e, 0x32, 0xe2, 0xaa, 0x99, 0x16, 0x47, 0x5d, 0x2c, 0x04, 0x0f, 0x47, 0x99, 0x20, 0x10, 0x5f, + 0x71, 0x3e, 0xd3, 0xee, 0xc2, 0xf6, 0xdc, 0x4e, 0x67, 0xef, 0x73, 0xbb, 0xf1, 0xc6, 0xb6, 0xfb, + 0x85, 0x8b, 0x63, 0xe9, 0x21, 0x0f, 0xd9, 0xdd, 0xc2, 0xba, 0xe1, 0xd4, 0xfa, 0x01, 0x2d, 0xc2, + 0xd9, 0xef, 0x2e, 0x6e, 0x9b, 0x3b, 0x6b, 0x7b, 0xc7, 0x95, 0x04, 0x95, 0x49, 0x7b, 0x2a, 0x0d, + 0x17, 0x4a, 0x77, 0x94, 0x64, 0xf1, 0xbb, 0xa3, 0x6e, 0xee, 0xd5, 0xa2, 0x68, 0xe3, 0x7e, 0xf5, + 0x77, 0xe7, 0x14, 0xe9, 0xa0, 0x81, 0x74, 0x3e, 0x91, 0x5d, 0xde, 0x32, 0xa2, 0x38, 0xf7, 0xc6, + 0x1c, 0xc3, 0x5d, 0x67, 0x77, 0x87, 0xac, 0x5f, 0xd1, 0xda, 0xdd, 0xdb, 0xb0, 0x3b, 0xaf, 0x70, + 0x97, 0xed, 0x17, 0x76, 0x58, 0xe8, 0x4b, 0x6e, 0x95, 0xd1, 0x31, 0xdc, 0x55, 0x6f, 0x7a, 0xe0, + 0x60, 0x09, 0x2d, 0x0a, 0xcc, 0x03, 0x22, 0x9e, 0xfd, 0xbb, 0x89, 0x1e, 0x6b, 0xf7, 0xc2, 0x3a, + 0x41, 0x9b, 0xea, 0xf2, 0x9d, 0x6c, 0x76, 0xe8, 0xab, 0x12, 0xea, 0xec, 0x7d, 0xf0, 0x4e, 0x99, + 0x9c, 0x26, 0xe2, 0xf9, 0x3e, 0x54, 0xc9, 0xba, 0x54, 0x95, 0x2e, 0x4f, 0x7d, 0xeb, 0x39, 0x5a, + 0x82, 0x32, 0x09, 0x8b, 0x32, 0xab, 0xd5, 0x3f, 0x54, 0x93, 0x4f, 0x7d, 0x99, 0xa3, 0xf2, 0x6c, + 0xaa, 0xb1, 0x7c, 0x4b, 0x9a, 0x72, 0x74, 0x91, 0x8b, 0xa6, 0xb6, 0x41, 0x2d, 0x4c, 0xe5, 0xa8, + 0xca, 0x28, 0x73, 0x54, 0xd0, 0xd4, 0x80, 0x15, 0x23, 0xa4, 0xde, 0x6d, 0x40, 0xc3, 0xf6, 0xbc, + 0x6c, 0x40, 0x1f, 0xe2, 0x28, 0xd2, 0x62, 0x75, 0x06, 0xc7, 0x70, 0x97, 0x25, 0x01, 0x70, 0x21, + 0x5a, 0x96, 0x1d, 0x06, 0xd0, 0x16, 0x14, 0xed, 0xac, 0x81, 0xd6, 0x67, 0x4c, 0x0b, 0xd3, 0x8c, + 0x3b, 0x86, 0xbb, 0x84, 0x19, 0x03, 0xd4, 0x2d, 0x5a, 0x2d, 0xba, 0x0a, 0xc0, 0x2d, 0x29, 0x9c, + 0xdb, 0x62, 0x71, 0x34, 0x13, 0x95, 0xeb, 0xd3, 0xd8, 0x1c, 0xc3, 0x5d, 0xc9, 0x51, 0x80, 0x7e, + 0x6b, 0xa2, 0xae, 0xe6, 0xc2, 0x84, 0x30, 0x96, 0x55, 0x18, 0xe3, 0xa6, 0xed, 0x2d, 0xe5, 0x17, + 0xa0, 0xd6, 0xef, 0x73, 0xd3, 0x2c, 0xc7, 0x70, 0xb7, 0xd2, 0xfb, 0x93, 0xca, 0xfc, 0x14, 0x4f, + 0x29, 0x04, 0x86, 0x5a, 0xe5, 0xe7, 0x15, 0x68, 0xb4, 0xe1, 0x54, 0xd8, 0x64, 0x7e, 0x72, 0x14, + 0xa0, 0x7f, 0x42, 0x1d, 0x78, 0x50, 0x01, 0xdc, 0x51, 0xe0, 0xd7, 0x4d, 0x77, 0x90, 0x54, 0x68, + 0xb1, 0x5a, 0x8b, 0x63, 0xb8, 0x48, 0x41, 0x00, 0xf9, 0x9b, 0x89, 0xd6, 0x27, 0xef, 0x30, 0x70, + 0x57, 0x14, 0xf7, 0xaa, 0x91, 0x9b, 0xab, 0x2a, 0xd8, 0x15, 0x56, 0xc7, 0x70, 0xd7, 0x4a, 0x20, + 0xc4, 0xf0, 0x87, 0x89, 0x1e, 0xdd, 0x6d, 0xd2, 0x21, 0x8e, 0x55, 0x15, 0xc7, 0xa0, 0xe9, 0x1c, + 0xf8, 0x87, 0xa5, 0x50, 0x7f, 0x20, 0x6a, 0x26, 0x38, 0x86, 0xbb, 0x89, 0xa7, 0xec, 0x93, 0xa4, + 0x4c, 0x9a, 0x5f, 0x08, 0x66, 0xa3, 0x55, 0x52, 0x8e, 0x0a, 0x95, 0x36, 0x92, 0x4a, 0xab, 0x4c, + 0x4a, 0x09, 0x84, 0x18, 0x32, 0xb4, 0x92, 0x37, 0xb1, 0xc0, 0xdf, 0x54, 0xfc, 0xf3, 0xa6, 0x17, + 0x42, 0x49, 0xb4, 0x70, 0xbd, 0xc9, 0x31, 0xdc, 0x0e, 0x70, 0x4a, 0x6c, 0xfe, 0xa3, 0x01, 0xb0, + 0x56, 0x2b, 0x2c, 0x24, 0x50, 0x7f, 0x37, 0x68, 0x4d, 0x12, 0x0b, 0x9c, 0xb2, 0xf2, 0xa1, 0xe9, + 0x06, 0xea, 0xa3, 0x56, 0x95, 0xef, 0x48, 0x85, 0x16, 0xaa, 0xb5, 0xc8, 0xca, 0x57, 0x10, 0x40, + 0xfe, 0x6e, 0xa2, 0xcd, 0xe9, 0x06, 0x12, 0xc8, 0xef, 0x29, 0xf2, 0x77, 0x0d, 0x64, 0x97, 0xe0, + 0xe8, 0x48, 0xc9, 0xb4, 0xf8, 0x6a, 0xb3, 0xec, 0x06, 0x78, 0x69, 0x2d, 0x53, 0x9e, 0xf7, 0x7e, + 0x10, 0xc2, 0xe3, 0x56, 0x29, 0xbf, 0x54, 0x12, 0x2d, 0x5e, 0x6f, 0x92, 0x29, 0x07, 0x4e, 0x99, + 0x72, 0xf8, 0xbd, 0x01, 0xd4, 0xad, 0x56, 0x29, 0x7f, 0x29, 0x15, 0x5a, 0xa8, 0xd6, 0x22, 0x53, + 0xae, 0x20, 0xe5, 0x2b, 0x27, 0x7f, 0x1d, 0x01, 0xf0, 0xfd, 0x56, 0xaf, 0xdc, 0x19, 0x1d, 0x69, + 0x71, 0x9a, 0x71, 0xf9, 0xca, 0xbd, 0xa1, 0x23, 0xf5, 0x7d, 0xf0, 0x10, 0x2d, 0x28, 0xcc, 0xc1, + 0x3f, 0x26, 0xfa, 0xc4, 0xa3, 0x71, 0x73, 0x53, 0x7a, 0xb0, 0x31, 0xd5, 0x41, 0x9d, 0xcb, 0xd6, + 0xe4, 0xdc, 0xfc, 0xfe, 0x2c, 0x97, 0x05, 0x34, 0xc2, 0x49, 0x60, 0x53, 0x1e, 0xf4, 0x02, 0x92, + 0xa8, 0xc6, 0xa5, 0xe8, 0xe1, 0x59, 0x98, 0xd6, 0xfc, 0x4b, 0xe3, 0x45, 0xf9, 0xf5, 0xf6, 0xc1, + 0xdc, 0x49, 0xbf, 0xff, 0xe7, 0x83, 0xa7, 0x27, 0xe0, 0xb2, 0xef, 0xa7, 0x36, 0x7c, 0xca, 0xaf, + 0xab, 0x5d, 0xdb, 0x2d, 0x66, 0xfe, 0x5d, 0xcc, 0x19, 0xf4, 0xfd, 0x74, 0x50, 0xce, 0x19, 0x5c, + 0xed, 0x0e, 0xca, 0x39, 0xa3, 0x45, 0x15, 0xc4, 0xa7, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff, 0xf1, + 0x63, 0xba, 0xcf, 0x56, 0x11, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/gender_view.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/gender_view.pb.go new file mode 100644 index 000000000..598a9d345 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/gender_view.pb.go @@ -0,0 +1,88 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/gender_view.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A gender view. +type GenderView struct { + // The resource name of the gender view. + // Gender view resource names have the form: + // + // `customers/{customer_id}/genderViews/{ad_group_id}_{criterion_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GenderView) Reset() { *m = GenderView{} } +func (m *GenderView) String() string { return proto.CompactTextString(m) } +func (*GenderView) ProtoMessage() {} +func (*GenderView) Descriptor() ([]byte, []int) { + return fileDescriptor_gender_view_7175490191e428e1, []int{0} +} +func (m *GenderView) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GenderView.Unmarshal(m, b) +} +func (m *GenderView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GenderView.Marshal(b, m, deterministic) +} +func (dst *GenderView) XXX_Merge(src proto.Message) { + xxx_messageInfo_GenderView.Merge(dst, src) +} +func (m *GenderView) XXX_Size() int { + return xxx_messageInfo_GenderView.Size(m) +} +func (m *GenderView) XXX_DiscardUnknown() { + xxx_messageInfo_GenderView.DiscardUnknown(m) +} + +var xxx_messageInfo_GenderView proto.InternalMessageInfo + +func (m *GenderView) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GenderView)(nil), "google.ads.googleads.v0.resources.GenderView") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/gender_view.proto", fileDescriptor_gender_view_7175490191e428e1) +} + +var fileDescriptor_gender_view_7175490191e428e1 = []byte{ + // 220 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x32, 0x4e, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xa2, 0xd4, + 0xe2, 0xfc, 0xd2, 0xa2, 0xe4, 0xd4, 0x62, 0xfd, 0xf4, 0xd4, 0xbc, 0x94, 0xd4, 0xa2, 0xf8, 0xb2, + 0xcc, 0xd4, 0x72, 0xbd, 0x82, 0xa2, 0xfc, 0x92, 0x7c, 0x21, 0x45, 0x88, 0x4a, 0xbd, 0xc4, 0x94, + 0x62, 0x3d, 0xb8, 0x26, 0xbd, 0x32, 0x03, 0x3d, 0xb8, 0x26, 0x25, 0x43, 0x2e, 0x2e, 0x77, 0xb0, + 0xbe, 0xb0, 0xcc, 0xd4, 0x72, 0x21, 0x65, 0x2e, 0x5e, 0x98, 0x54, 0x7c, 0x5e, 0x62, 0x6e, 0xaa, + 0x04, 0xa3, 0x02, 0xa3, 0x06, 0x67, 0x10, 0x0f, 0x4c, 0xd0, 0x2f, 0x31, 0x37, 0xd5, 0xe9, 0x0a, + 0x23, 0x97, 0x6a, 0x72, 0x7e, 0xae, 0x1e, 0x41, 0xc3, 0x9d, 0xf8, 0x11, 0x46, 0x07, 0x80, 0x1c, + 0x14, 0xc0, 0x18, 0xe5, 0x05, 0xd5, 0x95, 0x9e, 0x9f, 0x93, 0x98, 0x97, 0xae, 0x97, 0x5f, 0x94, + 0x0e, 0x72, 0x37, 0xd8, 0xb9, 0x30, 0x7f, 0x15, 0x64, 0x16, 0xe3, 0xf1, 0xa6, 0x35, 0x9c, 0xb5, + 0x88, 0x89, 0xd9, 0xdd, 0xd1, 0x71, 0x15, 0x93, 0xa2, 0x3b, 0xc4, 0x48, 0xc7, 0x94, 0x62, 0x3d, + 0x08, 0x13, 0xc4, 0x0a, 0x33, 0xd0, 0x0b, 0x82, 0xa9, 0x3c, 0x05, 0x53, 0x13, 0xe3, 0x98, 0x52, + 0x1c, 0x03, 0x57, 0x13, 0x13, 0x66, 0x10, 0x03, 0x57, 0x93, 0xc4, 0x06, 0x76, 0x84, 0x31, 0x20, + 0x00, 0x00, 0xff, 0xff, 0x93, 0x68, 0xea, 0xbb, 0x6a, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/geo_target_constant.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/geo_target_constant.pb.go new file mode 100644 index 000000000..cda60dc12 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/geo_target_constant.pb.go @@ -0,0 +1,146 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/geo_target_constant.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A geo target constant. +type GeoTargetConstant struct { + // The resource name of the geo target constant. + // Geo target constant resource names have the form: + // + // `geoTargetConstants/{geo_target_constant_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + // The ID of the geo target constant. + Id *wrappers.Int64Value `protobuf:"bytes,3,opt,name=id,proto3" json:"id,omitempty"` + // Geo target constant English name. + Name *wrappers.StringValue `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + // The ISO-3166-1 alpha-2 country code that is associated with the target. + CountryCode *wrappers.StringValue `protobuf:"bytes,5,opt,name=country_code,json=countryCode,proto3" json:"country_code,omitempty"` + // Geo target constant target type. + TargetType *wrappers.StringValue `protobuf:"bytes,6,opt,name=target_type,json=targetType,proto3" json:"target_type,omitempty"` + // Geo target constant status. + Status enums.GeoTargetConstantStatusEnum_GeoTargetConstantStatus `protobuf:"varint,7,opt,name=status,proto3,enum=google.ads.googleads.v0.enums.GeoTargetConstantStatusEnum_GeoTargetConstantStatus" json:"status,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GeoTargetConstant) Reset() { *m = GeoTargetConstant{} } +func (m *GeoTargetConstant) String() string { return proto.CompactTextString(m) } +func (*GeoTargetConstant) ProtoMessage() {} +func (*GeoTargetConstant) Descriptor() ([]byte, []int) { + return fileDescriptor_geo_target_constant_07179001f0b69e8d, []int{0} +} +func (m *GeoTargetConstant) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GeoTargetConstant.Unmarshal(m, b) +} +func (m *GeoTargetConstant) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GeoTargetConstant.Marshal(b, m, deterministic) +} +func (dst *GeoTargetConstant) XXX_Merge(src proto.Message) { + xxx_messageInfo_GeoTargetConstant.Merge(dst, src) +} +func (m *GeoTargetConstant) XXX_Size() int { + return xxx_messageInfo_GeoTargetConstant.Size(m) +} +func (m *GeoTargetConstant) XXX_DiscardUnknown() { + xxx_messageInfo_GeoTargetConstant.DiscardUnknown(m) +} + +var xxx_messageInfo_GeoTargetConstant proto.InternalMessageInfo + +func (m *GeoTargetConstant) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func (m *GeoTargetConstant) GetId() *wrappers.Int64Value { + if m != nil { + return m.Id + } + return nil +} + +func (m *GeoTargetConstant) GetName() *wrappers.StringValue { + if m != nil { + return m.Name + } + return nil +} + +func (m *GeoTargetConstant) GetCountryCode() *wrappers.StringValue { + if m != nil { + return m.CountryCode + } + return nil +} + +func (m *GeoTargetConstant) GetTargetType() *wrappers.StringValue { + if m != nil { + return m.TargetType + } + return nil +} + +func (m *GeoTargetConstant) GetStatus() enums.GeoTargetConstantStatusEnum_GeoTargetConstantStatus { + if m != nil { + return m.Status + } + return enums.GeoTargetConstantStatusEnum_UNSPECIFIED +} + +func init() { + proto.RegisterType((*GeoTargetConstant)(nil), "google.ads.googleads.v0.resources.GeoTargetConstant") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/geo_target_constant.proto", fileDescriptor_geo_target_constant_07179001f0b69e8d) +} + +var fileDescriptor_geo_target_constant_07179001f0b69e8d = []byte{ + // 400 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x92, 0xd1, 0xca, 0xd3, 0x30, + 0x14, 0xc7, 0x69, 0xf7, 0x39, 0x31, 0xfb, 0x14, 0xec, 0x85, 0x94, 0x4f, 0x91, 0x4d, 0x11, 0x06, + 0x42, 0x5a, 0xa6, 0x78, 0x33, 0x54, 0xba, 0x21, 0x43, 0x2f, 0x64, 0x74, 0x63, 0x17, 0x52, 0x28, + 0x59, 0x73, 0x0c, 0x95, 0x35, 0x29, 0x49, 0x3a, 0xd9, 0xb5, 0x6f, 0xe2, 0xa5, 0x8f, 0xe2, 0x2b, + 0xf8, 0x32, 0xb2, 0x24, 0xed, 0xcd, 0x9c, 0xdf, 0xee, 0xfe, 0x6d, 0xfe, 0xbf, 0xff, 0x39, 0x39, + 0x39, 0x68, 0xca, 0x84, 0x60, 0x3b, 0x88, 0x08, 0x55, 0x91, 0x95, 0x47, 0xb5, 0x8f, 0x23, 0x09, + 0x4a, 0x34, 0xb2, 0x00, 0x15, 0x31, 0x10, 0xb9, 0x26, 0x92, 0x81, 0xce, 0x0b, 0xc1, 0x95, 0x26, + 0x5c, 0xe3, 0x5a, 0x0a, 0x2d, 0x82, 0x91, 0x25, 0x30, 0xa1, 0x0a, 0x77, 0x30, 0xde, 0xc7, 0xb8, + 0x83, 0x6f, 0xde, 0x9d, 0xcb, 0x07, 0xde, 0x54, 0xff, 0xcc, 0xce, 0x95, 0x26, 0xba, 0x51, 0xb6, + 0xc4, 0xcd, 0x53, 0xc7, 0x9b, 0xaf, 0x6d, 0xf3, 0x35, 0xfa, 0x2e, 0x49, 0x5d, 0x83, 0x74, 0xe7, + 0xcf, 0x7e, 0xf4, 0xd0, 0xc3, 0x05, 0x88, 0xb5, 0xc9, 0x98, 0xbb, 0x88, 0xe0, 0x39, 0xba, 0xdf, + 0xb6, 0x90, 0x73, 0x52, 0x41, 0xe8, 0x0d, 0xbd, 0xf1, 0xbd, 0xf4, 0xba, 0xfd, 0xf9, 0x99, 0x54, + 0x10, 0xbc, 0x44, 0x7e, 0x49, 0xc3, 0xde, 0xd0, 0x1b, 0x0f, 0x26, 0x8f, 0x5d, 0xff, 0xb8, 0xad, + 0x83, 0x3f, 0x72, 0xfd, 0xe6, 0xf5, 0x86, 0xec, 0x1a, 0x48, 0xfd, 0x92, 0x06, 0x31, 0xba, 0x32, + 0x41, 0x57, 0xc6, 0xfe, 0xe4, 0xc4, 0xbe, 0xd2, 0xb2, 0xe4, 0xcc, 0xfa, 0x8d, 0x33, 0x78, 0x8f, + 0xae, 0x0b, 0xd1, 0x70, 0x2d, 0x0f, 0x79, 0x21, 0x28, 0x84, 0x77, 0x2e, 0x20, 0x07, 0x8e, 0x98, + 0x0b, 0x0a, 0xc1, 0x5b, 0x34, 0x70, 0xa3, 0xd1, 0x87, 0x1a, 0xc2, 0xfe, 0x05, 0x3c, 0xb2, 0xc0, + 0xfa, 0x50, 0x43, 0xf0, 0x0d, 0xf5, 0xed, 0x24, 0xc3, 0xbb, 0x43, 0x6f, 0xfc, 0x60, 0x92, 0xe2, + 0x73, 0xaf, 0x65, 0x9e, 0x02, 0x9f, 0x4c, 0x71, 0x65, 0xe8, 0x0f, 0xbc, 0xa9, 0xce, 0x9d, 0xa5, + 0xae, 0xc2, 0xec, 0x8f, 0x87, 0x5e, 0x14, 0xa2, 0xc2, 0xb7, 0xee, 0xc3, 0xec, 0xd1, 0x49, 0xd4, + 0xf2, 0x78, 0x91, 0xa5, 0xf7, 0xe5, 0x93, 0x83, 0x99, 0xd8, 0x11, 0xce, 0xb0, 0x90, 0x2c, 0x62, + 0xc0, 0xcd, 0x35, 0xdb, 0xcd, 0xa9, 0x4b, 0xf5, 0x9f, 0x45, 0x9d, 0x76, 0xea, 0xa7, 0xdf, 0x5b, + 0x24, 0xc9, 0x2f, 0x7f, 0xb4, 0xb0, 0x91, 0x09, 0x55, 0xd8, 0xca, 0xa3, 0xda, 0xc4, 0x38, 0x6d, + 0x9d, 0xbf, 0x5b, 0x4f, 0x96, 0x50, 0x95, 0x75, 0x9e, 0x6c, 0x13, 0x67, 0x9d, 0x67, 0xdb, 0x37, + 0x4d, 0xbc, 0xfa, 0x1b, 0x00, 0x00, 0xff, 0xff, 0x70, 0xa7, 0x88, 0xb1, 0x2c, 0x03, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/google_ads_field.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/google_ads_field.pb.go new file mode 100644 index 000000000..8e1977412 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/google_ads_field.pb.go @@ -0,0 +1,246 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/google_ads_field.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A field or resource (artifact) used by GoogleAdsService. +type GoogleAdsField struct { + // The resource name of the artifact. + // Artifact resource names have the form: + // + // `googleAdsFields/{name}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + // The name of the artifact. + Name *wrappers.StringValue `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + // The category of the artifact. + Category enums.GoogleAdsFieldCategoryEnum_GoogleAdsFieldCategory `protobuf:"varint,3,opt,name=category,proto3,enum=google.ads.googleads.v0.enums.GoogleAdsFieldCategoryEnum_GoogleAdsFieldCategory" json:"category,omitempty"` + // Whether the artifact can be used in a SELECT clause in search + // queries. + Selectable *wrappers.BoolValue `protobuf:"bytes,4,opt,name=selectable,proto3" json:"selectable,omitempty"` + // Whether the artifact can be used in a WHERE clause in search + // queries. + Filterable *wrappers.BoolValue `protobuf:"bytes,5,opt,name=filterable,proto3" json:"filterable,omitempty"` + // Whether the artifact can be used in a ORDER BY clause in search + // queries. + Sortable *wrappers.BoolValue `protobuf:"bytes,6,opt,name=sortable,proto3" json:"sortable,omitempty"` + // The names of all resources, segments, and metrics that are selectable with + // the described artifact. + SelectableWith []*wrappers.StringValue `protobuf:"bytes,7,rep,name=selectable_with,json=selectableWith,proto3" json:"selectable_with,omitempty"` + // The names of all resources that are selectable with the described + // artifact. Fields from these resources do not segment metrics when included + // in search queries. + // + // This field is only set for artifacts whose category is RESOURCE. + AttributeResources []*wrappers.StringValue `protobuf:"bytes,8,rep,name=attribute_resources,json=attributeResources,proto3" json:"attribute_resources,omitempty"` + // The names of all metrics that are selectable with the described artifact. + // + // This field is only set for artifacts whose category is either RESOURCE or + // SEGMENT. + Metrics []*wrappers.StringValue `protobuf:"bytes,9,rep,name=metrics,proto3" json:"metrics,omitempty"` + // The names of all artifacts, whether a segment or another resource, that + // segment metrics when included in search queries. + // + // This field is only set for artifacts of category RESOURCE, SEGMENT or + // METRIC. + Segments []*wrappers.StringValue `protobuf:"bytes,10,rep,name=segments,proto3" json:"segments,omitempty"` + // Values the artifact can assume if it is a field of type ENUM. + // + // This field is only set for artifacts of category SEGMENT or ATTRIBUTE. + EnumValues []*wrappers.StringValue `protobuf:"bytes,11,rep,name=enum_values,json=enumValues,proto3" json:"enum_values,omitempty"` + // This field determines the operators that can be used with the artifact + // in WHERE clauses. + DataType enums.GoogleAdsFieldDataTypeEnum_GoogleAdsFieldDataType `protobuf:"varint,12,opt,name=data_type,json=dataType,proto3,enum=google.ads.googleads.v0.enums.GoogleAdsFieldDataTypeEnum_GoogleAdsFieldDataType" json:"data_type,omitempty"` + // The URL of proto describing the artifact's data type. + TypeUrl *wrappers.StringValue `protobuf:"bytes,13,opt,name=type_url,json=typeUrl,proto3" json:"type_url,omitempty"` + // Whether the field artifact is repeated. + IsRepeated *wrappers.BoolValue `protobuf:"bytes,14,opt,name=is_repeated,json=isRepeated,proto3" json:"is_repeated,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GoogleAdsField) Reset() { *m = GoogleAdsField{} } +func (m *GoogleAdsField) String() string { return proto.CompactTextString(m) } +func (*GoogleAdsField) ProtoMessage() {} +func (*GoogleAdsField) Descriptor() ([]byte, []int) { + return fileDescriptor_google_ads_field_0bf2ea18662864bd, []int{0} +} +func (m *GoogleAdsField) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GoogleAdsField.Unmarshal(m, b) +} +func (m *GoogleAdsField) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GoogleAdsField.Marshal(b, m, deterministic) +} +func (dst *GoogleAdsField) XXX_Merge(src proto.Message) { + xxx_messageInfo_GoogleAdsField.Merge(dst, src) +} +func (m *GoogleAdsField) XXX_Size() int { + return xxx_messageInfo_GoogleAdsField.Size(m) +} +func (m *GoogleAdsField) XXX_DiscardUnknown() { + xxx_messageInfo_GoogleAdsField.DiscardUnknown(m) +} + +var xxx_messageInfo_GoogleAdsField proto.InternalMessageInfo + +func (m *GoogleAdsField) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func (m *GoogleAdsField) GetName() *wrappers.StringValue { + if m != nil { + return m.Name + } + return nil +} + +func (m *GoogleAdsField) GetCategory() enums.GoogleAdsFieldCategoryEnum_GoogleAdsFieldCategory { + if m != nil { + return m.Category + } + return enums.GoogleAdsFieldCategoryEnum_UNSPECIFIED +} + +func (m *GoogleAdsField) GetSelectable() *wrappers.BoolValue { + if m != nil { + return m.Selectable + } + return nil +} + +func (m *GoogleAdsField) GetFilterable() *wrappers.BoolValue { + if m != nil { + return m.Filterable + } + return nil +} + +func (m *GoogleAdsField) GetSortable() *wrappers.BoolValue { + if m != nil { + return m.Sortable + } + return nil +} + +func (m *GoogleAdsField) GetSelectableWith() []*wrappers.StringValue { + if m != nil { + return m.SelectableWith + } + return nil +} + +func (m *GoogleAdsField) GetAttributeResources() []*wrappers.StringValue { + if m != nil { + return m.AttributeResources + } + return nil +} + +func (m *GoogleAdsField) GetMetrics() []*wrappers.StringValue { + if m != nil { + return m.Metrics + } + return nil +} + +func (m *GoogleAdsField) GetSegments() []*wrappers.StringValue { + if m != nil { + return m.Segments + } + return nil +} + +func (m *GoogleAdsField) GetEnumValues() []*wrappers.StringValue { + if m != nil { + return m.EnumValues + } + return nil +} + +func (m *GoogleAdsField) GetDataType() enums.GoogleAdsFieldDataTypeEnum_GoogleAdsFieldDataType { + if m != nil { + return m.DataType + } + return enums.GoogleAdsFieldDataTypeEnum_UNSPECIFIED +} + +func (m *GoogleAdsField) GetTypeUrl() *wrappers.StringValue { + if m != nil { + return m.TypeUrl + } + return nil +} + +func (m *GoogleAdsField) GetIsRepeated() *wrappers.BoolValue { + if m != nil { + return m.IsRepeated + } + return nil +} + +func init() { + proto.RegisterType((*GoogleAdsField)(nil), "google.ads.googleads.v0.resources.GoogleAdsField") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/google_ads_field.proto", fileDescriptor_google_ads_field_0bf2ea18662864bd) +} + +var fileDescriptor_google_ads_field_0bf2ea18662864bd = []byte{ + // 548 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x94, 0xdd, 0x6a, 0x13, 0x41, + 0x14, 0xc7, 0xd9, 0xa4, 0x36, 0x9b, 0x49, 0x1b, 0x61, 0x7a, 0x33, 0x04, 0x91, 0x54, 0x11, 0x72, + 0x35, 0x09, 0x15, 0x6a, 0xb1, 0x54, 0x48, 0xb4, 0x16, 0x04, 0x25, 0xac, 0x1a, 0x41, 0x02, 0xcb, + 0x24, 0x7b, 0xb2, 0x5d, 0x98, 0xdd, 0x59, 0x66, 0x66, 0x53, 0xf2, 0x3a, 0x5e, 0x7a, 0xe7, 0x6b, + 0xf8, 0x04, 0x3e, 0x8e, 0xec, 0xc7, 0x4c, 0x5a, 0x6a, 0x4c, 0xf4, 0xee, 0xec, 0x39, 0xff, 0xdf, + 0xf9, 0x98, 0x3d, 0x33, 0xe8, 0x2c, 0x14, 0x22, 0xe4, 0xd0, 0x67, 0x81, 0xea, 0x97, 0x66, 0x6e, + 0x2d, 0x07, 0x7d, 0x09, 0x4a, 0x64, 0x72, 0x0e, 0xc6, 0xed, 0xb3, 0x40, 0xf9, 0x8b, 0x08, 0x78, + 0x40, 0x53, 0x29, 0xb4, 0xc0, 0xc7, 0xa5, 0x9f, 0xb2, 0x40, 0x51, 0x4b, 0xd2, 0xe5, 0x80, 0x5a, + 0xb2, 0x73, 0xb1, 0x29, 0x39, 0x24, 0x59, 0x7c, 0x3f, 0xb1, 0x3f, 0x67, 0x1a, 0x42, 0x21, 0x57, + 0x65, 0x85, 0xce, 0xab, 0x7f, 0xc4, 0x03, 0xa6, 0x99, 0xaf, 0x57, 0x29, 0x54, 0xfc, 0xe3, 0x8a, + 0x2f, 0xbe, 0x66, 0xd9, 0xa2, 0x7f, 0x23, 0x59, 0x9a, 0x82, 0x54, 0x65, 0xfc, 0xc9, 0x8f, 0x06, + 0x6a, 0x5f, 0x15, 0x92, 0x61, 0xa0, 0xde, 0xe6, 0x29, 0xf0, 0x53, 0x74, 0x68, 0xda, 0xf7, 0x13, + 0x16, 0x03, 0x71, 0xba, 0x4e, 0xaf, 0xe9, 0x1d, 0x18, 0xe7, 0x07, 0x16, 0x03, 0x1e, 0xa0, 0xbd, + 0x22, 0x56, 0xeb, 0x3a, 0xbd, 0xd6, 0xc9, 0xa3, 0x6a, 0x7a, 0x6a, 0xca, 0xd0, 0x8f, 0x5a, 0x46, + 0x49, 0x38, 0x61, 0x3c, 0x03, 0xaf, 0x50, 0x62, 0x8e, 0x5c, 0x33, 0x1b, 0xa9, 0x77, 0x9d, 0x5e, + 0xfb, 0x64, 0x4c, 0x37, 0x1d, 0x5f, 0x31, 0x1c, 0xbd, 0xdb, 0xd7, 0xeb, 0x0a, 0xbe, 0x4c, 0xb2, + 0x78, 0x43, 0xc8, 0xb3, 0x15, 0xf0, 0x4b, 0x84, 0x14, 0x70, 0x98, 0x6b, 0x36, 0xe3, 0x40, 0xf6, + 0x8a, 0x2e, 0x3b, 0xf7, 0xba, 0x1c, 0x09, 0xc1, 0xcb, 0x1e, 0x6f, 0xa9, 0x73, 0x76, 0x11, 0x71, + 0x0d, 0xb2, 0x60, 0x1f, 0x6c, 0x67, 0xd7, 0x6a, 0x7c, 0x8a, 0x5c, 0x25, 0x64, 0x59, 0x75, 0x7f, + 0x2b, 0x69, 0xb5, 0xf8, 0x12, 0x3d, 0x5c, 0x77, 0xe0, 0xdf, 0x44, 0xfa, 0x9a, 0x34, 0xba, 0xf5, + 0xad, 0x47, 0xdb, 0x5e, 0x43, 0x5f, 0x22, 0x7d, 0x8d, 0xdf, 0xa3, 0x23, 0xa6, 0xb5, 0x8c, 0x66, + 0x99, 0x06, 0xdf, 0x2e, 0x21, 0x71, 0x77, 0x48, 0x85, 0x2d, 0xe8, 0x19, 0x0e, 0x9f, 0xa2, 0x46, + 0x0c, 0x5a, 0x46, 0x73, 0x45, 0x9a, 0x3b, 0xa4, 0x30, 0x62, 0x7c, 0x86, 0x5c, 0x05, 0x61, 0x0c, + 0x89, 0x56, 0x04, 0xed, 0x00, 0x5a, 0x35, 0xbe, 0x40, 0xad, 0xfc, 0xe7, 0xfb, 0xcb, 0xdc, 0xaf, + 0x48, 0x6b, 0x07, 0x18, 0xe5, 0x40, 0x61, 0x2a, 0x1c, 0xa3, 0xa6, 0xbd, 0x01, 0xe4, 0xe0, 0x3f, + 0xb6, 0xec, 0x0d, 0xd3, 0xec, 0xd3, 0x2a, 0x85, 0x3f, 0x6c, 0x99, 0x09, 0x79, 0x6e, 0x50, 0x59, + 0xf8, 0x05, 0x72, 0xf3, 0x4a, 0x7e, 0x26, 0x39, 0x39, 0xdc, 0xe1, 0x26, 0x34, 0x72, 0xf5, 0x67, + 0xc9, 0xf1, 0x39, 0x6a, 0x45, 0xca, 0x97, 0x90, 0x02, 0xd3, 0x10, 0x90, 0xf6, 0xf6, 0x1d, 0x8b, + 0x94, 0x57, 0xa9, 0x47, 0xbf, 0x1c, 0xf4, 0x6c, 0x2e, 0x62, 0xba, 0xf5, 0xf1, 0x19, 0x1d, 0xdd, + 0x9d, 0x60, 0x9c, 0xe7, 0x1d, 0x3b, 0x5f, 0xdf, 0x55, 0x64, 0x28, 0x38, 0x4b, 0x42, 0x2a, 0x64, + 0xd8, 0x0f, 0x21, 0x29, 0xaa, 0x9a, 0x47, 0x26, 0x8d, 0xd4, 0x5f, 0xde, 0xc3, 0x73, 0x6b, 0x7d, + 0xab, 0xd5, 0xaf, 0x86, 0xc3, 0xef, 0xb5, 0xe3, 0xb2, 0x12, 0x1d, 0x06, 0xb7, 0x4e, 0x94, 0x4e, + 0x06, 0xd4, 0x2e, 0xd3, 0x4f, 0xa3, 0x99, 0x0e, 0x03, 0x35, 0xb5, 0x9a, 0xe9, 0x64, 0x30, 0xb5, + 0x9a, 0xd9, 0x7e, 0xd1, 0xc4, 0xf3, 0xdf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x5d, 0xb8, 0x9e, 0x4d, + 0x93, 0x05, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/hotel_group_view.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/hotel_group_view.pb.go new file mode 100644 index 000000000..61a450c9d --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/hotel_group_view.pb.go @@ -0,0 +1,89 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/hotel_group_view.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A hotel group view. +type HotelGroupView struct { + // The resource name of the hotel group view. + // Hotel Group view resource names have the form: + // + // `customers/{customer_id}/hotelGroupViews/{ad_group_id}_{criterion_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *HotelGroupView) Reset() { *m = HotelGroupView{} } +func (m *HotelGroupView) String() string { return proto.CompactTextString(m) } +func (*HotelGroupView) ProtoMessage() {} +func (*HotelGroupView) Descriptor() ([]byte, []int) { + return fileDescriptor_hotel_group_view_e87bc812956d3c2c, []int{0} +} +func (m *HotelGroupView) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HotelGroupView.Unmarshal(m, b) +} +func (m *HotelGroupView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HotelGroupView.Marshal(b, m, deterministic) +} +func (dst *HotelGroupView) XXX_Merge(src proto.Message) { + xxx_messageInfo_HotelGroupView.Merge(dst, src) +} +func (m *HotelGroupView) XXX_Size() int { + return xxx_messageInfo_HotelGroupView.Size(m) +} +func (m *HotelGroupView) XXX_DiscardUnknown() { + xxx_messageInfo_HotelGroupView.DiscardUnknown(m) +} + +var xxx_messageInfo_HotelGroupView proto.InternalMessageInfo + +func (m *HotelGroupView) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*HotelGroupView)(nil), "google.ads.googleads.v0.resources.HotelGroupView") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/hotel_group_view.proto", fileDescriptor_hotel_group_view_e87bc812956d3c2c) +} + +var fileDescriptor_hotel_group_view_e87bc812956d3c2c = []byte{ + // 230 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x48, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xa2, 0xd4, + 0xe2, 0xfc, 0xd2, 0xa2, 0xe4, 0xd4, 0x62, 0xfd, 0x8c, 0xfc, 0x92, 0xd4, 0x9c, 0xf8, 0xf4, 0xa2, + 0xfc, 0xd2, 0x82, 0xf8, 0xb2, 0xcc, 0xd4, 0x72, 0xbd, 0x82, 0xa2, 0xfc, 0x92, 0x7c, 0x21, 0x45, + 0x88, 0x72, 0xbd, 0xc4, 0x94, 0x62, 0x3d, 0xb8, 0x4e, 0xbd, 0x32, 0x03, 0x3d, 0xb8, 0x4e, 0x25, + 0x53, 0x2e, 0x3e, 0x0f, 0x90, 0x66, 0x77, 0x90, 0xde, 0xb0, 0xcc, 0xd4, 0x72, 0x21, 0x65, 0x2e, + 0x5e, 0x98, 0x74, 0x7c, 0x5e, 0x62, 0x6e, 0xaa, 0x04, 0xa3, 0x02, 0xa3, 0x06, 0x67, 0x10, 0x0f, + 0x4c, 0xd0, 0x2f, 0x31, 0x37, 0xd5, 0xe9, 0x06, 0x23, 0x97, 0x6a, 0x72, 0x7e, 0xae, 0x1e, 0x41, + 0x0b, 0x9c, 0x84, 0x51, 0x8d, 0x0f, 0x00, 0x39, 0x2c, 0x80, 0x31, 0xca, 0x0b, 0xaa, 0x33, 0x3d, + 0x3f, 0x27, 0x31, 0x2f, 0x5d, 0x2f, 0xbf, 0x28, 0x5d, 0x3f, 0x3d, 0x35, 0x0f, 0xec, 0x6c, 0x98, + 0x27, 0x0b, 0x32, 0x8b, 0xf1, 0xf8, 0xd9, 0x1a, 0xce, 0x5a, 0xc4, 0xc4, 0xec, 0xee, 0xe8, 0xb8, + 0x8a, 0x49, 0xd1, 0x1d, 0x62, 0xa4, 0x63, 0x4a, 0xb1, 0x1e, 0x84, 0x09, 0x62, 0x85, 0x19, 0xe8, + 0x05, 0xc1, 0x54, 0x9e, 0x82, 0xa9, 0x89, 0x71, 0x4c, 0x29, 0x8e, 0x81, 0xab, 0x89, 0x09, 0x33, + 0x88, 0x81, 0xab, 0x49, 0x62, 0x03, 0x3b, 0xc2, 0x18, 0x10, 0x00, 0x00, 0xff, 0xff, 0x8c, 0x57, + 0x63, 0xbb, 0x77, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/hotel_performance_view.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/hotel_performance_view.pb.go new file mode 100644 index 000000000..6ad126fcc --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/hotel_performance_view.pb.go @@ -0,0 +1,89 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/hotel_performance_view.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A hotel performance view. +type HotelPerformanceView struct { + // The resource name of the hotel performance view. + // Hotel performance view resource names have the form: + // + // `customers/{customer_id}/hotelPerformanceView` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *HotelPerformanceView) Reset() { *m = HotelPerformanceView{} } +func (m *HotelPerformanceView) String() string { return proto.CompactTextString(m) } +func (*HotelPerformanceView) ProtoMessage() {} +func (*HotelPerformanceView) Descriptor() ([]byte, []int) { + return fileDescriptor_hotel_performance_view_f3c3f1a054bec567, []int{0} +} +func (m *HotelPerformanceView) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_HotelPerformanceView.Unmarshal(m, b) +} +func (m *HotelPerformanceView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_HotelPerformanceView.Marshal(b, m, deterministic) +} +func (dst *HotelPerformanceView) XXX_Merge(src proto.Message) { + xxx_messageInfo_HotelPerformanceView.Merge(dst, src) +} +func (m *HotelPerformanceView) XXX_Size() int { + return xxx_messageInfo_HotelPerformanceView.Size(m) +} +func (m *HotelPerformanceView) XXX_DiscardUnknown() { + xxx_messageInfo_HotelPerformanceView.DiscardUnknown(m) +} + +var xxx_messageInfo_HotelPerformanceView proto.InternalMessageInfo + +func (m *HotelPerformanceView) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*HotelPerformanceView)(nil), "google.ads.googleads.v0.resources.HotelPerformanceView") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/hotel_performance_view.proto", fileDescriptor_hotel_performance_view_f3c3f1a054bec567) +} + +var fileDescriptor_hotel_performance_view_f3c3f1a054bec567 = []byte{ + // 237 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x4b, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xa2, 0xd4, + 0xe2, 0xfc, 0xd2, 0xa2, 0xe4, 0xd4, 0x62, 0xfd, 0x8c, 0xfc, 0x92, 0xd4, 0x9c, 0xf8, 0x82, 0xd4, + 0xa2, 0xb4, 0xfc, 0xa2, 0xdc, 0xc4, 0xbc, 0xe4, 0xd4, 0xf8, 0xb2, 0xcc, 0xd4, 0x72, 0xbd, 0x82, + 0xa2, 0xfc, 0x92, 0x7c, 0x21, 0x45, 0x88, 0x26, 0xbd, 0xc4, 0x94, 0x62, 0x3d, 0xb8, 0x7e, 0xbd, + 0x32, 0x03, 0x3d, 0xb8, 0x7e, 0x25, 0x6b, 0x2e, 0x11, 0x0f, 0x90, 0x11, 0x01, 0x08, 0x13, 0xc2, + 0x32, 0x53, 0xcb, 0x85, 0x94, 0xb9, 0x78, 0x61, 0x8a, 0xe2, 0xf3, 0x12, 0x73, 0x53, 0x25, 0x18, + 0x15, 0x18, 0x35, 0x38, 0x83, 0x78, 0x60, 0x82, 0x7e, 0x89, 0xb9, 0xa9, 0x4e, 0xf7, 0x18, 0xb9, + 0x54, 0x93, 0xf3, 0x73, 0xf5, 0x08, 0x5a, 0xe3, 0x24, 0x89, 0xcd, 0x92, 0x00, 0x90, 0x23, 0x03, + 0x18, 0xa3, 0xbc, 0xa0, 0xfa, 0xd3, 0xf3, 0x73, 0x12, 0xf3, 0xd2, 0xf5, 0xf2, 0x8b, 0xd2, 0xf5, + 0xd3, 0x53, 0xf3, 0xc0, 0x5e, 0x80, 0x79, 0xbb, 0x20, 0xb3, 0x18, 0x4f, 0x28, 0x58, 0xc3, 0x59, + 0x8b, 0x98, 0x98, 0xdd, 0x1d, 0x1d, 0x57, 0x31, 0x29, 0xba, 0x43, 0x8c, 0x74, 0x4c, 0x29, 0xd6, + 0x83, 0x30, 0x41, 0xac, 0x30, 0x03, 0xbd, 0x20, 0x98, 0xca, 0x53, 0x30, 0x35, 0x31, 0x8e, 0x29, + 0xc5, 0x31, 0x70, 0x35, 0x31, 0x61, 0x06, 0x31, 0x70, 0x35, 0x49, 0x6c, 0x60, 0x47, 0x18, 0x03, + 0x02, 0x00, 0x00, 0xff, 0xff, 0x36, 0xf4, 0x24, 0xd7, 0x89, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/keyword_plan.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/keyword_plan.pb.go new file mode 100644 index 000000000..6289be36a --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/keyword_plan.pb.go @@ -0,0 +1,280 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/keyword_plan.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import common "google.golang.org/genproto/googleapis/ads/googleads/v0/common" +import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A Keyword Planner plan. +type KeywordPlan struct { + // The resource name of the Keyword Planner plan. + // KeywordPlan resource names have the form: + // + // `customers/{customer_id}/keywordPlans/{kp_plan_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + // The ID of the keyword plan. + Id *wrappers.Int64Value `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` + // The name of the keyword plan. + // + // This field is required and should not be empty when creating new keyword + // plans. + Name *wrappers.StringValue `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + // The date period used for forecasting the plan. + ForecastPeriod *KeywordPlanForecastPeriod `protobuf:"bytes,4,opt,name=forecast_period,json=forecastPeriod,proto3" json:"forecast_period,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *KeywordPlan) Reset() { *m = KeywordPlan{} } +func (m *KeywordPlan) String() string { return proto.CompactTextString(m) } +func (*KeywordPlan) ProtoMessage() {} +func (*KeywordPlan) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_9d2df87f9b36e60a, []int{0} +} +func (m *KeywordPlan) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_KeywordPlan.Unmarshal(m, b) +} +func (m *KeywordPlan) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_KeywordPlan.Marshal(b, m, deterministic) +} +func (dst *KeywordPlan) XXX_Merge(src proto.Message) { + xxx_messageInfo_KeywordPlan.Merge(dst, src) +} +func (m *KeywordPlan) XXX_Size() int { + return xxx_messageInfo_KeywordPlan.Size(m) +} +func (m *KeywordPlan) XXX_DiscardUnknown() { + xxx_messageInfo_KeywordPlan.DiscardUnknown(m) +} + +var xxx_messageInfo_KeywordPlan proto.InternalMessageInfo + +func (m *KeywordPlan) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func (m *KeywordPlan) GetId() *wrappers.Int64Value { + if m != nil { + return m.Id + } + return nil +} + +func (m *KeywordPlan) GetName() *wrappers.StringValue { + if m != nil { + return m.Name + } + return nil +} + +func (m *KeywordPlan) GetForecastPeriod() *KeywordPlanForecastPeriod { + if m != nil { + return m.ForecastPeriod + } + return nil +} + +// The forecasting period associated with the keyword plan. +type KeywordPlanForecastPeriod struct { + // Required. The date used for forecasting the Plan. + // + // Types that are valid to be assigned to Interval: + // *KeywordPlanForecastPeriod_DateInterval + // *KeywordPlanForecastPeriod_DateRange + Interval isKeywordPlanForecastPeriod_Interval `protobuf_oneof:"interval"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *KeywordPlanForecastPeriod) Reset() { *m = KeywordPlanForecastPeriod{} } +func (m *KeywordPlanForecastPeriod) String() string { return proto.CompactTextString(m) } +func (*KeywordPlanForecastPeriod) ProtoMessage() {} +func (*KeywordPlanForecastPeriod) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_9d2df87f9b36e60a, []int{1} +} +func (m *KeywordPlanForecastPeriod) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_KeywordPlanForecastPeriod.Unmarshal(m, b) +} +func (m *KeywordPlanForecastPeriod) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_KeywordPlanForecastPeriod.Marshal(b, m, deterministic) +} +func (dst *KeywordPlanForecastPeriod) XXX_Merge(src proto.Message) { + xxx_messageInfo_KeywordPlanForecastPeriod.Merge(dst, src) +} +func (m *KeywordPlanForecastPeriod) XXX_Size() int { + return xxx_messageInfo_KeywordPlanForecastPeriod.Size(m) +} +func (m *KeywordPlanForecastPeriod) XXX_DiscardUnknown() { + xxx_messageInfo_KeywordPlanForecastPeriod.DiscardUnknown(m) +} + +var xxx_messageInfo_KeywordPlanForecastPeriod proto.InternalMessageInfo + +type isKeywordPlanForecastPeriod_Interval interface { + isKeywordPlanForecastPeriod_Interval() +} + +type KeywordPlanForecastPeriod_DateInterval struct { + DateInterval enums.KeywordPlanForecastIntervalEnum_KeywordPlanForecastInterval `protobuf:"varint,1,opt,name=date_interval,json=dateInterval,proto3,enum=google.ads.googleads.v0.enums.KeywordPlanForecastIntervalEnum_KeywordPlanForecastInterval,oneof"` +} + +type KeywordPlanForecastPeriod_DateRange struct { + DateRange *common.DateRange `protobuf:"bytes,2,opt,name=date_range,json=dateRange,proto3,oneof"` +} + +func (*KeywordPlanForecastPeriod_DateInterval) isKeywordPlanForecastPeriod_Interval() {} + +func (*KeywordPlanForecastPeriod_DateRange) isKeywordPlanForecastPeriod_Interval() {} + +func (m *KeywordPlanForecastPeriod) GetInterval() isKeywordPlanForecastPeriod_Interval { + if m != nil { + return m.Interval + } + return nil +} + +func (m *KeywordPlanForecastPeriod) GetDateInterval() enums.KeywordPlanForecastIntervalEnum_KeywordPlanForecastInterval { + if x, ok := m.GetInterval().(*KeywordPlanForecastPeriod_DateInterval); ok { + return x.DateInterval + } + return enums.KeywordPlanForecastIntervalEnum_UNSPECIFIED +} + +func (m *KeywordPlanForecastPeriod) GetDateRange() *common.DateRange { + if x, ok := m.GetInterval().(*KeywordPlanForecastPeriod_DateRange); ok { + return x.DateRange + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*KeywordPlanForecastPeriod) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _KeywordPlanForecastPeriod_OneofMarshaler, _KeywordPlanForecastPeriod_OneofUnmarshaler, _KeywordPlanForecastPeriod_OneofSizer, []interface{}{ + (*KeywordPlanForecastPeriod_DateInterval)(nil), + (*KeywordPlanForecastPeriod_DateRange)(nil), + } +} + +func _KeywordPlanForecastPeriod_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*KeywordPlanForecastPeriod) + // interval + switch x := m.Interval.(type) { + case *KeywordPlanForecastPeriod_DateInterval: + b.EncodeVarint(1<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.DateInterval)) + case *KeywordPlanForecastPeriod_DateRange: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.DateRange); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("KeywordPlanForecastPeriod.Interval has unexpected type %T", x) + } + return nil +} + +func _KeywordPlanForecastPeriod_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*KeywordPlanForecastPeriod) + switch tag { + case 1: // interval.date_interval + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Interval = &KeywordPlanForecastPeriod_DateInterval{enums.KeywordPlanForecastIntervalEnum_KeywordPlanForecastInterval(x)} + return true, err + case 2: // interval.date_range + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.DateRange) + err := b.DecodeMessage(msg) + m.Interval = &KeywordPlanForecastPeriod_DateRange{msg} + return true, err + default: + return false, nil + } +} + +func _KeywordPlanForecastPeriod_OneofSizer(msg proto.Message) (n int) { + m := msg.(*KeywordPlanForecastPeriod) + // interval + switch x := m.Interval.(type) { + case *KeywordPlanForecastPeriod_DateInterval: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(x.DateInterval)) + case *KeywordPlanForecastPeriod_DateRange: + s := proto.Size(x.DateRange) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +func init() { + proto.RegisterType((*KeywordPlan)(nil), "google.ads.googleads.v0.resources.KeywordPlan") + proto.RegisterType((*KeywordPlanForecastPeriod)(nil), "google.ads.googleads.v0.resources.KeywordPlanForecastPeriod") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/keyword_plan.proto", fileDescriptor_keyword_plan_9d2df87f9b36e60a) +} + +var fileDescriptor_keyword_plan_9d2df87f9b36e60a = []byte{ + // 453 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x93, 0xcd, 0x6a, 0xd5, 0x40, + 0x14, 0xc7, 0x3b, 0x69, 0x11, 0x3b, 0xfd, 0x50, 0xb2, 0xba, 0x56, 0x91, 0xb6, 0x22, 0x54, 0x85, + 0x49, 0xa8, 0xc5, 0x8d, 0x6e, 0xee, 0x45, 0xed, 0x87, 0x20, 0x21, 0xc2, 0x5d, 0x94, 0x40, 0x98, + 0x66, 0xce, 0x1d, 0x82, 0xc9, 0x4c, 0x98, 0x49, 0x6e, 0x71, 0xe9, 0xab, 0xb8, 0xf4, 0x51, 0xdc, + 0xfb, 0x2c, 0xba, 0x94, 0xcc, 0x47, 0x68, 0xb1, 0x69, 0x77, 0xe7, 0xdc, 0xfb, 0x3b, 0xff, 0xf3, + 0x3f, 0xe7, 0x4c, 0xf0, 0x11, 0x97, 0x92, 0x57, 0x10, 0x51, 0xa6, 0x23, 0x1b, 0xf6, 0xd1, 0x32, + 0x8e, 0x14, 0x68, 0xd9, 0xa9, 0x02, 0x74, 0xf4, 0x15, 0xbe, 0x5d, 0x4a, 0xc5, 0xf2, 0xa6, 0xa2, + 0x82, 0x34, 0x4a, 0xb6, 0x32, 0xdc, 0xb3, 0x28, 0xa1, 0x4c, 0x93, 0xa1, 0x8a, 0x2c, 0x63, 0x32, + 0x54, 0xed, 0xbc, 0x1c, 0x13, 0x2e, 0x64, 0x5d, 0x4b, 0x11, 0x31, 0xda, 0x82, 0xb6, 0x72, 0x3b, + 0xb3, 0x31, 0x16, 0x44, 0x57, 0x5f, 0x37, 0x90, 0x2f, 0xa4, 0x82, 0x82, 0xea, 0x36, 0x2f, 0x45, + 0x0b, 0x6a, 0x49, 0x2b, 0xa7, 0xf1, 0xd4, 0x69, 0x98, 0xec, 0xa2, 0x5b, 0x44, 0x97, 0x8a, 0x36, + 0x0d, 0x28, 0xd7, 0x63, 0xff, 0x2f, 0xc2, 0x1b, 0x9f, 0xac, 0x50, 0x52, 0x51, 0x11, 0x3e, 0xc3, + 0x5b, 0xde, 0x6c, 0x2e, 0x68, 0x0d, 0x13, 0xb4, 0x8b, 0x0e, 0xd6, 0xd3, 0x4d, 0xff, 0xe3, 0x67, + 0x5a, 0x43, 0xf8, 0x0a, 0x07, 0x25, 0x9b, 0x04, 0xbb, 0xe8, 0x60, 0xe3, 0xf0, 0xb1, 0x9b, 0x94, + 0xf8, 0x0e, 0xe4, 0x54, 0xb4, 0x6f, 0x8e, 0xe6, 0xb4, 0xea, 0x20, 0x0d, 0x4a, 0x16, 0xc6, 0x78, + 0xcd, 0x08, 0xad, 0x1a, 0xfc, 0xc9, 0x7f, 0xf8, 0x97, 0x56, 0x95, 0x82, 0x5b, 0xde, 0x90, 0x21, + 0xe0, 0x07, 0xc3, 0x38, 0x0d, 0xa8, 0x52, 0xb2, 0xc9, 0x9a, 0x29, 0x7e, 0x47, 0xee, 0x5c, 0x30, + 0xb9, 0x32, 0xcc, 0x47, 0x27, 0x92, 0x18, 0x8d, 0x74, 0x7b, 0x71, 0x2d, 0xdf, 0xff, 0x83, 0xf0, + 0xa3, 0x51, 0x3a, 0xfc, 0x8e, 0xf0, 0x56, 0x7f, 0x8c, 0x61, 0xa1, 0x66, 0x13, 0xdb, 0x87, 0xe7, + 0xa3, 0x1e, 0xcc, 0x55, 0x6e, 0xea, 0x7f, 0xea, 0x14, 0x3e, 0x88, 0xae, 0xbe, 0xed, 0xff, 0x93, + 0x95, 0x74, 0xb3, 0x6f, 0xe9, 0xf3, 0xf0, 0x0c, 0x63, 0x63, 0x41, 0x51, 0xc1, 0xc1, 0xed, 0xfb, + 0xc5, 0x68, 0x7f, 0xfb, 0x82, 0xc8, 0x7b, 0xda, 0x42, 0xda, 0x17, 0x9c, 0xac, 0xa4, 0xeb, 0xcc, + 0x27, 0x33, 0x8c, 0xef, 0xfb, 0x49, 0x66, 0xbf, 0x11, 0x7e, 0x5e, 0xc8, 0xfa, 0xee, 0x6d, 0xce, + 0x1e, 0x5e, 0xb1, 0x9b, 0xf4, 0x17, 0x4b, 0xd0, 0xf9, 0x99, 0x2b, 0xe3, 0xb2, 0xa2, 0x82, 0x13, + 0xa9, 0x78, 0xc4, 0x41, 0x98, 0x7b, 0xfa, 0x67, 0xda, 0x94, 0xfa, 0x96, 0x4f, 0xe7, 0xed, 0x10, + 0xfd, 0x08, 0x56, 0x8f, 0xa7, 0xd3, 0x9f, 0xc1, 0xde, 0xb1, 0x95, 0x9c, 0x32, 0x4d, 0x6c, 0xd8, + 0x47, 0xf3, 0x98, 0xa4, 0x9e, 0xfc, 0xe5, 0x99, 0x6c, 0xca, 0x74, 0x36, 0x30, 0xd9, 0x3c, 0xce, + 0x06, 0xe6, 0xe2, 0x9e, 0x31, 0xf1, 0xfa, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x25, 0xda, 0xc1, + 0xe1, 0xbe, 0x03, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/keyword_plan_ad_group.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/keyword_plan_ad_group.pb.go new file mode 100644 index 000000000..a695e6eff --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/keyword_plan_ad_group.pb.go @@ -0,0 +1,139 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/keyword_plan_ad_group.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A Keyword Planner ad group. +type KeywordPlanAdGroup struct { + // The resource name of the Keyword Planner ad group. + // KeywordPlanAdGroup resource names have the form: + // + // `customers/{customer_id}/keywordPlanAdGroups/{kp_ad_group_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + // The keyword plan campaign to which this ad group belongs. + KeywordPlanCampaign *wrappers.StringValue `protobuf:"bytes,2,opt,name=keyword_plan_campaign,json=keywordPlanCampaign,proto3" json:"keyword_plan_campaign,omitempty"` + // The ID of the keyword plan ad group. + Id *wrappers.Int64Value `protobuf:"bytes,3,opt,name=id,proto3" json:"id,omitempty"` + // The name of the keyword plan ad group. + // + // This field is required and should not be empty when creating keyword plan + // ad group. + Name *wrappers.StringValue `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + // A default ad group max cpc bid in micros in account currency for all + // biddable keywords under the keyword plan ad group. + // If not set, will inherit from parent campaign. + CpcBidMicros *wrappers.Int64Value `protobuf:"bytes,5,opt,name=cpc_bid_micros,json=cpcBidMicros,proto3" json:"cpc_bid_micros,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *KeywordPlanAdGroup) Reset() { *m = KeywordPlanAdGroup{} } +func (m *KeywordPlanAdGroup) String() string { return proto.CompactTextString(m) } +func (*KeywordPlanAdGroup) ProtoMessage() {} +func (*KeywordPlanAdGroup) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_ad_group_f170de358444a70a, []int{0} +} +func (m *KeywordPlanAdGroup) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_KeywordPlanAdGroup.Unmarshal(m, b) +} +func (m *KeywordPlanAdGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_KeywordPlanAdGroup.Marshal(b, m, deterministic) +} +func (dst *KeywordPlanAdGroup) XXX_Merge(src proto.Message) { + xxx_messageInfo_KeywordPlanAdGroup.Merge(dst, src) +} +func (m *KeywordPlanAdGroup) XXX_Size() int { + return xxx_messageInfo_KeywordPlanAdGroup.Size(m) +} +func (m *KeywordPlanAdGroup) XXX_DiscardUnknown() { + xxx_messageInfo_KeywordPlanAdGroup.DiscardUnknown(m) +} + +var xxx_messageInfo_KeywordPlanAdGroup proto.InternalMessageInfo + +func (m *KeywordPlanAdGroup) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func (m *KeywordPlanAdGroup) GetKeywordPlanCampaign() *wrappers.StringValue { + if m != nil { + return m.KeywordPlanCampaign + } + return nil +} + +func (m *KeywordPlanAdGroup) GetId() *wrappers.Int64Value { + if m != nil { + return m.Id + } + return nil +} + +func (m *KeywordPlanAdGroup) GetName() *wrappers.StringValue { + if m != nil { + return m.Name + } + return nil +} + +func (m *KeywordPlanAdGroup) GetCpcBidMicros() *wrappers.Int64Value { + if m != nil { + return m.CpcBidMicros + } + return nil +} + +func init() { + proto.RegisterType((*KeywordPlanAdGroup)(nil), "google.ads.googleads.v0.resources.KeywordPlanAdGroup") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/keyword_plan_ad_group.proto", fileDescriptor_keyword_plan_ad_group_f170de358444a70a) +} + +var fileDescriptor_keyword_plan_ad_group_f170de358444a70a = []byte{ + // 360 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x92, 0xdf, 0x4a, 0xfb, 0x30, + 0x1c, 0xc5, 0x69, 0xb7, 0xdf, 0x0f, 0x8c, 0xd3, 0x8b, 0x8a, 0x58, 0x54, 0x64, 0x53, 0x84, 0x81, + 0x90, 0x16, 0x15, 0x6f, 0xc4, 0x8b, 0xce, 0x8b, 0xa1, 0xa2, 0x94, 0x09, 0xbb, 0x90, 0x42, 0xc9, + 0x92, 0x18, 0xc2, 0xda, 0x24, 0x24, 0xeb, 0x86, 0xaf, 0xe3, 0xa5, 0xe0, 0x8b, 0xf8, 0x0c, 0x3e, + 0x8c, 0xf4, 0xaf, 0xc8, 0xc0, 0x79, 0x77, 0x08, 0xe7, 0x73, 0xce, 0x21, 0x7c, 0xc1, 0x15, 0x93, + 0x92, 0x25, 0xd4, 0x43, 0xc4, 0x78, 0xa5, 0xcc, 0xd5, 0xdc, 0xf7, 0x34, 0x35, 0x32, 0xd3, 0x98, + 0x1a, 0x6f, 0x4a, 0x5f, 0x16, 0x52, 0x93, 0x58, 0x25, 0x48, 0xc4, 0x88, 0xc4, 0x4c, 0xcb, 0x4c, + 0x41, 0xa5, 0xe5, 0x4c, 0x3a, 0xbd, 0x92, 0x81, 0x88, 0x18, 0xd8, 0xe0, 0x70, 0xee, 0xc3, 0x06, + 0xdf, 0x3d, 0xa8, 0x1a, 0x0a, 0x60, 0x92, 0x3d, 0x7b, 0x0b, 0x8d, 0x94, 0xa2, 0xda, 0x94, 0x11, + 0x87, 0xef, 0x36, 0x70, 0xee, 0xca, 0x8a, 0x30, 0x41, 0x22, 0x20, 0xc3, 0x3c, 0xdf, 0x39, 0x02, + 0x1b, 0x75, 0x46, 0x2c, 0x50, 0x4a, 0x5d, 0xab, 0x6b, 0xf5, 0xd7, 0x46, 0x9d, 0xfa, 0xf1, 0x01, + 0xa5, 0xd4, 0x09, 0xc1, 0xf6, 0x8f, 0x75, 0x18, 0xa5, 0x0a, 0x71, 0x26, 0x5c, 0xbb, 0x6b, 0xf5, + 0xd7, 0x4f, 0xf7, 0xab, 0x4d, 0xb0, 0xee, 0x86, 0x8f, 0x33, 0xcd, 0x05, 0x1b, 0xa3, 0x24, 0xa3, + 0xa3, 0xad, 0xe9, 0x77, 0xeb, 0x75, 0x05, 0x3a, 0x27, 0xc0, 0xe6, 0xc4, 0x6d, 0x15, 0xf8, 0xde, + 0x12, 0x7e, 0x23, 0x66, 0x17, 0xe7, 0x25, 0x6d, 0x73, 0xe2, 0xf8, 0xa0, 0x5d, 0x4c, 0x6b, 0xff, + 0xa1, 0xad, 0x70, 0x3a, 0x01, 0xd8, 0xc4, 0x0a, 0xc7, 0x13, 0x4e, 0xe2, 0x94, 0x63, 0x2d, 0x8d, + 0xfb, 0x6f, 0x75, 0x55, 0x07, 0x2b, 0x3c, 0xe0, 0xe4, 0xbe, 0x00, 0x06, 0x9f, 0x16, 0x38, 0xc6, + 0x32, 0x85, 0x2b, 0x7f, 0x7e, 0xb0, 0xb3, 0xfc, 0xad, 0x61, 0x1e, 0x1f, 0x5a, 0x4f, 0xb7, 0x15, + 0xcd, 0x64, 0x82, 0x04, 0x83, 0x52, 0x33, 0x8f, 0x51, 0x51, 0x94, 0xd7, 0x67, 0xa0, 0xb8, 0xf9, + 0xe5, 0x2a, 0x2e, 0x1b, 0xf5, 0x6a, 0xb7, 0x86, 0x41, 0xf0, 0x66, 0xf7, 0x86, 0x65, 0x64, 0x40, + 0x0c, 0x2c, 0x65, 0xae, 0xc6, 0x3e, 0x1c, 0xd5, 0xce, 0x8f, 0xda, 0x13, 0x05, 0xc4, 0x44, 0x8d, + 0x27, 0x1a, 0xfb, 0x51, 0xe3, 0x99, 0xfc, 0x2f, 0x46, 0x9c, 0x7d, 0x05, 0x00, 0x00, 0xff, 0xff, + 0x77, 0xaa, 0xcb, 0x45, 0x99, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/keyword_plan_campaign.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/keyword_plan_campaign.pb.go new file mode 100644 index 000000000..6faa01619 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/keyword_plan_campaign.pb.go @@ -0,0 +1,222 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/keyword_plan_campaign.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A Keyword Plan campaign. +type KeywordPlanCampaign struct { + // The resource name of the Keyword Plan campaign. + // KeywordPlanCampaign resource names have the form: + // + // `customers/{customer_id}/keywordPlanCampaigns/{kp_campaign_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + // The keyword plan this campaign belongs to. + KeywordPlan *wrappers.StringValue `protobuf:"bytes,2,opt,name=keyword_plan,json=keywordPlan,proto3" json:"keyword_plan,omitempty"` + // The ID of the Keyword Plan campaign. + Id *wrappers.Int64Value `protobuf:"bytes,3,opt,name=id,proto3" json:"id,omitempty"` + // The name of the Keyword Plan campaign. + // + // This field is required and should not be empty when creating Keyword Plan + // campaigns. + Name *wrappers.StringValue `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + // The languages targeted for the Keyword Plan campaign. + LanguageConstants []*wrappers.StringValue `protobuf:"bytes,5,rep,name=language_constants,json=languageConstants,proto3" json:"language_constants,omitempty"` + // Targeting network. + // + // This field is required and should not be empty when creating Keyword Plan + // campaigns. + KeywordPlanNetwork enums.KeywordPlanNetworkEnum_KeywordPlanNetwork `protobuf:"varint,6,opt,name=keyword_plan_network,json=keywordPlanNetwork,proto3,enum=google.ads.googleads.v0.enums.KeywordPlanNetworkEnum_KeywordPlanNetwork" json:"keyword_plan_network,omitempty"` + // A default max cpc bid in micros, and in the account currency, for all ad + // groups under the campaign. + // + // This field is required and should not be empty when creating Keyword Plan + // campaigns. + CpcBidMicros *wrappers.Int64Value `protobuf:"bytes,7,opt,name=cpc_bid_micros,json=cpcBidMicros,proto3" json:"cpc_bid_micros,omitempty"` + // The geo targets. + GeoTargets []*KeywordPlanGeoTarget `protobuf:"bytes,8,rep,name=geo_targets,json=geoTargets,proto3" json:"geo_targets,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *KeywordPlanCampaign) Reset() { *m = KeywordPlanCampaign{} } +func (m *KeywordPlanCampaign) String() string { return proto.CompactTextString(m) } +func (*KeywordPlanCampaign) ProtoMessage() {} +func (*KeywordPlanCampaign) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_campaign_67d6c64c85cecb01, []int{0} +} +func (m *KeywordPlanCampaign) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_KeywordPlanCampaign.Unmarshal(m, b) +} +func (m *KeywordPlanCampaign) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_KeywordPlanCampaign.Marshal(b, m, deterministic) +} +func (dst *KeywordPlanCampaign) XXX_Merge(src proto.Message) { + xxx_messageInfo_KeywordPlanCampaign.Merge(dst, src) +} +func (m *KeywordPlanCampaign) XXX_Size() int { + return xxx_messageInfo_KeywordPlanCampaign.Size(m) +} +func (m *KeywordPlanCampaign) XXX_DiscardUnknown() { + xxx_messageInfo_KeywordPlanCampaign.DiscardUnknown(m) +} + +var xxx_messageInfo_KeywordPlanCampaign proto.InternalMessageInfo + +func (m *KeywordPlanCampaign) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func (m *KeywordPlanCampaign) GetKeywordPlan() *wrappers.StringValue { + if m != nil { + return m.KeywordPlan + } + return nil +} + +func (m *KeywordPlanCampaign) GetId() *wrappers.Int64Value { + if m != nil { + return m.Id + } + return nil +} + +func (m *KeywordPlanCampaign) GetName() *wrappers.StringValue { + if m != nil { + return m.Name + } + return nil +} + +func (m *KeywordPlanCampaign) GetLanguageConstants() []*wrappers.StringValue { + if m != nil { + return m.LanguageConstants + } + return nil +} + +func (m *KeywordPlanCampaign) GetKeywordPlanNetwork() enums.KeywordPlanNetworkEnum_KeywordPlanNetwork { + if m != nil { + return m.KeywordPlanNetwork + } + return enums.KeywordPlanNetworkEnum_UNSPECIFIED +} + +func (m *KeywordPlanCampaign) GetCpcBidMicros() *wrappers.Int64Value { + if m != nil { + return m.CpcBidMicros + } + return nil +} + +func (m *KeywordPlanCampaign) GetGeoTargets() []*KeywordPlanGeoTarget { + if m != nil { + return m.GeoTargets + } + return nil +} + +// A geo target. +// Next ID: 3 +type KeywordPlanGeoTarget struct { + // Required. The resource name of the geo target. + GeoTargetConstant *wrappers.StringValue `protobuf:"bytes,1,opt,name=geo_target_constant,json=geoTargetConstant,proto3" json:"geo_target_constant,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *KeywordPlanGeoTarget) Reset() { *m = KeywordPlanGeoTarget{} } +func (m *KeywordPlanGeoTarget) String() string { return proto.CompactTextString(m) } +func (*KeywordPlanGeoTarget) ProtoMessage() {} +func (*KeywordPlanGeoTarget) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_campaign_67d6c64c85cecb01, []int{1} +} +func (m *KeywordPlanGeoTarget) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_KeywordPlanGeoTarget.Unmarshal(m, b) +} +func (m *KeywordPlanGeoTarget) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_KeywordPlanGeoTarget.Marshal(b, m, deterministic) +} +func (dst *KeywordPlanGeoTarget) XXX_Merge(src proto.Message) { + xxx_messageInfo_KeywordPlanGeoTarget.Merge(dst, src) +} +func (m *KeywordPlanGeoTarget) XXX_Size() int { + return xxx_messageInfo_KeywordPlanGeoTarget.Size(m) +} +func (m *KeywordPlanGeoTarget) XXX_DiscardUnknown() { + xxx_messageInfo_KeywordPlanGeoTarget.DiscardUnknown(m) +} + +var xxx_messageInfo_KeywordPlanGeoTarget proto.InternalMessageInfo + +func (m *KeywordPlanGeoTarget) GetGeoTargetConstant() *wrappers.StringValue { + if m != nil { + return m.GeoTargetConstant + } + return nil +} + +func init() { + proto.RegisterType((*KeywordPlanCampaign)(nil), "google.ads.googleads.v0.resources.KeywordPlanCampaign") + proto.RegisterType((*KeywordPlanGeoTarget)(nil), "google.ads.googleads.v0.resources.KeywordPlanGeoTarget") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/keyword_plan_campaign.proto", fileDescriptor_keyword_plan_campaign_67d6c64c85cecb01) +} + +var fileDescriptor_keyword_plan_campaign_67d6c64c85cecb01 = []byte{ + // 487 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x93, 0x61, 0x8b, 0xd3, 0x30, + 0x18, 0xc7, 0x69, 0x37, 0x4f, 0xcd, 0xe6, 0x81, 0xb9, 0x7b, 0x51, 0x4e, 0x91, 0xdd, 0x89, 0x30, + 0x10, 0xd2, 0x72, 0x8a, 0x0a, 0x22, 0xd2, 0x1d, 0x32, 0xf5, 0xf4, 0x18, 0x55, 0x86, 0xc8, 0xa0, + 0x64, 0x49, 0x0c, 0x65, 0x6d, 0x52, 0x92, 0xf6, 0x86, 0x7e, 0x1c, 0x5f, 0xfa, 0x29, 0x7c, 0xed, + 0x77, 0xf0, 0xbb, 0xc8, 0x92, 0xa5, 0x37, 0xbc, 0x9d, 0xf5, 0xdd, 0xb3, 0xec, 0xf9, 0x3d, 0xff, + 0x7f, 0xff, 0x79, 0x02, 0x5e, 0x70, 0x29, 0x79, 0xce, 0x42, 0x4c, 0x75, 0x68, 0xcb, 0x55, 0x75, + 0x1e, 0x85, 0x8a, 0x69, 0x59, 0x2b, 0xc2, 0x74, 0xb8, 0x60, 0x5f, 0x97, 0x52, 0xd1, 0xb4, 0xcc, + 0xb1, 0x48, 0x09, 0x2e, 0x4a, 0x9c, 0x71, 0x81, 0x4a, 0x25, 0x2b, 0x09, 0x0f, 0x2d, 0x83, 0x30, + 0xd5, 0xa8, 0xc1, 0xd1, 0x79, 0x84, 0x1a, 0xfc, 0xe0, 0xd9, 0x55, 0x0a, 0x4c, 0xd4, 0xc5, 0x5f, + 0xd3, 0x05, 0xab, 0x96, 0x52, 0x2d, 0xec, 0xf0, 0x83, 0x7b, 0x6b, 0xd2, 0xfc, 0x9a, 0xd7, 0x5f, + 0xc2, 0xa5, 0xc2, 0x65, 0xc9, 0x94, 0xb6, 0xff, 0x1f, 0xfd, 0xec, 0x82, 0xbd, 0x53, 0x8b, 0x4f, + 0x72, 0x2c, 0x4e, 0xd6, 0xd6, 0xe0, 0x7d, 0x70, 0xcb, 0xc9, 0xa7, 0x02, 0x17, 0x2c, 0xf0, 0x06, + 0xde, 0xf0, 0x66, 0xd2, 0x77, 0x87, 0x67, 0xb8, 0x60, 0xf0, 0x25, 0xe8, 0x6f, 0x4a, 0x07, 0xfe, + 0xc0, 0x1b, 0xf6, 0x8e, 0xef, 0xae, 0xbf, 0x02, 0x39, 0x4d, 0xf4, 0xa1, 0x52, 0x99, 0xe0, 0x53, + 0x9c, 0xd7, 0x2c, 0xe9, 0x2d, 0x2e, 0xd4, 0xe0, 0x43, 0xe0, 0x67, 0x34, 0xe8, 0x18, 0xec, 0xce, + 0x25, 0xec, 0x8d, 0xa8, 0x9e, 0x3c, 0xb6, 0x94, 0x9f, 0x51, 0x18, 0x81, 0xae, 0x71, 0xd2, 0xfd, + 0x0f, 0x15, 0xd3, 0x09, 0x4f, 0x01, 0xcc, 0xb1, 0xe0, 0x35, 0xe6, 0x2c, 0x25, 0x52, 0xe8, 0x0a, + 0x8b, 0x4a, 0x07, 0xd7, 0x06, 0x9d, 0x56, 0xfe, 0xb6, 0xe3, 0x4e, 0x1c, 0x06, 0xbf, 0x81, 0xfd, + 0x6d, 0x39, 0x07, 0x3b, 0x03, 0x6f, 0xb8, 0x7b, 0xfc, 0x1a, 0x5d, 0x75, 0x8b, 0xe6, 0x8a, 0xd0, + 0x46, 0xc6, 0x67, 0x16, 0x7c, 0x25, 0xea, 0x62, 0xcb, 0x71, 0x02, 0x17, 0x97, 0xce, 0x60, 0x0c, + 0x76, 0x49, 0x49, 0xd2, 0x79, 0x46, 0xd3, 0x22, 0x23, 0x4a, 0xea, 0xe0, 0x7a, 0x7b, 0x66, 0x7d, + 0x52, 0x92, 0x51, 0x46, 0xdf, 0x1b, 0x00, 0x7e, 0x02, 0x3d, 0xce, 0x64, 0x5a, 0x61, 0xc5, 0x59, + 0xa5, 0x83, 0x1b, 0x26, 0x84, 0xa7, 0xa8, 0x75, 0xf7, 0x36, 0x2d, 0x8e, 0x99, 0xfc, 0x68, 0xf8, + 0x04, 0x70, 0x57, 0xea, 0x23, 0x0a, 0xf6, 0xb7, 0xf5, 0xc0, 0x77, 0x60, 0xef, 0x42, 0xb1, 0xc9, + 0xdf, 0x2c, 0x52, 0x6b, 0xfc, 0xcd, 0x78, 0x97, 0xff, 0xe8, 0xb7, 0x07, 0x1e, 0x10, 0x59, 0xb4, + 0x1b, 0x1e, 0x05, 0x5b, 0xf6, 0x79, 0xb2, 0x52, 0x99, 0x78, 0x9f, 0xdf, 0xae, 0x71, 0x2e, 0x57, + 0x17, 0x8c, 0xa4, 0xe2, 0x21, 0x67, 0xc2, 0x78, 0x70, 0x0f, 0xab, 0xcc, 0xf4, 0x3f, 0x5e, 0xf2, + 0xf3, 0xa6, 0xfa, 0xee, 0x77, 0xc6, 0x71, 0xfc, 0xc3, 0x3f, 0x1c, 0xdb, 0x91, 0x31, 0xd5, 0xc8, + 0x96, 0xab, 0x6a, 0x1a, 0xa1, 0xc4, 0x75, 0xfe, 0x72, 0x3d, 0xb3, 0x98, 0xea, 0x59, 0xd3, 0x33, + 0x9b, 0x46, 0xb3, 0xa6, 0x67, 0xbe, 0x63, 0x4c, 0x3c, 0xfa, 0x13, 0x00, 0x00, 0xff, 0xff, 0x1a, + 0x82, 0x8f, 0x23, 0x4d, 0x04, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/keyword_plan_keyword.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/keyword_plan_keyword.pb.go new file mode 100644 index 000000000..9ec292646 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/keyword_plan_keyword.pb.go @@ -0,0 +1,149 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/keyword_plan_keyword.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A Keyword Plan ad group keyword. +type KeywordPlanKeyword struct { + // The resource name of the Keyword Plan ad group keyword. + // KeywordPlanKeyword resource names have the form: + // + // `customers/{customer_id}/keywordPlanKeywords/{kp_ad_group_keyword_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + // The Keyword Plan ad group to which this keyword belongs. + KeywordPlanAdGroup *wrappers.StringValue `protobuf:"bytes,2,opt,name=keyword_plan_ad_group,json=keywordPlanAdGroup,proto3" json:"keyword_plan_ad_group,omitempty"` + // The ID of the Keyword Plan keyword. + Id *wrappers.Int64Value `protobuf:"bytes,3,opt,name=id,proto3" json:"id,omitempty"` + // The keyword text. + Text *wrappers.StringValue `protobuf:"bytes,4,opt,name=text,proto3" json:"text,omitempty"` + // The keyword match type. + MatchType enums.KeywordMatchTypeEnum_KeywordMatchType `protobuf:"varint,5,opt,name=match_type,json=matchType,proto3,enum=google.ads.googleads.v0.enums.KeywordMatchTypeEnum_KeywordMatchType" json:"match_type,omitempty"` + // A keyword level max cpc bid in micros, in the account currency, that + // overrides the keyword plan ad group cpc bid. + CpcBidMicros *wrappers.Int64Value `protobuf:"bytes,6,opt,name=cpc_bid_micros,json=cpcBidMicros,proto3" json:"cpc_bid_micros,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *KeywordPlanKeyword) Reset() { *m = KeywordPlanKeyword{} } +func (m *KeywordPlanKeyword) String() string { return proto.CompactTextString(m) } +func (*KeywordPlanKeyword) ProtoMessage() {} +func (*KeywordPlanKeyword) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_keyword_de119909c667c884, []int{0} +} +func (m *KeywordPlanKeyword) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_KeywordPlanKeyword.Unmarshal(m, b) +} +func (m *KeywordPlanKeyword) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_KeywordPlanKeyword.Marshal(b, m, deterministic) +} +func (dst *KeywordPlanKeyword) XXX_Merge(src proto.Message) { + xxx_messageInfo_KeywordPlanKeyword.Merge(dst, src) +} +func (m *KeywordPlanKeyword) XXX_Size() int { + return xxx_messageInfo_KeywordPlanKeyword.Size(m) +} +func (m *KeywordPlanKeyword) XXX_DiscardUnknown() { + xxx_messageInfo_KeywordPlanKeyword.DiscardUnknown(m) +} + +var xxx_messageInfo_KeywordPlanKeyword proto.InternalMessageInfo + +func (m *KeywordPlanKeyword) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func (m *KeywordPlanKeyword) GetKeywordPlanAdGroup() *wrappers.StringValue { + if m != nil { + return m.KeywordPlanAdGroup + } + return nil +} + +func (m *KeywordPlanKeyword) GetId() *wrappers.Int64Value { + if m != nil { + return m.Id + } + return nil +} + +func (m *KeywordPlanKeyword) GetText() *wrappers.StringValue { + if m != nil { + return m.Text + } + return nil +} + +func (m *KeywordPlanKeyword) GetMatchType() enums.KeywordMatchTypeEnum_KeywordMatchType { + if m != nil { + return m.MatchType + } + return enums.KeywordMatchTypeEnum_UNSPECIFIED +} + +func (m *KeywordPlanKeyword) GetCpcBidMicros() *wrappers.Int64Value { + if m != nil { + return m.CpcBidMicros + } + return nil +} + +func init() { + proto.RegisterType((*KeywordPlanKeyword)(nil), "google.ads.googleads.v0.resources.KeywordPlanKeyword") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/keyword_plan_keyword.proto", fileDescriptor_keyword_plan_keyword_de119909c667c884) +} + +var fileDescriptor_keyword_plan_keyword_de119909c667c884 = []byte{ + // 418 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x92, 0xdf, 0x8a, 0xd3, 0x40, + 0x14, 0xc6, 0x49, 0xba, 0x2e, 0xec, 0xb8, 0xee, 0xc5, 0x80, 0x18, 0x56, 0x91, 0xae, 0x22, 0x14, + 0x84, 0x49, 0xa8, 0xd2, 0x1b, 0xbd, 0x49, 0x51, 0x8a, 0x4a, 0xb5, 0x44, 0xe9, 0x85, 0x04, 0xc2, + 0x74, 0x66, 0x1c, 0x43, 0x33, 0x7f, 0x98, 0x49, 0x5a, 0xfb, 0x18, 0xbe, 0x82, 0x97, 0x3e, 0x8a, + 0xcf, 0xe0, 0xc3, 0x48, 0x32, 0x49, 0x8a, 0x94, 0x5a, 0xef, 0xbe, 0x99, 0x7c, 0xbf, 0xf3, 0xe5, + 0x9c, 0x39, 0xe0, 0x25, 0x57, 0x8a, 0x17, 0x2c, 0xc4, 0xd4, 0x86, 0x4e, 0xd6, 0x6a, 0x13, 0x85, + 0x86, 0x59, 0x55, 0x19, 0xc2, 0x6c, 0xb8, 0x66, 0xbb, 0xad, 0x32, 0x34, 0xd3, 0x05, 0x96, 0x59, + 0x7b, 0x40, 0xda, 0xa8, 0x52, 0xc1, 0x1b, 0x87, 0x20, 0x4c, 0x2d, 0xea, 0x69, 0xb4, 0x89, 0x50, + 0x4f, 0x5f, 0x4f, 0x8e, 0x05, 0x30, 0x59, 0x89, 0x7d, 0x71, 0x81, 0x4b, 0xf2, 0x35, 0x2b, 0x77, + 0x9a, 0xb9, 0xd2, 0xd7, 0x0f, 0x5b, 0xae, 0x39, 0xad, 0xaa, 0x2f, 0xe1, 0xd6, 0x60, 0xad, 0x99, + 0xb1, 0xee, 0xfb, 0xa3, 0xef, 0x03, 0x00, 0xdf, 0x39, 0x78, 0x51, 0x60, 0xd9, 0x4a, 0xf8, 0x18, + 0xdc, 0xe9, 0xb2, 0x33, 0x89, 0x05, 0x0b, 0xbc, 0xa1, 0x37, 0xba, 0x48, 0x2e, 0xbb, 0xcb, 0xf7, + 0x58, 0x30, 0xf8, 0x01, 0xdc, 0xfd, 0xab, 0x29, 0x4c, 0x33, 0x6e, 0x54, 0xa5, 0x03, 0x7f, 0xe8, + 0x8d, 0x6e, 0x8f, 0x1f, 0xb4, 0xbd, 0xa0, 0x2e, 0x1b, 0x7d, 0x2c, 0x4d, 0x2e, 0xf9, 0x12, 0x17, + 0x15, 0x4b, 0xe0, 0x7a, 0x9f, 0x1a, 0xd3, 0x59, 0xcd, 0xc1, 0xa7, 0xc0, 0xcf, 0x69, 0x30, 0x68, + 0xe8, 0xfb, 0x07, 0xf4, 0x1b, 0x59, 0x4e, 0x9e, 0x3b, 0xd8, 0xcf, 0x29, 0x8c, 0xc0, 0x59, 0xc9, + 0xbe, 0x95, 0xc1, 0xd9, 0x7f, 0x84, 0x35, 0x4e, 0x48, 0x00, 0xd8, 0xcf, 0x27, 0xb8, 0x35, 0xf4, + 0x46, 0x57, 0xe3, 0x57, 0xe8, 0xd8, 0xec, 0x9b, 0xc1, 0xa2, 0x76, 0x20, 0xf3, 0x9a, 0xfb, 0xb4, + 0xd3, 0xec, 0xb5, 0xac, 0xc4, 0xc1, 0x65, 0x72, 0x21, 0x3a, 0x09, 0x63, 0x70, 0x45, 0x34, 0xc9, + 0x56, 0x39, 0xcd, 0x44, 0x4e, 0x8c, 0xb2, 0xc1, 0xf9, 0xe9, 0x7e, 0x2e, 0x89, 0x26, 0xd3, 0x9c, + 0xce, 0x1b, 0x60, 0xfa, 0xdb, 0x03, 0x4f, 0x88, 0x12, 0xe8, 0xe4, 0x56, 0x4c, 0xef, 0x1d, 0x3e, + 0xdd, 0xa2, 0x2e, 0xbf, 0xf0, 0x3e, 0xbf, 0x6d, 0x69, 0xae, 0x0a, 0x2c, 0x39, 0x52, 0x86, 0x87, + 0x9c, 0xc9, 0x26, 0xbc, 0x5b, 0x20, 0x9d, 0xdb, 0x7f, 0x2c, 0xec, 0x8b, 0x5e, 0xfd, 0xf0, 0x07, + 0xb3, 0x38, 0xfe, 0xe9, 0xdf, 0xcc, 0x5c, 0xc9, 0x98, 0x5a, 0xe4, 0x64, 0xad, 0x96, 0x11, 0x4a, + 0x3a, 0xe7, 0xaf, 0xce, 0x93, 0xc6, 0xd4, 0xa6, 0xbd, 0x27, 0x5d, 0x46, 0x69, 0xef, 0x59, 0x9d, + 0x37, 0x3f, 0xf1, 0xec, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x4f, 0xc9, 0x08, 0x61, 0x34, 0x03, + 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/keyword_plan_negative_keyword.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/keyword_plan_negative_keyword.pb.go new file mode 100644 index 000000000..ed544d372 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/keyword_plan_negative_keyword.pb.go @@ -0,0 +1,138 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/keyword_plan_negative_keyword.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A Keyword Plan negative keyword. +type KeywordPlanNegativeKeyword struct { + // The resource name of the Keyword Plan negative keyword. + // KeywordPlanNegativeKeyword resource names have the form: + // + // + // `customers/{customer_id}/keywordPlanNegativeKeywords/{kp_negative_keyword_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + // The Keyword Plan campaign to which this negative keyword belongs. + KeywordPlanCampaign *wrappers.StringValue `protobuf:"bytes,2,opt,name=keyword_plan_campaign,json=keywordPlanCampaign,proto3" json:"keyword_plan_campaign,omitempty"` + // The ID of the Keyword Plan negative keyword. + Id *wrappers.Int64Value `protobuf:"bytes,3,opt,name=id,proto3" json:"id,omitempty"` + // The keyword text. + Text *wrappers.StringValue `protobuf:"bytes,4,opt,name=text,proto3" json:"text,omitempty"` + // The keyword match type. + MatchType enums.KeywordMatchTypeEnum_KeywordMatchType `protobuf:"varint,5,opt,name=match_type,json=matchType,proto3,enum=google.ads.googleads.v0.enums.KeywordMatchTypeEnum_KeywordMatchType" json:"match_type,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *KeywordPlanNegativeKeyword) Reset() { *m = KeywordPlanNegativeKeyword{} } +func (m *KeywordPlanNegativeKeyword) String() string { return proto.CompactTextString(m) } +func (*KeywordPlanNegativeKeyword) ProtoMessage() {} +func (*KeywordPlanNegativeKeyword) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_negative_keyword_91c1a0aa0ef68060, []int{0} +} +func (m *KeywordPlanNegativeKeyword) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_KeywordPlanNegativeKeyword.Unmarshal(m, b) +} +func (m *KeywordPlanNegativeKeyword) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_KeywordPlanNegativeKeyword.Marshal(b, m, deterministic) +} +func (dst *KeywordPlanNegativeKeyword) XXX_Merge(src proto.Message) { + xxx_messageInfo_KeywordPlanNegativeKeyword.Merge(dst, src) +} +func (m *KeywordPlanNegativeKeyword) XXX_Size() int { + return xxx_messageInfo_KeywordPlanNegativeKeyword.Size(m) +} +func (m *KeywordPlanNegativeKeyword) XXX_DiscardUnknown() { + xxx_messageInfo_KeywordPlanNegativeKeyword.DiscardUnknown(m) +} + +var xxx_messageInfo_KeywordPlanNegativeKeyword proto.InternalMessageInfo + +func (m *KeywordPlanNegativeKeyword) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func (m *KeywordPlanNegativeKeyword) GetKeywordPlanCampaign() *wrappers.StringValue { + if m != nil { + return m.KeywordPlanCampaign + } + return nil +} + +func (m *KeywordPlanNegativeKeyword) GetId() *wrappers.Int64Value { + if m != nil { + return m.Id + } + return nil +} + +func (m *KeywordPlanNegativeKeyword) GetText() *wrappers.StringValue { + if m != nil { + return m.Text + } + return nil +} + +func (m *KeywordPlanNegativeKeyword) GetMatchType() enums.KeywordMatchTypeEnum_KeywordMatchType { + if m != nil { + return m.MatchType + } + return enums.KeywordMatchTypeEnum_UNSPECIFIED +} + +func init() { + proto.RegisterType((*KeywordPlanNegativeKeyword)(nil), "google.ads.googleads.v0.resources.KeywordPlanNegativeKeyword") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/keyword_plan_negative_keyword.proto", fileDescriptor_keyword_plan_negative_keyword_91c1a0aa0ef68060) +} + +var fileDescriptor_keyword_plan_negative_keyword_91c1a0aa0ef68060 = []byte{ + // 400 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x52, 0xcd, 0xca, 0xd3, 0x40, + 0x14, 0x25, 0xf9, 0xaa, 0xd0, 0xf1, 0x67, 0x11, 0x11, 0x42, 0x15, 0x6d, 0x15, 0xa1, 0x20, 0x4c, + 0x42, 0x95, 0x6e, 0x5c, 0xa5, 0x5a, 0x8a, 0x8a, 0x25, 0x44, 0xe9, 0x42, 0x02, 0x61, 0x9a, 0x8c, + 0x63, 0x68, 0xe6, 0x87, 0x99, 0x49, 0x6b, 0x5f, 0xc7, 0xa5, 0x8f, 0xe2, 0x0b, 0xf8, 0x02, 0x3e, + 0x88, 0x24, 0x33, 0x49, 0x91, 0x52, 0xfd, 0x76, 0x27, 0x37, 0xe7, 0x9c, 0x7b, 0xcf, 0xbd, 0x03, + 0x96, 0x84, 0x73, 0x52, 0xe1, 0x00, 0x15, 0x2a, 0x30, 0xb0, 0x41, 0xfb, 0x30, 0x90, 0x58, 0xf1, + 0x5a, 0xe6, 0x58, 0x05, 0x3b, 0x7c, 0x3c, 0x70, 0x59, 0x64, 0xa2, 0x42, 0x2c, 0x63, 0x98, 0x20, + 0x5d, 0xee, 0x71, 0x66, 0xab, 0x50, 0x48, 0xae, 0xb9, 0x37, 0x31, 0x5a, 0x88, 0x0a, 0x05, 0x7b, + 0x1b, 0xb8, 0x0f, 0x61, 0x6f, 0x33, 0x9a, 0x5f, 0xea, 0x84, 0x59, 0x4d, 0x4f, 0x5d, 0x28, 0xd2, + 0xf9, 0xd7, 0x4c, 0x1f, 0x05, 0x36, 0xd6, 0xa3, 0x47, 0x56, 0xd7, 0x7e, 0x6d, 0xeb, 0x2f, 0xc1, + 0x41, 0x22, 0x21, 0xb0, 0x54, 0xe6, 0xff, 0x93, 0x5f, 0x2e, 0x18, 0xbd, 0x37, 0xe2, 0xb8, 0x42, + 0x6c, 0x6d, 0x07, 0xb4, 0x25, 0xef, 0x29, 0xb8, 0xd3, 0xcd, 0x90, 0x31, 0x44, 0xb1, 0xef, 0x8c, + 0x9d, 0xe9, 0x30, 0xb9, 0xdd, 0x15, 0xd7, 0x88, 0x62, 0x2f, 0x06, 0xf7, 0xff, 0x4a, 0x99, 0x23, + 0x2a, 0x50, 0x49, 0x98, 0xef, 0x8e, 0x9d, 0xe9, 0xad, 0xd9, 0x43, 0x9b, 0x09, 0x76, 0x33, 0xc0, + 0x8f, 0x5a, 0x96, 0x8c, 0x6c, 0x50, 0x55, 0xe3, 0xe4, 0xde, 0xee, 0xd4, 0xfd, 0xb5, 0x15, 0x7a, + 0xcf, 0x81, 0x5b, 0x16, 0xfe, 0x55, 0x2b, 0x7f, 0x70, 0x26, 0x7f, 0xcb, 0xf4, 0xfc, 0xa5, 0x51, + 0xbb, 0x65, 0xe1, 0x85, 0x60, 0xa0, 0xf1, 0x37, 0xed, 0x0f, 0xae, 0xd1, 0xad, 0x65, 0x7a, 0x39, + 0x00, 0xa7, 0x45, 0xf9, 0x37, 0xc6, 0xce, 0xf4, 0xee, 0xec, 0x0d, 0xbc, 0x74, 0x84, 0x76, 0xc3, + 0xd0, 0x6e, 0xe4, 0x43, 0xa3, 0xfb, 0x74, 0x14, 0x78, 0xc9, 0x6a, 0x7a, 0x56, 0x4c, 0x86, 0xb4, + 0x83, 0x8b, 0xdf, 0x0e, 0x78, 0x96, 0x73, 0x0a, 0xff, 0x7b, 0xdb, 0xc5, 0xe3, 0xcb, 0x07, 0x88, + 0x9b, 0x10, 0xb1, 0xf3, 0xf9, 0x9d, 0x75, 0x21, 0xbc, 0x42, 0x8c, 0x40, 0x2e, 0x49, 0x40, 0x30, + 0x6b, 0x23, 0x76, 0xcf, 0x41, 0x94, 0xea, 0x1f, 0xef, 0xf0, 0x55, 0x8f, 0xbe, 0xbb, 0x57, 0xab, + 0x28, 0xfa, 0xe1, 0x4e, 0x56, 0xc6, 0x32, 0x2a, 0x14, 0x34, 0xb0, 0x41, 0x9b, 0x10, 0x26, 0x1d, + 0xf3, 0x67, 0xc7, 0x49, 0xa3, 0x42, 0xa5, 0x3d, 0x27, 0xdd, 0x84, 0x69, 0xcf, 0xd9, 0xde, 0x6c, + 0x87, 0x78, 0xf1, 0x27, 0x00, 0x00, 0xff, 0xff, 0x28, 0xf2, 0x8f, 0xb8, 0x0b, 0x03, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/keyword_view.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/keyword_view.pb.go new file mode 100644 index 000000000..dd5413b40 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/keyword_view.pb.go @@ -0,0 +1,88 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/keyword_view.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A keyword view. +type KeywordView struct { + // The resource name of the keyword view. + // Keyword view resource names have the form: + // + // `customers/{customer_id}/keywordViews/{ad_group_id}_{criterion_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *KeywordView) Reset() { *m = KeywordView{} } +func (m *KeywordView) String() string { return proto.CompactTextString(m) } +func (*KeywordView) ProtoMessage() {} +func (*KeywordView) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_view_d1421782faf69a76, []int{0} +} +func (m *KeywordView) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_KeywordView.Unmarshal(m, b) +} +func (m *KeywordView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_KeywordView.Marshal(b, m, deterministic) +} +func (dst *KeywordView) XXX_Merge(src proto.Message) { + xxx_messageInfo_KeywordView.Merge(dst, src) +} +func (m *KeywordView) XXX_Size() int { + return xxx_messageInfo_KeywordView.Size(m) +} +func (m *KeywordView) XXX_DiscardUnknown() { + xxx_messageInfo_KeywordView.DiscardUnknown(m) +} + +var xxx_messageInfo_KeywordView proto.InternalMessageInfo + +func (m *KeywordView) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*KeywordView)(nil), "google.ads.googleads.v0.resources.KeywordView") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/keyword_view.proto", fileDescriptor_keyword_view_d1421782faf69a76) +} + +var fileDescriptor_keyword_view_d1421782faf69a76 = []byte{ + // 223 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x32, 0x49, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xa2, 0xd4, + 0xe2, 0xfc, 0xd2, 0xa2, 0xe4, 0xd4, 0x62, 0xfd, 0xec, 0xd4, 0xca, 0xf2, 0xfc, 0xa2, 0x94, 0xf8, + 0xb2, 0xcc, 0xd4, 0x72, 0xbd, 0x82, 0xa2, 0xfc, 0x92, 0x7c, 0x21, 0x45, 0x88, 0x52, 0xbd, 0xc4, + 0x94, 0x62, 0x3d, 0xb8, 0x2e, 0xbd, 0x32, 0x03, 0x3d, 0xb8, 0x2e, 0x25, 0x23, 0x2e, 0x6e, 0x6f, + 0x88, 0xc6, 0xb0, 0xcc, 0xd4, 0x72, 0x21, 0x65, 0x2e, 0x5e, 0x98, 0x5c, 0x7c, 0x5e, 0x62, 0x6e, + 0xaa, 0x04, 0xa3, 0x02, 0xa3, 0x06, 0x67, 0x10, 0x0f, 0x4c, 0xd0, 0x2f, 0x31, 0x37, 0xd5, 0xe9, + 0x2a, 0x23, 0x97, 0x6a, 0x72, 0x7e, 0xae, 0x1e, 0x41, 0xd3, 0x9d, 0x04, 0x90, 0xcc, 0x0e, 0x00, + 0x39, 0x29, 0x80, 0x31, 0xca, 0x0b, 0xaa, 0x2d, 0x3d, 0x3f, 0x27, 0x31, 0x2f, 0x5d, 0x2f, 0xbf, + 0x28, 0x5d, 0x3f, 0x3d, 0x35, 0x0f, 0xec, 0x60, 0x98, 0xd7, 0x0a, 0x32, 0x8b, 0xf1, 0xf8, 0xd4, + 0x1a, 0xce, 0x5a, 0xc4, 0xc4, 0xec, 0xee, 0xe8, 0xb8, 0x8a, 0x49, 0xd1, 0x1d, 0x62, 0xa4, 0x63, + 0x4a, 0xb1, 0x1e, 0x84, 0x09, 0x62, 0x85, 0x19, 0xe8, 0x05, 0xc1, 0x54, 0x9e, 0x82, 0xa9, 0x89, + 0x71, 0x4c, 0x29, 0x8e, 0x81, 0xab, 0x89, 0x09, 0x33, 0x88, 0x81, 0xab, 0x49, 0x62, 0x03, 0x3b, + 0xc2, 0x18, 0x10, 0x00, 0x00, 0xff, 0xff, 0x0a, 0xe8, 0x91, 0x50, 0x6d, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/language_constant.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/language_constant.pb.go new file mode 100644 index 000000000..3e63cb916 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/language_constant.pb.go @@ -0,0 +1,123 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/language_constant.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A language. +type LanguageConstant struct { + // The resource name of the language constant. + // Language constant resource names have the form: + // + // `languageConstants/{criterion_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + // The ID of the language constant. + Id *wrappers.Int64Value `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` + // The language code, e.g. "en_US", "en_AU", "es", "fr", etc. + Code *wrappers.StringValue `protobuf:"bytes,3,opt,name=code,proto3" json:"code,omitempty"` + // The full name of the language in English, e.g., "English (US)", "Spanish", + // etc. + Name *wrappers.StringValue `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *LanguageConstant) Reset() { *m = LanguageConstant{} } +func (m *LanguageConstant) String() string { return proto.CompactTextString(m) } +func (*LanguageConstant) ProtoMessage() {} +func (*LanguageConstant) Descriptor() ([]byte, []int) { + return fileDescriptor_language_constant_bbd663492e92d8dc, []int{0} +} +func (m *LanguageConstant) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_LanguageConstant.Unmarshal(m, b) +} +func (m *LanguageConstant) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_LanguageConstant.Marshal(b, m, deterministic) +} +func (dst *LanguageConstant) XXX_Merge(src proto.Message) { + xxx_messageInfo_LanguageConstant.Merge(dst, src) +} +func (m *LanguageConstant) XXX_Size() int { + return xxx_messageInfo_LanguageConstant.Size(m) +} +func (m *LanguageConstant) XXX_DiscardUnknown() { + xxx_messageInfo_LanguageConstant.DiscardUnknown(m) +} + +var xxx_messageInfo_LanguageConstant proto.InternalMessageInfo + +func (m *LanguageConstant) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func (m *LanguageConstant) GetId() *wrappers.Int64Value { + if m != nil { + return m.Id + } + return nil +} + +func (m *LanguageConstant) GetCode() *wrappers.StringValue { + if m != nil { + return m.Code + } + return nil +} + +func (m *LanguageConstant) GetName() *wrappers.StringValue { + if m != nil { + return m.Name + } + return nil +} + +func init() { + proto.RegisterType((*LanguageConstant)(nil), "google.ads.googleads.v0.resources.LanguageConstant") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/language_constant.proto", fileDescriptor_language_constant_bbd663492e92d8dc) +} + +var fileDescriptor_language_constant_bbd663492e92d8dc = []byte{ + // 312 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x91, 0xd1, 0x4a, 0xf3, 0x30, + 0x00, 0x85, 0x49, 0x37, 0x7e, 0xf8, 0xa3, 0x82, 0x14, 0x84, 0xa1, 0x22, 0x9b, 0x22, 0x0c, 0x84, + 0xa4, 0xa8, 0x08, 0xe2, 0x55, 0xe7, 0xc5, 0x50, 0x44, 0x46, 0x85, 0x5e, 0x48, 0x61, 0x64, 0x4d, + 0x0c, 0x85, 0x36, 0x29, 0x49, 0x3b, 0xdf, 0xc7, 0x4b, 0x9f, 0x44, 0x7c, 0x04, 0x9f, 0x46, 0x92, + 0x34, 0xbd, 0x50, 0x50, 0xef, 0x0e, 0xe5, 0x3b, 0xdf, 0x69, 0x12, 0x78, 0xc9, 0xa5, 0xe4, 0x25, + 0xc3, 0x84, 0x6a, 0xec, 0xa2, 0x49, 0xeb, 0x08, 0x2b, 0xa6, 0x65, 0xab, 0x72, 0xa6, 0x71, 0x49, + 0x04, 0x6f, 0x09, 0x67, 0xcb, 0x5c, 0x0a, 0xdd, 0x10, 0xd1, 0xa0, 0x5a, 0xc9, 0x46, 0x86, 0x13, + 0xc7, 0x23, 0x42, 0x35, 0xea, 0xab, 0x68, 0x1d, 0xa1, 0xbe, 0xba, 0x7b, 0xd0, 0xd9, 0x6d, 0x61, + 0xd5, 0x3e, 0xe1, 0x67, 0x45, 0xea, 0x9a, 0x29, 0xed, 0x14, 0x87, 0x6f, 0x00, 0x6e, 0xdf, 0x75, + 0xfa, 0xeb, 0xce, 0x1e, 0x1e, 0xc1, 0x2d, 0x6f, 0x58, 0x0a, 0x52, 0xb1, 0x11, 0x18, 0x83, 0xe9, + 0xff, 0x64, 0xd3, 0x7f, 0xbc, 0x27, 0x15, 0x0b, 0x4f, 0x60, 0x50, 0xd0, 0x51, 0x30, 0x06, 0xd3, + 0x8d, 0xd3, 0xbd, 0x6e, 0x1e, 0xf9, 0x19, 0x74, 0x23, 0x9a, 0x8b, 0xf3, 0x94, 0x94, 0x2d, 0x4b, + 0x82, 0x82, 0x86, 0x11, 0x1c, 0xe6, 0x92, 0xb2, 0xd1, 0xc0, 0xe2, 0xfb, 0xdf, 0xf0, 0x87, 0x46, + 0x15, 0x82, 0x3b, 0xde, 0x92, 0xa6, 0x61, 0xa7, 0x87, 0x7f, 0x69, 0x18, 0x72, 0xf6, 0x01, 0xe0, + 0x71, 0x2e, 0x2b, 0xf4, 0xeb, 0xa5, 0xcc, 0x76, 0xbe, 0x9e, 0x78, 0x61, 0xac, 0x0b, 0xf0, 0x78, + 0xdb, 0x75, 0xb9, 0x34, 0x57, 0x8e, 0xa4, 0xe2, 0x98, 0x33, 0x61, 0x37, 0xfd, 0xdb, 0xd4, 0x85, + 0xfe, 0xe1, 0xa9, 0xae, 0xfa, 0xf4, 0x12, 0x0c, 0xe6, 0x71, 0xfc, 0x1a, 0x4c, 0xe6, 0x4e, 0x19, + 0x53, 0x8d, 0x5c, 0x34, 0x29, 0x8d, 0x50, 0xe2, 0xc9, 0x77, 0xcf, 0x64, 0x31, 0xd5, 0x59, 0xcf, + 0x64, 0x69, 0x94, 0xf5, 0xcc, 0xea, 0x9f, 0xfd, 0x89, 0xb3, 0xcf, 0x00, 0x00, 0x00, 0xff, 0xff, + 0x15, 0x05, 0x8c, 0x99, 0x2e, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/managed_placement_view.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/managed_placement_view.pb.go new file mode 100644 index 000000000..730cc4831 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/managed_placement_view.pb.go @@ -0,0 +1,90 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/managed_placement_view.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A managed placement view. +type ManagedPlacementView struct { + // The resource name of the Managed Placement view. + // Managed placement view resource names have the form: + // + // + // `customers/{customer_id}/managedPlacementViews/{ad_group_id}_{criterion_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ManagedPlacementView) Reset() { *m = ManagedPlacementView{} } +func (m *ManagedPlacementView) String() string { return proto.CompactTextString(m) } +func (*ManagedPlacementView) ProtoMessage() {} +func (*ManagedPlacementView) Descriptor() ([]byte, []int) { + return fileDescriptor_managed_placement_view_d5d49526d4cf47f2, []int{0} +} +func (m *ManagedPlacementView) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ManagedPlacementView.Unmarshal(m, b) +} +func (m *ManagedPlacementView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ManagedPlacementView.Marshal(b, m, deterministic) +} +func (dst *ManagedPlacementView) XXX_Merge(src proto.Message) { + xxx_messageInfo_ManagedPlacementView.Merge(dst, src) +} +func (m *ManagedPlacementView) XXX_Size() int { + return xxx_messageInfo_ManagedPlacementView.Size(m) +} +func (m *ManagedPlacementView) XXX_DiscardUnknown() { + xxx_messageInfo_ManagedPlacementView.DiscardUnknown(m) +} + +var xxx_messageInfo_ManagedPlacementView proto.InternalMessageInfo + +func (m *ManagedPlacementView) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*ManagedPlacementView)(nil), "google.ads.googleads.v0.resources.ManagedPlacementView") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/managed_placement_view.proto", fileDescriptor_managed_placement_view_d5d49526d4cf47f2) +} + +var fileDescriptor_managed_placement_view_d5d49526d4cf47f2 = []byte{ + // 237 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x4b, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xa2, 0xd4, + 0xe2, 0xfc, 0xd2, 0xa2, 0xe4, 0xd4, 0x62, 0xfd, 0xdc, 0xc4, 0xbc, 0xc4, 0xf4, 0xd4, 0x94, 0xf8, + 0x82, 0x9c, 0xc4, 0xe4, 0xd4, 0xdc, 0xd4, 0xbc, 0x92, 0xf8, 0xb2, 0xcc, 0xd4, 0x72, 0xbd, 0x82, + 0xa2, 0xfc, 0x92, 0x7c, 0x21, 0x45, 0x88, 0x26, 0xbd, 0xc4, 0x94, 0x62, 0x3d, 0xb8, 0x7e, 0xbd, + 0x32, 0x03, 0x3d, 0xb8, 0x7e, 0x25, 0x6b, 0x2e, 0x11, 0x5f, 0x88, 0x11, 0x01, 0x30, 0x13, 0xc2, + 0x32, 0x53, 0xcb, 0x85, 0x94, 0xb9, 0x78, 0x61, 0x8a, 0xe2, 0xf3, 0x12, 0x73, 0x53, 0x25, 0x18, + 0x15, 0x18, 0x35, 0x38, 0x83, 0x78, 0x60, 0x82, 0x7e, 0x89, 0xb9, 0xa9, 0x4e, 0xf7, 0x18, 0xb9, + 0x54, 0x93, 0xf3, 0x73, 0xf5, 0x08, 0x5a, 0xe3, 0x24, 0x89, 0xcd, 0x92, 0x00, 0x90, 0x23, 0x03, + 0x18, 0xa3, 0xbc, 0xa0, 0xfa, 0xd3, 0xf3, 0x73, 0x12, 0xf3, 0xd2, 0xf5, 0xf2, 0x8b, 0xd2, 0xf5, + 0xd3, 0x53, 0xf3, 0xc0, 0x5e, 0x80, 0x79, 0xbb, 0x20, 0xb3, 0x18, 0x4f, 0x28, 0x58, 0xc3, 0x59, + 0x8b, 0x98, 0x98, 0xdd, 0x1d, 0x1d, 0x57, 0x31, 0x29, 0xba, 0x43, 0x8c, 0x74, 0x4c, 0x29, 0xd6, + 0x83, 0x30, 0x41, 0xac, 0x30, 0x03, 0xbd, 0x20, 0x98, 0xca, 0x53, 0x30, 0x35, 0x31, 0x8e, 0x29, + 0xc5, 0x31, 0x70, 0x35, 0x31, 0x61, 0x06, 0x31, 0x70, 0x35, 0x49, 0x6c, 0x60, 0x47, 0x18, 0x03, + 0x02, 0x00, 0x00, 0xff, 0xff, 0x07, 0x6a, 0x38, 0x21, 0x89, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/media_file.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/media_file.pb.go new file mode 100644 index 000000000..32383f7e0 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/media_file.pb.go @@ -0,0 +1,363 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/media_file.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A media file. +type MediaFile struct { + // The resource name of the media file. + // Media file resource names have the form: + // + // `customers/{customer_id}/mediaFiles/{media_file_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + // The ID of the media file. + Id *wrappers.Int64Value `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` + // Type of the media file. + Type enums.MediaTypeEnum_MediaType `protobuf:"varint,5,opt,name=type,proto3,enum=google.ads.googleads.v0.enums.MediaTypeEnum_MediaType" json:"type,omitempty"` + // The mime type of the media file. + MimeType enums.MimeTypeEnum_MimeType `protobuf:"varint,6,opt,name=mime_type,json=mimeType,proto3,enum=google.ads.googleads.v0.enums.MimeTypeEnum_MimeType" json:"mime_type,omitempty"` + // The URL of where the original media file was downloaded from (or a file + // name). + SourceUrl *wrappers.StringValue `protobuf:"bytes,7,opt,name=source_url,json=sourceUrl,proto3" json:"source_url,omitempty"` + // The name of the media file. The name can be used by clients to help + // identify previously uploaded media. + Name *wrappers.StringValue `protobuf:"bytes,8,opt,name=name,proto3" json:"name,omitempty"` + // The size of the media file in bytes. + FileSize *wrappers.Int64Value `protobuf:"bytes,9,opt,name=file_size,json=fileSize,proto3" json:"file_size,omitempty"` + // The specific type of the media file. + // + // Types that are valid to be assigned to Mediatype: + // *MediaFile_Image + // *MediaFile_MediaBundle + Mediatype isMediaFile_Mediatype `protobuf_oneof:"mediatype"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MediaFile) Reset() { *m = MediaFile{} } +func (m *MediaFile) String() string { return proto.CompactTextString(m) } +func (*MediaFile) ProtoMessage() {} +func (*MediaFile) Descriptor() ([]byte, []int) { + return fileDescriptor_media_file_8d950f5477004c2c, []int{0} +} +func (m *MediaFile) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MediaFile.Unmarshal(m, b) +} +func (m *MediaFile) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MediaFile.Marshal(b, m, deterministic) +} +func (dst *MediaFile) XXX_Merge(src proto.Message) { + xxx_messageInfo_MediaFile.Merge(dst, src) +} +func (m *MediaFile) XXX_Size() int { + return xxx_messageInfo_MediaFile.Size(m) +} +func (m *MediaFile) XXX_DiscardUnknown() { + xxx_messageInfo_MediaFile.DiscardUnknown(m) +} + +var xxx_messageInfo_MediaFile proto.InternalMessageInfo + +func (m *MediaFile) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func (m *MediaFile) GetId() *wrappers.Int64Value { + if m != nil { + return m.Id + } + return nil +} + +func (m *MediaFile) GetType() enums.MediaTypeEnum_MediaType { + if m != nil { + return m.Type + } + return enums.MediaTypeEnum_UNSPECIFIED +} + +func (m *MediaFile) GetMimeType() enums.MimeTypeEnum_MimeType { + if m != nil { + return m.MimeType + } + return enums.MimeTypeEnum_UNSPECIFIED +} + +func (m *MediaFile) GetSourceUrl() *wrappers.StringValue { + if m != nil { + return m.SourceUrl + } + return nil +} + +func (m *MediaFile) GetName() *wrappers.StringValue { + if m != nil { + return m.Name + } + return nil +} + +func (m *MediaFile) GetFileSize() *wrappers.Int64Value { + if m != nil { + return m.FileSize + } + return nil +} + +type isMediaFile_Mediatype interface { + isMediaFile_Mediatype() +} + +type MediaFile_Image struct { + Image *MediaImage `protobuf:"bytes,3,opt,name=image,proto3,oneof"` +} + +type MediaFile_MediaBundle struct { + MediaBundle *MediaBundle `protobuf:"bytes,4,opt,name=media_bundle,json=mediaBundle,proto3,oneof"` +} + +func (*MediaFile_Image) isMediaFile_Mediatype() {} + +func (*MediaFile_MediaBundle) isMediaFile_Mediatype() {} + +func (m *MediaFile) GetMediatype() isMediaFile_Mediatype { + if m != nil { + return m.Mediatype + } + return nil +} + +func (m *MediaFile) GetImage() *MediaImage { + if x, ok := m.GetMediatype().(*MediaFile_Image); ok { + return x.Image + } + return nil +} + +func (m *MediaFile) GetMediaBundle() *MediaBundle { + if x, ok := m.GetMediatype().(*MediaFile_MediaBundle); ok { + return x.MediaBundle + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*MediaFile) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _MediaFile_OneofMarshaler, _MediaFile_OneofUnmarshaler, _MediaFile_OneofSizer, []interface{}{ + (*MediaFile_Image)(nil), + (*MediaFile_MediaBundle)(nil), + } +} + +func _MediaFile_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*MediaFile) + // mediatype + switch x := m.Mediatype.(type) { + case *MediaFile_Image: + b.EncodeVarint(3<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Image); err != nil { + return err + } + case *MediaFile_MediaBundle: + b.EncodeVarint(4<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.MediaBundle); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("MediaFile.Mediatype has unexpected type %T", x) + } + return nil +} + +func _MediaFile_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*MediaFile) + switch tag { + case 3: // mediatype.image + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(MediaImage) + err := b.DecodeMessage(msg) + m.Mediatype = &MediaFile_Image{msg} + return true, err + case 4: // mediatype.media_bundle + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(MediaBundle) + err := b.DecodeMessage(msg) + m.Mediatype = &MediaFile_MediaBundle{msg} + return true, err + default: + return false, nil + } +} + +func _MediaFile_OneofSizer(msg proto.Message) (n int) { + m := msg.(*MediaFile) + // mediatype + switch x := m.Mediatype.(type) { + case *MediaFile_Image: + s := proto.Size(x.Image) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *MediaFile_MediaBundle: + s := proto.Size(x.MediaBundle) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// Encapsulates an Image. +type MediaImage struct { + // Raw image data. + Data *wrappers.BytesValue `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MediaImage) Reset() { *m = MediaImage{} } +func (m *MediaImage) String() string { return proto.CompactTextString(m) } +func (*MediaImage) ProtoMessage() {} +func (*MediaImage) Descriptor() ([]byte, []int) { + return fileDescriptor_media_file_8d950f5477004c2c, []int{1} +} +func (m *MediaImage) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MediaImage.Unmarshal(m, b) +} +func (m *MediaImage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MediaImage.Marshal(b, m, deterministic) +} +func (dst *MediaImage) XXX_Merge(src proto.Message) { + xxx_messageInfo_MediaImage.Merge(dst, src) +} +func (m *MediaImage) XXX_Size() int { + return xxx_messageInfo_MediaImage.Size(m) +} +func (m *MediaImage) XXX_DiscardUnknown() { + xxx_messageInfo_MediaImage.DiscardUnknown(m) +} + +var xxx_messageInfo_MediaImage proto.InternalMessageInfo + +func (m *MediaImage) GetData() *wrappers.BytesValue { + if m != nil { + return m.Data + } + return nil +} + +// Represents a ZIP archive media the content of which contains HTML5 assets. +type MediaBundle struct { + // Raw zipped data. + Data *wrappers.BytesValue `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MediaBundle) Reset() { *m = MediaBundle{} } +func (m *MediaBundle) String() string { return proto.CompactTextString(m) } +func (*MediaBundle) ProtoMessage() {} +func (*MediaBundle) Descriptor() ([]byte, []int) { + return fileDescriptor_media_file_8d950f5477004c2c, []int{2} +} +func (m *MediaBundle) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MediaBundle.Unmarshal(m, b) +} +func (m *MediaBundle) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MediaBundle.Marshal(b, m, deterministic) +} +func (dst *MediaBundle) XXX_Merge(src proto.Message) { + xxx_messageInfo_MediaBundle.Merge(dst, src) +} +func (m *MediaBundle) XXX_Size() int { + return xxx_messageInfo_MediaBundle.Size(m) +} +func (m *MediaBundle) XXX_DiscardUnknown() { + xxx_messageInfo_MediaBundle.DiscardUnknown(m) +} + +var xxx_messageInfo_MediaBundle proto.InternalMessageInfo + +func (m *MediaBundle) GetData() *wrappers.BytesValue { + if m != nil { + return m.Data + } + return nil +} + +func init() { + proto.RegisterType((*MediaFile)(nil), "google.ads.googleads.v0.resources.MediaFile") + proto.RegisterType((*MediaImage)(nil), "google.ads.googleads.v0.resources.MediaImage") + proto.RegisterType((*MediaBundle)(nil), "google.ads.googleads.v0.resources.MediaBundle") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/media_file.proto", fileDescriptor_media_file_8d950f5477004c2c) +} + +var fileDescriptor_media_file_8d950f5477004c2c = []byte{ + // 503 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0x5d, 0x6b, 0xd4, 0x40, + 0x14, 0x6d, 0xd2, 0xb4, 0x6e, 0x66, 0x6b, 0x1f, 0xe6, 0x29, 0x54, 0x91, 0xed, 0x8a, 0xb0, 0x20, + 0x9d, 0x84, 0xb5, 0x14, 0xa1, 0x28, 0x6c, 0xa0, 0xf6, 0x03, 0x94, 0x9a, 0xd5, 0x7d, 0x90, 0x85, + 0x65, 0xb6, 0xb9, 0x0d, 0x03, 0x99, 0x24, 0xcc, 0x24, 0x95, 0xed, 0xcf, 0xf1, 0xd1, 0x9f, 0xe2, + 0x83, 0x2f, 0xfe, 0x21, 0x99, 0x99, 0x24, 0x5b, 0xd0, 0x9a, 0xfa, 0x76, 0xef, 0xee, 0x39, 0xe7, + 0x9e, 0x73, 0x73, 0x13, 0x34, 0x4e, 0xf2, 0x3c, 0x49, 0xc1, 0xa7, 0xb1, 0xf4, 0x4d, 0xa9, 0xaa, + 0x9b, 0xc0, 0x17, 0x20, 0xf3, 0x4a, 0x5c, 0x81, 0xf4, 0x39, 0xc4, 0x8c, 0x2e, 0xae, 0x59, 0x0a, + 0xa4, 0x10, 0x79, 0x99, 0xe3, 0x7d, 0x03, 0x24, 0x34, 0x96, 0xa4, 0xe5, 0x90, 0x9b, 0x80, 0xb4, + 0x9c, 0x3d, 0x72, 0x9f, 0x2c, 0x64, 0x15, 0x6f, 0x24, 0xcb, 0x55, 0x51, 0x4b, 0xee, 0x1d, 0x74, + 0xe0, 0x19, 0x87, 0xbb, 0xf0, 0x67, 0x35, 0x5c, 0x77, 0xcb, 0xea, 0xda, 0xff, 0x2a, 0x68, 0x51, + 0x80, 0x90, 0xe6, 0xff, 0xe1, 0x4f, 0x07, 0xb9, 0xef, 0xd5, 0x8c, 0x77, 0x2c, 0x05, 0xfc, 0x1c, + 0x3d, 0x6e, 0x9c, 0x2d, 0x32, 0xca, 0xc1, 0xb3, 0x06, 0xd6, 0xc8, 0x8d, 0x76, 0x9a, 0x1f, 0x3f, + 0x50, 0x0e, 0xf8, 0x25, 0xb2, 0x59, 0xec, 0xd9, 0x03, 0x6b, 0xd4, 0x1f, 0x3f, 0xa9, 0xed, 0x93, + 0x46, 0x9f, 0x9c, 0x67, 0xe5, 0xd1, 0xe1, 0x8c, 0xa6, 0x15, 0x44, 0x36, 0x8b, 0xf1, 0x05, 0x72, + 0x94, 0x1b, 0x6f, 0x6b, 0x60, 0x8d, 0x76, 0xc7, 0x47, 0xe4, 0xbe, 0x85, 0x68, 0xf7, 0x44, 0x3b, + 0xf9, 0xb4, 0x2a, 0xe0, 0x24, 0xab, 0xf8, 0xba, 0x8b, 0xb4, 0x06, 0xfe, 0x88, 0xdc, 0x36, 0x9e, + 0xb7, 0xad, 0x05, 0x0f, 0xbb, 0x04, 0x19, 0x87, 0xb5, 0x5e, 0xdd, 0x44, 0x3d, 0x5e, 0x57, 0xf8, + 0x18, 0xa1, 0x3a, 0x6e, 0x25, 0x52, 0xef, 0x91, 0xce, 0xf4, 0xf4, 0x8f, 0x4c, 0xd3, 0x52, 0xb0, + 0x2c, 0x31, 0xa1, 0x5c, 0x83, 0xff, 0x2c, 0x52, 0x1c, 0x20, 0x47, 0x2f, 0xa9, 0xf7, 0x00, 0x9a, + 0x46, 0xe2, 0xd7, 0xc8, 0x55, 0xd7, 0xb1, 0x90, 0xec, 0x16, 0x3c, 0xb7, 0x7b, 0x83, 0x3d, 0x85, + 0x9e, 0xb2, 0x5b, 0xc0, 0x27, 0x68, 0x8b, 0x71, 0x9a, 0x80, 0xb7, 0xa9, 0x59, 0x07, 0xa4, 0xf3, + 0xb2, 0xcc, 0xfa, 0xce, 0x15, 0xe9, 0x6c, 0x23, 0x32, 0x6c, 0x3c, 0x45, 0x3b, 0xe6, 0xa2, 0x96, + 0x55, 0x16, 0xa7, 0xe0, 0x39, 0x5a, 0x8d, 0x3c, 0x54, 0x2d, 0xd4, 0xac, 0xb3, 0x8d, 0xa8, 0xcf, + 0xd7, 0x6d, 0xd8, 0x47, 0xae, 0x6e, 0xd5, 0x73, 0x19, 0xbe, 0x41, 0x68, 0x3d, 0x18, 0xfb, 0xc8, + 0x89, 0x69, 0x49, 0xf5, 0x1d, 0xfd, 0x2d, 0x6b, 0xb8, 0x2a, 0x41, 0xd6, 0x1b, 0x52, 0xc0, 0xe1, + 0x5b, 0xd4, 0xbf, 0x33, 0xe9, 0xbf, 0xf9, 0xe1, 0x2f, 0x0b, 0xbd, 0xb8, 0xca, 0x79, 0x77, 0xa0, + 0x70, 0xb7, 0x3d, 0xfb, 0x4b, 0xa5, 0x76, 0x69, 0x7d, 0xb9, 0xa8, 0x49, 0x49, 0x9e, 0xd2, 0x2c, + 0x21, 0xb9, 0x48, 0xfc, 0x04, 0x32, 0x3d, 0xab, 0x79, 0xd5, 0x0a, 0x26, 0xff, 0xf1, 0x01, 0x38, + 0x6e, 0xab, 0x6f, 0xf6, 0xe6, 0xe9, 0x64, 0xf2, 0xdd, 0xde, 0x3f, 0x35, 0x92, 0x93, 0x58, 0x12, + 0x53, 0xaa, 0x6a, 0x16, 0x90, 0xa8, 0x41, 0xfe, 0x68, 0x30, 0xf3, 0x49, 0x2c, 0xe7, 0x2d, 0x66, + 0x3e, 0x0b, 0xe6, 0x2d, 0x66, 0xb9, 0xad, 0x4d, 0xbc, 0xfa, 0x1d, 0x00, 0x00, 0xff, 0xff, 0x31, + 0x9f, 0xe1, 0xeb, 0x84, 0x04, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/parental_status_view.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/parental_status_view.pb.go new file mode 100644 index 000000000..7e96ebca4 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/parental_status_view.pb.go @@ -0,0 +1,89 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/parental_status_view.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A parental status view. +type ParentalStatusView struct { + // The resource name of the parental status view. + // Parental Status view resource names have the form: + // + // `customers/{customer_id}/parentalStatusViews/{ad_group_id}_{criterion_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ParentalStatusView) Reset() { *m = ParentalStatusView{} } +func (m *ParentalStatusView) String() string { return proto.CompactTextString(m) } +func (*ParentalStatusView) ProtoMessage() {} +func (*ParentalStatusView) Descriptor() ([]byte, []int) { + return fileDescriptor_parental_status_view_2b19e85dde9f176b, []int{0} +} +func (m *ParentalStatusView) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ParentalStatusView.Unmarshal(m, b) +} +func (m *ParentalStatusView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ParentalStatusView.Marshal(b, m, deterministic) +} +func (dst *ParentalStatusView) XXX_Merge(src proto.Message) { + xxx_messageInfo_ParentalStatusView.Merge(dst, src) +} +func (m *ParentalStatusView) XXX_Size() int { + return xxx_messageInfo_ParentalStatusView.Size(m) +} +func (m *ParentalStatusView) XXX_DiscardUnknown() { + xxx_messageInfo_ParentalStatusView.DiscardUnknown(m) +} + +var xxx_messageInfo_ParentalStatusView proto.InternalMessageInfo + +func (m *ParentalStatusView) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*ParentalStatusView)(nil), "google.ads.googleads.v0.resources.ParentalStatusView") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/parental_status_view.proto", fileDescriptor_parental_status_view_2b19e85dde9f176b) +} + +var fileDescriptor_parental_status_view_2b19e85dde9f176b = []byte{ + // 235 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x49, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xa2, 0xd4, + 0xe2, 0xfc, 0xd2, 0xa2, 0xe4, 0xd4, 0x62, 0xfd, 0x82, 0xc4, 0xa2, 0xd4, 0xbc, 0x92, 0xc4, 0x9c, + 0xf8, 0xe2, 0x92, 0xc4, 0x92, 0xd2, 0xe2, 0xf8, 0xb2, 0xcc, 0xd4, 0x72, 0xbd, 0x82, 0xa2, 0xfc, + 0x92, 0x7c, 0x21, 0x45, 0x88, 0x16, 0xbd, 0xc4, 0x94, 0x62, 0x3d, 0xb8, 0x6e, 0xbd, 0x32, 0x03, + 0x3d, 0xb8, 0x6e, 0x25, 0x4b, 0x2e, 0xa1, 0x00, 0xa8, 0x01, 0xc1, 0x60, 0xfd, 0x61, 0x99, 0xa9, + 0xe5, 0x42, 0xca, 0x5c, 0xbc, 0x30, 0x25, 0xf1, 0x79, 0x89, 0xb9, 0xa9, 0x12, 0x8c, 0x0a, 0x8c, + 0x1a, 0x9c, 0x41, 0x3c, 0x30, 0x41, 0xbf, 0xc4, 0xdc, 0x54, 0xa7, 0x3b, 0x8c, 0x5c, 0xaa, 0xc9, + 0xf9, 0xb9, 0x7a, 0x04, 0x2d, 0x71, 0x12, 0xc7, 0xb4, 0x22, 0x00, 0xe4, 0xc0, 0x00, 0xc6, 0x28, + 0x2f, 0xa8, 0xee, 0xf4, 0xfc, 0x9c, 0xc4, 0xbc, 0x74, 0xbd, 0xfc, 0xa2, 0x74, 0xfd, 0xf4, 0xd4, + 0x3c, 0xb0, 0xf3, 0x61, 0x1e, 0x2e, 0xc8, 0x2c, 0xc6, 0xe3, 0x7f, 0x6b, 0x38, 0x6b, 0x11, 0x13, + 0xb3, 0xbb, 0xa3, 0xe3, 0x2a, 0x26, 0x45, 0x77, 0x88, 0x91, 0x8e, 0x29, 0xc5, 0x7a, 0x10, 0x26, + 0x88, 0x15, 0x66, 0xa0, 0x17, 0x04, 0x53, 0x79, 0x0a, 0xa6, 0x26, 0xc6, 0x31, 0xa5, 0x38, 0x06, + 0xae, 0x26, 0x26, 0xcc, 0x20, 0x06, 0xae, 0x26, 0x89, 0x0d, 0xec, 0x08, 0x63, 0x40, 0x00, 0x00, + 0x00, 0xff, 0xff, 0x1e, 0x85, 0xdc, 0xc4, 0x83, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/payments_account.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/payments_account.pb.go new file mode 100644 index 000000000..6f4f7eb4f --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/payments_account.pb.go @@ -0,0 +1,148 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/payments_account.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A Payments account, which can be used to set up billing for an Ads customer. +type PaymentsAccount struct { + // The resource name of the Payments account. + // PaymentsAccount resource names have the form: + // + // `customers/{customer_id}/paymentsAccounts/ + // {payments_profile_id}_{payments_account_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + // A 16 digit ID used to identify a Payments account. + PaymentsAccountId *wrappers.StringValue `protobuf:"bytes,2,opt,name=payments_account_id,json=paymentsAccountId,proto3" json:"payments_account_id,omitempty"` + // The name of the Payments account. + Name *wrappers.StringValue `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + // The currency code of the Payments account. + // A subset of the currency codes derived from the ISO 4217 standard is + // supported. + CurrencyCode *wrappers.StringValue `protobuf:"bytes,4,opt,name=currency_code,json=currencyCode,proto3" json:"currency_code,omitempty"` + // A 12 digit ID used to identify the Payments profile associated with the + // Payments account. + PaymentsProfileId *wrappers.StringValue `protobuf:"bytes,5,opt,name=payments_profile_id,json=paymentsProfileId,proto3" json:"payments_profile_id,omitempty"` + // A secondary Payments profile ID present in uncommon situations, e.g. + // when a sequential liability agreement has been arranged. + SecondaryPaymentsProfileId *wrappers.StringValue `protobuf:"bytes,6,opt,name=secondary_payments_profile_id,json=secondaryPaymentsProfileId,proto3" json:"secondary_payments_profile_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PaymentsAccount) Reset() { *m = PaymentsAccount{} } +func (m *PaymentsAccount) String() string { return proto.CompactTextString(m) } +func (*PaymentsAccount) ProtoMessage() {} +func (*PaymentsAccount) Descriptor() ([]byte, []int) { + return fileDescriptor_payments_account_6fba7bb9981ca18f, []int{0} +} +func (m *PaymentsAccount) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PaymentsAccount.Unmarshal(m, b) +} +func (m *PaymentsAccount) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PaymentsAccount.Marshal(b, m, deterministic) +} +func (dst *PaymentsAccount) XXX_Merge(src proto.Message) { + xxx_messageInfo_PaymentsAccount.Merge(dst, src) +} +func (m *PaymentsAccount) XXX_Size() int { + return xxx_messageInfo_PaymentsAccount.Size(m) +} +func (m *PaymentsAccount) XXX_DiscardUnknown() { + xxx_messageInfo_PaymentsAccount.DiscardUnknown(m) +} + +var xxx_messageInfo_PaymentsAccount proto.InternalMessageInfo + +func (m *PaymentsAccount) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func (m *PaymentsAccount) GetPaymentsAccountId() *wrappers.StringValue { + if m != nil { + return m.PaymentsAccountId + } + return nil +} + +func (m *PaymentsAccount) GetName() *wrappers.StringValue { + if m != nil { + return m.Name + } + return nil +} + +func (m *PaymentsAccount) GetCurrencyCode() *wrappers.StringValue { + if m != nil { + return m.CurrencyCode + } + return nil +} + +func (m *PaymentsAccount) GetPaymentsProfileId() *wrappers.StringValue { + if m != nil { + return m.PaymentsProfileId + } + return nil +} + +func (m *PaymentsAccount) GetSecondaryPaymentsProfileId() *wrappers.StringValue { + if m != nil { + return m.SecondaryPaymentsProfileId + } + return nil +} + +func init() { + proto.RegisterType((*PaymentsAccount)(nil), "google.ads.googleads.v0.resources.PaymentsAccount") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/payments_account.proto", fileDescriptor_payments_account_6fba7bb9981ca18f) +} + +var fileDescriptor_payments_account_6fba7bb9981ca18f = []byte{ + // 362 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x92, 0xc1, 0x4a, 0xc3, 0x30, + 0x1c, 0xc6, 0xe9, 0x36, 0x07, 0xc6, 0x0d, 0xb1, 0x7a, 0x18, 0x43, 0x65, 0x53, 0x84, 0x9d, 0xd2, + 0xa2, 0x17, 0xc1, 0x53, 0xe7, 0x61, 0x4c, 0x44, 0xca, 0x84, 0x1d, 0xa4, 0x50, 0xb2, 0x24, 0x2b, + 0x85, 0x36, 0x09, 0x49, 0x3b, 0xd9, 0xeb, 0x78, 0x12, 0x1f, 0xc5, 0x37, 0xf0, 0x6d, 0xa4, 0x4d, + 0x53, 0xd8, 0x10, 0x9d, 0xb7, 0x8f, 0xf0, 0x7d, 0xbf, 0xef, 0xff, 0x27, 0x7f, 0x70, 0x1b, 0x71, + 0x1e, 0x25, 0xd4, 0x41, 0x44, 0x39, 0x5a, 0x16, 0x6a, 0xe5, 0x3a, 0x92, 0x2a, 0x9e, 0x4b, 0x4c, + 0x95, 0x23, 0xd0, 0x3a, 0xa5, 0x2c, 0x53, 0x21, 0xc2, 0x98, 0xe7, 0x2c, 0x83, 0x42, 0xf2, 0x8c, + 0xdb, 0x43, 0x6d, 0x87, 0x88, 0x28, 0x58, 0x27, 0xe1, 0xca, 0x85, 0x75, 0xb2, 0x7f, 0x5e, 0xc1, + 0xcb, 0xc0, 0x22, 0x5f, 0x3a, 0xaf, 0x12, 0x09, 0x41, 0xa5, 0xd2, 0x88, 0x8b, 0xf7, 0x26, 0x38, + 0xf4, 0x2b, 0xba, 0xa7, 0xe1, 0xf6, 0x25, 0xe8, 0x1a, 0x40, 0xc8, 0x50, 0x4a, 0x7b, 0xd6, 0xc0, + 0x1a, 0xed, 0xcf, 0x3a, 0xe6, 0xf1, 0x09, 0xa5, 0xd4, 0x7e, 0x04, 0xc7, 0xdb, 0x53, 0x85, 0x31, + 0xe9, 0x35, 0x06, 0xd6, 0xe8, 0xe0, 0xfa, 0xb4, 0x1a, 0x07, 0x9a, 0x5a, 0xf8, 0x9c, 0xc9, 0x98, + 0x45, 0x73, 0x94, 0xe4, 0x74, 0x76, 0x24, 0x36, 0x0b, 0xa7, 0xc4, 0x76, 0x41, 0xab, 0x6c, 0x6a, + 0xee, 0x10, 0x2f, 0x9d, 0xb6, 0x07, 0xba, 0x38, 0x97, 0x92, 0x32, 0xbc, 0x0e, 0x31, 0x27, 0xb4, + 0xd7, 0xda, 0x21, 0xda, 0x31, 0x91, 0x7b, 0x4e, 0x36, 0x57, 0x10, 0x92, 0x2f, 0xe3, 0x84, 0x16, + 0x2b, 0xec, 0xfd, 0x67, 0x05, 0x5f, 0xe7, 0xa6, 0xc4, 0x0e, 0xc1, 0x99, 0xa2, 0x98, 0x33, 0x82, + 0xe4, 0x3a, 0xfc, 0x89, 0xdb, 0xde, 0x81, 0xdb, 0xaf, 0x11, 0xfe, 0x76, 0xc1, 0xf8, 0xcb, 0x02, + 0x57, 0x98, 0xa7, 0xf0, 0xcf, 0x4f, 0x1f, 0x9f, 0x6c, 0xfd, 0xa8, 0x5f, 0x54, 0xf9, 0xd6, 0xcb, + 0x43, 0x15, 0x8d, 0x78, 0x82, 0x58, 0x04, 0xb9, 0x8c, 0x9c, 0x88, 0xb2, 0x72, 0x10, 0x73, 0x79, + 0x22, 0x56, 0xbf, 0x1c, 0xe2, 0x5d, 0xad, 0xde, 0x1a, 0xcd, 0x89, 0xe7, 0x7d, 0x34, 0x86, 0x13, + 0x8d, 0xf4, 0x88, 0x82, 0x5a, 0x16, 0x6a, 0xee, 0xc2, 0x99, 0x71, 0x7e, 0x1a, 0x4f, 0xe0, 0x11, + 0x15, 0xd4, 0x9e, 0x60, 0xee, 0x06, 0xb5, 0x67, 0xd1, 0x2e, 0x87, 0xb8, 0xf9, 0x0e, 0x00, 0x00, + 0xff, 0xff, 0x08, 0xb0, 0x54, 0xe9, 0x0c, 0x03, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/product_group_view.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/product_group_view.pb.go new file mode 100644 index 000000000..f8f51fb47 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/product_group_view.pb.go @@ -0,0 +1,89 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/product_group_view.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A product group view. +type ProductGroupView struct { + // The resource name of the product group view. + // Product group view resource names have the form: + // + // `customers/{customer_id}/productGroupViews/{ad_group_id}_{criterion_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ProductGroupView) Reset() { *m = ProductGroupView{} } +func (m *ProductGroupView) String() string { return proto.CompactTextString(m) } +func (*ProductGroupView) ProtoMessage() {} +func (*ProductGroupView) Descriptor() ([]byte, []int) { + return fileDescriptor_product_group_view_bd435ece1bc80168, []int{0} +} +func (m *ProductGroupView) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ProductGroupView.Unmarshal(m, b) +} +func (m *ProductGroupView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ProductGroupView.Marshal(b, m, deterministic) +} +func (dst *ProductGroupView) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProductGroupView.Merge(dst, src) +} +func (m *ProductGroupView) XXX_Size() int { + return xxx_messageInfo_ProductGroupView.Size(m) +} +func (m *ProductGroupView) XXX_DiscardUnknown() { + xxx_messageInfo_ProductGroupView.DiscardUnknown(m) +} + +var xxx_messageInfo_ProductGroupView proto.InternalMessageInfo + +func (m *ProductGroupView) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*ProductGroupView)(nil), "google.ads.googleads.v0.resources.ProductGroupView") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/product_group_view.proto", fileDescriptor_product_group_view_bd435ece1bc80168) +} + +var fileDescriptor_product_group_view_bd435ece1bc80168 = []byte{ + // 232 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x4a, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xa2, 0xd4, + 0xe2, 0xfc, 0xd2, 0xa2, 0xe4, 0xd4, 0x62, 0xfd, 0x82, 0xa2, 0xfc, 0x94, 0xd2, 0xe4, 0x92, 0xf8, + 0xf4, 0xa2, 0xfc, 0xd2, 0x82, 0xf8, 0xb2, 0xcc, 0xd4, 0x72, 0xbd, 0x82, 0xa2, 0xfc, 0x92, 0x7c, + 0x21, 0x45, 0x88, 0x06, 0xbd, 0xc4, 0x94, 0x62, 0x3d, 0xb8, 0x5e, 0xbd, 0x32, 0x03, 0x3d, 0xb8, + 0x5e, 0x25, 0x73, 0x2e, 0x81, 0x00, 0x88, 0x76, 0x77, 0x90, 0xee, 0xb0, 0xcc, 0xd4, 0x72, 0x21, + 0x65, 0x2e, 0x5e, 0x98, 0x82, 0xf8, 0xbc, 0xc4, 0xdc, 0x54, 0x09, 0x46, 0x05, 0x46, 0x0d, 0xce, + 0x20, 0x1e, 0x98, 0xa0, 0x5f, 0x62, 0x6e, 0xaa, 0xd3, 0x2d, 0x46, 0x2e, 0xd5, 0xe4, 0xfc, 0x5c, + 0x3d, 0x82, 0x56, 0x38, 0x89, 0xa2, 0x5b, 0x10, 0x00, 0x72, 0x5c, 0x00, 0x63, 0x94, 0x17, 0x54, + 0x6f, 0x7a, 0x7e, 0x4e, 0x62, 0x5e, 0xba, 0x5e, 0x7e, 0x51, 0xba, 0x7e, 0x7a, 0x6a, 0x1e, 0xd8, + 0xe9, 0x30, 0xaf, 0x16, 0x64, 0x16, 0xe3, 0xf1, 0xb9, 0x35, 0x9c, 0xb5, 0x88, 0x89, 0xd9, 0xdd, + 0xd1, 0x71, 0x15, 0x93, 0xa2, 0x3b, 0xc4, 0x48, 0xc7, 0x94, 0x62, 0x3d, 0x08, 0x13, 0xc4, 0x0a, + 0x33, 0xd0, 0x0b, 0x82, 0xa9, 0x3c, 0x05, 0x53, 0x13, 0xe3, 0x98, 0x52, 0x1c, 0x03, 0x57, 0x13, + 0x13, 0x66, 0x10, 0x03, 0x57, 0x93, 0xc4, 0x06, 0x76, 0x84, 0x31, 0x20, 0x00, 0x00, 0xff, 0xff, + 0x75, 0xea, 0x51, 0x91, 0x7d, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/recommendation.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/recommendation.pb.go new file mode 100644 index 000000000..f02a7e192 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/recommendation.pb.go @@ -0,0 +1,1267 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/recommendation.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import common "google.golang.org/genproto/googleapis/ads/googleads/v0/common" +import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A recommendation. +type Recommendation struct { + // The resource name of the recommendation. + // + // `customers/{customer_id}/recommendations/{recommendation_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + // The type of recommendation. + Type enums.RecommendationTypeEnum_RecommendationType `protobuf:"varint,2,opt,name=type,proto3,enum=google.ads.googleads.v0.enums.RecommendationTypeEnum_RecommendationType" json:"type,omitempty"` + // The impact on account performance as a result of applying the + // recommendation. + Impact *Recommendation_RecommendationImpact `protobuf:"bytes,3,opt,name=impact,proto3" json:"impact,omitempty"` + // The budget targeted by this recommendation. This will be set only when + // the recommendation affects a single campaign budget. + // + // This field will be set for the following recommendation types: + // CAMPAIGN_BUDGET + CampaignBudget *wrappers.StringValue `protobuf:"bytes,5,opt,name=campaign_budget,json=campaignBudget,proto3" json:"campaign_budget,omitempty"` + // The campaign targeted by this recommendation. This will be set only when + // the recommendation affects a single campaign. + // + // This field will be set for the following recommendation types: + // ENHANCED_CPC_OPT_IN, KEYWORD, MAXIMIZE_CLICKS_OPT_IN, + // MAXIMIZE_CONVERSIONS_OPT_IN, OPTIMIZE_AD_ROTATION, SEARCH_PARTNERS_OPT_IN, + // TARGET_CPA_OPT_IN, TEXT_AD + Campaign *wrappers.StringValue `protobuf:"bytes,6,opt,name=campaign,proto3" json:"campaign,omitempty"` + // The ad group targeted by this recommendation. This will be set only when + // the recommendation affects a single ad group. + // + // This field will be set for the following recommendation types: + // KEYWORD, OPTIMIZE_AD_ROTATION, TEXT_AD + AdGroup *wrappers.StringValue `protobuf:"bytes,7,opt,name=ad_group,json=adGroup,proto3" json:"ad_group,omitempty"` + // Whether the recommendation is dismissed or not. + Dismissed *wrappers.BoolValue `protobuf:"bytes,13,opt,name=dismissed,proto3" json:"dismissed,omitempty"` + // The details of recommendation. + // + // Types that are valid to be assigned to Recommendation: + // *Recommendation_CampaignBudgetRecommendation_ + // *Recommendation_KeywordRecommendation_ + // *Recommendation_TextAdRecommendation_ + // *Recommendation_TargetCpaOptInRecommendation_ + // *Recommendation_MaximizeConversionsOptInRecommendation_ + // *Recommendation_EnhancedCpcOptInRecommendation_ + // *Recommendation_SearchPartnersOptInRecommendation_ + // *Recommendation_MaximizeClicksOptInRecommendation_ + // *Recommendation_OptimizeAdRotationRecommendation_ + Recommendation isRecommendation_Recommendation `protobuf_oneof:"recommendation"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Recommendation) Reset() { *m = Recommendation{} } +func (m *Recommendation) String() string { return proto.CompactTextString(m) } +func (*Recommendation) ProtoMessage() {} +func (*Recommendation) Descriptor() ([]byte, []int) { + return fileDescriptor_recommendation_eee397a9522b69a5, []int{0} +} +func (m *Recommendation) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Recommendation.Unmarshal(m, b) +} +func (m *Recommendation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Recommendation.Marshal(b, m, deterministic) +} +func (dst *Recommendation) XXX_Merge(src proto.Message) { + xxx_messageInfo_Recommendation.Merge(dst, src) +} +func (m *Recommendation) XXX_Size() int { + return xxx_messageInfo_Recommendation.Size(m) +} +func (m *Recommendation) XXX_DiscardUnknown() { + xxx_messageInfo_Recommendation.DiscardUnknown(m) +} + +var xxx_messageInfo_Recommendation proto.InternalMessageInfo + +func (m *Recommendation) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func (m *Recommendation) GetType() enums.RecommendationTypeEnum_RecommendationType { + if m != nil { + return m.Type + } + return enums.RecommendationTypeEnum_UNSPECIFIED +} + +func (m *Recommendation) GetImpact() *Recommendation_RecommendationImpact { + if m != nil { + return m.Impact + } + return nil +} + +func (m *Recommendation) GetCampaignBudget() *wrappers.StringValue { + if m != nil { + return m.CampaignBudget + } + return nil +} + +func (m *Recommendation) GetCampaign() *wrappers.StringValue { + if m != nil { + return m.Campaign + } + return nil +} + +func (m *Recommendation) GetAdGroup() *wrappers.StringValue { + if m != nil { + return m.AdGroup + } + return nil +} + +func (m *Recommendation) GetDismissed() *wrappers.BoolValue { + if m != nil { + return m.Dismissed + } + return nil +} + +type isRecommendation_Recommendation interface { + isRecommendation_Recommendation() +} + +type Recommendation_CampaignBudgetRecommendation_ struct { + CampaignBudgetRecommendation *Recommendation_CampaignBudgetRecommendation `protobuf:"bytes,4,opt,name=campaign_budget_recommendation,json=campaignBudgetRecommendation,proto3,oneof"` +} + +type Recommendation_KeywordRecommendation_ struct { + KeywordRecommendation *Recommendation_KeywordRecommendation `protobuf:"bytes,8,opt,name=keyword_recommendation,json=keywordRecommendation,proto3,oneof"` +} + +type Recommendation_TextAdRecommendation_ struct { + TextAdRecommendation *Recommendation_TextAdRecommendation `protobuf:"bytes,9,opt,name=text_ad_recommendation,json=textAdRecommendation,proto3,oneof"` +} + +type Recommendation_TargetCpaOptInRecommendation_ struct { + TargetCpaOptInRecommendation *Recommendation_TargetCpaOptInRecommendation `protobuf:"bytes,10,opt,name=target_cpa_opt_in_recommendation,json=targetCpaOptInRecommendation,proto3,oneof"` +} + +type Recommendation_MaximizeConversionsOptInRecommendation_ struct { + MaximizeConversionsOptInRecommendation *Recommendation_MaximizeConversionsOptInRecommendation `protobuf:"bytes,11,opt,name=maximize_conversions_opt_in_recommendation,json=maximizeConversionsOptInRecommendation,proto3,oneof"` +} + +type Recommendation_EnhancedCpcOptInRecommendation_ struct { + EnhancedCpcOptInRecommendation *Recommendation_EnhancedCpcOptInRecommendation `protobuf:"bytes,12,opt,name=enhanced_cpc_opt_in_recommendation,json=enhancedCpcOptInRecommendation,proto3,oneof"` +} + +type Recommendation_SearchPartnersOptInRecommendation_ struct { + SearchPartnersOptInRecommendation *Recommendation_SearchPartnersOptInRecommendation `protobuf:"bytes,14,opt,name=search_partners_opt_in_recommendation,json=searchPartnersOptInRecommendation,proto3,oneof"` +} + +type Recommendation_MaximizeClicksOptInRecommendation_ struct { + MaximizeClicksOptInRecommendation *Recommendation_MaximizeClicksOptInRecommendation `protobuf:"bytes,15,opt,name=maximize_clicks_opt_in_recommendation,json=maximizeClicksOptInRecommendation,proto3,oneof"` +} + +type Recommendation_OptimizeAdRotationRecommendation_ struct { + OptimizeAdRotationRecommendation *Recommendation_OptimizeAdRotationRecommendation `protobuf:"bytes,16,opt,name=optimize_ad_rotation_recommendation,json=optimizeAdRotationRecommendation,proto3,oneof"` +} + +func (*Recommendation_CampaignBudgetRecommendation_) isRecommendation_Recommendation() {} + +func (*Recommendation_KeywordRecommendation_) isRecommendation_Recommendation() {} + +func (*Recommendation_TextAdRecommendation_) isRecommendation_Recommendation() {} + +func (*Recommendation_TargetCpaOptInRecommendation_) isRecommendation_Recommendation() {} + +func (*Recommendation_MaximizeConversionsOptInRecommendation_) isRecommendation_Recommendation() {} + +func (*Recommendation_EnhancedCpcOptInRecommendation_) isRecommendation_Recommendation() {} + +func (*Recommendation_SearchPartnersOptInRecommendation_) isRecommendation_Recommendation() {} + +func (*Recommendation_MaximizeClicksOptInRecommendation_) isRecommendation_Recommendation() {} + +func (*Recommendation_OptimizeAdRotationRecommendation_) isRecommendation_Recommendation() {} + +func (m *Recommendation) GetRecommendation() isRecommendation_Recommendation { + if m != nil { + return m.Recommendation + } + return nil +} + +func (m *Recommendation) GetCampaignBudgetRecommendation() *Recommendation_CampaignBudgetRecommendation { + if x, ok := m.GetRecommendation().(*Recommendation_CampaignBudgetRecommendation_); ok { + return x.CampaignBudgetRecommendation + } + return nil +} + +func (m *Recommendation) GetKeywordRecommendation() *Recommendation_KeywordRecommendation { + if x, ok := m.GetRecommendation().(*Recommendation_KeywordRecommendation_); ok { + return x.KeywordRecommendation + } + return nil +} + +func (m *Recommendation) GetTextAdRecommendation() *Recommendation_TextAdRecommendation { + if x, ok := m.GetRecommendation().(*Recommendation_TextAdRecommendation_); ok { + return x.TextAdRecommendation + } + return nil +} + +func (m *Recommendation) GetTargetCpaOptInRecommendation() *Recommendation_TargetCpaOptInRecommendation { + if x, ok := m.GetRecommendation().(*Recommendation_TargetCpaOptInRecommendation_); ok { + return x.TargetCpaOptInRecommendation + } + return nil +} + +func (m *Recommendation) GetMaximizeConversionsOptInRecommendation() *Recommendation_MaximizeConversionsOptInRecommendation { + if x, ok := m.GetRecommendation().(*Recommendation_MaximizeConversionsOptInRecommendation_); ok { + return x.MaximizeConversionsOptInRecommendation + } + return nil +} + +func (m *Recommendation) GetEnhancedCpcOptInRecommendation() *Recommendation_EnhancedCpcOptInRecommendation { + if x, ok := m.GetRecommendation().(*Recommendation_EnhancedCpcOptInRecommendation_); ok { + return x.EnhancedCpcOptInRecommendation + } + return nil +} + +func (m *Recommendation) GetSearchPartnersOptInRecommendation() *Recommendation_SearchPartnersOptInRecommendation { + if x, ok := m.GetRecommendation().(*Recommendation_SearchPartnersOptInRecommendation_); ok { + return x.SearchPartnersOptInRecommendation + } + return nil +} + +func (m *Recommendation) GetMaximizeClicksOptInRecommendation() *Recommendation_MaximizeClicksOptInRecommendation { + if x, ok := m.GetRecommendation().(*Recommendation_MaximizeClicksOptInRecommendation_); ok { + return x.MaximizeClicksOptInRecommendation + } + return nil +} + +func (m *Recommendation) GetOptimizeAdRotationRecommendation() *Recommendation_OptimizeAdRotationRecommendation { + if x, ok := m.GetRecommendation().(*Recommendation_OptimizeAdRotationRecommendation_); ok { + return x.OptimizeAdRotationRecommendation + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*Recommendation) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _Recommendation_OneofMarshaler, _Recommendation_OneofUnmarshaler, _Recommendation_OneofSizer, []interface{}{ + (*Recommendation_CampaignBudgetRecommendation_)(nil), + (*Recommendation_KeywordRecommendation_)(nil), + (*Recommendation_TextAdRecommendation_)(nil), + (*Recommendation_TargetCpaOptInRecommendation_)(nil), + (*Recommendation_MaximizeConversionsOptInRecommendation_)(nil), + (*Recommendation_EnhancedCpcOptInRecommendation_)(nil), + (*Recommendation_SearchPartnersOptInRecommendation_)(nil), + (*Recommendation_MaximizeClicksOptInRecommendation_)(nil), + (*Recommendation_OptimizeAdRotationRecommendation_)(nil), + } +} + +func _Recommendation_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*Recommendation) + // recommendation + switch x := m.Recommendation.(type) { + case *Recommendation_CampaignBudgetRecommendation_: + b.EncodeVarint(4<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.CampaignBudgetRecommendation); err != nil { + return err + } + case *Recommendation_KeywordRecommendation_: + b.EncodeVarint(8<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.KeywordRecommendation); err != nil { + return err + } + case *Recommendation_TextAdRecommendation_: + b.EncodeVarint(9<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.TextAdRecommendation); err != nil { + return err + } + case *Recommendation_TargetCpaOptInRecommendation_: + b.EncodeVarint(10<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.TargetCpaOptInRecommendation); err != nil { + return err + } + case *Recommendation_MaximizeConversionsOptInRecommendation_: + b.EncodeVarint(11<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.MaximizeConversionsOptInRecommendation); err != nil { + return err + } + case *Recommendation_EnhancedCpcOptInRecommendation_: + b.EncodeVarint(12<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.EnhancedCpcOptInRecommendation); err != nil { + return err + } + case *Recommendation_SearchPartnersOptInRecommendation_: + b.EncodeVarint(14<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.SearchPartnersOptInRecommendation); err != nil { + return err + } + case *Recommendation_MaximizeClicksOptInRecommendation_: + b.EncodeVarint(15<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.MaximizeClicksOptInRecommendation); err != nil { + return err + } + case *Recommendation_OptimizeAdRotationRecommendation_: + b.EncodeVarint(16<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.OptimizeAdRotationRecommendation); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("Recommendation.Recommendation has unexpected type %T", x) + } + return nil +} + +func _Recommendation_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*Recommendation) + switch tag { + case 4: // recommendation.campaign_budget_recommendation + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(Recommendation_CampaignBudgetRecommendation) + err := b.DecodeMessage(msg) + m.Recommendation = &Recommendation_CampaignBudgetRecommendation_{msg} + return true, err + case 8: // recommendation.keyword_recommendation + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(Recommendation_KeywordRecommendation) + err := b.DecodeMessage(msg) + m.Recommendation = &Recommendation_KeywordRecommendation_{msg} + return true, err + case 9: // recommendation.text_ad_recommendation + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(Recommendation_TextAdRecommendation) + err := b.DecodeMessage(msg) + m.Recommendation = &Recommendation_TextAdRecommendation_{msg} + return true, err + case 10: // recommendation.target_cpa_opt_in_recommendation + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(Recommendation_TargetCpaOptInRecommendation) + err := b.DecodeMessage(msg) + m.Recommendation = &Recommendation_TargetCpaOptInRecommendation_{msg} + return true, err + case 11: // recommendation.maximize_conversions_opt_in_recommendation + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(Recommendation_MaximizeConversionsOptInRecommendation) + err := b.DecodeMessage(msg) + m.Recommendation = &Recommendation_MaximizeConversionsOptInRecommendation_{msg} + return true, err + case 12: // recommendation.enhanced_cpc_opt_in_recommendation + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(Recommendation_EnhancedCpcOptInRecommendation) + err := b.DecodeMessage(msg) + m.Recommendation = &Recommendation_EnhancedCpcOptInRecommendation_{msg} + return true, err + case 14: // recommendation.search_partners_opt_in_recommendation + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(Recommendation_SearchPartnersOptInRecommendation) + err := b.DecodeMessage(msg) + m.Recommendation = &Recommendation_SearchPartnersOptInRecommendation_{msg} + return true, err + case 15: // recommendation.maximize_clicks_opt_in_recommendation + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(Recommendation_MaximizeClicksOptInRecommendation) + err := b.DecodeMessage(msg) + m.Recommendation = &Recommendation_MaximizeClicksOptInRecommendation_{msg} + return true, err + case 16: // recommendation.optimize_ad_rotation_recommendation + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(Recommendation_OptimizeAdRotationRecommendation) + err := b.DecodeMessage(msg) + m.Recommendation = &Recommendation_OptimizeAdRotationRecommendation_{msg} + return true, err + default: + return false, nil + } +} + +func _Recommendation_OneofSizer(msg proto.Message) (n int) { + m := msg.(*Recommendation) + // recommendation + switch x := m.Recommendation.(type) { + case *Recommendation_CampaignBudgetRecommendation_: + s := proto.Size(x.CampaignBudgetRecommendation) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *Recommendation_KeywordRecommendation_: + s := proto.Size(x.KeywordRecommendation) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *Recommendation_TextAdRecommendation_: + s := proto.Size(x.TextAdRecommendation) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *Recommendation_TargetCpaOptInRecommendation_: + s := proto.Size(x.TargetCpaOptInRecommendation) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *Recommendation_MaximizeConversionsOptInRecommendation_: + s := proto.Size(x.MaximizeConversionsOptInRecommendation) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *Recommendation_EnhancedCpcOptInRecommendation_: + s := proto.Size(x.EnhancedCpcOptInRecommendation) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *Recommendation_SearchPartnersOptInRecommendation_: + s := proto.Size(x.SearchPartnersOptInRecommendation) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *Recommendation_MaximizeClicksOptInRecommendation_: + s := proto.Size(x.MaximizeClicksOptInRecommendation) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *Recommendation_OptimizeAdRotationRecommendation_: + s := proto.Size(x.OptimizeAdRotationRecommendation) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// The impact of making the change as described in the recommendation. +// Some types of recommendations may not have impact information. +type Recommendation_RecommendationImpact struct { + // Base metrics at the time the recommendation was generated. + BaseMetrics *Recommendation_RecommendationMetrics `protobuf:"bytes,1,opt,name=base_metrics,json=baseMetrics,proto3" json:"base_metrics,omitempty"` + // Estimated metrics if the recommendation is applied. + PotentialMetrics *Recommendation_RecommendationMetrics `protobuf:"bytes,2,opt,name=potential_metrics,json=potentialMetrics,proto3" json:"potential_metrics,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Recommendation_RecommendationImpact) Reset() { *m = Recommendation_RecommendationImpact{} } +func (m *Recommendation_RecommendationImpact) String() string { return proto.CompactTextString(m) } +func (*Recommendation_RecommendationImpact) ProtoMessage() {} +func (*Recommendation_RecommendationImpact) Descriptor() ([]byte, []int) { + return fileDescriptor_recommendation_eee397a9522b69a5, []int{0, 0} +} +func (m *Recommendation_RecommendationImpact) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Recommendation_RecommendationImpact.Unmarshal(m, b) +} +func (m *Recommendation_RecommendationImpact) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Recommendation_RecommendationImpact.Marshal(b, m, deterministic) +} +func (dst *Recommendation_RecommendationImpact) XXX_Merge(src proto.Message) { + xxx_messageInfo_Recommendation_RecommendationImpact.Merge(dst, src) +} +func (m *Recommendation_RecommendationImpact) XXX_Size() int { + return xxx_messageInfo_Recommendation_RecommendationImpact.Size(m) +} +func (m *Recommendation_RecommendationImpact) XXX_DiscardUnknown() { + xxx_messageInfo_Recommendation_RecommendationImpact.DiscardUnknown(m) +} + +var xxx_messageInfo_Recommendation_RecommendationImpact proto.InternalMessageInfo + +func (m *Recommendation_RecommendationImpact) GetBaseMetrics() *Recommendation_RecommendationMetrics { + if m != nil { + return m.BaseMetrics + } + return nil +} + +func (m *Recommendation_RecommendationImpact) GetPotentialMetrics() *Recommendation_RecommendationMetrics { + if m != nil { + return m.PotentialMetrics + } + return nil +} + +// Weekly account performance metrics. For some recommendation types, these +// are averaged over the past 90-day period and hence can be fractional. +type Recommendation_RecommendationMetrics struct { + // Number of ad impressions. + Impressions *wrappers.DoubleValue `protobuf:"bytes,1,opt,name=impressions,proto3" json:"impressions,omitempty"` + // Number of ad clicks. + Clicks *wrappers.DoubleValue `protobuf:"bytes,2,opt,name=clicks,proto3" json:"clicks,omitempty"` + // Cost (in micros) for advertising, in the local currency for the account. + CostMicros *wrappers.Int64Value `protobuf:"bytes,3,opt,name=cost_micros,json=costMicros,proto3" json:"cost_micros,omitempty"` + // Number of conversions. + Conversions *wrappers.DoubleValue `protobuf:"bytes,4,opt,name=conversions,proto3" json:"conversions,omitempty"` + // Number of video views for a video ad campaign. + VideoViews *wrappers.DoubleValue `protobuf:"bytes,5,opt,name=video_views,json=videoViews,proto3" json:"video_views,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Recommendation_RecommendationMetrics) Reset() { *m = Recommendation_RecommendationMetrics{} } +func (m *Recommendation_RecommendationMetrics) String() string { return proto.CompactTextString(m) } +func (*Recommendation_RecommendationMetrics) ProtoMessage() {} +func (*Recommendation_RecommendationMetrics) Descriptor() ([]byte, []int) { + return fileDescriptor_recommendation_eee397a9522b69a5, []int{0, 1} +} +func (m *Recommendation_RecommendationMetrics) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Recommendation_RecommendationMetrics.Unmarshal(m, b) +} +func (m *Recommendation_RecommendationMetrics) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Recommendation_RecommendationMetrics.Marshal(b, m, deterministic) +} +func (dst *Recommendation_RecommendationMetrics) XXX_Merge(src proto.Message) { + xxx_messageInfo_Recommendation_RecommendationMetrics.Merge(dst, src) +} +func (m *Recommendation_RecommendationMetrics) XXX_Size() int { + return xxx_messageInfo_Recommendation_RecommendationMetrics.Size(m) +} +func (m *Recommendation_RecommendationMetrics) XXX_DiscardUnknown() { + xxx_messageInfo_Recommendation_RecommendationMetrics.DiscardUnknown(m) +} + +var xxx_messageInfo_Recommendation_RecommendationMetrics proto.InternalMessageInfo + +func (m *Recommendation_RecommendationMetrics) GetImpressions() *wrappers.DoubleValue { + if m != nil { + return m.Impressions + } + return nil +} + +func (m *Recommendation_RecommendationMetrics) GetClicks() *wrappers.DoubleValue { + if m != nil { + return m.Clicks + } + return nil +} + +func (m *Recommendation_RecommendationMetrics) GetCostMicros() *wrappers.Int64Value { + if m != nil { + return m.CostMicros + } + return nil +} + +func (m *Recommendation_RecommendationMetrics) GetConversions() *wrappers.DoubleValue { + if m != nil { + return m.Conversions + } + return nil +} + +func (m *Recommendation_RecommendationMetrics) GetVideoViews() *wrappers.DoubleValue { + if m != nil { + return m.VideoViews + } + return nil +} + +// The budget recommendation for budget constrained campaigns. +type Recommendation_CampaignBudgetRecommendation struct { + // The current budget amount in micros. + CurrentBudgetAmountMicros *wrappers.Int64Value `protobuf:"bytes,1,opt,name=current_budget_amount_micros,json=currentBudgetAmountMicros,proto3" json:"current_budget_amount_micros,omitempty"` + // The recommended budget amount in micros. + RecommendedBudgetAmountMicros *wrappers.Int64Value `protobuf:"bytes,2,opt,name=recommended_budget_amount_micros,json=recommendedBudgetAmountMicros,proto3" json:"recommended_budget_amount_micros,omitempty"` + // The budget amounts and associated impact estimates for some values of + // possible budget amounts. + BudgetOptions []*Recommendation_CampaignBudgetRecommendation_CampaignBudgetRecommendationOption `protobuf:"bytes,3,rep,name=budget_options,json=budgetOptions,proto3" json:"budget_options,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Recommendation_CampaignBudgetRecommendation) Reset() { + *m = Recommendation_CampaignBudgetRecommendation{} +} +func (m *Recommendation_CampaignBudgetRecommendation) String() string { + return proto.CompactTextString(m) +} +func (*Recommendation_CampaignBudgetRecommendation) ProtoMessage() {} +func (*Recommendation_CampaignBudgetRecommendation) Descriptor() ([]byte, []int) { + return fileDescriptor_recommendation_eee397a9522b69a5, []int{0, 2} +} +func (m *Recommendation_CampaignBudgetRecommendation) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Recommendation_CampaignBudgetRecommendation.Unmarshal(m, b) +} +func (m *Recommendation_CampaignBudgetRecommendation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Recommendation_CampaignBudgetRecommendation.Marshal(b, m, deterministic) +} +func (dst *Recommendation_CampaignBudgetRecommendation) XXX_Merge(src proto.Message) { + xxx_messageInfo_Recommendation_CampaignBudgetRecommendation.Merge(dst, src) +} +func (m *Recommendation_CampaignBudgetRecommendation) XXX_Size() int { + return xxx_messageInfo_Recommendation_CampaignBudgetRecommendation.Size(m) +} +func (m *Recommendation_CampaignBudgetRecommendation) XXX_DiscardUnknown() { + xxx_messageInfo_Recommendation_CampaignBudgetRecommendation.DiscardUnknown(m) +} + +var xxx_messageInfo_Recommendation_CampaignBudgetRecommendation proto.InternalMessageInfo + +func (m *Recommendation_CampaignBudgetRecommendation) GetCurrentBudgetAmountMicros() *wrappers.Int64Value { + if m != nil { + return m.CurrentBudgetAmountMicros + } + return nil +} + +func (m *Recommendation_CampaignBudgetRecommendation) GetRecommendedBudgetAmountMicros() *wrappers.Int64Value { + if m != nil { + return m.RecommendedBudgetAmountMicros + } + return nil +} + +func (m *Recommendation_CampaignBudgetRecommendation) GetBudgetOptions() []*Recommendation_CampaignBudgetRecommendation_CampaignBudgetRecommendationOption { + if m != nil { + return m.BudgetOptions + } + return nil +} + +// The impact estimates for a given budget amount. +type Recommendation_CampaignBudgetRecommendation_CampaignBudgetRecommendationOption struct { + // The budget amount for this option. + BudgetAmountMicros *wrappers.Int64Value `protobuf:"bytes,1,opt,name=budget_amount_micros,json=budgetAmountMicros,proto3" json:"budget_amount_micros,omitempty"` + // The impact estimate if budget is changed to amount specified in this + // option. + Impact *Recommendation_RecommendationImpact `protobuf:"bytes,2,opt,name=impact,proto3" json:"impact,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Recommendation_CampaignBudgetRecommendation_CampaignBudgetRecommendationOption) Reset() { + *m = Recommendation_CampaignBudgetRecommendation_CampaignBudgetRecommendationOption{} +} +func (m *Recommendation_CampaignBudgetRecommendation_CampaignBudgetRecommendationOption) String() string { + return proto.CompactTextString(m) +} +func (*Recommendation_CampaignBudgetRecommendation_CampaignBudgetRecommendationOption) ProtoMessage() { +} +func (*Recommendation_CampaignBudgetRecommendation_CampaignBudgetRecommendationOption) Descriptor() ([]byte, []int) { + return fileDescriptor_recommendation_eee397a9522b69a5, []int{0, 2, 0} +} +func (m *Recommendation_CampaignBudgetRecommendation_CampaignBudgetRecommendationOption) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Recommendation_CampaignBudgetRecommendation_CampaignBudgetRecommendationOption.Unmarshal(m, b) +} +func (m *Recommendation_CampaignBudgetRecommendation_CampaignBudgetRecommendationOption) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Recommendation_CampaignBudgetRecommendation_CampaignBudgetRecommendationOption.Marshal(b, m, deterministic) +} +func (dst *Recommendation_CampaignBudgetRecommendation_CampaignBudgetRecommendationOption) XXX_Merge(src proto.Message) { + xxx_messageInfo_Recommendation_CampaignBudgetRecommendation_CampaignBudgetRecommendationOption.Merge(dst, src) +} +func (m *Recommendation_CampaignBudgetRecommendation_CampaignBudgetRecommendationOption) XXX_Size() int { + return xxx_messageInfo_Recommendation_CampaignBudgetRecommendation_CampaignBudgetRecommendationOption.Size(m) +} +func (m *Recommendation_CampaignBudgetRecommendation_CampaignBudgetRecommendationOption) XXX_DiscardUnknown() { + xxx_messageInfo_Recommendation_CampaignBudgetRecommendation_CampaignBudgetRecommendationOption.DiscardUnknown(m) +} + +var xxx_messageInfo_Recommendation_CampaignBudgetRecommendation_CampaignBudgetRecommendationOption proto.InternalMessageInfo + +func (m *Recommendation_CampaignBudgetRecommendation_CampaignBudgetRecommendationOption) GetBudgetAmountMicros() *wrappers.Int64Value { + if m != nil { + return m.BudgetAmountMicros + } + return nil +} + +func (m *Recommendation_CampaignBudgetRecommendation_CampaignBudgetRecommendationOption) GetImpact() *Recommendation_RecommendationImpact { + if m != nil { + return m.Impact + } + return nil +} + +// The keyword recommendation. +type Recommendation_KeywordRecommendation struct { + // The recommended keyword. + Keyword *common.KeywordInfo `protobuf:"bytes,1,opt,name=keyword,proto3" json:"keyword,omitempty"` + // The recommended CPC (cost-per-click) bid. + RecommendedCpcBidMicros *wrappers.Int64Value `protobuf:"bytes,2,opt,name=recommended_cpc_bid_micros,json=recommendedCpcBidMicros,proto3" json:"recommended_cpc_bid_micros,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Recommendation_KeywordRecommendation) Reset() { *m = Recommendation_KeywordRecommendation{} } +func (m *Recommendation_KeywordRecommendation) String() string { return proto.CompactTextString(m) } +func (*Recommendation_KeywordRecommendation) ProtoMessage() {} +func (*Recommendation_KeywordRecommendation) Descriptor() ([]byte, []int) { + return fileDescriptor_recommendation_eee397a9522b69a5, []int{0, 3} +} +func (m *Recommendation_KeywordRecommendation) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Recommendation_KeywordRecommendation.Unmarshal(m, b) +} +func (m *Recommendation_KeywordRecommendation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Recommendation_KeywordRecommendation.Marshal(b, m, deterministic) +} +func (dst *Recommendation_KeywordRecommendation) XXX_Merge(src proto.Message) { + xxx_messageInfo_Recommendation_KeywordRecommendation.Merge(dst, src) +} +func (m *Recommendation_KeywordRecommendation) XXX_Size() int { + return xxx_messageInfo_Recommendation_KeywordRecommendation.Size(m) +} +func (m *Recommendation_KeywordRecommendation) XXX_DiscardUnknown() { + xxx_messageInfo_Recommendation_KeywordRecommendation.DiscardUnknown(m) +} + +var xxx_messageInfo_Recommendation_KeywordRecommendation proto.InternalMessageInfo + +func (m *Recommendation_KeywordRecommendation) GetKeyword() *common.KeywordInfo { + if m != nil { + return m.Keyword + } + return nil +} + +func (m *Recommendation_KeywordRecommendation) GetRecommendedCpcBidMicros() *wrappers.Int64Value { + if m != nil { + return m.RecommendedCpcBidMicros + } + return nil +} + +// The text ad recommendation. +type Recommendation_TextAdRecommendation struct { + // Recommended ad. + Ad *Ad `protobuf:"bytes,1,opt,name=ad,proto3" json:"ad,omitempty"` + // Creation date of the recommended ad. + // YYYY-MM-DD format, e.g., 2018-04-17. + CreationDate *wrappers.StringValue `protobuf:"bytes,2,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + // Date, if present, is the earliest when the recommendation will be auto + // applied. + // YYYY-MM-DD format, e.g., 2018-04-17. + AutoApplyDate *wrappers.StringValue `protobuf:"bytes,3,opt,name=auto_apply_date,json=autoApplyDate,proto3" json:"auto_apply_date,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Recommendation_TextAdRecommendation) Reset() { *m = Recommendation_TextAdRecommendation{} } +func (m *Recommendation_TextAdRecommendation) String() string { return proto.CompactTextString(m) } +func (*Recommendation_TextAdRecommendation) ProtoMessage() {} +func (*Recommendation_TextAdRecommendation) Descriptor() ([]byte, []int) { + return fileDescriptor_recommendation_eee397a9522b69a5, []int{0, 4} +} +func (m *Recommendation_TextAdRecommendation) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Recommendation_TextAdRecommendation.Unmarshal(m, b) +} +func (m *Recommendation_TextAdRecommendation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Recommendation_TextAdRecommendation.Marshal(b, m, deterministic) +} +func (dst *Recommendation_TextAdRecommendation) XXX_Merge(src proto.Message) { + xxx_messageInfo_Recommendation_TextAdRecommendation.Merge(dst, src) +} +func (m *Recommendation_TextAdRecommendation) XXX_Size() int { + return xxx_messageInfo_Recommendation_TextAdRecommendation.Size(m) +} +func (m *Recommendation_TextAdRecommendation) XXX_DiscardUnknown() { + xxx_messageInfo_Recommendation_TextAdRecommendation.DiscardUnknown(m) +} + +var xxx_messageInfo_Recommendation_TextAdRecommendation proto.InternalMessageInfo + +func (m *Recommendation_TextAdRecommendation) GetAd() *Ad { + if m != nil { + return m.Ad + } + return nil +} + +func (m *Recommendation_TextAdRecommendation) GetCreationDate() *wrappers.StringValue { + if m != nil { + return m.CreationDate + } + return nil +} + +func (m *Recommendation_TextAdRecommendation) GetAutoApplyDate() *wrappers.StringValue { + if m != nil { + return m.AutoApplyDate + } + return nil +} + +// The Target CPA opt-in recommendation. +type Recommendation_TargetCpaOptInRecommendation struct { + // The available goals and corresponding options for Target CPA strategy. + Options []*Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption `protobuf:"bytes,1,rep,name=options,proto3" json:"options,omitempty"` + // The recommended average CPA target. See required budget amount and impact + // of using this recommendation in options list. + RecommendedTargetCpaMicros *wrappers.Int64Value `protobuf:"bytes,2,opt,name=recommended_target_cpa_micros,json=recommendedTargetCpaMicros,proto3" json:"recommended_target_cpa_micros,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Recommendation_TargetCpaOptInRecommendation) Reset() { + *m = Recommendation_TargetCpaOptInRecommendation{} +} +func (m *Recommendation_TargetCpaOptInRecommendation) String() string { + return proto.CompactTextString(m) +} +func (*Recommendation_TargetCpaOptInRecommendation) ProtoMessage() {} +func (*Recommendation_TargetCpaOptInRecommendation) Descriptor() ([]byte, []int) { + return fileDescriptor_recommendation_eee397a9522b69a5, []int{0, 5} +} +func (m *Recommendation_TargetCpaOptInRecommendation) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Recommendation_TargetCpaOptInRecommendation.Unmarshal(m, b) +} +func (m *Recommendation_TargetCpaOptInRecommendation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Recommendation_TargetCpaOptInRecommendation.Marshal(b, m, deterministic) +} +func (dst *Recommendation_TargetCpaOptInRecommendation) XXX_Merge(src proto.Message) { + xxx_messageInfo_Recommendation_TargetCpaOptInRecommendation.Merge(dst, src) +} +func (m *Recommendation_TargetCpaOptInRecommendation) XXX_Size() int { + return xxx_messageInfo_Recommendation_TargetCpaOptInRecommendation.Size(m) +} +func (m *Recommendation_TargetCpaOptInRecommendation) XXX_DiscardUnknown() { + xxx_messageInfo_Recommendation_TargetCpaOptInRecommendation.DiscardUnknown(m) +} + +var xxx_messageInfo_Recommendation_TargetCpaOptInRecommendation proto.InternalMessageInfo + +func (m *Recommendation_TargetCpaOptInRecommendation) GetOptions() []*Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption { + if m != nil { + return m.Options + } + return nil +} + +func (m *Recommendation_TargetCpaOptInRecommendation) GetRecommendedTargetCpaMicros() *wrappers.Int64Value { + if m != nil { + return m.RecommendedTargetCpaMicros + } + return nil +} + +// The Target CPA opt-in option with impact estimate. +type Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption struct { + // The goal achieved by this option. + Goal enums.TargetCpaOptInRecommendationGoalEnum_TargetCpaOptInRecommendationGoal `protobuf:"varint,1,opt,name=goal,proto3,enum=google.ads.googleads.v0.enums.TargetCpaOptInRecommendationGoalEnum_TargetCpaOptInRecommendationGoal" json:"goal,omitempty"` + // Average CPA target. + TargetCpaMicros *wrappers.Int64Value `protobuf:"bytes,2,opt,name=target_cpa_micros,json=targetCpaMicros,proto3" json:"target_cpa_micros,omitempty"` + // The minimum campaign budget, in local currency for the account, + // required to achieve the target CPA. + // Amount is specified in micros, where one million is equivalent to one + // currency unit. + RequiredCampaignBudgetAmountMicros *wrappers.Int64Value `protobuf:"bytes,3,opt,name=required_campaign_budget_amount_micros,json=requiredCampaignBudgetAmountMicros,proto3" json:"required_campaign_budget_amount_micros,omitempty"` + // The impact estimate if this option is selected. + Impact *Recommendation_RecommendationImpact `protobuf:"bytes,4,opt,name=impact,proto3" json:"impact,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption) Reset() { + *m = Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption{} +} +func (m *Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption) String() string { + return proto.CompactTextString(m) +} +func (*Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption) ProtoMessage() { +} +func (*Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption) Descriptor() ([]byte, []int) { + return fileDescriptor_recommendation_eee397a9522b69a5, []int{0, 5, 0} +} +func (m *Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption.Unmarshal(m, b) +} +func (m *Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption.Marshal(b, m, deterministic) +} +func (dst *Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption) XXX_Merge(src proto.Message) { + xxx_messageInfo_Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption.Merge(dst, src) +} +func (m *Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption) XXX_Size() int { + return xxx_messageInfo_Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption.Size(m) +} +func (m *Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption) XXX_DiscardUnknown() { + xxx_messageInfo_Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption.DiscardUnknown(m) +} + +var xxx_messageInfo_Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption proto.InternalMessageInfo + +func (m *Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption) GetGoal() enums.TargetCpaOptInRecommendationGoalEnum_TargetCpaOptInRecommendationGoal { + if m != nil { + return m.Goal + } + return enums.TargetCpaOptInRecommendationGoalEnum_UNSPECIFIED +} + +func (m *Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption) GetTargetCpaMicros() *wrappers.Int64Value { + if m != nil { + return m.TargetCpaMicros + } + return nil +} + +func (m *Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption) GetRequiredCampaignBudgetAmountMicros() *wrappers.Int64Value { + if m != nil { + return m.RequiredCampaignBudgetAmountMicros + } + return nil +} + +func (m *Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption) GetImpact() *Recommendation_RecommendationImpact { + if m != nil { + return m.Impact + } + return nil +} + +// The Maximize Conversions Opt-In recommendation. +type Recommendation_MaximizeConversionsOptInRecommendation struct { + // The recommended new budget amount. + RecommendedBudgetAmountMicros *wrappers.Int64Value `protobuf:"bytes,1,opt,name=recommended_budget_amount_micros,json=recommendedBudgetAmountMicros,proto3" json:"recommended_budget_amount_micros,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Recommendation_MaximizeConversionsOptInRecommendation) Reset() { + *m = Recommendation_MaximizeConversionsOptInRecommendation{} +} +func (m *Recommendation_MaximizeConversionsOptInRecommendation) String() string { + return proto.CompactTextString(m) +} +func (*Recommendation_MaximizeConversionsOptInRecommendation) ProtoMessage() {} +func (*Recommendation_MaximizeConversionsOptInRecommendation) Descriptor() ([]byte, []int) { + return fileDescriptor_recommendation_eee397a9522b69a5, []int{0, 6} +} +func (m *Recommendation_MaximizeConversionsOptInRecommendation) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Recommendation_MaximizeConversionsOptInRecommendation.Unmarshal(m, b) +} +func (m *Recommendation_MaximizeConversionsOptInRecommendation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Recommendation_MaximizeConversionsOptInRecommendation.Marshal(b, m, deterministic) +} +func (dst *Recommendation_MaximizeConversionsOptInRecommendation) XXX_Merge(src proto.Message) { + xxx_messageInfo_Recommendation_MaximizeConversionsOptInRecommendation.Merge(dst, src) +} +func (m *Recommendation_MaximizeConversionsOptInRecommendation) XXX_Size() int { + return xxx_messageInfo_Recommendation_MaximizeConversionsOptInRecommendation.Size(m) +} +func (m *Recommendation_MaximizeConversionsOptInRecommendation) XXX_DiscardUnknown() { + xxx_messageInfo_Recommendation_MaximizeConversionsOptInRecommendation.DiscardUnknown(m) +} + +var xxx_messageInfo_Recommendation_MaximizeConversionsOptInRecommendation proto.InternalMessageInfo + +func (m *Recommendation_MaximizeConversionsOptInRecommendation) GetRecommendedBudgetAmountMicros() *wrappers.Int64Value { + if m != nil { + return m.RecommendedBudgetAmountMicros + } + return nil +} + +// The Enhanced Cost-Per-Click Opt-In recommendation. +type Recommendation_EnhancedCpcOptInRecommendation struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Recommendation_EnhancedCpcOptInRecommendation) Reset() { + *m = Recommendation_EnhancedCpcOptInRecommendation{} +} +func (m *Recommendation_EnhancedCpcOptInRecommendation) String() string { + return proto.CompactTextString(m) +} +func (*Recommendation_EnhancedCpcOptInRecommendation) ProtoMessage() {} +func (*Recommendation_EnhancedCpcOptInRecommendation) Descriptor() ([]byte, []int) { + return fileDescriptor_recommendation_eee397a9522b69a5, []int{0, 7} +} +func (m *Recommendation_EnhancedCpcOptInRecommendation) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Recommendation_EnhancedCpcOptInRecommendation.Unmarshal(m, b) +} +func (m *Recommendation_EnhancedCpcOptInRecommendation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Recommendation_EnhancedCpcOptInRecommendation.Marshal(b, m, deterministic) +} +func (dst *Recommendation_EnhancedCpcOptInRecommendation) XXX_Merge(src proto.Message) { + xxx_messageInfo_Recommendation_EnhancedCpcOptInRecommendation.Merge(dst, src) +} +func (m *Recommendation_EnhancedCpcOptInRecommendation) XXX_Size() int { + return xxx_messageInfo_Recommendation_EnhancedCpcOptInRecommendation.Size(m) +} +func (m *Recommendation_EnhancedCpcOptInRecommendation) XXX_DiscardUnknown() { + xxx_messageInfo_Recommendation_EnhancedCpcOptInRecommendation.DiscardUnknown(m) +} + +var xxx_messageInfo_Recommendation_EnhancedCpcOptInRecommendation proto.InternalMessageInfo + +// The Search Partners Opt-In recommendation. +type Recommendation_SearchPartnersOptInRecommendation struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Recommendation_SearchPartnersOptInRecommendation) Reset() { + *m = Recommendation_SearchPartnersOptInRecommendation{} +} +func (m *Recommendation_SearchPartnersOptInRecommendation) String() string { + return proto.CompactTextString(m) +} +func (*Recommendation_SearchPartnersOptInRecommendation) ProtoMessage() {} +func (*Recommendation_SearchPartnersOptInRecommendation) Descriptor() ([]byte, []int) { + return fileDescriptor_recommendation_eee397a9522b69a5, []int{0, 8} +} +func (m *Recommendation_SearchPartnersOptInRecommendation) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Recommendation_SearchPartnersOptInRecommendation.Unmarshal(m, b) +} +func (m *Recommendation_SearchPartnersOptInRecommendation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Recommendation_SearchPartnersOptInRecommendation.Marshal(b, m, deterministic) +} +func (dst *Recommendation_SearchPartnersOptInRecommendation) XXX_Merge(src proto.Message) { + xxx_messageInfo_Recommendation_SearchPartnersOptInRecommendation.Merge(dst, src) +} +func (m *Recommendation_SearchPartnersOptInRecommendation) XXX_Size() int { + return xxx_messageInfo_Recommendation_SearchPartnersOptInRecommendation.Size(m) +} +func (m *Recommendation_SearchPartnersOptInRecommendation) XXX_DiscardUnknown() { + xxx_messageInfo_Recommendation_SearchPartnersOptInRecommendation.DiscardUnknown(m) +} + +var xxx_messageInfo_Recommendation_SearchPartnersOptInRecommendation proto.InternalMessageInfo + +// The Maximize Clicks opt-in recommendation. +type Recommendation_MaximizeClicksOptInRecommendation struct { + // The recommended new budget amount. + // Only set if the current budget is too high. + RecommendedBudgetAmountMicros *wrappers.Int64Value `protobuf:"bytes,1,opt,name=recommended_budget_amount_micros,json=recommendedBudgetAmountMicros,proto3" json:"recommended_budget_amount_micros,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Recommendation_MaximizeClicksOptInRecommendation) Reset() { + *m = Recommendation_MaximizeClicksOptInRecommendation{} +} +func (m *Recommendation_MaximizeClicksOptInRecommendation) String() string { + return proto.CompactTextString(m) +} +func (*Recommendation_MaximizeClicksOptInRecommendation) ProtoMessage() {} +func (*Recommendation_MaximizeClicksOptInRecommendation) Descriptor() ([]byte, []int) { + return fileDescriptor_recommendation_eee397a9522b69a5, []int{0, 9} +} +func (m *Recommendation_MaximizeClicksOptInRecommendation) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Recommendation_MaximizeClicksOptInRecommendation.Unmarshal(m, b) +} +func (m *Recommendation_MaximizeClicksOptInRecommendation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Recommendation_MaximizeClicksOptInRecommendation.Marshal(b, m, deterministic) +} +func (dst *Recommendation_MaximizeClicksOptInRecommendation) XXX_Merge(src proto.Message) { + xxx_messageInfo_Recommendation_MaximizeClicksOptInRecommendation.Merge(dst, src) +} +func (m *Recommendation_MaximizeClicksOptInRecommendation) XXX_Size() int { + return xxx_messageInfo_Recommendation_MaximizeClicksOptInRecommendation.Size(m) +} +func (m *Recommendation_MaximizeClicksOptInRecommendation) XXX_DiscardUnknown() { + xxx_messageInfo_Recommendation_MaximizeClicksOptInRecommendation.DiscardUnknown(m) +} + +var xxx_messageInfo_Recommendation_MaximizeClicksOptInRecommendation proto.InternalMessageInfo + +func (m *Recommendation_MaximizeClicksOptInRecommendation) GetRecommendedBudgetAmountMicros() *wrappers.Int64Value { + if m != nil { + return m.RecommendedBudgetAmountMicros + } + return nil +} + +// The Optimize Ad Rotation recommendation. +type Recommendation_OptimizeAdRotationRecommendation struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Recommendation_OptimizeAdRotationRecommendation) Reset() { + *m = Recommendation_OptimizeAdRotationRecommendation{} +} +func (m *Recommendation_OptimizeAdRotationRecommendation) String() string { + return proto.CompactTextString(m) +} +func (*Recommendation_OptimizeAdRotationRecommendation) ProtoMessage() {} +func (*Recommendation_OptimizeAdRotationRecommendation) Descriptor() ([]byte, []int) { + return fileDescriptor_recommendation_eee397a9522b69a5, []int{0, 10} +} +func (m *Recommendation_OptimizeAdRotationRecommendation) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Recommendation_OptimizeAdRotationRecommendation.Unmarshal(m, b) +} +func (m *Recommendation_OptimizeAdRotationRecommendation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Recommendation_OptimizeAdRotationRecommendation.Marshal(b, m, deterministic) +} +func (dst *Recommendation_OptimizeAdRotationRecommendation) XXX_Merge(src proto.Message) { + xxx_messageInfo_Recommendation_OptimizeAdRotationRecommendation.Merge(dst, src) +} +func (m *Recommendation_OptimizeAdRotationRecommendation) XXX_Size() int { + return xxx_messageInfo_Recommendation_OptimizeAdRotationRecommendation.Size(m) +} +func (m *Recommendation_OptimizeAdRotationRecommendation) XXX_DiscardUnknown() { + xxx_messageInfo_Recommendation_OptimizeAdRotationRecommendation.DiscardUnknown(m) +} + +var xxx_messageInfo_Recommendation_OptimizeAdRotationRecommendation proto.InternalMessageInfo + +func init() { + proto.RegisterType((*Recommendation)(nil), "google.ads.googleads.v0.resources.Recommendation") + proto.RegisterType((*Recommendation_RecommendationImpact)(nil), "google.ads.googleads.v0.resources.Recommendation.RecommendationImpact") + proto.RegisterType((*Recommendation_RecommendationMetrics)(nil), "google.ads.googleads.v0.resources.Recommendation.RecommendationMetrics") + proto.RegisterType((*Recommendation_CampaignBudgetRecommendation)(nil), "google.ads.googleads.v0.resources.Recommendation.CampaignBudgetRecommendation") + proto.RegisterType((*Recommendation_CampaignBudgetRecommendation_CampaignBudgetRecommendationOption)(nil), "google.ads.googleads.v0.resources.Recommendation.CampaignBudgetRecommendation.CampaignBudgetRecommendationOption") + proto.RegisterType((*Recommendation_KeywordRecommendation)(nil), "google.ads.googleads.v0.resources.Recommendation.KeywordRecommendation") + proto.RegisterType((*Recommendation_TextAdRecommendation)(nil), "google.ads.googleads.v0.resources.Recommendation.TextAdRecommendation") + proto.RegisterType((*Recommendation_TargetCpaOptInRecommendation)(nil), "google.ads.googleads.v0.resources.Recommendation.TargetCpaOptInRecommendation") + proto.RegisterType((*Recommendation_TargetCpaOptInRecommendation_TargetCpaOptInRecommendationOption)(nil), "google.ads.googleads.v0.resources.Recommendation.TargetCpaOptInRecommendation.TargetCpaOptInRecommendationOption") + proto.RegisterType((*Recommendation_MaximizeConversionsOptInRecommendation)(nil), "google.ads.googleads.v0.resources.Recommendation.MaximizeConversionsOptInRecommendation") + proto.RegisterType((*Recommendation_EnhancedCpcOptInRecommendation)(nil), "google.ads.googleads.v0.resources.Recommendation.EnhancedCpcOptInRecommendation") + proto.RegisterType((*Recommendation_SearchPartnersOptInRecommendation)(nil), "google.ads.googleads.v0.resources.Recommendation.SearchPartnersOptInRecommendation") + proto.RegisterType((*Recommendation_MaximizeClicksOptInRecommendation)(nil), "google.ads.googleads.v0.resources.Recommendation.MaximizeClicksOptInRecommendation") + proto.RegisterType((*Recommendation_OptimizeAdRotationRecommendation)(nil), "google.ads.googleads.v0.resources.Recommendation.OptimizeAdRotationRecommendation") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/recommendation.proto", fileDescriptor_recommendation_eee397a9522b69a5) +} + +var fileDescriptor_recommendation_eee397a9522b69a5 = []byte{ + // 1315 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0xcd, 0x6f, 0xdc, 0xc4, + 0x1b, 0xfe, 0xcd, 0x26, 0x4d, 0xda, 0x77, 0x93, 0x4d, 0x3b, 0xbf, 0xb4, 0x2c, 0x26, 0x44, 0x9b, + 0x94, 0x56, 0x51, 0x11, 0xbb, 0x51, 0x28, 0x6d, 0x25, 0x3e, 0xa4, 0x4d, 0x1a, 0xd2, 0x80, 0xd2, + 0x46, 0x6e, 0x15, 0x55, 0x68, 0x55, 0x6b, 0xd6, 0x9e, 0x6e, 0x4d, 0xd7, 0x1e, 0x77, 0x3c, 0x4e, + 0x13, 0x0e, 0x88, 0x23, 0x08, 0x89, 0x23, 0xea, 0x89, 0x03, 0x1c, 0x90, 0xf8, 0x03, 0x50, 0xff, + 0x03, 0xa4, 0x5e, 0x2b, 0x21, 0xfe, 0x14, 0x8e, 0xc8, 0xe3, 0xb1, 0xb3, 0x1f, 0xfe, 0xd8, 0x5d, + 0x5a, 0x6e, 0xb6, 0xe7, 0x79, 0x9e, 0xf7, 0x99, 0xcf, 0xf7, 0x1d, 0xc3, 0xb5, 0x0e, 0x63, 0x9d, + 0x2e, 0x6d, 0x10, 0xcb, 0x6f, 0x44, 0x8f, 0xe1, 0xd3, 0xe1, 0x7a, 0x83, 0x53, 0x9f, 0x05, 0xdc, + 0xa4, 0x7e, 0x83, 0x53, 0x93, 0x39, 0x0e, 0x75, 0x2d, 0x22, 0x6c, 0xe6, 0xd6, 0x3d, 0xce, 0x04, + 0xc3, 0x2b, 0x11, 0xb8, 0x4e, 0x2c, 0xbf, 0x9e, 0xf0, 0xea, 0x87, 0xeb, 0xf5, 0x84, 0xa7, 0xbd, + 0x97, 0x25, 0x1d, 0xca, 0x31, 0xb7, 0x61, 0x72, 0x5b, 0x50, 0x6e, 0x93, 0x48, 0x51, 0xbb, 0x9e, + 0x05, 0xa7, 0x6e, 0xe0, 0x0c, 0xba, 0x30, 0xc4, 0xb1, 0x47, 0x15, 0x71, 0x37, 0x9f, 0x28, 0x08, + 0xef, 0x50, 0x61, 0x98, 0x1e, 0x31, 0x98, 0x27, 0x0c, 0xdb, 0x35, 0x06, 0xa4, 0x3a, 0x8c, 0x74, + 0x95, 0xd4, 0x95, 0xe2, 0xd1, 0x20, 0x96, 0xc2, 0x2e, 0x2b, 0xac, 0x7c, 0x6b, 0x07, 0x0f, 0x1b, + 0x4f, 0x39, 0xf1, 0x3c, 0xca, 0xfd, 0xa8, 0x7d, 0xf5, 0xdb, 0x77, 0xa0, 0xa2, 0xf7, 0x45, 0xc2, + 0x17, 0x61, 0x3e, 0x16, 0x32, 0x5c, 0xe2, 0xd0, 0x2a, 0xaa, 0xa1, 0xb5, 0x33, 0xfa, 0x5c, 0xfc, + 0xf1, 0x36, 0x71, 0x28, 0x6e, 0xc1, 0x74, 0xd8, 0xb9, 0x6a, 0xa9, 0x86, 0xd6, 0x2a, 0x1b, 0xb7, + 0xea, 0x59, 0x03, 0x2d, 0x7b, 0x57, 0xef, 0x8f, 0x70, 0xef, 0xd8, 0xa3, 0xdb, 0x6e, 0xe0, 0xa4, + 0x7c, 0xd6, 0xa5, 0x2a, 0x7e, 0x00, 0x33, 0xb6, 0xe3, 0x11, 0x53, 0x54, 0xa7, 0x6a, 0x68, 0xad, + 0xbc, 0xf1, 0x69, 0xbd, 0x70, 0x22, 0x07, 0xc4, 0x06, 0x5e, 0x77, 0xa5, 0x9a, 0xae, 0x54, 0xf1, + 0x36, 0x2c, 0x98, 0xc4, 0xf1, 0x88, 0xdd, 0x71, 0x8d, 0x76, 0x60, 0x75, 0xa8, 0xa8, 0x9e, 0x92, + 0x81, 0x96, 0xe2, 0x40, 0xf1, 0x78, 0xd5, 0xef, 0x0a, 0x6e, 0xbb, 0x9d, 0x03, 0xd2, 0x0d, 0xa8, + 0x5e, 0x89, 0x49, 0x9b, 0x92, 0x83, 0x6f, 0xc0, 0xe9, 0xf8, 0x4b, 0x75, 0x66, 0x04, 0x7e, 0x82, + 0xc6, 0xd7, 0xe1, 0x34, 0xb1, 0x8c, 0x0e, 0x67, 0x81, 0x57, 0x9d, 0x1d, 0x81, 0x39, 0x4b, 0xac, + 0x9d, 0x10, 0x8c, 0x6f, 0xc0, 0x19, 0xcb, 0xf6, 0x1d, 0xdb, 0xf7, 0xa9, 0x55, 0x9d, 0x97, 0x4c, + 0x6d, 0x88, 0xb9, 0xc9, 0x58, 0x37, 0xe2, 0x9d, 0x80, 0xf1, 0x8f, 0x08, 0x96, 0x07, 0x3a, 0x3d, + 0xb0, 0xc6, 0xaa, 0xd3, 0x52, 0xef, 0xf6, 0xf8, 0x83, 0xbd, 0xd5, 0x37, 0x2e, 0xfd, 0x8d, 0xb7, + 0xfe, 0xa7, 0x2f, 0x99, 0x39, 0xed, 0xf8, 0x1b, 0x04, 0x17, 0x1e, 0xd3, 0xe3, 0xa7, 0x8c, 0x5b, + 0x83, 0x86, 0x4e, 0x4b, 0x43, 0x3b, 0xe3, 0x1b, 0xfa, 0x3c, 0xd2, 0x1b, 0x72, 0x72, 0xfe, 0x71, + 0x5a, 0x03, 0xfe, 0x1a, 0x2e, 0x08, 0x7a, 0x24, 0x0c, 0x32, 0xe4, 0xe0, 0xcc, 0xa4, 0xeb, 0xef, + 0x1e, 0x3d, 0x12, 0xcd, 0x61, 0x03, 0x8b, 0x22, 0xe5, 0x3b, 0x7e, 0x86, 0xa0, 0x56, 0x74, 0x02, + 0x54, 0x61, 0xd2, 0xd9, 0xb9, 0x27, 0x95, 0xb7, 0x3c, 0x72, 0xc7, 0x13, 0xbb, 0xee, 0xf0, 0xec, + 0x88, 0x9c, 0x76, 0xfc, 0x3b, 0x82, 0x2b, 0x0e, 0x39, 0xb2, 0x1d, 0xfb, 0x2b, 0x6a, 0x98, 0xcc, + 0x3d, 0xa4, 0xdc, 0xb7, 0x99, 0xeb, 0x67, 0x98, 0x2c, 0x4b, 0x93, 0xf7, 0xc7, 0x37, 0xb9, 0xa7, + 0x62, 0x6c, 0x9d, 0x84, 0x48, 0xb7, 0x7b, 0xd9, 0x19, 0x09, 0x89, 0x7f, 0x42, 0xb0, 0x4a, 0xdd, + 0x47, 0xc4, 0x35, 0xa9, 0x65, 0x98, 0x9e, 0x99, 0x61, 0x78, 0x4e, 0x1a, 0xde, 0x1f, 0xdf, 0xf0, + 0xb6, 0xd2, 0xde, 0xf2, 0xcc, 0x74, 0xa3, 0xcb, 0x34, 0x17, 0x81, 0x7f, 0x45, 0x70, 0xc9, 0xa7, + 0x84, 0x9b, 0x8f, 0x0c, 0x8f, 0x70, 0xe1, 0x52, 0x9e, 0x35, 0xa8, 0x15, 0xe9, 0xf1, 0xee, 0xf8, + 0x1e, 0xef, 0x4a, 0xf9, 0x7d, 0xa5, 0x9e, 0x6e, 0x73, 0xc5, 0x2f, 0x02, 0x49, 0xa7, 0x27, 0x6b, + 0xa0, 0x6b, 0x9b, 0x8f, 0xb3, 0x9c, 0x2e, 0x4c, 0xea, 0x34, 0x99, 0x7e, 0xa9, 0x9e, 0xe1, 0xd4, + 0x29, 0x02, 0xe1, 0x5f, 0x10, 0x5c, 0x64, 0x9e, 0x88, 0x9c, 0x86, 0xbb, 0x99, 0x89, 0x28, 0x7d, + 0x0e, 0xf8, 0x3c, 0x2b, 0x7d, 0xea, 0xe3, 0xfb, 0xbc, 0xa3, 0xc4, 0x9b, 0x96, 0xae, 0xa4, 0x87, + 0x6c, 0xd6, 0x58, 0x01, 0x46, 0xfb, 0x1b, 0xc1, 0x62, 0x5a, 0x7e, 0xc2, 0x5f, 0xc2, 0x5c, 0x9b, + 0xf8, 0xd4, 0x70, 0xa8, 0xe0, 0xb6, 0xe9, 0xcb, 0xcc, 0x3b, 0xd1, 0xf9, 0xd7, 0xff, 0xba, 0x17, + 0xc9, 0xe9, 0xe5, 0x50, 0x5c, 0xbd, 0x60, 0x01, 0xe7, 0x3c, 0x26, 0xa8, 0x2b, 0x6c, 0xd2, 0x4d, + 0x02, 0x96, 0x5e, 0x6d, 0xc0, 0xb3, 0x49, 0x04, 0xf5, 0x45, 0x7b, 0x51, 0x82, 0xf3, 0xa9, 0x58, + 0xfc, 0x09, 0x94, 0x6d, 0xc7, 0xe3, 0xd4, 0x97, 0x3b, 0x5a, 0x75, 0x7d, 0x38, 0x2b, 0xde, 0x64, + 0x41, 0xbb, 0x4b, 0xa3, 0xec, 0xd6, 0x4b, 0xc0, 0x57, 0x61, 0x26, 0x5a, 0x9a, 0xaa, 0x13, 0xf9, + 0x54, 0x85, 0xc5, 0x1f, 0x41, 0xd9, 0x64, 0xbe, 0x30, 0x1c, 0xdb, 0xe4, 0xcc, 0x57, 0xe5, 0xc6, + 0x5b, 0x43, 0xd4, 0x5d, 0x57, 0x5c, 0xbb, 0x1a, 0x31, 0x21, 0xc4, 0xef, 0x49, 0x78, 0xe8, 0xb9, + 0xe7, 0x48, 0x54, 0xf9, 0xb3, 0xc0, 0x73, 0x0f, 0x01, 0x7f, 0x0c, 0xe5, 0x43, 0xdb, 0xa2, 0xcc, + 0x38, 0xb4, 0xe9, 0x53, 0x3f, 0xb3, 0x06, 0xe9, 0xe5, 0x83, 0x24, 0x1c, 0x84, 0x78, 0xed, 0xe5, + 0x34, 0x2c, 0xe5, 0xa5, 0x5e, 0xdc, 0x82, 0x25, 0x33, 0xe0, 0x9c, 0xba, 0x22, 0xce, 0xf8, 0xc4, + 0x61, 0x81, 0x9b, 0x74, 0x17, 0x15, 0x77, 0xf7, 0x4d, 0x25, 0x10, 0xe9, 0x37, 0x25, 0x5d, 0xf5, + 0xde, 0x82, 0x5a, 0xb2, 0xad, 0xa8, 0x95, 0x1e, 0xa1, 0x54, 0x1c, 0xe1, 0xed, 0x1e, 0x91, 0x94, + 0x28, 0xcf, 0x10, 0x54, 0x94, 0x74, 0xb8, 0xb1, 0xc2, 0x71, 0x9e, 0xaa, 0x4d, 0xad, 0x95, 0x37, + 0x9e, 0xbc, 0xda, 0x3a, 0x25, 0xb7, 0xf1, 0x8e, 0x8c, 0xac, 0xcf, 0x47, 0x46, 0xa2, 0x37, 0x5f, + 0x7b, 0x89, 0x60, 0xb5, 0x98, 0x85, 0xf7, 0x60, 0x71, 0xd2, 0xd1, 0xc7, 0xed, 0xe1, 0x01, 0x39, + 0x29, 0x8e, 0x4b, 0xaf, 0xa3, 0x38, 0xd6, 0x9e, 0x23, 0x38, 0x9f, 0x5a, 0x3f, 0xe1, 0x6d, 0x98, + 0x55, 0xf5, 0x93, 0xf2, 0xfe, 0x6e, 0x66, 0xe8, 0xe8, 0xf6, 0x14, 0xd7, 0x61, 0xbb, 0xee, 0x43, + 0xa6, 0xc7, 0x5c, 0x7c, 0x1f, 0xb4, 0xde, 0x75, 0x13, 0xe6, 0xe6, 0xb6, 0x6d, 0x8d, 0xb1, 0x62, + 0xde, 0xe8, 0xa1, 0x6f, 0x79, 0xe6, 0xa6, 0x6d, 0x45, 0x43, 0xa3, 0xfd, 0x89, 0x60, 0x31, 0xad, + 0xf0, 0xc2, 0x1f, 0x40, 0x89, 0xc4, 0xa6, 0x2f, 0x8d, 0x30, 0x5e, 0x4d, 0x4b, 0x2f, 0x11, 0x0b, + 0x37, 0x61, 0xde, 0xe4, 0x34, 0xca, 0x20, 0x16, 0x11, 0x34, 0xf3, 0x68, 0xe9, 0xad, 0xd5, 0xe7, + 0x62, 0xca, 0x4d, 0x22, 0x28, 0xbe, 0x09, 0x0b, 0x24, 0x10, 0xcc, 0x20, 0x9e, 0xd7, 0x3d, 0x8e, + 0x44, 0xa6, 0x46, 0x10, 0x99, 0x0f, 0x49, 0xcd, 0x90, 0x13, 0xaa, 0x68, 0x7f, 0x9c, 0x82, 0xa5, + 0xbc, 0x32, 0x0e, 0x7f, 0x8f, 0x60, 0x36, 0xde, 0x1e, 0x68, 0xd2, 0xed, 0x91, 0x17, 0x21, 0xb7, + 0x51, 0x6d, 0x8f, 0xd8, 0x01, 0x7e, 0x00, 0xbd, 0x9b, 0xda, 0xe8, 0x29, 0x6d, 0x47, 0x9f, 0xe4, + 0xde, 0x35, 0x92, 0xc4, 0x56, 0xf3, 0xfc, 0x7c, 0x0a, 0x56, 0x8b, 0xfd, 0xe0, 0x23, 0x98, 0x0e, + 0xaf, 0xcd, 0x72, 0xde, 0x2b, 0x1b, 0x56, 0xc1, 0x25, 0x35, 0x4f, 0x70, 0x87, 0x91, 0xae, 0xbc, + 0xb2, 0x16, 0x81, 0x74, 0x19, 0x11, 0xef, 0xc0, 0xb9, 0x89, 0x3a, 0xbd, 0x20, 0xfa, 0x7b, 0x8a, + 0x19, 0x5c, 0xe6, 0xf4, 0x49, 0x60, 0xf3, 0x70, 0xa3, 0x0c, 0xdc, 0xde, 0xfa, 0x4f, 0x93, 0x11, + 0x52, 0xd7, 0x6a, 0x2c, 0xd5, 0x7f, 0x68, 0x65, 0x9c, 0x2e, 0xd3, 0xaf, 0xe5, 0x74, 0xf9, 0x01, + 0xc1, 0xe5, 0xd1, 0x6a, 0xfd, 0x91, 0xf2, 0x0b, 0xfa, 0xb7, 0xf9, 0x45, 0xab, 0xc1, 0x72, 0x7e, + 0x29, 0xaf, 0x5d, 0x84, 0x95, 0xc2, 0x42, 0x5a, 0xfb, 0x0e, 0xc1, 0x4a, 0x61, 0x11, 0xfb, 0x1f, + 0x75, 0x69, 0x15, 0x6a, 0x45, 0x75, 0xea, 0xe6, 0x59, 0xa8, 0xf4, 0xd7, 0xc4, 0x9b, 0x7f, 0x21, + 0xb8, 0x64, 0x32, 0xa7, 0x78, 0xbe, 0x37, 0xff, 0xdf, 0xaf, 0xb5, 0x1f, 0x3a, 0xdc, 0x47, 0x5f, + 0x7c, 0xa6, 0x98, 0x1d, 0xd6, 0x25, 0x6e, 0xa7, 0xce, 0x78, 0xa7, 0xd1, 0xa1, 0xae, 0xf4, 0x1f, + 0xff, 0xa7, 0xf2, 0x6c, 0x3f, 0xe7, 0xb7, 0xd5, 0x87, 0xc9, 0xd3, 0xcf, 0xa5, 0xa9, 0x9d, 0x66, + 0xf3, 0xb7, 0xd2, 0xca, 0x4e, 0x24, 0xd9, 0xb4, 0xfc, 0x7a, 0xf4, 0x18, 0x3e, 0x1d, 0xac, 0xd7, + 0xf5, 0x18, 0xf9, 0x22, 0xc6, 0xb4, 0x9a, 0x96, 0xdf, 0x4a, 0x30, 0xad, 0x83, 0xf5, 0x56, 0x82, + 0x69, 0xcf, 0x48, 0x13, 0xef, 0xff, 0x13, 0x00, 0x00, 0xff, 0xff, 0xfe, 0xd2, 0xfa, 0x62, 0x48, + 0x14, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/search_term_view.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/search_term_view.pb.go new file mode 100644 index 000000000..ae760dd63 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/search_term_view.pb.go @@ -0,0 +1,129 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/search_term_view.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A search term view with metrics aggregated by search term at the ad group +// level. +type SearchTermView struct { + // The resource name of the search term view. + // Search term view resource names have the form: + // + // `customers/{customer_id}/searchTermViews/{campaign_id}_{ad_group_id}_ + // {URL-base64 search term}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + // The search term. + SearchTerm *wrappers.StringValue `protobuf:"bytes,2,opt,name=search_term,json=searchTerm,proto3" json:"search_term,omitempty"` + // The ad group the search term served in. + AdGroup *wrappers.StringValue `protobuf:"bytes,3,opt,name=ad_group,json=adGroup,proto3" json:"ad_group,omitempty"` + // Indicates whether the search term is currently one of your + // targeted or excluded keywords. + Status enums.SearchTermTargetingStatusEnum_SearchTermTargetingStatus `protobuf:"varint,4,opt,name=status,proto3,enum=google.ads.googleads.v0.enums.SearchTermTargetingStatusEnum_SearchTermTargetingStatus" json:"status,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SearchTermView) Reset() { *m = SearchTermView{} } +func (m *SearchTermView) String() string { return proto.CompactTextString(m) } +func (*SearchTermView) ProtoMessage() {} +func (*SearchTermView) Descriptor() ([]byte, []int) { + return fileDescriptor_search_term_view_41238e08ac980d71, []int{0} +} +func (m *SearchTermView) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SearchTermView.Unmarshal(m, b) +} +func (m *SearchTermView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SearchTermView.Marshal(b, m, deterministic) +} +func (dst *SearchTermView) XXX_Merge(src proto.Message) { + xxx_messageInfo_SearchTermView.Merge(dst, src) +} +func (m *SearchTermView) XXX_Size() int { + return xxx_messageInfo_SearchTermView.Size(m) +} +func (m *SearchTermView) XXX_DiscardUnknown() { + xxx_messageInfo_SearchTermView.DiscardUnknown(m) +} + +var xxx_messageInfo_SearchTermView proto.InternalMessageInfo + +func (m *SearchTermView) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func (m *SearchTermView) GetSearchTerm() *wrappers.StringValue { + if m != nil { + return m.SearchTerm + } + return nil +} + +func (m *SearchTermView) GetAdGroup() *wrappers.StringValue { + if m != nil { + return m.AdGroup + } + return nil +} + +func (m *SearchTermView) GetStatus() enums.SearchTermTargetingStatusEnum_SearchTermTargetingStatus { + if m != nil { + return m.Status + } + return enums.SearchTermTargetingStatusEnum_UNSPECIFIED +} + +func init() { + proto.RegisterType((*SearchTermView)(nil), "google.ads.googleads.v0.resources.SearchTermView") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/search_term_view.proto", fileDescriptor_search_term_view_41238e08ac980d71) +} + +var fileDescriptor_search_term_view_41238e08ac980d71 = []byte{ + // 366 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x52, 0xcd, 0x4a, 0xf3, 0x40, + 0x14, 0x25, 0xe9, 0x47, 0x3f, 0x9d, 0x6a, 0x17, 0x71, 0x13, 0x8a, 0x48, 0xab, 0x08, 0x5d, 0x4d, + 0x42, 0x5d, 0x28, 0x88, 0x60, 0x0a, 0x52, 0x70, 0x21, 0x25, 0x2d, 0x59, 0x48, 0x20, 0x4c, 0x9b, + 0xeb, 0x18, 0x68, 0x66, 0xc2, 0x4c, 0xa6, 0x7d, 0x1a, 0x37, 0x2e, 0x7d, 0x14, 0x9f, 0xc0, 0xc7, + 0x91, 0xfc, 0x4c, 0xb4, 0x8b, 0xaa, 0xbb, 0x93, 0xcc, 0xf9, 0x99, 0x73, 0xef, 0xa0, 0x2b, 0xca, + 0x39, 0x5d, 0x81, 0x43, 0x62, 0xe9, 0x54, 0xb0, 0x40, 0x6b, 0xd7, 0x11, 0x20, 0xb9, 0x12, 0x4b, + 0x90, 0x8e, 0x04, 0x22, 0x96, 0xcf, 0x51, 0x0e, 0x22, 0x8d, 0xd6, 0x09, 0x6c, 0x70, 0x26, 0x78, + 0xce, 0xad, 0x41, 0x45, 0xc7, 0x24, 0x96, 0xb8, 0x51, 0xe2, 0xb5, 0x8b, 0x1b, 0x65, 0xef, 0x76, + 0x97, 0x39, 0x30, 0x95, 0x6e, 0x1b, 0xe7, 0x44, 0x50, 0xc8, 0x13, 0x46, 0x23, 0x99, 0x93, 0x5c, + 0xc9, 0x2a, 0xa4, 0x77, 0x52, 0x3b, 0x94, 0x5f, 0x0b, 0xf5, 0xe4, 0x6c, 0x04, 0xc9, 0x32, 0x10, + 0xf5, 0xf9, 0xe9, 0x8b, 0x89, 0xba, 0xb3, 0xd2, 0x66, 0x0e, 0x22, 0x0d, 0x12, 0xd8, 0x58, 0x67, + 0xe8, 0x50, 0xdf, 0x20, 0x62, 0x24, 0x05, 0xdb, 0xe8, 0x1b, 0xc3, 0x7d, 0xff, 0x40, 0xff, 0x7c, + 0x20, 0x29, 0x58, 0x37, 0xa8, 0xf3, 0x2d, 0xdd, 0x36, 0xfb, 0xc6, 0xb0, 0x33, 0x3a, 0xae, 0x7b, + 0x60, 0x9d, 0x86, 0x67, 0xb9, 0x48, 0x18, 0x0d, 0xc8, 0x4a, 0x81, 0x8f, 0x64, 0x93, 0x63, 0x5d, + 0xa2, 0x3d, 0x12, 0x47, 0x54, 0x70, 0x95, 0xd9, 0xad, 0x3f, 0x68, 0xff, 0x93, 0x78, 0x52, 0x90, + 0x2d, 0x86, 0xda, 0x55, 0x3f, 0xfb, 0x5f, 0xdf, 0x18, 0x76, 0x47, 0x01, 0xde, 0x35, 0xc5, 0x72, + 0x44, 0xf8, 0xab, 0xdb, 0x5c, 0x0f, 0x68, 0x56, 0xea, 0xef, 0x98, 0x4a, 0x77, 0x9f, 0xfa, 0x75, + 0xca, 0xf8, 0xc3, 0x40, 0xe7, 0x4b, 0x9e, 0xe2, 0x5f, 0x77, 0x35, 0x3e, 0xda, 0x1e, 0xe3, 0xb4, + 0xa8, 0x31, 0x35, 0x1e, 0xef, 0x6b, 0x25, 0xe5, 0x2b, 0xc2, 0x28, 0xe6, 0x82, 0x3a, 0x14, 0x58, + 0x59, 0x52, 0xaf, 0x34, 0x4b, 0xe4, 0x0f, 0xcf, 0xe7, 0xba, 0x41, 0xaf, 0x66, 0x6b, 0xe2, 0x79, + 0x6f, 0xe6, 0x60, 0x52, 0x59, 0x7a, 0xb1, 0xc4, 0x15, 0x2c, 0x50, 0xe0, 0x62, 0x5f, 0x33, 0xdf, + 0x35, 0x27, 0xf4, 0x62, 0x19, 0x36, 0x9c, 0x30, 0x70, 0xc3, 0x86, 0xb3, 0x68, 0x97, 0x97, 0xb8, + 0xf8, 0x0c, 0x00, 0x00, 0xff, 0xff, 0xfb, 0xa4, 0xe9, 0x8f, 0xc2, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/shared_criterion.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/shared_criterion.pb.go new file mode 100644 index 000000000..9054a742b --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/shared_criterion.pb.go @@ -0,0 +1,323 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/shared_criterion.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import common "google.golang.org/genproto/googleapis/ads/googleads/v0/common" +import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A criterion belonging to a shared set. +type SharedCriterion struct { + // The resource name of the shared criterion. + // Shared set resource names have the form: + // + // `customers/{customer_id}/sharedCriteria/{shared_set_id}_{criterion_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + // The shared set to which the shared criterion belongs. + SharedSet *wrappers.StringValue `protobuf:"bytes,2,opt,name=shared_set,json=sharedSet,proto3" json:"shared_set,omitempty"` + // The ID of the criterion. + // + // This field is ignored for mutates. + CriterionId *wrappers.Int64Value `protobuf:"bytes,26,opt,name=criterion_id,json=criterionId,proto3" json:"criterion_id,omitempty"` + // The type of the criterion. + Type enums.CriterionTypeEnum_CriterionType `protobuf:"varint,4,opt,name=type,proto3,enum=google.ads.googleads.v0.enums.CriterionTypeEnum_CriterionType" json:"type,omitempty"` + // The criterion. + // + // Exactly one must be set. + // + // Types that are valid to be assigned to Criterion: + // *SharedCriterion_Keyword + // *SharedCriterion_YoutubeVideo + // *SharedCriterion_YoutubeChannel + // *SharedCriterion_Placement + Criterion isSharedCriterion_Criterion `protobuf_oneof:"criterion"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SharedCriterion) Reset() { *m = SharedCriterion{} } +func (m *SharedCriterion) String() string { return proto.CompactTextString(m) } +func (*SharedCriterion) ProtoMessage() {} +func (*SharedCriterion) Descriptor() ([]byte, []int) { + return fileDescriptor_shared_criterion_6f71aadda527e84b, []int{0} +} +func (m *SharedCriterion) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SharedCriterion.Unmarshal(m, b) +} +func (m *SharedCriterion) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SharedCriterion.Marshal(b, m, deterministic) +} +func (dst *SharedCriterion) XXX_Merge(src proto.Message) { + xxx_messageInfo_SharedCriterion.Merge(dst, src) +} +func (m *SharedCriterion) XXX_Size() int { + return xxx_messageInfo_SharedCriterion.Size(m) +} +func (m *SharedCriterion) XXX_DiscardUnknown() { + xxx_messageInfo_SharedCriterion.DiscardUnknown(m) +} + +var xxx_messageInfo_SharedCriterion proto.InternalMessageInfo + +func (m *SharedCriterion) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func (m *SharedCriterion) GetSharedSet() *wrappers.StringValue { + if m != nil { + return m.SharedSet + } + return nil +} + +func (m *SharedCriterion) GetCriterionId() *wrappers.Int64Value { + if m != nil { + return m.CriterionId + } + return nil +} + +func (m *SharedCriterion) GetType() enums.CriterionTypeEnum_CriterionType { + if m != nil { + return m.Type + } + return enums.CriterionTypeEnum_UNSPECIFIED +} + +type isSharedCriterion_Criterion interface { + isSharedCriterion_Criterion() +} + +type SharedCriterion_Keyword struct { + Keyword *common.KeywordInfo `protobuf:"bytes,3,opt,name=keyword,proto3,oneof"` +} + +type SharedCriterion_YoutubeVideo struct { + YoutubeVideo *common.YouTubeVideoInfo `protobuf:"bytes,5,opt,name=youtube_video,json=youtubeVideo,proto3,oneof"` +} + +type SharedCriterion_YoutubeChannel struct { + YoutubeChannel *common.YouTubeChannelInfo `protobuf:"bytes,6,opt,name=youtube_channel,json=youtubeChannel,proto3,oneof"` +} + +type SharedCriterion_Placement struct { + Placement *common.PlacementInfo `protobuf:"bytes,7,opt,name=placement,proto3,oneof"` +} + +func (*SharedCriterion_Keyword) isSharedCriterion_Criterion() {} + +func (*SharedCriterion_YoutubeVideo) isSharedCriterion_Criterion() {} + +func (*SharedCriterion_YoutubeChannel) isSharedCriterion_Criterion() {} + +func (*SharedCriterion_Placement) isSharedCriterion_Criterion() {} + +func (m *SharedCriterion) GetCriterion() isSharedCriterion_Criterion { + if m != nil { + return m.Criterion + } + return nil +} + +func (m *SharedCriterion) GetKeyword() *common.KeywordInfo { + if x, ok := m.GetCriterion().(*SharedCriterion_Keyword); ok { + return x.Keyword + } + return nil +} + +func (m *SharedCriterion) GetYoutubeVideo() *common.YouTubeVideoInfo { + if x, ok := m.GetCriterion().(*SharedCriterion_YoutubeVideo); ok { + return x.YoutubeVideo + } + return nil +} + +func (m *SharedCriterion) GetYoutubeChannel() *common.YouTubeChannelInfo { + if x, ok := m.GetCriterion().(*SharedCriterion_YoutubeChannel); ok { + return x.YoutubeChannel + } + return nil +} + +func (m *SharedCriterion) GetPlacement() *common.PlacementInfo { + if x, ok := m.GetCriterion().(*SharedCriterion_Placement); ok { + return x.Placement + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*SharedCriterion) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _SharedCriterion_OneofMarshaler, _SharedCriterion_OneofUnmarshaler, _SharedCriterion_OneofSizer, []interface{}{ + (*SharedCriterion_Keyword)(nil), + (*SharedCriterion_YoutubeVideo)(nil), + (*SharedCriterion_YoutubeChannel)(nil), + (*SharedCriterion_Placement)(nil), + } +} + +func _SharedCriterion_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*SharedCriterion) + // criterion + switch x := m.Criterion.(type) { + case *SharedCriterion_Keyword: + b.EncodeVarint(3<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Keyword); err != nil { + return err + } + case *SharedCriterion_YoutubeVideo: + b.EncodeVarint(5<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.YoutubeVideo); err != nil { + return err + } + case *SharedCriterion_YoutubeChannel: + b.EncodeVarint(6<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.YoutubeChannel); err != nil { + return err + } + case *SharedCriterion_Placement: + b.EncodeVarint(7<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Placement); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("SharedCriterion.Criterion has unexpected type %T", x) + } + return nil +} + +func _SharedCriterion_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*SharedCriterion) + switch tag { + case 3: // criterion.keyword + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.KeywordInfo) + err := b.DecodeMessage(msg) + m.Criterion = &SharedCriterion_Keyword{msg} + return true, err + case 5: // criterion.youtube_video + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.YouTubeVideoInfo) + err := b.DecodeMessage(msg) + m.Criterion = &SharedCriterion_YoutubeVideo{msg} + return true, err + case 6: // criterion.youtube_channel + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.YouTubeChannelInfo) + err := b.DecodeMessage(msg) + m.Criterion = &SharedCriterion_YoutubeChannel{msg} + return true, err + case 7: // criterion.placement + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.PlacementInfo) + err := b.DecodeMessage(msg) + m.Criterion = &SharedCriterion_Placement{msg} + return true, err + default: + return false, nil + } +} + +func _SharedCriterion_OneofSizer(msg proto.Message) (n int) { + m := msg.(*SharedCriterion) + // criterion + switch x := m.Criterion.(type) { + case *SharedCriterion_Keyword: + s := proto.Size(x.Keyword) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *SharedCriterion_YoutubeVideo: + s := proto.Size(x.YoutubeVideo) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *SharedCriterion_YoutubeChannel: + s := proto.Size(x.YoutubeChannel) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *SharedCriterion_Placement: + s := proto.Size(x.Placement) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +func init() { + proto.RegisterType((*SharedCriterion)(nil), "google.ads.googleads.v0.resources.SharedCriterion") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/shared_criterion.proto", fileDescriptor_shared_criterion_6f71aadda527e84b) +} + +var fileDescriptor_shared_criterion_6f71aadda527e84b = []byte{ + // 498 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x93, 0xdf, 0x8a, 0xd3, 0x40, + 0x14, 0x87, 0x4d, 0xb7, 0xee, 0xd2, 0x69, 0x77, 0x17, 0x82, 0x17, 0xa1, 0x8a, 0x74, 0x15, 0xa1, + 0x20, 0x3b, 0x09, 0x55, 0x44, 0x58, 0x58, 0x68, 0x17, 0xa9, 0x55, 0x94, 0x92, 0x2e, 0x15, 0xa5, + 0x52, 0xa6, 0xc9, 0xd9, 0x6c, 0x30, 0x99, 0x09, 0x33, 0x49, 0x97, 0xbe, 0x8e, 0x97, 0x3e, 0x8a, + 0x6f, 0xe0, 0xbd, 0x0f, 0x22, 0x99, 0x7f, 0x8b, 0x4a, 0xad, 0x77, 0xa7, 0xa7, 0xbf, 0xef, 0xcb, + 0x39, 0xc9, 0x0c, 0x7a, 0x99, 0x30, 0x96, 0x64, 0xe0, 0x93, 0x58, 0xf8, 0xaa, 0xac, 0xab, 0x75, + 0xe0, 0x73, 0x10, 0xac, 0xe2, 0x11, 0x08, 0x5f, 0x5c, 0x13, 0x0e, 0xf1, 0x32, 0xe2, 0x69, 0x09, + 0x3c, 0x65, 0x14, 0x17, 0x9c, 0x95, 0xcc, 0x3d, 0x51, 0x71, 0x4c, 0x62, 0x81, 0x2d, 0x89, 0xd7, + 0x01, 0xb6, 0x64, 0xf7, 0x74, 0x9b, 0x3c, 0x62, 0x79, 0xce, 0xa8, 0xaf, 0x95, 0x44, 0x19, 0xbb, + 0x83, 0x6d, 0x71, 0xa0, 0x55, 0x2e, 0x7c, 0x3b, 0xc0, 0xb2, 0xdc, 0x14, 0xa0, 0x99, 0x87, 0x9a, + 0x91, 0xbf, 0x56, 0xd5, 0x95, 0x7f, 0xc3, 0x49, 0x51, 0x00, 0x17, 0xea, 0xff, 0x47, 0x3f, 0x9b, + 0xe8, 0x78, 0x26, 0x17, 0xb8, 0x30, 0xb8, 0xfb, 0x18, 0x1d, 0x9a, 0x19, 0x97, 0x94, 0xe4, 0xe0, + 0x39, 0x3d, 0xa7, 0xdf, 0x0a, 0x3b, 0xa6, 0xf9, 0x9e, 0xe4, 0xe0, 0x9e, 0x21, 0xa4, 0x17, 0x17, + 0x50, 0x7a, 0x8d, 0x9e, 0xd3, 0x6f, 0x0f, 0x1e, 0xe8, 0x45, 0xb1, 0x79, 0x1a, 0x9e, 0x95, 0x3c, + 0xa5, 0xc9, 0x9c, 0x64, 0x15, 0x84, 0x2d, 0x95, 0x9f, 0x41, 0xe9, 0x9e, 0xa3, 0xce, 0xed, 0xb4, + 0x69, 0xec, 0x75, 0x25, 0x7e, 0xff, 0x2f, 0x7c, 0x42, 0xcb, 0x17, 0xcf, 0x15, 0xdd, 0xb6, 0xc0, + 0x24, 0x76, 0x43, 0xd4, 0xac, 0x77, 0xf4, 0x9a, 0x3d, 0xa7, 0x7f, 0x34, 0x38, 0xc7, 0xdb, 0x5e, + 0xb5, 0x7c, 0x31, 0xd8, 0x6e, 0x76, 0xb9, 0x29, 0xe0, 0x15, 0xad, 0xf2, 0xdf, 0x3b, 0xa1, 0x74, + 0xb9, 0x63, 0x74, 0xf0, 0x05, 0x36, 0x37, 0x8c, 0xc7, 0xde, 0x9e, 0x1c, 0xe7, 0xe9, 0x56, 0xad, + 0xfa, 0x3c, 0xf8, 0xad, 0x8a, 0x4f, 0xe8, 0x15, 0x7b, 0x7d, 0x27, 0x34, 0xb4, 0xfb, 0x01, 0x1d, + 0x6e, 0x58, 0x55, 0x56, 0x2b, 0x58, 0xae, 0xd3, 0x18, 0x98, 0x77, 0x57, 0xea, 0x82, 0x5d, 0xba, + 0x8f, 0xac, 0xba, 0xac, 0x56, 0x30, 0xaf, 0x19, 0xed, 0xec, 0x68, 0x91, 0xec, 0xb9, 0x9f, 0xd1, + 0xb1, 0x11, 0x47, 0xd7, 0x84, 0x52, 0xc8, 0xbc, 0x7d, 0xa9, 0x1e, 0xfc, 0xa7, 0xfa, 0x42, 0x51, + 0x5a, 0x7e, 0xa4, 0x65, 0xba, 0xeb, 0xbe, 0x43, 0xad, 0x22, 0x23, 0x11, 0xe4, 0x40, 0x4b, 0xef, + 0x40, 0x8a, 0x4f, 0x77, 0x89, 0xa7, 0x06, 0xd0, 0xce, 0x5b, 0xc3, 0xa8, 0x8d, 0x5a, 0xf6, 0x93, + 0x8d, 0x7e, 0x38, 0xe8, 0x49, 0xc4, 0x72, 0xbc, 0xf3, 0x4e, 0x8c, 0xee, 0xfd, 0x71, 0x1a, 0xa7, + 0xf5, 0x59, 0x98, 0x3a, 0x9f, 0xde, 0x68, 0x34, 0x61, 0x19, 0xa1, 0x09, 0x66, 0x3c, 0xf1, 0x13, + 0xa0, 0xf2, 0xa4, 0x98, 0xcb, 0x50, 0xa4, 0xe2, 0x1f, 0xf7, 0xf4, 0xcc, 0x56, 0x5f, 0x1b, 0x7b, + 0xe3, 0xe1, 0xf0, 0x5b, 0xe3, 0x64, 0xac, 0x94, 0xc3, 0x58, 0x60, 0x55, 0xd6, 0xd5, 0x3c, 0xc0, + 0xa1, 0x49, 0x7e, 0x37, 0x99, 0xc5, 0x30, 0x16, 0x0b, 0x9b, 0x59, 0xcc, 0x83, 0x85, 0xcd, 0xac, + 0xf6, 0xe5, 0x10, 0xcf, 0x7e, 0x05, 0x00, 0x00, 0xff, 0xff, 0x5c, 0x15, 0x3a, 0x23, 0x2b, 0x04, + 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/shared_set.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/shared_set.pb.go new file mode 100644 index 000000000..0d3b2bdff --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/shared_set.pb.go @@ -0,0 +1,163 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/shared_set.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// SharedSets are used for sharing criterion exclusions across multiple +// campaigns. +type SharedSet struct { + // The resource name of the shared set. + // Shared set resource names have the form: + // + // `customers/{customer_id}/sharedSets/{shared_set_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + // The ID of this shared set. Read only. + Id *wrappers.Int64Value `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` + // The type of this shared set: each shared set holds only a single kind + // of entity. Required. Immutable. + Type enums.SharedSetTypeEnum_SharedSetType `protobuf:"varint,3,opt,name=type,proto3,enum=google.ads.googleads.v0.enums.SharedSetTypeEnum_SharedSetType" json:"type,omitempty"` + // The name of this shared set. Required. + // Shared Sets must have names that are unique among active shared sets of + // the same type. + // The length of this string should be between 1 and 255 UTF-8 bytes, + // inclusive. + Name *wrappers.StringValue `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + // The status of this shared set. Read only. + Status enums.SharedSetStatusEnum_SharedSetStatus `protobuf:"varint,5,opt,name=status,proto3,enum=google.ads.googleads.v0.enums.SharedSetStatusEnum_SharedSetStatus" json:"status,omitempty"` + // The number of shared criteria within this shared set. Read only. + MemberCount *wrappers.Int64Value `protobuf:"bytes,6,opt,name=member_count,json=memberCount,proto3" json:"member_count,omitempty"` + // The number of campaigns associated with this shared set. Read only. + ReferenceCount *wrappers.Int64Value `protobuf:"bytes,7,opt,name=reference_count,json=referenceCount,proto3" json:"reference_count,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SharedSet) Reset() { *m = SharedSet{} } +func (m *SharedSet) String() string { return proto.CompactTextString(m) } +func (*SharedSet) ProtoMessage() {} +func (*SharedSet) Descriptor() ([]byte, []int) { + return fileDescriptor_shared_set_62551757b5337245, []int{0} +} +func (m *SharedSet) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SharedSet.Unmarshal(m, b) +} +func (m *SharedSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SharedSet.Marshal(b, m, deterministic) +} +func (dst *SharedSet) XXX_Merge(src proto.Message) { + xxx_messageInfo_SharedSet.Merge(dst, src) +} +func (m *SharedSet) XXX_Size() int { + return xxx_messageInfo_SharedSet.Size(m) +} +func (m *SharedSet) XXX_DiscardUnknown() { + xxx_messageInfo_SharedSet.DiscardUnknown(m) +} + +var xxx_messageInfo_SharedSet proto.InternalMessageInfo + +func (m *SharedSet) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func (m *SharedSet) GetId() *wrappers.Int64Value { + if m != nil { + return m.Id + } + return nil +} + +func (m *SharedSet) GetType() enums.SharedSetTypeEnum_SharedSetType { + if m != nil { + return m.Type + } + return enums.SharedSetTypeEnum_UNSPECIFIED +} + +func (m *SharedSet) GetName() *wrappers.StringValue { + if m != nil { + return m.Name + } + return nil +} + +func (m *SharedSet) GetStatus() enums.SharedSetStatusEnum_SharedSetStatus { + if m != nil { + return m.Status + } + return enums.SharedSetStatusEnum_UNSPECIFIED +} + +func (m *SharedSet) GetMemberCount() *wrappers.Int64Value { + if m != nil { + return m.MemberCount + } + return nil +} + +func (m *SharedSet) GetReferenceCount() *wrappers.Int64Value { + if m != nil { + return m.ReferenceCount + } + return nil +} + +func init() { + proto.RegisterType((*SharedSet)(nil), "google.ads.googleads.v0.resources.SharedSet") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/shared_set.proto", fileDescriptor_shared_set_62551757b5337245) +} + +var fileDescriptor_shared_set_62551757b5337245 = []byte{ + // 420 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x93, 0x41, 0x8b, 0xd3, 0x40, + 0x18, 0x86, 0x49, 0x5a, 0x2b, 0x3b, 0xbb, 0x56, 0x98, 0x53, 0x58, 0x45, 0xba, 0x8a, 0x50, 0x10, + 0x26, 0xa1, 0xab, 0x5e, 0x84, 0x85, 0x54, 0x65, 0xd1, 0x83, 0x2c, 0x89, 0xf4, 0x50, 0x02, 0x61, + 0x9a, 0x7c, 0x8d, 0x81, 0x66, 0x26, 0xcc, 0x4c, 0x2a, 0xfd, 0x3b, 0x1e, 0xfd, 0x1f, 0x5e, 0xbc, + 0xfa, 0x87, 0x24, 0x33, 0xc9, 0x60, 0x91, 0x6e, 0x7b, 0xfb, 0x3a, 0xbc, 0xef, 0xd3, 0x67, 0x3e, + 0x26, 0x68, 0x56, 0x70, 0x5e, 0x6c, 0xc0, 0xa7, 0xb9, 0xf4, 0xcd, 0xd8, 0x4e, 0xdb, 0xc0, 0x17, + 0x20, 0x79, 0x23, 0x32, 0x90, 0xbe, 0xfc, 0x46, 0x05, 0xe4, 0xa9, 0x04, 0x45, 0x6a, 0xc1, 0x15, + 0xc7, 0x57, 0x26, 0x48, 0x68, 0x2e, 0x89, 0xed, 0x90, 0x6d, 0x40, 0x6c, 0xe7, 0xf2, 0xcd, 0x21, + 0x2c, 0xb0, 0xa6, 0xfa, 0x17, 0x99, 0x4a, 0x45, 0x55, 0x23, 0x0d, 0xf9, 0xf2, 0xfa, 0xe4, 0x9a, + 0xda, 0xd5, 0xd0, 0x95, 0x9e, 0x75, 0x25, 0xfd, 0x6b, 0xd5, 0xac, 0xfd, 0xef, 0x82, 0xd6, 0x35, + 0x88, 0x0e, 0xfa, 0xfc, 0xd7, 0x00, 0x9d, 0xc5, 0xba, 0x19, 0x83, 0xc2, 0x2f, 0xd0, 0xa3, 0x5e, + 0x33, 0x65, 0xb4, 0x02, 0xcf, 0x99, 0x38, 0xd3, 0xb3, 0xe8, 0xa2, 0x3f, 0xfc, 0x42, 0x2b, 0xc0, + 0xaf, 0x90, 0x5b, 0xe6, 0x9e, 0x3b, 0x71, 0xa6, 0xe7, 0xb3, 0x27, 0xdd, 0x1d, 0x49, 0xcf, 0x27, + 0x9f, 0x98, 0x7a, 0xfb, 0x7a, 0x41, 0x37, 0x0d, 0x44, 0x6e, 0x99, 0xe3, 0x08, 0x0d, 0x5b, 0x1b, + 0x6f, 0x30, 0x71, 0xa6, 0xe3, 0xd9, 0x0d, 0x39, 0xb4, 0x1d, 0x7d, 0x07, 0x62, 0x4d, 0xbe, 0xee, + 0x6a, 0xf8, 0xc8, 0x9a, 0x6a, 0xff, 0x24, 0xd2, 0x2c, 0x1c, 0xa0, 0xa1, 0x96, 0x1b, 0x6a, 0x85, + 0xa7, 0xff, 0x29, 0xc4, 0x4a, 0x94, 0xac, 0x30, 0x0e, 0x3a, 0x89, 0x97, 0x68, 0x64, 0x56, 0xe9, + 0x3d, 0xd0, 0x1e, 0xf3, 0x53, 0x3d, 0x62, 0xdd, 0xda, 0x37, 0x31, 0x67, 0x51, 0x47, 0xc4, 0x37, + 0xe8, 0xa2, 0x82, 0x6a, 0x05, 0x22, 0xcd, 0x78, 0xc3, 0x94, 0x37, 0x3a, 0xbe, 0x98, 0x73, 0x53, + 0x78, 0xdf, 0xe6, 0xf1, 0x07, 0xf4, 0x58, 0xc0, 0x1a, 0x04, 0xb0, 0x0c, 0x3a, 0xc4, 0xc3, 0xe3, + 0x88, 0xb1, 0xed, 0x68, 0xca, 0xfc, 0x8f, 0x83, 0x5e, 0x66, 0xbc, 0x22, 0x47, 0x5f, 0xdf, 0x7c, + 0x6c, 0x2f, 0x72, 0xd7, 0x72, 0xef, 0x9c, 0xe5, 0xe7, 0xae, 0x54, 0xf0, 0x0d, 0x65, 0x05, 0xe1, + 0xa2, 0xf0, 0x0b, 0x60, 0xfa, 0x5f, 0xfb, 0x87, 0x56, 0x97, 0xf2, 0x9e, 0xaf, 0xe0, 0x9d, 0x9d, + 0x7e, 0xb8, 0x83, 0xdb, 0x30, 0xfc, 0xe9, 0x5e, 0xdd, 0x1a, 0x64, 0x98, 0x4b, 0x62, 0xc6, 0x76, + 0x5a, 0x04, 0x24, 0xea, 0x93, 0xbf, 0xfb, 0x4c, 0x12, 0xe6, 0x32, 0xb1, 0x99, 0x64, 0x11, 0x24, + 0x36, 0xb3, 0x1a, 0x69, 0x89, 0xeb, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0xa9, 0x69, 0x38, 0xf9, + 0x89, 0x03, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/topic_constant.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/topic_constant.pb.go new file mode 100644 index 000000000..00c068e8f --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/topic_constant.pb.go @@ -0,0 +1,132 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/topic_constant.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Use topics to target or exclude placements in the Google Display Network +// based on the category into which the placement falls (for example, +// "Pets & Animals/Pets/Dogs"). +type TopicConstant struct { + // The resource name of the topic constant. + // topic constant resource names have the form: + // + // `topicConstants/{topic_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + // The ID of the topic. + Id *wrappers.Int64Value `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` + // Resource name of parent of the topic constant. + TopicConstantParent *wrappers.StringValue `protobuf:"bytes,3,opt,name=topic_constant_parent,json=topicConstantParent,proto3" json:"topic_constant_parent,omitempty"` + // The category to target or exclude. Each subsequent element in the array + // describes a more specific sub-category. For example, + // {"Pets & Animals", "Pets", "Dogs"} represents the + // "Pets & Animals/Pets/Dogs" category. A complete list of available topic + // categories is available + // + // here + Path []*wrappers.StringValue `protobuf:"bytes,4,rep,name=path,proto3" json:"path,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TopicConstant) Reset() { *m = TopicConstant{} } +func (m *TopicConstant) String() string { return proto.CompactTextString(m) } +func (*TopicConstant) ProtoMessage() {} +func (*TopicConstant) Descriptor() ([]byte, []int) { + return fileDescriptor_topic_constant_65f470286ad84f07, []int{0} +} +func (m *TopicConstant) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TopicConstant.Unmarshal(m, b) +} +func (m *TopicConstant) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TopicConstant.Marshal(b, m, deterministic) +} +func (dst *TopicConstant) XXX_Merge(src proto.Message) { + xxx_messageInfo_TopicConstant.Merge(dst, src) +} +func (m *TopicConstant) XXX_Size() int { + return xxx_messageInfo_TopicConstant.Size(m) +} +func (m *TopicConstant) XXX_DiscardUnknown() { + xxx_messageInfo_TopicConstant.DiscardUnknown(m) +} + +var xxx_messageInfo_TopicConstant proto.InternalMessageInfo + +func (m *TopicConstant) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func (m *TopicConstant) GetId() *wrappers.Int64Value { + if m != nil { + return m.Id + } + return nil +} + +func (m *TopicConstant) GetTopicConstantParent() *wrappers.StringValue { + if m != nil { + return m.TopicConstantParent + } + return nil +} + +func (m *TopicConstant) GetPath() []*wrappers.StringValue { + if m != nil { + return m.Path + } + return nil +} + +func init() { + proto.RegisterType((*TopicConstant)(nil), "google.ads.googleads.v0.resources.TopicConstant") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/topic_constant.proto", fileDescriptor_topic_constant_65f470286ad84f07) +} + +var fileDescriptor_topic_constant_65f470286ad84f07 = []byte{ + // 327 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x91, 0xd1, 0x4a, 0xf3, 0x30, + 0x18, 0x86, 0x69, 0x37, 0x7e, 0xf8, 0xa3, 0x3b, 0xa9, 0x08, 0x45, 0x45, 0x36, 0x45, 0x18, 0x08, + 0x49, 0x51, 0xd9, 0x89, 0x47, 0x9d, 0x07, 0x43, 0x0f, 0xa4, 0x4c, 0xd9, 0x81, 0x14, 0x46, 0xd6, + 0xc4, 0x58, 0xd8, 0x92, 0x90, 0xa4, 0xf3, 0x7e, 0x3c, 0xf4, 0x52, 0xbc, 0x01, 0xaf, 0xc0, 0xfb, + 0x90, 0x26, 0x4d, 0x71, 0x08, 0xee, 0xec, 0x25, 0xbc, 0xcf, 0xf3, 0x7d, 0xe4, 0x03, 0x23, 0x26, + 0x04, 0x5b, 0x52, 0x84, 0x89, 0x46, 0x2e, 0xd6, 0x69, 0x9d, 0x20, 0x45, 0xb5, 0xa8, 0x54, 0x41, + 0x35, 0x32, 0x42, 0x96, 0xc5, 0xbc, 0x10, 0x5c, 0x1b, 0xcc, 0x0d, 0x94, 0x4a, 0x18, 0x11, 0x0d, + 0x5c, 0x19, 0x62, 0xa2, 0x61, 0xcb, 0xc1, 0x75, 0x02, 0x5b, 0xee, 0xe0, 0xb8, 0x51, 0x5b, 0x60, + 0x51, 0x3d, 0xa3, 0x57, 0x85, 0xa5, 0xa4, 0x4a, 0x3b, 0xc5, 0xc9, 0x57, 0x00, 0x7a, 0x8f, 0xb5, + 0xfb, 0xa6, 0x51, 0x47, 0xa7, 0xa0, 0xe7, 0xf1, 0x39, 0xc7, 0x2b, 0x1a, 0x07, 0xfd, 0x60, 0xf8, + 0x7f, 0xba, 0xeb, 0x1f, 0xef, 0xf1, 0x8a, 0x46, 0xe7, 0x20, 0x2c, 0x49, 0x1c, 0xf6, 0x83, 0xe1, + 0xce, 0xc5, 0x61, 0x33, 0x1b, 0xfa, 0x19, 0xf0, 0x96, 0x9b, 0xd1, 0xd5, 0x0c, 0x2f, 0x2b, 0x3a, + 0x0d, 0x4b, 0x12, 0x65, 0x60, 0x7f, 0x73, 0xfd, 0xb9, 0xc4, 0x8a, 0x72, 0x13, 0x77, 0x2c, 0x7f, + 0xf4, 0x8b, 0x7f, 0x30, 0xaa, 0xe4, 0xcc, 0x09, 0xf6, 0xcc, 0xcf, 0xed, 0x32, 0x0b, 0x46, 0x09, + 0xe8, 0x4a, 0x6c, 0x5e, 0xe2, 0x6e, 0xbf, 0xb3, 0x55, 0x60, 0x9b, 0xe3, 0xcf, 0x00, 0x9c, 0x15, + 0x62, 0x05, 0xb7, 0xfe, 0xd8, 0x38, 0xda, 0xf8, 0x8e, 0xac, 0x56, 0x66, 0xc1, 0xd3, 0x5d, 0x03, + 0x32, 0xb1, 0xc4, 0x9c, 0x41, 0xa1, 0x18, 0x62, 0x94, 0xdb, 0x81, 0xfe, 0x64, 0xb2, 0xd4, 0x7f, + 0x5c, 0xf0, 0xba, 0x4d, 0x6f, 0x61, 0x67, 0x92, 0xa6, 0xef, 0xe1, 0x60, 0xe2, 0x94, 0x29, 0xd1, + 0xd0, 0xc5, 0x3a, 0xcd, 0x12, 0x38, 0xf5, 0xcd, 0x0f, 0xdf, 0xc9, 0x53, 0xa2, 0xf3, 0xb6, 0x93, + 0xcf, 0x92, 0xbc, 0xed, 0x2c, 0xfe, 0xd9, 0x25, 0x2e, 0xbf, 0x03, 0x00, 0x00, 0xff, 0xff, 0x0f, + 0xe9, 0xf0, 0xd7, 0x45, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/topic_view.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/topic_view.pb.go new file mode 100644 index 000000000..700dff6bf --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/topic_view.pb.go @@ -0,0 +1,88 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/topic_view.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A topic view. +type TopicView struct { + // The resource name of the topic view. + // Topic view resource names have the form: + // + // `customers/{customer_id}/topicViews/{ad_group_id}_{criterion_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TopicView) Reset() { *m = TopicView{} } +func (m *TopicView) String() string { return proto.CompactTextString(m) } +func (*TopicView) ProtoMessage() {} +func (*TopicView) Descriptor() ([]byte, []int) { + return fileDescriptor_topic_view_b0ffb79b2c716b89, []int{0} +} +func (m *TopicView) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TopicView.Unmarshal(m, b) +} +func (m *TopicView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TopicView.Marshal(b, m, deterministic) +} +func (dst *TopicView) XXX_Merge(src proto.Message) { + xxx_messageInfo_TopicView.Merge(dst, src) +} +func (m *TopicView) XXX_Size() int { + return xxx_messageInfo_TopicView.Size(m) +} +func (m *TopicView) XXX_DiscardUnknown() { + xxx_messageInfo_TopicView.DiscardUnknown(m) +} + +var xxx_messageInfo_TopicView proto.InternalMessageInfo + +func (m *TopicView) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*TopicView)(nil), "google.ads.googleads.v0.resources.TopicView") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/topic_view.proto", fileDescriptor_topic_view_b0ffb79b2c716b89) +} + +var fileDescriptor_topic_view_b0ffb79b2c716b89 = []byte{ + // 221 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x32, 0x4a, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xa2, 0xd4, + 0xe2, 0xfc, 0xd2, 0xa2, 0xe4, 0xd4, 0x62, 0xfd, 0x92, 0xfc, 0x82, 0xcc, 0xe4, 0xf8, 0xb2, 0xcc, + 0xd4, 0x72, 0xbd, 0x82, 0xa2, 0xfc, 0x92, 0x7c, 0x21, 0x45, 0x88, 0x42, 0xbd, 0xc4, 0x94, 0x62, + 0x3d, 0xb8, 0x1e, 0xbd, 0x32, 0x03, 0x3d, 0xb8, 0x1e, 0x25, 0x03, 0x2e, 0xce, 0x10, 0x90, 0xb6, + 0xb0, 0xcc, 0xd4, 0x72, 0x21, 0x65, 0x2e, 0x5e, 0x98, 0x4c, 0x7c, 0x5e, 0x62, 0x6e, 0xaa, 0x04, + 0xa3, 0x02, 0xa3, 0x06, 0x67, 0x10, 0x0f, 0x4c, 0xd0, 0x2f, 0x31, 0x37, 0xd5, 0xe9, 0x32, 0x23, + 0x97, 0x6a, 0x72, 0x7e, 0xae, 0x1e, 0x41, 0xb3, 0x9d, 0xf8, 0xe0, 0x26, 0x07, 0x80, 0x9c, 0x13, + 0xc0, 0x18, 0xe5, 0x05, 0xd5, 0x94, 0x9e, 0x9f, 0x93, 0x98, 0x97, 0xae, 0x97, 0x5f, 0x94, 0xae, + 0x9f, 0x9e, 0x9a, 0x07, 0x76, 0x2c, 0xcc, 0x53, 0x05, 0x99, 0xc5, 0x78, 0xfc, 0x68, 0x0d, 0x67, + 0x2d, 0x62, 0x62, 0x76, 0x77, 0x74, 0x5c, 0xc5, 0xa4, 0xe8, 0x0e, 0x31, 0xd2, 0x31, 0xa5, 0x58, + 0x0f, 0xc2, 0x04, 0xb1, 0xc2, 0x0c, 0xf4, 0x82, 0x60, 0x2a, 0x4f, 0xc1, 0xd4, 0xc4, 0x38, 0xa6, + 0x14, 0xc7, 0xc0, 0xd5, 0xc4, 0x84, 0x19, 0xc4, 0xc0, 0xd5, 0x24, 0xb1, 0x81, 0x1d, 0x61, 0x0c, + 0x08, 0x00, 0x00, 0xff, 0xff, 0x59, 0x2b, 0x41, 0x19, 0x67, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/user_interest.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/user_interest.pb.go new file mode 100644 index 000000000..c783bb027 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/user_interest.pb.go @@ -0,0 +1,162 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/user_interest.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import common "google.golang.org/genproto/googleapis/ads/googleads/v0/common" +import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A user interest: a particular interest-based vertical to be targeted. +type UserInterest struct { + // The resource name of the user interest. + // User interest resource names have the form: + // + // `customers/{customer_id}/userInterests/{user_interest_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + // Taxonomy type of the user interest. + TaxonomyType enums.UserInterestTaxonomyTypeEnum_UserInterestTaxonomyType `protobuf:"varint,2,opt,name=taxonomy_type,json=taxonomyType,proto3,enum=google.ads.googleads.v0.enums.UserInterestTaxonomyTypeEnum_UserInterestTaxonomyType" json:"taxonomy_type,omitempty"` + // The ID of the user interest. + UserInterestId *wrappers.Int64Value `protobuf:"bytes,3,opt,name=user_interest_id,json=userInterestId,proto3" json:"user_interest_id,omitempty"` + // The name of the user interest. + Name *wrappers.StringValue `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + // The parent of the user interest. + UserInterestParent *wrappers.StringValue `protobuf:"bytes,5,opt,name=user_interest_parent,json=userInterestParent,proto3" json:"user_interest_parent,omitempty"` + // True if the user interest is launched to all channels and locales. + LaunchedToAll *wrappers.BoolValue `protobuf:"bytes,6,opt,name=launched_to_all,json=launchedToAll,proto3" json:"launched_to_all,omitempty"` + // Availability information of the user interest. + Availabilities []*common.CriterionCategoryAvailability `protobuf:"bytes,7,rep,name=availabilities,proto3" json:"availabilities,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UserInterest) Reset() { *m = UserInterest{} } +func (m *UserInterest) String() string { return proto.CompactTextString(m) } +func (*UserInterest) ProtoMessage() {} +func (*UserInterest) Descriptor() ([]byte, []int) { + return fileDescriptor_user_interest_3d236450e913a580, []int{0} +} +func (m *UserInterest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserInterest.Unmarshal(m, b) +} +func (m *UserInterest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserInterest.Marshal(b, m, deterministic) +} +func (dst *UserInterest) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserInterest.Merge(dst, src) +} +func (m *UserInterest) XXX_Size() int { + return xxx_messageInfo_UserInterest.Size(m) +} +func (m *UserInterest) XXX_DiscardUnknown() { + xxx_messageInfo_UserInterest.DiscardUnknown(m) +} + +var xxx_messageInfo_UserInterest proto.InternalMessageInfo + +func (m *UserInterest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func (m *UserInterest) GetTaxonomyType() enums.UserInterestTaxonomyTypeEnum_UserInterestTaxonomyType { + if m != nil { + return m.TaxonomyType + } + return enums.UserInterestTaxonomyTypeEnum_UNSPECIFIED +} + +func (m *UserInterest) GetUserInterestId() *wrappers.Int64Value { + if m != nil { + return m.UserInterestId + } + return nil +} + +func (m *UserInterest) GetName() *wrappers.StringValue { + if m != nil { + return m.Name + } + return nil +} + +func (m *UserInterest) GetUserInterestParent() *wrappers.StringValue { + if m != nil { + return m.UserInterestParent + } + return nil +} + +func (m *UserInterest) GetLaunchedToAll() *wrappers.BoolValue { + if m != nil { + return m.LaunchedToAll + } + return nil +} + +func (m *UserInterest) GetAvailabilities() []*common.CriterionCategoryAvailability { + if m != nil { + return m.Availabilities + } + return nil +} + +func init() { + proto.RegisterType((*UserInterest)(nil), "google.ads.googleads.v0.resources.UserInterest") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/user_interest.proto", fileDescriptor_user_interest_3d236450e913a580) +} + +var fileDescriptor_user_interest_3d236450e913a580 = []byte{ + // 487 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x93, 0xdf, 0x8a, 0xd3, 0x40, + 0x14, 0xc6, 0x49, 0x5b, 0x57, 0x9c, 0x6d, 0xab, 0x06, 0x2f, 0x42, 0x15, 0xe9, 0x2a, 0x42, 0xaf, + 0x26, 0xa1, 0xfe, 0xb9, 0x11, 0x91, 0x74, 0x5d, 0x96, 0x7a, 0xb1, 0x94, 0x58, 0x7b, 0x21, 0x85, + 0x30, 0x4d, 0x8e, 0x71, 0x60, 0x32, 0x13, 0x66, 0x26, 0xd5, 0xbc, 0xce, 0x5e, 0xfa, 0x28, 0x3e, + 0x80, 0xcf, 0x23, 0x4d, 0x32, 0x21, 0xdd, 0x25, 0xea, 0xdd, 0x99, 0xce, 0xf9, 0x7e, 0xdf, 0x39, + 0x9d, 0x2f, 0xe8, 0x75, 0x22, 0x44, 0xc2, 0xc0, 0x25, 0xb1, 0x72, 0xab, 0xf2, 0x50, 0xed, 0x3d, + 0x57, 0x82, 0x12, 0xb9, 0x8c, 0x40, 0xb9, 0xb9, 0x02, 0x19, 0x52, 0xae, 0x41, 0x82, 0xd2, 0x38, + 0x93, 0x42, 0x0b, 0xfb, 0xac, 0xea, 0xc5, 0x24, 0x56, 0xb8, 0x91, 0xe1, 0xbd, 0x87, 0x1b, 0xd9, + 0xe4, 0x43, 0x17, 0x39, 0x12, 0x69, 0x2a, 0xb8, 0x1b, 0x49, 0xaa, 0x41, 0x52, 0xc1, 0xc3, 0x88, + 0x68, 0x48, 0x84, 0x2c, 0x42, 0xb2, 0x27, 0x94, 0x91, 0x1d, 0x65, 0x54, 0x17, 0x95, 0xd1, 0xe4, + 0x7d, 0x17, 0x05, 0x78, 0x9e, 0xde, 0x98, 0x2d, 0xd4, 0xe4, 0x87, 0xe0, 0x22, 0x2d, 0x42, 0x5d, + 0x64, 0x50, 0x03, 0x9e, 0xd6, 0x80, 0xf2, 0xb4, 0xcb, 0xbf, 0xba, 0xdf, 0x25, 0xc9, 0x32, 0x90, + 0xaa, 0xba, 0x7f, 0x76, 0x3d, 0x40, 0xc3, 0xcf, 0x0a, 0xe4, 0xb2, 0x86, 0xd8, 0xcf, 0xd1, 0xc8, + 0x2c, 0x11, 0x72, 0x92, 0x82, 0x63, 0x4d, 0xad, 0xd9, 0xbd, 0x60, 0x68, 0x7e, 0xbc, 0x22, 0x29, + 0xd8, 0x05, 0x1a, 0x1d, 0x99, 0x39, 0xbd, 0xa9, 0x35, 0x1b, 0xcf, 0xd7, 0xb8, 0xeb, 0x7f, 0x29, + 0xc7, 0xc5, 0x6d, 0xa3, 0x75, 0xad, 0x5f, 0x17, 0x19, 0x5c, 0xf0, 0x3c, 0xed, 0xbc, 0x0c, 0x86, + 0xba, 0x75, 0xb2, 0x2f, 0xd0, 0x83, 0xe3, 0xad, 0x69, 0xec, 0xf4, 0xa7, 0xd6, 0xec, 0x74, 0xfe, + 0xd8, 0xb8, 0x9b, 0x5d, 0xf1, 0x92, 0xeb, 0x37, 0xaf, 0x36, 0x84, 0xe5, 0x10, 0x8c, 0xf3, 0x16, + 0x7e, 0x19, 0xdb, 0x1e, 0x1a, 0x94, 0xdb, 0x0d, 0x4a, 0xe9, 0x93, 0x5b, 0xd2, 0x4f, 0x5a, 0x52, + 0x9e, 0x54, 0xda, 0xb2, 0xd3, 0xbe, 0x42, 0x8f, 0x8e, 0x8d, 0x33, 0x22, 0x81, 0x6b, 0xe7, 0xce, + 0x7f, 0x10, 0xec, 0xb6, 0xfb, 0xaa, 0xd4, 0xd9, 0x0b, 0x74, 0x9f, 0x91, 0x9c, 0x47, 0xdf, 0x20, + 0x0e, 0xb5, 0x08, 0x09, 0x63, 0xce, 0x49, 0x89, 0x9a, 0xdc, 0x42, 0x2d, 0x84, 0x60, 0x15, 0x68, + 0x64, 0x24, 0x6b, 0xe1, 0x33, 0x66, 0x03, 0x1a, 0xb7, 0x42, 0x43, 0x41, 0x39, 0x77, 0xa7, 0xfd, + 0xd9, 0xe9, 0xfc, 0x5d, 0xe7, 0x43, 0x54, 0xe9, 0xc3, 0xe7, 0x26, 0x7d, 0xe7, 0x75, 0xf8, 0xfc, + 0x56, 0xf6, 0x82, 0x1b, 0xd0, 0xc5, 0x6f, 0x0b, 0xbd, 0x88, 0x44, 0x8a, 0xff, 0x99, 0xfa, 0xc5, + 0xc3, 0xf6, 0x2b, 0xae, 0x0e, 0xf3, 0xaf, 0xac, 0x2f, 0x1f, 0x6b, 0x5d, 0x22, 0x18, 0xe1, 0x09, + 0x16, 0x32, 0x71, 0x13, 0xe0, 0xe5, 0x76, 0x26, 0xd4, 0x19, 0x55, 0x7f, 0xf9, 0x06, 0xdf, 0x36, + 0xd5, 0x75, 0xaf, 0x7f, 0xe9, 0xfb, 0x3f, 0x7b, 0x67, 0x97, 0x15, 0xd2, 0x8f, 0x15, 0xae, 0xca, + 0x43, 0xb5, 0xf1, 0x70, 0x60, 0x3a, 0x7f, 0x99, 0x9e, 0xad, 0x1f, 0xab, 0x6d, 0xd3, 0xb3, 0xdd, + 0x78, 0xdb, 0xa6, 0x67, 0x77, 0x52, 0x0e, 0xf1, 0xf2, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x78, + 0x40, 0x95, 0x80, 0x07, 0x04, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/user_list.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/user_list.pb.go new file mode 100644 index 000000000..966e81b94 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/user_list.pb.go @@ -0,0 +1,438 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/user_list.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import common "google.golang.org/genproto/googleapis/ads/googleads/v0/common" +import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A user list. This is a list of users a customer may target. +type UserList struct { + // The resource name of the user list. + // User list resource names have the form: + // + // `customers/{customer_id}/userLists/{user_list_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + // Id of the user list. + Id *wrappers.Int64Value `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` + // A flag that indicates if a user may edit a list. Depends on the list + // ownership and list type. For example, external remarketing user lists are + // not editable. + // + // This field is read-only. + ReadOnly *wrappers.BoolValue `protobuf:"bytes,3,opt,name=read_only,json=readOnly,proto3" json:"read_only,omitempty"` + // Name of this user list. Depending on its access_reason, the user list name + // may not be unique (e.g. if access_reason=SHARED) + Name *wrappers.StringValue `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + // Description of this user list. + Description *wrappers.StringValue `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` + // Membership status of this user list. Indicates whether a user list is open + // or active. Only open user lists can accumulate more users and can be + // targeted to. + MembershipStatus enums.UserListMembershipStatusEnum_UserListMembershipStatus `protobuf:"varint,6,opt,name=membership_status,json=membershipStatus,proto3,enum=google.ads.googleads.v0.enums.UserListMembershipStatusEnum_UserListMembershipStatus" json:"membership_status,omitempty"` + // An ID from external system. It is used by user list sellers to correlate + // IDs on their systems. + IntegrationCode *wrappers.StringValue `protobuf:"bytes,7,opt,name=integration_code,json=integrationCode,proto3" json:"integration_code,omitempty"` + // Number of days a user's cookie stays on your list since its most recent + // addition to the list. This field must be between 0 and 540 inclusive. + // However, for CRM based userlists, this field can be set to 10000 which + // means no expiration. + // + // It'll be ignored for logical_user_list. + MembershipLifeSpan *wrappers.Int64Value `protobuf:"bytes,8,opt,name=membership_life_span,json=membershipLifeSpan,proto3" json:"membership_life_span,omitempty"` + // Estimated number of users in this user list, on the Google Display Network. + // This value is null if the number of users has not yet been determined. + // + // This field is read-only. + SizeForDisplay *wrappers.Int64Value `protobuf:"bytes,9,opt,name=size_for_display,json=sizeForDisplay,proto3" json:"size_for_display,omitempty"` + // Size range in terms of number of users of the UserList, on the Google + // Display Network. + // + // This field is read-only. + SizeRangeForDisplay enums.UserListSizeRangeEnum_UserListSizeRange `protobuf:"varint,10,opt,name=size_range_for_display,json=sizeRangeForDisplay,proto3,enum=google.ads.googleads.v0.enums.UserListSizeRangeEnum_UserListSizeRange" json:"size_range_for_display,omitempty"` + // Estimated number of users in this user list in the google.com domain. + // These are the users available for targeting in Search campaigns. + // This value is null if the number of users has not yet been determined. + // + // This field is read-only. + SizeForSearch *wrappers.Int64Value `protobuf:"bytes,11,opt,name=size_for_search,json=sizeForSearch,proto3" json:"size_for_search,omitempty"` + // Size range in terms of number of users of the UserList, for Search ads. + // + // This field is read-only. + SizeRangeForSearch enums.UserListSizeRangeEnum_UserListSizeRange `protobuf:"varint,12,opt,name=size_range_for_search,json=sizeRangeForSearch,proto3,enum=google.ads.googleads.v0.enums.UserListSizeRangeEnum_UserListSizeRange" json:"size_range_for_search,omitempty"` + // Type of this list. + // + // This field is read-only. + Type enums.UserListTypeEnum_UserListType `protobuf:"varint,13,opt,name=type,proto3,enum=google.ads.googleads.v0.enums.UserListTypeEnum_UserListType" json:"type,omitempty"` + // Indicating the reason why this user list membership status is closed. It is + // only populated on lists that were automatically closed due to inactivity, + // and will be cleared once the list membership status becomes open. + ClosingReason enums.UserListClosingReasonEnum_UserListClosingReason `protobuf:"varint,14,opt,name=closing_reason,json=closingReason,proto3,enum=google.ads.googleads.v0.enums.UserListClosingReasonEnum_UserListClosingReason" json:"closing_reason,omitempty"` + // Indicates the reason this account has been granted access to the list. + // The reason can be SHARED, OWNED, LICENSED or SUBSCRIBED. + // + // This field is read-only. + AccessReason enums.AccessReasonEnum_AccessReason `protobuf:"varint,15,opt,name=access_reason,json=accessReason,proto3,enum=google.ads.googleads.v0.enums.AccessReasonEnum_AccessReason" json:"access_reason,omitempty"` + // Indicates if this share is still enabled. When a UserList is shared with + // the user this field is set to ENABLED. Later the userList owner can decide + // to revoke the share and make it DISABLED. + // The default value of this field is set to ENABLED. + AccountUserListStatus enums.UserListAccessStatusEnum_UserListAccessStatus `protobuf:"varint,16,opt,name=account_user_list_status,json=accountUserListStatus,proto3,enum=google.ads.googleads.v0.enums.UserListAccessStatusEnum_UserListAccessStatus" json:"account_user_list_status,omitempty"` + // Indicates if this user list is eligible for Google Search Network. + EligibleForSearch *wrappers.BoolValue `protobuf:"bytes,17,opt,name=eligible_for_search,json=eligibleForSearch,proto3" json:"eligible_for_search,omitempty"` + // Indicates this user list is eligible for Google Display Network. + // + // This field is read-only. + EligibleForDisplay *wrappers.BoolValue `protobuf:"bytes,18,opt,name=eligible_for_display,json=eligibleForDisplay,proto3" json:"eligible_for_display,omitempty"` + // The user list. + // + // Exactly one must be set. + // + // Types that are valid to be assigned to UserList: + // *UserList_CrmBasedUserList + // *UserList_SimilarUserList + UserList isUserList_UserList `protobuf_oneof:"user_list"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UserList) Reset() { *m = UserList{} } +func (m *UserList) String() string { return proto.CompactTextString(m) } +func (*UserList) ProtoMessage() {} +func (*UserList) Descriptor() ([]byte, []int) { + return fileDescriptor_user_list_be045e08990b40e2, []int{0} +} +func (m *UserList) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserList.Unmarshal(m, b) +} +func (m *UserList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserList.Marshal(b, m, deterministic) +} +func (dst *UserList) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserList.Merge(dst, src) +} +func (m *UserList) XXX_Size() int { + return xxx_messageInfo_UserList.Size(m) +} +func (m *UserList) XXX_DiscardUnknown() { + xxx_messageInfo_UserList.DiscardUnknown(m) +} + +var xxx_messageInfo_UserList proto.InternalMessageInfo + +func (m *UserList) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func (m *UserList) GetId() *wrappers.Int64Value { + if m != nil { + return m.Id + } + return nil +} + +func (m *UserList) GetReadOnly() *wrappers.BoolValue { + if m != nil { + return m.ReadOnly + } + return nil +} + +func (m *UserList) GetName() *wrappers.StringValue { + if m != nil { + return m.Name + } + return nil +} + +func (m *UserList) GetDescription() *wrappers.StringValue { + if m != nil { + return m.Description + } + return nil +} + +func (m *UserList) GetMembershipStatus() enums.UserListMembershipStatusEnum_UserListMembershipStatus { + if m != nil { + return m.MembershipStatus + } + return enums.UserListMembershipStatusEnum_UNSPECIFIED +} + +func (m *UserList) GetIntegrationCode() *wrappers.StringValue { + if m != nil { + return m.IntegrationCode + } + return nil +} + +func (m *UserList) GetMembershipLifeSpan() *wrappers.Int64Value { + if m != nil { + return m.MembershipLifeSpan + } + return nil +} + +func (m *UserList) GetSizeForDisplay() *wrappers.Int64Value { + if m != nil { + return m.SizeForDisplay + } + return nil +} + +func (m *UserList) GetSizeRangeForDisplay() enums.UserListSizeRangeEnum_UserListSizeRange { + if m != nil { + return m.SizeRangeForDisplay + } + return enums.UserListSizeRangeEnum_UNSPECIFIED +} + +func (m *UserList) GetSizeForSearch() *wrappers.Int64Value { + if m != nil { + return m.SizeForSearch + } + return nil +} + +func (m *UserList) GetSizeRangeForSearch() enums.UserListSizeRangeEnum_UserListSizeRange { + if m != nil { + return m.SizeRangeForSearch + } + return enums.UserListSizeRangeEnum_UNSPECIFIED +} + +func (m *UserList) GetType() enums.UserListTypeEnum_UserListType { + if m != nil { + return m.Type + } + return enums.UserListTypeEnum_UNSPECIFIED +} + +func (m *UserList) GetClosingReason() enums.UserListClosingReasonEnum_UserListClosingReason { + if m != nil { + return m.ClosingReason + } + return enums.UserListClosingReasonEnum_UNSPECIFIED +} + +func (m *UserList) GetAccessReason() enums.AccessReasonEnum_AccessReason { + if m != nil { + return m.AccessReason + } + return enums.AccessReasonEnum_UNSPECIFIED +} + +func (m *UserList) GetAccountUserListStatus() enums.UserListAccessStatusEnum_UserListAccessStatus { + if m != nil { + return m.AccountUserListStatus + } + return enums.UserListAccessStatusEnum_UNSPECIFIED +} + +func (m *UserList) GetEligibleForSearch() *wrappers.BoolValue { + if m != nil { + return m.EligibleForSearch + } + return nil +} + +func (m *UserList) GetEligibleForDisplay() *wrappers.BoolValue { + if m != nil { + return m.EligibleForDisplay + } + return nil +} + +type isUserList_UserList interface { + isUserList_UserList() +} + +type UserList_CrmBasedUserList struct { + CrmBasedUserList *common.CrmBasedUserListInfo `protobuf:"bytes,19,opt,name=crm_based_user_list,json=crmBasedUserList,proto3,oneof"` +} + +type UserList_SimilarUserList struct { + SimilarUserList *common.SimilarUserListInfo `protobuf:"bytes,20,opt,name=similar_user_list,json=similarUserList,proto3,oneof"` +} + +func (*UserList_CrmBasedUserList) isUserList_UserList() {} + +func (*UserList_SimilarUserList) isUserList_UserList() {} + +func (m *UserList) GetUserList() isUserList_UserList { + if m != nil { + return m.UserList + } + return nil +} + +func (m *UserList) GetCrmBasedUserList() *common.CrmBasedUserListInfo { + if x, ok := m.GetUserList().(*UserList_CrmBasedUserList); ok { + return x.CrmBasedUserList + } + return nil +} + +func (m *UserList) GetSimilarUserList() *common.SimilarUserListInfo { + if x, ok := m.GetUserList().(*UserList_SimilarUserList); ok { + return x.SimilarUserList + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*UserList) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _UserList_OneofMarshaler, _UserList_OneofUnmarshaler, _UserList_OneofSizer, []interface{}{ + (*UserList_CrmBasedUserList)(nil), + (*UserList_SimilarUserList)(nil), + } +} + +func _UserList_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*UserList) + // user_list + switch x := m.UserList.(type) { + case *UserList_CrmBasedUserList: + b.EncodeVarint(19<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.CrmBasedUserList); err != nil { + return err + } + case *UserList_SimilarUserList: + b.EncodeVarint(20<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.SimilarUserList); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("UserList.UserList has unexpected type %T", x) + } + return nil +} + +func _UserList_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*UserList) + switch tag { + case 19: // user_list.crm_based_user_list + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.CrmBasedUserListInfo) + err := b.DecodeMessage(msg) + m.UserList = &UserList_CrmBasedUserList{msg} + return true, err + case 20: // user_list.similar_user_list + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(common.SimilarUserListInfo) + err := b.DecodeMessage(msg) + m.UserList = &UserList_SimilarUserList{msg} + return true, err + default: + return false, nil + } +} + +func _UserList_OneofSizer(msg proto.Message) (n int) { + m := msg.(*UserList) + // user_list + switch x := m.UserList.(type) { + case *UserList_CrmBasedUserList: + s := proto.Size(x.CrmBasedUserList) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *UserList_SimilarUserList: + s := proto.Size(x.SimilarUserList) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +func init() { + proto.RegisterType((*UserList)(nil), "google.ads.googleads.v0.resources.UserList") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/user_list.proto", fileDescriptor_user_list_be045e08990b40e2) +} + +var fileDescriptor_user_list_be045e08990b40e2 = []byte{ + // 825 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x96, 0x4d, 0x4f, 0xe3, 0x46, + 0x18, 0xc7, 0xeb, 0x40, 0x29, 0x99, 0x90, 0xb7, 0x09, 0x54, 0x16, 0xad, 0x2a, 0x68, 0x55, 0x09, + 0xa9, 0x92, 0x9d, 0x02, 0x6a, 0x2b, 0x81, 0x5a, 0x25, 0x29, 0x50, 0x50, 0xa0, 0xc8, 0xa1, 0x1c, + 0xaa, 0x48, 0xd6, 0xc4, 0x9e, 0x98, 0x91, 0xec, 0x19, 0x6b, 0xc6, 0xa6, 0x0a, 0x3d, 0xed, 0x61, + 0xbf, 0xc8, 0x1e, 0xf7, 0xa3, 0xac, 0xf6, 0xb4, 0x9f, 0x68, 0xe5, 0xf1, 0x4b, 0xec, 0xb0, 0x21, + 0x3e, 0xec, 0x6d, 0xfc, 0xf8, 0xf9, 0xfd, 0xff, 0xf3, 0x3c, 0xf3, 0x62, 0x83, 0x9f, 0x1d, 0xc6, + 0x1c, 0x17, 0xeb, 0xc8, 0x16, 0x7a, 0x3c, 0x8c, 0x46, 0x8f, 0x5d, 0x9d, 0x63, 0xc1, 0x42, 0x6e, + 0x61, 0xa1, 0x87, 0x02, 0x73, 0xd3, 0x25, 0x22, 0xd0, 0x7c, 0xce, 0x02, 0x06, 0xf7, 0xe3, 0x3c, + 0x0d, 0xd9, 0x42, 0xcb, 0x10, 0xed, 0xb1, 0xab, 0x65, 0xc8, 0xae, 0xbe, 0x4c, 0xd5, 0x62, 0x9e, + 0xc7, 0xe8, 0x5c, 0x52, 0xc4, 0x9a, 0xbb, 0x4b, 0xa7, 0x81, 0x69, 0xe8, 0x09, 0x1d, 0x59, 0x16, + 0x16, 0xc2, 0xe4, 0x18, 0x09, 0x46, 0x13, 0xe4, 0xe4, 0x65, 0x24, 0xb3, 0x30, 0x13, 0x58, 0x04, + 0x28, 0x08, 0x53, 0xbf, 0xd3, 0xb2, 0xb0, 0xe5, 0x32, 0x41, 0xa8, 0x53, 0xb4, 0xfe, 0xa3, 0x2c, + 0xed, 0x61, 0x6f, 0x82, 0xb9, 0x78, 0x20, 0x7e, 0xd1, 0xfe, 0xb7, 0xb2, 0x02, 0x82, 0x3c, 0x61, + 0x93, 0x23, 0xea, 0xe0, 0x84, 0x3c, 0x2c, 0x4b, 0x06, 0x33, 0x3f, 0x65, 0xbe, 0x4b, 0x18, 0xf9, + 0x34, 0x09, 0xa7, 0xfa, 0x7f, 0x1c, 0xf9, 0x3e, 0xe6, 0xc9, 0x6c, 0xbe, 0x7f, 0x5f, 0x07, 0x9b, + 0xff, 0x08, 0xcc, 0x87, 0x44, 0x04, 0xf0, 0x07, 0x50, 0x4f, 0xd7, 0xd1, 0xa4, 0xc8, 0xc3, 0xaa, + 0xb2, 0xa7, 0x1c, 0x54, 0x8d, 0xad, 0x34, 0x78, 0x83, 0x3c, 0x0c, 0x7f, 0x02, 0x15, 0x62, 0xab, + 0x95, 0x3d, 0xe5, 0xa0, 0x76, 0xf8, 0x4d, 0xb2, 0x09, 0xb4, 0x54, 0x5e, 0xbb, 0xa4, 0xc1, 0x2f, + 0xc7, 0xf7, 0xc8, 0x0d, 0xb1, 0x51, 0x21, 0x36, 0xfc, 0x15, 0x54, 0x39, 0x46, 0xb6, 0xc9, 0xa8, + 0x3b, 0x53, 0xd7, 0x24, 0xb3, 0xfb, 0x8c, 0xe9, 0x33, 0xe6, 0xc6, 0xc8, 0x66, 0x94, 0xfc, 0x37, + 0x75, 0x67, 0xb0, 0x0b, 0xd6, 0xe5, 0x0c, 0xd6, 0x25, 0xf3, 0xed, 0x33, 0x66, 0x14, 0x70, 0x42, + 0x9d, 0x98, 0x92, 0x99, 0xf0, 0x77, 0x50, 0xb3, 0xb1, 0xb0, 0x38, 0xf1, 0x03, 0xc2, 0xa8, 0xfa, + 0x65, 0x09, 0x30, 0x0f, 0xc0, 0x57, 0x0a, 0x68, 0x3f, 0x5b, 0x33, 0x75, 0x63, 0x4f, 0x39, 0x68, + 0x1c, 0xde, 0x69, 0xcb, 0xf6, 0xbd, 0x6c, 0xbd, 0x96, 0x76, 0xf0, 0x3a, 0xe3, 0x47, 0x12, 0x3f, + 0xa3, 0xa1, 0xb7, 0xf4, 0xa5, 0xd1, 0xf2, 0x16, 0x22, 0xf0, 0x02, 0xb4, 0x08, 0x0d, 0xb0, 0xc3, + 0x51, 0x34, 0x25, 0xd3, 0x62, 0x36, 0x56, 0xbf, 0x2a, 0x51, 0x48, 0x33, 0x47, 0x0d, 0x98, 0x8d, + 0xe1, 0x35, 0xd8, 0xce, 0xd5, 0xe2, 0x92, 0x29, 0x36, 0x85, 0x8f, 0xa8, 0xba, 0xb9, 0x7a, 0xd9, + 0xe0, 0x1c, 0x1c, 0x92, 0x29, 0x1e, 0xf9, 0x88, 0xc2, 0x33, 0xd0, 0x92, 0xbb, 0x71, 0xca, 0xb8, + 0x69, 0x13, 0xe1, 0xbb, 0x68, 0xa6, 0x56, 0x57, 0x4b, 0x35, 0x22, 0xe8, 0x9c, 0xf1, 0x3f, 0x63, + 0x04, 0xfe, 0x0f, 0xbe, 0x9e, 0x6f, 0xea, 0x82, 0x18, 0x90, 0x6d, 0x3e, 0x2f, 0xd9, 0xe6, 0x11, + 0x79, 0xc2, 0x46, 0xa4, 0x51, 0xe8, 0x6f, 0x16, 0x35, 0x3a, 0x22, 0x1d, 0xe6, 0xcc, 0x07, 0xa0, + 0x99, 0xd5, 0x20, 0x30, 0xe2, 0xd6, 0x83, 0x5a, 0x5b, 0x5d, 0x42, 0x3d, 0x29, 0x61, 0x24, 0x09, + 0x38, 0x03, 0x3b, 0x0b, 0x15, 0x24, 0x52, 0x5b, 0x9f, 0xb5, 0x00, 0x98, 0x2f, 0x20, 0xb1, 0xbe, + 0x05, 0xeb, 0xd1, 0xb9, 0x56, 0xeb, 0xd2, 0xe9, 0xb4, 0xa4, 0xd3, 0xdd, 0xcc, 0x2f, 0x9a, 0x44, + 0x01, 0x43, 0x2a, 0xc1, 0x10, 0x34, 0x8a, 0x57, 0x9c, 0xda, 0x90, 0xda, 0x37, 0x25, 0xb5, 0x07, + 0x31, 0x6c, 0x48, 0xb6, 0x60, 0x52, 0x78, 0x63, 0xd4, 0xad, 0xfc, 0x23, 0x44, 0xa0, 0x5e, 0xb8, + 0xd3, 0xd5, 0x66, 0xa9, 0x8a, 0x7a, 0x92, 0xc9, 0x99, 0xe5, 0x03, 0xc6, 0x16, 0xca, 0x3d, 0xc1, + 0xd7, 0x0a, 0x50, 0x91, 0x65, 0xb1, 0x90, 0x06, 0x66, 0xee, 0x42, 0x8d, 0x8f, 0x74, 0x4b, 0xda, + 0x0d, 0x4b, 0x16, 0x19, 0xbb, 0x7c, 0xe2, 0x38, 0xe7, 0x5f, 0x18, 0x3b, 0x89, 0x5b, 0xb6, 0x94, + 0xf1, 0x79, 0xbe, 0x02, 0x1d, 0xec, 0x12, 0x87, 0x4c, 0xdc, 0xc2, 0x66, 0x69, 0xaf, 0xbc, 0x08, + 0xdb, 0x29, 0x36, 0x5f, 0xff, 0x21, 0xd8, 0x2e, 0x68, 0xa5, 0x47, 0x07, 0xae, 0x14, 0x83, 0x39, + 0xb1, 0xf4, 0x34, 0x60, 0xd0, 0xb1, 0xb8, 0x67, 0x4e, 0x90, 0xc0, 0xf6, 0xbc, 0x45, 0x6a, 0x47, + 0x8a, 0x1d, 0x2f, 0xed, 0x4d, 0xfc, 0x0d, 0xd7, 0x06, 0xdc, 0xeb, 0x47, 0x64, 0x5a, 0xee, 0x25, + 0x9d, 0xb2, 0xbf, 0xbe, 0x30, 0x5a, 0xd6, 0x42, 0x1c, 0x22, 0xd0, 0x16, 0xc4, 0x23, 0x2e, 0xe2, + 0x39, 0x93, 0x6d, 0x69, 0x72, 0xb4, 0xca, 0x64, 0x14, 0x83, 0x0b, 0x1e, 0x4d, 0x51, 0x0c, 0xf7, + 0x6b, 0xa0, 0x9a, 0x49, 0xf7, 0x3f, 0x28, 0xe0, 0x47, 0x8b, 0x79, 0xda, 0xca, 0xdf, 0x94, 0x7e, + 0x3d, 0x15, 0xb8, 0x8d, 0x1a, 0x76, 0xab, 0xfc, 0x7b, 0x95, 0x30, 0x0e, 0x73, 0x11, 0x75, 0x34, + 0xc6, 0x1d, 0xdd, 0xc1, 0x54, 0xb6, 0x33, 0xfd, 0xda, 0xfa, 0x44, 0xbc, 0xf0, 0xb3, 0x74, 0x92, + 0x8d, 0xde, 0x54, 0xd6, 0x2e, 0x7a, 0xbd, 0xb7, 0x95, 0xfd, 0x8b, 0x58, 0xb2, 0x67, 0x0b, 0x2d, + 0x1e, 0x46, 0xa3, 0xfb, 0xae, 0x66, 0xa4, 0x99, 0xef, 0xd2, 0x9c, 0x71, 0xcf, 0x16, 0xe3, 0x2c, + 0x67, 0x7c, 0xdf, 0x1d, 0x67, 0x39, 0x93, 0x0d, 0x39, 0x89, 0xa3, 0x8f, 0x01, 0x00, 0x00, 0xff, + 0xff, 0xbc, 0x72, 0x4d, 0xf8, 0xb0, 0x09, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/video.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/video.pb.go new file mode 100644 index 000000000..eca780aa4 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/resources/video.pb.go @@ -0,0 +1,132 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/resources/video.proto + +package resources // import "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A video. +type Video struct { + // The resource name of the video. + // Video resource names have the form: + // + // `customers/{customer_id}/videos/{video_id}` + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + // The ID of the video. + Id *wrappers.StringValue `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` + // The owner channel id of the video. + ChannelId *wrappers.StringValue `protobuf:"bytes,3,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"` + // The duration of the video in milliseconds. + DurationMillis *wrappers.Int64Value `protobuf:"bytes,4,opt,name=duration_millis,json=durationMillis,proto3" json:"duration_millis,omitempty"` + // The title of the video. + Title *wrappers.StringValue `protobuf:"bytes,5,opt,name=title,proto3" json:"title,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Video) Reset() { *m = Video{} } +func (m *Video) String() string { return proto.CompactTextString(m) } +func (*Video) ProtoMessage() {} +func (*Video) Descriptor() ([]byte, []int) { + return fileDescriptor_video_458a9931a36deb41, []int{0} +} +func (m *Video) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Video.Unmarshal(m, b) +} +func (m *Video) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Video.Marshal(b, m, deterministic) +} +func (dst *Video) XXX_Merge(src proto.Message) { + xxx_messageInfo_Video.Merge(dst, src) +} +func (m *Video) XXX_Size() int { + return xxx_messageInfo_Video.Size(m) +} +func (m *Video) XXX_DiscardUnknown() { + xxx_messageInfo_Video.DiscardUnknown(m) +} + +var xxx_messageInfo_Video proto.InternalMessageInfo + +func (m *Video) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func (m *Video) GetId() *wrappers.StringValue { + if m != nil { + return m.Id + } + return nil +} + +func (m *Video) GetChannelId() *wrappers.StringValue { + if m != nil { + return m.ChannelId + } + return nil +} + +func (m *Video) GetDurationMillis() *wrappers.Int64Value { + if m != nil { + return m.DurationMillis + } + return nil +} + +func (m *Video) GetTitle() *wrappers.StringValue { + if m != nil { + return m.Title + } + return nil +} + +func init() { + proto.RegisterType((*Video)(nil), "google.ads.googleads.v0.resources.Video") +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/resources/video.proto", fileDescriptor_video_458a9931a36deb41) +} + +var fileDescriptor_video_458a9931a36deb41 = []byte{ + // 336 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x91, 0x4f, 0x4b, 0xfb, 0x30, + 0x18, 0xc7, 0x69, 0xf7, 0xdb, 0x0f, 0x16, 0xff, 0x41, 0x4f, 0x45, 0x45, 0x36, 0x45, 0xd8, 0x41, + 0xd3, 0x32, 0xc5, 0xcb, 0x4e, 0x1d, 0xc2, 0x98, 0xa0, 0x8c, 0x09, 0x3d, 0x48, 0x61, 0x64, 0x4b, + 0x8c, 0x81, 0x34, 0x29, 0x49, 0x3b, 0x5f, 0x87, 0x6f, 0xc1, 0xa3, 0x2f, 0xc5, 0x8b, 0x6f, 0x49, + 0x9a, 0x34, 0xbd, 0x08, 0xba, 0xdb, 0x97, 0xf0, 0xf9, 0x7e, 0x9e, 0xf0, 0x3c, 0xe0, 0x92, 0x4a, + 0x49, 0x39, 0x89, 0x10, 0xd6, 0x91, 0x8d, 0x75, 0xda, 0xc4, 0x91, 0x22, 0x5a, 0x56, 0x6a, 0x4d, + 0x74, 0xb4, 0x61, 0x98, 0x48, 0x58, 0x28, 0x59, 0xca, 0x60, 0x60, 0x19, 0x88, 0xb0, 0x86, 0x2d, + 0x0e, 0x37, 0x31, 0x6c, 0xf1, 0xc3, 0x93, 0xc6, 0x68, 0x0a, 0xab, 0xea, 0x39, 0x7a, 0x55, 0xa8, + 0x28, 0x88, 0xd2, 0x56, 0x71, 0xfa, 0xe6, 0x83, 0x6e, 0x5a, 0x2b, 0x83, 0x33, 0xb0, 0xe7, 0x6a, + 0x4b, 0x81, 0x72, 0x12, 0x7a, 0x7d, 0x6f, 0xd8, 0x5b, 0xec, 0xba, 0xc7, 0x07, 0x94, 0x93, 0xe0, + 0x02, 0xf8, 0x0c, 0x87, 0x7e, 0xdf, 0x1b, 0xee, 0x8c, 0x8e, 0x9b, 0x99, 0xd0, 0xb9, 0xe1, 0x63, + 0xa9, 0x98, 0xa0, 0x29, 0xe2, 0x15, 0x59, 0xf8, 0x0c, 0x07, 0x63, 0x00, 0xd6, 0x2f, 0x48, 0x08, + 0xc2, 0x97, 0x0c, 0x87, 0x9d, 0x2d, 0x5a, 0xbd, 0x86, 0x9f, 0xe1, 0xe0, 0x16, 0x1c, 0xe0, 0x4a, + 0xa1, 0x92, 0x49, 0xb1, 0xcc, 0x19, 0xe7, 0x4c, 0x87, 0xff, 0x8c, 0xe1, 0xe8, 0x87, 0x61, 0x26, + 0xca, 0x9b, 0x6b, 0x2b, 0xd8, 0x77, 0x9d, 0x7b, 0x53, 0x09, 0x46, 0xa0, 0x5b, 0xb2, 0x92, 0x93, + 0xb0, 0xbb, 0xc5, 0x74, 0x8b, 0x4e, 0xbe, 0x3c, 0x70, 0xbe, 0x96, 0x39, 0xfc, 0x73, 0xbb, 0x13, + 0x60, 0x56, 0x37, 0xaf, 0x5d, 0x73, 0xef, 0xe9, 0xae, 0x29, 0x50, 0xc9, 0x91, 0xa0, 0x50, 0x2a, + 0x1a, 0x51, 0x22, 0xcc, 0x24, 0x77, 0xcd, 0x82, 0xe9, 0x5f, 0x8e, 0x3b, 0x6e, 0xd3, 0xbb, 0xdf, + 0x99, 0x26, 0xc9, 0x87, 0x3f, 0x98, 0x5a, 0x65, 0x82, 0x35, 0xb4, 0xb1, 0x4e, 0x69, 0x0c, 0x17, + 0x8e, 0xfc, 0x74, 0x4c, 0x96, 0x60, 0x9d, 0xb5, 0x4c, 0x96, 0xc6, 0x59, 0xcb, 0xac, 0xfe, 0x9b, + 0x4f, 0x5c, 0x7d, 0x07, 0x00, 0x00, 0xff, 0xff, 0x47, 0x06, 0x9e, 0x37, 0x60, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/account_budget_proposal_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/account_budget_proposal_service.pb.go new file mode 100644 index 000000000..6365476ab --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/account_budget_proposal_service.pb.go @@ -0,0 +1,521 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/account_budget_proposal_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" +import field_mask "google.golang.org/genproto/protobuf/field_mask" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for +// [AccountBudgetProposalService.GetAccountBudgetProposal][google.ads.googleads.v0.services.AccountBudgetProposalService.GetAccountBudgetProposal]. +type GetAccountBudgetProposalRequest struct { + // The resource name of the account-level budget proposal to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetAccountBudgetProposalRequest) Reset() { *m = GetAccountBudgetProposalRequest{} } +func (m *GetAccountBudgetProposalRequest) String() string { return proto.CompactTextString(m) } +func (*GetAccountBudgetProposalRequest) ProtoMessage() {} +func (*GetAccountBudgetProposalRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_account_budget_proposal_service_3710de127b17772d, []int{0} +} +func (m *GetAccountBudgetProposalRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetAccountBudgetProposalRequest.Unmarshal(m, b) +} +func (m *GetAccountBudgetProposalRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetAccountBudgetProposalRequest.Marshal(b, m, deterministic) +} +func (dst *GetAccountBudgetProposalRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetAccountBudgetProposalRequest.Merge(dst, src) +} +func (m *GetAccountBudgetProposalRequest) XXX_Size() int { + return xxx_messageInfo_GetAccountBudgetProposalRequest.Size(m) +} +func (m *GetAccountBudgetProposalRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetAccountBudgetProposalRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetAccountBudgetProposalRequest proto.InternalMessageInfo + +func (m *GetAccountBudgetProposalRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +// Request message for +// [AccountBudgetProposalService.MutateAccountBudgetProposal][google.ads.googleads.v0.services.AccountBudgetProposalService.MutateAccountBudgetProposal]. +type MutateAccountBudgetProposalRequest struct { + // The ID of the customer. + CustomerId string `protobuf:"bytes,1,opt,name=customer_id,json=customerId,proto3" json:"customer_id,omitempty"` + // The operation to perform on an individual account-level budget proposal. + Operation *AccountBudgetProposalOperation `protobuf:"bytes,2,opt,name=operation,proto3" json:"operation,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateAccountBudgetProposalRequest) Reset() { *m = MutateAccountBudgetProposalRequest{} } +func (m *MutateAccountBudgetProposalRequest) String() string { return proto.CompactTextString(m) } +func (*MutateAccountBudgetProposalRequest) ProtoMessage() {} +func (*MutateAccountBudgetProposalRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_account_budget_proposal_service_3710de127b17772d, []int{1} +} +func (m *MutateAccountBudgetProposalRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateAccountBudgetProposalRequest.Unmarshal(m, b) +} +func (m *MutateAccountBudgetProposalRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateAccountBudgetProposalRequest.Marshal(b, m, deterministic) +} +func (dst *MutateAccountBudgetProposalRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateAccountBudgetProposalRequest.Merge(dst, src) +} +func (m *MutateAccountBudgetProposalRequest) XXX_Size() int { + return xxx_messageInfo_MutateAccountBudgetProposalRequest.Size(m) +} +func (m *MutateAccountBudgetProposalRequest) XXX_DiscardUnknown() { + xxx_messageInfo_MutateAccountBudgetProposalRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateAccountBudgetProposalRequest proto.InternalMessageInfo + +func (m *MutateAccountBudgetProposalRequest) GetCustomerId() string { + if m != nil { + return m.CustomerId + } + return "" +} + +func (m *MutateAccountBudgetProposalRequest) GetOperation() *AccountBudgetProposalOperation { + if m != nil { + return m.Operation + } + return nil +} + +// A single operation to propose the creation of a new account-level budget or +// edit/end/remove an existing one. +type AccountBudgetProposalOperation struct { + // FieldMask that determines which budget fields are modified. While budgets + // may be modified, proposals that propose such modifications are final. + // Therefore, update operations are not supported for proposals. + // + // Proposals that modify budgets have the 'update' proposal type. Specifying + // a mask for any other proposal type is considered an error. + UpdateMask *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // The mutate operation. + // + // Types that are valid to be assigned to Operation: + // *AccountBudgetProposalOperation_Create + // *AccountBudgetProposalOperation_Remove + Operation isAccountBudgetProposalOperation_Operation `protobuf_oneof:"operation"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AccountBudgetProposalOperation) Reset() { *m = AccountBudgetProposalOperation{} } +func (m *AccountBudgetProposalOperation) String() string { return proto.CompactTextString(m) } +func (*AccountBudgetProposalOperation) ProtoMessage() {} +func (*AccountBudgetProposalOperation) Descriptor() ([]byte, []int) { + return fileDescriptor_account_budget_proposal_service_3710de127b17772d, []int{2} +} +func (m *AccountBudgetProposalOperation) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AccountBudgetProposalOperation.Unmarshal(m, b) +} +func (m *AccountBudgetProposalOperation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AccountBudgetProposalOperation.Marshal(b, m, deterministic) +} +func (dst *AccountBudgetProposalOperation) XXX_Merge(src proto.Message) { + xxx_messageInfo_AccountBudgetProposalOperation.Merge(dst, src) +} +func (m *AccountBudgetProposalOperation) XXX_Size() int { + return xxx_messageInfo_AccountBudgetProposalOperation.Size(m) +} +func (m *AccountBudgetProposalOperation) XXX_DiscardUnknown() { + xxx_messageInfo_AccountBudgetProposalOperation.DiscardUnknown(m) +} + +var xxx_messageInfo_AccountBudgetProposalOperation proto.InternalMessageInfo + +func (m *AccountBudgetProposalOperation) GetUpdateMask() *field_mask.FieldMask { + if m != nil { + return m.UpdateMask + } + return nil +} + +type isAccountBudgetProposalOperation_Operation interface { + isAccountBudgetProposalOperation_Operation() +} + +type AccountBudgetProposalOperation_Create struct { + Create *resources.AccountBudgetProposal `protobuf:"bytes,2,opt,name=create,proto3,oneof"` +} + +type AccountBudgetProposalOperation_Remove struct { + Remove string `protobuf:"bytes,1,opt,name=remove,proto3,oneof"` +} + +func (*AccountBudgetProposalOperation_Create) isAccountBudgetProposalOperation_Operation() {} + +func (*AccountBudgetProposalOperation_Remove) isAccountBudgetProposalOperation_Operation() {} + +func (m *AccountBudgetProposalOperation) GetOperation() isAccountBudgetProposalOperation_Operation { + if m != nil { + return m.Operation + } + return nil +} + +func (m *AccountBudgetProposalOperation) GetCreate() *resources.AccountBudgetProposal { + if x, ok := m.GetOperation().(*AccountBudgetProposalOperation_Create); ok { + return x.Create + } + return nil +} + +func (m *AccountBudgetProposalOperation) GetRemove() string { + if x, ok := m.GetOperation().(*AccountBudgetProposalOperation_Remove); ok { + return x.Remove + } + return "" +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*AccountBudgetProposalOperation) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _AccountBudgetProposalOperation_OneofMarshaler, _AccountBudgetProposalOperation_OneofUnmarshaler, _AccountBudgetProposalOperation_OneofSizer, []interface{}{ + (*AccountBudgetProposalOperation_Create)(nil), + (*AccountBudgetProposalOperation_Remove)(nil), + } +} + +func _AccountBudgetProposalOperation_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*AccountBudgetProposalOperation) + // operation + switch x := m.Operation.(type) { + case *AccountBudgetProposalOperation_Create: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Create); err != nil { + return err + } + case *AccountBudgetProposalOperation_Remove: + b.EncodeVarint(1<<3 | proto.WireBytes) + b.EncodeStringBytes(x.Remove) + case nil: + default: + return fmt.Errorf("AccountBudgetProposalOperation.Operation has unexpected type %T", x) + } + return nil +} + +func _AccountBudgetProposalOperation_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*AccountBudgetProposalOperation) + switch tag { + case 2: // operation.create + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.AccountBudgetProposal) + err := b.DecodeMessage(msg) + m.Operation = &AccountBudgetProposalOperation_Create{msg} + return true, err + case 1: // operation.remove + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Operation = &AccountBudgetProposalOperation_Remove{x} + return true, err + default: + return false, nil + } +} + +func _AccountBudgetProposalOperation_OneofSizer(msg proto.Message) (n int) { + m := msg.(*AccountBudgetProposalOperation) + // operation + switch x := m.Operation.(type) { + case *AccountBudgetProposalOperation_Create: + s := proto.Size(x.Create) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *AccountBudgetProposalOperation_Remove: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(len(x.Remove))) + n += len(x.Remove) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// Response message for account-level budget mutate operations. +type MutateAccountBudgetProposalResponse struct { + // The result of the mutate. + Result *MutateAccountBudgetProposalResult `protobuf:"bytes,2,opt,name=result,proto3" json:"result,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateAccountBudgetProposalResponse) Reset() { *m = MutateAccountBudgetProposalResponse{} } +func (m *MutateAccountBudgetProposalResponse) String() string { return proto.CompactTextString(m) } +func (*MutateAccountBudgetProposalResponse) ProtoMessage() {} +func (*MutateAccountBudgetProposalResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_account_budget_proposal_service_3710de127b17772d, []int{3} +} +func (m *MutateAccountBudgetProposalResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateAccountBudgetProposalResponse.Unmarshal(m, b) +} +func (m *MutateAccountBudgetProposalResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateAccountBudgetProposalResponse.Marshal(b, m, deterministic) +} +func (dst *MutateAccountBudgetProposalResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateAccountBudgetProposalResponse.Merge(dst, src) +} +func (m *MutateAccountBudgetProposalResponse) XXX_Size() int { + return xxx_messageInfo_MutateAccountBudgetProposalResponse.Size(m) +} +func (m *MutateAccountBudgetProposalResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MutateAccountBudgetProposalResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateAccountBudgetProposalResponse proto.InternalMessageInfo + +func (m *MutateAccountBudgetProposalResponse) GetResult() *MutateAccountBudgetProposalResult { + if m != nil { + return m.Result + } + return nil +} + +// The result for the account budget proposal mutate. +type MutateAccountBudgetProposalResult struct { + // Returned for successful operations. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateAccountBudgetProposalResult) Reset() { *m = MutateAccountBudgetProposalResult{} } +func (m *MutateAccountBudgetProposalResult) String() string { return proto.CompactTextString(m) } +func (*MutateAccountBudgetProposalResult) ProtoMessage() {} +func (*MutateAccountBudgetProposalResult) Descriptor() ([]byte, []int) { + return fileDescriptor_account_budget_proposal_service_3710de127b17772d, []int{4} +} +func (m *MutateAccountBudgetProposalResult) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateAccountBudgetProposalResult.Unmarshal(m, b) +} +func (m *MutateAccountBudgetProposalResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateAccountBudgetProposalResult.Marshal(b, m, deterministic) +} +func (dst *MutateAccountBudgetProposalResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateAccountBudgetProposalResult.Merge(dst, src) +} +func (m *MutateAccountBudgetProposalResult) XXX_Size() int { + return xxx_messageInfo_MutateAccountBudgetProposalResult.Size(m) +} +func (m *MutateAccountBudgetProposalResult) XXX_DiscardUnknown() { + xxx_messageInfo_MutateAccountBudgetProposalResult.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateAccountBudgetProposalResult proto.InternalMessageInfo + +func (m *MutateAccountBudgetProposalResult) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetAccountBudgetProposalRequest)(nil), "google.ads.googleads.v0.services.GetAccountBudgetProposalRequest") + proto.RegisterType((*MutateAccountBudgetProposalRequest)(nil), "google.ads.googleads.v0.services.MutateAccountBudgetProposalRequest") + proto.RegisterType((*AccountBudgetProposalOperation)(nil), "google.ads.googleads.v0.services.AccountBudgetProposalOperation") + proto.RegisterType((*MutateAccountBudgetProposalResponse)(nil), "google.ads.googleads.v0.services.MutateAccountBudgetProposalResponse") + proto.RegisterType((*MutateAccountBudgetProposalResult)(nil), "google.ads.googleads.v0.services.MutateAccountBudgetProposalResult") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// AccountBudgetProposalServiceClient is the client API for AccountBudgetProposalService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type AccountBudgetProposalServiceClient interface { + // Returns an account-level budget proposal in full detail. + GetAccountBudgetProposal(ctx context.Context, in *GetAccountBudgetProposalRequest, opts ...grpc.CallOption) (*resources.AccountBudgetProposal, error) + // Creates, updates, or removes account budget proposals. Operation statuses + // are returned. + MutateAccountBudgetProposal(ctx context.Context, in *MutateAccountBudgetProposalRequest, opts ...grpc.CallOption) (*MutateAccountBudgetProposalResponse, error) +} + +type accountBudgetProposalServiceClient struct { + cc *grpc.ClientConn +} + +func NewAccountBudgetProposalServiceClient(cc *grpc.ClientConn) AccountBudgetProposalServiceClient { + return &accountBudgetProposalServiceClient{cc} +} + +func (c *accountBudgetProposalServiceClient) GetAccountBudgetProposal(ctx context.Context, in *GetAccountBudgetProposalRequest, opts ...grpc.CallOption) (*resources.AccountBudgetProposal, error) { + out := new(resources.AccountBudgetProposal) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.AccountBudgetProposalService/GetAccountBudgetProposal", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *accountBudgetProposalServiceClient) MutateAccountBudgetProposal(ctx context.Context, in *MutateAccountBudgetProposalRequest, opts ...grpc.CallOption) (*MutateAccountBudgetProposalResponse, error) { + out := new(MutateAccountBudgetProposalResponse) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.AccountBudgetProposalService/MutateAccountBudgetProposal", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// AccountBudgetProposalServiceServer is the server API for AccountBudgetProposalService service. +type AccountBudgetProposalServiceServer interface { + // Returns an account-level budget proposal in full detail. + GetAccountBudgetProposal(context.Context, *GetAccountBudgetProposalRequest) (*resources.AccountBudgetProposal, error) + // Creates, updates, or removes account budget proposals. Operation statuses + // are returned. + MutateAccountBudgetProposal(context.Context, *MutateAccountBudgetProposalRequest) (*MutateAccountBudgetProposalResponse, error) +} + +func RegisterAccountBudgetProposalServiceServer(s *grpc.Server, srv AccountBudgetProposalServiceServer) { + s.RegisterService(&_AccountBudgetProposalService_serviceDesc, srv) +} + +func _AccountBudgetProposalService_GetAccountBudgetProposal_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetAccountBudgetProposalRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AccountBudgetProposalServiceServer).GetAccountBudgetProposal(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.AccountBudgetProposalService/GetAccountBudgetProposal", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AccountBudgetProposalServiceServer).GetAccountBudgetProposal(ctx, req.(*GetAccountBudgetProposalRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AccountBudgetProposalService_MutateAccountBudgetProposal_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MutateAccountBudgetProposalRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AccountBudgetProposalServiceServer).MutateAccountBudgetProposal(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.AccountBudgetProposalService/MutateAccountBudgetProposal", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AccountBudgetProposalServiceServer).MutateAccountBudgetProposal(ctx, req.(*MutateAccountBudgetProposalRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _AccountBudgetProposalService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.AccountBudgetProposalService", + HandlerType: (*AccountBudgetProposalServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetAccountBudgetProposal", + Handler: _AccountBudgetProposalService_GetAccountBudgetProposal_Handler, + }, + { + MethodName: "MutateAccountBudgetProposal", + Handler: _AccountBudgetProposalService_MutateAccountBudgetProposal_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/account_budget_proposal_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/account_budget_proposal_service.proto", fileDescriptor_account_budget_proposal_service_3710de127b17772d) +} + +var fileDescriptor_account_budget_proposal_service_3710de127b17772d = []byte{ + // 586 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x54, 0x31, 0x6f, 0xd3, 0x40, + 0x14, 0xe6, 0x52, 0x29, 0x52, 0x2f, 0xb0, 0xdc, 0x14, 0x85, 0x8a, 0xa6, 0x2e, 0x43, 0x95, 0xe1, + 0x1c, 0x95, 0xa5, 0x4a, 0x54, 0x11, 0x07, 0x48, 0xc2, 0x50, 0x88, 0x8c, 0xd4, 0x01, 0x22, 0xac, + 0x8b, 0x7d, 0xb5, 0xac, 0xda, 0x3e, 0xe3, 0x3b, 0x67, 0xa9, 0xba, 0xf4, 0x2f, 0xf0, 0x0f, 0x90, + 0x58, 0xf8, 0x29, 0xac, 0x2c, 0x30, 0x22, 0xb1, 0x23, 0xf1, 0x0b, 0x90, 0x7d, 0x77, 0x69, 0x2b, + 0xc5, 0x36, 0xa2, 0xdb, 0xb3, 0xef, 0xdd, 0xf7, 0x7d, 0xef, 0x7b, 0xef, 0x1d, 0x9c, 0xf8, 0x8c, + 0xf9, 0x21, 0x35, 0x89, 0xc7, 0x4d, 0x19, 0xe6, 0xd1, 0xaa, 0x6f, 0x72, 0x9a, 0xae, 0x02, 0x97, + 0x72, 0x93, 0xb8, 0x2e, 0xcb, 0x62, 0xe1, 0x2c, 0x33, 0xcf, 0xa7, 0xc2, 0x49, 0x52, 0x96, 0x30, + 0x4e, 0x42, 0x47, 0x25, 0xe0, 0x24, 0x65, 0x82, 0xa1, 0xae, 0xbc, 0x8c, 0x89, 0xc7, 0xf1, 0x1a, + 0x07, 0xaf, 0xfa, 0x58, 0xe3, 0x74, 0x9e, 0x96, 0x31, 0xa5, 0x94, 0xb3, 0x2c, 0xad, 0xa0, 0x92, + 0x14, 0x9d, 0x1d, 0x0d, 0x90, 0x04, 0x26, 0x89, 0x63, 0x26, 0x88, 0x08, 0x58, 0xcc, 0xd5, 0xa9, + 0x12, 0x60, 0x16, 0x5f, 0xcb, 0xec, 0xcc, 0x3c, 0x0b, 0x68, 0xe8, 0x39, 0x11, 0xe1, 0xe7, 0x32, + 0xc3, 0x98, 0xc0, 0xdd, 0x29, 0x15, 0x96, 0xe4, 0x18, 0x17, 0x14, 0x73, 0xc5, 0x60, 0xd3, 0x0f, + 0x19, 0xe5, 0x02, 0xed, 0xc3, 0x07, 0x5a, 0x8d, 0x13, 0x93, 0x88, 0xb6, 0x41, 0x17, 0x1c, 0x6c, + 0xdb, 0xf7, 0xf5, 0xcf, 0x57, 0x24, 0xa2, 0xc6, 0x67, 0x00, 0x8d, 0x93, 0x4c, 0x10, 0x41, 0x2b, + 0xb1, 0x76, 0x61, 0xcb, 0xcd, 0xb8, 0x60, 0x11, 0x4d, 0x9d, 0xc0, 0x53, 0x48, 0x50, 0xff, 0x7a, + 0xe9, 0xa1, 0xf7, 0x70, 0x9b, 0x25, 0x34, 0x2d, 0xaa, 0x68, 0x37, 0xba, 0xe0, 0xa0, 0x75, 0x38, + 0xc2, 0x75, 0x36, 0xe2, 0x8d, 0x9c, 0xaf, 0x35, 0x8e, 0x7d, 0x0d, 0x69, 0x7c, 0x07, 0xf0, 0x51, + 0x75, 0x36, 0x1a, 0xc2, 0x56, 0x96, 0x78, 0x44, 0xd0, 0xc2, 0xa7, 0xf6, 0x56, 0x21, 0xa2, 0xa3, + 0x45, 0x68, 0x2b, 0xf1, 0x24, 0xb7, 0xf2, 0x84, 0xf0, 0x73, 0x1b, 0xca, 0xf4, 0x3c, 0x46, 0x36, + 0x6c, 0xba, 0x29, 0x25, 0x82, 0x2a, 0xf1, 0x47, 0xa5, 0xe2, 0xd7, 0x1d, 0xde, 0xac, 0x7e, 0x76, + 0xcf, 0x56, 0x48, 0xa8, 0x0d, 0x9b, 0x29, 0x8d, 0xd8, 0x4a, 0x39, 0x9f, 0x9f, 0xc8, 0xef, 0x71, + 0xeb, 0x86, 0x5b, 0xc6, 0x15, 0x80, 0xfb, 0x95, 0x2d, 0xe0, 0x09, 0x8b, 0x39, 0x45, 0xef, 0x72, + 0x38, 0x9e, 0x85, 0x42, 0x49, 0x7c, 0x56, 0xef, 0x6f, 0x35, 0x6c, 0x16, 0x0a, 0x5b, 0x41, 0x1a, + 0x33, 0xb8, 0x57, 0x9b, 0xfc, 0x4f, 0x13, 0x75, 0xf8, 0x7b, 0x0b, 0xee, 0x6c, 0x04, 0x79, 0x23, + 0x55, 0xa1, 0x1f, 0x00, 0xb6, 0xcb, 0x66, 0x17, 0x59, 0xf5, 0x45, 0xd5, 0xcc, 0x7d, 0xe7, 0xbf, + 0x5b, 0x67, 0x8c, 0xae, 0xbe, 0xfd, 0xfa, 0xd8, 0x18, 0xa0, 0xa3, 0x7c, 0x93, 0x2f, 0x6e, 0x95, + 0x7a, 0xac, 0x67, 0x9d, 0x9b, 0x3d, 0xbd, 0xda, 0xb7, 0x6f, 0x73, 0xb3, 0x77, 0x89, 0xfe, 0x00, + 0xf8, 0xb0, 0xc2, 0x47, 0xf4, 0xfc, 0x8e, 0x3d, 0x93, 0x15, 0xbe, 0xb8, 0x6b, 0xe7, 0x8b, 0x81, + 0x32, 0x26, 0x45, 0xb9, 0x23, 0x63, 0x98, 0x97, 0x7b, 0x5d, 0xdf, 0xc5, 0x8d, 0x4d, 0x3f, 0xee, + 0x5d, 0x96, 0x54, 0x3b, 0x88, 0x0a, 0x86, 0x01, 0xe8, 0x8d, 0x7f, 0x02, 0xf8, 0xd8, 0x65, 0x51, + 0xad, 0xa8, 0xf1, 0x5e, 0xd5, 0x5c, 0xcc, 0xf3, 0x05, 0x9d, 0x83, 0xb7, 0x33, 0x05, 0xe3, 0xb3, + 0x90, 0xc4, 0x3e, 0x66, 0xa9, 0x6f, 0xfa, 0x34, 0x2e, 0xd6, 0x57, 0x3f, 0xb5, 0x49, 0xc0, 0xcb, + 0xdf, 0xf8, 0xa1, 0x0e, 0x3e, 0x35, 0xb6, 0xa6, 0x96, 0xf5, 0xa5, 0xd1, 0x9d, 0x4a, 0x40, 0xcb, + 0xe3, 0x58, 0x86, 0x79, 0x74, 0xda, 0xc7, 0x8a, 0x98, 0x7f, 0xd5, 0x29, 0x0b, 0xcb, 0xe3, 0x8b, + 0x75, 0xca, 0xe2, 0xb4, 0xbf, 0xd0, 0x29, 0xcb, 0x66, 0x21, 0xe0, 0xc9, 0xdf, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xf1, 0xe7, 0x42, 0x94, 0x63, 0x06, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/account_budget_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/account_budget_service.pb.go new file mode 100644 index 000000000..18f6cb357 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/account_budget_service.pb.go @@ -0,0 +1,175 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/account_budget_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for +// [AccountBudgetService.GetAccountBudget][google.ads.googleads.v0.services.AccountBudgetService.GetAccountBudget]. +type GetAccountBudgetRequest struct { + // The resource name of the account-level budget to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetAccountBudgetRequest) Reset() { *m = GetAccountBudgetRequest{} } +func (m *GetAccountBudgetRequest) String() string { return proto.CompactTextString(m) } +func (*GetAccountBudgetRequest) ProtoMessage() {} +func (*GetAccountBudgetRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_account_budget_service_35b87f079f622fe3, []int{0} +} +func (m *GetAccountBudgetRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetAccountBudgetRequest.Unmarshal(m, b) +} +func (m *GetAccountBudgetRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetAccountBudgetRequest.Marshal(b, m, deterministic) +} +func (dst *GetAccountBudgetRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetAccountBudgetRequest.Merge(dst, src) +} +func (m *GetAccountBudgetRequest) XXX_Size() int { + return xxx_messageInfo_GetAccountBudgetRequest.Size(m) +} +func (m *GetAccountBudgetRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetAccountBudgetRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetAccountBudgetRequest proto.InternalMessageInfo + +func (m *GetAccountBudgetRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetAccountBudgetRequest)(nil), "google.ads.googleads.v0.services.GetAccountBudgetRequest") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// AccountBudgetServiceClient is the client API for AccountBudgetService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type AccountBudgetServiceClient interface { + // Returns an account-level budget in full detail. + GetAccountBudget(ctx context.Context, in *GetAccountBudgetRequest, opts ...grpc.CallOption) (*resources.AccountBudget, error) +} + +type accountBudgetServiceClient struct { + cc *grpc.ClientConn +} + +func NewAccountBudgetServiceClient(cc *grpc.ClientConn) AccountBudgetServiceClient { + return &accountBudgetServiceClient{cc} +} + +func (c *accountBudgetServiceClient) GetAccountBudget(ctx context.Context, in *GetAccountBudgetRequest, opts ...grpc.CallOption) (*resources.AccountBudget, error) { + out := new(resources.AccountBudget) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.AccountBudgetService/GetAccountBudget", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// AccountBudgetServiceServer is the server API for AccountBudgetService service. +type AccountBudgetServiceServer interface { + // Returns an account-level budget in full detail. + GetAccountBudget(context.Context, *GetAccountBudgetRequest) (*resources.AccountBudget, error) +} + +func RegisterAccountBudgetServiceServer(s *grpc.Server, srv AccountBudgetServiceServer) { + s.RegisterService(&_AccountBudgetService_serviceDesc, srv) +} + +func _AccountBudgetService_GetAccountBudget_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetAccountBudgetRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AccountBudgetServiceServer).GetAccountBudget(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.AccountBudgetService/GetAccountBudget", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AccountBudgetServiceServer).GetAccountBudget(ctx, req.(*GetAccountBudgetRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _AccountBudgetService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.AccountBudgetService", + HandlerType: (*AccountBudgetServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetAccountBudget", + Handler: _AccountBudgetService_GetAccountBudget_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/account_budget_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/account_budget_service.proto", fileDescriptor_account_budget_service_35b87f079f622fe3) +} + +var fileDescriptor_account_budget_service_35b87f079f622fe3 = []byte{ + // 344 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x4d, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xe2, 0xd4, + 0xa2, 0xb2, 0xcc, 0xe4, 0xd4, 0x62, 0xfd, 0xc4, 0xe4, 0xe4, 0xfc, 0xd2, 0xbc, 0x92, 0xf8, 0xa4, + 0xd2, 0x94, 0xf4, 0xd4, 0x92, 0x78, 0xa8, 0xb8, 0x5e, 0x41, 0x51, 0x7e, 0x49, 0xbe, 0x90, 0x02, + 0x44, 0x8f, 0x5e, 0x62, 0x4a, 0xb1, 0x1e, 0x5c, 0xbb, 0x5e, 0x99, 0x81, 0x1e, 0x4c, 0xbb, 0x94, + 0x19, 0x2e, 0x0b, 0x8a, 0x52, 0x8b, 0xf3, 0x4b, 0x8b, 0x30, 0x6d, 0x80, 0x98, 0x2c, 0x25, 0x03, + 0xd3, 0x57, 0x90, 0xa9, 0x9f, 0x98, 0x97, 0x97, 0x5f, 0x92, 0x58, 0x92, 0x99, 0x9f, 0x57, 0x0c, + 0x91, 0x55, 0xb2, 0xe3, 0x12, 0x77, 0x4f, 0x2d, 0x71, 0x84, 0x68, 0x74, 0x02, 0xeb, 0x0b, 0x4a, + 0x2d, 0x2c, 0x4d, 0x2d, 0x2e, 0x11, 0x52, 0xe6, 0xe2, 0x85, 0x19, 0x1d, 0x9f, 0x97, 0x98, 0x9b, + 0x2a, 0xc1, 0xa8, 0xc0, 0xa8, 0xc1, 0x19, 0xc4, 0x03, 0x13, 0xf4, 0x4b, 0xcc, 0x4d, 0x35, 0xba, + 0xc4, 0xc8, 0x25, 0x82, 0xa2, 0x3b, 0x18, 0xe2, 0x5e, 0xa1, 0x9d, 0x8c, 0x5c, 0x02, 0xe8, 0x26, + 0x0b, 0x59, 0xea, 0x11, 0xf2, 0xa6, 0x1e, 0x0e, 0xd7, 0x48, 0x19, 0xe0, 0xd4, 0x0a, 0xf7, 0xbf, + 0x1e, 0x8a, 0x46, 0x25, 0x8b, 0xa6, 0xcb, 0x4f, 0x26, 0x33, 0x19, 0x09, 0x19, 0x80, 0x02, 0xa9, + 0x1a, 0xc5, 0x2b, 0xb6, 0xc9, 0xa5, 0xc5, 0x25, 0xf9, 0xb9, 0xa9, 0x45, 0xc5, 0xfa, 0x5a, 0xb0, + 0x50, 0x83, 0xe8, 0x2a, 0xd6, 0xd7, 0xaa, 0x75, 0xba, 0xc9, 0xc8, 0xa5, 0x92, 0x9c, 0x9f, 0x4b, + 0xd0, 0xb1, 0x4e, 0x92, 0xd8, 0xbc, 0x1e, 0x00, 0x0a, 0xd8, 0x00, 0xc6, 0x28, 0x0f, 0xa8, 0xf6, + 0xf4, 0xfc, 0x9c, 0xc4, 0xbc, 0x74, 0xbd, 0xfc, 0xa2, 0x74, 0xfd, 0xf4, 0xd4, 0x3c, 0x70, 0xb0, + 0xc3, 0x22, 0xb0, 0x20, 0xb3, 0x18, 0x77, 0x82, 0xb1, 0x86, 0x31, 0x16, 0x31, 0x31, 0xbb, 0x3b, + 0x3a, 0xae, 0x62, 0x52, 0x70, 0x87, 0x18, 0xe8, 0x98, 0x52, 0xac, 0x07, 0x61, 0x82, 0x58, 0x61, + 0x06, 0x7a, 0x50, 0x8b, 0x8b, 0x4f, 0xc1, 0x94, 0xc4, 0x38, 0xa6, 0x14, 0xc7, 0xc0, 0x95, 0xc4, + 0x84, 0x19, 0xc4, 0xc0, 0x94, 0x24, 0xb1, 0x81, 0x1d, 0x60, 0x0c, 0x08, 0x00, 0x00, 0xff, 0xff, + 0xcd, 0xfb, 0x18, 0x58, 0xb0, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/ad_group_ad_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/ad_group_ad_service.pb.go new file mode 100644 index 000000000..b3e1de15c --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/ad_group_ad_service.pb.go @@ -0,0 +1,558 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/ad_group_ad_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import common "google.golang.org/genproto/googleapis/ads/googleads/v0/common" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" +import field_mask "google.golang.org/genproto/protobuf/field_mask" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [AdGroupAdService.GetAdGroupAd][google.ads.googleads.v0.services.AdGroupAdService.GetAdGroupAd]. +type GetAdGroupAdRequest struct { + // The resource name of the ad to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetAdGroupAdRequest) Reset() { *m = GetAdGroupAdRequest{} } +func (m *GetAdGroupAdRequest) String() string { return proto.CompactTextString(m) } +func (*GetAdGroupAdRequest) ProtoMessage() {} +func (*GetAdGroupAdRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_group_ad_service_f5afe93c5fff3c55, []int{0} +} +func (m *GetAdGroupAdRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetAdGroupAdRequest.Unmarshal(m, b) +} +func (m *GetAdGroupAdRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetAdGroupAdRequest.Marshal(b, m, deterministic) +} +func (dst *GetAdGroupAdRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetAdGroupAdRequest.Merge(dst, src) +} +func (m *GetAdGroupAdRequest) XXX_Size() int { + return xxx_messageInfo_GetAdGroupAdRequest.Size(m) +} +func (m *GetAdGroupAdRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetAdGroupAdRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetAdGroupAdRequest proto.InternalMessageInfo + +func (m *GetAdGroupAdRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +// Request message for [AdGroupAdService.MutateAdGroupAds][google.ads.googleads.v0.services.AdGroupAdService.MutateAdGroupAds]. +type MutateAdGroupAdsRequest struct { + // The ID of the customer whose ads are being modified. + CustomerId string `protobuf:"bytes,1,opt,name=customer_id,json=customerId,proto3" json:"customer_id,omitempty"` + // The list of operations to perform on individual ads. + Operations []*AdGroupAdOperation `protobuf:"bytes,2,rep,name=operations,proto3" json:"operations,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateAdGroupAdsRequest) Reset() { *m = MutateAdGroupAdsRequest{} } +func (m *MutateAdGroupAdsRequest) String() string { return proto.CompactTextString(m) } +func (*MutateAdGroupAdsRequest) ProtoMessage() {} +func (*MutateAdGroupAdsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_group_ad_service_f5afe93c5fff3c55, []int{1} +} +func (m *MutateAdGroupAdsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateAdGroupAdsRequest.Unmarshal(m, b) +} +func (m *MutateAdGroupAdsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateAdGroupAdsRequest.Marshal(b, m, deterministic) +} +func (dst *MutateAdGroupAdsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateAdGroupAdsRequest.Merge(dst, src) +} +func (m *MutateAdGroupAdsRequest) XXX_Size() int { + return xxx_messageInfo_MutateAdGroupAdsRequest.Size(m) +} +func (m *MutateAdGroupAdsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_MutateAdGroupAdsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateAdGroupAdsRequest proto.InternalMessageInfo + +func (m *MutateAdGroupAdsRequest) GetCustomerId() string { + if m != nil { + return m.CustomerId + } + return "" +} + +func (m *MutateAdGroupAdsRequest) GetOperations() []*AdGroupAdOperation { + if m != nil { + return m.Operations + } + return nil +} + +// A single operation (create, update, remove) on an ad group ad. +type AdGroupAdOperation struct { + // FieldMask that determines which resource fields are modified in an update. + UpdateMask *field_mask.FieldMask `protobuf:"bytes,4,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // Configuration for how policies are validated. + PolicyValidationParameter *common.PolicyValidationParameter `protobuf:"bytes,5,opt,name=policy_validation_parameter,json=policyValidationParameter,proto3" json:"policy_validation_parameter,omitempty"` + // The mutate operation. + // + // Types that are valid to be assigned to Operation: + // *AdGroupAdOperation_Create + // *AdGroupAdOperation_Update + // *AdGroupAdOperation_Remove + Operation isAdGroupAdOperation_Operation `protobuf_oneof:"operation"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AdGroupAdOperation) Reset() { *m = AdGroupAdOperation{} } +func (m *AdGroupAdOperation) String() string { return proto.CompactTextString(m) } +func (*AdGroupAdOperation) ProtoMessage() {} +func (*AdGroupAdOperation) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_group_ad_service_f5afe93c5fff3c55, []int{2} +} +func (m *AdGroupAdOperation) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AdGroupAdOperation.Unmarshal(m, b) +} +func (m *AdGroupAdOperation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AdGroupAdOperation.Marshal(b, m, deterministic) +} +func (dst *AdGroupAdOperation) XXX_Merge(src proto.Message) { + xxx_messageInfo_AdGroupAdOperation.Merge(dst, src) +} +func (m *AdGroupAdOperation) XXX_Size() int { + return xxx_messageInfo_AdGroupAdOperation.Size(m) +} +func (m *AdGroupAdOperation) XXX_DiscardUnknown() { + xxx_messageInfo_AdGroupAdOperation.DiscardUnknown(m) +} + +var xxx_messageInfo_AdGroupAdOperation proto.InternalMessageInfo + +func (m *AdGroupAdOperation) GetUpdateMask() *field_mask.FieldMask { + if m != nil { + return m.UpdateMask + } + return nil +} + +func (m *AdGroupAdOperation) GetPolicyValidationParameter() *common.PolicyValidationParameter { + if m != nil { + return m.PolicyValidationParameter + } + return nil +} + +type isAdGroupAdOperation_Operation interface { + isAdGroupAdOperation_Operation() +} + +type AdGroupAdOperation_Create struct { + Create *resources.AdGroupAd `protobuf:"bytes,1,opt,name=create,proto3,oneof"` +} + +type AdGroupAdOperation_Update struct { + Update *resources.AdGroupAd `protobuf:"bytes,2,opt,name=update,proto3,oneof"` +} + +type AdGroupAdOperation_Remove struct { + Remove string `protobuf:"bytes,3,opt,name=remove,proto3,oneof"` +} + +func (*AdGroupAdOperation_Create) isAdGroupAdOperation_Operation() {} + +func (*AdGroupAdOperation_Update) isAdGroupAdOperation_Operation() {} + +func (*AdGroupAdOperation_Remove) isAdGroupAdOperation_Operation() {} + +func (m *AdGroupAdOperation) GetOperation() isAdGroupAdOperation_Operation { + if m != nil { + return m.Operation + } + return nil +} + +func (m *AdGroupAdOperation) GetCreate() *resources.AdGroupAd { + if x, ok := m.GetOperation().(*AdGroupAdOperation_Create); ok { + return x.Create + } + return nil +} + +func (m *AdGroupAdOperation) GetUpdate() *resources.AdGroupAd { + if x, ok := m.GetOperation().(*AdGroupAdOperation_Update); ok { + return x.Update + } + return nil +} + +func (m *AdGroupAdOperation) GetRemove() string { + if x, ok := m.GetOperation().(*AdGroupAdOperation_Remove); ok { + return x.Remove + } + return "" +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*AdGroupAdOperation) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _AdGroupAdOperation_OneofMarshaler, _AdGroupAdOperation_OneofUnmarshaler, _AdGroupAdOperation_OneofSizer, []interface{}{ + (*AdGroupAdOperation_Create)(nil), + (*AdGroupAdOperation_Update)(nil), + (*AdGroupAdOperation_Remove)(nil), + } +} + +func _AdGroupAdOperation_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*AdGroupAdOperation) + // operation + switch x := m.Operation.(type) { + case *AdGroupAdOperation_Create: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Create); err != nil { + return err + } + case *AdGroupAdOperation_Update: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Update); err != nil { + return err + } + case *AdGroupAdOperation_Remove: + b.EncodeVarint(3<<3 | proto.WireBytes) + b.EncodeStringBytes(x.Remove) + case nil: + default: + return fmt.Errorf("AdGroupAdOperation.Operation has unexpected type %T", x) + } + return nil +} + +func _AdGroupAdOperation_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*AdGroupAdOperation) + switch tag { + case 1: // operation.create + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.AdGroupAd) + err := b.DecodeMessage(msg) + m.Operation = &AdGroupAdOperation_Create{msg} + return true, err + case 2: // operation.update + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.AdGroupAd) + err := b.DecodeMessage(msg) + m.Operation = &AdGroupAdOperation_Update{msg} + return true, err + case 3: // operation.remove + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Operation = &AdGroupAdOperation_Remove{x} + return true, err + default: + return false, nil + } +} + +func _AdGroupAdOperation_OneofSizer(msg proto.Message) (n int) { + m := msg.(*AdGroupAdOperation) + // operation + switch x := m.Operation.(type) { + case *AdGroupAdOperation_Create: + s := proto.Size(x.Create) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *AdGroupAdOperation_Update: + s := proto.Size(x.Update) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *AdGroupAdOperation_Remove: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(len(x.Remove))) + n += len(x.Remove) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// Response message for an ad group ad mutate. +type MutateAdGroupAdsResponse struct { + // All results for the mutate. + Results []*MutateAdGroupAdResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateAdGroupAdsResponse) Reset() { *m = MutateAdGroupAdsResponse{} } +func (m *MutateAdGroupAdsResponse) String() string { return proto.CompactTextString(m) } +func (*MutateAdGroupAdsResponse) ProtoMessage() {} +func (*MutateAdGroupAdsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_group_ad_service_f5afe93c5fff3c55, []int{3} +} +func (m *MutateAdGroupAdsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateAdGroupAdsResponse.Unmarshal(m, b) +} +func (m *MutateAdGroupAdsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateAdGroupAdsResponse.Marshal(b, m, deterministic) +} +func (dst *MutateAdGroupAdsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateAdGroupAdsResponse.Merge(dst, src) +} +func (m *MutateAdGroupAdsResponse) XXX_Size() int { + return xxx_messageInfo_MutateAdGroupAdsResponse.Size(m) +} +func (m *MutateAdGroupAdsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MutateAdGroupAdsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateAdGroupAdsResponse proto.InternalMessageInfo + +func (m *MutateAdGroupAdsResponse) GetResults() []*MutateAdGroupAdResult { + if m != nil { + return m.Results + } + return nil +} + +// The result for the ad mutate. +type MutateAdGroupAdResult struct { + // The resource name returned for successful operations. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateAdGroupAdResult) Reset() { *m = MutateAdGroupAdResult{} } +func (m *MutateAdGroupAdResult) String() string { return proto.CompactTextString(m) } +func (*MutateAdGroupAdResult) ProtoMessage() {} +func (*MutateAdGroupAdResult) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_group_ad_service_f5afe93c5fff3c55, []int{4} +} +func (m *MutateAdGroupAdResult) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateAdGroupAdResult.Unmarshal(m, b) +} +func (m *MutateAdGroupAdResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateAdGroupAdResult.Marshal(b, m, deterministic) +} +func (dst *MutateAdGroupAdResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateAdGroupAdResult.Merge(dst, src) +} +func (m *MutateAdGroupAdResult) XXX_Size() int { + return xxx_messageInfo_MutateAdGroupAdResult.Size(m) +} +func (m *MutateAdGroupAdResult) XXX_DiscardUnknown() { + xxx_messageInfo_MutateAdGroupAdResult.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateAdGroupAdResult proto.InternalMessageInfo + +func (m *MutateAdGroupAdResult) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetAdGroupAdRequest)(nil), "google.ads.googleads.v0.services.GetAdGroupAdRequest") + proto.RegisterType((*MutateAdGroupAdsRequest)(nil), "google.ads.googleads.v0.services.MutateAdGroupAdsRequest") + proto.RegisterType((*AdGroupAdOperation)(nil), "google.ads.googleads.v0.services.AdGroupAdOperation") + proto.RegisterType((*MutateAdGroupAdsResponse)(nil), "google.ads.googleads.v0.services.MutateAdGroupAdsResponse") + proto.RegisterType((*MutateAdGroupAdResult)(nil), "google.ads.googleads.v0.services.MutateAdGroupAdResult") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// AdGroupAdServiceClient is the client API for AdGroupAdService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type AdGroupAdServiceClient interface { + // Returns the requested ad in full detail. + GetAdGroupAd(ctx context.Context, in *GetAdGroupAdRequest, opts ...grpc.CallOption) (*resources.AdGroupAd, error) + // Creates, updates, or removes ads. Operation statuses are returned. + MutateAdGroupAds(ctx context.Context, in *MutateAdGroupAdsRequest, opts ...grpc.CallOption) (*MutateAdGroupAdsResponse, error) +} + +type adGroupAdServiceClient struct { + cc *grpc.ClientConn +} + +func NewAdGroupAdServiceClient(cc *grpc.ClientConn) AdGroupAdServiceClient { + return &adGroupAdServiceClient{cc} +} + +func (c *adGroupAdServiceClient) GetAdGroupAd(ctx context.Context, in *GetAdGroupAdRequest, opts ...grpc.CallOption) (*resources.AdGroupAd, error) { + out := new(resources.AdGroupAd) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.AdGroupAdService/GetAdGroupAd", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adGroupAdServiceClient) MutateAdGroupAds(ctx context.Context, in *MutateAdGroupAdsRequest, opts ...grpc.CallOption) (*MutateAdGroupAdsResponse, error) { + out := new(MutateAdGroupAdsResponse) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.AdGroupAdService/MutateAdGroupAds", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// AdGroupAdServiceServer is the server API for AdGroupAdService service. +type AdGroupAdServiceServer interface { + // Returns the requested ad in full detail. + GetAdGroupAd(context.Context, *GetAdGroupAdRequest) (*resources.AdGroupAd, error) + // Creates, updates, or removes ads. Operation statuses are returned. + MutateAdGroupAds(context.Context, *MutateAdGroupAdsRequest) (*MutateAdGroupAdsResponse, error) +} + +func RegisterAdGroupAdServiceServer(s *grpc.Server, srv AdGroupAdServiceServer) { + s.RegisterService(&_AdGroupAdService_serviceDesc, srv) +} + +func _AdGroupAdService_GetAdGroupAd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetAdGroupAdRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdGroupAdServiceServer).GetAdGroupAd(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.AdGroupAdService/GetAdGroupAd", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdGroupAdServiceServer).GetAdGroupAd(ctx, req.(*GetAdGroupAdRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AdGroupAdService_MutateAdGroupAds_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MutateAdGroupAdsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdGroupAdServiceServer).MutateAdGroupAds(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.AdGroupAdService/MutateAdGroupAds", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdGroupAdServiceServer).MutateAdGroupAds(ctx, req.(*MutateAdGroupAdsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _AdGroupAdService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.AdGroupAdService", + HandlerType: (*AdGroupAdServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetAdGroupAd", + Handler: _AdGroupAdService_GetAdGroupAd_Handler, + }, + { + MethodName: "MutateAdGroupAds", + Handler: _AdGroupAdService_MutateAdGroupAds_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/ad_group_ad_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/ad_group_ad_service.proto", fileDescriptor_ad_group_ad_service_f5afe93c5fff3c55) +} + +var fileDescriptor_ad_group_ad_service_f5afe93c5fff3c55 = []byte{ + // 648 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x54, 0x41, 0x6f, 0xd3, 0x30, + 0x14, 0x26, 0x2d, 0x0c, 0xcd, 0x1d, 0xd2, 0x64, 0x34, 0x11, 0x0a, 0x12, 0x55, 0xe0, 0x30, 0x95, + 0xc9, 0xae, 0xba, 0x21, 0xb4, 0x8e, 0x1d, 0xba, 0xc3, 0x3a, 0x0e, 0x83, 0x12, 0xd0, 0x0e, 0xa8, + 0x52, 0xe4, 0xd5, 0x5e, 0x14, 0x2d, 0x89, 0x83, 0xed, 0x54, 0x9a, 0xa6, 0x5d, 0x40, 0xe2, 0x8c, + 0xc4, 0x3f, 0xe0, 0x06, 0xff, 0x83, 0x0b, 0x57, 0xc4, 0x3f, 0xe0, 0x87, 0xa0, 0xc4, 0x71, 0x28, + 0xdd, 0xa2, 0xb2, 0xdd, 0x9e, 0xed, 0xf7, 0x7d, 0xef, 0xf9, 0xfb, 0xfc, 0x0c, 0x7a, 0x3e, 0xe7, + 0x7e, 0xc8, 0x30, 0xa1, 0x12, 0xeb, 0x30, 0x8b, 0x26, 0x1d, 0x2c, 0x99, 0x98, 0x04, 0x63, 0x26, + 0x31, 0xa1, 0x9e, 0x2f, 0x78, 0x9a, 0x78, 0x84, 0x7a, 0xc5, 0x26, 0x4a, 0x04, 0x57, 0x1c, 0xb6, + 0x34, 0x00, 0x11, 0x2a, 0x51, 0x89, 0x45, 0x93, 0x0e, 0x32, 0xd8, 0xe6, 0xe3, 0x2a, 0xf6, 0x31, + 0x8f, 0x22, 0x1e, 0xe3, 0x84, 0x87, 0xc1, 0xf8, 0x44, 0xd3, 0x35, 0xd7, 0xab, 0x92, 0x05, 0x93, + 0x3c, 0x15, 0x33, 0xbd, 0x14, 0xa0, 0xfb, 0x06, 0x94, 0x04, 0x98, 0xc4, 0x31, 0x57, 0x44, 0x05, + 0x3c, 0x96, 0xc5, 0x69, 0xd1, 0x21, 0xce, 0x57, 0x87, 0xe9, 0x11, 0x3e, 0x0a, 0x58, 0x48, 0xbd, + 0x88, 0xc8, 0x63, 0x9d, 0xe1, 0xf4, 0xc0, 0xed, 0x01, 0x53, 0x7d, 0x3a, 0xc8, 0x68, 0xfb, 0xd4, + 0x65, 0xef, 0x52, 0x26, 0x15, 0x7c, 0x08, 0x6e, 0x99, 0xaa, 0x5e, 0x4c, 0x22, 0x66, 0x5b, 0x2d, + 0x6b, 0x75, 0xd1, 0x5d, 0x32, 0x9b, 0x2f, 0x48, 0xc4, 0x9c, 0x4f, 0x16, 0xb8, 0xb3, 0x9f, 0x2a, + 0xa2, 0x58, 0x89, 0x97, 0x86, 0xe0, 0x01, 0x68, 0x8c, 0x53, 0xa9, 0x78, 0xc4, 0x84, 0x17, 0xd0, + 0x02, 0x0e, 0xcc, 0xd6, 0x73, 0x0a, 0xdf, 0x00, 0xc0, 0x13, 0x26, 0x74, 0xbb, 0x76, 0xad, 0x55, + 0x5f, 0x6d, 0x74, 0x37, 0xd0, 0x3c, 0x45, 0x51, 0x59, 0xe9, 0xa5, 0x01, 0xbb, 0x53, 0x3c, 0xce, + 0x87, 0x3a, 0x80, 0xe7, 0x53, 0xe0, 0x16, 0x68, 0xa4, 0x09, 0x25, 0x8a, 0xe5, 0x57, 0xb7, 0xaf, + 0xb7, 0xac, 0xd5, 0x46, 0xb7, 0x69, 0xaa, 0x19, 0x75, 0xd0, 0x6e, 0xa6, 0xce, 0x3e, 0x91, 0xc7, + 0x2e, 0xd0, 0xe9, 0x59, 0x0c, 0x4f, 0xc0, 0x3d, 0xed, 0x93, 0x37, 0x21, 0x61, 0x40, 0x73, 0x46, + 0x2f, 0x21, 0x82, 0x44, 0x4c, 0x31, 0x61, 0xdf, 0xc8, 0xc9, 0x36, 0x2b, 0x5b, 0xd7, 0x56, 0xa3, + 0x61, 0x4e, 0x71, 0x50, 0x32, 0x0c, 0x0d, 0x81, 0x7b, 0x37, 0xa9, 0x3a, 0x82, 0xbb, 0x60, 0x61, + 0x2c, 0x18, 0x51, 0x5a, 0xff, 0x46, 0x77, 0xad, 0xb2, 0x4a, 0xf9, 0x46, 0xfe, 0x2a, 0xb4, 0x77, + 0xcd, 0x2d, 0xd0, 0x19, 0x8f, 0xbe, 0x90, 0x5d, 0xbb, 0x1a, 0x8f, 0x46, 0x43, 0x1b, 0x2c, 0x08, + 0x16, 0xf1, 0x09, 0xb3, 0xeb, 0x99, 0xa1, 0xd9, 0x89, 0x5e, 0xef, 0x34, 0xc0, 0x62, 0x69, 0x83, + 0x13, 0x01, 0xfb, 0xfc, 0xbb, 0x90, 0x09, 0x8f, 0x25, 0x83, 0xaf, 0xc0, 0x4d, 0xc1, 0x64, 0x1a, + 0x2a, 0x63, 0xfa, 0xd3, 0xf9, 0xa6, 0xcf, 0x90, 0xb9, 0x39, 0xde, 0x35, 0x3c, 0xce, 0x33, 0xb0, + 0x72, 0x61, 0xc6, 0x7f, 0xbd, 0xe2, 0xee, 0xc7, 0x3a, 0x58, 0x2e, 0x81, 0xaf, 0x75, 0x49, 0xf8, + 0xd5, 0x02, 0x4b, 0xd3, 0x73, 0x01, 0x9f, 0xcc, 0xef, 0xf2, 0x82, 0x39, 0x6a, 0x5e, 0x4a, 0x68, + 0x67, 0xe3, 0xfd, 0xcf, 0xdf, 0x9f, 0x6b, 0x08, 0xae, 0x65, 0x53, 0x7f, 0xfa, 0x4f, 0xeb, 0xdb, + 0x66, 0x74, 0x24, 0x6e, 0x63, 0x52, 0xca, 0x8a, 0xdb, 0x67, 0xf0, 0xbb, 0x05, 0x96, 0x67, 0xe5, + 0x86, 0x9b, 0x97, 0x56, 0xd5, 0x8c, 0x6e, 0xb3, 0x77, 0x15, 0xa8, 0x76, 0xd7, 0xe9, 0xe5, 0x37, + 0xd8, 0x70, 0x70, 0xfe, 0xc9, 0x95, 0x2d, 0x9f, 0x4e, 0xfd, 0x05, 0xdb, 0xed, 0xb3, 0xa9, 0x0b, + 0xf4, 0xa2, 0x9c, 0xaa, 0x67, 0xb5, 0x77, 0x7e, 0x59, 0xe0, 0xd1, 0x98, 0x47, 0x73, 0xab, 0xef, + 0xac, 0xcc, 0xda, 0x35, 0xcc, 0x06, 0x78, 0x68, 0xbd, 0xdd, 0x2b, 0xa0, 0x3e, 0x0f, 0x49, 0xec, + 0x23, 0x2e, 0x7c, 0xec, 0xb3, 0x38, 0x1f, 0x6f, 0xf3, 0xa3, 0x26, 0x81, 0xac, 0xfe, 0xeb, 0xb7, + 0x4c, 0xf0, 0xa5, 0x56, 0x1f, 0xf4, 0xfb, 0xdf, 0x6a, 0xad, 0x81, 0x26, 0xec, 0x53, 0x89, 0x74, + 0x98, 0x45, 0x07, 0x1d, 0x54, 0x14, 0x96, 0x3f, 0x4c, 0xca, 0xa8, 0x4f, 0xe5, 0xa8, 0x4c, 0x19, + 0x1d, 0x74, 0x46, 0x26, 0xe5, 0x70, 0x21, 0x6f, 0x60, 0xfd, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, + 0x1d, 0x5f, 0xf4, 0x20, 0x6b, 0x06, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/ad_group_audience_view_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/ad_group_audience_view_service.pb.go new file mode 100644 index 000000000..50d00007e --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/ad_group_audience_view_service.pb.go @@ -0,0 +1,175 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/ad_group_audience_view_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [AdGroupAudienceViewService.GetAdGoupAudienceView][]. +type GetAdGroupAudienceViewRequest struct { + // The resource name of the ad group audience view to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetAdGroupAudienceViewRequest) Reset() { *m = GetAdGroupAudienceViewRequest{} } +func (m *GetAdGroupAudienceViewRequest) String() string { return proto.CompactTextString(m) } +func (*GetAdGroupAudienceViewRequest) ProtoMessage() {} +func (*GetAdGroupAudienceViewRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_group_audience_view_service_606af6b4aae1215b, []int{0} +} +func (m *GetAdGroupAudienceViewRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetAdGroupAudienceViewRequest.Unmarshal(m, b) +} +func (m *GetAdGroupAudienceViewRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetAdGroupAudienceViewRequest.Marshal(b, m, deterministic) +} +func (dst *GetAdGroupAudienceViewRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetAdGroupAudienceViewRequest.Merge(dst, src) +} +func (m *GetAdGroupAudienceViewRequest) XXX_Size() int { + return xxx_messageInfo_GetAdGroupAudienceViewRequest.Size(m) +} +func (m *GetAdGroupAudienceViewRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetAdGroupAudienceViewRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetAdGroupAudienceViewRequest proto.InternalMessageInfo + +func (m *GetAdGroupAudienceViewRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetAdGroupAudienceViewRequest)(nil), "google.ads.googleads.v0.services.GetAdGroupAudienceViewRequest") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// AdGroupAudienceViewServiceClient is the client API for AdGroupAudienceViewService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type AdGroupAudienceViewServiceClient interface { + // Returns the requested ad group audience view in full detail. + GetAdGroupAudienceView(ctx context.Context, in *GetAdGroupAudienceViewRequest, opts ...grpc.CallOption) (*resources.AdGroupAudienceView, error) +} + +type adGroupAudienceViewServiceClient struct { + cc *grpc.ClientConn +} + +func NewAdGroupAudienceViewServiceClient(cc *grpc.ClientConn) AdGroupAudienceViewServiceClient { + return &adGroupAudienceViewServiceClient{cc} +} + +func (c *adGroupAudienceViewServiceClient) GetAdGroupAudienceView(ctx context.Context, in *GetAdGroupAudienceViewRequest, opts ...grpc.CallOption) (*resources.AdGroupAudienceView, error) { + out := new(resources.AdGroupAudienceView) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.AdGroupAudienceViewService/GetAdGroupAudienceView", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// AdGroupAudienceViewServiceServer is the server API for AdGroupAudienceViewService service. +type AdGroupAudienceViewServiceServer interface { + // Returns the requested ad group audience view in full detail. + GetAdGroupAudienceView(context.Context, *GetAdGroupAudienceViewRequest) (*resources.AdGroupAudienceView, error) +} + +func RegisterAdGroupAudienceViewServiceServer(s *grpc.Server, srv AdGroupAudienceViewServiceServer) { + s.RegisterService(&_AdGroupAudienceViewService_serviceDesc, srv) +} + +func _AdGroupAudienceViewService_GetAdGroupAudienceView_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetAdGroupAudienceViewRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdGroupAudienceViewServiceServer).GetAdGroupAudienceView(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.AdGroupAudienceViewService/GetAdGroupAudienceView", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdGroupAudienceViewServiceServer).GetAdGroupAudienceView(ctx, req.(*GetAdGroupAudienceViewRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _AdGroupAudienceViewService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.AdGroupAudienceViewService", + HandlerType: (*AdGroupAudienceViewServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetAdGroupAudienceView", + Handler: _AdGroupAudienceViewService_GetAdGroupAudienceView_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/ad_group_audience_view_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/ad_group_audience_view_service.proto", fileDescriptor_ad_group_audience_view_service_606af6b4aae1215b) +} + +var fileDescriptor_ad_group_audience_view_service_606af6b4aae1215b = []byte{ + // 359 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x52, 0xc1, 0x4a, 0xeb, 0x40, + 0x14, 0x25, 0x7d, 0xf0, 0xe0, 0x85, 0xf7, 0x36, 0x59, 0x3c, 0x24, 0x28, 0x96, 0xea, 0x42, 0xba, + 0x98, 0x09, 0x0a, 0x45, 0x10, 0x2b, 0x29, 0x4a, 0x5c, 0x49, 0xa9, 0xd0, 0x85, 0x04, 0xc2, 0x98, + 0x5c, 0xc2, 0x40, 0x33, 0x13, 0xe7, 0x26, 0xe9, 0x42, 0xdc, 0xf8, 0x0b, 0xfe, 0x81, 0x4b, 0x3f, + 0xc5, 0x9d, 0xf8, 0x01, 0x6e, 0xfc, 0x00, 0x3f, 0x41, 0xd2, 0xc9, 0x14, 0xc4, 0xc6, 0xee, 0x0e, + 0x73, 0xef, 0x39, 0xe7, 0xde, 0x73, 0xc7, 0x3e, 0x4b, 0xa5, 0x4c, 0x67, 0x40, 0x59, 0x82, 0x54, + 0xc3, 0x1a, 0x55, 0x1e, 0x45, 0x50, 0x15, 0x8f, 0x01, 0x29, 0x4b, 0xa2, 0x54, 0xc9, 0x32, 0x8f, + 0x58, 0x99, 0x70, 0x10, 0x31, 0x44, 0x15, 0x87, 0x79, 0xd4, 0xd4, 0x49, 0xae, 0x64, 0x21, 0x9d, + 0xae, 0xe6, 0x12, 0x96, 0x20, 0x59, 0xca, 0x90, 0xca, 0x23, 0x46, 0xc6, 0x1d, 0xb6, 0x19, 0x29, + 0x40, 0x59, 0xaa, 0x76, 0x27, 0xed, 0xe0, 0x6e, 0x1a, 0x7e, 0xce, 0x29, 0x13, 0x42, 0x16, 0xac, + 0xe0, 0x52, 0xa0, 0xae, 0xf6, 0x4e, 0xed, 0xad, 0x00, 0x0a, 0x3f, 0x09, 0x6a, 0xbe, 0xdf, 0xd0, + 0xa7, 0x1c, 0xe6, 0x13, 0xb8, 0x29, 0x01, 0x0b, 0x67, 0xc7, 0xfe, 0x67, 0x8c, 0x22, 0xc1, 0x32, + 0xd8, 0xb0, 0xba, 0xd6, 0xde, 0x9f, 0xc9, 0x5f, 0xf3, 0x78, 0xc1, 0x32, 0xd8, 0xff, 0xb0, 0x6c, + 0x77, 0x85, 0xc6, 0xa5, 0xde, 0xc1, 0x79, 0xb1, 0xec, 0xff, 0xab, 0x5d, 0x9c, 0x13, 0xb2, 0x2e, + 0x00, 0xf2, 0xe3, 0x7c, 0xee, 0xa0, 0x55, 0x60, 0x99, 0x0f, 0x59, 0x41, 0xef, 0x0d, 0xef, 0x5f, + 0xdf, 0x1f, 0x3a, 0x87, 0xce, 0xa0, 0x8e, 0xf2, 0xf6, 0xcb, 0x8a, 0xc7, 0x71, 0x89, 0x85, 0xcc, + 0x40, 0x21, 0xed, 0x53, 0xf6, 0x9d, 0x8b, 0xb4, 0x7f, 0x37, 0x7a, 0xb3, 0xec, 0xdd, 0x58, 0x66, + 0x6b, 0xc7, 0x1f, 0x6d, 0xb7, 0x07, 0x33, 0xae, 0x4f, 0x30, 0xb6, 0xae, 0xce, 0x1b, 0x91, 0x54, + 0xce, 0x98, 0x48, 0x89, 0x54, 0x29, 0x4d, 0x41, 0x2c, 0x0e, 0x64, 0x4e, 0x9e, 0x73, 0x6c, 0xff, + 0x6a, 0x47, 0x06, 0x3c, 0x76, 0x7e, 0x05, 0xbe, 0xff, 0xd4, 0xe9, 0x06, 0x5a, 0xd0, 0x4f, 0x90, + 0x68, 0x58, 0xa3, 0xa9, 0x47, 0x1a, 0x63, 0x7c, 0x36, 0x2d, 0xa1, 0x9f, 0x60, 0xb8, 0x6c, 0x09, + 0xa7, 0x5e, 0x68, 0x5a, 0xae, 0x7f, 0x2f, 0x06, 0x38, 0xf8, 0x0c, 0x00, 0x00, 0xff, 0xff, 0xf0, + 0x63, 0x70, 0x60, 0xea, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/ad_group_bid_modifier_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/ad_group_bid_modifier_service.pb.go new file mode 100644 index 000000000..9d4b697fb --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/ad_group_bid_modifier_service.pb.go @@ -0,0 +1,547 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/ad_group_bid_modifier_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" +import field_mask "google.golang.org/genproto/protobuf/field_mask" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [AdGroupBidModifierService.GetAdGroupBidModifier][google.ads.googleads.v0.services.AdGroupBidModifierService.GetAdGroupBidModifier]. +type GetAdGroupBidModifierRequest struct { + // The resource name of the ad group bid modifier to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetAdGroupBidModifierRequest) Reset() { *m = GetAdGroupBidModifierRequest{} } +func (m *GetAdGroupBidModifierRequest) String() string { return proto.CompactTextString(m) } +func (*GetAdGroupBidModifierRequest) ProtoMessage() {} +func (*GetAdGroupBidModifierRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_group_bid_modifier_service_fbd69257eb9b6c8d, []int{0} +} +func (m *GetAdGroupBidModifierRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetAdGroupBidModifierRequest.Unmarshal(m, b) +} +func (m *GetAdGroupBidModifierRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetAdGroupBidModifierRequest.Marshal(b, m, deterministic) +} +func (dst *GetAdGroupBidModifierRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetAdGroupBidModifierRequest.Merge(dst, src) +} +func (m *GetAdGroupBidModifierRequest) XXX_Size() int { + return xxx_messageInfo_GetAdGroupBidModifierRequest.Size(m) +} +func (m *GetAdGroupBidModifierRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetAdGroupBidModifierRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetAdGroupBidModifierRequest proto.InternalMessageInfo + +func (m *GetAdGroupBidModifierRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +// Request message for [AdGroupBidModifierService.MutateAdGroupBidModifiers][google.ads.googleads.v0.services.AdGroupBidModifierService.MutateAdGroupBidModifiers]. +type MutateAdGroupBidModifiersRequest struct { + // ID of the customer whose ad group bid modifiers are being modified. + CustomerId string `protobuf:"bytes,1,opt,name=customer_id,json=customerId,proto3" json:"customer_id,omitempty"` + // The list of operations to perform on individual ad group bid modifiers. + Operations []*AdGroupBidModifierOperation `protobuf:"bytes,2,rep,name=operations,proto3" json:"operations,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateAdGroupBidModifiersRequest) Reset() { *m = MutateAdGroupBidModifiersRequest{} } +func (m *MutateAdGroupBidModifiersRequest) String() string { return proto.CompactTextString(m) } +func (*MutateAdGroupBidModifiersRequest) ProtoMessage() {} +func (*MutateAdGroupBidModifiersRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_group_bid_modifier_service_fbd69257eb9b6c8d, []int{1} +} +func (m *MutateAdGroupBidModifiersRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateAdGroupBidModifiersRequest.Unmarshal(m, b) +} +func (m *MutateAdGroupBidModifiersRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateAdGroupBidModifiersRequest.Marshal(b, m, deterministic) +} +func (dst *MutateAdGroupBidModifiersRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateAdGroupBidModifiersRequest.Merge(dst, src) +} +func (m *MutateAdGroupBidModifiersRequest) XXX_Size() int { + return xxx_messageInfo_MutateAdGroupBidModifiersRequest.Size(m) +} +func (m *MutateAdGroupBidModifiersRequest) XXX_DiscardUnknown() { + xxx_messageInfo_MutateAdGroupBidModifiersRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateAdGroupBidModifiersRequest proto.InternalMessageInfo + +func (m *MutateAdGroupBidModifiersRequest) GetCustomerId() string { + if m != nil { + return m.CustomerId + } + return "" +} + +func (m *MutateAdGroupBidModifiersRequest) GetOperations() []*AdGroupBidModifierOperation { + if m != nil { + return m.Operations + } + return nil +} + +// A single operation (create, remove, update) on an ad group bid modifier. +type AdGroupBidModifierOperation struct { + // FieldMask that determines which resource fields are modified in an update. + UpdateMask *field_mask.FieldMask `protobuf:"bytes,4,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // The mutate operation. + // + // Types that are valid to be assigned to Operation: + // *AdGroupBidModifierOperation_Create + // *AdGroupBidModifierOperation_Update + // *AdGroupBidModifierOperation_Remove + Operation isAdGroupBidModifierOperation_Operation `protobuf_oneof:"operation"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AdGroupBidModifierOperation) Reset() { *m = AdGroupBidModifierOperation{} } +func (m *AdGroupBidModifierOperation) String() string { return proto.CompactTextString(m) } +func (*AdGroupBidModifierOperation) ProtoMessage() {} +func (*AdGroupBidModifierOperation) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_group_bid_modifier_service_fbd69257eb9b6c8d, []int{2} +} +func (m *AdGroupBidModifierOperation) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AdGroupBidModifierOperation.Unmarshal(m, b) +} +func (m *AdGroupBidModifierOperation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AdGroupBidModifierOperation.Marshal(b, m, deterministic) +} +func (dst *AdGroupBidModifierOperation) XXX_Merge(src proto.Message) { + xxx_messageInfo_AdGroupBidModifierOperation.Merge(dst, src) +} +func (m *AdGroupBidModifierOperation) XXX_Size() int { + return xxx_messageInfo_AdGroupBidModifierOperation.Size(m) +} +func (m *AdGroupBidModifierOperation) XXX_DiscardUnknown() { + xxx_messageInfo_AdGroupBidModifierOperation.DiscardUnknown(m) +} + +var xxx_messageInfo_AdGroupBidModifierOperation proto.InternalMessageInfo + +func (m *AdGroupBidModifierOperation) GetUpdateMask() *field_mask.FieldMask { + if m != nil { + return m.UpdateMask + } + return nil +} + +type isAdGroupBidModifierOperation_Operation interface { + isAdGroupBidModifierOperation_Operation() +} + +type AdGroupBidModifierOperation_Create struct { + Create *resources.AdGroupBidModifier `protobuf:"bytes,1,opt,name=create,proto3,oneof"` +} + +type AdGroupBidModifierOperation_Update struct { + Update *resources.AdGroupBidModifier `protobuf:"bytes,2,opt,name=update,proto3,oneof"` +} + +type AdGroupBidModifierOperation_Remove struct { + Remove string `protobuf:"bytes,3,opt,name=remove,proto3,oneof"` +} + +func (*AdGroupBidModifierOperation_Create) isAdGroupBidModifierOperation_Operation() {} + +func (*AdGroupBidModifierOperation_Update) isAdGroupBidModifierOperation_Operation() {} + +func (*AdGroupBidModifierOperation_Remove) isAdGroupBidModifierOperation_Operation() {} + +func (m *AdGroupBidModifierOperation) GetOperation() isAdGroupBidModifierOperation_Operation { + if m != nil { + return m.Operation + } + return nil +} + +func (m *AdGroupBidModifierOperation) GetCreate() *resources.AdGroupBidModifier { + if x, ok := m.GetOperation().(*AdGroupBidModifierOperation_Create); ok { + return x.Create + } + return nil +} + +func (m *AdGroupBidModifierOperation) GetUpdate() *resources.AdGroupBidModifier { + if x, ok := m.GetOperation().(*AdGroupBidModifierOperation_Update); ok { + return x.Update + } + return nil +} + +func (m *AdGroupBidModifierOperation) GetRemove() string { + if x, ok := m.GetOperation().(*AdGroupBidModifierOperation_Remove); ok { + return x.Remove + } + return "" +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*AdGroupBidModifierOperation) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _AdGroupBidModifierOperation_OneofMarshaler, _AdGroupBidModifierOperation_OneofUnmarshaler, _AdGroupBidModifierOperation_OneofSizer, []interface{}{ + (*AdGroupBidModifierOperation_Create)(nil), + (*AdGroupBidModifierOperation_Update)(nil), + (*AdGroupBidModifierOperation_Remove)(nil), + } +} + +func _AdGroupBidModifierOperation_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*AdGroupBidModifierOperation) + // operation + switch x := m.Operation.(type) { + case *AdGroupBidModifierOperation_Create: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Create); err != nil { + return err + } + case *AdGroupBidModifierOperation_Update: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Update); err != nil { + return err + } + case *AdGroupBidModifierOperation_Remove: + b.EncodeVarint(3<<3 | proto.WireBytes) + b.EncodeStringBytes(x.Remove) + case nil: + default: + return fmt.Errorf("AdGroupBidModifierOperation.Operation has unexpected type %T", x) + } + return nil +} + +func _AdGroupBidModifierOperation_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*AdGroupBidModifierOperation) + switch tag { + case 1: // operation.create + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.AdGroupBidModifier) + err := b.DecodeMessage(msg) + m.Operation = &AdGroupBidModifierOperation_Create{msg} + return true, err + case 2: // operation.update + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.AdGroupBidModifier) + err := b.DecodeMessage(msg) + m.Operation = &AdGroupBidModifierOperation_Update{msg} + return true, err + case 3: // operation.remove + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Operation = &AdGroupBidModifierOperation_Remove{x} + return true, err + default: + return false, nil + } +} + +func _AdGroupBidModifierOperation_OneofSizer(msg proto.Message) (n int) { + m := msg.(*AdGroupBidModifierOperation) + // operation + switch x := m.Operation.(type) { + case *AdGroupBidModifierOperation_Create: + s := proto.Size(x.Create) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *AdGroupBidModifierOperation_Update: + s := proto.Size(x.Update) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *AdGroupBidModifierOperation_Remove: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(len(x.Remove))) + n += len(x.Remove) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// Response message for ad group bid modifiers mutate. +type MutateAdGroupBidModifiersResponse struct { + // All results for the mutate. + Results []*MutateAdGroupBidModifierResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateAdGroupBidModifiersResponse) Reset() { *m = MutateAdGroupBidModifiersResponse{} } +func (m *MutateAdGroupBidModifiersResponse) String() string { return proto.CompactTextString(m) } +func (*MutateAdGroupBidModifiersResponse) ProtoMessage() {} +func (*MutateAdGroupBidModifiersResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_group_bid_modifier_service_fbd69257eb9b6c8d, []int{3} +} +func (m *MutateAdGroupBidModifiersResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateAdGroupBidModifiersResponse.Unmarshal(m, b) +} +func (m *MutateAdGroupBidModifiersResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateAdGroupBidModifiersResponse.Marshal(b, m, deterministic) +} +func (dst *MutateAdGroupBidModifiersResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateAdGroupBidModifiersResponse.Merge(dst, src) +} +func (m *MutateAdGroupBidModifiersResponse) XXX_Size() int { + return xxx_messageInfo_MutateAdGroupBidModifiersResponse.Size(m) +} +func (m *MutateAdGroupBidModifiersResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MutateAdGroupBidModifiersResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateAdGroupBidModifiersResponse proto.InternalMessageInfo + +func (m *MutateAdGroupBidModifiersResponse) GetResults() []*MutateAdGroupBidModifierResult { + if m != nil { + return m.Results + } + return nil +} + +// The result for the criterion mutate. +type MutateAdGroupBidModifierResult struct { + // Returned for successful operations. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateAdGroupBidModifierResult) Reset() { *m = MutateAdGroupBidModifierResult{} } +func (m *MutateAdGroupBidModifierResult) String() string { return proto.CompactTextString(m) } +func (*MutateAdGroupBidModifierResult) ProtoMessage() {} +func (*MutateAdGroupBidModifierResult) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_group_bid_modifier_service_fbd69257eb9b6c8d, []int{4} +} +func (m *MutateAdGroupBidModifierResult) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateAdGroupBidModifierResult.Unmarshal(m, b) +} +func (m *MutateAdGroupBidModifierResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateAdGroupBidModifierResult.Marshal(b, m, deterministic) +} +func (dst *MutateAdGroupBidModifierResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateAdGroupBidModifierResult.Merge(dst, src) +} +func (m *MutateAdGroupBidModifierResult) XXX_Size() int { + return xxx_messageInfo_MutateAdGroupBidModifierResult.Size(m) +} +func (m *MutateAdGroupBidModifierResult) XXX_DiscardUnknown() { + xxx_messageInfo_MutateAdGroupBidModifierResult.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateAdGroupBidModifierResult proto.InternalMessageInfo + +func (m *MutateAdGroupBidModifierResult) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetAdGroupBidModifierRequest)(nil), "google.ads.googleads.v0.services.GetAdGroupBidModifierRequest") + proto.RegisterType((*MutateAdGroupBidModifiersRequest)(nil), "google.ads.googleads.v0.services.MutateAdGroupBidModifiersRequest") + proto.RegisterType((*AdGroupBidModifierOperation)(nil), "google.ads.googleads.v0.services.AdGroupBidModifierOperation") + proto.RegisterType((*MutateAdGroupBidModifiersResponse)(nil), "google.ads.googleads.v0.services.MutateAdGroupBidModifiersResponse") + proto.RegisterType((*MutateAdGroupBidModifierResult)(nil), "google.ads.googleads.v0.services.MutateAdGroupBidModifierResult") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// AdGroupBidModifierServiceClient is the client API for AdGroupBidModifierService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type AdGroupBidModifierServiceClient interface { + // Returns the requested ad group bid modifier in full detail. + GetAdGroupBidModifier(ctx context.Context, in *GetAdGroupBidModifierRequest, opts ...grpc.CallOption) (*resources.AdGroupBidModifier, error) + // Creates, updates, or removes ad group bid modifiers. + // Operation statuses are returned. + MutateAdGroupBidModifiers(ctx context.Context, in *MutateAdGroupBidModifiersRequest, opts ...grpc.CallOption) (*MutateAdGroupBidModifiersResponse, error) +} + +type adGroupBidModifierServiceClient struct { + cc *grpc.ClientConn +} + +func NewAdGroupBidModifierServiceClient(cc *grpc.ClientConn) AdGroupBidModifierServiceClient { + return &adGroupBidModifierServiceClient{cc} +} + +func (c *adGroupBidModifierServiceClient) GetAdGroupBidModifier(ctx context.Context, in *GetAdGroupBidModifierRequest, opts ...grpc.CallOption) (*resources.AdGroupBidModifier, error) { + out := new(resources.AdGroupBidModifier) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.AdGroupBidModifierService/GetAdGroupBidModifier", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adGroupBidModifierServiceClient) MutateAdGroupBidModifiers(ctx context.Context, in *MutateAdGroupBidModifiersRequest, opts ...grpc.CallOption) (*MutateAdGroupBidModifiersResponse, error) { + out := new(MutateAdGroupBidModifiersResponse) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.AdGroupBidModifierService/MutateAdGroupBidModifiers", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// AdGroupBidModifierServiceServer is the server API for AdGroupBidModifierService service. +type AdGroupBidModifierServiceServer interface { + // Returns the requested ad group bid modifier in full detail. + GetAdGroupBidModifier(context.Context, *GetAdGroupBidModifierRequest) (*resources.AdGroupBidModifier, error) + // Creates, updates, or removes ad group bid modifiers. + // Operation statuses are returned. + MutateAdGroupBidModifiers(context.Context, *MutateAdGroupBidModifiersRequest) (*MutateAdGroupBidModifiersResponse, error) +} + +func RegisterAdGroupBidModifierServiceServer(s *grpc.Server, srv AdGroupBidModifierServiceServer) { + s.RegisterService(&_AdGroupBidModifierService_serviceDesc, srv) +} + +func _AdGroupBidModifierService_GetAdGroupBidModifier_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetAdGroupBidModifierRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdGroupBidModifierServiceServer).GetAdGroupBidModifier(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.AdGroupBidModifierService/GetAdGroupBidModifier", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdGroupBidModifierServiceServer).GetAdGroupBidModifier(ctx, req.(*GetAdGroupBidModifierRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AdGroupBidModifierService_MutateAdGroupBidModifiers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MutateAdGroupBidModifiersRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdGroupBidModifierServiceServer).MutateAdGroupBidModifiers(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.AdGroupBidModifierService/MutateAdGroupBidModifiers", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdGroupBidModifierServiceServer).MutateAdGroupBidModifiers(ctx, req.(*MutateAdGroupBidModifiersRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _AdGroupBidModifierService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.AdGroupBidModifierService", + HandlerType: (*AdGroupBidModifierServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetAdGroupBidModifier", + Handler: _AdGroupBidModifierService_GetAdGroupBidModifier_Handler, + }, + { + MethodName: "MutateAdGroupBidModifiers", + Handler: _AdGroupBidModifierService_MutateAdGroupBidModifiers_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/ad_group_bid_modifier_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/ad_group_bid_modifier_service.proto", fileDescriptor_ad_group_bid_modifier_service_fbd69257eb9b6c8d) +} + +var fileDescriptor_ad_group_bid_modifier_service_fbd69257eb9b6c8d = []byte{ + // 607 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x95, 0x4d, 0x6f, 0xd3, 0x30, + 0x18, 0xc7, 0x49, 0x8a, 0x86, 0xe6, 0xc0, 0xc5, 0x12, 0x52, 0x56, 0xa6, 0x11, 0x02, 0x87, 0xaa, + 0x87, 0xa4, 0x2a, 0x9a, 0x40, 0x9b, 0x82, 0x68, 0x0b, 0x74, 0x1c, 0xca, 0xa6, 0x20, 0xed, 0x30, + 0x15, 0x45, 0x6e, 0xed, 0x46, 0xd1, 0x9a, 0x38, 0xd8, 0x49, 0x2f, 0xd3, 0x84, 0xc4, 0x57, 0xe0, + 0x1b, 0x8c, 0x1b, 0x1f, 0x05, 0x89, 0x13, 0x07, 0x6e, 0x9c, 0xb8, 0xf0, 0x2d, 0x90, 0xe3, 0xb8, + 0x0c, 0xb5, 0x69, 0xd1, 0x76, 0x7b, 0x62, 0x3f, 0xfe, 0x3d, 0x2f, 0x7f, 0x3f, 0x0e, 0x78, 0x11, + 0x52, 0x1a, 0x4e, 0x89, 0x8b, 0x30, 0x77, 0xa5, 0x29, 0xac, 0x59, 0xcb, 0xe5, 0x84, 0xcd, 0xa2, + 0x31, 0xe1, 0x2e, 0xc2, 0x41, 0xc8, 0x68, 0x9e, 0x06, 0xa3, 0x08, 0x07, 0x31, 0xc5, 0xd1, 0x24, + 0x22, 0x2c, 0x28, 0xb7, 0x9d, 0x94, 0xd1, 0x8c, 0x42, 0x4b, 0x1e, 0x75, 0x10, 0xe6, 0xce, 0x9c, + 0xe2, 0xcc, 0x5a, 0x8e, 0xa2, 0xd4, 0xbd, 0xaa, 0x38, 0x8c, 0x70, 0x9a, 0xb3, 0xca, 0x40, 0x32, + 0x40, 0x7d, 0x5b, 0x1d, 0x4f, 0x23, 0x17, 0x25, 0x09, 0xcd, 0x50, 0x16, 0xd1, 0x84, 0x97, 0xbb, + 0x65, 0x78, 0xb7, 0xf8, 0x1a, 0xe5, 0x13, 0x77, 0x12, 0x91, 0x29, 0x0e, 0x62, 0xc4, 0x4f, 0xa5, + 0x87, 0xdd, 0x03, 0xdb, 0x7d, 0x92, 0x75, 0x70, 0x5f, 0x04, 0xe8, 0x46, 0x78, 0x50, 0xe2, 0x7d, + 0xf2, 0x3e, 0x27, 0x3c, 0x83, 0x0f, 0xc1, 0x1d, 0x95, 0x48, 0x90, 0xa0, 0x98, 0x98, 0x9a, 0xa5, + 0x35, 0x36, 0xfd, 0xdb, 0x6a, 0xf1, 0x0d, 0x8a, 0x89, 0x7d, 0xa1, 0x01, 0x6b, 0x90, 0x67, 0x28, + 0x23, 0x8b, 0x20, 0xae, 0x48, 0xf7, 0x81, 0x31, 0xce, 0x79, 0x46, 0x63, 0xc2, 0x82, 0x08, 0x97, + 0x1c, 0xa0, 0x96, 0x5e, 0x63, 0xf8, 0x0e, 0x00, 0x9a, 0x12, 0x26, 0x0b, 0x30, 0x75, 0xab, 0xd6, + 0x30, 0xda, 0x9e, 0xb3, 0xae, 0x81, 0xce, 0x62, 0xc8, 0x43, 0x45, 0xf1, 0x2f, 0x01, 0xed, 0xcf, + 0x3a, 0xb8, 0xb7, 0xc2, 0x17, 0xee, 0x03, 0x23, 0x4f, 0x31, 0xca, 0x48, 0xd1, 0x1e, 0xf3, 0xa6, + 0xa5, 0x35, 0x8c, 0x76, 0x5d, 0xc5, 0x57, 0x1d, 0x74, 0x5e, 0x89, 0x0e, 0x0e, 0x10, 0x3f, 0xf5, + 0x81, 0x74, 0x17, 0x36, 0x3c, 0x04, 0x1b, 0x63, 0x46, 0x50, 0x26, 0xfb, 0x63, 0xb4, 0x77, 0x2b, + 0xf3, 0x9e, 0xcb, 0xba, 0x24, 0xf1, 0x83, 0x1b, 0x7e, 0x89, 0x11, 0x40, 0x89, 0x37, 0xf5, 0x6b, + 0x02, 0x25, 0x06, 0x9a, 0x60, 0x83, 0x91, 0x98, 0xce, 0x88, 0x59, 0x13, 0x9d, 0x17, 0x3b, 0xf2, + 0xbb, 0x6b, 0x80, 0xcd, 0x79, 0x9b, 0xec, 0x0f, 0xe0, 0xc1, 0x0a, 0x25, 0x79, 0x4a, 0x13, 0x4e, + 0xe0, 0x09, 0xb8, 0xc5, 0x08, 0xcf, 0xa7, 0x99, 0x92, 0xe9, 0xf9, 0x7a, 0x99, 0xaa, 0xa8, 0x7e, + 0x01, 0xf2, 0x15, 0xd0, 0x7e, 0x09, 0x76, 0x56, 0xbb, 0xfe, 0xd7, 0x95, 0x6c, 0xff, 0xa8, 0x81, + 0xad, 0x45, 0xc2, 0x5b, 0x99, 0x0d, 0xfc, 0xa6, 0x81, 0xbb, 0x4b, 0xaf, 0x3d, 0x7c, 0xb6, 0xbe, + 0x92, 0x55, 0xf3, 0x52, 0xbf, 0x9a, 0x4e, 0xb6, 0xf7, 0xf1, 0xfb, 0xaf, 0x4f, 0xfa, 0x13, 0xb8, + 0x2b, 0x26, 0xff, 0xec, 0x9f, 0xf2, 0x3c, 0x35, 0x22, 0xdc, 0x6d, 0xba, 0x68, 0x51, 0x15, 0xb7, + 0x79, 0x0e, 0x7f, 0x6b, 0x60, 0xab, 0x52, 0x36, 0xd8, 0xbd, 0xba, 0x3a, 0x6a, 0x7a, 0xeb, 0xbd, + 0x6b, 0x31, 0xe4, 0xbd, 0xb1, 0x7b, 0x45, 0x95, 0x9e, 0xfd, 0x54, 0x54, 0xf9, 0xb7, 0xac, 0xb3, + 0x4b, 0xef, 0x82, 0xd7, 0x3c, 0x5f, 0x56, 0xe4, 0x5e, 0x5c, 0xc0, 0xf7, 0xb4, 0x66, 0xf7, 0xa7, + 0x06, 0x1e, 0x8d, 0x69, 0xbc, 0x36, 0x9f, 0xee, 0x4e, 0xa5, 0xfe, 0x47, 0x62, 0x98, 0x8f, 0xb4, + 0x93, 0x83, 0x92, 0x11, 0xd2, 0x29, 0x4a, 0x42, 0x87, 0xb2, 0xd0, 0x0d, 0x49, 0x52, 0x8c, 0xba, + 0x7a, 0x8b, 0xd3, 0x88, 0x57, 0xff, 0x02, 0xf6, 0x95, 0x71, 0xa1, 0xd7, 0xfa, 0x9d, 0xce, 0x17, + 0xdd, 0xea, 0x4b, 0x60, 0x07, 0x73, 0x47, 0x9a, 0xc2, 0x3a, 0x6e, 0x39, 0x65, 0x60, 0xfe, 0x55, + 0xb9, 0x0c, 0x3b, 0x98, 0x0f, 0xe7, 0x2e, 0xc3, 0xe3, 0xd6, 0x50, 0xb9, 0x8c, 0x36, 0x8a, 0x04, + 0x1e, 0xff, 0x09, 0x00, 0x00, 0xff, 0xff, 0x8e, 0x68, 0xc5, 0x0e, 0x82, 0x06, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/ad_group_criterion_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/ad_group_criterion_service.pb.go new file mode 100644 index 000000000..07cbdfd3b --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/ad_group_criterion_service.pb.go @@ -0,0 +1,545 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/ad_group_criterion_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" +import field_mask "google.golang.org/genproto/protobuf/field_mask" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [AdGroupCriterionService.GetAdGroupCriterion][google.ads.googleads.v0.services.AdGroupCriterionService.GetAdGroupCriterion]. +type GetAdGroupCriterionRequest struct { + // The resource name of the criterion to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetAdGroupCriterionRequest) Reset() { *m = GetAdGroupCriterionRequest{} } +func (m *GetAdGroupCriterionRequest) String() string { return proto.CompactTextString(m) } +func (*GetAdGroupCriterionRequest) ProtoMessage() {} +func (*GetAdGroupCriterionRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_group_criterion_service_3645d889d01f8ec1, []int{0} +} +func (m *GetAdGroupCriterionRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetAdGroupCriterionRequest.Unmarshal(m, b) +} +func (m *GetAdGroupCriterionRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetAdGroupCriterionRequest.Marshal(b, m, deterministic) +} +func (dst *GetAdGroupCriterionRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetAdGroupCriterionRequest.Merge(dst, src) +} +func (m *GetAdGroupCriterionRequest) XXX_Size() int { + return xxx_messageInfo_GetAdGroupCriterionRequest.Size(m) +} +func (m *GetAdGroupCriterionRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetAdGroupCriterionRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetAdGroupCriterionRequest proto.InternalMessageInfo + +func (m *GetAdGroupCriterionRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +// Request message for [AdGroupCriterionService.MutateAdGroupCriteria][google.ads.googleads.v0.services.AdGroupCriterionService.MutateAdGroupCriteria]. +type MutateAdGroupCriteriaRequest struct { + // ID of the customer whose criteria are being modified. + CustomerId string `protobuf:"bytes,1,opt,name=customer_id,json=customerId,proto3" json:"customer_id,omitempty"` + // The list of operations to perform on individual criteria. + Operations []*AdGroupCriterionOperation `protobuf:"bytes,2,rep,name=operations,proto3" json:"operations,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateAdGroupCriteriaRequest) Reset() { *m = MutateAdGroupCriteriaRequest{} } +func (m *MutateAdGroupCriteriaRequest) String() string { return proto.CompactTextString(m) } +func (*MutateAdGroupCriteriaRequest) ProtoMessage() {} +func (*MutateAdGroupCriteriaRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_group_criterion_service_3645d889d01f8ec1, []int{1} +} +func (m *MutateAdGroupCriteriaRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateAdGroupCriteriaRequest.Unmarshal(m, b) +} +func (m *MutateAdGroupCriteriaRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateAdGroupCriteriaRequest.Marshal(b, m, deterministic) +} +func (dst *MutateAdGroupCriteriaRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateAdGroupCriteriaRequest.Merge(dst, src) +} +func (m *MutateAdGroupCriteriaRequest) XXX_Size() int { + return xxx_messageInfo_MutateAdGroupCriteriaRequest.Size(m) +} +func (m *MutateAdGroupCriteriaRequest) XXX_DiscardUnknown() { + xxx_messageInfo_MutateAdGroupCriteriaRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateAdGroupCriteriaRequest proto.InternalMessageInfo + +func (m *MutateAdGroupCriteriaRequest) GetCustomerId() string { + if m != nil { + return m.CustomerId + } + return "" +} + +func (m *MutateAdGroupCriteriaRequest) GetOperations() []*AdGroupCriterionOperation { + if m != nil { + return m.Operations + } + return nil +} + +// A single operation (create, remove, update) on an ad group criterion. +type AdGroupCriterionOperation struct { + // FieldMask that determines which resource fields are modified in an update. + UpdateMask *field_mask.FieldMask `protobuf:"bytes,4,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // The mutate operation. + // + // Types that are valid to be assigned to Operation: + // *AdGroupCriterionOperation_Create + // *AdGroupCriterionOperation_Update + // *AdGroupCriterionOperation_Remove + Operation isAdGroupCriterionOperation_Operation `protobuf_oneof:"operation"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AdGroupCriterionOperation) Reset() { *m = AdGroupCriterionOperation{} } +func (m *AdGroupCriterionOperation) String() string { return proto.CompactTextString(m) } +func (*AdGroupCriterionOperation) ProtoMessage() {} +func (*AdGroupCriterionOperation) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_group_criterion_service_3645d889d01f8ec1, []int{2} +} +func (m *AdGroupCriterionOperation) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AdGroupCriterionOperation.Unmarshal(m, b) +} +func (m *AdGroupCriterionOperation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AdGroupCriterionOperation.Marshal(b, m, deterministic) +} +func (dst *AdGroupCriterionOperation) XXX_Merge(src proto.Message) { + xxx_messageInfo_AdGroupCriterionOperation.Merge(dst, src) +} +func (m *AdGroupCriterionOperation) XXX_Size() int { + return xxx_messageInfo_AdGroupCriterionOperation.Size(m) +} +func (m *AdGroupCriterionOperation) XXX_DiscardUnknown() { + xxx_messageInfo_AdGroupCriterionOperation.DiscardUnknown(m) +} + +var xxx_messageInfo_AdGroupCriterionOperation proto.InternalMessageInfo + +func (m *AdGroupCriterionOperation) GetUpdateMask() *field_mask.FieldMask { + if m != nil { + return m.UpdateMask + } + return nil +} + +type isAdGroupCriterionOperation_Operation interface { + isAdGroupCriterionOperation_Operation() +} + +type AdGroupCriterionOperation_Create struct { + Create *resources.AdGroupCriterion `protobuf:"bytes,1,opt,name=create,proto3,oneof"` +} + +type AdGroupCriterionOperation_Update struct { + Update *resources.AdGroupCriterion `protobuf:"bytes,2,opt,name=update,proto3,oneof"` +} + +type AdGroupCriterionOperation_Remove struct { + Remove string `protobuf:"bytes,3,opt,name=remove,proto3,oneof"` +} + +func (*AdGroupCriterionOperation_Create) isAdGroupCriterionOperation_Operation() {} + +func (*AdGroupCriterionOperation_Update) isAdGroupCriterionOperation_Operation() {} + +func (*AdGroupCriterionOperation_Remove) isAdGroupCriterionOperation_Operation() {} + +func (m *AdGroupCriterionOperation) GetOperation() isAdGroupCriterionOperation_Operation { + if m != nil { + return m.Operation + } + return nil +} + +func (m *AdGroupCriterionOperation) GetCreate() *resources.AdGroupCriterion { + if x, ok := m.GetOperation().(*AdGroupCriterionOperation_Create); ok { + return x.Create + } + return nil +} + +func (m *AdGroupCriterionOperation) GetUpdate() *resources.AdGroupCriterion { + if x, ok := m.GetOperation().(*AdGroupCriterionOperation_Update); ok { + return x.Update + } + return nil +} + +func (m *AdGroupCriterionOperation) GetRemove() string { + if x, ok := m.GetOperation().(*AdGroupCriterionOperation_Remove); ok { + return x.Remove + } + return "" +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*AdGroupCriterionOperation) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _AdGroupCriterionOperation_OneofMarshaler, _AdGroupCriterionOperation_OneofUnmarshaler, _AdGroupCriterionOperation_OneofSizer, []interface{}{ + (*AdGroupCriterionOperation_Create)(nil), + (*AdGroupCriterionOperation_Update)(nil), + (*AdGroupCriterionOperation_Remove)(nil), + } +} + +func _AdGroupCriterionOperation_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*AdGroupCriterionOperation) + // operation + switch x := m.Operation.(type) { + case *AdGroupCriterionOperation_Create: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Create); err != nil { + return err + } + case *AdGroupCriterionOperation_Update: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Update); err != nil { + return err + } + case *AdGroupCriterionOperation_Remove: + b.EncodeVarint(3<<3 | proto.WireBytes) + b.EncodeStringBytes(x.Remove) + case nil: + default: + return fmt.Errorf("AdGroupCriterionOperation.Operation has unexpected type %T", x) + } + return nil +} + +func _AdGroupCriterionOperation_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*AdGroupCriterionOperation) + switch tag { + case 1: // operation.create + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.AdGroupCriterion) + err := b.DecodeMessage(msg) + m.Operation = &AdGroupCriterionOperation_Create{msg} + return true, err + case 2: // operation.update + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.AdGroupCriterion) + err := b.DecodeMessage(msg) + m.Operation = &AdGroupCriterionOperation_Update{msg} + return true, err + case 3: // operation.remove + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Operation = &AdGroupCriterionOperation_Remove{x} + return true, err + default: + return false, nil + } +} + +func _AdGroupCriterionOperation_OneofSizer(msg proto.Message) (n int) { + m := msg.(*AdGroupCriterionOperation) + // operation + switch x := m.Operation.(type) { + case *AdGroupCriterionOperation_Create: + s := proto.Size(x.Create) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *AdGroupCriterionOperation_Update: + s := proto.Size(x.Update) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *AdGroupCriterionOperation_Remove: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(len(x.Remove))) + n += len(x.Remove) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// Response message for an ad group criterion mutate. +type MutateAdGroupCriteriaResponse struct { + // All results for the mutate. + Results []*MutateAdGroupCriterionResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateAdGroupCriteriaResponse) Reset() { *m = MutateAdGroupCriteriaResponse{} } +func (m *MutateAdGroupCriteriaResponse) String() string { return proto.CompactTextString(m) } +func (*MutateAdGroupCriteriaResponse) ProtoMessage() {} +func (*MutateAdGroupCriteriaResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_group_criterion_service_3645d889d01f8ec1, []int{3} +} +func (m *MutateAdGroupCriteriaResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateAdGroupCriteriaResponse.Unmarshal(m, b) +} +func (m *MutateAdGroupCriteriaResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateAdGroupCriteriaResponse.Marshal(b, m, deterministic) +} +func (dst *MutateAdGroupCriteriaResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateAdGroupCriteriaResponse.Merge(dst, src) +} +func (m *MutateAdGroupCriteriaResponse) XXX_Size() int { + return xxx_messageInfo_MutateAdGroupCriteriaResponse.Size(m) +} +func (m *MutateAdGroupCriteriaResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MutateAdGroupCriteriaResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateAdGroupCriteriaResponse proto.InternalMessageInfo + +func (m *MutateAdGroupCriteriaResponse) GetResults() []*MutateAdGroupCriterionResult { + if m != nil { + return m.Results + } + return nil +} + +// The result for the criterion mutate. +type MutateAdGroupCriterionResult struct { + // Returned for successful operations. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateAdGroupCriterionResult) Reset() { *m = MutateAdGroupCriterionResult{} } +func (m *MutateAdGroupCriterionResult) String() string { return proto.CompactTextString(m) } +func (*MutateAdGroupCriterionResult) ProtoMessage() {} +func (*MutateAdGroupCriterionResult) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_group_criterion_service_3645d889d01f8ec1, []int{4} +} +func (m *MutateAdGroupCriterionResult) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateAdGroupCriterionResult.Unmarshal(m, b) +} +func (m *MutateAdGroupCriterionResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateAdGroupCriterionResult.Marshal(b, m, deterministic) +} +func (dst *MutateAdGroupCriterionResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateAdGroupCriterionResult.Merge(dst, src) +} +func (m *MutateAdGroupCriterionResult) XXX_Size() int { + return xxx_messageInfo_MutateAdGroupCriterionResult.Size(m) +} +func (m *MutateAdGroupCriterionResult) XXX_DiscardUnknown() { + xxx_messageInfo_MutateAdGroupCriterionResult.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateAdGroupCriterionResult proto.InternalMessageInfo + +func (m *MutateAdGroupCriterionResult) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetAdGroupCriterionRequest)(nil), "google.ads.googleads.v0.services.GetAdGroupCriterionRequest") + proto.RegisterType((*MutateAdGroupCriteriaRequest)(nil), "google.ads.googleads.v0.services.MutateAdGroupCriteriaRequest") + proto.RegisterType((*AdGroupCriterionOperation)(nil), "google.ads.googleads.v0.services.AdGroupCriterionOperation") + proto.RegisterType((*MutateAdGroupCriteriaResponse)(nil), "google.ads.googleads.v0.services.MutateAdGroupCriteriaResponse") + proto.RegisterType((*MutateAdGroupCriterionResult)(nil), "google.ads.googleads.v0.services.MutateAdGroupCriterionResult") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// AdGroupCriterionServiceClient is the client API for AdGroupCriterionService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type AdGroupCriterionServiceClient interface { + // Returns the requested criterion in full detail. + GetAdGroupCriterion(ctx context.Context, in *GetAdGroupCriterionRequest, opts ...grpc.CallOption) (*resources.AdGroupCriterion, error) + // Creates, updates, or removes criteria. Operation statuses are returned. + MutateAdGroupCriteria(ctx context.Context, in *MutateAdGroupCriteriaRequest, opts ...grpc.CallOption) (*MutateAdGroupCriteriaResponse, error) +} + +type adGroupCriterionServiceClient struct { + cc *grpc.ClientConn +} + +func NewAdGroupCriterionServiceClient(cc *grpc.ClientConn) AdGroupCriterionServiceClient { + return &adGroupCriterionServiceClient{cc} +} + +func (c *adGroupCriterionServiceClient) GetAdGroupCriterion(ctx context.Context, in *GetAdGroupCriterionRequest, opts ...grpc.CallOption) (*resources.AdGroupCriterion, error) { + out := new(resources.AdGroupCriterion) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.AdGroupCriterionService/GetAdGroupCriterion", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adGroupCriterionServiceClient) MutateAdGroupCriteria(ctx context.Context, in *MutateAdGroupCriteriaRequest, opts ...grpc.CallOption) (*MutateAdGroupCriteriaResponse, error) { + out := new(MutateAdGroupCriteriaResponse) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.AdGroupCriterionService/MutateAdGroupCriteria", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// AdGroupCriterionServiceServer is the server API for AdGroupCriterionService service. +type AdGroupCriterionServiceServer interface { + // Returns the requested criterion in full detail. + GetAdGroupCriterion(context.Context, *GetAdGroupCriterionRequest) (*resources.AdGroupCriterion, error) + // Creates, updates, or removes criteria. Operation statuses are returned. + MutateAdGroupCriteria(context.Context, *MutateAdGroupCriteriaRequest) (*MutateAdGroupCriteriaResponse, error) +} + +func RegisterAdGroupCriterionServiceServer(s *grpc.Server, srv AdGroupCriterionServiceServer) { + s.RegisterService(&_AdGroupCriterionService_serviceDesc, srv) +} + +func _AdGroupCriterionService_GetAdGroupCriterion_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetAdGroupCriterionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdGroupCriterionServiceServer).GetAdGroupCriterion(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.AdGroupCriterionService/GetAdGroupCriterion", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdGroupCriterionServiceServer).GetAdGroupCriterion(ctx, req.(*GetAdGroupCriterionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AdGroupCriterionService_MutateAdGroupCriteria_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MutateAdGroupCriteriaRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdGroupCriterionServiceServer).MutateAdGroupCriteria(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.AdGroupCriterionService/MutateAdGroupCriteria", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdGroupCriterionServiceServer).MutateAdGroupCriteria(ctx, req.(*MutateAdGroupCriteriaRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _AdGroupCriterionService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.AdGroupCriterionService", + HandlerType: (*AdGroupCriterionServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetAdGroupCriterion", + Handler: _AdGroupCriterionService_GetAdGroupCriterion_Handler, + }, + { + MethodName: "MutateAdGroupCriteria", + Handler: _AdGroupCriterionService_MutateAdGroupCriteria_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/ad_group_criterion_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/ad_group_criterion_service.proto", fileDescriptor_ad_group_criterion_service_3645d889d01f8ec1) +} + +var fileDescriptor_ad_group_criterion_service_3645d889d01f8ec1 = []byte{ + // 603 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x94, 0x4f, 0x8b, 0xd3, 0x4e, + 0x18, 0xc7, 0x7f, 0x49, 0x7f, 0x54, 0x76, 0xa2, 0x97, 0x11, 0x31, 0x86, 0x8a, 0x25, 0x7a, 0x28, + 0x3d, 0x24, 0xb5, 0xf5, 0xb2, 0xad, 0xeb, 0x92, 0x2e, 0xd8, 0xf5, 0x50, 0x5d, 0x22, 0x2c, 0xa2, + 0x85, 0x30, 0xdb, 0xcc, 0x86, 0xb0, 0x4d, 0x26, 0xce, 0x4c, 0x0a, 0xb2, 0xec, 0xc5, 0xb7, 0xe0, + 0x55, 0x2f, 0x1e, 0x7d, 0x0b, 0x1e, 0xbd, 0x79, 0xf5, 0x24, 0x78, 0xf4, 0x85, 0xc8, 0x64, 0x32, + 0x75, 0x5b, 0x1b, 0x2a, 0xf5, 0xf6, 0x24, 0xf3, 0xcc, 0xe7, 0xf9, 0xf3, 0x7d, 0x9e, 0x01, 0x5e, + 0x44, 0x48, 0x34, 0xc3, 0x2e, 0x0a, 0x99, 0x2b, 0x4d, 0x61, 0xcd, 0x3b, 0x2e, 0xc3, 0x74, 0x1e, + 0x4f, 0x31, 0x73, 0x51, 0x18, 0x44, 0x94, 0xe4, 0x59, 0x30, 0xa5, 0x31, 0xc7, 0x34, 0x26, 0x69, + 0x50, 0x9e, 0x39, 0x19, 0x25, 0x9c, 0xc0, 0xa6, 0xbc, 0xe7, 0xa0, 0x90, 0x39, 0x0b, 0x84, 0x33, + 0xef, 0x38, 0x0a, 0x61, 0xf5, 0xab, 0x82, 0x50, 0xcc, 0x48, 0x4e, 0xd7, 0x47, 0x91, 0x74, 0xab, + 0xa1, 0xee, 0x66, 0xb1, 0x8b, 0xd2, 0x94, 0x70, 0xc4, 0x63, 0x92, 0xb2, 0xf2, 0xb4, 0x8c, 0xed, + 0x16, 0x5f, 0x27, 0xf9, 0xa9, 0x7b, 0x1a, 0xe3, 0x59, 0x18, 0x24, 0x88, 0x9d, 0x49, 0x0f, 0xdb, + 0x03, 0xd6, 0x08, 0x73, 0x2f, 0x1c, 0x09, 0xfa, 0x81, 0x82, 0xfb, 0xf8, 0x75, 0x8e, 0x19, 0x87, + 0x77, 0xc1, 0x35, 0x95, 0x43, 0x90, 0xa2, 0x04, 0x9b, 0x5a, 0x53, 0x6b, 0xed, 0xf8, 0x57, 0xd5, + 0xcf, 0xa7, 0x28, 0xc1, 0xf6, 0x7b, 0x0d, 0x34, 0xc6, 0x39, 0x47, 0x1c, 0x2f, 0x63, 0x90, 0xa2, + 0xdc, 0x01, 0xc6, 0x34, 0x67, 0x9c, 0x24, 0x98, 0x06, 0x71, 0x58, 0x32, 0x80, 0xfa, 0xf5, 0x24, + 0x84, 0xaf, 0x00, 0x20, 0x19, 0xa6, 0x32, 0x75, 0x53, 0x6f, 0xd6, 0x5a, 0x46, 0x77, 0xe0, 0x6c, + 0xea, 0x9b, 0xb3, 0x9a, 0xf5, 0x33, 0xc5, 0xf0, 0x2f, 0xe1, 0xec, 0x0f, 0x3a, 0xb8, 0x55, 0xe9, + 0x09, 0x07, 0xc0, 0xc8, 0xb3, 0x10, 0x71, 0x5c, 0x34, 0xc5, 0xfc, 0xbf, 0xa9, 0xb5, 0x8c, 0xae, + 0xa5, 0x62, 0xab, 0xbe, 0x39, 0x8f, 0x45, 0xdf, 0xc6, 0x88, 0x9d, 0xf9, 0x40, 0xba, 0x0b, 0x1b, + 0x8e, 0x41, 0x7d, 0x4a, 0x31, 0xe2, 0xb2, 0x2f, 0x46, 0xb7, 0x57, 0x99, 0xf3, 0x42, 0xc9, 0x3f, + 0x92, 0x3e, 0xfc, 0xcf, 0x2f, 0x21, 0x02, 0x27, 0xe1, 0xa6, 0xfe, 0x4f, 0x38, 0x09, 0x81, 0x26, + 0xa8, 0x53, 0x9c, 0x90, 0x39, 0x36, 0x6b, 0xa2, 0xe3, 0xe2, 0x44, 0x7e, 0x0f, 0x0d, 0xb0, 0xb3, + 0x68, 0x90, 0xfd, 0x06, 0xdc, 0xae, 0x50, 0x8f, 0x65, 0x24, 0x65, 0x18, 0xbe, 0x00, 0x57, 0x28, + 0x66, 0xf9, 0x8c, 0x2b, 0x69, 0x1e, 0x6d, 0x96, 0x66, 0x1d, 0x51, 0x8c, 0x95, 0xc0, 0xf8, 0x0a, + 0x67, 0x1f, 0xac, 0x1f, 0x1c, 0xe5, 0xf8, 0x57, 0xe3, 0xd7, 0xfd, 0x5c, 0x03, 0x37, 0x57, 0xef, + 0x3f, 0x97, 0x79, 0xc0, 0x2f, 0x1a, 0xb8, 0xbe, 0x66, 0xbc, 0xe1, 0xc3, 0xcd, 0x15, 0x54, 0x6f, + 0x85, 0xb5, 0x8d, 0x2e, 0xf6, 0xee, 0xdb, 0x6f, 0x3f, 0xdf, 0xe9, 0x3d, 0x78, 0x5f, 0x2c, 0xf6, + 0xf9, 0x52, 0x59, 0x7b, 0x6a, 0x15, 0x98, 0xdb, 0x76, 0xd1, 0xb2, 0x0a, 0x6e, 0xfb, 0x02, 0x7e, + 0xd7, 0xc0, 0x8d, 0xb5, 0x12, 0xc1, 0x2d, 0x95, 0x50, 0x9b, 0x69, 0xed, 0x6f, 0x7d, 0x5f, 0xce, + 0x86, 0xbd, 0x5f, 0x54, 0xb5, 0x6b, 0x3f, 0x10, 0x55, 0xfd, 0x2e, 0xe3, 0xfc, 0xd2, 0xbe, 0xef, + 0xb5, 0x2f, 0x56, 0x8b, 0xea, 0x27, 0x05, 0xb4, 0xaf, 0xb5, 0x87, 0x3f, 0x34, 0x70, 0x6f, 0x4a, + 0x92, 0x8d, 0x79, 0x0c, 0x1b, 0x15, 0x1a, 0x1f, 0x89, 0x15, 0x3d, 0xd2, 0x5e, 0x1e, 0x96, 0x84, + 0x88, 0xcc, 0x50, 0x1a, 0x39, 0x84, 0x46, 0x6e, 0x84, 0xd3, 0x62, 0x81, 0xd5, 0xa3, 0x9a, 0xc5, + 0xac, 0xfa, 0x21, 0x1f, 0x28, 0xe3, 0xa3, 0x5e, 0x1b, 0x79, 0xde, 0x27, 0xbd, 0x39, 0x92, 0x40, + 0x2f, 0x64, 0x8e, 0x34, 0x85, 0x75, 0xdc, 0x71, 0xca, 0xc0, 0xec, 0xab, 0x72, 0x99, 0x78, 0x21, + 0x9b, 0x2c, 0x5c, 0x26, 0xc7, 0x9d, 0x89, 0x72, 0x39, 0xa9, 0x17, 0x09, 0xf4, 0x7e, 0x05, 0x00, + 0x00, 0xff, 0xff, 0xf1, 0xe2, 0x63, 0x62, 0x48, 0x06, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/ad_group_feed_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/ad_group_feed_service.pb.go new file mode 100644 index 000000000..f37b5e395 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/ad_group_feed_service.pb.go @@ -0,0 +1,547 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/ad_group_feed_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" +import field_mask "google.golang.org/genproto/protobuf/field_mask" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [AdGroupFeedService.GetAdGroupFeed][google.ads.googleads.v0.services.AdGroupFeedService.GetAdGroupFeed]. +type GetAdGroupFeedRequest struct { + // The resource name of the ad group feed to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetAdGroupFeedRequest) Reset() { *m = GetAdGroupFeedRequest{} } +func (m *GetAdGroupFeedRequest) String() string { return proto.CompactTextString(m) } +func (*GetAdGroupFeedRequest) ProtoMessage() {} +func (*GetAdGroupFeedRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_group_feed_service_846fa7679024c025, []int{0} +} +func (m *GetAdGroupFeedRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetAdGroupFeedRequest.Unmarshal(m, b) +} +func (m *GetAdGroupFeedRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetAdGroupFeedRequest.Marshal(b, m, deterministic) +} +func (dst *GetAdGroupFeedRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetAdGroupFeedRequest.Merge(dst, src) +} +func (m *GetAdGroupFeedRequest) XXX_Size() int { + return xxx_messageInfo_GetAdGroupFeedRequest.Size(m) +} +func (m *GetAdGroupFeedRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetAdGroupFeedRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetAdGroupFeedRequest proto.InternalMessageInfo + +func (m *GetAdGroupFeedRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +// Request message for [AdGroupFeedService.MutateAdGroupFeeds][google.ads.googleads.v0.services.AdGroupFeedService.MutateAdGroupFeeds]. +type MutateAdGroupFeedsRequest struct { + // The ID of the customer whose ad group feeds are being modified. + CustomerId string `protobuf:"bytes,1,opt,name=customer_id,json=customerId,proto3" json:"customer_id,omitempty"` + // The list of operations to perform on individual ad group feeds. + Operations []*AdGroupFeedOperation `protobuf:"bytes,2,rep,name=operations,proto3" json:"operations,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateAdGroupFeedsRequest) Reset() { *m = MutateAdGroupFeedsRequest{} } +func (m *MutateAdGroupFeedsRequest) String() string { return proto.CompactTextString(m) } +func (*MutateAdGroupFeedsRequest) ProtoMessage() {} +func (*MutateAdGroupFeedsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_group_feed_service_846fa7679024c025, []int{1} +} +func (m *MutateAdGroupFeedsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateAdGroupFeedsRequest.Unmarshal(m, b) +} +func (m *MutateAdGroupFeedsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateAdGroupFeedsRequest.Marshal(b, m, deterministic) +} +func (dst *MutateAdGroupFeedsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateAdGroupFeedsRequest.Merge(dst, src) +} +func (m *MutateAdGroupFeedsRequest) XXX_Size() int { + return xxx_messageInfo_MutateAdGroupFeedsRequest.Size(m) +} +func (m *MutateAdGroupFeedsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_MutateAdGroupFeedsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateAdGroupFeedsRequest proto.InternalMessageInfo + +func (m *MutateAdGroupFeedsRequest) GetCustomerId() string { + if m != nil { + return m.CustomerId + } + return "" +} + +func (m *MutateAdGroupFeedsRequest) GetOperations() []*AdGroupFeedOperation { + if m != nil { + return m.Operations + } + return nil +} + +// A single operation (create, update, remove) on an ad group feed. +type AdGroupFeedOperation struct { + // FieldMask that determines which resource fields are modified in an update. + UpdateMask *field_mask.FieldMask `protobuf:"bytes,4,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // The mutate operation. + // + // Types that are valid to be assigned to Operation: + // *AdGroupFeedOperation_Create + // *AdGroupFeedOperation_Update + // *AdGroupFeedOperation_Remove + Operation isAdGroupFeedOperation_Operation `protobuf_oneof:"operation"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AdGroupFeedOperation) Reset() { *m = AdGroupFeedOperation{} } +func (m *AdGroupFeedOperation) String() string { return proto.CompactTextString(m) } +func (*AdGroupFeedOperation) ProtoMessage() {} +func (*AdGroupFeedOperation) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_group_feed_service_846fa7679024c025, []int{2} +} +func (m *AdGroupFeedOperation) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AdGroupFeedOperation.Unmarshal(m, b) +} +func (m *AdGroupFeedOperation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AdGroupFeedOperation.Marshal(b, m, deterministic) +} +func (dst *AdGroupFeedOperation) XXX_Merge(src proto.Message) { + xxx_messageInfo_AdGroupFeedOperation.Merge(dst, src) +} +func (m *AdGroupFeedOperation) XXX_Size() int { + return xxx_messageInfo_AdGroupFeedOperation.Size(m) +} +func (m *AdGroupFeedOperation) XXX_DiscardUnknown() { + xxx_messageInfo_AdGroupFeedOperation.DiscardUnknown(m) +} + +var xxx_messageInfo_AdGroupFeedOperation proto.InternalMessageInfo + +func (m *AdGroupFeedOperation) GetUpdateMask() *field_mask.FieldMask { + if m != nil { + return m.UpdateMask + } + return nil +} + +type isAdGroupFeedOperation_Operation interface { + isAdGroupFeedOperation_Operation() +} + +type AdGroupFeedOperation_Create struct { + Create *resources.AdGroupFeed `protobuf:"bytes,1,opt,name=create,proto3,oneof"` +} + +type AdGroupFeedOperation_Update struct { + Update *resources.AdGroupFeed `protobuf:"bytes,2,opt,name=update,proto3,oneof"` +} + +type AdGroupFeedOperation_Remove struct { + Remove string `protobuf:"bytes,3,opt,name=remove,proto3,oneof"` +} + +func (*AdGroupFeedOperation_Create) isAdGroupFeedOperation_Operation() {} + +func (*AdGroupFeedOperation_Update) isAdGroupFeedOperation_Operation() {} + +func (*AdGroupFeedOperation_Remove) isAdGroupFeedOperation_Operation() {} + +func (m *AdGroupFeedOperation) GetOperation() isAdGroupFeedOperation_Operation { + if m != nil { + return m.Operation + } + return nil +} + +func (m *AdGroupFeedOperation) GetCreate() *resources.AdGroupFeed { + if x, ok := m.GetOperation().(*AdGroupFeedOperation_Create); ok { + return x.Create + } + return nil +} + +func (m *AdGroupFeedOperation) GetUpdate() *resources.AdGroupFeed { + if x, ok := m.GetOperation().(*AdGroupFeedOperation_Update); ok { + return x.Update + } + return nil +} + +func (m *AdGroupFeedOperation) GetRemove() string { + if x, ok := m.GetOperation().(*AdGroupFeedOperation_Remove); ok { + return x.Remove + } + return "" +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*AdGroupFeedOperation) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _AdGroupFeedOperation_OneofMarshaler, _AdGroupFeedOperation_OneofUnmarshaler, _AdGroupFeedOperation_OneofSizer, []interface{}{ + (*AdGroupFeedOperation_Create)(nil), + (*AdGroupFeedOperation_Update)(nil), + (*AdGroupFeedOperation_Remove)(nil), + } +} + +func _AdGroupFeedOperation_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*AdGroupFeedOperation) + // operation + switch x := m.Operation.(type) { + case *AdGroupFeedOperation_Create: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Create); err != nil { + return err + } + case *AdGroupFeedOperation_Update: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Update); err != nil { + return err + } + case *AdGroupFeedOperation_Remove: + b.EncodeVarint(3<<3 | proto.WireBytes) + b.EncodeStringBytes(x.Remove) + case nil: + default: + return fmt.Errorf("AdGroupFeedOperation.Operation has unexpected type %T", x) + } + return nil +} + +func _AdGroupFeedOperation_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*AdGroupFeedOperation) + switch tag { + case 1: // operation.create + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.AdGroupFeed) + err := b.DecodeMessage(msg) + m.Operation = &AdGroupFeedOperation_Create{msg} + return true, err + case 2: // operation.update + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.AdGroupFeed) + err := b.DecodeMessage(msg) + m.Operation = &AdGroupFeedOperation_Update{msg} + return true, err + case 3: // operation.remove + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Operation = &AdGroupFeedOperation_Remove{x} + return true, err + default: + return false, nil + } +} + +func _AdGroupFeedOperation_OneofSizer(msg proto.Message) (n int) { + m := msg.(*AdGroupFeedOperation) + // operation + switch x := m.Operation.(type) { + case *AdGroupFeedOperation_Create: + s := proto.Size(x.Create) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *AdGroupFeedOperation_Update: + s := proto.Size(x.Update) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *AdGroupFeedOperation_Remove: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(len(x.Remove))) + n += len(x.Remove) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// Response message for an ad group feed mutate. +type MutateAdGroupFeedsResponse struct { + // All results for the mutate. + Results []*MutateAdGroupFeedResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateAdGroupFeedsResponse) Reset() { *m = MutateAdGroupFeedsResponse{} } +func (m *MutateAdGroupFeedsResponse) String() string { return proto.CompactTextString(m) } +func (*MutateAdGroupFeedsResponse) ProtoMessage() {} +func (*MutateAdGroupFeedsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_group_feed_service_846fa7679024c025, []int{3} +} +func (m *MutateAdGroupFeedsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateAdGroupFeedsResponse.Unmarshal(m, b) +} +func (m *MutateAdGroupFeedsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateAdGroupFeedsResponse.Marshal(b, m, deterministic) +} +func (dst *MutateAdGroupFeedsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateAdGroupFeedsResponse.Merge(dst, src) +} +func (m *MutateAdGroupFeedsResponse) XXX_Size() int { + return xxx_messageInfo_MutateAdGroupFeedsResponse.Size(m) +} +func (m *MutateAdGroupFeedsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MutateAdGroupFeedsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateAdGroupFeedsResponse proto.InternalMessageInfo + +func (m *MutateAdGroupFeedsResponse) GetResults() []*MutateAdGroupFeedResult { + if m != nil { + return m.Results + } + return nil +} + +// The result for the ad group feed mutate. +type MutateAdGroupFeedResult struct { + // Returned for successful operations. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateAdGroupFeedResult) Reset() { *m = MutateAdGroupFeedResult{} } +func (m *MutateAdGroupFeedResult) String() string { return proto.CompactTextString(m) } +func (*MutateAdGroupFeedResult) ProtoMessage() {} +func (*MutateAdGroupFeedResult) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_group_feed_service_846fa7679024c025, []int{4} +} +func (m *MutateAdGroupFeedResult) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateAdGroupFeedResult.Unmarshal(m, b) +} +func (m *MutateAdGroupFeedResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateAdGroupFeedResult.Marshal(b, m, deterministic) +} +func (dst *MutateAdGroupFeedResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateAdGroupFeedResult.Merge(dst, src) +} +func (m *MutateAdGroupFeedResult) XXX_Size() int { + return xxx_messageInfo_MutateAdGroupFeedResult.Size(m) +} +func (m *MutateAdGroupFeedResult) XXX_DiscardUnknown() { + xxx_messageInfo_MutateAdGroupFeedResult.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateAdGroupFeedResult proto.InternalMessageInfo + +func (m *MutateAdGroupFeedResult) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetAdGroupFeedRequest)(nil), "google.ads.googleads.v0.services.GetAdGroupFeedRequest") + proto.RegisterType((*MutateAdGroupFeedsRequest)(nil), "google.ads.googleads.v0.services.MutateAdGroupFeedsRequest") + proto.RegisterType((*AdGroupFeedOperation)(nil), "google.ads.googleads.v0.services.AdGroupFeedOperation") + proto.RegisterType((*MutateAdGroupFeedsResponse)(nil), "google.ads.googleads.v0.services.MutateAdGroupFeedsResponse") + proto.RegisterType((*MutateAdGroupFeedResult)(nil), "google.ads.googleads.v0.services.MutateAdGroupFeedResult") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// AdGroupFeedServiceClient is the client API for AdGroupFeedService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type AdGroupFeedServiceClient interface { + // Returns the requested ad group feed in full detail. + GetAdGroupFeed(ctx context.Context, in *GetAdGroupFeedRequest, opts ...grpc.CallOption) (*resources.AdGroupFeed, error) + // Creates, updates, or removes ad group feeds. Operation statuses are + // returned. + MutateAdGroupFeeds(ctx context.Context, in *MutateAdGroupFeedsRequest, opts ...grpc.CallOption) (*MutateAdGroupFeedsResponse, error) +} + +type adGroupFeedServiceClient struct { + cc *grpc.ClientConn +} + +func NewAdGroupFeedServiceClient(cc *grpc.ClientConn) AdGroupFeedServiceClient { + return &adGroupFeedServiceClient{cc} +} + +func (c *adGroupFeedServiceClient) GetAdGroupFeed(ctx context.Context, in *GetAdGroupFeedRequest, opts ...grpc.CallOption) (*resources.AdGroupFeed, error) { + out := new(resources.AdGroupFeed) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.AdGroupFeedService/GetAdGroupFeed", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adGroupFeedServiceClient) MutateAdGroupFeeds(ctx context.Context, in *MutateAdGroupFeedsRequest, opts ...grpc.CallOption) (*MutateAdGroupFeedsResponse, error) { + out := new(MutateAdGroupFeedsResponse) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.AdGroupFeedService/MutateAdGroupFeeds", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// AdGroupFeedServiceServer is the server API for AdGroupFeedService service. +type AdGroupFeedServiceServer interface { + // Returns the requested ad group feed in full detail. + GetAdGroupFeed(context.Context, *GetAdGroupFeedRequest) (*resources.AdGroupFeed, error) + // Creates, updates, or removes ad group feeds. Operation statuses are + // returned. + MutateAdGroupFeeds(context.Context, *MutateAdGroupFeedsRequest) (*MutateAdGroupFeedsResponse, error) +} + +func RegisterAdGroupFeedServiceServer(s *grpc.Server, srv AdGroupFeedServiceServer) { + s.RegisterService(&_AdGroupFeedService_serviceDesc, srv) +} + +func _AdGroupFeedService_GetAdGroupFeed_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetAdGroupFeedRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdGroupFeedServiceServer).GetAdGroupFeed(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.AdGroupFeedService/GetAdGroupFeed", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdGroupFeedServiceServer).GetAdGroupFeed(ctx, req.(*GetAdGroupFeedRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AdGroupFeedService_MutateAdGroupFeeds_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MutateAdGroupFeedsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdGroupFeedServiceServer).MutateAdGroupFeeds(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.AdGroupFeedService/MutateAdGroupFeeds", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdGroupFeedServiceServer).MutateAdGroupFeeds(ctx, req.(*MutateAdGroupFeedsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _AdGroupFeedService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.AdGroupFeedService", + HandlerType: (*AdGroupFeedServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetAdGroupFeed", + Handler: _AdGroupFeedService_GetAdGroupFeed_Handler, + }, + { + MethodName: "MutateAdGroupFeeds", + Handler: _AdGroupFeedService_MutateAdGroupFeeds_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/ad_group_feed_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/ad_group_feed_service.proto", fileDescriptor_ad_group_feed_service_846fa7679024c025) +} + +var fileDescriptor_ad_group_feed_service_846fa7679024c025 = []byte{ + // 595 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x54, 0x31, 0x6f, 0xd3, 0x40, + 0x14, 0xc6, 0x0e, 0x2a, 0xea, 0x19, 0x18, 0x4e, 0xa0, 0x1a, 0x0b, 0x89, 0xc8, 0x30, 0x54, 0x19, + 0xce, 0x21, 0x88, 0x22, 0x9a, 0x14, 0x29, 0x19, 0x9a, 0x30, 0x14, 0x2a, 0x57, 0xca, 0x80, 0x22, + 0x59, 0xd7, 0xdc, 0x8b, 0x65, 0x35, 0xf6, 0xb9, 0x3e, 0x3b, 0x4b, 0xd5, 0x85, 0x1f, 0xc0, 0x02, + 0x03, 0x33, 0x23, 0x1b, 0x7f, 0x03, 0x89, 0x89, 0x81, 0x3f, 0xc0, 0x0f, 0x41, 0xf6, 0xf9, 0x82, + 0xa3, 0x24, 0x0a, 0x64, 0x7b, 0x77, 0xf7, 0xbe, 0xef, 0xbd, 0xf7, 0xbd, 0xf7, 0x0e, 0x75, 0x7c, + 0xce, 0xfd, 0x29, 0x38, 0x94, 0x09, 0x47, 0x9a, 0xb9, 0x35, 0x6b, 0x3a, 0x02, 0x92, 0x59, 0x30, + 0x06, 0xe1, 0x50, 0xe6, 0xf9, 0x09, 0xcf, 0x62, 0x6f, 0x02, 0xc0, 0xbc, 0xf2, 0x9a, 0xc4, 0x09, + 0x4f, 0x39, 0xae, 0x4b, 0x08, 0xa1, 0x4c, 0x90, 0x39, 0x9a, 0xcc, 0x9a, 0x44, 0xa1, 0xad, 0xe7, + 0xeb, 0xf8, 0x13, 0x10, 0x3c, 0x4b, 0x96, 0x02, 0x48, 0x62, 0xeb, 0xa1, 0x82, 0xc5, 0x81, 0x43, + 0xa3, 0x88, 0xa7, 0x34, 0x0d, 0x78, 0x24, 0xca, 0xd7, 0x32, 0xac, 0x53, 0x9c, 0xce, 0xb3, 0x89, + 0x33, 0x09, 0x60, 0xca, 0xbc, 0x90, 0x8a, 0x0b, 0xe9, 0x61, 0x77, 0xd0, 0xfd, 0x3e, 0xa4, 0x5d, + 0xd6, 0xcf, 0x89, 0x8f, 0x01, 0x98, 0x0b, 0x97, 0x19, 0x88, 0x14, 0x3f, 0x46, 0x77, 0x54, 0x64, + 0x2f, 0xa2, 0x21, 0x98, 0x5a, 0x5d, 0xdb, 0xdf, 0x75, 0x6f, 0xab, 0xcb, 0x37, 0x34, 0x04, 0xfb, + 0x93, 0x86, 0x1e, 0x9c, 0x64, 0x29, 0x4d, 0xa1, 0xc2, 0x20, 0x14, 0xc5, 0x23, 0x64, 0x8c, 0x33, + 0x91, 0xf2, 0x10, 0x12, 0x2f, 0x60, 0x25, 0x01, 0x52, 0x57, 0xaf, 0x19, 0x1e, 0x22, 0xc4, 0x63, + 0x48, 0x64, 0xca, 0xa6, 0x5e, 0xaf, 0xed, 0x1b, 0xad, 0x03, 0xb2, 0x49, 0x2a, 0x52, 0x89, 0xf5, + 0x56, 0xc1, 0xdd, 0x0a, 0x93, 0xfd, 0x41, 0x47, 0xf7, 0x56, 0x39, 0xe1, 0x36, 0x32, 0xb2, 0x98, + 0xd1, 0x14, 0x0a, 0x09, 0xcc, 0x9b, 0x75, 0x6d, 0xdf, 0x68, 0x59, 0x2a, 0xa2, 0x52, 0x89, 0x1c, + 0xe7, 0x2a, 0x9d, 0x50, 0x71, 0xe1, 0x22, 0xe9, 0x9e, 0xdb, 0x78, 0x80, 0x76, 0xc6, 0x09, 0xd0, + 0x54, 0x4a, 0x61, 0xb4, 0xc8, 0xda, 0x4c, 0xe7, 0x2d, 0xab, 0xa6, 0x3a, 0xb8, 0xe1, 0x96, 0xf8, + 0x9c, 0x49, 0xf2, 0x9a, 0xfa, 0xb6, 0x4c, 0x12, 0x8f, 0x4d, 0xb4, 0x93, 0x40, 0xc8, 0x67, 0x60, + 0xd6, 0x72, 0x75, 0xf3, 0x17, 0x79, 0xee, 0x19, 0x68, 0x77, 0xae, 0x88, 0x7d, 0x89, 0xac, 0x55, + 0x6d, 0x12, 0x31, 0x8f, 0x04, 0xe0, 0x33, 0x74, 0x2b, 0x01, 0x91, 0x4d, 0x53, 0xd5, 0x83, 0x97, + 0x9b, 0x7b, 0xb0, 0x44, 0xe7, 0x16, 0x0c, 0xae, 0x62, 0xb2, 0x5f, 0xa1, 0xbd, 0x35, 0x3e, 0xff, + 0x34, 0x5a, 0xad, 0xcf, 0x35, 0x84, 0x2b, 0xd0, 0x33, 0x19, 0x18, 0x7f, 0xd3, 0xd0, 0xdd, 0xc5, + 0x81, 0xc5, 0x2f, 0x36, 0x67, 0xbb, 0x72, 0xc4, 0xad, 0xff, 0x94, 0xdd, 0x3e, 0x78, 0xff, 0xf3, + 0xf7, 0x47, 0xbd, 0x89, 0x49, 0xbe, 0x96, 0x57, 0x0b, 0x25, 0x1c, 0xa9, 0xa9, 0x16, 0x4e, 0xc3, + 0xa1, 0x15, 0x91, 0x9d, 0xc6, 0x35, 0xfe, 0xa1, 0x21, 0xbc, 0x2c, 0x3f, 0x6e, 0x6f, 0xa1, 0xb2, + 0xda, 0x2d, 0xab, 0xb3, 0x1d, 0x58, 0x76, 0xdc, 0xee, 0x14, 0x95, 0x1c, 0xd8, 0x4f, 0xf3, 0x4a, + 0xfe, 0xa6, 0x7e, 0x55, 0x59, 0xd7, 0xa3, 0xc6, 0xf5, 0x42, 0x21, 0x87, 0x61, 0x41, 0x77, 0xa8, + 0x35, 0x7a, 0xbf, 0x34, 0xf4, 0x64, 0xcc, 0xc3, 0x8d, 0x19, 0xf4, 0xf6, 0x96, 0x1b, 0x78, 0x9a, + 0xef, 0xd8, 0xa9, 0xf6, 0x6e, 0x50, 0x82, 0x7d, 0x3e, 0xa5, 0x91, 0x4f, 0x78, 0xe2, 0x3b, 0x3e, + 0x44, 0xc5, 0x06, 0xaa, 0xef, 0x2f, 0x0e, 0xc4, 0xfa, 0xdf, 0xb6, 0xad, 0x8c, 0x2f, 0x7a, 0xad, + 0xdf, 0xed, 0x7e, 0xd5, 0xeb, 0x7d, 0x49, 0xd8, 0x65, 0x82, 0x48, 0x33, 0xb7, 0x86, 0x4d, 0x52, + 0x06, 0x16, 0xdf, 0x95, 0xcb, 0xa8, 0xcb, 0xc4, 0x68, 0xee, 0x32, 0x1a, 0x36, 0x47, 0xca, 0xe5, + 0x7c, 0xa7, 0x48, 0xe0, 0xd9, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xd2, 0x08, 0x96, 0x6e, 0xed, + 0x05, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/ad_group_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/ad_group_service.pb.go new file mode 100644 index 000000000..f6daf668d --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/ad_group_service.pb.go @@ -0,0 +1,544 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/ad_group_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" +import field_mask "google.golang.org/genproto/protobuf/field_mask" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [AdGroupService.GetAdGroup][google.ads.googleads.v0.services.AdGroupService.GetAdGroup]. +type GetAdGroupRequest struct { + // The resource name of the ad group to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetAdGroupRequest) Reset() { *m = GetAdGroupRequest{} } +func (m *GetAdGroupRequest) String() string { return proto.CompactTextString(m) } +func (*GetAdGroupRequest) ProtoMessage() {} +func (*GetAdGroupRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_group_service_ac847ce94dace47a, []int{0} +} +func (m *GetAdGroupRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetAdGroupRequest.Unmarshal(m, b) +} +func (m *GetAdGroupRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetAdGroupRequest.Marshal(b, m, deterministic) +} +func (dst *GetAdGroupRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetAdGroupRequest.Merge(dst, src) +} +func (m *GetAdGroupRequest) XXX_Size() int { + return xxx_messageInfo_GetAdGroupRequest.Size(m) +} +func (m *GetAdGroupRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetAdGroupRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetAdGroupRequest proto.InternalMessageInfo + +func (m *GetAdGroupRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +// Request message for [AdGroupService.MutateAdGroups][google.ads.googleads.v0.services.AdGroupService.MutateAdGroups]. +type MutateAdGroupsRequest struct { + // The ID of the customer whose ad groups are being modified. + CustomerId string `protobuf:"bytes,1,opt,name=customer_id,json=customerId,proto3" json:"customer_id,omitempty"` + // The list of operations to perform on individual ad groups. + Operations []*AdGroupOperation `protobuf:"bytes,2,rep,name=operations,proto3" json:"operations,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateAdGroupsRequest) Reset() { *m = MutateAdGroupsRequest{} } +func (m *MutateAdGroupsRequest) String() string { return proto.CompactTextString(m) } +func (*MutateAdGroupsRequest) ProtoMessage() {} +func (*MutateAdGroupsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_group_service_ac847ce94dace47a, []int{1} +} +func (m *MutateAdGroupsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateAdGroupsRequest.Unmarshal(m, b) +} +func (m *MutateAdGroupsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateAdGroupsRequest.Marshal(b, m, deterministic) +} +func (dst *MutateAdGroupsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateAdGroupsRequest.Merge(dst, src) +} +func (m *MutateAdGroupsRequest) XXX_Size() int { + return xxx_messageInfo_MutateAdGroupsRequest.Size(m) +} +func (m *MutateAdGroupsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_MutateAdGroupsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateAdGroupsRequest proto.InternalMessageInfo + +func (m *MutateAdGroupsRequest) GetCustomerId() string { + if m != nil { + return m.CustomerId + } + return "" +} + +func (m *MutateAdGroupsRequest) GetOperations() []*AdGroupOperation { + if m != nil { + return m.Operations + } + return nil +} + +// A single operation (create, update, remove) on an ad group. +type AdGroupOperation struct { + // FieldMask that determines which resource fields are modified in an update. + UpdateMask *field_mask.FieldMask `protobuf:"bytes,4,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // The mutate operation. + // + // Types that are valid to be assigned to Operation: + // *AdGroupOperation_Create + // *AdGroupOperation_Update + // *AdGroupOperation_Remove + Operation isAdGroupOperation_Operation `protobuf_oneof:"operation"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AdGroupOperation) Reset() { *m = AdGroupOperation{} } +func (m *AdGroupOperation) String() string { return proto.CompactTextString(m) } +func (*AdGroupOperation) ProtoMessage() {} +func (*AdGroupOperation) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_group_service_ac847ce94dace47a, []int{2} +} +func (m *AdGroupOperation) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AdGroupOperation.Unmarshal(m, b) +} +func (m *AdGroupOperation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AdGroupOperation.Marshal(b, m, deterministic) +} +func (dst *AdGroupOperation) XXX_Merge(src proto.Message) { + xxx_messageInfo_AdGroupOperation.Merge(dst, src) +} +func (m *AdGroupOperation) XXX_Size() int { + return xxx_messageInfo_AdGroupOperation.Size(m) +} +func (m *AdGroupOperation) XXX_DiscardUnknown() { + xxx_messageInfo_AdGroupOperation.DiscardUnknown(m) +} + +var xxx_messageInfo_AdGroupOperation proto.InternalMessageInfo + +func (m *AdGroupOperation) GetUpdateMask() *field_mask.FieldMask { + if m != nil { + return m.UpdateMask + } + return nil +} + +type isAdGroupOperation_Operation interface { + isAdGroupOperation_Operation() +} + +type AdGroupOperation_Create struct { + Create *resources.AdGroup `protobuf:"bytes,1,opt,name=create,proto3,oneof"` +} + +type AdGroupOperation_Update struct { + Update *resources.AdGroup `protobuf:"bytes,2,opt,name=update,proto3,oneof"` +} + +type AdGroupOperation_Remove struct { + Remove string `protobuf:"bytes,3,opt,name=remove,proto3,oneof"` +} + +func (*AdGroupOperation_Create) isAdGroupOperation_Operation() {} + +func (*AdGroupOperation_Update) isAdGroupOperation_Operation() {} + +func (*AdGroupOperation_Remove) isAdGroupOperation_Operation() {} + +func (m *AdGroupOperation) GetOperation() isAdGroupOperation_Operation { + if m != nil { + return m.Operation + } + return nil +} + +func (m *AdGroupOperation) GetCreate() *resources.AdGroup { + if x, ok := m.GetOperation().(*AdGroupOperation_Create); ok { + return x.Create + } + return nil +} + +func (m *AdGroupOperation) GetUpdate() *resources.AdGroup { + if x, ok := m.GetOperation().(*AdGroupOperation_Update); ok { + return x.Update + } + return nil +} + +func (m *AdGroupOperation) GetRemove() string { + if x, ok := m.GetOperation().(*AdGroupOperation_Remove); ok { + return x.Remove + } + return "" +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*AdGroupOperation) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _AdGroupOperation_OneofMarshaler, _AdGroupOperation_OneofUnmarshaler, _AdGroupOperation_OneofSizer, []interface{}{ + (*AdGroupOperation_Create)(nil), + (*AdGroupOperation_Update)(nil), + (*AdGroupOperation_Remove)(nil), + } +} + +func _AdGroupOperation_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*AdGroupOperation) + // operation + switch x := m.Operation.(type) { + case *AdGroupOperation_Create: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Create); err != nil { + return err + } + case *AdGroupOperation_Update: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Update); err != nil { + return err + } + case *AdGroupOperation_Remove: + b.EncodeVarint(3<<3 | proto.WireBytes) + b.EncodeStringBytes(x.Remove) + case nil: + default: + return fmt.Errorf("AdGroupOperation.Operation has unexpected type %T", x) + } + return nil +} + +func _AdGroupOperation_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*AdGroupOperation) + switch tag { + case 1: // operation.create + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.AdGroup) + err := b.DecodeMessage(msg) + m.Operation = &AdGroupOperation_Create{msg} + return true, err + case 2: // operation.update + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.AdGroup) + err := b.DecodeMessage(msg) + m.Operation = &AdGroupOperation_Update{msg} + return true, err + case 3: // operation.remove + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Operation = &AdGroupOperation_Remove{x} + return true, err + default: + return false, nil + } +} + +func _AdGroupOperation_OneofSizer(msg proto.Message) (n int) { + m := msg.(*AdGroupOperation) + // operation + switch x := m.Operation.(type) { + case *AdGroupOperation_Create: + s := proto.Size(x.Create) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *AdGroupOperation_Update: + s := proto.Size(x.Update) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *AdGroupOperation_Remove: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(len(x.Remove))) + n += len(x.Remove) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// Response message for an ad group mutate. +type MutateAdGroupsResponse struct { + // All results for the mutate. + Results []*MutateAdGroupResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateAdGroupsResponse) Reset() { *m = MutateAdGroupsResponse{} } +func (m *MutateAdGroupsResponse) String() string { return proto.CompactTextString(m) } +func (*MutateAdGroupsResponse) ProtoMessage() {} +func (*MutateAdGroupsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_group_service_ac847ce94dace47a, []int{3} +} +func (m *MutateAdGroupsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateAdGroupsResponse.Unmarshal(m, b) +} +func (m *MutateAdGroupsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateAdGroupsResponse.Marshal(b, m, deterministic) +} +func (dst *MutateAdGroupsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateAdGroupsResponse.Merge(dst, src) +} +func (m *MutateAdGroupsResponse) XXX_Size() int { + return xxx_messageInfo_MutateAdGroupsResponse.Size(m) +} +func (m *MutateAdGroupsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MutateAdGroupsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateAdGroupsResponse proto.InternalMessageInfo + +func (m *MutateAdGroupsResponse) GetResults() []*MutateAdGroupResult { + if m != nil { + return m.Results + } + return nil +} + +// The result for the ad group mutate. +type MutateAdGroupResult struct { + // Returned for successful operations. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateAdGroupResult) Reset() { *m = MutateAdGroupResult{} } +func (m *MutateAdGroupResult) String() string { return proto.CompactTextString(m) } +func (*MutateAdGroupResult) ProtoMessage() {} +func (*MutateAdGroupResult) Descriptor() ([]byte, []int) { + return fileDescriptor_ad_group_service_ac847ce94dace47a, []int{4} +} +func (m *MutateAdGroupResult) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateAdGroupResult.Unmarshal(m, b) +} +func (m *MutateAdGroupResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateAdGroupResult.Marshal(b, m, deterministic) +} +func (dst *MutateAdGroupResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateAdGroupResult.Merge(dst, src) +} +func (m *MutateAdGroupResult) XXX_Size() int { + return xxx_messageInfo_MutateAdGroupResult.Size(m) +} +func (m *MutateAdGroupResult) XXX_DiscardUnknown() { + xxx_messageInfo_MutateAdGroupResult.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateAdGroupResult proto.InternalMessageInfo + +func (m *MutateAdGroupResult) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetAdGroupRequest)(nil), "google.ads.googleads.v0.services.GetAdGroupRequest") + proto.RegisterType((*MutateAdGroupsRequest)(nil), "google.ads.googleads.v0.services.MutateAdGroupsRequest") + proto.RegisterType((*AdGroupOperation)(nil), "google.ads.googleads.v0.services.AdGroupOperation") + proto.RegisterType((*MutateAdGroupsResponse)(nil), "google.ads.googleads.v0.services.MutateAdGroupsResponse") + proto.RegisterType((*MutateAdGroupResult)(nil), "google.ads.googleads.v0.services.MutateAdGroupResult") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// AdGroupServiceClient is the client API for AdGroupService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type AdGroupServiceClient interface { + // Returns the requested ad group in full detail. + GetAdGroup(ctx context.Context, in *GetAdGroupRequest, opts ...grpc.CallOption) (*resources.AdGroup, error) + // Creates, updates, or removes ad groups. Operation statuses are returned. + MutateAdGroups(ctx context.Context, in *MutateAdGroupsRequest, opts ...grpc.CallOption) (*MutateAdGroupsResponse, error) +} + +type adGroupServiceClient struct { + cc *grpc.ClientConn +} + +func NewAdGroupServiceClient(cc *grpc.ClientConn) AdGroupServiceClient { + return &adGroupServiceClient{cc} +} + +func (c *adGroupServiceClient) GetAdGroup(ctx context.Context, in *GetAdGroupRequest, opts ...grpc.CallOption) (*resources.AdGroup, error) { + out := new(resources.AdGroup) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.AdGroupService/GetAdGroup", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adGroupServiceClient) MutateAdGroups(ctx context.Context, in *MutateAdGroupsRequest, opts ...grpc.CallOption) (*MutateAdGroupsResponse, error) { + out := new(MutateAdGroupsResponse) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.AdGroupService/MutateAdGroups", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// AdGroupServiceServer is the server API for AdGroupService service. +type AdGroupServiceServer interface { + // Returns the requested ad group in full detail. + GetAdGroup(context.Context, *GetAdGroupRequest) (*resources.AdGroup, error) + // Creates, updates, or removes ad groups. Operation statuses are returned. + MutateAdGroups(context.Context, *MutateAdGroupsRequest) (*MutateAdGroupsResponse, error) +} + +func RegisterAdGroupServiceServer(s *grpc.Server, srv AdGroupServiceServer) { + s.RegisterService(&_AdGroupService_serviceDesc, srv) +} + +func _AdGroupService_GetAdGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetAdGroupRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdGroupServiceServer).GetAdGroup(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.AdGroupService/GetAdGroup", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdGroupServiceServer).GetAdGroup(ctx, req.(*GetAdGroupRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AdGroupService_MutateAdGroups_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MutateAdGroupsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdGroupServiceServer).MutateAdGroups(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.AdGroupService/MutateAdGroups", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdGroupServiceServer).MutateAdGroups(ctx, req.(*MutateAdGroupsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _AdGroupService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.AdGroupService", + HandlerType: (*AdGroupServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetAdGroup", + Handler: _AdGroupService_GetAdGroup_Handler, + }, + { + MethodName: "MutateAdGroups", + Handler: _AdGroupService_MutateAdGroups_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/ad_group_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/ad_group_service.proto", fileDescriptor_ad_group_service_ac847ce94dace47a) +} + +var fileDescriptor_ad_group_service_ac847ce94dace47a = []byte{ + // 585 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x54, 0xc1, 0x6e, 0xd3, 0x40, + 0x10, 0xc5, 0x0e, 0x0a, 0xea, 0x18, 0x2a, 0xd8, 0x0a, 0x64, 0x45, 0x48, 0x44, 0x86, 0x43, 0x64, + 0x81, 0x1d, 0xb9, 0x42, 0x8d, 0x52, 0xf5, 0x90, 0x08, 0x91, 0x72, 0x28, 0xad, 0x8c, 0xd4, 0x03, + 0x8a, 0x14, 0x6d, 0xe3, 0xad, 0x65, 0x35, 0xf6, 0x1a, 0xef, 0x3a, 0x97, 0xaa, 0x97, 0x9e, 0xb9, + 0xf1, 0x05, 0x70, 0xe4, 0x1f, 0xf8, 0x01, 0xae, 0xfd, 0x05, 0x3e, 0x81, 0x0f, 0x40, 0xeb, 0xdd, + 0x4d, 0x93, 0x42, 0x14, 0xd2, 0xdb, 0x78, 0x77, 0xde, 0x9b, 0xe7, 0x37, 0x33, 0x0b, 0x3b, 0x31, + 0xa5, 0xf1, 0x84, 0xf8, 0x38, 0x62, 0xbe, 0x0c, 0x45, 0x34, 0x6d, 0xfb, 0x8c, 0x14, 0xd3, 0x64, + 0x4c, 0x98, 0x8f, 0xa3, 0x51, 0x5c, 0xd0, 0x32, 0x1f, 0xa9, 0x13, 0x2f, 0x2f, 0x28, 0xa7, 0xa8, + 0x29, 0xb3, 0x3d, 0x1c, 0x31, 0x6f, 0x06, 0xf4, 0xa6, 0x6d, 0x4f, 0x03, 0x1b, 0xed, 0x65, 0xd4, + 0x05, 0x61, 0xb4, 0x2c, 0xe6, 0xb9, 0x25, 0x67, 0xe3, 0xa9, 0x46, 0xe4, 0x89, 0x8f, 0xb3, 0x8c, + 0x72, 0xcc, 0x13, 0x9a, 0x31, 0x75, 0xab, 0x2a, 0xfa, 0xd5, 0xd7, 0x49, 0x79, 0xea, 0x9f, 0x26, + 0x64, 0x12, 0x8d, 0x52, 0xcc, 0xce, 0x64, 0x86, 0xd3, 0x81, 0x47, 0x03, 0xc2, 0x7b, 0xd1, 0x40, + 0x70, 0x86, 0xe4, 0x53, 0x49, 0x18, 0x47, 0xcf, 0xe1, 0x81, 0x2e, 0x38, 0xca, 0x70, 0x4a, 0x6c, + 0xa3, 0x69, 0xb4, 0x36, 0xc2, 0xfb, 0xfa, 0xf0, 0x3d, 0x4e, 0x89, 0xf3, 0xd9, 0x80, 0xc7, 0x07, + 0x25, 0xc7, 0x9c, 0x28, 0x34, 0xd3, 0xf0, 0x67, 0x60, 0x8d, 0x4b, 0xc6, 0x69, 0x4a, 0x8a, 0x51, + 0x12, 0x29, 0x30, 0xe8, 0xa3, 0x77, 0x11, 0x0a, 0x01, 0x68, 0x4e, 0x0a, 0x29, 0xd5, 0x36, 0x9b, + 0xb5, 0x96, 0x15, 0x04, 0xde, 0x2a, 0x77, 0x3c, 0x55, 0xe7, 0x50, 0x43, 0xc3, 0x39, 0x16, 0xe7, + 0xd2, 0x84, 0x87, 0x37, 0x13, 0xd0, 0x2e, 0x58, 0x65, 0x1e, 0x61, 0x4e, 0xaa, 0x5f, 0xb6, 0xef, + 0x36, 0x8d, 0x96, 0x15, 0x34, 0x74, 0x25, 0xed, 0x8a, 0xf7, 0x56, 0xb8, 0x72, 0x80, 0xd9, 0x59, + 0x08, 0x32, 0x5d, 0xc4, 0xe8, 0x0d, 0xd4, 0xc7, 0x05, 0xc1, 0x5c, 0xfe, 0xbe, 0x15, 0xb8, 0x4b, + 0x15, 0xce, 0xba, 0xa3, 0x25, 0xee, 0xdf, 0x09, 0x15, 0x56, 0xb0, 0x48, 0x4e, 0xdb, 0xbc, 0x0d, + 0x8b, 0xc4, 0x22, 0x1b, 0xea, 0x05, 0x49, 0xe9, 0x94, 0xd8, 0x35, 0xe1, 0xa6, 0xb8, 0x91, 0xdf, + 0x7d, 0x0b, 0x36, 0x66, 0x2e, 0x38, 0x09, 0x3c, 0xb9, 0xd9, 0x12, 0x96, 0xd3, 0x8c, 0x11, 0x74, + 0x08, 0xf7, 0x0a, 0xc2, 0xca, 0x09, 0xd7, 0x7e, 0xbf, 0x5e, 0xed, 0xf7, 0x02, 0x55, 0x58, 0xa1, + 0x43, 0xcd, 0xe2, 0x74, 0x61, 0xeb, 0x1f, 0xf7, 0xff, 0x35, 0x3a, 0xc1, 0x6f, 0x13, 0x36, 0x15, + 0xec, 0x83, 0x2c, 0x86, 0xbe, 0x1a, 0x00, 0xd7, 0x83, 0x88, 0xb6, 0x57, 0xab, 0xfb, 0x6b, 0x6c, + 0x1b, 0x6b, 0x58, 0xeb, 0x04, 0x97, 0x57, 0xbf, 0xbe, 0x98, 0x2f, 0x91, 0x2b, 0xb6, 0xeb, 0x7c, + 0x41, 0xf2, 0x9e, 0x9e, 0x54, 0xe6, 0xbb, 0x3e, 0x56, 0x46, 0xfa, 0xee, 0x05, 0xfa, 0x61, 0xc0, + 0xe6, 0xa2, 0xbd, 0x68, 0x67, 0x4d, 0x17, 0xf5, 0x8e, 0x34, 0x3a, 0xeb, 0x03, 0x65, 0x27, 0x9d, + 0x4e, 0xa5, 0x3c, 0x70, 0x5e, 0x09, 0xe5, 0xd7, 0x52, 0xcf, 0xe7, 0x56, 0x6e, 0xcf, 0xbd, 0x98, + 0x09, 0xef, 0xa6, 0x15, 0x4d, 0xd7, 0x70, 0xfb, 0x57, 0x06, 0xbc, 0x18, 0xd3, 0x74, 0x65, 0xe5, + 0xfe, 0xd6, 0x62, 0x73, 0x8e, 0xc4, 0x9e, 0x1c, 0x19, 0x1f, 0xf7, 0x15, 0x30, 0xa6, 0x13, 0x9c, + 0xc5, 0x1e, 0x2d, 0x62, 0x3f, 0x26, 0x59, 0xb5, 0x45, 0xfa, 0xb5, 0xca, 0x13, 0xb6, 0xfc, 0x5d, + 0xdc, 0xd5, 0xc1, 0x37, 0xb3, 0x36, 0xe8, 0xf5, 0xbe, 0x9b, 0xcd, 0x81, 0x24, 0xec, 0x45, 0xcc, + 0x93, 0xa1, 0x88, 0x8e, 0xdb, 0x9e, 0x2a, 0xcc, 0x7e, 0xea, 0x94, 0x61, 0x2f, 0x62, 0xc3, 0x59, + 0xca, 0xf0, 0xb8, 0x3d, 0xd4, 0x29, 0x27, 0xf5, 0x4a, 0xc0, 0xf6, 0x9f, 0x00, 0x00, 0x00, 0xff, + 0xff, 0x08, 0x37, 0xc8, 0x48, 0x97, 0x05, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/age_range_view_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/age_range_view_service.pb.go new file mode 100644 index 000000000..d852a90ea --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/age_range_view_service.pb.go @@ -0,0 +1,174 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/age_range_view_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [AgeRangeViewService.GetAgeRangeView][google.ads.googleads.v0.services.AgeRangeViewService.GetAgeRangeView]. +type GetAgeRangeViewRequest struct { + // The resource name of the age range view to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetAgeRangeViewRequest) Reset() { *m = GetAgeRangeViewRequest{} } +func (m *GetAgeRangeViewRequest) String() string { return proto.CompactTextString(m) } +func (*GetAgeRangeViewRequest) ProtoMessage() {} +func (*GetAgeRangeViewRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_age_range_view_service_74c6bf1381994fec, []int{0} +} +func (m *GetAgeRangeViewRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetAgeRangeViewRequest.Unmarshal(m, b) +} +func (m *GetAgeRangeViewRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetAgeRangeViewRequest.Marshal(b, m, deterministic) +} +func (dst *GetAgeRangeViewRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetAgeRangeViewRequest.Merge(dst, src) +} +func (m *GetAgeRangeViewRequest) XXX_Size() int { + return xxx_messageInfo_GetAgeRangeViewRequest.Size(m) +} +func (m *GetAgeRangeViewRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetAgeRangeViewRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetAgeRangeViewRequest proto.InternalMessageInfo + +func (m *GetAgeRangeViewRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetAgeRangeViewRequest)(nil), "google.ads.googleads.v0.services.GetAgeRangeViewRequest") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// AgeRangeViewServiceClient is the client API for AgeRangeViewService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type AgeRangeViewServiceClient interface { + // Returns the requested age range view in full detail. + GetAgeRangeView(ctx context.Context, in *GetAgeRangeViewRequest, opts ...grpc.CallOption) (*resources.AgeRangeView, error) +} + +type ageRangeViewServiceClient struct { + cc *grpc.ClientConn +} + +func NewAgeRangeViewServiceClient(cc *grpc.ClientConn) AgeRangeViewServiceClient { + return &ageRangeViewServiceClient{cc} +} + +func (c *ageRangeViewServiceClient) GetAgeRangeView(ctx context.Context, in *GetAgeRangeViewRequest, opts ...grpc.CallOption) (*resources.AgeRangeView, error) { + out := new(resources.AgeRangeView) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.AgeRangeViewService/GetAgeRangeView", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// AgeRangeViewServiceServer is the server API for AgeRangeViewService service. +type AgeRangeViewServiceServer interface { + // Returns the requested age range view in full detail. + GetAgeRangeView(context.Context, *GetAgeRangeViewRequest) (*resources.AgeRangeView, error) +} + +func RegisterAgeRangeViewServiceServer(s *grpc.Server, srv AgeRangeViewServiceServer) { + s.RegisterService(&_AgeRangeViewService_serviceDesc, srv) +} + +func _AgeRangeViewService_GetAgeRangeView_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetAgeRangeViewRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AgeRangeViewServiceServer).GetAgeRangeView(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.AgeRangeViewService/GetAgeRangeView", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AgeRangeViewServiceServer).GetAgeRangeView(ctx, req.(*GetAgeRangeViewRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _AgeRangeViewService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.AgeRangeViewService", + HandlerType: (*AgeRangeViewServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetAgeRangeView", + Handler: _AgeRangeViewService_GetAgeRangeView_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/age_range_view_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/age_range_view_service.proto", fileDescriptor_age_range_view_service_74c6bf1381994fec) +} + +var fileDescriptor_age_range_view_service_74c6bf1381994fec = []byte{ + // 348 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x4d, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xe2, 0xd4, + 0xa2, 0xb2, 0xcc, 0xe4, 0xd4, 0x62, 0xfd, 0xc4, 0xf4, 0xd4, 0xf8, 0xa2, 0xc4, 0xbc, 0xf4, 0xd4, + 0xf8, 0xb2, 0xcc, 0xd4, 0xf2, 0x78, 0xa8, 0xb8, 0x5e, 0x41, 0x51, 0x7e, 0x49, 0xbe, 0x90, 0x02, + 0x44, 0x8f, 0x5e, 0x62, 0x4a, 0xb1, 0x1e, 0x5c, 0xbb, 0x5e, 0x99, 0x81, 0x1e, 0x4c, 0xbb, 0x94, + 0x19, 0x2e, 0x0b, 0x8a, 0x52, 0x8b, 0xf3, 0x4b, 0x8b, 0x30, 0x6d, 0x80, 0x98, 0x2c, 0x25, 0x03, + 0xd3, 0x57, 0x90, 0xa9, 0x9f, 0x98, 0x97, 0x97, 0x5f, 0x92, 0x58, 0x92, 0x99, 0x9f, 0x57, 0x0c, + 0x91, 0x55, 0xb2, 0xe5, 0x12, 0x73, 0x4f, 0x2d, 0x71, 0x4c, 0x4f, 0x0d, 0x02, 0xe9, 0x0b, 0xcb, + 0x4c, 0x2d, 0x0f, 0x4a, 0x2d, 0x2c, 0x4d, 0x2d, 0x2e, 0x11, 0x52, 0xe6, 0xe2, 0x85, 0x99, 0x1c, + 0x9f, 0x97, 0x98, 0x9b, 0x2a, 0xc1, 0xa8, 0xc0, 0xa8, 0xc1, 0x19, 0xc4, 0x03, 0x13, 0xf4, 0x4b, + 0xcc, 0x4d, 0x35, 0x3a, 0xcb, 0xc8, 0x25, 0x8c, 0xac, 0x39, 0x18, 0xe2, 0x5a, 0xa1, 0xad, 0x8c, + 0x5c, 0xfc, 0x68, 0xe6, 0x0a, 0x59, 0xe8, 0x11, 0xf2, 0xa3, 0x1e, 0x76, 0xa7, 0x48, 0xe9, 0xe3, + 0xd4, 0x09, 0xf7, 0xbb, 0x1e, 0xb2, 0x3e, 0x25, 0xf3, 0xa6, 0xcb, 0x4f, 0x26, 0x33, 0x19, 0x0a, + 0xe9, 0x83, 0xc2, 0xa7, 0x1a, 0xc5, 0x1b, 0xb6, 0xc9, 0xa5, 0xc5, 0x25, 0xf9, 0xb9, 0xa9, 0x45, + 0xc5, 0xfa, 0x5a, 0xa0, 0x00, 0x83, 0x6b, 0x2a, 0xd6, 0xd7, 0xaa, 0x75, 0xba, 0xc1, 0xc8, 0xa5, + 0x92, 0x9c, 0x9f, 0x4b, 0xd0, 0xa5, 0x4e, 0x12, 0x58, 0x7c, 0x1d, 0x00, 0x0a, 0xd1, 0x00, 0xc6, + 0x28, 0x0f, 0xa8, 0xee, 0xf4, 0xfc, 0x9c, 0xc4, 0xbc, 0x74, 0xbd, 0xfc, 0xa2, 0x74, 0xfd, 0xf4, + 0xd4, 0x3c, 0x70, 0x78, 0xc3, 0x62, 0xae, 0x20, 0xb3, 0x18, 0x77, 0x4a, 0xb1, 0x86, 0x31, 0x16, + 0x31, 0x31, 0xbb, 0x3b, 0x3a, 0xae, 0x62, 0x52, 0x70, 0x87, 0x18, 0xe8, 0x98, 0x52, 0xac, 0x07, + 0x61, 0x82, 0x58, 0x61, 0x06, 0x7a, 0x50, 0x8b, 0x8b, 0x4f, 0xc1, 0x94, 0xc4, 0x38, 0xa6, 0x14, + 0xc7, 0xc0, 0x95, 0xc4, 0x84, 0x19, 0xc4, 0xc0, 0x94, 0x24, 0xb1, 0x81, 0x1d, 0x60, 0x0c, 0x08, + 0x00, 0x00, 0xff, 0xff, 0xf2, 0xcb, 0xcf, 0x38, 0xa9, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/bidding_strategy_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/bidding_strategy_service.pb.go new file mode 100644 index 000000000..0660c3b40 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/bidding_strategy_service.pb.go @@ -0,0 +1,547 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/bidding_strategy_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" +import field_mask "google.golang.org/genproto/protobuf/field_mask" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [BiddingStrategyService.GetBiddingStrategy][google.ads.googleads.v0.services.BiddingStrategyService.GetBiddingStrategy]. +type GetBiddingStrategyRequest struct { + // The resource name of the bidding strategy to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetBiddingStrategyRequest) Reset() { *m = GetBiddingStrategyRequest{} } +func (m *GetBiddingStrategyRequest) String() string { return proto.CompactTextString(m) } +func (*GetBiddingStrategyRequest) ProtoMessage() {} +func (*GetBiddingStrategyRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_bidding_strategy_service_e353af7be94060a5, []int{0} +} +func (m *GetBiddingStrategyRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetBiddingStrategyRequest.Unmarshal(m, b) +} +func (m *GetBiddingStrategyRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetBiddingStrategyRequest.Marshal(b, m, deterministic) +} +func (dst *GetBiddingStrategyRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetBiddingStrategyRequest.Merge(dst, src) +} +func (m *GetBiddingStrategyRequest) XXX_Size() int { + return xxx_messageInfo_GetBiddingStrategyRequest.Size(m) +} +func (m *GetBiddingStrategyRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetBiddingStrategyRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetBiddingStrategyRequest proto.InternalMessageInfo + +func (m *GetBiddingStrategyRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +// Request message for [BiddingStrategyService.MutateBiddingStrategies][google.ads.googleads.v0.services.BiddingStrategyService.MutateBiddingStrategies]. +type MutateBiddingStrategiesRequest struct { + // The ID of the customer whose bidding strategies are being modified. + CustomerId string `protobuf:"bytes,1,opt,name=customer_id,json=customerId,proto3" json:"customer_id,omitempty"` + // The list of operations to perform on individual bidding strategies. + Operations []*BiddingStrategyOperation `protobuf:"bytes,2,rep,name=operations,proto3" json:"operations,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateBiddingStrategiesRequest) Reset() { *m = MutateBiddingStrategiesRequest{} } +func (m *MutateBiddingStrategiesRequest) String() string { return proto.CompactTextString(m) } +func (*MutateBiddingStrategiesRequest) ProtoMessage() {} +func (*MutateBiddingStrategiesRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_bidding_strategy_service_e353af7be94060a5, []int{1} +} +func (m *MutateBiddingStrategiesRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateBiddingStrategiesRequest.Unmarshal(m, b) +} +func (m *MutateBiddingStrategiesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateBiddingStrategiesRequest.Marshal(b, m, deterministic) +} +func (dst *MutateBiddingStrategiesRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateBiddingStrategiesRequest.Merge(dst, src) +} +func (m *MutateBiddingStrategiesRequest) XXX_Size() int { + return xxx_messageInfo_MutateBiddingStrategiesRequest.Size(m) +} +func (m *MutateBiddingStrategiesRequest) XXX_DiscardUnknown() { + xxx_messageInfo_MutateBiddingStrategiesRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateBiddingStrategiesRequest proto.InternalMessageInfo + +func (m *MutateBiddingStrategiesRequest) GetCustomerId() string { + if m != nil { + return m.CustomerId + } + return "" +} + +func (m *MutateBiddingStrategiesRequest) GetOperations() []*BiddingStrategyOperation { + if m != nil { + return m.Operations + } + return nil +} + +// A single operation (create, update, remove) on a bidding strategy. +type BiddingStrategyOperation struct { + // FieldMask that determines which resource fields are modified in an update. + UpdateMask *field_mask.FieldMask `protobuf:"bytes,4,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // The mutate operation. + // + // Types that are valid to be assigned to Operation: + // *BiddingStrategyOperation_Create + // *BiddingStrategyOperation_Update + // *BiddingStrategyOperation_Remove + Operation isBiddingStrategyOperation_Operation `protobuf_oneof:"operation"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BiddingStrategyOperation) Reset() { *m = BiddingStrategyOperation{} } +func (m *BiddingStrategyOperation) String() string { return proto.CompactTextString(m) } +func (*BiddingStrategyOperation) ProtoMessage() {} +func (*BiddingStrategyOperation) Descriptor() ([]byte, []int) { + return fileDescriptor_bidding_strategy_service_e353af7be94060a5, []int{2} +} +func (m *BiddingStrategyOperation) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BiddingStrategyOperation.Unmarshal(m, b) +} +func (m *BiddingStrategyOperation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BiddingStrategyOperation.Marshal(b, m, deterministic) +} +func (dst *BiddingStrategyOperation) XXX_Merge(src proto.Message) { + xxx_messageInfo_BiddingStrategyOperation.Merge(dst, src) +} +func (m *BiddingStrategyOperation) XXX_Size() int { + return xxx_messageInfo_BiddingStrategyOperation.Size(m) +} +func (m *BiddingStrategyOperation) XXX_DiscardUnknown() { + xxx_messageInfo_BiddingStrategyOperation.DiscardUnknown(m) +} + +var xxx_messageInfo_BiddingStrategyOperation proto.InternalMessageInfo + +func (m *BiddingStrategyOperation) GetUpdateMask() *field_mask.FieldMask { + if m != nil { + return m.UpdateMask + } + return nil +} + +type isBiddingStrategyOperation_Operation interface { + isBiddingStrategyOperation_Operation() +} + +type BiddingStrategyOperation_Create struct { + Create *resources.BiddingStrategy `protobuf:"bytes,1,opt,name=create,proto3,oneof"` +} + +type BiddingStrategyOperation_Update struct { + Update *resources.BiddingStrategy `protobuf:"bytes,2,opt,name=update,proto3,oneof"` +} + +type BiddingStrategyOperation_Remove struct { + Remove string `protobuf:"bytes,3,opt,name=remove,proto3,oneof"` +} + +func (*BiddingStrategyOperation_Create) isBiddingStrategyOperation_Operation() {} + +func (*BiddingStrategyOperation_Update) isBiddingStrategyOperation_Operation() {} + +func (*BiddingStrategyOperation_Remove) isBiddingStrategyOperation_Operation() {} + +func (m *BiddingStrategyOperation) GetOperation() isBiddingStrategyOperation_Operation { + if m != nil { + return m.Operation + } + return nil +} + +func (m *BiddingStrategyOperation) GetCreate() *resources.BiddingStrategy { + if x, ok := m.GetOperation().(*BiddingStrategyOperation_Create); ok { + return x.Create + } + return nil +} + +func (m *BiddingStrategyOperation) GetUpdate() *resources.BiddingStrategy { + if x, ok := m.GetOperation().(*BiddingStrategyOperation_Update); ok { + return x.Update + } + return nil +} + +func (m *BiddingStrategyOperation) GetRemove() string { + if x, ok := m.GetOperation().(*BiddingStrategyOperation_Remove); ok { + return x.Remove + } + return "" +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*BiddingStrategyOperation) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _BiddingStrategyOperation_OneofMarshaler, _BiddingStrategyOperation_OneofUnmarshaler, _BiddingStrategyOperation_OneofSizer, []interface{}{ + (*BiddingStrategyOperation_Create)(nil), + (*BiddingStrategyOperation_Update)(nil), + (*BiddingStrategyOperation_Remove)(nil), + } +} + +func _BiddingStrategyOperation_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*BiddingStrategyOperation) + // operation + switch x := m.Operation.(type) { + case *BiddingStrategyOperation_Create: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Create); err != nil { + return err + } + case *BiddingStrategyOperation_Update: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Update); err != nil { + return err + } + case *BiddingStrategyOperation_Remove: + b.EncodeVarint(3<<3 | proto.WireBytes) + b.EncodeStringBytes(x.Remove) + case nil: + default: + return fmt.Errorf("BiddingStrategyOperation.Operation has unexpected type %T", x) + } + return nil +} + +func _BiddingStrategyOperation_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*BiddingStrategyOperation) + switch tag { + case 1: // operation.create + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.BiddingStrategy) + err := b.DecodeMessage(msg) + m.Operation = &BiddingStrategyOperation_Create{msg} + return true, err + case 2: // operation.update + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.BiddingStrategy) + err := b.DecodeMessage(msg) + m.Operation = &BiddingStrategyOperation_Update{msg} + return true, err + case 3: // operation.remove + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Operation = &BiddingStrategyOperation_Remove{x} + return true, err + default: + return false, nil + } +} + +func _BiddingStrategyOperation_OneofSizer(msg proto.Message) (n int) { + m := msg.(*BiddingStrategyOperation) + // operation + switch x := m.Operation.(type) { + case *BiddingStrategyOperation_Create: + s := proto.Size(x.Create) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *BiddingStrategyOperation_Update: + s := proto.Size(x.Update) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *BiddingStrategyOperation_Remove: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(len(x.Remove))) + n += len(x.Remove) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// Response message for bidding strategy mutate. +type MutateBiddingStrategiesResponse struct { + // All results for the mutate. + Results []*MutateBiddingStrategyResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateBiddingStrategiesResponse) Reset() { *m = MutateBiddingStrategiesResponse{} } +func (m *MutateBiddingStrategiesResponse) String() string { return proto.CompactTextString(m) } +func (*MutateBiddingStrategiesResponse) ProtoMessage() {} +func (*MutateBiddingStrategiesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_bidding_strategy_service_e353af7be94060a5, []int{3} +} +func (m *MutateBiddingStrategiesResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateBiddingStrategiesResponse.Unmarshal(m, b) +} +func (m *MutateBiddingStrategiesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateBiddingStrategiesResponse.Marshal(b, m, deterministic) +} +func (dst *MutateBiddingStrategiesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateBiddingStrategiesResponse.Merge(dst, src) +} +func (m *MutateBiddingStrategiesResponse) XXX_Size() int { + return xxx_messageInfo_MutateBiddingStrategiesResponse.Size(m) +} +func (m *MutateBiddingStrategiesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MutateBiddingStrategiesResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateBiddingStrategiesResponse proto.InternalMessageInfo + +func (m *MutateBiddingStrategiesResponse) GetResults() []*MutateBiddingStrategyResult { + if m != nil { + return m.Results + } + return nil +} + +// The result for the bidding strategy mutate. +type MutateBiddingStrategyResult struct { + // Returned for successful operations. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateBiddingStrategyResult) Reset() { *m = MutateBiddingStrategyResult{} } +func (m *MutateBiddingStrategyResult) String() string { return proto.CompactTextString(m) } +func (*MutateBiddingStrategyResult) ProtoMessage() {} +func (*MutateBiddingStrategyResult) Descriptor() ([]byte, []int) { + return fileDescriptor_bidding_strategy_service_e353af7be94060a5, []int{4} +} +func (m *MutateBiddingStrategyResult) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateBiddingStrategyResult.Unmarshal(m, b) +} +func (m *MutateBiddingStrategyResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateBiddingStrategyResult.Marshal(b, m, deterministic) +} +func (dst *MutateBiddingStrategyResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateBiddingStrategyResult.Merge(dst, src) +} +func (m *MutateBiddingStrategyResult) XXX_Size() int { + return xxx_messageInfo_MutateBiddingStrategyResult.Size(m) +} +func (m *MutateBiddingStrategyResult) XXX_DiscardUnknown() { + xxx_messageInfo_MutateBiddingStrategyResult.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateBiddingStrategyResult proto.InternalMessageInfo + +func (m *MutateBiddingStrategyResult) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetBiddingStrategyRequest)(nil), "google.ads.googleads.v0.services.GetBiddingStrategyRequest") + proto.RegisterType((*MutateBiddingStrategiesRequest)(nil), "google.ads.googleads.v0.services.MutateBiddingStrategiesRequest") + proto.RegisterType((*BiddingStrategyOperation)(nil), "google.ads.googleads.v0.services.BiddingStrategyOperation") + proto.RegisterType((*MutateBiddingStrategiesResponse)(nil), "google.ads.googleads.v0.services.MutateBiddingStrategiesResponse") + proto.RegisterType((*MutateBiddingStrategyResult)(nil), "google.ads.googleads.v0.services.MutateBiddingStrategyResult") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// BiddingStrategyServiceClient is the client API for BiddingStrategyService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type BiddingStrategyServiceClient interface { + // Returns the requested bidding strategy in full detail. + GetBiddingStrategy(ctx context.Context, in *GetBiddingStrategyRequest, opts ...grpc.CallOption) (*resources.BiddingStrategy, error) + // Creates, updates, or removes bidding strategies. Operation statuses are + // returned. + MutateBiddingStrategies(ctx context.Context, in *MutateBiddingStrategiesRequest, opts ...grpc.CallOption) (*MutateBiddingStrategiesResponse, error) +} + +type biddingStrategyServiceClient struct { + cc *grpc.ClientConn +} + +func NewBiddingStrategyServiceClient(cc *grpc.ClientConn) BiddingStrategyServiceClient { + return &biddingStrategyServiceClient{cc} +} + +func (c *biddingStrategyServiceClient) GetBiddingStrategy(ctx context.Context, in *GetBiddingStrategyRequest, opts ...grpc.CallOption) (*resources.BiddingStrategy, error) { + out := new(resources.BiddingStrategy) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.BiddingStrategyService/GetBiddingStrategy", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *biddingStrategyServiceClient) MutateBiddingStrategies(ctx context.Context, in *MutateBiddingStrategiesRequest, opts ...grpc.CallOption) (*MutateBiddingStrategiesResponse, error) { + out := new(MutateBiddingStrategiesResponse) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.BiddingStrategyService/MutateBiddingStrategies", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// BiddingStrategyServiceServer is the server API for BiddingStrategyService service. +type BiddingStrategyServiceServer interface { + // Returns the requested bidding strategy in full detail. + GetBiddingStrategy(context.Context, *GetBiddingStrategyRequest) (*resources.BiddingStrategy, error) + // Creates, updates, or removes bidding strategies. Operation statuses are + // returned. + MutateBiddingStrategies(context.Context, *MutateBiddingStrategiesRequest) (*MutateBiddingStrategiesResponse, error) +} + +func RegisterBiddingStrategyServiceServer(s *grpc.Server, srv BiddingStrategyServiceServer) { + s.RegisterService(&_BiddingStrategyService_serviceDesc, srv) +} + +func _BiddingStrategyService_GetBiddingStrategy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetBiddingStrategyRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(BiddingStrategyServiceServer).GetBiddingStrategy(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.BiddingStrategyService/GetBiddingStrategy", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(BiddingStrategyServiceServer).GetBiddingStrategy(ctx, req.(*GetBiddingStrategyRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _BiddingStrategyService_MutateBiddingStrategies_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MutateBiddingStrategiesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(BiddingStrategyServiceServer).MutateBiddingStrategies(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.BiddingStrategyService/MutateBiddingStrategies", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(BiddingStrategyServiceServer).MutateBiddingStrategies(ctx, req.(*MutateBiddingStrategiesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _BiddingStrategyService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.BiddingStrategyService", + HandlerType: (*BiddingStrategyServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetBiddingStrategy", + Handler: _BiddingStrategyService_GetBiddingStrategy_Handler, + }, + { + MethodName: "MutateBiddingStrategies", + Handler: _BiddingStrategyService_MutateBiddingStrategies_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/bidding_strategy_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/bidding_strategy_service.proto", fileDescriptor_bidding_strategy_service_e353af7be94060a5) +} + +var fileDescriptor_bidding_strategy_service_e353af7be94060a5 = []byte{ + // 602 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x94, 0x31, 0x6f, 0xd3, 0x40, + 0x14, 0xc7, 0xb1, 0x83, 0x8a, 0x7a, 0x86, 0xe5, 0x06, 0x30, 0x29, 0xa2, 0x91, 0x61, 0x88, 0x32, + 0xd8, 0x51, 0x2a, 0x10, 0x4a, 0x14, 0x51, 0x67, 0x20, 0x45, 0xa2, 0x50, 0xb9, 0x52, 0x91, 0xaa, + 0x48, 0xd1, 0x25, 0x7e, 0xb5, 0xac, 0xc6, 0x3e, 0x73, 0x77, 0x8e, 0x54, 0xaa, 0x2e, 0x7c, 0x05, + 0x36, 0x24, 0x16, 0x46, 0xbe, 0x05, 0x8c, 0xac, 0x8c, 0x4c, 0x48, 0x7c, 0x10, 0x64, 0x9f, 0x2f, + 0x69, 0xd3, 0x98, 0xa0, 0x76, 0x7b, 0xb6, 0xdf, 0xfd, 0xde, 0xff, 0xbd, 0xff, 0x3d, 0xa3, 0xe7, + 0x01, 0xa5, 0xc1, 0x04, 0x1c, 0xe2, 0x73, 0x47, 0x86, 0x59, 0x34, 0x6d, 0x3a, 0x1c, 0xd8, 0x34, + 0x1c, 0x03, 0x77, 0x46, 0xa1, 0xef, 0x87, 0x71, 0x30, 0xe4, 0x82, 0x11, 0x01, 0xc1, 0xc9, 0xb0, + 0xf8, 0x62, 0x27, 0x8c, 0x0a, 0x8a, 0x6b, 0xf2, 0x94, 0x4d, 0x7c, 0x6e, 0xcf, 0x00, 0xf6, 0xb4, + 0x69, 0x2b, 0x40, 0xf5, 0x59, 0x59, 0x09, 0x06, 0x9c, 0xa6, 0x6c, 0x59, 0x0d, 0xc9, 0xae, 0x3e, + 0x50, 0x27, 0x93, 0xd0, 0x21, 0x71, 0x4c, 0x05, 0x11, 0x21, 0x8d, 0x79, 0xf1, 0xb5, 0xa8, 0xec, + 0xe4, 0x4f, 0xa3, 0xf4, 0xc8, 0x39, 0x0a, 0x61, 0xe2, 0x0f, 0x23, 0xc2, 0x8f, 0x65, 0x86, 0xb5, + 0x8d, 0xee, 0xf7, 0x41, 0xf4, 0x24, 0x7c, 0xbf, 0x60, 0x7b, 0xf0, 0x2e, 0x05, 0x2e, 0xf0, 0x23, + 0x74, 0x47, 0x09, 0x18, 0xc6, 0x24, 0x02, 0x53, 0xab, 0x69, 0xf5, 0x75, 0xef, 0xb6, 0x7a, 0xf9, + 0x9a, 0x44, 0x60, 0x7d, 0xd6, 0xd0, 0xc3, 0xdd, 0x54, 0x10, 0x01, 0x17, 0x29, 0x21, 0x70, 0xc5, + 0xd9, 0x44, 0xc6, 0x38, 0xe5, 0x82, 0x46, 0xc0, 0x86, 0xa1, 0x5f, 0x50, 0x90, 0x7a, 0xf5, 0xd2, + 0xc7, 0x87, 0x08, 0xd1, 0x04, 0x98, 0xd4, 0x6e, 0xea, 0xb5, 0x4a, 0xdd, 0x68, 0xb5, 0xed, 0x55, + 0x63, 0xb3, 0x17, 0x64, 0xbf, 0x51, 0x08, 0xef, 0x1c, 0xcd, 0xfa, 0xa4, 0x23, 0xb3, 0x2c, 0x11, + 0x77, 0x90, 0x91, 0x26, 0x3e, 0x11, 0x90, 0xcf, 0xc4, 0xbc, 0x59, 0xd3, 0xea, 0x46, 0xab, 0xaa, + 0x2a, 0xab, 0xb1, 0xd9, 0x2f, 0xb2, 0xb1, 0xed, 0x12, 0x7e, 0xec, 0x21, 0x99, 0x9e, 0xc5, 0xf8, + 0x15, 0x5a, 0x1b, 0x33, 0x20, 0x42, 0xce, 0xc5, 0x68, 0xb5, 0x4a, 0x15, 0xcf, 0x6c, 0x5c, 0x94, + 0xbc, 0x73, 0xc3, 0x2b, 0x18, 0x19, 0x4d, 0xb2, 0x4d, 0xfd, 0x3a, 0x34, 0xc9, 0xc0, 0x26, 0x5a, + 0x63, 0x10, 0xd1, 0x29, 0x98, 0x95, 0x6c, 0xda, 0xd9, 0x17, 0xf9, 0xdc, 0x33, 0xd0, 0xfa, 0x6c, + 0x3a, 0xd6, 0x7b, 0xb4, 0x59, 0xea, 0x1d, 0x4f, 0x68, 0xcc, 0x01, 0xbf, 0x45, 0xb7, 0x18, 0xf0, + 0x74, 0x22, 0x94, 0x31, 0xdd, 0xd5, 0xc6, 0x2c, 0x63, 0x9e, 0x78, 0x39, 0xc5, 0x53, 0x34, 0xab, + 0x87, 0x36, 0xfe, 0x91, 0xf7, 0x5f, 0x97, 0xaf, 0xf5, 0xad, 0x82, 0xee, 0x2e, 0x1c, 0xdf, 0x97, + 0x22, 0xf0, 0x77, 0x0d, 0xe1, 0xcb, 0x57, 0x1b, 0x77, 0x56, 0xab, 0x2f, 0x5d, 0x88, 0xea, 0x15, + 0x3c, 0xb1, 0x3a, 0x1f, 0x7e, 0xfe, 0xf9, 0xa8, 0x3f, 0xc1, 0x5b, 0xd9, 0x3e, 0x9f, 0x5e, 0x68, + 0xa9, 0xab, 0x56, 0x80, 0x3b, 0x0d, 0xb5, 0xe0, 0x73, 0x07, 0x9c, 0xc6, 0x19, 0xfe, 0xad, 0xa1, + 0x7b, 0x25, 0x06, 0xe1, 0xed, 0xab, 0xf9, 0x30, 0xdf, 0xcb, 0xaa, 0x7b, 0x0d, 0x82, 0xbc, 0x1d, + 0x96, 0x9b, 0x77, 0xd7, 0xb1, 0x9e, 0x66, 0xdd, 0xcd, 0xdb, 0x39, 0x3d, 0xb7, 0xef, 0xdd, 0xc6, + 0xd9, 0xe5, 0xe6, 0xda, 0x51, 0x0e, 0x6e, 0x6b, 0x8d, 0xde, 0x2f, 0x0d, 0x3d, 0x1e, 0xd3, 0x68, + 0xa5, 0x96, 0xde, 0xc6, 0x72, 0xa7, 0xf7, 0xb2, 0x2d, 0xdd, 0xd3, 0x0e, 0x77, 0x0a, 0x40, 0x40, + 0x27, 0x24, 0x0e, 0x6c, 0xca, 0x02, 0x27, 0x80, 0x38, 0xdf, 0x61, 0xf5, 0x53, 0x4d, 0x42, 0x5e, + 0xfe, 0x1b, 0xef, 0xa8, 0xe0, 0x8b, 0x5e, 0xe9, 0xbb, 0xee, 0x57, 0xbd, 0xd6, 0x97, 0x40, 0xd7, + 0xe7, 0xb6, 0x0c, 0xb3, 0xe8, 0xa0, 0x69, 0x17, 0x85, 0xf9, 0x0f, 0x95, 0x32, 0x70, 0x7d, 0x3e, + 0x98, 0xa5, 0x0c, 0x0e, 0x9a, 0x03, 0x95, 0x32, 0x5a, 0xcb, 0x05, 0x6c, 0xfd, 0x0d, 0x00, 0x00, + 0xff, 0xff, 0x09, 0xdb, 0xf0, 0x1a, 0x46, 0x06, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/billing_setup_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/billing_setup_service.pb.go new file mode 100644 index 000000000..297886b19 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/billing_setup_service.pb.go @@ -0,0 +1,500 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/billing_setup_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for +// [BillingSetupService.GetBillingSetup][google.ads.googleads.v0.services.BillingSetupService.GetBillingSetup]. +type GetBillingSetupRequest struct { + // The resource name of the billing setup to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetBillingSetupRequest) Reset() { *m = GetBillingSetupRequest{} } +func (m *GetBillingSetupRequest) String() string { return proto.CompactTextString(m) } +func (*GetBillingSetupRequest) ProtoMessage() {} +func (*GetBillingSetupRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_billing_setup_service_386280c726f2299e, []int{0} +} +func (m *GetBillingSetupRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetBillingSetupRequest.Unmarshal(m, b) +} +func (m *GetBillingSetupRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetBillingSetupRequest.Marshal(b, m, deterministic) +} +func (dst *GetBillingSetupRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetBillingSetupRequest.Merge(dst, src) +} +func (m *GetBillingSetupRequest) XXX_Size() int { + return xxx_messageInfo_GetBillingSetupRequest.Size(m) +} +func (m *GetBillingSetupRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetBillingSetupRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetBillingSetupRequest proto.InternalMessageInfo + +func (m *GetBillingSetupRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +// Request message for billing setup mutate operations. +type MutateBillingSetupRequest struct { + // Id of the customer to apply the billing setup mutate operation to. + CustomerId string `protobuf:"bytes,1,opt,name=customer_id,json=customerId,proto3" json:"customer_id,omitempty"` + // The operation to perform. + Operation *BillingSetupOperation `protobuf:"bytes,2,opt,name=operation,proto3" json:"operation,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateBillingSetupRequest) Reset() { *m = MutateBillingSetupRequest{} } +func (m *MutateBillingSetupRequest) String() string { return proto.CompactTextString(m) } +func (*MutateBillingSetupRequest) ProtoMessage() {} +func (*MutateBillingSetupRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_billing_setup_service_386280c726f2299e, []int{1} +} +func (m *MutateBillingSetupRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateBillingSetupRequest.Unmarshal(m, b) +} +func (m *MutateBillingSetupRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateBillingSetupRequest.Marshal(b, m, deterministic) +} +func (dst *MutateBillingSetupRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateBillingSetupRequest.Merge(dst, src) +} +func (m *MutateBillingSetupRequest) XXX_Size() int { + return xxx_messageInfo_MutateBillingSetupRequest.Size(m) +} +func (m *MutateBillingSetupRequest) XXX_DiscardUnknown() { + xxx_messageInfo_MutateBillingSetupRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateBillingSetupRequest proto.InternalMessageInfo + +func (m *MutateBillingSetupRequest) GetCustomerId() string { + if m != nil { + return m.CustomerId + } + return "" +} + +func (m *MutateBillingSetupRequest) GetOperation() *BillingSetupOperation { + if m != nil { + return m.Operation + } + return nil +} + +// A single operation on a billing setup, which describes the cancellation of an +// existing billing setup. +type BillingSetupOperation struct { + // Only one of these operations can be set. "Update" operations are not + // supported. + // + // Types that are valid to be assigned to Operation: + // *BillingSetupOperation_Create + // *BillingSetupOperation_Remove + Operation isBillingSetupOperation_Operation `protobuf_oneof:"operation"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BillingSetupOperation) Reset() { *m = BillingSetupOperation{} } +func (m *BillingSetupOperation) String() string { return proto.CompactTextString(m) } +func (*BillingSetupOperation) ProtoMessage() {} +func (*BillingSetupOperation) Descriptor() ([]byte, []int) { + return fileDescriptor_billing_setup_service_386280c726f2299e, []int{2} +} +func (m *BillingSetupOperation) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BillingSetupOperation.Unmarshal(m, b) +} +func (m *BillingSetupOperation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BillingSetupOperation.Marshal(b, m, deterministic) +} +func (dst *BillingSetupOperation) XXX_Merge(src proto.Message) { + xxx_messageInfo_BillingSetupOperation.Merge(dst, src) +} +func (m *BillingSetupOperation) XXX_Size() int { + return xxx_messageInfo_BillingSetupOperation.Size(m) +} +func (m *BillingSetupOperation) XXX_DiscardUnknown() { + xxx_messageInfo_BillingSetupOperation.DiscardUnknown(m) +} + +var xxx_messageInfo_BillingSetupOperation proto.InternalMessageInfo + +type isBillingSetupOperation_Operation interface { + isBillingSetupOperation_Operation() +} + +type BillingSetupOperation_Create struct { + Create *resources.BillingSetup `protobuf:"bytes,2,opt,name=create,proto3,oneof"` +} + +type BillingSetupOperation_Remove struct { + Remove string `protobuf:"bytes,1,opt,name=remove,proto3,oneof"` +} + +func (*BillingSetupOperation_Create) isBillingSetupOperation_Operation() {} + +func (*BillingSetupOperation_Remove) isBillingSetupOperation_Operation() {} + +func (m *BillingSetupOperation) GetOperation() isBillingSetupOperation_Operation { + if m != nil { + return m.Operation + } + return nil +} + +func (m *BillingSetupOperation) GetCreate() *resources.BillingSetup { + if x, ok := m.GetOperation().(*BillingSetupOperation_Create); ok { + return x.Create + } + return nil +} + +func (m *BillingSetupOperation) GetRemove() string { + if x, ok := m.GetOperation().(*BillingSetupOperation_Remove); ok { + return x.Remove + } + return "" +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*BillingSetupOperation) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _BillingSetupOperation_OneofMarshaler, _BillingSetupOperation_OneofUnmarshaler, _BillingSetupOperation_OneofSizer, []interface{}{ + (*BillingSetupOperation_Create)(nil), + (*BillingSetupOperation_Remove)(nil), + } +} + +func _BillingSetupOperation_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*BillingSetupOperation) + // operation + switch x := m.Operation.(type) { + case *BillingSetupOperation_Create: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Create); err != nil { + return err + } + case *BillingSetupOperation_Remove: + b.EncodeVarint(1<<3 | proto.WireBytes) + b.EncodeStringBytes(x.Remove) + case nil: + default: + return fmt.Errorf("BillingSetupOperation.Operation has unexpected type %T", x) + } + return nil +} + +func _BillingSetupOperation_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*BillingSetupOperation) + switch tag { + case 2: // operation.create + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.BillingSetup) + err := b.DecodeMessage(msg) + m.Operation = &BillingSetupOperation_Create{msg} + return true, err + case 1: // operation.remove + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Operation = &BillingSetupOperation_Remove{x} + return true, err + default: + return false, nil + } +} + +func _BillingSetupOperation_OneofSizer(msg proto.Message) (n int) { + m := msg.(*BillingSetupOperation) + // operation + switch x := m.Operation.(type) { + case *BillingSetupOperation_Create: + s := proto.Size(x.Create) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *BillingSetupOperation_Remove: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(len(x.Remove))) + n += len(x.Remove) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// Response message for a billing setup operation. +type MutateBillingSetupResponse struct { + // A result that identifies the resource affected by the mutate request. + Result *MutateBillingSetupResult `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateBillingSetupResponse) Reset() { *m = MutateBillingSetupResponse{} } +func (m *MutateBillingSetupResponse) String() string { return proto.CompactTextString(m) } +func (*MutateBillingSetupResponse) ProtoMessage() {} +func (*MutateBillingSetupResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_billing_setup_service_386280c726f2299e, []int{3} +} +func (m *MutateBillingSetupResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateBillingSetupResponse.Unmarshal(m, b) +} +func (m *MutateBillingSetupResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateBillingSetupResponse.Marshal(b, m, deterministic) +} +func (dst *MutateBillingSetupResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateBillingSetupResponse.Merge(dst, src) +} +func (m *MutateBillingSetupResponse) XXX_Size() int { + return xxx_messageInfo_MutateBillingSetupResponse.Size(m) +} +func (m *MutateBillingSetupResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MutateBillingSetupResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateBillingSetupResponse proto.InternalMessageInfo + +func (m *MutateBillingSetupResponse) GetResult() *MutateBillingSetupResult { + if m != nil { + return m.Result + } + return nil +} + +// Result for a single billing setup mutate. +type MutateBillingSetupResult struct { + // Returned for successful operations. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateBillingSetupResult) Reset() { *m = MutateBillingSetupResult{} } +func (m *MutateBillingSetupResult) String() string { return proto.CompactTextString(m) } +func (*MutateBillingSetupResult) ProtoMessage() {} +func (*MutateBillingSetupResult) Descriptor() ([]byte, []int) { + return fileDescriptor_billing_setup_service_386280c726f2299e, []int{4} +} +func (m *MutateBillingSetupResult) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateBillingSetupResult.Unmarshal(m, b) +} +func (m *MutateBillingSetupResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateBillingSetupResult.Marshal(b, m, deterministic) +} +func (dst *MutateBillingSetupResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateBillingSetupResult.Merge(dst, src) +} +func (m *MutateBillingSetupResult) XXX_Size() int { + return xxx_messageInfo_MutateBillingSetupResult.Size(m) +} +func (m *MutateBillingSetupResult) XXX_DiscardUnknown() { + xxx_messageInfo_MutateBillingSetupResult.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateBillingSetupResult proto.InternalMessageInfo + +func (m *MutateBillingSetupResult) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetBillingSetupRequest)(nil), "google.ads.googleads.v0.services.GetBillingSetupRequest") + proto.RegisterType((*MutateBillingSetupRequest)(nil), "google.ads.googleads.v0.services.MutateBillingSetupRequest") + proto.RegisterType((*BillingSetupOperation)(nil), "google.ads.googleads.v0.services.BillingSetupOperation") + proto.RegisterType((*MutateBillingSetupResponse)(nil), "google.ads.googleads.v0.services.MutateBillingSetupResponse") + proto.RegisterType((*MutateBillingSetupResult)(nil), "google.ads.googleads.v0.services.MutateBillingSetupResult") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// BillingSetupServiceClient is the client API for BillingSetupService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type BillingSetupServiceClient interface { + // Returns a billing setup. + GetBillingSetup(ctx context.Context, in *GetBillingSetupRequest, opts ...grpc.CallOption) (*resources.BillingSetup, error) + // Creates a billing setup, or cancels an existing billing setup. + MutateBillingSetup(ctx context.Context, in *MutateBillingSetupRequest, opts ...grpc.CallOption) (*MutateBillingSetupResponse, error) +} + +type billingSetupServiceClient struct { + cc *grpc.ClientConn +} + +func NewBillingSetupServiceClient(cc *grpc.ClientConn) BillingSetupServiceClient { + return &billingSetupServiceClient{cc} +} + +func (c *billingSetupServiceClient) GetBillingSetup(ctx context.Context, in *GetBillingSetupRequest, opts ...grpc.CallOption) (*resources.BillingSetup, error) { + out := new(resources.BillingSetup) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.BillingSetupService/GetBillingSetup", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *billingSetupServiceClient) MutateBillingSetup(ctx context.Context, in *MutateBillingSetupRequest, opts ...grpc.CallOption) (*MutateBillingSetupResponse, error) { + out := new(MutateBillingSetupResponse) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.BillingSetupService/MutateBillingSetup", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// BillingSetupServiceServer is the server API for BillingSetupService service. +type BillingSetupServiceServer interface { + // Returns a billing setup. + GetBillingSetup(context.Context, *GetBillingSetupRequest) (*resources.BillingSetup, error) + // Creates a billing setup, or cancels an existing billing setup. + MutateBillingSetup(context.Context, *MutateBillingSetupRequest) (*MutateBillingSetupResponse, error) +} + +func RegisterBillingSetupServiceServer(s *grpc.Server, srv BillingSetupServiceServer) { + s.RegisterService(&_BillingSetupService_serviceDesc, srv) +} + +func _BillingSetupService_GetBillingSetup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetBillingSetupRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(BillingSetupServiceServer).GetBillingSetup(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.BillingSetupService/GetBillingSetup", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(BillingSetupServiceServer).GetBillingSetup(ctx, req.(*GetBillingSetupRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _BillingSetupService_MutateBillingSetup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MutateBillingSetupRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(BillingSetupServiceServer).MutateBillingSetup(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.BillingSetupService/MutateBillingSetup", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(BillingSetupServiceServer).MutateBillingSetup(ctx, req.(*MutateBillingSetupRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _BillingSetupService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.BillingSetupService", + HandlerType: (*BillingSetupServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetBillingSetup", + Handler: _BillingSetupService_GetBillingSetup_Handler, + }, + { + MethodName: "MutateBillingSetup", + Handler: _BillingSetupService_MutateBillingSetup_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/billing_setup_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/billing_setup_service.proto", fileDescriptor_billing_setup_service_386280c726f2299e) +} + +var fileDescriptor_billing_setup_service_386280c726f2299e = []byte{ + // 527 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x54, 0x31, 0x6f, 0xd3, 0x40, + 0x14, 0xe6, 0x52, 0x29, 0x52, 0x2f, 0x20, 0xa4, 0x43, 0xa0, 0x10, 0x21, 0x11, 0x19, 0x86, 0x2a, + 0xc3, 0x5d, 0x08, 0x42, 0x41, 0x69, 0x23, 0x94, 0x2c, 0x69, 0x07, 0xa0, 0x72, 0x45, 0x07, 0x14, + 0x29, 0x72, 0xe3, 0x27, 0xcb, 0x92, 0xed, 0x33, 0xf7, 0xce, 0x59, 0xaa, 0x2e, 0x6c, 0xcc, 0xdd, + 0x19, 0x18, 0xd9, 0xf9, 0x13, 0x0c, 0x2c, 0x2c, 0xfc, 0x00, 0x7e, 0x08, 0xb2, 0xcf, 0x97, 0x26, + 0xd4, 0x51, 0xa0, 0xdb, 0xf3, 0xf9, 0x7d, 0xdf, 0xf7, 0xde, 0xf7, 0xde, 0x1d, 0x3d, 0x08, 0xa4, + 0x0c, 0x22, 0x10, 0x9e, 0x8f, 0xc2, 0x84, 0x79, 0xb4, 0xe8, 0x0a, 0x04, 0xb5, 0x08, 0xe7, 0x80, + 0xe2, 0x2c, 0x8c, 0xa2, 0x30, 0x09, 0x66, 0x08, 0x3a, 0x4b, 0x67, 0xe5, 0x31, 0x4f, 0x95, 0xd4, + 0x92, 0xb5, 0x0d, 0x84, 0x7b, 0x3e, 0xf2, 0x25, 0x9a, 0x2f, 0xba, 0xdc, 0xa2, 0x5b, 0x2f, 0x36, + 0xf1, 0x2b, 0x40, 0x99, 0xa9, 0x6b, 0x02, 0x86, 0xb8, 0xf5, 0xc8, 0xc2, 0xd2, 0x50, 0x78, 0x49, + 0x22, 0xb5, 0xa7, 0x43, 0x99, 0xa0, 0xf9, 0xeb, 0x0c, 0xe9, 0x83, 0x09, 0xe8, 0xb1, 0xc1, 0x9d, + 0xe4, 0x30, 0x17, 0x3e, 0x64, 0x80, 0x9a, 0x3d, 0xa1, 0x77, 0x2c, 0xf1, 0x2c, 0xf1, 0x62, 0x68, + 0x92, 0x36, 0xd9, 0xdb, 0x75, 0x6f, 0xdb, 0xc3, 0x37, 0x5e, 0x0c, 0xce, 0x25, 0xa1, 0x0f, 0x5f, + 0x67, 0xda, 0xd3, 0x50, 0x45, 0xf1, 0x98, 0x36, 0xe6, 0x19, 0x6a, 0x19, 0x83, 0x9a, 0x85, 0x7e, + 0x49, 0x40, 0xed, 0xd1, 0x91, 0xcf, 0xde, 0xd1, 0x5d, 0x99, 0x82, 0x2a, 0x2a, 0x6a, 0xd6, 0xda, + 0x64, 0xaf, 0xd1, 0xeb, 0xf3, 0x6d, 0x46, 0xf0, 0x55, 0xa9, 0xb7, 0x16, 0xee, 0x5e, 0x31, 0x39, + 0x9f, 0x08, 0xbd, 0x5f, 0x99, 0xc4, 0x8e, 0x68, 0x7d, 0xae, 0xc0, 0xd3, 0x50, 0xaa, 0x89, 0x8d, + 0x6a, 0x4b, 0x53, 0xd7, 0xe4, 0x0e, 0x6f, 0xb9, 0x25, 0x01, 0x6b, 0xd2, 0xba, 0x82, 0x58, 0x2e, + 0x4a, 0x63, 0xf2, 0x3f, 0xe6, 0x7b, 0xdc, 0x58, 0xe9, 0xca, 0x49, 0x69, 0xab, 0xca, 0x20, 0x4c, + 0x65, 0x82, 0xc0, 0xdc, 0x9c, 0x04, 0xb3, 0x48, 0x17, 0x24, 0x8d, 0xde, 0x60, 0x7b, 0xf7, 0x95, + 0x6c, 0x59, 0xa4, 0xdd, 0x92, 0xc9, 0x79, 0x45, 0x9b, 0x9b, 0x72, 0xfe, 0x69, 0xa8, 0xbd, 0xcf, + 0x3b, 0xf4, 0xde, 0x2a, 0xf6, 0xc4, 0x48, 0xb3, 0x6f, 0x84, 0xde, 0xfd, 0x6b, 0x59, 0xd8, 0xcb, + 0xed, 0x05, 0x57, 0xef, 0x57, 0xeb, 0x7f, 0xad, 0x77, 0xfa, 0x1f, 0x7f, 0xfe, 0xbe, 0xac, 0x3d, + 0x63, 0x22, 0xdf, 0xf9, 0xf3, 0xb5, 0x36, 0x86, 0x76, 0xa7, 0x50, 0x74, 0xec, 0x25, 0x28, 0x40, + 0x28, 0x3a, 0x17, 0xec, 0x07, 0xa1, 0xec, 0xba, 0x23, 0x6c, 0xff, 0x66, 0x5e, 0x9b, 0xea, 0x0f, + 0x6e, 0x38, 0xa8, 0x62, 0xec, 0xce, 0xb0, 0x68, 0xa5, 0xef, 0xf4, 0xf2, 0x56, 0xae, 0x6a, 0x3f, + 0x5f, 0xb9, 0x2d, 0xc3, 0xce, 0xc5, 0x7a, 0x27, 0x83, 0xb8, 0xe0, 0x1b, 0x90, 0xce, 0xf8, 0x17, + 0xa1, 0x4f, 0xe7, 0x32, 0xde, 0x5a, 0xc2, 0xb8, 0x59, 0x31, 0xc6, 0xe3, 0xfc, 0xde, 0x1f, 0x93, + 0xf7, 0x87, 0x25, 0x3a, 0x90, 0x91, 0x97, 0x04, 0x5c, 0xaa, 0x40, 0x04, 0x90, 0x14, 0xaf, 0x82, + 0x7d, 0x5e, 0xd2, 0x10, 0x37, 0xbf, 0x66, 0xfb, 0x36, 0xf8, 0x52, 0xdb, 0x99, 0x8c, 0x46, 0x5f, + 0x6b, 0xed, 0x89, 0x21, 0x1c, 0xf9, 0xc8, 0x4d, 0x98, 0x47, 0xa7, 0x5d, 0x5e, 0x0a, 0xe3, 0x77, + 0x9b, 0x32, 0x1d, 0xf9, 0x38, 0x5d, 0xa6, 0x4c, 0x4f, 0xbb, 0x53, 0x9b, 0x72, 0x56, 0x2f, 0x0a, + 0x78, 0xfe, 0x27, 0x00, 0x00, 0xff, 0xff, 0x41, 0x49, 0x73, 0x64, 0x4d, 0x05, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/campaign_audience_view_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/campaign_audience_view_service.pb.go new file mode 100644 index 000000000..ba379ea06 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/campaign_audience_view_service.pb.go @@ -0,0 +1,175 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/campaign_audience_view_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [CampaignAudienceViewService.GetCampaignAudienceView][google.ads.googleads.v0.services.CampaignAudienceViewService.GetCampaignAudienceView]. +type GetCampaignAudienceViewRequest struct { + // The resource name of the campaign audience view to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetCampaignAudienceViewRequest) Reset() { *m = GetCampaignAudienceViewRequest{} } +func (m *GetCampaignAudienceViewRequest) String() string { return proto.CompactTextString(m) } +func (*GetCampaignAudienceViewRequest) ProtoMessage() {} +func (*GetCampaignAudienceViewRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_audience_view_service_ca4474627cace15d, []int{0} +} +func (m *GetCampaignAudienceViewRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetCampaignAudienceViewRequest.Unmarshal(m, b) +} +func (m *GetCampaignAudienceViewRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetCampaignAudienceViewRequest.Marshal(b, m, deterministic) +} +func (dst *GetCampaignAudienceViewRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetCampaignAudienceViewRequest.Merge(dst, src) +} +func (m *GetCampaignAudienceViewRequest) XXX_Size() int { + return xxx_messageInfo_GetCampaignAudienceViewRequest.Size(m) +} +func (m *GetCampaignAudienceViewRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetCampaignAudienceViewRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetCampaignAudienceViewRequest proto.InternalMessageInfo + +func (m *GetCampaignAudienceViewRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetCampaignAudienceViewRequest)(nil), "google.ads.googleads.v0.services.GetCampaignAudienceViewRequest") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// CampaignAudienceViewServiceClient is the client API for CampaignAudienceViewService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type CampaignAudienceViewServiceClient interface { + // Returns the requested campaign audience view in full detail. + GetCampaignAudienceView(ctx context.Context, in *GetCampaignAudienceViewRequest, opts ...grpc.CallOption) (*resources.CampaignAudienceView, error) +} + +type campaignAudienceViewServiceClient struct { + cc *grpc.ClientConn +} + +func NewCampaignAudienceViewServiceClient(cc *grpc.ClientConn) CampaignAudienceViewServiceClient { + return &campaignAudienceViewServiceClient{cc} +} + +func (c *campaignAudienceViewServiceClient) GetCampaignAudienceView(ctx context.Context, in *GetCampaignAudienceViewRequest, opts ...grpc.CallOption) (*resources.CampaignAudienceView, error) { + out := new(resources.CampaignAudienceView) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.CampaignAudienceViewService/GetCampaignAudienceView", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// CampaignAudienceViewServiceServer is the server API for CampaignAudienceViewService service. +type CampaignAudienceViewServiceServer interface { + // Returns the requested campaign audience view in full detail. + GetCampaignAudienceView(context.Context, *GetCampaignAudienceViewRequest) (*resources.CampaignAudienceView, error) +} + +func RegisterCampaignAudienceViewServiceServer(s *grpc.Server, srv CampaignAudienceViewServiceServer) { + s.RegisterService(&_CampaignAudienceViewService_serviceDesc, srv) +} + +func _CampaignAudienceViewService_GetCampaignAudienceView_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetCampaignAudienceViewRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CampaignAudienceViewServiceServer).GetCampaignAudienceView(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.CampaignAudienceViewService/GetCampaignAudienceView", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CampaignAudienceViewServiceServer).GetCampaignAudienceView(ctx, req.(*GetCampaignAudienceViewRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _CampaignAudienceViewService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.CampaignAudienceViewService", + HandlerType: (*CampaignAudienceViewServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetCampaignAudienceView", + Handler: _CampaignAudienceViewService_GetCampaignAudienceView_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/campaign_audience_view_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/campaign_audience_view_service.proto", fileDescriptor_campaign_audience_view_service_ca4474627cace15d) +} + +var fileDescriptor_campaign_audience_view_service_ca4474627cace15d = []byte{ + // 356 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x52, 0x4f, 0x4b, 0xfb, 0x40, + 0x10, 0x25, 0xfd, 0xc1, 0x0f, 0x0c, 0x7a, 0xc9, 0x45, 0xa9, 0x22, 0xa1, 0x7a, 0x90, 0x1e, 0x76, + 0x83, 0x1e, 0x8a, 0x88, 0x7f, 0x52, 0x29, 0xf5, 0x24, 0xa5, 0x42, 0x0f, 0x12, 0x08, 0x6b, 0x32, + 0x84, 0x85, 0x66, 0x37, 0x66, 0x92, 0xf4, 0x20, 0x5e, 0xfc, 0x0a, 0x7e, 0x03, 0x8f, 0x7e, 0x14, + 0xaf, 0xe2, 0xdd, 0x83, 0x5f, 0xc1, 0xbb, 0xa4, 0x9b, 0x0d, 0x0a, 0x4d, 0x7b, 0x7b, 0xec, 0xcc, + 0x7b, 0x6f, 0xe6, 0xcd, 0x9a, 0x83, 0x48, 0xca, 0x68, 0x0a, 0x94, 0x85, 0x48, 0x15, 0x2c, 0x51, + 0xe1, 0x50, 0x84, 0xb4, 0xe0, 0x01, 0x20, 0x0d, 0x58, 0x9c, 0x30, 0x1e, 0x09, 0x9f, 0xe5, 0x21, + 0x07, 0x11, 0x80, 0x5f, 0x70, 0x98, 0xf9, 0x55, 0x9d, 0x24, 0xa9, 0xcc, 0xa4, 0x65, 0x2b, 0x2e, + 0x61, 0x21, 0x92, 0x5a, 0x86, 0x14, 0x0e, 0xd1, 0x32, 0xed, 0xb3, 0x26, 0xa3, 0x14, 0x50, 0xe6, + 0x69, 0xb3, 0x93, 0x72, 0x68, 0xef, 0x68, 0x7e, 0xc2, 0x29, 0x13, 0x42, 0x66, 0x2c, 0xe3, 0x52, + 0xa0, 0xaa, 0x76, 0x06, 0xe6, 0xee, 0x10, 0xb2, 0xcb, 0x4a, 0xc0, 0xad, 0xf8, 0x13, 0x0e, 0xb3, + 0x31, 0xdc, 0xe7, 0x80, 0x99, 0xb5, 0x67, 0x6e, 0x68, 0x27, 0x5f, 0xb0, 0x18, 0xb6, 0x0c, 0xdb, + 0x38, 0x58, 0x1b, 0xaf, 0xeb, 0xc7, 0x6b, 0x16, 0xc3, 0xe1, 0xb7, 0x61, 0x6e, 0x2f, 0x12, 0xb9, + 0x51, 0x5b, 0x58, 0x1f, 0x86, 0xb9, 0xd9, 0xe0, 0x63, 0x5d, 0x90, 0x55, 0x19, 0x90, 0xe5, 0x23, + 0xb6, 0x7b, 0x8d, 0x0a, 0x75, 0x46, 0x64, 0x11, 0xbf, 0x73, 0xfe, 0xf4, 0xfe, 0xf5, 0xdc, 0x3a, + 0xb6, 0x7a, 0x65, 0x9e, 0x0f, 0x7f, 0xd6, 0x3c, 0x0d, 0x72, 0xcc, 0x64, 0x0c, 0x29, 0xd2, 0x6e, + 0x1d, 0xf0, 0x6f, 0x32, 0xd2, 0xee, 0x63, 0xff, 0xd3, 0x30, 0xf7, 0x03, 0x19, 0xaf, 0xdc, 0xa0, + 0x6f, 0x2f, 0x49, 0x67, 0x54, 0x5e, 0x62, 0x64, 0xdc, 0x5e, 0x55, 0x2a, 0x91, 0x9c, 0x32, 0x11, + 0x11, 0x99, 0x46, 0x34, 0x02, 0x31, 0xbf, 0x93, 0xbe, 0x7c, 0xc2, 0xb1, 0xf9, 0xc7, 0x9d, 0x68, + 0xf0, 0xd2, 0xfa, 0x37, 0x74, 0xdd, 0xd7, 0x96, 0x3d, 0x54, 0x82, 0x6e, 0x88, 0x44, 0xc1, 0x12, + 0x4d, 0x1c, 0x52, 0x19, 0xe3, 0x9b, 0x6e, 0xf1, 0xdc, 0x10, 0xbd, 0xba, 0xc5, 0x9b, 0x38, 0x9e, + 0x6e, 0xb9, 0xfb, 0x3f, 0x1f, 0xe0, 0xe8, 0x27, 0x00, 0x00, 0xff, 0xff, 0xaf, 0x3a, 0xb9, 0x69, + 0xf1, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/campaign_bid_modifier_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/campaign_bid_modifier_service.pb.go new file mode 100644 index 000000000..734f857b3 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/campaign_bid_modifier_service.pb.go @@ -0,0 +1,548 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/campaign_bid_modifier_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" +import field_mask "google.golang.org/genproto/protobuf/field_mask" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [CampaignBidModifierService.GetCampaignBidModifier][google.ads.googleads.v0.services.CampaignBidModifierService.GetCampaignBidModifier]. +type GetCampaignBidModifierRequest struct { + // The resource name of the campaign bid modifier to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetCampaignBidModifierRequest) Reset() { *m = GetCampaignBidModifierRequest{} } +func (m *GetCampaignBidModifierRequest) String() string { return proto.CompactTextString(m) } +func (*GetCampaignBidModifierRequest) ProtoMessage() {} +func (*GetCampaignBidModifierRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_bid_modifier_service_2bb6851aed97491b, []int{0} +} +func (m *GetCampaignBidModifierRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetCampaignBidModifierRequest.Unmarshal(m, b) +} +func (m *GetCampaignBidModifierRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetCampaignBidModifierRequest.Marshal(b, m, deterministic) +} +func (dst *GetCampaignBidModifierRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetCampaignBidModifierRequest.Merge(dst, src) +} +func (m *GetCampaignBidModifierRequest) XXX_Size() int { + return xxx_messageInfo_GetCampaignBidModifierRequest.Size(m) +} +func (m *GetCampaignBidModifierRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetCampaignBidModifierRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetCampaignBidModifierRequest proto.InternalMessageInfo + +func (m *GetCampaignBidModifierRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +// Request message for [CampaignBidModifierService.MutateCampaignBidModifier][]. +type MutateCampaignBidModifiersRequest struct { + // ID of the customer whose campaign bid modifiers are being modified. + CustomerId string `protobuf:"bytes,1,opt,name=customer_id,json=customerId,proto3" json:"customer_id,omitempty"` + // The list of operations to perform on individual campaign bid modifiers. + Operations []*CampaignBidModifierOperation `protobuf:"bytes,2,rep,name=operations,proto3" json:"operations,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateCampaignBidModifiersRequest) Reset() { *m = MutateCampaignBidModifiersRequest{} } +func (m *MutateCampaignBidModifiersRequest) String() string { return proto.CompactTextString(m) } +func (*MutateCampaignBidModifiersRequest) ProtoMessage() {} +func (*MutateCampaignBidModifiersRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_bid_modifier_service_2bb6851aed97491b, []int{1} +} +func (m *MutateCampaignBidModifiersRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateCampaignBidModifiersRequest.Unmarshal(m, b) +} +func (m *MutateCampaignBidModifiersRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateCampaignBidModifiersRequest.Marshal(b, m, deterministic) +} +func (dst *MutateCampaignBidModifiersRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateCampaignBidModifiersRequest.Merge(dst, src) +} +func (m *MutateCampaignBidModifiersRequest) XXX_Size() int { + return xxx_messageInfo_MutateCampaignBidModifiersRequest.Size(m) +} +func (m *MutateCampaignBidModifiersRequest) XXX_DiscardUnknown() { + xxx_messageInfo_MutateCampaignBidModifiersRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateCampaignBidModifiersRequest proto.InternalMessageInfo + +func (m *MutateCampaignBidModifiersRequest) GetCustomerId() string { + if m != nil { + return m.CustomerId + } + return "" +} + +func (m *MutateCampaignBidModifiersRequest) GetOperations() []*CampaignBidModifierOperation { + if m != nil { + return m.Operations + } + return nil +} + +// A single operation (create, remove, update) on a campaign bid modifier. +type CampaignBidModifierOperation struct { + // FieldMask that determines which resource fields are modified in an update. + UpdateMask *field_mask.FieldMask `protobuf:"bytes,4,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // The mutate operation. + // + // Types that are valid to be assigned to Operation: + // *CampaignBidModifierOperation_Create + // *CampaignBidModifierOperation_Update + // *CampaignBidModifierOperation_Remove + Operation isCampaignBidModifierOperation_Operation `protobuf_oneof:"operation"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CampaignBidModifierOperation) Reset() { *m = CampaignBidModifierOperation{} } +func (m *CampaignBidModifierOperation) String() string { return proto.CompactTextString(m) } +func (*CampaignBidModifierOperation) ProtoMessage() {} +func (*CampaignBidModifierOperation) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_bid_modifier_service_2bb6851aed97491b, []int{2} +} +func (m *CampaignBidModifierOperation) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CampaignBidModifierOperation.Unmarshal(m, b) +} +func (m *CampaignBidModifierOperation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CampaignBidModifierOperation.Marshal(b, m, deterministic) +} +func (dst *CampaignBidModifierOperation) XXX_Merge(src proto.Message) { + xxx_messageInfo_CampaignBidModifierOperation.Merge(dst, src) +} +func (m *CampaignBidModifierOperation) XXX_Size() int { + return xxx_messageInfo_CampaignBidModifierOperation.Size(m) +} +func (m *CampaignBidModifierOperation) XXX_DiscardUnknown() { + xxx_messageInfo_CampaignBidModifierOperation.DiscardUnknown(m) +} + +var xxx_messageInfo_CampaignBidModifierOperation proto.InternalMessageInfo + +func (m *CampaignBidModifierOperation) GetUpdateMask() *field_mask.FieldMask { + if m != nil { + return m.UpdateMask + } + return nil +} + +type isCampaignBidModifierOperation_Operation interface { + isCampaignBidModifierOperation_Operation() +} + +type CampaignBidModifierOperation_Create struct { + Create *resources.CampaignBidModifier `protobuf:"bytes,1,opt,name=create,proto3,oneof"` +} + +type CampaignBidModifierOperation_Update struct { + Update *resources.CampaignBidModifier `protobuf:"bytes,2,opt,name=update,proto3,oneof"` +} + +type CampaignBidModifierOperation_Remove struct { + Remove string `protobuf:"bytes,3,opt,name=remove,proto3,oneof"` +} + +func (*CampaignBidModifierOperation_Create) isCampaignBidModifierOperation_Operation() {} + +func (*CampaignBidModifierOperation_Update) isCampaignBidModifierOperation_Operation() {} + +func (*CampaignBidModifierOperation_Remove) isCampaignBidModifierOperation_Operation() {} + +func (m *CampaignBidModifierOperation) GetOperation() isCampaignBidModifierOperation_Operation { + if m != nil { + return m.Operation + } + return nil +} + +func (m *CampaignBidModifierOperation) GetCreate() *resources.CampaignBidModifier { + if x, ok := m.GetOperation().(*CampaignBidModifierOperation_Create); ok { + return x.Create + } + return nil +} + +func (m *CampaignBidModifierOperation) GetUpdate() *resources.CampaignBidModifier { + if x, ok := m.GetOperation().(*CampaignBidModifierOperation_Update); ok { + return x.Update + } + return nil +} + +func (m *CampaignBidModifierOperation) GetRemove() string { + if x, ok := m.GetOperation().(*CampaignBidModifierOperation_Remove); ok { + return x.Remove + } + return "" +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*CampaignBidModifierOperation) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _CampaignBidModifierOperation_OneofMarshaler, _CampaignBidModifierOperation_OneofUnmarshaler, _CampaignBidModifierOperation_OneofSizer, []interface{}{ + (*CampaignBidModifierOperation_Create)(nil), + (*CampaignBidModifierOperation_Update)(nil), + (*CampaignBidModifierOperation_Remove)(nil), + } +} + +func _CampaignBidModifierOperation_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*CampaignBidModifierOperation) + // operation + switch x := m.Operation.(type) { + case *CampaignBidModifierOperation_Create: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Create); err != nil { + return err + } + case *CampaignBidModifierOperation_Update: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Update); err != nil { + return err + } + case *CampaignBidModifierOperation_Remove: + b.EncodeVarint(3<<3 | proto.WireBytes) + b.EncodeStringBytes(x.Remove) + case nil: + default: + return fmt.Errorf("CampaignBidModifierOperation.Operation has unexpected type %T", x) + } + return nil +} + +func _CampaignBidModifierOperation_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*CampaignBidModifierOperation) + switch tag { + case 1: // operation.create + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.CampaignBidModifier) + err := b.DecodeMessage(msg) + m.Operation = &CampaignBidModifierOperation_Create{msg} + return true, err + case 2: // operation.update + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.CampaignBidModifier) + err := b.DecodeMessage(msg) + m.Operation = &CampaignBidModifierOperation_Update{msg} + return true, err + case 3: // operation.remove + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Operation = &CampaignBidModifierOperation_Remove{x} + return true, err + default: + return false, nil + } +} + +func _CampaignBidModifierOperation_OneofSizer(msg proto.Message) (n int) { + m := msg.(*CampaignBidModifierOperation) + // operation + switch x := m.Operation.(type) { + case *CampaignBidModifierOperation_Create: + s := proto.Size(x.Create) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *CampaignBidModifierOperation_Update: + s := proto.Size(x.Update) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *CampaignBidModifierOperation_Remove: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(len(x.Remove))) + n += len(x.Remove) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// Response message for campaign bid modifiers mutate. +type MutateCampaignBidModifiersResponse struct { + // All results for the mutate. + Results []*MutateCampaignBidModifierResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateCampaignBidModifiersResponse) Reset() { *m = MutateCampaignBidModifiersResponse{} } +func (m *MutateCampaignBidModifiersResponse) String() string { return proto.CompactTextString(m) } +func (*MutateCampaignBidModifiersResponse) ProtoMessage() {} +func (*MutateCampaignBidModifiersResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_bid_modifier_service_2bb6851aed97491b, []int{3} +} +func (m *MutateCampaignBidModifiersResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateCampaignBidModifiersResponse.Unmarshal(m, b) +} +func (m *MutateCampaignBidModifiersResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateCampaignBidModifiersResponse.Marshal(b, m, deterministic) +} +func (dst *MutateCampaignBidModifiersResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateCampaignBidModifiersResponse.Merge(dst, src) +} +func (m *MutateCampaignBidModifiersResponse) XXX_Size() int { + return xxx_messageInfo_MutateCampaignBidModifiersResponse.Size(m) +} +func (m *MutateCampaignBidModifiersResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MutateCampaignBidModifiersResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateCampaignBidModifiersResponse proto.InternalMessageInfo + +func (m *MutateCampaignBidModifiersResponse) GetResults() []*MutateCampaignBidModifierResult { + if m != nil { + return m.Results + } + return nil +} + +// The result for the criterion mutate. +type MutateCampaignBidModifierResult struct { + // Returned for successful operations. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateCampaignBidModifierResult) Reset() { *m = MutateCampaignBidModifierResult{} } +func (m *MutateCampaignBidModifierResult) String() string { return proto.CompactTextString(m) } +func (*MutateCampaignBidModifierResult) ProtoMessage() {} +func (*MutateCampaignBidModifierResult) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_bid_modifier_service_2bb6851aed97491b, []int{4} +} +func (m *MutateCampaignBidModifierResult) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateCampaignBidModifierResult.Unmarshal(m, b) +} +func (m *MutateCampaignBidModifierResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateCampaignBidModifierResult.Marshal(b, m, deterministic) +} +func (dst *MutateCampaignBidModifierResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateCampaignBidModifierResult.Merge(dst, src) +} +func (m *MutateCampaignBidModifierResult) XXX_Size() int { + return xxx_messageInfo_MutateCampaignBidModifierResult.Size(m) +} +func (m *MutateCampaignBidModifierResult) XXX_DiscardUnknown() { + xxx_messageInfo_MutateCampaignBidModifierResult.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateCampaignBidModifierResult proto.InternalMessageInfo + +func (m *MutateCampaignBidModifierResult) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetCampaignBidModifierRequest)(nil), "google.ads.googleads.v0.services.GetCampaignBidModifierRequest") + proto.RegisterType((*MutateCampaignBidModifiersRequest)(nil), "google.ads.googleads.v0.services.MutateCampaignBidModifiersRequest") + proto.RegisterType((*CampaignBidModifierOperation)(nil), "google.ads.googleads.v0.services.CampaignBidModifierOperation") + proto.RegisterType((*MutateCampaignBidModifiersResponse)(nil), "google.ads.googleads.v0.services.MutateCampaignBidModifiersResponse") + proto.RegisterType((*MutateCampaignBidModifierResult)(nil), "google.ads.googleads.v0.services.MutateCampaignBidModifierResult") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// CampaignBidModifierServiceClient is the client API for CampaignBidModifierService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type CampaignBidModifierServiceClient interface { + // Returns the requested campaign bid modifier in full detail. + GetCampaignBidModifier(ctx context.Context, in *GetCampaignBidModifierRequest, opts ...grpc.CallOption) (*resources.CampaignBidModifier, error) + // Creates, updates, or removes campaign bid modifiers. + // Operation statuses are returned. + MutateCampaignBidModifiers(ctx context.Context, in *MutateCampaignBidModifiersRequest, opts ...grpc.CallOption) (*MutateCampaignBidModifiersResponse, error) +} + +type campaignBidModifierServiceClient struct { + cc *grpc.ClientConn +} + +func NewCampaignBidModifierServiceClient(cc *grpc.ClientConn) CampaignBidModifierServiceClient { + return &campaignBidModifierServiceClient{cc} +} + +func (c *campaignBidModifierServiceClient) GetCampaignBidModifier(ctx context.Context, in *GetCampaignBidModifierRequest, opts ...grpc.CallOption) (*resources.CampaignBidModifier, error) { + out := new(resources.CampaignBidModifier) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.CampaignBidModifierService/GetCampaignBidModifier", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *campaignBidModifierServiceClient) MutateCampaignBidModifiers(ctx context.Context, in *MutateCampaignBidModifiersRequest, opts ...grpc.CallOption) (*MutateCampaignBidModifiersResponse, error) { + out := new(MutateCampaignBidModifiersResponse) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.CampaignBidModifierService/MutateCampaignBidModifiers", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// CampaignBidModifierServiceServer is the server API for CampaignBidModifierService service. +type CampaignBidModifierServiceServer interface { + // Returns the requested campaign bid modifier in full detail. + GetCampaignBidModifier(context.Context, *GetCampaignBidModifierRequest) (*resources.CampaignBidModifier, error) + // Creates, updates, or removes campaign bid modifiers. + // Operation statuses are returned. + MutateCampaignBidModifiers(context.Context, *MutateCampaignBidModifiersRequest) (*MutateCampaignBidModifiersResponse, error) +} + +func RegisterCampaignBidModifierServiceServer(s *grpc.Server, srv CampaignBidModifierServiceServer) { + s.RegisterService(&_CampaignBidModifierService_serviceDesc, srv) +} + +func _CampaignBidModifierService_GetCampaignBidModifier_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetCampaignBidModifierRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CampaignBidModifierServiceServer).GetCampaignBidModifier(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.CampaignBidModifierService/GetCampaignBidModifier", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CampaignBidModifierServiceServer).GetCampaignBidModifier(ctx, req.(*GetCampaignBidModifierRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CampaignBidModifierService_MutateCampaignBidModifiers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MutateCampaignBidModifiersRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CampaignBidModifierServiceServer).MutateCampaignBidModifiers(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.CampaignBidModifierService/MutateCampaignBidModifiers", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CampaignBidModifierServiceServer).MutateCampaignBidModifiers(ctx, req.(*MutateCampaignBidModifiersRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _CampaignBidModifierService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.CampaignBidModifierService", + HandlerType: (*CampaignBidModifierServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetCampaignBidModifier", + Handler: _CampaignBidModifierService_GetCampaignBidModifier_Handler, + }, + { + MethodName: "MutateCampaignBidModifiers", + Handler: _CampaignBidModifierService_MutateCampaignBidModifiers_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/campaign_bid_modifier_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/campaign_bid_modifier_service.proto", fileDescriptor_campaign_bid_modifier_service_2bb6851aed97491b) +} + +var fileDescriptor_campaign_bid_modifier_service_2bb6851aed97491b = []byte{ + // 609 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x95, 0x4f, 0x8b, 0xd3, 0x4e, + 0x18, 0xc7, 0x7f, 0x49, 0x7f, 0xac, 0xec, 0x44, 0x2f, 0x73, 0x90, 0x10, 0x56, 0xb6, 0x46, 0x0f, + 0xa5, 0x87, 0xa4, 0x54, 0x58, 0x74, 0x97, 0x56, 0xda, 0x2d, 0xdb, 0xf5, 0x50, 0x2d, 0x11, 0xf6, + 0xa0, 0xc5, 0x30, 0x6d, 0xa6, 0x61, 0xd8, 0x26, 0x13, 0x67, 0x26, 0xbd, 0x2c, 0x7b, 0xd0, 0xb7, + 0xe0, 0x3b, 0x10, 0xf1, 0xe0, 0x4b, 0xf1, 0x26, 0xbe, 0x00, 0x3d, 0x78, 0xf5, 0x3d, 0x48, 0x32, + 0x99, 0x5a, 0x21, 0x69, 0xc5, 0xde, 0x9e, 0x64, 0x9e, 0x7c, 0x9e, 0x3f, 0xdf, 0x79, 0x9e, 0x80, + 0x41, 0x48, 0x69, 0xb8, 0xc0, 0x2e, 0x0a, 0xb8, 0x2b, 0xcd, 0xcc, 0x5a, 0xb6, 0x5c, 0x8e, 0xd9, + 0x92, 0xcc, 0x30, 0x77, 0x67, 0x28, 0x4a, 0x10, 0x09, 0x63, 0x7f, 0x4a, 0x02, 0x3f, 0xa2, 0x01, + 0x99, 0x13, 0xcc, 0xfc, 0xe2, 0xd8, 0x49, 0x18, 0x15, 0x14, 0xd6, 0xe5, 0xa7, 0x0e, 0x0a, 0xb8, + 0xb3, 0xa2, 0x38, 0xcb, 0x96, 0xa3, 0x28, 0x56, 0xa7, 0x2a, 0x0e, 0xc3, 0x9c, 0xa6, 0xac, 0x32, + 0x90, 0x0c, 0x60, 0x1d, 0xa8, 0xcf, 0x13, 0xe2, 0xa2, 0x38, 0xa6, 0x02, 0x09, 0x42, 0x63, 0x5e, + 0x9c, 0x16, 0xe1, 0xdd, 0xfc, 0x69, 0x9a, 0xce, 0xdd, 0x39, 0xc1, 0x8b, 0xc0, 0x8f, 0x10, 0xbf, + 0x94, 0x1e, 0xf6, 0x00, 0xdc, 0x19, 0x62, 0x71, 0x5a, 0x44, 0xe8, 0x93, 0x60, 0x54, 0xf0, 0x3d, + 0xfc, 0x3a, 0xc5, 0x5c, 0xc0, 0x7b, 0xe0, 0x96, 0xca, 0xc4, 0x8f, 0x51, 0x84, 0x4d, 0xad, 0xae, + 0x35, 0xf6, 0xbd, 0x9b, 0xea, 0xe5, 0x53, 0x14, 0x61, 0xfb, 0x83, 0x06, 0xee, 0x8e, 0x52, 0x81, + 0x04, 0x2e, 0x21, 0x71, 0x85, 0x3a, 0x04, 0xc6, 0x2c, 0xe5, 0x82, 0x46, 0x98, 0xf9, 0x24, 0x28, + 0x40, 0x40, 0xbd, 0x7a, 0x12, 0xc0, 0x57, 0x00, 0xd0, 0x04, 0x33, 0x59, 0x82, 0xa9, 0xd7, 0x6b, + 0x0d, 0xa3, 0xdd, 0x75, 0xb6, 0xb5, 0xd0, 0x29, 0x89, 0xf9, 0x4c, 0x61, 0xbc, 0x35, 0xa2, 0xfd, + 0x51, 0x07, 0x07, 0x9b, 0x9c, 0xe1, 0x09, 0x30, 0xd2, 0x24, 0x40, 0x02, 0xe7, 0x2d, 0x32, 0xff, + 0xaf, 0x6b, 0x0d, 0xa3, 0x6d, 0xa9, 0x0c, 0x54, 0x17, 0x9d, 0xb3, 0xac, 0x8b, 0x23, 0xc4, 0x2f, + 0x3d, 0x20, 0xdd, 0x33, 0x1b, 0x8e, 0xc1, 0xde, 0x8c, 0x61, 0x24, 0x64, 0x8b, 0x8c, 0xf6, 0x51, + 0x65, 0xe6, 0x2b, 0x69, 0xcb, 0x52, 0x3f, 0xff, 0xcf, 0x2b, 0x38, 0x19, 0x51, 0xf2, 0x4d, 0x7d, + 0x57, 0xa2, 0xe4, 0x40, 0x13, 0xec, 0x31, 0x1c, 0xd1, 0x25, 0x36, 0x6b, 0x59, 0xf7, 0xb3, 0x13, + 0xf9, 0xdc, 0x37, 0xc0, 0xfe, 0xaa, 0x53, 0xf6, 0x1b, 0x0d, 0xd8, 0x9b, 0xf4, 0xe4, 0x09, 0x8d, + 0x39, 0x86, 0x2f, 0xc1, 0x0d, 0x86, 0x79, 0xba, 0x10, 0x4a, 0xac, 0xde, 0x76, 0xb1, 0x2a, 0xb1, + 0x5e, 0x4e, 0xf2, 0x14, 0xd1, 0x3e, 0x03, 0x87, 0x5b, 0x7c, 0xff, 0xea, 0x6e, 0xb6, 0xbf, 0xd7, + 0x80, 0x55, 0x82, 0x78, 0x2e, 0x13, 0x82, 0x5f, 0x34, 0x70, 0xbb, 0x7c, 0x02, 0xe0, 0xe3, 0xed, + 0xd5, 0x6c, 0x9c, 0x1d, 0xeb, 0x1f, 0xf5, 0xb2, 0xbb, 0x6f, 0xbf, 0xfe, 0x78, 0xa7, 0x3f, 0x84, + 0x47, 0xd9, 0x1e, 0xb8, 0xfa, 0xa3, 0xc4, 0x8e, 0x1a, 0x17, 0xee, 0x36, 0x57, 0x8b, 0x61, 0x5d, + 0x1c, 0xb7, 0x79, 0x0d, 0x7f, 0x6a, 0xc0, 0xaa, 0x96, 0x0f, 0x9e, 0xee, 0xa0, 0x92, 0x1a, 0x66, + 0x6b, 0xb0, 0x1b, 0x44, 0xde, 0x20, 0x7b, 0x90, 0x57, 0xda, 0xb5, 0x1f, 0x65, 0x95, 0xfe, 0x2e, + 0xed, 0x6a, 0x6d, 0x4f, 0x74, 0x9a, 0xd7, 0xa5, 0x85, 0x1e, 0x47, 0x39, 0xfe, 0x58, 0x6b, 0xf6, + 0xbf, 0x69, 0xe0, 0xfe, 0x8c, 0x46, 0x5b, 0x33, 0xea, 0x1f, 0x56, 0x5f, 0x84, 0x71, 0x36, 0xdc, + 0x63, 0xed, 0xc5, 0x79, 0x01, 0x09, 0xe9, 0x02, 0xc5, 0xa1, 0x43, 0x59, 0xe8, 0x86, 0x38, 0xce, + 0x47, 0x5f, 0xed, 0xe7, 0x84, 0xf0, 0xea, 0xdf, 0xc2, 0x89, 0x32, 0xde, 0xeb, 0xb5, 0x61, 0xaf, + 0xf7, 0x49, 0xaf, 0x0f, 0x25, 0xb0, 0x17, 0x70, 0x47, 0x9a, 0x99, 0x75, 0xd1, 0x72, 0x8a, 0xc0, + 0xfc, 0xb3, 0x72, 0x99, 0xf4, 0x02, 0x3e, 0x59, 0xb9, 0x4c, 0x2e, 0x5a, 0x13, 0xe5, 0x32, 0xdd, + 0xcb, 0x13, 0x78, 0xf0, 0x2b, 0x00, 0x00, 0xff, 0xff, 0x12, 0xbd, 0x83, 0x1c, 0x96, 0x06, 0x00, + 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/campaign_budget_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/campaign_budget_service.pb.go new file mode 100644 index 000000000..47c189525 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/campaign_budget_service.pb.go @@ -0,0 +1,547 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/campaign_budget_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" +import field_mask "google.golang.org/genproto/protobuf/field_mask" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [CampaignBudgetService.GetCampaignBudget][google.ads.googleads.v0.services.CampaignBudgetService.GetCampaignBudget]. +type GetCampaignBudgetRequest struct { + // The resource name of the campaign budget to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetCampaignBudgetRequest) Reset() { *m = GetCampaignBudgetRequest{} } +func (m *GetCampaignBudgetRequest) String() string { return proto.CompactTextString(m) } +func (*GetCampaignBudgetRequest) ProtoMessage() {} +func (*GetCampaignBudgetRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_budget_service_4de5d27918721d20, []int{0} +} +func (m *GetCampaignBudgetRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetCampaignBudgetRequest.Unmarshal(m, b) +} +func (m *GetCampaignBudgetRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetCampaignBudgetRequest.Marshal(b, m, deterministic) +} +func (dst *GetCampaignBudgetRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetCampaignBudgetRequest.Merge(dst, src) +} +func (m *GetCampaignBudgetRequest) XXX_Size() int { + return xxx_messageInfo_GetCampaignBudgetRequest.Size(m) +} +func (m *GetCampaignBudgetRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetCampaignBudgetRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetCampaignBudgetRequest proto.InternalMessageInfo + +func (m *GetCampaignBudgetRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +// Request message for [CampaignBudgetService.MutateCampaignBudgets][google.ads.googleads.v0.services.CampaignBudgetService.MutateCampaignBudgets]. +type MutateCampaignBudgetsRequest struct { + // The ID of the customer whose campaign budgets are being modified. + CustomerId string `protobuf:"bytes,1,opt,name=customer_id,json=customerId,proto3" json:"customer_id,omitempty"` + // The list of operations to perform on individual campaign budgets. + Operations []*CampaignBudgetOperation `protobuf:"bytes,2,rep,name=operations,proto3" json:"operations,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateCampaignBudgetsRequest) Reset() { *m = MutateCampaignBudgetsRequest{} } +func (m *MutateCampaignBudgetsRequest) String() string { return proto.CompactTextString(m) } +func (*MutateCampaignBudgetsRequest) ProtoMessage() {} +func (*MutateCampaignBudgetsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_budget_service_4de5d27918721d20, []int{1} +} +func (m *MutateCampaignBudgetsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateCampaignBudgetsRequest.Unmarshal(m, b) +} +func (m *MutateCampaignBudgetsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateCampaignBudgetsRequest.Marshal(b, m, deterministic) +} +func (dst *MutateCampaignBudgetsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateCampaignBudgetsRequest.Merge(dst, src) +} +func (m *MutateCampaignBudgetsRequest) XXX_Size() int { + return xxx_messageInfo_MutateCampaignBudgetsRequest.Size(m) +} +func (m *MutateCampaignBudgetsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_MutateCampaignBudgetsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateCampaignBudgetsRequest proto.InternalMessageInfo + +func (m *MutateCampaignBudgetsRequest) GetCustomerId() string { + if m != nil { + return m.CustomerId + } + return "" +} + +func (m *MutateCampaignBudgetsRequest) GetOperations() []*CampaignBudgetOperation { + if m != nil { + return m.Operations + } + return nil +} + +// A single operation (create, update, remove) on a campaign budget. +type CampaignBudgetOperation struct { + // FieldMask that determines which resource fields are modified in an update. + UpdateMask *field_mask.FieldMask `protobuf:"bytes,4,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // The mutate operation. + // + // Types that are valid to be assigned to Operation: + // *CampaignBudgetOperation_Create + // *CampaignBudgetOperation_Update + // *CampaignBudgetOperation_Remove + Operation isCampaignBudgetOperation_Operation `protobuf_oneof:"operation"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CampaignBudgetOperation) Reset() { *m = CampaignBudgetOperation{} } +func (m *CampaignBudgetOperation) String() string { return proto.CompactTextString(m) } +func (*CampaignBudgetOperation) ProtoMessage() {} +func (*CampaignBudgetOperation) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_budget_service_4de5d27918721d20, []int{2} +} +func (m *CampaignBudgetOperation) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CampaignBudgetOperation.Unmarshal(m, b) +} +func (m *CampaignBudgetOperation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CampaignBudgetOperation.Marshal(b, m, deterministic) +} +func (dst *CampaignBudgetOperation) XXX_Merge(src proto.Message) { + xxx_messageInfo_CampaignBudgetOperation.Merge(dst, src) +} +func (m *CampaignBudgetOperation) XXX_Size() int { + return xxx_messageInfo_CampaignBudgetOperation.Size(m) +} +func (m *CampaignBudgetOperation) XXX_DiscardUnknown() { + xxx_messageInfo_CampaignBudgetOperation.DiscardUnknown(m) +} + +var xxx_messageInfo_CampaignBudgetOperation proto.InternalMessageInfo + +func (m *CampaignBudgetOperation) GetUpdateMask() *field_mask.FieldMask { + if m != nil { + return m.UpdateMask + } + return nil +} + +type isCampaignBudgetOperation_Operation interface { + isCampaignBudgetOperation_Operation() +} + +type CampaignBudgetOperation_Create struct { + Create *resources.CampaignBudget `protobuf:"bytes,1,opt,name=create,proto3,oneof"` +} + +type CampaignBudgetOperation_Update struct { + Update *resources.CampaignBudget `protobuf:"bytes,2,opt,name=update,proto3,oneof"` +} + +type CampaignBudgetOperation_Remove struct { + Remove string `protobuf:"bytes,3,opt,name=remove,proto3,oneof"` +} + +func (*CampaignBudgetOperation_Create) isCampaignBudgetOperation_Operation() {} + +func (*CampaignBudgetOperation_Update) isCampaignBudgetOperation_Operation() {} + +func (*CampaignBudgetOperation_Remove) isCampaignBudgetOperation_Operation() {} + +func (m *CampaignBudgetOperation) GetOperation() isCampaignBudgetOperation_Operation { + if m != nil { + return m.Operation + } + return nil +} + +func (m *CampaignBudgetOperation) GetCreate() *resources.CampaignBudget { + if x, ok := m.GetOperation().(*CampaignBudgetOperation_Create); ok { + return x.Create + } + return nil +} + +func (m *CampaignBudgetOperation) GetUpdate() *resources.CampaignBudget { + if x, ok := m.GetOperation().(*CampaignBudgetOperation_Update); ok { + return x.Update + } + return nil +} + +func (m *CampaignBudgetOperation) GetRemove() string { + if x, ok := m.GetOperation().(*CampaignBudgetOperation_Remove); ok { + return x.Remove + } + return "" +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*CampaignBudgetOperation) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _CampaignBudgetOperation_OneofMarshaler, _CampaignBudgetOperation_OneofUnmarshaler, _CampaignBudgetOperation_OneofSizer, []interface{}{ + (*CampaignBudgetOperation_Create)(nil), + (*CampaignBudgetOperation_Update)(nil), + (*CampaignBudgetOperation_Remove)(nil), + } +} + +func _CampaignBudgetOperation_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*CampaignBudgetOperation) + // operation + switch x := m.Operation.(type) { + case *CampaignBudgetOperation_Create: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Create); err != nil { + return err + } + case *CampaignBudgetOperation_Update: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Update); err != nil { + return err + } + case *CampaignBudgetOperation_Remove: + b.EncodeVarint(3<<3 | proto.WireBytes) + b.EncodeStringBytes(x.Remove) + case nil: + default: + return fmt.Errorf("CampaignBudgetOperation.Operation has unexpected type %T", x) + } + return nil +} + +func _CampaignBudgetOperation_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*CampaignBudgetOperation) + switch tag { + case 1: // operation.create + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.CampaignBudget) + err := b.DecodeMessage(msg) + m.Operation = &CampaignBudgetOperation_Create{msg} + return true, err + case 2: // operation.update + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.CampaignBudget) + err := b.DecodeMessage(msg) + m.Operation = &CampaignBudgetOperation_Update{msg} + return true, err + case 3: // operation.remove + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Operation = &CampaignBudgetOperation_Remove{x} + return true, err + default: + return false, nil + } +} + +func _CampaignBudgetOperation_OneofSizer(msg proto.Message) (n int) { + m := msg.(*CampaignBudgetOperation) + // operation + switch x := m.Operation.(type) { + case *CampaignBudgetOperation_Create: + s := proto.Size(x.Create) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *CampaignBudgetOperation_Update: + s := proto.Size(x.Update) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *CampaignBudgetOperation_Remove: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(len(x.Remove))) + n += len(x.Remove) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// Response message for campaign budget mutate. +type MutateCampaignBudgetsResponse struct { + // All results for the mutate. + Results []*MutateCampaignBudgetResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateCampaignBudgetsResponse) Reset() { *m = MutateCampaignBudgetsResponse{} } +func (m *MutateCampaignBudgetsResponse) String() string { return proto.CompactTextString(m) } +func (*MutateCampaignBudgetsResponse) ProtoMessage() {} +func (*MutateCampaignBudgetsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_budget_service_4de5d27918721d20, []int{3} +} +func (m *MutateCampaignBudgetsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateCampaignBudgetsResponse.Unmarshal(m, b) +} +func (m *MutateCampaignBudgetsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateCampaignBudgetsResponse.Marshal(b, m, deterministic) +} +func (dst *MutateCampaignBudgetsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateCampaignBudgetsResponse.Merge(dst, src) +} +func (m *MutateCampaignBudgetsResponse) XXX_Size() int { + return xxx_messageInfo_MutateCampaignBudgetsResponse.Size(m) +} +func (m *MutateCampaignBudgetsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MutateCampaignBudgetsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateCampaignBudgetsResponse proto.InternalMessageInfo + +func (m *MutateCampaignBudgetsResponse) GetResults() []*MutateCampaignBudgetResult { + if m != nil { + return m.Results + } + return nil +} + +// The result for the campaign budget mutate. +type MutateCampaignBudgetResult struct { + // Returned for successful operations. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateCampaignBudgetResult) Reset() { *m = MutateCampaignBudgetResult{} } +func (m *MutateCampaignBudgetResult) String() string { return proto.CompactTextString(m) } +func (*MutateCampaignBudgetResult) ProtoMessage() {} +func (*MutateCampaignBudgetResult) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_budget_service_4de5d27918721d20, []int{4} +} +func (m *MutateCampaignBudgetResult) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateCampaignBudgetResult.Unmarshal(m, b) +} +func (m *MutateCampaignBudgetResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateCampaignBudgetResult.Marshal(b, m, deterministic) +} +func (dst *MutateCampaignBudgetResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateCampaignBudgetResult.Merge(dst, src) +} +func (m *MutateCampaignBudgetResult) XXX_Size() int { + return xxx_messageInfo_MutateCampaignBudgetResult.Size(m) +} +func (m *MutateCampaignBudgetResult) XXX_DiscardUnknown() { + xxx_messageInfo_MutateCampaignBudgetResult.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateCampaignBudgetResult proto.InternalMessageInfo + +func (m *MutateCampaignBudgetResult) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetCampaignBudgetRequest)(nil), "google.ads.googleads.v0.services.GetCampaignBudgetRequest") + proto.RegisterType((*MutateCampaignBudgetsRequest)(nil), "google.ads.googleads.v0.services.MutateCampaignBudgetsRequest") + proto.RegisterType((*CampaignBudgetOperation)(nil), "google.ads.googleads.v0.services.CampaignBudgetOperation") + proto.RegisterType((*MutateCampaignBudgetsResponse)(nil), "google.ads.googleads.v0.services.MutateCampaignBudgetsResponse") + proto.RegisterType((*MutateCampaignBudgetResult)(nil), "google.ads.googleads.v0.services.MutateCampaignBudgetResult") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// CampaignBudgetServiceClient is the client API for CampaignBudgetService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type CampaignBudgetServiceClient interface { + // Returns the requested Campaign Budget in full detail. + GetCampaignBudget(ctx context.Context, in *GetCampaignBudgetRequest, opts ...grpc.CallOption) (*resources.CampaignBudget, error) + // Creates, updates, or removes campaign budgets. Operation statuses are + // returned. + MutateCampaignBudgets(ctx context.Context, in *MutateCampaignBudgetsRequest, opts ...grpc.CallOption) (*MutateCampaignBudgetsResponse, error) +} + +type campaignBudgetServiceClient struct { + cc *grpc.ClientConn +} + +func NewCampaignBudgetServiceClient(cc *grpc.ClientConn) CampaignBudgetServiceClient { + return &campaignBudgetServiceClient{cc} +} + +func (c *campaignBudgetServiceClient) GetCampaignBudget(ctx context.Context, in *GetCampaignBudgetRequest, opts ...grpc.CallOption) (*resources.CampaignBudget, error) { + out := new(resources.CampaignBudget) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.CampaignBudgetService/GetCampaignBudget", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *campaignBudgetServiceClient) MutateCampaignBudgets(ctx context.Context, in *MutateCampaignBudgetsRequest, opts ...grpc.CallOption) (*MutateCampaignBudgetsResponse, error) { + out := new(MutateCampaignBudgetsResponse) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.CampaignBudgetService/MutateCampaignBudgets", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// CampaignBudgetServiceServer is the server API for CampaignBudgetService service. +type CampaignBudgetServiceServer interface { + // Returns the requested Campaign Budget in full detail. + GetCampaignBudget(context.Context, *GetCampaignBudgetRequest) (*resources.CampaignBudget, error) + // Creates, updates, or removes campaign budgets. Operation statuses are + // returned. + MutateCampaignBudgets(context.Context, *MutateCampaignBudgetsRequest) (*MutateCampaignBudgetsResponse, error) +} + +func RegisterCampaignBudgetServiceServer(s *grpc.Server, srv CampaignBudgetServiceServer) { + s.RegisterService(&_CampaignBudgetService_serviceDesc, srv) +} + +func _CampaignBudgetService_GetCampaignBudget_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetCampaignBudgetRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CampaignBudgetServiceServer).GetCampaignBudget(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.CampaignBudgetService/GetCampaignBudget", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CampaignBudgetServiceServer).GetCampaignBudget(ctx, req.(*GetCampaignBudgetRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CampaignBudgetService_MutateCampaignBudgets_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MutateCampaignBudgetsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CampaignBudgetServiceServer).MutateCampaignBudgets(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.CampaignBudgetService/MutateCampaignBudgets", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CampaignBudgetServiceServer).MutateCampaignBudgets(ctx, req.(*MutateCampaignBudgetsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _CampaignBudgetService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.CampaignBudgetService", + HandlerType: (*CampaignBudgetServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetCampaignBudget", + Handler: _CampaignBudgetService_GetCampaignBudget_Handler, + }, + { + MethodName: "MutateCampaignBudgets", + Handler: _CampaignBudgetService_MutateCampaignBudgets_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/campaign_budget_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/campaign_budget_service.proto", fileDescriptor_campaign_budget_service_4de5d27918721d20) +} + +var fileDescriptor_campaign_budget_service_4de5d27918721d20 = []byte{ + // 600 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x94, 0x41, 0x8b, 0xd3, 0x40, + 0x14, 0xc7, 0x4d, 0x2a, 0x95, 0x9d, 0xe8, 0xc1, 0x81, 0xc5, 0x10, 0x56, 0x2c, 0xd1, 0x43, 0xe9, + 0x61, 0xd2, 0xed, 0x0a, 0xd2, 0xae, 0xbb, 0xa5, 0x15, 0xec, 0x8a, 0xac, 0x2e, 0x11, 0x0a, 0x4a, + 0xa1, 0x4c, 0x9b, 0xb7, 0x21, 0x6c, 0x93, 0x89, 0x99, 0x49, 0x3d, 0x2c, 0x7b, 0xf1, 0x2b, 0x78, + 0x10, 0x3c, 0x7a, 0xf4, 0xea, 0xd9, 0x2f, 0xe0, 0xd5, 0x93, 0x9e, 0xfd, 0x20, 0x92, 0x4c, 0xa6, + 0x6e, 0xd7, 0x86, 0xea, 0x7a, 0x7b, 0xc9, 0xbc, 0xf7, 0x7b, 0xef, 0xfd, 0xdf, 0xbc, 0x41, 0xfb, + 0x3e, 0x63, 0xfe, 0x0c, 0x1c, 0xea, 0x71, 0x47, 0x9a, 0x99, 0x35, 0x6f, 0x3a, 0x1c, 0x92, 0x79, + 0x30, 0x05, 0xee, 0x4c, 0x69, 0x18, 0xd3, 0xc0, 0x8f, 0xc6, 0x93, 0xd4, 0xf3, 0x41, 0x8c, 0x8b, + 0x03, 0x12, 0x27, 0x4c, 0x30, 0x5c, 0x93, 0x41, 0x84, 0x7a, 0x9c, 0x2c, 0xe2, 0xc9, 0xbc, 0x49, + 0x54, 0xbc, 0xf5, 0xa0, 0x2c, 0x43, 0x02, 0x9c, 0xa5, 0xc9, 0x8a, 0x14, 0x12, 0x6d, 0x6d, 0xa9, + 0xc0, 0x38, 0x70, 0x68, 0x14, 0x31, 0x41, 0x45, 0xc0, 0x22, 0x5e, 0x9c, 0x16, 0x89, 0x9d, 0xfc, + 0x6b, 0x92, 0x1e, 0x3b, 0xc7, 0x01, 0xcc, 0xbc, 0x71, 0x48, 0xf9, 0x89, 0xf4, 0xb0, 0xbb, 0xc8, + 0x1c, 0x80, 0x78, 0x54, 0xb0, 0xfb, 0x39, 0xda, 0x85, 0xd7, 0x29, 0x70, 0x81, 0xef, 0xa2, 0x1b, + 0x2a, 0xfd, 0x38, 0xa2, 0x21, 0x98, 0x5a, 0x4d, 0xab, 0x6f, 0xb8, 0xd7, 0xd5, 0xcf, 0x67, 0x34, + 0x04, 0xfb, 0x83, 0x86, 0xb6, 0x0e, 0x53, 0x41, 0x05, 0x2c, 0x43, 0xb8, 0xa2, 0xdc, 0x41, 0xc6, + 0x34, 0xe5, 0x82, 0x85, 0x90, 0x8c, 0x03, 0xaf, 0x60, 0x20, 0xf5, 0xeb, 0x89, 0x87, 0x5f, 0x22, + 0xc4, 0x62, 0x48, 0x64, 0xe1, 0xa6, 0x5e, 0xab, 0xd4, 0x8d, 0x56, 0x9b, 0xac, 0x93, 0x8c, 0x2c, + 0xa7, 0x7b, 0xae, 0x08, 0xee, 0x39, 0x98, 0xfd, 0x5e, 0x47, 0xb7, 0x4a, 0xfc, 0xf0, 0x2e, 0x32, + 0xd2, 0xd8, 0xa3, 0x02, 0x72, 0x39, 0xcc, 0xab, 0x35, 0xad, 0x6e, 0xb4, 0x2c, 0x95, 0x57, 0x29, + 0x46, 0x1e, 0x67, 0x8a, 0x1d, 0x52, 0x7e, 0xe2, 0x22, 0xe9, 0x9e, 0xd9, 0xf8, 0x29, 0xaa, 0x4e, + 0x13, 0xa0, 0x42, 0x6a, 0x62, 0xb4, 0xb6, 0x4b, 0xeb, 0x5d, 0x0c, 0xf0, 0x42, 0xc1, 0x07, 0x57, + 0xdc, 0x02, 0x91, 0xc1, 0x24, 0xda, 0xd4, 0xff, 0x03, 0x26, 0x11, 0xd8, 0x44, 0xd5, 0x04, 0x42, + 0x36, 0x07, 0xb3, 0x92, 0x29, 0x9d, 0x9d, 0xc8, 0xef, 0xbe, 0x81, 0x36, 0x16, 0xd2, 0xd8, 0x6f, + 0xd0, 0xed, 0x92, 0xa9, 0xf1, 0x98, 0x45, 0x1c, 0xf0, 0x10, 0x5d, 0x4b, 0x80, 0xa7, 0x33, 0xa1, + 0x46, 0xf2, 0x70, 0xfd, 0x48, 0x56, 0x11, 0xdd, 0x1c, 0xe2, 0x2a, 0x98, 0xdd, 0x43, 0x56, 0xb9, + 0xdb, 0x5f, 0x5d, 0xb9, 0xd6, 0xe7, 0x0a, 0xda, 0x5c, 0x8e, 0x7e, 0x21, 0x2b, 0xc0, 0x5f, 0x34, + 0x74, 0xf3, 0x8f, 0xeb, 0x8c, 0x3b, 0xeb, 0x2b, 0x2f, 0xdb, 0x01, 0xeb, 0xdf, 0x67, 0x61, 0xb7, + 0xdf, 0x7e, 0xfb, 0xf9, 0x4e, 0xdf, 0xc1, 0xdb, 0xd9, 0xfe, 0x9e, 0x2e, 0xb5, 0xb3, 0xa7, 0xae, + 0x3d, 0x77, 0x1a, 0x8b, 0x85, 0x2e, 0x94, 0x77, 0x1a, 0x67, 0xf8, 0xbb, 0x86, 0x36, 0x57, 0x8e, + 0x05, 0xef, 0x5f, 0x4e, 0x7d, 0xb5, 0x85, 0x56, 0xf7, 0xd2, 0xf1, 0xf2, 0x3e, 0xd8, 0xdd, 0xbc, + 0xab, 0xb6, 0x7d, 0x3f, 0xeb, 0xea, 0x77, 0x1b, 0xa7, 0xe7, 0x76, 0x7b, 0xaf, 0x71, 0x76, 0xb1, + 0xa9, 0x4e, 0x98, 0x43, 0x3b, 0x5a, 0xa3, 0xff, 0x43, 0x43, 0xf7, 0xa6, 0x2c, 0x5c, 0x5b, 0x47, + 0xdf, 0x5a, 0x39, 0xdb, 0xa3, 0x6c, 0x21, 0x8f, 0xb4, 0x57, 0x07, 0x45, 0xbc, 0xcf, 0x66, 0x34, + 0xf2, 0x09, 0x4b, 0x7c, 0xc7, 0x87, 0x28, 0x5f, 0x57, 0xf5, 0x72, 0xc6, 0x01, 0x2f, 0x7f, 0xaa, + 0x77, 0x95, 0xf1, 0x51, 0xaf, 0x0c, 0x7a, 0xbd, 0x4f, 0x7a, 0x6d, 0x20, 0x81, 0x3d, 0x8f, 0x13, + 0x69, 0x66, 0xd6, 0xb0, 0x49, 0x8a, 0xc4, 0xfc, 0xab, 0x72, 0x19, 0xf5, 0x3c, 0x3e, 0x5a, 0xb8, + 0x8c, 0x86, 0xcd, 0x91, 0x72, 0x99, 0x54, 0xf3, 0x02, 0x76, 0x7e, 0x05, 0x00, 0x00, 0xff, 0xff, + 0x4d, 0x55, 0x22, 0x99, 0x2a, 0x06, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/campaign_criterion_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/campaign_criterion_service.pb.go new file mode 100644 index 000000000..96d587f7c --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/campaign_criterion_service.pb.go @@ -0,0 +1,545 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/campaign_criterion_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" +import field_mask "google.golang.org/genproto/protobuf/field_mask" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [CampaignCriterionService.GetCampaignCriterion][google.ads.googleads.v0.services.CampaignCriterionService.GetCampaignCriterion]. +type GetCampaignCriterionRequest struct { + // The resource name of the criterion to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetCampaignCriterionRequest) Reset() { *m = GetCampaignCriterionRequest{} } +func (m *GetCampaignCriterionRequest) String() string { return proto.CompactTextString(m) } +func (*GetCampaignCriterionRequest) ProtoMessage() {} +func (*GetCampaignCriterionRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_criterion_service_9e44f1f5d681490b, []int{0} +} +func (m *GetCampaignCriterionRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetCampaignCriterionRequest.Unmarshal(m, b) +} +func (m *GetCampaignCriterionRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetCampaignCriterionRequest.Marshal(b, m, deterministic) +} +func (dst *GetCampaignCriterionRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetCampaignCriterionRequest.Merge(dst, src) +} +func (m *GetCampaignCriterionRequest) XXX_Size() int { + return xxx_messageInfo_GetCampaignCriterionRequest.Size(m) +} +func (m *GetCampaignCriterionRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetCampaignCriterionRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetCampaignCriterionRequest proto.InternalMessageInfo + +func (m *GetCampaignCriterionRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +// Request message for [CampaignCriterionService.MutateCampaignCriteria][google.ads.googleads.v0.services.CampaignCriterionService.MutateCampaignCriteria]. +type MutateCampaignCriteriaRequest struct { + // The ID of the customer whose criteria are being modified. + CustomerId string `protobuf:"bytes,1,opt,name=customer_id,json=customerId,proto3" json:"customer_id,omitempty"` + // The list of operations to perform on individual criteria. + Operations []*CampaignCriterionOperation `protobuf:"bytes,2,rep,name=operations,proto3" json:"operations,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateCampaignCriteriaRequest) Reset() { *m = MutateCampaignCriteriaRequest{} } +func (m *MutateCampaignCriteriaRequest) String() string { return proto.CompactTextString(m) } +func (*MutateCampaignCriteriaRequest) ProtoMessage() {} +func (*MutateCampaignCriteriaRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_criterion_service_9e44f1f5d681490b, []int{1} +} +func (m *MutateCampaignCriteriaRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateCampaignCriteriaRequest.Unmarshal(m, b) +} +func (m *MutateCampaignCriteriaRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateCampaignCriteriaRequest.Marshal(b, m, deterministic) +} +func (dst *MutateCampaignCriteriaRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateCampaignCriteriaRequest.Merge(dst, src) +} +func (m *MutateCampaignCriteriaRequest) XXX_Size() int { + return xxx_messageInfo_MutateCampaignCriteriaRequest.Size(m) +} +func (m *MutateCampaignCriteriaRequest) XXX_DiscardUnknown() { + xxx_messageInfo_MutateCampaignCriteriaRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateCampaignCriteriaRequest proto.InternalMessageInfo + +func (m *MutateCampaignCriteriaRequest) GetCustomerId() string { + if m != nil { + return m.CustomerId + } + return "" +} + +func (m *MutateCampaignCriteriaRequest) GetOperations() []*CampaignCriterionOperation { + if m != nil { + return m.Operations + } + return nil +} + +// A single operation (create, update, remove) on a campaign criterion. +type CampaignCriterionOperation struct { + // FieldMask that determines which resource fields are modified in an update. + UpdateMask *field_mask.FieldMask `protobuf:"bytes,4,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // The mutate operation. + // + // Types that are valid to be assigned to Operation: + // *CampaignCriterionOperation_Create + // *CampaignCriterionOperation_Update + // *CampaignCriterionOperation_Remove + Operation isCampaignCriterionOperation_Operation `protobuf_oneof:"operation"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CampaignCriterionOperation) Reset() { *m = CampaignCriterionOperation{} } +func (m *CampaignCriterionOperation) String() string { return proto.CompactTextString(m) } +func (*CampaignCriterionOperation) ProtoMessage() {} +func (*CampaignCriterionOperation) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_criterion_service_9e44f1f5d681490b, []int{2} +} +func (m *CampaignCriterionOperation) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CampaignCriterionOperation.Unmarshal(m, b) +} +func (m *CampaignCriterionOperation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CampaignCriterionOperation.Marshal(b, m, deterministic) +} +func (dst *CampaignCriterionOperation) XXX_Merge(src proto.Message) { + xxx_messageInfo_CampaignCriterionOperation.Merge(dst, src) +} +func (m *CampaignCriterionOperation) XXX_Size() int { + return xxx_messageInfo_CampaignCriterionOperation.Size(m) +} +func (m *CampaignCriterionOperation) XXX_DiscardUnknown() { + xxx_messageInfo_CampaignCriterionOperation.DiscardUnknown(m) +} + +var xxx_messageInfo_CampaignCriterionOperation proto.InternalMessageInfo + +func (m *CampaignCriterionOperation) GetUpdateMask() *field_mask.FieldMask { + if m != nil { + return m.UpdateMask + } + return nil +} + +type isCampaignCriterionOperation_Operation interface { + isCampaignCriterionOperation_Operation() +} + +type CampaignCriterionOperation_Create struct { + Create *resources.CampaignCriterion `protobuf:"bytes,1,opt,name=create,proto3,oneof"` +} + +type CampaignCriterionOperation_Update struct { + Update *resources.CampaignCriterion `protobuf:"bytes,2,opt,name=update,proto3,oneof"` +} + +type CampaignCriterionOperation_Remove struct { + Remove string `protobuf:"bytes,3,opt,name=remove,proto3,oneof"` +} + +func (*CampaignCriterionOperation_Create) isCampaignCriterionOperation_Operation() {} + +func (*CampaignCriterionOperation_Update) isCampaignCriterionOperation_Operation() {} + +func (*CampaignCriterionOperation_Remove) isCampaignCriterionOperation_Operation() {} + +func (m *CampaignCriterionOperation) GetOperation() isCampaignCriterionOperation_Operation { + if m != nil { + return m.Operation + } + return nil +} + +func (m *CampaignCriterionOperation) GetCreate() *resources.CampaignCriterion { + if x, ok := m.GetOperation().(*CampaignCriterionOperation_Create); ok { + return x.Create + } + return nil +} + +func (m *CampaignCriterionOperation) GetUpdate() *resources.CampaignCriterion { + if x, ok := m.GetOperation().(*CampaignCriterionOperation_Update); ok { + return x.Update + } + return nil +} + +func (m *CampaignCriterionOperation) GetRemove() string { + if x, ok := m.GetOperation().(*CampaignCriterionOperation_Remove); ok { + return x.Remove + } + return "" +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*CampaignCriterionOperation) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _CampaignCriterionOperation_OneofMarshaler, _CampaignCriterionOperation_OneofUnmarshaler, _CampaignCriterionOperation_OneofSizer, []interface{}{ + (*CampaignCriterionOperation_Create)(nil), + (*CampaignCriterionOperation_Update)(nil), + (*CampaignCriterionOperation_Remove)(nil), + } +} + +func _CampaignCriterionOperation_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*CampaignCriterionOperation) + // operation + switch x := m.Operation.(type) { + case *CampaignCriterionOperation_Create: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Create); err != nil { + return err + } + case *CampaignCriterionOperation_Update: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Update); err != nil { + return err + } + case *CampaignCriterionOperation_Remove: + b.EncodeVarint(3<<3 | proto.WireBytes) + b.EncodeStringBytes(x.Remove) + case nil: + default: + return fmt.Errorf("CampaignCriterionOperation.Operation has unexpected type %T", x) + } + return nil +} + +func _CampaignCriterionOperation_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*CampaignCriterionOperation) + switch tag { + case 1: // operation.create + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.CampaignCriterion) + err := b.DecodeMessage(msg) + m.Operation = &CampaignCriterionOperation_Create{msg} + return true, err + case 2: // operation.update + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.CampaignCriterion) + err := b.DecodeMessage(msg) + m.Operation = &CampaignCriterionOperation_Update{msg} + return true, err + case 3: // operation.remove + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Operation = &CampaignCriterionOperation_Remove{x} + return true, err + default: + return false, nil + } +} + +func _CampaignCriterionOperation_OneofSizer(msg proto.Message) (n int) { + m := msg.(*CampaignCriterionOperation) + // operation + switch x := m.Operation.(type) { + case *CampaignCriterionOperation_Create: + s := proto.Size(x.Create) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *CampaignCriterionOperation_Update: + s := proto.Size(x.Update) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *CampaignCriterionOperation_Remove: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(len(x.Remove))) + n += len(x.Remove) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// Response message for campaign criterion mutate. +type MutateCampaignCriteriaResponse struct { + // All results for the mutate. + Results []*MutateCampaignCriterionResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateCampaignCriteriaResponse) Reset() { *m = MutateCampaignCriteriaResponse{} } +func (m *MutateCampaignCriteriaResponse) String() string { return proto.CompactTextString(m) } +func (*MutateCampaignCriteriaResponse) ProtoMessage() {} +func (*MutateCampaignCriteriaResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_criterion_service_9e44f1f5d681490b, []int{3} +} +func (m *MutateCampaignCriteriaResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateCampaignCriteriaResponse.Unmarshal(m, b) +} +func (m *MutateCampaignCriteriaResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateCampaignCriteriaResponse.Marshal(b, m, deterministic) +} +func (dst *MutateCampaignCriteriaResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateCampaignCriteriaResponse.Merge(dst, src) +} +func (m *MutateCampaignCriteriaResponse) XXX_Size() int { + return xxx_messageInfo_MutateCampaignCriteriaResponse.Size(m) +} +func (m *MutateCampaignCriteriaResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MutateCampaignCriteriaResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateCampaignCriteriaResponse proto.InternalMessageInfo + +func (m *MutateCampaignCriteriaResponse) GetResults() []*MutateCampaignCriterionResult { + if m != nil { + return m.Results + } + return nil +} + +// The result for the criterion mutate. +type MutateCampaignCriterionResult struct { + // Returned for successful operations. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateCampaignCriterionResult) Reset() { *m = MutateCampaignCriterionResult{} } +func (m *MutateCampaignCriterionResult) String() string { return proto.CompactTextString(m) } +func (*MutateCampaignCriterionResult) ProtoMessage() {} +func (*MutateCampaignCriterionResult) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_criterion_service_9e44f1f5d681490b, []int{4} +} +func (m *MutateCampaignCriterionResult) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateCampaignCriterionResult.Unmarshal(m, b) +} +func (m *MutateCampaignCriterionResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateCampaignCriterionResult.Marshal(b, m, deterministic) +} +func (dst *MutateCampaignCriterionResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateCampaignCriterionResult.Merge(dst, src) +} +func (m *MutateCampaignCriterionResult) XXX_Size() int { + return xxx_messageInfo_MutateCampaignCriterionResult.Size(m) +} +func (m *MutateCampaignCriterionResult) XXX_DiscardUnknown() { + xxx_messageInfo_MutateCampaignCriterionResult.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateCampaignCriterionResult proto.InternalMessageInfo + +func (m *MutateCampaignCriterionResult) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetCampaignCriterionRequest)(nil), "google.ads.googleads.v0.services.GetCampaignCriterionRequest") + proto.RegisterType((*MutateCampaignCriteriaRequest)(nil), "google.ads.googleads.v0.services.MutateCampaignCriteriaRequest") + proto.RegisterType((*CampaignCriterionOperation)(nil), "google.ads.googleads.v0.services.CampaignCriterionOperation") + proto.RegisterType((*MutateCampaignCriteriaResponse)(nil), "google.ads.googleads.v0.services.MutateCampaignCriteriaResponse") + proto.RegisterType((*MutateCampaignCriterionResult)(nil), "google.ads.googleads.v0.services.MutateCampaignCriterionResult") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// CampaignCriterionServiceClient is the client API for CampaignCriterionService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type CampaignCriterionServiceClient interface { + // Returns the requested criterion in full detail. + GetCampaignCriterion(ctx context.Context, in *GetCampaignCriterionRequest, opts ...grpc.CallOption) (*resources.CampaignCriterion, error) + // Creates, updates, or removes criteria. Operation statuses are returned. + MutateCampaignCriteria(ctx context.Context, in *MutateCampaignCriteriaRequest, opts ...grpc.CallOption) (*MutateCampaignCriteriaResponse, error) +} + +type campaignCriterionServiceClient struct { + cc *grpc.ClientConn +} + +func NewCampaignCriterionServiceClient(cc *grpc.ClientConn) CampaignCriterionServiceClient { + return &campaignCriterionServiceClient{cc} +} + +func (c *campaignCriterionServiceClient) GetCampaignCriterion(ctx context.Context, in *GetCampaignCriterionRequest, opts ...grpc.CallOption) (*resources.CampaignCriterion, error) { + out := new(resources.CampaignCriterion) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.CampaignCriterionService/GetCampaignCriterion", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *campaignCriterionServiceClient) MutateCampaignCriteria(ctx context.Context, in *MutateCampaignCriteriaRequest, opts ...grpc.CallOption) (*MutateCampaignCriteriaResponse, error) { + out := new(MutateCampaignCriteriaResponse) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.CampaignCriterionService/MutateCampaignCriteria", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// CampaignCriterionServiceServer is the server API for CampaignCriterionService service. +type CampaignCriterionServiceServer interface { + // Returns the requested criterion in full detail. + GetCampaignCriterion(context.Context, *GetCampaignCriterionRequest) (*resources.CampaignCriterion, error) + // Creates, updates, or removes criteria. Operation statuses are returned. + MutateCampaignCriteria(context.Context, *MutateCampaignCriteriaRequest) (*MutateCampaignCriteriaResponse, error) +} + +func RegisterCampaignCriterionServiceServer(s *grpc.Server, srv CampaignCriterionServiceServer) { + s.RegisterService(&_CampaignCriterionService_serviceDesc, srv) +} + +func _CampaignCriterionService_GetCampaignCriterion_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetCampaignCriterionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CampaignCriterionServiceServer).GetCampaignCriterion(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.CampaignCriterionService/GetCampaignCriterion", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CampaignCriterionServiceServer).GetCampaignCriterion(ctx, req.(*GetCampaignCriterionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CampaignCriterionService_MutateCampaignCriteria_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MutateCampaignCriteriaRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CampaignCriterionServiceServer).MutateCampaignCriteria(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.CampaignCriterionService/MutateCampaignCriteria", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CampaignCriterionServiceServer).MutateCampaignCriteria(ctx, req.(*MutateCampaignCriteriaRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _CampaignCriterionService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.CampaignCriterionService", + HandlerType: (*CampaignCriterionServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetCampaignCriterion", + Handler: _CampaignCriterionService_GetCampaignCriterion_Handler, + }, + { + MethodName: "MutateCampaignCriteria", + Handler: _CampaignCriterionService_MutateCampaignCriteria_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/campaign_criterion_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/campaign_criterion_service.proto", fileDescriptor_campaign_criterion_service_9e44f1f5d681490b) +} + +var fileDescriptor_campaign_criterion_service_9e44f1f5d681490b = []byte{ + // 599 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x94, 0x4f, 0x6f, 0xd3, 0x3e, + 0x18, 0xc7, 0x7f, 0x49, 0x7f, 0x2a, 0x9a, 0x03, 0x17, 0x0b, 0xa1, 0x28, 0x30, 0xa8, 0x02, 0x87, + 0xaa, 0x07, 0xa7, 0x2a, 0xe3, 0xd2, 0x51, 0xb1, 0x76, 0x88, 0x8e, 0xc3, 0xc6, 0x14, 0xa4, 0x49, + 0xa0, 0x4a, 0x95, 0x97, 0x78, 0x51, 0xb4, 0x26, 0x0e, 0xb6, 0xd3, 0x4b, 0xb5, 0x0b, 0x6f, 0x81, + 0x3b, 0x42, 0x1c, 0x79, 0x1d, 0x48, 0x48, 0x5c, 0x39, 0xef, 0xc6, 0x0b, 0x41, 0x8e, 0xe3, 0x30, + 0x68, 0x43, 0x51, 0xb9, 0x3d, 0x89, 0x1f, 0x7f, 0x9e, 0x3f, 0xdf, 0xe7, 0x31, 0x18, 0x46, 0x94, + 0x46, 0x33, 0xe2, 0xe1, 0x90, 0x7b, 0xca, 0x94, 0xd6, 0xbc, 0xeb, 0x71, 0xc2, 0xe6, 0x71, 0x40, + 0xb8, 0x17, 0xe0, 0x24, 0xc3, 0x71, 0x94, 0x4e, 0x03, 0x16, 0x0b, 0xc2, 0x62, 0x9a, 0x4e, 0xcb, + 0x33, 0x94, 0x31, 0x2a, 0x28, 0x6c, 0xa9, 0x7b, 0x08, 0x87, 0x1c, 0x55, 0x08, 0x34, 0xef, 0x22, + 0x8d, 0x70, 0xfa, 0x75, 0x41, 0x18, 0xe1, 0x34, 0x67, 0xab, 0xa3, 0x28, 0xba, 0x73, 0x47, 0xdf, + 0xcd, 0x62, 0x0f, 0xa7, 0x29, 0x15, 0x58, 0xc4, 0x34, 0xe5, 0xe5, 0x69, 0x19, 0xdb, 0x2b, 0xbe, + 0x4e, 0xf3, 0x33, 0xef, 0x2c, 0x26, 0xb3, 0x70, 0x9a, 0x60, 0x7e, 0xae, 0x3c, 0xdc, 0x11, 0xb8, + 0x3d, 0x26, 0x62, 0xbf, 0xc4, 0xef, 0x6b, 0xba, 0x4f, 0xde, 0xe4, 0x84, 0x0b, 0x78, 0x1f, 0xdc, + 0xd0, 0x49, 0x4c, 0x53, 0x9c, 0x10, 0xdb, 0x68, 0x19, 0xed, 0x2d, 0xff, 0xba, 0xfe, 0x79, 0x84, + 0x13, 0xe2, 0xbe, 0x37, 0xc0, 0xf6, 0x61, 0x2e, 0xb0, 0x20, 0xbf, 0x71, 0xb0, 0xc6, 0xdc, 0x03, + 0x56, 0x90, 0x73, 0x41, 0x13, 0xc2, 0xa6, 0x71, 0x58, 0x42, 0x80, 0xfe, 0xf5, 0x3c, 0x84, 0x13, + 0x00, 0x68, 0x46, 0x98, 0x4a, 0xde, 0x36, 0x5b, 0x8d, 0xb6, 0xd5, 0x7b, 0x8c, 0xd6, 0x75, 0x0e, + 0x2d, 0xe5, 0xfd, 0x42, 0x43, 0xfc, 0x2b, 0x3c, 0xf7, 0x83, 0x09, 0x9c, 0x7a, 0x57, 0xb8, 0x0b, + 0xac, 0x3c, 0x0b, 0xb1, 0x20, 0x45, 0x63, 0xec, 0xff, 0x5b, 0x46, 0xdb, 0xea, 0x39, 0x3a, 0xba, + 0xee, 0x1d, 0x7a, 0x26, 0x7b, 0x77, 0x88, 0xf9, 0xb9, 0x0f, 0x94, 0xbb, 0xb4, 0xe1, 0x11, 0x68, + 0x06, 0x8c, 0x60, 0xa1, 0x5a, 0x63, 0xf5, 0x76, 0x6a, 0xb3, 0xae, 0xd4, 0x5c, 0x4e, 0xfb, 0xe0, + 0x3f, 0xbf, 0xa4, 0x48, 0x9e, 0xa2, 0xdb, 0xe6, 0xbf, 0xf1, 0x14, 0x05, 0xda, 0xa0, 0xc9, 0x48, + 0x42, 0xe7, 0xc4, 0x6e, 0xc8, 0xae, 0xcb, 0x13, 0xf5, 0x3d, 0xb2, 0xc0, 0x56, 0xd5, 0x23, 0x77, + 0x01, 0xee, 0xd6, 0x49, 0xc8, 0x33, 0x9a, 0x72, 0x02, 0x5f, 0x81, 0x6b, 0x8c, 0xf0, 0x7c, 0x26, + 0xb4, 0x3e, 0x4f, 0xd6, 0xeb, 0xb3, 0x12, 0x29, 0xa7, 0x4b, 0x72, 0x7c, 0xcd, 0x73, 0x9f, 0xd6, + 0xcc, 0x8f, 0xf6, 0xfc, 0xab, 0x31, 0xec, 0x7d, 0x6e, 0x00, 0x7b, 0x09, 0xf0, 0x52, 0xa5, 0x02, + 0xbf, 0x18, 0xe0, 0xe6, 0xaa, 0x41, 0x87, 0x83, 0xf5, 0x55, 0xfc, 0x61, 0x41, 0x9c, 0x8d, 0xe4, + 0x71, 0xfb, 0x6f, 0xbf, 0x7d, 0x7f, 0x67, 0xee, 0xc0, 0x9e, 0xdc, 0xf2, 0xc5, 0x2f, 0xa5, 0x0d, + 0xf4, 0x56, 0x70, 0xaf, 0x53, 0xad, 0xbd, 0x16, 0xc3, 0xeb, 0x5c, 0xc0, 0x4b, 0x03, 0xdc, 0x5a, + 0x2d, 0x15, 0xdc, 0x54, 0x11, 0xbd, 0xa7, 0xce, 0xde, 0xe6, 0x00, 0x35, 0x25, 0xee, 0x5e, 0x51, + 0x59, 0xdf, 0x7d, 0x24, 0x2b, 0xfb, 0x59, 0xca, 0xe2, 0xca, 0xfa, 0x0f, 0x3a, 0x17, 0x4b, 0x85, + 0xf5, 0x93, 0x02, 0xdb, 0x37, 0x3a, 0xa3, 0x4b, 0x03, 0x3c, 0x08, 0x68, 0xb2, 0x36, 0x93, 0xd1, + 0x76, 0x9d, 0xd8, 0xc7, 0x72, 0x63, 0x8f, 0x8d, 0xd7, 0x07, 0x25, 0x22, 0xa2, 0x33, 0x9c, 0x46, + 0x88, 0xb2, 0xc8, 0x8b, 0x48, 0x5a, 0xec, 0xb3, 0x7e, 0x67, 0xb3, 0x98, 0xd7, 0xbf, 0xed, 0xbb, + 0xda, 0xf8, 0x68, 0x36, 0xc6, 0xc3, 0xe1, 0x27, 0xb3, 0x35, 0x56, 0xc0, 0x61, 0xc8, 0x91, 0x32, + 0xa5, 0x75, 0xd2, 0x45, 0x65, 0x60, 0xfe, 0x55, 0xbb, 0x4c, 0x86, 0x21, 0x9f, 0x54, 0x2e, 0x93, + 0x93, 0xee, 0x44, 0xbb, 0x9c, 0x36, 0x8b, 0x04, 0x1e, 0xfe, 0x08, 0x00, 0x00, 0xff, 0xff, 0x12, + 0xdf, 0x1f, 0x23, 0x5b, 0x06, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/campaign_feed_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/campaign_feed_service.pb.go new file mode 100644 index 000000000..e8cb9bca5 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/campaign_feed_service.pb.go @@ -0,0 +1,547 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/campaign_feed_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" +import field_mask "google.golang.org/genproto/protobuf/field_mask" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [CampaignFeedService.GetCampaignFeed][google.ads.googleads.v0.services.CampaignFeedService.GetCampaignFeed]. +type GetCampaignFeedRequest struct { + // The resource name of the campaign feed to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetCampaignFeedRequest) Reset() { *m = GetCampaignFeedRequest{} } +func (m *GetCampaignFeedRequest) String() string { return proto.CompactTextString(m) } +func (*GetCampaignFeedRequest) ProtoMessage() {} +func (*GetCampaignFeedRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_feed_service_0c772cfa4dcff26c, []int{0} +} +func (m *GetCampaignFeedRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetCampaignFeedRequest.Unmarshal(m, b) +} +func (m *GetCampaignFeedRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetCampaignFeedRequest.Marshal(b, m, deterministic) +} +func (dst *GetCampaignFeedRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetCampaignFeedRequest.Merge(dst, src) +} +func (m *GetCampaignFeedRequest) XXX_Size() int { + return xxx_messageInfo_GetCampaignFeedRequest.Size(m) +} +func (m *GetCampaignFeedRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetCampaignFeedRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetCampaignFeedRequest proto.InternalMessageInfo + +func (m *GetCampaignFeedRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +// Request message for [CampaignFeedService.MutateCampaignFeeds][google.ads.googleads.v0.services.CampaignFeedService.MutateCampaignFeeds]. +type MutateCampaignFeedsRequest struct { + // The ID of the customer whose campaign feeds are being modified. + CustomerId string `protobuf:"bytes,1,opt,name=customer_id,json=customerId,proto3" json:"customer_id,omitempty"` + // The list of operations to perform on individual campaign feeds. + Operations []*CampaignFeedOperation `protobuf:"bytes,2,rep,name=operations,proto3" json:"operations,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateCampaignFeedsRequest) Reset() { *m = MutateCampaignFeedsRequest{} } +func (m *MutateCampaignFeedsRequest) String() string { return proto.CompactTextString(m) } +func (*MutateCampaignFeedsRequest) ProtoMessage() {} +func (*MutateCampaignFeedsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_feed_service_0c772cfa4dcff26c, []int{1} +} +func (m *MutateCampaignFeedsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateCampaignFeedsRequest.Unmarshal(m, b) +} +func (m *MutateCampaignFeedsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateCampaignFeedsRequest.Marshal(b, m, deterministic) +} +func (dst *MutateCampaignFeedsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateCampaignFeedsRequest.Merge(dst, src) +} +func (m *MutateCampaignFeedsRequest) XXX_Size() int { + return xxx_messageInfo_MutateCampaignFeedsRequest.Size(m) +} +func (m *MutateCampaignFeedsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_MutateCampaignFeedsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateCampaignFeedsRequest proto.InternalMessageInfo + +func (m *MutateCampaignFeedsRequest) GetCustomerId() string { + if m != nil { + return m.CustomerId + } + return "" +} + +func (m *MutateCampaignFeedsRequest) GetOperations() []*CampaignFeedOperation { + if m != nil { + return m.Operations + } + return nil +} + +// A single operation (create, update, remove) on a campaign feed. +type CampaignFeedOperation struct { + // FieldMask that determines which resource fields are modified in an update. + UpdateMask *field_mask.FieldMask `protobuf:"bytes,4,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // The mutate operation. + // + // Types that are valid to be assigned to Operation: + // *CampaignFeedOperation_Create + // *CampaignFeedOperation_Update + // *CampaignFeedOperation_Remove + Operation isCampaignFeedOperation_Operation `protobuf_oneof:"operation"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CampaignFeedOperation) Reset() { *m = CampaignFeedOperation{} } +func (m *CampaignFeedOperation) String() string { return proto.CompactTextString(m) } +func (*CampaignFeedOperation) ProtoMessage() {} +func (*CampaignFeedOperation) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_feed_service_0c772cfa4dcff26c, []int{2} +} +func (m *CampaignFeedOperation) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CampaignFeedOperation.Unmarshal(m, b) +} +func (m *CampaignFeedOperation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CampaignFeedOperation.Marshal(b, m, deterministic) +} +func (dst *CampaignFeedOperation) XXX_Merge(src proto.Message) { + xxx_messageInfo_CampaignFeedOperation.Merge(dst, src) +} +func (m *CampaignFeedOperation) XXX_Size() int { + return xxx_messageInfo_CampaignFeedOperation.Size(m) +} +func (m *CampaignFeedOperation) XXX_DiscardUnknown() { + xxx_messageInfo_CampaignFeedOperation.DiscardUnknown(m) +} + +var xxx_messageInfo_CampaignFeedOperation proto.InternalMessageInfo + +func (m *CampaignFeedOperation) GetUpdateMask() *field_mask.FieldMask { + if m != nil { + return m.UpdateMask + } + return nil +} + +type isCampaignFeedOperation_Operation interface { + isCampaignFeedOperation_Operation() +} + +type CampaignFeedOperation_Create struct { + Create *resources.CampaignFeed `protobuf:"bytes,1,opt,name=create,proto3,oneof"` +} + +type CampaignFeedOperation_Update struct { + Update *resources.CampaignFeed `protobuf:"bytes,2,opt,name=update,proto3,oneof"` +} + +type CampaignFeedOperation_Remove struct { + Remove string `protobuf:"bytes,3,opt,name=remove,proto3,oneof"` +} + +func (*CampaignFeedOperation_Create) isCampaignFeedOperation_Operation() {} + +func (*CampaignFeedOperation_Update) isCampaignFeedOperation_Operation() {} + +func (*CampaignFeedOperation_Remove) isCampaignFeedOperation_Operation() {} + +func (m *CampaignFeedOperation) GetOperation() isCampaignFeedOperation_Operation { + if m != nil { + return m.Operation + } + return nil +} + +func (m *CampaignFeedOperation) GetCreate() *resources.CampaignFeed { + if x, ok := m.GetOperation().(*CampaignFeedOperation_Create); ok { + return x.Create + } + return nil +} + +func (m *CampaignFeedOperation) GetUpdate() *resources.CampaignFeed { + if x, ok := m.GetOperation().(*CampaignFeedOperation_Update); ok { + return x.Update + } + return nil +} + +func (m *CampaignFeedOperation) GetRemove() string { + if x, ok := m.GetOperation().(*CampaignFeedOperation_Remove); ok { + return x.Remove + } + return "" +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*CampaignFeedOperation) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _CampaignFeedOperation_OneofMarshaler, _CampaignFeedOperation_OneofUnmarshaler, _CampaignFeedOperation_OneofSizer, []interface{}{ + (*CampaignFeedOperation_Create)(nil), + (*CampaignFeedOperation_Update)(nil), + (*CampaignFeedOperation_Remove)(nil), + } +} + +func _CampaignFeedOperation_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*CampaignFeedOperation) + // operation + switch x := m.Operation.(type) { + case *CampaignFeedOperation_Create: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Create); err != nil { + return err + } + case *CampaignFeedOperation_Update: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Update); err != nil { + return err + } + case *CampaignFeedOperation_Remove: + b.EncodeVarint(3<<3 | proto.WireBytes) + b.EncodeStringBytes(x.Remove) + case nil: + default: + return fmt.Errorf("CampaignFeedOperation.Operation has unexpected type %T", x) + } + return nil +} + +func _CampaignFeedOperation_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*CampaignFeedOperation) + switch tag { + case 1: // operation.create + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.CampaignFeed) + err := b.DecodeMessage(msg) + m.Operation = &CampaignFeedOperation_Create{msg} + return true, err + case 2: // operation.update + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.CampaignFeed) + err := b.DecodeMessage(msg) + m.Operation = &CampaignFeedOperation_Update{msg} + return true, err + case 3: // operation.remove + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Operation = &CampaignFeedOperation_Remove{x} + return true, err + default: + return false, nil + } +} + +func _CampaignFeedOperation_OneofSizer(msg proto.Message) (n int) { + m := msg.(*CampaignFeedOperation) + // operation + switch x := m.Operation.(type) { + case *CampaignFeedOperation_Create: + s := proto.Size(x.Create) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *CampaignFeedOperation_Update: + s := proto.Size(x.Update) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *CampaignFeedOperation_Remove: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(len(x.Remove))) + n += len(x.Remove) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// Response message for a campaign feed mutate. +type MutateCampaignFeedsResponse struct { + // All results for the mutate. + Results []*MutateCampaignFeedResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateCampaignFeedsResponse) Reset() { *m = MutateCampaignFeedsResponse{} } +func (m *MutateCampaignFeedsResponse) String() string { return proto.CompactTextString(m) } +func (*MutateCampaignFeedsResponse) ProtoMessage() {} +func (*MutateCampaignFeedsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_feed_service_0c772cfa4dcff26c, []int{3} +} +func (m *MutateCampaignFeedsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateCampaignFeedsResponse.Unmarshal(m, b) +} +func (m *MutateCampaignFeedsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateCampaignFeedsResponse.Marshal(b, m, deterministic) +} +func (dst *MutateCampaignFeedsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateCampaignFeedsResponse.Merge(dst, src) +} +func (m *MutateCampaignFeedsResponse) XXX_Size() int { + return xxx_messageInfo_MutateCampaignFeedsResponse.Size(m) +} +func (m *MutateCampaignFeedsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MutateCampaignFeedsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateCampaignFeedsResponse proto.InternalMessageInfo + +func (m *MutateCampaignFeedsResponse) GetResults() []*MutateCampaignFeedResult { + if m != nil { + return m.Results + } + return nil +} + +// The result for the campaign feed mutate. +type MutateCampaignFeedResult struct { + // Returned for successful operations. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateCampaignFeedResult) Reset() { *m = MutateCampaignFeedResult{} } +func (m *MutateCampaignFeedResult) String() string { return proto.CompactTextString(m) } +func (*MutateCampaignFeedResult) ProtoMessage() {} +func (*MutateCampaignFeedResult) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_feed_service_0c772cfa4dcff26c, []int{4} +} +func (m *MutateCampaignFeedResult) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateCampaignFeedResult.Unmarshal(m, b) +} +func (m *MutateCampaignFeedResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateCampaignFeedResult.Marshal(b, m, deterministic) +} +func (dst *MutateCampaignFeedResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateCampaignFeedResult.Merge(dst, src) +} +func (m *MutateCampaignFeedResult) XXX_Size() int { + return xxx_messageInfo_MutateCampaignFeedResult.Size(m) +} +func (m *MutateCampaignFeedResult) XXX_DiscardUnknown() { + xxx_messageInfo_MutateCampaignFeedResult.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateCampaignFeedResult proto.InternalMessageInfo + +func (m *MutateCampaignFeedResult) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetCampaignFeedRequest)(nil), "google.ads.googleads.v0.services.GetCampaignFeedRequest") + proto.RegisterType((*MutateCampaignFeedsRequest)(nil), "google.ads.googleads.v0.services.MutateCampaignFeedsRequest") + proto.RegisterType((*CampaignFeedOperation)(nil), "google.ads.googleads.v0.services.CampaignFeedOperation") + proto.RegisterType((*MutateCampaignFeedsResponse)(nil), "google.ads.googleads.v0.services.MutateCampaignFeedsResponse") + proto.RegisterType((*MutateCampaignFeedResult)(nil), "google.ads.googleads.v0.services.MutateCampaignFeedResult") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// CampaignFeedServiceClient is the client API for CampaignFeedService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type CampaignFeedServiceClient interface { + // Returns the requested campaign feed in full detail. + GetCampaignFeed(ctx context.Context, in *GetCampaignFeedRequest, opts ...grpc.CallOption) (*resources.CampaignFeed, error) + // Creates, updates, or removes campaign feeds. Operation statuses are + // returned. + MutateCampaignFeeds(ctx context.Context, in *MutateCampaignFeedsRequest, opts ...grpc.CallOption) (*MutateCampaignFeedsResponse, error) +} + +type campaignFeedServiceClient struct { + cc *grpc.ClientConn +} + +func NewCampaignFeedServiceClient(cc *grpc.ClientConn) CampaignFeedServiceClient { + return &campaignFeedServiceClient{cc} +} + +func (c *campaignFeedServiceClient) GetCampaignFeed(ctx context.Context, in *GetCampaignFeedRequest, opts ...grpc.CallOption) (*resources.CampaignFeed, error) { + out := new(resources.CampaignFeed) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.CampaignFeedService/GetCampaignFeed", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *campaignFeedServiceClient) MutateCampaignFeeds(ctx context.Context, in *MutateCampaignFeedsRequest, opts ...grpc.CallOption) (*MutateCampaignFeedsResponse, error) { + out := new(MutateCampaignFeedsResponse) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.CampaignFeedService/MutateCampaignFeeds", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// CampaignFeedServiceServer is the server API for CampaignFeedService service. +type CampaignFeedServiceServer interface { + // Returns the requested campaign feed in full detail. + GetCampaignFeed(context.Context, *GetCampaignFeedRequest) (*resources.CampaignFeed, error) + // Creates, updates, or removes campaign feeds. Operation statuses are + // returned. + MutateCampaignFeeds(context.Context, *MutateCampaignFeedsRequest) (*MutateCampaignFeedsResponse, error) +} + +func RegisterCampaignFeedServiceServer(s *grpc.Server, srv CampaignFeedServiceServer) { + s.RegisterService(&_CampaignFeedService_serviceDesc, srv) +} + +func _CampaignFeedService_GetCampaignFeed_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetCampaignFeedRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CampaignFeedServiceServer).GetCampaignFeed(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.CampaignFeedService/GetCampaignFeed", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CampaignFeedServiceServer).GetCampaignFeed(ctx, req.(*GetCampaignFeedRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CampaignFeedService_MutateCampaignFeeds_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MutateCampaignFeedsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CampaignFeedServiceServer).MutateCampaignFeeds(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.CampaignFeedService/MutateCampaignFeeds", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CampaignFeedServiceServer).MutateCampaignFeeds(ctx, req.(*MutateCampaignFeedsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _CampaignFeedService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.CampaignFeedService", + HandlerType: (*CampaignFeedServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetCampaignFeed", + Handler: _CampaignFeedService_GetCampaignFeed_Handler, + }, + { + MethodName: "MutateCampaignFeeds", + Handler: _CampaignFeedService_MutateCampaignFeeds_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/campaign_feed_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/campaign_feed_service.proto", fileDescriptor_campaign_feed_service_0c772cfa4dcff26c) +} + +var fileDescriptor_campaign_feed_service_0c772cfa4dcff26c = []byte{ + // 595 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x94, 0x41, 0x8b, 0xd3, 0x40, + 0x14, 0xc7, 0x4d, 0x2a, 0x2b, 0x3b, 0x51, 0x84, 0x59, 0x94, 0x10, 0x05, 0x4b, 0xf4, 0x50, 0x7a, + 0x98, 0xa9, 0x15, 0xa9, 0x74, 0xb7, 0x48, 0x2b, 0x6c, 0x77, 0x0f, 0xab, 0x4b, 0x94, 0x15, 0xa4, + 0x50, 0x66, 0x9b, 0xd7, 0x10, 0xb6, 0xc9, 0xc4, 0xcc, 0xa4, 0x97, 0x65, 0x2f, 0x7e, 0x03, 0x11, + 0xbc, 0xeb, 0xd1, 0xbb, 0x5f, 0xc2, 0x9b, 0x78, 0xf1, 0x03, 0xf8, 0x41, 0x24, 0x99, 0x4c, 0x6d, + 0xdd, 0x96, 0x6a, 0x6f, 0x2f, 0x93, 0xf7, 0x7e, 0xef, 0xcd, 0xff, 0xbd, 0x37, 0x68, 0x2f, 0xe0, + 0x3c, 0x98, 0x00, 0x65, 0xbe, 0xa0, 0xca, 0xcc, 0xad, 0x69, 0x83, 0x0a, 0x48, 0xa7, 0xe1, 0x08, + 0x04, 0x1d, 0xb1, 0x28, 0x61, 0x61, 0x10, 0x0f, 0xc7, 0x00, 0xfe, 0xb0, 0x3c, 0x26, 0x49, 0xca, + 0x25, 0xc7, 0x55, 0x15, 0x42, 0x98, 0x2f, 0xc8, 0x2c, 0x9a, 0x4c, 0x1b, 0x44, 0x47, 0x3b, 0x8f, + 0x57, 0xf1, 0x53, 0x10, 0x3c, 0x4b, 0x2f, 0x25, 0x50, 0x60, 0xe7, 0xae, 0x0e, 0x4b, 0x42, 0xca, + 0xe2, 0x98, 0x4b, 0x26, 0x43, 0x1e, 0x8b, 0xf2, 0x6f, 0x99, 0x96, 0x16, 0x5f, 0xa7, 0xd9, 0x98, + 0x8e, 0x43, 0x98, 0xf8, 0xc3, 0x88, 0x89, 0x33, 0xe5, 0xe1, 0x76, 0xd0, 0xed, 0x3e, 0xc8, 0x67, + 0x25, 0x79, 0x1f, 0xc0, 0xf7, 0xe0, 0x6d, 0x06, 0x42, 0xe2, 0xfb, 0xe8, 0x86, 0x4e, 0x3d, 0x8c, + 0x59, 0x04, 0xb6, 0x51, 0x35, 0x6a, 0xdb, 0xde, 0x75, 0x7d, 0xf8, 0x9c, 0x45, 0xe0, 0x7e, 0x34, + 0x90, 0x73, 0x94, 0x49, 0x26, 0x61, 0x1e, 0x21, 0x34, 0xe3, 0x1e, 0xb2, 0x46, 0x99, 0x90, 0x3c, + 0x82, 0x74, 0x18, 0xfa, 0x25, 0x01, 0xe9, 0xa3, 0x43, 0x1f, 0xbf, 0x46, 0x88, 0x27, 0x90, 0xaa, + 0xa2, 0x6d, 0xb3, 0x5a, 0xa9, 0x59, 0xcd, 0x16, 0x59, 0x27, 0x16, 0x99, 0x4f, 0xf6, 0x42, 0xc7, + 0x7b, 0x73, 0x28, 0xf7, 0xbd, 0x89, 0x6e, 0x2d, 0xf5, 0xc2, 0xbb, 0xc8, 0xca, 0x12, 0x9f, 0x49, + 0x28, 0x64, 0xb0, 0xaf, 0x56, 0x8d, 0x9a, 0xd5, 0x74, 0x74, 0x4e, 0xad, 0x14, 0xd9, 0xcf, 0x95, + 0x3a, 0x62, 0xe2, 0xcc, 0x43, 0xca, 0x3d, 0xb7, 0xf1, 0x21, 0xda, 0x1a, 0xa5, 0xc0, 0xa4, 0x52, + 0xc3, 0x6a, 0xd2, 0x95, 0xb5, 0xce, 0xda, 0xb6, 0x50, 0xec, 0xc1, 0x15, 0xaf, 0x04, 0xe4, 0x28, + 0x05, 0xb6, 0xcd, 0x8d, 0x51, 0x0a, 0x80, 0x6d, 0xb4, 0x95, 0x42, 0xc4, 0xa7, 0x60, 0x57, 0x72, + 0x85, 0xf3, 0x3f, 0xea, 0xbb, 0x67, 0xa1, 0xed, 0x99, 0x28, 0xae, 0x40, 0x77, 0x96, 0xf6, 0x4a, + 0x24, 0x3c, 0x16, 0x80, 0x5f, 0xa1, 0x6b, 0x29, 0x88, 0x6c, 0x22, 0x75, 0x23, 0xda, 0xeb, 0x1b, + 0x71, 0x99, 0xe7, 0x15, 0x08, 0x4f, 0xa3, 0xdc, 0xa7, 0xc8, 0x5e, 0xe5, 0xf4, 0x4f, 0x23, 0xd6, + 0xfc, 0x54, 0x41, 0x3b, 0xf3, 0xb1, 0x2f, 0x55, 0x6e, 0xfc, 0xd5, 0x40, 0x37, 0xff, 0x1a, 0x5d, + 0xfc, 0x64, 0x7d, 0xc5, 0xcb, 0xa7, 0xdd, 0xf9, 0x5f, 0xf5, 0xdd, 0xd6, 0xbb, 0x1f, 0xbf, 0x3e, + 0x98, 0x0f, 0x31, 0xcd, 0x77, 0xf4, 0x7c, 0xe1, 0x1a, 0x1d, 0x3d, 0xe0, 0x82, 0xd6, 0x67, 0x4b, + 0x5b, 0x68, 0x4d, 0xeb, 0x17, 0xf8, 0xbb, 0x81, 0x76, 0x96, 0xb4, 0x01, 0xef, 0x6d, 0xa2, 0xb6, + 0xde, 0x34, 0xa7, 0xb3, 0x61, 0xb4, 0xea, 0xbd, 0xdb, 0x29, 0x6e, 0xd3, 0x72, 0x9b, 0xf9, 0x6d, + 0xfe, 0x94, 0x7f, 0x3e, 0xb7, 0xbd, 0x9d, 0xfa, 0xc5, 0xe2, 0x65, 0xda, 0x51, 0x01, 0x6c, 0x1b, + 0xf5, 0xde, 0x4f, 0x03, 0x3d, 0x18, 0xf1, 0x68, 0x6d, 0x0d, 0x3d, 0x7b, 0x49, 0x27, 0x8f, 0xf3, + 0x95, 0x3b, 0x36, 0xde, 0x1c, 0x94, 0xd1, 0x01, 0x9f, 0xb0, 0x38, 0x20, 0x3c, 0x0d, 0x68, 0x00, + 0x71, 0xb1, 0x90, 0xfa, 0x45, 0x4c, 0x42, 0xb1, 0xfa, 0x01, 0xde, 0xd5, 0xc6, 0x67, 0xb3, 0xd2, + 0xef, 0x76, 0xbf, 0x98, 0xd5, 0xbe, 0x02, 0x76, 0x7d, 0x41, 0x94, 0x99, 0x5b, 0x27, 0x0d, 0x52, + 0x26, 0x16, 0xdf, 0xb4, 0xcb, 0xa0, 0xeb, 0x8b, 0xc1, 0xcc, 0x65, 0x70, 0xd2, 0x18, 0x68, 0x97, + 0xd3, 0xad, 0xa2, 0x80, 0x47, 0xbf, 0x03, 0x00, 0x00, 0xff, 0xff, 0x0d, 0xf8, 0x14, 0xa6, 0x00, + 0x06, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/campaign_group_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/campaign_group_service.pb.go new file mode 100644 index 000000000..2d4c1eac2 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/campaign_group_service.pb.go @@ -0,0 +1,547 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/campaign_group_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" +import field_mask "google.golang.org/genproto/protobuf/field_mask" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [CampaignGroupService.GetCampaignGroup][google.ads.googleads.v0.services.CampaignGroupService.GetCampaignGroup]. +type GetCampaignGroupRequest struct { + // The resource name of the campaign group to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetCampaignGroupRequest) Reset() { *m = GetCampaignGroupRequest{} } +func (m *GetCampaignGroupRequest) String() string { return proto.CompactTextString(m) } +func (*GetCampaignGroupRequest) ProtoMessage() {} +func (*GetCampaignGroupRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_group_service_c6f1b213514585b6, []int{0} +} +func (m *GetCampaignGroupRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetCampaignGroupRequest.Unmarshal(m, b) +} +func (m *GetCampaignGroupRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetCampaignGroupRequest.Marshal(b, m, deterministic) +} +func (dst *GetCampaignGroupRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetCampaignGroupRequest.Merge(dst, src) +} +func (m *GetCampaignGroupRequest) XXX_Size() int { + return xxx_messageInfo_GetCampaignGroupRequest.Size(m) +} +func (m *GetCampaignGroupRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetCampaignGroupRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetCampaignGroupRequest proto.InternalMessageInfo + +func (m *GetCampaignGroupRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +// Request message for [CampaignGroupService.MutateCampaignGroups][google.ads.googleads.v0.services.CampaignGroupService.MutateCampaignGroups]. +type MutateCampaignGroupsRequest struct { + // The ID of the customer whose campaign groups are being modified. + CustomerId string `protobuf:"bytes,1,opt,name=customer_id,json=customerId,proto3" json:"customer_id,omitempty"` + // The list of operations to perform on individual campaign groups. + Operations []*CampaignGroupOperation `protobuf:"bytes,2,rep,name=operations,proto3" json:"operations,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateCampaignGroupsRequest) Reset() { *m = MutateCampaignGroupsRequest{} } +func (m *MutateCampaignGroupsRequest) String() string { return proto.CompactTextString(m) } +func (*MutateCampaignGroupsRequest) ProtoMessage() {} +func (*MutateCampaignGroupsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_group_service_c6f1b213514585b6, []int{1} +} +func (m *MutateCampaignGroupsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateCampaignGroupsRequest.Unmarshal(m, b) +} +func (m *MutateCampaignGroupsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateCampaignGroupsRequest.Marshal(b, m, deterministic) +} +func (dst *MutateCampaignGroupsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateCampaignGroupsRequest.Merge(dst, src) +} +func (m *MutateCampaignGroupsRequest) XXX_Size() int { + return xxx_messageInfo_MutateCampaignGroupsRequest.Size(m) +} +func (m *MutateCampaignGroupsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_MutateCampaignGroupsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateCampaignGroupsRequest proto.InternalMessageInfo + +func (m *MutateCampaignGroupsRequest) GetCustomerId() string { + if m != nil { + return m.CustomerId + } + return "" +} + +func (m *MutateCampaignGroupsRequest) GetOperations() []*CampaignGroupOperation { + if m != nil { + return m.Operations + } + return nil +} + +// A single operation (create, update, remove) on a campaign group. +type CampaignGroupOperation struct { + // FieldMask that determines which resource fields are modified in an update. + UpdateMask *field_mask.FieldMask `protobuf:"bytes,4,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // The mutate operation. + // + // Types that are valid to be assigned to Operation: + // *CampaignGroupOperation_Create + // *CampaignGroupOperation_Update + // *CampaignGroupOperation_Remove + Operation isCampaignGroupOperation_Operation `protobuf_oneof:"operation"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CampaignGroupOperation) Reset() { *m = CampaignGroupOperation{} } +func (m *CampaignGroupOperation) String() string { return proto.CompactTextString(m) } +func (*CampaignGroupOperation) ProtoMessage() {} +func (*CampaignGroupOperation) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_group_service_c6f1b213514585b6, []int{2} +} +func (m *CampaignGroupOperation) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CampaignGroupOperation.Unmarshal(m, b) +} +func (m *CampaignGroupOperation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CampaignGroupOperation.Marshal(b, m, deterministic) +} +func (dst *CampaignGroupOperation) XXX_Merge(src proto.Message) { + xxx_messageInfo_CampaignGroupOperation.Merge(dst, src) +} +func (m *CampaignGroupOperation) XXX_Size() int { + return xxx_messageInfo_CampaignGroupOperation.Size(m) +} +func (m *CampaignGroupOperation) XXX_DiscardUnknown() { + xxx_messageInfo_CampaignGroupOperation.DiscardUnknown(m) +} + +var xxx_messageInfo_CampaignGroupOperation proto.InternalMessageInfo + +func (m *CampaignGroupOperation) GetUpdateMask() *field_mask.FieldMask { + if m != nil { + return m.UpdateMask + } + return nil +} + +type isCampaignGroupOperation_Operation interface { + isCampaignGroupOperation_Operation() +} + +type CampaignGroupOperation_Create struct { + Create *resources.CampaignGroup `protobuf:"bytes,1,opt,name=create,proto3,oneof"` +} + +type CampaignGroupOperation_Update struct { + Update *resources.CampaignGroup `protobuf:"bytes,2,opt,name=update,proto3,oneof"` +} + +type CampaignGroupOperation_Remove struct { + Remove string `protobuf:"bytes,3,opt,name=remove,proto3,oneof"` +} + +func (*CampaignGroupOperation_Create) isCampaignGroupOperation_Operation() {} + +func (*CampaignGroupOperation_Update) isCampaignGroupOperation_Operation() {} + +func (*CampaignGroupOperation_Remove) isCampaignGroupOperation_Operation() {} + +func (m *CampaignGroupOperation) GetOperation() isCampaignGroupOperation_Operation { + if m != nil { + return m.Operation + } + return nil +} + +func (m *CampaignGroupOperation) GetCreate() *resources.CampaignGroup { + if x, ok := m.GetOperation().(*CampaignGroupOperation_Create); ok { + return x.Create + } + return nil +} + +func (m *CampaignGroupOperation) GetUpdate() *resources.CampaignGroup { + if x, ok := m.GetOperation().(*CampaignGroupOperation_Update); ok { + return x.Update + } + return nil +} + +func (m *CampaignGroupOperation) GetRemove() string { + if x, ok := m.GetOperation().(*CampaignGroupOperation_Remove); ok { + return x.Remove + } + return "" +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*CampaignGroupOperation) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _CampaignGroupOperation_OneofMarshaler, _CampaignGroupOperation_OneofUnmarshaler, _CampaignGroupOperation_OneofSizer, []interface{}{ + (*CampaignGroupOperation_Create)(nil), + (*CampaignGroupOperation_Update)(nil), + (*CampaignGroupOperation_Remove)(nil), + } +} + +func _CampaignGroupOperation_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*CampaignGroupOperation) + // operation + switch x := m.Operation.(type) { + case *CampaignGroupOperation_Create: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Create); err != nil { + return err + } + case *CampaignGroupOperation_Update: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Update); err != nil { + return err + } + case *CampaignGroupOperation_Remove: + b.EncodeVarint(3<<3 | proto.WireBytes) + b.EncodeStringBytes(x.Remove) + case nil: + default: + return fmt.Errorf("CampaignGroupOperation.Operation has unexpected type %T", x) + } + return nil +} + +func _CampaignGroupOperation_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*CampaignGroupOperation) + switch tag { + case 1: // operation.create + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.CampaignGroup) + err := b.DecodeMessage(msg) + m.Operation = &CampaignGroupOperation_Create{msg} + return true, err + case 2: // operation.update + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.CampaignGroup) + err := b.DecodeMessage(msg) + m.Operation = &CampaignGroupOperation_Update{msg} + return true, err + case 3: // operation.remove + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Operation = &CampaignGroupOperation_Remove{x} + return true, err + default: + return false, nil + } +} + +func _CampaignGroupOperation_OneofSizer(msg proto.Message) (n int) { + m := msg.(*CampaignGroupOperation) + // operation + switch x := m.Operation.(type) { + case *CampaignGroupOperation_Create: + s := proto.Size(x.Create) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *CampaignGroupOperation_Update: + s := proto.Size(x.Update) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *CampaignGroupOperation_Remove: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(len(x.Remove))) + n += len(x.Remove) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// Response message for campaign group mutate. +type MutateCampaignGroupsResponse struct { + // All results for the mutate. + Results []*MutateCampaignGroupResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateCampaignGroupsResponse) Reset() { *m = MutateCampaignGroupsResponse{} } +func (m *MutateCampaignGroupsResponse) String() string { return proto.CompactTextString(m) } +func (*MutateCampaignGroupsResponse) ProtoMessage() {} +func (*MutateCampaignGroupsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_group_service_c6f1b213514585b6, []int{3} +} +func (m *MutateCampaignGroupsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateCampaignGroupsResponse.Unmarshal(m, b) +} +func (m *MutateCampaignGroupsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateCampaignGroupsResponse.Marshal(b, m, deterministic) +} +func (dst *MutateCampaignGroupsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateCampaignGroupsResponse.Merge(dst, src) +} +func (m *MutateCampaignGroupsResponse) XXX_Size() int { + return xxx_messageInfo_MutateCampaignGroupsResponse.Size(m) +} +func (m *MutateCampaignGroupsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MutateCampaignGroupsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateCampaignGroupsResponse proto.InternalMessageInfo + +func (m *MutateCampaignGroupsResponse) GetResults() []*MutateCampaignGroupResult { + if m != nil { + return m.Results + } + return nil +} + +// The result for the campaign group mutate. +type MutateCampaignGroupResult struct { + // Returned for successful operations. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateCampaignGroupResult) Reset() { *m = MutateCampaignGroupResult{} } +func (m *MutateCampaignGroupResult) String() string { return proto.CompactTextString(m) } +func (*MutateCampaignGroupResult) ProtoMessage() {} +func (*MutateCampaignGroupResult) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_group_service_c6f1b213514585b6, []int{4} +} +func (m *MutateCampaignGroupResult) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateCampaignGroupResult.Unmarshal(m, b) +} +func (m *MutateCampaignGroupResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateCampaignGroupResult.Marshal(b, m, deterministic) +} +func (dst *MutateCampaignGroupResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateCampaignGroupResult.Merge(dst, src) +} +func (m *MutateCampaignGroupResult) XXX_Size() int { + return xxx_messageInfo_MutateCampaignGroupResult.Size(m) +} +func (m *MutateCampaignGroupResult) XXX_DiscardUnknown() { + xxx_messageInfo_MutateCampaignGroupResult.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateCampaignGroupResult proto.InternalMessageInfo + +func (m *MutateCampaignGroupResult) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetCampaignGroupRequest)(nil), "google.ads.googleads.v0.services.GetCampaignGroupRequest") + proto.RegisterType((*MutateCampaignGroupsRequest)(nil), "google.ads.googleads.v0.services.MutateCampaignGroupsRequest") + proto.RegisterType((*CampaignGroupOperation)(nil), "google.ads.googleads.v0.services.CampaignGroupOperation") + proto.RegisterType((*MutateCampaignGroupsResponse)(nil), "google.ads.googleads.v0.services.MutateCampaignGroupsResponse") + proto.RegisterType((*MutateCampaignGroupResult)(nil), "google.ads.googleads.v0.services.MutateCampaignGroupResult") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// CampaignGroupServiceClient is the client API for CampaignGroupService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type CampaignGroupServiceClient interface { + // Returns the requested campaign group in full detail. + GetCampaignGroup(ctx context.Context, in *GetCampaignGroupRequest, opts ...grpc.CallOption) (*resources.CampaignGroup, error) + // Creates, updates, or removes campaign groups. Operation statuses are + // returned. + MutateCampaignGroups(ctx context.Context, in *MutateCampaignGroupsRequest, opts ...grpc.CallOption) (*MutateCampaignGroupsResponse, error) +} + +type campaignGroupServiceClient struct { + cc *grpc.ClientConn +} + +func NewCampaignGroupServiceClient(cc *grpc.ClientConn) CampaignGroupServiceClient { + return &campaignGroupServiceClient{cc} +} + +func (c *campaignGroupServiceClient) GetCampaignGroup(ctx context.Context, in *GetCampaignGroupRequest, opts ...grpc.CallOption) (*resources.CampaignGroup, error) { + out := new(resources.CampaignGroup) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.CampaignGroupService/GetCampaignGroup", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *campaignGroupServiceClient) MutateCampaignGroups(ctx context.Context, in *MutateCampaignGroupsRequest, opts ...grpc.CallOption) (*MutateCampaignGroupsResponse, error) { + out := new(MutateCampaignGroupsResponse) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.CampaignGroupService/MutateCampaignGroups", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// CampaignGroupServiceServer is the server API for CampaignGroupService service. +type CampaignGroupServiceServer interface { + // Returns the requested campaign group in full detail. + GetCampaignGroup(context.Context, *GetCampaignGroupRequest) (*resources.CampaignGroup, error) + // Creates, updates, or removes campaign groups. Operation statuses are + // returned. + MutateCampaignGroups(context.Context, *MutateCampaignGroupsRequest) (*MutateCampaignGroupsResponse, error) +} + +func RegisterCampaignGroupServiceServer(s *grpc.Server, srv CampaignGroupServiceServer) { + s.RegisterService(&_CampaignGroupService_serviceDesc, srv) +} + +func _CampaignGroupService_GetCampaignGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetCampaignGroupRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CampaignGroupServiceServer).GetCampaignGroup(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.CampaignGroupService/GetCampaignGroup", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CampaignGroupServiceServer).GetCampaignGroup(ctx, req.(*GetCampaignGroupRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CampaignGroupService_MutateCampaignGroups_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MutateCampaignGroupsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CampaignGroupServiceServer).MutateCampaignGroups(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.CampaignGroupService/MutateCampaignGroups", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CampaignGroupServiceServer).MutateCampaignGroups(ctx, req.(*MutateCampaignGroupsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _CampaignGroupService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.CampaignGroupService", + HandlerType: (*CampaignGroupServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetCampaignGroup", + Handler: _CampaignGroupService_GetCampaignGroup_Handler, + }, + { + MethodName: "MutateCampaignGroups", + Handler: _CampaignGroupService_MutateCampaignGroups_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/campaign_group_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/campaign_group_service.proto", fileDescriptor_campaign_group_service_c6f1b213514585b6) +} + +var fileDescriptor_campaign_group_service_c6f1b213514585b6 = []byte{ + // 597 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x94, 0x41, 0x8b, 0xd3, 0x40, + 0x14, 0xc7, 0x4d, 0x2a, 0x2b, 0xfb, 0xa2, 0x20, 0xc3, 0xa2, 0xd9, 0xba, 0x60, 0x89, 0x1e, 0x4a, + 0x0f, 0x49, 0xe8, 0x82, 0xd4, 0x2d, 0x2d, 0xb6, 0x82, 0x5d, 0x85, 0xd5, 0x25, 0xe2, 0x22, 0x52, + 0x28, 0xb3, 0xcd, 0x6c, 0x08, 0xdb, 0x64, 0xe2, 0xcc, 0xa4, 0x97, 0x65, 0x2f, 0x7e, 0x05, 0x3d, + 0x78, 0xf6, 0xb8, 0xdf, 0xc0, 0xaf, 0xe0, 0x55, 0x3c, 0x78, 0xf7, 0x83, 0xc8, 0x64, 0x32, 0x75, + 0xbb, 0xb6, 0x54, 0x7b, 0x7b, 0x49, 0xde, 0xfb, 0xbd, 0xf7, 0xfe, 0xef, 0xbd, 0x40, 0x27, 0xa2, + 0x34, 0x9a, 0x10, 0x0f, 0x87, 0xdc, 0x53, 0xa6, 0xb4, 0xa6, 0xbe, 0xc7, 0x09, 0x9b, 0xc6, 0x63, + 0xc2, 0xbd, 0x31, 0x4e, 0x32, 0x1c, 0x47, 0xe9, 0x28, 0x62, 0x34, 0xcf, 0x46, 0xe5, 0x7b, 0x37, + 0x63, 0x54, 0x50, 0x54, 0x53, 0x31, 0x2e, 0x0e, 0xb9, 0x3b, 0x0b, 0x77, 0xa7, 0xbe, 0xab, 0xc3, + 0xab, 0x8f, 0x96, 0x25, 0x60, 0x84, 0xd3, 0x9c, 0xfd, 0x9d, 0x41, 0x91, 0xab, 0x3b, 0x3a, 0x2e, + 0x8b, 0x3d, 0x9c, 0xa6, 0x54, 0x60, 0x11, 0xd3, 0x94, 0x97, 0x5f, 0xcb, 0xbc, 0x5e, 0xf1, 0x74, + 0x9c, 0x9f, 0x78, 0x27, 0x31, 0x99, 0x84, 0xa3, 0x04, 0xf3, 0x53, 0xe5, 0xe1, 0x74, 0xe1, 0xee, + 0x80, 0x88, 0xa7, 0x25, 0x7a, 0x20, 0xc9, 0x01, 0x79, 0x9f, 0x13, 0x2e, 0xd0, 0x03, 0xb8, 0xa5, + 0x93, 0x8f, 0x52, 0x9c, 0x10, 0xdb, 0xa8, 0x19, 0xf5, 0xcd, 0xe0, 0xa6, 0x7e, 0xf9, 0x12, 0x27, + 0xc4, 0xf9, 0x6c, 0xc0, 0xbd, 0x83, 0x5c, 0x60, 0x41, 0xe6, 0x18, 0x5c, 0x43, 0xee, 0x83, 0x35, + 0xce, 0xb9, 0xa0, 0x09, 0x61, 0xa3, 0x38, 0x2c, 0x11, 0xa0, 0x5f, 0x3d, 0x0f, 0xd1, 0x5b, 0x00, + 0x9a, 0x11, 0xa6, 0xca, 0xb6, 0xcd, 0x5a, 0xa5, 0x6e, 0x35, 0x5b, 0xee, 0x2a, 0xbd, 0xdc, 0xb9, + 0x6c, 0xaf, 0x34, 0x20, 0xb8, 0xc4, 0x72, 0x3e, 0x99, 0x70, 0x67, 0xb1, 0x1b, 0x6a, 0x83, 0x95, + 0x67, 0x21, 0x16, 0xa4, 0x90, 0xc2, 0xbe, 0x5e, 0x33, 0xea, 0x56, 0xb3, 0xaa, 0xb3, 0x6a, 0xb5, + 0xdc, 0x67, 0x52, 0xad, 0x03, 0xcc, 0x4f, 0x03, 0x50, 0xee, 0xd2, 0x46, 0x2f, 0x60, 0x63, 0xcc, + 0x08, 0x16, 0x4a, 0x10, 0xab, 0xe9, 0x2f, 0xad, 0x76, 0x36, 0xbb, 0xf9, 0x72, 0xf7, 0xaf, 0x05, + 0x25, 0x41, 0xb2, 0x14, 0xd9, 0x36, 0xd7, 0x67, 0x29, 0x02, 0xb2, 0x61, 0x83, 0x91, 0x84, 0x4e, + 0x89, 0x5d, 0x91, 0x2a, 0xcb, 0x2f, 0xea, 0xb9, 0x6f, 0xc1, 0xe6, 0x4c, 0x17, 0x27, 0x87, 0x9d, + 0xc5, 0x03, 0xe3, 0x19, 0x4d, 0x39, 0x41, 0x6f, 0xe0, 0x06, 0x23, 0x3c, 0x9f, 0x08, 0x3d, 0x8d, + 0xf6, 0xea, 0x69, 0x2c, 0x00, 0x06, 0x05, 0x23, 0xd0, 0x2c, 0xe7, 0x09, 0x6c, 0x2f, 0xf5, 0xfa, + 0xa7, 0x55, 0x6b, 0x5e, 0x54, 0x60, 0x6b, 0x2e, 0xf8, 0xb5, 0x4a, 0x8f, 0xbe, 0x1a, 0x70, 0xfb, + 0xea, 0x12, 0xa3, 0xc7, 0xab, 0xab, 0x5e, 0xb2, 0xf8, 0xd5, 0xff, 0x1e, 0x82, 0xd3, 0xfa, 0xf0, + 0xfd, 0xd7, 0x47, 0xb3, 0x89, 0x7c, 0x79, 0xb1, 0x67, 0x73, 0xad, 0x74, 0xf4, 0xae, 0x73, 0xaf, + 0x31, 0x3b, 0x61, 0x25, 0xb9, 0xd7, 0x38, 0x47, 0x3f, 0x0c, 0xd8, 0x5a, 0x34, 0x0e, 0xd4, 0x59, + 0x4b, 0x75, 0x7d, 0x77, 0xd5, 0xee, 0xba, 0xe1, 0x6a, 0x0b, 0x9c, 0x6e, 0xd1, 0x51, 0xcb, 0xd9, + 0x95, 0x1d, 0xfd, 0x69, 0xe1, 0xec, 0xd2, 0x31, 0x77, 0x1a, 0xe7, 0x57, 0x1a, 0xda, 0x4b, 0x0a, + 0xe4, 0x9e, 0xd1, 0xe8, 0xff, 0x34, 0xe0, 0xe1, 0x98, 0x26, 0x2b, 0xab, 0xe8, 0x6f, 0x2f, 0x1a, + 0xe9, 0xa1, 0xbc, 0xc0, 0x43, 0xe3, 0xdd, 0x7e, 0x19, 0x1e, 0xd1, 0x09, 0x4e, 0x23, 0x97, 0xb2, + 0xc8, 0x8b, 0x48, 0x5a, 0xdc, 0xa7, 0xfe, 0x4b, 0x66, 0x31, 0x5f, 0xfe, 0x57, 0x6e, 0x6b, 0xe3, + 0x8b, 0x59, 0x19, 0xf4, 0x7a, 0x17, 0x66, 0x6d, 0xa0, 0x80, 0xbd, 0x90, 0xbb, 0xca, 0x94, 0xd6, + 0x91, 0xef, 0x96, 0x89, 0xf9, 0x37, 0xed, 0x32, 0xec, 0x85, 0x7c, 0x38, 0x73, 0x19, 0x1e, 0xf9, + 0x43, 0xed, 0x72, 0xbc, 0x51, 0x14, 0xb0, 0xfb, 0x3b, 0x00, 0x00, 0xff, 0xff, 0x61, 0x8d, 0x4c, + 0x3f, 0x15, 0x06, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/campaign_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/campaign_service.pb.go new file mode 100644 index 000000000..3a7c0fde8 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/campaign_service.pb.go @@ -0,0 +1,544 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/campaign_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" +import field_mask "google.golang.org/genproto/protobuf/field_mask" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [CampaignService.GetCampaign][google.ads.googleads.v0.services.CampaignService.GetCampaign]. +type GetCampaignRequest struct { + // The resource name of the campaign to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetCampaignRequest) Reset() { *m = GetCampaignRequest{} } +func (m *GetCampaignRequest) String() string { return proto.CompactTextString(m) } +func (*GetCampaignRequest) ProtoMessage() {} +func (*GetCampaignRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_service_d0bd40746319e2f2, []int{0} +} +func (m *GetCampaignRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetCampaignRequest.Unmarshal(m, b) +} +func (m *GetCampaignRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetCampaignRequest.Marshal(b, m, deterministic) +} +func (dst *GetCampaignRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetCampaignRequest.Merge(dst, src) +} +func (m *GetCampaignRequest) XXX_Size() int { + return xxx_messageInfo_GetCampaignRequest.Size(m) +} +func (m *GetCampaignRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetCampaignRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetCampaignRequest proto.InternalMessageInfo + +func (m *GetCampaignRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +// Request message for [CampaignService.MutateCampaigns][google.ads.googleads.v0.services.CampaignService.MutateCampaigns]. +type MutateCampaignsRequest struct { + // The ID of the customer whose campaigns are being modified. + CustomerId string `protobuf:"bytes,1,opt,name=customer_id,json=customerId,proto3" json:"customer_id,omitempty"` + // The list of operations to perform on individual campaigns. + Operations []*CampaignOperation `protobuf:"bytes,2,rep,name=operations,proto3" json:"operations,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateCampaignsRequest) Reset() { *m = MutateCampaignsRequest{} } +func (m *MutateCampaignsRequest) String() string { return proto.CompactTextString(m) } +func (*MutateCampaignsRequest) ProtoMessage() {} +func (*MutateCampaignsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_service_d0bd40746319e2f2, []int{1} +} +func (m *MutateCampaignsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateCampaignsRequest.Unmarshal(m, b) +} +func (m *MutateCampaignsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateCampaignsRequest.Marshal(b, m, deterministic) +} +func (dst *MutateCampaignsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateCampaignsRequest.Merge(dst, src) +} +func (m *MutateCampaignsRequest) XXX_Size() int { + return xxx_messageInfo_MutateCampaignsRequest.Size(m) +} +func (m *MutateCampaignsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_MutateCampaignsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateCampaignsRequest proto.InternalMessageInfo + +func (m *MutateCampaignsRequest) GetCustomerId() string { + if m != nil { + return m.CustomerId + } + return "" +} + +func (m *MutateCampaignsRequest) GetOperations() []*CampaignOperation { + if m != nil { + return m.Operations + } + return nil +} + +// A single operation (create, update, remove) on a campaign. +type CampaignOperation struct { + // FieldMask that determines which resource fields are modified in an update. + UpdateMask *field_mask.FieldMask `protobuf:"bytes,4,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // The mutate operation. + // + // Types that are valid to be assigned to Operation: + // *CampaignOperation_Create + // *CampaignOperation_Update + // *CampaignOperation_Remove + Operation isCampaignOperation_Operation `protobuf_oneof:"operation"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CampaignOperation) Reset() { *m = CampaignOperation{} } +func (m *CampaignOperation) String() string { return proto.CompactTextString(m) } +func (*CampaignOperation) ProtoMessage() {} +func (*CampaignOperation) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_service_d0bd40746319e2f2, []int{2} +} +func (m *CampaignOperation) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CampaignOperation.Unmarshal(m, b) +} +func (m *CampaignOperation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CampaignOperation.Marshal(b, m, deterministic) +} +func (dst *CampaignOperation) XXX_Merge(src proto.Message) { + xxx_messageInfo_CampaignOperation.Merge(dst, src) +} +func (m *CampaignOperation) XXX_Size() int { + return xxx_messageInfo_CampaignOperation.Size(m) +} +func (m *CampaignOperation) XXX_DiscardUnknown() { + xxx_messageInfo_CampaignOperation.DiscardUnknown(m) +} + +var xxx_messageInfo_CampaignOperation proto.InternalMessageInfo + +func (m *CampaignOperation) GetUpdateMask() *field_mask.FieldMask { + if m != nil { + return m.UpdateMask + } + return nil +} + +type isCampaignOperation_Operation interface { + isCampaignOperation_Operation() +} + +type CampaignOperation_Create struct { + Create *resources.Campaign `protobuf:"bytes,1,opt,name=create,proto3,oneof"` +} + +type CampaignOperation_Update struct { + Update *resources.Campaign `protobuf:"bytes,2,opt,name=update,proto3,oneof"` +} + +type CampaignOperation_Remove struct { + Remove string `protobuf:"bytes,3,opt,name=remove,proto3,oneof"` +} + +func (*CampaignOperation_Create) isCampaignOperation_Operation() {} + +func (*CampaignOperation_Update) isCampaignOperation_Operation() {} + +func (*CampaignOperation_Remove) isCampaignOperation_Operation() {} + +func (m *CampaignOperation) GetOperation() isCampaignOperation_Operation { + if m != nil { + return m.Operation + } + return nil +} + +func (m *CampaignOperation) GetCreate() *resources.Campaign { + if x, ok := m.GetOperation().(*CampaignOperation_Create); ok { + return x.Create + } + return nil +} + +func (m *CampaignOperation) GetUpdate() *resources.Campaign { + if x, ok := m.GetOperation().(*CampaignOperation_Update); ok { + return x.Update + } + return nil +} + +func (m *CampaignOperation) GetRemove() string { + if x, ok := m.GetOperation().(*CampaignOperation_Remove); ok { + return x.Remove + } + return "" +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*CampaignOperation) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _CampaignOperation_OneofMarshaler, _CampaignOperation_OneofUnmarshaler, _CampaignOperation_OneofSizer, []interface{}{ + (*CampaignOperation_Create)(nil), + (*CampaignOperation_Update)(nil), + (*CampaignOperation_Remove)(nil), + } +} + +func _CampaignOperation_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*CampaignOperation) + // operation + switch x := m.Operation.(type) { + case *CampaignOperation_Create: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Create); err != nil { + return err + } + case *CampaignOperation_Update: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Update); err != nil { + return err + } + case *CampaignOperation_Remove: + b.EncodeVarint(3<<3 | proto.WireBytes) + b.EncodeStringBytes(x.Remove) + case nil: + default: + return fmt.Errorf("CampaignOperation.Operation has unexpected type %T", x) + } + return nil +} + +func _CampaignOperation_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*CampaignOperation) + switch tag { + case 1: // operation.create + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.Campaign) + err := b.DecodeMessage(msg) + m.Operation = &CampaignOperation_Create{msg} + return true, err + case 2: // operation.update + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.Campaign) + err := b.DecodeMessage(msg) + m.Operation = &CampaignOperation_Update{msg} + return true, err + case 3: // operation.remove + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Operation = &CampaignOperation_Remove{x} + return true, err + default: + return false, nil + } +} + +func _CampaignOperation_OneofSizer(msg proto.Message) (n int) { + m := msg.(*CampaignOperation) + // operation + switch x := m.Operation.(type) { + case *CampaignOperation_Create: + s := proto.Size(x.Create) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *CampaignOperation_Update: + s := proto.Size(x.Update) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *CampaignOperation_Remove: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(len(x.Remove))) + n += len(x.Remove) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// Response message for campaign mutate. +type MutateCampaignsResponse struct { + // All results for the mutate. + Results []*MutateCampaignResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateCampaignsResponse) Reset() { *m = MutateCampaignsResponse{} } +func (m *MutateCampaignsResponse) String() string { return proto.CompactTextString(m) } +func (*MutateCampaignsResponse) ProtoMessage() {} +func (*MutateCampaignsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_service_d0bd40746319e2f2, []int{3} +} +func (m *MutateCampaignsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateCampaignsResponse.Unmarshal(m, b) +} +func (m *MutateCampaignsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateCampaignsResponse.Marshal(b, m, deterministic) +} +func (dst *MutateCampaignsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateCampaignsResponse.Merge(dst, src) +} +func (m *MutateCampaignsResponse) XXX_Size() int { + return xxx_messageInfo_MutateCampaignsResponse.Size(m) +} +func (m *MutateCampaignsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MutateCampaignsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateCampaignsResponse proto.InternalMessageInfo + +func (m *MutateCampaignsResponse) GetResults() []*MutateCampaignResult { + if m != nil { + return m.Results + } + return nil +} + +// The result for the campaign mutate. +type MutateCampaignResult struct { + // Returned for successful operations. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateCampaignResult) Reset() { *m = MutateCampaignResult{} } +func (m *MutateCampaignResult) String() string { return proto.CompactTextString(m) } +func (*MutateCampaignResult) ProtoMessage() {} +func (*MutateCampaignResult) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_service_d0bd40746319e2f2, []int{4} +} +func (m *MutateCampaignResult) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateCampaignResult.Unmarshal(m, b) +} +func (m *MutateCampaignResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateCampaignResult.Marshal(b, m, deterministic) +} +func (dst *MutateCampaignResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateCampaignResult.Merge(dst, src) +} +func (m *MutateCampaignResult) XXX_Size() int { + return xxx_messageInfo_MutateCampaignResult.Size(m) +} +func (m *MutateCampaignResult) XXX_DiscardUnknown() { + xxx_messageInfo_MutateCampaignResult.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateCampaignResult proto.InternalMessageInfo + +func (m *MutateCampaignResult) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetCampaignRequest)(nil), "google.ads.googleads.v0.services.GetCampaignRequest") + proto.RegisterType((*MutateCampaignsRequest)(nil), "google.ads.googleads.v0.services.MutateCampaignsRequest") + proto.RegisterType((*CampaignOperation)(nil), "google.ads.googleads.v0.services.CampaignOperation") + proto.RegisterType((*MutateCampaignsResponse)(nil), "google.ads.googleads.v0.services.MutateCampaignsResponse") + proto.RegisterType((*MutateCampaignResult)(nil), "google.ads.googleads.v0.services.MutateCampaignResult") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// CampaignServiceClient is the client API for CampaignService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type CampaignServiceClient interface { + // Returns the requested campaign in full detail. + GetCampaign(ctx context.Context, in *GetCampaignRequest, opts ...grpc.CallOption) (*resources.Campaign, error) + // Creates, updates, or removes campaigns. Operation statuses are returned. + MutateCampaigns(ctx context.Context, in *MutateCampaignsRequest, opts ...grpc.CallOption) (*MutateCampaignsResponse, error) +} + +type campaignServiceClient struct { + cc *grpc.ClientConn +} + +func NewCampaignServiceClient(cc *grpc.ClientConn) CampaignServiceClient { + return &campaignServiceClient{cc} +} + +func (c *campaignServiceClient) GetCampaign(ctx context.Context, in *GetCampaignRequest, opts ...grpc.CallOption) (*resources.Campaign, error) { + out := new(resources.Campaign) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.CampaignService/GetCampaign", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *campaignServiceClient) MutateCampaigns(ctx context.Context, in *MutateCampaignsRequest, opts ...grpc.CallOption) (*MutateCampaignsResponse, error) { + out := new(MutateCampaignsResponse) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.CampaignService/MutateCampaigns", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// CampaignServiceServer is the server API for CampaignService service. +type CampaignServiceServer interface { + // Returns the requested campaign in full detail. + GetCampaign(context.Context, *GetCampaignRequest) (*resources.Campaign, error) + // Creates, updates, or removes campaigns. Operation statuses are returned. + MutateCampaigns(context.Context, *MutateCampaignsRequest) (*MutateCampaignsResponse, error) +} + +func RegisterCampaignServiceServer(s *grpc.Server, srv CampaignServiceServer) { + s.RegisterService(&_CampaignService_serviceDesc, srv) +} + +func _CampaignService_GetCampaign_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetCampaignRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CampaignServiceServer).GetCampaign(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.CampaignService/GetCampaign", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CampaignServiceServer).GetCampaign(ctx, req.(*GetCampaignRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CampaignService_MutateCampaigns_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MutateCampaignsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CampaignServiceServer).MutateCampaigns(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.CampaignService/MutateCampaigns", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CampaignServiceServer).MutateCampaigns(ctx, req.(*MutateCampaignsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _CampaignService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.CampaignService", + HandlerType: (*CampaignServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetCampaign", + Handler: _CampaignService_GetCampaign_Handler, + }, + { + MethodName: "MutateCampaigns", + Handler: _CampaignService_MutateCampaigns_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/campaign_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/campaign_service.proto", fileDescriptor_campaign_service_d0bd40746319e2f2) +} + +var fileDescriptor_campaign_service_d0bd40746319e2f2 = []byte{ + // 585 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x54, 0x41, 0x8b, 0xd3, 0x40, + 0x14, 0x36, 0xa9, 0x54, 0xf6, 0x45, 0x59, 0x1c, 0x16, 0x0d, 0x45, 0xb0, 0x44, 0x0f, 0xa5, 0x8b, + 0x93, 0xd2, 0x8a, 0xda, 0x2d, 0x7b, 0x68, 0x45, 0xbb, 0x1e, 0x56, 0x4b, 0x16, 0xf6, 0x20, 0x85, + 0x32, 0x9b, 0xcc, 0x86, 0xd0, 0x26, 0x13, 0x33, 0x93, 0x5e, 0x96, 0xbd, 0x08, 0x5e, 0xbd, 0xf8, + 0x0f, 0x04, 0x2f, 0xfe, 0x0b, 0xaf, 0x5e, 0xf5, 0x27, 0xf8, 0x37, 0x04, 0x49, 0x26, 0x93, 0xed, + 0x6e, 0x2d, 0xdd, 0xdd, 0xdb, 0xcb, 0xe4, 0xfb, 0xbe, 0xf7, 0xe5, 0x9b, 0xf7, 0x02, 0xcf, 0x7d, + 0xc6, 0xfc, 0x19, 0xb5, 0x89, 0xc7, 0x6d, 0x59, 0x66, 0xd5, 0xbc, 0x65, 0x73, 0x9a, 0xcc, 0x03, + 0x97, 0x72, 0xdb, 0x25, 0x61, 0x4c, 0x02, 0x3f, 0x9a, 0x14, 0x27, 0x38, 0x4e, 0x98, 0x60, 0xa8, + 0x2e, 0xd1, 0x98, 0x78, 0x1c, 0x97, 0x44, 0x3c, 0x6f, 0x61, 0x45, 0xac, 0xb5, 0x56, 0x49, 0x27, + 0x94, 0xb3, 0x34, 0x59, 0xd4, 0x96, 0x9a, 0xb5, 0x07, 0x8a, 0x11, 0x07, 0x36, 0x89, 0x22, 0x26, + 0x88, 0x08, 0x58, 0xc4, 0x8b, 0xb7, 0x45, 0x47, 0x3b, 0x7f, 0x3a, 0x4a, 0x8f, 0xed, 0xe3, 0x80, + 0xce, 0xbc, 0x49, 0x48, 0xf8, 0x54, 0x22, 0xac, 0x2e, 0xa0, 0x21, 0x15, 0x2f, 0x0b, 0x51, 0x87, + 0x7e, 0x48, 0x29, 0x17, 0xe8, 0x11, 0xdc, 0x51, 0x1d, 0x27, 0x11, 0x09, 0xa9, 0xa9, 0xd5, 0xb5, + 0xc6, 0x86, 0x73, 0x5b, 0x1d, 0xbe, 0x25, 0x21, 0xb5, 0x3e, 0x6b, 0x70, 0x6f, 0x3f, 0x15, 0x44, + 0x50, 0x45, 0xe7, 0x8a, 0xff, 0x10, 0x0c, 0x37, 0xe5, 0x82, 0x85, 0x34, 0x99, 0x04, 0x5e, 0xc1, + 0x06, 0x75, 0xf4, 0xc6, 0x43, 0x07, 0x00, 0x2c, 0xa6, 0x89, 0x34, 0x6b, 0xea, 0xf5, 0x4a, 0xc3, + 0x68, 0x77, 0xf0, 0xba, 0x7c, 0xb0, 0x6a, 0xf4, 0x4e, 0x71, 0x9d, 0x05, 0x19, 0xeb, 0x93, 0x0e, + 0x77, 0x97, 0x10, 0xa8, 0x07, 0x46, 0x1a, 0x7b, 0x44, 0xd0, 0xfc, 0xb3, 0xcd, 0x9b, 0x75, 0xad, + 0x61, 0xb4, 0x6b, 0xaa, 0x97, 0x4a, 0x06, 0xbf, 0xce, 0x92, 0xd9, 0x27, 0x7c, 0xea, 0x80, 0x84, + 0x67, 0x35, 0x7a, 0x05, 0x55, 0x37, 0xa1, 0x44, 0xc8, 0x04, 0x8c, 0xf6, 0xf6, 0x4a, 0x8f, 0xe5, + 0x0d, 0x95, 0x26, 0xf7, 0x6e, 0x38, 0x05, 0x39, 0x93, 0x91, 0xa2, 0xa6, 0x7e, 0x2d, 0x19, 0x49, + 0x46, 0x26, 0x54, 0x13, 0x1a, 0xb2, 0x39, 0x35, 0x2b, 0x59, 0xa2, 0xd9, 0x1b, 0xf9, 0x3c, 0x30, + 0x60, 0xa3, 0x0c, 0xc2, 0x9a, 0xc2, 0xfd, 0xa5, 0x7b, 0xe1, 0x31, 0x8b, 0x38, 0x45, 0x23, 0xb8, + 0x95, 0x50, 0x9e, 0xce, 0x84, 0x0a, 0xfd, 0xd9, 0xfa, 0xd0, 0xcf, 0x6b, 0x39, 0x39, 0xdd, 0x51, + 0x32, 0x56, 0x0f, 0xb6, 0xfe, 0x07, 0xb8, 0xd4, 0x08, 0xb5, 0xff, 0xea, 0xb0, 0xa9, 0x78, 0x07, + 0xb2, 0x1f, 0xfa, 0xa6, 0x81, 0xb1, 0x30, 0x92, 0xe8, 0xe9, 0x7a, 0x87, 0xcb, 0x13, 0x5c, 0xbb, + 0x4a, 0xc2, 0x56, 0xe7, 0xe3, 0xaf, 0x3f, 0x5f, 0xf4, 0x27, 0x68, 0x3b, 0x5b, 0xb5, 0x93, 0x73, + 0xb6, 0x77, 0xd5, 0xd0, 0x72, 0xbb, 0x59, 0xee, 0x1e, 0xb7, 0x9b, 0xa7, 0xe8, 0x87, 0x06, 0x9b, + 0x17, 0x62, 0x46, 0x2f, 0xae, 0x9a, 0xa6, 0xda, 0x98, 0x5a, 0xf7, 0x1a, 0x4c, 0x79, 0xa7, 0x56, + 0x37, 0x77, 0xdf, 0xb1, 0x70, 0xe6, 0xfe, 0xcc, 0xee, 0xc9, 0xc2, 0x06, 0xee, 0x36, 0x4f, 0xcf, + 0xcc, 0xef, 0x84, 0xb9, 0xd0, 0x8e, 0xd6, 0x1c, 0xfc, 0xd6, 0xe0, 0xb1, 0xcb, 0xc2, 0xb5, 0xbd, + 0x07, 0x5b, 0x17, 0x6e, 0x69, 0x94, 0xad, 0xcd, 0x48, 0x7b, 0xbf, 0x57, 0x30, 0x7d, 0x36, 0x23, + 0x91, 0x8f, 0x59, 0xe2, 0xdb, 0x3e, 0x8d, 0xf2, 0xa5, 0x52, 0x3f, 0xb0, 0x38, 0xe0, 0xab, 0x7f, + 0x95, 0x3d, 0x55, 0x7c, 0xd5, 0x2b, 0xc3, 0x7e, 0xff, 0xbb, 0x5e, 0x1f, 0x4a, 0xc1, 0xbe, 0xc7, + 0xb1, 0x2c, 0xb3, 0xea, 0xb0, 0x85, 0x8b, 0xc6, 0xfc, 0xa7, 0x82, 0x8c, 0xfb, 0x1e, 0x1f, 0x97, + 0x90, 0xf1, 0x61, 0x6b, 0xac, 0x20, 0x47, 0xd5, 0xdc, 0x40, 0xe7, 0x5f, 0x00, 0x00, 0x00, 0xff, + 0xff, 0x2c, 0x6a, 0xa9, 0xd9, 0xaa, 0x05, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/campaign_shared_set_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/campaign_shared_set_service.pb.go new file mode 100644 index 000000000..cdab53cb0 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/campaign_shared_set_service.pb.go @@ -0,0 +1,498 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/campaign_shared_set_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [CampaignSharedSetService.GetCampaignSharedSet][google.ads.googleads.v0.services.CampaignSharedSetService.GetCampaignSharedSet]. +type GetCampaignSharedSetRequest struct { + // The resource name of the campaign shared set to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetCampaignSharedSetRequest) Reset() { *m = GetCampaignSharedSetRequest{} } +func (m *GetCampaignSharedSetRequest) String() string { return proto.CompactTextString(m) } +func (*GetCampaignSharedSetRequest) ProtoMessage() {} +func (*GetCampaignSharedSetRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_shared_set_service_e990dcd14e355acc, []int{0} +} +func (m *GetCampaignSharedSetRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetCampaignSharedSetRequest.Unmarshal(m, b) +} +func (m *GetCampaignSharedSetRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetCampaignSharedSetRequest.Marshal(b, m, deterministic) +} +func (dst *GetCampaignSharedSetRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetCampaignSharedSetRequest.Merge(dst, src) +} +func (m *GetCampaignSharedSetRequest) XXX_Size() int { + return xxx_messageInfo_GetCampaignSharedSetRequest.Size(m) +} +func (m *GetCampaignSharedSetRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetCampaignSharedSetRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetCampaignSharedSetRequest proto.InternalMessageInfo + +func (m *GetCampaignSharedSetRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +// Request message for [CampaignSharedSetService.MutateCampaignSharedSets][google.ads.googleads.v0.services.CampaignSharedSetService.MutateCampaignSharedSets]. +type MutateCampaignSharedSetsRequest struct { + // The ID of the customer whose campaign shared sets are being modified. + CustomerId string `protobuf:"bytes,1,opt,name=customer_id,json=customerId,proto3" json:"customer_id,omitempty"` + // The list of operations to perform on individual campaign shared sets. + Operations []*CampaignSharedSetOperation `protobuf:"bytes,2,rep,name=operations,proto3" json:"operations,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateCampaignSharedSetsRequest) Reset() { *m = MutateCampaignSharedSetsRequest{} } +func (m *MutateCampaignSharedSetsRequest) String() string { return proto.CompactTextString(m) } +func (*MutateCampaignSharedSetsRequest) ProtoMessage() {} +func (*MutateCampaignSharedSetsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_shared_set_service_e990dcd14e355acc, []int{1} +} +func (m *MutateCampaignSharedSetsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateCampaignSharedSetsRequest.Unmarshal(m, b) +} +func (m *MutateCampaignSharedSetsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateCampaignSharedSetsRequest.Marshal(b, m, deterministic) +} +func (dst *MutateCampaignSharedSetsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateCampaignSharedSetsRequest.Merge(dst, src) +} +func (m *MutateCampaignSharedSetsRequest) XXX_Size() int { + return xxx_messageInfo_MutateCampaignSharedSetsRequest.Size(m) +} +func (m *MutateCampaignSharedSetsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_MutateCampaignSharedSetsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateCampaignSharedSetsRequest proto.InternalMessageInfo + +func (m *MutateCampaignSharedSetsRequest) GetCustomerId() string { + if m != nil { + return m.CustomerId + } + return "" +} + +func (m *MutateCampaignSharedSetsRequest) GetOperations() []*CampaignSharedSetOperation { + if m != nil { + return m.Operations + } + return nil +} + +// A single operation (create, remove) on an campaign shared set. +type CampaignSharedSetOperation struct { + // The mutate operation. + // + // Types that are valid to be assigned to Operation: + // *CampaignSharedSetOperation_Create + // *CampaignSharedSetOperation_Remove + Operation isCampaignSharedSetOperation_Operation `protobuf_oneof:"operation"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CampaignSharedSetOperation) Reset() { *m = CampaignSharedSetOperation{} } +func (m *CampaignSharedSetOperation) String() string { return proto.CompactTextString(m) } +func (*CampaignSharedSetOperation) ProtoMessage() {} +func (*CampaignSharedSetOperation) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_shared_set_service_e990dcd14e355acc, []int{2} +} +func (m *CampaignSharedSetOperation) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CampaignSharedSetOperation.Unmarshal(m, b) +} +func (m *CampaignSharedSetOperation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CampaignSharedSetOperation.Marshal(b, m, deterministic) +} +func (dst *CampaignSharedSetOperation) XXX_Merge(src proto.Message) { + xxx_messageInfo_CampaignSharedSetOperation.Merge(dst, src) +} +func (m *CampaignSharedSetOperation) XXX_Size() int { + return xxx_messageInfo_CampaignSharedSetOperation.Size(m) +} +func (m *CampaignSharedSetOperation) XXX_DiscardUnknown() { + xxx_messageInfo_CampaignSharedSetOperation.DiscardUnknown(m) +} + +var xxx_messageInfo_CampaignSharedSetOperation proto.InternalMessageInfo + +type isCampaignSharedSetOperation_Operation interface { + isCampaignSharedSetOperation_Operation() +} + +type CampaignSharedSetOperation_Create struct { + Create *resources.CampaignSharedSet `protobuf:"bytes,1,opt,name=create,proto3,oneof"` +} + +type CampaignSharedSetOperation_Remove struct { + Remove string `protobuf:"bytes,3,opt,name=remove,proto3,oneof"` +} + +func (*CampaignSharedSetOperation_Create) isCampaignSharedSetOperation_Operation() {} + +func (*CampaignSharedSetOperation_Remove) isCampaignSharedSetOperation_Operation() {} + +func (m *CampaignSharedSetOperation) GetOperation() isCampaignSharedSetOperation_Operation { + if m != nil { + return m.Operation + } + return nil +} + +func (m *CampaignSharedSetOperation) GetCreate() *resources.CampaignSharedSet { + if x, ok := m.GetOperation().(*CampaignSharedSetOperation_Create); ok { + return x.Create + } + return nil +} + +func (m *CampaignSharedSetOperation) GetRemove() string { + if x, ok := m.GetOperation().(*CampaignSharedSetOperation_Remove); ok { + return x.Remove + } + return "" +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*CampaignSharedSetOperation) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _CampaignSharedSetOperation_OneofMarshaler, _CampaignSharedSetOperation_OneofUnmarshaler, _CampaignSharedSetOperation_OneofSizer, []interface{}{ + (*CampaignSharedSetOperation_Create)(nil), + (*CampaignSharedSetOperation_Remove)(nil), + } +} + +func _CampaignSharedSetOperation_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*CampaignSharedSetOperation) + // operation + switch x := m.Operation.(type) { + case *CampaignSharedSetOperation_Create: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Create); err != nil { + return err + } + case *CampaignSharedSetOperation_Remove: + b.EncodeVarint(3<<3 | proto.WireBytes) + b.EncodeStringBytes(x.Remove) + case nil: + default: + return fmt.Errorf("CampaignSharedSetOperation.Operation has unexpected type %T", x) + } + return nil +} + +func _CampaignSharedSetOperation_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*CampaignSharedSetOperation) + switch tag { + case 1: // operation.create + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.CampaignSharedSet) + err := b.DecodeMessage(msg) + m.Operation = &CampaignSharedSetOperation_Create{msg} + return true, err + case 3: // operation.remove + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Operation = &CampaignSharedSetOperation_Remove{x} + return true, err + default: + return false, nil + } +} + +func _CampaignSharedSetOperation_OneofSizer(msg proto.Message) (n int) { + m := msg.(*CampaignSharedSetOperation) + // operation + switch x := m.Operation.(type) { + case *CampaignSharedSetOperation_Create: + s := proto.Size(x.Create) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *CampaignSharedSetOperation_Remove: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(len(x.Remove))) + n += len(x.Remove) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// Response message for a campaign shared set mutate. +type MutateCampaignSharedSetsResponse struct { + // All results for the mutate. + Results []*MutateCampaignSharedSetResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateCampaignSharedSetsResponse) Reset() { *m = MutateCampaignSharedSetsResponse{} } +func (m *MutateCampaignSharedSetsResponse) String() string { return proto.CompactTextString(m) } +func (*MutateCampaignSharedSetsResponse) ProtoMessage() {} +func (*MutateCampaignSharedSetsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_shared_set_service_e990dcd14e355acc, []int{3} +} +func (m *MutateCampaignSharedSetsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateCampaignSharedSetsResponse.Unmarshal(m, b) +} +func (m *MutateCampaignSharedSetsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateCampaignSharedSetsResponse.Marshal(b, m, deterministic) +} +func (dst *MutateCampaignSharedSetsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateCampaignSharedSetsResponse.Merge(dst, src) +} +func (m *MutateCampaignSharedSetsResponse) XXX_Size() int { + return xxx_messageInfo_MutateCampaignSharedSetsResponse.Size(m) +} +func (m *MutateCampaignSharedSetsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MutateCampaignSharedSetsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateCampaignSharedSetsResponse proto.InternalMessageInfo + +func (m *MutateCampaignSharedSetsResponse) GetResults() []*MutateCampaignSharedSetResult { + if m != nil { + return m.Results + } + return nil +} + +// The result for the campaign shared set mutate. +type MutateCampaignSharedSetResult struct { + // Returned for successful operations. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateCampaignSharedSetResult) Reset() { *m = MutateCampaignSharedSetResult{} } +func (m *MutateCampaignSharedSetResult) String() string { return proto.CompactTextString(m) } +func (*MutateCampaignSharedSetResult) ProtoMessage() {} +func (*MutateCampaignSharedSetResult) Descriptor() ([]byte, []int) { + return fileDescriptor_campaign_shared_set_service_e990dcd14e355acc, []int{4} +} +func (m *MutateCampaignSharedSetResult) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateCampaignSharedSetResult.Unmarshal(m, b) +} +func (m *MutateCampaignSharedSetResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateCampaignSharedSetResult.Marshal(b, m, deterministic) +} +func (dst *MutateCampaignSharedSetResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateCampaignSharedSetResult.Merge(dst, src) +} +func (m *MutateCampaignSharedSetResult) XXX_Size() int { + return xxx_messageInfo_MutateCampaignSharedSetResult.Size(m) +} +func (m *MutateCampaignSharedSetResult) XXX_DiscardUnknown() { + xxx_messageInfo_MutateCampaignSharedSetResult.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateCampaignSharedSetResult proto.InternalMessageInfo + +func (m *MutateCampaignSharedSetResult) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetCampaignSharedSetRequest)(nil), "google.ads.googleads.v0.services.GetCampaignSharedSetRequest") + proto.RegisterType((*MutateCampaignSharedSetsRequest)(nil), "google.ads.googleads.v0.services.MutateCampaignSharedSetsRequest") + proto.RegisterType((*CampaignSharedSetOperation)(nil), "google.ads.googleads.v0.services.CampaignSharedSetOperation") + proto.RegisterType((*MutateCampaignSharedSetsResponse)(nil), "google.ads.googleads.v0.services.MutateCampaignSharedSetsResponse") + proto.RegisterType((*MutateCampaignSharedSetResult)(nil), "google.ads.googleads.v0.services.MutateCampaignSharedSetResult") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// CampaignSharedSetServiceClient is the client API for CampaignSharedSetService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type CampaignSharedSetServiceClient interface { + // Returns the requested campaign shared set in full detail. + GetCampaignSharedSet(ctx context.Context, in *GetCampaignSharedSetRequest, opts ...grpc.CallOption) (*resources.CampaignSharedSet, error) + // Creates or removes campaign shared sets. Operation statuses are returned. + MutateCampaignSharedSets(ctx context.Context, in *MutateCampaignSharedSetsRequest, opts ...grpc.CallOption) (*MutateCampaignSharedSetsResponse, error) +} + +type campaignSharedSetServiceClient struct { + cc *grpc.ClientConn +} + +func NewCampaignSharedSetServiceClient(cc *grpc.ClientConn) CampaignSharedSetServiceClient { + return &campaignSharedSetServiceClient{cc} +} + +func (c *campaignSharedSetServiceClient) GetCampaignSharedSet(ctx context.Context, in *GetCampaignSharedSetRequest, opts ...grpc.CallOption) (*resources.CampaignSharedSet, error) { + out := new(resources.CampaignSharedSet) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.CampaignSharedSetService/GetCampaignSharedSet", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *campaignSharedSetServiceClient) MutateCampaignSharedSets(ctx context.Context, in *MutateCampaignSharedSetsRequest, opts ...grpc.CallOption) (*MutateCampaignSharedSetsResponse, error) { + out := new(MutateCampaignSharedSetsResponse) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.CampaignSharedSetService/MutateCampaignSharedSets", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// CampaignSharedSetServiceServer is the server API for CampaignSharedSetService service. +type CampaignSharedSetServiceServer interface { + // Returns the requested campaign shared set in full detail. + GetCampaignSharedSet(context.Context, *GetCampaignSharedSetRequest) (*resources.CampaignSharedSet, error) + // Creates or removes campaign shared sets. Operation statuses are returned. + MutateCampaignSharedSets(context.Context, *MutateCampaignSharedSetsRequest) (*MutateCampaignSharedSetsResponse, error) +} + +func RegisterCampaignSharedSetServiceServer(s *grpc.Server, srv CampaignSharedSetServiceServer) { + s.RegisterService(&_CampaignSharedSetService_serviceDesc, srv) +} + +func _CampaignSharedSetService_GetCampaignSharedSet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetCampaignSharedSetRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CampaignSharedSetServiceServer).GetCampaignSharedSet(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.CampaignSharedSetService/GetCampaignSharedSet", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CampaignSharedSetServiceServer).GetCampaignSharedSet(ctx, req.(*GetCampaignSharedSetRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CampaignSharedSetService_MutateCampaignSharedSets_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MutateCampaignSharedSetsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CampaignSharedSetServiceServer).MutateCampaignSharedSets(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.CampaignSharedSetService/MutateCampaignSharedSets", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CampaignSharedSetServiceServer).MutateCampaignSharedSets(ctx, req.(*MutateCampaignSharedSetsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _CampaignSharedSetService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.CampaignSharedSetService", + HandlerType: (*CampaignSharedSetServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetCampaignSharedSet", + Handler: _CampaignSharedSetService_GetCampaignSharedSet_Handler, + }, + { + MethodName: "MutateCampaignSharedSets", + Handler: _CampaignSharedSetService_MutateCampaignSharedSets_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/campaign_shared_set_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/campaign_shared_set_service.proto", fileDescriptor_campaign_shared_set_service_e990dcd14e355acc) +} + +var fileDescriptor_campaign_shared_set_service_e990dcd14e355acc = []byte{ + // 542 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x94, 0x41, 0x6b, 0xd4, 0x40, + 0x14, 0xc7, 0xcd, 0x2e, 0x54, 0x3a, 0xab, 0x97, 0xc1, 0x43, 0x58, 0x2d, 0x5d, 0xa2, 0x87, 0xb2, + 0x87, 0xc9, 0xb2, 0x16, 0x85, 0x76, 0x17, 0x49, 0x14, 0xb6, 0x1e, 0xac, 0x25, 0x0b, 0x05, 0x25, + 0x10, 0xc6, 0xe4, 0x11, 0x03, 0x9b, 0x4c, 0x9c, 0x99, 0xec, 0xa5, 0xec, 0xc5, 0xaf, 0xd0, 0x2f, + 0x20, 0x1e, 0xfd, 0x26, 0x7a, 0xf0, 0xe2, 0xd9, 0x9b, 0x7e, 0x0f, 0x49, 0x26, 0x93, 0x56, 0xb6, + 0xe9, 0x4a, 0xbd, 0xbd, 0x64, 0xde, 0xfc, 0xde, 0xfb, 0xbf, 0x37, 0xef, 0x21, 0x37, 0x66, 0x2c, + 0x5e, 0x80, 0x4d, 0x23, 0x61, 0x2b, 0xb3, 0xb4, 0x96, 0x23, 0x5b, 0x00, 0x5f, 0x26, 0x21, 0x08, + 0x3b, 0xa4, 0x69, 0x4e, 0x93, 0x38, 0x0b, 0xc4, 0x7b, 0xca, 0x21, 0x0a, 0x04, 0xc8, 0xa0, 0x3e, + 0x24, 0x39, 0x67, 0x92, 0xe1, 0x81, 0xba, 0x48, 0x68, 0x24, 0x48, 0xc3, 0x20, 0xcb, 0x11, 0xd1, + 0x8c, 0xfe, 0x61, 0x5b, 0x14, 0x0e, 0x82, 0x15, 0xbc, 0x25, 0x8c, 0xc2, 0xf7, 0x1f, 0xe8, 0xcb, + 0x79, 0x62, 0xd3, 0x2c, 0x63, 0x92, 0xca, 0x84, 0x65, 0x42, 0x9d, 0x5a, 0x2e, 0xba, 0x3f, 0x03, + 0xf9, 0xbc, 0xbe, 0x3d, 0xaf, 0x2e, 0xcf, 0x41, 0x7a, 0xf0, 0xa1, 0x00, 0x21, 0xf1, 0x43, 0x74, + 0x57, 0xc7, 0x08, 0x32, 0x9a, 0x82, 0x69, 0x0c, 0x8c, 0xbd, 0x6d, 0xef, 0x8e, 0xfe, 0x79, 0x4c, + 0x53, 0xb0, 0x3e, 0x19, 0x68, 0xf7, 0x55, 0x21, 0xa9, 0x84, 0x35, 0x8e, 0xd0, 0xa0, 0x5d, 0xd4, + 0x0b, 0x0b, 0x21, 0x59, 0x0a, 0x3c, 0x48, 0xa2, 0x1a, 0x83, 0xf4, 0xaf, 0x97, 0x11, 0xf6, 0x11, + 0x62, 0x39, 0x70, 0x95, 0x9c, 0xd9, 0x19, 0x74, 0xf7, 0x7a, 0xe3, 0x09, 0xd9, 0x54, 0x1a, 0xb2, + 0x16, 0xf1, 0xb5, 0x86, 0x78, 0x97, 0x78, 0xd6, 0xb9, 0x81, 0xfa, 0xed, 0xae, 0xf8, 0x18, 0x6d, + 0x85, 0x1c, 0xa8, 0x54, 0xfa, 0x7a, 0xe3, 0xfd, 0xd6, 0xc0, 0x4d, 0xc5, 0xd7, 0x23, 0x1f, 0xdd, + 0xf2, 0x6a, 0x0a, 0x36, 0xd1, 0x16, 0x87, 0x94, 0x2d, 0xc1, 0xec, 0x96, 0x42, 0xcb, 0x13, 0xf5, + 0xed, 0xf6, 0xd0, 0x76, 0x93, 0x96, 0xb5, 0x42, 0x83, 0xf6, 0xba, 0x89, 0x9c, 0x65, 0x02, 0xf0, + 0x1b, 0x74, 0x9b, 0x83, 0x28, 0x16, 0x52, 0x17, 0xe5, 0xd9, 0xe6, 0xa2, 0xb4, 0x40, 0xbd, 0x8a, + 0xe3, 0x69, 0x9e, 0xf5, 0x02, 0xed, 0x5c, 0xeb, 0xf9, 0x4f, 0xdd, 0x1f, 0x7f, 0xef, 0x22, 0x73, + 0x0d, 0x30, 0x57, 0xa9, 0xe0, 0xaf, 0x06, 0xba, 0x77, 0xd5, 0xfb, 0xc2, 0xd3, 0xcd, 0x2a, 0xae, + 0x79, 0x97, 0xfd, 0x1b, 0x35, 0xc8, 0x9a, 0x7c, 0xfc, 0xf1, 0xeb, 0xbc, 0xf3, 0x04, 0xef, 0x97, + 0xb3, 0x73, 0xf6, 0x97, 0xb4, 0xa9, 0x7e, 0x8a, 0xc2, 0x1e, 0x36, 0xc3, 0x74, 0xd1, 0x0e, 0x7b, + 0xb8, 0xc2, 0xbf, 0x0d, 0x64, 0xb6, 0xb5, 0x0b, 0x3b, 0x37, 0xee, 0x8a, 0x1e, 0x91, 0xbe, 0xfb, + 0x3f, 0x08, 0xf5, 0x5a, 0x2c, 0xb7, 0x52, 0x38, 0xb1, 0x9e, 0x96, 0x0a, 0x2f, 0x24, 0x9d, 0x5d, + 0x9a, 0xbd, 0xe9, 0x70, 0x75, 0x85, 0xc0, 0x83, 0xb4, 0x42, 0x1f, 0x18, 0x43, 0xf7, 0xa7, 0x81, + 0x1e, 0x85, 0x2c, 0xdd, 0x98, 0x8d, 0xbb, 0xd3, 0xd6, 0xf6, 0x93, 0x72, 0xb5, 0x9c, 0x18, 0x6f, + 0x8f, 0x6a, 0x44, 0xcc, 0x16, 0x34, 0x8b, 0x09, 0xe3, 0xb1, 0x1d, 0x43, 0x56, 0x2d, 0x1e, 0xbd, + 0xc7, 0xf2, 0x44, 0xb4, 0x2f, 0xcf, 0x43, 0x6d, 0x7c, 0xee, 0x74, 0x67, 0x8e, 0xf3, 0xa5, 0x33, + 0x98, 0x29, 0xa0, 0x13, 0x09, 0xa2, 0xcc, 0xd2, 0x3a, 0x1d, 0x91, 0x3a, 0xb0, 0xf8, 0xa6, 0x5d, + 0x7c, 0x27, 0x12, 0x7e, 0xe3, 0xe2, 0x9f, 0x8e, 0x7c, 0xed, 0xf2, 0x6e, 0xab, 0x4a, 0xe0, 0xf1, + 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x77, 0x01, 0x00, 0x4c, 0xbc, 0x05, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/carrier_constant_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/carrier_constant_service.pb.go new file mode 100644 index 000000000..376074019 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/carrier_constant_service.pb.go @@ -0,0 +1,173 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/carrier_constant_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [CarrierConstantService.GetCarrierConstant][google.ads.googleads.v0.services.CarrierConstantService.GetCarrierConstant]. +type GetCarrierConstantRequest struct { + // Resource name of the carrier constant to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetCarrierConstantRequest) Reset() { *m = GetCarrierConstantRequest{} } +func (m *GetCarrierConstantRequest) String() string { return proto.CompactTextString(m) } +func (*GetCarrierConstantRequest) ProtoMessage() {} +func (*GetCarrierConstantRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_carrier_constant_service_6ffed320151f7dbf, []int{0} +} +func (m *GetCarrierConstantRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetCarrierConstantRequest.Unmarshal(m, b) +} +func (m *GetCarrierConstantRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetCarrierConstantRequest.Marshal(b, m, deterministic) +} +func (dst *GetCarrierConstantRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetCarrierConstantRequest.Merge(dst, src) +} +func (m *GetCarrierConstantRequest) XXX_Size() int { + return xxx_messageInfo_GetCarrierConstantRequest.Size(m) +} +func (m *GetCarrierConstantRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetCarrierConstantRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetCarrierConstantRequest proto.InternalMessageInfo + +func (m *GetCarrierConstantRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetCarrierConstantRequest)(nil), "google.ads.googleads.v0.services.GetCarrierConstantRequest") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// CarrierConstantServiceClient is the client API for CarrierConstantService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type CarrierConstantServiceClient interface { + // Returns the requested carrier constant in full detail. + GetCarrierConstant(ctx context.Context, in *GetCarrierConstantRequest, opts ...grpc.CallOption) (*resources.CarrierConstant, error) +} + +type carrierConstantServiceClient struct { + cc *grpc.ClientConn +} + +func NewCarrierConstantServiceClient(cc *grpc.ClientConn) CarrierConstantServiceClient { + return &carrierConstantServiceClient{cc} +} + +func (c *carrierConstantServiceClient) GetCarrierConstant(ctx context.Context, in *GetCarrierConstantRequest, opts ...grpc.CallOption) (*resources.CarrierConstant, error) { + out := new(resources.CarrierConstant) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.CarrierConstantService/GetCarrierConstant", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// CarrierConstantServiceServer is the server API for CarrierConstantService service. +type CarrierConstantServiceServer interface { + // Returns the requested carrier constant in full detail. + GetCarrierConstant(context.Context, *GetCarrierConstantRequest) (*resources.CarrierConstant, error) +} + +func RegisterCarrierConstantServiceServer(s *grpc.Server, srv CarrierConstantServiceServer) { + s.RegisterService(&_CarrierConstantService_serviceDesc, srv) +} + +func _CarrierConstantService_GetCarrierConstant_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetCarrierConstantRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CarrierConstantServiceServer).GetCarrierConstant(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.CarrierConstantService/GetCarrierConstant", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CarrierConstantServiceServer).GetCarrierConstant(ctx, req.(*GetCarrierConstantRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _CarrierConstantService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.CarrierConstantService", + HandlerType: (*CarrierConstantServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetCarrierConstant", + Handler: _CarrierConstantService_GetCarrierConstant_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/carrier_constant_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/carrier_constant_service.proto", fileDescriptor_carrier_constant_service_6ffed320151f7dbf) +} + +var fileDescriptor_carrier_constant_service_6ffed320151f7dbf = []byte{ + // 335 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x4f, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xe2, 0xd4, + 0xa2, 0xb2, 0xcc, 0xe4, 0xd4, 0x62, 0xfd, 0xe4, 0xc4, 0xa2, 0xa2, 0xcc, 0xd4, 0xa2, 0xf8, 0xe4, + 0xfc, 0xbc, 0xe2, 0x92, 0xc4, 0xbc, 0x92, 0x78, 0xa8, 0x8c, 0x5e, 0x41, 0x51, 0x7e, 0x49, 0xbe, + 0x90, 0x02, 0x44, 0x97, 0x5e, 0x62, 0x4a, 0xb1, 0x1e, 0xdc, 0x00, 0xbd, 0x32, 0x03, 0x3d, 0x98, + 0x01, 0x52, 0x16, 0xb8, 0xac, 0x28, 0x4a, 0x2d, 0xce, 0x2f, 0x2d, 0xc2, 0x66, 0x07, 0xc4, 0x6c, + 0x29, 0x19, 0x98, 0xce, 0x82, 0x4c, 0xfd, 0xc4, 0xbc, 0xbc, 0xfc, 0x92, 0xc4, 0x92, 0xcc, 0xfc, + 0xbc, 0x62, 0x88, 0xac, 0x92, 0x03, 0x97, 0xa4, 0x7b, 0x6a, 0x89, 0x33, 0x44, 0xab, 0x33, 0x54, + 0x67, 0x50, 0x6a, 0x61, 0x69, 0x6a, 0x71, 0x89, 0x90, 0x32, 0x17, 0x2f, 0xcc, 0xf8, 0xf8, 0xbc, + 0xc4, 0xdc, 0x54, 0x09, 0x46, 0x05, 0x46, 0x0d, 0xce, 0x20, 0x1e, 0x98, 0xa0, 0x5f, 0x62, 0x6e, + 0xaa, 0xd1, 0x05, 0x46, 0x2e, 0x31, 0x34, 0xfd, 0xc1, 0x10, 0x57, 0x0b, 0x6d, 0x65, 0xe4, 0x12, + 0xc2, 0x34, 0x5d, 0xc8, 0x5a, 0x8f, 0x90, 0x77, 0xf5, 0x70, 0xba, 0x49, 0xca, 0x08, 0xa7, 0x66, + 0x78, 0x48, 0xe8, 0xa1, 0x69, 0x55, 0xd2, 0x6b, 0xba, 0xfc, 0x64, 0x32, 0x93, 0x86, 0x90, 0x1a, + 0x28, 0xc0, 0xaa, 0x51, 0xbc, 0x64, 0x9b, 0x8c, 0xaa, 0xb6, 0x58, 0x5f, 0xab, 0xd6, 0xe9, 0x36, + 0x23, 0x97, 0x4a, 0x72, 0x7e, 0x2e, 0x41, 0x67, 0x3a, 0x49, 0x63, 0xf7, 0x78, 0x00, 0x28, 0x68, + 0x03, 0x18, 0xa3, 0x3c, 0xa0, 0x06, 0xa4, 0xe7, 0xe7, 0x24, 0xe6, 0xa5, 0xeb, 0xe5, 0x17, 0xa5, + 0xeb, 0xa7, 0xa7, 0xe6, 0x81, 0x03, 0x1e, 0x16, 0x89, 0x05, 0x99, 0xc5, 0xb8, 0x93, 0x8d, 0x35, + 0x8c, 0xb1, 0x88, 0x89, 0xd9, 0xdd, 0xd1, 0x71, 0x15, 0x93, 0x82, 0x3b, 0xc4, 0x40, 0xc7, 0x94, + 0x62, 0x3d, 0x08, 0x13, 0xc4, 0x0a, 0x33, 0xd0, 0x83, 0x5a, 0x5c, 0x7c, 0x0a, 0xa6, 0x24, 0xc6, + 0x31, 0xa5, 0x38, 0x06, 0xae, 0x24, 0x26, 0xcc, 0x20, 0x06, 0xa6, 0x24, 0x89, 0x0d, 0xec, 0x00, + 0x63, 0x40, 0x00, 0x00, 0x00, 0xff, 0xff, 0x47, 0xb5, 0xfd, 0xa7, 0xb6, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/change_status_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/change_status_service.pb.go new file mode 100644 index 000000000..494adc5e4 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/change_status_service.pb.go @@ -0,0 +1,174 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/change_status_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for '[ChangeStatusService.GetChangeStatus][google.ads.googleads.v0.services.ChangeStatusService.GetChangeStatus]'. +type GetChangeStatusRequest struct { + // The resource name of the change status to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetChangeStatusRequest) Reset() { *m = GetChangeStatusRequest{} } +func (m *GetChangeStatusRequest) String() string { return proto.CompactTextString(m) } +func (*GetChangeStatusRequest) ProtoMessage() {} +func (*GetChangeStatusRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_change_status_service_2dac1c94f57649f6, []int{0} +} +func (m *GetChangeStatusRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetChangeStatusRequest.Unmarshal(m, b) +} +func (m *GetChangeStatusRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetChangeStatusRequest.Marshal(b, m, deterministic) +} +func (dst *GetChangeStatusRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetChangeStatusRequest.Merge(dst, src) +} +func (m *GetChangeStatusRequest) XXX_Size() int { + return xxx_messageInfo_GetChangeStatusRequest.Size(m) +} +func (m *GetChangeStatusRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetChangeStatusRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetChangeStatusRequest proto.InternalMessageInfo + +func (m *GetChangeStatusRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetChangeStatusRequest)(nil), "google.ads.googleads.v0.services.GetChangeStatusRequest") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// ChangeStatusServiceClient is the client API for ChangeStatusService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type ChangeStatusServiceClient interface { + // Returns the requested change status in full detail. + GetChangeStatus(ctx context.Context, in *GetChangeStatusRequest, opts ...grpc.CallOption) (*resources.ChangeStatus, error) +} + +type changeStatusServiceClient struct { + cc *grpc.ClientConn +} + +func NewChangeStatusServiceClient(cc *grpc.ClientConn) ChangeStatusServiceClient { + return &changeStatusServiceClient{cc} +} + +func (c *changeStatusServiceClient) GetChangeStatus(ctx context.Context, in *GetChangeStatusRequest, opts ...grpc.CallOption) (*resources.ChangeStatus, error) { + out := new(resources.ChangeStatus) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.ChangeStatusService/GetChangeStatus", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// ChangeStatusServiceServer is the server API for ChangeStatusService service. +type ChangeStatusServiceServer interface { + // Returns the requested change status in full detail. + GetChangeStatus(context.Context, *GetChangeStatusRequest) (*resources.ChangeStatus, error) +} + +func RegisterChangeStatusServiceServer(s *grpc.Server, srv ChangeStatusServiceServer) { + s.RegisterService(&_ChangeStatusService_serviceDesc, srv) +} + +func _ChangeStatusService_GetChangeStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetChangeStatusRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ChangeStatusServiceServer).GetChangeStatus(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.ChangeStatusService/GetChangeStatus", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ChangeStatusServiceServer).GetChangeStatus(ctx, req.(*GetChangeStatusRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _ChangeStatusService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.ChangeStatusService", + HandlerType: (*ChangeStatusServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetChangeStatus", + Handler: _ChangeStatusService_GetChangeStatus_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/change_status_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/change_status_service.proto", fileDescriptor_change_status_service_2dac1c94f57649f6) +} + +var fileDescriptor_change_status_service_2dac1c94f57649f6 = []byte{ + // 341 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x49, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xe2, 0xd4, + 0xa2, 0xb2, 0xcc, 0xe4, 0xd4, 0x62, 0xfd, 0xe4, 0x8c, 0xc4, 0xbc, 0xf4, 0xd4, 0xf8, 0xe2, 0x92, + 0xc4, 0x92, 0xd2, 0xe2, 0x78, 0xa8, 0xb0, 0x5e, 0x41, 0x51, 0x7e, 0x49, 0xbe, 0x90, 0x02, 0x44, + 0x8b, 0x5e, 0x62, 0x4a, 0xb1, 0x1e, 0x5c, 0xb7, 0x5e, 0x99, 0x81, 0x1e, 0x4c, 0xb7, 0x94, 0x29, + 0x2e, 0xf3, 0x8b, 0x52, 0x8b, 0xf3, 0x4b, 0x8b, 0x30, 0x2c, 0x80, 0x18, 0x2c, 0x25, 0x03, 0xd3, + 0x56, 0x90, 0xa9, 0x9f, 0x98, 0x97, 0x97, 0x5f, 0x92, 0x58, 0x92, 0x99, 0x9f, 0x07, 0x95, 0x55, + 0xb2, 0xe5, 0x12, 0x73, 0x4f, 0x2d, 0x71, 0x06, 0xeb, 0x0b, 0x06, 0x6b, 0x0b, 0x4a, 0x2d, 0x2c, + 0x4d, 0x2d, 0x2e, 0x11, 0x52, 0xe6, 0xe2, 0x85, 0x19, 0x1c, 0x9f, 0x97, 0x98, 0x9b, 0x2a, 0xc1, + 0xa8, 0xc0, 0xa8, 0xc1, 0x19, 0xc4, 0x03, 0x13, 0xf4, 0x4b, 0xcc, 0x4d, 0x35, 0x3a, 0xc3, 0xc8, + 0x25, 0x8c, 0xac, 0x39, 0x18, 0xe2, 0x58, 0xa1, 0x2d, 0x8c, 0x5c, 0xfc, 0x68, 0xe6, 0x0a, 0x59, + 0xe8, 0x11, 0xf2, 0xa2, 0x1e, 0x76, 0xa7, 0x48, 0xe9, 0xe3, 0xd4, 0x09, 0xf7, 0xba, 0x1e, 0xb2, + 0x3e, 0x25, 0xb3, 0xa6, 0xcb, 0x4f, 0x26, 0x33, 0x19, 0x08, 0xe9, 0x81, 0x82, 0xa7, 0x1a, 0xc5, + 0x1b, 0xb6, 0xc9, 0xa5, 0xc5, 0x25, 0xf9, 0xb9, 0xa9, 0x45, 0xc5, 0xfa, 0x5a, 0xd0, 0xf0, 0x82, + 0x68, 0xd2, 0xd7, 0xaa, 0x75, 0xba, 0xc1, 0xc8, 0xa5, 0x92, 0x9c, 0x9f, 0x4b, 0xd0, 0xa1, 0x4e, + 0x12, 0x58, 0x3c, 0x1d, 0x00, 0x0a, 0xd0, 0x00, 0xc6, 0x28, 0x0f, 0xa8, 0xee, 0xf4, 0xfc, 0x9c, + 0xc4, 0xbc, 0x74, 0xbd, 0xfc, 0xa2, 0x74, 0xfd, 0xf4, 0xd4, 0x3c, 0x70, 0x70, 0xc3, 0xe2, 0xad, + 0x20, 0xb3, 0x18, 0x77, 0x32, 0xb1, 0x86, 0x31, 0x16, 0x31, 0x31, 0xbb, 0x3b, 0x3a, 0xae, 0x62, + 0x52, 0x70, 0x87, 0x18, 0xe8, 0x98, 0x52, 0xac, 0x07, 0x61, 0x82, 0x58, 0x61, 0x06, 0x7a, 0x50, + 0x8b, 0x8b, 0x4f, 0xc1, 0x94, 0xc4, 0x38, 0xa6, 0x14, 0xc7, 0xc0, 0x95, 0xc4, 0x84, 0x19, 0xc4, + 0xc0, 0x94, 0x24, 0xb1, 0x81, 0x1d, 0x60, 0x0c, 0x08, 0x00, 0x00, 0xff, 0xff, 0xc0, 0x60, 0xd2, + 0x4a, 0xa6, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/conversion_action_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/conversion_action_service.pb.go new file mode 100644 index 000000000..141e3a2f2 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/conversion_action_service.pb.go @@ -0,0 +1,547 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/conversion_action_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" +import field_mask "google.golang.org/genproto/protobuf/field_mask" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [ConversionActionService.GetConversionAction]. +type GetConversionActionRequest struct { + // The resource name of the conversion action to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetConversionActionRequest) Reset() { *m = GetConversionActionRequest{} } +func (m *GetConversionActionRequest) String() string { return proto.CompactTextString(m) } +func (*GetConversionActionRequest) ProtoMessage() {} +func (*GetConversionActionRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_conversion_action_service_1d30046f4e1a0823, []int{0} +} +func (m *GetConversionActionRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetConversionActionRequest.Unmarshal(m, b) +} +func (m *GetConversionActionRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetConversionActionRequest.Marshal(b, m, deterministic) +} +func (dst *GetConversionActionRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetConversionActionRequest.Merge(dst, src) +} +func (m *GetConversionActionRequest) XXX_Size() int { + return xxx_messageInfo_GetConversionActionRequest.Size(m) +} +func (m *GetConversionActionRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetConversionActionRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetConversionActionRequest proto.InternalMessageInfo + +func (m *GetConversionActionRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +// Request message for [ConversionActionService.MutateConversionActions]. +type MutateConversionActionsRequest struct { + // The ID of the customer whose conversion actions are being modified. + CustomerId string `protobuf:"bytes,1,opt,name=customer_id,json=customerId,proto3" json:"customer_id,omitempty"` + // The list of operations to perform on individual conversion actions. + Operations []*ConversionActionOperation `protobuf:"bytes,2,rep,name=operations,proto3" json:"operations,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateConversionActionsRequest) Reset() { *m = MutateConversionActionsRequest{} } +func (m *MutateConversionActionsRequest) String() string { return proto.CompactTextString(m) } +func (*MutateConversionActionsRequest) ProtoMessage() {} +func (*MutateConversionActionsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_conversion_action_service_1d30046f4e1a0823, []int{1} +} +func (m *MutateConversionActionsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateConversionActionsRequest.Unmarshal(m, b) +} +func (m *MutateConversionActionsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateConversionActionsRequest.Marshal(b, m, deterministic) +} +func (dst *MutateConversionActionsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateConversionActionsRequest.Merge(dst, src) +} +func (m *MutateConversionActionsRequest) XXX_Size() int { + return xxx_messageInfo_MutateConversionActionsRequest.Size(m) +} +func (m *MutateConversionActionsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_MutateConversionActionsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateConversionActionsRequest proto.InternalMessageInfo + +func (m *MutateConversionActionsRequest) GetCustomerId() string { + if m != nil { + return m.CustomerId + } + return "" +} + +func (m *MutateConversionActionsRequest) GetOperations() []*ConversionActionOperation { + if m != nil { + return m.Operations + } + return nil +} + +// A single operation (create, update, remove) on a conversion action. +type ConversionActionOperation struct { + // FieldMask that determines which resource fields are modified in an update. + UpdateMask *field_mask.FieldMask `protobuf:"bytes,4,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // The mutate operation. + // + // Types that are valid to be assigned to Operation: + // *ConversionActionOperation_Create + // *ConversionActionOperation_Update + // *ConversionActionOperation_Remove + Operation isConversionActionOperation_Operation `protobuf_oneof:"operation"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ConversionActionOperation) Reset() { *m = ConversionActionOperation{} } +func (m *ConversionActionOperation) String() string { return proto.CompactTextString(m) } +func (*ConversionActionOperation) ProtoMessage() {} +func (*ConversionActionOperation) Descriptor() ([]byte, []int) { + return fileDescriptor_conversion_action_service_1d30046f4e1a0823, []int{2} +} +func (m *ConversionActionOperation) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ConversionActionOperation.Unmarshal(m, b) +} +func (m *ConversionActionOperation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ConversionActionOperation.Marshal(b, m, deterministic) +} +func (dst *ConversionActionOperation) XXX_Merge(src proto.Message) { + xxx_messageInfo_ConversionActionOperation.Merge(dst, src) +} +func (m *ConversionActionOperation) XXX_Size() int { + return xxx_messageInfo_ConversionActionOperation.Size(m) +} +func (m *ConversionActionOperation) XXX_DiscardUnknown() { + xxx_messageInfo_ConversionActionOperation.DiscardUnknown(m) +} + +var xxx_messageInfo_ConversionActionOperation proto.InternalMessageInfo + +func (m *ConversionActionOperation) GetUpdateMask() *field_mask.FieldMask { + if m != nil { + return m.UpdateMask + } + return nil +} + +type isConversionActionOperation_Operation interface { + isConversionActionOperation_Operation() +} + +type ConversionActionOperation_Create struct { + Create *resources.ConversionAction `protobuf:"bytes,1,opt,name=create,proto3,oneof"` +} + +type ConversionActionOperation_Update struct { + Update *resources.ConversionAction `protobuf:"bytes,2,opt,name=update,proto3,oneof"` +} + +type ConversionActionOperation_Remove struct { + Remove string `protobuf:"bytes,3,opt,name=remove,proto3,oneof"` +} + +func (*ConversionActionOperation_Create) isConversionActionOperation_Operation() {} + +func (*ConversionActionOperation_Update) isConversionActionOperation_Operation() {} + +func (*ConversionActionOperation_Remove) isConversionActionOperation_Operation() {} + +func (m *ConversionActionOperation) GetOperation() isConversionActionOperation_Operation { + if m != nil { + return m.Operation + } + return nil +} + +func (m *ConversionActionOperation) GetCreate() *resources.ConversionAction { + if x, ok := m.GetOperation().(*ConversionActionOperation_Create); ok { + return x.Create + } + return nil +} + +func (m *ConversionActionOperation) GetUpdate() *resources.ConversionAction { + if x, ok := m.GetOperation().(*ConversionActionOperation_Update); ok { + return x.Update + } + return nil +} + +func (m *ConversionActionOperation) GetRemove() string { + if x, ok := m.GetOperation().(*ConversionActionOperation_Remove); ok { + return x.Remove + } + return "" +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*ConversionActionOperation) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _ConversionActionOperation_OneofMarshaler, _ConversionActionOperation_OneofUnmarshaler, _ConversionActionOperation_OneofSizer, []interface{}{ + (*ConversionActionOperation_Create)(nil), + (*ConversionActionOperation_Update)(nil), + (*ConversionActionOperation_Remove)(nil), + } +} + +func _ConversionActionOperation_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*ConversionActionOperation) + // operation + switch x := m.Operation.(type) { + case *ConversionActionOperation_Create: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Create); err != nil { + return err + } + case *ConversionActionOperation_Update: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Update); err != nil { + return err + } + case *ConversionActionOperation_Remove: + b.EncodeVarint(3<<3 | proto.WireBytes) + b.EncodeStringBytes(x.Remove) + case nil: + default: + return fmt.Errorf("ConversionActionOperation.Operation has unexpected type %T", x) + } + return nil +} + +func _ConversionActionOperation_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*ConversionActionOperation) + switch tag { + case 1: // operation.create + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.ConversionAction) + err := b.DecodeMessage(msg) + m.Operation = &ConversionActionOperation_Create{msg} + return true, err + case 2: // operation.update + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.ConversionAction) + err := b.DecodeMessage(msg) + m.Operation = &ConversionActionOperation_Update{msg} + return true, err + case 3: // operation.remove + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Operation = &ConversionActionOperation_Remove{x} + return true, err + default: + return false, nil + } +} + +func _ConversionActionOperation_OneofSizer(msg proto.Message) (n int) { + m := msg.(*ConversionActionOperation) + // operation + switch x := m.Operation.(type) { + case *ConversionActionOperation_Create: + s := proto.Size(x.Create) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *ConversionActionOperation_Update: + s := proto.Size(x.Update) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *ConversionActionOperation_Remove: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(len(x.Remove))) + n += len(x.Remove) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// Response message for conversion action mutate. +type MutateConversionActionsResponse struct { + // All results for the mutate. + Results []*MutateConversionActionResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateConversionActionsResponse) Reset() { *m = MutateConversionActionsResponse{} } +func (m *MutateConversionActionsResponse) String() string { return proto.CompactTextString(m) } +func (*MutateConversionActionsResponse) ProtoMessage() {} +func (*MutateConversionActionsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_conversion_action_service_1d30046f4e1a0823, []int{3} +} +func (m *MutateConversionActionsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateConversionActionsResponse.Unmarshal(m, b) +} +func (m *MutateConversionActionsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateConversionActionsResponse.Marshal(b, m, deterministic) +} +func (dst *MutateConversionActionsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateConversionActionsResponse.Merge(dst, src) +} +func (m *MutateConversionActionsResponse) XXX_Size() int { + return xxx_messageInfo_MutateConversionActionsResponse.Size(m) +} +func (m *MutateConversionActionsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MutateConversionActionsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateConversionActionsResponse proto.InternalMessageInfo + +func (m *MutateConversionActionsResponse) GetResults() []*MutateConversionActionResult { + if m != nil { + return m.Results + } + return nil +} + +// The result for the conversion action mutate. +type MutateConversionActionResult struct { + // Returned for successful operations. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateConversionActionResult) Reset() { *m = MutateConversionActionResult{} } +func (m *MutateConversionActionResult) String() string { return proto.CompactTextString(m) } +func (*MutateConversionActionResult) ProtoMessage() {} +func (*MutateConversionActionResult) Descriptor() ([]byte, []int) { + return fileDescriptor_conversion_action_service_1d30046f4e1a0823, []int{4} +} +func (m *MutateConversionActionResult) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateConversionActionResult.Unmarshal(m, b) +} +func (m *MutateConversionActionResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateConversionActionResult.Marshal(b, m, deterministic) +} +func (dst *MutateConversionActionResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateConversionActionResult.Merge(dst, src) +} +func (m *MutateConversionActionResult) XXX_Size() int { + return xxx_messageInfo_MutateConversionActionResult.Size(m) +} +func (m *MutateConversionActionResult) XXX_DiscardUnknown() { + xxx_messageInfo_MutateConversionActionResult.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateConversionActionResult proto.InternalMessageInfo + +func (m *MutateConversionActionResult) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetConversionActionRequest)(nil), "google.ads.googleads.v0.services.GetConversionActionRequest") + proto.RegisterType((*MutateConversionActionsRequest)(nil), "google.ads.googleads.v0.services.MutateConversionActionsRequest") + proto.RegisterType((*ConversionActionOperation)(nil), "google.ads.googleads.v0.services.ConversionActionOperation") + proto.RegisterType((*MutateConversionActionsResponse)(nil), "google.ads.googleads.v0.services.MutateConversionActionsResponse") + proto.RegisterType((*MutateConversionActionResult)(nil), "google.ads.googleads.v0.services.MutateConversionActionResult") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// ConversionActionServiceClient is the client API for ConversionActionService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type ConversionActionServiceClient interface { + // Returns the requested conversion action. + GetConversionAction(ctx context.Context, in *GetConversionActionRequest, opts ...grpc.CallOption) (*resources.ConversionAction, error) + // Creates, updates or removes conversion actions. Operation statuses are + // returned. + MutateConversionActions(ctx context.Context, in *MutateConversionActionsRequest, opts ...grpc.CallOption) (*MutateConversionActionsResponse, error) +} + +type conversionActionServiceClient struct { + cc *grpc.ClientConn +} + +func NewConversionActionServiceClient(cc *grpc.ClientConn) ConversionActionServiceClient { + return &conversionActionServiceClient{cc} +} + +func (c *conversionActionServiceClient) GetConversionAction(ctx context.Context, in *GetConversionActionRequest, opts ...grpc.CallOption) (*resources.ConversionAction, error) { + out := new(resources.ConversionAction) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.ConversionActionService/GetConversionAction", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *conversionActionServiceClient) MutateConversionActions(ctx context.Context, in *MutateConversionActionsRequest, opts ...grpc.CallOption) (*MutateConversionActionsResponse, error) { + out := new(MutateConversionActionsResponse) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.ConversionActionService/MutateConversionActions", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// ConversionActionServiceServer is the server API for ConversionActionService service. +type ConversionActionServiceServer interface { + // Returns the requested conversion action. + GetConversionAction(context.Context, *GetConversionActionRequest) (*resources.ConversionAction, error) + // Creates, updates or removes conversion actions. Operation statuses are + // returned. + MutateConversionActions(context.Context, *MutateConversionActionsRequest) (*MutateConversionActionsResponse, error) +} + +func RegisterConversionActionServiceServer(s *grpc.Server, srv ConversionActionServiceServer) { + s.RegisterService(&_ConversionActionService_serviceDesc, srv) +} + +func _ConversionActionService_GetConversionAction_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetConversionActionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ConversionActionServiceServer).GetConversionAction(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.ConversionActionService/GetConversionAction", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ConversionActionServiceServer).GetConversionAction(ctx, req.(*GetConversionActionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ConversionActionService_MutateConversionActions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MutateConversionActionsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ConversionActionServiceServer).MutateConversionActions(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.ConversionActionService/MutateConversionActions", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ConversionActionServiceServer).MutateConversionActions(ctx, req.(*MutateConversionActionsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _ConversionActionService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.ConversionActionService", + HandlerType: (*ConversionActionServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetConversionAction", + Handler: _ConversionActionService_GetConversionAction_Handler, + }, + { + MethodName: "MutateConversionActions", + Handler: _ConversionActionService_MutateConversionActions_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/conversion_action_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/conversion_action_service.proto", fileDescriptor_conversion_action_service_1d30046f4e1a0823) +} + +var fileDescriptor_conversion_action_service_1d30046f4e1a0823 = []byte{ + // 595 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x94, 0xbf, 0x6f, 0xd3, 0x40, + 0x14, 0xc7, 0xb1, 0x83, 0x82, 0x7a, 0x86, 0xe5, 0x18, 0x6a, 0xac, 0x88, 0x46, 0x86, 0x21, 0xca, + 0x60, 0x47, 0x89, 0x40, 0xa2, 0xa1, 0xa8, 0x4e, 0x25, 0x52, 0x86, 0x40, 0x65, 0xa4, 0x0a, 0x41, + 0xa4, 0xe8, 0x6a, 0x5f, 0x2d, 0xab, 0xb1, 0xcf, 0xdc, 0x9d, 0xb3, 0x44, 0x5d, 0xf8, 0x17, 0x98, + 0x61, 0x60, 0xe4, 0xff, 0xe8, 0xc2, 0xca, 0xca, 0x82, 0xc4, 0x1f, 0x82, 0xce, 0xe7, 0x0b, 0x21, + 0x8d, 0x09, 0x6a, 0x27, 0x3f, 0xfb, 0xbd, 0xfb, 0xbc, 0x1f, 0xdf, 0x7b, 0x06, 0xfb, 0x11, 0x21, + 0xd1, 0x14, 0xbb, 0x28, 0x64, 0xae, 0x34, 0x85, 0x35, 0xeb, 0xb8, 0x0c, 0xd3, 0x59, 0x1c, 0x60, + 0xe6, 0x06, 0x24, 0x9d, 0x61, 0xca, 0x62, 0x92, 0x4e, 0x50, 0xc0, 0xc5, 0xa3, 0x74, 0x39, 0x19, + 0x25, 0x9c, 0xc0, 0xa6, 0x3c, 0xe6, 0xa0, 0x90, 0x39, 0x0b, 0x82, 0x33, 0xeb, 0x38, 0x8a, 0x60, + 0x3d, 0xa9, 0xca, 0x41, 0x31, 0x23, 0x39, 0x5d, 0x9b, 0x44, 0xc2, 0xad, 0x86, 0x3a, 0x9a, 0xc5, + 0x2e, 0x4a, 0x53, 0xc2, 0x91, 0x70, 0xb2, 0xd2, 0x5b, 0xa6, 0x76, 0x8b, 0xb7, 0x93, 0xfc, 0xd4, + 0x3d, 0x8d, 0xf1, 0x34, 0x9c, 0x24, 0x88, 0x9d, 0xc9, 0x08, 0xdb, 0x03, 0xd6, 0x10, 0xf3, 0x83, + 0x05, 0xdd, 0x2b, 0xe0, 0x3e, 0x7e, 0x9f, 0x63, 0xc6, 0xe1, 0x03, 0x70, 0x47, 0x95, 0x30, 0x49, + 0x51, 0x82, 0x4d, 0xad, 0xa9, 0xb5, 0xb6, 0xfc, 0xdb, 0xea, 0xe3, 0x4b, 0x94, 0x60, 0xfb, 0xb3, + 0x06, 0xee, 0x8f, 0x72, 0x8e, 0x38, 0x5e, 0xc5, 0x30, 0xc5, 0xd9, 0x01, 0x46, 0x90, 0x33, 0x4e, + 0x12, 0x4c, 0x27, 0x71, 0x58, 0x52, 0x80, 0xfa, 0xf4, 0x22, 0x84, 0xef, 0x00, 0x20, 0x19, 0xa6, + 0xb2, 0x78, 0x53, 0x6f, 0xd6, 0x5a, 0x46, 0xb7, 0xef, 0x6c, 0x1a, 0x9c, 0xb3, 0x9a, 0xf0, 0x95, + 0x62, 0xf8, 0x4b, 0x38, 0xfb, 0x93, 0x0e, 0xee, 0x55, 0x46, 0xc2, 0x3e, 0x30, 0xf2, 0x2c, 0x44, + 0x1c, 0x17, 0x63, 0x31, 0x6f, 0x36, 0xb5, 0x96, 0xd1, 0xb5, 0x54, 0x6e, 0x35, 0x39, 0xe7, 0xb9, + 0x98, 0xdc, 0x08, 0xb1, 0x33, 0x1f, 0xc8, 0x70, 0x61, 0xc3, 0x11, 0xa8, 0x07, 0x14, 0x23, 0x2e, + 0x27, 0x63, 0x74, 0x7b, 0x95, 0x35, 0x2f, 0xa4, 0xbc, 0x54, 0xf4, 0xe1, 0x0d, 0xbf, 0x84, 0x08, + 0x9c, 0x84, 0x9b, 0xfa, 0xb5, 0x70, 0x12, 0x02, 0x4d, 0x50, 0xa7, 0x38, 0x21, 0x33, 0x6c, 0xd6, + 0xc4, 0xc4, 0x85, 0x47, 0xbe, 0x0f, 0x0c, 0xb0, 0xb5, 0x18, 0x90, 0x3d, 0x07, 0x3b, 0x95, 0xfa, + 0xb1, 0x8c, 0xa4, 0x0c, 0xc3, 0x37, 0xe0, 0x16, 0xc5, 0x2c, 0x9f, 0x72, 0x25, 0xce, 0xb3, 0xcd, + 0xe2, 0xac, 0x67, 0xfa, 0x05, 0xc6, 0x57, 0x38, 0xfb, 0x00, 0x34, 0xfe, 0x15, 0xf8, 0x5f, 0x57, + 0xb0, 0x7b, 0x51, 0x03, 0xdb, 0xab, 0xe7, 0x5f, 0xcb, 0x3a, 0xe0, 0x85, 0x06, 0xee, 0xae, 0xb9, + 0xe2, 0xf0, 0xe9, 0xe6, 0x0e, 0xaa, 0x37, 0xc3, 0xba, 0x8a, 0x32, 0x76, 0xff, 0xc3, 0xf7, 0x5f, + 0x1f, 0xf5, 0x47, 0xb0, 0x27, 0x76, 0x7b, 0xfe, 0x57, 0x5b, 0x7b, 0x6a, 0x19, 0x98, 0xdb, 0x5e, + 0x5a, 0xf6, 0x52, 0x07, 0xb7, 0x7d, 0x0e, 0x7f, 0x6a, 0x60, 0xbb, 0x42, 0x26, 0xb8, 0x7f, 0x55, + 0x35, 0xd4, 0x86, 0x5a, 0xde, 0x35, 0x08, 0xf2, 0x8e, 0xd8, 0x5e, 0xd1, 0x5d, 0xdf, 0x7e, 0x2c, + 0xba, 0xfb, 0xd3, 0xce, 0x7c, 0x69, 0xf3, 0xf7, 0xda, 0xe7, 0x97, 0x9b, 0xdb, 0x4d, 0x0a, 0xf0, + 0xae, 0xd6, 0x1e, 0xfc, 0xd0, 0xc0, 0xc3, 0x80, 0x24, 0x1b, 0x6b, 0x19, 0x34, 0x2a, 0xd4, 0x3e, + 0x12, 0xeb, 0x7a, 0xa4, 0xbd, 0x3d, 0x2c, 0x09, 0x11, 0x99, 0xa2, 0x34, 0x72, 0x08, 0x8d, 0xdc, + 0x08, 0xa7, 0xc5, 0x32, 0xab, 0x3f, 0x6c, 0x16, 0xb3, 0xea, 0x9f, 0x7a, 0x5f, 0x19, 0x5f, 0xf4, + 0xda, 0xd0, 0xf3, 0xbe, 0xea, 0xcd, 0xa1, 0x04, 0x7a, 0x21, 0x73, 0xa4, 0x29, 0xac, 0xe3, 0x8e, + 0x53, 0x26, 0x66, 0xdf, 0x54, 0xc8, 0xd8, 0x0b, 0xd9, 0x78, 0x11, 0x32, 0x3e, 0xee, 0x8c, 0x55, + 0xc8, 0x49, 0xbd, 0x28, 0xa0, 0xf7, 0x3b, 0x00, 0x00, 0xff, 0xff, 0xa6, 0xb4, 0xca, 0x03, 0x54, + 0x06, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/customer_client_link_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/customer_client_link_service.pb.go new file mode 100644 index 000000000..ddeb6412a --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/customer_client_link_service.pb.go @@ -0,0 +1,174 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/customer_client_link_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [CustomerClientLinkService.GetCustomerClientLink][google.ads.googleads.v0.services.CustomerClientLinkService.GetCustomerClientLink]. +type GetCustomerClientLinkRequest struct { + // The resource name of the customer client link to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetCustomerClientLinkRequest) Reset() { *m = GetCustomerClientLinkRequest{} } +func (m *GetCustomerClientLinkRequest) String() string { return proto.CompactTextString(m) } +func (*GetCustomerClientLinkRequest) ProtoMessage() {} +func (*GetCustomerClientLinkRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_customer_client_link_service_9bdafa43d925b47f, []int{0} +} +func (m *GetCustomerClientLinkRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetCustomerClientLinkRequest.Unmarshal(m, b) +} +func (m *GetCustomerClientLinkRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetCustomerClientLinkRequest.Marshal(b, m, deterministic) +} +func (dst *GetCustomerClientLinkRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetCustomerClientLinkRequest.Merge(dst, src) +} +func (m *GetCustomerClientLinkRequest) XXX_Size() int { + return xxx_messageInfo_GetCustomerClientLinkRequest.Size(m) +} +func (m *GetCustomerClientLinkRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetCustomerClientLinkRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetCustomerClientLinkRequest proto.InternalMessageInfo + +func (m *GetCustomerClientLinkRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetCustomerClientLinkRequest)(nil), "google.ads.googleads.v0.services.GetCustomerClientLinkRequest") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// CustomerClientLinkServiceClient is the client API for CustomerClientLinkService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type CustomerClientLinkServiceClient interface { + // Returns the requested CustomerClientLink in full detail. + GetCustomerClientLink(ctx context.Context, in *GetCustomerClientLinkRequest, opts ...grpc.CallOption) (*resources.CustomerClientLink, error) +} + +type customerClientLinkServiceClient struct { + cc *grpc.ClientConn +} + +func NewCustomerClientLinkServiceClient(cc *grpc.ClientConn) CustomerClientLinkServiceClient { + return &customerClientLinkServiceClient{cc} +} + +func (c *customerClientLinkServiceClient) GetCustomerClientLink(ctx context.Context, in *GetCustomerClientLinkRequest, opts ...grpc.CallOption) (*resources.CustomerClientLink, error) { + out := new(resources.CustomerClientLink) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.CustomerClientLinkService/GetCustomerClientLink", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// CustomerClientLinkServiceServer is the server API for CustomerClientLinkService service. +type CustomerClientLinkServiceServer interface { + // Returns the requested CustomerClientLink in full detail. + GetCustomerClientLink(context.Context, *GetCustomerClientLinkRequest) (*resources.CustomerClientLink, error) +} + +func RegisterCustomerClientLinkServiceServer(s *grpc.Server, srv CustomerClientLinkServiceServer) { + s.RegisterService(&_CustomerClientLinkService_serviceDesc, srv) +} + +func _CustomerClientLinkService_GetCustomerClientLink_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetCustomerClientLinkRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CustomerClientLinkServiceServer).GetCustomerClientLink(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.CustomerClientLinkService/GetCustomerClientLink", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CustomerClientLinkServiceServer).GetCustomerClientLink(ctx, req.(*GetCustomerClientLinkRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _CustomerClientLinkService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.CustomerClientLinkService", + HandlerType: (*CustomerClientLinkServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetCustomerClientLink", + Handler: _CustomerClientLinkService_GetCustomerClientLink_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/customer_client_link_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/customer_client_link_service.proto", fileDescriptor_customer_client_link_service_9bdafa43d925b47f) +} + +var fileDescriptor_customer_client_link_service_9bdafa43d925b47f = []byte{ + // 349 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x52, 0xbf, 0x4a, 0xc3, 0x40, + 0x18, 0x27, 0x15, 0x04, 0x83, 0x2e, 0x01, 0x41, 0x4b, 0x91, 0x52, 0x1d, 0xa4, 0xc3, 0x5d, 0x50, + 0x8a, 0x83, 0x56, 0x48, 0x33, 0xd4, 0x41, 0xa4, 0x54, 0xe8, 0x20, 0x81, 0x70, 0x26, 0x47, 0x38, + 0x9a, 0xdc, 0xd5, 0xfb, 0xae, 0x5d, 0xc4, 0xc5, 0x57, 0xf0, 0x0d, 0x1c, 0x7d, 0x14, 0xc1, 0xc9, + 0xdd, 0xc9, 0xcd, 0x97, 0x90, 0xe4, 0x72, 0x11, 0xa9, 0xb1, 0xdb, 0x8f, 0xdc, 0xf7, 0xfb, 0xf3, + 0xfd, 0xbe, 0xd8, 0x7e, 0x22, 0x44, 0x92, 0x52, 0x4c, 0x62, 0xc0, 0x1a, 0xe6, 0x68, 0xe1, 0x62, + 0xa0, 0x72, 0xc1, 0x22, 0x0a, 0x38, 0x9a, 0x83, 0x12, 0x19, 0x95, 0x61, 0x94, 0x32, 0xca, 0x55, + 0x98, 0x32, 0x3e, 0x0d, 0xcb, 0x57, 0x34, 0x93, 0x42, 0x09, 0xa7, 0xad, 0x99, 0x88, 0xc4, 0x80, + 0x2a, 0x11, 0xb4, 0x70, 0x91, 0x11, 0x69, 0x9e, 0xd5, 0xd9, 0x48, 0x0a, 0x62, 0x2e, 0xeb, 0x7c, + 0xb4, 0x7e, 0xb3, 0x65, 0xd8, 0x33, 0x86, 0x09, 0xe7, 0x42, 0x11, 0xc5, 0x04, 0x07, 0xfd, 0xda, + 0xf1, 0xed, 0xd6, 0x90, 0x2a, 0xbf, 0xa4, 0xfb, 0x05, 0xfb, 0x92, 0xf1, 0xe9, 0x98, 0xde, 0xcd, + 0x29, 0x28, 0x67, 0xdf, 0xde, 0x32, 0x2e, 0x21, 0x27, 0x19, 0xdd, 0xb1, 0xda, 0xd6, 0xe1, 0xc6, + 0x78, 0xd3, 0x7c, 0xbc, 0x22, 0x19, 0x3d, 0xfa, 0xb2, 0xec, 0xdd, 0x65, 0x89, 0x6b, 0x9d, 0xdf, + 0x79, 0xb3, 0xec, 0xed, 0x3f, 0x3d, 0x9c, 0x73, 0xb4, 0x6a, 0x77, 0xf4, 0x5f, 0xb8, 0x66, 0xaf, + 0x96, 0x5f, 0x35, 0x83, 0x96, 0xd9, 0x9d, 0xfe, 0xe3, 0xfb, 0xe7, 0x53, 0xe3, 0xc4, 0xe9, 0xe5, + 0x1d, 0xde, 0xff, 0x5a, 0xaf, 0x6f, 0x8a, 0x04, 0xdc, 0xad, 0x4a, 0xfd, 0xa1, 0x02, 0xee, 0x3e, + 0x0c, 0x3e, 0x2c, 0xfb, 0x20, 0x12, 0xd9, 0xca, 0xec, 0x83, 0xbd, 0xda, 0x4e, 0x46, 0x79, 0xf7, + 0x23, 0xeb, 0xe6, 0xa2, 0xd4, 0x48, 0x44, 0x4a, 0x78, 0x82, 0x84, 0x4c, 0x70, 0x42, 0x79, 0x71, + 0x19, 0x73, 0xe9, 0x19, 0x83, 0xfa, 0xff, 0xeb, 0xd4, 0x80, 0xe7, 0xc6, 0xda, 0xd0, 0xf3, 0x5e, + 0x1a, 0xed, 0xa1, 0x16, 0xf4, 0x62, 0x40, 0x1a, 0xe6, 0x68, 0xe2, 0xa2, 0xd2, 0x18, 0x5e, 0xcd, + 0x48, 0xe0, 0xc5, 0x10, 0x54, 0x23, 0xc1, 0xc4, 0x0d, 0xcc, 0xc8, 0xed, 0x7a, 0x11, 0xe0, 0xf8, + 0x3b, 0x00, 0x00, 0xff, 0xff, 0x53, 0x7b, 0xfc, 0x03, 0xdf, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/customer_client_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/customer_client_service.pb.go new file mode 100644 index 000000000..0a06830e4 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/customer_client_service.pb.go @@ -0,0 +1,174 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/customer_client_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [CustomerClientService.GetCustomerClient][google.ads.googleads.v0.services.CustomerClientService.GetCustomerClient]. +type GetCustomerClientRequest struct { + // The resource name of the customer client to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetCustomerClientRequest) Reset() { *m = GetCustomerClientRequest{} } +func (m *GetCustomerClientRequest) String() string { return proto.CompactTextString(m) } +func (*GetCustomerClientRequest) ProtoMessage() {} +func (*GetCustomerClientRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_customer_client_service_528cdd682e78fa39, []int{0} +} +func (m *GetCustomerClientRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetCustomerClientRequest.Unmarshal(m, b) +} +func (m *GetCustomerClientRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetCustomerClientRequest.Marshal(b, m, deterministic) +} +func (dst *GetCustomerClientRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetCustomerClientRequest.Merge(dst, src) +} +func (m *GetCustomerClientRequest) XXX_Size() int { + return xxx_messageInfo_GetCustomerClientRequest.Size(m) +} +func (m *GetCustomerClientRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetCustomerClientRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetCustomerClientRequest proto.InternalMessageInfo + +func (m *GetCustomerClientRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetCustomerClientRequest)(nil), "google.ads.googleads.v0.services.GetCustomerClientRequest") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// CustomerClientServiceClient is the client API for CustomerClientService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type CustomerClientServiceClient interface { + // Returns the requested customer client in full detail. + GetCustomerClient(ctx context.Context, in *GetCustomerClientRequest, opts ...grpc.CallOption) (*resources.CustomerClient, error) +} + +type customerClientServiceClient struct { + cc *grpc.ClientConn +} + +func NewCustomerClientServiceClient(cc *grpc.ClientConn) CustomerClientServiceClient { + return &customerClientServiceClient{cc} +} + +func (c *customerClientServiceClient) GetCustomerClient(ctx context.Context, in *GetCustomerClientRequest, opts ...grpc.CallOption) (*resources.CustomerClient, error) { + out := new(resources.CustomerClient) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.CustomerClientService/GetCustomerClient", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// CustomerClientServiceServer is the server API for CustomerClientService service. +type CustomerClientServiceServer interface { + // Returns the requested customer client in full detail. + GetCustomerClient(context.Context, *GetCustomerClientRequest) (*resources.CustomerClient, error) +} + +func RegisterCustomerClientServiceServer(s *grpc.Server, srv CustomerClientServiceServer) { + s.RegisterService(&_CustomerClientService_serviceDesc, srv) +} + +func _CustomerClientService_GetCustomerClient_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetCustomerClientRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CustomerClientServiceServer).GetCustomerClient(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.CustomerClientService/GetCustomerClient", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CustomerClientServiceServer).GetCustomerClient(ctx, req.(*GetCustomerClientRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _CustomerClientService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.CustomerClientService", + HandlerType: (*CustomerClientServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetCustomerClient", + Handler: _CustomerClientService_GetCustomerClient_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/customer_client_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/customer_client_service.proto", fileDescriptor_customer_client_service_528cdd682e78fa39) +} + +var fileDescriptor_customer_client_service_528cdd682e78fa39 = []byte{ + // 340 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x4b, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xe2, 0xd4, + 0xa2, 0xb2, 0xcc, 0xe4, 0xd4, 0x62, 0xfd, 0xe4, 0xd2, 0xe2, 0x92, 0xfc, 0xdc, 0xd4, 0xa2, 0xf8, + 0xe4, 0x9c, 0xcc, 0xd4, 0xbc, 0x92, 0x78, 0xa8, 0x84, 0x5e, 0x41, 0x51, 0x7e, 0x49, 0xbe, 0x90, + 0x02, 0x44, 0x93, 0x5e, 0x62, 0x4a, 0xb1, 0x1e, 0x5c, 0xbf, 0x5e, 0x99, 0x81, 0x1e, 0x4c, 0xbf, + 0x94, 0x39, 0x2e, 0x1b, 0x8a, 0x52, 0x8b, 0xf3, 0x4b, 0x8b, 0xb0, 0x58, 0x01, 0x31, 0x5a, 0x4a, + 0x06, 0xa6, 0xb1, 0x20, 0x53, 0x3f, 0x31, 0x2f, 0x2f, 0xbf, 0x24, 0xb1, 0x24, 0x33, 0x3f, 0xaf, + 0x18, 0x22, 0xab, 0x64, 0xcf, 0x25, 0xe1, 0x9e, 0x5a, 0xe2, 0x0c, 0xd5, 0xe9, 0x0c, 0xd6, 0x18, + 0x94, 0x5a, 0x58, 0x9a, 0x5a, 0x5c, 0x22, 0xa4, 0xcc, 0xc5, 0x0b, 0x33, 0x3c, 0x3e, 0x2f, 0x31, + 0x37, 0x55, 0x82, 0x51, 0x81, 0x51, 0x83, 0x33, 0x88, 0x07, 0x26, 0xe8, 0x97, 0x98, 0x9b, 0x6a, + 0x74, 0x9d, 0x91, 0x4b, 0x14, 0x55, 0x7b, 0x30, 0xc4, 0xc9, 0x42, 0x7b, 0x19, 0xb9, 0x04, 0x31, + 0xcc, 0x16, 0xb2, 0xd2, 0x23, 0xe4, 0x55, 0x3d, 0x5c, 0x0e, 0x92, 0x32, 0xc4, 0xa9, 0x17, 0x1e, + 0x08, 0x7a, 0xa8, 0x3a, 0x95, 0x2c, 0x9b, 0x2e, 0x3f, 0x99, 0xcc, 0x64, 0x2c, 0x64, 0x08, 0x0a, + 0xaa, 0x6a, 0x14, 0xef, 0xd8, 0xc2, 0xc2, 0xab, 0x58, 0x5f, 0x0b, 0x1e, 0x76, 0x10, 0x6d, 0xc5, + 0xfa, 0x5a, 0xb5, 0x4e, 0xb7, 0x18, 0xb9, 0x54, 0x92, 0xf3, 0x73, 0x09, 0xba, 0xd7, 0x49, 0x0a, + 0xab, 0xff, 0x03, 0x40, 0xe1, 0x1b, 0xc0, 0x18, 0xe5, 0x01, 0xd5, 0x9f, 0x9e, 0x9f, 0x93, 0x98, + 0x97, 0xae, 0x97, 0x5f, 0x94, 0xae, 0x9f, 0x9e, 0x9a, 0x07, 0x0e, 0x7d, 0x58, 0x44, 0x16, 0x64, + 0x16, 0xe3, 0x4e, 0x39, 0xd6, 0x30, 0xc6, 0x22, 0x26, 0x66, 0x77, 0x47, 0xc7, 0x55, 0x4c, 0x0a, + 0xee, 0x10, 0x03, 0x1d, 0x53, 0x8a, 0xf5, 0x20, 0x4c, 0x10, 0x2b, 0xcc, 0x40, 0x0f, 0x6a, 0x71, + 0xf1, 0x29, 0x98, 0x92, 0x18, 0xc7, 0x94, 0xe2, 0x18, 0xb8, 0x92, 0x98, 0x30, 0x83, 0x18, 0x98, + 0x92, 0x24, 0x36, 0xb0, 0x03, 0x8c, 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0xd1, 0xbb, 0x69, 0xb1, + 0xb9, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/customer_feed_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/customer_feed_service.pb.go new file mode 100644 index 000000000..86383efaa --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/customer_feed_service.pb.go @@ -0,0 +1,546 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/customer_feed_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" +import field_mask "google.golang.org/genproto/protobuf/field_mask" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [CustomerFeedService.GetCustomerFeed][google.ads.googleads.v0.services.CustomerFeedService.GetCustomerFeed]. +type GetCustomerFeedRequest struct { + // The resource name of the customer feed to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetCustomerFeedRequest) Reset() { *m = GetCustomerFeedRequest{} } +func (m *GetCustomerFeedRequest) String() string { return proto.CompactTextString(m) } +func (*GetCustomerFeedRequest) ProtoMessage() {} +func (*GetCustomerFeedRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_customer_feed_service_33fd8a34f2b662ec, []int{0} +} +func (m *GetCustomerFeedRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetCustomerFeedRequest.Unmarshal(m, b) +} +func (m *GetCustomerFeedRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetCustomerFeedRequest.Marshal(b, m, deterministic) +} +func (dst *GetCustomerFeedRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetCustomerFeedRequest.Merge(dst, src) +} +func (m *GetCustomerFeedRequest) XXX_Size() int { + return xxx_messageInfo_GetCustomerFeedRequest.Size(m) +} +func (m *GetCustomerFeedRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetCustomerFeedRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetCustomerFeedRequest proto.InternalMessageInfo + +func (m *GetCustomerFeedRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +// Request message for [CustomerFeedService.MutateCustomerFeeds][google.ads.googleads.v0.services.CustomerFeedService.MutateCustomerFeeds]. +type MutateCustomerFeedsRequest struct { + // The ID of the customer whose customer feeds are being modified. + CustomerId string `protobuf:"bytes,1,opt,name=customer_id,json=customerId,proto3" json:"customer_id,omitempty"` + // The list of operations to perform on individual customer feeds. + Operations []*CustomerFeedOperation `protobuf:"bytes,2,rep,name=operations,proto3" json:"operations,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateCustomerFeedsRequest) Reset() { *m = MutateCustomerFeedsRequest{} } +func (m *MutateCustomerFeedsRequest) String() string { return proto.CompactTextString(m) } +func (*MutateCustomerFeedsRequest) ProtoMessage() {} +func (*MutateCustomerFeedsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_customer_feed_service_33fd8a34f2b662ec, []int{1} +} +func (m *MutateCustomerFeedsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateCustomerFeedsRequest.Unmarshal(m, b) +} +func (m *MutateCustomerFeedsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateCustomerFeedsRequest.Marshal(b, m, deterministic) +} +func (dst *MutateCustomerFeedsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateCustomerFeedsRequest.Merge(dst, src) +} +func (m *MutateCustomerFeedsRequest) XXX_Size() int { + return xxx_messageInfo_MutateCustomerFeedsRequest.Size(m) +} +func (m *MutateCustomerFeedsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_MutateCustomerFeedsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateCustomerFeedsRequest proto.InternalMessageInfo + +func (m *MutateCustomerFeedsRequest) GetCustomerId() string { + if m != nil { + return m.CustomerId + } + return "" +} + +func (m *MutateCustomerFeedsRequest) GetOperations() []*CustomerFeedOperation { + if m != nil { + return m.Operations + } + return nil +} + +// A single operation (create, update, remove) on a customer feed. +type CustomerFeedOperation struct { + // FieldMask that determines which resource fields are modified in an update. + UpdateMask *field_mask.FieldMask `protobuf:"bytes,4,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // The mutate operation. + // + // Types that are valid to be assigned to Operation: + // *CustomerFeedOperation_Create + // *CustomerFeedOperation_Update + // *CustomerFeedOperation_Remove + Operation isCustomerFeedOperation_Operation `protobuf_oneof:"operation"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CustomerFeedOperation) Reset() { *m = CustomerFeedOperation{} } +func (m *CustomerFeedOperation) String() string { return proto.CompactTextString(m) } +func (*CustomerFeedOperation) ProtoMessage() {} +func (*CustomerFeedOperation) Descriptor() ([]byte, []int) { + return fileDescriptor_customer_feed_service_33fd8a34f2b662ec, []int{2} +} +func (m *CustomerFeedOperation) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CustomerFeedOperation.Unmarshal(m, b) +} +func (m *CustomerFeedOperation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CustomerFeedOperation.Marshal(b, m, deterministic) +} +func (dst *CustomerFeedOperation) XXX_Merge(src proto.Message) { + xxx_messageInfo_CustomerFeedOperation.Merge(dst, src) +} +func (m *CustomerFeedOperation) XXX_Size() int { + return xxx_messageInfo_CustomerFeedOperation.Size(m) +} +func (m *CustomerFeedOperation) XXX_DiscardUnknown() { + xxx_messageInfo_CustomerFeedOperation.DiscardUnknown(m) +} + +var xxx_messageInfo_CustomerFeedOperation proto.InternalMessageInfo + +func (m *CustomerFeedOperation) GetUpdateMask() *field_mask.FieldMask { + if m != nil { + return m.UpdateMask + } + return nil +} + +type isCustomerFeedOperation_Operation interface { + isCustomerFeedOperation_Operation() +} + +type CustomerFeedOperation_Create struct { + Create *resources.CustomerFeed `protobuf:"bytes,1,opt,name=create,proto3,oneof"` +} + +type CustomerFeedOperation_Update struct { + Update *resources.CustomerFeed `protobuf:"bytes,2,opt,name=update,proto3,oneof"` +} + +type CustomerFeedOperation_Remove struct { + Remove string `protobuf:"bytes,3,opt,name=remove,proto3,oneof"` +} + +func (*CustomerFeedOperation_Create) isCustomerFeedOperation_Operation() {} + +func (*CustomerFeedOperation_Update) isCustomerFeedOperation_Operation() {} + +func (*CustomerFeedOperation_Remove) isCustomerFeedOperation_Operation() {} + +func (m *CustomerFeedOperation) GetOperation() isCustomerFeedOperation_Operation { + if m != nil { + return m.Operation + } + return nil +} + +func (m *CustomerFeedOperation) GetCreate() *resources.CustomerFeed { + if x, ok := m.GetOperation().(*CustomerFeedOperation_Create); ok { + return x.Create + } + return nil +} + +func (m *CustomerFeedOperation) GetUpdate() *resources.CustomerFeed { + if x, ok := m.GetOperation().(*CustomerFeedOperation_Update); ok { + return x.Update + } + return nil +} + +func (m *CustomerFeedOperation) GetRemove() string { + if x, ok := m.GetOperation().(*CustomerFeedOperation_Remove); ok { + return x.Remove + } + return "" +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*CustomerFeedOperation) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _CustomerFeedOperation_OneofMarshaler, _CustomerFeedOperation_OneofUnmarshaler, _CustomerFeedOperation_OneofSizer, []interface{}{ + (*CustomerFeedOperation_Create)(nil), + (*CustomerFeedOperation_Update)(nil), + (*CustomerFeedOperation_Remove)(nil), + } +} + +func _CustomerFeedOperation_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*CustomerFeedOperation) + // operation + switch x := m.Operation.(type) { + case *CustomerFeedOperation_Create: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Create); err != nil { + return err + } + case *CustomerFeedOperation_Update: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Update); err != nil { + return err + } + case *CustomerFeedOperation_Remove: + b.EncodeVarint(3<<3 | proto.WireBytes) + b.EncodeStringBytes(x.Remove) + case nil: + default: + return fmt.Errorf("CustomerFeedOperation.Operation has unexpected type %T", x) + } + return nil +} + +func _CustomerFeedOperation_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*CustomerFeedOperation) + switch tag { + case 1: // operation.create + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.CustomerFeed) + err := b.DecodeMessage(msg) + m.Operation = &CustomerFeedOperation_Create{msg} + return true, err + case 2: // operation.update + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.CustomerFeed) + err := b.DecodeMessage(msg) + m.Operation = &CustomerFeedOperation_Update{msg} + return true, err + case 3: // operation.remove + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Operation = &CustomerFeedOperation_Remove{x} + return true, err + default: + return false, nil + } +} + +func _CustomerFeedOperation_OneofSizer(msg proto.Message) (n int) { + m := msg.(*CustomerFeedOperation) + // operation + switch x := m.Operation.(type) { + case *CustomerFeedOperation_Create: + s := proto.Size(x.Create) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *CustomerFeedOperation_Update: + s := proto.Size(x.Update) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *CustomerFeedOperation_Remove: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(len(x.Remove))) + n += len(x.Remove) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// Response message for a customer feed mutate. +type MutateCustomerFeedsResponse struct { + // All results for the mutate. + Results []*MutateCustomerFeedResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateCustomerFeedsResponse) Reset() { *m = MutateCustomerFeedsResponse{} } +func (m *MutateCustomerFeedsResponse) String() string { return proto.CompactTextString(m) } +func (*MutateCustomerFeedsResponse) ProtoMessage() {} +func (*MutateCustomerFeedsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_customer_feed_service_33fd8a34f2b662ec, []int{3} +} +func (m *MutateCustomerFeedsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateCustomerFeedsResponse.Unmarshal(m, b) +} +func (m *MutateCustomerFeedsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateCustomerFeedsResponse.Marshal(b, m, deterministic) +} +func (dst *MutateCustomerFeedsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateCustomerFeedsResponse.Merge(dst, src) +} +func (m *MutateCustomerFeedsResponse) XXX_Size() int { + return xxx_messageInfo_MutateCustomerFeedsResponse.Size(m) +} +func (m *MutateCustomerFeedsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MutateCustomerFeedsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateCustomerFeedsResponse proto.InternalMessageInfo + +func (m *MutateCustomerFeedsResponse) GetResults() []*MutateCustomerFeedResult { + if m != nil { + return m.Results + } + return nil +} + +// The result for the customer feed mutate. +type MutateCustomerFeedResult struct { + // Returned for successful operations. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateCustomerFeedResult) Reset() { *m = MutateCustomerFeedResult{} } +func (m *MutateCustomerFeedResult) String() string { return proto.CompactTextString(m) } +func (*MutateCustomerFeedResult) ProtoMessage() {} +func (*MutateCustomerFeedResult) Descriptor() ([]byte, []int) { + return fileDescriptor_customer_feed_service_33fd8a34f2b662ec, []int{4} +} +func (m *MutateCustomerFeedResult) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateCustomerFeedResult.Unmarshal(m, b) +} +func (m *MutateCustomerFeedResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateCustomerFeedResult.Marshal(b, m, deterministic) +} +func (dst *MutateCustomerFeedResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateCustomerFeedResult.Merge(dst, src) +} +func (m *MutateCustomerFeedResult) XXX_Size() int { + return xxx_messageInfo_MutateCustomerFeedResult.Size(m) +} +func (m *MutateCustomerFeedResult) XXX_DiscardUnknown() { + xxx_messageInfo_MutateCustomerFeedResult.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateCustomerFeedResult proto.InternalMessageInfo + +func (m *MutateCustomerFeedResult) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetCustomerFeedRequest)(nil), "google.ads.googleads.v0.services.GetCustomerFeedRequest") + proto.RegisterType((*MutateCustomerFeedsRequest)(nil), "google.ads.googleads.v0.services.MutateCustomerFeedsRequest") + proto.RegisterType((*CustomerFeedOperation)(nil), "google.ads.googleads.v0.services.CustomerFeedOperation") + proto.RegisterType((*MutateCustomerFeedsResponse)(nil), "google.ads.googleads.v0.services.MutateCustomerFeedsResponse") + proto.RegisterType((*MutateCustomerFeedResult)(nil), "google.ads.googleads.v0.services.MutateCustomerFeedResult") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// CustomerFeedServiceClient is the client API for CustomerFeedService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type CustomerFeedServiceClient interface { + // Returns the requested customer feed in full detail. + GetCustomerFeed(ctx context.Context, in *GetCustomerFeedRequest, opts ...grpc.CallOption) (*resources.CustomerFeed, error) + // Creates, updates, or removes customer feeds. Operation statuses are + // returned. + MutateCustomerFeeds(ctx context.Context, in *MutateCustomerFeedsRequest, opts ...grpc.CallOption) (*MutateCustomerFeedsResponse, error) +} + +type customerFeedServiceClient struct { + cc *grpc.ClientConn +} + +func NewCustomerFeedServiceClient(cc *grpc.ClientConn) CustomerFeedServiceClient { + return &customerFeedServiceClient{cc} +} + +func (c *customerFeedServiceClient) GetCustomerFeed(ctx context.Context, in *GetCustomerFeedRequest, opts ...grpc.CallOption) (*resources.CustomerFeed, error) { + out := new(resources.CustomerFeed) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.CustomerFeedService/GetCustomerFeed", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *customerFeedServiceClient) MutateCustomerFeeds(ctx context.Context, in *MutateCustomerFeedsRequest, opts ...grpc.CallOption) (*MutateCustomerFeedsResponse, error) { + out := new(MutateCustomerFeedsResponse) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.CustomerFeedService/MutateCustomerFeeds", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// CustomerFeedServiceServer is the server API for CustomerFeedService service. +type CustomerFeedServiceServer interface { + // Returns the requested customer feed in full detail. + GetCustomerFeed(context.Context, *GetCustomerFeedRequest) (*resources.CustomerFeed, error) + // Creates, updates, or removes customer feeds. Operation statuses are + // returned. + MutateCustomerFeeds(context.Context, *MutateCustomerFeedsRequest) (*MutateCustomerFeedsResponse, error) +} + +func RegisterCustomerFeedServiceServer(s *grpc.Server, srv CustomerFeedServiceServer) { + s.RegisterService(&_CustomerFeedService_serviceDesc, srv) +} + +func _CustomerFeedService_GetCustomerFeed_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetCustomerFeedRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CustomerFeedServiceServer).GetCustomerFeed(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.CustomerFeedService/GetCustomerFeed", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CustomerFeedServiceServer).GetCustomerFeed(ctx, req.(*GetCustomerFeedRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CustomerFeedService_MutateCustomerFeeds_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MutateCustomerFeedsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CustomerFeedServiceServer).MutateCustomerFeeds(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.CustomerFeedService/MutateCustomerFeeds", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CustomerFeedServiceServer).MutateCustomerFeeds(ctx, req.(*MutateCustomerFeedsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _CustomerFeedService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.CustomerFeedService", + HandlerType: (*CustomerFeedServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetCustomerFeed", + Handler: _CustomerFeedService_GetCustomerFeed_Handler, + }, + { + MethodName: "MutateCustomerFeeds", + Handler: _CustomerFeedService_MutateCustomerFeeds_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/customer_feed_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/customer_feed_service.proto", fileDescriptor_customer_feed_service_33fd8a34f2b662ec) +} + +var fileDescriptor_customer_feed_service_33fd8a34f2b662ec = []byte{ + // 591 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x94, 0x41, 0x8b, 0xd3, 0x40, + 0x14, 0xc7, 0x4d, 0x2a, 0x2b, 0x3b, 0x51, 0x84, 0x59, 0x94, 0x10, 0x05, 0x4b, 0xf4, 0xb0, 0xf4, + 0x30, 0x53, 0x2b, 0xb2, 0xd2, 0xdd, 0x22, 0xad, 0xb0, 0xdd, 0x3d, 0xac, 0x2e, 0x51, 0x56, 0x90, + 0x42, 0x99, 0x6d, 0x5e, 0x43, 0xd8, 0x26, 0x13, 0x33, 0x93, 0x5e, 0x96, 0xbd, 0xf8, 0x0d, 0x44, + 0xf0, 0xae, 0x47, 0xef, 0x7e, 0x09, 0x6f, 0xe2, 0xc5, 0x0f, 0xe0, 0x07, 0x91, 0x64, 0x32, 0xb1, + 0x75, 0x5b, 0xaa, 0xbd, 0xbd, 0x4c, 0xde, 0xfb, 0xbd, 0x37, 0xff, 0xf7, 0xde, 0xa0, 0xbd, 0x80, + 0xf3, 0x60, 0x02, 0x94, 0xf9, 0x82, 0x2a, 0x33, 0xb7, 0xa6, 0x4d, 0x2a, 0x20, 0x9d, 0x86, 0x23, + 0x10, 0x74, 0x94, 0x09, 0xc9, 0x23, 0x48, 0x87, 0x63, 0x00, 0x7f, 0x58, 0x1e, 0x93, 0x24, 0xe5, + 0x92, 0xe3, 0xba, 0x0a, 0x21, 0xcc, 0x17, 0xa4, 0x8a, 0x26, 0xd3, 0x26, 0xd1, 0xd1, 0xce, 0xe3, + 0x65, 0xfc, 0x14, 0x04, 0xcf, 0xd2, 0x4b, 0x09, 0x14, 0xd8, 0xb9, 0xab, 0xc3, 0x92, 0x90, 0xb2, + 0x38, 0xe6, 0x92, 0xc9, 0x90, 0xc7, 0xa2, 0xfc, 0x5b, 0xa6, 0xa5, 0xc5, 0xd7, 0x69, 0x36, 0xa6, + 0xe3, 0x10, 0x26, 0xfe, 0x30, 0x62, 0xe2, 0x4c, 0x79, 0xb8, 0x1d, 0x74, 0xbb, 0x0f, 0xf2, 0x59, + 0x49, 0xde, 0x07, 0xf0, 0x3d, 0x78, 0x9b, 0x81, 0x90, 0xf8, 0x3e, 0xba, 0xa1, 0x53, 0x0f, 0x63, + 0x16, 0x81, 0x6d, 0xd4, 0x8d, 0xed, 0x4d, 0xef, 0xba, 0x3e, 0x7c, 0xce, 0x22, 0x70, 0x3f, 0x1a, + 0xc8, 0x39, 0xca, 0x24, 0x93, 0x30, 0x8b, 0x10, 0x9a, 0x71, 0x0f, 0x59, 0x55, 0xd1, 0xa1, 0x5f, + 0x12, 0x90, 0x3e, 0x3a, 0xf4, 0xf1, 0x6b, 0x84, 0x78, 0x02, 0xa9, 0x2a, 0xda, 0x36, 0xeb, 0xb5, + 0x6d, 0xab, 0xb5, 0x43, 0x56, 0x89, 0x45, 0x66, 0x93, 0xbd, 0xd0, 0xf1, 0xde, 0x0c, 0xca, 0x7d, + 0x6f, 0xa2, 0x5b, 0x0b, 0xbd, 0xf0, 0x2e, 0xb2, 0xb2, 0xc4, 0x67, 0x12, 0x0a, 0x19, 0xec, 0xab, + 0x75, 0x63, 0xdb, 0x6a, 0x39, 0x3a, 0xa7, 0x56, 0x8a, 0xec, 0xe7, 0x4a, 0x1d, 0x31, 0x71, 0xe6, + 0x21, 0xe5, 0x9e, 0xdb, 0xf8, 0x10, 0x6d, 0x8c, 0x52, 0x60, 0x52, 0xa9, 0x61, 0xb5, 0xe8, 0xd2, + 0x5a, 0xab, 0xb6, 0xcd, 0x15, 0x7b, 0x70, 0xc5, 0x2b, 0x01, 0x39, 0x4a, 0x81, 0x6d, 0x73, 0x6d, + 0x94, 0x02, 0x60, 0x1b, 0x6d, 0xa4, 0x10, 0xf1, 0x29, 0xd8, 0xb5, 0x5c, 0xe1, 0xfc, 0x8f, 0xfa, + 0xee, 0x59, 0x68, 0xb3, 0x12, 0xc5, 0x15, 0xe8, 0xce, 0xc2, 0x5e, 0x89, 0x84, 0xc7, 0x02, 0xf0, + 0x2b, 0x74, 0x2d, 0x05, 0x91, 0x4d, 0xa4, 0x6e, 0x44, 0x7b, 0x75, 0x23, 0x2e, 0xf3, 0xbc, 0x02, + 0xe1, 0x69, 0x94, 0xfb, 0x14, 0xd9, 0xcb, 0x9c, 0xfe, 0x69, 0xc4, 0x5a, 0x9f, 0x6a, 0x68, 0x6b, + 0x36, 0xf6, 0xa5, 0xca, 0x8d, 0xbf, 0x1a, 0xe8, 0xe6, 0x5f, 0xa3, 0x8b, 0x9f, 0xac, 0xae, 0x78, + 0xf1, 0xb4, 0x3b, 0xff, 0xab, 0xbe, 0xbb, 0xf3, 0xee, 0xc7, 0xaf, 0x0f, 0xe6, 0x43, 0x4c, 0xf3, + 0x1d, 0x3d, 0x9f, 0xbb, 0x46, 0x47, 0x0f, 0xb8, 0xa0, 0x8d, 0x6a, 0x69, 0x0b, 0xad, 0x69, 0xe3, + 0x02, 0x7f, 0x37, 0xd0, 0xd6, 0x82, 0x36, 0xe0, 0xbd, 0x75, 0xd4, 0xd6, 0x9b, 0xe6, 0x74, 0xd6, + 0x8c, 0x56, 0xbd, 0x77, 0x3b, 0xc5, 0x6d, 0x76, 0xdc, 0x56, 0x7e, 0x9b, 0x3f, 0xe5, 0x9f, 0xcf, + 0x6c, 0x6f, 0xa7, 0x71, 0x31, 0x7f, 0x99, 0x76, 0x54, 0x00, 0xdb, 0x46, 0xa3, 0xf7, 0xd3, 0x40, + 0x0f, 0x46, 0x3c, 0x5a, 0x59, 0x43, 0xcf, 0x5e, 0xd0, 0xc9, 0xe3, 0x7c, 0xe5, 0x8e, 0x8d, 0x37, + 0x07, 0x65, 0x74, 0xc0, 0x27, 0x2c, 0x0e, 0x08, 0x4f, 0x03, 0x1a, 0x40, 0x5c, 0x2c, 0xa4, 0x7e, + 0x11, 0x93, 0x50, 0x2c, 0x7f, 0x80, 0x77, 0xb5, 0xf1, 0xd9, 0xac, 0xf5, 0xbb, 0xdd, 0x2f, 0x66, + 0xbd, 0xaf, 0x80, 0x5d, 0x5f, 0x10, 0x65, 0xe6, 0xd6, 0x49, 0x93, 0x94, 0x89, 0xc5, 0x37, 0xed, + 0x32, 0xe8, 0xfa, 0x62, 0x50, 0xb9, 0x0c, 0x4e, 0x9a, 0x03, 0xed, 0x72, 0xba, 0x51, 0x14, 0xf0, + 0xe8, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0xc6, 0x9c, 0x9d, 0xc9, 0x00, 0x06, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/customer_manager_link_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/customer_manager_link_service.pb.go new file mode 100644 index 000000000..d71420b44 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/customer_manager_link_service.pb.go @@ -0,0 +1,174 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/customer_manager_link_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [CustomerManagerLinkService.GetCustomerManagerLink][google.ads.googleads.v0.services.CustomerManagerLinkService.GetCustomerManagerLink]. +type GetCustomerManagerLinkRequest struct { + // The resource name of the CustomerManagerLink to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetCustomerManagerLinkRequest) Reset() { *m = GetCustomerManagerLinkRequest{} } +func (m *GetCustomerManagerLinkRequest) String() string { return proto.CompactTextString(m) } +func (*GetCustomerManagerLinkRequest) ProtoMessage() {} +func (*GetCustomerManagerLinkRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_customer_manager_link_service_9df054ecaf272672, []int{0} +} +func (m *GetCustomerManagerLinkRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetCustomerManagerLinkRequest.Unmarshal(m, b) +} +func (m *GetCustomerManagerLinkRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetCustomerManagerLinkRequest.Marshal(b, m, deterministic) +} +func (dst *GetCustomerManagerLinkRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetCustomerManagerLinkRequest.Merge(dst, src) +} +func (m *GetCustomerManagerLinkRequest) XXX_Size() int { + return xxx_messageInfo_GetCustomerManagerLinkRequest.Size(m) +} +func (m *GetCustomerManagerLinkRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetCustomerManagerLinkRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetCustomerManagerLinkRequest proto.InternalMessageInfo + +func (m *GetCustomerManagerLinkRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetCustomerManagerLinkRequest)(nil), "google.ads.googleads.v0.services.GetCustomerManagerLinkRequest") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// CustomerManagerLinkServiceClient is the client API for CustomerManagerLinkService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type CustomerManagerLinkServiceClient interface { + // Returns the requested CustomerManagerLink in full detail. + GetCustomerManagerLink(ctx context.Context, in *GetCustomerManagerLinkRequest, opts ...grpc.CallOption) (*resources.CustomerManagerLink, error) +} + +type customerManagerLinkServiceClient struct { + cc *grpc.ClientConn +} + +func NewCustomerManagerLinkServiceClient(cc *grpc.ClientConn) CustomerManagerLinkServiceClient { + return &customerManagerLinkServiceClient{cc} +} + +func (c *customerManagerLinkServiceClient) GetCustomerManagerLink(ctx context.Context, in *GetCustomerManagerLinkRequest, opts ...grpc.CallOption) (*resources.CustomerManagerLink, error) { + out := new(resources.CustomerManagerLink) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.CustomerManagerLinkService/GetCustomerManagerLink", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// CustomerManagerLinkServiceServer is the server API for CustomerManagerLinkService service. +type CustomerManagerLinkServiceServer interface { + // Returns the requested CustomerManagerLink in full detail. + GetCustomerManagerLink(context.Context, *GetCustomerManagerLinkRequest) (*resources.CustomerManagerLink, error) +} + +func RegisterCustomerManagerLinkServiceServer(s *grpc.Server, srv CustomerManagerLinkServiceServer) { + s.RegisterService(&_CustomerManagerLinkService_serviceDesc, srv) +} + +func _CustomerManagerLinkService_GetCustomerManagerLink_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetCustomerManagerLinkRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CustomerManagerLinkServiceServer).GetCustomerManagerLink(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.CustomerManagerLinkService/GetCustomerManagerLink", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CustomerManagerLinkServiceServer).GetCustomerManagerLink(ctx, req.(*GetCustomerManagerLinkRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _CustomerManagerLinkService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.CustomerManagerLinkService", + HandlerType: (*CustomerManagerLinkServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetCustomerManagerLink", + Handler: _CustomerManagerLinkService_GetCustomerManagerLink_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/customer_manager_link_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/customer_manager_link_service.proto", fileDescriptor_customer_manager_link_service_9df054ecaf272672) +} + +var fileDescriptor_customer_manager_link_service_9df054ecaf272672 = []byte{ + // 351 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x72, 0x49, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xe2, 0xd4, + 0xa2, 0xb2, 0xcc, 0xe4, 0xd4, 0x62, 0xfd, 0xe4, 0xd2, 0xe2, 0x92, 0xfc, 0xdc, 0xd4, 0xa2, 0xf8, + 0xdc, 0xc4, 0xbc, 0xc4, 0xf4, 0xd4, 0xa2, 0xf8, 0x9c, 0xcc, 0xbc, 0xec, 0x78, 0xa8, 0xb4, 0x5e, + 0x41, 0x51, 0x7e, 0x49, 0xbe, 0x90, 0x02, 0x44, 0xab, 0x5e, 0x62, 0x4a, 0xb1, 0x1e, 0xdc, 0x14, + 0xbd, 0x32, 0x03, 0x3d, 0x98, 0x29, 0x52, 0xb6, 0xb8, 0xec, 0x29, 0x4a, 0x2d, 0xce, 0x2f, 0x2d, + 0xc2, 0x69, 0x11, 0xc4, 0x02, 0x29, 0x19, 0x98, 0xf6, 0x82, 0x4c, 0xfd, 0xc4, 0xbc, 0xbc, 0xfc, + 0x92, 0xc4, 0x92, 0xcc, 0xfc, 0xbc, 0x62, 0x88, 0xac, 0x92, 0x0b, 0x97, 0xac, 0x7b, 0x6a, 0x89, + 0x33, 0x54, 0xbf, 0x2f, 0x44, 0xbb, 0x4f, 0x66, 0x5e, 0x76, 0x50, 0x6a, 0x61, 0x69, 0x6a, 0x71, + 0x89, 0x90, 0x32, 0x17, 0x2f, 0xcc, 0x9e, 0xf8, 0xbc, 0xc4, 0xdc, 0x54, 0x09, 0x46, 0x05, 0x46, + 0x0d, 0xce, 0x20, 0x1e, 0x98, 0xa0, 0x5f, 0x62, 0x6e, 0xaa, 0xd1, 0x07, 0x46, 0x2e, 0x29, 0x2c, + 0x66, 0x04, 0x43, 0xbc, 0x20, 0x74, 0x91, 0x91, 0x4b, 0x0c, 0xbb, 0x2d, 0x42, 0xf6, 0x7a, 0x84, + 0xfc, 0xaf, 0x87, 0xd7, 0x7d, 0x52, 0x66, 0x38, 0x0d, 0x80, 0x07, 0x8f, 0x1e, 0x16, 0xed, 0x4a, + 0x76, 0x4d, 0x97, 0x9f, 0x4c, 0x66, 0xb2, 0x10, 0x32, 0x03, 0x85, 0x64, 0x35, 0x8a, 0x17, 0x6d, + 0x61, 0xc1, 0x59, 0xac, 0xaf, 0x05, 0x0f, 0x5a, 0x24, 0xbd, 0xc5, 0xfa, 0x5a, 0xb5, 0x4e, 0xf7, + 0x19, 0xb9, 0x54, 0x92, 0xf3, 0x73, 0x09, 0x3a, 0xdf, 0x49, 0x1e, 0x77, 0xc0, 0x04, 0x80, 0xa2, + 0x20, 0x80, 0x31, 0xca, 0x03, 0x6a, 0x48, 0x7a, 0x7e, 0x4e, 0x62, 0x5e, 0xba, 0x5e, 0x7e, 0x51, + 0xba, 0x7e, 0x7a, 0x6a, 0x1e, 0x38, 0x82, 0x60, 0x31, 0x5e, 0x90, 0x59, 0x8c, 0x3b, 0xa1, 0x59, + 0xc3, 0x18, 0x8b, 0x98, 0x98, 0xdd, 0x1d, 0x1d, 0x57, 0x31, 0x29, 0xb8, 0x43, 0x0c, 0x74, 0x4c, + 0x29, 0xd6, 0x83, 0x30, 0x41, 0xac, 0x30, 0x03, 0x3d, 0xa8, 0xc5, 0xc5, 0xa7, 0x60, 0x4a, 0x62, + 0x1c, 0x53, 0x8a, 0x63, 0xe0, 0x4a, 0x62, 0xc2, 0x0c, 0x62, 0x60, 0x4a, 0x92, 0xd8, 0xc0, 0x0e, + 0x30, 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, 0xbc, 0xe5, 0xd3, 0xc2, 0xe8, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/customer_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/customer_service.pb.go new file mode 100644 index 000000000..88d23aacb --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/customer_service.pb.go @@ -0,0 +1,653 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/customer_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import _ "github.com/golang/protobuf/ptypes/wrappers" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" +import field_mask "google.golang.org/genproto/protobuf/field_mask" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [CustomerService.GetCustomer][google.ads.googleads.v0.services.CustomerService.GetCustomer]. +type GetCustomerRequest struct { + // The resource name of the customer to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetCustomerRequest) Reset() { *m = GetCustomerRequest{} } +func (m *GetCustomerRequest) String() string { return proto.CompactTextString(m) } +func (*GetCustomerRequest) ProtoMessage() {} +func (*GetCustomerRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_customer_service_90b708bb54f49834, []int{0} +} +func (m *GetCustomerRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetCustomerRequest.Unmarshal(m, b) +} +func (m *GetCustomerRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetCustomerRequest.Marshal(b, m, deterministic) +} +func (dst *GetCustomerRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetCustomerRequest.Merge(dst, src) +} +func (m *GetCustomerRequest) XXX_Size() int { + return xxx_messageInfo_GetCustomerRequest.Size(m) +} +func (m *GetCustomerRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetCustomerRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetCustomerRequest proto.InternalMessageInfo + +func (m *GetCustomerRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +// Request message for [CustomerService.MutateCustomer][google.ads.googleads.v0.services.CustomerService.MutateCustomer]. +type MutateCustomerRequest struct { + // The ID of the customer being modified. + CustomerId string `protobuf:"bytes,1,opt,name=customer_id,json=customerId,proto3" json:"customer_id,omitempty"` + // The operation to perform on the customer + Operation *CustomerOperation `protobuf:"bytes,4,opt,name=operation,proto3" json:"operation,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateCustomerRequest) Reset() { *m = MutateCustomerRequest{} } +func (m *MutateCustomerRequest) String() string { return proto.CompactTextString(m) } +func (*MutateCustomerRequest) ProtoMessage() {} +func (*MutateCustomerRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_customer_service_90b708bb54f49834, []int{1} +} +func (m *MutateCustomerRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateCustomerRequest.Unmarshal(m, b) +} +func (m *MutateCustomerRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateCustomerRequest.Marshal(b, m, deterministic) +} +func (dst *MutateCustomerRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateCustomerRequest.Merge(dst, src) +} +func (m *MutateCustomerRequest) XXX_Size() int { + return xxx_messageInfo_MutateCustomerRequest.Size(m) +} +func (m *MutateCustomerRequest) XXX_DiscardUnknown() { + xxx_messageInfo_MutateCustomerRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateCustomerRequest proto.InternalMessageInfo + +func (m *MutateCustomerRequest) GetCustomerId() string { + if m != nil { + return m.CustomerId + } + return "" +} + +func (m *MutateCustomerRequest) GetOperation() *CustomerOperation { + if m != nil { + return m.Operation + } + return nil +} + +// Request message for [CustomerService.CreateCustomerClient][google.ads.googleads.v0.services.CustomerService.CreateCustomerClient]. +type CreateCustomerClientRequest struct { + // The ID of the Manager under whom client customer is being created. + CustomerId string `protobuf:"bytes,1,opt,name=customer_id,json=customerId,proto3" json:"customer_id,omitempty"` + // The new client customer to create. The resource name on this customer + // will be ignored. + CustomerClient *resources.Customer `protobuf:"bytes,2,opt,name=customer_client,json=customerClient,proto3" json:"customer_client,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CreateCustomerClientRequest) Reset() { *m = CreateCustomerClientRequest{} } +func (m *CreateCustomerClientRequest) String() string { return proto.CompactTextString(m) } +func (*CreateCustomerClientRequest) ProtoMessage() {} +func (*CreateCustomerClientRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_customer_service_90b708bb54f49834, []int{2} +} +func (m *CreateCustomerClientRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreateCustomerClientRequest.Unmarshal(m, b) +} +func (m *CreateCustomerClientRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreateCustomerClientRequest.Marshal(b, m, deterministic) +} +func (dst *CreateCustomerClientRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateCustomerClientRequest.Merge(dst, src) +} +func (m *CreateCustomerClientRequest) XXX_Size() int { + return xxx_messageInfo_CreateCustomerClientRequest.Size(m) +} +func (m *CreateCustomerClientRequest) XXX_DiscardUnknown() { + xxx_messageInfo_CreateCustomerClientRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_CreateCustomerClientRequest proto.InternalMessageInfo + +func (m *CreateCustomerClientRequest) GetCustomerId() string { + if m != nil { + return m.CustomerId + } + return "" +} + +func (m *CreateCustomerClientRequest) GetCustomerClient() *resources.Customer { + if m != nil { + return m.CustomerClient + } + return nil +} + +// A single update on a customer. +type CustomerOperation struct { + // Mutate operation. Only updates are supported for customer. + Update *resources.Customer `protobuf:"bytes,1,opt,name=update,proto3" json:"update,omitempty"` + // FieldMask that determines which resource fields are modified in an update. + UpdateMask *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CustomerOperation) Reset() { *m = CustomerOperation{} } +func (m *CustomerOperation) String() string { return proto.CompactTextString(m) } +func (*CustomerOperation) ProtoMessage() {} +func (*CustomerOperation) Descriptor() ([]byte, []int) { + return fileDescriptor_customer_service_90b708bb54f49834, []int{3} +} +func (m *CustomerOperation) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CustomerOperation.Unmarshal(m, b) +} +func (m *CustomerOperation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CustomerOperation.Marshal(b, m, deterministic) +} +func (dst *CustomerOperation) XXX_Merge(src proto.Message) { + xxx_messageInfo_CustomerOperation.Merge(dst, src) +} +func (m *CustomerOperation) XXX_Size() int { + return xxx_messageInfo_CustomerOperation.Size(m) +} +func (m *CustomerOperation) XXX_DiscardUnknown() { + xxx_messageInfo_CustomerOperation.DiscardUnknown(m) +} + +var xxx_messageInfo_CustomerOperation proto.InternalMessageInfo + +func (m *CustomerOperation) GetUpdate() *resources.Customer { + if m != nil { + return m.Update + } + return nil +} + +func (m *CustomerOperation) GetUpdateMask() *field_mask.FieldMask { + if m != nil { + return m.UpdateMask + } + return nil +} + +// Response message for CreateCustomerClient mutate. +type CreateCustomerClientResponse struct { + // The resource name of the newly created customer client. + ResourceName string `protobuf:"bytes,2,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CreateCustomerClientResponse) Reset() { *m = CreateCustomerClientResponse{} } +func (m *CreateCustomerClientResponse) String() string { return proto.CompactTextString(m) } +func (*CreateCustomerClientResponse) ProtoMessage() {} +func (*CreateCustomerClientResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_customer_service_90b708bb54f49834, []int{4} +} +func (m *CreateCustomerClientResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreateCustomerClientResponse.Unmarshal(m, b) +} +func (m *CreateCustomerClientResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreateCustomerClientResponse.Marshal(b, m, deterministic) +} +func (dst *CreateCustomerClientResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateCustomerClientResponse.Merge(dst, src) +} +func (m *CreateCustomerClientResponse) XXX_Size() int { + return xxx_messageInfo_CreateCustomerClientResponse.Size(m) +} +func (m *CreateCustomerClientResponse) XXX_DiscardUnknown() { + xxx_messageInfo_CreateCustomerClientResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_CreateCustomerClientResponse proto.InternalMessageInfo + +func (m *CreateCustomerClientResponse) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +// Response message for customer mutate. +type MutateCustomerResponse struct { + // Result for the mutate. + Result *MutateCustomerResult `protobuf:"bytes,2,opt,name=result,proto3" json:"result,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateCustomerResponse) Reset() { *m = MutateCustomerResponse{} } +func (m *MutateCustomerResponse) String() string { return proto.CompactTextString(m) } +func (*MutateCustomerResponse) ProtoMessage() {} +func (*MutateCustomerResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_customer_service_90b708bb54f49834, []int{5} +} +func (m *MutateCustomerResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateCustomerResponse.Unmarshal(m, b) +} +func (m *MutateCustomerResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateCustomerResponse.Marshal(b, m, deterministic) +} +func (dst *MutateCustomerResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateCustomerResponse.Merge(dst, src) +} +func (m *MutateCustomerResponse) XXX_Size() int { + return xxx_messageInfo_MutateCustomerResponse.Size(m) +} +func (m *MutateCustomerResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MutateCustomerResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateCustomerResponse proto.InternalMessageInfo + +func (m *MutateCustomerResponse) GetResult() *MutateCustomerResult { + if m != nil { + return m.Result + } + return nil +} + +// The result for the customer mutate. +type MutateCustomerResult struct { + // Returned for successful operations. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateCustomerResult) Reset() { *m = MutateCustomerResult{} } +func (m *MutateCustomerResult) String() string { return proto.CompactTextString(m) } +func (*MutateCustomerResult) ProtoMessage() {} +func (*MutateCustomerResult) Descriptor() ([]byte, []int) { + return fileDescriptor_customer_service_90b708bb54f49834, []int{6} +} +func (m *MutateCustomerResult) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateCustomerResult.Unmarshal(m, b) +} +func (m *MutateCustomerResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateCustomerResult.Marshal(b, m, deterministic) +} +func (dst *MutateCustomerResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateCustomerResult.Merge(dst, src) +} +func (m *MutateCustomerResult) XXX_Size() int { + return xxx_messageInfo_MutateCustomerResult.Size(m) +} +func (m *MutateCustomerResult) XXX_DiscardUnknown() { + xxx_messageInfo_MutateCustomerResult.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateCustomerResult proto.InternalMessageInfo + +func (m *MutateCustomerResult) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +// Request message for [CustomerService.ListAccessibleCustomers][google.ads.googleads.v0.services.CustomerService.ListAccessibleCustomers]. +type ListAccessibleCustomersRequest struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListAccessibleCustomersRequest) Reset() { *m = ListAccessibleCustomersRequest{} } +func (m *ListAccessibleCustomersRequest) String() string { return proto.CompactTextString(m) } +func (*ListAccessibleCustomersRequest) ProtoMessage() {} +func (*ListAccessibleCustomersRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_customer_service_90b708bb54f49834, []int{7} +} +func (m *ListAccessibleCustomersRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListAccessibleCustomersRequest.Unmarshal(m, b) +} +func (m *ListAccessibleCustomersRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListAccessibleCustomersRequest.Marshal(b, m, deterministic) +} +func (dst *ListAccessibleCustomersRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListAccessibleCustomersRequest.Merge(dst, src) +} +func (m *ListAccessibleCustomersRequest) XXX_Size() int { + return xxx_messageInfo_ListAccessibleCustomersRequest.Size(m) +} +func (m *ListAccessibleCustomersRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ListAccessibleCustomersRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ListAccessibleCustomersRequest proto.InternalMessageInfo + +// Response message for [CustomerService.ListAccessibleCustomers][google.ads.googleads.v0.services.CustomerService.ListAccessibleCustomers]. +type ListAccessibleCustomersResponse struct { + // Resource name of customers directly accessible by the + // user authenticating the call. + ResourceNames []string `protobuf:"bytes,1,rep,name=resource_names,json=resourceNames,proto3" json:"resource_names,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListAccessibleCustomersResponse) Reset() { *m = ListAccessibleCustomersResponse{} } +func (m *ListAccessibleCustomersResponse) String() string { return proto.CompactTextString(m) } +func (*ListAccessibleCustomersResponse) ProtoMessage() {} +func (*ListAccessibleCustomersResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_customer_service_90b708bb54f49834, []int{8} +} +func (m *ListAccessibleCustomersResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListAccessibleCustomersResponse.Unmarshal(m, b) +} +func (m *ListAccessibleCustomersResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListAccessibleCustomersResponse.Marshal(b, m, deterministic) +} +func (dst *ListAccessibleCustomersResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListAccessibleCustomersResponse.Merge(dst, src) +} +func (m *ListAccessibleCustomersResponse) XXX_Size() int { + return xxx_messageInfo_ListAccessibleCustomersResponse.Size(m) +} +func (m *ListAccessibleCustomersResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ListAccessibleCustomersResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ListAccessibleCustomersResponse proto.InternalMessageInfo + +func (m *ListAccessibleCustomersResponse) GetResourceNames() []string { + if m != nil { + return m.ResourceNames + } + return nil +} + +func init() { + proto.RegisterType((*GetCustomerRequest)(nil), "google.ads.googleads.v0.services.GetCustomerRequest") + proto.RegisterType((*MutateCustomerRequest)(nil), "google.ads.googleads.v0.services.MutateCustomerRequest") + proto.RegisterType((*CreateCustomerClientRequest)(nil), "google.ads.googleads.v0.services.CreateCustomerClientRequest") + proto.RegisterType((*CustomerOperation)(nil), "google.ads.googleads.v0.services.CustomerOperation") + proto.RegisterType((*CreateCustomerClientResponse)(nil), "google.ads.googleads.v0.services.CreateCustomerClientResponse") + proto.RegisterType((*MutateCustomerResponse)(nil), "google.ads.googleads.v0.services.MutateCustomerResponse") + proto.RegisterType((*MutateCustomerResult)(nil), "google.ads.googleads.v0.services.MutateCustomerResult") + proto.RegisterType((*ListAccessibleCustomersRequest)(nil), "google.ads.googleads.v0.services.ListAccessibleCustomersRequest") + proto.RegisterType((*ListAccessibleCustomersResponse)(nil), "google.ads.googleads.v0.services.ListAccessibleCustomersResponse") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// CustomerServiceClient is the client API for CustomerService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type CustomerServiceClient interface { + // Returns the requested customer in full detail. + GetCustomer(ctx context.Context, in *GetCustomerRequest, opts ...grpc.CallOption) (*resources.Customer, error) + // Updates a customer. Operation statuses are returned. + MutateCustomer(ctx context.Context, in *MutateCustomerRequest, opts ...grpc.CallOption) (*MutateCustomerResponse, error) + // Returns resource names of customers directly accessible by the + // user authenticating the call. + ListAccessibleCustomers(ctx context.Context, in *ListAccessibleCustomersRequest, opts ...grpc.CallOption) (*ListAccessibleCustomersResponse, error) + // Creates a new client under manager. The new client customer is returned. + CreateCustomerClient(ctx context.Context, in *CreateCustomerClientRequest, opts ...grpc.CallOption) (*CreateCustomerClientResponse, error) +} + +type customerServiceClient struct { + cc *grpc.ClientConn +} + +func NewCustomerServiceClient(cc *grpc.ClientConn) CustomerServiceClient { + return &customerServiceClient{cc} +} + +func (c *customerServiceClient) GetCustomer(ctx context.Context, in *GetCustomerRequest, opts ...grpc.CallOption) (*resources.Customer, error) { + out := new(resources.Customer) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.CustomerService/GetCustomer", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *customerServiceClient) MutateCustomer(ctx context.Context, in *MutateCustomerRequest, opts ...grpc.CallOption) (*MutateCustomerResponse, error) { + out := new(MutateCustomerResponse) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.CustomerService/MutateCustomer", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *customerServiceClient) ListAccessibleCustomers(ctx context.Context, in *ListAccessibleCustomersRequest, opts ...grpc.CallOption) (*ListAccessibleCustomersResponse, error) { + out := new(ListAccessibleCustomersResponse) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.CustomerService/ListAccessibleCustomers", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *customerServiceClient) CreateCustomerClient(ctx context.Context, in *CreateCustomerClientRequest, opts ...grpc.CallOption) (*CreateCustomerClientResponse, error) { + out := new(CreateCustomerClientResponse) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.CustomerService/CreateCustomerClient", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// CustomerServiceServer is the server API for CustomerService service. +type CustomerServiceServer interface { + // Returns the requested customer in full detail. + GetCustomer(context.Context, *GetCustomerRequest) (*resources.Customer, error) + // Updates a customer. Operation statuses are returned. + MutateCustomer(context.Context, *MutateCustomerRequest) (*MutateCustomerResponse, error) + // Returns resource names of customers directly accessible by the + // user authenticating the call. + ListAccessibleCustomers(context.Context, *ListAccessibleCustomersRequest) (*ListAccessibleCustomersResponse, error) + // Creates a new client under manager. The new client customer is returned. + CreateCustomerClient(context.Context, *CreateCustomerClientRequest) (*CreateCustomerClientResponse, error) +} + +func RegisterCustomerServiceServer(s *grpc.Server, srv CustomerServiceServer) { + s.RegisterService(&_CustomerService_serviceDesc, srv) +} + +func _CustomerService_GetCustomer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetCustomerRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CustomerServiceServer).GetCustomer(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.CustomerService/GetCustomer", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CustomerServiceServer).GetCustomer(ctx, req.(*GetCustomerRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CustomerService_MutateCustomer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MutateCustomerRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CustomerServiceServer).MutateCustomer(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.CustomerService/MutateCustomer", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CustomerServiceServer).MutateCustomer(ctx, req.(*MutateCustomerRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CustomerService_ListAccessibleCustomers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListAccessibleCustomersRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CustomerServiceServer).ListAccessibleCustomers(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.CustomerService/ListAccessibleCustomers", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CustomerServiceServer).ListAccessibleCustomers(ctx, req.(*ListAccessibleCustomersRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CustomerService_CreateCustomerClient_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateCustomerClientRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CustomerServiceServer).CreateCustomerClient(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.CustomerService/CreateCustomerClient", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CustomerServiceServer).CreateCustomerClient(ctx, req.(*CreateCustomerClientRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _CustomerService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.CustomerService", + HandlerType: (*CustomerServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetCustomer", + Handler: _CustomerService_GetCustomer_Handler, + }, + { + MethodName: "MutateCustomer", + Handler: _CustomerService_MutateCustomer_Handler, + }, + { + MethodName: "ListAccessibleCustomers", + Handler: _CustomerService_ListAccessibleCustomers_Handler, + }, + { + MethodName: "CreateCustomerClient", + Handler: _CustomerService_CreateCustomerClient_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/customer_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/customer_service.proto", fileDescriptor_customer_service_90b708bb54f49834) +} + +var fileDescriptor_customer_service_90b708bb54f49834 = []byte{ + // 697 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x55, 0x4f, 0x4f, 0xd4, 0x4e, + 0x18, 0xce, 0x2c, 0xbf, 0x6c, 0xc2, 0xbb, 0x3f, 0x20, 0x4e, 0x50, 0x37, 0x2b, 0x81, 0xb5, 0x42, + 0xc0, 0x35, 0xb6, 0x1b, 0x30, 0xa2, 0x4b, 0xd6, 0xb8, 0x6c, 0x22, 0x98, 0x08, 0x62, 0x35, 0x1c, + 0xcc, 0x26, 0xa4, 0xb4, 0xc3, 0xda, 0xd0, 0x76, 0x6a, 0xa7, 0xc5, 0x03, 0xe1, 0xe2, 0x95, 0xa3, + 0x7a, 0xf0, 0xea, 0xd1, 0xb3, 0x9f, 0xc2, 0xc4, 0x93, 0x7c, 0x04, 0x3f, 0x88, 0xe9, 0x74, 0xa6, + 0xec, 0xbf, 0xb2, 0x2c, 0xde, 0xde, 0x9d, 0x7d, 0x9f, 0xe7, 0x7d, 0xde, 0xbf, 0x85, 0xd5, 0x36, + 0xa5, 0x6d, 0x87, 0x68, 0x86, 0xc5, 0xb4, 0xc4, 0x8c, 0xad, 0xa3, 0xaa, 0xc6, 0x48, 0x70, 0x64, + 0x9b, 0x84, 0x69, 0x66, 0xc4, 0x42, 0xea, 0x92, 0x60, 0x4f, 0xbc, 0xa8, 0x7e, 0x40, 0x43, 0x8a, + 0xcb, 0x89, 0xb7, 0x6a, 0x58, 0x4c, 0x4d, 0x81, 0xea, 0x51, 0x55, 0x95, 0xc0, 0x52, 0x35, 0x8b, + 0x3a, 0x20, 0x8c, 0x46, 0x41, 0x27, 0x77, 0xc2, 0x59, 0x9a, 0x91, 0x08, 0xdf, 0xd6, 0x0c, 0xcf, + 0xa3, 0xa1, 0x11, 0xda, 0xd4, 0x63, 0xe2, 0x5f, 0x11, 0x51, 0xe3, 0xbf, 0xf6, 0xa3, 0x03, 0xed, + 0xc0, 0x26, 0x8e, 0xb5, 0xe7, 0x1a, 0xec, 0x50, 0x78, 0xcc, 0xf6, 0x7a, 0x7c, 0x08, 0x0c, 0xdf, + 0x27, 0x81, 0x60, 0x50, 0x1e, 0x03, 0xde, 0x20, 0x61, 0x53, 0x04, 0xd5, 0xc9, 0xfb, 0x88, 0xb0, + 0x10, 0xdf, 0x81, 0x09, 0xa9, 0x68, 0xcf, 0x33, 0x5c, 0x52, 0x44, 0x65, 0xb4, 0x34, 0xae, 0xff, + 0x2f, 0x1f, 0xb7, 0x0d, 0x97, 0x28, 0xa7, 0x08, 0xae, 0x6f, 0x45, 0xa1, 0x11, 0x92, 0x5e, 0xf8, + 0x1c, 0x14, 0xd2, 0x12, 0xd9, 0x96, 0x00, 0x83, 0x7c, 0x7a, 0x6e, 0xe1, 0x57, 0x30, 0x4e, 0x7d, + 0x12, 0xf0, 0x5c, 0x8a, 0xff, 0x95, 0xd1, 0x52, 0x61, 0x79, 0x45, 0x1d, 0x56, 0x3d, 0x55, 0x86, + 0x79, 0x29, 0xa1, 0xfa, 0x39, 0x8b, 0xf2, 0x19, 0xc1, 0xad, 0x66, 0x40, 0x3a, 0xd4, 0x34, 0x1d, + 0x9b, 0x78, 0xe1, 0xa5, 0x35, 0xbd, 0x81, 0xa9, 0xd4, 0xc1, 0xe4, 0xd0, 0x62, 0x8e, 0x2b, 0xbb, + 0x97, 0xa9, 0x2c, 0xed, 0x5a, 0x2a, 0x4d, 0x9f, 0x34, 0xbb, 0xa2, 0x2b, 0x5f, 0x10, 0x5c, 0xeb, + 0xd3, 0x8d, 0x9b, 0x90, 0x8f, 0x7c, 0xcb, 0x08, 0x93, 0xc2, 0x8e, 0x18, 0x42, 0x40, 0xf1, 0x1a, + 0x14, 0x12, 0x8b, 0xf7, 0x5b, 0x88, 0x2d, 0x49, 0x26, 0xd9, 0x70, 0xf5, 0x59, 0x3c, 0x12, 0x5b, + 0x06, 0x3b, 0xd4, 0x21, 0x71, 0x8f, 0x6d, 0xa5, 0x09, 0x33, 0x83, 0xab, 0xc5, 0x7c, 0xea, 0x31, + 0xd2, 0x3f, 0x01, 0xb9, 0x01, 0x13, 0xf0, 0x0e, 0x6e, 0xf4, 0x0e, 0x80, 0x80, 0x6f, 0x43, 0x3e, + 0x20, 0x2c, 0x72, 0x64, 0x0d, 0x1f, 0x0e, 0xef, 0x6e, 0x1f, 0x53, 0xe4, 0x84, 0xba, 0x60, 0x51, + 0xd6, 0x60, 0x7a, 0xd0, 0xff, 0x97, 0x1b, 0xd4, 0x32, 0xcc, 0xbe, 0xb0, 0x59, 0xd8, 0x30, 0x4d, + 0xc2, 0x98, 0xbd, 0xef, 0xa4, 0x24, 0x4c, 0x0c, 0x87, 0xb2, 0x09, 0x73, 0x99, 0x1e, 0x22, 0xa3, + 0x05, 0x98, 0xec, 0x8a, 0xc4, 0x8a, 0xa8, 0x3c, 0xb6, 0x34, 0xae, 0x4f, 0x74, 0x86, 0x62, 0xcb, + 0xa7, 0x79, 0x98, 0x92, 0xe0, 0xd7, 0x49, 0x6a, 0xf8, 0x2b, 0x82, 0x42, 0xc7, 0x92, 0xe1, 0x07, + 0xc3, 0x8b, 0xd1, 0xbf, 0x93, 0xa5, 0x51, 0x66, 0x44, 0x59, 0xfc, 0xf8, 0xfb, 0xcf, 0xa7, 0xdc, + 0x6d, 0x3c, 0x17, 0x1f, 0x97, 0xe3, 0x2e, 0xe1, 0x75, 0x39, 0xa1, 0x4c, 0xab, 0x9c, 0xe0, 0x1f, + 0x08, 0x26, 0xbb, 0x2b, 0x8b, 0x57, 0x47, 0xef, 0x55, 0xa2, 0xf0, 0xd1, 0x15, 0x9a, 0xcc, 0x8b, + 0xab, 0x68, 0x5c, 0xee, 0x5d, 0x65, 0x3e, 0x96, 0x7b, 0xae, 0xef, 0xb8, 0x63, 0x63, 0xeb, 0x95, + 0x93, 0x9a, 0xcb, 0xd1, 0x35, 0x54, 0xc1, 0xbf, 0x10, 0xdc, 0xcc, 0xe8, 0x18, 0x7e, 0x3a, 0x5c, + 0xc6, 0xc5, 0xe3, 0x50, 0x6a, 0xfc, 0x03, 0x83, 0xc8, 0xe8, 0x3e, 0xcf, 0x68, 0x11, 0x2f, 0x74, + 0x65, 0x54, 0x73, 0x32, 0x34, 0x9f, 0x21, 0x98, 0x1e, 0xb4, 0x8f, 0xb8, 0x7e, 0x89, 0xb3, 0x98, + 0x7d, 0xf5, 0x4a, 0x4f, 0xae, 0x0a, 0x17, 0x69, 0xd4, 0x79, 0x1a, 0xab, 0xca, 0xf2, 0xc5, 0x8d, + 0x31, 0x07, 0x70, 0xd4, 0x50, 0x65, 0xfd, 0x0c, 0xc1, 0xbc, 0x49, 0xdd, 0xa1, 0x22, 0xd6, 0xa7, + 0x7b, 0x76, 0x66, 0x27, 0xbe, 0x5e, 0x3b, 0xe8, 0xed, 0xa6, 0x40, 0xb6, 0xa9, 0x63, 0x78, 0x6d, + 0x95, 0x06, 0x6d, 0xad, 0x4d, 0x3c, 0x7e, 0xdb, 0xe4, 0x07, 0xd4, 0xb7, 0x59, 0xf6, 0xa7, 0x7a, + 0x4d, 0x1a, 0xdf, 0x72, 0x63, 0x1b, 0x8d, 0xc6, 0xf7, 0x5c, 0x79, 0x23, 0x21, 0x6c, 0x58, 0x4c, + 0x4d, 0xcc, 0xd8, 0xda, 0xad, 0xaa, 0x22, 0x30, 0xfb, 0x29, 0x5d, 0x5a, 0x0d, 0x8b, 0xb5, 0x52, + 0x97, 0xd6, 0x6e, 0xb5, 0x25, 0x5d, 0xf6, 0xf3, 0x5c, 0xc0, 0xca, 0xdf, 0x00, 0x00, 0x00, 0xff, + 0xff, 0x2a, 0x1f, 0x64, 0x81, 0x2a, 0x08, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/display_keyword_view_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/display_keyword_view_service.pb.go new file mode 100644 index 000000000..6f3fb7bd9 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/display_keyword_view_service.pb.go @@ -0,0 +1,175 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/display_keyword_view_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [DisplayKeywordViewService.GetDisplayKeywordView][google.ads.googleads.v0.services.DisplayKeywordViewService.GetDisplayKeywordView]. +type GetDisplayKeywordViewRequest struct { + // The resource name of the display keyword view to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetDisplayKeywordViewRequest) Reset() { *m = GetDisplayKeywordViewRequest{} } +func (m *GetDisplayKeywordViewRequest) String() string { return proto.CompactTextString(m) } +func (*GetDisplayKeywordViewRequest) ProtoMessage() {} +func (*GetDisplayKeywordViewRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_display_keyword_view_service_5be79eacea48f3f3, []int{0} +} +func (m *GetDisplayKeywordViewRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetDisplayKeywordViewRequest.Unmarshal(m, b) +} +func (m *GetDisplayKeywordViewRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetDisplayKeywordViewRequest.Marshal(b, m, deterministic) +} +func (dst *GetDisplayKeywordViewRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetDisplayKeywordViewRequest.Merge(dst, src) +} +func (m *GetDisplayKeywordViewRequest) XXX_Size() int { + return xxx_messageInfo_GetDisplayKeywordViewRequest.Size(m) +} +func (m *GetDisplayKeywordViewRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetDisplayKeywordViewRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetDisplayKeywordViewRequest proto.InternalMessageInfo + +func (m *GetDisplayKeywordViewRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetDisplayKeywordViewRequest)(nil), "google.ads.googleads.v0.services.GetDisplayKeywordViewRequest") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// DisplayKeywordViewServiceClient is the client API for DisplayKeywordViewService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type DisplayKeywordViewServiceClient interface { + // Returns the requested display keyword view in full detail. + GetDisplayKeywordView(ctx context.Context, in *GetDisplayKeywordViewRequest, opts ...grpc.CallOption) (*resources.DisplayKeywordView, error) +} + +type displayKeywordViewServiceClient struct { + cc *grpc.ClientConn +} + +func NewDisplayKeywordViewServiceClient(cc *grpc.ClientConn) DisplayKeywordViewServiceClient { + return &displayKeywordViewServiceClient{cc} +} + +func (c *displayKeywordViewServiceClient) GetDisplayKeywordView(ctx context.Context, in *GetDisplayKeywordViewRequest, opts ...grpc.CallOption) (*resources.DisplayKeywordView, error) { + out := new(resources.DisplayKeywordView) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.DisplayKeywordViewService/GetDisplayKeywordView", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// DisplayKeywordViewServiceServer is the server API for DisplayKeywordViewService service. +type DisplayKeywordViewServiceServer interface { + // Returns the requested display keyword view in full detail. + GetDisplayKeywordView(context.Context, *GetDisplayKeywordViewRequest) (*resources.DisplayKeywordView, error) +} + +func RegisterDisplayKeywordViewServiceServer(s *grpc.Server, srv DisplayKeywordViewServiceServer) { + s.RegisterService(&_DisplayKeywordViewService_serviceDesc, srv) +} + +func _DisplayKeywordViewService_GetDisplayKeywordView_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetDisplayKeywordViewRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DisplayKeywordViewServiceServer).GetDisplayKeywordView(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.DisplayKeywordViewService/GetDisplayKeywordView", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DisplayKeywordViewServiceServer).GetDisplayKeywordView(ctx, req.(*GetDisplayKeywordViewRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _DisplayKeywordViewService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.DisplayKeywordViewService", + HandlerType: (*DisplayKeywordViewServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetDisplayKeywordView", + Handler: _DisplayKeywordViewService_GetDisplayKeywordView_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/display_keyword_view_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/display_keyword_view_service.proto", fileDescriptor_display_keyword_view_service_5be79eacea48f3f3) +} + +var fileDescriptor_display_keyword_view_service_5be79eacea48f3f3 = []byte{ + // 354 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x52, 0xcd, 0x4a, 0xc3, 0x40, + 0x10, 0x26, 0x15, 0x04, 0x83, 0x5e, 0x02, 0x82, 0x96, 0x22, 0xa5, 0x7a, 0x90, 0x1e, 0x76, 0x83, + 0x52, 0x3c, 0x68, 0x85, 0xb4, 0x42, 0x05, 0x41, 0x4a, 0x85, 0x1e, 0x24, 0x10, 0xd6, 0x66, 0x08, + 0x8b, 0x4d, 0x36, 0xee, 0x6c, 0x53, 0x8a, 0x78, 0xf1, 0x15, 0x7c, 0x03, 0x8f, 0x3e, 0x8a, 0xe0, + 0xc9, 0xbb, 0x27, 0x6f, 0xbe, 0x84, 0xa4, 0xdb, 0x2d, 0x4a, 0x8d, 0xbd, 0x7d, 0x64, 0xe7, 0xfb, + 0x99, 0x6f, 0x62, 0xb7, 0x23, 0x21, 0xa2, 0x21, 0x50, 0x16, 0x22, 0xd5, 0x30, 0x47, 0x99, 0x4b, + 0x11, 0x64, 0xc6, 0x07, 0x80, 0x34, 0xe4, 0x98, 0x0e, 0xd9, 0x24, 0xb8, 0x85, 0xc9, 0x58, 0xc8, + 0x30, 0xc8, 0x38, 0x8c, 0x83, 0xd9, 0x2b, 0x49, 0xa5, 0x50, 0xc2, 0xa9, 0x6a, 0x26, 0x61, 0x21, + 0x92, 0xb9, 0x08, 0xc9, 0x5c, 0x62, 0x44, 0xca, 0x27, 0x45, 0x36, 0x12, 0x50, 0x8c, 0x64, 0x91, + 0x8f, 0xd6, 0x2f, 0x57, 0x0c, 0x3b, 0xe5, 0x94, 0x25, 0x89, 0x50, 0x4c, 0x71, 0x91, 0xa0, 0x7e, + 0xad, 0xb5, 0xed, 0x4a, 0x07, 0xd4, 0x99, 0xa6, 0x5f, 0x68, 0x76, 0x9f, 0xc3, 0xb8, 0x07, 0x77, + 0x23, 0x40, 0xe5, 0xec, 0xda, 0x1b, 0xc6, 0x25, 0x48, 0x58, 0x0c, 0x5b, 0x56, 0xd5, 0xda, 0x5f, + 0xeb, 0xad, 0x9b, 0x8f, 0x97, 0x2c, 0x86, 0x83, 0x2f, 0xcb, 0xde, 0x5e, 0x94, 0xb8, 0xd2, 0xf9, + 0x9d, 0x37, 0xcb, 0xde, 0xfc, 0xd3, 0xc3, 0x39, 0x25, 0xcb, 0x76, 0x27, 0xff, 0x85, 0x2b, 0x37, + 0x0a, 0xf9, 0xf3, 0x66, 0xc8, 0x22, 0xbb, 0xd6, 0x7c, 0x7c, 0xff, 0x7c, 0x2a, 0x1d, 0x39, 0x8d, + 0xbc, 0xc3, 0xfb, 0x5f, 0xeb, 0x35, 0x07, 0x23, 0x54, 0x22, 0x06, 0x89, 0xb4, 0x6e, 0x4a, 0xfd, + 0x41, 0x45, 0x5a, 0x7f, 0x68, 0x7d, 0x58, 0xf6, 0xde, 0x40, 0xc4, 0x4b, 0xb3, 0xb7, 0x76, 0x0a, + 0x3b, 0xe9, 0xe6, 0xdd, 0x77, 0xad, 0xeb, 0xf3, 0x99, 0x46, 0x24, 0x86, 0x2c, 0x89, 0x88, 0x90, + 0x11, 0x8d, 0x20, 0x99, 0x5e, 0xc6, 0x5c, 0x3a, 0xe5, 0x58, 0xfc, 0x7f, 0x1d, 0x1b, 0xf0, 0x5c, + 0x5a, 0xe9, 0x78, 0xde, 0x4b, 0xa9, 0xda, 0xd1, 0x82, 0x5e, 0x88, 0x44, 0xc3, 0x1c, 0xf5, 0x5d, + 0x32, 0x33, 0xc6, 0x57, 0x33, 0xe2, 0x7b, 0x21, 0xfa, 0xf3, 0x11, 0xbf, 0xef, 0xfa, 0x66, 0xe4, + 0x66, 0x75, 0x1a, 0xe0, 0xf0, 0x3b, 0x00, 0x00, 0xff, 0xff, 0xbc, 0xc8, 0x29, 0x64, 0xdf, 0x02, + 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/feed_item_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/feed_item_service.pb.go new file mode 100644 index 000000000..6d9396e38 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/feed_item_service.pb.go @@ -0,0 +1,546 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/feed_item_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" +import field_mask "google.golang.org/genproto/protobuf/field_mask" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [FeedItemService.GetFeedItem][google.ads.googleads.v0.services.FeedItemService.GetFeedItem]. +type GetFeedItemRequest struct { + // The resource name of the feed item to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetFeedItemRequest) Reset() { *m = GetFeedItemRequest{} } +func (m *GetFeedItemRequest) String() string { return proto.CompactTextString(m) } +func (*GetFeedItemRequest) ProtoMessage() {} +func (*GetFeedItemRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_feed_item_service_b421090e91948349, []int{0} +} +func (m *GetFeedItemRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetFeedItemRequest.Unmarshal(m, b) +} +func (m *GetFeedItemRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetFeedItemRequest.Marshal(b, m, deterministic) +} +func (dst *GetFeedItemRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetFeedItemRequest.Merge(dst, src) +} +func (m *GetFeedItemRequest) XXX_Size() int { + return xxx_messageInfo_GetFeedItemRequest.Size(m) +} +func (m *GetFeedItemRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetFeedItemRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetFeedItemRequest proto.InternalMessageInfo + +func (m *GetFeedItemRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +// Request message for [FeedItemService.MutateFeedItems][google.ads.googleads.v0.services.FeedItemService.MutateFeedItems]. +type MutateFeedItemsRequest struct { + // The ID of the customer whose feed items are being modified. + CustomerId string `protobuf:"bytes,1,opt,name=customer_id,json=customerId,proto3" json:"customer_id,omitempty"` + // The list of operations to perform on individual feed items. + Operations []*FeedItemOperation `protobuf:"bytes,2,rep,name=operations,proto3" json:"operations,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateFeedItemsRequest) Reset() { *m = MutateFeedItemsRequest{} } +func (m *MutateFeedItemsRequest) String() string { return proto.CompactTextString(m) } +func (*MutateFeedItemsRequest) ProtoMessage() {} +func (*MutateFeedItemsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_feed_item_service_b421090e91948349, []int{1} +} +func (m *MutateFeedItemsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateFeedItemsRequest.Unmarshal(m, b) +} +func (m *MutateFeedItemsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateFeedItemsRequest.Marshal(b, m, deterministic) +} +func (dst *MutateFeedItemsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateFeedItemsRequest.Merge(dst, src) +} +func (m *MutateFeedItemsRequest) XXX_Size() int { + return xxx_messageInfo_MutateFeedItemsRequest.Size(m) +} +func (m *MutateFeedItemsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_MutateFeedItemsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateFeedItemsRequest proto.InternalMessageInfo + +func (m *MutateFeedItemsRequest) GetCustomerId() string { + if m != nil { + return m.CustomerId + } + return "" +} + +func (m *MutateFeedItemsRequest) GetOperations() []*FeedItemOperation { + if m != nil { + return m.Operations + } + return nil +} + +// A single operation (create, update, remove) on an feed item. +type FeedItemOperation struct { + // FieldMask that determines which resource fields are modified in an update. + UpdateMask *field_mask.FieldMask `protobuf:"bytes,4,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // The mutate operation. + // + // Types that are valid to be assigned to Operation: + // *FeedItemOperation_Create + // *FeedItemOperation_Update + // *FeedItemOperation_Remove + Operation isFeedItemOperation_Operation `protobuf_oneof:"operation"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FeedItemOperation) Reset() { *m = FeedItemOperation{} } +func (m *FeedItemOperation) String() string { return proto.CompactTextString(m) } +func (*FeedItemOperation) ProtoMessage() {} +func (*FeedItemOperation) Descriptor() ([]byte, []int) { + return fileDescriptor_feed_item_service_b421090e91948349, []int{2} +} +func (m *FeedItemOperation) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FeedItemOperation.Unmarshal(m, b) +} +func (m *FeedItemOperation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FeedItemOperation.Marshal(b, m, deterministic) +} +func (dst *FeedItemOperation) XXX_Merge(src proto.Message) { + xxx_messageInfo_FeedItemOperation.Merge(dst, src) +} +func (m *FeedItemOperation) XXX_Size() int { + return xxx_messageInfo_FeedItemOperation.Size(m) +} +func (m *FeedItemOperation) XXX_DiscardUnknown() { + xxx_messageInfo_FeedItemOperation.DiscardUnknown(m) +} + +var xxx_messageInfo_FeedItemOperation proto.InternalMessageInfo + +func (m *FeedItemOperation) GetUpdateMask() *field_mask.FieldMask { + if m != nil { + return m.UpdateMask + } + return nil +} + +type isFeedItemOperation_Operation interface { + isFeedItemOperation_Operation() +} + +type FeedItemOperation_Create struct { + Create *resources.FeedItem `protobuf:"bytes,1,opt,name=create,proto3,oneof"` +} + +type FeedItemOperation_Update struct { + Update *resources.FeedItem `protobuf:"bytes,2,opt,name=update,proto3,oneof"` +} + +type FeedItemOperation_Remove struct { + Remove string `protobuf:"bytes,3,opt,name=remove,proto3,oneof"` +} + +func (*FeedItemOperation_Create) isFeedItemOperation_Operation() {} + +func (*FeedItemOperation_Update) isFeedItemOperation_Operation() {} + +func (*FeedItemOperation_Remove) isFeedItemOperation_Operation() {} + +func (m *FeedItemOperation) GetOperation() isFeedItemOperation_Operation { + if m != nil { + return m.Operation + } + return nil +} + +func (m *FeedItemOperation) GetCreate() *resources.FeedItem { + if x, ok := m.GetOperation().(*FeedItemOperation_Create); ok { + return x.Create + } + return nil +} + +func (m *FeedItemOperation) GetUpdate() *resources.FeedItem { + if x, ok := m.GetOperation().(*FeedItemOperation_Update); ok { + return x.Update + } + return nil +} + +func (m *FeedItemOperation) GetRemove() string { + if x, ok := m.GetOperation().(*FeedItemOperation_Remove); ok { + return x.Remove + } + return "" +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*FeedItemOperation) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _FeedItemOperation_OneofMarshaler, _FeedItemOperation_OneofUnmarshaler, _FeedItemOperation_OneofSizer, []interface{}{ + (*FeedItemOperation_Create)(nil), + (*FeedItemOperation_Update)(nil), + (*FeedItemOperation_Remove)(nil), + } +} + +func _FeedItemOperation_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*FeedItemOperation) + // operation + switch x := m.Operation.(type) { + case *FeedItemOperation_Create: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Create); err != nil { + return err + } + case *FeedItemOperation_Update: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Update); err != nil { + return err + } + case *FeedItemOperation_Remove: + b.EncodeVarint(3<<3 | proto.WireBytes) + b.EncodeStringBytes(x.Remove) + case nil: + default: + return fmt.Errorf("FeedItemOperation.Operation has unexpected type %T", x) + } + return nil +} + +func _FeedItemOperation_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*FeedItemOperation) + switch tag { + case 1: // operation.create + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.FeedItem) + err := b.DecodeMessage(msg) + m.Operation = &FeedItemOperation_Create{msg} + return true, err + case 2: // operation.update + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.FeedItem) + err := b.DecodeMessage(msg) + m.Operation = &FeedItemOperation_Update{msg} + return true, err + case 3: // operation.remove + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Operation = &FeedItemOperation_Remove{x} + return true, err + default: + return false, nil + } +} + +func _FeedItemOperation_OneofSizer(msg proto.Message) (n int) { + m := msg.(*FeedItemOperation) + // operation + switch x := m.Operation.(type) { + case *FeedItemOperation_Create: + s := proto.Size(x.Create) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *FeedItemOperation_Update: + s := proto.Size(x.Update) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *FeedItemOperation_Remove: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(len(x.Remove))) + n += len(x.Remove) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// Response message for an feed item mutate. +type MutateFeedItemsResponse struct { + // All results for the mutate. + Results []*MutateFeedItemResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateFeedItemsResponse) Reset() { *m = MutateFeedItemsResponse{} } +func (m *MutateFeedItemsResponse) String() string { return proto.CompactTextString(m) } +func (*MutateFeedItemsResponse) ProtoMessage() {} +func (*MutateFeedItemsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_feed_item_service_b421090e91948349, []int{3} +} +func (m *MutateFeedItemsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateFeedItemsResponse.Unmarshal(m, b) +} +func (m *MutateFeedItemsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateFeedItemsResponse.Marshal(b, m, deterministic) +} +func (dst *MutateFeedItemsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateFeedItemsResponse.Merge(dst, src) +} +func (m *MutateFeedItemsResponse) XXX_Size() int { + return xxx_messageInfo_MutateFeedItemsResponse.Size(m) +} +func (m *MutateFeedItemsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MutateFeedItemsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateFeedItemsResponse proto.InternalMessageInfo + +func (m *MutateFeedItemsResponse) GetResults() []*MutateFeedItemResult { + if m != nil { + return m.Results + } + return nil +} + +// The result for the feed item mutate. +type MutateFeedItemResult struct { + // Returned for successful operations. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateFeedItemResult) Reset() { *m = MutateFeedItemResult{} } +func (m *MutateFeedItemResult) String() string { return proto.CompactTextString(m) } +func (*MutateFeedItemResult) ProtoMessage() {} +func (*MutateFeedItemResult) Descriptor() ([]byte, []int) { + return fileDescriptor_feed_item_service_b421090e91948349, []int{4} +} +func (m *MutateFeedItemResult) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateFeedItemResult.Unmarshal(m, b) +} +func (m *MutateFeedItemResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateFeedItemResult.Marshal(b, m, deterministic) +} +func (dst *MutateFeedItemResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateFeedItemResult.Merge(dst, src) +} +func (m *MutateFeedItemResult) XXX_Size() int { + return xxx_messageInfo_MutateFeedItemResult.Size(m) +} +func (m *MutateFeedItemResult) XXX_DiscardUnknown() { + xxx_messageInfo_MutateFeedItemResult.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateFeedItemResult proto.InternalMessageInfo + +func (m *MutateFeedItemResult) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetFeedItemRequest)(nil), "google.ads.googleads.v0.services.GetFeedItemRequest") + proto.RegisterType((*MutateFeedItemsRequest)(nil), "google.ads.googleads.v0.services.MutateFeedItemsRequest") + proto.RegisterType((*FeedItemOperation)(nil), "google.ads.googleads.v0.services.FeedItemOperation") + proto.RegisterType((*MutateFeedItemsResponse)(nil), "google.ads.googleads.v0.services.MutateFeedItemsResponse") + proto.RegisterType((*MutateFeedItemResult)(nil), "google.ads.googleads.v0.services.MutateFeedItemResult") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// FeedItemServiceClient is the client API for FeedItemService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type FeedItemServiceClient interface { + // Returns the requested feed item in full detail. + GetFeedItem(ctx context.Context, in *GetFeedItemRequest, opts ...grpc.CallOption) (*resources.FeedItem, error) + // Creates, updates, or removes feed items. Operation statuses are + // returned. + MutateFeedItems(ctx context.Context, in *MutateFeedItemsRequest, opts ...grpc.CallOption) (*MutateFeedItemsResponse, error) +} + +type feedItemServiceClient struct { + cc *grpc.ClientConn +} + +func NewFeedItemServiceClient(cc *grpc.ClientConn) FeedItemServiceClient { + return &feedItemServiceClient{cc} +} + +func (c *feedItemServiceClient) GetFeedItem(ctx context.Context, in *GetFeedItemRequest, opts ...grpc.CallOption) (*resources.FeedItem, error) { + out := new(resources.FeedItem) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.FeedItemService/GetFeedItem", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *feedItemServiceClient) MutateFeedItems(ctx context.Context, in *MutateFeedItemsRequest, opts ...grpc.CallOption) (*MutateFeedItemsResponse, error) { + out := new(MutateFeedItemsResponse) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.FeedItemService/MutateFeedItems", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// FeedItemServiceServer is the server API for FeedItemService service. +type FeedItemServiceServer interface { + // Returns the requested feed item in full detail. + GetFeedItem(context.Context, *GetFeedItemRequest) (*resources.FeedItem, error) + // Creates, updates, or removes feed items. Operation statuses are + // returned. + MutateFeedItems(context.Context, *MutateFeedItemsRequest) (*MutateFeedItemsResponse, error) +} + +func RegisterFeedItemServiceServer(s *grpc.Server, srv FeedItemServiceServer) { + s.RegisterService(&_FeedItemService_serviceDesc, srv) +} + +func _FeedItemService_GetFeedItem_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetFeedItemRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FeedItemServiceServer).GetFeedItem(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.FeedItemService/GetFeedItem", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FeedItemServiceServer).GetFeedItem(ctx, req.(*GetFeedItemRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FeedItemService_MutateFeedItems_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MutateFeedItemsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FeedItemServiceServer).MutateFeedItems(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.FeedItemService/MutateFeedItems", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FeedItemServiceServer).MutateFeedItems(ctx, req.(*MutateFeedItemsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _FeedItemService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.FeedItemService", + HandlerType: (*FeedItemServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetFeedItem", + Handler: _FeedItemService_GetFeedItem_Handler, + }, + { + MethodName: "MutateFeedItems", + Handler: _FeedItemService_MutateFeedItems_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/feed_item_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/feed_item_service.proto", fileDescriptor_feed_item_service_b421090e91948349) +} + +var fileDescriptor_feed_item_service_b421090e91948349 = []byte{ + // 591 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x54, 0xc1, 0x6a, 0xdb, 0x4a, + 0x14, 0x7d, 0x92, 0x1f, 0x2e, 0x19, 0xb5, 0x84, 0x0e, 0xa1, 0x15, 0xa6, 0x50, 0xa3, 0x76, 0x61, + 0x1c, 0x3a, 0x72, 0xed, 0x52, 0xe2, 0x98, 0x2c, 0x6c, 0x68, 0x9c, 0x2c, 0xd2, 0x1a, 0x05, 0xb2, + 0x28, 0x06, 0x33, 0xb1, 0xae, 0x85, 0xb0, 0xa5, 0x51, 0x35, 0x23, 0x6f, 0x42, 0x36, 0x85, 0x6e, + 0xbb, 0xe9, 0x1f, 0x14, 0xba, 0xe9, 0x5f, 0x74, 0xdb, 0x6d, 0xfb, 0x09, 0xfd, 0x8d, 0x42, 0x91, + 0x46, 0xa3, 0xd8, 0x71, 0x8d, 0x9b, 0xec, 0xae, 0x46, 0xe7, 0x9c, 0x7b, 0x74, 0xe6, 0x5e, 0xa1, + 0x3d, 0x8f, 0x31, 0x6f, 0x06, 0x36, 0x75, 0xb9, 0x2d, 0xcb, 0xb4, 0x9a, 0x37, 0x6c, 0x0e, 0xf1, + 0xdc, 0x1f, 0x03, 0xb7, 0x27, 0x00, 0xee, 0xc8, 0x17, 0x10, 0x8c, 0xf2, 0x23, 0x12, 0xc5, 0x4c, + 0x30, 0x5c, 0x95, 0x70, 0x42, 0x5d, 0x4e, 0x0a, 0x26, 0x99, 0x37, 0x88, 0x62, 0x56, 0x9e, 0xaf, + 0xd3, 0x8e, 0x81, 0xb3, 0x24, 0x5e, 0x12, 0x97, 0xa2, 0x95, 0x47, 0x8a, 0x12, 0xf9, 0x36, 0x0d, + 0x43, 0x26, 0xa8, 0xf0, 0x59, 0xc8, 0xf3, 0xb7, 0x79, 0x4b, 0x3b, 0x7b, 0x3a, 0x4f, 0x26, 0xf6, + 0xc4, 0x87, 0x99, 0x3b, 0x0a, 0x28, 0x9f, 0x4a, 0x84, 0xd5, 0x46, 0xb8, 0x0f, 0xe2, 0x10, 0xc0, + 0x3d, 0x16, 0x10, 0x38, 0xf0, 0x2e, 0x01, 0x2e, 0xf0, 0x13, 0x74, 0x4f, 0xb5, 0x1c, 0x85, 0x34, + 0x00, 0x53, 0xab, 0x6a, 0xb5, 0x2d, 0xe7, 0xae, 0x3a, 0x7c, 0x4d, 0x03, 0xb0, 0x3e, 0x6a, 0xe8, + 0xc1, 0x49, 0x22, 0xa8, 0x00, 0x45, 0xe7, 0x8a, 0xff, 0x18, 0x19, 0xe3, 0x84, 0x0b, 0x16, 0x40, + 0x3c, 0xf2, 0xdd, 0x9c, 0x8d, 0xd4, 0xd1, 0xb1, 0x8b, 0x4f, 0x11, 0x62, 0x11, 0xc4, 0xd2, 0xac, + 0xa9, 0x57, 0x4b, 0x35, 0xa3, 0xd9, 0x22, 0x9b, 0x02, 0x22, 0xaa, 0xd1, 0x1b, 0xc5, 0x75, 0x16, + 0x64, 0xac, 0x0f, 0x3a, 0xba, 0xbf, 0x82, 0xc0, 0x1d, 0x64, 0x24, 0x91, 0x4b, 0x05, 0x64, 0x9f, + 0x6d, 0xfe, 0x5f, 0xd5, 0x6a, 0x46, 0xb3, 0xa2, 0x7a, 0xa9, 0x64, 0xc8, 0x61, 0x9a, 0xcc, 0x09, + 0xe5, 0x53, 0x07, 0x49, 0x78, 0x5a, 0xe3, 0x57, 0xa8, 0x3c, 0x8e, 0x81, 0x0a, 0x99, 0x80, 0xd1, + 0xdc, 0x5d, 0xeb, 0xb1, 0xb8, 0xa2, 0xc2, 0xe4, 0xd1, 0x7f, 0x4e, 0x4e, 0x4e, 0x65, 0xa4, 0xa8, + 0xa9, 0xdf, 0x4a, 0x46, 0x92, 0xb1, 0x89, 0xca, 0x31, 0x04, 0x6c, 0x0e, 0x66, 0x29, 0x4d, 0x34, + 0x7d, 0x23, 0x9f, 0x7b, 0x06, 0xda, 0x2a, 0x82, 0xb0, 0xa6, 0xe8, 0xe1, 0xca, 0xbd, 0xf0, 0x88, + 0x85, 0x1c, 0xf0, 0x00, 0xdd, 0x89, 0x81, 0x27, 0x33, 0xa1, 0x42, 0x7f, 0xb9, 0x39, 0xf4, 0x65, + 0x2d, 0x27, 0xa3, 0x3b, 0x4a, 0xc6, 0xea, 0xa0, 0x9d, 0xbf, 0x01, 0xfe, 0x69, 0x84, 0x9a, 0xbf, + 0x75, 0xb4, 0xad, 0x78, 0xa7, 0xb2, 0x1f, 0xfe, 0xa2, 0x21, 0x63, 0x61, 0x24, 0xf1, 0x8b, 0xcd, + 0x0e, 0x57, 0x27, 0xb8, 0x72, 0x93, 0x84, 0xad, 0xd6, 0xfb, 0x1f, 0xbf, 0x3e, 0xe9, 0xcf, 0xf0, + 0x6e, 0xba, 0x6b, 0x17, 0x4b, 0xb6, 0x0f, 0xd4, 0xd0, 0x72, 0xbb, 0x9e, 0x2d, 0x5f, 0x96, 0xa7, + 0x5d, 0xbf, 0xc4, 0xdf, 0x34, 0xb4, 0x7d, 0x2d, 0x66, 0xbc, 0x77, 0xd3, 0x34, 0xd5, 0xc6, 0x54, + 0xda, 0xb7, 0x60, 0xca, 0x3b, 0xb5, 0xda, 0x99, 0xfb, 0x96, 0x45, 0x52, 0xf7, 0x57, 0x76, 0x2f, + 0x16, 0x36, 0xf0, 0xa0, 0x7e, 0x79, 0x65, 0x7e, 0x3f, 0xc8, 0x84, 0xf6, 0xb5, 0x7a, 0xef, 0xa7, + 0x86, 0x9e, 0x8e, 0x59, 0xb0, 0xb1, 0x77, 0x6f, 0xe7, 0xda, 0x2d, 0x0d, 0xd2, 0xb5, 0x19, 0x68, + 0x6f, 0x8f, 0x72, 0xa6, 0xc7, 0x66, 0x34, 0xf4, 0x08, 0x8b, 0x3d, 0xdb, 0x83, 0x30, 0x5b, 0x2a, + 0xf5, 0x07, 0x8b, 0x7c, 0xbe, 0xfe, 0x67, 0xd9, 0x51, 0xc5, 0x67, 0xbd, 0xd4, 0xef, 0x76, 0xbf, + 0xea, 0xd5, 0xbe, 0x14, 0xec, 0xba, 0x9c, 0xc8, 0x32, 0xad, 0xce, 0x1a, 0x24, 0x6f, 0xcc, 0xbf, + 0x2b, 0xc8, 0xb0, 0xeb, 0xf2, 0x61, 0x01, 0x19, 0x9e, 0x35, 0x86, 0x0a, 0x72, 0x5e, 0xce, 0x0c, + 0xb4, 0xfe, 0x04, 0x00, 0x00, 0xff, 0xff, 0xcc, 0x47, 0xea, 0xc7, 0xac, 0x05, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/feed_mapping_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/feed_mapping_service.pb.go new file mode 100644 index 000000000..6267bb52c --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/feed_mapping_service.pb.go @@ -0,0 +1,500 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/feed_mapping_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [FeedMappingService.GetFeedMapping][google.ads.googleads.v0.services.FeedMappingService.GetFeedMapping]. +type GetFeedMappingRequest struct { + // The resource name of the feed mapping to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetFeedMappingRequest) Reset() { *m = GetFeedMappingRequest{} } +func (m *GetFeedMappingRequest) String() string { return proto.CompactTextString(m) } +func (*GetFeedMappingRequest) ProtoMessage() {} +func (*GetFeedMappingRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_feed_mapping_service_ca2fb087e0520133, []int{0} +} +func (m *GetFeedMappingRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetFeedMappingRequest.Unmarshal(m, b) +} +func (m *GetFeedMappingRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetFeedMappingRequest.Marshal(b, m, deterministic) +} +func (dst *GetFeedMappingRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetFeedMappingRequest.Merge(dst, src) +} +func (m *GetFeedMappingRequest) XXX_Size() int { + return xxx_messageInfo_GetFeedMappingRequest.Size(m) +} +func (m *GetFeedMappingRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetFeedMappingRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetFeedMappingRequest proto.InternalMessageInfo + +func (m *GetFeedMappingRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +// Request message for [FeedMappingService.MutateFeedMappings][google.ads.googleads.v0.services.FeedMappingService.MutateFeedMappings]. +type MutateFeedMappingsRequest struct { + // The ID of the customer whose feed mappings are being modified. + CustomerId string `protobuf:"bytes,1,opt,name=customer_id,json=customerId,proto3" json:"customer_id,omitempty"` + // The list of operations to perform on individual feed mappings. + Operations []*FeedMappingOperation `protobuf:"bytes,2,rep,name=operations,proto3" json:"operations,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateFeedMappingsRequest) Reset() { *m = MutateFeedMappingsRequest{} } +func (m *MutateFeedMappingsRequest) String() string { return proto.CompactTextString(m) } +func (*MutateFeedMappingsRequest) ProtoMessage() {} +func (*MutateFeedMappingsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_feed_mapping_service_ca2fb087e0520133, []int{1} +} +func (m *MutateFeedMappingsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateFeedMappingsRequest.Unmarshal(m, b) +} +func (m *MutateFeedMappingsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateFeedMappingsRequest.Marshal(b, m, deterministic) +} +func (dst *MutateFeedMappingsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateFeedMappingsRequest.Merge(dst, src) +} +func (m *MutateFeedMappingsRequest) XXX_Size() int { + return xxx_messageInfo_MutateFeedMappingsRequest.Size(m) +} +func (m *MutateFeedMappingsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_MutateFeedMappingsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateFeedMappingsRequest proto.InternalMessageInfo + +func (m *MutateFeedMappingsRequest) GetCustomerId() string { + if m != nil { + return m.CustomerId + } + return "" +} + +func (m *MutateFeedMappingsRequest) GetOperations() []*FeedMappingOperation { + if m != nil { + return m.Operations + } + return nil +} + +// A single operation (create, remove) on a feed mapping. +type FeedMappingOperation struct { + // The mutate operation. + // + // Types that are valid to be assigned to Operation: + // *FeedMappingOperation_Create + // *FeedMappingOperation_Remove + Operation isFeedMappingOperation_Operation `protobuf_oneof:"operation"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FeedMappingOperation) Reset() { *m = FeedMappingOperation{} } +func (m *FeedMappingOperation) String() string { return proto.CompactTextString(m) } +func (*FeedMappingOperation) ProtoMessage() {} +func (*FeedMappingOperation) Descriptor() ([]byte, []int) { + return fileDescriptor_feed_mapping_service_ca2fb087e0520133, []int{2} +} +func (m *FeedMappingOperation) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FeedMappingOperation.Unmarshal(m, b) +} +func (m *FeedMappingOperation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FeedMappingOperation.Marshal(b, m, deterministic) +} +func (dst *FeedMappingOperation) XXX_Merge(src proto.Message) { + xxx_messageInfo_FeedMappingOperation.Merge(dst, src) +} +func (m *FeedMappingOperation) XXX_Size() int { + return xxx_messageInfo_FeedMappingOperation.Size(m) +} +func (m *FeedMappingOperation) XXX_DiscardUnknown() { + xxx_messageInfo_FeedMappingOperation.DiscardUnknown(m) +} + +var xxx_messageInfo_FeedMappingOperation proto.InternalMessageInfo + +type isFeedMappingOperation_Operation interface { + isFeedMappingOperation_Operation() +} + +type FeedMappingOperation_Create struct { + Create *resources.FeedMapping `protobuf:"bytes,1,opt,name=create,proto3,oneof"` +} + +type FeedMappingOperation_Remove struct { + Remove string `protobuf:"bytes,3,opt,name=remove,proto3,oneof"` +} + +func (*FeedMappingOperation_Create) isFeedMappingOperation_Operation() {} + +func (*FeedMappingOperation_Remove) isFeedMappingOperation_Operation() {} + +func (m *FeedMappingOperation) GetOperation() isFeedMappingOperation_Operation { + if m != nil { + return m.Operation + } + return nil +} + +func (m *FeedMappingOperation) GetCreate() *resources.FeedMapping { + if x, ok := m.GetOperation().(*FeedMappingOperation_Create); ok { + return x.Create + } + return nil +} + +func (m *FeedMappingOperation) GetRemove() string { + if x, ok := m.GetOperation().(*FeedMappingOperation_Remove); ok { + return x.Remove + } + return "" +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*FeedMappingOperation) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _FeedMappingOperation_OneofMarshaler, _FeedMappingOperation_OneofUnmarshaler, _FeedMappingOperation_OneofSizer, []interface{}{ + (*FeedMappingOperation_Create)(nil), + (*FeedMappingOperation_Remove)(nil), + } +} + +func _FeedMappingOperation_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*FeedMappingOperation) + // operation + switch x := m.Operation.(type) { + case *FeedMappingOperation_Create: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Create); err != nil { + return err + } + case *FeedMappingOperation_Remove: + b.EncodeVarint(3<<3 | proto.WireBytes) + b.EncodeStringBytes(x.Remove) + case nil: + default: + return fmt.Errorf("FeedMappingOperation.Operation has unexpected type %T", x) + } + return nil +} + +func _FeedMappingOperation_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*FeedMappingOperation) + switch tag { + case 1: // operation.create + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.FeedMapping) + err := b.DecodeMessage(msg) + m.Operation = &FeedMappingOperation_Create{msg} + return true, err + case 3: // operation.remove + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Operation = &FeedMappingOperation_Remove{x} + return true, err + default: + return false, nil + } +} + +func _FeedMappingOperation_OneofSizer(msg proto.Message) (n int) { + m := msg.(*FeedMappingOperation) + // operation + switch x := m.Operation.(type) { + case *FeedMappingOperation_Create: + s := proto.Size(x.Create) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *FeedMappingOperation_Remove: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(len(x.Remove))) + n += len(x.Remove) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// Response message for a feed mapping mutate. +type MutateFeedMappingsResponse struct { + // All results for the mutate. + Results []*MutateFeedMappingResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateFeedMappingsResponse) Reset() { *m = MutateFeedMappingsResponse{} } +func (m *MutateFeedMappingsResponse) String() string { return proto.CompactTextString(m) } +func (*MutateFeedMappingsResponse) ProtoMessage() {} +func (*MutateFeedMappingsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_feed_mapping_service_ca2fb087e0520133, []int{3} +} +func (m *MutateFeedMappingsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateFeedMappingsResponse.Unmarshal(m, b) +} +func (m *MutateFeedMappingsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateFeedMappingsResponse.Marshal(b, m, deterministic) +} +func (dst *MutateFeedMappingsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateFeedMappingsResponse.Merge(dst, src) +} +func (m *MutateFeedMappingsResponse) XXX_Size() int { + return xxx_messageInfo_MutateFeedMappingsResponse.Size(m) +} +func (m *MutateFeedMappingsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MutateFeedMappingsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateFeedMappingsResponse proto.InternalMessageInfo + +func (m *MutateFeedMappingsResponse) GetResults() []*MutateFeedMappingResult { + if m != nil { + return m.Results + } + return nil +} + +// The result for the feed mapping mutate. +type MutateFeedMappingResult struct { + // Returned for successful operations. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateFeedMappingResult) Reset() { *m = MutateFeedMappingResult{} } +func (m *MutateFeedMappingResult) String() string { return proto.CompactTextString(m) } +func (*MutateFeedMappingResult) ProtoMessage() {} +func (*MutateFeedMappingResult) Descriptor() ([]byte, []int) { + return fileDescriptor_feed_mapping_service_ca2fb087e0520133, []int{4} +} +func (m *MutateFeedMappingResult) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateFeedMappingResult.Unmarshal(m, b) +} +func (m *MutateFeedMappingResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateFeedMappingResult.Marshal(b, m, deterministic) +} +func (dst *MutateFeedMappingResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateFeedMappingResult.Merge(dst, src) +} +func (m *MutateFeedMappingResult) XXX_Size() int { + return xxx_messageInfo_MutateFeedMappingResult.Size(m) +} +func (m *MutateFeedMappingResult) XXX_DiscardUnknown() { + xxx_messageInfo_MutateFeedMappingResult.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateFeedMappingResult proto.InternalMessageInfo + +func (m *MutateFeedMappingResult) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetFeedMappingRequest)(nil), "google.ads.googleads.v0.services.GetFeedMappingRequest") + proto.RegisterType((*MutateFeedMappingsRequest)(nil), "google.ads.googleads.v0.services.MutateFeedMappingsRequest") + proto.RegisterType((*FeedMappingOperation)(nil), "google.ads.googleads.v0.services.FeedMappingOperation") + proto.RegisterType((*MutateFeedMappingsResponse)(nil), "google.ads.googleads.v0.services.MutateFeedMappingsResponse") + proto.RegisterType((*MutateFeedMappingResult)(nil), "google.ads.googleads.v0.services.MutateFeedMappingResult") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// FeedMappingServiceClient is the client API for FeedMappingService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type FeedMappingServiceClient interface { + // Returns the requested feed mapping in full detail. + GetFeedMapping(ctx context.Context, in *GetFeedMappingRequest, opts ...grpc.CallOption) (*resources.FeedMapping, error) + // Creates or removes feed mappings. Operation statuses are + // returned. + MutateFeedMappings(ctx context.Context, in *MutateFeedMappingsRequest, opts ...grpc.CallOption) (*MutateFeedMappingsResponse, error) +} + +type feedMappingServiceClient struct { + cc *grpc.ClientConn +} + +func NewFeedMappingServiceClient(cc *grpc.ClientConn) FeedMappingServiceClient { + return &feedMappingServiceClient{cc} +} + +func (c *feedMappingServiceClient) GetFeedMapping(ctx context.Context, in *GetFeedMappingRequest, opts ...grpc.CallOption) (*resources.FeedMapping, error) { + out := new(resources.FeedMapping) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.FeedMappingService/GetFeedMapping", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *feedMappingServiceClient) MutateFeedMappings(ctx context.Context, in *MutateFeedMappingsRequest, opts ...grpc.CallOption) (*MutateFeedMappingsResponse, error) { + out := new(MutateFeedMappingsResponse) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.FeedMappingService/MutateFeedMappings", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// FeedMappingServiceServer is the server API for FeedMappingService service. +type FeedMappingServiceServer interface { + // Returns the requested feed mapping in full detail. + GetFeedMapping(context.Context, *GetFeedMappingRequest) (*resources.FeedMapping, error) + // Creates or removes feed mappings. Operation statuses are + // returned. + MutateFeedMappings(context.Context, *MutateFeedMappingsRequest) (*MutateFeedMappingsResponse, error) +} + +func RegisterFeedMappingServiceServer(s *grpc.Server, srv FeedMappingServiceServer) { + s.RegisterService(&_FeedMappingService_serviceDesc, srv) +} + +func _FeedMappingService_GetFeedMapping_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetFeedMappingRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FeedMappingServiceServer).GetFeedMapping(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.FeedMappingService/GetFeedMapping", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FeedMappingServiceServer).GetFeedMapping(ctx, req.(*GetFeedMappingRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FeedMappingService_MutateFeedMappings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MutateFeedMappingsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FeedMappingServiceServer).MutateFeedMappings(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.FeedMappingService/MutateFeedMappings", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FeedMappingServiceServer).MutateFeedMappings(ctx, req.(*MutateFeedMappingsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _FeedMappingService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.FeedMappingService", + HandlerType: (*FeedMappingServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetFeedMapping", + Handler: _FeedMappingService_GetFeedMapping_Handler, + }, + { + MethodName: "MutateFeedMappings", + Handler: _FeedMappingService_MutateFeedMappings_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/feed_mapping_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/feed_mapping_service.proto", fileDescriptor_feed_mapping_service_ca2fb087e0520133) +} + +var fileDescriptor_feed_mapping_service_ca2fb087e0520133 = []byte{ + // 534 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x54, 0xb1, 0x8e, 0xd3, 0x40, + 0x10, 0xc5, 0x89, 0x14, 0x74, 0x13, 0xa0, 0x58, 0x81, 0x2e, 0x44, 0x48, 0x44, 0x86, 0xe2, 0x94, + 0x62, 0x1d, 0x02, 0x0a, 0xe2, 0x92, 0x43, 0x4a, 0x0a, 0x12, 0x8a, 0x83, 0x93, 0x4f, 0x4a, 0x81, + 0x22, 0x45, 0x4b, 0x3c, 0x58, 0x96, 0x62, 0xaf, 0x6f, 0x77, 0x9d, 0xe6, 0x74, 0x0d, 0x0d, 0x1f, + 0x00, 0x05, 0x35, 0x25, 0x1d, 0xbf, 0x81, 0x44, 0x45, 0xc1, 0x0f, 0xf0, 0x21, 0xc8, 0x5e, 0x6f, + 0x70, 0x48, 0xa2, 0x70, 0xd7, 0x8d, 0xd7, 0xf3, 0xde, 0xcc, 0x7b, 0x3b, 0x3b, 0xd0, 0xf5, 0x39, + 0xf7, 0xe7, 0xe8, 0x30, 0x4f, 0x3a, 0x3a, 0x4c, 0xa3, 0x45, 0xcb, 0x91, 0x28, 0x16, 0xc1, 0x0c, + 0xa5, 0xf3, 0x0e, 0xd1, 0x9b, 0x86, 0x2c, 0x8e, 0x83, 0xc8, 0x9f, 0xe6, 0xa7, 0x34, 0x16, 0x5c, + 0x71, 0xd2, 0xd0, 0x08, 0xca, 0x3c, 0x49, 0x97, 0x60, 0xba, 0x68, 0x51, 0x03, 0xae, 0x3f, 0xd9, + 0x46, 0x2f, 0x50, 0xf2, 0x44, 0xfc, 0xcb, 0xaf, 0x79, 0xeb, 0xf7, 0x0c, 0x2a, 0x0e, 0x1c, 0x16, + 0x45, 0x5c, 0x31, 0x15, 0xf0, 0x48, 0xea, 0xbf, 0x76, 0x0f, 0xee, 0x0c, 0x51, 0xbd, 0x40, 0xf4, + 0x8e, 0x35, 0xca, 0xc5, 0xb3, 0x04, 0xa5, 0x22, 0x0f, 0xe0, 0xa6, 0xa1, 0x9d, 0x46, 0x2c, 0xc4, + 0x9a, 0xd5, 0xb0, 0x0e, 0xf6, 0xdc, 0x1b, 0xe6, 0xf0, 0x15, 0x0b, 0xd1, 0xfe, 0x64, 0xc1, 0xdd, + 0xe3, 0x44, 0x31, 0x85, 0x05, 0x06, 0x69, 0x28, 0xee, 0x43, 0x75, 0x96, 0x48, 0xc5, 0x43, 0x14, + 0xd3, 0xc0, 0xcb, 0x09, 0xc0, 0x1c, 0xbd, 0xf4, 0xc8, 0x18, 0x80, 0xc7, 0x28, 0x74, 0x43, 0xb5, + 0x52, 0xa3, 0x7c, 0x50, 0x6d, 0x77, 0xe8, 0x2e, 0x1f, 0x68, 0xa1, 0xd6, 0x6b, 0x03, 0x77, 0x0b, + 0x4c, 0xf6, 0x07, 0x0b, 0x6e, 0x6f, 0x4a, 0x22, 0x23, 0xa8, 0xcc, 0x04, 0x32, 0xa5, 0xd5, 0x54, + 0xdb, 0x74, 0x6b, 0xb1, 0xa5, 0xa5, 0xc5, 0x6a, 0xa3, 0x6b, 0x6e, 0x8e, 0x27, 0x35, 0xa8, 0x08, + 0x0c, 0xf9, 0x02, 0x6b, 0xe5, 0x54, 0x56, 0xfa, 0x47, 0x7f, 0x0f, 0xaa, 0xb0, 0xb7, 0x6c, 0xc5, + 0x3e, 0x83, 0xfa, 0x26, 0x7f, 0x64, 0xcc, 0x23, 0x89, 0xe4, 0x14, 0xae, 0x0b, 0x94, 0xc9, 0x5c, + 0x19, 0xf1, 0xcf, 0x76, 0x8b, 0x5f, 0xa3, 0x73, 0x33, 0x06, 0xd7, 0x30, 0xd9, 0xcf, 0x61, 0x7f, + 0x4b, 0xce, 0x7f, 0xdd, 0x69, 0xfb, 0x73, 0x19, 0x48, 0x01, 0x7a, 0xaa, 0x0b, 0x93, 0x6f, 0x16, + 0xdc, 0x5a, 0x9d, 0x14, 0xf2, 0x74, 0x77, 0xb7, 0x1b, 0x67, 0xab, 0x7e, 0x49, 0xdb, 0xed, 0xce, + 0xfb, 0x9f, 0xbf, 0x3f, 0x96, 0x5a, 0x84, 0xa6, 0xc3, 0x7e, 0xbe, 0x22, 0xe1, 0xc8, 0x8c, 0x93, + 0x74, 0x9a, 0xd9, 0xf4, 0x1b, 0x93, 0x9d, 0xe6, 0x05, 0xf9, 0x61, 0x01, 0x59, 0xb7, 0x9f, 0x74, + 0xaf, 0xe0, 0xb2, 0x19, 0xea, 0x7a, 0xef, 0x6a, 0x60, 0x7d, 0xe3, 0x76, 0x2f, 0x53, 0xd2, 0xb1, + 0x1f, 0xa5, 0x4a, 0xfe, 0xb6, 0x7e, 0x5e, 0x78, 0x27, 0x47, 0xcd, 0x8b, 0x15, 0x21, 0x87, 0x61, + 0x46, 0x77, 0x68, 0x35, 0x07, 0xbf, 0x2c, 0x78, 0x38, 0xe3, 0xe1, 0xce, 0x0e, 0x06, 0xfb, 0xeb, + 0x17, 0x78, 0x92, 0x3e, 0xf7, 0x13, 0xeb, 0xcd, 0x28, 0x07, 0xfb, 0x7c, 0xce, 0x22, 0x9f, 0x72, + 0xe1, 0x3b, 0x3e, 0x46, 0xd9, 0x32, 0x30, 0x4b, 0x25, 0x0e, 0xe4, 0xf6, 0x15, 0xd6, 0x35, 0xc1, + 0x97, 0x52, 0x79, 0xd8, 0xef, 0x7f, 0x2d, 0x35, 0x86, 0x9a, 0xb0, 0xef, 0x49, 0xaa, 0xc3, 0x34, + 0x1a, 0xb7, 0x68, 0x5e, 0x58, 0x7e, 0x37, 0x29, 0x93, 0xbe, 0x27, 0x27, 0xcb, 0x94, 0xc9, 0xb8, + 0x35, 0x31, 0x29, 0x6f, 0x2b, 0x59, 0x03, 0x8f, 0xff, 0x04, 0x00, 0x00, 0xff, 0xff, 0xef, 0x54, + 0xde, 0x9f, 0x42, 0x05, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/feed_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/feed_service.pb.go new file mode 100644 index 000000000..84c25f42a --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/feed_service.pb.go @@ -0,0 +1,546 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/feed_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" +import field_mask "google.golang.org/genproto/protobuf/field_mask" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [FeedService.GetFeed][google.ads.googleads.v0.services.FeedService.GetFeed]. +type GetFeedRequest struct { + // The resource name of the feed to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetFeedRequest) Reset() { *m = GetFeedRequest{} } +func (m *GetFeedRequest) String() string { return proto.CompactTextString(m) } +func (*GetFeedRequest) ProtoMessage() {} +func (*GetFeedRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_feed_service_49f38c65d8e855b8, []int{0} +} +func (m *GetFeedRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetFeedRequest.Unmarshal(m, b) +} +func (m *GetFeedRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetFeedRequest.Marshal(b, m, deterministic) +} +func (dst *GetFeedRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetFeedRequest.Merge(dst, src) +} +func (m *GetFeedRequest) XXX_Size() int { + return xxx_messageInfo_GetFeedRequest.Size(m) +} +func (m *GetFeedRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetFeedRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetFeedRequest proto.InternalMessageInfo + +func (m *GetFeedRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +// Request message for [FeedService.MutateFeeds][google.ads.googleads.v0.services.FeedService.MutateFeeds]. +type MutateFeedsRequest struct { + // The ID of the customer whose feeds are being modified. + CustomerId string `protobuf:"bytes,1,opt,name=customer_id,json=customerId,proto3" json:"customer_id,omitempty"` + // The list of operations to perform on individual feeds. + Operations []*FeedOperation `protobuf:"bytes,2,rep,name=operations,proto3" json:"operations,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateFeedsRequest) Reset() { *m = MutateFeedsRequest{} } +func (m *MutateFeedsRequest) String() string { return proto.CompactTextString(m) } +func (*MutateFeedsRequest) ProtoMessage() {} +func (*MutateFeedsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_feed_service_49f38c65d8e855b8, []int{1} +} +func (m *MutateFeedsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateFeedsRequest.Unmarshal(m, b) +} +func (m *MutateFeedsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateFeedsRequest.Marshal(b, m, deterministic) +} +func (dst *MutateFeedsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateFeedsRequest.Merge(dst, src) +} +func (m *MutateFeedsRequest) XXX_Size() int { + return xxx_messageInfo_MutateFeedsRequest.Size(m) +} +func (m *MutateFeedsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_MutateFeedsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateFeedsRequest proto.InternalMessageInfo + +func (m *MutateFeedsRequest) GetCustomerId() string { + if m != nil { + return m.CustomerId + } + return "" +} + +func (m *MutateFeedsRequest) GetOperations() []*FeedOperation { + if m != nil { + return m.Operations + } + return nil +} + +// A single operation (create, update, remove) on an feed. +type FeedOperation struct { + // FieldMask that determines which resource fields are modified in an update. + UpdateMask *field_mask.FieldMask `protobuf:"bytes,4,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // The mutate operation. + // + // Types that are valid to be assigned to Operation: + // *FeedOperation_Create + // *FeedOperation_Update + // *FeedOperation_Remove + Operation isFeedOperation_Operation `protobuf_oneof:"operation"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FeedOperation) Reset() { *m = FeedOperation{} } +func (m *FeedOperation) String() string { return proto.CompactTextString(m) } +func (*FeedOperation) ProtoMessage() {} +func (*FeedOperation) Descriptor() ([]byte, []int) { + return fileDescriptor_feed_service_49f38c65d8e855b8, []int{2} +} +func (m *FeedOperation) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FeedOperation.Unmarshal(m, b) +} +func (m *FeedOperation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FeedOperation.Marshal(b, m, deterministic) +} +func (dst *FeedOperation) XXX_Merge(src proto.Message) { + xxx_messageInfo_FeedOperation.Merge(dst, src) +} +func (m *FeedOperation) XXX_Size() int { + return xxx_messageInfo_FeedOperation.Size(m) +} +func (m *FeedOperation) XXX_DiscardUnknown() { + xxx_messageInfo_FeedOperation.DiscardUnknown(m) +} + +var xxx_messageInfo_FeedOperation proto.InternalMessageInfo + +func (m *FeedOperation) GetUpdateMask() *field_mask.FieldMask { + if m != nil { + return m.UpdateMask + } + return nil +} + +type isFeedOperation_Operation interface { + isFeedOperation_Operation() +} + +type FeedOperation_Create struct { + Create *resources.Feed `protobuf:"bytes,1,opt,name=create,proto3,oneof"` +} + +type FeedOperation_Update struct { + Update *resources.Feed `protobuf:"bytes,2,opt,name=update,proto3,oneof"` +} + +type FeedOperation_Remove struct { + Remove string `protobuf:"bytes,3,opt,name=remove,proto3,oneof"` +} + +func (*FeedOperation_Create) isFeedOperation_Operation() {} + +func (*FeedOperation_Update) isFeedOperation_Operation() {} + +func (*FeedOperation_Remove) isFeedOperation_Operation() {} + +func (m *FeedOperation) GetOperation() isFeedOperation_Operation { + if m != nil { + return m.Operation + } + return nil +} + +func (m *FeedOperation) GetCreate() *resources.Feed { + if x, ok := m.GetOperation().(*FeedOperation_Create); ok { + return x.Create + } + return nil +} + +func (m *FeedOperation) GetUpdate() *resources.Feed { + if x, ok := m.GetOperation().(*FeedOperation_Update); ok { + return x.Update + } + return nil +} + +func (m *FeedOperation) GetRemove() string { + if x, ok := m.GetOperation().(*FeedOperation_Remove); ok { + return x.Remove + } + return "" +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*FeedOperation) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _FeedOperation_OneofMarshaler, _FeedOperation_OneofUnmarshaler, _FeedOperation_OneofSizer, []interface{}{ + (*FeedOperation_Create)(nil), + (*FeedOperation_Update)(nil), + (*FeedOperation_Remove)(nil), + } +} + +func _FeedOperation_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*FeedOperation) + // operation + switch x := m.Operation.(type) { + case *FeedOperation_Create: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Create); err != nil { + return err + } + case *FeedOperation_Update: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Update); err != nil { + return err + } + case *FeedOperation_Remove: + b.EncodeVarint(3<<3 | proto.WireBytes) + b.EncodeStringBytes(x.Remove) + case nil: + default: + return fmt.Errorf("FeedOperation.Operation has unexpected type %T", x) + } + return nil +} + +func _FeedOperation_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*FeedOperation) + switch tag { + case 1: // operation.create + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.Feed) + err := b.DecodeMessage(msg) + m.Operation = &FeedOperation_Create{msg} + return true, err + case 2: // operation.update + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.Feed) + err := b.DecodeMessage(msg) + m.Operation = &FeedOperation_Update{msg} + return true, err + case 3: // operation.remove + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Operation = &FeedOperation_Remove{x} + return true, err + default: + return false, nil + } +} + +func _FeedOperation_OneofSizer(msg proto.Message) (n int) { + m := msg.(*FeedOperation) + // operation + switch x := m.Operation.(type) { + case *FeedOperation_Create: + s := proto.Size(x.Create) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *FeedOperation_Update: + s := proto.Size(x.Update) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *FeedOperation_Remove: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(len(x.Remove))) + n += len(x.Remove) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// Response message for an feed mutate. +type MutateFeedsResponse struct { + // All results for the mutate. + Results []*MutateFeedResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateFeedsResponse) Reset() { *m = MutateFeedsResponse{} } +func (m *MutateFeedsResponse) String() string { return proto.CompactTextString(m) } +func (*MutateFeedsResponse) ProtoMessage() {} +func (*MutateFeedsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_feed_service_49f38c65d8e855b8, []int{3} +} +func (m *MutateFeedsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateFeedsResponse.Unmarshal(m, b) +} +func (m *MutateFeedsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateFeedsResponse.Marshal(b, m, deterministic) +} +func (dst *MutateFeedsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateFeedsResponse.Merge(dst, src) +} +func (m *MutateFeedsResponse) XXX_Size() int { + return xxx_messageInfo_MutateFeedsResponse.Size(m) +} +func (m *MutateFeedsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MutateFeedsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateFeedsResponse proto.InternalMessageInfo + +func (m *MutateFeedsResponse) GetResults() []*MutateFeedResult { + if m != nil { + return m.Results + } + return nil +} + +// The result for the feed mutate. +type MutateFeedResult struct { + // Returned for successful operations. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateFeedResult) Reset() { *m = MutateFeedResult{} } +func (m *MutateFeedResult) String() string { return proto.CompactTextString(m) } +func (*MutateFeedResult) ProtoMessage() {} +func (*MutateFeedResult) Descriptor() ([]byte, []int) { + return fileDescriptor_feed_service_49f38c65d8e855b8, []int{4} +} +func (m *MutateFeedResult) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateFeedResult.Unmarshal(m, b) +} +func (m *MutateFeedResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateFeedResult.Marshal(b, m, deterministic) +} +func (dst *MutateFeedResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateFeedResult.Merge(dst, src) +} +func (m *MutateFeedResult) XXX_Size() int { + return xxx_messageInfo_MutateFeedResult.Size(m) +} +func (m *MutateFeedResult) XXX_DiscardUnknown() { + xxx_messageInfo_MutateFeedResult.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateFeedResult proto.InternalMessageInfo + +func (m *MutateFeedResult) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetFeedRequest)(nil), "google.ads.googleads.v0.services.GetFeedRequest") + proto.RegisterType((*MutateFeedsRequest)(nil), "google.ads.googleads.v0.services.MutateFeedsRequest") + proto.RegisterType((*FeedOperation)(nil), "google.ads.googleads.v0.services.FeedOperation") + proto.RegisterType((*MutateFeedsResponse)(nil), "google.ads.googleads.v0.services.MutateFeedsResponse") + proto.RegisterType((*MutateFeedResult)(nil), "google.ads.googleads.v0.services.MutateFeedResult") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// FeedServiceClient is the client API for FeedService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type FeedServiceClient interface { + // Returns the requested feed in full detail. + GetFeed(ctx context.Context, in *GetFeedRequest, opts ...grpc.CallOption) (*resources.Feed, error) + // Creates, updates, or removes feeds. Operation statuses are + // returned. + MutateFeeds(ctx context.Context, in *MutateFeedsRequest, opts ...grpc.CallOption) (*MutateFeedsResponse, error) +} + +type feedServiceClient struct { + cc *grpc.ClientConn +} + +func NewFeedServiceClient(cc *grpc.ClientConn) FeedServiceClient { + return &feedServiceClient{cc} +} + +func (c *feedServiceClient) GetFeed(ctx context.Context, in *GetFeedRequest, opts ...grpc.CallOption) (*resources.Feed, error) { + out := new(resources.Feed) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.FeedService/GetFeed", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *feedServiceClient) MutateFeeds(ctx context.Context, in *MutateFeedsRequest, opts ...grpc.CallOption) (*MutateFeedsResponse, error) { + out := new(MutateFeedsResponse) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.FeedService/MutateFeeds", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// FeedServiceServer is the server API for FeedService service. +type FeedServiceServer interface { + // Returns the requested feed in full detail. + GetFeed(context.Context, *GetFeedRequest) (*resources.Feed, error) + // Creates, updates, or removes feeds. Operation statuses are + // returned. + MutateFeeds(context.Context, *MutateFeedsRequest) (*MutateFeedsResponse, error) +} + +func RegisterFeedServiceServer(s *grpc.Server, srv FeedServiceServer) { + s.RegisterService(&_FeedService_serviceDesc, srv) +} + +func _FeedService_GetFeed_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetFeedRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FeedServiceServer).GetFeed(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.FeedService/GetFeed", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FeedServiceServer).GetFeed(ctx, req.(*GetFeedRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FeedService_MutateFeeds_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MutateFeedsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FeedServiceServer).MutateFeeds(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.FeedService/MutateFeeds", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FeedServiceServer).MutateFeeds(ctx, req.(*MutateFeedsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _FeedService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.FeedService", + HandlerType: (*FeedServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetFeed", + Handler: _FeedService_GetFeed_Handler, + }, + { + MethodName: "MutateFeeds", + Handler: _FeedService_MutateFeeds_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/feed_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/feed_service.proto", fileDescriptor_feed_service_49f38c65d8e855b8) +} + +var fileDescriptor_feed_service_49f38c65d8e855b8 = []byte{ + // 578 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0x41, 0x6b, 0x13, 0x41, + 0x14, 0x76, 0x37, 0x92, 0xd2, 0x59, 0x2b, 0x65, 0xbc, 0x2c, 0x41, 0x30, 0xac, 0x42, 0x63, 0x90, + 0x99, 0x90, 0x1a, 0x84, 0x96, 0x1e, 0x92, 0x43, 0x53, 0xc1, 0xda, 0xb2, 0x42, 0x0f, 0x12, 0x08, + 0xd3, 0xdd, 0x97, 0x65, 0x69, 0x76, 0x67, 0xdd, 0x99, 0xcd, 0xa5, 0xf4, 0xe2, 0xc1, 0x3f, 0x20, + 0xfe, 0x01, 0x8f, 0xde, 0xfc, 0x1b, 0x9e, 0x04, 0x4f, 0xde, 0xfd, 0x13, 0xde, 0x64, 0x76, 0x76, + 0xd2, 0x44, 0x08, 0x69, 0x6e, 0x6f, 0x76, 0xde, 0xf7, 0xbd, 0x6f, 0xbe, 0xf7, 0xde, 0xa2, 0xfd, + 0x88, 0xf3, 0x68, 0x0a, 0x94, 0x85, 0x82, 0xea, 0x50, 0x45, 0xb3, 0x0e, 0x15, 0x90, 0xcf, 0xe2, + 0x00, 0x04, 0x9d, 0x00, 0x84, 0xe3, 0xea, 0x44, 0xb2, 0x9c, 0x4b, 0x8e, 0x9b, 0x3a, 0x93, 0xb0, + 0x50, 0x90, 0x39, 0x88, 0xcc, 0x3a, 0xc4, 0x80, 0x1a, 0x2f, 0x56, 0xd1, 0xe6, 0x20, 0x78, 0x91, + 0x1b, 0x5e, 0xcd, 0xd7, 0x78, 0x6c, 0xb2, 0xb3, 0x98, 0xb2, 0x34, 0xe5, 0x92, 0xc9, 0x98, 0xa7, + 0xa2, 0xba, 0xad, 0xaa, 0xd1, 0xf2, 0x74, 0x59, 0x4c, 0xe8, 0x24, 0x86, 0x69, 0x38, 0x4e, 0x98, + 0xb8, 0xd2, 0x19, 0x5e, 0x0f, 0x3d, 0x1c, 0x82, 0x3c, 0x06, 0x08, 0x7d, 0xf8, 0x50, 0x80, 0x90, + 0xf8, 0x29, 0xda, 0x31, 0x95, 0xc6, 0x29, 0x4b, 0xc0, 0xb5, 0x9a, 0x56, 0x6b, 0xdb, 0x7f, 0x60, + 0x3e, 0xbe, 0x65, 0x09, 0x78, 0x9f, 0x2c, 0x84, 0x4f, 0x0b, 0xc9, 0x24, 0x28, 0xa8, 0x30, 0xd8, + 0x27, 0xc8, 0x09, 0x0a, 0x21, 0x79, 0x02, 0xf9, 0x38, 0x0e, 0x2b, 0x24, 0x32, 0x9f, 0x5e, 0x87, + 0xf8, 0x0c, 0x21, 0x9e, 0x41, 0xae, 0x45, 0xba, 0x76, 0xb3, 0xd6, 0x72, 0xba, 0x94, 0xac, 0xf3, + 0x84, 0xa8, 0x22, 0x67, 0x06, 0xe7, 0x2f, 0x50, 0x78, 0x7f, 0x2d, 0xb4, 0xb3, 0x74, 0x8b, 0x0f, + 0x91, 0x53, 0x64, 0x21, 0x93, 0x50, 0x3e, 0xd3, 0xbd, 0xdf, 0xb4, 0x5a, 0x4e, 0xb7, 0x61, 0x6a, + 0x18, 0x27, 0xc8, 0xb1, 0x72, 0xe2, 0x94, 0x89, 0x2b, 0x1f, 0xe9, 0x74, 0x15, 0xe3, 0x3e, 0xaa, + 0x07, 0x39, 0x30, 0xa9, 0x5f, 0xed, 0x74, 0xf7, 0x56, 0x6a, 0x9b, 0x77, 0xa3, 0x14, 0x77, 0x72, + 0xcf, 0xaf, 0x80, 0x8a, 0x42, 0x13, 0xba, 0xf6, 0xc6, 0x14, 0x1a, 0x88, 0x5d, 0x54, 0xcf, 0x21, + 0xe1, 0x33, 0x70, 0x6b, 0xca, 0x41, 0x75, 0xa3, 0xcf, 0x03, 0x07, 0x6d, 0xcf, 0x1f, 0xef, 0x05, + 0xe8, 0xd1, 0x52, 0x0f, 0x44, 0xc6, 0x53, 0x01, 0xf8, 0x0d, 0xda, 0xca, 0x41, 0x14, 0x53, 0x69, + 0x0c, 0xee, 0xae, 0x37, 0xf8, 0x96, 0xc7, 0x2f, 0xa1, 0xbe, 0xa1, 0xf0, 0x5e, 0xa1, 0xdd, 0xff, + 0x2f, 0xef, 0x34, 0x22, 0xdd, 0xdf, 0x36, 0x72, 0x14, 0xe6, 0x9d, 0xae, 0x81, 0xbf, 0x58, 0x68, + 0xab, 0x1a, 0x35, 0xdc, 0x59, 0xaf, 0x68, 0x79, 0x2a, 0x1b, 0x77, 0x75, 0xd1, 0xa3, 0x1f, 0x7f, + 0xfd, 0xf9, 0x6c, 0x3f, 0xc7, 0x7b, 0x6a, 0x65, 0xae, 0x97, 0x64, 0x1e, 0x99, 0x41, 0x14, 0xb4, + 0x5d, 0xee, 0x90, 0xa0, 0xed, 0x1b, 0xfc, 0xdd, 0x42, 0xce, 0x82, 0x8d, 0xf8, 0xe5, 0x26, 0x6e, + 0x99, 0xc9, 0x6f, 0xf4, 0x36, 0x44, 0xe9, 0x5e, 0x79, 0xbd, 0x52, 0x2d, 0xf5, 0xda, 0x4a, 0xed, + 0xad, 0xbc, 0xeb, 0x85, 0x2d, 0x3a, 0x6a, 0xdf, 0x68, 0xb1, 0x07, 0x49, 0x49, 0x70, 0x60, 0xb5, + 0x07, 0x3f, 0x2d, 0xf4, 0x2c, 0xe0, 0xc9, 0xda, 0x9a, 0x83, 0xdd, 0x85, 0x0e, 0x9c, 0xab, 0xd1, + 0x3f, 0xb7, 0xde, 0x9f, 0x54, 0xa8, 0x88, 0x4f, 0x59, 0x1a, 0x11, 0x9e, 0x47, 0x34, 0x82, 0xb4, + 0x5c, 0x0c, 0xf3, 0xc3, 0xc9, 0x62, 0xb1, 0xfa, 0xb7, 0x76, 0x68, 0x82, 0xaf, 0x76, 0x6d, 0xd8, + 0xef, 0x7f, 0xb3, 0x9b, 0x43, 0x4d, 0xd8, 0x0f, 0x05, 0xd1, 0xa1, 0x8a, 0x2e, 0x3a, 0xa4, 0x2a, + 0x2c, 0x7e, 0x98, 0x94, 0x51, 0x3f, 0x14, 0xa3, 0x79, 0xca, 0xe8, 0xa2, 0x33, 0x32, 0x29, 0x97, + 0xf5, 0x52, 0xc0, 0xfe, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x2d, 0x35, 0xe0, 0x55, 0x56, 0x05, + 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/gender_view_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/gender_view_service.pb.go new file mode 100644 index 000000000..29c710c0f --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/gender_view_service.pb.go @@ -0,0 +1,174 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/gender_view_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [GenderViewService.GetGenderView][google.ads.googleads.v0.services.GenderViewService.GetGenderView]. +type GetGenderViewRequest struct { + // The resource name of the gender view to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetGenderViewRequest) Reset() { *m = GetGenderViewRequest{} } +func (m *GetGenderViewRequest) String() string { return proto.CompactTextString(m) } +func (*GetGenderViewRequest) ProtoMessage() {} +func (*GetGenderViewRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_gender_view_service_24d25db8a4dd9eb3, []int{0} +} +func (m *GetGenderViewRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetGenderViewRequest.Unmarshal(m, b) +} +func (m *GetGenderViewRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetGenderViewRequest.Marshal(b, m, deterministic) +} +func (dst *GetGenderViewRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetGenderViewRequest.Merge(dst, src) +} +func (m *GetGenderViewRequest) XXX_Size() int { + return xxx_messageInfo_GetGenderViewRequest.Size(m) +} +func (m *GetGenderViewRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetGenderViewRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetGenderViewRequest proto.InternalMessageInfo + +func (m *GetGenderViewRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetGenderViewRequest)(nil), "google.ads.googleads.v0.services.GetGenderViewRequest") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// GenderViewServiceClient is the client API for GenderViewService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type GenderViewServiceClient interface { + // Returns the requested gender view in full detail. + GetGenderView(ctx context.Context, in *GetGenderViewRequest, opts ...grpc.CallOption) (*resources.GenderView, error) +} + +type genderViewServiceClient struct { + cc *grpc.ClientConn +} + +func NewGenderViewServiceClient(cc *grpc.ClientConn) GenderViewServiceClient { + return &genderViewServiceClient{cc} +} + +func (c *genderViewServiceClient) GetGenderView(ctx context.Context, in *GetGenderViewRequest, opts ...grpc.CallOption) (*resources.GenderView, error) { + out := new(resources.GenderView) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.GenderViewService/GetGenderView", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// GenderViewServiceServer is the server API for GenderViewService service. +type GenderViewServiceServer interface { + // Returns the requested gender view in full detail. + GetGenderView(context.Context, *GetGenderViewRequest) (*resources.GenderView, error) +} + +func RegisterGenderViewServiceServer(s *grpc.Server, srv GenderViewServiceServer) { + s.RegisterService(&_GenderViewService_serviceDesc, srv) +} + +func _GenderViewService_GetGenderView_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetGenderViewRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GenderViewServiceServer).GetGenderView(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.GenderViewService/GetGenderView", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GenderViewServiceServer).GetGenderView(ctx, req.(*GetGenderViewRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _GenderViewService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.GenderViewService", + HandlerType: (*GenderViewServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetGenderView", + Handler: _GenderViewService_GetGenderView_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/gender_view_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/gender_view_service.proto", fileDescriptor_gender_view_service_24d25db8a4dd9eb3) +} + +var fileDescriptor_gender_view_service_24d25db8a4dd9eb3 = []byte{ + // 340 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x4a, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xe2, 0xd4, + 0xa2, 0xb2, 0xcc, 0xe4, 0xd4, 0x62, 0xfd, 0xf4, 0xd4, 0xbc, 0x94, 0xd4, 0xa2, 0xf8, 0xb2, 0xcc, + 0xd4, 0xf2, 0x78, 0xa8, 0xa0, 0x5e, 0x41, 0x51, 0x7e, 0x49, 0xbe, 0x90, 0x02, 0x44, 0x83, 0x5e, + 0x62, 0x4a, 0xb1, 0x1e, 0x5c, 0xaf, 0x5e, 0x99, 0x81, 0x1e, 0x4c, 0xaf, 0x94, 0x31, 0x2e, 0xd3, + 0x8b, 0x52, 0x8b, 0xf3, 0x4b, 0x8b, 0xd0, 0x8c, 0x87, 0x18, 0x2b, 0x25, 0x03, 0xd3, 0x54, 0x90, + 0xa9, 0x9f, 0x98, 0x97, 0x97, 0x5f, 0x92, 0x58, 0x92, 0x99, 0x9f, 0x57, 0x0c, 0x91, 0x55, 0xb2, + 0xe6, 0x12, 0x71, 0x4f, 0x2d, 0x71, 0x07, 0xeb, 0x0a, 0xcb, 0x4c, 0x2d, 0x0f, 0x4a, 0x2d, 0x2c, + 0x4d, 0x2d, 0x2e, 0x11, 0x52, 0xe6, 0xe2, 0x85, 0x19, 0x1a, 0x9f, 0x97, 0x98, 0x9b, 0x2a, 0xc1, + 0xa8, 0xc0, 0xa8, 0xc1, 0x19, 0xc4, 0x03, 0x13, 0xf4, 0x4b, 0xcc, 0x4d, 0x35, 0x3a, 0xcc, 0xc8, + 0x25, 0x88, 0xd0, 0x1a, 0x0c, 0x71, 0xa6, 0xd0, 0x5a, 0x46, 0x2e, 0x5e, 0x14, 0x33, 0x85, 0xcc, + 0xf4, 0x08, 0x79, 0x4d, 0x0f, 0x9b, 0x23, 0xa4, 0x74, 0x71, 0xea, 0x83, 0x7b, 0x58, 0x0f, 0xa1, + 0x4b, 0xc9, 0xb4, 0xe9, 0xf2, 0x93, 0xc9, 0x4c, 0xfa, 0x42, 0xba, 0xa0, 0x20, 0xa9, 0x46, 0x71, + 0xbe, 0x6d, 0x72, 0x69, 0x71, 0x49, 0x7e, 0x6e, 0x6a, 0x51, 0xb1, 0xbe, 0x16, 0x34, 0x8c, 0x40, + 0x5a, 0x8a, 0xf5, 0xb5, 0x6a, 0x9d, 0xae, 0x31, 0x72, 0xa9, 0x24, 0xe7, 0xe7, 0x12, 0x74, 0xa3, + 0x93, 0x18, 0x86, 0x5f, 0x03, 0x40, 0x61, 0x18, 0xc0, 0x18, 0xe5, 0x01, 0xd5, 0x9b, 0x9e, 0x9f, + 0x93, 0x98, 0x97, 0xae, 0x97, 0x5f, 0x94, 0x0e, 0xb2, 0x04, 0x1c, 0xc2, 0xb0, 0x88, 0x2a, 0xc8, + 0x2c, 0xc6, 0x9d, 0x2a, 0xac, 0x61, 0x8c, 0x45, 0x4c, 0xcc, 0xee, 0x8e, 0x8e, 0xab, 0x98, 0x14, + 0xdc, 0x21, 0x06, 0x3a, 0xa6, 0x14, 0xeb, 0x41, 0x98, 0x20, 0x56, 0x98, 0x81, 0x1e, 0xd4, 0xe2, + 0xe2, 0x53, 0x30, 0x25, 0x31, 0x8e, 0x29, 0xc5, 0x31, 0x70, 0x25, 0x31, 0x61, 0x06, 0x31, 0x30, + 0x25, 0x49, 0x6c, 0x60, 0x07, 0x18, 0x03, 0x02, 0x00, 0x00, 0xff, 0xff, 0x3d, 0xf5, 0x86, 0x9c, + 0x95, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/geo_target_constant_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/geo_target_constant_service.pb.go new file mode 100644 index 000000000..c321becf9 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/geo_target_constant_service.pb.go @@ -0,0 +1,615 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/geo_target_constant_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [GeoTargetConstantService.GetGeoTargetConstant][google.ads.googleads.v0.services.GeoTargetConstantService.GetGeoTargetConstant]. +type GetGeoTargetConstantRequest struct { + // The resource name of the geo target constant to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetGeoTargetConstantRequest) Reset() { *m = GetGeoTargetConstantRequest{} } +func (m *GetGeoTargetConstantRequest) String() string { return proto.CompactTextString(m) } +func (*GetGeoTargetConstantRequest) ProtoMessage() {} +func (*GetGeoTargetConstantRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_geo_target_constant_service_cb9e61b3d70ff45b, []int{0} +} +func (m *GetGeoTargetConstantRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetGeoTargetConstantRequest.Unmarshal(m, b) +} +func (m *GetGeoTargetConstantRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetGeoTargetConstantRequest.Marshal(b, m, deterministic) +} +func (dst *GetGeoTargetConstantRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetGeoTargetConstantRequest.Merge(dst, src) +} +func (m *GetGeoTargetConstantRequest) XXX_Size() int { + return xxx_messageInfo_GetGeoTargetConstantRequest.Size(m) +} +func (m *GetGeoTargetConstantRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetGeoTargetConstantRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetGeoTargetConstantRequest proto.InternalMessageInfo + +func (m *GetGeoTargetConstantRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +// Request message for +// [GeoTargetConstantService.SuggestGeoTargetConstantsRequest][]. +type SuggestGeoTargetConstantsRequest struct { + // If possible, returned geo targets are translated using this locale. If not, + // en is used by default. This is also used as a hint for returned geo + // targets. + Locale *wrappers.StringValue `protobuf:"bytes,3,opt,name=locale,proto3" json:"locale,omitempty"` + // Returned geo targets are restricted to this country code. + CountryCode *wrappers.StringValue `protobuf:"bytes,5,opt,name=country_code,json=countryCode,proto3" json:"country_code,omitempty"` + // Required. A selector of geo target constants. + // + // Types that are valid to be assigned to Query: + // *SuggestGeoTargetConstantsRequest_LocationNames_ + // *SuggestGeoTargetConstantsRequest_GeoTargets_ + Query isSuggestGeoTargetConstantsRequest_Query `protobuf_oneof:"query"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SuggestGeoTargetConstantsRequest) Reset() { *m = SuggestGeoTargetConstantsRequest{} } +func (m *SuggestGeoTargetConstantsRequest) String() string { return proto.CompactTextString(m) } +func (*SuggestGeoTargetConstantsRequest) ProtoMessage() {} +func (*SuggestGeoTargetConstantsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_geo_target_constant_service_cb9e61b3d70ff45b, []int{1} +} +func (m *SuggestGeoTargetConstantsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SuggestGeoTargetConstantsRequest.Unmarshal(m, b) +} +func (m *SuggestGeoTargetConstantsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SuggestGeoTargetConstantsRequest.Marshal(b, m, deterministic) +} +func (dst *SuggestGeoTargetConstantsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_SuggestGeoTargetConstantsRequest.Merge(dst, src) +} +func (m *SuggestGeoTargetConstantsRequest) XXX_Size() int { + return xxx_messageInfo_SuggestGeoTargetConstantsRequest.Size(m) +} +func (m *SuggestGeoTargetConstantsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_SuggestGeoTargetConstantsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_SuggestGeoTargetConstantsRequest proto.InternalMessageInfo + +func (m *SuggestGeoTargetConstantsRequest) GetLocale() *wrappers.StringValue { + if m != nil { + return m.Locale + } + return nil +} + +func (m *SuggestGeoTargetConstantsRequest) GetCountryCode() *wrappers.StringValue { + if m != nil { + return m.CountryCode + } + return nil +} + +type isSuggestGeoTargetConstantsRequest_Query interface { + isSuggestGeoTargetConstantsRequest_Query() +} + +type SuggestGeoTargetConstantsRequest_LocationNames_ struct { + LocationNames *SuggestGeoTargetConstantsRequest_LocationNames `protobuf:"bytes,1,opt,name=location_names,json=locationNames,proto3,oneof"` +} + +type SuggestGeoTargetConstantsRequest_GeoTargets_ struct { + GeoTargets *SuggestGeoTargetConstantsRequest_GeoTargets `protobuf:"bytes,2,opt,name=geo_targets,json=geoTargets,proto3,oneof"` +} + +func (*SuggestGeoTargetConstantsRequest_LocationNames_) isSuggestGeoTargetConstantsRequest_Query() {} + +func (*SuggestGeoTargetConstantsRequest_GeoTargets_) isSuggestGeoTargetConstantsRequest_Query() {} + +func (m *SuggestGeoTargetConstantsRequest) GetQuery() isSuggestGeoTargetConstantsRequest_Query { + if m != nil { + return m.Query + } + return nil +} + +func (m *SuggestGeoTargetConstantsRequest) GetLocationNames() *SuggestGeoTargetConstantsRequest_LocationNames { + if x, ok := m.GetQuery().(*SuggestGeoTargetConstantsRequest_LocationNames_); ok { + return x.LocationNames + } + return nil +} + +func (m *SuggestGeoTargetConstantsRequest) GetGeoTargets() *SuggestGeoTargetConstantsRequest_GeoTargets { + if x, ok := m.GetQuery().(*SuggestGeoTargetConstantsRequest_GeoTargets_); ok { + return x.GeoTargets + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*SuggestGeoTargetConstantsRequest) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _SuggestGeoTargetConstantsRequest_OneofMarshaler, _SuggestGeoTargetConstantsRequest_OneofUnmarshaler, _SuggestGeoTargetConstantsRequest_OneofSizer, []interface{}{ + (*SuggestGeoTargetConstantsRequest_LocationNames_)(nil), + (*SuggestGeoTargetConstantsRequest_GeoTargets_)(nil), + } +} + +func _SuggestGeoTargetConstantsRequest_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*SuggestGeoTargetConstantsRequest) + // query + switch x := m.Query.(type) { + case *SuggestGeoTargetConstantsRequest_LocationNames_: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.LocationNames); err != nil { + return err + } + case *SuggestGeoTargetConstantsRequest_GeoTargets_: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.GeoTargets); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("SuggestGeoTargetConstantsRequest.Query has unexpected type %T", x) + } + return nil +} + +func _SuggestGeoTargetConstantsRequest_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*SuggestGeoTargetConstantsRequest) + switch tag { + case 1: // query.location_names + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(SuggestGeoTargetConstantsRequest_LocationNames) + err := b.DecodeMessage(msg) + m.Query = &SuggestGeoTargetConstantsRequest_LocationNames_{msg} + return true, err + case 2: // query.geo_targets + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(SuggestGeoTargetConstantsRequest_GeoTargets) + err := b.DecodeMessage(msg) + m.Query = &SuggestGeoTargetConstantsRequest_GeoTargets_{msg} + return true, err + default: + return false, nil + } +} + +func _SuggestGeoTargetConstantsRequest_OneofSizer(msg proto.Message) (n int) { + m := msg.(*SuggestGeoTargetConstantsRequest) + // query + switch x := m.Query.(type) { + case *SuggestGeoTargetConstantsRequest_LocationNames_: + s := proto.Size(x.LocationNames) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *SuggestGeoTargetConstantsRequest_GeoTargets_: + s := proto.Size(x.GeoTargets) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// A list of location names. +type SuggestGeoTargetConstantsRequest_LocationNames struct { + // A list of location names. + Names []*wrappers.StringValue `protobuf:"bytes,1,rep,name=names,proto3" json:"names,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SuggestGeoTargetConstantsRequest_LocationNames) Reset() { + *m = SuggestGeoTargetConstantsRequest_LocationNames{} +} +func (m *SuggestGeoTargetConstantsRequest_LocationNames) String() string { + return proto.CompactTextString(m) +} +func (*SuggestGeoTargetConstantsRequest_LocationNames) ProtoMessage() {} +func (*SuggestGeoTargetConstantsRequest_LocationNames) Descriptor() ([]byte, []int) { + return fileDescriptor_geo_target_constant_service_cb9e61b3d70ff45b, []int{1, 0} +} +func (m *SuggestGeoTargetConstantsRequest_LocationNames) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SuggestGeoTargetConstantsRequest_LocationNames.Unmarshal(m, b) +} +func (m *SuggestGeoTargetConstantsRequest_LocationNames) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SuggestGeoTargetConstantsRequest_LocationNames.Marshal(b, m, deterministic) +} +func (dst *SuggestGeoTargetConstantsRequest_LocationNames) XXX_Merge(src proto.Message) { + xxx_messageInfo_SuggestGeoTargetConstantsRequest_LocationNames.Merge(dst, src) +} +func (m *SuggestGeoTargetConstantsRequest_LocationNames) XXX_Size() int { + return xxx_messageInfo_SuggestGeoTargetConstantsRequest_LocationNames.Size(m) +} +func (m *SuggestGeoTargetConstantsRequest_LocationNames) XXX_DiscardUnknown() { + xxx_messageInfo_SuggestGeoTargetConstantsRequest_LocationNames.DiscardUnknown(m) +} + +var xxx_messageInfo_SuggestGeoTargetConstantsRequest_LocationNames proto.InternalMessageInfo + +func (m *SuggestGeoTargetConstantsRequest_LocationNames) GetNames() []*wrappers.StringValue { + if m != nil { + return m.Names + } + return nil +} + +// A list of geo target constant resource names. +type SuggestGeoTargetConstantsRequest_GeoTargets struct { + // A list of geo target constant resource names. + GeoTargetConstants []*wrappers.StringValue `protobuf:"bytes,1,rep,name=geo_target_constants,json=geoTargetConstants,proto3" json:"geo_target_constants,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SuggestGeoTargetConstantsRequest_GeoTargets) Reset() { + *m = SuggestGeoTargetConstantsRequest_GeoTargets{} +} +func (m *SuggestGeoTargetConstantsRequest_GeoTargets) String() string { + return proto.CompactTextString(m) +} +func (*SuggestGeoTargetConstantsRequest_GeoTargets) ProtoMessage() {} +func (*SuggestGeoTargetConstantsRequest_GeoTargets) Descriptor() ([]byte, []int) { + return fileDescriptor_geo_target_constant_service_cb9e61b3d70ff45b, []int{1, 1} +} +func (m *SuggestGeoTargetConstantsRequest_GeoTargets) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SuggestGeoTargetConstantsRequest_GeoTargets.Unmarshal(m, b) +} +func (m *SuggestGeoTargetConstantsRequest_GeoTargets) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SuggestGeoTargetConstantsRequest_GeoTargets.Marshal(b, m, deterministic) +} +func (dst *SuggestGeoTargetConstantsRequest_GeoTargets) XXX_Merge(src proto.Message) { + xxx_messageInfo_SuggestGeoTargetConstantsRequest_GeoTargets.Merge(dst, src) +} +func (m *SuggestGeoTargetConstantsRequest_GeoTargets) XXX_Size() int { + return xxx_messageInfo_SuggestGeoTargetConstantsRequest_GeoTargets.Size(m) +} +func (m *SuggestGeoTargetConstantsRequest_GeoTargets) XXX_DiscardUnknown() { + xxx_messageInfo_SuggestGeoTargetConstantsRequest_GeoTargets.DiscardUnknown(m) +} + +var xxx_messageInfo_SuggestGeoTargetConstantsRequest_GeoTargets proto.InternalMessageInfo + +func (m *SuggestGeoTargetConstantsRequest_GeoTargets) GetGeoTargetConstants() []*wrappers.StringValue { + if m != nil { + return m.GeoTargetConstants + } + return nil +} + +// Response message for [GeoTargetConstantService.SuggestGeoTargetConstants][google.ads.googleads.v0.services.GeoTargetConstantService.SuggestGeoTargetConstants] +type SuggestGeoTargetConstantsResponse struct { + // Geo target constant suggestions. + GeoTargetConstantSuggestions []*GeoTargetConstantSuggestion `protobuf:"bytes,1,rep,name=geo_target_constant_suggestions,json=geoTargetConstantSuggestions,proto3" json:"geo_target_constant_suggestions,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SuggestGeoTargetConstantsResponse) Reset() { *m = SuggestGeoTargetConstantsResponse{} } +func (m *SuggestGeoTargetConstantsResponse) String() string { return proto.CompactTextString(m) } +func (*SuggestGeoTargetConstantsResponse) ProtoMessage() {} +func (*SuggestGeoTargetConstantsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_geo_target_constant_service_cb9e61b3d70ff45b, []int{2} +} +func (m *SuggestGeoTargetConstantsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SuggestGeoTargetConstantsResponse.Unmarshal(m, b) +} +func (m *SuggestGeoTargetConstantsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SuggestGeoTargetConstantsResponse.Marshal(b, m, deterministic) +} +func (dst *SuggestGeoTargetConstantsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_SuggestGeoTargetConstantsResponse.Merge(dst, src) +} +func (m *SuggestGeoTargetConstantsResponse) XXX_Size() int { + return xxx_messageInfo_SuggestGeoTargetConstantsResponse.Size(m) +} +func (m *SuggestGeoTargetConstantsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_SuggestGeoTargetConstantsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_SuggestGeoTargetConstantsResponse proto.InternalMessageInfo + +func (m *SuggestGeoTargetConstantsResponse) GetGeoTargetConstantSuggestions() []*GeoTargetConstantSuggestion { + if m != nil { + return m.GeoTargetConstantSuggestions + } + return nil +} + +// A geo target constant suggestion. +type GeoTargetConstantSuggestion struct { + // The language this GeoTargetConstantSuggestion is currently translated to. + // It affects the name of geo target fields. For example, if locale=en, then + // name=Spain. If locale=es, then name=España. The default locale will be + // returned if no translation exists for the locale in the request. + Locale *wrappers.StringValue `protobuf:"bytes,1,opt,name=locale,proto3" json:"locale,omitempty"` + // Approximate user population that will be targeted, rounded to the + // nearest 100. + Reach *wrappers.Int64Value `protobuf:"bytes,2,opt,name=reach,proto3" json:"reach,omitempty"` + // If the request searched by location name, this is the location name that + // matched the geo target. + SearchTerm *wrappers.StringValue `protobuf:"bytes,3,opt,name=search_term,json=searchTerm,proto3" json:"search_term,omitempty"` + // The GeoTargetConstant result. + GeoTargetConstant *resources.GeoTargetConstant `protobuf:"bytes,4,opt,name=geo_target_constant,json=geoTargetConstant,proto3" json:"geo_target_constant,omitempty"` + // The list of parents of the geo target constant. + GeoTargetConstantParents []*resources.GeoTargetConstant `protobuf:"bytes,5,rep,name=geo_target_constant_parents,json=geoTargetConstantParents,proto3" json:"geo_target_constant_parents,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GeoTargetConstantSuggestion) Reset() { *m = GeoTargetConstantSuggestion{} } +func (m *GeoTargetConstantSuggestion) String() string { return proto.CompactTextString(m) } +func (*GeoTargetConstantSuggestion) ProtoMessage() {} +func (*GeoTargetConstantSuggestion) Descriptor() ([]byte, []int) { + return fileDescriptor_geo_target_constant_service_cb9e61b3d70ff45b, []int{3} +} +func (m *GeoTargetConstantSuggestion) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GeoTargetConstantSuggestion.Unmarshal(m, b) +} +func (m *GeoTargetConstantSuggestion) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GeoTargetConstantSuggestion.Marshal(b, m, deterministic) +} +func (dst *GeoTargetConstantSuggestion) XXX_Merge(src proto.Message) { + xxx_messageInfo_GeoTargetConstantSuggestion.Merge(dst, src) +} +func (m *GeoTargetConstantSuggestion) XXX_Size() int { + return xxx_messageInfo_GeoTargetConstantSuggestion.Size(m) +} +func (m *GeoTargetConstantSuggestion) XXX_DiscardUnknown() { + xxx_messageInfo_GeoTargetConstantSuggestion.DiscardUnknown(m) +} + +var xxx_messageInfo_GeoTargetConstantSuggestion proto.InternalMessageInfo + +func (m *GeoTargetConstantSuggestion) GetLocale() *wrappers.StringValue { + if m != nil { + return m.Locale + } + return nil +} + +func (m *GeoTargetConstantSuggestion) GetReach() *wrappers.Int64Value { + if m != nil { + return m.Reach + } + return nil +} + +func (m *GeoTargetConstantSuggestion) GetSearchTerm() *wrappers.StringValue { + if m != nil { + return m.SearchTerm + } + return nil +} + +func (m *GeoTargetConstantSuggestion) GetGeoTargetConstant() *resources.GeoTargetConstant { + if m != nil { + return m.GeoTargetConstant + } + return nil +} + +func (m *GeoTargetConstantSuggestion) GetGeoTargetConstantParents() []*resources.GeoTargetConstant { + if m != nil { + return m.GeoTargetConstantParents + } + return nil +} + +func init() { + proto.RegisterType((*GetGeoTargetConstantRequest)(nil), "google.ads.googleads.v0.services.GetGeoTargetConstantRequest") + proto.RegisterType((*SuggestGeoTargetConstantsRequest)(nil), "google.ads.googleads.v0.services.SuggestGeoTargetConstantsRequest") + proto.RegisterType((*SuggestGeoTargetConstantsRequest_LocationNames)(nil), "google.ads.googleads.v0.services.SuggestGeoTargetConstantsRequest.LocationNames") + proto.RegisterType((*SuggestGeoTargetConstantsRequest_GeoTargets)(nil), "google.ads.googleads.v0.services.SuggestGeoTargetConstantsRequest.GeoTargets") + proto.RegisterType((*SuggestGeoTargetConstantsResponse)(nil), "google.ads.googleads.v0.services.SuggestGeoTargetConstantsResponse") + proto.RegisterType((*GeoTargetConstantSuggestion)(nil), "google.ads.googleads.v0.services.GeoTargetConstantSuggestion") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// GeoTargetConstantServiceClient is the client API for GeoTargetConstantService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type GeoTargetConstantServiceClient interface { + // Returns the requested geo target constant in full detail. + GetGeoTargetConstant(ctx context.Context, in *GetGeoTargetConstantRequest, opts ...grpc.CallOption) (*resources.GeoTargetConstant, error) + // Returns GeoTargetConstant suggestions by location name or by resource name. + SuggestGeoTargetConstants(ctx context.Context, in *SuggestGeoTargetConstantsRequest, opts ...grpc.CallOption) (*SuggestGeoTargetConstantsResponse, error) +} + +type geoTargetConstantServiceClient struct { + cc *grpc.ClientConn +} + +func NewGeoTargetConstantServiceClient(cc *grpc.ClientConn) GeoTargetConstantServiceClient { + return &geoTargetConstantServiceClient{cc} +} + +func (c *geoTargetConstantServiceClient) GetGeoTargetConstant(ctx context.Context, in *GetGeoTargetConstantRequest, opts ...grpc.CallOption) (*resources.GeoTargetConstant, error) { + out := new(resources.GeoTargetConstant) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.GeoTargetConstantService/GetGeoTargetConstant", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *geoTargetConstantServiceClient) SuggestGeoTargetConstants(ctx context.Context, in *SuggestGeoTargetConstantsRequest, opts ...grpc.CallOption) (*SuggestGeoTargetConstantsResponse, error) { + out := new(SuggestGeoTargetConstantsResponse) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.GeoTargetConstantService/SuggestGeoTargetConstants", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// GeoTargetConstantServiceServer is the server API for GeoTargetConstantService service. +type GeoTargetConstantServiceServer interface { + // Returns the requested geo target constant in full detail. + GetGeoTargetConstant(context.Context, *GetGeoTargetConstantRequest) (*resources.GeoTargetConstant, error) + // Returns GeoTargetConstant suggestions by location name or by resource name. + SuggestGeoTargetConstants(context.Context, *SuggestGeoTargetConstantsRequest) (*SuggestGeoTargetConstantsResponse, error) +} + +func RegisterGeoTargetConstantServiceServer(s *grpc.Server, srv GeoTargetConstantServiceServer) { + s.RegisterService(&_GeoTargetConstantService_serviceDesc, srv) +} + +func _GeoTargetConstantService_GetGeoTargetConstant_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetGeoTargetConstantRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GeoTargetConstantServiceServer).GetGeoTargetConstant(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.GeoTargetConstantService/GetGeoTargetConstant", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GeoTargetConstantServiceServer).GetGeoTargetConstant(ctx, req.(*GetGeoTargetConstantRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _GeoTargetConstantService_SuggestGeoTargetConstants_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SuggestGeoTargetConstantsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GeoTargetConstantServiceServer).SuggestGeoTargetConstants(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.GeoTargetConstantService/SuggestGeoTargetConstants", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GeoTargetConstantServiceServer).SuggestGeoTargetConstants(ctx, req.(*SuggestGeoTargetConstantsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _GeoTargetConstantService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.GeoTargetConstantService", + HandlerType: (*GeoTargetConstantServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetGeoTargetConstant", + Handler: _GeoTargetConstantService_GetGeoTargetConstant_Handler, + }, + { + MethodName: "SuggestGeoTargetConstants", + Handler: _GeoTargetConstantService_SuggestGeoTargetConstants_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/geo_target_constant_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/geo_target_constant_service.proto", fileDescriptor_geo_target_constant_service_cb9e61b3d70ff45b) +} + +var fileDescriptor_geo_target_constant_service_cb9e61b3d70ff45b = []byte{ + // 696 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x55, 0xcd, 0x6e, 0xd3, 0x4a, + 0x14, 0xbe, 0x4e, 0x9a, 0x5e, 0xdd, 0x93, 0xf6, 0x4a, 0x77, 0x6e, 0x17, 0x26, 0x2d, 0x25, 0xb8, + 0x2c, 0x4a, 0x17, 0x76, 0x08, 0x15, 0x8b, 0x56, 0x15, 0x4a, 0xb2, 0x48, 0x91, 0xa0, 0x8a, 0xd2, + 0xaa, 0x0b, 0x14, 0x29, 0x9a, 0xda, 0x87, 0x69, 0xa4, 0xc4, 0xe3, 0xce, 0x8c, 0x8b, 0x2a, 0xc4, + 0x06, 0xf1, 0x06, 0xbc, 0x00, 0x62, 0x59, 0xb1, 0x62, 0xcf, 0x0b, 0xb0, 0x61, 0xc1, 0x9a, 0x1d, + 0x0f, 0x82, 0x6c, 0x8f, 0xd3, 0x56, 0x8e, 0x49, 0x68, 0xd9, 0x8d, 0x7d, 0xce, 0xf9, 0xbe, 0xf9, + 0xce, 0xdf, 0x40, 0x93, 0x71, 0xce, 0x86, 0xe8, 0x50, 0x4f, 0x3a, 0xc9, 0x31, 0x3a, 0x9d, 0xd6, + 0x1c, 0x89, 0xe2, 0x74, 0xe0, 0xa2, 0x74, 0x18, 0xf2, 0xbe, 0xa2, 0x82, 0xa1, 0xea, 0xbb, 0xdc, + 0x97, 0x8a, 0xfa, 0xaa, 0xaf, 0x8d, 0x76, 0x20, 0xb8, 0xe2, 0xa4, 0x9a, 0x04, 0xda, 0xd4, 0x93, + 0xf6, 0x18, 0xc3, 0x3e, 0xad, 0xd9, 0x29, 0x46, 0x65, 0x3b, 0x8f, 0x45, 0xa0, 0xe4, 0xa1, 0xc8, + 0xa1, 0x49, 0xe0, 0x2b, 0x2b, 0x69, 0x70, 0x30, 0x70, 0xa8, 0xef, 0x73, 0x45, 0xd5, 0x80, 0xfb, + 0x52, 0x5b, 0x57, 0xb5, 0x35, 0xfe, 0x3a, 0x0a, 0x5f, 0x38, 0x2f, 0x05, 0x0d, 0x02, 0x14, 0xda, + 0x6e, 0x35, 0x61, 0xb9, 0x8d, 0xaa, 0x8d, 0xfc, 0x20, 0x06, 0x6f, 0x69, 0xec, 0x2e, 0x9e, 0x84, + 0x28, 0x15, 0x59, 0x83, 0xc5, 0xf4, 0x0e, 0x7d, 0x9f, 0x8e, 0xd0, 0x34, 0xaa, 0xc6, 0xfa, 0x3f, + 0xdd, 0x85, 0xf4, 0xe7, 0x1e, 0x1d, 0xa1, 0xf5, 0x69, 0x0e, 0xaa, 0xfb, 0x21, 0x63, 0x28, 0xb3, + 0x40, 0x32, 0x45, 0xda, 0x84, 0xf9, 0x21, 0x77, 0xe9, 0x10, 0xcd, 0x62, 0xd5, 0x58, 0x2f, 0xd7, + 0x57, 0x74, 0x2e, 0xec, 0xf4, 0x66, 0xf6, 0xbe, 0x12, 0x03, 0x9f, 0x1d, 0xd2, 0x61, 0x88, 0x5d, + 0xed, 0x4b, 0x1e, 0xc3, 0x82, 0xcb, 0x43, 0x5f, 0x89, 0xb3, 0xbe, 0xcb, 0x3d, 0x34, 0x4b, 0x33, + 0xc4, 0x96, 0x75, 0x44, 0x8b, 0x7b, 0x48, 0xce, 0xe0, 0xdf, 0x08, 0x2a, 0x4a, 0x49, 0x2c, 0x40, + 0xc6, 0x0a, 0xca, 0xf5, 0x8e, 0x3d, 0xad, 0x2a, 0xf6, 0x34, 0x49, 0xf6, 0x53, 0x0d, 0x1c, 0x25, + 0x41, 0xee, 0xfe, 0xd5, 0x5d, 0x1c, 0x5e, 0xfe, 0x41, 0x02, 0x28, 0x5f, 0x54, 0x4d, 0x9a, 0x85, + 0x98, 0xf7, 0xd9, 0x1f, 0xe0, 0x1d, 0x5b, 0x22, 0x52, 0x60, 0xe3, 0xaf, 0x4a, 0x0b, 0x16, 0xaf, + 0xdc, 0x89, 0xd4, 0xa1, 0x94, 0x8a, 0x2e, 0x4e, 0xcd, 0x5b, 0xe2, 0x5a, 0xe9, 0x01, 0x5c, 0x10, + 0x90, 0x3d, 0x58, 0x9a, 0xd0, 0x7a, 0xb3, 0x01, 0x12, 0x96, 0x91, 0xd0, 0xfc, 0x1b, 0x4a, 0x27, + 0x21, 0x8a, 0x33, 0xeb, 0xdc, 0x80, 0xbb, 0xbf, 0x50, 0x2a, 0x03, 0xee, 0x4b, 0x24, 0x6f, 0x0d, + 0xb8, 0x33, 0x71, 0xc2, 0x92, 0xc8, 0xa8, 0xd1, 0xf5, 0x55, 0x76, 0xa6, 0x27, 0x36, 0xc3, 0xb3, + 0x3f, 0x46, 0xe9, 0xae, 0xb0, 0x7c, 0xa3, 0xb4, 0xde, 0x17, 0xa3, 0x31, 0xc9, 0x75, 0xb8, 0xd4, + 0xdc, 0xc6, 0x6f, 0x34, 0xf7, 0x03, 0x28, 0x09, 0xa4, 0xee, 0xb1, 0x6e, 0x8d, 0xe5, 0x4c, 0xd0, + 0x13, 0x5f, 0x3d, 0xda, 0xd4, 0xc5, 0x89, 0x3d, 0xc9, 0x0e, 0x94, 0x25, 0x52, 0xe1, 0x1e, 0xf7, + 0x15, 0x8a, 0xd1, 0x4c, 0xa3, 0x04, 0x49, 0xc0, 0x01, 0x8a, 0x11, 0xf1, 0xe0, 0xff, 0x09, 0xd9, + 0x34, 0xe7, 0x62, 0x98, 0xcd, 0xdc, 0x0c, 0x8e, 0xd7, 0x50, 0x36, 0x85, 0xdd, 0xff, 0x32, 0x89, + 0x23, 0x12, 0x96, 0x27, 0xd5, 0x2c, 0xa0, 0x02, 0xa3, 0xd6, 0x29, 0xc5, 0xf5, 0xba, 0x1e, 0x9b, + 0x99, 0x61, 0xeb, 0x24, 0xa8, 0xf5, 0x8f, 0x45, 0x30, 0xb3, 0x25, 0x4a, 0x4a, 0x4f, 0x3e, 0x1b, + 0xb0, 0x34, 0x69, 0xcd, 0x91, 0x99, 0xba, 0x26, 0x77, 0x3d, 0x56, 0xae, 0x25, 0xc2, 0xaa, 0xbd, + 0xf9, 0xf6, 0xe3, 0x5d, 0x61, 0x83, 0xac, 0x47, 0x2b, 0xfe, 0xd5, 0x95, 0xfd, 0xba, 0x93, 0x1d, + 0x19, 0x67, 0xe3, 0x35, 0xf9, 0x6a, 0xc0, 0xad, 0xdc, 0x61, 0x21, 0xcd, 0x9b, 0xef, 0x94, 0x4a, + 0xeb, 0x46, 0x18, 0xc9, 0xb4, 0x5a, 0xf7, 0x63, 0x61, 0x6b, 0xd6, 0x6a, 0x24, 0x2c, 0xab, 0x64, + 0x4b, 0x4f, 0xed, 0x96, 0xb1, 0xd1, 0xfc, 0x6e, 0xc0, 0x3d, 0x97, 0x8f, 0xa6, 0xb2, 0x36, 0x6f, + 0xe7, 0x15, 0xb5, 0x13, 0x35, 0x7b, 0xc7, 0x78, 0xbe, 0xab, 0x21, 0x18, 0x1f, 0x52, 0x9f, 0xd9, + 0x5c, 0x30, 0x87, 0xa1, 0x1f, 0x8f, 0x42, 0xfa, 0x98, 0x06, 0x03, 0x99, 0xff, 0x82, 0x6f, 0xa7, + 0x87, 0x0f, 0x85, 0x62, 0xbb, 0xd1, 0x38, 0x2f, 0x54, 0xdb, 0x09, 0x60, 0xc3, 0x93, 0x76, 0x72, + 0x8c, 0x4e, 0x87, 0x35, 0x5b, 0x13, 0xcb, 0x2f, 0xa9, 0x4b, 0xaf, 0xe1, 0xc9, 0xde, 0xd8, 0xa5, + 0x77, 0x58, 0xeb, 0xa5, 0x2e, 0x47, 0xf3, 0xf1, 0x05, 0x1e, 0xfe, 0x0c, 0x00, 0x00, 0xff, 0xff, + 0x9e, 0x4b, 0x04, 0xea, 0x41, 0x08, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/google_ads_field_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/google_ads_field_service.pb.go new file mode 100644 index 000000000..8df1c3d8b --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/google_ads_field_service.pb.go @@ -0,0 +1,344 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/google_ads_field_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [GoogleAdsFieldService.GetGoogleAdsField][google.ads.googleads.v0.services.GoogleAdsFieldService.GetGoogleAdsField]. +type GetGoogleAdsFieldRequest struct { + // The resource name of the field to get. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetGoogleAdsFieldRequest) Reset() { *m = GetGoogleAdsFieldRequest{} } +func (m *GetGoogleAdsFieldRequest) String() string { return proto.CompactTextString(m) } +func (*GetGoogleAdsFieldRequest) ProtoMessage() {} +func (*GetGoogleAdsFieldRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_google_ads_field_service_68d4cc408e069062, []int{0} +} +func (m *GetGoogleAdsFieldRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetGoogleAdsFieldRequest.Unmarshal(m, b) +} +func (m *GetGoogleAdsFieldRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetGoogleAdsFieldRequest.Marshal(b, m, deterministic) +} +func (dst *GetGoogleAdsFieldRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetGoogleAdsFieldRequest.Merge(dst, src) +} +func (m *GetGoogleAdsFieldRequest) XXX_Size() int { + return xxx_messageInfo_GetGoogleAdsFieldRequest.Size(m) +} +func (m *GetGoogleAdsFieldRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetGoogleAdsFieldRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetGoogleAdsFieldRequest proto.InternalMessageInfo + +func (m *GetGoogleAdsFieldRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +// Request message for [GoogleAdsFieldService.SearchGoogleAdsFields][google.ads.googleads.v0.services.GoogleAdsFieldService.SearchGoogleAdsFields]. +type SearchGoogleAdsFieldsRequest struct { + // The query string. + Query string `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"` + // Token of the page to retrieve. If not specified, the first page of + // results will be returned. Use the value obtained from `next_page_token` + // in the previous response in order to request the next page of results. + PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Number of elements to retrieve in a single page. + // When too large a page is requested, the server may decide to further + // limit the number of returned resources. + PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SearchGoogleAdsFieldsRequest) Reset() { *m = SearchGoogleAdsFieldsRequest{} } +func (m *SearchGoogleAdsFieldsRequest) String() string { return proto.CompactTextString(m) } +func (*SearchGoogleAdsFieldsRequest) ProtoMessage() {} +func (*SearchGoogleAdsFieldsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_google_ads_field_service_68d4cc408e069062, []int{1} +} +func (m *SearchGoogleAdsFieldsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SearchGoogleAdsFieldsRequest.Unmarshal(m, b) +} +func (m *SearchGoogleAdsFieldsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SearchGoogleAdsFieldsRequest.Marshal(b, m, deterministic) +} +func (dst *SearchGoogleAdsFieldsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_SearchGoogleAdsFieldsRequest.Merge(dst, src) +} +func (m *SearchGoogleAdsFieldsRequest) XXX_Size() int { + return xxx_messageInfo_SearchGoogleAdsFieldsRequest.Size(m) +} +func (m *SearchGoogleAdsFieldsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_SearchGoogleAdsFieldsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_SearchGoogleAdsFieldsRequest proto.InternalMessageInfo + +func (m *SearchGoogleAdsFieldsRequest) GetQuery() string { + if m != nil { + return m.Query + } + return "" +} + +func (m *SearchGoogleAdsFieldsRequest) GetPageToken() string { + if m != nil { + return m.PageToken + } + return "" +} + +func (m *SearchGoogleAdsFieldsRequest) GetPageSize() int32 { + if m != nil { + return m.PageSize + } + return 0 +} + +// Response message for [GoogleAdsFieldService.SearchGoogleAdsFields][google.ads.googleads.v0.services.GoogleAdsFieldService.SearchGoogleAdsFields]. +type SearchGoogleAdsFieldsResponse struct { + // The list of fields that matched the query. + Results []*resources.GoogleAdsField `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"` + // Pagination token used to retrieve the next page of results. Pass the + // content of this string as the `page_token` attribute of the next request. + // `next_page_token` is not returned for the last page. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // Total number of results that match the query ignoring the LIMIT clause. + TotalResultsCount int64 `protobuf:"varint,3,opt,name=total_results_count,json=totalResultsCount,proto3" json:"total_results_count,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SearchGoogleAdsFieldsResponse) Reset() { *m = SearchGoogleAdsFieldsResponse{} } +func (m *SearchGoogleAdsFieldsResponse) String() string { return proto.CompactTextString(m) } +func (*SearchGoogleAdsFieldsResponse) ProtoMessage() {} +func (*SearchGoogleAdsFieldsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_google_ads_field_service_68d4cc408e069062, []int{2} +} +func (m *SearchGoogleAdsFieldsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SearchGoogleAdsFieldsResponse.Unmarshal(m, b) +} +func (m *SearchGoogleAdsFieldsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SearchGoogleAdsFieldsResponse.Marshal(b, m, deterministic) +} +func (dst *SearchGoogleAdsFieldsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_SearchGoogleAdsFieldsResponse.Merge(dst, src) +} +func (m *SearchGoogleAdsFieldsResponse) XXX_Size() int { + return xxx_messageInfo_SearchGoogleAdsFieldsResponse.Size(m) +} +func (m *SearchGoogleAdsFieldsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_SearchGoogleAdsFieldsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_SearchGoogleAdsFieldsResponse proto.InternalMessageInfo + +func (m *SearchGoogleAdsFieldsResponse) GetResults() []*resources.GoogleAdsField { + if m != nil { + return m.Results + } + return nil +} + +func (m *SearchGoogleAdsFieldsResponse) GetNextPageToken() string { + if m != nil { + return m.NextPageToken + } + return "" +} + +func (m *SearchGoogleAdsFieldsResponse) GetTotalResultsCount() int64 { + if m != nil { + return m.TotalResultsCount + } + return 0 +} + +func init() { + proto.RegisterType((*GetGoogleAdsFieldRequest)(nil), "google.ads.googleads.v0.services.GetGoogleAdsFieldRequest") + proto.RegisterType((*SearchGoogleAdsFieldsRequest)(nil), "google.ads.googleads.v0.services.SearchGoogleAdsFieldsRequest") + proto.RegisterType((*SearchGoogleAdsFieldsResponse)(nil), "google.ads.googleads.v0.services.SearchGoogleAdsFieldsResponse") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// GoogleAdsFieldServiceClient is the client API for GoogleAdsFieldService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type GoogleAdsFieldServiceClient interface { + // Returns just the requested field. + GetGoogleAdsField(ctx context.Context, in *GetGoogleAdsFieldRequest, opts ...grpc.CallOption) (*resources.GoogleAdsField, error) + // Returns all fields that match the search query. + SearchGoogleAdsFields(ctx context.Context, in *SearchGoogleAdsFieldsRequest, opts ...grpc.CallOption) (*SearchGoogleAdsFieldsResponse, error) +} + +type googleAdsFieldServiceClient struct { + cc *grpc.ClientConn +} + +func NewGoogleAdsFieldServiceClient(cc *grpc.ClientConn) GoogleAdsFieldServiceClient { + return &googleAdsFieldServiceClient{cc} +} + +func (c *googleAdsFieldServiceClient) GetGoogleAdsField(ctx context.Context, in *GetGoogleAdsFieldRequest, opts ...grpc.CallOption) (*resources.GoogleAdsField, error) { + out := new(resources.GoogleAdsField) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.GoogleAdsFieldService/GetGoogleAdsField", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *googleAdsFieldServiceClient) SearchGoogleAdsFields(ctx context.Context, in *SearchGoogleAdsFieldsRequest, opts ...grpc.CallOption) (*SearchGoogleAdsFieldsResponse, error) { + out := new(SearchGoogleAdsFieldsResponse) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.GoogleAdsFieldService/SearchGoogleAdsFields", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// GoogleAdsFieldServiceServer is the server API for GoogleAdsFieldService service. +type GoogleAdsFieldServiceServer interface { + // Returns just the requested field. + GetGoogleAdsField(context.Context, *GetGoogleAdsFieldRequest) (*resources.GoogleAdsField, error) + // Returns all fields that match the search query. + SearchGoogleAdsFields(context.Context, *SearchGoogleAdsFieldsRequest) (*SearchGoogleAdsFieldsResponse, error) +} + +func RegisterGoogleAdsFieldServiceServer(s *grpc.Server, srv GoogleAdsFieldServiceServer) { + s.RegisterService(&_GoogleAdsFieldService_serviceDesc, srv) +} + +func _GoogleAdsFieldService_GetGoogleAdsField_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetGoogleAdsFieldRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GoogleAdsFieldServiceServer).GetGoogleAdsField(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.GoogleAdsFieldService/GetGoogleAdsField", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GoogleAdsFieldServiceServer).GetGoogleAdsField(ctx, req.(*GetGoogleAdsFieldRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _GoogleAdsFieldService_SearchGoogleAdsFields_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SearchGoogleAdsFieldsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GoogleAdsFieldServiceServer).SearchGoogleAdsFields(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.GoogleAdsFieldService/SearchGoogleAdsFields", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GoogleAdsFieldServiceServer).SearchGoogleAdsFields(ctx, req.(*SearchGoogleAdsFieldsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _GoogleAdsFieldService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.GoogleAdsFieldService", + HandlerType: (*GoogleAdsFieldServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetGoogleAdsField", + Handler: _GoogleAdsFieldService_GetGoogleAdsField_Handler, + }, + { + MethodName: "SearchGoogleAdsFields", + Handler: _GoogleAdsFieldService_SearchGoogleAdsFields_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/google_ads_field_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/google_ads_field_service.proto", fileDescriptor_google_ads_field_service_68d4cc408e069062) +} + +var fileDescriptor_google_ads_field_service_68d4cc408e069062 = []byte{ + // 519 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x54, 0xc1, 0x8b, 0xd3, 0x4e, + 0x14, 0x66, 0x5a, 0xf6, 0xf7, 0x73, 0x47, 0x17, 0xd9, 0xd1, 0x85, 0x10, 0x77, 0x31, 0x44, 0x57, + 0xcb, 0x82, 0x93, 0xba, 0x5e, 0xa4, 0xa2, 0x25, 0x2b, 0x58, 0x41, 0x90, 0x92, 0xca, 0x1e, 0xa4, + 0x10, 0xc6, 0xe6, 0x19, 0x83, 0xe9, 0x4c, 0x36, 0x33, 0x29, 0xba, 0xe2, 0xc5, 0xbb, 0x27, 0xff, + 0x03, 0x8f, 0xde, 0xfc, 0x0b, 0xbc, 0x78, 0xf2, 0xea, 0xcd, 0xb3, 0x7f, 0x88, 0x4c, 0x92, 0x29, + 0x76, 0xb7, 0xb1, 0xe8, 0x6d, 0xf2, 0xbe, 0xf7, 0x7d, 0xdf, 0x9b, 0xf7, 0xde, 0x04, 0xf7, 0x63, + 0x21, 0xe2, 0x14, 0x3c, 0x16, 0x49, 0xaf, 0x3a, 0xea, 0xd3, 0xac, 0xeb, 0x49, 0xc8, 0x67, 0xc9, + 0x04, 0x4c, 0x34, 0x64, 0x91, 0x0c, 0x9f, 0x27, 0x90, 0x46, 0x61, 0x8d, 0xd0, 0x2c, 0x17, 0x4a, + 0x10, 0xa7, 0xc2, 0x29, 0x8b, 0x24, 0x9d, 0x0b, 0xd0, 0x59, 0x97, 0x1a, 0x01, 0xfb, 0x76, 0x93, + 0x45, 0x0e, 0x52, 0x14, 0xf9, 0x32, 0x8f, 0x4a, 0xdb, 0xde, 0x36, 0xcc, 0x2c, 0xf1, 0x18, 0xe7, + 0x42, 0x31, 0x95, 0x08, 0x2e, 0x2b, 0xd4, 0xed, 0x63, 0x6b, 0x00, 0x6a, 0x50, 0xa6, 0xf8, 0x91, + 0x7c, 0xa0, 0x89, 0x01, 0x1c, 0x15, 0x20, 0x15, 0xb9, 0x82, 0x37, 0x8c, 0x7a, 0xc8, 0xd9, 0x14, + 0x2c, 0xe4, 0xa0, 0xce, 0x7a, 0x70, 0xce, 0x04, 0x1f, 0xb3, 0x29, 0xb8, 0x19, 0xde, 0x1e, 0x01, + 0xcb, 0x27, 0x2f, 0x16, 0x35, 0xa4, 0x11, 0xb9, 0x88, 0xd7, 0x8e, 0x0a, 0xc8, 0x5f, 0xd7, 0xe4, + 0xea, 0x83, 0xec, 0x60, 0x9c, 0xb1, 0x18, 0x42, 0x25, 0x5e, 0x02, 0xb7, 0x5a, 0x25, 0xb4, 0xae, + 0x23, 0x4f, 0x74, 0x80, 0x5c, 0xc2, 0xe5, 0x47, 0x28, 0x93, 0x63, 0xb0, 0xda, 0x0e, 0xea, 0xac, + 0x05, 0x67, 0x74, 0x60, 0x94, 0x1c, 0x83, 0xfb, 0x15, 0xe1, 0x9d, 0x06, 0x4b, 0x99, 0x09, 0x2e, + 0x81, 0x3c, 0xc2, 0xff, 0xe7, 0x20, 0x8b, 0x54, 0x49, 0x0b, 0x39, 0xed, 0xce, 0xd9, 0xfd, 0x9b, + 0xb4, 0xa9, 0xc1, 0xf3, 0xf6, 0xd1, 0x13, 0x3d, 0x30, 0x0a, 0xe4, 0x1a, 0x3e, 0xcf, 0xe1, 0x95, + 0x0a, 0x4f, 0xd5, 0xbb, 0xa1, 0xc3, 0xc3, 0x79, 0xcd, 0x14, 0x5f, 0x50, 0x42, 0xb1, 0x34, 0xac, + 0x89, 0xe1, 0x44, 0x14, 0x5c, 0x95, 0xd5, 0xb7, 0x83, 0xcd, 0x12, 0x0a, 0x2a, 0xe4, 0xbe, 0x06, + 0xf6, 0xdf, 0xb7, 0xf1, 0xd6, 0xa2, 0xe7, 0xa8, 0x1a, 0x36, 0xf9, 0x8c, 0xf0, 0xe6, 0xa9, 0xa1, + 0x90, 0x1e, 0x5d, 0xb5, 0x24, 0xb4, 0x69, 0x92, 0xf6, 0xdf, 0xdf, 0xdf, 0xbd, 0xf1, 0xee, 0xfb, + 0xcf, 0x0f, 0xad, 0xeb, 0x64, 0x57, 0x2f, 0xd9, 0x9b, 0x85, 0x3d, 0xb8, 0x1b, 0x2f, 0xf6, 0xdd, + 0xdb, 0x7b, 0x4b, 0xbe, 0x20, 0xbc, 0xb5, 0x74, 0x28, 0xe4, 0xde, 0xea, 0xba, 0xff, 0xb4, 0x40, + 0x76, 0xff, 0x9f, 0xf9, 0xd5, 0x36, 0xb8, 0xbb, 0xe5, 0x4d, 0x2e, 0xbb, 0xb6, 0xbe, 0xc9, 0x89, + 0xd2, 0x7b, 0xb2, 0xa4, 0xf6, 0xd0, 0xde, 0xc1, 0x0f, 0x84, 0xaf, 0x4e, 0xc4, 0x74, 0xa5, 0xdb, + 0x81, 0xbd, 0x74, 0x6a, 0x43, 0xfd, 0x9c, 0x86, 0xe8, 0xe9, 0xc3, 0x9a, 0x1f, 0x8b, 0x94, 0xf1, + 0x98, 0x8a, 0x3c, 0xf6, 0x62, 0xe0, 0xe5, 0x63, 0x33, 0x0f, 0x37, 0x4b, 0x64, 0xf3, 0xaf, 0xe2, + 0x8e, 0x39, 0x7c, 0x6c, 0xb5, 0x07, 0xbe, 0xff, 0xa9, 0xe5, 0x54, 0x76, 0xd4, 0x8f, 0x7e, 0x9b, + 0x11, 0x3d, 0xec, 0xd2, 0xda, 0x58, 0x7e, 0x33, 0x29, 0x63, 0x3f, 0x92, 0xe3, 0x79, 0xca, 0xf8, + 0xb0, 0x3b, 0x36, 0x29, 0xcf, 0xfe, 0x2b, 0x0b, 0xb8, 0xf5, 0x2b, 0x00, 0x00, 0xff, 0xff, 0xbb, + 0xb6, 0x6e, 0x67, 0xaa, 0x04, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/google_ads_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/google_ads_service.pb.go new file mode 100644 index 000000000..e4c64b28f --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/google_ads_service.pb.go @@ -0,0 +1,2504 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/google_ads_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import common "google.golang.org/genproto/googleapis/ads/googleads/v0/common" +import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" +import field_mask "google.golang.org/genproto/protobuf/field_mask" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [GoogleAdsService.Search][google.ads.googleads.v0.services.GoogleAdsService.Search]. +type SearchGoogleAdsRequest struct { + // The ID of the customer being queried. + CustomerId string `protobuf:"bytes,1,opt,name=customer_id,json=customerId,proto3" json:"customer_id,omitempty"` + // The query string. + Query string `protobuf:"bytes,2,opt,name=query,proto3" json:"query,omitempty"` + // Token of the page to retrieve. If not specified, the first + // page of results will be returned. Use the value obtained from + // `next_page_token` in the previous response in order to request + // the next page of results. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Number of elements to retrieve in a single page. + // When too large a page is requested, the server may decide to + // further limit the number of returned resources. + PageSize int32 `protobuf:"varint,4,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SearchGoogleAdsRequest) Reset() { *m = SearchGoogleAdsRequest{} } +func (m *SearchGoogleAdsRequest) String() string { return proto.CompactTextString(m) } +func (*SearchGoogleAdsRequest) ProtoMessage() {} +func (*SearchGoogleAdsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_google_ads_service_537fcb76d9dc142d, []int{0} +} +func (m *SearchGoogleAdsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SearchGoogleAdsRequest.Unmarshal(m, b) +} +func (m *SearchGoogleAdsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SearchGoogleAdsRequest.Marshal(b, m, deterministic) +} +func (dst *SearchGoogleAdsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_SearchGoogleAdsRequest.Merge(dst, src) +} +func (m *SearchGoogleAdsRequest) XXX_Size() int { + return xxx_messageInfo_SearchGoogleAdsRequest.Size(m) +} +func (m *SearchGoogleAdsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_SearchGoogleAdsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_SearchGoogleAdsRequest proto.InternalMessageInfo + +func (m *SearchGoogleAdsRequest) GetCustomerId() string { + if m != nil { + return m.CustomerId + } + return "" +} + +func (m *SearchGoogleAdsRequest) GetQuery() string { + if m != nil { + return m.Query + } + return "" +} + +func (m *SearchGoogleAdsRequest) GetPageToken() string { + if m != nil { + return m.PageToken + } + return "" +} + +func (m *SearchGoogleAdsRequest) GetPageSize() int32 { + if m != nil { + return m.PageSize + } + return 0 +} + +// Response message for [GoogleAdsService.Search][google.ads.googleads.v0.services.GoogleAdsService.Search]. +type SearchGoogleAdsResponse struct { + // The list of rows that matched the query. + Results []*GoogleAdsRow `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"` + // Pagination token used to retrieve the next page of results. + // Pass the content of this string as the `page_token` attribute of + // the next request. `next_page_token` is not returned for the last + // page. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // Total number of results that match the query ignoring the LIMIT + // clause. + TotalResultsCount int64 `protobuf:"varint,3,opt,name=total_results_count,json=totalResultsCount,proto3" json:"total_results_count,omitempty"` + // FieldMask that represents what fields were requested by the user. + FieldMask *field_mask.FieldMask `protobuf:"bytes,5,opt,name=field_mask,json=fieldMask,proto3" json:"field_mask,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SearchGoogleAdsResponse) Reset() { *m = SearchGoogleAdsResponse{} } +func (m *SearchGoogleAdsResponse) String() string { return proto.CompactTextString(m) } +func (*SearchGoogleAdsResponse) ProtoMessage() {} +func (*SearchGoogleAdsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_google_ads_service_537fcb76d9dc142d, []int{1} +} +func (m *SearchGoogleAdsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SearchGoogleAdsResponse.Unmarshal(m, b) +} +func (m *SearchGoogleAdsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SearchGoogleAdsResponse.Marshal(b, m, deterministic) +} +func (dst *SearchGoogleAdsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_SearchGoogleAdsResponse.Merge(dst, src) +} +func (m *SearchGoogleAdsResponse) XXX_Size() int { + return xxx_messageInfo_SearchGoogleAdsResponse.Size(m) +} +func (m *SearchGoogleAdsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_SearchGoogleAdsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_SearchGoogleAdsResponse proto.InternalMessageInfo + +func (m *SearchGoogleAdsResponse) GetResults() []*GoogleAdsRow { + if m != nil { + return m.Results + } + return nil +} + +func (m *SearchGoogleAdsResponse) GetNextPageToken() string { + if m != nil { + return m.NextPageToken + } + return "" +} + +func (m *SearchGoogleAdsResponse) GetTotalResultsCount() int64 { + if m != nil { + return m.TotalResultsCount + } + return 0 +} + +func (m *SearchGoogleAdsResponse) GetFieldMask() *field_mask.FieldMask { + if m != nil { + return m.FieldMask + } + return nil +} + +// A returned row from the query. +type GoogleAdsRow struct { + // The account budget in the query. + AccountBudget *resources.AccountBudget `protobuf:"bytes,42,opt,name=account_budget,json=accountBudget,proto3" json:"account_budget,omitempty"` + // The account budget proposal referenced in the query. + AccountBudgetProposal *resources.AccountBudgetProposal `protobuf:"bytes,43,opt,name=account_budget_proposal,json=accountBudgetProposal,proto3" json:"account_budget_proposal,omitempty"` + // The ad group referenced in the query. + AdGroup *resources.AdGroup `protobuf:"bytes,3,opt,name=ad_group,json=adGroup,proto3" json:"ad_group,omitempty"` + // The ad referenced in the query. + AdGroupAd *resources.AdGroupAd `protobuf:"bytes,16,opt,name=ad_group_ad,json=adGroupAd,proto3" json:"ad_group_ad,omitempty"` + // The ad group audience view referenced in the query. + AdGroupAudienceView *resources.AdGroupAudienceView `protobuf:"bytes,57,opt,name=ad_group_audience_view,json=adGroupAudienceView,proto3" json:"ad_group_audience_view,omitempty"` + // The bid modifier referenced in the query. + AdGroupBidModifier *resources.AdGroupBidModifier `protobuf:"bytes,24,opt,name=ad_group_bid_modifier,json=adGroupBidModifier,proto3" json:"ad_group_bid_modifier,omitempty"` + // The criterion referenced in the query. + AdGroupCriterion *resources.AdGroupCriterion `protobuf:"bytes,17,opt,name=ad_group_criterion,json=adGroupCriterion,proto3" json:"ad_group_criterion,omitempty"` + // The ad group feed referenced in the query. + AdGroupFeed *resources.AdGroupFeed `protobuf:"bytes,67,opt,name=ad_group_feed,json=adGroupFeed,proto3" json:"ad_group_feed,omitempty"` + // The age range view referenced in the query. + AgeRangeView *resources.AgeRangeView `protobuf:"bytes,48,opt,name=age_range_view,json=ageRangeView,proto3" json:"age_range_view,omitempty"` + // The bidding strategy referenced in the query. + BiddingStrategy *resources.BiddingStrategy `protobuf:"bytes,18,opt,name=bidding_strategy,json=biddingStrategy,proto3" json:"bidding_strategy,omitempty"` + // The billing setup referenced in the query. + BillingSetup *resources.BillingSetup `protobuf:"bytes,41,opt,name=billing_setup,json=billingSetup,proto3" json:"billing_setup,omitempty"` + // The campaign budget referenced in the query. + CampaignBudget *resources.CampaignBudget `protobuf:"bytes,19,opt,name=campaign_budget,json=campaignBudget,proto3" json:"campaign_budget,omitempty"` + // The campaign referenced in the query. + Campaign *resources.Campaign `protobuf:"bytes,2,opt,name=campaign,proto3" json:"campaign,omitempty"` + // The campaign audience view referenced in the query. + CampaignAudienceView *resources.CampaignAudienceView `protobuf:"bytes,69,opt,name=campaign_audience_view,json=campaignAudienceView,proto3" json:"campaign_audience_view,omitempty"` + // The campaign bid modifier referenced in the query. + CampaignBidModifier *resources.CampaignBidModifier `protobuf:"bytes,26,opt,name=campaign_bid_modifier,json=campaignBidModifier,proto3" json:"campaign_bid_modifier,omitempty"` + // The campaign criterion referenced in the query. + CampaignCriterion *resources.CampaignCriterion `protobuf:"bytes,20,opt,name=campaign_criterion,json=campaignCriterion,proto3" json:"campaign_criterion,omitempty"` + // The campaign feed referenced in the query. + CampaignFeed *resources.CampaignFeed `protobuf:"bytes,63,opt,name=campaign_feed,json=campaignFeed,proto3" json:"campaign_feed,omitempty"` + // Campaign Group referenced in AWQL query. + CampaignGroup *resources.CampaignGroup `protobuf:"bytes,25,opt,name=campaign_group,json=campaignGroup,proto3" json:"campaign_group,omitempty"` + // Campaign Shared Set referenced in AWQL query. + CampaignSharedSet *resources.CampaignSharedSet `protobuf:"bytes,30,opt,name=campaign_shared_set,json=campaignSharedSet,proto3" json:"campaign_shared_set,omitempty"` + // The carrier constant referenced in the query. + CarrierConstant *resources.CarrierConstant `protobuf:"bytes,66,opt,name=carrier_constant,json=carrierConstant,proto3" json:"carrier_constant,omitempty"` + // The ChangeStatus referenced in the query. + ChangeStatus *resources.ChangeStatus `protobuf:"bytes,37,opt,name=change_status,json=changeStatus,proto3" json:"change_status,omitempty"` + // The customer referenced in the query. + Customer *resources.Customer `protobuf:"bytes,1,opt,name=customer,proto3" json:"customer,omitempty"` + // The CustomerManagerLink referenced in the query. + CustomerManagerLink *resources.CustomerManagerLink `protobuf:"bytes,61,opt,name=customer_manager_link,json=customerManagerLink,proto3" json:"customer_manager_link,omitempty"` + // The CustomerClientLink referenced in the query. + CustomerClientLink *resources.CustomerClientLink `protobuf:"bytes,62,opt,name=customer_client_link,json=customerClientLink,proto3" json:"customer_client_link,omitempty"` + // The CustomerClient referenced in the query. + CustomerClient *resources.CustomerClient `protobuf:"bytes,70,opt,name=customer_client,json=customerClient,proto3" json:"customer_client,omitempty"` + // The customer feed referenced in the query. + CustomerFeed *resources.CustomerFeed `protobuf:"bytes,64,opt,name=customer_feed,json=customerFeed,proto3" json:"customer_feed,omitempty"` + // The display keyword view referenced in the query. + DisplayKeywordView *resources.DisplayKeywordView `protobuf:"bytes,47,opt,name=display_keyword_view,json=displayKeywordView,proto3" json:"display_keyword_view,omitempty"` + // The feed referenced in the query. + Feed *resources.Feed `protobuf:"bytes,46,opt,name=feed,proto3" json:"feed,omitempty"` + // The feed item referenced in the query. + FeedItem *resources.FeedItem `protobuf:"bytes,50,opt,name=feed_item,json=feedItem,proto3" json:"feed_item,omitempty"` + // The feed mapping referenced in the query. + FeedMapping *resources.FeedMapping `protobuf:"bytes,58,opt,name=feed_mapping,json=feedMapping,proto3" json:"feed_mapping,omitempty"` + // The gender view referenced in the query. + GenderView *resources.GenderView `protobuf:"bytes,40,opt,name=gender_view,json=genderView,proto3" json:"gender_view,omitempty"` + // The geo target constant referenced in the query. + GeoTargetConstant *resources.GeoTargetConstant `protobuf:"bytes,23,opt,name=geo_target_constant,json=geoTargetConstant,proto3" json:"geo_target_constant,omitempty"` + // The hotel group view referenced in the query. + HotelGroupView *resources.HotelGroupView `protobuf:"bytes,51,opt,name=hotel_group_view,json=hotelGroupView,proto3" json:"hotel_group_view,omitempty"` + // The hotel performance view referenced in the query. + HotelPerformanceView *resources.HotelPerformanceView `protobuf:"bytes,71,opt,name=hotel_performance_view,json=hotelPerformanceView,proto3" json:"hotel_performance_view,omitempty"` + // The keyword view referenced in the query. + KeywordView *resources.KeywordView `protobuf:"bytes,21,opt,name=keyword_view,json=keywordView,proto3" json:"keyword_view,omitempty"` + // The keyword plan referenced in the query. + KeywordPlan *resources.KeywordPlan `protobuf:"bytes,32,opt,name=keyword_plan,json=keywordPlan,proto3" json:"keyword_plan,omitempty"` + // The keyword plan campaign referenced in the query. + KeywordPlanCampaign *resources.KeywordPlanCampaign `protobuf:"bytes,33,opt,name=keyword_plan_campaign,json=keywordPlanCampaign,proto3" json:"keyword_plan_campaign,omitempty"` + // The keyword plan negative keyword referenced in the query. + KeywordPlanNegativeKeyword *resources.KeywordPlanNegativeKeyword `protobuf:"bytes,34,opt,name=keyword_plan_negative_keyword,json=keywordPlanNegativeKeyword,proto3" json:"keyword_plan_negative_keyword,omitempty"` + // The keyword plan ad group referenced in the query. + KeywordPlanAdGroup *resources.KeywordPlanAdGroup `protobuf:"bytes,35,opt,name=keyword_plan_ad_group,json=keywordPlanAdGroup,proto3" json:"keyword_plan_ad_group,omitempty"` + // The keyword plan keyword referenced in the query. + KeywordPlanKeyword *resources.KeywordPlanKeyword `protobuf:"bytes,36,opt,name=keyword_plan_keyword,json=keywordPlanKeyword,proto3" json:"keyword_plan_keyword,omitempty"` + // The language constant referenced in the query. + LanguageConstant *resources.LanguageConstant `protobuf:"bytes,55,opt,name=language_constant,json=languageConstant,proto3" json:"language_constant,omitempty"` + // The managed placement view referenced in the query. + ManagedPlacementView *resources.ManagedPlacementView `protobuf:"bytes,53,opt,name=managed_placement_view,json=managedPlacementView,proto3" json:"managed_placement_view,omitempty"` + // The parental status view referenced in the query. + ParentalStatusView *resources.ParentalStatusView `protobuf:"bytes,45,opt,name=parental_status_view,json=parentalStatusView,proto3" json:"parental_status_view,omitempty"` + // The product group view referenced in the query. + ProductGroupView *resources.ProductGroupView `protobuf:"bytes,54,opt,name=product_group_view,json=productGroupView,proto3" json:"product_group_view,omitempty"` + // The recommendation referenced in the query. + Recommendation *resources.Recommendation `protobuf:"bytes,22,opt,name=recommendation,proto3" json:"recommendation,omitempty"` + // The search term view referenced in the query. + SearchTermView *resources.SearchTermView `protobuf:"bytes,68,opt,name=search_term_view,json=searchTermView,proto3" json:"search_term_view,omitempty"` + // The shared set referenced in the query. + SharedCriterion *resources.SharedCriterion `protobuf:"bytes,29,opt,name=shared_criterion,json=sharedCriterion,proto3" json:"shared_criterion,omitempty"` + // The shared set referenced in the query. + SharedSet *resources.SharedSet `protobuf:"bytes,27,opt,name=shared_set,json=sharedSet,proto3" json:"shared_set,omitempty"` + // The topic view referenced in the query. + TopicView *resources.TopicView `protobuf:"bytes,44,opt,name=topic_view,json=topicView,proto3" json:"topic_view,omitempty"` + // The user interest referenced in the query. + UserInterest *resources.UserInterest `protobuf:"bytes,59,opt,name=user_interest,json=userInterest,proto3" json:"user_interest,omitempty"` + // The user list referenced in the query. + UserList *resources.UserList `protobuf:"bytes,38,opt,name=user_list,json=userList,proto3" json:"user_list,omitempty"` + // The topic constant referenced in the query. + TopicConstant *resources.TopicConstant `protobuf:"bytes,31,opt,name=topic_constant,json=topicConstant,proto3" json:"topic_constant,omitempty"` + // The video referenced in the query. + Video *resources.Video `protobuf:"bytes,39,opt,name=video,proto3" json:"video,omitempty"` + // The metrics. + Metrics *common.Metrics `protobuf:"bytes,4,opt,name=metrics,proto3" json:"metrics,omitempty"` + // Ad network type. + AdNetworkType enums.AdNetworkTypeEnum_AdNetworkType `protobuf:"varint,5,opt,name=ad_network_type,json=adNetworkType,proto3,enum=google.ads.googleads.v0.enums.AdNetworkTypeEnum_AdNetworkType" json:"ad_network_type,omitempty"` + // Date to which metrics apply. + // yyyy-MM-dd format, e.g., 2018-04-17. + Date *wrappers.StringValue `protobuf:"bytes,6,opt,name=date,proto3" json:"date,omitempty"` + // Day of the week, e.g., MONDAY. + DayOfWeek enums.DayOfWeekEnum_DayOfWeek `protobuf:"varint,7,opt,name=day_of_week,json=dayOfWeek,proto3,enum=google.ads.googleads.v0.enums.DayOfWeekEnum_DayOfWeek" json:"day_of_week,omitempty"` + // Device to which metrics apply. + Device enums.DeviceEnum_Device `protobuf:"varint,8,opt,name=device,proto3,enum=google.ads.googleads.v0.enums.DeviceEnum_Device" json:"device,omitempty"` + // Hotel booking window in days. + HotelBookingWindowDays *wrappers.Int64Value `protobuf:"bytes,83,opt,name=hotel_booking_window_days,json=hotelBookingWindowDays,proto3" json:"hotel_booking_window_days,omitempty"` + // Hotel center ID. + HotelCenterId *wrappers.Int64Value `protobuf:"bytes,72,opt,name=hotel_center_id,json=hotelCenterId,proto3" json:"hotel_center_id,omitempty"` + // Hotel check-in date. Formatted as yyyy-MM-dd. + HotelCheckInDate *wrappers.StringValue `protobuf:"bytes,73,opt,name=hotel_check_in_date,json=hotelCheckInDate,proto3" json:"hotel_check_in_date,omitempty"` + // Hotel check-in day of week. + HotelCheckInDayOfWeek enums.DayOfWeekEnum_DayOfWeek `protobuf:"varint,74,opt,name=hotel_check_in_day_of_week,json=hotelCheckInDayOfWeek,proto3,enum=google.ads.googleads.v0.enums.DayOfWeekEnum_DayOfWeek" json:"hotel_check_in_day_of_week,omitempty"` + // Hotel city. + HotelCity *wrappers.StringValue `protobuf:"bytes,75,opt,name=hotel_city,json=hotelCity,proto3" json:"hotel_city,omitempty"` + // Hotel class. + HotelClass *wrappers.Int32Value `protobuf:"bytes,76,opt,name=hotel_class,json=hotelClass,proto3" json:"hotel_class,omitempty"` + // Hotel country. + HotelCountry *wrappers.StringValue `protobuf:"bytes,77,opt,name=hotel_country,json=hotelCountry,proto3" json:"hotel_country,omitempty"` + // Hotel date selection type. + HotelDateSelectionType enums.HotelDateSelectionTypeEnum_HotelDateSelectionType `protobuf:"varint,78,opt,name=hotel_date_selection_type,json=hotelDateSelectionType,proto3,enum=google.ads.googleads.v0.enums.HotelDateSelectionTypeEnum_HotelDateSelectionType" json:"hotel_date_selection_type,omitempty"` + // Hotel length of stay. + HotelLengthOfStay *wrappers.Int32Value `protobuf:"bytes,79,opt,name=hotel_length_of_stay,json=hotelLengthOfStay,proto3" json:"hotel_length_of_stay,omitempty"` + // Hotel state. + HotelState *wrappers.StringValue `protobuf:"bytes,81,opt,name=hotel_state,json=hotelState,proto3" json:"hotel_state,omitempty"` + // Hour of day as a number between 0 and 23, inclusive. + Hour *wrappers.Int32Value `protobuf:"bytes,9,opt,name=hour,proto3" json:"hour,omitempty"` + // Month as represented by the date of the first day of a month. Formatted as + // yyyy-MM-dd. + Month *wrappers.StringValue `protobuf:"bytes,10,opt,name=month,proto3" json:"month,omitempty"` + // Month of the year, e.g., January. + MonthOfYear enums.MonthOfYearEnum_MonthOfYear `protobuf:"varint,28,opt,name=month_of_year,json=monthOfYear,proto3,enum=google.ads.googleads.v0.enums.MonthOfYearEnum_MonthOfYear" json:"month_of_year,omitempty"` + // Partner hotel ID. + PartnerHotelId *wrappers.StringValue `protobuf:"bytes,82,opt,name=partner_hotel_id,json=partnerHotelId,proto3" json:"partner_hotel_id,omitempty"` + // Placeholder type. This is only used with feed item metrics. + PlaceholderType enums.PlaceholderTypeEnum_PlaceholderType `protobuf:"varint,65,opt,name=placeholder_type,json=placeholderType,proto3,enum=google.ads.googleads.v0.enums.PlaceholderTypeEnum_PlaceholderType" json:"placeholder_type,omitempty"` + // Quarter as represented by the date of the first day of a quarter. + // Uses the calendar year for quarters, e.g., the second quarter of 2018 + // starts on 2018-04-01. Formatted as yyyy-MM-dd. + Quarter *wrappers.StringValue `protobuf:"bytes,12,opt,name=quarter,proto3" json:"quarter,omitempty"` + // Match type of the keyword that triggered the ad, including variants. + SearchTermMatchType enums.SearchTermMatchTypeEnum_SearchTermMatchType `protobuf:"varint,56,opt,name=search_term_match_type,json=searchTermMatchType,proto3,enum=google.ads.googleads.v0.enums.SearchTermMatchTypeEnum_SearchTermMatchType" json:"search_term_match_type,omitempty"` + // Position of the ad. + Slot enums.SlotEnum_Slot `protobuf:"varint,13,opt,name=slot,proto3,enum=google.ads.googleads.v0.enums.SlotEnum_Slot" json:"slot,omitempty"` + // Week as defined as Monday through Sunday, and represented by the date of + // Monday. Formatted as yyyy-MM-dd. + Week *wrappers.StringValue `protobuf:"bytes,14,opt,name=week,proto3" json:"week,omitempty"` + // Year, formatted as yyyy. + Year *wrappers.Int32Value `protobuf:"bytes,15,opt,name=year,proto3" json:"year,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GoogleAdsRow) Reset() { *m = GoogleAdsRow{} } +func (m *GoogleAdsRow) String() string { return proto.CompactTextString(m) } +func (*GoogleAdsRow) ProtoMessage() {} +func (*GoogleAdsRow) Descriptor() ([]byte, []int) { + return fileDescriptor_google_ads_service_537fcb76d9dc142d, []int{2} +} +func (m *GoogleAdsRow) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GoogleAdsRow.Unmarshal(m, b) +} +func (m *GoogleAdsRow) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GoogleAdsRow.Marshal(b, m, deterministic) +} +func (dst *GoogleAdsRow) XXX_Merge(src proto.Message) { + xxx_messageInfo_GoogleAdsRow.Merge(dst, src) +} +func (m *GoogleAdsRow) XXX_Size() int { + return xxx_messageInfo_GoogleAdsRow.Size(m) +} +func (m *GoogleAdsRow) XXX_DiscardUnknown() { + xxx_messageInfo_GoogleAdsRow.DiscardUnknown(m) +} + +var xxx_messageInfo_GoogleAdsRow proto.InternalMessageInfo + +func (m *GoogleAdsRow) GetAccountBudget() *resources.AccountBudget { + if m != nil { + return m.AccountBudget + } + return nil +} + +func (m *GoogleAdsRow) GetAccountBudgetProposal() *resources.AccountBudgetProposal { + if m != nil { + return m.AccountBudgetProposal + } + return nil +} + +func (m *GoogleAdsRow) GetAdGroup() *resources.AdGroup { + if m != nil { + return m.AdGroup + } + return nil +} + +func (m *GoogleAdsRow) GetAdGroupAd() *resources.AdGroupAd { + if m != nil { + return m.AdGroupAd + } + return nil +} + +func (m *GoogleAdsRow) GetAdGroupAudienceView() *resources.AdGroupAudienceView { + if m != nil { + return m.AdGroupAudienceView + } + return nil +} + +func (m *GoogleAdsRow) GetAdGroupBidModifier() *resources.AdGroupBidModifier { + if m != nil { + return m.AdGroupBidModifier + } + return nil +} + +func (m *GoogleAdsRow) GetAdGroupCriterion() *resources.AdGroupCriterion { + if m != nil { + return m.AdGroupCriterion + } + return nil +} + +func (m *GoogleAdsRow) GetAdGroupFeed() *resources.AdGroupFeed { + if m != nil { + return m.AdGroupFeed + } + return nil +} + +func (m *GoogleAdsRow) GetAgeRangeView() *resources.AgeRangeView { + if m != nil { + return m.AgeRangeView + } + return nil +} + +func (m *GoogleAdsRow) GetBiddingStrategy() *resources.BiddingStrategy { + if m != nil { + return m.BiddingStrategy + } + return nil +} + +func (m *GoogleAdsRow) GetBillingSetup() *resources.BillingSetup { + if m != nil { + return m.BillingSetup + } + return nil +} + +func (m *GoogleAdsRow) GetCampaignBudget() *resources.CampaignBudget { + if m != nil { + return m.CampaignBudget + } + return nil +} + +func (m *GoogleAdsRow) GetCampaign() *resources.Campaign { + if m != nil { + return m.Campaign + } + return nil +} + +func (m *GoogleAdsRow) GetCampaignAudienceView() *resources.CampaignAudienceView { + if m != nil { + return m.CampaignAudienceView + } + return nil +} + +func (m *GoogleAdsRow) GetCampaignBidModifier() *resources.CampaignBidModifier { + if m != nil { + return m.CampaignBidModifier + } + return nil +} + +func (m *GoogleAdsRow) GetCampaignCriterion() *resources.CampaignCriterion { + if m != nil { + return m.CampaignCriterion + } + return nil +} + +func (m *GoogleAdsRow) GetCampaignFeed() *resources.CampaignFeed { + if m != nil { + return m.CampaignFeed + } + return nil +} + +func (m *GoogleAdsRow) GetCampaignGroup() *resources.CampaignGroup { + if m != nil { + return m.CampaignGroup + } + return nil +} + +func (m *GoogleAdsRow) GetCampaignSharedSet() *resources.CampaignSharedSet { + if m != nil { + return m.CampaignSharedSet + } + return nil +} + +func (m *GoogleAdsRow) GetCarrierConstant() *resources.CarrierConstant { + if m != nil { + return m.CarrierConstant + } + return nil +} + +func (m *GoogleAdsRow) GetChangeStatus() *resources.ChangeStatus { + if m != nil { + return m.ChangeStatus + } + return nil +} + +func (m *GoogleAdsRow) GetCustomer() *resources.Customer { + if m != nil { + return m.Customer + } + return nil +} + +func (m *GoogleAdsRow) GetCustomerManagerLink() *resources.CustomerManagerLink { + if m != nil { + return m.CustomerManagerLink + } + return nil +} + +func (m *GoogleAdsRow) GetCustomerClientLink() *resources.CustomerClientLink { + if m != nil { + return m.CustomerClientLink + } + return nil +} + +func (m *GoogleAdsRow) GetCustomerClient() *resources.CustomerClient { + if m != nil { + return m.CustomerClient + } + return nil +} + +func (m *GoogleAdsRow) GetCustomerFeed() *resources.CustomerFeed { + if m != nil { + return m.CustomerFeed + } + return nil +} + +func (m *GoogleAdsRow) GetDisplayKeywordView() *resources.DisplayKeywordView { + if m != nil { + return m.DisplayKeywordView + } + return nil +} + +func (m *GoogleAdsRow) GetFeed() *resources.Feed { + if m != nil { + return m.Feed + } + return nil +} + +func (m *GoogleAdsRow) GetFeedItem() *resources.FeedItem { + if m != nil { + return m.FeedItem + } + return nil +} + +func (m *GoogleAdsRow) GetFeedMapping() *resources.FeedMapping { + if m != nil { + return m.FeedMapping + } + return nil +} + +func (m *GoogleAdsRow) GetGenderView() *resources.GenderView { + if m != nil { + return m.GenderView + } + return nil +} + +func (m *GoogleAdsRow) GetGeoTargetConstant() *resources.GeoTargetConstant { + if m != nil { + return m.GeoTargetConstant + } + return nil +} + +func (m *GoogleAdsRow) GetHotelGroupView() *resources.HotelGroupView { + if m != nil { + return m.HotelGroupView + } + return nil +} + +func (m *GoogleAdsRow) GetHotelPerformanceView() *resources.HotelPerformanceView { + if m != nil { + return m.HotelPerformanceView + } + return nil +} + +func (m *GoogleAdsRow) GetKeywordView() *resources.KeywordView { + if m != nil { + return m.KeywordView + } + return nil +} + +func (m *GoogleAdsRow) GetKeywordPlan() *resources.KeywordPlan { + if m != nil { + return m.KeywordPlan + } + return nil +} + +func (m *GoogleAdsRow) GetKeywordPlanCampaign() *resources.KeywordPlanCampaign { + if m != nil { + return m.KeywordPlanCampaign + } + return nil +} + +func (m *GoogleAdsRow) GetKeywordPlanNegativeKeyword() *resources.KeywordPlanNegativeKeyword { + if m != nil { + return m.KeywordPlanNegativeKeyword + } + return nil +} + +func (m *GoogleAdsRow) GetKeywordPlanAdGroup() *resources.KeywordPlanAdGroup { + if m != nil { + return m.KeywordPlanAdGroup + } + return nil +} + +func (m *GoogleAdsRow) GetKeywordPlanKeyword() *resources.KeywordPlanKeyword { + if m != nil { + return m.KeywordPlanKeyword + } + return nil +} + +func (m *GoogleAdsRow) GetLanguageConstant() *resources.LanguageConstant { + if m != nil { + return m.LanguageConstant + } + return nil +} + +func (m *GoogleAdsRow) GetManagedPlacementView() *resources.ManagedPlacementView { + if m != nil { + return m.ManagedPlacementView + } + return nil +} + +func (m *GoogleAdsRow) GetParentalStatusView() *resources.ParentalStatusView { + if m != nil { + return m.ParentalStatusView + } + return nil +} + +func (m *GoogleAdsRow) GetProductGroupView() *resources.ProductGroupView { + if m != nil { + return m.ProductGroupView + } + return nil +} + +func (m *GoogleAdsRow) GetRecommendation() *resources.Recommendation { + if m != nil { + return m.Recommendation + } + return nil +} + +func (m *GoogleAdsRow) GetSearchTermView() *resources.SearchTermView { + if m != nil { + return m.SearchTermView + } + return nil +} + +func (m *GoogleAdsRow) GetSharedCriterion() *resources.SharedCriterion { + if m != nil { + return m.SharedCriterion + } + return nil +} + +func (m *GoogleAdsRow) GetSharedSet() *resources.SharedSet { + if m != nil { + return m.SharedSet + } + return nil +} + +func (m *GoogleAdsRow) GetTopicView() *resources.TopicView { + if m != nil { + return m.TopicView + } + return nil +} + +func (m *GoogleAdsRow) GetUserInterest() *resources.UserInterest { + if m != nil { + return m.UserInterest + } + return nil +} + +func (m *GoogleAdsRow) GetUserList() *resources.UserList { + if m != nil { + return m.UserList + } + return nil +} + +func (m *GoogleAdsRow) GetTopicConstant() *resources.TopicConstant { + if m != nil { + return m.TopicConstant + } + return nil +} + +func (m *GoogleAdsRow) GetVideo() *resources.Video { + if m != nil { + return m.Video + } + return nil +} + +func (m *GoogleAdsRow) GetMetrics() *common.Metrics { + if m != nil { + return m.Metrics + } + return nil +} + +func (m *GoogleAdsRow) GetAdNetworkType() enums.AdNetworkTypeEnum_AdNetworkType { + if m != nil { + return m.AdNetworkType + } + return enums.AdNetworkTypeEnum_UNSPECIFIED +} + +func (m *GoogleAdsRow) GetDate() *wrappers.StringValue { + if m != nil { + return m.Date + } + return nil +} + +func (m *GoogleAdsRow) GetDayOfWeek() enums.DayOfWeekEnum_DayOfWeek { + if m != nil { + return m.DayOfWeek + } + return enums.DayOfWeekEnum_UNSPECIFIED +} + +func (m *GoogleAdsRow) GetDevice() enums.DeviceEnum_Device { + if m != nil { + return m.Device + } + return enums.DeviceEnum_UNSPECIFIED +} + +func (m *GoogleAdsRow) GetHotelBookingWindowDays() *wrappers.Int64Value { + if m != nil { + return m.HotelBookingWindowDays + } + return nil +} + +func (m *GoogleAdsRow) GetHotelCenterId() *wrappers.Int64Value { + if m != nil { + return m.HotelCenterId + } + return nil +} + +func (m *GoogleAdsRow) GetHotelCheckInDate() *wrappers.StringValue { + if m != nil { + return m.HotelCheckInDate + } + return nil +} + +func (m *GoogleAdsRow) GetHotelCheckInDayOfWeek() enums.DayOfWeekEnum_DayOfWeek { + if m != nil { + return m.HotelCheckInDayOfWeek + } + return enums.DayOfWeekEnum_UNSPECIFIED +} + +func (m *GoogleAdsRow) GetHotelCity() *wrappers.StringValue { + if m != nil { + return m.HotelCity + } + return nil +} + +func (m *GoogleAdsRow) GetHotelClass() *wrappers.Int32Value { + if m != nil { + return m.HotelClass + } + return nil +} + +func (m *GoogleAdsRow) GetHotelCountry() *wrappers.StringValue { + if m != nil { + return m.HotelCountry + } + return nil +} + +func (m *GoogleAdsRow) GetHotelDateSelectionType() enums.HotelDateSelectionTypeEnum_HotelDateSelectionType { + if m != nil { + return m.HotelDateSelectionType + } + return enums.HotelDateSelectionTypeEnum_UNSPECIFIED +} + +func (m *GoogleAdsRow) GetHotelLengthOfStay() *wrappers.Int32Value { + if m != nil { + return m.HotelLengthOfStay + } + return nil +} + +func (m *GoogleAdsRow) GetHotelState() *wrappers.StringValue { + if m != nil { + return m.HotelState + } + return nil +} + +func (m *GoogleAdsRow) GetHour() *wrappers.Int32Value { + if m != nil { + return m.Hour + } + return nil +} + +func (m *GoogleAdsRow) GetMonth() *wrappers.StringValue { + if m != nil { + return m.Month + } + return nil +} + +func (m *GoogleAdsRow) GetMonthOfYear() enums.MonthOfYearEnum_MonthOfYear { + if m != nil { + return m.MonthOfYear + } + return enums.MonthOfYearEnum_UNSPECIFIED +} + +func (m *GoogleAdsRow) GetPartnerHotelId() *wrappers.StringValue { + if m != nil { + return m.PartnerHotelId + } + return nil +} + +func (m *GoogleAdsRow) GetPlaceholderType() enums.PlaceholderTypeEnum_PlaceholderType { + if m != nil { + return m.PlaceholderType + } + return enums.PlaceholderTypeEnum_UNSPECIFIED +} + +func (m *GoogleAdsRow) GetQuarter() *wrappers.StringValue { + if m != nil { + return m.Quarter + } + return nil +} + +func (m *GoogleAdsRow) GetSearchTermMatchType() enums.SearchTermMatchTypeEnum_SearchTermMatchType { + if m != nil { + return m.SearchTermMatchType + } + return enums.SearchTermMatchTypeEnum_UNSPECIFIED +} + +func (m *GoogleAdsRow) GetSlot() enums.SlotEnum_Slot { + if m != nil { + return m.Slot + } + return enums.SlotEnum_UNSPECIFIED +} + +func (m *GoogleAdsRow) GetWeek() *wrappers.StringValue { + if m != nil { + return m.Week + } + return nil +} + +func (m *GoogleAdsRow) GetYear() *wrappers.Int32Value { + if m != nil { + return m.Year + } + return nil +} + +// Request message for [GoogleAdsService.Mutate][google.ads.googleads.v0.services.GoogleAdsService.Mutate]. +type MutateGoogleAdsRequest struct { + // The ID of the customer whose resources are being modified. + CustomerId string `protobuf:"bytes,1,opt,name=customer_id,json=customerId,proto3" json:"customer_id,omitempty"` + // The list of operations to perform on individual resources. + MutateOperations []*MutateOperation `protobuf:"bytes,2,rep,name=mutate_operations,json=mutateOperations,proto3" json:"mutate_operations,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateGoogleAdsRequest) Reset() { *m = MutateGoogleAdsRequest{} } +func (m *MutateGoogleAdsRequest) String() string { return proto.CompactTextString(m) } +func (*MutateGoogleAdsRequest) ProtoMessage() {} +func (*MutateGoogleAdsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_google_ads_service_537fcb76d9dc142d, []int{3} +} +func (m *MutateGoogleAdsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateGoogleAdsRequest.Unmarshal(m, b) +} +func (m *MutateGoogleAdsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateGoogleAdsRequest.Marshal(b, m, deterministic) +} +func (dst *MutateGoogleAdsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateGoogleAdsRequest.Merge(dst, src) +} +func (m *MutateGoogleAdsRequest) XXX_Size() int { + return xxx_messageInfo_MutateGoogleAdsRequest.Size(m) +} +func (m *MutateGoogleAdsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_MutateGoogleAdsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateGoogleAdsRequest proto.InternalMessageInfo + +func (m *MutateGoogleAdsRequest) GetCustomerId() string { + if m != nil { + return m.CustomerId + } + return "" +} + +func (m *MutateGoogleAdsRequest) GetMutateOperations() []*MutateOperation { + if m != nil { + return m.MutateOperations + } + return nil +} + +// Response message for [GoogleAdsService.Mutate][google.ads.googleads.v0.services.GoogleAdsService.Mutate]. +type MutateGoogleAdsResponse struct { + // All responses for the mutate. + MutateOperationResponses []*MutateOperationResponse `protobuf:"bytes,1,rep,name=mutate_operation_responses,json=mutateOperationResponses,proto3" json:"mutate_operation_responses,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateGoogleAdsResponse) Reset() { *m = MutateGoogleAdsResponse{} } +func (m *MutateGoogleAdsResponse) String() string { return proto.CompactTextString(m) } +func (*MutateGoogleAdsResponse) ProtoMessage() {} +func (*MutateGoogleAdsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_google_ads_service_537fcb76d9dc142d, []int{4} +} +func (m *MutateGoogleAdsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateGoogleAdsResponse.Unmarshal(m, b) +} +func (m *MutateGoogleAdsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateGoogleAdsResponse.Marshal(b, m, deterministic) +} +func (dst *MutateGoogleAdsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateGoogleAdsResponse.Merge(dst, src) +} +func (m *MutateGoogleAdsResponse) XXX_Size() int { + return xxx_messageInfo_MutateGoogleAdsResponse.Size(m) +} +func (m *MutateGoogleAdsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MutateGoogleAdsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateGoogleAdsResponse proto.InternalMessageInfo + +func (m *MutateGoogleAdsResponse) GetMutateOperationResponses() []*MutateOperationResponse { + if m != nil { + return m.MutateOperationResponses + } + return nil +} + +// A single operation (create, update, remove) on a resource. +type MutateOperation struct { + // The mutate operation. + // + // Types that are valid to be assigned to Operation: + // *MutateOperation_AdGroupAdOperation + // *MutateOperation_AdGroupBidModifierOperation + // *MutateOperation_AdGroupCriterionOperation + // *MutateOperation_AdGroupOperation + // *MutateOperation_BiddingStrategyOperation + // *MutateOperation_CampaignBidModifierOperation + // *MutateOperation_CampaignBudgetOperation + // *MutateOperation_CampaignGroupOperation + // *MutateOperation_CampaignOperation + // *MutateOperation_CampaignSharedSetOperation + // *MutateOperation_ConversionActionOperation + // *MutateOperation_CampaignCriterionOperation + // *MutateOperation_SharedCriterionOperation + // *MutateOperation_SharedSetOperation + // *MutateOperation_UserListOperation + Operation isMutateOperation_Operation `protobuf_oneof:"operation"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateOperation) Reset() { *m = MutateOperation{} } +func (m *MutateOperation) String() string { return proto.CompactTextString(m) } +func (*MutateOperation) ProtoMessage() {} +func (*MutateOperation) Descriptor() ([]byte, []int) { + return fileDescriptor_google_ads_service_537fcb76d9dc142d, []int{5} +} +func (m *MutateOperation) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateOperation.Unmarshal(m, b) +} +func (m *MutateOperation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateOperation.Marshal(b, m, deterministic) +} +func (dst *MutateOperation) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateOperation.Merge(dst, src) +} +func (m *MutateOperation) XXX_Size() int { + return xxx_messageInfo_MutateOperation.Size(m) +} +func (m *MutateOperation) XXX_DiscardUnknown() { + xxx_messageInfo_MutateOperation.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateOperation proto.InternalMessageInfo + +type isMutateOperation_Operation interface { + isMutateOperation_Operation() +} + +type MutateOperation_AdGroupAdOperation struct { + AdGroupAdOperation *AdGroupAdOperation `protobuf:"bytes,1,opt,name=ad_group_ad_operation,json=adGroupAdOperation,proto3,oneof"` +} + +type MutateOperation_AdGroupBidModifierOperation struct { + AdGroupBidModifierOperation *AdGroupBidModifierOperation `protobuf:"bytes,2,opt,name=ad_group_bid_modifier_operation,json=adGroupBidModifierOperation,proto3,oneof"` +} + +type MutateOperation_AdGroupCriterionOperation struct { + AdGroupCriterionOperation *AdGroupCriterionOperation `protobuf:"bytes,3,opt,name=ad_group_criterion_operation,json=adGroupCriterionOperation,proto3,oneof"` +} + +type MutateOperation_AdGroupOperation struct { + AdGroupOperation *AdGroupOperation `protobuf:"bytes,5,opt,name=ad_group_operation,json=adGroupOperation,proto3,oneof"` +} + +type MutateOperation_BiddingStrategyOperation struct { + BiddingStrategyOperation *BiddingStrategyOperation `protobuf:"bytes,6,opt,name=bidding_strategy_operation,json=biddingStrategyOperation,proto3,oneof"` +} + +type MutateOperation_CampaignBidModifierOperation struct { + CampaignBidModifierOperation *CampaignBidModifierOperation `protobuf:"bytes,7,opt,name=campaign_bid_modifier_operation,json=campaignBidModifierOperation,proto3,oneof"` +} + +type MutateOperation_CampaignBudgetOperation struct { + CampaignBudgetOperation *CampaignBudgetOperation `protobuf:"bytes,8,opt,name=campaign_budget_operation,json=campaignBudgetOperation,proto3,oneof"` +} + +type MutateOperation_CampaignGroupOperation struct { + CampaignGroupOperation *CampaignGroupOperation `protobuf:"bytes,9,opt,name=campaign_group_operation,json=campaignGroupOperation,proto3,oneof"` +} + +type MutateOperation_CampaignOperation struct { + CampaignOperation *CampaignOperation `protobuf:"bytes,10,opt,name=campaign_operation,json=campaignOperation,proto3,oneof"` +} + +type MutateOperation_CampaignSharedSetOperation struct { + CampaignSharedSetOperation *CampaignSharedSetOperation `protobuf:"bytes,11,opt,name=campaign_shared_set_operation,json=campaignSharedSetOperation,proto3,oneof"` +} + +type MutateOperation_ConversionActionOperation struct { + ConversionActionOperation *ConversionActionOperation `protobuf:"bytes,12,opt,name=conversion_action_operation,json=conversionActionOperation,proto3,oneof"` +} + +type MutateOperation_CampaignCriterionOperation struct { + CampaignCriterionOperation *CampaignCriterionOperation `protobuf:"bytes,13,opt,name=campaign_criterion_operation,json=campaignCriterionOperation,proto3,oneof"` +} + +type MutateOperation_SharedCriterionOperation struct { + SharedCriterionOperation *SharedCriterionOperation `protobuf:"bytes,14,opt,name=shared_criterion_operation,json=sharedCriterionOperation,proto3,oneof"` +} + +type MutateOperation_SharedSetOperation struct { + SharedSetOperation *SharedSetOperation `protobuf:"bytes,15,opt,name=shared_set_operation,json=sharedSetOperation,proto3,oneof"` +} + +type MutateOperation_UserListOperation struct { + UserListOperation *UserListOperation `protobuf:"bytes,16,opt,name=user_list_operation,json=userListOperation,proto3,oneof"` +} + +func (*MutateOperation_AdGroupAdOperation) isMutateOperation_Operation() {} + +func (*MutateOperation_AdGroupBidModifierOperation) isMutateOperation_Operation() {} + +func (*MutateOperation_AdGroupCriterionOperation) isMutateOperation_Operation() {} + +func (*MutateOperation_AdGroupOperation) isMutateOperation_Operation() {} + +func (*MutateOperation_BiddingStrategyOperation) isMutateOperation_Operation() {} + +func (*MutateOperation_CampaignBidModifierOperation) isMutateOperation_Operation() {} + +func (*MutateOperation_CampaignBudgetOperation) isMutateOperation_Operation() {} + +func (*MutateOperation_CampaignGroupOperation) isMutateOperation_Operation() {} + +func (*MutateOperation_CampaignOperation) isMutateOperation_Operation() {} + +func (*MutateOperation_CampaignSharedSetOperation) isMutateOperation_Operation() {} + +func (*MutateOperation_ConversionActionOperation) isMutateOperation_Operation() {} + +func (*MutateOperation_CampaignCriterionOperation) isMutateOperation_Operation() {} + +func (*MutateOperation_SharedCriterionOperation) isMutateOperation_Operation() {} + +func (*MutateOperation_SharedSetOperation) isMutateOperation_Operation() {} + +func (*MutateOperation_UserListOperation) isMutateOperation_Operation() {} + +func (m *MutateOperation) GetOperation() isMutateOperation_Operation { + if m != nil { + return m.Operation + } + return nil +} + +func (m *MutateOperation) GetAdGroupAdOperation() *AdGroupAdOperation { + if x, ok := m.GetOperation().(*MutateOperation_AdGroupAdOperation); ok { + return x.AdGroupAdOperation + } + return nil +} + +func (m *MutateOperation) GetAdGroupBidModifierOperation() *AdGroupBidModifierOperation { + if x, ok := m.GetOperation().(*MutateOperation_AdGroupBidModifierOperation); ok { + return x.AdGroupBidModifierOperation + } + return nil +} + +func (m *MutateOperation) GetAdGroupCriterionOperation() *AdGroupCriterionOperation { + if x, ok := m.GetOperation().(*MutateOperation_AdGroupCriterionOperation); ok { + return x.AdGroupCriterionOperation + } + return nil +} + +func (m *MutateOperation) GetAdGroupOperation() *AdGroupOperation { + if x, ok := m.GetOperation().(*MutateOperation_AdGroupOperation); ok { + return x.AdGroupOperation + } + return nil +} + +func (m *MutateOperation) GetBiddingStrategyOperation() *BiddingStrategyOperation { + if x, ok := m.GetOperation().(*MutateOperation_BiddingStrategyOperation); ok { + return x.BiddingStrategyOperation + } + return nil +} + +func (m *MutateOperation) GetCampaignBidModifierOperation() *CampaignBidModifierOperation { + if x, ok := m.GetOperation().(*MutateOperation_CampaignBidModifierOperation); ok { + return x.CampaignBidModifierOperation + } + return nil +} + +func (m *MutateOperation) GetCampaignBudgetOperation() *CampaignBudgetOperation { + if x, ok := m.GetOperation().(*MutateOperation_CampaignBudgetOperation); ok { + return x.CampaignBudgetOperation + } + return nil +} + +func (m *MutateOperation) GetCampaignGroupOperation() *CampaignGroupOperation { + if x, ok := m.GetOperation().(*MutateOperation_CampaignGroupOperation); ok { + return x.CampaignGroupOperation + } + return nil +} + +func (m *MutateOperation) GetCampaignOperation() *CampaignOperation { + if x, ok := m.GetOperation().(*MutateOperation_CampaignOperation); ok { + return x.CampaignOperation + } + return nil +} + +func (m *MutateOperation) GetCampaignSharedSetOperation() *CampaignSharedSetOperation { + if x, ok := m.GetOperation().(*MutateOperation_CampaignSharedSetOperation); ok { + return x.CampaignSharedSetOperation + } + return nil +} + +func (m *MutateOperation) GetConversionActionOperation() *ConversionActionOperation { + if x, ok := m.GetOperation().(*MutateOperation_ConversionActionOperation); ok { + return x.ConversionActionOperation + } + return nil +} + +func (m *MutateOperation) GetCampaignCriterionOperation() *CampaignCriterionOperation { + if x, ok := m.GetOperation().(*MutateOperation_CampaignCriterionOperation); ok { + return x.CampaignCriterionOperation + } + return nil +} + +func (m *MutateOperation) GetSharedCriterionOperation() *SharedCriterionOperation { + if x, ok := m.GetOperation().(*MutateOperation_SharedCriterionOperation); ok { + return x.SharedCriterionOperation + } + return nil +} + +func (m *MutateOperation) GetSharedSetOperation() *SharedSetOperation { + if x, ok := m.GetOperation().(*MutateOperation_SharedSetOperation); ok { + return x.SharedSetOperation + } + return nil +} + +func (m *MutateOperation) GetUserListOperation() *UserListOperation { + if x, ok := m.GetOperation().(*MutateOperation_UserListOperation); ok { + return x.UserListOperation + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*MutateOperation) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _MutateOperation_OneofMarshaler, _MutateOperation_OneofUnmarshaler, _MutateOperation_OneofSizer, []interface{}{ + (*MutateOperation_AdGroupAdOperation)(nil), + (*MutateOperation_AdGroupBidModifierOperation)(nil), + (*MutateOperation_AdGroupCriterionOperation)(nil), + (*MutateOperation_AdGroupOperation)(nil), + (*MutateOperation_BiddingStrategyOperation)(nil), + (*MutateOperation_CampaignBidModifierOperation)(nil), + (*MutateOperation_CampaignBudgetOperation)(nil), + (*MutateOperation_CampaignGroupOperation)(nil), + (*MutateOperation_CampaignOperation)(nil), + (*MutateOperation_CampaignSharedSetOperation)(nil), + (*MutateOperation_ConversionActionOperation)(nil), + (*MutateOperation_CampaignCriterionOperation)(nil), + (*MutateOperation_SharedCriterionOperation)(nil), + (*MutateOperation_SharedSetOperation)(nil), + (*MutateOperation_UserListOperation)(nil), + } +} + +func _MutateOperation_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*MutateOperation) + // operation + switch x := m.Operation.(type) { + case *MutateOperation_AdGroupAdOperation: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.AdGroupAdOperation); err != nil { + return err + } + case *MutateOperation_AdGroupBidModifierOperation: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.AdGroupBidModifierOperation); err != nil { + return err + } + case *MutateOperation_AdGroupCriterionOperation: + b.EncodeVarint(3<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.AdGroupCriterionOperation); err != nil { + return err + } + case *MutateOperation_AdGroupOperation: + b.EncodeVarint(5<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.AdGroupOperation); err != nil { + return err + } + case *MutateOperation_BiddingStrategyOperation: + b.EncodeVarint(6<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.BiddingStrategyOperation); err != nil { + return err + } + case *MutateOperation_CampaignBidModifierOperation: + b.EncodeVarint(7<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.CampaignBidModifierOperation); err != nil { + return err + } + case *MutateOperation_CampaignBudgetOperation: + b.EncodeVarint(8<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.CampaignBudgetOperation); err != nil { + return err + } + case *MutateOperation_CampaignGroupOperation: + b.EncodeVarint(9<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.CampaignGroupOperation); err != nil { + return err + } + case *MutateOperation_CampaignOperation: + b.EncodeVarint(10<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.CampaignOperation); err != nil { + return err + } + case *MutateOperation_CampaignSharedSetOperation: + b.EncodeVarint(11<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.CampaignSharedSetOperation); err != nil { + return err + } + case *MutateOperation_ConversionActionOperation: + b.EncodeVarint(12<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.ConversionActionOperation); err != nil { + return err + } + case *MutateOperation_CampaignCriterionOperation: + b.EncodeVarint(13<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.CampaignCriterionOperation); err != nil { + return err + } + case *MutateOperation_SharedCriterionOperation: + b.EncodeVarint(14<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.SharedCriterionOperation); err != nil { + return err + } + case *MutateOperation_SharedSetOperation: + b.EncodeVarint(15<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.SharedSetOperation); err != nil { + return err + } + case *MutateOperation_UserListOperation: + b.EncodeVarint(16<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.UserListOperation); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("MutateOperation.Operation has unexpected type %T", x) + } + return nil +} + +func _MutateOperation_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*MutateOperation) + switch tag { + case 1: // operation.ad_group_ad_operation + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(AdGroupAdOperation) + err := b.DecodeMessage(msg) + m.Operation = &MutateOperation_AdGroupAdOperation{msg} + return true, err + case 2: // operation.ad_group_bid_modifier_operation + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(AdGroupBidModifierOperation) + err := b.DecodeMessage(msg) + m.Operation = &MutateOperation_AdGroupBidModifierOperation{msg} + return true, err + case 3: // operation.ad_group_criterion_operation + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(AdGroupCriterionOperation) + err := b.DecodeMessage(msg) + m.Operation = &MutateOperation_AdGroupCriterionOperation{msg} + return true, err + case 5: // operation.ad_group_operation + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(AdGroupOperation) + err := b.DecodeMessage(msg) + m.Operation = &MutateOperation_AdGroupOperation{msg} + return true, err + case 6: // operation.bidding_strategy_operation + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(BiddingStrategyOperation) + err := b.DecodeMessage(msg) + m.Operation = &MutateOperation_BiddingStrategyOperation{msg} + return true, err + case 7: // operation.campaign_bid_modifier_operation + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(CampaignBidModifierOperation) + err := b.DecodeMessage(msg) + m.Operation = &MutateOperation_CampaignBidModifierOperation{msg} + return true, err + case 8: // operation.campaign_budget_operation + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(CampaignBudgetOperation) + err := b.DecodeMessage(msg) + m.Operation = &MutateOperation_CampaignBudgetOperation{msg} + return true, err + case 9: // operation.campaign_group_operation + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(CampaignGroupOperation) + err := b.DecodeMessage(msg) + m.Operation = &MutateOperation_CampaignGroupOperation{msg} + return true, err + case 10: // operation.campaign_operation + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(CampaignOperation) + err := b.DecodeMessage(msg) + m.Operation = &MutateOperation_CampaignOperation{msg} + return true, err + case 11: // operation.campaign_shared_set_operation + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(CampaignSharedSetOperation) + err := b.DecodeMessage(msg) + m.Operation = &MutateOperation_CampaignSharedSetOperation{msg} + return true, err + case 12: // operation.conversion_action_operation + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(ConversionActionOperation) + err := b.DecodeMessage(msg) + m.Operation = &MutateOperation_ConversionActionOperation{msg} + return true, err + case 13: // operation.campaign_criterion_operation + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(CampaignCriterionOperation) + err := b.DecodeMessage(msg) + m.Operation = &MutateOperation_CampaignCriterionOperation{msg} + return true, err + case 14: // operation.shared_criterion_operation + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(SharedCriterionOperation) + err := b.DecodeMessage(msg) + m.Operation = &MutateOperation_SharedCriterionOperation{msg} + return true, err + case 15: // operation.shared_set_operation + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(SharedSetOperation) + err := b.DecodeMessage(msg) + m.Operation = &MutateOperation_SharedSetOperation{msg} + return true, err + case 16: // operation.user_list_operation + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(UserListOperation) + err := b.DecodeMessage(msg) + m.Operation = &MutateOperation_UserListOperation{msg} + return true, err + default: + return false, nil + } +} + +func _MutateOperation_OneofSizer(msg proto.Message) (n int) { + m := msg.(*MutateOperation) + // operation + switch x := m.Operation.(type) { + case *MutateOperation_AdGroupAdOperation: + s := proto.Size(x.AdGroupAdOperation) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *MutateOperation_AdGroupBidModifierOperation: + s := proto.Size(x.AdGroupBidModifierOperation) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *MutateOperation_AdGroupCriterionOperation: + s := proto.Size(x.AdGroupCriterionOperation) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *MutateOperation_AdGroupOperation: + s := proto.Size(x.AdGroupOperation) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *MutateOperation_BiddingStrategyOperation: + s := proto.Size(x.BiddingStrategyOperation) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *MutateOperation_CampaignBidModifierOperation: + s := proto.Size(x.CampaignBidModifierOperation) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *MutateOperation_CampaignBudgetOperation: + s := proto.Size(x.CampaignBudgetOperation) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *MutateOperation_CampaignGroupOperation: + s := proto.Size(x.CampaignGroupOperation) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *MutateOperation_CampaignOperation: + s := proto.Size(x.CampaignOperation) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *MutateOperation_CampaignSharedSetOperation: + s := proto.Size(x.CampaignSharedSetOperation) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *MutateOperation_ConversionActionOperation: + s := proto.Size(x.ConversionActionOperation) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *MutateOperation_CampaignCriterionOperation: + s := proto.Size(x.CampaignCriterionOperation) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *MutateOperation_SharedCriterionOperation: + s := proto.Size(x.SharedCriterionOperation) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *MutateOperation_SharedSetOperation: + s := proto.Size(x.SharedSetOperation) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *MutateOperation_UserListOperation: + s := proto.Size(x.UserListOperation) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// Response message for the resource mutate. +type MutateOperationResponse struct { + // The mutate response + // + // Types that are valid to be assigned to Response: + // *MutateOperationResponse_AdGroupAdResult + // *MutateOperationResponse_AdGroupBidModifierResult + // *MutateOperationResponse_AdGroupCriterionResult + // *MutateOperationResponse_AdGroupResult + // *MutateOperationResponse_BiddingStrategyResult + // *MutateOperationResponse_CampaignBidModifierResult + // *MutateOperationResponse_CampaignBudgetResult + // *MutateOperationResponse_CampaignGroupResult + // *MutateOperationResponse_CampaignResult + // *MutateOperationResponse_CampaignSharedSetResult + // *MutateOperationResponse_ConversionActionResult + // *MutateOperationResponse_CampaignCriterionResult + // *MutateOperationResponse_SharedCriterionResult + // *MutateOperationResponse_SharedSetResult + // *MutateOperationResponse_UserListResult + Response isMutateOperationResponse_Response `protobuf_oneof:"response"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateOperationResponse) Reset() { *m = MutateOperationResponse{} } +func (m *MutateOperationResponse) String() string { return proto.CompactTextString(m) } +func (*MutateOperationResponse) ProtoMessage() {} +func (*MutateOperationResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_google_ads_service_537fcb76d9dc142d, []int{6} +} +func (m *MutateOperationResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateOperationResponse.Unmarshal(m, b) +} +func (m *MutateOperationResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateOperationResponse.Marshal(b, m, deterministic) +} +func (dst *MutateOperationResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateOperationResponse.Merge(dst, src) +} +func (m *MutateOperationResponse) XXX_Size() int { + return xxx_messageInfo_MutateOperationResponse.Size(m) +} +func (m *MutateOperationResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MutateOperationResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateOperationResponse proto.InternalMessageInfo + +type isMutateOperationResponse_Response interface { + isMutateOperationResponse_Response() +} + +type MutateOperationResponse_AdGroupAdResult struct { + AdGroupAdResult *MutateAdGroupAdResult `protobuf:"bytes,1,opt,name=ad_group_ad_result,json=adGroupAdResult,proto3,oneof"` +} + +type MutateOperationResponse_AdGroupBidModifierResult struct { + AdGroupBidModifierResult *MutateAdGroupBidModifierResult `protobuf:"bytes,2,opt,name=ad_group_bid_modifier_result,json=adGroupBidModifierResult,proto3,oneof"` +} + +type MutateOperationResponse_AdGroupCriterionResult struct { + AdGroupCriterionResult *MutateAdGroupCriterionResult `protobuf:"bytes,3,opt,name=ad_group_criterion_result,json=adGroupCriterionResult,proto3,oneof"` +} + +type MutateOperationResponse_AdGroupResult struct { + AdGroupResult *MutateAdGroupResult `protobuf:"bytes,5,opt,name=ad_group_result,json=adGroupResult,proto3,oneof"` +} + +type MutateOperationResponse_BiddingStrategyResult struct { + BiddingStrategyResult *MutateBiddingStrategyResult `protobuf:"bytes,6,opt,name=bidding_strategy_result,json=biddingStrategyResult,proto3,oneof"` +} + +type MutateOperationResponse_CampaignBidModifierResult struct { + CampaignBidModifierResult *MutateCampaignBidModifierResult `protobuf:"bytes,7,opt,name=campaign_bid_modifier_result,json=campaignBidModifierResult,proto3,oneof"` +} + +type MutateOperationResponse_CampaignBudgetResult struct { + CampaignBudgetResult *MutateCampaignBudgetResult `protobuf:"bytes,8,opt,name=campaign_budget_result,json=campaignBudgetResult,proto3,oneof"` +} + +type MutateOperationResponse_CampaignGroupResult struct { + CampaignGroupResult *MutateCampaignGroupResult `protobuf:"bytes,9,opt,name=campaign_group_result,json=campaignGroupResult,proto3,oneof"` +} + +type MutateOperationResponse_CampaignResult struct { + CampaignResult *MutateCampaignResult `protobuf:"bytes,10,opt,name=campaign_result,json=campaignResult,proto3,oneof"` +} + +type MutateOperationResponse_CampaignSharedSetResult struct { + CampaignSharedSetResult *MutateCampaignSharedSetResult `protobuf:"bytes,11,opt,name=campaign_shared_set_result,json=campaignSharedSetResult,proto3,oneof"` +} + +type MutateOperationResponse_ConversionActionResult struct { + ConversionActionResult *MutateConversionActionResult `protobuf:"bytes,12,opt,name=conversion_action_result,json=conversionActionResult,proto3,oneof"` +} + +type MutateOperationResponse_CampaignCriterionResult struct { + CampaignCriterionResult *MutateCampaignCriterionResult `protobuf:"bytes,13,opt,name=campaign_criterion_result,json=campaignCriterionResult,proto3,oneof"` +} + +type MutateOperationResponse_SharedCriterionResult struct { + SharedCriterionResult *MutateSharedCriterionResult `protobuf:"bytes,14,opt,name=shared_criterion_result,json=sharedCriterionResult,proto3,oneof"` +} + +type MutateOperationResponse_SharedSetResult struct { + SharedSetResult *MutateSharedSetResult `protobuf:"bytes,15,opt,name=shared_set_result,json=sharedSetResult,proto3,oneof"` +} + +type MutateOperationResponse_UserListResult struct { + UserListResult *MutateUserListResult `protobuf:"bytes,16,opt,name=user_list_result,json=userListResult,proto3,oneof"` +} + +func (*MutateOperationResponse_AdGroupAdResult) isMutateOperationResponse_Response() {} + +func (*MutateOperationResponse_AdGroupBidModifierResult) isMutateOperationResponse_Response() {} + +func (*MutateOperationResponse_AdGroupCriterionResult) isMutateOperationResponse_Response() {} + +func (*MutateOperationResponse_AdGroupResult) isMutateOperationResponse_Response() {} + +func (*MutateOperationResponse_BiddingStrategyResult) isMutateOperationResponse_Response() {} + +func (*MutateOperationResponse_CampaignBidModifierResult) isMutateOperationResponse_Response() {} + +func (*MutateOperationResponse_CampaignBudgetResult) isMutateOperationResponse_Response() {} + +func (*MutateOperationResponse_CampaignGroupResult) isMutateOperationResponse_Response() {} + +func (*MutateOperationResponse_CampaignResult) isMutateOperationResponse_Response() {} + +func (*MutateOperationResponse_CampaignSharedSetResult) isMutateOperationResponse_Response() {} + +func (*MutateOperationResponse_ConversionActionResult) isMutateOperationResponse_Response() {} + +func (*MutateOperationResponse_CampaignCriterionResult) isMutateOperationResponse_Response() {} + +func (*MutateOperationResponse_SharedCriterionResult) isMutateOperationResponse_Response() {} + +func (*MutateOperationResponse_SharedSetResult) isMutateOperationResponse_Response() {} + +func (*MutateOperationResponse_UserListResult) isMutateOperationResponse_Response() {} + +func (m *MutateOperationResponse) GetResponse() isMutateOperationResponse_Response { + if m != nil { + return m.Response + } + return nil +} + +func (m *MutateOperationResponse) GetAdGroupAdResult() *MutateAdGroupAdResult { + if x, ok := m.GetResponse().(*MutateOperationResponse_AdGroupAdResult); ok { + return x.AdGroupAdResult + } + return nil +} + +func (m *MutateOperationResponse) GetAdGroupBidModifierResult() *MutateAdGroupBidModifierResult { + if x, ok := m.GetResponse().(*MutateOperationResponse_AdGroupBidModifierResult); ok { + return x.AdGroupBidModifierResult + } + return nil +} + +func (m *MutateOperationResponse) GetAdGroupCriterionResult() *MutateAdGroupCriterionResult { + if x, ok := m.GetResponse().(*MutateOperationResponse_AdGroupCriterionResult); ok { + return x.AdGroupCriterionResult + } + return nil +} + +func (m *MutateOperationResponse) GetAdGroupResult() *MutateAdGroupResult { + if x, ok := m.GetResponse().(*MutateOperationResponse_AdGroupResult); ok { + return x.AdGroupResult + } + return nil +} + +func (m *MutateOperationResponse) GetBiddingStrategyResult() *MutateBiddingStrategyResult { + if x, ok := m.GetResponse().(*MutateOperationResponse_BiddingStrategyResult); ok { + return x.BiddingStrategyResult + } + return nil +} + +func (m *MutateOperationResponse) GetCampaignBidModifierResult() *MutateCampaignBidModifierResult { + if x, ok := m.GetResponse().(*MutateOperationResponse_CampaignBidModifierResult); ok { + return x.CampaignBidModifierResult + } + return nil +} + +func (m *MutateOperationResponse) GetCampaignBudgetResult() *MutateCampaignBudgetResult { + if x, ok := m.GetResponse().(*MutateOperationResponse_CampaignBudgetResult); ok { + return x.CampaignBudgetResult + } + return nil +} + +func (m *MutateOperationResponse) GetCampaignGroupResult() *MutateCampaignGroupResult { + if x, ok := m.GetResponse().(*MutateOperationResponse_CampaignGroupResult); ok { + return x.CampaignGroupResult + } + return nil +} + +func (m *MutateOperationResponse) GetCampaignResult() *MutateCampaignResult { + if x, ok := m.GetResponse().(*MutateOperationResponse_CampaignResult); ok { + return x.CampaignResult + } + return nil +} + +func (m *MutateOperationResponse) GetCampaignSharedSetResult() *MutateCampaignSharedSetResult { + if x, ok := m.GetResponse().(*MutateOperationResponse_CampaignSharedSetResult); ok { + return x.CampaignSharedSetResult + } + return nil +} + +func (m *MutateOperationResponse) GetConversionActionResult() *MutateConversionActionResult { + if x, ok := m.GetResponse().(*MutateOperationResponse_ConversionActionResult); ok { + return x.ConversionActionResult + } + return nil +} + +func (m *MutateOperationResponse) GetCampaignCriterionResult() *MutateCampaignCriterionResult { + if x, ok := m.GetResponse().(*MutateOperationResponse_CampaignCriterionResult); ok { + return x.CampaignCriterionResult + } + return nil +} + +func (m *MutateOperationResponse) GetSharedCriterionResult() *MutateSharedCriterionResult { + if x, ok := m.GetResponse().(*MutateOperationResponse_SharedCriterionResult); ok { + return x.SharedCriterionResult + } + return nil +} + +func (m *MutateOperationResponse) GetSharedSetResult() *MutateSharedSetResult { + if x, ok := m.GetResponse().(*MutateOperationResponse_SharedSetResult); ok { + return x.SharedSetResult + } + return nil +} + +func (m *MutateOperationResponse) GetUserListResult() *MutateUserListResult { + if x, ok := m.GetResponse().(*MutateOperationResponse_UserListResult); ok { + return x.UserListResult + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*MutateOperationResponse) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _MutateOperationResponse_OneofMarshaler, _MutateOperationResponse_OneofUnmarshaler, _MutateOperationResponse_OneofSizer, []interface{}{ + (*MutateOperationResponse_AdGroupAdResult)(nil), + (*MutateOperationResponse_AdGroupBidModifierResult)(nil), + (*MutateOperationResponse_AdGroupCriterionResult)(nil), + (*MutateOperationResponse_AdGroupResult)(nil), + (*MutateOperationResponse_BiddingStrategyResult)(nil), + (*MutateOperationResponse_CampaignBidModifierResult)(nil), + (*MutateOperationResponse_CampaignBudgetResult)(nil), + (*MutateOperationResponse_CampaignGroupResult)(nil), + (*MutateOperationResponse_CampaignResult)(nil), + (*MutateOperationResponse_CampaignSharedSetResult)(nil), + (*MutateOperationResponse_ConversionActionResult)(nil), + (*MutateOperationResponse_CampaignCriterionResult)(nil), + (*MutateOperationResponse_SharedCriterionResult)(nil), + (*MutateOperationResponse_SharedSetResult)(nil), + (*MutateOperationResponse_UserListResult)(nil), + } +} + +func _MutateOperationResponse_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*MutateOperationResponse) + // response + switch x := m.Response.(type) { + case *MutateOperationResponse_AdGroupAdResult: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.AdGroupAdResult); err != nil { + return err + } + case *MutateOperationResponse_AdGroupBidModifierResult: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.AdGroupBidModifierResult); err != nil { + return err + } + case *MutateOperationResponse_AdGroupCriterionResult: + b.EncodeVarint(3<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.AdGroupCriterionResult); err != nil { + return err + } + case *MutateOperationResponse_AdGroupResult: + b.EncodeVarint(5<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.AdGroupResult); err != nil { + return err + } + case *MutateOperationResponse_BiddingStrategyResult: + b.EncodeVarint(6<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.BiddingStrategyResult); err != nil { + return err + } + case *MutateOperationResponse_CampaignBidModifierResult: + b.EncodeVarint(7<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.CampaignBidModifierResult); err != nil { + return err + } + case *MutateOperationResponse_CampaignBudgetResult: + b.EncodeVarint(8<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.CampaignBudgetResult); err != nil { + return err + } + case *MutateOperationResponse_CampaignGroupResult: + b.EncodeVarint(9<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.CampaignGroupResult); err != nil { + return err + } + case *MutateOperationResponse_CampaignResult: + b.EncodeVarint(10<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.CampaignResult); err != nil { + return err + } + case *MutateOperationResponse_CampaignSharedSetResult: + b.EncodeVarint(11<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.CampaignSharedSetResult); err != nil { + return err + } + case *MutateOperationResponse_ConversionActionResult: + b.EncodeVarint(12<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.ConversionActionResult); err != nil { + return err + } + case *MutateOperationResponse_CampaignCriterionResult: + b.EncodeVarint(13<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.CampaignCriterionResult); err != nil { + return err + } + case *MutateOperationResponse_SharedCriterionResult: + b.EncodeVarint(14<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.SharedCriterionResult); err != nil { + return err + } + case *MutateOperationResponse_SharedSetResult: + b.EncodeVarint(15<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.SharedSetResult); err != nil { + return err + } + case *MutateOperationResponse_UserListResult: + b.EncodeVarint(16<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.UserListResult); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("MutateOperationResponse.Response has unexpected type %T", x) + } + return nil +} + +func _MutateOperationResponse_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*MutateOperationResponse) + switch tag { + case 1: // response.ad_group_ad_result + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(MutateAdGroupAdResult) + err := b.DecodeMessage(msg) + m.Response = &MutateOperationResponse_AdGroupAdResult{msg} + return true, err + case 2: // response.ad_group_bid_modifier_result + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(MutateAdGroupBidModifierResult) + err := b.DecodeMessage(msg) + m.Response = &MutateOperationResponse_AdGroupBidModifierResult{msg} + return true, err + case 3: // response.ad_group_criterion_result + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(MutateAdGroupCriterionResult) + err := b.DecodeMessage(msg) + m.Response = &MutateOperationResponse_AdGroupCriterionResult{msg} + return true, err + case 5: // response.ad_group_result + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(MutateAdGroupResult) + err := b.DecodeMessage(msg) + m.Response = &MutateOperationResponse_AdGroupResult{msg} + return true, err + case 6: // response.bidding_strategy_result + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(MutateBiddingStrategyResult) + err := b.DecodeMessage(msg) + m.Response = &MutateOperationResponse_BiddingStrategyResult{msg} + return true, err + case 7: // response.campaign_bid_modifier_result + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(MutateCampaignBidModifierResult) + err := b.DecodeMessage(msg) + m.Response = &MutateOperationResponse_CampaignBidModifierResult{msg} + return true, err + case 8: // response.campaign_budget_result + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(MutateCampaignBudgetResult) + err := b.DecodeMessage(msg) + m.Response = &MutateOperationResponse_CampaignBudgetResult{msg} + return true, err + case 9: // response.campaign_group_result + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(MutateCampaignGroupResult) + err := b.DecodeMessage(msg) + m.Response = &MutateOperationResponse_CampaignGroupResult{msg} + return true, err + case 10: // response.campaign_result + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(MutateCampaignResult) + err := b.DecodeMessage(msg) + m.Response = &MutateOperationResponse_CampaignResult{msg} + return true, err + case 11: // response.campaign_shared_set_result + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(MutateCampaignSharedSetResult) + err := b.DecodeMessage(msg) + m.Response = &MutateOperationResponse_CampaignSharedSetResult{msg} + return true, err + case 12: // response.conversion_action_result + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(MutateConversionActionResult) + err := b.DecodeMessage(msg) + m.Response = &MutateOperationResponse_ConversionActionResult{msg} + return true, err + case 13: // response.campaign_criterion_result + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(MutateCampaignCriterionResult) + err := b.DecodeMessage(msg) + m.Response = &MutateOperationResponse_CampaignCriterionResult{msg} + return true, err + case 14: // response.shared_criterion_result + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(MutateSharedCriterionResult) + err := b.DecodeMessage(msg) + m.Response = &MutateOperationResponse_SharedCriterionResult{msg} + return true, err + case 15: // response.shared_set_result + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(MutateSharedSetResult) + err := b.DecodeMessage(msg) + m.Response = &MutateOperationResponse_SharedSetResult{msg} + return true, err + case 16: // response.user_list_result + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(MutateUserListResult) + err := b.DecodeMessage(msg) + m.Response = &MutateOperationResponse_UserListResult{msg} + return true, err + default: + return false, nil + } +} + +func _MutateOperationResponse_OneofSizer(msg proto.Message) (n int) { + m := msg.(*MutateOperationResponse) + // response + switch x := m.Response.(type) { + case *MutateOperationResponse_AdGroupAdResult: + s := proto.Size(x.AdGroupAdResult) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *MutateOperationResponse_AdGroupBidModifierResult: + s := proto.Size(x.AdGroupBidModifierResult) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *MutateOperationResponse_AdGroupCriterionResult: + s := proto.Size(x.AdGroupCriterionResult) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *MutateOperationResponse_AdGroupResult: + s := proto.Size(x.AdGroupResult) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *MutateOperationResponse_BiddingStrategyResult: + s := proto.Size(x.BiddingStrategyResult) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *MutateOperationResponse_CampaignBidModifierResult: + s := proto.Size(x.CampaignBidModifierResult) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *MutateOperationResponse_CampaignBudgetResult: + s := proto.Size(x.CampaignBudgetResult) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *MutateOperationResponse_CampaignGroupResult: + s := proto.Size(x.CampaignGroupResult) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *MutateOperationResponse_CampaignResult: + s := proto.Size(x.CampaignResult) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *MutateOperationResponse_CampaignSharedSetResult: + s := proto.Size(x.CampaignSharedSetResult) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *MutateOperationResponse_ConversionActionResult: + s := proto.Size(x.ConversionActionResult) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *MutateOperationResponse_CampaignCriterionResult: + s := proto.Size(x.CampaignCriterionResult) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *MutateOperationResponse_SharedCriterionResult: + s := proto.Size(x.SharedCriterionResult) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *MutateOperationResponse_SharedSetResult: + s := proto.Size(x.SharedSetResult) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *MutateOperationResponse_UserListResult: + s := proto.Size(x.UserListResult) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +func init() { + proto.RegisterType((*SearchGoogleAdsRequest)(nil), "google.ads.googleads.v0.services.SearchGoogleAdsRequest") + proto.RegisterType((*SearchGoogleAdsResponse)(nil), "google.ads.googleads.v0.services.SearchGoogleAdsResponse") + proto.RegisterType((*GoogleAdsRow)(nil), "google.ads.googleads.v0.services.GoogleAdsRow") + proto.RegisterType((*MutateGoogleAdsRequest)(nil), "google.ads.googleads.v0.services.MutateGoogleAdsRequest") + proto.RegisterType((*MutateGoogleAdsResponse)(nil), "google.ads.googleads.v0.services.MutateGoogleAdsResponse") + proto.RegisterType((*MutateOperation)(nil), "google.ads.googleads.v0.services.MutateOperation") + proto.RegisterType((*MutateOperationResponse)(nil), "google.ads.googleads.v0.services.MutateOperationResponse") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// GoogleAdsServiceClient is the client API for GoogleAdsService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type GoogleAdsServiceClient interface { + // Returns all rows that match the search query. + Search(ctx context.Context, in *SearchGoogleAdsRequest, opts ...grpc.CallOption) (*SearchGoogleAdsResponse, error) + // Creates, updates, or removes resources. Operation statuses are returned. + Mutate(ctx context.Context, in *MutateGoogleAdsRequest, opts ...grpc.CallOption) (*MutateGoogleAdsResponse, error) +} + +type googleAdsServiceClient struct { + cc *grpc.ClientConn +} + +func NewGoogleAdsServiceClient(cc *grpc.ClientConn) GoogleAdsServiceClient { + return &googleAdsServiceClient{cc} +} + +func (c *googleAdsServiceClient) Search(ctx context.Context, in *SearchGoogleAdsRequest, opts ...grpc.CallOption) (*SearchGoogleAdsResponse, error) { + out := new(SearchGoogleAdsResponse) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.GoogleAdsService/Search", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *googleAdsServiceClient) Mutate(ctx context.Context, in *MutateGoogleAdsRequest, opts ...grpc.CallOption) (*MutateGoogleAdsResponse, error) { + out := new(MutateGoogleAdsResponse) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.GoogleAdsService/Mutate", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// GoogleAdsServiceServer is the server API for GoogleAdsService service. +type GoogleAdsServiceServer interface { + // Returns all rows that match the search query. + Search(context.Context, *SearchGoogleAdsRequest) (*SearchGoogleAdsResponse, error) + // Creates, updates, or removes resources. Operation statuses are returned. + Mutate(context.Context, *MutateGoogleAdsRequest) (*MutateGoogleAdsResponse, error) +} + +func RegisterGoogleAdsServiceServer(s *grpc.Server, srv GoogleAdsServiceServer) { + s.RegisterService(&_GoogleAdsService_serviceDesc, srv) +} + +func _GoogleAdsService_Search_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SearchGoogleAdsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GoogleAdsServiceServer).Search(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.GoogleAdsService/Search", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GoogleAdsServiceServer).Search(ctx, req.(*SearchGoogleAdsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _GoogleAdsService_Mutate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MutateGoogleAdsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GoogleAdsServiceServer).Mutate(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.GoogleAdsService/Mutate", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GoogleAdsServiceServer).Mutate(ctx, req.(*MutateGoogleAdsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _GoogleAdsService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.GoogleAdsService", + HandlerType: (*GoogleAdsServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "Search", + Handler: _GoogleAdsService_Search_Handler, + }, + { + MethodName: "Mutate", + Handler: _GoogleAdsService_Mutate_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/google_ads_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/google_ads_service.proto", fileDescriptor_google_ads_service_537fcb76d9dc142d) +} + +var fileDescriptor_google_ads_service_537fcb76d9dc142d = []byte{ + // 3568 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x5b, 0x49, 0x77, 0xdc, 0xc6, + 0xb5, 0x76, 0x6b, 0x24, 0xab, 0x39, 0x16, 0x25, 0xb2, 0xd4, 0x92, 0x2c, 0x3d, 0x3e, 0x3f, 0x5b, + 0x4f, 0x96, 0x9b, 0x14, 0x35, 0x92, 0x1a, 0x9b, 0xd4, 0x40, 0x5a, 0xa2, 0x44, 0x83, 0xb2, 0x7c, + 0xec, 0xa7, 0x67, 0xa4, 0x08, 0x14, 0x9b, 0x48, 0x77, 0x03, 0x10, 0x50, 0x2d, 0xa6, 0xe5, 0x63, + 0xc7, 0xf1, 0x49, 0x4e, 0x72, 0x8e, 0x77, 0xc9, 0x2a, 0xdb, 0x64, 0x97, 0x5f, 0x90, 0xdf, 0xe0, + 0x6d, 0x4e, 0xfe, 0x41, 0x7e, 0x43, 0x36, 0xd9, 0xe4, 0xd4, 0x00, 0xa0, 0x30, 0x34, 0x51, 0x50, + 0x76, 0x5d, 0xb7, 0xf0, 0xdd, 0xef, 0xa2, 0x86, 0x7b, 0x2f, 0x6e, 0x55, 0x83, 0xe5, 0xb6, 0xe7, + 0xb5, 0xbb, 0x64, 0x01, 0xdb, 0xe1, 0x82, 0xf8, 0xc9, 0x7e, 0xbd, 0x59, 0x5c, 0x08, 0x49, 0xf0, + 0xc6, 0xb1, 0x48, 0x24, 0x35, 0xb1, 0x1d, 0x9a, 0x52, 0xd6, 0xf4, 0x03, 0x8f, 0x7a, 0xf0, 0xbc, + 0xe8, 0x69, 0x62, 0x3b, 0x6c, 0xc6, 0xd0, 0xe6, 0x9b, 0xc5, 0x66, 0x04, 0x6d, 0x5c, 0x1a, 0xa6, + 0xdc, 0xf2, 0x7a, 0x3d, 0xcf, 0x5d, 0xe8, 0x11, 0x1a, 0x38, 0x56, 0x28, 0xf4, 0x35, 0xae, 0x0c, + 0x7b, 0x9a, 0xb8, 0xfd, 0x5e, 0xb8, 0x80, 0x6d, 0xd3, 0x25, 0x74, 0xdf, 0x0b, 0x3a, 0x26, 0x1d, + 0xf8, 0xd2, 0x88, 0xc6, 0xc2, 0xc1, 0x20, 0x1b, 0x0f, 0x4c, 0x6f, 0xd7, 0xdc, 0x27, 0xa4, 0x23, + 0x01, 0x17, 0x4b, 0x00, 0x24, 0x79, 0xc3, 0xc6, 0x9d, 0x83, 0x9f, 0xdd, 0xf3, 0x28, 0xe9, 0x9a, + 0x36, 0xa6, 0xc4, 0x0c, 0x49, 0x97, 0x58, 0xd4, 0xf1, 0x5c, 0xd5, 0xb6, 0xcb, 0x07, 0xc3, 0x7b, + 0x9e, 0x4b, 0xf7, 0x98, 0x75, 0x03, 0x82, 0x03, 0x09, 0xb9, 0x7a, 0x30, 0xc4, 0xef, 0x62, 0x8b, + 0xec, 0x79, 0x5d, 0x9b, 0x04, 0x2a, 0xd1, 0xca, 0xc1, 0xa8, 0x90, 0xe0, 0xc0, 0xda, 0x33, 0x29, + 0x09, 0x7a, 0x66, 0x0f, 0x53, 0xf6, 0x33, 0xc1, 0x5e, 0x28, 0xc1, 0x76, 0x3d, 0x2a, 0x9f, 0xbc, + 0x3e, 0xec, 0xc9, 0x80, 0x84, 0x5e, 0x3f, 0x60, 0x6b, 0x05, 0x5b, 0x96, 0xd7, 0x77, 0xa9, 0xb9, + 0xd3, 0xb7, 0xdb, 0x24, 0xc2, 0xdd, 0xab, 0x8a, 0x33, 0xfd, 0xc0, 0xf3, 0xbd, 0x10, 0x77, 0xa5, + 0x82, 0x45, 0x0d, 0x05, 0xb6, 0xd9, 0x0e, 0xbc, 0xbe, 0x5f, 0xb6, 0x94, 0xf2, 0x08, 0x13, 0xdb, + 0x12, 0x74, 0xb7, 0x0a, 0xa8, 0x6f, 0x3b, 0xc4, 0xb5, 0x88, 0xf9, 0xc6, 0x21, 0xfb, 0x65, 0xab, + 0xa5, 0x00, 0xbf, 0xe3, 0xd8, 0x66, 0xcf, 0xb3, 0x9d, 0x5d, 0x87, 0x04, 0x65, 0x93, 0x58, 0x00, + 0xb7, 0x02, 0x87, 0x92, 0xc0, 0xf1, 0x5c, 0x89, 0xbd, 0x56, 0x01, 0xbb, 0x4b, 0x88, 0x5d, 0x61, + 0x46, 0xdb, 0xc4, 0x0c, 0xb0, 0xdb, 0x4e, 0xbd, 0xe9, 0xcd, 0x72, 0xdc, 0x8e, 0x63, 0xdb, 0x8e, + 0xdb, 0x36, 0x43, 0x1a, 0x60, 0x4a, 0xda, 0x03, 0x7d, 0x43, 0x77, 0x9c, 0x6e, 0x97, 0x23, 0x09, + 0x8d, 0xe7, 0x53, 0x63, 0x05, 0x58, 0xb8, 0xe7, 0x63, 0xa7, 0xed, 0xea, 0x4f, 0x66, 0x84, 0x78, + 0xd7, 0xc9, 0x8c, 0xf1, 0x05, 0x93, 0x79, 0xa3, 0x0a, 0x5c, 0xdd, 0x2c, 0x2b, 0x15, 0x80, 0xef, + 0xb0, 0x0a, 0x62, 0x6c, 0xb5, 0x55, 0x10, 0xc3, 0xd4, 0x4d, 0x76, 0xab, 0x02, 0x2e, 0xdc, 0xc3, + 0x01, 0xb1, 0xd9, 0x9c, 0xea, 0x2f, 0x21, 0x0b, 0x07, 0x81, 0x43, 0x02, 0xd3, 0xf2, 0xdc, 0x90, + 0x62, 0x97, 0x56, 0x78, 0xcb, 0x3d, 0xbe, 0x62, 0x43, 0x8a, 0x69, 0x3f, 0xac, 0xb0, 0x84, 0xfa, + 0x21, 0xf5, 0x7a, 0x95, 0xe6, 0x50, 0x22, 0x4c, 0xab, 0xeb, 0x90, 0xd8, 0xc2, 0xdb, 0x95, 0x81, + 0x66, 0xd7, 0x71, 0x3b, 0x15, 0xde, 0x2f, 0x42, 0x2b, 0xb3, 0x78, 0xa7, 0x02, 0xac, 0x87, 0x5d, + 0xdc, 0x26, 0x81, 0xca, 0xaa, 0x61, 0xb3, 0xed, 0x84, 0x7e, 0x17, 0x0f, 0xcc, 0x0e, 0x19, 0xec, + 0x7b, 0x81, 0xad, 0xee, 0x96, 0x4b, 0xe5, 0x68, 0xc5, 0xd4, 0xcb, 0x7a, 0x4f, 0x9b, 0x0e, 0x25, + 0xbd, 0xb2, 0xb8, 0x98, 0x81, 0xf4, 0xb0, 0xef, 0x3b, 0x6e, 0x5b, 0x3f, 0x0c, 0xb4, 0x89, 0xcb, + 0x82, 0xa9, 0xf2, 0x2e, 0xb7, 0x74, 0x40, 0x9e, 0x49, 0x71, 0xc0, 0x42, 0x55, 0x66, 0x71, 0x6a, + 0x2c, 0x6b, 0x91, 0x35, 0x08, 0x5f, 0xac, 0xd0, 0xde, 0xd5, 0x45, 0xfa, 0x24, 0xd8, 0xf5, 0x82, + 0x1e, 0xce, 0x38, 0x2c, 0x8d, 0x11, 0x8a, 0x26, 0xce, 0xef, 0x62, 0x57, 0x7f, 0xd5, 0xa8, 0x28, + 0x33, 0x13, 0x67, 0xab, 0xc2, 0x33, 0x4e, 0xfa, 0x76, 0x45, 0xb8, 0x6c, 0x48, 0xf4, 0xc3, 0x8a, + 0x68, 0x97, 0xb4, 0x31, 0x75, 0xde, 0x90, 0x8c, 0x9a, 0x0a, 0x03, 0xa7, 0x0c, 0xf7, 0x72, 0x39, + 0xaa, 0x8b, 0xdd, 0x76, 0x9f, 0xc5, 0xcf, 0xcc, 0x1a, 0xd1, 0x98, 0x69, 0xb1, 0x41, 0xb9, 0xdd, + 0x16, 0xe9, 0x31, 0x07, 0xa1, 0x50, 0x6b, 0x8c, 0x9a, 0x8f, 0x03, 0xe2, 0x52, 0xdc, 0x95, 0x2e, + 0x50, 0x45, 0x6b, 0x04, 0x18, 0x3f, 0xf0, 0xec, 0xbe, 0x45, 0xf3, 0x6b, 0x54, 0x23, 0x52, 0x04, + 0x84, 0xe5, 0xf6, 0xc4, 0xb5, 0x31, 0x4d, 0x02, 0x93, 0xc6, 0xae, 0x50, 0x73, 0xd4, 0x6a, 0x99, + 0x86, 0x0c, 0x2d, 0xd9, 0x60, 0xb8, 0xa4, 0x8d, 0x4c, 0x82, 0x92, 0xc6, 0xfb, 0x51, 0xcf, 0x77, + 0xac, 0xec, 0x8c, 0x2e, 0xe9, 0xe2, 0x94, 0x37, 0xd3, 0x70, 0xf3, 0xfd, 0x90, 0x04, 0xa6, 0xe3, + 0x52, 0x12, 0x90, 0x90, 0xea, 0xfb, 0x4e, 0x0e, 0xeb, 0x3a, 0x31, 0xe4, 0x93, 0x72, 0xc8, 0x1b, + 0xc7, 0x26, 0x5e, 0xd9, 0x02, 0x89, 0xbf, 0x08, 0x95, 0xd4, 0x39, 0xfd, 0x49, 0xd8, 0x78, 0xa0, + 0x8f, 0x55, 0x93, 0xa6, 0x8c, 0x96, 0x96, 0xbe, 0x96, 0x78, 0xd6, 0x33, 0x2a, 0x6e, 0xe8, 0xab, + 0x48, 0x03, 0xef, 0x95, 0x02, 0xb3, 0x99, 0x6d, 0xe5, 0x21, 0x28, 0xcc, 0x1b, 0x33, 0x5a, 0xee, + 0x56, 0xd0, 0x22, 0xbe, 0x99, 0xaa, 0x0e, 0x61, 0x3e, 0x8b, 0xcc, 0xa8, 0xb8, 0xa3, 0xaf, 0xa2, + 0x68, 0x20, 0x6f, 0xe8, 0xc3, 0xd3, 0xc0, 0xd5, 0x0a, 0xc0, 0x78, 0x03, 0x67, 0x74, 0xdc, 0x2f, + 0xd7, 0xe1, 0xb9, 0x6f, 0x48, 0x10, 0xb2, 0xd7, 0xc6, 0xe2, 0xc3, 0xbd, 0xea, 0x3a, 0xc8, 0xfa, + 0x9d, 0x8c, 0x82, 0x65, 0x5d, 0x05, 0x79, 0xeb, 0x6f, 0x96, 0x42, 0xe3, 0x2d, 0x9e, 0x41, 0x9e, + 0x89, 0x90, 0xbe, 0xb3, 0x80, 0x5d, 0xd7, 0xa3, 0xdc, 0x0b, 0x47, 0x29, 0xb0, 0x2c, 0xd8, 0x2c, + 0xf0, 0xd6, 0x4e, 0x7f, 0x77, 0x61, 0xd7, 0x21, 0x5d, 0x96, 0x33, 0x85, 0x51, 0x16, 0xf8, 0x7e, + 0xf6, 0x89, 0xfd, 0x00, 0xfb, 0x3e, 0x09, 0xa4, 0x86, 0xf9, 0x1f, 0x6b, 0x60, 0x76, 0x9b, 0x7b, + 0xea, 0xc7, 0xfc, 0xc1, 0x96, 0x1d, 0x1a, 0xe4, 0x75, 0x9f, 0x84, 0x14, 0x9e, 0x03, 0xf5, 0x38, + 0xbf, 0x74, 0x6c, 0x54, 0x3b, 0x5f, 0xbb, 0x30, 0x6a, 0x80, 0x48, 0xb4, 0x61, 0xc3, 0x13, 0xe0, + 0xe8, 0xeb, 0x3e, 0x09, 0x06, 0xe8, 0x10, 0xef, 0x12, 0x0d, 0x78, 0x16, 0x00, 0x9f, 0xc5, 0x48, + 0xea, 0x75, 0x88, 0x8b, 0x0e, 0xf3, 0xae, 0x51, 0x26, 0x79, 0xc1, 0x04, 0xf0, 0x34, 0xe0, 0x0d, + 0x33, 0x74, 0xde, 0x12, 0x74, 0xe4, 0x7c, 0xed, 0xc2, 0x51, 0x63, 0x84, 0x09, 0xb6, 0x9d, 0xb7, + 0x64, 0xfe, 0x9f, 0x35, 0x30, 0x97, 0xb3, 0x26, 0xf4, 0x3d, 0x37, 0x24, 0x70, 0x1d, 0x1c, 0x0f, + 0x48, 0xd8, 0xef, 0xd2, 0x10, 0xd5, 0xce, 0x1f, 0xbe, 0x50, 0x5f, 0x6a, 0x36, 0xcb, 0xca, 0x55, + 0xcd, 0x44, 0x8b, 0xb7, 0x6f, 0x44, 0x70, 0xf8, 0x21, 0x98, 0x74, 0xc9, 0x2f, 0xa8, 0xa9, 0x98, + 0x29, 0xde, 0x60, 0x9c, 0x89, 0xb7, 0x62, 0x53, 0x9b, 0x60, 0x86, 0x7a, 0x2c, 0xe6, 0x4a, 0xa0, + 0xc9, 0x4b, 0x1a, 0xfc, 0x95, 0x0e, 0x1b, 0xd3, 0xbc, 0xcb, 0x10, 0x3d, 0x6b, 0xac, 0x03, 0x2e, + 0x03, 0x90, 0x8c, 0x3f, 0x3a, 0x7a, 0xbe, 0x76, 0xa1, 0xbe, 0xd4, 0x88, 0x8c, 0x8c, 0x26, 0xa0, + 0xf9, 0x88, 0x3d, 0xb2, 0x89, 0xc3, 0x8e, 0x31, 0xba, 0x1b, 0xfd, 0x9c, 0xff, 0xe9, 0x1a, 0x18, + 0x53, 0x8d, 0x85, 0x5f, 0x80, 0x89, 0x74, 0x09, 0x05, 0x5d, 0xe4, 0xfa, 0x16, 0x87, 0xbe, 0x74, + 0xec, 0xfb, 0x9b, 0x2d, 0x01, 0x5c, 0xe5, 0x38, 0x63, 0x1c, 0xab, 0x4d, 0xe8, 0x83, 0xb9, 0x21, + 0xb5, 0x19, 0xf4, 0x31, 0x67, 0xb8, 0x59, 0x95, 0x61, 0x4b, 0xe2, 0x8d, 0x93, 0xb8, 0x48, 0x0c, + 0x1f, 0x82, 0x91, 0xc8, 0x35, 0xf3, 0xb1, 0xab, 0x2f, 0x5d, 0xd4, 0xa1, 0xb0, 0x1f, 0x33, 0x84, + 0x71, 0x1c, 0x8b, 0x1f, 0xf0, 0x29, 0xa8, 0x2b, 0x61, 0x0a, 0x4d, 0x71, 0x4d, 0x97, 0xf4, 0x35, + 0xb5, 0x6c, 0x63, 0x14, 0x47, 0x3f, 0x61, 0x07, 0xcc, 0x16, 0x97, 0x7e, 0xd0, 0x32, 0x57, 0x7c, + 0xbd, 0x82, 0x62, 0x09, 0x7f, 0xe9, 0x90, 0x7d, 0x63, 0x06, 0xe7, 0x85, 0x70, 0x0f, 0x9c, 0x2c, + 0x8c, 0x92, 0x08, 0x71, 0xae, 0x6b, 0xfa, 0x5c, 0xab, 0x8e, 0xbd, 0x29, 0xc1, 0x06, 0xc4, 0x39, + 0x19, 0xc4, 0x00, 0xe6, 0x23, 0x29, 0x9a, 0xe6, 0x34, 0x57, 0xf4, 0x69, 0xd6, 0x22, 0xa8, 0x31, + 0x85, 0x33, 0x12, 0x68, 0x80, 0xf1, 0x54, 0xe5, 0x09, 0xad, 0x71, 0xed, 0x4d, 0x7d, 0xed, 0x8f, + 0x08, 0xb1, 0x8d, 0x3a, 0x4e, 0x1a, 0xf0, 0x73, 0x30, 0x91, 0x2e, 0x4b, 0xa1, 0x45, 0xae, 0x74, + 0x41, 0x47, 0x69, 0x9b, 0x18, 0x0c, 0xc7, 0x87, 0x7f, 0x0c, 0x2b, 0x2d, 0xf8, 0xff, 0x60, 0x2a, + 0x1b, 0xdb, 0x11, 0xe4, 0x8a, 0x97, 0x34, 0x14, 0xaf, 0x0a, 0xe8, 0xb6, 0x44, 0x1a, 0x93, 0x3b, + 0x69, 0x01, 0x7c, 0x01, 0xc6, 0x53, 0xa5, 0x2d, 0xf4, 0xbf, 0xda, 0x46, 0xaf, 0x0a, 0xdc, 0x36, + 0x83, 0x19, 0x63, 0x3b, 0x4a, 0x0b, 0x7e, 0x05, 0x26, 0x33, 0x99, 0x00, 0x9a, 0xe1, 0x7a, 0x2f, + 0x6b, 0xe8, 0x5d, 0x93, 0x48, 0xb9, 0xf7, 0x27, 0xac, 0x54, 0x1b, 0x3e, 0x06, 0x23, 0x91, 0x84, + 0xbb, 0xbc, 0xfa, 0xd2, 0xc7, 0x15, 0x94, 0x1a, 0x31, 0x18, 0xf6, 0xc0, 0x6c, 0x71, 0xb1, 0x0d, + 0x3d, 0xe4, 0x6a, 0x6f, 0x54, 0x50, 0x9b, 0xda, 0x3f, 0x27, 0xac, 0x02, 0x29, 0xfc, 0x39, 0x38, + 0x59, 0x98, 0x63, 0xa1, 0x86, 0xf6, 0x66, 0x8d, 0x47, 0x46, 0xd9, 0x41, 0x33, 0x56, 0x5e, 0x08, + 0x2d, 0x00, 0xf3, 0x99, 0x14, 0x3a, 0xc1, 0x89, 0xae, 0x56, 0x20, 0x4a, 0xf6, 0xd0, 0xb4, 0x95, + 0x15, 0xb1, 0xa5, 0x93, 0x2a, 0xdc, 0xa1, 0x7b, 0xda, 0x4b, 0x27, 0xd2, 0xcf, 0x77, 0xd1, 0x98, + 0xa5, 0xb4, 0x58, 0xd0, 0x48, 0x67, 0x70, 0xe8, 0x94, 0x76, 0xd0, 0x88, 0xd4, 0x0a, 0xaf, 0x1b, + 0x5b, 0x27, 0x7c, 0xaf, 0x0d, 0x66, 0x0a, 0x52, 0x34, 0xf4, 0x7e, 0xe5, 0x41, 0xd9, 0xe6, 0xe0, + 0x6d, 0x42, 0x93, 0x41, 0x89, 0x45, 0x6c, 0xbb, 0x66, 0x2b, 0x84, 0x68, 0x55, 0x7b, 0xbb, 0xae, + 0x09, 0xe8, 0x9a, 0x44, 0x1a, 0x93, 0x56, 0x5a, 0xc0, 0xc7, 0x5c, 0x2d, 0x23, 0xa2, 0xff, 0xd1, + 0x1f, 0x73, 0x8e, 0xdb, 0xe6, 0x30, 0x63, 0xcc, 0x52, 0x5a, 0x7c, 0x4b, 0xc9, 0x94, 0x88, 0xa7, + 0x48, 0x9a, 0x5b, 0x4a, 0x42, 0x8c, 0x18, 0xcc, 0xd7, 0x78, 0x51, 0x39, 0x0f, 0xdd, 0xd1, 0x5f, + 0xe3, 0x12, 0xbf, 0x29, 0xe0, 0x4f, 0x1d, 0xb7, 0x63, 0xcc, 0x58, 0x79, 0x21, 0x6c, 0x83, 0x13, + 0x45, 0xf5, 0x4a, 0x74, 0x57, 0x3b, 0x1e, 0x45, 0x54, 0x6b, 0x1c, 0xcd, 0x99, 0xa0, 0x95, 0x93, + 0x71, 0x67, 0x96, 0x26, 0x42, 0x8f, 0xf4, 0x9d, 0x59, 0x4a, 0x9f, 0x31, 0x91, 0xd6, 0xcf, 0xe7, + 0x53, 0x2d, 0x9b, 0xa2, 0xfb, 0xfa, 0xf3, 0x29, 0x71, 0x72, 0x0f, 0x29, 0x2d, 0x36, 0x34, 0x45, + 0x65, 0x51, 0xb4, 0xa0, 0x3d, 0x34, 0x0f, 0x04, 0xfc, 0x89, 0x40, 0x73, 0xaf, 0x06, 0xed, 0x9c, + 0x0c, 0xde, 0x02, 0x47, 0xb8, 0xd5, 0x4d, 0xae, 0xf8, 0x23, 0x0d, 0xc5, 0xdc, 0x5a, 0x0e, 0x82, + 0xeb, 0x60, 0x34, 0x2e, 0xa8, 0xa2, 0x25, 0xed, 0x65, 0xc7, 0x34, 0x6c, 0x50, 0xd2, 0x33, 0x46, + 0x76, 0xe5, 0x2f, 0xf8, 0x19, 0x18, 0x53, 0xeb, 0xac, 0x68, 0x45, 0x3b, 0x9a, 0x33, 0x65, 0x9b, + 0x02, 0x65, 0xd4, 0x77, 0x93, 0x06, 0x7c, 0x06, 0xea, 0x4a, 0x11, 0x16, 0x5d, 0xe0, 0x1a, 0x3f, + 0xd1, 0xd0, 0xf8, 0x98, 0xa3, 0xf8, 0x88, 0x81, 0x76, 0xfc, 0x9b, 0x79, 0x9f, 0x82, 0xfa, 0x2c, + 0x9a, 0xd3, 0xf6, 0x3e, 0x8f, 0x89, 0xf7, 0x82, 0x83, 0x63, 0xe7, 0x30, 0xdd, 0xce, 0x8a, 0xe0, + 0xff, 0x81, 0xa9, 0x6c, 0x21, 0x17, 0x5d, 0xd1, 0x5e, 0xab, 0xeb, 0x0c, 0xca, 0x9d, 0x25, 0x37, + 0x7f, 0x62, 0x2f, 0xd5, 0x66, 0xf1, 0xb2, 0xb8, 0xd6, 0x8b, 0x1e, 0x6b, 0xc7, 0x4b, 0x4e, 0xb1, + 0x95, 0xe0, 0x45, 0xbc, 0xdc, 0x2b, 0x90, 0xb2, 0x49, 0x4d, 0x2d, 0xde, 0x93, 0xda, 0x93, 0xaa, + 0xae, 0xda, 0x7a, 0x47, 0x59, 0xae, 0x8a, 0x4a, 0xbf, 0x8b, 0x5d, 0x74, 0xbe, 0xaa, 0xca, 0xad, + 0x2e, 0x76, 0x63, 0x95, 0xac, 0xc1, 0x3c, 0x5e, 0x61, 0x2d, 0x19, 0xfd, 0x97, 0xb6, 0xc7, 0x53, + 0x74, 0xc7, 0x59, 0xca, 0x4c, 0x27, 0x2f, 0x84, 0xdf, 0xd7, 0xc0, 0xd9, 0x03, 0x6b, 0xc7, 0x68, + 0x9e, 0x93, 0xde, 0xa9, 0x46, 0xfa, 0x4c, 0x6a, 0x91, 0x22, 0xa3, 0xd1, 0x19, 0xda, 0xc7, 0xbe, + 0x02, 0x0a, 0x2b, 0xef, 0xe8, 0xbf, 0xb5, 0x5d, 0x8b, 0xc2, 0x1c, 0x7d, 0x1f, 0xc1, 0x4e, 0x4e, + 0xc6, 0x7c, 0x58, 0x51, 0x95, 0x1d, 0x7d, 0xf0, 0x2e, 0x44, 0xd1, 0xab, 0xa9, 0x44, 0xd1, 0x2b, + 0xfd, 0x0c, 0x4c, 0xe7, 0x6a, 0xe2, 0xe8, 0x86, 0xf6, 0xd7, 0xc6, 0x53, 0x89, 0x8d, 0xb7, 0xe5, + 0x54, 0x37, 0x23, 0x61, 0x1b, 0xa7, 0xb8, 0x74, 0x8e, 0xae, 0x69, 0x6f, 0x1c, 0x11, 0xf9, 0x98, + 0xe1, 0x02, 0x2f, 0x36, 0x4e, 0xaf, 0x40, 0xca, 0x46, 0xae, 0xa8, 0xd2, 0x8e, 0x3e, 0xd1, 0x1e, + 0xb9, 0x2d, 0x09, 0x17, 0xe9, 0x81, 0xf0, 0xfe, 0x7e, 0x4e, 0xc6, 0x3e, 0xd4, 0xf2, 0x45, 0x79, + 0x74, 0x5d, 0x7b, 0xe8, 0xb6, 0x04, 0x38, 0xf1, 0x38, 0x53, 0x7e, 0x46, 0x02, 0xbf, 0x04, 0x13, + 0xe9, 0xda, 0x3d, 0x9a, 0xd5, 0x76, 0x67, 0x46, 0x0a, 0x68, 0x64, 0x14, 0x31, 0x5f, 0x99, 0x2d, + 0xef, 0xa3, 0x07, 0xda, 0xca, 0x45, 0x85, 0xe7, 0x05, 0x09, 0x7a, 0xc2, 0x57, 0x86, 0xa9, 0x36, + 0x4b, 0x03, 0xb3, 0x95, 0x38, 0x74, 0x56, 0x3b, 0x0d, 0x14, 0xe9, 0x64, 0x92, 0x7c, 0x4f, 0x86, + 0x69, 0x01, 0x7c, 0x02, 0x80, 0x92, 0xc2, 0x9e, 0xd6, 0x2e, 0x23, 0x24, 0xa9, 0xeb, 0x68, 0x18, + 0xa7, 0xac, 0x4f, 0x00, 0x48, 0xce, 0x01, 0xd0, 0x25, 0x6d, 0x65, 0x2f, 0x18, 0x88, 0xbf, 0xfd, + 0x28, 0x8d, 0x7e, 0xb2, 0x84, 0x26, 0x75, 0x40, 0x80, 0x6e, 0x69, 0x27, 0x34, 0x9f, 0x87, 0x24, + 0xd8, 0x90, 0x30, 0x63, 0xac, 0xaf, 0xb4, 0x58, 0xaa, 0x10, 0x17, 0x17, 0xd1, 0x87, 0xda, 0xa9, + 0x02, 0xd3, 0xf8, 0xd4, 0x09, 0xa9, 0x31, 0xd2, 0x97, 0xbf, 0xd8, 0xe7, 0x45, 0xfa, 0xb0, 0x04, + 0x9d, 0xd3, 0xfe, 0xbc, 0xe0, 0x2f, 0x1c, 0xef, 0xf3, 0x71, 0xaa, 0x36, 0xe1, 0x5d, 0x70, 0x94, + 0x9f, 0x57, 0xa0, 0x8f, 0xb8, 0xbe, 0x0b, 0x1a, 0xfa, 0x5e, 0xb2, 0xe7, 0x0d, 0x01, 0x83, 0x2d, + 0x70, 0x5c, 0x5e, 0x3c, 0xe3, 0x15, 0xc5, 0x83, 0xb2, 0x29, 0x71, 0x4f, 0xad, 0xb9, 0x29, 0x1e, + 0x37, 0x22, 0x1c, 0xdc, 0x05, 0x93, 0x99, 0xeb, 0x68, 0xbc, 0x80, 0x37, 0xb1, 0x74, 0x77, 0xa8, + 0x2a, 0x7e, 0x9d, 0xaa, 0xd9, 0xb2, 0x9f, 0x09, 0xd0, 0x8b, 0x81, 0x4f, 0x1e, 0xba, 0xfd, 0x5e, + 0x5a, 0x62, 0x8c, 0x63, 0xb5, 0x09, 0x17, 0xc1, 0x11, 0x1b, 0x53, 0x82, 0x8e, 0x71, 0x3b, 0xcf, + 0xe4, 0xaa, 0x83, 0xdb, 0x34, 0x70, 0xdc, 0xf6, 0x4b, 0xdc, 0xed, 0x13, 0x83, 0x3f, 0x09, 0x5f, + 0x82, 0xba, 0x72, 0xe7, 0x0d, 0x1d, 0xe7, 0x56, 0x5d, 0x2f, 0xb1, 0xea, 0x01, 0x1e, 0x3c, 0xdf, + 0xfd, 0x82, 0x90, 0x0e, 0xb7, 0x28, 0x6e, 0x19, 0xa3, 0x76, 0xf4, 0x13, 0xae, 0x83, 0x63, 0xe2, + 0x6a, 0x1c, 0x1a, 0xe1, 0x2a, 0x17, 0xcb, 0x54, 0xf2, 0x87, 0x85, 0x3e, 0xfe, 0xd3, 0x90, 0x78, + 0xf8, 0x12, 0x9c, 0x12, 0xc9, 0xcd, 0x8e, 0xe7, 0x75, 0x1c, 0xb7, 0x6d, 0xee, 0x3b, 0xae, 0xed, + 0xed, 0x9b, 0x36, 0x1e, 0x84, 0x68, 0x9b, 0xbf, 0xe8, 0xe9, 0xdc, 0x8b, 0x6e, 0xb8, 0xf4, 0xfa, + 0x55, 0xf1, 0x9e, 0x22, 0x35, 0x5a, 0x15, 0xe0, 0x2f, 0x38, 0xf6, 0x01, 0x1e, 0x84, 0x70, 0x0d, + 0x4c, 0x0a, 0xbd, 0x16, 0x61, 0x8b, 0xd9, 0x74, 0x6c, 0xb4, 0x5e, 0xae, 0x6d, 0x9c, 0x63, 0xd6, + 0x38, 0x64, 0xc3, 0x86, 0x4f, 0xc0, 0x8c, 0x54, 0xb2, 0x47, 0xac, 0x8e, 0xe9, 0xb8, 0xfc, 0x7a, + 0x1f, 0xda, 0xd0, 0x18, 0x7f, 0x91, 0x0f, 0xae, 0x31, 0xdc, 0x86, 0xfb, 0x80, 0xcd, 0xc5, 0x6b, + 0xd0, 0xc8, 0x29, 0x4b, 0xa6, 0xe6, 0xd3, 0xff, 0x68, 0x6a, 0x4e, 0xa6, 0xd9, 0xa2, 0x69, 0xba, + 0x05, 0x80, 0xa4, 0x74, 0xe8, 0x00, 0x3d, 0xd1, 0x30, 0x7b, 0x54, 0x28, 0x72, 0xe8, 0x00, 0xde, + 0x06, 0x75, 0x09, 0xee, 0xe2, 0x30, 0x44, 0x4f, 0x87, 0x8f, 0xde, 0x95, 0x25, 0x01, 0x16, 0x64, + 0x6b, 0xec, 0x71, 0xd8, 0x02, 0xe3, 0x12, 0xed, 0xf5, 0x5d, 0x1a, 0x0c, 0xd0, 0xa6, 0x06, 0xfb, + 0x98, 0x50, 0x20, 0x10, 0xf0, 0xc7, 0x5a, 0xb4, 0x36, 0x0a, 0x2e, 0x55, 0xa2, 0x67, 0x7c, 0xc0, + 0xb6, 0x4a, 0x06, 0x8c, 0xe7, 0xbd, 0x6c, 0xf8, 0xb7, 0x23, 0x74, 0xbc, 0xd5, 0x8a, 0xbb, 0xe4, + 0x82, 0xca, 0xc9, 0xe1, 0x53, 0x20, 0xd2, 0x65, 0xb3, 0x4b, 0xdc, 0xb6, 0xb8, 0xa9, 0x19, 0x52, + 0x3c, 0x40, 0xcf, 0xcb, 0xc7, 0x65, 0x9a, 0x03, 0x9f, 0x72, 0xdc, 0xf3, 0xdd, 0x6d, 0x8a, 0x07, + 0xf0, 0x4e, 0x34, 0xb8, 0x2c, 0x51, 0x20, 0xe8, 0x33, 0x8d, 0xc1, 0x11, 0xa3, 0xcb, 0xd2, 0x00, + 0x02, 0x17, 0xc0, 0x91, 0x3d, 0xaf, 0x1f, 0xa0, 0xd1, 0x72, 0x72, 0xfe, 0x20, 0x5c, 0x02, 0x47, + 0xf9, 0x05, 0x53, 0x04, 0x34, 0x98, 0xc4, 0xa3, 0xf0, 0x6b, 0x30, 0x9e, 0xba, 0x94, 0x8a, 0xce, + 0xf0, 0x21, 0x5f, 0x29, 0x19, 0xf2, 0x4d, 0x86, 0x79, 0xbe, 0xfb, 0x25, 0xc1, 0x01, 0x1f, 0x67, + 0xa5, 0x6d, 0xd4, 0x7b, 0x49, 0x03, 0x3e, 0x02, 0x53, 0x3e, 0x0e, 0xa8, 0x4b, 0x02, 0x53, 0x8c, + 0x85, 0x63, 0x23, 0x43, 0xc3, 0xbc, 0x09, 0x89, 0xe2, 0x13, 0xb8, 0x61, 0xc3, 0x1e, 0x98, 0xca, + 0xde, 0x84, 0x45, 0x2d, 0x6e, 0xea, 0x6a, 0x89, 0xa9, 0x5b, 0x09, 0x2c, 0x5e, 0x16, 0x19, 0x99, + 0x31, 0xe9, 0xa7, 0x05, 0xf0, 0x3a, 0x38, 0xfe, 0xba, 0x8f, 0x03, 0x4a, 0x02, 0x34, 0xa6, 0x61, + 0x6d, 0xf4, 0x30, 0xfc, 0x25, 0x98, 0x2d, 0xbe, 0x7a, 0x8b, 0x6e, 0x72, 0x63, 0x3f, 0x2d, 0x31, + 0x36, 0xc9, 0x7c, 0x36, 0x19, 0x34, 0x36, 0xb8, 0x40, 0x6e, 0xcc, 0x84, 0x79, 0x21, 0xbc, 0x0f, + 0x8e, 0x84, 0x5d, 0x8f, 0xa2, 0x71, 0x4e, 0x77, 0xa9, 0x8c, 0xae, 0xeb, 0x51, 0xa1, 0xbf, 0xeb, + 0x51, 0x83, 0x23, 0x59, 0x00, 0xe2, 0xce, 0x6a, 0x42, 0x27, 0x00, 0xb1, 0x27, 0xd9, 0x42, 0xe5, + 0x4b, 0x67, 0x52, 0x63, 0xa1, 0xb2, 0x07, 0xe7, 0xff, 0x58, 0x03, 0xb3, 0x9b, 0x7d, 0xb6, 0xc8, + 0xab, 0x9f, 0x29, 0x7e, 0x0d, 0xa6, 0x7b, 0x1c, 0x6a, 0x7a, 0x3e, 0x09, 0xc4, 0x61, 0x27, 0x3a, + 0xc4, 0xcf, 0xfb, 0x2e, 0x97, 0x9f, 0xf7, 0x09, 0xd6, 0xe7, 0x11, 0xd2, 0x98, 0xea, 0xa5, 0x05, + 0xe1, 0xfc, 0xef, 0x6b, 0x60, 0x2e, 0x67, 0x9b, 0x3c, 0x61, 0xdc, 0x07, 0x8d, 0x2c, 0xb7, 0x19, + 0xc8, 0xce, 0xe8, 0xd0, 0x71, 0xb9, 0xba, 0x11, 0x52, 0x83, 0x81, 0x7a, 0xc5, 0x1d, 0xe1, 0xfc, + 0x9f, 0x27, 0xc0, 0x64, 0x06, 0x05, 0x1d, 0xe5, 0xcc, 0x08, 0xdb, 0x89, 0x45, 0xb2, 0xc8, 0x78, + 0xb5, 0xdc, 0x8e, 0xf8, 0xdc, 0x2b, 0x56, 0xba, 0xfe, 0x5e, 0x7c, 0x68, 0xa4, 0x48, 0xe1, 0x6f, + 0x6a, 0xe0, 0x5c, 0xf1, 0x2d, 0x8e, 0x84, 0xf5, 0x50, 0xc9, 0xd7, 0x71, 0x96, 0x55, 0xa9, 0xa8, + 0xab, 0xf4, 0xa7, 0xf1, 0xf0, 0x6e, 0xf8, 0x1d, 0x38, 0x53, 0x70, 0x0d, 0x24, 0xb1, 0x41, 0x1c, + 0x1e, 0xde, 0xd2, 0xb6, 0x21, 0xce, 0xf9, 0x55, 0x0b, 0x4e, 0xe1, 0x61, 0x9d, 0x70, 0x47, 0x39, + 0x3c, 0x4b, 0x58, 0x8f, 0x96, 0x7c, 0x7a, 0x64, 0x59, 0x55, 0xb2, 0xe8, 0xf4, 0x2c, 0xe1, 0x78, + 0x0b, 0x1a, 0xb9, 0xeb, 0x26, 0x09, 0x97, 0xc8, 0x0a, 0x57, 0xca, 0xb9, 0x32, 0x67, 0x53, 0x2a, + 0x27, 0xda, 0x19, 0xd2, 0x07, 0x7f, 0x5b, 0x03, 0xe7, 0x8a, 0xaf, 0xaa, 0x24, 0x16, 0x1c, 0xe7, + 0x16, 0xdc, 0x2d, 0xb7, 0xa0, 0xe0, 0x3c, 0x45, 0xb5, 0xe2, 0x8c, 0x75, 0x40, 0x3f, 0xdc, 0x07, + 0xa7, 0xb2, 0xb7, 0x5d, 0x12, 0x13, 0x46, 0xb8, 0x09, 0xcb, 0x15, 0x4c, 0xe0, 0x1a, 0x54, 0xf6, + 0x39, 0xab, 0xb8, 0x0b, 0x52, 0x80, 0x32, 0x77, 0x5c, 0x12, 0xde, 0xd1, 0x92, 0xe3, 0xef, 0x1c, + 0x6f, 0x6e, 0xba, 0x67, 0xad, 0xc2, 0x1e, 0x68, 0x2b, 0x47, 0x4a, 0x09, 0x1f, 0x28, 0xf9, 0xd8, + 0xcf, 0xf1, 0xa9, 0x54, 0xf1, 0xf1, 0x49, 0xc2, 0xf2, 0xab, 0x1a, 0x38, 0x5b, 0x74, 0x91, 0x26, + 0x61, 0xac, 0x73, 0xc6, 0xdb, 0xfa, 0x8c, 0xf1, 0x37, 0xaf, 0x4a, 0xdd, 0xb0, 0x86, 0xf6, 0xc2, + 0x6f, 0xc1, 0xe9, 0xfc, 0x3d, 0x9c, 0xc4, 0x80, 0x31, 0xdd, 0x1d, 0xbc, 0x16, 0x2b, 0x69, 0x71, + 0x1d, 0xa9, 0x1d, 0x6c, 0x0d, 0xeb, 0x84, 0xdf, 0xd7, 0xc0, 0x99, 0x82, 0x6b, 0x50, 0x89, 0x01, + 0xe3, 0x55, 0x47, 0xa0, 0xd0, 0x87, 0x34, 0xac, 0xa1, 0xbd, 0x6c, 0x83, 0xe7, 0xee, 0x11, 0x25, + 0xfc, 0x13, 0xba, 0x1b, 0x3c, 0x53, 0xc6, 0x48, 0x6d, 0xf0, 0x70, 0x48, 0x1f, 0xdc, 0x03, 0x27, + 0x0a, 0xe7, 0x7d, 0x52, 0x37, 0x64, 0x14, 0xce, 0x37, 0x0c, 0xf3, 0xf3, 0x4c, 0xc0, 0x4c, 0x72, + 0x63, 0x29, 0x21, 0x9a, 0xd2, 0x5d, 0xd2, 0x51, 0x75, 0x21, 0xb5, 0xa4, 0xfb, 0x59, 0xe1, 0x6a, + 0x1d, 0x8c, 0xc6, 0xca, 0xe7, 0xff, 0x35, 0x1e, 0x85, 0xee, 0x5c, 0x08, 0x85, 0xbb, 0x8a, 0xeb, + 0xc6, 0xb6, 0xbc, 0xb0, 0x23, 0x43, 0xe5, 0x0d, 0xdd, 0x90, 0x9d, 0x5c, 0x14, 0xe1, 0xf0, 0xf5, + 0xf7, 0x8c, 0x49, 0x9c, 0x16, 0xc1, 0x1f, 0x6a, 0x4a, 0x8c, 0x4a, 0xb9, 0x50, 0x49, 0x29, 0xe2, + 0xe4, 0xfd, 0x8a, 0x94, 0xea, 0xa1, 0x74, 0xc4, 0x8d, 0xf0, 0x90, 0x3e, 0xf8, 0x0d, 0x38, 0x55, + 0x10, 0x27, 0xa5, 0x01, 0x87, 0x75, 0x1d, 0x78, 0xca, 0x80, 0xa4, 0x5e, 0x16, 0xd1, 0xcf, 0xe2, + 0xc2, 0x1e, 0x68, 0xf2, 0x42, 0x89, 0x20, 0x97, 0x94, 0x47, 0x4b, 0x8a, 0xa3, 0xc5, 0x94, 0x31, + 0xd3, 0x38, 0x56, 0x05, 0x70, 0x1f, 0xcc, 0xe5, 0x22, 0xa4, 0x24, 0x3a, 0xa6, 0x9b, 0x84, 0x08, + 0xa2, 0xec, 0x05, 0x8e, 0x88, 0xf0, 0xe4, 0x4e, 0x51, 0x07, 0xfc, 0xb5, 0xea, 0x3c, 0x8a, 0xe6, + 0x56, 0xc4, 0xc6, 0x96, 0x2e, 0x7d, 0xd1, 0x8d, 0x83, 0xc8, 0x84, 0x53, 0xd6, 0xb0, 0x4e, 0x48, + 0x95, 0xab, 0x15, 0x32, 0x36, 0x4a, 0xfe, 0x11, 0x5d, 0xe7, 0x95, 0xe1, 0x17, 0x77, 0x41, 0x22, + 0xea, 0x13, 0x56, 0x81, 0x1c, 0xbe, 0x56, 0x6e, 0x58, 0xa4, 0x26, 0x77, 0x54, 0xd7, 0x65, 0xa7, + 0x49, 0xd3, 0x53, 0x3c, 0x63, 0xe5, 0xc5, 0x10, 0x2b, 0x17, 0x5d, 0x24, 0x19, 0x28, 0x39, 0xf8, + 0x19, 0x42, 0x16, 0xf3, 0xc4, 0xd7, 0x1f, 0x24, 0xc5, 0x77, 0xa0, 0x51, 0x14, 0x11, 0x25, 0x9b, + 0x08, 0x87, 0xf7, 0xaa, 0xb2, 0x25, 0x85, 0xe0, 0x88, 0x76, 0xce, 0x2a, 0xee, 0x82, 0x6f, 0x01, + 0xca, 0x87, 0x43, 0xc9, 0x3e, 0x56, 0x6d, 0xa3, 0x66, 0x23, 0x62, 0xb2, 0x51, 0xad, 0xc2, 0x1e, + 0xf8, 0xad, 0x92, 0x63, 0xe5, 0xbc, 0xc4, 0xf8, 0xbb, 0xbd, 0x7a, 0xde, 0x4d, 0xcc, 0x59, 0xc5, + 0x5d, 0x6c, 0x1b, 0xe7, 0xe2, 0xa0, 0x24, 0x9f, 0xa8, 0xb6, 0x8d, 0xb3, 0x15, 0xfd, 0x78, 0x1b, + 0x87, 0x45, 0x1d, 0x90, 0x80, 0xe9, 0xfc, 0x54, 0x4f, 0x56, 0x8b, 0x04, 0xf9, 0x29, 0x9e, 0x0c, + 0x33, 0x53, 0xbb, 0x03, 0xa6, 0x92, 0x08, 0x28, 0x59, 0xa6, 0xaa, 0x2d, 0xdf, 0xb8, 0xc4, 0x1e, + 0x2f, 0xdf, 0x7e, 0x4a, 0xb2, 0x0a, 0xc0, 0x48, 0xf4, 0xfd, 0xb9, 0xf4, 0xbb, 0xc3, 0x60, 0x2a, + 0xfe, 0x64, 0xdd, 0x16, 0x8a, 0xe0, 0x5f, 0x6b, 0xe0, 0x98, 0xa8, 0x1d, 0x40, 0x8d, 0xbc, 0xb5, + 0xf8, 0x9e, 0x6f, 0x63, 0xf9, 0x1d, 0x90, 0xc2, 0xa8, 0xf9, 0xe5, 0x1f, 0xfe, 0xf6, 0x8f, 0x3f, + 0x1c, 0xba, 0x32, 0xdf, 0xe4, 0x7f, 0x01, 0x97, 0x5f, 0xf1, 0xe1, 0xc2, 0x37, 0xca, 0x37, 0xfe, + 0x9d, 0x8b, 0xdf, 0xca, 0x2b, 0xcf, 0x2d, 0x3b, 0x5c, 0x11, 0x35, 0x8d, 0x95, 0xda, 0x45, 0x6e, + 0xba, 0x18, 0x06, 0x1d, 0xd3, 0x8b, 0xcb, 0x09, 0x8d, 0xe5, 0x77, 0x40, 0xbe, 0xab, 0xe9, 0xe2, + 0xeb, 0x7d, 0xa5, 0x76, 0x71, 0xf5, 0xef, 0x35, 0xf0, 0x81, 0xe5, 0xf5, 0x4a, 0xb9, 0x57, 0x4f, + 0x66, 0x27, 0x6c, 0x2b, 0xf0, 0xa8, 0xb7, 0x55, 0xfb, 0x6a, 0x5d, 0x42, 0xdb, 0x5e, 0x17, 0xbb, + 0xed, 0xa6, 0x17, 0xb4, 0x17, 0xda, 0xc4, 0xe5, 0x15, 0x95, 0xe8, 0x7e, 0xb8, 0xef, 0x84, 0xc3, + 0xaf, 0x8b, 0xdf, 0x8a, 0x7e, 0xfc, 0xe9, 0xd0, 0xe1, 0xc7, 0xad, 0xd6, 0x5f, 0x0e, 0x9d, 0x17, + 0x4c, 0xcd, 0x96, 0xad, 0x5c, 0x7a, 0x6e, 0xbe, 0x5c, 0x6c, 0x4a, 0xe2, 0xf0, 0xa7, 0xe8, 0x91, + 0x57, 0x2d, 0x3b, 0x7c, 0x15, 0x3f, 0xf2, 0xea, 0xe5, 0xe2, 0xab, 0xe8, 0x91, 0x9d, 0x63, 0xdc, + 0x80, 0x2b, 0xff, 0x0e, 0x00, 0x00, 0xff, 0xff, 0xa8, 0x68, 0xc3, 0x82, 0x42, 0x40, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/hotel_group_view_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/hotel_group_view_service.pb.go new file mode 100644 index 000000000..e65920481 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/hotel_group_view_service.pb.go @@ -0,0 +1,174 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/hotel_group_view_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [HotelGroupViewService.GetHotelGroupView][google.ads.googleads.v0.services.HotelGroupViewService.GetHotelGroupView]. +type GetHotelGroupViewRequest struct { + // Resource name of the Hotel Group View to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetHotelGroupViewRequest) Reset() { *m = GetHotelGroupViewRequest{} } +func (m *GetHotelGroupViewRequest) String() string { return proto.CompactTextString(m) } +func (*GetHotelGroupViewRequest) ProtoMessage() {} +func (*GetHotelGroupViewRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_hotel_group_view_service_d553180658033695, []int{0} +} +func (m *GetHotelGroupViewRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetHotelGroupViewRequest.Unmarshal(m, b) +} +func (m *GetHotelGroupViewRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetHotelGroupViewRequest.Marshal(b, m, deterministic) +} +func (dst *GetHotelGroupViewRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetHotelGroupViewRequest.Merge(dst, src) +} +func (m *GetHotelGroupViewRequest) XXX_Size() int { + return xxx_messageInfo_GetHotelGroupViewRequest.Size(m) +} +func (m *GetHotelGroupViewRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetHotelGroupViewRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetHotelGroupViewRequest proto.InternalMessageInfo + +func (m *GetHotelGroupViewRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetHotelGroupViewRequest)(nil), "google.ads.googleads.v0.services.GetHotelGroupViewRequest") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// HotelGroupViewServiceClient is the client API for HotelGroupViewService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type HotelGroupViewServiceClient interface { + // Returns the requested Hotel Group View in full detail. + GetHotelGroupView(ctx context.Context, in *GetHotelGroupViewRequest, opts ...grpc.CallOption) (*resources.HotelGroupView, error) +} + +type hotelGroupViewServiceClient struct { + cc *grpc.ClientConn +} + +func NewHotelGroupViewServiceClient(cc *grpc.ClientConn) HotelGroupViewServiceClient { + return &hotelGroupViewServiceClient{cc} +} + +func (c *hotelGroupViewServiceClient) GetHotelGroupView(ctx context.Context, in *GetHotelGroupViewRequest, opts ...grpc.CallOption) (*resources.HotelGroupView, error) { + out := new(resources.HotelGroupView) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.HotelGroupViewService/GetHotelGroupView", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// HotelGroupViewServiceServer is the server API for HotelGroupViewService service. +type HotelGroupViewServiceServer interface { + // Returns the requested Hotel Group View in full detail. + GetHotelGroupView(context.Context, *GetHotelGroupViewRequest) (*resources.HotelGroupView, error) +} + +func RegisterHotelGroupViewServiceServer(s *grpc.Server, srv HotelGroupViewServiceServer) { + s.RegisterService(&_HotelGroupViewService_serviceDesc, srv) +} + +func _HotelGroupViewService_GetHotelGroupView_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetHotelGroupViewRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HotelGroupViewServiceServer).GetHotelGroupView(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.HotelGroupViewService/GetHotelGroupView", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HotelGroupViewServiceServer).GetHotelGroupView(ctx, req.(*GetHotelGroupViewRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _HotelGroupViewService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.HotelGroupViewService", + HandlerType: (*HotelGroupViewServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetHotelGroupView", + Handler: _HotelGroupViewService_GetHotelGroupView_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/hotel_group_view_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/hotel_group_view_service.proto", fileDescriptor_hotel_group_view_service_d553180658033695) +} + +var fileDescriptor_hotel_group_view_service_d553180658033695 = []byte{ + // 351 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x4f, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xe2, 0xd4, + 0xa2, 0xb2, 0xcc, 0xe4, 0xd4, 0x62, 0xfd, 0x8c, 0xfc, 0x92, 0xd4, 0x9c, 0xf8, 0xf4, 0xa2, 0xfc, + 0xd2, 0x82, 0xf8, 0xb2, 0xcc, 0xd4, 0xf2, 0x78, 0xa8, 0x8c, 0x5e, 0x41, 0x51, 0x7e, 0x49, 0xbe, + 0x90, 0x02, 0x44, 0x97, 0x5e, 0x62, 0x4a, 0xb1, 0x1e, 0xdc, 0x00, 0xbd, 0x32, 0x03, 0x3d, 0x98, + 0x01, 0x52, 0x16, 0xb8, 0xac, 0x28, 0x4a, 0x2d, 0xce, 0x2f, 0x2d, 0xc2, 0x66, 0x07, 0xc4, 0x6c, + 0x29, 0x19, 0x98, 0xce, 0x82, 0x4c, 0xfd, 0xc4, 0xbc, 0xbc, 0xfc, 0x92, 0xc4, 0x92, 0xcc, 0xfc, + 0xbc, 0x62, 0x88, 0xac, 0x92, 0x3d, 0x97, 0x84, 0x7b, 0x6a, 0x89, 0x07, 0x48, 0xab, 0x3b, 0x48, + 0x67, 0x58, 0x66, 0x6a, 0x79, 0x50, 0x6a, 0x61, 0x69, 0x6a, 0x71, 0x89, 0x90, 0x32, 0x17, 0x2f, + 0xcc, 0xf4, 0xf8, 0xbc, 0xc4, 0xdc, 0x54, 0x09, 0x46, 0x05, 0x46, 0x0d, 0xce, 0x20, 0x1e, 0x98, + 0xa0, 0x5f, 0x62, 0x6e, 0xaa, 0xd1, 0x75, 0x46, 0x2e, 0x51, 0x54, 0xed, 0xc1, 0x10, 0x37, 0x0b, + 0xed, 0x65, 0xe4, 0x12, 0xc4, 0x30, 0x5b, 0xc8, 0x4a, 0x8f, 0x90, 0x5f, 0xf5, 0x70, 0x39, 0x48, + 0xca, 0x10, 0xa7, 0x5e, 0x78, 0x28, 0xe8, 0xa1, 0xea, 0x54, 0xb2, 0x6c, 0xba, 0xfc, 0x64, 0x32, + 0x93, 0xb1, 0x90, 0x21, 0x28, 0xac, 0xaa, 0x51, 0xbc, 0x63, 0x9b, 0x5c, 0x5a, 0x5c, 0x92, 0x9f, + 0x9b, 0x5a, 0x54, 0xac, 0xaf, 0x05, 0x09, 0x3c, 0xb8, 0xb6, 0x62, 0x7d, 0xad, 0x5a, 0xa7, 0x5b, + 0x8c, 0x5c, 0x2a, 0xc9, 0xf9, 0xb9, 0x04, 0xdd, 0xeb, 0x24, 0x85, 0xd5, 0xff, 0x01, 0xa0, 0xf0, + 0x0d, 0x60, 0x8c, 0xf2, 0x80, 0xea, 0x4f, 0xcf, 0xcf, 0x49, 0xcc, 0x4b, 0xd7, 0xcb, 0x2f, 0x4a, + 0xd7, 0x4f, 0x4f, 0xcd, 0x03, 0x87, 0x3e, 0x2c, 0x26, 0x0b, 0x32, 0x8b, 0x71, 0xa7, 0x1d, 0x6b, + 0x18, 0x63, 0x11, 0x13, 0xb3, 0xbb, 0xa3, 0xe3, 0x2a, 0x26, 0x05, 0x77, 0x88, 0x81, 0x8e, 0x29, + 0xc5, 0x7a, 0x10, 0x26, 0x88, 0x15, 0x66, 0xa0, 0x07, 0xb5, 0xb8, 0xf8, 0x14, 0x4c, 0x49, 0x8c, + 0x63, 0x4a, 0x71, 0x0c, 0x5c, 0x49, 0x4c, 0x98, 0x41, 0x0c, 0x4c, 0x49, 0x12, 0x1b, 0xd8, 0x01, + 0xc6, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0xd5, 0xe6, 0xf0, 0xd1, 0xbb, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/hotel_performance_view_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/hotel_performance_view_service.pb.go new file mode 100644 index 000000000..3f1c11eee --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/hotel_performance_view_service.pb.go @@ -0,0 +1,175 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/hotel_performance_view_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [HotelPerformanceViewService.GetHotelPerformanceView][google.ads.googleads.v0.services.HotelPerformanceViewService.GetHotelPerformanceView]. +type GetHotelPerformanceViewRequest struct { + // Resource name of the Hotel Performance View to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetHotelPerformanceViewRequest) Reset() { *m = GetHotelPerformanceViewRequest{} } +func (m *GetHotelPerformanceViewRequest) String() string { return proto.CompactTextString(m) } +func (*GetHotelPerformanceViewRequest) ProtoMessage() {} +func (*GetHotelPerformanceViewRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_hotel_performance_view_service_91d056d973d5a9fa, []int{0} +} +func (m *GetHotelPerformanceViewRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetHotelPerformanceViewRequest.Unmarshal(m, b) +} +func (m *GetHotelPerformanceViewRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetHotelPerformanceViewRequest.Marshal(b, m, deterministic) +} +func (dst *GetHotelPerformanceViewRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetHotelPerformanceViewRequest.Merge(dst, src) +} +func (m *GetHotelPerformanceViewRequest) XXX_Size() int { + return xxx_messageInfo_GetHotelPerformanceViewRequest.Size(m) +} +func (m *GetHotelPerformanceViewRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetHotelPerformanceViewRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetHotelPerformanceViewRequest proto.InternalMessageInfo + +func (m *GetHotelPerformanceViewRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetHotelPerformanceViewRequest)(nil), "google.ads.googleads.v0.services.GetHotelPerformanceViewRequest") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// HotelPerformanceViewServiceClient is the client API for HotelPerformanceViewService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type HotelPerformanceViewServiceClient interface { + // Returns the requested Hotel Performance View in full detail. + GetHotelPerformanceView(ctx context.Context, in *GetHotelPerformanceViewRequest, opts ...grpc.CallOption) (*resources.HotelPerformanceView, error) +} + +type hotelPerformanceViewServiceClient struct { + cc *grpc.ClientConn +} + +func NewHotelPerformanceViewServiceClient(cc *grpc.ClientConn) HotelPerformanceViewServiceClient { + return &hotelPerformanceViewServiceClient{cc} +} + +func (c *hotelPerformanceViewServiceClient) GetHotelPerformanceView(ctx context.Context, in *GetHotelPerformanceViewRequest, opts ...grpc.CallOption) (*resources.HotelPerformanceView, error) { + out := new(resources.HotelPerformanceView) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.HotelPerformanceViewService/GetHotelPerformanceView", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// HotelPerformanceViewServiceServer is the server API for HotelPerformanceViewService service. +type HotelPerformanceViewServiceServer interface { + // Returns the requested Hotel Performance View in full detail. + GetHotelPerformanceView(context.Context, *GetHotelPerformanceViewRequest) (*resources.HotelPerformanceView, error) +} + +func RegisterHotelPerformanceViewServiceServer(s *grpc.Server, srv HotelPerformanceViewServiceServer) { + s.RegisterService(&_HotelPerformanceViewService_serviceDesc, srv) +} + +func _HotelPerformanceViewService_GetHotelPerformanceView_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetHotelPerformanceViewRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HotelPerformanceViewServiceServer).GetHotelPerformanceView(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.HotelPerformanceViewService/GetHotelPerformanceView", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HotelPerformanceViewServiceServer).GetHotelPerformanceView(ctx, req.(*GetHotelPerformanceViewRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _HotelPerformanceViewService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.HotelPerformanceViewService", + HandlerType: (*HotelPerformanceViewServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetHotelPerformanceView", + Handler: _HotelPerformanceViewService_GetHotelPerformanceView_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/hotel_performance_view_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/hotel_performance_view_service.proto", fileDescriptor_hotel_performance_view_service_91d056d973d5a9fa) +} + +var fileDescriptor_hotel_performance_view_service_91d056d973d5a9fa = []byte{ + // 355 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x72, 0x4d, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xe2, 0xd4, + 0xa2, 0xb2, 0xcc, 0xe4, 0xd4, 0x62, 0xfd, 0x8c, 0xfc, 0x92, 0xd4, 0x9c, 0xf8, 0x82, 0xd4, 0xa2, + 0xb4, 0xfc, 0xa2, 0xdc, 0xc4, 0xbc, 0xe4, 0xd4, 0xf8, 0xb2, 0xcc, 0xd4, 0xf2, 0x78, 0xa8, 0xbc, + 0x5e, 0x41, 0x51, 0x7e, 0x49, 0xbe, 0x90, 0x02, 0x44, 0xaf, 0x5e, 0x62, 0x4a, 0xb1, 0x1e, 0xdc, + 0x18, 0xbd, 0x32, 0x03, 0x3d, 0x98, 0x31, 0x52, 0x76, 0xb8, 0x2c, 0x2a, 0x4a, 0x2d, 0xce, 0x2f, + 0x2d, 0xc2, 0x6d, 0x13, 0xc4, 0x06, 0x29, 0x19, 0x98, 0xfe, 0x82, 0x4c, 0xfd, 0xc4, 0xbc, 0xbc, + 0xfc, 0x92, 0xc4, 0x92, 0xcc, 0xfc, 0xbc, 0x62, 0x88, 0xac, 0x92, 0x2b, 0x97, 0x9c, 0x7b, 0x6a, + 0x89, 0x07, 0xc8, 0x80, 0x00, 0x84, 0xfe, 0xb0, 0xcc, 0xd4, 0xf2, 0xa0, 0xd4, 0xc2, 0xd2, 0xd4, + 0xe2, 0x12, 0x21, 0x65, 0x2e, 0x5e, 0x98, 0x4d, 0xf1, 0x79, 0x89, 0xb9, 0xa9, 0x12, 0x8c, 0x0a, + 0x8c, 0x1a, 0x9c, 0x41, 0x3c, 0x30, 0x41, 0xbf, 0xc4, 0xdc, 0x54, 0xa3, 0x4f, 0x8c, 0x5c, 0xd2, + 0xd8, 0x0c, 0x09, 0x86, 0xf8, 0x42, 0xe8, 0x12, 0x23, 0x97, 0x38, 0x0e, 0x7b, 0x84, 0x1c, 0xf4, + 0x08, 0x85, 0x81, 0x1e, 0x7e, 0x27, 0x4a, 0x99, 0xe3, 0x34, 0x01, 0x1e, 0x46, 0x7a, 0xd8, 0xf4, + 0x2b, 0xd9, 0x34, 0x5d, 0x7e, 0x32, 0x99, 0xc9, 0x4c, 0xc8, 0x04, 0x14, 0x9e, 0xd5, 0x28, 0xde, + 0xb4, 0x4d, 0x2e, 0x2d, 0x2e, 0xc9, 0xcf, 0x4d, 0x2d, 0x2a, 0xd6, 0xd7, 0x82, 0x04, 0x30, 0x9a, + 0xe6, 0x5a, 0xa7, 0x07, 0x8c, 0x5c, 0x2a, 0xc9, 0xf9, 0xb9, 0x04, 0x9d, 0xef, 0xa4, 0x80, 0x27, + 0x68, 0x02, 0x40, 0xd1, 0x10, 0xc0, 0x18, 0xe5, 0x01, 0x35, 0x25, 0x3d, 0x3f, 0x27, 0x31, 0x2f, + 0x5d, 0x2f, 0xbf, 0x28, 0x5d, 0x3f, 0x3d, 0x35, 0x0f, 0x1c, 0x49, 0xb0, 0x68, 0x2f, 0xc8, 0x2c, + 0xc6, 0x9d, 0xdc, 0xac, 0x61, 0x8c, 0x45, 0x4c, 0xcc, 0xee, 0x8e, 0x8e, 0xab, 0x98, 0x14, 0xdc, + 0x21, 0x06, 0x3a, 0xa6, 0x14, 0xeb, 0x41, 0x98, 0x20, 0x56, 0x98, 0x81, 0x1e, 0xd4, 0xe2, 0xe2, + 0x53, 0x30, 0x25, 0x31, 0x8e, 0x29, 0xc5, 0x31, 0x70, 0x25, 0x31, 0x61, 0x06, 0x31, 0x30, 0x25, + 0x49, 0x6c, 0x60, 0x07, 0x18, 0x03, 0x02, 0x00, 0x00, 0xff, 0xff, 0x3e, 0x98, 0x29, 0x9f, 0xee, + 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/keyword_plan_ad_group_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/keyword_plan_ad_group_service.pb.go new file mode 100644 index 000000000..3aa3b748f --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/keyword_plan_ad_group_service.pb.go @@ -0,0 +1,549 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/keyword_plan_ad_group_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" +import field_mask "google.golang.org/genproto/protobuf/field_mask" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [KeywordPlanAdGroupService.GetKeywordPlanAdGroup][google.ads.googleads.v0.services.KeywordPlanAdGroupService.GetKeywordPlanAdGroup]. +type GetKeywordPlanAdGroupRequest struct { + // The resource name of the Keyword Plan ad group to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetKeywordPlanAdGroupRequest) Reset() { *m = GetKeywordPlanAdGroupRequest{} } +func (m *GetKeywordPlanAdGroupRequest) String() string { return proto.CompactTextString(m) } +func (*GetKeywordPlanAdGroupRequest) ProtoMessage() {} +func (*GetKeywordPlanAdGroupRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_ad_group_service_4b428822531a4896, []int{0} +} +func (m *GetKeywordPlanAdGroupRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetKeywordPlanAdGroupRequest.Unmarshal(m, b) +} +func (m *GetKeywordPlanAdGroupRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetKeywordPlanAdGroupRequest.Marshal(b, m, deterministic) +} +func (dst *GetKeywordPlanAdGroupRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetKeywordPlanAdGroupRequest.Merge(dst, src) +} +func (m *GetKeywordPlanAdGroupRequest) XXX_Size() int { + return xxx_messageInfo_GetKeywordPlanAdGroupRequest.Size(m) +} +func (m *GetKeywordPlanAdGroupRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetKeywordPlanAdGroupRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetKeywordPlanAdGroupRequest proto.InternalMessageInfo + +func (m *GetKeywordPlanAdGroupRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +// Request message for [KeywordPlanAdGroupService.MutateKeywordPlanAdGroups][google.ads.googleads.v0.services.KeywordPlanAdGroupService.MutateKeywordPlanAdGroups]. +type MutateKeywordPlanAdGroupsRequest struct { + // The ID of the customer whose Keyword Plan ad groups are being modified. + CustomerId string `protobuf:"bytes,1,opt,name=customer_id,json=customerId,proto3" json:"customer_id,omitempty"` + // The list of operations to perform on individual Keyword Plan ad groups. + Operations []*KeywordPlanAdGroupOperation `protobuf:"bytes,2,rep,name=operations,proto3" json:"operations,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateKeywordPlanAdGroupsRequest) Reset() { *m = MutateKeywordPlanAdGroupsRequest{} } +func (m *MutateKeywordPlanAdGroupsRequest) String() string { return proto.CompactTextString(m) } +func (*MutateKeywordPlanAdGroupsRequest) ProtoMessage() {} +func (*MutateKeywordPlanAdGroupsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_ad_group_service_4b428822531a4896, []int{1} +} +func (m *MutateKeywordPlanAdGroupsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateKeywordPlanAdGroupsRequest.Unmarshal(m, b) +} +func (m *MutateKeywordPlanAdGroupsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateKeywordPlanAdGroupsRequest.Marshal(b, m, deterministic) +} +func (dst *MutateKeywordPlanAdGroupsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateKeywordPlanAdGroupsRequest.Merge(dst, src) +} +func (m *MutateKeywordPlanAdGroupsRequest) XXX_Size() int { + return xxx_messageInfo_MutateKeywordPlanAdGroupsRequest.Size(m) +} +func (m *MutateKeywordPlanAdGroupsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_MutateKeywordPlanAdGroupsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateKeywordPlanAdGroupsRequest proto.InternalMessageInfo + +func (m *MutateKeywordPlanAdGroupsRequest) GetCustomerId() string { + if m != nil { + return m.CustomerId + } + return "" +} + +func (m *MutateKeywordPlanAdGroupsRequest) GetOperations() []*KeywordPlanAdGroupOperation { + if m != nil { + return m.Operations + } + return nil +} + +// A single operation (create, update, remove) on a Keyword Plan ad group. +type KeywordPlanAdGroupOperation struct { + // The FieldMask that determines which resource fields are modified in an + // update. + UpdateMask *field_mask.FieldMask `protobuf:"bytes,4,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // The mutate operation. + // + // Types that are valid to be assigned to Operation: + // *KeywordPlanAdGroupOperation_Create + // *KeywordPlanAdGroupOperation_Update + // *KeywordPlanAdGroupOperation_Remove + Operation isKeywordPlanAdGroupOperation_Operation `protobuf_oneof:"operation"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *KeywordPlanAdGroupOperation) Reset() { *m = KeywordPlanAdGroupOperation{} } +func (m *KeywordPlanAdGroupOperation) String() string { return proto.CompactTextString(m) } +func (*KeywordPlanAdGroupOperation) ProtoMessage() {} +func (*KeywordPlanAdGroupOperation) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_ad_group_service_4b428822531a4896, []int{2} +} +func (m *KeywordPlanAdGroupOperation) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_KeywordPlanAdGroupOperation.Unmarshal(m, b) +} +func (m *KeywordPlanAdGroupOperation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_KeywordPlanAdGroupOperation.Marshal(b, m, deterministic) +} +func (dst *KeywordPlanAdGroupOperation) XXX_Merge(src proto.Message) { + xxx_messageInfo_KeywordPlanAdGroupOperation.Merge(dst, src) +} +func (m *KeywordPlanAdGroupOperation) XXX_Size() int { + return xxx_messageInfo_KeywordPlanAdGroupOperation.Size(m) +} +func (m *KeywordPlanAdGroupOperation) XXX_DiscardUnknown() { + xxx_messageInfo_KeywordPlanAdGroupOperation.DiscardUnknown(m) +} + +var xxx_messageInfo_KeywordPlanAdGroupOperation proto.InternalMessageInfo + +func (m *KeywordPlanAdGroupOperation) GetUpdateMask() *field_mask.FieldMask { + if m != nil { + return m.UpdateMask + } + return nil +} + +type isKeywordPlanAdGroupOperation_Operation interface { + isKeywordPlanAdGroupOperation_Operation() +} + +type KeywordPlanAdGroupOperation_Create struct { + Create *resources.KeywordPlanAdGroup `protobuf:"bytes,1,opt,name=create,proto3,oneof"` +} + +type KeywordPlanAdGroupOperation_Update struct { + Update *resources.KeywordPlanAdGroup `protobuf:"bytes,2,opt,name=update,proto3,oneof"` +} + +type KeywordPlanAdGroupOperation_Remove struct { + Remove string `protobuf:"bytes,3,opt,name=remove,proto3,oneof"` +} + +func (*KeywordPlanAdGroupOperation_Create) isKeywordPlanAdGroupOperation_Operation() {} + +func (*KeywordPlanAdGroupOperation_Update) isKeywordPlanAdGroupOperation_Operation() {} + +func (*KeywordPlanAdGroupOperation_Remove) isKeywordPlanAdGroupOperation_Operation() {} + +func (m *KeywordPlanAdGroupOperation) GetOperation() isKeywordPlanAdGroupOperation_Operation { + if m != nil { + return m.Operation + } + return nil +} + +func (m *KeywordPlanAdGroupOperation) GetCreate() *resources.KeywordPlanAdGroup { + if x, ok := m.GetOperation().(*KeywordPlanAdGroupOperation_Create); ok { + return x.Create + } + return nil +} + +func (m *KeywordPlanAdGroupOperation) GetUpdate() *resources.KeywordPlanAdGroup { + if x, ok := m.GetOperation().(*KeywordPlanAdGroupOperation_Update); ok { + return x.Update + } + return nil +} + +func (m *KeywordPlanAdGroupOperation) GetRemove() string { + if x, ok := m.GetOperation().(*KeywordPlanAdGroupOperation_Remove); ok { + return x.Remove + } + return "" +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*KeywordPlanAdGroupOperation) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _KeywordPlanAdGroupOperation_OneofMarshaler, _KeywordPlanAdGroupOperation_OneofUnmarshaler, _KeywordPlanAdGroupOperation_OneofSizer, []interface{}{ + (*KeywordPlanAdGroupOperation_Create)(nil), + (*KeywordPlanAdGroupOperation_Update)(nil), + (*KeywordPlanAdGroupOperation_Remove)(nil), + } +} + +func _KeywordPlanAdGroupOperation_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*KeywordPlanAdGroupOperation) + // operation + switch x := m.Operation.(type) { + case *KeywordPlanAdGroupOperation_Create: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Create); err != nil { + return err + } + case *KeywordPlanAdGroupOperation_Update: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Update); err != nil { + return err + } + case *KeywordPlanAdGroupOperation_Remove: + b.EncodeVarint(3<<3 | proto.WireBytes) + b.EncodeStringBytes(x.Remove) + case nil: + default: + return fmt.Errorf("KeywordPlanAdGroupOperation.Operation has unexpected type %T", x) + } + return nil +} + +func _KeywordPlanAdGroupOperation_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*KeywordPlanAdGroupOperation) + switch tag { + case 1: // operation.create + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.KeywordPlanAdGroup) + err := b.DecodeMessage(msg) + m.Operation = &KeywordPlanAdGroupOperation_Create{msg} + return true, err + case 2: // operation.update + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.KeywordPlanAdGroup) + err := b.DecodeMessage(msg) + m.Operation = &KeywordPlanAdGroupOperation_Update{msg} + return true, err + case 3: // operation.remove + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Operation = &KeywordPlanAdGroupOperation_Remove{x} + return true, err + default: + return false, nil + } +} + +func _KeywordPlanAdGroupOperation_OneofSizer(msg proto.Message) (n int) { + m := msg.(*KeywordPlanAdGroupOperation) + // operation + switch x := m.Operation.(type) { + case *KeywordPlanAdGroupOperation_Create: + s := proto.Size(x.Create) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *KeywordPlanAdGroupOperation_Update: + s := proto.Size(x.Update) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *KeywordPlanAdGroupOperation_Remove: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(len(x.Remove))) + n += len(x.Remove) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// Response message for a Keyword Plan ad group mutate. +type MutateKeywordPlanAdGroupsResponse struct { + // All results for the mutate. + Results []*MutateKeywordPlanAdGroupResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateKeywordPlanAdGroupsResponse) Reset() { *m = MutateKeywordPlanAdGroupsResponse{} } +func (m *MutateKeywordPlanAdGroupsResponse) String() string { return proto.CompactTextString(m) } +func (*MutateKeywordPlanAdGroupsResponse) ProtoMessage() {} +func (*MutateKeywordPlanAdGroupsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_ad_group_service_4b428822531a4896, []int{3} +} +func (m *MutateKeywordPlanAdGroupsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateKeywordPlanAdGroupsResponse.Unmarshal(m, b) +} +func (m *MutateKeywordPlanAdGroupsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateKeywordPlanAdGroupsResponse.Marshal(b, m, deterministic) +} +func (dst *MutateKeywordPlanAdGroupsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateKeywordPlanAdGroupsResponse.Merge(dst, src) +} +func (m *MutateKeywordPlanAdGroupsResponse) XXX_Size() int { + return xxx_messageInfo_MutateKeywordPlanAdGroupsResponse.Size(m) +} +func (m *MutateKeywordPlanAdGroupsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MutateKeywordPlanAdGroupsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateKeywordPlanAdGroupsResponse proto.InternalMessageInfo + +func (m *MutateKeywordPlanAdGroupsResponse) GetResults() []*MutateKeywordPlanAdGroupResult { + if m != nil { + return m.Results + } + return nil +} + +// The result for the Keyword Plan ad group mutate. +type MutateKeywordPlanAdGroupResult struct { + // Returned for successful operations. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateKeywordPlanAdGroupResult) Reset() { *m = MutateKeywordPlanAdGroupResult{} } +func (m *MutateKeywordPlanAdGroupResult) String() string { return proto.CompactTextString(m) } +func (*MutateKeywordPlanAdGroupResult) ProtoMessage() {} +func (*MutateKeywordPlanAdGroupResult) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_ad_group_service_4b428822531a4896, []int{4} +} +func (m *MutateKeywordPlanAdGroupResult) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateKeywordPlanAdGroupResult.Unmarshal(m, b) +} +func (m *MutateKeywordPlanAdGroupResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateKeywordPlanAdGroupResult.Marshal(b, m, deterministic) +} +func (dst *MutateKeywordPlanAdGroupResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateKeywordPlanAdGroupResult.Merge(dst, src) +} +func (m *MutateKeywordPlanAdGroupResult) XXX_Size() int { + return xxx_messageInfo_MutateKeywordPlanAdGroupResult.Size(m) +} +func (m *MutateKeywordPlanAdGroupResult) XXX_DiscardUnknown() { + xxx_messageInfo_MutateKeywordPlanAdGroupResult.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateKeywordPlanAdGroupResult proto.InternalMessageInfo + +func (m *MutateKeywordPlanAdGroupResult) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetKeywordPlanAdGroupRequest)(nil), "google.ads.googleads.v0.services.GetKeywordPlanAdGroupRequest") + proto.RegisterType((*MutateKeywordPlanAdGroupsRequest)(nil), "google.ads.googleads.v0.services.MutateKeywordPlanAdGroupsRequest") + proto.RegisterType((*KeywordPlanAdGroupOperation)(nil), "google.ads.googleads.v0.services.KeywordPlanAdGroupOperation") + proto.RegisterType((*MutateKeywordPlanAdGroupsResponse)(nil), "google.ads.googleads.v0.services.MutateKeywordPlanAdGroupsResponse") + proto.RegisterType((*MutateKeywordPlanAdGroupResult)(nil), "google.ads.googleads.v0.services.MutateKeywordPlanAdGroupResult") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// KeywordPlanAdGroupServiceClient is the client API for KeywordPlanAdGroupService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type KeywordPlanAdGroupServiceClient interface { + // Returns the requested Keyword Plan ad group in full detail. + GetKeywordPlanAdGroup(ctx context.Context, in *GetKeywordPlanAdGroupRequest, opts ...grpc.CallOption) (*resources.KeywordPlanAdGroup, error) + // Creates, updates, or removes Keyword Plan ad groups. Operation statuses are + // returned. + MutateKeywordPlanAdGroups(ctx context.Context, in *MutateKeywordPlanAdGroupsRequest, opts ...grpc.CallOption) (*MutateKeywordPlanAdGroupsResponse, error) +} + +type keywordPlanAdGroupServiceClient struct { + cc *grpc.ClientConn +} + +func NewKeywordPlanAdGroupServiceClient(cc *grpc.ClientConn) KeywordPlanAdGroupServiceClient { + return &keywordPlanAdGroupServiceClient{cc} +} + +func (c *keywordPlanAdGroupServiceClient) GetKeywordPlanAdGroup(ctx context.Context, in *GetKeywordPlanAdGroupRequest, opts ...grpc.CallOption) (*resources.KeywordPlanAdGroup, error) { + out := new(resources.KeywordPlanAdGroup) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.KeywordPlanAdGroupService/GetKeywordPlanAdGroup", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *keywordPlanAdGroupServiceClient) MutateKeywordPlanAdGroups(ctx context.Context, in *MutateKeywordPlanAdGroupsRequest, opts ...grpc.CallOption) (*MutateKeywordPlanAdGroupsResponse, error) { + out := new(MutateKeywordPlanAdGroupsResponse) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.KeywordPlanAdGroupService/MutateKeywordPlanAdGroups", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// KeywordPlanAdGroupServiceServer is the server API for KeywordPlanAdGroupService service. +type KeywordPlanAdGroupServiceServer interface { + // Returns the requested Keyword Plan ad group in full detail. + GetKeywordPlanAdGroup(context.Context, *GetKeywordPlanAdGroupRequest) (*resources.KeywordPlanAdGroup, error) + // Creates, updates, or removes Keyword Plan ad groups. Operation statuses are + // returned. + MutateKeywordPlanAdGroups(context.Context, *MutateKeywordPlanAdGroupsRequest) (*MutateKeywordPlanAdGroupsResponse, error) +} + +func RegisterKeywordPlanAdGroupServiceServer(s *grpc.Server, srv KeywordPlanAdGroupServiceServer) { + s.RegisterService(&_KeywordPlanAdGroupService_serviceDesc, srv) +} + +func _KeywordPlanAdGroupService_GetKeywordPlanAdGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetKeywordPlanAdGroupRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(KeywordPlanAdGroupServiceServer).GetKeywordPlanAdGroup(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.KeywordPlanAdGroupService/GetKeywordPlanAdGroup", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(KeywordPlanAdGroupServiceServer).GetKeywordPlanAdGroup(ctx, req.(*GetKeywordPlanAdGroupRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _KeywordPlanAdGroupService_MutateKeywordPlanAdGroups_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MutateKeywordPlanAdGroupsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(KeywordPlanAdGroupServiceServer).MutateKeywordPlanAdGroups(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.KeywordPlanAdGroupService/MutateKeywordPlanAdGroups", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(KeywordPlanAdGroupServiceServer).MutateKeywordPlanAdGroups(ctx, req.(*MutateKeywordPlanAdGroupsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _KeywordPlanAdGroupService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.KeywordPlanAdGroupService", + HandlerType: (*KeywordPlanAdGroupServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetKeywordPlanAdGroup", + Handler: _KeywordPlanAdGroupService_GetKeywordPlanAdGroup_Handler, + }, + { + MethodName: "MutateKeywordPlanAdGroups", + Handler: _KeywordPlanAdGroupService_MutateKeywordPlanAdGroups_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/keyword_plan_ad_group_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/keyword_plan_ad_group_service.proto", fileDescriptor_keyword_plan_ad_group_service_4b428822531a4896) +} + +var fileDescriptor_keyword_plan_ad_group_service_4b428822531a4896 = []byte{ + // 612 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x95, 0x4f, 0x8b, 0xd3, 0x4e, + 0x18, 0xc7, 0x7f, 0x49, 0x7f, 0x54, 0x76, 0xa2, 0x97, 0x01, 0x21, 0x5b, 0x97, 0x35, 0x46, 0x0f, + 0xa5, 0x87, 0xa4, 0x54, 0x16, 0x65, 0x97, 0x88, 0x6d, 0xd5, 0xae, 0xc8, 0xba, 0x25, 0xc2, 0x1e, + 0x96, 0x4a, 0x98, 0x6d, 0x66, 0x43, 0x68, 0x92, 0x89, 0x33, 0x49, 0x45, 0x96, 0x45, 0xf0, 0x2d, + 0xf8, 0x0e, 0xd6, 0x9b, 0x2f, 0x45, 0xf0, 0xe4, 0xc1, 0x9b, 0x27, 0x2f, 0xbe, 0x0b, 0x99, 0x4c, + 0xa6, 0x56, 0xda, 0xb4, 0xb2, 0x7b, 0x7b, 0x32, 0xf3, 0xcc, 0xe7, 0xf9, 0xf3, 0x9d, 0x67, 0x02, + 0x9e, 0x04, 0x84, 0x04, 0x11, 0xb6, 0x91, 0xcf, 0x6c, 0x61, 0x72, 0x6b, 0xda, 0xb6, 0x19, 0xa6, + 0xd3, 0x70, 0x8c, 0x99, 0x3d, 0xc1, 0xef, 0xde, 0x12, 0xea, 0x7b, 0x69, 0x84, 0x12, 0x0f, 0xf9, + 0x5e, 0x40, 0x49, 0x9e, 0x7a, 0xe5, 0xb6, 0x95, 0x52, 0x92, 0x11, 0x68, 0x88, 0xa3, 0x16, 0xf2, + 0x99, 0x35, 0xa3, 0x58, 0xd3, 0xb6, 0x25, 0x29, 0x0d, 0xa7, 0x2a, 0x0e, 0xc5, 0x8c, 0xe4, 0xb4, + 0x32, 0x90, 0x08, 0xd0, 0xd8, 0x92, 0xc7, 0xd3, 0xd0, 0x46, 0x49, 0x42, 0x32, 0x94, 0x85, 0x24, + 0x61, 0xe5, 0x6e, 0x19, 0xde, 0x2e, 0xbe, 0x4e, 0xf2, 0x53, 0xfb, 0x34, 0xc4, 0x91, 0xef, 0xc5, + 0x88, 0x4d, 0x84, 0x87, 0xd9, 0x07, 0x5b, 0x03, 0x9c, 0xbd, 0x10, 0x11, 0x86, 0x11, 0x4a, 0xba, + 0xfe, 0x80, 0xe3, 0x5d, 0xfc, 0x26, 0xc7, 0x2c, 0x83, 0x77, 0xc1, 0x0d, 0x99, 0x88, 0x97, 0xa0, + 0x18, 0xeb, 0x8a, 0xa1, 0x34, 0x37, 0xdc, 0xeb, 0x72, 0xf1, 0x25, 0x8a, 0xb1, 0x79, 0xa1, 0x00, + 0xe3, 0x20, 0xcf, 0x50, 0x86, 0x17, 0x41, 0x4c, 0x92, 0x6e, 0x03, 0x6d, 0x9c, 0xb3, 0x8c, 0xc4, + 0x98, 0x7a, 0xa1, 0x5f, 0x72, 0x80, 0x5c, 0x7a, 0xee, 0xc3, 0xd7, 0x00, 0x90, 0x14, 0x53, 0x51, + 0x80, 0xae, 0x1a, 0xb5, 0xa6, 0xd6, 0x71, 0xac, 0x75, 0x0d, 0xb4, 0x16, 0x43, 0x1e, 0x4a, 0x8a, + 0x3b, 0x07, 0x34, 0x3f, 0xa9, 0xe0, 0xd6, 0x0a, 0x5f, 0xb8, 0x07, 0xb4, 0x3c, 0xf5, 0x51, 0x86, + 0x8b, 0xf6, 0xe8, 0xff, 0x1b, 0x4a, 0x53, 0xeb, 0x34, 0x64, 0x7c, 0xd9, 0x41, 0xeb, 0x19, 0xef, + 0xe0, 0x01, 0x62, 0x13, 0x17, 0x08, 0x77, 0x6e, 0xc3, 0x43, 0x50, 0x1f, 0x53, 0x8c, 0x32, 0xd1, + 0x1f, 0xad, 0xb3, 0x53, 0x99, 0xf7, 0x4c, 0xd6, 0x25, 0x89, 0xef, 0xff, 0xe7, 0x96, 0x18, 0x0e, + 0x14, 0x78, 0x5d, 0xbd, 0x22, 0x50, 0x60, 0xa0, 0x0e, 0xea, 0x14, 0xc7, 0x64, 0x8a, 0xf5, 0x1a, + 0xef, 0x3c, 0xdf, 0x11, 0xdf, 0x3d, 0x0d, 0x6c, 0xcc, 0xda, 0x64, 0xbe, 0x07, 0x77, 0x56, 0x28, + 0xc9, 0x52, 0x92, 0x30, 0x0c, 0x8f, 0xc1, 0x35, 0x8a, 0x59, 0x1e, 0x65, 0x52, 0xa6, 0xc7, 0xeb, + 0x65, 0xaa, 0xa2, 0xba, 0x05, 0xc8, 0x95, 0x40, 0xf3, 0x29, 0xd8, 0x5e, 0xed, 0xfa, 0x4f, 0x57, + 0xb2, 0xf3, 0xbd, 0x06, 0x36, 0x17, 0x09, 0xaf, 0x44, 0x36, 0xf0, 0xab, 0x02, 0x6e, 0x2e, 0xbd, + 0xf6, 0xf0, 0xd1, 0xfa, 0x4a, 0x56, 0xcd, 0x4b, 0xe3, 0x72, 0x3a, 0x99, 0xce, 0x87, 0x6f, 0x3f, + 0x3f, 0xaa, 0x0f, 0xe0, 0x0e, 0x9f, 0xfc, 0xb3, 0xbf, 0xca, 0x73, 0xe4, 0x88, 0x30, 0xbb, 0x25, + 0x9f, 0x82, 0x79, 0x55, 0xec, 0xd6, 0x39, 0xfc, 0xa5, 0x80, 0xcd, 0x4a, 0xd9, 0x60, 0xef, 0xf2, + 0xea, 0xc8, 0xe9, 0x6d, 0xf4, 0xaf, 0xc4, 0x10, 0xf7, 0xc6, 0xec, 0x17, 0x55, 0x3a, 0xe6, 0x43, + 0x5e, 0xe5, 0x9f, 0xb2, 0xce, 0xe6, 0xde, 0x05, 0xa7, 0x75, 0xbe, 0xac, 0xc8, 0xdd, 0xb8, 0x80, + 0xef, 0x2a, 0xad, 0xde, 0x0f, 0x05, 0xdc, 0x1b, 0x93, 0x78, 0x6d, 0x3e, 0xbd, 0xed, 0x4a, 0xfd, + 0x87, 0x7c, 0x98, 0x87, 0xca, 0xf1, 0x7e, 0xc9, 0x08, 0x48, 0x84, 0x92, 0xc0, 0x22, 0x34, 0xb0, + 0x03, 0x9c, 0x14, 0xa3, 0x2e, 0xdf, 0xe2, 0x34, 0x64, 0xd5, 0xbf, 0x80, 0x3d, 0x69, 0x5c, 0xa8, + 0xb5, 0x41, 0xb7, 0xfb, 0x59, 0x35, 0x06, 0x02, 0xd8, 0xf5, 0x99, 0x25, 0x4c, 0x6e, 0x1d, 0xb5, + 0xad, 0x32, 0x30, 0xfb, 0x22, 0x5d, 0x46, 0x5d, 0x9f, 0x8d, 0x66, 0x2e, 0xa3, 0xa3, 0xf6, 0x48, + 0xba, 0x9c, 0xd4, 0x8b, 0x04, 0xee, 0xff, 0x0e, 0x00, 0x00, 0xff, 0xff, 0x7d, 0x19, 0x0f, 0xc5, + 0x82, 0x06, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/keyword_plan_campaign_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/keyword_plan_campaign_service.pb.go new file mode 100644 index 000000000..4b477abe1 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/keyword_plan_campaign_service.pb.go @@ -0,0 +1,550 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/keyword_plan_campaign_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" +import field_mask "google.golang.org/genproto/protobuf/field_mask" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [KeywordPlanCampaignService.GetKeywordPlanCampaign][google.ads.googleads.v0.services.KeywordPlanCampaignService.GetKeywordPlanCampaign]. +type GetKeywordPlanCampaignRequest struct { + // The resource name of the Keyword Plan campaign to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetKeywordPlanCampaignRequest) Reset() { *m = GetKeywordPlanCampaignRequest{} } +func (m *GetKeywordPlanCampaignRequest) String() string { return proto.CompactTextString(m) } +func (*GetKeywordPlanCampaignRequest) ProtoMessage() {} +func (*GetKeywordPlanCampaignRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_campaign_service_ec02efaeac104dba, []int{0} +} +func (m *GetKeywordPlanCampaignRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetKeywordPlanCampaignRequest.Unmarshal(m, b) +} +func (m *GetKeywordPlanCampaignRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetKeywordPlanCampaignRequest.Marshal(b, m, deterministic) +} +func (dst *GetKeywordPlanCampaignRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetKeywordPlanCampaignRequest.Merge(dst, src) +} +func (m *GetKeywordPlanCampaignRequest) XXX_Size() int { + return xxx_messageInfo_GetKeywordPlanCampaignRequest.Size(m) +} +func (m *GetKeywordPlanCampaignRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetKeywordPlanCampaignRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetKeywordPlanCampaignRequest proto.InternalMessageInfo + +func (m *GetKeywordPlanCampaignRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +// Request message for +// [KeywordPlanCampaignService.MutateKeywordPlanCampaigns][google.ads.googleads.v0.services.KeywordPlanCampaignService.MutateKeywordPlanCampaigns]. +type MutateKeywordPlanCampaignsRequest struct { + // The ID of the customer whose Keyword Plan campaigns are being modified. + CustomerId string `protobuf:"bytes,1,opt,name=customer_id,json=customerId,proto3" json:"customer_id,omitempty"` + // The list of operations to perform on individual Keyword Plan campaigns. + Operations []*KeywordPlanCampaignOperation `protobuf:"bytes,2,rep,name=operations,proto3" json:"operations,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateKeywordPlanCampaignsRequest) Reset() { *m = MutateKeywordPlanCampaignsRequest{} } +func (m *MutateKeywordPlanCampaignsRequest) String() string { return proto.CompactTextString(m) } +func (*MutateKeywordPlanCampaignsRequest) ProtoMessage() {} +func (*MutateKeywordPlanCampaignsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_campaign_service_ec02efaeac104dba, []int{1} +} +func (m *MutateKeywordPlanCampaignsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateKeywordPlanCampaignsRequest.Unmarshal(m, b) +} +func (m *MutateKeywordPlanCampaignsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateKeywordPlanCampaignsRequest.Marshal(b, m, deterministic) +} +func (dst *MutateKeywordPlanCampaignsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateKeywordPlanCampaignsRequest.Merge(dst, src) +} +func (m *MutateKeywordPlanCampaignsRequest) XXX_Size() int { + return xxx_messageInfo_MutateKeywordPlanCampaignsRequest.Size(m) +} +func (m *MutateKeywordPlanCampaignsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_MutateKeywordPlanCampaignsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateKeywordPlanCampaignsRequest proto.InternalMessageInfo + +func (m *MutateKeywordPlanCampaignsRequest) GetCustomerId() string { + if m != nil { + return m.CustomerId + } + return "" +} + +func (m *MutateKeywordPlanCampaignsRequest) GetOperations() []*KeywordPlanCampaignOperation { + if m != nil { + return m.Operations + } + return nil +} + +// A single operation (create, update, remove) on a Keyword Plan campaign. +type KeywordPlanCampaignOperation struct { + // The FieldMask that determines which resource fields are modified in an + // update. + UpdateMask *field_mask.FieldMask `protobuf:"bytes,4,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // The mutate operation. + // + // Types that are valid to be assigned to Operation: + // *KeywordPlanCampaignOperation_Create + // *KeywordPlanCampaignOperation_Update + // *KeywordPlanCampaignOperation_Remove + Operation isKeywordPlanCampaignOperation_Operation `protobuf_oneof:"operation"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *KeywordPlanCampaignOperation) Reset() { *m = KeywordPlanCampaignOperation{} } +func (m *KeywordPlanCampaignOperation) String() string { return proto.CompactTextString(m) } +func (*KeywordPlanCampaignOperation) ProtoMessage() {} +func (*KeywordPlanCampaignOperation) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_campaign_service_ec02efaeac104dba, []int{2} +} +func (m *KeywordPlanCampaignOperation) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_KeywordPlanCampaignOperation.Unmarshal(m, b) +} +func (m *KeywordPlanCampaignOperation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_KeywordPlanCampaignOperation.Marshal(b, m, deterministic) +} +func (dst *KeywordPlanCampaignOperation) XXX_Merge(src proto.Message) { + xxx_messageInfo_KeywordPlanCampaignOperation.Merge(dst, src) +} +func (m *KeywordPlanCampaignOperation) XXX_Size() int { + return xxx_messageInfo_KeywordPlanCampaignOperation.Size(m) +} +func (m *KeywordPlanCampaignOperation) XXX_DiscardUnknown() { + xxx_messageInfo_KeywordPlanCampaignOperation.DiscardUnknown(m) +} + +var xxx_messageInfo_KeywordPlanCampaignOperation proto.InternalMessageInfo + +func (m *KeywordPlanCampaignOperation) GetUpdateMask() *field_mask.FieldMask { + if m != nil { + return m.UpdateMask + } + return nil +} + +type isKeywordPlanCampaignOperation_Operation interface { + isKeywordPlanCampaignOperation_Operation() +} + +type KeywordPlanCampaignOperation_Create struct { + Create *resources.KeywordPlanCampaign `protobuf:"bytes,1,opt,name=create,proto3,oneof"` +} + +type KeywordPlanCampaignOperation_Update struct { + Update *resources.KeywordPlanCampaign `protobuf:"bytes,2,opt,name=update,proto3,oneof"` +} + +type KeywordPlanCampaignOperation_Remove struct { + Remove string `protobuf:"bytes,3,opt,name=remove,proto3,oneof"` +} + +func (*KeywordPlanCampaignOperation_Create) isKeywordPlanCampaignOperation_Operation() {} + +func (*KeywordPlanCampaignOperation_Update) isKeywordPlanCampaignOperation_Operation() {} + +func (*KeywordPlanCampaignOperation_Remove) isKeywordPlanCampaignOperation_Operation() {} + +func (m *KeywordPlanCampaignOperation) GetOperation() isKeywordPlanCampaignOperation_Operation { + if m != nil { + return m.Operation + } + return nil +} + +func (m *KeywordPlanCampaignOperation) GetCreate() *resources.KeywordPlanCampaign { + if x, ok := m.GetOperation().(*KeywordPlanCampaignOperation_Create); ok { + return x.Create + } + return nil +} + +func (m *KeywordPlanCampaignOperation) GetUpdate() *resources.KeywordPlanCampaign { + if x, ok := m.GetOperation().(*KeywordPlanCampaignOperation_Update); ok { + return x.Update + } + return nil +} + +func (m *KeywordPlanCampaignOperation) GetRemove() string { + if x, ok := m.GetOperation().(*KeywordPlanCampaignOperation_Remove); ok { + return x.Remove + } + return "" +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*KeywordPlanCampaignOperation) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _KeywordPlanCampaignOperation_OneofMarshaler, _KeywordPlanCampaignOperation_OneofUnmarshaler, _KeywordPlanCampaignOperation_OneofSizer, []interface{}{ + (*KeywordPlanCampaignOperation_Create)(nil), + (*KeywordPlanCampaignOperation_Update)(nil), + (*KeywordPlanCampaignOperation_Remove)(nil), + } +} + +func _KeywordPlanCampaignOperation_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*KeywordPlanCampaignOperation) + // operation + switch x := m.Operation.(type) { + case *KeywordPlanCampaignOperation_Create: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Create); err != nil { + return err + } + case *KeywordPlanCampaignOperation_Update: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Update); err != nil { + return err + } + case *KeywordPlanCampaignOperation_Remove: + b.EncodeVarint(3<<3 | proto.WireBytes) + b.EncodeStringBytes(x.Remove) + case nil: + default: + return fmt.Errorf("KeywordPlanCampaignOperation.Operation has unexpected type %T", x) + } + return nil +} + +func _KeywordPlanCampaignOperation_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*KeywordPlanCampaignOperation) + switch tag { + case 1: // operation.create + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.KeywordPlanCampaign) + err := b.DecodeMessage(msg) + m.Operation = &KeywordPlanCampaignOperation_Create{msg} + return true, err + case 2: // operation.update + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.KeywordPlanCampaign) + err := b.DecodeMessage(msg) + m.Operation = &KeywordPlanCampaignOperation_Update{msg} + return true, err + case 3: // operation.remove + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Operation = &KeywordPlanCampaignOperation_Remove{x} + return true, err + default: + return false, nil + } +} + +func _KeywordPlanCampaignOperation_OneofSizer(msg proto.Message) (n int) { + m := msg.(*KeywordPlanCampaignOperation) + // operation + switch x := m.Operation.(type) { + case *KeywordPlanCampaignOperation_Create: + s := proto.Size(x.Create) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *KeywordPlanCampaignOperation_Update: + s := proto.Size(x.Update) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *KeywordPlanCampaignOperation_Remove: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(len(x.Remove))) + n += len(x.Remove) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// Response message for a Keyword Plan campaign mutate. +type MutateKeywordPlanCampaignsResponse struct { + // All results for the mutate. + Results []*MutateKeywordPlanCampaignResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateKeywordPlanCampaignsResponse) Reset() { *m = MutateKeywordPlanCampaignsResponse{} } +func (m *MutateKeywordPlanCampaignsResponse) String() string { return proto.CompactTextString(m) } +func (*MutateKeywordPlanCampaignsResponse) ProtoMessage() {} +func (*MutateKeywordPlanCampaignsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_campaign_service_ec02efaeac104dba, []int{3} +} +func (m *MutateKeywordPlanCampaignsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateKeywordPlanCampaignsResponse.Unmarshal(m, b) +} +func (m *MutateKeywordPlanCampaignsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateKeywordPlanCampaignsResponse.Marshal(b, m, deterministic) +} +func (dst *MutateKeywordPlanCampaignsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateKeywordPlanCampaignsResponse.Merge(dst, src) +} +func (m *MutateKeywordPlanCampaignsResponse) XXX_Size() int { + return xxx_messageInfo_MutateKeywordPlanCampaignsResponse.Size(m) +} +func (m *MutateKeywordPlanCampaignsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MutateKeywordPlanCampaignsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateKeywordPlanCampaignsResponse proto.InternalMessageInfo + +func (m *MutateKeywordPlanCampaignsResponse) GetResults() []*MutateKeywordPlanCampaignResult { + if m != nil { + return m.Results + } + return nil +} + +// The result for the Keyword Plan campaign mutate. +type MutateKeywordPlanCampaignResult struct { + // Returned for successful operations. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateKeywordPlanCampaignResult) Reset() { *m = MutateKeywordPlanCampaignResult{} } +func (m *MutateKeywordPlanCampaignResult) String() string { return proto.CompactTextString(m) } +func (*MutateKeywordPlanCampaignResult) ProtoMessage() {} +func (*MutateKeywordPlanCampaignResult) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_campaign_service_ec02efaeac104dba, []int{4} +} +func (m *MutateKeywordPlanCampaignResult) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateKeywordPlanCampaignResult.Unmarshal(m, b) +} +func (m *MutateKeywordPlanCampaignResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateKeywordPlanCampaignResult.Marshal(b, m, deterministic) +} +func (dst *MutateKeywordPlanCampaignResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateKeywordPlanCampaignResult.Merge(dst, src) +} +func (m *MutateKeywordPlanCampaignResult) XXX_Size() int { + return xxx_messageInfo_MutateKeywordPlanCampaignResult.Size(m) +} +func (m *MutateKeywordPlanCampaignResult) XXX_DiscardUnknown() { + xxx_messageInfo_MutateKeywordPlanCampaignResult.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateKeywordPlanCampaignResult proto.InternalMessageInfo + +func (m *MutateKeywordPlanCampaignResult) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetKeywordPlanCampaignRequest)(nil), "google.ads.googleads.v0.services.GetKeywordPlanCampaignRequest") + proto.RegisterType((*MutateKeywordPlanCampaignsRequest)(nil), "google.ads.googleads.v0.services.MutateKeywordPlanCampaignsRequest") + proto.RegisterType((*KeywordPlanCampaignOperation)(nil), "google.ads.googleads.v0.services.KeywordPlanCampaignOperation") + proto.RegisterType((*MutateKeywordPlanCampaignsResponse)(nil), "google.ads.googleads.v0.services.MutateKeywordPlanCampaignsResponse") + proto.RegisterType((*MutateKeywordPlanCampaignResult)(nil), "google.ads.googleads.v0.services.MutateKeywordPlanCampaignResult") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// KeywordPlanCampaignServiceClient is the client API for KeywordPlanCampaignService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type KeywordPlanCampaignServiceClient interface { + // Returns the requested Keyword Plan campaign in full detail. + GetKeywordPlanCampaign(ctx context.Context, in *GetKeywordPlanCampaignRequest, opts ...grpc.CallOption) (*resources.KeywordPlanCampaign, error) + // Creates, updates, or removes Keyword Plan campaigns. Operation statuses are + // returned. + MutateKeywordPlanCampaigns(ctx context.Context, in *MutateKeywordPlanCampaignsRequest, opts ...grpc.CallOption) (*MutateKeywordPlanCampaignsResponse, error) +} + +type keywordPlanCampaignServiceClient struct { + cc *grpc.ClientConn +} + +func NewKeywordPlanCampaignServiceClient(cc *grpc.ClientConn) KeywordPlanCampaignServiceClient { + return &keywordPlanCampaignServiceClient{cc} +} + +func (c *keywordPlanCampaignServiceClient) GetKeywordPlanCampaign(ctx context.Context, in *GetKeywordPlanCampaignRequest, opts ...grpc.CallOption) (*resources.KeywordPlanCampaign, error) { + out := new(resources.KeywordPlanCampaign) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.KeywordPlanCampaignService/GetKeywordPlanCampaign", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *keywordPlanCampaignServiceClient) MutateKeywordPlanCampaigns(ctx context.Context, in *MutateKeywordPlanCampaignsRequest, opts ...grpc.CallOption) (*MutateKeywordPlanCampaignsResponse, error) { + out := new(MutateKeywordPlanCampaignsResponse) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.KeywordPlanCampaignService/MutateKeywordPlanCampaigns", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// KeywordPlanCampaignServiceServer is the server API for KeywordPlanCampaignService service. +type KeywordPlanCampaignServiceServer interface { + // Returns the requested Keyword Plan campaign in full detail. + GetKeywordPlanCampaign(context.Context, *GetKeywordPlanCampaignRequest) (*resources.KeywordPlanCampaign, error) + // Creates, updates, or removes Keyword Plan campaigns. Operation statuses are + // returned. + MutateKeywordPlanCampaigns(context.Context, *MutateKeywordPlanCampaignsRequest) (*MutateKeywordPlanCampaignsResponse, error) +} + +func RegisterKeywordPlanCampaignServiceServer(s *grpc.Server, srv KeywordPlanCampaignServiceServer) { + s.RegisterService(&_KeywordPlanCampaignService_serviceDesc, srv) +} + +func _KeywordPlanCampaignService_GetKeywordPlanCampaign_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetKeywordPlanCampaignRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(KeywordPlanCampaignServiceServer).GetKeywordPlanCampaign(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.KeywordPlanCampaignService/GetKeywordPlanCampaign", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(KeywordPlanCampaignServiceServer).GetKeywordPlanCampaign(ctx, req.(*GetKeywordPlanCampaignRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _KeywordPlanCampaignService_MutateKeywordPlanCampaigns_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MutateKeywordPlanCampaignsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(KeywordPlanCampaignServiceServer).MutateKeywordPlanCampaigns(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.KeywordPlanCampaignService/MutateKeywordPlanCampaigns", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(KeywordPlanCampaignServiceServer).MutateKeywordPlanCampaigns(ctx, req.(*MutateKeywordPlanCampaignsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _KeywordPlanCampaignService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.KeywordPlanCampaignService", + HandlerType: (*KeywordPlanCampaignServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetKeywordPlanCampaign", + Handler: _KeywordPlanCampaignService_GetKeywordPlanCampaign_Handler, + }, + { + MethodName: "MutateKeywordPlanCampaigns", + Handler: _KeywordPlanCampaignService_MutateKeywordPlanCampaigns_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/keyword_plan_campaign_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/keyword_plan_campaign_service.proto", fileDescriptor_keyword_plan_campaign_service_ec02efaeac104dba) +} + +var fileDescriptor_keyword_plan_campaign_service_ec02efaeac104dba = []byte{ + // 610 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x95, 0x4d, 0x8b, 0xd3, 0x40, + 0x18, 0xc7, 0x4d, 0x2a, 0x95, 0x9d, 0xe8, 0x65, 0x0e, 0x12, 0xc2, 0x4a, 0x6b, 0xf4, 0x50, 0x7a, + 0x48, 0x4a, 0x85, 0x45, 0x77, 0x69, 0xa5, 0xdd, 0xb2, 0x5d, 0x91, 0xd5, 0x12, 0x61, 0x0f, 0x5a, + 0x0c, 0xb3, 0xcd, 0x6c, 0x08, 0x4d, 0x32, 0x71, 0x66, 0x52, 0x91, 0x65, 0x0f, 0xfa, 0x15, 0xfc, + 0x06, 0x22, 0x1e, 0xfc, 0x28, 0xde, 0xc4, 0x0f, 0xa0, 0x07, 0xaf, 0x7e, 0x07, 0x49, 0x26, 0x53, + 0x77, 0x21, 0x69, 0x65, 0x7b, 0x7b, 0x92, 0x79, 0xf2, 0x7b, 0x5e, 0xfe, 0xf3, 0x3c, 0x01, 0x23, + 0x9f, 0x10, 0x3f, 0xc4, 0x36, 0xf2, 0x98, 0x2d, 0xcc, 0xcc, 0x5a, 0x74, 0x6c, 0x86, 0xe9, 0x22, + 0x98, 0x61, 0x66, 0xcf, 0xf1, 0xbb, 0xb7, 0x84, 0x7a, 0x6e, 0x12, 0xa2, 0xd8, 0x9d, 0xa1, 0x28, + 0x41, 0x81, 0x1f, 0xbb, 0xc5, 0xb1, 0x95, 0x50, 0xc2, 0x09, 0x6c, 0x8a, 0x4f, 0x2d, 0xe4, 0x31, + 0x6b, 0x49, 0xb1, 0x16, 0x1d, 0x4b, 0x52, 0x8c, 0x5e, 0x55, 0x1c, 0x8a, 0x19, 0x49, 0x69, 0x65, + 0x20, 0x11, 0xc0, 0xd8, 0x96, 0x9f, 0x27, 0x81, 0x8d, 0xe2, 0x98, 0x70, 0xc4, 0x03, 0x12, 0xb3, + 0xe2, 0xb4, 0x08, 0x6f, 0xe7, 0x4f, 0x27, 0xe9, 0xa9, 0x7d, 0x1a, 0xe0, 0xd0, 0x73, 0x23, 0xc4, + 0xe6, 0xc2, 0xc3, 0x1c, 0x81, 0x3b, 0x63, 0xcc, 0x9f, 0x8a, 0x08, 0x93, 0x10, 0xc5, 0xfb, 0x05, + 0xdf, 0xc1, 0x6f, 0x52, 0xcc, 0x38, 0xbc, 0x07, 0x6e, 0xc9, 0x4c, 0xdc, 0x18, 0x45, 0x58, 0x57, + 0x9a, 0x4a, 0x6b, 0xcb, 0xb9, 0x29, 0x5f, 0x3e, 0x43, 0x11, 0x36, 0x3f, 0x2b, 0xe0, 0xee, 0x51, + 0xca, 0x11, 0xc7, 0x25, 0x24, 0x26, 0x51, 0x0d, 0xa0, 0xcd, 0x52, 0xc6, 0x49, 0x84, 0xa9, 0x1b, + 0x78, 0x05, 0x08, 0xc8, 0x57, 0x4f, 0x3c, 0xf8, 0x1a, 0x00, 0x92, 0x60, 0x2a, 0x4a, 0xd0, 0xd5, + 0x66, 0xad, 0xa5, 0x75, 0xfb, 0xd6, 0xba, 0x16, 0x5a, 0x25, 0x31, 0x9f, 0x4b, 0x8c, 0x73, 0x81, + 0x68, 0x7e, 0x51, 0xc1, 0xf6, 0x2a, 0x67, 0xb8, 0x07, 0xb4, 0x34, 0xf1, 0x10, 0xc7, 0x79, 0x8b, + 0xf4, 0xeb, 0x4d, 0xa5, 0xa5, 0x75, 0x0d, 0x99, 0x81, 0xec, 0xa2, 0x75, 0x90, 0x75, 0xf1, 0x08, + 0xb1, 0xb9, 0x03, 0x84, 0x7b, 0x66, 0xc3, 0x09, 0xa8, 0xcf, 0x28, 0x46, 0x5c, 0xb4, 0x48, 0xeb, + 0xee, 0x54, 0x66, 0xbe, 0x94, 0xb6, 0x2c, 0xf5, 0xc3, 0x6b, 0x4e, 0xc1, 0xc9, 0x88, 0x82, 0xaf, + 0xab, 0x9b, 0x12, 0x05, 0x07, 0xea, 0xa0, 0x4e, 0x71, 0x44, 0x16, 0x58, 0xaf, 0x65, 0xdd, 0xcf, + 0x4e, 0xc4, 0xf3, 0x50, 0x03, 0x5b, 0xcb, 0x4e, 0x99, 0xef, 0x15, 0x60, 0xae, 0xd2, 0x93, 0x25, + 0x24, 0x66, 0x18, 0xbe, 0x02, 0x37, 0x28, 0x66, 0x69, 0xc8, 0xa5, 0x58, 0x83, 0xf5, 0x62, 0x55, + 0x62, 0x9d, 0x9c, 0xe4, 0x48, 0xa2, 0x79, 0x00, 0x1a, 0x6b, 0x7c, 0xff, 0xeb, 0x6e, 0x76, 0x7f, + 0xd5, 0x80, 0x51, 0x82, 0x78, 0x21, 0x12, 0x82, 0xdf, 0x15, 0x70, 0xbb, 0x7c, 0x02, 0xe0, 0xe3, + 0xf5, 0xd5, 0xac, 0x9c, 0x1d, 0xe3, 0x8a, 0x7a, 0x99, 0xfd, 0x0f, 0x3f, 0x7e, 0x7f, 0x54, 0x1f, + 0xc2, 0x9d, 0x6c, 0x0f, 0x9c, 0x5d, 0x2a, 0xb1, 0x27, 0xc7, 0x85, 0xd9, 0x6d, 0xb9, 0x18, 0x2e, + 0x89, 0x63, 0xb7, 0xcf, 0xe1, 0x1f, 0x05, 0x18, 0xd5, 0xf2, 0xc1, 0xfd, 0x0d, 0x54, 0x92, 0xc3, + 0x6c, 0x8c, 0x36, 0x83, 0x88, 0x1b, 0x64, 0x8e, 0xf2, 0x4a, 0xfb, 0xe6, 0xa3, 0xac, 0xd2, 0x7f, + 0xa5, 0x9d, 0x5d, 0xd8, 0x13, 0xbd, 0xf6, 0x79, 0x69, 0xa1, 0xbb, 0x51, 0x8e, 0xdf, 0x55, 0xda, + 0xc3, 0x9f, 0x0a, 0xb8, 0x3f, 0x23, 0xd1, 0xda, 0x8c, 0x86, 0x8d, 0xea, 0x8b, 0x30, 0xc9, 0x86, + 0x7b, 0xa2, 0xbc, 0x3c, 0x2c, 0x20, 0x3e, 0x09, 0x51, 0xec, 0x5b, 0x84, 0xfa, 0xb6, 0x8f, 0xe3, + 0x7c, 0xf4, 0xe5, 0x7e, 0x4e, 0x02, 0x56, 0xfd, 0x5b, 0xd8, 0x93, 0xc6, 0x27, 0xb5, 0x36, 0x1e, + 0x0c, 0xbe, 0xaa, 0xcd, 0xb1, 0x00, 0x0e, 0x3c, 0x66, 0x09, 0x33, 0xb3, 0x8e, 0x3b, 0x56, 0x11, + 0x98, 0x7d, 0x93, 0x2e, 0xd3, 0x81, 0xc7, 0xa6, 0x4b, 0x97, 0xe9, 0x71, 0x67, 0x2a, 0x5d, 0x4e, + 0xea, 0x79, 0x02, 0x0f, 0xfe, 0x06, 0x00, 0x00, 0xff, 0xff, 0x5b, 0x01, 0x1e, 0x6c, 0x96, 0x06, + 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/keyword_plan_idea_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/keyword_plan_idea_service.pb.go new file mode 100644 index 000000000..f2eb502a5 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/keyword_plan_idea_service.pb.go @@ -0,0 +1,604 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/keyword_plan_idea_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import common "google.golang.org/genproto/googleapis/ads/googleads/v0/common" +import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" +import _ "google.golang.org/genproto/googleapis/api/annotations" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [KeywordIdeaService.GenerateKeywordIdeas][]. +type GenerateKeywordIdeasRequest struct { + // The ID of the customer with the recommendation. + CustomerId string `protobuf:"bytes,1,opt,name=customer_id,json=customerId,proto3" json:"customer_id,omitempty"` + // The resource name of the language to target. + // Required + Language *wrappers.StringValue `protobuf:"bytes,7,opt,name=language,proto3" json:"language,omitempty"` + // The resource names of the location to target. + // Max 10 + GeoTargetConstants []*wrappers.StringValue `protobuf:"bytes,8,rep,name=geo_target_constants,json=geoTargetConstants,proto3" json:"geo_target_constants,omitempty"` + // Targeting network. + KeywordPlanNetwork enums.KeywordPlanNetworkEnum_KeywordPlanNetwork `protobuf:"varint,9,opt,name=keyword_plan_network,json=keywordPlanNetwork,proto3,enum=google.ads.googleads.v0.enums.KeywordPlanNetworkEnum_KeywordPlanNetwork" json:"keyword_plan_network,omitempty"` + // The type of seed to generate keyword ideas. + // + // Types that are valid to be assigned to Seed: + // *GenerateKeywordIdeasRequest_KeywordAndUrlSeed + // *GenerateKeywordIdeasRequest_KeywordSeed + // *GenerateKeywordIdeasRequest_UrlSeed + Seed isGenerateKeywordIdeasRequest_Seed `protobuf_oneof:"seed"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GenerateKeywordIdeasRequest) Reset() { *m = GenerateKeywordIdeasRequest{} } +func (m *GenerateKeywordIdeasRequest) String() string { return proto.CompactTextString(m) } +func (*GenerateKeywordIdeasRequest) ProtoMessage() {} +func (*GenerateKeywordIdeasRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_idea_service_8eed2c943de898df, []int{0} +} +func (m *GenerateKeywordIdeasRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GenerateKeywordIdeasRequest.Unmarshal(m, b) +} +func (m *GenerateKeywordIdeasRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GenerateKeywordIdeasRequest.Marshal(b, m, deterministic) +} +func (dst *GenerateKeywordIdeasRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GenerateKeywordIdeasRequest.Merge(dst, src) +} +func (m *GenerateKeywordIdeasRequest) XXX_Size() int { + return xxx_messageInfo_GenerateKeywordIdeasRequest.Size(m) +} +func (m *GenerateKeywordIdeasRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GenerateKeywordIdeasRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GenerateKeywordIdeasRequest proto.InternalMessageInfo + +func (m *GenerateKeywordIdeasRequest) GetCustomerId() string { + if m != nil { + return m.CustomerId + } + return "" +} + +func (m *GenerateKeywordIdeasRequest) GetLanguage() *wrappers.StringValue { + if m != nil { + return m.Language + } + return nil +} + +func (m *GenerateKeywordIdeasRequest) GetGeoTargetConstants() []*wrappers.StringValue { + if m != nil { + return m.GeoTargetConstants + } + return nil +} + +func (m *GenerateKeywordIdeasRequest) GetKeywordPlanNetwork() enums.KeywordPlanNetworkEnum_KeywordPlanNetwork { + if m != nil { + return m.KeywordPlanNetwork + } + return enums.KeywordPlanNetworkEnum_UNSPECIFIED +} + +type isGenerateKeywordIdeasRequest_Seed interface { + isGenerateKeywordIdeasRequest_Seed() +} + +type GenerateKeywordIdeasRequest_KeywordAndUrlSeed struct { + KeywordAndUrlSeed *KeywordAndUrlSeed `protobuf:"bytes,2,opt,name=keyword_and_url_seed,json=keywordAndUrlSeed,proto3,oneof"` +} + +type GenerateKeywordIdeasRequest_KeywordSeed struct { + KeywordSeed *KeywordSeed `protobuf:"bytes,3,opt,name=keyword_seed,json=keywordSeed,proto3,oneof"` +} + +type GenerateKeywordIdeasRequest_UrlSeed struct { + UrlSeed *UrlSeed `protobuf:"bytes,5,opt,name=url_seed,json=urlSeed,proto3,oneof"` +} + +func (*GenerateKeywordIdeasRequest_KeywordAndUrlSeed) isGenerateKeywordIdeasRequest_Seed() {} + +func (*GenerateKeywordIdeasRequest_KeywordSeed) isGenerateKeywordIdeasRequest_Seed() {} + +func (*GenerateKeywordIdeasRequest_UrlSeed) isGenerateKeywordIdeasRequest_Seed() {} + +func (m *GenerateKeywordIdeasRequest) GetSeed() isGenerateKeywordIdeasRequest_Seed { + if m != nil { + return m.Seed + } + return nil +} + +func (m *GenerateKeywordIdeasRequest) GetKeywordAndUrlSeed() *KeywordAndUrlSeed { + if x, ok := m.GetSeed().(*GenerateKeywordIdeasRequest_KeywordAndUrlSeed); ok { + return x.KeywordAndUrlSeed + } + return nil +} + +func (m *GenerateKeywordIdeasRequest) GetKeywordSeed() *KeywordSeed { + if x, ok := m.GetSeed().(*GenerateKeywordIdeasRequest_KeywordSeed); ok { + return x.KeywordSeed + } + return nil +} + +func (m *GenerateKeywordIdeasRequest) GetUrlSeed() *UrlSeed { + if x, ok := m.GetSeed().(*GenerateKeywordIdeasRequest_UrlSeed); ok { + return x.UrlSeed + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*GenerateKeywordIdeasRequest) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _GenerateKeywordIdeasRequest_OneofMarshaler, _GenerateKeywordIdeasRequest_OneofUnmarshaler, _GenerateKeywordIdeasRequest_OneofSizer, []interface{}{ + (*GenerateKeywordIdeasRequest_KeywordAndUrlSeed)(nil), + (*GenerateKeywordIdeasRequest_KeywordSeed)(nil), + (*GenerateKeywordIdeasRequest_UrlSeed)(nil), + } +} + +func _GenerateKeywordIdeasRequest_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*GenerateKeywordIdeasRequest) + // seed + switch x := m.Seed.(type) { + case *GenerateKeywordIdeasRequest_KeywordAndUrlSeed: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.KeywordAndUrlSeed); err != nil { + return err + } + case *GenerateKeywordIdeasRequest_KeywordSeed: + b.EncodeVarint(3<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.KeywordSeed); err != nil { + return err + } + case *GenerateKeywordIdeasRequest_UrlSeed: + b.EncodeVarint(5<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.UrlSeed); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("GenerateKeywordIdeasRequest.Seed has unexpected type %T", x) + } + return nil +} + +func _GenerateKeywordIdeasRequest_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*GenerateKeywordIdeasRequest) + switch tag { + case 2: // seed.keyword_and_url_seed + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(KeywordAndUrlSeed) + err := b.DecodeMessage(msg) + m.Seed = &GenerateKeywordIdeasRequest_KeywordAndUrlSeed{msg} + return true, err + case 3: // seed.keyword_seed + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(KeywordSeed) + err := b.DecodeMessage(msg) + m.Seed = &GenerateKeywordIdeasRequest_KeywordSeed{msg} + return true, err + case 5: // seed.url_seed + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(UrlSeed) + err := b.DecodeMessage(msg) + m.Seed = &GenerateKeywordIdeasRequest_UrlSeed{msg} + return true, err + default: + return false, nil + } +} + +func _GenerateKeywordIdeasRequest_OneofSizer(msg proto.Message) (n int) { + m := msg.(*GenerateKeywordIdeasRequest) + // seed + switch x := m.Seed.(type) { + case *GenerateKeywordIdeasRequest_KeywordAndUrlSeed: + s := proto.Size(x.KeywordAndUrlSeed) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *GenerateKeywordIdeasRequest_KeywordSeed: + s := proto.Size(x.KeywordSeed) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *GenerateKeywordIdeasRequest_UrlSeed: + s := proto.Size(x.UrlSeed) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// Keyword And Url Seed +type KeywordAndUrlSeed struct { + // The URL to crawl in order to generate keyword ideas. + Url *wrappers.StringValue `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` + // Requires at least one keyword. + Keywords []*wrappers.StringValue `protobuf:"bytes,2,rep,name=keywords,proto3" json:"keywords,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *KeywordAndUrlSeed) Reset() { *m = KeywordAndUrlSeed{} } +func (m *KeywordAndUrlSeed) String() string { return proto.CompactTextString(m) } +func (*KeywordAndUrlSeed) ProtoMessage() {} +func (*KeywordAndUrlSeed) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_idea_service_8eed2c943de898df, []int{1} +} +func (m *KeywordAndUrlSeed) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_KeywordAndUrlSeed.Unmarshal(m, b) +} +func (m *KeywordAndUrlSeed) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_KeywordAndUrlSeed.Marshal(b, m, deterministic) +} +func (dst *KeywordAndUrlSeed) XXX_Merge(src proto.Message) { + xxx_messageInfo_KeywordAndUrlSeed.Merge(dst, src) +} +func (m *KeywordAndUrlSeed) XXX_Size() int { + return xxx_messageInfo_KeywordAndUrlSeed.Size(m) +} +func (m *KeywordAndUrlSeed) XXX_DiscardUnknown() { + xxx_messageInfo_KeywordAndUrlSeed.DiscardUnknown(m) +} + +var xxx_messageInfo_KeywordAndUrlSeed proto.InternalMessageInfo + +func (m *KeywordAndUrlSeed) GetUrl() *wrappers.StringValue { + if m != nil { + return m.Url + } + return nil +} + +func (m *KeywordAndUrlSeed) GetKeywords() []*wrappers.StringValue { + if m != nil { + return m.Keywords + } + return nil +} + +// Keyword Seed +type KeywordSeed struct { + // Requires at least one keyword. + Keywords []*wrappers.StringValue `protobuf:"bytes,1,rep,name=keywords,proto3" json:"keywords,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *KeywordSeed) Reset() { *m = KeywordSeed{} } +func (m *KeywordSeed) String() string { return proto.CompactTextString(m) } +func (*KeywordSeed) ProtoMessage() {} +func (*KeywordSeed) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_idea_service_8eed2c943de898df, []int{2} +} +func (m *KeywordSeed) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_KeywordSeed.Unmarshal(m, b) +} +func (m *KeywordSeed) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_KeywordSeed.Marshal(b, m, deterministic) +} +func (dst *KeywordSeed) XXX_Merge(src proto.Message) { + xxx_messageInfo_KeywordSeed.Merge(dst, src) +} +func (m *KeywordSeed) XXX_Size() int { + return xxx_messageInfo_KeywordSeed.Size(m) +} +func (m *KeywordSeed) XXX_DiscardUnknown() { + xxx_messageInfo_KeywordSeed.DiscardUnknown(m) +} + +var xxx_messageInfo_KeywordSeed proto.InternalMessageInfo + +func (m *KeywordSeed) GetKeywords() []*wrappers.StringValue { + if m != nil { + return m.Keywords + } + return nil +} + +// Url Seed +type UrlSeed struct { + // The URL to crawl in order to generate keyword ideas. + Url *wrappers.StringValue `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UrlSeed) Reset() { *m = UrlSeed{} } +func (m *UrlSeed) String() string { return proto.CompactTextString(m) } +func (*UrlSeed) ProtoMessage() {} +func (*UrlSeed) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_idea_service_8eed2c943de898df, []int{3} +} +func (m *UrlSeed) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UrlSeed.Unmarshal(m, b) +} +func (m *UrlSeed) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UrlSeed.Marshal(b, m, deterministic) +} +func (dst *UrlSeed) XXX_Merge(src proto.Message) { + xxx_messageInfo_UrlSeed.Merge(dst, src) +} +func (m *UrlSeed) XXX_Size() int { + return xxx_messageInfo_UrlSeed.Size(m) +} +func (m *UrlSeed) XXX_DiscardUnknown() { + xxx_messageInfo_UrlSeed.DiscardUnknown(m) +} + +var xxx_messageInfo_UrlSeed proto.InternalMessageInfo + +func (m *UrlSeed) GetUrl() *wrappers.StringValue { + if m != nil { + return m.Url + } + return nil +} + +// Response message for [KeywordIdeaService.GenerateKeywordIdeas][]. +type GenerateKeywordIdeaResponse struct { + // Results of generating keyword ideas. + Results []*GenerateKeywordIdeaResult `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GenerateKeywordIdeaResponse) Reset() { *m = GenerateKeywordIdeaResponse{} } +func (m *GenerateKeywordIdeaResponse) String() string { return proto.CompactTextString(m) } +func (*GenerateKeywordIdeaResponse) ProtoMessage() {} +func (*GenerateKeywordIdeaResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_idea_service_8eed2c943de898df, []int{4} +} +func (m *GenerateKeywordIdeaResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GenerateKeywordIdeaResponse.Unmarshal(m, b) +} +func (m *GenerateKeywordIdeaResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GenerateKeywordIdeaResponse.Marshal(b, m, deterministic) +} +func (dst *GenerateKeywordIdeaResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_GenerateKeywordIdeaResponse.Merge(dst, src) +} +func (m *GenerateKeywordIdeaResponse) XXX_Size() int { + return xxx_messageInfo_GenerateKeywordIdeaResponse.Size(m) +} +func (m *GenerateKeywordIdeaResponse) XXX_DiscardUnknown() { + xxx_messageInfo_GenerateKeywordIdeaResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_GenerateKeywordIdeaResponse proto.InternalMessageInfo + +func (m *GenerateKeywordIdeaResponse) GetResults() []*GenerateKeywordIdeaResult { + if m != nil { + return m.Results + } + return nil +} + +// The result of generating keyword ideas. +type GenerateKeywordIdeaResult struct { + // Text of the keyword idea. + // As in Keyword Plan historical metrics, this text may not be an actual + // keyword, but the canonical form of multiple keywords. + // See KeywordPlanKeywordHistoricalMetrics message in KeywordPlanService. + Text *wrappers.StringValue `protobuf:"bytes,2,opt,name=text,proto3" json:"text,omitempty"` + // The historical metrics for the keyword + KeywordIdeaMetrics *common.KeywordPlanHistoricalMetrics `protobuf:"bytes,3,opt,name=keyword_idea_metrics,json=keywordIdeaMetrics,proto3" json:"keyword_idea_metrics,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GenerateKeywordIdeaResult) Reset() { *m = GenerateKeywordIdeaResult{} } +func (m *GenerateKeywordIdeaResult) String() string { return proto.CompactTextString(m) } +func (*GenerateKeywordIdeaResult) ProtoMessage() {} +func (*GenerateKeywordIdeaResult) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_idea_service_8eed2c943de898df, []int{5} +} +func (m *GenerateKeywordIdeaResult) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GenerateKeywordIdeaResult.Unmarshal(m, b) +} +func (m *GenerateKeywordIdeaResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GenerateKeywordIdeaResult.Marshal(b, m, deterministic) +} +func (dst *GenerateKeywordIdeaResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_GenerateKeywordIdeaResult.Merge(dst, src) +} +func (m *GenerateKeywordIdeaResult) XXX_Size() int { + return xxx_messageInfo_GenerateKeywordIdeaResult.Size(m) +} +func (m *GenerateKeywordIdeaResult) XXX_DiscardUnknown() { + xxx_messageInfo_GenerateKeywordIdeaResult.DiscardUnknown(m) +} + +var xxx_messageInfo_GenerateKeywordIdeaResult proto.InternalMessageInfo + +func (m *GenerateKeywordIdeaResult) GetText() *wrappers.StringValue { + if m != nil { + return m.Text + } + return nil +} + +func (m *GenerateKeywordIdeaResult) GetKeywordIdeaMetrics() *common.KeywordPlanHistoricalMetrics { + if m != nil { + return m.KeywordIdeaMetrics + } + return nil +} + +func init() { + proto.RegisterType((*GenerateKeywordIdeasRequest)(nil), "google.ads.googleads.v0.services.GenerateKeywordIdeasRequest") + proto.RegisterType((*KeywordAndUrlSeed)(nil), "google.ads.googleads.v0.services.KeywordAndUrlSeed") + proto.RegisterType((*KeywordSeed)(nil), "google.ads.googleads.v0.services.KeywordSeed") + proto.RegisterType((*UrlSeed)(nil), "google.ads.googleads.v0.services.UrlSeed") + proto.RegisterType((*GenerateKeywordIdeaResponse)(nil), "google.ads.googleads.v0.services.GenerateKeywordIdeaResponse") + proto.RegisterType((*GenerateKeywordIdeaResult)(nil), "google.ads.googleads.v0.services.GenerateKeywordIdeaResult") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// KeywordPlanIdeaServiceClient is the client API for KeywordPlanIdeaService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type KeywordPlanIdeaServiceClient interface { + // Returns a list of keyword ideas. + GenerateKeywordIdeas(ctx context.Context, in *GenerateKeywordIdeasRequest, opts ...grpc.CallOption) (*GenerateKeywordIdeaResponse, error) +} + +type keywordPlanIdeaServiceClient struct { + cc *grpc.ClientConn +} + +func NewKeywordPlanIdeaServiceClient(cc *grpc.ClientConn) KeywordPlanIdeaServiceClient { + return &keywordPlanIdeaServiceClient{cc} +} + +func (c *keywordPlanIdeaServiceClient) GenerateKeywordIdeas(ctx context.Context, in *GenerateKeywordIdeasRequest, opts ...grpc.CallOption) (*GenerateKeywordIdeaResponse, error) { + out := new(GenerateKeywordIdeaResponse) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.KeywordPlanIdeaService/GenerateKeywordIdeas", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// KeywordPlanIdeaServiceServer is the server API for KeywordPlanIdeaService service. +type KeywordPlanIdeaServiceServer interface { + // Returns a list of keyword ideas. + GenerateKeywordIdeas(context.Context, *GenerateKeywordIdeasRequest) (*GenerateKeywordIdeaResponse, error) +} + +func RegisterKeywordPlanIdeaServiceServer(s *grpc.Server, srv KeywordPlanIdeaServiceServer) { + s.RegisterService(&_KeywordPlanIdeaService_serviceDesc, srv) +} + +func _KeywordPlanIdeaService_GenerateKeywordIdeas_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GenerateKeywordIdeasRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(KeywordPlanIdeaServiceServer).GenerateKeywordIdeas(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.KeywordPlanIdeaService/GenerateKeywordIdeas", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(KeywordPlanIdeaServiceServer).GenerateKeywordIdeas(ctx, req.(*GenerateKeywordIdeasRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _KeywordPlanIdeaService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.KeywordPlanIdeaService", + HandlerType: (*KeywordPlanIdeaServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GenerateKeywordIdeas", + Handler: _KeywordPlanIdeaService_GenerateKeywordIdeas_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/keyword_plan_idea_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/keyword_plan_idea_service.proto", fileDescriptor_keyword_plan_idea_service_8eed2c943de898df) +} + +var fileDescriptor_keyword_plan_idea_service_8eed2c943de898df = []byte{ + // 706 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x55, 0xdf, 0x4e, 0x13, 0x4d, + 0x14, 0xff, 0xb6, 0xe5, 0xa3, 0x30, 0xfd, 0xf2, 0x25, 0x4c, 0x88, 0xa9, 0x40, 0xb4, 0x69, 0xbc, + 0x40, 0x12, 0x67, 0x9b, 0x72, 0x21, 0x82, 0x4d, 0x2c, 0x46, 0x5b, 0x62, 0x24, 0x64, 0x11, 0x2e, + 0x4c, 0x93, 0xcd, 0xd0, 0x3d, 0x6c, 0x36, 0xdd, 0xce, 0xd4, 0x99, 0x59, 0xf0, 0x4f, 0xb8, 0xf1, + 0x15, 0x7c, 0x03, 0x2f, 0x7d, 0x07, 0x5f, 0xc0, 0x2b, 0x13, 0x2e, 0xbd, 0xf5, 0xda, 0x67, 0x30, + 0x3b, 0x3b, 0xd3, 0x16, 0x68, 0x2d, 0x72, 0x77, 0xf6, 0xfc, 0xf9, 0x9d, 0xdf, 0xf9, 0x33, 0x67, + 0xd1, 0x93, 0x90, 0xf3, 0x30, 0x06, 0x97, 0x06, 0xd2, 0xcd, 0xc4, 0x54, 0x3a, 0xa9, 0xba, 0x12, + 0xc4, 0x49, 0xd4, 0x01, 0xe9, 0x76, 0xe1, 0xdd, 0x29, 0x17, 0x81, 0xdf, 0x8f, 0x29, 0xf3, 0xa3, + 0x00, 0xa8, 0x6f, 0x4c, 0xa4, 0x2f, 0xb8, 0xe2, 0xb8, 0x9c, 0x85, 0x11, 0x1a, 0x48, 0x32, 0x40, + 0x20, 0x27, 0x55, 0x62, 0x11, 0x96, 0x36, 0x26, 0xe5, 0xe8, 0xf0, 0x5e, 0x8f, 0xb3, 0x8b, 0x19, + 0x32, 0x5d, 0x86, 0x3d, 0x39, 0x12, 0x58, 0xd2, 0xbb, 0x44, 0x8d, 0x81, 0x3a, 0xe5, 0xa2, 0x6b, + 0x22, 0x57, 0x6c, 0x64, 0x3f, 0x72, 0x29, 0x63, 0x5c, 0x51, 0x15, 0x71, 0x26, 0x8d, 0xf5, 0x8e, + 0xb1, 0xea, 0xaf, 0xa3, 0xe4, 0xd8, 0x3d, 0x15, 0xb4, 0xdf, 0x07, 0x61, 0xec, 0x95, 0xef, 0x33, + 0x68, 0xb9, 0x09, 0x0c, 0x04, 0x55, 0xf0, 0x22, 0x4b, 0xb2, 0x13, 0x00, 0x95, 0x1e, 0xbc, 0x49, + 0x40, 0x2a, 0x7c, 0x17, 0x15, 0x3b, 0x89, 0x54, 0xbc, 0x07, 0xc2, 0x8f, 0x82, 0x92, 0x53, 0x76, + 0x56, 0xe7, 0x3d, 0x64, 0x55, 0x3b, 0x01, 0xde, 0x40, 0x73, 0x31, 0x65, 0x61, 0x42, 0x43, 0x28, + 0x15, 0xca, 0xce, 0x6a, 0xb1, 0xb6, 0x62, 0x9a, 0x43, 0x6c, 0x4e, 0xb2, 0xaf, 0x44, 0xc4, 0xc2, + 0x43, 0x1a, 0x27, 0xe0, 0x0d, 0xbc, 0xf1, 0x2e, 0x5a, 0x0c, 0x81, 0xfb, 0x8a, 0x8a, 0x10, 0x94, + 0xdf, 0xe1, 0x4c, 0x2a, 0xca, 0x94, 0x2c, 0xcd, 0x95, 0xf3, 0x53, 0x51, 0x70, 0x08, 0xfc, 0x95, + 0x0e, 0x7c, 0x6a, 0xe3, 0xf0, 0x7b, 0xb4, 0x38, 0xae, 0x4d, 0xa5, 0xf9, 0xb2, 0xb3, 0xfa, 0x7f, + 0xad, 0x45, 0x26, 0x4d, 0x4f, 0x77, 0x98, 0x98, 0xe2, 0xf7, 0x62, 0xca, 0x76, 0xb3, 0xc0, 0x67, + 0x2c, 0xe9, 0x8d, 0x51, 0x7b, 0xb8, 0x7b, 0x45, 0x87, 0x8f, 0x87, 0xb9, 0x29, 0x0b, 0xfc, 0x44, + 0xc4, 0xbe, 0x04, 0x08, 0x4a, 0x39, 0xdd, 0x91, 0x75, 0x32, 0x6d, 0x73, 0x6c, 0x9e, 0x06, 0x0b, + 0x0e, 0x44, 0xbc, 0x0f, 0x10, 0xb4, 0xfe, 0xf1, 0x16, 0xba, 0x97, 0x95, 0xd8, 0x43, 0xff, 0xd9, + 0x3c, 0x1a, 0x3f, 0xaf, 0xf1, 0x1f, 0x5c, 0x1b, 0xdf, 0x20, 0x17, 0xbb, 0xc3, 0x4f, 0xfc, 0x1c, + 0xcd, 0x0d, 0xf8, 0xfe, 0xab, 0xf1, 0xee, 0x4f, 0xc7, 0x1b, 0xb2, 0x2c, 0x24, 0x99, 0xb8, 0x3d, + 0x8b, 0x66, 0x52, 0x8c, 0xca, 0x19, 0x5a, 0xb8, 0x52, 0x0d, 0x26, 0x28, 0x9f, 0x88, 0x58, 0xef, + 0xcf, 0xb4, 0xd9, 0xa6, 0x8e, 0xe9, 0x5a, 0x19, 0x8e, 0xb2, 0x94, 0xbb, 0xc6, 0x42, 0x0c, 0xbc, + 0x2b, 0x4d, 0x54, 0x1c, 0x29, 0xf6, 0x02, 0x90, 0xf3, 0x57, 0x40, 0x8f, 0x50, 0xe1, 0x86, 0xec, + 0x2b, 0x6a, 0xec, 0xa3, 0xf2, 0x40, 0xf6, 0x39, 0x93, 0x80, 0x0f, 0x50, 0x41, 0x80, 0x4c, 0x62, + 0x65, 0x29, 0x6d, 0x4d, 0x6f, 0xf8, 0x78, 0xbc, 0x24, 0x56, 0x9e, 0xc5, 0xaa, 0x7c, 0x75, 0xd0, + 0xed, 0x89, 0x6e, 0xb8, 0x8a, 0x66, 0x14, 0xbc, 0x55, 0x66, 0x25, 0xff, 0x5c, 0x84, 0xf6, 0xc4, + 0x6c, 0xb8, 0xd4, 0xfa, 0x1a, 0xf6, 0x40, 0x89, 0xa8, 0x23, 0xcd, 0xd2, 0x3d, 0x9e, 0xc8, 0xd9, + 0x1c, 0xb6, 0x91, 0xa7, 0xd3, 0x8a, 0xa4, 0xe2, 0x22, 0xea, 0xd0, 0xf8, 0x65, 0x86, 0x31, 0x78, + 0x44, 0x29, 0x41, 0xa3, 0xab, 0xfd, 0x72, 0xd0, 0xad, 0x91, 0xa0, 0xd4, 0xb4, 0x9f, 0x95, 0x8f, + 0xcf, 0x1d, 0xb4, 0x38, 0xee, 0x4c, 0xe1, 0xfa, 0x8d, 0x3a, 0x67, 0xcf, 0xdb, 0x52, 0xfd, 0xa6, + 0x8d, 0xd7, 0x83, 0xac, 0xd4, 0x3f, 0x9e, 0xff, 0xfc, 0x94, 0x7b, 0x58, 0xa9, 0xe9, 0x1b, 0x6f, + 0x8e, 0xa2, 0x74, 0x3f, 0x8c, 0x9c, 0xcc, 0xfa, 0xda, 0xd9, 0x66, 0x38, 0x86, 0xc1, 0xa6, 0xb3, + 0xb6, 0xfd, 0xc3, 0x41, 0xf7, 0x3a, 0xbc, 0x37, 0x95, 0xc3, 0xf6, 0xf2, 0xf8, 0xb6, 0xec, 0xa5, + 0xb3, 0xdb, 0x73, 0x5e, 0xb7, 0x0c, 0x40, 0xc8, 0xd3, 0xe3, 0x4a, 0xb8, 0x08, 0xdd, 0x10, 0x98, + 0x9e, 0xac, 0xfd, 0x99, 0xf4, 0x23, 0x39, 0xf9, 0xcf, 0xb7, 0x65, 0x85, 0xcf, 0xb9, 0x7c, 0xb3, + 0xd1, 0xf8, 0x92, 0x2b, 0x37, 0x33, 0xc0, 0x46, 0x20, 0x49, 0x26, 0xa6, 0xd2, 0x61, 0x95, 0x98, + 0xc4, 0xf2, 0x9b, 0x75, 0x69, 0x37, 0x02, 0xd9, 0x1e, 0xb8, 0xb4, 0x0f, 0xab, 0x6d, 0xeb, 0x72, + 0x34, 0xab, 0x09, 0xac, 0xff, 0x0e, 0x00, 0x00, 0xff, 0xff, 0x4b, 0xdd, 0x93, 0x1f, 0x79, 0x07, + 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/keyword_plan_keyword_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/keyword_plan_keyword_service.pb.go new file mode 100644 index 000000000..1cc083f47 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/keyword_plan_keyword_service.pb.go @@ -0,0 +1,548 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/keyword_plan_keyword_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" +import field_mask "google.golang.org/genproto/protobuf/field_mask" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [KeywordPlanKeywordService.GetKeywordPlanKeyword][google.ads.googleads.v0.services.KeywordPlanKeywordService.GetKeywordPlanKeyword]. +type GetKeywordPlanKeywordRequest struct { + // The resource name of the ad group keyword to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetKeywordPlanKeywordRequest) Reset() { *m = GetKeywordPlanKeywordRequest{} } +func (m *GetKeywordPlanKeywordRequest) String() string { return proto.CompactTextString(m) } +func (*GetKeywordPlanKeywordRequest) ProtoMessage() {} +func (*GetKeywordPlanKeywordRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_keyword_service_2596e4a4df5e4576, []int{0} +} +func (m *GetKeywordPlanKeywordRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetKeywordPlanKeywordRequest.Unmarshal(m, b) +} +func (m *GetKeywordPlanKeywordRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetKeywordPlanKeywordRequest.Marshal(b, m, deterministic) +} +func (dst *GetKeywordPlanKeywordRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetKeywordPlanKeywordRequest.Merge(dst, src) +} +func (m *GetKeywordPlanKeywordRequest) XXX_Size() int { + return xxx_messageInfo_GetKeywordPlanKeywordRequest.Size(m) +} +func (m *GetKeywordPlanKeywordRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetKeywordPlanKeywordRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetKeywordPlanKeywordRequest proto.InternalMessageInfo + +func (m *GetKeywordPlanKeywordRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +// Request message for [KeywordPlanKeywordService.MutateKeywordPlanKeywords][google.ads.googleads.v0.services.KeywordPlanKeywordService.MutateKeywordPlanKeywords]. +type MutateKeywordPlanKeywordsRequest struct { + // The ID of the customer whose Keyword Plan keywords are being modified. + CustomerId string `protobuf:"bytes,1,opt,name=customer_id,json=customerId,proto3" json:"customer_id,omitempty"` + // The list of operations to perform on individual Keyword Plan keywords. + Operations []*KeywordPlanKeywordOperation `protobuf:"bytes,2,rep,name=operations,proto3" json:"operations,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateKeywordPlanKeywordsRequest) Reset() { *m = MutateKeywordPlanKeywordsRequest{} } +func (m *MutateKeywordPlanKeywordsRequest) String() string { return proto.CompactTextString(m) } +func (*MutateKeywordPlanKeywordsRequest) ProtoMessage() {} +func (*MutateKeywordPlanKeywordsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_keyword_service_2596e4a4df5e4576, []int{1} +} +func (m *MutateKeywordPlanKeywordsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateKeywordPlanKeywordsRequest.Unmarshal(m, b) +} +func (m *MutateKeywordPlanKeywordsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateKeywordPlanKeywordsRequest.Marshal(b, m, deterministic) +} +func (dst *MutateKeywordPlanKeywordsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateKeywordPlanKeywordsRequest.Merge(dst, src) +} +func (m *MutateKeywordPlanKeywordsRequest) XXX_Size() int { + return xxx_messageInfo_MutateKeywordPlanKeywordsRequest.Size(m) +} +func (m *MutateKeywordPlanKeywordsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_MutateKeywordPlanKeywordsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateKeywordPlanKeywordsRequest proto.InternalMessageInfo + +func (m *MutateKeywordPlanKeywordsRequest) GetCustomerId() string { + if m != nil { + return m.CustomerId + } + return "" +} + +func (m *MutateKeywordPlanKeywordsRequest) GetOperations() []*KeywordPlanKeywordOperation { + if m != nil { + return m.Operations + } + return nil +} + +// A single operation (create, update, remove) on a Keyword Plan keyword. +type KeywordPlanKeywordOperation struct { + // The FieldMask that determines which resource fields are modified in an + // update. + UpdateMask *field_mask.FieldMask `protobuf:"bytes,4,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // The mutate operation. + // + // Types that are valid to be assigned to Operation: + // *KeywordPlanKeywordOperation_Create + // *KeywordPlanKeywordOperation_Update + // *KeywordPlanKeywordOperation_Remove + Operation isKeywordPlanKeywordOperation_Operation `protobuf_oneof:"operation"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *KeywordPlanKeywordOperation) Reset() { *m = KeywordPlanKeywordOperation{} } +func (m *KeywordPlanKeywordOperation) String() string { return proto.CompactTextString(m) } +func (*KeywordPlanKeywordOperation) ProtoMessage() {} +func (*KeywordPlanKeywordOperation) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_keyword_service_2596e4a4df5e4576, []int{2} +} +func (m *KeywordPlanKeywordOperation) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_KeywordPlanKeywordOperation.Unmarshal(m, b) +} +func (m *KeywordPlanKeywordOperation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_KeywordPlanKeywordOperation.Marshal(b, m, deterministic) +} +func (dst *KeywordPlanKeywordOperation) XXX_Merge(src proto.Message) { + xxx_messageInfo_KeywordPlanKeywordOperation.Merge(dst, src) +} +func (m *KeywordPlanKeywordOperation) XXX_Size() int { + return xxx_messageInfo_KeywordPlanKeywordOperation.Size(m) +} +func (m *KeywordPlanKeywordOperation) XXX_DiscardUnknown() { + xxx_messageInfo_KeywordPlanKeywordOperation.DiscardUnknown(m) +} + +var xxx_messageInfo_KeywordPlanKeywordOperation proto.InternalMessageInfo + +func (m *KeywordPlanKeywordOperation) GetUpdateMask() *field_mask.FieldMask { + if m != nil { + return m.UpdateMask + } + return nil +} + +type isKeywordPlanKeywordOperation_Operation interface { + isKeywordPlanKeywordOperation_Operation() +} + +type KeywordPlanKeywordOperation_Create struct { + Create *resources.KeywordPlanKeyword `protobuf:"bytes,1,opt,name=create,proto3,oneof"` +} + +type KeywordPlanKeywordOperation_Update struct { + Update *resources.KeywordPlanKeyword `protobuf:"bytes,2,opt,name=update,proto3,oneof"` +} + +type KeywordPlanKeywordOperation_Remove struct { + Remove string `protobuf:"bytes,3,opt,name=remove,proto3,oneof"` +} + +func (*KeywordPlanKeywordOperation_Create) isKeywordPlanKeywordOperation_Operation() {} + +func (*KeywordPlanKeywordOperation_Update) isKeywordPlanKeywordOperation_Operation() {} + +func (*KeywordPlanKeywordOperation_Remove) isKeywordPlanKeywordOperation_Operation() {} + +func (m *KeywordPlanKeywordOperation) GetOperation() isKeywordPlanKeywordOperation_Operation { + if m != nil { + return m.Operation + } + return nil +} + +func (m *KeywordPlanKeywordOperation) GetCreate() *resources.KeywordPlanKeyword { + if x, ok := m.GetOperation().(*KeywordPlanKeywordOperation_Create); ok { + return x.Create + } + return nil +} + +func (m *KeywordPlanKeywordOperation) GetUpdate() *resources.KeywordPlanKeyword { + if x, ok := m.GetOperation().(*KeywordPlanKeywordOperation_Update); ok { + return x.Update + } + return nil +} + +func (m *KeywordPlanKeywordOperation) GetRemove() string { + if x, ok := m.GetOperation().(*KeywordPlanKeywordOperation_Remove); ok { + return x.Remove + } + return "" +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*KeywordPlanKeywordOperation) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _KeywordPlanKeywordOperation_OneofMarshaler, _KeywordPlanKeywordOperation_OneofUnmarshaler, _KeywordPlanKeywordOperation_OneofSizer, []interface{}{ + (*KeywordPlanKeywordOperation_Create)(nil), + (*KeywordPlanKeywordOperation_Update)(nil), + (*KeywordPlanKeywordOperation_Remove)(nil), + } +} + +func _KeywordPlanKeywordOperation_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*KeywordPlanKeywordOperation) + // operation + switch x := m.Operation.(type) { + case *KeywordPlanKeywordOperation_Create: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Create); err != nil { + return err + } + case *KeywordPlanKeywordOperation_Update: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Update); err != nil { + return err + } + case *KeywordPlanKeywordOperation_Remove: + b.EncodeVarint(3<<3 | proto.WireBytes) + b.EncodeStringBytes(x.Remove) + case nil: + default: + return fmt.Errorf("KeywordPlanKeywordOperation.Operation has unexpected type %T", x) + } + return nil +} + +func _KeywordPlanKeywordOperation_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*KeywordPlanKeywordOperation) + switch tag { + case 1: // operation.create + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.KeywordPlanKeyword) + err := b.DecodeMessage(msg) + m.Operation = &KeywordPlanKeywordOperation_Create{msg} + return true, err + case 2: // operation.update + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.KeywordPlanKeyword) + err := b.DecodeMessage(msg) + m.Operation = &KeywordPlanKeywordOperation_Update{msg} + return true, err + case 3: // operation.remove + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Operation = &KeywordPlanKeywordOperation_Remove{x} + return true, err + default: + return false, nil + } +} + +func _KeywordPlanKeywordOperation_OneofSizer(msg proto.Message) (n int) { + m := msg.(*KeywordPlanKeywordOperation) + // operation + switch x := m.Operation.(type) { + case *KeywordPlanKeywordOperation_Create: + s := proto.Size(x.Create) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *KeywordPlanKeywordOperation_Update: + s := proto.Size(x.Update) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *KeywordPlanKeywordOperation_Remove: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(len(x.Remove))) + n += len(x.Remove) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// Response message for a Keyword Plan keyword mutate. +type MutateKeywordPlanKeywordsResponse struct { + // All results for the mutate. + Results []*MutateKeywordPlanKeywordResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateKeywordPlanKeywordsResponse) Reset() { *m = MutateKeywordPlanKeywordsResponse{} } +func (m *MutateKeywordPlanKeywordsResponse) String() string { return proto.CompactTextString(m) } +func (*MutateKeywordPlanKeywordsResponse) ProtoMessage() {} +func (*MutateKeywordPlanKeywordsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_keyword_service_2596e4a4df5e4576, []int{3} +} +func (m *MutateKeywordPlanKeywordsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateKeywordPlanKeywordsResponse.Unmarshal(m, b) +} +func (m *MutateKeywordPlanKeywordsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateKeywordPlanKeywordsResponse.Marshal(b, m, deterministic) +} +func (dst *MutateKeywordPlanKeywordsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateKeywordPlanKeywordsResponse.Merge(dst, src) +} +func (m *MutateKeywordPlanKeywordsResponse) XXX_Size() int { + return xxx_messageInfo_MutateKeywordPlanKeywordsResponse.Size(m) +} +func (m *MutateKeywordPlanKeywordsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MutateKeywordPlanKeywordsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateKeywordPlanKeywordsResponse proto.InternalMessageInfo + +func (m *MutateKeywordPlanKeywordsResponse) GetResults() []*MutateKeywordPlanKeywordResult { + if m != nil { + return m.Results + } + return nil +} + +// The result for the Keyword Plan keyword mutate. +type MutateKeywordPlanKeywordResult struct { + // Returned for successful operations. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateKeywordPlanKeywordResult) Reset() { *m = MutateKeywordPlanKeywordResult{} } +func (m *MutateKeywordPlanKeywordResult) String() string { return proto.CompactTextString(m) } +func (*MutateKeywordPlanKeywordResult) ProtoMessage() {} +func (*MutateKeywordPlanKeywordResult) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_keyword_service_2596e4a4df5e4576, []int{4} +} +func (m *MutateKeywordPlanKeywordResult) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateKeywordPlanKeywordResult.Unmarshal(m, b) +} +func (m *MutateKeywordPlanKeywordResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateKeywordPlanKeywordResult.Marshal(b, m, deterministic) +} +func (dst *MutateKeywordPlanKeywordResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateKeywordPlanKeywordResult.Merge(dst, src) +} +func (m *MutateKeywordPlanKeywordResult) XXX_Size() int { + return xxx_messageInfo_MutateKeywordPlanKeywordResult.Size(m) +} +func (m *MutateKeywordPlanKeywordResult) XXX_DiscardUnknown() { + xxx_messageInfo_MutateKeywordPlanKeywordResult.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateKeywordPlanKeywordResult proto.InternalMessageInfo + +func (m *MutateKeywordPlanKeywordResult) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetKeywordPlanKeywordRequest)(nil), "google.ads.googleads.v0.services.GetKeywordPlanKeywordRequest") + proto.RegisterType((*MutateKeywordPlanKeywordsRequest)(nil), "google.ads.googleads.v0.services.MutateKeywordPlanKeywordsRequest") + proto.RegisterType((*KeywordPlanKeywordOperation)(nil), "google.ads.googleads.v0.services.KeywordPlanKeywordOperation") + proto.RegisterType((*MutateKeywordPlanKeywordsResponse)(nil), "google.ads.googleads.v0.services.MutateKeywordPlanKeywordsResponse") + proto.RegisterType((*MutateKeywordPlanKeywordResult)(nil), "google.ads.googleads.v0.services.MutateKeywordPlanKeywordResult") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// KeywordPlanKeywordServiceClient is the client API for KeywordPlanKeywordService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type KeywordPlanKeywordServiceClient interface { + // Returns the requested Keyword Plan keyword in full detail. + GetKeywordPlanKeyword(ctx context.Context, in *GetKeywordPlanKeywordRequest, opts ...grpc.CallOption) (*resources.KeywordPlanKeyword, error) + // Creates, updates, or removes Keyword Plan keywords. Operation statuses are + // returned. + MutateKeywordPlanKeywords(ctx context.Context, in *MutateKeywordPlanKeywordsRequest, opts ...grpc.CallOption) (*MutateKeywordPlanKeywordsResponse, error) +} + +type keywordPlanKeywordServiceClient struct { + cc *grpc.ClientConn +} + +func NewKeywordPlanKeywordServiceClient(cc *grpc.ClientConn) KeywordPlanKeywordServiceClient { + return &keywordPlanKeywordServiceClient{cc} +} + +func (c *keywordPlanKeywordServiceClient) GetKeywordPlanKeyword(ctx context.Context, in *GetKeywordPlanKeywordRequest, opts ...grpc.CallOption) (*resources.KeywordPlanKeyword, error) { + out := new(resources.KeywordPlanKeyword) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.KeywordPlanKeywordService/GetKeywordPlanKeyword", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *keywordPlanKeywordServiceClient) MutateKeywordPlanKeywords(ctx context.Context, in *MutateKeywordPlanKeywordsRequest, opts ...grpc.CallOption) (*MutateKeywordPlanKeywordsResponse, error) { + out := new(MutateKeywordPlanKeywordsResponse) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.KeywordPlanKeywordService/MutateKeywordPlanKeywords", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// KeywordPlanKeywordServiceServer is the server API for KeywordPlanKeywordService service. +type KeywordPlanKeywordServiceServer interface { + // Returns the requested Keyword Plan keyword in full detail. + GetKeywordPlanKeyword(context.Context, *GetKeywordPlanKeywordRequest) (*resources.KeywordPlanKeyword, error) + // Creates, updates, or removes Keyword Plan keywords. Operation statuses are + // returned. + MutateKeywordPlanKeywords(context.Context, *MutateKeywordPlanKeywordsRequest) (*MutateKeywordPlanKeywordsResponse, error) +} + +func RegisterKeywordPlanKeywordServiceServer(s *grpc.Server, srv KeywordPlanKeywordServiceServer) { + s.RegisterService(&_KeywordPlanKeywordService_serviceDesc, srv) +} + +func _KeywordPlanKeywordService_GetKeywordPlanKeyword_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetKeywordPlanKeywordRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(KeywordPlanKeywordServiceServer).GetKeywordPlanKeyword(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.KeywordPlanKeywordService/GetKeywordPlanKeyword", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(KeywordPlanKeywordServiceServer).GetKeywordPlanKeyword(ctx, req.(*GetKeywordPlanKeywordRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _KeywordPlanKeywordService_MutateKeywordPlanKeywords_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MutateKeywordPlanKeywordsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(KeywordPlanKeywordServiceServer).MutateKeywordPlanKeywords(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.KeywordPlanKeywordService/MutateKeywordPlanKeywords", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(KeywordPlanKeywordServiceServer).MutateKeywordPlanKeywords(ctx, req.(*MutateKeywordPlanKeywordsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _KeywordPlanKeywordService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.KeywordPlanKeywordService", + HandlerType: (*KeywordPlanKeywordServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetKeywordPlanKeyword", + Handler: _KeywordPlanKeywordService_GetKeywordPlanKeyword_Handler, + }, + { + MethodName: "MutateKeywordPlanKeywords", + Handler: _KeywordPlanKeywordService_MutateKeywordPlanKeywords_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/keyword_plan_keyword_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/keyword_plan_keyword_service.proto", fileDescriptor_keyword_plan_keyword_service_2596e4a4df5e4576) +} + +var fileDescriptor_keyword_plan_keyword_service_2596e4a4df5e4576 = []byte{ + // 604 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x95, 0x4f, 0x8b, 0xd3, 0x4e, + 0x18, 0xc7, 0x7f, 0x49, 0x7f, 0x54, 0x76, 0xa2, 0x97, 0x01, 0x21, 0x5b, 0x97, 0x35, 0x46, 0x0f, + 0xa5, 0x87, 0x49, 0xa9, 0x2c, 0xca, 0xae, 0x15, 0xdb, 0xa2, 0x5d, 0x91, 0x75, 0x4b, 0x84, 0x3d, + 0x2c, 0x95, 0x32, 0xdb, 0xcc, 0x86, 0xd0, 0x24, 0x13, 0x67, 0x26, 0x15, 0x59, 0x16, 0xc1, 0xb7, + 0xe0, 0x3b, 0x58, 0x6f, 0xbe, 0x14, 0xc1, 0x93, 0x07, 0x6f, 0x9e, 0xbc, 0xf8, 0x2e, 0x24, 0x99, + 0x4c, 0xad, 0xb4, 0x69, 0x65, 0xf7, 0xf6, 0x4c, 0xe6, 0x99, 0xcf, 0xf3, 0xe7, 0x3b, 0xcf, 0x04, + 0xf4, 0x7c, 0x4a, 0xfd, 0x90, 0x38, 0xd8, 0xe3, 0x8e, 0x34, 0x33, 0x6b, 0xda, 0x74, 0x38, 0x61, + 0xd3, 0x60, 0x4c, 0xb8, 0x33, 0x21, 0xef, 0xde, 0x52, 0xe6, 0x8d, 0x92, 0x10, 0xc7, 0x23, 0xb5, + 0x28, 0x76, 0x51, 0xc2, 0xa8, 0xa0, 0xd0, 0x92, 0x27, 0x11, 0xf6, 0x38, 0x9a, 0x41, 0xd0, 0xb4, + 0x89, 0x14, 0xa4, 0xf6, 0xa8, 0x2c, 0x0c, 0x23, 0x9c, 0xa6, 0xac, 0x2c, 0x8e, 0xe4, 0xd7, 0xb6, + 0xd4, 0xe9, 0x24, 0x70, 0x70, 0x1c, 0x53, 0x81, 0x45, 0x40, 0x63, 0x5e, 0xec, 0x16, 0xd1, 0x9d, + 0x7c, 0x75, 0x92, 0x9e, 0x3a, 0xa7, 0x01, 0x09, 0xbd, 0x51, 0x84, 0xf9, 0x44, 0x7a, 0xd8, 0x3d, + 0xb0, 0xd5, 0x27, 0xe2, 0x85, 0x64, 0x0e, 0x42, 0x1c, 0x17, 0xa6, 0x4b, 0xde, 0xa4, 0x84, 0x0b, + 0x78, 0x17, 0xdc, 0x50, 0x79, 0x8c, 0x62, 0x1c, 0x11, 0x53, 0xb3, 0xb4, 0xfa, 0x86, 0x7b, 0x5d, + 0x7d, 0x7c, 0x89, 0x23, 0x62, 0x5f, 0x68, 0xc0, 0x3a, 0x48, 0x05, 0x16, 0x64, 0x11, 0xc4, 0x15, + 0xe9, 0x36, 0x30, 0xc6, 0x29, 0x17, 0x34, 0x22, 0x6c, 0x14, 0x78, 0x05, 0x07, 0xa8, 0x4f, 0xcf, + 0x3d, 0xf8, 0x1a, 0x00, 0x9a, 0x10, 0x26, 0x0b, 0x30, 0x75, 0xab, 0x52, 0x37, 0x5a, 0x6d, 0xb4, + 0xae, 0x7f, 0x68, 0x31, 0xe4, 0xa1, 0xa2, 0xb8, 0x73, 0x40, 0xfb, 0x93, 0x0e, 0x6e, 0xad, 0xf0, + 0x85, 0x7b, 0xc0, 0x48, 0x13, 0x0f, 0x0b, 0x92, 0xb7, 0xc7, 0xfc, 0xdf, 0xd2, 0xea, 0x46, 0xab, + 0xa6, 0xe2, 0xab, 0x0e, 0xa2, 0x67, 0x59, 0x07, 0x0f, 0x30, 0x9f, 0xb8, 0x40, 0xba, 0x67, 0x36, + 0x3c, 0x04, 0xd5, 0x31, 0x23, 0x58, 0xc8, 0xfe, 0x18, 0xad, 0x9d, 0xd2, 0xbc, 0x67, 0xaa, 0x2e, + 0x49, 0x7c, 0xff, 0x3f, 0xb7, 0xc0, 0x64, 0x40, 0x89, 0x37, 0xf5, 0x2b, 0x02, 0x25, 0x06, 0x9a, + 0xa0, 0xca, 0x48, 0x44, 0xa7, 0xc4, 0xac, 0x64, 0x9d, 0xcf, 0x76, 0xe4, 0xba, 0x6b, 0x80, 0x8d, + 0x59, 0x9b, 0xec, 0xf7, 0xe0, 0xce, 0x0a, 0x25, 0x79, 0x42, 0x63, 0x4e, 0xe0, 0x31, 0xb8, 0xc6, + 0x08, 0x4f, 0x43, 0xa1, 0x64, 0x7a, 0xb2, 0x5e, 0xa6, 0x32, 0xaa, 0x9b, 0x83, 0x5c, 0x05, 0xb4, + 0x9f, 0x82, 0xed, 0xd5, 0xae, 0xff, 0x74, 0x25, 0x5b, 0xdf, 0x2b, 0x60, 0x73, 0x91, 0xf0, 0x4a, + 0x66, 0x03, 0xbf, 0x6a, 0xe0, 0xe6, 0xd2, 0x6b, 0x0f, 0x1f, 0xaf, 0xaf, 0x64, 0xd5, 0xbc, 0xd4, + 0x2e, 0xa7, 0x93, 0xdd, 0xfe, 0xf0, 0xed, 0xe7, 0x47, 0xfd, 0x01, 0xdc, 0xc9, 0x06, 0xff, 0xec, + 0xaf, 0xf2, 0xda, 0x6a, 0x44, 0xb8, 0xd3, 0x50, 0x2f, 0xc1, 0xbc, 0x2a, 0x4e, 0xe3, 0x1c, 0xfe, + 0xd2, 0xc0, 0x66, 0xa9, 0x6c, 0xb0, 0x7b, 0x79, 0x75, 0xd4, 0xf4, 0xd6, 0x7a, 0x57, 0x62, 0xc8, + 0x7b, 0x63, 0xf7, 0xf2, 0x2a, 0xdb, 0xf6, 0xc3, 0xac, 0xca, 0x3f, 0x65, 0x9d, 0xcd, 0xbd, 0x0b, + 0xed, 0xc6, 0xf9, 0xb2, 0x22, 0x77, 0xa3, 0x1c, 0xbe, 0xab, 0x35, 0xba, 0x3f, 0x34, 0x70, 0x6f, + 0x4c, 0xa3, 0xb5, 0xf9, 0x74, 0xb7, 0x4b, 0xf5, 0x1f, 0x64, 0xc3, 0x3c, 0xd0, 0x8e, 0xf7, 0x0b, + 0x86, 0x4f, 0x43, 0x1c, 0xfb, 0x88, 0x32, 0xdf, 0xf1, 0x49, 0x9c, 0x8f, 0xba, 0x7a, 0x8a, 0x93, + 0x80, 0x97, 0xff, 0x00, 0xf6, 0x94, 0x71, 0xa1, 0x57, 0xfa, 0x9d, 0xce, 0x67, 0xdd, 0xea, 0x4b, + 0x60, 0xc7, 0xe3, 0x48, 0x9a, 0x99, 0x75, 0xd4, 0x44, 0x45, 0x60, 0xfe, 0x45, 0xb9, 0x0c, 0x3b, + 0x1e, 0x1f, 0xce, 0x5c, 0x86, 0x47, 0xcd, 0xa1, 0x72, 0x39, 0xa9, 0xe6, 0x09, 0xdc, 0xff, 0x1d, + 0x00, 0x00, 0xff, 0xff, 0xe6, 0xd2, 0x07, 0xc4, 0x80, 0x06, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/keyword_plan_negative_keyword_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/keyword_plan_negative_keyword_service.pb.go new file mode 100644 index 000000000..827ba33e1 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/keyword_plan_negative_keyword_service.pb.go @@ -0,0 +1,559 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/keyword_plan_negative_keyword_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" +import field_mask "google.golang.org/genproto/protobuf/field_mask" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for +// [KeywordPlanNegativeKeywordService.GetKeywordPlanNegativeKeyword][google.ads.googleads.v0.services.KeywordPlanNegativeKeywordService.GetKeywordPlanNegativeKeyword]. +type GetKeywordPlanNegativeKeywordRequest struct { + // The resource name of the plan to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetKeywordPlanNegativeKeywordRequest) Reset() { *m = GetKeywordPlanNegativeKeywordRequest{} } +func (m *GetKeywordPlanNegativeKeywordRequest) String() string { return proto.CompactTextString(m) } +func (*GetKeywordPlanNegativeKeywordRequest) ProtoMessage() {} +func (*GetKeywordPlanNegativeKeywordRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_negative_keyword_service_8357f05c658450a2, []int{0} +} +func (m *GetKeywordPlanNegativeKeywordRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetKeywordPlanNegativeKeywordRequest.Unmarshal(m, b) +} +func (m *GetKeywordPlanNegativeKeywordRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetKeywordPlanNegativeKeywordRequest.Marshal(b, m, deterministic) +} +func (dst *GetKeywordPlanNegativeKeywordRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetKeywordPlanNegativeKeywordRequest.Merge(dst, src) +} +func (m *GetKeywordPlanNegativeKeywordRequest) XXX_Size() int { + return xxx_messageInfo_GetKeywordPlanNegativeKeywordRequest.Size(m) +} +func (m *GetKeywordPlanNegativeKeywordRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetKeywordPlanNegativeKeywordRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetKeywordPlanNegativeKeywordRequest proto.InternalMessageInfo + +func (m *GetKeywordPlanNegativeKeywordRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +// Request message for +// [KeywordPlanNegativeKeywordService.MutateKeywordPlanNegativeKeywords][google.ads.googleads.v0.services.KeywordPlanNegativeKeywordService.MutateKeywordPlanNegativeKeywords]. +type MutateKeywordPlanNegativeKeywordsRequest struct { + // The ID of the customer whose negative keywords are being modified. + CustomerId string `protobuf:"bytes,1,opt,name=customer_id,json=customerId,proto3" json:"customer_id,omitempty"` + // The list of operations to perform on individual Keyword Plan negative + // keywords. + Operations []*KeywordPlanNegativeKeywordOperation `protobuf:"bytes,2,rep,name=operations,proto3" json:"operations,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateKeywordPlanNegativeKeywordsRequest) Reset() { + *m = MutateKeywordPlanNegativeKeywordsRequest{} +} +func (m *MutateKeywordPlanNegativeKeywordsRequest) String() string { return proto.CompactTextString(m) } +func (*MutateKeywordPlanNegativeKeywordsRequest) ProtoMessage() {} +func (*MutateKeywordPlanNegativeKeywordsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_negative_keyword_service_8357f05c658450a2, []int{1} +} +func (m *MutateKeywordPlanNegativeKeywordsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateKeywordPlanNegativeKeywordsRequest.Unmarshal(m, b) +} +func (m *MutateKeywordPlanNegativeKeywordsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateKeywordPlanNegativeKeywordsRequest.Marshal(b, m, deterministic) +} +func (dst *MutateKeywordPlanNegativeKeywordsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateKeywordPlanNegativeKeywordsRequest.Merge(dst, src) +} +func (m *MutateKeywordPlanNegativeKeywordsRequest) XXX_Size() int { + return xxx_messageInfo_MutateKeywordPlanNegativeKeywordsRequest.Size(m) +} +func (m *MutateKeywordPlanNegativeKeywordsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_MutateKeywordPlanNegativeKeywordsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateKeywordPlanNegativeKeywordsRequest proto.InternalMessageInfo + +func (m *MutateKeywordPlanNegativeKeywordsRequest) GetCustomerId() string { + if m != nil { + return m.CustomerId + } + return "" +} + +func (m *MutateKeywordPlanNegativeKeywordsRequest) GetOperations() []*KeywordPlanNegativeKeywordOperation { + if m != nil { + return m.Operations + } + return nil +} + +// A single operation (create, update, remove) on a Keyword Plan negative +// keyword. +type KeywordPlanNegativeKeywordOperation struct { + // The FieldMask that determines which resource fields are modified in an + // update. + UpdateMask *field_mask.FieldMask `protobuf:"bytes,4,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // The mutate operation. + // + // Types that are valid to be assigned to Operation: + // *KeywordPlanNegativeKeywordOperation_Create + // *KeywordPlanNegativeKeywordOperation_Update + // *KeywordPlanNegativeKeywordOperation_Remove + Operation isKeywordPlanNegativeKeywordOperation_Operation `protobuf_oneof:"operation"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *KeywordPlanNegativeKeywordOperation) Reset() { *m = KeywordPlanNegativeKeywordOperation{} } +func (m *KeywordPlanNegativeKeywordOperation) String() string { return proto.CompactTextString(m) } +func (*KeywordPlanNegativeKeywordOperation) ProtoMessage() {} +func (*KeywordPlanNegativeKeywordOperation) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_negative_keyword_service_8357f05c658450a2, []int{2} +} +func (m *KeywordPlanNegativeKeywordOperation) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_KeywordPlanNegativeKeywordOperation.Unmarshal(m, b) +} +func (m *KeywordPlanNegativeKeywordOperation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_KeywordPlanNegativeKeywordOperation.Marshal(b, m, deterministic) +} +func (dst *KeywordPlanNegativeKeywordOperation) XXX_Merge(src proto.Message) { + xxx_messageInfo_KeywordPlanNegativeKeywordOperation.Merge(dst, src) +} +func (m *KeywordPlanNegativeKeywordOperation) XXX_Size() int { + return xxx_messageInfo_KeywordPlanNegativeKeywordOperation.Size(m) +} +func (m *KeywordPlanNegativeKeywordOperation) XXX_DiscardUnknown() { + xxx_messageInfo_KeywordPlanNegativeKeywordOperation.DiscardUnknown(m) +} + +var xxx_messageInfo_KeywordPlanNegativeKeywordOperation proto.InternalMessageInfo + +func (m *KeywordPlanNegativeKeywordOperation) GetUpdateMask() *field_mask.FieldMask { + if m != nil { + return m.UpdateMask + } + return nil +} + +type isKeywordPlanNegativeKeywordOperation_Operation interface { + isKeywordPlanNegativeKeywordOperation_Operation() +} + +type KeywordPlanNegativeKeywordOperation_Create struct { + Create *resources.KeywordPlanNegativeKeyword `protobuf:"bytes,1,opt,name=create,proto3,oneof"` +} + +type KeywordPlanNegativeKeywordOperation_Update struct { + Update *resources.KeywordPlanNegativeKeyword `protobuf:"bytes,2,opt,name=update,proto3,oneof"` +} + +type KeywordPlanNegativeKeywordOperation_Remove struct { + Remove string `protobuf:"bytes,3,opt,name=remove,proto3,oneof"` +} + +func (*KeywordPlanNegativeKeywordOperation_Create) isKeywordPlanNegativeKeywordOperation_Operation() {} + +func (*KeywordPlanNegativeKeywordOperation_Update) isKeywordPlanNegativeKeywordOperation_Operation() {} + +func (*KeywordPlanNegativeKeywordOperation_Remove) isKeywordPlanNegativeKeywordOperation_Operation() {} + +func (m *KeywordPlanNegativeKeywordOperation) GetOperation() isKeywordPlanNegativeKeywordOperation_Operation { + if m != nil { + return m.Operation + } + return nil +} + +func (m *KeywordPlanNegativeKeywordOperation) GetCreate() *resources.KeywordPlanNegativeKeyword { + if x, ok := m.GetOperation().(*KeywordPlanNegativeKeywordOperation_Create); ok { + return x.Create + } + return nil +} + +func (m *KeywordPlanNegativeKeywordOperation) GetUpdate() *resources.KeywordPlanNegativeKeyword { + if x, ok := m.GetOperation().(*KeywordPlanNegativeKeywordOperation_Update); ok { + return x.Update + } + return nil +} + +func (m *KeywordPlanNegativeKeywordOperation) GetRemove() string { + if x, ok := m.GetOperation().(*KeywordPlanNegativeKeywordOperation_Remove); ok { + return x.Remove + } + return "" +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*KeywordPlanNegativeKeywordOperation) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _KeywordPlanNegativeKeywordOperation_OneofMarshaler, _KeywordPlanNegativeKeywordOperation_OneofUnmarshaler, _KeywordPlanNegativeKeywordOperation_OneofSizer, []interface{}{ + (*KeywordPlanNegativeKeywordOperation_Create)(nil), + (*KeywordPlanNegativeKeywordOperation_Update)(nil), + (*KeywordPlanNegativeKeywordOperation_Remove)(nil), + } +} + +func _KeywordPlanNegativeKeywordOperation_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*KeywordPlanNegativeKeywordOperation) + // operation + switch x := m.Operation.(type) { + case *KeywordPlanNegativeKeywordOperation_Create: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Create); err != nil { + return err + } + case *KeywordPlanNegativeKeywordOperation_Update: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Update); err != nil { + return err + } + case *KeywordPlanNegativeKeywordOperation_Remove: + b.EncodeVarint(3<<3 | proto.WireBytes) + b.EncodeStringBytes(x.Remove) + case nil: + default: + return fmt.Errorf("KeywordPlanNegativeKeywordOperation.Operation has unexpected type %T", x) + } + return nil +} + +func _KeywordPlanNegativeKeywordOperation_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*KeywordPlanNegativeKeywordOperation) + switch tag { + case 1: // operation.create + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.KeywordPlanNegativeKeyword) + err := b.DecodeMessage(msg) + m.Operation = &KeywordPlanNegativeKeywordOperation_Create{msg} + return true, err + case 2: // operation.update + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.KeywordPlanNegativeKeyword) + err := b.DecodeMessage(msg) + m.Operation = &KeywordPlanNegativeKeywordOperation_Update{msg} + return true, err + case 3: // operation.remove + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Operation = &KeywordPlanNegativeKeywordOperation_Remove{x} + return true, err + default: + return false, nil + } +} + +func _KeywordPlanNegativeKeywordOperation_OneofSizer(msg proto.Message) (n int) { + m := msg.(*KeywordPlanNegativeKeywordOperation) + // operation + switch x := m.Operation.(type) { + case *KeywordPlanNegativeKeywordOperation_Create: + s := proto.Size(x.Create) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *KeywordPlanNegativeKeywordOperation_Update: + s := proto.Size(x.Update) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *KeywordPlanNegativeKeywordOperation_Remove: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(len(x.Remove))) + n += len(x.Remove) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// Response message for a Keyword Plan negative keyword mutate. +type MutateKeywordPlanNegativeKeywordsResponse struct { + // All results for the mutate. + Results []*MutateKeywordPlanNegativeKeywordResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateKeywordPlanNegativeKeywordsResponse) Reset() { + *m = MutateKeywordPlanNegativeKeywordsResponse{} +} +func (m *MutateKeywordPlanNegativeKeywordsResponse) String() string { return proto.CompactTextString(m) } +func (*MutateKeywordPlanNegativeKeywordsResponse) ProtoMessage() {} +func (*MutateKeywordPlanNegativeKeywordsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_negative_keyword_service_8357f05c658450a2, []int{3} +} +func (m *MutateKeywordPlanNegativeKeywordsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateKeywordPlanNegativeKeywordsResponse.Unmarshal(m, b) +} +func (m *MutateKeywordPlanNegativeKeywordsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateKeywordPlanNegativeKeywordsResponse.Marshal(b, m, deterministic) +} +func (dst *MutateKeywordPlanNegativeKeywordsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateKeywordPlanNegativeKeywordsResponse.Merge(dst, src) +} +func (m *MutateKeywordPlanNegativeKeywordsResponse) XXX_Size() int { + return xxx_messageInfo_MutateKeywordPlanNegativeKeywordsResponse.Size(m) +} +func (m *MutateKeywordPlanNegativeKeywordsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MutateKeywordPlanNegativeKeywordsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateKeywordPlanNegativeKeywordsResponse proto.InternalMessageInfo + +func (m *MutateKeywordPlanNegativeKeywordsResponse) GetResults() []*MutateKeywordPlanNegativeKeywordResult { + if m != nil { + return m.Results + } + return nil +} + +// The result for the Keyword Plan negative keyword mutate. +type MutateKeywordPlanNegativeKeywordResult struct { + // Returned for successful operations. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateKeywordPlanNegativeKeywordResult) Reset() { + *m = MutateKeywordPlanNegativeKeywordResult{} +} +func (m *MutateKeywordPlanNegativeKeywordResult) String() string { return proto.CompactTextString(m) } +func (*MutateKeywordPlanNegativeKeywordResult) ProtoMessage() {} +func (*MutateKeywordPlanNegativeKeywordResult) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_negative_keyword_service_8357f05c658450a2, []int{4} +} +func (m *MutateKeywordPlanNegativeKeywordResult) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateKeywordPlanNegativeKeywordResult.Unmarshal(m, b) +} +func (m *MutateKeywordPlanNegativeKeywordResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateKeywordPlanNegativeKeywordResult.Marshal(b, m, deterministic) +} +func (dst *MutateKeywordPlanNegativeKeywordResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateKeywordPlanNegativeKeywordResult.Merge(dst, src) +} +func (m *MutateKeywordPlanNegativeKeywordResult) XXX_Size() int { + return xxx_messageInfo_MutateKeywordPlanNegativeKeywordResult.Size(m) +} +func (m *MutateKeywordPlanNegativeKeywordResult) XXX_DiscardUnknown() { + xxx_messageInfo_MutateKeywordPlanNegativeKeywordResult.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateKeywordPlanNegativeKeywordResult proto.InternalMessageInfo + +func (m *MutateKeywordPlanNegativeKeywordResult) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetKeywordPlanNegativeKeywordRequest)(nil), "google.ads.googleads.v0.services.GetKeywordPlanNegativeKeywordRequest") + proto.RegisterType((*MutateKeywordPlanNegativeKeywordsRequest)(nil), "google.ads.googleads.v0.services.MutateKeywordPlanNegativeKeywordsRequest") + proto.RegisterType((*KeywordPlanNegativeKeywordOperation)(nil), "google.ads.googleads.v0.services.KeywordPlanNegativeKeywordOperation") + proto.RegisterType((*MutateKeywordPlanNegativeKeywordsResponse)(nil), "google.ads.googleads.v0.services.MutateKeywordPlanNegativeKeywordsResponse") + proto.RegisterType((*MutateKeywordPlanNegativeKeywordResult)(nil), "google.ads.googleads.v0.services.MutateKeywordPlanNegativeKeywordResult") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// KeywordPlanNegativeKeywordServiceClient is the client API for KeywordPlanNegativeKeywordService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type KeywordPlanNegativeKeywordServiceClient interface { + // Returns the requested plan in full detail. + GetKeywordPlanNegativeKeyword(ctx context.Context, in *GetKeywordPlanNegativeKeywordRequest, opts ...grpc.CallOption) (*resources.KeywordPlanNegativeKeyword, error) + // Creates, updates, or removes Keyword Plan negative keywords. Operation + // statuses are returned. + MutateKeywordPlanNegativeKeywords(ctx context.Context, in *MutateKeywordPlanNegativeKeywordsRequest, opts ...grpc.CallOption) (*MutateKeywordPlanNegativeKeywordsResponse, error) +} + +type keywordPlanNegativeKeywordServiceClient struct { + cc *grpc.ClientConn +} + +func NewKeywordPlanNegativeKeywordServiceClient(cc *grpc.ClientConn) KeywordPlanNegativeKeywordServiceClient { + return &keywordPlanNegativeKeywordServiceClient{cc} +} + +func (c *keywordPlanNegativeKeywordServiceClient) GetKeywordPlanNegativeKeyword(ctx context.Context, in *GetKeywordPlanNegativeKeywordRequest, opts ...grpc.CallOption) (*resources.KeywordPlanNegativeKeyword, error) { + out := new(resources.KeywordPlanNegativeKeyword) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.KeywordPlanNegativeKeywordService/GetKeywordPlanNegativeKeyword", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *keywordPlanNegativeKeywordServiceClient) MutateKeywordPlanNegativeKeywords(ctx context.Context, in *MutateKeywordPlanNegativeKeywordsRequest, opts ...grpc.CallOption) (*MutateKeywordPlanNegativeKeywordsResponse, error) { + out := new(MutateKeywordPlanNegativeKeywordsResponse) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.KeywordPlanNegativeKeywordService/MutateKeywordPlanNegativeKeywords", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// KeywordPlanNegativeKeywordServiceServer is the server API for KeywordPlanNegativeKeywordService service. +type KeywordPlanNegativeKeywordServiceServer interface { + // Returns the requested plan in full detail. + GetKeywordPlanNegativeKeyword(context.Context, *GetKeywordPlanNegativeKeywordRequest) (*resources.KeywordPlanNegativeKeyword, error) + // Creates, updates, or removes Keyword Plan negative keywords. Operation + // statuses are returned. + MutateKeywordPlanNegativeKeywords(context.Context, *MutateKeywordPlanNegativeKeywordsRequest) (*MutateKeywordPlanNegativeKeywordsResponse, error) +} + +func RegisterKeywordPlanNegativeKeywordServiceServer(s *grpc.Server, srv KeywordPlanNegativeKeywordServiceServer) { + s.RegisterService(&_KeywordPlanNegativeKeywordService_serviceDesc, srv) +} + +func _KeywordPlanNegativeKeywordService_GetKeywordPlanNegativeKeyword_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetKeywordPlanNegativeKeywordRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(KeywordPlanNegativeKeywordServiceServer).GetKeywordPlanNegativeKeyword(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.KeywordPlanNegativeKeywordService/GetKeywordPlanNegativeKeyword", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(KeywordPlanNegativeKeywordServiceServer).GetKeywordPlanNegativeKeyword(ctx, req.(*GetKeywordPlanNegativeKeywordRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _KeywordPlanNegativeKeywordService_MutateKeywordPlanNegativeKeywords_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MutateKeywordPlanNegativeKeywordsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(KeywordPlanNegativeKeywordServiceServer).MutateKeywordPlanNegativeKeywords(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.KeywordPlanNegativeKeywordService/MutateKeywordPlanNegativeKeywords", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(KeywordPlanNegativeKeywordServiceServer).MutateKeywordPlanNegativeKeywords(ctx, req.(*MutateKeywordPlanNegativeKeywordsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _KeywordPlanNegativeKeywordService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.KeywordPlanNegativeKeywordService", + HandlerType: (*KeywordPlanNegativeKeywordServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetKeywordPlanNegativeKeyword", + Handler: _KeywordPlanNegativeKeywordService_GetKeywordPlanNegativeKeyword_Handler, + }, + { + MethodName: "MutateKeywordPlanNegativeKeywords", + Handler: _KeywordPlanNegativeKeywordService_MutateKeywordPlanNegativeKeywords_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/keyword_plan_negative_keyword_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/keyword_plan_negative_keyword_service.proto", fileDescriptor_keyword_plan_negative_keyword_service_8357f05c658450a2) +} + +var fileDescriptor_keyword_plan_negative_keyword_service_8357f05c658450a2 = []byte{ + // 617 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x95, 0xcf, 0x6e, 0xd3, 0x4e, + 0x10, 0xc7, 0x7f, 0x76, 0xab, 0xfe, 0xd4, 0x35, 0x5c, 0xf6, 0x64, 0x45, 0x20, 0x52, 0xb7, 0xaa, + 0x42, 0x0e, 0x76, 0x14, 0x6e, 0xad, 0x22, 0x48, 0xa4, 0x34, 0x81, 0x90, 0x12, 0x19, 0xa9, 0x48, + 0x28, 0x92, 0xb5, 0x89, 0xa7, 0x96, 0x15, 0xdb, 0x6b, 0xbc, 0xeb, 0x20, 0x54, 0xf5, 0xc2, 0x8d, + 0x13, 0x07, 0x1e, 0x00, 0x89, 0x23, 0x47, 0xae, 0xbc, 0x01, 0x57, 0x5e, 0x01, 0x71, 0xe3, 0x1d, + 0x90, 0xbd, 0xde, 0x50, 0x24, 0x1c, 0x47, 0x6a, 0x6f, 0xe3, 0xf1, 0xf8, 0x33, 0x7f, 0xbe, 0xbb, + 0x63, 0xf4, 0xd4, 0xa3, 0xd4, 0x0b, 0xc0, 0x22, 0x2e, 0xb3, 0x84, 0x99, 0x59, 0xcb, 0x96, 0xc5, + 0x20, 0x59, 0xfa, 0x73, 0x60, 0xd6, 0x02, 0xde, 0xbc, 0xa6, 0x89, 0xeb, 0xc4, 0x01, 0x89, 0x9c, + 0x08, 0x3c, 0xc2, 0xfd, 0x25, 0x38, 0xd2, 0x5b, 0x84, 0x99, 0x71, 0x42, 0x39, 0xc5, 0x75, 0x81, + 0x30, 0x89, 0xcb, 0xcc, 0x15, 0xcd, 0x5c, 0xb6, 0x4c, 0x49, 0xab, 0xf5, 0xcb, 0xf2, 0x25, 0xc0, + 0x68, 0x9a, 0x54, 0x26, 0x14, 0x89, 0x6a, 0x77, 0x24, 0x26, 0xf6, 0x2d, 0x12, 0x45, 0x94, 0x13, + 0xee, 0xd3, 0x88, 0x15, 0x6f, 0x8b, 0x32, 0xac, 0xfc, 0x69, 0x96, 0x9e, 0x5b, 0xe7, 0x3e, 0x04, + 0xae, 0x13, 0x12, 0xb6, 0x10, 0x11, 0xc6, 0x08, 0x1d, 0x0c, 0x80, 0x8f, 0x04, 0x73, 0x12, 0x90, + 0xe8, 0xb4, 0xc8, 0x53, 0xb8, 0x6c, 0x78, 0x95, 0x02, 0xe3, 0x78, 0x1f, 0xdd, 0x96, 0x85, 0x39, + 0x11, 0x09, 0x41, 0x57, 0xea, 0x4a, 0x63, 0xd7, 0xbe, 0x25, 0x9d, 0xa7, 0x24, 0x04, 0xe3, 0x8b, + 0x82, 0x1a, 0xe3, 0x94, 0x13, 0x0e, 0xe5, 0x40, 0x26, 0x89, 0xf7, 0x90, 0x36, 0x4f, 0x19, 0xa7, + 0x21, 0x24, 0x8e, 0xef, 0x16, 0x3c, 0x24, 0x5d, 0x8f, 0x5d, 0x0c, 0x08, 0xd1, 0x18, 0x12, 0xd1, + 0x90, 0xae, 0xd6, 0xb7, 0x1a, 0x5a, 0xbb, 0x6f, 0x56, 0x0d, 0xd6, 0x2c, 0x4f, 0xfd, 0x4c, 0xd2, + 0xec, 0x2b, 0x60, 0xe3, 0xab, 0x8a, 0xf6, 0x37, 0xf8, 0x06, 0x1f, 0x23, 0x2d, 0x8d, 0x5d, 0xc2, + 0x21, 0x1f, 0x9f, 0xbe, 0x5d, 0x57, 0x1a, 0x5a, 0xbb, 0x26, 0xeb, 0x91, 0x13, 0x36, 0x4f, 0xb2, + 0x09, 0x8f, 0x09, 0x5b, 0xd8, 0x48, 0x84, 0x67, 0x36, 0x7e, 0x81, 0x76, 0xe6, 0x09, 0x10, 0x2e, + 0xe6, 0xa6, 0xb5, 0x3b, 0xa5, 0x7d, 0xac, 0xe4, 0x5f, 0xd3, 0xc8, 0xf0, 0x3f, 0xbb, 0xc0, 0x65, + 0x60, 0x91, 0x46, 0x57, 0x6f, 0x08, 0x2c, 0x70, 0x58, 0x47, 0x3b, 0x09, 0x84, 0x74, 0x09, 0xfa, + 0x56, 0xa6, 0x4c, 0xf6, 0x46, 0x3c, 0xf7, 0x34, 0xb4, 0xbb, 0x1a, 0x9f, 0xf1, 0x5e, 0x41, 0xf7, + 0x37, 0x90, 0x9c, 0xc5, 0x34, 0x62, 0x80, 0x67, 0xe8, 0xff, 0x04, 0x58, 0x1a, 0x70, 0xa9, 0xe7, + 0xb0, 0x5a, 0xcf, 0x2a, 0xba, 0x9d, 0x03, 0x6d, 0x09, 0x36, 0xc6, 0xe8, 0x70, 0xb3, 0x4f, 0x36, + 0x3a, 0xd3, 0xed, 0x8f, 0xdb, 0x68, 0xaf, 0x9c, 0xf4, 0x5c, 0x54, 0x89, 0x7f, 0x29, 0xe8, 0xee, + 0xda, 0x7b, 0x84, 0x4f, 0xaa, 0x3b, 0xdd, 0xe4, 0x22, 0xd6, 0xae, 0x27, 0xb0, 0xd1, 0x7f, 0xfb, + 0xfd, 0xc7, 0x07, 0xf5, 0x21, 0xee, 0x64, 0xab, 0xe6, 0xe2, 0xaf, 0xf6, 0x3b, 0xf2, 0xee, 0x31, + 0xab, 0x29, 0x77, 0xcf, 0xbf, 0xd4, 0xb4, 0x9a, 0x97, 0xf8, 0x9d, 0x8a, 0xf6, 0x2a, 0x65, 0xc7, + 0x4f, 0xae, 0xaf, 0xae, 0x5c, 0x17, 0xb5, 0xd1, 0x8d, 0xb0, 0xc4, 0x39, 0x34, 0x46, 0xf9, 0x14, + 0xfa, 0xc6, 0xa3, 0x6c, 0x0a, 0x7f, 0xda, 0xbe, 0xb8, 0xb2, 0x90, 0x3a, 0xcd, 0xcb, 0x75, 0x43, + 0x38, 0x0a, 0xf3, 0x64, 0x47, 0x4a, 0xb3, 0xf7, 0x53, 0x41, 0x07, 0x73, 0x1a, 0x56, 0xd6, 0xd7, + 0x3b, 0xac, 0x3c, 0x47, 0x93, 0x6c, 0x8b, 0x4c, 0x94, 0x97, 0xc3, 0x82, 0xe5, 0xd1, 0x80, 0x44, + 0x9e, 0x49, 0x13, 0xcf, 0xf2, 0x20, 0xca, 0x77, 0x8c, 0xfc, 0x59, 0xc4, 0x3e, 0x2b, 0xff, 0x57, + 0x1d, 0x4b, 0xe3, 0x93, 0xba, 0x35, 0xe8, 0x76, 0x3f, 0xab, 0xf5, 0x81, 0x00, 0x76, 0x5d, 0x66, + 0x0a, 0x33, 0xb3, 0xce, 0x5a, 0x66, 0x91, 0x98, 0x7d, 0x93, 0x21, 0xd3, 0xae, 0xcb, 0xa6, 0xab, + 0x90, 0xe9, 0x59, 0x6b, 0x2a, 0x43, 0x66, 0x3b, 0x79, 0x01, 0x0f, 0x7e, 0x07, 0x00, 0x00, 0xff, + 0xff, 0xe9, 0x0e, 0xc7, 0x43, 0x2b, 0x07, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/keyword_plan_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/keyword_plan_service.pb.go new file mode 100644 index 000000000..3abc10083 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/keyword_plan_service.pb.go @@ -0,0 +1,1129 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/keyword_plan_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import common "google.golang.org/genproto/googleapis/ads/googleads/v0/common" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" +import field_mask "google.golang.org/genproto/protobuf/field_mask" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [KeywordPlanService.GetKeywordPlan][google.ads.googleads.v0.services.KeywordPlanService.GetKeywordPlan]. +type GetKeywordPlanRequest struct { + // The resource name of the plan to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetKeywordPlanRequest) Reset() { *m = GetKeywordPlanRequest{} } +func (m *GetKeywordPlanRequest) String() string { return proto.CompactTextString(m) } +func (*GetKeywordPlanRequest) ProtoMessage() {} +func (*GetKeywordPlanRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_service_6a70ca796af95ddb, []int{0} +} +func (m *GetKeywordPlanRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetKeywordPlanRequest.Unmarshal(m, b) +} +func (m *GetKeywordPlanRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetKeywordPlanRequest.Marshal(b, m, deterministic) +} +func (dst *GetKeywordPlanRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetKeywordPlanRequest.Merge(dst, src) +} +func (m *GetKeywordPlanRequest) XXX_Size() int { + return xxx_messageInfo_GetKeywordPlanRequest.Size(m) +} +func (m *GetKeywordPlanRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetKeywordPlanRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetKeywordPlanRequest proto.InternalMessageInfo + +func (m *GetKeywordPlanRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +// Request message for [KeywordPlanService.MutateKeywordPlans][google.ads.googleads.v0.services.KeywordPlanService.MutateKeywordPlans]. +type MutateKeywordPlansRequest struct { + // The ID of the customer whose keyword plans are being modified. + CustomerId string `protobuf:"bytes,1,opt,name=customer_id,json=customerId,proto3" json:"customer_id,omitempty"` + // The list of operations to perform on individual keyword plans. + Operations []*KeywordPlanOperation `protobuf:"bytes,2,rep,name=operations,proto3" json:"operations,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateKeywordPlansRequest) Reset() { *m = MutateKeywordPlansRequest{} } +func (m *MutateKeywordPlansRequest) String() string { return proto.CompactTextString(m) } +func (*MutateKeywordPlansRequest) ProtoMessage() {} +func (*MutateKeywordPlansRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_service_6a70ca796af95ddb, []int{1} +} +func (m *MutateKeywordPlansRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateKeywordPlansRequest.Unmarshal(m, b) +} +func (m *MutateKeywordPlansRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateKeywordPlansRequest.Marshal(b, m, deterministic) +} +func (dst *MutateKeywordPlansRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateKeywordPlansRequest.Merge(dst, src) +} +func (m *MutateKeywordPlansRequest) XXX_Size() int { + return xxx_messageInfo_MutateKeywordPlansRequest.Size(m) +} +func (m *MutateKeywordPlansRequest) XXX_DiscardUnknown() { + xxx_messageInfo_MutateKeywordPlansRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateKeywordPlansRequest proto.InternalMessageInfo + +func (m *MutateKeywordPlansRequest) GetCustomerId() string { + if m != nil { + return m.CustomerId + } + return "" +} + +func (m *MutateKeywordPlansRequest) GetOperations() []*KeywordPlanOperation { + if m != nil { + return m.Operations + } + return nil +} + +// A single operation (create, update, remove) on a keyword plan. +type KeywordPlanOperation struct { + // The FieldMask that determines which resource fields are modified in an + // update. + UpdateMask *field_mask.FieldMask `protobuf:"bytes,4,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // The mutate operation. + // + // Types that are valid to be assigned to Operation: + // *KeywordPlanOperation_Create + // *KeywordPlanOperation_Update + // *KeywordPlanOperation_Remove + Operation isKeywordPlanOperation_Operation `protobuf_oneof:"operation"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *KeywordPlanOperation) Reset() { *m = KeywordPlanOperation{} } +func (m *KeywordPlanOperation) String() string { return proto.CompactTextString(m) } +func (*KeywordPlanOperation) ProtoMessage() {} +func (*KeywordPlanOperation) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_service_6a70ca796af95ddb, []int{2} +} +func (m *KeywordPlanOperation) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_KeywordPlanOperation.Unmarshal(m, b) +} +func (m *KeywordPlanOperation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_KeywordPlanOperation.Marshal(b, m, deterministic) +} +func (dst *KeywordPlanOperation) XXX_Merge(src proto.Message) { + xxx_messageInfo_KeywordPlanOperation.Merge(dst, src) +} +func (m *KeywordPlanOperation) XXX_Size() int { + return xxx_messageInfo_KeywordPlanOperation.Size(m) +} +func (m *KeywordPlanOperation) XXX_DiscardUnknown() { + xxx_messageInfo_KeywordPlanOperation.DiscardUnknown(m) +} + +var xxx_messageInfo_KeywordPlanOperation proto.InternalMessageInfo + +func (m *KeywordPlanOperation) GetUpdateMask() *field_mask.FieldMask { + if m != nil { + return m.UpdateMask + } + return nil +} + +type isKeywordPlanOperation_Operation interface { + isKeywordPlanOperation_Operation() +} + +type KeywordPlanOperation_Create struct { + Create *resources.KeywordPlan `protobuf:"bytes,1,opt,name=create,proto3,oneof"` +} + +type KeywordPlanOperation_Update struct { + Update *resources.KeywordPlan `protobuf:"bytes,2,opt,name=update,proto3,oneof"` +} + +type KeywordPlanOperation_Remove struct { + Remove string `protobuf:"bytes,3,opt,name=remove,proto3,oneof"` +} + +func (*KeywordPlanOperation_Create) isKeywordPlanOperation_Operation() {} + +func (*KeywordPlanOperation_Update) isKeywordPlanOperation_Operation() {} + +func (*KeywordPlanOperation_Remove) isKeywordPlanOperation_Operation() {} + +func (m *KeywordPlanOperation) GetOperation() isKeywordPlanOperation_Operation { + if m != nil { + return m.Operation + } + return nil +} + +func (m *KeywordPlanOperation) GetCreate() *resources.KeywordPlan { + if x, ok := m.GetOperation().(*KeywordPlanOperation_Create); ok { + return x.Create + } + return nil +} + +func (m *KeywordPlanOperation) GetUpdate() *resources.KeywordPlan { + if x, ok := m.GetOperation().(*KeywordPlanOperation_Update); ok { + return x.Update + } + return nil +} + +func (m *KeywordPlanOperation) GetRemove() string { + if x, ok := m.GetOperation().(*KeywordPlanOperation_Remove); ok { + return x.Remove + } + return "" +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*KeywordPlanOperation) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _KeywordPlanOperation_OneofMarshaler, _KeywordPlanOperation_OneofUnmarshaler, _KeywordPlanOperation_OneofSizer, []interface{}{ + (*KeywordPlanOperation_Create)(nil), + (*KeywordPlanOperation_Update)(nil), + (*KeywordPlanOperation_Remove)(nil), + } +} + +func _KeywordPlanOperation_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*KeywordPlanOperation) + // operation + switch x := m.Operation.(type) { + case *KeywordPlanOperation_Create: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Create); err != nil { + return err + } + case *KeywordPlanOperation_Update: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Update); err != nil { + return err + } + case *KeywordPlanOperation_Remove: + b.EncodeVarint(3<<3 | proto.WireBytes) + b.EncodeStringBytes(x.Remove) + case nil: + default: + return fmt.Errorf("KeywordPlanOperation.Operation has unexpected type %T", x) + } + return nil +} + +func _KeywordPlanOperation_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*KeywordPlanOperation) + switch tag { + case 1: // operation.create + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.KeywordPlan) + err := b.DecodeMessage(msg) + m.Operation = &KeywordPlanOperation_Create{msg} + return true, err + case 2: // operation.update + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.KeywordPlan) + err := b.DecodeMessage(msg) + m.Operation = &KeywordPlanOperation_Update{msg} + return true, err + case 3: // operation.remove + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Operation = &KeywordPlanOperation_Remove{x} + return true, err + default: + return false, nil + } +} + +func _KeywordPlanOperation_OneofSizer(msg proto.Message) (n int) { + m := msg.(*KeywordPlanOperation) + // operation + switch x := m.Operation.(type) { + case *KeywordPlanOperation_Create: + s := proto.Size(x.Create) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *KeywordPlanOperation_Update: + s := proto.Size(x.Update) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *KeywordPlanOperation_Remove: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(len(x.Remove))) + n += len(x.Remove) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// Response message for a keyword plan mutate. +type MutateKeywordPlansResponse struct { + // All results for the mutate. + Results []*MutateKeywordPlansResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateKeywordPlansResponse) Reset() { *m = MutateKeywordPlansResponse{} } +func (m *MutateKeywordPlansResponse) String() string { return proto.CompactTextString(m) } +func (*MutateKeywordPlansResponse) ProtoMessage() {} +func (*MutateKeywordPlansResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_service_6a70ca796af95ddb, []int{3} +} +func (m *MutateKeywordPlansResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateKeywordPlansResponse.Unmarshal(m, b) +} +func (m *MutateKeywordPlansResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateKeywordPlansResponse.Marshal(b, m, deterministic) +} +func (dst *MutateKeywordPlansResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateKeywordPlansResponse.Merge(dst, src) +} +func (m *MutateKeywordPlansResponse) XXX_Size() int { + return xxx_messageInfo_MutateKeywordPlansResponse.Size(m) +} +func (m *MutateKeywordPlansResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MutateKeywordPlansResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateKeywordPlansResponse proto.InternalMessageInfo + +func (m *MutateKeywordPlansResponse) GetResults() []*MutateKeywordPlansResult { + if m != nil { + return m.Results + } + return nil +} + +// The result for the keyword plan mutate. +type MutateKeywordPlansResult struct { + // Returned for successful operations. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateKeywordPlansResult) Reset() { *m = MutateKeywordPlansResult{} } +func (m *MutateKeywordPlansResult) String() string { return proto.CompactTextString(m) } +func (*MutateKeywordPlansResult) ProtoMessage() {} +func (*MutateKeywordPlansResult) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_service_6a70ca796af95ddb, []int{4} +} +func (m *MutateKeywordPlansResult) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateKeywordPlansResult.Unmarshal(m, b) +} +func (m *MutateKeywordPlansResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateKeywordPlansResult.Marshal(b, m, deterministic) +} +func (dst *MutateKeywordPlansResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateKeywordPlansResult.Merge(dst, src) +} +func (m *MutateKeywordPlansResult) XXX_Size() int { + return xxx_messageInfo_MutateKeywordPlansResult.Size(m) +} +func (m *MutateKeywordPlansResult) XXX_DiscardUnknown() { + xxx_messageInfo_MutateKeywordPlansResult.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateKeywordPlansResult proto.InternalMessageInfo + +func (m *MutateKeywordPlansResult) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +// Request message for [KeywordPlanService.GenerateForecastMetrics][google.ads.googleads.v0.services.KeywordPlanService.GenerateForecastMetrics]. +type GenerateForecastMetricsRequest struct { + // The resource name of the keyword plan to be forecasted. + KeywordPlan string `protobuf:"bytes,1,opt,name=keyword_plan,json=keywordPlan,proto3" json:"keyword_plan,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GenerateForecastMetricsRequest) Reset() { *m = GenerateForecastMetricsRequest{} } +func (m *GenerateForecastMetricsRequest) String() string { return proto.CompactTextString(m) } +func (*GenerateForecastMetricsRequest) ProtoMessage() {} +func (*GenerateForecastMetricsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_service_6a70ca796af95ddb, []int{5} +} +func (m *GenerateForecastMetricsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GenerateForecastMetricsRequest.Unmarshal(m, b) +} +func (m *GenerateForecastMetricsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GenerateForecastMetricsRequest.Marshal(b, m, deterministic) +} +func (dst *GenerateForecastMetricsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GenerateForecastMetricsRequest.Merge(dst, src) +} +func (m *GenerateForecastMetricsRequest) XXX_Size() int { + return xxx_messageInfo_GenerateForecastMetricsRequest.Size(m) +} +func (m *GenerateForecastMetricsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GenerateForecastMetricsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GenerateForecastMetricsRequest proto.InternalMessageInfo + +func (m *GenerateForecastMetricsRequest) GetKeywordPlan() string { + if m != nil { + return m.KeywordPlan + } + return "" +} + +// Response message for [KeywordPlanService.GenerateForecastMetrics][google.ads.googleads.v0.services.KeywordPlanService.GenerateForecastMetrics]. +type GenerateForecastMetricsResponse struct { + // List of campaign forecasts. + // One maximum. + CampaignForecasts []*KeywordPlanCampaignForecast `protobuf:"bytes,1,rep,name=campaign_forecasts,json=campaignForecasts,proto3" json:"campaign_forecasts,omitempty"` + // List of ad group forecasts. + AdGroupForecasts []*KeywordPlanAdGroupForecast `protobuf:"bytes,2,rep,name=ad_group_forecasts,json=adGroupForecasts,proto3" json:"ad_group_forecasts,omitempty"` + // List of keyword forecasts. + KeywordForecasts []*KeywordPlanKeywordForecast `protobuf:"bytes,3,rep,name=keyword_forecasts,json=keywordForecasts,proto3" json:"keyword_forecasts,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GenerateForecastMetricsResponse) Reset() { *m = GenerateForecastMetricsResponse{} } +func (m *GenerateForecastMetricsResponse) String() string { return proto.CompactTextString(m) } +func (*GenerateForecastMetricsResponse) ProtoMessage() {} +func (*GenerateForecastMetricsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_service_6a70ca796af95ddb, []int{6} +} +func (m *GenerateForecastMetricsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GenerateForecastMetricsResponse.Unmarshal(m, b) +} +func (m *GenerateForecastMetricsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GenerateForecastMetricsResponse.Marshal(b, m, deterministic) +} +func (dst *GenerateForecastMetricsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_GenerateForecastMetricsResponse.Merge(dst, src) +} +func (m *GenerateForecastMetricsResponse) XXX_Size() int { + return xxx_messageInfo_GenerateForecastMetricsResponse.Size(m) +} +func (m *GenerateForecastMetricsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_GenerateForecastMetricsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_GenerateForecastMetricsResponse proto.InternalMessageInfo + +func (m *GenerateForecastMetricsResponse) GetCampaignForecasts() []*KeywordPlanCampaignForecast { + if m != nil { + return m.CampaignForecasts + } + return nil +} + +func (m *GenerateForecastMetricsResponse) GetAdGroupForecasts() []*KeywordPlanAdGroupForecast { + if m != nil { + return m.AdGroupForecasts + } + return nil +} + +func (m *GenerateForecastMetricsResponse) GetKeywordForecasts() []*KeywordPlanKeywordForecast { + if m != nil { + return m.KeywordForecasts + } + return nil +} + +// A campaign forecast. +type KeywordPlanCampaignForecast struct { + // The resource name of the Keyword Plan campaign related to the forecast. + // + // `customers/{customer_id}/keywordPlanCampaigns/{keyword+plan_campaign_id}` + KeywordPlanCampaign *wrappers.StringValue `protobuf:"bytes,1,opt,name=keyword_plan_campaign,json=keywordPlanCampaign,proto3" json:"keyword_plan_campaign,omitempty"` + // The forecast for the Keyword Plan campaign. + CampaignForecast *ForecastMetrics `protobuf:"bytes,2,opt,name=campaign_forecast,json=campaignForecast,proto3" json:"campaign_forecast,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *KeywordPlanCampaignForecast) Reset() { *m = KeywordPlanCampaignForecast{} } +func (m *KeywordPlanCampaignForecast) String() string { return proto.CompactTextString(m) } +func (*KeywordPlanCampaignForecast) ProtoMessage() {} +func (*KeywordPlanCampaignForecast) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_service_6a70ca796af95ddb, []int{7} +} +func (m *KeywordPlanCampaignForecast) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_KeywordPlanCampaignForecast.Unmarshal(m, b) +} +func (m *KeywordPlanCampaignForecast) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_KeywordPlanCampaignForecast.Marshal(b, m, deterministic) +} +func (dst *KeywordPlanCampaignForecast) XXX_Merge(src proto.Message) { + xxx_messageInfo_KeywordPlanCampaignForecast.Merge(dst, src) +} +func (m *KeywordPlanCampaignForecast) XXX_Size() int { + return xxx_messageInfo_KeywordPlanCampaignForecast.Size(m) +} +func (m *KeywordPlanCampaignForecast) XXX_DiscardUnknown() { + xxx_messageInfo_KeywordPlanCampaignForecast.DiscardUnknown(m) +} + +var xxx_messageInfo_KeywordPlanCampaignForecast proto.InternalMessageInfo + +func (m *KeywordPlanCampaignForecast) GetKeywordPlanCampaign() *wrappers.StringValue { + if m != nil { + return m.KeywordPlanCampaign + } + return nil +} + +func (m *KeywordPlanCampaignForecast) GetCampaignForecast() *ForecastMetrics { + if m != nil { + return m.CampaignForecast + } + return nil +} + +// An ad group forecast. +type KeywordPlanAdGroupForecast struct { + // The resource name of the Keyword Plan ad group related to the forecast. + // + // `customers/{customer_id}/keywordPlanAdGroups/{keyword_plan_ad_group_id}` + KeywordPlanAdGroup *wrappers.StringValue `protobuf:"bytes,1,opt,name=keyword_plan_ad_group,json=keywordPlanAdGroup,proto3" json:"keyword_plan_ad_group,omitempty"` + // The forecast for the Keyword Plan ad group. + AdGroupForecast *ForecastMetrics `protobuf:"bytes,2,opt,name=ad_group_forecast,json=adGroupForecast,proto3" json:"ad_group_forecast,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *KeywordPlanAdGroupForecast) Reset() { *m = KeywordPlanAdGroupForecast{} } +func (m *KeywordPlanAdGroupForecast) String() string { return proto.CompactTextString(m) } +func (*KeywordPlanAdGroupForecast) ProtoMessage() {} +func (*KeywordPlanAdGroupForecast) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_service_6a70ca796af95ddb, []int{8} +} +func (m *KeywordPlanAdGroupForecast) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_KeywordPlanAdGroupForecast.Unmarshal(m, b) +} +func (m *KeywordPlanAdGroupForecast) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_KeywordPlanAdGroupForecast.Marshal(b, m, deterministic) +} +func (dst *KeywordPlanAdGroupForecast) XXX_Merge(src proto.Message) { + xxx_messageInfo_KeywordPlanAdGroupForecast.Merge(dst, src) +} +func (m *KeywordPlanAdGroupForecast) XXX_Size() int { + return xxx_messageInfo_KeywordPlanAdGroupForecast.Size(m) +} +func (m *KeywordPlanAdGroupForecast) XXX_DiscardUnknown() { + xxx_messageInfo_KeywordPlanAdGroupForecast.DiscardUnknown(m) +} + +var xxx_messageInfo_KeywordPlanAdGroupForecast proto.InternalMessageInfo + +func (m *KeywordPlanAdGroupForecast) GetKeywordPlanAdGroup() *wrappers.StringValue { + if m != nil { + return m.KeywordPlanAdGroup + } + return nil +} + +func (m *KeywordPlanAdGroupForecast) GetAdGroupForecast() *ForecastMetrics { + if m != nil { + return m.AdGroupForecast + } + return nil +} + +// A keyword forecast. +type KeywordPlanKeywordForecast struct { + // The resource name of the Keyword Plan keyword related to the forecast. + // + // + // `customers/{customer_id}/keywordPlanAdGroupKeywords/{keyword_plan_ad_group_keyword_id}` + KeywordPlanAdGroupKeyword *wrappers.StringValue `protobuf:"bytes,1,opt,name=keyword_plan_ad_group_keyword,json=keywordPlanAdGroupKeyword,proto3" json:"keyword_plan_ad_group_keyword,omitempty"` + // The forecast for the Keyword Plan keyword. + KeywordForecast *ForecastMetrics `protobuf:"bytes,2,opt,name=keyword_forecast,json=keywordForecast,proto3" json:"keyword_forecast,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *KeywordPlanKeywordForecast) Reset() { *m = KeywordPlanKeywordForecast{} } +func (m *KeywordPlanKeywordForecast) String() string { return proto.CompactTextString(m) } +func (*KeywordPlanKeywordForecast) ProtoMessage() {} +func (*KeywordPlanKeywordForecast) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_service_6a70ca796af95ddb, []int{9} +} +func (m *KeywordPlanKeywordForecast) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_KeywordPlanKeywordForecast.Unmarshal(m, b) +} +func (m *KeywordPlanKeywordForecast) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_KeywordPlanKeywordForecast.Marshal(b, m, deterministic) +} +func (dst *KeywordPlanKeywordForecast) XXX_Merge(src proto.Message) { + xxx_messageInfo_KeywordPlanKeywordForecast.Merge(dst, src) +} +func (m *KeywordPlanKeywordForecast) XXX_Size() int { + return xxx_messageInfo_KeywordPlanKeywordForecast.Size(m) +} +func (m *KeywordPlanKeywordForecast) XXX_DiscardUnknown() { + xxx_messageInfo_KeywordPlanKeywordForecast.DiscardUnknown(m) +} + +var xxx_messageInfo_KeywordPlanKeywordForecast proto.InternalMessageInfo + +func (m *KeywordPlanKeywordForecast) GetKeywordPlanAdGroupKeyword() *wrappers.StringValue { + if m != nil { + return m.KeywordPlanAdGroupKeyword + } + return nil +} + +func (m *KeywordPlanKeywordForecast) GetKeywordForecast() *ForecastMetrics { + if m != nil { + return m.KeywordForecast + } + return nil +} + +// Forecast metrics. +type ForecastMetrics struct { + // Impressions + Impressions *wrappers.DoubleValue `protobuf:"bytes,1,opt,name=impressions,proto3" json:"impressions,omitempty"` + // Ctr + Ctr *wrappers.DoubleValue `protobuf:"bytes,2,opt,name=ctr,proto3" json:"ctr,omitempty"` + // AVG cpc + AverageCpc *wrappers.Int64Value `protobuf:"bytes,3,opt,name=average_cpc,json=averageCpc,proto3" json:"average_cpc,omitempty"` + // Clicks + Clicks *wrappers.DoubleValue `protobuf:"bytes,5,opt,name=clicks,proto3" json:"clicks,omitempty"` + // Cost + CostMicros *wrappers.Int64Value `protobuf:"bytes,6,opt,name=cost_micros,json=costMicros,proto3" json:"cost_micros,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ForecastMetrics) Reset() { *m = ForecastMetrics{} } +func (m *ForecastMetrics) String() string { return proto.CompactTextString(m) } +func (*ForecastMetrics) ProtoMessage() {} +func (*ForecastMetrics) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_service_6a70ca796af95ddb, []int{10} +} +func (m *ForecastMetrics) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ForecastMetrics.Unmarshal(m, b) +} +func (m *ForecastMetrics) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ForecastMetrics.Marshal(b, m, deterministic) +} +func (dst *ForecastMetrics) XXX_Merge(src proto.Message) { + xxx_messageInfo_ForecastMetrics.Merge(dst, src) +} +func (m *ForecastMetrics) XXX_Size() int { + return xxx_messageInfo_ForecastMetrics.Size(m) +} +func (m *ForecastMetrics) XXX_DiscardUnknown() { + xxx_messageInfo_ForecastMetrics.DiscardUnknown(m) +} + +var xxx_messageInfo_ForecastMetrics proto.InternalMessageInfo + +func (m *ForecastMetrics) GetImpressions() *wrappers.DoubleValue { + if m != nil { + return m.Impressions + } + return nil +} + +func (m *ForecastMetrics) GetCtr() *wrappers.DoubleValue { + if m != nil { + return m.Ctr + } + return nil +} + +func (m *ForecastMetrics) GetAverageCpc() *wrappers.Int64Value { + if m != nil { + return m.AverageCpc + } + return nil +} + +func (m *ForecastMetrics) GetClicks() *wrappers.DoubleValue { + if m != nil { + return m.Clicks + } + return nil +} + +func (m *ForecastMetrics) GetCostMicros() *wrappers.Int64Value { + if m != nil { + return m.CostMicros + } + return nil +} + +// Request message for [KeywordPlanService.GenerateHistoricalMetrics][google.ads.googleads.v0.services.KeywordPlanService.GenerateHistoricalMetrics]. +type GenerateHistoricalMetricsRequest struct { + // The resource name of the keyword plan of which historical metrics are + // requested. + KeywordPlan string `protobuf:"bytes,1,opt,name=keyword_plan,json=keywordPlan,proto3" json:"keyword_plan,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GenerateHistoricalMetricsRequest) Reset() { *m = GenerateHistoricalMetricsRequest{} } +func (m *GenerateHistoricalMetricsRequest) String() string { return proto.CompactTextString(m) } +func (*GenerateHistoricalMetricsRequest) ProtoMessage() {} +func (*GenerateHistoricalMetricsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_service_6a70ca796af95ddb, []int{11} +} +func (m *GenerateHistoricalMetricsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GenerateHistoricalMetricsRequest.Unmarshal(m, b) +} +func (m *GenerateHistoricalMetricsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GenerateHistoricalMetricsRequest.Marshal(b, m, deterministic) +} +func (dst *GenerateHistoricalMetricsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GenerateHistoricalMetricsRequest.Merge(dst, src) +} +func (m *GenerateHistoricalMetricsRequest) XXX_Size() int { + return xxx_messageInfo_GenerateHistoricalMetricsRequest.Size(m) +} +func (m *GenerateHistoricalMetricsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GenerateHistoricalMetricsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GenerateHistoricalMetricsRequest proto.InternalMessageInfo + +func (m *GenerateHistoricalMetricsRequest) GetKeywordPlan() string { + if m != nil { + return m.KeywordPlan + } + return "" +} + +// Response message for [KeywordPlanService.GenerateHistoricalMetrics][google.ads.googleads.v0.services.KeywordPlanService.GenerateHistoricalMetrics]. +type GenerateHistoricalMetricsResponse struct { + // List of keyword historical metrics. + Metrics []*KeywordPlanKeywordHistoricalMetrics `protobuf:"bytes,1,rep,name=metrics,proto3" json:"metrics,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GenerateHistoricalMetricsResponse) Reset() { *m = GenerateHistoricalMetricsResponse{} } +func (m *GenerateHistoricalMetricsResponse) String() string { return proto.CompactTextString(m) } +func (*GenerateHistoricalMetricsResponse) ProtoMessage() {} +func (*GenerateHistoricalMetricsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_service_6a70ca796af95ddb, []int{12} +} +func (m *GenerateHistoricalMetricsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GenerateHistoricalMetricsResponse.Unmarshal(m, b) +} +func (m *GenerateHistoricalMetricsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GenerateHistoricalMetricsResponse.Marshal(b, m, deterministic) +} +func (dst *GenerateHistoricalMetricsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_GenerateHistoricalMetricsResponse.Merge(dst, src) +} +func (m *GenerateHistoricalMetricsResponse) XXX_Size() int { + return xxx_messageInfo_GenerateHistoricalMetricsResponse.Size(m) +} +func (m *GenerateHistoricalMetricsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_GenerateHistoricalMetricsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_GenerateHistoricalMetricsResponse proto.InternalMessageInfo + +func (m *GenerateHistoricalMetricsResponse) GetMetrics() []*KeywordPlanKeywordHistoricalMetrics { + if m != nil { + return m.Metrics + } + return nil +} + +// A keyword historical metrics. +type KeywordPlanKeywordHistoricalMetrics struct { + // The text of the query associated with one or more ad_group_keywords in the + // plan. + // + // Note that we de-dupe your keywords list, eliminating close variants before + // returning the plan's keywords as text. For example, if your plan originally + // contained the keywords 'car' and 'cars', the returned search query will + // only contain 'car'. + // + SearchQuery *wrappers.StringValue `protobuf:"bytes,1,opt,name=search_query,json=searchQuery,proto3" json:"search_query,omitempty"` + // The historical metrics for the query associated with one or more + // ad_group_keywords in the plan. + KeywordMetrics *common.KeywordPlanHistoricalMetrics `protobuf:"bytes,2,opt,name=keyword_metrics,json=keywordMetrics,proto3" json:"keyword_metrics,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *KeywordPlanKeywordHistoricalMetrics) Reset() { *m = KeywordPlanKeywordHistoricalMetrics{} } +func (m *KeywordPlanKeywordHistoricalMetrics) String() string { return proto.CompactTextString(m) } +func (*KeywordPlanKeywordHistoricalMetrics) ProtoMessage() {} +func (*KeywordPlanKeywordHistoricalMetrics) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_plan_service_6a70ca796af95ddb, []int{13} +} +func (m *KeywordPlanKeywordHistoricalMetrics) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_KeywordPlanKeywordHistoricalMetrics.Unmarshal(m, b) +} +func (m *KeywordPlanKeywordHistoricalMetrics) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_KeywordPlanKeywordHistoricalMetrics.Marshal(b, m, deterministic) +} +func (dst *KeywordPlanKeywordHistoricalMetrics) XXX_Merge(src proto.Message) { + xxx_messageInfo_KeywordPlanKeywordHistoricalMetrics.Merge(dst, src) +} +func (m *KeywordPlanKeywordHistoricalMetrics) XXX_Size() int { + return xxx_messageInfo_KeywordPlanKeywordHistoricalMetrics.Size(m) +} +func (m *KeywordPlanKeywordHistoricalMetrics) XXX_DiscardUnknown() { + xxx_messageInfo_KeywordPlanKeywordHistoricalMetrics.DiscardUnknown(m) +} + +var xxx_messageInfo_KeywordPlanKeywordHistoricalMetrics proto.InternalMessageInfo + +func (m *KeywordPlanKeywordHistoricalMetrics) GetSearchQuery() *wrappers.StringValue { + if m != nil { + return m.SearchQuery + } + return nil +} + +func (m *KeywordPlanKeywordHistoricalMetrics) GetKeywordMetrics() *common.KeywordPlanHistoricalMetrics { + if m != nil { + return m.KeywordMetrics + } + return nil +} + +func init() { + proto.RegisterType((*GetKeywordPlanRequest)(nil), "google.ads.googleads.v0.services.GetKeywordPlanRequest") + proto.RegisterType((*MutateKeywordPlansRequest)(nil), "google.ads.googleads.v0.services.MutateKeywordPlansRequest") + proto.RegisterType((*KeywordPlanOperation)(nil), "google.ads.googleads.v0.services.KeywordPlanOperation") + proto.RegisterType((*MutateKeywordPlansResponse)(nil), "google.ads.googleads.v0.services.MutateKeywordPlansResponse") + proto.RegisterType((*MutateKeywordPlansResult)(nil), "google.ads.googleads.v0.services.MutateKeywordPlansResult") + proto.RegisterType((*GenerateForecastMetricsRequest)(nil), "google.ads.googleads.v0.services.GenerateForecastMetricsRequest") + proto.RegisterType((*GenerateForecastMetricsResponse)(nil), "google.ads.googleads.v0.services.GenerateForecastMetricsResponse") + proto.RegisterType((*KeywordPlanCampaignForecast)(nil), "google.ads.googleads.v0.services.KeywordPlanCampaignForecast") + proto.RegisterType((*KeywordPlanAdGroupForecast)(nil), "google.ads.googleads.v0.services.KeywordPlanAdGroupForecast") + proto.RegisterType((*KeywordPlanKeywordForecast)(nil), "google.ads.googleads.v0.services.KeywordPlanKeywordForecast") + proto.RegisterType((*ForecastMetrics)(nil), "google.ads.googleads.v0.services.ForecastMetrics") + proto.RegisterType((*GenerateHistoricalMetricsRequest)(nil), "google.ads.googleads.v0.services.GenerateHistoricalMetricsRequest") + proto.RegisterType((*GenerateHistoricalMetricsResponse)(nil), "google.ads.googleads.v0.services.GenerateHistoricalMetricsResponse") + proto.RegisterType((*KeywordPlanKeywordHistoricalMetrics)(nil), "google.ads.googleads.v0.services.KeywordPlanKeywordHistoricalMetrics") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// KeywordPlanServiceClient is the client API for KeywordPlanService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type KeywordPlanServiceClient interface { + // Returns the requested plan in full detail. + GetKeywordPlan(ctx context.Context, in *GetKeywordPlanRequest, opts ...grpc.CallOption) (*resources.KeywordPlan, error) + // Creates, updates, or removes keyword plans. Operation statuses are + // returned. + MutateKeywordPlans(ctx context.Context, in *MutateKeywordPlansRequest, opts ...grpc.CallOption) (*MutateKeywordPlansResponse, error) + // Returns the requested Keyword Plan forecasts. + GenerateForecastMetrics(ctx context.Context, in *GenerateForecastMetricsRequest, opts ...grpc.CallOption) (*GenerateForecastMetricsResponse, error) + // Returns the requested Keyword Plan historical metrics. + GenerateHistoricalMetrics(ctx context.Context, in *GenerateHistoricalMetricsRequest, opts ...grpc.CallOption) (*GenerateHistoricalMetricsResponse, error) +} + +type keywordPlanServiceClient struct { + cc *grpc.ClientConn +} + +func NewKeywordPlanServiceClient(cc *grpc.ClientConn) KeywordPlanServiceClient { + return &keywordPlanServiceClient{cc} +} + +func (c *keywordPlanServiceClient) GetKeywordPlan(ctx context.Context, in *GetKeywordPlanRequest, opts ...grpc.CallOption) (*resources.KeywordPlan, error) { + out := new(resources.KeywordPlan) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.KeywordPlanService/GetKeywordPlan", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *keywordPlanServiceClient) MutateKeywordPlans(ctx context.Context, in *MutateKeywordPlansRequest, opts ...grpc.CallOption) (*MutateKeywordPlansResponse, error) { + out := new(MutateKeywordPlansResponse) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.KeywordPlanService/MutateKeywordPlans", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *keywordPlanServiceClient) GenerateForecastMetrics(ctx context.Context, in *GenerateForecastMetricsRequest, opts ...grpc.CallOption) (*GenerateForecastMetricsResponse, error) { + out := new(GenerateForecastMetricsResponse) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.KeywordPlanService/GenerateForecastMetrics", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *keywordPlanServiceClient) GenerateHistoricalMetrics(ctx context.Context, in *GenerateHistoricalMetricsRequest, opts ...grpc.CallOption) (*GenerateHistoricalMetricsResponse, error) { + out := new(GenerateHistoricalMetricsResponse) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.KeywordPlanService/GenerateHistoricalMetrics", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// KeywordPlanServiceServer is the server API for KeywordPlanService service. +type KeywordPlanServiceServer interface { + // Returns the requested plan in full detail. + GetKeywordPlan(context.Context, *GetKeywordPlanRequest) (*resources.KeywordPlan, error) + // Creates, updates, or removes keyword plans. Operation statuses are + // returned. + MutateKeywordPlans(context.Context, *MutateKeywordPlansRequest) (*MutateKeywordPlansResponse, error) + // Returns the requested Keyword Plan forecasts. + GenerateForecastMetrics(context.Context, *GenerateForecastMetricsRequest) (*GenerateForecastMetricsResponse, error) + // Returns the requested Keyword Plan historical metrics. + GenerateHistoricalMetrics(context.Context, *GenerateHistoricalMetricsRequest) (*GenerateHistoricalMetricsResponse, error) +} + +func RegisterKeywordPlanServiceServer(s *grpc.Server, srv KeywordPlanServiceServer) { + s.RegisterService(&_KeywordPlanService_serviceDesc, srv) +} + +func _KeywordPlanService_GetKeywordPlan_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetKeywordPlanRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(KeywordPlanServiceServer).GetKeywordPlan(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.KeywordPlanService/GetKeywordPlan", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(KeywordPlanServiceServer).GetKeywordPlan(ctx, req.(*GetKeywordPlanRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _KeywordPlanService_MutateKeywordPlans_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MutateKeywordPlansRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(KeywordPlanServiceServer).MutateKeywordPlans(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.KeywordPlanService/MutateKeywordPlans", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(KeywordPlanServiceServer).MutateKeywordPlans(ctx, req.(*MutateKeywordPlansRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _KeywordPlanService_GenerateForecastMetrics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GenerateForecastMetricsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(KeywordPlanServiceServer).GenerateForecastMetrics(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.KeywordPlanService/GenerateForecastMetrics", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(KeywordPlanServiceServer).GenerateForecastMetrics(ctx, req.(*GenerateForecastMetricsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _KeywordPlanService_GenerateHistoricalMetrics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GenerateHistoricalMetricsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(KeywordPlanServiceServer).GenerateHistoricalMetrics(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.KeywordPlanService/GenerateHistoricalMetrics", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(KeywordPlanServiceServer).GenerateHistoricalMetrics(ctx, req.(*GenerateHistoricalMetricsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _KeywordPlanService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.KeywordPlanService", + HandlerType: (*KeywordPlanServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetKeywordPlan", + Handler: _KeywordPlanService_GetKeywordPlan_Handler, + }, + { + MethodName: "MutateKeywordPlans", + Handler: _KeywordPlanService_MutateKeywordPlans_Handler, + }, + { + MethodName: "GenerateForecastMetrics", + Handler: _KeywordPlanService_GenerateForecastMetrics_Handler, + }, + { + MethodName: "GenerateHistoricalMetrics", + Handler: _KeywordPlanService_GenerateHistoricalMetrics_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/keyword_plan_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/keyword_plan_service.proto", fileDescriptor_keyword_plan_service_6a70ca796af95ddb) +} + +var fileDescriptor_keyword_plan_service_6a70ca796af95ddb = []byte{ + // 1130 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x57, 0xcf, 0x6f, 0xdc, 0xc4, + 0x17, 0xff, 0x7a, 0xf3, 0x25, 0x51, 0xdf, 0x86, 0x36, 0x19, 0xa8, 0xba, 0xd9, 0x96, 0x76, 0xeb, + 0x72, 0x88, 0x72, 0xb0, 0xd3, 0x10, 0x05, 0x94, 0x1f, 0x94, 0x4d, 0x48, 0x37, 0x05, 0x42, 0xc3, + 0x16, 0xe5, 0x80, 0x42, 0xad, 0x89, 0x3d, 0x31, 0x66, 0x6d, 0x8f, 0x3b, 0x63, 0xa7, 0xaa, 0xaa, + 0x5e, 0x10, 0xe2, 0xc8, 0x05, 0xfe, 0x02, 0x8e, 0xdc, 0x10, 0xff, 0x05, 0xa2, 0xe2, 0xc0, 0x01, + 0x89, 0x33, 0xe2, 0xcc, 0x91, 0x23, 0xb2, 0x67, 0x66, 0xe3, 0xb5, 0xd7, 0xc9, 0x66, 0x73, 0x1b, + 0x3f, 0xbf, 0xf7, 0x79, 0xef, 0xf3, 0xde, 0x9b, 0xe7, 0x67, 0x58, 0x73, 0x29, 0x75, 0x7d, 0x62, + 0x62, 0x87, 0x9b, 0xe2, 0x98, 0x9e, 0x8e, 0x17, 0x4d, 0x4e, 0xd8, 0xb1, 0x67, 0x13, 0x6e, 0xf6, + 0xc8, 0xb3, 0xa7, 0x94, 0x39, 0x56, 0xe4, 0xe3, 0xd0, 0x92, 0x52, 0x23, 0x62, 0x34, 0xa6, 0xa8, + 0x25, 0x2c, 0x0c, 0xec, 0x70, 0xa3, 0x6f, 0x6c, 0x1c, 0x2f, 0x1a, 0xca, 0xb8, 0xf9, 0x4e, 0x15, + 0xbc, 0x4d, 0x83, 0x80, 0x86, 0x83, 0xe0, 0x42, 0x26, 0xb0, 0x9b, 0xcb, 0x55, 0x96, 0x8c, 0x70, + 0x9a, 0xb0, 0x62, 0x64, 0xd2, 0xea, 0x86, 0xb2, 0x8a, 0x3c, 0x13, 0x87, 0x21, 0x8d, 0x71, 0xec, + 0xd1, 0x90, 0xcb, 0xb7, 0x32, 0x5e, 0x33, 0x7b, 0x3a, 0x4c, 0x8e, 0xcc, 0x23, 0x8f, 0xf8, 0x8e, + 0x15, 0x60, 0xde, 0x93, 0x1a, 0x37, 0x8b, 0x1a, 0x4f, 0x19, 0x8e, 0x22, 0xc2, 0x24, 0x82, 0xbe, + 0x0e, 0x57, 0x3b, 0x24, 0xfe, 0x50, 0x38, 0xde, 0xf3, 0x71, 0xd8, 0x25, 0x4f, 0x12, 0xc2, 0x63, + 0x74, 0x07, 0x5e, 0x55, 0x81, 0x59, 0x21, 0x0e, 0x48, 0x43, 0x6b, 0x69, 0xf3, 0x97, 0xba, 0xd3, + 0x4a, 0xf8, 0x31, 0x0e, 0x88, 0xfe, 0xbd, 0x06, 0x73, 0xbb, 0x49, 0x8c, 0x63, 0x92, 0x43, 0xe0, + 0x0a, 0xe2, 0x16, 0xd4, 0xed, 0x84, 0xc7, 0x34, 0x20, 0xcc, 0xf2, 0x1c, 0x09, 0x00, 0x4a, 0xf4, + 0xc0, 0x41, 0xfb, 0x00, 0x34, 0x22, 0x4c, 0x50, 0x6a, 0xd4, 0x5a, 0x13, 0xf3, 0xf5, 0xa5, 0x15, + 0xe3, 0xac, 0x1a, 0x18, 0x39, 0x5f, 0x0f, 0x95, 0x79, 0x37, 0x87, 0xa4, 0x7f, 0x5b, 0x83, 0xd7, + 0x87, 0x29, 0xa1, 0x35, 0xa8, 0x27, 0x91, 0x83, 0x63, 0x92, 0xa5, 0xa8, 0xf1, 0xff, 0x96, 0x36, + 0x5f, 0x5f, 0x6a, 0x2a, 0x8f, 0x2a, 0x47, 0xc6, 0xfd, 0x34, 0x8b, 0xbb, 0x98, 0xf7, 0xba, 0x20, + 0xd4, 0xd3, 0x33, 0xda, 0x81, 0x49, 0x9b, 0x11, 0x1c, 0x8b, 0x54, 0xd4, 0x97, 0x8c, 0xca, 0x48, + 0xfb, 0x15, 0xcd, 0x87, 0xba, 0xf3, 0xbf, 0xae, 0xb4, 0x4f, 0x91, 0x04, 0x6e, 0xa3, 0x36, 0x2e, + 0x92, 0xb0, 0x47, 0x0d, 0x98, 0x64, 0x24, 0xa0, 0xc7, 0xa4, 0x31, 0x91, 0x66, 0x37, 0x7d, 0x23, + 0x9e, 0x37, 0xeb, 0x70, 0xa9, 0x9f, 0x11, 0x9d, 0x41, 0x73, 0x58, 0x99, 0x78, 0x44, 0x43, 0x4e, + 0xd0, 0xa7, 0x30, 0xc5, 0x08, 0x4f, 0xfc, 0x58, 0xd5, 0x60, 0xf5, 0xec, 0x1a, 0x0c, 0x85, 0x4b, + 0xfc, 0xb8, 0xab, 0xa0, 0xf4, 0x7b, 0xd0, 0xa8, 0x52, 0x1a, 0xad, 0xb9, 0xb6, 0xe0, 0x66, 0x87, + 0x84, 0x29, 0x05, 0x72, 0x9f, 0x32, 0x62, 0x63, 0x1e, 0xef, 0x92, 0x98, 0x79, 0x76, 0xbf, 0xc1, + 0x6e, 0xc3, 0x74, 0xfe, 0xca, 0x48, 0x94, 0x7a, 0xef, 0xc4, 0xa1, 0xfe, 0x77, 0x0d, 0x6e, 0x55, + 0xa2, 0x48, 0xfe, 0x3e, 0x20, 0x1b, 0x07, 0x11, 0xf6, 0xdc, 0xd0, 0x3a, 0x92, 0x3a, 0xbc, 0xa1, + 0x65, 0xa9, 0xd8, 0x38, 0x57, 0x3b, 0x6e, 0x49, 0x18, 0xe5, 0xa9, 0x3b, 0x6b, 0x17, 0x24, 0x1c, + 0x7d, 0x09, 0x08, 0x3b, 0x96, 0xcb, 0x68, 0x12, 0xe5, 0xbc, 0x89, 0xc4, 0xaf, 0x9f, 0xcb, 0x5b, + 0xdb, 0xe9, 0xa4, 0x28, 0x7d, 0x67, 0x33, 0x78, 0x50, 0xc0, 0x91, 0x07, 0xb3, 0x2a, 0x41, 0x27, + 0xae, 0x26, 0xc6, 0x70, 0x25, 0x8f, 0x27, 0xae, 0x7a, 0x83, 0x02, 0xae, 0xff, 0xa6, 0xc1, 0xf5, + 0x53, 0x32, 0x81, 0xf6, 0xe0, 0xea, 0xe0, 0x6c, 0x94, 0x0a, 0xf2, 0x32, 0xdd, 0x28, 0x5d, 0xc2, + 0x47, 0x31, 0xf3, 0x42, 0x77, 0x1f, 0xfb, 0x09, 0xe9, 0xbe, 0xd6, 0x2b, 0x23, 0xa3, 0xc7, 0x30, + 0x5b, 0x2a, 0x9b, 0xbc, 0x50, 0x77, 0xcf, 0x26, 0x57, 0x6c, 0x86, 0x99, 0x62, 0xa5, 0xf4, 0x5f, + 0x35, 0x68, 0x56, 0x67, 0x1b, 0x3d, 0x2c, 0x10, 0x52, 0x45, 0x1d, 0x89, 0x10, 0xea, 0x95, 0x80, + 0xd1, 0xe7, 0x30, 0x5b, 0x6a, 0x8c, 0xf1, 0xf9, 0x5c, 0x29, 0x34, 0x83, 0xfe, 0xe7, 0x20, 0x9d, + 0x42, 0x45, 0xd1, 0x63, 0x78, 0x63, 0x28, 0x1d, 0x4b, 0x4a, 0x47, 0xa2, 0x35, 0x57, 0xa6, 0x25, + 0xfd, 0xa0, 0x03, 0x98, 0x29, 0xb6, 0xe2, 0x05, 0xc8, 0x15, 0xda, 0x4f, 0xff, 0xb9, 0x06, 0x57, + 0x0a, 0x4a, 0xe8, 0x5d, 0xa8, 0x7b, 0x41, 0xc4, 0x08, 0xe7, 0xd9, 0xe7, 0xa5, 0x2a, 0xfe, 0xf7, + 0x69, 0x72, 0xe8, 0x13, 0x11, 0x7f, 0xde, 0x00, 0x19, 0x30, 0x61, 0xc7, 0x4c, 0x06, 0x79, 0xba, + 0x5d, 0xaa, 0x88, 0xd6, 0xa1, 0x8e, 0x8f, 0x09, 0xc3, 0x2e, 0xb1, 0xec, 0xc8, 0xce, 0x06, 0x72, + 0x7d, 0xe9, 0x7a, 0xc9, 0xee, 0x41, 0x18, 0xaf, 0x2c, 0x0b, 0x33, 0x90, 0xfa, 0x5b, 0x91, 0x8d, + 0x96, 0x61, 0xd2, 0xf6, 0x3d, 0xbb, 0xc7, 0x1b, 0xaf, 0x8c, 0xe0, 0x50, 0xea, 0xa6, 0x3e, 0x6d, + 0xca, 0x63, 0x2b, 0xf0, 0x6c, 0x46, 0x79, 0x63, 0x72, 0x04, 0x9f, 0xa9, 0xfe, 0x6e, 0xa6, 0xae, + 0x6f, 0x43, 0x4b, 0xcd, 0xc6, 0x1d, 0x8f, 0xc7, 0x94, 0x79, 0x36, 0xf6, 0xcf, 0x3f, 0x63, 0xbf, + 0xd6, 0xe0, 0xf6, 0x29, 0x38, 0x72, 0xca, 0x5a, 0x30, 0x15, 0x08, 0x91, 0x1c, 0xad, 0xdb, 0xe3, + 0x4c, 0xa0, 0x32, 0xbe, 0x42, 0xd5, 0x5f, 0x6a, 0x70, 0x67, 0x04, 0x03, 0x74, 0x0f, 0xa6, 0x39, + 0xc1, 0xcc, 0xfe, 0xc2, 0x7a, 0x92, 0x10, 0xf6, 0x6c, 0xa4, 0xc6, 0xae, 0x0b, 0x8b, 0x4f, 0x52, + 0x03, 0x44, 0x40, 0xf5, 0x9f, 0xa5, 0x18, 0x89, 0x26, 0xa9, 0x9e, 0xa9, 0x72, 0x13, 0xcc, 0x7f, + 0xc4, 0x4b, 0x44, 0x2e, 0x4b, 0x50, 0xf9, 0xbc, 0xf4, 0xcd, 0x14, 0xa0, 0x9c, 0xc1, 0x23, 0x91, + 0x14, 0xf4, 0x93, 0x06, 0x97, 0x07, 0x57, 0x36, 0xf4, 0xf6, 0xd9, 0x99, 0x1c, 0xba, 0xe4, 0x35, + 0xcf, 0xb9, 0x78, 0xe8, 0x2b, 0x5f, 0xfd, 0xfe, 0xd7, 0x77, 0xb5, 0x45, 0x64, 0xa4, 0x7b, 0xeb, + 0xf3, 0x81, 0x4f, 0xf8, 0x86, 0xda, 0xeb, 0xb8, 0xb9, 0x60, 0xe6, 0xba, 0x83, 0x9b, 0x0b, 0x2f, + 0xd0, 0x4b, 0x0d, 0x50, 0x79, 0x19, 0x40, 0x6b, 0xe3, 0xed, 0x19, 0x22, 0xf6, 0xf5, 0x31, 0x97, + 0x94, 0xac, 0x1b, 0xf5, 0xf5, 0x8c, 0xc9, 0x8a, 0x7e, 0x37, 0xdb, 0xdd, 0xfb, 0xa1, 0x3f, 0xcf, + 0x2d, 0xac, 0x1b, 0x0b, 0x2f, 0x06, 0x88, 0xac, 0x06, 0x19, 0xdc, 0xaa, 0xb6, 0x80, 0xfe, 0xd1, + 0xe0, 0x5a, 0xc5, 0x56, 0x81, 0xde, 0x1b, 0xa5, 0x18, 0xa7, 0xad, 0x35, 0xcd, 0xf6, 0x05, 0x10, + 0x24, 0xbd, 0xbd, 0x8c, 0xde, 0x07, 0xfa, 0x76, 0x56, 0xa8, 0xfc, 0x05, 0x3e, 0xad, 0x4e, 0xab, + 0xee, 0x70, 0xd8, 0x94, 0xf2, 0xbf, 0x1a, 0xcc, 0x55, 0x5e, 0x72, 0xb4, 0x39, 0x7a, 0xc8, 0x55, + 0x93, 0xa6, 0xb9, 0x75, 0x21, 0x0c, 0x49, 0xbc, 0x9b, 0x11, 0xff, 0x48, 0xef, 0x8c, 0x47, 0xbc, + 0x04, 0xbc, 0xaa, 0x2d, 0x6c, 0xfe, 0xa1, 0xc1, 0x9b, 0x36, 0x0d, 0xce, 0x0c, 0x6f, 0xf3, 0x5a, + 0xf9, 0xba, 0xee, 0xa5, 0xd3, 0x64, 0x4f, 0xfb, 0x6c, 0x47, 0x1a, 0xbb, 0xd4, 0xc7, 0xa1, 0x6b, + 0x50, 0xe6, 0x9a, 0x2e, 0x09, 0xb3, 0x59, 0xa3, 0xfe, 0x06, 0x23, 0x8f, 0x57, 0xff, 0xb5, 0xae, + 0xa9, 0xc3, 0x0f, 0xb5, 0x89, 0x4e, 0xbb, 0xfd, 0x63, 0xad, 0xd5, 0x11, 0x80, 0x6d, 0x87, 0x1b, + 0xe2, 0x98, 0x9e, 0xf6, 0x17, 0x0d, 0xe9, 0x98, 0xff, 0xa2, 0x54, 0x0e, 0xda, 0x0e, 0x3f, 0xe8, + 0xab, 0x1c, 0xec, 0x2f, 0x1e, 0x28, 0x95, 0xc3, 0xc9, 0x2c, 0x80, 0xb7, 0xfe, 0x0b, 0x00, 0x00, + 0xff, 0xff, 0xac, 0x10, 0x04, 0xef, 0x35, 0x0f, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/keyword_view_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/keyword_view_service.pb.go new file mode 100644 index 000000000..c21ce6b00 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/keyword_view_service.pb.go @@ -0,0 +1,174 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/keyword_view_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [KeywordViewService.GetKeywordView][google.ads.googleads.v0.services.KeywordViewService.GetKeywordView]. +type GetKeywordViewRequest struct { + // The resource name of the keyword view to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetKeywordViewRequest) Reset() { *m = GetKeywordViewRequest{} } +func (m *GetKeywordViewRequest) String() string { return proto.CompactTextString(m) } +func (*GetKeywordViewRequest) ProtoMessage() {} +func (*GetKeywordViewRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_keyword_view_service_34e3e0cb9228e5f7, []int{0} +} +func (m *GetKeywordViewRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetKeywordViewRequest.Unmarshal(m, b) +} +func (m *GetKeywordViewRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetKeywordViewRequest.Marshal(b, m, deterministic) +} +func (dst *GetKeywordViewRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetKeywordViewRequest.Merge(dst, src) +} +func (m *GetKeywordViewRequest) XXX_Size() int { + return xxx_messageInfo_GetKeywordViewRequest.Size(m) +} +func (m *GetKeywordViewRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetKeywordViewRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetKeywordViewRequest proto.InternalMessageInfo + +func (m *GetKeywordViewRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetKeywordViewRequest)(nil), "google.ads.googleads.v0.services.GetKeywordViewRequest") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// KeywordViewServiceClient is the client API for KeywordViewService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type KeywordViewServiceClient interface { + // Returns the requested keyword view in full detail. + GetKeywordView(ctx context.Context, in *GetKeywordViewRequest, opts ...grpc.CallOption) (*resources.KeywordView, error) +} + +type keywordViewServiceClient struct { + cc *grpc.ClientConn +} + +func NewKeywordViewServiceClient(cc *grpc.ClientConn) KeywordViewServiceClient { + return &keywordViewServiceClient{cc} +} + +func (c *keywordViewServiceClient) GetKeywordView(ctx context.Context, in *GetKeywordViewRequest, opts ...grpc.CallOption) (*resources.KeywordView, error) { + out := new(resources.KeywordView) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.KeywordViewService/GetKeywordView", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// KeywordViewServiceServer is the server API for KeywordViewService service. +type KeywordViewServiceServer interface { + // Returns the requested keyword view in full detail. + GetKeywordView(context.Context, *GetKeywordViewRequest) (*resources.KeywordView, error) +} + +func RegisterKeywordViewServiceServer(s *grpc.Server, srv KeywordViewServiceServer) { + s.RegisterService(&_KeywordViewService_serviceDesc, srv) +} + +func _KeywordViewService_GetKeywordView_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetKeywordViewRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(KeywordViewServiceServer).GetKeywordView(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.KeywordViewService/GetKeywordView", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(KeywordViewServiceServer).GetKeywordView(ctx, req.(*GetKeywordViewRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _KeywordViewService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.KeywordViewService", + HandlerType: (*KeywordViewServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetKeywordView", + Handler: _KeywordViewService_GetKeywordView_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/keyword_view_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/keyword_view_service.proto", fileDescriptor_keyword_view_service_34e3e0cb9228e5f7) +} + +var fileDescriptor_keyword_view_service_34e3e0cb9228e5f7 = []byte{ + // 343 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x4e, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xe2, 0xd4, + 0xa2, 0xb2, 0xcc, 0xe4, 0xd4, 0x62, 0xfd, 0xec, 0xd4, 0xca, 0xf2, 0xfc, 0xa2, 0x94, 0xf8, 0xb2, + 0xcc, 0xd4, 0xf2, 0x78, 0xa8, 0xa8, 0x5e, 0x41, 0x51, 0x7e, 0x49, 0xbe, 0x90, 0x02, 0x44, 0x87, + 0x5e, 0x62, 0x4a, 0xb1, 0x1e, 0x5c, 0xb3, 0x5e, 0x99, 0x81, 0x1e, 0x4c, 0xb3, 0x94, 0x09, 0x2e, + 0xe3, 0x8b, 0x52, 0x8b, 0xf3, 0x4b, 0x8b, 0xd0, 0xcd, 0x87, 0x98, 0x2b, 0x25, 0x03, 0xd3, 0x55, + 0x90, 0xa9, 0x9f, 0x98, 0x97, 0x97, 0x5f, 0x92, 0x58, 0x92, 0x99, 0x9f, 0x57, 0x0c, 0x91, 0x55, + 0xb2, 0xe1, 0x12, 0x75, 0x4f, 0x2d, 0xf1, 0x86, 0x68, 0x0b, 0xcb, 0x4c, 0x2d, 0x0f, 0x4a, 0x2d, + 0x2c, 0x4d, 0x2d, 0x2e, 0x11, 0x52, 0xe6, 0xe2, 0x85, 0x19, 0x1b, 0x9f, 0x97, 0x98, 0x9b, 0x2a, + 0xc1, 0xa8, 0xc0, 0xa8, 0xc1, 0x19, 0xc4, 0x03, 0x13, 0xf4, 0x4b, 0xcc, 0x4d, 0x35, 0x3a, 0xc1, + 0xc8, 0x25, 0x84, 0xa4, 0x37, 0x18, 0xe2, 0x52, 0xa1, 0x8d, 0x8c, 0x5c, 0x7c, 0xa8, 0xa6, 0x0a, + 0x99, 0xeb, 0x11, 0xf2, 0x9e, 0x1e, 0x56, 0x77, 0x48, 0xe9, 0xe1, 0xd4, 0x08, 0xf7, 0xb5, 0x1e, + 0x92, 0x36, 0x25, 0xb3, 0xa6, 0xcb, 0x4f, 0x26, 0x33, 0x19, 0x08, 0xe9, 0x81, 0x02, 0xa6, 0x1a, + 0xc5, 0x0b, 0xb6, 0xc9, 0xa5, 0xc5, 0x25, 0xf9, 0xb9, 0xa9, 0x45, 0xc5, 0xfa, 0x5a, 0xb0, 0x90, + 0x02, 0xe9, 0x29, 0xd6, 0xd7, 0xaa, 0x75, 0xba, 0xce, 0xc8, 0xa5, 0x92, 0x9c, 0x9f, 0x4b, 0xd0, + 0x99, 0x4e, 0xe2, 0x98, 0x1e, 0x0e, 0x00, 0x05, 0x65, 0x00, 0x63, 0x94, 0x07, 0x54, 0x73, 0x7a, + 0x7e, 0x4e, 0x62, 0x5e, 0xba, 0x5e, 0x7e, 0x51, 0xba, 0x7e, 0x7a, 0x6a, 0x1e, 0x38, 0xa0, 0x61, + 0x11, 0x56, 0x90, 0x59, 0x8c, 0x3b, 0x79, 0x58, 0xc3, 0x18, 0x8b, 0x98, 0x98, 0xdd, 0x1d, 0x1d, + 0x57, 0x31, 0x29, 0xb8, 0x43, 0x0c, 0x74, 0x4c, 0x29, 0xd6, 0x83, 0x30, 0x41, 0xac, 0x30, 0x03, + 0x3d, 0xa8, 0xc5, 0xc5, 0xa7, 0x60, 0x4a, 0x62, 0x1c, 0x53, 0x8a, 0x63, 0xe0, 0x4a, 0x62, 0xc2, + 0x0c, 0x62, 0x60, 0x4a, 0x92, 0xd8, 0xc0, 0x0e, 0x30, 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, 0x38, + 0x0c, 0x16, 0x0b, 0x9e, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/language_constant_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/language_constant_service.pb.go new file mode 100644 index 000000000..26af68b90 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/language_constant_service.pb.go @@ -0,0 +1,173 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/language_constant_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [LanguageConstantService.GetLanguageConstant][google.ads.googleads.v0.services.LanguageConstantService.GetLanguageConstant]. +type GetLanguageConstantRequest struct { + // Resource name of the language constant to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetLanguageConstantRequest) Reset() { *m = GetLanguageConstantRequest{} } +func (m *GetLanguageConstantRequest) String() string { return proto.CompactTextString(m) } +func (*GetLanguageConstantRequest) ProtoMessage() {} +func (*GetLanguageConstantRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_language_constant_service_e6d521781dfa38e0, []int{0} +} +func (m *GetLanguageConstantRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetLanguageConstantRequest.Unmarshal(m, b) +} +func (m *GetLanguageConstantRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetLanguageConstantRequest.Marshal(b, m, deterministic) +} +func (dst *GetLanguageConstantRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetLanguageConstantRequest.Merge(dst, src) +} +func (m *GetLanguageConstantRequest) XXX_Size() int { + return xxx_messageInfo_GetLanguageConstantRequest.Size(m) +} +func (m *GetLanguageConstantRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetLanguageConstantRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetLanguageConstantRequest proto.InternalMessageInfo + +func (m *GetLanguageConstantRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetLanguageConstantRequest)(nil), "google.ads.googleads.v0.services.GetLanguageConstantRequest") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// LanguageConstantServiceClient is the client API for LanguageConstantService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type LanguageConstantServiceClient interface { + // Returns the requested language constant. + GetLanguageConstant(ctx context.Context, in *GetLanguageConstantRequest, opts ...grpc.CallOption) (*resources.LanguageConstant, error) +} + +type languageConstantServiceClient struct { + cc *grpc.ClientConn +} + +func NewLanguageConstantServiceClient(cc *grpc.ClientConn) LanguageConstantServiceClient { + return &languageConstantServiceClient{cc} +} + +func (c *languageConstantServiceClient) GetLanguageConstant(ctx context.Context, in *GetLanguageConstantRequest, opts ...grpc.CallOption) (*resources.LanguageConstant, error) { + out := new(resources.LanguageConstant) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.LanguageConstantService/GetLanguageConstant", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// LanguageConstantServiceServer is the server API for LanguageConstantService service. +type LanguageConstantServiceServer interface { + // Returns the requested language constant. + GetLanguageConstant(context.Context, *GetLanguageConstantRequest) (*resources.LanguageConstant, error) +} + +func RegisterLanguageConstantServiceServer(s *grpc.Server, srv LanguageConstantServiceServer) { + s.RegisterService(&_LanguageConstantService_serviceDesc, srv) +} + +func _LanguageConstantService_GetLanguageConstant_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetLanguageConstantRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LanguageConstantServiceServer).GetLanguageConstant(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.LanguageConstantService/GetLanguageConstant", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LanguageConstantServiceServer).GetLanguageConstant(ctx, req.(*GetLanguageConstantRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _LanguageConstantService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.LanguageConstantService", + HandlerType: (*LanguageConstantServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetLanguageConstant", + Handler: _LanguageConstantService_GetLanguageConstant_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/language_constant_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/language_constant_service.proto", fileDescriptor_language_constant_service_e6d521781dfa38e0) +} + +var fileDescriptor_language_constant_service_e6d521781dfa38e0 = []byte{ + // 334 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x72, 0x48, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xe2, 0xd4, + 0xa2, 0xb2, 0xcc, 0xe4, 0xd4, 0x62, 0xfd, 0x9c, 0xc4, 0xbc, 0xf4, 0xd2, 0xc4, 0xf4, 0xd4, 0xf8, + 0xe4, 0xfc, 0xbc, 0xe2, 0x92, 0xc4, 0xbc, 0x92, 0x78, 0xa8, 0x94, 0x5e, 0x41, 0x51, 0x7e, 0x49, + 0xbe, 0x90, 0x02, 0x44, 0x9b, 0x5e, 0x62, 0x4a, 0xb1, 0x1e, 0xdc, 0x04, 0xbd, 0x32, 0x03, 0x3d, + 0x98, 0x09, 0x52, 0x96, 0xb8, 0xec, 0x28, 0x4a, 0x2d, 0xce, 0x2f, 0x2d, 0xc2, 0x6a, 0x09, 0xc4, + 0x70, 0x29, 0x19, 0x98, 0xd6, 0x82, 0x4c, 0xfd, 0xc4, 0xbc, 0xbc, 0xfc, 0x92, 0xc4, 0x92, 0xcc, + 0xfc, 0xbc, 0x62, 0x88, 0xac, 0x92, 0x23, 0x97, 0x94, 0x7b, 0x6a, 0x89, 0x0f, 0x54, 0xaf, 0x33, + 0x54, 0x6b, 0x50, 0x6a, 0x61, 0x69, 0x6a, 0x71, 0x89, 0x90, 0x32, 0x17, 0x2f, 0xcc, 0x82, 0xf8, + 0xbc, 0xc4, 0xdc, 0x54, 0x09, 0x46, 0x05, 0x46, 0x0d, 0xce, 0x20, 0x1e, 0x98, 0xa0, 0x5f, 0x62, + 0x6e, 0xaa, 0xd1, 0x55, 0x46, 0x2e, 0x71, 0x74, 0x03, 0x82, 0x21, 0x0e, 0x17, 0xda, 0xc9, 0xc8, + 0x25, 0x8c, 0xc5, 0x7c, 0x21, 0x1b, 0x3d, 0x42, 0x5e, 0xd6, 0xc3, 0xed, 0x2c, 0x29, 0x63, 0x9c, + 0xba, 0xe1, 0xc1, 0xa1, 0x87, 0xae, 0x57, 0x49, 0xbf, 0xe9, 0xf2, 0x93, 0xc9, 0x4c, 0x9a, 0x42, + 0xea, 0xa0, 0x60, 0xab, 0x46, 0xf1, 0x96, 0x6d, 0x0e, 0x9a, 0xe2, 0x62, 0x7d, 0xad, 0x5a, 0xa7, + 0x3b, 0x8c, 0x5c, 0x2a, 0xc9, 0xf9, 0xb9, 0x04, 0x5d, 0xea, 0x24, 0x83, 0xc3, 0xf7, 0x01, 0xa0, + 0x10, 0x0e, 0x60, 0x8c, 0xf2, 0x80, 0x9a, 0x90, 0x9e, 0x0f, 0xb2, 0x47, 0x2f, 0xbf, 0x28, 0x5d, + 0x3f, 0x3d, 0x35, 0x0f, 0x1c, 0xfe, 0xb0, 0xc8, 0x2c, 0xc8, 0x2c, 0xc6, 0x9d, 0x7e, 0xac, 0x61, + 0x8c, 0x45, 0x4c, 0xcc, 0xee, 0x8e, 0x8e, 0xab, 0x98, 0x14, 0xdc, 0x21, 0x06, 0x3a, 0xa6, 0x14, + 0xeb, 0x41, 0x98, 0x20, 0x56, 0x98, 0x81, 0x1e, 0xd4, 0xe2, 0xe2, 0x53, 0x30, 0x25, 0x31, 0x8e, + 0x29, 0xc5, 0x31, 0x70, 0x25, 0x31, 0x61, 0x06, 0x31, 0x30, 0x25, 0x49, 0x6c, 0x60, 0x07, 0x18, + 0x03, 0x02, 0x00, 0x00, 0xff, 0xff, 0x53, 0x19, 0x41, 0xad, 0xbf, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/managed_placement_view_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/managed_placement_view_service.pb.go new file mode 100644 index 000000000..7dcb0aeaa --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/managed_placement_view_service.pb.go @@ -0,0 +1,175 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/managed_placement_view_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [ManagedPlacementViewService.GetManagedPlacementView][google.ads.googleads.v0.services.ManagedPlacementViewService.GetManagedPlacementView]. +type GetManagedPlacementViewRequest struct { + // The resource name of the Managed Placement View to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetManagedPlacementViewRequest) Reset() { *m = GetManagedPlacementViewRequest{} } +func (m *GetManagedPlacementViewRequest) String() string { return proto.CompactTextString(m) } +func (*GetManagedPlacementViewRequest) ProtoMessage() {} +func (*GetManagedPlacementViewRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_managed_placement_view_service_bb9f749dcc6fc543, []int{0} +} +func (m *GetManagedPlacementViewRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetManagedPlacementViewRequest.Unmarshal(m, b) +} +func (m *GetManagedPlacementViewRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetManagedPlacementViewRequest.Marshal(b, m, deterministic) +} +func (dst *GetManagedPlacementViewRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetManagedPlacementViewRequest.Merge(dst, src) +} +func (m *GetManagedPlacementViewRequest) XXX_Size() int { + return xxx_messageInfo_GetManagedPlacementViewRequest.Size(m) +} +func (m *GetManagedPlacementViewRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetManagedPlacementViewRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetManagedPlacementViewRequest proto.InternalMessageInfo + +func (m *GetManagedPlacementViewRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetManagedPlacementViewRequest)(nil), "google.ads.googleads.v0.services.GetManagedPlacementViewRequest") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// ManagedPlacementViewServiceClient is the client API for ManagedPlacementViewService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type ManagedPlacementViewServiceClient interface { + // Returns the requested Managed Placement view in full detail. + GetManagedPlacementView(ctx context.Context, in *GetManagedPlacementViewRequest, opts ...grpc.CallOption) (*resources.ManagedPlacementView, error) +} + +type managedPlacementViewServiceClient struct { + cc *grpc.ClientConn +} + +func NewManagedPlacementViewServiceClient(cc *grpc.ClientConn) ManagedPlacementViewServiceClient { + return &managedPlacementViewServiceClient{cc} +} + +func (c *managedPlacementViewServiceClient) GetManagedPlacementView(ctx context.Context, in *GetManagedPlacementViewRequest, opts ...grpc.CallOption) (*resources.ManagedPlacementView, error) { + out := new(resources.ManagedPlacementView) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.ManagedPlacementViewService/GetManagedPlacementView", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// ManagedPlacementViewServiceServer is the server API for ManagedPlacementViewService service. +type ManagedPlacementViewServiceServer interface { + // Returns the requested Managed Placement view in full detail. + GetManagedPlacementView(context.Context, *GetManagedPlacementViewRequest) (*resources.ManagedPlacementView, error) +} + +func RegisterManagedPlacementViewServiceServer(s *grpc.Server, srv ManagedPlacementViewServiceServer) { + s.RegisterService(&_ManagedPlacementViewService_serviceDesc, srv) +} + +func _ManagedPlacementViewService_GetManagedPlacementView_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetManagedPlacementViewRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ManagedPlacementViewServiceServer).GetManagedPlacementView(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.ManagedPlacementViewService/GetManagedPlacementView", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ManagedPlacementViewServiceServer).GetManagedPlacementView(ctx, req.(*GetManagedPlacementViewRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _ManagedPlacementViewService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.ManagedPlacementViewService", + HandlerType: (*ManagedPlacementViewServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetManagedPlacementView", + Handler: _ManagedPlacementViewService_GetManagedPlacementView_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/managed_placement_view_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/managed_placement_view_service.proto", fileDescriptor_managed_placement_view_service_bb9f749dcc6fc543) +} + +var fileDescriptor_managed_placement_view_service_bb9f749dcc6fc543 = []byte{ + // 356 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x52, 0x4f, 0x4b, 0xfb, 0x40, + 0x10, 0x25, 0xfd, 0xc1, 0x0f, 0x0c, 0x7a, 0xc9, 0x45, 0xa9, 0x22, 0xa1, 0x7a, 0x90, 0x1e, 0x76, + 0x83, 0x1e, 0x8a, 0x88, 0x7f, 0x52, 0x28, 0xf5, 0xa2, 0x94, 0x0a, 0x3d, 0x48, 0x20, 0xac, 0xc9, + 0xb0, 0x04, 0x9a, 0xdd, 0x98, 0xd9, 0xa6, 0x07, 0xf1, 0xe2, 0x57, 0xf0, 0x1b, 0x78, 0xf4, 0xa3, + 0x78, 0x15, 0xef, 0x1e, 0xfc, 0x0a, 0xde, 0x25, 0xdd, 0x6e, 0xa0, 0xd0, 0xb4, 0xb7, 0xc7, 0xce, + 0xbc, 0xf7, 0x66, 0xde, 0xac, 0xdd, 0xe3, 0x52, 0xf2, 0x31, 0x50, 0x16, 0x23, 0xd5, 0xb0, 0x44, + 0x85, 0x47, 0x11, 0xf2, 0x22, 0x89, 0x00, 0x69, 0xca, 0x04, 0xe3, 0x10, 0x87, 0xd9, 0x98, 0x45, + 0x90, 0x82, 0x50, 0x61, 0x91, 0xc0, 0x34, 0x9c, 0xd7, 0x49, 0x96, 0x4b, 0x25, 0x1d, 0x57, 0x73, + 0x09, 0x8b, 0x91, 0x54, 0x32, 0xa4, 0xf0, 0x88, 0x91, 0x69, 0x5e, 0xd4, 0x19, 0xe5, 0x80, 0x72, + 0x92, 0xd7, 0x3b, 0x69, 0x87, 0xe6, 0x9e, 0xe1, 0x67, 0x09, 0x65, 0x42, 0x48, 0xc5, 0x54, 0x22, + 0x05, 0xea, 0x6a, 0xab, 0x67, 0xef, 0xf7, 0x41, 0xdd, 0x68, 0x81, 0x81, 0xe1, 0x8f, 0x12, 0x98, + 0x0e, 0xe1, 0x71, 0x02, 0xa8, 0x9c, 0x03, 0x7b, 0xcb, 0x38, 0x85, 0x82, 0xa5, 0xb0, 0x63, 0xb9, + 0xd6, 0xd1, 0xc6, 0x70, 0xd3, 0x3c, 0xde, 0xb2, 0x14, 0x8e, 0x7f, 0x2d, 0x7b, 0x77, 0x99, 0xc8, + 0x9d, 0xde, 0xc2, 0xf9, 0xb2, 0xec, 0xed, 0x1a, 0x1f, 0xe7, 0x8a, 0xac, 0xcb, 0x80, 0xac, 0x1e, + 0xb1, 0xd9, 0xa9, 0x55, 0xa8, 0x32, 0x22, 0xcb, 0xf8, 0xad, 0xcb, 0x97, 0xcf, 0x9f, 0xd7, 0xc6, + 0xa9, 0xd3, 0x29, 0xf3, 0x7c, 0x5a, 0x58, 0xf3, 0x3c, 0x9a, 0xa0, 0x92, 0x29, 0xe4, 0x48, 0xdb, + 0x26, 0xe0, 0x05, 0x32, 0xd2, 0xf6, 0x73, 0xf7, 0xdb, 0xb2, 0x0f, 0x23, 0x99, 0xae, 0xdd, 0xa0, + 0xeb, 0xae, 0x48, 0x67, 0x50, 0x5e, 0x62, 0x60, 0xdd, 0x5f, 0xcf, 0x55, 0xb8, 0x1c, 0x33, 0xc1, + 0x89, 0xcc, 0x39, 0xe5, 0x20, 0x66, 0x77, 0x32, 0x97, 0xcf, 0x12, 0xac, 0xff, 0x71, 0x67, 0x06, + 0xbc, 0x35, 0xfe, 0xf5, 0x7d, 0xff, 0xbd, 0xe1, 0xf6, 0xb5, 0xa0, 0x1f, 0x23, 0xd1, 0xb0, 0x44, + 0x23, 0x8f, 0xcc, 0x8d, 0xf1, 0xc3, 0xb4, 0x04, 0x7e, 0x8c, 0x41, 0xd5, 0x12, 0x8c, 0xbc, 0xc0, + 0xb4, 0x3c, 0xfc, 0x9f, 0x0d, 0x70, 0xf2, 0x17, 0x00, 0x00, 0xff, 0xff, 0xb9, 0x9b, 0xa8, 0x92, + 0xf1, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/media_file_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/media_file_service.pb.go new file mode 100644 index 000000000..8330da659 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/media_file_service.pb.go @@ -0,0 +1,468 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/media_file_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [MediaFileService.GetMediaFile][google.ads.googleads.v0.services.MediaFileService.GetMediaFile] +type GetMediaFileRequest struct { + // The resource name of the media file to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetMediaFileRequest) Reset() { *m = GetMediaFileRequest{} } +func (m *GetMediaFileRequest) String() string { return proto.CompactTextString(m) } +func (*GetMediaFileRequest) ProtoMessage() {} +func (*GetMediaFileRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_media_file_service_636511ac02cf9dc1, []int{0} +} +func (m *GetMediaFileRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetMediaFileRequest.Unmarshal(m, b) +} +func (m *GetMediaFileRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetMediaFileRequest.Marshal(b, m, deterministic) +} +func (dst *GetMediaFileRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetMediaFileRequest.Merge(dst, src) +} +func (m *GetMediaFileRequest) XXX_Size() int { + return xxx_messageInfo_GetMediaFileRequest.Size(m) +} +func (m *GetMediaFileRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetMediaFileRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetMediaFileRequest proto.InternalMessageInfo + +func (m *GetMediaFileRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +// Request message for [MediaFileService.MutateMediaFiles][google.ads.googleads.v0.services.MediaFileService.MutateMediaFiles] +type MutateMediaFilesRequest struct { + // The ID of the customer whose media files are being modified. + CustomerId string `protobuf:"bytes,1,opt,name=customer_id,json=customerId,proto3" json:"customer_id,omitempty"` + // The list of operations to perform on individual media file. + Operations []*MediaFileOperation `protobuf:"bytes,2,rep,name=operations,proto3" json:"operations,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateMediaFilesRequest) Reset() { *m = MutateMediaFilesRequest{} } +func (m *MutateMediaFilesRequest) String() string { return proto.CompactTextString(m) } +func (*MutateMediaFilesRequest) ProtoMessage() {} +func (*MutateMediaFilesRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_media_file_service_636511ac02cf9dc1, []int{1} +} +func (m *MutateMediaFilesRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateMediaFilesRequest.Unmarshal(m, b) +} +func (m *MutateMediaFilesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateMediaFilesRequest.Marshal(b, m, deterministic) +} +func (dst *MutateMediaFilesRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateMediaFilesRequest.Merge(dst, src) +} +func (m *MutateMediaFilesRequest) XXX_Size() int { + return xxx_messageInfo_MutateMediaFilesRequest.Size(m) +} +func (m *MutateMediaFilesRequest) XXX_DiscardUnknown() { + xxx_messageInfo_MutateMediaFilesRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateMediaFilesRequest proto.InternalMessageInfo + +func (m *MutateMediaFilesRequest) GetCustomerId() string { + if m != nil { + return m.CustomerId + } + return "" +} + +func (m *MutateMediaFilesRequest) GetOperations() []*MediaFileOperation { + if m != nil { + return m.Operations + } + return nil +} + +// A single operation to create media file. +type MediaFileOperation struct { + // The mutate operation. + // + // Types that are valid to be assigned to Operation: + // *MediaFileOperation_Create + Operation isMediaFileOperation_Operation `protobuf_oneof:"operation"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MediaFileOperation) Reset() { *m = MediaFileOperation{} } +func (m *MediaFileOperation) String() string { return proto.CompactTextString(m) } +func (*MediaFileOperation) ProtoMessage() {} +func (*MediaFileOperation) Descriptor() ([]byte, []int) { + return fileDescriptor_media_file_service_636511ac02cf9dc1, []int{2} +} +func (m *MediaFileOperation) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MediaFileOperation.Unmarshal(m, b) +} +func (m *MediaFileOperation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MediaFileOperation.Marshal(b, m, deterministic) +} +func (dst *MediaFileOperation) XXX_Merge(src proto.Message) { + xxx_messageInfo_MediaFileOperation.Merge(dst, src) +} +func (m *MediaFileOperation) XXX_Size() int { + return xxx_messageInfo_MediaFileOperation.Size(m) +} +func (m *MediaFileOperation) XXX_DiscardUnknown() { + xxx_messageInfo_MediaFileOperation.DiscardUnknown(m) +} + +var xxx_messageInfo_MediaFileOperation proto.InternalMessageInfo + +type isMediaFileOperation_Operation interface { + isMediaFileOperation_Operation() +} + +type MediaFileOperation_Create struct { + Create *resources.MediaFile `protobuf:"bytes,1,opt,name=create,proto3,oneof"` +} + +func (*MediaFileOperation_Create) isMediaFileOperation_Operation() {} + +func (m *MediaFileOperation) GetOperation() isMediaFileOperation_Operation { + if m != nil { + return m.Operation + } + return nil +} + +func (m *MediaFileOperation) GetCreate() *resources.MediaFile { + if x, ok := m.GetOperation().(*MediaFileOperation_Create); ok { + return x.Create + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*MediaFileOperation) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _MediaFileOperation_OneofMarshaler, _MediaFileOperation_OneofUnmarshaler, _MediaFileOperation_OneofSizer, []interface{}{ + (*MediaFileOperation_Create)(nil), + } +} + +func _MediaFileOperation_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*MediaFileOperation) + // operation + switch x := m.Operation.(type) { + case *MediaFileOperation_Create: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Create); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("MediaFileOperation.Operation has unexpected type %T", x) + } + return nil +} + +func _MediaFileOperation_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*MediaFileOperation) + switch tag { + case 1: // operation.create + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.MediaFile) + err := b.DecodeMessage(msg) + m.Operation = &MediaFileOperation_Create{msg} + return true, err + default: + return false, nil + } +} + +func _MediaFileOperation_OneofSizer(msg proto.Message) (n int) { + m := msg.(*MediaFileOperation) + // operation + switch x := m.Operation.(type) { + case *MediaFileOperation_Create: + s := proto.Size(x.Create) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// Response message for a media file mutate. +type MutateMediaFilesResponse struct { + // All results for the mutate. + Results []*MutateMediaFileResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateMediaFilesResponse) Reset() { *m = MutateMediaFilesResponse{} } +func (m *MutateMediaFilesResponse) String() string { return proto.CompactTextString(m) } +func (*MutateMediaFilesResponse) ProtoMessage() {} +func (*MutateMediaFilesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_media_file_service_636511ac02cf9dc1, []int{3} +} +func (m *MutateMediaFilesResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateMediaFilesResponse.Unmarshal(m, b) +} +func (m *MutateMediaFilesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateMediaFilesResponse.Marshal(b, m, deterministic) +} +func (dst *MutateMediaFilesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateMediaFilesResponse.Merge(dst, src) +} +func (m *MutateMediaFilesResponse) XXX_Size() int { + return xxx_messageInfo_MutateMediaFilesResponse.Size(m) +} +func (m *MutateMediaFilesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MutateMediaFilesResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateMediaFilesResponse proto.InternalMessageInfo + +func (m *MutateMediaFilesResponse) GetResults() []*MutateMediaFileResult { + if m != nil { + return m.Results + } + return nil +} + +// The result for the media file mutate. +type MutateMediaFileResult struct { + // The resource name returned for successful operations. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateMediaFileResult) Reset() { *m = MutateMediaFileResult{} } +func (m *MutateMediaFileResult) String() string { return proto.CompactTextString(m) } +func (*MutateMediaFileResult) ProtoMessage() {} +func (*MutateMediaFileResult) Descriptor() ([]byte, []int) { + return fileDescriptor_media_file_service_636511ac02cf9dc1, []int{4} +} +func (m *MutateMediaFileResult) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateMediaFileResult.Unmarshal(m, b) +} +func (m *MutateMediaFileResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateMediaFileResult.Marshal(b, m, deterministic) +} +func (dst *MutateMediaFileResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateMediaFileResult.Merge(dst, src) +} +func (m *MutateMediaFileResult) XXX_Size() int { + return xxx_messageInfo_MutateMediaFileResult.Size(m) +} +func (m *MutateMediaFileResult) XXX_DiscardUnknown() { + xxx_messageInfo_MutateMediaFileResult.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateMediaFileResult proto.InternalMessageInfo + +func (m *MutateMediaFileResult) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetMediaFileRequest)(nil), "google.ads.googleads.v0.services.GetMediaFileRequest") + proto.RegisterType((*MutateMediaFilesRequest)(nil), "google.ads.googleads.v0.services.MutateMediaFilesRequest") + proto.RegisterType((*MediaFileOperation)(nil), "google.ads.googleads.v0.services.MediaFileOperation") + proto.RegisterType((*MutateMediaFilesResponse)(nil), "google.ads.googleads.v0.services.MutateMediaFilesResponse") + proto.RegisterType((*MutateMediaFileResult)(nil), "google.ads.googleads.v0.services.MutateMediaFileResult") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// MediaFileServiceClient is the client API for MediaFileService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type MediaFileServiceClient interface { + // Returns the requested media file in full detail. + GetMediaFile(ctx context.Context, in *GetMediaFileRequest, opts ...grpc.CallOption) (*resources.MediaFile, error) + // Creates media files. Operation statuses are returned. + MutateMediaFiles(ctx context.Context, in *MutateMediaFilesRequest, opts ...grpc.CallOption) (*MutateMediaFilesResponse, error) +} + +type mediaFileServiceClient struct { + cc *grpc.ClientConn +} + +func NewMediaFileServiceClient(cc *grpc.ClientConn) MediaFileServiceClient { + return &mediaFileServiceClient{cc} +} + +func (c *mediaFileServiceClient) GetMediaFile(ctx context.Context, in *GetMediaFileRequest, opts ...grpc.CallOption) (*resources.MediaFile, error) { + out := new(resources.MediaFile) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.MediaFileService/GetMediaFile", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *mediaFileServiceClient) MutateMediaFiles(ctx context.Context, in *MutateMediaFilesRequest, opts ...grpc.CallOption) (*MutateMediaFilesResponse, error) { + out := new(MutateMediaFilesResponse) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.MediaFileService/MutateMediaFiles", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// MediaFileServiceServer is the server API for MediaFileService service. +type MediaFileServiceServer interface { + // Returns the requested media file in full detail. + GetMediaFile(context.Context, *GetMediaFileRequest) (*resources.MediaFile, error) + // Creates media files. Operation statuses are returned. + MutateMediaFiles(context.Context, *MutateMediaFilesRequest) (*MutateMediaFilesResponse, error) +} + +func RegisterMediaFileServiceServer(s *grpc.Server, srv MediaFileServiceServer) { + s.RegisterService(&_MediaFileService_serviceDesc, srv) +} + +func _MediaFileService_GetMediaFile_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetMediaFileRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MediaFileServiceServer).GetMediaFile(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.MediaFileService/GetMediaFile", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MediaFileServiceServer).GetMediaFile(ctx, req.(*GetMediaFileRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _MediaFileService_MutateMediaFiles_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MutateMediaFilesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MediaFileServiceServer).MutateMediaFiles(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.MediaFileService/MutateMediaFiles", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MediaFileServiceServer).MutateMediaFiles(ctx, req.(*MutateMediaFilesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _MediaFileService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.MediaFileService", + HandlerType: (*MediaFileServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetMediaFile", + Handler: _MediaFileService_GetMediaFile_Handler, + }, + { + MethodName: "MutateMediaFiles", + Handler: _MediaFileService_MutateMediaFiles_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/media_file_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/media_file_service.proto", fileDescriptor_media_file_service_636511ac02cf9dc1) +} + +var fileDescriptor_media_file_service_636511ac02cf9dc1 = []byte{ + // 516 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x54, 0xc1, 0x6e, 0xd3, 0x40, + 0x10, 0xc5, 0x89, 0x54, 0xd4, 0x49, 0x91, 0xaa, 0x45, 0x15, 0x51, 0x84, 0x44, 0x64, 0x38, 0x54, + 0x51, 0xb5, 0x8e, 0x42, 0x10, 0xaa, 0xa1, 0x87, 0xe4, 0xd0, 0x94, 0x43, 0xa1, 0x18, 0xd4, 0x03, + 0x8a, 0x14, 0x2d, 0xf1, 0x60, 0x59, 0xb2, 0xbd, 0x66, 0x77, 0x9d, 0x4b, 0xd5, 0x0b, 0x07, 0xce, + 0x48, 0xfc, 0x01, 0x37, 0xf8, 0x0f, 0x2e, 0x5c, 0x11, 0x7f, 0xc0, 0x87, 0x20, 0x7b, 0xbd, 0x6e, + 0xd2, 0x36, 0x4a, 0xc3, 0x6d, 0x34, 0x9e, 0xf7, 0xde, 0xbc, 0x99, 0xf1, 0xc2, 0x7e, 0xc0, 0x79, + 0x10, 0xa1, 0xc3, 0x7c, 0xe9, 0xe8, 0x30, 0x8f, 0x66, 0x5d, 0x47, 0xa2, 0x98, 0x85, 0x53, 0x94, + 0x4e, 0x8c, 0x7e, 0xc8, 0x26, 0x1f, 0xc2, 0x08, 0x27, 0x65, 0x8e, 0xa6, 0x82, 0x2b, 0x4e, 0xda, + 0xba, 0x9e, 0x32, 0x5f, 0xd2, 0x0a, 0x4a, 0x67, 0x5d, 0x6a, 0xa0, 0xad, 0xde, 0x32, 0x72, 0x81, + 0x92, 0x67, 0x62, 0x91, 0x5d, 0xb3, 0xb6, 0xee, 0x1b, 0x4c, 0x1a, 0x3a, 0x2c, 0x49, 0xb8, 0x62, + 0x2a, 0xe4, 0x89, 0xd4, 0x5f, 0x6d, 0x17, 0xee, 0x8e, 0x50, 0x1d, 0xe7, 0xa0, 0xc3, 0x30, 0x42, + 0x0f, 0x3f, 0x66, 0x28, 0x15, 0x79, 0x08, 0x77, 0x0c, 0xe5, 0x24, 0x61, 0x31, 0x36, 0xad, 0xb6, + 0xb5, 0xbb, 0xe9, 0x6d, 0x99, 0xe4, 0x4b, 0x16, 0xa3, 0xfd, 0xc5, 0x82, 0x7b, 0xc7, 0x99, 0x62, + 0x0a, 0x2b, 0xbc, 0x34, 0x04, 0x0f, 0xa0, 0x31, 0xcd, 0xa4, 0xe2, 0x31, 0x8a, 0x49, 0xe8, 0x97, + 0x70, 0x30, 0xa9, 0x17, 0x3e, 0x79, 0x0b, 0xc0, 0x53, 0x14, 0xba, 0x99, 0x66, 0xad, 0x5d, 0xdf, + 0x6d, 0xf4, 0xfa, 0x74, 0xd5, 0x04, 0x68, 0xa5, 0xf4, 0xca, 0x80, 0xbd, 0x39, 0x1e, 0x3b, 0x04, + 0x72, 0xb5, 0x82, 0x1c, 0xc2, 0xc6, 0x54, 0x20, 0x53, 0xda, 0x46, 0xa3, 0xb7, 0xb7, 0x54, 0xa7, + 0x9a, 0xe3, 0x85, 0xd0, 0xd1, 0x2d, 0xaf, 0x44, 0x0f, 0x1b, 0xb0, 0x59, 0x69, 0xd9, 0x31, 0x34, + 0xaf, 0x9a, 0x97, 0x29, 0x4f, 0x24, 0x92, 0xd7, 0x70, 0x5b, 0xa0, 0xcc, 0x22, 0x65, 0x9c, 0x3d, + 0xbd, 0x81, 0xb3, 0x45, 0x32, 0xaf, 0xc0, 0x7b, 0x86, 0xc7, 0x7e, 0x0e, 0x3b, 0xd7, 0x56, 0xdc, + 0x68, 0x55, 0xbd, 0xcf, 0x75, 0xd8, 0xae, 0x80, 0x6f, 0xb4, 0x24, 0xf9, 0x6e, 0xc1, 0xd6, 0xfc, + 0xf2, 0xc9, 0x93, 0xd5, 0x5d, 0x5e, 0x73, 0x2c, 0xad, 0xb5, 0xc6, 0x69, 0xf7, 0x3f, 0xfd, 0xfe, + 0xfb, 0xb5, 0x46, 0xc9, 0x5e, 0x7e, 0xb7, 0x67, 0x0b, 0xad, 0x1f, 0x98, 0xfb, 0x90, 0x4e, 0x47, + 0x1f, 0x72, 0x31, 0x56, 0xa7, 0x73, 0x4e, 0x7e, 0x5a, 0xb0, 0x7d, 0x79, 0xdc, 0x64, 0x7f, 0xed, + 0xa9, 0x9a, 0xfb, 0x6c, 0xb9, 0xff, 0x03, 0xd5, 0xdb, 0xb5, 0xdd, 0xc2, 0x41, 0xdf, 0x76, 0x72, + 0x07, 0x17, 0x2d, 0x9f, 0xcd, 0x1d, 0xfc, 0x41, 0xe7, 0x7c, 0xce, 0x80, 0x1b, 0x17, 0x54, 0xae, + 0xd5, 0x19, 0xfe, 0xb1, 0xe0, 0xd1, 0x94, 0xc7, 0x2b, 0xd5, 0x87, 0x3b, 0x97, 0xd7, 0x75, 0x92, + 0xff, 0xaf, 0x27, 0xd6, 0xbb, 0xa3, 0x12, 0x1a, 0xf0, 0x88, 0x25, 0x01, 0xe5, 0x22, 0x70, 0x02, + 0x4c, 0x8a, 0xbf, 0xd9, 0xbc, 0x09, 0x69, 0x28, 0x97, 0xbf, 0x3f, 0xcf, 0x4c, 0xf0, 0xad, 0x56, + 0x1f, 0x0d, 0x06, 0x3f, 0x6a, 0xed, 0x91, 0x26, 0x1c, 0xf8, 0x92, 0xea, 0x30, 0x8f, 0x4e, 0xbb, + 0xb4, 0x14, 0x96, 0xbf, 0x4c, 0xc9, 0x78, 0xe0, 0xcb, 0x71, 0x55, 0x32, 0x3e, 0xed, 0x8e, 0x4d, + 0xc9, 0xfb, 0x8d, 0xa2, 0x81, 0xc7, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0xbe, 0x1e, 0x8f, 0x2b, + 0xff, 0x04, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/parental_status_view_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/parental_status_view_service.pb.go new file mode 100644 index 000000000..b844647d6 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/parental_status_view_service.pb.go @@ -0,0 +1,175 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/parental_status_view_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [ParentalStatusViewService.GetParentalStatusView][google.ads.googleads.v0.services.ParentalStatusViewService.GetParentalStatusView]. +type GetParentalStatusViewRequest struct { + // The resource name of the parental status view to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetParentalStatusViewRequest) Reset() { *m = GetParentalStatusViewRequest{} } +func (m *GetParentalStatusViewRequest) String() string { return proto.CompactTextString(m) } +func (*GetParentalStatusViewRequest) ProtoMessage() {} +func (*GetParentalStatusViewRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_parental_status_view_service_fcecbf1aee57b976, []int{0} +} +func (m *GetParentalStatusViewRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetParentalStatusViewRequest.Unmarshal(m, b) +} +func (m *GetParentalStatusViewRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetParentalStatusViewRequest.Marshal(b, m, deterministic) +} +func (dst *GetParentalStatusViewRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetParentalStatusViewRequest.Merge(dst, src) +} +func (m *GetParentalStatusViewRequest) XXX_Size() int { + return xxx_messageInfo_GetParentalStatusViewRequest.Size(m) +} +func (m *GetParentalStatusViewRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetParentalStatusViewRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetParentalStatusViewRequest proto.InternalMessageInfo + +func (m *GetParentalStatusViewRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetParentalStatusViewRequest)(nil), "google.ads.googleads.v0.services.GetParentalStatusViewRequest") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// ParentalStatusViewServiceClient is the client API for ParentalStatusViewService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type ParentalStatusViewServiceClient interface { + // Returns the requested parental status view in full detail. + GetParentalStatusView(ctx context.Context, in *GetParentalStatusViewRequest, opts ...grpc.CallOption) (*resources.ParentalStatusView, error) +} + +type parentalStatusViewServiceClient struct { + cc *grpc.ClientConn +} + +func NewParentalStatusViewServiceClient(cc *grpc.ClientConn) ParentalStatusViewServiceClient { + return &parentalStatusViewServiceClient{cc} +} + +func (c *parentalStatusViewServiceClient) GetParentalStatusView(ctx context.Context, in *GetParentalStatusViewRequest, opts ...grpc.CallOption) (*resources.ParentalStatusView, error) { + out := new(resources.ParentalStatusView) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.ParentalStatusViewService/GetParentalStatusView", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// ParentalStatusViewServiceServer is the server API for ParentalStatusViewService service. +type ParentalStatusViewServiceServer interface { + // Returns the requested parental status view in full detail. + GetParentalStatusView(context.Context, *GetParentalStatusViewRequest) (*resources.ParentalStatusView, error) +} + +func RegisterParentalStatusViewServiceServer(s *grpc.Server, srv ParentalStatusViewServiceServer) { + s.RegisterService(&_ParentalStatusViewService_serviceDesc, srv) +} + +func _ParentalStatusViewService_GetParentalStatusView_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetParentalStatusViewRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ParentalStatusViewServiceServer).GetParentalStatusView(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.ParentalStatusViewService/GetParentalStatusView", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ParentalStatusViewServiceServer).GetParentalStatusView(ctx, req.(*GetParentalStatusViewRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _ParentalStatusViewService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.ParentalStatusViewService", + HandlerType: (*ParentalStatusViewServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetParentalStatusView", + Handler: _ParentalStatusViewService_GetParentalStatusView_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/parental_status_view_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/parental_status_view_service.proto", fileDescriptor_parental_status_view_service_fcecbf1aee57b976) +} + +var fileDescriptor_parental_status_view_service_fcecbf1aee57b976 = []byte{ + // 354 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x52, 0xcd, 0x4a, 0xeb, 0x40, + 0x14, 0x26, 0xbd, 0x70, 0xe1, 0x86, 0xeb, 0x26, 0x20, 0x68, 0x29, 0x52, 0xaa, 0x0b, 0xe9, 0x62, + 0x26, 0x28, 0xc5, 0x85, 0x56, 0x48, 0xbb, 0xa8, 0x2b, 0x29, 0x2d, 0x74, 0x21, 0x81, 0x30, 0x36, + 0x87, 0x10, 0x68, 0x66, 0xe2, 0x9c, 0x49, 0xba, 0x10, 0x37, 0xbe, 0x82, 0x6f, 0xe0, 0xd2, 0x47, + 0x11, 0x5c, 0xb9, 0x77, 0xe5, 0xce, 0x97, 0x90, 0x74, 0x32, 0x11, 0xa9, 0xb1, 0xbb, 0x8f, 0xcc, + 0xf9, 0x7e, 0xce, 0x77, 0x62, 0x0f, 0x23, 0x21, 0xa2, 0x05, 0x50, 0x16, 0x22, 0xd5, 0xb0, 0x40, + 0xb9, 0x4b, 0x11, 0x64, 0x1e, 0xcf, 0x01, 0x69, 0xca, 0x24, 0x70, 0xc5, 0x16, 0x01, 0x2a, 0xa6, + 0x32, 0x0c, 0xf2, 0x18, 0x96, 0x41, 0xf9, 0x4a, 0x52, 0x29, 0x94, 0x70, 0xda, 0x9a, 0x49, 0x58, + 0x88, 0xa4, 0x12, 0x21, 0xb9, 0x4b, 0x8c, 0x48, 0xf3, 0xac, 0xce, 0x46, 0x02, 0x8a, 0x4c, 0xd6, + 0xf9, 0x68, 0xfd, 0x66, 0xcb, 0xb0, 0xd3, 0x98, 0x32, 0xce, 0x85, 0x62, 0x2a, 0x16, 0x1c, 0xf5, + 0x6b, 0x67, 0x68, 0xb7, 0x46, 0xa0, 0xc6, 0x25, 0x7d, 0xba, 0x62, 0xcf, 0x62, 0x58, 0x4e, 0xe0, + 0x26, 0x03, 0x54, 0xce, 0xbe, 0xbd, 0x65, 0x5c, 0x02, 0xce, 0x12, 0xd8, 0xb1, 0xda, 0xd6, 0xe1, + 0xbf, 0xc9, 0x7f, 0xf3, 0xf1, 0x92, 0x25, 0x70, 0xf4, 0x61, 0xd9, 0xbb, 0xeb, 0x12, 0x53, 0x9d, + 0xdf, 0x79, 0xb1, 0xec, 0xed, 0x1f, 0x3d, 0x9c, 0x73, 0xb2, 0x69, 0x77, 0xf2, 0x5b, 0xb8, 0x66, + 0xaf, 0x96, 0x5f, 0x35, 0x43, 0xd6, 0xd9, 0x9d, 0xfe, 0xfd, 0xeb, 0xfb, 0x43, 0xe3, 0xc4, 0xe9, + 0x15, 0x1d, 0xde, 0x7e, 0x5b, 0xaf, 0x3f, 0xcf, 0x50, 0x89, 0x04, 0x24, 0xd2, 0x6e, 0x55, 0xea, + 0x17, 0x15, 0x69, 0xf7, 0x6e, 0xf0, 0x66, 0xd9, 0x07, 0x73, 0x91, 0x6c, 0xcc, 0x3e, 0xd8, 0xab, + 0xed, 0x64, 0x5c, 0x74, 0x3f, 0xb6, 0xae, 0x2e, 0x4a, 0x8d, 0x48, 0x2c, 0x18, 0x8f, 0x88, 0x90, + 0x11, 0x8d, 0x80, 0xaf, 0x2e, 0x63, 0x2e, 0x9d, 0xc6, 0x58, 0xff, 0x7f, 0x9d, 0x1a, 0xf0, 0xd8, + 0xf8, 0x33, 0xf2, 0xbc, 0xa7, 0x46, 0x7b, 0xa4, 0x05, 0xbd, 0x10, 0x89, 0x86, 0x05, 0x9a, 0xb9, + 0xa4, 0x34, 0xc6, 0x67, 0x33, 0xe2, 0x7b, 0x21, 0xfa, 0xd5, 0x88, 0x3f, 0x73, 0x7d, 0x33, 0x72, + 0xfd, 0x77, 0x15, 0xe0, 0xf8, 0x33, 0x00, 0x00, 0xff, 0xff, 0x7e, 0x73, 0x70, 0xbc, 0xdf, 0x02, + 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/payments_account_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/payments_account_service.pb.go new file mode 100644 index 000000000..c51f45d4c --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/payments_account_service.pb.go @@ -0,0 +1,221 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/payments_account_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for fetching all accessible Payments accounts. +type ListPaymentsAccountsRequest struct { + // The ID of the customer to apply the PaymentsAccount list operation to. + CustomerId string `protobuf:"bytes,1,opt,name=customer_id,json=customerId,proto3" json:"customer_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListPaymentsAccountsRequest) Reset() { *m = ListPaymentsAccountsRequest{} } +func (m *ListPaymentsAccountsRequest) String() string { return proto.CompactTextString(m) } +func (*ListPaymentsAccountsRequest) ProtoMessage() {} +func (*ListPaymentsAccountsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_payments_account_service_d2fbd04f0a12b5c5, []int{0} +} +func (m *ListPaymentsAccountsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListPaymentsAccountsRequest.Unmarshal(m, b) +} +func (m *ListPaymentsAccountsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListPaymentsAccountsRequest.Marshal(b, m, deterministic) +} +func (dst *ListPaymentsAccountsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListPaymentsAccountsRequest.Merge(dst, src) +} +func (m *ListPaymentsAccountsRequest) XXX_Size() int { + return xxx_messageInfo_ListPaymentsAccountsRequest.Size(m) +} +func (m *ListPaymentsAccountsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ListPaymentsAccountsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ListPaymentsAccountsRequest proto.InternalMessageInfo + +func (m *ListPaymentsAccountsRequest) GetCustomerId() string { + if m != nil { + return m.CustomerId + } + return "" +} + +// Response message for [PaymentsAccountService.ListPaymentsAccounts][google.ads.googleads.v0.services.PaymentsAccountService.ListPaymentsAccounts]. +type ListPaymentsAccountsResponse struct { + // The list of accessible Payments accounts. + PaymentsAccounts []*resources.PaymentsAccount `protobuf:"bytes,1,rep,name=payments_accounts,json=paymentsAccounts,proto3" json:"payments_accounts,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListPaymentsAccountsResponse) Reset() { *m = ListPaymentsAccountsResponse{} } +func (m *ListPaymentsAccountsResponse) String() string { return proto.CompactTextString(m) } +func (*ListPaymentsAccountsResponse) ProtoMessage() {} +func (*ListPaymentsAccountsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_payments_account_service_d2fbd04f0a12b5c5, []int{1} +} +func (m *ListPaymentsAccountsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListPaymentsAccountsResponse.Unmarshal(m, b) +} +func (m *ListPaymentsAccountsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListPaymentsAccountsResponse.Marshal(b, m, deterministic) +} +func (dst *ListPaymentsAccountsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListPaymentsAccountsResponse.Merge(dst, src) +} +func (m *ListPaymentsAccountsResponse) XXX_Size() int { + return xxx_messageInfo_ListPaymentsAccountsResponse.Size(m) +} +func (m *ListPaymentsAccountsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ListPaymentsAccountsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ListPaymentsAccountsResponse proto.InternalMessageInfo + +func (m *ListPaymentsAccountsResponse) GetPaymentsAccounts() []*resources.PaymentsAccount { + if m != nil { + return m.PaymentsAccounts + } + return nil +} + +func init() { + proto.RegisterType((*ListPaymentsAccountsRequest)(nil), "google.ads.googleads.v0.services.ListPaymentsAccountsRequest") + proto.RegisterType((*ListPaymentsAccountsResponse)(nil), "google.ads.googleads.v0.services.ListPaymentsAccountsResponse") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// PaymentsAccountServiceClient is the client API for PaymentsAccountService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type PaymentsAccountServiceClient interface { + // Returns all Payments accounts associated with all managers + // between the login customer ID and specified serving customer in the + // hierarchy, inclusive. + ListPaymentsAccounts(ctx context.Context, in *ListPaymentsAccountsRequest, opts ...grpc.CallOption) (*ListPaymentsAccountsResponse, error) +} + +type paymentsAccountServiceClient struct { + cc *grpc.ClientConn +} + +func NewPaymentsAccountServiceClient(cc *grpc.ClientConn) PaymentsAccountServiceClient { + return &paymentsAccountServiceClient{cc} +} + +func (c *paymentsAccountServiceClient) ListPaymentsAccounts(ctx context.Context, in *ListPaymentsAccountsRequest, opts ...grpc.CallOption) (*ListPaymentsAccountsResponse, error) { + out := new(ListPaymentsAccountsResponse) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.PaymentsAccountService/ListPaymentsAccounts", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// PaymentsAccountServiceServer is the server API for PaymentsAccountService service. +type PaymentsAccountServiceServer interface { + // Returns all Payments accounts associated with all managers + // between the login customer ID and specified serving customer in the + // hierarchy, inclusive. + ListPaymentsAccounts(context.Context, *ListPaymentsAccountsRequest) (*ListPaymentsAccountsResponse, error) +} + +func RegisterPaymentsAccountServiceServer(s *grpc.Server, srv PaymentsAccountServiceServer) { + s.RegisterService(&_PaymentsAccountService_serviceDesc, srv) +} + +func _PaymentsAccountService_ListPaymentsAccounts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListPaymentsAccountsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(PaymentsAccountServiceServer).ListPaymentsAccounts(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.PaymentsAccountService/ListPaymentsAccounts", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(PaymentsAccountServiceServer).ListPaymentsAccounts(ctx, req.(*ListPaymentsAccountsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _PaymentsAccountService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.PaymentsAccountService", + HandlerType: (*PaymentsAccountServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ListPaymentsAccounts", + Handler: _PaymentsAccountService_ListPaymentsAccounts_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/payments_account_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/payments_account_service.proto", fileDescriptor_payments_account_service_d2fbd04f0a12b5c5) +} + +var fileDescriptor_payments_account_service_d2fbd04f0a12b5c5 = []byte{ + // 379 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x52, 0xc1, 0x4a, 0xeb, 0x40, + 0x14, 0x65, 0x5a, 0x78, 0xf0, 0xa6, 0x9b, 0xf7, 0xc2, 0xe3, 0x51, 0xda, 0x82, 0xa1, 0xb8, 0x28, + 0x2e, 0x66, 0x42, 0x05, 0x11, 0xa4, 0x95, 0x74, 0x53, 0x05, 0x17, 0xa5, 0x42, 0x17, 0x12, 0x08, + 0x63, 0x32, 0x84, 0x40, 0x3b, 0x13, 0x73, 0x27, 0x05, 0x11, 0x11, 0xfc, 0x05, 0xff, 0xc0, 0xa5, + 0x9f, 0x22, 0xb8, 0x72, 0xe9, 0xd6, 0x85, 0x9f, 0x21, 0xe9, 0x64, 0x8a, 0x84, 0xd4, 0x82, 0xbb, + 0xc3, 0xcc, 0x3d, 0xe7, 0xdc, 0x7b, 0xee, 0xc5, 0xc7, 0x91, 0x94, 0xd1, 0x9c, 0x53, 0x16, 0x02, + 0xd5, 0x30, 0x47, 0x4b, 0x87, 0x02, 0x4f, 0x97, 0x71, 0xc0, 0x81, 0x26, 0xec, 0x7a, 0xc1, 0x85, + 0x02, 0x9f, 0x05, 0x81, 0xcc, 0x84, 0xf2, 0x8b, 0x1f, 0x92, 0xa4, 0x52, 0x49, 0xcb, 0xd6, 0x2c, + 0xc2, 0x42, 0x20, 0x6b, 0x01, 0xb2, 0x74, 0x88, 0x11, 0x68, 0x1d, 0x6e, 0xb2, 0x48, 0x39, 0xc8, + 0x2c, 0xad, 0xf2, 0xd0, 0xda, 0xad, 0x8e, 0x61, 0x26, 0x31, 0x65, 0x42, 0x48, 0xc5, 0x54, 0x2c, + 0x05, 0xe8, 0xdf, 0xee, 0x10, 0xb7, 0xcf, 0x62, 0x50, 0x93, 0x82, 0xeb, 0x6a, 0x2a, 0x4c, 0xf9, + 0x55, 0xc6, 0x41, 0x59, 0x3b, 0xb8, 0x11, 0x64, 0xa0, 0xe4, 0x82, 0xa7, 0x7e, 0x1c, 0x36, 0x91, + 0x8d, 0x7a, 0xbf, 0xa7, 0xd8, 0x3c, 0x9d, 0x86, 0xdd, 0x3b, 0xdc, 0xa9, 0xe6, 0x43, 0x22, 0x05, + 0x70, 0xcb, 0xc7, 0x7f, 0xcb, 0x7d, 0x41, 0x13, 0xd9, 0xf5, 0x5e, 0xa3, 0xdf, 0x27, 0x9b, 0xa6, + 0x5e, 0xcf, 0x44, 0x4a, 0xba, 0xd3, 0x3f, 0x49, 0xc9, 0xa8, 0xff, 0x81, 0xf0, 0xff, 0x52, 0xd5, + 0xb9, 0x0e, 0xcd, 0x7a, 0x41, 0xf8, 0x5f, 0x55, 0x73, 0xd6, 0x80, 0x6c, 0xcb, 0x9b, 0x7c, 0x13, + 0x4a, 0x6b, 0xf8, 0x53, 0xba, 0xce, 0xa4, 0x7b, 0x70, 0xff, 0xfa, 0xfe, 0x50, 0x73, 0x2c, 0x92, + 0xef, 0xcf, 0x64, 0x09, 0xf4, 0xe6, 0x4b, 0xd2, 0x83, 0xbd, 0x5b, 0x5a, 0x1e, 0x75, 0xf4, 0x86, + 0xf0, 0x6e, 0x20, 0x17, 0x5b, 0xdd, 0x47, 0xed, 0xea, 0x40, 0x26, 0xf9, 0xc6, 0x27, 0xe8, 0xe2, + 0xa4, 0x10, 0x88, 0xe4, 0x9c, 0x89, 0x88, 0xc8, 0x34, 0xa2, 0x11, 0x17, 0xab, 0x7b, 0x30, 0xb7, + 0x95, 0xc4, 0xb0, 0xf9, 0x9a, 0x8f, 0x0c, 0x78, 0xac, 0xd5, 0xc7, 0xae, 0xfb, 0x54, 0xb3, 0xc7, + 0x5a, 0xd0, 0x0d, 0x81, 0x68, 0x98, 0xa3, 0x99, 0x43, 0x0a, 0x63, 0x78, 0x36, 0x25, 0x9e, 0x1b, + 0x82, 0xb7, 0x2e, 0xf1, 0x66, 0x8e, 0x67, 0x4a, 0x2e, 0x7f, 0xad, 0x1a, 0xd8, 0xff, 0x0c, 0x00, + 0x00, 0xff, 0xff, 0xd6, 0x61, 0x59, 0x7c, 0x4d, 0x03, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/product_group_view_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/product_group_view_service.pb.go new file mode 100644 index 000000000..6e0e0e2fd --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/product_group_view_service.pb.go @@ -0,0 +1,174 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/product_group_view_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [ProductGroupViewService.GetProductGroupView][google.ads.googleads.v0.services.ProductGroupViewService.GetProductGroupView]. +type GetProductGroupViewRequest struct { + // The resource name of the product group view to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetProductGroupViewRequest) Reset() { *m = GetProductGroupViewRequest{} } +func (m *GetProductGroupViewRequest) String() string { return proto.CompactTextString(m) } +func (*GetProductGroupViewRequest) ProtoMessage() {} +func (*GetProductGroupViewRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_product_group_view_service_f4b2d412721c0b18, []int{0} +} +func (m *GetProductGroupViewRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetProductGroupViewRequest.Unmarshal(m, b) +} +func (m *GetProductGroupViewRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetProductGroupViewRequest.Marshal(b, m, deterministic) +} +func (dst *GetProductGroupViewRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetProductGroupViewRequest.Merge(dst, src) +} +func (m *GetProductGroupViewRequest) XXX_Size() int { + return xxx_messageInfo_GetProductGroupViewRequest.Size(m) +} +func (m *GetProductGroupViewRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetProductGroupViewRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetProductGroupViewRequest proto.InternalMessageInfo + +func (m *GetProductGroupViewRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetProductGroupViewRequest)(nil), "google.ads.googleads.v0.services.GetProductGroupViewRequest") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// ProductGroupViewServiceClient is the client API for ProductGroupViewService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type ProductGroupViewServiceClient interface { + // Returns the requested product group view in full detail. + GetProductGroupView(ctx context.Context, in *GetProductGroupViewRequest, opts ...grpc.CallOption) (*resources.ProductGroupView, error) +} + +type productGroupViewServiceClient struct { + cc *grpc.ClientConn +} + +func NewProductGroupViewServiceClient(cc *grpc.ClientConn) ProductGroupViewServiceClient { + return &productGroupViewServiceClient{cc} +} + +func (c *productGroupViewServiceClient) GetProductGroupView(ctx context.Context, in *GetProductGroupViewRequest, opts ...grpc.CallOption) (*resources.ProductGroupView, error) { + out := new(resources.ProductGroupView) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.ProductGroupViewService/GetProductGroupView", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// ProductGroupViewServiceServer is the server API for ProductGroupViewService service. +type ProductGroupViewServiceServer interface { + // Returns the requested product group view in full detail. + GetProductGroupView(context.Context, *GetProductGroupViewRequest) (*resources.ProductGroupView, error) +} + +func RegisterProductGroupViewServiceServer(s *grpc.Server, srv ProductGroupViewServiceServer) { + s.RegisterService(&_ProductGroupViewService_serviceDesc, srv) +} + +func _ProductGroupViewService_GetProductGroupView_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetProductGroupViewRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ProductGroupViewServiceServer).GetProductGroupView(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.ProductGroupViewService/GetProductGroupView", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ProductGroupViewServiceServer).GetProductGroupView(ctx, req.(*GetProductGroupViewRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _ProductGroupViewService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.ProductGroupViewService", + HandlerType: (*ProductGroupViewServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetProductGroupView", + Handler: _ProductGroupViewService_GetProductGroupView_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/product_group_view_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/product_group_view_service.proto", fileDescriptor_product_group_view_service_f4b2d412721c0b18) +} + +var fileDescriptor_product_group_view_service_f4b2d412721c0b18 = []byte{ + // 348 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x52, 0x3f, 0x4b, 0xc3, 0x40, + 0x14, 0x27, 0x15, 0x04, 0x83, 0x2e, 0x71, 0x50, 0x42, 0x87, 0x52, 0x1d, 0xa4, 0xc3, 0x5d, 0xb0, + 0xb8, 0x58, 0x1d, 0xd2, 0x25, 0x4e, 0x52, 0x2a, 0x74, 0x90, 0x40, 0x38, 0x93, 0xe3, 0x08, 0x34, + 0x79, 0xf1, 0xde, 0x25, 0x1d, 0xc4, 0xc5, 0xaf, 0xe0, 0x37, 0x70, 0xf4, 0x7b, 0xb8, 0xb8, 0xba, + 0xba, 0x08, 0x7e, 0x10, 0x49, 0xaf, 0x17, 0xb0, 0x34, 0x74, 0xfb, 0x91, 0x7b, 0xbf, 0x3f, 0xef, + 0xf7, 0x62, 0xfb, 0x02, 0x40, 0xcc, 0x39, 0x65, 0x09, 0x52, 0x0d, 0x6b, 0x54, 0x79, 0x14, 0xb9, + 0xac, 0xd2, 0x98, 0x23, 0x2d, 0x24, 0x24, 0x65, 0xac, 0x22, 0x21, 0xa1, 0x2c, 0xa2, 0x2a, 0xe5, + 0x8b, 0x68, 0xf5, 0x46, 0x0a, 0x09, 0x0a, 0x9c, 0x9e, 0xe6, 0x11, 0x96, 0x20, 0x69, 0x24, 0x48, + 0xe5, 0x11, 0x23, 0xe1, 0x5e, 0xb6, 0x99, 0x48, 0x8e, 0x50, 0xca, 0xcd, 0x2e, 0x5a, 0xdd, 0xed, + 0x1a, 0x6e, 0x91, 0x52, 0x96, 0xe7, 0xa0, 0x98, 0x4a, 0x21, 0x47, 0xfd, 0xda, 0xf7, 0x6d, 0x37, + 0xe0, 0x6a, 0xa2, 0xc9, 0x41, 0xcd, 0x9d, 0xa5, 0x7c, 0x31, 0xe5, 0x8f, 0x25, 0x47, 0xe5, 0x9c, + 0xd8, 0x07, 0xc6, 0x21, 0xca, 0x59, 0xc6, 0x8f, 0xad, 0x9e, 0x75, 0xb6, 0x37, 0xdd, 0x37, 0x1f, + 0x6f, 0x59, 0xc6, 0xcf, 0x7f, 0x2c, 0xfb, 0x68, 0x5d, 0xe0, 0x4e, 0x27, 0x77, 0x3e, 0x2c, 0xfb, + 0x70, 0x83, 0xbe, 0x73, 0x45, 0xb6, 0xed, 0x4c, 0xda, 0x63, 0xb9, 0xc3, 0x56, 0x76, 0xd3, 0x07, + 0x59, 0xe7, 0xf6, 0x47, 0x2f, 0x5f, 0xbf, 0xaf, 0x9d, 0x0b, 0x67, 0x58, 0xf7, 0xf6, 0xf4, 0x6f, + 0xad, 0xeb, 0xb8, 0x44, 0x05, 0x19, 0x97, 0x48, 0x07, 0xa6, 0xc8, 0x86, 0x88, 0x74, 0xf0, 0x3c, + 0xfe, 0xb6, 0xec, 0xd3, 0x18, 0xb2, 0xad, 0xa9, 0xc7, 0xdd, 0x96, 0x26, 0x26, 0x75, 0xdb, 0x13, + 0xeb, 0xfe, 0x66, 0xa5, 0x20, 0x60, 0xce, 0x72, 0x41, 0x40, 0x0a, 0x2a, 0x78, 0xbe, 0xbc, 0x85, + 0xb9, 0x6c, 0x91, 0x62, 0xfb, 0xdf, 0x34, 0x32, 0xe0, 0xad, 0xb3, 0x13, 0xf8, 0xfe, 0x7b, 0xa7, + 0x17, 0x68, 0x41, 0x3f, 0x41, 0xa2, 0x61, 0x8d, 0x66, 0x1e, 0x59, 0x19, 0xe3, 0xa7, 0x19, 0x09, + 0xfd, 0x04, 0xc3, 0x66, 0x24, 0x9c, 0x79, 0xa1, 0x19, 0x79, 0xd8, 0x5d, 0x06, 0x18, 0xfe, 0x05, + 0x00, 0x00, 0xff, 0xff, 0xc2, 0xc3, 0x37, 0x48, 0xcd, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/recommendation_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/recommendation_service.pb.go new file mode 100644 index 000000000..6d6b30102 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/recommendation_service.pb.go @@ -0,0 +1,1094 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/recommendation_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import enums "google.golang.org/genproto/googleapis/ads/googleads/v0/enums" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" +import status "google.golang.org/genproto/googleapis/rpc/status" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [RecommendationService.GetRecommendation][google.ads.googleads.v0.services.RecommendationService.GetRecommendation]. +type GetRecommendationRequest struct { + // The resource name of the recommendation to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetRecommendationRequest) Reset() { *m = GetRecommendationRequest{} } +func (m *GetRecommendationRequest) String() string { return proto.CompactTextString(m) } +func (*GetRecommendationRequest) ProtoMessage() {} +func (*GetRecommendationRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_recommendation_service_1bae96df03faee01, []int{0} +} +func (m *GetRecommendationRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetRecommendationRequest.Unmarshal(m, b) +} +func (m *GetRecommendationRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetRecommendationRequest.Marshal(b, m, deterministic) +} +func (dst *GetRecommendationRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetRecommendationRequest.Merge(dst, src) +} +func (m *GetRecommendationRequest) XXX_Size() int { + return xxx_messageInfo_GetRecommendationRequest.Size(m) +} +func (m *GetRecommendationRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetRecommendationRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetRecommendationRequest proto.InternalMessageInfo + +func (m *GetRecommendationRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +// Request message for [RecommendationService.ApplyRecommendation][google.ads.googleads.v0.services.RecommendationService.ApplyRecommendation]. +type ApplyRecommendationRequest struct { + // The ID of the customer with the recommendation. + CustomerId string `protobuf:"bytes,1,opt,name=customer_id,json=customerId,proto3" json:"customer_id,omitempty"` + // If true, successful operations will be carried out and invalid + // operations will return errors. If false, operations will be carried + // out as a transaction if and only if they are all valid. + // Default is false. + PartialFailure bool `protobuf:"varint,3,opt,name=partial_failure,json=partialFailure,proto3" json:"partial_failure,omitempty"` + // The list of operations to apply recommendations. + // If partial_failure=false all recommendations should be of the same type + // There is a limit of 100 operations per request. + Operations []*ApplyRecommendationOperation `protobuf:"bytes,2,rep,name=operations,proto3" json:"operations,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ApplyRecommendationRequest) Reset() { *m = ApplyRecommendationRequest{} } +func (m *ApplyRecommendationRequest) String() string { return proto.CompactTextString(m) } +func (*ApplyRecommendationRequest) ProtoMessage() {} +func (*ApplyRecommendationRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_recommendation_service_1bae96df03faee01, []int{1} +} +func (m *ApplyRecommendationRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ApplyRecommendationRequest.Unmarshal(m, b) +} +func (m *ApplyRecommendationRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ApplyRecommendationRequest.Marshal(b, m, deterministic) +} +func (dst *ApplyRecommendationRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ApplyRecommendationRequest.Merge(dst, src) +} +func (m *ApplyRecommendationRequest) XXX_Size() int { + return xxx_messageInfo_ApplyRecommendationRequest.Size(m) +} +func (m *ApplyRecommendationRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ApplyRecommendationRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ApplyRecommendationRequest proto.InternalMessageInfo + +func (m *ApplyRecommendationRequest) GetCustomerId() string { + if m != nil { + return m.CustomerId + } + return "" +} + +func (m *ApplyRecommendationRequest) GetPartialFailure() bool { + if m != nil { + return m.PartialFailure + } + return false +} + +func (m *ApplyRecommendationRequest) GetOperations() []*ApplyRecommendationOperation { + if m != nil { + return m.Operations + } + return nil +} + +// Information about the operation to apply a recommendation and any parameters +// to +// customize it. +type ApplyRecommendationOperation struct { + // The resource name of the recommendation to apply. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + // Parameters to use when applying the recommendation. + // + // Types that are valid to be assigned to ApplyParameters: + // *ApplyRecommendationOperation_CampaignBudget + // *ApplyRecommendationOperation_TextAd + // *ApplyRecommendationOperation_Keyword + // *ApplyRecommendationOperation_TargetCpaOptIn + ApplyParameters isApplyRecommendationOperation_ApplyParameters `protobuf_oneof:"apply_parameters"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ApplyRecommendationOperation) Reset() { *m = ApplyRecommendationOperation{} } +func (m *ApplyRecommendationOperation) String() string { return proto.CompactTextString(m) } +func (*ApplyRecommendationOperation) ProtoMessage() {} +func (*ApplyRecommendationOperation) Descriptor() ([]byte, []int) { + return fileDescriptor_recommendation_service_1bae96df03faee01, []int{2} +} +func (m *ApplyRecommendationOperation) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ApplyRecommendationOperation.Unmarshal(m, b) +} +func (m *ApplyRecommendationOperation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ApplyRecommendationOperation.Marshal(b, m, deterministic) +} +func (dst *ApplyRecommendationOperation) XXX_Merge(src proto.Message) { + xxx_messageInfo_ApplyRecommendationOperation.Merge(dst, src) +} +func (m *ApplyRecommendationOperation) XXX_Size() int { + return xxx_messageInfo_ApplyRecommendationOperation.Size(m) +} +func (m *ApplyRecommendationOperation) XXX_DiscardUnknown() { + xxx_messageInfo_ApplyRecommendationOperation.DiscardUnknown(m) +} + +var xxx_messageInfo_ApplyRecommendationOperation proto.InternalMessageInfo + +func (m *ApplyRecommendationOperation) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +type isApplyRecommendationOperation_ApplyParameters interface { + isApplyRecommendationOperation_ApplyParameters() +} + +type ApplyRecommendationOperation_CampaignBudget struct { + CampaignBudget *ApplyRecommendationOperation_CampaignBudgetParameters `protobuf:"bytes,2,opt,name=campaign_budget,json=campaignBudget,proto3,oneof"` +} + +type ApplyRecommendationOperation_TextAd struct { + TextAd *ApplyRecommendationOperation_TextAdParameters `protobuf:"bytes,3,opt,name=text_ad,json=textAd,proto3,oneof"` +} + +type ApplyRecommendationOperation_Keyword struct { + Keyword *ApplyRecommendationOperation_KeywordParameters `protobuf:"bytes,4,opt,name=keyword,proto3,oneof"` +} + +type ApplyRecommendationOperation_TargetCpaOptIn struct { + TargetCpaOptIn *ApplyRecommendationOperation_TargetCpaOptInParameters `protobuf:"bytes,5,opt,name=target_cpa_opt_in,json=targetCpaOptIn,proto3,oneof"` +} + +func (*ApplyRecommendationOperation_CampaignBudget) isApplyRecommendationOperation_ApplyParameters() {} + +func (*ApplyRecommendationOperation_TextAd) isApplyRecommendationOperation_ApplyParameters() {} + +func (*ApplyRecommendationOperation_Keyword) isApplyRecommendationOperation_ApplyParameters() {} + +func (*ApplyRecommendationOperation_TargetCpaOptIn) isApplyRecommendationOperation_ApplyParameters() {} + +func (m *ApplyRecommendationOperation) GetApplyParameters() isApplyRecommendationOperation_ApplyParameters { + if m != nil { + return m.ApplyParameters + } + return nil +} + +func (m *ApplyRecommendationOperation) GetCampaignBudget() *ApplyRecommendationOperation_CampaignBudgetParameters { + if x, ok := m.GetApplyParameters().(*ApplyRecommendationOperation_CampaignBudget); ok { + return x.CampaignBudget + } + return nil +} + +func (m *ApplyRecommendationOperation) GetTextAd() *ApplyRecommendationOperation_TextAdParameters { + if x, ok := m.GetApplyParameters().(*ApplyRecommendationOperation_TextAd); ok { + return x.TextAd + } + return nil +} + +func (m *ApplyRecommendationOperation) GetKeyword() *ApplyRecommendationOperation_KeywordParameters { + if x, ok := m.GetApplyParameters().(*ApplyRecommendationOperation_Keyword); ok { + return x.Keyword + } + return nil +} + +func (m *ApplyRecommendationOperation) GetTargetCpaOptIn() *ApplyRecommendationOperation_TargetCpaOptInParameters { + if x, ok := m.GetApplyParameters().(*ApplyRecommendationOperation_TargetCpaOptIn); ok { + return x.TargetCpaOptIn + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*ApplyRecommendationOperation) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _ApplyRecommendationOperation_OneofMarshaler, _ApplyRecommendationOperation_OneofUnmarshaler, _ApplyRecommendationOperation_OneofSizer, []interface{}{ + (*ApplyRecommendationOperation_CampaignBudget)(nil), + (*ApplyRecommendationOperation_TextAd)(nil), + (*ApplyRecommendationOperation_Keyword)(nil), + (*ApplyRecommendationOperation_TargetCpaOptIn)(nil), + } +} + +func _ApplyRecommendationOperation_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*ApplyRecommendationOperation) + // apply_parameters + switch x := m.ApplyParameters.(type) { + case *ApplyRecommendationOperation_CampaignBudget: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.CampaignBudget); err != nil { + return err + } + case *ApplyRecommendationOperation_TextAd: + b.EncodeVarint(3<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.TextAd); err != nil { + return err + } + case *ApplyRecommendationOperation_Keyword: + b.EncodeVarint(4<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Keyword); err != nil { + return err + } + case *ApplyRecommendationOperation_TargetCpaOptIn: + b.EncodeVarint(5<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.TargetCpaOptIn); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("ApplyRecommendationOperation.ApplyParameters has unexpected type %T", x) + } + return nil +} + +func _ApplyRecommendationOperation_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*ApplyRecommendationOperation) + switch tag { + case 2: // apply_parameters.campaign_budget + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(ApplyRecommendationOperation_CampaignBudgetParameters) + err := b.DecodeMessage(msg) + m.ApplyParameters = &ApplyRecommendationOperation_CampaignBudget{msg} + return true, err + case 3: // apply_parameters.text_ad + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(ApplyRecommendationOperation_TextAdParameters) + err := b.DecodeMessage(msg) + m.ApplyParameters = &ApplyRecommendationOperation_TextAd{msg} + return true, err + case 4: // apply_parameters.keyword + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(ApplyRecommendationOperation_KeywordParameters) + err := b.DecodeMessage(msg) + m.ApplyParameters = &ApplyRecommendationOperation_Keyword{msg} + return true, err + case 5: // apply_parameters.target_cpa_opt_in + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(ApplyRecommendationOperation_TargetCpaOptInParameters) + err := b.DecodeMessage(msg) + m.ApplyParameters = &ApplyRecommendationOperation_TargetCpaOptIn{msg} + return true, err + default: + return false, nil + } +} + +func _ApplyRecommendationOperation_OneofSizer(msg proto.Message) (n int) { + m := msg.(*ApplyRecommendationOperation) + // apply_parameters + switch x := m.ApplyParameters.(type) { + case *ApplyRecommendationOperation_CampaignBudget: + s := proto.Size(x.CampaignBudget) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *ApplyRecommendationOperation_TextAd: + s := proto.Size(x.TextAd) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *ApplyRecommendationOperation_Keyword: + s := proto.Size(x.Keyword) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *ApplyRecommendationOperation_TargetCpaOptIn: + s := proto.Size(x.TargetCpaOptIn) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// Parameters to use when applying a campaign budget recommendation. +type ApplyRecommendationOperation_CampaignBudgetParameters struct { + // New budget amount to set for target budget resource. This is a required + // field. + NewBudgetAmountMicros *wrappers.Int64Value `protobuf:"bytes,1,opt,name=new_budget_amount_micros,json=newBudgetAmountMicros,proto3" json:"new_budget_amount_micros,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ApplyRecommendationOperation_CampaignBudgetParameters) Reset() { + *m = ApplyRecommendationOperation_CampaignBudgetParameters{} +} +func (m *ApplyRecommendationOperation_CampaignBudgetParameters) String() string { + return proto.CompactTextString(m) +} +func (*ApplyRecommendationOperation_CampaignBudgetParameters) ProtoMessage() {} +func (*ApplyRecommendationOperation_CampaignBudgetParameters) Descriptor() ([]byte, []int) { + return fileDescriptor_recommendation_service_1bae96df03faee01, []int{2, 0} +} +func (m *ApplyRecommendationOperation_CampaignBudgetParameters) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ApplyRecommendationOperation_CampaignBudgetParameters.Unmarshal(m, b) +} +func (m *ApplyRecommendationOperation_CampaignBudgetParameters) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ApplyRecommendationOperation_CampaignBudgetParameters.Marshal(b, m, deterministic) +} +func (dst *ApplyRecommendationOperation_CampaignBudgetParameters) XXX_Merge(src proto.Message) { + xxx_messageInfo_ApplyRecommendationOperation_CampaignBudgetParameters.Merge(dst, src) +} +func (m *ApplyRecommendationOperation_CampaignBudgetParameters) XXX_Size() int { + return xxx_messageInfo_ApplyRecommendationOperation_CampaignBudgetParameters.Size(m) +} +func (m *ApplyRecommendationOperation_CampaignBudgetParameters) XXX_DiscardUnknown() { + xxx_messageInfo_ApplyRecommendationOperation_CampaignBudgetParameters.DiscardUnknown(m) +} + +var xxx_messageInfo_ApplyRecommendationOperation_CampaignBudgetParameters proto.InternalMessageInfo + +func (m *ApplyRecommendationOperation_CampaignBudgetParameters) GetNewBudgetAmountMicros() *wrappers.Int64Value { + if m != nil { + return m.NewBudgetAmountMicros + } + return nil +} + +// Parameters to use when applying a text ad recommendation. +type ApplyRecommendationOperation_TextAdParameters struct { + // New ad to add to recommended ad group. All necessary fields need to be + // set in this message. This is a required field. + Ad *resources.Ad `protobuf:"bytes,1,opt,name=ad,proto3" json:"ad,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ApplyRecommendationOperation_TextAdParameters) Reset() { + *m = ApplyRecommendationOperation_TextAdParameters{} +} +func (m *ApplyRecommendationOperation_TextAdParameters) String() string { + return proto.CompactTextString(m) +} +func (*ApplyRecommendationOperation_TextAdParameters) ProtoMessage() {} +func (*ApplyRecommendationOperation_TextAdParameters) Descriptor() ([]byte, []int) { + return fileDescriptor_recommendation_service_1bae96df03faee01, []int{2, 1} +} +func (m *ApplyRecommendationOperation_TextAdParameters) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ApplyRecommendationOperation_TextAdParameters.Unmarshal(m, b) +} +func (m *ApplyRecommendationOperation_TextAdParameters) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ApplyRecommendationOperation_TextAdParameters.Marshal(b, m, deterministic) +} +func (dst *ApplyRecommendationOperation_TextAdParameters) XXX_Merge(src proto.Message) { + xxx_messageInfo_ApplyRecommendationOperation_TextAdParameters.Merge(dst, src) +} +func (m *ApplyRecommendationOperation_TextAdParameters) XXX_Size() int { + return xxx_messageInfo_ApplyRecommendationOperation_TextAdParameters.Size(m) +} +func (m *ApplyRecommendationOperation_TextAdParameters) XXX_DiscardUnknown() { + xxx_messageInfo_ApplyRecommendationOperation_TextAdParameters.DiscardUnknown(m) +} + +var xxx_messageInfo_ApplyRecommendationOperation_TextAdParameters proto.InternalMessageInfo + +func (m *ApplyRecommendationOperation_TextAdParameters) GetAd() *resources.Ad { + if m != nil { + return m.Ad + } + return nil +} + +// Parameters to use when applying keyword recommendation. +type ApplyRecommendationOperation_KeywordParameters struct { + // The ad group resource to add keyword to. This is a required field. + AdGroup *wrappers.StringValue `protobuf:"bytes,1,opt,name=ad_group,json=adGroup,proto3" json:"ad_group,omitempty"` + // The match type of the keyword. This is a required field. + MatchType enums.KeywordMatchTypeEnum_KeywordMatchType `protobuf:"varint,2,opt,name=match_type,json=matchType,proto3,enum=google.ads.googleads.v0.enums.KeywordMatchTypeEnum_KeywordMatchType" json:"match_type,omitempty"` + // Optional, CPC bid to set for the keyword. If not set, keyword will use + // bid based on bidding strategy used by target ad group. + CpcBidMicros *wrappers.Int64Value `protobuf:"bytes,3,opt,name=cpc_bid_micros,json=cpcBidMicros,proto3" json:"cpc_bid_micros,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ApplyRecommendationOperation_KeywordParameters) Reset() { + *m = ApplyRecommendationOperation_KeywordParameters{} +} +func (m *ApplyRecommendationOperation_KeywordParameters) String() string { + return proto.CompactTextString(m) +} +func (*ApplyRecommendationOperation_KeywordParameters) ProtoMessage() {} +func (*ApplyRecommendationOperation_KeywordParameters) Descriptor() ([]byte, []int) { + return fileDescriptor_recommendation_service_1bae96df03faee01, []int{2, 2} +} +func (m *ApplyRecommendationOperation_KeywordParameters) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ApplyRecommendationOperation_KeywordParameters.Unmarshal(m, b) +} +func (m *ApplyRecommendationOperation_KeywordParameters) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ApplyRecommendationOperation_KeywordParameters.Marshal(b, m, deterministic) +} +func (dst *ApplyRecommendationOperation_KeywordParameters) XXX_Merge(src proto.Message) { + xxx_messageInfo_ApplyRecommendationOperation_KeywordParameters.Merge(dst, src) +} +func (m *ApplyRecommendationOperation_KeywordParameters) XXX_Size() int { + return xxx_messageInfo_ApplyRecommendationOperation_KeywordParameters.Size(m) +} +func (m *ApplyRecommendationOperation_KeywordParameters) XXX_DiscardUnknown() { + xxx_messageInfo_ApplyRecommendationOperation_KeywordParameters.DiscardUnknown(m) +} + +var xxx_messageInfo_ApplyRecommendationOperation_KeywordParameters proto.InternalMessageInfo + +func (m *ApplyRecommendationOperation_KeywordParameters) GetAdGroup() *wrappers.StringValue { + if m != nil { + return m.AdGroup + } + return nil +} + +func (m *ApplyRecommendationOperation_KeywordParameters) GetMatchType() enums.KeywordMatchTypeEnum_KeywordMatchType { + if m != nil { + return m.MatchType + } + return enums.KeywordMatchTypeEnum_UNSPECIFIED +} + +func (m *ApplyRecommendationOperation_KeywordParameters) GetCpcBidMicros() *wrappers.Int64Value { + if m != nil { + return m.CpcBidMicros + } + return nil +} + +// Parameters to use when applying Target CPA recommendation. +type ApplyRecommendationOperation_TargetCpaOptInParameters struct { + // Average CPA to use for Target CPA bidding strategy. This is a required + // field. + TargetCpaMicros *wrappers.Int64Value `protobuf:"bytes,1,opt,name=target_cpa_micros,json=targetCpaMicros,proto3" json:"target_cpa_micros,omitempty"` + // Optional, budget amount to set for the campaign. + NewCampaignBudgetAmountMicros *wrappers.Int64Value `protobuf:"bytes,2,opt,name=new_campaign_budget_amount_micros,json=newCampaignBudgetAmountMicros,proto3" json:"new_campaign_budget_amount_micros,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ApplyRecommendationOperation_TargetCpaOptInParameters) Reset() { + *m = ApplyRecommendationOperation_TargetCpaOptInParameters{} +} +func (m *ApplyRecommendationOperation_TargetCpaOptInParameters) String() string { + return proto.CompactTextString(m) +} +func (*ApplyRecommendationOperation_TargetCpaOptInParameters) ProtoMessage() {} +func (*ApplyRecommendationOperation_TargetCpaOptInParameters) Descriptor() ([]byte, []int) { + return fileDescriptor_recommendation_service_1bae96df03faee01, []int{2, 3} +} +func (m *ApplyRecommendationOperation_TargetCpaOptInParameters) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ApplyRecommendationOperation_TargetCpaOptInParameters.Unmarshal(m, b) +} +func (m *ApplyRecommendationOperation_TargetCpaOptInParameters) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ApplyRecommendationOperation_TargetCpaOptInParameters.Marshal(b, m, deterministic) +} +func (dst *ApplyRecommendationOperation_TargetCpaOptInParameters) XXX_Merge(src proto.Message) { + xxx_messageInfo_ApplyRecommendationOperation_TargetCpaOptInParameters.Merge(dst, src) +} +func (m *ApplyRecommendationOperation_TargetCpaOptInParameters) XXX_Size() int { + return xxx_messageInfo_ApplyRecommendationOperation_TargetCpaOptInParameters.Size(m) +} +func (m *ApplyRecommendationOperation_TargetCpaOptInParameters) XXX_DiscardUnknown() { + xxx_messageInfo_ApplyRecommendationOperation_TargetCpaOptInParameters.DiscardUnknown(m) +} + +var xxx_messageInfo_ApplyRecommendationOperation_TargetCpaOptInParameters proto.InternalMessageInfo + +func (m *ApplyRecommendationOperation_TargetCpaOptInParameters) GetTargetCpaMicros() *wrappers.Int64Value { + if m != nil { + return m.TargetCpaMicros + } + return nil +} + +func (m *ApplyRecommendationOperation_TargetCpaOptInParameters) GetNewCampaignBudgetAmountMicros() *wrappers.Int64Value { + if m != nil { + return m.NewCampaignBudgetAmountMicros + } + return nil +} + +// Response message for [RecommendationService.ApplyRecommendation][google.ads.googleads.v0.services.RecommendationService.ApplyRecommendation]. +type ApplyRecommendationResponse struct { + // Results of operations to apply recommendations. + Results []*ApplyRecommendationResult `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"` + // Errors that pertain to operation failures in the partial failure mode. + // Returned only when partial_failure = true and all errors occur inside the + // operations. If any errors occur outside the operations (e.g. auth errors) + // we return the RPC level error. + PartialFailureError *status.Status `protobuf:"bytes,2,opt,name=partial_failure_error,json=partialFailureError,proto3" json:"partial_failure_error,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ApplyRecommendationResponse) Reset() { *m = ApplyRecommendationResponse{} } +func (m *ApplyRecommendationResponse) String() string { return proto.CompactTextString(m) } +func (*ApplyRecommendationResponse) ProtoMessage() {} +func (*ApplyRecommendationResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_recommendation_service_1bae96df03faee01, []int{3} +} +func (m *ApplyRecommendationResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ApplyRecommendationResponse.Unmarshal(m, b) +} +func (m *ApplyRecommendationResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ApplyRecommendationResponse.Marshal(b, m, deterministic) +} +func (dst *ApplyRecommendationResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ApplyRecommendationResponse.Merge(dst, src) +} +func (m *ApplyRecommendationResponse) XXX_Size() int { + return xxx_messageInfo_ApplyRecommendationResponse.Size(m) +} +func (m *ApplyRecommendationResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ApplyRecommendationResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ApplyRecommendationResponse proto.InternalMessageInfo + +func (m *ApplyRecommendationResponse) GetResults() []*ApplyRecommendationResult { + if m != nil { + return m.Results + } + return nil +} + +func (m *ApplyRecommendationResponse) GetPartialFailureError() *status.Status { + if m != nil { + return m.PartialFailureError + } + return nil +} + +// The result of applying a recommendation. +type ApplyRecommendationResult struct { + // Returned for successful applies. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ApplyRecommendationResult) Reset() { *m = ApplyRecommendationResult{} } +func (m *ApplyRecommendationResult) String() string { return proto.CompactTextString(m) } +func (*ApplyRecommendationResult) ProtoMessage() {} +func (*ApplyRecommendationResult) Descriptor() ([]byte, []int) { + return fileDescriptor_recommendation_service_1bae96df03faee01, []int{4} +} +func (m *ApplyRecommendationResult) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ApplyRecommendationResult.Unmarshal(m, b) +} +func (m *ApplyRecommendationResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ApplyRecommendationResult.Marshal(b, m, deterministic) +} +func (dst *ApplyRecommendationResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_ApplyRecommendationResult.Merge(dst, src) +} +func (m *ApplyRecommendationResult) XXX_Size() int { + return xxx_messageInfo_ApplyRecommendationResult.Size(m) +} +func (m *ApplyRecommendationResult) XXX_DiscardUnknown() { + xxx_messageInfo_ApplyRecommendationResult.DiscardUnknown(m) +} + +var xxx_messageInfo_ApplyRecommendationResult proto.InternalMessageInfo + +func (m *ApplyRecommendationResult) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +// Request message for [RecommendationService.DismissRecommendation][google.ads.googleads.v0.services.RecommendationService.DismissRecommendation]. +type DismissRecommendationRequest struct { + // The ID of the customer with the recommendation. + CustomerId string `protobuf:"bytes,1,opt,name=customer_id,json=customerId,proto3" json:"customer_id,omitempty"` + // If true, successful operations will be carried out and invalid + // operations will return errors. If false, operations will be carried in a + // single transaction if and only if they are all valid. + // Default is false. + PartialFailure bool `protobuf:"varint,2,opt,name=partial_failure,json=partialFailure,proto3" json:"partial_failure,omitempty"` + // The list of operations to dismiss recommendations. + // If partial_failure=false all recommendations should be of the same type + // There is a limit of 100 operations per request. + Operations []*DismissRecommendationRequest_DismissRecommendationOperation `protobuf:"bytes,3,rep,name=operations,proto3" json:"operations,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DismissRecommendationRequest) Reset() { *m = DismissRecommendationRequest{} } +func (m *DismissRecommendationRequest) String() string { return proto.CompactTextString(m) } +func (*DismissRecommendationRequest) ProtoMessage() {} +func (*DismissRecommendationRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_recommendation_service_1bae96df03faee01, []int{5} +} +func (m *DismissRecommendationRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DismissRecommendationRequest.Unmarshal(m, b) +} +func (m *DismissRecommendationRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DismissRecommendationRequest.Marshal(b, m, deterministic) +} +func (dst *DismissRecommendationRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_DismissRecommendationRequest.Merge(dst, src) +} +func (m *DismissRecommendationRequest) XXX_Size() int { + return xxx_messageInfo_DismissRecommendationRequest.Size(m) +} +func (m *DismissRecommendationRequest) XXX_DiscardUnknown() { + xxx_messageInfo_DismissRecommendationRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_DismissRecommendationRequest proto.InternalMessageInfo + +func (m *DismissRecommendationRequest) GetCustomerId() string { + if m != nil { + return m.CustomerId + } + return "" +} + +func (m *DismissRecommendationRequest) GetPartialFailure() bool { + if m != nil { + return m.PartialFailure + } + return false +} + +func (m *DismissRecommendationRequest) GetOperations() []*DismissRecommendationRequest_DismissRecommendationOperation { + if m != nil { + return m.Operations + } + return nil +} + +// Operation to dismiss a single recommendation identified by resource_name. +type DismissRecommendationRequest_DismissRecommendationOperation struct { + // The resource name of the recommendation to dismiss. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DismissRecommendationRequest_DismissRecommendationOperation) Reset() { + *m = DismissRecommendationRequest_DismissRecommendationOperation{} +} +func (m *DismissRecommendationRequest_DismissRecommendationOperation) String() string { + return proto.CompactTextString(m) +} +func (*DismissRecommendationRequest_DismissRecommendationOperation) ProtoMessage() {} +func (*DismissRecommendationRequest_DismissRecommendationOperation) Descriptor() ([]byte, []int) { + return fileDescriptor_recommendation_service_1bae96df03faee01, []int{5, 0} +} +func (m *DismissRecommendationRequest_DismissRecommendationOperation) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DismissRecommendationRequest_DismissRecommendationOperation.Unmarshal(m, b) +} +func (m *DismissRecommendationRequest_DismissRecommendationOperation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DismissRecommendationRequest_DismissRecommendationOperation.Marshal(b, m, deterministic) +} +func (dst *DismissRecommendationRequest_DismissRecommendationOperation) XXX_Merge(src proto.Message) { + xxx_messageInfo_DismissRecommendationRequest_DismissRecommendationOperation.Merge(dst, src) +} +func (m *DismissRecommendationRequest_DismissRecommendationOperation) XXX_Size() int { + return xxx_messageInfo_DismissRecommendationRequest_DismissRecommendationOperation.Size(m) +} +func (m *DismissRecommendationRequest_DismissRecommendationOperation) XXX_DiscardUnknown() { + xxx_messageInfo_DismissRecommendationRequest_DismissRecommendationOperation.DiscardUnknown(m) +} + +var xxx_messageInfo_DismissRecommendationRequest_DismissRecommendationOperation proto.InternalMessageInfo + +func (m *DismissRecommendationRequest_DismissRecommendationOperation) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +// Response message for [RecommendationService.DismissRecommendation][google.ads.googleads.v0.services.RecommendationService.DismissRecommendation]. +type DismissRecommendationResponse struct { + // Results of operations to dismiss recommendations. + Results []*DismissRecommendationResponse_DismissRecommendationResult `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"` + // Errors that pertain to operation failures in the partial failure mode. + // Returned only when partial_failure = true and all errors occur inside the + // operations. If any errors occur outside the operations (e.g. auth errors) + // we return the RPC level error. + PartialFailureError *status.Status `protobuf:"bytes,2,opt,name=partial_failure_error,json=partialFailureError,proto3" json:"partial_failure_error,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DismissRecommendationResponse) Reset() { *m = DismissRecommendationResponse{} } +func (m *DismissRecommendationResponse) String() string { return proto.CompactTextString(m) } +func (*DismissRecommendationResponse) ProtoMessage() {} +func (*DismissRecommendationResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_recommendation_service_1bae96df03faee01, []int{6} +} +func (m *DismissRecommendationResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DismissRecommendationResponse.Unmarshal(m, b) +} +func (m *DismissRecommendationResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DismissRecommendationResponse.Marshal(b, m, deterministic) +} +func (dst *DismissRecommendationResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_DismissRecommendationResponse.Merge(dst, src) +} +func (m *DismissRecommendationResponse) XXX_Size() int { + return xxx_messageInfo_DismissRecommendationResponse.Size(m) +} +func (m *DismissRecommendationResponse) XXX_DiscardUnknown() { + xxx_messageInfo_DismissRecommendationResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_DismissRecommendationResponse proto.InternalMessageInfo + +func (m *DismissRecommendationResponse) GetResults() []*DismissRecommendationResponse_DismissRecommendationResult { + if m != nil { + return m.Results + } + return nil +} + +func (m *DismissRecommendationResponse) GetPartialFailureError() *status.Status { + if m != nil { + return m.PartialFailureError + } + return nil +} + +// The result of dismissing a recommendation. +type DismissRecommendationResponse_DismissRecommendationResult struct { + // Returned for successful dismissals. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DismissRecommendationResponse_DismissRecommendationResult) Reset() { + *m = DismissRecommendationResponse_DismissRecommendationResult{} +} +func (m *DismissRecommendationResponse_DismissRecommendationResult) String() string { + return proto.CompactTextString(m) +} +func (*DismissRecommendationResponse_DismissRecommendationResult) ProtoMessage() {} +func (*DismissRecommendationResponse_DismissRecommendationResult) Descriptor() ([]byte, []int) { + return fileDescriptor_recommendation_service_1bae96df03faee01, []int{6, 0} +} +func (m *DismissRecommendationResponse_DismissRecommendationResult) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DismissRecommendationResponse_DismissRecommendationResult.Unmarshal(m, b) +} +func (m *DismissRecommendationResponse_DismissRecommendationResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DismissRecommendationResponse_DismissRecommendationResult.Marshal(b, m, deterministic) +} +func (dst *DismissRecommendationResponse_DismissRecommendationResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_DismissRecommendationResponse_DismissRecommendationResult.Merge(dst, src) +} +func (m *DismissRecommendationResponse_DismissRecommendationResult) XXX_Size() int { + return xxx_messageInfo_DismissRecommendationResponse_DismissRecommendationResult.Size(m) +} +func (m *DismissRecommendationResponse_DismissRecommendationResult) XXX_DiscardUnknown() { + xxx_messageInfo_DismissRecommendationResponse_DismissRecommendationResult.DiscardUnknown(m) +} + +var xxx_messageInfo_DismissRecommendationResponse_DismissRecommendationResult proto.InternalMessageInfo + +func (m *DismissRecommendationResponse_DismissRecommendationResult) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetRecommendationRequest)(nil), "google.ads.googleads.v0.services.GetRecommendationRequest") + proto.RegisterType((*ApplyRecommendationRequest)(nil), "google.ads.googleads.v0.services.ApplyRecommendationRequest") + proto.RegisterType((*ApplyRecommendationOperation)(nil), "google.ads.googleads.v0.services.ApplyRecommendationOperation") + proto.RegisterType((*ApplyRecommendationOperation_CampaignBudgetParameters)(nil), "google.ads.googleads.v0.services.ApplyRecommendationOperation.CampaignBudgetParameters") + proto.RegisterType((*ApplyRecommendationOperation_TextAdParameters)(nil), "google.ads.googleads.v0.services.ApplyRecommendationOperation.TextAdParameters") + proto.RegisterType((*ApplyRecommendationOperation_KeywordParameters)(nil), "google.ads.googleads.v0.services.ApplyRecommendationOperation.KeywordParameters") + proto.RegisterType((*ApplyRecommendationOperation_TargetCpaOptInParameters)(nil), "google.ads.googleads.v0.services.ApplyRecommendationOperation.TargetCpaOptInParameters") + proto.RegisterType((*ApplyRecommendationResponse)(nil), "google.ads.googleads.v0.services.ApplyRecommendationResponse") + proto.RegisterType((*ApplyRecommendationResult)(nil), "google.ads.googleads.v0.services.ApplyRecommendationResult") + proto.RegisterType((*DismissRecommendationRequest)(nil), "google.ads.googleads.v0.services.DismissRecommendationRequest") + proto.RegisterType((*DismissRecommendationRequest_DismissRecommendationOperation)(nil), "google.ads.googleads.v0.services.DismissRecommendationRequest.DismissRecommendationOperation") + proto.RegisterType((*DismissRecommendationResponse)(nil), "google.ads.googleads.v0.services.DismissRecommendationResponse") + proto.RegisterType((*DismissRecommendationResponse_DismissRecommendationResult)(nil), "google.ads.googleads.v0.services.DismissRecommendationResponse.DismissRecommendationResult") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// RecommendationServiceClient is the client API for RecommendationService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type RecommendationServiceClient interface { + // Returns the requested recommendation in full detail. + GetRecommendation(ctx context.Context, in *GetRecommendationRequest, opts ...grpc.CallOption) (*resources.Recommendation, error) + // Applies given recommendations with corresponding apply parameters. + ApplyRecommendation(ctx context.Context, in *ApplyRecommendationRequest, opts ...grpc.CallOption) (*ApplyRecommendationResponse, error) + // Dismisses given recommendations. + DismissRecommendation(ctx context.Context, in *DismissRecommendationRequest, opts ...grpc.CallOption) (*DismissRecommendationResponse, error) +} + +type recommendationServiceClient struct { + cc *grpc.ClientConn +} + +func NewRecommendationServiceClient(cc *grpc.ClientConn) RecommendationServiceClient { + return &recommendationServiceClient{cc} +} + +func (c *recommendationServiceClient) GetRecommendation(ctx context.Context, in *GetRecommendationRequest, opts ...grpc.CallOption) (*resources.Recommendation, error) { + out := new(resources.Recommendation) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.RecommendationService/GetRecommendation", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *recommendationServiceClient) ApplyRecommendation(ctx context.Context, in *ApplyRecommendationRequest, opts ...grpc.CallOption) (*ApplyRecommendationResponse, error) { + out := new(ApplyRecommendationResponse) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.RecommendationService/ApplyRecommendation", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *recommendationServiceClient) DismissRecommendation(ctx context.Context, in *DismissRecommendationRequest, opts ...grpc.CallOption) (*DismissRecommendationResponse, error) { + out := new(DismissRecommendationResponse) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.RecommendationService/DismissRecommendation", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// RecommendationServiceServer is the server API for RecommendationService service. +type RecommendationServiceServer interface { + // Returns the requested recommendation in full detail. + GetRecommendation(context.Context, *GetRecommendationRequest) (*resources.Recommendation, error) + // Applies given recommendations with corresponding apply parameters. + ApplyRecommendation(context.Context, *ApplyRecommendationRequest) (*ApplyRecommendationResponse, error) + // Dismisses given recommendations. + DismissRecommendation(context.Context, *DismissRecommendationRequest) (*DismissRecommendationResponse, error) +} + +func RegisterRecommendationServiceServer(s *grpc.Server, srv RecommendationServiceServer) { + s.RegisterService(&_RecommendationService_serviceDesc, srv) +} + +func _RecommendationService_GetRecommendation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetRecommendationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RecommendationServiceServer).GetRecommendation(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.RecommendationService/GetRecommendation", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RecommendationServiceServer).GetRecommendation(ctx, req.(*GetRecommendationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _RecommendationService_ApplyRecommendation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ApplyRecommendationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RecommendationServiceServer).ApplyRecommendation(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.RecommendationService/ApplyRecommendation", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RecommendationServiceServer).ApplyRecommendation(ctx, req.(*ApplyRecommendationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _RecommendationService_DismissRecommendation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DismissRecommendationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RecommendationServiceServer).DismissRecommendation(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.RecommendationService/DismissRecommendation", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RecommendationServiceServer).DismissRecommendation(ctx, req.(*DismissRecommendationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _RecommendationService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.RecommendationService", + HandlerType: (*RecommendationServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetRecommendation", + Handler: _RecommendationService_GetRecommendation_Handler, + }, + { + MethodName: "ApplyRecommendation", + Handler: _RecommendationService_ApplyRecommendation_Handler, + }, + { + MethodName: "DismissRecommendation", + Handler: _RecommendationService_DismissRecommendation_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/recommendation_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/recommendation_service.proto", fileDescriptor_recommendation_service_1bae96df03faee01) +} + +var fileDescriptor_recommendation_service_1bae96df03faee01 = []byte{ + // 1068 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x57, 0xc1, 0x72, 0xdc, 0x44, + 0x10, 0x45, 0x32, 0x89, 0x93, 0x71, 0xb0, 0xe3, 0x49, 0xb9, 0x58, 0x64, 0x27, 0x2c, 0x02, 0x0a, + 0xd7, 0x1e, 0x24, 0x67, 0x4d, 0x0c, 0x38, 0xd8, 0xc9, 0x6e, 0xe2, 0x38, 0x2e, 0x2a, 0xd8, 0x25, + 0x1b, 0x53, 0x05, 0x06, 0xd5, 0x58, 0x9a, 0x08, 0xc1, 0x4a, 0x33, 0xcc, 0x8c, 0xec, 0xb8, 0x52, + 0xbe, 0xa4, 0xb8, 0x70, 0xe6, 0x0f, 0x72, 0xe4, 0xc0, 0x17, 0x00, 0x47, 0x0e, 0x39, 0xc2, 0x2d, + 0x67, 0x3e, 0x81, 0x0f, 0xa0, 0x34, 0x9a, 0x71, 0xac, 0xf5, 0xca, 0xbb, 0x78, 0xc3, 0x6d, 0x76, + 0xba, 0xfb, 0x75, 0xbf, 0xee, 0x9e, 0x6e, 0x2d, 0x58, 0x8a, 0x08, 0x89, 0x3a, 0xd8, 0x45, 0x21, + 0x77, 0x8b, 0x63, 0x7e, 0xda, 0x9b, 0x73, 0x39, 0x66, 0x7b, 0x71, 0x80, 0xb9, 0xcb, 0x70, 0x40, + 0x92, 0x04, 0xa7, 0x21, 0x12, 0x31, 0x49, 0x7d, 0x75, 0xef, 0x50, 0x46, 0x04, 0x81, 0xf5, 0xc2, + 0xc6, 0x41, 0x21, 0x77, 0x8e, 0xcc, 0x9d, 0xbd, 0x39, 0x47, 0x9b, 0x5b, 0x0b, 0x55, 0x0e, 0x70, + 0x9a, 0x25, 0xdc, 0xfd, 0x0e, 0x1f, 0xec, 0x13, 0x16, 0xfa, 0x09, 0x12, 0xc1, 0x37, 0xbe, 0x38, + 0xa0, 0x0a, 0xd9, 0x6a, 0x54, 0xd9, 0x31, 0xcc, 0x49, 0xc6, 0xf2, 0xc8, 0x50, 0xa8, 0x74, 0x17, + 0xfa, 0xeb, 0x96, 0x59, 0x28, 0xbb, 0x19, 0x6d, 0x47, 0x63, 0x17, 0xa5, 0x29, 0x11, 0x52, 0xc8, + 0x95, 0xf4, 0x9a, 0x92, 0xca, 0x5f, 0xbb, 0xd9, 0x43, 0x77, 0x9f, 0x21, 0x4a, 0x31, 0xd3, 0xf2, + 0xd7, 0x95, 0x9c, 0xd1, 0xc0, 0xe5, 0x02, 0x89, 0x4c, 0x09, 0xec, 0x5b, 0xa0, 0xb6, 0x8a, 0x85, + 0x57, 0xf2, 0xe8, 0xe1, 0xef, 0x33, 0xcc, 0x05, 0x7c, 0x1b, 0xbc, 0xa6, 0x83, 0xf2, 0x53, 0x94, + 0xe0, 0x9a, 0x51, 0x37, 0x66, 0x2f, 0x7a, 0x97, 0xf4, 0xe5, 0xa7, 0x28, 0xc1, 0xf6, 0x1f, 0x06, + 0xb0, 0x5a, 0x94, 0x76, 0x0e, 0x7a, 0x63, 0xbc, 0x09, 0xc6, 0x82, 0x8c, 0x0b, 0x92, 0x60, 0xe6, + 0xc7, 0xa1, 0x42, 0x00, 0xfa, 0x6a, 0x2d, 0x84, 0xef, 0x81, 0x09, 0x8a, 0x98, 0x88, 0x51, 0xc7, + 0x7f, 0x88, 0xe2, 0x4e, 0xc6, 0x70, 0x6d, 0xa4, 0x6e, 0xcc, 0x5e, 0xf0, 0xc6, 0xd5, 0xf5, 0xbd, + 0xe2, 0x16, 0x7e, 0x0d, 0x00, 0xa1, 0x98, 0x15, 0xb4, 0x6b, 0x66, 0x7d, 0x64, 0x76, 0xac, 0xb9, + 0xec, 0xf4, 0xab, 0xa9, 0xd3, 0x23, 0xb6, 0x75, 0x0d, 0xe3, 0x1d, 0x43, 0xb4, 0x7f, 0xbf, 0x08, + 0x66, 0x4e, 0x53, 0x1e, 0x28, 0x1d, 0xf0, 0x89, 0x01, 0x26, 0x02, 0x94, 0x50, 0x14, 0x47, 0xa9, + 0xbf, 0x9b, 0x85, 0x11, 0x16, 0x35, 0xb3, 0x6e, 0xcc, 0x8e, 0x35, 0x3f, 0x1f, 0x2e, 0x56, 0xe7, + 0x8e, 0x42, 0x6d, 0x4b, 0xd0, 0x0d, 0xc4, 0x50, 0x82, 0x05, 0x66, 0xfc, 0xfe, 0x2b, 0xde, 0x78, + 0x50, 0x92, 0xc1, 0x6f, 0xc1, 0xa8, 0xc0, 0x8f, 0x84, 0x8f, 0x42, 0x99, 0xcb, 0xb1, 0xe6, 0xfa, + 0x90, 0xbe, 0xb7, 0xf0, 0x23, 0xd1, 0x0a, 0x4b, 0x3e, 0xcf, 0x0b, 0x79, 0x07, 0x3b, 0x60, 0x54, + 0xbd, 0x8b, 0xda, 0xab, 0xd2, 0xd7, 0xc6, 0x90, 0xbe, 0x3e, 0x29, 0xd0, 0x4a, 0xce, 0xb4, 0x0b, + 0xf8, 0x83, 0x01, 0x26, 0x05, 0x62, 0x11, 0x16, 0x7e, 0x40, 0x91, 0x4f, 0xa8, 0xf0, 0xe3, 0xb4, + 0x76, 0xee, 0xa5, 0x24, 0x78, 0x4b, 0xe2, 0xde, 0xa1, 0x68, 0x9d, 0x8a, 0xb5, 0xb4, 0x9c, 0x60, + 0x51, 0x92, 0x59, 0x14, 0xd4, 0xaa, 0xca, 0x01, 0xb7, 0x40, 0x2d, 0xc5, 0xfb, 0xaa, 0xf6, 0x3e, + 0x4a, 0x48, 0x96, 0x0a, 0x3f, 0x89, 0x03, 0x46, 0xb8, 0xec, 0x98, 0xb1, 0xe6, 0xb4, 0x0e, 0x54, + 0xbf, 0x56, 0x67, 0x2d, 0x15, 0x0b, 0xef, 0x6f, 0xa3, 0x4e, 0x86, 0xbd, 0xa9, 0x14, 0xef, 0x17, + 0x98, 0x2d, 0x69, 0xfa, 0x40, 0x5a, 0x5a, 0x6b, 0xe0, 0x72, 0x77, 0x11, 0xe0, 0x0d, 0x60, 0xa2, + 0x50, 0x61, 0xbe, 0x5b, 0x49, 0xfe, 0x68, 0xae, 0x38, 0xad, 0xd0, 0x33, 0x51, 0x68, 0xfd, 0x63, + 0x80, 0xc9, 0x13, 0x49, 0x86, 0x1f, 0x80, 0x0b, 0x28, 0xf4, 0x23, 0x46, 0x32, 0xaa, 0x20, 0x67, + 0x4e, 0x84, 0xb9, 0x29, 0x58, 0x9c, 0x46, 0x45, 0x9c, 0xa3, 0x28, 0x5c, 0xcd, 0x95, 0x61, 0x00, + 0xc0, 0x8b, 0x81, 0x28, 0x7b, 0x7d, 0xbc, 0x79, 0xb7, 0x32, 0x1a, 0x39, 0x49, 0x75, 0x8d, 0x1f, + 0xe4, 0x76, 0x5b, 0x07, 0x14, 0xaf, 0xa4, 0x59, 0x72, 0xe2, 0xd2, 0xbb, 0x98, 0xe8, 0x23, 0x6c, + 0x81, 0xf1, 0x80, 0x06, 0xfe, 0x6e, 0x1c, 0xea, 0x54, 0x8e, 0xf4, 0x4f, 0xe5, 0xa5, 0x80, 0x06, + 0xed, 0x38, 0x54, 0x19, 0x7c, 0x66, 0x80, 0x5a, 0x55, 0x89, 0xe1, 0x6a, 0xa9, 0xad, 0x06, 0xaf, + 0xd6, 0xc4, 0x51, 0x63, 0x14, 0x5e, 0x20, 0x06, 0x6f, 0xe5, 0xd5, 0xef, 0x1a, 0x01, 0x5d, 0x6d, + 0x60, 0xf6, 0x07, 0xbe, 0x9a, 0xe2, 0xfd, 0x72, 0x8b, 0x1d, 0x6f, 0x87, 0x36, 0x04, 0x97, 0x51, + 0xde, 0xcb, 0x3e, 0x3d, 0xe2, 0x60, 0xff, 0x6a, 0x80, 0xe9, 0x9e, 0x93, 0x98, 0x53, 0x92, 0x72, + 0x0c, 0x3f, 0x03, 0xa3, 0x0c, 0xf3, 0xac, 0x23, 0x72, 0x66, 0xf9, 0xf4, 0xbc, 0x79, 0xa6, 0x07, + 0xe3, 0x49, 0x0c, 0x4f, 0x63, 0xc1, 0x7b, 0x60, 0xaa, 0x6b, 0x80, 0xfb, 0x98, 0x31, 0xc2, 0x14, + 0x4b, 0xa8, 0x9d, 0x30, 0x1a, 0x38, 0x9b, 0x72, 0xf5, 0x78, 0x57, 0xca, 0xa3, 0x7d, 0x25, 0x57, + 0xb7, 0x6f, 0x83, 0x37, 0x2a, 0xbd, 0x0d, 0xb6, 0x8a, 0x7e, 0x31, 0xc1, 0xcc, 0xdd, 0x98, 0x27, + 0x31, 0xe7, 0x2f, 0x6f, 0x19, 0x99, 0x3d, 0x97, 0xd1, 0x61, 0x69, 0x19, 0x8d, 0xc8, 0x74, 0x7e, + 0xd5, 0x3f, 0x9d, 0xa7, 0x45, 0xd7, 0x5b, 0xd8, 0x73, 0x57, 0x59, 0x2b, 0xe0, 0xda, 0xe9, 0xda, + 0x83, 0x25, 0xec, 0xa9, 0x09, 0xae, 0x56, 0x84, 0xa4, 0x7a, 0x26, 0xeb, 0xee, 0x99, 0x2f, 0xcf, + 0x4c, 0xb2, 0x40, 0xac, 0x94, 0xfe, 0x1f, 0x3d, 0x65, 0xb5, 0xc1, 0xf4, 0x29, 0xfe, 0x06, 0x4a, + 0x52, 0xf3, 0xc7, 0x73, 0x60, 0xaa, 0x6c, 0xbd, 0x59, 0x30, 0x85, 0xbf, 0x19, 0x60, 0xf2, 0xc4, + 0xc7, 0x13, 0x5c, 0xec, 0x9f, 0xa1, 0xaa, 0x2f, 0x2e, 0xeb, 0xfa, 0x00, 0x53, 0xbc, 0x6c, 0x69, + 0x7f, 0xf4, 0xe4, 0xaf, 0xbf, 0x7f, 0x32, 0xe7, 0xe1, 0xf5, 0xfc, 0x1b, 0xf2, 0x71, 0x89, 0xce, + 0x92, 0xee, 0x6c, 0xee, 0x36, 0xba, 0x3e, 0x2a, 0xb9, 0xdb, 0x38, 0x84, 0x7f, 0x1a, 0xe0, 0x4a, + 0x8f, 0x27, 0x07, 0x3f, 0x3e, 0xe3, 0x5c, 0x28, 0x38, 0x2c, 0x9d, 0x75, 0xaa, 0xc8, 0xfe, 0xb0, + 0x97, 0x25, 0x9f, 0x0f, 0xed, 0xf9, 0x9c, 0xcf, 0x0b, 0x02, 0x8f, 0x8f, 0x3d, 0xdc, 0xa5, 0xc6, + 0x61, 0x37, 0x9d, 0x45, 0x39, 0x0d, 0x17, 0x8d, 0x06, 0x7c, 0x6e, 0x80, 0xa9, 0x9e, 0x35, 0x87, + 0xcb, 0xc3, 0xbd, 0x4f, 0xeb, 0xd6, 0x90, 0xad, 0x6f, 0xdf, 0x96, 0xd4, 0x16, 0xed, 0x1b, 0xff, + 0x8d, 0x5a, 0x58, 0x80, 0x2e, 0x1a, 0x8d, 0xf6, 0x73, 0x03, 0xbc, 0x13, 0x90, 0xa4, 0x6f, 0x20, + 0x6d, 0xab, 0x67, 0xc7, 0x6e, 0xe4, 0x8b, 0x66, 0xc3, 0xf8, 0xe2, 0xbe, 0xb2, 0x8f, 0x48, 0x07, + 0xa5, 0x91, 0x43, 0x58, 0xe4, 0x46, 0x38, 0x95, 0x6b, 0x48, 0xff, 0x27, 0xa1, 0x31, 0xaf, 0xfe, + 0x9f, 0x75, 0x53, 0x1f, 0x9e, 0x9a, 0x23, 0xab, 0xad, 0xd6, 0xcf, 0x66, 0x7d, 0xb5, 0x00, 0x6c, + 0x85, 0xdc, 0x29, 0x8e, 0xf9, 0x69, 0x7b, 0xce, 0x51, 0x8e, 0xf9, 0x33, 0xad, 0xb2, 0xd3, 0x0a, + 0xf9, 0xce, 0x91, 0xca, 0xce, 0xf6, 0xdc, 0x8e, 0x56, 0xd9, 0x3d, 0x2f, 0x03, 0x98, 0xff, 0x37, + 0x00, 0x00, 0xff, 0xff, 0x6e, 0x5a, 0x56, 0xae, 0xe7, 0x0d, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/search_term_view_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/search_term_view_service.pb.go new file mode 100644 index 000000000..7e82ffcb1 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/search_term_view_service.pb.go @@ -0,0 +1,174 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/search_term_view_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [SearchTermViewService.GetSearchTermView][google.ads.googleads.v0.services.SearchTermViewService.GetSearchTermView]. +type GetSearchTermViewRequest struct { + // The resource name of the search term view to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetSearchTermViewRequest) Reset() { *m = GetSearchTermViewRequest{} } +func (m *GetSearchTermViewRequest) String() string { return proto.CompactTextString(m) } +func (*GetSearchTermViewRequest) ProtoMessage() {} +func (*GetSearchTermViewRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_search_term_view_service_24332fa5424afa86, []int{0} +} +func (m *GetSearchTermViewRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetSearchTermViewRequest.Unmarshal(m, b) +} +func (m *GetSearchTermViewRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetSearchTermViewRequest.Marshal(b, m, deterministic) +} +func (dst *GetSearchTermViewRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetSearchTermViewRequest.Merge(dst, src) +} +func (m *GetSearchTermViewRequest) XXX_Size() int { + return xxx_messageInfo_GetSearchTermViewRequest.Size(m) +} +func (m *GetSearchTermViewRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetSearchTermViewRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetSearchTermViewRequest proto.InternalMessageInfo + +func (m *GetSearchTermViewRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetSearchTermViewRequest)(nil), "google.ads.googleads.v0.services.GetSearchTermViewRequest") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// SearchTermViewServiceClient is the client API for SearchTermViewService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type SearchTermViewServiceClient interface { + // Returns the attributes of the requested search term view. + GetSearchTermView(ctx context.Context, in *GetSearchTermViewRequest, opts ...grpc.CallOption) (*resources.SearchTermView, error) +} + +type searchTermViewServiceClient struct { + cc *grpc.ClientConn +} + +func NewSearchTermViewServiceClient(cc *grpc.ClientConn) SearchTermViewServiceClient { + return &searchTermViewServiceClient{cc} +} + +func (c *searchTermViewServiceClient) GetSearchTermView(ctx context.Context, in *GetSearchTermViewRequest, opts ...grpc.CallOption) (*resources.SearchTermView, error) { + out := new(resources.SearchTermView) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.SearchTermViewService/GetSearchTermView", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// SearchTermViewServiceServer is the server API for SearchTermViewService service. +type SearchTermViewServiceServer interface { + // Returns the attributes of the requested search term view. + GetSearchTermView(context.Context, *GetSearchTermViewRequest) (*resources.SearchTermView, error) +} + +func RegisterSearchTermViewServiceServer(s *grpc.Server, srv SearchTermViewServiceServer) { + s.RegisterService(&_SearchTermViewService_serviceDesc, srv) +} + +func _SearchTermViewService_GetSearchTermView_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetSearchTermViewRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SearchTermViewServiceServer).GetSearchTermView(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.SearchTermViewService/GetSearchTermView", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SearchTermViewServiceServer).GetSearchTermView(ctx, req.(*GetSearchTermViewRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _SearchTermViewService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.SearchTermViewService", + HandlerType: (*SearchTermViewServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetSearchTermView", + Handler: _SearchTermViewService_GetSearchTermView_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/search_term_view_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/search_term_view_service.proto", fileDescriptor_search_term_view_service_24332fa5424afa86) +} + +var fileDescriptor_search_term_view_service_24332fa5424afa86 = []byte{ + // 351 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x92, 0xcf, 0x4a, 0xc3, 0x40, + 0x10, 0xc6, 0x49, 0x05, 0xc1, 0xa0, 0x07, 0x03, 0x42, 0x09, 0x1e, 0x4a, 0xf5, 0x20, 0x3d, 0xec, + 0xa6, 0xf6, 0xe2, 0x1f, 0xa4, 0xa4, 0x97, 0x7a, 0x92, 0xd2, 0x4a, 0x0f, 0x12, 0x08, 0x6b, 0x32, + 0xc4, 0x40, 0xb3, 0x5b, 0x77, 0xb6, 0xe9, 0x41, 0xbc, 0xf8, 0x0a, 0xbe, 0x81, 0x47, 0xdf, 0xc1, + 0x17, 0xf0, 0xea, 0x41, 0xf0, 0xec, 0x83, 0x48, 0xba, 0xd9, 0x42, 0xb1, 0xa1, 0xb7, 0x8f, 0xcc, + 0xfc, 0xbe, 0x99, 0xf9, 0xb2, 0x76, 0x37, 0x11, 0x22, 0x99, 0x00, 0x65, 0x31, 0x52, 0x2d, 0x0b, + 0x95, 0x7b, 0x14, 0x41, 0xe6, 0x69, 0x04, 0x48, 0x11, 0x98, 0x8c, 0x1e, 0x42, 0x05, 0x32, 0x0b, + 0xf3, 0x14, 0xe6, 0x61, 0x59, 0x21, 0x53, 0x29, 0x94, 0x70, 0x1a, 0x9a, 0x22, 0x2c, 0x46, 0xb2, + 0x34, 0x20, 0xb9, 0x47, 0x8c, 0x81, 0x7b, 0x56, 0x35, 0x42, 0x02, 0x8a, 0x99, 0x5c, 0x37, 0x43, + 0x7b, 0xbb, 0x87, 0x86, 0x9c, 0xa6, 0x94, 0x71, 0x2e, 0x14, 0x53, 0xa9, 0xe0, 0xa8, 0xab, 0xcd, + 0xae, 0x5d, 0xef, 0x83, 0x1a, 0x2d, 0xd0, 0x5b, 0x90, 0xd9, 0x38, 0x85, 0xf9, 0x10, 0x1e, 0x67, + 0x80, 0xca, 0x39, 0xb2, 0xf7, 0x8c, 0x7b, 0xc8, 0x59, 0x06, 0x75, 0xab, 0x61, 0x9d, 0xec, 0x0c, + 0x77, 0xcd, 0xc7, 0x1b, 0x96, 0xc1, 0xe9, 0xb7, 0x65, 0x1f, 0xac, 0xe2, 0x23, 0xbd, 0xb3, 0xf3, + 0x61, 0xd9, 0xfb, 0xff, 0xbc, 0x9d, 0x0b, 0xb2, 0xe9, 0x56, 0x52, 0xb5, 0x90, 0xdb, 0xae, 0x64, + 0x97, 0x29, 0x90, 0x55, 0xb2, 0x79, 0xfe, 0xf2, 0xf5, 0xfb, 0x5a, 0xeb, 0x38, 0xed, 0x22, 0xab, + 0xa7, 0x95, 0x73, 0xae, 0xa2, 0x19, 0x2a, 0x91, 0x81, 0x44, 0xda, 0x2a, 0xc3, 0x33, 0x18, 0xd2, + 0xd6, 0x73, 0xef, 0xc7, 0xb2, 0x8f, 0x23, 0x91, 0x6d, 0xdc, 0xb7, 0xe7, 0xae, 0xbd, 0x7f, 0x50, + 0xe4, 0x3b, 0xb0, 0xee, 0xae, 0x4b, 0x3e, 0x11, 0x13, 0xc6, 0x13, 0x22, 0x64, 0x42, 0x13, 0xe0, + 0x8b, 0xf4, 0xcd, 0x9f, 0x9c, 0xa6, 0x58, 0xfd, 0x76, 0x2e, 0x8d, 0x78, 0xab, 0x6d, 0xf5, 0x7d, + 0xff, 0xbd, 0xd6, 0xe8, 0x6b, 0x43, 0x3f, 0x46, 0xa2, 0x65, 0xa1, 0xc6, 0x1e, 0x29, 0x07, 0xe3, + 0xa7, 0x69, 0x09, 0xfc, 0x18, 0x83, 0x65, 0x4b, 0x30, 0xf6, 0x02, 0xd3, 0x72, 0xbf, 0xbd, 0x58, + 0xa0, 0xf3, 0x17, 0x00, 0x00, 0xff, 0xff, 0x34, 0x3f, 0x8b, 0x2d, 0xbb, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/shared_criterion_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/shared_criterion_service.pb.go new file mode 100644 index 000000000..083ff35ee --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/shared_criterion_service.pb.go @@ -0,0 +1,498 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/shared_criterion_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [SharedCriterionService.GetSharedCriterion][google.ads.googleads.v0.services.SharedCriterionService.GetSharedCriterion]. +type GetSharedCriterionRequest struct { + // The resource name of the shared criterion to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetSharedCriterionRequest) Reset() { *m = GetSharedCriterionRequest{} } +func (m *GetSharedCriterionRequest) String() string { return proto.CompactTextString(m) } +func (*GetSharedCriterionRequest) ProtoMessage() {} +func (*GetSharedCriterionRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_shared_criterion_service_6b64ffbc632397a6, []int{0} +} +func (m *GetSharedCriterionRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetSharedCriterionRequest.Unmarshal(m, b) +} +func (m *GetSharedCriterionRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetSharedCriterionRequest.Marshal(b, m, deterministic) +} +func (dst *GetSharedCriterionRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetSharedCriterionRequest.Merge(dst, src) +} +func (m *GetSharedCriterionRequest) XXX_Size() int { + return xxx_messageInfo_GetSharedCriterionRequest.Size(m) +} +func (m *GetSharedCriterionRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetSharedCriterionRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetSharedCriterionRequest proto.InternalMessageInfo + +func (m *GetSharedCriterionRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +// Request message for [SharedCriterionService.MutateSharedCriteria][google.ads.googleads.v0.services.SharedCriterionService.MutateSharedCriteria]. +type MutateSharedCriteriaRequest struct { + // The ID of the customer whose shared criteria are being modified. + CustomerId string `protobuf:"bytes,1,opt,name=customer_id,json=customerId,proto3" json:"customer_id,omitempty"` + // The list of operations to perform on individual shared criteria. + Operations []*SharedCriterionOperation `protobuf:"bytes,2,rep,name=operations,proto3" json:"operations,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateSharedCriteriaRequest) Reset() { *m = MutateSharedCriteriaRequest{} } +func (m *MutateSharedCriteriaRequest) String() string { return proto.CompactTextString(m) } +func (*MutateSharedCriteriaRequest) ProtoMessage() {} +func (*MutateSharedCriteriaRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_shared_criterion_service_6b64ffbc632397a6, []int{1} +} +func (m *MutateSharedCriteriaRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateSharedCriteriaRequest.Unmarshal(m, b) +} +func (m *MutateSharedCriteriaRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateSharedCriteriaRequest.Marshal(b, m, deterministic) +} +func (dst *MutateSharedCriteriaRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateSharedCriteriaRequest.Merge(dst, src) +} +func (m *MutateSharedCriteriaRequest) XXX_Size() int { + return xxx_messageInfo_MutateSharedCriteriaRequest.Size(m) +} +func (m *MutateSharedCriteriaRequest) XXX_DiscardUnknown() { + xxx_messageInfo_MutateSharedCriteriaRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateSharedCriteriaRequest proto.InternalMessageInfo + +func (m *MutateSharedCriteriaRequest) GetCustomerId() string { + if m != nil { + return m.CustomerId + } + return "" +} + +func (m *MutateSharedCriteriaRequest) GetOperations() []*SharedCriterionOperation { + if m != nil { + return m.Operations + } + return nil +} + +// A single operation (create, remove) on an shared criterion. +type SharedCriterionOperation struct { + // The mutate operation. + // + // Types that are valid to be assigned to Operation: + // *SharedCriterionOperation_Create + // *SharedCriterionOperation_Remove + Operation isSharedCriterionOperation_Operation `protobuf_oneof:"operation"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SharedCriterionOperation) Reset() { *m = SharedCriterionOperation{} } +func (m *SharedCriterionOperation) String() string { return proto.CompactTextString(m) } +func (*SharedCriterionOperation) ProtoMessage() {} +func (*SharedCriterionOperation) Descriptor() ([]byte, []int) { + return fileDescriptor_shared_criterion_service_6b64ffbc632397a6, []int{2} +} +func (m *SharedCriterionOperation) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SharedCriterionOperation.Unmarshal(m, b) +} +func (m *SharedCriterionOperation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SharedCriterionOperation.Marshal(b, m, deterministic) +} +func (dst *SharedCriterionOperation) XXX_Merge(src proto.Message) { + xxx_messageInfo_SharedCriterionOperation.Merge(dst, src) +} +func (m *SharedCriterionOperation) XXX_Size() int { + return xxx_messageInfo_SharedCriterionOperation.Size(m) +} +func (m *SharedCriterionOperation) XXX_DiscardUnknown() { + xxx_messageInfo_SharedCriterionOperation.DiscardUnknown(m) +} + +var xxx_messageInfo_SharedCriterionOperation proto.InternalMessageInfo + +type isSharedCriterionOperation_Operation interface { + isSharedCriterionOperation_Operation() +} + +type SharedCriterionOperation_Create struct { + Create *resources.SharedCriterion `protobuf:"bytes,1,opt,name=create,proto3,oneof"` +} + +type SharedCriterionOperation_Remove struct { + Remove string `protobuf:"bytes,3,opt,name=remove,proto3,oneof"` +} + +func (*SharedCriterionOperation_Create) isSharedCriterionOperation_Operation() {} + +func (*SharedCriterionOperation_Remove) isSharedCriterionOperation_Operation() {} + +func (m *SharedCriterionOperation) GetOperation() isSharedCriterionOperation_Operation { + if m != nil { + return m.Operation + } + return nil +} + +func (m *SharedCriterionOperation) GetCreate() *resources.SharedCriterion { + if x, ok := m.GetOperation().(*SharedCriterionOperation_Create); ok { + return x.Create + } + return nil +} + +func (m *SharedCriterionOperation) GetRemove() string { + if x, ok := m.GetOperation().(*SharedCriterionOperation_Remove); ok { + return x.Remove + } + return "" +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*SharedCriterionOperation) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _SharedCriterionOperation_OneofMarshaler, _SharedCriterionOperation_OneofUnmarshaler, _SharedCriterionOperation_OneofSizer, []interface{}{ + (*SharedCriterionOperation_Create)(nil), + (*SharedCriterionOperation_Remove)(nil), + } +} + +func _SharedCriterionOperation_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*SharedCriterionOperation) + // operation + switch x := m.Operation.(type) { + case *SharedCriterionOperation_Create: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Create); err != nil { + return err + } + case *SharedCriterionOperation_Remove: + b.EncodeVarint(3<<3 | proto.WireBytes) + b.EncodeStringBytes(x.Remove) + case nil: + default: + return fmt.Errorf("SharedCriterionOperation.Operation has unexpected type %T", x) + } + return nil +} + +func _SharedCriterionOperation_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*SharedCriterionOperation) + switch tag { + case 1: // operation.create + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.SharedCriterion) + err := b.DecodeMessage(msg) + m.Operation = &SharedCriterionOperation_Create{msg} + return true, err + case 3: // operation.remove + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Operation = &SharedCriterionOperation_Remove{x} + return true, err + default: + return false, nil + } +} + +func _SharedCriterionOperation_OneofSizer(msg proto.Message) (n int) { + m := msg.(*SharedCriterionOperation) + // operation + switch x := m.Operation.(type) { + case *SharedCriterionOperation_Create: + s := proto.Size(x.Create) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *SharedCriterionOperation_Remove: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(len(x.Remove))) + n += len(x.Remove) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// Response message for a shared criterion mutate. +type MutateSharedCriteriaResponse struct { + // All results for the mutate. + Results []*MutateSharedCriterionResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateSharedCriteriaResponse) Reset() { *m = MutateSharedCriteriaResponse{} } +func (m *MutateSharedCriteriaResponse) String() string { return proto.CompactTextString(m) } +func (*MutateSharedCriteriaResponse) ProtoMessage() {} +func (*MutateSharedCriteriaResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_shared_criterion_service_6b64ffbc632397a6, []int{3} +} +func (m *MutateSharedCriteriaResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateSharedCriteriaResponse.Unmarshal(m, b) +} +func (m *MutateSharedCriteriaResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateSharedCriteriaResponse.Marshal(b, m, deterministic) +} +func (dst *MutateSharedCriteriaResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateSharedCriteriaResponse.Merge(dst, src) +} +func (m *MutateSharedCriteriaResponse) XXX_Size() int { + return xxx_messageInfo_MutateSharedCriteriaResponse.Size(m) +} +func (m *MutateSharedCriteriaResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MutateSharedCriteriaResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateSharedCriteriaResponse proto.InternalMessageInfo + +func (m *MutateSharedCriteriaResponse) GetResults() []*MutateSharedCriterionResult { + if m != nil { + return m.Results + } + return nil +} + +// The result for the shared criterion mutate. +type MutateSharedCriterionResult struct { + // Returned for successful operations. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateSharedCriterionResult) Reset() { *m = MutateSharedCriterionResult{} } +func (m *MutateSharedCriterionResult) String() string { return proto.CompactTextString(m) } +func (*MutateSharedCriterionResult) ProtoMessage() {} +func (*MutateSharedCriterionResult) Descriptor() ([]byte, []int) { + return fileDescriptor_shared_criterion_service_6b64ffbc632397a6, []int{4} +} +func (m *MutateSharedCriterionResult) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateSharedCriterionResult.Unmarshal(m, b) +} +func (m *MutateSharedCriterionResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateSharedCriterionResult.Marshal(b, m, deterministic) +} +func (dst *MutateSharedCriterionResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateSharedCriterionResult.Merge(dst, src) +} +func (m *MutateSharedCriterionResult) XXX_Size() int { + return xxx_messageInfo_MutateSharedCriterionResult.Size(m) +} +func (m *MutateSharedCriterionResult) XXX_DiscardUnknown() { + xxx_messageInfo_MutateSharedCriterionResult.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateSharedCriterionResult proto.InternalMessageInfo + +func (m *MutateSharedCriterionResult) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetSharedCriterionRequest)(nil), "google.ads.googleads.v0.services.GetSharedCriterionRequest") + proto.RegisterType((*MutateSharedCriteriaRequest)(nil), "google.ads.googleads.v0.services.MutateSharedCriteriaRequest") + proto.RegisterType((*SharedCriterionOperation)(nil), "google.ads.googleads.v0.services.SharedCriterionOperation") + proto.RegisterType((*MutateSharedCriteriaResponse)(nil), "google.ads.googleads.v0.services.MutateSharedCriteriaResponse") + proto.RegisterType((*MutateSharedCriterionResult)(nil), "google.ads.googleads.v0.services.MutateSharedCriterionResult") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// SharedCriterionServiceClient is the client API for SharedCriterionService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type SharedCriterionServiceClient interface { + // Returns the requested shared criterion in full detail. + GetSharedCriterion(ctx context.Context, in *GetSharedCriterionRequest, opts ...grpc.CallOption) (*resources.SharedCriterion, error) + // Creates or removes shared criteria. Operation statuses are returned. + MutateSharedCriteria(ctx context.Context, in *MutateSharedCriteriaRequest, opts ...grpc.CallOption) (*MutateSharedCriteriaResponse, error) +} + +type sharedCriterionServiceClient struct { + cc *grpc.ClientConn +} + +func NewSharedCriterionServiceClient(cc *grpc.ClientConn) SharedCriterionServiceClient { + return &sharedCriterionServiceClient{cc} +} + +func (c *sharedCriterionServiceClient) GetSharedCriterion(ctx context.Context, in *GetSharedCriterionRequest, opts ...grpc.CallOption) (*resources.SharedCriterion, error) { + out := new(resources.SharedCriterion) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.SharedCriterionService/GetSharedCriterion", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *sharedCriterionServiceClient) MutateSharedCriteria(ctx context.Context, in *MutateSharedCriteriaRequest, opts ...grpc.CallOption) (*MutateSharedCriteriaResponse, error) { + out := new(MutateSharedCriteriaResponse) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.SharedCriterionService/MutateSharedCriteria", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// SharedCriterionServiceServer is the server API for SharedCriterionService service. +type SharedCriterionServiceServer interface { + // Returns the requested shared criterion in full detail. + GetSharedCriterion(context.Context, *GetSharedCriterionRequest) (*resources.SharedCriterion, error) + // Creates or removes shared criteria. Operation statuses are returned. + MutateSharedCriteria(context.Context, *MutateSharedCriteriaRequest) (*MutateSharedCriteriaResponse, error) +} + +func RegisterSharedCriterionServiceServer(s *grpc.Server, srv SharedCriterionServiceServer) { + s.RegisterService(&_SharedCriterionService_serviceDesc, srv) +} + +func _SharedCriterionService_GetSharedCriterion_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetSharedCriterionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SharedCriterionServiceServer).GetSharedCriterion(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.SharedCriterionService/GetSharedCriterion", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SharedCriterionServiceServer).GetSharedCriterion(ctx, req.(*GetSharedCriterionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SharedCriterionService_MutateSharedCriteria_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MutateSharedCriteriaRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SharedCriterionServiceServer).MutateSharedCriteria(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.SharedCriterionService/MutateSharedCriteria", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SharedCriterionServiceServer).MutateSharedCriteria(ctx, req.(*MutateSharedCriteriaRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _SharedCriterionService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.SharedCriterionService", + HandlerType: (*SharedCriterionServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetSharedCriterion", + Handler: _SharedCriterionService_GetSharedCriterion_Handler, + }, + { + MethodName: "MutateSharedCriteria", + Handler: _SharedCriterionService_MutateSharedCriteria_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/shared_criterion_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/shared_criterion_service.proto", fileDescriptor_shared_criterion_service_6b64ffbc632397a6) +} + +var fileDescriptor_shared_criterion_service_6b64ffbc632397a6 = []byte{ + // 538 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x94, 0x3f, 0x6f, 0xd3, 0x40, + 0x14, 0xc0, 0x71, 0x22, 0x05, 0xf5, 0x02, 0xcb, 0x09, 0xa1, 0x90, 0x56, 0x22, 0x32, 0x0c, 0x55, + 0x86, 0xb3, 0xe5, 0x2e, 0x51, 0xaa, 0x14, 0x12, 0x86, 0x14, 0x89, 0x3f, 0x95, 0x2b, 0x15, 0xa9, + 0x8a, 0x14, 0x1d, 0xf6, 0x93, 0xb1, 0x14, 0xfb, 0xcc, 0xdd, 0x39, 0x0c, 0x55, 0x17, 0xbe, 0x00, + 0x03, 0x1b, 0x23, 0x23, 0x23, 0x5f, 0x80, 0x9d, 0x15, 0x31, 0xb1, 0xf2, 0x41, 0xd0, 0xf9, 0x7c, + 0xa1, 0x0d, 0xb6, 0x82, 0xb2, 0x3d, 0xfb, 0xde, 0xfb, 0xbd, 0xff, 0x0f, 0x3d, 0x8a, 0x18, 0x8b, + 0x16, 0xe0, 0xd0, 0x50, 0x38, 0x5a, 0x54, 0xd2, 0xd2, 0x75, 0x04, 0xf0, 0x65, 0x1c, 0x80, 0x70, + 0xc4, 0x1b, 0xca, 0x21, 0x9c, 0x07, 0x3c, 0x96, 0xc0, 0x63, 0x96, 0xce, 0xcb, 0x17, 0x92, 0x71, + 0x26, 0x19, 0xee, 0x69, 0x2b, 0x42, 0x43, 0x41, 0x56, 0x00, 0xb2, 0x74, 0x89, 0x01, 0x74, 0x07, + 0x75, 0x2e, 0x38, 0x08, 0x96, 0xf3, 0x2a, 0x1f, 0x9a, 0xdd, 0xdd, 0x33, 0x96, 0x59, 0xec, 0xd0, + 0x34, 0x65, 0x92, 0xca, 0x98, 0xa5, 0x42, 0xbf, 0xda, 0x8f, 0xd1, 0xbd, 0x29, 0xc8, 0xd3, 0xc2, + 0xf4, 0x89, 0xb1, 0xf4, 0xe1, 0x6d, 0x0e, 0x42, 0xe2, 0x07, 0xe8, 0xb6, 0xc1, 0xcf, 0x53, 0x9a, + 0x40, 0xc7, 0xea, 0x59, 0xfb, 0x3b, 0xfe, 0x2d, 0xf3, 0xf3, 0x05, 0x4d, 0xc0, 0xfe, 0x64, 0xa1, + 0xdd, 0xe7, 0xb9, 0xa4, 0x12, 0xae, 0x51, 0xa8, 0x81, 0xdc, 0x47, 0xed, 0x20, 0x17, 0x92, 0x25, + 0xc0, 0xe7, 0x71, 0x58, 0x22, 0x90, 0xf9, 0xf5, 0x34, 0xc4, 0xe7, 0x08, 0xb1, 0x0c, 0xb8, 0x0e, + 0xab, 0xd3, 0xe8, 0x35, 0xf7, 0xdb, 0xde, 0x90, 0x6c, 0xaa, 0x08, 0x59, 0x8b, 0xf9, 0xa5, 0x41, + 0xf8, 0x57, 0x68, 0xf6, 0x07, 0x0b, 0x75, 0xea, 0x14, 0xf1, 0x33, 0xd4, 0x0a, 0x38, 0x50, 0xa9, + 0xf3, 0x6a, 0x7b, 0x5e, 0xad, 0xd3, 0x55, 0x91, 0xd7, 0xbd, 0x1e, 0xdf, 0xf0, 0x4b, 0x06, 0xee, + 0xa0, 0x16, 0x87, 0x84, 0x2d, 0xa1, 0xd3, 0x54, 0x29, 0xaa, 0x17, 0xfd, 0x3d, 0x69, 0xa3, 0x9d, + 0x55, 0x48, 0xf6, 0x3b, 0xb4, 0x57, 0x5d, 0x2d, 0x91, 0xb1, 0x54, 0x00, 0x7e, 0x85, 0x6e, 0x72, + 0x10, 0xf9, 0x42, 0x9a, 0x52, 0x8c, 0x36, 0x97, 0xa2, 0x02, 0xa8, 0x9a, 0xa8, 0x28, 0xbe, 0xa1, + 0xd9, 0x93, 0xca, 0x36, 0x19, 0xbd, 0xff, 0xea, 0xb5, 0xf7, 0xb5, 0x89, 0xee, 0xae, 0x99, 0x9f, + 0xea, 0x20, 0xf0, 0x37, 0x0b, 0xe1, 0x7f, 0x27, 0x09, 0x1f, 0x6e, 0x8e, 0xbe, 0x76, 0xfe, 0xba, + 0x5b, 0x34, 0xc4, 0x1e, 0xbc, 0xff, 0xf1, 0xfb, 0x63, 0xc3, 0xc3, 0xae, 0x5a, 0x8e, 0x8b, 0x6b, + 0x29, 0x8d, 0xcc, 0xd0, 0x09, 0xa7, 0x5f, 0x6e, 0x8b, 0x29, 0xbf, 0xd3, 0xbf, 0xc4, 0x3f, 0x2d, + 0x74, 0xa7, 0xaa, 0x35, 0x78, 0xbb, 0x0e, 0x98, 0x05, 0xe8, 0x1e, 0x6d, 0x6b, 0xae, 0x27, 0xc2, + 0x3e, 0x2a, 0x32, 0x1a, 0xd8, 0x07, 0x2a, 0xa3, 0xbf, 0x29, 0x5c, 0x5c, 0xd9, 0xaa, 0x51, 0xff, + 0x72, 0x2d, 0xa1, 0x61, 0x52, 0x20, 0x87, 0x56, 0x7f, 0xf2, 0xcb, 0x42, 0x0f, 0x03, 0x96, 0x6c, + 0x8c, 0x62, 0xb2, 0x5b, 0xdd, 0xda, 0x13, 0x75, 0x28, 0x4e, 0xac, 0xf3, 0xe3, 0x12, 0x10, 0xb1, + 0x05, 0x4d, 0x23, 0xc2, 0x78, 0xe4, 0x44, 0x90, 0x16, 0x67, 0xc4, 0x9c, 0xa4, 0x2c, 0x16, 0xf5, + 0x47, 0xf0, 0xd0, 0x08, 0x9f, 0x1b, 0xcd, 0xe9, 0x78, 0xfc, 0xa5, 0xd1, 0x9b, 0x6a, 0xe0, 0x38, + 0x14, 0x44, 0x8b, 0x4a, 0x3a, 0x73, 0x49, 0xe9, 0x58, 0x7c, 0x37, 0x2a, 0xb3, 0x71, 0x28, 0x66, + 0x2b, 0x95, 0xd9, 0x99, 0x3b, 0x33, 0x2a, 0xaf, 0x5b, 0x45, 0x00, 0x07, 0x7f, 0x02, 0x00, 0x00, + 0xff, 0xff, 0x08, 0x0f, 0x51, 0xc4, 0x84, 0x05, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/shared_set_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/shared_set_service.pb.go new file mode 100644 index 000000000..878d6e302 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/shared_set_service.pb.go @@ -0,0 +1,544 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/shared_set_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" +import field_mask "google.golang.org/genproto/protobuf/field_mask" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [SharedSetService.GetSharedSet][google.ads.googleads.v0.services.SharedSetService.GetSharedSet]. +type GetSharedSetRequest struct { + // The resource name of the shared set to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetSharedSetRequest) Reset() { *m = GetSharedSetRequest{} } +func (m *GetSharedSetRequest) String() string { return proto.CompactTextString(m) } +func (*GetSharedSetRequest) ProtoMessage() {} +func (*GetSharedSetRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_shared_set_service_72af1c4c98b2939a, []int{0} +} +func (m *GetSharedSetRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetSharedSetRequest.Unmarshal(m, b) +} +func (m *GetSharedSetRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetSharedSetRequest.Marshal(b, m, deterministic) +} +func (dst *GetSharedSetRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetSharedSetRequest.Merge(dst, src) +} +func (m *GetSharedSetRequest) XXX_Size() int { + return xxx_messageInfo_GetSharedSetRequest.Size(m) +} +func (m *GetSharedSetRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetSharedSetRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetSharedSetRequest proto.InternalMessageInfo + +func (m *GetSharedSetRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +// Request message for [SharedSetService.MutateSharedSets][google.ads.googleads.v0.services.SharedSetService.MutateSharedSets]. +type MutateSharedSetsRequest struct { + // The ID of the customer whose shared sets are being modified. + CustomerId string `protobuf:"bytes,1,opt,name=customer_id,json=customerId,proto3" json:"customer_id,omitempty"` + // The list of operations to perform on individual shared sets. + Operations []*SharedSetOperation `protobuf:"bytes,2,rep,name=operations,proto3" json:"operations,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateSharedSetsRequest) Reset() { *m = MutateSharedSetsRequest{} } +func (m *MutateSharedSetsRequest) String() string { return proto.CompactTextString(m) } +func (*MutateSharedSetsRequest) ProtoMessage() {} +func (*MutateSharedSetsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_shared_set_service_72af1c4c98b2939a, []int{1} +} +func (m *MutateSharedSetsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateSharedSetsRequest.Unmarshal(m, b) +} +func (m *MutateSharedSetsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateSharedSetsRequest.Marshal(b, m, deterministic) +} +func (dst *MutateSharedSetsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateSharedSetsRequest.Merge(dst, src) +} +func (m *MutateSharedSetsRequest) XXX_Size() int { + return xxx_messageInfo_MutateSharedSetsRequest.Size(m) +} +func (m *MutateSharedSetsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_MutateSharedSetsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateSharedSetsRequest proto.InternalMessageInfo + +func (m *MutateSharedSetsRequest) GetCustomerId() string { + if m != nil { + return m.CustomerId + } + return "" +} + +func (m *MutateSharedSetsRequest) GetOperations() []*SharedSetOperation { + if m != nil { + return m.Operations + } + return nil +} + +// A single operation (create, update, remove) on an shared set. +type SharedSetOperation struct { + // FieldMask that determines which resource fields are modified in an update. + UpdateMask *field_mask.FieldMask `protobuf:"bytes,4,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // The mutate operation. + // + // Types that are valid to be assigned to Operation: + // *SharedSetOperation_Create + // *SharedSetOperation_Update + // *SharedSetOperation_Remove + Operation isSharedSetOperation_Operation `protobuf_oneof:"operation"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SharedSetOperation) Reset() { *m = SharedSetOperation{} } +func (m *SharedSetOperation) String() string { return proto.CompactTextString(m) } +func (*SharedSetOperation) ProtoMessage() {} +func (*SharedSetOperation) Descriptor() ([]byte, []int) { + return fileDescriptor_shared_set_service_72af1c4c98b2939a, []int{2} +} +func (m *SharedSetOperation) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SharedSetOperation.Unmarshal(m, b) +} +func (m *SharedSetOperation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SharedSetOperation.Marshal(b, m, deterministic) +} +func (dst *SharedSetOperation) XXX_Merge(src proto.Message) { + xxx_messageInfo_SharedSetOperation.Merge(dst, src) +} +func (m *SharedSetOperation) XXX_Size() int { + return xxx_messageInfo_SharedSetOperation.Size(m) +} +func (m *SharedSetOperation) XXX_DiscardUnknown() { + xxx_messageInfo_SharedSetOperation.DiscardUnknown(m) +} + +var xxx_messageInfo_SharedSetOperation proto.InternalMessageInfo + +func (m *SharedSetOperation) GetUpdateMask() *field_mask.FieldMask { + if m != nil { + return m.UpdateMask + } + return nil +} + +type isSharedSetOperation_Operation interface { + isSharedSetOperation_Operation() +} + +type SharedSetOperation_Create struct { + Create *resources.SharedSet `protobuf:"bytes,1,opt,name=create,proto3,oneof"` +} + +type SharedSetOperation_Update struct { + Update *resources.SharedSet `protobuf:"bytes,2,opt,name=update,proto3,oneof"` +} + +type SharedSetOperation_Remove struct { + Remove string `protobuf:"bytes,3,opt,name=remove,proto3,oneof"` +} + +func (*SharedSetOperation_Create) isSharedSetOperation_Operation() {} + +func (*SharedSetOperation_Update) isSharedSetOperation_Operation() {} + +func (*SharedSetOperation_Remove) isSharedSetOperation_Operation() {} + +func (m *SharedSetOperation) GetOperation() isSharedSetOperation_Operation { + if m != nil { + return m.Operation + } + return nil +} + +func (m *SharedSetOperation) GetCreate() *resources.SharedSet { + if x, ok := m.GetOperation().(*SharedSetOperation_Create); ok { + return x.Create + } + return nil +} + +func (m *SharedSetOperation) GetUpdate() *resources.SharedSet { + if x, ok := m.GetOperation().(*SharedSetOperation_Update); ok { + return x.Update + } + return nil +} + +func (m *SharedSetOperation) GetRemove() string { + if x, ok := m.GetOperation().(*SharedSetOperation_Remove); ok { + return x.Remove + } + return "" +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*SharedSetOperation) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _SharedSetOperation_OneofMarshaler, _SharedSetOperation_OneofUnmarshaler, _SharedSetOperation_OneofSizer, []interface{}{ + (*SharedSetOperation_Create)(nil), + (*SharedSetOperation_Update)(nil), + (*SharedSetOperation_Remove)(nil), + } +} + +func _SharedSetOperation_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*SharedSetOperation) + // operation + switch x := m.Operation.(type) { + case *SharedSetOperation_Create: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Create); err != nil { + return err + } + case *SharedSetOperation_Update: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Update); err != nil { + return err + } + case *SharedSetOperation_Remove: + b.EncodeVarint(3<<3 | proto.WireBytes) + b.EncodeStringBytes(x.Remove) + case nil: + default: + return fmt.Errorf("SharedSetOperation.Operation has unexpected type %T", x) + } + return nil +} + +func _SharedSetOperation_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*SharedSetOperation) + switch tag { + case 1: // operation.create + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.SharedSet) + err := b.DecodeMessage(msg) + m.Operation = &SharedSetOperation_Create{msg} + return true, err + case 2: // operation.update + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.SharedSet) + err := b.DecodeMessage(msg) + m.Operation = &SharedSetOperation_Update{msg} + return true, err + case 3: // operation.remove + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Operation = &SharedSetOperation_Remove{x} + return true, err + default: + return false, nil + } +} + +func _SharedSetOperation_OneofSizer(msg proto.Message) (n int) { + m := msg.(*SharedSetOperation) + // operation + switch x := m.Operation.(type) { + case *SharedSetOperation_Create: + s := proto.Size(x.Create) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *SharedSetOperation_Update: + s := proto.Size(x.Update) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *SharedSetOperation_Remove: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(len(x.Remove))) + n += len(x.Remove) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// Response message for a shared set mutate. +type MutateSharedSetsResponse struct { + // All results for the mutate. + Results []*MutateSharedSetResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateSharedSetsResponse) Reset() { *m = MutateSharedSetsResponse{} } +func (m *MutateSharedSetsResponse) String() string { return proto.CompactTextString(m) } +func (*MutateSharedSetsResponse) ProtoMessage() {} +func (*MutateSharedSetsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_shared_set_service_72af1c4c98b2939a, []int{3} +} +func (m *MutateSharedSetsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateSharedSetsResponse.Unmarshal(m, b) +} +func (m *MutateSharedSetsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateSharedSetsResponse.Marshal(b, m, deterministic) +} +func (dst *MutateSharedSetsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateSharedSetsResponse.Merge(dst, src) +} +func (m *MutateSharedSetsResponse) XXX_Size() int { + return xxx_messageInfo_MutateSharedSetsResponse.Size(m) +} +func (m *MutateSharedSetsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MutateSharedSetsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateSharedSetsResponse proto.InternalMessageInfo + +func (m *MutateSharedSetsResponse) GetResults() []*MutateSharedSetResult { + if m != nil { + return m.Results + } + return nil +} + +// The result for the shared set mutate. +type MutateSharedSetResult struct { + // Returned for successful operations. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateSharedSetResult) Reset() { *m = MutateSharedSetResult{} } +func (m *MutateSharedSetResult) String() string { return proto.CompactTextString(m) } +func (*MutateSharedSetResult) ProtoMessage() {} +func (*MutateSharedSetResult) Descriptor() ([]byte, []int) { + return fileDescriptor_shared_set_service_72af1c4c98b2939a, []int{4} +} +func (m *MutateSharedSetResult) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateSharedSetResult.Unmarshal(m, b) +} +func (m *MutateSharedSetResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateSharedSetResult.Marshal(b, m, deterministic) +} +func (dst *MutateSharedSetResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateSharedSetResult.Merge(dst, src) +} +func (m *MutateSharedSetResult) XXX_Size() int { + return xxx_messageInfo_MutateSharedSetResult.Size(m) +} +func (m *MutateSharedSetResult) XXX_DiscardUnknown() { + xxx_messageInfo_MutateSharedSetResult.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateSharedSetResult proto.InternalMessageInfo + +func (m *MutateSharedSetResult) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetSharedSetRequest)(nil), "google.ads.googleads.v0.services.GetSharedSetRequest") + proto.RegisterType((*MutateSharedSetsRequest)(nil), "google.ads.googleads.v0.services.MutateSharedSetsRequest") + proto.RegisterType((*SharedSetOperation)(nil), "google.ads.googleads.v0.services.SharedSetOperation") + proto.RegisterType((*MutateSharedSetsResponse)(nil), "google.ads.googleads.v0.services.MutateSharedSetsResponse") + proto.RegisterType((*MutateSharedSetResult)(nil), "google.ads.googleads.v0.services.MutateSharedSetResult") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// SharedSetServiceClient is the client API for SharedSetService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type SharedSetServiceClient interface { + // Returns the requested shared set in full detail. + GetSharedSet(ctx context.Context, in *GetSharedSetRequest, opts ...grpc.CallOption) (*resources.SharedSet, error) + // Creates, updates, or removes shared sets. Operation statuses are returned. + MutateSharedSets(ctx context.Context, in *MutateSharedSetsRequest, opts ...grpc.CallOption) (*MutateSharedSetsResponse, error) +} + +type sharedSetServiceClient struct { + cc *grpc.ClientConn +} + +func NewSharedSetServiceClient(cc *grpc.ClientConn) SharedSetServiceClient { + return &sharedSetServiceClient{cc} +} + +func (c *sharedSetServiceClient) GetSharedSet(ctx context.Context, in *GetSharedSetRequest, opts ...grpc.CallOption) (*resources.SharedSet, error) { + out := new(resources.SharedSet) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.SharedSetService/GetSharedSet", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *sharedSetServiceClient) MutateSharedSets(ctx context.Context, in *MutateSharedSetsRequest, opts ...grpc.CallOption) (*MutateSharedSetsResponse, error) { + out := new(MutateSharedSetsResponse) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.SharedSetService/MutateSharedSets", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// SharedSetServiceServer is the server API for SharedSetService service. +type SharedSetServiceServer interface { + // Returns the requested shared set in full detail. + GetSharedSet(context.Context, *GetSharedSetRequest) (*resources.SharedSet, error) + // Creates, updates, or removes shared sets. Operation statuses are returned. + MutateSharedSets(context.Context, *MutateSharedSetsRequest) (*MutateSharedSetsResponse, error) +} + +func RegisterSharedSetServiceServer(s *grpc.Server, srv SharedSetServiceServer) { + s.RegisterService(&_SharedSetService_serviceDesc, srv) +} + +func _SharedSetService_GetSharedSet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetSharedSetRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SharedSetServiceServer).GetSharedSet(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.SharedSetService/GetSharedSet", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SharedSetServiceServer).GetSharedSet(ctx, req.(*GetSharedSetRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SharedSetService_MutateSharedSets_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MutateSharedSetsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SharedSetServiceServer).MutateSharedSets(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.SharedSetService/MutateSharedSets", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SharedSetServiceServer).MutateSharedSets(ctx, req.(*MutateSharedSetsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _SharedSetService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.SharedSetService", + HandlerType: (*SharedSetServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetSharedSet", + Handler: _SharedSetService_GetSharedSet_Handler, + }, + { + MethodName: "MutateSharedSets", + Handler: _SharedSetService_MutateSharedSets_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/shared_set_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/shared_set_service.proto", fileDescriptor_shared_set_service_72af1c4c98b2939a) +} + +var fileDescriptor_shared_set_service_72af1c4c98b2939a = []byte{ + // 592 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x54, 0xc1, 0x6e, 0xd3, 0x4c, + 0x10, 0xfe, 0xed, 0xfc, 0x0a, 0xea, 0xba, 0x48, 0xd5, 0xa2, 0x0a, 0x2b, 0x42, 0x22, 0x32, 0x1c, + 0xa2, 0xa8, 0x5a, 0x47, 0x21, 0x08, 0x35, 0xa5, 0x87, 0xe4, 0xd0, 0x94, 0x43, 0xa1, 0x38, 0xa8, + 0x07, 0x14, 0x29, 0xda, 0xc6, 0x53, 0x63, 0x35, 0xf6, 0x1a, 0xef, 0x3a, 0x97, 0xaa, 0x17, 0x0e, + 0x88, 0x23, 0x12, 0x6f, 0xc0, 0x0d, 0xde, 0x83, 0x0b, 0x57, 0xc4, 0x1b, 0xf0, 0x20, 0x68, 0xbd, + 0x5e, 0x37, 0x4d, 0x1b, 0x85, 0xf6, 0x36, 0x5e, 0x7f, 0xdf, 0x37, 0xb3, 0xdf, 0xcc, 0x2c, 0xda, + 0x0e, 0x18, 0x0b, 0xa6, 0xe0, 0x52, 0x9f, 0xbb, 0x2a, 0x94, 0xd1, 0xac, 0xe5, 0x72, 0x48, 0x67, + 0xe1, 0x04, 0xb8, 0xcb, 0xdf, 0xd1, 0x14, 0xfc, 0x31, 0x07, 0x31, 0x2e, 0xce, 0x48, 0x92, 0x32, + 0xc1, 0x70, 0x5d, 0xe1, 0x09, 0xf5, 0x39, 0x29, 0xa9, 0x64, 0xd6, 0x22, 0x9a, 0x5a, 0x6b, 0x2f, + 0x13, 0x4f, 0x81, 0xb3, 0x2c, 0xbd, 0xac, 0xae, 0x54, 0x6b, 0x0f, 0x34, 0x27, 0x09, 0x5d, 0x1a, + 0xc7, 0x4c, 0x50, 0x11, 0xb2, 0x98, 0x17, 0x7f, 0x8b, 0x9c, 0x6e, 0xfe, 0x75, 0x9c, 0x9d, 0xb8, + 0x27, 0x21, 0x4c, 0xfd, 0x71, 0x44, 0xf9, 0xa9, 0x42, 0x38, 0x5d, 0x74, 0x6f, 0x00, 0x62, 0x98, + 0xcb, 0x0e, 0x41, 0x78, 0xf0, 0x3e, 0x03, 0x2e, 0xf0, 0x23, 0x74, 0x57, 0x27, 0x1d, 0xc7, 0x34, + 0x02, 0xdb, 0xa8, 0x1b, 0x8d, 0x35, 0x6f, 0x5d, 0x1f, 0xbe, 0xa4, 0x11, 0x38, 0x9f, 0x0d, 0x74, + 0xff, 0x20, 0x13, 0x54, 0x40, 0xc9, 0xe7, 0x5a, 0xe0, 0x21, 0xb2, 0x26, 0x19, 0x17, 0x2c, 0x82, + 0x74, 0x1c, 0xfa, 0x05, 0x1d, 0xe9, 0xa3, 0x17, 0x3e, 0x7e, 0x83, 0x10, 0x4b, 0x20, 0x55, 0xe5, + 0xda, 0x66, 0xbd, 0xd2, 0xb0, 0xda, 0x1d, 0xb2, 0xca, 0x23, 0x52, 0x66, 0x7a, 0xa5, 0xc9, 0xde, + 0x9c, 0x8e, 0xf3, 0xc9, 0x44, 0xf8, 0x2a, 0x04, 0xef, 0x20, 0x2b, 0x4b, 0x7c, 0x2a, 0x20, 0xbf, + 0xba, 0xfd, 0x7f, 0xdd, 0x68, 0x58, 0xed, 0x9a, 0xce, 0xa6, 0xdd, 0x21, 0x7b, 0xd2, 0x9d, 0x03, + 0xca, 0x4f, 0x3d, 0xa4, 0xe0, 0x32, 0xc6, 0x7b, 0xa8, 0x3a, 0x49, 0x81, 0x0a, 0x65, 0x82, 0xd5, + 0xde, 0x5a, 0x5a, 0x65, 0xd9, 0xa7, 0x8b, 0x32, 0xf7, 0xff, 0xf3, 0x0a, 0xb6, 0xd4, 0x51, 0xaa, + 0xb6, 0x79, 0x3b, 0x1d, 0xc5, 0xc6, 0x36, 0xaa, 0xa6, 0x10, 0xb1, 0x19, 0xd8, 0x15, 0xe9, 0xaa, + 0xfc, 0xa3, 0xbe, 0xfb, 0x16, 0x5a, 0x2b, 0xbd, 0x70, 0x22, 0x64, 0x5f, 0x6d, 0x0e, 0x4f, 0x58, + 0xcc, 0x01, 0xbf, 0x46, 0x77, 0x52, 0xe0, 0xd9, 0x54, 0x68, 0xe7, 0x9f, 0xad, 0x76, 0x7e, 0x41, + 0xcc, 0xcb, 0xf9, 0x9e, 0xd6, 0x71, 0x9e, 0xa3, 0xcd, 0x6b, 0x11, 0xff, 0x34, 0x4a, 0xed, 0x8f, + 0x15, 0xb4, 0x51, 0x12, 0x87, 0x2a, 0x25, 0xfe, 0x66, 0xa0, 0xf5, 0xf9, 0xe1, 0xc4, 0x4f, 0x57, + 0x57, 0x79, 0xcd, 0x30, 0xd7, 0x6e, 0x64, 0xb4, 0xd3, 0xf9, 0xf0, 0xeb, 0xcf, 0x17, 0x93, 0xe0, + 0x2d, 0xb9, 0x79, 0x67, 0x97, 0x4a, 0xdf, 0xd5, 0xf3, 0xcb, 0xdd, 0x66, 0xb1, 0x8a, 0xd2, 0x56, + 0xb7, 0x79, 0x8e, 0x7f, 0x18, 0x68, 0x63, 0xd1, 0x6e, 0xbc, 0x7d, 0x63, 0x57, 0xf5, 0xfe, 0xd4, + 0xba, 0xb7, 0xa1, 0xaa, 0xee, 0x3a, 0xdd, 0xfc, 0x06, 0x1d, 0xc7, 0x95, 0x37, 0xb8, 0x28, 0xf9, + 0x6c, 0x6e, 0x21, 0x77, 0x9b, 0xe7, 0x73, 0x17, 0xe8, 0x46, 0xb9, 0x54, 0xd7, 0x68, 0xf6, 0x7f, + 0x1b, 0xe8, 0xf1, 0x84, 0x45, 0x2b, 0xb3, 0xf7, 0x37, 0x17, 0xdb, 0x75, 0x28, 0xb7, 0xe8, 0xd0, + 0x78, 0xbb, 0x5f, 0x50, 0x03, 0x36, 0xa5, 0x71, 0x40, 0x58, 0x1a, 0xb8, 0x01, 0xc4, 0xf9, 0x8e, + 0xe9, 0x57, 0x2d, 0x09, 0xf9, 0xf2, 0x17, 0x74, 0x47, 0x07, 0x5f, 0xcd, 0xca, 0xa0, 0xd7, 0xfb, + 0x6e, 0xd6, 0x07, 0x4a, 0xb0, 0xe7, 0x73, 0xa2, 0x42, 0x19, 0x1d, 0xb5, 0x48, 0x91, 0x98, 0xff, + 0xd4, 0x90, 0x51, 0xcf, 0xe7, 0xa3, 0x12, 0x32, 0x3a, 0x6a, 0x8d, 0x34, 0xe4, 0xb8, 0x9a, 0x17, + 0xf0, 0xe4, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x0d, 0xd6, 0x84, 0x2a, 0xc1, 0x05, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/topic_constant_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/topic_constant_service.pb.go new file mode 100644 index 000000000..68e52f153 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/topic_constant_service.pb.go @@ -0,0 +1,173 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/topic_constant_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [TopicConstantService.GetTopicConstant][google.ads.googleads.v0.services.TopicConstantService.GetTopicConstant]. +type GetTopicConstantRequest struct { + // Resource name of the Topic to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetTopicConstantRequest) Reset() { *m = GetTopicConstantRequest{} } +func (m *GetTopicConstantRequest) String() string { return proto.CompactTextString(m) } +func (*GetTopicConstantRequest) ProtoMessage() {} +func (*GetTopicConstantRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_topic_constant_service_c8fc87677409bd0b, []int{0} +} +func (m *GetTopicConstantRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetTopicConstantRequest.Unmarshal(m, b) +} +func (m *GetTopicConstantRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetTopicConstantRequest.Marshal(b, m, deterministic) +} +func (dst *GetTopicConstantRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetTopicConstantRequest.Merge(dst, src) +} +func (m *GetTopicConstantRequest) XXX_Size() int { + return xxx_messageInfo_GetTopicConstantRequest.Size(m) +} +func (m *GetTopicConstantRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetTopicConstantRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetTopicConstantRequest proto.InternalMessageInfo + +func (m *GetTopicConstantRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetTopicConstantRequest)(nil), "google.ads.googleads.v0.services.GetTopicConstantRequest") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// TopicConstantServiceClient is the client API for TopicConstantService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type TopicConstantServiceClient interface { + // Returns the requested topic constant in full detail. + GetTopicConstant(ctx context.Context, in *GetTopicConstantRequest, opts ...grpc.CallOption) (*resources.TopicConstant, error) +} + +type topicConstantServiceClient struct { + cc *grpc.ClientConn +} + +func NewTopicConstantServiceClient(cc *grpc.ClientConn) TopicConstantServiceClient { + return &topicConstantServiceClient{cc} +} + +func (c *topicConstantServiceClient) GetTopicConstant(ctx context.Context, in *GetTopicConstantRequest, opts ...grpc.CallOption) (*resources.TopicConstant, error) { + out := new(resources.TopicConstant) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.TopicConstantService/GetTopicConstant", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// TopicConstantServiceServer is the server API for TopicConstantService service. +type TopicConstantServiceServer interface { + // Returns the requested topic constant in full detail. + GetTopicConstant(context.Context, *GetTopicConstantRequest) (*resources.TopicConstant, error) +} + +func RegisterTopicConstantServiceServer(s *grpc.Server, srv TopicConstantServiceServer) { + s.RegisterService(&_TopicConstantService_serviceDesc, srv) +} + +func _TopicConstantService_GetTopicConstant_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetTopicConstantRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TopicConstantServiceServer).GetTopicConstant(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.TopicConstantService/GetTopicConstant", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TopicConstantServiceServer).GetTopicConstant(ctx, req.(*GetTopicConstantRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _TopicConstantService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.TopicConstantService", + HandlerType: (*TopicConstantServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetTopicConstant", + Handler: _TopicConstantService_GetTopicConstant_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/topic_constant_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/topic_constant_service.proto", fileDescriptor_topic_constant_service_c8fc87677409bd0b) +} + +var fileDescriptor_topic_constant_service_c8fc87677409bd0b = []byte{ + // 332 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x4d, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xe2, 0xd4, + 0xa2, 0xb2, 0xcc, 0xe4, 0xd4, 0x62, 0xfd, 0x92, 0xfc, 0x82, 0xcc, 0xe4, 0xf8, 0xe4, 0xfc, 0xbc, + 0xe2, 0x92, 0xc4, 0xbc, 0x92, 0x78, 0xa8, 0xb8, 0x5e, 0x41, 0x51, 0x7e, 0x49, 0xbe, 0x90, 0x02, + 0x44, 0x8f, 0x5e, 0x62, 0x4a, 0xb1, 0x1e, 0x5c, 0xbb, 0x5e, 0x99, 0x81, 0x1e, 0x4c, 0xbb, 0x94, + 0x19, 0x2e, 0x0b, 0x8a, 0x52, 0x8b, 0xf3, 0x4b, 0x8b, 0x30, 0x6d, 0x80, 0x98, 0x2c, 0x25, 0x03, + 0xd3, 0x57, 0x90, 0xa9, 0x9f, 0x98, 0x97, 0x97, 0x5f, 0x92, 0x58, 0x92, 0x99, 0x9f, 0x57, 0x0c, + 0x91, 0x55, 0xb2, 0xe3, 0x12, 0x77, 0x4f, 0x2d, 0x09, 0x01, 0x69, 0x74, 0x86, 0xea, 0x0b, 0x4a, + 0x2d, 0x2c, 0x4d, 0x2d, 0x2e, 0x11, 0x52, 0xe6, 0xe2, 0x85, 0x19, 0x1d, 0x9f, 0x97, 0x98, 0x9b, + 0x2a, 0xc1, 0xa8, 0xc0, 0xa8, 0xc1, 0x19, 0xc4, 0x03, 0x13, 0xf4, 0x4b, 0xcc, 0x4d, 0x35, 0x3a, + 0xc6, 0xc8, 0x25, 0x82, 0xa2, 0x3b, 0x18, 0xe2, 0x5e, 0xa1, 0xb5, 0x8c, 0x5c, 0x02, 0xe8, 0x26, + 0x0b, 0x59, 0xea, 0x11, 0xf2, 0xa6, 0x1e, 0x0e, 0xd7, 0x48, 0x19, 0xe0, 0xd4, 0x0a, 0xf7, 0xbf, + 0x1e, 0x8a, 0x46, 0x25, 0x9d, 0xa6, 0xcb, 0x4f, 0x26, 0x33, 0xa9, 0x09, 0xa9, 0x80, 0x02, 0xa9, + 0x1a, 0xc5, 0x2b, 0xb6, 0x25, 0xc8, 0x2a, 0x8b, 0xf5, 0xb5, 0x6a, 0x9d, 0x6e, 0x32, 0x72, 0xa9, + 0x24, 0xe7, 0xe7, 0x12, 0x74, 0xa0, 0x93, 0x24, 0x36, 0xef, 0x06, 0x80, 0x02, 0x33, 0x80, 0x31, + 0xca, 0x03, 0xaa, 0x3d, 0x3d, 0x3f, 0x27, 0x31, 0x2f, 0x5d, 0x2f, 0xbf, 0x28, 0x5d, 0x3f, 0x3d, + 0x35, 0x0f, 0x1c, 0xd4, 0xb0, 0x48, 0x2b, 0xc8, 0x2c, 0xc6, 0x9d, 0x48, 0xac, 0x61, 0x8c, 0x45, + 0x4c, 0xcc, 0xee, 0x8e, 0x8e, 0xab, 0x98, 0x14, 0xdc, 0x21, 0x06, 0x3a, 0xa6, 0x14, 0xeb, 0x41, + 0x98, 0x20, 0x56, 0x98, 0x81, 0x1e, 0xd4, 0xe2, 0xe2, 0x53, 0x30, 0x25, 0x31, 0x8e, 0x29, 0xc5, + 0x31, 0x70, 0x25, 0x31, 0x61, 0x06, 0x31, 0x30, 0x25, 0x49, 0x6c, 0x60, 0x07, 0x18, 0x03, 0x02, + 0x00, 0x00, 0xff, 0xff, 0xf5, 0x57, 0x93, 0xec, 0xa4, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/topic_view_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/topic_view_service.pb.go new file mode 100644 index 000000000..bd16847b5 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/topic_view_service.pb.go @@ -0,0 +1,174 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/topic_view_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [TopicViewService.GetTopicView][google.ads.googleads.v0.services.TopicViewService.GetTopicView]. +type GetTopicViewRequest struct { + // The resource name of the topic view to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetTopicViewRequest) Reset() { *m = GetTopicViewRequest{} } +func (m *GetTopicViewRequest) String() string { return proto.CompactTextString(m) } +func (*GetTopicViewRequest) ProtoMessage() {} +func (*GetTopicViewRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_topic_view_service_1a9d16bda8fc03d3, []int{0} +} +func (m *GetTopicViewRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetTopicViewRequest.Unmarshal(m, b) +} +func (m *GetTopicViewRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetTopicViewRequest.Marshal(b, m, deterministic) +} +func (dst *GetTopicViewRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetTopicViewRequest.Merge(dst, src) +} +func (m *GetTopicViewRequest) XXX_Size() int { + return xxx_messageInfo_GetTopicViewRequest.Size(m) +} +func (m *GetTopicViewRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetTopicViewRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetTopicViewRequest proto.InternalMessageInfo + +func (m *GetTopicViewRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetTopicViewRequest)(nil), "google.ads.googleads.v0.services.GetTopicViewRequest") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// TopicViewServiceClient is the client API for TopicViewService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type TopicViewServiceClient interface { + // Returns the requested topic view in full detail. + GetTopicView(ctx context.Context, in *GetTopicViewRequest, opts ...grpc.CallOption) (*resources.TopicView, error) +} + +type topicViewServiceClient struct { + cc *grpc.ClientConn +} + +func NewTopicViewServiceClient(cc *grpc.ClientConn) TopicViewServiceClient { + return &topicViewServiceClient{cc} +} + +func (c *topicViewServiceClient) GetTopicView(ctx context.Context, in *GetTopicViewRequest, opts ...grpc.CallOption) (*resources.TopicView, error) { + out := new(resources.TopicView) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.TopicViewService/GetTopicView", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// TopicViewServiceServer is the server API for TopicViewService service. +type TopicViewServiceServer interface { + // Returns the requested topic view in full detail. + GetTopicView(context.Context, *GetTopicViewRequest) (*resources.TopicView, error) +} + +func RegisterTopicViewServiceServer(s *grpc.Server, srv TopicViewServiceServer) { + s.RegisterService(&_TopicViewService_serviceDesc, srv) +} + +func _TopicViewService_GetTopicView_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetTopicViewRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TopicViewServiceServer).GetTopicView(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.TopicViewService/GetTopicView", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TopicViewServiceServer).GetTopicView(ctx, req.(*GetTopicViewRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _TopicViewService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.TopicViewService", + HandlerType: (*TopicViewServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetTopicView", + Handler: _TopicViewService_GetTopicView_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/topic_view_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/topic_view_service.proto", fileDescriptor_topic_view_service_1a9d16bda8fc03d3) +} + +var fileDescriptor_topic_view_service_1a9d16bda8fc03d3 = []byte{ + // 341 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x4c, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xe2, 0xd4, + 0xa2, 0xb2, 0xcc, 0xe4, 0xd4, 0x62, 0xfd, 0x92, 0xfc, 0x82, 0xcc, 0xe4, 0xf8, 0xb2, 0xcc, 0xd4, + 0xf2, 0x78, 0xa8, 0x98, 0x5e, 0x41, 0x51, 0x7e, 0x49, 0xbe, 0x90, 0x02, 0x44, 0xbd, 0x5e, 0x62, + 0x4a, 0xb1, 0x1e, 0x5c, 0xab, 0x5e, 0x99, 0x81, 0x1e, 0x4c, 0xab, 0x94, 0x11, 0x2e, 0xc3, 0x8b, + 0x52, 0x8b, 0xf3, 0x4b, 0x8b, 0x50, 0x4d, 0x87, 0x98, 0x2a, 0x25, 0x03, 0xd3, 0x53, 0x90, 0xa9, + 0x9f, 0x98, 0x97, 0x97, 0x5f, 0x92, 0x58, 0x92, 0x99, 0x9f, 0x57, 0x0c, 0x91, 0x55, 0xb2, 0xe2, + 0x12, 0x76, 0x4f, 0x2d, 0x09, 0x01, 0x69, 0x0a, 0xcb, 0x4c, 0x2d, 0x0f, 0x4a, 0x2d, 0x2c, 0x4d, + 0x2d, 0x2e, 0x11, 0x52, 0xe6, 0xe2, 0x85, 0x19, 0x19, 0x9f, 0x97, 0x98, 0x9b, 0x2a, 0xc1, 0xa8, + 0xc0, 0xa8, 0xc1, 0x19, 0xc4, 0x03, 0x13, 0xf4, 0x4b, 0xcc, 0x4d, 0x35, 0xda, 0xc7, 0xc8, 0x25, + 0x00, 0xd7, 0x19, 0x0c, 0x71, 0xa3, 0xd0, 0x4a, 0x46, 0x2e, 0x1e, 0x64, 0x13, 0x85, 0x4c, 0xf5, + 0x08, 0x79, 0x4b, 0x0f, 0x8b, 0x0b, 0xa4, 0x74, 0x70, 0x6a, 0x83, 0xfb, 0x55, 0x0f, 0xae, 0x49, + 0xc9, 0xa4, 0xe9, 0xf2, 0x93, 0xc9, 0x4c, 0x7a, 0x42, 0x3a, 0xa0, 0xc0, 0xa8, 0x46, 0x71, 0xba, + 0x6d, 0x72, 0x69, 0x71, 0x49, 0x7e, 0x6e, 0x6a, 0x51, 0xb1, 0xbe, 0x16, 0x24, 0x74, 0x40, 0x3a, + 0x8a, 0xf5, 0xb5, 0x6a, 0x9d, 0xae, 0x32, 0x72, 0xa9, 0x24, 0xe7, 0xe7, 0x12, 0x74, 0xa0, 0x93, + 0x28, 0xba, 0x37, 0x03, 0x40, 0x81, 0x17, 0xc0, 0x18, 0xe5, 0x01, 0xd5, 0x9a, 0x9e, 0x9f, 0x93, + 0x98, 0x97, 0xae, 0x97, 0x5f, 0x94, 0xae, 0x9f, 0x9e, 0x9a, 0x07, 0x0e, 0x5a, 0x58, 0x04, 0x15, + 0x64, 0x16, 0xe3, 0x4e, 0x0c, 0xd6, 0x30, 0xc6, 0x22, 0x26, 0x66, 0x77, 0x47, 0xc7, 0x55, 0x4c, + 0x0a, 0xee, 0x10, 0x03, 0x1d, 0x53, 0x8a, 0xf5, 0x20, 0x4c, 0x10, 0x2b, 0xcc, 0x40, 0x0f, 0x6a, + 0x71, 0xf1, 0x29, 0x98, 0x92, 0x18, 0xc7, 0x94, 0xe2, 0x18, 0xb8, 0x92, 0x98, 0x30, 0x83, 0x18, + 0x98, 0x92, 0x24, 0x36, 0xb0, 0x03, 0x8c, 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0x1b, 0xf5, 0x4c, + 0x33, 0x8c, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/user_interest_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/user_interest_service.pb.go new file mode 100644 index 000000000..7adfa639e --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/user_interest_service.pb.go @@ -0,0 +1,174 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/user_interest_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [UserInterestService.GetUserInterest][google.ads.googleads.v0.services.UserInterestService.GetUserInterest]. +type GetUserInterestRequest struct { + // Resource name of the UserInterest to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetUserInterestRequest) Reset() { *m = GetUserInterestRequest{} } +func (m *GetUserInterestRequest) String() string { return proto.CompactTextString(m) } +func (*GetUserInterestRequest) ProtoMessage() {} +func (*GetUserInterestRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_user_interest_service_6325edec6159d584, []int{0} +} +func (m *GetUserInterestRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetUserInterestRequest.Unmarshal(m, b) +} +func (m *GetUserInterestRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetUserInterestRequest.Marshal(b, m, deterministic) +} +func (dst *GetUserInterestRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetUserInterestRequest.Merge(dst, src) +} +func (m *GetUserInterestRequest) XXX_Size() int { + return xxx_messageInfo_GetUserInterestRequest.Size(m) +} +func (m *GetUserInterestRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetUserInterestRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetUserInterestRequest proto.InternalMessageInfo + +func (m *GetUserInterestRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetUserInterestRequest)(nil), "google.ads.googleads.v0.services.GetUserInterestRequest") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// UserInterestServiceClient is the client API for UserInterestService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type UserInterestServiceClient interface { + // Returns the requested user interest in full detail + GetUserInterest(ctx context.Context, in *GetUserInterestRequest, opts ...grpc.CallOption) (*resources.UserInterest, error) +} + +type userInterestServiceClient struct { + cc *grpc.ClientConn +} + +func NewUserInterestServiceClient(cc *grpc.ClientConn) UserInterestServiceClient { + return &userInterestServiceClient{cc} +} + +func (c *userInterestServiceClient) GetUserInterest(ctx context.Context, in *GetUserInterestRequest, opts ...grpc.CallOption) (*resources.UserInterest, error) { + out := new(resources.UserInterest) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.UserInterestService/GetUserInterest", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// UserInterestServiceServer is the server API for UserInterestService service. +type UserInterestServiceServer interface { + // Returns the requested user interest in full detail + GetUserInterest(context.Context, *GetUserInterestRequest) (*resources.UserInterest, error) +} + +func RegisterUserInterestServiceServer(s *grpc.Server, srv UserInterestServiceServer) { + s.RegisterService(&_UserInterestService_serviceDesc, srv) +} + +func _UserInterestService_GetUserInterest_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetUserInterestRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserInterestServiceServer).GetUserInterest(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.UserInterestService/GetUserInterest", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserInterestServiceServer).GetUserInterest(ctx, req.(*GetUserInterestRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _UserInterestService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.UserInterestService", + HandlerType: (*UserInterestServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetUserInterest", + Handler: _UserInterestService_GetUserInterest_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/user_interest_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/user_interest_service.proto", fileDescriptor_user_interest_service_6325edec6159d584) +} + +var fileDescriptor_user_interest_service_6325edec6159d584 = []byte{ + // 344 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x92, 0xb1, 0x4a, 0xc3, 0x40, + 0x18, 0xc7, 0x49, 0x05, 0xc1, 0x43, 0x11, 0x22, 0x48, 0x29, 0x0e, 0xa5, 0x3a, 0x48, 0x87, 0xbb, + 0xa8, 0x88, 0x82, 0x76, 0x48, 0x97, 0xea, 0x22, 0xa5, 0x62, 0x07, 0x09, 0x94, 0xb3, 0xf9, 0x38, + 0x02, 0xcd, 0x5d, 0xbd, 0xef, 0xd2, 0x45, 0x5c, 0x7c, 0x05, 0xdf, 0xc0, 0xd1, 0xdd, 0x97, 0x10, + 0x9c, 0x5c, 0x7c, 0x00, 0x1f, 0x44, 0xd2, 0xcb, 0x95, 0xaa, 0x0d, 0xdd, 0xfe, 0x5c, 0xbe, 0xdf, + 0xff, 0xbe, 0xff, 0x3f, 0x47, 0xce, 0x85, 0x52, 0x62, 0x04, 0x8c, 0xc7, 0xc8, 0xac, 0xcc, 0xd5, + 0x24, 0x60, 0x08, 0x7a, 0x92, 0x0c, 0x01, 0x59, 0x86, 0xa0, 0x07, 0x89, 0x34, 0xa0, 0x01, 0xcd, + 0xa0, 0x38, 0xa6, 0x63, 0xad, 0x8c, 0xf2, 0xeb, 0x16, 0xa1, 0x3c, 0x46, 0x3a, 0xa3, 0xe9, 0x24, + 0xa0, 0x8e, 0xae, 0x1d, 0x97, 0xf9, 0x6b, 0x40, 0x95, 0xe9, 0x7f, 0x17, 0x58, 0xe3, 0xda, 0x8e, + 0xc3, 0xc6, 0x09, 0xe3, 0x52, 0x2a, 0xc3, 0x4d, 0xa2, 0x24, 0xda, 0xaf, 0x8d, 0x16, 0xd9, 0xee, + 0x80, 0xb9, 0x41, 0xd0, 0x97, 0x05, 0xd6, 0x83, 0xfb, 0x0c, 0xd0, 0xf8, 0xbb, 0x64, 0xc3, 0x19, + 0x0f, 0x24, 0x4f, 0xa1, 0xea, 0xd5, 0xbd, 0xfd, 0xb5, 0xde, 0xba, 0x3b, 0xbc, 0xe2, 0x29, 0x1c, + 0x7e, 0x78, 0x64, 0x6b, 0x1e, 0xbe, 0xb6, 0xcb, 0xfa, 0x6f, 0x1e, 0xd9, 0xfc, 0xe3, 0xeb, 0x9f, + 0xd2, 0x65, 0x11, 0xe9, 0xe2, 0x55, 0x6a, 0xac, 0x94, 0x9c, 0x45, 0xa7, 0xf3, 0x5c, 0xe3, 0xe4, + 0xe9, 0xf3, 0xfb, 0xb9, 0x72, 0xe0, 0xb3, 0xbc, 0x9e, 0x87, 0x5f, 0x31, 0x5a, 0xc3, 0x0c, 0x8d, + 0x4a, 0x41, 0x23, 0x6b, 0x4e, 0xfb, 0x72, 0x10, 0xb2, 0xe6, 0x63, 0xfb, 0xcb, 0x23, 0x7b, 0x43, + 0x95, 0x2e, 0xdd, 0xb4, 0x5d, 0x5d, 0x90, 0xba, 0x9b, 0x37, 0xda, 0xf5, 0x6e, 0x2f, 0x0a, 0x5a, + 0xa8, 0x11, 0x97, 0x82, 0x2a, 0x2d, 0x98, 0x00, 0x39, 0xed, 0xdb, 0xfd, 0xb8, 0x71, 0x82, 0xe5, + 0xef, 0xe4, 0xcc, 0x89, 0x97, 0xca, 0x4a, 0x27, 0x0c, 0x5f, 0x2b, 0xf5, 0x8e, 0x35, 0x0c, 0x63, + 0xa4, 0x56, 0xe6, 0xaa, 0x1f, 0xd0, 0xe2, 0x62, 0x7c, 0x77, 0x23, 0x51, 0x18, 0x63, 0x34, 0x1b, + 0x89, 0xfa, 0x41, 0xe4, 0x46, 0xee, 0x56, 0xa7, 0x0b, 0x1c, 0xfd, 0x04, 0x00, 0x00, 0xff, 0xff, + 0xb7, 0x66, 0x2b, 0x2d, 0xa7, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/user_list_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/user_list_service.pb.go new file mode 100644 index 000000000..266f063a2 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/user_list_service.pb.go @@ -0,0 +1,544 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/user_list_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" +import field_mask "google.golang.org/genproto/protobuf/field_mask" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [UserListService.GetUserList][google.ads.googleads.v0.services.UserListService.GetUserList]. +type GetUserListRequest struct { + // The resource name of the user list to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetUserListRequest) Reset() { *m = GetUserListRequest{} } +func (m *GetUserListRequest) String() string { return proto.CompactTextString(m) } +func (*GetUserListRequest) ProtoMessage() {} +func (*GetUserListRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_user_list_service_a212d0fa5504c897, []int{0} +} +func (m *GetUserListRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetUserListRequest.Unmarshal(m, b) +} +func (m *GetUserListRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetUserListRequest.Marshal(b, m, deterministic) +} +func (dst *GetUserListRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetUserListRequest.Merge(dst, src) +} +func (m *GetUserListRequest) XXX_Size() int { + return xxx_messageInfo_GetUserListRequest.Size(m) +} +func (m *GetUserListRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetUserListRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetUserListRequest proto.InternalMessageInfo + +func (m *GetUserListRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +// Request message for [UserListService.MutateUserLists][google.ads.googleads.v0.services.UserListService.MutateUserLists]. +type MutateUserListsRequest struct { + // The ID of the customer whose user lists are being modified. + CustomerId string `protobuf:"bytes,1,opt,name=customer_id,json=customerId,proto3" json:"customer_id,omitempty"` + // The list of operations to perform on individual user lists. + Operations []*UserListOperation `protobuf:"bytes,2,rep,name=operations,proto3" json:"operations,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateUserListsRequest) Reset() { *m = MutateUserListsRequest{} } +func (m *MutateUserListsRequest) String() string { return proto.CompactTextString(m) } +func (*MutateUserListsRequest) ProtoMessage() {} +func (*MutateUserListsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_user_list_service_a212d0fa5504c897, []int{1} +} +func (m *MutateUserListsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateUserListsRequest.Unmarshal(m, b) +} +func (m *MutateUserListsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateUserListsRequest.Marshal(b, m, deterministic) +} +func (dst *MutateUserListsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateUserListsRequest.Merge(dst, src) +} +func (m *MutateUserListsRequest) XXX_Size() int { + return xxx_messageInfo_MutateUserListsRequest.Size(m) +} +func (m *MutateUserListsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_MutateUserListsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateUserListsRequest proto.InternalMessageInfo + +func (m *MutateUserListsRequest) GetCustomerId() string { + if m != nil { + return m.CustomerId + } + return "" +} + +func (m *MutateUserListsRequest) GetOperations() []*UserListOperation { + if m != nil { + return m.Operations + } + return nil +} + +// A single operation (create, update) on a user list. +type UserListOperation struct { + // FieldMask that determines which resource fields are modified in an update. + UpdateMask *field_mask.FieldMask `protobuf:"bytes,4,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // The mutate operation. + // + // Types that are valid to be assigned to Operation: + // *UserListOperation_Create + // *UserListOperation_Update + // *UserListOperation_Remove + Operation isUserListOperation_Operation `protobuf_oneof:"operation"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UserListOperation) Reset() { *m = UserListOperation{} } +func (m *UserListOperation) String() string { return proto.CompactTextString(m) } +func (*UserListOperation) ProtoMessage() {} +func (*UserListOperation) Descriptor() ([]byte, []int) { + return fileDescriptor_user_list_service_a212d0fa5504c897, []int{2} +} +func (m *UserListOperation) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserListOperation.Unmarshal(m, b) +} +func (m *UserListOperation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserListOperation.Marshal(b, m, deterministic) +} +func (dst *UserListOperation) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserListOperation.Merge(dst, src) +} +func (m *UserListOperation) XXX_Size() int { + return xxx_messageInfo_UserListOperation.Size(m) +} +func (m *UserListOperation) XXX_DiscardUnknown() { + xxx_messageInfo_UserListOperation.DiscardUnknown(m) +} + +var xxx_messageInfo_UserListOperation proto.InternalMessageInfo + +func (m *UserListOperation) GetUpdateMask() *field_mask.FieldMask { + if m != nil { + return m.UpdateMask + } + return nil +} + +type isUserListOperation_Operation interface { + isUserListOperation_Operation() +} + +type UserListOperation_Create struct { + Create *resources.UserList `protobuf:"bytes,1,opt,name=create,proto3,oneof"` +} + +type UserListOperation_Update struct { + Update *resources.UserList `protobuf:"bytes,2,opt,name=update,proto3,oneof"` +} + +type UserListOperation_Remove struct { + Remove string `protobuf:"bytes,3,opt,name=remove,proto3,oneof"` +} + +func (*UserListOperation_Create) isUserListOperation_Operation() {} + +func (*UserListOperation_Update) isUserListOperation_Operation() {} + +func (*UserListOperation_Remove) isUserListOperation_Operation() {} + +func (m *UserListOperation) GetOperation() isUserListOperation_Operation { + if m != nil { + return m.Operation + } + return nil +} + +func (m *UserListOperation) GetCreate() *resources.UserList { + if x, ok := m.GetOperation().(*UserListOperation_Create); ok { + return x.Create + } + return nil +} + +func (m *UserListOperation) GetUpdate() *resources.UserList { + if x, ok := m.GetOperation().(*UserListOperation_Update); ok { + return x.Update + } + return nil +} + +func (m *UserListOperation) GetRemove() string { + if x, ok := m.GetOperation().(*UserListOperation_Remove); ok { + return x.Remove + } + return "" +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*UserListOperation) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _UserListOperation_OneofMarshaler, _UserListOperation_OneofUnmarshaler, _UserListOperation_OneofSizer, []interface{}{ + (*UserListOperation_Create)(nil), + (*UserListOperation_Update)(nil), + (*UserListOperation_Remove)(nil), + } +} + +func _UserListOperation_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*UserListOperation) + // operation + switch x := m.Operation.(type) { + case *UserListOperation_Create: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Create); err != nil { + return err + } + case *UserListOperation_Update: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Update); err != nil { + return err + } + case *UserListOperation_Remove: + b.EncodeVarint(3<<3 | proto.WireBytes) + b.EncodeStringBytes(x.Remove) + case nil: + default: + return fmt.Errorf("UserListOperation.Operation has unexpected type %T", x) + } + return nil +} + +func _UserListOperation_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*UserListOperation) + switch tag { + case 1: // operation.create + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.UserList) + err := b.DecodeMessage(msg) + m.Operation = &UserListOperation_Create{msg} + return true, err + case 2: // operation.update + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(resources.UserList) + err := b.DecodeMessage(msg) + m.Operation = &UserListOperation_Update{msg} + return true, err + case 3: // operation.remove + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Operation = &UserListOperation_Remove{x} + return true, err + default: + return false, nil + } +} + +func _UserListOperation_OneofSizer(msg proto.Message) (n int) { + m := msg.(*UserListOperation) + // operation + switch x := m.Operation.(type) { + case *UserListOperation_Create: + s := proto.Size(x.Create) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *UserListOperation_Update: + s := proto.Size(x.Update) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *UserListOperation_Remove: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(len(x.Remove))) + n += len(x.Remove) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// Response message for user list mutate. +type MutateUserListsResponse struct { + // All results for the mutate. + Results []*MutateUserListResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateUserListsResponse) Reset() { *m = MutateUserListsResponse{} } +func (m *MutateUserListsResponse) String() string { return proto.CompactTextString(m) } +func (*MutateUserListsResponse) ProtoMessage() {} +func (*MutateUserListsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_user_list_service_a212d0fa5504c897, []int{3} +} +func (m *MutateUserListsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateUserListsResponse.Unmarshal(m, b) +} +func (m *MutateUserListsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateUserListsResponse.Marshal(b, m, deterministic) +} +func (dst *MutateUserListsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateUserListsResponse.Merge(dst, src) +} +func (m *MutateUserListsResponse) XXX_Size() int { + return xxx_messageInfo_MutateUserListsResponse.Size(m) +} +func (m *MutateUserListsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MutateUserListsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateUserListsResponse proto.InternalMessageInfo + +func (m *MutateUserListsResponse) GetResults() []*MutateUserListResult { + if m != nil { + return m.Results + } + return nil +} + +// The result for the user list mutate. +type MutateUserListResult struct { + // Returned for successful operations. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MutateUserListResult) Reset() { *m = MutateUserListResult{} } +func (m *MutateUserListResult) String() string { return proto.CompactTextString(m) } +func (*MutateUserListResult) ProtoMessage() {} +func (*MutateUserListResult) Descriptor() ([]byte, []int) { + return fileDescriptor_user_list_service_a212d0fa5504c897, []int{4} +} +func (m *MutateUserListResult) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MutateUserListResult.Unmarshal(m, b) +} +func (m *MutateUserListResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MutateUserListResult.Marshal(b, m, deterministic) +} +func (dst *MutateUserListResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_MutateUserListResult.Merge(dst, src) +} +func (m *MutateUserListResult) XXX_Size() int { + return xxx_messageInfo_MutateUserListResult.Size(m) +} +func (m *MutateUserListResult) XXX_DiscardUnknown() { + xxx_messageInfo_MutateUserListResult.DiscardUnknown(m) +} + +var xxx_messageInfo_MutateUserListResult proto.InternalMessageInfo + +func (m *MutateUserListResult) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetUserListRequest)(nil), "google.ads.googleads.v0.services.GetUserListRequest") + proto.RegisterType((*MutateUserListsRequest)(nil), "google.ads.googleads.v0.services.MutateUserListsRequest") + proto.RegisterType((*UserListOperation)(nil), "google.ads.googleads.v0.services.UserListOperation") + proto.RegisterType((*MutateUserListsResponse)(nil), "google.ads.googleads.v0.services.MutateUserListsResponse") + proto.RegisterType((*MutateUserListResult)(nil), "google.ads.googleads.v0.services.MutateUserListResult") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// UserListServiceClient is the client API for UserListService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type UserListServiceClient interface { + // Returns the requested user list. + GetUserList(ctx context.Context, in *GetUserListRequest, opts ...grpc.CallOption) (*resources.UserList, error) + // Creates or updates user lists. Operation statuses are returned. + MutateUserLists(ctx context.Context, in *MutateUserListsRequest, opts ...grpc.CallOption) (*MutateUserListsResponse, error) +} + +type userListServiceClient struct { + cc *grpc.ClientConn +} + +func NewUserListServiceClient(cc *grpc.ClientConn) UserListServiceClient { + return &userListServiceClient{cc} +} + +func (c *userListServiceClient) GetUserList(ctx context.Context, in *GetUserListRequest, opts ...grpc.CallOption) (*resources.UserList, error) { + out := new(resources.UserList) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.UserListService/GetUserList", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *userListServiceClient) MutateUserLists(ctx context.Context, in *MutateUserListsRequest, opts ...grpc.CallOption) (*MutateUserListsResponse, error) { + out := new(MutateUserListsResponse) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.UserListService/MutateUserLists", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// UserListServiceServer is the server API for UserListService service. +type UserListServiceServer interface { + // Returns the requested user list. + GetUserList(context.Context, *GetUserListRequest) (*resources.UserList, error) + // Creates or updates user lists. Operation statuses are returned. + MutateUserLists(context.Context, *MutateUserListsRequest) (*MutateUserListsResponse, error) +} + +func RegisterUserListServiceServer(s *grpc.Server, srv UserListServiceServer) { + s.RegisterService(&_UserListService_serviceDesc, srv) +} + +func _UserListService_GetUserList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetUserListRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserListServiceServer).GetUserList(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.UserListService/GetUserList", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserListServiceServer).GetUserList(ctx, req.(*GetUserListRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _UserListService_MutateUserLists_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MutateUserListsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserListServiceServer).MutateUserLists(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.UserListService/MutateUserLists", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserListServiceServer).MutateUserLists(ctx, req.(*MutateUserListsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _UserListService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.UserListService", + HandlerType: (*UserListServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetUserList", + Handler: _UserListService_GetUserList_Handler, + }, + { + MethodName: "MutateUserLists", + Handler: _UserListService_MutateUserLists_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/user_list_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/user_list_service.proto", fileDescriptor_user_list_service_a212d0fa5504c897) +} + +var fileDescriptor_user_list_service_a212d0fa5504c897 = []byte{ + // 592 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x54, 0x41, 0x8b, 0xd3, 0x4c, + 0x18, 0xfe, 0x92, 0xfd, 0xa8, 0xec, 0x44, 0x59, 0x1c, 0x16, 0x0d, 0x45, 0xb0, 0x44, 0x0f, 0xa5, + 0x8b, 0x93, 0xda, 0x8a, 0x6c, 0xb7, 0xec, 0xa1, 0x05, 0xed, 0x0a, 0xae, 0x96, 0x2c, 0xee, 0x41, + 0x0a, 0x65, 0xb6, 0x99, 0x0d, 0xa1, 0x4d, 0x26, 0xce, 0x3b, 0xe9, 0x65, 0xd9, 0x8b, 0xe0, 0xd5, + 0x8b, 0xff, 0x40, 0xf0, 0xe2, 0xbf, 0xf0, 0xea, 0x55, 0x7f, 0x82, 0x7f, 0x43, 0x90, 0x64, 0x32, + 0xdd, 0x76, 0x6b, 0xa9, 0xbb, 0xb7, 0x37, 0x93, 0xe7, 0x79, 0xde, 0x27, 0xcf, 0xbc, 0x6f, 0xd0, + 0x6e, 0xc0, 0x79, 0x30, 0x61, 0x2e, 0xf5, 0xc1, 0x55, 0x65, 0x56, 0x4d, 0xeb, 0x2e, 0x30, 0x31, + 0x0d, 0x47, 0x0c, 0xdc, 0x14, 0x98, 0x18, 0x4e, 0x42, 0x90, 0xc3, 0xe2, 0x88, 0x24, 0x82, 0x4b, + 0x8e, 0x2b, 0x0a, 0x4e, 0xa8, 0x0f, 0x64, 0xc6, 0x24, 0xd3, 0x3a, 0xd1, 0xcc, 0xf2, 0xe3, 0x55, + 0xda, 0x82, 0x01, 0x4f, 0xc5, 0x82, 0xb8, 0x12, 0x2d, 0xdf, 0xd3, 0x94, 0x24, 0x74, 0x69, 0x1c, + 0x73, 0x49, 0x65, 0xc8, 0x63, 0x28, 0xde, 0x16, 0x2d, 0xdd, 0xfc, 0xe9, 0x24, 0x3d, 0x75, 0x4f, + 0x43, 0x36, 0xf1, 0x87, 0x11, 0x85, 0xb1, 0x42, 0x38, 0x2d, 0x84, 0x7b, 0x4c, 0xbe, 0x01, 0x26, + 0x5e, 0x86, 0x20, 0x3d, 0xf6, 0x2e, 0x65, 0x20, 0xf1, 0x03, 0x74, 0x4b, 0xb7, 0x1c, 0xc6, 0x34, + 0x62, 0xb6, 0x51, 0x31, 0xaa, 0x9b, 0xde, 0x4d, 0x7d, 0xf8, 0x8a, 0x46, 0xcc, 0xf9, 0x68, 0xa0, + 0x3b, 0x87, 0xa9, 0xa4, 0x92, 0x69, 0x3a, 0x68, 0xfe, 0x7d, 0x64, 0x8d, 0x52, 0x90, 0x3c, 0x62, + 0x62, 0x18, 0xfa, 0x05, 0x1b, 0xe9, 0xa3, 0x17, 0x3e, 0x3e, 0x42, 0x88, 0x27, 0x4c, 0x28, 0xb3, + 0xb6, 0x59, 0xd9, 0xa8, 0x5a, 0x8d, 0x26, 0x59, 0x17, 0x10, 0xd1, 0x8d, 0x5e, 0x6b, 0xae, 0x37, + 0x27, 0xe3, 0x7c, 0x30, 0xd1, 0xed, 0x25, 0x04, 0x6e, 0x23, 0x2b, 0x4d, 0x7c, 0x2a, 0x59, 0xfe, + 0xd9, 0xf6, 0xff, 0x15, 0xa3, 0x6a, 0x35, 0xca, 0xba, 0x97, 0x4e, 0x86, 0x3c, 0xcf, 0x92, 0x39, + 0xa4, 0x30, 0xf6, 0x90, 0x82, 0x67, 0x35, 0x7e, 0x86, 0x4a, 0x23, 0xc1, 0xa8, 0x54, 0x09, 0x58, + 0x8d, 0x9d, 0x95, 0x1e, 0x67, 0x57, 0x34, 0x33, 0x79, 0xf0, 0x9f, 0x57, 0x90, 0x33, 0x19, 0x25, + 0x6a, 0x9b, 0xd7, 0x92, 0x51, 0x64, 0x6c, 0xa3, 0x92, 0x60, 0x11, 0x9f, 0x32, 0x7b, 0x23, 0x4b, + 0x34, 0x7b, 0xa3, 0x9e, 0xbb, 0x16, 0xda, 0x9c, 0x05, 0xe1, 0x8c, 0xd1, 0xdd, 0xa5, 0x7b, 0x81, + 0x84, 0xc7, 0xc0, 0x70, 0x1f, 0xdd, 0x10, 0x0c, 0xd2, 0x89, 0xd4, 0xa1, 0x3f, 0x5d, 0x1f, 0xfa, + 0xa2, 0x96, 0x97, 0xd3, 0x3d, 0x2d, 0xe3, 0xb4, 0xd1, 0xf6, 0xdf, 0x00, 0xff, 0x34, 0x42, 0x8d, + 0xdf, 0x26, 0xda, 0xd2, 0xbc, 0x23, 0xd5, 0x0f, 0x7f, 0x31, 0x90, 0x35, 0x37, 0x92, 0xf8, 0xc9, + 0x7a, 0x87, 0xcb, 0x13, 0x5c, 0xbe, 0x4a, 0xc2, 0x4e, 0xf3, 0xfd, 0x8f, 0x5f, 0x9f, 0xcc, 0x47, + 0x78, 0x27, 0xdb, 0xb5, 0xb3, 0x05, 0xdb, 0xfb, 0x7a, 0x68, 0xc1, 0xad, 0xe5, 0xcb, 0x97, 0xe7, + 0xe9, 0xd6, 0xce, 0xf1, 0x37, 0x03, 0x6d, 0x5d, 0x8a, 0x19, 0xef, 0x5e, 0x35, 0x4d, 0xbd, 0x31, + 0xe5, 0xd6, 0x35, 0x98, 0xea, 0x4e, 0x9d, 0x56, 0xee, 0xbe, 0xe9, 0x90, 0xcc, 0xfd, 0x85, 0xdd, + 0xb3, 0xb9, 0x0d, 0xdc, 0xaf, 0x9d, 0x5f, 0x98, 0xdf, 0x8b, 0x72, 0xa1, 0x3d, 0xa3, 0xd6, 0xfd, + 0x69, 0xa0, 0x87, 0x23, 0x1e, 0xad, 0xed, 0xdd, 0xdd, 0xbe, 0x74, 0x4b, 0xfd, 0x6c, 0x6d, 0xfa, + 0xc6, 0xdb, 0x83, 0x82, 0x19, 0xf0, 0x09, 0x8d, 0x03, 0xc2, 0x45, 0xe0, 0x06, 0x2c, 0xce, 0x97, + 0x4a, 0xff, 0xc1, 0x92, 0x10, 0x56, 0xff, 0x2c, 0xdb, 0xba, 0xf8, 0x6c, 0x6e, 0xf4, 0x3a, 0x9d, + 0xaf, 0x66, 0xa5, 0xa7, 0x04, 0x3b, 0x3e, 0x10, 0x55, 0x66, 0xd5, 0x71, 0x9d, 0x14, 0x8d, 0xe1, + 0xbb, 0x86, 0x0c, 0x3a, 0x3e, 0x0c, 0x66, 0x90, 0xc1, 0x71, 0x7d, 0xa0, 0x21, 0x27, 0xa5, 0xdc, + 0x40, 0xf3, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x4b, 0x04, 0x32, 0x1d, 0xac, 0x05, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/video_service.pb.go b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/video_service.pb.go new file mode 100644 index 000000000..9be3a9183 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/ads/googleads/v0/services/video_service.pb.go @@ -0,0 +1,173 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/ads/googleads/v0/services/video_service.proto + +package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources" +import _ "google.golang.org/genproto/googleapis/api/annotations" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Request message for [VideoService.GetVideo][google.ads.googleads.v0.services.VideoService.GetVideo]. +type GetVideoRequest struct { + // The resource name of the video to fetch. + ResourceName string `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetVideoRequest) Reset() { *m = GetVideoRequest{} } +func (m *GetVideoRequest) String() string { return proto.CompactTextString(m) } +func (*GetVideoRequest) ProtoMessage() {} +func (*GetVideoRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_video_service_d47f3795054be16f, []int{0} +} +func (m *GetVideoRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetVideoRequest.Unmarshal(m, b) +} +func (m *GetVideoRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetVideoRequest.Marshal(b, m, deterministic) +} +func (dst *GetVideoRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetVideoRequest.Merge(dst, src) +} +func (m *GetVideoRequest) XXX_Size() int { + return xxx_messageInfo_GetVideoRequest.Size(m) +} +func (m *GetVideoRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetVideoRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetVideoRequest proto.InternalMessageInfo + +func (m *GetVideoRequest) GetResourceName() string { + if m != nil { + return m.ResourceName + } + return "" +} + +func init() { + proto.RegisterType((*GetVideoRequest)(nil), "google.ads.googleads.v0.services.GetVideoRequest") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// VideoServiceClient is the client API for VideoService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type VideoServiceClient interface { + // Returns the requested video in full detail. + GetVideo(ctx context.Context, in *GetVideoRequest, opts ...grpc.CallOption) (*resources.Video, error) +} + +type videoServiceClient struct { + cc *grpc.ClientConn +} + +func NewVideoServiceClient(cc *grpc.ClientConn) VideoServiceClient { + return &videoServiceClient{cc} +} + +func (c *videoServiceClient) GetVideo(ctx context.Context, in *GetVideoRequest, opts ...grpc.CallOption) (*resources.Video, error) { + out := new(resources.Video) + err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.VideoService/GetVideo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// VideoServiceServer is the server API for VideoService service. +type VideoServiceServer interface { + // Returns the requested video in full detail. + GetVideo(context.Context, *GetVideoRequest) (*resources.Video, error) +} + +func RegisterVideoServiceServer(s *grpc.Server, srv VideoServiceServer) { + s.RegisterService(&_VideoService_serviceDesc, srv) +} + +func _VideoService_GetVideo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetVideoRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(VideoServiceServer).GetVideo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.ads.googleads.v0.services.VideoService/GetVideo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(VideoServiceServer).GetVideo(ctx, req.(*GetVideoRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _VideoService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.ads.googleads.v0.services.VideoService", + HandlerType: (*VideoServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetVideo", + Handler: _VideoService_GetVideo_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/ads/googleads/v0/services/video_service.proto", +} + +func init() { + proto.RegisterFile("google/ads/googleads/v0/services/video_service.proto", fileDescriptor_video_service_d47f3795054be16f) +} + +var fileDescriptor_video_service_d47f3795054be16f = []byte{ + // 329 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x32, 0x49, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0x4c, 0x29, 0xd6, 0x87, 0x30, 0x41, 0xac, 0x32, 0x03, 0xfd, 0xe2, 0xd4, + 0xa2, 0xb2, 0xcc, 0xe4, 0xd4, 0x62, 0xfd, 0xb2, 0xcc, 0x94, 0xd4, 0xfc, 0x78, 0x28, 0x57, 0xaf, + 0xa0, 0x28, 0xbf, 0x24, 0x5f, 0x48, 0x01, 0xa2, 0x54, 0x2f, 0x31, 0xa5, 0x58, 0x0f, 0xae, 0x4b, + 0xaf, 0xcc, 0x40, 0x0f, 0xa6, 0x4b, 0x4a, 0x17, 0x97, 0xb9, 0x45, 0xa9, 0xc5, 0xf9, 0xa5, 0x45, + 0x70, 0x83, 0x21, 0x06, 0x4a, 0xc9, 0xc0, 0x94, 0x17, 0x64, 0xea, 0x27, 0xe6, 0xe5, 0xe5, 0x97, + 0x24, 0x96, 0x64, 0xe6, 0xe7, 0x15, 0x43, 0x64, 0x95, 0xcc, 0xb8, 0xf8, 0xdd, 0x53, 0x4b, 0xc2, + 0x40, 0xea, 0x83, 0x52, 0x0b, 0x4b, 0x53, 0x8b, 0x4b, 0x84, 0x94, 0xb9, 0x78, 0x61, 0x26, 0xc5, + 0xe7, 0x25, 0xe6, 0xa6, 0x4a, 0x30, 0x2a, 0x30, 0x6a, 0x70, 0x06, 0xf1, 0xc0, 0x04, 0xfd, 0x12, + 0x73, 0x53, 0x8d, 0x56, 0x31, 0x72, 0xf1, 0x80, 0x75, 0x05, 0x43, 0x9c, 0x25, 0x34, 0x93, 0x91, + 0x8b, 0x03, 0x66, 0x92, 0x90, 0xa1, 0x1e, 0x21, 0x5f, 0xe8, 0xa1, 0xd9, 0x2a, 0xa5, 0x81, 0x53, + 0x0b, 0xdc, 0x5b, 0x7a, 0x60, 0x0d, 0x4a, 0x06, 0x4d, 0x97, 0x9f, 0x4c, 0x66, 0xd2, 0x12, 0xd2, + 0x00, 0xf9, 0xb9, 0x1a, 0xc5, 0xa9, 0xb6, 0xc9, 0xa5, 0xc5, 0x25, 0xf9, 0xb9, 0xa9, 0x45, 0xc5, + 0xfa, 0x5a, 0x90, 0x40, 0x28, 0xd6, 0xd7, 0xaa, 0x75, 0xba, 0xc8, 0xc8, 0xa5, 0x92, 0x9c, 0x9f, + 0x4b, 0xd0, 0x51, 0x4e, 0x82, 0xc8, 0x5e, 0x0a, 0x00, 0x05, 0x50, 0x00, 0x63, 0x94, 0x07, 0x54, + 0x5b, 0x7a, 0x7e, 0x4e, 0x62, 0x5e, 0xba, 0x5e, 0x7e, 0x51, 0xba, 0x7e, 0x7a, 0x6a, 0x1e, 0x38, + 0xf8, 0x60, 0xe1, 0x5f, 0x90, 0x59, 0x8c, 0x3b, 0x9a, 0xad, 0x61, 0x8c, 0x45, 0x4c, 0xcc, 0xee, + 0x8e, 0x8e, 0xab, 0x98, 0x14, 0xdc, 0x21, 0x06, 0x3a, 0xa6, 0x14, 0xeb, 0x41, 0x98, 0x20, 0x56, + 0x98, 0x81, 0x1e, 0xd4, 0xe2, 0xe2, 0x53, 0x30, 0x25, 0x31, 0x8e, 0x29, 0xc5, 0x31, 0x70, 0x25, + 0x31, 0x61, 0x06, 0x31, 0x30, 0x25, 0x49, 0x6c, 0x60, 0x07, 0x18, 0x03, 0x02, 0x00, 0x00, 0xff, + 0xff, 0x65, 0xf7, 0xe3, 0xdd, 0x66, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/api/servicecontrol/v1/check_error.pb.go b/vendor/google.golang.org/genproto/googleapis/api/servicecontrol/v1/check_error.pb.go index dcb474ecd..4af000b78 100644 --- a/vendor/google.golang.org/genproto/googleapis/api/servicecontrol/v1/check_error.pb.go +++ b/vendor/google.golang.org/genproto/googleapis/api/servicecontrol/v1/check_error.pb.go @@ -50,6 +50,9 @@ const ( // The client application of the consumer request is invalid for the // specific consumer project. CheckError_CLIENT_APP_BLOCKED CheckError_Code = 111 + // The API targeted by this request is invalid for the specified consumer + // project. + CheckError_API_TARGET_BLOCKED CheckError_Code = 122 // The consumer's API key is invalid. CheckError_API_KEY_INVALID CheckError_Code = 105 // The consumer's API Key has expired. @@ -76,6 +79,7 @@ var CheckError_Code_name = map[int32]string{ 109: "IP_ADDRESS_BLOCKED", 110: "REFERER_BLOCKED", 111: "CLIENT_APP_BLOCKED", + 122: "API_TARGET_BLOCKED", 105: "API_KEY_INVALID", 112: "API_KEY_EXPIRED", 113: "API_KEY_NOT_FOUND", @@ -95,6 +99,7 @@ var CheckError_Code_value = map[string]int32{ "IP_ADDRESS_BLOCKED": 109, "REFERER_BLOCKED": 110, "CLIENT_APP_BLOCKED": 111, + "API_TARGET_BLOCKED": 122, "API_KEY_INVALID": 105, "API_KEY_EXPIRED": 112, "API_KEY_NOT_FOUND": 113, @@ -107,7 +112,7 @@ func (x CheckError_Code) String() string { return proto.EnumName(CheckError_Code_name, int32(x)) } func (CheckError_Code) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_check_error_1be1bde99e60d1aa, []int{0, 0} + return fileDescriptor_check_error_13686b1a5f512ccf, []int{0, 0} } // Defines the errors to be returned in @@ -126,7 +131,7 @@ func (m *CheckError) Reset() { *m = CheckError{} } func (m *CheckError) String() string { return proto.CompactTextString(m) } func (*CheckError) ProtoMessage() {} func (*CheckError) Descriptor() ([]byte, []int) { - return fileDescriptor_check_error_1be1bde99e60d1aa, []int{0} + return fileDescriptor_check_error_13686b1a5f512ccf, []int{0} } func (m *CheckError) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CheckError.Unmarshal(m, b) @@ -166,40 +171,40 @@ func init() { } func init() { - proto.RegisterFile("google/api/servicecontrol/v1/check_error.proto", fileDescriptor_check_error_1be1bde99e60d1aa) + proto.RegisterFile("google/api/servicecontrol/v1/check_error.proto", fileDescriptor_check_error_13686b1a5f512ccf) } -var fileDescriptor_check_error_1be1bde99e60d1aa = []byte{ - // 484 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x92, 0xdd, 0x6e, 0xd3, 0x3e, - 0x18, 0xc6, 0xff, 0xe9, 0xbf, 0x0c, 0x66, 0x09, 0x16, 0x0c, 0xab, 0x46, 0x55, 0x89, 0xb2, 0xa3, - 0x9d, 0x90, 0x68, 0x70, 0xc8, 0x91, 0x6b, 0xbf, 0x05, 0xaf, 0x59, 0x62, 0xd9, 0x49, 0x35, 0x38, - 0xb1, 0x42, 0x1a, 0x65, 0xd1, 0xba, 0xb8, 0xa4, 0x51, 0xaf, 0x80, 0x0b, 0xe0, 0x2a, 0x38, 0x02, - 0xae, 0x8f, 0x43, 0xe4, 0x76, 0xfd, 0x92, 0xa6, 0x1d, 0xfa, 0x79, 0x7f, 0xcf, 0x63, 0xbd, 0x1f, - 0xc8, 0x2b, 0x8c, 0x29, 0xa6, 0xb9, 0x9f, 0xce, 0x4a, 0x7f, 0x9e, 0xd7, 0x8b, 0x32, 0xcb, 0x33, - 0x53, 0x35, 0xb5, 0x99, 0xfa, 0x8b, 0x73, 0x3f, 0xbb, 0xce, 0xb3, 0x1b, 0x9d, 0xd7, 0xb5, 0xa9, - 0xbd, 0x59, 0x6d, 0x1a, 0x83, 0x7b, 0x2b, 0xde, 0x4b, 0x67, 0xa5, 0xb7, 0xcf, 0x7b, 0x8b, 0xf3, - 0x6e, 0x6f, 0x27, 0x2d, 0xad, 0x2a, 0xd3, 0xa4, 0x4d, 0x69, 0xaa, 0xf9, 0xca, 0x7b, 0xfa, 0xa3, - 0x8d, 0x10, 0xb5, 0x89, 0x60, 0x03, 0x31, 0x41, 0xed, 0xcc, 0x4c, 0xf2, 0x13, 0xa7, 0xef, 0x9c, - 0x3d, 0x7b, 0xf7, 0xd6, 0x7b, 0x28, 0xd9, 0xdb, 0xfa, 0x3c, 0x6a, 0x26, 0xb9, 0x5c, 0x5a, 0x71, - 0x07, 0x1d, 0x4c, 0xf2, 0x26, 0x2d, 0xa7, 0x27, 0xad, 0xbe, 0x73, 0x76, 0x28, 0xef, 0x5e, 0xa7, - 0x3f, 0xff, 0x47, 0x6d, 0x8b, 0xe1, 0x2e, 0xea, 0x80, 0x94, 0x91, 0xd4, 0x34, 0x62, 0xa0, 0x93, - 0x50, 0x09, 0xa0, 0x7c, 0xc8, 0x81, 0xb9, 0xff, 0xe1, 0xa7, 0xe8, 0x30, 0x8c, 0x62, 0x3d, 0x8c, - 0x92, 0x90, 0xb9, 0x8f, 0xf0, 0x31, 0x7a, 0x2e, 0x40, 0x5e, 0x72, 0xa5, 0x78, 0x14, 0x6a, 0x06, - 0xa1, 0xa5, 0x1e, 0xe3, 0x0e, 0xc2, 0x12, 0x54, 0x94, 0x48, 0x0a, 0x1a, 0xae, 0x3e, 0x91, 0x44, - 0xc5, 0xc0, 0xdc, 0x27, 0xf8, 0x15, 0x3a, 0x56, 0x20, 0xc7, 0x9c, 0x82, 0xb6, 0x29, 0x84, 0xc6, - 0x7c, 0x4c, 0x6c, 0xe9, 0x1a, 0xbf, 0x44, 0xee, 0x80, 0x07, 0x01, 0x0f, 0x3f, 0x6a, 0xc6, 0x15, - 0x19, 0x04, 0xc0, 0xdc, 0x1b, 0xfc, 0x02, 0x1d, 0x09, 0x19, 0x5d, 0x00, 0x8d, 0x35, 0x83, 0x00, - 0x2c, 0x3a, 0xdd, 0x15, 0x79, 0x38, 0x26, 0x01, 0x67, 0x6e, 0x6d, 0xbf, 0xe4, 0x42, 0x13, 0xc6, - 0x24, 0x28, 0xa5, 0x07, 0x41, 0x44, 0x47, 0xc0, 0xdc, 0x5b, 0x0b, 0x4b, 0x18, 0x82, 0x04, 0xb9, - 0x11, 0x2b, 0x0b, 0xd3, 0x80, 0x43, 0x18, 0x6b, 0x22, 0xc4, 0x46, 0x37, 0x16, 0x26, 0x82, 0xeb, - 0x11, 0x7c, 0xde, 0x24, 0x97, 0xbb, 0x22, 0x5c, 0x09, 0x2e, 0x81, 0xb9, 0x33, 0xdb, 0xf8, 0x5a, - 0xdc, 0xce, 0xe3, 0x1b, 0x7e, 0x83, 0x7a, 0x21, 0xb9, 0x04, 0x25, 0x08, 0x05, 0x1d, 0x44, 0xd1, - 0x28, 0x11, 0x3a, 0x09, 0xc9, 0x98, 0xf0, 0xc0, 0xb6, 0xe4, 0xfe, 0x6a, 0xe1, 0xd7, 0xa8, 0xbb, - 0x9e, 0x81, 0x8a, 0x49, 0x9c, 0xa8, 0x3d, 0xe0, 0xf7, 0x12, 0x58, 0x4f, 0xe2, 0x1e, 0xe0, 0x4f, - 0x6b, 0xf0, 0xdd, 0x41, 0xfd, 0xcc, 0xdc, 0x3e, 0xb8, 0xfb, 0xc1, 0xd1, 0x76, 0xf9, 0xc2, 0x1e, - 0x92, 0x70, 0xbe, 0x5c, 0xdc, 0x19, 0x0a, 0x33, 0x4d, 0xab, 0xc2, 0x33, 0x75, 0xe1, 0x17, 0x79, - 0xb5, 0x3c, 0x33, 0x7f, 0x55, 0x4a, 0x67, 0xe5, 0xfc, 0xfe, 0xab, 0xfe, 0xb0, 0xaf, 0xfc, 0x75, - 0x9c, 0xaf, 0x07, 0x4b, 0xe7, 0xfb, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x7d, 0x65, 0x26, 0xbf, - 0x0e, 0x03, 0x00, 0x00, +var fileDescriptor_check_error_13686b1a5f512ccf = []byte{ + // 493 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x92, 0x4f, 0x6f, 0xd3, 0x30, + 0x18, 0xc6, 0x49, 0x29, 0x83, 0x59, 0x82, 0x05, 0xc3, 0xaa, 0x51, 0x55, 0xa2, 0xec, 0xb4, 0x0b, + 0x89, 0x06, 0x47, 0x4e, 0xae, 0xfd, 0x76, 0x78, 0xcd, 0x12, 0xcb, 0x4e, 0xaa, 0xc1, 0xc5, 0x0a, + 0x69, 0x94, 0x45, 0xeb, 0xe2, 0x92, 0x56, 0x3d, 0x70, 0xe6, 0xc3, 0x70, 0x00, 0x3e, 0x02, 0x9f, + 0x8b, 0xe3, 0xe4, 0x76, 0xfd, 0x27, 0x4d, 0x3b, 0xe6, 0xe7, 0xdf, 0xfb, 0xbc, 0xca, 0xab, 0x07, + 0x79, 0x85, 0x31, 0xc5, 0x38, 0xf7, 0xd3, 0x49, 0xe9, 0x4f, 0xf3, 0x7a, 0x5e, 0x66, 0x79, 0x66, + 0xaa, 0x59, 0x6d, 0xc6, 0xfe, 0xfc, 0xd4, 0xcf, 0xae, 0xf2, 0xec, 0x5a, 0xe7, 0x75, 0x6d, 0x6a, + 0x6f, 0x52, 0x9b, 0x99, 0xc1, 0x9d, 0xa5, 0xef, 0xa5, 0x93, 0xd2, 0xdb, 0xf5, 0xbd, 0xf9, 0x69, + 0xbb, 0xb3, 0x95, 0x96, 0x56, 0x95, 0x99, 0xa5, 0xb3, 0xd2, 0x54, 0xd3, 0xe5, 0xec, 0xf1, 0xaf, + 0x26, 0x42, 0xd4, 0x26, 0x82, 0x0d, 0xc4, 0x04, 0x35, 0x33, 0x33, 0xca, 0x8f, 0x9c, 0xae, 0x73, + 0xf2, 0xe2, 0xc3, 0x7b, 0xef, 0xa1, 0x64, 0x6f, 0x33, 0xe7, 0x51, 0x33, 0xca, 0xe5, 0x62, 0x14, + 0xb7, 0xd0, 0xde, 0x28, 0x9f, 0xa5, 0xe5, 0xf8, 0xa8, 0xd1, 0x75, 0x4e, 0xf6, 0xe5, 0xdd, 0xd7, + 0xf1, 0xbf, 0xc7, 0xa8, 0x69, 0x35, 0xdc, 0x46, 0x2d, 0x90, 0x32, 0x92, 0x9a, 0x46, 0x0c, 0x74, + 0x12, 0x2a, 0x01, 0x94, 0xf7, 0x39, 0x30, 0xf7, 0x11, 0x7e, 0x8e, 0xf6, 0xc3, 0x28, 0xd6, 0xfd, + 0x28, 0x09, 0x99, 0xfb, 0x04, 0x1f, 0xa2, 0x97, 0x02, 0xe4, 0x05, 0x57, 0x8a, 0x47, 0xa1, 0x66, + 0x10, 0x5a, 0xeb, 0x29, 0x6e, 0x21, 0x2c, 0x41, 0x45, 0x89, 0xa4, 0xa0, 0xe1, 0xf2, 0x33, 0x49, + 0x54, 0x0c, 0xcc, 0x7d, 0x86, 0xdf, 0xa0, 0x43, 0x05, 0x72, 0xc8, 0x29, 0x68, 0x9b, 0x42, 0x68, + 0xcc, 0x87, 0xc4, 0x3e, 0x5d, 0xe1, 0xd7, 0xc8, 0xed, 0xf1, 0x20, 0xe0, 0xe1, 0x99, 0x66, 0x5c, + 0x91, 0x5e, 0x00, 0xcc, 0xbd, 0xc6, 0xaf, 0xd0, 0x81, 0x90, 0xd1, 0x39, 0xd0, 0x58, 0x33, 0x08, + 0xc0, 0xaa, 0xe3, 0x6d, 0xc8, 0xc3, 0x21, 0x09, 0x38, 0x73, 0x6b, 0xbb, 0x92, 0x0b, 0x4d, 0x18, + 0x93, 0xa0, 0x94, 0xee, 0x05, 0x11, 0x1d, 0x00, 0x73, 0x6f, 0xac, 0x2c, 0xa1, 0x0f, 0x12, 0xe4, + 0x1a, 0x56, 0x56, 0xa6, 0x01, 0x87, 0x30, 0xd6, 0x44, 0x88, 0x35, 0x37, 0x96, 0x13, 0xc1, 0x75, + 0x4c, 0xe4, 0x19, 0xc4, 0x6b, 0xfe, 0xc3, 0x86, 0x58, 0x3e, 0x80, 0x2f, 0xeb, 0x8d, 0xe5, 0x36, + 0x84, 0x4b, 0xc1, 0x25, 0x30, 0x77, 0x62, 0x0f, 0xb2, 0x82, 0x9b, 0x3b, 0x7d, 0xc7, 0xef, 0x50, + 0x27, 0x24, 0x17, 0xa0, 0x04, 0xa1, 0xa0, 0x83, 0x28, 0x1a, 0x24, 0x42, 0x27, 0x21, 0x19, 0x12, + 0x1e, 0xd8, 0x5f, 0x75, 0x7f, 0x37, 0xf0, 0x5b, 0xd4, 0x5e, 0xdd, 0x46, 0xc5, 0x24, 0x4e, 0xd4, + 0x8e, 0xf0, 0x67, 0x21, 0xac, 0x2e, 0x74, 0x8f, 0xf0, 0xb7, 0xd1, 0xfb, 0xe9, 0xa0, 0x6e, 0x66, + 0x6e, 0x1e, 0xec, 0x44, 0xef, 0x60, 0x53, 0x0a, 0x61, 0x0b, 0x26, 0x9c, 0xaf, 0xe7, 0x77, 0x03, + 0x85, 0x19, 0xa7, 0x55, 0xe1, 0x99, 0xba, 0xf0, 0x8b, 0xbc, 0x5a, 0xd4, 0xcf, 0x5f, 0x3e, 0xa5, + 0x93, 0x72, 0x7a, 0x7f, 0xdb, 0x3f, 0xed, 0x92, 0xff, 0x8e, 0xf3, 0x6d, 0x6f, 0x31, 0xf9, 0xf1, + 0x36, 0x00, 0x00, 0xff, 0xff, 0x40, 0xf4, 0xc8, 0x44, 0x26, 0x03, 0x00, 0x00, } diff --git a/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/annotation_payload.pb.go b/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/annotation_payload.pb.go index e77aa2963..09cd6f59f 100644 --- a/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/annotation_payload.pb.go +++ b/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/annotation_payload.pb.go @@ -47,7 +47,7 @@ func (m *AnnotationPayload) Reset() { *m = AnnotationPayload{} } func (m *AnnotationPayload) String() string { return proto.CompactTextString(m) } func (*AnnotationPayload) ProtoMessage() {} func (*AnnotationPayload) Descriptor() ([]byte, []int) { - return fileDescriptor_annotation_payload_ce47679ba5fa3ec6, []int{0} + return fileDescriptor_annotation_payload_f7dca833885c28d5, []int{0} } func (m *AnnotationPayload) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AnnotationPayload.Unmarshal(m, b) @@ -197,28 +197,29 @@ func init() { } func init() { - proto.RegisterFile("google/cloud/automl/v1beta1/annotation_payload.proto", fileDescriptor_annotation_payload_ce47679ba5fa3ec6) + proto.RegisterFile("google/cloud/automl/v1beta1/annotation_payload.proto", fileDescriptor_annotation_payload_f7dca833885c28d5) } -var fileDescriptor_annotation_payload_ce47679ba5fa3ec6 = []byte{ - // 297 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x91, 0x41, 0x4b, 0x33, 0x31, - 0x10, 0x86, 0xbf, 0xed, 0x87, 0x45, 0x53, 0x11, 0xdd, 0xd3, 0x52, 0x05, 0xab, 0xa7, 0x1e, 0x34, - 0xb1, 0x55, 0x4f, 0x9e, 0x5a, 0x2f, 0x7a, 0x91, 0x52, 0xc5, 0x83, 0x97, 0x65, 0x9a, 0xa4, 0x21, - 0x90, 0xcd, 0x84, 0x26, 0x15, 0xfa, 0x8b, 0xfc, 0x9b, 0x42, 0xb2, 0xd8, 0xad, 0xc8, 0x1e, 0x93, - 0x79, 0x9f, 0x67, 0x26, 0x19, 0x72, 0xa7, 0x10, 0x95, 0x91, 0x8c, 0x1b, 0x5c, 0x0b, 0x06, 0xeb, - 0x80, 0x95, 0x61, 0x9f, 0xa3, 0x85, 0x0c, 0x30, 0x62, 0x60, 0x2d, 0x06, 0x08, 0x1a, 0x6d, 0xe9, - 0x60, 0x63, 0x10, 0x04, 0x75, 0x2b, 0x0c, 0x98, 0x9f, 0x26, 0x8a, 0x46, 0x8a, 0x26, 0x8a, 0xd6, - 0x54, 0xff, 0xac, 0x56, 0x82, 0xd3, 0x0d, 0x83, 0x4f, 0x68, 0xff, 0xa6, 0xad, 0x21, 0x37, 0xe0, - 0xbd, 0x5e, 0x6a, 0x1e, 0x91, 0x9a, 0xb8, 0x6e, 0x23, 0xc2, 0x0a, 0xac, 0x37, 0x8d, 0xf8, 0xe5, - 0x57, 0x87, 0x9c, 0x4c, 0x7e, 0xda, 0xce, 0xd2, 0xdc, 0xf9, 0x3b, 0xe9, 0x35, 0xa2, 0x45, 0x67, - 0x90, 0x0d, 0x7b, 0xe3, 0x31, 0x6d, 0x79, 0x07, 0x7d, 0xdb, 0xe6, 0xb7, 0xbe, 0xa7, 0x7f, 0xf3, - 0xa6, 0x28, 0x2f, 0xc9, 0xd1, 0xee, 0xd0, 0xc5, 0xff, 0xa8, 0xbe, 0x6f, 0x55, 0x3f, 0xee, 0x20, - 0x3b, 0xf6, 0x5f, 0xba, 0xfc, 0x8a, 0xe4, 0x8d, 0x35, 0x78, 0x27, 0x79, 0xa9, 0x45, 0x91, 0x0d, - 0xb2, 0xe1, 0xc1, 0xfc, 0x78, 0x5b, 0x79, 0x75, 0x92, 0x3f, 0x8b, 0xfc, 0x82, 0x1c, 0x0a, 0xed, - 0x9d, 0x81, 0x4d, 0x69, 0xa1, 0x92, 0xc5, 0x5e, 0xcc, 0xf5, 0xea, 0xbb, 0x17, 0xa8, 0xe4, 0x74, - 0x9f, 0x74, 0x85, 0x0c, 0xa0, 0xcd, 0x74, 0x49, 0xce, 0x39, 0x56, 0x6d, 0x83, 0xce, 0xb2, 0x8f, - 0x49, 0x5d, 0x56, 0x68, 0xc0, 0x2a, 0x8a, 0x2b, 0xc5, 0x94, 0xb4, 0xf1, 0xab, 0x59, 0x2a, 0x81, - 0xd3, 0xfe, 0xcf, 0xe5, 0x3c, 0xa4, 0xe3, 0xa2, 0x1b, 0xd3, 0xb7, 0xdf, 0x01, 0x00, 0x00, 0xff, - 0xff, 0x44, 0x63, 0x2f, 0x26, 0x6c, 0x02, 0x00, 0x00, +var fileDescriptor_annotation_payload_f7dca833885c28d5 = []byte{ + // 320 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x91, 0x41, 0x4b, 0xc3, 0x30, + 0x14, 0xc7, 0xed, 0xc4, 0xa1, 0x99, 0x88, 0xf6, 0x54, 0x36, 0xc1, 0xe9, 0x69, 0x07, 0x4d, 0xdd, + 0xd4, 0x93, 0xa7, 0x6d, 0x07, 0xf5, 0xa0, 0x8c, 0x29, 0x3b, 0xc8, 0xa0, 0xbc, 0xb5, 0x31, 0x04, + 0xd2, 0xbc, 0xb0, 0x64, 0xc2, 0xee, 0x7e, 0x17, 0xbf, 0x8b, 0x9f, 0x4a, 0x4c, 0x8a, 0x6b, 0x45, + 0x7a, 0x4c, 0xde, 0xff, 0xf7, 0x7b, 0x2f, 0x79, 0xe4, 0x9a, 0x23, 0x72, 0xc9, 0xe2, 0x54, 0xe2, + 0x2a, 0x8b, 0x61, 0x65, 0x31, 0x97, 0xf1, 0x7b, 0x7f, 0xc1, 0x2c, 0xf4, 0x63, 0x50, 0x0a, 0x2d, + 0x58, 0x81, 0x2a, 0xd1, 0xb0, 0x96, 0x08, 0x19, 0xd5, 0x4b, 0xb4, 0x18, 0x76, 0x3c, 0x45, 0x1d, + 0x45, 0x3d, 0x45, 0x0b, 0xaa, 0x7d, 0x5c, 0x28, 0x41, 0x8b, 0x92, 0xc1, 0x78, 0xb4, 0x7d, 0x59, + 0xd7, 0x30, 0x95, 0x60, 0x8c, 0x78, 0x13, 0xa9, 0x43, 0x0a, 0xe2, 0xa2, 0x8e, 0xb0, 0x4b, 0x50, + 0x46, 0x96, 0xe2, 0x67, 0x9f, 0x0d, 0x72, 0x34, 0xfc, 0x6d, 0x3b, 0xf1, 0x73, 0x87, 0x33, 0xd2, + 0x2a, 0x45, 0xa3, 0x46, 0x37, 0xe8, 0xb5, 0x06, 0x03, 0x5a, 0xf3, 0x0e, 0xfa, 0xb2, 0xc9, 0x6f, + 0x7c, 0xf7, 0x5b, 0xd3, 0xb2, 0x28, 0x4c, 0xc8, 0x41, 0x75, 0xe8, 0x68, 0xdb, 0xa9, 0x6f, 0x6a, + 0xd5, 0xe3, 0x0a, 0x52, 0xb1, 0xff, 0xd1, 0x85, 0xe7, 0x24, 0x2c, 0xad, 0xc1, 0x68, 0x96, 0x26, + 0x22, 0x8b, 0x82, 0x6e, 0xd0, 0xdb, 0x9b, 0x1e, 0x6e, 0x2a, 0xcf, 0x9a, 0xa5, 0x0f, 0x59, 0x78, + 0x4a, 0xf6, 0x33, 0x61, 0xb4, 0x84, 0x75, 0xa2, 0x20, 0x67, 0xd1, 0x8e, 0xcb, 0xb5, 0x8a, 0xbb, + 0x27, 0xc8, 0xd9, 0x68, 0x97, 0x34, 0x33, 0x66, 0x41, 0xc8, 0xd1, 0x47, 0x40, 0x4e, 0x52, 0xcc, + 0xeb, 0x26, 0x9d, 0x04, 0xaf, 0xc3, 0xa2, 0xcc, 0x51, 0x82, 0xe2, 0x14, 0x97, 0x3c, 0xe6, 0x4c, + 0xb9, 0xbf, 0x8e, 0x7d, 0x09, 0xb4, 0x30, 0xff, 0x6e, 0xe7, 0xd6, 0x1f, 0xbf, 0x1a, 0x9d, 0x3b, + 0x17, 0x9c, 0x8f, 0x7f, 0x42, 0xf3, 0xe1, 0xca, 0xe2, 0xa3, 0x9c, 0xcf, 0x7c, 0x68, 0xd1, 0x74, + 0xae, 0xab, 0xef, 0x00, 0x00, 0x00, 0xff, 0xff, 0xd5, 0x18, 0x90, 0x9a, 0x8b, 0x02, 0x00, 0x00, } diff --git a/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/classification.pb.go b/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/classification.pb.go index 43f675869..1250405c0 100644 --- a/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/classification.pb.go +++ b/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/classification.pb.go @@ -46,7 +46,7 @@ func (x ClassificationType) String() string { return proto.EnumName(ClassificationType_name, int32(x)) } func (ClassificationType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_classification_e3eb78fdd10472f9, []int{0} + return fileDescriptor_classification_3fc2c485b21fa3e7, []int{0} } // Contains annotation details specific to classification. @@ -66,7 +66,7 @@ func (m *ClassificationAnnotation) Reset() { *m = ClassificationAnnotati func (m *ClassificationAnnotation) String() string { return proto.CompactTextString(m) } func (*ClassificationAnnotation) ProtoMessage() {} func (*ClassificationAnnotation) Descriptor() ([]byte, []int) { - return fileDescriptor_classification_e3eb78fdd10472f9, []int{0} + return fileDescriptor_classification_3fc2c485b21fa3e7, []int{0} } func (m *ClassificationAnnotation) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ClassificationAnnotation.Unmarshal(m, b) @@ -119,7 +119,7 @@ func (m *ClassificationEvaluationMetrics) Reset() { *m = ClassificationE func (m *ClassificationEvaluationMetrics) String() string { return proto.CompactTextString(m) } func (*ClassificationEvaluationMetrics) ProtoMessage() {} func (*ClassificationEvaluationMetrics) Descriptor() ([]byte, []int) { - return fileDescriptor_classification_e3eb78fdd10472f9, []int{1} + return fileDescriptor_classification_3fc2c485b21fa3e7, []int{1} } func (m *ClassificationEvaluationMetrics) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ClassificationEvaluationMetrics.Unmarshal(m, b) @@ -207,7 +207,7 @@ func (m *ClassificationEvaluationMetrics_ConfidenceMetricsEntry) String() string } func (*ClassificationEvaluationMetrics_ConfidenceMetricsEntry) ProtoMessage() {} func (*ClassificationEvaluationMetrics_ConfidenceMetricsEntry) Descriptor() ([]byte, []int) { - return fileDescriptor_classification_e3eb78fdd10472f9, []int{1, 0} + return fileDescriptor_classification_3fc2c485b21fa3e7, []int{1, 0} } func (m *ClassificationEvaluationMetrics_ConfidenceMetricsEntry) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ClassificationEvaluationMetrics_ConfidenceMetricsEntry.Unmarshal(m, b) @@ -299,7 +299,7 @@ func (m *ClassificationEvaluationMetrics_ConfusionMatrix) String() string { } func (*ClassificationEvaluationMetrics_ConfusionMatrix) ProtoMessage() {} func (*ClassificationEvaluationMetrics_ConfusionMatrix) Descriptor() ([]byte, []int) { - return fileDescriptor_classification_e3eb78fdd10472f9, []int{1, 1} + return fileDescriptor_classification_3fc2c485b21fa3e7, []int{1, 1} } func (m *ClassificationEvaluationMetrics_ConfusionMatrix) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ClassificationEvaluationMetrics_ConfusionMatrix.Unmarshal(m, b) @@ -352,7 +352,7 @@ func (m *ClassificationEvaluationMetrics_ConfusionMatrix_Row) String() string { } func (*ClassificationEvaluationMetrics_ConfusionMatrix_Row) ProtoMessage() {} func (*ClassificationEvaluationMetrics_ConfusionMatrix_Row) Descriptor() ([]byte, []int) { - return fileDescriptor_classification_e3eb78fdd10472f9, []int{1, 1, 0} + return fileDescriptor_classification_3fc2c485b21fa3e7, []int{1, 1, 0} } func (m *ClassificationEvaluationMetrics_ConfusionMatrix_Row) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ClassificationEvaluationMetrics_ConfusionMatrix_Row.Unmarshal(m, b) @@ -389,46 +389,47 @@ func init() { } func init() { - proto.RegisterFile("google/cloud/automl/v1beta1/classification.proto", fileDescriptor_classification_e3eb78fdd10472f9) + proto.RegisterFile("google/cloud/automl/v1beta1/classification.proto", fileDescriptor_classification_3fc2c485b21fa3e7) } -var fileDescriptor_classification_e3eb78fdd10472f9 = []byte{ - // 583 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x54, 0xcf, 0x4f, 0xdb, 0x3e, - 0x14, 0xff, 0xa6, 0xa5, 0xe5, 0xcb, 0x83, 0x8d, 0xca, 0x30, 0x94, 0x75, 0x6c, 0x54, 0x70, 0xa9, - 0xd0, 0x94, 0x10, 0x76, 0xdc, 0x29, 0x64, 0x45, 0x8a, 0x54, 0x58, 0x95, 0x94, 0x03, 0xbb, 0x58, - 0xae, 0xeb, 0x86, 0x48, 0x69, 0x1c, 0x39, 0x0e, 0x85, 0xeb, 0xee, 0xfb, 0xdb, 0xf6, 0x5f, 0xec, - 0xef, 0x98, 0x62, 0x87, 0x74, 0x95, 0x2a, 0x36, 0x69, 0xbb, 0xe5, 0x7d, 0x7e, 0xf9, 0x3d, 0xbf, - 0xc8, 0x70, 0x16, 0x71, 0x1e, 0x25, 0xcc, 0xa6, 0x09, 0x2f, 0xa6, 0x36, 0x29, 0x24, 0x9f, 0x27, - 0xf6, 0xbd, 0x33, 0x61, 0x92, 0x38, 0x36, 0x4d, 0x48, 0x9e, 0xc7, 0xb3, 0x98, 0x12, 0x19, 0xf3, - 0xd4, 0xca, 0x04, 0x97, 0x1c, 0xbd, 0xd1, 0x0e, 0x4b, 0x39, 0x2c, 0xed, 0xb0, 0x2a, 0x47, 0xf7, - 0xb0, 0x8a, 0x23, 0x59, 0x6c, 0x93, 0x34, 0xe5, 0x52, 0x39, 0x73, 0x6d, 0x3d, 0x3e, 0x03, 0xd3, - 0x5b, 0x89, 0x74, 0x6b, 0x09, 0xda, 0x87, 0x56, 0x4e, 0xb9, 0x60, 0xa6, 0xd1, 0x33, 0xfa, 0x8d, - 0x40, 0x17, 0xc7, 0x3f, 0xda, 0x70, 0xb4, 0x6a, 0x19, 0xdc, 0x93, 0xa4, 0x50, 0x5f, 0x57, 0x4c, - 0x8a, 0x98, 0xe6, 0xe8, 0x15, 0xb4, 0x49, 0x81, 0x33, 0x41, 0x9f, 0xac, 0xa4, 0x18, 0x09, 0x8a, - 0xde, 0xc1, 0xf6, 0x84, 0xe4, 0x0c, 0x57, 0x5c, 0x43, 0x71, 0x5b, 0x25, 0xe4, 0x2a, 0xfe, 0x9b, - 0x01, 0x26, 0xe5, 0xe9, 0x2c, 0x9e, 0xb2, 0x94, 0x32, 0x3c, 0xd7, 0x69, 0x98, 0xa5, 0x52, 0x3c, - 0x9a, 0xcd, 0x5e, 0xb3, 0xbf, 0x7d, 0x1e, 0x5a, 0xcf, 0xcc, 0x6a, 0xfd, 0xa6, 0x2f, 0xcb, 0xab, - 0xc3, 0x2b, 0x64, 0x50, 0x46, 0x07, 0x07, 0x74, 0x2d, 0x8e, 0x16, 0xd0, 0x29, 0x99, 0x22, 0x8f, - 0x79, 0x8a, 0xe7, 0x44, 0x8a, 0xf8, 0xc1, 0xdc, 0xe8, 0x19, 0xfd, 0xed, 0xf3, 0xe1, 0x5f, 0xb7, - 0xa1, 0x42, 0xaf, 0x54, 0x66, 0xb0, 0x4b, 0x57, 0x01, 0xf4, 0x1e, 0xd0, 0x72, 0x55, 0x38, 0xcf, - 0x18, 0xc5, 0xf1, 0xd4, 0x6c, 0xf5, 0x9a, 0xfd, 0xad, 0xa0, 0xb3, 0x64, 0xc2, 0x8c, 0x51, 0x7f, - 0xda, 0xfd, 0xda, 0x80, 0x83, 0xf5, 0x93, 0x21, 0x07, 0xf6, 0x7f, 0xb9, 0x50, 0x79, 0x27, 0x58, - 0x7e, 0xc7, 0x93, 0x69, 0xb5, 0x96, 0xbd, 0x25, 0x37, 0x7e, 0xa2, 0xd0, 0x01, 0xb4, 0x05, 0xa3, - 0x24, 0x49, 0xaa, 0xfd, 0x54, 0x15, 0x3a, 0x84, 0xad, 0x4c, 0x30, 0x1a, 0x97, 0x6d, 0x9a, 0x4d, - 0xbd, 0xba, 0x1a, 0x40, 0xaf, 0xe1, 0xff, 0x99, 0x83, 0xf5, 0xef, 0xb2, 0xa1, 0xc8, 0xcd, 0x99, - 0x13, 0x96, 0x25, 0x7a, 0x0b, 0xa0, 0x23, 0x30, 0x91, 0x8e, 0xd9, 0xd2, 0x4e, 0x8d, 0xb8, 0xd2, - 0x41, 0x27, 0xf0, 0xa2, 0x8e, 0x51, 0x8a, 0xb6, 0x52, 0xec, 0xd4, 0x60, 0x29, 0xea, 0xc1, 0xce, - 0x53, 0xbc, 0xd2, 0x6c, 0x2a, 0x0d, 0x54, 0x47, 0xb8, 0xd2, 0xe9, 0x7e, 0x37, 0x60, 0xd7, 0xfb, - 0xa3, 0x6b, 0x34, 0xd6, 0x5f, 0x23, 0x9a, 0x40, 0x53, 0xf0, 0x85, 0xd9, 0x50, 0xff, 0xd9, 0xe8, - 0x5f, 0x2e, 0xd8, 0x0a, 0xf8, 0x22, 0x28, 0xc3, 0xbb, 0xa7, 0xd0, 0x0c, 0xf8, 0xa2, 0x9c, 0x99, - 0x3d, 0x90, 0x79, 0x96, 0x30, 0x4c, 0x79, 0x91, 0x4a, 0xd5, 0x53, 0x2b, 0xd8, 0xa9, 0x40, 0xaf, - 0xc4, 0x4e, 0x6f, 0x01, 0xad, 0x9e, 0x33, 0x7e, 0xcc, 0x18, 0x3a, 0x81, 0x23, 0x6f, 0xe8, 0x86, - 0xa1, 0x7f, 0xe9, 0x7b, 0xee, 0xd8, 0xff, 0x7c, 0x8d, 0xc7, 0xb7, 0xa3, 0x01, 0xbe, 0xb9, 0x0e, - 0x47, 0x03, 0xcf, 0xbf, 0xf4, 0x07, 0x9f, 0x3a, 0xff, 0xa1, 0x97, 0x00, 0x57, 0x37, 0xc3, 0xb1, - 0xaf, 0x94, 0x1d, 0xa3, 0xae, 0x87, 0xee, 0xc5, 0x60, 0xd8, 0x69, 0x5c, 0x3c, 0xc2, 0x11, 0xe5, - 0xf3, 0xe7, 0x46, 0xbc, 0xd8, 0x5b, 0x3d, 0x7b, 0x54, 0xbe, 0x16, 0x5f, 0xdc, 0xca, 0x11, 0xf1, - 0x84, 0xa4, 0x91, 0xc5, 0x45, 0x64, 0x47, 0x2c, 0x55, 0x2f, 0x89, 0xad, 0x29, 0x92, 0xc5, 0xf9, - 0xda, 0x97, 0xeb, 0xa3, 0x2e, 0x27, 0x6d, 0xa5, 0xfe, 0xf0, 0x33, 0x00, 0x00, 0xff, 0xff, 0x22, - 0xd4, 0x8f, 0x68, 0xe6, 0x04, 0x00, 0x00, +var fileDescriptor_classification_3fc2c485b21fa3e7 = []byte{ + // 605 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x54, 0x4f, 0x4f, 0xdb, 0x30, + 0x14, 0x5f, 0x5a, 0x5a, 0xc6, 0x83, 0x8d, 0xca, 0x30, 0x94, 0x15, 0x36, 0x2a, 0xb8, 0x54, 0x68, + 0x4a, 0x08, 0x3b, 0xee, 0x14, 0xb2, 0x32, 0x45, 0x6a, 0x59, 0x95, 0x96, 0x49, 0x4c, 0x48, 0x96, + 0xeb, 0xba, 0x25, 0x52, 0x1a, 0x47, 0x8e, 0x43, 0xe1, 0xba, 0xfb, 0xce, 0xfb, 0x4e, 0xbb, 0xec, + 0x5b, 0xec, 0x73, 0x4c, 0xb1, 0x43, 0x58, 0xa5, 0x8a, 0x4d, 0xda, 0x6e, 0x79, 0xbf, 0x7f, 0x7e, + 0xcf, 0x2f, 0x32, 0x1c, 0x4f, 0x39, 0x9f, 0x46, 0xcc, 0xa6, 0x11, 0xcf, 0xc6, 0x36, 0xc9, 0x24, + 0x9f, 0x45, 0xf6, 0x8d, 0x33, 0x62, 0x92, 0x38, 0x36, 0x8d, 0x48, 0x9a, 0x86, 0x93, 0x90, 0x12, + 0x19, 0xf2, 0xd8, 0x4a, 0x04, 0x97, 0x1c, 0xed, 0x6a, 0x87, 0xa5, 0x1c, 0x96, 0x76, 0x58, 0x85, + 0xa3, 0xb9, 0x57, 0xc4, 0x91, 0x24, 0xb4, 0x49, 0x1c, 0x73, 0xa9, 0x9c, 0xa9, 0xb6, 0x1e, 0x1c, + 0x83, 0xe9, 0x2d, 0x44, 0xba, 0xa5, 0x04, 0x6d, 0x43, 0x2d, 0xa5, 0x5c, 0x30, 0xd3, 0x68, 0x19, + 0xed, 0x4a, 0xa0, 0x8b, 0x83, 0x9f, 0x75, 0xd8, 0x5f, 0xb4, 0x74, 0x6e, 0x48, 0x94, 0xa9, 0xaf, + 0x1e, 0x93, 0x22, 0xa4, 0x29, 0x7a, 0x01, 0x75, 0x92, 0xe1, 0x44, 0xd0, 0x7b, 0x2b, 0xc9, 0xfa, + 0x82, 0xa2, 0xd7, 0xb0, 0x3e, 0x22, 0x29, 0xc3, 0x05, 0x57, 0x51, 0xdc, 0x5a, 0x0e, 0xb9, 0x8a, + 0xff, 0x6a, 0x80, 0x49, 0x79, 0x3c, 0x09, 0xc7, 0x2c, 0xa6, 0x0c, 0xcf, 0x74, 0x1a, 0x66, 0xb1, + 0x14, 0x77, 0x66, 0xb5, 0x55, 0x6d, 0xaf, 0x9f, 0x0c, 0xac, 0x47, 0x66, 0xb5, 0xfe, 0xd0, 0x97, + 0xe5, 0x95, 0xe1, 0x05, 0xd2, 0xc9, 0xa3, 0x83, 0x1d, 0xba, 0x14, 0x47, 0x73, 0x68, 0xe4, 0x4c, + 0x96, 0x86, 0x3c, 0xc6, 0x33, 0x22, 0x45, 0x78, 0x6b, 0xae, 0xb4, 0x8c, 0xf6, 0xfa, 0x49, 0xf7, + 0x9f, 0xdb, 0x50, 0xa1, 0x3d, 0x95, 0x19, 0x6c, 0xd2, 0x45, 0x00, 0xbd, 0x01, 0xf4, 0xb0, 0x2a, + 0x9c, 0x26, 0x8c, 0xe2, 0x70, 0x6c, 0xd6, 0x5a, 0xd5, 0xf6, 0x5a, 0xd0, 0x78, 0x60, 0x06, 0x09, + 0xa3, 0xfe, 0xb8, 0xf9, 0xa5, 0x02, 0x3b, 0xcb, 0x27, 0x43, 0x0e, 0x6c, 0xff, 0x76, 0xa1, 0xf2, + 0x5a, 0xb0, 0xf4, 0x9a, 0x47, 0xe3, 0x62, 0x2d, 0x5b, 0x0f, 0xdc, 0xf0, 0x9e, 0x42, 0x3b, 0x50, + 0x17, 0x8c, 0x92, 0x28, 0x2a, 0xf6, 0x53, 0x54, 0x68, 0x0f, 0xd6, 0x12, 0xc1, 0x68, 0x98, 0xb7, + 0x69, 0x56, 0xf5, 0xea, 0x4a, 0x00, 0xbd, 0x84, 0xa7, 0x13, 0x07, 0xeb, 0xdf, 0x65, 0x45, 0x91, + 0xab, 0x13, 0x67, 0x90, 0x97, 0xe8, 0x15, 0x80, 0x8e, 0xc0, 0x44, 0x3a, 0x66, 0x4d, 0x3b, 0x35, + 0xe2, 0x4a, 0x07, 0x1d, 0xc2, 0xb3, 0x32, 0x46, 0x29, 0xea, 0x4a, 0xb1, 0x51, 0x82, 0xb9, 0xa8, + 0x05, 0x1b, 0xf7, 0xf1, 0x4a, 0xb3, 0xaa, 0x34, 0x50, 0x1c, 0xe1, 0x4a, 0xa7, 0xf9, 0xc3, 0x80, + 0x4d, 0xef, 0xaf, 0xae, 0xd1, 0x58, 0x7e, 0x8d, 0x68, 0x04, 0x55, 0xc1, 0xe7, 0x66, 0x45, 0xfd, + 0x67, 0xfd, 0xff, 0xb9, 0x60, 0x2b, 0xe0, 0xf3, 0x20, 0x0f, 0x6f, 0x1e, 0x41, 0x35, 0xe0, 0xf3, + 0x7c, 0x66, 0x76, 0x4b, 0x66, 0x49, 0xc4, 0x30, 0xe5, 0x59, 0x2c, 0x55, 0x4f, 0xb5, 0x60, 0xa3, + 0x00, 0xbd, 0x1c, 0x3b, 0xba, 0x04, 0xb4, 0x78, 0xce, 0xf0, 0x2e, 0x61, 0xe8, 0x10, 0xf6, 0xbd, + 0xae, 0x3b, 0x18, 0xf8, 0x67, 0xbe, 0xe7, 0x0e, 0xfd, 0x8f, 0xe7, 0x78, 0x78, 0xd9, 0xef, 0xe0, + 0x8b, 0xf3, 0x41, 0xbf, 0xe3, 0xf9, 0x67, 0x7e, 0xe7, 0x7d, 0xe3, 0x09, 0x7a, 0x0e, 0xd0, 0xbb, + 0xe8, 0x0e, 0x7d, 0xa5, 0x6c, 0x18, 0x65, 0xdd, 0x75, 0x4f, 0x3b, 0xdd, 0x46, 0xe5, 0xf4, 0x9b, + 0x01, 0xfb, 0x94, 0xcf, 0x1e, 0x9b, 0xf1, 0x74, 0x6b, 0xf1, 0xf0, 0x7e, 0xfe, 0x5c, 0x7c, 0x76, + 0x0b, 0xc7, 0x94, 0x47, 0x24, 0x9e, 0x5a, 0x5c, 0x4c, 0xed, 0x29, 0x8b, 0xd5, 0x53, 0x62, 0x6b, + 0x8a, 0x24, 0x61, 0xba, 0xf4, 0xe9, 0x7a, 0xa7, 0xcb, 0xef, 0x95, 0xdd, 0x0f, 0x4a, 0x78, 0xe5, + 0xe5, 0xa2, 0x2b, 0x37, 0x93, 0xbc, 0x17, 0x5d, 0x7d, 0xd2, 0xa2, 0x51, 0x5d, 0x65, 0xbd, 0xfd, + 0x15, 0x00, 0x00, 0xff, 0xff, 0xa7, 0xc7, 0xf0, 0x16, 0x05, 0x05, 0x00, 0x00, } diff --git a/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/data_items.pb.go b/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/data_items.pb.go index e2b406ead..ba0d926b9 100644 --- a/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/data_items.pb.go +++ b/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/data_items.pb.go @@ -41,7 +41,7 @@ func (m *Image) Reset() { *m = Image{} } func (m *Image) String() string { return proto.CompactTextString(m) } func (*Image) ProtoMessage() {} func (*Image) Descriptor() ([]byte, []int) { - return fileDescriptor_data_items_6a949c451484ad28, []int{0} + return fileDescriptor_data_items_d29551999e582ae1, []int{0} } func (m *Image) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Image.Unmarshal(m, b) @@ -196,7 +196,7 @@ func (m *TextSnippet) Reset() { *m = TextSnippet{} } func (m *TextSnippet) String() string { return proto.CompactTextString(m) } func (*TextSnippet) ProtoMessage() {} func (*TextSnippet) Descriptor() ([]byte, []int) { - return fileDescriptor_data_items_6a949c451484ad28, []int{1} + return fileDescriptor_data_items_d29551999e582ae1, []int{1} } func (m *TextSnippet) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TextSnippet.Unmarshal(m, b) @@ -254,7 +254,7 @@ func (m *ExamplePayload) Reset() { *m = ExamplePayload{} } func (m *ExamplePayload) String() string { return proto.CompactTextString(m) } func (*ExamplePayload) ProtoMessage() {} func (*ExamplePayload) Descriptor() ([]byte, []int) { - return fileDescriptor_data_items_6a949c451484ad28, []int{2} + return fileDescriptor_data_items_d29551999e582ae1, []int{2} } func (m *ExamplePayload) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ExamplePayload.Unmarshal(m, b) @@ -392,33 +392,35 @@ func init() { } func init() { - proto.RegisterFile("google/cloud/automl/v1beta1/data_items.proto", fileDescriptor_data_items_6a949c451484ad28) + proto.RegisterFile("google/cloud/automl/v1beta1/data_items.proto", fileDescriptor_data_items_d29551999e582ae1) } -var fileDescriptor_data_items_6a949c451484ad28 = []byte{ - // 381 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x92, 0x3d, 0xcf, 0xd3, 0x30, - 0x14, 0x85, 0x1b, 0xd4, 0x0f, 0xe2, 0x14, 0x06, 0x4f, 0x51, 0x8b, 0xd4, 0x52, 0x18, 0x32, 0xa0, - 0x44, 0x2d, 0x1b, 0x4c, 0x04, 0x21, 0xb5, 0x03, 0x52, 0x15, 0xda, 0x85, 0x25, 0x72, 0x52, 0xd7, - 0x58, 0x8a, 0x3f, 0x94, 0xdc, 0xa0, 0xe6, 0x0f, 0xf1, 0x3b, 0x91, 0xed, 0x40, 0x3b, 0xbc, 0xca, - 0xbb, 0xe5, 0x9e, 0xfb, 0x5c, 0xdf, 0xe3, 0x13, 0xa3, 0x0f, 0x4c, 0x29, 0x56, 0xd1, 0xa4, 0xac, - 0x54, 0x7b, 0x49, 0x48, 0x0b, 0x4a, 0x54, 0xc9, 0xef, 0x6d, 0x41, 0x81, 0x6c, 0x93, 0x0b, 0x01, - 0x92, 0x73, 0xa0, 0xa2, 0x89, 0x75, 0xad, 0x40, 0xe1, 0xa5, 0xa3, 0x63, 0x4b, 0xc7, 0x8e, 0x8e, - 0x7b, 0x7a, 0xf1, 0xa6, 0x3f, 0x8a, 0x68, 0x9e, 0x10, 0x29, 0x15, 0x10, 0xe0, 0x4a, 0xf6, 0xa3, - 0x8b, 0xf7, 0x43, 0x8b, 0xb8, 0x72, 0xd4, 0xe6, 0x8f, 0x87, 0x26, 0x07, 0x41, 0x18, 0xc5, 0x6f, - 0x51, 0xc0, 0xcd, 0x47, 0x5e, 0x74, 0x40, 0x9b, 0xd0, 0x5b, 0x7b, 0xd1, 0x7c, 0x3f, 0xca, 0x90, - 0x15, 0x53, 0xa3, 0xe1, 0xef, 0x68, 0xce, 0xa5, 0x6e, 0x21, 0x2f, 0x95, 0xbc, 0x72, 0x16, 0x4e, - 0xd7, 0x5e, 0x14, 0xec, 0xa2, 0x78, 0xc0, 0x64, 0x7c, 0x30, 0x03, 0x5f, 0x2d, 0xbf, 0x1f, 0x65, - 0x01, 0xbf, 0x97, 0xf8, 0x1d, 0x7a, 0x05, 0xbf, 0x5a, 0x51, 0x48, 0xc2, 0xab, 0xbc, 0xad, 0x79, - 0x38, 0x5e, 0x7b, 0x91, 0x9f, 0xcd, 0xff, 0x8b, 0xe7, 0x9a, 0xa7, 0x53, 0x34, 0x36, 0xa9, 0x6c, - 0x28, 0x0a, 0x4e, 0xf4, 0x06, 0x3f, 0x24, 0xd7, 0x9a, 0x02, 0x0e, 0xd1, 0xac, 0x54, 0x12, 0xa8, - 0x04, 0xeb, 0xd4, 0xcf, 0xfe, 0x95, 0x78, 0x89, 0x7c, 0xc1, 0x05, 0xcd, 0xa1, 0xd3, 0x34, 0x7c, - 0x61, 0x7b, 0x2f, 0x8d, 0x70, 0xea, 0x34, 0xc5, 0x2b, 0x14, 0xf4, 0xdc, 0xc3, 0x42, 0xd4, 0x4b, - 0xe7, 0x9a, 0x9b, 0x3c, 0x5e, 0x7f, 0xbb, 0x11, 0xa1, 0x2b, 0x7a, 0x24, 0x5d, 0xa5, 0xc8, 0x05, - 0x7f, 0x42, 0x13, 0x9b, 0x81, 0x5d, 0x14, 0xec, 0x36, 0xc3, 0xd7, 0x35, 0xe4, 0x7e, 0x94, 0xb9, - 0x11, 0x93, 0x18, 0xd0, 0x1b, 0xe4, 0x8d, 0xb3, 0x6d, 0xfd, 0x3c, 0x97, 0xd8, 0xc3, 0x35, 0x4d, - 0x62, 0x70, 0x2f, 0x53, 0x1f, 0xcd, 0xb4, 0x73, 0x95, 0x5e, 0xd1, 0xaa, 0x54, 0x62, 0xe8, 0xa0, - 0xa3, 0xf7, 0xf3, 0x4b, 0xdf, 0x66, 0xaa, 0x22, 0x92, 0xc5, 0xaa, 0x66, 0x09, 0xa3, 0xd2, 0xfe, - 0xf9, 0xc4, 0xb5, 0x88, 0xe6, 0xcd, 0x93, 0x4f, 0xe4, 0xb3, 0x2b, 0x8b, 0xa9, 0xa5, 0x3f, 0xfe, - 0x0d, 0x00, 0x00, 0xff, 0xff, 0xbe, 0xa5, 0xac, 0xba, 0xb8, 0x02, 0x00, 0x00, +var fileDescriptor_data_items_d29551999e582ae1 = []byte{ + // 407 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x92, 0x41, 0x6f, 0xd3, 0x30, + 0x14, 0xc7, 0x9b, 0x69, 0xeb, 0xa8, 0x53, 0x38, 0xf8, 0x14, 0xad, 0x48, 0x2b, 0x85, 0x43, 0x0f, + 0x28, 0xd1, 0xc6, 0x0d, 0x4e, 0xcb, 0x84, 0xe8, 0x0e, 0x93, 0xa6, 0xb0, 0x71, 0x40, 0x95, 0x22, + 0x27, 0x35, 0xc6, 0x92, 0xed, 0x67, 0x25, 0x2f, 0xa8, 0xb9, 0xf3, 0x59, 0xf8, 0x30, 0x7c, 0x2a, + 0x64, 0x3b, 0xb0, 0x1e, 0x50, 0x76, 0xeb, 0xfb, 0xbf, 0xdf, 0x7b, 0xef, 0xef, 0x7f, 0x43, 0xde, + 0x0a, 0x00, 0xa1, 0x78, 0x56, 0x2b, 0xe8, 0x76, 0x19, 0xeb, 0x10, 0xb4, 0xca, 0x7e, 0x5c, 0x54, + 0x1c, 0xd9, 0x45, 0xb6, 0x63, 0xc8, 0x4a, 0x89, 0x5c, 0xb7, 0xa9, 0x6d, 0x00, 0x81, 0x2e, 0x02, + 0x9d, 0x7a, 0x3a, 0x0d, 0x74, 0x3a, 0xd0, 0x67, 0x2f, 0x87, 0x55, 0xcc, 0xca, 0x8c, 0x19, 0x03, + 0xc8, 0x50, 0x82, 0x19, 0x46, 0xcf, 0xde, 0x8c, 0x1d, 0x92, 0x10, 0xa8, 0xd5, 0xaf, 0x88, 0x9c, + 0xdc, 0x68, 0x26, 0x38, 0x7d, 0x45, 0x62, 0xe9, 0x7e, 0x94, 0x55, 0x8f, 0xbc, 0x4d, 0xa2, 0x65, + 0xb4, 0x9e, 0x6f, 0x26, 0x05, 0xf1, 0x62, 0xee, 0x34, 0x7a, 0x4b, 0xe6, 0xd2, 0xd8, 0x0e, 0xcb, + 0x1a, 0xcc, 0x37, 0x29, 0x92, 0xe9, 0x32, 0x5a, 0xc7, 0x97, 0xeb, 0x74, 0xc4, 0x64, 0x7a, 0xe3, + 0x06, 0xae, 0x3d, 0xbf, 0x99, 0x14, 0xb1, 0x7c, 0x2c, 0xe9, 0x6b, 0xf2, 0x1c, 0xbf, 0x77, 0xba, + 0x32, 0x4c, 0xaa, 0xb2, 0x6b, 0x64, 0x72, 0xbc, 0x8c, 0xd6, 0xb3, 0x62, 0xfe, 0x4f, 0x7c, 0x68, + 0x64, 0x3e, 0x25, 0xc7, 0x2e, 0x95, 0x15, 0x27, 0xf1, 0x3d, 0xdf, 0xe3, 0x67, 0x23, 0xad, 0xe5, + 0x48, 0x13, 0x72, 0x5a, 0x83, 0x41, 0x6e, 0xd0, 0x3b, 0x9d, 0x15, 0x7f, 0x4b, 0xba, 0x20, 0x33, + 0x2d, 0x35, 0x2f, 0xb1, 0xb7, 0x3c, 0x39, 0xf2, 0xbd, 0x67, 0x4e, 0xb8, 0xef, 0x2d, 0xa7, 0xe7, + 0x24, 0x1e, 0xb8, 0x83, 0x83, 0x64, 0x90, 0x1e, 0x1a, 0xe9, 0xf2, 0x78, 0xf1, 0x71, 0xcf, 0xb4, + 0x55, 0xfc, 0x8e, 0xf5, 0x0a, 0xd8, 0x8e, 0xbe, 0x27, 0x27, 0x3e, 0x03, 0x7f, 0x28, 0xbe, 0x5c, + 0x8d, 0x3f, 0xd7, 0x91, 0x9b, 0x49, 0x11, 0x46, 0x5c, 0x62, 0xc8, 0xf7, 0x58, 0xb6, 0xc1, 0xb6, + 0xf7, 0xf3, 0x54, 0x62, 0x07, 0xcf, 0x74, 0x89, 0xe1, 0x63, 0x99, 0xcf, 0xc8, 0xa9, 0x0d, 0xae, + 0xf2, 0x9f, 0x11, 0x39, 0xaf, 0x41, 0x8f, 0x6d, 0xba, 0x8b, 0xbe, 0x5e, 0x0d, 0x6d, 0x01, 0x8a, + 0x19, 0x91, 0x42, 0x23, 0x32, 0xc1, 0x8d, 0xff, 0xeb, 0xb3, 0xd0, 0x62, 0x56, 0xb6, 0xff, 0xfd, + 0x46, 0x3e, 0x84, 0xf2, 0xf7, 0xd1, 0xe2, 0x93, 0x07, 0xb7, 0xd7, 0x0e, 0xda, 0x5e, 0x75, 0x08, + 0xb7, 0x6a, 0xfb, 0x25, 0x40, 0xd5, 0xd4, 0xef, 0x7a, 0xf7, 0x27, 0x00, 0x00, 0xff, 0xff, 0x2d, + 0x52, 0x09, 0x2a, 0xd7, 0x02, 0x00, 0x00, } diff --git a/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/dataset.pb.go b/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/dataset.pb.go index 6ff1b908a..81a55ed64 100644 --- a/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/dataset.pb.go +++ b/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/dataset.pb.go @@ -52,7 +52,7 @@ func (m *Dataset) Reset() { *m = Dataset{} } func (m *Dataset) String() string { return proto.CompactTextString(m) } func (*Dataset) ProtoMessage() {} func (*Dataset) Descriptor() ([]byte, []int) { - return fileDescriptor_dataset_a8678ffeb33098d6, []int{0} + return fileDescriptor_dataset_e955e6a61629f1a3, []int{0} } func (m *Dataset) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Dataset.Unmarshal(m, b) @@ -248,36 +248,38 @@ func init() { } func init() { - proto.RegisterFile("google/cloud/automl/v1beta1/dataset.proto", fileDescriptor_dataset_a8678ffeb33098d6) + proto.RegisterFile("google/cloud/automl/v1beta1/dataset.proto", fileDescriptor_dataset_e955e6a61629f1a3) } -var fileDescriptor_dataset_a8678ffeb33098d6 = []byte{ - // 428 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x92, 0x5d, 0x6b, 0x14, 0x31, - 0x14, 0x86, 0x1d, 0xa9, 0x8a, 0xd9, 0x2a, 0x12, 0x10, 0xc7, 0xb1, 0xd0, 0x6d, 0xfd, 0x5a, 0x41, - 0x13, 0xaa, 0x82, 0x17, 0x05, 0xc5, 0xd6, 0x0b, 0xbd, 0x50, 0x64, 0xe9, 0x95, 0x37, 0xe1, 0xec, - 0x6c, 0x76, 0x08, 0xe4, 0x63, 0xd8, 0x9c, 0x91, 0x2d, 0xfe, 0x0a, 0xc1, 0xdf, 0xe7, 0x6f, 0x91, - 0x49, 0x32, 0xd4, 0xaf, 0xcd, 0xdc, 0x25, 0xe7, 0x3c, 0x79, 0xf3, 0x9e, 0x97, 0x43, 0x9e, 0x34, - 0xce, 0x35, 0x5a, 0xf2, 0x5a, 0xbb, 0x6e, 0xc9, 0xa1, 0x43, 0x67, 0x34, 0xff, 0x7a, 0xb4, 0x90, - 0x08, 0x47, 0x7c, 0x09, 0x08, 0x5e, 0x22, 0x6b, 0xd7, 0x0e, 0x1d, 0xbd, 0x17, 0x51, 0x16, 0x50, - 0x16, 0x51, 0x96, 0xd0, 0x6a, 0x2f, 0xe9, 0x40, 0xab, 0x38, 0x58, 0xeb, 0x10, 0x50, 0x39, 0xeb, - 0xe3, 0xd3, 0xea, 0x65, 0xee, 0x97, 0x0b, 0x5c, 0xb4, 0x70, 0xae, 0x1d, 0x2c, 0xd3, 0xab, 0xa7, - 0x63, 0xde, 0x84, 0x42, 0x69, 0x86, 0x3f, 0x1e, 0xe7, 0x68, 0x65, 0xa0, 0x91, 0x09, 0x7c, 0x94, - 0x03, 0x51, 0x6e, 0xd2, 0xbc, 0xd5, 0xb3, 0x2c, 0xb7, 0x06, 0xeb, 0x75, 0x70, 0x9d, 0xf0, 0xfd, - 0x84, 0x87, 0xdb, 0xa2, 0x5b, 0x71, 0x54, 0x46, 0x7a, 0x04, 0xd3, 0x46, 0xe0, 0xf0, 0xe7, 0x0e, - 0xb9, 0xf6, 0x2e, 0x26, 0x4a, 0xbf, 0x91, 0xbd, 0xdf, 0x14, 0x44, 0x0a, 0x5a, 0x18, 0x89, 0xd0, - 0x9f, 0xcb, 0x3b, 0xd3, 0x62, 0x36, 0x79, 0xfe, 0x8a, 0x65, 0x22, 0x67, 0x67, 0x17, 0x02, 0x49, - 0xf6, 0x63, 0x7a, 0xfe, 0xfe, 0xd2, 0xbc, 0xc2, 0xad, 0x5d, 0xfa, 0xa3, 0x20, 0x0f, 0x43, 0x20, - 0xa2, 0xd6, 0xe0, 0xbd, 0x5a, 0xa9, 0x7a, 0x8b, 0x8d, 0x32, 0xd8, 0x78, 0x93, 0xb5, 0xf1, 0xa1, - 0x57, 0x3a, 0xfd, 0x43, 0xe8, 0x5f, 0x3b, 0x87, 0x6a, 0x94, 0xa2, 0xdf, 0x0b, 0xf2, 0xa0, 0x8f, - 0x7f, 0xd4, 0xd5, 0xdd, 0xe0, 0xea, 0x75, 0x3e, 0x1c, 0xb9, 0xc1, 0x31, 0x53, 0x07, 0x38, 0x06, - 0x51, 0x4a, 0x76, 0x2c, 0x18, 0x59, 0x16, 0xd3, 0x62, 0x76, 0x7d, 0x1e, 0xce, 0xf4, 0x80, 0xec, - 0x2e, 0x95, 0x6f, 0x35, 0x9c, 0x8b, 0xd0, 0xbb, 0x1c, 0x7a, 0x93, 0x54, 0xfb, 0xd4, 0x23, 0xf7, - 0xc9, 0x0d, 0xb9, 0x01, 0xd3, 0x6a, 0x29, 0x6a, 0xd7, 0x59, 0x2c, 0x6f, 0x4f, 0x8b, 0xd9, 0x95, - 0xf9, 0x6e, 0x2a, 0x9e, 0xf6, 0x35, 0x7a, 0x4c, 0x26, 0xf5, 0x5a, 0x02, 0x4a, 0xd1, 0x6f, 0x4a, - 0x79, 0x33, 0x4c, 0x55, 0x0d, 0x53, 0x0d, 0x6b, 0xc4, 0xce, 0x86, 0x35, 0x9a, 0x93, 0x88, 0xf7, - 0x85, 0x13, 0x4a, 0x6e, 0xfd, 0x9d, 0xcb, 0xc9, 0x8a, 0xec, 0xd7, 0xce, 0xe4, 0x62, 0xf9, 0x5c, - 0x7c, 0x79, 0x9b, 0xda, 0x8d, 0xd3, 0x60, 0x1b, 0xe6, 0xd6, 0x0d, 0x6f, 0xa4, 0x0d, 0xbf, 0xf1, - 0xd8, 0x82, 0x56, 0xf9, 0xff, 0x2e, 0xfd, 0x71, 0xbc, 0x2e, 0xae, 0x06, 0xfa, 0xc5, 0xaf, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x84, 0x83, 0x13, 0xa3, 0x3c, 0x04, 0x00, 0x00, +var fileDescriptor_dataset_e955e6a61629f1a3 = []byte{ + // 452 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x92, 0xdb, 0x6a, 0x14, 0x41, + 0x10, 0x86, 0x9d, 0x10, 0x15, 0x7b, 0xa3, 0x48, 0x83, 0x38, 0x4e, 0x02, 0xd9, 0xc4, 0xd3, 0x0a, + 0x3a, 0x43, 0x54, 0xf0, 0x22, 0xa0, 0x24, 0x2b, 0xa8, 0x17, 0x11, 0x59, 0x82, 0x17, 0xb2, 0xd0, + 0xd4, 0xce, 0x76, 0x86, 0x86, 0x3e, 0x0c, 0xdb, 0x35, 0xb2, 0xc1, 0x5b, 0x5f, 0x40, 0xf0, 0xa9, + 0x7c, 0x08, 0x9f, 0x45, 0xfa, 0xb0, 0xc4, 0xd3, 0xf6, 0xdc, 0x75, 0x57, 0x7d, 0xfd, 0xf7, 0x5f, + 0x3f, 0x45, 0x1e, 0x35, 0xc6, 0x34, 0x92, 0x57, 0xb5, 0x34, 0xdd, 0xbc, 0x82, 0x0e, 0x8d, 0x92, + 0xd5, 0xe7, 0x83, 0x19, 0x47, 0x38, 0xa8, 0xe6, 0x80, 0x60, 0x39, 0x96, 0xed, 0xc2, 0xa0, 0xa1, + 0xdb, 0x01, 0x2d, 0x3d, 0x5a, 0x06, 0xb4, 0x8c, 0x68, 0xb1, 0x13, 0x75, 0xa0, 0x15, 0x15, 0x68, + 0x6d, 0x10, 0x50, 0x18, 0x6d, 0xc3, 0xd3, 0xe2, 0x79, 0xea, 0x97, 0x0b, 0x9c, 0xb5, 0x70, 0x2e, + 0x0d, 0xcc, 0xe3, 0xab, 0xc7, 0x7d, 0xde, 0x98, 0x40, 0xae, 0x56, 0x7f, 0x3c, 0x4c, 0xd1, 0x42, + 0x41, 0xc3, 0x23, 0xf8, 0x20, 0x05, 0x22, 0x5f, 0xc6, 0x79, 0x8b, 0x27, 0x49, 0x6e, 0x01, 0xda, + 0x4a, 0xef, 0x3a, 0xe2, 0xbb, 0x11, 0xf7, 0xb7, 0x59, 0x77, 0x56, 0xa1, 0x50, 0xdc, 0x22, 0xa8, + 0x36, 0x00, 0xfb, 0x3f, 0x37, 0xc9, 0xd5, 0xd7, 0x21, 0x51, 0xfa, 0x85, 0xec, 0xfc, 0xa6, 0xc0, + 0x62, 0xd0, 0x4c, 0x71, 0x04, 0x77, 0xce, 0x6f, 0x0f, 0xb3, 0xd1, 0xe0, 0xe9, 0x8b, 0x32, 0x11, + 0x79, 0x79, 0x7a, 0x21, 0x10, 0x65, 0x4f, 0xe2, 0xf3, 0xb7, 0x97, 0x26, 0x05, 0xae, 0xed, 0xd2, + 0xef, 0x19, 0xb9, 0xef, 0x03, 0x61, 0xb5, 0x04, 0x6b, 0xc5, 0x99, 0xa8, 0xd7, 0xd8, 0xc8, 0xbd, + 0x8d, 0x57, 0x49, 0x1b, 0xef, 0x9c, 0xd2, 0xf8, 0x0f, 0xa1, 0x7f, 0xed, 0xec, 0x8b, 0x5e, 0x8a, + 0x7e, 0xcb, 0xc8, 0x3d, 0x17, 0x7f, 0xaf, 0xab, 0x3b, 0xde, 0xd5, 0xcb, 0x74, 0x38, 0x7c, 0x89, + 0x7d, 0xa6, 0xf6, 0xb0, 0x0f, 0xa2, 0x94, 0x6c, 0x6a, 0x50, 0x3c, 0xcf, 0x86, 0xd9, 0xe8, 0xda, + 0xc4, 0x9f, 0xe9, 0x1e, 0xd9, 0x9a, 0x0b, 0xdb, 0x4a, 0x38, 0x67, 0xbe, 0xb7, 0xe1, 0x7b, 0x83, + 0x58, 0x7b, 0xef, 0x90, 0xbb, 0xe4, 0x3a, 0x5f, 0x82, 0x6a, 0x25, 0x67, 0xb5, 0xe9, 0x34, 0xe6, + 0xb7, 0x86, 0xd9, 0xe8, 0xf2, 0x64, 0x2b, 0x16, 0xc7, 0xae, 0x46, 0x0f, 0xc9, 0xa0, 0x5e, 0x70, + 0x40, 0xce, 0xdc, 0xa6, 0xe4, 0x37, 0xfc, 0x54, 0xc5, 0x6a, 0xaa, 0xd5, 0x1a, 0x95, 0xa7, 0xab, + 0x35, 0x9a, 0x90, 0x80, 0xbb, 0xc2, 0x31, 0x25, 0x37, 0xff, 0xce, 0xe5, 0xf8, 0x6b, 0x46, 0x76, + 0x6b, 0xa3, 0x52, 0xb9, 0x7c, 0xc8, 0x3e, 0x1d, 0xc5, 0x76, 0x63, 0x24, 0xe8, 0xa6, 0x34, 0x8b, + 0xa6, 0x6a, 0xb8, 0xf6, 0xdf, 0x55, 0xa1, 0x05, 0xad, 0xb0, 0xff, 0xdd, 0xfa, 0xc3, 0x70, 0xfd, + 0xb1, 0xb1, 0xfd, 0xc6, 0x83, 0xd3, 0xb1, 0x83, 0xa6, 0x47, 0x1d, 0x9a, 0x13, 0x39, 0xfd, 0x18, + 0xa0, 0xd9, 0x15, 0xaf, 0xf5, 0xec, 0x57, 0x00, 0x00, 0x00, 0xff, 0xff, 0x98, 0x82, 0x24, 0x37, + 0x5b, 0x04, 0x00, 0x00, } diff --git a/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/image.pb.go b/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/image.pb.go index 8c0c2c9bf..8c98a4b22 100644 --- a/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/image.pb.go +++ b/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/image.pb.go @@ -34,7 +34,7 @@ func (m *ImageClassificationDatasetMetadata) Reset() { *m = ImageClassif func (m *ImageClassificationDatasetMetadata) String() string { return proto.CompactTextString(m) } func (*ImageClassificationDatasetMetadata) ProtoMessage() {} func (*ImageClassificationDatasetMetadata) Descriptor() ([]byte, []int) { - return fileDescriptor_image_154474385dd5e971, []int{0} + return fileDescriptor_image_7fb55170bec5faa5, []int{0} } func (m *ImageClassificationDatasetMetadata) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ImageClassificationDatasetMetadata.Unmarshal(m, b) @@ -87,7 +87,7 @@ func (m *ImageClassificationModelMetadata) Reset() { *m = ImageClassific func (m *ImageClassificationModelMetadata) String() string { return proto.CompactTextString(m) } func (*ImageClassificationModelMetadata) ProtoMessage() {} func (*ImageClassificationModelMetadata) Descriptor() ([]byte, []int) { - return fileDescriptor_image_154474385dd5e971, []int{1} + return fileDescriptor_image_7fb55170bec5faa5, []int{1} } func (m *ImageClassificationModelMetadata) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ImageClassificationModelMetadata.Unmarshal(m, b) @@ -141,31 +141,32 @@ func init() { } func init() { - proto.RegisterFile("google/cloud/automl/v1beta1/image.proto", fileDescriptor_image_154474385dd5e971) + proto.RegisterFile("google/cloud/automl/v1beta1/image.proto", fileDescriptor_image_7fb55170bec5faa5) } -var fileDescriptor_image_154474385dd5e971 = []byte{ - // 338 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x91, 0xb1, 0x6a, 0xe3, 0x40, - 0x10, 0x86, 0xd1, 0x99, 0x3b, 0xf0, 0xfa, 0xee, 0x0a, 0xa5, 0x11, 0x4e, 0x82, 0x1d, 0x35, 0x71, - 0xa5, 0x8d, 0x93, 0x32, 0x55, 0xec, 0x34, 0x2e, 0x0c, 0x46, 0xa4, 0x4a, 0xa3, 0x8c, 0xa4, 0xf5, - 0xb2, 0x20, 0x69, 0x16, 0xed, 0x28, 0xe0, 0x17, 0xc8, 0xbb, 0xe4, 0x2d, 0x83, 0x66, 0x45, 0xc0, - 0xc4, 0xb8, 0xdc, 0x4f, 0xdf, 0x3f, 0xfb, 0x8f, 0x56, 0xdc, 0x6a, 0x44, 0x5d, 0x29, 0x59, 0x54, - 0xd8, 0x95, 0x12, 0x3a, 0xc2, 0xba, 0x92, 0xef, 0xcb, 0x5c, 0x11, 0x2c, 0xa5, 0xa9, 0x41, 0xab, - 0xc4, 0xb6, 0x48, 0x18, 0x5e, 0x7a, 0x31, 0x61, 0x31, 0xf1, 0x62, 0x32, 0x88, 0xd3, 0xab, 0x61, - 0x0a, 0x58, 0x23, 0xa1, 0x69, 0x90, 0x80, 0x0c, 0x36, 0xce, 0x47, 0xa7, 0x77, 0xe7, 0xee, 0x28, - 0x2a, 0x70, 0xce, 0xec, 0x4d, 0xc1, 0x91, 0x21, 0x31, 0x1b, 0x12, 0x7c, 0xca, 0xbb, 0xbd, 0x24, - 0x53, 0x2b, 0x47, 0x50, 0x5b, 0x2f, 0xc4, 0x1f, 0x81, 0x88, 0x37, 0x7d, 0xbb, 0xf5, 0x51, 0xfc, - 0x19, 0x08, 0x9c, 0xa2, 0xad, 0x22, 0x28, 0x81, 0x20, 0x7c, 0x13, 0x17, 0xc7, 0xf3, 0x33, 0x3a, - 0x58, 0x15, 0x05, 0xf3, 0x60, 0xf1, 0xff, 0x5e, 0x26, 0x67, 0x56, 0x4a, 0x8e, 0x07, 0xbf, 0x1c, - 0xac, 0x4a, 0xc3, 0xe2, 0x07, 0x8b, 0x3f, 0x03, 0x31, 0x3f, 0x51, 0x64, 0x8b, 0xa5, 0xaa, 0xbe, - 0x6b, 0xc4, 0xe2, 0x5f, 0x0e, 0x4e, 0x65, 0x75, 0x4f, 0x33, 0x53, 0x72, 0x81, 0x71, 0x3a, 0xe9, - 0x21, 0x9b, 0x9b, 0x32, 0xbc, 0x11, 0x7f, 0xa9, 0x05, 0xd3, 0x64, 0x79, 0x57, 0x6a, 0x45, 0xd1, - 0xaf, 0x79, 0xb0, 0x18, 0xa5, 0x13, 0x66, 0x2b, 0x46, 0xe1, 0xb5, 0x10, 0x5e, 0x29, 0xd0, 0x51, - 0x34, 0x62, 0x61, 0xcc, 0x64, 0x8d, 0x8e, 0xc2, 0x99, 0x98, 0x38, 0x42, 0x9b, 0xb5, 0x0a, 0x1c, - 0x36, 0xd1, 0x6f, 0xbe, 0x43, 0xf4, 0x28, 0x65, 0xb2, 0x6a, 0xc5, 0xac, 0xc0, 0xfa, 0xdc, 0xd6, - 0x2b, 0xc1, 0xbb, 0xec, 0xfa, 0x7f, 0xbc, 0x0b, 0x5e, 0x9f, 0x06, 0x55, 0x63, 0x05, 0x8d, 0x4e, - 0xb0, 0xd5, 0x52, 0xab, 0x86, 0x5f, 0x40, 0xfa, 0x4f, 0x60, 0x8d, 0x3b, 0xf9, 0xae, 0x8f, 0xfe, - 0x98, 0xff, 0x61, 0xfb, 0xe1, 0x2b, 0x00, 0x00, 0xff, 0xff, 0xde, 0x9b, 0x5b, 0x1e, 0x68, 0x02, - 0x00, 0x00, +var fileDescriptor_image_7fb55170bec5faa5 = []byte{ + // 359 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x91, 0xc1, 0x4a, 0xc3, 0x40, + 0x10, 0x86, 0x49, 0x8b, 0x42, 0xb7, 0xea, 0x21, 0x5e, 0x42, 0xab, 0xb4, 0xe6, 0x62, 0x4f, 0x59, + 0xab, 0x47, 0x4f, 0x6d, 0x05, 0xe9, 0xa1, 0x50, 0x82, 0x78, 0x90, 0x42, 0x9c, 0x24, 0xdb, 0x65, + 0x21, 0xc9, 0x84, 0xec, 0x44, 0xe8, 0x0b, 0x78, 0xf6, 0x35, 0x7c, 0x15, 0x9f, 0x4a, 0xb2, 0x1b, + 0x84, 0x62, 0xe9, 0x71, 0xbf, 0x7c, 0xff, 0xec, 0x3f, 0x59, 0x76, 0x2b, 0x11, 0x65, 0x26, 0x78, + 0x92, 0x61, 0x9d, 0x72, 0xa8, 0x09, 0xf3, 0x8c, 0x7f, 0x4c, 0x63, 0x41, 0x30, 0xe5, 0x2a, 0x07, + 0x29, 0x82, 0xb2, 0x42, 0x42, 0x77, 0x68, 0xc5, 0xc0, 0x88, 0x81, 0x15, 0x83, 0x56, 0x1c, 0x5c, + 0xb5, 0x53, 0xa0, 0x54, 0x1c, 0x8a, 0x02, 0x09, 0x48, 0x61, 0xa1, 0x6d, 0x74, 0x70, 0x77, 0xec, + 0x8e, 0x24, 0x03, 0xad, 0xd5, 0x56, 0x25, 0x26, 0xd2, 0x26, 0x46, 0x6d, 0xc2, 0x9c, 0xe2, 0x7a, + 0xcb, 0x49, 0xe5, 0x42, 0x13, 0xe4, 0xa5, 0x15, 0xfc, 0x4f, 0x87, 0xf9, 0xcb, 0xa6, 0xdd, 0x62, + 0x2f, 0xfe, 0x04, 0x04, 0x5a, 0xd0, 0x4a, 0x10, 0xa4, 0x40, 0xe0, 0xbe, 0xb3, 0xcb, 0xfd, 0xf9, + 0x11, 0xed, 0x4a, 0xe1, 0x39, 0x63, 0x67, 0x72, 0x71, 0xcf, 0x83, 0x23, 0x2b, 0x05, 0xfb, 0x83, + 0x5f, 0x76, 0xa5, 0x08, 0xdd, 0xe4, 0x1f, 0xf3, 0xbf, 0x1d, 0x36, 0x3e, 0x50, 0x64, 0x85, 0xa9, + 0xc8, 0xfe, 0x6a, 0xf8, 0xec, 0x3c, 0x06, 0x2d, 0xa2, 0xbc, 0xa1, 0x91, 0x4a, 0x4d, 0x81, 0x5e, + 0xd8, 0x6f, 0xa0, 0x31, 0x97, 0xa9, 0x7b, 0xc3, 0xce, 0xa8, 0x02, 0x55, 0x44, 0x71, 0x9d, 0x4a, + 0x41, 0x5e, 0x67, 0xec, 0x4c, 0xba, 0x61, 0xdf, 0xb0, 0xb9, 0x41, 0xee, 0x35, 0x63, 0x56, 0x49, + 0x50, 0x93, 0xd7, 0x35, 0x42, 0xcf, 0x90, 0x05, 0x6a, 0x72, 0x47, 0xac, 0xaf, 0x09, 0xcb, 0xa8, + 0x12, 0xa0, 0xb1, 0xf0, 0x4e, 0xcc, 0x1d, 0xac, 0x41, 0xa1, 0x21, 0xf3, 0x2f, 0x87, 0x8d, 0x12, + 0xcc, 0x8f, 0xad, 0x3d, 0x67, 0x66, 0x99, 0x75, 0xf3, 0x93, 0xd7, 0xce, 0xdb, 0xac, 0x55, 0x25, + 0x66, 0x50, 0xc8, 0x00, 0x2b, 0xc9, 0xa5, 0x28, 0xcc, 0x13, 0x70, 0xfb, 0x09, 0x4a, 0xa5, 0x0f, + 0x3e, 0xec, 0xa3, 0x3d, 0xfe, 0x74, 0x86, 0xcf, 0x46, 0xdc, 0x2c, 0x1a, 0x69, 0x33, 0xab, 0x09, + 0x57, 0xd9, 0xe6, 0xd5, 0x4a, 0xf1, 0xa9, 0x99, 0xf5, 0xf0, 0x1b, 0x00, 0x00, 0xff, 0xff, 0x0c, + 0x97, 0x73, 0xa0, 0x87, 0x02, 0x00, 0x00, } diff --git a/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/io.pb.go b/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/io.pb.go index 56f068f43..5fdf13a64 100644 --- a/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/io.pb.go +++ b/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/io.pb.go @@ -35,7 +35,7 @@ func (m *InputConfig) Reset() { *m = InputConfig{} } func (m *InputConfig) String() string { return proto.CompactTextString(m) } func (*InputConfig) ProtoMessage() {} func (*InputConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_io_30049c92fb799bce, []int{0} + return fileDescriptor_io_433169c5aff300ba, []int{0} } func (m *InputConfig) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InputConfig.Unmarshal(m, b) @@ -150,7 +150,7 @@ func (m *OutputConfig) Reset() { *m = OutputConfig{} } func (m *OutputConfig) String() string { return proto.CompactTextString(m) } func (*OutputConfig) ProtoMessage() {} func (*OutputConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_io_30049c92fb799bce, []int{1} + return fileDescriptor_io_433169c5aff300ba, []int{1} } func (m *OutputConfig) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OutputConfig.Unmarshal(m, b) @@ -264,7 +264,7 @@ func (m *GcsSource) Reset() { *m = GcsSource{} } func (m *GcsSource) String() string { return proto.CompactTextString(m) } func (*GcsSource) ProtoMessage() {} func (*GcsSource) Descriptor() ([]byte, []int) { - return fileDescriptor_io_30049c92fb799bce, []int{2} + return fileDescriptor_io_433169c5aff300ba, []int{2} } func (m *GcsSource) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GcsSource.Unmarshal(m, b) @@ -309,7 +309,7 @@ func (m *GcsDestination) Reset() { *m = GcsDestination{} } func (m *GcsDestination) String() string { return proto.CompactTextString(m) } func (*GcsDestination) ProtoMessage() {} func (*GcsDestination) Descriptor() ([]byte, []int) { - return fileDescriptor_io_30049c92fb799bce, []int{3} + return fileDescriptor_io_433169c5aff300ba, []int{3} } func (m *GcsDestination) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GcsDestination.Unmarshal(m, b) @@ -344,28 +344,30 @@ func init() { } func init() { - proto.RegisterFile("google/cloud/automl/v1beta1/io.proto", fileDescriptor_io_30049c92fb799bce) + proto.RegisterFile("google/cloud/automl/v1beta1/io.proto", fileDescriptor_io_433169c5aff300ba) } -var fileDescriptor_io_30049c92fb799bce = []byte{ - // 300 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x91, 0x4b, 0x4b, 0x03, 0x31, - 0x10, 0xc7, 0xbb, 0x08, 0xc5, 0x9d, 0x6a, 0x8b, 0x7b, 0x2a, 0x3e, 0xb0, 0x2c, 0x22, 0xa5, 0x42, - 0x42, 0xf5, 0xa8, 0x17, 0xab, 0xd0, 0x7a, 0xb2, 0xac, 0xd4, 0x83, 0x97, 0x9a, 0x6e, 0xd3, 0x10, - 0xd8, 0x66, 0x96, 0x3c, 0xc4, 0x8f, 0x2f, 0x9b, 0xac, 0xd6, 0x82, 0xd4, 0x63, 0x66, 0x7e, 0xff, - 0x47, 0x18, 0xb8, 0x10, 0x88, 0xa2, 0xe0, 0x34, 0x2f, 0xd0, 0x2d, 0x29, 0x73, 0x16, 0xd7, 0x05, - 0xfd, 0x18, 0x2e, 0xb8, 0x65, 0x43, 0x2a, 0x91, 0x94, 0x1a, 0x2d, 0x26, 0x27, 0x81, 0x22, 0x9e, - 0x22, 0x81, 0x22, 0x35, 0x75, 0x7c, 0x5a, 0x5b, 0xb0, 0x52, 0x52, 0xa6, 0x14, 0x5a, 0x66, 0x25, - 0x2a, 0x13, 0xa4, 0xe9, 0x3b, 0xb4, 0x9e, 0x54, 0xe9, 0xec, 0x03, 0xaa, 0x95, 0x14, 0xc9, 0x18, - 0x40, 0xe4, 0x66, 0x6e, 0xd0, 0xe9, 0x9c, 0x77, 0xa3, 0x5e, 0xd4, 0x6f, 0x5d, 0x5f, 0x92, 0x1d, - 0xf6, 0x64, 0x9c, 0x9b, 0x17, 0x4f, 0x4f, 0x1a, 0x59, 0x2c, 0xbe, 0x1f, 0xa3, 0x7d, 0x68, 0x06, - 0x93, 0xd4, 0xc1, 0xc1, 0xb3, 0xb3, 0x9b, 0x88, 0x57, 0xe8, 0x54, 0x11, 0x4b, 0x6e, 0xac, 0x54, - 0xbe, 0x4b, 0x9d, 0x73, 0xf5, 0x5f, 0xce, 0xe3, 0x46, 0x32, 0x69, 0x64, 0x6d, 0xb1, 0x35, 0x19, - 0x1d, 0x42, 0xeb, 0x97, 0x67, 0x3a, 0x80, 0xf8, 0xa7, 0x5a, 0x72, 0x06, 0x20, 0xab, 0x5f, 0xce, - 0x9d, 0x96, 0xa6, 0x1b, 0xf5, 0xf6, 0xfa, 0x71, 0x16, 0xfb, 0xc9, 0x4c, 0x4b, 0x93, 0xde, 0x41, - 0x7b, 0xdb, 0x3e, 0x19, 0xc0, 0x11, 0xfa, 0xd2, 0x95, 0x62, 0x5e, 0x6a, 0xbe, 0x92, 0x9f, 0xbe, - 0x66, 0x9c, 0x75, 0xc2, 0x62, 0xa6, 0xe5, 0xd4, 0x8f, 0x47, 0x2b, 0x38, 0xcf, 0x71, 0xbd, 0xab, - 0xfc, 0x34, 0x7a, 0xbb, 0xaf, 0xd7, 0x02, 0x0b, 0xa6, 0x04, 0x41, 0x2d, 0xa8, 0xe0, 0xca, 0xdf, - 0x80, 0x86, 0x15, 0x2b, 0xa5, 0xf9, 0xf3, 0xce, 0xb7, 0xe1, 0xb9, 0x68, 0x7a, 0xfa, 0xe6, 0x2b, - 0x00, 0x00, 0xff, 0xff, 0xe3, 0x87, 0x4d, 0x64, 0x14, 0x02, 0x00, 0x00, +var fileDescriptor_io_433169c5aff300ba = []byte{ + // 326 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x91, 0x5d, 0x4b, 0x32, 0x41, + 0x14, 0xc7, 0xdd, 0xe7, 0x01, 0x79, 0xf6, 0xf8, 0xa4, 0xb4, 0x57, 0x92, 0x45, 0xb2, 0x44, 0x88, + 0xc1, 0x0e, 0xd6, 0x65, 0xdd, 0xa8, 0x81, 0x76, 0x11, 0xc9, 0x86, 0x5e, 0x84, 0x60, 0xe3, 0xba, + 0x0e, 0x03, 0xeb, 0x9c, 0x65, 0x5e, 0xa2, 0x0f, 0xd0, 0xa7, 0xeb, 0x53, 0xc5, 0xce, 0x6c, 0x99, + 0x10, 0x76, 0x39, 0xe7, 0xfc, 0xfe, 0x2f, 0xc3, 0x81, 0x33, 0x86, 0xc8, 0xb2, 0x94, 0x24, 0x19, + 0x9a, 0x15, 0xa1, 0x46, 0xe3, 0x26, 0x23, 0x2f, 0xbd, 0x65, 0xaa, 0x69, 0x8f, 0x70, 0x8c, 0x72, + 0x89, 0x1a, 0x83, 0x96, 0xa3, 0x22, 0x4b, 0x45, 0x8e, 0x8a, 0x4a, 0xea, 0xe8, 0xb8, 0xb4, 0xa0, + 0x39, 0x27, 0x54, 0x08, 0xd4, 0x54, 0x73, 0x14, 0xca, 0x49, 0xc3, 0x67, 0xa8, 0xdd, 0x89, 0xdc, + 0xe8, 0x21, 0x8a, 0x35, 0x67, 0xc1, 0x08, 0x80, 0x25, 0x6a, 0xa1, 0xd0, 0xc8, 0x24, 0x6d, 0x7a, + 0x6d, 0xaf, 0x53, 0xbb, 0x3c, 0x8f, 0xf6, 0xd8, 0x47, 0xa3, 0x44, 0x3d, 0x5a, 0x7a, 0x5c, 0x89, + 0x7d, 0xf6, 0xf9, 0x18, 0xfc, 0x83, 0xaa, 0x33, 0x09, 0x0d, 0xfc, 0x7f, 0x30, 0x7a, 0x1b, 0x31, + 0x83, 0x46, 0x11, 0xb1, 0x4a, 0x95, 0xe6, 0xc2, 0x76, 0x29, 0x73, 0x2e, 0x7e, 0xcb, 0xb9, 0xdd, + 0x4a, 0xc6, 0x95, 0xb8, 0xce, 0x76, 0x26, 0x83, 0x03, 0xa8, 0x7d, 0xf3, 0x0c, 0xbb, 0xe0, 0x7f, + 0x55, 0x0b, 0x4e, 0x00, 0x78, 0xf1, 0xcb, 0x85, 0x91, 0x5c, 0x35, 0xbd, 0xf6, 0xdf, 0x8e, 0x1f, + 0xfb, 0x76, 0x32, 0x95, 0x5c, 0x85, 0x37, 0x50, 0xdf, 0xb5, 0x0f, 0xba, 0x70, 0x88, 0xb6, 0x74, + 0xa1, 0x58, 0xe4, 0x32, 0x5d, 0xf3, 0x57, 0x5b, 0xd3, 0x8f, 0x1b, 0x6e, 0x31, 0x95, 0x7c, 0x62, + 0xc7, 0x83, 0x37, 0x0f, 0x4e, 0x13, 0xdc, 0xec, 0x6b, 0x3f, 0xf1, 0x9e, 0xfa, 0xe5, 0x9a, 0x61, + 0x46, 0x05, 0x8b, 0x50, 0x32, 0xc2, 0x52, 0x61, 0x8f, 0x40, 0xdc, 0x8a, 0xe6, 0x5c, 0xfd, 0x78, + 0xe8, 0x6b, 0xf7, 0x7c, 0xff, 0xd3, 0x1a, 0x59, 0x70, 0x3e, 0x2c, 0xa0, 0x79, 0xdf, 0x68, 0xbc, + 0xcf, 0xe6, 0x33, 0x07, 0x2d, 0xab, 0xd6, 0xeb, 0xea, 0x23, 0x00, 0x00, 0xff, 0xff, 0x56, 0x2c, + 0xc8, 0x9a, 0x33, 0x02, 0x00, 0x00, } diff --git a/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/model.pb.go b/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/model.pb.go index ce5389e90..6dba79496 100644 --- a/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/model.pb.go +++ b/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/model.pb.go @@ -47,7 +47,7 @@ func (x Model_DeploymentState) String() string { return proto.EnumName(Model_DeploymentState_name, int32(x)) } func (Model_DeploymentState) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_model_2836c0ea5c1ddbd5, []int{0, 0} + return fileDescriptor_model_68def19a41c10297, []int{0, 0} } // API proto representing a trained machine learning model. @@ -92,7 +92,7 @@ func (m *Model) Reset() { *m = Model{} } func (m *Model) String() string { return proto.CompactTextString(m) } func (*Model) ProtoMessage() {} func (*Model) Descriptor() ([]byte, []int) { - return fileDescriptor_model_2836c0ea5c1ddbd5, []int{0} + return fileDescriptor_model_68def19a41c10297, []int{0} } func (m *Model) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Model.Unmarshal(m, b) @@ -303,41 +303,42 @@ func init() { } func init() { - proto.RegisterFile("google/cloud/automl/v1beta1/model.proto", fileDescriptor_model_2836c0ea5c1ddbd5) + proto.RegisterFile("google/cloud/automl/v1beta1/model.proto", fileDescriptor_model_68def19a41c10297) } -var fileDescriptor_model_2836c0ea5c1ddbd5 = []byte{ - // 501 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x93, 0xd1, 0x6e, 0xd3, 0x30, - 0x14, 0x86, 0x97, 0x01, 0x63, 0x3b, 0x1d, 0x6d, 0xe5, 0xab, 0xa8, 0x0c, 0x35, 0x14, 0x09, 0x7a, - 0x43, 0xa2, 0x15, 0x71, 0x35, 0xb8, 0xd8, 0xd6, 0x20, 0x2a, 0xd1, 0x52, 0xda, 0xec, 0x02, 0x24, - 0x14, 0xb9, 0x89, 0x1b, 0x59, 0x4a, 0xe2, 0xa8, 0x39, 0x41, 0xdb, 0x33, 0x20, 0xf1, 0x2e, 0xbc, - 0x21, 0x8a, 0xed, 0x16, 0x5a, 0x31, 0xf7, 0xae, 0x3e, 0xe7, 0xfb, 0x8f, 0x7f, 0xff, 0x3d, 0x81, - 0x57, 0x89, 0x10, 0x49, 0xca, 0xbc, 0x28, 0x15, 0x55, 0xec, 0xd1, 0x0a, 0x45, 0x96, 0x7a, 0x3f, - 0xce, 0x17, 0x0c, 0xe9, 0xb9, 0x97, 0x89, 0x98, 0xa5, 0x6e, 0xb1, 0x12, 0x28, 0xc8, 0x53, 0x05, - 0xba, 0x12, 0x74, 0x15, 0xe8, 0x6a, 0xb0, 0x73, 0xa6, 0xa7, 0xd0, 0x82, 0x7b, 0x34, 0xcf, 0x05, - 0x52, 0xe4, 0x22, 0x2f, 0x95, 0xb4, 0x63, 0xbc, 0x83, 0x67, 0x34, 0x61, 0x1a, 0x7c, 0x69, 0x02, - 0x91, 0xdd, 0xa2, 0xe6, 0x5e, 0x1b, 0xb9, 0x15, 0xcd, 0xcb, 0x54, 0x1a, 0xd0, 0x78, 0x57, 0xe3, - 0xf2, 0xb4, 0xa8, 0x96, 0x1e, 0xf2, 0x8c, 0x95, 0x48, 0xb3, 0x42, 0x01, 0xbd, 0xdf, 0x47, 0xf0, - 0x68, 0x5c, 0xbf, 0x95, 0xfc, 0xb2, 0xe0, 0x85, 0x74, 0x14, 0x46, 0x29, 0x2d, 0x4b, 0xbe, 0xe4, - 0x91, 0x9c, 0x14, 0xca, 0x28, 0xc2, 0x8c, 0x21, 0x8d, 0x29, 0x52, 0xfb, 0x89, 0x63, 0xf5, 0x1b, - 0x83, 0xf7, 0xae, 0x21, 0x14, 0x77, 0x54, 0xcf, 0xb9, 0xde, 0x1a, 0x23, 0x2f, 0x19, 0xeb, 0x21, - 0x1f, 0x0f, 0x66, 0x0e, 0xdf, 0xc3, 0x90, 0x9f, 0x16, 0xf4, 0xea, 0x97, 0xef, 0xf1, 0xd3, 0x94, - 0x7e, 0xde, 0x19, 0xfd, 0x04, 0xec, 0x16, 0xcd, 0x76, 0xba, 0x68, 0x46, 0x48, 0x05, 0x9d, 0x7f, - 0xe2, 0xdd, 0x35, 0xd1, 0x92, 0x26, 0xde, 0x9a, 0x4d, 0xfc, 0x95, 0xef, 0xde, 0x6e, 0xe3, 0x3d, - 0x3d, 0x42, 0xe0, 0x61, 0x4e, 0x33, 0x66, 0x5b, 0x8e, 0xd5, 0x3f, 0x99, 0xc9, 0xdf, 0xe4, 0x39, - 0x9c, 0xc6, 0xbc, 0x2c, 0x52, 0x7a, 0x17, 0xca, 0xde, 0xa1, 0xec, 0x35, 0x74, 0x6d, 0x52, 0x23, - 0xcf, 0x00, 0x6a, 0x79, 0xc9, 0x30, 0xe4, 0xb1, 0xfd, 0x40, 0x02, 0x27, 0xba, 0x32, 0x8a, 0xc9, - 0x05, 0x34, 0xa2, 0x15, 0xa3, 0xc8, 0xc2, 0x7a, 0x1f, 0xec, 0xc7, 0xd2, 0x7d, 0x67, 0xed, 0x7e, - 0xbd, 0x2c, 0x6e, 0xb0, 0x5e, 0x96, 0x19, 0x28, 0xbc, 0x2e, 0xd4, 0xe2, 0xaa, 0x88, 0x37, 0xe2, - 0xc6, 0x7e, 0xb1, 0xc2, 0xa5, 0xf8, 0x3b, 0xb4, 0x63, 0x56, 0xa4, 0xe2, 0x2e, 0x63, 0x39, 0x86, - 0x25, 0x52, 0x64, 0xf6, 0xb1, 0x63, 0xf5, 0x9b, 0x83, 0x81, 0x31, 0x3c, 0x99, 0x8a, 0x3b, 0xdc, - 0x48, 0xe7, 0xb5, 0x72, 0xd6, 0x8a, 0xb7, 0x0b, 0xbd, 0x2f, 0xd0, 0xda, 0x61, 0x88, 0x03, 0x67, - 0x43, 0x7f, 0xfa, 0xe9, 0xf3, 0xd7, 0xb1, 0x3f, 0x09, 0xc2, 0x79, 0x70, 0x19, 0xf8, 0xe1, 0xcd, - 0x64, 0x3e, 0xf5, 0xaf, 0x47, 0x1f, 0x46, 0xfe, 0xb0, 0x7d, 0x40, 0x4e, 0xe1, 0x58, 0x11, 0xfe, - 0xb0, 0x6d, 0x91, 0x26, 0xc0, 0xcd, 0x64, 0x73, 0x3e, 0xbc, 0x6a, 0x43, 0x73, 0xfb, 0xcf, 0xbe, - 0x5a, 0x42, 0x37, 0x12, 0x99, 0xc9, 0xee, 0xd4, 0xfa, 0x76, 0xa9, 0xdb, 0x89, 0x48, 0x69, 0x9e, - 0xb8, 0x62, 0x95, 0x78, 0x09, 0xcb, 0x65, 0x3a, 0x9e, 0x6a, 0xd1, 0x82, 0x97, 0xff, 0xfd, 0x8e, - 0x2f, 0xd4, 0x71, 0x71, 0x24, 0xe9, 0x37, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0xf0, 0x10, 0xe2, - 0xaa, 0xa9, 0x04, 0x00, 0x00, +var fileDescriptor_model_68def19a41c10297 = []byte{ + // 522 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x93, 0xdf, 0x6e, 0x12, 0x41, + 0x14, 0xc6, 0xbb, 0xa8, 0xb5, 0x1d, 0x2a, 0x90, 0xb9, 0xda, 0xd0, 0x1a, 0x10, 0x13, 0xe5, 0xc6, + 0xdd, 0x14, 0xe3, 0x55, 0xf5, 0x82, 0xc2, 0xaa, 0x24, 0x82, 0x08, 0xd4, 0x44, 0x83, 0xd9, 0x0c, + 0xec, 0x74, 0x33, 0xc9, 0xec, 0xce, 0x86, 0x3d, 0x6b, 0xda, 0x7b, 0xef, 0x4c, 0x7c, 0x17, 0x5f, + 0xc3, 0xa7, 0x32, 0xf3, 0x07, 0x14, 0xa2, 0xc3, 0x1d, 0x73, 0xce, 0xef, 0x3b, 0xf3, 0xcd, 0xc7, + 0x59, 0xf4, 0x34, 0x16, 0x22, 0xe6, 0xd4, 0x5f, 0x72, 0x51, 0x44, 0x3e, 0x29, 0x40, 0x24, 0xdc, + 0xff, 0x7a, 0xbe, 0xa0, 0x40, 0xce, 0xfd, 0x44, 0x44, 0x94, 0x7b, 0xd9, 0x4a, 0x80, 0xc0, 0xa7, + 0x1a, 0xf4, 0x14, 0xe8, 0x69, 0xd0, 0x33, 0x60, 0xfd, 0xcc, 0x4c, 0x21, 0x19, 0xf3, 0x49, 0x9a, + 0x0a, 0x20, 0xc0, 0x44, 0x9a, 0x6b, 0x69, 0xdd, 0x7a, 0x07, 0x4b, 0x48, 0x4c, 0x0d, 0xf8, 0xc4, + 0x06, 0x02, 0xbd, 0x01, 0xc3, 0x3d, 0xb3, 0x72, 0x2b, 0x92, 0xe6, 0x5c, 0x19, 0x30, 0x78, 0xc3, + 0xe0, 0xea, 0xb4, 0x28, 0xae, 0x7d, 0x60, 0x09, 0xcd, 0x81, 0x24, 0x99, 0x06, 0x5a, 0x3f, 0x0f, + 0xd1, 0xbd, 0xa1, 0x7c, 0x2b, 0xfe, 0xe1, 0xa0, 0xc7, 0xca, 0x51, 0xb8, 0xe4, 0x24, 0xcf, 0xd9, + 0x35, 0x5b, 0xaa, 0x49, 0xa1, 0x8a, 0x22, 0x4c, 0x28, 0x90, 0x88, 0x00, 0x71, 0x1f, 0x34, 0x9d, + 0x76, 0xb9, 0xf3, 0xca, 0xb3, 0x84, 0xe2, 0x0d, 0xe4, 0x9c, 0xde, 0xd6, 0x18, 0x75, 0xc9, 0xd0, + 0x0c, 0x79, 0x7b, 0x30, 0x69, 0xb2, 0x3d, 0x0c, 0xfe, 0xee, 0xa0, 0x96, 0x7c, 0xf9, 0x1e, 0x3f, + 0x15, 0xe5, 0xe7, 0xa5, 0xd5, 0xcf, 0x8c, 0xde, 0x80, 0xdd, 0x4e, 0x03, 0xec, 0x08, 0x2e, 0x50, + 0xfd, 0xaf, 0x78, 0x77, 0x4d, 0x54, 0x95, 0x89, 0x17, 0x76, 0x13, 0x7f, 0xe4, 0xbb, 0xb7, 0xbb, + 0xf0, 0x9f, 0x1e, 0xc6, 0xe8, 0x6e, 0x4a, 0x12, 0xea, 0x3a, 0x4d, 0xa7, 0x7d, 0x3c, 0x51, 0xbf, + 0xf1, 0x23, 0x74, 0x12, 0xb1, 0x3c, 0xe3, 0xe4, 0x36, 0x54, 0xbd, 0x92, 0xea, 0x95, 0x4d, 0x6d, + 0x24, 0x91, 0x87, 0x08, 0x49, 0x79, 0x4e, 0x21, 0x64, 0x91, 0x7b, 0x47, 0x01, 0xc7, 0xa6, 0x32, + 0x88, 0xf0, 0x05, 0x2a, 0x2f, 0x57, 0x94, 0x00, 0x0d, 0xe5, 0x3e, 0xb8, 0xf7, 0x95, 0xfb, 0xfa, + 0xda, 0xfd, 0x7a, 0x59, 0xbc, 0xd9, 0x7a, 0x59, 0x26, 0x48, 0xe3, 0xb2, 0x20, 0xc5, 0x45, 0x16, + 0x6d, 0xc4, 0xe5, 0xfd, 0x62, 0x8d, 0x2b, 0xf1, 0x17, 0x54, 0x8b, 0x68, 0xc6, 0xc5, 0x6d, 0x42, + 0x53, 0x08, 0x73, 0x20, 0x40, 0xdd, 0xa3, 0xa6, 0xd3, 0xae, 0x74, 0x3a, 0xd6, 0xf0, 0x54, 0x2a, + 0x5e, 0x7f, 0x23, 0x9d, 0x4a, 0xe5, 0xa4, 0x1a, 0x6d, 0x17, 0x5a, 0x1f, 0x50, 0x75, 0x87, 0xc1, + 0x4d, 0x74, 0xd6, 0x0f, 0xc6, 0xef, 0xde, 0x7f, 0x1a, 0x06, 0xa3, 0x59, 0x38, 0x9d, 0x75, 0x67, + 0x41, 0x78, 0x35, 0x9a, 0x8e, 0x83, 0xde, 0xe0, 0xf5, 0x20, 0xe8, 0xd7, 0x0e, 0xf0, 0x09, 0x3a, + 0xd2, 0x44, 0xd0, 0xaf, 0x39, 0xb8, 0x82, 0xd0, 0xd5, 0x68, 0x73, 0x2e, 0x5d, 0xd6, 0x50, 0x65, + 0xfb, 0xcf, 0xbe, 0xfc, 0xe6, 0xa0, 0xc6, 0x52, 0x24, 0x36, 0xbf, 0x63, 0xe7, 0x73, 0xd7, 0xb4, + 0x63, 0xc1, 0x49, 0x1a, 0x7b, 0x62, 0x15, 0xfb, 0x31, 0x4d, 0x55, 0x3c, 0xbe, 0x6e, 0x91, 0x8c, + 0xe5, 0xff, 0xfc, 0x90, 0x2f, 0xf4, 0xf1, 0x57, 0xe9, 0xf4, 0x8d, 0x02, 0xe7, 0x3d, 0x09, 0xcd, + 0xbb, 0x05, 0x88, 0x21, 0x9f, 0x7f, 0xd4, 0xd0, 0xe2, 0x50, 0xcd, 0x7a, 0xfe, 0x3b, 0x00, 0x00, + 0xff, 0xff, 0x01, 0x63, 0x79, 0x4b, 0xc8, 0x04, 0x00, 0x00, } diff --git a/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/model_evaluation.pb.go b/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/model_evaluation.pb.go index 503277d0c..c3c3c9955 100644 --- a/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/model_evaluation.pb.go +++ b/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/model_evaluation.pb.go @@ -55,7 +55,7 @@ func (m *ModelEvaluation) Reset() { *m = ModelEvaluation{} } func (m *ModelEvaluation) String() string { return proto.CompactTextString(m) } func (*ModelEvaluation) ProtoMessage() {} func (*ModelEvaluation) Descriptor() ([]byte, []int) { - return fileDescriptor_model_evaluation_77eb85cbfb723c98, []int{0} + return fileDescriptor_model_evaluation_0e495b83a4998d51, []int{0} } func (m *ModelEvaluation) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ModelEvaluation.Unmarshal(m, b) @@ -219,34 +219,35 @@ func init() { } func init() { - proto.RegisterFile("google/cloud/automl/v1beta1/model_evaluation.proto", fileDescriptor_model_evaluation_77eb85cbfb723c98) + proto.RegisterFile("google/cloud/automl/v1beta1/model_evaluation.proto", fileDescriptor_model_evaluation_0e495b83a4998d51) } -var fileDescriptor_model_evaluation_77eb85cbfb723c98 = []byte{ - // 388 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x52, 0x4f, 0x6b, 0xdb, 0x30, - 0x1c, 0x9d, 0xb7, 0x25, 0x5b, 0x94, 0xc3, 0x86, 0x60, 0xcc, 0x78, 0x61, 0xc9, 0x76, 0xca, 0x61, - 0x93, 0x96, 0x0c, 0x06, 0x23, 0xbd, 0x34, 0x21, 0xd0, 0x1e, 0x02, 0xc5, 0xcd, 0xa9, 0x17, 0xa3, - 0xc8, 0x8a, 0x11, 0xe8, 0x8f, 0xb1, 0xe4, 0xd0, 0x6b, 0xaf, 0xfd, 0x9c, 0xfd, 0x20, 0xc5, 0x92, - 0x13, 0x3b, 0x10, 0x7c, 0xb3, 0xfc, 0xde, 0xfb, 0xfd, 0xde, 0xd3, 0x13, 0x98, 0x67, 0x5a, 0x67, - 0x82, 0x61, 0x2a, 0x74, 0x99, 0x62, 0x52, 0x5a, 0x2d, 0x05, 0x3e, 0xcc, 0x76, 0xcc, 0x92, 0x19, - 0x96, 0x3a, 0x65, 0x22, 0x61, 0x07, 0x22, 0x4a, 0x62, 0xb9, 0x56, 0x28, 0x2f, 0xb4, 0xd5, 0xf0, - 0x9b, 0xd7, 0x20, 0xa7, 0x41, 0x5e, 0x83, 0x6a, 0x4d, 0x34, 0xaa, 0x07, 0x92, 0x9c, 0x63, 0xa2, - 0x94, 0xb6, 0x4e, 0x69, 0xbc, 0x34, 0xfa, 0xd3, 0xb5, 0x8e, 0x0a, 0x62, 0x0c, 0xdf, 0x73, 0xda, - 0x5a, 0x16, 0xfd, 0xee, 0x52, 0xd8, 0x82, 0x28, 0x23, 0xda, 0xf4, 0x71, 0x4d, 0x77, 0xa7, 0x5d, - 0xb9, 0xc7, 0x96, 0x4b, 0x66, 0x2c, 0x91, 0xb9, 0x27, 0xfc, 0x7c, 0x79, 0x07, 0x3e, 0x6d, 0xaa, - 0x5c, 0xeb, 0x53, 0x2c, 0xf8, 0x1c, 0x80, 0x1f, 0xe7, 0xcb, 0x5b, 0xa1, 0x13, 0xc9, 0x6c, 0xc1, - 0xa9, 0x09, 0x3f, 0x4e, 0x82, 0xe9, 0x70, 0x7e, 0x85, 0x3a, 0xd2, 0xa3, 0xd5, 0xd9, 0x94, 0x66, - 0xc5, 0xc6, 0xcf, 0xb8, 0x79, 0x13, 0x8f, 0x69, 0x37, 0x05, 0x3e, 0x05, 0xe0, 0x7b, 0x2b, 0xd7, - 0x25, 0x27, 0x03, 0xe7, 0xe4, 0x7f, 0xa7, 0x93, 0x6d, 0x33, 0xe2, 0x92, 0x8d, 0x91, 0xed, 0xc0, - 0x21, 0x04, 0xef, 0x15, 0x91, 0x2c, 0x0c, 0x26, 0xc1, 0x74, 0x10, 0xbb, 0x6f, 0xf8, 0x0b, 0xc0, - 0xa6, 0xcf, 0xc4, 0xe4, 0x8c, 0x26, 0x3c, 0x0d, 0xdf, 0x3a, 0xc6, 0xe7, 0x06, 0xb9, 0xcf, 0x19, - 0xbd, 0x4d, 0xe1, 0x02, 0x0c, 0x69, 0xc1, 0x88, 0x65, 0x49, 0x55, 0x40, 0xd8, 0x73, 0x8e, 0xa3, - 0xa3, 0xe3, 0x63, 0x3b, 0x68, 0x7b, 0x6c, 0x27, 0x06, 0x9e, 0x5e, 0xfd, 0x80, 0xff, 0xc0, 0xd7, - 0x3a, 0x35, 0x4b, 0x13, 0xf6, 0x48, 0x64, 0x2e, 0x58, 0x42, 0x75, 0xa9, 0x6c, 0xd8, 0x9f, 0x04, - 0xd3, 0x5e, 0xfc, 0xe5, 0x04, 0xaf, 0x3d, 0xba, 0xaa, 0xc0, 0xe5, 0x00, 0x7c, 0xa8, 0xaf, 0x68, - 0xb9, 0x07, 0x63, 0xaa, 0x65, 0xd7, 0x0d, 0xdd, 0x05, 0x0f, 0xd7, 0x35, 0x9c, 0x69, 0x41, 0x54, - 0x86, 0x74, 0x91, 0xe1, 0x8c, 0x29, 0x67, 0x0e, 0x7b, 0x88, 0xe4, 0xdc, 0x5c, 0x7c, 0x7a, 0x0b, - 0x7f, 0xdc, 0xf5, 0x1d, 0xfb, 0xef, 0x6b, 0x00, 0x00, 0x00, 0xff, 0xff, 0xd0, 0x78, 0x76, 0xc2, - 0x48, 0x03, 0x00, 0x00, +var fileDescriptor_model_evaluation_0e495b83a4998d51 = []byte{ + // 410 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x52, 0x4d, 0x8b, 0x13, 0x31, + 0x18, 0x36, 0xab, 0xbb, 0xda, 0xec, 0x41, 0x09, 0x88, 0xc3, 0xec, 0x62, 0xab, 0xa7, 0x1e, 0x34, + 0x71, 0x2b, 0x08, 0x52, 0x2f, 0x6d, 0x29, 0xea, 0xa1, 0x20, 0x63, 0xf1, 0x20, 0x85, 0x21, 0xcd, + 0xa4, 0x43, 0x20, 0x1f, 0xc3, 0x24, 0x53, 0xbc, 0x0a, 0x9e, 0xfc, 0x69, 0xfe, 0x0e, 0x7f, 0xc8, + 0x32, 0xc9, 0xb4, 0x33, 0x85, 0x32, 0xb7, 0xc9, 0x3c, 0x1f, 0xef, 0xf3, 0xe4, 0x0d, 0x9c, 0xe4, + 0xc6, 0xe4, 0x92, 0x13, 0x26, 0x4d, 0x95, 0x11, 0x5a, 0x39, 0xa3, 0x24, 0xd9, 0xdf, 0x6d, 0xb9, + 0xa3, 0x77, 0x44, 0x99, 0x8c, 0xcb, 0x94, 0xef, 0xa9, 0xac, 0xa8, 0x13, 0x46, 0xe3, 0xa2, 0x34, + 0xce, 0xa0, 0x9b, 0xa0, 0xc1, 0x5e, 0x83, 0x83, 0x06, 0x37, 0x9a, 0xf8, 0xb6, 0x31, 0xa4, 0x85, + 0x20, 0x54, 0x6b, 0xe3, 0xbc, 0xd2, 0x06, 0x69, 0xfc, 0xae, 0x6f, 0x1c, 0x93, 0xd4, 0x5a, 0xb1, + 0x13, 0xac, 0x33, 0x2c, 0x7e, 0xdb, 0xa7, 0x70, 0x25, 0xd5, 0x56, 0x76, 0xe9, 0xc3, 0x86, 0xee, + 0x4f, 0xdb, 0x6a, 0x47, 0x9c, 0x50, 0xdc, 0x3a, 0xaa, 0x8a, 0x40, 0x78, 0xfd, 0xff, 0x21, 0x7c, + 0xba, 0xaa, 0x7b, 0x2d, 0x8f, 0xb5, 0xd0, 0x5f, 0x00, 0x5f, 0x9d, 0x0e, 0xef, 0x94, 0x4e, 0x15, + 0x77, 0xa5, 0x60, 0x36, 0x7a, 0x32, 0x02, 0xe3, 0xeb, 0xc9, 0x27, 0xdc, 0xd3, 0x1e, 0x2f, 0x4e, + 0x5c, 0xda, 0x11, 0xab, 0xe0, 0xf1, 0xe5, 0x41, 0x32, 0x64, 0xfd, 0x14, 0xf4, 0x1b, 0xc0, 0x97, + 0x9d, 0x5e, 0xe7, 0x92, 0x0c, 0x7c, 0x92, 0x8f, 0xbd, 0x49, 0xd6, 0xad, 0xc5, 0xb9, 0x18, 0xb7, + 0xae, 0x07, 0x47, 0x08, 0x3e, 0xd2, 0x54, 0xf1, 0x08, 0x8c, 0xc0, 0x78, 0x90, 0xf8, 0x6f, 0xf4, + 0x06, 0xa2, 0x76, 0x9f, 0xa9, 0x2d, 0x38, 0x4b, 0x45, 0x16, 0x5d, 0x78, 0xc6, 0xb3, 0x16, 0xf9, + 0x5e, 0x70, 0xf6, 0x35, 0x43, 0x53, 0x78, 0xcd, 0x4a, 0x4e, 0x1d, 0x4f, 0xeb, 0x05, 0x44, 0x97, + 0x3e, 0x71, 0x7c, 0x48, 0x7c, 0xd8, 0x0e, 0x5e, 0x1f, 0xb6, 0x93, 0xc0, 0x40, 0xaf, 0x7f, 0xa0, + 0x0f, 0xf0, 0x45, 0xd3, 0x9a, 0x67, 0x29, 0xff, 0x45, 0x55, 0x21, 0x79, 0xca, 0x4c, 0xa5, 0x5d, + 0x74, 0x35, 0x02, 0xe3, 0xcb, 0xe4, 0xf9, 0x11, 0x5e, 0x06, 0x74, 0x51, 0x83, 0xf3, 0x01, 0x7c, + 0xdc, 0x5c, 0xd1, 0xfc, 0x0f, 0x80, 0x43, 0x66, 0x54, 0xdf, 0x15, 0x7d, 0x03, 0x3f, 0x67, 0x0d, + 0x9c, 0x1b, 0x49, 0x75, 0x8e, 0x4d, 0x99, 0x93, 0x9c, 0x6b, 0x9f, 0x8e, 0x04, 0x88, 0x16, 0xc2, + 0x9e, 0x7d, 0x7b, 0xd3, 0x70, 0xfc, 0x77, 0x71, 0xf3, 0xd9, 0x13, 0x37, 0x8b, 0x9a, 0xb4, 0x99, + 0x55, 0xce, 0xac, 0xe4, 0xe6, 0x47, 0x20, 0x6d, 0xaf, 0xbc, 0xd7, 0xfb, 0xfb, 0x00, 0x00, 0x00, + 0xff, 0xff, 0x5e, 0x71, 0x31, 0xe7, 0x67, 0x03, 0x00, 0x00, } diff --git a/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/operations.pb.go b/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/operations.pb.go index 69a8f895a..9d87101bb 100644 --- a/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/operations.pb.go +++ b/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/operations.pb.go @@ -50,7 +50,7 @@ func (m *OperationMetadata) Reset() { *m = OperationMetadata{} } func (m *OperationMetadata) String() string { return proto.CompactTextString(m) } func (*OperationMetadata) ProtoMessage() {} func (*OperationMetadata) Descriptor() ([]byte, []int) { - return fileDescriptor_operations_8f7a4667c678e484, []int{0} + return fileDescriptor_operations_45b6bac60e2a57c5, []int{0} } func (m *OperationMetadata) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OperationMetadata.Unmarshal(m, b) @@ -188,7 +188,7 @@ func (m *CreateModelOperationMetadata) Reset() { *m = CreateModelOperati func (m *CreateModelOperationMetadata) String() string { return proto.CompactTextString(m) } func (*CreateModelOperationMetadata) ProtoMessage() {} func (*CreateModelOperationMetadata) Descriptor() ([]byte, []int) { - return fileDescriptor_operations_8f7a4667c678e484, []int{1} + return fileDescriptor_operations_45b6bac60e2a57c5, []int{1} } func (m *CreateModelOperationMetadata) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateModelOperationMetadata.Unmarshal(m, b) @@ -214,33 +214,35 @@ func init() { } func init() { - proto.RegisterFile("google/cloud/automl/v1beta1/operations.proto", fileDescriptor_operations_8f7a4667c678e484) + proto.RegisterFile("google/cloud/automl/v1beta1/operations.proto", fileDescriptor_operations_45b6bac60e2a57c5) } -var fileDescriptor_operations_8f7a4667c678e484 = []byte{ - // 383 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x92, 0x4f, 0xab, 0xd3, 0x40, - 0x14, 0xc5, 0x6d, 0xeb, 0x1f, 0x9c, 0x22, 0xad, 0x41, 0x30, 0xd4, 0x62, 0x4b, 0x37, 0x56, 0x90, - 0x19, 0x5a, 0x57, 0x52, 0x5c, 0x58, 0x45, 0xdc, 0x14, 0x4b, 0x74, 0xe5, 0x26, 0xdc, 0x26, 0xb7, - 0x21, 0x30, 0xc9, 0x0c, 0x33, 0x37, 0x05, 0x3f, 0xb6, 0xdf, 0x40, 0x32, 0x33, 0xd1, 0xc7, 0x7b, - 0x8f, 0x74, 0x39, 0xf7, 0xfc, 0xce, 0xcd, 0xb9, 0x87, 0xb0, 0x77, 0x85, 0x52, 0x85, 0x44, 0x91, - 0x49, 0xd5, 0xe4, 0x02, 0x1a, 0x52, 0x95, 0x14, 0x97, 0xcd, 0x09, 0x09, 0x36, 0x42, 0x69, 0x34, - 0x40, 0xa5, 0xaa, 0x2d, 0xd7, 0x46, 0x91, 0x8a, 0x5e, 0x79, 0x9a, 0x3b, 0x9a, 0x7b, 0x9a, 0x07, - 0x7a, 0x36, 0x0f, 0xab, 0x40, 0x97, 0x02, 0xea, 0x5a, 0xd1, 0x4d, 0xeb, 0xec, 0x4d, 0xdf, 0x87, - 0x2a, 0x95, 0xa3, 0x0c, 0xe0, 0xf6, 0x2a, 0x98, 0xe2, 0x05, 0x64, 0xe3, 0xb6, 0x07, 0x4f, 0xc8, - 0x25, 0xdc, 0xeb, 0xd4, 0x9c, 0x05, 0x56, 0x9a, 0x7e, 0x07, 0x71, 0x71, 0x5b, 0xa4, 0xb2, 0x42, - 0x4b, 0x50, 0xe9, 0x00, 0xbc, 0x0c, 0x80, 0xd1, 0x99, 0xb0, 0x04, 0xd4, 0x84, 0xcc, 0xab, 0x3f, - 0x43, 0xf6, 0xfc, 0x7b, 0xd7, 0xc1, 0x01, 0x09, 0x72, 0x20, 0x88, 0x2a, 0xf6, 0x22, 0x33, 0x08, - 0x84, 0xa9, 0x4f, 0x93, 0x23, 0x41, 0x29, 0x6d, 0xcc, 0x96, 0x83, 0xf5, 0x78, 0xfb, 0x81, 0xf7, - 0x74, 0xc4, 0x3f, 0x3b, 0xe3, 0xa1, 0xf5, 0xdd, 0x59, 0xfc, 0xed, 0x41, 0x12, 0x65, 0xff, 0xf5, - 0x2f, 0x7e, 0x6d, 0xf4, 0x96, 0x4d, 0xb5, 0x51, 0x85, 0x41, 0x6b, 0x53, 0x8d, 0x26, 0xc3, 0x9a, - 0xe2, 0x67, 0xcb, 0xc1, 0xfa, 0x51, 0x32, 0xe9, 0xe6, 0x47, 0x3f, 0x8e, 0x3e, 0xb2, 0xa9, 0x06, - 0x43, 0x25, 0xc8, 0xf4, 0x0c, 0xa5, 0x6c, 0x0c, 0xda, 0x78, 0xb8, 0x1c, 0xad, 0xc7, 0xdb, 0xa8, - 0x4b, 0x65, 0x74, 0xc6, 0x7f, 0xb8, 0x1b, 0x93, 0x49, 0x60, 0xbf, 0x06, 0x34, 0xda, 0xb1, 0x71, - 0x38, 0xac, 0x6d, 0x28, 0x1e, 0xb9, 0x7b, 0x66, 0x9d, 0xb3, 0xab, 0x8f, 0xff, 0xec, 0xea, 0x4b, - 0x98, 0xc7, 0xdb, 0x41, 0x6b, 0x6e, 0x74, 0xfe, 0xcf, 0xfc, 0xf0, 0xba, 0xd9, 0xe3, 0xed, 0x60, - 0xff, 0x94, 0x3d, 0x09, 0x2d, 0xae, 0x5e, 0xb3, 0x79, 0x5f, 0x49, 0xfb, 0x33, 0x5b, 0x64, 0xaa, - 0xea, 0x2b, 0xf9, 0x38, 0xf8, 0xf5, 0x29, 0xc8, 0x85, 0x92, 0x50, 0x17, 0x5c, 0x99, 0x42, 0x14, - 0x58, 0xbb, 0x10, 0xc2, 0x4b, 0xa0, 0x4b, 0x7b, 0xef, 0x2f, 0xb6, 0xf3, 0xcf, 0xd3, 0x63, 0x47, - 0xbf, 0xff, 0x1b, 0x00, 0x00, 0xff, 0xff, 0xa3, 0x7b, 0xa7, 0x51, 0x21, 0x03, 0x00, 0x00, +var fileDescriptor_operations_45b6bac60e2a57c5 = []byte{ + // 409 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x92, 0x5f, 0x6b, 0xd4, 0x40, + 0x14, 0xc5, 0xcd, 0xd6, 0x3f, 0x38, 0x8b, 0xb4, 0x06, 0xc1, 0xb0, 0x2d, 0x76, 0xe9, 0x8b, 0x2b, + 0xc8, 0x0c, 0x5d, 0x9f, 0xa4, 0xf8, 0xd0, 0x56, 0xd4, 0x97, 0xc5, 0x12, 0xc5, 0x07, 0x59, 0x08, + 0x77, 0x93, 0xbb, 0x21, 0x30, 0xc9, 0x0c, 0x33, 0x77, 0x16, 0x7c, 0xf7, 0xd3, 0xf9, 0x6d, 0xfc, + 0x06, 0x92, 0x99, 0x89, 0x8a, 0x96, 0xec, 0xe3, 0xdc, 0xfb, 0x3b, 0x27, 0xe7, 0x1e, 0xc2, 0x5e, + 0xd6, 0x4a, 0xd5, 0x12, 0x45, 0x29, 0x95, 0xab, 0x04, 0x38, 0x52, 0xad, 0x14, 0xbb, 0xf3, 0x0d, + 0x12, 0x9c, 0x0b, 0xa5, 0xd1, 0x00, 0x35, 0xaa, 0xb3, 0x5c, 0x1b, 0x45, 0x2a, 0x3d, 0x0e, 0x34, + 0xf7, 0x34, 0x0f, 0x34, 0x8f, 0xf4, 0xec, 0x24, 0x5a, 0x81, 0x6e, 0x04, 0x74, 0x9d, 0xa2, 0xbf, + 0xa5, 0xb3, 0xe7, 0x63, 0x1f, 0x6a, 0x55, 0x85, 0x32, 0x82, 0xcb, 0xbd, 0x60, 0x81, 0x3b, 0x90, + 0xce, 0xbb, 0x47, 0x4d, 0xcc, 0x25, 0xfc, 0x6b, 0xe3, 0xb6, 0x02, 0x5b, 0x4d, 0xdf, 0xe2, 0xf2, + 0xf4, 0xdf, 0x25, 0x35, 0x2d, 0x5a, 0x82, 0x56, 0x47, 0xe0, 0x69, 0x04, 0x8c, 0x2e, 0x85, 0x25, + 0x20, 0x17, 0x33, 0x9f, 0xfd, 0x9c, 0xb0, 0xc7, 0x1f, 0x87, 0x0e, 0x56, 0x48, 0x50, 0x01, 0x41, + 0xda, 0xb2, 0x27, 0xa5, 0x41, 0x20, 0x2c, 0x42, 0x9a, 0x0a, 0x09, 0x1a, 0x69, 0x33, 0x36, 0x4f, + 0x16, 0xd3, 0xe5, 0x6b, 0x3e, 0xd2, 0x11, 0xbf, 0xf6, 0xc2, 0x55, 0xaf, 0xfb, 0xcf, 0xf8, 0xc3, + 0x9d, 0x3c, 0x2d, 0xff, 0xec, 0xdf, 0x06, 0xdb, 0xf4, 0x05, 0x3b, 0xd2, 0x46, 0xd5, 0x06, 0xad, + 0x2d, 0x34, 0x9a, 0x12, 0x3b, 0xca, 0x1e, 0xcd, 0x93, 0xc5, 0xbd, 0xfc, 0x70, 0x98, 0xdf, 0x84, + 0x71, 0xfa, 0x86, 0x1d, 0x69, 0x30, 0xd4, 0x80, 0x2c, 0xb6, 0xd0, 0x48, 0x67, 0xd0, 0x66, 0x93, + 0xf9, 0xc1, 0x62, 0xba, 0x4c, 0x87, 0x54, 0x46, 0x97, 0xfc, 0x93, 0xbf, 0x31, 0x3f, 0x8c, 0xec, + 0xbb, 0x88, 0xa6, 0x17, 0x6c, 0x1a, 0x0f, 0xeb, 0x1b, 0xca, 0x0e, 0xfc, 0x3d, 0xb3, 0x41, 0x39, + 0xd4, 0xc7, 0x3f, 0x0f, 0xf5, 0xe5, 0x2c, 0xe0, 0xfd, 0xa0, 0x17, 0x3b, 0x5d, 0xfd, 0x16, 0xdf, + 0xdd, 0x2f, 0x0e, 0x78, 0x3f, 0xb8, 0x7a, 0xc8, 0x1e, 0xc4, 0x16, 0xcf, 0x9e, 0xb1, 0x93, 0xb1, + 0x92, 0xae, 0xbe, 0x27, 0xec, 0xb4, 0x54, 0xed, 0x58, 0xcb, 0x37, 0xc9, 0xd7, 0xcb, 0xb8, 0xae, + 0x95, 0x84, 0xae, 0xe6, 0xca, 0xd4, 0xa2, 0xc6, 0xce, 0xa7, 0x10, 0x61, 0x05, 0xba, 0xb1, 0xb7, + 0xfe, 0x63, 0x17, 0xe1, 0xf9, 0x63, 0x72, 0xfc, 0xde, 0x83, 0xeb, 0xeb, 0x1e, 0x5a, 0x5f, 0x3a, + 0x52, 0x2b, 0xb9, 0xfe, 0x12, 0xa0, 0xcd, 0x7d, 0xef, 0xf5, 0xea, 0x57, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xa9, 0x8b, 0x31, 0xeb, 0x40, 0x03, 0x00, 0x00, } diff --git a/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/prediction_service.pb.go b/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/prediction_service.pb.go index 9a9084e66..81a87dc46 100644 --- a/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/prediction_service.pb.go +++ b/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/prediction_service.pb.go @@ -51,7 +51,7 @@ func (m *PredictRequest) Reset() { *m = PredictRequest{} } func (m *PredictRequest) String() string { return proto.CompactTextString(m) } func (*PredictRequest) ProtoMessage() {} func (*PredictRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_prediction_service_1b71b7f556fd7159, []int{0} + return fileDescriptor_prediction_service_21460c7fedea4ded, []int{0} } func (m *PredictRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PredictRequest.Unmarshal(m, b) @@ -111,7 +111,7 @@ func (m *PredictResponse) Reset() { *m = PredictResponse{} } func (m *PredictResponse) String() string { return proto.CompactTextString(m) } func (*PredictResponse) ProtoMessage() {} func (*PredictResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_prediction_service_1b71b7f556fd7159, []int{1} + return fileDescriptor_prediction_service_21460c7fedea4ded, []int{1} } func (m *PredictResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PredictResponse.Unmarshal(m, b) @@ -227,38 +227,40 @@ var _PredictionService_serviceDesc = grpc.ServiceDesc{ } func init() { - proto.RegisterFile("google/cloud/automl/v1beta1/prediction_service.proto", fileDescriptor_prediction_service_1b71b7f556fd7159) + proto.RegisterFile("google/cloud/automl/v1beta1/prediction_service.proto", fileDescriptor_prediction_service_21460c7fedea4ded) } -var fileDescriptor_prediction_service_1b71b7f556fd7159 = []byte{ - // 462 bytes of a gzipped FileDescriptorProto +var fileDescriptor_prediction_service_21460c7fedea4ded = []byte{ + // 486 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x93, 0xdf, 0x8a, 0xd3, 0x40, - 0x14, 0xc6, 0x99, 0x56, 0x77, 0xdd, 0x29, 0xfe, 0x1b, 0x44, 0x4a, 0x14, 0x2c, 0xbd, 0x2a, 0xdd, - 0x65, 0x86, 0xad, 0xc2, 0x6a, 0x57, 0x2f, 0xb6, 0x50, 0xf0, 0x46, 0x0c, 0x11, 0xbc, 0xf0, 0xa6, - 0x9c, 0x4d, 0x0e, 0x21, 0x3a, 0xc9, 0x8c, 0x99, 0x49, 0xb1, 0x88, 0x5e, 0xf8, 0x0a, 0xbe, 0x84, - 0x4f, 0xe1, 0x4b, 0xf8, 0x0a, 0x3e, 0x80, 0x77, 0xde, 0x4a, 0x32, 0x63, 0xd6, 0x65, 0x25, 0x6c, - 0xef, 0x32, 0x7f, 0x7e, 0xdf, 0xf9, 0xbe, 0xcc, 0x39, 0xf4, 0x51, 0xaa, 0x54, 0x2a, 0x51, 0xc4, - 0x52, 0x55, 0x89, 0x80, 0xca, 0xaa, 0x5c, 0x8a, 0xf5, 0xe1, 0x29, 0x5a, 0x38, 0x14, 0xba, 0xc4, - 0x24, 0x8b, 0x6d, 0xa6, 0x8a, 0x95, 0xc1, 0x72, 0x9d, 0xc5, 0xc8, 0x75, 0xa9, 0xac, 0x62, 0xf7, - 0x1c, 0xc5, 0x1b, 0x8a, 0x3b, 0x8a, 0x7b, 0x2a, 0xb8, 0xef, 0x25, 0x41, 0x67, 0x02, 0x8a, 0x42, - 0x59, 0xa8, 0x15, 0x8c, 0x43, 0x83, 0xce, 0x82, 0x67, 0xd7, 0x57, 0x1a, 0x36, 0x52, 0x41, 0xe2, - 0xa9, 0x83, 0x2e, 0x2a, 0x01, 0x0b, 0xab, 0xcc, 0x62, 0xee, 0x6b, 0x8c, 0x7f, 0x13, 0x7a, 0x23, - 0x74, 0xde, 0x23, 0x7c, 0x5f, 0xa1, 0xb1, 0x8c, 0xd1, 0x2b, 0x05, 0xe4, 0x38, 0x24, 0x23, 0x32, - 0xd9, 0x8b, 0x9a, 0x6f, 0xb6, 0xa4, 0xbb, 0xbe, 0xca, 0xb0, 0x37, 0x22, 0x93, 0xc1, 0x6c, 0x9f, - 0x77, 0xe4, 0xe2, 0xcb, 0x0f, 0x90, 0x6b, 0x89, 0xa1, 0x43, 0xa2, 0xbf, 0x2c, 0x7b, 0x49, 0x77, - 0x34, 0x94, 0x90, 0x9b, 0x61, 0x7f, 0xd4, 0x9f, 0x0c, 0x66, 0x47, 0x9d, 0x2a, 0xe7, 0x7d, 0xf1, - 0xb0, 0x21, 0x97, 0x85, 0x2d, 0x37, 0x91, 0x97, 0x09, 0x9e, 0xd0, 0xc1, 0x3f, 0xdb, 0xec, 0x16, - 0xed, 0xbf, 0xc3, 0x8d, 0x77, 0x5e, 0x7f, 0xb2, 0x3b, 0xf4, 0xea, 0x1a, 0x64, 0x85, 0x8d, 0xed, - 0xbd, 0xc8, 0x2d, 0xe6, 0xbd, 0xc7, 0x64, 0xfc, 0x8b, 0xd0, 0x9b, 0x6d, 0x05, 0xa3, 0x55, 0x61, - 0x90, 0x3d, 0x3f, 0x8b, 0x49, 0x1a, 0x83, 0xbc, 0xd3, 0xe0, 0x49, 0xfb, 0x06, 0x17, 0x92, 0xbe, - 0xa6, 0xd7, 0x72, 0xb4, 0x50, 0xff, 0xef, 0x61, 0xaf, 0x91, 0x9a, 0x5f, 0x2e, 0xab, 0x73, 0xc2, - 0x5f, 0x78, 0xd8, 0xc5, 0x6d, 0xb5, 0x82, 0x63, 0x7a, 0xfd, 0xdc, 0xd1, 0x36, 0x91, 0x67, 0xdf, - 0x09, 0xbd, 0x1d, 0xb6, 0x8d, 0xfa, 0xca, 0xf5, 0x29, 0xfb, 0x46, 0xe8, 0xae, 0xdf, 0x65, 0xfb, - 0x5b, 0x3c, 0x48, 0x70, 0xb0, 0x4d, 0xa2, 0xf1, 0xe2, 0xcb, 0x8f, 0x9f, 0x5f, 0x7b, 0x4f, 0xc7, - 0x47, 0x6d, 0x33, 0x7e, 0xac, 0x5b, 0xeb, 0x99, 0x2e, 0xd5, 0x5b, 0x8c, 0xad, 0x11, 0x53, 0x21, - 0x55, 0xec, 0x06, 0x40, 0x4c, 0x45, 0xae, 0x12, 0x94, 0x46, 0x4c, 0x3f, 0xcd, 0xfd, 0x68, 0xcd, - 0xc9, 0x74, 0xf1, 0x99, 0x3e, 0x88, 0x55, 0xde, 0x55, 0x76, 0x71, 0xf7, 0x42, 0xc0, 0xb0, 0x6e, - 0xf4, 0x90, 0xbc, 0x39, 0xf1, 0x58, 0xaa, 0x24, 0x14, 0x29, 0x57, 0x65, 0x2a, 0x52, 0x2c, 0x9a, - 0x31, 0x10, 0xee, 0x08, 0x74, 0x66, 0xfe, 0x3b, 0x37, 0xc7, 0x6e, 0x79, 0xba, 0xd3, 0xdc, 0x7e, - 0xf8, 0x27, 0x00, 0x00, 0xff, 0xff, 0xb5, 0xb3, 0x24, 0x52, 0x0b, 0x04, 0x00, 0x00, + 0x14, 0xc6, 0x99, 0x54, 0x77, 0xdd, 0x29, 0xfe, 0x1b, 0x44, 0x4a, 0x56, 0xb0, 0xf4, 0xaa, 0x74, + 0x97, 0x19, 0xb6, 0x0a, 0xab, 0x5d, 0xbd, 0x68, 0xa5, 0xe8, 0xcd, 0x62, 0x88, 0xb0, 0x17, 0x52, + 0x28, 0xb3, 0xc9, 0x10, 0xa2, 0x93, 0x9c, 0x98, 0x99, 0x14, 0x8b, 0x78, 0xe3, 0x2b, 0x78, 0xeb, + 0x03, 0xf8, 0x14, 0x3e, 0x80, 0xb7, 0xbe, 0x82, 0x0f, 0xe0, 0x9d, 0xb7, 0x92, 0x99, 0x31, 0xeb, + 0xb2, 0x12, 0xb6, 0x77, 0x49, 0xe6, 0xfc, 0xbe, 0xf3, 0x7d, 0x99, 0x73, 0xf0, 0xc3, 0x04, 0x20, + 0x91, 0x82, 0x45, 0x12, 0xaa, 0x98, 0xf1, 0x4a, 0x43, 0x26, 0xd9, 0xea, 0xe0, 0x54, 0x68, 0x7e, + 0xc0, 0x8a, 0x52, 0xc4, 0x69, 0xa4, 0x53, 0xc8, 0x97, 0x4a, 0x94, 0xab, 0x34, 0x12, 0xb4, 0x28, + 0x41, 0x03, 0xd9, 0xb5, 0x14, 0x35, 0x14, 0xb5, 0x14, 0x75, 0x94, 0x7f, 0xcf, 0x49, 0xf2, 0x22, + 0x65, 0x3c, 0xcf, 0x41, 0xf3, 0x5a, 0x41, 0x59, 0xd4, 0x6f, 0x6d, 0x78, 0x56, 0xbe, 0x2c, 0xf8, + 0x5a, 0x02, 0x8f, 0x1d, 0xb5, 0xdf, 0x46, 0xc5, 0x5c, 0xf3, 0x65, 0xaa, 0x45, 0xe6, 0x7a, 0x0c, + 0x7e, 0x23, 0x7c, 0x23, 0xb0, 0xde, 0x43, 0xf1, 0xae, 0x12, 0x4a, 0x13, 0x82, 0xaf, 0xe4, 0x3c, + 0x13, 0x3d, 0xd4, 0x47, 0xc3, 0x9d, 0xd0, 0x3c, 0x93, 0x39, 0xde, 0x76, 0x5d, 0x7a, 0x5e, 0x1f, + 0x0d, 0xbb, 0xe3, 0x3d, 0xda, 0x92, 0x8b, 0xce, 0xdf, 0xf3, 0xac, 0x90, 0x22, 0xb0, 0x48, 0xf8, + 0x97, 0x25, 0x2f, 0xf1, 0x56, 0xc1, 0x4b, 0x9e, 0xa9, 0x5e, 0xa7, 0xdf, 0x19, 0x76, 0xc7, 0x87, + 0xad, 0x2a, 0xe7, 0x7d, 0xd1, 0xc0, 0x90, 0xf3, 0x5c, 0x97, 0xeb, 0xd0, 0xc9, 0xf8, 0x8f, 0x71, + 0xf7, 0x9f, 0xcf, 0xe4, 0x16, 0xee, 0xbc, 0x15, 0x6b, 0xe7, 0xbc, 0x7e, 0x24, 0x77, 0xf0, 0xd5, + 0x15, 0x97, 0x95, 0x30, 0xb6, 0x77, 0x42, 0xfb, 0x32, 0xf1, 0x1e, 0xa1, 0xc1, 0x2f, 0x84, 0x6f, + 0x36, 0x1d, 0x54, 0x01, 0xb9, 0x12, 0xe4, 0xc5, 0x59, 0x4c, 0x64, 0x0c, 0xd2, 0x56, 0x83, 0xd3, + 0xe6, 0x0e, 0x2e, 0x24, 0x3d, 0xc1, 0xd7, 0x32, 0xa1, 0x79, 0xfd, 0xbf, 0x7b, 0x9e, 0x91, 0x9a, + 0x5c, 0x2e, 0xab, 0x75, 0x42, 0x8f, 0x1d, 0x6c, 0xe3, 0x36, 0x5a, 0xfe, 0x11, 0xbe, 0x7e, 0xee, + 0x68, 0x93, 0xc8, 0xe3, 0x6f, 0x08, 0xdf, 0x0e, 0x9a, 0x41, 0x7d, 0x65, 0xe7, 0x94, 0x7c, 0x45, + 0x78, 0xdb, 0x7d, 0x25, 0x7b, 0x1b, 0x5c, 0x88, 0xbf, 0xbf, 0x49, 0xa2, 0xc1, 0xec, 0xd3, 0x8f, + 0x9f, 0x9f, 0xbd, 0x27, 0x83, 0xc3, 0x66, 0x18, 0x3f, 0xd4, 0xa3, 0xf5, 0xb4, 0x28, 0xe1, 0x8d, + 0x88, 0xb4, 0x62, 0x23, 0x26, 0x21, 0xb2, 0x0b, 0xc0, 0x46, 0x2c, 0x83, 0x58, 0x48, 0xc5, 0x46, + 0x1f, 0x27, 0x6e, 0xb5, 0x26, 0x68, 0x34, 0xfb, 0x82, 0xf0, 0xfd, 0x08, 0xb2, 0xb6, 0xbe, 0xb3, + 0xbb, 0x17, 0x12, 0x06, 0xf5, 0xa4, 0x07, 0xe8, 0xf5, 0xd4, 0x61, 0x09, 0x48, 0x9e, 0x27, 0x14, + 0xca, 0x84, 0x25, 0x22, 0x37, 0x7b, 0xc0, 0xec, 0x11, 0x2f, 0x52, 0xf5, 0xdf, 0xc5, 0x39, 0xb2, + 0xaf, 0xdf, 0xbd, 0xdd, 0xe7, 0xa6, 0x70, 0xf1, 0xac, 0x2e, 0x5a, 0x4c, 0x2b, 0x0d, 0xc7, 0x72, + 0x71, 0x62, 0x8b, 0x4e, 0xb7, 0x8c, 0xd6, 0x83, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x55, 0x88, + 0x1b, 0x5d, 0x2a, 0x04, 0x00, 0x00, } diff --git a/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/service.pb.go b/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/service.pb.go index 291c5f98f..72391867f 100644 --- a/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/service.pb.go +++ b/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/service.pb.go @@ -41,7 +41,7 @@ func (m *CreateDatasetRequest) Reset() { *m = CreateDatasetRequest{} } func (m *CreateDatasetRequest) String() string { return proto.CompactTextString(m) } func (*CreateDatasetRequest) ProtoMessage() {} func (*CreateDatasetRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_service_13046020da32bacb, []int{0} + return fileDescriptor_service_67dda52b9aca3dee, []int{0} } func (m *CreateDatasetRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateDatasetRequest.Unmarshal(m, b) @@ -88,7 +88,7 @@ func (m *GetDatasetRequest) Reset() { *m = GetDatasetRequest{} } func (m *GetDatasetRequest) String() string { return proto.CompactTextString(m) } func (*GetDatasetRequest) ProtoMessage() {} func (*GetDatasetRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_service_13046020da32bacb, []int{1} + return fileDescriptor_service_67dda52b9aca3dee, []int{1} } func (m *GetDatasetRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetDatasetRequest.Unmarshal(m, b) @@ -145,7 +145,7 @@ func (m *ListDatasetsRequest) Reset() { *m = ListDatasetsRequest{} } func (m *ListDatasetsRequest) String() string { return proto.CompactTextString(m) } func (*ListDatasetsRequest) ProtoMessage() {} func (*ListDatasetsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_service_13046020da32bacb, []int{2} + return fileDescriptor_service_67dda52b9aca3dee, []int{2} } func (m *ListDatasetsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListDatasetsRequest.Unmarshal(m, b) @@ -209,7 +209,7 @@ func (m *ListDatasetsResponse) Reset() { *m = ListDatasetsResponse{} } func (m *ListDatasetsResponse) String() string { return proto.CompactTextString(m) } func (*ListDatasetsResponse) ProtoMessage() {} func (*ListDatasetsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_service_13046020da32bacb, []int{3} + return fileDescriptor_service_67dda52b9aca3dee, []int{3} } func (m *ListDatasetsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListDatasetsResponse.Unmarshal(m, b) @@ -256,7 +256,7 @@ func (m *DeleteDatasetRequest) Reset() { *m = DeleteDatasetRequest{} } func (m *DeleteDatasetRequest) String() string { return proto.CompactTextString(m) } func (*DeleteDatasetRequest) ProtoMessage() {} func (*DeleteDatasetRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_service_13046020da32bacb, []int{4} + return fileDescriptor_service_67dda52b9aca3dee, []int{4} } func (m *DeleteDatasetRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteDatasetRequest.Unmarshal(m, b) @@ -299,7 +299,7 @@ func (m *ImportDataRequest) Reset() { *m = ImportDataRequest{} } func (m *ImportDataRequest) String() string { return proto.CompactTextString(m) } func (*ImportDataRequest) ProtoMessage() {} func (*ImportDataRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_service_13046020da32bacb, []int{5} + return fileDescriptor_service_67dda52b9aca3dee, []int{5} } func (m *ImportDataRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ImportDataRequest.Unmarshal(m, b) @@ -348,7 +348,7 @@ func (m *ExportDataRequest) Reset() { *m = ExportDataRequest{} } func (m *ExportDataRequest) String() string { return proto.CompactTextString(m) } func (*ExportDataRequest) ProtoMessage() {} func (*ExportDataRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_service_13046020da32bacb, []int{6} + return fileDescriptor_service_67dda52b9aca3dee, []int{6} } func (m *ExportDataRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ExportDataRequest.Unmarshal(m, b) @@ -397,7 +397,7 @@ func (m *CreateModelRequest) Reset() { *m = CreateModelRequest{} } func (m *CreateModelRequest) String() string { return proto.CompactTextString(m) } func (*CreateModelRequest) ProtoMessage() {} func (*CreateModelRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_service_13046020da32bacb, []int{7} + return fileDescriptor_service_67dda52b9aca3dee, []int{7} } func (m *CreateModelRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateModelRequest.Unmarshal(m, b) @@ -444,7 +444,7 @@ func (m *GetModelRequest) Reset() { *m = GetModelRequest{} } func (m *GetModelRequest) String() string { return proto.CompactTextString(m) } func (*GetModelRequest) ProtoMessage() {} func (*GetModelRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_service_13046020da32bacb, []int{8} + return fileDescriptor_service_67dda52b9aca3dee, []int{8} } func (m *GetModelRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetModelRequest.Unmarshal(m, b) @@ -503,7 +503,7 @@ func (m *ListModelsRequest) Reset() { *m = ListModelsRequest{} } func (m *ListModelsRequest) String() string { return proto.CompactTextString(m) } func (*ListModelsRequest) ProtoMessage() {} func (*ListModelsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_service_13046020da32bacb, []int{9} + return fileDescriptor_service_67dda52b9aca3dee, []int{9} } func (m *ListModelsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListModelsRequest.Unmarshal(m, b) @@ -567,7 +567,7 @@ func (m *ListModelsResponse) Reset() { *m = ListModelsResponse{} } func (m *ListModelsResponse) String() string { return proto.CompactTextString(m) } func (*ListModelsResponse) ProtoMessage() {} func (*ListModelsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_service_13046020da32bacb, []int{10} + return fileDescriptor_service_67dda52b9aca3dee, []int{10} } func (m *ListModelsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListModelsResponse.Unmarshal(m, b) @@ -614,7 +614,7 @@ func (m *DeleteModelRequest) Reset() { *m = DeleteModelRequest{} } func (m *DeleteModelRequest) String() string { return proto.CompactTextString(m) } func (*DeleteModelRequest) ProtoMessage() {} func (*DeleteModelRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_service_13046020da32bacb, []int{11} + return fileDescriptor_service_67dda52b9aca3dee, []int{11} } func (m *DeleteModelRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteModelRequest.Unmarshal(m, b) @@ -654,7 +654,7 @@ func (m *DeployModelRequest) Reset() { *m = DeployModelRequest{} } func (m *DeployModelRequest) String() string { return proto.CompactTextString(m) } func (*DeployModelRequest) ProtoMessage() {} func (*DeployModelRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_service_13046020da32bacb, []int{12} + return fileDescriptor_service_67dda52b9aca3dee, []int{12} } func (m *DeployModelRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeployModelRequest.Unmarshal(m, b) @@ -694,7 +694,7 @@ func (m *UndeployModelRequest) Reset() { *m = UndeployModelRequest{} } func (m *UndeployModelRequest) String() string { return proto.CompactTextString(m) } func (*UndeployModelRequest) ProtoMessage() {} func (*UndeployModelRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_service_13046020da32bacb, []int{13} + return fileDescriptor_service_67dda52b9aca3dee, []int{13} } func (m *UndeployModelRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UndeployModelRequest.Unmarshal(m, b) @@ -734,7 +734,7 @@ func (m *GetModelEvaluationRequest) Reset() { *m = GetModelEvaluationReq func (m *GetModelEvaluationRequest) String() string { return proto.CompactTextString(m) } func (*GetModelEvaluationRequest) ProtoMessage() {} func (*GetModelEvaluationRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_service_13046020da32bacb, []int{14} + return fileDescriptor_service_67dda52b9aca3dee, []int{14} } func (m *GetModelEvaluationRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetModelEvaluationRequest.Unmarshal(m, b) @@ -795,7 +795,7 @@ func (m *ListModelEvaluationsRequest) Reset() { *m = ListModelEvaluation func (m *ListModelEvaluationsRequest) String() string { return proto.CompactTextString(m) } func (*ListModelEvaluationsRequest) ProtoMessage() {} func (*ListModelEvaluationsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_service_13046020da32bacb, []int{15} + return fileDescriptor_service_67dda52b9aca3dee, []int{15} } func (m *ListModelEvaluationsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListModelEvaluationsRequest.Unmarshal(m, b) @@ -859,7 +859,7 @@ func (m *ListModelEvaluationsResponse) Reset() { *m = ListModelEvaluatio func (m *ListModelEvaluationsResponse) String() string { return proto.CompactTextString(m) } func (*ListModelEvaluationsResponse) ProtoMessage() {} func (*ListModelEvaluationsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_service_13046020da32bacb, []int{16} + return fileDescriptor_service_67dda52b9aca3dee, []int{16} } func (m *ListModelEvaluationsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListModelEvaluationsResponse.Unmarshal(m, b) @@ -1489,77 +1489,78 @@ var _AutoMl_serviceDesc = grpc.ServiceDesc{ } func init() { - proto.RegisterFile("google/cloud/automl/v1beta1/service.proto", fileDescriptor_service_13046020da32bacb) + proto.RegisterFile("google/cloud/automl/v1beta1/service.proto", fileDescriptor_service_67dda52b9aca3dee) } -var fileDescriptor_service_13046020da32bacb = []byte{ - // 1078 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0x4d, 0x8f, 0xdb, 0x44, - 0x18, 0xd6, 0x6c, 0xdb, 0xb0, 0x7d, 0xb3, 0xd1, 0xb2, 0xc3, 0xaa, 0x0a, 0xd9, 0x56, 0x44, 0xa6, - 0xd0, 0x34, 0x5a, 0xc5, 0x24, 0x45, 0x65, 0x9b, 0x7e, 0x88, 0xfd, 0xa8, 0x56, 0x05, 0x4a, 0x57, - 0x0b, 0x08, 0x89, 0x4b, 0xe4, 0x4d, 0x26, 0x96, 0xa9, 0x33, 0x63, 0xec, 0xf1, 0xb2, 0x2d, 0xaa, - 0xf8, 0xb8, 0x71, 0x46, 0x70, 0xa2, 0x82, 0x03, 0xea, 0x09, 0xf1, 0x33, 0xf8, 0x03, 0x1c, 0xb8, - 0x71, 0xe2, 0x87, 0x20, 0xcf, 0x8c, 0x63, 0x27, 0x36, 0x1e, 0xa7, 0x52, 0xb5, 0xb7, 0xcc, 0xf8, - 0x79, 0xfd, 0x3e, 0xf3, 0x7e, 0xcc, 0xf3, 0x3a, 0x70, 0xd5, 0x66, 0xcc, 0x76, 0x89, 0x39, 0x74, - 0x59, 0x38, 0x32, 0xad, 0x90, 0xb3, 0x89, 0x6b, 0x1e, 0x77, 0x8f, 0x08, 0xb7, 0xba, 0x66, 0x40, - 0xfc, 0x63, 0x67, 0x48, 0x3a, 0x9e, 0xcf, 0x38, 0xc3, 0x1b, 0x12, 0xda, 0x11, 0xd0, 0x8e, 0x84, - 0x76, 0x14, 0xb4, 0x71, 0x51, 0xbd, 0xc7, 0xf2, 0x1c, 0xd3, 0xa2, 0x94, 0x71, 0x8b, 0x3b, 0x8c, - 0x06, 0xd2, 0xb4, 0xf1, 0x76, 0x91, 0x97, 0x04, 0x3e, 0xf0, 0xac, 0x47, 0x2e, 0xb3, 0x46, 0xca, - 0xaa, 0x90, 0xdb, 0xc8, 0xe2, 0x56, 0x40, 0xb8, 0x82, 0x5e, 0x2e, 0x82, 0x3a, 0x4c, 0xa1, 0xae, - 0x14, 0xa1, 0x26, 0x6c, 0x44, 0x5c, 0x05, 0xec, 0x69, 0x81, 0x03, 0x72, 0x6c, 0xb9, 0xa1, 0x60, - 0xad, 0x6c, 0x36, 0x8b, 0x6c, 0x98, 0x47, 0xfc, 0x99, 0x88, 0xbc, 0xae, 0xd0, 0x2e, 0xa3, 0xb6, - 0x1f, 0x52, 0xea, 0x50, 0x3b, 0x0b, 0x6a, 0x2a, 0x90, 0x58, 0x1d, 0x85, 0x63, 0x73, 0xec, 0x10, - 0x77, 0x34, 0x98, 0x58, 0xc1, 0x43, 0x89, 0x30, 0x28, 0xac, 0xef, 0xfa, 0xc4, 0xe2, 0x64, 0x4f, - 0x86, 0xe3, 0x90, 0x7c, 0x11, 0x92, 0x80, 0xe3, 0x0b, 0x50, 0xf1, 0x2c, 0x9f, 0x50, 0x5e, 0x47, - 0x4d, 0xd4, 0x3a, 0x7f, 0xa8, 0x56, 0xf8, 0x0e, 0xbc, 0xa4, 0x02, 0x57, 0x5f, 0x6a, 0xa2, 0x56, - 0xb5, 0x77, 0xb9, 0x53, 0x90, 0xd5, 0x4e, 0xfc, 0xd6, 0xd8, 0xc8, 0xb8, 0x02, 0x6b, 0xfb, 0x84, - 0xcf, 0x39, 0xc3, 0x70, 0x96, 0x5a, 0x13, 0xa2, 0x5c, 0x89, 0xdf, 0xc6, 0xb7, 0x08, 0x5e, 0xf9, - 0xc0, 0x09, 0x62, 0x68, 0xa0, 0x23, 0x76, 0x01, 0x2a, 0x63, 0xc7, 0xe5, 0xc4, 0xaf, 0x9f, 0x91, - 0xfb, 0x72, 0x85, 0x37, 0xe0, 0xbc, 0x67, 0xd9, 0x64, 0x10, 0x38, 0x8f, 0x49, 0xfd, 0x6c, 0x13, - 0xb5, 0xce, 0x1d, 0x2e, 0x47, 0x1b, 0x1f, 0x39, 0x8f, 0x09, 0xbe, 0x04, 0x20, 0x1e, 0x72, 0xf6, - 0x90, 0xd0, 0x7a, 0x45, 0x18, 0x0a, 0xf8, 0xc7, 0xd1, 0x86, 0xf1, 0x0d, 0x82, 0xf5, 0x59, 0x0e, - 0x81, 0xc7, 0x68, 0x40, 0xf0, 0xbb, 0xb0, 0xac, 0x0e, 0x14, 0xd4, 0x51, 0xf3, 0x4c, 0xe9, 0x30, - 0x4c, 0xad, 0xf0, 0x9b, 0xb0, 0x4a, 0xc9, 0x09, 0x1f, 0xa4, 0xdc, 0x2f, 0x09, 0xf7, 0xb5, 0x68, - 0xfb, 0x60, 0x4a, 0xa1, 0x0d, 0xeb, 0x7b, 0xc4, 0x25, 0x99, 0xfc, 0xe4, 0x85, 0x8c, 0xc3, 0xda, - 0xbd, 0x89, 0xc7, 0x7c, 0xc1, 0xb7, 0x00, 0x88, 0xdf, 0x87, 0x15, 0x87, 0x7a, 0x21, 0x1f, 0x0c, - 0x19, 0x1d, 0x3b, 0xb6, 0x88, 0x58, 0xb5, 0xd7, 0x2a, 0x3c, 0xc2, 0xbd, 0xc8, 0x60, 0x57, 0xe0, - 0x0f, 0xab, 0x4e, 0xb2, 0x30, 0xbe, 0x84, 0xb5, 0xbb, 0x27, 0x65, 0xbc, 0x7e, 0x08, 0x35, 0x16, - 0xf2, 0x8c, 0xdb, 0xab, 0x85, 0x6e, 0x1f, 0x08, 0x0b, 0xe5, 0x77, 0x85, 0xa5, 0x56, 0xc6, 0x18, - 0xb0, 0x2c, 0xdd, 0xfb, 0x51, 0x3f, 0xe9, 0xea, 0x63, 0x0b, 0xce, 0x89, 0xbe, 0x13, 0x35, 0x50, - 0xed, 0x19, 0x85, 0x5e, 0xe5, 0x1b, 0xa5, 0x81, 0xf1, 0x06, 0xac, 0xee, 0x13, 0x3e, 0xe3, 0x24, - 0x2f, 0xfa, 0x5f, 0xc3, 0x5a, 0x54, 0x2b, 0x02, 0x77, 0x2a, 0xd5, 0x7a, 0x0c, 0x38, 0x4d, 0x40, - 0x95, 0xea, 0xf4, 0xdc, 0xb2, 0x4e, 0xcb, 0x9f, 0xbb, 0x74, 0x89, 0xb6, 0x00, 0xcb, 0x12, 0xd5, - 0x86, 0x48, 0x20, 0x3d, 0x97, 0x3d, 0xd2, 0x22, 0xdb, 0xb0, 0xfe, 0x09, 0x1d, 0x95, 0xc3, 0x9a, - 0xf0, 0x6a, 0x9c, 0x9f, 0xbb, 0xd3, 0x3b, 0xb5, 0xc8, 0xe0, 0x7b, 0x04, 0x1b, 0xd3, 0x48, 0x25, - 0x26, 0xa7, 0x92, 0xb4, 0x5f, 0x10, 0x5c, 0xcc, 0xe7, 0xa2, 0xf2, 0xf7, 0x29, 0xbc, 0x3c, 0xaf, - 0x17, 0x2a, 0x95, 0x9b, 0xfa, 0x54, 0xa6, 0xe2, 0xb1, 0x3a, 0x99, 0xdd, 0x28, 0x9b, 0xde, 0xde, - 0x3f, 0x18, 0x2a, 0xdb, 0x21, 0x67, 0xf7, 0x5d, 0xfc, 0x3b, 0x82, 0xda, 0x8c, 0x5a, 0xe0, 0x6e, - 0x21, 0x87, 0x3c, 0x65, 0x69, 0x94, 0xba, 0x29, 0x8d, 0x9d, 0xef, 0xfe, 0xfa, 0xf7, 0x87, 0xa5, - 0x5b, 0x46, 0x77, 0xaa, 0x80, 0x5f, 0xc9, 0x2c, 0xdc, 0xf6, 0x7c, 0xf6, 0x39, 0x19, 0xf2, 0xc0, - 0x6c, 0x9b, 0x2e, 0x1b, 0xca, 0x68, 0x99, 0xed, 0x27, 0xb1, 0x9e, 0x07, 0xfd, 0x58, 0x6b, 0xf0, - 0x53, 0x04, 0x90, 0x88, 0x0d, 0xee, 0x14, 0x3a, 0xce, 0xa8, 0x52, 0x49, 0xa2, 0x37, 0x04, 0xd1, - 0x6b, 0x38, 0x45, 0x34, 0x2a, 0xb2, 0xff, 0xa1, 0x39, 0x65, 0x69, 0xb6, 0x9f, 0xe0, 0x3f, 0x10, - 0xac, 0xa4, 0xe5, 0x05, 0xbf, 0x55, 0xe8, 0x31, 0x47, 0x0d, 0x1b, 0xdd, 0x05, 0x2c, 0x64, 0x41, - 0xe5, 0x11, 0x2e, 0x19, 0x59, 0xfc, 0x33, 0x82, 0xda, 0x8c, 0x1a, 0x69, 0xf2, 0x9f, 0xa7, 0x5c, - 0x8d, 0x4b, 0xb1, 0x49, 0x6a, 0x72, 0xe9, 0x3c, 0x88, 0x27, 0x97, 0x98, 0x5e, 0xfb, 0x39, 0xe2, - 0xf9, 0x1b, 0x02, 0x48, 0x04, 0x50, 0x93, 0xef, 0x8c, 0x52, 0xea, 0x88, 0xed, 0x0b, 0x62, 0xdb, - 0xc6, 0xad, 0x85, 0x89, 0xf5, 0x9d, 0xa9, 0xaf, 0x3e, 0x6a, 0x0b, 0x9a, 0x89, 0x62, 0x6a, 0x68, - 0x66, 0xa4, 0xf5, 0x05, 0xd2, 0x24, 0x27, 0x69, 0x9a, 0x4f, 0x11, 0x54, 0x53, 0xfa, 0x8a, 0xcd, - 0x12, 0xad, 0x9e, 0xbe, 0xab, 0x75, 0x44, 0xef, 0x08, 0xa2, 0x5b, 0x86, 0x59, 0xba, 0x0e, 0xc5, - 0x0d, 0x16, 0xf4, 0x95, 0x3c, 0xfd, 0x88, 0x60, 0x39, 0xbe, 0xf7, 0xf1, 0xa6, 0xae, 0xb7, 0x67, - 0x98, 0x95, 0x10, 0x41, 0xe3, 0x1d, 0x41, 0xaf, 0x8b, 0xcd, 0x72, 0x71, 0x94, 0xdc, 0xa2, 0x2a, - 0x7c, 0x86, 0x00, 0x12, 0x1d, 0xd6, 0xa4, 0x37, 0x33, 0x31, 0x34, 0xcc, 0xd2, 0x78, 0xd5, 0xcf, - 0x39, 0x44, 0x4b, 0xc5, 0x11, 0xff, 0x84, 0xa0, 0x9a, 0x12, 0x6e, 0x4d, 0x82, 0xb3, 0x12, 0xaf, - 0x4b, 0xb0, 0x22, 0xd6, 0x5e, 0x38, 0x82, 0xbf, 0x0a, 0x62, 0x53, 0xed, 0xd7, 0x12, 0x9b, 0x9f, - 0x12, 0x74, 0xc4, 0xb6, 0x05, 0xb1, 0x9b, 0xc6, 0xf5, 0x05, 0x89, 0xf5, 0xe5, 0x40, 0x12, 0x35, - 0xc7, 0x33, 0x04, 0xb5, 0x99, 0x01, 0x45, 0x73, 0x13, 0xe6, 0x0d, 0x33, 0x3a, 0x9a, 0xbb, 0x82, - 0xe6, 0x6d, 0x63, 0x6b, 0x51, 0x9a, 0x21, 0x4d, 0x88, 0xfe, 0x89, 0x00, 0x67, 0xa7, 0x23, 0x7c, - 0xbd, 0x54, 0xbf, 0x64, 0xc6, 0xa9, 0xc6, 0x42, 0x33, 0x87, 0xf1, 0x9e, 0x38, 0xc1, 0x1e, 0xde, - 0x59, 0xec, 0x04, 0xe6, 0xdc, 0xa8, 0x22, 0x8a, 0xe2, 0x6f, 0xf5, 0x2d, 0x36, 0x3f, 0x28, 0xe1, - 0xad, 0x72, 0x0d, 0x93, 0x9d, 0xf3, 0x1a, 0x37, 0x9e, 0xc3, 0x52, 0x35, 0x5d, 0xce, 0xc9, 0x0a, - 0x9b, 0x2e, 0xc9, 0x4e, 0xe6, 0x70, 0x3b, 0x01, 0xbc, 0x36, 0x64, 0x93, 0x22, 0x2e, 0x3b, 0x55, - 0x39, 0x80, 0x1d, 0x44, 0x9f, 0xec, 0x07, 0xe8, 0xb3, 0x6d, 0x85, 0xb5, 0x99, 0x6b, 0x51, 0xbb, - 0xc3, 0x7c, 0xdb, 0xb4, 0x09, 0x15, 0x1f, 0xf4, 0xa6, 0x7c, 0x64, 0x79, 0x4e, 0x90, 0xfb, 0x47, - 0xc2, 0x4d, 0xb9, 0x3c, 0xaa, 0x08, 0xf4, 0xb5, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0x61, 0x0b, - 0x95, 0xdd, 0xbf, 0x11, 0x00, 0x00, +var fileDescriptor_service_67dda52b9aca3dee = []byte{ + // 1098 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0xcb, 0x6f, 0x1b, 0x45, + 0x18, 0xd7, 0xa4, 0x6d, 0x48, 0x3f, 0xc7, 0x0a, 0x19, 0xa2, 0xca, 0x38, 0xad, 0xb0, 0x96, 0x42, + 0x5d, 0x2b, 0xf2, 0x62, 0x17, 0x95, 0xd4, 0x7d, 0x88, 0x3c, 0xaa, 0xa8, 0x40, 0x69, 0x14, 0x5e, + 0x12, 0x8a, 0x64, 0x6d, 0xec, 0xf1, 0x6a, 0xe9, 0x7a, 0x66, 0xd9, 0x9d, 0x0d, 0x69, 0x51, 0xc5, + 0xe3, 0xc6, 0x11, 0x21, 0x38, 0x51, 0xc1, 0x01, 0xf5, 0x84, 0xf8, 0x33, 0x38, 0x70, 0xe5, 0xc0, + 0x8d, 0x13, 0x7f, 0x08, 0xda, 0x99, 0x59, 0xef, 0xda, 0xbb, 0xec, 0xac, 0x2b, 0xa1, 0xde, 0x32, + 0xe3, 0xdf, 0x37, 0xdf, 0x6f, 0xbe, 0xc7, 0xfc, 0xbe, 0x0d, 0x5c, 0xb6, 0x19, 0xb3, 0x5d, 0x62, + 0x0e, 0x5c, 0x16, 0x0e, 0x4d, 0x2b, 0xe4, 0x6c, 0xec, 0x9a, 0xc7, 0x9d, 0x23, 0xc2, 0xad, 0x8e, + 0x19, 0x10, 0xff, 0xd8, 0x19, 0x90, 0xb6, 0xe7, 0x33, 0xce, 0xf0, 0xba, 0x84, 0xb6, 0x05, 0xb4, + 0x2d, 0xa1, 0x6d, 0x05, 0xad, 0x9f, 0x57, 0xe7, 0x58, 0x9e, 0x63, 0x5a, 0x94, 0x32, 0x6e, 0x71, + 0x87, 0xd1, 0x40, 0x9a, 0xd6, 0x5f, 0x2f, 0xf2, 0x92, 0xc0, 0xfb, 0x9e, 0xf5, 0xc0, 0x65, 0xd6, + 0x50, 0x59, 0x15, 0x72, 0x1b, 0x5a, 0xdc, 0x0a, 0x08, 0x57, 0xd0, 0x8b, 0x45, 0x50, 0x87, 0x29, + 0xd4, 0xa5, 0x22, 0xd4, 0x98, 0x0d, 0x89, 0xab, 0x80, 0x5d, 0x2d, 0xb0, 0x4f, 0x8e, 0x2d, 0x37, + 0x14, 0xac, 0x95, 0xcd, 0x46, 0x91, 0x0d, 0xf3, 0x88, 0x3f, 0x15, 0x91, 0x97, 0x15, 0xda, 0x65, + 0xd4, 0xf6, 0x43, 0x4a, 0x1d, 0x6a, 0x67, 0x41, 0x0d, 0x05, 0x12, 0xab, 0xa3, 0x70, 0x64, 0x8e, + 0x1c, 0xe2, 0x0e, 0xfb, 0x63, 0x2b, 0xb8, 0x2f, 0x11, 0x06, 0x85, 0xb5, 0x1d, 0x9f, 0x58, 0x9c, + 0xec, 0xca, 0x70, 0x1c, 0x90, 0x4f, 0x43, 0x12, 0x70, 0x7c, 0x0e, 0x16, 0x3d, 0xcb, 0x27, 0x94, + 0xd7, 0x50, 0x03, 0x35, 0xcf, 0x1e, 0xa8, 0x15, 0xbe, 0x05, 0xcf, 0xa9, 0xc0, 0xd5, 0x16, 0x1a, + 0xa8, 0x59, 0xe9, 0x5e, 0x6c, 0x17, 0x64, 0xb5, 0x1d, 0x9f, 0x1a, 0x1b, 0x19, 0x97, 0x60, 0x75, + 0x8f, 0xf0, 0x19, 0x67, 0x18, 0x4e, 0x53, 0x6b, 0x4c, 0x94, 0x2b, 0xf1, 0xb7, 0xf1, 0x15, 0x82, + 0x17, 0xde, 0x71, 0x82, 0x18, 0x1a, 0xe8, 0x88, 0x9d, 0x83, 0xc5, 0x91, 0xe3, 0x72, 0xe2, 0xd7, + 0x4e, 0xc9, 0x7d, 0xb9, 0xc2, 0xeb, 0x70, 0xd6, 0xb3, 0x6c, 0xd2, 0x0f, 0x9c, 0x87, 0xa4, 0x76, + 0xba, 0x81, 0x9a, 0x67, 0x0e, 0x96, 0xa2, 0x8d, 0xf7, 0x9c, 0x87, 0x04, 0x5f, 0x00, 0x10, 0x3f, + 0x72, 0x76, 0x9f, 0xd0, 0xda, 0xa2, 0x30, 0x14, 0xf0, 0xf7, 0xa3, 0x0d, 0xe3, 0x4b, 0x04, 0x6b, + 0xd3, 0x1c, 0x02, 0x8f, 0xd1, 0x80, 0xe0, 0x37, 0x61, 0x49, 0x5d, 0x28, 0xa8, 0xa1, 0xc6, 0xa9, + 0xd2, 0x61, 0x98, 0x58, 0xe1, 0x57, 0x61, 0x85, 0x92, 0x13, 0xde, 0x4f, 0xb9, 0x5f, 0x10, 0xee, + 0xab, 0xd1, 0xf6, 0xfe, 0x84, 0x42, 0x0b, 0xd6, 0x76, 0x89, 0x4b, 0x32, 0xf9, 0xc9, 0x0b, 0x19, + 0x87, 0xd5, 0x3b, 0x63, 0x8f, 0xf9, 0x82, 0x6f, 0x01, 0x10, 0xbf, 0x0d, 0xcb, 0x0e, 0xf5, 0x42, + 0xde, 0x1f, 0x30, 0x3a, 0x72, 0x6c, 0x11, 0xb1, 0x4a, 0xb7, 0x59, 0x78, 0x85, 0x3b, 0x91, 0xc1, + 0x8e, 0xc0, 0x1f, 0x54, 0x9c, 0x64, 0x61, 0x7c, 0x06, 0xab, 0xb7, 0x4f, 0xca, 0x78, 0x7d, 0x17, + 0xaa, 0x2c, 0xe4, 0x19, 0xb7, 0x97, 0x0b, 0xdd, 0xde, 0x13, 0x16, 0xca, 0xef, 0x32, 0x4b, 0xad, + 0x8c, 0x11, 0x60, 0x59, 0xba, 0x77, 0xa3, 0x7e, 0xd2, 0xd5, 0xc7, 0x26, 0x9c, 0x11, 0x7d, 0x27, + 0x6a, 0xa0, 0xd2, 0x35, 0x0a, 0xbd, 0xca, 0x13, 0xa5, 0x81, 0xf1, 0x0a, 0xac, 0xec, 0x11, 0x3e, + 0xe5, 0x24, 0x2f, 0xfa, 0x5f, 0xc0, 0x6a, 0x54, 0x2b, 0x02, 0xf7, 0x4c, 0xaa, 0xf5, 0x18, 0x70, + 0x9a, 0x80, 0x2a, 0xd5, 0xc9, 0xbd, 0x65, 0x9d, 0x96, 0xbf, 0x77, 0xe9, 0x12, 0x6d, 0x02, 0x96, + 0x25, 0xaa, 0x0d, 0x91, 0x40, 0x7a, 0x2e, 0x7b, 0xa0, 0x45, 0xb6, 0x60, 0xed, 0x03, 0x3a, 0x2c, + 0x87, 0x35, 0xe1, 0xc5, 0x38, 0x3f, 0xb7, 0x27, 0x6f, 0x6a, 0x91, 0xc1, 0x37, 0x08, 0xd6, 0x27, + 0x91, 0x4a, 0x4c, 0x9e, 0x49, 0xd2, 0x7e, 0x42, 0x70, 0x3e, 0x9f, 0x8b, 0xca, 0xdf, 0x47, 0xf0, + 0xfc, 0xac, 0x5e, 0xa8, 0x54, 0x6e, 0xe8, 0x53, 0x99, 0x8a, 0xc7, 0xca, 0x78, 0x7a, 0xa3, 0x6c, + 0x7a, 0xbb, 0x7f, 0x63, 0x58, 0xdc, 0x0a, 0x39, 0xbb, 0xeb, 0xe2, 0x5f, 0x11, 0x54, 0xa7, 0xd4, + 0x02, 0x77, 0x0a, 0x39, 0xe4, 0x29, 0x4b, 0xbd, 0xd4, 0x4b, 0x69, 0x6c, 0x7f, 0xfd, 0xe7, 0x3f, + 0xdf, 0x2d, 0xdc, 0x30, 0x3a, 0x13, 0x05, 0xfc, 0x5c, 0x66, 0xe1, 0xa6, 0xe7, 0xb3, 0x4f, 0xc8, + 0x80, 0x07, 0x66, 0xcb, 0x74, 0xd9, 0x40, 0x46, 0xcb, 0x6c, 0x3d, 0x8a, 0xf5, 0x3c, 0xe8, 0xc5, + 0x5a, 0x83, 0x1f, 0x23, 0x80, 0x44, 0x6c, 0x70, 0xbb, 0xd0, 0x71, 0x46, 0x95, 0x4a, 0x12, 0xbd, + 0x26, 0x88, 0x5e, 0xc1, 0x29, 0xa2, 0x51, 0x91, 0xfd, 0x07, 0xcd, 0x09, 0x4b, 0xb3, 0xf5, 0x08, + 0xff, 0x86, 0x60, 0x39, 0x2d, 0x2f, 0xf8, 0xb5, 0x42, 0x8f, 0x39, 0x6a, 0x58, 0xef, 0xcc, 0x61, + 0x21, 0x0b, 0x2a, 0x8f, 0x70, 0xc9, 0xc8, 0xe2, 0x1f, 0x11, 0x54, 0xa7, 0xd4, 0x48, 0x93, 0xff, + 0x3c, 0xe5, 0xaa, 0x5f, 0x88, 0x4d, 0x52, 0x93, 0x4b, 0xfb, 0x5e, 0x3c, 0xb9, 0xc4, 0xf4, 0x5a, + 0x4f, 0x11, 0xcf, 0x5f, 0x10, 0x40, 0x22, 0x80, 0x9a, 0x7c, 0x67, 0x94, 0x52, 0x47, 0x6c, 0x4f, + 0x10, 0xdb, 0x32, 0x6e, 0xcc, 0x4d, 0xac, 0xe7, 0x4c, 0x7c, 0xf5, 0x50, 0x4b, 0xd0, 0x4c, 0x14, + 0x53, 0x43, 0x33, 0x23, 0xad, 0xff, 0x23, 0x4d, 0x72, 0x92, 0xa6, 0xf9, 0x18, 0x41, 0x25, 0xa5, + 0xaf, 0xd8, 0x2c, 0xd1, 0xea, 0xe9, 0xb7, 0x5a, 0x47, 0xf4, 0x96, 0x20, 0xba, 0x69, 0x98, 0xa5, + 0xeb, 0x50, 0xbc, 0x60, 0x41, 0x4f, 0xc9, 0xd3, 0xf7, 0x08, 0x96, 0xe2, 0x77, 0x1f, 0x6f, 0xe8, + 0x7a, 0x7b, 0x8a, 0x59, 0x09, 0x11, 0x34, 0xde, 0x10, 0xf4, 0x3a, 0xd8, 0x2c, 0x17, 0x47, 0xc9, + 0x2d, 0xaa, 0xc2, 0x27, 0x08, 0x20, 0xd1, 0x61, 0x4d, 0x7a, 0x33, 0x13, 0x43, 0xdd, 0x2c, 0x8d, + 0x57, 0xfd, 0x9c, 0x43, 0xb4, 0x54, 0x1c, 0xf1, 0x0f, 0x08, 0x2a, 0x29, 0xe1, 0xd6, 0x24, 0x38, + 0x2b, 0xf1, 0xba, 0x04, 0x2b, 0x62, 0xad, 0xb9, 0x23, 0xf8, 0xb3, 0x20, 0x36, 0xd1, 0x7e, 0x2d, + 0xb1, 0xd9, 0x29, 0x41, 0x47, 0x6c, 0x4b, 0x10, 0xbb, 0x6e, 0x5c, 0x9d, 0x93, 0x58, 0x4f, 0x0e, + 0x24, 0x51, 0x73, 0x3c, 0x41, 0x50, 0x9d, 0x1a, 0x50, 0x34, 0x2f, 0x61, 0xde, 0x30, 0xa3, 0xa3, + 0xb9, 0x23, 0x68, 0xde, 0x34, 0x36, 0xe7, 0xa5, 0x19, 0xd2, 0x84, 0xe8, 0xef, 0x08, 0x70, 0x76, + 0x3a, 0xc2, 0x57, 0x4b, 0xf5, 0x4b, 0x66, 0x9c, 0xaa, 0xcf, 0x35, 0x73, 0x18, 0x6f, 0x89, 0x1b, + 0xec, 0xe2, 0xed, 0xf9, 0x6e, 0x60, 0xce, 0x8c, 0x2a, 0xa2, 0x28, 0xfe, 0x52, 0xdf, 0x62, 0xb3, + 0x83, 0x12, 0xde, 0x2c, 0xd7, 0x30, 0xd9, 0x39, 0xaf, 0x7e, 0xed, 0x29, 0x2c, 0x55, 0xd3, 0xe5, + 0xdc, 0xac, 0xb0, 0xe9, 0x92, 0xec, 0x64, 0x2e, 0xb7, 0xfd, 0x2d, 0x82, 0x97, 0x06, 0x6c, 0x5c, + 0x44, 0x66, 0xbb, 0x22, 0x27, 0xb0, 0xfd, 0xe8, 0x9b, 0x7d, 0x1f, 0x7d, 0xbc, 0xa5, 0xb0, 0x36, + 0x73, 0x2d, 0x6a, 0xb7, 0x99, 0x6f, 0x9b, 0x36, 0xa1, 0xe2, 0x8b, 0xde, 0x94, 0x3f, 0x59, 0x9e, + 0x13, 0xe4, 0xfe, 0x27, 0xe1, 0xba, 0x5c, 0xfe, 0xb1, 0xb0, 0xbe, 0x27, 0x80, 0x87, 0x3b, 0x11, + 0xe8, 0x50, 0x9e, 0x7f, 0xf8, 0xa1, 0x04, 0x1d, 0x2d, 0x8a, 0xb3, 0xae, 0xfc, 0x1b, 0x00, 0x00, + 0xff, 0xff, 0x9e, 0x6b, 0xe8, 0xad, 0xde, 0x11, 0x00, 0x00, } diff --git a/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/text.pb.go b/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/text.pb.go index 50cabbc8d..eb39034dd 100644 --- a/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/text.pb.go +++ b/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/text.pb.go @@ -33,7 +33,7 @@ func (m *TextClassificationDatasetMetadata) Reset() { *m = TextClassific func (m *TextClassificationDatasetMetadata) String() string { return proto.CompactTextString(m) } func (*TextClassificationDatasetMetadata) ProtoMessage() {} func (*TextClassificationDatasetMetadata) Descriptor() ([]byte, []int) { - return fileDescriptor_text_1fb9d74955be1951, []int{0} + return fileDescriptor_text_6aaf13d2f30170b9, []int{0} } func (m *TextClassificationDatasetMetadata) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TextClassificationDatasetMetadata.Unmarshal(m, b) @@ -71,7 +71,7 @@ func (m *TextClassificationModelMetadata) Reset() { *m = TextClassificat func (m *TextClassificationModelMetadata) String() string { return proto.CompactTextString(m) } func (*TextClassificationModelMetadata) ProtoMessage() {} func (*TextClassificationModelMetadata) Descriptor() ([]byte, []int) { - return fileDescriptor_text_1fb9d74955be1951, []int{1} + return fileDescriptor_text_6aaf13d2f30170b9, []int{1} } func (m *TextClassificationModelMetadata) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TextClassificationModelMetadata.Unmarshal(m, b) @@ -97,24 +97,26 @@ func init() { } func init() { - proto.RegisterFile("google/cloud/automl/v1beta1/text.proto", fileDescriptor_text_1fb9d74955be1951) + proto.RegisterFile("google/cloud/automl/v1beta1/text.proto", fileDescriptor_text_6aaf13d2f30170b9) } -var fileDescriptor_text_1fb9d74955be1951 = []byte{ - // 240 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0x31, 0x4f, 0x03, 0x31, - 0x0c, 0x85, 0x75, 0x0b, 0x12, 0x19, 0x18, 0x8e, 0x05, 0x15, 0xa4, 0xd2, 0x0e, 0x88, 0x29, 0xa6, - 0x30, 0x32, 0x51, 0x58, 0x2b, 0x55, 0xa8, 0x13, 0x0b, 0xb8, 0x39, 0x13, 0x45, 0x4a, 0xe3, 0xd0, - 0xb8, 0xa8, 0xfd, 0x01, 0xfc, 0x6f, 0xd4, 0xe4, 0x18, 0x4e, 0x87, 0x6e, 0x4c, 0xfc, 0xbd, 0xe7, - 0xf7, 0xac, 0x6e, 0x2c, 0xb3, 0xf5, 0x04, 0xc6, 0xf3, 0xae, 0x01, 0xdc, 0x09, 0x6f, 0x3c, 0x7c, - 0xcf, 0xd6, 0x24, 0x38, 0x03, 0xa1, 0xbd, 0xe8, 0xb8, 0x65, 0xe1, 0xfa, 0xb2, 0x70, 0x3a, 0x73, - 0xba, 0x70, 0xba, 0xe5, 0x46, 0x57, 0xad, 0x09, 0x46, 0x07, 0x18, 0x02, 0x0b, 0x8a, 0xe3, 0x90, - 0x8a, 0x74, 0x74, 0x37, 0xb4, 0xc2, 0x78, 0x4c, 0xc9, 0x7d, 0x3a, 0x93, 0x25, 0x45, 0x31, 0xfd, - 0xa9, 0xd4, 0x64, 0x45, 0x7b, 0x79, 0xee, 0x0c, 0x5f, 0x50, 0x30, 0x91, 0x2c, 0x48, 0xb0, 0x41, - 0xc1, 0xfa, 0x43, 0x9d, 0x77, 0xd5, 0xef, 0x72, 0x88, 0x74, 0x51, 0x5d, 0x57, 0xb7, 0x67, 0xf7, - 0xa0, 0x07, 0x02, 0xeb, 0xae, 0xf1, 0xea, 0x10, 0xe9, 0xb5, 0x36, 0xbd, 0xbf, 0xe9, 0x44, 0x8d, - 0xfb, 0x31, 0x16, 0xdc, 0x90, 0xff, 0x0b, 0x31, 0xff, 0x52, 0x63, 0xc3, 0x9b, 0xa1, 0x65, 0xf3, - 0xd3, 0xa3, 0xc7, 0xf2, 0x58, 0x6c, 0x59, 0xbd, 0x3d, 0xb5, 0xa4, 0x65, 0x8f, 0xc1, 0x6a, 0xde, - 0x5a, 0xb0, 0x14, 0x72, 0x6d, 0x28, 0x23, 0x8c, 0x2e, 0xfd, 0x7b, 0xab, 0xc7, 0xf2, 0x5c, 0x9f, - 0x64, 0xfa, 0xe1, 0x37, 0x00, 0x00, 0xff, 0xff, 0xc9, 0x8d, 0x0f, 0x20, 0xbb, 0x01, 0x00, 0x00, +var fileDescriptor_text_6aaf13d2f30170b9 = []byte{ + // 265 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0x31, 0x4b, 0x03, 0x41, + 0x10, 0x85, 0x39, 0x0b, 0xc1, 0x2b, 0x2c, 0xce, 0x46, 0x12, 0x21, 0x26, 0x85, 0x58, 0xed, 0x1a, + 0x2d, 0xad, 0x92, 0x08, 0x56, 0x07, 0x41, 0x82, 0x85, 0x1c, 0xe8, 0xe4, 0x6e, 0x5c, 0x16, 0x36, + 0x3b, 0x4b, 0x76, 0x4e, 0x92, 0x1f, 0x60, 0xed, 0xff, 0xf2, 0x57, 0xc9, 0xed, 0x9e, 0xc5, 0x91, + 0x70, 0xe5, 0xee, 0x7c, 0xef, 0xcd, 0x7b, 0x93, 0xde, 0x28, 0x22, 0x65, 0x50, 0x96, 0x86, 0xea, + 0x4a, 0x42, 0xcd, 0xb4, 0x31, 0xf2, 0x6b, 0xba, 0x46, 0x86, 0xa9, 0x64, 0xdc, 0xb1, 0x70, 0x5b, + 0x62, 0xca, 0x86, 0x91, 0x13, 0x81, 0x13, 0x91, 0x13, 0x2d, 0x37, 0xb8, 0x6a, 0x4d, 0xc0, 0x69, + 0x09, 0xd6, 0x12, 0x03, 0x6b, 0xb2, 0x3e, 0x4a, 0x07, 0x77, 0x7d, 0x2b, 0x4a, 0x03, 0xde, 0xeb, + 0x4f, 0x5d, 0x06, 0x49, 0x54, 0x4c, 0xbe, 0x93, 0x74, 0xbc, 0xc2, 0x1d, 0x2f, 0x3a, 0xc3, 0x27, + 0x60, 0xf0, 0xc8, 0x39, 0x32, 0x54, 0xc0, 0x90, 0x7d, 0xa4, 0x17, 0x5d, 0xf5, 0x3b, 0xef, 0x1d, + 0x5e, 0x26, 0xd7, 0xc9, 0xed, 0xf9, 0xbd, 0x14, 0x3d, 0x81, 0x45, 0xd7, 0x78, 0xb5, 0x77, 0xf8, + 0x92, 0x95, 0x07, 0x7f, 0x93, 0x71, 0x3a, 0x3a, 0x8c, 0x91, 0x53, 0x85, 0xe6, 0x3f, 0xc4, 0xfc, + 0x27, 0x49, 0x47, 0x25, 0x6d, 0xfa, 0xb6, 0xcd, 0xcf, 0x1a, 0x93, 0x65, 0xd3, 0x6c, 0x99, 0xbc, + 0xcd, 0x5a, 0x52, 0x91, 0x01, 0xab, 0x04, 0x6d, 0x95, 0x54, 0x68, 0x43, 0x6f, 0x19, 0x47, 0xe0, + 0xb4, 0x3f, 0x7a, 0xac, 0xc7, 0xf8, 0xfc, 0x3d, 0x19, 0x3e, 0x07, 0xb0, 0x58, 0x34, 0x50, 0x31, + 0xab, 0x99, 0x72, 0x53, 0xbc, 0x46, 0x68, 0x7d, 0x1a, 0xbc, 0x1e, 0xfe, 0x02, 0x00, 0x00, 0xff, + 0xff, 0x24, 0xf6, 0x56, 0x97, 0xda, 0x01, 0x00, 0x00, } diff --git a/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/translation.pb.go b/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/translation.pb.go index 0f4ec9038..51fb5c7a2 100644 --- a/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/translation.pb.go +++ b/vendor/google.golang.org/genproto/googleapis/cloud/automl/v1beta1/translation.pb.go @@ -34,7 +34,7 @@ func (m *TranslationDatasetMetadata) Reset() { *m = TranslationDatasetMe func (m *TranslationDatasetMetadata) String() string { return proto.CompactTextString(m) } func (*TranslationDatasetMetadata) ProtoMessage() {} func (*TranslationDatasetMetadata) Descriptor() ([]byte, []int) { - return fileDescriptor_translation_23667d09236b8210, []int{0} + return fileDescriptor_translation_43aab93b197764ff, []int{0} } func (m *TranslationDatasetMetadata) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TranslationDatasetMetadata.Unmarshal(m, b) @@ -83,7 +83,7 @@ func (m *TranslationEvaluationMetrics) Reset() { *m = TranslationEvaluat func (m *TranslationEvaluationMetrics) String() string { return proto.CompactTextString(m) } func (*TranslationEvaluationMetrics) ProtoMessage() {} func (*TranslationEvaluationMetrics) Descriptor() ([]byte, []int) { - return fileDescriptor_translation_23667d09236b8210, []int{1} + return fileDescriptor_translation_43aab93b197764ff, []int{1} } func (m *TranslationEvaluationMetrics) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TranslationEvaluationMetrics.Unmarshal(m, b) @@ -139,7 +139,7 @@ func (m *TranslationModelMetadata) Reset() { *m = TranslationModelMetada func (m *TranslationModelMetadata) String() string { return proto.CompactTextString(m) } func (*TranslationModelMetadata) ProtoMessage() {} func (*TranslationModelMetadata) Descriptor() ([]byte, []int) { - return fileDescriptor_translation_23667d09236b8210, []int{2} + return fileDescriptor_translation_43aab93b197764ff, []int{2} } func (m *TranslationModelMetadata) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TranslationModelMetadata.Unmarshal(m, b) @@ -193,7 +193,7 @@ func (m *TranslationAnnotation) Reset() { *m = TranslationAnnotation{} } func (m *TranslationAnnotation) String() string { return proto.CompactTextString(m) } func (*TranslationAnnotation) ProtoMessage() {} func (*TranslationAnnotation) Descriptor() ([]byte, []int) { - return fileDescriptor_translation_23667d09236b8210, []int{3} + return fileDescriptor_translation_43aab93b197764ff, []int{3} } func (m *TranslationAnnotation) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TranslationAnnotation.Unmarshal(m, b) @@ -228,33 +228,34 @@ func init() { } func init() { - proto.RegisterFile("google/cloud/automl/v1beta1/translation.proto", fileDescriptor_translation_23667d09236b8210) + proto.RegisterFile("google/cloud/automl/v1beta1/translation.proto", fileDescriptor_translation_43aab93b197764ff) } -var fileDescriptor_translation_23667d09236b8210 = []byte{ - // 377 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x92, 0xcf, 0x6a, 0xdb, 0x40, - 0x10, 0xc6, 0x91, 0x0b, 0x05, 0x6f, 0x29, 0x6d, 0x45, 0x0b, 0xc6, 0x75, 0x69, 0xf1, 0xa1, 0xf8, - 0xd0, 0x4a, 0x75, 0x73, 0xcc, 0xc9, 0x76, 0x72, 0x8b, 0xc1, 0xd8, 0x86, 0x40, 0x2e, 0x62, 0x24, - 0x0d, 0x8b, 0x60, 0xb5, 0x23, 0xb4, 0x23, 0xe3, 0x63, 0x5e, 0x24, 0xef, 0x1a, 0x76, 0x57, 0xb6, - 0x45, 0x88, 0x0d, 0xb9, 0x49, 0x33, 0xbf, 0x6f, 0xfe, 0xed, 0x27, 0xfe, 0x4a, 0x22, 0xa9, 0x30, - 0xce, 0x14, 0x35, 0x79, 0x0c, 0x0d, 0x53, 0xa9, 0xe2, 0xdd, 0x34, 0x45, 0x86, 0x69, 0xcc, 0x35, - 0x68, 0xa3, 0x80, 0x0b, 0xd2, 0x51, 0x55, 0x13, 0x53, 0xf8, 0xdd, 0xe3, 0x91, 0xc3, 0x23, 0x8f, - 0x47, 0x2d, 0x3e, 0x1c, 0xb5, 0xb5, 0xa0, 0x2a, 0x62, 0xd0, 0x9a, 0xd8, 0x29, 0x8d, 0x97, 0x0e, - 0xff, 0x5c, 0xea, 0x94, 0x03, 0x43, 0x52, 0x30, 0x96, 0x2d, 0x3d, 0x7e, 0x0c, 0xc4, 0x70, 0x7b, - 0x6a, 0x7f, 0x03, 0x0c, 0x06, 0x79, 0x89, 0x0c, 0x16, 0x0d, 0xff, 0x89, 0xaf, 0x86, 0x9a, 0x3a, - 0xc3, 0x44, 0x81, 0x96, 0x0d, 0x48, 0x4c, 0x32, 0xca, 0x71, 0x10, 0xfc, 0x0a, 0x26, 0xfd, 0x75, - 0xe8, 0x73, 0x77, 0x6d, 0x6a, 0x41, 0x39, 0x5a, 0x05, 0x43, 0x2d, 0x91, 0x5f, 0x28, 0x7a, 0x5e, - 0xe1, 0x73, 0x5d, 0xc5, 0x18, 0xc5, 0xa8, 0x33, 0xc1, 0xed, 0x0e, 0x54, 0xe3, 0xbe, 0x96, 0xc8, - 0x75, 0x91, 0x99, 0xf0, 0x87, 0x10, 0xa9, 0xc2, 0x26, 0x31, 0x19, 0xd5, 0xbe, 0x73, 0xb0, 0xee, - 0xdb, 0xc8, 0xc6, 0x06, 0xc2, 0xdf, 0xe2, 0x53, 0x0a, 0x06, 0x93, 0x0e, 0xd3, 0x73, 0xcc, 0x47, - 0x1b, 0x9e, 0x1f, 0xb8, 0xf1, 0x53, 0x20, 0x06, 0x9d, 0x3e, 0x4b, 0xca, 0x51, 0x1d, 0xf7, 0xb4, - 0x3d, 0x6c, 0x91, 0xd2, 0x46, 0xdb, 0xed, 0xfa, 0x36, 0xe2, 0xb0, 0xb3, 0x67, 0xe8, 0xbd, 0xf9, - 0x0c, 0xef, 0xce, 0x9e, 0xa1, 0x12, 0xdf, 0x3a, 0xe3, 0xcd, 0x8e, 0xef, 0x1a, 0xde, 0x8b, 0xf0, - 0x60, 0x10, 0xcc, 0x93, 0x8c, 0x34, 0xa3, 0x66, 0x37, 0xe3, 0x87, 0xff, 0x93, 0xe8, 0x82, 0x51, - 0xa2, 0x2d, 0xee, 0x79, 0xa3, 0x8b, 0xaa, 0x42, 0x5e, 0x7f, 0x39, 0xd5, 0x58, 0xf8, 0x12, 0xf3, - 0xbd, 0xf8, 0x99, 0x51, 0x79, 0xa9, 0xc2, 0xfc, 0x73, 0x67, 0xa4, 0x95, 0x35, 0xcc, 0x2a, 0x78, - 0x98, 0xb5, 0x02, 0x49, 0x76, 0xb5, 0x88, 0x6a, 0x19, 0x4b, 0xd4, 0xce, 0x4e, 0xb1, 0x4f, 0x41, - 0x55, 0x98, 0x57, 0xfd, 0x77, 0xed, 0x7f, 0xd3, 0xf7, 0x8e, 0xbe, 0x7a, 0x0e, 0x00, 0x00, 0xff, - 0xff, 0xfb, 0xc7, 0xb3, 0x37, 0x16, 0x03, 0x00, 0x00, +var fileDescriptor_translation_43aab93b197764ff = []byte{ + // 398 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x92, 0x4f, 0xcb, 0xd3, 0x40, + 0x10, 0xc6, 0x49, 0x04, 0xa1, 0x2b, 0xa2, 0x06, 0x85, 0x97, 0xbe, 0x15, 0xa5, 0x07, 0xe9, 0x41, + 0x13, 0xab, 0x47, 0x4f, 0x6d, 0x15, 0x2f, 0x06, 0x4a, 0x5b, 0x14, 0xa4, 0x10, 0x26, 0xc9, 0xb0, + 0x04, 0x36, 0x3b, 0x21, 0x3b, 0x29, 0x1e, 0xfd, 0x14, 0xde, 0xfc, 0x42, 0x7e, 0x2a, 0xd9, 0xdd, + 0xb4, 0x0d, 0x62, 0x0b, 0xef, 0x2d, 0x99, 0xf9, 0x3d, 0xcf, 0xfc, 0xd9, 0x11, 0x6f, 0x24, 0x91, + 0x54, 0x98, 0x14, 0x8a, 0xba, 0x32, 0x81, 0x8e, 0xa9, 0x56, 0xc9, 0x61, 0x9e, 0x23, 0xc3, 0x3c, + 0xe1, 0x16, 0xb4, 0x51, 0xc0, 0x15, 0xe9, 0xb8, 0x69, 0x89, 0x29, 0xba, 0xf5, 0x78, 0xec, 0xf0, + 0xd8, 0xe3, 0x71, 0x8f, 0x8f, 0x27, 0xbd, 0x17, 0x34, 0x55, 0x02, 0x5a, 0x13, 0x3b, 0xa5, 0xf1, + 0xd2, 0xf1, 0xeb, 0x6b, 0x95, 0x4a, 0x60, 0xc8, 0x2a, 0xc6, 0xba, 0xa7, 0xa7, 0x3f, 0x03, 0x31, + 0xde, 0x9d, 0xcb, 0x7f, 0x04, 0x06, 0x83, 0x9c, 0x22, 0x83, 0x45, 0xa3, 0xb7, 0xe2, 0xa9, 0xa1, + 0xae, 0x2d, 0x30, 0x53, 0xa0, 0x65, 0x07, 0x12, 0xb3, 0x82, 0x4a, 0xbc, 0x09, 0x5e, 0x06, 0xb3, + 0xd1, 0x26, 0xf2, 0xb9, 0x2f, 0x7d, 0x6a, 0x45, 0x25, 0x5a, 0x05, 0x43, 0x2b, 0x91, 0xff, 0x51, + 0x84, 0x5e, 0xe1, 0x73, 0x43, 0xc5, 0x14, 0xc5, 0x64, 0xd0, 0xc1, 0xa7, 0x03, 0xa8, 0xce, 0x7d, + 0xa5, 0xc8, 0x6d, 0x55, 0x98, 0xe8, 0xb9, 0x10, 0xb9, 0xc2, 0x2e, 0x33, 0x05, 0xb5, 0xbe, 0x72, + 0xb0, 0x19, 0xd9, 0xc8, 0xd6, 0x06, 0xa2, 0x57, 0xe2, 0x51, 0x0e, 0x06, 0xb3, 0x01, 0x13, 0x3a, + 0xe6, 0xa1, 0x0d, 0x2f, 0x8f, 0xdc, 0xf4, 0x77, 0x20, 0x6e, 0x06, 0x75, 0x52, 0x2a, 0x51, 0x9d, + 0xe6, 0xb4, 0x35, 0xac, 0x49, 0x6d, 0xa3, 0xfd, 0x74, 0x23, 0x1b, 0x71, 0xd8, 0xc5, 0x35, 0x84, + 0x77, 0x5e, 0xc3, 0xbd, 0x8b, 0x6b, 0x68, 0xc4, 0xb3, 0x41, 0x7b, 0x8b, 0xd3, 0xbb, 0x46, 0xdf, + 0x44, 0x74, 0x3c, 0x10, 0x2c, 0xb3, 0x82, 0x34, 0xa3, 0x66, 0xd7, 0xe3, 0x83, 0x77, 0xb3, 0xf8, + 0xca, 0xa1, 0xc4, 0x3b, 0xfc, 0xc1, 0x5b, 0x5d, 0x35, 0x0d, 0xf2, 0xe6, 0xc9, 0xd9, 0x63, 0xe5, + 0x2d, 0x96, 0xbf, 0x02, 0xf1, 0xa2, 0xa0, 0xfa, 0x9a, 0xc5, 0xf2, 0xf1, 0xa0, 0xa7, 0xb5, 0xbd, + 0x98, 0x75, 0xf0, 0x7d, 0xd1, 0x0b, 0x24, 0xd9, 0xd9, 0x62, 0x6a, 0x65, 0x22, 0x51, 0xbb, 0x7b, + 0x4a, 0x7c, 0x0a, 0x9a, 0xca, 0xfc, 0xf7, 0x00, 0x3f, 0xf8, 0xdf, 0x3f, 0xe1, 0xed, 0x67, 0x07, + 0xee, 0x57, 0x16, 0xda, 0x2f, 0x3a, 0xa6, 0x54, 0xed, 0xbf, 0x7a, 0x28, 0xbf, 0xef, 0xbc, 0xde, + 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x5e, 0x30, 0x1b, 0xfc, 0x35, 0x03, 0x00, 0x00, } diff --git a/vendor/google.golang.org/genproto/googleapis/cloud/dataproc/v1/clusters.pb.go b/vendor/google.golang.org/genproto/googleapis/cloud/dataproc/v1/clusters.pb.go index a70fb3102..8c8128d9f 100644 --- a/vendor/google.golang.org/genproto/googleapis/cloud/dataproc/v1/clusters.pb.go +++ b/vendor/google.golang.org/genproto/googleapis/cloud/dataproc/v1/clusters.pb.go @@ -67,7 +67,7 @@ func (x ClusterStatus_State) String() string { return proto.EnumName(ClusterStatus_State_name, int32(x)) } func (ClusterStatus_State) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_clusters_2146ef75b3778e2a, []int{9, 0} + return fileDescriptor_clusters_eb8dcc455338db63, []int{9, 0} } // The cluster substate. @@ -104,7 +104,7 @@ func (x ClusterStatus_Substate) String() string { return proto.EnumName(ClusterStatus_Substate_name, int32(x)) } func (ClusterStatus_Substate) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_clusters_2146ef75b3778e2a, []int{9, 1} + return fileDescriptor_clusters_eb8dcc455338db63, []int{9, 1} } // Describes the identifying information, config, and status of @@ -146,7 +146,7 @@ func (m *Cluster) Reset() { *m = Cluster{} } func (m *Cluster) String() string { return proto.CompactTextString(m) } func (*Cluster) ProtoMessage() {} func (*Cluster) Descriptor() ([]byte, []int) { - return fileDescriptor_clusters_2146ef75b3778e2a, []int{0} + return fileDescriptor_clusters_eb8dcc455338db63, []int{0} } func (m *Cluster) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Cluster.Unmarshal(m, b) @@ -268,7 +268,7 @@ func (m *ClusterConfig) Reset() { *m = ClusterConfig{} } func (m *ClusterConfig) String() string { return proto.CompactTextString(m) } func (*ClusterConfig) ProtoMessage() {} func (*ClusterConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_clusters_2146ef75b3778e2a, []int{1} + return fileDescriptor_clusters_eb8dcc455338db63, []int{1} } func (m *ClusterConfig) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ClusterConfig.Unmarshal(m, b) @@ -358,7 +358,7 @@ func (m *EncryptionConfig) Reset() { *m = EncryptionConfig{} } func (m *EncryptionConfig) String() string { return proto.CompactTextString(m) } func (*EncryptionConfig) ProtoMessage() {} func (*EncryptionConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_clusters_2146ef75b3778e2a, []int{2} + return fileDescriptor_clusters_eb8dcc455338db63, []int{2} } func (m *EncryptionConfig) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_EncryptionConfig.Unmarshal(m, b) @@ -469,7 +469,7 @@ func (m *GceClusterConfig) Reset() { *m = GceClusterConfig{} } func (m *GceClusterConfig) String() string { return proto.CompactTextString(m) } func (*GceClusterConfig) ProtoMessage() {} func (*GceClusterConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_clusters_2146ef75b3778e2a, []int{3} + return fileDescriptor_clusters_eb8dcc455338db63, []int{3} } func (m *GceClusterConfig) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GceClusterConfig.Unmarshal(m, b) @@ -594,7 +594,7 @@ func (m *InstanceGroupConfig) Reset() { *m = InstanceGroupConfig{} } func (m *InstanceGroupConfig) String() string { return proto.CompactTextString(m) } func (*InstanceGroupConfig) ProtoMessage() {} func (*InstanceGroupConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_clusters_2146ef75b3778e2a, []int{4} + return fileDescriptor_clusters_eb8dcc455338db63, []int{4} } func (m *InstanceGroupConfig) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InstanceGroupConfig.Unmarshal(m, b) @@ -686,7 +686,7 @@ func (m *ManagedGroupConfig) Reset() { *m = ManagedGroupConfig{} } func (m *ManagedGroupConfig) String() string { return proto.CompactTextString(m) } func (*ManagedGroupConfig) ProtoMessage() {} func (*ManagedGroupConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_clusters_2146ef75b3778e2a, []int{5} + return fileDescriptor_clusters_eb8dcc455338db63, []int{5} } func (m *ManagedGroupConfig) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ManagedGroupConfig.Unmarshal(m, b) @@ -749,7 +749,7 @@ func (m *AcceleratorConfig) Reset() { *m = AcceleratorConfig{} } func (m *AcceleratorConfig) String() string { return proto.CompactTextString(m) } func (*AcceleratorConfig) ProtoMessage() {} func (*AcceleratorConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_clusters_2146ef75b3778e2a, []int{6} + return fileDescriptor_clusters_eb8dcc455338db63, []int{6} } func (m *AcceleratorConfig) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AcceleratorConfig.Unmarshal(m, b) @@ -807,7 +807,7 @@ func (m *DiskConfig) Reset() { *m = DiskConfig{} } func (m *DiskConfig) String() string { return proto.CompactTextString(m) } func (*DiskConfig) ProtoMessage() {} func (*DiskConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_clusters_2146ef75b3778e2a, []int{7} + return fileDescriptor_clusters_eb8dcc455338db63, []int{7} } func (m *DiskConfig) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DiskConfig.Unmarshal(m, b) @@ -867,7 +867,7 @@ func (m *NodeInitializationAction) Reset() { *m = NodeInitializationActi func (m *NodeInitializationAction) String() string { return proto.CompactTextString(m) } func (*NodeInitializationAction) ProtoMessage() {} func (*NodeInitializationAction) Descriptor() ([]byte, []int) { - return fileDescriptor_clusters_2146ef75b3778e2a, []int{8} + return fileDescriptor_clusters_eb8dcc455338db63, []int{8} } func (m *NodeInitializationAction) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_NodeInitializationAction.Unmarshal(m, b) @@ -921,7 +921,7 @@ func (m *ClusterStatus) Reset() { *m = ClusterStatus{} } func (m *ClusterStatus) String() string { return proto.CompactTextString(m) } func (*ClusterStatus) ProtoMessage() {} func (*ClusterStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_clusters_2146ef75b3778e2a, []int{9} + return fileDescriptor_clusters_eb8dcc455338db63, []int{9} } func (m *ClusterStatus) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ClusterStatus.Unmarshal(m, b) @@ -1005,7 +1005,7 @@ func (m *SoftwareConfig) Reset() { *m = SoftwareConfig{} } func (m *SoftwareConfig) String() string { return proto.CompactTextString(m) } func (*SoftwareConfig) ProtoMessage() {} func (*SoftwareConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_clusters_2146ef75b3778e2a, []int{10} + return fileDescriptor_clusters_eb8dcc455338db63, []int{10} } func (m *SoftwareConfig) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SoftwareConfig.Unmarshal(m, b) @@ -1057,7 +1057,7 @@ func (m *ClusterMetrics) Reset() { *m = ClusterMetrics{} } func (m *ClusterMetrics) String() string { return proto.CompactTextString(m) } func (*ClusterMetrics) ProtoMessage() {} func (*ClusterMetrics) Descriptor() ([]byte, []int) { - return fileDescriptor_clusters_2146ef75b3778e2a, []int{11} + return fileDescriptor_clusters_eb8dcc455338db63, []int{11} } func (m *ClusterMetrics) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ClusterMetrics.Unmarshal(m, b) @@ -1121,7 +1121,7 @@ func (m *CreateClusterRequest) Reset() { *m = CreateClusterRequest{} } func (m *CreateClusterRequest) String() string { return proto.CompactTextString(m) } func (*CreateClusterRequest) ProtoMessage() {} func (*CreateClusterRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_clusters_2146ef75b3778e2a, []int{12} + return fileDescriptor_clusters_eb8dcc455338db63, []int{12} } func (m *CreateClusterRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateClusterRequest.Unmarshal(m, b) @@ -1258,7 +1258,7 @@ func (m *UpdateClusterRequest) Reset() { *m = UpdateClusterRequest{} } func (m *UpdateClusterRequest) String() string { return proto.CompactTextString(m) } func (*UpdateClusterRequest) ProtoMessage() {} func (*UpdateClusterRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_clusters_2146ef75b3778e2a, []int{13} + return fileDescriptor_clusters_eb8dcc455338db63, []int{13} } func (m *UpdateClusterRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UpdateClusterRequest.Unmarshal(m, b) @@ -1360,7 +1360,7 @@ func (m *DeleteClusterRequest) Reset() { *m = DeleteClusterRequest{} } func (m *DeleteClusterRequest) String() string { return proto.CompactTextString(m) } func (*DeleteClusterRequest) ProtoMessage() {} func (*DeleteClusterRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_clusters_2146ef75b3778e2a, []int{14} + return fileDescriptor_clusters_eb8dcc455338db63, []int{14} } func (m *DeleteClusterRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteClusterRequest.Unmarshal(m, b) @@ -1433,7 +1433,7 @@ func (m *GetClusterRequest) Reset() { *m = GetClusterRequest{} } func (m *GetClusterRequest) String() string { return proto.CompactTextString(m) } func (*GetClusterRequest) ProtoMessage() {} func (*GetClusterRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_clusters_2146ef75b3778e2a, []int{15} + return fileDescriptor_clusters_eb8dcc455338db63, []int{15} } func (m *GetClusterRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetClusterRequest.Unmarshal(m, b) @@ -1514,7 +1514,7 @@ func (m *ListClustersRequest) Reset() { *m = ListClustersRequest{} } func (m *ListClustersRequest) String() string { return proto.CompactTextString(m) } func (*ListClustersRequest) ProtoMessage() {} func (*ListClustersRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_clusters_2146ef75b3778e2a, []int{16} + return fileDescriptor_clusters_eb8dcc455338db63, []int{16} } func (m *ListClustersRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListClustersRequest.Unmarshal(m, b) @@ -1586,7 +1586,7 @@ func (m *ListClustersResponse) Reset() { *m = ListClustersResponse{} } func (m *ListClustersResponse) String() string { return proto.CompactTextString(m) } func (*ListClustersResponse) ProtoMessage() {} func (*ListClustersResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_clusters_2146ef75b3778e2a, []int{17} + return fileDescriptor_clusters_eb8dcc455338db63, []int{17} } func (m *ListClustersResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListClustersResponse.Unmarshal(m, b) @@ -1638,7 +1638,7 @@ func (m *DiagnoseClusterRequest) Reset() { *m = DiagnoseClusterRequest{} func (m *DiagnoseClusterRequest) String() string { return proto.CompactTextString(m) } func (*DiagnoseClusterRequest) ProtoMessage() {} func (*DiagnoseClusterRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_clusters_2146ef75b3778e2a, []int{18} + return fileDescriptor_clusters_eb8dcc455338db63, []int{18} } func (m *DiagnoseClusterRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DiagnoseClusterRequest.Unmarshal(m, b) @@ -1694,7 +1694,7 @@ func (m *DiagnoseClusterResults) Reset() { *m = DiagnoseClusterResults{} func (m *DiagnoseClusterResults) String() string { return proto.CompactTextString(m) } func (*DiagnoseClusterResults) ProtoMessage() {} func (*DiagnoseClusterResults) Descriptor() ([]byte, []int) { - return fileDescriptor_clusters_2146ef75b3778e2a, []int{19} + return fileDescriptor_clusters_eb8dcc455338db63, []int{19} } func (m *DiagnoseClusterResults) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DiagnoseClusterResults.Unmarshal(m, b) @@ -2005,139 +2005,139 @@ var _ClusterController_serviceDesc = grpc.ServiceDesc{ } func init() { - proto.RegisterFile("google/cloud/dataproc/v1/clusters.proto", fileDescriptor_clusters_2146ef75b3778e2a) + proto.RegisterFile("google/cloud/dataproc/v1/clusters.proto", fileDescriptor_clusters_eb8dcc455338db63) } -var fileDescriptor_clusters_2146ef75b3778e2a = []byte{ - // 2076 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x59, 0x5d, 0x73, 0x1c, 0x47, - 0xd5, 0xce, 0x68, 0xb5, 0xd2, 0xea, 0xec, 0x87, 0x56, 0x1d, 0x45, 0xef, 0x46, 0x89, 0xdf, 0x38, - 0x93, 0x80, 0x85, 0x13, 0x76, 0x6d, 0x05, 0x8a, 0xc4, 0x26, 0x21, 0xb2, 0x76, 0x6d, 0x0b, 0xcb, - 0x6b, 0x31, 0xbb, 0xb2, 0x13, 0x0a, 0x98, 0xea, 0x9d, 0x69, 0xad, 0x1b, 0xcd, 0x57, 0xa6, 0x7b, - 0x94, 0xac, 0x5d, 0xbe, 0x81, 0x2a, 0xaa, 0x28, 0x2e, 0xa9, 0xe2, 0x9a, 0x0b, 0xa8, 0x82, 0x5c, - 0x06, 0xae, 0xf8, 0x03, 0xdc, 0x50, 0xdc, 0xf0, 0x17, 0xb8, 0xe0, 0x67, 0x50, 0xfd, 0x31, 0xbb, - 0x33, 0xab, 0x8f, 0x95, 0x8c, 0x2b, 0x57, 0x9a, 0x39, 0xfd, 0x9c, 0x73, 0x9e, 0xee, 0x3e, 0xfd, - 0xcc, 0xe9, 0x15, 0x5c, 0x19, 0x86, 0xe1, 0xd0, 0x23, 0x2d, 0xc7, 0x0b, 0x13, 0xb7, 0xe5, 0x62, - 0x8e, 0xa3, 0x38, 0x74, 0x5a, 0x47, 0xd7, 0x5b, 0x8e, 0x97, 0x30, 0x4e, 0x62, 0xd6, 0x8c, 0xe2, - 0x90, 0x87, 0xa8, 0xa1, 0x80, 0x4d, 0x09, 0x6c, 0xa6, 0xc0, 0xe6, 0xd1, 0xf5, 0xf5, 0xd7, 0x75, - 0x08, 0x1c, 0xd1, 0x16, 0x0e, 0x82, 0x90, 0x63, 0x4e, 0xc3, 0x40, 0xfb, 0xad, 0xbf, 0xa5, 0x47, - 0xbd, 0x30, 0x18, 0xc6, 0x49, 0x10, 0xd0, 0x60, 0xd8, 0x0a, 0x23, 0x12, 0xe7, 0x40, 0xff, 0xaf, - 0x41, 0xf2, 0x6d, 0x90, 0x1c, 0xb4, 0xdc, 0x44, 0x01, 0xf4, 0xf8, 0xe5, 0xe9, 0xf1, 0x03, 0x4a, - 0x3c, 0xd7, 0xf6, 0x31, 0x3b, 0xd4, 0x88, 0x37, 0xa6, 0x11, 0x9c, 0xfa, 0x84, 0x71, 0xec, 0x47, - 0x0a, 0x60, 0xfe, 0x6a, 0x1e, 0x16, 0xb7, 0xd5, 0x94, 0xd0, 0x25, 0x80, 0x28, 0x0e, 0x7f, 0x4e, - 0x1c, 0x6e, 0x53, 0xb7, 0x61, 0x5c, 0x36, 0x36, 0x96, 0xac, 0x25, 0x6d, 0xd9, 0x71, 0xd1, 0x9b, - 0x50, 0xd1, 0x93, 0xb7, 0x03, 0xec, 0x93, 0xc6, 0x9c, 0x04, 0x94, 0xb5, 0xad, 0x8b, 0x7d, 0x82, - 0x7e, 0x00, 0x0b, 0x4e, 0x18, 0x1c, 0xd0, 0x61, 0xa3, 0x70, 0xd9, 0xd8, 0x28, 0x6f, 0x5e, 0x69, - 0x9e, 0xb6, 0x3c, 0x4d, 0x9d, 0x74, 0x5b, 0xc2, 0x2d, 0xed, 0x86, 0x3a, 0xb0, 0xe0, 0xe1, 0x01, - 0xf1, 0x58, 0xa3, 0x74, 0xb9, 0xb0, 0x51, 0xde, 0xfc, 0xf6, 0xcc, 0x00, 0xcd, 0x5d, 0x89, 0xef, - 0x04, 0x3c, 0x1e, 0x59, 0xda, 0x59, 0xf0, 0x60, 0x1c, 0xf3, 0x84, 0x35, 0xe6, 0xcf, 0xc9, 0xa3, - 0x27, 0xe1, 0x96, 0x76, 0x43, 0x5d, 0xa8, 0xa9, 0x27, 0xfb, 0x31, 0x65, 0x3c, 0x8c, 0x47, 0x8d, - 0x45, 0xc9, 0xe7, 0xdc, 0x81, 0xaa, 0xca, 0xfd, 0xae, 0xf2, 0xce, 0xae, 0x5d, 0x92, 0x50, 0xb7, - 0xb1, 0x90, 0x5b, 0xbb, 0xfd, 0x84, 0xba, 0xe8, 0x16, 0x2c, 0xfa, 0x84, 0xc7, 0xd4, 0x61, 0x8d, - 0x25, 0x49, 0x7a, 0x63, 0x66, 0xae, 0xfb, 0x0a, 0x6f, 0xa5, 0x8e, 0xeb, 0x1f, 0x40, 0x39, 0xb3, - 0x1c, 0xa8, 0x0e, 0x85, 0x43, 0x32, 0xd2, 0x3b, 0x29, 0x1e, 0xd1, 0x2a, 0x14, 0x8f, 0xb0, 0x97, - 0xa4, 0x9b, 0xa7, 0x5e, 0x6e, 0xcc, 0xbd, 0x6f, 0x98, 0x7f, 0x2d, 0x42, 0x35, 0xb7, 0x27, 0xe8, - 0x2d, 0xa8, 0xaa, 0x5d, 0xb1, 0x07, 0x89, 0x73, 0x48, 0xb8, 0x8e, 0x53, 0x51, 0xc6, 0x5b, 0xd2, - 0x86, 0x3e, 0x01, 0x34, 0x74, 0x88, 0x9d, 0x4e, 0x4e, 0xef, 0x7e, 0x49, 0x4e, 0xe0, 0xea, 0xe9, - 0x13, 0xb8, 0xe3, 0x90, 0x7c, 0x01, 0xd4, 0x87, 0x53, 0x16, 0x64, 0x41, 0xd5, 0xc7, 0xd9, 0xa0, - 0x6a, 0x55, 0xce, 0xa8, 0x88, 0x9d, 0x80, 0x71, 0x1c, 0x38, 0xe4, 0x4e, 0x1c, 0x26, 0x91, 0x8e, - 0x5b, 0x51, 0x31, 0x26, 0x31, 0x3f, 0x0f, 0xe3, 0xc3, 0x49, 0x4c, 0x78, 0xae, 0x98, 0x2a, 0x86, - 0x8e, 0x49, 0xe0, 0xff, 0x18, 0x71, 0xc2, 0xc0, 0xc5, 0xf1, 0xc8, 0xce, 0x47, 0xaf, 0x3c, 0x4f, - 0xf4, 0x57, 0xc6, 0xd1, 0x1e, 0x65, 0xd3, 0xfc, 0x08, 0x96, 0x59, 0x78, 0xc0, 0x3f, 0xc7, 0x31, - 0x49, 0xc3, 0x57, 0x67, 0x95, 0x49, 0x4f, 0x3b, 0xe8, 0xc8, 0x35, 0x96, 0x7b, 0x47, 0x14, 0xd6, - 0x68, 0x40, 0x39, 0xc5, 0x1e, 0x7d, 0x22, 0x65, 0xc5, 0xc6, 0x8e, 0x94, 0x9f, 0x46, 0x59, 0x16, - 0xfb, 0xe6, 0xe9, 0x91, 0xbb, 0xa1, 0x4b, 0x76, 0x72, 0xbe, 0x5b, 0xd2, 0xd5, 0x7a, 0x85, 0x9e, - 0x60, 0x65, 0xe8, 0x11, 0xac, 0x90, 0xc0, 0x89, 0x47, 0x91, 0x4c, 0xa3, 0xf9, 0x2f, 0xcf, 0xaa, - 0x92, 0xce, 0xd8, 0x25, 0xad, 0x12, 0x32, 0x65, 0x31, 0x3f, 0x86, 0xfa, 0x34, 0x0a, 0xbd, 0x0b, - 0x2f, 0x8b, 0x9a, 0x8c, 0x5c, 0xfb, 0xd0, 0x67, 0xf6, 0x21, 0x19, 0x29, 0xbd, 0x52, 0xe5, 0xbb, - 0x3c, 0x74, 0xc8, 0x9e, 0x7b, 0xcf, 0x67, 0xf7, 0xc8, 0x48, 0x68, 0x96, 0xf9, 0xc7, 0x02, 0xd4, - 0xa7, 0xcb, 0x11, 0xbd, 0x0a, 0xa5, 0x27, 0x61, 0x40, 0xec, 0x24, 0xa6, 0xda, 0x6f, 0x51, 0xbc, - 0xef, 0xc7, 0x14, 0xbd, 0x01, 0xe5, 0x80, 0x70, 0xb1, 0xd1, 0x72, 0x54, 0x1d, 0x24, 0xd0, 0x26, - 0x01, 0xf8, 0x06, 0xd4, 0x58, 0x32, 0xc8, 0x62, 0xd4, 0x69, 0xaf, 0x4e, 0xac, 0x02, 0xb6, 0x01, - 0x75, 0x1a, 0x70, 0x12, 0x07, 0xd8, 0xb3, 0x69, 0x64, 0x87, 0x81, 0x27, 0x44, 0xc6, 0xd8, 0x28, - 0x59, 0xb5, 0xd4, 0xbe, 0x13, 0x3d, 0x08, 0xbc, 0x11, 0xba, 0x02, 0xcb, 0x8c, 0xc4, 0x47, 0xd4, - 0x21, 0x36, 0x76, 0x9c, 0x30, 0x09, 0xb8, 0x3c, 0x60, 0x4b, 0x56, 0x4d, 0x9b, 0xb7, 0x94, 0x15, - 0x7d, 0x07, 0xd6, 0xa6, 0x80, 0x36, 0x73, 0xc2, 0x88, 0xb0, 0x46, 0xe1, 0x72, 0x61, 0x63, 0xc9, - 0x5a, 0xcd, 0xe3, 0x7b, 0x72, 0x0c, 0x21, 0x98, 0xe7, 0x78, 0x28, 0xa4, 0x52, 0x60, 0xe4, 0x33, - 0xea, 0x43, 0xc9, 0x27, 0x1c, 0x8b, 0xcd, 0x68, 0x14, 0x65, 0x31, 0xbc, 0x7f, 0xfe, 0xc3, 0xdc, - 0xbc, 0xaf, 0x5d, 0x95, 0x28, 0x8f, 0x23, 0xad, 0xdf, 0x84, 0x6a, 0x6e, 0xe8, 0x42, 0x02, 0xf5, - 0xf7, 0x02, 0xbc, 0x7c, 0xc2, 0x79, 0x11, 0x32, 0x15, 0x24, 0xbe, 0x4d, 0xf5, 0x10, 0x93, 0xd1, - 0x8a, 0x56, 0x25, 0x48, 0xfc, 0x14, 0xce, 0xc4, 0x9e, 0xa4, 0x00, 0x59, 0x0c, 0xac, 0x31, 0x27, - 0x67, 0x5b, 0x4d, 0xad, 0xa2, 0x14, 0x18, 0x7a, 0x0d, 0x96, 0xa8, 0x8f, 0x87, 0x6a, 0xdf, 0x0b, - 0x92, 0x41, 0x49, 0x1a, 0xf4, 0x86, 0xf9, 0xd8, 0x79, 0x4c, 0x03, 0x62, 0xf3, 0x51, 0xa4, 0x30, - 0xf3, 0x6a, 0x1f, 0xb4, 0xbd, 0x3f, 0x8a, 0x24, 0xb2, 0x03, 0x65, 0x97, 0xb2, 0xc3, 0xb4, 0xce, - 0x8b, 0xb2, 0xce, 0xdf, 0x3e, 0x7d, 0x01, 0xdb, 0x94, 0x1d, 0xea, 0x0a, 0x07, 0x77, 0xfc, 0x2c, - 0x49, 0x33, 0x3b, 0x8a, 0x09, 0xf1, 0x23, 0x4e, 0x07, 0x1e, 0x91, 0x85, 0x54, 0xb2, 0xaa, 0x94, - 0xed, 0x4d, 0x8c, 0xe8, 0x67, 0xb0, 0xea, 0xe3, 0x00, 0x0f, 0x89, 0x6b, 0x0f, 0xc5, 0xba, 0xa4, - 0x69, 0x17, 0x65, 0xda, 0x77, 0x4f, 0x4f, 0x7b, 0x5f, 0x79, 0x65, 0xc5, 0x07, 0xf9, 0xc7, 0x6c, - 0xe8, 0x01, 0x54, 0xb0, 0xe3, 0x10, 0x4f, 0x34, 0x27, 0x61, 0x9c, 0x7e, 0x99, 0xdf, 0x39, 0x3d, - 0xee, 0xd6, 0x04, 0x9d, 0x2a, 0x66, 0x36, 0x80, 0xf9, 0x6b, 0x03, 0xd0, 0xf1, 0xdc, 0xa2, 0x7a, - 0xc7, 0x7b, 0xc4, 0x89, 0x1f, 0x79, 0x98, 0x93, 0xec, 0xc9, 0x5d, 0x4d, 0x47, 0xfb, 0x7a, 0x50, - 0xb6, 0x1c, 0x1f, 0xc2, 0x6b, 0x63, 0x2f, 0x35, 0x7d, 0x35, 0x85, 0x5c, 0x93, 0xd2, 0xa0, 0xd9, - 0xc2, 0x51, 0xb9, 0x65, 0xc7, 0x62, 0xc6, 0xb0, 0x72, 0x8c, 0x2e, 0xba, 0x06, 0xab, 0x19, 0xc2, - 0x93, 0xdd, 0x56, 0x3c, 0x50, 0x66, 0x2c, 0xdd, 0xf1, 0x77, 0x60, 0x25, 0xeb, 0xa1, 0x0e, 0xe9, - 0x9c, 0x2c, 0xc4, 0x3a, 0xce, 0xc6, 0x4f, 0x02, 0x6e, 0xfe, 0xd2, 0x00, 0x98, 0x6c, 0x39, 0x7a, - 0x1b, 0x6a, 0x83, 0x30, 0xe4, 0xb6, 0x2c, 0x19, 0x91, 0x4b, 0x57, 0x5e, 0x45, 0x58, 0x05, 0x4e, - 0x24, 0x41, 0xdf, 0x82, 0x95, 0x09, 0x8a, 0xd1, 0x27, 0xc4, 0x1e, 0x0e, 0x74, 0xa9, 0xd7, 0x52, - 0x60, 0x8f, 0x3e, 0x21, 0x77, 0x06, 0x22, 0xa0, 0x38, 0x11, 0x5e, 0xe8, 0x60, 0xcf, 0x66, 0xcc, - 0x65, 0x9a, 0x89, 0x38, 0x12, 0xbb, 0xc2, 0xd8, 0x63, 0x2e, 0x33, 0x7f, 0x63, 0x40, 0xe3, 0x34, - 0x19, 0x17, 0x92, 0x43, 0xbe, 0x20, 0x4e, 0xc2, 0xf1, 0xc0, 0x23, 0xf6, 0x01, 0xf5, 0xd2, 0x4d, - 0xa8, 0x4d, 0xcc, 0xb7, 0xa9, 0x47, 0xd0, 0x6d, 0x58, 0x51, 0x16, 0xa1, 0xeb, 0xa2, 0xb9, 0x0c, - 0x13, 0x35, 0xf1, 0xf2, 0xe6, 0xab, 0x69, 0x85, 0xa4, 0xcd, 0x67, 0xb3, 0xad, 0xdb, 0x57, 0xab, - 0x3e, 0xf6, 0xe9, 0x2b, 0x17, 0xf3, 0x77, 0x85, 0x71, 0xfb, 0xa1, 0x3a, 0x28, 0xb4, 0x0d, 0x45, - 0xd1, 0x43, 0xa9, 0xc4, 0xb5, 0x73, 0x74, 0x82, 0xca, 0xaf, 0x29, 0xfe, 0x10, 0x4b, 0xf9, 0xa2, - 0x35, 0x58, 0x70, 0x09, 0xc7, 0xd4, 0xd3, 0x85, 0xa0, 0xdf, 0x50, 0x1b, 0xea, 0x12, 0x60, 0x33, - 0x8e, 0x63, 0x2e, 0x89, 0xeb, 0x96, 0x75, 0xfd, 0x18, 0xeb, 0x7e, 0xda, 0x32, 0x5b, 0xb2, 0x27, - 0x24, 0x3d, 0xe1, 0x22, 0x8c, 0x68, 0x17, 0x4a, 0x2c, 0x19, 0x28, 0x96, 0xf3, 0x92, 0xe5, 0xb5, - 0x73, 0xb3, 0xd4, 0x7e, 0xd6, 0x38, 0x82, 0xf9, 0x10, 0x8a, 0x92, 0x3b, 0x2a, 0xc3, 0xe2, 0x7e, - 0xf7, 0x5e, 0xf7, 0xc1, 0xa3, 0x6e, 0xfd, 0x25, 0x54, 0x81, 0xd2, 0xb6, 0xd5, 0xd9, 0xea, 0xef, - 0x74, 0xef, 0xd4, 0x0d, 0x31, 0x64, 0xed, 0x77, 0xbb, 0xe2, 0x65, 0x0e, 0x2d, 0x41, 0xb1, 0x63, - 0x59, 0x0f, 0xac, 0x7a, 0x41, 0xa0, 0xda, 0x9d, 0xdd, 0x8e, 0x44, 0xcd, 0x8b, 0xb7, 0xfd, 0xbd, - 0xb6, 0xf2, 0x29, 0x9a, 0xdf, 0x87, 0x52, 0x9a, 0x0d, 0x2d, 0x43, 0x79, 0xbf, 0xdb, 0xdb, 0xeb, - 0x6c, 0xef, 0xdc, 0xde, 0xe9, 0xb4, 0xeb, 0x2f, 0xa1, 0x2a, 0x2c, 0xed, 0x77, 0xef, 0x76, 0xb6, - 0x76, 0xfb, 0x77, 0x3f, 0xad, 0x1b, 0xa8, 0x0e, 0x95, 0x5e, 0x7f, 0x6b, 0xb7, 0x63, 0xf7, 0xfa, - 0x5b, 0xfd, 0xfd, 0x5e, 0x7d, 0xce, 0xfc, 0xa7, 0x01, 0xb5, 0x7c, 0x1f, 0x21, 0x14, 0x57, 0xa9, - 0xe4, 0x11, 0x89, 0x19, 0x0d, 0x83, 0xb4, 0x31, 0x94, 0xc6, 0x87, 0xca, 0x86, 0x3e, 0x91, 0x97, - 0x89, 0x88, 0xc4, 0x9c, 0x6a, 0xb5, 0x3d, 0xf3, 0x1b, 0x92, 0x4f, 0xd1, 0xdc, 0x1b, 0xbb, 0xaa, - 0x6f, 0x48, 0x26, 0xd6, 0xfa, 0x87, 0xb0, 0x3c, 0x35, 0x7c, 0xa1, 0xef, 0xc8, 0x3f, 0xe6, 0xa0, - 0x96, 0xef, 0x9f, 0xd1, 0x4f, 0xa0, 0xf2, 0xd8, 0x3d, 0x60, 0x76, 0xda, 0x7f, 0x1b, 0x92, 0xed, - 0x07, 0xe7, 0xed, 0xbf, 0x9b, 0x77, 0xdd, 0x03, 0xa6, 0x9f, 0x15, 0xdd, 0xf2, 0xe3, 0x89, 0x45, - 0x44, 0x1f, 0xe1, 0x38, 0x18, 0x47, 0x9f, 0xbb, 0x60, 0xf4, 0x4f, 0x71, 0x1c, 0xe4, 0xa3, 0x8f, - 0x26, 0x96, 0xf5, 0x8f, 0xa0, 0x3e, 0x9d, 0x7e, 0xd6, 0x72, 0x14, 0x32, 0xcb, 0x21, 0xfc, 0xa7, - 0x13, 0x5c, 0xc4, 0xdf, 0xfc, 0xb3, 0x01, 0xab, 0xdb, 0x31, 0xc1, 0x3c, 0xed, 0x01, 0x2c, 0xf2, - 0x59, 0x42, 0x18, 0x9f, 0x75, 0x9b, 0x5c, 0x83, 0x85, 0x98, 0x0c, 0x45, 0xf5, 0x28, 0xb5, 0xd3, - 0x6f, 0xe8, 0x26, 0x2c, 0xea, 0xcb, 0x84, 0x96, 0x91, 0x37, 0x67, 0x2e, 0x94, 0x95, 0x7a, 0x88, - 0x9c, 0xb1, 0x4a, 0x2f, 0x72, 0xaa, 0x8f, 0xf3, 0x92, 0xb6, 0xec, 0xb8, 0xe6, 0x7f, 0xe6, 0x60, - 0x75, 0x3f, 0x72, 0xff, 0x07, 0xae, 0xc5, 0x1c, 0xd7, 0x73, 0xdc, 0x88, 0x33, 0xd3, 0x29, 0x5c, - 0x78, 0x3a, 0x3f, 0x85, 0x4b, 0xc3, 0x18, 0x3b, 0xe4, 0x20, 0xf1, 0x6c, 0x97, 0x38, 0xa1, 0xef, - 0x53, 0xc6, 0xb2, 0x42, 0xbb, 0x30, 0x4b, 0x68, 0x5f, 0x4b, 0xfd, 0xdb, 0x19, 0x77, 0xad, 0xb9, - 0xe8, 0x26, 0x94, 0x13, 0xb9, 0x1a, 0xf2, 0x17, 0x03, 0x7d, 0x55, 0x3e, 0xae, 0x7f, 0xb7, 0x29, - 0xf1, 0xdc, 0xfb, 0x98, 0x1d, 0x5a, 0xa0, 0xe0, 0xe2, 0x79, 0x6a, 0xa9, 0x17, 0xa7, 0x97, 0xfa, - 0x2b, 0x03, 0x56, 0xdb, 0xc4, 0x23, 0x2f, 0xaa, 0x2c, 0xce, 0xb1, 0xd4, 0xd3, 0x77, 0xec, 0xf9, - 0xe3, 0x77, 0xec, 0x3c, 0xe9, 0xe2, 0x34, 0x69, 0x1f, 0x56, 0xee, 0x10, 0xfe, 0x75, 0x11, 0x36, - 0x7f, 0x6f, 0xc0, 0xcb, 0xbb, 0x94, 0xa5, 0x09, 0xd9, 0x85, 0x33, 0xce, 0xe7, 0x32, 0xae, 0xc1, - 0xc2, 0x01, 0xf5, 0x44, 0xa5, 0xe9, 0x2a, 0x55, 0x6f, 0xa2, 0xa9, 0x8d, 0x84, 0x5a, 0x8b, 0xa6, - 0x41, 0x77, 0x02, 0x25, 0x61, 0x10, 0xdd, 0x82, 0xcc, 0x25, 0x06, 0x79, 0x78, 0x48, 0xd2, 0x29, - 0x48, 0x78, 0x5f, 0x18, 0xcc, 0x67, 0xb0, 0x9a, 0x67, 0xc8, 0xa2, 0x30, 0x60, 0xa2, 0xeb, 0x2a, - 0xa5, 0x3f, 0x84, 0x69, 0xb5, 0x3c, 0x47, 0x5d, 0x8f, 0x5d, 0xd0, 0x37, 0x61, 0x39, 0x20, 0x5f, - 0x70, 0x3b, 0x93, 0x5a, 0xad, 0x4f, 0x55, 0x98, 0xf7, 0xc6, 0xe9, 0x63, 0x58, 0x6b, 0x53, 0x3c, - 0x0c, 0x42, 0xf6, 0xb5, 0x95, 0x91, 0xf9, 0xbd, 0x13, 0x72, 0xb2, 0xc4, 0xe3, 0x4c, 0xe4, 0x0c, - 0x13, 0x1e, 0x25, 0x3c, 0xd3, 0x0c, 0x2e, 0x29, 0xcb, 0x7e, 0x4c, 0x37, 0xbf, 0x2a, 0xc1, 0xca, - 0xe4, 0x1e, 0xc4, 0xe3, 0xd0, 0xf3, 0x48, 0x8c, 0xfe, 0x60, 0x40, 0x35, 0xa7, 0x8f, 0xa8, 0x79, - 0xc6, 0x4a, 0x9d, 0x20, 0xa4, 0xeb, 0x97, 0x52, 0x7c, 0xe6, 0xb7, 0xc2, 0xe6, 0x83, 0xf4, 0xb7, - 0x42, 0xb3, 0xfd, 0x8b, 0x7f, 0xfd, 0xfb, 0xb7, 0x73, 0x1f, 0x99, 0xef, 0xb5, 0x8e, 0xae, 0xb7, - 0xf4, 0x0a, 0xb0, 0xd6, 0xd3, 0xc9, 0xea, 0x3c, 0x6b, 0xa9, 0xc9, 0xb3, 0xd6, 0x53, 0xf5, 0xf0, - 0x6c, 0xfc, 0x23, 0xe6, 0x8d, 0xb1, 0xd4, 0xfc, 0xc5, 0x80, 0x6a, 0x4e, 0x1a, 0xcf, 0xa2, 0x79, - 0x92, 0x86, 0xce, 0xa2, 0xd9, 0x93, 0x34, 0xef, 0x6f, 0xde, 0x7a, 0x0e, 0x9a, 0xad, 0xa7, 0xd9, - 0x4d, 0x7b, 0x36, 0x61, 0xfd, 0xa5, 0x01, 0xd5, 0x9c, 0xca, 0x9c, 0xc5, 0xfa, 0x24, 0x39, 0x9a, - 0xc5, 0xfa, 0x87, 0x92, 0x75, 0xfb, 0xea, 0x0b, 0x60, 0x8d, 0xfe, 0x64, 0x00, 0x4c, 0xe4, 0x05, - 0x9d, 0x71, 0x81, 0x3a, 0x26, 0x42, 0xeb, 0xb3, 0x4f, 0x57, 0x4a, 0x15, 0xbd, 0x08, 0xaa, 0x5f, - 0x1a, 0x50, 0xc9, 0x9e, 0x7b, 0x74, 0x46, 0xf7, 0x7d, 0x82, 0x82, 0xad, 0x37, 0xcf, 0x0b, 0x57, - 0x72, 0x62, 0xde, 0x94, 0xdc, 0xbf, 0x8b, 0x9e, 0xa7, 0x86, 0xd1, 0xdf, 0x0c, 0x58, 0x9e, 0x3a, - 0xb1, 0xe8, 0xda, 0x59, 0x97, 0xed, 0x93, 0x04, 0x65, 0x56, 0x21, 0x3c, 0x94, 0x0c, 0xf7, 0xcc, - 0x7b, 0x2f, 0xa0, 0x7c, 0x5d, 0xcd, 0xe0, 0x86, 0x71, 0xf5, 0xd6, 0x67, 0xf0, 0xba, 0x13, 0xfa, - 0xa7, 0xb2, 0xbd, 0x95, 0x5e, 0x8a, 0xd8, 0x9e, 0xf8, 0x1c, 0xef, 0x19, 0x3f, 0xfe, 0x58, 0x43, - 0x87, 0xa1, 0x87, 0x83, 0x61, 0x33, 0x8c, 0x87, 0xad, 0x21, 0x09, 0xe4, 0xc7, 0xba, 0xa5, 0x86, - 0x70, 0x44, 0xd9, 0xf1, 0x7f, 0x5c, 0xdc, 0x4c, 0x9f, 0x07, 0x0b, 0x12, 0xfc, 0xde, 0x7f, 0x03, - 0x00, 0x00, 0xff, 0xff, 0x95, 0xd4, 0x39, 0x3a, 0xe4, 0x18, 0x00, 0x00, +var fileDescriptor_clusters_eb8dcc455338db63 = []byte{ + // 2079 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x59, 0xcd, 0x73, 0x1c, 0x47, + 0x15, 0xcf, 0x68, 0xb5, 0xd2, 0xea, 0xed, 0x87, 0x56, 0x1d, 0x45, 0x6c, 0x94, 0x84, 0x38, 0x93, + 0x80, 0x15, 0x27, 0xec, 0xda, 0x0a, 0x14, 0x89, 0x4d, 0x42, 0x64, 0xed, 0xda, 0x16, 0x96, 0xd7, + 0x62, 0x76, 0x65, 0x27, 0x14, 0x30, 0xd5, 0x3b, 0xd3, 0x5a, 0x37, 0x9a, 0xaf, 0x4c, 0xf7, 0x28, + 0x59, 0xbb, 0x7c, 0x81, 0x2a, 0xaa, 0x28, 0x8e, 0x54, 0x71, 0xe6, 0x00, 0x55, 0x90, 0x63, 0xe0, + 0xc4, 0x3f, 0xc0, 0x85, 0xe2, 0xc2, 0xbf, 0xc0, 0x81, 0x3f, 0x83, 0xea, 0x8f, 0xd9, 0x9d, 0x59, + 0x7d, 0xac, 0x64, 0x5c, 0x39, 0x69, 0xe6, 0xf5, 0xef, 0xbd, 0xf7, 0xeb, 0xee, 0xd7, 0xbf, 0x79, + 0xbd, 0x82, 0xcb, 0xc3, 0x30, 0x1c, 0x7a, 0xa4, 0xe5, 0x78, 0x61, 0xe2, 0xb6, 0x5c, 0xcc, 0x71, + 0x14, 0x87, 0x4e, 0xeb, 0xe8, 0x5a, 0xcb, 0xf1, 0x12, 0xc6, 0x49, 0xcc, 0x9a, 0x51, 0x1c, 0xf2, + 0x10, 0x35, 0x14, 0xb0, 0x29, 0x81, 0xcd, 0x14, 0xd8, 0x3c, 0xba, 0xb6, 0xfe, 0xaa, 0x0e, 0x81, + 0x23, 0xda, 0xc2, 0x41, 0x10, 0x72, 0xcc, 0x69, 0x18, 0x68, 0xbf, 0xf5, 0xb7, 0x4f, 0x4d, 0x10, + 0x46, 0x24, 0xce, 0x41, 0xdf, 0xd4, 0x50, 0x2f, 0x0c, 0x86, 0x71, 0x12, 0x04, 0x34, 0x18, 0x1e, + 0x07, 0x7d, 0x53, 0x83, 0xe4, 0xdb, 0x20, 0x39, 0x68, 0xb9, 0x89, 0x02, 0xe8, 0xf1, 0x4b, 0xd3, + 0xe3, 0x07, 0x94, 0x78, 0xae, 0xed, 0x63, 0x76, 0xa8, 0x11, 0xaf, 0x4f, 0x23, 0x38, 0xf5, 0x09, + 0xe3, 0xd8, 0x8f, 0x14, 0xc0, 0xfc, 0xf5, 0x3c, 0x2c, 0x6e, 0xab, 0xd9, 0xa3, 0xd7, 0x00, 0xa2, + 0x38, 0xfc, 0x05, 0x71, 0xb8, 0x4d, 0xdd, 0x86, 0x71, 0xc9, 0xd8, 0x58, 0xb2, 0x96, 0xb4, 0x65, + 0xc7, 0x45, 0x6f, 0x40, 0x45, 0xaf, 0x93, 0x1d, 0x60, 0x9f, 0x34, 0xe6, 0x24, 0xa0, 0xac, 0x6d, + 0x5d, 0xec, 0x13, 0xf4, 0x43, 0x58, 0x70, 0xc2, 0xe0, 0x80, 0x0e, 0x1b, 0x85, 0x4b, 0xc6, 0x46, + 0x79, 0xf3, 0x72, 0xf3, 0xb4, 0x95, 0x6c, 0xea, 0xa4, 0xdb, 0x12, 0x6e, 0x69, 0x37, 0xd4, 0x81, + 0x05, 0x0f, 0x0f, 0x88, 0xc7, 0x1a, 0xa5, 0x4b, 0x85, 0x8d, 0xf2, 0xe6, 0x77, 0x66, 0x06, 0x68, + 0xee, 0x4a, 0x7c, 0x27, 0xe0, 0xf1, 0xc8, 0xd2, 0xce, 0x82, 0x07, 0xe3, 0x98, 0x27, 0xac, 0x31, + 0x7f, 0x4e, 0x1e, 0x3d, 0x09, 0xb7, 0xb4, 0x1b, 0xea, 0x42, 0x4d, 0x3d, 0xd9, 0x8f, 0x28, 0xe3, + 0x61, 0x3c, 0x6a, 0x2c, 0x4a, 0x3e, 0xe7, 0x0e, 0x54, 0x55, 0xee, 0x77, 0x94, 0x77, 0x76, 0xed, + 0x92, 0x84, 0xba, 0x8d, 0x85, 0xdc, 0xda, 0xed, 0x27, 0xd4, 0x45, 0x37, 0x61, 0xd1, 0x27, 0x3c, + 0xa6, 0x0e, 0x6b, 0x2c, 0x49, 0xd2, 0x1b, 0x33, 0x73, 0xdd, 0x53, 0x78, 0x2b, 0x75, 0x5c, 0xff, + 0x00, 0xca, 0x99, 0xe5, 0x40, 0x75, 0x28, 0x1c, 0x92, 0x91, 0xde, 0x49, 0xf1, 0x88, 0x56, 0xa1, + 0x78, 0x84, 0xbd, 0x24, 0xdd, 0x3c, 0xf5, 0x72, 0x7d, 0xee, 0x7d, 0xc3, 0xfc, 0x5b, 0x11, 0xaa, + 0xb9, 0x3d, 0x41, 0x6f, 0x42, 0x55, 0xed, 0x8a, 0x3d, 0x48, 0x9c, 0x43, 0xc2, 0x75, 0x9c, 0x8a, + 0x32, 0xde, 0x94, 0x36, 0xf4, 0x09, 0xa0, 0xa1, 0x43, 0xec, 0x74, 0x72, 0x7a, 0xf7, 0x4b, 0x72, + 0x02, 0x57, 0x4e, 0x9f, 0xc0, 0x6d, 0x87, 0xe4, 0x0b, 0xa0, 0x3e, 0x9c, 0xb2, 0x20, 0x0b, 0xaa, + 0x3e, 0xce, 0x06, 0x55, 0xab, 0x72, 0x46, 0x45, 0xec, 0x04, 0x8c, 0xe3, 0xc0, 0x21, 0xb7, 0xe3, + 0x30, 0x89, 0x74, 0xdc, 0x8a, 0x8a, 0x31, 0x89, 0xf9, 0x79, 0x18, 0x1f, 0x4e, 0x62, 0xc2, 0x33, + 0xc5, 0x54, 0x31, 0x74, 0x4c, 0x02, 0xdf, 0x60, 0xc4, 0x09, 0x03, 0x17, 0xc7, 0x23, 0x3b, 0x1f, + 0xbd, 0xf2, 0x2c, 0xd1, 0x5f, 0x1a, 0x47, 0x7b, 0x98, 0x4d, 0xf3, 0x63, 0x58, 0x66, 0xe1, 0x01, + 0xff, 0x1c, 0xc7, 0x24, 0x0d, 0x5f, 0x9d, 0x55, 0x26, 0x3d, 0xed, 0xa0, 0x23, 0xd7, 0x58, 0xee, + 0x1d, 0x51, 0x58, 0xa3, 0x01, 0xe5, 0x14, 0x7b, 0xf4, 0xb1, 0x94, 0x15, 0x1b, 0x3b, 0x52, 0x7e, + 0x1a, 0x65, 0x59, 0xec, 0x9b, 0xa7, 0x47, 0xee, 0x86, 0x2e, 0xd9, 0xc9, 0xf9, 0x6e, 0x49, 0x57, + 0xeb, 0x25, 0x7a, 0x82, 0x95, 0xa1, 0x87, 0xb0, 0x42, 0x02, 0x27, 0x1e, 0x45, 0x32, 0x8d, 0xe6, + 0xbf, 0x3c, 0xab, 0x4a, 0x3a, 0x63, 0x97, 0xb4, 0x4a, 0xc8, 0x94, 0xc5, 0xfc, 0x18, 0xea, 0xd3, + 0x28, 0xf4, 0x2e, 0xbc, 0x28, 0x6a, 0x32, 0x72, 0xed, 0x43, 0x9f, 0xd9, 0x87, 0x64, 0xa4, 0xf4, + 0x4a, 0x95, 0xef, 0xf2, 0xd0, 0x21, 0x7b, 0xee, 0x5d, 0x9f, 0xdd, 0x25, 0x23, 0xa1, 0x59, 0xe6, + 0x9f, 0x0a, 0x50, 0x9f, 0x2e, 0x47, 0xf4, 0x32, 0x94, 0x1e, 0x87, 0x01, 0xb1, 0x93, 0x98, 0x6a, + 0xbf, 0x45, 0xf1, 0xbe, 0x1f, 0x53, 0xf4, 0x3a, 0x94, 0x03, 0xc2, 0xc5, 0x46, 0xcb, 0x51, 0x75, + 0x90, 0x40, 0x9b, 0x04, 0xe0, 0x5b, 0x50, 0x63, 0xc9, 0x20, 0x8b, 0x51, 0xa7, 0xbd, 0x3a, 0xb1, + 0x0a, 0xd8, 0x06, 0xd4, 0x69, 0xc0, 0x49, 0x1c, 0x60, 0xcf, 0xa6, 0x91, 0x1d, 0x06, 0x9e, 0x10, + 0x19, 0x63, 0xa3, 0x64, 0xd5, 0x52, 0xfb, 0x4e, 0x74, 0x3f, 0xf0, 0x46, 0xe8, 0x32, 0x2c, 0x33, + 0x12, 0x1f, 0x51, 0x87, 0xd8, 0xd8, 0x71, 0xc2, 0x24, 0xe0, 0xf2, 0x80, 0x2d, 0x59, 0x35, 0x6d, + 0xde, 0x52, 0x56, 0xf4, 0x5d, 0x58, 0x9b, 0x02, 0xda, 0xcc, 0x09, 0x23, 0xc2, 0x1a, 0x85, 0x4b, + 0x85, 0x8d, 0x25, 0x6b, 0x35, 0x8f, 0xef, 0xc9, 0x31, 0x84, 0x60, 0x9e, 0xe3, 0xa1, 0x90, 0x4a, + 0x81, 0x91, 0xcf, 0xa8, 0x0f, 0x25, 0x9f, 0x70, 0x2c, 0x36, 0xa3, 0x51, 0x94, 0xc5, 0xf0, 0xfe, + 0xf9, 0x0f, 0x73, 0xf3, 0x9e, 0x76, 0x55, 0xa2, 0x3c, 0x8e, 0xb4, 0x7e, 0x03, 0xaa, 0xb9, 0xa1, + 0x0b, 0x09, 0xd4, 0x3f, 0x0a, 0xf0, 0xe2, 0x09, 0xe7, 0x45, 0xc8, 0x54, 0x90, 0xf8, 0x36, 0xd5, + 0x43, 0x4c, 0x46, 0x2b, 0x5a, 0x95, 0x20, 0xf1, 0x53, 0x38, 0x13, 0x7b, 0x92, 0x02, 0x64, 0x31, + 0xb0, 0xc6, 0x9c, 0x9c, 0x6d, 0x35, 0xb5, 0x8a, 0x52, 0x60, 0xe8, 0x15, 0x58, 0xa2, 0x3e, 0x1e, + 0xaa, 0x7d, 0x2f, 0x48, 0x06, 0x25, 0x69, 0xd0, 0x1b, 0xe6, 0x63, 0xe7, 0x11, 0x0d, 0x88, 0xcd, + 0x47, 0x91, 0xc2, 0xcc, 0xab, 0x7d, 0xd0, 0xf6, 0xfe, 0x28, 0x92, 0xc8, 0x0e, 0x94, 0x5d, 0xca, + 0x0e, 0xd3, 0x3a, 0x2f, 0xca, 0x3a, 0x7f, 0xeb, 0xf4, 0x05, 0x6c, 0x53, 0x76, 0xa8, 0x2b, 0x1c, + 0xdc, 0xf1, 0xb3, 0x24, 0xcd, 0xec, 0x28, 0x26, 0xc4, 0x8f, 0x38, 0x1d, 0x78, 0x44, 0x16, 0x52, + 0xc9, 0xaa, 0x52, 0xb6, 0x37, 0x31, 0xa2, 0x9f, 0xc3, 0xaa, 0x8f, 0x03, 0x3c, 0x24, 0xae, 0x3d, + 0x14, 0xeb, 0x92, 0xa6, 0x5d, 0x94, 0x69, 0xdf, 0x3d, 0x3d, 0xed, 0x3d, 0xe5, 0x95, 0x15, 0x1f, + 0xe4, 0x1f, 0xb3, 0xa1, 0xfb, 0x50, 0xc1, 0x8e, 0x43, 0x3c, 0xd1, 0x9c, 0x84, 0x71, 0xfa, 0x65, + 0x7e, 0xe7, 0xf4, 0xb8, 0x5b, 0x13, 0x74, 0xaa, 0x98, 0xd9, 0x00, 0xe6, 0x6f, 0x0c, 0x40, 0xc7, + 0x73, 0x8b, 0xea, 0x1d, 0xef, 0x11, 0x27, 0x7e, 0xe4, 0x61, 0x4e, 0xb2, 0x27, 0x77, 0x35, 0x1d, + 0xed, 0xeb, 0x41, 0xd9, 0x72, 0x7c, 0x08, 0xaf, 0x8c, 0xbd, 0xd4, 0xf4, 0xd5, 0x14, 0x72, 0x4d, + 0x4a, 0x83, 0x66, 0x0b, 0x47, 0xe5, 0x96, 0x1d, 0x8b, 0x19, 0xc3, 0xca, 0x31, 0xba, 0xe8, 0x2a, + 0xac, 0x66, 0x08, 0x4f, 0x76, 0x5b, 0xf1, 0x40, 0x99, 0xb1, 0x74, 0xc7, 0xdf, 0x81, 0x95, 0xac, + 0x87, 0x3a, 0xa4, 0x73, 0xb2, 0x10, 0xeb, 0x38, 0x1b, 0x3f, 0x09, 0xb8, 0xf9, 0x2b, 0x03, 0x60, + 0xb2, 0xe5, 0xe8, 0x2d, 0xa8, 0x0d, 0xc2, 0x90, 0xdb, 0xb2, 0x64, 0x44, 0x2e, 0x5d, 0x79, 0x15, + 0x61, 0x15, 0x38, 0x91, 0x04, 0xbd, 0x0d, 0x2b, 0x13, 0x14, 0xa3, 0x8f, 0x89, 0x3d, 0x1c, 0xe8, + 0x52, 0xaf, 0xa5, 0xc0, 0x1e, 0x7d, 0x4c, 0x6e, 0x0f, 0x44, 0x40, 0x71, 0x22, 0xbc, 0xd0, 0xc1, + 0x9e, 0xcd, 0x98, 0xcb, 0x34, 0x13, 0x71, 0x24, 0x76, 0x85, 0xb1, 0xc7, 0x5c, 0x66, 0xfe, 0xd6, + 0x80, 0xc6, 0x69, 0x32, 0x2e, 0x24, 0x87, 0x7c, 0x41, 0x9c, 0x84, 0xe3, 0x81, 0x47, 0xec, 0x03, + 0xea, 0xa5, 0x9b, 0x50, 0x9b, 0x98, 0x6f, 0x51, 0x8f, 0xa0, 0x5b, 0xb0, 0xa2, 0x2c, 0x42, 0xd7, + 0x45, 0x73, 0x19, 0x26, 0x6a, 0xe2, 0xe5, 0xcd, 0x97, 0xd3, 0x0a, 0x49, 0x9b, 0xcf, 0x66, 0x5b, + 0xb7, 0xaf, 0x56, 0x7d, 0xec, 0xd3, 0x57, 0x2e, 0xe6, 0xef, 0x0b, 0xe3, 0xf6, 0x43, 0x75, 0x50, + 0x68, 0x1b, 0x8a, 0xa2, 0x87, 0x52, 0x89, 0x6b, 0xe7, 0xe8, 0x04, 0x95, 0x5f, 0x53, 0xfc, 0x21, + 0x96, 0xf2, 0x45, 0x6b, 0xb0, 0xe0, 0x12, 0x8e, 0xa9, 0xa7, 0x0b, 0x41, 0xbf, 0xa1, 0x36, 0xd4, + 0x25, 0xc0, 0x66, 0x1c, 0xc7, 0x5c, 0x12, 0xd7, 0x2d, 0xeb, 0xfa, 0x31, 0xd6, 0xfd, 0xb4, 0x65, + 0xb6, 0x64, 0x4f, 0x48, 0x7a, 0xc2, 0x45, 0x18, 0xd1, 0x2e, 0x94, 0x58, 0x32, 0x50, 0x2c, 0xe7, + 0x25, 0xcb, 0xab, 0xe7, 0x66, 0xa9, 0xfd, 0xac, 0x71, 0x04, 0xf3, 0x01, 0x14, 0x25, 0x77, 0x54, + 0x86, 0xc5, 0xfd, 0xee, 0xdd, 0xee, 0xfd, 0x87, 0xdd, 0xfa, 0x0b, 0xa8, 0x02, 0xa5, 0x6d, 0xab, + 0xb3, 0xd5, 0xdf, 0xe9, 0xde, 0xae, 0x1b, 0x62, 0xc8, 0xda, 0xef, 0x76, 0xc5, 0xcb, 0x1c, 0x5a, + 0x82, 0x62, 0xc7, 0xb2, 0xee, 0x5b, 0xf5, 0x82, 0x40, 0xb5, 0x3b, 0xbb, 0x1d, 0x89, 0x9a, 0x17, + 0x6f, 0xfb, 0x7b, 0x6d, 0xe5, 0x53, 0x34, 0x7f, 0x00, 0xa5, 0x34, 0x1b, 0x5a, 0x86, 0xf2, 0x7e, + 0xb7, 0xb7, 0xd7, 0xd9, 0xde, 0xb9, 0xb5, 0xd3, 0x69, 0xd7, 0x5f, 0x40, 0x55, 0x58, 0xda, 0xef, + 0xde, 0xe9, 0x6c, 0xed, 0xf6, 0xef, 0x7c, 0x5a, 0x37, 0x50, 0x1d, 0x2a, 0xbd, 0xfe, 0xd6, 0x6e, + 0xc7, 0xee, 0xf5, 0xb7, 0xfa, 0xfb, 0xbd, 0xfa, 0x9c, 0xf9, 0x2f, 0x03, 0x6a, 0xf9, 0x3e, 0x42, + 0x28, 0xae, 0x52, 0xc9, 0x23, 0x12, 0x33, 0x1a, 0x06, 0x69, 0x63, 0x28, 0x8d, 0x0f, 0x94, 0x0d, + 0x7d, 0x22, 0x2f, 0x13, 0x11, 0x89, 0x39, 0xd5, 0x6a, 0x7b, 0xe6, 0x37, 0x24, 0x9f, 0xa2, 0xb9, + 0x37, 0x76, 0x55, 0xdf, 0x90, 0x4c, 0xac, 0xf5, 0x0f, 0x61, 0x79, 0x6a, 0xf8, 0x42, 0xdf, 0x91, + 0x7f, 0xce, 0x41, 0x2d, 0xdf, 0x3f, 0xa3, 0x9f, 0x42, 0xe5, 0x91, 0x7b, 0xc0, 0xec, 0xb4, 0xff, + 0x36, 0x24, 0xdb, 0x0f, 0xce, 0xdb, 0x7f, 0x37, 0xef, 0xb8, 0x07, 0x4c, 0x3f, 0x2b, 0xba, 0xe5, + 0x47, 0x13, 0x8b, 0x88, 0x3e, 0xc2, 0x71, 0x30, 0x8e, 0x3e, 0x77, 0xc1, 0xe8, 0x9f, 0xe2, 0x38, + 0xc8, 0x47, 0x1f, 0x4d, 0x2c, 0xeb, 0x1f, 0x41, 0x7d, 0x3a, 0xfd, 0xac, 0xe5, 0x28, 0x64, 0x96, + 0x43, 0xf8, 0x4f, 0x27, 0xb8, 0x88, 0xbf, 0xf9, 0x17, 0x03, 0x56, 0xb7, 0x63, 0x82, 0x79, 0xda, + 0x03, 0x58, 0xe4, 0xb3, 0x84, 0x30, 0x3e, 0xeb, 0x36, 0xb9, 0x06, 0x0b, 0x31, 0x19, 0x8a, 0xea, + 0x51, 0x6a, 0xa7, 0xdf, 0xd0, 0x0d, 0x58, 0xd4, 0x97, 0x09, 0x2d, 0x23, 0x6f, 0xcc, 0x5c, 0x28, + 0x2b, 0xf5, 0x10, 0x39, 0x63, 0x95, 0x5e, 0xe4, 0x54, 0x1f, 0xe7, 0x25, 0x6d, 0xd9, 0x71, 0xcd, + 0xff, 0xce, 0xc1, 0xea, 0x7e, 0xe4, 0xfe, 0x1f, 0x5c, 0x8b, 0x39, 0xae, 0xe7, 0xb8, 0x11, 0x67, + 0xa6, 0x53, 0xb8, 0xf0, 0x74, 0x7e, 0x06, 0xaf, 0x0d, 0x63, 0xec, 0x90, 0x83, 0xc4, 0xb3, 0x5d, + 0xe2, 0x84, 0xbe, 0x4f, 0x19, 0xcb, 0x0a, 0xed, 0xc2, 0x2c, 0xa1, 0x7d, 0x25, 0xf5, 0x6f, 0x67, + 0xdc, 0xb5, 0xe6, 0xa2, 0x1b, 0x50, 0x4e, 0xe4, 0x6a, 0xc8, 0x5f, 0x0c, 0xf4, 0x55, 0xf9, 0xb8, + 0xfe, 0xdd, 0xa2, 0xc4, 0x73, 0xef, 0x61, 0x76, 0x68, 0x81, 0x82, 0x8b, 0xe7, 0xa9, 0xa5, 0x5e, + 0x9c, 0x5e, 0xea, 0xaf, 0x0c, 0x58, 0x6d, 0x13, 0x8f, 0x3c, 0xaf, 0xb2, 0x38, 0xc7, 0x52, 0x4f, + 0xdf, 0xb1, 0xe7, 0x8f, 0xdf, 0xb1, 0xf3, 0xa4, 0x8b, 0xd3, 0xa4, 0x7d, 0x58, 0xb9, 0x4d, 0xf8, + 0xd7, 0x45, 0xd8, 0xfc, 0x83, 0x01, 0x2f, 0xee, 0x52, 0x96, 0x26, 0x64, 0x17, 0xce, 0x38, 0x9f, + 0xcb, 0xb8, 0x06, 0x0b, 0x07, 0xd4, 0x13, 0x95, 0xa6, 0xab, 0x54, 0xbd, 0x89, 0xa6, 0x36, 0x12, + 0x6a, 0x2d, 0x9a, 0x06, 0xdd, 0x09, 0x94, 0x84, 0x41, 0x74, 0x0b, 0x32, 0x97, 0x18, 0xe4, 0xe1, + 0x21, 0x49, 0xa7, 0x20, 0xe1, 0x7d, 0x61, 0x30, 0x9f, 0xc2, 0x6a, 0x9e, 0x21, 0x8b, 0xc2, 0x80, + 0x89, 0xae, 0xab, 0x94, 0xfe, 0x66, 0xa6, 0xd5, 0xf2, 0x1c, 0x75, 0x3d, 0x76, 0x41, 0xdf, 0x86, + 0xe5, 0x80, 0x7c, 0xc1, 0xed, 0x4c, 0x6a, 0xb5, 0x3e, 0x55, 0x61, 0xde, 0x1b, 0xa7, 0x8f, 0x61, + 0xad, 0x4d, 0xf1, 0x30, 0x08, 0xd9, 0xd7, 0x56, 0x46, 0xe6, 0xf7, 0x4f, 0xc8, 0xc9, 0x12, 0x8f, + 0x33, 0x91, 0x33, 0x4c, 0x78, 0x94, 0xf0, 0x4c, 0x33, 0xb8, 0xa4, 0x2c, 0xfb, 0x31, 0xdd, 0xfc, + 0xaa, 0x04, 0x2b, 0x93, 0x7b, 0x10, 0x8f, 0x43, 0xcf, 0x23, 0x31, 0xfa, 0xa3, 0x01, 0xd5, 0x9c, + 0x3e, 0xa2, 0xe6, 0x19, 0x2b, 0x75, 0x82, 0x90, 0xae, 0xbf, 0x96, 0xe2, 0x33, 0xbf, 0x15, 0x36, + 0xef, 0xa7, 0xbf, 0x15, 0x9a, 0xed, 0x5f, 0xfe, 0xfb, 0x3f, 0xbf, 0x9b, 0xfb, 0xc8, 0x7c, 0xaf, + 0x75, 0x74, 0xad, 0xa5, 0x57, 0x80, 0xb5, 0x9e, 0x4c, 0x56, 0xe7, 0x69, 0x4b, 0x4d, 0x9e, 0xb5, + 0x9e, 0xa8, 0x87, 0xa7, 0xe3, 0xdf, 0x3b, 0xaf, 0x8f, 0xa5, 0xe6, 0xaf, 0x06, 0x54, 0x73, 0xd2, + 0x78, 0x16, 0xcd, 0x93, 0x34, 0x74, 0x16, 0xcd, 0x9e, 0xa4, 0x79, 0x6f, 0xf3, 0xe6, 0x33, 0xd0, + 0x6c, 0x3d, 0xc9, 0x6e, 0xda, 0xd3, 0x09, 0xeb, 0x2f, 0x0d, 0xa8, 0xe6, 0x54, 0xe6, 0x2c, 0xd6, + 0x27, 0xc9, 0xd1, 0x2c, 0xd6, 0x3f, 0x92, 0xac, 0xdb, 0x57, 0x9e, 0x03, 0x6b, 0xf4, 0x67, 0x03, + 0x60, 0x22, 0x2f, 0xe8, 0x8c, 0x0b, 0xd4, 0x31, 0x11, 0x5a, 0x9f, 0x7d, 0xba, 0x52, 0xaa, 0xe8, + 0x79, 0x50, 0xfd, 0xd2, 0x80, 0x4a, 0xf6, 0xdc, 0xa3, 0x33, 0xba, 0xef, 0x13, 0x14, 0x6c, 0xbd, + 0x79, 0x5e, 0xb8, 0x92, 0x13, 0xf3, 0x86, 0xe4, 0xfe, 0x3d, 0xf4, 0x2c, 0x35, 0x8c, 0xfe, 0x6e, + 0xc0, 0xf2, 0xd4, 0x89, 0x45, 0x57, 0xcf, 0xba, 0x6c, 0x9f, 0x24, 0x28, 0xb3, 0x0a, 0xe1, 0x81, + 0x64, 0xb8, 0x67, 0xde, 0x7d, 0x0e, 0xe5, 0xeb, 0x6a, 0x06, 0xd7, 0x8d, 0x2b, 0x37, 0x3f, 0x83, + 0x57, 0x9d, 0xd0, 0x3f, 0x95, 0xed, 0xcd, 0xf4, 0x52, 0xc4, 0xf6, 0xc4, 0xe7, 0x78, 0xcf, 0xf8, + 0xc9, 0xc7, 0x1a, 0x3a, 0x0c, 0x3d, 0x1c, 0x0c, 0x9b, 0x61, 0x3c, 0x6c, 0x0d, 0x49, 0x20, 0x3f, + 0xd6, 0x2d, 0x35, 0x84, 0x23, 0xca, 0x8e, 0xff, 0x0b, 0xe2, 0x46, 0xfa, 0x3c, 0x58, 0x90, 0xe0, + 0xf7, 0xfe, 0x17, 0x00, 0x00, 0xff, 0xff, 0xf6, 0x97, 0xd2, 0xcf, 0x0f, 0x19, 0x00, 0x00, } diff --git a/vendor/google.golang.org/genproto/googleapis/cloud/dataproc/v1beta2/clusters.pb.go b/vendor/google.golang.org/genproto/googleapis/cloud/dataproc/v1beta2/clusters.pb.go index cd1248fb2..be28ca1ef 100644 --- a/vendor/google.golang.org/genproto/googleapis/cloud/dataproc/v1beta2/clusters.pb.go +++ b/vendor/google.golang.org/genproto/googleapis/cloud/dataproc/v1beta2/clusters.pb.go @@ -67,7 +67,7 @@ func (x ClusterStatus_State) String() string { return proto.EnumName(ClusterStatus_State_name, int32(x)) } func (ClusterStatus_State) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_clusters_696b2fb06247af3e, []int{10, 0} + return fileDescriptor_clusters_3ab6c9781418a8a1, []int{10, 0} } // The cluster substate. @@ -104,7 +104,7 @@ func (x ClusterStatus_Substate) String() string { return proto.EnumName(ClusterStatus_Substate_name, int32(x)) } func (ClusterStatus_Substate) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_clusters_696b2fb06247af3e, []int{10, 1} + return fileDescriptor_clusters_3ab6c9781418a8a1, []int{10, 1} } // Describes the identifying information, config, and status of @@ -146,7 +146,7 @@ func (m *Cluster) Reset() { *m = Cluster{} } func (m *Cluster) String() string { return proto.CompactTextString(m) } func (*Cluster) ProtoMessage() {} func (*Cluster) Descriptor() ([]byte, []int) { - return fileDescriptor_clusters_696b2fb06247af3e, []int{0} + return fileDescriptor_clusters_3ab6c9781418a8a1, []int{0} } func (m *Cluster) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Cluster.Unmarshal(m, b) @@ -270,7 +270,7 @@ func (m *ClusterConfig) Reset() { *m = ClusterConfig{} } func (m *ClusterConfig) String() string { return proto.CompactTextString(m) } func (*ClusterConfig) ProtoMessage() {} func (*ClusterConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_clusters_696b2fb06247af3e, []int{1} + return fileDescriptor_clusters_3ab6c9781418a8a1, []int{1} } func (m *ClusterConfig) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ClusterConfig.Unmarshal(m, b) @@ -367,7 +367,7 @@ func (m *EncryptionConfig) Reset() { *m = EncryptionConfig{} } func (m *EncryptionConfig) String() string { return proto.CompactTextString(m) } func (*EncryptionConfig) ProtoMessage() {} func (*EncryptionConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_clusters_696b2fb06247af3e, []int{2} + return fileDescriptor_clusters_3ab6c9781418a8a1, []int{2} } func (m *EncryptionConfig) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_EncryptionConfig.Unmarshal(m, b) @@ -478,7 +478,7 @@ func (m *GceClusterConfig) Reset() { *m = GceClusterConfig{} } func (m *GceClusterConfig) String() string { return proto.CompactTextString(m) } func (*GceClusterConfig) ProtoMessage() {} func (*GceClusterConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_clusters_696b2fb06247af3e, []int{3} + return fileDescriptor_clusters_3ab6c9781418a8a1, []int{3} } func (m *GceClusterConfig) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GceClusterConfig.Unmarshal(m, b) @@ -607,7 +607,7 @@ func (m *InstanceGroupConfig) Reset() { *m = InstanceGroupConfig{} } func (m *InstanceGroupConfig) String() string { return proto.CompactTextString(m) } func (*InstanceGroupConfig) ProtoMessage() {} func (*InstanceGroupConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_clusters_696b2fb06247af3e, []int{4} + return fileDescriptor_clusters_3ab6c9781418a8a1, []int{4} } func (m *InstanceGroupConfig) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InstanceGroupConfig.Unmarshal(m, b) @@ -706,7 +706,7 @@ func (m *ManagedGroupConfig) Reset() { *m = ManagedGroupConfig{} } func (m *ManagedGroupConfig) String() string { return proto.CompactTextString(m) } func (*ManagedGroupConfig) ProtoMessage() {} func (*ManagedGroupConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_clusters_696b2fb06247af3e, []int{5} + return fileDescriptor_clusters_3ab6c9781418a8a1, []int{5} } func (m *ManagedGroupConfig) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ManagedGroupConfig.Unmarshal(m, b) @@ -768,7 +768,7 @@ func (m *AcceleratorConfig) Reset() { *m = AcceleratorConfig{} } func (m *AcceleratorConfig) String() string { return proto.CompactTextString(m) } func (*AcceleratorConfig) ProtoMessage() {} func (*AcceleratorConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_clusters_696b2fb06247af3e, []int{6} + return fileDescriptor_clusters_3ab6c9781418a8a1, []int{6} } func (m *AcceleratorConfig) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AcceleratorConfig.Unmarshal(m, b) @@ -826,7 +826,7 @@ func (m *DiskConfig) Reset() { *m = DiskConfig{} } func (m *DiskConfig) String() string { return proto.CompactTextString(m) } func (*DiskConfig) ProtoMessage() {} func (*DiskConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_clusters_696b2fb06247af3e, []int{7} + return fileDescriptor_clusters_3ab6c9781418a8a1, []int{7} } func (m *DiskConfig) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DiskConfig.Unmarshal(m, b) @@ -892,7 +892,7 @@ func (m *LifecycleConfig) Reset() { *m = LifecycleConfig{} } func (m *LifecycleConfig) String() string { return proto.CompactTextString(m) } func (*LifecycleConfig) ProtoMessage() {} func (*LifecycleConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_clusters_696b2fb06247af3e, []int{8} + return fileDescriptor_clusters_3ab6c9781418a8a1, []int{8} } func (m *LifecycleConfig) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_LifecycleConfig.Unmarshal(m, b) @@ -1049,7 +1049,7 @@ func (m *NodeInitializationAction) Reset() { *m = NodeInitializationActi func (m *NodeInitializationAction) String() string { return proto.CompactTextString(m) } func (*NodeInitializationAction) ProtoMessage() {} func (*NodeInitializationAction) Descriptor() ([]byte, []int) { - return fileDescriptor_clusters_696b2fb06247af3e, []int{9} + return fileDescriptor_clusters_3ab6c9781418a8a1, []int{9} } func (m *NodeInitializationAction) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_NodeInitializationAction.Unmarshal(m, b) @@ -1103,7 +1103,7 @@ func (m *ClusterStatus) Reset() { *m = ClusterStatus{} } func (m *ClusterStatus) String() string { return proto.CompactTextString(m) } func (*ClusterStatus) ProtoMessage() {} func (*ClusterStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_clusters_696b2fb06247af3e, []int{10} + return fileDescriptor_clusters_3ab6c9781418a8a1, []int{10} } func (m *ClusterStatus) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ClusterStatus.Unmarshal(m, b) @@ -1187,7 +1187,7 @@ func (m *SoftwareConfig) Reset() { *m = SoftwareConfig{} } func (m *SoftwareConfig) String() string { return proto.CompactTextString(m) } func (*SoftwareConfig) ProtoMessage() {} func (*SoftwareConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_clusters_696b2fb06247af3e, []int{11} + return fileDescriptor_clusters_3ab6c9781418a8a1, []int{11} } func (m *SoftwareConfig) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SoftwareConfig.Unmarshal(m, b) @@ -1239,7 +1239,7 @@ func (m *ClusterMetrics) Reset() { *m = ClusterMetrics{} } func (m *ClusterMetrics) String() string { return proto.CompactTextString(m) } func (*ClusterMetrics) ProtoMessage() {} func (*ClusterMetrics) Descriptor() ([]byte, []int) { - return fileDescriptor_clusters_696b2fb06247af3e, []int{12} + return fileDescriptor_clusters_3ab6c9781418a8a1, []int{12} } func (m *ClusterMetrics) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ClusterMetrics.Unmarshal(m, b) @@ -1303,7 +1303,7 @@ func (m *CreateClusterRequest) Reset() { *m = CreateClusterRequest{} } func (m *CreateClusterRequest) String() string { return proto.CompactTextString(m) } func (*CreateClusterRequest) ProtoMessage() {} func (*CreateClusterRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_clusters_696b2fb06247af3e, []int{13} + return fileDescriptor_clusters_3ab6c9781418a8a1, []int{13} } func (m *CreateClusterRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateClusterRequest.Unmarshal(m, b) @@ -1443,7 +1443,7 @@ func (m *UpdateClusterRequest) Reset() { *m = UpdateClusterRequest{} } func (m *UpdateClusterRequest) String() string { return proto.CompactTextString(m) } func (*UpdateClusterRequest) ProtoMessage() {} func (*UpdateClusterRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_clusters_696b2fb06247af3e, []int{14} + return fileDescriptor_clusters_3ab6c9781418a8a1, []int{14} } func (m *UpdateClusterRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UpdateClusterRequest.Unmarshal(m, b) @@ -1545,7 +1545,7 @@ func (m *DeleteClusterRequest) Reset() { *m = DeleteClusterRequest{} } func (m *DeleteClusterRequest) String() string { return proto.CompactTextString(m) } func (*DeleteClusterRequest) ProtoMessage() {} func (*DeleteClusterRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_clusters_696b2fb06247af3e, []int{15} + return fileDescriptor_clusters_3ab6c9781418a8a1, []int{15} } func (m *DeleteClusterRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteClusterRequest.Unmarshal(m, b) @@ -1618,7 +1618,7 @@ func (m *GetClusterRequest) Reset() { *m = GetClusterRequest{} } func (m *GetClusterRequest) String() string { return proto.CompactTextString(m) } func (*GetClusterRequest) ProtoMessage() {} func (*GetClusterRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_clusters_696b2fb06247af3e, []int{16} + return fileDescriptor_clusters_3ab6c9781418a8a1, []int{16} } func (m *GetClusterRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetClusterRequest.Unmarshal(m, b) @@ -1699,7 +1699,7 @@ func (m *ListClustersRequest) Reset() { *m = ListClustersRequest{} } func (m *ListClustersRequest) String() string { return proto.CompactTextString(m) } func (*ListClustersRequest) ProtoMessage() {} func (*ListClustersRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_clusters_696b2fb06247af3e, []int{17} + return fileDescriptor_clusters_3ab6c9781418a8a1, []int{17} } func (m *ListClustersRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListClustersRequest.Unmarshal(m, b) @@ -1771,7 +1771,7 @@ func (m *ListClustersResponse) Reset() { *m = ListClustersResponse{} } func (m *ListClustersResponse) String() string { return proto.CompactTextString(m) } func (*ListClustersResponse) ProtoMessage() {} func (*ListClustersResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_clusters_696b2fb06247af3e, []int{18} + return fileDescriptor_clusters_3ab6c9781418a8a1, []int{18} } func (m *ListClustersResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListClustersResponse.Unmarshal(m, b) @@ -1823,7 +1823,7 @@ func (m *DiagnoseClusterRequest) Reset() { *m = DiagnoseClusterRequest{} func (m *DiagnoseClusterRequest) String() string { return proto.CompactTextString(m) } func (*DiagnoseClusterRequest) ProtoMessage() {} func (*DiagnoseClusterRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_clusters_696b2fb06247af3e, []int{19} + return fileDescriptor_clusters_3ab6c9781418a8a1, []int{19} } func (m *DiagnoseClusterRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DiagnoseClusterRequest.Unmarshal(m, b) @@ -1879,7 +1879,7 @@ func (m *DiagnoseClusterResults) Reset() { *m = DiagnoseClusterResults{} func (m *DiagnoseClusterResults) String() string { return proto.CompactTextString(m) } func (*DiagnoseClusterResults) ProtoMessage() {} func (*DiagnoseClusterResults) Descriptor() ([]byte, []int) { - return fileDescriptor_clusters_696b2fb06247af3e, []int{20} + return fileDescriptor_clusters_3ab6c9781418a8a1, []int{20} } func (m *DiagnoseClusterResults) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DiagnoseClusterResults.Unmarshal(m, b) @@ -2191,11 +2191,11 @@ var _ClusterController_serviceDesc = grpc.ServiceDesc{ } func init() { - proto.RegisterFile("google/cloud/dataproc/v1beta2/clusters.proto", fileDescriptor_clusters_696b2fb06247af3e) + proto.RegisterFile("google/cloud/dataproc/v1beta2/clusters.proto", fileDescriptor_clusters_3ab6c9781418a8a1) } -var fileDescriptor_clusters_696b2fb06247af3e = []byte{ - // 2222 bytes of a gzipped FileDescriptorProto +var fileDescriptor_clusters_3ab6c9781418a8a1 = []byte{ + // 2227 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x59, 0x4b, 0x73, 0x1b, 0xc7, 0x11, 0xd6, 0x12, 0x7c, 0x80, 0x0d, 0xe2, 0xc1, 0x31, 0xcd, 0xc0, 0x74, 0x14, 0xcb, 0xeb, 0xc4, 0xa1, 0x1d, 0x05, 0xb0, 0xa9, 0xb8, 0xec, 0x48, 0x91, 0x4b, 0x14, 0x09, 0x91, 0xb4, 0x28, 0x8a, @@ -2207,132 +2207,133 @@ var fileDescriptor_clusters_696b2fb06247af3e = []byte{ 0x1c, 0x47, 0x71, 0xe8, 0x34, 0x1f, 0xbf, 0xdf, 0x23, 0x1c, 0x6f, 0x34, 0x1d, 0x2f, 0x61, 0x9c, 0xc4, 0xac, 0x11, 0xc5, 0x21, 0x0f, 0xd1, 0x45, 0xa5, 0xdd, 0x90, 0xda, 0x8d, 0x54, 0xbb, 0xa1, 0xb5, 0xd7, 0xbe, 0xab, 0xc1, 0x70, 0x44, 0x9b, 0x38, 0x08, 0x42, 0x8e, 0x39, 0x0d, 0x03, 0x6d, - 0xbc, 0xf6, 0xee, 0x8b, 0x5d, 0xb1, 0x47, 0x38, 0x26, 0xae, 0xd6, 0x7d, 0x4b, 0xeb, 0x7a, 0x61, - 0x30, 0x88, 0x93, 0x20, 0xa0, 0xc1, 0xa0, 0x19, 0x46, 0x24, 0xce, 0x01, 0x7e, 0x4f, 0x2b, 0xc9, - 0xaf, 0x5e, 0xd2, 0x6f, 0xba, 0x89, 0x52, 0xd0, 0xe3, 0x97, 0x26, 0xc7, 0xfb, 0x94, 0x78, 0xae, - 0xed, 0x63, 0x76, 0xa4, 0x35, 0xde, 0x98, 0xd4, 0xe0, 0xd4, 0x27, 0x8c, 0x63, 0x3f, 0x52, 0x0a, - 0xe6, 0x9f, 0x66, 0x61, 0x61, 0x4b, 0xc5, 0x00, 0x5d, 0x04, 0x88, 0xe2, 0xf0, 0x53, 0xe2, 0x70, - 0x9b, 0xba, 0x75, 0xe3, 0x92, 0xb1, 0xbe, 0x68, 0x2d, 0x6a, 0xc9, 0x9e, 0x8b, 0xde, 0x84, 0x25, - 0x1d, 0x2d, 0x3b, 0xc0, 0x3e, 0xa9, 0xcf, 0x48, 0x85, 0x92, 0x96, 0x1d, 0x60, 0x9f, 0xa0, 0x6d, - 0x98, 0x77, 0xc2, 0xa0, 0x4f, 0x07, 0xf5, 0xc2, 0x25, 0x63, 0xbd, 0xb4, 0x71, 0xb9, 0xf1, 0xc2, - 0x78, 0x36, 0xb4, 0xe7, 0x2d, 0x69, 0x63, 0x69, 0x5b, 0xf4, 0x09, 0xcc, 0x7b, 0xb8, 0x47, 0x3c, - 0x56, 0x2f, 0x5e, 0x2a, 0xac, 0x97, 0x36, 0x36, 0x4e, 0x87, 0xd2, 0xd8, 0x97, 0x46, 0xad, 0x80, - 0xc7, 0x43, 0x4b, 0x23, 0x08, 0x46, 0x8c, 0x63, 0x9e, 0xb0, 0xfa, 0xec, 0x59, 0x18, 0xb5, 0xa5, - 0x8d, 0xa5, 0x6d, 0x51, 0x1b, 0x2a, 0xea, 0x97, 0xfd, 0x88, 0x32, 0x1e, 0xc6, 0xc3, 0xfa, 0x82, - 0x64, 0x76, 0x36, 0xb4, 0xb2, 0xc2, 0xd8, 0x55, 0x10, 0xd9, 0x78, 0x26, 0x09, 0x75, 0xeb, 0xf3, - 0xb9, 0x78, 0x76, 0x13, 0xea, 0xa2, 0x1d, 0x58, 0xf0, 0x09, 0x8f, 0xa9, 0xc3, 0xea, 0x8b, 0x92, - 0xfe, 0x8f, 0x4f, 0xe7, 0xf0, 0x8e, 0x32, 0xb2, 0x52, 0xeb, 0xb5, 0x9f, 0x42, 0x29, 0x13, 0x1d, - 0x54, 0x83, 0xc2, 0x11, 0x19, 0xea, 0x25, 0x16, 0x3f, 0xd1, 0x0a, 0xcc, 0x3d, 0xc6, 0x5e, 0x92, - 0xae, 0xaa, 0xfa, 0xb8, 0x3a, 0xf3, 0x91, 0x61, 0x7e, 0x3d, 0x0f, 0xe5, 0xdc, 0x3a, 0xa1, 0xb7, - 0xa0, 0xac, 0x56, 0xca, 0xee, 0x25, 0xce, 0x11, 0xe1, 0x1a, 0x67, 0x49, 0x09, 0x6f, 0x4a, 0x19, - 0x7a, 0x08, 0x68, 0xe0, 0x10, 0x3b, 0x9d, 0xa1, 0x4e, 0x8b, 0xa2, 0x9c, 0x45, 0x73, 0xca, 0x2c, - 0x76, 0x1c, 0x92, 0xcf, 0x8c, 0xda, 0x60, 0x42, 0x82, 0xee, 0x43, 0xd9, 0xc7, 0x59, 0x64, 0x15, - 0x9f, 0x69, 0xa9, 0xb2, 0x17, 0x30, 0x8e, 0x03, 0x87, 0xec, 0xc4, 0x61, 0x12, 0x69, 0xf0, 0x25, - 0x05, 0x34, 0x06, 0xfe, 0x2c, 0x8c, 0x8f, 0xc6, 0xc0, 0x70, 0x7e, 0x60, 0x05, 0xa4, 0x81, 0x3f, - 0x85, 0xef, 0x30, 0xe2, 0x84, 0x81, 0x8b, 0xe3, 0xa1, 0x9d, 0x77, 0xb1, 0x74, 0x6e, 0x17, 0xaf, - 0x8e, 0x20, 0xef, 0x67, 0x7d, 0xdd, 0x83, 0x2a, 0x0b, 0xfb, 0xfc, 0x33, 0x1c, 0x93, 0xd4, 0x47, - 0xf9, 0x54, 0xf9, 0xd3, 0xd6, 0x56, 0x1a, 0xbe, 0xc2, 0x72, 0xdf, 0xe8, 0x01, 0xd4, 0x3c, 0xda, - 0x27, 0xce, 0xd0, 0xf1, 0x46, 0xc0, 0x15, 0x09, 0xdc, 0x98, 0x02, 0xbc, 0x9f, 0x9a, 0x69, 0xe4, - 0xaa, 0x97, 0x17, 0xa0, 0x00, 0x56, 0x69, 0x40, 0x39, 0xc5, 0x1e, 0x7d, 0x22, 0x6b, 0x9c, 0x8d, - 0x1d, 0x59, 0x0b, 0xeb, 0x25, 0xb9, 0xd5, 0x3e, 0x9c, 0xe2, 0xe0, 0x20, 0x74, 0xc9, 0x5e, 0x0e, - 0x60, 0x53, 0xda, 0x5b, 0xaf, 0xd2, 0x13, 0xa4, 0x0c, 0xfd, 0x1a, 0x96, 0x49, 0xe0, 0xc4, 0xc3, - 0x48, 0xfa, 0xd2, 0x73, 0xa9, 0x9e, 0x2a, 0x3d, 0x5b, 0x23, 0xbb, 0x34, 0x3d, 0xc9, 0x84, 0xc4, - 0xbc, 0x01, 0xb5, 0x49, 0x2d, 0x74, 0x19, 0x5e, 0x11, 0x3b, 0x22, 0x72, 0xed, 0x23, 0x9f, 0xd9, - 0x47, 0x64, 0xa8, 0xca, 0xa8, 0xda, 0x3c, 0xd5, 0x81, 0x43, 0x0e, 0xdd, 0xdb, 0x3e, 0xbb, 0x4d, - 0x86, 0xa2, 0x94, 0x9a, 0x7f, 0x2e, 0x40, 0x6d, 0x72, 0x1f, 0xa0, 0xd7, 0xa0, 0xf8, 0x24, 0x0c, - 0x88, 0x9d, 0xc4, 0x54, 0xdb, 0x2d, 0x88, 0xef, 0x6e, 0x4c, 0xd1, 0x1b, 0x50, 0x0a, 0x08, 0x17, - 0x79, 0x25, 0x47, 0xd5, 0x36, 0x06, 0x2d, 0x12, 0x0a, 0x3f, 0x80, 0x0a, 0x4b, 0x7a, 0x59, 0x1d, - 0x55, 0x70, 0xca, 0x63, 0xa9, 0x50, 0x5b, 0x87, 0x1a, 0x0d, 0x38, 0x89, 0x03, 0xec, 0xd9, 0x34, - 0xb2, 0xc3, 0xc0, 0x13, 0xc5, 0xce, 0x58, 0x2f, 0x5a, 0x95, 0x54, 0xbe, 0x17, 0xdd, 0x0d, 0xbc, - 0x21, 0xfa, 0x21, 0x54, 0x19, 0x89, 0x1f, 0x53, 0x87, 0xd8, 0xd8, 0x71, 0xc2, 0x24, 0xe0, 0x72, - 0x7b, 0x2f, 0x5a, 0x15, 0x2d, 0xde, 0x54, 0x52, 0xf4, 0x13, 0x58, 0x9d, 0x50, 0xb4, 0x99, 0x13, - 0x46, 0x84, 0xd5, 0x0b, 0x97, 0x0a, 0xeb, 0x8b, 0xd6, 0x4a, 0x5e, 0xbf, 0x2d, 0xc7, 0x10, 0x82, - 0x59, 0x8e, 0x07, 0xa2, 0x6e, 0x0b, 0x1d, 0xf9, 0x1b, 0x3d, 0x80, 0xa2, 0x4f, 0x38, 0x16, 0x2b, - 0x52, 0x9f, 0x93, 0x69, 0x71, 0xfd, 0x8c, 0xa5, 0xa4, 0x71, 0x47, 0xdb, 0xab, 0x63, 0x62, 0x04, - 0xb7, 0x76, 0x0d, 0xca, 0xb9, 0xa1, 0x33, 0xd5, 0xc8, 0xdf, 0xce, 0xc2, 0x2b, 0x27, 0x6c, 0x4f, - 0x51, 0x29, 0x83, 0xc4, 0xb7, 0xa9, 0x1e, 0x62, 0x12, 0x6d, 0xce, 0x5a, 0x0a, 0x12, 0x3f, 0x55, - 0x67, 0x62, 0x61, 0x52, 0x05, 0x99, 0x11, 0xac, 0x3e, 0x23, 0xa7, 0x5c, 0x4e, 0xa5, 0x22, 0x1f, - 0x18, 0x7a, 0x1d, 0x16, 0xa9, 0x8f, 0x07, 0x6a, 0xf1, 0x0b, 0x92, 0x41, 0x51, 0x0a, 0xf4, 0xaa, - 0xf9, 0xd8, 0x79, 0x44, 0x03, 0x62, 0xf3, 0x61, 0xa4, 0x74, 0x66, 0xd5, 0x62, 0x68, 0x79, 0x67, - 0x18, 0x49, 0xcd, 0x4f, 0xa0, 0xe4, 0x52, 0x76, 0x94, 0x66, 0xfc, 0x9c, 0xcc, 0xf8, 0x77, 0xa6, - 0x44, 0x71, 0x9b, 0xb2, 0x23, 0x9d, 0xeb, 0xe0, 0x8e, 0x7e, 0x4b, 0xe6, 0xcc, 0x8e, 0x62, 0x42, - 0xfc, 0x88, 0xd3, 0x9e, 0x47, 0x64, 0x4a, 0x15, 0xad, 0x32, 0x65, 0x87, 0x63, 0x21, 0x72, 0x60, - 0xc5, 0xc7, 0x01, 0x1e, 0x10, 0xd7, 0x1e, 0x88, 0xe0, 0xa4, 0xbe, 0x17, 0xa4, 0xef, 0xf7, 0xa7, - 0xf8, 0xbe, 0xa3, 0x4c, 0xb3, 0x55, 0x0f, 0xf9, 0xc7, 0x64, 0xa8, 0x03, 0x4b, 0xd8, 0x71, 0x88, - 0x27, 0x5a, 0xa8, 0x30, 0x4e, 0x5b, 0x87, 0xf7, 0xa6, 0x80, 0x6f, 0x8e, 0x4d, 0xd2, 0xa2, 0x9d, - 0x45, 0x91, 0x71, 0xa5, 0x81, 0xed, 0x44, 0x89, 0x1d, 0x79, 0x98, 0xf7, 0xc3, 0xd8, 0x97, 0x27, - 0x8d, 0x88, 0x2b, 0x0d, 0xb6, 0xa2, 0xe4, 0x50, 0x4b, 0xcd, 0xdf, 0x1b, 0x80, 0x8e, 0x53, 0x15, - 0xb9, 0x3f, 0x5a, 0x5c, 0x4e, 0x7c, 0x01, 0x42, 0xb2, 0xfb, 0x7e, 0x25, 0x1d, 0xed, 0xe8, 0x41, - 0xd9, 0x47, 0x5d, 0x87, 0xd7, 0x47, 0x56, 0x2a, 0x64, 0x6a, 0xc6, 0xb9, 0xce, 0xab, 0x4e, 0xb3, - 0x19, 0xa7, 0x7c, 0xcb, 0x36, 0xcc, 0x8c, 0x61, 0xf9, 0xd8, 0xc4, 0xd0, 0x7b, 0xb0, 0x92, 0x99, - 0xda, 0x38, 0x4d, 0x14, 0x0f, 0x94, 0x19, 0x4b, 0x53, 0xe5, 0x47, 0xb0, 0x9c, 0xb5, 0x50, 0x5b, - 0x7c, 0x46, 0x66, 0x70, 0x0d, 0x67, 0xf1, 0x93, 0x80, 0x9b, 0xbf, 0x33, 0x00, 0xc6, 0x69, 0x82, - 0xbe, 0x0f, 0x95, 0x5e, 0x18, 0x72, 0x5b, 0xe6, 0x9a, 0xf0, 0xa5, 0x53, 0x76, 0x49, 0x48, 0x85, - 0x9e, 0x70, 0x82, 0xde, 0x81, 0xe5, 0xb1, 0x16, 0xa3, 0x4f, 0x88, 0x3d, 0xe8, 0xe9, 0x3d, 0x52, - 0x49, 0x15, 0xdb, 0xf4, 0x09, 0xd9, 0xe9, 0x09, 0x40, 0xb1, 0x95, 0xbc, 0xd0, 0xc1, 0x9e, 0xcd, - 0x98, 0xcb, 0x34, 0x13, 0xb1, 0x97, 0xf6, 0x85, 0xb0, 0xcd, 0x5c, 0x66, 0xfe, 0xdb, 0x80, 0xea, - 0xc4, 0x51, 0x83, 0x36, 0xa1, 0x4a, 0x5d, 0x8f, 0xd8, 0x2e, 0xf1, 0x08, 0x27, 0x36, 0xe7, 0x9e, - 0x74, 0x51, 0xda, 0x78, 0x2d, 0x4d, 0x8e, 0xb4, 0x3b, 0x6e, 0x6c, 0xeb, 0xfe, 0xda, 0x2a, 0x0b, - 0x8b, 0x6d, 0x69, 0xd0, 0xe1, 0x1e, 0xba, 0x05, 0x35, 0x9c, 0xf0, 0x70, 0x04, 0x41, 0xf5, 0x22, - 0x94, 0x36, 0xd6, 0x8e, 0x61, 0x74, 0xd2, 0x0e, 0x7b, 0xf7, 0x82, 0x55, 0x11, 0x56, 0x1a, 0x86, - 0xfa, 0x04, 0x6d, 0x41, 0x35, 0x87, 0xc3, 0x3d, 0xdd, 0x28, 0x3f, 0x9f, 0xca, 0xee, 0x05, 0xab, - 0x9c, 0x41, 0xe1, 0xde, 0xcd, 0x39, 0x28, 0x70, 0xee, 0x99, 0x7f, 0x30, 0xa0, 0xfe, 0xbc, 0x43, - 0x4f, 0xd4, 0x66, 0xf2, 0x39, 0x71, 0x12, 0x8e, 0x7b, 0x1e, 0xb1, 0xfb, 0xd4, 0x4b, 0xf3, 0xad, - 0x32, 0x16, 0xdf, 0xa2, 0x1e, 0x41, 0xb7, 0x60, 0x59, 0x49, 0xc4, 0x29, 0x28, 0xe6, 0x15, 0x26, - 0x5c, 0x4f, 0xed, 0x05, 0xe1, 0xa9, 0x8d, 0x6c, 0x3a, 0xca, 0xc4, 0xfc, 0xb2, 0x30, 0xea, 0x12, - 0x55, 0xb7, 0x8b, 0x76, 0x61, 0x4e, 0xf4, 0xbb, 0xca, 0x71, 0xe5, 0xb4, 0x4d, 0xbc, 0x32, 0x6e, - 0x88, 0x3f, 0xc4, 0x52, 0x00, 0x68, 0x15, 0xe6, 0x5d, 0xc2, 0x31, 0xf5, 0x74, 0xe2, 0xeb, 0x2f, - 0xb4, 0x0d, 0x35, 0xa9, 0x60, 0x33, 0x8e, 0x63, 0xae, 0x56, 0xa5, 0x30, 0x6d, 0x55, 0x2c, 0xd9, - 0xc9, 0x93, 0xb6, 0x30, 0x91, 0x6b, 0xf2, 0x73, 0x28, 0xb2, 0xa4, 0xa7, 0xa8, 0xce, 0x4a, 0xaa, - 0x1f, 0x9c, 0x8d, 0xaa, 0x36, 0xb6, 0x46, 0x30, 0xe6, 0x3d, 0x98, 0x93, 0x13, 0x40, 0x25, 0x58, - 0xe8, 0x1e, 0xdc, 0x3e, 0xb8, 0x7b, 0xff, 0xa0, 0x76, 0x01, 0x2d, 0x41, 0x71, 0xcb, 0x6a, 0x6d, - 0x76, 0xf6, 0x0e, 0x76, 0x6a, 0x86, 0x18, 0xb2, 0xba, 0x07, 0x07, 0xe2, 0x63, 0x06, 0x2d, 0xc2, - 0x5c, 0xcb, 0xb2, 0xee, 0x5a, 0xb5, 0x82, 0xd0, 0xda, 0x6e, 0xed, 0xb7, 0xa4, 0xd6, 0xac, 0xf8, - 0xea, 0x1e, 0x6e, 0x2b, 0x9b, 0x39, 0xf3, 0x67, 0x50, 0x4c, 0xbd, 0xa1, 0x2a, 0x94, 0xba, 0x07, - 0xed, 0xc3, 0xd6, 0xd6, 0xde, 0xad, 0xbd, 0xd6, 0x76, 0xed, 0x02, 0x2a, 0xc3, 0x62, 0xf7, 0x60, - 0xb7, 0xb5, 0xb9, 0xdf, 0xd9, 0x7d, 0x50, 0x33, 0x50, 0x0d, 0x96, 0xda, 0x9d, 0xcd, 0xfd, 0x96, - 0xdd, 0xee, 0x6c, 0x76, 0xba, 0xed, 0xda, 0x8c, 0xf9, 0x8d, 0x01, 0x95, 0x7c, 0x7f, 0x27, 0xce, - 0x27, 0x75, 0xa6, 0x3c, 0x26, 0x31, 0xa3, 0x61, 0x90, 0x76, 0xf2, 0x52, 0x78, 0x4f, 0xc9, 0xd0, - 0x43, 0x79, 0x2d, 0x8c, 0x48, 0xcc, 0xa9, 0x3e, 0x9b, 0xa6, 0x1f, 0xbb, 0x79, 0x3f, 0x8d, 0xc3, - 0x91, 0xbd, 0x3a, 0x76, 0x33, 0x80, 0x6b, 0xd7, 0xa1, 0x3a, 0x31, 0x7c, 0xa6, 0xa3, 0xf7, 0x9f, - 0x33, 0x50, 0xc9, 0xdf, 0x7a, 0x10, 0x86, 0xa5, 0x47, 0x6e, 0x9f, 0xd9, 0xe9, 0xd5, 0xc9, 0x90, - 0x94, 0x3f, 0x3e, 0xd3, 0xd5, 0xa9, 0xb1, 0xeb, 0xf6, 0x99, 0xfe, 0xad, 0x38, 0x97, 0x1e, 0x8d, - 0x25, 0xc2, 0xc5, 0x10, 0xc7, 0xc1, 0xc8, 0xc5, 0xcc, 0x79, 0x5c, 0x3c, 0xc0, 0x71, 0x90, 0x77, - 0x31, 0x1c, 0x4b, 0xd6, 0x3e, 0x86, 0xda, 0x24, 0x87, 0x69, 0x81, 0x29, 0x64, 0x02, 0x23, 0xec, - 0x27, 0x1d, 0x9c, 0xc5, 0xde, 0xfc, 0xca, 0x80, 0x95, 0xad, 0x98, 0x60, 0x9e, 0x36, 0x50, 0x16, - 0xf9, 0x4d, 0x42, 0x18, 0x9f, 0xf6, 0x4c, 0xb0, 0x0a, 0xf3, 0x31, 0x19, 0x88, 0x64, 0x52, 0x15, - 0x5f, 0x7f, 0xa1, 0x1b, 0xb0, 0xa0, 0x2f, 0x83, 0xba, 0xbe, 0xbc, 0x7d, 0xba, 0x68, 0x59, 0xa9, - 0x99, 0x70, 0x1c, 0x2b, 0x0e, 0xc2, 0xb1, 0x6a, 0x6f, 0x16, 0xb5, 0x64, 0xcf, 0x35, 0xff, 0x33, - 0x03, 0x2b, 0xdd, 0xc8, 0xfd, 0x3f, 0x08, 0xcf, 0xe5, 0x08, 0x9f, 0xe2, 0xbd, 0x23, 0x33, 0xa7, - 0xc2, 0xf9, 0xe6, 0xf4, 0x10, 0x2e, 0x0e, 0x62, 0xec, 0x90, 0x7e, 0xe2, 0xd9, 0x2e, 0x71, 0x42, - 0xdf, 0xa7, 0x8c, 0x65, 0x6b, 0xf1, 0xfc, 0xb4, 0x5a, 0xfc, 0x7a, 0x6a, 0xbf, 0x9d, 0x31, 0xd7, - 0x65, 0x19, 0x5d, 0x83, 0x52, 0x22, 0x43, 0x22, 0x1f, 0x85, 0xf4, 0x1b, 0xc8, 0xf1, 0xea, 0x78, - 0x8b, 0x12, 0xcf, 0xbd, 0x83, 0xd9, 0x91, 0x05, 0x4a, 0x5d, 0xfc, 0x9e, 0x88, 0xf7, 0xc2, 0x64, - 0xbc, 0xbf, 0x36, 0x60, 0x45, 0x9d, 0x4a, 0x2f, 0x27, 0x41, 0x4e, 0x11, 0xef, 0xc9, 0x27, 0x93, - 0xd9, 0xe3, 0x4f, 0x26, 0x79, 0xd2, 0x73, 0x93, 0xa4, 0x7d, 0x58, 0xde, 0x21, 0xfc, 0xdb, 0x22, - 0x6c, 0x7e, 0x69, 0xc0, 0x2b, 0xfb, 0x94, 0xa5, 0x0e, 0xd9, 0x99, 0x3d, 0xce, 0xe6, 0x3c, 0xae, - 0xc2, 0x7c, 0x9f, 0x7a, 0x22, 0xdd, 0x74, 0xaa, 0xaa, 0x2f, 0x71, 0x37, 0x88, 0x44, 0x19, 0x17, - 0x2d, 0x94, 0xee, 0x8b, 0x8a, 0x42, 0x20, 0x7a, 0x27, 0xe9, 0x4b, 0x0c, 0xf2, 0xf0, 0x88, 0xa4, - 0x53, 0x90, 0xea, 0x1d, 0x21, 0x30, 0xbf, 0x30, 0x60, 0x25, 0x4f, 0x91, 0x45, 0x61, 0xc0, 0x08, - 0xba, 0x09, 0xc5, 0xf4, 0x75, 0x54, 0x97, 0xd0, 0xd3, 0x66, 0xf7, 0xc8, 0x0e, 0xbd, 0x0d, 0xd5, - 0x80, 0x7c, 0xce, 0xed, 0x0c, 0x01, 0x15, 0xa5, 0xb2, 0x10, 0x1f, 0x8e, 0x48, 0xc4, 0xb0, 0xba, - 0x4d, 0xf1, 0x20, 0x08, 0xd9, 0xb7, 0x96, 0x4c, 0xe6, 0x87, 0x27, 0xf8, 0x64, 0x89, 0xc7, 0x99, - 0xf0, 0x19, 0x26, 0x3c, 0x4a, 0x78, 0xa6, 0x41, 0x5e, 0x54, 0x92, 0x6e, 0x4c, 0x37, 0xfe, 0x5b, - 0x84, 0xe5, 0xf1, 0xa5, 0x92, 0xc7, 0xa1, 0xe7, 0x91, 0x18, 0x7d, 0x65, 0x40, 0x39, 0x57, 0x2f, - 0xd1, 0x95, 0x69, 0xe1, 0x3a, 0xa1, 0xba, 0xae, 0x5d, 0x4c, 0x8d, 0x32, 0x2f, 0xc3, 0x8d, 0xbb, - 0xe9, 0xcb, 0xb0, 0xb9, 0xf7, 0xc5, 0x37, 0xff, 0xfa, 0xe3, 0xcc, 0x96, 0xf9, 0xd1, 0xe8, 0x59, - 0x59, 0xc7, 0x82, 0x35, 0x9f, 0x8e, 0xe3, 0xf4, 0xac, 0xa9, 0xc2, 0xc0, 0x9a, 0x4f, 0xd5, 0x8f, - 0x67, 0xa3, 0x87, 0xee, 0xab, 0xa3, 0xd2, 0xf3, 0x77, 0x03, 0xca, 0xb9, 0x7a, 0x39, 0x95, 0xf0, - 0x49, 0xd5, 0x75, 0x1a, 0xe1, 0x5f, 0x48, 0xc2, 0xd6, 0xc6, 0xce, 0x79, 0x09, 0x37, 0x9f, 0x66, - 0x17, 0xf2, 0xd9, 0x98, 0xff, 0x5f, 0x0c, 0x28, 0xe7, 0xea, 0xcf, 0x54, 0xfe, 0x27, 0x55, 0xab, - 0x69, 0xfc, 0xef, 0x4a, 0xfe, 0x7b, 0xef, 0xbe, 0x2c, 0xfe, 0xe8, 0xaf, 0x06, 0xc0, 0xb8, 0x04, - 0xa1, 0x69, 0x37, 0xd4, 0x63, 0xd5, 0x6a, 0xed, 0x94, 0xbb, 0x30, 0x65, 0x8e, 0x5e, 0x1a, 0xf3, - 0xbf, 0x19, 0xb0, 0x94, 0xad, 0x14, 0x68, 0x63, 0xea, 0xa3, 0xdf, 0xb1, 0xca, 0xb7, 0x76, 0xe5, - 0x4c, 0x36, 0xaa, 0x14, 0x99, 0x37, 0xe4, 0x54, 0xae, 0xa2, 0x73, 0x67, 0x3d, 0xfa, 0x87, 0x01, - 0xd5, 0x89, 0xdd, 0x8e, 0x3e, 0x98, 0xfa, 0xea, 0x71, 0x52, 0x45, 0x9a, 0x96, 0x30, 0xbf, 0x92, - 0x5c, 0xbb, 0xe6, 0xe1, 0xcb, 0x4a, 0x78, 0x57, 0xd3, 0xb8, 0x6a, 0xbc, 0x7b, 0xf3, 0x29, 0xbc, - 0xe9, 0x84, 0xfe, 0x8b, 0x79, 0xdf, 0x4c, 0x2f, 0x62, 0xec, 0x50, 0x9c, 0xef, 0x87, 0xc6, 0x2f, - 0x5b, 0x5a, 0x7f, 0x10, 0x7a, 0x38, 0x18, 0x34, 0xc2, 0x78, 0xd0, 0x1c, 0x90, 0x40, 0x9e, 0xfe, - 0x4d, 0x35, 0x84, 0x23, 0xca, 0x9e, 0xf3, 0x7f, 0xab, 0x6b, 0xa9, 0xa0, 0x37, 0x2f, 0x2d, 0xae, - 0xfc, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x40, 0x2b, 0x40, 0x29, 0x53, 0x1b, 0x00, 0x00, + 0xbc, 0xf6, 0xee, 0x8b, 0x5d, 0xb1, 0x47, 0x38, 0x26, 0xae, 0xd6, 0x6d, 0xbc, 0x58, 0x37, 0x8c, + 0x48, 0x9c, 0xc3, 0x7e, 0x4b, 0xeb, 0x7b, 0x61, 0x30, 0x88, 0x93, 0x20, 0xa0, 0xc1, 0xe0, 0xb8, + 0xd2, 0xf7, 0xb4, 0x92, 0xfc, 0xea, 0x25, 0xfd, 0xa6, 0x9b, 0x28, 0x05, 0x3d, 0x7e, 0x69, 0x72, + 0xbc, 0x4f, 0x89, 0xe7, 0xda, 0x3e, 0x66, 0x47, 0x5a, 0xe3, 0x8d, 0x49, 0x0d, 0x4e, 0x7d, 0xc2, + 0x38, 0xf6, 0x23, 0xa5, 0x60, 0xfe, 0x69, 0x16, 0x16, 0xb6, 0x54, 0xcc, 0xd0, 0x45, 0x80, 0x28, + 0x0e, 0x3f, 0x25, 0x0e, 0xb7, 0xa9, 0x5b, 0x37, 0x2e, 0x19, 0xeb, 0x8b, 0xd6, 0xa2, 0x96, 0xec, + 0xb9, 0xe8, 0x4d, 0x58, 0xd2, 0xd1, 0xb5, 0x03, 0xec, 0x93, 0xfa, 0x8c, 0x54, 0x28, 0x69, 0xd9, + 0x01, 0xf6, 0x09, 0xda, 0x86, 0x79, 0x27, 0x0c, 0xfa, 0x74, 0x50, 0x2f, 0x5c, 0x32, 0xd6, 0x4b, + 0x1b, 0x97, 0x1b, 0x2f, 0x8c, 0x7f, 0x43, 0x7b, 0xde, 0x92, 0x36, 0x96, 0xb6, 0x45, 0x9f, 0xc0, + 0xbc, 0x87, 0x7b, 0xc4, 0x63, 0xf5, 0xe2, 0xa5, 0xc2, 0x7a, 0x69, 0x63, 0xe3, 0x74, 0x28, 0x8d, + 0x7d, 0x69, 0xd4, 0x0a, 0x78, 0x3c, 0xb4, 0x34, 0x82, 0x60, 0xc4, 0x38, 0xe6, 0x09, 0xab, 0xcf, + 0x9e, 0x85, 0x51, 0x5b, 0xda, 0x58, 0xda, 0x16, 0xb5, 0xa1, 0xa2, 0x7e, 0xd9, 0x8f, 0x28, 0xe3, + 0x61, 0x3c, 0xac, 0x2f, 0x48, 0x66, 0x67, 0x43, 0x2b, 0x2b, 0x8c, 0x5d, 0x05, 0x91, 0x8d, 0x67, + 0x92, 0x50, 0xb7, 0x3e, 0x9f, 0x8b, 0x67, 0x37, 0xa1, 0x2e, 0xda, 0x81, 0x05, 0x9f, 0xf0, 0x98, + 0x3a, 0xac, 0xbe, 0x28, 0xe9, 0xff, 0xf8, 0x74, 0x0e, 0xef, 0x28, 0x23, 0x2b, 0xb5, 0x5e, 0xfb, + 0x29, 0x94, 0x32, 0xd1, 0x41, 0x35, 0x28, 0x1c, 0x91, 0xa1, 0x5e, 0x62, 0xf1, 0x13, 0xad, 0xc0, + 0xdc, 0x63, 0xec, 0x25, 0xe9, 0xaa, 0xaa, 0x8f, 0xab, 0x33, 0x1f, 0x19, 0xe6, 0xd7, 0xf3, 0x50, + 0xce, 0xad, 0x13, 0x7a, 0x0b, 0xca, 0x6a, 0xa5, 0xec, 0x5e, 0xe2, 0x1c, 0x11, 0xae, 0x71, 0x96, + 0x94, 0xf0, 0xa6, 0x94, 0xa1, 0x87, 0x80, 0x06, 0x0e, 0xb1, 0xd3, 0x19, 0xea, 0xb4, 0x28, 0xca, + 0x59, 0x34, 0xa7, 0xcc, 0x62, 0xc7, 0x21, 0xf9, 0xcc, 0xa8, 0x0d, 0x26, 0x24, 0xe8, 0x3e, 0x94, + 0x7d, 0x9c, 0x45, 0x56, 0xf1, 0x99, 0x96, 0x2a, 0x7b, 0x01, 0xe3, 0x38, 0x70, 0xc8, 0x4e, 0x1c, + 0x26, 0x91, 0x06, 0x5f, 0x52, 0x40, 0x63, 0xe0, 0xcf, 0xc2, 0xf8, 0x68, 0x0c, 0x0c, 0xe7, 0x07, + 0x56, 0x40, 0x1a, 0xf8, 0x53, 0xf8, 0x0e, 0x23, 0x4e, 0x18, 0xb8, 0x38, 0x1e, 0xda, 0x79, 0x17, + 0x4b, 0xe7, 0x76, 0xf1, 0xea, 0x08, 0xf2, 0x7e, 0xd6, 0xd7, 0x3d, 0xa8, 0xb2, 0xb0, 0xcf, 0x3f, + 0xc3, 0x31, 0x49, 0x7d, 0x94, 0x4f, 0x95, 0x3f, 0x6d, 0x6d, 0xa5, 0xe1, 0x2b, 0x2c, 0xf7, 0x8d, + 0x1e, 0x40, 0xcd, 0xa3, 0x7d, 0xe2, 0x0c, 0x1d, 0x6f, 0x04, 0x5c, 0x91, 0xc0, 0x8d, 0x29, 0xc0, + 0xfb, 0xa9, 0x99, 0x46, 0xae, 0x7a, 0x79, 0x01, 0x0a, 0x60, 0x95, 0x06, 0x94, 0x53, 0xec, 0xd1, + 0x27, 0xb2, 0xc6, 0xd9, 0xd8, 0x91, 0xb5, 0xb0, 0x5e, 0x92, 0x5b, 0xed, 0xc3, 0x29, 0x0e, 0x0e, + 0x42, 0x97, 0xec, 0xe5, 0x00, 0x36, 0xa5, 0xbd, 0xf5, 0x2a, 0x3d, 0x41, 0xca, 0xd0, 0xaf, 0x61, + 0x99, 0x04, 0x4e, 0x3c, 0x8c, 0xa4, 0x2f, 0x3d, 0x97, 0xea, 0xa9, 0xd2, 0xb3, 0x35, 0xb2, 0x4b, + 0xd3, 0x93, 0x4c, 0x48, 0xcc, 0x1b, 0x50, 0x9b, 0xd4, 0x42, 0x97, 0xe1, 0x15, 0xb1, 0x23, 0x22, + 0xd7, 0x3e, 0xf2, 0x99, 0x7d, 0x44, 0x86, 0xaa, 0x8c, 0xaa, 0xcd, 0x53, 0x1d, 0x38, 0xe4, 0xd0, + 0xbd, 0xed, 0xb3, 0xdb, 0x64, 0x28, 0x4a, 0xa9, 0xf9, 0xe7, 0x02, 0xd4, 0x26, 0xf7, 0x01, 0x7a, + 0x0d, 0x8a, 0x4f, 0xc2, 0x80, 0xd8, 0x49, 0x4c, 0xb5, 0xdd, 0x82, 0xf8, 0xee, 0xc6, 0x14, 0xbd, + 0x01, 0xa5, 0x80, 0x70, 0x91, 0x57, 0x72, 0x54, 0x6d, 0x63, 0xd0, 0x22, 0xa1, 0xf0, 0x03, 0xa8, + 0xb0, 0xa4, 0x97, 0xd5, 0x51, 0x05, 0xa7, 0x3c, 0x96, 0x0a, 0xb5, 0x75, 0xa8, 0xd1, 0x80, 0x93, + 0x38, 0xc0, 0x9e, 0x4d, 0x23, 0x3b, 0x0c, 0x3c, 0x51, 0xec, 0x8c, 0xf5, 0xa2, 0x55, 0x49, 0xe5, + 0x7b, 0xd1, 0xdd, 0xc0, 0x1b, 0xa2, 0x1f, 0x42, 0x95, 0x91, 0xf8, 0x31, 0x75, 0x88, 0x8d, 0x1d, + 0x27, 0x4c, 0x02, 0x2e, 0xb7, 0xf7, 0xa2, 0x55, 0xd1, 0xe2, 0x4d, 0x25, 0x45, 0x3f, 0x81, 0xd5, + 0x09, 0x45, 0x9b, 0x39, 0x61, 0x44, 0x58, 0xbd, 0x70, 0xa9, 0xb0, 0xbe, 0x68, 0xad, 0xe4, 0xf5, + 0xdb, 0x72, 0x0c, 0x21, 0x98, 0xe5, 0x78, 0x20, 0xea, 0xb6, 0xd0, 0x91, 0xbf, 0xd1, 0x03, 0x28, + 0xfa, 0x84, 0x63, 0xb1, 0x22, 0xf5, 0x39, 0x99, 0x16, 0xd7, 0xcf, 0x58, 0x4a, 0x1a, 0x77, 0xb4, + 0xbd, 0x3a, 0x26, 0x46, 0x70, 0x6b, 0xd7, 0xa0, 0x9c, 0x1b, 0x3a, 0x53, 0x8d, 0xfc, 0xed, 0x2c, + 0xbc, 0x72, 0xc2, 0xf6, 0x14, 0x95, 0x32, 0x48, 0x7c, 0x9b, 0xea, 0x21, 0x26, 0xd1, 0xe6, 0xac, + 0xa5, 0x20, 0xf1, 0x53, 0x75, 0x26, 0x16, 0x26, 0x55, 0x90, 0x19, 0xc1, 0xea, 0x33, 0x72, 0xca, + 0xe5, 0x54, 0x2a, 0xf2, 0x81, 0xa1, 0xd7, 0x61, 0x91, 0xfa, 0x78, 0xa0, 0x16, 0xbf, 0x20, 0x19, + 0x14, 0xa5, 0x40, 0xaf, 0x9a, 0x8f, 0x9d, 0x47, 0x34, 0x20, 0x36, 0x1f, 0x46, 0x4a, 0x67, 0x56, + 0x2d, 0x86, 0x96, 0x77, 0x86, 0x91, 0xd4, 0xfc, 0x04, 0x4a, 0x2e, 0x65, 0x47, 0x69, 0xc6, 0xcf, + 0xc9, 0x8c, 0x7f, 0x67, 0x4a, 0x14, 0xb7, 0x29, 0x3b, 0xd2, 0xb9, 0x0e, 0xee, 0xe8, 0xb7, 0x64, + 0xce, 0xec, 0x28, 0x26, 0xc4, 0x8f, 0x38, 0xed, 0x79, 0x44, 0xa6, 0x54, 0xd1, 0x2a, 0x53, 0x76, + 0x38, 0x16, 0x22, 0x07, 0x56, 0x7c, 0x1c, 0xe0, 0x01, 0x71, 0xed, 0x81, 0x08, 0x4e, 0xea, 0x7b, + 0x41, 0xfa, 0x7e, 0x7f, 0x8a, 0xef, 0x3b, 0xca, 0x34, 0x5b, 0xf5, 0x90, 0x7f, 0x4c, 0x86, 0x3a, + 0xb0, 0x84, 0x1d, 0x87, 0x78, 0xa2, 0x85, 0x0a, 0xe3, 0xb4, 0x75, 0x78, 0x6f, 0x0a, 0xf8, 0xe6, + 0xd8, 0x24, 0x2d, 0xda, 0x59, 0x14, 0x19, 0x57, 0x1a, 0xd8, 0x4e, 0x94, 0xd8, 0x91, 0x87, 0x79, + 0x3f, 0x8c, 0x7d, 0x79, 0xd2, 0x88, 0xb8, 0xd2, 0x60, 0x2b, 0x4a, 0x0e, 0xb5, 0xd4, 0xfc, 0xbd, + 0x01, 0xe8, 0x38, 0x55, 0x91, 0xfb, 0xa3, 0xc5, 0xe5, 0xc4, 0x17, 0x20, 0x24, 0xbb, 0xef, 0x57, + 0xd2, 0xd1, 0x8e, 0x1e, 0x94, 0x7d, 0xd4, 0x75, 0x78, 0x7d, 0x64, 0xa5, 0x42, 0xa6, 0x66, 0x9c, + 0xeb, 0xbc, 0xea, 0x34, 0x9b, 0x71, 0xca, 0xb7, 0x6c, 0xc3, 0xcc, 0x18, 0x96, 0x8f, 0x4d, 0x0c, + 0xbd, 0x07, 0x2b, 0x99, 0xa9, 0x8d, 0xd3, 0x44, 0xf1, 0x40, 0x99, 0xb1, 0x34, 0x55, 0x7e, 0x04, + 0xcb, 0x59, 0x0b, 0xb5, 0xc5, 0x67, 0x64, 0x06, 0xd7, 0x70, 0x16, 0x3f, 0x09, 0xb8, 0xf9, 0x3b, + 0x03, 0x60, 0x9c, 0x26, 0xe8, 0xfb, 0x50, 0xe9, 0x85, 0x21, 0xb7, 0x65, 0xae, 0x09, 0x5f, 0x3a, + 0x65, 0x97, 0x84, 0x54, 0xe8, 0x09, 0x27, 0xe8, 0x1d, 0x58, 0x1e, 0x6b, 0x31, 0xfa, 0x84, 0xd8, + 0x83, 0x9e, 0xde, 0x23, 0x95, 0x54, 0xb1, 0x4d, 0x9f, 0x90, 0x9d, 0x9e, 0x00, 0x14, 0x5b, 0xc9, + 0x0b, 0x1d, 0xec, 0xd9, 0x8c, 0xb9, 0x4c, 0x33, 0x11, 0x7b, 0x69, 0x5f, 0x08, 0xdb, 0xcc, 0x65, + 0xe6, 0xbf, 0x0d, 0xa8, 0x4e, 0x1c, 0x35, 0x68, 0x13, 0xaa, 0xd4, 0xf5, 0x88, 0xed, 0x12, 0x8f, + 0x70, 0x62, 0x73, 0xee, 0x49, 0x17, 0xa5, 0x8d, 0xd7, 0xd2, 0xe4, 0x48, 0xbb, 0xe3, 0xc6, 0xb6, + 0xee, 0xaf, 0xad, 0xb2, 0xb0, 0xd8, 0x96, 0x06, 0x1d, 0xee, 0xa1, 0x5b, 0x50, 0xc3, 0x09, 0x0f, + 0x47, 0x10, 0x54, 0x2f, 0x42, 0x69, 0x63, 0xed, 0x18, 0x46, 0x27, 0xed, 0xb0, 0x77, 0x2f, 0x58, + 0x15, 0x61, 0xa5, 0x61, 0xa8, 0x4f, 0xd0, 0x16, 0x54, 0x73, 0x38, 0xdc, 0xd3, 0x8d, 0xf2, 0xf3, + 0xa9, 0xec, 0x5e, 0xb0, 0xca, 0x19, 0x14, 0xee, 0xdd, 0x9c, 0x83, 0x02, 0xe7, 0x9e, 0xf9, 0x07, + 0x03, 0xea, 0xcf, 0x3b, 0xf4, 0x44, 0x6d, 0x26, 0x9f, 0x13, 0x27, 0xe1, 0xb8, 0xe7, 0x11, 0xbb, + 0x4f, 0xbd, 0x34, 0xdf, 0x2a, 0x63, 0xf1, 0x2d, 0xea, 0x11, 0x74, 0x0b, 0x96, 0x95, 0x44, 0x9c, + 0x82, 0x62, 0x5e, 0x61, 0xc2, 0xf5, 0xd4, 0x5e, 0x10, 0x9e, 0xda, 0xc8, 0xa6, 0xa3, 0x4c, 0xcc, + 0x2f, 0x0b, 0xa3, 0x2e, 0x51, 0x75, 0xbb, 0x68, 0x17, 0xe6, 0x44, 0xbf, 0xab, 0x1c, 0x57, 0x4e, + 0xdb, 0xc4, 0x2b, 0xe3, 0x86, 0xf8, 0x43, 0x2c, 0x05, 0x80, 0x56, 0x61, 0xde, 0x25, 0x1c, 0x53, + 0x4f, 0x27, 0xbe, 0xfe, 0x42, 0xdb, 0x50, 0x93, 0x0a, 0x36, 0xe3, 0x38, 0xe6, 0x6a, 0x55, 0x0a, + 0xd3, 0x56, 0xc5, 0x92, 0x9d, 0x3c, 0x69, 0x0b, 0x13, 0xb9, 0x26, 0x3f, 0x87, 0x22, 0x4b, 0x7a, + 0x8a, 0xea, 0xac, 0xa4, 0xfa, 0xc1, 0xd9, 0xa8, 0x6a, 0x63, 0x6b, 0x04, 0x63, 0xde, 0x83, 0x39, + 0x39, 0x01, 0x54, 0x82, 0x85, 0xee, 0xc1, 0xed, 0x83, 0xbb, 0xf7, 0x0f, 0x6a, 0x17, 0xd0, 0x12, + 0x14, 0xb7, 0xac, 0xd6, 0x66, 0x67, 0xef, 0x60, 0xa7, 0x66, 0x88, 0x21, 0xab, 0x7b, 0x70, 0x20, + 0x3e, 0x66, 0xd0, 0x22, 0xcc, 0xb5, 0x2c, 0xeb, 0xae, 0x55, 0x2b, 0x08, 0xad, 0xed, 0xd6, 0x7e, + 0x4b, 0x6a, 0xcd, 0x8a, 0xaf, 0xee, 0xe1, 0xb6, 0xb2, 0x99, 0x33, 0x7f, 0x06, 0xc5, 0xd4, 0x1b, + 0xaa, 0x42, 0xa9, 0x7b, 0xd0, 0x3e, 0x6c, 0x6d, 0xed, 0xdd, 0xda, 0x6b, 0x6d, 0xd7, 0x2e, 0xa0, + 0x32, 0x2c, 0x76, 0x0f, 0x76, 0x5b, 0x9b, 0xfb, 0x9d, 0xdd, 0x07, 0x35, 0x03, 0xd5, 0x60, 0xa9, + 0xdd, 0xd9, 0xdc, 0x6f, 0xd9, 0xed, 0xce, 0x66, 0xa7, 0xdb, 0xae, 0xcd, 0x98, 0xdf, 0x18, 0x50, + 0xc9, 0xf7, 0x77, 0xe2, 0x7c, 0x52, 0x67, 0xca, 0x63, 0x12, 0x33, 0x1a, 0x06, 0x69, 0x27, 0x2f, + 0x85, 0xf7, 0x94, 0x0c, 0x3d, 0x94, 0xd7, 0xc2, 0x88, 0xc4, 0x9c, 0xea, 0xb3, 0x69, 0xfa, 0xb1, + 0x9b, 0xf7, 0xd3, 0x38, 0x1c, 0xd9, 0xab, 0x63, 0x37, 0x03, 0xb8, 0x76, 0x1d, 0xaa, 0x13, 0xc3, + 0x67, 0x3a, 0x7a, 0xff, 0x39, 0x03, 0x95, 0xfc, 0xad, 0x07, 0x61, 0x58, 0x7a, 0xe4, 0xf6, 0x99, + 0x9d, 0x5e, 0x9d, 0x0c, 0x49, 0xf9, 0xe3, 0x33, 0x5d, 0x9d, 0x1a, 0xbb, 0x6e, 0x9f, 0xe9, 0xdf, + 0x8a, 0x73, 0xe9, 0xd1, 0x58, 0x22, 0x5c, 0x0c, 0x71, 0x1c, 0x8c, 0x5c, 0xcc, 0x9c, 0xc7, 0xc5, + 0x03, 0x1c, 0x07, 0x79, 0x17, 0xc3, 0xb1, 0x64, 0xed, 0x63, 0xa8, 0x4d, 0x72, 0x98, 0x16, 0x98, + 0x42, 0x26, 0x30, 0xc2, 0x7e, 0xd2, 0xc1, 0x59, 0xec, 0xcd, 0xaf, 0x0c, 0x58, 0xd9, 0x8a, 0x09, + 0xe6, 0x69, 0x03, 0x65, 0x91, 0xdf, 0x24, 0x84, 0xf1, 0x69, 0xcf, 0x04, 0xab, 0x30, 0x1f, 0x93, + 0x81, 0x48, 0x26, 0x55, 0xf1, 0xf5, 0x17, 0xba, 0x01, 0x0b, 0xfa, 0x32, 0xa8, 0xeb, 0xcb, 0xdb, + 0xa7, 0x8b, 0x96, 0x95, 0x9a, 0x09, 0xc7, 0xb1, 0xe2, 0x20, 0x1c, 0xab, 0xf6, 0x66, 0x51, 0x4b, + 0xf6, 0x5c, 0xf3, 0x3f, 0x33, 0xb0, 0xd2, 0x8d, 0xdc, 0xff, 0x83, 0xf0, 0x5c, 0x8e, 0xf0, 0x29, + 0xde, 0x3b, 0x32, 0x73, 0x2a, 0x9c, 0x6f, 0x4e, 0x0f, 0xe1, 0xe2, 0x20, 0xc6, 0x0e, 0xe9, 0x27, + 0x9e, 0xed, 0x12, 0x27, 0xf4, 0x7d, 0xca, 0x58, 0xb6, 0x16, 0xcf, 0x4f, 0xab, 0xc5, 0xaf, 0xa7, + 0xf6, 0xdb, 0x19, 0x73, 0x5d, 0x96, 0xd1, 0x35, 0x28, 0x25, 0x32, 0x24, 0xf2, 0x51, 0x48, 0xbf, + 0x81, 0x1c, 0xaf, 0x8e, 0xb7, 0x28, 0xf1, 0xdc, 0x3b, 0x98, 0x1d, 0x59, 0xa0, 0xd4, 0xc5, 0xef, + 0x89, 0x78, 0x2f, 0x4c, 0xc6, 0xfb, 0x6b, 0x03, 0x56, 0xd4, 0xa9, 0xf4, 0x72, 0x12, 0xe4, 0x14, + 0xf1, 0x9e, 0x7c, 0x32, 0x99, 0x3d, 0xfe, 0x64, 0x92, 0x27, 0x3d, 0x37, 0x49, 0xda, 0x87, 0xe5, + 0x1d, 0xc2, 0xbf, 0x2d, 0xc2, 0xe6, 0x97, 0x06, 0xbc, 0xb2, 0x4f, 0x59, 0xea, 0x90, 0x9d, 0xd9, + 0xe3, 0x6c, 0xce, 0xe3, 0x2a, 0xcc, 0xf7, 0xa9, 0x27, 0xd2, 0x4d, 0xa7, 0xaa, 0xfa, 0x12, 0x77, + 0x83, 0x48, 0x94, 0x71, 0xd1, 0x42, 0xe9, 0xbe, 0xa8, 0x28, 0x04, 0xa2, 0x77, 0x92, 0xbe, 0xc4, + 0x20, 0x0f, 0x8f, 0x48, 0x3a, 0x05, 0xa9, 0xde, 0x11, 0x02, 0xf3, 0x0b, 0x03, 0x56, 0xf2, 0x14, + 0x59, 0x14, 0x06, 0x8c, 0xa0, 0x9b, 0x50, 0x4c, 0x5f, 0x53, 0x75, 0x09, 0x3d, 0x6d, 0x76, 0x8f, + 0xec, 0xd0, 0xdb, 0x50, 0x0d, 0xc8, 0xe7, 0xdc, 0xce, 0x10, 0x50, 0x51, 0x2a, 0x0b, 0xf1, 0xe1, + 0x88, 0x44, 0x0c, 0xab, 0xdb, 0x14, 0x0f, 0x82, 0x90, 0x7d, 0x6b, 0xc9, 0x64, 0x7e, 0x78, 0x82, + 0x4f, 0x96, 0x78, 0x9c, 0x09, 0x9f, 0x61, 0xc2, 0xa3, 0x84, 0x67, 0x1a, 0xe4, 0x45, 0x25, 0xe9, + 0xc6, 0x74, 0xe3, 0xbf, 0x45, 0x58, 0x1e, 0x5f, 0x2a, 0x79, 0x1c, 0x7a, 0x1e, 0x89, 0xd1, 0x57, + 0x06, 0x94, 0x73, 0xf5, 0x12, 0x5d, 0x99, 0x16, 0xae, 0x13, 0xaa, 0xeb, 0xda, 0xc5, 0xd4, 0x28, + 0xf3, 0x32, 0xdc, 0xb8, 0x9b, 0xbe, 0x0c, 0x9b, 0x7b, 0x5f, 0x7c, 0xf3, 0xaf, 0x3f, 0xce, 0x6c, + 0x99, 0x1f, 0x8d, 0x9e, 0x96, 0x75, 0x2c, 0x58, 0xf3, 0xe9, 0x38, 0x4e, 0xcf, 0x9a, 0x2a, 0x0c, + 0xac, 0xf9, 0x54, 0xfd, 0x78, 0x36, 0x7a, 0x18, 0xbf, 0x3a, 0x2a, 0x3d, 0x7f, 0x37, 0xa0, 0x9c, + 0xab, 0x97, 0x53, 0x09, 0x9f, 0x54, 0x5d, 0xa7, 0x11, 0xfe, 0x85, 0x24, 0x6c, 0x6d, 0xec, 0x9c, + 0x97, 0x70, 0xf3, 0x69, 0x76, 0x21, 0x9f, 0x8d, 0xf9, 0xff, 0xc5, 0x80, 0x72, 0xae, 0xfe, 0x4c, + 0xe5, 0x7f, 0x52, 0xb5, 0x9a, 0xc6, 0xff, 0xae, 0xe4, 0xbf, 0xf7, 0xee, 0xcb, 0xe2, 0x8f, 0xfe, + 0x6a, 0x00, 0x8c, 0x4b, 0x10, 0x9a, 0x76, 0x43, 0x3d, 0x56, 0xad, 0xd6, 0x4e, 0xb9, 0x0b, 0x53, + 0xe6, 0xe8, 0xa5, 0x31, 0xff, 0x9b, 0x01, 0x4b, 0xd9, 0x4a, 0x81, 0x36, 0xa6, 0x3e, 0xfa, 0x1d, + 0xab, 0x7c, 0x6b, 0x57, 0xce, 0x64, 0xa3, 0x4a, 0x91, 0x79, 0x43, 0x4e, 0xe5, 0x2a, 0x3a, 0x77, + 0xd6, 0xa3, 0x7f, 0x18, 0x50, 0x9d, 0xd8, 0xed, 0xe8, 0x83, 0xa9, 0xaf, 0x1e, 0x27, 0x55, 0xa4, + 0x69, 0x09, 0xf3, 0x2b, 0xc9, 0xb5, 0x6b, 0x1e, 0xbe, 0xac, 0x84, 0x77, 0x35, 0x8d, 0xab, 0xc6, + 0xbb, 0x37, 0x9f, 0xc2, 0x9b, 0x4e, 0xe8, 0xbf, 0x98, 0xf7, 0xcd, 0xf4, 0x22, 0xc6, 0x0e, 0xc5, + 0xf9, 0x7e, 0x68, 0xfc, 0xb2, 0xa5, 0xf5, 0x07, 0xa1, 0x87, 0x83, 0x41, 0x23, 0x8c, 0x07, 0xcd, + 0x01, 0x09, 0xe4, 0xe9, 0xdf, 0x54, 0x43, 0x38, 0xa2, 0xec, 0x39, 0xff, 0xbb, 0xba, 0x96, 0x0a, + 0x7a, 0xf3, 0xd2, 0xe2, 0xca, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0xcc, 0x83, 0x4a, 0x0c, 0x83, + 0x1b, 0x00, 0x00, } diff --git a/vendor/google.golang.org/genproto/googleapis/cloud/scheduler/v1beta1/cloudscheduler.pb.go b/vendor/google.golang.org/genproto/googleapis/cloud/scheduler/v1beta1/cloudscheduler.pb.go index ed14e31e1..5dc7ec746 100644 --- a/vendor/google.golang.org/genproto/googleapis/cloud/scheduler/v1beta1/cloudscheduler.pb.go +++ b/vendor/google.golang.org/genproto/googleapis/cloud/scheduler/v1beta1/cloudscheduler.pb.go @@ -57,7 +57,7 @@ func (m *ListJobsRequest) Reset() { *m = ListJobsRequest{} } func (m *ListJobsRequest) String() string { return proto.CompactTextString(m) } func (*ListJobsRequest) ProtoMessage() {} func (*ListJobsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_cloudscheduler_af786439fdec70ac, []int{0} + return fileDescriptor_cloudscheduler_1ba8688798d8aa5e, []int{0} } func (m *ListJobsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListJobsRequest.Unmarshal(m, b) @@ -119,7 +119,7 @@ func (m *ListJobsResponse) Reset() { *m = ListJobsResponse{} } func (m *ListJobsResponse) String() string { return proto.CompactTextString(m) } func (*ListJobsResponse) ProtoMessage() {} func (*ListJobsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_cloudscheduler_af786439fdec70ac, []int{1} + return fileDescriptor_cloudscheduler_1ba8688798d8aa5e, []int{1} } func (m *ListJobsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListJobsResponse.Unmarshal(m, b) @@ -169,7 +169,7 @@ func (m *GetJobRequest) Reset() { *m = GetJobRequest{} } func (m *GetJobRequest) String() string { return proto.CompactTextString(m) } func (*GetJobRequest) ProtoMessage() {} func (*GetJobRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_cloudscheduler_af786439fdec70ac, []int{2} + return fileDescriptor_cloudscheduler_1ba8688798d8aa5e, []int{2} } func (m *GetJobRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetJobRequest.Unmarshal(m, b) @@ -220,7 +220,7 @@ func (m *CreateJobRequest) Reset() { *m = CreateJobRequest{} } func (m *CreateJobRequest) String() string { return proto.CompactTextString(m) } func (*CreateJobRequest) ProtoMessage() {} func (*CreateJobRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_cloudscheduler_af786439fdec70ac, []int{3} + return fileDescriptor_cloudscheduler_1ba8688798d8aa5e, []int{3} } func (m *CreateJobRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateJobRequest.Unmarshal(m, b) @@ -274,7 +274,7 @@ func (m *UpdateJobRequest) Reset() { *m = UpdateJobRequest{} } func (m *UpdateJobRequest) String() string { return proto.CompactTextString(m) } func (*UpdateJobRequest) ProtoMessage() {} func (*UpdateJobRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_cloudscheduler_af786439fdec70ac, []int{4} + return fileDescriptor_cloudscheduler_1ba8688798d8aa5e, []int{4} } func (m *UpdateJobRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UpdateJobRequest.Unmarshal(m, b) @@ -325,7 +325,7 @@ func (m *DeleteJobRequest) Reset() { *m = DeleteJobRequest{} } func (m *DeleteJobRequest) String() string { return proto.CompactTextString(m) } func (*DeleteJobRequest) ProtoMessage() {} func (*DeleteJobRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_cloudscheduler_af786439fdec70ac, []int{5} + return fileDescriptor_cloudscheduler_1ba8688798d8aa5e, []int{5} } func (m *DeleteJobRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteJobRequest.Unmarshal(m, b) @@ -368,7 +368,7 @@ func (m *PauseJobRequest) Reset() { *m = PauseJobRequest{} } func (m *PauseJobRequest) String() string { return proto.CompactTextString(m) } func (*PauseJobRequest) ProtoMessage() {} func (*PauseJobRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_cloudscheduler_af786439fdec70ac, []int{6} + return fileDescriptor_cloudscheduler_1ba8688798d8aa5e, []int{6} } func (m *PauseJobRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PauseJobRequest.Unmarshal(m, b) @@ -411,7 +411,7 @@ func (m *ResumeJobRequest) Reset() { *m = ResumeJobRequest{} } func (m *ResumeJobRequest) String() string { return proto.CompactTextString(m) } func (*ResumeJobRequest) ProtoMessage() {} func (*ResumeJobRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_cloudscheduler_af786439fdec70ac, []int{7} + return fileDescriptor_cloudscheduler_1ba8688798d8aa5e, []int{7} } func (m *ResumeJobRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ResumeJobRequest.Unmarshal(m, b) @@ -455,7 +455,7 @@ func (m *RunJobRequest) Reset() { *m = RunJobRequest{} } func (m *RunJobRequest) String() string { return proto.CompactTextString(m) } func (*RunJobRequest) ProtoMessage() {} func (*RunJobRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_cloudscheduler_af786439fdec70ac, []int{8} + return fileDescriptor_cloudscheduler_1ba8688798d8aa5e, []int{8} } func (m *RunJobRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RunJobRequest.Unmarshal(m, b) @@ -858,53 +858,54 @@ var _CloudScheduler_serviceDesc = grpc.ServiceDesc{ } func init() { - proto.RegisterFile("google/cloud/scheduler/v1beta1/cloudscheduler.proto", fileDescriptor_cloudscheduler_af786439fdec70ac) + proto.RegisterFile("google/cloud/scheduler/v1beta1/cloudscheduler.proto", fileDescriptor_cloudscheduler_1ba8688798d8aa5e) } -var fileDescriptor_cloudscheduler_af786439fdec70ac = []byte{ - // 703 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x56, 0x5b, 0x6b, 0xd4, 0x40, - 0x14, 0x66, 0x7a, 0x59, 0xba, 0xa7, 0xb4, 0x5d, 0xe6, 0xa1, 0x2c, 0x5b, 0x95, 0x25, 0xc5, 0xb2, - 0x2c, 0x34, 0xe3, 0xf6, 0xe2, 0x65, 0xeb, 0x05, 0x5a, 0xb5, 0x50, 0x14, 0x96, 0x54, 0x5f, 0x7c, - 0x29, 0x93, 0xdd, 0x69, 0xcc, 0x36, 0x9b, 0x89, 0x99, 0x44, 0xb4, 0x52, 0x04, 0x1f, 0xc4, 0x07, - 0xdf, 0xfa, 0xe6, 0x83, 0x88, 0xfa, 0x8f, 0xfc, 0x0b, 0xfe, 0x10, 0x99, 0xc9, 0xa5, 0xdd, 0xd8, - 0x36, 0xc9, 0x5b, 0xe6, 0x5c, 0xe6, 0xfb, 0xe6, 0x9c, 0xf3, 0x1d, 0x02, 0xeb, 0x16, 0xe7, 0x96, - 0xc3, 0x48, 0xdf, 0xe1, 0xe1, 0x80, 0x88, 0xfe, 0x6b, 0x36, 0x08, 0x1d, 0xe6, 0x93, 0xb7, 0x1d, - 0x93, 0x05, 0xb4, 0x13, 0xd9, 0x53, 0xb3, 0xee, 0xf9, 0x3c, 0xe0, 0xf8, 0x46, 0x94, 0xa4, 0x2b, - 0xa7, 0x7e, 0xe6, 0x8d, 0x93, 0x1a, 0xd7, 0xe2, 0x4b, 0xa9, 0x67, 0x13, 0xea, 0xba, 0x3c, 0xa0, - 0x81, 0xcd, 0x5d, 0x11, 0x65, 0x37, 0x5a, 0x39, 0x90, 0x43, 0x6e, 0xc6, 0x91, 0x4b, 0x71, 0xa4, - 0x3a, 0x99, 0xe1, 0x21, 0x61, 0x23, 0x2f, 0x78, 0x1f, 0x3b, 0x9b, 0x59, 0xe7, 0xa1, 0xcd, 0x9c, - 0xc1, 0xc1, 0x88, 0x8a, 0xa3, 0x28, 0x42, 0x63, 0xb0, 0xf0, 0xcc, 0x16, 0xc1, 0x1e, 0x37, 0x85, - 0xc1, 0xde, 0x84, 0x4c, 0x04, 0x78, 0x11, 0x2a, 0x1e, 0xf5, 0x99, 0x1b, 0xd4, 0x51, 0x13, 0xb5, - 0xaa, 0x46, 0x7c, 0xc2, 0x4b, 0x50, 0xf5, 0xa8, 0xc5, 0x0e, 0x84, 0x7d, 0xcc, 0xea, 0xd3, 0x4d, - 0xd4, 0x9a, 0x36, 0x66, 0xa4, 0x61, 0xdf, 0x3e, 0x66, 0xf8, 0x3a, 0x80, 0x72, 0x06, 0xfc, 0x88, - 0xb9, 0xf5, 0x8a, 0x4a, 0x54, 0xe1, 0x2f, 0xa4, 0x41, 0x13, 0x50, 0x3b, 0x83, 0x11, 0x1e, 0x77, - 0x05, 0xc3, 0x77, 0x60, 0x6a, 0xc8, 0x4d, 0x51, 0x47, 0xcd, 0xc9, 0xd6, 0xec, 0xda, 0xb2, 0x7e, - 0x75, 0xc1, 0xf4, 0x3d, 0x6e, 0x1a, 0x2a, 0x01, 0xaf, 0xc0, 0x82, 0xcb, 0xde, 0x05, 0x07, 0xe7, - 0x00, 0x27, 0x14, 0xe0, 0x9c, 0x34, 0xf7, 0x52, 0xd0, 0x65, 0x98, 0xdb, 0x65, 0x12, 0x33, 0x79, - 0x19, 0x86, 0x29, 0x97, 0x8e, 0x58, 0xfc, 0x2e, 0xf5, 0xad, 0x51, 0xa8, 0xed, 0xf8, 0x8c, 0x06, - 0xec, 0x5c, 0xdc, 0x65, 0x15, 0xd8, 0x84, 0xc9, 0x21, 0x37, 0x15, 0x58, 0x41, 0xc2, 0x32, 0x5e, - 0xfb, 0x8c, 0xa0, 0xf6, 0xd2, 0x1b, 0x8c, 0x63, 0xc4, 0x77, 0xa1, 0x72, 0x77, 0xe1, 0x2d, 0x98, - 0x0d, 0xd5, 0x55, 0xaa, 0x89, 0x31, 0x95, 0x46, 0x92, 0x9e, 0xf4, 0x59, 0x7f, 0x2a, 0xfb, 0xfc, - 0x9c, 0x8a, 0x23, 0x03, 0xa2, 0x70, 0xf9, 0xad, 0xad, 0x40, 0xed, 0x31, 0x73, 0xd8, 0x18, 0x8f, - 0x8b, 0x6a, 0x72, 0x13, 0x16, 0x7a, 0x34, 0x14, 0x79, 0x61, 0x2b, 0x50, 0x33, 0x98, 0x08, 0x47, - 0x79, 0x71, 0xcb, 0x30, 0x67, 0x84, 0xee, 0xd5, 0x41, 0x6b, 0x5f, 0x00, 0xe6, 0x77, 0xe4, 0xeb, - 0xf7, 0x93, 0xc7, 0xe3, 0xdf, 0x08, 0x66, 0x92, 0xa9, 0xc1, 0x24, 0xaf, 0x44, 0x99, 0x31, 0x6e, - 0xdc, 0x2a, 0x9e, 0x10, 0x0d, 0xa4, 0xb6, 0xf9, 0xe9, 0xcf, 0xdf, 0xd3, 0x09, 0x82, 0x57, 0x53, - 0x99, 0x7d, 0x88, 0x1a, 0xff, 0xc0, 0xf3, 0xf9, 0x90, 0xf5, 0x03, 0x41, 0xda, 0xc4, 0xe1, 0xfd, - 0x48, 0xa9, 0xa4, 0x7d, 0x42, 0xd4, 0x38, 0x9e, 0x22, 0xa8, 0x44, 0x73, 0x86, 0x57, 0xf3, 0x30, - 0xc7, 0xe6, 0xb1, 0x51, 0xa4, 0xed, 0x17, 0xb1, 0x92, 0x05, 0xbb, 0x84, 0x93, 0xa2, 0x44, 0xda, - 0x27, 0xf8, 0x3b, 0x82, 0x6a, 0x3a, 0xd8, 0x38, 0xb7, 0x18, 0x59, 0x0d, 0x14, 0xe3, 0xd6, 0x55, - 0xdc, 0x36, 0xb4, 0x72, 0x15, 0xeb, 0xaa, 0x49, 0xfe, 0x89, 0xa0, 0x9a, 0xaa, 0x22, 0x9f, 0x60, - 0x56, 0x40, 0xc5, 0x08, 0x3e, 0x54, 0x04, 0xef, 0xae, 0x75, 0xce, 0x08, 0xca, 0xd5, 0x59, 0xa0, - 0x80, 0x11, 0xc9, 0xaf, 0x08, 0xaa, 0xa9, 0x64, 0xf2, 0x49, 0x66, 0xd5, 0xd5, 0x58, 0xfc, 0x4f, - 0x99, 0x4f, 0xe4, 0x7a, 0x4e, 0x9a, 0xda, 0x2e, 0xd9, 0xd4, 0x1f, 0x08, 0x66, 0x12, 0x65, 0xe6, - 0x2b, 0x22, 0xa3, 0xe1, 0x52, 0x15, 0xd3, 0xd6, 0x4b, 0x31, 0xeb, 0x7a, 0x12, 0xab, 0x8b, 0xda, - 0xf8, 0x17, 0x82, 0x6a, 0xba, 0x15, 0xf2, 0x2b, 0x96, 0x5d, 0x20, 0xc5, 0x48, 0x3e, 0x52, 0x24, - 0xef, 0x69, 0x1b, 0xe5, 0x48, 0xfa, 0x0a, 0x4c, 0xb2, 0xfc, 0x86, 0xa0, 0x12, 0xed, 0xa4, 0x7c, - 0xcd, 0x8e, 0xed, 0xae, 0x62, 0xfc, 0xee, 0x2b, 0x7e, 0xb7, 0xb5, 0x4e, 0x49, 0x7e, 0xa1, 0xdb, - 0x45, 0xed, 0xed, 0x8f, 0xa0, 0xf5, 0xf9, 0x28, 0x07, 0x67, 0x7b, 0x3e, 0x5d, 0x94, 0x3d, 0x39, - 0x5b, 0x3d, 0xf4, 0x6a, 0x37, 0xce, 0xb0, 0xb8, 0x43, 0x5d, 0x4b, 0xe7, 0xbe, 0x45, 0x2c, 0xe6, - 0xaa, 0xc9, 0x23, 0x91, 0x8b, 0x7a, 0xb6, 0xb8, 0xec, 0x9f, 0x62, 0x2b, 0xb5, 0x98, 0x15, 0x95, - 0xb3, 0xfe, 0x2f, 0x00, 0x00, 0xff, 0xff, 0xf6, 0xcb, 0x14, 0x68, 0xf9, 0x08, 0x00, 0x00, +var fileDescriptor_cloudscheduler_1ba8688798d8aa5e = []byte{ + // 718 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x56, 0x4b, 0x4f, 0xdb, 0x4a, + 0x14, 0xd6, 0xf0, 0x88, 0xc8, 0x41, 0x40, 0x34, 0x0b, 0x14, 0x85, 0x7b, 0xaf, 0x22, 0xa3, 0x8b, + 0xa2, 0x48, 0x64, 0x1a, 0x1e, 0x7d, 0x84, 0x3e, 0x24, 0x1e, 0xa5, 0x42, 0x54, 0x8a, 0x4c, 0xd9, + 0x74, 0x83, 0xc6, 0xc9, 0xe0, 0x3a, 0x38, 0x1e, 0xd7, 0x63, 0x57, 0x2d, 0x15, 0x9b, 0x2e, 0xaa, + 0x4a, 0xed, 0x8e, 0x5d, 0x17, 0x55, 0x45, 0xfb, 0x8f, 0xfa, 0x17, 0xfa, 0x43, 0xaa, 0x19, 0x3f, + 0x20, 0x2e, 0x60, 0x7b, 0xe7, 0x39, 0x8f, 0xf9, 0xbe, 0x39, 0xe7, 0x7c, 0x47, 0x86, 0x55, 0x93, + 0x73, 0xd3, 0x66, 0xa4, 0x67, 0xf3, 0xa0, 0x4f, 0x44, 0xef, 0x15, 0xeb, 0x07, 0x36, 0xf3, 0xc8, + 0x9b, 0xb6, 0xc1, 0x7c, 0xda, 0x0e, 0xed, 0x89, 0xb9, 0xe5, 0x7a, 0xdc, 0xe7, 0xf8, 0xbf, 0x30, + 0xa9, 0xa5, 0x9c, 0xad, 0x4b, 0x6f, 0x94, 0x54, 0xfb, 0x27, 0xba, 0x94, 0xba, 0x16, 0xa1, 0x8e, + 0xc3, 0x7d, 0xea, 0x5b, 0xdc, 0x11, 0x61, 0x76, 0xad, 0x91, 0x01, 0x39, 0xe0, 0x46, 0x14, 0xb9, + 0x10, 0x45, 0xaa, 0x93, 0x11, 0x1c, 0x13, 0x36, 0x74, 0xfd, 0x77, 0x91, 0xb3, 0x9e, 0x76, 0x1e, + 0x5b, 0xcc, 0xee, 0x1f, 0x0d, 0xa9, 0x38, 0x09, 0x23, 0x34, 0x06, 0x73, 0xfb, 0x96, 0xf0, 0xf7, + 0xb8, 0x21, 0x74, 0xf6, 0x3a, 0x60, 0xc2, 0xc7, 0xf3, 0x50, 0x72, 0xa9, 0xc7, 0x1c, 0xbf, 0x8a, + 0xea, 0xa8, 0x51, 0xd6, 0xa3, 0x13, 0x5e, 0x80, 0xb2, 0x4b, 0x4d, 0x76, 0x24, 0xac, 0x53, 0x56, + 0x9d, 0xac, 0xa3, 0xc6, 0xa4, 0x3e, 0x25, 0x0d, 0x07, 0xd6, 0x29, 0xc3, 0xff, 0x02, 0x28, 0xa7, + 0xcf, 0x4f, 0x98, 0x53, 0x2d, 0xa9, 0x44, 0x15, 0xfe, 0x42, 0x1a, 0x34, 0x01, 0x95, 0x4b, 0x18, + 0xe1, 0x72, 0x47, 0x30, 0x7c, 0x0f, 0x26, 0x06, 0xdc, 0x10, 0x55, 0x54, 0x1f, 0x6f, 0x4c, 0xaf, + 0x2c, 0xb6, 0x6e, 0x2f, 0x58, 0x6b, 0x8f, 0x1b, 0xba, 0x4a, 0xc0, 0x4b, 0x30, 0xe7, 0xb0, 0xb7, + 0xfe, 0xd1, 0x15, 0xc0, 0x31, 0x05, 0x38, 0x23, 0xcd, 0xdd, 0x04, 0x74, 0x11, 0x66, 0x76, 0x99, + 0xc4, 0x8c, 0x5f, 0x86, 0x61, 0xc2, 0xa1, 0x43, 0x16, 0xbd, 0x4b, 0x7d, 0x6b, 0x14, 0x2a, 0x5b, + 0x1e, 0xa3, 0x3e, 0xbb, 0x12, 0x77, 0x53, 0x05, 0xd6, 0x61, 0x7c, 0xc0, 0x0d, 0x05, 0x96, 0x93, + 0xb0, 0x8c, 0xd7, 0x3e, 0x22, 0xa8, 0x1c, 0xba, 0xfd, 0x51, 0x8c, 0xe8, 0x2e, 0x54, 0xec, 0x2e, + 0xbc, 0x01, 0xd3, 0x81, 0xba, 0x4a, 0x35, 0x31, 0xa2, 0x52, 0x8b, 0xd3, 0xe3, 0x3e, 0xb7, 0x9e, + 0xca, 0x3e, 0x3f, 0xa7, 0xe2, 0x44, 0x87, 0x30, 0x5c, 0x7e, 0x6b, 0x4b, 0x50, 0xd9, 0x66, 0x36, + 0x1b, 0xe1, 0x71, 0x5d, 0x4d, 0xfe, 0x87, 0xb9, 0x2e, 0x0d, 0x44, 0x56, 0xd8, 0x12, 0x54, 0x74, + 0x26, 0x82, 0x61, 0x56, 0xdc, 0x22, 0xcc, 0xe8, 0x81, 0x73, 0x7b, 0xd0, 0xca, 0x27, 0x80, 0xd9, + 0x2d, 0xf9, 0xfa, 0x83, 0xf8, 0xf1, 0xf8, 0x27, 0x82, 0xa9, 0x78, 0x6a, 0x30, 0xc9, 0x2a, 0x51, + 0x6a, 0x8c, 0x6b, 0x77, 0xf2, 0x27, 0x84, 0x03, 0xa9, 0xad, 0x7f, 0xf8, 0xf5, 0xfb, 0x7c, 0x8c, + 0xe0, 0xe5, 0x44, 0x66, 0xef, 0xc3, 0xc6, 0x3f, 0x72, 0x3d, 0x3e, 0x60, 0x3d, 0x5f, 0x90, 0x26, + 0xb1, 0x79, 0x2f, 0x54, 0x2a, 0x69, 0x9e, 0x11, 0x35, 0x8e, 0xe7, 0x08, 0x4a, 0xe1, 0x9c, 0xe1, + 0xe5, 0x2c, 0xcc, 0x91, 0x79, 0xac, 0xe5, 0x69, 0xfb, 0x75, 0xac, 0x64, 0xc1, 0x6e, 0xe0, 0xa4, + 0x28, 0x91, 0xe6, 0x19, 0xfe, 0x86, 0xa0, 0x9c, 0x0c, 0x36, 0xce, 0x2c, 0x46, 0x5a, 0x03, 0xf9, + 0xb8, 0x75, 0x14, 0xb7, 0x35, 0xad, 0x58, 0xc5, 0x3a, 0x6a, 0x92, 0x2f, 0x10, 0x94, 0x13, 0x55, + 0x64, 0x13, 0x4c, 0x0b, 0x28, 0x1f, 0xc1, 0xc7, 0x8a, 0xe0, 0xfd, 0x95, 0xf6, 0x25, 0x41, 0xb9, + 0x3a, 0x73, 0x14, 0x30, 0x24, 0xf9, 0x05, 0x41, 0x39, 0x91, 0x4c, 0x36, 0xc9, 0xb4, 0xba, 0x6a, + 0xf3, 0x7f, 0x29, 0x73, 0x47, 0xae, 0xe7, 0xb8, 0xa9, 0xcd, 0x82, 0x4d, 0xfd, 0x8e, 0x60, 0x2a, + 0x56, 0x66, 0xb6, 0x22, 0x52, 0x1a, 0x2e, 0x54, 0x31, 0x6d, 0xb5, 0x10, 0xb3, 0x8e, 0x2b, 0xb1, + 0x3a, 0xa8, 0x89, 0x7f, 0x20, 0x28, 0x27, 0x5b, 0x21, 0xbb, 0x62, 0xe9, 0x05, 0x92, 0x8f, 0xe4, + 0x13, 0x45, 0xf2, 0x81, 0xb6, 0x56, 0x8c, 0xa4, 0xa7, 0xc0, 0x24, 0xcb, 0xaf, 0x08, 0x4a, 0xe1, + 0x4e, 0xca, 0xd6, 0xec, 0xc8, 0xee, 0xca, 0xc7, 0xef, 0xa1, 0xe2, 0x77, 0x57, 0x6b, 0x17, 0xe4, + 0x17, 0x38, 0x1d, 0xd4, 0xdc, 0xfc, 0x8c, 0x40, 0xeb, 0xf1, 0x61, 0x06, 0xd0, 0xe6, 0x6c, 0xb2, + 0x29, 0xbb, 0x72, 0xb8, 0xba, 0xe8, 0xe5, 0x6e, 0x94, 0x61, 0x72, 0x9b, 0x3a, 0x66, 0x8b, 0x7b, + 0x26, 0x31, 0x99, 0xa3, 0x46, 0x8f, 0x84, 0x2e, 0xea, 0x5a, 0xe2, 0xa6, 0x9f, 0x8a, 0x8d, 0xc4, + 0x72, 0x31, 0x56, 0x3e, 0xd8, 0x7a, 0xb6, 0xb3, 0x7d, 0xb8, 0xbf, 0xa3, 0x1b, 0x25, 0x95, 0xbf, + 0xfa, 0x27, 0x00, 0x00, 0xff, 0xff, 0x8f, 0xba, 0xb8, 0xb2, 0x06, 0x09, 0x00, 0x00, } diff --git a/vendor/google.golang.org/genproto/googleapis/cloud/securitycenter/v1beta1/asset.pb.go b/vendor/google.golang.org/genproto/googleapis/cloud/securitycenter/v1beta1/asset.pb.go index 0bf56096b..cd37c3ae9 100644 --- a/vendor/google.golang.org/genproto/googleapis/cloud/securitycenter/v1beta1/asset.pb.go +++ b/vendor/google.golang.org/genproto/googleapis/cloud/securitycenter/v1beta1/asset.pb.go @@ -24,9 +24,9 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package // Cloud Security Command Center's (Cloud SCC) representation of a Google Cloud // Platform (GCP) resource. // -// The Asset is a Cloud SCC resource that captures information about a single GCP -// resource. All modifications to an Asset are only within the context of Cloud -// SCC and don't affect the referenced GCP resource. +// The Asset is a Cloud SCC resource that captures information about a single +// GCP resource. All modifications to an Asset are only within the context of +// Cloud SCC and don't affect the referenced GCP resource. type Asset struct { // The relative resource name of this asset. See: // https://cloud.google.com/apis/design/resource_names#relative_resource_name @@ -56,7 +56,7 @@ func (m *Asset) Reset() { *m = Asset{} } func (m *Asset) String() string { return proto.CompactTextString(m) } func (*Asset) ProtoMessage() {} func (*Asset) Descriptor() ([]byte, []int) { - return fileDescriptor_asset_7db002f1bdd144f0, []int{0} + return fileDescriptor_asset_43df7b06a0eb9ff3, []int{0} } func (m *Asset) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Asset.Unmarshal(m, b) @@ -147,7 +147,7 @@ func (m *Asset_SecurityCenterProperties) Reset() { *m = Asset_SecurityCe func (m *Asset_SecurityCenterProperties) String() string { return proto.CompactTextString(m) } func (*Asset_SecurityCenterProperties) ProtoMessage() {} func (*Asset_SecurityCenterProperties) Descriptor() ([]byte, []int) { - return fileDescriptor_asset_7db002f1bdd144f0, []int{0, 0} + return fileDescriptor_asset_43df7b06a0eb9ff3, []int{0, 0} } func (m *Asset_SecurityCenterProperties) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Asset_SecurityCenterProperties.Unmarshal(m, b) @@ -209,10 +209,10 @@ func init() { } func init() { - proto.RegisterFile("google/cloud/securitycenter/v1beta1/asset.proto", fileDescriptor_asset_7db002f1bdd144f0) + proto.RegisterFile("google/cloud/securitycenter/v1beta1/asset.proto", fileDescriptor_asset_43df7b06a0eb9ff3) } -var fileDescriptor_asset_7db002f1bdd144f0 = []byte{ +var fileDescriptor_asset_43df7b06a0eb9ff3 = []byte{ // 490 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0x5d, 0x6b, 0xd4, 0x40, 0x14, 0x25, 0xdd, 0x6e, 0xb5, 0x77, 0xed, 0x07, 0x23, 0xe8, 0x10, 0x04, 0x17, 0xfb, 0xd0, 0x15, diff --git a/vendor/google.golang.org/genproto/googleapis/cloud/securitycenter/v1beta1/finding.pb.go b/vendor/google.golang.org/genproto/googleapis/cloud/securitycenter/v1beta1/finding.pb.go index 296ad6d97..ebfe94be9 100644 --- a/vendor/google.golang.org/genproto/googleapis/cloud/securitycenter/v1beta1/finding.pb.go +++ b/vendor/google.golang.org/genproto/googleapis/cloud/securitycenter/v1beta1/finding.pb.go @@ -49,7 +49,7 @@ func (x Finding_State) String() string { return proto.EnumName(Finding_State_name, int32(x)) } func (Finding_State) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_finding_2c388f0a3f99b762, []int{0, 0} + return fileDescriptor_finding_67aa433c3f84c505, []int{0, 0} } // Cloud Security Command Center (Cloud SCC) finding. @@ -77,7 +77,7 @@ type Finding struct { ResourceName string `protobuf:"bytes,3,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` // The state of the finding. State Finding_State `protobuf:"varint,4,opt,name=state,proto3,enum=google.cloud.securitycenter.v1beta1.Finding_State" json:"state,omitempty"` - // The additional taxonomy group within findings from a give source. + // The additional taxonomy group within findings from a given source. // This field is immutable after creation time. // Example: "XSS_FLASH_INJECTION" Category string `protobuf:"bytes,5,opt,name=category,proto3" json:"category,omitempty"` @@ -86,7 +86,9 @@ type Finding struct { // guaranteed to be either empty or a well formed URL. ExternalUri string `protobuf:"bytes,6,opt,name=external_uri,json=externalUri,proto3" json:"external_uri,omitempty"` // Source specific properties. These properties are managed by the source - // that writes the finding. + // that writes the finding. The key names in the source_properties map must be + // between 1 and 255 characters, and must start with a letter and contain + // alphanumeric characters or underscores only. SourceProperties map[string]*_struct.Value `protobuf:"bytes,7,rep,name=source_properties,json=sourceProperties,proto3" json:"source_properties,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Output only. User specified security marks. These marks are entirely // managed by the user and come from the SecurityMarks resource that belongs @@ -107,7 +109,7 @@ func (m *Finding) Reset() { *m = Finding{} } func (m *Finding) String() string { return proto.CompactTextString(m) } func (*Finding) ProtoMessage() {} func (*Finding) Descriptor() ([]byte, []int) { - return fileDescriptor_finding_2c388f0a3f99b762, []int{0} + return fileDescriptor_finding_67aa433c3f84c505, []int{0} } func (m *Finding) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Finding.Unmarshal(m, b) @@ -204,10 +206,10 @@ func init() { } func init() { - proto.RegisterFile("google/cloud/securitycenter/v1beta1/finding.proto", fileDescriptor_finding_2c388f0a3f99b762) + proto.RegisterFile("google/cloud/securitycenter/v1beta1/finding.proto", fileDescriptor_finding_67aa433c3f84c505) } -var fileDescriptor_finding_2c388f0a3f99b762 = []byte{ +var fileDescriptor_finding_67aa433c3f84c505 = []byte{ // 510 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x93, 0x41, 0x6f, 0xda, 0x30, 0x14, 0xc7, 0x17, 0x28, 0x14, 0x1e, 0xb4, 0xa2, 0x96, 0x5a, 0x45, 0x68, 0xd2, 0x58, 0x7b, 0x18, diff --git a/vendor/google.golang.org/genproto/googleapis/cloud/securitycenter/v1beta1/securitycenter_service.pb.go b/vendor/google.golang.org/genproto/googleapis/cloud/securitycenter/v1beta1/securitycenter_service.pb.go index a14d95968..0574153da 100644 --- a/vendor/google.golang.org/genproto/googleapis/cloud/securitycenter/v1beta1/securitycenter_service.pb.go +++ b/vendor/google.golang.org/genproto/googleapis/cloud/securitycenter/v1beta1/securitycenter_service.pb.go @@ -71,7 +71,7 @@ func (x ListAssetsResponse_ListAssetsResult_State) String() string { return proto.EnumName(ListAssetsResponse_ListAssetsResult_State_name, int32(x)) } func (ListAssetsResponse_ListAssetsResult_State) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_securitycenter_service_04d508c1925341a7, []int{12, 0, 0} + return fileDescriptor_securitycenter_service_c243892a08857f74, []int{12, 0, 0} } // Request message for creating a finding. @@ -95,7 +95,7 @@ func (m *CreateFindingRequest) Reset() { *m = CreateFindingRequest{} } func (m *CreateFindingRequest) String() string { return proto.CompactTextString(m) } func (*CreateFindingRequest) ProtoMessage() {} func (*CreateFindingRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_securitycenter_service_04d508c1925341a7, []int{0} + return fileDescriptor_securitycenter_service_c243892a08857f74, []int{0} } func (m *CreateFindingRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateFindingRequest.Unmarshal(m, b) @@ -153,7 +153,7 @@ func (m *CreateSourceRequest) Reset() { *m = CreateSourceRequest{} } func (m *CreateSourceRequest) String() string { return proto.CompactTextString(m) } func (*CreateSourceRequest) ProtoMessage() {} func (*CreateSourceRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_securitycenter_service_04d508c1925341a7, []int{1} + return fileDescriptor_securitycenter_service_c243892a08857f74, []int{1} } func (m *CreateSourceRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateSourceRequest.Unmarshal(m, b) @@ -201,7 +201,7 @@ func (m *GetOrganizationSettingsRequest) Reset() { *m = GetOrganizationS func (m *GetOrganizationSettingsRequest) String() string { return proto.CompactTextString(m) } func (*GetOrganizationSettingsRequest) ProtoMessage() {} func (*GetOrganizationSettingsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_securitycenter_service_04d508c1925341a7, []int{2} + return fileDescriptor_securitycenter_service_c243892a08857f74, []int{2} } func (m *GetOrganizationSettingsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetOrganizationSettingsRequest.Unmarshal(m, b) @@ -242,7 +242,7 @@ func (m *GetSourceRequest) Reset() { *m = GetSourceRequest{} } func (m *GetSourceRequest) String() string { return proto.CompactTextString(m) } func (*GetSourceRequest) ProtoMessage() {} func (*GetSourceRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_securitycenter_service_04d508c1925341a7, []int{3} + return fileDescriptor_securitycenter_service_c243892a08857f74, []int{3} } func (m *GetSourceRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetSourceRequest.Unmarshal(m, b) @@ -360,7 +360,7 @@ func (m *GroupAssetsRequest) Reset() { *m = GroupAssetsRequest{} } func (m *GroupAssetsRequest) String() string { return proto.CompactTextString(m) } func (*GroupAssetsRequest) ProtoMessage() {} func (*GroupAssetsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_securitycenter_service_04d508c1925341a7, []int{4} + return fileDescriptor_securitycenter_service_c243892a08857f74, []int{4} } func (m *GroupAssetsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupAssetsRequest.Unmarshal(m, b) @@ -449,7 +449,7 @@ func (m *GroupAssetsResponse) Reset() { *m = GroupAssetsResponse{} } func (m *GroupAssetsResponse) String() string { return proto.CompactTextString(m) } func (*GroupAssetsResponse) ProtoMessage() {} func (*GroupAssetsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_securitycenter_service_04d508c1925341a7, []int{5} + return fileDescriptor_securitycenter_service_c243892a08857f74, []int{5} } func (m *GroupAssetsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupAssetsResponse.Unmarshal(m, b) @@ -556,7 +556,7 @@ func (m *GroupFindingsRequest) Reset() { *m = GroupFindingsRequest{} } func (m *GroupFindingsRequest) String() string { return proto.CompactTextString(m) } func (*GroupFindingsRequest) ProtoMessage() {} func (*GroupFindingsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_securitycenter_service_04d508c1925341a7, []int{6} + return fileDescriptor_securitycenter_service_c243892a08857f74, []int{6} } func (m *GroupFindingsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupFindingsRequest.Unmarshal(m, b) @@ -638,7 +638,7 @@ func (m *GroupFindingsResponse) Reset() { *m = GroupFindingsResponse{} } func (m *GroupFindingsResponse) String() string { return proto.CompactTextString(m) } func (*GroupFindingsResponse) ProtoMessage() {} func (*GroupFindingsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_securitycenter_service_04d508c1925341a7, []int{7} + return fileDescriptor_securitycenter_service_c243892a08857f74, []int{7} } func (m *GroupFindingsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupFindingsResponse.Unmarshal(m, b) @@ -694,7 +694,7 @@ func (m *GroupResult) Reset() { *m = GroupResult{} } func (m *GroupResult) String() string { return proto.CompactTextString(m) } func (*GroupResult) ProtoMessage() {} func (*GroupResult) Descriptor() ([]byte, []int) { - return fileDescriptor_securitycenter_service_04d508c1925341a7, []int{8} + return fileDescriptor_securitycenter_service_c243892a08857f74, []int{8} } func (m *GroupResult) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupResult.Unmarshal(m, b) @@ -749,7 +749,7 @@ func (m *ListSourcesRequest) Reset() { *m = ListSourcesRequest{} } func (m *ListSourcesRequest) String() string { return proto.CompactTextString(m) } func (*ListSourcesRequest) ProtoMessage() {} func (*ListSourcesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_securitycenter_service_04d508c1925341a7, []int{9} + return fileDescriptor_securitycenter_service_c243892a08857f74, []int{9} } func (m *ListSourcesRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListSourcesRequest.Unmarshal(m, b) @@ -806,7 +806,7 @@ func (m *ListSourcesResponse) Reset() { *m = ListSourcesResponse{} } func (m *ListSourcesResponse) String() string { return proto.CompactTextString(m) } func (*ListSourcesResponse) ProtoMessage() {} func (*ListSourcesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_securitycenter_service_04d508c1925341a7, []int{10} + return fileDescriptor_securitycenter_service_c243892a08857f74, []int{10} } func (m *ListSourcesResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListSourcesResponse.Unmarshal(m, b) @@ -933,7 +933,7 @@ func (m *ListAssetsRequest) Reset() { *m = ListAssetsRequest{} } func (m *ListAssetsRequest) String() string { return proto.CompactTextString(m) } func (*ListAssetsRequest) ProtoMessage() {} func (*ListAssetsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_securitycenter_service_04d508c1925341a7, []int{11} + return fileDescriptor_securitycenter_service_c243892a08857f74, []int{11} } func (m *ListAssetsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListAssetsRequest.Unmarshal(m, b) @@ -1029,7 +1029,7 @@ func (m *ListAssetsResponse) Reset() { *m = ListAssetsResponse{} } func (m *ListAssetsResponse) String() string { return proto.CompactTextString(m) } func (*ListAssetsResponse) ProtoMessage() {} func (*ListAssetsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_securitycenter_service_04d508c1925341a7, []int{12} + return fileDescriptor_securitycenter_service_c243892a08857f74, []int{12} } func (m *ListAssetsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListAssetsResponse.Unmarshal(m, b) @@ -1092,7 +1092,7 @@ func (m *ListAssetsResponse_ListAssetsResult) Reset() { *m = ListAssetsR func (m *ListAssetsResponse_ListAssetsResult) String() string { return proto.CompactTextString(m) } func (*ListAssetsResponse_ListAssetsResult) ProtoMessage() {} func (*ListAssetsResponse_ListAssetsResult) Descriptor() ([]byte, []int) { - return fileDescriptor_securitycenter_service_04d508c1925341a7, []int{12, 0} + return fileDescriptor_securitycenter_service_c243892a08857f74, []int{12, 0} } func (m *ListAssetsResponse_ListAssetsResult) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListAssetsResponse_ListAssetsResult.Unmarshal(m, b) @@ -1194,7 +1194,7 @@ func (m *ListFindingsRequest) Reset() { *m = ListFindingsRequest{} } func (m *ListFindingsRequest) String() string { return proto.CompactTextString(m) } func (*ListFindingsRequest) ProtoMessage() {} func (*ListFindingsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_securitycenter_service_04d508c1925341a7, []int{13} + return fileDescriptor_securitycenter_service_c243892a08857f74, []int{13} } func (m *ListFindingsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListFindingsRequest.Unmarshal(m, b) @@ -1283,7 +1283,7 @@ func (m *ListFindingsResponse) Reset() { *m = ListFindingsResponse{} } func (m *ListFindingsResponse) String() string { return proto.CompactTextString(m) } func (*ListFindingsResponse) ProtoMessage() {} func (*ListFindingsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_securitycenter_service_04d508c1925341a7, []int{14} + return fileDescriptor_securitycenter_service_c243892a08857f74, []int{14} } func (m *ListFindingsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListFindingsResponse.Unmarshal(m, b) @@ -1351,7 +1351,7 @@ func (m *SetFindingStateRequest) Reset() { *m = SetFindingStateRequest{} func (m *SetFindingStateRequest) String() string { return proto.CompactTextString(m) } func (*SetFindingStateRequest) ProtoMessage() {} func (*SetFindingStateRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_securitycenter_service_04d508c1925341a7, []int{15} + return fileDescriptor_securitycenter_service_c243892a08857f74, []int{15} } func (m *SetFindingStateRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetFindingStateRequest.Unmarshal(m, b) @@ -1406,7 +1406,7 @@ func (m *RunAssetDiscoveryRequest) Reset() { *m = RunAssetDiscoveryReque func (m *RunAssetDiscoveryRequest) String() string { return proto.CompactTextString(m) } func (*RunAssetDiscoveryRequest) ProtoMessage() {} func (*RunAssetDiscoveryRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_securitycenter_service_04d508c1925341a7, []int{16} + return fileDescriptor_securitycenter_service_c243892a08857f74, []int{16} } func (m *RunAssetDiscoveryRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RunAssetDiscoveryRequest.Unmarshal(m, b) @@ -1442,8 +1442,8 @@ type UpdateFindingRequest struct { // alphanumeric and less than or equal to 32 characters and greater than 0 // characters in length. Finding *Finding `protobuf:"bytes,1,opt,name=finding,proto3" json:"finding,omitempty"` - // The FieldMask to use when updating the finding resource. This field is - // ignored if the finding does not already exist and the finding is created. + // The FieldMask to use when updating the finding resource. This field should + // not be specified when creating a finding. UpdateMask *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -1454,7 +1454,7 @@ func (m *UpdateFindingRequest) Reset() { *m = UpdateFindingRequest{} } func (m *UpdateFindingRequest) String() string { return proto.CompactTextString(m) } func (*UpdateFindingRequest) ProtoMessage() {} func (*UpdateFindingRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_securitycenter_service_04d508c1925341a7, []int{17} + return fileDescriptor_securitycenter_service_c243892a08857f74, []int{17} } func (m *UpdateFindingRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UpdateFindingRequest.Unmarshal(m, b) @@ -1503,7 +1503,7 @@ func (m *UpdateOrganizationSettingsRequest) Reset() { *m = UpdateOrganiz func (m *UpdateOrganizationSettingsRequest) String() string { return proto.CompactTextString(m) } func (*UpdateOrganizationSettingsRequest) ProtoMessage() {} func (*UpdateOrganizationSettingsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_securitycenter_service_04d508c1925341a7, []int{18} + return fileDescriptor_securitycenter_service_c243892a08857f74, []int{18} } func (m *UpdateOrganizationSettingsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UpdateOrganizationSettingsRequest.Unmarshal(m, b) @@ -1552,7 +1552,7 @@ func (m *UpdateSourceRequest) Reset() { *m = UpdateSourceRequest{} } func (m *UpdateSourceRequest) String() string { return proto.CompactTextString(m) } func (*UpdateSourceRequest) ProtoMessage() {} func (*UpdateSourceRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_securitycenter_service_04d508c1925341a7, []int{19} + return fileDescriptor_securitycenter_service_c243892a08857f74, []int{19} } func (m *UpdateSourceRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UpdateSourceRequest.Unmarshal(m, b) @@ -1603,7 +1603,7 @@ func (m *UpdateSecurityMarksRequest) Reset() { *m = UpdateSecurityMarksR func (m *UpdateSecurityMarksRequest) String() string { return proto.CompactTextString(m) } func (*UpdateSecurityMarksRequest) ProtoMessage() {} func (*UpdateSecurityMarksRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_securitycenter_service_04d508c1925341a7, []int{20} + return fileDescriptor_securitycenter_service_c243892a08857f74, []int{20} } func (m *UpdateSecurityMarksRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UpdateSecurityMarksRequest.Unmarshal(m, b) @@ -2371,10 +2371,10 @@ var _SecurityCenter_serviceDesc = grpc.ServiceDesc{ } func init() { - proto.RegisterFile("google/cloud/securitycenter/v1beta1/securitycenter_service.proto", fileDescriptor_securitycenter_service_04d508c1925341a7) + proto.RegisterFile("google/cloud/securitycenter/v1beta1/securitycenter_service.proto", fileDescriptor_securitycenter_service_c243892a08857f74) } -var fileDescriptor_securitycenter_service_04d508c1925341a7 = []byte{ +var fileDescriptor_securitycenter_service_c243892a08857f74 = []byte{ // 1902 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x5a, 0xdb, 0x6f, 0x1b, 0x59, 0x19, 0xe7, 0x38, 0x71, 0x12, 0x7f, 0x6e, 0x5a, 0xf7, 0x24, 0x2d, 0xde, 0xd9, 0xee, 0x12, 0x06, diff --git a/vendor/google.golang.org/genproto/googleapis/cloud/securitycenter/v1beta1/source.pb.go b/vendor/google.golang.org/genproto/googleapis/cloud/securitycenter/v1beta1/source.pb.go index 904596b62..bee1d4590 100644 --- a/vendor/google.golang.org/genproto/googleapis/cloud/securitycenter/v1beta1/source.pb.go +++ b/vendor/google.golang.org/genproto/googleapis/cloud/securitycenter/v1beta1/source.pb.go @@ -28,13 +28,13 @@ type Source struct { // Example: // "organizations/123/sources/456" Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // The source’s display name. - // A source’s display name must be unique amongst its siblings, for example, + // The source's display name. + // A source's display name must be unique amongst its siblings, for example, // two sources with the same parent can't share the same display name. // The display name must start and end with a letter or digit, may contain // letters, digits, spaces, hyphens, and underscores, and can be no longer - // than 30 characters. This is captured by the regular expression: - // [\p{L}\p{N}]({\p{L}\p{N}_- ]{0,28}[\p{L}\p{N}])?. + // than 32 characters. This is captured by the regular expression: + // [\p{L}\p{N}]({\p{L}\p{N}_- ]{0,30}[\p{L}\p{N}])?. DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` // The description of the source (max of 1024 characters). // Example: @@ -53,7 +53,7 @@ func (m *Source) Reset() { *m = Source{} } func (m *Source) String() string { return proto.CompactTextString(m) } func (*Source) ProtoMessage() {} func (*Source) Descriptor() ([]byte, []int) { - return fileDescriptor_source_e0c4f1f81c312886, []int{0} + return fileDescriptor_source_adbcc5410043bfde, []int{0} } func (m *Source) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Source.Unmarshal(m, b) @@ -99,10 +99,10 @@ func init() { } func init() { - proto.RegisterFile("google/cloud/securitycenter/v1beta1/source.proto", fileDescriptor_source_e0c4f1f81c312886) + proto.RegisterFile("google/cloud/securitycenter/v1beta1/source.proto", fileDescriptor_source_adbcc5410043bfde) } -var fileDescriptor_source_e0c4f1f81c312886 = []byte{ +var fileDescriptor_source_adbcc5410043bfde = []byte{ // 217 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x90, 0x3f, 0x4b, 0xc5, 0x30, 0x14, 0xc5, 0xa9, 0x4a, 0xc1, 0xd4, 0x29, 0x53, 0x11, 0x87, 0xaa, 0x83, 0x4e, 0x89, 0xc5, 0xd1, diff --git a/vendor/google.golang.org/genproto/googleapis/cloud/speech/v1/cloud_speech.pb.go b/vendor/google.golang.org/genproto/googleapis/cloud/speech/v1/cloud_speech.pb.go index 76471c538..001c31982 100644 --- a/vendor/google.golang.org/genproto/googleapis/cloud/speech/v1/cloud_speech.pb.go +++ b/vendor/google.golang.org/genproto/googleapis/cloud/speech/v1/cloud_speech.pb.go @@ -115,7 +115,7 @@ func (x RecognitionConfig_AudioEncoding) String() string { return proto.EnumName(RecognitionConfig_AudioEncoding_name, int32(x)) } func (RecognitionConfig_AudioEncoding) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_cloud_speech_e29a84bc29d9b679, []int{4, 0} + return fileDescriptor_cloud_speech_75fcd9f459a8e5e9, []int{4, 0} } // Indicates the type of speech event. @@ -147,7 +147,7 @@ func (x StreamingRecognizeResponse_SpeechEventType) String() string { return proto.EnumName(StreamingRecognizeResponse_SpeechEventType_name, int32(x)) } func (StreamingRecognizeResponse_SpeechEventType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_cloud_speech_e29a84bc29d9b679, []int{10, 0} + return fileDescriptor_cloud_speech_75fcd9f459a8e5e9, []int{10, 0} } // The top-level message sent by the client for the `Recognize` method. @@ -166,7 +166,7 @@ func (m *RecognizeRequest) Reset() { *m = RecognizeRequest{} } func (m *RecognizeRequest) String() string { return proto.CompactTextString(m) } func (*RecognizeRequest) ProtoMessage() {} func (*RecognizeRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_cloud_speech_e29a84bc29d9b679, []int{0} + return fileDescriptor_cloud_speech_75fcd9f459a8e5e9, []int{0} } func (m *RecognizeRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RecognizeRequest.Unmarshal(m, b) @@ -217,7 +217,7 @@ func (m *LongRunningRecognizeRequest) Reset() { *m = LongRunningRecogniz func (m *LongRunningRecognizeRequest) String() string { return proto.CompactTextString(m) } func (*LongRunningRecognizeRequest) ProtoMessage() {} func (*LongRunningRecognizeRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_cloud_speech_e29a84bc29d9b679, []int{1} + return fileDescriptor_cloud_speech_75fcd9f459a8e5e9, []int{1} } func (m *LongRunningRecognizeRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_LongRunningRecognizeRequest.Unmarshal(m, b) @@ -272,7 +272,7 @@ func (m *StreamingRecognizeRequest) Reset() { *m = StreamingRecognizeReq func (m *StreamingRecognizeRequest) String() string { return proto.CompactTextString(m) } func (*StreamingRecognizeRequest) ProtoMessage() {} func (*StreamingRecognizeRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_cloud_speech_e29a84bc29d9b679, []int{2} + return fileDescriptor_cloud_speech_75fcd9f459a8e5e9, []int{2} } func (m *StreamingRecognizeRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_StreamingRecognizeRequest.Unmarshal(m, b) @@ -431,7 +431,7 @@ func (m *StreamingRecognitionConfig) Reset() { *m = StreamingRecognition func (m *StreamingRecognitionConfig) String() string { return proto.CompactTextString(m) } func (*StreamingRecognitionConfig) ProtoMessage() {} func (*StreamingRecognitionConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_cloud_speech_e29a84bc29d9b679, []int{3} + return fileDescriptor_cloud_speech_75fcd9f459a8e5e9, []int{3} } func (m *StreamingRecognitionConfig) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_StreamingRecognitionConfig.Unmarshal(m, b) @@ -487,6 +487,13 @@ type RecognitionConfig struct { // This field is optional for `FLAC` and `WAV` audio files and required // for all other audio formats. For details, see [AudioEncoding][google.cloud.speech.v1.RecognitionConfig.AudioEncoding]. SampleRateHertz int32 `protobuf:"varint,2,opt,name=sample_rate_hertz,json=sampleRateHertz,proto3" json:"sample_rate_hertz,omitempty"` + // This needs to be set to `true` explicitly and `audio_channel_count` > 1 + // to get each channel recognized separately. The recognition result will + // contain a `channel_tag` field to state which channel that result belongs + // to. If this is not true, we will only recognize the first channel. The + // request is billed cumulatively for all channels recognized: + // `audio_channel_count` multiplied by the length of the audio. + EnableSeparateRecognitionPerChannel bool `protobuf:"varint,12,opt,name=enable_separate_recognition_per_channel,json=enableSeparateRecognitionPerChannel,proto3" json:"enable_separate_recognition_per_channel,omitempty"` // *Required* The language of the supplied audio as a // [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag. // Example: "en-US". @@ -556,16 +563,20 @@ type RecognitionConfig struct { // Model string `protobuf:"bytes,13,opt,name=model,proto3" json:"model,omitempty"` // *Optional* Set to true to use an enhanced model for speech recognition. - // You must also set the `model` field to a valid, enhanced model. If - // `use_enhanced` is set to true and the `model` field is not set, then - // `use_enhanced` is ignored. If `use_enhanced` is true and an enhanced - // version of the specified model does not exist, then the speech is - // recognized using the standard version of the specified model. + // If `use_enhanced` is set to true and the `model` field is not set, then + // an appropriate enhanced model is chosen if: + // 1. project is eligible for requesting enhanced models + // 2. an enhanced model exists for the audio + // + // If `use_enhanced` is true and an enhanced version of the specified model + // does not exist, then the speech is recognized using the standard version + // of the specified model. // // Enhanced speech models require that you opt-in to data logging using - // instructions in the [documentation](/speech-to-text/enable-data-logging). - // If you set `use_enhanced` to true and you have not enabled audio logging, - // then you will receive an error. + // instructions in the + // [documentation](/speech-to-text/docs/enable-data-logging). If you set + // `use_enhanced` to true and you have not enabled audio logging, then you + // will receive an error. UseEnhanced bool `protobuf:"varint,14,opt,name=use_enhanced,json=useEnhanced,proto3" json:"use_enhanced,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -576,7 +587,7 @@ func (m *RecognitionConfig) Reset() { *m = RecognitionConfig{} } func (m *RecognitionConfig) String() string { return proto.CompactTextString(m) } func (*RecognitionConfig) ProtoMessage() {} func (*RecognitionConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_cloud_speech_e29a84bc29d9b679, []int{4} + return fileDescriptor_cloud_speech_75fcd9f459a8e5e9, []int{4} } func (m *RecognitionConfig) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RecognitionConfig.Unmarshal(m, b) @@ -610,6 +621,13 @@ func (m *RecognitionConfig) GetSampleRateHertz() int32 { return 0 } +func (m *RecognitionConfig) GetEnableSeparateRecognitionPerChannel() bool { + if m != nil { + return m.EnableSeparateRecognitionPerChannel + } + return false +} + func (m *RecognitionConfig) GetLanguageCode() string { if m != nil { return m.LanguageCode @@ -685,7 +703,7 @@ func (m *SpeechContext) Reset() { *m = SpeechContext{} } func (m *SpeechContext) String() string { return proto.CompactTextString(m) } func (*SpeechContext) ProtoMessage() {} func (*SpeechContext) Descriptor() ([]byte, []int) { - return fileDescriptor_cloud_speech_e29a84bc29d9b679, []int{5} + return fileDescriptor_cloud_speech_75fcd9f459a8e5e9, []int{5} } func (m *SpeechContext) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SpeechContext.Unmarshal(m, b) @@ -733,7 +751,7 @@ func (m *RecognitionAudio) Reset() { *m = RecognitionAudio{} } func (m *RecognitionAudio) String() string { return proto.CompactTextString(m) } func (*RecognitionAudio) ProtoMessage() {} func (*RecognitionAudio) Descriptor() ([]byte, []int) { - return fileDescriptor_cloud_speech_e29a84bc29d9b679, []int{6} + return fileDescriptor_cloud_speech_75fcd9f459a8e5e9, []int{6} } func (m *RecognitionAudio) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RecognitionAudio.Unmarshal(m, b) @@ -872,7 +890,7 @@ func (m *RecognizeResponse) Reset() { *m = RecognizeResponse{} } func (m *RecognizeResponse) String() string { return proto.CompactTextString(m) } func (*RecognizeResponse) ProtoMessage() {} func (*RecognizeResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_cloud_speech_e29a84bc29d9b679, []int{7} + return fileDescriptor_cloud_speech_75fcd9f459a8e5e9, []int{7} } func (m *RecognizeResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RecognizeResponse.Unmarshal(m, b) @@ -917,7 +935,7 @@ func (m *LongRunningRecognizeResponse) Reset() { *m = LongRunningRecogni func (m *LongRunningRecognizeResponse) String() string { return proto.CompactTextString(m) } func (*LongRunningRecognizeResponse) ProtoMessage() {} func (*LongRunningRecognizeResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_cloud_speech_e29a84bc29d9b679, []int{8} + return fileDescriptor_cloud_speech_75fcd9f459a8e5e9, []int{8} } func (m *LongRunningRecognizeResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_LongRunningRecognizeResponse.Unmarshal(m, b) @@ -964,7 +982,7 @@ func (m *LongRunningRecognizeMetadata) Reset() { *m = LongRunningRecogni func (m *LongRunningRecognizeMetadata) String() string { return proto.CompactTextString(m) } func (*LongRunningRecognizeMetadata) ProtoMessage() {} func (*LongRunningRecognizeMetadata) Descriptor() ([]byte, []int) { - return fileDescriptor_cloud_speech_e29a84bc29d9b679, []int{9} + return fileDescriptor_cloud_speech_75fcd9f459a8e5e9, []int{9} } func (m *LongRunningRecognizeMetadata) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_LongRunningRecognizeMetadata.Unmarshal(m, b) @@ -1074,7 +1092,7 @@ func (m *StreamingRecognizeResponse) Reset() { *m = StreamingRecognizeRe func (m *StreamingRecognizeResponse) String() string { return proto.CompactTextString(m) } func (*StreamingRecognizeResponse) ProtoMessage() {} func (*StreamingRecognizeResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_cloud_speech_e29a84bc29d9b679, []int{10} + return fileDescriptor_cloud_speech_75fcd9f459a8e5e9, []int{10} } func (m *StreamingRecognizeResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_StreamingRecognizeResponse.Unmarshal(m, b) @@ -1134,7 +1152,11 @@ type StreamingRecognitionResult struct { // (completely unstable) to 1.0 (completely stable). // This field is only provided for interim results (`is_final=false`). // The default of 0.0 is a sentinel value indicating `stability` was not set. - Stability float32 `protobuf:"fixed32,3,opt,name=stability,proto3" json:"stability,omitempty"` + Stability float32 `protobuf:"fixed32,3,opt,name=stability,proto3" json:"stability,omitempty"` + // For multi-channel audio, this is the channel number corresponding to the + // recognized result for the audio from that channel. + // For audio_channel_count = N, its output values can range from '1' to 'N'. + ChannelTag int32 `protobuf:"varint,5,opt,name=channel_tag,json=channelTag,proto3" json:"channel_tag,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1144,7 +1166,7 @@ func (m *StreamingRecognitionResult) Reset() { *m = StreamingRecognition func (m *StreamingRecognitionResult) String() string { return proto.CompactTextString(m) } func (*StreamingRecognitionResult) ProtoMessage() {} func (*StreamingRecognitionResult) Descriptor() ([]byte, []int) { - return fileDescriptor_cloud_speech_e29a84bc29d9b679, []int{11} + return fileDescriptor_cloud_speech_75fcd9f459a8e5e9, []int{11} } func (m *StreamingRecognitionResult) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_StreamingRecognitionResult.Unmarshal(m, b) @@ -1185,23 +1207,34 @@ func (m *StreamingRecognitionResult) GetStability() float32 { return 0 } +func (m *StreamingRecognitionResult) GetChannelTag() int32 { + if m != nil { + return m.ChannelTag + } + return 0 +} + // A speech recognition result corresponding to a portion of the audio. type SpeechRecognitionResult struct { // Output only. May contain one or more recognition hypotheses (up to the // maximum specified in `max_alternatives`). // These alternatives are ordered in terms of accuracy, with the top (first) // alternative being the most probable, as ranked by the recognizer. - Alternatives []*SpeechRecognitionAlternative `protobuf:"bytes,1,rep,name=alternatives,proto3" json:"alternatives,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Alternatives []*SpeechRecognitionAlternative `protobuf:"bytes,1,rep,name=alternatives,proto3" json:"alternatives,omitempty"` + // For multi-channel audio, this is the channel number corresponding to the + // recognized result for the audio from that channel. + // For audio_channel_count = N, its output values can range from '1' to 'N'. + ChannelTag int32 `protobuf:"varint,2,opt,name=channel_tag,json=channelTag,proto3" json:"channel_tag,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *SpeechRecognitionResult) Reset() { *m = SpeechRecognitionResult{} } func (m *SpeechRecognitionResult) String() string { return proto.CompactTextString(m) } func (*SpeechRecognitionResult) ProtoMessage() {} func (*SpeechRecognitionResult) Descriptor() ([]byte, []int) { - return fileDescriptor_cloud_speech_e29a84bc29d9b679, []int{12} + return fileDescriptor_cloud_speech_75fcd9f459a8e5e9, []int{12} } func (m *SpeechRecognitionResult) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SpeechRecognitionResult.Unmarshal(m, b) @@ -1228,6 +1261,13 @@ func (m *SpeechRecognitionResult) GetAlternatives() []*SpeechRecognitionAlternat return nil } +func (m *SpeechRecognitionResult) GetChannelTag() int32 { + if m != nil { + return m.ChannelTag + } + return 0 +} + // Alternative hypotheses (a.k.a. n-best list). type SpeechRecognitionAlternative struct { // Output only. Transcript text representing the words that the user spoke. @@ -1241,6 +1281,8 @@ type SpeechRecognitionAlternative struct { // The default of 0.0 is a sentinel value indicating `confidence` was not set. Confidence float32 `protobuf:"fixed32,2,opt,name=confidence,proto3" json:"confidence,omitempty"` // Output only. A list of word-specific information for each recognized word. + // Note: When `enable_speaker_diarization` is true, you will see all the words + // from the beginning of the audio. Words []*WordInfo `protobuf:"bytes,3,rep,name=words,proto3" json:"words,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -1251,7 +1293,7 @@ func (m *SpeechRecognitionAlternative) Reset() { *m = SpeechRecognitionA func (m *SpeechRecognitionAlternative) String() string { return proto.CompactTextString(m) } func (*SpeechRecognitionAlternative) ProtoMessage() {} func (*SpeechRecognitionAlternative) Descriptor() ([]byte, []int) { - return fileDescriptor_cloud_speech_e29a84bc29d9b679, []int{13} + return fileDescriptor_cloud_speech_75fcd9f459a8e5e9, []int{13} } func (m *SpeechRecognitionAlternative) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SpeechRecognitionAlternative.Unmarshal(m, b) @@ -1319,7 +1361,7 @@ func (m *WordInfo) Reset() { *m = WordInfo{} } func (m *WordInfo) String() string { return proto.CompactTextString(m) } func (*WordInfo) ProtoMessage() {} func (*WordInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_cloud_speech_e29a84bc29d9b679, []int{14} + return fileDescriptor_cloud_speech_75fcd9f459a8e5e9, []int{14} } func (m *WordInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_WordInfo.Unmarshal(m, b) @@ -1568,96 +1610,101 @@ var _Speech_serviceDesc = grpc.ServiceDesc{ } func init() { - proto.RegisterFile("google/cloud/speech/v1/cloud_speech.proto", fileDescriptor_cloud_speech_e29a84bc29d9b679) + proto.RegisterFile("google/cloud/speech/v1/cloud_speech.proto", fileDescriptor_cloud_speech_75fcd9f459a8e5e9) } -var fileDescriptor_cloud_speech_e29a84bc29d9b679 = []byte{ - // 1392 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x57, 0x4f, 0x73, 0xdb, 0x44, - 0x14, 0x8f, 0xe2, 0x38, 0x7f, 0x5e, 0xfe, 0x39, 0x4b, 0x68, 0x15, 0x37, 0xb4, 0x41, 0xa5, 0x43, - 0xd2, 0x83, 0x4d, 0xd2, 0x4e, 0x0b, 0x85, 0x61, 0x70, 0x1c, 0x25, 0xf1, 0x4c, 0xe2, 0x64, 0x36, - 0x0e, 0x29, 0x1c, 0xd8, 0xd9, 0xc8, 0x6b, 0x47, 0x33, 0xf6, 0x4a, 0x68, 0x57, 0xa1, 0xe9, 0xad, - 0x5c, 0x99, 0xe1, 0xc2, 0xd0, 0x33, 0x1c, 0x39, 0x71, 0xe0, 0xc2, 0x67, 0xe0, 0x08, 0x5f, 0x81, - 0x0f, 0xc1, 0x91, 0xd9, 0x5d, 0xc9, 0xb1, 0x9d, 0x38, 0x4d, 0x67, 0xca, 0x0c, 0x37, 0xed, 0xef, - 0xfd, 0xde, 0xd3, 0x4f, 0x4f, 0xef, 0x8f, 0x04, 0x2b, 0xcd, 0x20, 0x68, 0xb6, 0x58, 0xd1, 0x6b, - 0x05, 0x71, 0xbd, 0x28, 0x42, 0xc6, 0xbc, 0x93, 0xe2, 0xe9, 0xaa, 0x39, 0x13, 0x73, 0x2e, 0x84, - 0x51, 0x20, 0x03, 0x74, 0xc3, 0x50, 0x0b, 0xda, 0x54, 0x48, 0x4c, 0xa7, 0xab, 0xf9, 0xc5, 0x24, - 0x04, 0x0d, 0xfd, 0x22, 0xe5, 0x3c, 0x90, 0x54, 0xfa, 0x01, 0x17, 0xc6, 0x2b, 0x7f, 0x37, 0xb1, - 0xb6, 0x02, 0xde, 0x8c, 0x62, 0xce, 0x7d, 0xde, 0x2c, 0x06, 0x21, 0x8b, 0x7a, 0x48, 0x0b, 0x09, - 0x49, 0x9f, 0x8e, 0xe3, 0x46, 0x91, 0xf2, 0xb3, 0xc4, 0x74, 0xbb, 0xdf, 0x54, 0x8f, 0x8d, 0x6f, - 0x62, 0xbf, 0xd5, 0x6f, 0x67, 0xed, 0x50, 0xa6, 0xce, 0x77, 0xfa, 0x8d, 0xd2, 0x6f, 0x33, 0x21, - 0x69, 0x3b, 0x4c, 0x08, 0x37, 0x13, 0x42, 0x14, 0x7a, 0x45, 0x21, 0xa9, 0x8c, 0x13, 0x45, 0xce, - 0x8f, 0x16, 0xe4, 0x30, 0xf3, 0x82, 0x26, 0xf7, 0x9f, 0x33, 0xcc, 0xbe, 0x8e, 0x99, 0x90, 0xa8, - 0x04, 0xa3, 0x5e, 0xc0, 0x1b, 0x7e, 0xd3, 0xb6, 0x96, 0xac, 0xe5, 0xc9, 0xb5, 0x95, 0xc2, 0xe5, - 0x29, 0x29, 0x24, 0x9e, 0x4a, 0x66, 0x59, 0x3b, 0xe0, 0xc4, 0x11, 0x7d, 0x0a, 0x59, 0x1a, 0xd7, - 0xfd, 0xc0, 0x1e, 0xd6, 0x11, 0x96, 0xaf, 0x11, 0xa1, 0xa4, 0xf8, 0xd8, 0xb8, 0x39, 0x3f, 0x59, - 0x70, 0x6b, 0x27, 0xe0, 0x4d, 0x6c, 0x52, 0xf9, 0x7f, 0x94, 0xf8, 0xbb, 0x05, 0x0b, 0x07, 0x32, - 0x62, 0xb4, 0x7d, 0x99, 0x40, 0x02, 0x39, 0x91, 0x1a, 0x49, 0x8f, 0xd4, 0xb5, 0x41, 0x37, 0xea, - 0x0f, 0x76, 0xae, 0x79, 0x7b, 0x08, 0xcf, 0x76, 0xa2, 0x19, 0x08, 0xdd, 0x83, 0x69, 0xad, 0x43, - 0x05, 0x97, 0x8c, 0x4b, 0xfd, 0x18, 0x53, 0xdb, 0x43, 0x78, 0x4a, 0xc3, 0x65, 0x83, 0xae, 0xbf, - 0x05, 0x73, 0xe7, 0x3a, 0x22, 0x23, 0xce, 0xf9, 0xcd, 0x82, 0xfc, 0xe0, 0xbb, 0xbd, 0x89, 0xe4, - 0xae, 0x40, 0x4e, 0xf8, 0xbc, 0xd9, 0x62, 0x24, 0x96, 0x92, 0x45, 0x94, 0x7b, 0x4c, 0x0b, 0x1c, - 0xc7, 0xb3, 0x06, 0x3f, 0x4c, 0x61, 0xf4, 0x3e, 0xcc, 0xfa, 0x5c, 0xb2, 0xc8, 0x6f, 0x93, 0x88, - 0x89, 0xb8, 0x25, 0x85, 0x9d, 0xd1, 0xcc, 0x99, 0x04, 0xc6, 0x06, 0x75, 0x7e, 0xce, 0xc2, 0xdc, - 0x45, 0xb1, 0x07, 0x30, 0xce, 0xb8, 0x17, 0xd4, 0x7d, 0x6e, 0xe4, 0xce, 0xac, 0x3d, 0xbe, 0xb6, - 0xdc, 0x82, 0x7e, 0xa1, 0x6e, 0xe2, 0x8e, 0x3b, 0x81, 0xd0, 0x7d, 0x98, 0x13, 0xb4, 0x1d, 0xb6, - 0x18, 0x89, 0xa8, 0x64, 0xe4, 0x84, 0x45, 0xf2, 0xb9, 0xd6, 0x9f, 0xc5, 0xb3, 0xc6, 0x80, 0xa9, - 0x64, 0xdb, 0x0a, 0x46, 0x77, 0x61, 0xba, 0x45, 0x79, 0x33, 0xa6, 0x4d, 0x46, 0xbc, 0xa0, 0xce, - 0xb4, 0xfa, 0x09, 0x3c, 0x95, 0x82, 0xe5, 0xa0, 0xce, 0x54, 0x3e, 0xda, 0xf4, 0x19, 0xa1, 0x2d, - 0xc9, 0x22, 0x4e, 0xa5, 0x7f, 0xca, 0x84, 0x3d, 0x62, 0xe2, 0xb5, 0xe9, 0xb3, 0x52, 0x17, 0xac, - 0xa8, 0x61, 0x14, 0x34, 0x28, 0xf7, 0xe5, 0x19, 0x69, 0xf8, 0xca, 0x64, 0x67, 0x4d, 0xea, 0x3a, - 0xf8, 0xa6, 0x86, 0x51, 0x15, 0x66, 0xcd, 0xd3, 0x99, 0x22, 0x78, 0x26, 0x85, 0x3d, 0xba, 0x94, - 0x59, 0x9e, 0x5c, 0xbb, 0x37, 0xb0, 0xc6, 0xf4, 0x55, 0xd9, 0xb0, 0xf1, 0x8c, 0xe8, 0x3e, 0x0a, - 0xf4, 0x18, 0x6c, 0xc6, 0xe9, 0x71, 0x8b, 0x91, 0x6f, 0x82, 0xa8, 0x4e, 0xd4, 0x14, 0x21, 0x41, - 0xa3, 0x21, 0x98, 0x14, 0xf6, 0xb8, 0x96, 0xf0, 0xb6, 0xb1, 0x1f, 0x05, 0x51, 0xbd, 0xe6, 0xb7, - 0xd9, 0x9e, 0x31, 0xa2, 0xcf, 0x60, 0x31, 0x71, 0xa4, 0xb1, 0x0c, 0xda, 0x54, 0xfa, 0x1e, 0x09, - 0x63, 0xee, 0xc9, 0x58, 0xcf, 0x30, 0x7b, 0x52, 0x3b, 0xe7, 0x0d, 0xa7, 0x94, 0x52, 0xf6, 0xcf, - 0x19, 0x68, 0x1e, 0xb2, 0xed, 0xa0, 0xce, 0x5a, 0xf6, 0xb4, 0xce, 0x9e, 0x39, 0xa0, 0x77, 0x61, - 0x2a, 0x16, 0x8c, 0x30, 0x7e, 0xa2, 0x4a, 0xa5, 0x6e, 0xcf, 0xe8, 0x38, 0x93, 0xb1, 0x60, 0x6e, - 0x02, 0x39, 0xdf, 0x59, 0x30, 0xdd, 0xf3, 0x1a, 0x91, 0x0d, 0xf3, 0x6e, 0xb5, 0xbc, 0xb7, 0x51, - 0xa9, 0x6e, 0x91, 0xc3, 0xea, 0xc1, 0xbe, 0x5b, 0xae, 0x6c, 0x56, 0xdc, 0x8d, 0xdc, 0x10, 0x9a, - 0x82, 0xf1, 0x9d, 0x4a, 0xd5, 0x2d, 0xe1, 0xd5, 0x47, 0x39, 0x0b, 0x8d, 0xc3, 0xc8, 0xe6, 0x4e, - 0xa9, 0x9c, 0x1b, 0x46, 0x13, 0x90, 0xdd, 0x3d, 0xdc, 0x29, 0x1d, 0xe5, 0x32, 0x68, 0x0c, 0x32, - 0xa5, 0x5d, 0x9c, 0x1b, 0x41, 0x00, 0xa3, 0xa5, 0x5d, 0x4c, 0x8e, 0xd6, 0x73, 0x59, 0xe5, 0xb7, - 0xb7, 0xb5, 0x45, 0xf6, 0xf6, 0x0f, 0x0f, 0x72, 0xa3, 0x28, 0x0f, 0x37, 0x0e, 0xf6, 0x5d, 0xf7, - 0x29, 0x39, 0xaa, 0xd4, 0xb6, 0xc9, 0xb6, 0x5b, 0xda, 0x70, 0x31, 0x59, 0xff, 0xa2, 0xe6, 0xe6, - 0xc6, 0x9c, 0x15, 0x98, 0xee, 0x49, 0x31, 0xb2, 0x61, 0x2c, 0x3c, 0x89, 0xa8, 0x60, 0xc2, 0xb6, - 0x96, 0x32, 0xcb, 0x13, 0x38, 0x3d, 0x3a, 0xb8, 0x33, 0x79, 0x3b, 0xa3, 0x05, 0xe5, 0x61, 0x2c, - 0x6d, 0x67, 0x2b, 0x69, 0xe7, 0x14, 0x40, 0x08, 0x32, 0x71, 0xe4, 0xeb, 0x2a, 0x9c, 0xd8, 0x1e, - 0xc2, 0xea, 0xb0, 0x3e, 0x03, 0xa6, 0xdb, 0x89, 0x08, 0xe2, 0xc8, 0x63, 0xce, 0x57, 0x9d, 0x0e, - 0x51, 0x93, 0x48, 0x84, 0x01, 0x17, 0x0c, 0x55, 0x60, 0x2c, 0x6d, 0xac, 0x61, 0x5d, 0x1d, 0xc5, - 0xab, 0xab, 0xa3, 0x4b, 0x95, 0x69, 0x3d, 0x9c, 0xfa, 0x3b, 0x3e, 0x2c, 0x5e, 0x3e, 0x95, 0xdf, - 0xfc, 0xad, 0xfe, 0xb0, 0x2e, 0xbf, 0xd7, 0x2e, 0x93, 0xb4, 0x4e, 0x25, 0x4d, 0xfa, 0xa4, 0x19, - 0x31, 0x21, 0x48, 0xc8, 0x22, 0x2f, 0x4d, 0x5a, 0x56, 0xf7, 0x89, 0xc6, 0xf7, 0x0d, 0x8c, 0x3e, - 0x02, 0x10, 0x92, 0x46, 0x52, 0x57, 0x74, 0x32, 0xef, 0xf3, 0xa9, 0xb2, 0x74, 0x69, 0x16, 0x6a, - 0xe9, 0xd2, 0xc4, 0x13, 0x9a, 0xad, 0xce, 0x68, 0x03, 0x72, 0x2d, 0x2a, 0x24, 0x89, 0xc3, 0xba, - 0x9a, 0x04, 0x3a, 0x40, 0xe6, 0x95, 0x01, 0x66, 0x94, 0xcf, 0xa1, 0x76, 0x51, 0xa0, 0xf3, 0xe7, - 0xf0, 0xc5, 0x81, 0xdb, 0x95, 0xb6, 0x65, 0xc8, 0xb2, 0x28, 0x0a, 0xa2, 0x64, 0xde, 0xa2, 0x34, - 0x72, 0x14, 0x7a, 0x85, 0x03, 0xbd, 0xae, 0xb1, 0x21, 0xa0, 0x9d, 0xfe, 0x04, 0xbf, 0xd6, 0x36, - 0xe9, 0xcb, 0x31, 0xe2, 0x30, 0x97, 0xcc, 0x0f, 0x76, 0xca, 0xb8, 0x24, 0xf2, 0x2c, 0x64, 0x7a, - 0x2c, 0xcd, 0xac, 0xad, 0x5f, 0x37, 0xee, 0xf9, 0x63, 0x24, 0xef, 0xd4, 0x55, 0xa1, 0x6a, 0x67, - 0x21, 0xc3, 0xc9, 0x70, 0xea, 0x00, 0xce, 0x0e, 0xcc, 0xf6, 0x71, 0xd0, 0x22, 0xd8, 0xaa, 0x99, - 0xca, 0xdb, 0xc4, 0xfd, 0xdc, 0xad, 0xd6, 0xfa, 0x1a, 0xf6, 0x16, 0xdc, 0x74, 0xab, 0x1b, 0x64, - 0x6f, 0x93, 0x1c, 0x54, 0xaa, 0x5b, 0x3b, 0x2e, 0x39, 0xac, 0xd5, 0x5c, 0x5c, 0xaa, 0x96, 0xdd, - 0x9c, 0xe5, 0xfc, 0x3a, 0x60, 0x8b, 0x99, 0xa7, 0x44, 0x4f, 0x61, 0xaa, 0x67, 0xdc, 0x5a, 0x3a, - 0x5f, 0x0f, 0xaf, 0x5d, 0x90, 0x5d, 0x43, 0x19, 0xf7, 0x44, 0x42, 0x0b, 0x30, 0xee, 0x0b, 0xd2, - 0xf0, 0x39, 0x6d, 0x25, 0x4b, 0x6d, 0xcc, 0x17, 0x9b, 0xea, 0x88, 0x16, 0x41, 0xd5, 0xce, 0xb1, - 0xdf, 0xf2, 0xe5, 0x99, 0xae, 0x93, 0x61, 0x7c, 0x0e, 0x38, 0x02, 0x6e, 0x0e, 0xa8, 0xfb, 0xff, - 0x4e, 0xad, 0xf3, 0xd2, 0x82, 0xc5, 0xab, 0xe8, 0xe8, 0x36, 0x80, 0x8c, 0x28, 0x17, 0x5e, 0xe4, - 0x87, 0xa6, 0x85, 0x26, 0x70, 0x17, 0xa2, 0xec, 0x7a, 0xab, 0xd7, 0x59, 0xba, 0xc5, 0x87, 0x71, - 0x17, 0x82, 0x1e, 0x41, 0x56, 0xad, 0x0b, 0xb5, 0xb6, 0x95, 0xe6, 0xa5, 0x41, 0x9a, 0xd5, 0xd2, - 0xa8, 0xf0, 0x46, 0x80, 0x0d, 0xdd, 0xf9, 0xde, 0x82, 0xf1, 0x14, 0x43, 0x1f, 0xf6, 0xb4, 0xa8, - 0xe9, 0x83, 0x85, 0x0b, 0x1d, 0xb6, 0x91, 0x7c, 0x14, 0x77, 0x77, 0xe8, 0x43, 0xf5, 0x01, 0x50, - 0xef, 0x6e, 0xed, 0x2b, 0xfc, 0xc6, 0x18, 0xd7, 0x8b, 0x0b, 0x21, 0x18, 0x51, 0x2a, 0x92, 0x65, - 0xad, 0xaf, 0xd7, 0x7e, 0xc9, 0xc0, 0xa8, 0xc9, 0x14, 0x7a, 0x61, 0xc1, 0x44, 0xa7, 0xc0, 0xd1, - 0xab, 0xbe, 0x0d, 0x3b, 0x9f, 0x7d, 0xf9, 0x95, 0x6b, 0x30, 0x4d, 0xb7, 0x38, 0x77, 0xbe, 0xfd, - 0xeb, 0xef, 0x1f, 0x86, 0x17, 0x9c, 0x79, 0xf5, 0x1f, 0x62, 0x88, 0x4f, 0xa2, 0x94, 0xf5, 0xc4, - 0xba, 0x8f, 0x5e, 0x5a, 0x30, 0x7f, 0xd9, 0x04, 0x44, 0x0f, 0x06, 0xdd, 0xe4, 0x8a, 0x2f, 0xe6, - 0xfc, 0x3b, 0xa9, 0x53, 0xd7, 0x1f, 0x4a, 0x61, 0x2f, 0xfd, 0x43, 0x71, 0xee, 0x6b, 0x35, 0xef, - 0x39, 0x77, 0xba, 0xd4, 0x74, 0x31, 0x7b, 0x84, 0xbd, 0xb0, 0x00, 0x5d, 0x1c, 0x03, 0x68, 0xf5, - 0x75, 0x46, 0x86, 0x11, 0xb5, 0xf6, 0xfa, 0x53, 0xc6, 0x19, 0x5a, 0xb6, 0x3e, 0xb0, 0xd6, 0x5b, - 0x90, 0xf7, 0x82, 0xf6, 0x00, 0xf7, 0xf5, 0x49, 0xf3, 0x1a, 0xf7, 0xd5, 0xfb, 0xdf, 0xb7, 0xbe, - 0xfc, 0x24, 0xa1, 0x35, 0x03, 0xf5, 0x51, 0x56, 0x08, 0xa2, 0x66, 0xb1, 0xc9, 0xb8, 0xae, 0x8e, - 0xa2, 0x31, 0xd1, 0xd0, 0x17, 0xfd, 0x3f, 0x87, 0x1f, 0x9b, 0xab, 0x7f, 0x2c, 0xeb, 0x78, 0x54, - 0x73, 0x1f, 0xfc, 0x1b, 0x00, 0x00, 0xff, 0xff, 0x6d, 0x85, 0xf1, 0x69, 0x47, 0x0e, 0x00, 0x00, +var fileDescriptor_cloud_speech_75fcd9f459a8e5e9 = []byte{ + // 1459 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x57, 0x4f, 0x6f, 0xdb, 0x46, + 0x16, 0x37, 0x25, 0xcb, 0x7f, 0x9e, 0xff, 0xc9, 0xb3, 0xde, 0x84, 0x56, 0xbc, 0xb1, 0x97, 0xd9, + 0x20, 0x76, 0x0e, 0xd2, 0xda, 0x09, 0x92, 0xdd, 0xec, 0x62, 0xb1, 0xb2, 0x4c, 0xdb, 0x02, 0x6c, + 0x59, 0x18, 0xc9, 0xeb, 0xec, 0x1e, 0x76, 0x30, 0xa6, 0x46, 0x34, 0x01, 0x69, 0xc8, 0x72, 0x86, + 0x6e, 0x9c, 0x5b, 0x7a, 0x2d, 0xd0, 0x4b, 0xdb, 0x9c, 0x7b, 0xed, 0xb9, 0x97, 0x7e, 0x86, 0x9e, + 0x8a, 0xf6, 0x2b, 0xf4, 0x3b, 0xb4, 0xc7, 0x82, 0x33, 0xa4, 0x2c, 0xc9, 0x96, 0xe3, 0x00, 0x29, + 0xd0, 0x1b, 0xe7, 0xbd, 0xdf, 0x7b, 0xfc, 0xcd, 0xe3, 0x7b, 0xbf, 0x19, 0xc2, 0x86, 0xeb, 0xfb, + 0x6e, 0x87, 0x95, 0x9c, 0x8e, 0x1f, 0xb5, 0x4a, 0x22, 0x60, 0xcc, 0x39, 0x2b, 0x9d, 0x6f, 0xea, + 0x35, 0xd1, 0xeb, 0x62, 0x10, 0xfa, 0xd2, 0x47, 0x77, 0x34, 0xb4, 0xa8, 0x5c, 0xc5, 0xc4, 0x75, + 0xbe, 0x59, 0x58, 0x49, 0x52, 0xd0, 0xc0, 0x2b, 0x51, 0xce, 0x7d, 0x49, 0xa5, 0xe7, 0x73, 0xa1, + 0xa3, 0x0a, 0x0f, 0x12, 0x6f, 0xc7, 0xe7, 0x6e, 0x18, 0x71, 0xee, 0x71, 0xb7, 0xe4, 0x07, 0x2c, + 0x1c, 0x00, 0x2d, 0x27, 0x20, 0xb5, 0x3a, 0x8d, 0xda, 0x25, 0xca, 0x2f, 0x12, 0xd7, 0xfd, 0x61, + 0x57, 0x2b, 0xd2, 0xb1, 0x89, 0xff, 0xde, 0xb0, 0x9f, 0x75, 0x03, 0x99, 0x06, 0xaf, 0x0e, 0x3b, + 0xa5, 0xd7, 0x65, 0x42, 0xd2, 0x6e, 0x90, 0x00, 0xee, 0x26, 0x80, 0x30, 0x70, 0x4a, 0x42, 0x52, + 0x19, 0x25, 0x8c, 0xac, 0x2f, 0x0d, 0xc8, 0x63, 0xe6, 0xf8, 0x2e, 0xf7, 0x5e, 0x33, 0xcc, 0x3e, + 0x8a, 0x98, 0x90, 0xa8, 0x0c, 0x13, 0x8e, 0xcf, 0xdb, 0x9e, 0x6b, 0x1a, 0x6b, 0xc6, 0xfa, 0xcc, + 0xd6, 0x46, 0xf1, 0xfa, 0x92, 0x14, 0x93, 0xc8, 0x98, 0x66, 0x45, 0x05, 0xe0, 0x24, 0x10, 0xfd, + 0x0b, 0x72, 0x34, 0x6a, 0x79, 0xbe, 0x99, 0x51, 0x19, 0xd6, 0x6f, 0x91, 0xa1, 0x1c, 0xe3, 0xb1, + 0x0e, 0xb3, 0xbe, 0x32, 0xe0, 0xde, 0x81, 0xcf, 0x5d, 0xac, 0x4b, 0xf9, 0x7b, 0xa4, 0xf8, 0xad, + 0x01, 0xcb, 0x0d, 0x19, 0x32, 0xda, 0xbd, 0x8e, 0x20, 0x81, 0xbc, 0x48, 0x9d, 0x64, 0x80, 0xea, + 0xd6, 0xa8, 0x17, 0x0d, 0x27, 0xbb, 0xe4, 0xbc, 0x3f, 0x86, 0x17, 0x7a, 0xd9, 0xb4, 0x09, 0x3d, + 0x84, 0x39, 0xc5, 0x23, 0x4e, 0x2e, 0x19, 0x97, 0x6a, 0x1b, 0xb3, 0xfb, 0x63, 0x78, 0x56, 0x99, + 0x2b, 0xda, 0xba, 0xfd, 0x07, 0x58, 0xbc, 0xe4, 0x11, 0x6a, 0x72, 0xd6, 0x37, 0x06, 0x14, 0x46, + 0xbf, 0xed, 0x43, 0x14, 0x77, 0x03, 0xf2, 0xc2, 0xe3, 0x6e, 0x87, 0x91, 0x48, 0x4a, 0x16, 0x52, + 0xee, 0x30, 0x45, 0x70, 0x0a, 0x2f, 0x68, 0xfb, 0x71, 0x6a, 0x46, 0x8f, 0x60, 0xc1, 0xe3, 0x92, + 0x85, 0x5e, 0x97, 0x84, 0x4c, 0x44, 0x1d, 0x29, 0xcc, 0xac, 0x42, 0xce, 0x27, 0x66, 0xac, 0xad, + 0xd6, 0xcf, 0x39, 0x58, 0xbc, 0x4a, 0xb6, 0x01, 0x53, 0x8c, 0x3b, 0x7e, 0xcb, 0xe3, 0x9a, 0xee, + 0xfc, 0xd6, 0xf3, 0x5b, 0xd3, 0x2d, 0xaa, 0x0f, 0x6a, 0x27, 0xe1, 0xb8, 0x97, 0x08, 0x3d, 0x86, + 0x45, 0x41, 0xbb, 0x41, 0x87, 0x91, 0x90, 0x4a, 0x46, 0xce, 0x58, 0x28, 0x5f, 0x2b, 0xfe, 0x39, + 0xbc, 0xa0, 0x1d, 0x98, 0x4a, 0xb6, 0x1f, 0x9b, 0x51, 0x13, 0x1e, 0x31, 0x4e, 0x4f, 0x3b, 0x8c, + 0x08, 0x16, 0x50, 0x85, 0x0f, 0x2f, 0x5f, 0x44, 0x02, 0x16, 0x12, 0xe7, 0x8c, 0x72, 0xce, 0x3a, + 0xe6, 0xac, 0xda, 0xd7, 0x03, 0x0d, 0x6f, 0x24, 0xe8, 0x3e, 0x56, 0x75, 0x16, 0x56, 0x34, 0x14, + 0x3d, 0x80, 0xb9, 0x0e, 0xe5, 0x6e, 0x44, 0x5d, 0x46, 0x1c, 0xbf, 0xc5, 0x54, 0x4d, 0xa6, 0xf1, + 0x6c, 0x6a, 0xac, 0xf8, 0x2d, 0x16, 0x57, 0xb9, 0x4b, 0x5f, 0x11, 0xda, 0x91, 0x2c, 0xe4, 0x54, + 0x7a, 0xe7, 0x4c, 0x98, 0xe3, 0x9a, 0x65, 0x97, 0xbe, 0x2a, 0xf7, 0x99, 0x63, 0x68, 0x10, 0xfa, + 0x6d, 0xca, 0x3d, 0x79, 0x41, 0xda, 0x5e, 0xec, 0x32, 0x73, 0xfa, 0x83, 0xf4, 0xec, 0xbb, 0xca, + 0x8c, 0x6a, 0xb0, 0xa0, 0x6b, 0xa6, 0x5b, 0xeb, 0x95, 0x14, 0xe6, 0xc4, 0x5a, 0x76, 0x7d, 0x66, + 0xeb, 0xe1, 0xc8, 0xce, 0x55, 0x4f, 0x15, 0x8d, 0xc6, 0xf3, 0xa2, 0x7f, 0x29, 0xd0, 0x73, 0x30, + 0x93, 0x02, 0x7d, 0xec, 0x87, 0x2d, 0x12, 0x6b, 0x13, 0xf1, 0xdb, 0x6d, 0xc1, 0xa4, 0x30, 0xa7, + 0x14, 0x85, 0x3f, 0x6a, 0xff, 0x89, 0x1f, 0xb6, 0x9a, 0x5e, 0x97, 0x1d, 0x69, 0x27, 0xfa, 0x37, + 0xac, 0x24, 0x81, 0x34, 0x92, 0x7e, 0x97, 0x4a, 0xcf, 0x21, 0x41, 0xc4, 0x1d, 0x19, 0x29, 0x65, + 0x34, 0x67, 0x54, 0x70, 0x41, 0x63, 0xca, 0x29, 0xa4, 0x7e, 0x89, 0x40, 0x4b, 0x90, 0xeb, 0xfa, + 0x2d, 0xd6, 0x31, 0xe7, 0x54, 0xf5, 0xf4, 0x02, 0xfd, 0x19, 0x66, 0x23, 0xc1, 0x08, 0xe3, 0x67, + 0x71, 0x03, 0xb6, 0xcc, 0x79, 0x95, 0x67, 0x26, 0x12, 0xcc, 0x4e, 0x4c, 0xd6, 0xa7, 0x06, 0xcc, + 0x0d, 0x34, 0x07, 0x32, 0x61, 0xc9, 0xae, 0x55, 0x8e, 0x76, 0xaa, 0xb5, 0x3d, 0x72, 0x5c, 0x6b, + 0xd4, 0xed, 0x4a, 0x75, 0xb7, 0x6a, 0xef, 0xe4, 0xc7, 0xd0, 0x2c, 0x4c, 0x1d, 0x54, 0x6b, 0x76, + 0x19, 0x6f, 0x3e, 0xcb, 0x1b, 0x68, 0x0a, 0xc6, 0x77, 0x0f, 0xca, 0x95, 0x7c, 0x06, 0x4d, 0x43, + 0xee, 0xf0, 0xf8, 0xa0, 0x7c, 0x92, 0xcf, 0xa2, 0x49, 0xc8, 0x96, 0x0f, 0x71, 0x7e, 0x1c, 0x01, + 0x4c, 0x94, 0x0f, 0x31, 0x39, 0xd9, 0xce, 0xe7, 0xe2, 0xb8, 0xa3, 0xbd, 0x3d, 0x72, 0x54, 0x3f, + 0x6e, 0xe4, 0x27, 0x50, 0x01, 0xee, 0x34, 0xea, 0xb6, 0xfd, 0x92, 0x9c, 0x54, 0x9b, 0xfb, 0x64, + 0xdf, 0x2e, 0xef, 0xd8, 0x98, 0x6c, 0xff, 0xb7, 0x69, 0xe7, 0x27, 0xad, 0x0d, 0x98, 0x1b, 0x28, + 0x31, 0x32, 0x61, 0x32, 0x38, 0x0b, 0xa9, 0x60, 0xc2, 0x34, 0xd6, 0xb2, 0xeb, 0xd3, 0x38, 0x5d, + 0x5a, 0xb8, 0xa7, 0xe7, 0x3d, 0xc1, 0x42, 0x05, 0x98, 0x4c, 0x45, 0xc2, 0x48, 0x44, 0x22, 0x35, + 0x20, 0x04, 0xd9, 0x28, 0xf4, 0x54, 0x6f, 0x4f, 0xef, 0x8f, 0xe1, 0x78, 0xb1, 0x3d, 0x0f, 0x5a, + 0x43, 0x88, 0xf0, 0xa3, 0xd0, 0x61, 0xd6, 0xff, 0x7b, 0x73, 0x17, 0xeb, 0x9b, 0x08, 0x7c, 0x2e, + 0x18, 0xaa, 0xc2, 0x64, 0x3a, 0xae, 0x19, 0xd5, 0x1d, 0xa5, 0x9b, 0xbb, 0xa3, 0x8f, 0x95, 0x1e, + 0x68, 0x9c, 0xc6, 0x5b, 0x1e, 0xac, 0x5c, 0xaf, 0xf5, 0x1f, 0xfe, 0x55, 0xdf, 0x19, 0xd7, 0xbf, + 0xeb, 0x90, 0x49, 0xda, 0xa2, 0x92, 0x26, 0x73, 0xe2, 0x86, 0x4c, 0x88, 0x78, 0x74, 0x9d, 0xb4, + 0x68, 0x39, 0x35, 0x27, 0xca, 0x5e, 0xd7, 0x66, 0xf4, 0x77, 0x00, 0x21, 0x69, 0x28, 0x55, 0x47, + 0x27, 0xa7, 0x48, 0x21, 0x65, 0x96, 0x1e, 0xc5, 0xc5, 0x66, 0x7a, 0x14, 0xe3, 0x69, 0x85, 0x8e, + 0xd7, 0x68, 0x07, 0xf2, 0x1d, 0x2a, 0x24, 0x89, 0x82, 0x56, 0xac, 0x17, 0x2a, 0x41, 0xf6, 0x9d, + 0x09, 0xe6, 0xe3, 0x98, 0x63, 0x15, 0x12, 0x1b, 0xad, 0x1f, 0x32, 0x57, 0x65, 0xbc, 0xaf, 0x6c, + 0xeb, 0x90, 0x63, 0x61, 0xe8, 0x87, 0x89, 0x8a, 0xa3, 0x34, 0x73, 0x18, 0x38, 0xc5, 0x86, 0xba, + 0x04, 0x60, 0x0d, 0x40, 0x07, 0xc3, 0x05, 0x7e, 0xaf, 0x33, 0x6a, 0xa8, 0xc6, 0x88, 0xc3, 0x62, + 0xa2, 0x1f, 0xec, 0x9c, 0x71, 0x49, 0xe4, 0x45, 0xc0, 0x94, 0x2c, 0xcd, 0x6f, 0x6d, 0xdf, 0x36, + 0xef, 0xe5, 0x36, 0x92, 0x6f, 0x6a, 0xc7, 0xa9, 0x9a, 0x17, 0x01, 0xc3, 0x89, 0x38, 0xf5, 0x0c, + 0xd6, 0x01, 0x2c, 0x0c, 0x61, 0xd0, 0x0a, 0x98, 0xf1, 0x30, 0x55, 0xf6, 0x89, 0xfd, 0x1f, 0xbb, + 0xd6, 0x1c, 0x1a, 0xd8, 0x7b, 0x70, 0xd7, 0xae, 0xed, 0x90, 0xa3, 0x5d, 0xd2, 0xa8, 0xd6, 0xf6, + 0x0e, 0x6c, 0x72, 0xdc, 0x6c, 0xda, 0xb8, 0x5c, 0xab, 0xd8, 0x79, 0xc3, 0xfa, 0x7e, 0xc4, 0xd9, + 0xa8, 0x77, 0x89, 0x5e, 0xc2, 0xec, 0x80, 0xdc, 0x1a, 0xaa, 0x5e, 0x4f, 0x6f, 0xdd, 0x90, 0x7d, + 0xa2, 0x8c, 0x07, 0x32, 0xa1, 0x65, 0x98, 0xf2, 0x04, 0x69, 0x7b, 0x9c, 0x76, 0x92, 0xa3, 0x72, + 0xd2, 0x13, 0xbb, 0xf1, 0x12, 0xad, 0x40, 0xdc, 0x3b, 0xa7, 0x5e, 0xc7, 0x93, 0x17, 0xaa, 0x4f, + 0x32, 0xf8, 0xd2, 0x80, 0x56, 0x61, 0x26, 0x39, 0x60, 0x88, 0xa4, 0xae, 0x52, 0xf5, 0x1c, 0x86, + 0xc4, 0xd4, 0xa4, 0xae, 0xf5, 0x85, 0x01, 0x77, 0x47, 0x4c, 0xc6, 0x6f, 0xb8, 0x9f, 0x21, 0x5a, + 0x99, 0x2b, 0xb4, 0xde, 0x1a, 0xb0, 0x72, 0x53, 0x3e, 0x74, 0x1f, 0x40, 0x86, 0x94, 0x0b, 0x27, + 0xf4, 0x02, 0x3d, 0x85, 0xd3, 0xb8, 0xcf, 0x12, 0xfb, 0xd5, 0x75, 0xa3, 0xc5, 0xd2, 0xeb, 0x45, + 0x06, 0xf7, 0x59, 0xd0, 0x33, 0xc8, 0xc5, 0x27, 0x4e, 0x7c, 0x9f, 0x88, 0x37, 0xb5, 0x36, 0x6a, + 0x53, 0xf1, 0xb9, 0x53, 0xe5, 0x6d, 0x1f, 0x6b, 0xb8, 0xf5, 0x99, 0x01, 0x53, 0xa9, 0x0d, 0xfd, + 0x6d, 0x60, 0xca, 0xf5, 0x28, 0x2d, 0x5f, 0x19, 0xd2, 0x9d, 0xe4, 0xb6, 0xde, 0x3f, 0xe4, 0x4f, + 0xe3, 0x9b, 0x49, 0xab, 0x5f, 0x1d, 0x6e, 0x88, 0x9b, 0x64, 0x5c, 0x9d, 0x7d, 0x08, 0xc1, 0x78, + 0xcc, 0x22, 0x39, 0xef, 0xd5, 0xf3, 0xd6, 0xd7, 0x59, 0x98, 0xd0, 0x95, 0x42, 0x6f, 0x0c, 0x98, + 0xee, 0xcd, 0x08, 0x7a, 0xd7, 0xa5, 0xb5, 0x77, 0x1f, 0x2d, 0x6c, 0xdc, 0x02, 0xa9, 0x07, 0xce, + 0x5a, 0xfd, 0xe4, 0xc7, 0x9f, 0x3e, 0xcf, 0x2c, 0x5b, 0x4b, 0xf1, 0x0f, 0x92, 0x06, 0xbe, 0x08, + 0x53, 0xd4, 0x0b, 0xe3, 0x31, 0x7a, 0x6b, 0xc0, 0xd2, 0x75, 0x22, 0x8a, 0x9e, 0x8c, 0x7a, 0xc9, + 0x0d, 0x57, 0xf9, 0xc2, 0x9f, 0xd2, 0xa0, 0xbe, 0x5f, 0xa7, 0xe2, 0x51, 0xfa, 0xeb, 0x64, 0x3d, + 0x56, 0x6c, 0xfe, 0x62, 0xad, 0xf6, 0xb1, 0xe9, 0x43, 0x0e, 0x10, 0x7b, 0x63, 0x00, 0xba, 0xaa, + 0x24, 0x68, 0xf3, 0x7d, 0x54, 0x47, 0x93, 0xda, 0x7a, 0x7f, 0xa1, 0xb2, 0xc6, 0xd6, 0x8d, 0xbf, + 0x1a, 0xdb, 0x1d, 0x28, 0x38, 0x7e, 0x77, 0x44, 0xf8, 0xf6, 0x8c, 0xfe, 0x8c, 0xf5, 0xf8, 0xfb, + 0xd7, 0x8d, 0xff, 0xfd, 0x33, 0x81, 0xb9, 0x7e, 0x7c, 0xaf, 0x2b, 0xfa, 0xa1, 0x5b, 0x72, 0x19, + 0x57, 0xdd, 0x51, 0xd2, 0x2e, 0x1a, 0x78, 0x62, 0xf8, 0xaf, 0xf5, 0x1f, 0xfa, 0xe9, 0x17, 0xc3, + 0x38, 0x9d, 0x50, 0xd8, 0x27, 0xbf, 0x06, 0x00, 0x00, 0xff, 0xff, 0xe8, 0x19, 0x0e, 0xdc, 0xe0, + 0x0e, 0x00, 0x00, } diff --git a/vendor/google.golang.org/genproto/googleapis/container/v1beta1/cluster_service.pb.go b/vendor/google.golang.org/genproto/googleapis/container/v1beta1/cluster_service.pb.go index 24f667229..9a2631a71 100644 --- a/vendor/google.golang.org/genproto/googleapis/container/v1beta1/cluster_service.pb.go +++ b/vendor/google.golang.org/genproto/googleapis/container/v1beta1/cluster_service.pb.go @@ -8,6 +8,7 @@ import fmt "fmt" import math "math" import empty "github.com/golang/protobuf/ptypes/empty" import _ "google.golang.org/genproto/googleapis/api/annotations" +import _ "google.golang.org/genproto/googleapis/iam/v1" import ( context "golang.org/x/net/context" @@ -56,7 +57,33 @@ func (x NodeTaint_Effect) String() string { return proto.EnumName(NodeTaint_Effect_name, int32(x)) } func (NodeTaint_Effect) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{1, 0} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{1, 0} +} + +// Istio auth mode, https://istio.io/docs/concepts/security/mutual-tls.html +type IstioConfig_IstioAuthMode int32 + +const ( + // auth not enabled + IstioConfig_AUTH_NONE IstioConfig_IstioAuthMode = 0 + // auth mutual TLS enabled + IstioConfig_AUTH_MUTUAL_TLS IstioConfig_IstioAuthMode = 1 +) + +var IstioConfig_IstioAuthMode_name = map[int32]string{ + 0: "AUTH_NONE", + 1: "AUTH_MUTUAL_TLS", +} +var IstioConfig_IstioAuthMode_value = map[string]int32{ + "AUTH_NONE": 0, + "AUTH_MUTUAL_TLS": 1, +} + +func (x IstioConfig_IstioAuthMode) String() string { + return proto.EnumName(IstioConfig_IstioAuthMode_name, int32(x)) +} +func (IstioConfig_IstioAuthMode) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{10, 0} } // Allowed Network Policy providers. @@ -82,7 +109,7 @@ func (x NetworkPolicy_Provider) String() string { return proto.EnumName(NetworkPolicy_Provider_name, int32(x)) } func (NetworkPolicy_Provider) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{10, 0} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{14, 0} } // The current status of the cluster. @@ -105,6 +132,9 @@ const ( // The ERROR state indicates the cluster may be unusable. Details // can be found in the `statusMessage` field. Cluster_ERROR Cluster_Status = 5 + // The DEGRADED state indicates the cluster requires user action to restore + // full functionality. Details can be found in the `statusMessage` field. + Cluster_DEGRADED Cluster_Status = 6 ) var Cluster_Status_name = map[int32]string{ @@ -114,6 +144,7 @@ var Cluster_Status_name = map[int32]string{ 3: "RECONCILING", 4: "STOPPING", 5: "ERROR", + 6: "DEGRADED", } var Cluster_Status_value = map[string]int32{ "STATUS_UNSPECIFIED": 0, @@ -122,13 +153,14 @@ var Cluster_Status_value = map[string]int32{ "RECONCILING": 3, "STOPPING": 4, "ERROR": 5, + "DEGRADED": 6, } func (x Cluster_Status) String() string { return proto.EnumName(Cluster_Status_name, int32(x)) } func (Cluster_Status) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{13, 0} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{18, 0} } // Current status of the operation. @@ -166,7 +198,7 @@ func (x Operation_Status) String() string { return proto.EnumName(Operation_Status_name, int32(x)) } func (Operation_Status) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{15, 0} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{20, 0} } // Operation type. @@ -252,7 +284,7 @@ func (x Operation_Type) String() string { return proto.EnumName(Operation_Type_name, int32(x)) } func (Operation_Type) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{15, 1} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{20, 1} } // Operation type: what type update to perform. @@ -289,7 +321,7 @@ func (x SetMasterAuthRequest_Action) String() string { return proto.EnumName(SetMasterAuthRequest_Action_name, int32(x)) } func (SetMasterAuthRequest_Action) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{19, 0} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{32, 0} } // The current status of the node pool instance. @@ -342,7 +374,157 @@ func (x NodePool_Status) String() string { return proto.EnumName(NodePool_Status_name, int32(x)) } func (NodePool_Status) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{33, 0} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{46, 0} +} + +// NodeMetadata is the configuration for if and how to expose the node +// metadata to the workload running on the node. +type WorkloadMetadataConfig_NodeMetadata int32 + +const ( + // Not set. + WorkloadMetadataConfig_UNSPECIFIED WorkloadMetadataConfig_NodeMetadata = 0 + // Prevent workloads not in hostNetwork from accessing certain VM metadata, + // specifically kube-env, which contains Kubelet credentials, and the + // instance identity token. + // + // Metadata concealment is a temporary security solution available while the + // bootstrapping process for cluster nodes is being redesigned with + // significant security improvements. This feature is scheduled to be + // deprecated in the future and later removed. + WorkloadMetadataConfig_SECURE WorkloadMetadataConfig_NodeMetadata = 1 + // Expose all VM metadata to pods. + WorkloadMetadataConfig_EXPOSE WorkloadMetadataConfig_NodeMetadata = 2 +) + +var WorkloadMetadataConfig_NodeMetadata_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "SECURE", + 2: "EXPOSE", +} +var WorkloadMetadataConfig_NodeMetadata_value = map[string]int32{ + "UNSPECIFIED": 0, + "SECURE": 1, + "EXPOSE": 2, +} + +func (x WorkloadMetadataConfig_NodeMetadata) String() string { + return proto.EnumName(WorkloadMetadataConfig_NodeMetadata_name, int32(x)) +} +func (WorkloadMetadataConfig_NodeMetadata) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{64, 0} +} + +// LocationType is the type of GKE location, regional or zonal. +type Location_LocationType int32 + +const ( + // LOCATION_TYPE_UNSPECIFIED means the location type was not determined. + Location_LOCATION_TYPE_UNSPECIFIED Location_LocationType = 0 + // A GKE Location where Zonal clusters can be created. + Location_ZONE Location_LocationType = 1 + // A GKE Location where Regional clusters can be created. + Location_REGION Location_LocationType = 2 +) + +var Location_LocationType_name = map[int32]string{ + 0: "LOCATION_TYPE_UNSPECIFIED", + 1: "ZONE", + 2: "REGION", +} +var Location_LocationType_value = map[string]int32{ + "LOCATION_TYPE_UNSPECIFIED": 0, + "ZONE": 1, + "REGION": 2, +} + +func (x Location_LocationType) String() string { + return proto.EnumName(Location_LocationType_name, int32(x)) +} +func (Location_LocationType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{69, 0} +} + +// Code for each condition +type StatusCondition_Code int32 + +const ( + // UNKNOWN indicates a generic condition. + StatusCondition_UNKNOWN StatusCondition_Code = 0 + // GCE_STOCKOUT indicates a Google Compute Engine stockout. + StatusCondition_GCE_STOCKOUT StatusCondition_Code = 1 + // GKE_SERVICE_ACCOUNT_DELETED indicates that the user deleted their robot + // service account. + StatusCondition_GKE_SERVICE_ACCOUNT_DELETED StatusCondition_Code = 2 + // Google Compute Engine quota was exceeded. + StatusCondition_GCE_QUOTA_EXCEEDED StatusCondition_Code = 3 + // Cluster state was manually changed by an SRE due to a system logic error. + // More codes TBA + StatusCondition_SET_BY_OPERATOR StatusCondition_Code = 4 +) + +var StatusCondition_Code_name = map[int32]string{ + 0: "UNKNOWN", + 1: "GCE_STOCKOUT", + 2: "GKE_SERVICE_ACCOUNT_DELETED", + 3: "GCE_QUOTA_EXCEEDED", + 4: "SET_BY_OPERATOR", +} +var StatusCondition_Code_value = map[string]int32{ + "UNKNOWN": 0, + "GCE_STOCKOUT": 1, + "GKE_SERVICE_ACCOUNT_DELETED": 2, + "GCE_QUOTA_EXCEEDED": 3, + "SET_BY_OPERATOR": 4, +} + +func (x StatusCondition_Code) String() string { + return proto.EnumName(StatusCondition_Code_name, int32(x)) +} +func (StatusCondition_Code) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{70, 0} +} + +// Status shows the current usage of a secondary IP range. +type UsableSubnetworkSecondaryRange_Status int32 + +const ( + // UNKNOWN is the zero value of the Status enum. It's not a valid status. + UsableSubnetworkSecondaryRange_UNKNOWN UsableSubnetworkSecondaryRange_Status = 0 + // UNUSED denotes that this range is unclaimed by any cluster. + UsableSubnetworkSecondaryRange_UNUSED UsableSubnetworkSecondaryRange_Status = 1 + // IN_USE_SERVICE denotes that this range is claimed by a cluster for + // services. It cannot be used for other clusters. + UsableSubnetworkSecondaryRange_IN_USE_SERVICE UsableSubnetworkSecondaryRange_Status = 2 + // IN_USE_SHAREABLE_POD denotes this range was created by the network admin + // and is currently claimed by a cluster for pods. It can only be used by + // other clusters as a pod range. + UsableSubnetworkSecondaryRange_IN_USE_SHAREABLE_POD UsableSubnetworkSecondaryRange_Status = 3 + // IN_USE_MANAGED_POD denotes this range was created by GKE and is claimed + // for pods. It cannot be used for other clusters. + UsableSubnetworkSecondaryRange_IN_USE_MANAGED_POD UsableSubnetworkSecondaryRange_Status = 4 +) + +var UsableSubnetworkSecondaryRange_Status_name = map[int32]string{ + 0: "UNKNOWN", + 1: "UNUSED", + 2: "IN_USE_SERVICE", + 3: "IN_USE_SHAREABLE_POD", + 4: "IN_USE_MANAGED_POD", +} +var UsableSubnetworkSecondaryRange_Status_value = map[string]int32{ + "UNKNOWN": 0, + "UNUSED": 1, + "IN_USE_SERVICE": 2, + "IN_USE_SHAREABLE_POD": 3, + "IN_USE_MANAGED_POD": 4, +} + +func (x UsableSubnetworkSecondaryRange_Status) String() string { + return proto.EnumName(UsableSubnetworkSecondaryRange_Status_name, int32(x)) +} +func (UsableSubnetworkSecondaryRange_Status) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{74, 0} } // Parameters that describe the nodes in a cluster. @@ -382,8 +564,18 @@ type NodeConfig struct { // Keys must conform to the regexp [a-zA-Z0-9-_]+ and be less than 128 bytes // in length. These are reflected as part of a URL in the metadata server. // Additionally, to avoid ambiguity, keys must not conflict with any other - // metadata keys for the project or be one of the four reserved keys: - // "instance-template", "kube-env", "startup-script", and "user-data" + // metadata keys for the project or be one of the reserved keys: + // "cluster-location" + // "cluster-name" + // "cluster-uid" + // "configure-sh" + // "enable-oslogin" + // "gci-ensure-gke-docker" + // "gci-update-strategy" + // "instance-template" + // "kube-env" + // "startup-script" + // "user-data" // // Values are free-form strings, and only have meaning as interpreted by // the image running in the instance. The only restriction placed on them is @@ -423,13 +615,20 @@ type NodeConfig struct { // See https://cloud.google.com/compute/docs/gpus for more information about // support for GPUs. Accelerators []*AcceleratorConfig `protobuf:"bytes,11,rep,name=accelerators,proto3" json:"accelerators,omitempty"` + // Type of the disk attached to each node (e.g. 'pd-standard' or 'pd-ssd') + // + // If unspecified, the default disk type is 'pd-standard' + DiskType string `protobuf:"bytes,12,opt,name=disk_type,json=diskType,proto3" json:"disk_type,omitempty"` // Minimum CPU platform to be used by this instance. The instance may be // scheduled on the specified or newer CPU platform. Applicable values are the // friendly names of CPU platforms, such as // minCpuPlatform: "Intel Haswell" or // minCpuPlatform: "Intel Sandy Bridge". For more - // information, read [how to specify min CPU platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform) + // information, read [how to specify min CPU + // platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform) MinCpuPlatform string `protobuf:"bytes,13,opt,name=min_cpu_platform,json=minCpuPlatform,proto3" json:"min_cpu_platform,omitempty"` + // The workload metadata configuration for this node. + WorkloadMetadataConfig *WorkloadMetadataConfig `protobuf:"bytes,14,opt,name=workload_metadata_config,json=workloadMetadataConfig,proto3" json:"workload_metadata_config,omitempty"` // List of kubernetes taints to be applied to each node. // // For more information, including usage and the valid values, see: @@ -444,7 +643,7 @@ func (m *NodeConfig) Reset() { *m = NodeConfig{} } func (m *NodeConfig) String() string { return proto.CompactTextString(m) } func (*NodeConfig) ProtoMessage() {} func (*NodeConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{0} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{0} } func (m *NodeConfig) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_NodeConfig.Unmarshal(m, b) @@ -541,6 +740,13 @@ func (m *NodeConfig) GetAccelerators() []*AcceleratorConfig { return nil } +func (m *NodeConfig) GetDiskType() string { + if m != nil { + return m.DiskType + } + return "" +} + func (m *NodeConfig) GetMinCpuPlatform() string { if m != nil { return m.MinCpuPlatform @@ -548,6 +754,13 @@ func (m *NodeConfig) GetMinCpuPlatform() string { return "" } +func (m *NodeConfig) GetWorkloadMetadataConfig() *WorkloadMetadataConfig { + if m != nil { + return m.WorkloadMetadataConfig + } + return nil +} + func (m *NodeConfig) GetTaints() []*NodeTaint { if m != nil { return m.Taints @@ -576,7 +789,7 @@ func (m *NodeTaint) Reset() { *m = NodeTaint{} } func (m *NodeTaint) String() string { return proto.CompactTextString(m) } func (*NodeTaint) ProtoMessage() {} func (*NodeTaint) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{1} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{1} } func (m *NodeTaint) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_NodeTaint.Unmarshal(m, b) @@ -622,16 +835,17 @@ func (m *NodeTaint) GetEffect() NodeTaint_Effect { // certificates. type MasterAuth struct { // The username to use for HTTP basic authentication to the master endpoint. - // For clusters v1.6.0 and later, you can disable basic authentication by - // providing an empty username. + // For clusters v1.6.0 and later, basic authentication can be disabled by + // leaving username unspecified (or setting it to the empty string). Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"` // The password to use for HTTP basic authentication to the master endpoint. // Because the master endpoint is open to the Internet, you should create a // strong password. If a password is provided for cluster creation, username // must be non-empty. Password string `protobuf:"bytes,2,opt,name=password,proto3" json:"password,omitempty"` - // Configuration for client certificate authentication on the cluster. If no - // configuration is specified, a client certificate is issued. + // Configuration for client certificate authentication on the cluster. For + // clusters before v1.12, if no configuration is specified, a client + // certificate is issued. ClientCertificateConfig *ClientCertificateConfig `protobuf:"bytes,3,opt,name=client_certificate_config,json=clientCertificateConfig,proto3" json:"client_certificate_config,omitempty"` // [Output only] Base64-encoded public certificate that is the root of // trust for the cluster. @@ -651,7 +865,7 @@ func (m *MasterAuth) Reset() { *m = MasterAuth{} } func (m *MasterAuth) String() string { return proto.CompactTextString(m) } func (*MasterAuth) ProtoMessage() {} func (*MasterAuth) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{2} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{2} } func (m *MasterAuth) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MasterAuth.Unmarshal(m, b) @@ -726,7 +940,7 @@ func (m *ClientCertificateConfig) Reset() { *m = ClientCertificateConfig func (m *ClientCertificateConfig) String() string { return proto.CompactTextString(m) } func (*ClientCertificateConfig) ProtoMessage() {} func (*ClientCertificateConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{3} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{3} } func (m *ClientCertificateConfig) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ClientCertificateConfig.Unmarshal(m, b) @@ -768,17 +982,24 @@ type AddonsConfig struct { // Configuration for NetworkPolicy. This only tracks whether the addon // is enabled or not on the Master, it does not track whether network policy // is enabled for the nodes. - NetworkPolicyConfig *NetworkPolicyConfig `protobuf:"bytes,4,opt,name=network_policy_config,json=networkPolicyConfig,proto3" json:"network_policy_config,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + NetworkPolicyConfig *NetworkPolicyConfig `protobuf:"bytes,4,opt,name=network_policy_config,json=networkPolicyConfig,proto3" json:"network_policy_config,omitempty"` + // Configuration for Istio, an open platform to connect, manage, and secure + // microservices. + IstioConfig *IstioConfig `protobuf:"bytes,5,opt,name=istio_config,json=istioConfig,proto3" json:"istio_config,omitempty"` + // Configuration for the Cloud Run addon. The `IstioConfig` addon must be + // enabled in order to enable Cloud Run addon. This option can only be enabled + // at cluster creation time. + CloudRunConfig *CloudRunConfig `protobuf:"bytes,7,opt,name=cloud_run_config,json=cloudRunConfig,proto3" json:"cloud_run_config,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *AddonsConfig) Reset() { *m = AddonsConfig{} } func (m *AddonsConfig) String() string { return proto.CompactTextString(m) } func (*AddonsConfig) ProtoMessage() {} func (*AddonsConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{4} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{4} } func (m *AddonsConfig) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddonsConfig.Unmarshal(m, b) @@ -826,6 +1047,20 @@ func (m *AddonsConfig) GetNetworkPolicyConfig() *NetworkPolicyConfig { return nil } +func (m *AddonsConfig) GetIstioConfig() *IstioConfig { + if m != nil { + return m.IstioConfig + } + return nil +} + +func (m *AddonsConfig) GetCloudRunConfig() *CloudRunConfig { + if m != nil { + return m.CloudRunConfig + } + return nil +} + // Configuration options for the HTTP (L7) load balancing controller addon, // which makes it easy to set up HTTP load balancers for services in a cluster. type HttpLoadBalancing struct { @@ -842,7 +1077,7 @@ func (m *HttpLoadBalancing) Reset() { *m = HttpLoadBalancing{} } func (m *HttpLoadBalancing) String() string { return proto.CompactTextString(m) } func (*HttpLoadBalancing) ProtoMessage() {} func (*HttpLoadBalancing) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{5} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{5} } func (m *HttpLoadBalancing) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_HttpLoadBalancing.Unmarshal(m, b) @@ -886,7 +1121,7 @@ func (m *HorizontalPodAutoscaling) Reset() { *m = HorizontalPodAutoscali func (m *HorizontalPodAutoscaling) String() string { return proto.CompactTextString(m) } func (*HorizontalPodAutoscaling) ProtoMessage() {} func (*HorizontalPodAutoscaling) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{6} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{6} } func (m *HorizontalPodAutoscaling) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_HorizontalPodAutoscaling.Unmarshal(m, b) @@ -926,7 +1161,7 @@ func (m *KubernetesDashboard) Reset() { *m = KubernetesDashboard{} } func (m *KubernetesDashboard) String() string { return proto.CompactTextString(m) } func (*KubernetesDashboard) ProtoMessage() {} func (*KubernetesDashboard) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{7} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{7} } func (m *KubernetesDashboard) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_KubernetesDashboard.Unmarshal(m, b) @@ -968,7 +1203,7 @@ func (m *NetworkPolicyConfig) Reset() { *m = NetworkPolicyConfig{} } func (m *NetworkPolicyConfig) String() string { return proto.CompactTextString(m) } func (*NetworkPolicyConfig) ProtoMessage() {} func (*NetworkPolicyConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{8} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{8} } func (m *NetworkPolicyConfig) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_NetworkPolicyConfig.Unmarshal(m, b) @@ -995,6 +1230,176 @@ func (m *NetworkPolicyConfig) GetDisabled() bool { return false } +// Configuration options for private clusters. +type PrivateClusterConfig struct { + // Whether nodes have internal IP addresses only. If enabled, all nodes are + // given only RFC 1918 private addresses and communicate with the master via + // private networking. + EnablePrivateNodes bool `protobuf:"varint,1,opt,name=enable_private_nodes,json=enablePrivateNodes,proto3" json:"enable_private_nodes,omitempty"` + // Whether the master's internal IP address is used as the cluster endpoint. + EnablePrivateEndpoint bool `protobuf:"varint,2,opt,name=enable_private_endpoint,json=enablePrivateEndpoint,proto3" json:"enable_private_endpoint,omitempty"` + // The IP range in CIDR notation to use for the hosted master network. This + // range will be used for assigning internal IP addresses to the master or + // set of masters, as well as the ILB VIP. This range must not overlap with + // any other ranges in use within the cluster's network. + MasterIpv4CidrBlock string `protobuf:"bytes,3,opt,name=master_ipv4_cidr_block,json=masterIpv4CidrBlock,proto3" json:"master_ipv4_cidr_block,omitempty"` + // Output only. The internal IP address of this cluster's master endpoint. + PrivateEndpoint string `protobuf:"bytes,4,opt,name=private_endpoint,json=privateEndpoint,proto3" json:"private_endpoint,omitempty"` + // Output only. The external IP address of this cluster's master endpoint. + PublicEndpoint string `protobuf:"bytes,5,opt,name=public_endpoint,json=publicEndpoint,proto3" json:"public_endpoint,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PrivateClusterConfig) Reset() { *m = PrivateClusterConfig{} } +func (m *PrivateClusterConfig) String() string { return proto.CompactTextString(m) } +func (*PrivateClusterConfig) ProtoMessage() {} +func (*PrivateClusterConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{9} +} +func (m *PrivateClusterConfig) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PrivateClusterConfig.Unmarshal(m, b) +} +func (m *PrivateClusterConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PrivateClusterConfig.Marshal(b, m, deterministic) +} +func (dst *PrivateClusterConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_PrivateClusterConfig.Merge(dst, src) +} +func (m *PrivateClusterConfig) XXX_Size() int { + return xxx_messageInfo_PrivateClusterConfig.Size(m) +} +func (m *PrivateClusterConfig) XXX_DiscardUnknown() { + xxx_messageInfo_PrivateClusterConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_PrivateClusterConfig proto.InternalMessageInfo + +func (m *PrivateClusterConfig) GetEnablePrivateNodes() bool { + if m != nil { + return m.EnablePrivateNodes + } + return false +} + +func (m *PrivateClusterConfig) GetEnablePrivateEndpoint() bool { + if m != nil { + return m.EnablePrivateEndpoint + } + return false +} + +func (m *PrivateClusterConfig) GetMasterIpv4CidrBlock() string { + if m != nil { + return m.MasterIpv4CidrBlock + } + return "" +} + +func (m *PrivateClusterConfig) GetPrivateEndpoint() string { + if m != nil { + return m.PrivateEndpoint + } + return "" +} + +func (m *PrivateClusterConfig) GetPublicEndpoint() string { + if m != nil { + return m.PublicEndpoint + } + return "" +} + +// Configuration options for Istio addon. +type IstioConfig struct { + // Whether Istio is enabled for this cluster. + Disabled bool `protobuf:"varint,1,opt,name=disabled,proto3" json:"disabled,omitempty"` + // The specified Istio auth mode, either none, or mutual TLS. + Auth IstioConfig_IstioAuthMode `protobuf:"varint,2,opt,name=auth,proto3,enum=google.container.v1beta1.IstioConfig_IstioAuthMode" json:"auth,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *IstioConfig) Reset() { *m = IstioConfig{} } +func (m *IstioConfig) String() string { return proto.CompactTextString(m) } +func (*IstioConfig) ProtoMessage() {} +func (*IstioConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{10} +} +func (m *IstioConfig) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_IstioConfig.Unmarshal(m, b) +} +func (m *IstioConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_IstioConfig.Marshal(b, m, deterministic) +} +func (dst *IstioConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_IstioConfig.Merge(dst, src) +} +func (m *IstioConfig) XXX_Size() int { + return xxx_messageInfo_IstioConfig.Size(m) +} +func (m *IstioConfig) XXX_DiscardUnknown() { + xxx_messageInfo_IstioConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_IstioConfig proto.InternalMessageInfo + +func (m *IstioConfig) GetDisabled() bool { + if m != nil { + return m.Disabled + } + return false +} + +func (m *IstioConfig) GetAuth() IstioConfig_IstioAuthMode { + if m != nil { + return m.Auth + } + return IstioConfig_AUTH_NONE +} + +// Configuration options for the Cloud Run feature. +type CloudRunConfig struct { + // Whether Cloud Run addon is enabled for this cluster. + Disabled bool `protobuf:"varint,1,opt,name=disabled,proto3" json:"disabled,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CloudRunConfig) Reset() { *m = CloudRunConfig{} } +func (m *CloudRunConfig) String() string { return proto.CompactTextString(m) } +func (*CloudRunConfig) ProtoMessage() {} +func (*CloudRunConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{11} +} +func (m *CloudRunConfig) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CloudRunConfig.Unmarshal(m, b) +} +func (m *CloudRunConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CloudRunConfig.Marshal(b, m, deterministic) +} +func (dst *CloudRunConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_CloudRunConfig.Merge(dst, src) +} +func (m *CloudRunConfig) XXX_Size() int { + return xxx_messageInfo_CloudRunConfig.Size(m) +} +func (m *CloudRunConfig) XXX_DiscardUnknown() { + xxx_messageInfo_CloudRunConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_CloudRunConfig proto.InternalMessageInfo + +func (m *CloudRunConfig) GetDisabled() bool { + if m != nil { + return m.Disabled + } + return false +} + // Configuration options for the master authorized networks feature. Enabled // master authorized networks will disallow all external traffic to access // Kubernetes master through HTTPS except traffic from the given CIDR blocks, @@ -1014,7 +1419,7 @@ func (m *MasterAuthorizedNetworksConfig) Reset() { *m = MasterAuthorized func (m *MasterAuthorizedNetworksConfig) String() string { return proto.CompactTextString(m) } func (*MasterAuthorizedNetworksConfig) ProtoMessage() {} func (*MasterAuthorizedNetworksConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{9} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{12} } func (m *MasterAuthorizedNetworksConfig) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MasterAuthorizedNetworksConfig.Unmarshal(m, b) @@ -1065,7 +1470,7 @@ func (m *MasterAuthorizedNetworksConfig_CidrBlock) Reset() { func (m *MasterAuthorizedNetworksConfig_CidrBlock) String() string { return proto.CompactTextString(m) } func (*MasterAuthorizedNetworksConfig_CidrBlock) ProtoMessage() {} func (*MasterAuthorizedNetworksConfig_CidrBlock) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{9, 0} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{12, 0} } func (m *MasterAuthorizedNetworksConfig_CidrBlock) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MasterAuthorizedNetworksConfig_CidrBlock.Unmarshal(m, b) @@ -1099,6 +1504,50 @@ func (m *MasterAuthorizedNetworksConfig_CidrBlock) GetCidrBlock() string { return "" } +// Configuration for the legacy Attribute Based Access Control authorization +// mode. +type LegacyAbac struct { + // Whether the ABAC authorizer is enabled for this cluster. When enabled, + // identities in the system, including service accounts, nodes, and + // controllers, will have statically granted permissions beyond those + // provided by the RBAC configuration or IAM. + Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *LegacyAbac) Reset() { *m = LegacyAbac{} } +func (m *LegacyAbac) String() string { return proto.CompactTextString(m) } +func (*LegacyAbac) ProtoMessage() {} +func (*LegacyAbac) Descriptor() ([]byte, []int) { + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{13} +} +func (m *LegacyAbac) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_LegacyAbac.Unmarshal(m, b) +} +func (m *LegacyAbac) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_LegacyAbac.Marshal(b, m, deterministic) +} +func (dst *LegacyAbac) XXX_Merge(src proto.Message) { + xxx_messageInfo_LegacyAbac.Merge(dst, src) +} +func (m *LegacyAbac) XXX_Size() int { + return xxx_messageInfo_LegacyAbac.Size(m) +} +func (m *LegacyAbac) XXX_DiscardUnknown() { + xxx_messageInfo_LegacyAbac.DiscardUnknown(m) +} + +var xxx_messageInfo_LegacyAbac proto.InternalMessageInfo + +func (m *LegacyAbac) GetEnabled() bool { + if m != nil { + return m.Enabled + } + return false +} + // Configuration options for the NetworkPolicy feature. // https://kubernetes.io/docs/concepts/services-networking/networkpolicies/ type NetworkPolicy struct { @@ -1115,7 +1564,7 @@ func (m *NetworkPolicy) Reset() { *m = NetworkPolicy{} } func (m *NetworkPolicy) String() string { return proto.CompactTextString(m) } func (*NetworkPolicy) ProtoMessage() {} func (*NetworkPolicy) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{10} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{14} } func (m *NetworkPolicy) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_NetworkPolicy.Unmarshal(m, b) @@ -1162,11 +1611,11 @@ type IPAllocationPolicy struct { // subnetwork. SubnetworkName string `protobuf:"bytes,3,opt,name=subnetwork_name,json=subnetworkName,proto3" json:"subnetwork_name,omitempty"` // This field is deprecated, use cluster_ipv4_cidr_block. - ClusterIpv4Cidr string `protobuf:"bytes,4,opt,name=cluster_ipv4_cidr,json=clusterIpv4Cidr,proto3" json:"cluster_ipv4_cidr,omitempty"` + ClusterIpv4Cidr string `protobuf:"bytes,4,opt,name=cluster_ipv4_cidr,json=clusterIpv4Cidr,proto3" json:"cluster_ipv4_cidr,omitempty"` // Deprecated: Do not use. // This field is deprecated, use node_ipv4_cidr_block. - NodeIpv4Cidr string `protobuf:"bytes,5,opt,name=node_ipv4_cidr,json=nodeIpv4Cidr,proto3" json:"node_ipv4_cidr,omitempty"` + NodeIpv4Cidr string `protobuf:"bytes,5,opt,name=node_ipv4_cidr,json=nodeIpv4Cidr,proto3" json:"node_ipv4_cidr,omitempty"` // Deprecated: Do not use. // This field is deprecated, use services_ipv4_cidr_block. - ServicesIpv4Cidr string `protobuf:"bytes,6,opt,name=services_ipv4_cidr,json=servicesIpv4Cidr,proto3" json:"services_ipv4_cidr,omitempty"` + ServicesIpv4Cidr string `protobuf:"bytes,6,opt,name=services_ipv4_cidr,json=servicesIpv4Cidr,proto3" json:"services_ipv4_cidr,omitempty"` // Deprecated: Do not use. // The name of the secondary range to be used for the cluster CIDR // block. The secondary range will be used for pod IP // addresses. This must be an existing secondary range associated @@ -1229,17 +1678,46 @@ type IPAllocationPolicy struct { // notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g. // `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range // to use. - ServicesIpv4CidrBlock string `protobuf:"bytes,11,opt,name=services_ipv4_cidr_block,json=servicesIpv4CidrBlock,proto3" json:"services_ipv4_cidr_block,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + ServicesIpv4CidrBlock string `protobuf:"bytes,11,opt,name=services_ipv4_cidr_block,json=servicesIpv4CidrBlock,proto3" json:"services_ipv4_cidr_block,omitempty"` + // If true, allow allocation of cluster CIDR ranges that overlap with certain + // kinds of network routes. By default we do not allow cluster CIDR ranges to + // intersect with any user declared routes. With allow_route_overlap == true, + // we allow overlapping with CIDR ranges that are larger than the cluster CIDR + // range. + // + // If this field is set to true, then cluster and services CIDRs must be + // fully-specified (e.g. `10.96.0.0/14`, but not `/14`), which means: + // 1) When `use_ip_aliases` is true, `cluster_ipv4_cidr_block` and + // `services_ipv4_cidr_block` must be fully-specified. + // 2) When `use_ip_aliases` is false, `cluster.cluster_ipv4_cidr` muse be + // fully-specified. + AllowRouteOverlap bool `protobuf:"varint,12,opt,name=allow_route_overlap,json=allowRouteOverlap,proto3" json:"allow_route_overlap,omitempty"` + // The IP address range of the Cloud TPUs in this cluster. If unspecified, a + // range will be automatically chosen with the default size. + // + // This field is only applicable when `use_ip_aliases` is true. + // + // If unspecified, the range will use the default size. + // + // Set to /netmask (e.g. `/14`) to have a range chosen with a specific + // netmask. + // + // Set to a + // [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) + // notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g. + // `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range + // to use. + TpuIpv4CidrBlock string `protobuf:"bytes,13,opt,name=tpu_ipv4_cidr_block,json=tpuIpv4CidrBlock,proto3" json:"tpu_ipv4_cidr_block,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *IPAllocationPolicy) Reset() { *m = IPAllocationPolicy{} } func (m *IPAllocationPolicy) String() string { return proto.CompactTextString(m) } func (*IPAllocationPolicy) ProtoMessage() {} func (*IPAllocationPolicy) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{11} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{15} } func (m *IPAllocationPolicy) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_IPAllocationPolicy.Unmarshal(m, b) @@ -1280,6 +1758,7 @@ func (m *IPAllocationPolicy) GetSubnetworkName() string { return "" } +// Deprecated: Do not use. func (m *IPAllocationPolicy) GetClusterIpv4Cidr() string { if m != nil { return m.ClusterIpv4Cidr @@ -1287,6 +1766,7 @@ func (m *IPAllocationPolicy) GetClusterIpv4Cidr() string { return "" } +// Deprecated: Do not use. func (m *IPAllocationPolicy) GetNodeIpv4Cidr() string { if m != nil { return m.NodeIpv4Cidr @@ -1294,6 +1774,7 @@ func (m *IPAllocationPolicy) GetNodeIpv4Cidr() string { return "" } +// Deprecated: Do not use. func (m *IPAllocationPolicy) GetServicesIpv4Cidr() string { if m != nil { return m.ServicesIpv4Cidr @@ -1336,6 +1817,61 @@ func (m *IPAllocationPolicy) GetServicesIpv4CidrBlock() string { return "" } +func (m *IPAllocationPolicy) GetAllowRouteOverlap() bool { + if m != nil { + return m.AllowRouteOverlap + } + return false +} + +func (m *IPAllocationPolicy) GetTpuIpv4CidrBlock() string { + if m != nil { + return m.TpuIpv4CidrBlock + } + return "" +} + +// Configuration for Binary Authorization. +type BinaryAuthorization struct { + // Enable Binary Authorization for this cluster. If enabled, all container + // images will be validated by Google Binauthz. + Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BinaryAuthorization) Reset() { *m = BinaryAuthorization{} } +func (m *BinaryAuthorization) String() string { return proto.CompactTextString(m) } +func (*BinaryAuthorization) ProtoMessage() {} +func (*BinaryAuthorization) Descriptor() ([]byte, []int) { + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{16} +} +func (m *BinaryAuthorization) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BinaryAuthorization.Unmarshal(m, b) +} +func (m *BinaryAuthorization) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BinaryAuthorization.Marshal(b, m, deterministic) +} +func (dst *BinaryAuthorization) XXX_Merge(src proto.Message) { + xxx_messageInfo_BinaryAuthorization.Merge(dst, src) +} +func (m *BinaryAuthorization) XXX_Size() int { + return xxx_messageInfo_BinaryAuthorization.Size(m) +} +func (m *BinaryAuthorization) XXX_DiscardUnknown() { + xxx_messageInfo_BinaryAuthorization.DiscardUnknown(m) +} + +var xxx_messageInfo_BinaryAuthorization proto.InternalMessageInfo + +func (m *BinaryAuthorization) GetEnabled() bool { + if m != nil { + return m.Enabled + } + return false +} + // Configuration for the PodSecurityPolicy feature. type PodSecurityPolicyConfig struct { // Enable the PodSecurityPolicy controller for this cluster. If enabled, pods @@ -1350,7 +1886,7 @@ func (m *PodSecurityPolicyConfig) Reset() { *m = PodSecurityPolicyConfig func (m *PodSecurityPolicyConfig) String() string { return proto.CompactTextString(m) } func (*PodSecurityPolicyConfig) ProtoMessage() {} func (*PodSecurityPolicyConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{12} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{17} } func (m *PodSecurityPolicyConfig) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PodSecurityPolicyConfig.Unmarshal(m, b) @@ -1377,7 +1913,7 @@ func (m *PodSecurityPolicyConfig) GetEnabled() bool { return false } -// A Google Container Engine cluster. +// A Google Kubernetes Engine cluster. type Cluster struct { // The name of this cluster. The name must be unique within this project // and zone, and can be up to 40 characters with the following restrictions: @@ -1409,6 +1945,10 @@ type Cluster struct { // If unspecified, the defaults are used. NodeConfig *NodeConfig `protobuf:"bytes,4,opt,name=node_config,json=nodeConfig,proto3" json:"node_config,omitempty"` // The authentication information for accessing the master endpoint. + // If unspecified, the defaults are used: + // For clusters before v1.12, if master_auth is unspecified, `username` will + // be set to "admin", a random password will be generated, and a client + // certificate will be issued. MasterAuth *MasterAuth `protobuf:"bytes,5,opt,name=master_auth,json=masterAuth,proto3" json:"master_auth,omitempty"` // The logging service the cluster should use to write logs. // Currently available options: @@ -1427,7 +1967,8 @@ type Cluster struct { // The name of the Google Compute Engine // [network](/compute/docs/networks-and-firewalls#networks) to which the // cluster is connected. If left unspecified, the `default` network - // will be used. + // will be used. On output this shows the network ID instead of + // the name. Network string `protobuf:"bytes,8,opt,name=network,proto3" json:"network,omitempty"` // The IP address range of the container pods in this cluster, in // [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) @@ -1438,14 +1979,15 @@ type Cluster struct { AddonsConfig *AddonsConfig `protobuf:"bytes,10,opt,name=addons_config,json=addonsConfig,proto3" json:"addons_config,omitempty"` // The name of the Google Compute Engine // [subnetwork](/compute/docs/subnetworks) to which the - // cluster is connected. + // cluster is connected. On output this shows the subnetwork ID instead of + // the name. Subnetwork string `protobuf:"bytes,11,opt,name=subnetwork,proto3" json:"subnetwork,omitempty"` // The node pools associated with this cluster. // This field should not be set if "node_config" or "initial_node_count" are // specified. NodePools []*NodePool `protobuf:"bytes,12,rep,name=node_pools,json=nodePools,proto3" json:"node_pools,omitempty"` // The list of Google Compute Engine - // [locations](/compute/docs/zones#available) in which the cluster's nodes + // [zones](/compute/docs/zones#available) in which the cluster's nodes // should be located. Locations []string `protobuf:"bytes,13,rep,name=locations,proto3" json:"locations,omitempty"` // Kubernetes alpha features are enabled on this cluster. This includes alpha @@ -1455,6 +1997,13 @@ type Cluster struct { // Alpha enabled clusters are automatically deleted thirty days after // creation. EnableKubernetesAlpha bool `protobuf:"varint,14,opt,name=enable_kubernetes_alpha,json=enableKubernetesAlpha,proto3" json:"enable_kubernetes_alpha,omitempty"` + // The resource labels for the cluster to use to annotate any related + // Google Compute Engine resources. + ResourceLabels map[string]string `protobuf:"bytes,15,rep,name=resource_labels,json=resourceLabels,proto3" json:"resource_labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // The fingerprint of the set of labels for this cluster. + LabelFingerprint string `protobuf:"bytes,16,opt,name=label_fingerprint,json=labelFingerprint,proto3" json:"label_fingerprint,omitempty"` + // Configuration for the legacy ABAC authorization mode. + LegacyAbac *LegacyAbac `protobuf:"bytes,18,opt,name=legacy_abac,json=legacyAbac,proto3" json:"legacy_abac,omitempty"` // Configuration options for the NetworkPolicy feature. NetworkPolicy *NetworkPolicy `protobuf:"bytes,19,opt,name=network_policy,json=networkPolicy,proto3" json:"network_policy,omitempty"` // Configuration for cluster IP allocation. @@ -1463,15 +2012,44 @@ type Cluster struct { MasterAuthorizedNetworksConfig *MasterAuthorizedNetworksConfig `protobuf:"bytes,22,opt,name=master_authorized_networks_config,json=masterAuthorizedNetworksConfig,proto3" json:"master_authorized_networks_config,omitempty"` // Configure the maintenance policy for this cluster. MaintenancePolicy *MaintenancePolicy `protobuf:"bytes,23,opt,name=maintenance_policy,json=maintenancePolicy,proto3" json:"maintenance_policy,omitempty"` + // Configuration for Binary Authorization. + BinaryAuthorization *BinaryAuthorization `protobuf:"bytes,24,opt,name=binary_authorization,json=binaryAuthorization,proto3" json:"binary_authorization,omitempty"` // Configuration for the PodSecurityPolicy feature. PodSecurityPolicyConfig *PodSecurityPolicyConfig `protobuf:"bytes,25,opt,name=pod_security_policy_config,json=podSecurityPolicyConfig,proto3" json:"pod_security_policy_config,omitempty"` + // Cluster-level autoscaling configuration. + Autoscaling *ClusterAutoscaling `protobuf:"bytes,26,opt,name=autoscaling,proto3" json:"autoscaling,omitempty"` + // Configuration for cluster networking. + NetworkConfig *NetworkConfig `protobuf:"bytes,27,opt,name=network_config,json=networkConfig,proto3" json:"network_config,omitempty"` + // If this is a private cluster setup. Private clusters are clusters that, by + // default have no external IP addresses on the nodes and where nodes and the + // master communicate over private IP addresses. + // This field is deprecated, use private_cluster_config.enable_private_nodes + // instead. + PrivateCluster bool `protobuf:"varint,28,opt,name=private_cluster,json=privateCluster,proto3" json:"private_cluster,omitempty"` // Deprecated: Do not use. + // The IP prefix in CIDR notation to use for the hosted master network. + // This prefix will be used for assigning private IP addresses to the + // master or set of masters, as well as the ILB VIP. + // This field is deprecated, use + // private_cluster_config.master_ipv4_cidr_block instead. + MasterIpv4CidrBlock string `protobuf:"bytes,29,opt,name=master_ipv4_cidr_block,json=masterIpv4CidrBlock,proto3" json:"master_ipv4_cidr_block,omitempty"` // Deprecated: Do not use. + // The default constraint on the maximum number of pods that can be run + // simultaneously on a node in the node pool of this cluster. Only honored + // if cluster created with IP Alias support. + DefaultMaxPodsConstraint *MaxPodsConstraint `protobuf:"bytes,30,opt,name=default_max_pods_constraint,json=defaultMaxPodsConstraint,proto3" json:"default_max_pods_constraint,omitempty"` + // Configuration for exporting resource usages. Resource usage export is + // disabled when this config unspecified. + ResourceUsageExportConfig *ResourceUsageExportConfig `protobuf:"bytes,33,opt,name=resource_usage_export_config,json=resourceUsageExportConfig,proto3" json:"resource_usage_export_config,omitempty"` + // Configuration for private cluster. + PrivateClusterConfig *PrivateClusterConfig `protobuf:"bytes,37,opt,name=private_cluster_config,json=privateClusterConfig,proto3" json:"private_cluster_config,omitempty"` + // Cluster-level Vertical Pod Autoscaling configuration. + VerticalPodAutoscaling *VerticalPodAutoscaling `protobuf:"bytes,39,opt,name=vertical_pod_autoscaling,json=verticalPodAutoscaling,proto3" json:"vertical_pod_autoscaling,omitempty"` // [Output only] Server-defined URL for the resource. SelfLink string `protobuf:"bytes,100,opt,name=self_link,json=selfLink,proto3" json:"self_link,omitempty"` // [Output only] The name of the Google Compute Engine // [zone](/compute/docs/zones#available) in which the cluster // resides. // This field is deprecated, use location instead. - Zone string `protobuf:"bytes,101,opt,name=zone,proto3" json:"zone,omitempty"` + Zone string `protobuf:"bytes,101,opt,name=zone,proto3" json:"zone,omitempty"` // Deprecated: Do not use. // [Output only] The IP address of this cluster's master endpoint. // The endpoint can be accessed from the internet at // `https://username:password@endpoint/`. @@ -1483,13 +2061,24 @@ type Cluster struct { // found in validMasterVersions returned by getServerConfig. The version can // be upgraded over time; such upgrades are reflected in // currentMasterVersion and currentNodeVersion. + // + // Users may specify either explicit versions offered by + // Kubernetes Engine or version aliases, which have the following behavior: + // + // - "latest": picks the highest valid Kubernetes version + // - "1.X": picks the highest valid patch+gke.N patch in the 1.X version + // - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version + // - "1.X.Y-gke.N": picks an explicit Kubernetes version + // - "","-": picks the default Kubernetes version InitialClusterVersion string `protobuf:"bytes,103,opt,name=initial_cluster_version,json=initialClusterVersion,proto3" json:"initial_cluster_version,omitempty"` // [Output only] The current software version of the master endpoint. CurrentMasterVersion string `protobuf:"bytes,104,opt,name=current_master_version,json=currentMasterVersion,proto3" json:"current_master_version,omitempty"` - // [Output only] The current version of the node software components. + // [Output only] Deprecated, use + // [NodePool.version](/kubernetes-engine/docs/reference/rest/v1beta1/projects.zones.clusters.nodePool) + // instead. The current version of the node software components. // If they are currently at multiple versions because they're in the process // of being upgraded, this reflects the minimum version of all nodes. - CurrentNodeVersion string `protobuf:"bytes,105,opt,name=current_node_version,json=currentNodeVersion,proto3" json:"current_node_version,omitempty"` + CurrentNodeVersion string `protobuf:"bytes,105,opt,name=current_node_version,json=currentNodeVersion,proto3" json:"current_node_version,omitempty"` // Deprecated: Do not use. // [Output only] The time the cluster was created, in // [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format. CreateTime string `protobuf:"bytes,106,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` @@ -1508,12 +2097,11 @@ type Cluster struct { // notation (e.g. `1.2.3.4/29`). Service addresses are // typically put in the last `/16` from the container CIDR. ServicesIpv4Cidr string `protobuf:"bytes,110,opt,name=services_ipv4_cidr,json=servicesIpv4Cidr,proto3" json:"services_ipv4_cidr,omitempty"` - // [Output only] The resource URLs of [instance - // groups](/compute/docs/instance-groups/) associated with this - // cluster. - InstanceGroupUrls []string `protobuf:"bytes,111,rep,name=instance_group_urls,json=instanceGroupUrls,proto3" json:"instance_group_urls,omitempty"` - // [Output only] The number of nodes currently in the cluster. - CurrentNodeCount int32 `protobuf:"varint,112,opt,name=current_node_count,json=currentNodeCount,proto3" json:"current_node_count,omitempty"` + // Deprecated. Use node_pools.instance_group_urls. + InstanceGroupUrls []string `protobuf:"bytes,111,rep,name=instance_group_urls,json=instanceGroupUrls,proto3" json:"instance_group_urls,omitempty"` // Deprecated: Do not use. + // [Output only] The number of nodes currently in the cluster. Deprecated. + // Call Kubernetes API directly to retrieve node information. + CurrentNodeCount int32 `protobuf:"varint,112,opt,name=current_node_count,json=currentNodeCount,proto3" json:"current_node_count,omitempty"` // Deprecated: Do not use. // [Output only] The time the cluster will be automatically // deleted in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format. ExpireTime string `protobuf:"bytes,113,opt,name=expire_time,json=expireTime,proto3" json:"expire_time,omitempty"` @@ -1521,17 +2109,25 @@ type Cluster struct { // [zone](/compute/docs/regions-zones/regions-zones#available) or // [region](/compute/docs/regions-zones/regions-zones#available) in which // the cluster resides. - Location string `protobuf:"bytes,114,opt,name=location,proto3" json:"location,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Location string `protobuf:"bytes,114,opt,name=location,proto3" json:"location,omitempty"` + // Enable the ability to use Cloud TPUs in this cluster. + EnableTpu bool `protobuf:"varint,115,opt,name=enable_tpu,json=enableTpu,proto3" json:"enable_tpu,omitempty"` + // [Output only] The IP address range of the Cloud TPUs in this cluster, in + // [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) + // notation (e.g. `1.2.3.4/29`). + TpuIpv4CidrBlock string `protobuf:"bytes,116,opt,name=tpu_ipv4_cidr_block,json=tpuIpv4CidrBlock,proto3" json:"tpu_ipv4_cidr_block,omitempty"` + // Which conditions caused the current cluster state. + Conditions []*StatusCondition `protobuf:"bytes,118,rep,name=conditions,proto3" json:"conditions,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *Cluster) Reset() { *m = Cluster{} } func (m *Cluster) String() string { return proto.CompactTextString(m) } func (*Cluster) ProtoMessage() {} func (*Cluster) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{13} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{18} } func (m *Cluster) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Cluster.Unmarshal(m, b) @@ -1649,6 +2245,27 @@ func (m *Cluster) GetEnableKubernetesAlpha() bool { return false } +func (m *Cluster) GetResourceLabels() map[string]string { + if m != nil { + return m.ResourceLabels + } + return nil +} + +func (m *Cluster) GetLabelFingerprint() string { + if m != nil { + return m.LabelFingerprint + } + return "" +} + +func (m *Cluster) GetLegacyAbac() *LegacyAbac { + if m != nil { + return m.LegacyAbac + } + return nil +} + func (m *Cluster) GetNetworkPolicy() *NetworkPolicy { if m != nil { return m.NetworkPolicy @@ -1677,6 +2294,13 @@ func (m *Cluster) GetMaintenancePolicy() *MaintenancePolicy { return nil } +func (m *Cluster) GetBinaryAuthorization() *BinaryAuthorization { + if m != nil { + return m.BinaryAuthorization + } + return nil +} + func (m *Cluster) GetPodSecurityPolicyConfig() *PodSecurityPolicyConfig { if m != nil { return m.PodSecurityPolicyConfig @@ -1684,6 +2308,64 @@ func (m *Cluster) GetPodSecurityPolicyConfig() *PodSecurityPolicyConfig { return nil } +func (m *Cluster) GetAutoscaling() *ClusterAutoscaling { + if m != nil { + return m.Autoscaling + } + return nil +} + +func (m *Cluster) GetNetworkConfig() *NetworkConfig { + if m != nil { + return m.NetworkConfig + } + return nil +} + +// Deprecated: Do not use. +func (m *Cluster) GetPrivateCluster() bool { + if m != nil { + return m.PrivateCluster + } + return false +} + +// Deprecated: Do not use. +func (m *Cluster) GetMasterIpv4CidrBlock() string { + if m != nil { + return m.MasterIpv4CidrBlock + } + return "" +} + +func (m *Cluster) GetDefaultMaxPodsConstraint() *MaxPodsConstraint { + if m != nil { + return m.DefaultMaxPodsConstraint + } + return nil +} + +func (m *Cluster) GetResourceUsageExportConfig() *ResourceUsageExportConfig { + if m != nil { + return m.ResourceUsageExportConfig + } + return nil +} + +func (m *Cluster) GetPrivateClusterConfig() *PrivateClusterConfig { + if m != nil { + return m.PrivateClusterConfig + } + return nil +} + +func (m *Cluster) GetVerticalPodAutoscaling() *VerticalPodAutoscaling { + if m != nil { + return m.VerticalPodAutoscaling + } + return nil +} + func (m *Cluster) GetSelfLink() string { if m != nil { return m.SelfLink @@ -1691,6 +2373,7 @@ func (m *Cluster) GetSelfLink() string { return "" } +// Deprecated: Do not use. func (m *Cluster) GetZone() string { if m != nil { return m.Zone @@ -1719,6 +2402,7 @@ func (m *Cluster) GetCurrentMasterVersion() string { return "" } +// Deprecated: Do not use. func (m *Cluster) GetCurrentNodeVersion() string { if m != nil { return m.CurrentNodeVersion @@ -1761,6 +2445,7 @@ func (m *Cluster) GetServicesIpv4Cidr() string { return "" } +// Deprecated: Do not use. func (m *Cluster) GetInstanceGroupUrls() []string { if m != nil { return m.InstanceGroupUrls @@ -1768,6 +2453,7 @@ func (m *Cluster) GetInstanceGroupUrls() []string { return nil } +// Deprecated: Do not use. func (m *Cluster) GetCurrentNodeCount() int32 { if m != nil { return m.CurrentNodeCount @@ -1789,17 +2475,48 @@ func (m *Cluster) GetLocation() string { return "" } +func (m *Cluster) GetEnableTpu() bool { + if m != nil { + return m.EnableTpu + } + return false +} + +func (m *Cluster) GetTpuIpv4CidrBlock() string { + if m != nil { + return m.TpuIpv4CidrBlock + } + return "" +} + +func (m *Cluster) GetConditions() []*StatusCondition { + if m != nil { + return m.Conditions + } + return nil +} + // ClusterUpdate describes an update to the cluster. Exactly one update can // be applied to a cluster with each request, so at most one field can be // provided. type ClusterUpdate struct { // The Kubernetes version to change the nodes to (typically an - // upgrade). Use `-` to upgrade to the latest version supported by - // the server. + // upgrade). + // + // Users may specify either explicit versions offered by + // Kubernetes Engine or version aliases, which have the following behavior: + // + // - "latest": picks the highest valid Kubernetes version + // - "1.X": picks the highest valid patch+gke.N patch in the 1.X version + // - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version + // - "1.X.Y-gke.N": picks an explicit Kubernetes version + // - "-": picks the Kubernetes master version DesiredNodeVersion string `protobuf:"bytes,4,opt,name=desired_node_version,json=desiredNodeVersion,proto3" json:"desired_node_version,omitempty"` // The monitoring service the cluster should use to write metrics. // Currently available options: // + // * "monitoring.googleapis.com/kubernetes" - the Google Cloud Monitoring + // service with Kubernetes-native resource model in Stackdriver // * "monitoring.googleapis.com" - the Google Cloud Monitoring service // * "none" - no metrics will be exported from the cluster DesiredMonitoringService string `protobuf:"bytes,5,opt,name=desired_monitoring_service,json=desiredMonitoringService,proto3" json:"desired_monitoring_service,omitempty"` @@ -1819,7 +2536,7 @@ type ClusterUpdate struct { // the change applies to that single node pool. DesiredNodePoolAutoscaling *NodePoolAutoscaling `protobuf:"bytes,9,opt,name=desired_node_pool_autoscaling,json=desiredNodePoolAutoscaling,proto3" json:"desired_node_pool_autoscaling,omitempty"` // The desired list of Google Compute Engine - // [locations](/compute/docs/zones#available) in which the cluster's nodes + // [zones](/compute/docs/zones#available) in which the cluster's nodes // should be located. Changing the locations a cluster is in will result // in nodes being either created or removed from the cluster, depending on // whether locations are being added or removed. @@ -1830,9 +2547,33 @@ type ClusterUpdate struct { DesiredMasterAuthorizedNetworksConfig *MasterAuthorizedNetworksConfig `protobuf:"bytes,12,opt,name=desired_master_authorized_networks_config,json=desiredMasterAuthorizedNetworksConfig,proto3" json:"desired_master_authorized_networks_config,omitempty"` // The desired configuration options for the PodSecurityPolicy feature. DesiredPodSecurityPolicyConfig *PodSecurityPolicyConfig `protobuf:"bytes,14,opt,name=desired_pod_security_policy_config,json=desiredPodSecurityPolicyConfig,proto3" json:"desired_pod_security_policy_config,omitempty"` + // Cluster-level autoscaling configuration. + DesiredClusterAutoscaling *ClusterAutoscaling `protobuf:"bytes,15,opt,name=desired_cluster_autoscaling,json=desiredClusterAutoscaling,proto3" json:"desired_cluster_autoscaling,omitempty"` + // The desired configuration options for the Binary Authorization feature. + DesiredBinaryAuthorization *BinaryAuthorization `protobuf:"bytes,16,opt,name=desired_binary_authorization,json=desiredBinaryAuthorization,proto3" json:"desired_binary_authorization,omitempty"` + // The logging service the cluster should use to write metrics. + // Currently available options: + // + // * "logging.googleapis.com/kubernetes" - the Google Cloud Logging + // service with Kubernetes-native resource model in Stackdriver + // * "logging.googleapis.com" - the Google Cloud Logging service + // * "none" - no logs will be exported from the cluster + DesiredLoggingService string `protobuf:"bytes,19,opt,name=desired_logging_service,json=desiredLoggingService,proto3" json:"desired_logging_service,omitempty"` + // The desired configuration for exporting resource usage. + DesiredResourceUsageExportConfig *ResourceUsageExportConfig `protobuf:"bytes,21,opt,name=desired_resource_usage_export_config,json=desiredResourceUsageExportConfig,proto3" json:"desired_resource_usage_export_config,omitempty"` + // Cluster-level Vertical Pod Autoscaling configuration. + DesiredVerticalPodAutoscaling *VerticalPodAutoscaling `protobuf:"bytes,22,opt,name=desired_vertical_pod_autoscaling,json=desiredVerticalPodAutoscaling,proto3" json:"desired_vertical_pod_autoscaling,omitempty"` // The Kubernetes version to change the master to. The only valid value is the - // latest supported version. Use "-" to have the server automatically select - // the latest version. + // latest supported version. + // + // Users may specify either explicit versions offered by + // Kubernetes Engine or version aliases, which have the following behavior: + // + // - "latest": picks the highest valid Kubernetes version + // - "1.X": picks the highest valid patch+gke.N patch in the 1.X version + // - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version + // - "1.X.Y-gke.N": picks an explicit Kubernetes version + // - "-": picks the default Kubernetes version DesiredMasterVersion string `protobuf:"bytes,100,opt,name=desired_master_version,json=desiredMasterVersion,proto3" json:"desired_master_version,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -1843,7 +2584,7 @@ func (m *ClusterUpdate) Reset() { *m = ClusterUpdate{} } func (m *ClusterUpdate) String() string { return proto.CompactTextString(m) } func (*ClusterUpdate) ProtoMessage() {} func (*ClusterUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{14} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{19} } func (m *ClusterUpdate) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ClusterUpdate.Unmarshal(m, b) @@ -1926,6 +2667,41 @@ func (m *ClusterUpdate) GetDesiredPodSecurityPolicyConfig() *PodSecurityPolicyCo return nil } +func (m *ClusterUpdate) GetDesiredClusterAutoscaling() *ClusterAutoscaling { + if m != nil { + return m.DesiredClusterAutoscaling + } + return nil +} + +func (m *ClusterUpdate) GetDesiredBinaryAuthorization() *BinaryAuthorization { + if m != nil { + return m.DesiredBinaryAuthorization + } + return nil +} + +func (m *ClusterUpdate) GetDesiredLoggingService() string { + if m != nil { + return m.DesiredLoggingService + } + return "" +} + +func (m *ClusterUpdate) GetDesiredResourceUsageExportConfig() *ResourceUsageExportConfig { + if m != nil { + return m.DesiredResourceUsageExportConfig + } + return nil +} + +func (m *ClusterUpdate) GetDesiredVerticalPodAutoscaling() *VerticalPodAutoscaling { + if m != nil { + return m.DesiredVerticalPodAutoscaling + } + return nil +} + func (m *ClusterUpdate) GetDesiredMasterVersion() string { if m != nil { return m.DesiredMasterVersion @@ -1942,7 +2718,7 @@ type Operation struct { // [zone](/compute/docs/zones#available) in which the operation // is taking place. // This field is deprecated, use location instead. - Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` + Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` // Deprecated: Do not use. // The operation type. OperationType Operation_Type `protobuf:"varint,3,opt,name=operation_type,json=operationType,proto3,enum=google.container.v1beta1.Operation_Type" json:"operation_type,omitempty"` // The current status of the operation. @@ -1965,17 +2741,23 @@ type Operation struct { StartTime string `protobuf:"bytes,10,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` // [Output only] The time the operation completed, in // [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format. - EndTime string `protobuf:"bytes,11,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + EndTime string `protobuf:"bytes,11,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` + // [Output only] Progress information for an operation. + Progress *OperationProgress `protobuf:"bytes,12,opt,name=progress,proto3" json:"progress,omitempty"` + // Which conditions caused the current cluster state. + ClusterConditions []*StatusCondition `protobuf:"bytes,13,rep,name=cluster_conditions,json=clusterConditions,proto3" json:"cluster_conditions,omitempty"` + // Which conditions caused the current node pool state. + NodepoolConditions []*StatusCondition `protobuf:"bytes,14,rep,name=nodepool_conditions,json=nodepoolConditions,proto3" json:"nodepool_conditions,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *Operation) Reset() { *m = Operation{} } func (m *Operation) String() string { return proto.CompactTextString(m) } func (*Operation) ProtoMessage() {} func (*Operation) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{15} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{20} } func (m *Operation) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Operation.Unmarshal(m, b) @@ -2002,6 +2784,7 @@ func (m *Operation) GetName() string { return "" } +// Deprecated: Do not use. func (m *Operation) GetZone() string { if m != nil { return m.Zone @@ -2072,17 +2855,289 @@ func (m *Operation) GetEndTime() string { return "" } +func (m *Operation) GetProgress() *OperationProgress { + if m != nil { + return m.Progress + } + return nil +} + +func (m *Operation) GetClusterConditions() []*StatusCondition { + if m != nil { + return m.ClusterConditions + } + return nil +} + +func (m *Operation) GetNodepoolConditions() []*StatusCondition { + if m != nil { + return m.NodepoolConditions + } + return nil +} + +// Information about operation (or operation stage) progress. +type OperationProgress struct { + // A non-parameterized string describing an operation stage. + // Unset for single-stage operations. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Status of an operation stage. + // Unset for single-stage operations. + Status Operation_Status `protobuf:"varint,2,opt,name=status,proto3,enum=google.container.v1beta1.Operation_Status" json:"status,omitempty"` + // Progress metric bundle, for example: + // metrics: [{name: "nodes done", int_value: 15}, + // {name: "nodes total", int_value: 32}] + // or + // metrics: [{name: "progress", double_value: 0.56}, + // {name: "progress scale", double_value: 1.0}] + Metrics []*OperationProgress_Metric `protobuf:"bytes,3,rep,name=metrics,proto3" json:"metrics,omitempty"` + // Substages of an operation or a stage. + Stages []*OperationProgress `protobuf:"bytes,4,rep,name=stages,proto3" json:"stages,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *OperationProgress) Reset() { *m = OperationProgress{} } +func (m *OperationProgress) String() string { return proto.CompactTextString(m) } +func (*OperationProgress) ProtoMessage() {} +func (*OperationProgress) Descriptor() ([]byte, []int) { + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{21} +} +func (m *OperationProgress) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_OperationProgress.Unmarshal(m, b) +} +func (m *OperationProgress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_OperationProgress.Marshal(b, m, deterministic) +} +func (dst *OperationProgress) XXX_Merge(src proto.Message) { + xxx_messageInfo_OperationProgress.Merge(dst, src) +} +func (m *OperationProgress) XXX_Size() int { + return xxx_messageInfo_OperationProgress.Size(m) +} +func (m *OperationProgress) XXX_DiscardUnknown() { + xxx_messageInfo_OperationProgress.DiscardUnknown(m) +} + +var xxx_messageInfo_OperationProgress proto.InternalMessageInfo + +func (m *OperationProgress) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *OperationProgress) GetStatus() Operation_Status { + if m != nil { + return m.Status + } + return Operation_STATUS_UNSPECIFIED +} + +func (m *OperationProgress) GetMetrics() []*OperationProgress_Metric { + if m != nil { + return m.Metrics + } + return nil +} + +func (m *OperationProgress) GetStages() []*OperationProgress { + if m != nil { + return m.Stages + } + return nil +} + +// Progress metric is (string, int|float|string) pair. +type OperationProgress_Metric struct { + // Metric name, required. + // e.g., "nodes total", "percent done" + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Strictly one of the values is required. + // + // Types that are valid to be assigned to Value: + // *OperationProgress_Metric_IntValue + // *OperationProgress_Metric_DoubleValue + // *OperationProgress_Metric_StringValue + Value isOperationProgress_Metric_Value `protobuf_oneof:"value"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *OperationProgress_Metric) Reset() { *m = OperationProgress_Metric{} } +func (m *OperationProgress_Metric) String() string { return proto.CompactTextString(m) } +func (*OperationProgress_Metric) ProtoMessage() {} +func (*OperationProgress_Metric) Descriptor() ([]byte, []int) { + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{21, 0} +} +func (m *OperationProgress_Metric) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_OperationProgress_Metric.Unmarshal(m, b) +} +func (m *OperationProgress_Metric) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_OperationProgress_Metric.Marshal(b, m, deterministic) +} +func (dst *OperationProgress_Metric) XXX_Merge(src proto.Message) { + xxx_messageInfo_OperationProgress_Metric.Merge(dst, src) +} +func (m *OperationProgress_Metric) XXX_Size() int { + return xxx_messageInfo_OperationProgress_Metric.Size(m) +} +func (m *OperationProgress_Metric) XXX_DiscardUnknown() { + xxx_messageInfo_OperationProgress_Metric.DiscardUnknown(m) +} + +var xxx_messageInfo_OperationProgress_Metric proto.InternalMessageInfo + +func (m *OperationProgress_Metric) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +type isOperationProgress_Metric_Value interface { + isOperationProgress_Metric_Value() +} + +type OperationProgress_Metric_IntValue struct { + IntValue int64 `protobuf:"varint,2,opt,name=int_value,json=intValue,proto3,oneof"` +} + +type OperationProgress_Metric_DoubleValue struct { + DoubleValue float64 `protobuf:"fixed64,3,opt,name=double_value,json=doubleValue,proto3,oneof"` +} + +type OperationProgress_Metric_StringValue struct { + StringValue string `protobuf:"bytes,4,opt,name=string_value,json=stringValue,proto3,oneof"` +} + +func (*OperationProgress_Metric_IntValue) isOperationProgress_Metric_Value() {} + +func (*OperationProgress_Metric_DoubleValue) isOperationProgress_Metric_Value() {} + +func (*OperationProgress_Metric_StringValue) isOperationProgress_Metric_Value() {} + +func (m *OperationProgress_Metric) GetValue() isOperationProgress_Metric_Value { + if m != nil { + return m.Value + } + return nil +} + +func (m *OperationProgress_Metric) GetIntValue() int64 { + if x, ok := m.GetValue().(*OperationProgress_Metric_IntValue); ok { + return x.IntValue + } + return 0 +} + +func (m *OperationProgress_Metric) GetDoubleValue() float64 { + if x, ok := m.GetValue().(*OperationProgress_Metric_DoubleValue); ok { + return x.DoubleValue + } + return 0 +} + +func (m *OperationProgress_Metric) GetStringValue() string { + if x, ok := m.GetValue().(*OperationProgress_Metric_StringValue); ok { + return x.StringValue + } + return "" +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*OperationProgress_Metric) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _OperationProgress_Metric_OneofMarshaler, _OperationProgress_Metric_OneofUnmarshaler, _OperationProgress_Metric_OneofSizer, []interface{}{ + (*OperationProgress_Metric_IntValue)(nil), + (*OperationProgress_Metric_DoubleValue)(nil), + (*OperationProgress_Metric_StringValue)(nil), + } +} + +func _OperationProgress_Metric_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*OperationProgress_Metric) + // value + switch x := m.Value.(type) { + case *OperationProgress_Metric_IntValue: + b.EncodeVarint(2<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.IntValue)) + case *OperationProgress_Metric_DoubleValue: + b.EncodeVarint(3<<3 | proto.WireFixed64) + b.EncodeFixed64(math.Float64bits(x.DoubleValue)) + case *OperationProgress_Metric_StringValue: + b.EncodeVarint(4<<3 | proto.WireBytes) + b.EncodeStringBytes(x.StringValue) + case nil: + default: + return fmt.Errorf("OperationProgress_Metric.Value has unexpected type %T", x) + } + return nil +} + +func _OperationProgress_Metric_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*OperationProgress_Metric) + switch tag { + case 2: // value.int_value + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.Value = &OperationProgress_Metric_IntValue{int64(x)} + return true, err + case 3: // value.double_value + if wire != proto.WireFixed64 { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeFixed64() + m.Value = &OperationProgress_Metric_DoubleValue{math.Float64frombits(x)} + return true, err + case 4: // value.string_value + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Value = &OperationProgress_Metric_StringValue{x} + return true, err + default: + return false, nil + } +} + +func _OperationProgress_Metric_OneofSizer(msg proto.Message) (n int) { + m := msg.(*OperationProgress_Metric) + // value + switch x := m.Value.(type) { + case *OperationProgress_Metric_IntValue: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(x.IntValue)) + case *OperationProgress_Metric_DoubleValue: + n += 1 // tag and wire + n += 8 + case *OperationProgress_Metric_StringValue: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(len(x.StringValue))) + n += len(x.StringValue) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + // CreateClusterRequest creates a cluster. type CreateClusterRequest struct { - // The Google Developers Console [project ID or project + // Deprecated. The Google Developers Console [project ID or project // number](https://support.google.com/cloud/answer/6158840). - // This field is deprecated, use parent instead. - ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - // The name of the Google Compute Engine + // This field has been deprecated and replaced by the parent field. + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the Google Compute Engine // [zone](/compute/docs/zones#available) in which the cluster // resides. - // This field is deprecated, use parent instead. - Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` + // This field has been deprecated and replaced by the parent field. + Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` // Deprecated: Do not use. // A [cluster // resource](/container-engine/reference/rest/v1beta1/projects.zones.clusters) Cluster *Cluster `protobuf:"bytes,3,opt,name=cluster,proto3" json:"cluster,omitempty"` @@ -2098,7 +3153,7 @@ func (m *CreateClusterRequest) Reset() { *m = CreateClusterRequest{} } func (m *CreateClusterRequest) String() string { return proto.CompactTextString(m) } func (*CreateClusterRequest) ProtoMessage() {} func (*CreateClusterRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{16} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{22} } func (m *CreateClusterRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateClusterRequest.Unmarshal(m, b) @@ -2118,6 +3173,7 @@ func (m *CreateClusterRequest) XXX_DiscardUnknown() { var xxx_messageInfo_CreateClusterRequest proto.InternalMessageInfo +// Deprecated: Do not use. func (m *CreateClusterRequest) GetProjectId() string { if m != nil { return m.ProjectId @@ -2125,6 +3181,7 @@ func (m *CreateClusterRequest) GetProjectId() string { return "" } +// Deprecated: Do not use. func (m *CreateClusterRequest) GetZone() string { if m != nil { return m.Zone @@ -2148,18 +3205,18 @@ func (m *CreateClusterRequest) GetParent() string { // GetClusterRequest gets the settings of a cluster. type GetClusterRequest struct { - // The Google Developers Console [project ID or project + // Deprecated. The Google Developers Console [project ID or project // number](https://support.google.com/cloud/answer/6158840). - // This field is deprecated, use name instead. - ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - // The name of the Google Compute Engine + // This field has been deprecated and replaced by the name field. + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the Google Compute Engine // [zone](/compute/docs/zones#available) in which the cluster // resides. - // This field is deprecated, use name instead. - Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` - // The name of the cluster to retrieve. - // This field is deprecated, use name instead. - ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` + // This field has been deprecated and replaced by the name field. + Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the cluster to retrieve. + // This field has been deprecated and replaced by the name field. + ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` // Deprecated: Do not use. // The name (project, location, cluster) of the cluster to retrieve. // Specified in the format 'projects/*/locations/*/clusters/*'. Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"` @@ -2172,7 +3229,7 @@ func (m *GetClusterRequest) Reset() { *m = GetClusterRequest{} } func (m *GetClusterRequest) String() string { return proto.CompactTextString(m) } func (*GetClusterRequest) ProtoMessage() {} func (*GetClusterRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{17} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{23} } func (m *GetClusterRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetClusterRequest.Unmarshal(m, b) @@ -2192,6 +3249,7 @@ func (m *GetClusterRequest) XXX_DiscardUnknown() { var xxx_messageInfo_GetClusterRequest proto.InternalMessageInfo +// Deprecated: Do not use. func (m *GetClusterRequest) GetProjectId() string { if m != nil { return m.ProjectId @@ -2199,6 +3257,7 @@ func (m *GetClusterRequest) GetProjectId() string { return "" } +// Deprecated: Do not use. func (m *GetClusterRequest) GetZone() string { if m != nil { return m.Zone @@ -2206,6 +3265,7 @@ func (m *GetClusterRequest) GetZone() string { return "" } +// Deprecated: Do not use. func (m *GetClusterRequest) GetClusterId() string { if m != nil { return m.ClusterId @@ -2222,18 +3282,18 @@ func (m *GetClusterRequest) GetName() string { // UpdateClusterRequest updates the settings of a cluster. type UpdateClusterRequest struct { - // The Google Developers Console [project ID or project + // Deprecated. The Google Developers Console [project ID or project // number](https://support.google.com/cloud/answer/6158840). - // This field is deprecated, use name instead. - ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - // The name of the Google Compute Engine + // This field has been deprecated and replaced by the name field. + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the Google Compute Engine // [zone](/compute/docs/zones#available) in which the cluster // resides. - // This field is deprecated, use name instead. - Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` - // The name of the cluster to upgrade. - // This field is deprecated, use name instead. - ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` + // This field has been deprecated and replaced by the name field. + Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the cluster to upgrade. + // This field has been deprecated and replaced by the name field. + ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` // Deprecated: Do not use. // A description of the update. Update *ClusterUpdate `protobuf:"bytes,4,opt,name=update,proto3" json:"update,omitempty"` // The name (project, location, cluster) of the cluster to update. @@ -2248,7 +3308,7 @@ func (m *UpdateClusterRequest) Reset() { *m = UpdateClusterRequest{} } func (m *UpdateClusterRequest) String() string { return proto.CompactTextString(m) } func (*UpdateClusterRequest) ProtoMessage() {} func (*UpdateClusterRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{18} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{24} } func (m *UpdateClusterRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UpdateClusterRequest.Unmarshal(m, b) @@ -2268,6 +3328,7 @@ func (m *UpdateClusterRequest) XXX_DiscardUnknown() { var xxx_messageInfo_UpdateClusterRequest proto.InternalMessageInfo +// Deprecated: Do not use. func (m *UpdateClusterRequest) GetProjectId() string { if m != nil { return m.ProjectId @@ -2275,6 +3336,7 @@ func (m *UpdateClusterRequest) GetProjectId() string { return "" } +// Deprecated: Do not use. func (m *UpdateClusterRequest) GetZone() string { if m != nil { return m.Zone @@ -2282,6 +3344,7 @@ func (m *UpdateClusterRequest) GetZone() string { return "" } +// Deprecated: Do not use. func (m *UpdateClusterRequest) GetClusterId() string { if m != nil { return m.ClusterId @@ -2303,20 +3366,688 @@ func (m *UpdateClusterRequest) GetName() string { return "" } -// SetMasterAuthRequest updates the admin password of a cluster. -type SetMasterAuthRequest struct { - // The Google Developers Console [project ID or project +// SetNodePoolVersionRequest updates the version of a node pool. +type UpdateNodePoolRequest struct { + // Deprecated. The Google Developers Console [project ID or project // number](https://support.google.com/cloud/answer/6158840). - // This field is deprecated, use name instead. - ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - // The name of the Google Compute Engine + // This field has been deprecated and replaced by the name field. + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the Google Compute Engine // [zone](/compute/docs/zones#available) in which the cluster // resides. - // This field is deprecated, use name instead. + // This field has been deprecated and replaced by the name field. + Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the cluster to upgrade. + // This field has been deprecated and replaced by the name field. + ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the node pool to upgrade. + // This field has been deprecated and replaced by the name field. + NodePoolId string `protobuf:"bytes,4,opt,name=node_pool_id,json=nodePoolId,proto3" json:"node_pool_id,omitempty"` // Deprecated: Do not use. + // The Kubernetes version to change the nodes to (typically an + // upgrade). + // + // Users may specify either explicit versions offered by Kubernetes Engine or + // version aliases, which have the following behavior: + // + // - "latest": picks the highest valid Kubernetes version + // - "1.X": picks the highest valid patch+gke.N patch in the 1.X version + // - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version + // - "1.X.Y-gke.N": picks an explicit Kubernetes version + // - "-": picks the Kubernetes master version + NodeVersion string `protobuf:"bytes,5,opt,name=node_version,json=nodeVersion,proto3" json:"node_version,omitempty"` + // The desired image type for the node pool. + ImageType string `protobuf:"bytes,6,opt,name=image_type,json=imageType,proto3" json:"image_type,omitempty"` + // The name (project, location, cluster, node pool) of the node pool to + // update. Specified in the format + // 'projects/*/locations/*/clusters/*/nodePools/*'. + Name string `protobuf:"bytes,8,opt,name=name,proto3" json:"name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UpdateNodePoolRequest) Reset() { *m = UpdateNodePoolRequest{} } +func (m *UpdateNodePoolRequest) String() string { return proto.CompactTextString(m) } +func (*UpdateNodePoolRequest) ProtoMessage() {} +func (*UpdateNodePoolRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{25} +} +func (m *UpdateNodePoolRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UpdateNodePoolRequest.Unmarshal(m, b) +} +func (m *UpdateNodePoolRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UpdateNodePoolRequest.Marshal(b, m, deterministic) +} +func (dst *UpdateNodePoolRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_UpdateNodePoolRequest.Merge(dst, src) +} +func (m *UpdateNodePoolRequest) XXX_Size() int { + return xxx_messageInfo_UpdateNodePoolRequest.Size(m) +} +func (m *UpdateNodePoolRequest) XXX_DiscardUnknown() { + xxx_messageInfo_UpdateNodePoolRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_UpdateNodePoolRequest proto.InternalMessageInfo + +// Deprecated: Do not use. +func (m *UpdateNodePoolRequest) GetProjectId() string { + if m != nil { + return m.ProjectId + } + return "" +} + +// Deprecated: Do not use. +func (m *UpdateNodePoolRequest) GetZone() string { + if m != nil { + return m.Zone + } + return "" +} + +// Deprecated: Do not use. +func (m *UpdateNodePoolRequest) GetClusterId() string { + if m != nil { + return m.ClusterId + } + return "" +} + +// Deprecated: Do not use. +func (m *UpdateNodePoolRequest) GetNodePoolId() string { + if m != nil { + return m.NodePoolId + } + return "" +} + +func (m *UpdateNodePoolRequest) GetNodeVersion() string { + if m != nil { + return m.NodeVersion + } + return "" +} + +func (m *UpdateNodePoolRequest) GetImageType() string { + if m != nil { + return m.ImageType + } + return "" +} + +func (m *UpdateNodePoolRequest) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +// SetNodePoolAutoscalingRequest sets the autoscaler settings of a node pool. +type SetNodePoolAutoscalingRequest struct { + // Deprecated. The Google Developers Console [project ID or project + // number](https://support.google.com/cloud/answer/6158840). + // This field has been deprecated and replaced by the name field. + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the Google Compute Engine + // [zone](/compute/docs/zones#available) in which the cluster + // resides. + // This field has been deprecated and replaced by the name field. + Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the cluster to upgrade. + // This field has been deprecated and replaced by the name field. + ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the node pool to upgrade. + // This field has been deprecated and replaced by the name field. + NodePoolId string `protobuf:"bytes,4,opt,name=node_pool_id,json=nodePoolId,proto3" json:"node_pool_id,omitempty"` // Deprecated: Do not use. + // Autoscaling configuration for the node pool. + Autoscaling *NodePoolAutoscaling `protobuf:"bytes,5,opt,name=autoscaling,proto3" json:"autoscaling,omitempty"` + // The name (project, location, cluster, node pool) of the node pool to set + // autoscaler settings. Specified in the format + // 'projects/*/locations/*/clusters/*/nodePools/*'. + Name string `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SetNodePoolAutoscalingRequest) Reset() { *m = SetNodePoolAutoscalingRequest{} } +func (m *SetNodePoolAutoscalingRequest) String() string { return proto.CompactTextString(m) } +func (*SetNodePoolAutoscalingRequest) ProtoMessage() {} +func (*SetNodePoolAutoscalingRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{26} +} +func (m *SetNodePoolAutoscalingRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SetNodePoolAutoscalingRequest.Unmarshal(m, b) +} +func (m *SetNodePoolAutoscalingRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SetNodePoolAutoscalingRequest.Marshal(b, m, deterministic) +} +func (dst *SetNodePoolAutoscalingRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_SetNodePoolAutoscalingRequest.Merge(dst, src) +} +func (m *SetNodePoolAutoscalingRequest) XXX_Size() int { + return xxx_messageInfo_SetNodePoolAutoscalingRequest.Size(m) +} +func (m *SetNodePoolAutoscalingRequest) XXX_DiscardUnknown() { + xxx_messageInfo_SetNodePoolAutoscalingRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_SetNodePoolAutoscalingRequest proto.InternalMessageInfo + +// Deprecated: Do not use. +func (m *SetNodePoolAutoscalingRequest) GetProjectId() string { + if m != nil { + return m.ProjectId + } + return "" +} + +// Deprecated: Do not use. +func (m *SetNodePoolAutoscalingRequest) GetZone() string { + if m != nil { + return m.Zone + } + return "" +} + +// Deprecated: Do not use. +func (m *SetNodePoolAutoscalingRequest) GetClusterId() string { + if m != nil { + return m.ClusterId + } + return "" +} + +// Deprecated: Do not use. +func (m *SetNodePoolAutoscalingRequest) GetNodePoolId() string { + if m != nil { + return m.NodePoolId + } + return "" +} + +func (m *SetNodePoolAutoscalingRequest) GetAutoscaling() *NodePoolAutoscaling { + if m != nil { + return m.Autoscaling + } + return nil +} + +func (m *SetNodePoolAutoscalingRequest) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +// SetLoggingServiceRequest sets the logging service of a cluster. +type SetLoggingServiceRequest struct { + // Deprecated. The Google Developers Console [project ID or project + // number](https://support.google.com/cloud/answer/6158840). + // This field has been deprecated and replaced by the name field. + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the Google Compute Engine + // [zone](/compute/docs/zones#available) in which the cluster + // resides. + // This field has been deprecated and replaced by the name field. Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` - // The name of the cluster to upgrade. - // This field is deprecated, use name instead. - ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` + // Deprecated. The name of the cluster to upgrade. + // This field has been deprecated and replaced by the name field. + ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` // Deprecated: Do not use. + // The logging service the cluster should use to write metrics. + // Currently available options: + // + // * "logging.googleapis.com" - the Google Cloud Logging service + // * "none" - no metrics will be exported from the cluster + LoggingService string `protobuf:"bytes,4,opt,name=logging_service,json=loggingService,proto3" json:"logging_service,omitempty"` + // The name (project, location, cluster) of the cluster to set logging. + // Specified in the format 'projects/*/locations/*/clusters/*'. + Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SetLoggingServiceRequest) Reset() { *m = SetLoggingServiceRequest{} } +func (m *SetLoggingServiceRequest) String() string { return proto.CompactTextString(m) } +func (*SetLoggingServiceRequest) ProtoMessage() {} +func (*SetLoggingServiceRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{27} +} +func (m *SetLoggingServiceRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SetLoggingServiceRequest.Unmarshal(m, b) +} +func (m *SetLoggingServiceRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SetLoggingServiceRequest.Marshal(b, m, deterministic) +} +func (dst *SetLoggingServiceRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_SetLoggingServiceRequest.Merge(dst, src) +} +func (m *SetLoggingServiceRequest) XXX_Size() int { + return xxx_messageInfo_SetLoggingServiceRequest.Size(m) +} +func (m *SetLoggingServiceRequest) XXX_DiscardUnknown() { + xxx_messageInfo_SetLoggingServiceRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_SetLoggingServiceRequest proto.InternalMessageInfo + +// Deprecated: Do not use. +func (m *SetLoggingServiceRequest) GetProjectId() string { + if m != nil { + return m.ProjectId + } + return "" +} + +func (m *SetLoggingServiceRequest) GetZone() string { + if m != nil { + return m.Zone + } + return "" +} + +// Deprecated: Do not use. +func (m *SetLoggingServiceRequest) GetClusterId() string { + if m != nil { + return m.ClusterId + } + return "" +} + +func (m *SetLoggingServiceRequest) GetLoggingService() string { + if m != nil { + return m.LoggingService + } + return "" +} + +func (m *SetLoggingServiceRequest) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +// SetMonitoringServiceRequest sets the monitoring service of a cluster. +type SetMonitoringServiceRequest struct { + // Deprecated. The Google Developers Console [project ID or project + // number](https://support.google.com/cloud/answer/6158840). + // This field has been deprecated and replaced by the name field. + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the Google Compute Engine + // [zone](/compute/docs/zones#available) in which the cluster + // resides. + // This field has been deprecated and replaced by the name field. + Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the cluster to upgrade. + // This field has been deprecated and replaced by the name field. + ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` // Deprecated: Do not use. + // The monitoring service the cluster should use to write metrics. + // Currently available options: + // + // * "monitoring.googleapis.com" - the Google Cloud Monitoring service + // * "none" - no metrics will be exported from the cluster + MonitoringService string `protobuf:"bytes,4,opt,name=monitoring_service,json=monitoringService,proto3" json:"monitoring_service,omitempty"` + // The name (project, location, cluster) of the cluster to set monitoring. + // Specified in the format 'projects/*/locations/*/clusters/*'. + Name string `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SetMonitoringServiceRequest) Reset() { *m = SetMonitoringServiceRequest{} } +func (m *SetMonitoringServiceRequest) String() string { return proto.CompactTextString(m) } +func (*SetMonitoringServiceRequest) ProtoMessage() {} +func (*SetMonitoringServiceRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{28} +} +func (m *SetMonitoringServiceRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SetMonitoringServiceRequest.Unmarshal(m, b) +} +func (m *SetMonitoringServiceRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SetMonitoringServiceRequest.Marshal(b, m, deterministic) +} +func (dst *SetMonitoringServiceRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_SetMonitoringServiceRequest.Merge(dst, src) +} +func (m *SetMonitoringServiceRequest) XXX_Size() int { + return xxx_messageInfo_SetMonitoringServiceRequest.Size(m) +} +func (m *SetMonitoringServiceRequest) XXX_DiscardUnknown() { + xxx_messageInfo_SetMonitoringServiceRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_SetMonitoringServiceRequest proto.InternalMessageInfo + +// Deprecated: Do not use. +func (m *SetMonitoringServiceRequest) GetProjectId() string { + if m != nil { + return m.ProjectId + } + return "" +} + +// Deprecated: Do not use. +func (m *SetMonitoringServiceRequest) GetZone() string { + if m != nil { + return m.Zone + } + return "" +} + +// Deprecated: Do not use. +func (m *SetMonitoringServiceRequest) GetClusterId() string { + if m != nil { + return m.ClusterId + } + return "" +} + +func (m *SetMonitoringServiceRequest) GetMonitoringService() string { + if m != nil { + return m.MonitoringService + } + return "" +} + +func (m *SetMonitoringServiceRequest) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +// SetAddonsRequest sets the addons associated with the cluster. +type SetAddonsConfigRequest struct { + // Deprecated. The Google Developers Console [project ID or project + // number](https://support.google.com/cloud/answer/6158840). + // This field has been deprecated and replaced by the name field. + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the Google Compute Engine + // [zone](/compute/docs/zones#available) in which the cluster + // resides. + // This field has been deprecated and replaced by the name field. + Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the cluster to upgrade. + // This field has been deprecated and replaced by the name field. + ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` // Deprecated: Do not use. + // The desired configurations for the various addons available to run in the + // cluster. + AddonsConfig *AddonsConfig `protobuf:"bytes,4,opt,name=addons_config,json=addonsConfig,proto3" json:"addons_config,omitempty"` + // The name (project, location, cluster) of the cluster to set addons. + // Specified in the format 'projects/*/locations/*/clusters/*'. + Name string `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SetAddonsConfigRequest) Reset() { *m = SetAddonsConfigRequest{} } +func (m *SetAddonsConfigRequest) String() string { return proto.CompactTextString(m) } +func (*SetAddonsConfigRequest) ProtoMessage() {} +func (*SetAddonsConfigRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{29} +} +func (m *SetAddonsConfigRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SetAddonsConfigRequest.Unmarshal(m, b) +} +func (m *SetAddonsConfigRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SetAddonsConfigRequest.Marshal(b, m, deterministic) +} +func (dst *SetAddonsConfigRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_SetAddonsConfigRequest.Merge(dst, src) +} +func (m *SetAddonsConfigRequest) XXX_Size() int { + return xxx_messageInfo_SetAddonsConfigRequest.Size(m) +} +func (m *SetAddonsConfigRequest) XXX_DiscardUnknown() { + xxx_messageInfo_SetAddonsConfigRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_SetAddonsConfigRequest proto.InternalMessageInfo + +// Deprecated: Do not use. +func (m *SetAddonsConfigRequest) GetProjectId() string { + if m != nil { + return m.ProjectId + } + return "" +} + +// Deprecated: Do not use. +func (m *SetAddonsConfigRequest) GetZone() string { + if m != nil { + return m.Zone + } + return "" +} + +// Deprecated: Do not use. +func (m *SetAddonsConfigRequest) GetClusterId() string { + if m != nil { + return m.ClusterId + } + return "" +} + +func (m *SetAddonsConfigRequest) GetAddonsConfig() *AddonsConfig { + if m != nil { + return m.AddonsConfig + } + return nil +} + +func (m *SetAddonsConfigRequest) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +// SetLocationsRequest sets the locations of the cluster. +type SetLocationsRequest struct { + // Deprecated. The Google Developers Console [project ID or project + // number](https://support.google.com/cloud/answer/6158840). + // This field has been deprecated and replaced by the name field. + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the Google Compute Engine + // [zone](/compute/docs/zones#available) in which the cluster + // resides. + // This field has been deprecated and replaced by the name field. + Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the cluster to upgrade. + // This field has been deprecated and replaced by the name field. + ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` // Deprecated: Do not use. + // The desired list of Google Compute Engine + // [zones](/compute/docs/zones#available) in which the cluster's nodes + // should be located. Changing the locations a cluster is in will result + // in nodes being either created or removed from the cluster, depending on + // whether locations are being added or removed. + // + // This list must always include the cluster's primary zone. + Locations []string `protobuf:"bytes,4,rep,name=locations,proto3" json:"locations,omitempty"` + // The name (project, location, cluster) of the cluster to set locations. + // Specified in the format 'projects/*/locations/*/clusters/*'. + Name string `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SetLocationsRequest) Reset() { *m = SetLocationsRequest{} } +func (m *SetLocationsRequest) String() string { return proto.CompactTextString(m) } +func (*SetLocationsRequest) ProtoMessage() {} +func (*SetLocationsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{30} +} +func (m *SetLocationsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SetLocationsRequest.Unmarshal(m, b) +} +func (m *SetLocationsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SetLocationsRequest.Marshal(b, m, deterministic) +} +func (dst *SetLocationsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_SetLocationsRequest.Merge(dst, src) +} +func (m *SetLocationsRequest) XXX_Size() int { + return xxx_messageInfo_SetLocationsRequest.Size(m) +} +func (m *SetLocationsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_SetLocationsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_SetLocationsRequest proto.InternalMessageInfo + +// Deprecated: Do not use. +func (m *SetLocationsRequest) GetProjectId() string { + if m != nil { + return m.ProjectId + } + return "" +} + +// Deprecated: Do not use. +func (m *SetLocationsRequest) GetZone() string { + if m != nil { + return m.Zone + } + return "" +} + +// Deprecated: Do not use. +func (m *SetLocationsRequest) GetClusterId() string { + if m != nil { + return m.ClusterId + } + return "" +} + +func (m *SetLocationsRequest) GetLocations() []string { + if m != nil { + return m.Locations + } + return nil +} + +func (m *SetLocationsRequest) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +// UpdateMasterRequest updates the master of the cluster. +type UpdateMasterRequest struct { + // Deprecated. The Google Developers Console [project ID or project + // number](https://support.google.com/cloud/answer/6158840). + // This field has been deprecated and replaced by the name field. + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the Google Compute Engine + // [zone](/compute/docs/zones#available) in which the cluster + // resides. + // This field has been deprecated and replaced by the name field. + Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the cluster to upgrade. + // This field has been deprecated and replaced by the name field. + ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` // Deprecated: Do not use. + // The Kubernetes version to change the master to. + // + // Users may specify either explicit versions offered by + // Kubernetes Engine or version aliases, which have the following behavior: + // + // - "latest": picks the highest valid Kubernetes version + // - "1.X": picks the highest valid patch+gke.N patch in the 1.X version + // - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version + // - "1.X.Y-gke.N": picks an explicit Kubernetes version + // - "-": picks the default Kubernetes version + MasterVersion string `protobuf:"bytes,4,opt,name=master_version,json=masterVersion,proto3" json:"master_version,omitempty"` + // The name (project, location, cluster) of the cluster to update. + // Specified in the format 'projects/*/locations/*/clusters/*'. + Name string `protobuf:"bytes,7,opt,name=name,proto3" json:"name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UpdateMasterRequest) Reset() { *m = UpdateMasterRequest{} } +func (m *UpdateMasterRequest) String() string { return proto.CompactTextString(m) } +func (*UpdateMasterRequest) ProtoMessage() {} +func (*UpdateMasterRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{31} +} +func (m *UpdateMasterRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UpdateMasterRequest.Unmarshal(m, b) +} +func (m *UpdateMasterRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UpdateMasterRequest.Marshal(b, m, deterministic) +} +func (dst *UpdateMasterRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_UpdateMasterRequest.Merge(dst, src) +} +func (m *UpdateMasterRequest) XXX_Size() int { + return xxx_messageInfo_UpdateMasterRequest.Size(m) +} +func (m *UpdateMasterRequest) XXX_DiscardUnknown() { + xxx_messageInfo_UpdateMasterRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_UpdateMasterRequest proto.InternalMessageInfo + +// Deprecated: Do not use. +func (m *UpdateMasterRequest) GetProjectId() string { + if m != nil { + return m.ProjectId + } + return "" +} + +// Deprecated: Do not use. +func (m *UpdateMasterRequest) GetZone() string { + if m != nil { + return m.Zone + } + return "" +} + +// Deprecated: Do not use. +func (m *UpdateMasterRequest) GetClusterId() string { + if m != nil { + return m.ClusterId + } + return "" +} + +func (m *UpdateMasterRequest) GetMasterVersion() string { + if m != nil { + return m.MasterVersion + } + return "" +} + +func (m *UpdateMasterRequest) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +// SetMasterAuthRequest updates the admin password of a cluster. +type SetMasterAuthRequest struct { + // Deprecated. The Google Developers Console [project ID or project + // number](https://support.google.com/cloud/answer/6158840). + // This field has been deprecated and replaced by the name field. + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the Google Compute Engine + // [zone](/compute/docs/zones#available) in which the cluster + // resides. + // This field has been deprecated and replaced by the name field. + Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the cluster to upgrade. + // This field has been deprecated and replaced by the name field. + ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` // Deprecated: Do not use. // The exact form of action to be taken on the master auth. Action SetMasterAuthRequest_Action `protobuf:"varint,4,opt,name=action,proto3,enum=google.container.v1beta1.SetMasterAuthRequest_Action" json:"action,omitempty"` // A description of the update. @@ -2333,7 +4064,7 @@ func (m *SetMasterAuthRequest) Reset() { *m = SetMasterAuthRequest{} } func (m *SetMasterAuthRequest) String() string { return proto.CompactTextString(m) } func (*SetMasterAuthRequest) ProtoMessage() {} func (*SetMasterAuthRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{19} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{32} } func (m *SetMasterAuthRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetMasterAuthRequest.Unmarshal(m, b) @@ -2353,6 +4084,7 @@ func (m *SetMasterAuthRequest) XXX_DiscardUnknown() { var xxx_messageInfo_SetMasterAuthRequest proto.InternalMessageInfo +// Deprecated: Do not use. func (m *SetMasterAuthRequest) GetProjectId() string { if m != nil { return m.ProjectId @@ -2360,6 +4092,7 @@ func (m *SetMasterAuthRequest) GetProjectId() string { return "" } +// Deprecated: Do not use. func (m *SetMasterAuthRequest) GetZone() string { if m != nil { return m.Zone @@ -2367,6 +4100,7 @@ func (m *SetMasterAuthRequest) GetZone() string { return "" } +// Deprecated: Do not use. func (m *SetMasterAuthRequest) GetClusterId() string { if m != nil { return m.ClusterId @@ -2397,18 +4131,18 @@ func (m *SetMasterAuthRequest) GetName() string { // DeleteClusterRequest deletes a cluster. type DeleteClusterRequest struct { - // The Google Developers Console [project ID or project + // Deprecated. The Google Developers Console [project ID or project // number](https://support.google.com/cloud/answer/6158840). - // This field is deprecated, use name instead. - ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - // The name of the Google Compute Engine + // This field has been deprecated and replaced by the name field. + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the Google Compute Engine // [zone](/compute/docs/zones#available) in which the cluster // resides. - // This field is deprecated, use name instead. - Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` - // The name of the cluster to delete. - // This field is deprecated, use name instead. - ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` + // This field has been deprecated and replaced by the name field. + Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the cluster to delete. + // This field has been deprecated and replaced by the name field. + ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` // Deprecated: Do not use. // The name (project, location, cluster) of the cluster to delete. // Specified in the format 'projects/*/locations/*/clusters/*'. Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` @@ -2421,7 +4155,7 @@ func (m *DeleteClusterRequest) Reset() { *m = DeleteClusterRequest{} } func (m *DeleteClusterRequest) String() string { return proto.CompactTextString(m) } func (*DeleteClusterRequest) ProtoMessage() {} func (*DeleteClusterRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{20} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{33} } func (m *DeleteClusterRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteClusterRequest.Unmarshal(m, b) @@ -2441,6 +4175,7 @@ func (m *DeleteClusterRequest) XXX_DiscardUnknown() { var xxx_messageInfo_DeleteClusterRequest proto.InternalMessageInfo +// Deprecated: Do not use. func (m *DeleteClusterRequest) GetProjectId() string { if m != nil { return m.ProjectId @@ -2448,6 +4183,7 @@ func (m *DeleteClusterRequest) GetProjectId() string { return "" } +// Deprecated: Do not use. func (m *DeleteClusterRequest) GetZone() string { if m != nil { return m.Zone @@ -2455,6 +4191,7 @@ func (m *DeleteClusterRequest) GetZone() string { return "" } +// Deprecated: Do not use. func (m *DeleteClusterRequest) GetClusterId() string { if m != nil { return m.ClusterId @@ -2471,15 +4208,15 @@ func (m *DeleteClusterRequest) GetName() string { // ListClustersRequest lists clusters. type ListClustersRequest struct { - // The Google Developers Console [project ID or project + // Deprecated. The Google Developers Console [project ID or project // number](https://support.google.com/cloud/answer/6158840). - // This field is deprecated, use parent instead. - ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - // The name of the Google Compute Engine + // This field has been deprecated and replaced by the parent field. + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the Google Compute Engine // [zone](/compute/docs/zones#available) in which the cluster // resides, or "-" for all zones. - // This field is deprecated, use parent instead. - Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` + // This field has been deprecated and replaced by the parent field. + Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` // Deprecated: Do not use. // The parent (project and location) where the clusters will be listed. // Specified in the format 'projects/*/locations/*'. // Location "-" matches all zones and all regions. @@ -2493,7 +4230,7 @@ func (m *ListClustersRequest) Reset() { *m = ListClustersRequest{} } func (m *ListClustersRequest) String() string { return proto.CompactTextString(m) } func (*ListClustersRequest) ProtoMessage() {} func (*ListClustersRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{21} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{34} } func (m *ListClustersRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListClustersRequest.Unmarshal(m, b) @@ -2513,6 +4250,7 @@ func (m *ListClustersRequest) XXX_DiscardUnknown() { var xxx_messageInfo_ListClustersRequest proto.InternalMessageInfo +// Deprecated: Do not use. func (m *ListClustersRequest) GetProjectId() string { if m != nil { return m.ProjectId @@ -2520,6 +4258,7 @@ func (m *ListClustersRequest) GetProjectId() string { return "" } +// Deprecated: Do not use. func (m *ListClustersRequest) GetZone() string { if m != nil { return m.Zone @@ -2551,7 +4290,7 @@ func (m *ListClustersResponse) Reset() { *m = ListClustersResponse{} } func (m *ListClustersResponse) String() string { return proto.CompactTextString(m) } func (*ListClustersResponse) ProtoMessage() {} func (*ListClustersResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{22} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{35} } func (m *ListClustersResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListClustersResponse.Unmarshal(m, b) @@ -2587,18 +4326,18 @@ func (m *ListClustersResponse) GetMissingZones() []string { // GetOperationRequest gets a single operation. type GetOperationRequest struct { - // The Google Developers Console [project ID or project + // Deprecated. The Google Developers Console [project ID or project // number](https://support.google.com/cloud/answer/6158840). - // This field is deprecated, use name instead. - ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - // The name of the Google Compute Engine + // This field has been deprecated and replaced by the name field. + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the Google Compute Engine // [zone](/compute/docs/zones#available) in which the cluster // resides. - // This field is deprecated, use name instead. - Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` - // The server-assigned `name` of the operation. - // This field is deprecated, use name instead. - OperationId string `protobuf:"bytes,3,opt,name=operation_id,json=operationId,proto3" json:"operation_id,omitempty"` + // This field has been deprecated and replaced by the name field. + Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` // Deprecated: Do not use. + // Deprecated. The server-assigned `name` of the operation. + // This field has been deprecated and replaced by the name field. + OperationId string `protobuf:"bytes,3,opt,name=operation_id,json=operationId,proto3" json:"operation_id,omitempty"` // Deprecated: Do not use. // The name (project, location, operation id) of the operation to get. // Specified in the format 'projects/*/locations/*/operations/*'. Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"` @@ -2611,7 +4350,7 @@ func (m *GetOperationRequest) Reset() { *m = GetOperationRequest{} } func (m *GetOperationRequest) String() string { return proto.CompactTextString(m) } func (*GetOperationRequest) ProtoMessage() {} func (*GetOperationRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{23} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{36} } func (m *GetOperationRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetOperationRequest.Unmarshal(m, b) @@ -2631,6 +4370,7 @@ func (m *GetOperationRequest) XXX_DiscardUnknown() { var xxx_messageInfo_GetOperationRequest proto.InternalMessageInfo +// Deprecated: Do not use. func (m *GetOperationRequest) GetProjectId() string { if m != nil { return m.ProjectId @@ -2638,6 +4378,7 @@ func (m *GetOperationRequest) GetProjectId() string { return "" } +// Deprecated: Do not use. func (m *GetOperationRequest) GetZone() string { if m != nil { return m.Zone @@ -2645,6 +4386,7 @@ func (m *GetOperationRequest) GetZone() string { return "" } +// Deprecated: Do not use. func (m *GetOperationRequest) GetOperationId() string { if m != nil { return m.OperationId @@ -2661,14 +4403,14 @@ func (m *GetOperationRequest) GetName() string { // ListOperationsRequest lists operations. type ListOperationsRequest struct { - // The Google Developers Console [project ID or project + // Deprecated. The Google Developers Console [project ID or project // number](https://support.google.com/cloud/answer/6158840). - // This field is deprecated, use parent instead. - ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - // The name of the Google Compute Engine [zone](/compute/docs/zones#available) - // to return operations for, or `-` for all zones. - // This field is deprecated, use parent instead. - Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` + // This field has been deprecated and replaced by the parent field. + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the Google Compute Engine + // [zone](/compute/docs/zones#available) to return operations for, or `-` for + // all zones. This field has been deprecated and replaced by the parent field. + Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` // Deprecated: Do not use. // The parent (project and location) where the operations will be listed. // Specified in the format 'projects/*/locations/*'. // Location "-" matches all zones and all regions. @@ -2682,7 +4424,7 @@ func (m *ListOperationsRequest) Reset() { *m = ListOperationsRequest{} } func (m *ListOperationsRequest) String() string { return proto.CompactTextString(m) } func (*ListOperationsRequest) ProtoMessage() {} func (*ListOperationsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{24} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{37} } func (m *ListOperationsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListOperationsRequest.Unmarshal(m, b) @@ -2702,6 +4444,7 @@ func (m *ListOperationsRequest) XXX_DiscardUnknown() { var xxx_messageInfo_ListOperationsRequest proto.InternalMessageInfo +// Deprecated: Do not use. func (m *ListOperationsRequest) GetProjectId() string { if m != nil { return m.ProjectId @@ -2709,6 +4452,7 @@ func (m *ListOperationsRequest) GetProjectId() string { return "" } +// Deprecated: Do not use. func (m *ListOperationsRequest) GetZone() string { if m != nil { return m.Zone @@ -2725,17 +4469,17 @@ func (m *ListOperationsRequest) GetParent() string { // CancelOperationRequest cancels a single operation. type CancelOperationRequest struct { - // The Google Developers Console [project ID or project + // Deprecated. The Google Developers Console [project ID or project // number](https://support.google.com/cloud/answer/6158840). - // This field is deprecated, use name instead. - ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - // The name of the Google Compute Engine + // This field has been deprecated and replaced by the name field. + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the Google Compute Engine // [zone](/compute/docs/zones#available) in which the operation resides. - // This field is deprecated, use name instead. - Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` - // The server-assigned `name` of the operation. - // This field is deprecated, use name instead. - OperationId string `protobuf:"bytes,3,opt,name=operation_id,json=operationId,proto3" json:"operation_id,omitempty"` + // This field has been deprecated and replaced by the name field. + Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` // Deprecated: Do not use. + // Deprecated. The server-assigned `name` of the operation. + // This field has been deprecated and replaced by the name field. + OperationId string `protobuf:"bytes,3,opt,name=operation_id,json=operationId,proto3" json:"operation_id,omitempty"` // Deprecated: Do not use. // The name (project, location, operation id) of the operation to cancel. // Specified in the format 'projects/*/locations/*/operations/*'. Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` @@ -2748,7 +4492,7 @@ func (m *CancelOperationRequest) Reset() { *m = CancelOperationRequest{} func (m *CancelOperationRequest) String() string { return proto.CompactTextString(m) } func (*CancelOperationRequest) ProtoMessage() {} func (*CancelOperationRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{25} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{38} } func (m *CancelOperationRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CancelOperationRequest.Unmarshal(m, b) @@ -2768,6 +4512,7 @@ func (m *CancelOperationRequest) XXX_DiscardUnknown() { var xxx_messageInfo_CancelOperationRequest proto.InternalMessageInfo +// Deprecated: Do not use. func (m *CancelOperationRequest) GetProjectId() string { if m != nil { return m.ProjectId @@ -2775,6 +4520,7 @@ func (m *CancelOperationRequest) GetProjectId() string { return "" } +// Deprecated: Do not use. func (m *CancelOperationRequest) GetZone() string { if m != nil { return m.Zone @@ -2782,6 +4528,7 @@ func (m *CancelOperationRequest) GetZone() string { return "" } +// Deprecated: Do not use. func (m *CancelOperationRequest) GetOperationId() string { if m != nil { return m.OperationId @@ -2812,7 +4559,7 @@ func (m *ListOperationsResponse) Reset() { *m = ListOperationsResponse{} func (m *ListOperationsResponse) String() string { return proto.CompactTextString(m) } func (*ListOperationsResponse) ProtoMessage() {} func (*ListOperationsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{26} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{39} } func (m *ListOperationsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListOperationsResponse.Unmarshal(m, b) @@ -2846,16 +4593,16 @@ func (m *ListOperationsResponse) GetMissingZones() []string { return nil } -// Gets the current Container Engine service configuration. +// Gets the current Kubernetes Engine service configuration. type GetServerConfigRequest struct { - // The Google Developers Console [project ID or project + // Deprecated. The Google Developers Console [project ID or project // number](https://support.google.com/cloud/answer/6158840). - // This field is deprecated, use name instead. - ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - // The name of the Google Compute Engine [zone](/compute/docs/zones#available) - // to return operations for. - // This field is deprecated, use name instead. - Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` + // This field has been deprecated and replaced by the name field. + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the Google Compute Engine + // [zone](/compute/docs/zones#available) to return operations for. + // This field has been deprecated and replaced by the name field. + Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` // Deprecated: Do not use. // The name (project and location) of the server config to get // Specified in the format 'projects/*/locations/*'. Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` @@ -2868,7 +4615,7 @@ func (m *GetServerConfigRequest) Reset() { *m = GetServerConfigRequest{} func (m *GetServerConfigRequest) String() string { return proto.CompactTextString(m) } func (*GetServerConfigRequest) ProtoMessage() {} func (*GetServerConfigRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{27} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{40} } func (m *GetServerConfigRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetServerConfigRequest.Unmarshal(m, b) @@ -2888,6 +4635,7 @@ func (m *GetServerConfigRequest) XXX_DiscardUnknown() { var xxx_messageInfo_GetServerConfigRequest proto.InternalMessageInfo +// Deprecated: Do not use. func (m *GetServerConfigRequest) GetProjectId() string { if m != nil { return m.ProjectId @@ -2895,6 +4643,7 @@ func (m *GetServerConfigRequest) GetProjectId() string { return "" } +// Deprecated: Do not use. func (m *GetServerConfigRequest) GetZone() string { if m != nil { return m.Zone @@ -2909,7 +4658,7 @@ func (m *GetServerConfigRequest) GetName() string { return "" } -// Container Engine service configuration. +// Kubernetes Engine service configuration. type ServerConfig struct { // Version of Kubernetes the service deploys by default. DefaultClusterVersion string `protobuf:"bytes,1,opt,name=default_cluster_version,json=defaultClusterVersion,proto3" json:"default_cluster_version,omitempty"` @@ -2930,7 +4679,7 @@ func (m *ServerConfig) Reset() { *m = ServerConfig{} } func (m *ServerConfig) String() string { return proto.CompactTextString(m) } func (*ServerConfig) ProtoMessage() {} func (*ServerConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{28} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{41} } func (m *ServerConfig) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ServerConfig.Unmarshal(m, b) @@ -2987,22 +4736,23 @@ func (m *ServerConfig) GetValidMasterVersions() []string { // CreateNodePoolRequest creates a node pool for a cluster. type CreateNodePoolRequest struct { - // The Google Developers Console [project ID or project + // Deprecated. The Google Developers Console [project ID or project // number](https://developers.google.com/console/help/new/#projectnumber). - // This field is deprecated, use parent instead. - ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - // The name of the Google Compute Engine + // This field has been deprecated and replaced by the parent field. + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the Google Compute Engine // [zone](/compute/docs/zones#available) in which the cluster // resides. - // This field is deprecated, use parent instead. - Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` - // The name of the cluster. - // This field is deprecated, use parent instead. - ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` + // This field has been deprecated and replaced by the parent field. + Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the cluster. + // This field has been deprecated and replaced by the parent field. + ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` // Deprecated: Do not use. // The node pool to create. NodePool *NodePool `protobuf:"bytes,4,opt,name=node_pool,json=nodePool,proto3" json:"node_pool,omitempty"` - // The parent (project, location, cluster id) where the node pool will be created. - // Specified in the format 'projects/*/locations/*/clusters/*/nodePools/*'. + // The parent (project, location, cluster id) where the node pool will be + // created. Specified in the format + // 'projects/*/locations/*/clusters/*'. Parent string `protobuf:"bytes,6,opt,name=parent,proto3" json:"parent,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -3013,7 +4763,7 @@ func (m *CreateNodePoolRequest) Reset() { *m = CreateNodePoolRequest{} } func (m *CreateNodePoolRequest) String() string { return proto.CompactTextString(m) } func (*CreateNodePoolRequest) ProtoMessage() {} func (*CreateNodePoolRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{29} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{42} } func (m *CreateNodePoolRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateNodePoolRequest.Unmarshal(m, b) @@ -3033,6 +4783,7 @@ func (m *CreateNodePoolRequest) XXX_DiscardUnknown() { var xxx_messageInfo_CreateNodePoolRequest proto.InternalMessageInfo +// Deprecated: Do not use. func (m *CreateNodePoolRequest) GetProjectId() string { if m != nil { return m.ProjectId @@ -3040,6 +4791,7 @@ func (m *CreateNodePoolRequest) GetProjectId() string { return "" } +// Deprecated: Do not use. func (m *CreateNodePoolRequest) GetZone() string { if m != nil { return m.Zone @@ -3047,6 +4799,7 @@ func (m *CreateNodePoolRequest) GetZone() string { return "" } +// Deprecated: Do not use. func (m *CreateNodePoolRequest) GetClusterId() string { if m != nil { return m.ClusterId @@ -3070,23 +4823,24 @@ func (m *CreateNodePoolRequest) GetParent() string { // DeleteNodePoolRequest deletes a node pool for a cluster. type DeleteNodePoolRequest struct { - // The Google Developers Console [project ID or project + // Deprecated. The Google Developers Console [project ID or project // number](https://developers.google.com/console/help/new/#projectnumber). - // This field is deprecated, use name instead. - ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - // The name of the Google Compute Engine + // This field has been deprecated and replaced by the name field. + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the Google Compute Engine // [zone](/compute/docs/zones#available) in which the cluster // resides. - // This field is deprecated, use name instead. - Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` - // The name of the cluster. - // This field is deprecated, use name instead. - ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` - // The name of the node pool to delete. - // This field is deprecated, use name instead. - NodePoolId string `protobuf:"bytes,4,opt,name=node_pool_id,json=nodePoolId,proto3" json:"node_pool_id,omitempty"` - // The name (project, location, cluster, node pool id) of the node pool to delete. - // Specified in the format 'projects/*/locations/*/clusters/*/nodePools/*'. + // This field has been deprecated and replaced by the name field. + Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the cluster. + // This field has been deprecated and replaced by the name field. + ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the node pool to delete. + // This field has been deprecated and replaced by the name field. + NodePoolId string `protobuf:"bytes,4,opt,name=node_pool_id,json=nodePoolId,proto3" json:"node_pool_id,omitempty"` // Deprecated: Do not use. + // The name (project, location, cluster, node pool id) of the node pool to + // delete. Specified in the format + // 'projects/*/locations/*/clusters/*/nodePools/*'. Name string `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -3097,7 +4851,7 @@ func (m *DeleteNodePoolRequest) Reset() { *m = DeleteNodePoolRequest{} } func (m *DeleteNodePoolRequest) String() string { return proto.CompactTextString(m) } func (*DeleteNodePoolRequest) ProtoMessage() {} func (*DeleteNodePoolRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{30} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{43} } func (m *DeleteNodePoolRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteNodePoolRequest.Unmarshal(m, b) @@ -3117,6 +4871,7 @@ func (m *DeleteNodePoolRequest) XXX_DiscardUnknown() { var xxx_messageInfo_DeleteNodePoolRequest proto.InternalMessageInfo +// Deprecated: Do not use. func (m *DeleteNodePoolRequest) GetProjectId() string { if m != nil { return m.ProjectId @@ -3124,6 +4879,7 @@ func (m *DeleteNodePoolRequest) GetProjectId() string { return "" } +// Deprecated: Do not use. func (m *DeleteNodePoolRequest) GetZone() string { if m != nil { return m.Zone @@ -3131,6 +4887,7 @@ func (m *DeleteNodePoolRequest) GetZone() string { return "" } +// Deprecated: Do not use. func (m *DeleteNodePoolRequest) GetClusterId() string { if m != nil { return m.ClusterId @@ -3138,6 +4895,7 @@ func (m *DeleteNodePoolRequest) GetClusterId() string { return "" } +// Deprecated: Do not use. func (m *DeleteNodePoolRequest) GetNodePoolId() string { if m != nil { return m.NodePoolId @@ -3154,20 +4912,20 @@ func (m *DeleteNodePoolRequest) GetName() string { // ListNodePoolsRequest lists the node pool(s) for a cluster. type ListNodePoolsRequest struct { - // The Google Developers Console [project ID or project + // Deprecated. The Google Developers Console [project ID or project // number](https://developers.google.com/console/help/new/#projectnumber). - // This field is deprecated, use parent instead. - ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - // The name of the Google Compute Engine + // This field has been deprecated and replaced by the parent field. + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the Google Compute Engine // [zone](/compute/docs/zones#available) in which the cluster // resides. - // This field is deprecated, use parent instead. - Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` - // The name of the cluster. - // This field is deprecated, use parent instead. - ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` - // The parent (project, location, cluster id) where the node pools will be listed. - // Specified in the format 'projects/*/locations/*/clusters/*'. + // This field has been deprecated and replaced by the parent field. + Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the cluster. + // This field has been deprecated and replaced by the parent field. + ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` // Deprecated: Do not use. + // The parent (project, location, cluster id) where the node pools will be + // listed. Specified in the format 'projects/*/locations/*/clusters/*'. Parent string `protobuf:"bytes,5,opt,name=parent,proto3" json:"parent,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -3178,7 +4936,7 @@ func (m *ListNodePoolsRequest) Reset() { *m = ListNodePoolsRequest{} } func (m *ListNodePoolsRequest) String() string { return proto.CompactTextString(m) } func (*ListNodePoolsRequest) ProtoMessage() {} func (*ListNodePoolsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{31} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{44} } func (m *ListNodePoolsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListNodePoolsRequest.Unmarshal(m, b) @@ -3198,6 +4956,7 @@ func (m *ListNodePoolsRequest) XXX_DiscardUnknown() { var xxx_messageInfo_ListNodePoolsRequest proto.InternalMessageInfo +// Deprecated: Do not use. func (m *ListNodePoolsRequest) GetProjectId() string { if m != nil { return m.ProjectId @@ -3205,6 +4964,7 @@ func (m *ListNodePoolsRequest) GetProjectId() string { return "" } +// Deprecated: Do not use. func (m *ListNodePoolsRequest) GetZone() string { if m != nil { return m.Zone @@ -3212,6 +4972,7 @@ func (m *ListNodePoolsRequest) GetZone() string { return "" } +// Deprecated: Do not use. func (m *ListNodePoolsRequest) GetClusterId() string { if m != nil { return m.ClusterId @@ -3228,23 +4989,24 @@ func (m *ListNodePoolsRequest) GetParent() string { // GetNodePoolRequest retrieves a node pool for a cluster. type GetNodePoolRequest struct { - // The Google Developers Console [project ID or project + // Deprecated. The Google Developers Console [project ID or project // number](https://developers.google.com/console/help/new/#projectnumber). - // This field is deprecated, use name instead. - ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - // The name of the Google Compute Engine + // This field has been deprecated and replaced by the name field. + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the Google Compute Engine // [zone](/compute/docs/zones#available) in which the cluster // resides. - // This field is deprecated, use name instead. - Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` - // The name of the cluster. - // This field is deprecated, use name instead. - ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` - // The name of the node pool. - // This field is deprecated, use name instead. - NodePoolId string `protobuf:"bytes,4,opt,name=node_pool_id,json=nodePoolId,proto3" json:"node_pool_id,omitempty"` - // The name (project, location, cluster, node pool id) of the node pool to get. - // Specified in the format 'projects/*/locations/*/clusters/*/nodePools/*'. + // This field has been deprecated and replaced by the name field. + Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the cluster. + // This field has been deprecated and replaced by the name field. + ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the node pool. + // This field has been deprecated and replaced by the name field. + NodePoolId string `protobuf:"bytes,4,opt,name=node_pool_id,json=nodePoolId,proto3" json:"node_pool_id,omitempty"` // Deprecated: Do not use. + // The name (project, location, cluster, node pool id) of the node pool to + // get. Specified in the format + // 'projects/*/locations/*/clusters/*/nodePools/*'. Name string `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -3255,7 +5017,7 @@ func (m *GetNodePoolRequest) Reset() { *m = GetNodePoolRequest{} } func (m *GetNodePoolRequest) String() string { return proto.CompactTextString(m) } func (*GetNodePoolRequest) ProtoMessage() {} func (*GetNodePoolRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{32} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{45} } func (m *GetNodePoolRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetNodePoolRequest.Unmarshal(m, b) @@ -3275,6 +5037,7 @@ func (m *GetNodePoolRequest) XXX_DiscardUnknown() { var xxx_messageInfo_GetNodePoolRequest proto.InternalMessageInfo +// Deprecated: Do not use. func (m *GetNodePoolRequest) GetProjectId() string { if m != nil { return m.ProjectId @@ -3282,6 +5045,7 @@ func (m *GetNodePoolRequest) GetProjectId() string { return "" } +// Deprecated: Do not use. func (m *GetNodePoolRequest) GetZone() string { if m != nil { return m.Zone @@ -3289,6 +5053,7 @@ func (m *GetNodePoolRequest) GetZone() string { return "" } +// Deprecated: Do not use. func (m *GetNodePoolRequest) GetClusterId() string { if m != nil { return m.ClusterId @@ -3296,6 +5061,7 @@ func (m *GetNodePoolRequest) GetClusterId() string { return "" } +// Deprecated: Do not use. func (m *GetNodePoolRequest) GetNodePoolId() string { if m != nil { return m.NodePoolId @@ -3328,11 +5094,11 @@ type NodePool struct { InitialNodeCount int32 `protobuf:"varint,3,opt,name=initial_node_count,json=initialNodeCount,proto3" json:"initial_node_count,omitempty"` // [Output only] Server-defined URL for the resource. SelfLink string `protobuf:"bytes,100,opt,name=self_link,json=selfLink,proto3" json:"self_link,omitempty"` - // [Output only] The version of the Kubernetes of this node. + // The version of the Kubernetes of this node. Version string `protobuf:"bytes,101,opt,name=version,proto3" json:"version,omitempty"` - // [Output only] The resource URLs of [instance - // groups](/compute/docs/instance-groups/) associated with this - // node pool. + // [Output only] The resource URLs of the [managed instance + // groups](/compute/docs/instance-groups/creating-groups-of-managed-instances) + // associated with this node pool. InstanceGroupUrls []string `protobuf:"bytes,102,rep,name=instance_group_urls,json=instanceGroupUrls,proto3" json:"instance_group_urls,omitempty"` // [Output only] The status of the nodes in this pool instance. Status NodePool_Status `protobuf:"varint,103,opt,name=status,proto3,enum=google.container.v1beta1.NodePool_Status" json:"status,omitempty"` @@ -3343,17 +5109,22 @@ type NodePool struct { // only if a valid configuration is present. Autoscaling *NodePoolAutoscaling `protobuf:"bytes,4,opt,name=autoscaling,proto3" json:"autoscaling,omitempty"` // NodeManagement configuration for this NodePool. - Management *NodeManagement `protobuf:"bytes,5,opt,name=management,proto3" json:"management,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Management *NodeManagement `protobuf:"bytes,5,opt,name=management,proto3" json:"management,omitempty"` + // The constraint on the maximum number of pods that can be run + // simultaneously on a node in the node pool. + MaxPodsConstraint *MaxPodsConstraint `protobuf:"bytes,6,opt,name=max_pods_constraint,json=maxPodsConstraint,proto3" json:"max_pods_constraint,omitempty"` + // Which conditions caused the current node pool state. + Conditions []*StatusCondition `protobuf:"bytes,105,rep,name=conditions,proto3" json:"conditions,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *NodePool) Reset() { *m = NodePool{} } func (m *NodePool) String() string { return proto.CompactTextString(m) } func (*NodePool) ProtoMessage() {} func (*NodePool) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{33} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{46} } func (m *NodePool) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_NodePool.Unmarshal(m, b) @@ -3443,6 +5214,20 @@ func (m *NodePool) GetManagement() *NodeManagement { return nil } +func (m *NodePool) GetMaxPodsConstraint() *MaxPodsConstraint { + if m != nil { + return m.MaxPodsConstraint + } + return nil +} + +func (m *NodePool) GetConditions() []*StatusCondition { + if m != nil { + return m.Conditions + } + return nil +} + // NodeManagement defines the set of node management services turned on for the // node pool. type NodeManagement struct { @@ -3461,7 +5246,7 @@ func (m *NodeManagement) Reset() { *m = NodeManagement{} } func (m *NodeManagement) String() string { return proto.CompactTextString(m) } func (*NodeManagement) ProtoMessage() {} func (*NodeManagement) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{34} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{47} } func (m *NodeManagement) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_NodeManagement.Unmarshal(m, b) @@ -3521,7 +5306,7 @@ func (m *AutoUpgradeOptions) Reset() { *m = AutoUpgradeOptions{} } func (m *AutoUpgradeOptions) String() string { return proto.CompactTextString(m) } func (*AutoUpgradeOptions) ProtoMessage() {} func (*AutoUpgradeOptions) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{35} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{48} } func (m *AutoUpgradeOptions) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AutoUpgradeOptions.Unmarshal(m, b) @@ -3568,7 +5353,7 @@ func (m *MaintenancePolicy) Reset() { *m = MaintenancePolicy{} } func (m *MaintenancePolicy) String() string { return proto.CompactTextString(m) } func (*MaintenancePolicy) ProtoMessage() {} func (*MaintenancePolicy) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{36} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{49} } func (m *MaintenancePolicy) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MaintenancePolicy.Unmarshal(m, b) @@ -3612,7 +5397,7 @@ func (m *MaintenanceWindow) Reset() { *m = MaintenanceWindow{} } func (m *MaintenanceWindow) String() string { return proto.CompactTextString(m) } func (*MaintenanceWindow) ProtoMessage() {} func (*MaintenanceWindow) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{37} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{50} } func (m *MaintenanceWindow) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MaintenanceWindow.Unmarshal(m, b) @@ -3728,7 +5513,7 @@ func (m *DailyMaintenanceWindow) Reset() { *m = DailyMaintenanceWindow{} func (m *DailyMaintenanceWindow) String() string { return proto.CompactTextString(m) } func (*DailyMaintenanceWindow) ProtoMessage() {} func (*DailyMaintenanceWindow) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{38} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{51} } func (m *DailyMaintenanceWindow) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DailyMaintenanceWindow.Unmarshal(m, b) @@ -3765,21 +5550,21 @@ func (m *DailyMaintenanceWindow) GetDuration() string { // SetNodePoolManagementRequest sets the node management properties of a node // pool. type SetNodePoolManagementRequest struct { - // The Google Developers Console [project ID or project + // Deprecated. The Google Developers Console [project ID or project // number](https://support.google.com/cloud/answer/6158840). - // This field is deprecated, use name instead. - ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - // The name of the Google Compute Engine + // This field has been deprecated and replaced by the name field. + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the Google Compute Engine // [zone](/compute/docs/zones#available) in which the cluster // resides. - // This field is deprecated, use name instead. - Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` - // The name of the cluster to update. - // This field is deprecated, use name instead. - ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` - // The name of the node pool to update. - // This field is deprecated, use name instead. - NodePoolId string `protobuf:"bytes,4,opt,name=node_pool_id,json=nodePoolId,proto3" json:"node_pool_id,omitempty"` + // This field has been deprecated and replaced by the name field. + Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the cluster to update. + // This field has been deprecated and replaced by the name field. + ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the node pool to update. + // This field has been deprecated and replaced by the name field. + NodePoolId string `protobuf:"bytes,4,opt,name=node_pool_id,json=nodePoolId,proto3" json:"node_pool_id,omitempty"` // Deprecated: Do not use. // NodeManagement configuration for the node pool. Management *NodeManagement `protobuf:"bytes,5,opt,name=management,proto3" json:"management,omitempty"` // The name (project, location, cluster, node pool id) of the node pool to set @@ -3795,7 +5580,7 @@ func (m *SetNodePoolManagementRequest) Reset() { *m = SetNodePoolManagem func (m *SetNodePoolManagementRequest) String() string { return proto.CompactTextString(m) } func (*SetNodePoolManagementRequest) ProtoMessage() {} func (*SetNodePoolManagementRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{39} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{52} } func (m *SetNodePoolManagementRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetNodePoolManagementRequest.Unmarshal(m, b) @@ -3815,6 +5600,7 @@ func (m *SetNodePoolManagementRequest) XXX_DiscardUnknown() { var xxx_messageInfo_SetNodePoolManagementRequest proto.InternalMessageInfo +// Deprecated: Do not use. func (m *SetNodePoolManagementRequest) GetProjectId() string { if m != nil { return m.ProjectId @@ -3822,6 +5608,7 @@ func (m *SetNodePoolManagementRequest) GetProjectId() string { return "" } +// Deprecated: Do not use. func (m *SetNodePoolManagementRequest) GetZone() string { if m != nil { return m.Zone @@ -3829,6 +5616,7 @@ func (m *SetNodePoolManagementRequest) GetZone() string { return "" } +// Deprecated: Do not use. func (m *SetNodePoolManagementRequest) GetClusterId() string { if m != nil { return m.ClusterId @@ -3836,6 +5624,7 @@ func (m *SetNodePoolManagementRequest) GetClusterId() string { return "" } +// Deprecated: Do not use. func (m *SetNodePoolManagementRequest) GetNodePoolId() string { if m != nil { return m.NodePoolId @@ -3857,25 +5646,124 @@ func (m *SetNodePoolManagementRequest) GetName() string { return "" } +// SetNodePoolSizeRequest sets the size a node +// pool. +type SetNodePoolSizeRequest struct { + // Deprecated. The Google Developers Console [project ID or project + // number](https://support.google.com/cloud/answer/6158840). + // This field has been deprecated and replaced by the name field. + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the Google Compute Engine + // [zone](/compute/docs/zones#available) in which the cluster + // resides. + // This field has been deprecated and replaced by the name field. + Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the cluster to update. + // This field has been deprecated and replaced by the name field. + ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the node pool to update. + // This field has been deprecated and replaced by the name field. + NodePoolId string `protobuf:"bytes,4,opt,name=node_pool_id,json=nodePoolId,proto3" json:"node_pool_id,omitempty"` // Deprecated: Do not use. + // The desired node count for the pool. + NodeCount int32 `protobuf:"varint,5,opt,name=node_count,json=nodeCount,proto3" json:"node_count,omitempty"` + // The name (project, location, cluster, node pool id) of the node pool to set + // size. + // Specified in the format 'projects/*/locations/*/clusters/*/nodePools/*'. + Name string `protobuf:"bytes,7,opt,name=name,proto3" json:"name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SetNodePoolSizeRequest) Reset() { *m = SetNodePoolSizeRequest{} } +func (m *SetNodePoolSizeRequest) String() string { return proto.CompactTextString(m) } +func (*SetNodePoolSizeRequest) ProtoMessage() {} +func (*SetNodePoolSizeRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{53} +} +func (m *SetNodePoolSizeRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SetNodePoolSizeRequest.Unmarshal(m, b) +} +func (m *SetNodePoolSizeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SetNodePoolSizeRequest.Marshal(b, m, deterministic) +} +func (dst *SetNodePoolSizeRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_SetNodePoolSizeRequest.Merge(dst, src) +} +func (m *SetNodePoolSizeRequest) XXX_Size() int { + return xxx_messageInfo_SetNodePoolSizeRequest.Size(m) +} +func (m *SetNodePoolSizeRequest) XXX_DiscardUnknown() { + xxx_messageInfo_SetNodePoolSizeRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_SetNodePoolSizeRequest proto.InternalMessageInfo + +// Deprecated: Do not use. +func (m *SetNodePoolSizeRequest) GetProjectId() string { + if m != nil { + return m.ProjectId + } + return "" +} + +// Deprecated: Do not use. +func (m *SetNodePoolSizeRequest) GetZone() string { + if m != nil { + return m.Zone + } + return "" +} + +// Deprecated: Do not use. +func (m *SetNodePoolSizeRequest) GetClusterId() string { + if m != nil { + return m.ClusterId + } + return "" +} + +// Deprecated: Do not use. +func (m *SetNodePoolSizeRequest) GetNodePoolId() string { + if m != nil { + return m.NodePoolId + } + return "" +} + +func (m *SetNodePoolSizeRequest) GetNodeCount() int32 { + if m != nil { + return m.NodeCount + } + return 0 +} + +func (m *SetNodePoolSizeRequest) GetName() string { + if m != nil { + return m.Name + } + return "" +} + // RollbackNodePoolUpgradeRequest rollbacks the previously Aborted or Failed // NodePool upgrade. This will be an no-op if the last upgrade successfully // completed. type RollbackNodePoolUpgradeRequest struct { - // The Google Developers Console [project ID or project + // Deprecated. The Google Developers Console [project ID or project // number](https://support.google.com/cloud/answer/6158840). - // This field is deprecated, use name instead. - ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - // The name of the Google Compute Engine + // This field has been deprecated and replaced by the name field. + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the Google Compute Engine // [zone](/compute/docs/zones#available) in which the cluster // resides. - // This field is deprecated, use name instead. - Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` - // The name of the cluster to rollback. - // This field is deprecated, use name instead. - ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` - // The name of the node pool to rollback. - // This field is deprecated, use name instead. - NodePoolId string `protobuf:"bytes,4,opt,name=node_pool_id,json=nodePoolId,proto3" json:"node_pool_id,omitempty"` + // This field has been deprecated and replaced by the name field. + Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the cluster to rollback. + // This field has been deprecated and replaced by the name field. + ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the node pool to rollback. + // This field has been deprecated and replaced by the name field. + NodePoolId string `protobuf:"bytes,4,opt,name=node_pool_id,json=nodePoolId,proto3" json:"node_pool_id,omitempty"` // Deprecated: Do not use. // The name (project, location, cluster, node pool id) of the node poll to // rollback upgrade. // Specified in the format 'projects/*/locations/*/clusters/*/nodePools/*'. @@ -3889,7 +5777,7 @@ func (m *RollbackNodePoolUpgradeRequest) Reset() { *m = RollbackNodePool func (m *RollbackNodePoolUpgradeRequest) String() string { return proto.CompactTextString(m) } func (*RollbackNodePoolUpgradeRequest) ProtoMessage() {} func (*RollbackNodePoolUpgradeRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{40} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{54} } func (m *RollbackNodePoolUpgradeRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RollbackNodePoolUpgradeRequest.Unmarshal(m, b) @@ -3909,6 +5797,7 @@ func (m *RollbackNodePoolUpgradeRequest) XXX_DiscardUnknown() { var xxx_messageInfo_RollbackNodePoolUpgradeRequest proto.InternalMessageInfo +// Deprecated: Do not use. func (m *RollbackNodePoolUpgradeRequest) GetProjectId() string { if m != nil { return m.ProjectId @@ -3916,6 +5805,7 @@ func (m *RollbackNodePoolUpgradeRequest) GetProjectId() string { return "" } +// Deprecated: Do not use. func (m *RollbackNodePoolUpgradeRequest) GetZone() string { if m != nil { return m.Zone @@ -3923,6 +5813,7 @@ func (m *RollbackNodePoolUpgradeRequest) GetZone() string { return "" } +// Deprecated: Do not use. func (m *RollbackNodePoolUpgradeRequest) GetClusterId() string { if m != nil { return m.ClusterId @@ -3930,6 +5821,7 @@ func (m *RollbackNodePoolUpgradeRequest) GetClusterId() string { return "" } +// Deprecated: Do not use. func (m *RollbackNodePoolUpgradeRequest) GetNodePoolId() string { if m != nil { return m.NodePoolId @@ -3957,7 +5849,7 @@ func (m *ListNodePoolsResponse) Reset() { *m = ListNodePoolsResponse{} } func (m *ListNodePoolsResponse) String() string { return proto.CompactTextString(m) } func (*ListNodePoolsResponse) ProtoMessage() {} func (*ListNodePoolsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{41} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{55} } func (m *ListNodePoolsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListNodePoolsResponse.Unmarshal(m, b) @@ -3984,6 +5876,118 @@ func (m *ListNodePoolsResponse) GetNodePools() []*NodePool { return nil } +// ClusterAutoscaling contains global, per-cluster information +// required by Cluster Autoscaler to automatically adjust +// the size of the cluster and create/delete +// node pools based on the current needs. +type ClusterAutoscaling struct { + // Enables automatic node pool creation and deletion. + EnableNodeAutoprovisioning bool `protobuf:"varint,1,opt,name=enable_node_autoprovisioning,json=enableNodeAutoprovisioning,proto3" json:"enable_node_autoprovisioning,omitempty"` + // Contains global constraints regarding minimum and maximum + // amount of resources in the cluster. + ResourceLimits []*ResourceLimit `protobuf:"bytes,2,rep,name=resource_limits,json=resourceLimits,proto3" json:"resource_limits,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ClusterAutoscaling) Reset() { *m = ClusterAutoscaling{} } +func (m *ClusterAutoscaling) String() string { return proto.CompactTextString(m) } +func (*ClusterAutoscaling) ProtoMessage() {} +func (*ClusterAutoscaling) Descriptor() ([]byte, []int) { + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{56} +} +func (m *ClusterAutoscaling) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ClusterAutoscaling.Unmarshal(m, b) +} +func (m *ClusterAutoscaling) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ClusterAutoscaling.Marshal(b, m, deterministic) +} +func (dst *ClusterAutoscaling) XXX_Merge(src proto.Message) { + xxx_messageInfo_ClusterAutoscaling.Merge(dst, src) +} +func (m *ClusterAutoscaling) XXX_Size() int { + return xxx_messageInfo_ClusterAutoscaling.Size(m) +} +func (m *ClusterAutoscaling) XXX_DiscardUnknown() { + xxx_messageInfo_ClusterAutoscaling.DiscardUnknown(m) +} + +var xxx_messageInfo_ClusterAutoscaling proto.InternalMessageInfo + +func (m *ClusterAutoscaling) GetEnableNodeAutoprovisioning() bool { + if m != nil { + return m.EnableNodeAutoprovisioning + } + return false +} + +func (m *ClusterAutoscaling) GetResourceLimits() []*ResourceLimit { + if m != nil { + return m.ResourceLimits + } + return nil +} + +// Contains information about amount of some resource in the cluster. +// For memory, value should be in GB. +type ResourceLimit struct { + // Resource name "cpu", "memory" or gpu-specific string. + ResourceType string `protobuf:"bytes,1,opt,name=resource_type,json=resourceType,proto3" json:"resource_type,omitempty"` + // Minimum amount of the resource in the cluster. + Minimum int64 `protobuf:"varint,2,opt,name=minimum,proto3" json:"minimum,omitempty"` + // Maximum amount of the resource in the cluster. + Maximum int64 `protobuf:"varint,3,opt,name=maximum,proto3" json:"maximum,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ResourceLimit) Reset() { *m = ResourceLimit{} } +func (m *ResourceLimit) String() string { return proto.CompactTextString(m) } +func (*ResourceLimit) ProtoMessage() {} +func (*ResourceLimit) Descriptor() ([]byte, []int) { + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{57} +} +func (m *ResourceLimit) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ResourceLimit.Unmarshal(m, b) +} +func (m *ResourceLimit) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ResourceLimit.Marshal(b, m, deterministic) +} +func (dst *ResourceLimit) XXX_Merge(src proto.Message) { + xxx_messageInfo_ResourceLimit.Merge(dst, src) +} +func (m *ResourceLimit) XXX_Size() int { + return xxx_messageInfo_ResourceLimit.Size(m) +} +func (m *ResourceLimit) XXX_DiscardUnknown() { + xxx_messageInfo_ResourceLimit.DiscardUnknown(m) +} + +var xxx_messageInfo_ResourceLimit proto.InternalMessageInfo + +func (m *ResourceLimit) GetResourceType() string { + if m != nil { + return m.ResourceType + } + return "" +} + +func (m *ResourceLimit) GetMinimum() int64 { + if m != nil { + return m.Minimum + } + return 0 +} + +func (m *ResourceLimit) GetMaximum() int64 { + if m != nil { + return m.Maximum + } + return 0 +} + // NodePoolAutoscaling contains information required by cluster autoscaler to // adjust the size of the node pool to the current cluster usage. type NodePoolAutoscaling struct { @@ -3994,7 +5998,9 @@ type NodePoolAutoscaling struct { MinNodeCount int32 `protobuf:"varint,2,opt,name=min_node_count,json=minNodeCount,proto3" json:"min_node_count,omitempty"` // Maximum number of nodes in the NodePool. Must be >= min_node_count. There // has to enough quota to scale up the cluster. - MaxNodeCount int32 `protobuf:"varint,3,opt,name=max_node_count,json=maxNodeCount,proto3" json:"max_node_count,omitempty"` + MaxNodeCount int32 `protobuf:"varint,3,opt,name=max_node_count,json=maxNodeCount,proto3" json:"max_node_count,omitempty"` + // Can this node pool be deleted automatically. + Autoprovisioned bool `protobuf:"varint,4,opt,name=autoprovisioned,proto3" json:"autoprovisioned,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -4004,7 +6010,7 @@ func (m *NodePoolAutoscaling) Reset() { *m = NodePoolAutoscaling{} } func (m *NodePoolAutoscaling) String() string { return proto.CompactTextString(m) } func (*NodePoolAutoscaling) ProtoMessage() {} func (*NodePoolAutoscaling) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{42} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{58} } func (m *NodePoolAutoscaling) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_NodePoolAutoscaling.Unmarshal(m, b) @@ -4045,27 +6051,34 @@ func (m *NodePoolAutoscaling) GetMaxNodeCount() int32 { return 0 } +func (m *NodePoolAutoscaling) GetAutoprovisioned() bool { + if m != nil { + return m.Autoprovisioned + } + return false +} + // SetLabelsRequest sets the Google Cloud Platform labels on a Google Container // Engine cluster, which will in turn set them for Google Compute Engine // resources used by that cluster type SetLabelsRequest struct { - // The Google Developers Console [project ID or project + // Deprecated. The Google Developers Console [project ID or project // number](https://developers.google.com/console/help/new/#projectnumber). - // This field is deprecated, use name instead. - ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - // The name of the Google Compute Engine + // This field has been deprecated and replaced by the name field. + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the Google Compute Engine // [zone](/compute/docs/zones#available) in which the cluster // resides. - // This field is deprecated, use name instead. - Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` - // The name of the cluster. - // This field is deprecated, use name instead. - ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` + // This field has been deprecated and replaced by the name field. + Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the cluster. + // This field has been deprecated and replaced by the name field. + ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` // Deprecated: Do not use. // The labels to set for that cluster. ResourceLabels map[string]string `protobuf:"bytes,4,rep,name=resource_labels,json=resourceLabels,proto3" json:"resource_labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // The fingerprint of the previous set of labels for this resource, // used to detect conflicts. The fingerprint is initially generated by - // Container Engine and changes after every request to modify or update + // Kubernetes Engine and changes after every request to modify or update // labels. You must always provide an up-to-date fingerprint hash when // updating or changing labels. Make a get() request to the // resource to get the latest fingerprint. @@ -4082,7 +6095,7 @@ func (m *SetLabelsRequest) Reset() { *m = SetLabelsRequest{} } func (m *SetLabelsRequest) String() string { return proto.CompactTextString(m) } func (*SetLabelsRequest) ProtoMessage() {} func (*SetLabelsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{43} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{59} } func (m *SetLabelsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetLabelsRequest.Unmarshal(m, b) @@ -4102,6 +6115,7 @@ func (m *SetLabelsRequest) XXX_DiscardUnknown() { var xxx_messageInfo_SetLabelsRequest proto.InternalMessageInfo +// Deprecated: Do not use. func (m *SetLabelsRequest) GetProjectId() string { if m != nil { return m.ProjectId @@ -4109,6 +6123,7 @@ func (m *SetLabelsRequest) GetProjectId() string { return "" } +// Deprecated: Do not use. func (m *SetLabelsRequest) GetZone() string { if m != nil { return m.Zone @@ -4116,6 +6131,7 @@ func (m *SetLabelsRequest) GetZone() string { return "" } +// Deprecated: Do not use. func (m *SetLabelsRequest) GetClusterId() string { if m != nil { return m.ClusterId @@ -4147,18 +6163,18 @@ func (m *SetLabelsRequest) GetName() string { // SetLegacyAbacRequest enables or disables the ABAC authorization mechanism for // a cluster. type SetLegacyAbacRequest struct { - // The Google Developers Console [project ID or project + // Deprecated. The Google Developers Console [project ID or project // number](https://support.google.com/cloud/answer/6158840). - // This field is deprecated, use name instead. - ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - // The name of the Google Compute Engine + // This field has been deprecated and replaced by the name field. + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the Google Compute Engine // [zone](/compute/docs/zones#available) in which the cluster // resides. - // This field is deprecated, use name instead. - Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` - // The name of the cluster to update. - // This field is deprecated, use name instead. - ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` + // This field has been deprecated and replaced by the name field. + Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the cluster to update. + // This field has been deprecated and replaced by the name field. + ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` // Deprecated: Do not use. // Whether ABAC authorization will be enabled in the cluster. Enabled bool `protobuf:"varint,4,opt,name=enabled,proto3" json:"enabled,omitempty"` // The name (project, location, cluster id) of the cluster to set legacy abac. @@ -4173,7 +6189,7 @@ func (m *SetLegacyAbacRequest) Reset() { *m = SetLegacyAbacRequest{} } func (m *SetLegacyAbacRequest) String() string { return proto.CompactTextString(m) } func (*SetLegacyAbacRequest) ProtoMessage() {} func (*SetLegacyAbacRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{44} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{60} } func (m *SetLegacyAbacRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetLegacyAbacRequest.Unmarshal(m, b) @@ -4193,6 +6209,7 @@ func (m *SetLegacyAbacRequest) XXX_DiscardUnknown() { var xxx_messageInfo_SetLegacyAbacRequest proto.InternalMessageInfo +// Deprecated: Do not use. func (m *SetLegacyAbacRequest) GetProjectId() string { if m != nil { return m.ProjectId @@ -4200,6 +6217,7 @@ func (m *SetLegacyAbacRequest) GetProjectId() string { return "" } +// Deprecated: Do not use. func (m *SetLegacyAbacRequest) GetZone() string { if m != nil { return m.Zone @@ -4207,6 +6225,7 @@ func (m *SetLegacyAbacRequest) GetZone() string { return "" } +// Deprecated: Do not use. func (m *SetLegacyAbacRequest) GetClusterId() string { if m != nil { return m.ClusterId @@ -4231,21 +6250,23 @@ func (m *SetLegacyAbacRequest) GetName() string { // StartIPRotationRequest creates a new IP for the cluster and then performs // a node upgrade on each node pool to point to the new IP. type StartIPRotationRequest struct { - // The Google Developers Console [project ID or project + // Deprecated. The Google Developers Console [project ID or project // number](https://developers.google.com/console/help/new/#projectnumber). - // This field is deprecated, use name instead. - ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - // The name of the Google Compute Engine + // This field has been deprecated and replaced by the name field. + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the Google Compute Engine // [zone](/compute/docs/zones#available) in which the cluster // resides. - // This field is deprecated, use name instead. - Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` - // The name of the cluster. - // This field is deprecated, use name instead. - ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` - // The name (project, location, cluster id) of the cluster to start IP rotation. - // Specified in the format 'projects/*/locations/*/clusters/*'. - Name string `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"` + // This field has been deprecated and replaced by the name field. + Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the cluster. + // This field has been deprecated and replaced by the name field. + ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` // Deprecated: Do not use. + // The name (project, location, cluster id) of the cluster to start IP + // rotation. Specified in the format 'projects/*/locations/*/clusters/*'. + Name string `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"` + // Whether to rotate credentials during IP rotation. + RotateCredentials bool `protobuf:"varint,7,opt,name=rotate_credentials,json=rotateCredentials,proto3" json:"rotate_credentials,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -4255,7 +6276,7 @@ func (m *StartIPRotationRequest) Reset() { *m = StartIPRotationRequest{} func (m *StartIPRotationRequest) String() string { return proto.CompactTextString(m) } func (*StartIPRotationRequest) ProtoMessage() {} func (*StartIPRotationRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{45} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{61} } func (m *StartIPRotationRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_StartIPRotationRequest.Unmarshal(m, b) @@ -4275,6 +6296,7 @@ func (m *StartIPRotationRequest) XXX_DiscardUnknown() { var xxx_messageInfo_StartIPRotationRequest proto.InternalMessageInfo +// Deprecated: Do not use. func (m *StartIPRotationRequest) GetProjectId() string { if m != nil { return m.ProjectId @@ -4282,6 +6304,7 @@ func (m *StartIPRotationRequest) GetProjectId() string { return "" } +// Deprecated: Do not use. func (m *StartIPRotationRequest) GetZone() string { if m != nil { return m.Zone @@ -4289,6 +6312,7 @@ func (m *StartIPRotationRequest) GetZone() string { return "" } +// Deprecated: Do not use. func (m *StartIPRotationRequest) GetClusterId() string { if m != nil { return m.ClusterId @@ -4303,22 +6327,29 @@ func (m *StartIPRotationRequest) GetName() string { return "" } +func (m *StartIPRotationRequest) GetRotateCredentials() bool { + if m != nil { + return m.RotateCredentials + } + return false +} + // CompleteIPRotationRequest moves the cluster master back into single-IP mode. type CompleteIPRotationRequest struct { - // The Google Developers Console [project ID or project + // Deprecated. The Google Developers Console [project ID or project // number](https://developers.google.com/console/help/new/#projectnumber). - // This field is deprecated, use name instead. - ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - // The name of the Google Compute Engine + // This field has been deprecated and replaced by the name field. + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the Google Compute Engine // [zone](/compute/docs/zones#available) in which the cluster // resides. - // This field is deprecated, use name instead. - Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` - // The name of the cluster. - // This field is deprecated, use name instead. - ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` - // The name (project, location, cluster id) of the cluster to complete IP rotation. - // Specified in the format 'projects/*/locations/*/clusters/*'. + // This field has been deprecated and replaced by the name field. + Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the cluster. + // This field has been deprecated and replaced by the name field. + ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` // Deprecated: Do not use. + // The name (project, location, cluster id) of the cluster to complete IP + // rotation. Specified in the format 'projects/*/locations/*/clusters/*'. Name string `protobuf:"bytes,7,opt,name=name,proto3" json:"name,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -4329,7 +6360,7 @@ func (m *CompleteIPRotationRequest) Reset() { *m = CompleteIPRotationReq func (m *CompleteIPRotationRequest) String() string { return proto.CompactTextString(m) } func (*CompleteIPRotationRequest) ProtoMessage() {} func (*CompleteIPRotationRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{46} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{62} } func (m *CompleteIPRotationRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CompleteIPRotationRequest.Unmarshal(m, b) @@ -4349,6 +6380,7 @@ func (m *CompleteIPRotationRequest) XXX_DiscardUnknown() { var xxx_messageInfo_CompleteIPRotationRequest proto.InternalMessageInfo +// Deprecated: Do not use. func (m *CompleteIPRotationRequest) GetProjectId() string { if m != nil { return m.ProjectId @@ -4356,6 +6388,7 @@ func (m *CompleteIPRotationRequest) GetProjectId() string { return "" } +// Deprecated: Do not use. func (m *CompleteIPRotationRequest) GetZone() string { if m != nil { return m.Zone @@ -4363,6 +6396,7 @@ func (m *CompleteIPRotationRequest) GetZone() string { return "" } +// Deprecated: Do not use. func (m *CompleteIPRotationRequest) GetClusterId() string { if m != nil { return m.ClusterId @@ -4393,7 +6427,7 @@ func (m *AcceleratorConfig) Reset() { *m = AcceleratorConfig{} } func (m *AcceleratorConfig) String() string { return proto.CompactTextString(m) } func (*AcceleratorConfig) ProtoMessage() {} func (*AcceleratorConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{47} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{63} } func (m *AcceleratorConfig) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AcceleratorConfig.Unmarshal(m, b) @@ -4427,24 +6461,66 @@ func (m *AcceleratorConfig) GetAcceleratorType() string { return "" } +// WorkloadMetadataConfig defines the metadata configuration to expose to +// workloads on the node pool. +type WorkloadMetadataConfig struct { + // NodeMetadata is the configuration for how to expose the node metadata to + // the workload running on the node. + NodeMetadata WorkloadMetadataConfig_NodeMetadata `protobuf:"varint,1,opt,name=node_metadata,json=nodeMetadata,proto3,enum=google.container.v1beta1.WorkloadMetadataConfig_NodeMetadata" json:"node_metadata,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *WorkloadMetadataConfig) Reset() { *m = WorkloadMetadataConfig{} } +func (m *WorkloadMetadataConfig) String() string { return proto.CompactTextString(m) } +func (*WorkloadMetadataConfig) ProtoMessage() {} +func (*WorkloadMetadataConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{64} +} +func (m *WorkloadMetadataConfig) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_WorkloadMetadataConfig.Unmarshal(m, b) +} +func (m *WorkloadMetadataConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_WorkloadMetadataConfig.Marshal(b, m, deterministic) +} +func (dst *WorkloadMetadataConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_WorkloadMetadataConfig.Merge(dst, src) +} +func (m *WorkloadMetadataConfig) XXX_Size() int { + return xxx_messageInfo_WorkloadMetadataConfig.Size(m) +} +func (m *WorkloadMetadataConfig) XXX_DiscardUnknown() { + xxx_messageInfo_WorkloadMetadataConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_WorkloadMetadataConfig proto.InternalMessageInfo + +func (m *WorkloadMetadataConfig) GetNodeMetadata() WorkloadMetadataConfig_NodeMetadata { + if m != nil { + return m.NodeMetadata + } + return WorkloadMetadataConfig_UNSPECIFIED +} + // SetNetworkPolicyRequest enables/disables network policy for a cluster. type SetNetworkPolicyRequest struct { - // The Google Developers Console [project ID or project + // Deprecated. The Google Developers Console [project ID or project // number](https://developers.google.com/console/help/new/#projectnumber). - // This field is deprecated, use name instead. - ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - // The name of the Google Compute Engine + // This field has been deprecated and replaced by the name field. + ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the Google Compute Engine // [zone](/compute/docs/zones#available) in which the cluster // resides. - // This field is deprecated, use name instead. - Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` - // The name of the cluster. - // This field is deprecated, use name instead. - ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` + // This field has been deprecated and replaced by the name field. + Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` // Deprecated: Do not use. + // Deprecated. The name of the cluster. + // This field has been deprecated and replaced by the name field. + ClusterId string `protobuf:"bytes,3,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` // Deprecated: Do not use. // Configuration options for the NetworkPolicy feature. NetworkPolicy *NetworkPolicy `protobuf:"bytes,4,opt,name=network_policy,json=networkPolicy,proto3" json:"network_policy,omitempty"` - // The name (project, location, cluster id) of the cluster to set networking policy. - // Specified in the format 'projects/*/locations/*/clusters/*'. + // The name (project, location, cluster id) of the cluster to set networking + // policy. Specified in the format 'projects/*/locations/*/clusters/*'. Name string `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -4455,7 +6531,7 @@ func (m *SetNetworkPolicyRequest) Reset() { *m = SetNetworkPolicyRequest func (m *SetNetworkPolicyRequest) String() string { return proto.CompactTextString(m) } func (*SetNetworkPolicyRequest) ProtoMessage() {} func (*SetNetworkPolicyRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{48} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{65} } func (m *SetNetworkPolicyRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetNetworkPolicyRequest.Unmarshal(m, b) @@ -4475,6 +6551,7 @@ func (m *SetNetworkPolicyRequest) XXX_DiscardUnknown() { var xxx_messageInfo_SetNetworkPolicyRequest proto.InternalMessageInfo +// Deprecated: Do not use. func (m *SetNetworkPolicyRequest) GetProjectId() string { if m != nil { return m.ProjectId @@ -4482,6 +6559,7 @@ func (m *SetNetworkPolicyRequest) GetProjectId() string { return "" } +// Deprecated: Do not use. func (m *SetNetworkPolicyRequest) GetZone() string { if m != nil { return m.Zone @@ -4489,6 +6567,7 @@ func (m *SetNetworkPolicyRequest) GetZone() string { return "" } +// Deprecated: Do not use. func (m *SetNetworkPolicyRequest) GetClusterId() string { if m != nil { return m.ClusterId @@ -4537,7 +6616,7 @@ func (m *SetMaintenancePolicyRequest) Reset() { *m = SetMaintenancePolic func (m *SetMaintenancePolicyRequest) String() string { return proto.CompactTextString(m) } func (*SetMaintenancePolicyRequest) ProtoMessage() {} func (*SetMaintenancePolicyRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_cluster_service_8f6af64c98801cf8, []int{49} + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{66} } func (m *SetMaintenancePolicyRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetMaintenancePolicyRequest.Unmarshal(m, b) @@ -4592,6 +6671,711 @@ func (m *SetMaintenancePolicyRequest) GetName() string { return "" } +// ListLocationsRequest is used to request the locations that offer GKE. +type ListLocationsRequest struct { + // Contains the name of the resource requested. + // Specified in the format 'projects/*'. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListLocationsRequest) Reset() { *m = ListLocationsRequest{} } +func (m *ListLocationsRequest) String() string { return proto.CompactTextString(m) } +func (*ListLocationsRequest) ProtoMessage() {} +func (*ListLocationsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{67} +} +func (m *ListLocationsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListLocationsRequest.Unmarshal(m, b) +} +func (m *ListLocationsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListLocationsRequest.Marshal(b, m, deterministic) +} +func (dst *ListLocationsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListLocationsRequest.Merge(dst, src) +} +func (m *ListLocationsRequest) XXX_Size() int { + return xxx_messageInfo_ListLocationsRequest.Size(m) +} +func (m *ListLocationsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ListLocationsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ListLocationsRequest proto.InternalMessageInfo + +func (m *ListLocationsRequest) GetParent() string { + if m != nil { + return m.Parent + } + return "" +} + +// ListLocationsResponse returns the list of all GKE locations and their +// recommendation state. +type ListLocationsResponse struct { + // A full list of GKE locations. + Locations []*Location `protobuf:"bytes,1,rep,name=locations,proto3" json:"locations,omitempty"` + // Only return ListLocationsResponse that occur after the page_token. This + // value should be populated from the ListLocationsResponse.next_page_token if + // that response token was set (which happens when listing more Locations than + // fit in a single ListLocationsResponse). + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListLocationsResponse) Reset() { *m = ListLocationsResponse{} } +func (m *ListLocationsResponse) String() string { return proto.CompactTextString(m) } +func (*ListLocationsResponse) ProtoMessage() {} +func (*ListLocationsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{68} +} +func (m *ListLocationsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListLocationsResponse.Unmarshal(m, b) +} +func (m *ListLocationsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListLocationsResponse.Marshal(b, m, deterministic) +} +func (dst *ListLocationsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListLocationsResponse.Merge(dst, src) +} +func (m *ListLocationsResponse) XXX_Size() int { + return xxx_messageInfo_ListLocationsResponse.Size(m) +} +func (m *ListLocationsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ListLocationsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ListLocationsResponse proto.InternalMessageInfo + +func (m *ListLocationsResponse) GetLocations() []*Location { + if m != nil { + return m.Locations + } + return nil +} + +func (m *ListLocationsResponse) GetNextPageToken() string { + if m != nil { + return m.NextPageToken + } + return "" +} + +// Location returns the location name, and if the location is recommended +// for GKE cluster scheduling. +type Location struct { + // Contains the type of location this Location is for. + // Regional or Zonal. + Type Location_LocationType `protobuf:"varint,1,opt,name=type,proto3,enum=google.container.v1beta1.Location_LocationType" json:"type,omitempty"` + // Contains the name of the resource requested. + // Specified in the format 'projects/*/locations/*'. + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + // Whether the location is recomended for GKE cluster scheduling. + Recommended bool `protobuf:"varint,3,opt,name=recommended,proto3" json:"recommended,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Location) Reset() { *m = Location{} } +func (m *Location) String() string { return proto.CompactTextString(m) } +func (*Location) ProtoMessage() {} +func (*Location) Descriptor() ([]byte, []int) { + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{69} +} +func (m *Location) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Location.Unmarshal(m, b) +} +func (m *Location) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Location.Marshal(b, m, deterministic) +} +func (dst *Location) XXX_Merge(src proto.Message) { + xxx_messageInfo_Location.Merge(dst, src) +} +func (m *Location) XXX_Size() int { + return xxx_messageInfo_Location.Size(m) +} +func (m *Location) XXX_DiscardUnknown() { + xxx_messageInfo_Location.DiscardUnknown(m) +} + +var xxx_messageInfo_Location proto.InternalMessageInfo + +func (m *Location) GetType() Location_LocationType { + if m != nil { + return m.Type + } + return Location_LOCATION_TYPE_UNSPECIFIED +} + +func (m *Location) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *Location) GetRecommended() bool { + if m != nil { + return m.Recommended + } + return false +} + +// StatusCondition describes why a cluster or a node pool has a certain status +// (e.g., ERROR or DEGRADED). +type StatusCondition struct { + // Machine-friendly representation of the condition + Code StatusCondition_Code `protobuf:"varint,1,opt,name=code,proto3,enum=google.container.v1beta1.StatusCondition_Code" json:"code,omitempty"` + // Human-friendly representation of the condition + Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *StatusCondition) Reset() { *m = StatusCondition{} } +func (m *StatusCondition) String() string { return proto.CompactTextString(m) } +func (*StatusCondition) ProtoMessage() {} +func (*StatusCondition) Descriptor() ([]byte, []int) { + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{70} +} +func (m *StatusCondition) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_StatusCondition.Unmarshal(m, b) +} +func (m *StatusCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_StatusCondition.Marshal(b, m, deterministic) +} +func (dst *StatusCondition) XXX_Merge(src proto.Message) { + xxx_messageInfo_StatusCondition.Merge(dst, src) +} +func (m *StatusCondition) XXX_Size() int { + return xxx_messageInfo_StatusCondition.Size(m) +} +func (m *StatusCondition) XXX_DiscardUnknown() { + xxx_messageInfo_StatusCondition.DiscardUnknown(m) +} + +var xxx_messageInfo_StatusCondition proto.InternalMessageInfo + +func (m *StatusCondition) GetCode() StatusCondition_Code { + if m != nil { + return m.Code + } + return StatusCondition_UNKNOWN +} + +func (m *StatusCondition) GetMessage() string { + if m != nil { + return m.Message + } + return "" +} + +// NetworkConfig reports the relative names of network & subnetwork. +type NetworkConfig struct { + // Output only. The relative name of the Google Compute Engine + // [network][google.container.v1beta1.NetworkConfig.network](/compute/docs/networks-and-firewalls#networks) to which + // the cluster is connected. + // Example: projects/my-project/global/networks/my-network + Network string `protobuf:"bytes,1,opt,name=network,proto3" json:"network,omitempty"` + // Output only. The relative name of the Google Compute Engine + // [subnetwork](/compute/docs/vpc) to which the cluster is connected. + // Example: projects/my-project/regions/us-central1/subnetworks/my-subnet + Subnetwork string `protobuf:"bytes,2,opt,name=subnetwork,proto3" json:"subnetwork,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NetworkConfig) Reset() { *m = NetworkConfig{} } +func (m *NetworkConfig) String() string { return proto.CompactTextString(m) } +func (*NetworkConfig) ProtoMessage() {} +func (*NetworkConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{71} +} +func (m *NetworkConfig) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NetworkConfig.Unmarshal(m, b) +} +func (m *NetworkConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NetworkConfig.Marshal(b, m, deterministic) +} +func (dst *NetworkConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_NetworkConfig.Merge(dst, src) +} +func (m *NetworkConfig) XXX_Size() int { + return xxx_messageInfo_NetworkConfig.Size(m) +} +func (m *NetworkConfig) XXX_DiscardUnknown() { + xxx_messageInfo_NetworkConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_NetworkConfig proto.InternalMessageInfo + +func (m *NetworkConfig) GetNetwork() string { + if m != nil { + return m.Network + } + return "" +} + +func (m *NetworkConfig) GetSubnetwork() string { + if m != nil { + return m.Subnetwork + } + return "" +} + +// ListUsableSubnetworksRequest requests the list of usable subnetworks. +// available to a user for creating clusters. +type ListUsableSubnetworksRequest struct { + // The parent project where subnetworks are usable. + // Specified in the format 'projects/*'. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Filtering currently only supports equality on the networkProjectId and must + // be in the form: "networkProjectId=[PROJECTID]", where `networkProjectId` + // is the project which owns the listed subnetworks. This defaults to the + // parent project ID. + Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"` + // The max number of results per page that should be returned. If the number + // of available results is larger than `page_size`, a `next_page_token` is + // returned which can be used to get the next page of results in subsequent + // requests. Acceptable values are 0 to 500, inclusive. (Default: 500) + PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // Specifies a page token to use. Set this to the nextPageToken returned by + // previous list requests to get the next page of results. + PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListUsableSubnetworksRequest) Reset() { *m = ListUsableSubnetworksRequest{} } +func (m *ListUsableSubnetworksRequest) String() string { return proto.CompactTextString(m) } +func (*ListUsableSubnetworksRequest) ProtoMessage() {} +func (*ListUsableSubnetworksRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{72} +} +func (m *ListUsableSubnetworksRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListUsableSubnetworksRequest.Unmarshal(m, b) +} +func (m *ListUsableSubnetworksRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListUsableSubnetworksRequest.Marshal(b, m, deterministic) +} +func (dst *ListUsableSubnetworksRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListUsableSubnetworksRequest.Merge(dst, src) +} +func (m *ListUsableSubnetworksRequest) XXX_Size() int { + return xxx_messageInfo_ListUsableSubnetworksRequest.Size(m) +} +func (m *ListUsableSubnetworksRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ListUsableSubnetworksRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ListUsableSubnetworksRequest proto.InternalMessageInfo + +func (m *ListUsableSubnetworksRequest) GetParent() string { + if m != nil { + return m.Parent + } + return "" +} + +func (m *ListUsableSubnetworksRequest) GetFilter() string { + if m != nil { + return m.Filter + } + return "" +} + +func (m *ListUsableSubnetworksRequest) GetPageSize() int32 { + if m != nil { + return m.PageSize + } + return 0 +} + +func (m *ListUsableSubnetworksRequest) GetPageToken() string { + if m != nil { + return m.PageToken + } + return "" +} + +// ListUsableSubnetworksResponse is the response of +// ListUsableSubnetworksRequest. +type ListUsableSubnetworksResponse struct { + // A list of usable subnetworks in the specified network project. + Subnetworks []*UsableSubnetwork `protobuf:"bytes,1,rep,name=subnetworks,proto3" json:"subnetworks,omitempty"` + // This token allows you to get the next page of results for list requests. + // If the number of results is larger than `page_size`, use the + // `next_page_token` as a value for the query parameter `page_token` in the + // next request. The value will become empty when there are no more pages. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListUsableSubnetworksResponse) Reset() { *m = ListUsableSubnetworksResponse{} } +func (m *ListUsableSubnetworksResponse) String() string { return proto.CompactTextString(m) } +func (*ListUsableSubnetworksResponse) ProtoMessage() {} +func (*ListUsableSubnetworksResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{73} +} +func (m *ListUsableSubnetworksResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListUsableSubnetworksResponse.Unmarshal(m, b) +} +func (m *ListUsableSubnetworksResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListUsableSubnetworksResponse.Marshal(b, m, deterministic) +} +func (dst *ListUsableSubnetworksResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListUsableSubnetworksResponse.Merge(dst, src) +} +func (m *ListUsableSubnetworksResponse) XXX_Size() int { + return xxx_messageInfo_ListUsableSubnetworksResponse.Size(m) +} +func (m *ListUsableSubnetworksResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ListUsableSubnetworksResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ListUsableSubnetworksResponse proto.InternalMessageInfo + +func (m *ListUsableSubnetworksResponse) GetSubnetworks() []*UsableSubnetwork { + if m != nil { + return m.Subnetworks + } + return nil +} + +func (m *ListUsableSubnetworksResponse) GetNextPageToken() string { + if m != nil { + return m.NextPageToken + } + return "" +} + +// Secondary IP range of a usable subnetwork. +type UsableSubnetworkSecondaryRange struct { + // The name associated with this subnetwork secondary range, used when adding + // an alias IP range to a VM instance. + RangeName string `protobuf:"bytes,1,opt,name=range_name,json=rangeName,proto3" json:"range_name,omitempty"` + // The range of IP addresses belonging to this subnetwork secondary range. + IpCidrRange string `protobuf:"bytes,2,opt,name=ip_cidr_range,json=ipCidrRange,proto3" json:"ip_cidr_range,omitempty"` + // This field is to determine the status of the secondary range programmably. + Status UsableSubnetworkSecondaryRange_Status `protobuf:"varint,3,opt,name=status,proto3,enum=google.container.v1beta1.UsableSubnetworkSecondaryRange_Status" json:"status,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UsableSubnetworkSecondaryRange) Reset() { *m = UsableSubnetworkSecondaryRange{} } +func (m *UsableSubnetworkSecondaryRange) String() string { return proto.CompactTextString(m) } +func (*UsableSubnetworkSecondaryRange) ProtoMessage() {} +func (*UsableSubnetworkSecondaryRange) Descriptor() ([]byte, []int) { + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{74} +} +func (m *UsableSubnetworkSecondaryRange) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UsableSubnetworkSecondaryRange.Unmarshal(m, b) +} +func (m *UsableSubnetworkSecondaryRange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UsableSubnetworkSecondaryRange.Marshal(b, m, deterministic) +} +func (dst *UsableSubnetworkSecondaryRange) XXX_Merge(src proto.Message) { + xxx_messageInfo_UsableSubnetworkSecondaryRange.Merge(dst, src) +} +func (m *UsableSubnetworkSecondaryRange) XXX_Size() int { + return xxx_messageInfo_UsableSubnetworkSecondaryRange.Size(m) +} +func (m *UsableSubnetworkSecondaryRange) XXX_DiscardUnknown() { + xxx_messageInfo_UsableSubnetworkSecondaryRange.DiscardUnknown(m) +} + +var xxx_messageInfo_UsableSubnetworkSecondaryRange proto.InternalMessageInfo + +func (m *UsableSubnetworkSecondaryRange) GetRangeName() string { + if m != nil { + return m.RangeName + } + return "" +} + +func (m *UsableSubnetworkSecondaryRange) GetIpCidrRange() string { + if m != nil { + return m.IpCidrRange + } + return "" +} + +func (m *UsableSubnetworkSecondaryRange) GetStatus() UsableSubnetworkSecondaryRange_Status { + if m != nil { + return m.Status + } + return UsableSubnetworkSecondaryRange_UNKNOWN +} + +// UsableSubnetwork resource returns the subnetwork name, its associated network +// and the primary CIDR range. +type UsableSubnetwork struct { + // Subnetwork Name. + // Example: projects/my-project/regions/us-central1/subnetworks/my-subnet + Subnetwork string `protobuf:"bytes,1,opt,name=subnetwork,proto3" json:"subnetwork,omitempty"` + // Network Name. + // Example: projects/my-project/global/networks/my-network + Network string `protobuf:"bytes,2,opt,name=network,proto3" json:"network,omitempty"` + // The range of internal addresses that are owned by this subnetwork. + IpCidrRange string `protobuf:"bytes,3,opt,name=ip_cidr_range,json=ipCidrRange,proto3" json:"ip_cidr_range,omitempty"` + // Secondary IP ranges. + SecondaryIpRanges []*UsableSubnetworkSecondaryRange `protobuf:"bytes,4,rep,name=secondary_ip_ranges,json=secondaryIpRanges,proto3" json:"secondary_ip_ranges,omitempty"` + // A human readable status message representing the reasons for cases where + // the caller cannot use the secondary ranges under the subnet. For example if + // the secondary_ip_ranges is empty due to a permission issue, an insufficient + // permission message will be given by status_message. + StatusMessage string `protobuf:"bytes,5,opt,name=status_message,json=statusMessage,proto3" json:"status_message,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UsableSubnetwork) Reset() { *m = UsableSubnetwork{} } +func (m *UsableSubnetwork) String() string { return proto.CompactTextString(m) } +func (*UsableSubnetwork) ProtoMessage() {} +func (*UsableSubnetwork) Descriptor() ([]byte, []int) { + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{75} +} +func (m *UsableSubnetwork) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UsableSubnetwork.Unmarshal(m, b) +} +func (m *UsableSubnetwork) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UsableSubnetwork.Marshal(b, m, deterministic) +} +func (dst *UsableSubnetwork) XXX_Merge(src proto.Message) { + xxx_messageInfo_UsableSubnetwork.Merge(dst, src) +} +func (m *UsableSubnetwork) XXX_Size() int { + return xxx_messageInfo_UsableSubnetwork.Size(m) +} +func (m *UsableSubnetwork) XXX_DiscardUnknown() { + xxx_messageInfo_UsableSubnetwork.DiscardUnknown(m) +} + +var xxx_messageInfo_UsableSubnetwork proto.InternalMessageInfo + +func (m *UsableSubnetwork) GetSubnetwork() string { + if m != nil { + return m.Subnetwork + } + return "" +} + +func (m *UsableSubnetwork) GetNetwork() string { + if m != nil { + return m.Network + } + return "" +} + +func (m *UsableSubnetwork) GetIpCidrRange() string { + if m != nil { + return m.IpCidrRange + } + return "" +} + +func (m *UsableSubnetwork) GetSecondaryIpRanges() []*UsableSubnetworkSecondaryRange { + if m != nil { + return m.SecondaryIpRanges + } + return nil +} + +func (m *UsableSubnetwork) GetStatusMessage() string { + if m != nil { + return m.StatusMessage + } + return "" +} + +// VerticalPodAutoscaling contains global, per-cluster information +// required by Vertical Pod Autoscaler to automatically adjust +// the resources of pods controlled by it. +type VerticalPodAutoscaling struct { + // Enables vertical pod autoscaling. + Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *VerticalPodAutoscaling) Reset() { *m = VerticalPodAutoscaling{} } +func (m *VerticalPodAutoscaling) String() string { return proto.CompactTextString(m) } +func (*VerticalPodAutoscaling) ProtoMessage() {} +func (*VerticalPodAutoscaling) Descriptor() ([]byte, []int) { + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{76} +} +func (m *VerticalPodAutoscaling) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VerticalPodAutoscaling.Unmarshal(m, b) +} +func (m *VerticalPodAutoscaling) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VerticalPodAutoscaling.Marshal(b, m, deterministic) +} +func (dst *VerticalPodAutoscaling) XXX_Merge(src proto.Message) { + xxx_messageInfo_VerticalPodAutoscaling.Merge(dst, src) +} +func (m *VerticalPodAutoscaling) XXX_Size() int { + return xxx_messageInfo_VerticalPodAutoscaling.Size(m) +} +func (m *VerticalPodAutoscaling) XXX_DiscardUnknown() { + xxx_messageInfo_VerticalPodAutoscaling.DiscardUnknown(m) +} + +var xxx_messageInfo_VerticalPodAutoscaling proto.InternalMessageInfo + +func (m *VerticalPodAutoscaling) GetEnabled() bool { + if m != nil { + return m.Enabled + } + return false +} + +// Constraints applied to pods. +type MaxPodsConstraint struct { + // Constraint enforced on the max num of pods per node. + MaxPodsPerNode int64 `protobuf:"varint,1,opt,name=max_pods_per_node,json=maxPodsPerNode,proto3" json:"max_pods_per_node,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MaxPodsConstraint) Reset() { *m = MaxPodsConstraint{} } +func (m *MaxPodsConstraint) String() string { return proto.CompactTextString(m) } +func (*MaxPodsConstraint) ProtoMessage() {} +func (*MaxPodsConstraint) Descriptor() ([]byte, []int) { + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{77} +} +func (m *MaxPodsConstraint) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MaxPodsConstraint.Unmarshal(m, b) +} +func (m *MaxPodsConstraint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MaxPodsConstraint.Marshal(b, m, deterministic) +} +func (dst *MaxPodsConstraint) XXX_Merge(src proto.Message) { + xxx_messageInfo_MaxPodsConstraint.Merge(dst, src) +} +func (m *MaxPodsConstraint) XXX_Size() int { + return xxx_messageInfo_MaxPodsConstraint.Size(m) +} +func (m *MaxPodsConstraint) XXX_DiscardUnknown() { + xxx_messageInfo_MaxPodsConstraint.DiscardUnknown(m) +} + +var xxx_messageInfo_MaxPodsConstraint proto.InternalMessageInfo + +func (m *MaxPodsConstraint) GetMaxPodsPerNode() int64 { + if m != nil { + return m.MaxPodsPerNode + } + return 0 +} + +// Configuration for exporting cluster resource usages. +type ResourceUsageExportConfig struct { + // Configuration to use BigQuery as usage export destination. + BigqueryDestination *ResourceUsageExportConfig_BigQueryDestination `protobuf:"bytes,1,opt,name=bigquery_destination,json=bigqueryDestination,proto3" json:"bigquery_destination,omitempty"` + // Whether to enable network egress metering for this cluster. If enabled, a + // daemonset will be created in the cluster to meter network egress traffic. + EnableNetworkEgressMetering bool `protobuf:"varint,2,opt,name=enable_network_egress_metering,json=enableNetworkEgressMetering,proto3" json:"enable_network_egress_metering,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ResourceUsageExportConfig) Reset() { *m = ResourceUsageExportConfig{} } +func (m *ResourceUsageExportConfig) String() string { return proto.CompactTextString(m) } +func (*ResourceUsageExportConfig) ProtoMessage() {} +func (*ResourceUsageExportConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{78} +} +func (m *ResourceUsageExportConfig) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ResourceUsageExportConfig.Unmarshal(m, b) +} +func (m *ResourceUsageExportConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ResourceUsageExportConfig.Marshal(b, m, deterministic) +} +func (dst *ResourceUsageExportConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_ResourceUsageExportConfig.Merge(dst, src) +} +func (m *ResourceUsageExportConfig) XXX_Size() int { + return xxx_messageInfo_ResourceUsageExportConfig.Size(m) +} +func (m *ResourceUsageExportConfig) XXX_DiscardUnknown() { + xxx_messageInfo_ResourceUsageExportConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_ResourceUsageExportConfig proto.InternalMessageInfo + +func (m *ResourceUsageExportConfig) GetBigqueryDestination() *ResourceUsageExportConfig_BigQueryDestination { + if m != nil { + return m.BigqueryDestination + } + return nil +} + +func (m *ResourceUsageExportConfig) GetEnableNetworkEgressMetering() bool { + if m != nil { + return m.EnableNetworkEgressMetering + } + return false +} + +// Parameters for using BigQuery as the destination of resource usage export. +type ResourceUsageExportConfig_BigQueryDestination struct { + // The ID of a BigQuery Dataset. + DatasetId string `protobuf:"bytes,1,opt,name=dataset_id,json=datasetId,proto3" json:"dataset_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ResourceUsageExportConfig_BigQueryDestination) Reset() { + *m = ResourceUsageExportConfig_BigQueryDestination{} +} +func (m *ResourceUsageExportConfig_BigQueryDestination) String() string { + return proto.CompactTextString(m) +} +func (*ResourceUsageExportConfig_BigQueryDestination) ProtoMessage() {} +func (*ResourceUsageExportConfig_BigQueryDestination) Descriptor() ([]byte, []int) { + return fileDescriptor_cluster_service_4b3d530a1685571f, []int{78, 0} +} +func (m *ResourceUsageExportConfig_BigQueryDestination) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ResourceUsageExportConfig_BigQueryDestination.Unmarshal(m, b) +} +func (m *ResourceUsageExportConfig_BigQueryDestination) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ResourceUsageExportConfig_BigQueryDestination.Marshal(b, m, deterministic) +} +func (dst *ResourceUsageExportConfig_BigQueryDestination) XXX_Merge(src proto.Message) { + xxx_messageInfo_ResourceUsageExportConfig_BigQueryDestination.Merge(dst, src) +} +func (m *ResourceUsageExportConfig_BigQueryDestination) XXX_Size() int { + return xxx_messageInfo_ResourceUsageExportConfig_BigQueryDestination.Size(m) +} +func (m *ResourceUsageExportConfig_BigQueryDestination) XXX_DiscardUnknown() { + xxx_messageInfo_ResourceUsageExportConfig_BigQueryDestination.DiscardUnknown(m) +} + +var xxx_messageInfo_ResourceUsageExportConfig_BigQueryDestination proto.InternalMessageInfo + +func (m *ResourceUsageExportConfig_BigQueryDestination) GetDatasetId() string { + if m != nil { + return m.DatasetId + } + return "" +} + func init() { proto.RegisterType((*NodeConfig)(nil), "google.container.v1beta1.NodeConfig") proto.RegisterMapType((map[string]string)(nil), "google.container.v1beta1.NodeConfig.LabelsEntry") @@ -4604,17 +7388,32 @@ func init() { proto.RegisterType((*HorizontalPodAutoscaling)(nil), "google.container.v1beta1.HorizontalPodAutoscaling") proto.RegisterType((*KubernetesDashboard)(nil), "google.container.v1beta1.KubernetesDashboard") proto.RegisterType((*NetworkPolicyConfig)(nil), "google.container.v1beta1.NetworkPolicyConfig") + proto.RegisterType((*PrivateClusterConfig)(nil), "google.container.v1beta1.PrivateClusterConfig") + proto.RegisterType((*IstioConfig)(nil), "google.container.v1beta1.IstioConfig") + proto.RegisterType((*CloudRunConfig)(nil), "google.container.v1beta1.CloudRunConfig") proto.RegisterType((*MasterAuthorizedNetworksConfig)(nil), "google.container.v1beta1.MasterAuthorizedNetworksConfig") proto.RegisterType((*MasterAuthorizedNetworksConfig_CidrBlock)(nil), "google.container.v1beta1.MasterAuthorizedNetworksConfig.CidrBlock") + proto.RegisterType((*LegacyAbac)(nil), "google.container.v1beta1.LegacyAbac") proto.RegisterType((*NetworkPolicy)(nil), "google.container.v1beta1.NetworkPolicy") proto.RegisterType((*IPAllocationPolicy)(nil), "google.container.v1beta1.IPAllocationPolicy") + proto.RegisterType((*BinaryAuthorization)(nil), "google.container.v1beta1.BinaryAuthorization") proto.RegisterType((*PodSecurityPolicyConfig)(nil), "google.container.v1beta1.PodSecurityPolicyConfig") proto.RegisterType((*Cluster)(nil), "google.container.v1beta1.Cluster") + proto.RegisterMapType((map[string]string)(nil), "google.container.v1beta1.Cluster.ResourceLabelsEntry") proto.RegisterType((*ClusterUpdate)(nil), "google.container.v1beta1.ClusterUpdate") proto.RegisterType((*Operation)(nil), "google.container.v1beta1.Operation") + proto.RegisterType((*OperationProgress)(nil), "google.container.v1beta1.OperationProgress") + proto.RegisterType((*OperationProgress_Metric)(nil), "google.container.v1beta1.OperationProgress.Metric") proto.RegisterType((*CreateClusterRequest)(nil), "google.container.v1beta1.CreateClusterRequest") proto.RegisterType((*GetClusterRequest)(nil), "google.container.v1beta1.GetClusterRequest") proto.RegisterType((*UpdateClusterRequest)(nil), "google.container.v1beta1.UpdateClusterRequest") + proto.RegisterType((*UpdateNodePoolRequest)(nil), "google.container.v1beta1.UpdateNodePoolRequest") + proto.RegisterType((*SetNodePoolAutoscalingRequest)(nil), "google.container.v1beta1.SetNodePoolAutoscalingRequest") + proto.RegisterType((*SetLoggingServiceRequest)(nil), "google.container.v1beta1.SetLoggingServiceRequest") + proto.RegisterType((*SetMonitoringServiceRequest)(nil), "google.container.v1beta1.SetMonitoringServiceRequest") + proto.RegisterType((*SetAddonsConfigRequest)(nil), "google.container.v1beta1.SetAddonsConfigRequest") + proto.RegisterType((*SetLocationsRequest)(nil), "google.container.v1beta1.SetLocationsRequest") + proto.RegisterType((*UpdateMasterRequest)(nil), "google.container.v1beta1.UpdateMasterRequest") proto.RegisterType((*SetMasterAuthRequest)(nil), "google.container.v1beta1.SetMasterAuthRequest") proto.RegisterType((*DeleteClusterRequest)(nil), "google.container.v1beta1.DeleteClusterRequest") proto.RegisterType((*ListClustersRequest)(nil), "google.container.v1beta1.ListClustersRequest") @@ -4636,8 +7435,11 @@ func init() { proto.RegisterType((*MaintenanceWindow)(nil), "google.container.v1beta1.MaintenanceWindow") proto.RegisterType((*DailyMaintenanceWindow)(nil), "google.container.v1beta1.DailyMaintenanceWindow") proto.RegisterType((*SetNodePoolManagementRequest)(nil), "google.container.v1beta1.SetNodePoolManagementRequest") + proto.RegisterType((*SetNodePoolSizeRequest)(nil), "google.container.v1beta1.SetNodePoolSizeRequest") proto.RegisterType((*RollbackNodePoolUpgradeRequest)(nil), "google.container.v1beta1.RollbackNodePoolUpgradeRequest") proto.RegisterType((*ListNodePoolsResponse)(nil), "google.container.v1beta1.ListNodePoolsResponse") + proto.RegisterType((*ClusterAutoscaling)(nil), "google.container.v1beta1.ClusterAutoscaling") + proto.RegisterType((*ResourceLimit)(nil), "google.container.v1beta1.ResourceLimit") proto.RegisterType((*NodePoolAutoscaling)(nil), "google.container.v1beta1.NodePoolAutoscaling") proto.RegisterType((*SetLabelsRequest)(nil), "google.container.v1beta1.SetLabelsRequest") proto.RegisterMapType((map[string]string)(nil), "google.container.v1beta1.SetLabelsRequest.ResourceLabelsEntry") @@ -4645,15 +7447,34 @@ func init() { proto.RegisterType((*StartIPRotationRequest)(nil), "google.container.v1beta1.StartIPRotationRequest") proto.RegisterType((*CompleteIPRotationRequest)(nil), "google.container.v1beta1.CompleteIPRotationRequest") proto.RegisterType((*AcceleratorConfig)(nil), "google.container.v1beta1.AcceleratorConfig") + proto.RegisterType((*WorkloadMetadataConfig)(nil), "google.container.v1beta1.WorkloadMetadataConfig") proto.RegisterType((*SetNetworkPolicyRequest)(nil), "google.container.v1beta1.SetNetworkPolicyRequest") proto.RegisterType((*SetMaintenancePolicyRequest)(nil), "google.container.v1beta1.SetMaintenancePolicyRequest") + proto.RegisterType((*ListLocationsRequest)(nil), "google.container.v1beta1.ListLocationsRequest") + proto.RegisterType((*ListLocationsResponse)(nil), "google.container.v1beta1.ListLocationsResponse") + proto.RegisterType((*Location)(nil), "google.container.v1beta1.Location") + proto.RegisterType((*StatusCondition)(nil), "google.container.v1beta1.StatusCondition") + proto.RegisterType((*NetworkConfig)(nil), "google.container.v1beta1.NetworkConfig") + proto.RegisterType((*ListUsableSubnetworksRequest)(nil), "google.container.v1beta1.ListUsableSubnetworksRequest") + proto.RegisterType((*ListUsableSubnetworksResponse)(nil), "google.container.v1beta1.ListUsableSubnetworksResponse") + proto.RegisterType((*UsableSubnetworkSecondaryRange)(nil), "google.container.v1beta1.UsableSubnetworkSecondaryRange") + proto.RegisterType((*UsableSubnetwork)(nil), "google.container.v1beta1.UsableSubnetwork") + proto.RegisterType((*VerticalPodAutoscaling)(nil), "google.container.v1beta1.VerticalPodAutoscaling") + proto.RegisterType((*MaxPodsConstraint)(nil), "google.container.v1beta1.MaxPodsConstraint") + proto.RegisterType((*ResourceUsageExportConfig)(nil), "google.container.v1beta1.ResourceUsageExportConfig") + proto.RegisterType((*ResourceUsageExportConfig_BigQueryDestination)(nil), "google.container.v1beta1.ResourceUsageExportConfig.BigQueryDestination") proto.RegisterEnum("google.container.v1beta1.NodeTaint_Effect", NodeTaint_Effect_name, NodeTaint_Effect_value) + proto.RegisterEnum("google.container.v1beta1.IstioConfig_IstioAuthMode", IstioConfig_IstioAuthMode_name, IstioConfig_IstioAuthMode_value) proto.RegisterEnum("google.container.v1beta1.NetworkPolicy_Provider", NetworkPolicy_Provider_name, NetworkPolicy_Provider_value) proto.RegisterEnum("google.container.v1beta1.Cluster_Status", Cluster_Status_name, Cluster_Status_value) proto.RegisterEnum("google.container.v1beta1.Operation_Status", Operation_Status_name, Operation_Status_value) proto.RegisterEnum("google.container.v1beta1.Operation_Type", Operation_Type_name, Operation_Type_value) proto.RegisterEnum("google.container.v1beta1.SetMasterAuthRequest_Action", SetMasterAuthRequest_Action_name, SetMasterAuthRequest_Action_value) proto.RegisterEnum("google.container.v1beta1.NodePool_Status", NodePool_Status_name, NodePool_Status_value) + proto.RegisterEnum("google.container.v1beta1.WorkloadMetadataConfig_NodeMetadata", WorkloadMetadataConfig_NodeMetadata_name, WorkloadMetadataConfig_NodeMetadata_value) + proto.RegisterEnum("google.container.v1beta1.Location_LocationType", Location_LocationType_name, Location_LocationType_value) + proto.RegisterEnum("google.container.v1beta1.StatusCondition_Code", StatusCondition_Code_name, StatusCondition_Code_value) + proto.RegisterEnum("google.container.v1beta1.UsableSubnetworkSecondaryRange_Status", UsableSubnetworkSecondaryRange_Status_name, UsableSubnetworkSecondaryRange_Status_value) } // Reference imports to suppress errors if they are not otherwise used. @@ -4671,7 +7492,7 @@ type ClusterManagerClient interface { // Lists all clusters owned by a project in either the specified zone or all // zones. ListClusters(ctx context.Context, in *ListClustersRequest, opts ...grpc.CallOption) (*ListClustersResponse, error) - // Gets the details of a specific cluster. + // Gets the details for a specific cluster. GetCluster(ctx context.Context, in *GetClusterRequest, opts ...grpc.CallOption) (*Cluster, error) // Creates a cluster, consisting of the specified number and type of Google // Compute Engine instances. @@ -4687,10 +7508,24 @@ type ClusterManagerClient interface { // Finally, an entry is added to the project's global metadata indicating // which CIDR range is being used by the cluster. CreateCluster(ctx context.Context, in *CreateClusterRequest, opts ...grpc.CallOption) (*Operation, error) - // Updates the settings of a specific cluster. + // Updates the settings for a specific cluster. UpdateCluster(ctx context.Context, in *UpdateClusterRequest, opts ...grpc.CallOption) (*Operation, error) + // Updates the version and/or image type of a specific node pool. + UpdateNodePool(ctx context.Context, in *UpdateNodePoolRequest, opts ...grpc.CallOption) (*Operation, error) + // Sets the autoscaling settings of a specific node pool. + SetNodePoolAutoscaling(ctx context.Context, in *SetNodePoolAutoscalingRequest, opts ...grpc.CallOption) (*Operation, error) + // Sets the logging service for a specific cluster. + SetLoggingService(ctx context.Context, in *SetLoggingServiceRequest, opts ...grpc.CallOption) (*Operation, error) + // Sets the monitoring service for a specific cluster. + SetMonitoringService(ctx context.Context, in *SetMonitoringServiceRequest, opts ...grpc.CallOption) (*Operation, error) + // Sets the addons for a specific cluster. + SetAddonsConfig(ctx context.Context, in *SetAddonsConfigRequest, opts ...grpc.CallOption) (*Operation, error) + // Sets the locations for a specific cluster. + SetLocations(ctx context.Context, in *SetLocationsRequest, opts ...grpc.CallOption) (*Operation, error) + // Updates the master for a specific cluster. + UpdateMaster(ctx context.Context, in *UpdateMasterRequest, opts ...grpc.CallOption) (*Operation, error) // Used to set master auth materials. Currently supports :- - // Changing the admin password of a specific cluster. + // Changing the admin password for a specific cluster. // This can be either via password generation or explicitly set. // Modify basic_auth.csv and reset the K8S API server. SetMasterAuth(ctx context.Context, in *SetMasterAuthRequest, opts ...grpc.CallOption) (*Operation, error) @@ -4710,7 +7545,7 @@ type ClusterManagerClient interface { GetOperation(ctx context.Context, in *GetOperationRequest, opts ...grpc.CallOption) (*Operation, error) // Cancels the specified operation. CancelOperation(ctx context.Context, in *CancelOperationRequest, opts ...grpc.CallOption) (*empty.Empty, error) - // Returns configuration info about the Container Engine service. + // Returns configuration info about the Kubernetes Engine service. GetServerConfig(ctx context.Context, in *GetServerConfigRequest, opts ...grpc.CallOption) (*ServerConfig, error) // Lists the node pools for a cluster. ListNodePools(ctx context.Context, in *ListNodePoolsRequest, opts ...grpc.CallOption) (*ListNodePoolsResponse, error) @@ -4733,10 +7568,16 @@ type ClusterManagerClient interface { StartIPRotation(ctx context.Context, in *StartIPRotationRequest, opts ...grpc.CallOption) (*Operation, error) // Completes master IP rotation. CompleteIPRotation(ctx context.Context, in *CompleteIPRotationRequest, opts ...grpc.CallOption) (*Operation, error) + // Sets the size for a specific node pool. + SetNodePoolSize(ctx context.Context, in *SetNodePoolSizeRequest, opts ...grpc.CallOption) (*Operation, error) // Enables/Disables Network Policy for a cluster. SetNetworkPolicy(ctx context.Context, in *SetNetworkPolicyRequest, opts ...grpc.CallOption) (*Operation, error) // Sets the maintenance policy for a cluster. SetMaintenancePolicy(ctx context.Context, in *SetMaintenancePolicyRequest, opts ...grpc.CallOption) (*Operation, error) + // Lists subnetworks that are usable for creating clusters in a project. + ListUsableSubnetworks(ctx context.Context, in *ListUsableSubnetworksRequest, opts ...grpc.CallOption) (*ListUsableSubnetworksResponse, error) + // Used to fetch locations that offer GKE. + ListLocations(ctx context.Context, in *ListLocationsRequest, opts ...grpc.CallOption) (*ListLocationsResponse, error) } type clusterManagerClient struct { @@ -4783,6 +7624,69 @@ func (c *clusterManagerClient) UpdateCluster(ctx context.Context, in *UpdateClus return out, nil } +func (c *clusterManagerClient) UpdateNodePool(ctx context.Context, in *UpdateNodePoolRequest, opts ...grpc.CallOption) (*Operation, error) { + out := new(Operation) + err := c.cc.Invoke(ctx, "/google.container.v1beta1.ClusterManager/UpdateNodePool", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *clusterManagerClient) SetNodePoolAutoscaling(ctx context.Context, in *SetNodePoolAutoscalingRequest, opts ...grpc.CallOption) (*Operation, error) { + out := new(Operation) + err := c.cc.Invoke(ctx, "/google.container.v1beta1.ClusterManager/SetNodePoolAutoscaling", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *clusterManagerClient) SetLoggingService(ctx context.Context, in *SetLoggingServiceRequest, opts ...grpc.CallOption) (*Operation, error) { + out := new(Operation) + err := c.cc.Invoke(ctx, "/google.container.v1beta1.ClusterManager/SetLoggingService", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *clusterManagerClient) SetMonitoringService(ctx context.Context, in *SetMonitoringServiceRequest, opts ...grpc.CallOption) (*Operation, error) { + out := new(Operation) + err := c.cc.Invoke(ctx, "/google.container.v1beta1.ClusterManager/SetMonitoringService", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *clusterManagerClient) SetAddonsConfig(ctx context.Context, in *SetAddonsConfigRequest, opts ...grpc.CallOption) (*Operation, error) { + out := new(Operation) + err := c.cc.Invoke(ctx, "/google.container.v1beta1.ClusterManager/SetAddonsConfig", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *clusterManagerClient) SetLocations(ctx context.Context, in *SetLocationsRequest, opts ...grpc.CallOption) (*Operation, error) { + out := new(Operation) + err := c.cc.Invoke(ctx, "/google.container.v1beta1.ClusterManager/SetLocations", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *clusterManagerClient) UpdateMaster(ctx context.Context, in *UpdateMasterRequest, opts ...grpc.CallOption) (*Operation, error) { + out := new(Operation) + err := c.cc.Invoke(ctx, "/google.container.v1beta1.ClusterManager/UpdateMaster", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *clusterManagerClient) SetMasterAuth(ctx context.Context, in *SetMasterAuthRequest, opts ...grpc.CallOption) (*Operation, error) { out := new(Operation) err := c.cc.Invoke(ctx, "/google.container.v1beta1.ClusterManager/SetMasterAuth", in, out, opts...) @@ -4927,6 +7831,15 @@ func (c *clusterManagerClient) CompleteIPRotation(ctx context.Context, in *Compl return out, nil } +func (c *clusterManagerClient) SetNodePoolSize(ctx context.Context, in *SetNodePoolSizeRequest, opts ...grpc.CallOption) (*Operation, error) { + out := new(Operation) + err := c.cc.Invoke(ctx, "/google.container.v1beta1.ClusterManager/SetNodePoolSize", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *clusterManagerClient) SetNetworkPolicy(ctx context.Context, in *SetNetworkPolicyRequest, opts ...grpc.CallOption) (*Operation, error) { out := new(Operation) err := c.cc.Invoke(ctx, "/google.container.v1beta1.ClusterManager/SetNetworkPolicy", in, out, opts...) @@ -4945,12 +7858,30 @@ func (c *clusterManagerClient) SetMaintenancePolicy(ctx context.Context, in *Set return out, nil } +func (c *clusterManagerClient) ListUsableSubnetworks(ctx context.Context, in *ListUsableSubnetworksRequest, opts ...grpc.CallOption) (*ListUsableSubnetworksResponse, error) { + out := new(ListUsableSubnetworksResponse) + err := c.cc.Invoke(ctx, "/google.container.v1beta1.ClusterManager/ListUsableSubnetworks", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *clusterManagerClient) ListLocations(ctx context.Context, in *ListLocationsRequest, opts ...grpc.CallOption) (*ListLocationsResponse, error) { + out := new(ListLocationsResponse) + err := c.cc.Invoke(ctx, "/google.container.v1beta1.ClusterManager/ListLocations", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // ClusterManagerServer is the server API for ClusterManager service. type ClusterManagerServer interface { // Lists all clusters owned by a project in either the specified zone or all // zones. ListClusters(context.Context, *ListClustersRequest) (*ListClustersResponse, error) - // Gets the details of a specific cluster. + // Gets the details for a specific cluster. GetCluster(context.Context, *GetClusterRequest) (*Cluster, error) // Creates a cluster, consisting of the specified number and type of Google // Compute Engine instances. @@ -4966,10 +7897,24 @@ type ClusterManagerServer interface { // Finally, an entry is added to the project's global metadata indicating // which CIDR range is being used by the cluster. CreateCluster(context.Context, *CreateClusterRequest) (*Operation, error) - // Updates the settings of a specific cluster. + // Updates the settings for a specific cluster. UpdateCluster(context.Context, *UpdateClusterRequest) (*Operation, error) + // Updates the version and/or image type of a specific node pool. + UpdateNodePool(context.Context, *UpdateNodePoolRequest) (*Operation, error) + // Sets the autoscaling settings of a specific node pool. + SetNodePoolAutoscaling(context.Context, *SetNodePoolAutoscalingRequest) (*Operation, error) + // Sets the logging service for a specific cluster. + SetLoggingService(context.Context, *SetLoggingServiceRequest) (*Operation, error) + // Sets the monitoring service for a specific cluster. + SetMonitoringService(context.Context, *SetMonitoringServiceRequest) (*Operation, error) + // Sets the addons for a specific cluster. + SetAddonsConfig(context.Context, *SetAddonsConfigRequest) (*Operation, error) + // Sets the locations for a specific cluster. + SetLocations(context.Context, *SetLocationsRequest) (*Operation, error) + // Updates the master for a specific cluster. + UpdateMaster(context.Context, *UpdateMasterRequest) (*Operation, error) // Used to set master auth materials. Currently supports :- - // Changing the admin password of a specific cluster. + // Changing the admin password for a specific cluster. // This can be either via password generation or explicitly set. // Modify basic_auth.csv and reset the K8S API server. SetMasterAuth(context.Context, *SetMasterAuthRequest) (*Operation, error) @@ -4989,7 +7934,7 @@ type ClusterManagerServer interface { GetOperation(context.Context, *GetOperationRequest) (*Operation, error) // Cancels the specified operation. CancelOperation(context.Context, *CancelOperationRequest) (*empty.Empty, error) - // Returns configuration info about the Container Engine service. + // Returns configuration info about the Kubernetes Engine service. GetServerConfig(context.Context, *GetServerConfigRequest) (*ServerConfig, error) // Lists the node pools for a cluster. ListNodePools(context.Context, *ListNodePoolsRequest) (*ListNodePoolsResponse, error) @@ -5012,10 +7957,16 @@ type ClusterManagerServer interface { StartIPRotation(context.Context, *StartIPRotationRequest) (*Operation, error) // Completes master IP rotation. CompleteIPRotation(context.Context, *CompleteIPRotationRequest) (*Operation, error) + // Sets the size for a specific node pool. + SetNodePoolSize(context.Context, *SetNodePoolSizeRequest) (*Operation, error) // Enables/Disables Network Policy for a cluster. SetNetworkPolicy(context.Context, *SetNetworkPolicyRequest) (*Operation, error) // Sets the maintenance policy for a cluster. SetMaintenancePolicy(context.Context, *SetMaintenancePolicyRequest) (*Operation, error) + // Lists subnetworks that are usable for creating clusters in a project. + ListUsableSubnetworks(context.Context, *ListUsableSubnetworksRequest) (*ListUsableSubnetworksResponse, error) + // Used to fetch locations that offer GKE. + ListLocations(context.Context, *ListLocationsRequest) (*ListLocationsResponse, error) } func RegisterClusterManagerServer(s *grpc.Server, srv ClusterManagerServer) { @@ -5094,6 +8045,132 @@ func _ClusterManager_UpdateCluster_Handler(srv interface{}, ctx context.Context, return interceptor(ctx, in, info, handler) } +func _ClusterManager_UpdateNodePool_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateNodePoolRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ClusterManagerServer).UpdateNodePool(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.container.v1beta1.ClusterManager/UpdateNodePool", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ClusterManagerServer).UpdateNodePool(ctx, req.(*UpdateNodePoolRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ClusterManager_SetNodePoolAutoscaling_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetNodePoolAutoscalingRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ClusterManagerServer).SetNodePoolAutoscaling(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.container.v1beta1.ClusterManager/SetNodePoolAutoscaling", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ClusterManagerServer).SetNodePoolAutoscaling(ctx, req.(*SetNodePoolAutoscalingRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ClusterManager_SetLoggingService_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetLoggingServiceRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ClusterManagerServer).SetLoggingService(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.container.v1beta1.ClusterManager/SetLoggingService", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ClusterManagerServer).SetLoggingService(ctx, req.(*SetLoggingServiceRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ClusterManager_SetMonitoringService_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetMonitoringServiceRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ClusterManagerServer).SetMonitoringService(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.container.v1beta1.ClusterManager/SetMonitoringService", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ClusterManagerServer).SetMonitoringService(ctx, req.(*SetMonitoringServiceRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ClusterManager_SetAddonsConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetAddonsConfigRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ClusterManagerServer).SetAddonsConfig(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.container.v1beta1.ClusterManager/SetAddonsConfig", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ClusterManagerServer).SetAddonsConfig(ctx, req.(*SetAddonsConfigRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ClusterManager_SetLocations_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetLocationsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ClusterManagerServer).SetLocations(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.container.v1beta1.ClusterManager/SetLocations", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ClusterManagerServer).SetLocations(ctx, req.(*SetLocationsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ClusterManager_UpdateMaster_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateMasterRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ClusterManagerServer).UpdateMaster(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.container.v1beta1.ClusterManager/UpdateMaster", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ClusterManagerServer).UpdateMaster(ctx, req.(*UpdateMasterRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _ClusterManager_SetMasterAuth_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(SetMasterAuthRequest) if err := dec(in); err != nil { @@ -5382,6 +8459,24 @@ func _ClusterManager_CompleteIPRotation_Handler(srv interface{}, ctx context.Con return interceptor(ctx, in, info, handler) } +func _ClusterManager_SetNodePoolSize_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetNodePoolSizeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ClusterManagerServer).SetNodePoolSize(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.container.v1beta1.ClusterManager/SetNodePoolSize", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ClusterManagerServer).SetNodePoolSize(ctx, req.(*SetNodePoolSizeRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _ClusterManager_SetNetworkPolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(SetNetworkPolicyRequest) if err := dec(in); err != nil { @@ -5418,6 +8513,42 @@ func _ClusterManager_SetMaintenancePolicy_Handler(srv interface{}, ctx context.C return interceptor(ctx, in, info, handler) } +func _ClusterManager_ListUsableSubnetworks_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListUsableSubnetworksRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ClusterManagerServer).ListUsableSubnetworks(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.container.v1beta1.ClusterManager/ListUsableSubnetworks", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ClusterManagerServer).ListUsableSubnetworks(ctx, req.(*ListUsableSubnetworksRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ClusterManager_ListLocations_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListLocationsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ClusterManagerServer).ListLocations(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.container.v1beta1.ClusterManager/ListLocations", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ClusterManagerServer).ListLocations(ctx, req.(*ListLocationsRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _ClusterManager_serviceDesc = grpc.ServiceDesc{ ServiceName: "google.container.v1beta1.ClusterManager", HandlerType: (*ClusterManagerServer)(nil), @@ -5438,6 +8569,34 @@ var _ClusterManager_serviceDesc = grpc.ServiceDesc{ MethodName: "UpdateCluster", Handler: _ClusterManager_UpdateCluster_Handler, }, + { + MethodName: "UpdateNodePool", + Handler: _ClusterManager_UpdateNodePool_Handler, + }, + { + MethodName: "SetNodePoolAutoscaling", + Handler: _ClusterManager_SetNodePoolAutoscaling_Handler, + }, + { + MethodName: "SetLoggingService", + Handler: _ClusterManager_SetLoggingService_Handler, + }, + { + MethodName: "SetMonitoringService", + Handler: _ClusterManager_SetMonitoringService_Handler, + }, + { + MethodName: "SetAddonsConfig", + Handler: _ClusterManager_SetAddonsConfig_Handler, + }, + { + MethodName: "SetLocations", + Handler: _ClusterManager_SetLocations_Handler, + }, + { + MethodName: "UpdateMaster", + Handler: _ClusterManager_UpdateMaster_Handler, + }, { MethodName: "SetMasterAuth", Handler: _ClusterManager_SetMasterAuth_Handler, @@ -5502,6 +8661,10 @@ var _ClusterManager_serviceDesc = grpc.ServiceDesc{ MethodName: "CompleteIPRotation", Handler: _ClusterManager_CompleteIPRotation_Handler, }, + { + MethodName: "SetNodePoolSize", + Handler: _ClusterManager_SetNodePoolSize_Handler, + }, { MethodName: "SetNetworkPolicy", Handler: _ClusterManager_SetNetworkPolicy_Handler, @@ -5510,289 +8673,463 @@ var _ClusterManager_serviceDesc = grpc.ServiceDesc{ MethodName: "SetMaintenancePolicy", Handler: _ClusterManager_SetMaintenancePolicy_Handler, }, + { + MethodName: "ListUsableSubnetworks", + Handler: _ClusterManager_ListUsableSubnetworks_Handler, + }, + { + MethodName: "ListLocations", + Handler: _ClusterManager_ListLocations_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "google/container/v1beta1/cluster_service.proto", } func init() { - proto.RegisterFile("google/container/v1beta1/cluster_service.proto", fileDescriptor_cluster_service_8f6af64c98801cf8) + proto.RegisterFile("google/container/v1beta1/cluster_service.proto", fileDescriptor_cluster_service_4b3d530a1685571f) } -var fileDescriptor_cluster_service_8f6af64c98801cf8 = []byte{ - // 4381 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x7c, 0x5b, 0x6c, 0xe3, 0x56, - 0x7a, 0xf0, 0xd2, 0x17, 0xd9, 0xfa, 0x24, 0xcb, 0xf2, 0xf1, 0x4d, 0x51, 0x26, 0x93, 0x09, 0x93, - 0x4d, 0x26, 0x4e, 0x22, 0xcf, 0x25, 0x99, 0x3f, 0x3b, 0x93, 0xfc, 0xa9, 0x2c, 0x73, 0x6c, 0x75, - 0x6c, 0x49, 0xa5, 0xec, 0x99, 0xcd, 0x34, 0x28, 0x97, 0x26, 0x8f, 0x65, 0xae, 0x29, 0x92, 0x4b, - 0x52, 0x93, 0x78, 0xb6, 0x69, 0xbb, 0xdb, 0xbe, 0xf5, 0xad, 0x05, 0xda, 0x97, 0xa2, 0x01, 0xb6, - 0x40, 0x91, 0xde, 0x80, 0x7d, 0x69, 0x17, 0x2d, 0x50, 0x14, 0x28, 0xd0, 0x97, 0xb6, 0x40, 0xd1, - 0xf6, 0xb1, 0x28, 0xfa, 0xb2, 0xcf, 0x6d, 0x9f, 0x5b, 0x14, 0x28, 0xce, 0x85, 0x14, 0x29, 0x51, - 0x94, 0x6c, 0xaf, 0xd3, 0x7d, 0x13, 0xbf, 0x73, 0xbe, 0xf3, 0x5d, 0xf8, 0xdd, 0x79, 0x6c, 0xa8, - 0x74, 0x6c, 0xbb, 0x63, 0xe2, 0x4d, 0xcd, 0xb6, 0x7c, 0xd5, 0xb0, 0xb0, 0xbb, 0xf9, 0xec, 0xf6, - 0x11, 0xf6, 0xd5, 0xdb, 0x9b, 0x9a, 0xd9, 0xf3, 0x7c, 0xec, 0x2a, 0x1e, 0x76, 0x9f, 0x19, 0x1a, - 0xae, 0x38, 0xae, 0xed, 0xdb, 0xa8, 0xc4, 0xf6, 0x57, 0xc2, 0xfd, 0x15, 0xbe, 0xbf, 0x7c, 0x8d, - 0x9f, 0xa4, 0x3a, 0xc6, 0xa6, 0x6a, 0x59, 0xb6, 0xaf, 0xfa, 0x86, 0x6d, 0x79, 0x0c, 0xaf, 0xfc, - 0x22, 0x5f, 0xa5, 0x4f, 0x47, 0xbd, 0xe3, 0x4d, 0xdc, 0x75, 0xfc, 0x33, 0xb6, 0x28, 0xfe, 0x78, - 0x16, 0xa0, 0x61, 0xeb, 0xb8, 0x66, 0x5b, 0xc7, 0x46, 0x07, 0xbd, 0x02, 0xf9, 0xae, 0xaa, 0x9d, - 0x18, 0x16, 0x56, 0xfc, 0x33, 0x07, 0x97, 0x84, 0x1b, 0xc2, 0xcd, 0xac, 0x9c, 0xe3, 0xb0, 0x83, - 0x33, 0x07, 0xa3, 0x1b, 0x90, 0xd7, 0x0d, 0xef, 0x54, 0xf1, 0x8c, 0xe7, 0x58, 0xe9, 0x1c, 0x95, - 0xa6, 0x6e, 0x08, 0x37, 0x67, 0x65, 0x20, 0xb0, 0xb6, 0xf1, 0x1c, 0xef, 0x1c, 0x91, 0x43, 0x6c, - 0xb5, 0xe7, 0x9f, 0x28, 0x9e, 0x66, 0x3b, 0xd8, 0x2b, 0x4d, 0xdf, 0x98, 0x26, 0x87, 0x50, 0x58, - 0x9b, 0x82, 0xd0, 0x1b, 0xb0, 0xc8, 0x85, 0x53, 0x54, 0x4d, 0xb3, 0x7b, 0x96, 0x5f, 0xca, 0x52, - 0x52, 0x05, 0x0e, 0xae, 0x32, 0x28, 0x6a, 0xc0, 0x7c, 0x17, 0xfb, 0xaa, 0xae, 0xfa, 0x6a, 0x69, - 0xe6, 0xc6, 0xf4, 0xcd, 0xdc, 0x9d, 0x3b, 0x95, 0x51, 0x7a, 0xa8, 0xf4, 0x05, 0xa9, 0xec, 0x73, - 0x24, 0xc9, 0xf2, 0xdd, 0x33, 0x39, 0x3c, 0x03, 0xbd, 0x04, 0x60, 0x74, 0xd5, 0x0e, 0x17, 0x6f, - 0x96, 0xd2, 0xcc, 0x52, 0x08, 0x15, 0x6e, 0x17, 0x32, 0xa6, 0x7a, 0x84, 0x4d, 0xaf, 0x94, 0xa1, - 0xc4, 0x6e, 0x4d, 0x44, 0x6c, 0x8f, 0xa2, 0x30, 0x52, 0x1c, 0x1f, 0xbd, 0x0e, 0x8b, 0xa6, 0xad, - 0xa9, 0xa6, 0xe2, 0x79, 0xba, 0xc2, 0x24, 0x9c, 0xa3, 0x9a, 0x5a, 0xa0, 0xe0, 0xb6, 0xa7, 0xd7, - 0xa8, 0x80, 0x08, 0x66, 0x7c, 0xb5, 0xe3, 0x95, 0xe6, 0xa9, 0x92, 0xe8, 0x6f, 0x74, 0x03, 0x72, - 0x8e, 0x8b, 0xc9, 0x6b, 0x32, 0x8e, 0x4c, 0x5c, 0x82, 0x1b, 0xc2, 0xcd, 0x79, 0x39, 0x0a, 0x42, - 0x4d, 0xc8, 0xab, 0x9a, 0x86, 0x4d, 0xec, 0xaa, 0xbe, 0xed, 0x7a, 0xa5, 0x1c, 0xe5, 0xf6, 0xad, - 0xd1, 0xdc, 0x56, 0xfb, 0xbb, 0x19, 0xd3, 0x72, 0xec, 0x00, 0x74, 0x13, 0x8a, 0x5d, 0xc3, 0x52, - 0x34, 0xa7, 0xa7, 0x38, 0xa6, 0xea, 0x1f, 0xdb, 0x6e, 0xb7, 0xb4, 0xc0, 0xde, 0x48, 0xd7, 0xb0, - 0x6a, 0x4e, 0xaf, 0xc5, 0xa1, 0xe8, 0x01, 0x64, 0xc8, 0xd9, 0xbe, 0x57, 0x5a, 0xa4, 0x44, 0x5f, - 0x4d, 0x57, 0xd1, 0x01, 0xd9, 0x2b, 0x73, 0x94, 0xf2, 0x03, 0x58, 0x88, 0xbd, 0x19, 0x54, 0x84, - 0xe9, 0x53, 0x7c, 0xc6, 0xed, 0x8c, 0xfc, 0x44, 0x2b, 0x30, 0xfb, 0x4c, 0x35, 0x7b, 0x98, 0x1a, - 0x56, 0x56, 0x66, 0x0f, 0xf7, 0xa7, 0xde, 0x17, 0xca, 0xdf, 0x80, 0x5c, 0x44, 0xd3, 0xe7, 0x41, - 0x15, 0xff, 0x49, 0x80, 0x6c, 0xc8, 0xcd, 0xa4, 0x98, 0x68, 0x0b, 0x32, 0xf8, 0xf8, 0x18, 0x6b, - 0x7e, 0x69, 0xfa, 0x86, 0x70, 0xb3, 0x70, 0x67, 0x63, 0x02, 0x51, 0x2b, 0x12, 0xc5, 0x90, 0x39, - 0xa6, 0xf8, 0x31, 0x64, 0x18, 0x04, 0xad, 0x01, 0x92, 0x1e, 0x3e, 0x94, 0x6a, 0x07, 0xca, 0x61, - 0xa3, 0xdd, 0x92, 0x6a, 0xf5, 0x87, 0x75, 0x69, 0xbb, 0xf8, 0x35, 0xb4, 0x08, 0xb9, 0x46, 0x53, - 0x69, 0xd7, 0x76, 0xa5, 0xed, 0xc3, 0x3d, 0xa9, 0x28, 0x90, 0x8d, 0x2d, 0x59, 0x7a, 0x28, 0xc9, - 0x4a, 0x14, 0x3e, 0x85, 0x0a, 0x00, 0x8d, 0xa6, 0x22, 0x7d, 0x53, 0xaa, 0x1d, 0x1e, 0x48, 0xc5, - 0x69, 0xf1, 0x47, 0x53, 0x00, 0xfb, 0x2a, 0x89, 0x14, 0xd5, 0x9e, 0x7f, 0x82, 0xca, 0x30, 0xdf, - 0xf3, 0xb0, 0x6b, 0xa9, 0xdd, 0xc0, 0x6f, 0xc3, 0x67, 0xb2, 0xe6, 0xa8, 0x9e, 0xf7, 0xa9, 0xed, - 0xea, 0x5c, 0xc4, 0xf0, 0x19, 0x75, 0xe1, 0x05, 0xcd, 0x34, 0xb0, 0xe5, 0x2b, 0x1a, 0x76, 0x7d, - 0xe3, 0xd8, 0xd0, 0x54, 0x1f, 0x2b, 0x1a, 0xb5, 0x12, 0x2a, 0x78, 0xee, 0xce, 0xed, 0xd1, 0x82, - 0xd7, 0x28, 0x6a, 0xad, 0x8f, 0xc9, 0xcd, 0x6b, 0x5d, 0x4b, 0x5e, 0x40, 0xef, 0xc2, 0x5a, 0x10, - 0xdf, 0x34, 0x35, 0x4a, 0xb2, 0xa4, 0x53, 0xc6, 0x56, 0xf8, 0x6a, 0x4d, 0x8d, 0xe0, 0xa2, 0x77, - 0x00, 0x0d, 0x33, 0x59, 0xc2, 0x14, 0x63, 0x69, 0x88, 0x14, 0x71, 0x73, 0xbe, 0x9d, 0xbc, 0xe8, - 0x63, 0xe6, 0xe6, 0x0c, 0xf2, 0x08, 0x9f, 0x89, 0x6d, 0x58, 0x1f, 0xc1, 0x37, 0x7a, 0x1f, 0x4a, - 0x86, 0xe7, 0xf5, 0xb0, 0x92, 0x40, 0x4e, 0xa0, 0x8e, 0xb8, 0x46, 0xd7, 0x87, 0xf0, 0xc5, 0x1f, - 0x4c, 0x43, 0xbe, 0xaa, 0xeb, 0xb6, 0xe5, 0xf1, 0xa3, 0x7e, 0x1e, 0x96, 0x4f, 0x7c, 0xdf, 0x51, - 0x4c, 0x5b, 0xd5, 0x95, 0x23, 0xd5, 0x54, 0x2d, 0xcd, 0xb0, 0x3a, 0xf4, 0x94, 0x54, 0x5f, 0xdd, - 0xf5, 0x7d, 0x67, 0xcf, 0x56, 0xf5, 0xad, 0x00, 0x45, 0x5e, 0x3a, 0x19, 0x04, 0x21, 0x07, 0xca, - 0x27, 0xb6, 0x6b, 0x3c, 0x27, 0xd8, 0xa6, 0xe2, 0xd8, 0xba, 0xa2, 0xf6, 0x7c, 0xdb, 0xd3, 0x54, - 0x93, 0xd0, 0x98, 0xa2, 0x34, 0x52, 0x42, 0xe5, 0x6e, 0x88, 0xdb, 0xb2, 0xf5, 0x6a, 0x1f, 0x53, - 0x2e, 0x9d, 0x8c, 0x58, 0x41, 0xdf, 0x82, 0x95, 0xd3, 0xde, 0x11, 0x76, 0x2d, 0xec, 0x63, 0x4f, - 0xd1, 0x55, 0xef, 0xe4, 0xc8, 0x56, 0x5d, 0x9d, 0x9b, 0xc8, 0x3b, 0xa3, 0x69, 0x3d, 0x0a, 0xb1, - 0xb6, 0x03, 0x24, 0x79, 0xf9, 0x74, 0x18, 0x88, 0x54, 0x58, 0xb5, 0xb0, 0xff, 0xa9, 0xed, 0x9e, - 0x2a, 0x8e, 0x6d, 0x1a, 0xda, 0x59, 0x60, 0x85, 0x33, 0xe3, 0x48, 0x34, 0x18, 0x5a, 0x8b, 0x62, - 0x71, 0x0b, 0x5c, 0xb6, 0x86, 0x81, 0xe2, 0x26, 0x2c, 0x0d, 0xa9, 0x97, 0x78, 0x87, 0x6e, 0x78, - 0xea, 0x91, 0x89, 0x75, 0xfe, 0x8e, 0xc3, 0x67, 0xf1, 0x1e, 0x94, 0x46, 0xe9, 0x2a, 0x15, 0xef, - 0x36, 0x2c, 0x27, 0xc8, 0x3d, 0x0e, 0x25, 0x41, 0x8e, 0x54, 0x94, 0x7f, 0x17, 0xe0, 0x7a, 0x3f, - 0x04, 0x10, 0x3e, 0xb1, 0xce, 0xcf, 0x08, 0xac, 0xb0, 0x04, 0x73, 0xd8, 0x8a, 0x62, 0x07, 0x8f, - 0x48, 0x83, 0x9c, 0x66, 0xe8, 0xae, 0x72, 0x64, 0xda, 0xda, 0xa9, 0x57, 0x9a, 0xa2, 0xe1, 0x7c, - 0x6b, 0xb4, 0x92, 0xd3, 0x09, 0x55, 0x6a, 0x86, 0xee, 0x6e, 0x91, 0xa3, 0x64, 0xd0, 0x82, 0x9f, - 0x5e, 0x79, 0x1f, 0xb2, 0xe1, 0x02, 0xa9, 0x0c, 0x74, 0xc3, 0x73, 0x4c, 0xf5, 0x4c, 0x89, 0x84, - 0xa9, 0x1c, 0x87, 0x35, 0x48, 0xa4, 0x22, 0x9e, 0x1b, 0x32, 0xc5, 0x63, 0x55, 0x36, 0x3c, 0x4f, - 0xfc, 0x03, 0x01, 0x16, 0x62, 0x4a, 0x42, 0x7b, 0x30, 0xef, 0xb8, 0xf6, 0x33, 0x43, 0xc7, 0x2e, - 0x3d, 0xaf, 0x90, 0x9a, 0xb4, 0xa3, 0xa8, 0x95, 0x16, 0xc7, 0x93, 0xc3, 0x13, 0xa2, 0xda, 0x9a, - 0x8a, 0x69, 0x4b, 0xbc, 0x05, 0xf3, 0xad, 0xfe, 0xae, 0x95, 0x96, 0xdc, 0x7c, 0x5c, 0xdf, 0x96, - 0xe4, 0x81, 0x60, 0x0e, 0x90, 0xa9, 0x55, 0xf7, 0xea, 0xb5, 0x66, 0x51, 0x10, 0xff, 0x74, 0x06, - 0x50, 0xbd, 0x55, 0x35, 0x49, 0xc2, 0x27, 0x05, 0x19, 0x67, 0xf8, 0x35, 0x28, 0xf4, 0x3c, 0xac, - 0x18, 0x8e, 0xa2, 0x9a, 0x86, 0xea, 0x61, 0x8f, 0xbf, 0x97, 0x7c, 0xcf, 0xc3, 0x75, 0xa7, 0xca, - 0x60, 0xe8, 0x2d, 0x58, 0xd2, 0x5c, 0x4c, 0x22, 0xb1, 0xd7, 0x3b, 0xe2, 0x96, 0xcc, 0x59, 0x2a, - 0xb2, 0x85, 0x76, 0x08, 0xa7, 0xe5, 0x54, 0xf8, 0xc4, 0x54, 0x3b, 0xcd, 0xcb, 0xa9, 0x10, 0x4c, - 0xb5, 0xbb, 0x01, 0x4b, 0x41, 0xf0, 0x35, 0x9c, 0x67, 0xef, 0x2a, 0x44, 0xb1, 0xd4, 0xbb, 0xb2, - 0xf2, 0x22, 0x5f, 0xa8, 0x3b, 0xcf, 0xde, 0x25, 0x6f, 0x8c, 0xf0, 0x69, 0xd9, 0x3a, 0x8e, 0x6c, - 0x64, 0xe5, 0x52, 0x9e, 0x40, 0xc3, 0x5d, 0x6f, 0x03, 0xe2, 0x25, 0x9b, 0x17, 0xd9, 0x99, 0xa1, - 0x3b, 0x8b, 0xc1, 0x4a, 0xb8, 0xfb, 0x23, 0xb8, 0xd6, 0x2f, 0x6e, 0x35, 0xdb, 0xd2, 0x55, 0xf7, - 0x4c, 0x71, 0x55, 0xab, 0x83, 0x19, 0xd7, 0x73, 0x14, 0xef, 0x05, 0xbe, 0xa7, 0x1d, 0x6c, 0x91, - 0xc9, 0x0e, 0x2a, 0x40, 0x15, 0x5e, 0x0a, 0xc9, 0x25, 0x9e, 0x30, 0x4f, 0x4f, 0x28, 0x07, 0x9b, - 0x12, 0x8e, 0x78, 0x0f, 0xd6, 0x87, 0x74, 0xc0, 0xcd, 0x2d, 0x1b, 0xcb, 0x40, 0x01, 0xd7, 0xcc, - 0x76, 0x37, 0x61, 0x25, 0xae, 0x0e, 0x8e, 0x03, 0x2c, 0x07, 0x45, 0x95, 0xc2, 0x10, 0xfe, 0x1f, - 0x94, 0x86, 0x35, 0xc3, 0x91, 0x72, 0x14, 0x69, 0x75, 0x50, 0x3f, 0xcc, 0xc6, 0xef, 0xc2, 0x7a, - 0xcb, 0xd6, 0xdb, 0x58, 0xeb, 0xb9, 0x86, 0x7f, 0x16, 0x8b, 0x05, 0x23, 0x9d, 0x59, 0xfc, 0xef, - 0x02, 0xcc, 0xd5, 0x18, 0xdf, 0xa4, 0xa6, 0x8c, 0xb8, 0x17, 0xfd, 0x4d, 0x6a, 0x4a, 0x1d, 0x7b, - 0x9a, 0x6b, 0x38, 0xc4, 0x14, 0xb9, 0x63, 0x45, 0x41, 0xe4, 0x4d, 0x1a, 0x96, 0xe1, 0x1b, 0xaa, - 0xa9, 0x50, 0x41, 0x59, 0xd1, 0x3a, 0x4d, 0x8b, 0xd6, 0x22, 0x5f, 0x61, 0x45, 0x2f, 0xa9, 0x5b, - 0x25, 0xc8, 0xf1, 0x5d, 0x91, 0x08, 0xfd, 0xda, 0x24, 0xe5, 0xb2, 0x0c, 0x56, 0xbf, 0xe1, 0x90, - 0x20, 0xd7, 0xa5, 0x61, 0x85, 0xa4, 0xaf, 0x13, 0x6a, 0x61, 0xa9, 0xc7, 0xf4, 0x63, 0x90, 0x0c, - 0xdd, 0x7e, 0xed, 0xf3, 0x06, 0xa9, 0xb6, 0x3b, 0x1d, 0xc3, 0xea, 0x04, 0x4d, 0x13, 0x37, 0xc1, - 0x02, 0x07, 0xb7, 0x19, 0x94, 0xd4, 0x11, 0x5d, 0xdb, 0x32, 0x7c, 0xdb, 0x8d, 0xee, 0x65, 0x66, - 0xb7, 0xd4, 0x5f, 0x09, 0xb6, 0x97, 0x60, 0x2e, 0xf0, 0x3d, 0x66, 0x58, 0xc1, 0x63, 0xb2, 0x27, - 0x65, 0x93, 0x3d, 0xe9, 0x11, 0x2c, 0xa8, 0xb4, 0x30, 0x08, 0xb4, 0x05, 0x54, 0xcc, 0xd7, 0x53, - 0xca, 0xf5, 0x48, 0x1d, 0x21, 0xe7, 0xd5, 0x68, 0x55, 0x71, 0x1d, 0x20, 0x12, 0x11, 0x98, 0x21, - 0x45, 0x20, 0xa8, 0x0a, 0x54, 0xbf, 0x8a, 0x63, 0xdb, 0xa6, 0x57, 0xca, 0xd3, 0xa0, 0x2e, 0xa6, - 0xbf, 0x97, 0x96, 0x6d, 0x9b, 0x72, 0xd6, 0xe2, 0xbf, 0x3c, 0x74, 0x0d, 0xb2, 0x41, 0xcc, 0xf2, - 0x4a, 0x0b, 0xb4, 0x31, 0xe9, 0x03, 0xd0, 0x3d, 0x58, 0x67, 0x46, 0xa7, 0x44, 0xca, 0x01, 0xd5, - 0x74, 0x4e, 0xd4, 0x52, 0x81, 0xda, 0xe4, 0x2a, 0x5b, 0xee, 0xa7, 0xbf, 0x2a, 0x59, 0x44, 0x0d, - 0x28, 0xc4, 0xb3, 0x7b, 0x69, 0x99, 0xaa, 0xe1, 0x8d, 0x09, 0xc3, 0xb5, 0xbc, 0x10, 0x4b, 0xe8, - 0xe8, 0x17, 0x60, 0x85, 0xc6, 0xd0, 0x80, 0xb3, 0xe0, 0xd4, 0x15, 0x7a, 0xea, 0xdb, 0xa3, 0x4f, - 0x1d, 0x8e, 0xc9, 0x32, 0x32, 0x9c, 0xa1, 0x38, 0xfd, 0xab, 0x02, 0xbc, 0x12, 0xb1, 0x4d, 0x96, - 0xf3, 0x14, 0xce, 0x43, 0xf8, 0x2a, 0xd7, 0x28, 0xb5, 0xf7, 0x2f, 0x9a, 0x35, 0xe5, 0xeb, 0xdd, - 0xf4, 0xf4, 0xfd, 0x14, 0x50, 0x97, 0xf4, 0x15, 0xd8, 0x52, 0x2d, 0x0d, 0x07, 0x32, 0xae, 0x8f, - 0xab, 0x21, 0xf7, 0xfb, 0x38, 0x5c, 0xc4, 0xa5, 0xee, 0x20, 0x08, 0x59, 0x50, 0x26, 0x85, 0xa3, - 0xc7, 0x23, 0xcd, 0x40, 0xd1, 0xf5, 0xc2, 0xb8, 0xd2, 0x7f, 0x44, 0x90, 0x92, 0xd7, 0x9d, 0x11, - 0xd1, 0xeb, 0x45, 0xc8, 0x7a, 0xd8, 0x3c, 0x56, 0x4c, 0xc3, 0x3a, 0xe5, 0xd5, 0xfe, 0x3c, 0x01, - 0xec, 0x19, 0xd6, 0x29, 0x09, 0x5a, 0xcf, 0x6d, 0x2b, 0xa8, 0xe9, 0xe9, 0x6f, 0x52, 0xfa, 0x60, - 0x4b, 0x77, 0x6c, 0xc3, 0xf2, 0x79, 0x11, 0x1f, 0x3e, 0x13, 0x33, 0x0c, 0xc2, 0x55, 0xe0, 0x88, - 0xcf, 0xb0, 0xeb, 0x91, 0xe0, 0xd6, 0x61, 0xd1, 0x95, 0x2f, 0xf3, 0xa8, 0xf8, 0x98, 0x2d, 0xd2, - 0xfe, 0xa3, 0xe7, 0xba, 0xa4, 0xb6, 0xe7, 0x6f, 0x37, 0x40, 0x3b, 0xe1, 0xd1, 0x9f, 0xad, 0xb2, - 0xf7, 0x16, 0x60, 0xdd, 0x82, 0x00, 0xce, 0x82, 0x63, 0x80, 0x63, 0x50, 0x1c, 0xc4, 0xd7, 0x88, - 0x33, 0x05, 0x18, 0x2f, 0x43, 0x8e, 0x27, 0x70, 0xdf, 0xe8, 0xe2, 0xd2, 0xb7, 0x99, 0xa3, 0x32, - 0xd0, 0x81, 0xd1, 0xc5, 0xe8, 0x67, 0x20, 0xe3, 0xf9, 0xaa, 0xdf, 0xf3, 0x4a, 0xa7, 0xb4, 0x6c, - 0xb9, 0x99, 0xd6, 0x64, 0x51, 0x11, 0x2a, 0x6d, 0xba, 0x5f, 0xe6, 0x78, 0xe8, 0xeb, 0x50, 0x60, - 0xbf, 0x94, 0x2e, 0xf6, 0x3c, 0xb5, 0x83, 0x4b, 0x26, 0xa5, 0xb2, 0xc0, 0xa0, 0xfb, 0x0c, 0x88, - 0xde, 0x81, 0xe5, 0x81, 0xcc, 0xe5, 0x19, 0xcf, 0x71, 0xa9, 0xcb, 0x22, 0x7b, 0x34, 0x71, 0xb5, - 0x8d, 0xe7, 0x78, 0x44, 0x46, 0xb7, 0x46, 0x64, 0xf4, 0x0a, 0x2c, 0x1b, 0x96, 0xe7, 0x53, 0xe3, - 0xec, 0xb8, 0x76, 0xcf, 0x51, 0x7a, 0xae, 0xe9, 0x95, 0x6c, 0x1a, 0x35, 0x96, 0x82, 0xa5, 0x1d, - 0xb2, 0x72, 0xe8, 0x9a, 0x1e, 0x39, 0x3d, 0xa6, 0x48, 0x96, 0x65, 0x1c, 0xc6, 0x4b, 0x44, 0x8d, - 0x2c, 0xcb, 0xbc, 0x0c, 0x39, 0xfc, 0x99, 0x63, 0xb8, 0x5c, 0x89, 0xdf, 0x61, 0x4a, 0x64, 0x20, - 0xaa, 0xc4, 0x32, 0xcc, 0x07, 0x6e, 0x5b, 0x72, 0x99, 0x85, 0x04, 0xcf, 0xa2, 0x01, 0x19, 0xa6, - 0x30, 0xd2, 0x51, 0xb7, 0x0f, 0xaa, 0x07, 0x87, 0xed, 0x81, 0x6a, 0xad, 0x08, 0x79, 0x5a, 0xc7, - 0xb5, 0xeb, 0xcd, 0x46, 0xbd, 0xb1, 0x53, 0x14, 0x50, 0x0e, 0xe6, 0xe4, 0xc3, 0x06, 0x7d, 0x98, - 0x22, 0x9d, 0xb9, 0x2c, 0xd5, 0x9a, 0x8d, 0x5a, 0x7d, 0x8f, 0x00, 0xa6, 0x51, 0x1e, 0xe6, 0xdb, - 0x07, 0xcd, 0x56, 0x8b, 0x3c, 0xcd, 0xa0, 0x2c, 0xcc, 0x4a, 0xb2, 0xdc, 0x94, 0x8b, 0xb3, 0xe2, - 0xef, 0x65, 0x60, 0x81, 0xbf, 0xa4, 0x43, 0x47, 0x27, 0x1d, 0xe8, 0x2d, 0x58, 0xd1, 0xb1, 0x67, - 0xb8, 0x24, 0x64, 0x44, 0x0d, 0x86, 0x15, 0x5b, 0x88, 0xaf, 0x45, 0x0d, 0xe6, 0x03, 0x28, 0x07, - 0x18, 0x09, 0x29, 0x8a, 0xd5, 0x5e, 0x25, 0xbe, 0x63, 0x7f, 0x28, 0x53, 0x3d, 0x85, 0xd5, 0x00, - 0x3b, 0x9e, 0x6b, 0x32, 0xe7, 0xca, 0x35, 0xcb, 0xfc, 0x90, 0x58, 0x23, 0xbb, 0x39, 0x20, 0x0b, - 0x49, 0x2d, 0x8a, 0xa1, 0x07, 0x69, 0x33, 0x22, 0x0b, 0xc9, 0x1f, 0x75, 0x9d, 0xbc, 0xe4, 0x00, - 0x21, 0x32, 0x6d, 0x63, 0x19, 0xb4, 0xc8, 0x57, 0xea, 0xe1, 0xd0, 0xcd, 0x81, 0x97, 0x86, 0x8f, - 0x8f, 0x76, 0xb3, 0xd9, 0xb1, 0xed, 0x1f, 0x27, 0x1d, 0x6d, 0x64, 0xcb, 0x03, 0x6c, 0x45, 0x1b, - 0xb7, 0xb7, 0x20, 0x60, 0x5a, 0xe9, 0x27, 0x3a, 0xa0, 0x26, 0x1b, 0xb0, 0xb7, 0x17, 0xe6, 0xbb, - 0xdf, 0x10, 0xe0, 0xcd, 0xf0, 0xc5, 0x8c, 0xcd, 0x07, 0xf9, 0x4b, 0xe6, 0x83, 0xaf, 0x07, 0x6f, - 0x38, 0x3d, 0x2d, 0x7c, 0x0e, 0x62, 0xc0, 0x53, 0x4a, 0x08, 0x2f, 0x5c, 0x34, 0x84, 0x5f, 0xe7, - 0x87, 0x8f, 0xaa, 0x43, 0xdf, 0x85, 0xb5, 0x01, 0x95, 0x04, 0xf6, 0xcd, 0x87, 0x38, 0x31, 0x29, - 0xb8, 0x85, 0x8b, 0xff, 0x91, 0x81, 0x6c, 0xd3, 0xc1, 0x2e, 0x55, 0x6c, 0x62, 0x95, 0x1a, 0x24, - 0x81, 0xa9, 0x48, 0x12, 0x68, 0x42, 0xc1, 0x0e, 0x90, 0x98, 0x21, 0x4d, 0x8f, 0x8b, 0x97, 0x21, - 0x91, 0x0a, 0x31, 0x30, 0x79, 0x21, 0xc4, 0xa7, 0xf6, 0xb6, 0x15, 0x06, 0xde, 0x99, 0x71, 0x63, - 0xbd, 0xfe, 0x41, 0x03, 0xa1, 0x77, 0x0d, 0x32, 0x3a, 0xf6, 0x55, 0xc3, 0xe4, 0x56, 0xcd, 0x9f, - 0x12, 0x42, 0xf2, 0x6c, 0x52, 0x48, 0x8e, 0x65, 0xc2, 0xcc, 0x40, 0x26, 0x7c, 0x19, 0x72, 0xbe, - 0xea, 0x76, 0xb0, 0xcf, 0x96, 0x99, 0x97, 0x01, 0x03, 0xd1, 0x0d, 0xd1, 0xa0, 0x97, 0x8d, 0x07, - 0x3d, 0xd2, 0x3f, 0x7b, 0xbe, 0xea, 0xfa, 0x2c, 0x60, 0xb2, 0xe6, 0x24, 0x4b, 0x21, 0x34, 0x5e, - 0xbe, 0x40, 0x33, 0x2a, 0x5b, 0x64, 0xb5, 0xe3, 0x1c, 0xb6, 0x74, 0xb2, 0x24, 0xca, 0x63, 0xc3, - 0x65, 0x0e, 0xe6, 0x5a, 0x52, 0x63, 0x3b, 0x21, 0x52, 0xce, 0xc3, 0xcc, 0x76, 0xb3, 0x21, 0xb1, - 0x10, 0x59, 0xdd, 0x6a, 0xca, 0x07, 0x34, 0x44, 0x8a, 0xff, 0x33, 0x05, 0x33, 0x54, 0xe7, 0x2b, - 0x50, 0x3c, 0xf8, 0xb8, 0x25, 0x0d, 0x1c, 0x88, 0xa0, 0x50, 0x93, 0xa5, 0xea, 0x81, 0xa4, 0xd4, - 0xf6, 0x0e, 0xdb, 0x07, 0x92, 0x5c, 0x14, 0x08, 0x6c, 0x5b, 0xda, 0x93, 0x22, 0xb0, 0x29, 0x02, - 0x3b, 0x6c, 0xed, 0xc8, 0xd5, 0x6d, 0x49, 0xd9, 0xaf, 0x52, 0xd8, 0x34, 0x5a, 0x82, 0x85, 0x00, - 0xd6, 0x68, 0x6e, 0x4b, 0xed, 0xe2, 0x0c, 0xd9, 0x26, 0x4b, 0xad, 0x6a, 0x5d, 0x0e, 0x51, 0x67, - 0x19, 0xea, 0x76, 0x94, 0x44, 0x86, 0x30, 0xc3, 0xc9, 0x12, 0x4c, 0xa5, 0xd5, 0x6c, 0xee, 0x15, - 0xe7, 0x08, 0x94, 0x13, 0xee, 0x43, 0xe7, 0xd1, 0x35, 0x28, 0xb5, 0xa5, 0x83, 0x3e, 0x48, 0xd9, - 0xaf, 0x36, 0xaa, 0x3b, 0xd2, 0xbe, 0xd4, 0x38, 0x28, 0x66, 0xd1, 0x2a, 0x2c, 0x55, 0x0f, 0x0f, - 0x9a, 0x0a, 0x27, 0xcb, 0x18, 0x01, 0xa2, 0x40, 0x0a, 0x8e, 0x33, 0x98, 0x43, 0x05, 0x00, 0x72, - 0xd8, 0x5e, 0x75, 0x4b, 0xda, 0x6b, 0x17, 0xf3, 0x68, 0x19, 0x16, 0xc9, 0x33, 0x93, 0x49, 0xa9, - 0x1e, 0x1e, 0xec, 0x16, 0x17, 0xa8, 0xf6, 0x63, 0x14, 0xdb, 0xf5, 0xa7, 0x52, 0xb1, 0x10, 0xc2, - 0xa5, 0x83, 0x27, 0x4d, 0xf9, 0x91, 0xd2, 0x6a, 0xee, 0xd5, 0x6b, 0x1f, 0x17, 0x17, 0x51, 0x19, - 0xd6, 0xd8, 0x21, 0xf5, 0xc6, 0x81, 0xd4, 0xa8, 0x36, 0x6a, 0x52, 0xb0, 0x56, 0x14, 0x7f, 0x57, - 0x80, 0x95, 0x1a, 0x2d, 0x39, 0x78, 0x76, 0x92, 0xf1, 0x77, 0x7a, 0xd8, 0xf3, 0x89, 0x99, 0x38, - 0xae, 0xfd, 0x6d, 0xac, 0xf9, 0x24, 0x90, 0x33, 0x17, 0xcc, 0x72, 0x48, 0x5d, 0x4f, 0xf4, 0xc3, - 0x07, 0x30, 0xc7, 0x0b, 0x2d, 0x3e, 0xf2, 0x7b, 0x65, 0x6c, 0xc1, 0x22, 0x07, 0x18, 0xc4, 0x5f, - 0x1c, 0x95, 0xe4, 0x76, 0xee, 0x0f, 0xfc, 0x49, 0x3c, 0x83, 0xa5, 0x1d, 0xec, 0x5f, 0x9e, 0x39, - 0x3a, 0xf0, 0xe5, 0xed, 0x98, 0xce, 0x87, 0x1f, 0xd9, 0xa0, 0x0f, 0xd3, 0xc3, 0x58, 0x33, 0xdb, - 0x8f, 0x35, 0xe2, 0x5f, 0x0a, 0xb0, 0xc2, 0x92, 0xf5, 0x95, 0x93, 0xff, 0x08, 0x32, 0x3d, 0x4a, - 0x89, 0xf7, 0xc9, 0x6f, 0x8c, 0xd5, 0x1c, 0x63, 0x4c, 0xe6, 0x68, 0x89, 0xfc, 0xff, 0xcb, 0x14, - 0xac, 0xb4, 0xb1, 0x1f, 0xe9, 0x88, 0xaf, 0x8c, 0xff, 0x7d, 0xc8, 0xa8, 0x9a, 0x1f, 0x94, 0x2f, - 0x85, 0x3b, 0xef, 0x8d, 0xe6, 0x3f, 0x89, 0xa3, 0x4a, 0x95, 0x22, 0xcb, 0xfc, 0x10, 0xf4, 0x41, - 0xa8, 0x8e, 0xf3, 0xf4, 0xfb, 0x83, 0xba, 0x98, 0x8b, 0xe8, 0xa2, 0x05, 0x19, 0x46, 0x83, 0x84, - 0xa5, 0xc3, 0xc6, 0xa3, 0x46, 0xf3, 0x49, 0x83, 0xd5, 0x77, 0xc4, 0x35, 0x5a, 0xd5, 0x76, 0xfb, - 0x49, 0x53, 0xde, 0x2e, 0x0a, 0xc4, 0x61, 0x77, 0xa4, 0x86, 0x24, 0x13, 0xe7, 0x0f, 0xc1, 0x53, - 0xc1, 0xc6, 0xc3, 0xb6, 0x24, 0x37, 0xaa, 0xfb, 0x52, 0x71, 0x5a, 0xfc, 0x45, 0x58, 0xd9, 0xc6, - 0x26, 0xfe, 0x0a, 0x8c, 0x23, 0x90, 0x67, 0x26, 0x22, 0xcf, 0xb7, 0x60, 0x79, 0xcf, 0xf0, 0x02, - 0xbf, 0xf0, 0x2e, 0x41, 0xbc, 0xef, 0x78, 0x33, 0x31, 0xc7, 0x7b, 0x0e, 0x2b, 0x71, 0x0a, 0x9e, - 0x63, 0x5b, 0x1e, 0x46, 0x1f, 0xc2, 0x3c, 0x67, 0xcd, 0x2b, 0x09, 0x74, 0x78, 0x30, 0x81, 0x9b, - 0x87, 0x28, 0xe8, 0x55, 0x58, 0xe8, 0x1a, 0x9e, 0x47, 0x2a, 0x57, 0x42, 0x9e, 0x4d, 0x95, 0xb3, - 0x72, 0x9e, 0x03, 0x9f, 0x12, 0x98, 0xf8, 0xcb, 0xb0, 0xbc, 0x83, 0xfd, 0x30, 0xb7, 0x5e, 0x42, - 0xba, 0x57, 0x20, 0xdf, 0xaf, 0x0d, 0x42, 0xe5, 0xe6, 0x42, 0xd8, 0x08, 0xd7, 0x3f, 0x82, 0x55, - 0x22, 0x7c, 0xc8, 0xc1, 0x55, 0x28, 0xf8, 0xfb, 0x02, 0xac, 0xd5, 0x48, 0xef, 0x63, 0x7e, 0xc5, - 0x82, 0x46, 0xed, 0x88, 0x30, 0x31, 0x28, 0x29, 0x7f, 0xd1, 0x35, 0x80, 0x10, 0x3b, 0x78, 0xd5, - 0xaf, 0x4e, 0x50, 0x09, 0xc9, 0x11, 0xb4, 0xc9, 0x5e, 0xb7, 0x02, 0x6b, 0x3b, 0xd8, 0x27, 0x8d, - 0x0a, 0x0e, 0x3e, 0x3e, 0x5f, 0x5c, 0x11, 0x49, 0x52, 0xfe, 0xda, 0x14, 0xe4, 0xa3, 0xc7, 0xa3, - 0x7b, 0xb0, 0xae, 0xe3, 0x63, 0xb5, 0x67, 0xfa, 0x43, 0xb3, 0x01, 0x46, 0x64, 0x95, 0x2f, 0x0f, - 0xcc, 0x06, 0x2a, 0xb0, 0xfc, 0x4c, 0x35, 0x8d, 0x78, 0xcb, 0x16, 0x5c, 0x60, 0x58, 0xa2, 0x4b, - 0x91, 0x8e, 0xcd, 0x63, 0x7d, 0x0e, 0xa3, 0x13, 0xe9, 0x73, 0x66, 0x82, 0x3e, 0x87, 0xae, 0xf4, - 0xfb, 0x9c, 0x0d, 0x60, 0x47, 0x44, 0xf6, 0x7a, 0xa5, 0x59, 0x7a, 0xf6, 0x22, 0x5d, 0x08, 0xb7, - 0x7a, 0xe8, 0x0e, 0xac, 0xb2, 0xbd, 0xf1, 0xf2, 0x9a, 0xdd, 0x4b, 0xc8, 0xca, 0x8c, 0xcd, 0x58, - 0x75, 0xed, 0x89, 0x7f, 0x2d, 0xc0, 0x2a, 0x4b, 0xf6, 0xe1, 0x50, 0xef, 0x0a, 0x33, 0x5a, 0x36, - 0xec, 0xd5, 0x78, 0x52, 0x9b, 0x64, 0xc8, 0x38, 0x1f, 0x0c, 0x19, 0x23, 0x6e, 0x93, 0x89, 0xb9, - 0xcd, 0x17, 0x02, 0xac, 0xb2, 0xc0, 0x7b, 0xf5, 0x42, 0xdc, 0x80, 0x7c, 0xac, 0x9f, 0x65, 0x2f, - 0x0e, 0xac, 0x7e, 0x23, 0x1b, 0x58, 0x5b, 0x26, 0x62, 0x6d, 0xbf, 0x22, 0xb0, 0xd0, 0x19, 0xf0, - 0xe7, 0x5d, 0x1d, 0x83, 0xa3, 0xaa, 0xa6, 0xdf, 0x11, 0x00, 0xed, 0x60, 0xff, 0xa7, 0x55, 0x43, - 0xff, 0x35, 0x03, 0xf3, 0x01, 0x6f, 0x89, 0x6d, 0xde, 0x07, 0x90, 0xe1, 0x1d, 0xea, 0xd4, 0x39, - 0xbe, 0x1b, 0x70, 0x9c, 0x73, 0x7e, 0xa8, 0x48, 0x1d, 0x3a, 0x96, 0x60, 0x2e, 0x08, 0x0c, 0x6c, - 0xee, 0x18, 0x3c, 0x8e, 0x9a, 0x6b, 0x1d, 0x8f, 0x9a, 0x6b, 0x55, 0xc3, 0xa6, 0xb2, 0x43, 0x4b, - 0xa4, 0x37, 0xc7, 0x7b, 0xc3, 0xf8, 0x71, 0xde, 0x49, 0x52, 0xef, 0xd8, 0x84, 0x5c, 0x74, 0x38, - 0x32, 0x73, 0x91, 0xe1, 0x48, 0xf4, 0x04, 0xb4, 0x0b, 0xd0, 0x55, 0x2d, 0xb5, 0x83, 0xbb, 0x81, - 0xa5, 0xe5, 0xd2, 0x9a, 0x6b, 0x72, 0xde, 0x7e, 0xb8, 0x5f, 0x8e, 0xe0, 0x8a, 0xdf, 0x13, 0x2e, - 0x3b, 0x72, 0x5b, 0x03, 0xc4, 0x1f, 0x94, 0x27, 0xf5, 0x83, 0x5d, 0x85, 0x0d, 0xd8, 0xa6, 0x07, - 0x47, 0x71, 0x33, 0xb1, 0x51, 0xdc, 0x6c, 0x7f, 0x14, 0x97, 0x11, 0xff, 0x48, 0x80, 0x42, 0x9c, - 0x45, 0x92, 0x3c, 0x89, 0xbc, 0x4a, 0xcf, 0xe9, 0xb8, 0xaa, 0x1e, 0xdc, 0xe3, 0xa0, 0x3a, 0x38, - 0x64, 0x20, 0xd2, 0x73, 0xd3, 0x2d, 0x2e, 0x76, 0x54, 0xc3, 0xe5, 0x1f, 0x5a, 0x81, 0x80, 0x64, - 0x0a, 0x41, 0x87, 0xb0, 0xc8, 0xd1, 0x15, 0xdb, 0x09, 0x06, 0x46, 0x63, 0x3e, 0x34, 0x54, 0xfb, - 0x04, 0x9a, 0x0c, 0x47, 0x2e, 0xf4, 0x62, 0xcf, 0x62, 0x17, 0xd0, 0xf0, 0x2e, 0xf4, 0x1e, 0xac, - 0x47, 0x19, 0x56, 0x22, 0x1d, 0x3d, 0x73, 0xa3, 0x95, 0x08, 0xef, 0xed, 0xb0, 0xb9, 0x1f, 0xfb, - 0x8d, 0x4f, 0xfc, 0x26, 0x2c, 0x0d, 0x7d, 0x19, 0x40, 0x35, 0xc8, 0x7c, 0x6a, 0x58, 0xba, 0xfd, - 0xe9, 0xf8, 0xab, 0x29, 0x11, 0xe4, 0x27, 0x14, 0x45, 0xe6, 0xa8, 0xe2, 0xaf, 0x0b, 0xb1, 0xa3, - 0xd9, 0x2a, 0x32, 0xa1, 0xa4, 0xab, 0x86, 0x79, 0xa6, 0x44, 0xbf, 0x61, 0x70, 0x62, 0xcc, 0xf5, - 0x53, 0x3e, 0xd6, 0x6f, 0x13, 0xcc, 0xa1, 0x33, 0x77, 0xbf, 0x26, 0xaf, 0xe9, 0x89, 0x2b, 0x5b, - 0xf3, 0x90, 0x61, 0xf3, 0x2f, 0xb1, 0x0d, 0x6b, 0xc9, 0xd8, 0x03, 0xf3, 0x91, 0xa9, 0xc1, 0xf9, - 0x48, 0x19, 0xe6, 0xf5, 0x1e, 0xab, 0x6e, 0x78, 0x34, 0x0c, 0x9f, 0xc5, 0xff, 0x14, 0xe0, 0x5a, - 0xbb, 0x1f, 0x75, 0x23, 0x3e, 0xf0, 0x7f, 0x18, 0x7f, 0x7f, 0x62, 0xce, 0x9b, 0xd8, 0x57, 0x7d, - 0x29, 0xc0, 0x75, 0xd9, 0x36, 0xcd, 0x23, 0x55, 0x3b, 0x0d, 0xe4, 0xe6, 0x66, 0xf7, 0xd3, 0x96, - 0x74, 0x9e, 0xb2, 0x9a, 0x3e, 0x92, 0x95, 0x79, 0xa1, 0x1b, 0xff, 0x20, 0x2a, 0x5c, 0xe0, 0x83, - 0xa8, 0xf8, 0x5d, 0x58, 0x4e, 0x1a, 0x23, 0x8f, 0xbe, 0x5a, 0xf3, 0x1a, 0x14, 0xba, 0x86, 0x15, - 0x4d, 0x4f, 0xec, 0x9a, 0x6c, 0xbe, 0x6b, 0x58, 0xfd, 0xd4, 0x44, 0x76, 0xa9, 0x9f, 0x0d, 0x27, - 0xb1, 0x7c, 0x57, 0xfd, 0x2c, 0xdc, 0x25, 0xfe, 0xe3, 0x14, 0x14, 0xdb, 0xd8, 0x67, 0x57, 0x1f, - 0xaf, 0x4e, 0xeb, 0x1d, 0x58, 0x74, 0xb1, 0x67, 0xf7, 0x5c, 0x0d, 0x2b, 0xfc, 0x0e, 0x2c, 0xbb, - 0x70, 0xfb, 0xff, 0x53, 0x9b, 0xfd, 0x18, 0x5b, 0x15, 0x99, 0x9f, 0x10, 0xbd, 0x11, 0x5b, 0x70, - 0x63, 0x40, 0xf4, 0x16, 0x2c, 0xd1, 0xf3, 0x95, 0x63, 0xc3, 0xea, 0x60, 0xd7, 0x71, 0x8d, 0xb0, - 0xbe, 0x29, 0xd2, 0x85, 0x87, 0x7d, 0x78, 0x92, 0x51, 0x96, 0xab, 0xb0, 0x9c, 0x40, 0xe7, 0x5c, - 0xf7, 0x41, 0x7f, 0x4b, 0xa0, 0xb3, 0x93, 0x3d, 0xdc, 0x51, 0xb5, 0xb3, 0xea, 0x91, 0xaa, 0x5d, - 0x9d, 0x5e, 0x23, 0x46, 0x32, 0x13, 0x37, 0x92, 0x24, 0x2b, 0xfe, 0x25, 0x58, 0xa3, 0xf1, 0xbc, - 0xde, 0x92, 0xf9, 0x35, 0xee, 0xab, 0x1f, 0x3c, 0x44, 0xe9, 0x7f, 0x4f, 0x80, 0x17, 0x6a, 0x76, - 0xd7, 0x21, 0x05, 0xf8, 0x57, 0xc9, 0x43, 0x34, 0xe8, 0x9c, 0xc2, 0xd2, 0xd0, 0x75, 0x65, 0x62, - 0x35, 0x91, 0x0b, 0xcb, 0xdc, 0x5d, 0x08, 0x07, 0xd3, 0x72, 0x51, 0x8d, 0xee, 0x26, 0x8e, 0xf5, - 0x26, 0x44, 0x61, 0xac, 0x2b, 0x63, 0x4c, 0x2d, 0x46, 0xe0, 0xa4, 0xd3, 0x12, 0xff, 0x41, 0x80, - 0x75, 0x12, 0xd4, 0x63, 0x37, 0x0d, 0xae, 0x4c, 0xdc, 0xe1, 0x3b, 0x10, 0x33, 0x97, 0xba, 0x03, - 0x91, 0xf4, 0x0a, 0xff, 0x4d, 0x80, 0x17, 0xe9, 0x14, 0x6e, 0xf0, 0x06, 0xc0, 0x95, 0x49, 0x95, - 0x7c, 0x47, 0x61, 0xe6, 0x27, 0x72, 0x47, 0x21, 0x61, 0x7c, 0x73, 0xe7, 0x5f, 0xaf, 0x43, 0x81, - 0x77, 0xee, 0x2c, 0x97, 0xb9, 0xe8, 0x4b, 0x01, 0xf2, 0xd1, 0x79, 0x16, 0x4a, 0x29, 0x88, 0x13, - 0x26, 0x6b, 0xe5, 0xca, 0xa4, 0xdb, 0x59, 0x52, 0x11, 0xbf, 0xf1, 0xfd, 0x7f, 0xfe, 0xf1, 0x6f, - 0x4e, 0xdd, 0x45, 0xb7, 0xc3, 0x3f, 0xda, 0xf8, 0x2e, 0xeb, 0xcd, 0x3e, 0xe4, 0x9a, 0xf4, 0x36, - 0x37, 0x36, 0xc3, 0x6f, 0x8b, 0x9b, 0x1b, 0x9f, 0x6f, 0x86, 0x23, 0xb2, 0xdf, 0x16, 0x00, 0xfa, - 0x33, 0x6f, 0x94, 0xa2, 0xa0, 0xa1, 0xc9, 0x78, 0x79, 0xfc, 0x2c, 0x2e, 0x89, 0x33, 0xa2, 0xb4, - 0x11, 0x7c, 0x85, 0x6c, 0x6d, 0x6e, 0x7c, 0x8e, 0x7e, 0x20, 0xc0, 0x42, 0xec, 0x6b, 0x01, 0x4a, - 0x51, 0x4b, 0xd2, 0x67, 0x85, 0xf2, 0x24, 0x03, 0x24, 0xf1, 0x03, 0xca, 0xe1, 0x3d, 0xf1, 0xfc, - 0xba, 0xbb, 0x2f, 0x6c, 0x50, 0x26, 0x63, 0x63, 0xfb, 0x34, 0x26, 0x93, 0xe6, 0xfb, 0xe7, 0x62, - 0xb2, 0x7c, 0x7e, 0x35, 0x12, 0x26, 0x7f, 0x28, 0xc0, 0x42, 0x6c, 0x12, 0x9e, 0xc6, 0x64, 0xd2, - 0xc8, 0x7c, 0x32, 0x26, 0x7f, 0x96, 0x32, 0xb9, 0x2d, 0x7e, 0x74, 0x7e, 0x26, 0xbd, 0x28, 0x51, - 0xc2, 0xf2, 0x17, 0x02, 0x2c, 0xc4, 0x26, 0xde, 0x69, 0x2c, 0x27, 0x8d, 0xc6, 0x27, 0x63, 0x99, - 0x9b, 0xe7, 0xc6, 0x05, 0xcc, 0xf3, 0x87, 0x02, 0x14, 0xe2, 0xc3, 0x4c, 0xb4, 0x99, 0xee, 0xb6, - 0x43, 0x03, 0xde, 0xf2, 0xad, 0xc9, 0x11, 0xb8, 0xa7, 0x3f, 0xa0, 0x0c, 0xbf, 0x87, 0xee, 0x4e, - 0x6c, 0xad, 0x91, 0xf9, 0xe8, 0x17, 0x02, 0xe4, 0xa3, 0xa3, 0xee, 0xb4, 0xb0, 0x94, 0x30, 0x12, - 0x9f, 0x4c, 0xa5, 0x09, 0x1c, 0xa6, 0xa9, 0xb4, 0xcf, 0x1e, 0xf7, 0xf9, 0xc5, 0x81, 0x31, 0x35, - 0x4a, 0x51, 0x52, 0xf2, 0x44, 0xbb, 0xbc, 0x16, 0x60, 0x04, 0x7f, 0x64, 0x56, 0x91, 0xba, 0x8e, - 0x7f, 0x26, 0x4a, 0x94, 0xb5, 0x8f, 0xc4, 0xfb, 0x17, 0x60, 0xed, 0xbe, 0x46, 0x69, 0x11, 0xdb, - 0xfc, 0x52, 0x80, 0xc5, 0x81, 0x11, 0x72, 0x1a, 0x93, 0xc9, 0xd3, 0xe6, 0xf2, 0xeb, 0x69, 0x2e, - 0xd8, 0xdf, 0x7e, 0x4e, 0x7d, 0x7e, 0xbe, 0xe9, 0x45, 0xd9, 0xfa, 0x91, 0x00, 0x0b, 0xb1, 0x3e, - 0x04, 0x8d, 0x49, 0x2d, 0x83, 0x63, 0xc4, 0xf2, 0xe6, 0xc4, 0xfb, 0xb9, 0x85, 0x72, 0x25, 0xa3, - 0x0f, 0x27, 0xb4, 0xd0, 0xa8, 0x53, 0x6d, 0xf6, 0x6f, 0x7d, 0xfe, 0xbe, 0x00, 0xb9, 0xc8, 0x50, - 0x11, 0xbd, 0x9d, 0xaa, 0xe0, 0x81, 0xd9, 0x63, 0x79, 0x82, 0x8e, 0x2a, 0x89, 0xd1, 0xc9, 0x7c, - 0xbf, 0xcf, 0x65, 0x10, 0x07, 0xe2, 0x73, 0xee, 0xb4, 0x38, 0x90, 0x38, 0x11, 0x9f, 0xcc, 0xb1, - 0x76, 0x29, 0xbf, 0x5b, 0xe2, 0xe5, 0x14, 0x4b, 0x0c, 0xf8, 0x4f, 0x04, 0x28, 0xc4, 0xa7, 0xda, - 0x69, 0x2c, 0x27, 0xce, 0xbf, 0x27, 0x63, 0x99, 0xab, 0x78, 0xe3, 0x92, 0x2a, 0xfe, 0x3b, 0x01, - 0xd6, 0x47, 0xf4, 0xfd, 0x28, 0xe5, 0x6e, 0x53, 0xfa, 0xa8, 0x60, 0x32, 0x09, 0x7e, 0x8e, 0x4a, - 0xf0, 0x48, 0x7c, 0x78, 0x29, 0x09, 0xee, 0xbb, 0x9c, 0x15, 0xa2, 0xfd, 0xbf, 0x17, 0x60, 0x35, - 0x71, 0x70, 0x83, 0xee, 0xa5, 0x66, 0xe5, 0x91, 0x93, 0x9e, 0xc9, 0x24, 0x79, 0x4c, 0x25, 0x69, - 0x89, 0x8f, 0x2e, 0x27, 0x09, 0xcd, 0xd4, 0x01, 0x03, 0x44, 0x9c, 0x3f, 0x16, 0x20, 0x1b, 0x76, - 0xde, 0x68, 0x63, 0xf2, 0xf6, 0x7c, 0x32, 0xb6, 0x1b, 0x94, 0xed, 0x5d, 0xb1, 0x76, 0xa1, 0xa2, - 0x22, 0xde, 0x99, 0x47, 0x6a, 0xa1, 0x7e, 0xaf, 0x3d, 0xa6, 0x16, 0x1a, 0x6a, 0xca, 0xbf, 0x8a, - 0x5a, 0xa8, 0x4f, 0x94, 0xb0, 0xfc, 0x67, 0x02, 0x2c, 0x0e, 0xb4, 0xe1, 0x69, 0xf9, 0x26, 0xb9, - 0x63, 0x9f, 0x8c, 0xed, 0x3d, 0xca, 0xf6, 0x43, 0xb1, 0x7a, 0x01, 0xb6, 0x29, 0x59, 0x27, 0x20, - 0x4b, 0x18, 0xff, 0x2b, 0x01, 0xd0, 0x70, 0xfb, 0x8e, 0xee, 0xa6, 0x84, 0xc7, 0x51, 0xcd, 0xfe, - 0x64, 0xec, 0x37, 0x29, 0xfb, 0x75, 0x71, 0xfb, 0xfc, 0xec, 0x6b, 0x01, 0xe5, 0x98, 0x04, 0x7f, - 0x2e, 0xd0, 0x69, 0x57, 0xfc, 0x6f, 0xbc, 0x6e, 0xa7, 0xbb, 0x69, 0x42, 0xef, 0x3e, 0x19, 0xf7, - 0xfb, 0x94, 0xfb, 0x1d, 0x71, 0xeb, 0x42, 0x36, 0x13, 0xa3, 0x4b, 0x78, 0xff, 0x1b, 0x81, 0xdf, - 0xc8, 0x19, 0x6c, 0x62, 0xc7, 0xdd, 0x97, 0x49, 0xee, 0xd4, 0xaf, 0x38, 0x5e, 0xf2, 0xc8, 0x32, - 0x40, 0xfb, 0xbe, 0xb0, 0xb1, 0xf5, 0x17, 0x02, 0x5c, 0xd3, 0xec, 0xee, 0x48, 0xea, 0x5b, 0xcb, - 0xb5, 0xe0, 0x0f, 0xb4, 0xe8, 0xe5, 0xe3, 0x16, 0x29, 0xfa, 0x5a, 0xc2, 0xd3, 0x2a, 0x47, 0xe8, - 0xd8, 0xa6, 0x6a, 0x75, 0x2a, 0xb6, 0xdb, 0xd9, 0xec, 0x60, 0x8b, 0x96, 0x84, 0x9b, 0x6c, 0x49, - 0x75, 0x0c, 0x6f, 0xf8, 0x1f, 0x1e, 0x3c, 0x08, 0x21, 0x7f, 0x38, 0x75, 0x7d, 0x87, 0x9d, 0x51, - 0x33, 0xed, 0x9e, 0x5e, 0xa9, 0x85, 0xa4, 0x1f, 0xdf, 0xde, 0x22, 0x5b, 0xff, 0x36, 0xd8, 0xf0, - 0x09, 0xdd, 0xf0, 0x49, 0xb8, 0xe1, 0x93, 0xc7, 0xec, 0xac, 0xa3, 0x0c, 0xa5, 0x77, 0xf7, 0x7f, - 0x03, 0x00, 0x00, 0xff, 0xff, 0x4a, 0x57, 0xdd, 0xd1, 0x5f, 0x41, 0x00, 0x00, +var fileDescriptor_cluster_service_4b3d530a1685571f = []byte{ + // 7032 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5d, 0x6b, 0x6c, 0x23, 0xd7, + 0x75, 0xf6, 0x50, 0x94, 0x44, 0x1d, 0x49, 0x14, 0x75, 0xa5, 0xd5, 0x72, 0xb9, 0x0f, 0xef, 0x8e, + 0x5f, 0xeb, 0xb5, 0x2d, 0x79, 0xd7, 0x8e, 0xed, 0xf8, 0x11, 0x87, 0xa2, 0xc6, 0x5a, 0x61, 0x25, + 0x92, 0x1e, 0x52, 0xbb, 0xb6, 0x62, 0x64, 0x3a, 0x22, 0xef, 0x52, 0xe3, 0x25, 0x67, 0xc6, 0x33, + 0xc3, 0x7d, 0x19, 0x1b, 0xd4, 0x79, 0xb4, 0xe9, 0x23, 0x49, 0xf3, 0xea, 0x23, 0x4d, 0xd3, 0x34, + 0x88, 0x93, 0x34, 0x29, 0x1a, 0x04, 0x45, 0x90, 0x36, 0x6d, 0xd3, 0xfe, 0x69, 0x81, 0xa6, 0x40, + 0x0b, 0xb4, 0x3f, 0xfa, 0xa3, 0x0d, 0xda, 0x1f, 0x29, 0x8a, 0xb6, 0x68, 0x81, 0xf6, 0x4f, 0x7f, + 0xb5, 0x28, 0xee, 0x6b, 0x1e, 0xe4, 0xf0, 0x21, 0x6a, 0xad, 0xf8, 0xd7, 0x6a, 0xce, 0xbd, 0xe7, + 0x3e, 0xce, 0x3d, 0xf7, 0xdc, 0xef, 0x9c, 0x7b, 0x2e, 0x17, 0x96, 0x1b, 0x96, 0xd5, 0x68, 0xe2, + 0x95, 0x9a, 0x65, 0x7a, 0xba, 0x61, 0x62, 0x67, 0xe5, 0xfa, 0xf9, 0x5d, 0xec, 0xe9, 0xe7, 0x57, + 0x6a, 0xcd, 0xb6, 0xeb, 0x61, 0x47, 0x73, 0xb1, 0x73, 0xdd, 0xa8, 0xe1, 0x65, 0xdb, 0xb1, 0x3c, + 0x0b, 0x65, 0x59, 0xfd, 0x65, 0xbf, 0xfe, 0x32, 0xaf, 0x9f, 0x3b, 0xc1, 0x5b, 0xd2, 0x6d, 0x63, + 0x45, 0x37, 0x4d, 0xcb, 0xd3, 0x3d, 0xc3, 0x32, 0x5d, 0xc6, 0x97, 0x3b, 0xc5, 0x4b, 0x0d, 0xbd, + 0xb5, 0x72, 0xfd, 0x3c, 0xf9, 0x47, 0xb3, 0xad, 0xa6, 0x51, 0xbb, 0xc5, 0xcb, 0x73, 0xd1, 0xf2, + 0x48, 0xd9, 0x71, 0x5e, 0x46, 0xbf, 0x76, 0xdb, 0x57, 0x57, 0x70, 0xcb, 0xf6, 0x78, 0xa1, 0xfc, + 0x1f, 0x13, 0x00, 0x45, 0xab, 0x8e, 0x0b, 0x96, 0x79, 0xd5, 0x68, 0xa0, 0x33, 0x30, 0xd3, 0xd2, + 0x6b, 0x7b, 0x86, 0x89, 0x35, 0xef, 0x96, 0x8d, 0xb3, 0xd2, 0x69, 0xe9, 0xec, 0x94, 0x3a, 0xcd, + 0x69, 0xd5, 0x5b, 0x36, 0x46, 0xa7, 0x61, 0xa6, 0x6e, 0xb8, 0xd7, 0x34, 0xd7, 0xb8, 0x8d, 0xb5, + 0xc6, 0x6e, 0x36, 0x71, 0x5a, 0x3a, 0x3b, 0xae, 0x02, 0xa1, 0x55, 0x8c, 0xdb, 0x78, 0x7d, 0x97, + 0x34, 0x62, 0xe9, 0x6d, 0x6f, 0x4f, 0x73, 0x6b, 0x96, 0x8d, 0xdd, 0xec, 0xd8, 0xe9, 0x31, 0xd2, + 0x08, 0xa5, 0x55, 0x28, 0x09, 0x3d, 0x04, 0x73, 0x5c, 0x30, 0x9a, 0x5e, 0xab, 0x59, 0x6d, 0xd3, + 0xcb, 0x4e, 0xd1, 0xae, 0xd2, 0x9c, 0x9c, 0x67, 0x54, 0x54, 0x84, 0x54, 0x0b, 0x7b, 0x7a, 0x5d, + 0xf7, 0xf4, 0x6c, 0xf2, 0xf4, 0xd8, 0xd9, 0xe9, 0x0b, 0x17, 0x96, 0x7b, 0xc9, 0x70, 0x39, 0x98, + 0xc8, 0xf2, 0x16, 0x67, 0x52, 0x4c, 0xcf, 0xb9, 0xa5, 0xfa, 0x6d, 0xa0, 0x93, 0x00, 0x46, 0x4b, + 0x6f, 0xf0, 0xe9, 0x8d, 0xd3, 0x3e, 0xa7, 0x28, 0x85, 0x4e, 0xee, 0x22, 0x4c, 0x34, 0xf5, 0x5d, + 0xdc, 0x74, 0xb3, 0x13, 0xb4, 0xb3, 0xc7, 0x87, 0xea, 0x6c, 0x93, 0xb2, 0xb0, 0xae, 0x38, 0x3f, + 0x7a, 0x10, 0xe6, 0x9a, 0x56, 0x4d, 0x6f, 0x6a, 0xae, 0x5b, 0xd7, 0xd8, 0x0c, 0x27, 0xa9, 0xa4, + 0x66, 0x29, 0xb9, 0xe2, 0xd6, 0x0b, 0x74, 0x82, 0x08, 0x92, 0x9e, 0xde, 0x70, 0xb3, 0x29, 0x2a, + 0x24, 0xfa, 0x37, 0x3a, 0x0d, 0xd3, 0xb6, 0x83, 0xc9, 0x32, 0x19, 0xbb, 0x4d, 0x9c, 0x85, 0xd3, + 0xd2, 0xd9, 0x94, 0x1a, 0x26, 0xa1, 0x12, 0xcc, 0xe8, 0xb5, 0x1a, 0x6e, 0x62, 0x47, 0xf7, 0x2c, + 0xc7, 0xcd, 0x4e, 0xd3, 0xd1, 0x3e, 0xd2, 0x7b, 0xb4, 0xf9, 0xa0, 0x36, 0x1b, 0xb4, 0x1a, 0x69, + 0x00, 0x1d, 0x87, 0x29, 0xba, 0xaa, 0x54, 0x2c, 0x33, 0x54, 0x2c, 0x29, 0x42, 0xa0, 0x52, 0x39, + 0x0b, 0x99, 0x96, 0x61, 0x6a, 0x35, 0xbb, 0xad, 0xd9, 0x4d, 0xdd, 0xbb, 0x6a, 0x39, 0xad, 0xec, + 0x2c, 0x5b, 0xae, 0x96, 0x61, 0x16, 0xec, 0x76, 0x99, 0x53, 0xd1, 0xeb, 0x90, 0xbd, 0x61, 0x39, + 0xd7, 0x9a, 0x96, 0x5e, 0xd7, 0x84, 0xcc, 0xb5, 0x1a, 0xed, 0x30, 0x9b, 0x3e, 0x2d, 0xf5, 0x97, + 0xe8, 0x15, 0xce, 0x29, 0xd6, 0x8e, 0x0f, 0x74, 0xe9, 0x46, 0x2c, 0x1d, 0x3d, 0x07, 0x13, 0xa4, + 0x01, 0xcf, 0xcd, 0xce, 0xd1, 0xd9, 0xdf, 0xd7, 0x7f, 0xad, 0xaa, 0xa4, 0xae, 0xca, 0x59, 0x72, + 0xcf, 0xc1, 0x6c, 0x44, 0x45, 0x50, 0x06, 0xc6, 0xae, 0xe1, 0x5b, 0x5c, 0xe1, 0xc9, 0x9f, 0x68, + 0x11, 0xc6, 0xaf, 0xeb, 0xcd, 0x36, 0xa6, 0x1a, 0x3e, 0xa5, 0xb2, 0x8f, 0x67, 0x13, 0xcf, 0x48, + 0xb9, 0xf7, 0xc2, 0x74, 0x68, 0xc9, 0xf7, 0xc3, 0x2a, 0xff, 0x8d, 0x04, 0x53, 0xfe, 0x68, 0x86, + 0xe5, 0x44, 0xab, 0x30, 0x81, 0xaf, 0x5e, 0xc5, 0x35, 0x2f, 0x3b, 0x76, 0x5a, 0x3a, 0x9b, 0xbe, + 0x70, 0x6e, 0x88, 0xa9, 0x2e, 0x2b, 0x94, 0x43, 0xe5, 0x9c, 0xf2, 0xab, 0x30, 0xc1, 0x28, 0x68, + 0x09, 0x90, 0xf2, 0xd2, 0x4b, 0x4a, 0xa1, 0xaa, 0x6d, 0x17, 0x2b, 0x65, 0xa5, 0xb0, 0xf1, 0xd2, + 0x86, 0xb2, 0x96, 0xb9, 0x07, 0xcd, 0xc1, 0x74, 0xb1, 0xa4, 0x55, 0x0a, 0x17, 0x95, 0xb5, 0xed, + 0x4d, 0x25, 0x23, 0x91, 0x8a, 0x65, 0x55, 0x79, 0x49, 0x51, 0xb5, 0x30, 0x3d, 0x81, 0xd2, 0x00, + 0xc5, 0x92, 0xa6, 0xbc, 0xa2, 0x14, 0xb6, 0xab, 0x4a, 0x66, 0x4c, 0xfe, 0x5e, 0x02, 0x60, 0x4b, + 0x27, 0xe6, 0x2e, 0xdf, 0xf6, 0xf6, 0x50, 0x0e, 0x52, 0x6d, 0x17, 0x3b, 0xa6, 0xde, 0x12, 0x06, + 0xc4, 0xff, 0x26, 0x65, 0xb6, 0xee, 0xba, 0x37, 0x2c, 0xa7, 0xce, 0xa7, 0xe8, 0x7f, 0xa3, 0x16, + 0x1c, 0xab, 0x35, 0x0d, 0x6c, 0x7a, 0x5a, 0x0d, 0x3b, 0x9e, 0x71, 0xd5, 0xa8, 0xe9, 0x1e, 0x16, + 0xda, 0x33, 0x46, 0xb5, 0xe7, 0x7c, 0xef, 0x89, 0x17, 0x28, 0x6b, 0x21, 0xe0, 0xe4, 0xea, 0x73, + 0xb4, 0x16, 0x5f, 0x80, 0x9e, 0x84, 0x25, 0x61, 0xa4, 0x6b, 0x7a, 0xb8, 0xcb, 0x6c, 0x9d, 0x0e, + 0x6c, 0x91, 0x97, 0x16, 0xf4, 0x10, 0x2f, 0x7a, 0x0c, 0x50, 0xf7, 0x20, 0xb3, 0x98, 0x72, 0xcc, + 0x77, 0x75, 0x45, 0xec, 0x0d, 0xaf, 0x4e, 0x16, 0xfa, 0x2a, 0xb3, 0x37, 0x8c, 0x72, 0x09, 0xdf, + 0x92, 0x2b, 0x70, 0xb4, 0xc7, 0xb8, 0xd1, 0x33, 0x90, 0x35, 0x5c, 0xb7, 0x8d, 0xb5, 0x98, 0xee, + 0x24, 0x6a, 0x11, 0x96, 0x68, 0x79, 0x17, 0xbf, 0xfc, 0xa7, 0x49, 0x98, 0xc9, 0xd7, 0xeb, 0x96, + 0xe9, 0xf2, 0xa6, 0x3e, 0x00, 0x0b, 0x7b, 0x9e, 0x67, 0x6b, 0x74, 0x5b, 0xee, 0xea, 0x4d, 0xdd, + 0xac, 0x19, 0x66, 0x83, 0xb6, 0xd2, 0xd7, 0x68, 0x5c, 0xf4, 0x3c, 0x7b, 0xd3, 0xd2, 0xeb, 0xab, + 0x82, 0x45, 0x9d, 0xdf, 0xeb, 0x24, 0x21, 0x1b, 0x72, 0x7b, 0x96, 0x63, 0xdc, 0x26, 0xdc, 0x4d, + 0xcd, 0xb6, 0xea, 0x9a, 0xde, 0xf6, 0x2c, 0xb7, 0xa6, 0x37, 0x49, 0x1f, 0x09, 0xda, 0x47, 0x1f, + 0x9b, 0x7d, 0xd1, 0xe7, 0x2d, 0x5b, 0xf5, 0x7c, 0xc0, 0xa9, 0x66, 0xf7, 0x7a, 0x94, 0xa0, 0x9f, + 0x82, 0xc5, 0x6b, 0xed, 0x5d, 0xec, 0x98, 0xd8, 0xc3, 0xae, 0x56, 0xd7, 0xdd, 0xbd, 0x5d, 0x4b, + 0x77, 0xea, 0x5c, 0x45, 0x1e, 0xeb, 0xdd, 0xd7, 0x25, 0x9f, 0x6b, 0x4d, 0x30, 0xa9, 0x0b, 0xd7, + 0xba, 0x89, 0x48, 0x87, 0x23, 0x26, 0xf6, 0x88, 0xdd, 0xe1, 0xc7, 0xac, 0xd0, 0xc2, 0xe4, 0xa0, + 0x2e, 0x8a, 0x8c, 0xad, 0x4c, 0xb9, 0xb8, 0x06, 0x2e, 0x98, 0xdd, 0x44, 0x74, 0x11, 0x66, 0x0c, + 0xd7, 0x33, 0x2c, 0xd1, 0xf2, 0x38, 0x6d, 0xf9, 0x81, 0xde, 0x2d, 0x6f, 0x90, 0xda, 0xbc, 0xc5, + 0x69, 0x23, 0xf8, 0x40, 0x2a, 0x64, 0x6a, 0x4d, 0xab, 0x5d, 0xd7, 0x9c, 0xb6, 0x29, 0x5a, 0x9b, + 0xa4, 0xad, 0x9d, 0xed, 0xb7, 0x5b, 0xac, 0x76, 0x5d, 0x6d, 0x9b, 0xbc, 0xc1, 0x74, 0x2d, 0xf2, + 0x2d, 0xaf, 0xc0, 0x7c, 0xd7, 0xe2, 0x93, 0xbd, 0x5b, 0x37, 0x5c, 0x7d, 0xb7, 0x89, 0xeb, 0x5c, + 0x03, 0xfd, 0x6f, 0xf9, 0x29, 0xc8, 0xf6, 0x5a, 0xc9, 0xbe, 0x7c, 0xe7, 0x61, 0x21, 0x66, 0x55, + 0x06, 0xb1, 0xc4, 0x48, 0xb9, 0x2f, 0xcb, 0xcf, 0x25, 0x60, 0xb1, 0xec, 0x18, 0xd7, 0xc9, 0xee, + 0xe2, 0x9b, 0x9a, 0x31, 0x3d, 0x0e, 0x8b, 0xd8, 0x24, 0x75, 0x34, 0x9b, 0x15, 0x6b, 0xa6, 0x55, + 0xc7, 0x2e, 0x6f, 0x00, 0xb1, 0x32, 0xce, 0x49, 0x2c, 0xab, 0x8b, 0x9e, 0x82, 0xa3, 0x1d, 0x1c, + 0xd8, 0xac, 0xdb, 0x96, 0x61, 0x7a, 0x54, 0xd7, 0x53, 0xea, 0x91, 0x08, 0x93, 0xc2, 0x0b, 0xd1, + 0x13, 0xb0, 0xd4, 0xa2, 0x26, 0x52, 0x33, 0xec, 0xeb, 0x4f, 0x6a, 0x35, 0xa3, 0xee, 0x68, 0xbb, + 0x4d, 0xab, 0x76, 0x8d, 0xaa, 0xed, 0x94, 0xba, 0xc0, 0x4a, 0x37, 0xec, 0xeb, 0x4f, 0x16, 0x8c, + 0xba, 0xb3, 0x4a, 0x8a, 0xd0, 0xc3, 0x90, 0xe9, 0xea, 0x25, 0x49, 0xab, 0xcf, 0xd9, 0x1d, 0xed, + 0x3f, 0x04, 0x73, 0x76, 0x7b, 0xb7, 0x69, 0xd4, 0x82, 0x9a, 0x0c, 0xdd, 0xa4, 0x19, 0x59, 0x54, + 0x94, 0xbf, 0x2e, 0xc1, 0x74, 0x48, 0x97, 0xfa, 0xc9, 0x0d, 0xad, 0x43, 0x92, 0x80, 0x36, 0x3a, + 0xb3, 0xf4, 0x85, 0x27, 0x86, 0x52, 0x4e, 0xf6, 0x37, 0x39, 0x08, 0xb6, 0xac, 0x3a, 0x56, 0x69, + 0x03, 0xf2, 0x13, 0x30, 0x1b, 0x21, 0xa3, 0x59, 0x98, 0xca, 0x6f, 0x57, 0x2f, 0x6a, 0xc5, 0x52, + 0x51, 0xc9, 0xdc, 0x83, 0x16, 0x60, 0x8e, 0x7e, 0x6e, 0x6d, 0x57, 0xb7, 0xf3, 0x9b, 0x5a, 0x75, + 0xb3, 0x92, 0x91, 0xe4, 0x47, 0x21, 0x1d, 0x55, 0xd3, 0xbe, 0x6b, 0xfc, 0x9f, 0x12, 0x9c, 0x0a, + 0x0e, 0x21, 0xa2, 0x8b, 0xb8, 0xce, 0xf5, 0x44, 0xd8, 0xc1, 0x2c, 0x4c, 0xb2, 0xc5, 0x11, 0xdc, + 0xe2, 0x13, 0xd5, 0x60, 0x3a, 0x58, 0x11, 0x37, 0x9b, 0xa0, 0x80, 0x62, 0xb5, 0xf7, 0x7c, 0xfb, + 0x77, 0xb4, 0xec, 0xaf, 0xa0, 0x0a, 0x35, 0xf1, 0xa7, 0x9b, 0xdb, 0x82, 0xa9, 0x60, 0x69, 0xcf, + 0x50, 0x18, 0x6d, 0x37, 0xf5, 0x5b, 0x5a, 0xe8, 0xa0, 0x9c, 0xe6, 0xb4, 0x22, 0x39, 0x2b, 0xc9, + 0xd9, 0x11, 0xa8, 0x49, 0x82, 0x9f, 0x1d, 0xa2, 0x05, 0xf9, 0x41, 0x80, 0x4d, 0xdc, 0xd0, 0x6b, + 0xb7, 0xf2, 0xbb, 0x7a, 0xad, 0xf7, 0xdc, 0xe4, 0xdf, 0x96, 0x60, 0x36, 0xb2, 0x61, 0xd0, 0x26, + 0xa4, 0x6c, 0xc7, 0xba, 0x6e, 0xd4, 0xb1, 0x43, 0x2b, 0xa7, 0xfb, 0xe2, 0xdc, 0x30, 0xeb, 0x72, + 0x99, 0xf3, 0xa9, 0x7e, 0x0b, 0xe1, 0x9e, 0x13, 0xd1, 0x9e, 0x1f, 0x87, 0x54, 0x39, 0xa8, 0xb5, + 0x58, 0x56, 0x4b, 0x97, 0x37, 0xd6, 0x14, 0xb5, 0x03, 0x76, 0x00, 0x4c, 0x14, 0xf2, 0x9b, 0x1b, + 0x85, 0x52, 0x46, 0x92, 0xbf, 0x3c, 0x0e, 0x68, 0xa3, 0x9c, 0x6f, 0x12, 0x8c, 0x4c, 0xfc, 0x1f, + 0x3e, 0xe0, 0xfb, 0x21, 0xdd, 0x76, 0xb1, 0x66, 0xd8, 0x9a, 0xde, 0x34, 0x74, 0xd7, 0xdf, 0xa0, + 0x33, 0x6d, 0x17, 0x6f, 0xd8, 0x79, 0x46, 0x43, 0x8f, 0xc0, 0x7c, 0xcd, 0xc1, 0x64, 0xb3, 0xb8, + 0xed, 0x5d, 0x6e, 0x73, 0xf9, 0x90, 0x32, 0xac, 0xa0, 0xe2, 0xd3, 0xa9, 0x07, 0xe2, 0x7f, 0xb1, + 0x25, 0x18, 0xe3, 0x1e, 0x88, 0x4f, 0xa6, 0xab, 0xb0, 0x0c, 0xf3, 0x02, 0x26, 0xf8, 0x3b, 0x97, + 0x6d, 0xc2, 0xd5, 0x44, 0x56, 0x52, 0xe7, 0x78, 0xa1, 0xd8, 0xb8, 0xe8, 0x2c, 0xa4, 0x89, 0x0d, + 0x09, 0x55, 0x1e, 0xf7, 0x2b, 0xcf, 0x90, 0x12, 0xbf, 0xe6, 0xe3, 0x80, 0xb8, 0xb7, 0xe3, 0x86, + 0x6a, 0x4f, 0xf8, 0xb5, 0x33, 0xa2, 0xd4, 0xe7, 0x78, 0x11, 0x4e, 0x04, 0x7e, 0x65, 0xcd, 0x32, + 0xeb, 0xba, 0x73, 0x4b, 0x73, 0x74, 0xb3, 0x81, 0xd9, 0x0c, 0x26, 0xe9, 0x0c, 0x8e, 0xf1, 0x3a, + 0x15, 0x51, 0x45, 0x25, 0x35, 0xe8, 0x64, 0xf2, 0x70, 0xd2, 0xef, 0x32, 0xb6, 0x85, 0x14, 0x6d, + 0x21, 0x27, 0x2a, 0xc5, 0x34, 0xf1, 0x1e, 0x38, 0xda, 0x25, 0x0f, 0xae, 0xa2, 0x53, 0x11, 0xdc, + 0x14, 0x35, 0x65, 0x2b, 0xb0, 0x18, 0x15, 0x0b, 0xe7, 0x01, 0x86, 0x9c, 0xc2, 0x82, 0x61, 0x0c, + 0x4f, 0x43, 0xb6, 0x5b, 0x3a, 0x9c, 0x69, 0x9a, 0x32, 0x1d, 0xe9, 0x94, 0x0f, 0x63, 0x5c, 0x86, + 0x05, 0xbd, 0xd9, 0xb4, 0x6e, 0x68, 0x8e, 0xd5, 0xf6, 0xb0, 0x66, 0x5d, 0xc7, 0x4e, 0x53, 0xb7, + 0xa9, 0x53, 0x93, 0x52, 0xe7, 0x69, 0x91, 0x4a, 0x4a, 0x4a, 0xac, 0x00, 0x3d, 0x06, 0x0b, 0x9e, + 0xdd, 0xee, 0xea, 0x83, 0x39, 0x38, 0x19, 0xcf, 0x6e, 0x47, 0x9a, 0x97, 0x57, 0x60, 0x61, 0xd5, + 0x30, 0x75, 0xe7, 0x96, 0xd8, 0xfd, 0x54, 0x51, 0xfb, 0xec, 0xbf, 0x27, 0xe0, 0x68, 0xd9, 0xaa, + 0x57, 0x70, 0xad, 0xed, 0x18, 0xde, 0xad, 0xc8, 0x99, 0xd5, 0x9b, 0xe9, 0x9f, 0xb3, 0x30, 0xc9, + 0x8f, 0x2a, 0xe2, 0x22, 0x86, 0x4c, 0x04, 0xfd, 0x9b, 0xb8, 0x88, 0x75, 0xec, 0xd6, 0x1c, 0xc3, + 0x26, 0xbd, 0x73, 0xe3, 0x10, 0x26, 0xa1, 0x47, 0x01, 0x19, 0xa6, 0xe1, 0x19, 0x7a, 0x93, 0x9e, + 0x69, 0xdc, 0x07, 0x1d, 0xa3, 0x3e, 0x68, 0x86, 0x97, 0x30, 0x1f, 0x96, 0xb8, 0xa1, 0x0a, 0x4c, + 0xf3, 0x5a, 0x21, 0x9c, 0x73, 0xff, 0x30, 0xde, 0xaf, 0x0a, 0x66, 0x10, 0x3f, 0x50, 0x60, 0x9a, + 0x9f, 0x72, 0xf4, 0xdc, 0x18, 0x1f, 0xd4, 0x4c, 0x60, 0x47, 0x55, 0x68, 0x05, 0x1e, 0xc4, 0x43, + 0xc4, 0x79, 0x6e, 0x34, 0x0c, 0xb3, 0x21, 0xe2, 0x27, 0x6c, 0x5b, 0xa8, 0x69, 0x4e, 0xae, 0x30, + 0x2a, 0x41, 0xe3, 0x2d, 0xcb, 0x34, 0x3c, 0xcb, 0x09, 0xd7, 0x65, 0xdb, 0x60, 0x3e, 0x28, 0x11, + 0xd5, 0xb3, 0x30, 0x29, 0xec, 0x02, 0x53, 0x74, 0xf1, 0x89, 0xce, 0xc5, 0xed, 0x72, 0xa6, 0xcf, + 0x5d, 0x3b, 0xfc, 0x12, 0xcc, 0xea, 0x14, 0x5e, 0x0b, 0x69, 0x01, 0x9d, 0xe6, 0x83, 0x7d, 0xbc, + 0xef, 0x10, 0x1a, 0x57, 0x67, 0xf4, 0x30, 0x36, 0x3f, 0x05, 0x10, 0xb2, 0x56, 0x4c, 0xb1, 0x43, + 0x14, 0x94, 0x07, 0x2a, 0x5f, 0xcd, 0xb6, 0xac, 0xa6, 0x9b, 0x9d, 0xa1, 0x07, 0x93, 0xdc, 0x7f, + 0x5d, 0xca, 0x96, 0xd5, 0x54, 0xa7, 0x4c, 0xfe, 0x97, 0x8b, 0x4e, 0xc0, 0x94, 0xb0, 0xa7, 0x6e, + 0x76, 0x96, 0xc6, 0x19, 0x02, 0x42, 0x08, 0xd0, 0x84, 0x40, 0xb5, 0xde, 0xb4, 0xf7, 0x74, 0xea, + 0xb1, 0xfb, 0x80, 0x26, 0x80, 0x69, 0x79, 0x52, 0x88, 0x3e, 0x08, 0x73, 0x0e, 0x76, 0xad, 0xb6, + 0x53, 0xc3, 0x1a, 0x8f, 0x99, 0x30, 0x3f, 0xfc, 0x3d, 0xfd, 0x50, 0x27, 0x95, 0xe4, 0xb2, 0xca, + 0x19, 0xc3, 0x81, 0x93, 0xb4, 0x13, 0x21, 0x12, 0x6b, 0x4e, 0x9b, 0xd5, 0xae, 0x1a, 0x66, 0x03, + 0x3b, 0xb6, 0x43, 0x20, 0x4d, 0x86, 0x6d, 0x4a, 0x5a, 0xf0, 0x52, 0x40, 0x27, 0x7a, 0xd7, 0xa4, + 0x67, 0xa1, 0xa6, 0xef, 0xea, 0xb5, 0x2c, 0x1a, 0xa4, 0x77, 0xc1, 0xc1, 0xa9, 0x42, 0x33, 0x38, + 0x44, 0x8b, 0x90, 0x8e, 0xe2, 0xfe, 0xec, 0x02, 0x6d, 0xe9, 0xa1, 0x21, 0x8f, 0x47, 0x75, 0x36, + 0x02, 0xf5, 0xd1, 0x07, 0x61, 0x91, 0x9e, 0x59, 0x42, 0xda, 0xa2, 0xd5, 0x45, 0xda, 0xea, 0xa3, + 0x7d, 0xf0, 0x54, 0xd7, 0x19, 0xa8, 0x22, 0xc3, 0xee, 0x3a, 0x17, 0x3f, 0x22, 0xc1, 0x99, 0xd0, + 0x7e, 0x63, 0x58, 0x44, 0xe3, 0x63, 0xf0, 0xd5, 0x73, 0x89, 0xf6, 0xf6, 0xcc, 0xa8, 0x68, 0x46, + 0x3d, 0xd5, 0xea, 0x0f, 0xab, 0x76, 0x00, 0xb5, 0x74, 0xc3, 0xf4, 0xb0, 0xa9, 0x9b, 0x35, 0x2c, + 0xe6, 0x78, 0x74, 0x90, 0x77, 0xb9, 0x15, 0xf0, 0xf0, 0x29, 0xce, 0xb7, 0x3a, 0x49, 0xc4, 0xd7, + 0xdb, 0xa5, 0xd6, 0xd6, 0x9f, 0x20, 0x9d, 0x7f, 0x36, 0x3b, 0xc8, 0x11, 0x8b, 0xb1, 0xd1, 0xea, + 0xc2, 0x6e, 0x8c, 0xe1, 0x36, 0x21, 0x47, 0x9c, 0x56, 0x97, 0xdb, 0xe7, 0x0e, 0x87, 0xef, 0xd8, + 0xa0, 0xb0, 0x43, 0x0f, 0xd3, 0xae, 0x1e, 0xb5, 0x7b, 0xd8, 0xfc, 0x22, 0x4c, 0x87, 0x1d, 0xe4, + 0xdc, 0x20, 0x55, 0xe0, 0x7b, 0x26, 0xec, 0x1a, 0x87, 0x1b, 0x08, 0xeb, 0x2c, 0x1f, 0xf3, 0xf1, + 0x21, 0x75, 0x96, 0x8f, 0x54, 0xe8, 0x2c, 0x1f, 0xdf, 0x23, 0x20, 0x7c, 0x0b, 0x8d, 0x1b, 0xbe, + 0xec, 0x09, 0x62, 0x07, 0x28, 0x24, 0x49, 0xdb, 0x11, 0x2f, 0x0a, 0x3d, 0xdd, 0xd3, 0xab, 0x39, + 0xe9, 0xc3, 0x98, 0x58, 0xcf, 0xe6, 0x75, 0x38, 0x5e, 0xc7, 0x57, 0xf5, 0x76, 0xd3, 0xd3, 0x5a, + 0xfa, 0x4d, 0xcd, 0xb6, 0xea, 0x54, 0x5d, 0x5d, 0xcf, 0x21, 0x2a, 0x90, 0x3d, 0x35, 0x58, 0x79, + 0x6e, 0x96, 0xad, 0x3a, 0xd1, 0x40, 0xce, 0xa2, 0x66, 0x79, 0x7b, 0x5d, 0x25, 0xc8, 0x83, 0x13, + 0xbe, 0xa5, 0x6a, 0xbb, 0x7a, 0x03, 0x6b, 0xf8, 0xa6, 0x6d, 0x39, 0x9e, 0x90, 0xd7, 0x19, 0xda, + 0x59, 0x1f, 0xef, 0x46, 0x98, 0xab, 0x6d, 0xc2, 0xac, 0x50, 0x5e, 0x2e, 0xbb, 0x63, 0x4e, 0xaf, + 0x22, 0x54, 0x87, 0xa5, 0x0e, 0x39, 0x8a, 0xfe, 0x1e, 0xa0, 0xfd, 0x2d, 0xf7, 0xd1, 0xa9, 0x18, + 0x57, 0x55, 0x5d, 0xb4, 0xe3, 0x1c, 0xd8, 0xd7, 0x21, 0x7b, 0x1d, 0x3b, 0x9e, 0x51, 0x8b, 0x89, + 0xbd, 0x3c, 0x34, 0x28, 0xe0, 0x7a, 0x99, 0x73, 0x76, 0x44, 0x5e, 0x96, 0xae, 0xc7, 0xd2, 0xd1, + 0x71, 0x98, 0x72, 0x71, 0xf3, 0xaa, 0xd6, 0x34, 0xcc, 0x6b, 0x3c, 0x46, 0x96, 0x22, 0x84, 0x4d, + 0xc3, 0xbc, 0x86, 0x96, 0x20, 0x79, 0xdb, 0x32, 0x79, 0x24, 0x8c, 0xae, 0x3b, 0xfd, 0x26, 0x2e, + 0x9b, 0xef, 0x90, 0xb2, 0xf0, 0x97, 0xff, 0x4d, 0x8e, 0x1e, 0x01, 0x51, 0x84, 0x88, 0xae, 0x63, + 0xc7, 0x25, 0xfb, 0xbb, 0xc1, 0x10, 0x1e, 0x2f, 0xe6, 0x73, 0xbe, 0xcc, 0x0a, 0x69, 0xe4, 0xae, + 0xed, 0x38, 0xd8, 0x24, 0xca, 0x13, 0x61, 0xdb, 0xe3, 0x08, 0x94, 0x95, 0x32, 0xbb, 0x16, 0x70, + 0x09, 0x3a, 0x03, 0x44, 0x82, 0xc7, 0xf0, 0x47, 0x8c, 0x78, 0x39, 0x39, 0x44, 0x05, 0xd7, 0xbd, + 0x30, 0xcd, 0x9d, 0x0a, 0xcf, 0x68, 0xe1, 0xec, 0xeb, 0xec, 0x80, 0x66, 0xa4, 0xaa, 0xd1, 0xc2, + 0xe8, 0xfd, 0x30, 0xe1, 0x7a, 0xba, 0xd7, 0x76, 0xb3, 0xd7, 0xa8, 0x2b, 0x75, 0x76, 0xf0, 0xf1, + 0x57, 0xa1, 0xf5, 0x55, 0xce, 0x87, 0x1e, 0x80, 0x34, 0xfb, 0x4b, 0x6b, 0x61, 0x97, 0xe8, 0x51, + 0xb6, 0x49, 0x7b, 0x99, 0x65, 0xd4, 0x2d, 0x46, 0x24, 0x38, 0xb5, 0x03, 0x41, 0xbb, 0xc6, 0x6d, + 0x9c, 0x6d, 0x31, 0x44, 0x17, 0x06, 0xd0, 0x15, 0xe3, 0x36, 0x26, 0xf8, 0x2f, 0xc6, 0xbb, 0x30, + 0xd9, 0x01, 0xda, 0xe5, 0x59, 0x5c, 0x80, 0x05, 0xc3, 0x74, 0x3d, 0x6a, 0xc0, 0x1b, 0x8e, 0xd5, + 0xb6, 0xb5, 0xb6, 0xd3, 0x74, 0xb3, 0x16, 0x41, 0x0b, 0x54, 0x36, 0xf3, 0xa2, 0x78, 0x9d, 0x94, + 0x6e, 0x3b, 0x4d, 0x97, 0xf8, 0x2f, 0x11, 0x81, 0x32, 0x84, 0x69, 0x93, 0xf1, 0x30, 0xff, 0x25, + 0x24, 0x4e, 0x86, 0x32, 0xef, 0x85, 0x69, 0x7c, 0xd3, 0x36, 0x1c, 0x2e, 0xcc, 0x37, 0x98, 0x30, + 0x19, 0x89, 0x0a, 0x33, 0x07, 0x29, 0x71, 0xc4, 0x65, 0x1d, 0xa6, 0x2d, 0xe2, 0x9b, 0xb8, 0xc3, + 0x1c, 0xa8, 0x78, 0x76, 0x3b, 0xeb, 0x52, 0x6c, 0x32, 0xc5, 0x28, 0x55, 0xbb, 0xdd, 0x0b, 0xc6, + 0x7b, 0xf1, 0x30, 0x1e, 0x6d, 0x00, 0x10, 0xd7, 0xc6, 0x60, 0xa8, 0xe8, 0x3a, 0x45, 0x2e, 0x0f, + 0xf7, 0x5e, 0x3a, 0xb6, 0x64, 0x05, 0xc1, 0xa1, 0x86, 0x98, 0x73, 0x79, 0x58, 0x88, 0x01, 0x34, + 0xfb, 0xba, 0x16, 0xb8, 0x01, 0x13, 0xac, 0x07, 0xb4, 0x04, 0xa8, 0x52, 0xcd, 0x57, 0xb7, 0x2b, + 0x1d, 0x5e, 0x72, 0x06, 0x66, 0xa8, 0xff, 0x5c, 0xd9, 0x28, 0x15, 0x37, 0x8a, 0xeb, 0x19, 0x09, + 0x4d, 0xc3, 0xa4, 0xba, 0x5d, 0xa4, 0x1f, 0x09, 0x34, 0x07, 0xd3, 0xaa, 0x52, 0x28, 0x15, 0x0b, + 0x1b, 0x9b, 0x84, 0x30, 0x86, 0x66, 0x20, 0x55, 0xa9, 0x96, 0xca, 0x65, 0xf2, 0x95, 0x44, 0x53, + 0x30, 0xae, 0xa8, 0x6a, 0x49, 0xcd, 0x8c, 0x93, 0x82, 0x35, 0x65, 0x5d, 0xcd, 0xaf, 0x29, 0x6b, + 0x99, 0x09, 0xf9, 0x0f, 0x01, 0x66, 0xb9, 0x5a, 0x6e, 0xdb, 0x75, 0xdd, 0xc3, 0xe8, 0x71, 0x58, + 0xac, 0x63, 0xd7, 0x70, 0x08, 0x90, 0x08, 0x6f, 0x13, 0x16, 0x77, 0x42, 0xbc, 0x2c, 0xbc, 0x45, + 0x9e, 0x87, 0x9c, 0xe0, 0x88, 0x01, 0xe3, 0x2c, 0x0a, 0x95, 0xe5, 0x35, 0xb6, 0xba, 0x30, 0xf9, + 0x0e, 0x1c, 0x11, 0xdc, 0x51, 0x54, 0x3d, 0xb1, 0x2f, 0x54, 0xbd, 0xc0, 0x1b, 0x89, 0x04, 0xbe, + 0x57, 0x3a, 0xe6, 0x42, 0x40, 0xb4, 0x66, 0xd4, 0x85, 0x83, 0x10, 0x9a, 0x0b, 0x41, 0xca, 0x1b, + 0x75, 0xb2, 0x69, 0x04, 0x43, 0xe8, 0x9a, 0x90, 0xf9, 0x0a, 0x19, 0x5e, 0xb2, 0xe1, 0xdf, 0x16, + 0xda, 0x70, 0xb2, 0xbb, 0xf9, 0xb0, 0x05, 0x9e, 0x1a, 0x18, 0x2e, 0xe6, 0x5d, 0x87, 0xcd, 0x6f, + 0xae, 0x63, 0x58, 0x61, 0x13, 0xfc, 0x08, 0x88, 0x41, 0x6b, 0x01, 0xa4, 0x07, 0x0a, 0xe9, 0xc5, + 0xf0, 0x36, 0x7d, 0x64, 0xff, 0x19, 0x09, 0x1e, 0xf6, 0x17, 0x66, 0x20, 0x4a, 0x9c, 0x39, 0x20, + 0x4a, 0x7c, 0x40, 0xac, 0x70, 0x7f, 0xb0, 0x78, 0x07, 0x64, 0x31, 0xa6, 0x3e, 0xb0, 0x2b, 0x3d, + 0x2a, 0xec, 0x3a, 0xc5, 0x1b, 0xef, 0xe5, 0x71, 0x37, 0x09, 0xee, 0x60, 0xdd, 0x8b, 0x23, 0x27, + 0xbc, 0x60, 0x73, 0x23, 0xa0, 0xb1, 0x63, 0xbc, 0xc1, 0xee, 0x22, 0x64, 0xc1, 0x09, 0xd1, 0x5b, + 0x2c, 0x8a, 0xcd, 0x8c, 0x82, 0x62, 0x85, 0x7e, 0xc4, 0x45, 0x21, 0x9e, 0x82, 0xa3, 0x81, 0x7e, + 0x44, 0x1d, 0xe8, 0x05, 0x76, 0xa2, 0xfa, 0x5a, 0x12, 0xf1, 0xa3, 0x3f, 0x22, 0xc1, 0xfd, 0x82, + 0xb1, 0x2f, 0x56, 0x3a, 0x32, 0x3a, 0x56, 0x3a, 0xcd, 0x3b, 0xe8, 0x59, 0x03, 0xdd, 0x02, 0x51, + 0x47, 0xeb, 0x09, 0x6a, 0x96, 0x46, 0x04, 0x35, 0x62, 0xa7, 0xc6, 0x17, 0x13, 0x48, 0xd1, 0xb1, + 0x55, 0x84, 0xdd, 0xe3, 0x97, 0x81, 0x11, 0xed, 0xe6, 0x96, 0x4f, 0xfe, 0xef, 0x14, 0x4c, 0x95, + 0x6c, 0xec, 0x30, 0xe1, 0xc7, 0xc5, 0x69, 0x04, 0x2c, 0x4a, 0x74, 0xc0, 0xa2, 0x12, 0xa4, 0x2d, + 0xc1, 0xc8, 0x8c, 0xcc, 0xd8, 0x20, 0xf4, 0xe0, 0x77, 0xb4, 0x4c, 0x8c, 0x8f, 0x3a, 0xeb, 0xf3, + 0x53, 0x5b, 0xb4, 0xea, 0xc3, 0x90, 0xe4, 0xa0, 0x2b, 0xe2, 0xa0, 0xa1, 0x0e, 0x20, 0xb2, 0x04, + 0x13, 0x75, 0xec, 0xe9, 0x46, 0x93, 0x5b, 0x3c, 0xfe, 0x15, 0x03, 0x50, 0xc6, 0xe3, 0x00, 0x4a, + 0x04, 0x1f, 0x4e, 0x74, 0xe0, 0xc3, 0x7b, 0x61, 0xda, 0xd3, 0x9d, 0x06, 0xf6, 0x58, 0x31, 0xb3, + 0xc0, 0xc0, 0x48, 0xb4, 0x42, 0xf8, 0xe8, 0x9f, 0xea, 0x3e, 0xfa, 0x5d, 0x4f, 0x77, 0x3c, 0x06, + 0x1b, 0x58, 0xc8, 0x70, 0x8a, 0x52, 0x28, 0x6a, 0x38, 0x46, 0x31, 0x26, 0x2b, 0x64, 0x11, 0x94, + 0x49, 0x6c, 0xd6, 0x69, 0xd1, 0x3a, 0x0d, 0x75, 0x37, 0x1c, 0xec, 0xba, 0xdc, 0xc2, 0x3d, 0x32, + 0x84, 0x60, 0xca, 0x9c, 0x45, 0xf5, 0x99, 0xd1, 0x2b, 0x80, 0x42, 0x30, 0x5e, 0xe0, 0x86, 0xd9, + 0xfd, 0xe2, 0x06, 0x11, 0x65, 0xf2, 0x29, 0x2e, 0xda, 0x61, 0xb8, 0x8e, 0x1e, 0x1e, 0xa1, 0xa6, + 0xd3, 0xfb, 0x6d, 0x1a, 0x89, 0x56, 0x82, 0xb6, 0x65, 0x75, 0x20, 0xae, 0x98, 0x86, 0xc9, 0xb2, + 0x52, 0x5c, 0x8b, 0x81, 0x14, 0x29, 0x48, 0xae, 0x95, 0x8a, 0x0a, 0xc3, 0x12, 0xf9, 0xd5, 0x92, + 0x5a, 0xa5, 0x58, 0x42, 0xfe, 0xdf, 0x04, 0x24, 0xa9, 0xca, 0x2d, 0x42, 0xa6, 0xfa, 0x6a, 0x59, + 0xe9, 0x68, 0x10, 0x41, 0xba, 0xa0, 0x2a, 0xf9, 0xaa, 0xa2, 0x15, 0x36, 0xb7, 0x2b, 0x55, 0x45, + 0xcd, 0x48, 0x84, 0xb6, 0xa6, 0x6c, 0x2a, 0x21, 0x5a, 0x82, 0xd0, 0xb6, 0xcb, 0x14, 0x87, 0x68, + 0x5b, 0x79, 0x4a, 0x1b, 0x43, 0xf3, 0x30, 0x2b, 0x68, 0xc5, 0xd2, 0x9a, 0x52, 0xc9, 0x24, 0x49, + 0x35, 0x55, 0x29, 0xe7, 0x37, 0x54, 0x9f, 0x75, 0x9c, 0xb1, 0xae, 0x85, 0xbb, 0x98, 0x20, 0x83, + 0xe1, 0xdd, 0x12, 0x4e, 0xad, 0x5c, 0x2a, 0x6d, 0x66, 0x26, 0x09, 0x95, 0x77, 0x1c, 0x50, 0x53, + 0xe8, 0x04, 0x64, 0x2b, 0x4a, 0x35, 0x20, 0x69, 0x5b, 0xf9, 0x62, 0x7e, 0x5d, 0xd9, 0x52, 0x8a, + 0xd5, 0xcc, 0x14, 0x3a, 0x02, 0xf3, 0xf9, 0xed, 0x6a, 0x49, 0xe3, 0xdd, 0xb2, 0x81, 0x00, 0x11, + 0x20, 0x25, 0x47, 0x07, 0x38, 0x8d, 0xd2, 0x00, 0xa4, 0xb1, 0xcd, 0xfc, 0xaa, 0xb2, 0x59, 0xc9, + 0xcc, 0xa0, 0x05, 0x98, 0x23, 0xdf, 0x6c, 0x4e, 0x5a, 0x7e, 0xbb, 0x7a, 0x31, 0x33, 0x4b, 0xa5, + 0x1f, 0xe9, 0xb1, 0xb2, 0xb1, 0xa3, 0x64, 0xd2, 0x3e, 0x5d, 0xa9, 0x5e, 0x29, 0xa9, 0x97, 0xb4, + 0x72, 0x69, 0x73, 0xa3, 0xf0, 0x6a, 0x66, 0x0e, 0xe5, 0x60, 0x89, 0x35, 0xb2, 0x51, 0xac, 0x2a, + 0xc5, 0x7c, 0xb1, 0xa0, 0x88, 0xb2, 0x8c, 0xfc, 0xa9, 0x31, 0x98, 0xef, 0xd2, 0xd4, 0x58, 0xe3, + 0x13, 0xd8, 0x84, 0xc4, 0xc8, 0x36, 0x61, 0x13, 0x26, 0x5b, 0xd8, 0x73, 0x8c, 0x1a, 0xcb, 0xe3, + 0xea, 0x7b, 0x97, 0xdf, 0x35, 0xaa, 0xe5, 0x2d, 0xca, 0xaa, 0x8a, 0x26, 0x50, 0x81, 0x8e, 0xa8, + 0x81, 0x5d, 0x9e, 0xcc, 0xb5, 0xaf, 0xcd, 0xc8, 0x59, 0x73, 0x9f, 0x94, 0x60, 0x82, 0x35, 0x1c, + 0x3b, 0xeb, 0x93, 0x30, 0x65, 0x98, 0x9e, 0x16, 0x20, 0xed, 0xb1, 0x8b, 0xf7, 0xa8, 0x29, 0xc3, + 0xf4, 0x2e, 0xd3, 0x5c, 0x9a, 0xfb, 0x60, 0xa6, 0x6e, 0xb5, 0x89, 0x1b, 0xc1, 0x6a, 0x10, 0xbb, + 0x2b, 0x5d, 0xbc, 0x47, 0x9d, 0x66, 0x54, 0xbf, 0x92, 0xeb, 0x51, 0x18, 0xcb, 0x2a, 0x51, 0xf0, + 0x4b, 0x2a, 0x31, 0x2a, 0xad, 0xb4, 0x3a, 0xc9, 0xe1, 0xbc, 0xfc, 0x35, 0x09, 0x16, 0x0b, 0xd4, + 0x23, 0xe4, 0x18, 0x40, 0xc5, 0x6f, 0xb4, 0xb1, 0xeb, 0xa1, 0x33, 0x00, 0xb6, 0x63, 0xbd, 0x8e, + 0x6b, 0x1e, 0x41, 0x9d, 0x92, 0x7f, 0x06, 0x4c, 0x71, 0xea, 0x46, 0xbd, 0xe7, 0x01, 0xf1, 0x1c, + 0x4c, 0x8a, 0xf0, 0x0b, 0xcb, 0x6b, 0x38, 0x33, 0x10, 0x94, 0xa8, 0x82, 0x83, 0x18, 0x72, 0x5b, + 0x27, 0xae, 0x17, 0x37, 0xd4, 0xfc, 0x4b, 0xfe, 0x98, 0x04, 0xf3, 0xeb, 0xd8, 0xbb, 0x7b, 0xa3, + 0x3c, 0x03, 0xe0, 0x87, 0xcd, 0x59, 0x02, 0x06, 0x67, 0x15, 0x31, 0xf3, 0xba, 0xbf, 0x44, 0xe3, + 0xc1, 0x12, 0xc9, 0x7f, 0x21, 0xc1, 0x22, 0x73, 0x37, 0x0e, 0x75, 0x28, 0x2f, 0xc2, 0x44, 0x9b, + 0xf6, 0xca, 0xef, 0x37, 0x1e, 0x1a, 0x28, 0x52, 0x36, 0x48, 0x95, 0xb3, 0xc5, 0xce, 0xe5, 0xbf, + 0x24, 0x38, 0xc2, 0xaa, 0xf9, 0xb1, 0xf7, 0x43, 0x99, 0xcc, 0xfd, 0x30, 0x13, 0xf1, 0x69, 0x82, + 0x2b, 0x49, 0x30, 0x03, 0x87, 0xe6, 0x0c, 0xaf, 0x25, 0xd0, 0x0c, 0x1b, 0x39, 0xbd, 0xeb, 0x11, + 0xee, 0x5b, 0x34, 0x25, 0x72, 0xa2, 0x33, 0x25, 0x52, 0xcc, 0x39, 0x15, 0x9a, 0xf3, 0xc7, 0x13, + 0x70, 0xb2, 0x82, 0xbd, 0x38, 0xef, 0xe5, 0x5d, 0x34, 0xf7, 0x52, 0x34, 0xd2, 0x3a, 0x3e, 0x8a, + 0x33, 0x16, 0x09, 0xb5, 0x0a, 0x51, 0x4c, 0x84, 0x44, 0xf1, 0x1d, 0x09, 0xb2, 0x15, 0xec, 0x45, + 0xf1, 0xf4, 0x3e, 0xa4, 0x80, 0xc2, 0x52, 0x18, 0x5e, 0x02, 0x31, 0x37, 0x64, 0xc9, 0xd8, 0x1b, + 0xb2, 0x38, 0x95, 0xfd, 0x81, 0x04, 0xc7, 0x2b, 0xd8, 0xeb, 0xf2, 0xc5, 0x0f, 0x67, 0xf1, 0xe2, + 0xef, 0xec, 0x92, 0xbd, 0xee, 0xec, 0xe2, 0x84, 0xfe, 0x77, 0x12, 0x2c, 0x55, 0xb0, 0x17, 0x09, + 0x00, 0x1c, 0xca, 0xd8, 0xbb, 0xae, 0xfe, 0x92, 0x07, 0xb8, 0xfa, 0x8b, 0x9b, 0xd9, 0xdb, 0x12, + 0x2c, 0x50, 0x75, 0xe2, 0x4e, 0xfc, 0xe1, 0x4c, 0x2b, 0x72, 0x43, 0x98, 0xec, 0xbc, 0x21, 0x8c, + 0x1b, 0xe7, 0xef, 0x4a, 0xb0, 0xc0, 0xac, 0x1e, 0xf3, 0x88, 0x0e, 0x67, 0x9c, 0x0f, 0x40, 0xba, + 0xc3, 0x3b, 0x63, 0x6a, 0x33, 0xdb, 0x8a, 0x44, 0x7a, 0xc5, 0x80, 0x27, 0x43, 0x03, 0xfe, 0x97, + 0x04, 0x2c, 0x12, 0x9d, 0x0f, 0x2e, 0x9c, 0x0f, 0x65, 0xc4, 0x5b, 0x30, 0xa1, 0xd7, 0x3c, 0x31, + 0xd2, 0x74, 0xbf, 0xcb, 0xd1, 0xb8, 0xd1, 0x2d, 0xe7, 0x29, 0xb3, 0xca, 0x1b, 0x41, 0xcf, 0xfb, + 0x27, 0xd8, 0x7e, 0xae, 0xd6, 0x3b, 0x8f, 0xaf, 0xb0, 0x5c, 0xca, 0x30, 0xc1, 0xfa, 0x20, 0xe0, + 0x7f, 0xbb, 0x78, 0xa9, 0x58, 0xba, 0x52, 0x64, 0xe1, 0x46, 0x02, 0x40, 0xcb, 0xf9, 0x4a, 0xe5, + 0x4a, 0x49, 0x5d, 0xcb, 0x48, 0x04, 0x16, 0xaf, 0x2b, 0x45, 0x45, 0x25, 0x10, 0xdb, 0x27, 0x27, + 0x44, 0xc5, 0xed, 0x8a, 0xa2, 0x16, 0xf3, 0x5b, 0x4a, 0x66, 0x4c, 0xfe, 0xb8, 0x04, 0x8b, 0x6b, + 0xb8, 0x89, 0x0f, 0xf9, 0x70, 0x17, 0x93, 0x4b, 0x86, 0x26, 0xb7, 0x07, 0x0b, 0x9b, 0x86, 0x2b, + 0xf0, 0xce, 0xdd, 0xd8, 0x4c, 0x01, 0xb2, 0x4a, 0x46, 0x90, 0xd5, 0x6d, 0x58, 0x8c, 0xf6, 0xe4, + 0xda, 0x96, 0xe9, 0x62, 0xf4, 0x02, 0xa4, 0xf8, 0x10, 0xdd, 0xac, 0x44, 0x21, 0xef, 0x10, 0x38, + 0xce, 0x67, 0x41, 0xf7, 0xc1, 0x6c, 0xcb, 0x70, 0x5d, 0x62, 0x28, 0x49, 0xf7, 0x2c, 0x33, 0x6d, + 0x4a, 0x9d, 0xe1, 0xc4, 0x1d, 0x42, 0x93, 0x7f, 0x41, 0x82, 0x85, 0x75, 0xec, 0xf9, 0x80, 0xf9, + 0x2e, 0x4c, 0xf3, 0x01, 0x98, 0x09, 0xc2, 0x13, 0x11, 0x89, 0x4f, 0xfb, 0xf4, 0x1e, 0xd8, 0xee, + 0x75, 0x38, 0x42, 0x24, 0xe1, 0x8f, 0xe6, 0x9d, 0x94, 0xfa, 0x27, 0x25, 0x58, 0x2a, 0xe8, 0x66, + 0x0d, 0x37, 0x7f, 0x82, 0x93, 0x0f, 0x2b, 0xdc, 0x87, 0x25, 0x58, 0xea, 0x9c, 0x3d, 0xd7, 0x84, + 0x02, 0x80, 0xcf, 0x2d, 0x74, 0xe1, 0xbe, 0x21, 0xdc, 0x1f, 0x35, 0xc4, 0x36, 0x9c, 0x3e, 0x34, + 0x60, 0x69, 0x1d, 0x7b, 0xe4, 0xfc, 0xf4, 0x2f, 0x0f, 0x0f, 0x2e, 0x94, 0xb8, 0xd9, 0x7e, 0x34, + 0x01, 0x33, 0xe1, 0x6e, 0x58, 0xf8, 0x91, 0xdd, 0xea, 0x76, 0x5e, 0xe8, 0x49, 0x22, 0xfc, 0x48, + 0x8b, 0x3b, 0x2e, 0xf4, 0x96, 0x61, 0xe1, 0xba, 0xde, 0x34, 0xa2, 0x37, 0x0e, 0xe2, 0xe1, 0xd0, + 0x3c, 0x2d, 0x0a, 0x5d, 0x38, 0xb8, 0x2c, 0x4c, 0xcf, 0xfa, 0x09, 0x41, 0xd7, 0xa4, 0x08, 0xd3, + 0xd3, 0x92, 0x20, 0x4c, 0x7f, 0x0e, 0x58, 0x13, 0xa1, 0xba, 0x6e, 0x76, 0x9c, 0xb6, 0x3d, 0x47, + 0x0b, 0xfc, 0xaa, 0x2e, 0xba, 0x00, 0x47, 0x58, 0xdd, 0xe8, 0x39, 0xc3, 0xde, 0x03, 0x4d, 0xa9, + 0x6c, 0x98, 0x91, 0x20, 0xa0, 0x2b, 0xff, 0x95, 0x04, 0x47, 0x98, 0xfb, 0x77, 0xb8, 0x1e, 0xc0, + 0x8b, 0x30, 0xe5, 0xa3, 0x60, 0x0e, 0x44, 0x86, 0xc9, 0x0c, 0x4a, 0x09, 0x88, 0x1c, 0xda, 0x56, + 0x13, 0x91, 0x6d, 0xf5, 0x6d, 0x09, 0x8e, 0x30, 0x0b, 0xfe, 0x6e, 0x74, 0x69, 0xe2, 0xe0, 0xc8, + 0x2f, 0x4a, 0xcc, 0xfe, 0x8a, 0xf1, 0x1e, 0x12, 0x6e, 0xea, 0xe5, 0x67, 0xff, 0x8e, 0x04, 0x68, + 0x3d, 0xf0, 0x8f, 0xde, 0xed, 0xd2, 0xfb, 0xca, 0x04, 0xa4, 0xc4, 0x58, 0x63, 0x43, 0x2a, 0xcf, + 0xc3, 0x04, 0xc7, 0xbb, 0x89, 0x7d, 0x24, 0x06, 0x72, 0x9e, 0x7d, 0x66, 0x22, 0xf6, 0xcd, 0x32, + 0xc8, 0xc2, 0xa4, 0x30, 0x28, 0xec, 0xc9, 0x8d, 0xf8, 0x24, 0x26, 0x24, 0xee, 0x02, 0xfb, 0x2a, + 0x33, 0x21, 0xdd, 0x97, 0xd7, 0x79, 0x3f, 0x36, 0xd6, 0xa0, 0xc0, 0xec, 0xe1, 0xc1, 0x3b, 0x67, + 0xf0, 0xbd, 0xfd, 0x5e, 0x5c, 0x58, 0xbc, 0xc3, 0x0d, 0x4d, 0x1e, 0xd8, 0x0d, 0xbd, 0x08, 0xd0, + 0xd2, 0x4d, 0xbd, 0x81, 0x5b, 0x42, 0xf3, 0xfa, 0x3e, 0xf5, 0x20, 0xed, 0x6d, 0xf9, 0xf5, 0xd5, + 0x10, 0x2f, 0xfa, 0x00, 0x2c, 0xc4, 0x65, 0xdf, 0x4c, 0xec, 0x3f, 0xfb, 0x66, 0xbe, 0xd5, 0x95, + 0x76, 0x13, 0xbd, 0x61, 0x37, 0x0e, 0x70, 0xc3, 0x2e, 0xbf, 0x25, 0x1d, 0xf4, 0x7e, 0x7c, 0x09, + 0x10, 0xff, 0xd0, 0xae, 0x6c, 0x54, 0x2f, 0x6a, 0xec, 0x36, 0x7c, 0xac, 0xf3, 0xde, 0x3c, 0x19, + 0xb9, 0x37, 0x1f, 0x0f, 0xee, 0xcd, 0x27, 0xe4, 0x6f, 0x49, 0x90, 0x8e, 0x8a, 0x12, 0x9d, 0x81, + 0x19, 0xb2, 0x2e, 0x5a, 0xdb, 0x6e, 0x38, 0x7a, 0x5d, 0x3c, 0xcb, 0xa2, 0x6b, 0xb5, 0xcd, 0x48, + 0xe8, 0x5e, 0xb6, 0xf8, 0x9a, 0x83, 0x6d, 0xdd, 0x70, 0x78, 0x36, 0x3a, 0x10, 0x92, 0x4a, 0x29, + 0x68, 0x1b, 0xe6, 0x38, 0xbb, 0x66, 0xd9, 0xe2, 0x3e, 0x77, 0xc0, 0x25, 0x64, 0x3e, 0xe8, 0xa0, + 0xc4, 0x78, 0xd4, 0x74, 0x3b, 0xf2, 0x2d, 0xb7, 0x00, 0x75, 0xd7, 0x42, 0xef, 0x81, 0xa3, 0xe1, + 0x01, 0x6b, 0xa1, 0x4b, 0x15, 0xb6, 0xdd, 0x17, 0x43, 0x63, 0xaf, 0xf8, 0xf7, 0x2b, 0x03, 0x93, + 0x8d, 0xe5, 0x57, 0x60, 0xbe, 0x2b, 0x9d, 0x0f, 0x15, 0x60, 0xe2, 0x86, 0x61, 0xd6, 0xad, 0x1b, + 0x83, 0x5f, 0x9a, 0x85, 0x98, 0xaf, 0x50, 0x16, 0x95, 0xb3, 0x12, 0x70, 0x3b, 0xdf, 0x55, 0x8a, + 0x9a, 0x90, 0xad, 0xeb, 0x46, 0xf3, 0x96, 0x16, 0x4e, 0x3c, 0xe4, 0x9d, 0x25, 0x06, 0xdd, 0x10, + 0xae, 0x11, 0xce, 0xae, 0x36, 0x2f, 0xde, 0xa3, 0x2e, 0xd5, 0x63, 0x4b, 0x56, 0x53, 0x30, 0xc1, + 0xae, 0xa7, 0xe5, 0x0a, 0x2c, 0xc5, 0x73, 0x77, 0x5c, 0x51, 0x25, 0x3a, 0xaf, 0xa8, 0x72, 0x90, + 0xaa, 0xb7, 0x19, 0x8a, 0xe3, 0xef, 0x0c, 0xfc, 0x6f, 0xf9, 0xa7, 0x13, 0x70, 0x22, 0x14, 0x4d, + 0x0b, 0xed, 0xd5, 0x77, 0xd1, 0xb9, 0x71, 0xf7, 0x8c, 0x4e, 0x9c, 0x17, 0xfa, 0xd7, 0x2c, 0xa0, + 0x23, 0x44, 0x50, 0x31, 0x6e, 0xe3, 0x77, 0xd3, 0xe4, 0x4f, 0xf2, 0x24, 0x6c, 0x76, 0x72, 0x8d, + 0xd3, 0x93, 0x6b, 0xca, 0xf4, 0x8f, 0xac, 0xb8, 0x19, 0xfd, 0xbe, 0x04, 0xa7, 0x54, 0xab, 0xd9, + 0xdc, 0xd5, 0x6b, 0xd7, 0xc4, 0xb4, 0xf8, 0xc6, 0x7a, 0xb7, 0xc3, 0x81, 0x1d, 0xe6, 0xc1, 0x85, + 0xb0, 0x14, 0x77, 0x61, 0xa2, 0xb9, 0xe8, 0xd2, 0x08, 0xb9, 0xe8, 0xf2, 0x37, 0x24, 0x40, 0x31, + 0x89, 0x12, 0xef, 0x87, 0x13, 0x3c, 0xb7, 0x8b, 0x76, 0x40, 0xac, 0x10, 0x7d, 0x5f, 0x44, 0x8e, + 0x76, 0xf1, 0x54, 0x35, 0xa5, 0xe6, 0x58, 0x1d, 0xd2, 0x6e, 0xbe, 0xa3, 0x06, 0x2a, 0x87, 0xd3, + 0xd1, 0x8d, 0x96, 0xe1, 0x89, 0x57, 0x5c, 0x0f, 0x0d, 0xce, 0x55, 0xd8, 0x24, 0xf5, 0x43, 0x09, + 0xe8, 0x94, 0x5d, 0xde, 0x83, 0xd9, 0x48, 0x05, 0xe2, 0x7c, 0xf9, 0x5d, 0x84, 0x7e, 0x1d, 0x61, + 0x46, 0x10, 0xa9, 0xb3, 0x91, 0x85, 0xc9, 0x96, 0x61, 0x1a, 0xad, 0x76, 0x8b, 0xdd, 0x3d, 0xa9, + 0xe2, 0x93, 0x96, 0xe8, 0x37, 0x69, 0xc9, 0x18, 0x2f, 0x61, 0x9f, 0x34, 0xe8, 0x17, 0x97, 0xed, + 0xd3, 0xfb, 0xbd, 0xda, 0xfd, 0x90, 0x6e, 0x19, 0x66, 0x18, 0x4e, 0xb1, 0x9f, 0x61, 0x98, 0x69, + 0x19, 0x66, 0x00, 0xa5, 0x48, 0x2d, 0xfd, 0x66, 0x37, 0xe8, 0x9a, 0x69, 0xe9, 0x37, 0x83, 0x5a, + 0x67, 0x61, 0x2e, 0x22, 0x6f, 0xcc, 0x74, 0x25, 0xa5, 0x76, 0x92, 0xe5, 0x1f, 0x25, 0x20, 0x53, + 0xc1, 0x1e, 0x4b, 0x72, 0x3b, 0x1c, 0x2d, 0x6e, 0x74, 0xbf, 0x32, 0x60, 0x37, 0x87, 0xef, 0xeb, + 0x1b, 0x48, 0x8b, 0x0c, 0x71, 0xf4, 0xe7, 0x06, 0xe3, 0x3d, 0x9e, 0x1b, 0xc4, 0x6c, 0xf8, 0xbb, + 0x91, 0x05, 0xf8, 0x15, 0x89, 0xc6, 0x28, 0x43, 0x8f, 0x13, 0x0e, 0x45, 0xc6, 0x21, 0x35, 0x4b, + 0x46, 0xd5, 0x2c, 0xce, 0x3a, 0xfc, 0x01, 0x31, 0xd5, 0xe4, 0x5c, 0xdb, 0x28, 0xab, 0xfc, 0x57, + 0x4a, 0x0e, 0x37, 0xc0, 0x17, 0x1a, 0x0c, 0x7a, 0x0c, 0x90, 0x43, 0x06, 0x81, 0xb5, 0x9a, 0x83, + 0xeb, 0xd8, 0x24, 0xae, 0x84, 0x4b, 0x97, 0x25, 0xa5, 0xce, 0xb3, 0x92, 0x42, 0x50, 0x20, 0x7f, + 0x42, 0x82, 0x63, 0x05, 0xab, 0x65, 0x13, 0xd7, 0xf6, 0x27, 0x35, 0xfc, 0xf0, 0x21, 0x71, 0x0d, + 0xe6, 0xbb, 0x7e, 0x98, 0x83, 0x68, 0x62, 0xe8, 0xa7, 0x39, 0xf8, 0xc6, 0x95, 0xa8, 0xc5, 0xc8, + 0xe8, 0xe1, 0xda, 0x64, 0xf3, 0x3e, 0x0c, 0x61, 0x1a, 0x33, 0x4b, 0x4c, 0xaf, 0xe6, 0x42, 0x74, + 0x62, 0x99, 0xe4, 0xef, 0x4a, 0xb0, 0x14, 0xff, 0x13, 0x1b, 0x68, 0x17, 0x66, 0xa9, 0x91, 0xf0, + 0x7f, 0x6a, 0x85, 0xbd, 0x0a, 0x7d, 0x61, 0xbf, 0xbf, 0xd5, 0xc1, 0x8e, 0x7d, 0x4e, 0x62, 0xaf, + 0x1d, 0xc5, 0x97, 0xfc, 0x34, 0xcc, 0x84, 0x4b, 0x09, 0xf2, 0xee, 0x7a, 0x07, 0x5a, 0x51, 0x0a, + 0xdb, 0xaa, 0x92, 0x91, 0xc8, 0xdf, 0xca, 0x2b, 0xe5, 0x52, 0x45, 0xc9, 0x24, 0xe4, 0xbf, 0x97, + 0xe0, 0x28, 0xc1, 0x06, 0x91, 0x87, 0x36, 0x87, 0xb2, 0x64, 0xdd, 0xcf, 0x81, 0x92, 0x07, 0x7a, + 0x0e, 0x14, 0xb7, 0x9d, 0xfe, 0x91, 0xdf, 0xc5, 0x75, 0x3d, 0x86, 0xe1, 0x33, 0x3c, 0xd9, 0x3d, + 0xc3, 0x41, 0xd7, 0x87, 0x27, 0xbb, 0x67, 0x16, 0x9e, 0x55, 0xfc, 0x73, 0x9d, 0xe4, 0x5d, 0x79, + 0xae, 0x13, 0x17, 0x10, 0x5e, 0x66, 0xa1, 0x99, 0xae, 0x2b, 0xad, 0x20, 0x78, 0x22, 0x45, 0x82, + 0x27, 0x6f, 0x49, 0x0c, 0x7f, 0x84, 0x18, 0x38, 0xfe, 0x78, 0x7f, 0xf8, 0x9a, 0x6a, 0x20, 0xfc, + 0x10, 0xfc, 0xe1, 0xab, 0xac, 0x07, 0x61, 0xce, 0xc4, 0x37, 0x3d, 0xcd, 0xa6, 0x81, 0x40, 0xeb, + 0x1a, 0x16, 0xde, 0xcc, 0x2c, 0x21, 0x97, 0xf5, 0x06, 0xae, 0x12, 0xa2, 0xfc, 0x43, 0x09, 0x52, + 0x82, 0x1f, 0x15, 0x20, 0xe9, 0x1f, 0xf7, 0xe9, 0x0b, 0x2b, 0x83, 0x7b, 0xf4, 0xff, 0xa0, 0x89, + 0x7a, 0x94, 0xd9, 0x97, 0x4c, 0x22, 0xfa, 0x88, 0xd3, 0xc1, 0x35, 0xab, 0xd5, 0xc2, 0x66, 0x1d, + 0xb3, 0x95, 0x4a, 0xa9, 0x61, 0x92, 0x5c, 0x80, 0x99, 0x70, 0x5b, 0xe8, 0x24, 0x1c, 0xdb, 0x2c, + 0x15, 0xf2, 0xd5, 0x8d, 0x52, 0x51, 0x8b, 0xc9, 0xbd, 0x4a, 0x41, 0x72, 0xa7, 0x54, 0xe4, 0x1b, + 0x48, 0x55, 0xd6, 0x37, 0x4a, 0xc5, 0x4c, 0x42, 0xfe, 0xb1, 0x04, 0x73, 0x1d, 0xde, 0x35, 0x5a, + 0x85, 0x64, 0xcd, 0xaa, 0x8b, 0x39, 0x2d, 0x0f, 0xed, 0x96, 0x2f, 0x17, 0xe8, 0xa3, 0x7e, 0xc2, + 0x4b, 0x01, 0x0d, 0x0f, 0x7c, 0xb0, 0x59, 0x89, 0x4f, 0xd9, 0x85, 0x24, 0xa9, 0xd7, 0x75, 0xa5, + 0xb4, 0x5e, 0x50, 0xb4, 0x4a, 0xb5, 0x54, 0xb8, 0x54, 0xda, 0xae, 0x66, 0x24, 0x74, 0x2f, 0x1c, + 0x5f, 0xbf, 0xa4, 0x68, 0x15, 0x45, 0xbd, 0xbc, 0x51, 0x50, 0xb4, 0x7c, 0xa1, 0x50, 0xda, 0x2e, + 0x56, 0x35, 0x96, 0xb1, 0xb5, 0xc6, 0xbc, 0x76, 0xc2, 0xf2, 0xf2, 0x76, 0xa9, 0x9a, 0xd7, 0x94, + 0x57, 0x0a, 0x8a, 0xb2, 0xa6, 0xac, 0x65, 0xc6, 0x44, 0x8e, 0xd5, 0xea, 0xab, 0x5a, 0xa9, 0xac, + 0xa8, 0xf9, 0x6a, 0x49, 0xcd, 0x24, 0xe5, 0x0d, 0xff, 0x99, 0x7b, 0xf0, 0xba, 0x56, 0xbc, 0xab, + 0x94, 0xa2, 0xaf, 0x3d, 0xa3, 0x8f, 0x2e, 0x13, 0x9d, 0x8f, 0x2e, 0xe5, 0x9f, 0x97, 0xe0, 0x04, + 0x51, 0xc1, 0x6d, 0xfa, 0xdb, 0x02, 0xc1, 0xab, 0xf1, 0x41, 0xba, 0x4b, 0xe8, 0x57, 0x8d, 0xa6, + 0x87, 0x1d, 0xde, 0x28, 0xff, 0x42, 0xc7, 0x61, 0x8a, 0xaa, 0x1c, 0x7d, 0xb1, 0xc1, 0x40, 0x58, + 0x8a, 0x10, 0xe8, 0x4b, 0x0d, 0xb2, 0xc5, 0x03, 0x7d, 0x4c, 0xf2, 0x2d, 0xee, 0xeb, 0xe2, 0xe7, + 0x25, 0x38, 0xd9, 0x63, 0x30, 0x7c, 0x5f, 0x6c, 0xc2, 0x74, 0x30, 0x78, 0xb1, 0x33, 0xfa, 0x24, + 0x7b, 0x75, 0xb6, 0xa4, 0x86, 0xd9, 0x87, 0xde, 0x23, 0x6f, 0x27, 0xe0, 0x54, 0x67, 0x4b, 0xd1, + 0xf7, 0xe2, 0x64, 0x66, 0xa1, 0xb7, 0xe5, 0xdc, 0x78, 0x39, 0xfe, 0x53, 0x72, 0x19, 0x66, 0x0d, + 0x9b, 0x3d, 0xd6, 0xa0, 0x44, 0x11, 0x59, 0x30, 0xec, 0x82, 0x51, 0x77, 0x58, 0x13, 0x57, 0xfc, + 0x38, 0x1d, 0x4b, 0x90, 0x7d, 0x71, 0xf8, 0x69, 0x45, 0x07, 0xd3, 0x11, 0xbd, 0x93, 0x1b, 0x7e, + 0x48, 0x29, 0xa2, 0xa5, 0x00, 0x13, 0xdb, 0xc5, 0xed, 0x8a, 0xb2, 0xc6, 0xd2, 0x16, 0x37, 0x8a, + 0xda, 0x76, 0xc5, 0x57, 0xd1, 0x4c, 0x02, 0x65, 0x61, 0x51, 0xd0, 0x2e, 0xe6, 0x55, 0x25, 0xbf, + 0xba, 0xa9, 0x68, 0xe5, 0x12, 0x51, 0xca, 0x25, 0x40, 0xbc, 0x84, 0xa5, 0x13, 0xae, 0x51, 0x7a, + 0x52, 0x7e, 0x2b, 0x01, 0x99, 0xce, 0xa1, 0x75, 0x68, 0xa0, 0xd4, 0xf5, 0xec, 0x37, 0xa4, 0xbb, + 0x89, 0xa8, 0xee, 0x76, 0x09, 0x6d, 0xac, 0x5b, 0x68, 0x7b, 0xb0, 0x10, 0xbc, 0xee, 0x37, 0x6c, + 0x56, 0x51, 0x20, 0xe7, 0x67, 0x46, 0x95, 0xa0, 0x3a, 0xef, 0x37, 0xba, 0x61, 0x53, 0x8a, 0x3b, + 0x64, 0x6a, 0xb0, 0x7c, 0x01, 0x96, 0x7a, 0x24, 0x5e, 0xf7, 0x7e, 0x02, 0xff, 0x3e, 0x98, 0xef, + 0x7e, 0xcb, 0xf7, 0x30, 0xcc, 0xfb, 0x11, 0x4b, 0x1b, 0x3b, 0xd4, 0xb7, 0xe1, 0xe0, 0x28, 0xcd, + 0x43, 0x90, 0x65, 0xec, 0x10, 0xa0, 0x21, 0x7f, 0x26, 0x01, 0xc7, 0x7a, 0xe7, 0x9a, 0xdf, 0x86, + 0xc5, 0x5d, 0xa3, 0xf1, 0x46, 0x1b, 0x3b, 0xb7, 0xb4, 0x3a, 0x76, 0x3d, 0xc3, 0x64, 0xc1, 0x19, + 0x16, 0xaa, 0x5a, 0x1f, 0x21, 0xc1, 0x7d, 0x79, 0xd5, 0x68, 0xbc, 0x4c, 0xda, 0x5b, 0x0b, 0x9a, + 0x53, 0x17, 0x44, 0x27, 0x21, 0x22, 0x2a, 0xc0, 0x29, 0xe1, 0xed, 0x72, 0x78, 0x81, 0x69, 0x86, + 0x23, 0xc1, 0x5f, 0xd8, 0x11, 0x3f, 0x9b, 0x94, 0x52, 0x8f, 0x73, 0x7f, 0x97, 0x55, 0x52, 0x68, + 0x9d, 0x2d, 0x5e, 0x25, 0xf7, 0x24, 0x2c, 0xc4, 0x74, 0x48, 0xb6, 0x1c, 0x81, 0x57, 0x2e, 0x0e, + 0xe3, 0x05, 0x4e, 0xd9, 0xa8, 0x5f, 0xf8, 0x74, 0x1e, 0xd2, 0xdc, 0xff, 0x66, 0xe1, 0x19, 0x07, + 0xfd, 0x93, 0x04, 0x33, 0xe1, 0xbb, 0x6b, 0xd4, 0x27, 0x36, 0x1d, 0x73, 0x9b, 0x9e, 0x5b, 0x1e, + 0xb6, 0x3a, 0xb3, 0x56, 0xf2, 0x1b, 0x1f, 0xfe, 0xdb, 0x1f, 0x7f, 0x36, 0x71, 0x0d, 0x9d, 0xf7, + 0x7f, 0x2b, 0xf1, 0x4d, 0x66, 0x3d, 0x5f, 0xe0, 0xb0, 0xc6, 0x5d, 0x39, 0xb7, 0xe2, 0x1f, 0xd9, + 0x2b, 0xe7, 0xee, 0x88, 0xdf, 0x52, 0x74, 0x77, 0x9e, 0x42, 0x4f, 0xfa, 0x4c, 0x7e, 0xe5, 0x37, + 0x03, 0x7c, 0x74, 0x67, 0x85, 0xde, 0x8a, 0xae, 0xbc, 0x49, 0xfe, 0x09, 0xf8, 0xd0, 0x3f, 0x48, + 0x00, 0x41, 0xde, 0x23, 0xea, 0x83, 0x72, 0xba, 0xb2, 0x23, 0x73, 0x83, 0xef, 0xeb, 0xe5, 0x0f, + 0xd1, 0x19, 0xdd, 0x0c, 0xcf, 0x88, 0x18, 0xbc, 0x1e, 0xf3, 0xf1, 0x87, 0xb5, 0x72, 0xee, 0xce, + 0x4e, 0x01, 0xe5, 0x47, 0x99, 0xd1, 0xca, 0x9b, 0x01, 0xc2, 0xbb, 0x83, 0x7e, 0x24, 0xc1, 0x6c, + 0x24, 0xff, 0x14, 0xf5, 0x59, 0x93, 0xb8, 0x44, 0xd5, 0xdc, 0x30, 0x17, 0xd1, 0xf2, 0x0d, 0x3a, + 0xcd, 0x37, 0xe4, 0xfd, 0x2f, 0xdc, 0xb3, 0xd2, 0xb9, 0x9d, 0xf7, 0xca, 0x23, 0xad, 0xdd, 0xb3, + 0xd2, 0x39, 0xf4, 0xef, 0x12, 0xcc, 0x46, 0xd2, 0x45, 0xfb, 0xcd, 0x2f, 0x2e, 0xaf, 0x74, 0xb8, + 0xf9, 0x7d, 0x54, 0xa2, 0x13, 0xfc, 0x50, 0x6e, 0xff, 0xeb, 0x48, 0x26, 0xf8, 0x52, 0xee, 0xe0, + 0x4b, 0x49, 0x66, 0xfb, 0x85, 0x04, 0xa4, 0xa3, 0x09, 0xa5, 0x68, 0x65, 0xd0, 0x74, 0x3b, 0x6e, + 0x1a, 0x87, 0x9b, 0xef, 0x77, 0xd8, 0x7c, 0xbf, 0x29, 0xe5, 0x5e, 0xd8, 0xef, 0x84, 0x57, 0xfc, + 0x88, 0x1e, 0x9f, 0xfc, 0x55, 0x59, 0x3f, 0xf0, 0xe4, 0x43, 0x8d, 0xbe, 0x19, 0x0e, 0x5d, 0xde, + 0x59, 0x61, 0xf9, 0x4b, 0x44, 0x38, 0x3f, 0x48, 0x44, 0x02, 0xc5, 0xe1, 0x93, 0xe4, 0xe9, 0xbe, + 0x11, 0xa1, 0xde, 0xb9, 0xaa, 0xc3, 0x09, 0xeb, 0xcf, 0x98, 0xb0, 0x7e, 0x20, 0xc9, 0x9b, 0x07, + 0x13, 0x96, 0x8b, 0xbd, 0xd0, 0x18, 0x88, 0xec, 0xae, 0xc9, 0x57, 0xdf, 0x41, 0xd9, 0xe9, 0x91, + 0xce, 0xd0, 0xcf, 0x26, 0x60, 0xbe, 0x2b, 0x5f, 0x15, 0x5d, 0xe8, 0x1f, 0x4d, 0x8b, 0x4b, 0x6e, + 0x1d, 0x4e, 0x6c, 0xbf, 0xca, 0xc4, 0xf6, 0x69, 0x49, 0x7e, 0x7e, 0xff, 0x9b, 0xca, 0xf5, 0xbb, + 0x26, 0x62, 0x2a, 0xca, 0x1b, 0x07, 0x17, 0x53, 0xd3, 0x6f, 0x0f, 0x7d, 0x96, 0x67, 0x04, 0x76, + 0x65, 0x9c, 0x0e, 0xc8, 0xd1, 0xeb, 0x91, 0x35, 0x3b, 0x9c, 0x3c, 0xbe, 0xc4, 0xe4, 0xf1, 0x2b, + 0x92, 0xfc, 0xe2, 0x48, 0xf2, 0x08, 0x7a, 0x27, 0x22, 0x79, 0x39, 0xa4, 0x8c, 0x23, 0x8b, 0xa4, + 0x15, 0x6e, 0x12, 0xbd, 0x95, 0x80, 0xb9, 0x8e, 0xd4, 0x5a, 0xf4, 0x78, 0x5f, 0x81, 0xc4, 0x64, + 0xe1, 0x0e, 0x27, 0x8b, 0x5f, 0x66, 0xb2, 0xf8, 0x94, 0x24, 0x3f, 0x37, 0x92, 0x2c, 0x58, 0xc7, + 0x44, 0x0e, 0x5b, 0xf2, 0xc5, 0x83, 0xcb, 0x41, 0x17, 0xcd, 0x11, 0x19, 0xcc, 0x84, 0x93, 0x70, + 0xfb, 0x21, 0xa2, 0x98, 0x64, 0xdd, 0xe1, 0x66, 0xff, 0x45, 0x36, 0xfb, 0xcf, 0x4b, 0xf2, 0xfb, + 0x46, 0xdc, 0x19, 0xbc, 0x88, 0x08, 0xa0, 0x2c, 0x5f, 0xba, 0x1b, 0x7b, 0x23, 0x68, 0x11, 0xfd, + 0x9f, 0x04, 0x33, 0xe1, 0x04, 0xdf, 0x7e, 0x32, 0x88, 0x49, 0x04, 0x1e, 0x4e, 0x06, 0xbf, 0xc6, + 0x64, 0xf0, 0x99, 0x91, 0x64, 0xd0, 0x0e, 0xf5, 0x7a, 0xd7, 0x94, 0xa0, 0x25, 0x9a, 0x43, 0x1f, + 0x4f, 0xc0, 0x6c, 0x24, 0x25, 0xb7, 0x1f, 0xe8, 0x88, 0xcb, 0xdd, 0x1d, 0x4e, 0x04, 0xbf, 0xc5, + 0x44, 0xf0, 0x85, 0x91, 0x0d, 0x82, 0xdf, 0x2d, 0x91, 0x41, 0x55, 0x2e, 0x1d, 0x1c, 0x83, 0x74, + 0xb6, 0x8a, 0x7e, 0x2c, 0xc1, 0x6c, 0x24, 0xa3, 0xb7, 0x9f, 0x28, 0xe2, 0x52, 0x7f, 0x87, 0x13, + 0x05, 0x87, 0xd1, 0xe7, 0x46, 0x81, 0xd1, 0xe7, 0xee, 0x02, 0x8c, 0xfe, 0x37, 0x09, 0xd2, 0xd1, + 0xe4, 0xcd, 0x7e, 0xc0, 0x2b, 0x36, 0xc9, 0x35, 0xf7, 0xf8, 0xf0, 0x0c, 0xdc, 0x1d, 0x6a, 0xd3, + 0x59, 0x5b, 0xe8, 0x89, 0xa1, 0x51, 0x75, 0x90, 0x0f, 0xba, 0xf3, 0x0c, 0x7a, 0x6a, 0x3f, 0xf3, + 0x0e, 0x65, 0x92, 0xfe, 0xab, 0x04, 0x33, 0xe1, 0xa4, 0xe1, 0x7e, 0xfb, 0x3b, 0x26, 0xb9, 0x78, + 0x7f, 0x88, 0x3a, 0x3c, 0xb9, 0x7e, 0x4b, 0x1a, 0x8c, 0x8f, 0x2c, 0xea, 0x3a, 0x52, 0x46, 0x9b, + 0xdc, 0xca, 0x9b, 0xe1, 0xfc, 0xdd, 0x3b, 0xe8, 0x7f, 0x24, 0x98, 0xeb, 0x48, 0x13, 0xee, 0x77, + 0xa6, 0xc5, 0x67, 0x14, 0xe7, 0x96, 0x04, 0x87, 0xf8, 0x21, 0xfd, 0x65, 0xa5, 0x65, 0x7b, 0xb7, + 0x42, 0x46, 0xec, 0xd9, 0x11, 0x66, 0xf9, 0x6c, 0x8d, 0xf6, 0x36, 0xc2, 0x69, 0xde, 0x73, 0xbe, + 0x41, 0x93, 0x64, 0xe7, 0xce, 0x75, 0xe4, 0x02, 0xf7, 0x9b, 0x79, 0x7c, 0xda, 0x70, 0xee, 0xc1, + 0x7e, 0x86, 0x2f, 0xa8, 0x2e, 0x1c, 0xc4, 0x21, 0x57, 0xfb, 0xce, 0x8a, 0x1b, 0x62, 0xde, 0x79, + 0x16, 0x3d, 0xb3, 0x9f, 0xd9, 0x33, 0x5e, 0x9e, 0x61, 0x48, 0x6c, 0x75, 0x24, 0x65, 0x01, 0x0d, + 0x08, 0x4a, 0x74, 0xe6, 0x89, 0xe6, 0x56, 0x86, 0xae, 0xcf, 0xb7, 0xed, 0xe7, 0xd9, 0xaa, 0x7f, + 0x52, 0x42, 0x2f, 0x0c, 0xb9, 0x71, 0xc3, 0x06, 0x2b, 0x80, 0xeb, 0x3b, 0x5b, 0xe8, 0xd2, 0x5d, + 0x44, 0xff, 0xe8, 0x67, 0x12, 0x30, 0x1d, 0x4a, 0x3d, 0x45, 0x8f, 0xf6, 0x5d, 0xed, 0x4e, 0xbf, + 0x71, 0x88, 0x6c, 0x0e, 0xf9, 0xab, 0x6c, 0xe6, 0xbf, 0x11, 0x99, 0xf9, 0x08, 0x9e, 0xd0, 0xce, + 0x6b, 0x68, 0xe7, 0x9d, 0xf3, 0x7b, 0xd0, 0x47, 0x13, 0x90, 0x8e, 0x66, 0x65, 0xf7, 0xb3, 0xe6, + 0xb1, 0xf9, 0xdb, 0xc3, 0x19, 0xb9, 0x5f, 0x67, 0xf2, 0xf8, 0x9c, 0x24, 0x1f, 0x4c, 0x13, 0xee, + 0x1a, 0x8e, 0x0b, 0xb7, 0x88, 0x3e, 0x91, 0x80, 0x74, 0x34, 0x97, 0xbb, 0x9f, 0x18, 0x62, 0xb3, + 0xbe, 0x87, 0x13, 0x83, 0xaf, 0x16, 0xe7, 0x0e, 0xaa, 0x16, 0xe7, 0xde, 0x49, 0xb5, 0xf8, 0x5e, + 0x02, 0x8e, 0xf6, 0xc8, 0xcb, 0x42, 0x7d, 0x22, 0xe3, 0xfd, 0x53, 0xb9, 0x86, 0x93, 0xd0, 0x1f, + 0x31, 0x09, 0x7d, 0x57, 0x92, 0x5f, 0x3a, 0x58, 0x08, 0xc1, 0xe1, 0x83, 0x21, 0x1a, 0xb3, 0x27, + 0xd7, 0xde, 0x39, 0x69, 0x85, 0x7b, 0x42, 0x7f, 0x9c, 0x80, 0x23, 0xb1, 0x69, 0x8a, 0xe8, 0xa9, + 0xa1, 0x22, 0x2f, 0x5d, 0x79, 0x8d, 0xc3, 0x49, 0xed, 0xcf, 0x99, 0xd4, 0xfe, 0x44, 0x0a, 0x6d, + 0x8d, 0x51, 0x03, 0x2f, 0xc1, 0x10, 0x88, 0xe8, 0x5a, 0xf2, 0xde, 0x3b, 0x18, 0x77, 0xe9, 0xec, + 0x0e, 0x7d, 0x2c, 0x01, 0x53, 0x7e, 0x6a, 0x12, 0x3a, 0x37, 0x7c, 0xfe, 0xd2, 0x70, 0x72, 0xfa, + 0x1a, 0x93, 0xd3, 0x6f, 0x4a, 0x72, 0x61, 0x24, 0x47, 0x22, 0x9a, 0xbc, 0x44, 0xe4, 0xb3, 0x2d, + 0x97, 0x0f, 0x2e, 0x1f, 0xa7, 0xb3, 0x59, 0x22, 0x87, 0xd9, 0x48, 0x96, 0xd3, 0x00, 0xc7, 0xaa, + 0x2b, 0x1d, 0xea, 0x70, 0x22, 0x2d, 0x41, 0xb7, 0x77, 0x2d, 0xd2, 0xd2, 0x0c, 0x37, 0x89, 0x7e, + 0x29, 0x41, 0xaf, 0xe5, 0xc3, 0x89, 0x54, 0x7d, 0x23, 0x2d, 0xb1, 0x39, 0x57, 0xc3, 0xc9, 0xe2, + 0x6d, 0x26, 0x8b, 0x2f, 0x49, 0x72, 0x7e, 0x04, 0x59, 0xd0, 0x8e, 0x6d, 0xd1, 0x31, 0x91, 0xc6, + 0x65, 0xf9, 0xe5, 0xbb, 0xe0, 0x66, 0x76, 0xb5, 0x8b, 0xbe, 0x98, 0x00, 0xd4, 0x9d, 0x9f, 0x85, + 0xfa, 0xfc, 0xdc, 0x54, 0xcf, 0x6c, 0xae, 0xe1, 0x04, 0xf3, 0x2d, 0x26, 0x98, 0xaf, 0x4a, 0xf2, + 0xda, 0xfe, 0x05, 0x53, 0x13, 0x7d, 0x47, 0x64, 0xf3, 0xaa, 0x5c, 0x3d, 0xb8, 0x6c, 0x62, 0x9b, + 0x46, 0x6f, 0xb3, 0xd8, 0x5c, 0x38, 0x4b, 0x7a, 0x40, 0x6c, 0x2e, 0x26, 0xa1, 0x7a, 0x38, 0xc1, + 0x7c, 0x9f, 0x09, 0xe6, 0xf7, 0x24, 0x59, 0x39, 0xb0, 0xd5, 0x25, 0x9d, 0x13, 0xc9, 0x34, 0xe4, + 0xdd, 0x77, 0xd6, 0xde, 0xf2, 0x8e, 0xd0, 0xe7, 0x58, 0x9e, 0x6a, 0xf4, 0x3f, 0x3d, 0x38, 0xdf, + 0x5f, 0x50, 0x31, 0xd9, 0x65, 0xc3, 0x49, 0xea, 0xeb, 0x4c, 0x52, 0x5f, 0x96, 0xe4, 0xd5, 0x91, + 0xec, 0x4c, 0xa4, 0x67, 0x22, 0xa6, 0x2b, 0xb2, 0x7a, 0x57, 0x62, 0x38, 0x9d, 0x0d, 0xa3, 0xaf, + 0x8a, 0x27, 0xf0, 0x9d, 0x59, 0x5b, 0x83, 0x1e, 0xa5, 0xc7, 0xa7, 0xa6, 0x0d, 0x27, 0x9e, 0x6f, + 0x33, 0xf1, 0x7c, 0x63, 0x04, 0xd0, 0xc3, 0x8f, 0xec, 0x8e, 0xde, 0x89, 0x88, 0x3e, 0x20, 0x5f, + 0xbe, 0x4b, 0x61, 0xae, 0xee, 0xc6, 0xd1, 0x5f, 0xf2, 0xfc, 0xb3, 0xae, 0x7c, 0x9b, 0x7e, 0x38, + 0xa7, 0x5f, 0xb6, 0x50, 0xee, 0xe9, 0x7d, 0xf3, 0x71, 0x27, 0x33, 0x4f, 0x65, 0xf7, 0x1c, 0x7a, + 0x6f, 0x1f, 0xc7, 0xe2, 0xce, 0x8a, 0xde, 0x68, 0x38, 0xb8, 0xa1, 0x7b, 0xb8, 0xbe, 0xd2, 0xee, + 0x1a, 0xf3, 0x97, 0x25, 0xe6, 0x1a, 0x07, 0xc1, 0xec, 0x01, 0xae, 0x71, 0x57, 0x34, 0x7b, 0x65, + 0xe8, 0xfa, 0x7c, 0xd4, 0xcb, 0x74, 0xd4, 0x67, 0xd1, 0x83, 0x7d, 0x47, 0xed, 0xaf, 0xf9, 0xea, + 0xf7, 0x25, 0x38, 0x51, 0xb3, 0x5a, 0x3d, 0xbb, 0x59, 0x5d, 0x28, 0x88, 0xff, 0xd0, 0x82, 0x5e, + 0xb8, 0x94, 0x1d, 0xcb, 0xb3, 0xca, 0xd2, 0x4e, 0x9e, 0x33, 0x34, 0xac, 0xa6, 0x6e, 0x36, 0x96, + 0x2d, 0xa7, 0xb1, 0xd2, 0xc0, 0x26, 0x8d, 0xce, 0xac, 0xb0, 0x22, 0xdd, 0x36, 0xdc, 0xee, 0xff, + 0x9b, 0xf1, 0x39, 0x9f, 0xf2, 0xcd, 0xc4, 0xa9, 0x75, 0xd6, 0x06, 0xfd, 0x8f, 0x66, 0x96, 0x0b, + 0x7e, 0xd7, 0x97, 0xcf, 0xaf, 0x92, 0xaa, 0x3f, 0x14, 0x15, 0x5e, 0xa3, 0x15, 0x5e, 0xf3, 0x2b, + 0xbc, 0x76, 0x99, 0xb5, 0xb5, 0x3b, 0x41, 0xfb, 0x7b, 0xe2, 0xff, 0x03, 0x00, 0x00, 0xff, 0xff, + 0x29, 0xa8, 0xb0, 0xd5, 0x0a, 0x72, 0x00, 0x00, } diff --git a/vendor/google.golang.org/genproto/googleapis/firestore/admin/v1/field.pb.go b/vendor/google.golang.org/genproto/googleapis/firestore/admin/v1/field.pb.go new file mode 100644 index 000000000..f8847277b --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/firestore/admin/v1/field.pb.go @@ -0,0 +1,213 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/firestore/admin/v1/field.proto + +package admin // import "google.golang.org/genproto/googleapis/firestore/admin/v1" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import _ "google.golang.org/genproto/googleapis/api/annotations" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Represents a single field in the database. +// +// Fields are grouped by their "Collection Group", which represent all +// collections in the database with the same id. +type Field struct { + // A field name of the form + // `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/fields/{field_path}` + // + // A field path may be a simple field name, e.g. `address` or a path to fields + // within map_value , e.g. `address.city`, + // or a special field path. The only valid special field is `*`, which + // represents any field. + // + // Field paths may be quoted using ` (backtick). The only character that needs + // to be escaped within a quoted field path is the backtick character itself, + // escaped using a backslash. Special characters in field paths that + // must be quoted include: `*`, `.`, + // ``` (backtick), `[`, `]`, as well as any ascii symbolic characters. + // + // Examples: + // (Note: Comments here are written in markdown syntax, so there is an + // additional layer of backticks to represent a code block) + // `\`address.city\`` represents a field named `address.city`, not the map key + // `city` in the field `address`. + // `\`*\`` represents a field named `*`, not any field. + // + // A special `Field` contains the default indexing settings for all fields. + // This field's resource name is: + // `projects/{project_id}/databases/{database_id}/collectionGroups/__default__/fields/*` + // Indexes defined on this `Field` will be applied to all fields which do not + // have their own `Field` index configuration. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // The index configuration for this field. If unset, field indexing will + // revert to the configuration defined by the `ancestor_field`. To + // explicitly remove all indexes for this field, specify an index config + // with an empty list of indexes. + IndexConfig *Field_IndexConfig `protobuf:"bytes,2,opt,name=index_config,json=indexConfig,proto3" json:"index_config,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Field) Reset() { *m = Field{} } +func (m *Field) String() string { return proto.CompactTextString(m) } +func (*Field) ProtoMessage() {} +func (*Field) Descriptor() ([]byte, []int) { + return fileDescriptor_field_2daa7c7b7ea5f26c, []int{0} +} +func (m *Field) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Field.Unmarshal(m, b) +} +func (m *Field) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Field.Marshal(b, m, deterministic) +} +func (dst *Field) XXX_Merge(src proto.Message) { + xxx_messageInfo_Field.Merge(dst, src) +} +func (m *Field) XXX_Size() int { + return xxx_messageInfo_Field.Size(m) +} +func (m *Field) XXX_DiscardUnknown() { + xxx_messageInfo_Field.DiscardUnknown(m) +} + +var xxx_messageInfo_Field proto.InternalMessageInfo + +func (m *Field) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *Field) GetIndexConfig() *Field_IndexConfig { + if m != nil { + return m.IndexConfig + } + return nil +} + +// The index configuration for this field. +type Field_IndexConfig struct { + // The indexes supported for this field. + Indexes []*Index `protobuf:"bytes,1,rep,name=indexes,proto3" json:"indexes,omitempty"` + // Output only. + // When true, the `Field`'s index configuration is set from the + // configuration specified by the `ancestor_field`. + // When false, the `Field`'s index configuration is defined explicitly. + UsesAncestorConfig bool `protobuf:"varint,2,opt,name=uses_ancestor_config,json=usesAncestorConfig,proto3" json:"uses_ancestor_config,omitempty"` + // Output only. + // Specifies the resource name of the `Field` from which this field's + // index configuration is set (when `uses_ancestor_config` is true), + // or from which it *would* be set if this field had no index configuration + // (when `uses_ancestor_config` is false). + AncestorField string `protobuf:"bytes,3,opt,name=ancestor_field,json=ancestorField,proto3" json:"ancestor_field,omitempty"` + // Output only + // When true, the `Field`'s index configuration is in the process of being + // reverted. Once complete, the index config will transition to the same + // state as the field specified by `ancestor_field`, at which point + // `uses_ancestor_config` will be `true` and `reverting` will be `false`. + Reverting bool `protobuf:"varint,4,opt,name=reverting,proto3" json:"reverting,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Field_IndexConfig) Reset() { *m = Field_IndexConfig{} } +func (m *Field_IndexConfig) String() string { return proto.CompactTextString(m) } +func (*Field_IndexConfig) ProtoMessage() {} +func (*Field_IndexConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_field_2daa7c7b7ea5f26c, []int{0, 0} +} +func (m *Field_IndexConfig) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Field_IndexConfig.Unmarshal(m, b) +} +func (m *Field_IndexConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Field_IndexConfig.Marshal(b, m, deterministic) +} +func (dst *Field_IndexConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_Field_IndexConfig.Merge(dst, src) +} +func (m *Field_IndexConfig) XXX_Size() int { + return xxx_messageInfo_Field_IndexConfig.Size(m) +} +func (m *Field_IndexConfig) XXX_DiscardUnknown() { + xxx_messageInfo_Field_IndexConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_Field_IndexConfig proto.InternalMessageInfo + +func (m *Field_IndexConfig) GetIndexes() []*Index { + if m != nil { + return m.Indexes + } + return nil +} + +func (m *Field_IndexConfig) GetUsesAncestorConfig() bool { + if m != nil { + return m.UsesAncestorConfig + } + return false +} + +func (m *Field_IndexConfig) GetAncestorField() string { + if m != nil { + return m.AncestorField + } + return "" +} + +func (m *Field_IndexConfig) GetReverting() bool { + if m != nil { + return m.Reverting + } + return false +} + +func init() { + proto.RegisterType((*Field)(nil), "google.firestore.admin.v1.Field") + proto.RegisterType((*Field_IndexConfig)(nil), "google.firestore.admin.v1.Field.IndexConfig") +} + +func init() { + proto.RegisterFile("google/firestore/admin/v1/field.proto", fileDescriptor_field_2daa7c7b7ea5f26c) +} + +var fileDescriptor_field_2daa7c7b7ea5f26c = []byte{ + // 352 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x91, 0x4f, 0x4b, 0xc3, 0x30, + 0x18, 0xc6, 0x49, 0x37, 0xff, 0x2c, 0x55, 0x0f, 0xc1, 0x43, 0x1d, 0x13, 0x8b, 0x30, 0xd8, 0x41, + 0x12, 0x3b, 0x6f, 0x0a, 0xc2, 0x36, 0xd8, 0xf0, 0xe4, 0xa8, 0xb0, 0x83, 0x14, 0x46, 0x5c, 0xb3, + 0x10, 0xe8, 0x92, 0xd1, 0x76, 0xc3, 0xcf, 0xe3, 0xd1, 0x8b, 0x57, 0x8f, 0x9e, 0xfd, 0x54, 0xd2, + 0xb7, 0x7f, 0xb6, 0x83, 0xdb, 0x2d, 0xcd, 0xf3, 0x7b, 0x9e, 0xe7, 0xed, 0x1b, 0xdc, 0x96, 0xc6, + 0xc8, 0x48, 0xb0, 0xb9, 0x8a, 0x45, 0x92, 0x9a, 0x58, 0x30, 0x1e, 0x2e, 0x94, 0x66, 0x6b, 0x8f, + 0xcd, 0x95, 0x88, 0x42, 0xba, 0x8c, 0x4d, 0x6a, 0xc8, 0x45, 0x8e, 0xd1, 0x0a, 0xa3, 0x80, 0xd1, + 0xb5, 0xd7, 0x6c, 0x15, 0x09, 0x7c, 0xa9, 0x18, 0xd7, 0xda, 0xa4, 0x3c, 0x55, 0x46, 0x27, 0xb9, + 0xb1, 0xb9, 0x27, 0x5f, 0xe9, 0x50, 0xbc, 0xe7, 0xd8, 0xf5, 0x97, 0x85, 0x0f, 0x86, 0x59, 0x1f, + 0x21, 0xb8, 0xae, 0xf9, 0x42, 0x38, 0xc8, 0x45, 0x9d, 0x86, 0x0f, 0x67, 0xf2, 0x8c, 0x4f, 0x00, + 0x9e, 0xce, 0x8c, 0x9e, 0x2b, 0xe9, 0x58, 0x2e, 0xea, 0xd8, 0xdd, 0x1b, 0xba, 0x73, 0x28, 0x0a, + 0x59, 0xf4, 0x29, 0x33, 0x0d, 0xc0, 0xe3, 0xdb, 0x6a, 0xf3, 0xd1, 0xfc, 0x41, 0xd8, 0xde, 0x12, + 0xc9, 0x3d, 0x3e, 0x02, 0x59, 0x24, 0x0e, 0x72, 0x6b, 0x1d, 0xbb, 0xeb, 0xee, 0xc9, 0x06, 0xa3, + 0x5f, 0x1a, 0xc8, 0x2d, 0x3e, 0x5f, 0x25, 0x22, 0x99, 0x72, 0x3d, 0x03, 0x72, 0x7b, 0xc8, 0x63, + 0x9f, 0x64, 0x5a, 0xaf, 0x90, 0x8a, 0xb6, 0x36, 0x3e, 0xab, 0x60, 0x58, 0xb2, 0x53, 0x83, 0x9f, + 0x3d, 0x2d, 0x6f, 0xf3, 0x4d, 0xb4, 0x70, 0x23, 0x16, 0x6b, 0x11, 0xa7, 0x4a, 0x4b, 0xa7, 0x0e, + 0x69, 0x9b, 0x8b, 0xfe, 0x37, 0xc2, 0x97, 0x33, 0xb3, 0xd8, 0x3d, 0x67, 0x1f, 0x43, 0xcc, 0x38, + 0xdb, 0xef, 0x18, 0xbd, 0x3e, 0x16, 0xa0, 0x34, 0x11, 0xd7, 0x92, 0x9a, 0x58, 0x32, 0x29, 0x34, + 0x6c, 0x9f, 0xe5, 0x12, 0x5f, 0xaa, 0xe4, 0x9f, 0x77, 0x7a, 0x80, 0xc3, 0x87, 0x55, 0x1f, 0x0d, + 0x86, 0x2f, 0x9f, 0xd6, 0xd5, 0x28, 0xcf, 0x19, 0x44, 0x66, 0x15, 0xd2, 0x61, 0x55, 0xdb, 0x83, + 0xda, 0x89, 0xf7, 0x5b, 0x12, 0x01, 0x10, 0x41, 0x45, 0x04, 0x40, 0x04, 0x13, 0xef, 0xed, 0x10, + 0x5a, 0xef, 0xfe, 0x02, 0x00, 0x00, 0xff, 0xff, 0x51, 0x20, 0x00, 0xc1, 0x7c, 0x02, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/firestore/admin/v1/firestore_admin.pb.go b/vendor/google.golang.org/genproto/googleapis/firestore/admin/v1/firestore_admin.pb.go new file mode 100644 index 000000000..d29b27f7e --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/firestore/admin/v1/firestore_admin.pb.go @@ -0,0 +1,1120 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/firestore/admin/v1/firestore_admin.proto + +package admin // import "google.golang.org/genproto/googleapis/firestore/admin/v1" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import empty "github.com/golang/protobuf/ptypes/empty" +import _ "google.golang.org/genproto/googleapis/api/annotations" +import longrunning "google.golang.org/genproto/googleapis/longrunning" +import field_mask "google.golang.org/genproto/protobuf/field_mask" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// The request for [FirestoreAdmin.CreateIndex][google.firestore.admin.v1.FirestoreAdmin.CreateIndex]. +type CreateIndexRequest struct { + // A parent name of the form + // `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}` + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // The composite index to create. + Index *Index `protobuf:"bytes,2,opt,name=index,proto3" json:"index,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CreateIndexRequest) Reset() { *m = CreateIndexRequest{} } +func (m *CreateIndexRequest) String() string { return proto.CompactTextString(m) } +func (*CreateIndexRequest) ProtoMessage() {} +func (*CreateIndexRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_firestore_admin_6ab33a8108b74d94, []int{0} +} +func (m *CreateIndexRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreateIndexRequest.Unmarshal(m, b) +} +func (m *CreateIndexRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreateIndexRequest.Marshal(b, m, deterministic) +} +func (dst *CreateIndexRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateIndexRequest.Merge(dst, src) +} +func (m *CreateIndexRequest) XXX_Size() int { + return xxx_messageInfo_CreateIndexRequest.Size(m) +} +func (m *CreateIndexRequest) XXX_DiscardUnknown() { + xxx_messageInfo_CreateIndexRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_CreateIndexRequest proto.InternalMessageInfo + +func (m *CreateIndexRequest) GetParent() string { + if m != nil { + return m.Parent + } + return "" +} + +func (m *CreateIndexRequest) GetIndex() *Index { + if m != nil { + return m.Index + } + return nil +} + +// The request for [FirestoreAdmin.ListIndexes][google.firestore.admin.v1.FirestoreAdmin.ListIndexes]. +type ListIndexesRequest struct { + // A parent name of the form + // `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}` + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // The filter to apply to list results. + Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"` + // The number of results to return. + PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A page token, returned from a previous call to + // [FirestoreAdmin.ListIndexes][google.firestore.admin.v1.FirestoreAdmin.ListIndexes], that may be used to get the next + // page of results. + PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListIndexesRequest) Reset() { *m = ListIndexesRequest{} } +func (m *ListIndexesRequest) String() string { return proto.CompactTextString(m) } +func (*ListIndexesRequest) ProtoMessage() {} +func (*ListIndexesRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_firestore_admin_6ab33a8108b74d94, []int{1} +} +func (m *ListIndexesRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListIndexesRequest.Unmarshal(m, b) +} +func (m *ListIndexesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListIndexesRequest.Marshal(b, m, deterministic) +} +func (dst *ListIndexesRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListIndexesRequest.Merge(dst, src) +} +func (m *ListIndexesRequest) XXX_Size() int { + return xxx_messageInfo_ListIndexesRequest.Size(m) +} +func (m *ListIndexesRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ListIndexesRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ListIndexesRequest proto.InternalMessageInfo + +func (m *ListIndexesRequest) GetParent() string { + if m != nil { + return m.Parent + } + return "" +} + +func (m *ListIndexesRequest) GetFilter() string { + if m != nil { + return m.Filter + } + return "" +} + +func (m *ListIndexesRequest) GetPageSize() int32 { + if m != nil { + return m.PageSize + } + return 0 +} + +func (m *ListIndexesRequest) GetPageToken() string { + if m != nil { + return m.PageToken + } + return "" +} + +// The response for [FirestoreAdmin.ListIndexes][google.firestore.admin.v1.FirestoreAdmin.ListIndexes]. +type ListIndexesResponse struct { + // The requested indexes. + Indexes []*Index `protobuf:"bytes,1,rep,name=indexes,proto3" json:"indexes,omitempty"` + // A page token that may be used to request another page of results. If blank, + // this is the last page. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListIndexesResponse) Reset() { *m = ListIndexesResponse{} } +func (m *ListIndexesResponse) String() string { return proto.CompactTextString(m) } +func (*ListIndexesResponse) ProtoMessage() {} +func (*ListIndexesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_firestore_admin_6ab33a8108b74d94, []int{2} +} +func (m *ListIndexesResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListIndexesResponse.Unmarshal(m, b) +} +func (m *ListIndexesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListIndexesResponse.Marshal(b, m, deterministic) +} +func (dst *ListIndexesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListIndexesResponse.Merge(dst, src) +} +func (m *ListIndexesResponse) XXX_Size() int { + return xxx_messageInfo_ListIndexesResponse.Size(m) +} +func (m *ListIndexesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ListIndexesResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ListIndexesResponse proto.InternalMessageInfo + +func (m *ListIndexesResponse) GetIndexes() []*Index { + if m != nil { + return m.Indexes + } + return nil +} + +func (m *ListIndexesResponse) GetNextPageToken() string { + if m != nil { + return m.NextPageToken + } + return "" +} + +// The request for [FirestoreAdmin.GetIndex][google.firestore.admin.v1.FirestoreAdmin.GetIndex]. +type GetIndexRequest struct { + // A name of the form + // `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{index_id}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetIndexRequest) Reset() { *m = GetIndexRequest{} } +func (m *GetIndexRequest) String() string { return proto.CompactTextString(m) } +func (*GetIndexRequest) ProtoMessage() {} +func (*GetIndexRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_firestore_admin_6ab33a8108b74d94, []int{3} +} +func (m *GetIndexRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetIndexRequest.Unmarshal(m, b) +} +func (m *GetIndexRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetIndexRequest.Marshal(b, m, deterministic) +} +func (dst *GetIndexRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetIndexRequest.Merge(dst, src) +} +func (m *GetIndexRequest) XXX_Size() int { + return xxx_messageInfo_GetIndexRequest.Size(m) +} +func (m *GetIndexRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetIndexRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetIndexRequest proto.InternalMessageInfo + +func (m *GetIndexRequest) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +// The request for [FirestoreAdmin.DeleteIndex][google.firestore.admin.v1.FirestoreAdmin.DeleteIndex]. +type DeleteIndexRequest struct { + // A name of the form + // `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{index_id}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DeleteIndexRequest) Reset() { *m = DeleteIndexRequest{} } +func (m *DeleteIndexRequest) String() string { return proto.CompactTextString(m) } +func (*DeleteIndexRequest) ProtoMessage() {} +func (*DeleteIndexRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_firestore_admin_6ab33a8108b74d94, []int{4} +} +func (m *DeleteIndexRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteIndexRequest.Unmarshal(m, b) +} +func (m *DeleteIndexRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteIndexRequest.Marshal(b, m, deterministic) +} +func (dst *DeleteIndexRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteIndexRequest.Merge(dst, src) +} +func (m *DeleteIndexRequest) XXX_Size() int { + return xxx_messageInfo_DeleteIndexRequest.Size(m) +} +func (m *DeleteIndexRequest) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteIndexRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_DeleteIndexRequest proto.InternalMessageInfo + +func (m *DeleteIndexRequest) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +// The request for [FirestoreAdmin.UpdateField][google.firestore.admin.v1.FirestoreAdmin.UpdateField]. +type UpdateFieldRequest struct { + // The field to be updated. + Field *Field `protobuf:"bytes,1,opt,name=field,proto3" json:"field,omitempty"` + // A mask, relative to the field. If specified, only configuration specified + // by this field_mask will be updated in the field. + UpdateMask *field_mask.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UpdateFieldRequest) Reset() { *m = UpdateFieldRequest{} } +func (m *UpdateFieldRequest) String() string { return proto.CompactTextString(m) } +func (*UpdateFieldRequest) ProtoMessage() {} +func (*UpdateFieldRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_firestore_admin_6ab33a8108b74d94, []int{5} +} +func (m *UpdateFieldRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UpdateFieldRequest.Unmarshal(m, b) +} +func (m *UpdateFieldRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UpdateFieldRequest.Marshal(b, m, deterministic) +} +func (dst *UpdateFieldRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_UpdateFieldRequest.Merge(dst, src) +} +func (m *UpdateFieldRequest) XXX_Size() int { + return xxx_messageInfo_UpdateFieldRequest.Size(m) +} +func (m *UpdateFieldRequest) XXX_DiscardUnknown() { + xxx_messageInfo_UpdateFieldRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_UpdateFieldRequest proto.InternalMessageInfo + +func (m *UpdateFieldRequest) GetField() *Field { + if m != nil { + return m.Field + } + return nil +} + +func (m *UpdateFieldRequest) GetUpdateMask() *field_mask.FieldMask { + if m != nil { + return m.UpdateMask + } + return nil +} + +// The request for [FirestoreAdmin.GetField][google.firestore.admin.v1.FirestoreAdmin.GetField]. +type GetFieldRequest struct { + // A name of the form + // `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/fields/{field_id}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetFieldRequest) Reset() { *m = GetFieldRequest{} } +func (m *GetFieldRequest) String() string { return proto.CompactTextString(m) } +func (*GetFieldRequest) ProtoMessage() {} +func (*GetFieldRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_firestore_admin_6ab33a8108b74d94, []int{6} +} +func (m *GetFieldRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetFieldRequest.Unmarshal(m, b) +} +func (m *GetFieldRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetFieldRequest.Marshal(b, m, deterministic) +} +func (dst *GetFieldRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetFieldRequest.Merge(dst, src) +} +func (m *GetFieldRequest) XXX_Size() int { + return xxx_messageInfo_GetFieldRequest.Size(m) +} +func (m *GetFieldRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetFieldRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetFieldRequest proto.InternalMessageInfo + +func (m *GetFieldRequest) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +// The request for [FirestoreAdmin.ListFields][google.firestore.admin.v1.FirestoreAdmin.ListFields]. +type ListFieldsRequest struct { + // A parent name of the form + // `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}` + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // The filter to apply to list results. Currently, + // [FirestoreAdmin.ListFields][google.firestore.admin.v1.FirestoreAdmin.ListFields] only supports listing fields + // that have been explicitly overridden. To issue this query, call + // [FirestoreAdmin.ListFields][google.firestore.admin.v1.FirestoreAdmin.ListFields] with the filter set to + // `indexConfig.usesAncestorConfig:false`. + Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"` + // The number of results to return. + PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A page token, returned from a previous call to + // [FirestoreAdmin.ListFields][google.firestore.admin.v1.FirestoreAdmin.ListFields], that may be used to get the next + // page of results. + PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListFieldsRequest) Reset() { *m = ListFieldsRequest{} } +func (m *ListFieldsRequest) String() string { return proto.CompactTextString(m) } +func (*ListFieldsRequest) ProtoMessage() {} +func (*ListFieldsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_firestore_admin_6ab33a8108b74d94, []int{7} +} +func (m *ListFieldsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListFieldsRequest.Unmarshal(m, b) +} +func (m *ListFieldsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListFieldsRequest.Marshal(b, m, deterministic) +} +func (dst *ListFieldsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListFieldsRequest.Merge(dst, src) +} +func (m *ListFieldsRequest) XXX_Size() int { + return xxx_messageInfo_ListFieldsRequest.Size(m) +} +func (m *ListFieldsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ListFieldsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ListFieldsRequest proto.InternalMessageInfo + +func (m *ListFieldsRequest) GetParent() string { + if m != nil { + return m.Parent + } + return "" +} + +func (m *ListFieldsRequest) GetFilter() string { + if m != nil { + return m.Filter + } + return "" +} + +func (m *ListFieldsRequest) GetPageSize() int32 { + if m != nil { + return m.PageSize + } + return 0 +} + +func (m *ListFieldsRequest) GetPageToken() string { + if m != nil { + return m.PageToken + } + return "" +} + +// The response for [FirestoreAdmin.ListFields][google.firestore.admin.v1.FirestoreAdmin.ListFields]. +type ListFieldsResponse struct { + // The requested fields. + Fields []*Field `protobuf:"bytes,1,rep,name=fields,proto3" json:"fields,omitempty"` + // A page token that may be used to request another page of results. If blank, + // this is the last page. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListFieldsResponse) Reset() { *m = ListFieldsResponse{} } +func (m *ListFieldsResponse) String() string { return proto.CompactTextString(m) } +func (*ListFieldsResponse) ProtoMessage() {} +func (*ListFieldsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_firestore_admin_6ab33a8108b74d94, []int{8} +} +func (m *ListFieldsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListFieldsResponse.Unmarshal(m, b) +} +func (m *ListFieldsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListFieldsResponse.Marshal(b, m, deterministic) +} +func (dst *ListFieldsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListFieldsResponse.Merge(dst, src) +} +func (m *ListFieldsResponse) XXX_Size() int { + return xxx_messageInfo_ListFieldsResponse.Size(m) +} +func (m *ListFieldsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ListFieldsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ListFieldsResponse proto.InternalMessageInfo + +func (m *ListFieldsResponse) GetFields() []*Field { + if m != nil { + return m.Fields + } + return nil +} + +func (m *ListFieldsResponse) GetNextPageToken() string { + if m != nil { + return m.NextPageToken + } + return "" +} + +// The request for [FirestoreAdmin.ExportDocuments][google.firestore.admin.v1.FirestoreAdmin.ExportDocuments]. +type ExportDocumentsRequest struct { + // Database to export. Should be of the form: + // `projects/{project_id}/databases/{database_id}`. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Which collection ids to export. Unspecified means all collections. + CollectionIds []string `protobuf:"bytes,2,rep,name=collection_ids,json=collectionIds,proto3" json:"collection_ids,omitempty"` + // The output URI. Currently only supports Google Cloud Storage URIs of the + // form: `gs://BUCKET_NAME[/NAMESPACE_PATH]`, where `BUCKET_NAME` is the name + // of the Google Cloud Storage bucket and `NAMESPACE_PATH` is an optional + // Google Cloud Storage namespace path. When + // choosing a name, be sure to consider Google Cloud Storage naming + // guidelines: https://cloud.google.com/storage/docs/naming. + // If the URI is a bucket (without a namespace path), a prefix will be + // generated based on the start time. + OutputUriPrefix string `protobuf:"bytes,3,opt,name=output_uri_prefix,json=outputUriPrefix,proto3" json:"output_uri_prefix,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ExportDocumentsRequest) Reset() { *m = ExportDocumentsRequest{} } +func (m *ExportDocumentsRequest) String() string { return proto.CompactTextString(m) } +func (*ExportDocumentsRequest) ProtoMessage() {} +func (*ExportDocumentsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_firestore_admin_6ab33a8108b74d94, []int{9} +} +func (m *ExportDocumentsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ExportDocumentsRequest.Unmarshal(m, b) +} +func (m *ExportDocumentsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ExportDocumentsRequest.Marshal(b, m, deterministic) +} +func (dst *ExportDocumentsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ExportDocumentsRequest.Merge(dst, src) +} +func (m *ExportDocumentsRequest) XXX_Size() int { + return xxx_messageInfo_ExportDocumentsRequest.Size(m) +} +func (m *ExportDocumentsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ExportDocumentsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ExportDocumentsRequest proto.InternalMessageInfo + +func (m *ExportDocumentsRequest) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *ExportDocumentsRequest) GetCollectionIds() []string { + if m != nil { + return m.CollectionIds + } + return nil +} + +func (m *ExportDocumentsRequest) GetOutputUriPrefix() string { + if m != nil { + return m.OutputUriPrefix + } + return "" +} + +// The request for [FirestoreAdmin.ImportDocuments][google.firestore.admin.v1.FirestoreAdmin.ImportDocuments]. +type ImportDocumentsRequest struct { + // Database to import into. Should be of the form: + // `projects/{project_id}/databases/{database_id}`. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Which collection ids to import. Unspecified means all collections included + // in the import. + CollectionIds []string `protobuf:"bytes,2,rep,name=collection_ids,json=collectionIds,proto3" json:"collection_ids,omitempty"` + // Location of the exported files. + // This must match the output_uri_prefix of an ExportDocumentsResponse from + // an export that has completed successfully. + // See: + // [google.firestore.admin.v1.ExportDocumentsResponse.output_uri_prefix][google.firestore.admin.v1.ExportDocumentsResponse.output_uri_prefix]. + InputUriPrefix string `protobuf:"bytes,3,opt,name=input_uri_prefix,json=inputUriPrefix,proto3" json:"input_uri_prefix,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ImportDocumentsRequest) Reset() { *m = ImportDocumentsRequest{} } +func (m *ImportDocumentsRequest) String() string { return proto.CompactTextString(m) } +func (*ImportDocumentsRequest) ProtoMessage() {} +func (*ImportDocumentsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_firestore_admin_6ab33a8108b74d94, []int{10} +} +func (m *ImportDocumentsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ImportDocumentsRequest.Unmarshal(m, b) +} +func (m *ImportDocumentsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ImportDocumentsRequest.Marshal(b, m, deterministic) +} +func (dst *ImportDocumentsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ImportDocumentsRequest.Merge(dst, src) +} +func (m *ImportDocumentsRequest) XXX_Size() int { + return xxx_messageInfo_ImportDocumentsRequest.Size(m) +} +func (m *ImportDocumentsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ImportDocumentsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ImportDocumentsRequest proto.InternalMessageInfo + +func (m *ImportDocumentsRequest) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *ImportDocumentsRequest) GetCollectionIds() []string { + if m != nil { + return m.CollectionIds + } + return nil +} + +func (m *ImportDocumentsRequest) GetInputUriPrefix() string { + if m != nil { + return m.InputUriPrefix + } + return "" +} + +func init() { + proto.RegisterType((*CreateIndexRequest)(nil), "google.firestore.admin.v1.CreateIndexRequest") + proto.RegisterType((*ListIndexesRequest)(nil), "google.firestore.admin.v1.ListIndexesRequest") + proto.RegisterType((*ListIndexesResponse)(nil), "google.firestore.admin.v1.ListIndexesResponse") + proto.RegisterType((*GetIndexRequest)(nil), "google.firestore.admin.v1.GetIndexRequest") + proto.RegisterType((*DeleteIndexRequest)(nil), "google.firestore.admin.v1.DeleteIndexRequest") + proto.RegisterType((*UpdateFieldRequest)(nil), "google.firestore.admin.v1.UpdateFieldRequest") + proto.RegisterType((*GetFieldRequest)(nil), "google.firestore.admin.v1.GetFieldRequest") + proto.RegisterType((*ListFieldsRequest)(nil), "google.firestore.admin.v1.ListFieldsRequest") + proto.RegisterType((*ListFieldsResponse)(nil), "google.firestore.admin.v1.ListFieldsResponse") + proto.RegisterType((*ExportDocumentsRequest)(nil), "google.firestore.admin.v1.ExportDocumentsRequest") + proto.RegisterType((*ImportDocumentsRequest)(nil), "google.firestore.admin.v1.ImportDocumentsRequest") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// FirestoreAdminClient is the client API for FirestoreAdmin service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type FirestoreAdminClient interface { + // Creates a composite index. This returns a [google.longrunning.Operation][google.longrunning.Operation] + // which may be used to track the status of the creation. The metadata for + // the operation will be the type [IndexOperationMetadata][google.firestore.admin.v1.IndexOperationMetadata]. + CreateIndex(ctx context.Context, in *CreateIndexRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) + // Lists composite indexes. + ListIndexes(ctx context.Context, in *ListIndexesRequest, opts ...grpc.CallOption) (*ListIndexesResponse, error) + // Gets a composite index. + GetIndex(ctx context.Context, in *GetIndexRequest, opts ...grpc.CallOption) (*Index, error) + // Deletes a composite index. + DeleteIndex(ctx context.Context, in *DeleteIndexRequest, opts ...grpc.CallOption) (*empty.Empty, error) + // Gets the metadata and configuration for a Field. + GetField(ctx context.Context, in *GetFieldRequest, opts ...grpc.CallOption) (*Field, error) + // Updates a field configuration. Currently, field updates apply only to + // single field index configuration. However, calls to + // [FirestoreAdmin.UpdateField][google.firestore.admin.v1.FirestoreAdmin.UpdateField] should provide a field mask to avoid + // changing any configuration that the caller isn't aware of. The field mask + // should be specified as: `{ paths: "index_config" }`. + // + // This call returns a [google.longrunning.Operation][google.longrunning.Operation] which may be used to + // track the status of the field update. The metadata for + // the operation will be the type [FieldOperationMetadata][google.firestore.admin.v1.FieldOperationMetadata]. + // + // To configure the default field settings for the database, use + // the special `Field` with resource name: + // `projects/{project_id}/databases/{database_id}/collectionGroups/__default__/fields/*`. + UpdateField(ctx context.Context, in *UpdateFieldRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) + // Lists the field configuration and metadata for this database. + // + // Currently, [FirestoreAdmin.ListFields][google.firestore.admin.v1.FirestoreAdmin.ListFields] only supports listing fields + // that have been explicitly overridden. To issue this query, call + // [FirestoreAdmin.ListFields][google.firestore.admin.v1.FirestoreAdmin.ListFields] with the filter set to + // `indexConfig.usesAncestorConfig:false`. + ListFields(ctx context.Context, in *ListFieldsRequest, opts ...grpc.CallOption) (*ListFieldsResponse, error) + // Exports a copy of all or a subset of documents from Google Cloud Firestore + // to another storage system, such as Google Cloud Storage. Recent updates to + // documents may not be reflected in the export. The export occurs in the + // background and its progress can be monitored and managed via the + // Operation resource that is created. The output of an export may only be + // used once the associated operation is done. If an export operation is + // cancelled before completion it may leave partial data behind in Google + // Cloud Storage. + ExportDocuments(ctx context.Context, in *ExportDocumentsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) + // Imports documents into Google Cloud Firestore. Existing documents with the + // same name are overwritten. The import occurs in the background and its + // progress can be monitored and managed via the Operation resource that is + // created. If an ImportDocuments operation is cancelled, it is possible + // that a subset of the data has already been imported to Cloud Firestore. + ImportDocuments(ctx context.Context, in *ImportDocumentsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) +} + +type firestoreAdminClient struct { + cc *grpc.ClientConn +} + +func NewFirestoreAdminClient(cc *grpc.ClientConn) FirestoreAdminClient { + return &firestoreAdminClient{cc} +} + +func (c *firestoreAdminClient) CreateIndex(ctx context.Context, in *CreateIndexRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { + out := new(longrunning.Operation) + err := c.cc.Invoke(ctx, "/google.firestore.admin.v1.FirestoreAdmin/CreateIndex", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *firestoreAdminClient) ListIndexes(ctx context.Context, in *ListIndexesRequest, opts ...grpc.CallOption) (*ListIndexesResponse, error) { + out := new(ListIndexesResponse) + err := c.cc.Invoke(ctx, "/google.firestore.admin.v1.FirestoreAdmin/ListIndexes", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *firestoreAdminClient) GetIndex(ctx context.Context, in *GetIndexRequest, opts ...grpc.CallOption) (*Index, error) { + out := new(Index) + err := c.cc.Invoke(ctx, "/google.firestore.admin.v1.FirestoreAdmin/GetIndex", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *firestoreAdminClient) DeleteIndex(ctx context.Context, in *DeleteIndexRequest, opts ...grpc.CallOption) (*empty.Empty, error) { + out := new(empty.Empty) + err := c.cc.Invoke(ctx, "/google.firestore.admin.v1.FirestoreAdmin/DeleteIndex", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *firestoreAdminClient) GetField(ctx context.Context, in *GetFieldRequest, opts ...grpc.CallOption) (*Field, error) { + out := new(Field) + err := c.cc.Invoke(ctx, "/google.firestore.admin.v1.FirestoreAdmin/GetField", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *firestoreAdminClient) UpdateField(ctx context.Context, in *UpdateFieldRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { + out := new(longrunning.Operation) + err := c.cc.Invoke(ctx, "/google.firestore.admin.v1.FirestoreAdmin/UpdateField", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *firestoreAdminClient) ListFields(ctx context.Context, in *ListFieldsRequest, opts ...grpc.CallOption) (*ListFieldsResponse, error) { + out := new(ListFieldsResponse) + err := c.cc.Invoke(ctx, "/google.firestore.admin.v1.FirestoreAdmin/ListFields", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *firestoreAdminClient) ExportDocuments(ctx context.Context, in *ExportDocumentsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { + out := new(longrunning.Operation) + err := c.cc.Invoke(ctx, "/google.firestore.admin.v1.FirestoreAdmin/ExportDocuments", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *firestoreAdminClient) ImportDocuments(ctx context.Context, in *ImportDocumentsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { + out := new(longrunning.Operation) + err := c.cc.Invoke(ctx, "/google.firestore.admin.v1.FirestoreAdmin/ImportDocuments", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// FirestoreAdminServer is the server API for FirestoreAdmin service. +type FirestoreAdminServer interface { + // Creates a composite index. This returns a [google.longrunning.Operation][google.longrunning.Operation] + // which may be used to track the status of the creation. The metadata for + // the operation will be the type [IndexOperationMetadata][google.firestore.admin.v1.IndexOperationMetadata]. + CreateIndex(context.Context, *CreateIndexRequest) (*longrunning.Operation, error) + // Lists composite indexes. + ListIndexes(context.Context, *ListIndexesRequest) (*ListIndexesResponse, error) + // Gets a composite index. + GetIndex(context.Context, *GetIndexRequest) (*Index, error) + // Deletes a composite index. + DeleteIndex(context.Context, *DeleteIndexRequest) (*empty.Empty, error) + // Gets the metadata and configuration for a Field. + GetField(context.Context, *GetFieldRequest) (*Field, error) + // Updates a field configuration. Currently, field updates apply only to + // single field index configuration. However, calls to + // [FirestoreAdmin.UpdateField][google.firestore.admin.v1.FirestoreAdmin.UpdateField] should provide a field mask to avoid + // changing any configuration that the caller isn't aware of. The field mask + // should be specified as: `{ paths: "index_config" }`. + // + // This call returns a [google.longrunning.Operation][google.longrunning.Operation] which may be used to + // track the status of the field update. The metadata for + // the operation will be the type [FieldOperationMetadata][google.firestore.admin.v1.FieldOperationMetadata]. + // + // To configure the default field settings for the database, use + // the special `Field` with resource name: + // `projects/{project_id}/databases/{database_id}/collectionGroups/__default__/fields/*`. + UpdateField(context.Context, *UpdateFieldRequest) (*longrunning.Operation, error) + // Lists the field configuration and metadata for this database. + // + // Currently, [FirestoreAdmin.ListFields][google.firestore.admin.v1.FirestoreAdmin.ListFields] only supports listing fields + // that have been explicitly overridden. To issue this query, call + // [FirestoreAdmin.ListFields][google.firestore.admin.v1.FirestoreAdmin.ListFields] with the filter set to + // `indexConfig.usesAncestorConfig:false`. + ListFields(context.Context, *ListFieldsRequest) (*ListFieldsResponse, error) + // Exports a copy of all or a subset of documents from Google Cloud Firestore + // to another storage system, such as Google Cloud Storage. Recent updates to + // documents may not be reflected in the export. The export occurs in the + // background and its progress can be monitored and managed via the + // Operation resource that is created. The output of an export may only be + // used once the associated operation is done. If an export operation is + // cancelled before completion it may leave partial data behind in Google + // Cloud Storage. + ExportDocuments(context.Context, *ExportDocumentsRequest) (*longrunning.Operation, error) + // Imports documents into Google Cloud Firestore. Existing documents with the + // same name are overwritten. The import occurs in the background and its + // progress can be monitored and managed via the Operation resource that is + // created. If an ImportDocuments operation is cancelled, it is possible + // that a subset of the data has already been imported to Cloud Firestore. + ImportDocuments(context.Context, *ImportDocumentsRequest) (*longrunning.Operation, error) +} + +func RegisterFirestoreAdminServer(s *grpc.Server, srv FirestoreAdminServer) { + s.RegisterService(&_FirestoreAdmin_serviceDesc, srv) +} + +func _FirestoreAdmin_CreateIndex_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateIndexRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FirestoreAdminServer).CreateIndex(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.firestore.admin.v1.FirestoreAdmin/CreateIndex", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FirestoreAdminServer).CreateIndex(ctx, req.(*CreateIndexRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FirestoreAdmin_ListIndexes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListIndexesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FirestoreAdminServer).ListIndexes(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.firestore.admin.v1.FirestoreAdmin/ListIndexes", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FirestoreAdminServer).ListIndexes(ctx, req.(*ListIndexesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FirestoreAdmin_GetIndex_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetIndexRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FirestoreAdminServer).GetIndex(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.firestore.admin.v1.FirestoreAdmin/GetIndex", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FirestoreAdminServer).GetIndex(ctx, req.(*GetIndexRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FirestoreAdmin_DeleteIndex_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteIndexRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FirestoreAdminServer).DeleteIndex(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.firestore.admin.v1.FirestoreAdmin/DeleteIndex", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FirestoreAdminServer).DeleteIndex(ctx, req.(*DeleteIndexRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FirestoreAdmin_GetField_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetFieldRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FirestoreAdminServer).GetField(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.firestore.admin.v1.FirestoreAdmin/GetField", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FirestoreAdminServer).GetField(ctx, req.(*GetFieldRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FirestoreAdmin_UpdateField_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateFieldRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FirestoreAdminServer).UpdateField(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.firestore.admin.v1.FirestoreAdmin/UpdateField", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FirestoreAdminServer).UpdateField(ctx, req.(*UpdateFieldRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FirestoreAdmin_ListFields_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListFieldsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FirestoreAdminServer).ListFields(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.firestore.admin.v1.FirestoreAdmin/ListFields", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FirestoreAdminServer).ListFields(ctx, req.(*ListFieldsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FirestoreAdmin_ExportDocuments_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ExportDocumentsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FirestoreAdminServer).ExportDocuments(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.firestore.admin.v1.FirestoreAdmin/ExportDocuments", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FirestoreAdminServer).ExportDocuments(ctx, req.(*ExportDocumentsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FirestoreAdmin_ImportDocuments_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ImportDocumentsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FirestoreAdminServer).ImportDocuments(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.firestore.admin.v1.FirestoreAdmin/ImportDocuments", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FirestoreAdminServer).ImportDocuments(ctx, req.(*ImportDocumentsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _FirestoreAdmin_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.firestore.admin.v1.FirestoreAdmin", + HandlerType: (*FirestoreAdminServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "CreateIndex", + Handler: _FirestoreAdmin_CreateIndex_Handler, + }, + { + MethodName: "ListIndexes", + Handler: _FirestoreAdmin_ListIndexes_Handler, + }, + { + MethodName: "GetIndex", + Handler: _FirestoreAdmin_GetIndex_Handler, + }, + { + MethodName: "DeleteIndex", + Handler: _FirestoreAdmin_DeleteIndex_Handler, + }, + { + MethodName: "GetField", + Handler: _FirestoreAdmin_GetField_Handler, + }, + { + MethodName: "UpdateField", + Handler: _FirestoreAdmin_UpdateField_Handler, + }, + { + MethodName: "ListFields", + Handler: _FirestoreAdmin_ListFields_Handler, + }, + { + MethodName: "ExportDocuments", + Handler: _FirestoreAdmin_ExportDocuments_Handler, + }, + { + MethodName: "ImportDocuments", + Handler: _FirestoreAdmin_ImportDocuments_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/firestore/admin/v1/firestore_admin.proto", +} + +func init() { + proto.RegisterFile("google/firestore/admin/v1/firestore_admin.proto", fileDescriptor_firestore_admin_6ab33a8108b74d94) +} + +var fileDescriptor_firestore_admin_6ab33a8108b74d94 = []byte{ + // 944 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x56, 0x4b, 0x6f, 0x1c, 0x45, + 0x10, 0x56, 0xaf, 0x1f, 0xc4, 0xb5, 0x60, 0x93, 0x8e, 0xb4, 0x5a, 0x26, 0x58, 0xac, 0x06, 0x19, + 0xad, 0x56, 0x64, 0x46, 0x6b, 0x24, 0x0b, 0x6d, 0x48, 0x80, 0x38, 0xf6, 0xca, 0x52, 0x22, 0xac, + 0x0d, 0xc9, 0x01, 0x59, 0x5a, 0x8d, 0x77, 0xda, 0xa3, 0xc6, 0xb3, 0xdd, 0xc3, 0x74, 0x8f, 0xe5, + 0x04, 0x59, 0x41, 0x48, 0x1c, 0x38, 0x73, 0x45, 0xe2, 0x71, 0xcc, 0x05, 0x0e, 0xfc, 0x01, 0xae, + 0x5c, 0xf9, 0x0b, 0xfc, 0x10, 0xd4, 0x8f, 0x59, 0xef, 0x2b, 0x33, 0x4b, 0x12, 0x89, 0x5b, 0x4f, + 0xf5, 0x57, 0x5d, 0x5f, 0x57, 0x75, 0x7d, 0x35, 0xe0, 0x47, 0x9c, 0x47, 0x31, 0xf1, 0x4f, 0x68, + 0x4a, 0x84, 0xe4, 0x29, 0xf1, 0x83, 0x70, 0x48, 0x99, 0x7f, 0xd6, 0xbe, 0x34, 0xf5, 0xb5, 0xc9, + 0x4b, 0x52, 0x2e, 0x39, 0x7e, 0xcb, 0x38, 0x78, 0xa3, 0x5d, 0xcf, 0xec, 0x9e, 0xb5, 0x9d, 0xb7, + 0xed, 0x59, 0x41, 0x42, 0xfd, 0x80, 0x31, 0x2e, 0x03, 0x49, 0x39, 0x13, 0xc6, 0xd1, 0xd9, 0x2a, + 0x8a, 0x44, 0xe2, 0xb0, 0x1c, 0x46, 0x59, 0x48, 0xce, 0x2d, 0xec, 0x5d, 0x0b, 0x8b, 0x39, 0x8b, + 0xd2, 0x8c, 0x31, 0xca, 0x22, 0x9f, 0x27, 0x24, 0x9d, 0x08, 0x79, 0xdd, 0x82, 0xf4, 0xd7, 0x71, + 0x76, 0xe2, 0x93, 0x61, 0x22, 0x1f, 0xdb, 0xcd, 0xc6, 0xf4, 0xa6, 0x66, 0xd1, 0x1f, 0x06, 0xe2, + 0xd4, 0x20, 0xdc, 0x10, 0xf0, 0x6e, 0x4a, 0x02, 0x49, 0x0e, 0x54, 0xe0, 0x1e, 0xf9, 0x2a, 0x23, + 0x42, 0xe2, 0x1a, 0xac, 0x26, 0x41, 0x4a, 0x98, 0xac, 0xa3, 0x06, 0x6a, 0xae, 0xf5, 0xec, 0x17, + 0xde, 0x81, 0x15, 0x4d, 0xb0, 0x5e, 0x69, 0xa0, 0x66, 0x75, 0xbb, 0xe1, 0x3d, 0x37, 0x51, 0x9e, + 0x39, 0xcf, 0xc0, 0xdd, 0x6f, 0x10, 0xe0, 0x7b, 0x54, 0x48, 0x6d, 0x24, 0xa2, 0x2c, 0x4c, 0x0d, + 0x56, 0x4f, 0x68, 0x2c, 0x49, 0xaa, 0xe3, 0xac, 0xf5, 0xec, 0x17, 0xbe, 0x0e, 0x6b, 0x49, 0x10, + 0x91, 0xbe, 0xa0, 0x4f, 0x48, 0x7d, 0xa9, 0x81, 0x9a, 0x2b, 0xbd, 0x2b, 0xca, 0xf0, 0x80, 0x3e, + 0x21, 0x78, 0x13, 0x40, 0x6f, 0x4a, 0x7e, 0x4a, 0x58, 0x7d, 0x59, 0x3b, 0x6a, 0xf8, 0xe7, 0xca, + 0xe0, 0x3e, 0x86, 0x6b, 0x13, 0x0c, 0x44, 0xc2, 0x99, 0x20, 0xb8, 0x03, 0xaf, 0x51, 0x63, 0xaa, + 0xa3, 0xc6, 0xd2, 0x42, 0x77, 0xca, 0x1d, 0xf0, 0x7b, 0xb0, 0xc1, 0xc8, 0xb9, 0xec, 0x8f, 0x85, + 0x35, 0x7c, 0xdf, 0x50, 0xe6, 0xc3, 0x51, 0xe8, 0x2d, 0xd8, 0xe8, 0x12, 0x39, 0x91, 0x60, 0x0c, + 0xcb, 0x2c, 0x18, 0x12, 0x7b, 0x6f, 0xbd, 0x76, 0x9b, 0x80, 0xef, 0x92, 0x98, 0x4c, 0x95, 0x62, + 0x1e, 0xf2, 0x7b, 0x04, 0xf8, 0x61, 0x12, 0x06, 0x92, 0xec, 0xab, 0x7a, 0xe6, 0xd0, 0x1d, 0x58, + 0xd1, 0xf5, 0xd5, 0xd8, 0xe2, 0x9b, 0x18, 0x3f, 0x03, 0xc7, 0x37, 0xa1, 0x9a, 0xe9, 0xd3, 0xf4, + 0xc3, 0xb0, 0xb5, 0x75, 0x72, 0xef, 0xfc, 0xed, 0x18, 0x9f, 0xfb, 0x81, 0x38, 0xed, 0x81, 0x81, + 0xab, 0xb5, 0xbd, 0xdc, 0x04, 0x8f, 0x79, 0x94, 0x9f, 0xc2, 0x55, 0x95, 0x7e, 0x8d, 0xfb, 0x5f, + 0xea, 0x7f, 0x66, 0x5e, 0x60, 0x4e, 0xc0, 0x96, 0xff, 0x43, 0x15, 0x49, 0x59, 0x16, 0xa8, 0xbe, + 0xb9, 0xa3, 0xc5, 0x2f, 0x5c, 0xfc, 0xa7, 0x50, 0xdb, 0x3b, 0x4f, 0x78, 0x2a, 0xef, 0xf2, 0x41, + 0x36, 0x24, 0x4c, 0x8a, 0x82, 0x34, 0xe1, 0x2d, 0x58, 0x1f, 0xf0, 0x38, 0x26, 0x03, 0xd5, 0xe2, + 0x7d, 0x1a, 0x8a, 0x7a, 0xa5, 0xb1, 0xa4, 0x0e, 0xbd, 0xb4, 0x1e, 0x84, 0x02, 0xb7, 0xe0, 0x2a, + 0xcf, 0x64, 0x92, 0xc9, 0x7e, 0x96, 0xd2, 0x7e, 0x92, 0x92, 0x13, 0x7a, 0xae, 0x13, 0xb2, 0xd6, + 0xdb, 0x30, 0x1b, 0x0f, 0x53, 0x7a, 0xa8, 0xcd, 0xee, 0x05, 0xd4, 0x0e, 0x86, 0xaf, 0x9a, 0x40, + 0x13, 0xde, 0xa4, 0x6c, 0x6e, 0xfc, 0x75, 0x6d, 0x1f, 0x85, 0xdf, 0xfe, 0xee, 0x75, 0x58, 0xdf, + 0xcf, 0x93, 0xf9, 0xa9, 0xca, 0x25, 0x7e, 0x86, 0xa0, 0x3a, 0x26, 0x3a, 0xf8, 0x46, 0x41, 0xd2, + 0x67, 0xc5, 0xc9, 0xd9, 0xcc, 0xe1, 0x63, 0xba, 0xe8, 0x7d, 0x96, 0xeb, 0xa2, 0x7b, 0xff, 0xdb, + 0xbf, 0xff, 0xf9, 0xa1, 0xd2, 0x75, 0x6f, 0x2b, 0x39, 0xfd, 0xda, 0xbc, 0xa8, 0x5b, 0x49, 0xca, + 0xbf, 0x24, 0x03, 0x29, 0xfc, 0x96, 0x1f, 0x06, 0x32, 0x38, 0x0e, 0x04, 0x51, 0xeb, 0xcb, 0x4b, + 0x75, 0x53, 0x9e, 0x25, 0xc2, 0x6f, 0x5d, 0xf8, 0xb6, 0xbb, 0x3b, 0x46, 0xba, 0xf0, 0x1f, 0x08, + 0xaa, 0x63, 0xc2, 0x51, 0x48, 0x76, 0x56, 0xe2, 0x1c, 0x6f, 0x51, 0xb8, 0x79, 0x90, 0xee, 0xbe, + 0x66, 0xff, 0x09, 0x7e, 0x49, 0xf6, 0xf8, 0x67, 0x04, 0x57, 0x72, 0xd1, 0xc1, 0xad, 0x02, 0x12, + 0x53, 0xca, 0xe4, 0x94, 0xea, 0xdf, 0x14, 0x45, 0xf5, 0x6a, 0x16, 0x27, 0x98, 0xf3, 0xf3, 0x5b, + 0x17, 0xf8, 0x47, 0x04, 0xd5, 0x31, 0xc1, 0x2b, 0xcc, 0xec, 0xac, 0x30, 0x3a, 0xb5, 0x19, 0x81, + 0xda, 0x53, 0x93, 0x2f, 0xa7, 0xd7, 0x7a, 0x59, 0x7a, 0x3f, 0x99, 0x0c, 0xea, 0xae, 0x2f, 0xcb, + 0xe0, 0xb8, 0xfc, 0x39, 0xa5, 0x1a, 0xe2, 0xee, 0x69, 0x8a, 0x1f, 0xe3, 0x5b, 0x2f, 0x42, 0xd1, + 0xe8, 0x8f, 0x62, 0xf8, 0x1b, 0x82, 0xea, 0xd8, 0x18, 0x28, 0x4c, 0xe0, 0xec, 0xb8, 0x28, 0xeb, + 0xa3, 0x9e, 0x26, 0x79, 0x6f, 0x7b, 0x57, 0x93, 0x34, 0xbf, 0x2f, 0x2f, 0x4a, 0xb5, 0x63, 0x27, + 0xcd, 0xef, 0x08, 0xe0, 0x52, 0x85, 0xf1, 0xfb, 0x25, 0xcd, 0x31, 0x31, 0x2d, 0x9c, 0x1b, 0x0b, + 0xa2, 0x6d, 0x27, 0x4d, 0x26, 0xf9, 0xbf, 0x77, 0x92, 0xd5, 0xf9, 0x5f, 0x10, 0x6c, 0x4c, 0x09, + 0x38, 0x6e, 0x17, 0x30, 0x99, 0x2f, 0xf6, 0x65, 0xc9, 0xfe, 0x48, 0x93, 0xdd, 0x71, 0xdb, 0x65, + 0x2f, 0xe2, 0xa2, 0x43, 0x26, 0x03, 0x74, 0x50, 0x4b, 0x73, 0x9c, 0xd2, 0xf8, 0x42, 0x8e, 0xf3, + 0xe7, 0xc1, 0x2b, 0xe4, 0x48, 0x87, 0xd3, 0x1c, 0xef, 0xfc, 0x89, 0x60, 0x73, 0xc0, 0x87, 0xcf, + 0x67, 0x75, 0xe7, 0xda, 0xe4, 0x98, 0x38, 0x54, 0x6d, 0x7d, 0x88, 0xbe, 0xb8, 0x6d, 0x3d, 0x22, + 0x1e, 0x07, 0x2c, 0xf2, 0x78, 0x1a, 0xf9, 0x11, 0x61, 0xba, 0xe9, 0xed, 0x8f, 0x7d, 0x90, 0x50, + 0x31, 0xe7, 0x5f, 0xfa, 0xa6, 0x5e, 0xfc, 0x5a, 0x59, 0xee, 0xee, 0xee, 0x3f, 0x78, 0x56, 0x79, + 0xa7, 0x6b, 0xce, 0xd9, 0x8d, 0x79, 0x16, 0x7a, 0xa3, 0x58, 0x9e, 0x0e, 0xe6, 0x3d, 0x6a, 0xff, + 0x95, 0x23, 0x8e, 0x34, 0xe2, 0x68, 0x84, 0x38, 0xd2, 0x88, 0xa3, 0x47, 0xed, 0xe3, 0x55, 0x1d, + 0xf5, 0x83, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0xde, 0x49, 0x90, 0x6c, 0x51, 0x0c, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/firestore/admin/v1/index.pb.go b/vendor/google.golang.org/genproto/googleapis/firestore/admin/v1/index.pb.go new file mode 100644 index 000000000..b74731464 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/firestore/admin/v1/index.pb.go @@ -0,0 +1,446 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/firestore/admin/v1/index.proto + +package admin // import "google.golang.org/genproto/googleapis/firestore/admin/v1" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import _ "google.golang.org/genproto/googleapis/api/annotations" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Query Scope defines the scope at which a query is run. This is specified on +// a StructuredQuery's `from` field. +type Index_QueryScope int32 + +const ( + // The query scope is unspecified. Not a valid option. + Index_QUERY_SCOPE_UNSPECIFIED Index_QueryScope = 0 + // Indexes with a collection query scope specified allow queries + // against a collection that is the child of a specific document, specified + // at query time, and that has the collection id specified by the index. + Index_COLLECTION Index_QueryScope = 1 +) + +var Index_QueryScope_name = map[int32]string{ + 0: "QUERY_SCOPE_UNSPECIFIED", + 1: "COLLECTION", +} +var Index_QueryScope_value = map[string]int32{ + "QUERY_SCOPE_UNSPECIFIED": 0, + "COLLECTION": 1, +} + +func (x Index_QueryScope) String() string { + return proto.EnumName(Index_QueryScope_name, int32(x)) +} +func (Index_QueryScope) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_index_ed7772aaf3db632e, []int{0, 0} +} + +// The state of an index. During index creation, an index will be in the +// `CREATING` state. If the index is created successfully, it will transition +// to the `READY` state. If the index creation encounters a problem, the index +// will transition to the `NEEDS_REPAIR` state. +type Index_State int32 + +const ( + // The state is unspecified. + Index_STATE_UNSPECIFIED Index_State = 0 + // The index is being created. + // There is an active long-running operation for the index. + // The index is updated when writing a document. + // Some index data may exist. + Index_CREATING Index_State = 1 + // The index is ready to be used. + // The index is updated when writing a document. + // The index is fully populated from all stored documents it applies to. + Index_READY Index_State = 2 + // The index was being created, but something went wrong. + // There is no active long-running operation for the index, + // and the most recently finished long-running operation failed. + // The index is not updated when writing a document. + // Some index data may exist. + // Use the google.longrunning.Operations API to determine why the operation + // that last attempted to create this index failed, then re-create the + // index. + Index_NEEDS_REPAIR Index_State = 3 +) + +var Index_State_name = map[int32]string{ + 0: "STATE_UNSPECIFIED", + 1: "CREATING", + 2: "READY", + 3: "NEEDS_REPAIR", +} +var Index_State_value = map[string]int32{ + "STATE_UNSPECIFIED": 0, + "CREATING": 1, + "READY": 2, + "NEEDS_REPAIR": 3, +} + +func (x Index_State) String() string { + return proto.EnumName(Index_State_name, int32(x)) +} +func (Index_State) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_index_ed7772aaf3db632e, []int{0, 1} +} + +// The supported orderings. +type Index_IndexField_Order int32 + +const ( + // The ordering is unspecified. Not a valid option. + Index_IndexField_ORDER_UNSPECIFIED Index_IndexField_Order = 0 + // The field is ordered by ascending field value. + Index_IndexField_ASCENDING Index_IndexField_Order = 1 + // The field is ordered by descending field value. + Index_IndexField_DESCENDING Index_IndexField_Order = 2 +) + +var Index_IndexField_Order_name = map[int32]string{ + 0: "ORDER_UNSPECIFIED", + 1: "ASCENDING", + 2: "DESCENDING", +} +var Index_IndexField_Order_value = map[string]int32{ + "ORDER_UNSPECIFIED": 0, + "ASCENDING": 1, + "DESCENDING": 2, +} + +func (x Index_IndexField_Order) String() string { + return proto.EnumName(Index_IndexField_Order_name, int32(x)) +} +func (Index_IndexField_Order) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_index_ed7772aaf3db632e, []int{0, 0, 0} +} + +// The supported array value configurations. +type Index_IndexField_ArrayConfig int32 + +const ( + // The index does not support additional array queries. + Index_IndexField_ARRAY_CONFIG_UNSPECIFIED Index_IndexField_ArrayConfig = 0 + // The index supports array containment queries. + Index_IndexField_CONTAINS Index_IndexField_ArrayConfig = 1 +) + +var Index_IndexField_ArrayConfig_name = map[int32]string{ + 0: "ARRAY_CONFIG_UNSPECIFIED", + 1: "CONTAINS", +} +var Index_IndexField_ArrayConfig_value = map[string]int32{ + "ARRAY_CONFIG_UNSPECIFIED": 0, + "CONTAINS": 1, +} + +func (x Index_IndexField_ArrayConfig) String() string { + return proto.EnumName(Index_IndexField_ArrayConfig_name, int32(x)) +} +func (Index_IndexField_ArrayConfig) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_index_ed7772aaf3db632e, []int{0, 0, 1} +} + +// Cloud Firestore indexes enable simple and complex queries against +// documents in a database. +type Index struct { + // Output only. + // A server defined name for this index. + // The form of this name for composite indexes will be: + // `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{composite_index_id}` + // For single field indexes, this field will be empty. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Indexes with a collection query scope specified allow queries + // against a collection that is the child of a specific document, specified at + // query time, and that has the same collection id. + // + // Indexes with a collection group query scope specified allow queries against + // all collections descended from a specific document, specified at query + // time, and that have the same collection id as this index. + QueryScope Index_QueryScope `protobuf:"varint,2,opt,name=query_scope,json=queryScope,proto3,enum=google.firestore.admin.v1.Index_QueryScope" json:"query_scope,omitempty"` + // The fields supported by this index. + // + // For composite indexes, this is always 2 or more fields. + // The last field entry is always for the field path `__name__`. If, on + // creation, `__name__` was not specified as the last field, it will be added + // automatically with the same direction as that of the last field defined. If + // the final field in a composite index is not directional, the `__name__` + // will be ordered ASCENDING (unless explicitly specified). + // + // For single field indexes, this will always be exactly one entry with a + // field path equal to the field path of the associated field. + Fields []*Index_IndexField `protobuf:"bytes,3,rep,name=fields,proto3" json:"fields,omitempty"` + // Output only. + // The serving state of the index. + State Index_State `protobuf:"varint,4,opt,name=state,proto3,enum=google.firestore.admin.v1.Index_State" json:"state,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Index) Reset() { *m = Index{} } +func (m *Index) String() string { return proto.CompactTextString(m) } +func (*Index) ProtoMessage() {} +func (*Index) Descriptor() ([]byte, []int) { + return fileDescriptor_index_ed7772aaf3db632e, []int{0} +} +func (m *Index) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Index.Unmarshal(m, b) +} +func (m *Index) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Index.Marshal(b, m, deterministic) +} +func (dst *Index) XXX_Merge(src proto.Message) { + xxx_messageInfo_Index.Merge(dst, src) +} +func (m *Index) XXX_Size() int { + return xxx_messageInfo_Index.Size(m) +} +func (m *Index) XXX_DiscardUnknown() { + xxx_messageInfo_Index.DiscardUnknown(m) +} + +var xxx_messageInfo_Index proto.InternalMessageInfo + +func (m *Index) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *Index) GetQueryScope() Index_QueryScope { + if m != nil { + return m.QueryScope + } + return Index_QUERY_SCOPE_UNSPECIFIED +} + +func (m *Index) GetFields() []*Index_IndexField { + if m != nil { + return m.Fields + } + return nil +} + +func (m *Index) GetState() Index_State { + if m != nil { + return m.State + } + return Index_STATE_UNSPECIFIED +} + +// A field in an index. +// The field_path describes which field is indexed, the value_mode describes +// how the field value is indexed. +type Index_IndexField struct { + // Can be __name__. + // For single field indexes, this must match the name of the field or may + // be omitted. + FieldPath string `protobuf:"bytes,1,opt,name=field_path,json=fieldPath,proto3" json:"field_path,omitempty"` + // How the field value is indexed. + // + // Types that are valid to be assigned to ValueMode: + // *Index_IndexField_Order_ + // *Index_IndexField_ArrayConfig_ + ValueMode isIndex_IndexField_ValueMode `protobuf_oneof:"value_mode"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Index_IndexField) Reset() { *m = Index_IndexField{} } +func (m *Index_IndexField) String() string { return proto.CompactTextString(m) } +func (*Index_IndexField) ProtoMessage() {} +func (*Index_IndexField) Descriptor() ([]byte, []int) { + return fileDescriptor_index_ed7772aaf3db632e, []int{0, 0} +} +func (m *Index_IndexField) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Index_IndexField.Unmarshal(m, b) +} +func (m *Index_IndexField) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Index_IndexField.Marshal(b, m, deterministic) +} +func (dst *Index_IndexField) XXX_Merge(src proto.Message) { + xxx_messageInfo_Index_IndexField.Merge(dst, src) +} +func (m *Index_IndexField) XXX_Size() int { + return xxx_messageInfo_Index_IndexField.Size(m) +} +func (m *Index_IndexField) XXX_DiscardUnknown() { + xxx_messageInfo_Index_IndexField.DiscardUnknown(m) +} + +var xxx_messageInfo_Index_IndexField proto.InternalMessageInfo + +func (m *Index_IndexField) GetFieldPath() string { + if m != nil { + return m.FieldPath + } + return "" +} + +type isIndex_IndexField_ValueMode interface { + isIndex_IndexField_ValueMode() +} + +type Index_IndexField_Order_ struct { + Order Index_IndexField_Order `protobuf:"varint,2,opt,name=order,proto3,enum=google.firestore.admin.v1.Index_IndexField_Order,oneof"` +} + +type Index_IndexField_ArrayConfig_ struct { + ArrayConfig Index_IndexField_ArrayConfig `protobuf:"varint,3,opt,name=array_config,json=arrayConfig,proto3,enum=google.firestore.admin.v1.Index_IndexField_ArrayConfig,oneof"` +} + +func (*Index_IndexField_Order_) isIndex_IndexField_ValueMode() {} + +func (*Index_IndexField_ArrayConfig_) isIndex_IndexField_ValueMode() {} + +func (m *Index_IndexField) GetValueMode() isIndex_IndexField_ValueMode { + if m != nil { + return m.ValueMode + } + return nil +} + +func (m *Index_IndexField) GetOrder() Index_IndexField_Order { + if x, ok := m.GetValueMode().(*Index_IndexField_Order_); ok { + return x.Order + } + return Index_IndexField_ORDER_UNSPECIFIED +} + +func (m *Index_IndexField) GetArrayConfig() Index_IndexField_ArrayConfig { + if x, ok := m.GetValueMode().(*Index_IndexField_ArrayConfig_); ok { + return x.ArrayConfig + } + return Index_IndexField_ARRAY_CONFIG_UNSPECIFIED +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*Index_IndexField) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _Index_IndexField_OneofMarshaler, _Index_IndexField_OneofUnmarshaler, _Index_IndexField_OneofSizer, []interface{}{ + (*Index_IndexField_Order_)(nil), + (*Index_IndexField_ArrayConfig_)(nil), + } +} + +func _Index_IndexField_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*Index_IndexField) + // value_mode + switch x := m.ValueMode.(type) { + case *Index_IndexField_Order_: + b.EncodeVarint(2<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.Order)) + case *Index_IndexField_ArrayConfig_: + b.EncodeVarint(3<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.ArrayConfig)) + case nil: + default: + return fmt.Errorf("Index_IndexField.ValueMode has unexpected type %T", x) + } + return nil +} + +func _Index_IndexField_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*Index_IndexField) + switch tag { + case 2: // value_mode.order + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ValueMode = &Index_IndexField_Order_{Index_IndexField_Order(x)} + return true, err + case 3: // value_mode.array_config + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ValueMode = &Index_IndexField_ArrayConfig_{Index_IndexField_ArrayConfig(x)} + return true, err + default: + return false, nil + } +} + +func _Index_IndexField_OneofSizer(msg proto.Message) (n int) { + m := msg.(*Index_IndexField) + // value_mode + switch x := m.ValueMode.(type) { + case *Index_IndexField_Order_: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(x.Order)) + case *Index_IndexField_ArrayConfig_: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(x.ArrayConfig)) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +func init() { + proto.RegisterType((*Index)(nil), "google.firestore.admin.v1.Index") + proto.RegisterType((*Index_IndexField)(nil), "google.firestore.admin.v1.Index.IndexField") + proto.RegisterEnum("google.firestore.admin.v1.Index_QueryScope", Index_QueryScope_name, Index_QueryScope_value) + proto.RegisterEnum("google.firestore.admin.v1.Index_State", Index_State_name, Index_State_value) + proto.RegisterEnum("google.firestore.admin.v1.Index_IndexField_Order", Index_IndexField_Order_name, Index_IndexField_Order_value) + proto.RegisterEnum("google.firestore.admin.v1.Index_IndexField_ArrayConfig", Index_IndexField_ArrayConfig_name, Index_IndexField_ArrayConfig_value) +} + +func init() { + proto.RegisterFile("google/firestore/admin/v1/index.proto", fileDescriptor_index_ed7772aaf3db632e) +} + +var fileDescriptor_index_ed7772aaf3db632e = []byte{ + // 554 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x93, 0xdf, 0x6a, 0xdb, 0x30, + 0x14, 0xc6, 0x6b, 0xa7, 0x2e, 0xcb, 0x49, 0x56, 0x3c, 0xc1, 0x98, 0xd7, 0xb5, 0xac, 0x04, 0x36, + 0x02, 0x03, 0x9b, 0x6c, 0x17, 0xa3, 0xec, 0x0f, 0x38, 0xb6, 0x92, 0x1a, 0x82, 0xed, 0xca, 0x69, + 0x21, 0x23, 0x60, 0xb4, 0x58, 0x71, 0x0d, 0x89, 0x95, 0xda, 0x4e, 0x58, 0x5f, 0x67, 0x97, 0x7b, + 0x82, 0x3d, 0xc3, 0xee, 0x76, 0xbf, 0x87, 0x19, 0x96, 0xb3, 0x64, 0x94, 0x96, 0xad, 0x37, 0xe6, + 0xc8, 0xfe, 0xbe, 0xdf, 0xa7, 0x63, 0xe9, 0xc0, 0x8b, 0x98, 0xf3, 0x78, 0xc6, 0x8c, 0x69, 0x92, + 0xb1, 0xbc, 0xe0, 0x19, 0x33, 0x68, 0x34, 0x4f, 0x52, 0x63, 0xd5, 0x31, 0x92, 0x34, 0x62, 0x5f, + 0xf4, 0x45, 0xc6, 0x0b, 0x8e, 0x9e, 0x56, 0x32, 0x7d, 0x23, 0xd3, 0x85, 0x4c, 0x5f, 0x75, 0x0e, + 0x0e, 0xd7, 0x04, 0xba, 0x48, 0x0c, 0x9a, 0xa6, 0xbc, 0xa0, 0x45, 0xc2, 0xd3, 0xbc, 0x32, 0xb6, + 0x7e, 0x2a, 0xa0, 0x38, 0x25, 0x08, 0x21, 0xd8, 0x4d, 0xe9, 0x9c, 0x69, 0xd2, 0xb1, 0xd4, 0xae, + 0x13, 0x51, 0xa3, 0x01, 0x34, 0xae, 0x96, 0x2c, 0xbb, 0x0e, 0xf3, 0x09, 0x5f, 0x30, 0x4d, 0x3e, + 0x96, 0xda, 0xfb, 0xaf, 0x5f, 0xe9, 0x77, 0x86, 0xe9, 0x02, 0xa5, 0x9f, 0x95, 0x9e, 0xa0, 0xb4, + 0x10, 0xb8, 0xda, 0xd4, 0xc8, 0x82, 0xbd, 0x69, 0xc2, 0x66, 0x51, 0xae, 0xd5, 0x8e, 0x6b, 0xed, + 0xc6, 0x7f, 0x80, 0xc4, 0xb3, 0x57, 0x7a, 0xc8, 0xda, 0x8a, 0xde, 0x83, 0x92, 0x17, 0xb4, 0x60, + 0xda, 0xae, 0xd8, 0xcc, 0xcb, 0x7f, 0x32, 0x82, 0x52, 0x4d, 0x2a, 0xd3, 0xc1, 0x2f, 0x19, 0x60, + 0x0b, 0x45, 0x47, 0x00, 0x02, 0x1b, 0x2e, 0x68, 0x71, 0xb9, 0xee, 0xbc, 0x2e, 0xde, 0xf8, 0xb4, + 0xb8, 0x44, 0x0e, 0x28, 0x3c, 0x8b, 0x58, 0xb6, 0x6e, 0xbc, 0x73, 0x8f, 0xfd, 0xea, 0x5e, 0x69, + 0x3c, 0xdd, 0x21, 0x15, 0x01, 0x8d, 0xa1, 0x49, 0xb3, 0x8c, 0x5e, 0x87, 0x13, 0x9e, 0x4e, 0x93, + 0x58, 0xab, 0x09, 0xe2, 0xdb, 0xfb, 0x10, 0xcd, 0xd2, 0x6f, 0x09, 0xfb, 0xe9, 0x0e, 0x69, 0xd0, + 0xed, 0xb2, 0xf5, 0x01, 0x14, 0x91, 0x87, 0x1e, 0xc3, 0x23, 0x8f, 0xd8, 0x98, 0x84, 0xe7, 0x6e, + 0xe0, 0x63, 0xcb, 0xe9, 0x39, 0xd8, 0x56, 0x77, 0xd0, 0x43, 0xa8, 0x9b, 0x81, 0x85, 0x5d, 0xdb, + 0x71, 0xfb, 0xaa, 0x84, 0xf6, 0x01, 0x6c, 0xbc, 0x59, 0xcb, 0xad, 0x13, 0x68, 0xfc, 0x05, 0x47, + 0x87, 0xa0, 0x99, 0x84, 0x98, 0xa3, 0xd0, 0xf2, 0xdc, 0x9e, 0xd3, 0xbf, 0xc1, 0x6a, 0xc2, 0x03, + 0xcb, 0x73, 0x87, 0xa6, 0xe3, 0x06, 0xaa, 0xd4, 0x6d, 0x02, 0xac, 0xe8, 0x6c, 0xc9, 0xc2, 0x39, + 0x8f, 0x58, 0xeb, 0x04, 0x60, 0x7b, 0xf6, 0xe8, 0x19, 0x3c, 0x39, 0x3b, 0xc7, 0x64, 0x14, 0x06, + 0x96, 0xe7, 0xe3, 0x1b, 0x98, 0x7d, 0x00, 0xcb, 0x1b, 0x0c, 0xb0, 0x35, 0x74, 0x3c, 0x57, 0x95, + 0x5a, 0x0e, 0x28, 0xe2, 0xa4, 0xca, 0x16, 0x82, 0xa1, 0x39, 0xc4, 0xb7, 0xc4, 0x12, 0x6c, 0x0e, + 0xab, 0x0e, 0xea, 0xa0, 0x10, 0x6c, 0xda, 0x23, 0x55, 0x46, 0x2a, 0x34, 0x5d, 0x8c, 0xed, 0x20, + 0x24, 0xd8, 0x37, 0x1d, 0xa2, 0xd6, 0xba, 0xdf, 0x25, 0x38, 0x9a, 0xf0, 0xf9, 0xdd, 0xff, 0xb6, + 0x5b, 0xdd, 0x01, 0xbf, 0x9c, 0x00, 0x5f, 0xfa, 0xf4, 0x71, 0x2d, 0x8c, 0xf9, 0x8c, 0xa6, 0xb1, + 0xce, 0xb3, 0xd8, 0x88, 0x59, 0x2a, 0xe6, 0xc3, 0xa8, 0x3e, 0xd1, 0x45, 0x92, 0xdf, 0x32, 0x82, + 0xef, 0x44, 0xf1, 0x55, 0xde, 0xed, 0x5b, 0xbd, 0xe0, 0x9b, 0xfc, 0xbc, 0x5f, 0x71, 0xac, 0x19, + 0x5f, 0x46, 0x7a, 0x6f, 0x13, 0x6b, 0x8a, 0xd8, 0x8b, 0xce, 0x8f, 0x3f, 0x8a, 0xb1, 0x50, 0x8c, + 0x37, 0x8a, 0xb1, 0x50, 0x8c, 0x2f, 0x3a, 0x9f, 0xf7, 0x44, 0xea, 0x9b, 0xdf, 0x01, 0x00, 0x00, + 0xff, 0xff, 0xb0, 0x5a, 0xfb, 0xcf, 0xf7, 0x03, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/firestore/admin/v1/location.pb.go b/vendor/google.golang.org/genproto/googleapis/firestore/admin/v1/location.pb.go new file mode 100644 index 000000000..c7345ff53 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/firestore/admin/v1/location.pb.go @@ -0,0 +1,79 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/firestore/admin/v1/location.proto + +package admin // import "google.golang.org/genproto/googleapis/firestore/admin/v1" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import _ "google.golang.org/genproto/googleapis/api/annotations" +import _ "google.golang.org/genproto/googleapis/type/latlng" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// The metadata message for [google.cloud.location.Location.metadata][google.cloud.location.Location.metadata]. +type LocationMetadata struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *LocationMetadata) Reset() { *m = LocationMetadata{} } +func (m *LocationMetadata) String() string { return proto.CompactTextString(m) } +func (*LocationMetadata) ProtoMessage() {} +func (*LocationMetadata) Descriptor() ([]byte, []int) { + return fileDescriptor_location_d6351944632cbafa, []int{0} +} +func (m *LocationMetadata) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_LocationMetadata.Unmarshal(m, b) +} +func (m *LocationMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_LocationMetadata.Marshal(b, m, deterministic) +} +func (dst *LocationMetadata) XXX_Merge(src proto.Message) { + xxx_messageInfo_LocationMetadata.Merge(dst, src) +} +func (m *LocationMetadata) XXX_Size() int { + return xxx_messageInfo_LocationMetadata.Size(m) +} +func (m *LocationMetadata) XXX_DiscardUnknown() { + xxx_messageInfo_LocationMetadata.DiscardUnknown(m) +} + +var xxx_messageInfo_LocationMetadata proto.InternalMessageInfo + +func init() { + proto.RegisterType((*LocationMetadata)(nil), "google.firestore.admin.v1.LocationMetadata") +} + +func init() { + proto.RegisterFile("google/firestore/admin/v1/location.proto", fileDescriptor_location_d6351944632cbafa) +} + +var fileDescriptor_location_d6351944632cbafa = []byte{ + // 230 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xd2, 0x48, 0xcf, 0xcf, 0x4f, + 0xcf, 0x49, 0xd5, 0x4f, 0xcb, 0x2c, 0x4a, 0x2d, 0x2e, 0xc9, 0x2f, 0x4a, 0xd5, 0x4f, 0x4c, 0xc9, + 0xcd, 0xcc, 0xd3, 0x2f, 0x33, 0xd4, 0xcf, 0xc9, 0x4f, 0x4e, 0x2c, 0xc9, 0xcc, 0xcf, 0xd3, 0x2b, + 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x92, 0x84, 0xa8, 0xd4, 0x83, 0xab, 0xd4, 0x03, 0xab, 0xd4, 0x2b, + 0x33, 0x94, 0x92, 0x81, 0x1a, 0x92, 0x58, 0x90, 0xa9, 0x9f, 0x98, 0x97, 0x97, 0x5f, 0x02, 0xd6, + 0x57, 0x0c, 0xd1, 0x28, 0x25, 0x01, 0x95, 0x2d, 0xa9, 0x2c, 0x48, 0xd5, 0xcf, 0x49, 0x2c, 0xc9, + 0xc9, 0x4b, 0x87, 0xc8, 0x28, 0x09, 0x71, 0x09, 0xf8, 0x40, 0x2d, 0xf1, 0x4d, 0x2d, 0x49, 0x4c, + 0x49, 0x2c, 0x49, 0x74, 0xda, 0xcd, 0xc8, 0x25, 0x9b, 0x9c, 0x9f, 0xab, 0x87, 0xd3, 0x36, 0x27, + 0x5e, 0x98, 0x9e, 0x00, 0x90, 0x21, 0x01, 0x8c, 0x51, 0x76, 0x50, 0xb5, 0xe9, 0xf9, 0x39, 0x89, + 0x79, 0xe9, 0x7a, 0xf9, 0x45, 0xe9, 0xfa, 0xe9, 0xa9, 0x79, 0x60, 0x2b, 0xf4, 0x21, 0x52, 0x89, + 0x05, 0x99, 0xc5, 0x58, 0xbc, 0x68, 0x0d, 0x66, 0x2c, 0x62, 0x62, 0x71, 0x77, 0x76, 0x0b, 0x5e, + 0xc5, 0x24, 0xef, 0x0e, 0x31, 0xc7, 0x39, 0x27, 0xbf, 0x34, 0x45, 0xcf, 0x0d, 0x6e, 0xb3, 0x23, + 0xd8, 0xe6, 0x30, 0xc3, 0x53, 0x30, 0x15, 0x31, 0x60, 0x15, 0x31, 0x70, 0x15, 0x31, 0x60, 0x15, + 0x31, 0x61, 0x86, 0x49, 0x6c, 0x60, 0x5b, 0x8d, 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0x00, 0xb6, + 0x56, 0xea, 0x57, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/firestore/admin/v1/operation.pb.go b/vendor/google.golang.org/genproto/googleapis/firestore/admin/v1/operation.pb.go new file mode 100644 index 000000000..bf53884d5 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/firestore/admin/v1/operation.pb.go @@ -0,0 +1,698 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/firestore/admin/v1/operation.proto + +package admin // import "google.golang.org/genproto/googleapis/firestore/admin/v1" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import timestamp "github.com/golang/protobuf/ptypes/timestamp" +import _ "google.golang.org/genproto/googleapis/api/annotations" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// Describes the state of the operation. +type OperationState int32 + +const ( + // Unspecified. + OperationState_OPERATION_STATE_UNSPECIFIED OperationState = 0 + // Request is being prepared for processing. + OperationState_INITIALIZING OperationState = 1 + // Request is actively being processed. + OperationState_PROCESSING OperationState = 2 + // Request is in the process of being cancelled after user called + // google.longrunning.Operations.CancelOperation on the operation. + OperationState_CANCELLING OperationState = 3 + // Request has been processed and is in its finalization stage. + OperationState_FINALIZING OperationState = 4 + // Request has completed successfully. + OperationState_SUCCESSFUL OperationState = 5 + // Request has finished being processed, but encountered an error. + OperationState_FAILED OperationState = 6 + // Request has finished being cancelled after user called + // google.longrunning.Operations.CancelOperation. + OperationState_CANCELLED OperationState = 7 +) + +var OperationState_name = map[int32]string{ + 0: "OPERATION_STATE_UNSPECIFIED", + 1: "INITIALIZING", + 2: "PROCESSING", + 3: "CANCELLING", + 4: "FINALIZING", + 5: "SUCCESSFUL", + 6: "FAILED", + 7: "CANCELLED", +} +var OperationState_value = map[string]int32{ + "OPERATION_STATE_UNSPECIFIED": 0, + "INITIALIZING": 1, + "PROCESSING": 2, + "CANCELLING": 3, + "FINALIZING": 4, + "SUCCESSFUL": 5, + "FAILED": 6, + "CANCELLED": 7, +} + +func (x OperationState) String() string { + return proto.EnumName(OperationState_name, int32(x)) +} +func (OperationState) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_operation_ab210cd74615767a, []int{0} +} + +// Specifies how the index is changing. +type FieldOperationMetadata_IndexConfigDelta_ChangeType int32 + +const ( + // The type of change is not specified or known. + FieldOperationMetadata_IndexConfigDelta_CHANGE_TYPE_UNSPECIFIED FieldOperationMetadata_IndexConfigDelta_ChangeType = 0 + // The single field index is being added. + FieldOperationMetadata_IndexConfigDelta_ADD FieldOperationMetadata_IndexConfigDelta_ChangeType = 1 + // The single field index is being removed. + FieldOperationMetadata_IndexConfigDelta_REMOVE FieldOperationMetadata_IndexConfigDelta_ChangeType = 2 +) + +var FieldOperationMetadata_IndexConfigDelta_ChangeType_name = map[int32]string{ + 0: "CHANGE_TYPE_UNSPECIFIED", + 1: "ADD", + 2: "REMOVE", +} +var FieldOperationMetadata_IndexConfigDelta_ChangeType_value = map[string]int32{ + "CHANGE_TYPE_UNSPECIFIED": 0, + "ADD": 1, + "REMOVE": 2, +} + +func (x FieldOperationMetadata_IndexConfigDelta_ChangeType) String() string { + return proto.EnumName(FieldOperationMetadata_IndexConfigDelta_ChangeType_name, int32(x)) +} +func (FieldOperationMetadata_IndexConfigDelta_ChangeType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_operation_ab210cd74615767a, []int{1, 0, 0} +} + +// Metadata for [google.longrunning.Operation][google.longrunning.Operation] results from +// [FirestoreAdmin.CreateIndex][google.firestore.admin.v1.FirestoreAdmin.CreateIndex]. +type IndexOperationMetadata struct { + // The time this operation started. + StartTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` + // The time this operation completed. Will be unset if operation still in + // progress. + EndTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` + // The index resource that this operation is acting on. For example: + // `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{index_id}` + Index string `protobuf:"bytes,3,opt,name=index,proto3" json:"index,omitempty"` + // The state of the operation. + State OperationState `protobuf:"varint,4,opt,name=state,proto3,enum=google.firestore.admin.v1.OperationState" json:"state,omitempty"` + // The progress, in documents, of this operation. + ProgressDocuments *Progress `protobuf:"bytes,5,opt,name=progress_documents,json=progressDocuments,proto3" json:"progress_documents,omitempty"` + // The progress, in bytes, of this operation. + ProgressBytes *Progress `protobuf:"bytes,6,opt,name=progress_bytes,json=progressBytes,proto3" json:"progress_bytes,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *IndexOperationMetadata) Reset() { *m = IndexOperationMetadata{} } +func (m *IndexOperationMetadata) String() string { return proto.CompactTextString(m) } +func (*IndexOperationMetadata) ProtoMessage() {} +func (*IndexOperationMetadata) Descriptor() ([]byte, []int) { + return fileDescriptor_operation_ab210cd74615767a, []int{0} +} +func (m *IndexOperationMetadata) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_IndexOperationMetadata.Unmarshal(m, b) +} +func (m *IndexOperationMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_IndexOperationMetadata.Marshal(b, m, deterministic) +} +func (dst *IndexOperationMetadata) XXX_Merge(src proto.Message) { + xxx_messageInfo_IndexOperationMetadata.Merge(dst, src) +} +func (m *IndexOperationMetadata) XXX_Size() int { + return xxx_messageInfo_IndexOperationMetadata.Size(m) +} +func (m *IndexOperationMetadata) XXX_DiscardUnknown() { + xxx_messageInfo_IndexOperationMetadata.DiscardUnknown(m) +} + +var xxx_messageInfo_IndexOperationMetadata proto.InternalMessageInfo + +func (m *IndexOperationMetadata) GetStartTime() *timestamp.Timestamp { + if m != nil { + return m.StartTime + } + return nil +} + +func (m *IndexOperationMetadata) GetEndTime() *timestamp.Timestamp { + if m != nil { + return m.EndTime + } + return nil +} + +func (m *IndexOperationMetadata) GetIndex() string { + if m != nil { + return m.Index + } + return "" +} + +func (m *IndexOperationMetadata) GetState() OperationState { + if m != nil { + return m.State + } + return OperationState_OPERATION_STATE_UNSPECIFIED +} + +func (m *IndexOperationMetadata) GetProgressDocuments() *Progress { + if m != nil { + return m.ProgressDocuments + } + return nil +} + +func (m *IndexOperationMetadata) GetProgressBytes() *Progress { + if m != nil { + return m.ProgressBytes + } + return nil +} + +// Metadata for [google.longrunning.Operation][google.longrunning.Operation] results from +// [FirestoreAdmin.UpdateField][google.firestore.admin.v1.FirestoreAdmin.UpdateField]. +type FieldOperationMetadata struct { + // The time this operation started. + StartTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` + // The time this operation completed. Will be unset if operation still in + // progress. + EndTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` + // The field resource that this operation is acting on. For example: + // `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/fields/{field_path}` + Field string `protobuf:"bytes,3,opt,name=field,proto3" json:"field,omitempty"` + // A list of [IndexConfigDelta][google.firestore.admin.v1.FieldOperationMetadata.IndexConfigDelta], which describe the intent of this + // operation. + IndexConfigDeltas []*FieldOperationMetadata_IndexConfigDelta `protobuf:"bytes,4,rep,name=index_config_deltas,json=indexConfigDeltas,proto3" json:"index_config_deltas,omitempty"` + // The state of the operation. + State OperationState `protobuf:"varint,5,opt,name=state,proto3,enum=google.firestore.admin.v1.OperationState" json:"state,omitempty"` + // The progress, in documents, of this operation. + ProgressDocuments *Progress `protobuf:"bytes,6,opt,name=progress_documents,json=progressDocuments,proto3" json:"progress_documents,omitempty"` + // The progress, in bytes, of this operation. + ProgressBytes *Progress `protobuf:"bytes,7,opt,name=progress_bytes,json=progressBytes,proto3" json:"progress_bytes,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FieldOperationMetadata) Reset() { *m = FieldOperationMetadata{} } +func (m *FieldOperationMetadata) String() string { return proto.CompactTextString(m) } +func (*FieldOperationMetadata) ProtoMessage() {} +func (*FieldOperationMetadata) Descriptor() ([]byte, []int) { + return fileDescriptor_operation_ab210cd74615767a, []int{1} +} +func (m *FieldOperationMetadata) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FieldOperationMetadata.Unmarshal(m, b) +} +func (m *FieldOperationMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FieldOperationMetadata.Marshal(b, m, deterministic) +} +func (dst *FieldOperationMetadata) XXX_Merge(src proto.Message) { + xxx_messageInfo_FieldOperationMetadata.Merge(dst, src) +} +func (m *FieldOperationMetadata) XXX_Size() int { + return xxx_messageInfo_FieldOperationMetadata.Size(m) +} +func (m *FieldOperationMetadata) XXX_DiscardUnknown() { + xxx_messageInfo_FieldOperationMetadata.DiscardUnknown(m) +} + +var xxx_messageInfo_FieldOperationMetadata proto.InternalMessageInfo + +func (m *FieldOperationMetadata) GetStartTime() *timestamp.Timestamp { + if m != nil { + return m.StartTime + } + return nil +} + +func (m *FieldOperationMetadata) GetEndTime() *timestamp.Timestamp { + if m != nil { + return m.EndTime + } + return nil +} + +func (m *FieldOperationMetadata) GetField() string { + if m != nil { + return m.Field + } + return "" +} + +func (m *FieldOperationMetadata) GetIndexConfigDeltas() []*FieldOperationMetadata_IndexConfigDelta { + if m != nil { + return m.IndexConfigDeltas + } + return nil +} + +func (m *FieldOperationMetadata) GetState() OperationState { + if m != nil { + return m.State + } + return OperationState_OPERATION_STATE_UNSPECIFIED +} + +func (m *FieldOperationMetadata) GetProgressDocuments() *Progress { + if m != nil { + return m.ProgressDocuments + } + return nil +} + +func (m *FieldOperationMetadata) GetProgressBytes() *Progress { + if m != nil { + return m.ProgressBytes + } + return nil +} + +// Information about an index configuration change. +type FieldOperationMetadata_IndexConfigDelta struct { + // Specifies how the index is changing. + ChangeType FieldOperationMetadata_IndexConfigDelta_ChangeType `protobuf:"varint,1,opt,name=change_type,json=changeType,proto3,enum=google.firestore.admin.v1.FieldOperationMetadata_IndexConfigDelta_ChangeType" json:"change_type,omitempty"` + // The index being changed. + Index *Index `protobuf:"bytes,2,opt,name=index,proto3" json:"index,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FieldOperationMetadata_IndexConfigDelta) Reset() { + *m = FieldOperationMetadata_IndexConfigDelta{} +} +func (m *FieldOperationMetadata_IndexConfigDelta) String() string { return proto.CompactTextString(m) } +func (*FieldOperationMetadata_IndexConfigDelta) ProtoMessage() {} +func (*FieldOperationMetadata_IndexConfigDelta) Descriptor() ([]byte, []int) { + return fileDescriptor_operation_ab210cd74615767a, []int{1, 0} +} +func (m *FieldOperationMetadata_IndexConfigDelta) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FieldOperationMetadata_IndexConfigDelta.Unmarshal(m, b) +} +func (m *FieldOperationMetadata_IndexConfigDelta) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FieldOperationMetadata_IndexConfigDelta.Marshal(b, m, deterministic) +} +func (dst *FieldOperationMetadata_IndexConfigDelta) XXX_Merge(src proto.Message) { + xxx_messageInfo_FieldOperationMetadata_IndexConfigDelta.Merge(dst, src) +} +func (m *FieldOperationMetadata_IndexConfigDelta) XXX_Size() int { + return xxx_messageInfo_FieldOperationMetadata_IndexConfigDelta.Size(m) +} +func (m *FieldOperationMetadata_IndexConfigDelta) XXX_DiscardUnknown() { + xxx_messageInfo_FieldOperationMetadata_IndexConfigDelta.DiscardUnknown(m) +} + +var xxx_messageInfo_FieldOperationMetadata_IndexConfigDelta proto.InternalMessageInfo + +func (m *FieldOperationMetadata_IndexConfigDelta) GetChangeType() FieldOperationMetadata_IndexConfigDelta_ChangeType { + if m != nil { + return m.ChangeType + } + return FieldOperationMetadata_IndexConfigDelta_CHANGE_TYPE_UNSPECIFIED +} + +func (m *FieldOperationMetadata_IndexConfigDelta) GetIndex() *Index { + if m != nil { + return m.Index + } + return nil +} + +// Metadata for [google.longrunning.Operation][google.longrunning.Operation] results from +// [FirestoreAdmin.ExportDocuments][google.firestore.admin.v1.FirestoreAdmin.ExportDocuments]. +type ExportDocumentsMetadata struct { + // The time this operation started. + StartTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` + // The time this operation completed. Will be unset if operation still in + // progress. + EndTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` + // The state of the export operation. + OperationState OperationState `protobuf:"varint,3,opt,name=operation_state,json=operationState,proto3,enum=google.firestore.admin.v1.OperationState" json:"operation_state,omitempty"` + // The progress, in documents, of this operation. + ProgressDocuments *Progress `protobuf:"bytes,4,opt,name=progress_documents,json=progressDocuments,proto3" json:"progress_documents,omitempty"` + // The progress, in bytes, of this operation. + ProgressBytes *Progress `protobuf:"bytes,5,opt,name=progress_bytes,json=progressBytes,proto3" json:"progress_bytes,omitempty"` + // Which collection ids are being exported. + CollectionIds []string `protobuf:"bytes,6,rep,name=collection_ids,json=collectionIds,proto3" json:"collection_ids,omitempty"` + // Where the entities are being exported to. + OutputUriPrefix string `protobuf:"bytes,7,opt,name=output_uri_prefix,json=outputUriPrefix,proto3" json:"output_uri_prefix,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ExportDocumentsMetadata) Reset() { *m = ExportDocumentsMetadata{} } +func (m *ExportDocumentsMetadata) String() string { return proto.CompactTextString(m) } +func (*ExportDocumentsMetadata) ProtoMessage() {} +func (*ExportDocumentsMetadata) Descriptor() ([]byte, []int) { + return fileDescriptor_operation_ab210cd74615767a, []int{2} +} +func (m *ExportDocumentsMetadata) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ExportDocumentsMetadata.Unmarshal(m, b) +} +func (m *ExportDocumentsMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ExportDocumentsMetadata.Marshal(b, m, deterministic) +} +func (dst *ExportDocumentsMetadata) XXX_Merge(src proto.Message) { + xxx_messageInfo_ExportDocumentsMetadata.Merge(dst, src) +} +func (m *ExportDocumentsMetadata) XXX_Size() int { + return xxx_messageInfo_ExportDocumentsMetadata.Size(m) +} +func (m *ExportDocumentsMetadata) XXX_DiscardUnknown() { + xxx_messageInfo_ExportDocumentsMetadata.DiscardUnknown(m) +} + +var xxx_messageInfo_ExportDocumentsMetadata proto.InternalMessageInfo + +func (m *ExportDocumentsMetadata) GetStartTime() *timestamp.Timestamp { + if m != nil { + return m.StartTime + } + return nil +} + +func (m *ExportDocumentsMetadata) GetEndTime() *timestamp.Timestamp { + if m != nil { + return m.EndTime + } + return nil +} + +func (m *ExportDocumentsMetadata) GetOperationState() OperationState { + if m != nil { + return m.OperationState + } + return OperationState_OPERATION_STATE_UNSPECIFIED +} + +func (m *ExportDocumentsMetadata) GetProgressDocuments() *Progress { + if m != nil { + return m.ProgressDocuments + } + return nil +} + +func (m *ExportDocumentsMetadata) GetProgressBytes() *Progress { + if m != nil { + return m.ProgressBytes + } + return nil +} + +func (m *ExportDocumentsMetadata) GetCollectionIds() []string { + if m != nil { + return m.CollectionIds + } + return nil +} + +func (m *ExportDocumentsMetadata) GetOutputUriPrefix() string { + if m != nil { + return m.OutputUriPrefix + } + return "" +} + +// Metadata for [google.longrunning.Operation][google.longrunning.Operation] results from +// [FirestoreAdmin.ImportDocuments][google.firestore.admin.v1.FirestoreAdmin.ImportDocuments]. +type ImportDocumentsMetadata struct { + // The time this operation started. + StartTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` + // The time this operation completed. Will be unset if operation still in + // progress. + EndTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` + // The state of the import operation. + OperationState OperationState `protobuf:"varint,3,opt,name=operation_state,json=operationState,proto3,enum=google.firestore.admin.v1.OperationState" json:"operation_state,omitempty"` + // The progress, in documents, of this operation. + ProgressDocuments *Progress `protobuf:"bytes,4,opt,name=progress_documents,json=progressDocuments,proto3" json:"progress_documents,omitempty"` + // The progress, in bytes, of this operation. + ProgressBytes *Progress `protobuf:"bytes,5,opt,name=progress_bytes,json=progressBytes,proto3" json:"progress_bytes,omitempty"` + // Which collection ids are being imported. + CollectionIds []string `protobuf:"bytes,6,rep,name=collection_ids,json=collectionIds,proto3" json:"collection_ids,omitempty"` + // The location of the documents being imported. + InputUriPrefix string `protobuf:"bytes,7,opt,name=input_uri_prefix,json=inputUriPrefix,proto3" json:"input_uri_prefix,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ImportDocumentsMetadata) Reset() { *m = ImportDocumentsMetadata{} } +func (m *ImportDocumentsMetadata) String() string { return proto.CompactTextString(m) } +func (*ImportDocumentsMetadata) ProtoMessage() {} +func (*ImportDocumentsMetadata) Descriptor() ([]byte, []int) { + return fileDescriptor_operation_ab210cd74615767a, []int{3} +} +func (m *ImportDocumentsMetadata) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ImportDocumentsMetadata.Unmarshal(m, b) +} +func (m *ImportDocumentsMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ImportDocumentsMetadata.Marshal(b, m, deterministic) +} +func (dst *ImportDocumentsMetadata) XXX_Merge(src proto.Message) { + xxx_messageInfo_ImportDocumentsMetadata.Merge(dst, src) +} +func (m *ImportDocumentsMetadata) XXX_Size() int { + return xxx_messageInfo_ImportDocumentsMetadata.Size(m) +} +func (m *ImportDocumentsMetadata) XXX_DiscardUnknown() { + xxx_messageInfo_ImportDocumentsMetadata.DiscardUnknown(m) +} + +var xxx_messageInfo_ImportDocumentsMetadata proto.InternalMessageInfo + +func (m *ImportDocumentsMetadata) GetStartTime() *timestamp.Timestamp { + if m != nil { + return m.StartTime + } + return nil +} + +func (m *ImportDocumentsMetadata) GetEndTime() *timestamp.Timestamp { + if m != nil { + return m.EndTime + } + return nil +} + +func (m *ImportDocumentsMetadata) GetOperationState() OperationState { + if m != nil { + return m.OperationState + } + return OperationState_OPERATION_STATE_UNSPECIFIED +} + +func (m *ImportDocumentsMetadata) GetProgressDocuments() *Progress { + if m != nil { + return m.ProgressDocuments + } + return nil +} + +func (m *ImportDocumentsMetadata) GetProgressBytes() *Progress { + if m != nil { + return m.ProgressBytes + } + return nil +} + +func (m *ImportDocumentsMetadata) GetCollectionIds() []string { + if m != nil { + return m.CollectionIds + } + return nil +} + +func (m *ImportDocumentsMetadata) GetInputUriPrefix() string { + if m != nil { + return m.InputUriPrefix + } + return "" +} + +// Returned in the [google.longrunning.Operation][google.longrunning.Operation] response field. +type ExportDocumentsResponse struct { + // Location of the output files. This can be used to begin an import + // into Cloud Firestore (this project or another project) after the operation + // completes successfully. + OutputUriPrefix string `protobuf:"bytes,1,opt,name=output_uri_prefix,json=outputUriPrefix,proto3" json:"output_uri_prefix,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ExportDocumentsResponse) Reset() { *m = ExportDocumentsResponse{} } +func (m *ExportDocumentsResponse) String() string { return proto.CompactTextString(m) } +func (*ExportDocumentsResponse) ProtoMessage() {} +func (*ExportDocumentsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_operation_ab210cd74615767a, []int{4} +} +func (m *ExportDocumentsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ExportDocumentsResponse.Unmarshal(m, b) +} +func (m *ExportDocumentsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ExportDocumentsResponse.Marshal(b, m, deterministic) +} +func (dst *ExportDocumentsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ExportDocumentsResponse.Merge(dst, src) +} +func (m *ExportDocumentsResponse) XXX_Size() int { + return xxx_messageInfo_ExportDocumentsResponse.Size(m) +} +func (m *ExportDocumentsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ExportDocumentsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ExportDocumentsResponse proto.InternalMessageInfo + +func (m *ExportDocumentsResponse) GetOutputUriPrefix() string { + if m != nil { + return m.OutputUriPrefix + } + return "" +} + +// Describes the progress of the operation. +// Unit of work is generic and must be interpreted based on where [Progress][google.firestore.admin.v1.Progress] +// is used. +type Progress struct { + // The amount of work estimated. + EstimatedWork int64 `protobuf:"varint,1,opt,name=estimated_work,json=estimatedWork,proto3" json:"estimated_work,omitempty"` + // The amount of work completed. + CompletedWork int64 `protobuf:"varint,2,opt,name=completed_work,json=completedWork,proto3" json:"completed_work,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Progress) Reset() { *m = Progress{} } +func (m *Progress) String() string { return proto.CompactTextString(m) } +func (*Progress) ProtoMessage() {} +func (*Progress) Descriptor() ([]byte, []int) { + return fileDescriptor_operation_ab210cd74615767a, []int{5} +} +func (m *Progress) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Progress.Unmarshal(m, b) +} +func (m *Progress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Progress.Marshal(b, m, deterministic) +} +func (dst *Progress) XXX_Merge(src proto.Message) { + xxx_messageInfo_Progress.Merge(dst, src) +} +func (m *Progress) XXX_Size() int { + return xxx_messageInfo_Progress.Size(m) +} +func (m *Progress) XXX_DiscardUnknown() { + xxx_messageInfo_Progress.DiscardUnknown(m) +} + +var xxx_messageInfo_Progress proto.InternalMessageInfo + +func (m *Progress) GetEstimatedWork() int64 { + if m != nil { + return m.EstimatedWork + } + return 0 +} + +func (m *Progress) GetCompletedWork() int64 { + if m != nil { + return m.CompletedWork + } + return 0 +} + +func init() { + proto.RegisterType((*IndexOperationMetadata)(nil), "google.firestore.admin.v1.IndexOperationMetadata") + proto.RegisterType((*FieldOperationMetadata)(nil), "google.firestore.admin.v1.FieldOperationMetadata") + proto.RegisterType((*FieldOperationMetadata_IndexConfigDelta)(nil), "google.firestore.admin.v1.FieldOperationMetadata.IndexConfigDelta") + proto.RegisterType((*ExportDocumentsMetadata)(nil), "google.firestore.admin.v1.ExportDocumentsMetadata") + proto.RegisterType((*ImportDocumentsMetadata)(nil), "google.firestore.admin.v1.ImportDocumentsMetadata") + proto.RegisterType((*ExportDocumentsResponse)(nil), "google.firestore.admin.v1.ExportDocumentsResponse") + proto.RegisterType((*Progress)(nil), "google.firestore.admin.v1.Progress") + proto.RegisterEnum("google.firestore.admin.v1.OperationState", OperationState_name, OperationState_value) + proto.RegisterEnum("google.firestore.admin.v1.FieldOperationMetadata_IndexConfigDelta_ChangeType", FieldOperationMetadata_IndexConfigDelta_ChangeType_name, FieldOperationMetadata_IndexConfigDelta_ChangeType_value) +} + +func init() { + proto.RegisterFile("google/firestore/admin/v1/operation.proto", fileDescriptor_operation_ab210cd74615767a) +} + +var fileDescriptor_operation_ab210cd74615767a = []byte{ + // 848 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x56, 0x4f, 0x6f, 0xe3, 0x44, + 0x1c, 0xc5, 0x71, 0x92, 0x6e, 0x7e, 0xa5, 0x59, 0x77, 0x40, 0xdb, 0xd0, 0x05, 0x35, 0x0a, 0x5a, + 0x29, 0xbb, 0x07, 0x47, 0x2d, 0x02, 0x09, 0x21, 0x2d, 0x4a, 0x1d, 0xa7, 0x18, 0xa5, 0x89, 0xe5, + 0xa4, 0x05, 0x56, 0x95, 0x2c, 0x37, 0x9e, 0x98, 0xd1, 0xda, 0x1e, 0xcb, 0x33, 0x59, 0xda, 0x23, + 0x5f, 0x84, 0x03, 0x47, 0x3e, 0x03, 0x9f, 0x80, 0x13, 0xe2, 0xa3, 0x70, 0xe4, 0x84, 0x66, 0xfc, + 0x27, 0xda, 0x92, 0x14, 0x58, 0x2a, 0xb1, 0x87, 0xbd, 0xe5, 0xf7, 0xf3, 0x7b, 0x6f, 0x7e, 0x33, + 0xef, 0xcd, 0x28, 0xf0, 0x38, 0xa0, 0x34, 0x08, 0x71, 0x6f, 0x41, 0x52, 0xcc, 0x38, 0x4d, 0x71, + 0xcf, 0xf3, 0x23, 0x12, 0xf7, 0x5e, 0x1c, 0xf6, 0x68, 0x82, 0x53, 0x8f, 0x13, 0x1a, 0xeb, 0x49, + 0x4a, 0x39, 0x45, 0xef, 0x65, 0x50, 0xbd, 0x84, 0xea, 0x12, 0xaa, 0xbf, 0x38, 0xdc, 0x7f, 0x3f, + 0x57, 0xf1, 0x12, 0xd2, 0xf3, 0xe2, 0x98, 0x72, 0xc9, 0x63, 0x19, 0x71, 0xff, 0xd1, 0xe6, 0x35, + 0x48, 0xec, 0xe3, 0xab, 0x1c, 0x76, 0x90, 0xc3, 0x64, 0x75, 0xb9, 0x5c, 0xf4, 0x38, 0x89, 0x30, + 0xe3, 0x5e, 0x94, 0x64, 0x80, 0xce, 0xf7, 0x2a, 0x3c, 0xb0, 0x04, 0x61, 0x52, 0x4c, 0x76, 0x8a, + 0xb9, 0xe7, 0x7b, 0xdc, 0x43, 0x9f, 0x02, 0x30, 0xee, 0xa5, 0xdc, 0x15, 0x9c, 0x96, 0xd2, 0x56, + 0xba, 0xdb, 0x47, 0xfb, 0x7a, 0x3e, 0x70, 0x21, 0xa8, 0xcf, 0x0a, 0x41, 0xa7, 0x21, 0xd1, 0xa2, + 0x46, 0x1f, 0xc3, 0x3d, 0x1c, 0xfb, 0x19, 0xb1, 0xf2, 0xb7, 0xc4, 0x2d, 0x1c, 0xfb, 0x92, 0xf6, + 0x2e, 0xd4, 0xe4, 0xf0, 0x2d, 0xb5, 0xad, 0x74, 0x1b, 0x4e, 0x56, 0xa0, 0xcf, 0xa1, 0xc6, 0xb8, + 0xc7, 0x71, 0xab, 0xda, 0x56, 0xba, 0xcd, 0xa3, 0xc7, 0xfa, 0xc6, 0x33, 0xd3, 0xcb, 0x4d, 0x4c, + 0x05, 0xc1, 0xc9, 0x78, 0xc8, 0x01, 0x94, 0xa4, 0x34, 0x48, 0x31, 0x63, 0xae, 0x4f, 0xe7, 0xcb, + 0x08, 0xc7, 0x9c, 0xb5, 0x6a, 0x72, 0xae, 0x0f, 0x6f, 0x51, 0xb3, 0x73, 0x92, 0xb3, 0x5b, 0xd0, + 0x07, 0x05, 0x1b, 0x7d, 0x09, 0xcd, 0x52, 0xf3, 0xf2, 0x9a, 0x63, 0xd6, 0xaa, 0xff, 0x73, 0xbd, + 0x9d, 0x82, 0x7a, 0x2c, 0x98, 0x9d, 0xdf, 0x6b, 0xf0, 0x60, 0x48, 0x70, 0xe8, 0xbf, 0x26, 0x1e, + 0x2c, 0xc4, 0x2c, 0x85, 0x07, 0xb2, 0x40, 0x29, 0xbc, 0x23, 0xcd, 0x70, 0xe7, 0x34, 0x5e, 0x90, + 0xc0, 0xf5, 0x71, 0xc8, 0x3d, 0xd6, 0xaa, 0xb6, 0xd5, 0xee, 0xf6, 0xd1, 0xf1, 0x2d, 0x7b, 0x5e, + 0xbf, 0x2f, 0x5d, 0x46, 0xce, 0x90, 0x5a, 0x03, 0x21, 0xe5, 0xec, 0x92, 0x1b, 0x1d, 0xb6, 0xf2, + 0xbd, 0x76, 0xa7, 0xbe, 0xd7, 0xef, 0xd8, 0xf7, 0xad, 0x57, 0xf5, 0x7d, 0xff, 0x0f, 0x05, 0xb4, + 0x9b, 0x07, 0x81, 0x62, 0xd8, 0x9e, 0x7f, 0xeb, 0xc5, 0x01, 0x76, 0xf9, 0x75, 0x92, 0x59, 0xde, + 0x3c, 0x3a, 0xfd, 0xef, 0x27, 0xac, 0x1b, 0x52, 0x75, 0x76, 0x9d, 0x60, 0x07, 0xe6, 0xe5, 0x6f, + 0xf4, 0x49, 0x71, 0xe7, 0xb2, 0x8c, 0xb4, 0x6f, 0x59, 0x49, 0x4a, 0xe6, 0xb7, 0xb2, 0xf3, 0x14, + 0x60, 0xa5, 0x88, 0x1e, 0xc2, 0x9e, 0xf1, 0x45, 0x7f, 0x7c, 0x62, 0xba, 0xb3, 0x6f, 0x6c, 0xd3, + 0x3d, 0x1b, 0x4f, 0x6d, 0xd3, 0xb0, 0x86, 0x96, 0x39, 0xd0, 0xde, 0x42, 0x5b, 0xa0, 0xf6, 0x07, + 0x03, 0x4d, 0x41, 0x00, 0x75, 0xc7, 0x3c, 0x9d, 0x9c, 0x9b, 0x5a, 0xa5, 0xf3, 0x9b, 0x0a, 0x7b, + 0xe6, 0x55, 0x42, 0x53, 0x5e, 0x1e, 0xee, 0xff, 0x98, 0x7a, 0x07, 0xee, 0x97, 0x4f, 0xb3, 0x9b, + 0xa5, 0x4e, 0xfd, 0xb7, 0xa9, 0x6b, 0xd2, 0x97, 0xea, 0x0d, 0xf1, 0xab, 0xde, 0x71, 0xfc, 0x6a, + 0xaf, 0x1a, 0x3f, 0xf4, 0x08, 0x9a, 0x73, 0x1a, 0x86, 0x78, 0x2e, 0x37, 0x4d, 0x7c, 0x71, 0x35, + 0xd4, 0x6e, 0xc3, 0xd9, 0x59, 0x75, 0x2d, 0x9f, 0xa1, 0x27, 0xb0, 0x4b, 0x97, 0x3c, 0x59, 0x72, + 0x77, 0x99, 0x12, 0x37, 0x49, 0xf1, 0x82, 0x5c, 0xc9, 0xd0, 0x37, 0x9c, 0xfb, 0xd9, 0x87, 0xb3, + 0x94, 0xd8, 0xb2, 0xdd, 0xf9, 0x55, 0x85, 0x3d, 0x2b, 0x7a, 0x63, 0xea, 0x6b, 0x6f, 0x6a, 0x17, + 0x34, 0x12, 0xaf, 0xf5, 0xb4, 0x29, 0xfb, 0x2b, 0x4b, 0xcd, 0xbf, 0x5c, 0x53, 0x07, 0xb3, 0x84, + 0xc6, 0x0c, 0xaf, 0x4f, 0x86, 0xb2, 0x3e, 0x19, 0x5f, 0xc3, 0xbd, 0x62, 0x64, 0x31, 0x23, 0x66, + 0x9c, 0x44, 0x1e, 0xc7, 0xbe, 0xfb, 0x1d, 0x4d, 0x9f, 0x4b, 0x92, 0xea, 0xec, 0x94, 0xdd, 0xaf, + 0x68, 0xfa, 0x3c, 0xdb, 0x4a, 0x94, 0x84, 0xb8, 0x84, 0x55, 0x32, 0x58, 0xd9, 0x15, 0xb0, 0x27, + 0x3f, 0x28, 0xd0, 0x7c, 0xd9, 0x34, 0x74, 0x00, 0x0f, 0x27, 0xb6, 0xe9, 0xf4, 0x67, 0xd6, 0x64, + 0xec, 0x4e, 0x67, 0xfd, 0xd9, 0xcd, 0x17, 0x49, 0x83, 0xb7, 0xad, 0xb1, 0x35, 0xb3, 0xfa, 0x23, + 0xeb, 0x99, 0x35, 0x3e, 0xd1, 0x14, 0xd4, 0x04, 0xb0, 0x9d, 0x89, 0x61, 0x4e, 0xa7, 0xa2, 0xae, + 0x88, 0xda, 0xe8, 0x8f, 0x0d, 0x73, 0x34, 0x12, 0xb5, 0x2a, 0xea, 0xa1, 0x35, 0x2e, 0xf0, 0x55, + 0x51, 0x4f, 0xcf, 0x0c, 0x81, 0x1f, 0x9e, 0x8d, 0xb4, 0x9a, 0x78, 0xda, 0x86, 0x7d, 0x6b, 0x64, + 0x0e, 0xb4, 0x3a, 0xda, 0x81, 0x46, 0xce, 0x35, 0x07, 0xda, 0xd6, 0xf1, 0xcf, 0x0a, 0x7c, 0x30, + 0xa7, 0xd1, 0x66, 0x33, 0x8f, 0x57, 0xf3, 0xdb, 0x22, 0xce, 0xb6, 0xf2, 0xec, 0x69, 0x0e, 0x0e, + 0x68, 0xe8, 0xc5, 0x81, 0x4e, 0xd3, 0xa0, 0x17, 0xe0, 0x58, 0x86, 0xbd, 0x97, 0x7d, 0xf2, 0x12, + 0xc2, 0xd6, 0xfc, 0xfb, 0xfb, 0x4c, 0xfe, 0xf8, 0xb1, 0x52, 0x3d, 0x31, 0x86, 0xd3, 0x9f, 0x2a, + 0x07, 0x27, 0x99, 0x8e, 0x11, 0xd2, 0xa5, 0xaf, 0x0f, 0xcb, 0xa5, 0xfb, 0x72, 0xe9, 0xf3, 0xc3, + 0x5f, 0x0a, 0xc4, 0x85, 0x44, 0x5c, 0x94, 0x88, 0x0b, 0x89, 0xb8, 0x38, 0x3f, 0xbc, 0xac, 0xcb, + 0x55, 0x3f, 0xfa, 0x33, 0x00, 0x00, 0xff, 0xff, 0x1f, 0x64, 0x42, 0x3c, 0xd6, 0x0a, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/firestore/admin/v1beta1/firestore_admin.pb.go b/vendor/google.golang.org/genproto/googleapis/firestore/admin/v1beta1/firestore_admin.pb.go index ac7f1bee8..86ee9d107 100644 --- a/vendor/google.golang.org/genproto/googleapis/firestore/admin/v1beta1/firestore_admin.pb.go +++ b/vendor/google.golang.org/genproto/googleapis/firestore/admin/v1beta1/firestore_admin.pb.go @@ -76,7 +76,7 @@ func (x OperationState) String() string { return proto.EnumName(OperationState_name, int32(x)) } func (OperationState) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_firestore_admin_09f1d024c210e695, []int{0} + return fileDescriptor_firestore_admin_fc9ddf055db6d044, []int{0} } // The type of index operation. @@ -102,7 +102,7 @@ func (x IndexOperationMetadata_OperationType) String() string { return proto.EnumName(IndexOperationMetadata_OperationType_name, int32(x)) } func (IndexOperationMetadata_OperationType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_firestore_admin_09f1d024c210e695, []int{0, 0} + return fileDescriptor_firestore_admin_fc9ddf055db6d044, []int{0, 0} } // Metadata for index operations. This metadata populates @@ -133,7 +133,7 @@ func (m *IndexOperationMetadata) Reset() { *m = IndexOperationMetadata{} func (m *IndexOperationMetadata) String() string { return proto.CompactTextString(m) } func (*IndexOperationMetadata) ProtoMessage() {} func (*IndexOperationMetadata) Descriptor() ([]byte, []int) { - return fileDescriptor_firestore_admin_09f1d024c210e695, []int{0} + return fileDescriptor_firestore_admin_fc9ddf055db6d044, []int{0} } func (m *IndexOperationMetadata) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_IndexOperationMetadata.Unmarshal(m, b) @@ -212,7 +212,7 @@ func (m *Progress) Reset() { *m = Progress{} } func (m *Progress) String() string { return proto.CompactTextString(m) } func (*Progress) ProtoMessage() {} func (*Progress) Descriptor() ([]byte, []int) { - return fileDescriptor_firestore_admin_09f1d024c210e695, []int{1} + return fileDescriptor_firestore_admin_fc9ddf055db6d044, []int{1} } func (m *Progress) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Progress.Unmarshal(m, b) @@ -263,7 +263,7 @@ func (m *CreateIndexRequest) Reset() { *m = CreateIndexRequest{} } func (m *CreateIndexRequest) String() string { return proto.CompactTextString(m) } func (*CreateIndexRequest) ProtoMessage() {} func (*CreateIndexRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_firestore_admin_09f1d024c210e695, []int{2} + return fileDescriptor_firestore_admin_fc9ddf055db6d044, []int{2} } func (m *CreateIndexRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateIndexRequest.Unmarshal(m, b) @@ -311,7 +311,7 @@ func (m *GetIndexRequest) Reset() { *m = GetIndexRequest{} } func (m *GetIndexRequest) String() string { return proto.CompactTextString(m) } func (*GetIndexRequest) ProtoMessage() {} func (*GetIndexRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_firestore_admin_09f1d024c210e695, []int{3} + return fileDescriptor_firestore_admin_fc9ddf055db6d044, []int{3} } func (m *GetIndexRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetIndexRequest.Unmarshal(m, b) @@ -357,7 +357,7 @@ func (m *ListIndexesRequest) Reset() { *m = ListIndexesRequest{} } func (m *ListIndexesRequest) String() string { return proto.CompactTextString(m) } func (*ListIndexesRequest) ProtoMessage() {} func (*ListIndexesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_firestore_admin_09f1d024c210e695, []int{4} + return fileDescriptor_firestore_admin_fc9ddf055db6d044, []int{4} } func (m *ListIndexesRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListIndexesRequest.Unmarshal(m, b) @@ -419,7 +419,7 @@ func (m *DeleteIndexRequest) Reset() { *m = DeleteIndexRequest{} } func (m *DeleteIndexRequest) String() string { return proto.CompactTextString(m) } func (*DeleteIndexRequest) ProtoMessage() {} func (*DeleteIndexRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_firestore_admin_09f1d024c210e695, []int{5} + return fileDescriptor_firestore_admin_fc9ddf055db6d044, []int{5} } func (m *DeleteIndexRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteIndexRequest.Unmarshal(m, b) @@ -461,7 +461,7 @@ func (m *ListIndexesResponse) Reset() { *m = ListIndexesResponse{} } func (m *ListIndexesResponse) String() string { return proto.CompactTextString(m) } func (*ListIndexesResponse) ProtoMessage() {} func (*ListIndexesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_firestore_admin_09f1d024c210e695, []int{6} + return fileDescriptor_firestore_admin_fc9ddf055db6d044, []int{6} } func (m *ListIndexesResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListIndexesResponse.Unmarshal(m, b) @@ -520,7 +520,7 @@ func (m *ExportDocumentsRequest) Reset() { *m = ExportDocumentsRequest{} func (m *ExportDocumentsRequest) String() string { return proto.CompactTextString(m) } func (*ExportDocumentsRequest) ProtoMessage() {} func (*ExportDocumentsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_firestore_admin_09f1d024c210e695, []int{7} + return fileDescriptor_firestore_admin_fc9ddf055db6d044, []int{7} } func (m *ExportDocumentsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ExportDocumentsRequest.Unmarshal(m, b) @@ -584,7 +584,7 @@ func (m *ImportDocumentsRequest) Reset() { *m = ImportDocumentsRequest{} func (m *ImportDocumentsRequest) String() string { return proto.CompactTextString(m) } func (*ImportDocumentsRequest) ProtoMessage() {} func (*ImportDocumentsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_firestore_admin_09f1d024c210e695, []int{8} + return fileDescriptor_firestore_admin_fc9ddf055db6d044, []int{8} } func (m *ImportDocumentsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ImportDocumentsRequest.Unmarshal(m, b) @@ -640,7 +640,7 @@ func (m *ExportDocumentsResponse) Reset() { *m = ExportDocumentsResponse func (m *ExportDocumentsResponse) String() string { return proto.CompactTextString(m) } func (*ExportDocumentsResponse) ProtoMessage() {} func (*ExportDocumentsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_firestore_admin_09f1d024c210e695, []int{9} + return fileDescriptor_firestore_admin_fc9ddf055db6d044, []int{9} } func (m *ExportDocumentsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ExportDocumentsResponse.Unmarshal(m, b) @@ -693,7 +693,7 @@ func (m *ExportDocumentsMetadata) Reset() { *m = ExportDocumentsMetadata func (m *ExportDocumentsMetadata) String() string { return proto.CompactTextString(m) } func (*ExportDocumentsMetadata) ProtoMessage() {} func (*ExportDocumentsMetadata) Descriptor() ([]byte, []int) { - return fileDescriptor_firestore_admin_09f1d024c210e695, []int{10} + return fileDescriptor_firestore_admin_fc9ddf055db6d044, []int{10} } func (m *ExportDocumentsMetadata) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ExportDocumentsMetadata.Unmarshal(m, b) @@ -788,7 +788,7 @@ func (m *ImportDocumentsMetadata) Reset() { *m = ImportDocumentsMetadata func (m *ImportDocumentsMetadata) String() string { return proto.CompactTextString(m) } func (*ImportDocumentsMetadata) ProtoMessage() {} func (*ImportDocumentsMetadata) Descriptor() ([]byte, []int) { - return fileDescriptor_firestore_admin_09f1d024c210e695, []int{11} + return fileDescriptor_firestore_admin_fc9ddf055db6d044, []int{11} } func (m *ImportDocumentsMetadata) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ImportDocumentsMetadata.Unmarshal(m, b) @@ -1170,10 +1170,10 @@ var _FirestoreAdmin_serviceDesc = grpc.ServiceDesc{ } func init() { - proto.RegisterFile("google/firestore/admin/v1beta1/firestore_admin.proto", fileDescriptor_firestore_admin_09f1d024c210e695) + proto.RegisterFile("google/firestore/admin/v1beta1/firestore_admin.proto", fileDescriptor_firestore_admin_fc9ddf055db6d044) } -var fileDescriptor_firestore_admin_09f1d024c210e695 = []byte{ +var fileDescriptor_firestore_admin_fc9ddf055db6d044 = []byte{ // 1183 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x57, 0xdd, 0x6e, 0xe3, 0xc4, 0x17, 0xff, 0x3b, 0x69, 0x93, 0xe6, 0xf4, 0x9f, 0x34, 0x9d, 0x85, 0x6c, 0x94, 0xfd, 0x20, 0x32, diff --git a/vendor/google.golang.org/genproto/googleapis/firestore/admin/v1beta1/index.pb.go b/vendor/google.golang.org/genproto/googleapis/firestore/admin/v1beta1/index.pb.go index 396c7365f..e0fc7a453 100644 --- a/vendor/google.golang.org/genproto/googleapis/firestore/admin/v1beta1/index.pb.go +++ b/vendor/google.golang.org/genproto/googleapis/firestore/admin/v1beta1/index.pb.go @@ -53,7 +53,7 @@ func (x IndexField_Mode) String() string { return proto.EnumName(IndexField_Mode_name, int32(x)) } func (IndexField_Mode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_index_1d76a8618e50431f, []int{0, 0} + return fileDescriptor_index_fc07c0d41eedbbb3, []int{0, 0} } // The state of an index. During index creation, an index will be in the @@ -99,7 +99,7 @@ func (x Index_State) String() string { return proto.EnumName(Index_State_name, int32(x)) } func (Index_State) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_index_1d76a8618e50431f, []int{1, 0} + return fileDescriptor_index_fc07c0d41eedbbb3, []int{1, 0} } // A field of an index. @@ -120,7 +120,7 @@ func (m *IndexField) Reset() { *m = IndexField{} } func (m *IndexField) String() string { return proto.CompactTextString(m) } func (*IndexField) ProtoMessage() {} func (*IndexField) Descriptor() ([]byte, []int) { - return fileDescriptor_index_1d76a8618e50431f, []int{0} + return fileDescriptor_index_fc07c0d41eedbbb3, []int{0} } func (m *IndexField) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_IndexField.Unmarshal(m, b) @@ -175,7 +175,7 @@ func (m *Index) Reset() { *m = Index{} } func (m *Index) String() string { return proto.CompactTextString(m) } func (*Index) ProtoMessage() {} func (*Index) Descriptor() ([]byte, []int) { - return fileDescriptor_index_1d76a8618e50431f, []int{1} + return fileDescriptor_index_fc07c0d41eedbbb3, []int{1} } func (m *Index) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Index.Unmarshal(m, b) @@ -231,10 +231,10 @@ func init() { } func init() { - proto.RegisterFile("google/firestore/admin/v1beta1/index.proto", fileDescriptor_index_1d76a8618e50431f) + proto.RegisterFile("google/firestore/admin/v1beta1/index.proto", fileDescriptor_index_fc07c0d41eedbbb3) } -var fileDescriptor_index_1d76a8618e50431f = []byte{ +var fileDescriptor_index_fc07c0d41eedbbb3 = []byte{ // 438 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x52, 0x5d, 0x8b, 0xd3, 0x40, 0x14, 0x35, 0x69, 0x52, 0xcc, 0x75, 0xb7, 0xc4, 0x41, 0xa1, 0x88, 0x4a, 0x89, 0x3e, 0x94, 0x15, diff --git a/vendor/google.golang.org/genproto/googleapis/firestore/admin/v1beta1/location.pb.go b/vendor/google.golang.org/genproto/googleapis/firestore/admin/v1beta1/location.pb.go new file mode 100644 index 000000000..4b5cf2b55 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/firestore/admin/v1beta1/location.pb.go @@ -0,0 +1,78 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/firestore/admin/v1beta1/location.proto + +package admin // import "google.golang.org/genproto/googleapis/firestore/admin/v1beta1" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import _ "google.golang.org/genproto/googleapis/api/annotations" +import _ "google.golang.org/genproto/googleapis/type/latlng" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// The metadata message for [google.cloud.location.Location.metadata][google.cloud.location.Location.metadata]. +type LocationMetadata struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *LocationMetadata) Reset() { *m = LocationMetadata{} } +func (m *LocationMetadata) String() string { return proto.CompactTextString(m) } +func (*LocationMetadata) ProtoMessage() {} +func (*LocationMetadata) Descriptor() ([]byte, []int) { + return fileDescriptor_location_f1b8c59cf03288d9, []int{0} +} +func (m *LocationMetadata) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_LocationMetadata.Unmarshal(m, b) +} +func (m *LocationMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_LocationMetadata.Marshal(b, m, deterministic) +} +func (dst *LocationMetadata) XXX_Merge(src proto.Message) { + xxx_messageInfo_LocationMetadata.Merge(dst, src) +} +func (m *LocationMetadata) XXX_Size() int { + return xxx_messageInfo_LocationMetadata.Size(m) +} +func (m *LocationMetadata) XXX_DiscardUnknown() { + xxx_messageInfo_LocationMetadata.DiscardUnknown(m) +} + +var xxx_messageInfo_LocationMetadata proto.InternalMessageInfo + +func init() { + proto.RegisterType((*LocationMetadata)(nil), "google.firestore.admin.v1beta1.LocationMetadata") +} + +func init() { + proto.RegisterFile("google/firestore/admin/v1beta1/location.proto", fileDescriptor_location_f1b8c59cf03288d9) +} + +var fileDescriptor_location_f1b8c59cf03288d9 = []byte{ + // 217 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x8f, 0x31, 0x4b, 0xc0, 0x30, + 0x10, 0x85, 0x69, 0x11, 0x87, 0x82, 0x20, 0x9d, 0xa4, 0x88, 0x43, 0x71, 0x35, 0x47, 0x71, 0x74, + 0xb2, 0x85, 0x76, 0x51, 0x28, 0x08, 0x0e, 0x6e, 0xd7, 0x36, 0x86, 0x40, 0x9a, 0x0b, 0xe9, 0x29, + 0xf8, 0x77, 0x9c, 0xc4, 0x5f, 0x29, 0x4d, 0x62, 0x37, 0x1d, 0xc3, 0x7b, 0xdf, 0xf7, 0x2e, 0xc5, + 0x8d, 0x22, 0x52, 0x46, 0xc2, 0xab, 0xf6, 0x72, 0x63, 0xf2, 0x12, 0x70, 0x59, 0xb5, 0x85, 0xf7, + 0x66, 0x92, 0x8c, 0x0d, 0x18, 0x9a, 0x91, 0x35, 0x59, 0xe1, 0x3c, 0x31, 0x95, 0x57, 0xb1, 0x2e, + 0x8e, 0xba, 0x08, 0x75, 0x91, 0xea, 0xd5, 0x65, 0xd2, 0xa1, 0xd3, 0x80, 0xd6, 0x12, 0x07, 0x78, + 0x8b, 0x74, 0x75, 0x91, 0x52, 0xfe, 0x70, 0x12, 0x0c, 0xb2, 0xb1, 0x2a, 0x26, 0x75, 0x59, 0x9c, + 0x3f, 0xa4, 0xa5, 0x47, 0xc9, 0xb8, 0x20, 0x63, 0xfb, 0x95, 0x15, 0xf5, 0x4c, 0xab, 0xf8, 0x7f, + 0xb2, 0x3d, 0xfb, 0x05, 0xc7, 0xdd, 0x34, 0x66, 0x2f, 0x5d, 0x02, 0x14, 0x19, 0xb4, 0x4a, 0x90, + 0x57, 0xa0, 0xa4, 0x0d, 0x3b, 0x10, 0x23, 0x74, 0x7a, 0xfb, 0xeb, 0xc7, 0x77, 0xe1, 0xf5, 0x99, + 0x9f, 0x0c, 0x5d, 0xff, 0xf4, 0x9d, 0x5f, 0x0f, 0x51, 0xd6, 0x19, 0x7a, 0x5b, 0x44, 0x7f, 0xdc, + 0x70, 0x1f, 0x6e, 0x78, 0x6e, 0xda, 0x9d, 0x99, 0x4e, 0x83, 0xfd, 0xf6, 0x27, 0x00, 0x00, 0xff, + 0xff, 0x3c, 0x05, 0x73, 0x2c, 0x4e, 0x01, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/firestore/admin/v1beta2/field.pb.go b/vendor/google.golang.org/genproto/googleapis/firestore/admin/v1beta2/field.pb.go index 7811b0a9d..ee90516dd 100644 --- a/vendor/google.golang.org/genproto/googleapis/firestore/admin/v1beta2/field.pb.go +++ b/vendor/google.golang.org/genproto/googleapis/firestore/admin/v1beta2/field.pb.go @@ -65,7 +65,7 @@ func (m *Field) Reset() { *m = Field{} } func (m *Field) String() string { return proto.CompactTextString(m) } func (*Field) ProtoMessage() {} func (*Field) Descriptor() ([]byte, []int) { - return fileDescriptor_field_eabd3bc03800743e, []int{0} + return fileDescriptor_field_6bc9249960293f54, []int{0} } func (m *Field) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Field.Unmarshal(m, b) @@ -129,7 +129,7 @@ func (m *Field_IndexConfig) Reset() { *m = Field_IndexConfig{} } func (m *Field_IndexConfig) String() string { return proto.CompactTextString(m) } func (*Field_IndexConfig) ProtoMessage() {} func (*Field_IndexConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_field_eabd3bc03800743e, []int{0, 0} + return fileDescriptor_field_6bc9249960293f54, []int{0, 0} } func (m *Field_IndexConfig) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Field_IndexConfig.Unmarshal(m, b) @@ -183,10 +183,10 @@ func init() { } func init() { - proto.RegisterFile("google/firestore/admin/v1beta2/field.proto", fileDescriptor_field_eabd3bc03800743e) + proto.RegisterFile("google/firestore/admin/v1beta2/field.proto", fileDescriptor_field_6bc9249960293f54) } -var fileDescriptor_field_eabd3bc03800743e = []byte{ +var fileDescriptor_field_6bc9249960293f54 = []byte{ // 346 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x91, 0xcf, 0x4a, 0xf3, 0x40, 0x14, 0xc5, 0x99, 0xb4, 0xdf, 0xa7, 0x9d, 0xa8, 0x8b, 0xc1, 0x45, 0x28, 0x45, 0x4a, 0xb1, 0x50, diff --git a/vendor/google.golang.org/genproto/googleapis/firestore/admin/v1beta2/firestore_admin.pb.go b/vendor/google.golang.org/genproto/googleapis/firestore/admin/v1beta2/firestore_admin.pb.go index 4fe981dd7..8bb49ffc1 100644 --- a/vendor/google.golang.org/genproto/googleapis/firestore/admin/v1beta2/firestore_admin.pb.go +++ b/vendor/google.golang.org/genproto/googleapis/firestore/admin/v1beta2/firestore_admin.pb.go @@ -6,7 +6,7 @@ package admin // import "google.golang.org/genproto/googleapis/firestore/admin/v import proto "github.com/golang/protobuf/proto" import fmt "fmt" import math "math" -import _ "github.com/golang/protobuf/ptypes/empty" +import empty "github.com/golang/protobuf/ptypes/empty" import _ "google.golang.org/genproto/googleapis/api/annotations" import longrunning "google.golang.org/genproto/googleapis/longrunning" import field_mask "google.golang.org/genproto/protobuf/field_mask" @@ -27,6 +27,258 @@ var _ = math.Inf // proto package needs to be updated. const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package +// The request for [FirestoreAdmin.CreateIndex][google.firestore.admin.v1beta2.FirestoreAdmin.CreateIndex]. +type CreateIndexRequest struct { + // A parent name of the form + // `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}` + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // The composite index to create. + Index *Index `protobuf:"bytes,2,opt,name=index,proto3" json:"index,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CreateIndexRequest) Reset() { *m = CreateIndexRequest{} } +func (m *CreateIndexRequest) String() string { return proto.CompactTextString(m) } +func (*CreateIndexRequest) ProtoMessage() {} +func (*CreateIndexRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_firestore_admin_7145281113ae4e9b, []int{0} +} +func (m *CreateIndexRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreateIndexRequest.Unmarshal(m, b) +} +func (m *CreateIndexRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreateIndexRequest.Marshal(b, m, deterministic) +} +func (dst *CreateIndexRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateIndexRequest.Merge(dst, src) +} +func (m *CreateIndexRequest) XXX_Size() int { + return xxx_messageInfo_CreateIndexRequest.Size(m) +} +func (m *CreateIndexRequest) XXX_DiscardUnknown() { + xxx_messageInfo_CreateIndexRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_CreateIndexRequest proto.InternalMessageInfo + +func (m *CreateIndexRequest) GetParent() string { + if m != nil { + return m.Parent + } + return "" +} + +func (m *CreateIndexRequest) GetIndex() *Index { + if m != nil { + return m.Index + } + return nil +} + +// The request for [FirestoreAdmin.ListIndexes][google.firestore.admin.v1beta2.FirestoreAdmin.ListIndexes]. +type ListIndexesRequest struct { + // A parent name of the form + // `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}` + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // The filter to apply to list results. + Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"` + // The number of results to return. + PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A page token, returned from a previous call to + // [FirestoreAdmin.ListIndexes][google.firestore.admin.v1beta2.FirestoreAdmin.ListIndexes], that may be used to get the next + // page of results. + PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListIndexesRequest) Reset() { *m = ListIndexesRequest{} } +func (m *ListIndexesRequest) String() string { return proto.CompactTextString(m) } +func (*ListIndexesRequest) ProtoMessage() {} +func (*ListIndexesRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_firestore_admin_7145281113ae4e9b, []int{1} +} +func (m *ListIndexesRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListIndexesRequest.Unmarshal(m, b) +} +func (m *ListIndexesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListIndexesRequest.Marshal(b, m, deterministic) +} +func (dst *ListIndexesRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListIndexesRequest.Merge(dst, src) +} +func (m *ListIndexesRequest) XXX_Size() int { + return xxx_messageInfo_ListIndexesRequest.Size(m) +} +func (m *ListIndexesRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ListIndexesRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ListIndexesRequest proto.InternalMessageInfo + +func (m *ListIndexesRequest) GetParent() string { + if m != nil { + return m.Parent + } + return "" +} + +func (m *ListIndexesRequest) GetFilter() string { + if m != nil { + return m.Filter + } + return "" +} + +func (m *ListIndexesRequest) GetPageSize() int32 { + if m != nil { + return m.PageSize + } + return 0 +} + +func (m *ListIndexesRequest) GetPageToken() string { + if m != nil { + return m.PageToken + } + return "" +} + +// The response for [FirestoreAdmin.ListIndexes][google.firestore.admin.v1beta2.FirestoreAdmin.ListIndexes]. +type ListIndexesResponse struct { + // The requested indexes. + Indexes []*Index `protobuf:"bytes,1,rep,name=indexes,proto3" json:"indexes,omitempty"` + // A page token that may be used to request another page of results. If blank, + // this is the last page. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListIndexesResponse) Reset() { *m = ListIndexesResponse{} } +func (m *ListIndexesResponse) String() string { return proto.CompactTextString(m) } +func (*ListIndexesResponse) ProtoMessage() {} +func (*ListIndexesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_firestore_admin_7145281113ae4e9b, []int{2} +} +func (m *ListIndexesResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListIndexesResponse.Unmarshal(m, b) +} +func (m *ListIndexesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListIndexesResponse.Marshal(b, m, deterministic) +} +func (dst *ListIndexesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListIndexesResponse.Merge(dst, src) +} +func (m *ListIndexesResponse) XXX_Size() int { + return xxx_messageInfo_ListIndexesResponse.Size(m) +} +func (m *ListIndexesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ListIndexesResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ListIndexesResponse proto.InternalMessageInfo + +func (m *ListIndexesResponse) GetIndexes() []*Index { + if m != nil { + return m.Indexes + } + return nil +} + +func (m *ListIndexesResponse) GetNextPageToken() string { + if m != nil { + return m.NextPageToken + } + return "" +} + +// The request for [FirestoreAdmin.GetIndex][google.firestore.admin.v1beta2.FirestoreAdmin.GetIndex]. +type GetIndexRequest struct { + // A name of the form + // `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{index_id}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetIndexRequest) Reset() { *m = GetIndexRequest{} } +func (m *GetIndexRequest) String() string { return proto.CompactTextString(m) } +func (*GetIndexRequest) ProtoMessage() {} +func (*GetIndexRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_firestore_admin_7145281113ae4e9b, []int{3} +} +func (m *GetIndexRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetIndexRequest.Unmarshal(m, b) +} +func (m *GetIndexRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetIndexRequest.Marshal(b, m, deterministic) +} +func (dst *GetIndexRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetIndexRequest.Merge(dst, src) +} +func (m *GetIndexRequest) XXX_Size() int { + return xxx_messageInfo_GetIndexRequest.Size(m) +} +func (m *GetIndexRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetIndexRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetIndexRequest proto.InternalMessageInfo + +func (m *GetIndexRequest) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +// The request for [FirestoreAdmin.DeleteIndex][google.firestore.admin.v1beta2.FirestoreAdmin.DeleteIndex]. +type DeleteIndexRequest struct { + // A name of the form + // `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{index_id}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DeleteIndexRequest) Reset() { *m = DeleteIndexRequest{} } +func (m *DeleteIndexRequest) String() string { return proto.CompactTextString(m) } +func (*DeleteIndexRequest) ProtoMessage() {} +func (*DeleteIndexRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_firestore_admin_7145281113ae4e9b, []int{4} +} +func (m *DeleteIndexRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteIndexRequest.Unmarshal(m, b) +} +func (m *DeleteIndexRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteIndexRequest.Marshal(b, m, deterministic) +} +func (dst *DeleteIndexRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteIndexRequest.Merge(dst, src) +} +func (m *DeleteIndexRequest) XXX_Size() int { + return xxx_messageInfo_DeleteIndexRequest.Size(m) +} +func (m *DeleteIndexRequest) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteIndexRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_DeleteIndexRequest proto.InternalMessageInfo + +func (m *DeleteIndexRequest) GetName() string { + if m != nil { + return m.Name + } + return "" +} + // The request for [FirestoreAdmin.UpdateField][google.firestore.admin.v1beta2.FirestoreAdmin.UpdateField]. type UpdateFieldRequest struct { // The field to be updated. @@ -43,7 +295,7 @@ func (m *UpdateFieldRequest) Reset() { *m = UpdateFieldRequest{} } func (m *UpdateFieldRequest) String() string { return proto.CompactTextString(m) } func (*UpdateFieldRequest) ProtoMessage() {} func (*UpdateFieldRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_firestore_admin_1ffbeeca3c483e85, []int{0} + return fileDescriptor_firestore_admin_7145281113ae4e9b, []int{5} } func (m *UpdateFieldRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UpdateFieldRequest.Unmarshal(m, b) @@ -80,7 +332,7 @@ func (m *UpdateFieldRequest) GetUpdateMask() *field_mask.FieldMask { // The request for [FirestoreAdmin.GetField][google.firestore.admin.v1beta2.FirestoreAdmin.GetField]. type GetFieldRequest struct { // A name of the form - // `/projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/fields/{field_id}` + // `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/fields/{field_id}` Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -91,7 +343,7 @@ func (m *GetFieldRequest) Reset() { *m = GetFieldRequest{} } func (m *GetFieldRequest) String() string { return proto.CompactTextString(m) } func (*GetFieldRequest) ProtoMessage() {} func (*GetFieldRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_firestore_admin_1ffbeeca3c483e85, []int{1} + return fileDescriptor_firestore_admin_7145281113ae4e9b, []int{6} } func (m *GetFieldRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetFieldRequest.Unmarshal(m, b) @@ -121,7 +373,7 @@ func (m *GetFieldRequest) GetName() string { // The request for [FirestoreAdmin.ListFields][google.firestore.admin.v1beta2.FirestoreAdmin.ListFields]. type ListFieldsRequest struct { // A parent name of the form - // `/projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}` + // `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}` Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` // The filter to apply to list results. Currently, // [FirestoreAdmin.ListFields][google.firestore.admin.v1beta2.FirestoreAdmin.ListFields] only supports listing fields @@ -144,7 +396,7 @@ func (m *ListFieldsRequest) Reset() { *m = ListFieldsRequest{} } func (m *ListFieldsRequest) String() string { return proto.CompactTextString(m) } func (*ListFieldsRequest) ProtoMessage() {} func (*ListFieldsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_firestore_admin_1ffbeeca3c483e85, []int{2} + return fileDescriptor_firestore_admin_7145281113ae4e9b, []int{7} } func (m *ListFieldsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListFieldsRequest.Unmarshal(m, b) @@ -208,7 +460,7 @@ func (m *ListFieldsResponse) Reset() { *m = ListFieldsResponse{} } func (m *ListFieldsResponse) String() string { return proto.CompactTextString(m) } func (*ListFieldsResponse) ProtoMessage() {} func (*ListFieldsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_firestore_admin_1ffbeeca3c483e85, []int{3} + return fileDescriptor_firestore_admin_7145281113ae4e9b, []int{8} } func (m *ListFieldsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListFieldsResponse.Unmarshal(m, b) @@ -242,11 +494,148 @@ func (m *ListFieldsResponse) GetNextPageToken() string { return "" } +// The request for [FirestoreAdmin.ExportDocuments][google.firestore.admin.v1beta2.FirestoreAdmin.ExportDocuments]. +type ExportDocumentsRequest struct { + // Database to export. Should be of the form: + // `projects/{project_id}/databases/{database_id}`. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Which collection ids to export. Unspecified means all collections. + CollectionIds []string `protobuf:"bytes,2,rep,name=collection_ids,json=collectionIds,proto3" json:"collection_ids,omitempty"` + // The output URI. Currently only supports Google Cloud Storage URIs of the + // form: `gs://BUCKET_NAME[/NAMESPACE_PATH]`, where `BUCKET_NAME` is the name + // of the Google Cloud Storage bucket and `NAMESPACE_PATH` is an optional + // Google Cloud Storage namespace path. When + // choosing a name, be sure to consider Google Cloud Storage naming + // guidelines: https://cloud.google.com/storage/docs/naming. + // If the URI is a bucket (without a namespace path), a prefix will be + // generated based on the start time. + OutputUriPrefix string `protobuf:"bytes,3,opt,name=output_uri_prefix,json=outputUriPrefix,proto3" json:"output_uri_prefix,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ExportDocumentsRequest) Reset() { *m = ExportDocumentsRequest{} } +func (m *ExportDocumentsRequest) String() string { return proto.CompactTextString(m) } +func (*ExportDocumentsRequest) ProtoMessage() {} +func (*ExportDocumentsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_firestore_admin_7145281113ae4e9b, []int{9} +} +func (m *ExportDocumentsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ExportDocumentsRequest.Unmarshal(m, b) +} +func (m *ExportDocumentsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ExportDocumentsRequest.Marshal(b, m, deterministic) +} +func (dst *ExportDocumentsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ExportDocumentsRequest.Merge(dst, src) +} +func (m *ExportDocumentsRequest) XXX_Size() int { + return xxx_messageInfo_ExportDocumentsRequest.Size(m) +} +func (m *ExportDocumentsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ExportDocumentsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ExportDocumentsRequest proto.InternalMessageInfo + +func (m *ExportDocumentsRequest) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *ExportDocumentsRequest) GetCollectionIds() []string { + if m != nil { + return m.CollectionIds + } + return nil +} + +func (m *ExportDocumentsRequest) GetOutputUriPrefix() string { + if m != nil { + return m.OutputUriPrefix + } + return "" +} + +// The request for [FirestoreAdmin.ImportDocuments][google.firestore.admin.v1beta2.FirestoreAdmin.ImportDocuments]. +type ImportDocumentsRequest struct { + // Database to import into. Should be of the form: + // `projects/{project_id}/databases/{database_id}`. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Which collection ids to import. Unspecified means all collections included + // in the import. + CollectionIds []string `protobuf:"bytes,2,rep,name=collection_ids,json=collectionIds,proto3" json:"collection_ids,omitempty"` + // Location of the exported files. + // This must match the output_uri_prefix of an ExportDocumentsResponse from + // an export that has completed successfully. + // See: + // [google.firestore.admin.v1beta2.ExportDocumentsResponse.output_uri_prefix][google.firestore.admin.v1beta2.ExportDocumentsResponse.output_uri_prefix]. + InputUriPrefix string `protobuf:"bytes,3,opt,name=input_uri_prefix,json=inputUriPrefix,proto3" json:"input_uri_prefix,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ImportDocumentsRequest) Reset() { *m = ImportDocumentsRequest{} } +func (m *ImportDocumentsRequest) String() string { return proto.CompactTextString(m) } +func (*ImportDocumentsRequest) ProtoMessage() {} +func (*ImportDocumentsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_firestore_admin_7145281113ae4e9b, []int{10} +} +func (m *ImportDocumentsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ImportDocumentsRequest.Unmarshal(m, b) +} +func (m *ImportDocumentsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ImportDocumentsRequest.Marshal(b, m, deterministic) +} +func (dst *ImportDocumentsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ImportDocumentsRequest.Merge(dst, src) +} +func (m *ImportDocumentsRequest) XXX_Size() int { + return xxx_messageInfo_ImportDocumentsRequest.Size(m) +} +func (m *ImportDocumentsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ImportDocumentsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ImportDocumentsRequest proto.InternalMessageInfo + +func (m *ImportDocumentsRequest) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *ImportDocumentsRequest) GetCollectionIds() []string { + if m != nil { + return m.CollectionIds + } + return nil +} + +func (m *ImportDocumentsRequest) GetInputUriPrefix() string { + if m != nil { + return m.InputUriPrefix + } + return "" +} + func init() { + proto.RegisterType((*CreateIndexRequest)(nil), "google.firestore.admin.v1beta2.CreateIndexRequest") + proto.RegisterType((*ListIndexesRequest)(nil), "google.firestore.admin.v1beta2.ListIndexesRequest") + proto.RegisterType((*ListIndexesResponse)(nil), "google.firestore.admin.v1beta2.ListIndexesResponse") + proto.RegisterType((*GetIndexRequest)(nil), "google.firestore.admin.v1beta2.GetIndexRequest") + proto.RegisterType((*DeleteIndexRequest)(nil), "google.firestore.admin.v1beta2.DeleteIndexRequest") proto.RegisterType((*UpdateFieldRequest)(nil), "google.firestore.admin.v1beta2.UpdateFieldRequest") proto.RegisterType((*GetFieldRequest)(nil), "google.firestore.admin.v1beta2.GetFieldRequest") proto.RegisterType((*ListFieldsRequest)(nil), "google.firestore.admin.v1beta2.ListFieldsRequest") proto.RegisterType((*ListFieldsResponse)(nil), "google.firestore.admin.v1beta2.ListFieldsResponse") + proto.RegisterType((*ExportDocumentsRequest)(nil), "google.firestore.admin.v1beta2.ExportDocumentsRequest") + proto.RegisterType((*ImportDocumentsRequest)(nil), "google.firestore.admin.v1beta2.ImportDocumentsRequest") } // Reference imports to suppress errors if they are not otherwise used. @@ -261,6 +650,16 @@ const _ = grpc.SupportPackageIsVersion4 // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type FirestoreAdminClient interface { + // Creates a composite index. This returns a [google.longrunning.Operation][google.longrunning.Operation] + // which may be used to track the status of the creation. The metadata for + // the operation will be the type [IndexOperationMetadata][google.firestore.admin.v1beta2.IndexOperationMetadata]. + CreateIndex(ctx context.Context, in *CreateIndexRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) + // Lists composite indexes. + ListIndexes(ctx context.Context, in *ListIndexesRequest, opts ...grpc.CallOption) (*ListIndexesResponse, error) + // Gets a composite index. + GetIndex(ctx context.Context, in *GetIndexRequest, opts ...grpc.CallOption) (*Index, error) + // Deletes a composite index. + DeleteIndex(ctx context.Context, in *DeleteIndexRequest, opts ...grpc.CallOption) (*empty.Empty, error) // Gets the metadata and configuration for a Field. GetField(ctx context.Context, in *GetFieldRequest, opts ...grpc.CallOption) (*Field, error) // Updates a field configuration. Currently, field updates apply only to @@ -275,7 +674,7 @@ type FirestoreAdminClient interface { // // To configure the default field settings for the database, use // the special `Field` with resource name: - // `/projects/{project_id}/databases/{database_id}/collectionGroups/__default__/fields/*`. + // `projects/{project_id}/databases/{database_id}/collectionGroups/__default__/fields/*`. UpdateField(ctx context.Context, in *UpdateFieldRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) // Lists the field configuration and metadata for this database. // @@ -284,6 +683,21 @@ type FirestoreAdminClient interface { // [FirestoreAdmin.ListFields][google.firestore.admin.v1beta2.FirestoreAdmin.ListFields] with the filter set to // `indexConfig.usesAncestorConfig:false`. ListFields(ctx context.Context, in *ListFieldsRequest, opts ...grpc.CallOption) (*ListFieldsResponse, error) + // Exports a copy of all or a subset of documents from Google Cloud Firestore + // to another storage system, such as Google Cloud Storage. Recent updates to + // documents may not be reflected in the export. The export occurs in the + // background and its progress can be monitored and managed via the + // Operation resource that is created. The output of an export may only be + // used once the associated operation is done. If an export operation is + // cancelled before completion it may leave partial data behind in Google + // Cloud Storage. + ExportDocuments(ctx context.Context, in *ExportDocumentsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) + // Imports documents into Google Cloud Firestore. Existing documents with the + // same name are overwritten. The import occurs in the background and its + // progress can be monitored and managed via the Operation resource that is + // created. If an ImportDocuments operation is cancelled, it is possible + // that a subset of the data has already been imported to Cloud Firestore. + ImportDocuments(ctx context.Context, in *ImportDocumentsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) } type firestoreAdminClient struct { @@ -294,6 +708,42 @@ func NewFirestoreAdminClient(cc *grpc.ClientConn) FirestoreAdminClient { return &firestoreAdminClient{cc} } +func (c *firestoreAdminClient) CreateIndex(ctx context.Context, in *CreateIndexRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { + out := new(longrunning.Operation) + err := c.cc.Invoke(ctx, "/google.firestore.admin.v1beta2.FirestoreAdmin/CreateIndex", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *firestoreAdminClient) ListIndexes(ctx context.Context, in *ListIndexesRequest, opts ...grpc.CallOption) (*ListIndexesResponse, error) { + out := new(ListIndexesResponse) + err := c.cc.Invoke(ctx, "/google.firestore.admin.v1beta2.FirestoreAdmin/ListIndexes", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *firestoreAdminClient) GetIndex(ctx context.Context, in *GetIndexRequest, opts ...grpc.CallOption) (*Index, error) { + out := new(Index) + err := c.cc.Invoke(ctx, "/google.firestore.admin.v1beta2.FirestoreAdmin/GetIndex", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *firestoreAdminClient) DeleteIndex(ctx context.Context, in *DeleteIndexRequest, opts ...grpc.CallOption) (*empty.Empty, error) { + out := new(empty.Empty) + err := c.cc.Invoke(ctx, "/google.firestore.admin.v1beta2.FirestoreAdmin/DeleteIndex", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *firestoreAdminClient) GetField(ctx context.Context, in *GetFieldRequest, opts ...grpc.CallOption) (*Field, error) { out := new(Field) err := c.cc.Invoke(ctx, "/google.firestore.admin.v1beta2.FirestoreAdmin/GetField", in, out, opts...) @@ -321,8 +771,36 @@ func (c *firestoreAdminClient) ListFields(ctx context.Context, in *ListFieldsReq return out, nil } +func (c *firestoreAdminClient) ExportDocuments(ctx context.Context, in *ExportDocumentsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { + out := new(longrunning.Operation) + err := c.cc.Invoke(ctx, "/google.firestore.admin.v1beta2.FirestoreAdmin/ExportDocuments", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *firestoreAdminClient) ImportDocuments(ctx context.Context, in *ImportDocumentsRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { + out := new(longrunning.Operation) + err := c.cc.Invoke(ctx, "/google.firestore.admin.v1beta2.FirestoreAdmin/ImportDocuments", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // FirestoreAdminServer is the server API for FirestoreAdmin service. type FirestoreAdminServer interface { + // Creates a composite index. This returns a [google.longrunning.Operation][google.longrunning.Operation] + // which may be used to track the status of the creation. The metadata for + // the operation will be the type [IndexOperationMetadata][google.firestore.admin.v1beta2.IndexOperationMetadata]. + CreateIndex(context.Context, *CreateIndexRequest) (*longrunning.Operation, error) + // Lists composite indexes. + ListIndexes(context.Context, *ListIndexesRequest) (*ListIndexesResponse, error) + // Gets a composite index. + GetIndex(context.Context, *GetIndexRequest) (*Index, error) + // Deletes a composite index. + DeleteIndex(context.Context, *DeleteIndexRequest) (*empty.Empty, error) // Gets the metadata and configuration for a Field. GetField(context.Context, *GetFieldRequest) (*Field, error) // Updates a field configuration. Currently, field updates apply only to @@ -337,7 +815,7 @@ type FirestoreAdminServer interface { // // To configure the default field settings for the database, use // the special `Field` with resource name: - // `/projects/{project_id}/databases/{database_id}/collectionGroups/__default__/fields/*`. + // `projects/{project_id}/databases/{database_id}/collectionGroups/__default__/fields/*`. UpdateField(context.Context, *UpdateFieldRequest) (*longrunning.Operation, error) // Lists the field configuration and metadata for this database. // @@ -346,12 +824,99 @@ type FirestoreAdminServer interface { // [FirestoreAdmin.ListFields][google.firestore.admin.v1beta2.FirestoreAdmin.ListFields] with the filter set to // `indexConfig.usesAncestorConfig:false`. ListFields(context.Context, *ListFieldsRequest) (*ListFieldsResponse, error) + // Exports a copy of all or a subset of documents from Google Cloud Firestore + // to another storage system, such as Google Cloud Storage. Recent updates to + // documents may not be reflected in the export. The export occurs in the + // background and its progress can be monitored and managed via the + // Operation resource that is created. The output of an export may only be + // used once the associated operation is done. If an export operation is + // cancelled before completion it may leave partial data behind in Google + // Cloud Storage. + ExportDocuments(context.Context, *ExportDocumentsRequest) (*longrunning.Operation, error) + // Imports documents into Google Cloud Firestore. Existing documents with the + // same name are overwritten. The import occurs in the background and its + // progress can be monitored and managed via the Operation resource that is + // created. If an ImportDocuments operation is cancelled, it is possible + // that a subset of the data has already been imported to Cloud Firestore. + ImportDocuments(context.Context, *ImportDocumentsRequest) (*longrunning.Operation, error) } func RegisterFirestoreAdminServer(s *grpc.Server, srv FirestoreAdminServer) { s.RegisterService(&_FirestoreAdmin_serviceDesc, srv) } +func _FirestoreAdmin_CreateIndex_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateIndexRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FirestoreAdminServer).CreateIndex(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.firestore.admin.v1beta2.FirestoreAdmin/CreateIndex", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FirestoreAdminServer).CreateIndex(ctx, req.(*CreateIndexRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FirestoreAdmin_ListIndexes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListIndexesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FirestoreAdminServer).ListIndexes(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.firestore.admin.v1beta2.FirestoreAdmin/ListIndexes", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FirestoreAdminServer).ListIndexes(ctx, req.(*ListIndexesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FirestoreAdmin_GetIndex_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetIndexRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FirestoreAdminServer).GetIndex(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.firestore.admin.v1beta2.FirestoreAdmin/GetIndex", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FirestoreAdminServer).GetIndex(ctx, req.(*GetIndexRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FirestoreAdmin_DeleteIndex_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteIndexRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FirestoreAdminServer).DeleteIndex(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.firestore.admin.v1beta2.FirestoreAdmin/DeleteIndex", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FirestoreAdminServer).DeleteIndex(ctx, req.(*DeleteIndexRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _FirestoreAdmin_GetField_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetFieldRequest) if err := dec(in); err != nil { @@ -406,10 +971,62 @@ func _FirestoreAdmin_ListFields_Handler(srv interface{}, ctx context.Context, de return interceptor(ctx, in, info, handler) } +func _FirestoreAdmin_ExportDocuments_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ExportDocumentsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FirestoreAdminServer).ExportDocuments(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.firestore.admin.v1beta2.FirestoreAdmin/ExportDocuments", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FirestoreAdminServer).ExportDocuments(ctx, req.(*ExportDocumentsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FirestoreAdmin_ImportDocuments_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ImportDocumentsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FirestoreAdminServer).ImportDocuments(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.firestore.admin.v1beta2.FirestoreAdmin/ImportDocuments", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FirestoreAdminServer).ImportDocuments(ctx, req.(*ImportDocumentsRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _FirestoreAdmin_serviceDesc = grpc.ServiceDesc{ ServiceName: "google.firestore.admin.v1beta2.FirestoreAdmin", HandlerType: (*FirestoreAdminServer)(nil), Methods: []grpc.MethodDesc{ + { + MethodName: "CreateIndex", + Handler: _FirestoreAdmin_CreateIndex_Handler, + }, + { + MethodName: "ListIndexes", + Handler: _FirestoreAdmin_ListIndexes_Handler, + }, + { + MethodName: "GetIndex", + Handler: _FirestoreAdmin_GetIndex_Handler, + }, + { + MethodName: "DeleteIndex", + Handler: _FirestoreAdmin_DeleteIndex_Handler, + }, { MethodName: "GetField", Handler: _FirestoreAdmin_GetField_Handler, @@ -422,54 +1039,82 @@ var _FirestoreAdmin_serviceDesc = grpc.ServiceDesc{ MethodName: "ListFields", Handler: _FirestoreAdmin_ListFields_Handler, }, + { + MethodName: "ExportDocuments", + Handler: _FirestoreAdmin_ExportDocuments_Handler, + }, + { + MethodName: "ImportDocuments", + Handler: _FirestoreAdmin_ImportDocuments_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "google/firestore/admin/v1beta2/firestore_admin.proto", } func init() { - proto.RegisterFile("google/firestore/admin/v1beta2/firestore_admin.proto", fileDescriptor_firestore_admin_1ffbeeca3c483e85) + proto.RegisterFile("google/firestore/admin/v1beta2/firestore_admin.proto", fileDescriptor_firestore_admin_7145281113ae4e9b) } -var fileDescriptor_firestore_admin_1ffbeeca3c483e85 = []byte{ - // 610 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x54, 0xcd, 0x6e, 0xd3, 0x4c, - 0x14, 0x95, 0xd3, 0xb4, 0x6a, 0xa7, 0xfa, 0xbe, 0x8a, 0x41, 0x42, 0x91, 0x4b, 0x51, 0x64, 0x28, - 0xaa, 0xba, 0xf0, 0x28, 0x86, 0x15, 0x51, 0x17, 0x24, 0x28, 0x41, 0x08, 0x44, 0x48, 0xf9, 0x91, - 0xd8, 0x44, 0x93, 0xf8, 0xc6, 0x32, 0x71, 0x66, 0x8c, 0x67, 0x8c, 0x4a, 0xab, 0x0a, 0x89, 0x07, - 0x60, 0xc3, 0x1b, 0xb0, 0x64, 0xd1, 0x3d, 0xab, 0x3e, 0x04, 0xaf, 0xc0, 0x83, 0xa0, 0xf9, 0x71, - 0x7e, 0x5a, 0x20, 0x81, 0xdd, 0xcc, 0xbd, 0xe7, 0xdc, 0x7b, 0xe6, 0xfa, 0x5c, 0xa3, 0xbb, 0x11, - 0xe7, 0x51, 0x02, 0x64, 0x18, 0x67, 0x20, 0x24, 0xcf, 0x80, 0xd0, 0x70, 0x1c, 0x33, 0xf2, 0xae, - 0xd6, 0x07, 0x49, 0x83, 0x69, 0xbc, 0xa7, 0xe3, 0x7e, 0x9a, 0x71, 0xc9, 0xf1, 0x0d, 0xc3, 0xf2, - 0x27, 0x59, 0xdf, 0x64, 0x2d, 0xcb, 0xbd, 0x6e, 0xab, 0xd2, 0x34, 0x26, 0x94, 0x31, 0x2e, 0xa9, - 0x8c, 0x39, 0x13, 0x86, 0xed, 0xee, 0x2f, 0xec, 0x09, 0x49, 0xb8, 0x24, 0x36, 0x66, 0x21, 0x1c, - 0x59, 0xec, 0x4d, 0x8b, 0x4d, 0x38, 0x8b, 0xb2, 0x9c, 0xb1, 0x98, 0x45, 0x84, 0xa7, 0x90, 0xcd, - 0x35, 0xdf, 0xb6, 0x20, 0x7d, 0xeb, 0xe7, 0x43, 0x02, 0xe3, 0x54, 0xbe, 0xb7, 0xc9, 0xea, 0xc5, - 0xa4, 0x96, 0xd2, 0x1b, 0x53, 0x31, 0x32, 0x08, 0xef, 0x93, 0x83, 0xf0, 0x8b, 0x34, 0xa4, 0x12, - 0x5a, 0x2a, 0xd5, 0x85, 0xb7, 0x39, 0x08, 0x89, 0xeb, 0x68, 0x55, 0x43, 0x2b, 0x4e, 0xd5, 0xd9, - 0xdb, 0x0c, 0x76, 0xfd, 0x3f, 0x0f, 0xc8, 0x37, 0x64, 0xc3, 0xc1, 0x75, 0xb4, 0x99, 0xeb, 0x92, - 0xba, 0x51, 0xa5, 0xa4, 0x4b, 0xb8, 0x45, 0x89, 0x42, 0x8b, 0xe1, 0x3c, 0xa1, 0x62, 0xd4, 0x45, - 0x06, 0xae, 0xce, 0xde, 0x2e, 0xda, 0x6a, 0x83, 0x9c, 0x13, 0x83, 0x51, 0x99, 0xd1, 0x31, 0x68, - 0x2d, 0x1b, 0x5d, 0x7d, 0xf6, 0x3e, 0xa0, 0x2b, 0x8f, 0x63, 0x61, 0x70, 0xa2, 0x00, 0x5e, 0x43, - 0x6b, 0x29, 0xcd, 0x80, 0x49, 0x0b, 0xb5, 0x37, 0x15, 0x1f, 0xc6, 0x89, 0x84, 0x4c, 0x6b, 0xd9, - 0xe8, 0xda, 0x1b, 0xde, 0x46, 0x1b, 0x29, 0x8d, 0xa0, 0x27, 0xe2, 0x63, 0xa8, 0xac, 0x54, 0x9d, - 0xbd, 0xd5, 0xee, 0xba, 0x0a, 0x1c, 0xc6, 0xc7, 0x80, 0x77, 0x10, 0xd2, 0x49, 0xc9, 0x47, 0xc0, - 0x2a, 0x65, 0x4d, 0xd4, 0xf0, 0xe7, 0x2a, 0xe0, 0x9d, 0x20, 0x3c, 0x2b, 0x40, 0xa4, 0x9c, 0x09, - 0xc0, 0x07, 0xaa, 0x93, 0x8a, 0x54, 0x9c, 0xea, 0xca, 0xf2, 0x83, 0xb3, 0x24, 0x7c, 0x1b, 0x6d, - 0x31, 0x38, 0x92, 0xbd, 0x99, 0xc6, 0x46, 0xf1, 0x7f, 0x2a, 0xdc, 0x29, 0x9a, 0x07, 0xe7, 0x65, - 0xf4, 0x7f, 0xab, 0xa8, 0x78, 0x5f, 0x15, 0xc4, 0x67, 0x0e, 0x5a, 0x2f, 0x06, 0x87, 0xc9, 0xa2, - 0xb6, 0x17, 0x46, 0xec, 0x2e, 0xa7, 0xd3, 0x7b, 0xf4, 0xf1, 0xfb, 0x8f, 0xcf, 0xa5, 0x07, 0xb8, - 0x31, 0xf1, 0xeb, 0x89, 0xfa, 0x1a, 0x07, 0x69, 0xc6, 0xdf, 0xc0, 0x40, 0x0a, 0xb2, 0x4f, 0x42, - 0x2a, 0x69, 0x9f, 0x0a, 0x50, 0xe7, 0x01, 0x4f, 0x12, 0x18, 0x28, 0xb7, 0xb6, 0x33, 0x9e, 0xa7, - 0x2a, 0x64, 0x1e, 0x4a, 0xf6, 0x4f, 0xf1, 0x37, 0x07, 0x6d, 0xce, 0x38, 0x0f, 0x07, 0x8b, 0x24, - 0x5c, 0xb6, 0xa9, 0xbb, 0x53, 0x70, 0x66, 0x56, 0xc4, 0x7f, 0x5a, 0xac, 0x88, 0xf7, 0x4a, 0xcb, - 0x7d, 0x16, 0x3c, 0x9c, 0xca, 0x35, 0xbb, 0xf8, 0xaf, 0xa2, 0xef, 0x59, 0x87, 0x9f, 0x3b, 0x08, - 0x4d, 0xbf, 0x3e, 0xae, 0x2d, 0x92, 0x7e, 0xc9, 0xaa, 0x6e, 0xf0, 0x37, 0x14, 0x63, 0xae, 0x5f, - 0x4d, 0xdf, 0x18, 0x7c, 0xf9, 0xa7, 0x9c, 0xda, 0xb7, 0x34, 0xce, 0x1c, 0xe4, 0x0d, 0xf8, 0x78, - 0x81, 0x8a, 0xc6, 0xd5, 0x79, 0x97, 0x75, 0xd4, 0xee, 0x76, 0x9c, 0xd7, 0x4d, 0x4b, 0x8b, 0x78, - 0x42, 0x59, 0xe4, 0xf3, 0x2c, 0x22, 0x11, 0x30, 0xbd, 0xd9, 0xc4, 0xa4, 0x68, 0x1a, 0x8b, 0xdf, - 0xfd, 0xe4, 0xea, 0xfa, 0xf6, 0xa5, 0x54, 0x6e, 0x37, 0x5b, 0x87, 0x5f, 0x4b, 0xb7, 0xda, 0xa6, - 0x58, 0x33, 0xe1, 0x79, 0xe8, 0x4f, 0x1a, 0xfa, 0xba, 0xa3, 0xff, 0xb2, 0xd6, 0x50, 0x9c, 0xfe, - 0x9a, 0xae, 0x7e, 0xe7, 0x67, 0x00, 0x00, 0x00, 0xff, 0xff, 0xc6, 0xf6, 0x28, 0xdf, 0xe1, 0x05, - 0x00, 0x00, +var fileDescriptor_firestore_admin_7145281113ae4e9b = []byte{ + // 940 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x56, 0xcb, 0x6e, 0x1c, 0x45, + 0x17, 0x56, 0x8d, 0x2f, 0x7f, 0x7c, 0xe6, 0xc7, 0x26, 0x15, 0x69, 0x34, 0xea, 0x10, 0x34, 0x6a, + 0x30, 0x1a, 0xcd, 0xa2, 0x5b, 0x9e, 0xa0, 0x2c, 0x3c, 0x8a, 0x50, 0x3c, 0xbe, 0x60, 0x08, 0xc2, + 0x4c, 0x08, 0x48, 0x6c, 0x46, 0xe5, 0x99, 0x72, 0xab, 0x70, 0x4f, 0x55, 0xd3, 0x55, 0x8d, 0x4c, + 0x22, 0x13, 0xc4, 0x03, 0xb0, 0xe1, 0x0d, 0x58, 0xb0, 0x00, 0x29, 0x6c, 0xd8, 0xb0, 0x62, 0xc1, + 0x23, 0xf0, 0x0a, 0xbc, 0x01, 0x2f, 0x80, 0xea, 0xd2, 0x73, 0x27, 0xdd, 0x8e, 0x2c, 0xb1, 0xeb, + 0x3a, 0x75, 0xbe, 0x3a, 0xdf, 0x39, 0x75, 0xea, 0x3b, 0x0d, 0x6f, 0x47, 0x42, 0x44, 0x31, 0x0d, + 0xcf, 0x58, 0x4a, 0xa5, 0x12, 0x29, 0x0d, 0xc9, 0x70, 0xc4, 0x78, 0xf8, 0xe5, 0xce, 0x29, 0x55, + 0xa4, 0x3d, 0xb1, 0xf7, 0x8d, 0x3d, 0x48, 0x52, 0xa1, 0x04, 0x7e, 0xdd, 0xa2, 0x82, 0xf1, 0x6e, + 0x60, 0x77, 0x1d, 0xca, 0x7b, 0xcd, 0x9d, 0x4a, 0x12, 0x16, 0x12, 0xce, 0x85, 0x22, 0x8a, 0x09, + 0x2e, 0x2d, 0xda, 0x6b, 0x15, 0xc6, 0xa4, 0xf1, 0xb0, 0xa4, 0x2f, 0xe3, 0x43, 0x7a, 0xe1, 0x7c, + 0xdf, 0x70, 0xbe, 0xb1, 0xe0, 0x51, 0x9a, 0x71, 0xce, 0x78, 0x14, 0x8a, 0x84, 0xa6, 0x33, 0xc1, + 0x6f, 0x3b, 0x27, 0xb3, 0x3a, 0xcd, 0xce, 0x42, 0x3a, 0x4a, 0xd4, 0x57, 0x6e, 0xb3, 0x31, 0xbf, + 0x69, 0xa8, 0xf4, 0x47, 0x44, 0x9e, 0x5b, 0x0f, 0x9f, 0x01, 0xee, 0xa6, 0x94, 0x28, 0x7a, 0xac, + 0x03, 0xf7, 0xe8, 0x17, 0x19, 0x95, 0x0a, 0xd7, 0x60, 0x3d, 0x21, 0x29, 0xe5, 0xaa, 0x8e, 0x1a, + 0xa8, 0xb9, 0xd1, 0x73, 0x2b, 0xdc, 0x81, 0x35, 0x43, 0xb0, 0x5e, 0x69, 0xa0, 0x66, 0xb5, 0xbd, + 0x1d, 0xbc, 0xb8, 0x6e, 0x81, 0x3d, 0xd4, 0x62, 0xfc, 0x6f, 0x10, 0xe0, 0x87, 0x4c, 0x2a, 0x63, + 0xa4, 0xb2, 0x28, 0x56, 0x0d, 0xd6, 0xcf, 0x58, 0xac, 0x68, 0x6a, 0x82, 0x6d, 0xf4, 0xdc, 0x0a, + 0xdf, 0x86, 0x8d, 0x84, 0x44, 0xb4, 0x2f, 0xd9, 0x13, 0x5a, 0x5f, 0x69, 0xa0, 0xe6, 0x5a, 0xef, + 0x86, 0x36, 0x3c, 0x62, 0x4f, 0x28, 0xbe, 0x03, 0x60, 0x36, 0x95, 0x38, 0xa7, 0xbc, 0xbe, 0x6a, + 0x80, 0xc6, 0xfd, 0x63, 0x6d, 0xf0, 0xbf, 0x86, 0x5b, 0x33, 0x0c, 0x64, 0x22, 0xb8, 0xa4, 0xf8, + 0x1d, 0xf8, 0x1f, 0xb3, 0xa6, 0x3a, 0x6a, 0xac, 0x94, 0x4f, 0x2c, 0x47, 0xe1, 0xb7, 0x60, 0x8b, + 0xd3, 0x0b, 0xd5, 0x9f, 0x8a, 0x6d, 0x49, 0xbf, 0xa2, 0xcd, 0x27, 0xe3, 0xf8, 0xdb, 0xb0, 0x75, + 0x44, 0xd5, 0x4c, 0xa9, 0x31, 0xac, 0x72, 0x32, 0xa2, 0x2e, 0x79, 0xf3, 0xed, 0x37, 0x01, 0xef, + 0xd3, 0x98, 0xce, 0x5d, 0xca, 0x32, 0xcf, 0xef, 0x10, 0xe0, 0xc7, 0xc9, 0x90, 0x28, 0x7a, 0xa8, + 0x6f, 0x36, 0x77, 0xed, 0xc0, 0x9a, 0xb9, 0x69, 0xe3, 0x5b, 0x22, 0x1d, 0x0b, 0xb6, 0x18, 0xdc, + 0x81, 0x6a, 0x66, 0x8e, 0x34, 0x7d, 0xe2, 0xae, 0xda, 0xcb, 0x8f, 0xc8, 0x5b, 0xc9, 0x62, 0x3e, + 0x20, 0xf2, 0xbc, 0x07, 0xd6, 0x5d, 0x7f, 0xbb, 0x0c, 0x67, 0xc8, 0x2c, 0xe3, 0xfd, 0x0c, 0x6e, + 0xea, 0x8b, 0x30, 0x7e, 0xff, 0x49, 0x27, 0x3c, 0xb5, 0xbd, 0x98, 0x13, 0x70, 0x8d, 0x70, 0x5f, + 0x47, 0xd2, 0x96, 0xb2, 0x7d, 0x60, 0x13, 0x75, 0xa0, 0xd2, 0x6d, 0xf0, 0x0c, 0x6a, 0x07, 0x17, + 0x89, 0x48, 0xd5, 0xbe, 0x18, 0x64, 0x23, 0xca, 0x95, 0x7c, 0x41, 0xad, 0xf0, 0x36, 0x6c, 0x0e, + 0x44, 0x1c, 0xd3, 0x81, 0x7e, 0xf6, 0x7d, 0x36, 0x94, 0xf5, 0x4a, 0x63, 0x45, 0x1f, 0x3a, 0xb1, + 0x1e, 0x0f, 0x25, 0x6e, 0xc1, 0x4d, 0x91, 0xa9, 0x24, 0x53, 0xfd, 0x2c, 0x65, 0xfd, 0x24, 0xa5, + 0x67, 0xec, 0xc2, 0x54, 0x65, 0xa3, 0xb7, 0x65, 0x37, 0x1e, 0xa7, 0xec, 0xc4, 0x98, 0xfd, 0x4b, + 0xa8, 0x1d, 0x8f, 0xae, 0x9b, 0x40, 0x13, 0x5e, 0x65, 0x7c, 0x69, 0xfc, 0x4d, 0x63, 0x1f, 0x87, + 0x6f, 0xff, 0xfd, 0x7f, 0xd8, 0x3c, 0xcc, 0x2b, 0xfa, 0x40, 0x17, 0x14, 0xff, 0x8a, 0xa0, 0x3a, + 0x25, 0x44, 0xb8, 0x5d, 0x54, 0xf9, 0x45, 0xd5, 0xf2, 0xee, 0xe4, 0x98, 0x29, 0xc1, 0x0c, 0x3e, + 0xcc, 0x05, 0xd3, 0xef, 0x7d, 0xfb, 0xe7, 0x5f, 0xdf, 0x57, 0x1e, 0xfa, 0xdd, 0xb1, 0xd8, 0x3e, + 0xb5, 0x0d, 0x76, 0x3f, 0x49, 0xc5, 0xe7, 0x74, 0xa0, 0x64, 0xd8, 0x0a, 0x87, 0x44, 0x91, 0x53, + 0x22, 0xa9, 0xfe, 0x9e, 0xa4, 0x77, 0x94, 0x8a, 0x2c, 0x91, 0x61, 0xeb, 0x32, 0x74, 0x2f, 0x7e, + 0xd7, 0x6a, 0x1a, 0xfe, 0x03, 0x41, 0x75, 0x4a, 0x51, 0x8a, 0x69, 0x2f, 0x0a, 0xa0, 0x77, 0xf7, + 0x4a, 0x18, 0xdb, 0xa9, 0xfe, 0xfb, 0x26, 0x99, 0x03, 0x7c, 0x1d, 0xc9, 0xe0, 0x5f, 0x10, 0xdc, + 0xc8, 0x75, 0x09, 0x87, 0x45, 0x74, 0xe6, 0x14, 0xcc, 0x2b, 0x27, 0x96, 0xcb, 0x18, 0xeb, 0xee, + 0x2a, 0xcf, 0x37, 0xa7, 0x1b, 0xb6, 0x2e, 0xf1, 0x8f, 0x08, 0xaa, 0x53, 0x12, 0x59, 0x5c, 0xf7, + 0x45, 0x3d, 0xf5, 0x6a, 0x0b, 0x92, 0x76, 0xa0, 0x47, 0x67, 0x4e, 0xb4, 0x75, 0x2d, 0x44, 0x9f, + 0xdb, 0xd2, 0x1a, 0x9d, 0x28, 0x55, 0xda, 0x69, 0xe9, 0xf4, 0xca, 0xe9, 0x8f, 0xff, 0x9e, 0x61, + 0xbc, 0x8f, 0xf7, 0x5e, 0x9a, 0xb1, 0x15, 0x30, 0x4d, 0xf8, 0x37, 0x04, 0xd5, 0xa9, 0x89, 0x52, + 0x5c, 0xd9, 0xc5, 0xf1, 0x53, 0xf4, 0x10, 0x3f, 0x35, 0x74, 0x3f, 0x6a, 0xbf, 0x3b, 0xa1, 0x6b, + 0x7f, 0x91, 0x5e, 0x96, 0xf4, 0xae, 0x9b, 0x5c, 0xbf, 0x23, 0x80, 0x89, 0xaa, 0xe3, 0x9d, 0x32, + 0x0f, 0x6b, 0x66, 0x04, 0x79, 0xed, 0xab, 0x40, 0xdc, 0x53, 0x5c, 0x52, 0xfd, 0xab, 0x3f, 0x45, + 0x37, 0x41, 0x7e, 0x46, 0xb0, 0x35, 0x37, 0x1a, 0xf0, 0xbd, 0x22, 0x4e, 0xcb, 0x67, 0x49, 0xd1, + 0x2d, 0x3c, 0x30, 0xb4, 0x3b, 0xfe, 0xbd, 0x52, 0x4d, 0x73, 0xb9, 0x4b, 0x67, 0xa3, 0xec, 0xa2, + 0x96, 0x61, 0x3b, 0x37, 0x47, 0x8a, 0xd9, 0x2e, 0x1f, 0x3c, 0xd7, 0xcd, 0x96, 0x8d, 0xe6, 0xd9, + 0xee, 0x3d, 0x47, 0xe0, 0x0f, 0xc4, 0xa8, 0x80, 0xdf, 0xde, 0xad, 0xd9, 0xc9, 0x74, 0xa2, 0xc5, + 0xe1, 0x04, 0x7d, 0xd6, 0x75, 0xb0, 0x48, 0xc4, 0x84, 0x47, 0x81, 0x48, 0xa3, 0x30, 0xa2, 0xdc, + 0x48, 0x47, 0x68, 0xb7, 0x48, 0xc2, 0xe4, 0xbf, 0xfd, 0xd7, 0x77, 0xcc, 0xea, 0x87, 0xca, 0xea, + 0x51, 0xf7, 0xf0, 0xd1, 0x4f, 0x95, 0x37, 0x8f, 0xec, 0x61, 0xdd, 0x58, 0x64, 0xc3, 0x60, 0x1c, + 0x30, 0x30, 0x11, 0x83, 0x4f, 0x76, 0xf6, 0x34, 0xe6, 0x74, 0xdd, 0x9c, 0x7e, 0xf7, 0x9f, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xc9, 0xcc, 0x19, 0xb3, 0xd4, 0x0c, 0x00, 0x00, } diff --git a/vendor/google.golang.org/genproto/googleapis/firestore/admin/v1beta2/index.pb.go b/vendor/google.golang.org/genproto/googleapis/firestore/admin/v1beta2/index.pb.go index 6a6e589bd..6e702a21c 100644 --- a/vendor/google.golang.org/genproto/googleapis/firestore/admin/v1beta2/index.pb.go +++ b/vendor/google.golang.org/genproto/googleapis/firestore/admin/v1beta2/index.pb.go @@ -45,7 +45,7 @@ func (x Index_QueryScope) String() string { return proto.EnumName(Index_QueryScope_name, int32(x)) } func (Index_QueryScope) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_index_47cf3a5e57bc9ffa, []int{0, 0} + return fileDescriptor_index_30c0e9bfd16ff693, []int{0, 0} } // The state of an index. During index creation, an index will be in the @@ -94,7 +94,7 @@ func (x Index_State) String() string { return proto.EnumName(Index_State_name, int32(x)) } func (Index_State) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_index_47cf3a5e57bc9ffa, []int{0, 1} + return fileDescriptor_index_30c0e9bfd16ff693, []int{0, 1} } // The supported orderings. @@ -124,7 +124,7 @@ func (x Index_IndexField_Order) String() string { return proto.EnumName(Index_IndexField_Order_name, int32(x)) } func (Index_IndexField_Order) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_index_47cf3a5e57bc9ffa, []int{0, 0, 0} + return fileDescriptor_index_30c0e9bfd16ff693, []int{0, 0, 0} } // The supported array value configurations. @@ -150,7 +150,7 @@ func (x Index_IndexField_ArrayConfig) String() string { return proto.EnumName(Index_IndexField_ArrayConfig_name, int32(x)) } func (Index_IndexField_ArrayConfig) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_index_47cf3a5e57bc9ffa, []int{0, 0, 1} + return fileDescriptor_index_30c0e9bfd16ff693, []int{0, 0, 1} } // Cloud Firestore indexes enable simple and complex queries against @@ -194,7 +194,7 @@ func (m *Index) Reset() { *m = Index{} } func (m *Index) String() string { return proto.CompactTextString(m) } func (*Index) ProtoMessage() {} func (*Index) Descriptor() ([]byte, []int) { - return fileDescriptor_index_47cf3a5e57bc9ffa, []int{0} + return fileDescriptor_index_30c0e9bfd16ff693, []int{0} } func (m *Index) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Index.Unmarshal(m, b) @@ -265,7 +265,7 @@ func (m *Index_IndexField) Reset() { *m = Index_IndexField{} } func (m *Index_IndexField) String() string { return proto.CompactTextString(m) } func (*Index_IndexField) ProtoMessage() {} func (*Index_IndexField) Descriptor() ([]byte, []int) { - return fileDescriptor_index_47cf3a5e57bc9ffa, []int{0, 0} + return fileDescriptor_index_30c0e9bfd16ff693, []int{0, 0} } func (m *Index_IndexField) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Index_IndexField.Unmarshal(m, b) @@ -403,10 +403,10 @@ func init() { } func init() { - proto.RegisterFile("google/firestore/admin/v1beta2/index.proto", fileDescriptor_index_47cf3a5e57bc9ffa) + proto.RegisterFile("google/firestore/admin/v1beta2/index.proto", fileDescriptor_index_30c0e9bfd16ff693) } -var fileDescriptor_index_47cf3a5e57bc9ffa = []byte{ +var fileDescriptor_index_30c0e9bfd16ff693 = []byte{ // 545 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x93, 0x4f, 0x6b, 0xdb, 0x4c, 0x10, 0xc6, 0x23, 0x39, 0x0a, 0xaf, 0xc7, 0x7e, 0x83, 0xba, 0x50, 0x2a, 0xd2, 0xb4, 0x18, 0xd1, diff --git a/vendor/google.golang.org/genproto/googleapis/firestore/admin/v1beta2/operation.pb.go b/vendor/google.golang.org/genproto/googleapis/firestore/admin/v1beta2/operation.pb.go index 6078e43b0..d47cc29a1 100644 --- a/vendor/google.golang.org/genproto/googleapis/firestore/admin/v1beta2/operation.pb.go +++ b/vendor/google.golang.org/genproto/googleapis/firestore/admin/v1beta2/operation.pb.go @@ -69,7 +69,7 @@ func (x OperationState) String() string { return proto.EnumName(OperationState_name, int32(x)) } func (OperationState) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_operation_3f6f641f194f3566, []int{0} + return fileDescriptor_operation_027e42d27180be05, []int{0} } // Specifies how the index is changing. @@ -99,7 +99,95 @@ func (x FieldOperationMetadata_IndexConfigDelta_ChangeType) String() string { return proto.EnumName(FieldOperationMetadata_IndexConfigDelta_ChangeType_name, int32(x)) } func (FieldOperationMetadata_IndexConfigDelta_ChangeType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_operation_3f6f641f194f3566, []int{0, 0, 0} + return fileDescriptor_operation_027e42d27180be05, []int{1, 0, 0} +} + +// Metadata for [google.longrunning.Operation][google.longrunning.Operation] results from +// [FirestoreAdmin.CreateIndex][google.firestore.admin.v1beta2.FirestoreAdmin.CreateIndex]. +type IndexOperationMetadata struct { + // The time this operation started. + StartTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` + // The time this operation completed. Will be unset if operation still in + // progress. + EndTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` + // The index resource that this operation is acting on. For example: + // `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{index_id}` + Index string `protobuf:"bytes,3,opt,name=index,proto3" json:"index,omitempty"` + // The state of the operation. + State OperationState `protobuf:"varint,4,opt,name=state,proto3,enum=google.firestore.admin.v1beta2.OperationState" json:"state,omitempty"` + // The progress, in documents, of this operation. + ProgressDocuments *Progress `protobuf:"bytes,5,opt,name=progress_documents,json=progressDocuments,proto3" json:"progress_documents,omitempty"` + // The progress, in bytes, of this operation. + ProgressBytes *Progress `protobuf:"bytes,6,opt,name=progress_bytes,json=progressBytes,proto3" json:"progress_bytes,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *IndexOperationMetadata) Reset() { *m = IndexOperationMetadata{} } +func (m *IndexOperationMetadata) String() string { return proto.CompactTextString(m) } +func (*IndexOperationMetadata) ProtoMessage() {} +func (*IndexOperationMetadata) Descriptor() ([]byte, []int) { + return fileDescriptor_operation_027e42d27180be05, []int{0} +} +func (m *IndexOperationMetadata) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_IndexOperationMetadata.Unmarshal(m, b) +} +func (m *IndexOperationMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_IndexOperationMetadata.Marshal(b, m, deterministic) +} +func (dst *IndexOperationMetadata) XXX_Merge(src proto.Message) { + xxx_messageInfo_IndexOperationMetadata.Merge(dst, src) +} +func (m *IndexOperationMetadata) XXX_Size() int { + return xxx_messageInfo_IndexOperationMetadata.Size(m) +} +func (m *IndexOperationMetadata) XXX_DiscardUnknown() { + xxx_messageInfo_IndexOperationMetadata.DiscardUnknown(m) +} + +var xxx_messageInfo_IndexOperationMetadata proto.InternalMessageInfo + +func (m *IndexOperationMetadata) GetStartTime() *timestamp.Timestamp { + if m != nil { + return m.StartTime + } + return nil +} + +func (m *IndexOperationMetadata) GetEndTime() *timestamp.Timestamp { + if m != nil { + return m.EndTime + } + return nil +} + +func (m *IndexOperationMetadata) GetIndex() string { + if m != nil { + return m.Index + } + return "" +} + +func (m *IndexOperationMetadata) GetState() OperationState { + if m != nil { + return m.State + } + return OperationState_OPERATION_STATE_UNSPECIFIED +} + +func (m *IndexOperationMetadata) GetProgressDocuments() *Progress { + if m != nil { + return m.ProgressDocuments + } + return nil +} + +func (m *IndexOperationMetadata) GetProgressBytes() *Progress { + if m != nil { + return m.ProgressBytes + } + return nil } // Metadata for [google.longrunning.Operation][google.longrunning.Operation] results from @@ -131,7 +219,7 @@ func (m *FieldOperationMetadata) Reset() { *m = FieldOperationMetadata{} func (m *FieldOperationMetadata) String() string { return proto.CompactTextString(m) } func (*FieldOperationMetadata) ProtoMessage() {} func (*FieldOperationMetadata) Descriptor() ([]byte, []int) { - return fileDescriptor_operation_3f6f641f194f3566, []int{0} + return fileDescriptor_operation_027e42d27180be05, []int{1} } func (m *FieldOperationMetadata) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FieldOperationMetadata.Unmarshal(m, b) @@ -217,7 +305,7 @@ func (m *FieldOperationMetadata_IndexConfigDelta) Reset() { func (m *FieldOperationMetadata_IndexConfigDelta) String() string { return proto.CompactTextString(m) } func (*FieldOperationMetadata_IndexConfigDelta) ProtoMessage() {} func (*FieldOperationMetadata_IndexConfigDelta) Descriptor() ([]byte, []int) { - return fileDescriptor_operation_3f6f641f194f3566, []int{0, 0} + return fileDescriptor_operation_027e42d27180be05, []int{1, 0} } func (m *FieldOperationMetadata_IndexConfigDelta) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FieldOperationMetadata_IndexConfigDelta.Unmarshal(m, b) @@ -251,6 +339,240 @@ func (m *FieldOperationMetadata_IndexConfigDelta) GetIndex() *Index { return nil } +// Metadata for [google.longrunning.Operation][google.longrunning.Operation] results from +// [FirestoreAdmin.ExportDocuments][google.firestore.admin.v1beta2.FirestoreAdmin.ExportDocuments]. +type ExportDocumentsMetadata struct { + // The time this operation started. + StartTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` + // The time this operation completed. Will be unset if operation still in + // progress. + EndTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` + // The state of the export operation. + OperationState OperationState `protobuf:"varint,3,opt,name=operation_state,json=operationState,proto3,enum=google.firestore.admin.v1beta2.OperationState" json:"operation_state,omitempty"` + // The progress, in documents, of this operation. + ProgressDocuments *Progress `protobuf:"bytes,4,opt,name=progress_documents,json=progressDocuments,proto3" json:"progress_documents,omitempty"` + // The progress, in bytes, of this operation. + ProgressBytes *Progress `protobuf:"bytes,5,opt,name=progress_bytes,json=progressBytes,proto3" json:"progress_bytes,omitempty"` + // Which collection ids are being exported. + CollectionIds []string `protobuf:"bytes,6,rep,name=collection_ids,json=collectionIds,proto3" json:"collection_ids,omitempty"` + // Where the entities are being exported to. + OutputUriPrefix string `protobuf:"bytes,7,opt,name=output_uri_prefix,json=outputUriPrefix,proto3" json:"output_uri_prefix,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ExportDocumentsMetadata) Reset() { *m = ExportDocumentsMetadata{} } +func (m *ExportDocumentsMetadata) String() string { return proto.CompactTextString(m) } +func (*ExportDocumentsMetadata) ProtoMessage() {} +func (*ExportDocumentsMetadata) Descriptor() ([]byte, []int) { + return fileDescriptor_operation_027e42d27180be05, []int{2} +} +func (m *ExportDocumentsMetadata) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ExportDocumentsMetadata.Unmarshal(m, b) +} +func (m *ExportDocumentsMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ExportDocumentsMetadata.Marshal(b, m, deterministic) +} +func (dst *ExportDocumentsMetadata) XXX_Merge(src proto.Message) { + xxx_messageInfo_ExportDocumentsMetadata.Merge(dst, src) +} +func (m *ExportDocumentsMetadata) XXX_Size() int { + return xxx_messageInfo_ExportDocumentsMetadata.Size(m) +} +func (m *ExportDocumentsMetadata) XXX_DiscardUnknown() { + xxx_messageInfo_ExportDocumentsMetadata.DiscardUnknown(m) +} + +var xxx_messageInfo_ExportDocumentsMetadata proto.InternalMessageInfo + +func (m *ExportDocumentsMetadata) GetStartTime() *timestamp.Timestamp { + if m != nil { + return m.StartTime + } + return nil +} + +func (m *ExportDocumentsMetadata) GetEndTime() *timestamp.Timestamp { + if m != nil { + return m.EndTime + } + return nil +} + +func (m *ExportDocumentsMetadata) GetOperationState() OperationState { + if m != nil { + return m.OperationState + } + return OperationState_OPERATION_STATE_UNSPECIFIED +} + +func (m *ExportDocumentsMetadata) GetProgressDocuments() *Progress { + if m != nil { + return m.ProgressDocuments + } + return nil +} + +func (m *ExportDocumentsMetadata) GetProgressBytes() *Progress { + if m != nil { + return m.ProgressBytes + } + return nil +} + +func (m *ExportDocumentsMetadata) GetCollectionIds() []string { + if m != nil { + return m.CollectionIds + } + return nil +} + +func (m *ExportDocumentsMetadata) GetOutputUriPrefix() string { + if m != nil { + return m.OutputUriPrefix + } + return "" +} + +// Metadata for [google.longrunning.Operation][google.longrunning.Operation] results from +// [FirestoreAdmin.ImportDocuments][google.firestore.admin.v1beta2.FirestoreAdmin.ImportDocuments]. +type ImportDocumentsMetadata struct { + // The time this operation started. + StartTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` + // The time this operation completed. Will be unset if operation still in + // progress. + EndTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` + // The state of the import operation. + OperationState OperationState `protobuf:"varint,3,opt,name=operation_state,json=operationState,proto3,enum=google.firestore.admin.v1beta2.OperationState" json:"operation_state,omitempty"` + // The progress, in documents, of this operation. + ProgressDocuments *Progress `protobuf:"bytes,4,opt,name=progress_documents,json=progressDocuments,proto3" json:"progress_documents,omitempty"` + // The progress, in bytes, of this operation. + ProgressBytes *Progress `protobuf:"bytes,5,opt,name=progress_bytes,json=progressBytes,proto3" json:"progress_bytes,omitempty"` + // Which collection ids are being imported. + CollectionIds []string `protobuf:"bytes,6,rep,name=collection_ids,json=collectionIds,proto3" json:"collection_ids,omitempty"` + // The location of the documents being imported. + InputUriPrefix string `protobuf:"bytes,7,opt,name=input_uri_prefix,json=inputUriPrefix,proto3" json:"input_uri_prefix,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ImportDocumentsMetadata) Reset() { *m = ImportDocumentsMetadata{} } +func (m *ImportDocumentsMetadata) String() string { return proto.CompactTextString(m) } +func (*ImportDocumentsMetadata) ProtoMessage() {} +func (*ImportDocumentsMetadata) Descriptor() ([]byte, []int) { + return fileDescriptor_operation_027e42d27180be05, []int{3} +} +func (m *ImportDocumentsMetadata) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ImportDocumentsMetadata.Unmarshal(m, b) +} +func (m *ImportDocumentsMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ImportDocumentsMetadata.Marshal(b, m, deterministic) +} +func (dst *ImportDocumentsMetadata) XXX_Merge(src proto.Message) { + xxx_messageInfo_ImportDocumentsMetadata.Merge(dst, src) +} +func (m *ImportDocumentsMetadata) XXX_Size() int { + return xxx_messageInfo_ImportDocumentsMetadata.Size(m) +} +func (m *ImportDocumentsMetadata) XXX_DiscardUnknown() { + xxx_messageInfo_ImportDocumentsMetadata.DiscardUnknown(m) +} + +var xxx_messageInfo_ImportDocumentsMetadata proto.InternalMessageInfo + +func (m *ImportDocumentsMetadata) GetStartTime() *timestamp.Timestamp { + if m != nil { + return m.StartTime + } + return nil +} + +func (m *ImportDocumentsMetadata) GetEndTime() *timestamp.Timestamp { + if m != nil { + return m.EndTime + } + return nil +} + +func (m *ImportDocumentsMetadata) GetOperationState() OperationState { + if m != nil { + return m.OperationState + } + return OperationState_OPERATION_STATE_UNSPECIFIED +} + +func (m *ImportDocumentsMetadata) GetProgressDocuments() *Progress { + if m != nil { + return m.ProgressDocuments + } + return nil +} + +func (m *ImportDocumentsMetadata) GetProgressBytes() *Progress { + if m != nil { + return m.ProgressBytes + } + return nil +} + +func (m *ImportDocumentsMetadata) GetCollectionIds() []string { + if m != nil { + return m.CollectionIds + } + return nil +} + +func (m *ImportDocumentsMetadata) GetInputUriPrefix() string { + if m != nil { + return m.InputUriPrefix + } + return "" +} + +// Returned in the [google.longrunning.Operation][google.longrunning.Operation] response field. +type ExportDocumentsResponse struct { + // Location of the output files. This can be used to begin an import + // into Cloud Firestore (this project or another project) after the operation + // completes successfully. + OutputUriPrefix string `protobuf:"bytes,1,opt,name=output_uri_prefix,json=outputUriPrefix,proto3" json:"output_uri_prefix,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ExportDocumentsResponse) Reset() { *m = ExportDocumentsResponse{} } +func (m *ExportDocumentsResponse) String() string { return proto.CompactTextString(m) } +func (*ExportDocumentsResponse) ProtoMessage() {} +func (*ExportDocumentsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_operation_027e42d27180be05, []int{4} +} +func (m *ExportDocumentsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ExportDocumentsResponse.Unmarshal(m, b) +} +func (m *ExportDocumentsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ExportDocumentsResponse.Marshal(b, m, deterministic) +} +func (dst *ExportDocumentsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ExportDocumentsResponse.Merge(dst, src) +} +func (m *ExportDocumentsResponse) XXX_Size() int { + return xxx_messageInfo_ExportDocumentsResponse.Size(m) +} +func (m *ExportDocumentsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ExportDocumentsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ExportDocumentsResponse proto.InternalMessageInfo + +func (m *ExportDocumentsResponse) GetOutputUriPrefix() string { + if m != nil { + return m.OutputUriPrefix + } + return "" +} + // Describes the progress of the operation. // Unit of work is generic and must be interpreted based on where [Progress][google.firestore.admin.v1beta2.Progress] // is used. @@ -268,7 +590,7 @@ func (m *Progress) Reset() { *m = Progress{} } func (m *Progress) String() string { return proto.CompactTextString(m) } func (*Progress) ProtoMessage() {} func (*Progress) Descriptor() ([]byte, []int) { - return fileDescriptor_operation_3f6f641f194f3566, []int{1} + return fileDescriptor_operation_027e42d27180be05, []int{5} } func (m *Progress) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Progress.Unmarshal(m, b) @@ -303,59 +625,75 @@ func (m *Progress) GetCompletedWork() int64 { } func init() { + proto.RegisterType((*IndexOperationMetadata)(nil), "google.firestore.admin.v1beta2.IndexOperationMetadata") proto.RegisterType((*FieldOperationMetadata)(nil), "google.firestore.admin.v1beta2.FieldOperationMetadata") proto.RegisterType((*FieldOperationMetadata_IndexConfigDelta)(nil), "google.firestore.admin.v1beta2.FieldOperationMetadata.IndexConfigDelta") + proto.RegisterType((*ExportDocumentsMetadata)(nil), "google.firestore.admin.v1beta2.ExportDocumentsMetadata") + proto.RegisterType((*ImportDocumentsMetadata)(nil), "google.firestore.admin.v1beta2.ImportDocumentsMetadata") + proto.RegisterType((*ExportDocumentsResponse)(nil), "google.firestore.admin.v1beta2.ExportDocumentsResponse") proto.RegisterType((*Progress)(nil), "google.firestore.admin.v1beta2.Progress") proto.RegisterEnum("google.firestore.admin.v1beta2.OperationState", OperationState_name, OperationState_value) proto.RegisterEnum("google.firestore.admin.v1beta2.FieldOperationMetadata_IndexConfigDelta_ChangeType", FieldOperationMetadata_IndexConfigDelta_ChangeType_name, FieldOperationMetadata_IndexConfigDelta_ChangeType_value) } func init() { - proto.RegisterFile("google/firestore/admin/v1beta2/operation.proto", fileDescriptor_operation_3f6f641f194f3566) + proto.RegisterFile("google/firestore/admin/v1beta2/operation.proto", fileDescriptor_operation_027e42d27180be05) } -var fileDescriptor_operation_3f6f641f194f3566 = []byte{ - // 665 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x94, 0x4f, 0x6f, 0x12, 0x4f, - 0x1c, 0xc6, 0x7f, 0x0b, 0x05, 0xda, 0x6f, 0x7f, 0x25, 0xdb, 0xd1, 0x28, 0xa1, 0xc6, 0x12, 0x62, - 0x13, 0xd2, 0xc3, 0x6c, 0x8a, 0xf1, 0x60, 0x9a, 0x98, 0x6c, 0x97, 0x05, 0x37, 0xa1, 0x40, 0x16, - 0xa8, 0xda, 0xcb, 0x66, 0x60, 0x87, 0x75, 0x53, 0x76, 0x67, 0xb3, 0x3b, 0xb5, 0xf6, 0xee, 0xd9, - 0x97, 0xe0, 0xc1, 0x9b, 0xbe, 0x4a, 0x33, 0xb3, 0x7f, 0x1a, 0x1b, 0x95, 0x98, 0x78, 0xe3, 0x19, - 0x9e, 0xe7, 0xf3, 0xfd, 0xc3, 0x0c, 0x80, 0x3d, 0xc6, 0xbc, 0x35, 0xd5, 0x56, 0x7e, 0x4c, 0x13, - 0xce, 0x62, 0xaa, 0x11, 0x37, 0xf0, 0x43, 0xed, 0xc3, 0xc9, 0x82, 0x72, 0xd2, 0xd5, 0x58, 0x44, - 0x63, 0xc2, 0x7d, 0x16, 0xe2, 0x28, 0x66, 0x9c, 0xa1, 0xa7, 0xa9, 0x1f, 0x17, 0x7e, 0x2c, 0xfd, - 0x38, 0xf3, 0x37, 0x9f, 0x64, 0x3c, 0x12, 0xf9, 0x1a, 0x09, 0x43, 0xc6, 0x65, 0x38, 0x49, 0xd3, - 0xcd, 0xe3, 0x0d, 0xd5, 0xfc, 0xd0, 0xa5, 0x1f, 0x33, 0xef, 0x61, 0xe6, 0x95, 0x6a, 0x71, 0xbd, - 0xd2, 0xb8, 0x1f, 0xd0, 0x84, 0x93, 0x20, 0x4a, 0x0d, 0xed, 0xcf, 0x55, 0x78, 0xd4, 0xf7, 0xe9, - 0xda, 0x1d, 0xe7, 0x3d, 0x9e, 0x53, 0x4e, 0x5c, 0xc2, 0x09, 0x7a, 0x09, 0x90, 0x70, 0x12, 0x73, - 0x47, 0x64, 0x1a, 0x4a, 0x4b, 0xe9, 0xec, 0x76, 0x9b, 0xd9, 0xa8, 0x38, 0x07, 0xe2, 0x59, 0x0e, - 0xb4, 0x77, 0xa4, 0x5b, 0x68, 0xf4, 0x02, 0xb6, 0x69, 0xe8, 0xa6, 0xc1, 0xd2, 0xc6, 0x60, 0x8d, - 0x86, 0xae, 0x8c, 0x3d, 0x84, 0xca, 0x4a, 0xf4, 0xd2, 0x28, 0xb7, 0x94, 0xce, 0x8e, 0x9d, 0x0a, - 0x74, 0x03, 0x0f, 0xe4, 0x48, 0xce, 0x92, 0x85, 0x2b, 0xdf, 0x73, 0x5c, 0xba, 0xe6, 0x24, 0x69, - 0x6c, 0xb5, 0xca, 0x9d, 0xdd, 0xee, 0x00, 0xff, 0x79, 0x97, 0xf8, 0xd7, 0xc3, 0x61, 0x4b, 0x10, - 0x0d, 0x09, 0xec, 0x09, 0x9e, 0xbd, 0xef, 0xdf, 0x3b, 0x49, 0x50, 0x0f, 0x2a, 0x09, 0x27, 0x9c, - 0x36, 0x2a, 0x2d, 0xa5, 0x53, 0xef, 0xe2, 0x4d, 0xa5, 0x8a, 0x2a, 0x53, 0x91, 0xb2, 0xd3, 0x30, - 0x9a, 0xc3, 0xbe, 0xcb, 0x96, 0xd7, 0x01, 0x0d, 0xb9, 0x13, 0xc5, 0xcc, 0x8b, 0x69, 0x92, 0x34, - 0xaa, 0x72, 0x29, 0x9d, 0x4d, 0xc4, 0x49, 0xe6, 0xb7, 0xd5, 0x1c, 0x91, 0x9f, 0xa0, 0x31, 0xd4, - 0x17, 0xb7, 0x9c, 0x26, 0x77, 0xcc, 0xda, 0x5f, 0x32, 0xf7, 0x64, 0x3e, 0x97, 0xcd, 0x4f, 0x25, - 0x50, 0xef, 0x6f, 0x05, 0x25, 0xb0, 0xbb, 0x7c, 0x4f, 0x42, 0x8f, 0x3a, 0xfc, 0x36, 0x4a, 0x2f, - 0x41, 0xbd, 0x6b, 0xff, 0xa3, 0x9d, 0x63, 0x43, 0xa2, 0x67, 0xb7, 0x11, 0xb5, 0x61, 0x59, 0x7c, - 0x46, 0xa7, 0x50, 0x91, 0x3f, 0x46, 0x76, 0x75, 0x8e, 0x36, 0x95, 0x93, 0x5c, 0x3b, 0xcd, 0xb4, - 0x5f, 0x01, 0xdc, 0x61, 0xd1, 0x01, 0x3c, 0x36, 0x5e, 0xeb, 0xa3, 0x81, 0xe9, 0xcc, 0xde, 0x4d, - 0x4c, 0x67, 0x3e, 0x9a, 0x4e, 0x4c, 0xc3, 0xea, 0x5b, 0x66, 0x4f, 0xfd, 0x0f, 0xd5, 0xa0, 0xac, - 0xf7, 0x7a, 0xaa, 0x82, 0x00, 0xaa, 0xb6, 0x79, 0x3e, 0xbe, 0x30, 0xd5, 0x52, 0xfb, 0x2d, 0x6c, - 0x17, 0x3b, 0x3e, 0x82, 0x3a, 0x4d, 0xb8, 0x1f, 0x10, 0x4e, 0x5d, 0xe7, 0x86, 0xc5, 0x57, 0x72, - 0x01, 0x65, 0x7b, 0xaf, 0x38, 0x7d, 0xc3, 0xe2, 0x2b, 0x61, 0x5b, 0xb2, 0x20, 0x5a, 0xd3, 0xc2, - 0x56, 0x4a, 0x6d, 0xc5, 0xa9, 0xb0, 0x1d, 0x7f, 0x51, 0xa0, 0xfe, 0xf3, 0x15, 0x41, 0x87, 0x70, - 0x30, 0x9e, 0x98, 0xb6, 0x3e, 0xb3, 0xc6, 0x23, 0x67, 0x3a, 0xd3, 0x67, 0xf7, 0x5b, 0x54, 0xe1, - 0x7f, 0x6b, 0x64, 0xcd, 0x2c, 0x7d, 0x68, 0x5d, 0x5a, 0xa3, 0x81, 0xaa, 0xa0, 0x3a, 0xc0, 0xc4, - 0x1e, 0x1b, 0xe6, 0x74, 0x2a, 0x74, 0x49, 0x68, 0x43, 0x1f, 0x19, 0xe6, 0x70, 0x28, 0x74, 0x59, - 0xe8, 0xbe, 0x35, 0xca, 0xfd, 0x5b, 0x42, 0x4f, 0xe7, 0x86, 0xf0, 0xf7, 0xe7, 0x43, 0xb5, 0x22, - 0x66, 0xed, 0xeb, 0xd6, 0xd0, 0xec, 0xa9, 0x55, 0xb4, 0x07, 0x3b, 0x59, 0xd6, 0xec, 0xa9, 0xb5, - 0xb3, 0x6f, 0x0a, 0xb4, 0x97, 0x2c, 0xd8, 0xb0, 0xee, 0xb3, 0xbb, 0x21, 0x26, 0xe2, 0x2d, 0x4f, - 0x94, 0x4b, 0x23, 0x4b, 0x78, 0x6c, 0x4d, 0x42, 0x0f, 0xb3, 0xd8, 0xd3, 0x3c, 0x1a, 0xca, 0x97, - 0xae, 0xa5, 0x5f, 0x91, 0xc8, 0x4f, 0x7e, 0xf7, 0x87, 0x75, 0x2a, 0xd5, 0xd7, 0xd2, 0xd6, 0xc0, - 0xe8, 0x4f, 0xbf, 0x97, 0x9e, 0x0d, 0x52, 0x98, 0xb1, 0x66, 0xd7, 0x2e, 0xee, 0x17, 0x4d, 0xe8, - 0xb2, 0x89, 0x8b, 0x93, 0x33, 0x91, 0x59, 0x54, 0x25, 0xfd, 0xf9, 0x8f, 0x00, 0x00, 0x00, 0xff, - 0xff, 0x2e, 0x32, 0x9e, 0x39, 0x7b, 0x05, 0x00, 0x00, +var fileDescriptor_operation_027e42d27180be05 = []byte{ + // 857 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x56, 0x5d, 0x6f, 0xe3, 0x44, + 0x14, 0xc5, 0x71, 0x92, 0x6e, 0x6e, 0xa9, 0xd7, 0x1d, 0xd0, 0x36, 0xea, 0x22, 0xb6, 0x8a, 0xa8, + 0x14, 0xf5, 0xc1, 0xd1, 0x06, 0xf1, 0x80, 0x56, 0x42, 0x4a, 0x1d, 0x27, 0x58, 0xca, 0x26, 0x91, + 0x93, 0x6c, 0x61, 0x5f, 0xac, 0x69, 0x3c, 0x31, 0xa3, 0x8d, 0x3d, 0x96, 0x67, 0xc2, 0xb6, 0xef, + 0x3c, 0x23, 0x7e, 0x01, 0x0f, 0xbc, 0xc1, 0x9f, 0x42, 0xfc, 0x13, 0x34, 0xe3, 0x8f, 0x68, 0x4b, + 0x97, 0xa8, 0x14, 0x04, 0x48, 0xfb, 0xd6, 0x73, 0x73, 0xce, 0xf1, 0xcc, 0xdc, 0x73, 0xaf, 0x0a, + 0x56, 0xc8, 0x58, 0xb8, 0x26, 0x9d, 0x15, 0x4d, 0x09, 0x17, 0x2c, 0x25, 0x1d, 0x1c, 0x44, 0x34, + 0xee, 0x7c, 0xfb, 0xf4, 0x92, 0x08, 0xdc, 0xed, 0xb0, 0x84, 0xa4, 0x58, 0x50, 0x16, 0x5b, 0x49, + 0xca, 0x04, 0x43, 0x1f, 0x67, 0x7c, 0xab, 0xe4, 0x5b, 0x8a, 0x6f, 0xe5, 0xfc, 0xe3, 0x8f, 0x72, + 0x3f, 0x9c, 0xd0, 0x0e, 0x8e, 0x63, 0x26, 0x94, 0x98, 0x67, 0xea, 0xe3, 0xb3, 0x1d, 0x5f, 0xa3, + 0x71, 0x40, 0xae, 0x72, 0xee, 0x93, 0x9c, 0xab, 0xd0, 0xe5, 0x66, 0xd5, 0x11, 0x34, 0x22, 0x5c, + 0xe0, 0x28, 0xc9, 0x08, 0xad, 0x1f, 0x74, 0x78, 0xe4, 0x4a, 0xc1, 0xa4, 0x38, 0xe3, 0x73, 0x22, + 0x70, 0x80, 0x05, 0x46, 0x9f, 0x03, 0x70, 0x81, 0x53, 0xe1, 0x4b, 0x4d, 0x53, 0x3b, 0xd1, 0xda, + 0xfb, 0xdd, 0xe3, 0xfc, 0xaa, 0x56, 0x61, 0x68, 0xcd, 0x0b, 0x43, 0xaf, 0xa1, 0xd8, 0x12, 0xa3, + 0xcf, 0xe0, 0x01, 0x89, 0x83, 0x4c, 0x58, 0xd9, 0x29, 0xdc, 0x23, 0x71, 0xa0, 0x64, 0x1f, 0x42, + 0x4d, 0x1d, 0xbe, 0xa9, 0x9f, 0x68, 0xed, 0x86, 0x97, 0x01, 0xd4, 0x87, 0x1a, 0x17, 0x58, 0x90, + 0x66, 0xf5, 0x44, 0x6b, 0x1b, 0x5d, 0xcb, 0xfa, 0xf3, 0xd7, 0xb3, 0xca, 0x9b, 0xcc, 0xa4, 0xca, + 0xcb, 0xc4, 0xe8, 0x02, 0x50, 0x92, 0xb2, 0x30, 0x25, 0x9c, 0xfb, 0x01, 0x5b, 0x6e, 0x22, 0x12, + 0x0b, 0xde, 0xac, 0xa9, 0xc3, 0xb5, 0x77, 0x59, 0x4e, 0x73, 0xa5, 0x77, 0x58, 0x78, 0xf4, 0x0b, + 0x0b, 0x34, 0x01, 0xa3, 0x34, 0xbe, 0xbc, 0x16, 0x84, 0x37, 0xeb, 0x77, 0x34, 0x3d, 0x28, 0xf4, + 0xe7, 0x52, 0xde, 0xfa, 0xbe, 0x0e, 0x8f, 0x06, 0x94, 0xac, 0x83, 0xff, 0x48, 0x4b, 0x56, 0xf2, + 0x2c, 0x45, 0x4b, 0x14, 0x40, 0xaf, 0xe1, 0x03, 0xd5, 0x1b, 0x7f, 0xc9, 0xe2, 0x15, 0x0d, 0xfd, + 0x80, 0xac, 0x05, 0xe6, 0xcd, 0xea, 0x89, 0xde, 0xde, 0xef, 0x0e, 0x77, 0x5d, 0xfc, 0xf6, 0xcb, + 0x59, 0x2a, 0x86, 0xb6, 0x32, 0xec, 0x4b, 0x3f, 0xef, 0x90, 0xde, 0xa8, 0xf0, 0x6d, 0x16, 0x6a, + 0xf7, 0xc9, 0xc2, 0x02, 0x0e, 0x8b, 0x08, 0xf8, 0xc5, 0xdb, 0xdf, 0xb9, 0x6b, 0x66, 0x61, 0x51, + 0x54, 0x64, 0x12, 0x54, 0x00, 0xb6, 0x9e, 0x7b, 0x77, 0x4d, 0x82, 0xd2, 0x17, 0xf0, 0xf8, 0xbb, + 0x0a, 0x98, 0x37, 0x5f, 0x05, 0x71, 0xd8, 0x5f, 0x7e, 0x83, 0xe3, 0x90, 0xf8, 0xe2, 0x3a, 0xc9, + 0x42, 0x60, 0x74, 0xbd, 0xbf, 0xe9, 0xcd, 0x2d, 0x5b, 0x59, 0xcf, 0xaf, 0x13, 0xe2, 0xc1, 0xb2, + 0xfc, 0x1b, 0x3d, 0x2b, 0x26, 0x33, 0x8b, 0xce, 0xe9, 0xae, 0xcf, 0x29, 0xdf, 0x7c, 0x80, 0x5b, + 0x5f, 0x00, 0x6c, 0x6d, 0xd1, 0x63, 0x38, 0xb2, 0xbf, 0xec, 0x8d, 0x87, 0x8e, 0x3f, 0xff, 0x7a, + 0xea, 0xf8, 0x8b, 0xf1, 0x6c, 0xea, 0xd8, 0xee, 0xc0, 0x75, 0xfa, 0xe6, 0x7b, 0x68, 0x0f, 0xf4, + 0x5e, 0xbf, 0x6f, 0x6a, 0x08, 0xa0, 0xee, 0x39, 0xcf, 0x27, 0x2f, 0x1c, 0xb3, 0xd2, 0xfa, 0x4d, + 0x87, 0x23, 0xe7, 0x2a, 0x61, 0xa9, 0x28, 0xa7, 0xee, 0x5f, 0x9c, 0x88, 0x0b, 0x78, 0x58, 0xee, + 0x73, 0x3f, 0x0b, 0xa3, 0xfe, 0x97, 0xc2, 0x68, 0xb0, 0x37, 0xf0, 0x5b, 0x36, 0x54, 0xf5, 0x9f, + 0xd8, 0x50, 0xb5, 0x7b, 0x6d, 0x28, 0x74, 0x0a, 0xc6, 0x92, 0xad, 0xd7, 0x64, 0xa9, 0xde, 0x80, + 0x06, 0x72, 0x78, 0xf4, 0x76, 0xc3, 0x3b, 0xd8, 0x56, 0xdd, 0x80, 0xa3, 0x33, 0x38, 0x64, 0x1b, + 0x91, 0x6c, 0x84, 0xbf, 0x49, 0xa9, 0x9f, 0xa4, 0x64, 0x45, 0xaf, 0xd4, 0x48, 0x34, 0xbc, 0x87, + 0xd9, 0x0f, 0x8b, 0x94, 0x4e, 0x55, 0xb9, 0xf5, 0xab, 0x0e, 0x47, 0x6e, 0xf4, 0xae, 0xc7, 0xff, + 0xb7, 0x1e, 0xb7, 0xc1, 0xa4, 0xf1, 0xad, 0x2d, 0x36, 0x54, 0x7d, 0xdb, 0x61, 0xe7, 0x0f, 0x43, + 0xec, 0x11, 0x9e, 0xb0, 0x98, 0x93, 0xdb, 0x83, 0xa2, 0xdd, 0x1e, 0x94, 0xaf, 0xe0, 0x41, 0xb9, + 0x70, 0x4f, 0xc1, 0x20, 0x5c, 0xd0, 0x08, 0x0b, 0x12, 0xf8, 0xaf, 0x59, 0xfa, 0x4a, 0x89, 0x74, + 0xef, 0xa0, 0xac, 0x5e, 0xb0, 0xf4, 0x55, 0x76, 0x95, 0x28, 0x59, 0x93, 0x92, 0x56, 0xc9, 0x68, + 0x65, 0x55, 0xd2, 0xce, 0x7e, 0xd4, 0xc0, 0x78, 0xb3, 0x7d, 0xe8, 0x09, 0x3c, 0x9e, 0x4c, 0x1d, + 0xaf, 0x37, 0x77, 0x27, 0x63, 0x7f, 0x36, 0xef, 0xcd, 0x6f, 0xee, 0x2b, 0x13, 0xde, 0x77, 0xc7, + 0xee, 0xdc, 0xed, 0x8d, 0xdc, 0x97, 0xee, 0x78, 0x68, 0x6a, 0xc8, 0x00, 0x98, 0x7a, 0x13, 0xdb, + 0x99, 0xcd, 0x24, 0xae, 0x48, 0x6c, 0xf7, 0xc6, 0xb6, 0x33, 0x1a, 0x49, 0xac, 0x4b, 0x3c, 0x70, + 0xc7, 0x05, 0xbf, 0x2a, 0xf1, 0x6c, 0x61, 0x4b, 0xfe, 0x60, 0x31, 0x32, 0x6b, 0x72, 0xf1, 0x0d, + 0x7a, 0xee, 0xc8, 0xe9, 0x9b, 0x75, 0x74, 0x00, 0x8d, 0x5c, 0xeb, 0xf4, 0xcd, 0xbd, 0xf3, 0x9f, + 0x35, 0x68, 0x2d, 0x59, 0xb4, 0xa3, 0xa3, 0xe7, 0xdb, 0x4b, 0x4c, 0x65, 0xc4, 0xa7, 0xda, 0x4b, + 0x3b, 0x57, 0x84, 0x6c, 0x8d, 0xe3, 0xd0, 0x62, 0x69, 0xd8, 0x09, 0x49, 0xac, 0x06, 0xa0, 0x93, + 0xfd, 0x84, 0x13, 0xca, 0xdf, 0xf6, 0x0f, 0xe5, 0x33, 0x85, 0x7e, 0xaa, 0x54, 0x87, 0xf6, 0x60, + 0xf6, 0x4b, 0xe5, 0x93, 0x61, 0x66, 0x66, 0xaf, 0xd9, 0x26, 0xb0, 0x06, 0xe5, 0x21, 0x7a, 0xea, + 0x10, 0x2f, 0x9e, 0x9e, 0x4b, 0xcd, 0x65, 0x5d, 0xb9, 0x7f, 0xfa, 0x7b, 0x00, 0x00, 0x00, 0xff, + 0xff, 0x66, 0x9c, 0x3d, 0x65, 0x1b, 0x0b, 0x00, 0x00, } diff --git a/vendor/google.golang.org/genproto/googleapis/firestore/v1/common.pb.go b/vendor/google.golang.org/genproto/googleapis/firestore/v1/common.pb.go new file mode 100644 index 000000000..e8c01c20d --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/firestore/v1/common.pb.go @@ -0,0 +1,562 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/firestore/v1/common.proto + +package firestore // import "google.golang.org/genproto/googleapis/firestore/v1" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import timestamp "github.com/golang/protobuf/ptypes/timestamp" +import _ "google.golang.org/genproto/googleapis/api/annotations" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A set of field paths on a document. +// Used to restrict a get or update operation on a document to a subset of its +// fields. +// This is different from standard field masks, as this is always scoped to a +// [Document][google.firestore.v1.Document], and takes in account the dynamic nature of [Value][google.firestore.v1.Value]. +type DocumentMask struct { + // The list of field paths in the mask. See [Document.fields][google.firestore.v1.Document.fields] for a field + // path syntax reference. + FieldPaths []string `protobuf:"bytes,1,rep,name=field_paths,json=fieldPaths,proto3" json:"field_paths,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DocumentMask) Reset() { *m = DocumentMask{} } +func (m *DocumentMask) String() string { return proto.CompactTextString(m) } +func (*DocumentMask) ProtoMessage() {} +func (*DocumentMask) Descriptor() ([]byte, []int) { + return fileDescriptor_common_d742b1674d6d5f16, []int{0} +} +func (m *DocumentMask) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DocumentMask.Unmarshal(m, b) +} +func (m *DocumentMask) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DocumentMask.Marshal(b, m, deterministic) +} +func (dst *DocumentMask) XXX_Merge(src proto.Message) { + xxx_messageInfo_DocumentMask.Merge(dst, src) +} +func (m *DocumentMask) XXX_Size() int { + return xxx_messageInfo_DocumentMask.Size(m) +} +func (m *DocumentMask) XXX_DiscardUnknown() { + xxx_messageInfo_DocumentMask.DiscardUnknown(m) +} + +var xxx_messageInfo_DocumentMask proto.InternalMessageInfo + +func (m *DocumentMask) GetFieldPaths() []string { + if m != nil { + return m.FieldPaths + } + return nil +} + +// A precondition on a document, used for conditional operations. +type Precondition struct { + // The type of precondition. + // + // Types that are valid to be assigned to ConditionType: + // *Precondition_Exists + // *Precondition_UpdateTime + ConditionType isPrecondition_ConditionType `protobuf_oneof:"condition_type"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Precondition) Reset() { *m = Precondition{} } +func (m *Precondition) String() string { return proto.CompactTextString(m) } +func (*Precondition) ProtoMessage() {} +func (*Precondition) Descriptor() ([]byte, []int) { + return fileDescriptor_common_d742b1674d6d5f16, []int{1} +} +func (m *Precondition) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Precondition.Unmarshal(m, b) +} +func (m *Precondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Precondition.Marshal(b, m, deterministic) +} +func (dst *Precondition) XXX_Merge(src proto.Message) { + xxx_messageInfo_Precondition.Merge(dst, src) +} +func (m *Precondition) XXX_Size() int { + return xxx_messageInfo_Precondition.Size(m) +} +func (m *Precondition) XXX_DiscardUnknown() { + xxx_messageInfo_Precondition.DiscardUnknown(m) +} + +var xxx_messageInfo_Precondition proto.InternalMessageInfo + +type isPrecondition_ConditionType interface { + isPrecondition_ConditionType() +} + +type Precondition_Exists struct { + Exists bool `protobuf:"varint,1,opt,name=exists,proto3,oneof"` +} + +type Precondition_UpdateTime struct { + UpdateTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=update_time,json=updateTime,proto3,oneof"` +} + +func (*Precondition_Exists) isPrecondition_ConditionType() {} + +func (*Precondition_UpdateTime) isPrecondition_ConditionType() {} + +func (m *Precondition) GetConditionType() isPrecondition_ConditionType { + if m != nil { + return m.ConditionType + } + return nil +} + +func (m *Precondition) GetExists() bool { + if x, ok := m.GetConditionType().(*Precondition_Exists); ok { + return x.Exists + } + return false +} + +func (m *Precondition) GetUpdateTime() *timestamp.Timestamp { + if x, ok := m.GetConditionType().(*Precondition_UpdateTime); ok { + return x.UpdateTime + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*Precondition) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _Precondition_OneofMarshaler, _Precondition_OneofUnmarshaler, _Precondition_OneofSizer, []interface{}{ + (*Precondition_Exists)(nil), + (*Precondition_UpdateTime)(nil), + } +} + +func _Precondition_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*Precondition) + // condition_type + switch x := m.ConditionType.(type) { + case *Precondition_Exists: + t := uint64(0) + if x.Exists { + t = 1 + } + b.EncodeVarint(1<<3 | proto.WireVarint) + b.EncodeVarint(t) + case *Precondition_UpdateTime: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.UpdateTime); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("Precondition.ConditionType has unexpected type %T", x) + } + return nil +} + +func _Precondition_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*Precondition) + switch tag { + case 1: // condition_type.exists + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ConditionType = &Precondition_Exists{x != 0} + return true, err + case 2: // condition_type.update_time + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(timestamp.Timestamp) + err := b.DecodeMessage(msg) + m.ConditionType = &Precondition_UpdateTime{msg} + return true, err + default: + return false, nil + } +} + +func _Precondition_OneofSizer(msg proto.Message) (n int) { + m := msg.(*Precondition) + // condition_type + switch x := m.ConditionType.(type) { + case *Precondition_Exists: + n += 1 // tag and wire + n += 1 + case *Precondition_UpdateTime: + s := proto.Size(x.UpdateTime) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// Options for creating a new transaction. +type TransactionOptions struct { + // The mode of the transaction. + // + // Types that are valid to be assigned to Mode: + // *TransactionOptions_ReadOnly_ + // *TransactionOptions_ReadWrite_ + Mode isTransactionOptions_Mode `protobuf_oneof:"mode"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TransactionOptions) Reset() { *m = TransactionOptions{} } +func (m *TransactionOptions) String() string { return proto.CompactTextString(m) } +func (*TransactionOptions) ProtoMessage() {} +func (*TransactionOptions) Descriptor() ([]byte, []int) { + return fileDescriptor_common_d742b1674d6d5f16, []int{2} +} +func (m *TransactionOptions) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TransactionOptions.Unmarshal(m, b) +} +func (m *TransactionOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TransactionOptions.Marshal(b, m, deterministic) +} +func (dst *TransactionOptions) XXX_Merge(src proto.Message) { + xxx_messageInfo_TransactionOptions.Merge(dst, src) +} +func (m *TransactionOptions) XXX_Size() int { + return xxx_messageInfo_TransactionOptions.Size(m) +} +func (m *TransactionOptions) XXX_DiscardUnknown() { + xxx_messageInfo_TransactionOptions.DiscardUnknown(m) +} + +var xxx_messageInfo_TransactionOptions proto.InternalMessageInfo + +type isTransactionOptions_Mode interface { + isTransactionOptions_Mode() +} + +type TransactionOptions_ReadOnly_ struct { + ReadOnly *TransactionOptions_ReadOnly `protobuf:"bytes,2,opt,name=read_only,json=readOnly,proto3,oneof"` +} + +type TransactionOptions_ReadWrite_ struct { + ReadWrite *TransactionOptions_ReadWrite `protobuf:"bytes,3,opt,name=read_write,json=readWrite,proto3,oneof"` +} + +func (*TransactionOptions_ReadOnly_) isTransactionOptions_Mode() {} + +func (*TransactionOptions_ReadWrite_) isTransactionOptions_Mode() {} + +func (m *TransactionOptions) GetMode() isTransactionOptions_Mode { + if m != nil { + return m.Mode + } + return nil +} + +func (m *TransactionOptions) GetReadOnly() *TransactionOptions_ReadOnly { + if x, ok := m.GetMode().(*TransactionOptions_ReadOnly_); ok { + return x.ReadOnly + } + return nil +} + +func (m *TransactionOptions) GetReadWrite() *TransactionOptions_ReadWrite { + if x, ok := m.GetMode().(*TransactionOptions_ReadWrite_); ok { + return x.ReadWrite + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*TransactionOptions) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _TransactionOptions_OneofMarshaler, _TransactionOptions_OneofUnmarshaler, _TransactionOptions_OneofSizer, []interface{}{ + (*TransactionOptions_ReadOnly_)(nil), + (*TransactionOptions_ReadWrite_)(nil), + } +} + +func _TransactionOptions_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*TransactionOptions) + // mode + switch x := m.Mode.(type) { + case *TransactionOptions_ReadOnly_: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.ReadOnly); err != nil { + return err + } + case *TransactionOptions_ReadWrite_: + b.EncodeVarint(3<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.ReadWrite); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("TransactionOptions.Mode has unexpected type %T", x) + } + return nil +} + +func _TransactionOptions_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*TransactionOptions) + switch tag { + case 2: // mode.read_only + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(TransactionOptions_ReadOnly) + err := b.DecodeMessage(msg) + m.Mode = &TransactionOptions_ReadOnly_{msg} + return true, err + case 3: // mode.read_write + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(TransactionOptions_ReadWrite) + err := b.DecodeMessage(msg) + m.Mode = &TransactionOptions_ReadWrite_{msg} + return true, err + default: + return false, nil + } +} + +func _TransactionOptions_OneofSizer(msg proto.Message) (n int) { + m := msg.(*TransactionOptions) + // mode + switch x := m.Mode.(type) { + case *TransactionOptions_ReadOnly_: + s := proto.Size(x.ReadOnly) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *TransactionOptions_ReadWrite_: + s := proto.Size(x.ReadWrite) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// Options for a transaction that can be used to read and write documents. +type TransactionOptions_ReadWrite struct { + // An optional transaction to retry. + RetryTransaction []byte `protobuf:"bytes,1,opt,name=retry_transaction,json=retryTransaction,proto3" json:"retry_transaction,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TransactionOptions_ReadWrite) Reset() { *m = TransactionOptions_ReadWrite{} } +func (m *TransactionOptions_ReadWrite) String() string { return proto.CompactTextString(m) } +func (*TransactionOptions_ReadWrite) ProtoMessage() {} +func (*TransactionOptions_ReadWrite) Descriptor() ([]byte, []int) { + return fileDescriptor_common_d742b1674d6d5f16, []int{2, 0} +} +func (m *TransactionOptions_ReadWrite) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TransactionOptions_ReadWrite.Unmarshal(m, b) +} +func (m *TransactionOptions_ReadWrite) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TransactionOptions_ReadWrite.Marshal(b, m, deterministic) +} +func (dst *TransactionOptions_ReadWrite) XXX_Merge(src proto.Message) { + xxx_messageInfo_TransactionOptions_ReadWrite.Merge(dst, src) +} +func (m *TransactionOptions_ReadWrite) XXX_Size() int { + return xxx_messageInfo_TransactionOptions_ReadWrite.Size(m) +} +func (m *TransactionOptions_ReadWrite) XXX_DiscardUnknown() { + xxx_messageInfo_TransactionOptions_ReadWrite.DiscardUnknown(m) +} + +var xxx_messageInfo_TransactionOptions_ReadWrite proto.InternalMessageInfo + +func (m *TransactionOptions_ReadWrite) GetRetryTransaction() []byte { + if m != nil { + return m.RetryTransaction + } + return nil +} + +// Options for a transaction that can only be used to read documents. +type TransactionOptions_ReadOnly struct { + // The consistency mode for this transaction. If not set, defaults to strong + // consistency. + // + // Types that are valid to be assigned to ConsistencySelector: + // *TransactionOptions_ReadOnly_ReadTime + ConsistencySelector isTransactionOptions_ReadOnly_ConsistencySelector `protobuf_oneof:"consistency_selector"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TransactionOptions_ReadOnly) Reset() { *m = TransactionOptions_ReadOnly{} } +func (m *TransactionOptions_ReadOnly) String() string { return proto.CompactTextString(m) } +func (*TransactionOptions_ReadOnly) ProtoMessage() {} +func (*TransactionOptions_ReadOnly) Descriptor() ([]byte, []int) { + return fileDescriptor_common_d742b1674d6d5f16, []int{2, 1} +} +func (m *TransactionOptions_ReadOnly) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TransactionOptions_ReadOnly.Unmarshal(m, b) +} +func (m *TransactionOptions_ReadOnly) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TransactionOptions_ReadOnly.Marshal(b, m, deterministic) +} +func (dst *TransactionOptions_ReadOnly) XXX_Merge(src proto.Message) { + xxx_messageInfo_TransactionOptions_ReadOnly.Merge(dst, src) +} +func (m *TransactionOptions_ReadOnly) XXX_Size() int { + return xxx_messageInfo_TransactionOptions_ReadOnly.Size(m) +} +func (m *TransactionOptions_ReadOnly) XXX_DiscardUnknown() { + xxx_messageInfo_TransactionOptions_ReadOnly.DiscardUnknown(m) +} + +var xxx_messageInfo_TransactionOptions_ReadOnly proto.InternalMessageInfo + +type isTransactionOptions_ReadOnly_ConsistencySelector interface { + isTransactionOptions_ReadOnly_ConsistencySelector() +} + +type TransactionOptions_ReadOnly_ReadTime struct { + ReadTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=read_time,json=readTime,proto3,oneof"` +} + +func (*TransactionOptions_ReadOnly_ReadTime) isTransactionOptions_ReadOnly_ConsistencySelector() {} + +func (m *TransactionOptions_ReadOnly) GetConsistencySelector() isTransactionOptions_ReadOnly_ConsistencySelector { + if m != nil { + return m.ConsistencySelector + } + return nil +} + +func (m *TransactionOptions_ReadOnly) GetReadTime() *timestamp.Timestamp { + if x, ok := m.GetConsistencySelector().(*TransactionOptions_ReadOnly_ReadTime); ok { + return x.ReadTime + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*TransactionOptions_ReadOnly) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _TransactionOptions_ReadOnly_OneofMarshaler, _TransactionOptions_ReadOnly_OneofUnmarshaler, _TransactionOptions_ReadOnly_OneofSizer, []interface{}{ + (*TransactionOptions_ReadOnly_ReadTime)(nil), + } +} + +func _TransactionOptions_ReadOnly_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*TransactionOptions_ReadOnly) + // consistency_selector + switch x := m.ConsistencySelector.(type) { + case *TransactionOptions_ReadOnly_ReadTime: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.ReadTime); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("TransactionOptions_ReadOnly.ConsistencySelector has unexpected type %T", x) + } + return nil +} + +func _TransactionOptions_ReadOnly_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*TransactionOptions_ReadOnly) + switch tag { + case 2: // consistency_selector.read_time + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(timestamp.Timestamp) + err := b.DecodeMessage(msg) + m.ConsistencySelector = &TransactionOptions_ReadOnly_ReadTime{msg} + return true, err + default: + return false, nil + } +} + +func _TransactionOptions_ReadOnly_OneofSizer(msg proto.Message) (n int) { + m := msg.(*TransactionOptions_ReadOnly) + // consistency_selector + switch x := m.ConsistencySelector.(type) { + case *TransactionOptions_ReadOnly_ReadTime: + s := proto.Size(x.ReadTime) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +func init() { + proto.RegisterType((*DocumentMask)(nil), "google.firestore.v1.DocumentMask") + proto.RegisterType((*Precondition)(nil), "google.firestore.v1.Precondition") + proto.RegisterType((*TransactionOptions)(nil), "google.firestore.v1.TransactionOptions") + proto.RegisterType((*TransactionOptions_ReadWrite)(nil), "google.firestore.v1.TransactionOptions.ReadWrite") + proto.RegisterType((*TransactionOptions_ReadOnly)(nil), "google.firestore.v1.TransactionOptions.ReadOnly") +} + +func init() { + proto.RegisterFile("google/firestore/v1/common.proto", fileDescriptor_common_d742b1674d6d5f16) +} + +var fileDescriptor_common_d742b1674d6d5f16 = []byte{ + // 459 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x52, 0xd1, 0x8a, 0xd3, 0x40, + 0x14, 0x6d, 0xba, 0x4b, 0x69, 0x6f, 0x8b, 0xac, 0x51, 0xb4, 0x06, 0x61, 0x4b, 0x9f, 0x0a, 0xc2, + 0xc4, 0xe8, 0x8b, 0xa2, 0xbe, 0xb4, 0xb2, 0xdb, 0x17, 0x69, 0x89, 0xcb, 0x0a, 0x52, 0x09, 0xb3, + 0xc9, 0x6d, 0x1c, 0x4c, 0xe6, 0x86, 0x99, 0xe9, 0x6a, 0x7e, 0x47, 0xf0, 0xc5, 0x4f, 0xf1, 0x13, + 0xfc, 0x1a, 0xc9, 0x24, 0x8d, 0x8a, 0x7d, 0x70, 0xdf, 0xe6, 0xde, 0x73, 0xcf, 0x39, 0xf7, 0x5c, + 0x06, 0x26, 0x29, 0x51, 0x9a, 0xa1, 0xbf, 0x15, 0x0a, 0xb5, 0x21, 0x85, 0xfe, 0x75, 0xe0, 0xc7, + 0x94, 0xe7, 0x24, 0x59, 0xa1, 0xc8, 0x90, 0x7b, 0xa7, 0x9e, 0x60, 0xed, 0x04, 0xbb, 0x0e, 0xbc, + 0x87, 0x0d, 0x8d, 0x17, 0xc2, 0xe7, 0x52, 0x92, 0xe1, 0x46, 0x90, 0xd4, 0x35, 0xc5, 0x3b, 0x6d, + 0x50, 0x5b, 0x5d, 0xed, 0xb6, 0xbe, 0x11, 0x39, 0x6a, 0xc3, 0xf3, 0xa2, 0x1e, 0x98, 0xfa, 0x30, + 0x7a, 0x4d, 0xf1, 0x2e, 0x47, 0x69, 0xde, 0x70, 0xfd, 0xc9, 0x3d, 0x85, 0xe1, 0x56, 0x60, 0x96, + 0x44, 0x05, 0x37, 0x1f, 0xf5, 0xd8, 0x99, 0x1c, 0xcd, 0x06, 0x21, 0xd8, 0xd6, 0xba, 0xea, 0x4c, + 0x4b, 0x18, 0xad, 0x15, 0xc6, 0x24, 0x13, 0x51, 0x19, 0xb9, 0x63, 0xe8, 0xe1, 0x17, 0xa1, 0x4d, + 0x35, 0xeb, 0xcc, 0xfa, 0xcb, 0x4e, 0xd8, 0xd4, 0xee, 0x2b, 0x18, 0xee, 0x8a, 0x84, 0x1b, 0x8c, + 0x2a, 0xd3, 0x71, 0x77, 0xe2, 0xcc, 0x86, 0x4f, 0x3c, 0xd6, 0x84, 0xd8, 0x6f, 0xc4, 0x2e, 0xf6, + 0x1b, 0x2d, 0x3b, 0x21, 0xd4, 0x84, 0xaa, 0x35, 0x3f, 0x81, 0x5b, 0xad, 0x4b, 0x64, 0xca, 0x02, + 0xa7, 0x3f, 0xbb, 0xe0, 0x5e, 0x28, 0x2e, 0x35, 0x8f, 0xab, 0xe6, 0xaa, 0xb0, 0x49, 0xdd, 0x15, + 0x0c, 0x14, 0xf2, 0x24, 0x22, 0x99, 0x95, 0x8d, 0xcb, 0x63, 0x76, 0xe0, 0x54, 0xec, 0x5f, 0x2e, + 0x0b, 0x91, 0x27, 0x2b, 0x99, 0x95, 0xcb, 0x4e, 0xd8, 0x57, 0xcd, 0xdb, 0x0d, 0x01, 0xac, 0xe0, + 0x67, 0x25, 0x0c, 0x8e, 0x8f, 0xac, 0x62, 0x70, 0x13, 0xc5, 0x77, 0x15, 0x71, 0xd9, 0x09, 0xed, + 0x5e, 0xb6, 0xf0, 0x9e, 0xc1, 0xa0, 0x45, 0xdc, 0x47, 0x70, 0x5b, 0xa1, 0x51, 0x65, 0x64, 0x7e, + 0xf3, 0xed, 0xf9, 0x46, 0xe1, 0x89, 0x05, 0xfe, 0xd0, 0xf5, 0x3e, 0x40, 0x7f, 0xbf, 0xa5, 0xfb, + 0xbc, 0x89, 0xfa, 0xdf, 0x07, 0xb5, 0xa1, 0xec, 0x39, 0xef, 0xc1, 0xdd, 0x98, 0xa4, 0x16, 0xda, + 0xa0, 0x8c, 0xcb, 0x48, 0x63, 0x86, 0xb1, 0x21, 0x35, 0xef, 0xc1, 0x71, 0x4e, 0x09, 0xce, 0xbf, + 0x39, 0x70, 0x3f, 0xa6, 0xfc, 0x50, 0xcc, 0xf9, 0x70, 0x61, 0xbf, 0xe1, 0xba, 0x72, 0x58, 0x3b, + 0xef, 0x5f, 0x36, 0x33, 0x29, 0x65, 0x5c, 0xa6, 0x8c, 0x54, 0xea, 0xa7, 0x28, 0xad, 0xbf, 0x5f, + 0x43, 0xbc, 0x10, 0xfa, 0xaf, 0x8f, 0xfc, 0xa2, 0x2d, 0xbe, 0x76, 0x8f, 0xcf, 0x17, 0x67, 0x6f, + 0xbf, 0x77, 0x1f, 0x9c, 0xd7, 0x2a, 0x8b, 0x8c, 0x76, 0x09, 0x3b, 0x6b, 0xfd, 0x2e, 0x83, 0x1f, + 0x7b, 0x6c, 0x63, 0xb1, 0x4d, 0x8b, 0x6d, 0x2e, 0x83, 0xab, 0x9e, 0xf5, 0x79, 0xfa, 0x2b, 0x00, + 0x00, 0xff, 0xff, 0x6e, 0x90, 0xee, 0x09, 0x2f, 0x03, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/firestore/v1/document.pb.go b/vendor/google.golang.org/genproto/googleapis/firestore/v1/document.pb.go new file mode 100644 index 000000000..9a9de6f14 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/firestore/v1/document.pb.go @@ -0,0 +1,684 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/firestore/v1/document.proto + +package firestore // import "google.golang.org/genproto/googleapis/firestore/v1" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import _struct "github.com/golang/protobuf/ptypes/struct" +import timestamp "github.com/golang/protobuf/ptypes/timestamp" +import _ "google.golang.org/genproto/googleapis/api/annotations" +import latlng "google.golang.org/genproto/googleapis/type/latlng" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A Firestore document. +// +// Must not exceed 1 MiB - 4 bytes. +type Document struct { + // The resource name of the document, for example + // `projects/{project_id}/databases/{database_id}/documents/{document_path}`. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // The document's fields. + // + // The map keys represent field names. + // + // A simple field name contains only characters `a` to `z`, `A` to `Z`, + // `0` to `9`, or `_`, and must not start with `0` to `9`. For example, + // `foo_bar_17`. + // + // Field names matching the regular expression `__.*__` are reserved. Reserved + // field names are forbidden except in certain documented contexts. The map + // keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be + // empty. + // + // Field paths may be used in other contexts to refer to structured fields + // defined here. For `map_value`, the field path is represented by the simple + // or quoted field names of the containing fields, delimited by `.`. For + // example, the structured field + // `"foo" : { map_value: { "x&y" : { string_value: "hello" }}}` would be + // represented by the field path `foo.x&y`. + // + // Within a field path, a quoted field name starts and ends with `` ` `` and + // may contain any character. Some characters, including `` ` ``, must be + // escaped using a `\`. For example, `` `x&y` `` represents `x&y` and + // `` `bak\`tik` `` represents `` bak`tik ``. + Fields map[string]*Value `protobuf:"bytes,2,rep,name=fields,proto3" json:"fields,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Output only. The time at which the document was created. + // + // This value increases monotonically when a document is deleted then + // recreated. It can also be compared to values from other documents and + // the `read_time` of a query. + CreateTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. The time at which the document was last changed. + // + // This value is initially set to the `create_time` then increases + // monotonically with each change to the document. It can also be + // compared to values from other documents and the `read_time` of a query. + UpdateTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Document) Reset() { *m = Document{} } +func (m *Document) String() string { return proto.CompactTextString(m) } +func (*Document) ProtoMessage() {} +func (*Document) Descriptor() ([]byte, []int) { + return fileDescriptor_document_29c6fb566b77c4b5, []int{0} +} +func (m *Document) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Document.Unmarshal(m, b) +} +func (m *Document) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Document.Marshal(b, m, deterministic) +} +func (dst *Document) XXX_Merge(src proto.Message) { + xxx_messageInfo_Document.Merge(dst, src) +} +func (m *Document) XXX_Size() int { + return xxx_messageInfo_Document.Size(m) +} +func (m *Document) XXX_DiscardUnknown() { + xxx_messageInfo_Document.DiscardUnknown(m) +} + +var xxx_messageInfo_Document proto.InternalMessageInfo + +func (m *Document) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *Document) GetFields() map[string]*Value { + if m != nil { + return m.Fields + } + return nil +} + +func (m *Document) GetCreateTime() *timestamp.Timestamp { + if m != nil { + return m.CreateTime + } + return nil +} + +func (m *Document) GetUpdateTime() *timestamp.Timestamp { + if m != nil { + return m.UpdateTime + } + return nil +} + +// A message that can hold any of the supported value types. +type Value struct { + // Must have a value set. + // + // Types that are valid to be assigned to ValueType: + // *Value_NullValue + // *Value_BooleanValue + // *Value_IntegerValue + // *Value_DoubleValue + // *Value_TimestampValue + // *Value_StringValue + // *Value_BytesValue + // *Value_ReferenceValue + // *Value_GeoPointValue + // *Value_ArrayValue + // *Value_MapValue + ValueType isValue_ValueType `protobuf_oneof:"value_type"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Value) Reset() { *m = Value{} } +func (m *Value) String() string { return proto.CompactTextString(m) } +func (*Value) ProtoMessage() {} +func (*Value) Descriptor() ([]byte, []int) { + return fileDescriptor_document_29c6fb566b77c4b5, []int{1} +} +func (m *Value) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Value.Unmarshal(m, b) +} +func (m *Value) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Value.Marshal(b, m, deterministic) +} +func (dst *Value) XXX_Merge(src proto.Message) { + xxx_messageInfo_Value.Merge(dst, src) +} +func (m *Value) XXX_Size() int { + return xxx_messageInfo_Value.Size(m) +} +func (m *Value) XXX_DiscardUnknown() { + xxx_messageInfo_Value.DiscardUnknown(m) +} + +var xxx_messageInfo_Value proto.InternalMessageInfo + +type isValue_ValueType interface { + isValue_ValueType() +} + +type Value_NullValue struct { + NullValue _struct.NullValue `protobuf:"varint,11,opt,name=null_value,json=nullValue,proto3,enum=google.protobuf.NullValue,oneof"` +} + +type Value_BooleanValue struct { + BooleanValue bool `protobuf:"varint,1,opt,name=boolean_value,json=booleanValue,proto3,oneof"` +} + +type Value_IntegerValue struct { + IntegerValue int64 `protobuf:"varint,2,opt,name=integer_value,json=integerValue,proto3,oneof"` +} + +type Value_DoubleValue struct { + DoubleValue float64 `protobuf:"fixed64,3,opt,name=double_value,json=doubleValue,proto3,oneof"` +} + +type Value_TimestampValue struct { + TimestampValue *timestamp.Timestamp `protobuf:"bytes,10,opt,name=timestamp_value,json=timestampValue,proto3,oneof"` +} + +type Value_StringValue struct { + StringValue string `protobuf:"bytes,17,opt,name=string_value,json=stringValue,proto3,oneof"` +} + +type Value_BytesValue struct { + BytesValue []byte `protobuf:"bytes,18,opt,name=bytes_value,json=bytesValue,proto3,oneof"` +} + +type Value_ReferenceValue struct { + ReferenceValue string `protobuf:"bytes,5,opt,name=reference_value,json=referenceValue,proto3,oneof"` +} + +type Value_GeoPointValue struct { + GeoPointValue *latlng.LatLng `protobuf:"bytes,8,opt,name=geo_point_value,json=geoPointValue,proto3,oneof"` +} + +type Value_ArrayValue struct { + ArrayValue *ArrayValue `protobuf:"bytes,9,opt,name=array_value,json=arrayValue,proto3,oneof"` +} + +type Value_MapValue struct { + MapValue *MapValue `protobuf:"bytes,6,opt,name=map_value,json=mapValue,proto3,oneof"` +} + +func (*Value_NullValue) isValue_ValueType() {} + +func (*Value_BooleanValue) isValue_ValueType() {} + +func (*Value_IntegerValue) isValue_ValueType() {} + +func (*Value_DoubleValue) isValue_ValueType() {} + +func (*Value_TimestampValue) isValue_ValueType() {} + +func (*Value_StringValue) isValue_ValueType() {} + +func (*Value_BytesValue) isValue_ValueType() {} + +func (*Value_ReferenceValue) isValue_ValueType() {} + +func (*Value_GeoPointValue) isValue_ValueType() {} + +func (*Value_ArrayValue) isValue_ValueType() {} + +func (*Value_MapValue) isValue_ValueType() {} + +func (m *Value) GetValueType() isValue_ValueType { + if m != nil { + return m.ValueType + } + return nil +} + +func (m *Value) GetNullValue() _struct.NullValue { + if x, ok := m.GetValueType().(*Value_NullValue); ok { + return x.NullValue + } + return _struct.NullValue_NULL_VALUE +} + +func (m *Value) GetBooleanValue() bool { + if x, ok := m.GetValueType().(*Value_BooleanValue); ok { + return x.BooleanValue + } + return false +} + +func (m *Value) GetIntegerValue() int64 { + if x, ok := m.GetValueType().(*Value_IntegerValue); ok { + return x.IntegerValue + } + return 0 +} + +func (m *Value) GetDoubleValue() float64 { + if x, ok := m.GetValueType().(*Value_DoubleValue); ok { + return x.DoubleValue + } + return 0 +} + +func (m *Value) GetTimestampValue() *timestamp.Timestamp { + if x, ok := m.GetValueType().(*Value_TimestampValue); ok { + return x.TimestampValue + } + return nil +} + +func (m *Value) GetStringValue() string { + if x, ok := m.GetValueType().(*Value_StringValue); ok { + return x.StringValue + } + return "" +} + +func (m *Value) GetBytesValue() []byte { + if x, ok := m.GetValueType().(*Value_BytesValue); ok { + return x.BytesValue + } + return nil +} + +func (m *Value) GetReferenceValue() string { + if x, ok := m.GetValueType().(*Value_ReferenceValue); ok { + return x.ReferenceValue + } + return "" +} + +func (m *Value) GetGeoPointValue() *latlng.LatLng { + if x, ok := m.GetValueType().(*Value_GeoPointValue); ok { + return x.GeoPointValue + } + return nil +} + +func (m *Value) GetArrayValue() *ArrayValue { + if x, ok := m.GetValueType().(*Value_ArrayValue); ok { + return x.ArrayValue + } + return nil +} + +func (m *Value) GetMapValue() *MapValue { + if x, ok := m.GetValueType().(*Value_MapValue); ok { + return x.MapValue + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*Value) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _Value_OneofMarshaler, _Value_OneofUnmarshaler, _Value_OneofSizer, []interface{}{ + (*Value_NullValue)(nil), + (*Value_BooleanValue)(nil), + (*Value_IntegerValue)(nil), + (*Value_DoubleValue)(nil), + (*Value_TimestampValue)(nil), + (*Value_StringValue)(nil), + (*Value_BytesValue)(nil), + (*Value_ReferenceValue)(nil), + (*Value_GeoPointValue)(nil), + (*Value_ArrayValue)(nil), + (*Value_MapValue)(nil), + } +} + +func _Value_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*Value) + // value_type + switch x := m.ValueType.(type) { + case *Value_NullValue: + b.EncodeVarint(11<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.NullValue)) + case *Value_BooleanValue: + t := uint64(0) + if x.BooleanValue { + t = 1 + } + b.EncodeVarint(1<<3 | proto.WireVarint) + b.EncodeVarint(t) + case *Value_IntegerValue: + b.EncodeVarint(2<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.IntegerValue)) + case *Value_DoubleValue: + b.EncodeVarint(3<<3 | proto.WireFixed64) + b.EncodeFixed64(math.Float64bits(x.DoubleValue)) + case *Value_TimestampValue: + b.EncodeVarint(10<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.TimestampValue); err != nil { + return err + } + case *Value_StringValue: + b.EncodeVarint(17<<3 | proto.WireBytes) + b.EncodeStringBytes(x.StringValue) + case *Value_BytesValue: + b.EncodeVarint(18<<3 | proto.WireBytes) + b.EncodeRawBytes(x.BytesValue) + case *Value_ReferenceValue: + b.EncodeVarint(5<<3 | proto.WireBytes) + b.EncodeStringBytes(x.ReferenceValue) + case *Value_GeoPointValue: + b.EncodeVarint(8<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.GeoPointValue); err != nil { + return err + } + case *Value_ArrayValue: + b.EncodeVarint(9<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.ArrayValue); err != nil { + return err + } + case *Value_MapValue: + b.EncodeVarint(6<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.MapValue); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("Value.ValueType has unexpected type %T", x) + } + return nil +} + +func _Value_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*Value) + switch tag { + case 11: // value_type.null_value + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ValueType = &Value_NullValue{_struct.NullValue(x)} + return true, err + case 1: // value_type.boolean_value + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ValueType = &Value_BooleanValue{x != 0} + return true, err + case 2: // value_type.integer_value + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.ValueType = &Value_IntegerValue{int64(x)} + return true, err + case 3: // value_type.double_value + if wire != proto.WireFixed64 { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeFixed64() + m.ValueType = &Value_DoubleValue{math.Float64frombits(x)} + return true, err + case 10: // value_type.timestamp_value + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(timestamp.Timestamp) + err := b.DecodeMessage(msg) + m.ValueType = &Value_TimestampValue{msg} + return true, err + case 17: // value_type.string_value + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.ValueType = &Value_StringValue{x} + return true, err + case 18: // value_type.bytes_value + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeRawBytes(true) + m.ValueType = &Value_BytesValue{x} + return true, err + case 5: // value_type.reference_value + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.ValueType = &Value_ReferenceValue{x} + return true, err + case 8: // value_type.geo_point_value + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(latlng.LatLng) + err := b.DecodeMessage(msg) + m.ValueType = &Value_GeoPointValue{msg} + return true, err + case 9: // value_type.array_value + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(ArrayValue) + err := b.DecodeMessage(msg) + m.ValueType = &Value_ArrayValue{msg} + return true, err + case 6: // value_type.map_value + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(MapValue) + err := b.DecodeMessage(msg) + m.ValueType = &Value_MapValue{msg} + return true, err + default: + return false, nil + } +} + +func _Value_OneofSizer(msg proto.Message) (n int) { + m := msg.(*Value) + // value_type + switch x := m.ValueType.(type) { + case *Value_NullValue: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(x.NullValue)) + case *Value_BooleanValue: + n += 1 // tag and wire + n += 1 + case *Value_IntegerValue: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(x.IntegerValue)) + case *Value_DoubleValue: + n += 1 // tag and wire + n += 8 + case *Value_TimestampValue: + s := proto.Size(x.TimestampValue) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *Value_StringValue: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(len(x.StringValue))) + n += len(x.StringValue) + case *Value_BytesValue: + n += 2 // tag and wire + n += proto.SizeVarint(uint64(len(x.BytesValue))) + n += len(x.BytesValue) + case *Value_ReferenceValue: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(len(x.ReferenceValue))) + n += len(x.ReferenceValue) + case *Value_GeoPointValue: + s := proto.Size(x.GeoPointValue) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *Value_ArrayValue: + s := proto.Size(x.ArrayValue) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *Value_MapValue: + s := proto.Size(x.MapValue) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// An array value. +type ArrayValue struct { + // Values in the array. + Values []*Value `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ArrayValue) Reset() { *m = ArrayValue{} } +func (m *ArrayValue) String() string { return proto.CompactTextString(m) } +func (*ArrayValue) ProtoMessage() {} +func (*ArrayValue) Descriptor() ([]byte, []int) { + return fileDescriptor_document_29c6fb566b77c4b5, []int{2} +} +func (m *ArrayValue) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ArrayValue.Unmarshal(m, b) +} +func (m *ArrayValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ArrayValue.Marshal(b, m, deterministic) +} +func (dst *ArrayValue) XXX_Merge(src proto.Message) { + xxx_messageInfo_ArrayValue.Merge(dst, src) +} +func (m *ArrayValue) XXX_Size() int { + return xxx_messageInfo_ArrayValue.Size(m) +} +func (m *ArrayValue) XXX_DiscardUnknown() { + xxx_messageInfo_ArrayValue.DiscardUnknown(m) +} + +var xxx_messageInfo_ArrayValue proto.InternalMessageInfo + +func (m *ArrayValue) GetValues() []*Value { + if m != nil { + return m.Values + } + return nil +} + +// A map value. +type MapValue struct { + // The map's fields. + // + // The map keys represent field names. Field names matching the regular + // expression `__.*__` are reserved. Reserved field names are forbidden except + // in certain documented contexts. The map keys, represented as UTF-8, must + // not exceed 1,500 bytes and cannot be empty. + Fields map[string]*Value `protobuf:"bytes,1,rep,name=fields,proto3" json:"fields,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MapValue) Reset() { *m = MapValue{} } +func (m *MapValue) String() string { return proto.CompactTextString(m) } +func (*MapValue) ProtoMessage() {} +func (*MapValue) Descriptor() ([]byte, []int) { + return fileDescriptor_document_29c6fb566b77c4b5, []int{3} +} +func (m *MapValue) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MapValue.Unmarshal(m, b) +} +func (m *MapValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MapValue.Marshal(b, m, deterministic) +} +func (dst *MapValue) XXX_Merge(src proto.Message) { + xxx_messageInfo_MapValue.Merge(dst, src) +} +func (m *MapValue) XXX_Size() int { + return xxx_messageInfo_MapValue.Size(m) +} +func (m *MapValue) XXX_DiscardUnknown() { + xxx_messageInfo_MapValue.DiscardUnknown(m) +} + +var xxx_messageInfo_MapValue proto.InternalMessageInfo + +func (m *MapValue) GetFields() map[string]*Value { + if m != nil { + return m.Fields + } + return nil +} + +func init() { + proto.RegisterType((*Document)(nil), "google.firestore.v1.Document") + proto.RegisterMapType((map[string]*Value)(nil), "google.firestore.v1.Document.FieldsEntry") + proto.RegisterType((*Value)(nil), "google.firestore.v1.Value") + proto.RegisterType((*ArrayValue)(nil), "google.firestore.v1.ArrayValue") + proto.RegisterType((*MapValue)(nil), "google.firestore.v1.MapValue") + proto.RegisterMapType((map[string]*Value)(nil), "google.firestore.v1.MapValue.FieldsEntry") +} + +func init() { + proto.RegisterFile("google/firestore/v1/document.proto", fileDescriptor_document_29c6fb566b77c4b5) +} + +var fileDescriptor_document_29c6fb566b77c4b5 = []byte{ + // 649 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x94, 0xcf, 0x6e, 0xd3, 0x4c, + 0x14, 0xc5, 0xe3, 0x24, 0x8d, 0x92, 0xeb, 0xb4, 0xfd, 0x3e, 0x77, 0x41, 0x88, 0x40, 0x0d, 0x41, + 0x48, 0xe9, 0xc6, 0x26, 0x65, 0x83, 0x68, 0x91, 0x68, 0x4a, 0xdb, 0x2c, 0x0a, 0xaa, 0x0c, 0x74, + 0x81, 0x2a, 0x45, 0x93, 0x64, 0x62, 0x59, 0x8c, 0x67, 0xac, 0xf1, 0xb8, 0x52, 0x5e, 0x07, 0x21, + 0x21, 0xb1, 0xe4, 0x09, 0x58, 0xf3, 0x54, 0x68, 0xfe, 0xb6, 0x41, 0x51, 0xbb, 0x62, 0xe7, 0xb9, + 0xf7, 0x77, 0xce, 0x3d, 0x1e, 0xcf, 0x18, 0xfa, 0x09, 0x63, 0x09, 0xc1, 0xd1, 0x22, 0xe5, 0xb8, + 0x10, 0x8c, 0xe3, 0xe8, 0x7a, 0x18, 0xcd, 0xd9, 0xac, 0xcc, 0x30, 0x15, 0x61, 0xce, 0x99, 0x60, + 0xc1, 0x8e, 0x66, 0x42, 0xc7, 0x84, 0xd7, 0xc3, 0xee, 0x23, 0x23, 0x44, 0x79, 0x1a, 0x21, 0x4a, + 0x99, 0x40, 0x22, 0x65, 0xb4, 0xd0, 0x12, 0xd7, 0x55, 0xab, 0x69, 0xb9, 0x88, 0x0a, 0xc1, 0xcb, + 0x99, 0x31, 0xec, 0xee, 0xfe, 0xdd, 0x15, 0x69, 0x86, 0x0b, 0x81, 0xb2, 0xdc, 0x00, 0x1d, 0x03, + 0x88, 0x65, 0x8e, 0x23, 0x82, 0x04, 0xa1, 0x89, 0xee, 0xf4, 0x7f, 0x56, 0xa1, 0xf9, 0xd6, 0xc4, + 0x0b, 0x02, 0xa8, 0x53, 0x94, 0xe1, 0x8e, 0xd7, 0xf3, 0x06, 0xad, 0x58, 0x3d, 0x07, 0x47, 0xd0, + 0x58, 0xa4, 0x98, 0xcc, 0x8b, 0x4e, 0xb5, 0x57, 0x1b, 0xf8, 0xfb, 0x7b, 0xe1, 0x9a, 0xf4, 0xa1, + 0xb5, 0x08, 0x4f, 0x15, 0x7b, 0x42, 0x05, 0x5f, 0xc6, 0x46, 0x18, 0x1c, 0x80, 0x3f, 0xe3, 0x18, + 0x09, 0x3c, 0x91, 0xb9, 0x3a, 0xb5, 0x9e, 0x37, 0xf0, 0xf7, 0xbb, 0xd6, 0xc7, 0x86, 0x0e, 0x3f, + 0xda, 0xd0, 0x31, 0x68, 0x5c, 0x16, 0xa4, 0xb8, 0xcc, 0xe7, 0x4e, 0x5c, 0xbf, 0x5f, 0xac, 0x71, + 0x59, 0xe8, 0x7e, 0x02, 0xff, 0x56, 0xa0, 0xe0, 0x3f, 0xa8, 0x7d, 0xc1, 0x4b, 0xf3, 0x7a, 0xf2, + 0x31, 0x78, 0x0e, 0x1b, 0xd7, 0x88, 0x94, 0xb8, 0x53, 0x5d, 0xf5, 0x5d, 0x79, 0xb9, 0x4b, 0x49, + 0xc4, 0x1a, 0x7c, 0x55, 0x7d, 0xe9, 0xf5, 0x7f, 0xd5, 0x61, 0x43, 0x15, 0x83, 0x03, 0x00, 0x5a, + 0x12, 0x32, 0xd1, 0x26, 0x7e, 0xcf, 0x1b, 0x6c, 0xad, 0x09, 0xf7, 0xbe, 0x24, 0x44, 0xf1, 0xe3, + 0x4a, 0xdc, 0xa2, 0x76, 0x11, 0x3c, 0x83, 0xcd, 0x29, 0x63, 0x04, 0x23, 0x6a, 0xf4, 0x32, 0x58, + 0x73, 0x5c, 0x89, 0xdb, 0xa6, 0xec, 0xb0, 0x94, 0x0a, 0x9c, 0x60, 0x3e, 0xb9, 0xc9, 0x5a, 0x93, + 0x98, 0x29, 0x6b, 0xec, 0x29, 0xb4, 0xe7, 0xac, 0x9c, 0x12, 0x6c, 0x28, 0xb9, 0xcd, 0xde, 0xb8, + 0x12, 0xfb, 0xba, 0xaa, 0xa1, 0x13, 0xd8, 0x76, 0x67, 0xc3, 0x70, 0x70, 0xdf, 0x8e, 0x8e, 0x2b, + 0xf1, 0x96, 0x13, 0xb9, 0x59, 0x85, 0xe0, 0x29, 0x4d, 0x8c, 0xc7, 0xff, 0x72, 0x47, 0xe5, 0x2c, + 0x5d, 0xd5, 0xd0, 0x13, 0xf0, 0xa7, 0x4b, 0x81, 0x0b, 0xc3, 0x04, 0x3d, 0x6f, 0xd0, 0x1e, 0x57, + 0x62, 0x50, 0x45, 0x8d, 0xec, 0xc1, 0x36, 0xc7, 0x0b, 0xcc, 0x31, 0x9d, 0xd9, 0xd8, 0x1b, 0xc6, + 0x6a, 0xcb, 0x35, 0x34, 0xfa, 0x1a, 0xb6, 0x13, 0xcc, 0x26, 0x39, 0x4b, 0xa9, 0x30, 0x68, 0x53, + 0x25, 0xdf, 0xb1, 0xc9, 0xe5, 0xe1, 0x0e, 0xcf, 0x91, 0x38, 0xa7, 0xc9, 0xb8, 0x12, 0x6f, 0x26, + 0x98, 0x5d, 0x48, 0x58, 0xcb, 0x47, 0xe0, 0x23, 0xce, 0xd1, 0xd2, 0x48, 0x5b, 0x4a, 0xba, 0xbb, + 0xf6, 0x73, 0x1f, 0x49, 0xce, 0x7e, 0x2e, 0x40, 0x6e, 0x15, 0x1c, 0x42, 0x2b, 0x43, 0x76, 0xdb, + 0x1a, 0xca, 0xe1, 0xf1, 0x5a, 0x87, 0x77, 0x28, 0xb7, 0xfa, 0x66, 0x66, 0x9e, 0x47, 0x6d, 0x00, + 0xa5, 0x9c, 0xc8, 0x9c, 0xfd, 0x37, 0x00, 0x37, 0x73, 0x82, 0x7d, 0x68, 0xa8, 0x5e, 0xd1, 0xf1, + 0xd4, 0x25, 0xbb, 0xeb, 0x1c, 0x1a, 0xb2, 0xff, 0xcd, 0x83, 0xa6, 0x1d, 0x74, 0xeb, 0x96, 0x7a, + 0x77, 0xdc, 0x52, 0x8b, 0xaf, 0xbb, 0xa5, 0xff, 0xe8, 0xae, 0x8c, 0xbe, 0x7b, 0xf0, 0x60, 0xc6, + 0xb2, 0x75, 0xf0, 0x68, 0xd3, 0xfe, 0x36, 0x2e, 0xe4, 0xa1, 0xbb, 0xf0, 0x3e, 0x1f, 0x1a, 0x2a, + 0x61, 0x04, 0xd1, 0x24, 0x64, 0x3c, 0x89, 0x12, 0x4c, 0xd5, 0x91, 0x8c, 0x74, 0x0b, 0xe5, 0x69, + 0xb1, 0xf2, 0x73, 0x3d, 0x70, 0x8b, 0xaf, 0xd5, 0xfa, 0xd9, 0xf1, 0xe9, 0x87, 0x1f, 0xd5, 0x87, + 0x67, 0xda, 0xe5, 0x98, 0xb0, 0x72, 0x1e, 0x9e, 0xba, 0x89, 0x97, 0xc3, 0xdf, 0xb6, 0x77, 0xa5, + 0x7a, 0x57, 0xae, 0x77, 0x75, 0x39, 0x9c, 0x36, 0xd4, 0x9c, 0x17, 0x7f, 0x02, 0x00, 0x00, 0xff, + 0xff, 0x36, 0xf3, 0xbc, 0x13, 0xc3, 0x05, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/firestore/v1/firestore.pb.go b/vendor/google.golang.org/genproto/googleapis/firestore/v1/firestore.pb.go new file mode 100644 index 000000000..1865a1989 --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/firestore/v1/firestore.pb.go @@ -0,0 +1,3721 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/firestore/v1/firestore.proto + +package firestore // import "google.golang.org/genproto/googleapis/firestore/v1" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import empty "github.com/golang/protobuf/ptypes/empty" +import timestamp "github.com/golang/protobuf/ptypes/timestamp" +import _ "google.golang.org/genproto/googleapis/api/annotations" +import status "google.golang.org/genproto/googleapis/rpc/status" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// The type of change. +type TargetChange_TargetChangeType int32 + +const ( + // No change has occurred. Used only to send an updated `resume_token`. + TargetChange_NO_CHANGE TargetChange_TargetChangeType = 0 + // The targets have been added. + TargetChange_ADD TargetChange_TargetChangeType = 1 + // The targets have been removed. + TargetChange_REMOVE TargetChange_TargetChangeType = 2 + // The targets reflect all changes committed before the targets were added + // to the stream. + // + // This will be sent after or with a `read_time` that is greater than or + // equal to the time at which the targets were added. + // + // Listeners can wait for this change if read-after-write semantics + // are desired. + TargetChange_CURRENT TargetChange_TargetChangeType = 3 + // The targets have been reset, and a new initial state for the targets + // will be returned in subsequent changes. + // + // After the initial state is complete, `CURRENT` will be returned even + // if the target was previously indicated to be `CURRENT`. + TargetChange_RESET TargetChange_TargetChangeType = 4 +) + +var TargetChange_TargetChangeType_name = map[int32]string{ + 0: "NO_CHANGE", + 1: "ADD", + 2: "REMOVE", + 3: "CURRENT", + 4: "RESET", +} +var TargetChange_TargetChangeType_value = map[string]int32{ + "NO_CHANGE": 0, + "ADD": 1, + "REMOVE": 2, + "CURRENT": 3, + "RESET": 4, +} + +func (x TargetChange_TargetChangeType) String() string { + return proto.EnumName(TargetChange_TargetChangeType_name, int32(x)) +} +func (TargetChange_TargetChangeType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_firestore_8cfb6beecf7e5e42, []int{20, 0} +} + +// The request for [Firestore.GetDocument][google.firestore.v1.Firestore.GetDocument]. +type GetDocumentRequest struct { + // The resource name of the Document to get. In the format: + // `projects/{project_id}/databases/{database_id}/documents/{document_path}`. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // The fields to return. If not set, returns all fields. + // + // If the document has a field that is not present in this mask, that field + // will not be returned in the response. + Mask *DocumentMask `protobuf:"bytes,2,opt,name=mask,proto3" json:"mask,omitempty"` + // The consistency mode for this transaction. + // If not set, defaults to strong consistency. + // + // Types that are valid to be assigned to ConsistencySelector: + // *GetDocumentRequest_Transaction + // *GetDocumentRequest_ReadTime + ConsistencySelector isGetDocumentRequest_ConsistencySelector `protobuf_oneof:"consistency_selector"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetDocumentRequest) Reset() { *m = GetDocumentRequest{} } +func (m *GetDocumentRequest) String() string { return proto.CompactTextString(m) } +func (*GetDocumentRequest) ProtoMessage() {} +func (*GetDocumentRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_firestore_8cfb6beecf7e5e42, []int{0} +} +func (m *GetDocumentRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetDocumentRequest.Unmarshal(m, b) +} +func (m *GetDocumentRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetDocumentRequest.Marshal(b, m, deterministic) +} +func (dst *GetDocumentRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetDocumentRequest.Merge(dst, src) +} +func (m *GetDocumentRequest) XXX_Size() int { + return xxx_messageInfo_GetDocumentRequest.Size(m) +} +func (m *GetDocumentRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetDocumentRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetDocumentRequest proto.InternalMessageInfo + +func (m *GetDocumentRequest) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *GetDocumentRequest) GetMask() *DocumentMask { + if m != nil { + return m.Mask + } + return nil +} + +type isGetDocumentRequest_ConsistencySelector interface { + isGetDocumentRequest_ConsistencySelector() +} + +type GetDocumentRequest_Transaction struct { + Transaction []byte `protobuf:"bytes,3,opt,name=transaction,proto3,oneof"` +} + +type GetDocumentRequest_ReadTime struct { + ReadTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=read_time,json=readTime,proto3,oneof"` +} + +func (*GetDocumentRequest_Transaction) isGetDocumentRequest_ConsistencySelector() {} + +func (*GetDocumentRequest_ReadTime) isGetDocumentRequest_ConsistencySelector() {} + +func (m *GetDocumentRequest) GetConsistencySelector() isGetDocumentRequest_ConsistencySelector { + if m != nil { + return m.ConsistencySelector + } + return nil +} + +func (m *GetDocumentRequest) GetTransaction() []byte { + if x, ok := m.GetConsistencySelector().(*GetDocumentRequest_Transaction); ok { + return x.Transaction + } + return nil +} + +func (m *GetDocumentRequest) GetReadTime() *timestamp.Timestamp { + if x, ok := m.GetConsistencySelector().(*GetDocumentRequest_ReadTime); ok { + return x.ReadTime + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*GetDocumentRequest) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _GetDocumentRequest_OneofMarshaler, _GetDocumentRequest_OneofUnmarshaler, _GetDocumentRequest_OneofSizer, []interface{}{ + (*GetDocumentRequest_Transaction)(nil), + (*GetDocumentRequest_ReadTime)(nil), + } +} + +func _GetDocumentRequest_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*GetDocumentRequest) + // consistency_selector + switch x := m.ConsistencySelector.(type) { + case *GetDocumentRequest_Transaction: + b.EncodeVarint(3<<3 | proto.WireBytes) + b.EncodeRawBytes(x.Transaction) + case *GetDocumentRequest_ReadTime: + b.EncodeVarint(5<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.ReadTime); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("GetDocumentRequest.ConsistencySelector has unexpected type %T", x) + } + return nil +} + +func _GetDocumentRequest_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*GetDocumentRequest) + switch tag { + case 3: // consistency_selector.transaction + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeRawBytes(true) + m.ConsistencySelector = &GetDocumentRequest_Transaction{x} + return true, err + case 5: // consistency_selector.read_time + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(timestamp.Timestamp) + err := b.DecodeMessage(msg) + m.ConsistencySelector = &GetDocumentRequest_ReadTime{msg} + return true, err + default: + return false, nil + } +} + +func _GetDocumentRequest_OneofSizer(msg proto.Message) (n int) { + m := msg.(*GetDocumentRequest) + // consistency_selector + switch x := m.ConsistencySelector.(type) { + case *GetDocumentRequest_Transaction: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(len(x.Transaction))) + n += len(x.Transaction) + case *GetDocumentRequest_ReadTime: + s := proto.Size(x.ReadTime) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// The request for [Firestore.ListDocuments][google.firestore.v1.Firestore.ListDocuments]. +type ListDocumentsRequest struct { + // The parent resource name. In the format: + // `projects/{project_id}/databases/{database_id}/documents` or + // `projects/{project_id}/databases/{database_id}/documents/{document_path}`. + // For example: + // `projects/my-project/databases/my-database/documents` or + // `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom` + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // The collection ID, relative to `parent`, to list. For example: `chatrooms` + // or `messages`. + CollectionId string `protobuf:"bytes,2,opt,name=collection_id,json=collectionId,proto3" json:"collection_id,omitempty"` + // The maximum number of documents to return. + PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // The `next_page_token` value returned from a previous List request, if any. + PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // The order to sort results by. For example: `priority desc, name`. + OrderBy string `protobuf:"bytes,6,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` + // The fields to return. If not set, returns all fields. + // + // If a document has a field that is not present in this mask, that field + // will not be returned in the response. + Mask *DocumentMask `protobuf:"bytes,7,opt,name=mask,proto3" json:"mask,omitempty"` + // The consistency mode for this transaction. + // If not set, defaults to strong consistency. + // + // Types that are valid to be assigned to ConsistencySelector: + // *ListDocumentsRequest_Transaction + // *ListDocumentsRequest_ReadTime + ConsistencySelector isListDocumentsRequest_ConsistencySelector `protobuf_oneof:"consistency_selector"` + // If the list should show missing documents. A missing document is a + // document that does not exist but has sub-documents. These documents will + // be returned with a key but will not have fields, [Document.create_time][google.firestore.v1.Document.create_time], + // or [Document.update_time][google.firestore.v1.Document.update_time] set. + // + // Requests with `show_missing` may not specify `where` or + // `order_by`. + ShowMissing bool `protobuf:"varint,12,opt,name=show_missing,json=showMissing,proto3" json:"show_missing,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListDocumentsRequest) Reset() { *m = ListDocumentsRequest{} } +func (m *ListDocumentsRequest) String() string { return proto.CompactTextString(m) } +func (*ListDocumentsRequest) ProtoMessage() {} +func (*ListDocumentsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_firestore_8cfb6beecf7e5e42, []int{1} +} +func (m *ListDocumentsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListDocumentsRequest.Unmarshal(m, b) +} +func (m *ListDocumentsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListDocumentsRequest.Marshal(b, m, deterministic) +} +func (dst *ListDocumentsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListDocumentsRequest.Merge(dst, src) +} +func (m *ListDocumentsRequest) XXX_Size() int { + return xxx_messageInfo_ListDocumentsRequest.Size(m) +} +func (m *ListDocumentsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ListDocumentsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ListDocumentsRequest proto.InternalMessageInfo + +func (m *ListDocumentsRequest) GetParent() string { + if m != nil { + return m.Parent + } + return "" +} + +func (m *ListDocumentsRequest) GetCollectionId() string { + if m != nil { + return m.CollectionId + } + return "" +} + +func (m *ListDocumentsRequest) GetPageSize() int32 { + if m != nil { + return m.PageSize + } + return 0 +} + +func (m *ListDocumentsRequest) GetPageToken() string { + if m != nil { + return m.PageToken + } + return "" +} + +func (m *ListDocumentsRequest) GetOrderBy() string { + if m != nil { + return m.OrderBy + } + return "" +} + +func (m *ListDocumentsRequest) GetMask() *DocumentMask { + if m != nil { + return m.Mask + } + return nil +} + +type isListDocumentsRequest_ConsistencySelector interface { + isListDocumentsRequest_ConsistencySelector() +} + +type ListDocumentsRequest_Transaction struct { + Transaction []byte `protobuf:"bytes,8,opt,name=transaction,proto3,oneof"` +} + +type ListDocumentsRequest_ReadTime struct { + ReadTime *timestamp.Timestamp `protobuf:"bytes,10,opt,name=read_time,json=readTime,proto3,oneof"` +} + +func (*ListDocumentsRequest_Transaction) isListDocumentsRequest_ConsistencySelector() {} + +func (*ListDocumentsRequest_ReadTime) isListDocumentsRequest_ConsistencySelector() {} + +func (m *ListDocumentsRequest) GetConsistencySelector() isListDocumentsRequest_ConsistencySelector { + if m != nil { + return m.ConsistencySelector + } + return nil +} + +func (m *ListDocumentsRequest) GetTransaction() []byte { + if x, ok := m.GetConsistencySelector().(*ListDocumentsRequest_Transaction); ok { + return x.Transaction + } + return nil +} + +func (m *ListDocumentsRequest) GetReadTime() *timestamp.Timestamp { + if x, ok := m.GetConsistencySelector().(*ListDocumentsRequest_ReadTime); ok { + return x.ReadTime + } + return nil +} + +func (m *ListDocumentsRequest) GetShowMissing() bool { + if m != nil { + return m.ShowMissing + } + return false +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*ListDocumentsRequest) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _ListDocumentsRequest_OneofMarshaler, _ListDocumentsRequest_OneofUnmarshaler, _ListDocumentsRequest_OneofSizer, []interface{}{ + (*ListDocumentsRequest_Transaction)(nil), + (*ListDocumentsRequest_ReadTime)(nil), + } +} + +func _ListDocumentsRequest_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*ListDocumentsRequest) + // consistency_selector + switch x := m.ConsistencySelector.(type) { + case *ListDocumentsRequest_Transaction: + b.EncodeVarint(8<<3 | proto.WireBytes) + b.EncodeRawBytes(x.Transaction) + case *ListDocumentsRequest_ReadTime: + b.EncodeVarint(10<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.ReadTime); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("ListDocumentsRequest.ConsistencySelector has unexpected type %T", x) + } + return nil +} + +func _ListDocumentsRequest_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*ListDocumentsRequest) + switch tag { + case 8: // consistency_selector.transaction + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeRawBytes(true) + m.ConsistencySelector = &ListDocumentsRequest_Transaction{x} + return true, err + case 10: // consistency_selector.read_time + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(timestamp.Timestamp) + err := b.DecodeMessage(msg) + m.ConsistencySelector = &ListDocumentsRequest_ReadTime{msg} + return true, err + default: + return false, nil + } +} + +func _ListDocumentsRequest_OneofSizer(msg proto.Message) (n int) { + m := msg.(*ListDocumentsRequest) + // consistency_selector + switch x := m.ConsistencySelector.(type) { + case *ListDocumentsRequest_Transaction: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(len(x.Transaction))) + n += len(x.Transaction) + case *ListDocumentsRequest_ReadTime: + s := proto.Size(x.ReadTime) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// The response for [Firestore.ListDocuments][google.firestore.v1.Firestore.ListDocuments]. +type ListDocumentsResponse struct { + // The Documents found. + Documents []*Document `protobuf:"bytes,1,rep,name=documents,proto3" json:"documents,omitempty"` + // The next page token. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListDocumentsResponse) Reset() { *m = ListDocumentsResponse{} } +func (m *ListDocumentsResponse) String() string { return proto.CompactTextString(m) } +func (*ListDocumentsResponse) ProtoMessage() {} +func (*ListDocumentsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_firestore_8cfb6beecf7e5e42, []int{2} +} +func (m *ListDocumentsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListDocumentsResponse.Unmarshal(m, b) +} +func (m *ListDocumentsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListDocumentsResponse.Marshal(b, m, deterministic) +} +func (dst *ListDocumentsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListDocumentsResponse.Merge(dst, src) +} +func (m *ListDocumentsResponse) XXX_Size() int { + return xxx_messageInfo_ListDocumentsResponse.Size(m) +} +func (m *ListDocumentsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ListDocumentsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ListDocumentsResponse proto.InternalMessageInfo + +func (m *ListDocumentsResponse) GetDocuments() []*Document { + if m != nil { + return m.Documents + } + return nil +} + +func (m *ListDocumentsResponse) GetNextPageToken() string { + if m != nil { + return m.NextPageToken + } + return "" +} + +// The request for [Firestore.CreateDocument][google.firestore.v1.Firestore.CreateDocument]. +type CreateDocumentRequest struct { + // The parent resource. For example: + // `projects/{project_id}/databases/{database_id}/documents` or + // `projects/{project_id}/databases/{database_id}/documents/chatrooms/{chatroom_id}` + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // The collection ID, relative to `parent`, to list. For example: `chatrooms`. + CollectionId string `protobuf:"bytes,2,opt,name=collection_id,json=collectionId,proto3" json:"collection_id,omitempty"` + // The client-assigned document ID to use for this document. + // + // Optional. If not specified, an ID will be assigned by the service. + DocumentId string `protobuf:"bytes,3,opt,name=document_id,json=documentId,proto3" json:"document_id,omitempty"` + // The document to create. `name` must not be set. + Document *Document `protobuf:"bytes,4,opt,name=document,proto3" json:"document,omitempty"` + // The fields to return. If not set, returns all fields. + // + // If the document has a field that is not present in this mask, that field + // will not be returned in the response. + Mask *DocumentMask `protobuf:"bytes,5,opt,name=mask,proto3" json:"mask,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CreateDocumentRequest) Reset() { *m = CreateDocumentRequest{} } +func (m *CreateDocumentRequest) String() string { return proto.CompactTextString(m) } +func (*CreateDocumentRequest) ProtoMessage() {} +func (*CreateDocumentRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_firestore_8cfb6beecf7e5e42, []int{3} +} +func (m *CreateDocumentRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreateDocumentRequest.Unmarshal(m, b) +} +func (m *CreateDocumentRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreateDocumentRequest.Marshal(b, m, deterministic) +} +func (dst *CreateDocumentRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateDocumentRequest.Merge(dst, src) +} +func (m *CreateDocumentRequest) XXX_Size() int { + return xxx_messageInfo_CreateDocumentRequest.Size(m) +} +func (m *CreateDocumentRequest) XXX_DiscardUnknown() { + xxx_messageInfo_CreateDocumentRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_CreateDocumentRequest proto.InternalMessageInfo + +func (m *CreateDocumentRequest) GetParent() string { + if m != nil { + return m.Parent + } + return "" +} + +func (m *CreateDocumentRequest) GetCollectionId() string { + if m != nil { + return m.CollectionId + } + return "" +} + +func (m *CreateDocumentRequest) GetDocumentId() string { + if m != nil { + return m.DocumentId + } + return "" +} + +func (m *CreateDocumentRequest) GetDocument() *Document { + if m != nil { + return m.Document + } + return nil +} + +func (m *CreateDocumentRequest) GetMask() *DocumentMask { + if m != nil { + return m.Mask + } + return nil +} + +// The request for [Firestore.UpdateDocument][google.firestore.v1.Firestore.UpdateDocument]. +type UpdateDocumentRequest struct { + // The updated document. + // Creates the document if it does not already exist. + Document *Document `protobuf:"bytes,1,opt,name=document,proto3" json:"document,omitempty"` + // The fields to update. + // None of the field paths in the mask may contain a reserved name. + // + // If the document exists on the server and has fields not referenced in the + // mask, they are left unchanged. + // Fields referenced in the mask, but not present in the input document, are + // deleted from the document on the server. + UpdateMask *DocumentMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // The fields to return. If not set, returns all fields. + // + // If the document has a field that is not present in this mask, that field + // will not be returned in the response. + Mask *DocumentMask `protobuf:"bytes,3,opt,name=mask,proto3" json:"mask,omitempty"` + // An optional precondition on the document. + // The request will fail if this is set and not met by the target document. + CurrentDocument *Precondition `protobuf:"bytes,4,opt,name=current_document,json=currentDocument,proto3" json:"current_document,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UpdateDocumentRequest) Reset() { *m = UpdateDocumentRequest{} } +func (m *UpdateDocumentRequest) String() string { return proto.CompactTextString(m) } +func (*UpdateDocumentRequest) ProtoMessage() {} +func (*UpdateDocumentRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_firestore_8cfb6beecf7e5e42, []int{4} +} +func (m *UpdateDocumentRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UpdateDocumentRequest.Unmarshal(m, b) +} +func (m *UpdateDocumentRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UpdateDocumentRequest.Marshal(b, m, deterministic) +} +func (dst *UpdateDocumentRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_UpdateDocumentRequest.Merge(dst, src) +} +func (m *UpdateDocumentRequest) XXX_Size() int { + return xxx_messageInfo_UpdateDocumentRequest.Size(m) +} +func (m *UpdateDocumentRequest) XXX_DiscardUnknown() { + xxx_messageInfo_UpdateDocumentRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_UpdateDocumentRequest proto.InternalMessageInfo + +func (m *UpdateDocumentRequest) GetDocument() *Document { + if m != nil { + return m.Document + } + return nil +} + +func (m *UpdateDocumentRequest) GetUpdateMask() *DocumentMask { + if m != nil { + return m.UpdateMask + } + return nil +} + +func (m *UpdateDocumentRequest) GetMask() *DocumentMask { + if m != nil { + return m.Mask + } + return nil +} + +func (m *UpdateDocumentRequest) GetCurrentDocument() *Precondition { + if m != nil { + return m.CurrentDocument + } + return nil +} + +// The request for [Firestore.DeleteDocument][google.firestore.v1.Firestore.DeleteDocument]. +type DeleteDocumentRequest struct { + // The resource name of the Document to delete. In the format: + // `projects/{project_id}/databases/{database_id}/documents/{document_path}`. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // An optional precondition on the document. + // The request will fail if this is set and not met by the target document. + CurrentDocument *Precondition `protobuf:"bytes,2,opt,name=current_document,json=currentDocument,proto3" json:"current_document,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DeleteDocumentRequest) Reset() { *m = DeleteDocumentRequest{} } +func (m *DeleteDocumentRequest) String() string { return proto.CompactTextString(m) } +func (*DeleteDocumentRequest) ProtoMessage() {} +func (*DeleteDocumentRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_firestore_8cfb6beecf7e5e42, []int{5} +} +func (m *DeleteDocumentRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteDocumentRequest.Unmarshal(m, b) +} +func (m *DeleteDocumentRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteDocumentRequest.Marshal(b, m, deterministic) +} +func (dst *DeleteDocumentRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteDocumentRequest.Merge(dst, src) +} +func (m *DeleteDocumentRequest) XXX_Size() int { + return xxx_messageInfo_DeleteDocumentRequest.Size(m) +} +func (m *DeleteDocumentRequest) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteDocumentRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_DeleteDocumentRequest proto.InternalMessageInfo + +func (m *DeleteDocumentRequest) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *DeleteDocumentRequest) GetCurrentDocument() *Precondition { + if m != nil { + return m.CurrentDocument + } + return nil +} + +// The request for [Firestore.BatchGetDocuments][google.firestore.v1.Firestore.BatchGetDocuments]. +type BatchGetDocumentsRequest struct { + // The database name. In the format: + // `projects/{project_id}/databases/{database_id}`. + Database string `protobuf:"bytes,1,opt,name=database,proto3" json:"database,omitempty"` + // The names of the documents to retrieve. In the format: + // `projects/{project_id}/databases/{database_id}/documents/{document_path}`. + // The request will fail if any of the document is not a child resource of the + // given `database`. Duplicate names will be elided. + Documents []string `protobuf:"bytes,2,rep,name=documents,proto3" json:"documents,omitempty"` + // The fields to return. If not set, returns all fields. + // + // If a document has a field that is not present in this mask, that field will + // not be returned in the response. + Mask *DocumentMask `protobuf:"bytes,3,opt,name=mask,proto3" json:"mask,omitempty"` + // The consistency mode for this transaction. + // If not set, defaults to strong consistency. + // + // Types that are valid to be assigned to ConsistencySelector: + // *BatchGetDocumentsRequest_Transaction + // *BatchGetDocumentsRequest_NewTransaction + // *BatchGetDocumentsRequest_ReadTime + ConsistencySelector isBatchGetDocumentsRequest_ConsistencySelector `protobuf_oneof:"consistency_selector"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BatchGetDocumentsRequest) Reset() { *m = BatchGetDocumentsRequest{} } +func (m *BatchGetDocumentsRequest) String() string { return proto.CompactTextString(m) } +func (*BatchGetDocumentsRequest) ProtoMessage() {} +func (*BatchGetDocumentsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_firestore_8cfb6beecf7e5e42, []int{6} +} +func (m *BatchGetDocumentsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BatchGetDocumentsRequest.Unmarshal(m, b) +} +func (m *BatchGetDocumentsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BatchGetDocumentsRequest.Marshal(b, m, deterministic) +} +func (dst *BatchGetDocumentsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_BatchGetDocumentsRequest.Merge(dst, src) +} +func (m *BatchGetDocumentsRequest) XXX_Size() int { + return xxx_messageInfo_BatchGetDocumentsRequest.Size(m) +} +func (m *BatchGetDocumentsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_BatchGetDocumentsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_BatchGetDocumentsRequest proto.InternalMessageInfo + +func (m *BatchGetDocumentsRequest) GetDatabase() string { + if m != nil { + return m.Database + } + return "" +} + +func (m *BatchGetDocumentsRequest) GetDocuments() []string { + if m != nil { + return m.Documents + } + return nil +} + +func (m *BatchGetDocumentsRequest) GetMask() *DocumentMask { + if m != nil { + return m.Mask + } + return nil +} + +type isBatchGetDocumentsRequest_ConsistencySelector interface { + isBatchGetDocumentsRequest_ConsistencySelector() +} + +type BatchGetDocumentsRequest_Transaction struct { + Transaction []byte `protobuf:"bytes,4,opt,name=transaction,proto3,oneof"` +} + +type BatchGetDocumentsRequest_NewTransaction struct { + NewTransaction *TransactionOptions `protobuf:"bytes,5,opt,name=new_transaction,json=newTransaction,proto3,oneof"` +} + +type BatchGetDocumentsRequest_ReadTime struct { + ReadTime *timestamp.Timestamp `protobuf:"bytes,7,opt,name=read_time,json=readTime,proto3,oneof"` +} + +func (*BatchGetDocumentsRequest_Transaction) isBatchGetDocumentsRequest_ConsistencySelector() {} + +func (*BatchGetDocumentsRequest_NewTransaction) isBatchGetDocumentsRequest_ConsistencySelector() {} + +func (*BatchGetDocumentsRequest_ReadTime) isBatchGetDocumentsRequest_ConsistencySelector() {} + +func (m *BatchGetDocumentsRequest) GetConsistencySelector() isBatchGetDocumentsRequest_ConsistencySelector { + if m != nil { + return m.ConsistencySelector + } + return nil +} + +func (m *BatchGetDocumentsRequest) GetTransaction() []byte { + if x, ok := m.GetConsistencySelector().(*BatchGetDocumentsRequest_Transaction); ok { + return x.Transaction + } + return nil +} + +func (m *BatchGetDocumentsRequest) GetNewTransaction() *TransactionOptions { + if x, ok := m.GetConsistencySelector().(*BatchGetDocumentsRequest_NewTransaction); ok { + return x.NewTransaction + } + return nil +} + +func (m *BatchGetDocumentsRequest) GetReadTime() *timestamp.Timestamp { + if x, ok := m.GetConsistencySelector().(*BatchGetDocumentsRequest_ReadTime); ok { + return x.ReadTime + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*BatchGetDocumentsRequest) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _BatchGetDocumentsRequest_OneofMarshaler, _BatchGetDocumentsRequest_OneofUnmarshaler, _BatchGetDocumentsRequest_OneofSizer, []interface{}{ + (*BatchGetDocumentsRequest_Transaction)(nil), + (*BatchGetDocumentsRequest_NewTransaction)(nil), + (*BatchGetDocumentsRequest_ReadTime)(nil), + } +} + +func _BatchGetDocumentsRequest_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*BatchGetDocumentsRequest) + // consistency_selector + switch x := m.ConsistencySelector.(type) { + case *BatchGetDocumentsRequest_Transaction: + b.EncodeVarint(4<<3 | proto.WireBytes) + b.EncodeRawBytes(x.Transaction) + case *BatchGetDocumentsRequest_NewTransaction: + b.EncodeVarint(5<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.NewTransaction); err != nil { + return err + } + case *BatchGetDocumentsRequest_ReadTime: + b.EncodeVarint(7<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.ReadTime); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("BatchGetDocumentsRequest.ConsistencySelector has unexpected type %T", x) + } + return nil +} + +func _BatchGetDocumentsRequest_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*BatchGetDocumentsRequest) + switch tag { + case 4: // consistency_selector.transaction + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeRawBytes(true) + m.ConsistencySelector = &BatchGetDocumentsRequest_Transaction{x} + return true, err + case 5: // consistency_selector.new_transaction + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(TransactionOptions) + err := b.DecodeMessage(msg) + m.ConsistencySelector = &BatchGetDocumentsRequest_NewTransaction{msg} + return true, err + case 7: // consistency_selector.read_time + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(timestamp.Timestamp) + err := b.DecodeMessage(msg) + m.ConsistencySelector = &BatchGetDocumentsRequest_ReadTime{msg} + return true, err + default: + return false, nil + } +} + +func _BatchGetDocumentsRequest_OneofSizer(msg proto.Message) (n int) { + m := msg.(*BatchGetDocumentsRequest) + // consistency_selector + switch x := m.ConsistencySelector.(type) { + case *BatchGetDocumentsRequest_Transaction: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(len(x.Transaction))) + n += len(x.Transaction) + case *BatchGetDocumentsRequest_NewTransaction: + s := proto.Size(x.NewTransaction) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *BatchGetDocumentsRequest_ReadTime: + s := proto.Size(x.ReadTime) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// The streamed response for [Firestore.BatchGetDocuments][google.firestore.v1.Firestore.BatchGetDocuments]. +type BatchGetDocumentsResponse struct { + // A single result. + // This can be empty if the server is just returning a transaction. + // + // Types that are valid to be assigned to Result: + // *BatchGetDocumentsResponse_Found + // *BatchGetDocumentsResponse_Missing + Result isBatchGetDocumentsResponse_Result `protobuf_oneof:"result"` + // The transaction that was started as part of this request. + // Will only be set in the first response, and only if + // [BatchGetDocumentsRequest.new_transaction][google.firestore.v1.BatchGetDocumentsRequest.new_transaction] was set in the request. + Transaction []byte `protobuf:"bytes,3,opt,name=transaction,proto3" json:"transaction,omitempty"` + // The time at which the document was read. + // This may be monotically increasing, in this case the previous documents in + // the result stream are guaranteed not to have changed between their + // read_time and this one. + ReadTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=read_time,json=readTime,proto3" json:"read_time,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BatchGetDocumentsResponse) Reset() { *m = BatchGetDocumentsResponse{} } +func (m *BatchGetDocumentsResponse) String() string { return proto.CompactTextString(m) } +func (*BatchGetDocumentsResponse) ProtoMessage() {} +func (*BatchGetDocumentsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_firestore_8cfb6beecf7e5e42, []int{7} +} +func (m *BatchGetDocumentsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BatchGetDocumentsResponse.Unmarshal(m, b) +} +func (m *BatchGetDocumentsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BatchGetDocumentsResponse.Marshal(b, m, deterministic) +} +func (dst *BatchGetDocumentsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_BatchGetDocumentsResponse.Merge(dst, src) +} +func (m *BatchGetDocumentsResponse) XXX_Size() int { + return xxx_messageInfo_BatchGetDocumentsResponse.Size(m) +} +func (m *BatchGetDocumentsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_BatchGetDocumentsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_BatchGetDocumentsResponse proto.InternalMessageInfo + +type isBatchGetDocumentsResponse_Result interface { + isBatchGetDocumentsResponse_Result() +} + +type BatchGetDocumentsResponse_Found struct { + Found *Document `protobuf:"bytes,1,opt,name=found,proto3,oneof"` +} + +type BatchGetDocumentsResponse_Missing struct { + Missing string `protobuf:"bytes,2,opt,name=missing,proto3,oneof"` +} + +func (*BatchGetDocumentsResponse_Found) isBatchGetDocumentsResponse_Result() {} + +func (*BatchGetDocumentsResponse_Missing) isBatchGetDocumentsResponse_Result() {} + +func (m *BatchGetDocumentsResponse) GetResult() isBatchGetDocumentsResponse_Result { + if m != nil { + return m.Result + } + return nil +} + +func (m *BatchGetDocumentsResponse) GetFound() *Document { + if x, ok := m.GetResult().(*BatchGetDocumentsResponse_Found); ok { + return x.Found + } + return nil +} + +func (m *BatchGetDocumentsResponse) GetMissing() string { + if x, ok := m.GetResult().(*BatchGetDocumentsResponse_Missing); ok { + return x.Missing + } + return "" +} + +func (m *BatchGetDocumentsResponse) GetTransaction() []byte { + if m != nil { + return m.Transaction + } + return nil +} + +func (m *BatchGetDocumentsResponse) GetReadTime() *timestamp.Timestamp { + if m != nil { + return m.ReadTime + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*BatchGetDocumentsResponse) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _BatchGetDocumentsResponse_OneofMarshaler, _BatchGetDocumentsResponse_OneofUnmarshaler, _BatchGetDocumentsResponse_OneofSizer, []interface{}{ + (*BatchGetDocumentsResponse_Found)(nil), + (*BatchGetDocumentsResponse_Missing)(nil), + } +} + +func _BatchGetDocumentsResponse_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*BatchGetDocumentsResponse) + // result + switch x := m.Result.(type) { + case *BatchGetDocumentsResponse_Found: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Found); err != nil { + return err + } + case *BatchGetDocumentsResponse_Missing: + b.EncodeVarint(2<<3 | proto.WireBytes) + b.EncodeStringBytes(x.Missing) + case nil: + default: + return fmt.Errorf("BatchGetDocumentsResponse.Result has unexpected type %T", x) + } + return nil +} + +func _BatchGetDocumentsResponse_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*BatchGetDocumentsResponse) + switch tag { + case 1: // result.found + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(Document) + err := b.DecodeMessage(msg) + m.Result = &BatchGetDocumentsResponse_Found{msg} + return true, err + case 2: // result.missing + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Result = &BatchGetDocumentsResponse_Missing{x} + return true, err + default: + return false, nil + } +} + +func _BatchGetDocumentsResponse_OneofSizer(msg proto.Message) (n int) { + m := msg.(*BatchGetDocumentsResponse) + // result + switch x := m.Result.(type) { + case *BatchGetDocumentsResponse_Found: + s := proto.Size(x.Found) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *BatchGetDocumentsResponse_Missing: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(len(x.Missing))) + n += len(x.Missing) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// The request for [Firestore.BeginTransaction][google.firestore.v1.Firestore.BeginTransaction]. +type BeginTransactionRequest struct { + // The database name. In the format: + // `projects/{project_id}/databases/{database_id}`. + Database string `protobuf:"bytes,1,opt,name=database,proto3" json:"database,omitempty"` + // The options for the transaction. + // Defaults to a read-write transaction. + Options *TransactionOptions `protobuf:"bytes,2,opt,name=options,proto3" json:"options,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BeginTransactionRequest) Reset() { *m = BeginTransactionRequest{} } +func (m *BeginTransactionRequest) String() string { return proto.CompactTextString(m) } +func (*BeginTransactionRequest) ProtoMessage() {} +func (*BeginTransactionRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_firestore_8cfb6beecf7e5e42, []int{8} +} +func (m *BeginTransactionRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BeginTransactionRequest.Unmarshal(m, b) +} +func (m *BeginTransactionRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BeginTransactionRequest.Marshal(b, m, deterministic) +} +func (dst *BeginTransactionRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_BeginTransactionRequest.Merge(dst, src) +} +func (m *BeginTransactionRequest) XXX_Size() int { + return xxx_messageInfo_BeginTransactionRequest.Size(m) +} +func (m *BeginTransactionRequest) XXX_DiscardUnknown() { + xxx_messageInfo_BeginTransactionRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_BeginTransactionRequest proto.InternalMessageInfo + +func (m *BeginTransactionRequest) GetDatabase() string { + if m != nil { + return m.Database + } + return "" +} + +func (m *BeginTransactionRequest) GetOptions() *TransactionOptions { + if m != nil { + return m.Options + } + return nil +} + +// The response for [Firestore.BeginTransaction][google.firestore.v1.Firestore.BeginTransaction]. +type BeginTransactionResponse struct { + // The transaction that was started. + Transaction []byte `protobuf:"bytes,1,opt,name=transaction,proto3" json:"transaction,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BeginTransactionResponse) Reset() { *m = BeginTransactionResponse{} } +func (m *BeginTransactionResponse) String() string { return proto.CompactTextString(m) } +func (*BeginTransactionResponse) ProtoMessage() {} +func (*BeginTransactionResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_firestore_8cfb6beecf7e5e42, []int{9} +} +func (m *BeginTransactionResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BeginTransactionResponse.Unmarshal(m, b) +} +func (m *BeginTransactionResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BeginTransactionResponse.Marshal(b, m, deterministic) +} +func (dst *BeginTransactionResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_BeginTransactionResponse.Merge(dst, src) +} +func (m *BeginTransactionResponse) XXX_Size() int { + return xxx_messageInfo_BeginTransactionResponse.Size(m) +} +func (m *BeginTransactionResponse) XXX_DiscardUnknown() { + xxx_messageInfo_BeginTransactionResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_BeginTransactionResponse proto.InternalMessageInfo + +func (m *BeginTransactionResponse) GetTransaction() []byte { + if m != nil { + return m.Transaction + } + return nil +} + +// The request for [Firestore.Commit][google.firestore.v1.Firestore.Commit]. +type CommitRequest struct { + // The database name. In the format: + // `projects/{project_id}/databases/{database_id}`. + Database string `protobuf:"bytes,1,opt,name=database,proto3" json:"database,omitempty"` + // The writes to apply. + // + // Always executed atomically and in order. + Writes []*Write `protobuf:"bytes,2,rep,name=writes,proto3" json:"writes,omitempty"` + // If set, applies all writes in this transaction, and commits it. + Transaction []byte `protobuf:"bytes,3,opt,name=transaction,proto3" json:"transaction,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CommitRequest) Reset() { *m = CommitRequest{} } +func (m *CommitRequest) String() string { return proto.CompactTextString(m) } +func (*CommitRequest) ProtoMessage() {} +func (*CommitRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_firestore_8cfb6beecf7e5e42, []int{10} +} +func (m *CommitRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CommitRequest.Unmarshal(m, b) +} +func (m *CommitRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CommitRequest.Marshal(b, m, deterministic) +} +func (dst *CommitRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_CommitRequest.Merge(dst, src) +} +func (m *CommitRequest) XXX_Size() int { + return xxx_messageInfo_CommitRequest.Size(m) +} +func (m *CommitRequest) XXX_DiscardUnknown() { + xxx_messageInfo_CommitRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_CommitRequest proto.InternalMessageInfo + +func (m *CommitRequest) GetDatabase() string { + if m != nil { + return m.Database + } + return "" +} + +func (m *CommitRequest) GetWrites() []*Write { + if m != nil { + return m.Writes + } + return nil +} + +func (m *CommitRequest) GetTransaction() []byte { + if m != nil { + return m.Transaction + } + return nil +} + +// The response for [Firestore.Commit][google.firestore.v1.Firestore.Commit]. +type CommitResponse struct { + // The result of applying the writes. + // + // This i-th write result corresponds to the i-th write in the + // request. + WriteResults []*WriteResult `protobuf:"bytes,1,rep,name=write_results,json=writeResults,proto3" json:"write_results,omitempty"` + // The time at which the commit occurred. + CommitTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=commit_time,json=commitTime,proto3" json:"commit_time,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CommitResponse) Reset() { *m = CommitResponse{} } +func (m *CommitResponse) String() string { return proto.CompactTextString(m) } +func (*CommitResponse) ProtoMessage() {} +func (*CommitResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_firestore_8cfb6beecf7e5e42, []int{11} +} +func (m *CommitResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CommitResponse.Unmarshal(m, b) +} +func (m *CommitResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CommitResponse.Marshal(b, m, deterministic) +} +func (dst *CommitResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_CommitResponse.Merge(dst, src) +} +func (m *CommitResponse) XXX_Size() int { + return xxx_messageInfo_CommitResponse.Size(m) +} +func (m *CommitResponse) XXX_DiscardUnknown() { + xxx_messageInfo_CommitResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_CommitResponse proto.InternalMessageInfo + +func (m *CommitResponse) GetWriteResults() []*WriteResult { + if m != nil { + return m.WriteResults + } + return nil +} + +func (m *CommitResponse) GetCommitTime() *timestamp.Timestamp { + if m != nil { + return m.CommitTime + } + return nil +} + +// The request for [Firestore.Rollback][google.firestore.v1.Firestore.Rollback]. +type RollbackRequest struct { + // The database name. In the format: + // `projects/{project_id}/databases/{database_id}`. + Database string `protobuf:"bytes,1,opt,name=database,proto3" json:"database,omitempty"` + // The transaction to roll back. + Transaction []byte `protobuf:"bytes,2,opt,name=transaction,proto3" json:"transaction,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RollbackRequest) Reset() { *m = RollbackRequest{} } +func (m *RollbackRequest) String() string { return proto.CompactTextString(m) } +func (*RollbackRequest) ProtoMessage() {} +func (*RollbackRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_firestore_8cfb6beecf7e5e42, []int{12} +} +func (m *RollbackRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RollbackRequest.Unmarshal(m, b) +} +func (m *RollbackRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RollbackRequest.Marshal(b, m, deterministic) +} +func (dst *RollbackRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_RollbackRequest.Merge(dst, src) +} +func (m *RollbackRequest) XXX_Size() int { + return xxx_messageInfo_RollbackRequest.Size(m) +} +func (m *RollbackRequest) XXX_DiscardUnknown() { + xxx_messageInfo_RollbackRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_RollbackRequest proto.InternalMessageInfo + +func (m *RollbackRequest) GetDatabase() string { + if m != nil { + return m.Database + } + return "" +} + +func (m *RollbackRequest) GetTransaction() []byte { + if m != nil { + return m.Transaction + } + return nil +} + +// The request for [Firestore.RunQuery][google.firestore.v1.Firestore.RunQuery]. +type RunQueryRequest struct { + // The parent resource name. In the format: + // `projects/{project_id}/databases/{database_id}/documents` or + // `projects/{project_id}/databases/{database_id}/documents/{document_path}`. + // For example: + // `projects/my-project/databases/my-database/documents` or + // `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom` + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // The query to run. + // + // Types that are valid to be assigned to QueryType: + // *RunQueryRequest_StructuredQuery + QueryType isRunQueryRequest_QueryType `protobuf_oneof:"query_type"` + // The consistency mode for this transaction. + // If not set, defaults to strong consistency. + // + // Types that are valid to be assigned to ConsistencySelector: + // *RunQueryRequest_Transaction + // *RunQueryRequest_NewTransaction + // *RunQueryRequest_ReadTime + ConsistencySelector isRunQueryRequest_ConsistencySelector `protobuf_oneof:"consistency_selector"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RunQueryRequest) Reset() { *m = RunQueryRequest{} } +func (m *RunQueryRequest) String() string { return proto.CompactTextString(m) } +func (*RunQueryRequest) ProtoMessage() {} +func (*RunQueryRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_firestore_8cfb6beecf7e5e42, []int{13} +} +func (m *RunQueryRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RunQueryRequest.Unmarshal(m, b) +} +func (m *RunQueryRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RunQueryRequest.Marshal(b, m, deterministic) +} +func (dst *RunQueryRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_RunQueryRequest.Merge(dst, src) +} +func (m *RunQueryRequest) XXX_Size() int { + return xxx_messageInfo_RunQueryRequest.Size(m) +} +func (m *RunQueryRequest) XXX_DiscardUnknown() { + xxx_messageInfo_RunQueryRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_RunQueryRequest proto.InternalMessageInfo + +func (m *RunQueryRequest) GetParent() string { + if m != nil { + return m.Parent + } + return "" +} + +type isRunQueryRequest_QueryType interface { + isRunQueryRequest_QueryType() +} + +type RunQueryRequest_StructuredQuery struct { + StructuredQuery *StructuredQuery `protobuf:"bytes,2,opt,name=structured_query,json=structuredQuery,proto3,oneof"` +} + +func (*RunQueryRequest_StructuredQuery) isRunQueryRequest_QueryType() {} + +func (m *RunQueryRequest) GetQueryType() isRunQueryRequest_QueryType { + if m != nil { + return m.QueryType + } + return nil +} + +func (m *RunQueryRequest) GetStructuredQuery() *StructuredQuery { + if x, ok := m.GetQueryType().(*RunQueryRequest_StructuredQuery); ok { + return x.StructuredQuery + } + return nil +} + +type isRunQueryRequest_ConsistencySelector interface { + isRunQueryRequest_ConsistencySelector() +} + +type RunQueryRequest_Transaction struct { + Transaction []byte `protobuf:"bytes,5,opt,name=transaction,proto3,oneof"` +} + +type RunQueryRequest_NewTransaction struct { + NewTransaction *TransactionOptions `protobuf:"bytes,6,opt,name=new_transaction,json=newTransaction,proto3,oneof"` +} + +type RunQueryRequest_ReadTime struct { + ReadTime *timestamp.Timestamp `protobuf:"bytes,7,opt,name=read_time,json=readTime,proto3,oneof"` +} + +func (*RunQueryRequest_Transaction) isRunQueryRequest_ConsistencySelector() {} + +func (*RunQueryRequest_NewTransaction) isRunQueryRequest_ConsistencySelector() {} + +func (*RunQueryRequest_ReadTime) isRunQueryRequest_ConsistencySelector() {} + +func (m *RunQueryRequest) GetConsistencySelector() isRunQueryRequest_ConsistencySelector { + if m != nil { + return m.ConsistencySelector + } + return nil +} + +func (m *RunQueryRequest) GetTransaction() []byte { + if x, ok := m.GetConsistencySelector().(*RunQueryRequest_Transaction); ok { + return x.Transaction + } + return nil +} + +func (m *RunQueryRequest) GetNewTransaction() *TransactionOptions { + if x, ok := m.GetConsistencySelector().(*RunQueryRequest_NewTransaction); ok { + return x.NewTransaction + } + return nil +} + +func (m *RunQueryRequest) GetReadTime() *timestamp.Timestamp { + if x, ok := m.GetConsistencySelector().(*RunQueryRequest_ReadTime); ok { + return x.ReadTime + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*RunQueryRequest) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _RunQueryRequest_OneofMarshaler, _RunQueryRequest_OneofUnmarshaler, _RunQueryRequest_OneofSizer, []interface{}{ + (*RunQueryRequest_StructuredQuery)(nil), + (*RunQueryRequest_Transaction)(nil), + (*RunQueryRequest_NewTransaction)(nil), + (*RunQueryRequest_ReadTime)(nil), + } +} + +func _RunQueryRequest_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*RunQueryRequest) + // query_type + switch x := m.QueryType.(type) { + case *RunQueryRequest_StructuredQuery: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.StructuredQuery); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("RunQueryRequest.QueryType has unexpected type %T", x) + } + // consistency_selector + switch x := m.ConsistencySelector.(type) { + case *RunQueryRequest_Transaction: + b.EncodeVarint(5<<3 | proto.WireBytes) + b.EncodeRawBytes(x.Transaction) + case *RunQueryRequest_NewTransaction: + b.EncodeVarint(6<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.NewTransaction); err != nil { + return err + } + case *RunQueryRequest_ReadTime: + b.EncodeVarint(7<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.ReadTime); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("RunQueryRequest.ConsistencySelector has unexpected type %T", x) + } + return nil +} + +func _RunQueryRequest_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*RunQueryRequest) + switch tag { + case 2: // query_type.structured_query + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(StructuredQuery) + err := b.DecodeMessage(msg) + m.QueryType = &RunQueryRequest_StructuredQuery{msg} + return true, err + case 5: // consistency_selector.transaction + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeRawBytes(true) + m.ConsistencySelector = &RunQueryRequest_Transaction{x} + return true, err + case 6: // consistency_selector.new_transaction + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(TransactionOptions) + err := b.DecodeMessage(msg) + m.ConsistencySelector = &RunQueryRequest_NewTransaction{msg} + return true, err + case 7: // consistency_selector.read_time + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(timestamp.Timestamp) + err := b.DecodeMessage(msg) + m.ConsistencySelector = &RunQueryRequest_ReadTime{msg} + return true, err + default: + return false, nil + } +} + +func _RunQueryRequest_OneofSizer(msg proto.Message) (n int) { + m := msg.(*RunQueryRequest) + // query_type + switch x := m.QueryType.(type) { + case *RunQueryRequest_StructuredQuery: + s := proto.Size(x.StructuredQuery) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + // consistency_selector + switch x := m.ConsistencySelector.(type) { + case *RunQueryRequest_Transaction: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(len(x.Transaction))) + n += len(x.Transaction) + case *RunQueryRequest_NewTransaction: + s := proto.Size(x.NewTransaction) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *RunQueryRequest_ReadTime: + s := proto.Size(x.ReadTime) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// The response for [Firestore.RunQuery][google.firestore.v1.Firestore.RunQuery]. +type RunQueryResponse struct { + // The transaction that was started as part of this request. + // Can only be set in the first response, and only if + // [RunQueryRequest.new_transaction][google.firestore.v1.RunQueryRequest.new_transaction] was set in the request. + // If set, no other fields will be set in this response. + Transaction []byte `protobuf:"bytes,2,opt,name=transaction,proto3" json:"transaction,omitempty"` + // A query result. + // Not set when reporting partial progress. + Document *Document `protobuf:"bytes,1,opt,name=document,proto3" json:"document,omitempty"` + // The time at which the document was read. This may be monotonically + // increasing; in this case, the previous documents in the result stream are + // guaranteed not to have changed between their `read_time` and this one. + // + // If the query returns no results, a response with `read_time` and no + // `document` will be sent, and this represents the time at which the query + // was run. + ReadTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=read_time,json=readTime,proto3" json:"read_time,omitempty"` + // The number of results that have been skipped due to an offset between + // the last response and the current response. + SkippedResults int32 `protobuf:"varint,4,opt,name=skipped_results,json=skippedResults,proto3" json:"skipped_results,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RunQueryResponse) Reset() { *m = RunQueryResponse{} } +func (m *RunQueryResponse) String() string { return proto.CompactTextString(m) } +func (*RunQueryResponse) ProtoMessage() {} +func (*RunQueryResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_firestore_8cfb6beecf7e5e42, []int{14} +} +func (m *RunQueryResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RunQueryResponse.Unmarshal(m, b) +} +func (m *RunQueryResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RunQueryResponse.Marshal(b, m, deterministic) +} +func (dst *RunQueryResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_RunQueryResponse.Merge(dst, src) +} +func (m *RunQueryResponse) XXX_Size() int { + return xxx_messageInfo_RunQueryResponse.Size(m) +} +func (m *RunQueryResponse) XXX_DiscardUnknown() { + xxx_messageInfo_RunQueryResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_RunQueryResponse proto.InternalMessageInfo + +func (m *RunQueryResponse) GetTransaction() []byte { + if m != nil { + return m.Transaction + } + return nil +} + +func (m *RunQueryResponse) GetDocument() *Document { + if m != nil { + return m.Document + } + return nil +} + +func (m *RunQueryResponse) GetReadTime() *timestamp.Timestamp { + if m != nil { + return m.ReadTime + } + return nil +} + +func (m *RunQueryResponse) GetSkippedResults() int32 { + if m != nil { + return m.SkippedResults + } + return 0 +} + +// The request for [Firestore.Write][google.firestore.v1.Firestore.Write]. +// +// The first request creates a stream, or resumes an existing one from a token. +// +// When creating a new stream, the server replies with a response containing +// only an ID and a token, to use in the next request. +// +// When resuming a stream, the server first streams any responses later than the +// given token, then a response containing only an up-to-date token, to use in +// the next request. +type WriteRequest struct { + // The database name. In the format: + // `projects/{project_id}/databases/{database_id}`. + // This is only required in the first message. + Database string `protobuf:"bytes,1,opt,name=database,proto3" json:"database,omitempty"` + // The ID of the write stream to resume. + // This may only be set in the first message. When left empty, a new write + // stream will be created. + StreamId string `protobuf:"bytes,2,opt,name=stream_id,json=streamId,proto3" json:"stream_id,omitempty"` + // The writes to apply. + // + // Always executed atomically and in order. + // This must be empty on the first request. + // This may be empty on the last request. + // This must not be empty on all other requests. + Writes []*Write `protobuf:"bytes,3,rep,name=writes,proto3" json:"writes,omitempty"` + // A stream token that was previously sent by the server. + // + // The client should set this field to the token from the most recent + // [WriteResponse][google.firestore.v1.WriteResponse] it has received. This acknowledges that the client has + // received responses up to this token. After sending this token, earlier + // tokens may not be used anymore. + // + // The server may close the stream if there are too many unacknowledged + // responses. + // + // Leave this field unset when creating a new stream. To resume a stream at + // a specific point, set this field and the `stream_id` field. + // + // Leave this field unset when creating a new stream. + StreamToken []byte `protobuf:"bytes,4,opt,name=stream_token,json=streamToken,proto3" json:"stream_token,omitempty"` + // Labels associated with this write request. + Labels map[string]string `protobuf:"bytes,5,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *WriteRequest) Reset() { *m = WriteRequest{} } +func (m *WriteRequest) String() string { return proto.CompactTextString(m) } +func (*WriteRequest) ProtoMessage() {} +func (*WriteRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_firestore_8cfb6beecf7e5e42, []int{15} +} +func (m *WriteRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_WriteRequest.Unmarshal(m, b) +} +func (m *WriteRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_WriteRequest.Marshal(b, m, deterministic) +} +func (dst *WriteRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_WriteRequest.Merge(dst, src) +} +func (m *WriteRequest) XXX_Size() int { + return xxx_messageInfo_WriteRequest.Size(m) +} +func (m *WriteRequest) XXX_DiscardUnknown() { + xxx_messageInfo_WriteRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_WriteRequest proto.InternalMessageInfo + +func (m *WriteRequest) GetDatabase() string { + if m != nil { + return m.Database + } + return "" +} + +func (m *WriteRequest) GetStreamId() string { + if m != nil { + return m.StreamId + } + return "" +} + +func (m *WriteRequest) GetWrites() []*Write { + if m != nil { + return m.Writes + } + return nil +} + +func (m *WriteRequest) GetStreamToken() []byte { + if m != nil { + return m.StreamToken + } + return nil +} + +func (m *WriteRequest) GetLabels() map[string]string { + if m != nil { + return m.Labels + } + return nil +} + +// The response for [Firestore.Write][google.firestore.v1.Firestore.Write]. +type WriteResponse struct { + // The ID of the stream. + // Only set on the first message, when a new stream was created. + StreamId string `protobuf:"bytes,1,opt,name=stream_id,json=streamId,proto3" json:"stream_id,omitempty"` + // A token that represents the position of this response in the stream. + // This can be used by a client to resume the stream at this point. + // + // This field is always set. + StreamToken []byte `protobuf:"bytes,2,opt,name=stream_token,json=streamToken,proto3" json:"stream_token,omitempty"` + // The result of applying the writes. + // + // This i-th write result corresponds to the i-th write in the + // request. + WriteResults []*WriteResult `protobuf:"bytes,3,rep,name=write_results,json=writeResults,proto3" json:"write_results,omitempty"` + // The time at which the commit occurred. + CommitTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=commit_time,json=commitTime,proto3" json:"commit_time,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *WriteResponse) Reset() { *m = WriteResponse{} } +func (m *WriteResponse) String() string { return proto.CompactTextString(m) } +func (*WriteResponse) ProtoMessage() {} +func (*WriteResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_firestore_8cfb6beecf7e5e42, []int{16} +} +func (m *WriteResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_WriteResponse.Unmarshal(m, b) +} +func (m *WriteResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_WriteResponse.Marshal(b, m, deterministic) +} +func (dst *WriteResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_WriteResponse.Merge(dst, src) +} +func (m *WriteResponse) XXX_Size() int { + return xxx_messageInfo_WriteResponse.Size(m) +} +func (m *WriteResponse) XXX_DiscardUnknown() { + xxx_messageInfo_WriteResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_WriteResponse proto.InternalMessageInfo + +func (m *WriteResponse) GetStreamId() string { + if m != nil { + return m.StreamId + } + return "" +} + +func (m *WriteResponse) GetStreamToken() []byte { + if m != nil { + return m.StreamToken + } + return nil +} + +func (m *WriteResponse) GetWriteResults() []*WriteResult { + if m != nil { + return m.WriteResults + } + return nil +} + +func (m *WriteResponse) GetCommitTime() *timestamp.Timestamp { + if m != nil { + return m.CommitTime + } + return nil +} + +// A request for [Firestore.Listen][google.firestore.v1.Firestore.Listen] +type ListenRequest struct { + // The database name. In the format: + // `projects/{project_id}/databases/{database_id}`. + Database string `protobuf:"bytes,1,opt,name=database,proto3" json:"database,omitempty"` + // The supported target changes. + // + // Types that are valid to be assigned to TargetChange: + // *ListenRequest_AddTarget + // *ListenRequest_RemoveTarget + TargetChange isListenRequest_TargetChange `protobuf_oneof:"target_change"` + // Labels associated with this target change. + Labels map[string]string `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListenRequest) Reset() { *m = ListenRequest{} } +func (m *ListenRequest) String() string { return proto.CompactTextString(m) } +func (*ListenRequest) ProtoMessage() {} +func (*ListenRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_firestore_8cfb6beecf7e5e42, []int{17} +} +func (m *ListenRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListenRequest.Unmarshal(m, b) +} +func (m *ListenRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListenRequest.Marshal(b, m, deterministic) +} +func (dst *ListenRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListenRequest.Merge(dst, src) +} +func (m *ListenRequest) XXX_Size() int { + return xxx_messageInfo_ListenRequest.Size(m) +} +func (m *ListenRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ListenRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ListenRequest proto.InternalMessageInfo + +func (m *ListenRequest) GetDatabase() string { + if m != nil { + return m.Database + } + return "" +} + +type isListenRequest_TargetChange interface { + isListenRequest_TargetChange() +} + +type ListenRequest_AddTarget struct { + AddTarget *Target `protobuf:"bytes,2,opt,name=add_target,json=addTarget,proto3,oneof"` +} + +type ListenRequest_RemoveTarget struct { + RemoveTarget int32 `protobuf:"varint,3,opt,name=remove_target,json=removeTarget,proto3,oneof"` +} + +func (*ListenRequest_AddTarget) isListenRequest_TargetChange() {} + +func (*ListenRequest_RemoveTarget) isListenRequest_TargetChange() {} + +func (m *ListenRequest) GetTargetChange() isListenRequest_TargetChange { + if m != nil { + return m.TargetChange + } + return nil +} + +func (m *ListenRequest) GetAddTarget() *Target { + if x, ok := m.GetTargetChange().(*ListenRequest_AddTarget); ok { + return x.AddTarget + } + return nil +} + +func (m *ListenRequest) GetRemoveTarget() int32 { + if x, ok := m.GetTargetChange().(*ListenRequest_RemoveTarget); ok { + return x.RemoveTarget + } + return 0 +} + +func (m *ListenRequest) GetLabels() map[string]string { + if m != nil { + return m.Labels + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*ListenRequest) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _ListenRequest_OneofMarshaler, _ListenRequest_OneofUnmarshaler, _ListenRequest_OneofSizer, []interface{}{ + (*ListenRequest_AddTarget)(nil), + (*ListenRequest_RemoveTarget)(nil), + } +} + +func _ListenRequest_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*ListenRequest) + // target_change + switch x := m.TargetChange.(type) { + case *ListenRequest_AddTarget: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.AddTarget); err != nil { + return err + } + case *ListenRequest_RemoveTarget: + b.EncodeVarint(3<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.RemoveTarget)) + case nil: + default: + return fmt.Errorf("ListenRequest.TargetChange has unexpected type %T", x) + } + return nil +} + +func _ListenRequest_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*ListenRequest) + switch tag { + case 2: // target_change.add_target + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(Target) + err := b.DecodeMessage(msg) + m.TargetChange = &ListenRequest_AddTarget{msg} + return true, err + case 3: // target_change.remove_target + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.TargetChange = &ListenRequest_RemoveTarget{int32(x)} + return true, err + default: + return false, nil + } +} + +func _ListenRequest_OneofSizer(msg proto.Message) (n int) { + m := msg.(*ListenRequest) + // target_change + switch x := m.TargetChange.(type) { + case *ListenRequest_AddTarget: + s := proto.Size(x.AddTarget) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *ListenRequest_RemoveTarget: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(x.RemoveTarget)) + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// The response for [Firestore.Listen][google.firestore.v1.Firestore.Listen]. +type ListenResponse struct { + // The supported responses. + // + // Types that are valid to be assigned to ResponseType: + // *ListenResponse_TargetChange + // *ListenResponse_DocumentChange + // *ListenResponse_DocumentDelete + // *ListenResponse_DocumentRemove + // *ListenResponse_Filter + ResponseType isListenResponse_ResponseType `protobuf_oneof:"response_type"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListenResponse) Reset() { *m = ListenResponse{} } +func (m *ListenResponse) String() string { return proto.CompactTextString(m) } +func (*ListenResponse) ProtoMessage() {} +func (*ListenResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_firestore_8cfb6beecf7e5e42, []int{18} +} +func (m *ListenResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListenResponse.Unmarshal(m, b) +} +func (m *ListenResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListenResponse.Marshal(b, m, deterministic) +} +func (dst *ListenResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListenResponse.Merge(dst, src) +} +func (m *ListenResponse) XXX_Size() int { + return xxx_messageInfo_ListenResponse.Size(m) +} +func (m *ListenResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ListenResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ListenResponse proto.InternalMessageInfo + +type isListenResponse_ResponseType interface { + isListenResponse_ResponseType() +} + +type ListenResponse_TargetChange struct { + TargetChange *TargetChange `protobuf:"bytes,2,opt,name=target_change,json=targetChange,proto3,oneof"` +} + +type ListenResponse_DocumentChange struct { + DocumentChange *DocumentChange `protobuf:"bytes,3,opt,name=document_change,json=documentChange,proto3,oneof"` +} + +type ListenResponse_DocumentDelete struct { + DocumentDelete *DocumentDelete `protobuf:"bytes,4,opt,name=document_delete,json=documentDelete,proto3,oneof"` +} + +type ListenResponse_DocumentRemove struct { + DocumentRemove *DocumentRemove `protobuf:"bytes,6,opt,name=document_remove,json=documentRemove,proto3,oneof"` +} + +type ListenResponse_Filter struct { + Filter *ExistenceFilter `protobuf:"bytes,5,opt,name=filter,proto3,oneof"` +} + +func (*ListenResponse_TargetChange) isListenResponse_ResponseType() {} + +func (*ListenResponse_DocumentChange) isListenResponse_ResponseType() {} + +func (*ListenResponse_DocumentDelete) isListenResponse_ResponseType() {} + +func (*ListenResponse_DocumentRemove) isListenResponse_ResponseType() {} + +func (*ListenResponse_Filter) isListenResponse_ResponseType() {} + +func (m *ListenResponse) GetResponseType() isListenResponse_ResponseType { + if m != nil { + return m.ResponseType + } + return nil +} + +func (m *ListenResponse) GetTargetChange() *TargetChange { + if x, ok := m.GetResponseType().(*ListenResponse_TargetChange); ok { + return x.TargetChange + } + return nil +} + +func (m *ListenResponse) GetDocumentChange() *DocumentChange { + if x, ok := m.GetResponseType().(*ListenResponse_DocumentChange); ok { + return x.DocumentChange + } + return nil +} + +func (m *ListenResponse) GetDocumentDelete() *DocumentDelete { + if x, ok := m.GetResponseType().(*ListenResponse_DocumentDelete); ok { + return x.DocumentDelete + } + return nil +} + +func (m *ListenResponse) GetDocumentRemove() *DocumentRemove { + if x, ok := m.GetResponseType().(*ListenResponse_DocumentRemove); ok { + return x.DocumentRemove + } + return nil +} + +func (m *ListenResponse) GetFilter() *ExistenceFilter { + if x, ok := m.GetResponseType().(*ListenResponse_Filter); ok { + return x.Filter + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*ListenResponse) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _ListenResponse_OneofMarshaler, _ListenResponse_OneofUnmarshaler, _ListenResponse_OneofSizer, []interface{}{ + (*ListenResponse_TargetChange)(nil), + (*ListenResponse_DocumentChange)(nil), + (*ListenResponse_DocumentDelete)(nil), + (*ListenResponse_DocumentRemove)(nil), + (*ListenResponse_Filter)(nil), + } +} + +func _ListenResponse_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*ListenResponse) + // response_type + switch x := m.ResponseType.(type) { + case *ListenResponse_TargetChange: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.TargetChange); err != nil { + return err + } + case *ListenResponse_DocumentChange: + b.EncodeVarint(3<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.DocumentChange); err != nil { + return err + } + case *ListenResponse_DocumentDelete: + b.EncodeVarint(4<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.DocumentDelete); err != nil { + return err + } + case *ListenResponse_DocumentRemove: + b.EncodeVarint(6<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.DocumentRemove); err != nil { + return err + } + case *ListenResponse_Filter: + b.EncodeVarint(5<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Filter); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("ListenResponse.ResponseType has unexpected type %T", x) + } + return nil +} + +func _ListenResponse_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*ListenResponse) + switch tag { + case 2: // response_type.target_change + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(TargetChange) + err := b.DecodeMessage(msg) + m.ResponseType = &ListenResponse_TargetChange{msg} + return true, err + case 3: // response_type.document_change + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(DocumentChange) + err := b.DecodeMessage(msg) + m.ResponseType = &ListenResponse_DocumentChange{msg} + return true, err + case 4: // response_type.document_delete + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(DocumentDelete) + err := b.DecodeMessage(msg) + m.ResponseType = &ListenResponse_DocumentDelete{msg} + return true, err + case 6: // response_type.document_remove + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(DocumentRemove) + err := b.DecodeMessage(msg) + m.ResponseType = &ListenResponse_DocumentRemove{msg} + return true, err + case 5: // response_type.filter + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(ExistenceFilter) + err := b.DecodeMessage(msg) + m.ResponseType = &ListenResponse_Filter{msg} + return true, err + default: + return false, nil + } +} + +func _ListenResponse_OneofSizer(msg proto.Message) (n int) { + m := msg.(*ListenResponse) + // response_type + switch x := m.ResponseType.(type) { + case *ListenResponse_TargetChange: + s := proto.Size(x.TargetChange) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *ListenResponse_DocumentChange: + s := proto.Size(x.DocumentChange) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *ListenResponse_DocumentDelete: + s := proto.Size(x.DocumentDelete) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *ListenResponse_DocumentRemove: + s := proto.Size(x.DocumentRemove) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *ListenResponse_Filter: + s := proto.Size(x.Filter) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// A specification of a set of documents to listen to. +type Target struct { + // The type of target to listen to. + // + // Types that are valid to be assigned to TargetType: + // *Target_Query + // *Target_Documents + TargetType isTarget_TargetType `protobuf_oneof:"target_type"` + // When to start listening. + // + // If not specified, all matching Documents are returned before any + // subsequent changes. + // + // Types that are valid to be assigned to ResumeType: + // *Target_ResumeToken + // *Target_ReadTime + ResumeType isTarget_ResumeType `protobuf_oneof:"resume_type"` + // A client provided target ID. + // + // If not set, the server will assign an ID for the target. + // + // Used for resuming a target without changing IDs. The IDs can either be + // client-assigned or be server-assigned in a previous stream. All targets + // with client provided IDs must be added before adding a target that needs + // a server-assigned id. + TargetId int32 `protobuf:"varint,5,opt,name=target_id,json=targetId,proto3" json:"target_id,omitempty"` + // If the target should be removed once it is current and consistent. + Once bool `protobuf:"varint,6,opt,name=once,proto3" json:"once,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Target) Reset() { *m = Target{} } +func (m *Target) String() string { return proto.CompactTextString(m) } +func (*Target) ProtoMessage() {} +func (*Target) Descriptor() ([]byte, []int) { + return fileDescriptor_firestore_8cfb6beecf7e5e42, []int{19} +} +func (m *Target) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Target.Unmarshal(m, b) +} +func (m *Target) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Target.Marshal(b, m, deterministic) +} +func (dst *Target) XXX_Merge(src proto.Message) { + xxx_messageInfo_Target.Merge(dst, src) +} +func (m *Target) XXX_Size() int { + return xxx_messageInfo_Target.Size(m) +} +func (m *Target) XXX_DiscardUnknown() { + xxx_messageInfo_Target.DiscardUnknown(m) +} + +var xxx_messageInfo_Target proto.InternalMessageInfo + +type isTarget_TargetType interface { + isTarget_TargetType() +} + +type Target_Query struct { + Query *Target_QueryTarget `protobuf:"bytes,2,opt,name=query,proto3,oneof"` +} + +type Target_Documents struct { + Documents *Target_DocumentsTarget `protobuf:"bytes,3,opt,name=documents,proto3,oneof"` +} + +func (*Target_Query) isTarget_TargetType() {} + +func (*Target_Documents) isTarget_TargetType() {} + +func (m *Target) GetTargetType() isTarget_TargetType { + if m != nil { + return m.TargetType + } + return nil +} + +func (m *Target) GetQuery() *Target_QueryTarget { + if x, ok := m.GetTargetType().(*Target_Query); ok { + return x.Query + } + return nil +} + +func (m *Target) GetDocuments() *Target_DocumentsTarget { + if x, ok := m.GetTargetType().(*Target_Documents); ok { + return x.Documents + } + return nil +} + +type isTarget_ResumeType interface { + isTarget_ResumeType() +} + +type Target_ResumeToken struct { + ResumeToken []byte `protobuf:"bytes,4,opt,name=resume_token,json=resumeToken,proto3,oneof"` +} + +type Target_ReadTime struct { + ReadTime *timestamp.Timestamp `protobuf:"bytes,11,opt,name=read_time,json=readTime,proto3,oneof"` +} + +func (*Target_ResumeToken) isTarget_ResumeType() {} + +func (*Target_ReadTime) isTarget_ResumeType() {} + +func (m *Target) GetResumeType() isTarget_ResumeType { + if m != nil { + return m.ResumeType + } + return nil +} + +func (m *Target) GetResumeToken() []byte { + if x, ok := m.GetResumeType().(*Target_ResumeToken); ok { + return x.ResumeToken + } + return nil +} + +func (m *Target) GetReadTime() *timestamp.Timestamp { + if x, ok := m.GetResumeType().(*Target_ReadTime); ok { + return x.ReadTime + } + return nil +} + +func (m *Target) GetTargetId() int32 { + if m != nil { + return m.TargetId + } + return 0 +} + +func (m *Target) GetOnce() bool { + if m != nil { + return m.Once + } + return false +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*Target) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _Target_OneofMarshaler, _Target_OneofUnmarshaler, _Target_OneofSizer, []interface{}{ + (*Target_Query)(nil), + (*Target_Documents)(nil), + (*Target_ResumeToken)(nil), + (*Target_ReadTime)(nil), + } +} + +func _Target_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*Target) + // target_type + switch x := m.TargetType.(type) { + case *Target_Query: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Query); err != nil { + return err + } + case *Target_Documents: + b.EncodeVarint(3<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Documents); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("Target.TargetType has unexpected type %T", x) + } + // resume_type + switch x := m.ResumeType.(type) { + case *Target_ResumeToken: + b.EncodeVarint(4<<3 | proto.WireBytes) + b.EncodeRawBytes(x.ResumeToken) + case *Target_ReadTime: + b.EncodeVarint(11<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.ReadTime); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("Target.ResumeType has unexpected type %T", x) + } + return nil +} + +func _Target_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*Target) + switch tag { + case 2: // target_type.query + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(Target_QueryTarget) + err := b.DecodeMessage(msg) + m.TargetType = &Target_Query{msg} + return true, err + case 3: // target_type.documents + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(Target_DocumentsTarget) + err := b.DecodeMessage(msg) + m.TargetType = &Target_Documents{msg} + return true, err + case 4: // resume_type.resume_token + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeRawBytes(true) + m.ResumeType = &Target_ResumeToken{x} + return true, err + case 11: // resume_type.read_time + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(timestamp.Timestamp) + err := b.DecodeMessage(msg) + m.ResumeType = &Target_ReadTime{msg} + return true, err + default: + return false, nil + } +} + +func _Target_OneofSizer(msg proto.Message) (n int) { + m := msg.(*Target) + // target_type + switch x := m.TargetType.(type) { + case *Target_Query: + s := proto.Size(x.Query) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *Target_Documents: + s := proto.Size(x.Documents) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + // resume_type + switch x := m.ResumeType.(type) { + case *Target_ResumeToken: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(len(x.ResumeToken))) + n += len(x.ResumeToken) + case *Target_ReadTime: + s := proto.Size(x.ReadTime) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// A target specified by a set of documents names. +type Target_DocumentsTarget struct { + // The names of the documents to retrieve. In the format: + // `projects/{project_id}/databases/{database_id}/documents/{document_path}`. + // The request will fail if any of the document is not a child resource of + // the given `database`. Duplicate names will be elided. + Documents []string `protobuf:"bytes,2,rep,name=documents,proto3" json:"documents,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Target_DocumentsTarget) Reset() { *m = Target_DocumentsTarget{} } +func (m *Target_DocumentsTarget) String() string { return proto.CompactTextString(m) } +func (*Target_DocumentsTarget) ProtoMessage() {} +func (*Target_DocumentsTarget) Descriptor() ([]byte, []int) { + return fileDescriptor_firestore_8cfb6beecf7e5e42, []int{19, 0} +} +func (m *Target_DocumentsTarget) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Target_DocumentsTarget.Unmarshal(m, b) +} +func (m *Target_DocumentsTarget) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Target_DocumentsTarget.Marshal(b, m, deterministic) +} +func (dst *Target_DocumentsTarget) XXX_Merge(src proto.Message) { + xxx_messageInfo_Target_DocumentsTarget.Merge(dst, src) +} +func (m *Target_DocumentsTarget) XXX_Size() int { + return xxx_messageInfo_Target_DocumentsTarget.Size(m) +} +func (m *Target_DocumentsTarget) XXX_DiscardUnknown() { + xxx_messageInfo_Target_DocumentsTarget.DiscardUnknown(m) +} + +var xxx_messageInfo_Target_DocumentsTarget proto.InternalMessageInfo + +func (m *Target_DocumentsTarget) GetDocuments() []string { + if m != nil { + return m.Documents + } + return nil +} + +// A target specified by a query. +type Target_QueryTarget struct { + // The parent resource name. In the format: + // `projects/{project_id}/databases/{database_id}/documents` or + // `projects/{project_id}/databases/{database_id}/documents/{document_path}`. + // For example: + // `projects/my-project/databases/my-database/documents` or + // `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom` + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // The query to run. + // + // Types that are valid to be assigned to QueryType: + // *Target_QueryTarget_StructuredQuery + QueryType isTarget_QueryTarget_QueryType `protobuf_oneof:"query_type"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Target_QueryTarget) Reset() { *m = Target_QueryTarget{} } +func (m *Target_QueryTarget) String() string { return proto.CompactTextString(m) } +func (*Target_QueryTarget) ProtoMessage() {} +func (*Target_QueryTarget) Descriptor() ([]byte, []int) { + return fileDescriptor_firestore_8cfb6beecf7e5e42, []int{19, 1} +} +func (m *Target_QueryTarget) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Target_QueryTarget.Unmarshal(m, b) +} +func (m *Target_QueryTarget) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Target_QueryTarget.Marshal(b, m, deterministic) +} +func (dst *Target_QueryTarget) XXX_Merge(src proto.Message) { + xxx_messageInfo_Target_QueryTarget.Merge(dst, src) +} +func (m *Target_QueryTarget) XXX_Size() int { + return xxx_messageInfo_Target_QueryTarget.Size(m) +} +func (m *Target_QueryTarget) XXX_DiscardUnknown() { + xxx_messageInfo_Target_QueryTarget.DiscardUnknown(m) +} + +var xxx_messageInfo_Target_QueryTarget proto.InternalMessageInfo + +func (m *Target_QueryTarget) GetParent() string { + if m != nil { + return m.Parent + } + return "" +} + +type isTarget_QueryTarget_QueryType interface { + isTarget_QueryTarget_QueryType() +} + +type Target_QueryTarget_StructuredQuery struct { + StructuredQuery *StructuredQuery `protobuf:"bytes,2,opt,name=structured_query,json=structuredQuery,proto3,oneof"` +} + +func (*Target_QueryTarget_StructuredQuery) isTarget_QueryTarget_QueryType() {} + +func (m *Target_QueryTarget) GetQueryType() isTarget_QueryTarget_QueryType { + if m != nil { + return m.QueryType + } + return nil +} + +func (m *Target_QueryTarget) GetStructuredQuery() *StructuredQuery { + if x, ok := m.GetQueryType().(*Target_QueryTarget_StructuredQuery); ok { + return x.StructuredQuery + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*Target_QueryTarget) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _Target_QueryTarget_OneofMarshaler, _Target_QueryTarget_OneofUnmarshaler, _Target_QueryTarget_OneofSizer, []interface{}{ + (*Target_QueryTarget_StructuredQuery)(nil), + } +} + +func _Target_QueryTarget_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*Target_QueryTarget) + // query_type + switch x := m.QueryType.(type) { + case *Target_QueryTarget_StructuredQuery: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.StructuredQuery); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("Target_QueryTarget.QueryType has unexpected type %T", x) + } + return nil +} + +func _Target_QueryTarget_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*Target_QueryTarget) + switch tag { + case 2: // query_type.structured_query + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(StructuredQuery) + err := b.DecodeMessage(msg) + m.QueryType = &Target_QueryTarget_StructuredQuery{msg} + return true, err + default: + return false, nil + } +} + +func _Target_QueryTarget_OneofSizer(msg proto.Message) (n int) { + m := msg.(*Target_QueryTarget) + // query_type + switch x := m.QueryType.(type) { + case *Target_QueryTarget_StructuredQuery: + s := proto.Size(x.StructuredQuery) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// Targets being watched have changed. +type TargetChange struct { + // The type of change that occurred. + TargetChangeType TargetChange_TargetChangeType `protobuf:"varint,1,opt,name=target_change_type,json=targetChangeType,proto3,enum=google.firestore.v1.TargetChange_TargetChangeType" json:"target_change_type,omitempty"` + // The target IDs of targets that have changed. + // + // If empty, the change applies to all targets. + // + // For `target_change_type=ADD`, the order of the target IDs matches the order + // of the requests to add the targets. This allows clients to unambiguously + // associate server-assigned target IDs with added targets. + // + // For other states, the order of the target IDs is not defined. + TargetIds []int32 `protobuf:"varint,2,rep,packed,name=target_ids,json=targetIds,proto3" json:"target_ids,omitempty"` + // The error that resulted in this change, if applicable. + Cause *status.Status `protobuf:"bytes,3,opt,name=cause,proto3" json:"cause,omitempty"` + // A token that can be used to resume the stream for the given `target_ids`, + // or all targets if `target_ids` is empty. + // + // Not set on every target change. + ResumeToken []byte `protobuf:"bytes,4,opt,name=resume_token,json=resumeToken,proto3" json:"resume_token,omitempty"` + // The consistent `read_time` for the given `target_ids` (omitted when the + // target_ids are not at a consistent snapshot). + // + // The stream is guaranteed to send a `read_time` with `target_ids` empty + // whenever the entire stream reaches a new consistent snapshot. ADD, + // CURRENT, and RESET messages are guaranteed to (eventually) result in a + // new consistent snapshot (while NO_CHANGE and REMOVE messages are not). + // + // For a given stream, `read_time` is guaranteed to be monotonically + // increasing. + ReadTime *timestamp.Timestamp `protobuf:"bytes,6,opt,name=read_time,json=readTime,proto3" json:"read_time,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TargetChange) Reset() { *m = TargetChange{} } +func (m *TargetChange) String() string { return proto.CompactTextString(m) } +func (*TargetChange) ProtoMessage() {} +func (*TargetChange) Descriptor() ([]byte, []int) { + return fileDescriptor_firestore_8cfb6beecf7e5e42, []int{20} +} +func (m *TargetChange) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TargetChange.Unmarshal(m, b) +} +func (m *TargetChange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TargetChange.Marshal(b, m, deterministic) +} +func (dst *TargetChange) XXX_Merge(src proto.Message) { + xxx_messageInfo_TargetChange.Merge(dst, src) +} +func (m *TargetChange) XXX_Size() int { + return xxx_messageInfo_TargetChange.Size(m) +} +func (m *TargetChange) XXX_DiscardUnknown() { + xxx_messageInfo_TargetChange.DiscardUnknown(m) +} + +var xxx_messageInfo_TargetChange proto.InternalMessageInfo + +func (m *TargetChange) GetTargetChangeType() TargetChange_TargetChangeType { + if m != nil { + return m.TargetChangeType + } + return TargetChange_NO_CHANGE +} + +func (m *TargetChange) GetTargetIds() []int32 { + if m != nil { + return m.TargetIds + } + return nil +} + +func (m *TargetChange) GetCause() *status.Status { + if m != nil { + return m.Cause + } + return nil +} + +func (m *TargetChange) GetResumeToken() []byte { + if m != nil { + return m.ResumeToken + } + return nil +} + +func (m *TargetChange) GetReadTime() *timestamp.Timestamp { + if m != nil { + return m.ReadTime + } + return nil +} + +// The request for [Firestore.ListCollectionIds][google.firestore.v1.Firestore.ListCollectionIds]. +type ListCollectionIdsRequest struct { + // The parent document. In the format: + // `projects/{project_id}/databases/{database_id}/documents/{document_path}`. + // For example: + // `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom` + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // The maximum number of results to return. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A page token. Must be a value from + // [ListCollectionIdsResponse][google.firestore.v1.ListCollectionIdsResponse]. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListCollectionIdsRequest) Reset() { *m = ListCollectionIdsRequest{} } +func (m *ListCollectionIdsRequest) String() string { return proto.CompactTextString(m) } +func (*ListCollectionIdsRequest) ProtoMessage() {} +func (*ListCollectionIdsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_firestore_8cfb6beecf7e5e42, []int{21} +} +func (m *ListCollectionIdsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListCollectionIdsRequest.Unmarshal(m, b) +} +func (m *ListCollectionIdsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListCollectionIdsRequest.Marshal(b, m, deterministic) +} +func (dst *ListCollectionIdsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListCollectionIdsRequest.Merge(dst, src) +} +func (m *ListCollectionIdsRequest) XXX_Size() int { + return xxx_messageInfo_ListCollectionIdsRequest.Size(m) +} +func (m *ListCollectionIdsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ListCollectionIdsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ListCollectionIdsRequest proto.InternalMessageInfo + +func (m *ListCollectionIdsRequest) GetParent() string { + if m != nil { + return m.Parent + } + return "" +} + +func (m *ListCollectionIdsRequest) GetPageSize() int32 { + if m != nil { + return m.PageSize + } + return 0 +} + +func (m *ListCollectionIdsRequest) GetPageToken() string { + if m != nil { + return m.PageToken + } + return "" +} + +// The response from [Firestore.ListCollectionIds][google.firestore.v1.Firestore.ListCollectionIds]. +type ListCollectionIdsResponse struct { + // The collection ids. + CollectionIds []string `protobuf:"bytes,1,rep,name=collection_ids,json=collectionIds,proto3" json:"collection_ids,omitempty"` + // A page token that may be used to continue the list. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListCollectionIdsResponse) Reset() { *m = ListCollectionIdsResponse{} } +func (m *ListCollectionIdsResponse) String() string { return proto.CompactTextString(m) } +func (*ListCollectionIdsResponse) ProtoMessage() {} +func (*ListCollectionIdsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_firestore_8cfb6beecf7e5e42, []int{22} +} +func (m *ListCollectionIdsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListCollectionIdsResponse.Unmarshal(m, b) +} +func (m *ListCollectionIdsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListCollectionIdsResponse.Marshal(b, m, deterministic) +} +func (dst *ListCollectionIdsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListCollectionIdsResponse.Merge(dst, src) +} +func (m *ListCollectionIdsResponse) XXX_Size() int { + return xxx_messageInfo_ListCollectionIdsResponse.Size(m) +} +func (m *ListCollectionIdsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ListCollectionIdsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ListCollectionIdsResponse proto.InternalMessageInfo + +func (m *ListCollectionIdsResponse) GetCollectionIds() []string { + if m != nil { + return m.CollectionIds + } + return nil +} + +func (m *ListCollectionIdsResponse) GetNextPageToken() string { + if m != nil { + return m.NextPageToken + } + return "" +} + +func init() { + proto.RegisterType((*GetDocumentRequest)(nil), "google.firestore.v1.GetDocumentRequest") + proto.RegisterType((*ListDocumentsRequest)(nil), "google.firestore.v1.ListDocumentsRequest") + proto.RegisterType((*ListDocumentsResponse)(nil), "google.firestore.v1.ListDocumentsResponse") + proto.RegisterType((*CreateDocumentRequest)(nil), "google.firestore.v1.CreateDocumentRequest") + proto.RegisterType((*UpdateDocumentRequest)(nil), "google.firestore.v1.UpdateDocumentRequest") + proto.RegisterType((*DeleteDocumentRequest)(nil), "google.firestore.v1.DeleteDocumentRequest") + proto.RegisterType((*BatchGetDocumentsRequest)(nil), "google.firestore.v1.BatchGetDocumentsRequest") + proto.RegisterType((*BatchGetDocumentsResponse)(nil), "google.firestore.v1.BatchGetDocumentsResponse") + proto.RegisterType((*BeginTransactionRequest)(nil), "google.firestore.v1.BeginTransactionRequest") + proto.RegisterType((*BeginTransactionResponse)(nil), "google.firestore.v1.BeginTransactionResponse") + proto.RegisterType((*CommitRequest)(nil), "google.firestore.v1.CommitRequest") + proto.RegisterType((*CommitResponse)(nil), "google.firestore.v1.CommitResponse") + proto.RegisterType((*RollbackRequest)(nil), "google.firestore.v1.RollbackRequest") + proto.RegisterType((*RunQueryRequest)(nil), "google.firestore.v1.RunQueryRequest") + proto.RegisterType((*RunQueryResponse)(nil), "google.firestore.v1.RunQueryResponse") + proto.RegisterType((*WriteRequest)(nil), "google.firestore.v1.WriteRequest") + proto.RegisterMapType((map[string]string)(nil), "google.firestore.v1.WriteRequest.LabelsEntry") + proto.RegisterType((*WriteResponse)(nil), "google.firestore.v1.WriteResponse") + proto.RegisterType((*ListenRequest)(nil), "google.firestore.v1.ListenRequest") + proto.RegisterMapType((map[string]string)(nil), "google.firestore.v1.ListenRequest.LabelsEntry") + proto.RegisterType((*ListenResponse)(nil), "google.firestore.v1.ListenResponse") + proto.RegisterType((*Target)(nil), "google.firestore.v1.Target") + proto.RegisterType((*Target_DocumentsTarget)(nil), "google.firestore.v1.Target.DocumentsTarget") + proto.RegisterType((*Target_QueryTarget)(nil), "google.firestore.v1.Target.QueryTarget") + proto.RegisterType((*TargetChange)(nil), "google.firestore.v1.TargetChange") + proto.RegisterType((*ListCollectionIdsRequest)(nil), "google.firestore.v1.ListCollectionIdsRequest") + proto.RegisterType((*ListCollectionIdsResponse)(nil), "google.firestore.v1.ListCollectionIdsResponse") + proto.RegisterEnum("google.firestore.v1.TargetChange_TargetChangeType", TargetChange_TargetChangeType_name, TargetChange_TargetChangeType_value) +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// FirestoreClient is the client API for Firestore service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type FirestoreClient interface { + // Gets a single document. + GetDocument(ctx context.Context, in *GetDocumentRequest, opts ...grpc.CallOption) (*Document, error) + // Lists documents. + ListDocuments(ctx context.Context, in *ListDocumentsRequest, opts ...grpc.CallOption) (*ListDocumentsResponse, error) + // Creates a new document. + CreateDocument(ctx context.Context, in *CreateDocumentRequest, opts ...grpc.CallOption) (*Document, error) + // Updates or inserts a document. + UpdateDocument(ctx context.Context, in *UpdateDocumentRequest, opts ...grpc.CallOption) (*Document, error) + // Deletes a document. + DeleteDocument(ctx context.Context, in *DeleteDocumentRequest, opts ...grpc.CallOption) (*empty.Empty, error) + // Gets multiple documents. + // + // Documents returned by this method are not guaranteed to be returned in the + // same order that they were requested. + BatchGetDocuments(ctx context.Context, in *BatchGetDocumentsRequest, opts ...grpc.CallOption) (Firestore_BatchGetDocumentsClient, error) + // Starts a new transaction. + BeginTransaction(ctx context.Context, in *BeginTransactionRequest, opts ...grpc.CallOption) (*BeginTransactionResponse, error) + // Commits a transaction, while optionally updating documents. + Commit(ctx context.Context, in *CommitRequest, opts ...grpc.CallOption) (*CommitResponse, error) + // Rolls back a transaction. + Rollback(ctx context.Context, in *RollbackRequest, opts ...grpc.CallOption) (*empty.Empty, error) + // Runs a query. + RunQuery(ctx context.Context, in *RunQueryRequest, opts ...grpc.CallOption) (Firestore_RunQueryClient, error) + // Streams batches of document updates and deletes, in order. + Write(ctx context.Context, opts ...grpc.CallOption) (Firestore_WriteClient, error) + // Listens to changes. + Listen(ctx context.Context, opts ...grpc.CallOption) (Firestore_ListenClient, error) + // Lists all the collection IDs underneath a document. + ListCollectionIds(ctx context.Context, in *ListCollectionIdsRequest, opts ...grpc.CallOption) (*ListCollectionIdsResponse, error) +} + +type firestoreClient struct { + cc *grpc.ClientConn +} + +func NewFirestoreClient(cc *grpc.ClientConn) FirestoreClient { + return &firestoreClient{cc} +} + +func (c *firestoreClient) GetDocument(ctx context.Context, in *GetDocumentRequest, opts ...grpc.CallOption) (*Document, error) { + out := new(Document) + err := c.cc.Invoke(ctx, "/google.firestore.v1.Firestore/GetDocument", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *firestoreClient) ListDocuments(ctx context.Context, in *ListDocumentsRequest, opts ...grpc.CallOption) (*ListDocumentsResponse, error) { + out := new(ListDocumentsResponse) + err := c.cc.Invoke(ctx, "/google.firestore.v1.Firestore/ListDocuments", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *firestoreClient) CreateDocument(ctx context.Context, in *CreateDocumentRequest, opts ...grpc.CallOption) (*Document, error) { + out := new(Document) + err := c.cc.Invoke(ctx, "/google.firestore.v1.Firestore/CreateDocument", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *firestoreClient) UpdateDocument(ctx context.Context, in *UpdateDocumentRequest, opts ...grpc.CallOption) (*Document, error) { + out := new(Document) + err := c.cc.Invoke(ctx, "/google.firestore.v1.Firestore/UpdateDocument", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *firestoreClient) DeleteDocument(ctx context.Context, in *DeleteDocumentRequest, opts ...grpc.CallOption) (*empty.Empty, error) { + out := new(empty.Empty) + err := c.cc.Invoke(ctx, "/google.firestore.v1.Firestore/DeleteDocument", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *firestoreClient) BatchGetDocuments(ctx context.Context, in *BatchGetDocumentsRequest, opts ...grpc.CallOption) (Firestore_BatchGetDocumentsClient, error) { + stream, err := c.cc.NewStream(ctx, &_Firestore_serviceDesc.Streams[0], "/google.firestore.v1.Firestore/BatchGetDocuments", opts...) + if err != nil { + return nil, err + } + x := &firestoreBatchGetDocumentsClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +type Firestore_BatchGetDocumentsClient interface { + Recv() (*BatchGetDocumentsResponse, error) + grpc.ClientStream +} + +type firestoreBatchGetDocumentsClient struct { + grpc.ClientStream +} + +func (x *firestoreBatchGetDocumentsClient) Recv() (*BatchGetDocumentsResponse, error) { + m := new(BatchGetDocumentsResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *firestoreClient) BeginTransaction(ctx context.Context, in *BeginTransactionRequest, opts ...grpc.CallOption) (*BeginTransactionResponse, error) { + out := new(BeginTransactionResponse) + err := c.cc.Invoke(ctx, "/google.firestore.v1.Firestore/BeginTransaction", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *firestoreClient) Commit(ctx context.Context, in *CommitRequest, opts ...grpc.CallOption) (*CommitResponse, error) { + out := new(CommitResponse) + err := c.cc.Invoke(ctx, "/google.firestore.v1.Firestore/Commit", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *firestoreClient) Rollback(ctx context.Context, in *RollbackRequest, opts ...grpc.CallOption) (*empty.Empty, error) { + out := new(empty.Empty) + err := c.cc.Invoke(ctx, "/google.firestore.v1.Firestore/Rollback", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *firestoreClient) RunQuery(ctx context.Context, in *RunQueryRequest, opts ...grpc.CallOption) (Firestore_RunQueryClient, error) { + stream, err := c.cc.NewStream(ctx, &_Firestore_serviceDesc.Streams[1], "/google.firestore.v1.Firestore/RunQuery", opts...) + if err != nil { + return nil, err + } + x := &firestoreRunQueryClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +type Firestore_RunQueryClient interface { + Recv() (*RunQueryResponse, error) + grpc.ClientStream +} + +type firestoreRunQueryClient struct { + grpc.ClientStream +} + +func (x *firestoreRunQueryClient) Recv() (*RunQueryResponse, error) { + m := new(RunQueryResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *firestoreClient) Write(ctx context.Context, opts ...grpc.CallOption) (Firestore_WriteClient, error) { + stream, err := c.cc.NewStream(ctx, &_Firestore_serviceDesc.Streams[2], "/google.firestore.v1.Firestore/Write", opts...) + if err != nil { + return nil, err + } + x := &firestoreWriteClient{stream} + return x, nil +} + +type Firestore_WriteClient interface { + Send(*WriteRequest) error + Recv() (*WriteResponse, error) + grpc.ClientStream +} + +type firestoreWriteClient struct { + grpc.ClientStream +} + +func (x *firestoreWriteClient) Send(m *WriteRequest) error { + return x.ClientStream.SendMsg(m) +} + +func (x *firestoreWriteClient) Recv() (*WriteResponse, error) { + m := new(WriteResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *firestoreClient) Listen(ctx context.Context, opts ...grpc.CallOption) (Firestore_ListenClient, error) { + stream, err := c.cc.NewStream(ctx, &_Firestore_serviceDesc.Streams[3], "/google.firestore.v1.Firestore/Listen", opts...) + if err != nil { + return nil, err + } + x := &firestoreListenClient{stream} + return x, nil +} + +type Firestore_ListenClient interface { + Send(*ListenRequest) error + Recv() (*ListenResponse, error) + grpc.ClientStream +} + +type firestoreListenClient struct { + grpc.ClientStream +} + +func (x *firestoreListenClient) Send(m *ListenRequest) error { + return x.ClientStream.SendMsg(m) +} + +func (x *firestoreListenClient) Recv() (*ListenResponse, error) { + m := new(ListenResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *firestoreClient) ListCollectionIds(ctx context.Context, in *ListCollectionIdsRequest, opts ...grpc.CallOption) (*ListCollectionIdsResponse, error) { + out := new(ListCollectionIdsResponse) + err := c.cc.Invoke(ctx, "/google.firestore.v1.Firestore/ListCollectionIds", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// FirestoreServer is the server API for Firestore service. +type FirestoreServer interface { + // Gets a single document. + GetDocument(context.Context, *GetDocumentRequest) (*Document, error) + // Lists documents. + ListDocuments(context.Context, *ListDocumentsRequest) (*ListDocumentsResponse, error) + // Creates a new document. + CreateDocument(context.Context, *CreateDocumentRequest) (*Document, error) + // Updates or inserts a document. + UpdateDocument(context.Context, *UpdateDocumentRequest) (*Document, error) + // Deletes a document. + DeleteDocument(context.Context, *DeleteDocumentRequest) (*empty.Empty, error) + // Gets multiple documents. + // + // Documents returned by this method are not guaranteed to be returned in the + // same order that they were requested. + BatchGetDocuments(*BatchGetDocumentsRequest, Firestore_BatchGetDocumentsServer) error + // Starts a new transaction. + BeginTransaction(context.Context, *BeginTransactionRequest) (*BeginTransactionResponse, error) + // Commits a transaction, while optionally updating documents. + Commit(context.Context, *CommitRequest) (*CommitResponse, error) + // Rolls back a transaction. + Rollback(context.Context, *RollbackRequest) (*empty.Empty, error) + // Runs a query. + RunQuery(*RunQueryRequest, Firestore_RunQueryServer) error + // Streams batches of document updates and deletes, in order. + Write(Firestore_WriteServer) error + // Listens to changes. + Listen(Firestore_ListenServer) error + // Lists all the collection IDs underneath a document. + ListCollectionIds(context.Context, *ListCollectionIdsRequest) (*ListCollectionIdsResponse, error) +} + +func RegisterFirestoreServer(s *grpc.Server, srv FirestoreServer) { + s.RegisterService(&_Firestore_serviceDesc, srv) +} + +func _Firestore_GetDocument_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetDocumentRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FirestoreServer).GetDocument(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.firestore.v1.Firestore/GetDocument", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FirestoreServer).GetDocument(ctx, req.(*GetDocumentRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Firestore_ListDocuments_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListDocumentsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FirestoreServer).ListDocuments(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.firestore.v1.Firestore/ListDocuments", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FirestoreServer).ListDocuments(ctx, req.(*ListDocumentsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Firestore_CreateDocument_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateDocumentRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FirestoreServer).CreateDocument(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.firestore.v1.Firestore/CreateDocument", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FirestoreServer).CreateDocument(ctx, req.(*CreateDocumentRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Firestore_UpdateDocument_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateDocumentRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FirestoreServer).UpdateDocument(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.firestore.v1.Firestore/UpdateDocument", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FirestoreServer).UpdateDocument(ctx, req.(*UpdateDocumentRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Firestore_DeleteDocument_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteDocumentRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FirestoreServer).DeleteDocument(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.firestore.v1.Firestore/DeleteDocument", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FirestoreServer).DeleteDocument(ctx, req.(*DeleteDocumentRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Firestore_BatchGetDocuments_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(BatchGetDocumentsRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(FirestoreServer).BatchGetDocuments(m, &firestoreBatchGetDocumentsServer{stream}) +} + +type Firestore_BatchGetDocumentsServer interface { + Send(*BatchGetDocumentsResponse) error + grpc.ServerStream +} + +type firestoreBatchGetDocumentsServer struct { + grpc.ServerStream +} + +func (x *firestoreBatchGetDocumentsServer) Send(m *BatchGetDocumentsResponse) error { + return x.ServerStream.SendMsg(m) +} + +func _Firestore_BeginTransaction_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(BeginTransactionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FirestoreServer).BeginTransaction(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.firestore.v1.Firestore/BeginTransaction", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FirestoreServer).BeginTransaction(ctx, req.(*BeginTransactionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Firestore_Commit_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CommitRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FirestoreServer).Commit(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.firestore.v1.Firestore/Commit", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FirestoreServer).Commit(ctx, req.(*CommitRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Firestore_Rollback_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RollbackRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FirestoreServer).Rollback(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.firestore.v1.Firestore/Rollback", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FirestoreServer).Rollback(ctx, req.(*RollbackRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Firestore_RunQuery_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(RunQueryRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(FirestoreServer).RunQuery(m, &firestoreRunQueryServer{stream}) +} + +type Firestore_RunQueryServer interface { + Send(*RunQueryResponse) error + grpc.ServerStream +} + +type firestoreRunQueryServer struct { + grpc.ServerStream +} + +func (x *firestoreRunQueryServer) Send(m *RunQueryResponse) error { + return x.ServerStream.SendMsg(m) +} + +func _Firestore_Write_Handler(srv interface{}, stream grpc.ServerStream) error { + return srv.(FirestoreServer).Write(&firestoreWriteServer{stream}) +} + +type Firestore_WriteServer interface { + Send(*WriteResponse) error + Recv() (*WriteRequest, error) + grpc.ServerStream +} + +type firestoreWriteServer struct { + grpc.ServerStream +} + +func (x *firestoreWriteServer) Send(m *WriteResponse) error { + return x.ServerStream.SendMsg(m) +} + +func (x *firestoreWriteServer) Recv() (*WriteRequest, error) { + m := new(WriteRequest) + if err := x.ServerStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func _Firestore_Listen_Handler(srv interface{}, stream grpc.ServerStream) error { + return srv.(FirestoreServer).Listen(&firestoreListenServer{stream}) +} + +type Firestore_ListenServer interface { + Send(*ListenResponse) error + Recv() (*ListenRequest, error) + grpc.ServerStream +} + +type firestoreListenServer struct { + grpc.ServerStream +} + +func (x *firestoreListenServer) Send(m *ListenResponse) error { + return x.ServerStream.SendMsg(m) +} + +func (x *firestoreListenServer) Recv() (*ListenRequest, error) { + m := new(ListenRequest) + if err := x.ServerStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func _Firestore_ListCollectionIds_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListCollectionIdsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FirestoreServer).ListCollectionIds(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.firestore.v1.Firestore/ListCollectionIds", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FirestoreServer).ListCollectionIds(ctx, req.(*ListCollectionIdsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _Firestore_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.firestore.v1.Firestore", + HandlerType: (*FirestoreServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetDocument", + Handler: _Firestore_GetDocument_Handler, + }, + { + MethodName: "ListDocuments", + Handler: _Firestore_ListDocuments_Handler, + }, + { + MethodName: "CreateDocument", + Handler: _Firestore_CreateDocument_Handler, + }, + { + MethodName: "UpdateDocument", + Handler: _Firestore_UpdateDocument_Handler, + }, + { + MethodName: "DeleteDocument", + Handler: _Firestore_DeleteDocument_Handler, + }, + { + MethodName: "BeginTransaction", + Handler: _Firestore_BeginTransaction_Handler, + }, + { + MethodName: "Commit", + Handler: _Firestore_Commit_Handler, + }, + { + MethodName: "Rollback", + Handler: _Firestore_Rollback_Handler, + }, + { + MethodName: "ListCollectionIds", + Handler: _Firestore_ListCollectionIds_Handler, + }, + }, + Streams: []grpc.StreamDesc{ + { + StreamName: "BatchGetDocuments", + Handler: _Firestore_BatchGetDocuments_Handler, + ServerStreams: true, + }, + { + StreamName: "RunQuery", + Handler: _Firestore_RunQuery_Handler, + ServerStreams: true, + }, + { + StreamName: "Write", + Handler: _Firestore_Write_Handler, + ServerStreams: true, + ClientStreams: true, + }, + { + StreamName: "Listen", + Handler: _Firestore_Listen_Handler, + ServerStreams: true, + ClientStreams: true, + }, + }, + Metadata: "google/firestore/v1/firestore.proto", +} + +func init() { + proto.RegisterFile("google/firestore/v1/firestore.proto", fileDescriptor_firestore_8cfb6beecf7e5e42) +} + +var fileDescriptor_firestore_8cfb6beecf7e5e42 = []byte{ + // 2188 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x59, 0xcd, 0x6f, 0xdb, 0xc8, + 0x15, 0xd7, 0x50, 0x1f, 0x96, 0x9e, 0x3e, 0xac, 0x9d, 0xe6, 0x43, 0x51, 0x36, 0x58, 0x87, 0x6e, + 0x1a, 0x57, 0xed, 0x4a, 0xb1, 0x8b, 0xb4, 0x89, 0x9d, 0xed, 0x26, 0xb6, 0x95, 0xc8, 0x5d, 0xc7, + 0xc9, 0xd2, 0xde, 0x14, 0x58, 0x04, 0x50, 0x69, 0x72, 0xa2, 0x70, 0x2d, 0x91, 0x5c, 0x92, 0xb2, + 0xa3, 0xdd, 0xfa, 0xd0, 0x0f, 0xf4, 0x52, 0xb4, 0x7b, 0xe8, 0xa2, 0x28, 0xb0, 0x97, 0xa2, 0xe8, + 0x61, 0xd1, 0x4b, 0x81, 0xde, 0x0a, 0xf4, 0x2f, 0xe8, 0xad, 0x58, 0x74, 0xaf, 0xbd, 0xb4, 0xe8, + 0x1f, 0xd1, 0x43, 0x0b, 0xce, 0x0c, 0x29, 0x92, 0xa2, 0xbe, 0x9c, 0xa0, 0x37, 0xcd, 0xe3, 0x9b, + 0x37, 0xbf, 0xf7, 0x39, 0x6f, 0x9e, 0x60, 0xb9, 0x63, 0x18, 0x9d, 0x2e, 0x69, 0x3c, 0xd3, 0x2c, + 0x62, 0x3b, 0x86, 0x45, 0x1a, 0xc7, 0xab, 0xc3, 0x45, 0xdd, 0xb4, 0x0c, 0xc7, 0xc0, 0x5f, 0x61, + 0x4c, 0xf5, 0x21, 0xfd, 0x78, 0xb5, 0xfa, 0x3a, 0xdf, 0x29, 0x9b, 0x5a, 0x43, 0xd6, 0x75, 0xc3, + 0x91, 0x1d, 0xcd, 0xd0, 0x6d, 0xb6, 0xa5, 0xba, 0x14, 0x27, 0x57, 0x31, 0x7a, 0x3d, 0x43, 0xe7, + 0x1c, 0x62, 0x1c, 0x87, 0x6a, 0x28, 0xfd, 0x1e, 0xd1, 0x1d, 0xce, 0xf3, 0x46, 0x1c, 0xcf, 0x87, + 0x7d, 0x62, 0x0d, 0x26, 0x31, 0x9c, 0x58, 0x9a, 0xc3, 0xa1, 0x57, 0x2f, 0x73, 0x06, 0xba, 0x3a, + 0xec, 0x3f, 0x6b, 0x90, 0x9e, 0xe9, 0x44, 0x77, 0xfb, 0x1f, 0x1d, 0xad, 0x47, 0x6c, 0x47, 0xee, + 0x99, 0x9c, 0xe1, 0x22, 0x67, 0xb0, 0x4c, 0xa5, 0x61, 0x3b, 0xb2, 0xd3, 0xe7, 0xea, 0x89, 0x5f, + 0x22, 0xc0, 0x0f, 0x88, 0xb3, 0xcd, 0xe1, 0x4a, 0xe4, 0xc3, 0x3e, 0xb1, 0x1d, 0x8c, 0x21, 0xa5, + 0xcb, 0x3d, 0x52, 0x41, 0x4b, 0x68, 0x25, 0x27, 0xd1, 0xdf, 0xf8, 0x26, 0xa4, 0x7a, 0xb2, 0x7d, + 0x54, 0x11, 0x96, 0xd0, 0x4a, 0x7e, 0xed, 0x6a, 0x3d, 0xc6, 0x96, 0x75, 0x4f, 0xce, 0x43, 0xd9, + 0x3e, 0x92, 0x28, 0x3b, 0x16, 0x21, 0xef, 0x58, 0xb2, 0x6e, 0xcb, 0x8a, 0x6b, 0xd6, 0x4a, 0x72, + 0x09, 0xad, 0x14, 0x5a, 0x09, 0x29, 0x48, 0xc4, 0xb7, 0x21, 0x67, 0x11, 0x59, 0x6d, 0xbb, 0xb0, + 0x2b, 0x69, 0x2a, 0xbf, 0xea, 0xc9, 0xf7, 0x74, 0xaa, 0x1f, 0x78, 0x3a, 0xb5, 0x12, 0x52, 0xd6, + 0x65, 0x77, 0x09, 0x9b, 0x17, 0xe0, 0x9c, 0x62, 0xe8, 0xb6, 0x66, 0x3b, 0x44, 0x57, 0x06, 0x6d, + 0x9b, 0x74, 0x89, 0xe2, 0x18, 0x96, 0xf8, 0x1f, 0x01, 0xce, 0xed, 0x6a, 0xb6, 0xaf, 0x99, 0xed, + 0xa9, 0x76, 0x01, 0x32, 0xa6, 0x6c, 0x11, 0xdd, 0xe1, 0xca, 0xf1, 0x15, 0x5e, 0x86, 0xa2, 0x62, + 0x74, 0xdd, 0xdd, 0x9a, 0xa1, 0xb7, 0x35, 0x95, 0xea, 0x99, 0x93, 0x0a, 0x43, 0xe2, 0x8e, 0x8a, + 0x2f, 0x43, 0xce, 0x94, 0x3b, 0xa4, 0x6d, 0x6b, 0x1f, 0x11, 0xaa, 0x4a, 0x5a, 0xca, 0xba, 0x84, + 0x7d, 0xed, 0x23, 0x82, 0xaf, 0x00, 0xd0, 0x8f, 0x8e, 0x71, 0x44, 0xf4, 0x4a, 0x8a, 0x6e, 0xa7, + 0xec, 0x07, 0x2e, 0x01, 0x5f, 0x82, 0xac, 0x61, 0xa9, 0xc4, 0x6a, 0x1f, 0x0e, 0x2a, 0x19, 0xfa, + 0x71, 0x81, 0xae, 0x37, 0x07, 0xbe, 0x69, 0x17, 0x5e, 0xca, 0xb4, 0xd9, 0xa9, 0xa6, 0x85, 0x79, + 0x4c, 0x8b, 0xaf, 0x42, 0xc1, 0x7e, 0x6e, 0x9c, 0xb4, 0x7b, 0x9a, 0x6d, 0x6b, 0x7a, 0xa7, 0x52, + 0x58, 0x42, 0x2b, 0x59, 0x29, 0xef, 0xd2, 0x1e, 0x32, 0xd2, 0x58, 0xeb, 0xff, 0x10, 0xce, 0x47, + 0x8c, 0x6f, 0x9b, 0x86, 0x6e, 0x13, 0xbc, 0x01, 0x39, 0x2f, 0x35, 0xec, 0x0a, 0x5a, 0x4a, 0xae, + 0xe4, 0xd7, 0xae, 0x4c, 0x54, 0x57, 0x1a, 0xf2, 0xe3, 0xaf, 0xc1, 0xa2, 0x4e, 0x5e, 0x38, 0xed, + 0x80, 0x95, 0x99, 0x93, 0x8a, 0x2e, 0xf9, 0xb1, 0x67, 0x69, 0xf1, 0xdf, 0x08, 0xce, 0x6f, 0x59, + 0x44, 0x76, 0x48, 0x34, 0xae, 0x5f, 0xca, 0xf9, 0x6f, 0x40, 0xde, 0xc3, 0xe2, 0xb2, 0x24, 0x29, + 0x0b, 0x78, 0xa4, 0x1d, 0x15, 0xdf, 0x86, 0xac, 0xb7, 0xa2, 0xee, 0x9f, 0xaa, 0x9b, 0xcf, 0xee, + 0x47, 0x40, 0x7a, 0xae, 0x08, 0x10, 0x3f, 0x13, 0xe0, 0xfc, 0x7b, 0xa6, 0x1a, 0xa3, 0x69, 0x10, + 0x0b, 0x9a, 0x0f, 0xcb, 0x26, 0xe4, 0xfb, 0x54, 0x66, 0x7b, 0xbe, 0x7c, 0x07, 0xb6, 0xcb, 0xfd, + 0xed, 0xeb, 0x93, 0x9c, 0x2f, 0xa2, 0x77, 0xa1, 0xac, 0xf4, 0x2d, 0xd7, 0x25, 0xed, 0x88, 0x25, + 0xe3, 0x45, 0x3c, 0xb6, 0x88, 0x62, 0xe8, 0xaa, 0xe6, 0x7a, 0x48, 0x5a, 0xe4, 0x5b, 0x3d, 0xb9, + 0xe2, 0x00, 0xce, 0x6f, 0x93, 0x2e, 0x19, 0x35, 0x4e, 0x5c, 0x79, 0x8b, 0x3b, 0x5a, 0x38, 0xf3, + 0xd1, 0x5f, 0x0a, 0x50, 0xd9, 0x94, 0x1d, 0xe5, 0x79, 0xa0, 0xb8, 0xfa, 0x25, 0xa8, 0x0a, 0x59, + 0x55, 0x76, 0xe4, 0x43, 0xd9, 0xf6, 0x20, 0xf8, 0x6b, 0xfc, 0x7a, 0x30, 0x41, 0x84, 0xa5, 0xa4, + 0x5b, 0x43, 0x86, 0x19, 0x70, 0x46, 0xb3, 0x46, 0x0a, 0x45, 0x2a, 0xae, 0x50, 0x48, 0x6e, 0x72, + 0x9d, 0xb4, 0x83, 0x7c, 0x2c, 0x18, 0xaf, 0xc7, 0x9e, 0x72, 0x30, 0xe4, 0x7b, 0x64, 0xd2, 0x0b, + 0xb3, 0x95, 0x90, 0x4a, 0x3a, 0x39, 0x39, 0x18, 0x57, 0x7c, 0x16, 0x5e, 0x49, 0x5d, 0xff, 0x02, + 0xc1, 0xa5, 0x18, 0xc3, 0xf2, 0xf2, 0x72, 0x13, 0xd2, 0xcf, 0x8c, 0xbe, 0xae, 0xce, 0x14, 0xf2, + 0xad, 0x84, 0xc4, 0xb8, 0x71, 0x15, 0x16, 0xbc, 0x22, 0x47, 0x13, 0xbf, 0x95, 0x90, 0x3c, 0x02, + 0x5e, 0x8a, 0xb9, 0xbf, 0xc2, 0x96, 0xfb, 0x4e, 0x50, 0xcb, 0xd4, 0x34, 0x2d, 0x03, 0x3a, 0x66, + 0x21, 0x63, 0x11, 0xbb, 0xdf, 0x75, 0xc4, 0x17, 0x70, 0x71, 0x93, 0x74, 0x34, 0x3d, 0x60, 0xbc, + 0x59, 0x82, 0xe5, 0x1e, 0x2c, 0x18, 0xcc, 0xf8, 0x3c, 0x54, 0x67, 0xf5, 0x95, 0xe4, 0xed, 0x13, + 0xef, 0x40, 0x65, 0xf4, 0x64, 0x6e, 0xcd, 0x88, 0xea, 0x68, 0x44, 0x75, 0xf1, 0x47, 0x08, 0x8a, + 0x5b, 0x46, 0xaf, 0xa7, 0x39, 0xb3, 0xc0, 0x5d, 0x83, 0x0c, 0x6d, 0x69, 0x58, 0x60, 0x07, 0xac, + 0x14, 0x42, 0xfb, 0x7d, 0x97, 0x45, 0xe2, 0x9c, 0xd3, 0xcd, 0x2f, 0x7e, 0x8a, 0xa0, 0xe4, 0x61, + 0xe0, 0xc0, 0x9b, 0x50, 0xa4, 0xdb, 0xdb, 0xcc, 0xbc, 0xde, 0x4d, 0xb3, 0x34, 0xe1, 0x3c, 0xca, + 0x28, 0x15, 0x4e, 0x86, 0x0b, 0x1b, 0x6f, 0x40, 0x5e, 0xa1, 0x82, 0x99, 0x6b, 0x85, 0xa9, 0xae, + 0x05, 0xc6, 0xee, 0x12, 0xc4, 0x47, 0xb0, 0x28, 0x19, 0xdd, 0xee, 0xa1, 0xac, 0x1c, 0xcd, 0x62, + 0x9b, 0x88, 0x9e, 0xc2, 0xa8, 0x9e, 0x7f, 0x17, 0x60, 0x51, 0xea, 0xeb, 0xef, 0xba, 0x5d, 0xe3, + 0xb4, 0xfb, 0xec, 0x5d, 0x28, 0xdb, 0x8e, 0xd5, 0x57, 0x9c, 0xbe, 0x45, 0xd4, 0x36, 0x6d, 0x34, + 0x39, 0xfc, 0xaf, 0xc6, 0xda, 0x60, 0xdf, 0x67, 0xa6, 0xe2, 0x5b, 0x09, 0x69, 0xd1, 0x0e, 0x93, + 0xa2, 0x35, 0x24, 0x4d, 0x6b, 0x08, 0x9a, 0x5a, 0x43, 0x32, 0xf3, 0xd5, 0x10, 0xf4, 0xb2, 0x35, + 0x04, 0x05, 0xf2, 0xab, 0x00, 0x40, 0x55, 0x6f, 0x3b, 0x03, 0x73, 0x7c, 0x45, 0xf9, 0x1b, 0x82, + 0xf2, 0xd0, 0xae, 0xf1, 0xa1, 0x3f, 0xea, 0x8e, 0x97, 0xb9, 0x60, 0x43, 0x05, 0x23, 0x39, 0x7b, + 0xc1, 0xc0, 0xd7, 0x61, 0xd1, 0x3e, 0xd2, 0x4c, 0x93, 0xa8, 0x7e, 0x64, 0xa7, 0x68, 0x13, 0x5a, + 0xe2, 0x64, 0x1e, 0xb9, 0xe2, 0x6f, 0x05, 0x28, 0xf0, 0xb8, 0x9e, 0x1e, 0x7a, 0x97, 0x21, 0x67, + 0x3b, 0x16, 0x91, 0x7b, 0xc3, 0xc6, 0x27, 0xcb, 0x08, 0x3b, 0x6a, 0x20, 0x67, 0x93, 0x33, 0xe7, + 0xac, 0xdb, 0x38, 0x32, 0x81, 0xc3, 0x56, 0xb8, 0x20, 0xe5, 0x19, 0x8d, 0x35, 0xc3, 0x4d, 0xc8, + 0x74, 0xe5, 0x43, 0xd2, 0xb5, 0x2b, 0x69, 0x2a, 0xf6, 0xcd, 0x49, 0xa9, 0x49, 0x55, 0xa8, 0xef, + 0x52, 0xfe, 0xa6, 0xee, 0x58, 0x03, 0x89, 0x6f, 0xae, 0xde, 0x86, 0x7c, 0x80, 0x8c, 0xcb, 0x90, + 0x3c, 0x22, 0x03, 0xae, 0xa0, 0xfb, 0x13, 0x9f, 0x83, 0xf4, 0xb1, 0xdc, 0xed, 0x13, 0xae, 0x17, + 0x5b, 0xac, 0x0b, 0xb7, 0x90, 0x7b, 0x91, 0x14, 0xbd, 0xd4, 0x67, 0x3e, 0x0f, 0xd9, 0x01, 0x45, + 0xec, 0x10, 0xd5, 0x49, 0x88, 0xd3, 0x29, 0x52, 0x75, 0x92, 0xaf, 0xa2, 0xea, 0xa4, 0xe6, 0xaa, + 0x3a, 0xbf, 0x17, 0xa0, 0xb8, 0x4b, 0x43, 0x7c, 0x16, 0xcf, 0xdf, 0x01, 0x90, 0x55, 0xb5, 0xed, + 0xc8, 0x56, 0x87, 0x78, 0xdd, 0xce, 0xe5, 0xf8, 0x54, 0xa5, 0x2c, 0xad, 0x84, 0x94, 0x93, 0x55, + 0x95, 0x2d, 0xf0, 0x35, 0x28, 0x5a, 0xa4, 0x67, 0x1c, 0x13, 0x4f, 0x00, 0x7d, 0x10, 0xb5, 0x12, + 0x52, 0x81, 0x91, 0x39, 0xdb, 0x7d, 0xdf, 0xd5, 0x29, 0x6a, 0x8f, 0x7a, 0xec, 0x01, 0x21, 0xd0, + 0xaf, 0xd8, 0xd7, 0x9b, 0x8b, 0x50, 0x64, 0x10, 0xdb, 0xca, 0x73, 0x59, 0xef, 0x10, 0xf1, 0xb3, + 0x24, 0x94, 0xbc, 0x13, 0xb9, 0xf7, 0x5b, 0x11, 0x9e, 0x89, 0xcd, 0x1f, 0x53, 0x6d, 0x8b, 0x32, + 0xba, 0x0a, 0x3b, 0x81, 0x35, 0xde, 0x83, 0x45, 0xff, 0x9d, 0xc0, 0x65, 0xb1, 0x24, 0x5f, 0x9e, + 0x58, 0x20, 0x7c, 0x69, 0x25, 0x35, 0x44, 0x09, 0xc9, 0x53, 0x69, 0x3f, 0xcb, 0x83, 0x62, 0xb2, + 0x3c, 0xd6, 0xfa, 0x06, 0xe5, 0x31, 0x4a, 0x48, 0x1e, 0xf3, 0x14, 0xaf, 0xd2, 0x93, 0xe5, 0x49, + 0x94, 0x35, 0x28, 0x8f, 0x51, 0xf0, 0x77, 0x21, 0xf3, 0x4c, 0xeb, 0x3a, 0xc4, 0xe2, 0x0d, 0x63, + 0xfc, 0x15, 0xd3, 0x7c, 0xc1, 0x2a, 0x2f, 0xb9, 0x4f, 0x79, 0x5b, 0x09, 0x89, 0xef, 0x72, 0xbd, + 0x63, 0x71, 0x2f, 0xd0, 0x4a, 0x2d, 0xfe, 0x37, 0x09, 0x19, 0x1e, 0x3c, 0x6f, 0x43, 0x3a, 0x78, + 0x7b, 0x5d, 0x9f, 0xe0, 0x8d, 0x3a, 0xad, 0xe0, 0x7e, 0xa0, 0xb2, 0x7d, 0xf8, 0x9d, 0x60, 0x3f, + 0xcd, 0xdc, 0xf0, 0x8d, 0x49, 0x42, 0xfc, 0x9e, 0x72, 0x18, 0xf1, 0xc3, 0xf6, 0x7b, 0x19, 0x0a, + 0x6e, 0x6e, 0xf7, 0x82, 0x6f, 0x7c, 0x7a, 0x09, 0x32, 0x2a, 0x2b, 0x03, 0xa1, 0x0b, 0x2b, 0x3f, + 0xcf, 0x85, 0xe5, 0x56, 0x20, 0x1e, 0x83, 0x9a, 0x4a, 0x8d, 0x99, 0x96, 0xb2, 0x8c, 0xb0, 0xa3, + 0xba, 0x8f, 0x16, 0x43, 0x57, 0x98, 0xaf, 0xb2, 0x12, 0xfd, 0x5d, 0x6d, 0xc0, 0x62, 0x04, 0xf0, + 0xe4, 0x07, 0x44, 0xf5, 0x67, 0x08, 0xf2, 0x01, 0x3b, 0xfd, 0x1f, 0x1b, 0x88, 0xc8, 0x6d, 0x5c, + 0x84, 0x3c, 0x57, 0xd5, 0x5b, 0x7a, 0x96, 0x75, 0x23, 0xe0, 0x5f, 0x02, 0x14, 0x82, 0x39, 0x86, + 0x7f, 0x00, 0x38, 0x94, 0x9d, 0x94, 0x8d, 0x62, 0x2e, 0xad, 0xad, 0x4d, 0x4d, 0xd1, 0xd0, 0xe2, + 0x60, 0x60, 0x12, 0xa9, 0xec, 0x44, 0x28, 0xf8, 0x0a, 0x80, 0x6f, 0x7b, 0x66, 0xb8, 0xb4, 0x94, + 0xf3, 0x8c, 0x6f, 0xe3, 0x15, 0x48, 0x2b, 0x72, 0xdf, 0xf6, 0x52, 0x19, 0x7b, 0x67, 0x5a, 0xa6, + 0x52, 0xdf, 0xa7, 0x13, 0x35, 0x89, 0x31, 0xb8, 0x37, 0xc5, 0x68, 0x90, 0x84, 0x43, 0x24, 0xd4, + 0x00, 0x64, 0x66, 0x6f, 0x00, 0xc4, 0x3d, 0x28, 0x47, 0x55, 0xc1, 0x45, 0xc8, 0xed, 0x3d, 0x6a, + 0x6f, 0xb5, 0xee, 0xed, 0x3d, 0x68, 0x96, 0x13, 0x78, 0x01, 0x92, 0xf7, 0xb6, 0xb7, 0xcb, 0x08, + 0x03, 0x64, 0xa4, 0xe6, 0xc3, 0x47, 0x4f, 0x9a, 0x65, 0x01, 0xe7, 0x61, 0x61, 0xeb, 0x3d, 0x49, + 0x6a, 0xee, 0x1d, 0x94, 0x93, 0x38, 0x07, 0x69, 0xa9, 0xb9, 0xdf, 0x3c, 0x28, 0xa7, 0x44, 0x1d, + 0x2a, 0x6e, 0x19, 0xdc, 0x0a, 0x8c, 0x39, 0xa6, 0x0e, 0xca, 0x42, 0x33, 0x30, 0x61, 0xe2, 0x0c, + 0x2c, 0x19, 0x99, 0x81, 0x89, 0x1f, 0xc0, 0xa5, 0x98, 0xf3, 0x78, 0x05, 0xbe, 0x06, 0xa5, 0xd0, + 0x10, 0x86, 0xb5, 0xed, 0x39, 0xa9, 0x18, 0x9c, 0xc2, 0xcc, 0x3c, 0x05, 0x5a, 0xfb, 0x29, 0x86, + 0xdc, 0x7d, 0x2f, 0x22, 0xf0, 0x27, 0x08, 0xf2, 0x81, 0x27, 0x23, 0x8e, 0xaf, 0x24, 0xa3, 0xa3, + 0xd0, 0xea, 0xe4, 0xae, 0x4e, 0xbc, 0xf5, 0xe3, 0x2f, 0xfe, 0xf9, 0x2b, 0x61, 0x0d, 0xdf, 0x68, + 0x1c, 0xaf, 0x36, 0x3e, 0xd6, 0xe5, 0x1e, 0x79, 0xcb, 0xb4, 0x8c, 0x0f, 0x88, 0xe2, 0xd8, 0x8d, + 0x5a, 0xc3, 0xbb, 0x69, 0xe9, 0x6f, 0x2f, 0x09, 0x1b, 0xb5, 0x46, 0xad, 0x76, 0x8a, 0xff, 0x84, + 0xd8, 0x55, 0xed, 0x27, 0x30, 0xfe, 0xfa, 0xd8, 0x9b, 0x31, 0x3a, 0x42, 0xa8, 0xd6, 0x66, 0x61, + 0x65, 0x76, 0x15, 0xbf, 0x47, 0x21, 0x6e, 0xe3, 0x4d, 0x0a, 0x91, 0x79, 0x71, 0x46, 0x90, 0x8d, + 0x8f, 0x43, 0x1e, 0x39, 0xc5, 0x7f, 0x74, 0x1f, 0x5b, 0xa1, 0xd1, 0x1a, 0x8e, 0x87, 0x12, 0x3b, + 0x7f, 0x9b, 0x66, 0x4c, 0x89, 0x22, 0xdd, 0x15, 0xef, 0xce, 0x87, 0x74, 0x14, 0xe7, 0xfa, 0xb0, + 0xd9, 0xfe, 0x1c, 0x41, 0x29, 0x3c, 0x22, 0x1b, 0x83, 0x38, 0x76, 0x8e, 0x36, 0x0d, 0xf1, 0x3b, + 0x14, 0x71, 0x73, 0xed, 0x36, 0x45, 0xec, 0x4f, 0xfd, 0xe7, 0x88, 0x83, 0x00, 0xd4, 0x5f, 0x22, + 0x28, 0x85, 0x07, 0x56, 0x63, 0xa0, 0xc6, 0x4e, 0xb5, 0xaa, 0x17, 0x46, 0x4a, 0x48, 0xb3, 0x67, + 0x3a, 0x03, 0x2f, 0x44, 0x6b, 0xf3, 0x87, 0xe8, 0x9f, 0x11, 0xbc, 0x36, 0x32, 0x6c, 0xc1, 0xf1, + 0xbd, 0xfa, 0xb8, 0x69, 0x57, 0xb5, 0x3e, 0x2b, 0x3b, 0x0f, 0xd7, 0x2d, 0x0a, 0xf7, 0x2d, 0xf1, + 0x16, 0x33, 0x29, 0x87, 0x37, 0x06, 0xf2, 0xe9, 0x10, 0xf3, 0xfa, 0x21, 0x17, 0xb9, 0x8e, 0x6a, + 0x37, 0x10, 0xfe, 0x0b, 0x82, 0x72, 0x74, 0xb2, 0x81, 0xbf, 0x19, 0x8f, 0x25, 0x7e, 0xf4, 0x52, + 0x7d, 0x73, 0x46, 0x6e, 0x0e, 0x9c, 0xc7, 0x02, 0x8f, 0xde, 0x79, 0x80, 0x47, 0x24, 0xae, 0xa3, + 0x1a, 0xfe, 0x14, 0x41, 0x86, 0x4d, 0x35, 0xb0, 0x18, 0x9f, 0x60, 0xc1, 0xb1, 0x4b, 0x75, 0x79, + 0x22, 0x0f, 0x07, 0x78, 0x8f, 0x02, 0xdc, 0x10, 0xbf, 0x3d, 0x2f, 0x40, 0xf6, 0xc0, 0x70, 0x61, + 0xfd, 0x02, 0x41, 0xd6, 0x1b, 0x6b, 0xe0, 0xf8, 0x56, 0x20, 0x32, 0xf5, 0x18, 0x1b, 0x96, 0x67, + 0xf6, 0xb3, 0xc5, 0x0f, 0x70, 0xf1, 0xfc, 0xc3, 0xc5, 0xc3, 0x1f, 0xef, 0xe3, 0xf0, 0x84, 0x67, + 0x26, 0xd5, 0x6b, 0x53, 0xb8, 0xb8, 0xb1, 0x7e, 0x82, 0x28, 0xbe, 0x53, 0x6e, 0xad, 0x19, 0x8b, + 0xd1, 0xe9, 0xba, 0xc5, 0x05, 0xad, 0xa3, 0xda, 0xfb, 0x77, 0xc5, 0x8d, 0xf9, 0x6b, 0x6e, 0x50, + 0xc2, 0x0d, 0xe4, 0x06, 0x42, 0x9a, 0x3e, 0x16, 0xf1, 0xd5, 0xa9, 0x6f, 0xe4, 0xaa, 0x38, 0xf1, + 0xad, 0xc9, 0x14, 0xbb, 0x4b, 0xf5, 0x5a, 0x17, 0x6f, 0xce, 0x6b, 0x77, 0xfa, 0x4a, 0x5d, 0x47, + 0xb5, 0x15, 0x74, 0x03, 0xe1, 0xdf, 0x20, 0xc8, 0xb0, 0x17, 0xd4, 0x98, 0xf8, 0x0c, 0x3d, 0xe8, + 0xc6, 0xc4, 0x67, 0xf8, 0x09, 0x76, 0xf6, 0xf8, 0xec, 0x52, 0x39, 0x1e, 0xb4, 0x9f, 0x0b, 0xf0, + 0xda, 0x48, 0x97, 0x31, 0xa6, 0x6a, 0x8d, 0xeb, 0x7e, 0xaa, 0xf5, 0x59, 0xd9, 0x39, 0xf6, 0x5f, + 0xb3, 0x70, 0xf9, 0x04, 0x89, 0x6f, 0xcf, 0x17, 0x2f, 0xdd, 0xa8, 0x48, 0x37, 0x70, 0x76, 0xc4, + 0xed, 0x33, 0x04, 0x4e, 0x9c, 0xa8, 0xcd, 0xcf, 0x11, 0x5c, 0x54, 0x8c, 0x5e, 0x9c, 0x3a, 0x9b, + 0x25, 0xbf, 0x3f, 0x7a, 0xec, 0xe6, 0xe6, 0x63, 0xf4, 0xfe, 0x1d, 0xce, 0xd6, 0x31, 0xba, 0xb2, + 0xde, 0xa9, 0x1b, 0x56, 0xa7, 0xd1, 0x21, 0x3a, 0xcd, 0xdc, 0x06, 0xfb, 0x24, 0x9b, 0x9a, 0x1d, + 0xfa, 0x9b, 0x7a, 0xc3, 0x5f, 0xfc, 0x4e, 0x48, 0x3d, 0xd8, 0xba, 0xbf, 0xff, 0x07, 0xe1, 0xd2, + 0x03, 0x26, 0x65, 0xab, 0x6b, 0xf4, 0xd5, 0xba, 0x7f, 0x48, 0xfd, 0xc9, 0xea, 0x5f, 0xbd, 0x6f, + 0x4f, 0xe9, 0xb7, 0xa7, 0xfe, 0xb7, 0xa7, 0x4f, 0x56, 0x0f, 0x33, 0xf4, 0x9c, 0x6f, 0xfd, 0x2f, + 0x00, 0x00, 0xff, 0xff, 0x03, 0x8c, 0x0d, 0x98, 0xcc, 0x1f, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/firestore/v1/query.pb.go b/vendor/google.golang.org/genproto/googleapis/firestore/v1/query.pb.go new file mode 100644 index 000000000..a4de533af --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/firestore/v1/query.pb.go @@ -0,0 +1,1016 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/firestore/v1/query.proto + +package firestore // import "google.golang.org/genproto/googleapis/firestore/v1" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import wrappers "github.com/golang/protobuf/ptypes/wrappers" +import _ "google.golang.org/genproto/googleapis/api/annotations" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A sort direction. +type StructuredQuery_Direction int32 + +const ( + // Unspecified. + StructuredQuery_DIRECTION_UNSPECIFIED StructuredQuery_Direction = 0 + // Ascending. + StructuredQuery_ASCENDING StructuredQuery_Direction = 1 + // Descending. + StructuredQuery_DESCENDING StructuredQuery_Direction = 2 +) + +var StructuredQuery_Direction_name = map[int32]string{ + 0: "DIRECTION_UNSPECIFIED", + 1: "ASCENDING", + 2: "DESCENDING", +} +var StructuredQuery_Direction_value = map[string]int32{ + "DIRECTION_UNSPECIFIED": 0, + "ASCENDING": 1, + "DESCENDING": 2, +} + +func (x StructuredQuery_Direction) String() string { + return proto.EnumName(StructuredQuery_Direction_name, int32(x)) +} +func (StructuredQuery_Direction) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_query_3e898438c0f3b928, []int{0, 0} +} + +// A composite filter operator. +type StructuredQuery_CompositeFilter_Operator int32 + +const ( + // Unspecified. This value must not be used. + StructuredQuery_CompositeFilter_OPERATOR_UNSPECIFIED StructuredQuery_CompositeFilter_Operator = 0 + // The results are required to satisfy each of the combined filters. + StructuredQuery_CompositeFilter_AND StructuredQuery_CompositeFilter_Operator = 1 +) + +var StructuredQuery_CompositeFilter_Operator_name = map[int32]string{ + 0: "OPERATOR_UNSPECIFIED", + 1: "AND", +} +var StructuredQuery_CompositeFilter_Operator_value = map[string]int32{ + "OPERATOR_UNSPECIFIED": 0, + "AND": 1, +} + +func (x StructuredQuery_CompositeFilter_Operator) String() string { + return proto.EnumName(StructuredQuery_CompositeFilter_Operator_name, int32(x)) +} +func (StructuredQuery_CompositeFilter_Operator) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_query_3e898438c0f3b928, []int{0, 2, 0} +} + +// A field filter operator. +type StructuredQuery_FieldFilter_Operator int32 + +const ( + // Unspecified. This value must not be used. + StructuredQuery_FieldFilter_OPERATOR_UNSPECIFIED StructuredQuery_FieldFilter_Operator = 0 + // Less than. Requires that the field come first in `order_by`. + StructuredQuery_FieldFilter_LESS_THAN StructuredQuery_FieldFilter_Operator = 1 + // Less than or equal. Requires that the field come first in `order_by`. + StructuredQuery_FieldFilter_LESS_THAN_OR_EQUAL StructuredQuery_FieldFilter_Operator = 2 + // Greater than. Requires that the field come first in `order_by`. + StructuredQuery_FieldFilter_GREATER_THAN StructuredQuery_FieldFilter_Operator = 3 + // Greater than or equal. Requires that the field come first in + // `order_by`. + StructuredQuery_FieldFilter_GREATER_THAN_OR_EQUAL StructuredQuery_FieldFilter_Operator = 4 + // Equal. + StructuredQuery_FieldFilter_EQUAL StructuredQuery_FieldFilter_Operator = 5 + // Contains. Requires that the field is an array. + StructuredQuery_FieldFilter_ARRAY_CONTAINS StructuredQuery_FieldFilter_Operator = 7 +) + +var StructuredQuery_FieldFilter_Operator_name = map[int32]string{ + 0: "OPERATOR_UNSPECIFIED", + 1: "LESS_THAN", + 2: "LESS_THAN_OR_EQUAL", + 3: "GREATER_THAN", + 4: "GREATER_THAN_OR_EQUAL", + 5: "EQUAL", + 7: "ARRAY_CONTAINS", +} +var StructuredQuery_FieldFilter_Operator_value = map[string]int32{ + "OPERATOR_UNSPECIFIED": 0, + "LESS_THAN": 1, + "LESS_THAN_OR_EQUAL": 2, + "GREATER_THAN": 3, + "GREATER_THAN_OR_EQUAL": 4, + "EQUAL": 5, + "ARRAY_CONTAINS": 7, +} + +func (x StructuredQuery_FieldFilter_Operator) String() string { + return proto.EnumName(StructuredQuery_FieldFilter_Operator_name, int32(x)) +} +func (StructuredQuery_FieldFilter_Operator) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_query_3e898438c0f3b928, []int{0, 3, 0} +} + +// A unary operator. +type StructuredQuery_UnaryFilter_Operator int32 + +const ( + // Unspecified. This value must not be used. + StructuredQuery_UnaryFilter_OPERATOR_UNSPECIFIED StructuredQuery_UnaryFilter_Operator = 0 + // Test if a field is equal to NaN. + StructuredQuery_UnaryFilter_IS_NAN StructuredQuery_UnaryFilter_Operator = 2 + // Test if an exprestion evaluates to Null. + StructuredQuery_UnaryFilter_IS_NULL StructuredQuery_UnaryFilter_Operator = 3 +) + +var StructuredQuery_UnaryFilter_Operator_name = map[int32]string{ + 0: "OPERATOR_UNSPECIFIED", + 2: "IS_NAN", + 3: "IS_NULL", +} +var StructuredQuery_UnaryFilter_Operator_value = map[string]int32{ + "OPERATOR_UNSPECIFIED": 0, + "IS_NAN": 2, + "IS_NULL": 3, +} + +func (x StructuredQuery_UnaryFilter_Operator) String() string { + return proto.EnumName(StructuredQuery_UnaryFilter_Operator_name, int32(x)) +} +func (StructuredQuery_UnaryFilter_Operator) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_query_3e898438c0f3b928, []int{0, 4, 0} +} + +// A Firestore query. +type StructuredQuery struct { + // The projection to return. + Select *StructuredQuery_Projection `protobuf:"bytes,1,opt,name=select,proto3" json:"select,omitempty"` + // The collections to query. + From []*StructuredQuery_CollectionSelector `protobuf:"bytes,2,rep,name=from,proto3" json:"from,omitempty"` + // The filter to apply. + Where *StructuredQuery_Filter `protobuf:"bytes,3,opt,name=where,proto3" json:"where,omitempty"` + // The order to apply to the query results. + // + // Firestore guarantees a stable ordering through the following rules: + // + // * Any field required to appear in `order_by`, that is not already + // specified in `order_by`, is appended to the order in field name order + // by default. + // * If an order on `__name__` is not specified, it is appended by default. + // + // Fields are appended with the same sort direction as the last order + // specified, or 'ASCENDING' if no order was specified. For example: + // + // * `SELECT * FROM Foo ORDER BY A` becomes + // `SELECT * FROM Foo ORDER BY A, __name__` + // * `SELECT * FROM Foo ORDER BY A DESC` becomes + // `SELECT * FROM Foo ORDER BY A DESC, __name__ DESC` + // * `SELECT * FROM Foo WHERE A > 1` becomes + // `SELECT * FROM Foo WHERE A > 1 ORDER BY A, __name__` + OrderBy []*StructuredQuery_Order `protobuf:"bytes,4,rep,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` + // A starting point for the query results. + StartAt *Cursor `protobuf:"bytes,7,opt,name=start_at,json=startAt,proto3" json:"start_at,omitempty"` + // A end point for the query results. + EndAt *Cursor `protobuf:"bytes,8,opt,name=end_at,json=endAt,proto3" json:"end_at,omitempty"` + // The number of results to skip. + // + // Applies before limit, but after all other constraints. Must be >= 0 if + // specified. + Offset int32 `protobuf:"varint,6,opt,name=offset,proto3" json:"offset,omitempty"` + // The maximum number of results to return. + // + // Applies after all other constraints. + // Must be >= 0 if specified. + Limit *wrappers.Int32Value `protobuf:"bytes,5,opt,name=limit,proto3" json:"limit,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *StructuredQuery) Reset() { *m = StructuredQuery{} } +func (m *StructuredQuery) String() string { return proto.CompactTextString(m) } +func (*StructuredQuery) ProtoMessage() {} +func (*StructuredQuery) Descriptor() ([]byte, []int) { + return fileDescriptor_query_3e898438c0f3b928, []int{0} +} +func (m *StructuredQuery) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_StructuredQuery.Unmarshal(m, b) +} +func (m *StructuredQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_StructuredQuery.Marshal(b, m, deterministic) +} +func (dst *StructuredQuery) XXX_Merge(src proto.Message) { + xxx_messageInfo_StructuredQuery.Merge(dst, src) +} +func (m *StructuredQuery) XXX_Size() int { + return xxx_messageInfo_StructuredQuery.Size(m) +} +func (m *StructuredQuery) XXX_DiscardUnknown() { + xxx_messageInfo_StructuredQuery.DiscardUnknown(m) +} + +var xxx_messageInfo_StructuredQuery proto.InternalMessageInfo + +func (m *StructuredQuery) GetSelect() *StructuredQuery_Projection { + if m != nil { + return m.Select + } + return nil +} + +func (m *StructuredQuery) GetFrom() []*StructuredQuery_CollectionSelector { + if m != nil { + return m.From + } + return nil +} + +func (m *StructuredQuery) GetWhere() *StructuredQuery_Filter { + if m != nil { + return m.Where + } + return nil +} + +func (m *StructuredQuery) GetOrderBy() []*StructuredQuery_Order { + if m != nil { + return m.OrderBy + } + return nil +} + +func (m *StructuredQuery) GetStartAt() *Cursor { + if m != nil { + return m.StartAt + } + return nil +} + +func (m *StructuredQuery) GetEndAt() *Cursor { + if m != nil { + return m.EndAt + } + return nil +} + +func (m *StructuredQuery) GetOffset() int32 { + if m != nil { + return m.Offset + } + return 0 +} + +func (m *StructuredQuery) GetLimit() *wrappers.Int32Value { + if m != nil { + return m.Limit + } + return nil +} + +// A selection of a collection, such as `messages as m1`. +type StructuredQuery_CollectionSelector struct { + // The collection ID. + // When set, selects only collections with this ID. + CollectionId string `protobuf:"bytes,2,opt,name=collection_id,json=collectionId,proto3" json:"collection_id,omitempty"` + // When false, selects only collections that are immediate children of + // the `parent` specified in the containing `RunQueryRequest`. + // When true, selects all descendant collections. + AllDescendants bool `protobuf:"varint,3,opt,name=all_descendants,json=allDescendants,proto3" json:"all_descendants,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *StructuredQuery_CollectionSelector) Reset() { *m = StructuredQuery_CollectionSelector{} } +func (m *StructuredQuery_CollectionSelector) String() string { return proto.CompactTextString(m) } +func (*StructuredQuery_CollectionSelector) ProtoMessage() {} +func (*StructuredQuery_CollectionSelector) Descriptor() ([]byte, []int) { + return fileDescriptor_query_3e898438c0f3b928, []int{0, 0} +} +func (m *StructuredQuery_CollectionSelector) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_StructuredQuery_CollectionSelector.Unmarshal(m, b) +} +func (m *StructuredQuery_CollectionSelector) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_StructuredQuery_CollectionSelector.Marshal(b, m, deterministic) +} +func (dst *StructuredQuery_CollectionSelector) XXX_Merge(src proto.Message) { + xxx_messageInfo_StructuredQuery_CollectionSelector.Merge(dst, src) +} +func (m *StructuredQuery_CollectionSelector) XXX_Size() int { + return xxx_messageInfo_StructuredQuery_CollectionSelector.Size(m) +} +func (m *StructuredQuery_CollectionSelector) XXX_DiscardUnknown() { + xxx_messageInfo_StructuredQuery_CollectionSelector.DiscardUnknown(m) +} + +var xxx_messageInfo_StructuredQuery_CollectionSelector proto.InternalMessageInfo + +func (m *StructuredQuery_CollectionSelector) GetCollectionId() string { + if m != nil { + return m.CollectionId + } + return "" +} + +func (m *StructuredQuery_CollectionSelector) GetAllDescendants() bool { + if m != nil { + return m.AllDescendants + } + return false +} + +// A filter. +type StructuredQuery_Filter struct { + // The type of filter. + // + // Types that are valid to be assigned to FilterType: + // *StructuredQuery_Filter_CompositeFilter + // *StructuredQuery_Filter_FieldFilter + // *StructuredQuery_Filter_UnaryFilter + FilterType isStructuredQuery_Filter_FilterType `protobuf_oneof:"filter_type"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *StructuredQuery_Filter) Reset() { *m = StructuredQuery_Filter{} } +func (m *StructuredQuery_Filter) String() string { return proto.CompactTextString(m) } +func (*StructuredQuery_Filter) ProtoMessage() {} +func (*StructuredQuery_Filter) Descriptor() ([]byte, []int) { + return fileDescriptor_query_3e898438c0f3b928, []int{0, 1} +} +func (m *StructuredQuery_Filter) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_StructuredQuery_Filter.Unmarshal(m, b) +} +func (m *StructuredQuery_Filter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_StructuredQuery_Filter.Marshal(b, m, deterministic) +} +func (dst *StructuredQuery_Filter) XXX_Merge(src proto.Message) { + xxx_messageInfo_StructuredQuery_Filter.Merge(dst, src) +} +func (m *StructuredQuery_Filter) XXX_Size() int { + return xxx_messageInfo_StructuredQuery_Filter.Size(m) +} +func (m *StructuredQuery_Filter) XXX_DiscardUnknown() { + xxx_messageInfo_StructuredQuery_Filter.DiscardUnknown(m) +} + +var xxx_messageInfo_StructuredQuery_Filter proto.InternalMessageInfo + +type isStructuredQuery_Filter_FilterType interface { + isStructuredQuery_Filter_FilterType() +} + +type StructuredQuery_Filter_CompositeFilter struct { + CompositeFilter *StructuredQuery_CompositeFilter `protobuf:"bytes,1,opt,name=composite_filter,json=compositeFilter,proto3,oneof"` +} + +type StructuredQuery_Filter_FieldFilter struct { + FieldFilter *StructuredQuery_FieldFilter `protobuf:"bytes,2,opt,name=field_filter,json=fieldFilter,proto3,oneof"` +} + +type StructuredQuery_Filter_UnaryFilter struct { + UnaryFilter *StructuredQuery_UnaryFilter `protobuf:"bytes,3,opt,name=unary_filter,json=unaryFilter,proto3,oneof"` +} + +func (*StructuredQuery_Filter_CompositeFilter) isStructuredQuery_Filter_FilterType() {} + +func (*StructuredQuery_Filter_FieldFilter) isStructuredQuery_Filter_FilterType() {} + +func (*StructuredQuery_Filter_UnaryFilter) isStructuredQuery_Filter_FilterType() {} + +func (m *StructuredQuery_Filter) GetFilterType() isStructuredQuery_Filter_FilterType { + if m != nil { + return m.FilterType + } + return nil +} + +func (m *StructuredQuery_Filter) GetCompositeFilter() *StructuredQuery_CompositeFilter { + if x, ok := m.GetFilterType().(*StructuredQuery_Filter_CompositeFilter); ok { + return x.CompositeFilter + } + return nil +} + +func (m *StructuredQuery_Filter) GetFieldFilter() *StructuredQuery_FieldFilter { + if x, ok := m.GetFilterType().(*StructuredQuery_Filter_FieldFilter); ok { + return x.FieldFilter + } + return nil +} + +func (m *StructuredQuery_Filter) GetUnaryFilter() *StructuredQuery_UnaryFilter { + if x, ok := m.GetFilterType().(*StructuredQuery_Filter_UnaryFilter); ok { + return x.UnaryFilter + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*StructuredQuery_Filter) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _StructuredQuery_Filter_OneofMarshaler, _StructuredQuery_Filter_OneofUnmarshaler, _StructuredQuery_Filter_OneofSizer, []interface{}{ + (*StructuredQuery_Filter_CompositeFilter)(nil), + (*StructuredQuery_Filter_FieldFilter)(nil), + (*StructuredQuery_Filter_UnaryFilter)(nil), + } +} + +func _StructuredQuery_Filter_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*StructuredQuery_Filter) + // filter_type + switch x := m.FilterType.(type) { + case *StructuredQuery_Filter_CompositeFilter: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.CompositeFilter); err != nil { + return err + } + case *StructuredQuery_Filter_FieldFilter: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.FieldFilter); err != nil { + return err + } + case *StructuredQuery_Filter_UnaryFilter: + b.EncodeVarint(3<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.UnaryFilter); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("StructuredQuery_Filter.FilterType has unexpected type %T", x) + } + return nil +} + +func _StructuredQuery_Filter_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*StructuredQuery_Filter) + switch tag { + case 1: // filter_type.composite_filter + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(StructuredQuery_CompositeFilter) + err := b.DecodeMessage(msg) + m.FilterType = &StructuredQuery_Filter_CompositeFilter{msg} + return true, err + case 2: // filter_type.field_filter + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(StructuredQuery_FieldFilter) + err := b.DecodeMessage(msg) + m.FilterType = &StructuredQuery_Filter_FieldFilter{msg} + return true, err + case 3: // filter_type.unary_filter + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(StructuredQuery_UnaryFilter) + err := b.DecodeMessage(msg) + m.FilterType = &StructuredQuery_Filter_UnaryFilter{msg} + return true, err + default: + return false, nil + } +} + +func _StructuredQuery_Filter_OneofSizer(msg proto.Message) (n int) { + m := msg.(*StructuredQuery_Filter) + // filter_type + switch x := m.FilterType.(type) { + case *StructuredQuery_Filter_CompositeFilter: + s := proto.Size(x.CompositeFilter) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *StructuredQuery_Filter_FieldFilter: + s := proto.Size(x.FieldFilter) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *StructuredQuery_Filter_UnaryFilter: + s := proto.Size(x.UnaryFilter) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// A filter that merges multiple other filters using the given operator. +type StructuredQuery_CompositeFilter struct { + // The operator for combining multiple filters. + Op StructuredQuery_CompositeFilter_Operator `protobuf:"varint,1,opt,name=op,proto3,enum=google.firestore.v1.StructuredQuery_CompositeFilter_Operator" json:"op,omitempty"` + // The list of filters to combine. + // Must contain at least one filter. + Filters []*StructuredQuery_Filter `protobuf:"bytes,2,rep,name=filters,proto3" json:"filters,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *StructuredQuery_CompositeFilter) Reset() { *m = StructuredQuery_CompositeFilter{} } +func (m *StructuredQuery_CompositeFilter) String() string { return proto.CompactTextString(m) } +func (*StructuredQuery_CompositeFilter) ProtoMessage() {} +func (*StructuredQuery_CompositeFilter) Descriptor() ([]byte, []int) { + return fileDescriptor_query_3e898438c0f3b928, []int{0, 2} +} +func (m *StructuredQuery_CompositeFilter) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_StructuredQuery_CompositeFilter.Unmarshal(m, b) +} +func (m *StructuredQuery_CompositeFilter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_StructuredQuery_CompositeFilter.Marshal(b, m, deterministic) +} +func (dst *StructuredQuery_CompositeFilter) XXX_Merge(src proto.Message) { + xxx_messageInfo_StructuredQuery_CompositeFilter.Merge(dst, src) +} +func (m *StructuredQuery_CompositeFilter) XXX_Size() int { + return xxx_messageInfo_StructuredQuery_CompositeFilter.Size(m) +} +func (m *StructuredQuery_CompositeFilter) XXX_DiscardUnknown() { + xxx_messageInfo_StructuredQuery_CompositeFilter.DiscardUnknown(m) +} + +var xxx_messageInfo_StructuredQuery_CompositeFilter proto.InternalMessageInfo + +func (m *StructuredQuery_CompositeFilter) GetOp() StructuredQuery_CompositeFilter_Operator { + if m != nil { + return m.Op + } + return StructuredQuery_CompositeFilter_OPERATOR_UNSPECIFIED +} + +func (m *StructuredQuery_CompositeFilter) GetFilters() []*StructuredQuery_Filter { + if m != nil { + return m.Filters + } + return nil +} + +// A filter on a specific field. +type StructuredQuery_FieldFilter struct { + // The field to filter by. + Field *StructuredQuery_FieldReference `protobuf:"bytes,1,opt,name=field,proto3" json:"field,omitempty"` + // The operator to filter by. + Op StructuredQuery_FieldFilter_Operator `protobuf:"varint,2,opt,name=op,proto3,enum=google.firestore.v1.StructuredQuery_FieldFilter_Operator" json:"op,omitempty"` + // The value to compare to. + Value *Value `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *StructuredQuery_FieldFilter) Reset() { *m = StructuredQuery_FieldFilter{} } +func (m *StructuredQuery_FieldFilter) String() string { return proto.CompactTextString(m) } +func (*StructuredQuery_FieldFilter) ProtoMessage() {} +func (*StructuredQuery_FieldFilter) Descriptor() ([]byte, []int) { + return fileDescriptor_query_3e898438c0f3b928, []int{0, 3} +} +func (m *StructuredQuery_FieldFilter) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_StructuredQuery_FieldFilter.Unmarshal(m, b) +} +func (m *StructuredQuery_FieldFilter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_StructuredQuery_FieldFilter.Marshal(b, m, deterministic) +} +func (dst *StructuredQuery_FieldFilter) XXX_Merge(src proto.Message) { + xxx_messageInfo_StructuredQuery_FieldFilter.Merge(dst, src) +} +func (m *StructuredQuery_FieldFilter) XXX_Size() int { + return xxx_messageInfo_StructuredQuery_FieldFilter.Size(m) +} +func (m *StructuredQuery_FieldFilter) XXX_DiscardUnknown() { + xxx_messageInfo_StructuredQuery_FieldFilter.DiscardUnknown(m) +} + +var xxx_messageInfo_StructuredQuery_FieldFilter proto.InternalMessageInfo + +func (m *StructuredQuery_FieldFilter) GetField() *StructuredQuery_FieldReference { + if m != nil { + return m.Field + } + return nil +} + +func (m *StructuredQuery_FieldFilter) GetOp() StructuredQuery_FieldFilter_Operator { + if m != nil { + return m.Op + } + return StructuredQuery_FieldFilter_OPERATOR_UNSPECIFIED +} + +func (m *StructuredQuery_FieldFilter) GetValue() *Value { + if m != nil { + return m.Value + } + return nil +} + +// A filter with a single operand. +type StructuredQuery_UnaryFilter struct { + // The unary operator to apply. + Op StructuredQuery_UnaryFilter_Operator `protobuf:"varint,1,opt,name=op,proto3,enum=google.firestore.v1.StructuredQuery_UnaryFilter_Operator" json:"op,omitempty"` + // The argument to the filter. + // + // Types that are valid to be assigned to OperandType: + // *StructuredQuery_UnaryFilter_Field + OperandType isStructuredQuery_UnaryFilter_OperandType `protobuf_oneof:"operand_type"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *StructuredQuery_UnaryFilter) Reset() { *m = StructuredQuery_UnaryFilter{} } +func (m *StructuredQuery_UnaryFilter) String() string { return proto.CompactTextString(m) } +func (*StructuredQuery_UnaryFilter) ProtoMessage() {} +func (*StructuredQuery_UnaryFilter) Descriptor() ([]byte, []int) { + return fileDescriptor_query_3e898438c0f3b928, []int{0, 4} +} +func (m *StructuredQuery_UnaryFilter) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_StructuredQuery_UnaryFilter.Unmarshal(m, b) +} +func (m *StructuredQuery_UnaryFilter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_StructuredQuery_UnaryFilter.Marshal(b, m, deterministic) +} +func (dst *StructuredQuery_UnaryFilter) XXX_Merge(src proto.Message) { + xxx_messageInfo_StructuredQuery_UnaryFilter.Merge(dst, src) +} +func (m *StructuredQuery_UnaryFilter) XXX_Size() int { + return xxx_messageInfo_StructuredQuery_UnaryFilter.Size(m) +} +func (m *StructuredQuery_UnaryFilter) XXX_DiscardUnknown() { + xxx_messageInfo_StructuredQuery_UnaryFilter.DiscardUnknown(m) +} + +var xxx_messageInfo_StructuredQuery_UnaryFilter proto.InternalMessageInfo + +func (m *StructuredQuery_UnaryFilter) GetOp() StructuredQuery_UnaryFilter_Operator { + if m != nil { + return m.Op + } + return StructuredQuery_UnaryFilter_OPERATOR_UNSPECIFIED +} + +type isStructuredQuery_UnaryFilter_OperandType interface { + isStructuredQuery_UnaryFilter_OperandType() +} + +type StructuredQuery_UnaryFilter_Field struct { + Field *StructuredQuery_FieldReference `protobuf:"bytes,2,opt,name=field,proto3,oneof"` +} + +func (*StructuredQuery_UnaryFilter_Field) isStructuredQuery_UnaryFilter_OperandType() {} + +func (m *StructuredQuery_UnaryFilter) GetOperandType() isStructuredQuery_UnaryFilter_OperandType { + if m != nil { + return m.OperandType + } + return nil +} + +func (m *StructuredQuery_UnaryFilter) GetField() *StructuredQuery_FieldReference { + if x, ok := m.GetOperandType().(*StructuredQuery_UnaryFilter_Field); ok { + return x.Field + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*StructuredQuery_UnaryFilter) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _StructuredQuery_UnaryFilter_OneofMarshaler, _StructuredQuery_UnaryFilter_OneofUnmarshaler, _StructuredQuery_UnaryFilter_OneofSizer, []interface{}{ + (*StructuredQuery_UnaryFilter_Field)(nil), + } +} + +func _StructuredQuery_UnaryFilter_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*StructuredQuery_UnaryFilter) + // operand_type + switch x := m.OperandType.(type) { + case *StructuredQuery_UnaryFilter_Field: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Field); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("StructuredQuery_UnaryFilter.OperandType has unexpected type %T", x) + } + return nil +} + +func _StructuredQuery_UnaryFilter_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*StructuredQuery_UnaryFilter) + switch tag { + case 2: // operand_type.field + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(StructuredQuery_FieldReference) + err := b.DecodeMessage(msg) + m.OperandType = &StructuredQuery_UnaryFilter_Field{msg} + return true, err + default: + return false, nil + } +} + +func _StructuredQuery_UnaryFilter_OneofSizer(msg proto.Message) (n int) { + m := msg.(*StructuredQuery_UnaryFilter) + // operand_type + switch x := m.OperandType.(type) { + case *StructuredQuery_UnaryFilter_Field: + s := proto.Size(x.Field) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// An order on a field. +type StructuredQuery_Order struct { + // The field to order by. + Field *StructuredQuery_FieldReference `protobuf:"bytes,1,opt,name=field,proto3" json:"field,omitempty"` + // The direction to order by. Defaults to `ASCENDING`. + Direction StructuredQuery_Direction `protobuf:"varint,2,opt,name=direction,proto3,enum=google.firestore.v1.StructuredQuery_Direction" json:"direction,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *StructuredQuery_Order) Reset() { *m = StructuredQuery_Order{} } +func (m *StructuredQuery_Order) String() string { return proto.CompactTextString(m) } +func (*StructuredQuery_Order) ProtoMessage() {} +func (*StructuredQuery_Order) Descriptor() ([]byte, []int) { + return fileDescriptor_query_3e898438c0f3b928, []int{0, 5} +} +func (m *StructuredQuery_Order) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_StructuredQuery_Order.Unmarshal(m, b) +} +func (m *StructuredQuery_Order) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_StructuredQuery_Order.Marshal(b, m, deterministic) +} +func (dst *StructuredQuery_Order) XXX_Merge(src proto.Message) { + xxx_messageInfo_StructuredQuery_Order.Merge(dst, src) +} +func (m *StructuredQuery_Order) XXX_Size() int { + return xxx_messageInfo_StructuredQuery_Order.Size(m) +} +func (m *StructuredQuery_Order) XXX_DiscardUnknown() { + xxx_messageInfo_StructuredQuery_Order.DiscardUnknown(m) +} + +var xxx_messageInfo_StructuredQuery_Order proto.InternalMessageInfo + +func (m *StructuredQuery_Order) GetField() *StructuredQuery_FieldReference { + if m != nil { + return m.Field + } + return nil +} + +func (m *StructuredQuery_Order) GetDirection() StructuredQuery_Direction { + if m != nil { + return m.Direction + } + return StructuredQuery_DIRECTION_UNSPECIFIED +} + +// A reference to a field, such as `max(messages.time) as max_time`. +type StructuredQuery_FieldReference struct { + FieldPath string `protobuf:"bytes,2,opt,name=field_path,json=fieldPath,proto3" json:"field_path,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *StructuredQuery_FieldReference) Reset() { *m = StructuredQuery_FieldReference{} } +func (m *StructuredQuery_FieldReference) String() string { return proto.CompactTextString(m) } +func (*StructuredQuery_FieldReference) ProtoMessage() {} +func (*StructuredQuery_FieldReference) Descriptor() ([]byte, []int) { + return fileDescriptor_query_3e898438c0f3b928, []int{0, 6} +} +func (m *StructuredQuery_FieldReference) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_StructuredQuery_FieldReference.Unmarshal(m, b) +} +func (m *StructuredQuery_FieldReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_StructuredQuery_FieldReference.Marshal(b, m, deterministic) +} +func (dst *StructuredQuery_FieldReference) XXX_Merge(src proto.Message) { + xxx_messageInfo_StructuredQuery_FieldReference.Merge(dst, src) +} +func (m *StructuredQuery_FieldReference) XXX_Size() int { + return xxx_messageInfo_StructuredQuery_FieldReference.Size(m) +} +func (m *StructuredQuery_FieldReference) XXX_DiscardUnknown() { + xxx_messageInfo_StructuredQuery_FieldReference.DiscardUnknown(m) +} + +var xxx_messageInfo_StructuredQuery_FieldReference proto.InternalMessageInfo + +func (m *StructuredQuery_FieldReference) GetFieldPath() string { + if m != nil { + return m.FieldPath + } + return "" +} + +// The projection of document's fields to return. +type StructuredQuery_Projection struct { + // The fields to return. + // + // If empty, all fields are returned. To only return the name + // of the document, use `['__name__']`. + Fields []*StructuredQuery_FieldReference `protobuf:"bytes,2,rep,name=fields,proto3" json:"fields,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *StructuredQuery_Projection) Reset() { *m = StructuredQuery_Projection{} } +func (m *StructuredQuery_Projection) String() string { return proto.CompactTextString(m) } +func (*StructuredQuery_Projection) ProtoMessage() {} +func (*StructuredQuery_Projection) Descriptor() ([]byte, []int) { + return fileDescriptor_query_3e898438c0f3b928, []int{0, 7} +} +func (m *StructuredQuery_Projection) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_StructuredQuery_Projection.Unmarshal(m, b) +} +func (m *StructuredQuery_Projection) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_StructuredQuery_Projection.Marshal(b, m, deterministic) +} +func (dst *StructuredQuery_Projection) XXX_Merge(src proto.Message) { + xxx_messageInfo_StructuredQuery_Projection.Merge(dst, src) +} +func (m *StructuredQuery_Projection) XXX_Size() int { + return xxx_messageInfo_StructuredQuery_Projection.Size(m) +} +func (m *StructuredQuery_Projection) XXX_DiscardUnknown() { + xxx_messageInfo_StructuredQuery_Projection.DiscardUnknown(m) +} + +var xxx_messageInfo_StructuredQuery_Projection proto.InternalMessageInfo + +func (m *StructuredQuery_Projection) GetFields() []*StructuredQuery_FieldReference { + if m != nil { + return m.Fields + } + return nil +} + +// A position in a query result set. +type Cursor struct { + // The values that represent a position, in the order they appear in + // the order by clause of a query. + // + // Can contain fewer values than specified in the order by clause. + Values []*Value `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"` + // If the position is just before or just after the given values, relative + // to the sort order defined by the query. + Before bool `protobuf:"varint,2,opt,name=before,proto3" json:"before,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Cursor) Reset() { *m = Cursor{} } +func (m *Cursor) String() string { return proto.CompactTextString(m) } +func (*Cursor) ProtoMessage() {} +func (*Cursor) Descriptor() ([]byte, []int) { + return fileDescriptor_query_3e898438c0f3b928, []int{1} +} +func (m *Cursor) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Cursor.Unmarshal(m, b) +} +func (m *Cursor) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Cursor.Marshal(b, m, deterministic) +} +func (dst *Cursor) XXX_Merge(src proto.Message) { + xxx_messageInfo_Cursor.Merge(dst, src) +} +func (m *Cursor) XXX_Size() int { + return xxx_messageInfo_Cursor.Size(m) +} +func (m *Cursor) XXX_DiscardUnknown() { + xxx_messageInfo_Cursor.DiscardUnknown(m) +} + +var xxx_messageInfo_Cursor proto.InternalMessageInfo + +func (m *Cursor) GetValues() []*Value { + if m != nil { + return m.Values + } + return nil +} + +func (m *Cursor) GetBefore() bool { + if m != nil { + return m.Before + } + return false +} + +func init() { + proto.RegisterType((*StructuredQuery)(nil), "google.firestore.v1.StructuredQuery") + proto.RegisterType((*StructuredQuery_CollectionSelector)(nil), "google.firestore.v1.StructuredQuery.CollectionSelector") + proto.RegisterType((*StructuredQuery_Filter)(nil), "google.firestore.v1.StructuredQuery.Filter") + proto.RegisterType((*StructuredQuery_CompositeFilter)(nil), "google.firestore.v1.StructuredQuery.CompositeFilter") + proto.RegisterType((*StructuredQuery_FieldFilter)(nil), "google.firestore.v1.StructuredQuery.FieldFilter") + proto.RegisterType((*StructuredQuery_UnaryFilter)(nil), "google.firestore.v1.StructuredQuery.UnaryFilter") + proto.RegisterType((*StructuredQuery_Order)(nil), "google.firestore.v1.StructuredQuery.Order") + proto.RegisterType((*StructuredQuery_FieldReference)(nil), "google.firestore.v1.StructuredQuery.FieldReference") + proto.RegisterType((*StructuredQuery_Projection)(nil), "google.firestore.v1.StructuredQuery.Projection") + proto.RegisterType((*Cursor)(nil), "google.firestore.v1.Cursor") + proto.RegisterEnum("google.firestore.v1.StructuredQuery_Direction", StructuredQuery_Direction_name, StructuredQuery_Direction_value) + proto.RegisterEnum("google.firestore.v1.StructuredQuery_CompositeFilter_Operator", StructuredQuery_CompositeFilter_Operator_name, StructuredQuery_CompositeFilter_Operator_value) + proto.RegisterEnum("google.firestore.v1.StructuredQuery_FieldFilter_Operator", StructuredQuery_FieldFilter_Operator_name, StructuredQuery_FieldFilter_Operator_value) + proto.RegisterEnum("google.firestore.v1.StructuredQuery_UnaryFilter_Operator", StructuredQuery_UnaryFilter_Operator_name, StructuredQuery_UnaryFilter_Operator_value) +} + +func init() { + proto.RegisterFile("google/firestore/v1/query.proto", fileDescriptor_query_3e898438c0f3b928) +} + +var fileDescriptor_query_3e898438c0f3b928 = []byte{ + // 977 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x56, 0xdf, 0x6e, 0xe3, 0xc4, + 0x17, 0xae, 0x9d, 0xe6, 0xdf, 0x49, 0x9b, 0x5a, 0xf3, 0xfb, 0xb1, 0x64, 0xcd, 0xbf, 0x2a, 0x5c, + 0x50, 0x81, 0x70, 0xb6, 0x2d, 0x02, 0x21, 0xd8, 0x0b, 0x37, 0x71, 0x5b, 0xab, 0xc5, 0xc9, 0x4e, + 0xd2, 0x4a, 0x8b, 0x2a, 0x59, 0xae, 0x3d, 0x4e, 0x8d, 0x5c, 0x8f, 0x19, 0x8f, 0xbb, 0xea, 0x93, + 0x70, 0x8b, 0x10, 0x17, 0x88, 0x1b, 0xde, 0x83, 0x07, 0xe0, 0x35, 0xb8, 0xe1, 0x01, 0x90, 0xc7, + 0x93, 0xa4, 0xd9, 0xad, 0x20, 0xad, 0xb8, 0xf3, 0x39, 0x73, 0xbe, 0x6f, 0xce, 0x7c, 0xe7, 0x9c, + 0x19, 0xc3, 0x07, 0x53, 0x4a, 0xa7, 0x31, 0xe9, 0x85, 0x11, 0x23, 0x19, 0xa7, 0x8c, 0xf4, 0x6e, + 0x76, 0x7b, 0xdf, 0xe7, 0x84, 0xdd, 0x1a, 0x29, 0xa3, 0x9c, 0xa2, 0xff, 0x95, 0x01, 0xc6, 0x3c, + 0xc0, 0xb8, 0xd9, 0xd5, 0xdf, 0x95, 0x28, 0x2f, 0x8d, 0x7a, 0x5e, 0x92, 0x50, 0xee, 0xf1, 0x88, + 0x26, 0x59, 0x09, 0xd1, 0xbb, 0xf7, 0x71, 0x06, 0xd4, 0xcf, 0xaf, 0x49, 0xc2, 0x65, 0xcc, 0xfb, + 0x32, 0x46, 0x58, 0x97, 0x79, 0xd8, 0x7b, 0xc5, 0xbc, 0x34, 0x25, 0x4c, 0x72, 0x74, 0x7f, 0xd3, + 0x60, 0x6b, 0xcc, 0x59, 0xee, 0xf3, 0x9c, 0x91, 0xe0, 0x45, 0x91, 0x10, 0x3a, 0x82, 0x5a, 0x46, + 0x62, 0xe2, 0xf3, 0x8e, 0xb2, 0xad, 0xec, 0xb4, 0xf6, 0x7a, 0xc6, 0x3d, 0xb9, 0x19, 0xaf, 0xa1, + 0x8c, 0x11, 0xa3, 0xdf, 0x11, 0xbf, 0xc8, 0x0f, 0x4b, 0x38, 0x3a, 0x81, 0xf5, 0x90, 0xd1, 0xeb, + 0x8e, 0xba, 0x5d, 0xd9, 0x69, 0xed, 0x7d, 0xb1, 0x12, 0x4d, 0x9f, 0xc6, 0x71, 0x49, 0x33, 0x16, + 0x24, 0x94, 0x61, 0x41, 0x82, 0x4c, 0xa8, 0xbe, 0xba, 0x22, 0x8c, 0x74, 0x2a, 0x22, 0xa9, 0x4f, + 0x56, 0x62, 0x3b, 0x8c, 0x62, 0x4e, 0x18, 0x2e, 0x91, 0xc8, 0x82, 0x06, 0x65, 0x01, 0x61, 0xee, + 0xe5, 0x6d, 0x67, 0x5d, 0xe4, 0xf4, 0xf1, 0x4a, 0x2c, 0xc3, 0x02, 0x84, 0xeb, 0x02, 0x7b, 0x70, + 0x8b, 0x3e, 0x87, 0x46, 0xc6, 0x3d, 0xc6, 0x5d, 0x8f, 0x77, 0xea, 0x22, 0x99, 0x77, 0xee, 0xa5, + 0xe9, 0xe7, 0x2c, 0xa3, 0x0c, 0xd7, 0x45, 0xb0, 0xc9, 0xd1, 0x1e, 0xd4, 0x48, 0x12, 0x14, 0xa8, + 0xc6, 0xbf, 0xa3, 0xaa, 0x24, 0x09, 0x4c, 0x8e, 0x9e, 0x40, 0x8d, 0x86, 0x61, 0x46, 0x78, 0xa7, + 0xb6, 0xad, 0xec, 0x54, 0xb1, 0xb4, 0xd0, 0x2e, 0x54, 0xe3, 0xe8, 0x3a, 0xe2, 0x9d, 0xea, 0x32, + 0xd5, 0xac, 0xce, 0x86, 0x9d, 0xf0, 0xfd, 0xbd, 0x73, 0x2f, 0xce, 0x09, 0x2e, 0x23, 0xf5, 0x4b, + 0x40, 0x6f, 0x8a, 0x8b, 0x3e, 0x84, 0x4d, 0x7f, 0xee, 0x75, 0xa3, 0xa0, 0xa3, 0x6e, 0x2b, 0x3b, + 0x4d, 0xbc, 0xb1, 0x70, 0xda, 0x01, 0xfa, 0x08, 0xb6, 0xbc, 0x38, 0x76, 0x03, 0x92, 0xf9, 0x24, + 0x09, 0xbc, 0x84, 0x67, 0xa2, 0x0a, 0x0d, 0xdc, 0xf6, 0xe2, 0x78, 0xb0, 0xf0, 0xea, 0xbf, 0xa8, + 0x50, 0x2b, 0x35, 0x47, 0x1e, 0x68, 0x3e, 0xbd, 0x4e, 0x69, 0x16, 0x71, 0xe2, 0x86, 0xc2, 0x27, + 0xfb, 0xe9, 0xb3, 0x15, 0x1b, 0x41, 0x82, 0x4b, 0xbe, 0xe3, 0x35, 0xbc, 0xe5, 0x2f, 0xbb, 0xd0, + 0x19, 0x6c, 0x84, 0x11, 0x89, 0x83, 0x19, 0xbd, 0x2a, 0xe8, 0x9f, 0xad, 0xd8, 0x19, 0x24, 0x0e, + 0xe6, 0xd4, 0xad, 0x70, 0x61, 0x16, 0xb4, 0x79, 0xe2, 0xb1, 0xdb, 0x19, 0x6d, 0xe5, 0x01, 0xb4, + 0x67, 0x05, 0x70, 0x41, 0x9b, 0x2f, 0xcc, 0x83, 0x4d, 0x68, 0x95, 0x84, 0x2e, 0xbf, 0x4d, 0x89, + 0xfe, 0x87, 0x02, 0x5b, 0xaf, 0x9d, 0x11, 0x7d, 0x03, 0x2a, 0x4d, 0x85, 0x4a, 0xed, 0xbd, 0xe7, + 0x8f, 0x51, 0xc9, 0x18, 0xa6, 0x84, 0x79, 0xc5, 0xd0, 0xa8, 0x34, 0x45, 0x16, 0xd4, 0xcb, 0x1d, + 0x33, 0x39, 0x82, 0x0f, 0x1a, 0x9a, 0x19, 0xb6, 0xfb, 0x29, 0x34, 0x66, 0xb4, 0xa8, 0x03, 0xff, + 0x1f, 0x8e, 0x2c, 0x6c, 0x4e, 0x86, 0xd8, 0x3d, 0x73, 0xc6, 0x23, 0xab, 0x6f, 0x1f, 0xda, 0xd6, + 0x40, 0x5b, 0x43, 0x75, 0xa8, 0x98, 0xce, 0x40, 0x53, 0xf4, 0x3f, 0x55, 0x68, 0xdd, 0x51, 0x17, + 0xd9, 0x50, 0x15, 0xea, 0xca, 0xea, 0xef, 0xaf, 0x5e, 0x1e, 0x4c, 0x42, 0xc2, 0x48, 0xe2, 0x13, + 0x5c, 0x32, 0x20, 0x5b, 0xe8, 0xa3, 0x0a, 0x7d, 0xbe, 0x7c, 0x68, 0x99, 0x97, 0xb5, 0x79, 0x06, + 0xd5, 0x9b, 0x62, 0x3a, 0x64, 0x75, 0xf5, 0x7b, 0xd9, 0xe4, 0xfc, 0x88, 0xc0, 0xee, 0x0f, 0xca, + 0x4a, 0x3a, 0x6c, 0x42, 0xf3, 0xd4, 0x1a, 0x8f, 0xdd, 0xc9, 0xb1, 0xe9, 0x68, 0x0a, 0x7a, 0x02, + 0x68, 0x6e, 0xba, 0x43, 0xec, 0x5a, 0x2f, 0xce, 0xcc, 0x53, 0x4d, 0x45, 0x1a, 0x6c, 0x1c, 0x61, + 0xcb, 0x9c, 0x58, 0xb8, 0x8c, 0xac, 0xa0, 0xa7, 0xf0, 0xd6, 0x5d, 0xcf, 0x22, 0x78, 0x1d, 0x35, + 0xa1, 0x5a, 0x7e, 0x56, 0x11, 0x82, 0xb6, 0x89, 0xb1, 0xf9, 0xd2, 0xed, 0x0f, 0x9d, 0x89, 0x69, + 0x3b, 0x63, 0xad, 0xae, 0xff, 0xa5, 0x40, 0xeb, 0x4e, 0xe3, 0x49, 0x99, 0x94, 0x07, 0xc8, 0x74, + 0x07, 0xbd, 0x2c, 0xd3, 0xc9, 0xac, 0x78, 0xea, 0xa3, 0x8b, 0x77, 0xbc, 0x26, 0xcb, 0xd7, 0x7d, + 0xbe, 0x92, 0x80, 0x00, 0x35, 0x7b, 0xec, 0x3a, 0xa6, 0xa3, 0xa9, 0xa8, 0x05, 0xf5, 0xe2, 0xfb, + 0xec, 0xf4, 0x54, 0xab, 0x1c, 0xb4, 0x61, 0x83, 0x16, 0xf0, 0x24, 0x28, 0x27, 0xe8, 0x47, 0x05, + 0xaa, 0xe2, 0x6a, 0xfe, 0x2f, 0x5b, 0xec, 0x14, 0x9a, 0x41, 0xc4, 0xca, 0x9b, 0x4f, 0x76, 0x9a, + 0xb1, 0x12, 0xdd, 0x60, 0x86, 0xc2, 0x0b, 0x02, 0xbd, 0x07, 0xed, 0xe5, 0x6d, 0xd0, 0x7b, 0x00, + 0xe5, 0x9d, 0x95, 0x7a, 0xfc, 0x4a, 0x5e, 0xb6, 0x4d, 0xe1, 0x19, 0x79, 0xfc, 0x4a, 0x7f, 0x09, + 0xb0, 0x78, 0x48, 0xd1, 0x09, 0xd4, 0xc4, 0xd2, 0x6c, 0x7e, 0x1f, 0x75, 0x30, 0x49, 0xd1, 0xb5, + 0xa0, 0x39, 0xcf, 0xb1, 0x68, 0xb6, 0x81, 0x8d, 0xad, 0xfe, 0xc4, 0x1e, 0x3a, 0x6f, 0x36, 0xb0, + 0x39, 0xee, 0x5b, 0xce, 0xc0, 0x76, 0x8e, 0x34, 0x05, 0xb5, 0x01, 0x06, 0xd6, 0xdc, 0x56, 0xbb, + 0x13, 0xa8, 0x95, 0x4f, 0x54, 0xf1, 0x9e, 0x89, 0xc9, 0xc8, 0x3a, 0x8a, 0xc8, 0xee, 0x9f, 0x66, + 0x48, 0x46, 0x16, 0xef, 0xd9, 0x25, 0x09, 0x29, 0x23, 0xe2, 0xe8, 0x0d, 0x2c, 0xad, 0x83, 0x9f, + 0x15, 0x78, 0xdb, 0xa7, 0xd7, 0xf7, 0x31, 0x1c, 0x80, 0x38, 0xd6, 0xa8, 0x78, 0xd9, 0x46, 0xca, + 0xb7, 0x5f, 0xcb, 0x90, 0x29, 0x8d, 0xbd, 0x64, 0x6a, 0x50, 0x36, 0xed, 0x4d, 0x49, 0x22, 0xde, + 0xbd, 0x5e, 0xb9, 0xe4, 0xa5, 0x51, 0xb6, 0xf4, 0x53, 0xf4, 0xd5, 0xdc, 0xf8, 0x49, 0x5d, 0x3f, + 0xea, 0x1f, 0x8e, 0x7f, 0x55, 0x9f, 0x1e, 0x95, 0x2c, 0xfd, 0x98, 0xe6, 0x81, 0x71, 0x38, 0xdf, + 0xee, 0x7c, 0xf7, 0xf7, 0xd9, 0xda, 0x85, 0x58, 0xbb, 0x98, 0xaf, 0x5d, 0x9c, 0xef, 0x5e, 0xd6, + 0xc4, 0x3e, 0xfb, 0x7f, 0x07, 0x00, 0x00, 0xff, 0xff, 0xd2, 0x24, 0xd2, 0xba, 0xcf, 0x09, 0x00, + 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/firestore/v1/write.pb.go b/vendor/google.golang.org/genproto/googleapis/firestore/v1/write.pb.go new file mode 100644 index 000000000..aebf0e4ec --- /dev/null +++ b/vendor/google.golang.org/genproto/googleapis/firestore/v1/write.pb.go @@ -0,0 +1,973 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/firestore/v1/write.proto + +package firestore // import "google.golang.org/genproto/googleapis/firestore/v1" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import timestamp "github.com/golang/protobuf/ptypes/timestamp" +import _ "google.golang.org/genproto/googleapis/api/annotations" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +// A value that is calculated by the server. +type DocumentTransform_FieldTransform_ServerValue int32 + +const ( + // Unspecified. This value must not be used. + DocumentTransform_FieldTransform_SERVER_VALUE_UNSPECIFIED DocumentTransform_FieldTransform_ServerValue = 0 + // The time at which the server processed the request, with millisecond + // precision. + DocumentTransform_FieldTransform_REQUEST_TIME DocumentTransform_FieldTransform_ServerValue = 1 +) + +var DocumentTransform_FieldTransform_ServerValue_name = map[int32]string{ + 0: "SERVER_VALUE_UNSPECIFIED", + 1: "REQUEST_TIME", +} +var DocumentTransform_FieldTransform_ServerValue_value = map[string]int32{ + "SERVER_VALUE_UNSPECIFIED": 0, + "REQUEST_TIME": 1, +} + +func (x DocumentTransform_FieldTransform_ServerValue) String() string { + return proto.EnumName(DocumentTransform_FieldTransform_ServerValue_name, int32(x)) +} +func (DocumentTransform_FieldTransform_ServerValue) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_write_ea987fb0680fd003, []int{1, 0, 0} +} + +// A write on a document. +type Write struct { + // The operation to execute. + // + // Types that are valid to be assigned to Operation: + // *Write_Update + // *Write_Delete + // *Write_Transform + Operation isWrite_Operation `protobuf_oneof:"operation"` + // The fields to update in this write. + // + // This field can be set only when the operation is `update`. + // If the mask is not set for an `update` and the document exists, any + // existing data will be overwritten. + // If the mask is set and the document on the server has fields not covered by + // the mask, they are left unchanged. + // Fields referenced in the mask, but not present in the input document, are + // deleted from the document on the server. + // The field paths in this mask must not contain a reserved field name. + UpdateMask *DocumentMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // An optional precondition on the document. + // + // The write will fail if this is set and not met by the target document. + CurrentDocument *Precondition `protobuf:"bytes,4,opt,name=current_document,json=currentDocument,proto3" json:"current_document,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Write) Reset() { *m = Write{} } +func (m *Write) String() string { return proto.CompactTextString(m) } +func (*Write) ProtoMessage() {} +func (*Write) Descriptor() ([]byte, []int) { + return fileDescriptor_write_ea987fb0680fd003, []int{0} +} +func (m *Write) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Write.Unmarshal(m, b) +} +func (m *Write) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Write.Marshal(b, m, deterministic) +} +func (dst *Write) XXX_Merge(src proto.Message) { + xxx_messageInfo_Write.Merge(dst, src) +} +func (m *Write) XXX_Size() int { + return xxx_messageInfo_Write.Size(m) +} +func (m *Write) XXX_DiscardUnknown() { + xxx_messageInfo_Write.DiscardUnknown(m) +} + +var xxx_messageInfo_Write proto.InternalMessageInfo + +type isWrite_Operation interface { + isWrite_Operation() +} + +type Write_Update struct { + Update *Document `protobuf:"bytes,1,opt,name=update,proto3,oneof"` +} + +type Write_Delete struct { + Delete string `protobuf:"bytes,2,opt,name=delete,proto3,oneof"` +} + +type Write_Transform struct { + Transform *DocumentTransform `protobuf:"bytes,6,opt,name=transform,proto3,oneof"` +} + +func (*Write_Update) isWrite_Operation() {} + +func (*Write_Delete) isWrite_Operation() {} + +func (*Write_Transform) isWrite_Operation() {} + +func (m *Write) GetOperation() isWrite_Operation { + if m != nil { + return m.Operation + } + return nil +} + +func (m *Write) GetUpdate() *Document { + if x, ok := m.GetOperation().(*Write_Update); ok { + return x.Update + } + return nil +} + +func (m *Write) GetDelete() string { + if x, ok := m.GetOperation().(*Write_Delete); ok { + return x.Delete + } + return "" +} + +func (m *Write) GetTransform() *DocumentTransform { + if x, ok := m.GetOperation().(*Write_Transform); ok { + return x.Transform + } + return nil +} + +func (m *Write) GetUpdateMask() *DocumentMask { + if m != nil { + return m.UpdateMask + } + return nil +} + +func (m *Write) GetCurrentDocument() *Precondition { + if m != nil { + return m.CurrentDocument + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*Write) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _Write_OneofMarshaler, _Write_OneofUnmarshaler, _Write_OneofSizer, []interface{}{ + (*Write_Update)(nil), + (*Write_Delete)(nil), + (*Write_Transform)(nil), + } +} + +func _Write_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*Write) + // operation + switch x := m.Operation.(type) { + case *Write_Update: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Update); err != nil { + return err + } + case *Write_Delete: + b.EncodeVarint(2<<3 | proto.WireBytes) + b.EncodeStringBytes(x.Delete) + case *Write_Transform: + b.EncodeVarint(6<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Transform); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("Write.Operation has unexpected type %T", x) + } + return nil +} + +func _Write_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*Write) + switch tag { + case 1: // operation.update + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(Document) + err := b.DecodeMessage(msg) + m.Operation = &Write_Update{msg} + return true, err + case 2: // operation.delete + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.Operation = &Write_Delete{x} + return true, err + case 6: // operation.transform + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(DocumentTransform) + err := b.DecodeMessage(msg) + m.Operation = &Write_Transform{msg} + return true, err + default: + return false, nil + } +} + +func _Write_OneofSizer(msg proto.Message) (n int) { + m := msg.(*Write) + // operation + switch x := m.Operation.(type) { + case *Write_Update: + s := proto.Size(x.Update) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *Write_Delete: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(len(x.Delete))) + n += len(x.Delete) + case *Write_Transform: + s := proto.Size(x.Transform) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// A transformation of a document. +type DocumentTransform struct { + // The name of the document to transform. + Document string `protobuf:"bytes,1,opt,name=document,proto3" json:"document,omitempty"` + // The list of transformations to apply to the fields of the document, in + // order. + // This must not be empty. + FieldTransforms []*DocumentTransform_FieldTransform `protobuf:"bytes,2,rep,name=field_transforms,json=fieldTransforms,proto3" json:"field_transforms,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DocumentTransform) Reset() { *m = DocumentTransform{} } +func (m *DocumentTransform) String() string { return proto.CompactTextString(m) } +func (*DocumentTransform) ProtoMessage() {} +func (*DocumentTransform) Descriptor() ([]byte, []int) { + return fileDescriptor_write_ea987fb0680fd003, []int{1} +} +func (m *DocumentTransform) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DocumentTransform.Unmarshal(m, b) +} +func (m *DocumentTransform) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DocumentTransform.Marshal(b, m, deterministic) +} +func (dst *DocumentTransform) XXX_Merge(src proto.Message) { + xxx_messageInfo_DocumentTransform.Merge(dst, src) +} +func (m *DocumentTransform) XXX_Size() int { + return xxx_messageInfo_DocumentTransform.Size(m) +} +func (m *DocumentTransform) XXX_DiscardUnknown() { + xxx_messageInfo_DocumentTransform.DiscardUnknown(m) +} + +var xxx_messageInfo_DocumentTransform proto.InternalMessageInfo + +func (m *DocumentTransform) GetDocument() string { + if m != nil { + return m.Document + } + return "" +} + +func (m *DocumentTransform) GetFieldTransforms() []*DocumentTransform_FieldTransform { + if m != nil { + return m.FieldTransforms + } + return nil +} + +// A transformation of a field of the document. +type DocumentTransform_FieldTransform struct { + // The path of the field. See [Document.fields][google.firestore.v1.Document.fields] for the field path syntax + // reference. + FieldPath string `protobuf:"bytes,1,opt,name=field_path,json=fieldPath,proto3" json:"field_path,omitempty"` + // The transformation to apply on the field. + // + // Types that are valid to be assigned to TransformType: + // *DocumentTransform_FieldTransform_SetToServerValue + // *DocumentTransform_FieldTransform_Increment + // *DocumentTransform_FieldTransform_Maximum + // *DocumentTransform_FieldTransform_Minimum + // *DocumentTransform_FieldTransform_AppendMissingElements + // *DocumentTransform_FieldTransform_RemoveAllFromArray + TransformType isDocumentTransform_FieldTransform_TransformType `protobuf_oneof:"transform_type"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DocumentTransform_FieldTransform) Reset() { *m = DocumentTransform_FieldTransform{} } +func (m *DocumentTransform_FieldTransform) String() string { return proto.CompactTextString(m) } +func (*DocumentTransform_FieldTransform) ProtoMessage() {} +func (*DocumentTransform_FieldTransform) Descriptor() ([]byte, []int) { + return fileDescriptor_write_ea987fb0680fd003, []int{1, 0} +} +func (m *DocumentTransform_FieldTransform) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DocumentTransform_FieldTransform.Unmarshal(m, b) +} +func (m *DocumentTransform_FieldTransform) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DocumentTransform_FieldTransform.Marshal(b, m, deterministic) +} +func (dst *DocumentTransform_FieldTransform) XXX_Merge(src proto.Message) { + xxx_messageInfo_DocumentTransform_FieldTransform.Merge(dst, src) +} +func (m *DocumentTransform_FieldTransform) XXX_Size() int { + return xxx_messageInfo_DocumentTransform_FieldTransform.Size(m) +} +func (m *DocumentTransform_FieldTransform) XXX_DiscardUnknown() { + xxx_messageInfo_DocumentTransform_FieldTransform.DiscardUnknown(m) +} + +var xxx_messageInfo_DocumentTransform_FieldTransform proto.InternalMessageInfo + +func (m *DocumentTransform_FieldTransform) GetFieldPath() string { + if m != nil { + return m.FieldPath + } + return "" +} + +type isDocumentTransform_FieldTransform_TransformType interface { + isDocumentTransform_FieldTransform_TransformType() +} + +type DocumentTransform_FieldTransform_SetToServerValue struct { + SetToServerValue DocumentTransform_FieldTransform_ServerValue `protobuf:"varint,2,opt,name=set_to_server_value,json=setToServerValue,proto3,enum=google.firestore.v1.DocumentTransform_FieldTransform_ServerValue,oneof"` +} + +type DocumentTransform_FieldTransform_Increment struct { + Increment *Value `protobuf:"bytes,3,opt,name=increment,proto3,oneof"` +} + +type DocumentTransform_FieldTransform_Maximum struct { + Maximum *Value `protobuf:"bytes,4,opt,name=maximum,proto3,oneof"` +} + +type DocumentTransform_FieldTransform_Minimum struct { + Minimum *Value `protobuf:"bytes,5,opt,name=minimum,proto3,oneof"` +} + +type DocumentTransform_FieldTransform_AppendMissingElements struct { + AppendMissingElements *ArrayValue `protobuf:"bytes,6,opt,name=append_missing_elements,json=appendMissingElements,proto3,oneof"` +} + +type DocumentTransform_FieldTransform_RemoveAllFromArray struct { + RemoveAllFromArray *ArrayValue `protobuf:"bytes,7,opt,name=remove_all_from_array,json=removeAllFromArray,proto3,oneof"` +} + +func (*DocumentTransform_FieldTransform_SetToServerValue) isDocumentTransform_FieldTransform_TransformType() { +} + +func (*DocumentTransform_FieldTransform_Increment) isDocumentTransform_FieldTransform_TransformType() { +} + +func (*DocumentTransform_FieldTransform_Maximum) isDocumentTransform_FieldTransform_TransformType() {} + +func (*DocumentTransform_FieldTransform_Minimum) isDocumentTransform_FieldTransform_TransformType() {} + +func (*DocumentTransform_FieldTransform_AppendMissingElements) isDocumentTransform_FieldTransform_TransformType() { +} + +func (*DocumentTransform_FieldTransform_RemoveAllFromArray) isDocumentTransform_FieldTransform_TransformType() { +} + +func (m *DocumentTransform_FieldTransform) GetTransformType() isDocumentTransform_FieldTransform_TransformType { + if m != nil { + return m.TransformType + } + return nil +} + +func (m *DocumentTransform_FieldTransform) GetSetToServerValue() DocumentTransform_FieldTransform_ServerValue { + if x, ok := m.GetTransformType().(*DocumentTransform_FieldTransform_SetToServerValue); ok { + return x.SetToServerValue + } + return DocumentTransform_FieldTransform_SERVER_VALUE_UNSPECIFIED +} + +func (m *DocumentTransform_FieldTransform) GetIncrement() *Value { + if x, ok := m.GetTransformType().(*DocumentTransform_FieldTransform_Increment); ok { + return x.Increment + } + return nil +} + +func (m *DocumentTransform_FieldTransform) GetMaximum() *Value { + if x, ok := m.GetTransformType().(*DocumentTransform_FieldTransform_Maximum); ok { + return x.Maximum + } + return nil +} + +func (m *DocumentTransform_FieldTransform) GetMinimum() *Value { + if x, ok := m.GetTransformType().(*DocumentTransform_FieldTransform_Minimum); ok { + return x.Minimum + } + return nil +} + +func (m *DocumentTransform_FieldTransform) GetAppendMissingElements() *ArrayValue { + if x, ok := m.GetTransformType().(*DocumentTransform_FieldTransform_AppendMissingElements); ok { + return x.AppendMissingElements + } + return nil +} + +func (m *DocumentTransform_FieldTransform) GetRemoveAllFromArray() *ArrayValue { + if x, ok := m.GetTransformType().(*DocumentTransform_FieldTransform_RemoveAllFromArray); ok { + return x.RemoveAllFromArray + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*DocumentTransform_FieldTransform) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _DocumentTransform_FieldTransform_OneofMarshaler, _DocumentTransform_FieldTransform_OneofUnmarshaler, _DocumentTransform_FieldTransform_OneofSizer, []interface{}{ + (*DocumentTransform_FieldTransform_SetToServerValue)(nil), + (*DocumentTransform_FieldTransform_Increment)(nil), + (*DocumentTransform_FieldTransform_Maximum)(nil), + (*DocumentTransform_FieldTransform_Minimum)(nil), + (*DocumentTransform_FieldTransform_AppendMissingElements)(nil), + (*DocumentTransform_FieldTransform_RemoveAllFromArray)(nil), + } +} + +func _DocumentTransform_FieldTransform_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*DocumentTransform_FieldTransform) + // transform_type + switch x := m.TransformType.(type) { + case *DocumentTransform_FieldTransform_SetToServerValue: + b.EncodeVarint(2<<3 | proto.WireVarint) + b.EncodeVarint(uint64(x.SetToServerValue)) + case *DocumentTransform_FieldTransform_Increment: + b.EncodeVarint(3<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Increment); err != nil { + return err + } + case *DocumentTransform_FieldTransform_Maximum: + b.EncodeVarint(4<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Maximum); err != nil { + return err + } + case *DocumentTransform_FieldTransform_Minimum: + b.EncodeVarint(5<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Minimum); err != nil { + return err + } + case *DocumentTransform_FieldTransform_AppendMissingElements: + b.EncodeVarint(6<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.AppendMissingElements); err != nil { + return err + } + case *DocumentTransform_FieldTransform_RemoveAllFromArray: + b.EncodeVarint(7<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.RemoveAllFromArray); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("DocumentTransform_FieldTransform.TransformType has unexpected type %T", x) + } + return nil +} + +func _DocumentTransform_FieldTransform_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*DocumentTransform_FieldTransform) + switch tag { + case 2: // transform_type.set_to_server_value + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.TransformType = &DocumentTransform_FieldTransform_SetToServerValue{DocumentTransform_FieldTransform_ServerValue(x)} + return true, err + case 3: // transform_type.increment + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(Value) + err := b.DecodeMessage(msg) + m.TransformType = &DocumentTransform_FieldTransform_Increment{msg} + return true, err + case 4: // transform_type.maximum + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(Value) + err := b.DecodeMessage(msg) + m.TransformType = &DocumentTransform_FieldTransform_Maximum{msg} + return true, err + case 5: // transform_type.minimum + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(Value) + err := b.DecodeMessage(msg) + m.TransformType = &DocumentTransform_FieldTransform_Minimum{msg} + return true, err + case 6: // transform_type.append_missing_elements + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(ArrayValue) + err := b.DecodeMessage(msg) + m.TransformType = &DocumentTransform_FieldTransform_AppendMissingElements{msg} + return true, err + case 7: // transform_type.remove_all_from_array + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(ArrayValue) + err := b.DecodeMessage(msg) + m.TransformType = &DocumentTransform_FieldTransform_RemoveAllFromArray{msg} + return true, err + default: + return false, nil + } +} + +func _DocumentTransform_FieldTransform_OneofSizer(msg proto.Message) (n int) { + m := msg.(*DocumentTransform_FieldTransform) + // transform_type + switch x := m.TransformType.(type) { + case *DocumentTransform_FieldTransform_SetToServerValue: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(x.SetToServerValue)) + case *DocumentTransform_FieldTransform_Increment: + s := proto.Size(x.Increment) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *DocumentTransform_FieldTransform_Maximum: + s := proto.Size(x.Maximum) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *DocumentTransform_FieldTransform_Minimum: + s := proto.Size(x.Minimum) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *DocumentTransform_FieldTransform_AppendMissingElements: + s := proto.Size(x.AppendMissingElements) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *DocumentTransform_FieldTransform_RemoveAllFromArray: + s := proto.Size(x.RemoveAllFromArray) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +// The result of applying a write. +type WriteResult struct { + // The last update time of the document after applying the write. Not set + // after a `delete`. + // + // If the write did not actually change the document, this will be the + // previous update_time. + UpdateTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // The results of applying each [DocumentTransform.FieldTransform][google.firestore.v1.DocumentTransform.FieldTransform], in the + // same order. + TransformResults []*Value `protobuf:"bytes,2,rep,name=transform_results,json=transformResults,proto3" json:"transform_results,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *WriteResult) Reset() { *m = WriteResult{} } +func (m *WriteResult) String() string { return proto.CompactTextString(m) } +func (*WriteResult) ProtoMessage() {} +func (*WriteResult) Descriptor() ([]byte, []int) { + return fileDescriptor_write_ea987fb0680fd003, []int{2} +} +func (m *WriteResult) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_WriteResult.Unmarshal(m, b) +} +func (m *WriteResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_WriteResult.Marshal(b, m, deterministic) +} +func (dst *WriteResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_WriteResult.Merge(dst, src) +} +func (m *WriteResult) XXX_Size() int { + return xxx_messageInfo_WriteResult.Size(m) +} +func (m *WriteResult) XXX_DiscardUnknown() { + xxx_messageInfo_WriteResult.DiscardUnknown(m) +} + +var xxx_messageInfo_WriteResult proto.InternalMessageInfo + +func (m *WriteResult) GetUpdateTime() *timestamp.Timestamp { + if m != nil { + return m.UpdateTime + } + return nil +} + +func (m *WriteResult) GetTransformResults() []*Value { + if m != nil { + return m.TransformResults + } + return nil +} + +// A [Document][google.firestore.v1.Document] has changed. +// +// May be the result of multiple [writes][google.firestore.v1.Write], including deletes, that +// ultimately resulted in a new value for the [Document][google.firestore.v1.Document]. +// +// Multiple [DocumentChange][google.firestore.v1.DocumentChange] messages may be returned for the same logical +// change, if multiple targets are affected. +type DocumentChange struct { + // The new state of the [Document][google.firestore.v1.Document]. + // + // If `mask` is set, contains only fields that were updated or added. + Document *Document `protobuf:"bytes,1,opt,name=document,proto3" json:"document,omitempty"` + // A set of target IDs of targets that match this document. + TargetIds []int32 `protobuf:"varint,5,rep,packed,name=target_ids,json=targetIds,proto3" json:"target_ids,omitempty"` + // A set of target IDs for targets that no longer match this document. + RemovedTargetIds []int32 `protobuf:"varint,6,rep,packed,name=removed_target_ids,json=removedTargetIds,proto3" json:"removed_target_ids,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DocumentChange) Reset() { *m = DocumentChange{} } +func (m *DocumentChange) String() string { return proto.CompactTextString(m) } +func (*DocumentChange) ProtoMessage() {} +func (*DocumentChange) Descriptor() ([]byte, []int) { + return fileDescriptor_write_ea987fb0680fd003, []int{3} +} +func (m *DocumentChange) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DocumentChange.Unmarshal(m, b) +} +func (m *DocumentChange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DocumentChange.Marshal(b, m, deterministic) +} +func (dst *DocumentChange) XXX_Merge(src proto.Message) { + xxx_messageInfo_DocumentChange.Merge(dst, src) +} +func (m *DocumentChange) XXX_Size() int { + return xxx_messageInfo_DocumentChange.Size(m) +} +func (m *DocumentChange) XXX_DiscardUnknown() { + xxx_messageInfo_DocumentChange.DiscardUnknown(m) +} + +var xxx_messageInfo_DocumentChange proto.InternalMessageInfo + +func (m *DocumentChange) GetDocument() *Document { + if m != nil { + return m.Document + } + return nil +} + +func (m *DocumentChange) GetTargetIds() []int32 { + if m != nil { + return m.TargetIds + } + return nil +} + +func (m *DocumentChange) GetRemovedTargetIds() []int32 { + if m != nil { + return m.RemovedTargetIds + } + return nil +} + +// A [Document][google.firestore.v1.Document] has been deleted. +// +// May be the result of multiple [writes][google.firestore.v1.Write], including updates, the +// last of which deleted the [Document][google.firestore.v1.Document]. +// +// Multiple [DocumentDelete][google.firestore.v1.DocumentDelete] messages may be returned for the same logical +// delete, if multiple targets are affected. +type DocumentDelete struct { + // The resource name of the [Document][google.firestore.v1.Document] that was deleted. + Document string `protobuf:"bytes,1,opt,name=document,proto3" json:"document,omitempty"` + // A set of target IDs for targets that previously matched this entity. + RemovedTargetIds []int32 `protobuf:"varint,6,rep,packed,name=removed_target_ids,json=removedTargetIds,proto3" json:"removed_target_ids,omitempty"` + // The read timestamp at which the delete was observed. + // + // Greater or equal to the `commit_time` of the delete. + ReadTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=read_time,json=readTime,proto3" json:"read_time,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DocumentDelete) Reset() { *m = DocumentDelete{} } +func (m *DocumentDelete) String() string { return proto.CompactTextString(m) } +func (*DocumentDelete) ProtoMessage() {} +func (*DocumentDelete) Descriptor() ([]byte, []int) { + return fileDescriptor_write_ea987fb0680fd003, []int{4} +} +func (m *DocumentDelete) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DocumentDelete.Unmarshal(m, b) +} +func (m *DocumentDelete) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DocumentDelete.Marshal(b, m, deterministic) +} +func (dst *DocumentDelete) XXX_Merge(src proto.Message) { + xxx_messageInfo_DocumentDelete.Merge(dst, src) +} +func (m *DocumentDelete) XXX_Size() int { + return xxx_messageInfo_DocumentDelete.Size(m) +} +func (m *DocumentDelete) XXX_DiscardUnknown() { + xxx_messageInfo_DocumentDelete.DiscardUnknown(m) +} + +var xxx_messageInfo_DocumentDelete proto.InternalMessageInfo + +func (m *DocumentDelete) GetDocument() string { + if m != nil { + return m.Document + } + return "" +} + +func (m *DocumentDelete) GetRemovedTargetIds() []int32 { + if m != nil { + return m.RemovedTargetIds + } + return nil +} + +func (m *DocumentDelete) GetReadTime() *timestamp.Timestamp { + if m != nil { + return m.ReadTime + } + return nil +} + +// A [Document][google.firestore.v1.Document] has been removed from the view of the targets. +// +// Sent if the document is no longer relevant to a target and is out of view. +// Can be sent instead of a DocumentDelete or a DocumentChange if the server +// can not send the new value of the document. +// +// Multiple [DocumentRemove][google.firestore.v1.DocumentRemove] messages may be returned for the same logical +// write or delete, if multiple targets are affected. +type DocumentRemove struct { + // The resource name of the [Document][google.firestore.v1.Document] that has gone out of view. + Document string `protobuf:"bytes,1,opt,name=document,proto3" json:"document,omitempty"` + // A set of target IDs for targets that previously matched this document. + RemovedTargetIds []int32 `protobuf:"varint,2,rep,packed,name=removed_target_ids,json=removedTargetIds,proto3" json:"removed_target_ids,omitempty"` + // The read timestamp at which the remove was observed. + // + // Greater or equal to the `commit_time` of the change/delete/remove. + ReadTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=read_time,json=readTime,proto3" json:"read_time,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DocumentRemove) Reset() { *m = DocumentRemove{} } +func (m *DocumentRemove) String() string { return proto.CompactTextString(m) } +func (*DocumentRemove) ProtoMessage() {} +func (*DocumentRemove) Descriptor() ([]byte, []int) { + return fileDescriptor_write_ea987fb0680fd003, []int{5} +} +func (m *DocumentRemove) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DocumentRemove.Unmarshal(m, b) +} +func (m *DocumentRemove) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DocumentRemove.Marshal(b, m, deterministic) +} +func (dst *DocumentRemove) XXX_Merge(src proto.Message) { + xxx_messageInfo_DocumentRemove.Merge(dst, src) +} +func (m *DocumentRemove) XXX_Size() int { + return xxx_messageInfo_DocumentRemove.Size(m) +} +func (m *DocumentRemove) XXX_DiscardUnknown() { + xxx_messageInfo_DocumentRemove.DiscardUnknown(m) +} + +var xxx_messageInfo_DocumentRemove proto.InternalMessageInfo + +func (m *DocumentRemove) GetDocument() string { + if m != nil { + return m.Document + } + return "" +} + +func (m *DocumentRemove) GetRemovedTargetIds() []int32 { + if m != nil { + return m.RemovedTargetIds + } + return nil +} + +func (m *DocumentRemove) GetReadTime() *timestamp.Timestamp { + if m != nil { + return m.ReadTime + } + return nil +} + +// A digest of all the documents that match a given target. +type ExistenceFilter struct { + // The target ID to which this filter applies. + TargetId int32 `protobuf:"varint,1,opt,name=target_id,json=targetId,proto3" json:"target_id,omitempty"` + // The total count of documents that match [target_id][google.firestore.v1.ExistenceFilter.target_id]. + // + // If different from the count of documents in the client that match, the + // client must manually determine which documents no longer match the target. + Count int32 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ExistenceFilter) Reset() { *m = ExistenceFilter{} } +func (m *ExistenceFilter) String() string { return proto.CompactTextString(m) } +func (*ExistenceFilter) ProtoMessage() {} +func (*ExistenceFilter) Descriptor() ([]byte, []int) { + return fileDescriptor_write_ea987fb0680fd003, []int{6} +} +func (m *ExistenceFilter) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ExistenceFilter.Unmarshal(m, b) +} +func (m *ExistenceFilter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ExistenceFilter.Marshal(b, m, deterministic) +} +func (dst *ExistenceFilter) XXX_Merge(src proto.Message) { + xxx_messageInfo_ExistenceFilter.Merge(dst, src) +} +func (m *ExistenceFilter) XXX_Size() int { + return xxx_messageInfo_ExistenceFilter.Size(m) +} +func (m *ExistenceFilter) XXX_DiscardUnknown() { + xxx_messageInfo_ExistenceFilter.DiscardUnknown(m) +} + +var xxx_messageInfo_ExistenceFilter proto.InternalMessageInfo + +func (m *ExistenceFilter) GetTargetId() int32 { + if m != nil { + return m.TargetId + } + return 0 +} + +func (m *ExistenceFilter) GetCount() int32 { + if m != nil { + return m.Count + } + return 0 +} + +func init() { + proto.RegisterType((*Write)(nil), "google.firestore.v1.Write") + proto.RegisterType((*DocumentTransform)(nil), "google.firestore.v1.DocumentTransform") + proto.RegisterType((*DocumentTransform_FieldTransform)(nil), "google.firestore.v1.DocumentTransform.FieldTransform") + proto.RegisterType((*WriteResult)(nil), "google.firestore.v1.WriteResult") + proto.RegisterType((*DocumentChange)(nil), "google.firestore.v1.DocumentChange") + proto.RegisterType((*DocumentDelete)(nil), "google.firestore.v1.DocumentDelete") + proto.RegisterType((*DocumentRemove)(nil), "google.firestore.v1.DocumentRemove") + proto.RegisterType((*ExistenceFilter)(nil), "google.firestore.v1.ExistenceFilter") + proto.RegisterEnum("google.firestore.v1.DocumentTransform_FieldTransform_ServerValue", DocumentTransform_FieldTransform_ServerValue_name, DocumentTransform_FieldTransform_ServerValue_value) +} + +func init() { + proto.RegisterFile("google/firestore/v1/write.proto", fileDescriptor_write_ea987fb0680fd003) +} + +var fileDescriptor_write_ea987fb0680fd003 = []byte{ + // 853 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x55, 0x41, 0x6f, 0xe3, 0x44, + 0x14, 0x6e, 0xd2, 0x26, 0x5b, 0xbf, 0xa0, 0xd6, 0x3b, 0xcb, 0x6a, 0x4d, 0xd8, 0x6a, 0x43, 0x0e, + 0xa8, 0x07, 0xe4, 0xa8, 0x45, 0xb0, 0x82, 0x85, 0x43, 0xd3, 0x3a, 0x6d, 0xa5, 0x2d, 0x0a, 0x4e, + 0x1a, 0x04, 0xaa, 0x34, 0xcc, 0xda, 0x13, 0xd7, 0x5a, 0x7b, 0xc6, 0x9a, 0x19, 0x87, 0xdd, 0xdf, + 0xc1, 0x85, 0x33, 0xe2, 0xc4, 0xbf, 0xe0, 0xca, 0x8d, 0x1f, 0xc1, 0xff, 0x40, 0x9e, 0xb1, 0xdd, + 0x06, 0xa2, 0x6c, 0x59, 0xed, 0x2d, 0x6f, 0xde, 0xf7, 0x7d, 0xef, 0xf3, 0x7b, 0x33, 0x2f, 0xf0, + 0x24, 0xe2, 0x3c, 0x4a, 0xe8, 0x60, 0x1e, 0x0b, 0x2a, 0x15, 0x17, 0x74, 0xb0, 0x38, 0x18, 0xfc, + 0x24, 0x62, 0x45, 0xdd, 0x4c, 0x70, 0xc5, 0xd1, 0x03, 0x03, 0x70, 0x6b, 0x80, 0xbb, 0x38, 0xe8, + 0x3e, 0x2e, 0x59, 0x24, 0x8b, 0x07, 0x84, 0x31, 0xae, 0x88, 0x8a, 0x39, 0x93, 0x86, 0xd2, 0xed, + 0xad, 0xd2, 0x0c, 0x78, 0x9a, 0x72, 0x56, 0x22, 0xfa, 0xab, 0x10, 0x21, 0x0f, 0xf2, 0x94, 0x32, + 0x55, 0x62, 0x2a, 0x67, 0x3a, 0x7a, 0x91, 0xcf, 0x07, 0x2a, 0x4e, 0xa9, 0x54, 0x24, 0xcd, 0x0c, + 0xa0, 0xff, 0x47, 0x13, 0x5a, 0xdf, 0x15, 0x4e, 0xd1, 0x53, 0x68, 0xe7, 0x59, 0x48, 0x14, 0x75, + 0x1a, 0xbd, 0xc6, 0x7e, 0xe7, 0x70, 0xcf, 0x5d, 0x61, 0xda, 0x3d, 0x29, 0xf5, 0xcf, 0x36, 0xfc, + 0x12, 0x8e, 0x1c, 0x68, 0x87, 0x34, 0xa1, 0x8a, 0x3a, 0xcd, 0x5e, 0x63, 0xdf, 0x2a, 0x32, 0x26, + 0x46, 0x23, 0xb0, 0x94, 0x20, 0x4c, 0xce, 0xb9, 0x48, 0x9d, 0xb6, 0x56, 0xfd, 0x78, 0xad, 0xea, + 0xb4, 0x42, 0x9f, 0x6d, 0xf8, 0x37, 0x54, 0x34, 0x84, 0x8e, 0xa9, 0x85, 0x53, 0x22, 0x5f, 0x3a, + 0x9b, 0x5a, 0xe9, 0xa3, 0xb5, 0x4a, 0x17, 0x44, 0xbe, 0xf4, 0xc1, 0xb0, 0x8a, 0xdf, 0xe8, 0x39, + 0xd8, 0x41, 0x2e, 0x04, 0x65, 0x0a, 0x57, 0x3d, 0x72, 0xb6, 0xd6, 0x08, 0x8d, 0x05, 0x0d, 0x38, + 0x0b, 0xe3, 0x62, 0x26, 0xfe, 0x6e, 0x49, 0xad, 0xd4, 0x87, 0x1d, 0xb0, 0x78, 0x46, 0x85, 0x9e, + 0x58, 0xff, 0xef, 0x16, 0xdc, 0xff, 0xcf, 0x17, 0xa0, 0x2e, 0x6c, 0xd7, 0x85, 0x8a, 0x8e, 0x5a, + 0x7e, 0x1d, 0xa3, 0x1f, 0xc1, 0x9e, 0xc7, 0x34, 0x09, 0x71, 0xfd, 0x8d, 0xd2, 0x69, 0xf6, 0x36, + 0xf7, 0x3b, 0x87, 0x9f, 0xdd, 0xad, 0x3f, 0xee, 0xa8, 0xa0, 0xd7, 0xa1, 0xbf, 0x3b, 0x5f, 0x8a, + 0x65, 0xf7, 0xaf, 0x2d, 0xd8, 0x59, 0xc6, 0xa0, 0x3d, 0x00, 0x53, 0x34, 0x23, 0xea, 0xba, 0xb4, + 0x64, 0xe9, 0x93, 0x31, 0x51, 0xd7, 0x48, 0xc0, 0x03, 0x49, 0x15, 0x56, 0x1c, 0x4b, 0x2a, 0x16, + 0x54, 0xe0, 0x05, 0x49, 0x72, 0x33, 0xd3, 0x9d, 0xc3, 0xa3, 0xb7, 0xb2, 0xe5, 0x4e, 0xb4, 0xd2, + 0xac, 0x10, 0x3a, 0xdb, 0xf0, 0x6d, 0x49, 0xd5, 0x94, 0xdf, 0x3a, 0x43, 0x5f, 0x82, 0x15, 0xb3, + 0x40, 0x50, 0xdd, 0x24, 0x33, 0xd6, 0xee, 0xca, 0x4a, 0x95, 0xc4, 0x0d, 0x1c, 0x7d, 0x0e, 0xf7, + 0x52, 0xf2, 0x2a, 0x4e, 0xf3, 0xb4, 0x9c, 0xe3, 0x7a, 0x66, 0x05, 0xd6, 0xbc, 0x98, 0x69, 0x5e, + 0xeb, 0x4e, 0x3c, 0x03, 0x46, 0xdf, 0xc3, 0x23, 0x92, 0x65, 0x94, 0x85, 0x38, 0x8d, 0xa5, 0x8c, + 0x59, 0x84, 0x69, 0xa2, 0x9d, 0xc8, 0xf2, 0x6a, 0x3f, 0x59, 0xa9, 0x73, 0x24, 0x04, 0x79, 0x5d, + 0x89, 0x3d, 0x34, 0x0a, 0x17, 0x46, 0xc0, 0x2b, 0xf9, 0x68, 0x0a, 0x0f, 0x05, 0x4d, 0xf9, 0x82, + 0x62, 0x92, 0x24, 0x78, 0x2e, 0x78, 0x8a, 0x49, 0x41, 0x73, 0xee, 0xdd, 0x55, 0x18, 0x19, 0xfe, + 0x51, 0x92, 0x8c, 0x04, 0x4f, 0x75, 0xaa, 0xff, 0x35, 0x74, 0x6e, 0xf7, 0xfa, 0x31, 0x38, 0x13, + 0xcf, 0x9f, 0x79, 0x3e, 0x9e, 0x1d, 0x3d, 0xbf, 0xf4, 0xf0, 0xe5, 0x37, 0x93, 0xb1, 0x77, 0x7c, + 0x3e, 0x3a, 0xf7, 0x4e, 0xec, 0x0d, 0x64, 0xc3, 0x7b, 0xbe, 0xf7, 0xed, 0xa5, 0x37, 0x99, 0xe2, + 0xe9, 0xf9, 0x85, 0x67, 0x37, 0x86, 0x36, 0xec, 0xd4, 0xb7, 0x13, 0xab, 0xd7, 0x19, 0xed, 0xff, + 0xdc, 0x80, 0x8e, 0xde, 0x15, 0x3e, 0x95, 0x79, 0xa2, 0xd0, 0xb3, 0xfa, 0x59, 0x16, 0x5b, 0xa5, + 0x5c, 0x1b, 0x75, 0x37, 0xab, 0x95, 0xe3, 0x4e, 0xab, 0x95, 0x53, 0xbd, 0xc7, 0xe2, 0x00, 0x9d, + 0xc2, 0xfd, 0x1b, 0x79, 0xa1, 0x05, 0xab, 0x37, 0xb0, 0x66, 0x20, 0xbe, 0x5d, 0x93, 0x8c, 0x09, + 0xd9, 0xff, 0xa5, 0x01, 0x3b, 0xd5, 0x45, 0x3c, 0xbe, 0x26, 0x2c, 0xa2, 0xe8, 0x8b, 0x7f, 0x3d, + 0xbd, 0x37, 0x2d, 0xb3, 0x5b, 0x2f, 0x73, 0x0f, 0x40, 0x11, 0x11, 0x51, 0x85, 0xe3, 0x50, 0x3a, + 0xad, 0xde, 0xe6, 0x7e, 0xcb, 0xb7, 0xcc, 0xc9, 0x79, 0x28, 0xd1, 0x27, 0x50, 0x76, 0x3a, 0xc4, + 0xb7, 0x60, 0x6d, 0x0d, 0xb3, 0xcb, 0xcc, 0xb4, 0x42, 0x17, 0x0d, 0xab, 0xad, 0x9d, 0x98, 0x95, + 0xb8, 0x6e, 0x2b, 0xfc, 0x2f, 0x71, 0xf4, 0x14, 0x2c, 0x41, 0x49, 0x68, 0x7a, 0xbf, 0xf5, 0xc6, + 0xde, 0x6f, 0x17, 0xe0, 0x22, 0x5c, 0x72, 0xe5, 0x6b, 0xd5, 0xb7, 0x70, 0xd5, 0x7c, 0xd7, 0xae, + 0x4e, 0x60, 0xd7, 0x7b, 0x15, 0x4b, 0x45, 0x59, 0x40, 0x47, 0x71, 0xa2, 0xa8, 0x40, 0x1f, 0x82, + 0x55, 0x57, 0xd4, 0xb6, 0x5a, 0xfe, 0x76, 0x35, 0x0a, 0xf4, 0x3e, 0xb4, 0x02, 0x9e, 0x33, 0xa5, + 0x17, 0x54, 0xcb, 0x37, 0xc1, 0xf0, 0xb7, 0x06, 0x3c, 0x0a, 0x78, 0xba, 0x6a, 0xda, 0x43, 0xd0, + 0x77, 0x77, 0x5c, 0x98, 0x18, 0x37, 0x7e, 0xf8, 0xaa, 0x84, 0x44, 0x3c, 0x21, 0x2c, 0x72, 0xb9, + 0x88, 0x06, 0x11, 0x65, 0xda, 0xe2, 0xc0, 0xa4, 0x48, 0x16, 0xcb, 0xa5, 0x3f, 0xd7, 0x67, 0x75, + 0xf0, 0x6b, 0x73, 0xeb, 0xf4, 0x78, 0x34, 0xf9, 0xbd, 0xf9, 0xc1, 0xa9, 0x51, 0x39, 0x4e, 0x78, + 0x1e, 0xba, 0xa3, 0xba, 0xdc, 0xec, 0xe0, 0xcf, 0x2a, 0x77, 0xa5, 0x73, 0x57, 0x75, 0xee, 0x6a, + 0x76, 0xf0, 0xa2, 0xad, 0xeb, 0x7c, 0xfa, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xc0, 0x55, 0xcd, + 0x3b, 0x39, 0x08, 0x00, 0x00, +} diff --git a/vendor/google.golang.org/genproto/googleapis/firestore/v1beta1/common.pb.go b/vendor/google.golang.org/genproto/googleapis/firestore/v1beta1/common.pb.go index fb29adc85..8b8b62984 100644 --- a/vendor/google.golang.org/genproto/googleapis/firestore/v1beta1/common.pb.go +++ b/vendor/google.golang.org/genproto/googleapis/firestore/v1beta1/common.pb.go @@ -38,7 +38,7 @@ func (m *DocumentMask) Reset() { *m = DocumentMask{} } func (m *DocumentMask) String() string { return proto.CompactTextString(m) } func (*DocumentMask) ProtoMessage() {} func (*DocumentMask) Descriptor() ([]byte, []int) { - return fileDescriptor_common_ed079c0d96917e99, []int{0} + return fileDescriptor_common_37c55147eeb829a0, []int{0} } func (m *DocumentMask) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DocumentMask.Unmarshal(m, b) @@ -82,7 +82,7 @@ func (m *Precondition) Reset() { *m = Precondition{} } func (m *Precondition) String() string { return proto.CompactTextString(m) } func (*Precondition) ProtoMessage() {} func (*Precondition) Descriptor() ([]byte, []int) { - return fileDescriptor_common_ed079c0d96917e99, []int{1} + return fileDescriptor_common_37c55147eeb829a0, []int{1} } func (m *Precondition) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Precondition.Unmarshal(m, b) @@ -229,7 +229,7 @@ func (m *TransactionOptions) Reset() { *m = TransactionOptions{} } func (m *TransactionOptions) String() string { return proto.CompactTextString(m) } func (*TransactionOptions) ProtoMessage() {} func (*TransactionOptions) Descriptor() ([]byte, []int) { - return fileDescriptor_common_ed079c0d96917e99, []int{2} + return fileDescriptor_common_37c55147eeb829a0, []int{2} } func (m *TransactionOptions) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TransactionOptions.Unmarshal(m, b) @@ -373,7 +373,7 @@ func (m *TransactionOptions_ReadWrite) Reset() { *m = TransactionOptions func (m *TransactionOptions_ReadWrite) String() string { return proto.CompactTextString(m) } func (*TransactionOptions_ReadWrite) ProtoMessage() {} func (*TransactionOptions_ReadWrite) Descriptor() ([]byte, []int) { - return fileDescriptor_common_ed079c0d96917e99, []int{2, 0} + return fileDescriptor_common_37c55147eeb829a0, []int{2, 0} } func (m *TransactionOptions_ReadWrite) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TransactionOptions_ReadWrite.Unmarshal(m, b) @@ -417,7 +417,7 @@ func (m *TransactionOptions_ReadOnly) Reset() { *m = TransactionOptions_ func (m *TransactionOptions_ReadOnly) String() string { return proto.CompactTextString(m) } func (*TransactionOptions_ReadOnly) ProtoMessage() {} func (*TransactionOptions_ReadOnly) Descriptor() ([]byte, []int) { - return fileDescriptor_common_ed079c0d96917e99, []int{2, 1} + return fileDescriptor_common_37c55147eeb829a0, []int{2, 1} } func (m *TransactionOptions_ReadOnly) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TransactionOptions_ReadOnly.Unmarshal(m, b) @@ -525,10 +525,10 @@ func init() { } func init() { - proto.RegisterFile("google/firestore/v1beta1/common.proto", fileDescriptor_common_ed079c0d96917e99) + proto.RegisterFile("google/firestore/v1beta1/common.proto", fileDescriptor_common_37c55147eeb829a0) } -var fileDescriptor_common_ed079c0d96917e99 = []byte{ +var fileDescriptor_common_37c55147eeb829a0 = []byte{ // 468 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x52, 0xef, 0x8a, 0xd3, 0x40, 0x10, 0x6f, 0x7a, 0xc7, 0xd1, 0x4e, 0x8b, 0x9c, 0x41, 0x24, 0x84, 0xc3, 0x3b, 0x0a, 0x42, 0x41, diff --git a/vendor/google.golang.org/genproto/googleapis/firestore/v1beta1/document.pb.go b/vendor/google.golang.org/genproto/googleapis/firestore/v1beta1/document.pb.go index a134467ae..39a92ce54 100644 --- a/vendor/google.golang.org/genproto/googleapis/firestore/v1beta1/document.pb.go +++ b/vendor/google.golang.org/genproto/googleapis/firestore/v1beta1/document.pb.go @@ -75,7 +75,7 @@ func (m *Document) Reset() { *m = Document{} } func (m *Document) String() string { return proto.CompactTextString(m) } func (*Document) ProtoMessage() {} func (*Document) Descriptor() ([]byte, []int) { - return fileDescriptor_document_fe46ba4c8da20ac8, []int{0} + return fileDescriptor_document_cd57755e5c8cfbb2, []int{0} } func (m *Document) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Document.Unmarshal(m, b) @@ -149,7 +149,7 @@ func (m *Value) Reset() { *m = Value{} } func (m *Value) String() string { return proto.CompactTextString(m) } func (*Value) ProtoMessage() {} func (*Value) Descriptor() ([]byte, []int) { - return fileDescriptor_document_fe46ba4c8da20ac8, []int{1} + return fileDescriptor_document_cd57755e5c8cfbb2, []int{1} } func (m *Value) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Value.Unmarshal(m, b) @@ -553,7 +553,7 @@ func (m *ArrayValue) Reset() { *m = ArrayValue{} } func (m *ArrayValue) String() string { return proto.CompactTextString(m) } func (*ArrayValue) ProtoMessage() {} func (*ArrayValue) Descriptor() ([]byte, []int) { - return fileDescriptor_document_fe46ba4c8da20ac8, []int{2} + return fileDescriptor_document_cd57755e5c8cfbb2, []int{2} } func (m *ArrayValue) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ArrayValue.Unmarshal(m, b) @@ -598,7 +598,7 @@ func (m *MapValue) Reset() { *m = MapValue{} } func (m *MapValue) String() string { return proto.CompactTextString(m) } func (*MapValue) ProtoMessage() {} func (*MapValue) Descriptor() ([]byte, []int) { - return fileDescriptor_document_fe46ba4c8da20ac8, []int{3} + return fileDescriptor_document_cd57755e5c8cfbb2, []int{3} } func (m *MapValue) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MapValue.Unmarshal(m, b) @@ -635,10 +635,10 @@ func init() { } func init() { - proto.RegisterFile("google/firestore/v1beta1/document.proto", fileDescriptor_document_fe46ba4c8da20ac8) + proto.RegisterFile("google/firestore/v1beta1/document.proto", fileDescriptor_document_cd57755e5c8cfbb2) } -var fileDescriptor_document_fe46ba4c8da20ac8 = []byte{ +var fileDescriptor_document_cd57755e5c8cfbb2 = []byte{ // 655 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x94, 0xcf, 0x6e, 0xd3, 0x4c, 0x14, 0xc5, 0xe3, 0x24, 0x8d, 0x92, 0xeb, 0xb4, 0xfd, 0x3e, 0xb3, 0x89, 0xa2, 0x8a, 0x86, 0x00, diff --git a/vendor/google.golang.org/genproto/googleapis/firestore/v1beta1/firestore.pb.go b/vendor/google.golang.org/genproto/googleapis/firestore/v1beta1/firestore.pb.go index e2a279919..f65b37bcc 100644 --- a/vendor/google.golang.org/genproto/googleapis/firestore/v1beta1/firestore.pb.go +++ b/vendor/google.golang.org/genproto/googleapis/firestore/v1beta1/firestore.pb.go @@ -73,7 +73,7 @@ func (x TargetChange_TargetChangeType) String() string { return proto.EnumName(TargetChange_TargetChangeType_name, int32(x)) } func (TargetChange_TargetChangeType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_firestore_6b2b6098f593317e, []int{20, 0} + return fileDescriptor_firestore_0cb2a504439d3030, []int{20, 0} } // The request for [Firestore.GetDocument][google.firestore.v1beta1.Firestore.GetDocument]. @@ -102,7 +102,7 @@ func (m *GetDocumentRequest) Reset() { *m = GetDocumentRequest{} } func (m *GetDocumentRequest) String() string { return proto.CompactTextString(m) } func (*GetDocumentRequest) ProtoMessage() {} func (*GetDocumentRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_firestore_6b2b6098f593317e, []int{0} + return fileDescriptor_firestore_0cb2a504439d3030, []int{0} } func (m *GetDocumentRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetDocumentRequest.Unmarshal(m, b) @@ -290,7 +290,7 @@ func (m *ListDocumentsRequest) Reset() { *m = ListDocumentsRequest{} } func (m *ListDocumentsRequest) String() string { return proto.CompactTextString(m) } func (*ListDocumentsRequest) ProtoMessage() {} func (*ListDocumentsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_firestore_6b2b6098f593317e, []int{1} + return fileDescriptor_firestore_0cb2a504439d3030, []int{1} } func (m *ListDocumentsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListDocumentsRequest.Unmarshal(m, b) @@ -481,7 +481,7 @@ func (m *ListDocumentsResponse) Reset() { *m = ListDocumentsResponse{} } func (m *ListDocumentsResponse) String() string { return proto.CompactTextString(m) } func (*ListDocumentsResponse) ProtoMessage() {} func (*ListDocumentsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_firestore_6b2b6098f593317e, []int{2} + return fileDescriptor_firestore_0cb2a504439d3030, []int{2} } func (m *ListDocumentsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListDocumentsResponse.Unmarshal(m, b) @@ -543,7 +543,7 @@ func (m *CreateDocumentRequest) Reset() { *m = CreateDocumentRequest{} } func (m *CreateDocumentRequest) String() string { return proto.CompactTextString(m) } func (*CreateDocumentRequest) ProtoMessage() {} func (*CreateDocumentRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_firestore_6b2b6098f593317e, []int{3} + return fileDescriptor_firestore_0cb2a504439d3030, []int{3} } func (m *CreateDocumentRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateDocumentRequest.Unmarshal(m, b) @@ -628,7 +628,7 @@ func (m *UpdateDocumentRequest) Reset() { *m = UpdateDocumentRequest{} } func (m *UpdateDocumentRequest) String() string { return proto.CompactTextString(m) } func (*UpdateDocumentRequest) ProtoMessage() {} func (*UpdateDocumentRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_firestore_6b2b6098f593317e, []int{4} + return fileDescriptor_firestore_0cb2a504439d3030, []int{4} } func (m *UpdateDocumentRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UpdateDocumentRequest.Unmarshal(m, b) @@ -693,7 +693,7 @@ func (m *DeleteDocumentRequest) Reset() { *m = DeleteDocumentRequest{} } func (m *DeleteDocumentRequest) String() string { return proto.CompactTextString(m) } func (*DeleteDocumentRequest) ProtoMessage() {} func (*DeleteDocumentRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_firestore_6b2b6098f593317e, []int{5} + return fileDescriptor_firestore_0cb2a504439d3030, []int{5} } func (m *DeleteDocumentRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteDocumentRequest.Unmarshal(m, b) @@ -759,7 +759,7 @@ func (m *BatchGetDocumentsRequest) Reset() { *m = BatchGetDocumentsReque func (m *BatchGetDocumentsRequest) String() string { return proto.CompactTextString(m) } func (*BatchGetDocumentsRequest) ProtoMessage() {} func (*BatchGetDocumentsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_firestore_6b2b6098f593317e, []int{6} + return fileDescriptor_firestore_0cb2a504439d3030, []int{6} } func (m *BatchGetDocumentsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BatchGetDocumentsRequest.Unmarshal(m, b) @@ -966,7 +966,7 @@ func (m *BatchGetDocumentsResponse) Reset() { *m = BatchGetDocumentsResp func (m *BatchGetDocumentsResponse) String() string { return proto.CompactTextString(m) } func (*BatchGetDocumentsResponse) ProtoMessage() {} func (*BatchGetDocumentsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_firestore_6b2b6098f593317e, []int{7} + return fileDescriptor_firestore_0cb2a504439d3030, []int{7} } func (m *BatchGetDocumentsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BatchGetDocumentsResponse.Unmarshal(m, b) @@ -1124,7 +1124,7 @@ func (m *BeginTransactionRequest) Reset() { *m = BeginTransactionRequest func (m *BeginTransactionRequest) String() string { return proto.CompactTextString(m) } func (*BeginTransactionRequest) ProtoMessage() {} func (*BeginTransactionRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_firestore_6b2b6098f593317e, []int{8} + return fileDescriptor_firestore_0cb2a504439d3030, []int{8} } func (m *BeginTransactionRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BeginTransactionRequest.Unmarshal(m, b) @@ -1171,7 +1171,7 @@ func (m *BeginTransactionResponse) Reset() { *m = BeginTransactionRespon func (m *BeginTransactionResponse) String() string { return proto.CompactTextString(m) } func (*BeginTransactionResponse) ProtoMessage() {} func (*BeginTransactionResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_firestore_6b2b6098f593317e, []int{9} + return fileDescriptor_firestore_0cb2a504439d3030, []int{9} } func (m *BeginTransactionResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BeginTransactionResponse.Unmarshal(m, b) @@ -1218,7 +1218,7 @@ func (m *CommitRequest) Reset() { *m = CommitRequest{} } func (m *CommitRequest) String() string { return proto.CompactTextString(m) } func (*CommitRequest) ProtoMessage() {} func (*CommitRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_firestore_6b2b6098f593317e, []int{10} + return fileDescriptor_firestore_0cb2a504439d3030, []int{10} } func (m *CommitRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommitRequest.Unmarshal(m, b) @@ -1277,7 +1277,7 @@ func (m *CommitResponse) Reset() { *m = CommitResponse{} } func (m *CommitResponse) String() string { return proto.CompactTextString(m) } func (*CommitResponse) ProtoMessage() {} func (*CommitResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_firestore_6b2b6098f593317e, []int{11} + return fileDescriptor_firestore_0cb2a504439d3030, []int{11} } func (m *CommitResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommitResponse.Unmarshal(m, b) @@ -1327,7 +1327,7 @@ func (m *RollbackRequest) Reset() { *m = RollbackRequest{} } func (m *RollbackRequest) String() string { return proto.CompactTextString(m) } func (*RollbackRequest) ProtoMessage() {} func (*RollbackRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_firestore_6b2b6098f593317e, []int{12} + return fileDescriptor_firestore_0cb2a504439d3030, []int{12} } func (m *RollbackRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RollbackRequest.Unmarshal(m, b) @@ -1392,7 +1392,7 @@ func (m *RunQueryRequest) Reset() { *m = RunQueryRequest{} } func (m *RunQueryRequest) String() string { return proto.CompactTextString(m) } func (*RunQueryRequest) ProtoMessage() {} func (*RunQueryRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_firestore_6b2b6098f593317e, []int{13} + return fileDescriptor_firestore_0cb2a504439d3030, []int{13} } func (m *RunQueryRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RunQueryRequest.Unmarshal(m, b) @@ -1643,7 +1643,7 @@ func (m *RunQueryResponse) Reset() { *m = RunQueryResponse{} } func (m *RunQueryResponse) String() string { return proto.CompactTextString(m) } func (*RunQueryResponse) ProtoMessage() {} func (*RunQueryResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_firestore_6b2b6098f593317e, []int{14} + return fileDescriptor_firestore_0cb2a504439d3030, []int{14} } func (m *RunQueryResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RunQueryResponse.Unmarshal(m, b) @@ -1743,7 +1743,7 @@ func (m *WriteRequest) Reset() { *m = WriteRequest{} } func (m *WriteRequest) String() string { return proto.CompactTextString(m) } func (*WriteRequest) ProtoMessage() {} func (*WriteRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_firestore_6b2b6098f593317e, []int{15} + return fileDescriptor_firestore_0cb2a504439d3030, []int{15} } func (m *WriteRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_WriteRequest.Unmarshal(m, b) @@ -1824,7 +1824,7 @@ func (m *WriteResponse) Reset() { *m = WriteResponse{} } func (m *WriteResponse) String() string { return proto.CompactTextString(m) } func (*WriteResponse) ProtoMessage() {} func (*WriteResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_firestore_6b2b6098f593317e, []int{16} + return fileDescriptor_firestore_0cb2a504439d3030, []int{16} } func (m *WriteResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_WriteResponse.Unmarshal(m, b) @@ -1894,7 +1894,7 @@ func (m *ListenRequest) Reset() { *m = ListenRequest{} } func (m *ListenRequest) String() string { return proto.CompactTextString(m) } func (*ListenRequest) ProtoMessage() {} func (*ListenRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_firestore_6b2b6098f593317e, []int{17} + return fileDescriptor_firestore_0cb2a504439d3030, []int{17} } func (m *ListenRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListenRequest.Unmarshal(m, b) @@ -2054,7 +2054,7 @@ func (m *ListenResponse) Reset() { *m = ListenResponse{} } func (m *ListenResponse) String() string { return proto.CompactTextString(m) } func (*ListenResponse) ProtoMessage() {} func (*ListenResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_firestore_6b2b6098f593317e, []int{18} + return fileDescriptor_firestore_0cb2a504439d3030, []int{18} } func (m *ListenResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListenResponse.Unmarshal(m, b) @@ -2318,7 +2318,7 @@ func (m *Target) Reset() { *m = Target{} } func (m *Target) String() string { return proto.CompactTextString(m) } func (*Target) ProtoMessage() {} func (*Target) Descriptor() ([]byte, []int) { - return fileDescriptor_firestore_6b2b6098f593317e, []int{19} + return fileDescriptor_firestore_0cb2a504439d3030, []int{19} } func (m *Target) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Target.Unmarshal(m, b) @@ -2562,7 +2562,7 @@ func (m *Target_DocumentsTarget) Reset() { *m = Target_DocumentsTarget{} func (m *Target_DocumentsTarget) String() string { return proto.CompactTextString(m) } func (*Target_DocumentsTarget) ProtoMessage() {} func (*Target_DocumentsTarget) Descriptor() ([]byte, []int) { - return fileDescriptor_firestore_6b2b6098f593317e, []int{19, 0} + return fileDescriptor_firestore_0cb2a504439d3030, []int{19, 0} } func (m *Target_DocumentsTarget) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Target_DocumentsTarget.Unmarshal(m, b) @@ -2612,7 +2612,7 @@ func (m *Target_QueryTarget) Reset() { *m = Target_QueryTarget{} } func (m *Target_QueryTarget) String() string { return proto.CompactTextString(m) } func (*Target_QueryTarget) ProtoMessage() {} func (*Target_QueryTarget) Descriptor() ([]byte, []int) { - return fileDescriptor_firestore_6b2b6098f593317e, []int{19, 1} + return fileDescriptor_firestore_0cb2a504439d3030, []int{19, 1} } func (m *Target_QueryTarget) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Target_QueryTarget.Unmarshal(m, b) @@ -2759,7 +2759,7 @@ func (m *TargetChange) Reset() { *m = TargetChange{} } func (m *TargetChange) String() string { return proto.CompactTextString(m) } func (*TargetChange) ProtoMessage() {} func (*TargetChange) Descriptor() ([]byte, []int) { - return fileDescriptor_firestore_6b2b6098f593317e, []int{20} + return fileDescriptor_firestore_0cb2a504439d3030, []int{20} } func (m *TargetChange) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TargetChange.Unmarshal(m, b) @@ -2835,7 +2835,7 @@ func (m *ListCollectionIdsRequest) Reset() { *m = ListCollectionIdsReque func (m *ListCollectionIdsRequest) String() string { return proto.CompactTextString(m) } func (*ListCollectionIdsRequest) ProtoMessage() {} func (*ListCollectionIdsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_firestore_6b2b6098f593317e, []int{21} + return fileDescriptor_firestore_0cb2a504439d3030, []int{21} } func (m *ListCollectionIdsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListCollectionIdsRequest.Unmarshal(m, b) @@ -2891,7 +2891,7 @@ func (m *ListCollectionIdsResponse) Reset() { *m = ListCollectionIdsResp func (m *ListCollectionIdsResponse) String() string { return proto.CompactTextString(m) } func (*ListCollectionIdsResponse) ProtoMessage() {} func (*ListCollectionIdsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_firestore_6b2b6098f593317e, []int{22} + return fileDescriptor_firestore_0cb2a504439d3030, []int{22} } func (m *ListCollectionIdsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListCollectionIdsResponse.Unmarshal(m, b) @@ -3576,10 +3576,10 @@ var _Firestore_serviceDesc = grpc.ServiceDesc{ } func init() { - proto.RegisterFile("google/firestore/v1beta1/firestore.proto", fileDescriptor_firestore_6b2b6098f593317e) + proto.RegisterFile("google/firestore/v1beta1/firestore.proto", fileDescriptor_firestore_0cb2a504439d3030) } -var fileDescriptor_firestore_6b2b6098f593317e = []byte{ +var fileDescriptor_firestore_0cb2a504439d3030 = []byte{ // 2214 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x5a, 0xcd, 0x8f, 0x1b, 0x49, 0x15, 0x77, 0xb5, 0x3f, 0xc6, 0x7e, 0xfe, 0x18, 0x6f, 0x91, 0x64, 0x1d, 0x27, 0x4b, 0x86, 0x5e, diff --git a/vendor/google.golang.org/genproto/googleapis/firestore/v1beta1/query.pb.go b/vendor/google.golang.org/genproto/googleapis/firestore/v1beta1/query.pb.go index 8b6d255fa..de6f7d83c 100644 --- a/vendor/google.golang.org/genproto/googleapis/firestore/v1beta1/query.pb.go +++ b/vendor/google.golang.org/genproto/googleapis/firestore/v1beta1/query.pb.go @@ -47,7 +47,7 @@ func (x StructuredQuery_Direction) String() string { return proto.EnumName(StructuredQuery_Direction_name, int32(x)) } func (StructuredQuery_Direction) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_query_4a614d17d9e42012, []int{0, 0} + return fileDescriptor_query_aa3d8d54536831bd, []int{0, 0} } // A composite filter operator. @@ -73,7 +73,7 @@ func (x StructuredQuery_CompositeFilter_Operator) String() string { return proto.EnumName(StructuredQuery_CompositeFilter_Operator_name, int32(x)) } func (StructuredQuery_CompositeFilter_Operator) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_query_4a614d17d9e42012, []int{0, 2, 0} + return fileDescriptor_query_aa3d8d54536831bd, []int{0, 2, 0} } // A field filter operator. @@ -120,7 +120,7 @@ func (x StructuredQuery_FieldFilter_Operator) String() string { return proto.EnumName(StructuredQuery_FieldFilter_Operator_name, int32(x)) } func (StructuredQuery_FieldFilter_Operator) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_query_4a614d17d9e42012, []int{0, 3, 0} + return fileDescriptor_query_aa3d8d54536831bd, []int{0, 3, 0} } // A unary operator. @@ -150,7 +150,7 @@ func (x StructuredQuery_UnaryFilter_Operator) String() string { return proto.EnumName(StructuredQuery_UnaryFilter_Operator_name, int32(x)) } func (StructuredQuery_UnaryFilter_Operator) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_query_4a614d17d9e42012, []int{0, 4, 0} + return fileDescriptor_query_aa3d8d54536831bd, []int{0, 4, 0} } // A Firestore query. @@ -203,7 +203,7 @@ func (m *StructuredQuery) Reset() { *m = StructuredQuery{} } func (m *StructuredQuery) String() string { return proto.CompactTextString(m) } func (*StructuredQuery) ProtoMessage() {} func (*StructuredQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_query_4a614d17d9e42012, []int{0} + return fileDescriptor_query_aa3d8d54536831bd, []int{0} } func (m *StructuredQuery) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_StructuredQuery.Unmarshal(m, b) @@ -297,7 +297,7 @@ func (m *StructuredQuery_CollectionSelector) Reset() { *m = StructuredQu func (m *StructuredQuery_CollectionSelector) String() string { return proto.CompactTextString(m) } func (*StructuredQuery_CollectionSelector) ProtoMessage() {} func (*StructuredQuery_CollectionSelector) Descriptor() ([]byte, []int) { - return fileDescriptor_query_4a614d17d9e42012, []int{0, 0} + return fileDescriptor_query_aa3d8d54536831bd, []int{0, 0} } func (m *StructuredQuery_CollectionSelector) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_StructuredQuery_CollectionSelector.Unmarshal(m, b) @@ -349,7 +349,7 @@ func (m *StructuredQuery_Filter) Reset() { *m = StructuredQuery_Filter{} func (m *StructuredQuery_Filter) String() string { return proto.CompactTextString(m) } func (*StructuredQuery_Filter) ProtoMessage() {} func (*StructuredQuery_Filter) Descriptor() ([]byte, []int) { - return fileDescriptor_query_4a614d17d9e42012, []int{0, 1} + return fileDescriptor_query_aa3d8d54536831bd, []int{0, 1} } func (m *StructuredQuery_Filter) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_StructuredQuery_Filter.Unmarshal(m, b) @@ -528,7 +528,7 @@ func (m *StructuredQuery_CompositeFilter) Reset() { *m = StructuredQuery func (m *StructuredQuery_CompositeFilter) String() string { return proto.CompactTextString(m) } func (*StructuredQuery_CompositeFilter) ProtoMessage() {} func (*StructuredQuery_CompositeFilter) Descriptor() ([]byte, []int) { - return fileDescriptor_query_4a614d17d9e42012, []int{0, 2} + return fileDescriptor_query_aa3d8d54536831bd, []int{0, 2} } func (m *StructuredQuery_CompositeFilter) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_StructuredQuery_CompositeFilter.Unmarshal(m, b) @@ -579,7 +579,7 @@ func (m *StructuredQuery_FieldFilter) Reset() { *m = StructuredQuery_Fie func (m *StructuredQuery_FieldFilter) String() string { return proto.CompactTextString(m) } func (*StructuredQuery_FieldFilter) ProtoMessage() {} func (*StructuredQuery_FieldFilter) Descriptor() ([]byte, []int) { - return fileDescriptor_query_4a614d17d9e42012, []int{0, 3} + return fileDescriptor_query_aa3d8d54536831bd, []int{0, 3} } func (m *StructuredQuery_FieldFilter) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_StructuredQuery_FieldFilter.Unmarshal(m, b) @@ -638,7 +638,7 @@ func (m *StructuredQuery_UnaryFilter) Reset() { *m = StructuredQuery_Una func (m *StructuredQuery_UnaryFilter) String() string { return proto.CompactTextString(m) } func (*StructuredQuery_UnaryFilter) ProtoMessage() {} func (*StructuredQuery_UnaryFilter) Descriptor() ([]byte, []int) { - return fileDescriptor_query_4a614d17d9e42012, []int{0, 4} + return fileDescriptor_query_aa3d8d54536831bd, []int{0, 4} } func (m *StructuredQuery_UnaryFilter) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_StructuredQuery_UnaryFilter.Unmarshal(m, b) @@ -759,7 +759,7 @@ func (m *StructuredQuery_Order) Reset() { *m = StructuredQuery_Order{} } func (m *StructuredQuery_Order) String() string { return proto.CompactTextString(m) } func (*StructuredQuery_Order) ProtoMessage() {} func (*StructuredQuery_Order) Descriptor() ([]byte, []int) { - return fileDescriptor_query_4a614d17d9e42012, []int{0, 5} + return fileDescriptor_query_aa3d8d54536831bd, []int{0, 5} } func (m *StructuredQuery_Order) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_StructuredQuery_Order.Unmarshal(m, b) @@ -805,7 +805,7 @@ func (m *StructuredQuery_FieldReference) Reset() { *m = StructuredQuery_ func (m *StructuredQuery_FieldReference) String() string { return proto.CompactTextString(m) } func (*StructuredQuery_FieldReference) ProtoMessage() {} func (*StructuredQuery_FieldReference) Descriptor() ([]byte, []int) { - return fileDescriptor_query_4a614d17d9e42012, []int{0, 6} + return fileDescriptor_query_aa3d8d54536831bd, []int{0, 6} } func (m *StructuredQuery_FieldReference) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_StructuredQuery_FieldReference.Unmarshal(m, b) @@ -848,7 +848,7 @@ func (m *StructuredQuery_Projection) Reset() { *m = StructuredQuery_Proj func (m *StructuredQuery_Projection) String() string { return proto.CompactTextString(m) } func (*StructuredQuery_Projection) ProtoMessage() {} func (*StructuredQuery_Projection) Descriptor() ([]byte, []int) { - return fileDescriptor_query_4a614d17d9e42012, []int{0, 7} + return fileDescriptor_query_aa3d8d54536831bd, []int{0, 7} } func (m *StructuredQuery_Projection) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_StructuredQuery_Projection.Unmarshal(m, b) @@ -894,7 +894,7 @@ func (m *Cursor) Reset() { *m = Cursor{} } func (m *Cursor) String() string { return proto.CompactTextString(m) } func (*Cursor) ProtoMessage() {} func (*Cursor) Descriptor() ([]byte, []int) { - return fileDescriptor_query_4a614d17d9e42012, []int{1} + return fileDescriptor_query_aa3d8d54536831bd, []int{1} } func (m *Cursor) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Cursor.Unmarshal(m, b) @@ -946,10 +946,10 @@ func init() { } func init() { - proto.RegisterFile("google/firestore/v1beta1/query.proto", fileDescriptor_query_4a614d17d9e42012) + proto.RegisterFile("google/firestore/v1beta1/query.proto", fileDescriptor_query_aa3d8d54536831bd) } -var fileDescriptor_query_4a614d17d9e42012 = []byte{ +var fileDescriptor_query_aa3d8d54536831bd = []byte{ // 985 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x96, 0xdd, 0x6e, 0xe3, 0x44, 0x14, 0xc7, 0x6b, 0xa7, 0xf9, 0x3a, 0x69, 0xd3, 0x30, 0x82, 0x95, 0x09, 0xcb, 0x52, 0x05, 0xa4, diff --git a/vendor/google.golang.org/genproto/googleapis/firestore/v1beta1/write.pb.go b/vendor/google.golang.org/genproto/googleapis/firestore/v1beta1/write.pb.go index fc8360891..e03ff8138 100644 --- a/vendor/google.golang.org/genproto/googleapis/firestore/v1beta1/write.pb.go +++ b/vendor/google.golang.org/genproto/googleapis/firestore/v1beta1/write.pb.go @@ -44,7 +44,7 @@ func (x DocumentTransform_FieldTransform_ServerValue) String() string { return proto.EnumName(DocumentTransform_FieldTransform_ServerValue_name, int32(x)) } func (DocumentTransform_FieldTransform_ServerValue) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_write_20ad488dab963f67, []int{1, 0, 0} + return fileDescriptor_write_cc36c9fc71610087, []int{1, 0, 0} } // A write on a document. @@ -80,7 +80,7 @@ func (m *Write) Reset() { *m = Write{} } func (m *Write) String() string { return proto.CompactTextString(m) } func (*Write) ProtoMessage() {} func (*Write) Descriptor() ([]byte, []int) { - return fileDescriptor_write_20ad488dab963f67, []int{0} + return fileDescriptor_write_cc36c9fc71610087, []int{0} } func (m *Write) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Write.Unmarshal(m, b) @@ -270,7 +270,7 @@ func (m *DocumentTransform) Reset() { *m = DocumentTransform{} } func (m *DocumentTransform) String() string { return proto.CompactTextString(m) } func (*DocumentTransform) ProtoMessage() {} func (*DocumentTransform) Descriptor() ([]byte, []int) { - return fileDescriptor_write_20ad488dab963f67, []int{1} + return fileDescriptor_write_cc36c9fc71610087, []int{1} } func (m *DocumentTransform) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DocumentTransform.Unmarshal(m, b) @@ -313,6 +313,9 @@ type DocumentTransform_FieldTransform struct { // // Types that are valid to be assigned to TransformType: // *DocumentTransform_FieldTransform_SetToServerValue + // *DocumentTransform_FieldTransform_Increment + // *DocumentTransform_FieldTransform_Maximum + // *DocumentTransform_FieldTransform_Minimum // *DocumentTransform_FieldTransform_AppendMissingElements // *DocumentTransform_FieldTransform_RemoveAllFromArray TransformType isDocumentTransform_FieldTransform_TransformType `protobuf_oneof:"transform_type"` @@ -325,7 +328,7 @@ func (m *DocumentTransform_FieldTransform) Reset() { *m = DocumentTransf func (m *DocumentTransform_FieldTransform) String() string { return proto.CompactTextString(m) } func (*DocumentTransform_FieldTransform) ProtoMessage() {} func (*DocumentTransform_FieldTransform) Descriptor() ([]byte, []int) { - return fileDescriptor_write_20ad488dab963f67, []int{1, 0} + return fileDescriptor_write_cc36c9fc71610087, []int{1, 0} } func (m *DocumentTransform_FieldTransform) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DocumentTransform_FieldTransform.Unmarshal(m, b) @@ -360,6 +363,18 @@ type DocumentTransform_FieldTransform_SetToServerValue struct { SetToServerValue DocumentTransform_FieldTransform_ServerValue `protobuf:"varint,2,opt,name=set_to_server_value,json=setToServerValue,proto3,enum=google.firestore.v1beta1.DocumentTransform_FieldTransform_ServerValue,oneof"` } +type DocumentTransform_FieldTransform_Increment struct { + Increment *Value `protobuf:"bytes,3,opt,name=increment,proto3,oneof"` +} + +type DocumentTransform_FieldTransform_Maximum struct { + Maximum *Value `protobuf:"bytes,4,opt,name=maximum,proto3,oneof"` +} + +type DocumentTransform_FieldTransform_Minimum struct { + Minimum *Value `protobuf:"bytes,5,opt,name=minimum,proto3,oneof"` +} + type DocumentTransform_FieldTransform_AppendMissingElements struct { AppendMissingElements *ArrayValue `protobuf:"bytes,6,opt,name=append_missing_elements,json=appendMissingElements,proto3,oneof"` } @@ -371,6 +386,13 @@ type DocumentTransform_FieldTransform_RemoveAllFromArray struct { func (*DocumentTransform_FieldTransform_SetToServerValue) isDocumentTransform_FieldTransform_TransformType() { } +func (*DocumentTransform_FieldTransform_Increment) isDocumentTransform_FieldTransform_TransformType() { +} + +func (*DocumentTransform_FieldTransform_Maximum) isDocumentTransform_FieldTransform_TransformType() {} + +func (*DocumentTransform_FieldTransform_Minimum) isDocumentTransform_FieldTransform_TransformType() {} + func (*DocumentTransform_FieldTransform_AppendMissingElements) isDocumentTransform_FieldTransform_TransformType() { } @@ -391,6 +413,27 @@ func (m *DocumentTransform_FieldTransform) GetSetToServerValue() DocumentTransfo return DocumentTransform_FieldTransform_SERVER_VALUE_UNSPECIFIED } +func (m *DocumentTransform_FieldTransform) GetIncrement() *Value { + if x, ok := m.GetTransformType().(*DocumentTransform_FieldTransform_Increment); ok { + return x.Increment + } + return nil +} + +func (m *DocumentTransform_FieldTransform) GetMaximum() *Value { + if x, ok := m.GetTransformType().(*DocumentTransform_FieldTransform_Maximum); ok { + return x.Maximum + } + return nil +} + +func (m *DocumentTransform_FieldTransform) GetMinimum() *Value { + if x, ok := m.GetTransformType().(*DocumentTransform_FieldTransform_Minimum); ok { + return x.Minimum + } + return nil +} + func (m *DocumentTransform_FieldTransform) GetAppendMissingElements() *ArrayValue { if x, ok := m.GetTransformType().(*DocumentTransform_FieldTransform_AppendMissingElements); ok { return x.AppendMissingElements @@ -409,6 +452,9 @@ func (m *DocumentTransform_FieldTransform) GetRemoveAllFromArray() *ArrayValue { func (*DocumentTransform_FieldTransform) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { return _DocumentTransform_FieldTransform_OneofMarshaler, _DocumentTransform_FieldTransform_OneofUnmarshaler, _DocumentTransform_FieldTransform_OneofSizer, []interface{}{ (*DocumentTransform_FieldTransform_SetToServerValue)(nil), + (*DocumentTransform_FieldTransform_Increment)(nil), + (*DocumentTransform_FieldTransform_Maximum)(nil), + (*DocumentTransform_FieldTransform_Minimum)(nil), (*DocumentTransform_FieldTransform_AppendMissingElements)(nil), (*DocumentTransform_FieldTransform_RemoveAllFromArray)(nil), } @@ -421,6 +467,21 @@ func _DocumentTransform_FieldTransform_OneofMarshaler(msg proto.Message, b *prot case *DocumentTransform_FieldTransform_SetToServerValue: b.EncodeVarint(2<<3 | proto.WireVarint) b.EncodeVarint(uint64(x.SetToServerValue)) + case *DocumentTransform_FieldTransform_Increment: + b.EncodeVarint(3<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Increment); err != nil { + return err + } + case *DocumentTransform_FieldTransform_Maximum: + b.EncodeVarint(4<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Maximum); err != nil { + return err + } + case *DocumentTransform_FieldTransform_Minimum: + b.EncodeVarint(5<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Minimum); err != nil { + return err + } case *DocumentTransform_FieldTransform_AppendMissingElements: b.EncodeVarint(6<<3 | proto.WireBytes) if err := b.EncodeMessage(x.AppendMissingElements); err != nil { @@ -448,6 +509,30 @@ func _DocumentTransform_FieldTransform_OneofUnmarshaler(msg proto.Message, tag, x, err := b.DecodeVarint() m.TransformType = &DocumentTransform_FieldTransform_SetToServerValue{DocumentTransform_FieldTransform_ServerValue(x)} return true, err + case 3: // transform_type.increment + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(Value) + err := b.DecodeMessage(msg) + m.TransformType = &DocumentTransform_FieldTransform_Increment{msg} + return true, err + case 4: // transform_type.maximum + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(Value) + err := b.DecodeMessage(msg) + m.TransformType = &DocumentTransform_FieldTransform_Maximum{msg} + return true, err + case 5: // transform_type.minimum + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(Value) + err := b.DecodeMessage(msg) + m.TransformType = &DocumentTransform_FieldTransform_Minimum{msg} + return true, err case 6: // transform_type.append_missing_elements if wire != proto.WireBytes { return true, proto.ErrInternalBadWireType @@ -476,6 +561,21 @@ func _DocumentTransform_FieldTransform_OneofSizer(msg proto.Message) (n int) { case *DocumentTransform_FieldTransform_SetToServerValue: n += 1 // tag and wire n += proto.SizeVarint(uint64(x.SetToServerValue)) + case *DocumentTransform_FieldTransform_Increment: + s := proto.Size(x.Increment) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *DocumentTransform_FieldTransform_Maximum: + s := proto.Size(x.Maximum) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *DocumentTransform_FieldTransform_Minimum: + s := proto.Size(x.Minimum) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s case *DocumentTransform_FieldTransform_AppendMissingElements: s := proto.Size(x.AppendMissingElements) n += 1 // tag and wire @@ -513,7 +613,7 @@ func (m *WriteResult) Reset() { *m = WriteResult{} } func (m *WriteResult) String() string { return proto.CompactTextString(m) } func (*WriteResult) ProtoMessage() {} func (*WriteResult) Descriptor() ([]byte, []int) { - return fileDescriptor_write_20ad488dab963f67, []int{2} + return fileDescriptor_write_cc36c9fc71610087, []int{2} } func (m *WriteResult) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_WriteResult.Unmarshal(m, b) @@ -572,7 +672,7 @@ func (m *DocumentChange) Reset() { *m = DocumentChange{} } func (m *DocumentChange) String() string { return proto.CompactTextString(m) } func (*DocumentChange) ProtoMessage() {} func (*DocumentChange) Descriptor() ([]byte, []int) { - return fileDescriptor_write_20ad488dab963f67, []int{3} + return fileDescriptor_write_cc36c9fc71610087, []int{3} } func (m *DocumentChange) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DocumentChange.Unmarshal(m, b) @@ -638,7 +738,7 @@ func (m *DocumentDelete) Reset() { *m = DocumentDelete{} } func (m *DocumentDelete) String() string { return proto.CompactTextString(m) } func (*DocumentDelete) ProtoMessage() {} func (*DocumentDelete) Descriptor() ([]byte, []int) { - return fileDescriptor_write_20ad488dab963f67, []int{4} + return fileDescriptor_write_cc36c9fc71610087, []int{4} } func (m *DocumentDelete) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DocumentDelete.Unmarshal(m, b) @@ -705,7 +805,7 @@ func (m *DocumentRemove) Reset() { *m = DocumentRemove{} } func (m *DocumentRemove) String() string { return proto.CompactTextString(m) } func (*DocumentRemove) ProtoMessage() {} func (*DocumentRemove) Descriptor() ([]byte, []int) { - return fileDescriptor_write_20ad488dab963f67, []int{5} + return fileDescriptor_write_cc36c9fc71610087, []int{5} } func (m *DocumentRemove) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DocumentRemove.Unmarshal(m, b) @@ -764,7 +864,7 @@ func (m *ExistenceFilter) Reset() { *m = ExistenceFilter{} } func (m *ExistenceFilter) String() string { return proto.CompactTextString(m) } func (*ExistenceFilter) ProtoMessage() {} func (*ExistenceFilter) Descriptor() ([]byte, []int) { - return fileDescriptor_write_20ad488dab963f67, []int{6} + return fileDescriptor_write_cc36c9fc71610087, []int{6} } func (m *ExistenceFilter) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ExistenceFilter.Unmarshal(m, b) @@ -811,61 +911,64 @@ func init() { } func init() { - proto.RegisterFile("google/firestore/v1beta1/write.proto", fileDescriptor_write_20ad488dab963f67) + proto.RegisterFile("google/firestore/v1beta1/write.proto", fileDescriptor_write_cc36c9fc71610087) } -var fileDescriptor_write_20ad488dab963f67 = []byte{ - // 826 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x95, 0x41, 0x6f, 0xe3, 0x44, - 0x14, 0xc7, 0x9b, 0xb4, 0x09, 0xcd, 0x0b, 0x6a, 0xbd, 0x03, 0x2b, 0xac, 0xd0, 0x65, 0xab, 0x68, - 0x81, 0x4a, 0x20, 0x47, 0x2d, 0x07, 0x24, 0x16, 0x90, 0x9a, 0xd6, 0x69, 0x2b, 0xb6, 0x28, 0x3b, - 0x49, 0x83, 0x40, 0x15, 0xa3, 0x69, 0xfc, 0xe2, 0x5a, 0x6b, 0x7b, 0xac, 0x99, 0x49, 0x97, 0xfd, - 0x1c, 0x5c, 0xb8, 0x70, 0xe1, 0xc8, 0x99, 0x03, 0x9f, 0x01, 0x89, 0x23, 0xdf, 0x07, 0x79, 0xc6, - 0xf6, 0xa6, 0xac, 0x42, 0xe8, 0x8a, 0x5b, 0xde, 0xcc, 0xff, 0xfd, 0xde, 0x7f, 0xe6, 0xcd, 0x73, - 0xe0, 0x51, 0x28, 0x44, 0x18, 0x63, 0x6f, 0x16, 0x49, 0x54, 0x5a, 0x48, 0xec, 0xdd, 0xec, 0x5f, - 0xa1, 0xe6, 0xfb, 0xbd, 0xe7, 0x32, 0xd2, 0xe8, 0x65, 0x52, 0x68, 0x41, 0x5c, 0xab, 0xf2, 0x2a, - 0x95, 0x57, 0xa8, 0x3a, 0x3b, 0x45, 0x3e, 0xcf, 0xa2, 0x1e, 0x4f, 0x53, 0xa1, 0xb9, 0x8e, 0x44, - 0xaa, 0x6c, 0x5e, 0xe7, 0xfd, 0xa5, 0xf4, 0xa9, 0x48, 0x12, 0x91, 0x16, 0xb2, 0x0f, 0x97, 0xca, - 0x02, 0x31, 0x9d, 0x27, 0x98, 0xea, 0x42, 0xf8, 0xb0, 0x10, 0x9a, 0xe8, 0x6a, 0x3e, 0xeb, 0xe9, - 0x28, 0x41, 0xa5, 0x79, 0x92, 0x59, 0x41, 0xf7, 0xaf, 0x3a, 0x34, 0xbe, 0xc9, 0x8d, 0x93, 0xcf, - 0xa1, 0x39, 0xcf, 0x02, 0xae, 0xd1, 0xad, 0xed, 0xd6, 0xf6, 0xda, 0x07, 0x5d, 0x6f, 0xd9, 0x19, - 0xbc, 0xe3, 0xa2, 0xc8, 0xe9, 0x1a, 0x2d, 0x72, 0x88, 0x0b, 0xcd, 0x00, 0x63, 0xd4, 0xe8, 0xd6, - 0x77, 0x6b, 0x7b, 0xad, 0x7c, 0xc7, 0xc6, 0xe4, 0x2b, 0x68, 0x69, 0xc9, 0x53, 0x35, 0x13, 0x32, - 0x71, 0x9b, 0x06, 0xfd, 0xd1, 0x6a, 0xf4, 0xb8, 0x4c, 0x39, 0x5d, 0xa3, 0x2f, 0xf3, 0xc9, 0x09, - 0xb4, 0x6d, 0x41, 0x96, 0x70, 0xf5, 0xcc, 0x5d, 0x37, 0xb8, 0x0f, 0x56, 0xe3, 0xce, 0xb9, 0x7a, - 0x46, 0xc1, 0xa6, 0xe6, 0xbf, 0xc9, 0x53, 0x70, 0xa6, 0x73, 0x29, 0x31, 0xd5, 0xac, 0xbc, 0x32, - 0x77, 0x63, 0x15, 0x6d, 0x28, 0x71, 0x2a, 0xd2, 0x20, 0xca, 0x3b, 0x46, 0xb7, 0x8b, 0xfc, 0xb2, - 0x44, 0xbf, 0x0d, 0x2d, 0x91, 0xa1, 0x34, 0xfd, 0xec, 0xfe, 0xb9, 0x01, 0xf7, 0x5e, 0x39, 0x0b, - 0xe9, 0xc0, 0x66, 0x55, 0x2d, 0xbf, 0xe5, 0x16, 0xad, 0x62, 0x82, 0xe0, 0xcc, 0x22, 0x8c, 0x03, - 0x56, 0x9d, 0x56, 0xb9, 0xf5, 0xdd, 0xf5, 0xbd, 0xf6, 0xc1, 0x67, 0x77, 0xb8, 0x2e, 0x6f, 0x90, - 0x33, 0xaa, 0x90, 0x6e, 0xcf, 0x6e, 0xc5, 0xaa, 0xf3, 0xdb, 0x3a, 0x6c, 0xdd, 0xd6, 0x90, 0x07, - 0x00, 0xb6, 0x72, 0xc6, 0xf5, 0x75, 0xe1, 0xab, 0x65, 0x56, 0x86, 0x5c, 0x5f, 0x93, 0xe7, 0xf0, - 0x96, 0x42, 0xcd, 0xb4, 0x60, 0x0a, 0xe5, 0x0d, 0x4a, 0x76, 0xc3, 0xe3, 0xb9, 0xed, 0xf3, 0xd6, - 0xc1, 0xe0, 0xf5, 0xbd, 0x79, 0x23, 0x83, 0x9b, 0xe4, 0xb4, 0xd3, 0x35, 0xea, 0x28, 0xd4, 0x63, - 0xb1, 0xb0, 0x46, 0xbe, 0x87, 0x77, 0x78, 0x96, 0x61, 0x1a, 0xb0, 0x24, 0x52, 0x2a, 0x4a, 0x43, - 0x86, 0x31, 0xe6, 0x44, 0x55, 0xbc, 0xa3, 0x47, 0xcb, 0x8b, 0x1f, 0x4a, 0xc9, 0x5f, 0x94, 0xe8, - 0xfb, 0x16, 0x73, 0x6e, 0x29, 0x7e, 0x01, 0x21, 0xdf, 0xc2, 0x7d, 0x89, 0x89, 0xb8, 0x41, 0xc6, - 0xe3, 0x98, 0xcd, 0xa4, 0x48, 0x18, 0xcf, 0xd3, 0xdc, 0x37, 0xee, 0x44, 0x27, 0x16, 0x72, 0x18, - 0xc7, 0x03, 0x29, 0x12, 0xb3, 0xd5, 0xfd, 0x02, 0xda, 0x8b, 0x27, 0xd9, 0x01, 0x77, 0xe4, 0xd3, - 0x89, 0x4f, 0xd9, 0xe4, 0xf0, 0xc9, 0x85, 0xcf, 0x2e, 0xbe, 0x1e, 0x0d, 0xfd, 0xa3, 0xb3, 0xc1, - 0x99, 0x7f, 0xec, 0xac, 0x11, 0x07, 0xde, 0xa4, 0xfe, 0xd3, 0x0b, 0x7f, 0x34, 0x66, 0xe3, 0xb3, - 0x73, 0xdf, 0xa9, 0xf5, 0x1d, 0xd8, 0xaa, 0x5e, 0x01, 0xd3, 0x2f, 0x32, 0xec, 0xfe, 0x54, 0x83, - 0xb6, 0x99, 0x53, 0x8a, 0x6a, 0x1e, 0x6b, 0xf2, 0xb8, 0x1a, 0x84, 0x7c, 0xa2, 0x8b, 0x91, 0xed, - 0x94, 0x8e, 0xcb, 0x71, 0xf7, 0xc6, 0xe5, 0xb8, 0x97, 0x8f, 0x3f, 0x5f, 0x20, 0x4f, 0xe0, 0xde, - 0x4b, 0xbc, 0x34, 0xc0, 0xf2, 0xad, 0x3d, 0x5c, 0x7e, 0x68, 0x73, 0x14, 0xea, 0x54, 0x99, 0xd6, - 0x89, 0xea, 0xfe, 0x5c, 0x83, 0xad, 0xb2, 0xd7, 0x47, 0xd7, 0x3c, 0x0d, 0x91, 0x7c, 0xf9, 0x8f, - 0x77, 0xfe, 0x9f, 0xbe, 0x26, 0x0b, 0xb3, 0xf0, 0x00, 0x40, 0x73, 0x19, 0xa2, 0x66, 0x51, 0xa0, - 0xdc, 0xc6, 0xee, 0xfa, 0x5e, 0x83, 0xb6, 0xec, 0xca, 0x59, 0xa0, 0xc8, 0xc7, 0x50, 0xdc, 0x79, - 0xc0, 0x16, 0x64, 0x4d, 0x23, 0x73, 0x8a, 0x9d, 0x71, 0xa9, 0xee, 0xfe, 0xb8, 0xe0, 0xef, 0xd8, - 0x7e, 0x93, 0xfe, 0x6d, 0x0e, 0xef, 0x04, 0x27, 0x9f, 0x42, 0x4b, 0x22, 0x0f, 0x6c, 0x17, 0x36, - 0x56, 0x76, 0x61, 0x33, 0x17, 0xe7, 0xe1, 0x2d, 0x57, 0xd4, 0x50, 0x5f, 0xc3, 0x55, 0xfd, 0xff, - 0x76, 0x75, 0x0c, 0xdb, 0xfe, 0x0f, 0x91, 0xd2, 0x98, 0x4e, 0x71, 0x10, 0xc5, 0x1a, 0x25, 0x79, - 0x17, 0x5a, 0x55, 0x45, 0x63, 0xab, 0x41, 0x37, 0xcb, 0x56, 0x90, 0xb7, 0xa1, 0x31, 0x15, 0xf3, - 0x54, 0x9b, 0xaf, 0x41, 0x83, 0xda, 0xa0, 0xff, 0x7b, 0x0d, 0x76, 0xa6, 0x22, 0x59, 0xda, 0xf2, - 0x3e, 0x98, 0xa7, 0x3c, 0xcc, 0x9d, 0x0c, 0x6b, 0xdf, 0x1d, 0x16, 0xba, 0x50, 0xc4, 0x3c, 0x0d, - 0x3d, 0x21, 0xc3, 0x5e, 0x88, 0xa9, 0xf1, 0xd9, 0xb3, 0x5b, 0x3c, 0x8b, 0xd4, 0xab, 0x7f, 0x76, - 0x8f, 0xab, 0x95, 0x5f, 0xea, 0x1b, 0x27, 0x47, 0x83, 0xd1, 0xaf, 0xf5, 0xf7, 0x4e, 0x2c, 0xea, - 0x28, 0x16, 0xf3, 0xc0, 0x1b, 0x54, 0x85, 0x27, 0xfb, 0xfd, 0x3c, 0xe3, 0x8f, 0x52, 0x70, 0x69, - 0x04, 0x97, 0x95, 0xe0, 0x72, 0x62, 0x91, 0x57, 0x4d, 0x53, 0xf6, 0x93, 0xbf, 0x03, 0x00, 0x00, - 0xff, 0xff, 0xc3, 0x26, 0x20, 0x51, 0xe7, 0x07, 0x00, 0x00, +var fileDescriptor_write_cc36c9fc71610087 = []byte{ + // 866 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x55, 0xdd, 0x6e, 0xe3, 0x44, + 0x14, 0x6e, 0xd2, 0x26, 0xdb, 0x9c, 0xa0, 0xd6, 0x3b, 0xb0, 0xc2, 0x0a, 0x5d, 0xb6, 0x8a, 0x16, + 0xa8, 0x04, 0x72, 0xd4, 0x72, 0x81, 0xc4, 0xf2, 0xa3, 0xa6, 0x75, 0xda, 0x8a, 0x2d, 0xca, 0x3a, + 0x69, 0x10, 0xa8, 0xc2, 0x9a, 0xc6, 0x27, 0xae, 0xb5, 0xf6, 0x8c, 0x35, 0x33, 0xee, 0xee, 0xbe, + 0x01, 0xf7, 0xdc, 0x70, 0xc3, 0x0d, 0x97, 0x3c, 0x01, 0xcf, 0xc0, 0x3d, 0xcf, 0xc1, 0x2b, 0x20, + 0xcf, 0xd8, 0x6e, 0xca, 0x2a, 0xa4, 0x5d, 0x71, 0x97, 0x33, 0xf3, 0x7d, 0xdf, 0xf9, 0x3c, 0xdf, + 0xcc, 0x09, 0x3c, 0x0e, 0x39, 0x0f, 0x63, 0xec, 0xcd, 0x22, 0x81, 0x52, 0x71, 0x81, 0xbd, 0xab, + 0xdd, 0x0b, 0x54, 0x74, 0xb7, 0xf7, 0x42, 0x44, 0x0a, 0x9d, 0x54, 0x70, 0xc5, 0x89, 0x6d, 0x50, + 0x4e, 0x85, 0x72, 0x0a, 0x54, 0x67, 0xab, 0xe0, 0xd3, 0x34, 0xea, 0x51, 0xc6, 0xb8, 0xa2, 0x2a, + 0xe2, 0x4c, 0x1a, 0x5e, 0xe7, 0x83, 0x85, 0xea, 0x53, 0x9e, 0x24, 0x9c, 0x15, 0xb0, 0x8f, 0x16, + 0xc2, 0x02, 0x3e, 0xcd, 0x12, 0x64, 0xaa, 0x00, 0x3e, 0x2a, 0x80, 0xba, 0xba, 0xc8, 0x66, 0x3d, + 0x15, 0x25, 0x28, 0x15, 0x4d, 0x52, 0x03, 0xe8, 0xfe, 0x55, 0x87, 0xc6, 0x77, 0xb9, 0x71, 0xf2, + 0x05, 0x34, 0xb3, 0x34, 0xa0, 0x0a, 0xed, 0xda, 0x76, 0x6d, 0xa7, 0xbd, 0xd7, 0x75, 0x16, 0x7d, + 0x83, 0x73, 0x58, 0x34, 0x39, 0x5e, 0xf1, 0x0a, 0x0e, 0xb1, 0xa1, 0x19, 0x60, 0x8c, 0x0a, 0xed, + 0xfa, 0x76, 0x6d, 0xa7, 0x95, 0xef, 0x98, 0x9a, 0x7c, 0x03, 0x2d, 0x25, 0x28, 0x93, 0x33, 0x2e, + 0x12, 0xbb, 0xa9, 0xa5, 0x3f, 0x5e, 0x2e, 0x3d, 0x2e, 0x29, 0xc7, 0x2b, 0xde, 0x35, 0x9f, 0x1c, + 0x41, 0xdb, 0x34, 0xf4, 0x13, 0x2a, 0x9f, 0xdb, 0xab, 0x5a, 0xee, 0xc3, 0xe5, 0x72, 0xa7, 0x54, + 0x3e, 0xf7, 0xc0, 0x50, 0xf3, 0xdf, 0xe4, 0x19, 0x58, 0xd3, 0x4c, 0x08, 0x64, 0xca, 0x2f, 0x8f, + 0xcc, 0x5e, 0x5b, 0xa6, 0x36, 0x14, 0x38, 0xe5, 0x2c, 0x88, 0xf2, 0xc4, 0xbc, 0xcd, 0x82, 0x5f, + 0xb6, 0xe8, 0xb7, 0xa1, 0xc5, 0x53, 0x14, 0x3a, 0xcf, 0xee, 0x4f, 0x4d, 0xb8, 0xff, 0xda, 0xb7, + 0x90, 0x0e, 0xac, 0x57, 0xdd, 0xf2, 0x53, 0x6e, 0x79, 0x55, 0x4d, 0x10, 0xac, 0x59, 0x84, 0x71, + 0xe0, 0x57, 0x5f, 0x2b, 0xed, 0xfa, 0xf6, 0xea, 0x4e, 0x7b, 0xef, 0xf3, 0x3b, 0x1c, 0x97, 0x33, + 0xc8, 0x35, 0xaa, 0xd2, 0xdb, 0x9c, 0xdd, 0xa8, 0x65, 0xe7, 0xef, 0x35, 0xd8, 0xb8, 0x89, 0x21, + 0x0f, 0x01, 0x4c, 0xe7, 0x94, 0xaa, 0xcb, 0xc2, 0x57, 0x4b, 0xaf, 0x0c, 0xa9, 0xba, 0x24, 0x2f, + 0xe0, 0x6d, 0x89, 0xca, 0x57, 0xdc, 0x97, 0x28, 0xae, 0x50, 0xf8, 0x57, 0x34, 0xce, 0x4c, 0xce, + 0x1b, 0x7b, 0x83, 0x37, 0xf7, 0xe6, 0x8c, 0xb4, 0xdc, 0x24, 0x57, 0x3b, 0x5e, 0xf1, 0x2c, 0x89, + 0x6a, 0xcc, 0xe7, 0xd6, 0xc8, 0xd7, 0xd0, 0x8a, 0xd8, 0x54, 0xa0, 0x3e, 0x2e, 0x13, 0xf5, 0xa3, + 0xc5, 0xed, 0x4a, 0x9d, 0x6b, 0x0e, 0x79, 0x02, 0xf7, 0x12, 0xfa, 0x32, 0x4a, 0xb2, 0xa4, 0xc8, + 0xf6, 0x16, 0xf4, 0x92, 0xa1, 0xc9, 0x11, 0xd3, 0xe4, 0xc6, 0xed, 0xc9, 0x86, 0x41, 0x7e, 0x84, + 0x77, 0x69, 0x9a, 0x22, 0x0b, 0xfc, 0x24, 0x92, 0x32, 0x62, 0xa1, 0x8f, 0xb1, 0xf6, 0x24, 0x8b, + 0x27, 0xf0, 0x78, 0xb1, 0xd8, 0xbe, 0x10, 0xf4, 0x55, 0xa9, 0xf8, 0xc0, 0xc8, 0x9c, 0x1a, 0x15, + 0xb7, 0x10, 0x21, 0xdf, 0xc3, 0x03, 0x81, 0x09, 0xbf, 0x42, 0x9f, 0xc6, 0xb1, 0x3f, 0x13, 0x3c, + 0xf1, 0x69, 0x4e, 0xb3, 0xef, 0xdd, 0x49, 0x9d, 0x18, 0x91, 0xfd, 0x38, 0x1e, 0x08, 0x9e, 0xe8, + 0xad, 0xee, 0x97, 0xd0, 0x9e, 0x0f, 0x61, 0x0b, 0xec, 0x91, 0xeb, 0x4d, 0x5c, 0xcf, 0x9f, 0xec, + 0x3f, 0x3d, 0x73, 0xfd, 0xb3, 0x6f, 0x47, 0x43, 0xf7, 0xe0, 0x64, 0x70, 0xe2, 0x1e, 0x5a, 0x2b, + 0xc4, 0x82, 0xb7, 0x3c, 0xf7, 0xd9, 0x99, 0x3b, 0x1a, 0xfb, 0xe3, 0x93, 0x53, 0xd7, 0xaa, 0xf5, + 0x2d, 0xd8, 0xa8, 0x2e, 0xb0, 0xaf, 0x5e, 0xa5, 0xd8, 0xfd, 0xa5, 0x06, 0x6d, 0x3d, 0x62, 0x3c, + 0x94, 0x59, 0x9c, 0xa7, 0x52, 0xbe, 0xe1, 0x7c, 0x18, 0x15, 0xd3, 0xa6, 0x53, 0x3a, 0x2e, 0x27, + 0x95, 0x33, 0x2e, 0x27, 0x55, 0xf9, 0x6e, 0xf3, 0x05, 0xf2, 0x14, 0xee, 0x5f, 0xcb, 0x0b, 0x2d, + 0x58, 0x3e, 0x93, 0x65, 0xf9, 0x78, 0x56, 0xc5, 0x34, 0x4e, 0x64, 0xf7, 0xd7, 0x1a, 0x6c, 0x94, + 0xd7, 0xf4, 0xe0, 0x92, 0xb2, 0x10, 0xc9, 0x57, 0xff, 0x7a, 0xa2, 0xb7, 0x1a, 0x84, 0x73, 0xcf, + 0xf8, 0x21, 0x80, 0xa2, 0x22, 0x44, 0xe5, 0x47, 0x81, 0xb4, 0x1b, 0xdb, 0xab, 0x3b, 0x0d, 0xaf, + 0x65, 0x56, 0x4e, 0x02, 0x49, 0x3e, 0x81, 0xe2, 0xcc, 0x03, 0x7f, 0x0e, 0xd6, 0xd4, 0x30, 0xab, + 0xd8, 0x19, 0x97, 0xe8, 0xee, 0xcf, 0x73, 0xfe, 0x0e, 0xcd, 0x38, 0xfd, 0xaf, 0x11, 0x72, 0x27, + 0x71, 0xf2, 0x19, 0xb4, 0x04, 0xd2, 0xc0, 0xa4, 0xb0, 0xb6, 0x34, 0x85, 0xf5, 0x1c, 0x9c, 0x97, + 0x37, 0x5c, 0x79, 0x5a, 0xf5, 0x0d, 0x5c, 0xd5, 0xff, 0x6f, 0x57, 0x87, 0xb0, 0xe9, 0xbe, 0x8c, + 0xa4, 0x42, 0x36, 0xc5, 0x41, 0x14, 0x2b, 0x14, 0xe4, 0x3d, 0x68, 0x55, 0x1d, 0xb5, 0xad, 0x86, + 0xb7, 0x5e, 0x46, 0x41, 0xde, 0x81, 0xc6, 0x94, 0x67, 0x4c, 0xe9, 0x41, 0xd6, 0xf0, 0x4c, 0xd1, + 0xff, 0xa3, 0x06, 0x5b, 0x53, 0x9e, 0x2c, 0x8c, 0xbc, 0x0f, 0xfa, 0x2a, 0x0f, 0x73, 0x27, 0xc3, + 0xda, 0x0f, 0xfb, 0x05, 0x2e, 0xe4, 0x31, 0x65, 0xa1, 0xc3, 0x45, 0xd8, 0x0b, 0x91, 0x69, 0x9f, + 0x3d, 0xb3, 0x45, 0xd3, 0x48, 0xbe, 0xfe, 0x3f, 0xfd, 0xa4, 0x5a, 0xf9, 0xad, 0xbe, 0x76, 0x74, + 0x30, 0x18, 0xfd, 0x5e, 0x7f, 0xff, 0xc8, 0x48, 0x1d, 0xc4, 0x3c, 0x0b, 0x9c, 0x41, 0xd5, 0x78, + 0xb2, 0xdb, 0xcf, 0x19, 0x7f, 0x96, 0x80, 0x73, 0x0d, 0x38, 0xaf, 0x00, 0xe7, 0x13, 0x23, 0x79, + 0xd1, 0xd4, 0x6d, 0x3f, 0xfd, 0x27, 0x00, 0x00, 0xff, 0xff, 0x98, 0x5d, 0x9d, 0xb3, 0xa2, 0x08, + 0x00, 0x00, } diff --git a/vendor/google.golang.org/genproto/googleapis/home/graph/v1/homegraph.pb.go b/vendor/google.golang.org/genproto/googleapis/home/graph/v1/homegraph.pb.go index 24e609c5f..87cc494a7 100644 --- a/vendor/google.golang.org/genproto/googleapis/home/graph/v1/homegraph.pb.go +++ b/vendor/google.golang.org/genproto/googleapis/home/graph/v1/homegraph.pb.go @@ -44,7 +44,7 @@ func (m *RequestSyncDevicesRequest) Reset() { *m = RequestSyncDevicesReq func (m *RequestSyncDevicesRequest) String() string { return proto.CompactTextString(m) } func (*RequestSyncDevicesRequest) ProtoMessage() {} func (*RequestSyncDevicesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_homegraph_d5a465603b8fcbc5, []int{0} + return fileDescriptor_homegraph_a63234dfcc84278e, []int{0} } func (m *RequestSyncDevicesRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RequestSyncDevicesRequest.Unmarshal(m, b) @@ -90,7 +90,7 @@ func (m *RequestSyncDevicesResponse) Reset() { *m = RequestSyncDevicesRe func (m *RequestSyncDevicesResponse) String() string { return proto.CompactTextString(m) } func (*RequestSyncDevicesResponse) ProtoMessage() {} func (*RequestSyncDevicesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_homegraph_d5a465603b8fcbc5, []int{1} + return fileDescriptor_homegraph_a63234dfcc84278e, []int{1} } func (m *RequestSyncDevicesResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RequestSyncDevicesResponse.Unmarshal(m, b) @@ -114,7 +114,7 @@ var xxx_messageInfo_RequestSyncDevicesResponse proto.InternalMessageInfo // defined per device_id (eg: "123" and "456" in the following example): // { // "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", -// "agent_user_id": "1234", +// "agentUserId": "1234", // "payload": { // "devices": { // "states": { @@ -185,7 +185,7 @@ func (m *ReportStateAndNotificationRequest) Reset() { *m = ReportStateAn func (m *ReportStateAndNotificationRequest) String() string { return proto.CompactTextString(m) } func (*ReportStateAndNotificationRequest) ProtoMessage() {} func (*ReportStateAndNotificationRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_homegraph_d5a465603b8fcbc5, []int{2} + return fileDescriptor_homegraph_a63234dfcc84278e, []int{2} } func (m *ReportStateAndNotificationRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ReportStateAndNotificationRequest.Unmarshal(m, b) @@ -253,7 +253,7 @@ func (m *ReportStateAndNotificationResponse) Reset() { *m = ReportStateA func (m *ReportStateAndNotificationResponse) String() string { return proto.CompactTextString(m) } func (*ReportStateAndNotificationResponse) ProtoMessage() {} func (*ReportStateAndNotificationResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_homegraph_d5a465603b8fcbc5, []int{3} + return fileDescriptor_homegraph_a63234dfcc84278e, []int{3} } func (m *ReportStateAndNotificationResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ReportStateAndNotificationResponse.Unmarshal(m, b) @@ -293,7 +293,7 @@ func (m *StateAndNotificationPayload) Reset() { *m = StateAndNotificatio func (m *StateAndNotificationPayload) String() string { return proto.CompactTextString(m) } func (*StateAndNotificationPayload) ProtoMessage() {} func (*StateAndNotificationPayload) Descriptor() ([]byte, []int) { - return fileDescriptor_homegraph_d5a465603b8fcbc5, []int{4} + return fileDescriptor_homegraph_a63234dfcc84278e, []int{4} } func (m *StateAndNotificationPayload) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_StateAndNotificationPayload.Unmarshal(m, b) @@ -335,7 +335,7 @@ func (m *ReportStateAndNotificationDevice) Reset() { *m = ReportStateAnd func (m *ReportStateAndNotificationDevice) String() string { return proto.CompactTextString(m) } func (*ReportStateAndNotificationDevice) ProtoMessage() {} func (*ReportStateAndNotificationDevice) Descriptor() ([]byte, []int) { - return fileDescriptor_homegraph_d5a465603b8fcbc5, []int{5} + return fileDescriptor_homegraph_a63234dfcc84278e, []int{5} } func (m *ReportStateAndNotificationDevice) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ReportStateAndNotificationDevice.Unmarshal(m, b) @@ -384,7 +384,7 @@ func (m *DeleteAgentUserRequest) Reset() { *m = DeleteAgentUserRequest{} func (m *DeleteAgentUserRequest) String() string { return proto.CompactTextString(m) } func (*DeleteAgentUserRequest) ProtoMessage() {} func (*DeleteAgentUserRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_homegraph_d5a465603b8fcbc5, []int{6} + return fileDescriptor_homegraph_a63234dfcc84278e, []int{6} } func (m *DeleteAgentUserRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteAgentUserRequest.Unmarshal(m, b) @@ -440,7 +440,7 @@ func (m *QueryRequest) Reset() { *m = QueryRequest{} } func (m *QueryRequest) String() string { return proto.CompactTextString(m) } func (*QueryRequest) ProtoMessage() {} func (*QueryRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_homegraph_d5a465603b8fcbc5, []int{7} + return fileDescriptor_homegraph_a63234dfcc84278e, []int{7} } func (m *QueryRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_QueryRequest.Unmarshal(m, b) @@ -494,7 +494,7 @@ func (m *QueryRequestInput) Reset() { *m = QueryRequestInput{} } func (m *QueryRequestInput) String() string { return proto.CompactTextString(m) } func (*QueryRequestInput) ProtoMessage() {} func (*QueryRequestInput) Descriptor() ([]byte, []int) { - return fileDescriptor_homegraph_d5a465603b8fcbc5, []int{8} + return fileDescriptor_homegraph_a63234dfcc84278e, []int{8} } func (m *QueryRequestInput) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_QueryRequestInput.Unmarshal(m, b) @@ -534,7 +534,7 @@ func (m *QueryRequestPayload) Reset() { *m = QueryRequestPayload{} } func (m *QueryRequestPayload) String() string { return proto.CompactTextString(m) } func (*QueryRequestPayload) ProtoMessage() {} func (*QueryRequestPayload) Descriptor() ([]byte, []int) { - return fileDescriptor_homegraph_d5a465603b8fcbc5, []int{9} + return fileDescriptor_homegraph_a63234dfcc84278e, []int{9} } func (m *QueryRequestPayload) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_QueryRequestPayload.Unmarshal(m, b) @@ -574,7 +574,7 @@ func (m *AgentDeviceId) Reset() { *m = AgentDeviceId{} } func (m *AgentDeviceId) String() string { return proto.CompactTextString(m) } func (*AgentDeviceId) ProtoMessage() {} func (*AgentDeviceId) Descriptor() ([]byte, []int) { - return fileDescriptor_homegraph_d5a465603b8fcbc5, []int{10} + return fileDescriptor_homegraph_a63234dfcc84278e, []int{10} } func (m *AgentDeviceId) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AgentDeviceId.Unmarshal(m, b) @@ -618,7 +618,7 @@ func (m *QueryResponse) Reset() { *m = QueryResponse{} } func (m *QueryResponse) String() string { return proto.CompactTextString(m) } func (*QueryResponse) ProtoMessage() {} func (*QueryResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_homegraph_d5a465603b8fcbc5, []int{11} + return fileDescriptor_homegraph_a63234dfcc84278e, []int{11} } func (m *QueryResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_QueryResponse.Unmarshal(m, b) @@ -666,7 +666,7 @@ func (m *QueryResponsePayload) Reset() { *m = QueryResponsePayload{} } func (m *QueryResponsePayload) String() string { return proto.CompactTextString(m) } func (*QueryResponsePayload) ProtoMessage() {} func (*QueryResponsePayload) Descriptor() ([]byte, []int) { - return fileDescriptor_homegraph_d5a465603b8fcbc5, []int{12} + return fileDescriptor_homegraph_a63234dfcc84278e, []int{12} } func (m *QueryResponsePayload) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_QueryResponsePayload.Unmarshal(m, b) @@ -711,7 +711,7 @@ func (m *SyncRequest) Reset() { *m = SyncRequest{} } func (m *SyncRequest) String() string { return proto.CompactTextString(m) } func (*SyncRequest) ProtoMessage() {} func (*SyncRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_homegraph_d5a465603b8fcbc5, []int{13} + return fileDescriptor_homegraph_a63234dfcc84278e, []int{13} } func (m *SyncRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SyncRequest.Unmarshal(m, b) @@ -794,7 +794,7 @@ func (m *SyncResponse) Reset() { *m = SyncResponse{} } func (m *SyncResponse) String() string { return proto.CompactTextString(m) } func (*SyncResponse) ProtoMessage() {} func (*SyncResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_homegraph_d5a465603b8fcbc5, []int{14} + return fileDescriptor_homegraph_a63234dfcc84278e, []int{14} } func (m *SyncResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SyncResponse.Unmarshal(m, b) @@ -843,7 +843,7 @@ func (m *SyncResponsePayload) Reset() { *m = SyncResponsePayload{} } func (m *SyncResponsePayload) String() string { return proto.CompactTextString(m) } func (*SyncResponsePayload) ProtoMessage() {} func (*SyncResponsePayload) Descriptor() ([]byte, []int) { - return fileDescriptor_homegraph_d5a465603b8fcbc5, []int{15} + return fileDescriptor_homegraph_a63234dfcc84278e, []int{15} } func (m *SyncResponsePayload) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SyncResponsePayload.Unmarshal(m, b) @@ -1194,10 +1194,10 @@ var _HomeGraphApiService_serviceDesc = grpc.ServiceDesc{ } func init() { - proto.RegisterFile("google/home/graph/v1/homegraph.proto", fileDescriptor_homegraph_d5a465603b8fcbc5) + proto.RegisterFile("google/home/graph/v1/homegraph.proto", fileDescriptor_homegraph_a63234dfcc84278e) } -var fileDescriptor_homegraph_d5a465603b8fcbc5 = []byte{ +var fileDescriptor_homegraph_a63234dfcc84278e = []byte{ // 879 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x56, 0x4f, 0x8f, 0xdb, 0x44, 0x14, 0x97, 0x93, 0x66, 0xb7, 0x7d, 0xd9, 0xd0, 0x76, 0x76, 0xd9, 0xba, 0xd9, 0x20, 0x92, 0x59, diff --git a/vendor/google.golang.org/genproto/googleapis/iam/credentials/v1/common.pb.go b/vendor/google.golang.org/genproto/googleapis/iam/credentials/v1/common.pb.go index cc5b9d48d..eb55ff4f2 100644 --- a/vendor/google.golang.org/genproto/googleapis/iam/credentials/v1/common.pb.go +++ b/vendor/google.golang.org/genproto/googleapis/iam/credentials/v1/common.pb.go @@ -54,7 +54,7 @@ func (m *GenerateAccessTokenRequest) Reset() { *m = GenerateAccessTokenR func (m *GenerateAccessTokenRequest) String() string { return proto.CompactTextString(m) } func (*GenerateAccessTokenRequest) ProtoMessage() {} func (*GenerateAccessTokenRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_common_8cf8a86b4991d464, []int{0} + return fileDescriptor_common_7e5e13abca9c147a, []int{0} } func (m *GenerateAccessTokenRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GenerateAccessTokenRequest.Unmarshal(m, b) @@ -117,7 +117,7 @@ func (m *GenerateAccessTokenResponse) Reset() { *m = GenerateAccessToken func (m *GenerateAccessTokenResponse) String() string { return proto.CompactTextString(m) } func (*GenerateAccessTokenResponse) ProtoMessage() {} func (*GenerateAccessTokenResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_common_8cf8a86b4991d464, []int{1} + return fileDescriptor_common_7e5e13abca9c147a, []int{1} } func (m *GenerateAccessTokenResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GenerateAccessTokenResponse.Unmarshal(m, b) @@ -177,7 +177,7 @@ func (m *SignBlobRequest) Reset() { *m = SignBlobRequest{} } func (m *SignBlobRequest) String() string { return proto.CompactTextString(m) } func (*SignBlobRequest) ProtoMessage() {} func (*SignBlobRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_common_8cf8a86b4991d464, []int{2} + return fileDescriptor_common_7e5e13abca9c147a, []int{2} } func (m *SignBlobRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignBlobRequest.Unmarshal(m, b) @@ -232,7 +232,7 @@ func (m *SignBlobResponse) Reset() { *m = SignBlobResponse{} } func (m *SignBlobResponse) String() string { return proto.CompactTextString(m) } func (*SignBlobResponse) ProtoMessage() {} func (*SignBlobResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_common_8cf8a86b4991d464, []int{3} + return fileDescriptor_common_7e5e13abca9c147a, []int{3} } func (m *SignBlobResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignBlobResponse.Unmarshal(m, b) @@ -292,7 +292,7 @@ func (m *SignJwtRequest) Reset() { *m = SignJwtRequest{} } func (m *SignJwtRequest) String() string { return proto.CompactTextString(m) } func (*SignJwtRequest) ProtoMessage() {} func (*SignJwtRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_common_8cf8a86b4991d464, []int{4} + return fileDescriptor_common_7e5e13abca9c147a, []int{4} } func (m *SignJwtRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignJwtRequest.Unmarshal(m, b) @@ -347,7 +347,7 @@ func (m *SignJwtResponse) Reset() { *m = SignJwtResponse{} } func (m *SignJwtResponse) String() string { return proto.CompactTextString(m) } func (*SignJwtResponse) ProtoMessage() {} func (*SignJwtResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_common_8cf8a86b4991d464, []int{5} + return fileDescriptor_common_7e5e13abca9c147a, []int{5} } func (m *SignJwtResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignJwtResponse.Unmarshal(m, b) @@ -411,7 +411,7 @@ func (m *GenerateIdTokenRequest) Reset() { *m = GenerateIdTokenRequest{} func (m *GenerateIdTokenRequest) String() string { return proto.CompactTextString(m) } func (*GenerateIdTokenRequest) ProtoMessage() {} func (*GenerateIdTokenRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_common_8cf8a86b4991d464, []int{6} + return fileDescriptor_common_7e5e13abca9c147a, []int{6} } func (m *GenerateIdTokenRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GenerateIdTokenRequest.Unmarshal(m, b) @@ -471,7 +471,7 @@ func (m *GenerateIdTokenResponse) Reset() { *m = GenerateIdTokenResponse func (m *GenerateIdTokenResponse) String() string { return proto.CompactTextString(m) } func (*GenerateIdTokenResponse) ProtoMessage() {} func (*GenerateIdTokenResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_common_8cf8a86b4991d464, []int{7} + return fileDescriptor_common_7e5e13abca9c147a, []int{7} } func (m *GenerateIdTokenResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GenerateIdTokenResponse.Unmarshal(m, b) @@ -565,7 +565,7 @@ func (m *GenerateIdentityBindingAccessTokenRequest) Reset() { func (m *GenerateIdentityBindingAccessTokenRequest) String() string { return proto.CompactTextString(m) } func (*GenerateIdentityBindingAccessTokenRequest) ProtoMessage() {} func (*GenerateIdentityBindingAccessTokenRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_common_8cf8a86b4991d464, []int{8} + return fileDescriptor_common_7e5e13abca9c147a, []int{8} } func (m *GenerateIdentityBindingAccessTokenRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GenerateIdentityBindingAccessTokenRequest.Unmarshal(m, b) @@ -625,7 +625,7 @@ func (m *GenerateIdentityBindingAccessTokenResponse) String() string { } func (*GenerateIdentityBindingAccessTokenResponse) ProtoMessage() {} func (*GenerateIdentityBindingAccessTokenResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_common_8cf8a86b4991d464, []int{9} + return fileDescriptor_common_7e5e13abca9c147a, []int{9} } func (m *GenerateIdentityBindingAccessTokenResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GenerateIdentityBindingAccessTokenResponse.Unmarshal(m, b) @@ -673,44 +673,45 @@ func init() { } func init() { - proto.RegisterFile("google/iam/credentials/v1/common.proto", fileDescriptor_common_8cf8a86b4991d464) + proto.RegisterFile("google/iam/credentials/v1/common.proto", fileDescriptor_common_7e5e13abca9c147a) } -var fileDescriptor_common_8cf8a86b4991d464 = []byte{ - // 560 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x54, 0x4d, 0x6f, 0xd3, 0x4c, - 0x10, 0x96, 0xf3, 0xd1, 0xc6, 0x93, 0xbc, 0x2f, 0x95, 0x55, 0xc0, 0x09, 0x94, 0x06, 0x23, 0xa1, - 0xc0, 0xc1, 0x56, 0x41, 0x9c, 0x7a, 0x6a, 0x5a, 0x54, 0x25, 0x12, 0x52, 0x65, 0x7a, 0x42, 0x20, - 0x6b, 0x63, 0x4f, 0xad, 0x25, 0xf6, 0xae, 0xf1, 0x6e, 0x1a, 0x72, 0xe0, 0xc8, 0x09, 0xfe, 0x01, - 0x7f, 0x94, 0x23, 0xf2, 0xae, 0x13, 0x47, 0x6d, 0x41, 0xe1, 0xe3, 0xb6, 0xf3, 0xcc, 0xc7, 0xf3, - 0xcc, 0xec, 0xce, 0xc2, 0xe3, 0x98, 0xf3, 0x38, 0x41, 0x8f, 0x92, 0xd4, 0x0b, 0x73, 0x8c, 0x90, - 0x49, 0x4a, 0x12, 0xe1, 0x5d, 0x1e, 0x78, 0x21, 0x4f, 0x53, 0xce, 0xdc, 0x2c, 0xe7, 0x92, 0x5b, - 0x5d, 0x1d, 0xe7, 0x52, 0x92, 0xba, 0x6b, 0x71, 0xee, 0xe5, 0x41, 0xef, 0x41, 0x59, 0x42, 0x05, - 0x4e, 0x66, 0x17, 0x5e, 0x34, 0xcb, 0x89, 0xa4, 0xcb, 0xd4, 0xde, 0xfe, 0x55, 0xbf, 0xa4, 0x29, - 0x0a, 0x49, 0xd2, 0x4c, 0x07, 0x38, 0xdf, 0x0c, 0xe8, 0x9d, 0x22, 0xc3, 0x9c, 0x48, 0x3c, 0x0a, - 0x43, 0x14, 0xe2, 0x9c, 0x4f, 0x91, 0xf9, 0xf8, 0x61, 0x86, 0x42, 0x5a, 0x16, 0x34, 0x18, 0x49, - 0xd1, 0x36, 0xfa, 0xc6, 0xc0, 0xf4, 0xd5, 0xd9, 0xba, 0x0f, 0x66, 0x84, 0x09, 0xc6, 0x44, 0xa2, - 0xb0, 0x6b, 0xfd, 0xfa, 0xc0, 0xf4, 0x2b, 0xc0, 0xda, 0x85, 0xa6, 0x08, 0x79, 0x86, 0x76, 0x43, - 0x79, 0xb4, 0x61, 0xbd, 0x80, 0x56, 0x42, 0x2f, 0xb0, 0x60, 0xb7, 0xb7, 0xfb, 0xc6, 0xa0, 0xfd, - 0xac, 0xeb, 0x96, 0x5d, 0x2d, 0xa5, 0xb9, 0x27, 0xa5, 0x74, 0x7f, 0x15, 0xea, 0x7c, 0x82, 0x7b, - 0x37, 0x8a, 0x13, 0x19, 0x67, 0x02, 0xad, 0x87, 0xd0, 0x21, 0x0a, 0x0e, 0x64, 0x81, 0x97, 0x2a, - 0xdb, 0xa4, 0x0a, 0xb5, 0x0e, 0xa1, 0x8d, 0x1f, 0x33, 0x9a, 0x63, 0xa0, 0xb8, 0xeb, 0x8a, 0xbb, - 0x77, 0x8d, 0xfb, 0x7c, 0x39, 0x16, 0x1f, 0x74, 0x78, 0x01, 0x38, 0xef, 0xe0, 0xd6, 0x6b, 0x1a, - 0xb3, 0x61, 0xc2, 0x27, 0x1b, 0x0f, 0xa4, 0x7e, 0x75, 0x20, 0x36, 0x6c, 0x67, 0x64, 0x91, 0x70, - 0x12, 0xd9, 0xcd, 0xbe, 0x31, 0xe8, 0xf8, 0x4b, 0xd3, 0x19, 0xc3, 0x4e, 0x55, 0xbe, 0x6c, 0xe9, - 0x36, 0x6c, 0x4d, 0x71, 0x11, 0xd0, 0xa8, 0x64, 0x68, 0x4e, 0x71, 0x31, 0x8a, 0xac, 0x7d, 0x68, - 0x0b, 0x1a, 0x33, 0x8c, 0x82, 0x49, 0xc2, 0x27, 0x76, 0x43, 0x15, 0x02, 0x0d, 0x15, 0xf9, 0xce, - 0x5b, 0xf8, 0xbf, 0xa8, 0x35, 0x9e, 0xcb, 0x7f, 0xa6, 0xd4, 0xac, 0x94, 0x9e, 0xea, 0x41, 0xa8, - 0xea, 0xbf, 0x16, 0xba, 0x07, 0xa5, 0xaa, 0xe0, 0xfd, 0x5c, 0xda, 0x35, 0xe5, 0x32, 0x35, 0x32, - 0x9e, 0x4b, 0xe7, 0x8b, 0x01, 0x77, 0x96, 0x37, 0x3a, 0x8a, 0xfe, 0xf2, 0xa9, 0xf5, 0xa0, 0x45, - 0x66, 0x11, 0x45, 0x16, 0xea, 0x8b, 0x35, 0xfd, 0x95, 0x6d, 0x3d, 0x82, 0xff, 0x28, 0x0b, 0x93, - 0x59, 0x84, 0x01, 0xa6, 0x84, 0x26, 0x6a, 0x64, 0x2d, 0xbf, 0x53, 0x82, 0x2f, 0x0b, 0xcc, 0xf1, - 0xe0, 0xee, 0x35, 0x31, 0x65, 0x7b, 0xbb, 0xd0, 0x5c, 0x7f, 0x53, 0xda, 0x70, 0x62, 0x78, 0x52, - 0x25, 0x14, 0x6b, 0x28, 0x17, 0x43, 0xca, 0x22, 0xca, 0xe2, 0x0d, 0x77, 0x67, 0xb5, 0x1d, 0xb5, - 0xf5, 0xed, 0xd8, 0x81, 0x7a, 0x31, 0x2d, 0xdd, 0x43, 0x71, 0x74, 0xbe, 0x1a, 0xf0, 0x74, 0x13, - 0xa6, 0x3f, 0x5e, 0x84, 0xda, 0xef, 0x2c, 0xc2, 0xf0, 0xb3, 0x01, 0x7b, 0x21, 0x4f, 0xdd, 0x9f, - 0x7e, 0x44, 0xc3, 0xee, 0xe8, 0xe8, 0xd5, 0x71, 0x05, 0x1d, 0xab, 0xff, 0xeb, 0xac, 0xa8, 0x7a, - 0x66, 0xbc, 0x39, 0x29, 0xf3, 0x62, 0x9e, 0x10, 0x16, 0xbb, 0x3c, 0x8f, 0xbd, 0x18, 0x99, 0xe2, - 0xf4, 0xb4, 0x8b, 0x64, 0x54, 0xdc, 0xf0, 0x0f, 0x1e, 0xae, 0x99, 0xdf, 0x0d, 0x63, 0xb2, 0xa5, - 0x72, 0x9e, 0xff, 0x08, 0x00, 0x00, 0xff, 0xff, 0x19, 0x24, 0xb3, 0xc7, 0x3a, 0x05, 0x00, 0x00, +var fileDescriptor_common_7e5e13abca9c147a = []byte{ + // 563 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x54, 0xcd, 0x6e, 0xd3, 0x40, + 0x10, 0x96, 0x93, 0xa6, 0x8d, 0x27, 0x01, 0x2a, 0xab, 0x80, 0x13, 0x7e, 0x1a, 0x5c, 0x09, 0x05, + 0x0e, 0xb6, 0x0a, 0xe2, 0xd4, 0x53, 0xd3, 0xa2, 0x2a, 0x91, 0x90, 0x2a, 0xd3, 0x13, 0x02, 0x59, + 0x1b, 0xef, 0xd4, 0x5a, 0x62, 0xef, 0x1a, 0x7b, 0xdd, 0x90, 0x03, 0x4f, 0x50, 0xde, 0x80, 0x17, + 0xe5, 0x88, 0xbc, 0xb6, 0xe3, 0xa8, 0x8d, 0x50, 0xf8, 0xb9, 0xed, 0x7c, 0xf3, 0xcd, 0xcc, 0x37, + 0xb3, 0x3b, 0x0b, 0xcf, 0x03, 0x21, 0x82, 0x10, 0x1d, 0x46, 0x22, 0xc7, 0x4f, 0x90, 0x22, 0x97, + 0x8c, 0x84, 0xa9, 0x73, 0x75, 0xe8, 0xf8, 0x22, 0x8a, 0x04, 0xb7, 0xe3, 0x44, 0x48, 0x61, 0xf4, + 0x0a, 0x9e, 0xcd, 0x48, 0x64, 0xaf, 0xf0, 0xec, 0xab, 0xc3, 0xfe, 0xd3, 0x32, 0x85, 0x22, 0x4e, + 0xb3, 0x4b, 0x87, 0x66, 0x09, 0x91, 0xac, 0x0a, 0xed, 0xef, 0xdf, 0xf4, 0x4b, 0x16, 0x61, 0x2a, + 0x49, 0x14, 0x17, 0x04, 0xeb, 0x87, 0x06, 0xfd, 0x33, 0xe4, 0x98, 0x10, 0x89, 0xc7, 0xbe, 0x8f, + 0x69, 0x7a, 0x21, 0x66, 0xc8, 0x5d, 0xfc, 0x92, 0x61, 0x2a, 0x0d, 0x03, 0xb6, 0x38, 0x89, 0xd0, + 0xd4, 0x06, 0xda, 0x50, 0x77, 0xd5, 0xd9, 0x78, 0x0c, 0x3a, 0xc5, 0x10, 0x03, 0x22, 0x31, 0x35, + 0x1b, 0x83, 0xe6, 0x50, 0x77, 0x6b, 0xc0, 0xd8, 0x83, 0x56, 0xea, 0x8b, 0x18, 0xcd, 0x2d, 0xe5, + 0x29, 0x0c, 0xe3, 0x0d, 0xb4, 0x43, 0x76, 0x89, 0x79, 0x75, 0x73, 0x67, 0xa0, 0x0d, 0x3b, 0xaf, + 0x7a, 0x76, 0xd9, 0x55, 0x25, 0xcd, 0x3e, 0x2d, 0xa5, 0xbb, 0x4b, 0xaa, 0xf5, 0x0d, 0x1e, 0xad, + 0x15, 0x97, 0xc6, 0x82, 0xa7, 0x68, 0x3c, 0x83, 0x2e, 0x51, 0xb0, 0x27, 0x73, 0xbc, 0x54, 0xd9, + 0x21, 0x35, 0xd5, 0x38, 0x82, 0x0e, 0x7e, 0x8d, 0x59, 0x82, 0x9e, 0xaa, 0xdd, 0x54, 0xb5, 0xfb, + 0xb7, 0x6a, 0x5f, 0x54, 0x63, 0x71, 0xa1, 0xa0, 0xe7, 0x80, 0xf5, 0x09, 0xee, 0xbd, 0x67, 0x01, + 0x1f, 0x85, 0x62, 0xba, 0xf1, 0x40, 0x9a, 0x37, 0x07, 0x62, 0xc2, 0x4e, 0x4c, 0x16, 0xa1, 0x20, + 0xd4, 0x6c, 0x0d, 0xb4, 0x61, 0xd7, 0xad, 0x4c, 0x6b, 0x02, 0xbb, 0x75, 0xfa, 0xb2, 0xa5, 0xfb, + 0xb0, 0x3d, 0xc3, 0x85, 0xc7, 0x68, 0x59, 0xa1, 0x35, 0xc3, 0xc5, 0x98, 0x1a, 0xfb, 0xd0, 0x49, + 0x59, 0xc0, 0x91, 0x7a, 0xd3, 0x50, 0x4c, 0xcd, 0x2d, 0x95, 0x08, 0x0a, 0x28, 0x8f, 0xb7, 0x3e, + 0xc2, 0xdd, 0x3c, 0xd7, 0x64, 0x2e, 0xff, 0x9b, 0x52, 0xbd, 0x56, 0x7a, 0x56, 0x0c, 0x42, 0x65, + 0xff, 0xbd, 0xd0, 0x27, 0x50, 0xaa, 0xf2, 0x3e, 0xcf, 0xa5, 0xd9, 0x50, 0x2e, 0xbd, 0x40, 0x26, + 0x73, 0x69, 0x5d, 0x6b, 0xf0, 0xa0, 0xba, 0xd1, 0x31, 0xfd, 0xc7, 0xa7, 0xd6, 0x87, 0x36, 0xc9, + 0x28, 0x43, 0xee, 0x17, 0x17, 0xab, 0xbb, 0x4b, 0xdb, 0x38, 0x80, 0x3b, 0x8c, 0xfb, 0x61, 0x46, + 0xd1, 0xc3, 0x88, 0xb0, 0x50, 0x8d, 0xac, 0xed, 0x76, 0x4b, 0xf0, 0x6d, 0x8e, 0x59, 0x0e, 0x3c, + 0xbc, 0x25, 0xa6, 0x6c, 0x6f, 0x0f, 0x5a, 0xab, 0x6f, 0xaa, 0x30, 0xac, 0x00, 0x5e, 0xd4, 0x01, + 0xf9, 0x1a, 0xca, 0xc5, 0x88, 0x71, 0xca, 0x78, 0xb0, 0xe1, 0xee, 0x2c, 0xb7, 0xa3, 0xb1, 0xba, + 0x1d, 0xbb, 0xd0, 0xcc, 0xa7, 0x55, 0xf4, 0x90, 0x1f, 0xad, 0xef, 0x1a, 0xbc, 0xdc, 0xa4, 0xd2, + 0x5f, 0x2f, 0x42, 0xe3, 0x4f, 0x16, 0x61, 0x74, 0xad, 0xc1, 0x81, 0x2f, 0xa2, 0x8a, 0xed, 0x87, + 0x22, 0xa3, 0x6b, 0xbe, 0xa3, 0x51, 0x6f, 0x7c, 0xfc, 0xee, 0xa4, 0x86, 0x4e, 0xd4, 0x2f, 0x76, + 0x9e, 0xe7, 0x3e, 0xd7, 0x3e, 0x9c, 0x96, 0xd1, 0x81, 0x08, 0x09, 0x0f, 0x6c, 0x91, 0x04, 0x4e, + 0x80, 0x5c, 0x55, 0x76, 0x0a, 0x17, 0x89, 0x59, 0xba, 0xe6, 0x37, 0x3c, 0x5a, 0x31, 0x7f, 0x6a, + 0xda, 0x74, 0x5b, 0xc5, 0xbc, 0xfe, 0x15, 0x00, 0x00, 0xff, 0xff, 0x97, 0xa7, 0x4c, 0xe2, 0x40, + 0x05, 0x00, 0x00, } diff --git a/vendor/google.golang.org/genproto/googleapis/iam/credentials/v1/iamcredentials.pb.go b/vendor/google.golang.org/genproto/googleapis/iam/credentials/v1/iamcredentials.pb.go index 3afacbdf3..13bf950d9 100644 --- a/vendor/google.golang.org/genproto/googleapis/iam/credentials/v1/iamcredentials.pb.go +++ b/vendor/google.golang.org/genproto/googleapis/iam/credentials/v1/iamcredentials.pb.go @@ -241,36 +241,37 @@ var _IAMCredentials_serviceDesc = grpc.ServiceDesc{ } func init() { - proto.RegisterFile("google/iam/credentials/v1/iamcredentials.proto", fileDescriptor_iamcredentials_c860f4c52834cce8) + proto.RegisterFile("google/iam/credentials/v1/iamcredentials.proto", fileDescriptor_iamcredentials_549bd6a612073d41) } -var fileDescriptor_iamcredentials_c860f4c52834cce8 = []byte{ - // 421 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x94, 0x4f, 0x4b, 0xe3, 0x40, - 0x18, 0xc6, 0x99, 0x1e, 0xb6, 0x4b, 0x0e, 0xbb, 0x90, 0x3d, 0x6d, 0xd9, 0x53, 0x0e, 0x0b, 0x9b, - 0x85, 0x8c, 0xad, 0x56, 0x21, 0x55, 0xb0, 0xb1, 0x2a, 0x0d, 0x88, 0xe0, 0x9f, 0x8b, 0xb7, 0x69, - 0x3a, 0x0c, 0xa3, 0xc9, 0x4c, 0xcc, 0x4c, 0x5b, 0x44, 0xbc, 0x78, 0xf2, 0xee, 0xd5, 0x83, 0x1f, - 0xc4, 0x8f, 0xe0, 0xcd, 0xaf, 0xe0, 0xcd, 0x2f, 0xe0, 0x51, 0x26, 0x99, 0xd0, 0x80, 0x8d, 0x26, - 0x78, 0xcc, 0x9b, 0xe7, 0x79, 0xde, 0xdf, 0xc3, 0x0c, 0x63, 0x38, 0x84, 0x73, 0x12, 0x62, 0x48, - 0x51, 0x04, 0x83, 0x04, 0x8f, 0x31, 0x93, 0x14, 0x85, 0x02, 0x4e, 0xdb, 0x6a, 0x54, 0x98, 0x38, - 0x71, 0xc2, 0x25, 0x37, 0x7f, 0x67, 0x7a, 0x87, 0xa2, 0xc8, 0x29, 0xfe, 0x9d, 0xb6, 0x5b, 0x7f, - 0x74, 0x14, 0x8a, 0x29, 0x44, 0x8c, 0x71, 0x89, 0x24, 0xe5, 0x4c, 0x1b, 0x5b, 0x7f, 0xcb, 0x17, - 0x05, 0x3c, 0x8a, 0x38, 0xcb, 0x74, 0x9d, 0x97, 0xa6, 0xf1, 0x63, 0xd8, 0xdf, 0xdb, 0x9a, 0x4b, - 0xcc, 0x47, 0x60, 0xfc, 0xda, 0xc5, 0x0c, 0x27, 0x48, 0xe2, 0x7e, 0x10, 0x60, 0x21, 0x8e, 0xf8, - 0x19, 0x66, 0x66, 0xd7, 0x29, 0x85, 0x71, 0x16, 0xe8, 0x0f, 0xf0, 0xf9, 0x04, 0x0b, 0xd9, 0x5a, - 0xad, 0x6b, 0x13, 0x31, 0x67, 0x02, 0x5b, 0x3b, 0xd7, 0x4f, 0xcf, 0xb7, 0x8d, 0x4d, 0xab, 0xa7, - 0x98, 0x2f, 0x19, 0x8a, 0xf0, 0x46, 0x9c, 0xf0, 0x53, 0x1c, 0x48, 0x01, 0x6d, 0x28, 0x70, 0x32, - 0xa5, 0x81, 0x32, 0xf2, 0x09, 0x53, 0x93, 0x2b, 0x97, 0xbc, 0x0f, 0x73, 0x81, 0x6d, 0x3e, 0x00, - 0xe3, 0x67, 0xbe, 0x67, 0x38, 0xce, 0xaa, 0xb4, 0x2b, 0x30, 0x69, 0x6d, 0x5e, 0xa3, 0x53, 0xc7, - 0xa2, 0x2b, 0x78, 0x69, 0x85, 0x75, 0x6b, 0xad, 0x6e, 0x05, 0x1d, 0xa4, 0xf0, 0xef, 0x81, 0xf1, - 0xfd, 0x90, 0x12, 0xe6, 0x85, 0x7c, 0x64, 0xda, 0x1f, 0x40, 0xe4, 0xa2, 0x1c, 0xf8, 0x7f, 0x25, - 0xad, 0x26, 0xed, 0xa5, 0xa4, 0x5d, 0x6b, 0xa9, 0x2a, 0xa9, 0xd0, 0x09, 0x0a, 0xf1, 0x0e, 0x18, - 0x4d, 0x95, 0xe8, 0xcf, 0xa4, 0xf9, 0xef, 0x93, 0xad, 0xfe, 0x4c, 0xe6, 0x80, 0x76, 0x15, 0xa9, - 0xe6, 0x73, 0x53, 0xbe, 0x15, 0x0b, 0xd6, 0xe1, 0xf3, 0x67, 0x52, 0xe1, 0xdd, 0x34, 0x0c, 0x6b, - 0x7e, 0x42, 0x6a, 0x89, 0xbc, 0xf0, 0x28, 0x1b, 0x53, 0x46, 0x8a, 0xd7, 0x7b, 0x50, 0xe9, 0x80, - 0xcb, 0xec, 0x79, 0xa9, 0xed, 0x2f, 0xa6, 0xe8, 0xbe, 0xc7, 0x69, 0xdf, 0x7d, 0xcb, 0xaf, 0x7f, - 0x73, 0xca, 0xb2, 0x5d, 0x60, 0x7b, 0xc3, 0x93, 0x81, 0xc6, 0x23, 0x3c, 0x44, 0x8c, 0x38, 0x3c, - 0x21, 0x90, 0x60, 0x96, 0xbe, 0x05, 0x30, 0xfb, 0x85, 0x62, 0x2a, 0x16, 0x3c, 0x1b, 0xbd, 0xc2, - 0xe7, 0x2b, 0x00, 0xa3, 0x6f, 0xa9, 0x67, 0xf9, 0x2d, 0x00, 0x00, 0xff, 0xff, 0xa6, 0x1f, 0xfe, - 0xa1, 0xd2, 0x04, 0x00, 0x00, +var fileDescriptor_iamcredentials_549bd6a612073d41 = []byte{ + // 443 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x94, 0xcf, 0xaa, 0xd4, 0x30, + 0x18, 0xc5, 0xc9, 0x5d, 0x78, 0x25, 0x0b, 0x85, 0xde, 0x95, 0x83, 0xab, 0x0a, 0x82, 0x15, 0x1a, + 0x67, 0x74, 0x14, 0x3a, 0x0a, 0x4e, 0x1d, 0x95, 0x29, 0x88, 0x83, 0x7f, 0x36, 0xee, 0x32, 0x69, + 0x08, 0xd1, 0x36, 0x5f, 0x6d, 0x32, 0x33, 0x88, 0xb8, 0x11, 0x04, 0xf7, 0x6e, 0x5d, 0xf8, 0x20, + 0x3e, 0x82, 0x3b, 0x5f, 0xc1, 0x9d, 0x2f, 0xe0, 0x52, 0xd2, 0xa6, 0x4c, 0xc5, 0xa9, 0xb6, 0xdc, + 0x65, 0xd3, 0x73, 0xce, 0xf7, 0x3b, 0x24, 0x7c, 0x38, 0x14, 0x00, 0x22, 0xe3, 0x44, 0xd2, 0x9c, + 0xb0, 0x92, 0xa7, 0x5c, 0x19, 0x49, 0x33, 0x4d, 0xb6, 0x63, 0x7b, 0xd4, 0x3a, 0x09, 0x8b, 0x12, + 0x0c, 0x78, 0x17, 0x6a, 0x7d, 0x28, 0x69, 0x1e, 0xb6, 0xff, 0x6e, 0xc7, 0xa3, 0x8b, 0x2e, 0x8a, + 0x16, 0x92, 0x50, 0xa5, 0xc0, 0x50, 0x23, 0x41, 0x39, 0xe3, 0xe8, 0x72, 0xf7, 0x20, 0x06, 0x79, + 0x0e, 0xaa, 0xd6, 0x4d, 0x7e, 0x1e, 0xe3, 0x73, 0xcb, 0xf9, 0xa3, 0x7b, 0x7b, 0x89, 0xf7, 0x0d, + 0xe1, 0x93, 0x87, 0x5c, 0xf1, 0x92, 0x1a, 0x3e, 0x67, 0x8c, 0x6b, 0xfd, 0x0c, 0x5e, 0x71, 0xe5, + 0x4d, 0xc3, 0x4e, 0x98, 0xf0, 0x80, 0xfe, 0x09, 0x7f, 0xbd, 0xe1, 0xda, 0x8c, 0x6e, 0x0e, 0xb5, + 0xe9, 0x02, 0x94, 0xe6, 0xfe, 0x83, 0xf7, 0xdf, 0x7f, 0x7c, 0x3a, 0xba, 0xeb, 0xcf, 0x2c, 0xf3, + 0x5b, 0x45, 0x73, 0x7e, 0xa7, 0x28, 0xe1, 0x25, 0x67, 0x46, 0x93, 0x80, 0x68, 0x5e, 0x6e, 0x25, + 0xb3, 0x46, 0xd8, 0x28, 0x7b, 0xf2, 0x2e, 0x12, 0x7f, 0x87, 0x45, 0x28, 0xf0, 0xbe, 0x22, 0x7c, + 0xbe, 0x99, 0xb3, 0x4c, 0xeb, 0x2a, 0xe3, 0x1e, 0x4c, 0x4e, 0xdb, 0xd4, 0x98, 0x0c, 0xb1, 0xb8, + 0x0a, 0x71, 0x55, 0xe1, 0xb6, 0x7f, 0x6b, 0x68, 0x05, 0x17, 0x64, 0xf1, 0xbf, 0x20, 0x7c, 0xf6, + 0xa9, 0x14, 0x2a, 0xce, 0x60, 0xed, 0x05, 0xff, 0x80, 0x68, 0x44, 0x0d, 0xf0, 0xd5, 0x5e, 0x5a, + 0x47, 0x3a, 0xab, 0x48, 0xa7, 0xfe, 0xb5, 0xbe, 0xa4, 0xda, 0x25, 0x58, 0xc4, 0xcf, 0x08, 0x1f, + 0xdb, 0xc4, 0x64, 0x67, 0xbc, 0x2b, 0xff, 0x99, 0x9a, 0xec, 0x4c, 0x03, 0x18, 0xf4, 0x91, 0x3a, + 0xbe, 0xa8, 0xe2, 0xbb, 0xe1, 0x93, 0x21, 0x7c, 0xc9, 0xce, 0x58, 0xbc, 0x8f, 0x47, 0xd8, 0xdf, + 0xdf, 0x90, 0x1d, 0x62, 0xde, 0xc4, 0x52, 0xa5, 0x52, 0x89, 0xf6, 0xf3, 0x5e, 0xf4, 0xba, 0xe0, + 0x2e, 0x7b, 0x53, 0xea, 0xfe, 0x29, 0x53, 0x5c, 0xdf, 0xe7, 0x55, 0xdf, 0xc7, 0x7e, 0x32, 0xfc, + 0xe5, 0x74, 0x65, 0x47, 0x28, 0x88, 0x3f, 0x20, 0x7c, 0x89, 0x41, 0xde, 0x30, 0xb2, 0x0c, 0x36, + 0xe9, 0x01, 0xd2, 0xf8, 0xe4, 0xcf, 0x95, 0xb0, 0xb2, 0xab, 0x62, 0x85, 0x5e, 0x2c, 0x9c, 0x4f, + 0x40, 0x46, 0x95, 0x08, 0xa1, 0x14, 0x44, 0x70, 0x55, 0x2d, 0x12, 0x52, 0xff, 0xa2, 0x85, 0xd4, + 0x07, 0x76, 0xce, 0xac, 0xf5, 0xf9, 0x0b, 0xa1, 0xf5, 0x99, 0xca, 0x73, 0xfd, 0x77, 0x00, 0x00, + 0x00, 0xff, 0xff, 0x2e, 0x2e, 0xa2, 0x0d, 0x0f, 0x05, 0x00, 0x00, } diff --git a/vendor/google.golang.org/genproto/googleapis/pubsub/v1/pubsub.pb.go b/vendor/google.golang.org/genproto/googleapis/pubsub/v1/pubsub.pb.go index 2141a984e..39be637a0 100644 --- a/vendor/google.golang.org/genproto/googleapis/pubsub/v1/pubsub.pb.go +++ b/vendor/google.golang.org/genproto/googleapis/pubsub/v1/pubsub.pb.go @@ -29,8 +29,8 @@ var _ = math.Inf const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package type MessageStoragePolicy struct { - // The list of GCP regions where messages that are published to the topic may - // be persisted in storage. Messages published by publishers running in + // The list of GCP region IDs where messages that are published to the topic + // may be persisted in storage. Messages published by publishers running in // non-allowed GCP regions (or running outside of GCP altogether) will be // routed for storage in one of the allowed regions. An empty list indicates a // misconfiguration at the project or organization level, which will result in @@ -45,7 +45,7 @@ func (m *MessageStoragePolicy) Reset() { *m = MessageStoragePolicy{} } func (m *MessageStoragePolicy) String() string { return proto.CompactTextString(m) } func (*MessageStoragePolicy) ProtoMessage() {} func (*MessageStoragePolicy) Descriptor() ([]byte, []int) { - return fileDescriptor_pubsub_521f7d0e4d12b453, []int{0} + return fileDescriptor_pubsub_5db998c1dc179e5b, []int{0} } func (m *MessageStoragePolicy) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MessageStoragePolicy.Unmarshal(m, b) @@ -81,7 +81,8 @@ type Topic struct { // signs (`%`). It must be between 3 and 255 characters in length, and it // must not start with `"goog"`. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // See Creating and managing labels. + // See Creating and + // managing labels. Labels map[string]string `protobuf:"bytes,2,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Policy constraining how messages published to the topic may be stored. It // is determined when the topic is created based on the policy configured at @@ -99,7 +100,7 @@ func (m *Topic) Reset() { *m = Topic{} } func (m *Topic) String() string { return proto.CompactTextString(m) } func (*Topic) ProtoMessage() {} func (*Topic) Descriptor() ([]byte, []int) { - return fileDescriptor_pubsub_521f7d0e4d12b453, []int{1} + return fileDescriptor_pubsub_5db998c1dc179e5b, []int{1} } func (m *Topic) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Topic.Unmarshal(m, b) @@ -142,8 +143,12 @@ func (m *Topic) GetMessageStoragePolicy() *MessageStoragePolicy { // A message that is published by publishers and consumed by subscribers. The // message must contain either a non-empty data field or at least one attribute. -// See Quotas and limits for more information about -// message limits. +// Note that client libraries represent this object differently +// depending on the language. See the corresponding +// client +// library documentation for more information. See +// Quotas and limits +// for more information about message limits. type PubsubMessage struct { // The message data field. If this field is empty, the message must contain // at least one attribute. @@ -168,7 +173,7 @@ func (m *PubsubMessage) Reset() { *m = PubsubMessage{} } func (m *PubsubMessage) String() string { return proto.CompactTextString(m) } func (*PubsubMessage) ProtoMessage() {} func (*PubsubMessage) Descriptor() ([]byte, []int) { - return fileDescriptor_pubsub_521f7d0e4d12b453, []int{2} + return fileDescriptor_pubsub_5db998c1dc179e5b, []int{2} } func (m *PubsubMessage) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PubsubMessage.Unmarshal(m, b) @@ -230,7 +235,7 @@ func (m *GetTopicRequest) Reset() { *m = GetTopicRequest{} } func (m *GetTopicRequest) String() string { return proto.CompactTextString(m) } func (*GetTopicRequest) ProtoMessage() {} func (*GetTopicRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_pubsub_521f7d0e4d12b453, []int{3} + return fileDescriptor_pubsub_5db998c1dc179e5b, []int{3} } func (m *GetTopicRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetTopicRequest.Unmarshal(m, b) @@ -276,7 +281,7 @@ func (m *UpdateTopicRequest) Reset() { *m = UpdateTopicRequest{} } func (m *UpdateTopicRequest) String() string { return proto.CompactTextString(m) } func (*UpdateTopicRequest) ProtoMessage() {} func (*UpdateTopicRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_pubsub_521f7d0e4d12b453, []int{4} + return fileDescriptor_pubsub_5db998c1dc179e5b, []int{4} } func (m *UpdateTopicRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UpdateTopicRequest.Unmarshal(m, b) @@ -326,7 +331,7 @@ func (m *PublishRequest) Reset() { *m = PublishRequest{} } func (m *PublishRequest) String() string { return proto.CompactTextString(m) } func (*PublishRequest) ProtoMessage() {} func (*PublishRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_pubsub_521f7d0e4d12b453, []int{5} + return fileDescriptor_pubsub_5db998c1dc179e5b, []int{5} } func (m *PublishRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PublishRequest.Unmarshal(m, b) @@ -375,7 +380,7 @@ func (m *PublishResponse) Reset() { *m = PublishResponse{} } func (m *PublishResponse) String() string { return proto.CompactTextString(m) } func (*PublishResponse) ProtoMessage() {} func (*PublishResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_pubsub_521f7d0e4d12b453, []int{6} + return fileDescriptor_pubsub_5db998c1dc179e5b, []int{6} } func (m *PublishResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PublishResponse.Unmarshal(m, b) @@ -422,7 +427,7 @@ func (m *ListTopicsRequest) Reset() { *m = ListTopicsRequest{} } func (m *ListTopicsRequest) String() string { return proto.CompactTextString(m) } func (*ListTopicsRequest) ProtoMessage() {} func (*ListTopicsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_pubsub_521f7d0e4d12b453, []int{7} + return fileDescriptor_pubsub_5db998c1dc179e5b, []int{7} } func (m *ListTopicsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListTopicsRequest.Unmarshal(m, b) @@ -479,7 +484,7 @@ func (m *ListTopicsResponse) Reset() { *m = ListTopicsResponse{} } func (m *ListTopicsResponse) String() string { return proto.CompactTextString(m) } func (*ListTopicsResponse) ProtoMessage() {} func (*ListTopicsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_pubsub_521f7d0e4d12b453, []int{8} + return fileDescriptor_pubsub_5db998c1dc179e5b, []int{8} } func (m *ListTopicsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListTopicsResponse.Unmarshal(m, b) @@ -533,7 +538,7 @@ func (m *ListTopicSubscriptionsRequest) Reset() { *m = ListTopicSubscrip func (m *ListTopicSubscriptionsRequest) String() string { return proto.CompactTextString(m) } func (*ListTopicSubscriptionsRequest) ProtoMessage() {} func (*ListTopicSubscriptionsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_pubsub_521f7d0e4d12b453, []int{9} + return fileDescriptor_pubsub_5db998c1dc179e5b, []int{9} } func (m *ListTopicSubscriptionsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListTopicSubscriptionsRequest.Unmarshal(m, b) @@ -591,7 +596,7 @@ func (m *ListTopicSubscriptionsResponse) Reset() { *m = ListTopicSubscri func (m *ListTopicSubscriptionsResponse) String() string { return proto.CompactTextString(m) } func (*ListTopicSubscriptionsResponse) ProtoMessage() {} func (*ListTopicSubscriptionsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_pubsub_521f7d0e4d12b453, []int{10} + return fileDescriptor_pubsub_5db998c1dc179e5b, []int{10} } func (m *ListTopicSubscriptionsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListTopicSubscriptionsResponse.Unmarshal(m, b) @@ -625,8 +630,8 @@ func (m *ListTopicSubscriptionsResponse) GetNextPageToken() string { return "" } -// Request for the `ListTopicSnapshots` method.

-// ALPHA: This feature is part of an alpha release. This API might be +// Request for the `ListTopicSnapshots` method.

+// BETA: This feature is part of a beta release. This API might be // changed in backward-incompatible ways and is not recommended for production // use. It is not subject to any SLA or deprecation policy. type ListTopicSnapshotsRequest struct { @@ -648,7 +653,7 @@ func (m *ListTopicSnapshotsRequest) Reset() { *m = ListTopicSnapshotsReq func (m *ListTopicSnapshotsRequest) String() string { return proto.CompactTextString(m) } func (*ListTopicSnapshotsRequest) ProtoMessage() {} func (*ListTopicSnapshotsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_pubsub_521f7d0e4d12b453, []int{11} + return fileDescriptor_pubsub_5db998c1dc179e5b, []int{11} } func (m *ListTopicSnapshotsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListTopicSnapshotsRequest.Unmarshal(m, b) @@ -690,7 +695,7 @@ func (m *ListTopicSnapshotsRequest) GetPageToken() string { } // Response for the `ListTopicSnapshots` method.

-// ALPHA: This feature is part of an alpha release. This API might be +// BETA: This feature is part of a beta release. This API might be // changed in backward-incompatible ways and is not recommended for production // use. It is not subject to any SLA or deprecation policy. type ListTopicSnapshotsResponse struct { @@ -709,7 +714,7 @@ func (m *ListTopicSnapshotsResponse) Reset() { *m = ListTopicSnapshotsRe func (m *ListTopicSnapshotsResponse) String() string { return proto.CompactTextString(m) } func (*ListTopicSnapshotsResponse) ProtoMessage() {} func (*ListTopicSnapshotsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_pubsub_521f7d0e4d12b453, []int{12} + return fileDescriptor_pubsub_5db998c1dc179e5b, []int{12} } func (m *ListTopicSnapshotsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListTopicSnapshotsResponse.Unmarshal(m, b) @@ -757,7 +762,7 @@ func (m *DeleteTopicRequest) Reset() { *m = DeleteTopicRequest{} } func (m *DeleteTopicRequest) String() string { return proto.CompactTextString(m) } func (*DeleteTopicRequest) ProtoMessage() {} func (*DeleteTopicRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_pubsub_521f7d0e4d12b453, []int{13} + return fileDescriptor_pubsub_5db998c1dc179e5b, []int{13} } func (m *DeleteTopicRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteTopicRequest.Unmarshal(m, b) @@ -802,11 +807,11 @@ type Subscription struct { // used to configure it. An empty `pushConfig` signifies that the subscriber // will pull and ack messages using API methods. PushConfig *PushConfig `protobuf:"bytes,4,opt,name=push_config,json=pushConfig,proto3" json:"push_config,omitempty"` - // This value is the maximum time after a subscriber receives a message - // before the subscriber should acknowledge the message. After message - // delivery but before the ack deadline expires and before the message is - // acknowledged, it is an outstanding message and will not be delivered - // again during that time (on a best-effort basis). + // The approximate amount of time (on a best-effort basis) Pub/Sub waits for + // the subscriber to acknowledge receipt before resending the message. In the + // interval after the message is delivered and before it is acknowledged, it + // is considered to be outstanding. During that time period, the + // message will not be redelivered (on a best-effort basis). // // For pull subscriptions, this value is used as the initial value for the ack // deadline. To override this value for a given message, call @@ -826,8 +831,11 @@ type Subscription struct { // Indicates whether to retain acknowledged messages. If true, then // messages are not expunged from the subscription's backlog, even if they are // acknowledged, until they fall out of the `message_retention_duration` - // window.

- // ALPHA: This feature is part of an alpha release. This API might be + // window. This must be true if you would like to + // + // Seek to a timestamp. + //

+ // BETA: This feature is part of a beta release. This API might be // changed in backward-incompatible ways and is not recommended for production // use. It is not subject to any SLA or deprecation policy. RetainAckedMessages bool `protobuf:"varint,7,opt,name=retain_acked_messages,json=retainAckedMessages,proto3" json:"retain_acked_messages,omitempty"` @@ -837,11 +845,12 @@ type Subscription struct { // of acknowledged messages, and thus configures how far back in time a `Seek` // can be done. Defaults to 7 days. Cannot be more than 7 days or less than 10 // minutes.

- // ALPHA: This feature is part of an alpha release. This API might be + // BETA: This feature is part of a beta release. This API might be // changed in backward-incompatible ways and is not recommended for production // use. It is not subject to any SLA or deprecation policy. MessageRetentionDuration *duration.Duration `protobuf:"bytes,8,opt,name=message_retention_duration,json=messageRetentionDuration,proto3" json:"message_retention_duration,omitempty"` - // See Creating and managing labels. + // See Creating and + // managing labels. Labels map[string]string `protobuf:"bytes,9,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // A policy that specifies the conditions for this subscription's expiration. // A subscription is considered active as long as any connected subscriber is @@ -862,7 +871,7 @@ func (m *Subscription) Reset() { *m = Subscription{} } func (m *Subscription) String() string { return proto.CompactTextString(m) } func (*Subscription) ProtoMessage() {} func (*Subscription) Descriptor() ([]byte, []int) { - return fileDescriptor_pubsub_521f7d0e4d12b453, []int{14} + return fileDescriptor_pubsub_5db998c1dc179e5b, []int{14} } func (m *Subscription) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Subscription.Unmarshal(m, b) @@ -957,7 +966,7 @@ func (m *ExpirationPolicy) Reset() { *m = ExpirationPolicy{} } func (m *ExpirationPolicy) String() string { return proto.CompactTextString(m) } func (*ExpirationPolicy) ProtoMessage() {} func (*ExpirationPolicy) Descriptor() ([]byte, []int) { - return fileDescriptor_pubsub_521f7d0e4d12b453, []int{15} + return fileDescriptor_pubsub_5db998c1dc179e5b, []int{15} } func (m *ExpirationPolicy) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ExpirationPolicy.Unmarshal(m, b) @@ -1020,7 +1029,7 @@ func (m *PushConfig) Reset() { *m = PushConfig{} } func (m *PushConfig) String() string { return proto.CompactTextString(m) } func (*PushConfig) ProtoMessage() {} func (*PushConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_pubsub_521f7d0e4d12b453, []int{16} + return fileDescriptor_pubsub_5db998c1dc179e5b, []int{16} } func (m *PushConfig) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PushConfig.Unmarshal(m, b) @@ -1069,7 +1078,7 @@ func (m *ReceivedMessage) Reset() { *m = ReceivedMessage{} } func (m *ReceivedMessage) String() string { return proto.CompactTextString(m) } func (*ReceivedMessage) ProtoMessage() {} func (*ReceivedMessage) Descriptor() ([]byte, []int) { - return fileDescriptor_pubsub_521f7d0e4d12b453, []int{17} + return fileDescriptor_pubsub_5db998c1dc179e5b, []int{17} } func (m *ReceivedMessage) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ReceivedMessage.Unmarshal(m, b) @@ -1117,7 +1126,7 @@ func (m *GetSubscriptionRequest) Reset() { *m = GetSubscriptionRequest{} func (m *GetSubscriptionRequest) String() string { return proto.CompactTextString(m) } func (*GetSubscriptionRequest) ProtoMessage() {} func (*GetSubscriptionRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_pubsub_521f7d0e4d12b453, []int{18} + return fileDescriptor_pubsub_5db998c1dc179e5b, []int{18} } func (m *GetSubscriptionRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetSubscriptionRequest.Unmarshal(m, b) @@ -1160,7 +1169,7 @@ func (m *UpdateSubscriptionRequest) Reset() { *m = UpdateSubscriptionReq func (m *UpdateSubscriptionRequest) String() string { return proto.CompactTextString(m) } func (*UpdateSubscriptionRequest) ProtoMessage() {} func (*UpdateSubscriptionRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_pubsub_521f7d0e4d12b453, []int{19} + return fileDescriptor_pubsub_5db998c1dc179e5b, []int{19} } func (m *UpdateSubscriptionRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UpdateSubscriptionRequest.Unmarshal(m, b) @@ -1214,7 +1223,7 @@ func (m *ListSubscriptionsRequest) Reset() { *m = ListSubscriptionsReque func (m *ListSubscriptionsRequest) String() string { return proto.CompactTextString(m) } func (*ListSubscriptionsRequest) ProtoMessage() {} func (*ListSubscriptionsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_pubsub_521f7d0e4d12b453, []int{20} + return fileDescriptor_pubsub_5db998c1dc179e5b, []int{20} } func (m *ListSubscriptionsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListSubscriptionsRequest.Unmarshal(m, b) @@ -1272,7 +1281,7 @@ func (m *ListSubscriptionsResponse) Reset() { *m = ListSubscriptionsResp func (m *ListSubscriptionsResponse) String() string { return proto.CompactTextString(m) } func (*ListSubscriptionsResponse) ProtoMessage() {} func (*ListSubscriptionsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_pubsub_521f7d0e4d12b453, []int{21} + return fileDescriptor_pubsub_5db998c1dc179e5b, []int{21} } func (m *ListSubscriptionsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListSubscriptionsResponse.Unmarshal(m, b) @@ -1320,7 +1329,7 @@ func (m *DeleteSubscriptionRequest) Reset() { *m = DeleteSubscriptionReq func (m *DeleteSubscriptionRequest) String() string { return proto.CompactTextString(m) } func (*DeleteSubscriptionRequest) ProtoMessage() {} func (*DeleteSubscriptionRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_pubsub_521f7d0e4d12b453, []int{22} + return fileDescriptor_pubsub_5db998c1dc179e5b, []int{22} } func (m *DeleteSubscriptionRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteSubscriptionRequest.Unmarshal(m, b) @@ -1368,7 +1377,7 @@ func (m *ModifyPushConfigRequest) Reset() { *m = ModifyPushConfigRequest func (m *ModifyPushConfigRequest) String() string { return proto.CompactTextString(m) } func (*ModifyPushConfigRequest) ProtoMessage() {} func (*ModifyPushConfigRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_pubsub_521f7d0e4d12b453, []int{23} + return fileDescriptor_pubsub_5db998c1dc179e5b, []int{23} } func (m *ModifyPushConfigRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ModifyPushConfigRequest.Unmarshal(m, b) @@ -1424,7 +1433,7 @@ func (m *PullRequest) Reset() { *m = PullRequest{} } func (m *PullRequest) String() string { return proto.CompactTextString(m) } func (*PullRequest) ProtoMessage() {} func (*PullRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_pubsub_521f7d0e4d12b453, []int{24} + return fileDescriptor_pubsub_5db998c1dc179e5b, []int{24} } func (m *PullRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullRequest.Unmarshal(m, b) @@ -1481,7 +1490,7 @@ func (m *PullResponse) Reset() { *m = PullResponse{} } func (m *PullResponse) String() string { return proto.CompactTextString(m) } func (*PullResponse) ProtoMessage() {} func (*PullResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_pubsub_521f7d0e4d12b453, []int{25} + return fileDescriptor_pubsub_5db998c1dc179e5b, []int{25} } func (m *PullResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullResponse.Unmarshal(m, b) @@ -1518,8 +1527,9 @@ type ModifyAckDeadlineRequest struct { // The new ack deadline with respect to the time this request was sent to // the Pub/Sub system. For example, if the value is 10, the new // ack deadline will expire 10 seconds after the `ModifyAckDeadline` call - // was made. Specifying zero may immediately make the message available for - // another pull request. + // was made. Specifying zero might immediately make the message available for + // delivery to another subscriber client. This typically results in an + // increase in the rate of message redeliveries (that is, duplicates). // The minimum deadline you can specify is 0 seconds. // The maximum deadline you can specify is 600 seconds (10 minutes). AckDeadlineSeconds int32 `protobuf:"varint,3,opt,name=ack_deadline_seconds,json=ackDeadlineSeconds,proto3" json:"ack_deadline_seconds,omitempty"` @@ -1532,7 +1542,7 @@ func (m *ModifyAckDeadlineRequest) Reset() { *m = ModifyAckDeadlineReque func (m *ModifyAckDeadlineRequest) String() string { return proto.CompactTextString(m) } func (*ModifyAckDeadlineRequest) ProtoMessage() {} func (*ModifyAckDeadlineRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_pubsub_521f7d0e4d12b453, []int{26} + return fileDescriptor_pubsub_5db998c1dc179e5b, []int{26} } func (m *ModifyAckDeadlineRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ModifyAckDeadlineRequest.Unmarshal(m, b) @@ -1590,7 +1600,7 @@ func (m *AcknowledgeRequest) Reset() { *m = AcknowledgeRequest{} } func (m *AcknowledgeRequest) String() string { return proto.CompactTextString(m) } func (*AcknowledgeRequest) ProtoMessage() {} func (*AcknowledgeRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_pubsub_521f7d0e4d12b453, []int{27} + return fileDescriptor_pubsub_5db998c1dc179e5b, []int{27} } func (m *AcknowledgeRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AcknowledgeRequest.Unmarshal(m, b) @@ -1671,7 +1681,7 @@ func (m *StreamingPullRequest) Reset() { *m = StreamingPullRequest{} } func (m *StreamingPullRequest) String() string { return proto.CompactTextString(m) } func (*StreamingPullRequest) ProtoMessage() {} func (*StreamingPullRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_pubsub_521f7d0e4d12b453, []int{28} + return fileDescriptor_pubsub_5db998c1dc179e5b, []int{28} } func (m *StreamingPullRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_StreamingPullRequest.Unmarshal(m, b) @@ -1740,7 +1750,7 @@ func (m *StreamingPullResponse) Reset() { *m = StreamingPullResponse{} } func (m *StreamingPullResponse) String() string { return proto.CompactTextString(m) } func (*StreamingPullResponse) ProtoMessage() {} func (*StreamingPullResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_pubsub_521f7d0e4d12b453, []int{29} + return fileDescriptor_pubsub_5db998c1dc179e5b, []int{29} } func (m *StreamingPullResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_StreamingPullResponse.Unmarshal(m, b) @@ -1768,7 +1778,7 @@ func (m *StreamingPullResponse) GetReceivedMessages() []*ReceivedMessage { } // Request for the `CreateSnapshot` method.

-// ALPHA: This feature is part of an alpha release. This API might be changed in +// BETA: This feature is part of a beta release. This API might be changed in // backward-incompatible ways and is not recommended for production use. // It is not subject to any SLA or deprecation policy. type CreateSnapshotRequest struct { @@ -1776,7 +1786,8 @@ type CreateSnapshotRequest struct { // If the name is not provided in the request, the server will assign a random // name for this snapshot on the same project as the subscription. // Note that for REST API requests, you must specify a name. See the - // resource name rules. + // + // resource name rules. // Format is `projects/{project}/snapshots/{snap}`. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // The subscription whose backlog the snapshot retains. @@ -1789,7 +1800,8 @@ type CreateSnapshotRequest struct { // successful completion of the CreateSnapshot request. // Format is `projects/{project}/subscriptions/{sub}`. Subscription string `protobuf:"bytes,2,opt,name=subscription,proto3" json:"subscription,omitempty"` - // See Creating and managing labels. + // See Creating and + // managing labels. Labels map[string]string `protobuf:"bytes,3,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -1800,7 +1812,7 @@ func (m *CreateSnapshotRequest) Reset() { *m = CreateSnapshotRequest{} } func (m *CreateSnapshotRequest) String() string { return proto.CompactTextString(m) } func (*CreateSnapshotRequest) ProtoMessage() {} func (*CreateSnapshotRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_pubsub_521f7d0e4d12b453, []int{30} + return fileDescriptor_pubsub_5db998c1dc179e5b, []int{30} } func (m *CreateSnapshotRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateSnapshotRequest.Unmarshal(m, b) @@ -1842,7 +1854,7 @@ func (m *CreateSnapshotRequest) GetLabels() map[string]string { } // Request for the UpdateSnapshot method.

-// ALPHA: This feature is part of an alpha release. This API might be +// BETA: This feature is part of a beta release. This API might be // changed in backward-incompatible ways and is not recommended for production // use. It is not subject to any SLA or deprecation policy. type UpdateSnapshotRequest struct { @@ -1860,7 +1872,7 @@ func (m *UpdateSnapshotRequest) Reset() { *m = UpdateSnapshotRequest{} } func (m *UpdateSnapshotRequest) String() string { return proto.CompactTextString(m) } func (*UpdateSnapshotRequest) ProtoMessage() {} func (*UpdateSnapshotRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_pubsub_521f7d0e4d12b453, []int{31} + return fileDescriptor_pubsub_5db998c1dc179e5b, []int{31} } func (m *UpdateSnapshotRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UpdateSnapshotRequest.Unmarshal(m, b) @@ -1894,8 +1906,13 @@ func (m *UpdateSnapshotRequest) GetUpdateMask() *field_mask.FieldMask { return nil } -// A snapshot resource.

-// ALPHA: This feature is part of an alpha release. This API might be +// A snapshot resource. Snapshots are used in +// Seek +// operations, which allow +// you to manage message acknowledgments in bulk. That is, you can set the +// acknowledgment state of messages in an existing subscription to the state +// captured by a snapshot.

+// BETA: This feature is part of a beta release. This API might be // changed in backward-incompatible ways and is not recommended for production // use. It is not subject to any SLA or deprecation policy. type Snapshot struct { @@ -1914,7 +1931,8 @@ type Snapshot struct { // exists -- will expire in 4 days. The service will refuse to create a // snapshot that would expire in less than 1 hour after creation. ExpireTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=expire_time,json=expireTime,proto3" json:"expire_time,omitempty"` - // See Creating and managing labels. + // See Creating and + // managing labels. Labels map[string]string `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -1925,7 +1943,7 @@ func (m *Snapshot) Reset() { *m = Snapshot{} } func (m *Snapshot) String() string { return proto.CompactTextString(m) } func (*Snapshot) ProtoMessage() {} func (*Snapshot) Descriptor() ([]byte, []int) { - return fileDescriptor_pubsub_521f7d0e4d12b453, []int{32} + return fileDescriptor_pubsub_5db998c1dc179e5b, []int{32} } func (m *Snapshot) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Snapshot.Unmarshal(m, b) @@ -1974,7 +1992,7 @@ func (m *Snapshot) GetLabels() map[string]string { } // Request for the GetSnapshot method.

-// ALPHA: This feature is part of an alpha release. This API might be +// BETA: This feature is part of a beta release. This API might be // changed in backward-incompatible ways and is not recommended for production // use. It is not subject to any SLA or deprecation policy. type GetSnapshotRequest struct { @@ -1990,7 +2008,7 @@ func (m *GetSnapshotRequest) Reset() { *m = GetSnapshotRequest{} } func (m *GetSnapshotRequest) String() string { return proto.CompactTextString(m) } func (*GetSnapshotRequest) ProtoMessage() {} func (*GetSnapshotRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_pubsub_521f7d0e4d12b453, []int{33} + return fileDescriptor_pubsub_5db998c1dc179e5b, []int{33} } func (m *GetSnapshotRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetSnapshotRequest.Unmarshal(m, b) @@ -2018,7 +2036,7 @@ func (m *GetSnapshotRequest) GetSnapshot() string { } // Request for the `ListSnapshots` method.

-// ALPHA: This feature is part of an alpha release. This API might be +// BETA: This feature is part of a beta release. This API might be // changed in backward-incompatible ways and is not recommended for production // use. It is not subject to any SLA or deprecation policy. type ListSnapshotsRequest struct { @@ -2040,7 +2058,7 @@ func (m *ListSnapshotsRequest) Reset() { *m = ListSnapshotsRequest{} } func (m *ListSnapshotsRequest) String() string { return proto.CompactTextString(m) } func (*ListSnapshotsRequest) ProtoMessage() {} func (*ListSnapshotsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_pubsub_521f7d0e4d12b453, []int{34} + return fileDescriptor_pubsub_5db998c1dc179e5b, []int{34} } func (m *ListSnapshotsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListSnapshotsRequest.Unmarshal(m, b) @@ -2082,7 +2100,7 @@ func (m *ListSnapshotsRequest) GetPageToken() string { } // Response for the `ListSnapshots` method.

-// ALPHA: This feature is part of an alpha release. This API might be +// BETA: This feature is part of a beta release. This API might be // changed in backward-incompatible ways and is not recommended for production // use. It is not subject to any SLA or deprecation policy. type ListSnapshotsResponse struct { @@ -2100,7 +2118,7 @@ func (m *ListSnapshotsResponse) Reset() { *m = ListSnapshotsResponse{} } func (m *ListSnapshotsResponse) String() string { return proto.CompactTextString(m) } func (*ListSnapshotsResponse) ProtoMessage() {} func (*ListSnapshotsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_pubsub_521f7d0e4d12b453, []int{35} + return fileDescriptor_pubsub_5db998c1dc179e5b, []int{35} } func (m *ListSnapshotsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListSnapshotsResponse.Unmarshal(m, b) @@ -2135,7 +2153,7 @@ func (m *ListSnapshotsResponse) GetNextPageToken() string { } // Request for the `DeleteSnapshot` method.

-// ALPHA: This feature is part of an alpha release. This API might be +// BETA: This feature is part of a beta release. This API might be // changed in backward-incompatible ways and is not recommended for production // use. It is not subject to any SLA or deprecation policy. type DeleteSnapshotRequest struct { @@ -2151,7 +2169,7 @@ func (m *DeleteSnapshotRequest) Reset() { *m = DeleteSnapshotRequest{} } func (m *DeleteSnapshotRequest) String() string { return proto.CompactTextString(m) } func (*DeleteSnapshotRequest) ProtoMessage() {} func (*DeleteSnapshotRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_pubsub_521f7d0e4d12b453, []int{36} + return fileDescriptor_pubsub_5db998c1dc179e5b, []int{36} } func (m *DeleteSnapshotRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteSnapshotRequest.Unmarshal(m, b) @@ -2178,8 +2196,8 @@ func (m *DeleteSnapshotRequest) GetSnapshot() string { return "" } -// Request for the `Seek` method.

-// ALPHA: This feature is part of an alpha release. This API might be +// Request for the `Seek` method.

+// BETA: This feature is part of a beta release. This API might be // changed in backward-incompatible ways and is not recommended for production // use. It is not subject to any SLA or deprecation policy. type SeekRequest struct { @@ -2198,7 +2216,7 @@ func (m *SeekRequest) Reset() { *m = SeekRequest{} } func (m *SeekRequest) String() string { return proto.CompactTextString(m) } func (*SeekRequest) ProtoMessage() {} func (*SeekRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_pubsub_521f7d0e4d12b453, []int{37} + return fileDescriptor_pubsub_5db998c1dc179e5b, []int{37} } func (m *SeekRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SeekRequest.Unmarshal(m, b) @@ -2343,7 +2361,7 @@ func (m *SeekResponse) Reset() { *m = SeekResponse{} } func (m *SeekResponse) String() string { return proto.CompactTextString(m) } func (*SeekResponse) ProtoMessage() {} func (*SeekResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_pubsub_521f7d0e4d12b453, []int{38} + return fileDescriptor_pubsub_5db998c1dc179e5b, []int{38} } func (m *SeekResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SeekResponse.Unmarshal(m, b) @@ -2424,7 +2442,8 @@ const _ = grpc.SupportPackageIsVersion4 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type PublisherClient interface { // Creates the given topic with the given name. See the - // resource name rules. + // + // resource name rules. CreateTopic(ctx context.Context, in *Topic, opts ...grpc.CallOption) (*Topic, error) // Updates an existing topic. Note that certain properties of a // topic are not modifiable. @@ -2438,8 +2457,13 @@ type PublisherClient interface { ListTopics(ctx context.Context, in *ListTopicsRequest, opts ...grpc.CallOption) (*ListTopicsResponse, error) // Lists the names of the subscriptions on this topic. ListTopicSubscriptions(ctx context.Context, in *ListTopicSubscriptionsRequest, opts ...grpc.CallOption) (*ListTopicSubscriptionsResponse, error) - // Lists the names of the snapshots on this topic.

- // ALPHA: This feature is part of an alpha release. This API might be + // Lists the names of the snapshots on this topic. Snapshots are used in + // Seek + // operations, which allow + // you to manage message acknowledgments in bulk. That is, you can set the + // acknowledgment state of messages in an existing subscription to the state + // captured by a snapshot.

+ // BETA: This feature is part of a beta release. This API might be // changed in backward-incompatible ways and is not recommended for production // use. It is not subject to any SLA or deprecation policy. ListTopicSnapshots(ctx context.Context, in *ListTopicSnapshotsRequest, opts ...grpc.CallOption) (*ListTopicSnapshotsResponse, error) @@ -2534,7 +2558,8 @@ func (c *publisherClient) DeleteTopic(ctx context.Context, in *DeleteTopicReques // PublisherServer is the server API for Publisher service. type PublisherServer interface { // Creates the given topic with the given name. See the - // resource name rules. + // + // resource name rules. CreateTopic(context.Context, *Topic) (*Topic, error) // Updates an existing topic. Note that certain properties of a // topic are not modifiable. @@ -2548,8 +2573,13 @@ type PublisherServer interface { ListTopics(context.Context, *ListTopicsRequest) (*ListTopicsResponse, error) // Lists the names of the subscriptions on this topic. ListTopicSubscriptions(context.Context, *ListTopicSubscriptionsRequest) (*ListTopicSubscriptionsResponse, error) - // Lists the names of the snapshots on this topic.

- // ALPHA: This feature is part of an alpha release. This API might be + // Lists the names of the snapshots on this topic. Snapshots are used in + // Seek + // operations, which allow + // you to manage message acknowledgments in bulk. That is, you can set the + // acknowledgment state of messages in an existing subscription to the state + // captured by a snapshot.

+ // BETA: This feature is part of a beta release. This API might be // changed in backward-incompatible ways and is not recommended for production // use. It is not subject to any SLA or deprecation policy. ListTopicSnapshots(context.Context, *ListTopicSnapshotsRequest) (*ListTopicSnapshotsResponse, error) @@ -2755,14 +2785,15 @@ var _Publisher_serviceDesc = grpc.ServiceDesc{ // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type SubscriberClient interface { // Creates a subscription to a given topic. See the - // resource name rules. + // + // resource name rules. // If the subscription already exists, returns `ALREADY_EXISTS`. // If the corresponding topic doesn't exist, returns `NOT_FOUND`. // // If the name is not provided in the request, the server will assign a random // name for this subscription on the same project as the topic, conforming // to the - // [resource name format](https://cloud.google.com/pubsub/docs/overview#names). + // [resource name format](https://cloud.google.com/pubsub/docs/admin#resource_names). // The generated name is populated in the returned Subscription object. // Note that for REST API requests, you must specify a name in the request. CreateSubscription(ctx context.Context, in *Subscription, opts ...grpc.CallOption) (*Subscription, error) @@ -2812,18 +2843,33 @@ type SubscriberClient interface { // attributes of a push subscription. Messages will accumulate for delivery // continuously through the call regardless of changes to the `PushConfig`. ModifyPushConfig(ctx context.Context, in *ModifyPushConfigRequest, opts ...grpc.CallOption) (*empty.Empty, error) - // Gets the configuration details of a snapshot.

- // ALPHA: This feature is part of an alpha release. This API might be + // Gets the configuration details of a snapshot. Snapshots are used in + // Seek + // operations, which allow you to manage message acknowledgments in bulk. That + // is, you can set the acknowledgment state of messages in an existing + // subscription to the state captured by a snapshot.

+ // BETA: This feature is part of a beta release. This API might be // changed in backward-incompatible ways and is not recommended for production // use. It is not subject to any SLA or deprecation policy. GetSnapshot(ctx context.Context, in *GetSnapshotRequest, opts ...grpc.CallOption) (*Snapshot, error) - // Lists the existing snapshots.

- // ALPHA: This feature is part of an alpha release. This API might be + // Lists the existing snapshots. Snapshots are used in + // Seek + // operations, which allow + // you to manage message acknowledgments in bulk. That is, you can set the + // acknowledgment state of messages in an existing subscription to the state + // captured by a snapshot.

+ // BETA: This feature is part of a beta release. This API might be // changed in backward-incompatible ways and is not recommended for production // use. It is not subject to any SLA or deprecation policy. ListSnapshots(ctx context.Context, in *ListSnapshotsRequest, opts ...grpc.CallOption) (*ListSnapshotsResponse, error) - // Creates a snapshot from the requested subscription.

- // ALPHA: This feature is part of an alpha release. This API might be + // Creates a snapshot from the requested subscription. Snapshots are used in + // Seek + // operations, which allow + // you to manage message acknowledgments in bulk. That is, you can set the + // acknowledgment state of messages in an existing subscription to the state + // captured by a snapshot. + //

+ // BETA: This feature is part of a beta release. This API might be // changed in backward-incompatible ways and is not recommended for production // use. It is not subject to any SLA or deprecation policy.

// If the snapshot already exists, returns `ALREADY_EXISTS`. @@ -2833,19 +2879,29 @@ type SubscriberClient interface { // See also the `Snapshot.expire_time` field. If the name is not provided in // the request, the server will assign a random // name for this snapshot on the same project as the subscription, conforming - // to the [resource name format](https://cloud.google.com/pubsub/docs/overview#names). - // The generated - // name is populated in the returned Snapshot object. Note that for REST API - // requests, you must specify a name in the request. + // to the + // [resource name format](https://cloud.google.com/pubsub/docs/admin#resource_names). + // The generated name is populated in the returned Snapshot object. Note that + // for REST API requests, you must specify a name in the request. CreateSnapshot(ctx context.Context, in *CreateSnapshotRequest, opts ...grpc.CallOption) (*Snapshot, error) - // Updates an existing snapshot.

- // ALPHA: This feature is part of an alpha release. This API might be + // Updates an existing snapshot. Snapshots are used in + // Seek + // operations, which allow + // you to manage message acknowledgments in bulk. That is, you can set the + // acknowledgment state of messages in an existing subscription to the state + // captured by a snapshot.

+ // BETA: This feature is part of a beta release. This API might be // changed in backward-incompatible ways and is not recommended for production // use. It is not subject to any SLA or deprecation policy. // Note that certain properties of a snapshot are not modifiable. UpdateSnapshot(ctx context.Context, in *UpdateSnapshotRequest, opts ...grpc.CallOption) (*Snapshot, error) - // Removes an existing snapshot.

- // ALPHA: This feature is part of an alpha release. This API might be + // Removes an existing snapshot. Snapshots are used in + // Seek + // operations, which allow + // you to manage message acknowledgments in bulk. That is, you can set the + // acknowledgment state of messages in an existing subscription to the state + // captured by a snapshot.

+ // BETA: This feature is part of a beta release. This API might be // changed in backward-incompatible ways and is not recommended for production // use. It is not subject to any SLA or deprecation policy. // When the snapshot is deleted, all messages retained in the snapshot @@ -2854,8 +2910,14 @@ type SubscriberClient interface { // snapshot or its subscription, unless the same subscription is specified. DeleteSnapshot(ctx context.Context, in *DeleteSnapshotRequest, opts ...grpc.CallOption) (*empty.Empty, error) // Seeks an existing subscription to a point in time or to a given snapshot, - // whichever is provided in the request.

- // ALPHA: This feature is part of an alpha release. This API might be + // whichever is provided in the request. Snapshots are used in + // Seek + // operations, which allow + // you to manage message acknowledgments in bulk. That is, you can set the + // acknowledgment state of messages in an existing subscription to the state + // captured by a snapshot. Note that both the subscription and the snapshot + // must be on the same topic.

+ // BETA: This feature is part of a beta release. This API might be // changed in backward-incompatible ways and is not recommended for production // use. It is not subject to any SLA or deprecation policy. Seek(ctx context.Context, in *SeekRequest, opts ...grpc.CallOption) (*SeekResponse, error) @@ -3038,14 +3100,15 @@ func (c *subscriberClient) Seek(ctx context.Context, in *SeekRequest, opts ...gr // SubscriberServer is the server API for Subscriber service. type SubscriberServer interface { // Creates a subscription to a given topic. See the - // resource name rules. + // + // resource name rules. // If the subscription already exists, returns `ALREADY_EXISTS`. // If the corresponding topic doesn't exist, returns `NOT_FOUND`. // // If the name is not provided in the request, the server will assign a random // name for this subscription on the same project as the topic, conforming // to the - // [resource name format](https://cloud.google.com/pubsub/docs/overview#names). + // [resource name format](https://cloud.google.com/pubsub/docs/admin#resource_names). // The generated name is populated in the returned Subscription object. // Note that for REST API requests, you must specify a name in the request. CreateSubscription(context.Context, *Subscription) (*Subscription, error) @@ -3095,18 +3158,33 @@ type SubscriberServer interface { // attributes of a push subscription. Messages will accumulate for delivery // continuously through the call regardless of changes to the `PushConfig`. ModifyPushConfig(context.Context, *ModifyPushConfigRequest) (*empty.Empty, error) - // Gets the configuration details of a snapshot.

- // ALPHA: This feature is part of an alpha release. This API might be + // Gets the configuration details of a snapshot. Snapshots are used in + // Seek + // operations, which allow you to manage message acknowledgments in bulk. That + // is, you can set the acknowledgment state of messages in an existing + // subscription to the state captured by a snapshot.

+ // BETA: This feature is part of a beta release. This API might be // changed in backward-incompatible ways and is not recommended for production // use. It is not subject to any SLA or deprecation policy. GetSnapshot(context.Context, *GetSnapshotRequest) (*Snapshot, error) - // Lists the existing snapshots.

- // ALPHA: This feature is part of an alpha release. This API might be + // Lists the existing snapshots. Snapshots are used in + // Seek + // operations, which allow + // you to manage message acknowledgments in bulk. That is, you can set the + // acknowledgment state of messages in an existing subscription to the state + // captured by a snapshot.

+ // BETA: This feature is part of a beta release. This API might be // changed in backward-incompatible ways and is not recommended for production // use. It is not subject to any SLA or deprecation policy. ListSnapshots(context.Context, *ListSnapshotsRequest) (*ListSnapshotsResponse, error) - // Creates a snapshot from the requested subscription.

- // ALPHA: This feature is part of an alpha release. This API might be + // Creates a snapshot from the requested subscription. Snapshots are used in + // Seek + // operations, which allow + // you to manage message acknowledgments in bulk. That is, you can set the + // acknowledgment state of messages in an existing subscription to the state + // captured by a snapshot. + //

+ // BETA: This feature is part of a beta release. This API might be // changed in backward-incompatible ways and is not recommended for production // use. It is not subject to any SLA or deprecation policy.

// If the snapshot already exists, returns `ALREADY_EXISTS`. @@ -3116,19 +3194,29 @@ type SubscriberServer interface { // See also the `Snapshot.expire_time` field. If the name is not provided in // the request, the server will assign a random // name for this snapshot on the same project as the subscription, conforming - // to the [resource name format](https://cloud.google.com/pubsub/docs/overview#names). - // The generated - // name is populated in the returned Snapshot object. Note that for REST API - // requests, you must specify a name in the request. + // to the + // [resource name format](https://cloud.google.com/pubsub/docs/admin#resource_names). + // The generated name is populated in the returned Snapshot object. Note that + // for REST API requests, you must specify a name in the request. CreateSnapshot(context.Context, *CreateSnapshotRequest) (*Snapshot, error) - // Updates an existing snapshot.

- // ALPHA: This feature is part of an alpha release. This API might be + // Updates an existing snapshot. Snapshots are used in + // Seek + // operations, which allow + // you to manage message acknowledgments in bulk. That is, you can set the + // acknowledgment state of messages in an existing subscription to the state + // captured by a snapshot.

+ // BETA: This feature is part of a beta release. This API might be // changed in backward-incompatible ways and is not recommended for production // use. It is not subject to any SLA or deprecation policy. // Note that certain properties of a snapshot are not modifiable. UpdateSnapshot(context.Context, *UpdateSnapshotRequest) (*Snapshot, error) - // Removes an existing snapshot.

- // ALPHA: This feature is part of an alpha release. This API might be + // Removes an existing snapshot. Snapshots are used in + // Seek + // operations, which allow + // you to manage message acknowledgments in bulk. That is, you can set the + // acknowledgment state of messages in an existing subscription to the state + // captured by a snapshot.

+ // BETA: This feature is part of a beta release. This API might be // changed in backward-incompatible ways and is not recommended for production // use. It is not subject to any SLA or deprecation policy. // When the snapshot is deleted, all messages retained in the snapshot @@ -3137,8 +3225,14 @@ type SubscriberServer interface { // snapshot or its subscription, unless the same subscription is specified. DeleteSnapshot(context.Context, *DeleteSnapshotRequest) (*empty.Empty, error) // Seeks an existing subscription to a point in time or to a given snapshot, - // whichever is provided in the request.

- // ALPHA: This feature is part of an alpha release. This API might be + // whichever is provided in the request. Snapshots are used in + // Seek + // operations, which allow + // you to manage message acknowledgments in bulk. That is, you can set the + // acknowledgment state of messages in an existing subscription to the state + // captured by a snapshot. Note that both the subscription and the snapshot + // must be on the same topic.

+ // BETA: This feature is part of a beta release. This API might be // changed in backward-incompatible ways and is not recommended for production // use. It is not subject to any SLA or deprecation policy. Seek(context.Context, *SeekRequest) (*SeekResponse, error) @@ -3521,150 +3615,151 @@ var _Subscriber_serviceDesc = grpc.ServiceDesc{ } func init() { - proto.RegisterFile("google/pubsub/v1/pubsub.proto", fileDescriptor_pubsub_521f7d0e4d12b453) + proto.RegisterFile("google/pubsub/v1/pubsub.proto", fileDescriptor_pubsub_5db998c1dc179e5b) } -var fileDescriptor_pubsub_521f7d0e4d12b453 = []byte{ - // 2244 bytes of a gzipped FileDescriptorProto +var fileDescriptor_pubsub_5db998c1dc179e5b = []byte{ + // 2261 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x5a, 0xcd, 0x73, 0x1b, 0x49, - 0x15, 0xcf, 0x48, 0x8e, 0x23, 0xbf, 0xb1, 0x63, 0xbb, 0xb1, 0x1d, 0x79, 0xf2, 0x65, 0x4f, 0x8c, - 0xed, 0xc8, 0x89, 0x64, 0x2b, 0xb5, 0x61, 0x13, 0xe3, 0xa4, 0xec, 0x38, 0x64, 0x03, 0x09, 0x6b, + 0x15, 0xcf, 0x48, 0x8e, 0x23, 0xbf, 0xb1, 0x13, 0xbb, 0xb1, 0x13, 0x79, 0xf2, 0xe5, 0x4c, 0x8c, + 0xed, 0xc8, 0x89, 0x64, 0x2b, 0xb5, 0x61, 0x23, 0xe3, 0xa4, 0xec, 0x38, 0x64, 0x03, 0x09, 0x6b, 0xc6, 0x21, 0x54, 0x51, 0x29, 0x54, 0x23, 0xa9, 0xad, 0xcc, 0x6a, 0x34, 0x33, 0x3b, 0x33, 0xf2, - 0xc6, 0x0b, 0xa1, 0xc2, 0x2e, 0xb5, 0x55, 0x14, 0x39, 0xb0, 0xcb, 0x75, 0x0f, 0x14, 0xdc, 0x38, - 0xf2, 0x07, 0xc0, 0x9d, 0x2b, 0x07, 0xfe, 0x01, 0x8e, 0x5c, 0xb8, 0xc1, 0x8d, 0xea, 0x8f, 0x19, - 0xcd, 0x47, 0x8f, 0x64, 0xd9, 0x9b, 0xdb, 0xa8, 0xfb, 0x75, 0xbf, 0xdf, 0xfb, 0xee, 0xf7, 0x4a, - 0x70, 0xb9, 0x65, 0xdb, 0x2d, 0x13, 0x57, 0x9c, 0x6e, 0xdd, 0xeb, 0xd6, 0x2b, 0x87, 0x1b, 0xfc, - 0xab, 0xec, 0xb8, 0xb6, 0x6f, 0xa3, 0x29, 0xb6, 0x5d, 0xe6, 0x8b, 0x87, 0x1b, 0xca, 0x25, 0x7e, - 0x40, 0x77, 0x8c, 0x8a, 0x6e, 0x59, 0xb6, 0xaf, 0xfb, 0x86, 0x6d, 0x79, 0x8c, 0x5e, 0xb9, 0x12, - 0x5c, 0x47, 0x7e, 0xd5, 0xbb, 0x07, 0x95, 0x66, 0xd7, 0xa5, 0x04, 0x7c, 0xff, 0x62, 0x72, 0x1f, - 0x77, 0x1c, 0xff, 0x88, 0x6f, 0x2e, 0x24, 0x37, 0x0f, 0x0c, 0x6c, 0x36, 0x6b, 0x1d, 0xdd, 0x6b, - 0x73, 0x8a, 0xab, 0x49, 0x0a, 0xdf, 0xe8, 0x60, 0xcf, 0xd7, 0x3b, 0x0e, 0x23, 0x50, 0x9f, 0xc3, - 0xcc, 0x53, 0xec, 0x79, 0x7a, 0x0b, 0xef, 0xfb, 0xb6, 0xab, 0xb7, 0xf0, 0x9e, 0x6d, 0x1a, 0x8d, - 0x23, 0x74, 0x0f, 0x2e, 0xea, 0xa6, 0x69, 0x7f, 0x82, 0x9b, 0x35, 0x07, 0xbb, 0x9e, 0xe1, 0xf9, - 0xd8, 0x6a, 0xe0, 0x9a, 0x8b, 0x5b, 0x04, 0x7c, 0x51, 0x5a, 0xc8, 0xaf, 0x8e, 0x69, 0xf3, 0x9c, - 0x64, 0xaf, 0x47, 0xa1, 0x31, 0x02, 0xf5, 0x3f, 0x12, 0x9c, 0x7d, 0x66, 0x3b, 0x46, 0x03, 0x21, - 0x18, 0xb1, 0xf4, 0x0e, 0x2e, 0x4a, 0x0b, 0xd2, 0xea, 0x98, 0x46, 0xbf, 0xd1, 0x26, 0x8c, 0x9a, - 0x7a, 0x1d, 0x9b, 0x5e, 0x31, 0xb7, 0x90, 0x5f, 0x95, 0xab, 0xd7, 0xca, 0x49, 0xb5, 0x95, 0xe9, - 0xe1, 0xf2, 0x13, 0x4a, 0xf5, 0xd0, 0xf2, 0xdd, 0x23, 0x8d, 0x1f, 0x41, 0x2f, 0x60, 0xae, 0xc3, - 0x20, 0xd7, 0x3c, 0x86, 0xb9, 0xe6, 0x50, 0xd0, 0xc5, 0xfc, 0x82, 0xb4, 0x2a, 0x57, 0x97, 0xd3, - 0x97, 0x89, 0x44, 0xd4, 0x66, 0x3a, 0x82, 0x55, 0xe5, 0x0e, 0xc8, 0x11, 0xa6, 0x68, 0x0a, 0xf2, - 0x6d, 0x7c, 0xc4, 0xc1, 0x93, 0x4f, 0x34, 0x03, 0x67, 0x0f, 0x75, 0xb3, 0x8b, 0x8b, 0x39, 0xba, - 0xc6, 0x7e, 0xdc, 0xcd, 0xbd, 0x2f, 0xa9, 0x5f, 0xe6, 0x60, 0x62, 0x8f, 0xf2, 0xe4, 0xfc, 0x88, - 0xec, 0x4d, 0xdd, 0xd7, 0xe9, 0xf1, 0x71, 0x8d, 0x7e, 0xa3, 0x0f, 0x01, 0x74, 0xdf, 0x77, 0x8d, - 0x7a, 0xd7, 0xc7, 0x81, 0xfc, 0x95, 0x34, 0xe4, 0xd8, 0x45, 0xe5, 0xed, 0xf0, 0x04, 0xd3, 0x45, - 0xe4, 0x0a, 0x74, 0x19, 0x20, 0xd0, 0x87, 0xd1, 0xa4, 0x3a, 0x18, 0xd3, 0xc6, 0xf8, 0xca, 0xe3, - 0x26, 0xda, 0x82, 0x71, 0xa7, 0x5b, 0x37, 0x0d, 0xef, 0x65, 0x8d, 0x18, 0xbf, 0x38, 0x42, 0x95, - 0xa4, 0x84, 0x1c, 0xb9, 0x67, 0x94, 0x9f, 0x05, 0x9e, 0xa1, 0xc9, 0x9c, 0x9e, 0xac, 0x28, 0x5b, - 0x30, 0x99, 0x60, 0x3e, 0x94, 0x4e, 0x56, 0x60, 0xf2, 0x11, 0xf6, 0xa9, 0x31, 0x35, 0xfc, 0x71, - 0x17, 0x7b, 0x3e, 0x21, 0xf6, 0xc9, 0x6f, 0x7e, 0x01, 0xfb, 0xa1, 0xbe, 0x91, 0x00, 0xfd, 0xd8, - 0x69, 0xea, 0x3e, 0x8e, 0x11, 0xdf, 0x8c, 0x12, 0xcb, 0xd5, 0x0b, 0x19, 0x8e, 0xc2, 0x6f, 0x41, - 0x9b, 0x20, 0x77, 0xe9, 0x25, 0x34, 0x08, 0x28, 0x1c, 0x91, 0xac, 0xdf, 0x23, 0x71, 0xf2, 0x54, - 0xf7, 0xda, 0x1a, 0x30, 0x72, 0xf2, 0xad, 0x36, 0xe0, 0xfc, 0x1e, 0x93, 0xbc, 0x2f, 0x54, 0xb4, - 0x09, 0x05, 0xae, 0xde, 0xc0, 0x7e, 0x57, 0x07, 0xd8, 0x4f, 0x0b, 0x0f, 0xa8, 0x55, 0x98, 0x0c, - 0x99, 0x78, 0x8e, 0x6d, 0x79, 0x18, 0x5d, 0x05, 0xb9, 0x67, 0xc0, 0x20, 0xb6, 0x20, 0xb4, 0xa0, - 0xa7, 0x1a, 0x30, 0xfd, 0xc4, 0xf0, 0x98, 0x16, 0xbd, 0x00, 0x5b, 0x11, 0xce, 0x39, 0xae, 0xfd, - 0x11, 0x6e, 0xf8, 0x1c, 0x5d, 0xf0, 0x13, 0x5d, 0x84, 0x31, 0x87, 0x46, 0x87, 0xf1, 0x29, 0xb3, - 0xc8, 0x59, 0xad, 0x40, 0x16, 0xf6, 0x8d, 0x4f, 0x31, 0xf1, 0x16, 0xba, 0xe9, 0xdb, 0x6d, 0x6c, - 0x05, 0xde, 0x42, 0x56, 0x9e, 0x91, 0x05, 0xb5, 0x03, 0x28, 0xca, 0x8a, 0x23, 0xac, 0xc0, 0x28, - 0x15, 0x9d, 0x81, 0xeb, 0x63, 0x06, 0x4e, 0x86, 0x96, 0x61, 0xd2, 0xc2, 0xaf, 0xfc, 0x5a, 0x84, - 0x15, 0x73, 0x8d, 0x09, 0xb2, 0xbc, 0x17, 0xb2, 0xfb, 0x18, 0x2e, 0x87, 0xec, 0xf6, 0xbb, 0x75, - 0xaf, 0xe1, 0x1a, 0x0e, 0x4d, 0x8f, 0xfd, 0x2d, 0x70, 0x1a, 0x09, 0x2d, 0xb8, 0x92, 0xc5, 0x92, - 0x4b, 0xbb, 0x04, 0x13, 0x5e, 0x74, 0x83, 0x5b, 0x24, 0xbe, 0x78, 0x6c, 0x11, 0x3b, 0x30, 0xdf, - 0xe3, 0x67, 0xe9, 0x8e, 0xf7, 0xd2, 0xf6, 0xdf, 0xa1, 0x78, 0x75, 0x50, 0x44, 0xec, 0xb8, 0x68, - 0x97, 0x60, 0xcc, 0x0b, 0x16, 0xb9, 0x58, 0xbd, 0x85, 0x63, 0x8b, 0x54, 0x02, 0xb4, 0x8b, 0x4d, - 0x9c, 0x08, 0x55, 0x71, 0x5c, 0x7f, 0x31, 0x02, 0xe3, 0x51, 0x35, 0x0b, 0xeb, 0x41, 0x78, 0x34, - 0x17, 0x55, 0xc3, 0x16, 0xc8, 0x4e, 0xd7, 0x7b, 0x59, 0x6b, 0xd8, 0xd6, 0x81, 0xd1, 0xe2, 0x89, - 0xeb, 0x92, 0x28, 0xd4, 0xbc, 0x97, 0x0f, 0x28, 0x8d, 0x06, 0x4e, 0xf8, 0x8d, 0xd6, 0x61, 0x46, - 0x6f, 0xb4, 0x6b, 0x4d, 0xac, 0x37, 0x4d, 0xc3, 0xc2, 0x35, 0x0f, 0x37, 0x6c, 0xab, 0xe9, 0x15, - 0xcf, 0x52, 0x85, 0x22, 0xbd, 0xd1, 0xde, 0xe5, 0x5b, 0xfb, 0x6c, 0x07, 0x55, 0x61, 0xd6, 0xc5, - 0xbe, 0x6e, 0x58, 0x35, 0xbd, 0xd1, 0xc6, 0xcd, 0x5a, 0x18, 0xe5, 0xe7, 0x16, 0xa4, 0xd5, 0x82, - 0xf6, 0x2d, 0xb6, 0xb9, 0x4d, 0xf6, 0x78, 0x60, 0x7b, 0xe8, 0x27, 0xa0, 0x04, 0xc1, 0xeb, 0x62, - 0x1f, 0x5b, 0x44, 0xc6, 0x5a, 0x50, 0xc4, 0x8b, 0x05, 0x8a, 0x79, 0x3e, 0x95, 0x80, 0x76, 0x39, - 0x81, 0x56, 0xe4, 0x87, 0xb5, 0xe0, 0x6c, 0xb0, 0x83, 0x76, 0xc2, 0x1a, 0x39, 0x46, 0x63, 0xae, - 0x94, 0x16, 0x3c, 0xaa, 0x57, 0x61, 0xa9, 0xfc, 0x10, 0xa6, 0xf1, 0x2b, 0xc7, 0x60, 0x37, 0x06, - 0x55, 0x52, 0xa6, 0x98, 0xd4, 0xf4, 0x75, 0x0f, 0x43, 0x52, 0x5e, 0x21, 0xa7, 0x70, 0x62, 0xe5, - 0x34, 0xd5, 0xf1, 0x3e, 0x4c, 0x25, 0x19, 0xa0, 0x35, 0xc8, 0xfb, 0xbe, 0xc9, 0x73, 0x7b, 0x1f, - 0x2d, 0x11, 0x2a, 0xf5, 0xaf, 0x12, 0x40, 0xcf, 0xd4, 0xe8, 0x1a, 0x4c, 0x50, 0xef, 0xc0, 0x56, - 0xd3, 0xb1, 0x0d, 0x2b, 0xc8, 0x82, 0xe3, 0x64, 0xf1, 0x21, 0x5f, 0x43, 0x4f, 0x04, 0xc5, 0xf6, - 0x46, 0x3f, 0x0f, 0xea, 0x57, 0x69, 0x4f, 0x5b, 0x0b, 0x1b, 0x30, 0xa9, 0xe1, 0x06, 0x36, 0x0e, - 0x43, 0xf7, 0x41, 0xb3, 0x30, 0x4a, 0x7c, 0xd4, 0x68, 0x06, 0x41, 0xa3, 0x37, 0xda, 0x8f, 0x9b, - 0xe8, 0x0e, 0x9c, 0xe3, 0x7e, 0xc1, 0x4b, 0xd8, 0xc0, 0x02, 0x13, 0xd0, 0xab, 0xdf, 0x85, 0xb9, - 0x47, 0xd8, 0x8f, 0x7a, 0x46, 0x10, 0x9f, 0x2a, 0x8c, 0x47, 0x33, 0x58, 0xa0, 0xaf, 0xe8, 0x9a, - 0xfa, 0xb5, 0x04, 0xf3, 0xac, 0x0a, 0x8b, 0x6e, 0xd8, 0x11, 0xdc, 0x20, 0x57, 0xaf, 0xf4, 0x77, - 0xcc, 0x38, 0x87, 0xd3, 0x55, 0x68, 0x07, 0x8a, 0x24, 0xb9, 0x09, 0x2b, 0xc5, 0xbb, 0xa9, 0x87, - 0xbf, 0x91, 0x58, 0xfa, 0x16, 0x57, 0x8a, 0x5d, 0x51, 0xa5, 0x18, 0xac, 0x91, 0x13, 0x56, 0x92, - 0xfb, 0x30, 0xcf, 0xd2, 0xee, 0x49, 0xad, 0xfb, 0x0b, 0xb8, 0xf0, 0xd4, 0x6e, 0x1a, 0x07, 0x47, - 0x91, 0x8c, 0x79, 0xfc, 0xe3, 0xc9, 0x7c, 0x9c, 0x1b, 0x2e, 0x1f, 0xab, 0x9f, 0x4b, 0x20, 0xef, - 0x75, 0x4d, 0x73, 0x18, 0x96, 0x37, 0x01, 0xb9, 0xd8, 0xef, 0xba, 0x56, 0xcd, 0xe8, 0x74, 0x70, - 0xd3, 0xd0, 0x7d, 0x6c, 0x1e, 0x51, 0xce, 0x05, 0x6d, 0x9a, 0xed, 0x3c, 0xee, 0x6d, 0xa0, 0x45, - 0x18, 0xef, 0xe8, 0xaf, 0x7a, 0x79, 0x3b, 0x4f, 0x8d, 0x2d, 0x77, 0xf4, 0x57, 0x41, 0xbe, 0x56, - 0x7f, 0x06, 0xe3, 0x0c, 0x04, 0x37, 0xe1, 0x0f, 0x61, 0xda, 0xe5, 0x41, 0xd9, 0x3b, 0xc7, 0xcc, - 0xb8, 0x98, 0x16, 0x2d, 0x11, 0xbf, 0xda, 0x94, 0x1b, 0x5f, 0xf0, 0x88, 0xc3, 0x14, 0x99, 0x92, - 0xb7, 0x7b, 0x05, 0x66, 0x18, 0x91, 0x2f, 0xc0, 0x39, 0x96, 0x12, 0xbc, 0xe2, 0x08, 0x2d, 0xd0, - 0xa3, 0x34, 0x27, 0x78, 0x99, 0xf5, 0x2c, 0x9f, 0x55, 0xcf, 0xd4, 0x1f, 0x01, 0xda, 0x6e, 0xb4, - 0x2d, 0xfb, 0x13, 0x13, 0x37, 0x5b, 0x27, 0x05, 0x91, 0x8b, 0x82, 0x50, 0x7f, 0x95, 0x83, 0x99, - 0x7d, 0xdf, 0xc5, 0x7a, 0xc7, 0xb0, 0x5a, 0xc3, 0x5a, 0x33, 0xeb, 0x56, 0x74, 0x1b, 0x2e, 0x74, - 0xa8, 0xce, 0x44, 0xd2, 0xe5, 0x57, 0xcf, 0x6a, 0xb3, 0x6c, 0x3b, 0x59, 0xb0, 0xdf, 0x4b, 0x9f, - 0x8b, 0xeb, 0x6e, 0x26, 0x7e, 0x6e, 0x9b, 0xb1, 0xdb, 0x82, 0x8b, 0x1e, 0x95, 0xa1, 0xd6, 0xe7, - 0x81, 0x50, 0x64, 0x24, 0xdb, 0x69, 0xb5, 0xb6, 0x60, 0x36, 0xa1, 0x82, 0x77, 0xe4, 0x4b, 0xff, - 0x94, 0x60, 0xf6, 0x81, 0x8b, 0x49, 0x36, 0xe6, 0x6f, 0xb4, 0x40, 0xdb, 0xa2, 0x47, 0x54, 0xd2, - 0x02, 0x39, 0x81, 0x05, 0x7e, 0x10, 0x3e, 0x2a, 0xf2, 0x14, 0xd6, 0xad, 0x34, 0x2c, 0x21, 0x43, - 0xd1, 0xeb, 0xe2, 0x34, 0x8f, 0x81, 0xb7, 0x12, 0xcc, 0xf2, 0x3a, 0x93, 0x90, 0xec, 0x36, 0x14, - 0x82, 0x07, 0x29, 0xaf, 0x2f, 0x8a, 0x20, 0x9b, 0x06, 0x87, 0x42, 0xda, 0xd3, 0xd5, 0x95, 0x7f, - 0x4b, 0x50, 0x08, 0xee, 0x1c, 0xe2, 0x81, 0xba, 0x09, 0x32, 0x7d, 0x21, 0x61, 0xd6, 0x59, 0xe7, - 0x07, 0x76, 0xd6, 0xc0, 0xc8, 0xc9, 0x02, 0xba, 0x17, 0x9a, 0x62, 0x84, 0x9a, 0x62, 0x39, 0x5b, - 0xcc, 0x6f, 0x5a, 0xfb, 0xeb, 0x80, 0xc8, 0x1b, 0x21, 0xa1, 0x79, 0x25, 0xa1, 0xf9, 0xb1, 0x9e, - 0x76, 0x55, 0x13, 0x66, 0x68, 0x15, 0x4c, 0xf6, 0x2f, 0xef, 0xa6, 0xe8, 0x1e, 0xc1, 0x6c, 0x82, - 0x1b, 0x0f, 0xb0, 0xf7, 0x93, 0xed, 0x4b, 0x7f, 0xef, 0x38, 0x41, 0x6b, 0x73, 0x0b, 0x66, 0x79, - 0x8d, 0x1d, 0x42, 0x3b, 0xbf, 0x95, 0x40, 0xde, 0xc7, 0xb8, 0x3d, 0x4c, 0x2e, 0x5c, 0x87, 0x11, - 0xea, 0x34, 0xb9, 0x41, 0x4e, 0xf3, 0xc1, 0x19, 0x8d, 0x52, 0xa2, 0x4b, 0x11, 0x04, 0x54, 0x65, - 0x1f, 0x9c, 0xe9, 0x61, 0xd8, 0x29, 0xc0, 0xa8, 0xaf, 0xbb, 0x2d, 0xec, 0xab, 0xe7, 0x61, 0x9c, - 0x81, 0x61, 0x4a, 0xab, 0xfe, 0xad, 0x00, 0x63, 0x7c, 0xe4, 0x80, 0x5d, 0xf4, 0x11, 0xc8, 0x2c, - 0xc2, 0xd9, 0x74, 0x2e, 0xab, 0x93, 0x57, 0xb2, 0x36, 0xd4, 0xeb, 0x9f, 0xfd, 0xe3, 0x5f, 0xbf, - 0xcf, 0x5d, 0x53, 0xae, 0x54, 0x0e, 0x37, 0x2a, 0x3f, 0x27, 0xd1, 0xb1, 0xc5, 0x6d, 0xee, 0x55, - 0x4a, 0x15, 0xd6, 0xff, 0x57, 0x4a, 0xaf, 0xef, 0x4a, 0x25, 0xf4, 0x1a, 0xe4, 0xc8, 0x48, 0x07, - 0x2d, 0xa5, 0xaf, 0x4c, 0x4f, 0x7c, 0xb2, 0x19, 0x57, 0x28, 0xe3, 0xeb, 0xd5, 0x25, 0xca, 0x98, - 0x32, 0x2a, 0xf7, 0x65, 0xff, 0x99, 0x04, 0xe7, 0xb8, 0xe0, 0x68, 0x41, 0xf8, 0x80, 0x8e, 0xcc, - 0x7a, 0x94, 0xc5, 0x3e, 0x14, 0x4c, 0x93, 0x6a, 0x95, 0x22, 0xb8, 0xa1, 0xae, 0xf4, 0x10, 0x88, - 0x99, 0xf3, 0x01, 0x1a, 0x01, 0x61, 0x43, 0x21, 0x18, 0x80, 0x21, 0x01, 0x8b, 0xc4, 0x70, 0x2c, - 0x5b, 0xfa, 0x15, 0xca, 0x7b, 0x11, 0x5d, 0x1d, 0xc0, 0x1b, 0xbd, 0x91, 0x00, 0x7a, 0x23, 0x1c, - 0x24, 0x18, 0xad, 0xa6, 0x66, 0x49, 0xca, 0x52, 0x7f, 0x22, 0x2e, 0x7e, 0x1c, 0x02, 0x67, 0x1e, - 0x01, 0xf1, 0x9a, 0xa3, 0x40, 0x7f, 0x91, 0x60, 0x4e, 0x3c, 0x63, 0x41, 0x95, 0x3e, 0x9c, 0x44, - 0xcf, 0x7a, 0x65, 0xfd, 0xf8, 0x07, 0x38, 0xcc, 0xf7, 0x28, 0xcc, 0x0a, 0xba, 0x39, 0x40, 0x53, - 0x95, 0xf8, 0x2b, 0xfc, 0x8f, 0x52, 0x64, 0xf4, 0x15, 0xa6, 0x1e, 0xb4, 0xd6, 0x8f, 0x7f, 0x22, - 0x1d, 0x2a, 0x37, 0x8e, 0x47, 0xcc, 0x81, 0x6e, 0x50, 0xa0, 0x6b, 0xe8, 0xfa, 0x40, 0xa0, 0x21, - 0x1a, 0x1f, 0xe4, 0xc8, 0xe4, 0x45, 0x14, 0x51, 0xe9, 0xc1, 0x8c, 0x32, 0x97, 0x4a, 0x2e, 0x0f, - 0x3b, 0x8e, 0x7f, 0x14, 0xd8, 0xb3, 0x34, 0xc8, 0xa5, 0xaa, 0xff, 0x9b, 0x06, 0xe0, 0xba, 0xae, - 0x63, 0x17, 0x7d, 0x21, 0x01, 0xe2, 0xaf, 0x84, 0x68, 0x46, 0x1b, 0xd0, 0xf5, 0x28, 0x03, 0xf6, - 0xd5, 0x75, 0x0a, 0xa7, 0xa4, 0x7c, 0x5b, 0x98, 0x58, 0x62, 0xc6, 0xe2, 0x01, 0xfe, 0x95, 0x44, - 0xa7, 0xcb, 0x31, 0x14, 0xab, 0xc2, 0x18, 0x13, 0x74, 0x4c, 0x03, 0xf1, 0xc4, 0xfd, 0x28, 0xca, - 0xbf, 0x1f, 0x2e, 0xf4, 0x87, 0x70, 0x90, 0x1d, 0xc3, 0xb5, 0x96, 0x95, 0xfc, 0x4e, 0x02, 0x6d, - 0x8b, 0x42, 0xfb, 0x4e, 0xb5, 0x9a, 0x82, 0x56, 0x3e, 0x8e, 0xde, 0xbe, 0x96, 0xd8, 0x40, 0x39, - 0x1e, 0x9a, 0x25, 0xb1, 0xf3, 0x0a, 0xa3, 0x72, 0xed, 0x58, 0xb4, 0xdc, 0xcf, 0xcb, 0x14, 0xed, - 0x2a, 0x5a, 0xce, 0xcc, 0x1b, 0xf1, 0x48, 0xfc, 0x9d, 0x14, 0xcc, 0x17, 0x07, 0x69, 0x30, 0xb3, - 0x1d, 0xce, 0xf4, 0x79, 0x6e, 0xd4, 0xd2, 0x90, 0x46, 0xfd, 0x93, 0x04, 0xd3, 0xa9, 0xae, 0x4e, - 0xa4, 0xb1, 0xac, 0xd6, 0x2f, 0x13, 0xd0, 0xf7, 0x29, 0xa0, 0x5d, 0xf5, 0xfe, 0x50, 0x80, 0xee, - 0x76, 0x92, 0x7c, 0x88, 0x5d, 0xbf, 0x94, 0x40, 0x8e, 0x34, 0x7c, 0xa2, 0xf4, 0x90, 0xee, 0x07, - 0x33, 0x91, 0xed, 0x52, 0x64, 0xf7, 0xd4, 0x3b, 0xc3, 0x21, 0xd3, 0x7b, 0x1c, 0x08, 0xa6, 0x5f, - 0x4b, 0x30, 0x42, 0x9a, 0x24, 0x74, 0x59, 0x54, 0x5f, 0xc3, 0xfe, 0x51, 0xe4, 0xf2, 0xd1, 0xde, - 0x2a, 0x70, 0x79, 0xb5, 0x3a, 0x1c, 0x1a, 0xa7, 0x6b, 0x9a, 0x04, 0xc6, 0x01, 0x4c, 0xc4, 0x7a, - 0x36, 0x24, 0x7a, 0x6e, 0x0b, 0xfa, 0x5a, 0x65, 0x65, 0x20, 0x1d, 0x07, 0x78, 0x66, 0x55, 0x5a, - 0x97, 0x48, 0xf4, 0x4f, 0x25, 0x67, 0x2c, 0xe8, 0x7a, 0x96, 0x9f, 0xa4, 0xe6, 0x30, 0x99, 0xc6, - 0x78, 0x4c, 0xc5, 0x7f, 0xa0, 0xde, 0x3b, 0x89, 0x9b, 0xf4, 0xd8, 0x10, 0x55, 0xfc, 0x12, 0xe4, - 0xc8, 0xeb, 0x5f, 0xe4, 0x24, 0xe9, 0xe6, 0x40, 0xe9, 0xf3, 0xcc, 0x56, 0x6f, 0x52, 0x6c, 0x2b, - 0x88, 0x25, 0xee, 0xa0, 0x58, 0xc5, 0x70, 0x05, 0x05, 0x8c, 0xc4, 0xd2, 0x5b, 0x09, 0x26, 0x62, - 0xcf, 0x7b, 0x91, 0x2d, 0x44, 0xdd, 0x86, 0xc8, 0x16, 0xc2, 0x3e, 0x41, 0x2d, 0x51, 0x44, 0x4b, - 0x48, 0xcd, 0xce, 0x38, 0x21, 0xf3, 0xcf, 0x25, 0x38, 0x1f, 0xef, 0x79, 0xd1, 0xca, 0x31, 0xbb, - 0xe2, 0xbe, 0x5a, 0xb9, 0x41, 0x31, 0x2c, 0x2b, 0x8b, 0xe2, 0x72, 0x16, 0xd1, 0x08, 0x31, 0xca, - 0x5b, 0x09, 0xce, 0xc7, 0x1b, 0x62, 0x11, 0x0a, 0x61, 0xcb, 0xdc, 0x17, 0x05, 0xcf, 0x77, 0xd5, - 0x52, 0xcc, 0x36, 0xe5, 0x41, 0x70, 0xde, 0x48, 0x70, 0x3e, 0xde, 0x07, 0x89, 0xe0, 0x08, 0x3b, - 0xa5, 0x4c, 0x17, 0xe6, 0x6e, 0x52, 0x3a, 0xa6, 0x9b, 0x90, 0xc4, 0x41, 0xfa, 0x18, 0x51, 0xe2, - 0x88, 0x34, 0x5b, 0xc2, 0x5a, 0x19, 0x69, 0x7f, 0x4e, 0x9a, 0x38, 0x3c, 0x8c, 0xdb, 0x77, 0xa5, - 0xd2, 0xce, 0x57, 0x12, 0xcc, 0x34, 0xec, 0x4e, 0x8a, 0xc9, 0x8e, 0xcc, 0x06, 0xf0, 0x7b, 0x44, - 0xc8, 0x3d, 0xe9, 0xa7, 0xb7, 0x39, 0x41, 0xcb, 0x36, 0x75, 0xab, 0x55, 0xb6, 0xdd, 0x56, 0xa5, - 0x85, 0x2d, 0xaa, 0x82, 0x0a, 0xdb, 0xd2, 0x1d, 0xc3, 0xeb, 0xfd, 0x6d, 0x64, 0x93, 0x7d, 0xfd, - 0x57, 0x92, 0xfe, 0x9c, 0x9b, 0x7b, 0xc4, 0xce, 0x3e, 0x30, 0xed, 0x6e, 0x93, 0x74, 0x1d, 0xfb, - 0xdd, 0x7a, 0xf9, 0xf9, 0xc6, 0xdf, 0x83, 0x8d, 0x17, 0x74, 0xe3, 0x05, 0xdb, 0x78, 0xf1, 0x7c, - 0xa3, 0x3e, 0x4a, 0xef, 0xbd, 0xf5, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0x72, 0xd4, 0x01, 0xbe, - 0x8d, 0x22, 0x00, 0x00, + 0xc6, 0x0b, 0xa1, 0xc2, 0x2e, 0xb5, 0x55, 0x14, 0x39, 0xb0, 0x70, 0xdd, 0x03, 0x05, 0x37, 0x0e, + 0x1c, 0xf8, 0x03, 0xe0, 0xce, 0x95, 0x03, 0xff, 0x00, 0x27, 0x8a, 0x0b, 0x37, 0xb8, 0x51, 0xfd, + 0x31, 0xa3, 0xf9, 0xe8, 0x91, 0x2c, 0x9b, 0xdc, 0x46, 0xfd, 0x5e, 0xf7, 0xfb, 0xbd, 0xef, 0x7e, + 0x5d, 0x82, 0xcb, 0x6d, 0xdb, 0x6e, 0x9b, 0xb8, 0xe2, 0xf4, 0x1a, 0x5e, 0xaf, 0x51, 0x39, 0x58, + 0xe7, 0x5f, 0x65, 0xc7, 0xb5, 0x7d, 0x1b, 0x4d, 0x33, 0x72, 0x99, 0x2f, 0x1e, 0xac, 0x2b, 0x97, + 0xf8, 0x06, 0xdd, 0x31, 0x2a, 0xba, 0x65, 0xd9, 0xbe, 0xee, 0x1b, 0xb6, 0xe5, 0x31, 0x7e, 0xe5, + 0x4a, 0x70, 0x1c, 0xf9, 0xd5, 0xe8, 0xed, 0x57, 0x5a, 0x3d, 0x97, 0x32, 0x70, 0xfa, 0xc5, 0x24, + 0x1d, 0x77, 0x1d, 0xff, 0x90, 0x13, 0x17, 0x92, 0xc4, 0x7d, 0x03, 0x9b, 0xad, 0x7a, 0x57, 0xf7, + 0x3a, 0x9c, 0xe3, 0x6a, 0x92, 0xc3, 0x37, 0xba, 0xd8, 0xf3, 0xf5, 0xae, 0xc3, 0x18, 0xd4, 0xe7, + 0x30, 0xfb, 0x14, 0x7b, 0x9e, 0xde, 0xc6, 0x7b, 0xbe, 0xed, 0xea, 0x6d, 0xbc, 0x6b, 0x9b, 0x46, + 0xf3, 0x10, 0xdd, 0x83, 0x8b, 0xba, 0x69, 0xda, 0x9f, 0xe0, 0x56, 0xdd, 0xc1, 0xae, 0x67, 0x78, + 0x3e, 0xb6, 0x9a, 0xb8, 0xee, 0xe2, 0x36, 0x01, 0x5f, 0x94, 0x16, 0xf2, 0x2b, 0x13, 0xda, 0x3c, + 0x67, 0xd9, 0xed, 0x73, 0x68, 0x8c, 0x41, 0xfd, 0xb7, 0x04, 0xa7, 0x9f, 0xd9, 0x8e, 0xd1, 0x44, + 0x08, 0xc6, 0x2c, 0xbd, 0x8b, 0x8b, 0xd2, 0x82, 0xb4, 0x32, 0xa1, 0xd1, 0x6f, 0xb4, 0x01, 0xe3, + 0xa6, 0xde, 0xc0, 0xa6, 0x57, 0xcc, 0x2d, 0xe4, 0x57, 0xe4, 0xea, 0xf5, 0x72, 0xd2, 0x6c, 0x65, + 0xba, 0xb9, 0xfc, 0x84, 0x72, 0x3d, 0xb4, 0x7c, 0xf7, 0x50, 0xe3, 0x5b, 0xd0, 0x0b, 0x38, 0xdf, + 0x65, 0x90, 0xeb, 0x1e, 0xc3, 0x5c, 0x77, 0x28, 0xe8, 0x62, 0x7e, 0x41, 0x5a, 0x91, 0xab, 0x4b, + 0xe9, 0xc3, 0x44, 0x2a, 0x6a, 0xb3, 0x5d, 0xc1, 0xaa, 0x72, 0x17, 0xe4, 0x88, 0x50, 0x34, 0x0d, + 0xf9, 0x0e, 0x3e, 0xe4, 0xe0, 0xc9, 0x27, 0x9a, 0x85, 0xd3, 0x07, 0xba, 0xd9, 0xc3, 0xc5, 0x1c, + 0x5d, 0x63, 0x3f, 0x6a, 0xb9, 0xf7, 0x25, 0xf5, 0xcb, 0x1c, 0x4c, 0xed, 0x52, 0x99, 0x5c, 0x1e, + 0xd1, 0xbd, 0xa5, 0xfb, 0x3a, 0xdd, 0x3e, 0xa9, 0xd1, 0x6f, 0xf4, 0x21, 0x80, 0xee, 0xfb, 0xae, + 0xd1, 0xe8, 0xf9, 0x38, 0xd0, 0xbf, 0x92, 0x86, 0x1c, 0x3b, 0xa8, 0xbc, 0x15, 0xee, 0x60, 0xb6, + 0x88, 0x1c, 0x81, 0x2e, 0x03, 0x04, 0xf6, 0x30, 0x5a, 0xd4, 0x06, 0x13, 0xda, 0x04, 0x5f, 0x79, + 0xdc, 0x42, 0x9b, 0x30, 0xe9, 0xf4, 0x1a, 0xa6, 0xe1, 0xbd, 0xac, 0x13, 0xe7, 0x17, 0xc7, 0xa8, + 0x91, 0x94, 0x50, 0x22, 0x8f, 0x8c, 0xf2, 0xb3, 0x20, 0x32, 0x34, 0x99, 0xf3, 0x93, 0x15, 0x65, + 0x13, 0xce, 0x25, 0x84, 0x8f, 0x64, 0x93, 0x65, 0x38, 0xf7, 0x08, 0xfb, 0xd4, 0x99, 0x1a, 0xfe, + 0xb8, 0x87, 0x3d, 0x9f, 0x30, 0xfb, 0xe4, 0x37, 0x3f, 0x80, 0xfd, 0x50, 0xdf, 0x48, 0x80, 0xbe, + 0xef, 0xb4, 0x74, 0x1f, 0xc7, 0x98, 0x6f, 0x45, 0x99, 0xe5, 0xea, 0x85, 0x8c, 0x40, 0xe1, 0xa7, + 0xa0, 0x0d, 0x90, 0x7b, 0xf4, 0x10, 0x9a, 0x04, 0x14, 0x8e, 0x48, 0xd7, 0x6f, 0x91, 0x3c, 0x79, + 0xaa, 0x7b, 0x1d, 0x0d, 0x18, 0x3b, 0xf9, 0x56, 0x9b, 0x70, 0x76, 0x97, 0x69, 0x3e, 0x10, 0x2a, + 0xda, 0x80, 0x02, 0x37, 0x6f, 0xe0, 0xbf, 0xab, 0x43, 0xfc, 0xa7, 0x85, 0x1b, 0xd4, 0x2a, 0x9c, + 0x0b, 0x85, 0x78, 0x8e, 0x6d, 0x79, 0x18, 0x5d, 0x05, 0xb9, 0xef, 0xc0, 0x20, 0xb7, 0x20, 0xf4, + 0xa0, 0xa7, 0x1a, 0x30, 0xf3, 0xc4, 0xf0, 0x98, 0x15, 0xbd, 0x00, 0x5b, 0x11, 0xce, 0x38, 0xae, + 0xfd, 0x11, 0x6e, 0xfa, 0x1c, 0x5d, 0xf0, 0x13, 0x5d, 0x84, 0x09, 0x87, 0x66, 0x87, 0xf1, 0x29, + 0xf3, 0xc8, 0x69, 0xad, 0x40, 0x16, 0xf6, 0x8c, 0x4f, 0x31, 0x89, 0x16, 0x4a, 0xf4, 0xed, 0x0e, + 0xb6, 0x82, 0x68, 0x21, 0x2b, 0xcf, 0xc8, 0x82, 0xda, 0x05, 0x14, 0x15, 0xc5, 0x11, 0x56, 0x60, + 0x9c, 0xaa, 0xce, 0xc0, 0x0d, 0x70, 0x03, 0x67, 0x43, 0x4b, 0x70, 0xce, 0xc2, 0xaf, 0xfc, 0x7a, + 0x44, 0x14, 0x0b, 0x8d, 0x29, 0xb2, 0xbc, 0x1b, 0x8a, 0xfb, 0x18, 0x2e, 0x87, 0xe2, 0xf6, 0x7a, + 0x0d, 0xaf, 0xe9, 0x1a, 0x0e, 0x2d, 0x8f, 0x83, 0x3d, 0x70, 0x12, 0x0d, 0x2d, 0xb8, 0x92, 0x25, + 0x92, 0x6b, 0xbb, 0x08, 0x53, 0x5e, 0x94, 0xc0, 0x3d, 0x12, 0x5f, 0x3c, 0xb2, 0x8a, 0x5d, 0x98, + 0xef, 0xcb, 0xb3, 0x74, 0xc7, 0x7b, 0x69, 0xfb, 0xef, 0x50, 0xbd, 0x06, 0x28, 0x22, 0x71, 0x5c, + 0xb5, 0x4b, 0x30, 0xe1, 0x05, 0x8b, 0x5c, 0xad, 0xfe, 0xc2, 0x91, 0x55, 0x2a, 0x01, 0xda, 0xc1, + 0x26, 0x4e, 0xa4, 0xaa, 0x38, 0xaf, 0xbf, 0x18, 0x83, 0xc9, 0xa8, 0x99, 0x85, 0xfd, 0x20, 0xdc, + 0x9a, 0x8b, 0x9a, 0x61, 0x13, 0x64, 0xa7, 0xe7, 0xbd, 0xac, 0x37, 0x6d, 0x6b, 0xdf, 0x68, 0xf3, + 0xc2, 0x75, 0x49, 0x94, 0x6a, 0xde, 0xcb, 0x07, 0x94, 0x47, 0x03, 0x27, 0xfc, 0x46, 0x6b, 0x30, + 0xab, 0x37, 0x3b, 0xf5, 0x16, 0xd6, 0x5b, 0xa6, 0x61, 0xe1, 0xba, 0x87, 0x9b, 0xb6, 0xd5, 0xf2, + 0x8a, 0xa7, 0xa9, 0x41, 0x91, 0xde, 0xec, 0xec, 0x70, 0xd2, 0x1e, 0xa3, 0xa0, 0x2a, 0xcc, 0xb9, + 0xd8, 0xd7, 0x0d, 0xab, 0xae, 0x37, 0x3b, 0xb8, 0x55, 0x0f, 0xb3, 0xfc, 0xcc, 0x82, 0xb4, 0x52, + 0xd0, 0xbe, 0xc6, 0x88, 0x5b, 0x84, 0xc6, 0x13, 0xdb, 0x43, 0x3f, 0x00, 0x25, 0x48, 0x5e, 0x17, + 0xfb, 0xd8, 0x22, 0x3a, 0xd6, 0x83, 0x26, 0x5e, 0x2c, 0x50, 0xcc, 0xf3, 0xa9, 0x02, 0xb4, 0xc3, + 0x19, 0xb4, 0x22, 0xdf, 0xac, 0x05, 0x7b, 0x03, 0x0a, 0xda, 0x0e, 0x7b, 0xe4, 0x04, 0xcd, 0xb9, + 0x52, 0x5a, 0xf1, 0xa8, 0x5d, 0x85, 0xad, 0xf2, 0x43, 0x98, 0xc1, 0xaf, 0x1c, 0x83, 0x9d, 0x18, + 0x74, 0x49, 0x99, 0x62, 0x52, 0xd3, 0xc7, 0x3d, 0x0c, 0x59, 0x79, 0x87, 0x9c, 0xc6, 0x89, 0x95, + 0x93, 0x74, 0xc7, 0xfb, 0x30, 0x9d, 0x14, 0x80, 0x56, 0x21, 0xef, 0xfb, 0x26, 0xaf, 0xed, 0x03, + 0xac, 0x44, 0xb8, 0xd4, 0x3f, 0x4b, 0x00, 0x7d, 0x57, 0xa3, 0xeb, 0x30, 0x45, 0xa3, 0x03, 0x5b, + 0x2d, 0xc7, 0x36, 0xac, 0xa0, 0x0a, 0x4e, 0x92, 0xc5, 0x87, 0x7c, 0x0d, 0x3d, 0x11, 0x34, 0xdb, + 0x9b, 0x83, 0x22, 0x68, 0x50, 0xa7, 0x3d, 0x69, 0x2f, 0x6c, 0xc2, 0x39, 0x0d, 0x37, 0xb1, 0x71, + 0x10, 0x86, 0x0f, 0x9a, 0x83, 0x71, 0x12, 0xa3, 0x46, 0x2b, 0x48, 0x1a, 0xbd, 0xd9, 0x79, 0xdc, + 0x42, 0x77, 0xe1, 0x0c, 0x8f, 0x0b, 0xde, 0xc2, 0x86, 0x36, 0x98, 0x80, 0x5f, 0xfd, 0x26, 0x9c, + 0x7f, 0x84, 0xfd, 0x68, 0x64, 0x04, 0xf9, 0xa9, 0xc2, 0x64, 0xb4, 0x82, 0x05, 0xf6, 0x8a, 0xae, + 0xa9, 0x5f, 0x49, 0x30, 0xcf, 0xba, 0xb0, 0xe8, 0x84, 0x6d, 0xc1, 0x09, 0x72, 0xf5, 0xca, 0xe0, + 0xc0, 0x8c, 0x4b, 0x38, 0x59, 0x87, 0x76, 0xa0, 0x48, 0x8a, 0x9b, 0xb0, 0x53, 0xbc, 0x9b, 0x7e, + 0xf8, 0x0b, 0x89, 0x95, 0x6f, 0x71, 0xa7, 0xd8, 0x11, 0x75, 0x8a, 0xe1, 0x16, 0x39, 0x66, 0x27, + 0xb9, 0x0f, 0xf3, 0xac, 0xec, 0x1e, 0xd7, 0xbb, 0x3f, 0x81, 0x0b, 0x4f, 0xed, 0x96, 0xb1, 0x7f, + 0x18, 0xa9, 0x98, 0x47, 0xdf, 0x9e, 0xac, 0xc7, 0xb9, 0xd1, 0xea, 0xb1, 0xfa, 0xb9, 0x04, 0xf2, + 0x6e, 0xcf, 0x34, 0x47, 0x11, 0x79, 0x0b, 0x90, 0x8b, 0xfd, 0x9e, 0x6b, 0xd5, 0x8d, 0x6e, 0x17, + 0xb7, 0x0c, 0xdd, 0xc7, 0xe6, 0x21, 0x95, 0x5c, 0xd0, 0x66, 0x18, 0xe5, 0x71, 0x9f, 0x80, 0xae, + 0xc1, 0x64, 0x57, 0x7f, 0xd5, 0xaf, 0xdb, 0x79, 0xea, 0x6c, 0xb9, 0xab, 0xbf, 0x0a, 0xea, 0xb5, + 0xfa, 0x23, 0x98, 0x64, 0x20, 0xb8, 0x0b, 0xbf, 0x0b, 0x33, 0x2e, 0x4f, 0xca, 0xfe, 0x3e, 0xe6, + 0xc6, 0x6b, 0x69, 0xd5, 0x12, 0xf9, 0xab, 0x4d, 0xbb, 0xf1, 0x05, 0x8f, 0x04, 0x4c, 0x91, 0x19, + 0x79, 0xab, 0xdf, 0x60, 0x46, 0x51, 0xf9, 0x02, 0x9c, 0x61, 0x25, 0xc1, 0x2b, 0x8e, 0xd1, 0x06, + 0x3d, 0x4e, 0x6b, 0x82, 0x97, 0xd9, 0xcf, 0xf2, 0x59, 0xfd, 0x4c, 0xfd, 0x1e, 0xa0, 0xad, 0x66, + 0xc7, 0xb2, 0x3f, 0x31, 0x71, 0xab, 0x7d, 0x5c, 0x10, 0xb9, 0x28, 0x08, 0xf5, 0x67, 0x39, 0x98, + 0xdd, 0xf3, 0x5d, 0xac, 0x77, 0x0d, 0xab, 0x3d, 0xaa, 0x37, 0xb3, 0x4e, 0x45, 0x77, 0xe0, 0x42, + 0x97, 0xda, 0x4c, 0xa4, 0x5d, 0x7e, 0xe5, 0xb4, 0x36, 0xc7, 0xc8, 0xc9, 0x86, 0xfd, 0x5e, 0x7a, + 0x5f, 0xdc, 0x76, 0xb3, 0xf1, 0x7d, 0x5b, 0x4c, 0xdc, 0x26, 0x5c, 0xf4, 0xa8, 0x0e, 0xf5, 0x01, + 0x17, 0x84, 0x22, 0x63, 0xd9, 0x4a, 0x9b, 0xb5, 0x0d, 0x73, 0x09, 0x13, 0xbc, 0xa3, 0x58, 0xfa, + 0xbb, 0x04, 0x73, 0x0f, 0x5c, 0x4c, 0xaa, 0x31, 0xbf, 0xa3, 0x05, 0xd6, 0x16, 0x5d, 0xa2, 0x92, + 0x1e, 0xc8, 0x09, 0x3c, 0xf0, 0x9d, 0xf0, 0x52, 0x91, 0xa7, 0xb0, 0x6e, 0xa7, 0x61, 0x09, 0x05, + 0x8a, 0x6e, 0x17, 0x27, 0xb9, 0x0c, 0xbc, 0x95, 0x60, 0x8e, 0xf7, 0x99, 0x84, 0x66, 0x77, 0xa0, + 0x10, 0x5c, 0x48, 0x79, 0x7f, 0x51, 0x04, 0xd5, 0x34, 0xd8, 0x14, 0xf2, 0x9e, 0xac, 0xaf, 0xfc, + 0x4b, 0x82, 0x42, 0x70, 0xe6, 0x08, 0x17, 0xd4, 0x0d, 0x90, 0xe9, 0x0d, 0x09, 0xb3, 0xc9, 0x3a, + 0x3f, 0x74, 0xb2, 0x06, 0xc6, 0x4e, 0x16, 0xd0, 0xbd, 0xd0, 0x15, 0x63, 0xd4, 0x15, 0x4b, 0xd9, + 0x6a, 0xfe, 0xbf, 0xad, 0xbf, 0x06, 0x88, 0xdc, 0x11, 0x12, 0x96, 0x57, 0x12, 0x96, 0x9f, 0xe8, + 0x5b, 0x57, 0x35, 0x61, 0x96, 0x76, 0xc1, 0xe4, 0xfc, 0xf2, 0x6e, 0x9a, 0xee, 0x21, 0xcc, 0x25, + 0xa4, 0xf1, 0x04, 0x7b, 0x3f, 0x39, 0xbe, 0x0c, 0x8e, 0x8e, 0x63, 0x8c, 0x36, 0xb7, 0x61, 0x8e, + 0xf7, 0xd8, 0x11, 0xac, 0xf3, 0x4b, 0x09, 0xe4, 0x3d, 0x8c, 0x3b, 0xa3, 0xd4, 0xc2, 0x35, 0x18, + 0xa3, 0x41, 0x93, 0x1b, 0x16, 0x34, 0x1f, 0x9c, 0xd2, 0x28, 0x27, 0xba, 0x14, 0x41, 0x40, 0x4d, + 0xf6, 0xc1, 0xa9, 0x3e, 0x86, 0xed, 0x02, 0x8c, 0xfb, 0xba, 0xdb, 0xc6, 0xbe, 0x7a, 0x16, 0x26, + 0x19, 0x18, 0x66, 0xb4, 0xea, 0x5f, 0x0a, 0x30, 0xc1, 0x9f, 0x1c, 0xb0, 0x8b, 0x3e, 0x02, 0x99, + 0x65, 0x38, 0x7b, 0x9d, 0xcb, 0x9a, 0xe4, 0x95, 0x2c, 0x82, 0x7a, 0xe3, 0xb3, 0xbf, 0xfd, 0xe3, + 0x37, 0xb9, 0xeb, 0xca, 0x95, 0xca, 0xc1, 0x7a, 0xe5, 0xc7, 0x24, 0x3b, 0x36, 0xb9, 0xcf, 0xbd, + 0x4a, 0xa9, 0xc2, 0xe6, 0xff, 0x4a, 0xe9, 0x75, 0x4d, 0x2a, 0xa1, 0xd7, 0x20, 0x47, 0x9e, 0x74, + 0xd0, 0x62, 0xfa, 0xc8, 0xf4, 0x8b, 0x4f, 0xb6, 0xe0, 0x0a, 0x15, 0x7c, 0xa3, 0xba, 0x48, 0x05, + 0x53, 0x41, 0xe5, 0x81, 0xe2, 0x3f, 0x93, 0xe0, 0x0c, 0x57, 0x1c, 0x2d, 0x08, 0x2f, 0xd0, 0x91, + 0xb7, 0x1e, 0xe5, 0xda, 0x00, 0x0e, 0x66, 0x49, 0xb5, 0x4a, 0x11, 0xdc, 0x54, 0x97, 0xfb, 0x08, + 0xc4, 0xc2, 0xf9, 0x03, 0x1a, 0x01, 0x61, 0x43, 0x21, 0x78, 0x00, 0x43, 0x02, 0x11, 0x89, 0xc7, + 0xb1, 0x6c, 0xed, 0x97, 0xa9, 0xec, 0x6b, 0xe8, 0xea, 0x10, 0xd9, 0xe8, 0x8d, 0x04, 0xd0, 0x7f, + 0xc2, 0x41, 0x82, 0xa7, 0xd5, 0xd4, 0x5b, 0x92, 0xb2, 0x38, 0x98, 0x89, 0xab, 0x1f, 0x87, 0xc0, + 0x85, 0x47, 0x40, 0xbc, 0xe6, 0x28, 0xd0, 0x9f, 0x24, 0x38, 0x2f, 0x7e, 0x63, 0x41, 0x95, 0x01, + 0x92, 0x44, 0xd7, 0x7a, 0x65, 0xed, 0xe8, 0x1b, 0x38, 0xcc, 0xf7, 0x28, 0xcc, 0x0a, 0xba, 0x35, + 0xc4, 0x52, 0x95, 0xf8, 0x2d, 0xfc, 0x77, 0x52, 0xe4, 0xe9, 0x2b, 0x2c, 0x3d, 0x68, 0x75, 0x90, + 0xfc, 0x44, 0x39, 0x54, 0x6e, 0x1e, 0x8d, 0x99, 0x03, 0x5d, 0xa7, 0x40, 0x57, 0xd1, 0x8d, 0xa1, + 0x40, 0x43, 0x34, 0x3e, 0xc8, 0x91, 0x97, 0x17, 0x51, 0x46, 0xa5, 0x1f, 0x66, 0x94, 0xf3, 0xa9, + 0xe2, 0xf2, 0xb0, 0xeb, 0xf8, 0x87, 0x81, 0x3f, 0x4b, 0xc3, 0x42, 0xaa, 0xfa, 0xdf, 0x19, 0x00, + 0x6e, 0xeb, 0x06, 0x76, 0xd1, 0x17, 0x12, 0x20, 0x7e, 0x4b, 0x88, 0x56, 0xb4, 0x21, 0x53, 0x8f, + 0x32, 0x84, 0xae, 0xae, 0x51, 0x38, 0x25, 0xe5, 0xeb, 0xc2, 0xc2, 0x12, 0x73, 0x16, 0x4f, 0xf0, + 0x5f, 0x4b, 0xf4, 0x75, 0x39, 0x86, 0x62, 0x45, 0x98, 0x63, 0x82, 0x89, 0x69, 0x28, 0x9e, 0x78, + 0x1c, 0x45, 0xe5, 0x0f, 0xc2, 0x85, 0x7e, 0x1b, 0x3e, 0x64, 0xc7, 0x70, 0xad, 0x66, 0x15, 0xbf, + 0xe3, 0x40, 0xdb, 0xa4, 0xd0, 0xbe, 0x51, 0xad, 0xa6, 0xa0, 0x95, 0x8f, 0x62, 0xb7, 0xaf, 0x24, + 0xf6, 0xa0, 0x1c, 0x4f, 0xcd, 0x92, 0x38, 0x78, 0x85, 0x59, 0xb9, 0x7a, 0x24, 0x5e, 0x1e, 0xe7, + 0x65, 0x8a, 0x76, 0x05, 0x2d, 0x65, 0xd6, 0x8d, 0x78, 0x26, 0xfe, 0x4a, 0x0a, 0xde, 0x17, 0x87, + 0x59, 0x30, 0x73, 0x1c, 0xce, 0x8c, 0x79, 0xee, 0xd4, 0xd2, 0x88, 0x4e, 0xfd, 0xbd, 0x04, 0x33, + 0xa9, 0xa9, 0x4e, 0x64, 0xb1, 0xac, 0xd1, 0x2f, 0x13, 0xd0, 0xb7, 0x29, 0xa0, 0x1d, 0xf5, 0xfe, + 0x48, 0x80, 0x6a, 0xdd, 0xa4, 0x1c, 0xe2, 0xd7, 0x2f, 0x25, 0x90, 0x23, 0x03, 0x9f, 0xa8, 0x3c, + 0xa4, 0xe7, 0xc1, 0x4c, 0x64, 0x3b, 0x14, 0xd9, 0x3d, 0xf5, 0xee, 0x68, 0xc8, 0xf4, 0xbe, 0x04, + 0x82, 0xe9, 0xe7, 0x12, 0x8c, 0x91, 0x21, 0x09, 0x5d, 0x16, 0xf5, 0xd7, 0x70, 0x7e, 0x14, 0x85, + 0x7c, 0x74, 0xb6, 0x0a, 0x42, 0x5e, 0xad, 0x8e, 0x86, 0xc6, 0xe9, 0x99, 0x26, 0x81, 0xb1, 0x0f, + 0x53, 0xb1, 0x99, 0x0d, 0x89, 0xae, 0xdb, 0x82, 0xb9, 0x56, 0x59, 0x1e, 0xca, 0xc7, 0x01, 0x9e, + 0x5a, 0x91, 0xd6, 0x24, 0x92, 0xfd, 0xd3, 0xc9, 0x37, 0x16, 0x74, 0x23, 0x2b, 0x4e, 0x52, 0xef, + 0x30, 0x99, 0xce, 0x78, 0x4c, 0xd5, 0x7f, 0xa0, 0xde, 0x3b, 0x4e, 0x98, 0xf4, 0xc5, 0x10, 0x53, + 0xfc, 0x14, 0xe4, 0xc8, 0xed, 0x5f, 0x14, 0x24, 0xe9, 0xe1, 0x40, 0x19, 0x70, 0xcd, 0x56, 0x6f, + 0x51, 0x6c, 0xcb, 0x88, 0x15, 0xee, 0xa0, 0x59, 0xc5, 0x70, 0x05, 0x0d, 0x8c, 0xe4, 0xd2, 0x5b, + 0x09, 0xa6, 0x62, 0xd7, 0x7b, 0x91, 0x2f, 0x44, 0xd3, 0x86, 0xc8, 0x17, 0xc2, 0x39, 0x41, 0x2d, + 0x51, 0x44, 0x8b, 0x48, 0xcd, 0xae, 0x38, 0xa1, 0xf0, 0xcf, 0x25, 0x38, 0x1b, 0x9f, 0x79, 0xd1, + 0xf2, 0x11, 0xa7, 0xe2, 0x81, 0x56, 0xb9, 0x49, 0x31, 0x2c, 0x29, 0xd7, 0xc4, 0xed, 0x2c, 0x62, + 0x11, 0xe2, 0x94, 0xb7, 0x12, 0x9c, 0x8d, 0x0f, 0xc4, 0x22, 0x14, 0xc2, 0x91, 0x79, 0x20, 0x0a, + 0x5e, 0xef, 0xaa, 0xa5, 0x98, 0x6f, 0xca, 0xc3, 0xe0, 0xbc, 0x91, 0xe0, 0x6c, 0x7c, 0x0e, 0x12, + 0xc1, 0x11, 0x4e, 0x4a, 0x99, 0x21, 0xcc, 0xc3, 0xa4, 0x74, 0xc4, 0x30, 0x21, 0x85, 0x83, 0xcc, + 0x31, 0xa2, 0xc2, 0x11, 0x19, 0xb6, 0x84, 0xbd, 0x32, 0x32, 0xfe, 0x1c, 0xb7, 0x70, 0x78, 0x18, + 0x77, 0x6a, 0x52, 0x69, 0xfb, 0x8f, 0x12, 0xcc, 0x36, 0xed, 0x6e, 0x4a, 0xc8, 0xb6, 0xcc, 0x1e, + 0xe0, 0x77, 0x89, 0x92, 0xbb, 0xd2, 0x0f, 0xef, 0x70, 0x86, 0xb6, 0x6d, 0xea, 0x56, 0xbb, 0x6c, + 0xbb, 0xed, 0x4a, 0x1b, 0x5b, 0xd4, 0x04, 0x15, 0x46, 0xd2, 0x1d, 0xc3, 0xeb, 0xff, 0x6d, 0x64, + 0x83, 0x7d, 0xfd, 0x47, 0x92, 0xfe, 0x90, 0x3b, 0xff, 0x88, 0xed, 0x7d, 0x60, 0xda, 0xbd, 0x16, + 0x99, 0x3a, 0xf6, 0x7a, 0x8d, 0xf2, 0xf3, 0xf5, 0xbf, 0x06, 0x84, 0x17, 0x94, 0xf0, 0x82, 0x11, + 0x5e, 0x3c, 0x5f, 0xff, 0x67, 0x6e, 0x9e, 0x11, 0x6a, 0x35, 0x4a, 0xa9, 0xd5, 0x18, 0xa9, 0x56, + 0x7b, 0xbe, 0xde, 0x18, 0xa7, 0x32, 0x6f, 0xff, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x9f, 0xd8, 0x13, + 0x5a, 0xa9, 0x22, 0x00, 0x00, } diff --git a/vendor/google.golang.org/genproto/internal/kokoro/check_incompat_changes.sh b/vendor/google.golang.org/genproto/internal/kokoro/check_incompat_changes.sh new file mode 100755 index 000000000..c185f3eaa --- /dev/null +++ b/vendor/google.golang.org/genproto/internal/kokoro/check_incompat_changes.sh @@ -0,0 +1,41 @@ +#!/usr/bin/env bash + +# Display commands being run +set -x + +# Only run apidiff checks on go1.11 (we only need it once). +# TODO(deklerk) We should pass an environment variable from kokoro to decide +# this logic instead. +if [[ `go version` != *"go1.11"* ]]; then + exit 0 +fi + +try3() { eval "$*" || eval "$*" || eval "$*"; } + +try3 go get -u golang.org/x/exp/cmd/apidiff + +# We compare against master@HEAD. This is unfortunate in some cases: if you're +# working on an out-of-date branch, and master gets some new feature (that has +# nothing to do with your work on your branch), you'll get an error message. +# Thankfully the fix is quite simple: rebase your branch. +git clone https://github.com/google/go-genproto /tmp/genproto + +V1_DIRS=`find . -type d -regex '.*v1$'` +V1_SUBDIRS=`find . -type d -regex '.*v1\/.*'` +for dir in $V1_DIRS $V1_SUBDIRS; do + # turns things like ./foo/bar into foo/bar + dir_without_junk=`echo $dir | sed -n "s#\(\.\/\)\(.*\)#\2#p"` + pkg="google.golang.org/genproto/$dir_without_junk" + echo "Testing $pkg" + + cd /tmp/genproto + apidiff -w /tmp/pkg.master $pkg + cd - > /dev/null + + # TODO(deklerk) there's probably a nicer way to do this that doesn't require + # two invocations + if ! apidiff -incompatible /tmp/pkg.master $pkg | (! read); then + apidiff -incompatible /tmp/pkg.master $pkg + exit 1 + fi +done diff --git a/vendor/google.golang.org/genproto/internal/kokoro/test.sh b/vendor/google.golang.org/genproto/internal/kokoro/test.sh new file mode 100755 index 000000000..23fdc2b18 --- /dev/null +++ b/vendor/google.golang.org/genproto/internal/kokoro/test.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +# Fail on any error +set -eo pipefail + +# Display commands being run +set -x + +# cd to project dir on Kokoro instance +cd github/go-genproto + +go version + +# Set $GOPATH +export GOPATH="$HOME/go" +export GENPROTO_HOME=$GOPATH/src/google.golang.org/genproto +export PATH="$GOPATH/bin:$PATH" +mkdir -p $GENPROTO_HOME + +# Move code into $GOPATH and get dependencies +git clone . $GENPROTO_HOME +cd $GENPROTO_HOME + +try3() { eval "$*" || eval "$*" || eval "$*"; } +try3 go get -v -t ./... + +./internal/kokoro/vet.sh +./internal/kokoro/check_incompat_changes.sh + +# Run tests and tee output to log file, to be pushed to GCS as artifact. +go test -race -v ./... 2>&1 | tee $KOKORO_ARTIFACTS_DIR/$KOKORO_GERRIT_CHANGE_NUMBER.txt diff --git a/vendor/google.golang.org/genproto/internal/kokoro/trampoline.sh b/vendor/google.golang.org/genproto/internal/kokoro/trampoline.sh new file mode 100644 index 000000000..ba17ce014 --- /dev/null +++ b/vendor/google.golang.org/genproto/internal/kokoro/trampoline.sh @@ -0,0 +1,24 @@ +#!/bin/bash +# Copyright 2018 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +set -eo pipefail +# Always run the cleanup script, regardless of the success of bouncing into +# the container. +function cleanup() { + chmod +x ${KOKORO_GFILE_DIR}/trampoline_cleanup.sh + ${KOKORO_GFILE_DIR}/trampoline_cleanup.sh + echo "cleanup"; +} +trap cleanup EXIT +python3 "${KOKORO_GFILE_DIR}/trampoline_v1.py" diff --git a/vendor/google.golang.org/genproto/internal/kokoro/vet.sh b/vendor/google.golang.org/genproto/internal/kokoro/vet.sh new file mode 100755 index 000000000..b5677c4a6 --- /dev/null +++ b/vendor/google.golang.org/genproto/internal/kokoro/vet.sh @@ -0,0 +1,37 @@ +#!/bin/bash + +# Fail on any error +set -eo pipefail + +# Display commands being run +set -x + +# Only run the linter on go1.11, since it needs type aliases (and we only care +# about its output once). +# TODO(deklerk) We should pass an environment variable from kokoro to decide +# this logic instead. +if [[ `go version` != *"go1.11"* ]]; then + exit 0 +fi + +pwd + +# Fail if a dependency was added without the necessary go.mod/go.sum change +# being part of the commit. +GO111MODULE=on go mod tidy +git diff go.mod | tee /dev/stderr | (! read) +git diff go.sum | tee /dev/stderr | (! read) + +try3() { eval "$*" || eval "$*" || eval "$*"; } + +try3 go get -u \ + golang.org/x/lint/golint \ + golang.org/x/tools/cmd/goimports \ + honnef.co/go/tools/cmd/staticcheck + +# Look at all .go files (ignoring .pb.go files) and make sure they have a Copyright. Fail if any don't. +git ls-files "*[^.pb].go" | xargs grep -L "\(Copyright [0-9]\{4,\}\)" 2>&1 | tee /dev/stderr | (! read) +gofmt -s -d -l . 2>&1 | tee /dev/stderr | (! read) +goimports -l . 2>&1 | tee /dev/stderr | (! read) + +# No need to golint / staticcheck when it's just proto-generated files diff --git a/vendor/google.golang.org/grpc/.travis.yml b/vendor/google.golang.org/grpc/.travis.yml index a77558572..f443eec9a 100644 --- a/vendor/google.golang.org/grpc/.travis.yml +++ b/vendor/google.golang.org/grpc/.travis.yml @@ -14,8 +14,6 @@ matrix: - go: 1.9.x - go: 1.9.x env: GAE=1 - - go: 1.8.x - - go: 1.6.x go_import_path: google.golang.org/grpc diff --git a/vendor/google.golang.org/grpc/Documentation/server-reflection-tutorial.md b/vendor/google.golang.org/grpc/Documentation/server-reflection-tutorial.md index ca8e30cb4..2e3d1c771 100644 --- a/vendor/google.golang.org/grpc/Documentation/server-reflection-tutorial.md +++ b/vendor/google.golang.org/grpc/Documentation/server-reflection-tutorial.md @@ -16,7 +16,6 @@ For example, to enable server reflection in `example/helloworld`, we need to mak --- a/examples/helloworld/greeter_server/main.go +++ b/examples/helloworld/greeter_server/main.go @@ -40,6 +40,7 @@ import ( - "golang.org/x/net/context" "google.golang.org/grpc" pb "google.golang.org/grpc/examples/helloworld/helloworld" + "google.golang.org/grpc/reflection" diff --git a/vendor/google.golang.org/grpc/README.md b/vendor/google.golang.org/grpc/README.md index 29ffb00d3..e3fb3c75a 100644 --- a/vendor/google.golang.org/grpc/README.md +++ b/vendor/google.golang.org/grpc/README.md @@ -16,7 +16,7 @@ $ go get -u google.golang.org/grpc Prerequisites ------------- -This requires Go 1.6 or later. Go 1.7 will be required soon. +gRPC-Go requires Go 1.9 or later. Constraints ----------- diff --git a/vendor/google.golang.org/grpc/balancer.go b/vendor/google.golang.org/grpc/balancer.go index 5aeb646d1..a78e702ba 100644 --- a/vendor/google.golang.org/grpc/balancer.go +++ b/vendor/google.golang.org/grpc/balancer.go @@ -19,10 +19,10 @@ package grpc import ( + "context" "net" "sync" - "golang.org/x/net/context" "google.golang.org/grpc/codes" "google.golang.org/grpc/credentials" "google.golang.org/grpc/grpclog" diff --git a/vendor/google.golang.org/grpc/balancer/balancer.go b/vendor/google.golang.org/grpc/balancer/balancer.go index ee1703f03..1bf46aafe 100644 --- a/vendor/google.golang.org/grpc/balancer/balancer.go +++ b/vendor/google.golang.org/grpc/balancer/balancer.go @@ -21,11 +21,11 @@ package balancer import ( + "context" "errors" "net" "strings" - "golang.org/x/net/context" "google.golang.org/grpc/connectivity" "google.golang.org/grpc/credentials" "google.golang.org/grpc/metadata" @@ -94,6 +94,9 @@ type NewSubConnOptions struct { // SubConn. If it's nil, the original creds from grpc DialOptions will be // used. CredsBundle credentials.Bundle + // HealthCheckEnabled indicates whether health check service should be + // enabled on this SubConn + HealthCheckEnabled bool } // ClientConn represents a gRPC ClientConn. diff --git a/vendor/google.golang.org/grpc/balancer/base/balancer.go b/vendor/google.golang.org/grpc/balancer/base/balancer.go index 23d13511b..5f55b274f 100644 --- a/vendor/google.golang.org/grpc/balancer/base/balancer.go +++ b/vendor/google.golang.org/grpc/balancer/base/balancer.go @@ -19,7 +19,8 @@ package base import ( - "golang.org/x/net/context" + "context" + "google.golang.org/grpc/balancer" "google.golang.org/grpc/connectivity" "google.golang.org/grpc/grpclog" @@ -29,6 +30,7 @@ import ( type baseBuilder struct { name string pickerBuilder PickerBuilder + config Config } func (bb *baseBuilder) Build(cc balancer.ClientConn, opt balancer.BuildOptions) balancer.Balancer { @@ -43,6 +45,7 @@ func (bb *baseBuilder) Build(cc balancer.ClientConn, opt balancer.BuildOptions) // ErrNoSubConnAvailable, because when state of a SubConn changes, we // may call UpdateBalancerState with this picker. picker: NewErrPicker(balancer.ErrNoSubConnAvailable), + config: bb.config, } } @@ -60,6 +63,7 @@ type baseBalancer struct { subConns map[resolver.Address]balancer.SubConn scStates map[balancer.SubConn]connectivity.State picker balancer.Picker + config Config } func (b *baseBalancer) HandleResolvedAddrs(addrs []resolver.Address, err error) { @@ -74,7 +78,7 @@ func (b *baseBalancer) HandleResolvedAddrs(addrs []resolver.Address, err error) addrsSet[a] = struct{}{} if _, ok := b.subConns[a]; !ok { // a is a new address (not existing in b.subConns). - sc, err := b.cc.NewSubConn([]resolver.Address{a}, balancer.NewSubConnOptions{}) + sc, err := b.cc.NewSubConn([]resolver.Address{a}, balancer.NewSubConnOptions{HealthCheckEnabled: b.config.HealthCheck}) if err != nil { grpclog.Warningf("base.baseBalancer: failed to create new SubConn: %v", err) continue diff --git a/vendor/google.golang.org/grpc/balancer/base/base.go b/vendor/google.golang.org/grpc/balancer/base/base.go index 012ace2f2..34b1f2994 100644 --- a/vendor/google.golang.org/grpc/balancer/base/base.go +++ b/vendor/google.golang.org/grpc/balancer/base/base.go @@ -45,8 +45,20 @@ type PickerBuilder interface { // NewBalancerBuilder returns a balancer builder. The balancers // built by this builder will use the picker builder to build pickers. func NewBalancerBuilder(name string, pb PickerBuilder) balancer.Builder { + return NewBalancerBuilderWithConfig(name, pb, Config{}) +} + +// Config contains the config info about the base balancer builder. +type Config struct { + // HealthCheck indicates whether health checking should be enabled for this specific balancer. + HealthCheck bool +} + +// NewBalancerBuilderWithConfig returns a base balancer builder configured by the provided config. +func NewBalancerBuilderWithConfig(name string, pb PickerBuilder, config Config) balancer.Builder { return &baseBuilder{ name: name, pickerBuilder: pb, + config: config, } } diff --git a/vendor/google.golang.org/grpc/balancer/grpclb/grpclb.go b/vendor/google.golang.org/grpc/balancer/grpclb/grpclb.go index 2e1583641..789b9c433 100644 --- a/vendor/google.golang.org/grpc/balancer/grpclb/grpclb.go +++ b/vendor/google.golang.org/grpc/balancer/grpclb/grpclb.go @@ -25,6 +25,7 @@ package grpclb import ( + "context" "errors" "strconv" "strings" @@ -32,7 +33,6 @@ import ( "time" durationpb "github.com/golang/protobuf/ptypes/duration" - "golang.org/x/net/context" "google.golang.org/grpc" "google.golang.org/grpc/balancer" lbpb "google.golang.org/grpc/balancer/grpclb/grpc_lb_v1" diff --git a/vendor/google.golang.org/grpc/balancer/grpclb/grpclb_picker.go b/vendor/google.golang.org/grpc/balancer/grpclb/grpclb_picker.go index d77af401b..026bbc7f4 100644 --- a/vendor/google.golang.org/grpc/balancer/grpclb/grpclb_picker.go +++ b/vendor/google.golang.org/grpc/balancer/grpclb/grpclb_picker.go @@ -19,10 +19,10 @@ package grpclb import ( + "context" "sync" "sync/atomic" - "golang.org/x/net/context" "google.golang.org/grpc/balancer" lbpb "google.golang.org/grpc/balancer/grpclb/grpc_lb_v1" "google.golang.org/grpc/codes" diff --git a/vendor/google.golang.org/grpc/balancer/grpclb/grpclb_remote_balancer.go b/vendor/google.golang.org/grpc/balancer/grpclb/grpclb_remote_balancer.go index 2c54025dd..7b35d1114 100644 --- a/vendor/google.golang.org/grpc/balancer/grpclb/grpclb_remote_balancer.go +++ b/vendor/google.golang.org/grpc/balancer/grpclb/grpclb_remote_balancer.go @@ -19,6 +19,7 @@ package grpclb import ( + "context" "fmt" "io" "net" @@ -26,7 +27,6 @@ import ( "time" timestamppb "github.com/golang/protobuf/ptypes/timestamp" - "golang.org/x/net/context" "google.golang.org/grpc" "google.golang.org/grpc/balancer" lbpb "google.golang.org/grpc/balancer/grpclb/grpc_lb_v1" diff --git a/vendor/google.golang.org/grpc/balancer/grpclb/grpclb_test.go b/vendor/google.golang.org/grpc/balancer/grpclb/grpclb_test.go index d960d53ce..7ad0f5568 100644 --- a/vendor/google.golang.org/grpc/balancer/grpclb/grpclb_test.go +++ b/vendor/google.golang.org/grpc/balancer/grpclb/grpclb_test.go @@ -19,6 +19,7 @@ package grpclb import ( + "context" "errors" "fmt" "io" @@ -31,7 +32,6 @@ import ( "time" durationpb "github.com/golang/protobuf/ptypes/duration" - "golang.org/x/net/context" "google.golang.org/grpc" "google.golang.org/grpc/balancer" lbgrpc "google.golang.org/grpc/balancer/grpclb/grpc_lb_v1" diff --git a/vendor/google.golang.org/grpc/balancer/roundrobin/roundrobin.go b/vendor/google.golang.org/grpc/balancer/roundrobin/roundrobin.go index 2eda0a1c2..57aea9fb4 100644 --- a/vendor/google.golang.org/grpc/balancer/roundrobin/roundrobin.go +++ b/vendor/google.golang.org/grpc/balancer/roundrobin/roundrobin.go @@ -22,9 +22,9 @@ package roundrobin import ( + "context" "sync" - "golang.org/x/net/context" "google.golang.org/grpc/balancer" "google.golang.org/grpc/balancer/base" "google.golang.org/grpc/grpclog" @@ -36,7 +36,7 @@ const Name = "round_robin" // newBuilder creates a new roundrobin balancer builder. func newBuilder() balancer.Builder { - return base.NewBalancerBuilder(Name, &rrPickerBuilder{}) + return base.NewBalancerBuilderWithConfig(Name, &rrPickerBuilder{}, base.Config{HealthCheck: true}) } func init() { diff --git a/vendor/google.golang.org/grpc/balancer/roundrobin/roundrobin_test.go b/vendor/google.golang.org/grpc/balancer/roundrobin/roundrobin_test.go index 70d8af716..80c4e2b60 100644 --- a/vendor/google.golang.org/grpc/balancer/roundrobin/roundrobin_test.go +++ b/vendor/google.golang.org/grpc/balancer/roundrobin/roundrobin_test.go @@ -19,13 +19,13 @@ package roundrobin_test import ( + "context" "fmt" "net" "sync" "testing" "time" - "golang.org/x/net/context" "google.golang.org/grpc" "google.golang.org/grpc/balancer/roundrobin" "google.golang.org/grpc/codes" diff --git a/vendor/google.golang.org/grpc/balancer_conn_wrappers.go b/vendor/google.golang.org/grpc/balancer_conn_wrappers.go index 1ab95fde2..77b684775 100644 --- a/vendor/google.golang.org/grpc/balancer_conn_wrappers.go +++ b/vendor/google.golang.org/grpc/balancer_conn_wrappers.go @@ -229,8 +229,13 @@ func (ccb *ccBalancerWrapper) UpdateBalancerState(s connectivity.State, p balanc if ccb.subConns == nil { return } - ccb.cc.csMgr.updateState(s) + // Update picker before updating state. Even though the ordering here does + // not matter, it can lead to multiple calls of Pick in the common start-up + // case where we wait for ready and then perform an RPC. If the picker is + // updated later, we could call the "connecting" picker when the state is + // updated, and then call the "ready" picker after the picker gets updated. ccb.cc.blockingpicker.updatePicker(p) + ccb.cc.csMgr.updateState(s) } func (ccb *ccBalancerWrapper) ResolveNow(o resolver.ResolveNowOption) { diff --git a/vendor/google.golang.org/grpc/balancer_switching_test.go b/vendor/google.golang.org/grpc/balancer_switching_test.go index 0dcd9165c..d36c8e96e 100644 --- a/vendor/google.golang.org/grpc/balancer_switching_test.go +++ b/vendor/google.golang.org/grpc/balancer_switching_test.go @@ -19,12 +19,12 @@ package grpc import ( + "context" "fmt" "math" "testing" "time" - "golang.org/x/net/context" "google.golang.org/grpc/balancer" "google.golang.org/grpc/balancer/roundrobin" "google.golang.org/grpc/connectivity" diff --git a/vendor/google.golang.org/grpc/balancer_test.go b/vendor/google.golang.org/grpc/balancer_test.go index d9b2eebe8..219dcacac 100644 --- a/vendor/google.golang.org/grpc/balancer_test.go +++ b/vendor/google.golang.org/grpc/balancer_test.go @@ -19,6 +19,7 @@ package grpc import ( + "context" "fmt" "math" "strconv" @@ -26,7 +27,6 @@ import ( "testing" "time" - "golang.org/x/net/context" "google.golang.org/grpc/codes" _ "google.golang.org/grpc/grpclog/glogger" "google.golang.org/grpc/internal/leakcheck" diff --git a/vendor/google.golang.org/grpc/balancer_v1_wrapper.go b/vendor/google.golang.org/grpc/balancer_v1_wrapper.go index e0ce32cfb..ca07c154b 100644 --- a/vendor/google.golang.org/grpc/balancer_v1_wrapper.go +++ b/vendor/google.golang.org/grpc/balancer_v1_wrapper.go @@ -19,10 +19,10 @@ package grpc import ( + "context" "strings" "sync" - "golang.org/x/net/context" "google.golang.org/grpc/balancer" "google.golang.org/grpc/codes" "google.golang.org/grpc/connectivity" diff --git a/vendor/google.golang.org/grpc/benchmark/benchmain/main.go b/vendor/google.golang.org/grpc/benchmark/benchmain/main.go index 5937cf7ce..9cb329f0b 100644 --- a/vendor/google.golang.org/grpc/benchmark/benchmain/main.go +++ b/vendor/google.golang.org/grpc/benchmark/benchmain/main.go @@ -40,6 +40,7 @@ Assume there are two result files names as "basePerf" and "curPerf" created by a package main import ( + "context" "encoding/gob" "errors" "flag" @@ -59,7 +60,6 @@ import ( "testing" "time" - "golang.org/x/net/context" "google.golang.org/grpc" bm "google.golang.org/grpc/benchmark" testpb "google.golang.org/grpc/benchmark/grpc_testing" diff --git a/vendor/google.golang.org/grpc/benchmark/benchmark.go b/vendor/google.golang.org/grpc/benchmark/benchmark.go index ec9b50b2f..e9a272349 100644 --- a/vendor/google.golang.org/grpc/benchmark/benchmark.go +++ b/vendor/google.golang.org/grpc/benchmark/benchmark.go @@ -24,6 +24,7 @@ Package benchmark implements the building blocks to setup end-to-end gRPC benchm package benchmark import ( + "context" "fmt" "io" "net" @@ -31,7 +32,6 @@ import ( "testing" "time" - "golang.org/x/net/context" "google.golang.org/grpc" testpb "google.golang.org/grpc/benchmark/grpc_testing" "google.golang.org/grpc/benchmark/latency" diff --git a/vendor/google.golang.org/grpc/benchmark/benchmark16_test.go b/vendor/google.golang.org/grpc/benchmark/benchmark16_test.go deleted file mode 100644 index a036b63cb..000000000 --- a/vendor/google.golang.org/grpc/benchmark/benchmark16_test.go +++ /dev/null @@ -1,112 +0,0 @@ -// +build go1.6,!go1.7 - -/* - * - * Copyright 2017 gRPC authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package benchmark - -import ( - "os" - "testing" - - "google.golang.org/grpc" - "google.golang.org/grpc/benchmark/stats" -) - -func BenchmarkClientStreamc1(b *testing.B) { - grpc.EnableTracing = true - runStream(b, stats.Features{"", true, 0, 0, 0, 1, 1, 1, false, false}) -} - -func BenchmarkClientStreamc8(b *testing.B) { - grpc.EnableTracing = true - runStream(b, stats.Features{"", true, 0, 0, 0, 8, 1, 1, false, false}) -} - -func BenchmarkClientStreamc64(b *testing.B) { - grpc.EnableTracing = true - runStream(b, stats.Features{"", true, 0, 0, 0, 64, 1, 1, false, false}) -} - -func BenchmarkClientStreamc512(b *testing.B) { - grpc.EnableTracing = true - runStream(b, stats.Features{"", true, 0, 0, 0, 512, 1, 1, false, false}) -} -func BenchmarkClientUnaryc1(b *testing.B) { - grpc.EnableTracing = true - runStream(b, stats.Features{"", true, 0, 0, 0, 1, 1, 1, false, false}) -} - -func BenchmarkClientUnaryc8(b *testing.B) { - grpc.EnableTracing = true - runStream(b, stats.Features{"", true, 0, 0, 0, 8, 1, 1, false, false}) -} - -func BenchmarkClientUnaryc64(b *testing.B) { - grpc.EnableTracing = true - runStream(b, stats.Features{"", true, 0, 0, 0, 64, 1, 1, false, false}) -} - -func BenchmarkClientUnaryc512(b *testing.B) { - grpc.EnableTracing = true - runStream(b, stats.Features{"", true, 0, 0, 0, 512, 1, 1, false, false}) -} - -func BenchmarkClientStreamNoTracec1(b *testing.B) { - grpc.EnableTracing = false - runStream(b, stats.Features{"", false, 0, 0, 0, 1, 1, 1, false, false}) -} - -func BenchmarkClientStreamNoTracec8(b *testing.B) { - grpc.EnableTracing = false - runStream(b, stats.Features{"", false, 0, 0, 0, 8, 1, 1, false, false}) -} - -func BenchmarkClientStreamNoTracec64(b *testing.B) { - grpc.EnableTracing = false - runStream(b, stats.Features{"", false, 0, 0, 0, 64, 1, 1, false, false}) -} - -func BenchmarkClientStreamNoTracec512(b *testing.B) { - grpc.EnableTracing = false - runStream(b, stats.Features{"", false, 0, 0, 0, 512, 1, 1, false, false}) -} -func BenchmarkClientUnaryNoTracec1(b *testing.B) { - grpc.EnableTracing = false - runStream(b, stats.Features{"", false, 0, 0, 0, 1, 1, 1, false, false}) -} - -func BenchmarkClientUnaryNoTracec8(b *testing.B) { - grpc.EnableTracing = false - runStream(b, stats.Features{"", false, 0, 0, 0, 8, 1, 1, false, false}) -} - -func BenchmarkClientUnaryNoTracec64(b *testing.B) { - grpc.EnableTracing = false - runStream(b, stats.Features{"", false, 0, 0, 0, 64, 1, 1, false, false}) -} - -func BenchmarkClientUnaryNoTracec512(b *testing.B) { - grpc.EnableTracing = false - runStream(b, stats.Features{"", false, 0, 0, 0, 512, 1, 1, false, false}) - runStream(b, stats.Features{"", false, 0, 0, 0, 512, 1, 1, false, false}) -} - -func TestMain(m *testing.M) { - os.Exit(stats.RunTestMain(m)) -} diff --git a/vendor/google.golang.org/grpc/benchmark/benchmark17_test.go b/vendor/google.golang.org/grpc/benchmark/benchmark_test.go similarity index 99% rename from vendor/google.golang.org/grpc/benchmark/benchmark17_test.go rename to vendor/google.golang.org/grpc/benchmark/benchmark_test.go index 8dc7d3c55..dd4984a26 100644 --- a/vendor/google.golang.org/grpc/benchmark/benchmark17_test.go +++ b/vendor/google.golang.org/grpc/benchmark/benchmark_test.go @@ -1,5 +1,3 @@ -// +build go1.7 - /* * * Copyright 2017 gRPC authors. diff --git a/vendor/google.golang.org/grpc/benchmark/client/main.go b/vendor/google.golang.org/grpc/benchmark/client/main.go index fb6f9b63e..1cb02ea16 100644 --- a/vendor/google.golang.org/grpc/benchmark/client/main.go +++ b/vendor/google.golang.org/grpc/benchmark/client/main.go @@ -19,6 +19,7 @@ package main import ( + "context" "flag" "fmt" "os" @@ -27,7 +28,6 @@ import ( "sync" "time" - "golang.org/x/net/context" "google.golang.org/grpc" "google.golang.org/grpc/benchmark" testpb "google.golang.org/grpc/benchmark/grpc_testing" diff --git a/vendor/google.golang.org/grpc/benchmark/latency/latency.go b/vendor/google.golang.org/grpc/benchmark/latency/latency.go index 5839a5c44..d5cc44f9b 100644 --- a/vendor/google.golang.org/grpc/benchmark/latency/latency.go +++ b/vendor/google.golang.org/grpc/benchmark/latency/latency.go @@ -23,13 +23,12 @@ package latency import ( "bytes" + "context" "encoding/binary" "fmt" "io" "net" "time" - - "golang.org/x/net/context" ) // Dialer is a function matching the signature of net.Dial. diff --git a/vendor/google.golang.org/grpc/benchmark/primitives/context_test.go b/vendor/google.golang.org/grpc/benchmark/primitives/context_test.go index e1d6c043f..1d92192f3 100644 --- a/vendor/google.golang.org/grpc/benchmark/primitives/context_test.go +++ b/vendor/google.golang.org/grpc/benchmark/primitives/context_test.go @@ -19,10 +19,9 @@ package primitives_test import ( + "context" "testing" "time" - - "golang.org/x/net/context" ) func BenchmarkCancelContextErrNoErr(b *testing.B) { diff --git a/vendor/google.golang.org/grpc/benchmark/primitives/primitives_test.go b/vendor/google.golang.org/grpc/benchmark/primitives/primitives_test.go index 846813d8d..71fc26e29 100644 --- a/vendor/google.golang.org/grpc/benchmark/primitives/primitives_test.go +++ b/vendor/google.golang.org/grpc/benchmark/primitives/primitives_test.go @@ -1,5 +1,3 @@ -// +build go1.7 - /* * * Copyright 2017 gRPC authors. diff --git a/vendor/google.golang.org/grpc/benchmark/worker/benchmark_client.go b/vendor/google.golang.org/grpc/benchmark/worker/benchmark_client.go index 515f6fc55..abb5bc992 100644 --- a/vendor/google.golang.org/grpc/benchmark/worker/benchmark_client.go +++ b/vendor/google.golang.org/grpc/benchmark/worker/benchmark_client.go @@ -19,13 +19,13 @@ package main import ( + "context" "flag" "math" "runtime" "sync" "time" - "golang.org/x/net/context" "google.golang.org/grpc" "google.golang.org/grpc/benchmark" testpb "google.golang.org/grpc/benchmark/grpc_testing" diff --git a/vendor/google.golang.org/grpc/benchmark/worker/main.go b/vendor/google.golang.org/grpc/benchmark/worker/main.go index 3d2fd6173..5933bd3ac 100644 --- a/vendor/google.golang.org/grpc/benchmark/worker/main.go +++ b/vendor/google.golang.org/grpc/benchmark/worker/main.go @@ -19,6 +19,7 @@ package main import ( + "context" "flag" "fmt" "io" @@ -29,7 +30,6 @@ import ( "strconv" "time" - "golang.org/x/net/context" "google.golang.org/grpc" testpb "google.golang.org/grpc/benchmark/grpc_testing" "google.golang.org/grpc/codes" diff --git a/vendor/google.golang.org/grpc/call.go b/vendor/google.golang.org/grpc/call.go index 180d79d06..100f05dc7 100644 --- a/vendor/google.golang.org/grpc/call.go +++ b/vendor/google.golang.org/grpc/call.go @@ -19,7 +19,7 @@ package grpc import ( - "golang.org/x/net/context" + "context" ) // Invoke sends the RPC request on the wire and returns after response is diff --git a/vendor/google.golang.org/grpc/call_test.go b/vendor/google.golang.org/grpc/call_test.go index df9364007..7800c5d84 100644 --- a/vendor/google.golang.org/grpc/call_test.go +++ b/vendor/google.golang.org/grpc/call_test.go @@ -19,6 +19,7 @@ package grpc import ( + "context" "fmt" "io" "math" @@ -29,7 +30,6 @@ import ( "testing" "time" - "golang.org/x/net/context" "google.golang.org/grpc/codes" "google.golang.org/grpc/internal/leakcheck" "google.golang.org/grpc/internal/transport" diff --git a/vendor/google.golang.org/grpc/channelz/grpc_channelz_v1/channelz.pb.go b/vendor/google.golang.org/grpc/channelz/grpc_channelz_v1/channelz.pb.go index 72558c901..fab354af6 100644 --- a/vendor/google.golang.org/grpc/channelz/grpc_channelz_v1/channelz.pb.go +++ b/vendor/google.golang.org/grpc/channelz/grpc_channelz_v1/channelz.pb.go @@ -59,7 +59,7 @@ func (x ChannelConnectivityState_State) String() string { return proto.EnumName(ChannelConnectivityState_State_name, int32(x)) } func (ChannelConnectivityState_State) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_channelz_ce3ed45d08251f2f, []int{2, 0} + return fileDescriptor_channelz_449295370a82a4c0, []int{2, 0} } // The supported severity levels of trace events. @@ -89,7 +89,7 @@ func (x ChannelTraceEvent_Severity) String() string { return proto.EnumName(ChannelTraceEvent_Severity_name, int32(x)) } func (ChannelTraceEvent_Severity) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_channelz_ce3ed45d08251f2f, []int{4, 0} + return fileDescriptor_channelz_449295370a82a4c0, []int{4, 0} } // Channel is a logical grouping of channels, subchannels, and sockets. @@ -118,7 +118,7 @@ func (m *Channel) Reset() { *m = Channel{} } func (m *Channel) String() string { return proto.CompactTextString(m) } func (*Channel) ProtoMessage() {} func (*Channel) Descriptor() ([]byte, []int) { - return fileDescriptor_channelz_ce3ed45d08251f2f, []int{0} + return fileDescriptor_channelz_449295370a82a4c0, []int{0} } func (m *Channel) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Channel.Unmarshal(m, b) @@ -200,7 +200,7 @@ func (m *Subchannel) Reset() { *m = Subchannel{} } func (m *Subchannel) String() string { return proto.CompactTextString(m) } func (*Subchannel) ProtoMessage() {} func (*Subchannel) Descriptor() ([]byte, []int) { - return fileDescriptor_channelz_ce3ed45d08251f2f, []int{1} + return fileDescriptor_channelz_449295370a82a4c0, []int{1} } func (m *Subchannel) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Subchannel.Unmarshal(m, b) @@ -268,7 +268,7 @@ func (m *ChannelConnectivityState) Reset() { *m = ChannelConnectivitySta func (m *ChannelConnectivityState) String() string { return proto.CompactTextString(m) } func (*ChannelConnectivityState) ProtoMessage() {} func (*ChannelConnectivityState) Descriptor() ([]byte, []int) { - return fileDescriptor_channelz_ce3ed45d08251f2f, []int{2} + return fileDescriptor_channelz_449295370a82a4c0, []int{2} } func (m *ChannelConnectivityState) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ChannelConnectivityState.Unmarshal(m, b) @@ -321,7 +321,7 @@ func (m *ChannelData) Reset() { *m = ChannelData{} } func (m *ChannelData) String() string { return proto.CompactTextString(m) } func (*ChannelData) ProtoMessage() {} func (*ChannelData) Descriptor() ([]byte, []int) { - return fileDescriptor_channelz_ce3ed45d08251f2f, []int{3} + return fileDescriptor_channelz_449295370a82a4c0, []int{3} } func (m *ChannelData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ChannelData.Unmarshal(m, b) @@ -417,7 +417,7 @@ func (m *ChannelTraceEvent) Reset() { *m = ChannelTraceEvent{} } func (m *ChannelTraceEvent) String() string { return proto.CompactTextString(m) } func (*ChannelTraceEvent) ProtoMessage() {} func (*ChannelTraceEvent) Descriptor() ([]byte, []int) { - return fileDescriptor_channelz_ce3ed45d08251f2f, []int{4} + return fileDescriptor_channelz_449295370a82a4c0, []int{4} } func (m *ChannelTraceEvent) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ChannelTraceEvent.Unmarshal(m, b) @@ -588,7 +588,7 @@ func (m *ChannelTrace) Reset() { *m = ChannelTrace{} } func (m *ChannelTrace) String() string { return proto.CompactTextString(m) } func (*ChannelTrace) ProtoMessage() {} func (*ChannelTrace) Descriptor() ([]byte, []int) { - return fileDescriptor_channelz_ce3ed45d08251f2f, []int{5} + return fileDescriptor_channelz_449295370a82a4c0, []int{5} } func (m *ChannelTrace) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ChannelTrace.Unmarshal(m, b) @@ -644,7 +644,7 @@ func (m *ChannelRef) Reset() { *m = ChannelRef{} } func (m *ChannelRef) String() string { return proto.CompactTextString(m) } func (*ChannelRef) ProtoMessage() {} func (*ChannelRef) Descriptor() ([]byte, []int) { - return fileDescriptor_channelz_ce3ed45d08251f2f, []int{6} + return fileDescriptor_channelz_449295370a82a4c0, []int{6} } func (m *ChannelRef) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ChannelRef.Unmarshal(m, b) @@ -693,7 +693,7 @@ func (m *SubchannelRef) Reset() { *m = SubchannelRef{} } func (m *SubchannelRef) String() string { return proto.CompactTextString(m) } func (*SubchannelRef) ProtoMessage() {} func (*SubchannelRef) Descriptor() ([]byte, []int) { - return fileDescriptor_channelz_ce3ed45d08251f2f, []int{7} + return fileDescriptor_channelz_449295370a82a4c0, []int{7} } func (m *SubchannelRef) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SubchannelRef.Unmarshal(m, b) @@ -729,6 +729,7 @@ func (m *SubchannelRef) GetName() string { // SocketRef is a reference to a Socket. type SocketRef struct { + // The globally unique id for this socket. Must be a positive number. SocketId int64 `protobuf:"varint,3,opt,name=socket_id,json=socketId,proto3" json:"socket_id,omitempty"` // An optional name associated with the socket. Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` @@ -741,7 +742,7 @@ func (m *SocketRef) Reset() { *m = SocketRef{} } func (m *SocketRef) String() string { return proto.CompactTextString(m) } func (*SocketRef) ProtoMessage() {} func (*SocketRef) Descriptor() ([]byte, []int) { - return fileDescriptor_channelz_ce3ed45d08251f2f, []int{8} + return fileDescriptor_channelz_449295370a82a4c0, []int{8} } func (m *SocketRef) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SocketRef.Unmarshal(m, b) @@ -790,7 +791,7 @@ func (m *ServerRef) Reset() { *m = ServerRef{} } func (m *ServerRef) String() string { return proto.CompactTextString(m) } func (*ServerRef) ProtoMessage() {} func (*ServerRef) Descriptor() ([]byte, []int) { - return fileDescriptor_channelz_ce3ed45d08251f2f, []int{9} + return fileDescriptor_channelz_449295370a82a4c0, []int{9} } func (m *ServerRef) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ServerRef.Unmarshal(m, b) @@ -843,7 +844,7 @@ func (m *Server) Reset() { *m = Server{} } func (m *Server) String() string { return proto.CompactTextString(m) } func (*Server) ProtoMessage() {} func (*Server) Descriptor() ([]byte, []int) { - return fileDescriptor_channelz_ce3ed45d08251f2f, []int{10} + return fileDescriptor_channelz_449295370a82a4c0, []int{10} } func (m *Server) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Server.Unmarshal(m, b) @@ -905,7 +906,7 @@ func (m *ServerData) Reset() { *m = ServerData{} } func (m *ServerData) String() string { return proto.CompactTextString(m) } func (*ServerData) ProtoMessage() {} func (*ServerData) Descriptor() ([]byte, []int) { - return fileDescriptor_channelz_ce3ed45d08251f2f, []int{11} + return fileDescriptor_channelz_449295370a82a4c0, []int{11} } func (m *ServerData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ServerData.Unmarshal(m, b) @@ -985,7 +986,7 @@ func (m *Socket) Reset() { *m = Socket{} } func (m *Socket) String() string { return proto.CompactTextString(m) } func (*Socket) ProtoMessage() {} func (*Socket) Descriptor() ([]byte, []int) { - return fileDescriptor_channelz_ce3ed45d08251f2f, []int{12} + return fileDescriptor_channelz_449295370a82a4c0, []int{12} } func (m *Socket) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Socket.Unmarshal(m, b) @@ -1086,7 +1087,8 @@ type SocketData struct { // This may be slightly out of date due to network latency. This does NOT // include stream level or TCP level flow control info. RemoteFlowControlWindow *wrappers.Int64Value `protobuf:"bytes,12,opt,name=remote_flow_control_window,json=remoteFlowControlWindow,proto3" json:"remote_flow_control_window,omitempty"` - // Socket options set on this socket. May be absent. + // Socket options set on this socket. May be absent if 'summary' is set + // on GetSocketRequest. Option []*SocketOption `protobuf:"bytes,13,rep,name=option,proto3" json:"option,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -1097,7 +1099,7 @@ func (m *SocketData) Reset() { *m = SocketData{} } func (m *SocketData) String() string { return proto.CompactTextString(m) } func (*SocketData) ProtoMessage() {} func (*SocketData) Descriptor() ([]byte, []int) { - return fileDescriptor_channelz_ce3ed45d08251f2f, []int{13} + return fileDescriptor_channelz_449295370a82a4c0, []int{13} } func (m *SocketData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SocketData.Unmarshal(m, b) @@ -1224,7 +1226,7 @@ func (m *Address) Reset() { *m = Address{} } func (m *Address) String() string { return proto.CompactTextString(m) } func (*Address) ProtoMessage() {} func (*Address) Descriptor() ([]byte, []int) { - return fileDescriptor_channelz_ce3ed45d08251f2f, []int{14} + return fileDescriptor_channelz_449295370a82a4c0, []int{14} } func (m *Address) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Address.Unmarshal(m, b) @@ -1402,7 +1404,7 @@ func (m *Address_TcpIpAddress) Reset() { *m = Address_TcpIpAddress{} } func (m *Address_TcpIpAddress) String() string { return proto.CompactTextString(m) } func (*Address_TcpIpAddress) ProtoMessage() {} func (*Address_TcpIpAddress) Descriptor() ([]byte, []int) { - return fileDescriptor_channelz_ce3ed45d08251f2f, []int{14, 0} + return fileDescriptor_channelz_449295370a82a4c0, []int{14, 0} } func (m *Address_TcpIpAddress) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Address_TcpIpAddress.Unmarshal(m, b) @@ -1448,7 +1450,7 @@ func (m *Address_UdsAddress) Reset() { *m = Address_UdsAddress{} } func (m *Address_UdsAddress) String() string { return proto.CompactTextString(m) } func (*Address_UdsAddress) ProtoMessage() {} func (*Address_UdsAddress) Descriptor() ([]byte, []int) { - return fileDescriptor_channelz_ce3ed45d08251f2f, []int{14, 1} + return fileDescriptor_channelz_449295370a82a4c0, []int{14, 1} } func (m *Address_UdsAddress) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Address_UdsAddress.Unmarshal(m, b) @@ -1490,7 +1492,7 @@ func (m *Address_OtherAddress) Reset() { *m = Address_OtherAddress{} } func (m *Address_OtherAddress) String() string { return proto.CompactTextString(m) } func (*Address_OtherAddress) ProtoMessage() {} func (*Address_OtherAddress) Descriptor() ([]byte, []int) { - return fileDescriptor_channelz_ce3ed45d08251f2f, []int{14, 2} + return fileDescriptor_channelz_449295370a82a4c0, []int{14, 2} } func (m *Address_OtherAddress) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Address_OtherAddress.Unmarshal(m, b) @@ -1539,7 +1541,7 @@ func (m *Security) Reset() { *m = Security{} } func (m *Security) String() string { return proto.CompactTextString(m) } func (*Security) ProtoMessage() {} func (*Security) Descriptor() ([]byte, []int) { - return fileDescriptor_channelz_ce3ed45d08251f2f, []int{15} + return fileDescriptor_channelz_449295370a82a4c0, []int{15} } func (m *Security) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Security.Unmarshal(m, b) @@ -1688,7 +1690,7 @@ func (m *Security_Tls) Reset() { *m = Security_Tls{} } func (m *Security_Tls) String() string { return proto.CompactTextString(m) } func (*Security_Tls) ProtoMessage() {} func (*Security_Tls) Descriptor() ([]byte, []int) { - return fileDescriptor_channelz_ce3ed45d08251f2f, []int{15, 0} + return fileDescriptor_channelz_449295370a82a4c0, []int{15, 0} } func (m *Security_Tls) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Security_Tls.Unmarshal(m, b) @@ -1839,7 +1841,7 @@ func (m *Security_OtherSecurity) Reset() { *m = Security_OtherSecurity{} func (m *Security_OtherSecurity) String() string { return proto.CompactTextString(m) } func (*Security_OtherSecurity) ProtoMessage() {} func (*Security_OtherSecurity) Descriptor() ([]byte, []int) { - return fileDescriptor_channelz_ce3ed45d08251f2f, []int{15, 1} + return fileDescriptor_channelz_449295370a82a4c0, []int{15, 1} } func (m *Security_OtherSecurity) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Security_OtherSecurity.Unmarshal(m, b) @@ -1894,7 +1896,7 @@ func (m *SocketOption) Reset() { *m = SocketOption{} } func (m *SocketOption) String() string { return proto.CompactTextString(m) } func (*SocketOption) ProtoMessage() {} func (*SocketOption) Descriptor() ([]byte, []int) { - return fileDescriptor_channelz_ce3ed45d08251f2f, []int{16} + return fileDescriptor_channelz_449295370a82a4c0, []int{16} } func (m *SocketOption) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SocketOption.Unmarshal(m, b) @@ -1948,7 +1950,7 @@ func (m *SocketOptionTimeout) Reset() { *m = SocketOptionTimeout{} } func (m *SocketOptionTimeout) String() string { return proto.CompactTextString(m) } func (*SocketOptionTimeout) ProtoMessage() {} func (*SocketOptionTimeout) Descriptor() ([]byte, []int) { - return fileDescriptor_channelz_ce3ed45d08251f2f, []int{17} + return fileDescriptor_channelz_449295370a82a4c0, []int{17} } func (m *SocketOptionTimeout) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SocketOptionTimeout.Unmarshal(m, b) @@ -1991,7 +1993,7 @@ func (m *SocketOptionLinger) Reset() { *m = SocketOptionLinger{} } func (m *SocketOptionLinger) String() string { return proto.CompactTextString(m) } func (*SocketOptionLinger) ProtoMessage() {} func (*SocketOptionLinger) Descriptor() ([]byte, []int) { - return fileDescriptor_channelz_ce3ed45d08251f2f, []int{18} + return fileDescriptor_channelz_449295370a82a4c0, []int{18} } func (m *SocketOptionLinger) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SocketOptionLinger.Unmarshal(m, b) @@ -2066,7 +2068,7 @@ func (m *SocketOptionTcpInfo) Reset() { *m = SocketOptionTcpInfo{} } func (m *SocketOptionTcpInfo) String() string { return proto.CompactTextString(m) } func (*SocketOptionTcpInfo) ProtoMessage() {} func (*SocketOptionTcpInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_channelz_ce3ed45d08251f2f, []int{19} + return fileDescriptor_channelz_449295370a82a4c0, []int{19} } func (m *SocketOptionTcpInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SocketOptionTcpInfo.Unmarshal(m, b) @@ -2292,7 +2294,14 @@ func (m *SocketOptionTcpInfo) GetTcpiReordering() uint32 { type GetTopChannelsRequest struct { // start_channel_id indicates that only channels at or above this id should be // included in the results. - StartChannelId int64 `protobuf:"varint,1,opt,name=start_channel_id,json=startChannelId,proto3" json:"start_channel_id,omitempty"` + // To request the first page, this should be set to 0. To request + // subsequent pages, the client generates this value by adding 1 to + // the highest seen result ID. + StartChannelId int64 `protobuf:"varint,1,opt,name=start_channel_id,json=startChannelId,proto3" json:"start_channel_id,omitempty"` + // If non-zero, the server will return a page of results containing + // at most this many items. If zero, the server will choose a + // reasonable page size. Must never be negative. + MaxResults int64 `protobuf:"varint,2,opt,name=max_results,json=maxResults,proto3" json:"max_results,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2302,7 +2311,7 @@ func (m *GetTopChannelsRequest) Reset() { *m = GetTopChannelsRequest{} } func (m *GetTopChannelsRequest) String() string { return proto.CompactTextString(m) } func (*GetTopChannelsRequest) ProtoMessage() {} func (*GetTopChannelsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_channelz_ce3ed45d08251f2f, []int{20} + return fileDescriptor_channelz_449295370a82a4c0, []int{20} } func (m *GetTopChannelsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetTopChannelsRequest.Unmarshal(m, b) @@ -2329,9 +2338,17 @@ func (m *GetTopChannelsRequest) GetStartChannelId() int64 { return 0 } +func (m *GetTopChannelsRequest) GetMaxResults() int64 { + if m != nil { + return m.MaxResults + } + return 0 +} + type GetTopChannelsResponse struct { // list of channels that the connection detail service knows about. Sorted in // ascending channel_id order. + // Must contain at least 1 result, otherwise 'end' must be true. Channel []*Channel `protobuf:"bytes,1,rep,name=channel,proto3" json:"channel,omitempty"` // If set, indicates that the list of channels is the final list. Requesting // more channels can only return more if they are created after this RPC @@ -2346,7 +2363,7 @@ func (m *GetTopChannelsResponse) Reset() { *m = GetTopChannelsResponse{} func (m *GetTopChannelsResponse) String() string { return proto.CompactTextString(m) } func (*GetTopChannelsResponse) ProtoMessage() {} func (*GetTopChannelsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_channelz_ce3ed45d08251f2f, []int{21} + return fileDescriptor_channelz_449295370a82a4c0, []int{21} } func (m *GetTopChannelsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetTopChannelsResponse.Unmarshal(m, b) @@ -2383,7 +2400,14 @@ func (m *GetTopChannelsResponse) GetEnd() bool { type GetServersRequest struct { // start_server_id indicates that only servers at or above this id should be // included in the results. - StartServerId int64 `protobuf:"varint,1,opt,name=start_server_id,json=startServerId,proto3" json:"start_server_id,omitempty"` + // To request the first page, this must be set to 0. To request + // subsequent pages, the client generates this value by adding 1 to + // the highest seen result ID. + StartServerId int64 `protobuf:"varint,1,opt,name=start_server_id,json=startServerId,proto3" json:"start_server_id,omitempty"` + // If non-zero, the server will return a page of results containing + // at most this many items. If zero, the server will choose a + // reasonable page size. Must never be negative. + MaxResults int64 `protobuf:"varint,2,opt,name=max_results,json=maxResults,proto3" json:"max_results,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2393,7 +2417,7 @@ func (m *GetServersRequest) Reset() { *m = GetServersRequest{} } func (m *GetServersRequest) String() string { return proto.CompactTextString(m) } func (*GetServersRequest) ProtoMessage() {} func (*GetServersRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_channelz_ce3ed45d08251f2f, []int{22} + return fileDescriptor_channelz_449295370a82a4c0, []int{22} } func (m *GetServersRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetServersRequest.Unmarshal(m, b) @@ -2420,9 +2444,17 @@ func (m *GetServersRequest) GetStartServerId() int64 { return 0 } +func (m *GetServersRequest) GetMaxResults() int64 { + if m != nil { + return m.MaxResults + } + return 0 +} + type GetServersResponse struct { // list of servers that the connection detail service knows about. Sorted in // ascending server_id order. + // Must contain at least 1 result, otherwise 'end' must be true. Server []*Server `protobuf:"bytes,1,rep,name=server,proto3" json:"server,omitempty"` // If set, indicates that the list of servers is the final list. Requesting // more servers will only return more if they are created after this RPC @@ -2437,7 +2469,7 @@ func (m *GetServersResponse) Reset() { *m = GetServersResponse{} } func (m *GetServersResponse) String() string { return proto.CompactTextString(m) } func (*GetServersResponse) ProtoMessage() {} func (*GetServersResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_channelz_ce3ed45d08251f2f, []int{23} + return fileDescriptor_channelz_449295370a82a4c0, []int{23} } func (m *GetServersResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetServersResponse.Unmarshal(m, b) @@ -2471,11 +2503,97 @@ func (m *GetServersResponse) GetEnd() bool { return false } +type GetServerRequest struct { + // server_id is the identifier of the specific server to get. + ServerId int64 `protobuf:"varint,1,opt,name=server_id,json=serverId,proto3" json:"server_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetServerRequest) Reset() { *m = GetServerRequest{} } +func (m *GetServerRequest) String() string { return proto.CompactTextString(m) } +func (*GetServerRequest) ProtoMessage() {} +func (*GetServerRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_channelz_449295370a82a4c0, []int{24} +} +func (m *GetServerRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetServerRequest.Unmarshal(m, b) +} +func (m *GetServerRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetServerRequest.Marshal(b, m, deterministic) +} +func (dst *GetServerRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetServerRequest.Merge(dst, src) +} +func (m *GetServerRequest) XXX_Size() int { + return xxx_messageInfo_GetServerRequest.Size(m) +} +func (m *GetServerRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetServerRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetServerRequest proto.InternalMessageInfo + +func (m *GetServerRequest) GetServerId() int64 { + if m != nil { + return m.ServerId + } + return 0 +} + +type GetServerResponse struct { + // The Server that corresponds to the requested server_id. This field + // should be set. + Server *Server `protobuf:"bytes,1,opt,name=server,proto3" json:"server,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetServerResponse) Reset() { *m = GetServerResponse{} } +func (m *GetServerResponse) String() string { return proto.CompactTextString(m) } +func (*GetServerResponse) ProtoMessage() {} +func (*GetServerResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_channelz_449295370a82a4c0, []int{25} +} +func (m *GetServerResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetServerResponse.Unmarshal(m, b) +} +func (m *GetServerResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetServerResponse.Marshal(b, m, deterministic) +} +func (dst *GetServerResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetServerResponse.Merge(dst, src) +} +func (m *GetServerResponse) XXX_Size() int { + return xxx_messageInfo_GetServerResponse.Size(m) +} +func (m *GetServerResponse) XXX_DiscardUnknown() { + xxx_messageInfo_GetServerResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_GetServerResponse proto.InternalMessageInfo + +func (m *GetServerResponse) GetServer() *Server { + if m != nil { + return m.Server + } + return nil +} + type GetServerSocketsRequest struct { ServerId int64 `protobuf:"varint,1,opt,name=server_id,json=serverId,proto3" json:"server_id,omitempty"` // start_socket_id indicates that only sockets at or above this id should be // included in the results. - StartSocketId int64 `protobuf:"varint,2,opt,name=start_socket_id,json=startSocketId,proto3" json:"start_socket_id,omitempty"` + // To request the first page, this must be set to 0. To request + // subsequent pages, the client generates this value by adding 1 to + // the highest seen result ID. + StartSocketId int64 `protobuf:"varint,2,opt,name=start_socket_id,json=startSocketId,proto3" json:"start_socket_id,omitempty"` + // If non-zero, the server will return a page of results containing + // at most this many items. If zero, the server will choose a + // reasonable page size. Must never be negative. + MaxResults int64 `protobuf:"varint,3,opt,name=max_results,json=maxResults,proto3" json:"max_results,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2485,7 +2603,7 @@ func (m *GetServerSocketsRequest) Reset() { *m = GetServerSocketsRequest func (m *GetServerSocketsRequest) String() string { return proto.CompactTextString(m) } func (*GetServerSocketsRequest) ProtoMessage() {} func (*GetServerSocketsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_channelz_ce3ed45d08251f2f, []int{24} + return fileDescriptor_channelz_449295370a82a4c0, []int{26} } func (m *GetServerSocketsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetServerSocketsRequest.Unmarshal(m, b) @@ -2519,9 +2637,17 @@ func (m *GetServerSocketsRequest) GetStartSocketId() int64 { return 0 } +func (m *GetServerSocketsRequest) GetMaxResults() int64 { + if m != nil { + return m.MaxResults + } + return 0 +} + type GetServerSocketsResponse struct { // list of socket refs that the connection detail service knows about. Sorted in // ascending socket_id order. + // Must contain at least 1 result, otherwise 'end' must be true. SocketRef []*SocketRef `protobuf:"bytes,1,rep,name=socket_ref,json=socketRef,proto3" json:"socket_ref,omitempty"` // If set, indicates that the list of sockets is the final list. Requesting // more sockets will only return more if they are created after this RPC @@ -2536,7 +2662,7 @@ func (m *GetServerSocketsResponse) Reset() { *m = GetServerSocketsRespon func (m *GetServerSocketsResponse) String() string { return proto.CompactTextString(m) } func (*GetServerSocketsResponse) ProtoMessage() {} func (*GetServerSocketsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_channelz_ce3ed45d08251f2f, []int{25} + return fileDescriptor_channelz_449295370a82a4c0, []int{27} } func (m *GetServerSocketsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetServerSocketsResponse.Unmarshal(m, b) @@ -2582,7 +2708,7 @@ func (m *GetChannelRequest) Reset() { *m = GetChannelRequest{} } func (m *GetChannelRequest) String() string { return proto.CompactTextString(m) } func (*GetChannelRequest) ProtoMessage() {} func (*GetChannelRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_channelz_ce3ed45d08251f2f, []int{26} + return fileDescriptor_channelz_449295370a82a4c0, []int{28} } func (m *GetChannelRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetChannelRequest.Unmarshal(m, b) @@ -2622,7 +2748,7 @@ func (m *GetChannelResponse) Reset() { *m = GetChannelResponse{} } func (m *GetChannelResponse) String() string { return proto.CompactTextString(m) } func (*GetChannelResponse) ProtoMessage() {} func (*GetChannelResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_channelz_ce3ed45d08251f2f, []int{27} + return fileDescriptor_channelz_449295370a82a4c0, []int{29} } func (m *GetChannelResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetChannelResponse.Unmarshal(m, b) @@ -2661,7 +2787,7 @@ func (m *GetSubchannelRequest) Reset() { *m = GetSubchannelRequest{} } func (m *GetSubchannelRequest) String() string { return proto.CompactTextString(m) } func (*GetSubchannelRequest) ProtoMessage() {} func (*GetSubchannelRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_channelz_ce3ed45d08251f2f, []int{28} + return fileDescriptor_channelz_449295370a82a4c0, []int{30} } func (m *GetSubchannelRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetSubchannelRequest.Unmarshal(m, b) @@ -2701,7 +2827,7 @@ func (m *GetSubchannelResponse) Reset() { *m = GetSubchannelResponse{} } func (m *GetSubchannelResponse) String() string { return proto.CompactTextString(m) } func (*GetSubchannelResponse) ProtoMessage() {} func (*GetSubchannelResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_channelz_ce3ed45d08251f2f, []int{29} + return fileDescriptor_channelz_449295370a82a4c0, []int{31} } func (m *GetSubchannelResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetSubchannelResponse.Unmarshal(m, b) @@ -2730,7 +2856,11 @@ func (m *GetSubchannelResponse) GetSubchannel() *Subchannel { type GetSocketRequest struct { // socket_id is the identifier of the specific socket to get. - SocketId int64 `protobuf:"varint,1,opt,name=socket_id,json=socketId,proto3" json:"socket_id,omitempty"` + SocketId int64 `protobuf:"varint,1,opt,name=socket_id,json=socketId,proto3" json:"socket_id,omitempty"` + // If true, the response will contain only high level information + // that is inexpensive to obtain. Fields thay may be omitted are + // documented. + Summary bool `protobuf:"varint,2,opt,name=summary,proto3" json:"summary,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2740,7 +2870,7 @@ func (m *GetSocketRequest) Reset() { *m = GetSocketRequest{} } func (m *GetSocketRequest) String() string { return proto.CompactTextString(m) } func (*GetSocketRequest) ProtoMessage() {} func (*GetSocketRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_channelz_ce3ed45d08251f2f, []int{30} + return fileDescriptor_channelz_449295370a82a4c0, []int{32} } func (m *GetSocketRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetSocketRequest.Unmarshal(m, b) @@ -2767,6 +2897,13 @@ func (m *GetSocketRequest) GetSocketId() int64 { return 0 } +func (m *GetSocketRequest) GetSummary() bool { + if m != nil { + return m.Summary + } + return false +} + type GetSocketResponse struct { // The Socket that corresponds to the requested socket_id. This field // should be set. @@ -2780,7 +2917,7 @@ func (m *GetSocketResponse) Reset() { *m = GetSocketResponse{} } func (m *GetSocketResponse) String() string { return proto.CompactTextString(m) } func (*GetSocketResponse) ProtoMessage() {} func (*GetSocketResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_channelz_ce3ed45d08251f2f, []int{31} + return fileDescriptor_channelz_449295370a82a4c0, []int{33} } func (m *GetSocketResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetSocketResponse.Unmarshal(m, b) @@ -2837,6 +2974,8 @@ func init() { proto.RegisterType((*GetTopChannelsResponse)(nil), "grpc.channelz.v1.GetTopChannelsResponse") proto.RegisterType((*GetServersRequest)(nil), "grpc.channelz.v1.GetServersRequest") proto.RegisterType((*GetServersResponse)(nil), "grpc.channelz.v1.GetServersResponse") + proto.RegisterType((*GetServerRequest)(nil), "grpc.channelz.v1.GetServerRequest") + proto.RegisterType((*GetServerResponse)(nil), "grpc.channelz.v1.GetServerResponse") proto.RegisterType((*GetServerSocketsRequest)(nil), "grpc.channelz.v1.GetServerSocketsRequest") proto.RegisterType((*GetServerSocketsResponse)(nil), "grpc.channelz.v1.GetServerSocketsResponse") proto.RegisterType((*GetChannelRequest)(nil), "grpc.channelz.v1.GetChannelRequest") @@ -2866,6 +3005,8 @@ type ChannelzClient interface { GetTopChannels(ctx context.Context, in *GetTopChannelsRequest, opts ...grpc.CallOption) (*GetTopChannelsResponse, error) // Gets all servers that exist in the process. GetServers(ctx context.Context, in *GetServersRequest, opts ...grpc.CallOption) (*GetServersResponse, error) + // Returns a single Server, or else a NOT_FOUND code. + GetServer(ctx context.Context, in *GetServerRequest, opts ...grpc.CallOption) (*GetServerResponse, error) // Gets all server sockets that exist in the process. GetServerSockets(ctx context.Context, in *GetServerSocketsRequest, opts ...grpc.CallOption) (*GetServerSocketsResponse, error) // Returns a single Channel, or else a NOT_FOUND code. @@ -2902,6 +3043,15 @@ func (c *channelzClient) GetServers(ctx context.Context, in *GetServersRequest, return out, nil } +func (c *channelzClient) GetServer(ctx context.Context, in *GetServerRequest, opts ...grpc.CallOption) (*GetServerResponse, error) { + out := new(GetServerResponse) + err := c.cc.Invoke(ctx, "/grpc.channelz.v1.Channelz/GetServer", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *channelzClient) GetServerSockets(ctx context.Context, in *GetServerSocketsRequest, opts ...grpc.CallOption) (*GetServerSocketsResponse, error) { out := new(GetServerSocketsResponse) err := c.cc.Invoke(ctx, "/grpc.channelz.v1.Channelz/GetServerSockets", in, out, opts...) @@ -2945,6 +3095,8 @@ type ChannelzServer interface { GetTopChannels(context.Context, *GetTopChannelsRequest) (*GetTopChannelsResponse, error) // Gets all servers that exist in the process. GetServers(context.Context, *GetServersRequest) (*GetServersResponse, error) + // Returns a single Server, or else a NOT_FOUND code. + GetServer(context.Context, *GetServerRequest) (*GetServerResponse, error) // Gets all server sockets that exist in the process. GetServerSockets(context.Context, *GetServerSocketsRequest) (*GetServerSocketsResponse, error) // Returns a single Channel, or else a NOT_FOUND code. @@ -2995,6 +3147,24 @@ func _Channelz_GetServers_Handler(srv interface{}, ctx context.Context, dec func return interceptor(ctx, in, info, handler) } +func _Channelz_GetServer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetServerRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ChannelzServer).GetServer(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/grpc.channelz.v1.Channelz/GetServer", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ChannelzServer).GetServer(ctx, req.(*GetServerRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _Channelz_GetServerSockets_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetServerSocketsRequest) if err := dec(in); err != nil { @@ -3079,6 +3249,10 @@ var _Channelz_serviceDesc = grpc.ServiceDesc{ MethodName: "GetServers", Handler: _Channelz_GetServers_Handler, }, + { + MethodName: "GetServer", + Handler: _Channelz_GetServer_Handler, + }, { MethodName: "GetServerSockets", Handler: _Channelz_GetServerSockets_Handler, @@ -3101,167 +3275,171 @@ var _Channelz_serviceDesc = grpc.ServiceDesc{ } func init() { - proto.RegisterFile("grpc/channelz/v1/channelz.proto", fileDescriptor_channelz_ce3ed45d08251f2f) + proto.RegisterFile("grpc/channelz/v1/channelz.proto", fileDescriptor_channelz_449295370a82a4c0) } -var fileDescriptor_channelz_ce3ed45d08251f2f = []byte{ - // 2515 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x59, 0x4b, 0x6f, 0xdb, 0xca, - 0x15, 0xb6, 0xde, 0xd4, 0xd1, 0x23, 0xf2, 0xe4, 0x45, 0x2b, 0x0f, 0xbb, 0x74, 0x6e, 0xe2, 0x9b, - 0x34, 0x72, 0xec, 0x9b, 0x06, 0x45, 0xd3, 0xa2, 0x57, 0x56, 0xec, 0x58, 0xae, 0x23, 0x07, 0x94, - 0x7c, 0x93, 0xdb, 0xc5, 0xe5, 0x65, 0xc8, 0xb1, 0xcc, 0x9a, 0x22, 0x55, 0xce, 0x48, 0x46, 0xb2, - 0xed, 0xbe, 0xcb, 0xa2, 0xbf, 0xa0, 0x9b, 0x2e, 0x0a, 0x14, 0x28, 0xd0, 0x6e, 0x8b, 0xfe, 0x99, - 0xfe, 0x8b, 0x62, 0x1e, 0x7c, 0xc8, 0x92, 0x2c, 0x07, 0x59, 0x76, 0x63, 0x88, 0x87, 0xdf, 0xf9, - 0xce, 0x99, 0xf3, 0x9a, 0xe1, 0x18, 0x56, 0xfb, 0xc1, 0xd0, 0xda, 0xb4, 0x4e, 0x4d, 0xcf, 0xc3, - 0xee, 0xa7, 0xcd, 0xf1, 0x56, 0xf4, 0xbb, 0x31, 0x0c, 0x7c, 0xea, 0xa3, 0x1a, 0x03, 0x34, 0x22, - 0xe1, 0x78, 0xab, 0xbe, 0xd2, 0xf7, 0xfd, 0xbe, 0x8b, 0x37, 0xf9, 0xfb, 0x0f, 0xa3, 0x93, 0x4d, - 0xd3, 0xfb, 0x28, 0xc0, 0xf5, 0xfb, 0x17, 0x5f, 0xd9, 0xa3, 0xc0, 0xa4, 0x8e, 0xef, 0xc9, 0xf7, - 0xab, 0x17, 0xdf, 0x53, 0x67, 0x80, 0x09, 0x35, 0x07, 0xc3, 0x79, 0x04, 0xe7, 0x81, 0x39, 0x1c, - 0xe2, 0x80, 0x88, 0xf7, 0xda, 0xdf, 0xd2, 0x50, 0x68, 0x09, 0x5f, 0x50, 0x03, 0x32, 0x01, 0x3e, - 0x51, 0x53, 0x6b, 0xa9, 0x8d, 0xd2, 0xf6, 0xdd, 0xc6, 0x45, 0x3f, 0x1b, 0x12, 0xa7, 0xe3, 0x13, - 0x9d, 0x01, 0xd1, 0x16, 0x64, 0x6d, 0x93, 0x9a, 0x6a, 0x9a, 0x2b, 0xdc, 0x9b, 0xab, 0xf0, 0xca, - 0xa4, 0xa6, 0xce, 0xa1, 0xe8, 0x57, 0x50, 0x92, 0x00, 0x83, 0x99, 0xca, 0xac, 0x65, 0x16, 0x9a, - 0x02, 0x2b, 0xfa, 0x8d, 0xf6, 0xa0, 0x4a, 0x46, 0x1f, 0x92, 0x0c, 0x59, 0xce, 0xb0, 0x3a, 0xcd, - 0xd0, 0x8d, 0x70, 0x8c, 0xa4, 0x42, 0x92, 0x8f, 0xe8, 0x17, 0x00, 0xc4, 0xb7, 0xce, 0x30, 0xe5, - 0x1c, 0x39, 0xce, 0x71, 0x67, 0x06, 0x07, 0xc7, 0x30, 0xfd, 0x22, 0x09, 0x7f, 0x6a, 0xff, 0x48, - 0x03, 0xc4, 0xe4, 0x68, 0x2b, 0x19, 0xb4, 0x85, 0x7e, 0xfc, 0x1f, 0xc7, 0xed, 0xdf, 0x29, 0x50, - 0xa5, 0x7b, 0x2d, 0xdf, 0xf3, 0xb0, 0x45, 0x9d, 0xb1, 0x43, 0x3f, 0x76, 0xa9, 0x49, 0x31, 0xda, - 0x83, 0x1c, 0x61, 0x3f, 0x78, 0x1c, 0xab, 0xdb, 0xcf, 0xe6, 0xae, 0x6c, 0x4a, 0xb5, 0xc1, 0xff, - 0xea, 0x42, 0x5d, 0xfb, 0x01, 0x72, 0x82, 0xb0, 0x04, 0x85, 0xe3, 0xce, 0x6f, 0x3a, 0x47, 0xef, - 0x3a, 0xb5, 0x25, 0xa4, 0x40, 0xb6, 0xfd, 0xea, 0x70, 0xb7, 0x96, 0x42, 0x55, 0x80, 0xd6, 0x51, - 0xa7, 0xb3, 0xdb, 0xea, 0xb5, 0x3b, 0xaf, 0x6b, 0x69, 0x54, 0x84, 0x9c, 0xbe, 0xdb, 0x7c, 0xf5, - 0x7d, 0x2d, 0x83, 0x6e, 0xc2, 0x72, 0x4f, 0x6f, 0x76, 0xba, 0xed, 0xdd, 0x4e, 0xcf, 0xd8, 0x6b, - 0xb6, 0x0f, 0x8f, 0xf5, 0xdd, 0x5a, 0x16, 0x95, 0x41, 0xe9, 0xee, 0x1f, 0xf7, 0x5e, 0x31, 0xa6, - 0x9c, 0xf6, 0xdf, 0x34, 0x94, 0x12, 0xd9, 0x41, 0xdf, 0x26, 0xfd, 0x2e, 0x6d, 0x3f, 0xbe, 0xba, - 0xdf, 0xd2, 0x63, 0x74, 0x0b, 0xf2, 0xd4, 0x0c, 0xfa, 0x98, 0xf2, 0x72, 0x28, 0xea, 0xf2, 0x09, - 0x3d, 0x87, 0x1c, 0x0d, 0x4c, 0x0b, 0xab, 0x19, 0xce, 0x7c, 0x7f, 0x2e, 0x73, 0x8f, 0xa1, 0x74, - 0x01, 0x46, 0xeb, 0x50, 0xb1, 0x4c, 0xd7, 0x25, 0x06, 0xa1, 0x66, 0x40, 0xb1, 0xad, 0x66, 0xd7, - 0x52, 0x1b, 0x19, 0xbd, 0xcc, 0x85, 0x5d, 0x21, 0x43, 0x8f, 0xe0, 0x9a, 0x04, 0x8d, 0x2c, 0x0b, - 0x63, 0x1b, 0xdb, 0x6a, 0x8e, 0xc3, 0xaa, 0x02, 0x16, 0x4a, 0xd1, 0x4f, 0x40, 0x28, 0x1a, 0x27, - 0xa6, 0xe3, 0x62, 0x5b, 0xcd, 0x73, 0x54, 0x89, 0xcb, 0xf6, 0xb8, 0x08, 0x7d, 0x0f, 0x77, 0x5c, - 0x93, 0x50, 0x83, 0xc9, 0x42, 0xa3, 0x46, 0x34, 0x84, 0xd4, 0x02, 0x77, 0xbe, 0xde, 0x10, 0x53, - 0xa8, 0x11, 0x4e, 0xa1, 0x46, 0x2f, 0x44, 0xe8, 0x2a, 0x53, 0x6f, 0x99, 0xae, 0x2b, 0xbd, 0x8b, - 0xde, 0x68, 0x7f, 0xce, 0xc0, 0x72, 0x72, 0x8d, 0xbb, 0x63, 0xec, 0x51, 0xb4, 0x06, 0x25, 0x1b, - 0x13, 0x2b, 0x70, 0x86, 0x6c, 0x0c, 0xf2, 0xb8, 0x17, 0xf5, 0xa4, 0x08, 0xed, 0x83, 0x42, 0xf0, - 0x18, 0x07, 0x0e, 0xfd, 0xc8, 0x63, 0x5a, 0xdd, 0xfe, 0xe9, 0xe5, 0xc1, 0xe3, 0xc4, 0x8d, 0xae, - 0xd4, 0xd1, 0x23, 0x6d, 0xf4, 0x73, 0x28, 0xc6, 0x4b, 0xc9, 0x2c, 0x5c, 0x4a, 0x0c, 0x46, 0xbf, - 0x9e, 0xec, 0xd7, 0xec, 0xe2, 0x91, 0xba, 0xbf, 0x34, 0xd1, 0xb1, 0xfb, 0x53, 0x1d, 0x9b, 0xbb, - 0xd2, 0x84, 0xd9, 0x5f, 0xba, 0xd0, 0xb3, 0xda, 0x2e, 0x28, 0xe1, 0xd2, 0x78, 0xf9, 0xf7, 0x8c, - 0xb8, 0x31, 0x4a, 0x50, 0x68, 0xf5, 0x8c, 0x76, 0x67, 0xef, 0x48, 0xf6, 0x46, 0xcf, 0x78, 0xd7, - 0xd4, 0x3b, 0xa2, 0x37, 0xca, 0xa0, 0xb4, 0x7a, 0xc6, 0xae, 0xae, 0x1f, 0xe9, 0xb5, 0xcc, 0x4e, - 0x09, 0x8a, 0xd6, 0xa9, 0xe3, 0xda, 0xcc, 0x17, 0xd6, 0xcb, 0xe5, 0x64, 0x04, 0xd1, 0x63, 0x58, - 0xf6, 0x46, 0x03, 0x03, 0xb3, 0x48, 0x12, 0xc3, 0xf5, 0xfb, 0x7d, 0x6c, 0xf3, 0xdc, 0x64, 0xf4, - 0x6b, 0xde, 0x68, 0xc0, 0x23, 0x4c, 0x0e, 0xb9, 0x18, 0xb5, 0x01, 0x59, 0x01, 0xe6, 0xbb, 0x58, - 0xa2, 0x52, 0xd2, 0x0b, 0xc3, 0xbb, 0x1c, 0x6a, 0x45, 0x22, 0xf4, 0x12, 0xf2, 0xc2, 0xa4, 0x9c, - 0x88, 0xeb, 0x57, 0x48, 0xb4, 0x2e, 0x55, 0x34, 0x0b, 0x20, 0x0e, 0x3f, 0xba, 0x07, 0x61, 0xf8, - 0x0d, 0x27, 0x74, 0xbd, 0x28, 0x25, 0x6d, 0x1b, 0x21, 0xc8, 0x7a, 0xe6, 0x00, 0xcb, 0x26, 0xe5, - 0xbf, 0x0f, 0xb2, 0x4a, 0xa6, 0x96, 0x3d, 0xc8, 0x2a, 0xd9, 0x5a, 0xee, 0x20, 0xab, 0xe4, 0x6a, - 0xf9, 0x83, 0xac, 0x92, 0xaf, 0x15, 0x0e, 0xb2, 0x4a, 0xa1, 0xa6, 0x1c, 0x64, 0x15, 0xa5, 0x56, - 0xd4, 0x5c, 0xa8, 0x4c, 0xe4, 0x87, 0x75, 0x68, 0x22, 0xb1, 0x8e, 0xcd, 0x5b, 0x24, 0xa3, 0x97, - 0x63, 0x61, 0xc2, 0x9a, 0x32, 0x61, 0x2d, 0x55, 0x4b, 0x1f, 0x64, 0x95, 0x74, 0x2d, 0x33, 0xcf, - 0xb2, 0xf6, 0x23, 0x14, 0xa3, 0xd9, 0x8b, 0xee, 0x80, 0x9c, 0xbe, 0xcc, 0x4a, 0x86, 0x5b, 0x51, - 0x84, 0x20, 0x61, 0x21, 0x3b, 0xd7, 0xc2, 0xec, 0xf5, 0x30, 0x0b, 0x38, 0x18, 0xe3, 0x20, 0xb4, - 0xc0, 0x1f, 0x98, 0x85, 0x9c, 0xb4, 0xc0, 0x05, 0x09, 0x0b, 0xf9, 0x2b, 0xad, 0x21, 0xb6, 0xf0, - 0xd7, 0x14, 0xe4, 0x85, 0x09, 0xf4, 0x34, 0xb9, 0xb7, 0xce, 0xda, 0x67, 0x42, 0x4f, 0xc4, 0xbe, - 0xfa, 0x6c, 0x62, 0x5f, 0xbd, 0x3b, 0x0f, 0x9f, 0xd8, 0x56, 0xbf, 0x85, 0x8a, 0xeb, 0x10, 0x8a, - 0x3d, 0x43, 0x04, 0x46, 0x96, 0xd1, 0xa5, 0x5b, 0x5a, 0x59, 0x68, 0x08, 0x81, 0xf6, 0x47, 0x76, - 0x1a, 0x88, 0x68, 0xe3, 0xa9, 0x9d, 0xfa, 0xa2, 0xa9, 0x9d, 0xbe, 0xda, 0xd4, 0xce, 0x5c, 0x69, - 0x6a, 0x67, 0x3f, 0x7b, 0x6a, 0xe7, 0xbe, 0x60, 0x6a, 0xff, 0x25, 0x0d, 0x79, 0x11, 0x9b, 0xc5, - 0xe9, 0x8b, 0x62, 0x7a, 0xc5, 0xf4, 0x71, 0x7c, 0x22, 0x7d, 0x9b, 0x90, 0x73, 0x7d, 0xcb, 0x74, - 0xe5, 0x6c, 0x5e, 0x99, 0x56, 0x69, 0xda, 0x76, 0x80, 0x09, 0xd1, 0x05, 0x0e, 0x6d, 0x41, 0x3e, - 0xc0, 0x03, 0x9f, 0x62, 0x39, 0x91, 0x2f, 0xd1, 0x90, 0x40, 0xf4, 0x82, 0xed, 0x26, 0xd6, 0x88, - 0xef, 0x26, 0x51, 0x5c, 0xa6, 0x0b, 0x4b, 0x20, 0xf4, 0x08, 0x8b, 0x56, 0xa1, 0x24, 0x18, 0x8c, - 0x44, 0x17, 0x80, 0x10, 0x75, 0xcc, 0x01, 0xd6, 0xfe, 0x50, 0x00, 0x88, 0x57, 0xc4, 0xd2, 0x4b, - 0x68, 0x80, 0xcd, 0x41, 0x5c, 0x05, 0x62, 0x08, 0x55, 0xa5, 0x38, 0xac, 0x83, 0x27, 0xb0, 0x1c, - 0x01, 0xa3, 0x4a, 0x10, 0x05, 0x53, 0x0b, 0xa1, 0x51, 0x2d, 0x7c, 0x05, 0xa1, 0x7a, 0x58, 0x0d, - 0xa2, 0x66, 0x2a, 0x52, 0x2a, 0xeb, 0x61, 0x1d, 0x2a, 0x03, 0x4c, 0x88, 0xd9, 0xc7, 0xc4, 0x20, - 0xd8, 0xa3, 0xe1, 0xb1, 0x21, 0x14, 0x76, 0xd9, 0xce, 0xfb, 0x04, 0x96, 0x23, 0x50, 0x80, 0x2d, - 0xec, 0x8c, 0xa3, 0x83, 0x43, 0x2d, 0x7c, 0xa1, 0x4b, 0x39, 0xda, 0x80, 0xda, 0x19, 0xc6, 0x43, - 0xc3, 0x74, 0x9d, 0x71, 0x48, 0x2a, 0x8e, 0x0f, 0x55, 0x26, 0x6f, 0x72, 0x31, 0xa7, 0x3d, 0x85, - 0x75, 0x5e, 0x8b, 0x3c, 0x43, 0x86, 0xf0, 0xcb, 0xe0, 0xa3, 0xfe, 0x33, 0x4f, 0x12, 0xab, 0x8c, - 0xe6, 0x90, 0xb1, 0x74, 0x39, 0x49, 0x4b, 0x70, 0xc4, 0xbb, 0xc5, 0xef, 0xe0, 0x01, 0xb7, 0x24, - 0xf3, 0x32, 0xd7, 0x94, 0xb2, 0xd0, 0xd4, 0x1a, 0xe3, 0xd1, 0x39, 0xcd, 0x1c, 0x5b, 0x61, 0x87, - 0xc9, 0xc0, 0xf0, 0x00, 0x24, 0x4c, 0x14, 0xaf, 0xd6, 0x61, 0x6f, 0x84, 0x36, 0x8b, 0x53, 0x4c, - 0x6d, 0xc2, 0xea, 0x04, 0x75, 0x98, 0x8b, 0x04, 0x3d, 0x2c, 0xa4, 0xbf, 0x9b, 0xa0, 0x0f, 0x93, - 0x16, 0x9b, 0xf8, 0x0e, 0x56, 0x44, 0x3a, 0x4e, 0x5c, 0xff, 0xdc, 0xb0, 0x7c, 0x8f, 0x06, 0xbe, - 0x6b, 0x9c, 0x3b, 0x9e, 0xed, 0x9f, 0xab, 0xa5, 0xb0, 0x9f, 0x2f, 0x90, 0xb7, 0x3d, 0xfa, 0xe2, - 0xf9, 0x77, 0xa6, 0x3b, 0xc2, 0xfa, 0x2d, 0xae, 0xbd, 0xe7, 0xfa, 0xe7, 0x2d, 0xa1, 0xfb, 0x8e, - 0xab, 0xa2, 0xf7, 0x50, 0x97, 0xc1, 0x9f, 0x45, 0x5c, 0x5e, 0x4c, 0x7c, 0x5b, 0xa8, 0x4f, 0x33, - 0xbf, 0x80, 0xbc, 0x2f, 0x4e, 0x84, 0x15, 0x3e, 0xc2, 0xef, 0xcf, 0x1b, 0x1f, 0x47, 0x1c, 0xa5, - 0x4b, 0xb4, 0xf6, 0xcf, 0x0c, 0x14, 0x64, 0xcb, 0xa3, 0x37, 0x50, 0xa1, 0xd6, 0xd0, 0x19, 0x1a, - 0xa6, 0x10, 0xc8, 0xc9, 0xf5, 0x70, 0xee, 0x90, 0x68, 0xf4, 0xac, 0x61, 0x7b, 0x28, 0x1f, 0xf6, - 0x97, 0xf4, 0x32, 0x57, 0x0f, 0xe9, 0x5e, 0x43, 0x69, 0x64, 0x93, 0x88, 0x4c, 0x8c, 0xb5, 0x07, - 0xf3, 0xc9, 0x8e, 0x6d, 0x12, 0x53, 0xc1, 0x28, 0x7a, 0x62, 0x7e, 0xf9, 0xf4, 0x14, 0x07, 0x11, - 0x55, 0x66, 0x91, 0x5f, 0x47, 0x0c, 0x9e, 0xf0, 0xcb, 0x4f, 0x3c, 0xd7, 0x9b, 0x50, 0x4e, 0xfa, - 0xcd, 0x4e, 0x3e, 0x17, 0xd6, 0x5c, 0xd6, 0x8b, 0xf1, 0x32, 0x10, 0x64, 0x87, 0x7e, 0x20, 0x3e, - 0x4f, 0x72, 0x3a, 0xff, 0x5d, 0xdf, 0x00, 0x88, 0xbd, 0x45, 0x75, 0x50, 0x4e, 0x1c, 0x17, 0xf3, - 0x39, 0x27, 0xce, 0xe3, 0xd1, 0x73, 0xbd, 0x03, 0xe5, 0xa4, 0x33, 0xd1, 0xa9, 0x20, 0x15, 0x9f, - 0x0a, 0xd0, 0x63, 0xc8, 0x8d, 0x59, 0x76, 0x65, 0x88, 0x6e, 0x4c, 0x15, 0x40, 0xd3, 0xfb, 0xa8, - 0x0b, 0xc8, 0x4e, 0x11, 0x0a, 0xd2, 0x53, 0xed, 0x4f, 0x19, 0x76, 0xb2, 0x95, 0xe3, 0x76, 0x1b, - 0x32, 0xd4, 0x25, 0xf3, 0xb7, 0xdd, 0x10, 0xd8, 0xe8, 0xb9, 0x2c, 0x22, 0x0c, 0xcc, 0x3e, 0xde, - 0x78, 0x60, 0xa4, 0xdd, 0x8d, 0x4b, 0xb4, 0xf8, 0x1a, 0xc2, 0xa7, 0xfd, 0x25, 0x5d, 0x28, 0xd6, - 0xff, 0x95, 0x82, 0x4c, 0xcf, 0x25, 0xe8, 0x2b, 0xa8, 0x10, 0x6a, 0x7a, 0xb6, 0x19, 0xd8, 0x46, - 0xbc, 0x3c, 0x16, 0xf9, 0x50, 0xcc, 0x46, 0x3e, 0x5a, 0x05, 0x10, 0x89, 0x8c, 0x8f, 0x92, 0xfb, - 0x4b, 0x7a, 0x91, 0xcb, 0x38, 0xe0, 0x09, 0x2c, 0x8b, 0xbe, 0xb3, 0x70, 0x40, 0x9d, 0x13, 0xc7, - 0x62, 0x9f, 0x96, 0x19, 0x9e, 0x91, 0x1a, 0x7f, 0xd1, 0x8a, 0xe5, 0xe8, 0x29, 0x20, 0xd9, 0x4c, - 0x49, 0x74, 0x96, 0xa3, 0x97, 0xc5, 0x9b, 0x04, 0x7c, 0xa7, 0x0a, 0x65, 0xcb, 0x19, 0x32, 0xeb, - 0x64, 0xe4, 0x50, 0x5c, 0x3f, 0x82, 0xca, 0xc4, 0xaa, 0xbe, 0x38, 0x35, 0x05, 0xc8, 0x0d, 0x7c, - 0x1b, 0xbb, 0x9a, 0x07, 0xe5, 0x64, 0xaf, 0xcd, 0x24, 0xbe, 0x91, 0x24, 0x2e, 0x4a, 0x0a, 0xf4, - 0x1c, 0xc0, 0xb4, 0x6d, 0x87, 0x69, 0x45, 0xbb, 0xfa, 0x6c, 0x9b, 0x09, 0x9c, 0x76, 0x08, 0xd7, - 0x93, 0xf6, 0xd8, 0x18, 0xf3, 0x47, 0x14, 0xfd, 0x0c, 0x94, 0xf0, 0xb6, 0x4c, 0xd6, 0xc5, 0xca, - 0x14, 0xd5, 0x2b, 0x09, 0xd0, 0x23, 0xa8, 0x66, 0x01, 0x4a, 0xb2, 0x1d, 0x3a, 0x5e, 0x1f, 0x07, - 0xec, 0x33, 0xdd, 0x64, 0x9f, 0xef, 0x62, 0x15, 0x8a, 0x2e, 0x9f, 0x26, 0x8c, 0xa4, 0xaf, 0x6e, - 0xe4, 0xef, 0xca, 0x05, 0x9f, 0xad, 0x61, 0xdb, 0x3b, 0xf1, 0x59, 0x2f, 0xb2, 0x19, 0x62, 0xc4, - 0x97, 0x0a, 0x15, 0xbd, 0xc8, 0x24, 0xe2, 0x56, 0x43, 0x13, 0x13, 0xca, 0xb0, 0x4c, 0x89, 0x48, - 0x73, 0x44, 0x89, 0x09, 0x5b, 0xa6, 0xc0, 0x7c, 0x0d, 0x35, 0x8e, 0x09, 0x30, 0x0d, 0x4c, 0x8f, - 0x0c, 0x1c, 0x2a, 0x06, 0x46, 0x45, 0xbf, 0xc6, 0xe4, 0x7a, 0x2c, 0x66, 0x67, 0x14, 0x0e, 0x1d, - 0x06, 0xfe, 0x07, 0x4c, 0x78, 0xe9, 0x54, 0x74, 0xee, 0xc0, 0x5b, 0x2e, 0x61, 0x47, 0x49, 0x0e, - 0xf8, 0x60, 0x5a, 0x67, 0xfe, 0x89, 0xf8, 0x06, 0x95, 0xe6, 0x76, 0x84, 0x28, 0x82, 0x88, 0x79, - 0x4a, 0xf8, 0x26, 0x2f, 0x21, 0x62, 0x69, 0x04, 0x3d, 0x84, 0x6b, 0x62, 0x51, 0x9e, 0x6d, 0x9c, - 0x13, 0xcb, 0x74, 0x31, 0xdf, 0xcd, 0x2b, 0x3a, 0x5f, 0x4c, 0xd7, 0xb3, 0xdf, 0x71, 0x61, 0x84, - 0x0b, 0xac, 0x71, 0x88, 0x53, 0x62, 0x9c, 0x6e, 0x8d, 0x25, 0x6e, 0x05, 0x14, 0x81, 0xa3, 0x3e, - 0xdf, 0x48, 0x2b, 0x7a, 0x81, 0x03, 0xa8, 0x1f, 0xbd, 0x32, 0xa9, 0xcf, 0x37, 0x41, 0xf9, 0xaa, - 0x49, 0x7d, 0xb4, 0x26, 0x1d, 0x65, 0x5e, 0x0c, 0x08, 0xe1, 0xdb, 0x98, 0x5c, 0x6d, 0xd7, 0xb3, - 0xdf, 0x10, 0x12, 0x21, 0x98, 0x7d, 0x86, 0x28, 0xc7, 0x08, 0xdd, 0x1a, 0x33, 0x44, 0xb8, 0xd8, - 0x91, 0x67, 0x5a, 0x67, 0xd8, 0x56, 0x2b, 0xf1, 0x62, 0x8f, 0x85, 0x28, 0x8a, 0x29, 0x11, 0x88, - 0x6a, 0xc2, 0x8a, 0x00, 0xdc, 0x01, 0x9e, 0x50, 0xc3, 0xf5, 0x09, 0x55, 0xaf, 0xf1, 0xd7, 0xdc, - 0xe7, 0x43, 0x9f, 0xd0, 0xc8, 0x80, 0x4c, 0x9e, 0x5a, 0x8b, 0x0d, 0xc8, 0xc4, 0x45, 0x90, 0x13, - 0x46, 0x47, 0x89, 0xba, 0x1c, 0x43, 0xf6, 0x84, 0x08, 0x3d, 0x85, 0xeb, 0xc2, 0x04, 0x3b, 0x26, - 0xb0, 0x93, 0xb2, 0x38, 0x7f, 0x21, 0x8e, 0xe4, 0xd5, 0x71, 0x68, 0x12, 0x7e, 0xec, 0x94, 0x07, - 0x3b, 0x14, 0xc3, 0x4d, 0xeb, 0x4c, 0xa0, 0xaf, 0xc7, 0x35, 0xc3, 0xd0, 0x4d, 0xeb, 0x8c, 0x83, - 0xa7, 0xb9, 0x03, 0x6c, 0x8d, 0xd5, 0x1b, 0xd3, 0xdc, 0x3a, 0xb6, 0xc6, 0xd3, 0xdc, 0x1c, 0x7d, - 0x73, 0x8a, 0x9b, 0x83, 0xc3, 0xd0, 0x0c, 0x07, 0x74, 0xa4, 0xde, 0x8a, 0x43, 0xf3, 0x76, 0x40, - 0x47, 0xe8, 0x31, 0x2c, 0x47, 0xd9, 0x21, 0x84, 0x9e, 0x06, 0x98, 0x9c, 0xaa, 0xb7, 0x13, 0x85, - 0x6d, 0x8d, 0xbb, 0x52, 0x9c, 0xa8, 0x10, 0xaa, 0xaa, 0xc9, 0x0a, 0xa1, 0x51, 0x7e, 0x02, 0x4a, - 0xc7, 0x66, 0xa0, 0xae, 0x24, 0x72, 0xcc, 0x25, 0x91, 0x1d, 0x56, 0x27, 0x91, 0x9d, 0x7a, 0x6c, - 0xa7, 0xeb, 0xd9, 0x91, 0x9d, 0xb0, 0x1f, 0x19, 0xd6, 0x3a, 0xf7, 0x6c, 0xf5, 0x4e, 0x9c, 0x8c, - 0xae, 0x67, 0xb7, 0xce, 0xbd, 0xb8, 0x20, 0x4c, 0x7b, 0xcc, 0x8a, 0xea, 0x6e, 0x6c, 0xb0, 0xc9, - 0x25, 0xec, 0xe4, 0x2f, 0x73, 0xee, 0x07, 0x36, 0x0e, 0x1c, 0xaf, 0xaf, 0xde, 0xe3, 0xa0, 0xaa, - 0x48, 0x7b, 0x28, 0xd5, 0x9a, 0x70, 0xf3, 0x35, 0xa6, 0x3d, 0x7f, 0x28, 0xbf, 0x21, 0x89, 0x8e, - 0x7f, 0x3f, 0xc2, 0x84, 0xb2, 0xc3, 0x36, 0xff, 0x66, 0x30, 0xa6, 0x6e, 0x30, 0xaa, 0x5c, 0xde, - 0x0a, 0x2f, 0x16, 0x34, 0x03, 0x6e, 0x5d, 0xa4, 0x20, 0x43, 0xdf, 0x23, 0x18, 0x7d, 0x03, 0x05, - 0xa9, 0xad, 0xa6, 0xf8, 0x09, 0x6a, 0x65, 0xfe, 0x6d, 0x55, 0x88, 0x44, 0x35, 0xc8, 0x60, 0x4f, - 0x7c, 0x7d, 0x28, 0x3a, 0xfb, 0xa9, 0xbd, 0x84, 0xe5, 0xd7, 0x98, 0x8a, 0x2f, 0xe2, 0xc8, 0xbf, - 0x87, 0xec, 0xdb, 0x86, 0xf9, 0x17, 0xdf, 0x16, 0xa4, 0xc2, 0xcf, 0x10, 0x33, 0x90, 0xe8, 0xb6, - 0xad, 0xbd, 0x07, 0x94, 0x54, 0x96, 0x9e, 0x3d, 0x83, 0xbc, 0xd0, 0x93, 0x8e, 0xa9, 0x73, 0x2f, - 0x02, 0x24, 0x6e, 0x86, 0x5b, 0x3f, 0xc0, 0xed, 0x88, 0x59, 0xcc, 0xdd, 0xc8, 0xb9, 0x89, 0x4b, - 0x8c, 0xd4, 0x85, 0x4b, 0x8c, 0xd8, 0xf3, 0xe8, 0x26, 0x25, 0x9d, 0xf4, 0x5c, 0x5e, 0xa7, 0x68, - 0xa7, 0xa0, 0x4e, 0xf3, 0x4b, 0xff, 0x27, 0x2f, 0xcd, 0x53, 0x9f, 0x73, 0x69, 0x3e, 0x63, 0x25, - 0xdb, 0x3c, 0xc0, 0xd1, 0xc5, 0x95, 0x58, 0xc3, 0xe5, 0x97, 0x57, 0x5a, 0x9b, 0xc7, 0x35, 0xd2, - 0x99, 0x95, 0xf1, 0xd4, 0xd5, 0x32, 0xae, 0xbd, 0x84, 0x1b, 0x6c, 0xa1, 0x89, 0x2b, 0x2d, 0xe1, - 0xc1, 0xd4, 0xb5, 0x56, 0x6a, 0xfa, 0x5a, 0x4b, 0x3b, 0xe6, 0x05, 0x9c, 0x54, 0x96, 0xae, 0xfc, - 0x12, 0x20, 0x06, 0xce, 0xff, 0x07, 0x54, 0x42, 0x33, 0x81, 0xd7, 0x36, 0xa1, 0xc6, 0x68, 0x65, - 0xd0, 0xe2, 0xac, 0x46, 0x29, 0x4b, 0x4d, 0x5e, 0x7e, 0x69, 0xbb, 0xa2, 0x48, 0xa5, 0x42, 0xa2, - 0xcc, 0xc4, 0x25, 0x90, 0xb0, 0xaf, 0xce, 0x4d, 0x91, 0xc4, 0x6d, 0xff, 0x27, 0x0b, 0x8a, 0x0c, - 0xd0, 0x27, 0x64, 0x41, 0x75, 0xb2, 0xb3, 0xd0, 0xa3, 0x69, 0x82, 0x99, 0xed, 0x5b, 0xdf, 0x58, - 0x0c, 0x94, 0x3e, 0xbe, 0x03, 0x88, 0x1b, 0x04, 0xad, 0xcf, 0xd4, 0x9b, 0xec, 0xbd, 0xfa, 0x83, - 0xcb, 0x41, 0x92, 0xd8, 0x11, 0x21, 0x4c, 0xd6, 0x2f, 0xfa, 0xfa, 0x12, 0xcd, 0xc9, 0x1e, 0xaa, - 0x3f, 0xbe, 0x0a, 0x74, 0x62, 0x0d, 0xe1, 0xff, 0x1c, 0x67, 0xaf, 0x61, 0xb2, 0xbc, 0xe7, 0xac, - 0xe1, 0x62, 0x3d, 0xff, 0x08, 0x95, 0x89, 0xea, 0x42, 0x0f, 0x67, 0x7b, 0x75, 0xb1, 0x76, 0xeb, - 0x8f, 0x16, 0xe2, 0xa4, 0x85, 0x1e, 0x14, 0xa3, 0xba, 0x41, 0xda, 0x6c, 0xad, 0x64, 0x15, 0xd6, - 0xd7, 0x2f, 0xc5, 0x08, 0xd6, 0x9d, 0xf7, 0x70, 0xdd, 0xf1, 0xa7, 0x80, 0x3b, 0x95, 0xb0, 0xb4, - 0xde, 0xb2, 0x73, 0xe4, 0xdb, 0xd4, 0x6f, 0x9f, 0xc9, 0x73, 0x65, 0xdf, 0x77, 0x4d, 0xaf, 0xdf, - 0xf0, 0x83, 0xfe, 0xe6, 0xe4, 0xff, 0x9a, 0xd9, 0x53, 0xb8, 0x05, 0x7c, 0x32, 0xc6, 0x5b, 0x1f, - 0xf2, 0xfc, 0x08, 0xfa, 0xcd, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0xd3, 0x7a, 0xae, 0xc5, 0x94, - 0x1e, 0x00, 0x00, +var fileDescriptor_channelz_449295370a82a4c0 = []byte{ + // 2584 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x59, 0x4b, 0x6f, 0xdb, 0xd8, + 0xf5, 0xb7, 0xde, 0xd4, 0xd1, 0x23, 0xf2, 0x4d, 0x26, 0x43, 0x2b, 0x99, 0xb1, 0xff, 0xf4, 0x4c, + 0xc6, 0x93, 0xfc, 0x23, 0xc7, 0x9e, 0x34, 0x28, 0x3a, 0x2d, 0x3a, 0xb6, 0x62, 0xc7, 0x72, 0x1d, + 0x39, 0xa0, 0xe4, 0x49, 0xa6, 0x28, 0xca, 0xa1, 0xc9, 0x6b, 0x99, 0x35, 0x45, 0xaa, 0xbc, 0x57, + 0xf2, 0x24, 0x9b, 0x2e, 0xba, 0xef, 0xb2, 0x28, 0xfa, 0x01, 0xba, 0xe9, 0xa2, 0x40, 0x81, 0x02, + 0xed, 0xb6, 0xdf, 0xa6, 0xdf, 0xa2, 0xb8, 0x0f, 0x3e, 0xf4, 0xb2, 0x14, 0x64, 0xd9, 0x8d, 0x21, + 0x1e, 0xfe, 0xce, 0xef, 0x9c, 0x7b, 0x5e, 0xf7, 0xf2, 0x1a, 0xd6, 0x7b, 0xc1, 0xc0, 0xda, 0xb6, + 0x2e, 0x4d, 0xcf, 0xc3, 0xee, 0xbb, 0xed, 0xd1, 0x4e, 0xf4, 0xbb, 0x31, 0x08, 0x7c, 0xea, 0xa3, + 0x1a, 0x03, 0x34, 0x22, 0xe1, 0x68, 0xa7, 0xbe, 0xd6, 0xf3, 0xfd, 0x9e, 0x8b, 0xb7, 0xf9, 0xfb, + 0xf3, 0xe1, 0xc5, 0xb6, 0xe9, 0xbd, 0x15, 0xe0, 0xfa, 0xa7, 0x93, 0xaf, 0xec, 0x61, 0x60, 0x52, + 0xc7, 0xf7, 0xe4, 0xfb, 0xf5, 0xc9, 0xf7, 0xd4, 0xe9, 0x63, 0x42, 0xcd, 0xfe, 0x60, 0x1e, 0xc1, + 0x75, 0x60, 0x0e, 0x06, 0x38, 0x20, 0xe2, 0xbd, 0xf6, 0xb7, 0x34, 0x14, 0x9a, 0xc2, 0x17, 0xd4, + 0x80, 0x4c, 0x80, 0x2f, 0xd4, 0xd4, 0x46, 0x6a, 0xab, 0xb4, 0x7b, 0xbf, 0x31, 0xe9, 0x67, 0x43, + 0xe2, 0x74, 0x7c, 0xa1, 0x33, 0x20, 0xda, 0x81, 0xac, 0x6d, 0x52, 0x53, 0x4d, 0x73, 0x85, 0x4f, + 0xe6, 0x2a, 0x3c, 0x37, 0xa9, 0xa9, 0x73, 0x28, 0xfa, 0x19, 0x94, 0x24, 0xc0, 0x60, 0xa6, 0x32, + 0x1b, 0x99, 0x85, 0xa6, 0xc0, 0x8a, 0x7e, 0xa3, 0x43, 0xa8, 0x92, 0xe1, 0x79, 0x92, 0x21, 0xcb, + 0x19, 0xd6, 0xa7, 0x19, 0x3a, 0x11, 0x8e, 0x91, 0x54, 0x48, 0xf2, 0x11, 0xfd, 0x04, 0x80, 0xf8, + 0xd6, 0x15, 0xa6, 0x9c, 0x23, 0xc7, 0x39, 0xee, 0xcd, 0xe0, 0xe0, 0x18, 0xa6, 0x5f, 0x24, 0xe1, + 0x4f, 0xed, 0x1f, 0x69, 0x80, 0x98, 0x1c, 0xed, 0x24, 0x83, 0xb6, 0xd0, 0x8f, 0xff, 0xe1, 0xb8, + 0xfd, 0x3b, 0x05, 0xaa, 0x74, 0xaf, 0xe9, 0x7b, 0x1e, 0xb6, 0xa8, 0x33, 0x72, 0xe8, 0xdb, 0x0e, + 0x35, 0x29, 0x46, 0x87, 0x90, 0x23, 0xec, 0x07, 0x8f, 0x63, 0x75, 0xf7, 0xc9, 0xdc, 0x95, 0x4d, + 0xa9, 0x36, 0xf8, 0x5f, 0x5d, 0xa8, 0x6b, 0xbf, 0x86, 0x9c, 0x20, 0x2c, 0x41, 0xe1, 0xac, 0xfd, + 0x8b, 0xf6, 0xe9, 0xeb, 0x76, 0x6d, 0x05, 0x29, 0x90, 0x6d, 0x3d, 0x3f, 0x39, 0xa8, 0xa5, 0x50, + 0x15, 0xa0, 0x79, 0xda, 0x6e, 0x1f, 0x34, 0xbb, 0xad, 0xf6, 0x8b, 0x5a, 0x1a, 0x15, 0x21, 0xa7, + 0x1f, 0xec, 0x3d, 0xff, 0xae, 0x96, 0x41, 0x1f, 0xc1, 0x6a, 0x57, 0xdf, 0x6b, 0x77, 0x5a, 0x07, + 0xed, 0xae, 0x71, 0xb8, 0xd7, 0x3a, 0x39, 0xd3, 0x0f, 0x6a, 0x59, 0x54, 0x06, 0xa5, 0x73, 0x74, + 0xd6, 0x7d, 0xce, 0x98, 0x72, 0xda, 0x7f, 0xd2, 0x50, 0x4a, 0x64, 0x07, 0x7d, 0x93, 0xf4, 0xbb, + 0xb4, 0xfb, 0x70, 0x79, 0xbf, 0xa5, 0xc7, 0xe8, 0x2e, 0xe4, 0xa9, 0x19, 0xf4, 0x30, 0xe5, 0xe5, + 0x50, 0xd4, 0xe5, 0x13, 0x7a, 0x0a, 0x39, 0x1a, 0x98, 0x16, 0x56, 0x33, 0x9c, 0xf9, 0xd3, 0xb9, + 0xcc, 0x5d, 0x86, 0xd2, 0x05, 0x18, 0x6d, 0x42, 0xc5, 0x32, 0x5d, 0x97, 0x18, 0x84, 0x9a, 0x01, + 0xc5, 0xb6, 0x9a, 0xdd, 0x48, 0x6d, 0x65, 0xf4, 0x32, 0x17, 0x76, 0x84, 0x0c, 0x7d, 0x01, 0xb7, + 0x24, 0x68, 0x68, 0x59, 0x18, 0xdb, 0xd8, 0x56, 0x73, 0x1c, 0x56, 0x15, 0xb0, 0x50, 0x8a, 0xfe, + 0x0f, 0x84, 0xa2, 0x71, 0x61, 0x3a, 0x2e, 0xb6, 0xd5, 0x3c, 0x47, 0x95, 0xb8, 0xec, 0x90, 0x8b, + 0xd0, 0x77, 0x70, 0xcf, 0x35, 0x09, 0x35, 0x98, 0x2c, 0x34, 0x6a, 0x44, 0x43, 0x48, 0x2d, 0x70, + 0xe7, 0xeb, 0x0d, 0x31, 0x85, 0x1a, 0xe1, 0x14, 0x6a, 0x74, 0x43, 0x84, 0xae, 0x32, 0xf5, 0xa6, + 0xe9, 0xba, 0xd2, 0xbb, 0xe8, 0x8d, 0xf6, 0xa7, 0x0c, 0xac, 0x26, 0xd7, 0x78, 0x30, 0xc2, 0x1e, + 0x45, 0x1b, 0x50, 0xb2, 0x31, 0xb1, 0x02, 0x67, 0xc0, 0xc6, 0x20, 0x8f, 0x7b, 0x51, 0x4f, 0x8a, + 0xd0, 0x11, 0x28, 0x04, 0x8f, 0x70, 0xe0, 0xd0, 0xb7, 0x3c, 0xa6, 0xd5, 0xdd, 0xff, 0xbf, 0x39, + 0x78, 0x9c, 0xb8, 0xd1, 0x91, 0x3a, 0x7a, 0xa4, 0x8d, 0x7e, 0x0c, 0xc5, 0x78, 0x29, 0x99, 0x85, + 0x4b, 0x89, 0xc1, 0xe8, 0xe7, 0xe3, 0xfd, 0x9a, 0x5d, 0x3c, 0x52, 0x8f, 0x56, 0xc6, 0x3a, 0xf6, + 0x68, 0xaa, 0x63, 0x73, 0x4b, 0x4d, 0x98, 0xa3, 0x95, 0x89, 0x9e, 0xd5, 0x0e, 0x40, 0x09, 0x97, + 0xc6, 0xcb, 0xbf, 0x6b, 0xc4, 0x8d, 0x51, 0x82, 0x42, 0xb3, 0x6b, 0xb4, 0xda, 0x87, 0xa7, 0xb2, + 0x37, 0xba, 0xc6, 0xeb, 0x3d, 0xbd, 0x2d, 0x7a, 0xa3, 0x0c, 0x4a, 0xb3, 0x6b, 0x1c, 0xe8, 0xfa, + 0xa9, 0x5e, 0xcb, 0xec, 0x97, 0xa0, 0x68, 0x5d, 0x3a, 0xae, 0xcd, 0x7c, 0x61, 0xbd, 0x5c, 0x4e, + 0x46, 0x10, 0x3d, 0x84, 0x55, 0x6f, 0xd8, 0x37, 0x30, 0x8b, 0x24, 0x31, 0x5c, 0xbf, 0xd7, 0xc3, + 0x36, 0xcf, 0x4d, 0x46, 0xbf, 0xe5, 0x0d, 0xfb, 0x3c, 0xc2, 0xe4, 0x84, 0x8b, 0x51, 0x0b, 0x90, + 0x15, 0x60, 0xbe, 0x8b, 0x25, 0x2a, 0x25, 0xbd, 0x30, 0xbc, 0xab, 0xa1, 0x56, 0x24, 0x42, 0x5f, + 0x43, 0x5e, 0x98, 0x94, 0x13, 0x71, 0x73, 0x89, 0x44, 0xeb, 0x52, 0x45, 0xb3, 0x00, 0xe2, 0xf0, + 0xa3, 0x4f, 0x20, 0x0c, 0xbf, 0xe1, 0x84, 0xae, 0x17, 0xa5, 0xa4, 0x65, 0x23, 0x04, 0x59, 0xcf, + 0xec, 0x63, 0xd9, 0xa4, 0xfc, 0xf7, 0x71, 0x56, 0xc9, 0xd4, 0xb2, 0xc7, 0x59, 0x25, 0x5b, 0xcb, + 0x1d, 0x67, 0x95, 0x5c, 0x2d, 0x7f, 0x9c, 0x55, 0xf2, 0xb5, 0xc2, 0x71, 0x56, 0x29, 0xd4, 0x94, + 0xe3, 0xac, 0xa2, 0xd4, 0x8a, 0x9a, 0x0b, 0x95, 0xb1, 0xfc, 0xb0, 0x0e, 0x4d, 0x24, 0xd6, 0xb1, + 0x79, 0x8b, 0x64, 0xf4, 0x72, 0x2c, 0x4c, 0x58, 0x53, 0xc6, 0xac, 0xa5, 0x6a, 0xe9, 0xe3, 0xac, + 0x92, 0xae, 0x65, 0xe6, 0x59, 0xd6, 0xbe, 0x87, 0x62, 0x34, 0x7b, 0xd1, 0x3d, 0x90, 0xd3, 0x97, + 0x59, 0xc9, 0x70, 0x2b, 0x8a, 0x10, 0x24, 0x2c, 0x64, 0xe7, 0x5a, 0x98, 0xbd, 0x1e, 0x66, 0x01, + 0x07, 0x23, 0x1c, 0x84, 0x16, 0xf8, 0x03, 0xb3, 0x90, 0x93, 0x16, 0xb8, 0x20, 0x61, 0x21, 0xbf, + 0xd4, 0x1a, 0x62, 0x0b, 0x7f, 0x4d, 0x41, 0x5e, 0x98, 0x40, 0x8f, 0x93, 0x7b, 0xeb, 0xac, 0x7d, + 0x26, 0xf4, 0x44, 0xec, 0xab, 0x4f, 0xc6, 0xf6, 0xd5, 0xfb, 0xf3, 0xf0, 0x89, 0x6d, 0xf5, 0x1b, + 0xa8, 0xb8, 0x0e, 0xa1, 0xd8, 0x33, 0x44, 0x60, 0x64, 0x19, 0xdd, 0xb8, 0xa5, 0x95, 0x85, 0x86, + 0x10, 0x68, 0x7f, 0x60, 0xa7, 0x81, 0x88, 0x36, 0x9e, 0xda, 0xa9, 0x0f, 0x9a, 0xda, 0xe9, 0xe5, + 0xa6, 0x76, 0x66, 0xa9, 0xa9, 0x9d, 0x7d, 0xef, 0xa9, 0x9d, 0xfb, 0x80, 0xa9, 0xfd, 0x97, 0x34, + 0xe4, 0x45, 0x6c, 0x16, 0xa7, 0x2f, 0x8a, 0xe9, 0x92, 0xe9, 0xe3, 0xf8, 0x44, 0xfa, 0xb6, 0x21, + 0xe7, 0xfa, 0x96, 0xe9, 0xca, 0xd9, 0xbc, 0x36, 0xad, 0xb2, 0x67, 0xdb, 0x01, 0x26, 0x44, 0x17, + 0x38, 0xb4, 0x03, 0xf9, 0x00, 0xf7, 0x7d, 0x8a, 0xe5, 0x44, 0xbe, 0x41, 0x43, 0x02, 0xd1, 0x33, + 0xb6, 0x9b, 0x58, 0x43, 0xbe, 0x9b, 0x44, 0x71, 0x99, 0x2e, 0x2c, 0x81, 0xd0, 0x23, 0x2c, 0x5a, + 0x87, 0x92, 0x60, 0x30, 0x12, 0x5d, 0x00, 0x42, 0xd4, 0x36, 0xfb, 0x58, 0xfb, 0x7d, 0x01, 0x20, + 0x5e, 0x11, 0x4b, 0x2f, 0xa1, 0x01, 0x36, 0xfb, 0x71, 0x15, 0x88, 0x21, 0x54, 0x95, 0xe2, 0xb0, + 0x0e, 0x1e, 0xc1, 0x6a, 0x04, 0x8c, 0x2a, 0x41, 0x14, 0x4c, 0x2d, 0x84, 0x46, 0xb5, 0xf0, 0x39, + 0x84, 0xea, 0x61, 0x35, 0x88, 0x9a, 0xa9, 0x48, 0xa9, 0xac, 0x87, 0x4d, 0xa8, 0xf4, 0x31, 0x21, + 0x66, 0x0f, 0x13, 0x83, 0x60, 0x8f, 0x86, 0xc7, 0x86, 0x50, 0xd8, 0x61, 0x3b, 0xef, 0x23, 0x58, + 0x8d, 0x40, 0x01, 0xb6, 0xb0, 0x33, 0x8a, 0x0e, 0x0e, 0xb5, 0xf0, 0x85, 0x2e, 0xe5, 0x68, 0x0b, + 0x6a, 0x57, 0x18, 0x0f, 0x0c, 0xd3, 0x75, 0x46, 0x21, 0xa9, 0x38, 0x3e, 0x54, 0x99, 0x7c, 0x8f, + 0x8b, 0x39, 0xed, 0x25, 0x6c, 0xf2, 0x5a, 0xe4, 0x19, 0x32, 0x84, 0x5f, 0x06, 0x1f, 0xf5, 0xef, + 0x79, 0x92, 0x58, 0x67, 0x34, 0x27, 0x8c, 0xa5, 0xc3, 0x49, 0x9a, 0x82, 0x23, 0xde, 0x2d, 0x7e, + 0x03, 0x9f, 0x71, 0x4b, 0x32, 0x2f, 0x73, 0x4d, 0x29, 0x0b, 0x4d, 0x6d, 0x30, 0x1e, 0x9d, 0xd3, + 0xcc, 0xb1, 0x15, 0x76, 0x98, 0x0c, 0x0c, 0x0f, 0x40, 0xc2, 0x44, 0x71, 0xb9, 0x0e, 0x7b, 0x29, + 0xb4, 0x59, 0x9c, 0x62, 0x6a, 0x13, 0xd6, 0xc7, 0xa8, 0xc3, 0x5c, 0x24, 0xe8, 0x61, 0x21, 0xfd, + 0xfd, 0x04, 0x7d, 0x98, 0xb4, 0xd8, 0xc4, 0xb7, 0xb0, 0x26, 0xd2, 0x71, 0xe1, 0xfa, 0xd7, 0x86, + 0xe5, 0x7b, 0x34, 0xf0, 0x5d, 0xe3, 0xda, 0xf1, 0x6c, 0xff, 0x5a, 0x2d, 0x85, 0xfd, 0x3c, 0x41, + 0xde, 0xf2, 0xe8, 0xb3, 0xa7, 0xdf, 0x9a, 0xee, 0x10, 0xeb, 0x77, 0xb9, 0xf6, 0xa1, 0xeb, 0x5f, + 0x37, 0x85, 0xee, 0x6b, 0xae, 0x8a, 0xde, 0x40, 0x5d, 0x06, 0x7f, 0x16, 0x71, 0x79, 0x31, 0xf1, + 0xc7, 0x42, 0x7d, 0x9a, 0xf9, 0x19, 0xe4, 0x7d, 0x71, 0x22, 0xac, 0xf0, 0x11, 0xfe, 0xe9, 0xbc, + 0xf1, 0x71, 0xca, 0x51, 0xba, 0x44, 0x6b, 0xff, 0xcc, 0x40, 0x41, 0xb6, 0x3c, 0x7a, 0x09, 0x15, + 0x6a, 0x0d, 0x9c, 0x81, 0x61, 0x0a, 0x81, 0x9c, 0x5c, 0x0f, 0xe6, 0x0e, 0x89, 0x46, 0xd7, 0x1a, + 0xb4, 0x06, 0xf2, 0xe1, 0x68, 0x45, 0x2f, 0x73, 0xf5, 0x90, 0xee, 0x05, 0x94, 0x86, 0x36, 0x89, + 0xc8, 0xc4, 0x58, 0xfb, 0x6c, 0x3e, 0xd9, 0x99, 0x4d, 0x62, 0x2a, 0x18, 0x46, 0x4f, 0xcc, 0x2f, + 0x9f, 0x5e, 0xe2, 0x20, 0xa2, 0xca, 0x2c, 0xf2, 0xeb, 0x94, 0xc1, 0x13, 0x7e, 0xf9, 0x89, 0xe7, + 0xfa, 0x1e, 0x94, 0x93, 0x7e, 0xb3, 0x93, 0xcf, 0xc4, 0x9a, 0xcb, 0x7a, 0x31, 0x5e, 0x06, 0x82, + 0xec, 0xc0, 0x0f, 0xc4, 0xe7, 0x49, 0x4e, 0xe7, 0xbf, 0xeb, 0x5b, 0x00, 0xb1, 0xb7, 0xa8, 0x0e, + 0xca, 0x85, 0xe3, 0x62, 0x3e, 0xe7, 0xc4, 0x79, 0x3c, 0x7a, 0xae, 0xb7, 0xa1, 0x9c, 0x74, 0x26, + 0x3a, 0x15, 0xa4, 0xe2, 0x53, 0x01, 0x7a, 0x08, 0xb9, 0x11, 0xcb, 0xae, 0x0c, 0xd1, 0x9d, 0xa9, + 0x02, 0xd8, 0xf3, 0xde, 0xea, 0x02, 0xb2, 0x5f, 0x84, 0x82, 0xf4, 0x54, 0xfb, 0x63, 0x86, 0x9d, + 0x6c, 0xe5, 0xb8, 0xdd, 0x85, 0x0c, 0x75, 0xc9, 0xfc, 0x6d, 0x37, 0x04, 0x36, 0xba, 0x2e, 0x8b, + 0x08, 0x03, 0xb3, 0x8f, 0x37, 0x1e, 0x18, 0x69, 0x77, 0xeb, 0x06, 0x2d, 0xbe, 0x86, 0xf0, 0xe9, + 0x68, 0x45, 0x17, 0x8a, 0xf5, 0x7f, 0xa5, 0x20, 0xd3, 0x75, 0x09, 0xfa, 0x1c, 0x2a, 0x84, 0x9a, + 0x9e, 0x6d, 0x06, 0xb6, 0x11, 0x2f, 0x8f, 0x45, 0x3e, 0x14, 0xb3, 0x91, 0x8f, 0xd6, 0x01, 0x44, + 0x22, 0xe3, 0xa3, 0xe4, 0xd1, 0x8a, 0x5e, 0xe4, 0x32, 0x0e, 0x78, 0x04, 0xab, 0xa2, 0xef, 0x2c, + 0x1c, 0x50, 0xe7, 0xc2, 0xb1, 0xd8, 0xa7, 0x65, 0x86, 0x67, 0xa4, 0xc6, 0x5f, 0x34, 0x63, 0x39, + 0x7a, 0x0c, 0x48, 0x36, 0x53, 0x12, 0x9d, 0xe5, 0xe8, 0x55, 0xf1, 0x26, 0x01, 0xdf, 0xaf, 0x42, + 0xd9, 0x72, 0x06, 0xcc, 0x3a, 0x19, 0x3a, 0x14, 0xd7, 0x4f, 0xa1, 0x32, 0xb6, 0xaa, 0x0f, 0x4e, + 0x4d, 0x01, 0x72, 0x7d, 0xdf, 0xc6, 0xae, 0xe6, 0x41, 0x39, 0xd9, 0x6b, 0x33, 0x89, 0xef, 0x24, + 0x89, 0x8b, 0x92, 0x02, 0x3d, 0x05, 0x30, 0x6d, 0xdb, 0x61, 0x5a, 0xd1, 0xae, 0x3e, 0xdb, 0x66, + 0x02, 0xa7, 0x9d, 0xc0, 0xed, 0xa4, 0x3d, 0x36, 0xc6, 0xfc, 0x21, 0x45, 0x3f, 0x02, 0x25, 0xbc, + 0x2d, 0x93, 0x75, 0xb1, 0x36, 0x45, 0xf5, 0x5c, 0x02, 0xf4, 0x08, 0xaa, 0x59, 0x80, 0x92, 0x6c, + 0x27, 0x8e, 0xd7, 0xc3, 0x01, 0xfb, 0x4c, 0x37, 0xd9, 0xe7, 0xbb, 0x58, 0x85, 0xa2, 0xcb, 0xa7, + 0x31, 0x23, 0xe9, 0xe5, 0x8d, 0xfc, 0x5d, 0x99, 0xf0, 0xd9, 0x1a, 0xb4, 0xbc, 0x0b, 0x9f, 0xf5, + 0x22, 0x9b, 0x21, 0x46, 0x7c, 0xa9, 0x50, 0xd1, 0x8b, 0x4c, 0x22, 0x6e, 0x35, 0x34, 0x31, 0xa1, + 0x0c, 0xcb, 0x94, 0x88, 0x34, 0x47, 0x94, 0x98, 0xb0, 0x69, 0x0a, 0xcc, 0x97, 0x50, 0xe3, 0x98, + 0x00, 0xd3, 0xc0, 0xf4, 0x48, 0xdf, 0xa1, 0x62, 0x60, 0x54, 0xf4, 0x5b, 0x4c, 0xae, 0xc7, 0x62, + 0x76, 0x46, 0xe1, 0xd0, 0x41, 0xe0, 0x9f, 0x63, 0xc2, 0x4b, 0xa7, 0xa2, 0x73, 0x07, 0x5e, 0x71, + 0x09, 0x3b, 0x4a, 0x72, 0xc0, 0xb9, 0x69, 0x5d, 0xf9, 0x17, 0xe2, 0x1b, 0x54, 0x9a, 0xdb, 0x17, + 0xa2, 0x08, 0x22, 0xe6, 0x29, 0xe1, 0x9b, 0xbc, 0x84, 0x88, 0xa5, 0x11, 0xf4, 0x00, 0x6e, 0x89, + 0x45, 0x79, 0xb6, 0x71, 0x4d, 0x2c, 0xd3, 0xc5, 0x7c, 0x37, 0xaf, 0xe8, 0x7c, 0x31, 0x1d, 0xcf, + 0x7e, 0xcd, 0x85, 0x11, 0x2e, 0xb0, 0x46, 0x21, 0x4e, 0x89, 0x71, 0xba, 0x35, 0x92, 0xb8, 0x35, + 0x50, 0x04, 0x8e, 0xfa, 0x7c, 0x23, 0xad, 0xe8, 0x05, 0x0e, 0xa0, 0x7e, 0xf4, 0xca, 0xa4, 0x3e, + 0xdf, 0x04, 0xe5, 0xab, 0x3d, 0xea, 0xa3, 0x0d, 0xe9, 0x28, 0xf3, 0xa2, 0x4f, 0x08, 0xdf, 0xc6, + 0xe4, 0x6a, 0x3b, 0x9e, 0xfd, 0x92, 0x90, 0x08, 0xc1, 0xec, 0x33, 0x44, 0x39, 0x46, 0xe8, 0xd6, + 0x88, 0x21, 0xc2, 0xc5, 0x0e, 0x3d, 0xd3, 0xba, 0xc2, 0xb6, 0x5a, 0x89, 0x17, 0x7b, 0x26, 0x44, + 0x51, 0x4c, 0x89, 0x40, 0x54, 0x13, 0x56, 0x04, 0xe0, 0x1e, 0xf0, 0x84, 0x1a, 0xae, 0x4f, 0xa8, + 0x7a, 0x8b, 0xbf, 0xe6, 0x3e, 0x9f, 0xf8, 0x84, 0x46, 0x06, 0x64, 0xf2, 0xd4, 0x5a, 0x6c, 0x40, + 0x26, 0x2e, 0x82, 0x5c, 0x30, 0x3a, 0x4a, 0xd4, 0xd5, 0x18, 0x72, 0x28, 0x44, 0xe8, 0x31, 0xdc, + 0x16, 0x26, 0xd8, 0x31, 0x81, 0x9d, 0x94, 0xc5, 0xf9, 0x0b, 0x71, 0x24, 0xaf, 0x8e, 0x13, 0x93, + 0xf0, 0x63, 0xa7, 0x3c, 0xd8, 0xa1, 0x18, 0x6e, 0x5a, 0x57, 0x02, 0x7d, 0x3b, 0xae, 0x19, 0x86, + 0xde, 0xb3, 0xae, 0x38, 0x78, 0x9a, 0x3b, 0xc0, 0xd6, 0x48, 0xbd, 0x33, 0xcd, 0xad, 0x63, 0x6b, + 0x34, 0xcd, 0xcd, 0xd1, 0x1f, 0x4d, 0x71, 0x73, 0x70, 0x18, 0x9a, 0x41, 0x9f, 0x0e, 0xd5, 0xbb, + 0x71, 0x68, 0x5e, 0xf5, 0xe9, 0x10, 0x3d, 0x84, 0xd5, 0x28, 0x3b, 0x84, 0xd0, 0xcb, 0x00, 0x93, + 0x4b, 0xf5, 0xe3, 0x44, 0x61, 0x5b, 0xa3, 0x8e, 0x14, 0x27, 0x2a, 0x84, 0xaa, 0x6a, 0xb2, 0x42, + 0x68, 0x94, 0x9f, 0x80, 0xd2, 0x91, 0x19, 0xa8, 0x6b, 0x89, 0x1c, 0x73, 0x49, 0x64, 0x87, 0xd5, + 0x49, 0x64, 0xa7, 0x1e, 0xdb, 0xe9, 0x78, 0x76, 0x64, 0x27, 0xec, 0x47, 0x86, 0xb5, 0xae, 0x3d, + 0x5b, 0xbd, 0x17, 0x27, 0xa3, 0xe3, 0xd9, 0xcd, 0x6b, 0x2f, 0x2e, 0x08, 0xd3, 0x1e, 0xb1, 0xa2, + 0xba, 0x1f, 0x1b, 0xdc, 0xe3, 0x12, 0x76, 0xf2, 0x97, 0x39, 0xf7, 0x03, 0x1b, 0x07, 0x8e, 0xd7, + 0x53, 0x3f, 0xe1, 0xa0, 0xaa, 0x48, 0x7b, 0x28, 0xd5, 0xce, 0xe1, 0xa3, 0x17, 0x98, 0x76, 0xfd, + 0x81, 0xfc, 0x86, 0x24, 0x3a, 0xfe, 0xed, 0x10, 0x13, 0xca, 0x0e, 0xdb, 0xfc, 0x9b, 0xc1, 0x98, + 0xba, 0xc1, 0xa8, 0x72, 0x79, 0x33, 0xba, 0x58, 0x58, 0x87, 0x52, 0xdf, 0xfc, 0xc1, 0x08, 0x30, + 0x19, 0xba, 0x94, 0xc8, 0xcf, 0x06, 0xe8, 0x9b, 0x3f, 0xe8, 0x42, 0xa2, 0x19, 0x70, 0x77, 0xd2, + 0x06, 0x19, 0xf8, 0x1e, 0xc1, 0xe8, 0x2b, 0x28, 0x48, 0x7a, 0x35, 0xc5, 0x8f, 0x58, 0x6b, 0xf3, + 0xaf, 0xb3, 0x42, 0x24, 0xaa, 0x41, 0x06, 0x7b, 0xe2, 0xf3, 0x44, 0xd1, 0xd9, 0x4f, 0xed, 0x57, + 0xb0, 0xfa, 0x02, 0x53, 0xf1, 0xc9, 0x1c, 0x2d, 0xe0, 0x01, 0xfb, 0xf8, 0x61, 0x0b, 0x88, 0xaf, + 0x13, 0x52, 0xe1, 0x77, 0x8a, 0x19, 0x48, 0xf4, 0x32, 0xee, 0xbf, 0x01, 0x94, 0x64, 0x97, 0xae, + 0x3f, 0x81, 0xbc, 0x20, 0x96, 0x9e, 0xab, 0x73, 0xaf, 0x12, 0x24, 0x6e, 0x86, 0xdf, 0xdb, 0x50, + 0x8b, 0x98, 0x43, 0xb7, 0xc7, 0xee, 0x3f, 0x52, 0xe3, 0xf7, 0x1f, 0xda, 0x41, 0x62, 0xa1, 0x33, + 0x3d, 0x49, 0x2d, 0xe3, 0x89, 0xf6, 0x3b, 0xf8, 0x38, 0xa2, 0x11, 0x3b, 0x06, 0x59, 0xc6, 0x7c, + 0x22, 0xa4, 0xd1, 0x1d, 0x50, 0x3a, 0x19, 0xd2, 0xf0, 0x22, 0x68, 0x22, 0xa4, 0x99, 0xa9, 0x90, + 0x5e, 0x82, 0x3a, 0xed, 0x80, 0x5c, 0xce, 0xf8, 0xff, 0x03, 0x52, 0xef, 0xf3, 0xff, 0x80, 0x19, + 0x21, 0xde, 0xe5, 0x11, 0x8b, 0xee, 0xe4, 0xc4, 0x22, 0x6f, 0xbe, 0x97, 0xd3, 0x5a, 0x3c, 0xe1, + 0x91, 0xce, 0xac, 0x5a, 0x4d, 0x2d, 0x57, 0xab, 0xda, 0xd7, 0x70, 0x87, 0x2d, 0x34, 0x71, 0x5b, + 0x27, 0x3c, 0x98, 0xba, 0xb1, 0x4b, 0x4d, 0xdf, 0xd8, 0x69, 0x67, 0xbc, 0x37, 0x93, 0xca, 0xd2, + 0x95, 0x9f, 0x02, 0xc4, 0xc0, 0xf9, 0xff, 0x5b, 0x4b, 0x68, 0x26, 0xf0, 0x5a, 0x4b, 0x54, 0x9d, + 0x0c, 0x5a, 0x9c, 0xf6, 0x28, 0xa7, 0xa9, 0x89, 0x7b, 0x3d, 0x15, 0x0a, 0x64, 0xd8, 0xef, 0x9b, + 0xc1, 0x5b, 0x19, 0xd9, 0xf0, 0x31, 0xac, 0x47, 0x49, 0x95, 0xa8, 0x47, 0x71, 0xf3, 0x35, 0xbf, + 0x1e, 0x85, 0x86, 0xc4, 0xed, 0xfe, 0x39, 0x07, 0x8a, 0x0c, 0xdd, 0x3b, 0x64, 0x41, 0x75, 0x7c, + 0x5a, 0xa0, 0x2f, 0xa6, 0x09, 0x66, 0xce, 0xac, 0xfa, 0xd6, 0x62, 0xa0, 0xf4, 0xf1, 0x35, 0x40, + 0xdc, 0xd3, 0x68, 0x73, 0xa6, 0xde, 0xf8, 0x3c, 0xa9, 0x7f, 0x76, 0x33, 0x48, 0x12, 0x77, 0xa1, + 0x18, 0x49, 0x91, 0x76, 0x83, 0x4a, 0x48, 0xbb, 0x79, 0x23, 0x46, 0xb2, 0x3a, 0x89, 0x41, 0x21, + 0xfb, 0x05, 0x7d, 0x79, 0x83, 0xe2, 0x78, 0x53, 0xd7, 0x1f, 0x2e, 0x03, 0x1d, 0x8b, 0x4c, 0xf8, + 0xef, 0xdb, 0xd9, 0xde, 0x8d, 0xb7, 0xd3, 0x9c, 0xc8, 0x4c, 0xf6, 0xcf, 0xf7, 0x50, 0x19, 0xab, + 0x66, 0xf4, 0x60, 0xb6, 0x57, 0x93, 0xbd, 0x52, 0xff, 0x62, 0x21, 0x6e, 0x3c, 0xf6, 0xe2, 0xa2, + 0x70, 0x4e, 0xec, 0x93, 0x55, 0x3f, 0x2f, 0xf6, 0x63, 0xe5, 0xbc, 0xff, 0x06, 0x6e, 0x3b, 0xfe, + 0x14, 0x70, 0xbf, 0x12, 0x16, 0xec, 0x2b, 0x76, 0x24, 0x7f, 0x95, 0xfa, 0xe5, 0x13, 0x79, 0x44, + 0xef, 0xf9, 0xae, 0xe9, 0xf5, 0x1a, 0x7e, 0xd0, 0xdb, 0x1e, 0xff, 0xb7, 0x3d, 0x7b, 0x0a, 0x77, + 0xd3, 0x77, 0xc6, 0x68, 0xe7, 0x3c, 0xcf, 0x4f, 0xf3, 0x5f, 0xfd, 0x37, 0x00, 0x00, 0xff, 0xff, + 0x54, 0xae, 0x0b, 0x93, 0xdf, 0x1f, 0x00, 0x00, } diff --git a/vendor/google.golang.org/grpc/channelz/service/func_linux.go b/vendor/google.golang.org/grpc/channelz/service/func_linux.go index fc5bbf361..192c3a1fa 100644 --- a/vendor/google.golang.org/grpc/channelz/service/func_linux.go +++ b/vendor/google.golang.org/grpc/channelz/service/func_linux.go @@ -1,4 +1,4 @@ -// +build !appengine,go1.7 +// +build !appengine /* * diff --git a/vendor/google.golang.org/grpc/channelz/service/func_nonlinux.go b/vendor/google.golang.org/grpc/channelz/service/func_nonlinux.go index 44a9f1951..eb53334ed 100644 --- a/vendor/google.golang.org/grpc/channelz/service/func_nonlinux.go +++ b/vendor/google.golang.org/grpc/channelz/service/func_nonlinux.go @@ -1,4 +1,4 @@ -// +build !linux appengine !go1.7 +// +build !linux appengine /* * diff --git a/vendor/google.golang.org/grpc/channelz/service/service.go b/vendor/google.golang.org/grpc/channelz/service/service.go index 0a6f97eef..1f72d83cb 100644 --- a/vendor/google.golang.org/grpc/channelz/service/service.go +++ b/vendor/google.golang.org/grpc/channelz/service/service.go @@ -22,19 +22,21 @@ package service import ( + "context" "net" "time" "github.com/golang/protobuf/ptypes" durpb "github.com/golang/protobuf/ptypes/duration" wrpb "github.com/golang/protobuf/ptypes/wrappers" - "golang.org/x/net/context" "google.golang.org/grpc" channelzgrpc "google.golang.org/grpc/channelz/grpc_channelz_v1" channelzpb "google.golang.org/grpc/channelz/grpc_channelz_v1" + "google.golang.org/grpc/codes" "google.golang.org/grpc/connectivity" "google.golang.org/grpc/credentials" "google.golang.org/grpc/internal/channelz" + "google.golang.org/grpc/status" ) func init() { @@ -333,3 +335,7 @@ func (s *serverImpl) GetSocket(ctx context.Context, req *channelzpb.GetSocketReq resp := &channelzpb.GetSocketResponse{Socket: socketMetricToProto(metric)} return resp, nil } + +func (s *serverImpl) GetServer(ctx context.Context, req *channelzpb.GetServerRequest) (*channelzpb.GetServerResponse, error) { + return nil, status.Error(codes.Unimplemented, "GetServer not implemented") +} diff --git a/vendor/google.golang.org/grpc/channelz/service/service_sktopt_test.go b/vendor/google.golang.org/grpc/channelz/service/service_sktopt_test.go index e7e1c7eac..d90ada0d4 100644 --- a/vendor/google.golang.org/grpc/channelz/service/service_sktopt_test.go +++ b/vendor/google.golang.org/grpc/channelz/service/service_sktopt_test.go @@ -1,4 +1,4 @@ -// +build linux,!appengine,go1.7 +// +build linux,!appengine // +build 386 amd64 /* @@ -26,13 +26,13 @@ package service import ( + "context" "reflect" "strconv" "testing" "github.com/golang/protobuf/ptypes" durpb "github.com/golang/protobuf/ptypes/duration" - "golang.org/x/net/context" "golang.org/x/sys/unix" channelzpb "google.golang.org/grpc/channelz/grpc_channelz_v1" "google.golang.org/grpc/internal/channelz" diff --git a/vendor/google.golang.org/grpc/channelz/service/service_test.go b/vendor/google.golang.org/grpc/channelz/service/service_test.go index 5455c34e0..26ef41314 100644 --- a/vendor/google.golang.org/grpc/channelz/service/service_test.go +++ b/vendor/google.golang.org/grpc/channelz/service/service_test.go @@ -19,6 +19,7 @@ package service import ( + "context" "fmt" "net" "reflect" @@ -28,7 +29,6 @@ import ( "github.com/golang/protobuf/proto" "github.com/golang/protobuf/ptypes" - "golang.org/x/net/context" channelzpb "google.golang.org/grpc/channelz/grpc_channelz_v1" "google.golang.org/grpc/connectivity" "google.golang.org/grpc/credentials" @@ -51,6 +51,7 @@ var protoToSocketOpt protoToSocketOptFunc // with &utcLoc. However zero value of a time.Time type value loc field is nil. // This behavior will make reflect.DeepEqual fail upon unset time.Time field, // and cause false positive fatal error. +// TODO: Go1.7 is no longer supported - does this need a change? var emptyTime time.Time type dummyChannel struct { @@ -402,6 +403,33 @@ func TestGetServerSockets(t *testing.T) { } } +// This test makes a GetServerSockets with a non-zero start ID, and expect only +// sockets with ID >= the given start ID. +func TestGetServerSocketsNonZeroStartID(t *testing.T) { + channelz.NewChannelzStorage() + svrID := channelz.RegisterServer(&dummyServer{}, "") + refNames := []string{"listen socket 1", "normal socket 1", "normal socket 2"} + ids := make([]int64, 3) + ids[0] = channelz.RegisterListenSocket(&dummySocket{}, svrID, refNames[0]) + ids[1] = channelz.RegisterNormalSocket(&dummySocket{}, svrID, refNames[1]) + ids[2] = channelz.RegisterNormalSocket(&dummySocket{}, svrID, refNames[2]) + svr := newCZServer() + // Make GetServerSockets with startID = ids[1]+1, so socket-1 won't be + // included in the response. + resp, _ := svr.GetServerSockets(context.Background(), &channelzpb.GetServerSocketsRequest{ServerId: svrID, StartSocketId: ids[1] + 1}) + if !resp.GetEnd() { + t.Fatalf("resp.GetEnd() want: true, got: %v", resp.GetEnd()) + } + // GetServerSockets only return normal socket-2, socket-1 should be + // filtered by start ID. + want := map[int64]string{ + ids[2]: refNames[2], + } + if !reflect.DeepEqual(convertSocketRefSliceToMap(resp.GetSocketRef()), want) { + t.Fatalf("GetServerSockets want: %#v, got: %#v", want, resp.GetSocketRef()) + } +} + func TestGetChannel(t *testing.T) { channelz.NewChannelzStorage() refNames := []string{"top channel 1", "nested channel 1", "sub channel 2", "nested channel 3"} diff --git a/vendor/google.golang.org/grpc/channelz/service/util_sktopt_386_test.go b/vendor/google.golang.org/grpc/channelz/service/util_sktopt_386_test.go index e713f16d3..cdc2fda40 100644 --- a/vendor/google.golang.org/grpc/channelz/service/util_sktopt_386_test.go +++ b/vendor/google.golang.org/grpc/channelz/service/util_sktopt_386_test.go @@ -1,4 +1,4 @@ -// +build 386,linux,!appengine,go1.7 +// +build 386,linux,!appengine /* * diff --git a/vendor/google.golang.org/grpc/channelz/service/util_sktopt_amd64_test.go b/vendor/google.golang.org/grpc/channelz/service/util_sktopt_amd64_test.go index 0c1db69ba..7ebe9c70e 100644 --- a/vendor/google.golang.org/grpc/channelz/service/util_sktopt_amd64_test.go +++ b/vendor/google.golang.org/grpc/channelz/service/util_sktopt_amd64_test.go @@ -1,4 +1,4 @@ -// +build amd64,linux,!appengine,go1.7 +// +build amd64,linux,!appengine /* * diff --git a/vendor/google.golang.org/grpc/clientconn.go b/vendor/google.golang.org/grpc/clientconn.go index f49ac3f9b..84b6dbe3e 100644 --- a/vendor/google.golang.org/grpc/clientconn.go +++ b/vendor/google.golang.org/grpc/clientconn.go @@ -19,6 +19,7 @@ package grpc import ( + "context" "errors" "fmt" "math" @@ -29,15 +30,17 @@ import ( "sync/atomic" "time" - "golang.org/x/net/context" "google.golang.org/grpc/balancer" _ "google.golang.org/grpc/balancer/roundrobin" // To register roundrobin. "google.golang.org/grpc/codes" "google.golang.org/grpc/connectivity" "google.golang.org/grpc/credentials" "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/internal" "google.golang.org/grpc/internal/backoff" "google.golang.org/grpc/internal/channelz" + "google.golang.org/grpc/internal/envconfig" + "google.golang.org/grpc/internal/grpcsync" "google.golang.org/grpc/internal/transport" "google.golang.org/grpc/keepalive" "google.golang.org/grpc/metadata" @@ -123,12 +126,13 @@ func Dial(target string, opts ...DialOption) (*ClientConn, error) { // e.g. to use dns resolver, a "dns:///" prefix should be applied to the target. func DialContext(ctx context.Context, target string, opts ...DialOption) (conn *ClientConn, err error) { cc := &ClientConn{ - target: target, - csMgr: &connectivityStateManager{}, - conns: make(map[*addrConn]struct{}), - dopts: defaultDialOptions(), - blockingpicker: newPickerWrapper(), - czData: new(channelzData), + target: target, + csMgr: &connectivityStateManager{}, + conns: make(map[*addrConn]struct{}), + dopts: defaultDialOptions(), + blockingpicker: newPickerWrapper(), + czData: new(channelzData), + firstResolveEvent: grpcsync.NewEvent(), } cc.retryThrottler.Store((*retryThrottler)(nil)) cc.ctx, cc.cancel = context.WithCancel(context.Background()) @@ -182,7 +186,7 @@ func DialContext(ctx context.Context, target string, opts ...DialOption) (conn * cc.dopts.copts.Dialer = newProxyDialer( func(ctx context.Context, addr string) (net.Conn, error) { network, addr := parseDialTarget(addr) - return dialContext(ctx, network, addr) + return (&net.Dialer{}).DialContext(ctx, network, addr) }, ) } @@ -285,19 +289,14 @@ func DialContext(ctx context.Context, target string, opts ...DialOption) (conn * } // Build the resolver. - cc.resolverWrapper, err = newCCResolverWrapper(cc) + rWrapper, err := newCCResolverWrapper(cc) if err != nil { return nil, fmt.Errorf("failed to build resolver: %v", err) } - // Start the resolver wrapper goroutine after resolverWrapper is created. - // - // If the goroutine is started before resolverWrapper is ready, the - // following may happen: The goroutine sends updates to cc. cc forwards - // those to balancer. Balancer creates new addrConn. addrConn fails to - // connect, and calls resolveNow(). resolveNow() tries to use the non-ready - // resolverWrapper. - cc.resolverWrapper.start() + cc.mu.Lock() + cc.resolverWrapper = rWrapper + cc.mu.Unlock() // A blocking dial blocks until the clientConn is ready. if cc.dopts.block { for { @@ -306,7 +305,9 @@ func DialContext(ctx context.Context, target string, opts ...DialOption) (conn * break } else if cc.dopts.copts.FailOnNonTempDialError && s == connectivity.TransientFailure { if err = cc.blockingpicker.connectionError(); err != nil { - terr, ok := err.(interface{ Temporary() bool }) + terr, ok := err.(interface { + Temporary() bool + }) if ok && !terr.Temporary() { return nil, err } @@ -384,13 +385,13 @@ type ClientConn struct { csMgr *connectivityStateManager balancerBuildOpts balancer.BuildOptions - resolverWrapper *ccResolverWrapper blockingpicker *pickerWrapper - mu sync.RWMutex - sc ServiceConfig - scRaw string - conns map[*addrConn]struct{} + mu sync.RWMutex + resolverWrapper *ccResolverWrapper + sc ServiceConfig + scRaw string + conns map[*addrConn]struct{} // Keepalive parameter can be updated if a GoAway is received. mkp keepalive.ClientParameters curBalancerName string @@ -399,6 +400,8 @@ type ClientConn struct { balancerWrapper *ccBalancerWrapper retryThrottler atomic.Value + firstResolveEvent *grpcsync.Event + channelzID int64 // channelz unique identification number czData *channelzData } @@ -444,6 +447,25 @@ func (cc *ClientConn) scWatcher() { } } +// waitForResolvedAddrs blocks until the resolver has provided addresses or the +// context expires. Returns nil unless the context expires first; otherwise +// returns a status error based on the context. +func (cc *ClientConn) waitForResolvedAddrs(ctx context.Context) error { + // This is on the RPC path, so we use a fast path to avoid the + // more-expensive "select" below after the resolver has returned once. + if cc.firstResolveEvent.HasFired() { + return nil + } + select { + case <-cc.firstResolveEvent.Done(): + return nil + case <-ctx.Done(): + return status.FromContextError(ctx.Err()).Err() + case <-cc.ctx.Done(): + return ErrClientConnClosing + } +} + func (cc *ClientConn) handleResolvedAddrs(addrs []resolver.Address, err error) { cc.mu.Lock() defer cc.mu.Unlock() @@ -457,6 +479,7 @@ func (cc *ClientConn) handleResolvedAddrs(addrs []resolver.Address, err error) { } cc.curAddresses = addrs + cc.firstResolveEvent.Fire() if cc.dopts.balancerBuilder == nil { // Only look at balancer types and switch balancer if balancer dial @@ -715,6 +738,12 @@ func (cc *ClientConn) GetMethodConfig(method string) MethodConfig { return m } +func (cc *ClientConn) healthCheckConfig() *healthCheckConfig { + cc.mu.RLock() + defer cc.mu.RUnlock() + return cc.sc.healthCheckConfig +} + func (cc *ClientConn) getTransport(ctx context.Context, failfast bool, method string) (transport.ClientTransport, func(balancer.DoneInfo), error) { hdr, _ := metadata.FromOutgoingContext(ctx) t, done, err := cc.blockingpicker.pick(ctx, failfast, balancer.PickOptions{ @@ -877,6 +906,10 @@ type addrConn struct { acbw balancer.SubConn scopts balancer.NewSubConnOptions + // transport is set when there's a viable transport (note: ac state may not be READY as LB channel + // health checking may require server to report healthy to set ac to READY), and is reset + // to nil when the current transport should no longer be used to create a stream (e.g. after GoAway + // is received, transport is closed, ac has been torn down). transport transport.ClientTransport // The current transport. mu sync.Mutex @@ -903,6 +936,8 @@ type addrConn struct { czData *channelzData successfulHandshake bool + + healthCheckEnabled bool } // Note: this requires a lock on ac.mu. @@ -956,6 +991,8 @@ func (ac *addrConn) resetTransport(resolveNow bool) { return } + // The transport that was used before is no longer viable. + ac.transport = nil // If the connection is READY, a failure must have occurred. // Otherwise, we'll consider this is a transient failure when: // We've exhausted all addresses @@ -1044,7 +1081,10 @@ func (ac *addrConn) createTransport(backoffNum int, addr resolver.Address, copts var serverPrefaceReceived bool var clientPrefaceWrote bool + hcCtx, hcCancel := context.WithCancel(ac.ctx) + onGoAway := func(r transport.GoAwayReason) { + hcCancel() ac.mu.Lock() ac.adjustParams(r) ac.mu.Unlock() @@ -1059,6 +1099,7 @@ func (ac *addrConn) createTransport(backoffNum int, addr resolver.Address, copts prefaceTimer := time.NewTimer(connectDeadline.Sub(time.Now())) onClose := func() { + hcCancel() close(onCloseCalled) prefaceTimer.Stop() @@ -1087,18 +1128,14 @@ func (ac *addrConn) createTransport(backoffNum int, addr resolver.Address, copts serverPrefaceReceived = true if clientPrefaceWrote { ac.successfulHandshake = true - ac.backoffDeadline = time.Time{} - ac.connectDeadline = time.Time{} - ac.addrIdx = 0 - ac.backoffIdx = 0 } prefaceMu.Unlock() ac.mu.Unlock() } - // Do not cancel in the success path because of this issue in Go1.6: https://github.com/golang/go/issues/15078. connectCtx, cancel := context.WithDeadline(ac.ctx, connectDeadline) + defer cancel() if channelz.IsOn() { copts.ChannelzParentID = ac.channelzID } @@ -1108,12 +1145,12 @@ func (ac *addrConn) createTransport(backoffNum int, addr resolver.Address, copts if err == nil { prefaceMu.Lock() clientPrefaceWrote = true - if serverPrefaceReceived { + if serverPrefaceReceived || ac.dopts.reqHandshake == envconfig.RequireHandshakeOff { ac.successfulHandshake = true } prefaceMu.Unlock() - if ac.dopts.waitForHandshake { + if ac.dopts.reqHandshake == envconfig.RequireHandshakeOn { select { case <-prefaceTimer.C: // We didn't get the preface in time. @@ -1126,7 +1163,7 @@ func (ac *addrConn) createTransport(backoffNum int, addr resolver.Address, copts close(allowedToReset) return nil } - } else { + } else if ac.dopts.reqHandshake == envconfig.RequireHandshakeHybrid { go func() { select { case <-prefaceTimer.C: @@ -1143,7 +1180,6 @@ func (ac *addrConn) createTransport(backoffNum int, addr resolver.Address, copts if err != nil { // newTr is either nil, or closed. - cancel() ac.cc.blockingpicker.updateConnectionError(err) ac.mu.Lock() if ac.state == connectivity.Shutdown { @@ -1166,22 +1202,46 @@ func (ac *addrConn) createTransport(backoffNum int, addr resolver.Address, copts return err } + // Now there is a viable transport to be use, so set ac.transport to reflect the new viable transport. + ac.mu.Lock() + if ac.state == connectivity.Shutdown { + ac.mu.Unlock() + close(skipReset) + newTr.Close() + return nil + } + ac.transport = newTr + ac.mu.Unlock() + + healthCheckConfig := ac.cc.healthCheckConfig() + // LB channel health checking is only enabled when all the four requirements below are met: + // 1. it is not disabled by the user with the WithDisableHealthCheck DialOption, + // 2. the internal.HealthCheckFunc is set by importing the grpc/healthcheck package, + // 3. a service config with non-empty healthCheckConfig field is provided, + // 4. the current load balancer allows it. + if !ac.cc.dopts.disableHealthCheck && healthCheckConfig != nil && ac.scopts.HealthCheckEnabled { + if internal.HealthCheckFunc != nil { + go ac.startHealthCheck(hcCtx, newTr, addr, healthCheckConfig.ServiceName) + close(allowedToReset) + return nil + } + // TODO: add a link to the health check doc in the error message. + grpclog.Error("the client side LB channel health check function has not been set.") + } + + // No LB channel health check case ac.mu.Lock() if ac.state == connectivity.Shutdown { ac.mu.Unlock() - // We don't want to reset during this close because we prefer to kick out of this function and let the loop - // in resetTransport take care of reconnecting. + // unblock onGoAway/onClose callback. close(skipReset) - - newTr.Close() return errConnClosing } ac.updateConnectivityState(connectivity.Ready) ac.cc.handleSubConnStateChange(ac.acbw, ac.state) - ac.transport = newTr ac.curAddr = addr ac.mu.Unlock() @@ -1192,6 +1252,51 @@ func (ac *addrConn) createTransport(backoffNum int, addr resolver.Address, copts return nil } +func (ac *addrConn) startHealthCheck(ctx context.Context, newTr transport.ClientTransport, addr resolver.Address, serviceName string) { + // Set up the health check helper functions + newStream := func() (interface{}, error) { + return ac.newClientStream(ctx, &StreamDesc{ServerStreams: true}, "/grpc.health.v1.Health/Watch", newTr) + } + firstReady := true + reportHealth := func(ok bool) { + ac.mu.Lock() + defer ac.mu.Unlock() + if ac.transport != newTr { + return + } + if ok { + if firstReady { + firstReady = false + ac.curAddr = addr + } + if ac.state != connectivity.Ready { + ac.updateConnectivityState(connectivity.Ready) + ac.cc.handleSubConnStateChange(ac.acbw, ac.state) + } + } else { + if ac.state != connectivity.TransientFailure { + ac.updateConnectivityState(connectivity.TransientFailure) + ac.cc.handleSubConnStateChange(ac.acbw, ac.state) + } + } + } + + err := internal.HealthCheckFunc(ctx, newStream, reportHealth, serviceName) + if err != nil { + if status.Code(err) == codes.Unimplemented { + if channelz.IsOn() { + channelz.AddTraceEvent(ac.channelzID, &channelz.TraceEventDesc{ + Desc: "Subchannel health check is unimplemented at server side, thus health check is disabled", + Severity: channelz.CtError, + }) + } + grpclog.Error("Subchannel health check is unimplemented at server side, thus health check is disabled") + } else { + grpclog.Errorf("HealthCheckFunc exits with unexpected error %v", err) + } + } +} + // nextAddr increments the addrIdx if there are more addresses to try. If // there are no more addrs to try it will re-resolve, set addrIdx to 0, and // increment the backoffIdx. @@ -1200,11 +1305,14 @@ func (ac *addrConn) createTransport(backoffNum int, addr resolver.Address, copts func (ac *addrConn) nextAddr() error { ac.mu.Lock() - // If a handshake has been observed, we expect the counters to have manually - // been reset so we'll just return, since we want the next usage to start - // at index 0. + // If a handshake has been observed, we want the next usage to start at + // index 0 immediately. if ac.successfulHandshake { ac.successfulHandshake = false + ac.backoffDeadline = time.Time{} + ac.connectDeadline = time.Time{} + ac.addrIdx = 0 + ac.backoffIdx = 0 ac.mu.Unlock() return nil } @@ -1279,6 +1387,8 @@ func (ac *addrConn) tearDown(err error) { ac.mu.Unlock() return } + curTr := ac.transport + ac.transport = nil // We have to set the state to Shutdown before anything else to prevent races // between setting the state and logic that waits on context cancelation / etc. ac.updateConnectivityState(connectivity.Shutdown) @@ -1286,14 +1396,14 @@ func (ac *addrConn) tearDown(err error) { ac.tearDownErr = err ac.cc.handleSubConnStateChange(ac.acbw, ac.state) ac.curAddr = resolver.Address{} - if err == errConnDrain && ac.transport != nil { + if err == errConnDrain && curTr != nil { // GracefulClose(...) may be executed multiple times when // i) receiving multiple GoAway frames from the server; or // ii) there are concurrent name resolver/Balancer triggered // address removal and GoAway. // We have to unlock and re-lock here because GracefulClose => Close => onClose, which requires locking ac.mu. ac.mu.Unlock() - ac.transport.GracefulClose() + curTr.GracefulClose() ac.mu.Lock() } if channelz.IsOn() { diff --git a/vendor/google.golang.org/grpc/clientconn_state_transition_test.go b/vendor/google.golang.org/grpc/clientconn_state_transition_test.go index b480af9e7..bf5bbd889 100644 --- a/vendor/google.golang.org/grpc/clientconn_state_transition_test.go +++ b/vendor/google.golang.org/grpc/clientconn_state_transition_test.go @@ -19,13 +19,13 @@ package grpc import ( + "context" "net" "sync" "sync/atomic" "testing" "time" - "golang.org/x/net/context" "golang.org/x/net/http2" "google.golang.org/grpc/balancer" "google.golang.org/grpc/connectivity" diff --git a/vendor/google.golang.org/grpc/clientconn_test.go b/vendor/google.golang.org/grpc/clientconn_test.go index 56707b398..467e2ef5a 100644 --- a/vendor/google.golang.org/grpc/clientconn_test.go +++ b/vendor/google.golang.org/grpc/clientconn_test.go @@ -19,6 +19,7 @@ package grpc import ( + "context" "errors" "fmt" "math" @@ -27,11 +28,11 @@ import ( "testing" "time" - "golang.org/x/net/context" "golang.org/x/net/http2" "google.golang.org/grpc/connectivity" "google.golang.org/grpc/credentials" "google.golang.org/grpc/internal/backoff" + "google.golang.org/grpc/internal/envconfig" "google.golang.org/grpc/internal/leakcheck" "google.golang.org/grpc/internal/transport" "google.golang.org/grpc/keepalive" @@ -132,8 +133,85 @@ func TestDialWithMultipleBackendsNotSendingServerPreface(t *testing.T) { } } +var allReqHSSettings = []envconfig.RequireHandshakeSetting{ + envconfig.RequireHandshakeOff, + envconfig.RequireHandshakeOn, + envconfig.RequireHandshakeHybrid, +} +var reqNoHSSettings = []envconfig.RequireHandshakeSetting{ + envconfig.RequireHandshakeOff, + envconfig.RequireHandshakeHybrid, +} +var reqHSBeforeSuccess = []envconfig.RequireHandshakeSetting{ + envconfig.RequireHandshakeOn, + envconfig.RequireHandshakeHybrid, +} + func TestDialWaitsForServerSettings(t *testing.T) { + // Restore current setting after test. + old := envconfig.RequireHandshake + defer func() { envconfig.RequireHandshake = old }() + defer leakcheck.Check(t) + + // Test with all environment variable settings, which should not impact the + // test case since WithWaitForHandshake has higher priority. + for _, setting := range allReqHSSettings { + envconfig.RequireHandshake = setting + lis, err := net.Listen("tcp", "localhost:0") + if err != nil { + t.Fatalf("Error while listening. Err: %v", err) + } + defer lis.Close() + done := make(chan struct{}) + sent := make(chan struct{}) + dialDone := make(chan struct{}) + go func() { // Launch the server. + defer func() { + close(done) + }() + conn, err := lis.Accept() + if err != nil { + t.Errorf("Error while accepting. Err: %v", err) + return + } + defer conn.Close() + // Sleep for a little bit to make sure that Dial on client + // side blocks until settings are received. + time.Sleep(100 * time.Millisecond) + framer := http2.NewFramer(conn, conn) + close(sent) + if err := framer.WriteSettings(http2.Setting{}); err != nil { + t.Errorf("Error while writing settings. Err: %v", err) + return + } + <-dialDone // Close conn only after dial returns. + }() + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() + client, err := DialContext(ctx, lis.Addr().String(), WithInsecure(), WithWaitForHandshake(), WithBlock()) + close(dialDone) + if err != nil { + t.Fatalf("Error while dialing. Err: %v", err) + } + defer client.Close() + select { + case <-sent: + default: + t.Fatalf("Dial returned before server settings were sent") + } + <-done + } +} + +func TestDialWaitsForServerSettingsViaEnv(t *testing.T) { + // Set default behavior and restore current setting after test. + old := envconfig.RequireHandshake + envconfig.RequireHandshake = envconfig.RequireHandshakeOn + defer func() { envconfig.RequireHandshake = old }() + + defer leakcheck.Check(t) + lis, err := net.Listen("tcp", "localhost:0") if err != nil { t.Fatalf("Error while listening. Err: %v", err) @@ -154,7 +232,7 @@ func TestDialWaitsForServerSettings(t *testing.T) { defer conn.Close() // Sleep for a little bit to make sure that Dial on client // side blocks until settings are received. - time.Sleep(500 * time.Millisecond) + time.Sleep(100 * time.Millisecond) framer := http2.NewFramer(conn, conn) close(sent) if err := framer.WriteSettings(http2.Setting{}); err != nil { @@ -165,7 +243,7 @@ func TestDialWaitsForServerSettings(t *testing.T) { }() ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) defer cancel() - client, err := DialContext(ctx, lis.Addr().String(), WithInsecure(), WithWaitForHandshake(), WithBlock()) + client, err := DialContext(ctx, lis.Addr().String(), WithInsecure(), WithBlock()) close(dialDone) if err != nil { t.Fatalf("Error while dialing. Err: %v", err) @@ -177,11 +255,63 @@ func TestDialWaitsForServerSettings(t *testing.T) { t.Fatalf("Dial returned before server settings were sent") } <-done - } func TestDialWaitsForServerSettingsAndFails(t *testing.T) { + // Restore current setting after test. + old := envconfig.RequireHandshake + defer func() { envconfig.RequireHandshake = old }() + defer leakcheck.Check(t) + + for _, setting := range allReqHSSettings { + envconfig.RequireHandshake = setting + lis, err := net.Listen("tcp", "localhost:0") + if err != nil { + t.Fatalf("Error while listening. Err: %v", err) + } + done := make(chan struct{}) + numConns := 0 + go func() { // Launch the server. + defer func() { + close(done) + }() + for { + conn, err := lis.Accept() + if err != nil { + break + } + numConns++ + defer conn.Close() + } + }() + getMinConnectTimeout = func() time.Duration { return time.Second / 4 } + ctx, cancel := context.WithTimeout(context.Background(), 1*time.Second) + defer cancel() + client, err := DialContext(ctx, lis.Addr().String(), WithInsecure(), WithWaitForHandshake(), WithBlock(), withBackoff(noBackoff{})) + lis.Close() + if err == nil { + client.Close() + t.Fatalf("Unexpected success (err=nil) while dialing") + } + if err != context.DeadlineExceeded { + t.Fatalf("DialContext(_) = %v; want context.DeadlineExceeded", err) + } + if numConns < 2 { + t.Fatalf("dial attempts: %v; want > 1", numConns) + } + <-done + } +} + +func TestDialWaitsForServerSettingsViaEnvAndFails(t *testing.T) { + // Set default behavior and restore current setting after test. + old := envconfig.RequireHandshake + envconfig.RequireHandshake = envconfig.RequireHandshakeOn + defer func() { envconfig.RequireHandshake = old }() + + defer leakcheck.Check(t) + lis, err := net.Listen("tcp", "localhost:0") if err != nil { t.Fatalf("Error while listening. Err: %v", err) @@ -201,10 +331,10 @@ func TestDialWaitsForServerSettingsAndFails(t *testing.T) { defer conn.Close() } }() - getMinConnectTimeout = func() time.Duration { return time.Second / 2 } - ctx, cancel := context.WithTimeout(context.Background(), 3*time.Second) + getMinConnectTimeout = func() time.Duration { return time.Second / 4 } + ctx, cancel := context.WithTimeout(context.Background(), 1*time.Second) defer cancel() - client, err := DialContext(ctx, lis.Addr().String(), WithInsecure(), WithWaitForHandshake(), WithBlock()) + client, err := DialContext(ctx, lis.Addr().String(), WithInsecure(), WithBlock(), withBackoff(noBackoff{})) lis.Close() if err == nil { client.Close() @@ -219,7 +349,57 @@ func TestDialWaitsForServerSettingsAndFails(t *testing.T) { <-done } +func TestDialDoesNotWaitForServerSettings(t *testing.T) { + // Restore current setting after test. + old := envconfig.RequireHandshake + defer func() { envconfig.RequireHandshake = old }() + + defer leakcheck.Check(t) + + // Test with "off" and "hybrid". + for _, setting := range reqNoHSSettings { + envconfig.RequireHandshake = setting + lis, err := net.Listen("tcp", "localhost:0") + if err != nil { + t.Fatalf("Error while listening. Err: %v", err) + } + defer lis.Close() + done := make(chan struct{}) + dialDone := make(chan struct{}) + go func() { // Launch the server. + defer func() { + close(done) + }() + conn, err := lis.Accept() + if err != nil { + t.Errorf("Error while accepting. Err: %v", err) + return + } + defer conn.Close() + <-dialDone // Close conn only after dial returns. + }() + ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) + defer cancel() + client, err := DialContext(ctx, lis.Addr().String(), WithInsecure(), WithBlock()) + + if err != nil { + t.Fatalf("DialContext returned err =%v; want nil", err) + } + defer client.Close() + + if state := client.GetState(); state != connectivity.Ready { + t.Fatalf("client.GetState() = %v; want connectivity.Ready", state) + } + close(dialDone) + <-done + } +} + func TestCloseConnectionWhenServerPrefaceNotReceived(t *testing.T) { + // Restore current setting after test. + old := envconfig.RequireHandshake + defer func() { envconfig.RequireHandshake = old }() + // 1. Client connects to a server that doesn't send preface. // 2. After minConnectTimeout(500 ms here), client disconnects and retries. // 3. The new server sends its preface. @@ -230,75 +410,81 @@ func TestCloseConnectionWhenServerPrefaceNotReceived(t *testing.T) { }() defer leakcheck.Check(t) atomic.StoreInt64((*int64)(&mutableMinConnectTimeout), int64(time.Millisecond)*500) - lis, err := net.Listen("tcp", "localhost:0") - if err != nil { - t.Fatalf("Error while listening. Err: %v", err) - } - var ( - conn2 net.Conn - over uint32 - ) - defer func() { - lis.Close() - // conn2 shouldn't be closed until the client has - // observed a successful test. - if conn2 != nil { - conn2.Close() - } - }() - done := make(chan struct{}) - accepted := make(chan struct{}) - go func() { // Launch the server. - defer close(done) - conn1, err := lis.Accept() + + // Test with "on" and "hybrid". + for _, setting := range reqHSBeforeSuccess { + envconfig.RequireHandshake = setting + + lis, err := net.Listen("tcp", "localhost:0") if err != nil { - t.Errorf("Error while accepting. Err: %v", err) - return + t.Fatalf("Error while listening. Err: %v", err) } - defer conn1.Close() - // Don't send server settings and the client should close the connection and try again. - conn2, err = lis.Accept() // Accept a reconnection request from client. - if err != nil { - t.Errorf("Error while accepting. Err: %v", err) - return - } - close(accepted) - framer := http2.NewFramer(conn2, conn2) - if err = framer.WriteSettings(http2.Setting{}); err != nil { - t.Errorf("Error while writing settings. Err: %v", err) - return - } - b := make([]byte, 8) - for { - _, err = conn2.Read(b) - if err == nil { - continue + var ( + conn2 net.Conn + over uint32 + ) + defer func() { + lis.Close() + // conn2 shouldn't be closed until the client has + // observed a successful test. + if conn2 != nil { + conn2.Close() } - if atomic.LoadUint32(&over) == 1 { - // The connection stayed alive for the timer. - // Success. + }() + done := make(chan struct{}) + accepted := make(chan struct{}) + go func() { // Launch the server. + defer close(done) + conn1, err := lis.Accept() + if err != nil { + t.Errorf("Error while accepting. Err: %v", err) return } - t.Errorf("Unexpected error while reading. Err: %v, want timeout error", err) - break + defer conn1.Close() + // Don't send server settings and the client should close the connection and try again. + conn2, err = lis.Accept() // Accept a reconnection request from client. + if err != nil { + t.Errorf("Error while accepting. Err: %v", err) + return + } + close(accepted) + framer := http2.NewFramer(conn2, conn2) + if err = framer.WriteSettings(http2.Setting{}); err != nil { + t.Errorf("Error while writing settings. Err: %v", err) + return + } + b := make([]byte, 8) + for { + _, err = conn2.Read(b) + if err == nil { + continue + } + if atomic.LoadUint32(&over) == 1 { + // The connection stayed alive for the timer. + // Success. + return + } + t.Errorf("Unexpected error while reading. Err: %v, want timeout error", err) + break + } + }() + client, err := Dial(lis.Addr().String(), WithInsecure()) + if err != nil { + t.Fatalf("Error while dialing. Err: %v", err) } - }() - client, err := Dial(lis.Addr().String(), WithInsecure()) - if err != nil { - t.Fatalf("Error while dialing. Err: %v", err) + // wait for connection to be accepted on the server. + timer := time.NewTimer(time.Second * 10) + select { + case <-accepted: + case <-timer.C: + t.Fatalf("Client didn't make another connection request in time.") + } + // Make sure the connection stays alive for sometime. + time.Sleep(time.Second) + atomic.StoreUint32(&over, 1) + client.Close() + <-done } - // wait for connection to be accepted on the server. - timer := time.NewTimer(time.Second * 10) - select { - case <-accepted: - case <-timer.C: - t.Fatalf("Client didn't make another connection request in time.") - } - // Make sure the connection stays alive for sometime. - time.Sleep(time.Second * 2) - atomic.StoreUint32(&over, 1) - client.Close() - <-done } func TestBackoffWhenNoServerPrefaceReceived(t *testing.T) { @@ -727,7 +913,7 @@ func TestClientUpdatesParamsAfterGoAway(t *testing.T) { t.Fatalf("Dial(%s, _) = _, %v, want _, ", addr, err) } defer cc.Close() - time.Sleep(1 * time.Second) + time.Sleep(time.Second) cc.mu.RLock() defer cc.mu.RUnlock() v := cc.mkp.Time @@ -758,7 +944,7 @@ func TestDisableServiceConfigOption(t *testing.T) { } ] }`) - time.Sleep(1 * time.Second) + time.Sleep(time.Second) m := cc.GetMethodConfig("/foo/Bar") if m.WaitForReady != nil { t.Fatalf("want: method (\"/foo/bar/\") config to be empty, got: %v", m) diff --git a/vendor/google.golang.org/grpc/connectivity/connectivity.go b/vendor/google.golang.org/grpc/connectivity/connectivity.go index 568ef5dc6..b1d7dbc54 100644 --- a/vendor/google.golang.org/grpc/connectivity/connectivity.go +++ b/vendor/google.golang.org/grpc/connectivity/connectivity.go @@ -22,7 +22,8 @@ package connectivity import ( - "golang.org/x/net/context" + "context" + "google.golang.org/grpc/grpclog" ) diff --git a/vendor/google.golang.org/grpc/credentials/alts/alts.go b/vendor/google.golang.org/grpc/credentials/alts/alts.go index fba041268..4cb93f164 100644 --- a/vendor/google.golang.org/grpc/credentials/alts/alts.go +++ b/vendor/google.golang.org/grpc/credentials/alts/alts.go @@ -24,13 +24,13 @@ package alts import ( + "context" "errors" "fmt" "net" "sync" "time" - "golang.org/x/net/context" "google.golang.org/grpc/credentials" core "google.golang.org/grpc/credentials/alts/internal" "google.golang.org/grpc/credentials/alts/internal/handshaker" diff --git a/vendor/google.golang.org/grpc/credentials/alts/internal/common.go b/vendor/google.golang.org/grpc/credentials/alts/internal/common.go index f30507180..33fba8123 100644 --- a/vendor/google.golang.org/grpc/credentials/alts/internal/common.go +++ b/vendor/google.golang.org/grpc/credentials/alts/internal/common.go @@ -22,9 +22,9 @@ package internal import ( + "context" "net" - "golang.org/x/net/context" "google.golang.org/grpc/credentials" ) diff --git a/vendor/google.golang.org/grpc/credentials/alts/internal/handshaker/handshaker.go b/vendor/google.golang.org/grpc/credentials/alts/internal/handshaker/handshaker.go index 574884ad1..82a1c9c58 100644 --- a/vendor/google.golang.org/grpc/credentials/alts/internal/handshaker/handshaker.go +++ b/vendor/google.golang.org/grpc/credentials/alts/internal/handshaker/handshaker.go @@ -20,13 +20,13 @@ package handshaker import ( + "context" "errors" "fmt" "io" "net" "sync" - "golang.org/x/net/context" grpc "google.golang.org/grpc" "google.golang.org/grpc/codes" "google.golang.org/grpc/credentials" diff --git a/vendor/google.golang.org/grpc/credentials/alts/internal/handshaker/handshaker_test.go b/vendor/google.golang.org/grpc/credentials/alts/internal/handshaker/handshaker_test.go index d870a1b3e..7608f53b7 100644 --- a/vendor/google.golang.org/grpc/credentials/alts/internal/handshaker/handshaker_test.go +++ b/vendor/google.golang.org/grpc/credentials/alts/internal/handshaker/handshaker_test.go @@ -20,10 +20,10 @@ package handshaker import ( "bytes" + "context" "testing" "time" - "golang.org/x/net/context" grpc "google.golang.org/grpc" core "google.golang.org/grpc/credentials/alts/internal" altspb "google.golang.org/grpc/credentials/alts/internal/proto/grpc_gcp" diff --git a/vendor/google.golang.org/grpc/credentials/alts/utils.go b/vendor/google.golang.org/grpc/credentials/alts/utils.go index 49bdcdf79..4ed27c605 100644 --- a/vendor/google.golang.org/grpc/credentials/alts/utils.go +++ b/vendor/google.golang.org/grpc/credentials/alts/utils.go @@ -19,6 +19,7 @@ package alts import ( + "context" "errors" "fmt" "io" @@ -30,7 +31,6 @@ import ( "runtime" "strings" - "golang.org/x/net/context" "google.golang.org/grpc/peer" ) diff --git a/vendor/google.golang.org/grpc/credentials/alts/utils_test.go b/vendor/google.golang.org/grpc/credentials/alts/utils_test.go index 73bb62d8d..3c7e43db1 100644 --- a/vendor/google.golang.org/grpc/credentials/alts/utils_test.go +++ b/vendor/google.golang.org/grpc/credentials/alts/utils_test.go @@ -19,11 +19,11 @@ package alts import ( + "context" "io" "strings" "testing" - "golang.org/x/net/context" altspb "google.golang.org/grpc/credentials/alts/internal/proto/grpc_gcp" "google.golang.org/grpc/peer" ) diff --git a/vendor/google.golang.org/grpc/credentials/credentials.go b/vendor/google.golang.org/grpc/credentials/credentials.go index 6c2b811fd..a85156045 100644 --- a/vendor/google.golang.org/grpc/credentials/credentials.go +++ b/vendor/google.golang.org/grpc/credentials/credentials.go @@ -23,6 +23,7 @@ package credentials // import "google.golang.org/grpc/credentials" import ( + "context" "crypto/tls" "crypto/x509" "errors" @@ -32,7 +33,7 @@ import ( "strings" "github.com/golang/protobuf/proto" - "golang.org/x/net/context" + "google.golang.org/grpc/credentials/internal" ) // alpnProtoStr are the specified application level protocols for gRPC. @@ -138,8 +139,8 @@ func (t TLSInfo) AuthType() string { return "tls" } -// GetChannelzSecurityValue returns security info requested by channelz. -func (t TLSInfo) GetChannelzSecurityValue() ChannelzSecurityValue { +// GetSecurityValue returns security info requested by channelz. +func (t TLSInfo) GetSecurityValue() ChannelzSecurityValue { v := &TLSChannelzSecurityValue{ StandardName: cipherSuiteLookup[t.State.CipherSuite], } @@ -187,7 +188,7 @@ func (c *tlsCreds) ClientHandshake(ctx context.Context, authority string, rawCon case <-ctx.Done(): return nil, nil, ctx.Err() } - return tlsConn{Conn: conn, rawConn: rawConn}, TLSInfo{conn.ConnectionState()}, nil + return internal.WrapSyscallConn(rawConn, conn), TLSInfo{conn.ConnectionState()}, nil } func (c *tlsCreds) ServerHandshake(rawConn net.Conn) (net.Conn, AuthInfo, error) { @@ -195,7 +196,7 @@ func (c *tlsCreds) ServerHandshake(rawConn net.Conn) (net.Conn, AuthInfo, error) if err := conn.Handshake(); err != nil { return nil, nil, err } - return tlsConn{Conn: conn, rawConn: rawConn}, TLSInfo{conn.ConnectionState()}, nil + return internal.WrapSyscallConn(rawConn, conn), TLSInfo{conn.ConnectionState()}, nil } func (c *tlsCreds) Clone() TransportCredentials { @@ -285,11 +286,6 @@ type OtherChannelzSecurityValue struct { func (*OtherChannelzSecurityValue) isChannelzSecurityValue() {} -type tlsConn struct { - *tls.Conn - rawConn net.Conn -} - var cipherSuiteLookup = map[uint16]string{ tls.TLS_RSA_WITH_RC4_128_SHA: "TLS_RSA_WITH_RC4_128_SHA", tls.TLS_RSA_WITH_3DES_EDE_CBC_SHA: "TLS_RSA_WITH_3DES_EDE_CBC_SHA", @@ -309,4 +305,24 @@ var cipherSuiteLookup = map[uint16]string{ tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384: "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", tls.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384: "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384", tls.TLS_FALLBACK_SCSV: "TLS_FALLBACK_SCSV", + tls.TLS_RSA_WITH_AES_128_CBC_SHA256: "TLS_RSA_WITH_AES_128_CBC_SHA256", + tls.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256: "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256", + tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256: "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256", + tls.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305: "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305", + tls.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305: "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305", +} + +// cloneTLSConfig returns a shallow clone of the exported +// fields of cfg, ignoring the unexported sync.Once, which +// contains a mutex and must not be copied. +// +// If cfg is nil, a new zero tls.Config is returned. +// +// TODO: inline this function if possible. +func cloneTLSConfig(cfg *tls.Config) *tls.Config { + if cfg == nil { + return &tls.Config{} + } + + return cfg.Clone() } diff --git a/vendor/google.golang.org/grpc/credentials/credentials_test.go b/vendor/google.golang.org/grpc/credentials/credentials_test.go index 9b13db51d..cb091de08 100644 --- a/vendor/google.golang.org/grpc/credentials/credentials_test.go +++ b/vendor/google.golang.org/grpc/credentials/credentials_test.go @@ -19,11 +19,11 @@ package credentials import ( + "context" "crypto/tls" "net" "testing" - "golang.org/x/net/context" "google.golang.org/grpc/testdata" ) diff --git a/vendor/google.golang.org/grpc/credentials/go16.go b/vendor/google.golang.org/grpc/credentials/go16.go deleted file mode 100644 index d6bbcc9fd..000000000 --- a/vendor/google.golang.org/grpc/credentials/go16.go +++ /dev/null @@ -1,57 +0,0 @@ -// +build !go1.7 - -/* - * - * Copyright 2016 gRPC authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package credentials - -import ( - "crypto/tls" -) - -// cloneTLSConfig returns a shallow clone of the exported -// fields of cfg, ignoring the unexported sync.Once, which -// contains a mutex and must not be copied. -// -// If cfg is nil, a new zero tls.Config is returned. -func cloneTLSConfig(cfg *tls.Config) *tls.Config { - if cfg == nil { - return &tls.Config{} - } - return &tls.Config{ - Rand: cfg.Rand, - Time: cfg.Time, - Certificates: cfg.Certificates, - NameToCertificate: cfg.NameToCertificate, - GetCertificate: cfg.GetCertificate, - RootCAs: cfg.RootCAs, - NextProtos: cfg.NextProtos, - ServerName: cfg.ServerName, - ClientAuth: cfg.ClientAuth, - ClientCAs: cfg.ClientCAs, - InsecureSkipVerify: cfg.InsecureSkipVerify, - CipherSuites: cfg.CipherSuites, - PreferServerCipherSuites: cfg.PreferServerCipherSuites, - SessionTicketsDisabled: cfg.SessionTicketsDisabled, - SessionTicketKey: cfg.SessionTicketKey, - ClientSessionCache: cfg.ClientSessionCache, - MinVersion: cfg.MinVersion, - MaxVersion: cfg.MaxVersion, - CurvePreferences: cfg.CurvePreferences, - } -} diff --git a/vendor/google.golang.org/grpc/credentials/go17.go b/vendor/google.golang.org/grpc/credentials/go17.go deleted file mode 100644 index fbd500002..000000000 --- a/vendor/google.golang.org/grpc/credentials/go17.go +++ /dev/null @@ -1,59 +0,0 @@ -// +build go1.7,!go1.8 - -/* - * - * Copyright 2016 gRPC authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package credentials - -import ( - "crypto/tls" -) - -// cloneTLSConfig returns a shallow clone of the exported -// fields of cfg, ignoring the unexported sync.Once, which -// contains a mutex and must not be copied. -// -// If cfg is nil, a new zero tls.Config is returned. -func cloneTLSConfig(cfg *tls.Config) *tls.Config { - if cfg == nil { - return &tls.Config{} - } - return &tls.Config{ - Rand: cfg.Rand, - Time: cfg.Time, - Certificates: cfg.Certificates, - NameToCertificate: cfg.NameToCertificate, - GetCertificate: cfg.GetCertificate, - RootCAs: cfg.RootCAs, - NextProtos: cfg.NextProtos, - ServerName: cfg.ServerName, - ClientAuth: cfg.ClientAuth, - ClientCAs: cfg.ClientCAs, - InsecureSkipVerify: cfg.InsecureSkipVerify, - CipherSuites: cfg.CipherSuites, - PreferServerCipherSuites: cfg.PreferServerCipherSuites, - SessionTicketsDisabled: cfg.SessionTicketsDisabled, - SessionTicketKey: cfg.SessionTicketKey, - ClientSessionCache: cfg.ClientSessionCache, - MinVersion: cfg.MinVersion, - MaxVersion: cfg.MaxVersion, - CurvePreferences: cfg.CurvePreferences, - DynamicRecordSizingDisabled: cfg.DynamicRecordSizingDisabled, - Renegotiation: cfg.Renegotiation, - } -} diff --git a/vendor/google.golang.org/grpc/credentials/go18.go b/vendor/google.golang.org/grpc/credentials/go18.go deleted file mode 100644 index db30d46cc..000000000 --- a/vendor/google.golang.org/grpc/credentials/go18.go +++ /dev/null @@ -1,46 +0,0 @@ -// +build go1.8 - -/* - * - * Copyright 2017 gRPC authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package credentials - -import ( - "crypto/tls" -) - -func init() { - cipherSuiteLookup[tls.TLS_RSA_WITH_AES_128_CBC_SHA256] = "TLS_RSA_WITH_AES_128_CBC_SHA256" - cipherSuiteLookup[tls.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256] = "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256" - cipherSuiteLookup[tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256] = "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256" - cipherSuiteLookup[tls.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305] = "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305" - cipherSuiteLookup[tls.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305] = "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305" -} - -// cloneTLSConfig returns a shallow clone of the exported -// fields of cfg, ignoring the unexported sync.Once, which -// contains a mutex and must not be copied. -// -// If cfg is nil, a new zero tls.Config is returned. -func cloneTLSConfig(cfg *tls.Config) *tls.Config { - if cfg == nil { - return &tls.Config{} - } - - return cfg.Clone() -} diff --git a/vendor/google.golang.org/grpc/credentials/go19.go b/vendor/google.golang.org/grpc/credentials/go19.go deleted file mode 100644 index 2a4ca1a57..000000000 --- a/vendor/google.golang.org/grpc/credentials/go19.go +++ /dev/null @@ -1,35 +0,0 @@ -// +build go1.9,!appengine - -/* - * - * Copyright 2018 gRPC authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package credentials - -import ( - "errors" - "syscall" -) - -// implements the syscall.Conn interface -func (c tlsConn) SyscallConn() (syscall.RawConn, error) { - conn, ok := c.rawConn.(syscall.Conn) - if !ok { - return nil, errors.New("RawConn does not implement syscall.Conn") - } - return conn.SyscallConn() -} diff --git a/vendor/google.golang.org/grpc/credentials/google/google.go b/vendor/google.golang.org/grpc/credentials/google/google.go index b1b5b2815..23079c80a 100644 --- a/vendor/google.golang.org/grpc/credentials/google/google.go +++ b/vendor/google.golang.org/grpc/credentials/google/google.go @@ -20,10 +20,10 @@ package google import ( + "context" "fmt" "time" - "golang.org/x/net/context" "google.golang.org/grpc/credentials" "google.golang.org/grpc/credentials/alts" "google.golang.org/grpc/credentials/oauth" diff --git a/vendor/google.golang.org/grpc/credentials/internal/syscallconn.go b/vendor/google.golang.org/grpc/credentials/internal/syscallconn.go new file mode 100644 index 000000000..2f4472bec --- /dev/null +++ b/vendor/google.golang.org/grpc/credentials/internal/syscallconn.go @@ -0,0 +1,61 @@ +// +build !appengine + +/* + * + * Copyright 2018 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package internal contains credentials-internal code. +package internal + +import ( + "net" + "syscall" +) + +type sysConn = syscall.Conn + +// syscallConn keeps reference of rawConn to support syscall.Conn for channelz. +// SyscallConn() (the method in interface syscall.Conn) is explicitly +// implemented on this type, +// +// Interface syscall.Conn is implemented by most net.Conn implementations (e.g. +// TCPConn, UnixConn), but is not part of net.Conn interface. So wrapper conns +// that embed net.Conn don't implement syscall.Conn. (Side note: tls.Conn +// doesn't embed net.Conn, so even if syscall.Conn is part of net.Conn, it won't +// help here). +type syscallConn struct { + net.Conn + // sysConn is a type alias of syscall.Conn. It's necessary because the name + // `Conn` collides with `net.Conn`. + sysConn +} + +// WrapSyscallConn tries to wrap rawConn and newConn into a net.Conn that +// implements syscall.Conn. rawConn will be used to support syscall, and newConn +// will be used for read/write. +// +// This function returns newConn if rawConn doesn't implement syscall.Conn. +func WrapSyscallConn(rawConn, newConn net.Conn) net.Conn { + sysConn, ok := rawConn.(syscall.Conn) + if !ok { + return newConn + } + return &syscallConn{ + Conn: newConn, + sysConn: sysConn, + } +} diff --git a/vendor/google.golang.org/grpc/resolver/dns/pre_go18_test.go b/vendor/google.golang.org/grpc/credentials/internal/syscallconn_appengine.go similarity index 76% rename from vendor/google.golang.org/grpc/resolver/dns/pre_go18_test.go rename to vendor/google.golang.org/grpc/credentials/internal/syscallconn_appengine.go index 4bf305e26..d4346e9ea 100644 --- a/vendor/google.golang.org/grpc/resolver/dns/pre_go18_test.go +++ b/vendor/google.golang.org/grpc/credentials/internal/syscallconn_appengine.go @@ -1,4 +1,4 @@ -// +build go1.6, !go1.8 +// +build appengine /* * @@ -18,10 +18,13 @@ * */ -package dns +package internal import ( - "fmt" + "net" ) -var errForInvalidTarget = fmt.Errorf("invalid target address [2001:db8:a0b:12f0::1, error info: missing ']' in address [2001:db8:a0b:12f0::1:443") +// WrapSyscallConn returns newConn on appengine. +func WrapSyscallConn(rawConn, newConn net.Conn) net.Conn { + return newConn +} diff --git a/vendor/google.golang.org/grpc/credentials/internal/syscallconn_test.go b/vendor/google.golang.org/grpc/credentials/internal/syscallconn_test.go new file mode 100644 index 000000000..745671328 --- /dev/null +++ b/vendor/google.golang.org/grpc/credentials/internal/syscallconn_test.go @@ -0,0 +1,64 @@ +// +build !appengine + +/* + * + * Copyright 2018 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package internal_test + +import ( + "net" + "syscall" + "testing" + + "google.golang.org/grpc/credentials/internal" +) + +type syscallConn struct { + net.Conn +} + +func (*syscallConn) SyscallConn() (syscall.RawConn, error) { + return nil, nil +} + +type nonSyscallConn struct { + net.Conn +} + +func TestWrapSyscallConn(t *testing.T) { + sc := &syscallConn{} + nsc := &nonSyscallConn{} + + wrapConn := internal.WrapSyscallConn(sc, nsc) + if _, ok := wrapConn.(syscall.Conn); !ok { + t.Errorf("returned conn (type %T) doesn't implement syscall.Conn, want implement", wrapConn) + } +} + +func TestWrapSyscallConnNoWrap(t *testing.T) { + nscRaw := &nonSyscallConn{} + nsc := &nonSyscallConn{} + + wrapConn := internal.WrapSyscallConn(nscRaw, nsc) + if _, ok := wrapConn.(syscall.Conn); ok { + t.Errorf("returned conn (type %T) implements syscall.Conn, want not implement", wrapConn) + } + if wrapConn != nsc { + t.Errorf("returned conn is %p, want %p (the passed-in newConn)", wrapConn, nsc) + } +} diff --git a/vendor/google.golang.org/grpc/credentials/oauth/oauth.go b/vendor/google.golang.org/grpc/credentials/oauth/oauth.go index f6d597a14..e0e74d815 100644 --- a/vendor/google.golang.org/grpc/credentials/oauth/oauth.go +++ b/vendor/google.golang.org/grpc/credentials/oauth/oauth.go @@ -20,11 +20,11 @@ package oauth import ( + "context" "fmt" "io/ioutil" "sync" - "golang.org/x/net/context" "golang.org/x/oauth2" "golang.org/x/oauth2/google" "golang.org/x/oauth2/jwt" diff --git a/vendor/google.golang.org/grpc/dialoptions.go b/vendor/google.golang.org/grpc/dialoptions.go index 99b495272..fe00a254d 100644 --- a/vendor/google.golang.org/grpc/dialoptions.go +++ b/vendor/google.golang.org/grpc/dialoptions.go @@ -19,11 +19,11 @@ package grpc import ( + "context" "fmt" "net" "time" - "golang.org/x/net/context" "google.golang.org/grpc/balancer" "google.golang.org/grpc/credentials" "google.golang.org/grpc/internal" @@ -55,10 +55,11 @@ type dialOptions struct { balancerBuilder balancer.Builder // This is to support grpclb. resolverBuilder resolver.Builder - waitForHandshake bool + reqHandshake envconfig.RequireHandshakeSetting channelzParentID int64 disableServiceConfig bool disableRetry bool + disableHealthCheck bool } // DialOption configures how we set up the connection. @@ -91,10 +92,15 @@ func newFuncDialOption(f func(*dialOptions)) *funcDialOption { } // WithWaitForHandshake blocks until the initial settings frame is received from -// the server before assigning RPCs to the connection. Experimental API. +// the server before assigning RPCs to the connection. +// +// Deprecated: this will become the default behavior in the 1.17 release, and +// will be removed after the 1.18 release. To override the default behavior in +// the 1.17 release, either use this dial option or set the environment +// variable GRPC_GO_READY_BEFORE_HANDSHAKE=on. func WithWaitForHandshake() DialOption { return newFuncDialOption(func(o *dialOptions) { - o.waitForHandshake = true + o.reqHandshake = envconfig.RequireHandshakeOn }) } @@ -454,9 +460,18 @@ func WithMaxHeaderListSize(s uint32) DialOption { }) } +// WithDisableHealthCheck disables the LB channel health checking for all SubConns of this ClientConn. +// +// This API is EXPERIMENTAL. +func WithDisableHealthCheck() DialOption { + return newFuncDialOption(func(o *dialOptions) { + o.disableHealthCheck = true + }) +} func defaultDialOptions() dialOptions { return dialOptions{ disableRetry: !envconfig.Retry, + reqHandshake: envconfig.RequireHandshake, copts: transport.ConnectOptions{ WriteBufferSize: defaultWriteBufSize, ReadBufferSize: defaultReadBufSize, diff --git a/vendor/google.golang.org/grpc/encoding/proto/proto_benchmark_test.go b/vendor/google.golang.org/grpc/encoding/proto/proto_benchmark_test.go index 63ea57de2..7d4819859 100644 --- a/vendor/google.golang.org/grpc/encoding/proto/proto_benchmark_test.go +++ b/vendor/google.golang.org/grpc/encoding/proto/proto_benchmark_test.go @@ -1,5 +1,3 @@ -// +build go1.7 - /* * * Copyright 2014 gRPC authors. diff --git a/vendor/google.golang.org/grpc/examples/helloworld/greeter_client/main.go b/vendor/google.golang.org/grpc/examples/helloworld/greeter_client/main.go index 4b99ff5a7..8c44ef03a 100644 --- a/vendor/google.golang.org/grpc/examples/helloworld/greeter_client/main.go +++ b/vendor/google.golang.org/grpc/examples/helloworld/greeter_client/main.go @@ -19,11 +19,11 @@ package main import ( + "context" "log" "os" "time" - "golang.org/x/net/context" "google.golang.org/grpc" pb "google.golang.org/grpc/examples/helloworld/helloworld" ) diff --git a/vendor/google.golang.org/grpc/examples/helloworld/greeter_server/main.go b/vendor/google.golang.org/grpc/examples/helloworld/greeter_server/main.go index 702a3b617..fd0a5b00d 100644 --- a/vendor/google.golang.org/grpc/examples/helloworld/greeter_server/main.go +++ b/vendor/google.golang.org/grpc/examples/helloworld/greeter_server/main.go @@ -21,10 +21,10 @@ package main import ( + "context" "log" "net" - "golang.org/x/net/context" "google.golang.org/grpc" pb "google.golang.org/grpc/examples/helloworld/helloworld" "google.golang.org/grpc/reflection" diff --git a/vendor/google.golang.org/grpc/examples/helloworld/mock_helloworld/hw_mock_test.go b/vendor/google.golang.org/grpc/examples/helloworld/mock_helloworld/hw_mock_test.go index 396676331..358d13bda 100644 --- a/vendor/google.golang.org/grpc/examples/helloworld/mock_helloworld/hw_mock_test.go +++ b/vendor/google.golang.org/grpc/examples/helloworld/mock_helloworld/hw_mock_test.go @@ -19,13 +19,13 @@ package mock_helloworld_test import ( + "context" "fmt" "testing" "time" "github.com/golang/mock/gomock" "github.com/golang/protobuf/proto" - "golang.org/x/net/context" helloworld "google.golang.org/grpc/examples/helloworld/helloworld" hwmock "google.golang.org/grpc/examples/helloworld/mock_helloworld" ) diff --git a/vendor/google.golang.org/grpc/examples/oauth/client/main.go b/vendor/google.golang.org/grpc/examples/oauth/client/main.go index d167c43e6..343a5ff7e 100644 --- a/vendor/google.golang.org/grpc/examples/oauth/client/main.go +++ b/vendor/google.golang.org/grpc/examples/oauth/client/main.go @@ -20,11 +20,11 @@ package main import ( + "context" "crypto/tls" "log" "time" - "golang.org/x/net/context" "golang.org/x/oauth2" "google.golang.org/grpc" "google.golang.org/grpc/credentials" diff --git a/vendor/google.golang.org/grpc/examples/oauth/server/main.go b/vendor/google.golang.org/grpc/examples/oauth/server/main.go index 5135e9dcc..517065c5c 100644 --- a/vendor/google.golang.org/grpc/examples/oauth/server/main.go +++ b/vendor/google.golang.org/grpc/examples/oauth/server/main.go @@ -21,12 +21,12 @@ package main import ( + "context" "crypto/tls" "log" "net" "strings" - "golang.org/x/net/context" "google.golang.org/grpc" "google.golang.org/grpc/codes" "google.golang.org/grpc/credentials" diff --git a/vendor/google.golang.org/grpc/examples/route_guide/client/client.go b/vendor/google.golang.org/grpc/examples/route_guide/client/client.go index 1ad1c1793..29fb73785 100644 --- a/vendor/google.golang.org/grpc/examples/route_guide/client/client.go +++ b/vendor/google.golang.org/grpc/examples/route_guide/client/client.go @@ -23,13 +23,13 @@ package main import ( + "context" "flag" "io" "log" "math/rand" "time" - "golang.org/x/net/context" "google.golang.org/grpc" "google.golang.org/grpc/credentials" pb "google.golang.org/grpc/examples/route_guide/routeguide" diff --git a/vendor/google.golang.org/grpc/examples/route_guide/mock_routeguide/rg_mock_test.go b/vendor/google.golang.org/grpc/examples/route_guide/mock_routeguide/rg_mock_test.go index 8525cd5fd..80f35524d 100644 --- a/vendor/google.golang.org/grpc/examples/route_guide/mock_routeguide/rg_mock_test.go +++ b/vendor/google.golang.org/grpc/examples/route_guide/mock_routeguide/rg_mock_test.go @@ -19,13 +19,13 @@ package mock_routeguide_test import ( + "context" "fmt" "testing" "time" "github.com/golang/mock/gomock" "github.com/golang/protobuf/proto" - "golang.org/x/net/context" rgmock "google.golang.org/grpc/examples/route_guide/mock_routeguide" rgpb "google.golang.org/grpc/examples/route_guide/routeguide" ) diff --git a/vendor/google.golang.org/grpc/examples/route_guide/server/server.go b/vendor/google.golang.org/grpc/examples/route_guide/server/server.go index ececfa7e5..bd4278eda 100644 --- a/vendor/google.golang.org/grpc/examples/route_guide/server/server.go +++ b/vendor/google.golang.org/grpc/examples/route_guide/server/server.go @@ -25,6 +25,7 @@ package main import ( + "context" "encoding/json" "flag" "fmt" @@ -36,7 +37,6 @@ import ( "sync" "time" - "golang.org/x/net/context" "google.golang.org/grpc" "google.golang.org/grpc/credentials" diff --git a/vendor/google.golang.org/grpc/examples/rpc_errors/client/main.go b/vendor/google.golang.org/grpc/examples/rpc_errors/client/main.go index b50fa8ce9..daccb1ef2 100644 --- a/vendor/google.golang.org/grpc/examples/rpc_errors/client/main.go +++ b/vendor/google.golang.org/grpc/examples/rpc_errors/client/main.go @@ -19,11 +19,11 @@ package main import ( + "context" "log" "os" "time" - "golang.org/x/net/context" epb "google.golang.org/genproto/googleapis/rpc/errdetails" "google.golang.org/grpc" pb "google.golang.org/grpc/examples/helloworld/helloworld" diff --git a/vendor/google.golang.org/grpc/examples/rpc_errors/server/main.go b/vendor/google.golang.org/grpc/examples/rpc_errors/server/main.go index ced95d3ef..7593aabd1 100644 --- a/vendor/google.golang.org/grpc/examples/rpc_errors/server/main.go +++ b/vendor/google.golang.org/grpc/examples/rpc_errors/server/main.go @@ -19,12 +19,12 @@ package main import ( + "context" "fmt" "log" "net" "sync" - "golang.org/x/net/context" epb "google.golang.org/genproto/googleapis/rpc/errdetails" "google.golang.org/grpc" "google.golang.org/grpc/codes" diff --git a/vendor/google.golang.org/grpc/go.mod b/vendor/google.golang.org/grpc/go.mod index 1d16f5d4d..f296dcf4e 100644 --- a/vendor/google.golang.org/grpc/go.mod +++ b/vendor/google.golang.org/grpc/go.mod @@ -4,11 +4,10 @@ require ( cloud.google.com/go v0.26.0 // indirect github.com/client9/misspell v0.3.4 github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b - github.com/golang/lint v0.0.0-20180702182130-06c8688daad7 github.com/golang/mock v1.1.1 github.com/golang/protobuf v1.2.0 github.com/kisielk/gotool v1.0.0 // indirect - golang.org/x/lint v0.0.0-20180702182130-06c8688daad7 // indirect + golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3 golang.org/x/net v0.0.0-20180826012351-8a410e7b638d golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f // indirect diff --git a/vendor/google.golang.org/grpc/go.sum b/vendor/google.golang.org/grpc/go.sum index 6b70e58e5..bfb6bb7c0 100644 --- a/vendor/google.golang.org/grpc/go.sum +++ b/vendor/google.golang.org/grpc/go.sum @@ -4,16 +4,14 @@ github.com/client9/misspell v0.3.4 h1:ta993UF76GwbvJcIo3Y68y/M3WxlpEHPWIGDkJYwzJ github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/lint v0.0.0-20180702182130-06c8688daad7 h1:2hRPrmiwPrp3fQX967rNJIhQPtiGXdlQWAxKbKw3VHA= -github.com/golang/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:tluoj9z5200jBnyusfRPU2LqT6J+DAorxEvtC7LHB+E= github.com/golang/mock v1.1.1 h1:G5FRp8JnTd7RQH5kemVNlMeyXQAztQ3mOWV95KxsXH8= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/protobuf v1.2.0 h1:P3YflyNX/ehuJFLhxviNdFxQPkGK5cDcApsge1SqnvM= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/kisielk/gotool v1.0.0 h1:AV2c/EiW3KqPNT9ZKl07ehoAGi4C5/01Cfbblndcapg= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -golang.org/x/lint v0.0.0-20180702182130-06c8688daad7 h1:00BeQWmeaGazuOrq8Q5K5d3/cHaGuFrZzpaHBXfrsUA= -golang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3 h1:x/bBzNauLQAlE3fLku/xy92Y8QwKX5HZymrMz2IiKFc= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d h1:g9qWBGx4puODJTMVyoPrpoxPFgVGd+z1DZwjfRu4d0I= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be h1:vEDujvNQGv4jgYKudGeI/+DAX4Jffq6hpD55MmoEvKs= diff --git a/vendor/google.golang.org/grpc/go16.go b/vendor/google.golang.org/grpc/go16.go deleted file mode 100644 index b1db21af6..000000000 --- a/vendor/google.golang.org/grpc/go16.go +++ /dev/null @@ -1,71 +0,0 @@ -// +build go1.6,!go1.7 - -/* - * - * Copyright 2016 gRPC authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package grpc - -import ( - "fmt" - "io" - "net" - "net/http" - - "golang.org/x/net/context" - "google.golang.org/grpc/codes" - "google.golang.org/grpc/internal/transport" - "google.golang.org/grpc/status" -) - -// dialContext connects to the address on the named network. -func dialContext(ctx context.Context, network, address string) (net.Conn, error) { - return (&net.Dialer{Cancel: ctx.Done()}).Dial(network, address) -} - -func sendHTTPRequest(ctx context.Context, req *http.Request, conn net.Conn) error { - req.Cancel = ctx.Done() - if err := req.Write(conn); err != nil { - return fmt.Errorf("failed to write the HTTP request: %v", err) - } - return nil -} - -// toRPCErr converts an error into an error from the status package. -func toRPCErr(err error) error { - if err == nil || err == io.EOF { - return err - } - if err == io.ErrUnexpectedEOF { - return status.Error(codes.Internal, err.Error()) - } - if _, ok := status.FromError(err); ok { - return err - } - switch e := err.(type) { - case transport.ConnectionError: - return status.Error(codes.Unavailable, e.Desc) - default: - switch err { - case context.DeadlineExceeded: - return status.Error(codes.DeadlineExceeded, err.Error()) - case context.Canceled: - return status.Error(codes.Canceled, err.Error()) - } - } - return status.Error(codes.Unknown, err.Error()) -} diff --git a/vendor/google.golang.org/grpc/go17.go b/vendor/google.golang.org/grpc/go17.go deleted file mode 100644 index 71a72e8fe..000000000 --- a/vendor/google.golang.org/grpc/go17.go +++ /dev/null @@ -1,72 +0,0 @@ -// +build go1.7 - -/* - * - * Copyright 2016 gRPC authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package grpc - -import ( - "context" - "fmt" - "io" - "net" - "net/http" - - netctx "golang.org/x/net/context" - "google.golang.org/grpc/codes" - "google.golang.org/grpc/internal/transport" - "google.golang.org/grpc/status" -) - -// dialContext connects to the address on the named network. -func dialContext(ctx context.Context, network, address string) (net.Conn, error) { - return (&net.Dialer{}).DialContext(ctx, network, address) -} - -func sendHTTPRequest(ctx context.Context, req *http.Request, conn net.Conn) error { - req = req.WithContext(ctx) - if err := req.Write(conn); err != nil { - return fmt.Errorf("failed to write the HTTP request: %v", err) - } - return nil -} - -// toRPCErr converts an error into an error from the status package. -func toRPCErr(err error) error { - if err == nil || err == io.EOF { - return err - } - if err == io.ErrUnexpectedEOF { - return status.Error(codes.Internal, err.Error()) - } - if _, ok := status.FromError(err); ok { - return err - } - switch e := err.(type) { - case transport.ConnectionError: - return status.Error(codes.Unavailable, e.Desc) - default: - switch err { - case context.DeadlineExceeded, netctx.DeadlineExceeded: - return status.Error(codes.DeadlineExceeded, err.Error()) - case context.Canceled, netctx.Canceled: - return status.Error(codes.Canceled, err.Error()) - } - } - return status.Error(codes.Unknown, err.Error()) -} diff --git a/vendor/google.golang.org/grpc/health/client.go b/vendor/google.golang.org/grpc/health/client.go new file mode 100644 index 000000000..e15f04c22 --- /dev/null +++ b/vendor/google.golang.org/grpc/health/client.go @@ -0,0 +1,107 @@ +/* + * + * Copyright 2018 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package health + +import ( + "context" + "fmt" + "io" + "time" + + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + healthpb "google.golang.org/grpc/health/grpc_health_v1" + "google.golang.org/grpc/internal" + "google.golang.org/grpc/internal/backoff" + "google.golang.org/grpc/status" +) + +const maxDelay = 120 * time.Second + +var backoffStrategy = backoff.Exponential{MaxDelay: maxDelay} +var backoffFunc = func(ctx context.Context, retries int) bool { + d := backoffStrategy.Backoff(retries) + timer := time.NewTimer(d) + select { + case <-timer.C: + return true + case <-ctx.Done(): + timer.Stop() + return false + } +} + +func init() { + internal.HealthCheckFunc = clientHealthCheck +} + +func clientHealthCheck(ctx context.Context, newStream func() (interface{}, error), reportHealth func(bool), service string) error { + tryCnt := 0 + +retryConnection: + for { + // Backs off if the connection has failed in some way without receiving a message in the previous retry. + if tryCnt > 0 && !backoffFunc(ctx, tryCnt-1) { + return nil + } + tryCnt++ + + if ctx.Err() != nil { + return nil + } + rawS, err := newStream() + if err != nil { + continue retryConnection + } + + s, ok := rawS.(grpc.ClientStream) + // Ideally, this should never happen. But if it happens, the server is marked as healthy for LBing purposes. + if !ok { + reportHealth(true) + return fmt.Errorf("newStream returned %v (type %T); want grpc.ClientStream", rawS, rawS) + } + + if err = s.SendMsg(&healthpb.HealthCheckRequest{Service: service}); err != nil && err != io.EOF { + // Stream should have been closed, so we can safely continue to create a new stream. + continue retryConnection + } + s.CloseSend() + + resp := new(healthpb.HealthCheckResponse) + for { + err = s.RecvMsg(resp) + + // Reports healthy for the LBing purposes if health check is not implemented in the server. + if status.Code(err) == codes.Unimplemented { + reportHealth(true) + return err + } + + // Reports unhealthy if server's Watch method gives an error other than UNIMPLEMENTED. + if err != nil { + reportHealth(false) + continue retryConnection + } + + // As a message has been received, removes the need for backoff for the next retry by reseting the try count. + tryCnt = 0 + reportHealth(resp.Status == healthpb.HealthCheckResponse_SERVING) + } + } +} diff --git a/vendor/google.golang.org/grpc/health/client_test.go b/vendor/google.golang.org/grpc/health/client_test.go new file mode 100644 index 000000000..894b66ba7 --- /dev/null +++ b/vendor/google.golang.org/grpc/health/client_test.go @@ -0,0 +1,57 @@ +/* + * + * Copyright 2018 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package health + +import ( + "context" + "errors" + "reflect" + "testing" + "time" +) + +func TestClientHealthCheckBackoff(t *testing.T) { + const maxRetries = 5 + + var want []time.Duration + for i := 0; i < maxRetries; i++ { + want = append(want, time.Duration(i+1)*time.Second) + } + + var got []time.Duration + newStream := func() (interface{}, error) { + if len(got) < maxRetries { + return nil, errors.New("backoff") + } + return nil, nil + } + + oldBackoffFunc := backoffFunc + backoffFunc = func(ctx context.Context, retries int) bool { + got = append(got, time.Duration(retries+1)*time.Second) + return true + } + defer func() { backoffFunc = oldBackoffFunc }() + + clientHealthCheck(context.Background(), newStream, func(_ bool) {}, "test") + + if !reflect.DeepEqual(got, want) { + t.Fatalf("Backoff durations for %v retries are %v. (expected: %v)", maxRetries, got, want) + } +} diff --git a/vendor/google.golang.org/grpc/health/health.go b/vendor/google.golang.org/grpc/health/server.go similarity index 81% rename from vendor/google.golang.org/grpc/health/health.go rename to vendor/google.golang.org/grpc/health/server.go index 10666f2d3..c86e49988 100644 --- a/vendor/google.golang.org/grpc/health/health.go +++ b/vendor/google.golang.org/grpc/health/server.go @@ -18,15 +18,16 @@ //go:generate ./regenerate.sh -// Package health provides some utility functions to health-check a server. The implementation -// is based on protobuf. Users need to write their own implementations if other IDLs are used. +// Package health provides a service that exposes server's health and it must be +// imported to enable support for client-side health checks. package health import ( + "context" "sync" - "golang.org/x/net/context" "google.golang.org/grpc/codes" + healthgrpc "google.golang.org/grpc/health/grpc_health_v1" healthpb "google.golang.org/grpc/health/grpc_health_v1" "google.golang.org/grpc/status" ) @@ -36,14 +37,14 @@ type Server struct { mu sync.Mutex // statusMap stores the serving status of the services this Server monitors. statusMap map[string]healthpb.HealthCheckResponse_ServingStatus - updates map[string]map[healthpb.Health_WatchServer]chan healthpb.HealthCheckResponse_ServingStatus + updates map[string]map[healthgrpc.Health_WatchServer]chan healthpb.HealthCheckResponse_ServingStatus } // NewServer returns a new Server. func NewServer() *Server { return &Server{ statusMap: map[string]healthpb.HealthCheckResponse_ServingStatus{"": healthpb.HealthCheckResponse_SERVING}, - updates: make(map[string]map[healthpb.Health_WatchServer]chan healthpb.HealthCheckResponse_ServingStatus), + updates: make(map[string]map[healthgrpc.Health_WatchServer]chan healthpb.HealthCheckResponse_ServingStatus), } } @@ -60,7 +61,7 @@ func (s *Server) Check(ctx context.Context, in *healthpb.HealthCheckRequest) (*h } // Watch implements `service Health`. -func (s *Server) Watch(in *healthpb.HealthCheckRequest, stream healthpb.Health_WatchServer) error { +func (s *Server) Watch(in *healthpb.HealthCheckRequest, stream healthgrpc.Health_WatchServer) error { service := in.Service // update channel is used for getting service status updates. update := make(chan healthpb.HealthCheckResponse_ServingStatus, 1) @@ -74,7 +75,7 @@ func (s *Server) Watch(in *healthpb.HealthCheckRequest, stream healthpb.Health_W // Registers the update channel to the correct place in the updates map. if _, ok := s.updates[service]; !ok { - s.updates[service] = make(map[healthpb.Health_WatchServer]chan healthpb.HealthCheckResponse_ServingStatus) + s.updates[service] = make(map[healthgrpc.Health_WatchServer]chan healthpb.HealthCheckResponse_ServingStatus) } s.updates[service][stream] = update defer func() { @@ -83,10 +84,16 @@ func (s *Server) Watch(in *healthpb.HealthCheckRequest, stream healthpb.Health_W s.mu.Unlock() }() s.mu.Unlock() + + var lastSentStatus healthpb.HealthCheckResponse_ServingStatus = -1 for { select { // Status updated. Sends the up-to-date status to the client. case servingStatus := <-update: + if lastSentStatus == servingStatus { + continue + } + lastSentStatus = servingStatus err := stream.Send(&healthpb.HealthCheckResponse{Status: servingStatus}) if err != nil { return status.Error(codes.Canceled, "Stream has ended.") @@ -102,6 +109,8 @@ func (s *Server) Watch(in *healthpb.HealthCheckRequest, stream healthpb.Health_W // or insert a new service entry into the statusMap. func (s *Server) SetServingStatus(service string, servingStatus healthpb.HealthCheckResponse_ServingStatus) { s.mu.Lock() + defer s.mu.Unlock() + s.statusMap[service] = servingStatus for _, update := range s.updates[service] { // Clears previous updates, that are not sent to the client, from the channel. @@ -113,5 +122,4 @@ func (s *Server) SetServingStatus(service string, servingStatus healthpb.HealthC // Puts the most recent update to the channel. update <- servingStatus } - s.mu.Unlock() } diff --git a/vendor/google.golang.org/grpc/health/health_test.go b/vendor/google.golang.org/grpc/health/server_test.go similarity index 88% rename from vendor/google.golang.org/grpc/health/health_test.go rename to vendor/google.golang.org/grpc/health/server_test.go index 0ad6876ce..c07dabe0e 100644 --- a/vendor/google.golang.org/grpc/health/health_test.go +++ b/vendor/google.golang.org/grpc/health/server_test.go @@ -15,6 +15,7 @@ * limitations under the License. * */ + package health_test import ( @@ -22,12 +23,12 @@ import ( "google.golang.org/grpc" "google.golang.org/grpc/health" - pb "google.golang.org/grpc/health/grpc_health_v1" + healthgrpc "google.golang.org/grpc/health/grpc_health_v1" ) // Make sure the service implementation complies with the proto definition. func TestRegister(t *testing.T) { s := grpc.NewServer() - pb.RegisterHealthServer(s, health.NewServer()) + healthgrpc.RegisterHealthServer(s, health.NewServer()) s.Stop() } diff --git a/vendor/google.golang.org/grpc/interceptor.go b/vendor/google.golang.org/grpc/interceptor.go index 1f6ef6780..8b7350022 100644 --- a/vendor/google.golang.org/grpc/interceptor.go +++ b/vendor/google.golang.org/grpc/interceptor.go @@ -19,7 +19,7 @@ package grpc import ( - "golang.org/x/net/context" + "context" ) // UnaryInvoker is called by UnaryClientInterceptor to complete RPCs. diff --git a/vendor/google.golang.org/grpc/internal/binarylog/binarylog.go b/vendor/google.golang.org/grpc/internal/binarylog/binarylog.go index 4c80e7c1f..fee6aecd0 100644 --- a/vendor/google.golang.org/grpc/internal/binarylog/binarylog.go +++ b/vendor/google.golang.org/grpc/internal/binarylog/binarylog.go @@ -27,16 +27,42 @@ import ( "google.golang.org/grpc/grpclog" ) -// Logger is the global binary logger for the binary. One of this should be +// Logger is the global binary logger. It can be used to get binary logger for +// each method. +type Logger interface { + getMethodLogger(methodName string) *MethodLogger +} + +// binLogger is the global binary logger for the binary. One of this should be // built at init time from the configuration (environment varialbe or flags). // // It is used to get a methodLogger for each individual method. -var Logger *logger +var binLogger Logger + +// SetLogger sets the binarg logger. +// +// Only call this at init time. +func SetLogger(l Logger) { + binLogger = l +} + +// GetMethodLogger returns the methodLogger for the given methodName. +// +// methodName should be in the format of "/service/method". +// +// Each methodLogger returned by this method is a new instance. This is to +// generate sequence id within the call. +func GetMethodLogger(methodName string) *MethodLogger { + if binLogger == nil { + return nil + } + return binLogger.getMethodLogger(methodName) +} func init() { const envStr = "GRPC_BINARY_LOG_FILTER" configStr := os.Getenv(envStr) - Logger = newLoggerFromConfigString(configStr) + binLogger = NewLoggerFromConfigString(configStr) } type methodLoggerConfig struct { @@ -113,13 +139,13 @@ func (l *logger) setBlacklist(method string) error { return nil } -// GetMethodLogger returns the methodLogger for the given methodName. +// getMethodLogger returns the methodLogger for the given methodName. // // methodName should be in the format of "/service/method". // // Each methodLogger returned by this method is a new instance. This is to // generate sequence id within the call. -func (l *logger) GetMethodLogger(methodName string) *MethodLogger { +func (l *logger) getMethodLogger(methodName string) *MethodLogger { s, m, err := parseMethodName(methodName) if err != nil { grpclog.Infof("binarylogging: failed to parse %q: %v", methodName, err) diff --git a/vendor/google.golang.org/grpc/internal/binarylog/binarylog_end2end_test.go b/vendor/google.golang.org/grpc/internal/binarylog/binarylog_end2end_test.go new file mode 100644 index 000000000..6d25f1be6 --- /dev/null +++ b/vendor/google.golang.org/grpc/internal/binarylog/binarylog_end2end_test.go @@ -0,0 +1,1044 @@ +/* + * + * Copyright 2018 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package binarylog_test + +import ( + "context" + "fmt" + "io" + "net" + "sort" + "sync" + "testing" + "time" + + "github.com/golang/protobuf/proto" + + "google.golang.org/grpc" + pb "google.golang.org/grpc/binarylog/grpc_binarylog_v1" + "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/internal/binarylog" + "google.golang.org/grpc/metadata" + testpb "google.golang.org/grpc/stats/grpc_testing" + "google.golang.org/grpc/status" +) + +func init() { + // Setting environment variable in tests doesn't work because of the init + // orders. Set the loggers directly here. + binarylog.SetLogger(binarylog.AllLogger) + binarylog.SetDefaultSink(testSink) +} + +var testSink = &testBinLogSink{} + +type testBinLogSink struct { + mu sync.Mutex + buf []*pb.GrpcLogEntry +} + +func (s *testBinLogSink) Write(e *pb.GrpcLogEntry) error { + s.mu.Lock() + s.buf = append(s.buf, e) + s.mu.Unlock() + return nil +} + +func (s *testBinLogSink) Close() error { return nil } + +// Returns all client entris if client is true, otherwise return all server +// entries. +func (s *testBinLogSink) logEntries(client bool) []*pb.GrpcLogEntry { + logger := pb.GrpcLogEntry_LOGGER_SERVER + if client { + logger = pb.GrpcLogEntry_LOGGER_CLIENT + } + var ret []*pb.GrpcLogEntry + s.mu.Lock() + for _, e := range s.buf { + if e.Logger == logger { + ret = append(ret, e) + } + } + s.mu.Unlock() + return ret +} + +func (s *testBinLogSink) clear() { + s.mu.Lock() + s.buf = nil + s.mu.Unlock() +} + +var ( + // For headers: + testMetadata = metadata.MD{ + "key1": []string{"value1"}, + "key2": []string{"value2"}, + } + // For trailers: + testTrailerMetadata = metadata.MD{ + "tkey1": []string{"trailerValue1"}, + "tkey2": []string{"trailerValue2"}, + } + // The id for which the service handler should return error. + errorID int32 = 32202 + + globalRPCID uint64 // RPC id starts with 1, but we do ++ at the beginning of each test. +) + +type testServer struct { + te *test +} + +func (s *testServer) UnaryCall(ctx context.Context, in *testpb.SimpleRequest) (*testpb.SimpleResponse, error) { + md, ok := metadata.FromIncomingContext(ctx) + if ok { + if err := grpc.SendHeader(ctx, md); err != nil { + return nil, status.Errorf(status.Code(err), "grpc.SendHeader(_, %v) = %v, want ", md, err) + } + if err := grpc.SetTrailer(ctx, testTrailerMetadata); err != nil { + return nil, status.Errorf(status.Code(err), "grpc.SetTrailer(_, %v) = %v, want ", testTrailerMetadata, err) + } + } + + if in.Id == errorID { + return nil, fmt.Errorf("got error id: %v", in.Id) + } + + return &testpb.SimpleResponse{Id: in.Id}, nil +} + +func (s *testServer) FullDuplexCall(stream testpb.TestService_FullDuplexCallServer) error { + md, ok := metadata.FromIncomingContext(stream.Context()) + if ok { + if err := stream.SendHeader(md); err != nil { + return status.Errorf(status.Code(err), "stream.SendHeader(%v) = %v, want %v", md, err, nil) + } + stream.SetTrailer(testTrailerMetadata) + } + for { + in, err := stream.Recv() + if err == io.EOF { + // read done. + return nil + } + if err != nil { + return err + } + + if in.Id == errorID { + return fmt.Errorf("got error id: %v", in.Id) + } + + if err := stream.Send(&testpb.SimpleResponse{Id: in.Id}); err != nil { + return err + } + } +} + +func (s *testServer) ClientStreamCall(stream testpb.TestService_ClientStreamCallServer) error { + md, ok := metadata.FromIncomingContext(stream.Context()) + if ok { + if err := stream.SendHeader(md); err != nil { + return status.Errorf(status.Code(err), "stream.SendHeader(%v) = %v, want %v", md, err, nil) + } + stream.SetTrailer(testTrailerMetadata) + } + for { + in, err := stream.Recv() + if err == io.EOF { + // read done. + return stream.SendAndClose(&testpb.SimpleResponse{Id: int32(0)}) + } + if err != nil { + return err + } + + if in.Id == errorID { + return fmt.Errorf("got error id: %v", in.Id) + } + } +} + +func (s *testServer) ServerStreamCall(in *testpb.SimpleRequest, stream testpb.TestService_ServerStreamCallServer) error { + md, ok := metadata.FromIncomingContext(stream.Context()) + if ok { + if err := stream.SendHeader(md); err != nil { + return status.Errorf(status.Code(err), "stream.SendHeader(%v) = %v, want %v", md, err, nil) + } + stream.SetTrailer(testTrailerMetadata) + } + + if in.Id == errorID { + return fmt.Errorf("got error id: %v", in.Id) + } + + for i := 0; i < 5; i++ { + if err := stream.Send(&testpb.SimpleResponse{Id: in.Id}); err != nil { + return err + } + } + return nil +} + +// test is an end-to-end test. It should be created with the newTest +// func, modified as needed, and then started with its startServer method. +// It should be cleaned up with the tearDown method. +type test struct { + t *testing.T + + testServer testpb.TestServiceServer // nil means none + // srv and srvAddr are set once startServer is called. + srv *grpc.Server + srvAddr string // Server IP without port. + srvIP net.IP + srvPort int + + cc *grpc.ClientConn // nil until requested via clientConn + + // Fields for client address. Set by the service handler. + clientAddrMu sync.Mutex + clientIP net.IP + clientPort int +} + +func (te *test) tearDown() { + if te.cc != nil { + te.cc.Close() + te.cc = nil + } + te.srv.Stop() +} + +type testConfig struct { +} + +// newTest returns a new test using the provided testing.T and +// environment. It is returned with default values. Tests should +// modify it before calling its startServer and clientConn methods. +func newTest(t *testing.T, tc *testConfig) *test { + te := &test{ + t: t, + } + return te +} + +type listenerWrapper struct { + net.Listener + te *test +} + +func (lw *listenerWrapper) Accept() (net.Conn, error) { + conn, err := lw.Listener.Accept() + if err != nil { + return nil, err + } + lw.te.clientAddrMu.Lock() + lw.te.clientIP = conn.RemoteAddr().(*net.TCPAddr).IP + lw.te.clientPort = conn.RemoteAddr().(*net.TCPAddr).Port + lw.te.clientAddrMu.Unlock() + return conn, nil +} + +// startServer starts a gRPC server listening. Callers should defer a +// call to te.tearDown to clean up. +func (te *test) startServer(ts testpb.TestServiceServer) { + te.testServer = ts + lis, err := net.Listen("tcp", "localhost:0") + + lis = &listenerWrapper{ + Listener: lis, + te: te, + } + + if err != nil { + te.t.Fatalf("Failed to listen: %v", err) + } + var opts []grpc.ServerOption + s := grpc.NewServer(opts...) + te.srv = s + if te.testServer != nil { + testpb.RegisterTestServiceServer(s, te.testServer) + } + + go s.Serve(lis) + te.srvAddr = lis.Addr().String() + te.srvIP = lis.Addr().(*net.TCPAddr).IP + te.srvPort = lis.Addr().(*net.TCPAddr).Port +} + +func (te *test) clientConn() *grpc.ClientConn { + if te.cc != nil { + return te.cc + } + opts := []grpc.DialOption{grpc.WithInsecure(), grpc.WithBlock()} + + var err error + te.cc, err = grpc.Dial(te.srvAddr, opts...) + if err != nil { + te.t.Fatalf("Dial(%q) = %v", te.srvAddr, err) + } + return te.cc +} + +type rpcType int + +const ( + unaryRPC rpcType = iota + clientStreamRPC + serverStreamRPC + fullDuplexStreamRPC + cancelRPC +) + +type rpcConfig struct { + count int // Number of requests and responses for streaming RPCs. + success bool // Whether the RPC should succeed or return error. + callType rpcType // Type of RPC. +} + +func (te *test) doUnaryCall(c *rpcConfig) (*testpb.SimpleRequest, *testpb.SimpleResponse, error) { + var ( + resp *testpb.SimpleResponse + req *testpb.SimpleRequest + err error + ) + tc := testpb.NewTestServiceClient(te.clientConn()) + if c.success { + req = &testpb.SimpleRequest{Id: errorID + 1} + } else { + req = &testpb.SimpleRequest{Id: errorID} + } + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() + ctx = metadata.NewOutgoingContext(ctx, testMetadata) + + resp, err = tc.UnaryCall(ctx, req) + return req, resp, err +} + +func (te *test) doFullDuplexCallRoundtrip(c *rpcConfig) ([]*testpb.SimpleRequest, []*testpb.SimpleResponse, error) { + var ( + reqs []*testpb.SimpleRequest + resps []*testpb.SimpleResponse + err error + ) + tc := testpb.NewTestServiceClient(te.clientConn()) + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() + ctx = metadata.NewOutgoingContext(ctx, testMetadata) + + stream, err := tc.FullDuplexCall(ctx) + if err != nil { + return reqs, resps, err + } + + if c.callType == cancelRPC { + cancel() + return reqs, resps, context.Canceled + } + + var startID int32 + if !c.success { + startID = errorID + } + for i := 0; i < c.count; i++ { + req := &testpb.SimpleRequest{ + Id: int32(i) + startID, + } + reqs = append(reqs, req) + if err = stream.Send(req); err != nil { + return reqs, resps, err + } + var resp *testpb.SimpleResponse + if resp, err = stream.Recv(); err != nil { + return reqs, resps, err + } + resps = append(resps, resp) + } + if err = stream.CloseSend(); err != nil && err != io.EOF { + return reqs, resps, err + } + if _, err = stream.Recv(); err != io.EOF { + return reqs, resps, err + } + + return reqs, resps, nil +} + +func (te *test) doClientStreamCall(c *rpcConfig) ([]*testpb.SimpleRequest, *testpb.SimpleResponse, error) { + var ( + reqs []*testpb.SimpleRequest + resp *testpb.SimpleResponse + err error + ) + tc := testpb.NewTestServiceClient(te.clientConn()) + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() + ctx = metadata.NewOutgoingContext(ctx, testMetadata) + + stream, err := tc.ClientStreamCall(ctx) + if err != nil { + return reqs, resp, err + } + var startID int32 + if !c.success { + startID = errorID + } + for i := 0; i < c.count; i++ { + req := &testpb.SimpleRequest{ + Id: int32(i) + startID, + } + reqs = append(reqs, req) + if err = stream.Send(req); err != nil { + return reqs, resp, err + } + } + resp, err = stream.CloseAndRecv() + return reqs, resp, err +} + +func (te *test) doServerStreamCall(c *rpcConfig) (*testpb.SimpleRequest, []*testpb.SimpleResponse, error) { + var ( + req *testpb.SimpleRequest + resps []*testpb.SimpleResponse + err error + ) + + tc := testpb.NewTestServiceClient(te.clientConn()) + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() + ctx = metadata.NewOutgoingContext(ctx, testMetadata) + + var startID int32 + if !c.success { + startID = errorID + } + req = &testpb.SimpleRequest{Id: startID} + stream, err := tc.ServerStreamCall(ctx, req) + if err != nil { + return req, resps, err + } + for { + var resp *testpb.SimpleResponse + resp, err := stream.Recv() + if err == io.EOF { + return req, resps, nil + } else if err != nil { + return req, resps, err + } + resps = append(resps, resp) + } +} + +type expectedData struct { + te *test + cc *rpcConfig + + method string + requests []*testpb.SimpleRequest + responses []*testpb.SimpleResponse + err error +} + +func (ed *expectedData) newClientHeaderEntry(client bool, rpcID, inRPCID uint64) *pb.GrpcLogEntry { + logger := pb.GrpcLogEntry_LOGGER_CLIENT + var peer *pb.Address + if !client { + logger = pb.GrpcLogEntry_LOGGER_SERVER + ed.te.clientAddrMu.Lock() + peer = &pb.Address{ + Address: ed.te.clientIP.String(), + IpPort: uint32(ed.te.clientPort), + } + if ed.te.clientIP.To4() != nil { + peer.Type = pb.Address_TYPE_IPV4 + } else { + peer.Type = pb.Address_TYPE_IPV6 + } + ed.te.clientAddrMu.Unlock() + } + return &pb.GrpcLogEntry{ + Timestamp: nil, + CallId: rpcID, + SequenceIdWithinCall: inRPCID, + Type: pb.GrpcLogEntry_EVENT_TYPE_CLIENT_HEADER, + Logger: logger, + Payload: &pb.GrpcLogEntry_ClientHeader{ + ClientHeader: &pb.ClientHeader{ + Metadata: binarylog.MdToMetadataProto(testMetadata), + MethodName: ed.method, + Authority: ed.te.srvAddr, + }, + }, + Peer: peer, + } +} + +func (ed *expectedData) newServerHeaderEntry(client bool, rpcID, inRPCID uint64) *pb.GrpcLogEntry { + logger := pb.GrpcLogEntry_LOGGER_SERVER + var peer *pb.Address + if client { + logger = pb.GrpcLogEntry_LOGGER_CLIENT + peer = &pb.Address{ + Address: ed.te.srvIP.String(), + IpPort: uint32(ed.te.srvPort), + } + if ed.te.srvIP.To4() != nil { + peer.Type = pb.Address_TYPE_IPV4 + } else { + peer.Type = pb.Address_TYPE_IPV6 + } + } + return &pb.GrpcLogEntry{ + Timestamp: nil, + CallId: rpcID, + SequenceIdWithinCall: inRPCID, + Type: pb.GrpcLogEntry_EVENT_TYPE_SERVER_HEADER, + Logger: logger, + Payload: &pb.GrpcLogEntry_ServerHeader{ + ServerHeader: &pb.ServerHeader{ + Metadata: binarylog.MdToMetadataProto(testMetadata), + }, + }, + Peer: peer, + } +} + +func (ed *expectedData) newClientMessageEntry(client bool, rpcID, inRPCID uint64, msg *testpb.SimpleRequest) *pb.GrpcLogEntry { + logger := pb.GrpcLogEntry_LOGGER_CLIENT + if !client { + logger = pb.GrpcLogEntry_LOGGER_SERVER + } + data, err := proto.Marshal(msg) + if err != nil { + grpclog.Infof("binarylogging_testing: failed to marshal proto message: %v", err) + } + return &pb.GrpcLogEntry{ + Timestamp: nil, + CallId: rpcID, + SequenceIdWithinCall: inRPCID, + Type: pb.GrpcLogEntry_EVENT_TYPE_CLIENT_MESSAGE, + Logger: logger, + Payload: &pb.GrpcLogEntry_Message{ + Message: &pb.Message{ + Length: uint32(len(data)), + Data: data, + }, + }, + } +} + +func (ed *expectedData) newServerMessageEntry(client bool, rpcID, inRPCID uint64, msg *testpb.SimpleResponse) *pb.GrpcLogEntry { + logger := pb.GrpcLogEntry_LOGGER_CLIENT + if !client { + logger = pb.GrpcLogEntry_LOGGER_SERVER + } + data, err := proto.Marshal(msg) + if err != nil { + grpclog.Infof("binarylogging_testing: failed to marshal proto message: %v", err) + } + return &pb.GrpcLogEntry{ + Timestamp: nil, + CallId: rpcID, + SequenceIdWithinCall: inRPCID, + Type: pb.GrpcLogEntry_EVENT_TYPE_SERVER_MESSAGE, + Logger: logger, + Payload: &pb.GrpcLogEntry_Message{ + Message: &pb.Message{ + Length: uint32(len(data)), + Data: data, + }, + }, + } +} + +func (ed *expectedData) newHalfCloseEntry(client bool, rpcID, inRPCID uint64) *pb.GrpcLogEntry { + logger := pb.GrpcLogEntry_LOGGER_CLIENT + if !client { + logger = pb.GrpcLogEntry_LOGGER_SERVER + } + return &pb.GrpcLogEntry{ + Timestamp: nil, + CallId: rpcID, + SequenceIdWithinCall: inRPCID, + Type: pb.GrpcLogEntry_EVENT_TYPE_CLIENT_HALF_CLOSE, + Payload: nil, // No payload here. + Logger: logger, + } +} + +func (ed *expectedData) newServerTrailerEntry(client bool, rpcID, inRPCID uint64, stErr error) *pb.GrpcLogEntry { + logger := pb.GrpcLogEntry_LOGGER_SERVER + var peer *pb.Address + if client { + logger = pb.GrpcLogEntry_LOGGER_CLIENT + peer = &pb.Address{ + Address: ed.te.srvIP.String(), + IpPort: uint32(ed.te.srvPort), + } + if ed.te.srvIP.To4() != nil { + peer.Type = pb.Address_TYPE_IPV4 + } else { + peer.Type = pb.Address_TYPE_IPV6 + } + } + st, ok := status.FromError(stErr) + if !ok { + grpclog.Info("binarylogging: error in trailer is not a status error") + } + stProto := st.Proto() + var ( + detailsBytes []byte + err error + ) + if stProto != nil && len(stProto.Details) != 0 { + detailsBytes, err = proto.Marshal(stProto) + if err != nil { + grpclog.Infof("binarylogging: failed to marshal status proto: %v", err) + } + } + return &pb.GrpcLogEntry{ + Timestamp: nil, + CallId: rpcID, + SequenceIdWithinCall: inRPCID, + Type: pb.GrpcLogEntry_EVENT_TYPE_SERVER_TRAILER, + Logger: logger, + Payload: &pb.GrpcLogEntry_Trailer{ + Trailer: &pb.Trailer{ + Metadata: binarylog.MdToMetadataProto(testTrailerMetadata), + // st will be nil if err was not a status error, but nil is ok. + StatusCode: uint32(st.Code()), + StatusMessage: st.Message(), + StatusDetails: detailsBytes, + }, + }, + Peer: peer, + } +} + +func (ed *expectedData) newCancelEntry(rpcID, inRPCID uint64) *pb.GrpcLogEntry { + return &pb.GrpcLogEntry{ + Timestamp: nil, + CallId: rpcID, + SequenceIdWithinCall: inRPCID, + Type: pb.GrpcLogEntry_EVENT_TYPE_CANCEL, + Logger: pb.GrpcLogEntry_LOGGER_CLIENT, + Payload: nil, + } +} + +func (ed *expectedData) toClientLogEntries() []*pb.GrpcLogEntry { + var ( + ret []*pb.GrpcLogEntry + idInRPC uint64 = 1 + ) + ret = append(ret, ed.newClientHeaderEntry(true, globalRPCID, idInRPC)) + idInRPC++ + + switch ed.cc.callType { + case unaryRPC, fullDuplexStreamRPC: + for i := 0; i < len(ed.requests); i++ { + ret = append(ret, ed.newClientMessageEntry(true, globalRPCID, idInRPC, ed.requests[i])) + idInRPC++ + if i == 0 { + // First message, append ServerHeader. + ret = append(ret, ed.newServerHeaderEntry(true, globalRPCID, idInRPC)) + idInRPC++ + } + if !ed.cc.success { + // There is no response in the RPC error case. + continue + } + ret = append(ret, ed.newServerMessageEntry(true, globalRPCID, idInRPC, ed.responses[i])) + idInRPC++ + } + if ed.cc.success && ed.cc.callType == fullDuplexStreamRPC { + ret = append(ret, ed.newHalfCloseEntry(true, globalRPCID, idInRPC)) + idInRPC++ + } + case clientStreamRPC, serverStreamRPC: + for i := 0; i < len(ed.requests); i++ { + ret = append(ret, ed.newClientMessageEntry(true, globalRPCID, idInRPC, ed.requests[i])) + idInRPC++ + } + if ed.cc.callType == clientStreamRPC { + ret = append(ret, ed.newHalfCloseEntry(true, globalRPCID, idInRPC)) + idInRPC++ + } + ret = append(ret, ed.newServerHeaderEntry(true, globalRPCID, idInRPC)) + idInRPC++ + if ed.cc.success { + for i := 0; i < len(ed.responses); i++ { + ret = append(ret, ed.newServerMessageEntry(true, globalRPCID, idInRPC, ed.responses[0])) + idInRPC++ + } + } + } + + if ed.cc.callType == cancelRPC { + ret = append(ret, ed.newCancelEntry(globalRPCID, idInRPC)) + idInRPC++ + } else { + ret = append(ret, ed.newServerTrailerEntry(true, globalRPCID, idInRPC, ed.err)) + idInRPC++ + } + return ret +} + +func (ed *expectedData) toServerLogEntries() []*pb.GrpcLogEntry { + var ( + ret []*pb.GrpcLogEntry + idInRPC uint64 = 1 + ) + ret = append(ret, ed.newClientHeaderEntry(false, globalRPCID, idInRPC)) + idInRPC++ + + switch ed.cc.callType { + case unaryRPC: + ret = append(ret, ed.newClientMessageEntry(false, globalRPCID, idInRPC, ed.requests[0])) + idInRPC++ + ret = append(ret, ed.newServerHeaderEntry(false, globalRPCID, idInRPC)) + idInRPC++ + if ed.cc.success { + ret = append(ret, ed.newServerMessageEntry(false, globalRPCID, idInRPC, ed.responses[0])) + idInRPC++ + } + case fullDuplexStreamRPC: + ret = append(ret, ed.newServerHeaderEntry(false, globalRPCID, idInRPC)) + idInRPC++ + for i := 0; i < len(ed.requests); i++ { + ret = append(ret, ed.newClientMessageEntry(false, globalRPCID, idInRPC, ed.requests[i])) + idInRPC++ + if !ed.cc.success { + // There is no response in the RPC error case. + continue + } + ret = append(ret, ed.newServerMessageEntry(false, globalRPCID, idInRPC, ed.responses[i])) + idInRPC++ + } + + if ed.cc.success && ed.cc.callType == fullDuplexStreamRPC { + ret = append(ret, ed.newHalfCloseEntry(false, globalRPCID, idInRPC)) + idInRPC++ + } + case clientStreamRPC: + ret = append(ret, ed.newServerHeaderEntry(false, globalRPCID, idInRPC)) + idInRPC++ + for i := 0; i < len(ed.requests); i++ { + ret = append(ret, ed.newClientMessageEntry(false, globalRPCID, idInRPC, ed.requests[i])) + idInRPC++ + } + if ed.cc.success { + ret = append(ret, ed.newHalfCloseEntry(false, globalRPCID, idInRPC)) + idInRPC++ + ret = append(ret, ed.newServerMessageEntry(false, globalRPCID, idInRPC, ed.responses[0])) + idInRPC++ + } + case serverStreamRPC: + ret = append(ret, ed.newClientMessageEntry(false, globalRPCID, idInRPC, ed.requests[0])) + idInRPC++ + ret = append(ret, ed.newServerHeaderEntry(false, globalRPCID, idInRPC)) + idInRPC++ + for i := 0; i < len(ed.responses); i++ { + ret = append(ret, ed.newServerMessageEntry(false, globalRPCID, idInRPC, ed.responses[0])) + idInRPC++ + } + } + + ret = append(ret, ed.newServerTrailerEntry(false, globalRPCID, idInRPC, ed.err)) + idInRPC++ + + return ret +} + +func runRPCs(t *testing.T, tc *testConfig, cc *rpcConfig) *expectedData { + te := newTest(t, tc) + te.startServer(&testServer{te: te}) + defer te.tearDown() + + expect := &expectedData{ + te: te, + cc: cc, + } + + switch cc.callType { + case unaryRPC: + expect.method = "/grpc.testing.TestService/UnaryCall" + req, resp, err := te.doUnaryCall(cc) + expect.requests = []*testpb.SimpleRequest{req} + expect.responses = []*testpb.SimpleResponse{resp} + expect.err = err + case clientStreamRPC: + expect.method = "/grpc.testing.TestService/ClientStreamCall" + reqs, resp, err := te.doClientStreamCall(cc) + expect.requests = reqs + expect.responses = []*testpb.SimpleResponse{resp} + expect.err = err + case serverStreamRPC: + expect.method = "/grpc.testing.TestService/ServerStreamCall" + req, resps, err := te.doServerStreamCall(cc) + expect.responses = resps + expect.requests = []*testpb.SimpleRequest{req} + expect.err = err + case fullDuplexStreamRPC, cancelRPC: + expect.method = "/grpc.testing.TestService/FullDuplexCall" + expect.requests, expect.responses, expect.err = te.doFullDuplexCallRoundtrip(cc) + } + if cc.success != (expect.err == nil) { + t.Fatalf("cc.success: %v, got error: %v", cc.success, expect.err) + } + te.cc.Close() + te.srv.GracefulStop() // Wait for the server to stop. + + return expect +} + +// equalLogEntry sorts the metadata entries by key (to compare metadata). +// +// This function is typically called with only two entries. It's written in this +// way so the code can be put in a for loop instead of copied twice. +func equalLogEntry(entries ...*pb.GrpcLogEntry) (equal bool) { + for i, e := range entries { + // Clear out some fields we don't compare. + e.Timestamp = nil + e.CallId = 0 // CallID is global to the binary, hard to compare. + if h := e.GetClientHeader(); h != nil { + h.Timeout = nil + tmp := h.Metadata.Entry[:0] + for _, e := range h.Metadata.Entry { + tmp = append(tmp, e) + } + h.Metadata.Entry = tmp + sort.Slice(h.Metadata.Entry, func(i, j int) bool { return h.Metadata.Entry[i].Key < h.Metadata.Entry[j].Key }) + } + if h := e.GetServerHeader(); h != nil { + tmp := h.Metadata.Entry[:0] + for _, e := range h.Metadata.Entry { + tmp = append(tmp, e) + } + h.Metadata.Entry = tmp + sort.Slice(h.Metadata.Entry, func(i, j int) bool { return h.Metadata.Entry[i].Key < h.Metadata.Entry[j].Key }) + } + if h := e.GetTrailer(); h != nil { + sort.Slice(h.Metadata.Entry, func(i, j int) bool { return h.Metadata.Entry[i].Key < h.Metadata.Entry[j].Key }) + } + + if i > 0 && !proto.Equal(e, entries[i-1]) { + return false + } + } + return true +} + +func testClientBinaryLog(t *testing.T, c *rpcConfig) error { + defer testSink.clear() + expect := runRPCs(t, &testConfig{}, c) + want := expect.toClientLogEntries() + var got []*pb.GrpcLogEntry + // In racy cases, some entries are not logged when the RPC is finished (e.g. + // context.Cancel). + // + // Check 10 times, with a sleep of 1/100 seconds between each check. Makes + // it an 1-second wait in total. + for i := 0; i < 10; i++ { + got = testSink.logEntries(true) // all client entries. + if len(want) == len(got) { + break + } + time.Sleep(100 * time.Millisecond) + } + if len(want) != len(got) { + for i, e := range want { + t.Errorf("in want: %d, %s", i, e.GetType()) + } + for i, e := range got { + t.Errorf("in got: %d, %s", i, e.GetType()) + } + return fmt.Errorf("didn't get same amount of log entries, want: %d, got: %d", len(want), len(got)) + } + var errored bool + for i := 0; i < len(got); i++ { + if !equalLogEntry(want[i], got[i]) { + t.Errorf("entry: %d, want %+v, got %+v", i, want[i], got[i]) + errored = true + } + } + if errored { + return fmt.Errorf("test failed") + } + return nil +} + +func TestClientBinaryLogUnaryRPC(t *testing.T) { + if err := testClientBinaryLog(t, &rpcConfig{success: true, callType: unaryRPC}); err != nil { + t.Fatal(err) + } +} + +func TestClientBinaryLogUnaryRPCError(t *testing.T) { + if err := testClientBinaryLog(t, &rpcConfig{success: false, callType: unaryRPC}); err != nil { + t.Fatal(err) + } +} + +func TestClientBinaryLogClientStreamRPC(t *testing.T) { + count := 5 + if err := testClientBinaryLog(t, &rpcConfig{count: count, success: true, callType: clientStreamRPC}); err != nil { + t.Fatal(err) + } +} + +func TestClientBinaryLogClientStreamRPCError(t *testing.T) { + count := 1 + if err := testClientBinaryLog(t, &rpcConfig{count: count, success: false, callType: clientStreamRPC}); err != nil { + t.Fatal(err) + } +} + +func TestClientBinaryLogServerStreamRPC(t *testing.T) { + count := 5 + if err := testClientBinaryLog(t, &rpcConfig{count: count, success: true, callType: serverStreamRPC}); err != nil { + t.Fatal(err) + } +} + +func TestClientBinaryLogServerStreamRPCError(t *testing.T) { + count := 5 + if err := testClientBinaryLog(t, &rpcConfig{count: count, success: false, callType: serverStreamRPC}); err != nil { + t.Fatal(err) + } +} + +func TestClientBinaryLogFullDuplexRPC(t *testing.T) { + count := 5 + if err := testClientBinaryLog(t, &rpcConfig{count: count, success: true, callType: fullDuplexStreamRPC}); err != nil { + t.Fatal(err) + } +} + +func TestClientBinaryLogFullDuplexRPCError(t *testing.T) { + count := 5 + if err := testClientBinaryLog(t, &rpcConfig{count: count, success: false, callType: fullDuplexStreamRPC}); err != nil { + t.Fatal(err) + } +} + +func TestClientBinaryLogCancel(t *testing.T) { + count := 5 + if err := testClientBinaryLog(t, &rpcConfig{count: count, success: false, callType: cancelRPC}); err != nil { + t.Fatal(err) + } +} + +func testServerBinaryLog(t *testing.T, c *rpcConfig) error { + defer testSink.clear() + expect := runRPCs(t, &testConfig{}, c) + want := expect.toServerLogEntries() + var got []*pb.GrpcLogEntry + // In racy cases, some entries are not logged when the RPC is finished (e.g. + // context.Cancel). This is unlikely to happen on server side, but it does + // no harm to retry. + // + // Check 10 times, with a sleep of 1/100 seconds between each check. Makes + // it an 1-second wait in total. + for i := 0; i < 10; i++ { + got = testSink.logEntries(false) // all server entries. + if len(want) == len(got) { + break + } + time.Sleep(100 * time.Millisecond) + } + + if len(want) != len(got) { + for i, e := range want { + t.Errorf("in want: %d, %s", i, e.GetType()) + } + for i, e := range got { + t.Errorf("in got: %d, %s", i, e.GetType()) + } + return fmt.Errorf("didn't get same amount of log entries, want: %d, got: %d", len(want), len(got)) + } + var errored bool + for i := 0; i < len(got); i++ { + if !equalLogEntry(want[i], got[i]) { + t.Errorf("entry: %d, want %+v, got %+v", i, want[i], got[i]) + errored = true + } + } + if errored { + return fmt.Errorf("test failed") + } + return nil +} + +func TestServerBinaryLogUnaryRPC(t *testing.T) { + if err := testServerBinaryLog(t, &rpcConfig{success: true, callType: unaryRPC}); err != nil { + t.Fatal(err) + } +} + +func TestServerBinaryLogUnaryRPCError(t *testing.T) { + if err := testServerBinaryLog(t, &rpcConfig{success: false, callType: unaryRPC}); err != nil { + t.Fatal(err) + } +} + +func TestServerBinaryLogClientStreamRPC(t *testing.T) { + count := 5 + if err := testServerBinaryLog(t, &rpcConfig{count: count, success: true, callType: clientStreamRPC}); err != nil { + t.Fatal(err) + } +} + +func TestServerBinaryLogClientStreamRPCError(t *testing.T) { + count := 1 + if err := testServerBinaryLog(t, &rpcConfig{count: count, success: false, callType: clientStreamRPC}); err != nil { + t.Fatal(err) + } +} + +func TestServerBinaryLogServerStreamRPC(t *testing.T) { + count := 5 + if err := testServerBinaryLog(t, &rpcConfig{count: count, success: true, callType: serverStreamRPC}); err != nil { + t.Fatal(err) + } +} + +func TestServerBinaryLogServerStreamRPCError(t *testing.T) { + count := 5 + if err := testServerBinaryLog(t, &rpcConfig{count: count, success: false, callType: serverStreamRPC}); err != nil { + t.Fatal(err) + } +} + +func TestServerBinaryLogFullDuplex(t *testing.T) { + count := 5 + if err := testServerBinaryLog(t, &rpcConfig{count: count, success: true, callType: fullDuplexStreamRPC}); err != nil { + t.Fatal(err) + } +} + +func TestServerBinaryLogFullDuplexError(t *testing.T) { + count := 5 + if err := testServerBinaryLog(t, &rpcConfig{count: count, success: false, callType: fullDuplexStreamRPC}); err != nil { + t.Fatal(err) + } +} diff --git a/vendor/google.golang.org/grpc/internal/binarylog/binarylog_test.go b/vendor/google.golang.org/grpc/internal/binarylog/binarylog_test.go index acfbbd440..62500a8d1 100644 --- a/vendor/google.golang.org/grpc/internal/binarylog/binarylog_test.go +++ b/vendor/google.golang.org/grpc/internal/binarylog/binarylog_test.go @@ -78,12 +78,12 @@ func TestGetMethodLogger(t *testing.T) { }, } for _, tc := range testCases { - l := newLoggerFromConfigString(tc.in) + l := NewLoggerFromConfigString(tc.in) if l == nil { t.Errorf("in: %q, failed to create logger from config string", tc.in) continue } - ml := l.GetMethodLogger(tc.method) + ml := l.getMethodLogger(tc.method) if ml == nil { t.Errorf("in: %q, method logger is nil, want non-nil", tc.in) continue @@ -134,12 +134,12 @@ func TestGetMethodLoggerOff(t *testing.T) { }, } for _, tc := range testCases { - l := newLoggerFromConfigString(tc.in) + l := NewLoggerFromConfigString(tc.in) if l == nil { t.Errorf("in: %q, failed to create logger from config string", tc.in) continue } - ml := l.GetMethodLogger(tc.method) + ml := l.getMethodLogger(tc.method) if ml != nil { t.Errorf("in: %q, method logger is non-nil, want nil", tc.in) } diff --git a/vendor/google.golang.org/grpc/internal/binarylog/binarylog_testutil.go b/vendor/google.golang.org/grpc/internal/binarylog/binarylog_testutil.go new file mode 100644 index 000000000..1ee00a39a --- /dev/null +++ b/vendor/google.golang.org/grpc/internal/binarylog/binarylog_testutil.go @@ -0,0 +1,42 @@ +/* + * + * Copyright 2018 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// This file contains exported variables/functions that are exported for testing +// only. +// +// An ideal way for this would be to put those in a *_test.go but in binarylog +// package. But this doesn't work with staticcheck with go module. Error was: +// "MdToMetadataProto not declared by package binarylog". This could be caused +// by the way staticcheck looks for files for a certain package, which doesn't +// support *_test.go files. +// +// Move those to binary_test.go when staticcheck is fixed. + +package binarylog + +var ( + // AllLogger is a logger that logs all headers/messages for all RPCs. It's + // for testing only. + AllLogger = NewLoggerFromConfigString("*") + // MdToMetadataProto converts metadata to a binary logging proto message. + // It's for testing only. + MdToMetadataProto = mdToMetadataProto + // AddrToProto converts an address to a binary logging proto message. It's + // for testing only. + AddrToProto = addrToProto +) diff --git a/vendor/google.golang.org/grpc/internal/binarylog/env_config.go b/vendor/google.golang.org/grpc/internal/binarylog/env_config.go index ad234706c..eb188eae5 100644 --- a/vendor/google.golang.org/grpc/internal/binarylog/env_config.go +++ b/vendor/google.golang.org/grpc/internal/binarylog/env_config.go @@ -28,7 +28,8 @@ import ( "google.golang.org/grpc/grpclog" ) -// newLoggerFromConfigString reads the string and build a logger. +// NewLoggerFromConfigString reads the string and build a logger. It can be used +// to build a new logger and assign it to binarylog.Logger. // // Example filter config strings: // - "" Nothing will be logged @@ -43,7 +44,10 @@ import ( // // If two configs exist for one certain method or service, the one specified // later overrides the privous config. -func newLoggerFromConfigString(s string) *logger { +func NewLoggerFromConfigString(s string) Logger { + if s == "" { + return nil + } l := newEmptyLogger() methods := strings.Split(s, ",") for _, method := range methods { diff --git a/vendor/google.golang.org/grpc/internal/binarylog/env_config_test.go b/vendor/google.golang.org/grpc/internal/binarylog/env_config_test.go index 446801628..aced5d558 100644 --- a/vendor/google.golang.org/grpc/internal/binarylog/env_config_test.go +++ b/vendor/google.golang.org/grpc/internal/binarylog/env_config_test.go @@ -34,7 +34,7 @@ func TestNewLoggerFromConfigString(t *testing.T) { fullM2 = s1 + "/" + m2 ) c := fmt.Sprintf("*{h:1;m:2},%s{h},%s{m},%s{h;m}", s1+"/*", fullM1, fullM2) - l := newLoggerFromConfigString(c) + l := NewLoggerFromConfigString(c).(*logger) if l.all.hdr != 1 || l.all.msg != 2 { t.Errorf("l.all = %#v, want headerLen: 1, messageLen: 2", l.all) @@ -83,7 +83,7 @@ func TestNewLoggerFromConfigStringInvalid(t *testing.T) { "*,*{h:1;m:1}", } for _, tc := range testCases { - l := newLoggerFromConfigString(tc) + l := NewLoggerFromConfigString(tc) if l != nil { t.Errorf("With config %q, want logger %v, got %v", tc, nil, l) } diff --git a/vendor/google.golang.org/grpc/internal/binarylog/method_logger.go b/vendor/google.golang.org/grpc/internal/binarylog/method_logger.go index 9590b8589..b06cdd4d4 100644 --- a/vendor/google.golang.org/grpc/internal/binarylog/method_logger.go +++ b/vendor/google.golang.org/grpc/internal/binarylog/method_logger.go @@ -206,8 +206,8 @@ func (c *ServerHeader) toProto() *pb.GrpcLogEntry { // ClientMessage configs the binary log entry to be a ClientMessage entry. type ClientMessage struct { OnClientSide bool - // Message should only be a proto.Message. Could add support for other - // message types in the future. + // Message can be a proto.Message or []byte. Other messages formats are not + // supported. Message interface{} } @@ -246,8 +246,8 @@ func (c *ClientMessage) toProto() *pb.GrpcLogEntry { // ServerMessage configs the binary log entry to be a ServerMessage entry. type ServerMessage struct { OnClientSide bool - // Message should only be a proto.Message. Could add support for other - // message types in the future. + // Message can be a proto.Message or []byte. Other messages formats are not + // supported. Message interface{} } @@ -372,7 +372,7 @@ func (c *Cancel) toProto() *pb.GrpcLogEntry { // omitted. func metadataKeyOmit(key string) bool { switch key { - case "lb-token", ":path", ":authority", "content-encoding", "user-agent", "te": + case "lb-token", ":path", ":authority", "content-encoding", "content-type", "user-agent", "te": return true case "grpc-trace-bin": // grpc-trace-bin is special because it's visiable to users. return false diff --git a/vendor/google.golang.org/grpc/internal/binarylog/method_logger_test.go b/vendor/google.golang.org/grpc/internal/binarylog/method_logger_test.go index e5671a5b7..177adb6a0 100644 --- a/vendor/google.golang.org/grpc/internal/binarylog/method_logger_test.go +++ b/vendor/google.golang.org/grpc/internal/binarylog/method_logger_test.go @@ -37,7 +37,7 @@ func TestLog(t *testing.T) { ml := newMethodLogger(10, 10) // Set sink to testing buffer. buf := bytes.NewBuffer(nil) - ml.sink = NewWriterSink(buf) + ml.sink = newWriterSink(buf) addr := "1.2.3.4" port := 790 @@ -337,7 +337,7 @@ func TestLog(t *testing.T) { tc.want.SequenceIdWithinCall = uint64(i + 1) ml.Log(tc.config) inSink := new(pb.GrpcLogEntry) - if err := proto.Unmarshal(buf.Bytes(), inSink); err != nil { + if err := proto.Unmarshal(buf.Bytes()[4:], inSink); err != nil { t.Errorf("failed to unmarshal bytes in sink to proto: %v", err) continue } diff --git a/vendor/google.golang.org/grpc/internal/binarylog/sink.go b/vendor/google.golang.org/grpc/internal/binarylog/sink.go index 05c694a58..20d044f0f 100644 --- a/vendor/google.golang.org/grpc/internal/binarylog/sink.go +++ b/vendor/google.golang.org/grpc/internal/binarylog/sink.go @@ -19,7 +19,13 @@ package binarylog import ( + "bufio" + "encoding/binary" + "fmt" "io" + "io/ioutil" + "sync" + "time" "github.com/golang/protobuf/proto" pb "google.golang.org/grpc/binarylog/grpc_binarylog_v1" @@ -34,20 +40,34 @@ var ( // // Not thread safe. Only set during initialization. func SetDefaultSink(s Sink) { + if defaultSink != nil { + defaultSink.Close() + } defaultSink = s } // Sink writes log entry into the binary log sink. type Sink interface { - Write(*pb.GrpcLogEntry) + // Write will be called to write the log entry into the sink. + // + // It should be thread-safe so it can be called in parallel. + Write(*pb.GrpcLogEntry) error + // Close will be called when the Sink is replaced by a new Sink. + Close() error } type noopSink struct{} -func (ns *noopSink) Write(*pb.GrpcLogEntry) {} +func (ns *noopSink) Write(*pb.GrpcLogEntry) error { return nil } +func (ns *noopSink) Close() error { return nil } -// NewWriterSink creates a binary log sink with the given writer. -func NewWriterSink(w io.Writer) Sink { +// newWriterSink creates a binary log sink with the given writer. +// +// Write() marshalls the proto message and writes it to the given writer. Each +// message is prefixed with a 4 byte big endian unsigned integer as the length. +// +// No buffer is done, Close() doesn't try to close the writer. +func newWriterSink(w io.Writer) *writerSink { return &writerSink{out: w} } @@ -55,10 +75,88 @@ type writerSink struct { out io.Writer } -func (fs *writerSink) Write(e *pb.GrpcLogEntry) { +func (ws *writerSink) Write(e *pb.GrpcLogEntry) error { b, err := proto.Marshal(e) if err != nil { grpclog.Infof("binary logging: failed to marshal proto message: %v", err) } - fs.out.Write(b) + hdr := make([]byte, 4) + binary.BigEndian.PutUint32(hdr, uint32(len(b))) + if _, err := ws.out.Write(hdr); err != nil { + return err + } + if _, err := ws.out.Write(b); err != nil { + return err + } + return nil +} + +func (ws *writerSink) Close() error { return nil } + +type bufWriteCloserSink struct { + mu sync.Mutex + closer io.Closer + out *writerSink // out is built on buf. + buf *bufio.Writer // buf is kept for flush. + + writeStartOnce sync.Once + writeTicker *time.Ticker +} + +func (fs *bufWriteCloserSink) Write(e *pb.GrpcLogEntry) error { + // Start the write loop when Write is called. + fs.writeStartOnce.Do(fs.startFlushGoroutine) + fs.mu.Lock() + if err := fs.out.Write(e); err != nil { + fs.mu.Unlock() + return err + } + fs.mu.Unlock() + return nil +} + +const ( + bufFlushDuration = 60 * time.Second +) + +func (fs *bufWriteCloserSink) startFlushGoroutine() { + fs.writeTicker = time.NewTicker(bufFlushDuration) + go func() { + for range fs.writeTicker.C { + fs.mu.Lock() + fs.buf.Flush() + fs.mu.Unlock() + } + }() +} + +func (fs *bufWriteCloserSink) Close() error { + if fs.writeTicker != nil { + fs.writeTicker.Stop() + } + fs.mu.Lock() + fs.buf.Flush() + fs.closer.Close() + fs.out.Close() + fs.mu.Unlock() + return nil +} + +func newBufWriteCloserSink(o io.WriteCloser) Sink { + bufW := bufio.NewWriter(o) + return &bufWriteCloserSink{ + closer: o, + out: newWriterSink(bufW), + buf: bufW, + } +} + +// NewTempFileSink creates a temp file and returns a Sink that writes to this +// file. +func NewTempFileSink() (Sink, error) { + tempFile, err := ioutil.TempFile("/tmp", "grpcgo_binarylog_*.txt") + if err != nil { + return nil, fmt.Errorf("failed to create temp file: %v", err) + } + return newBufWriteCloserSink(tempFile), nil } diff --git a/vendor/google.golang.org/grpc/internal/channelz/funcs.go b/vendor/google.golang.org/grpc/internal/channelz/funcs.go index 6e729fa63..3021a31a5 100644 --- a/vendor/google.golang.org/grpc/internal/channelz/funcs.go +++ b/vendor/google.golang.org/grpc/internal/channelz/funcs.go @@ -558,7 +558,7 @@ func (c *channelMap) GetServerSockets(id int64, startID int64) ([]*SocketMetric, ids = append(ids, k) } sort.Sort(int64Slice(ids)) - idx := sort.Search(len(ids), func(i int) bool { return ids[i] >= id }) + idx := sort.Search(len(ids), func(i int) bool { return ids[i] >= startID }) count := 0 var end bool for i, v := range ids[idx:] { @@ -601,8 +601,11 @@ func (c *channelMap) GetChannel(id int64) *ChannelMetric { } cm.NestedChans = copyMap(cn.nestedChans) cm.SubChans = copyMap(cn.subChans) + // cn.c can be set to &dummyChannel{} when deleteSelfFromMap is called. Save a copy of cn.c when + // holding the lock to prevent potential data race. + chanCopy := cn.c c.mu.RUnlock() - cm.ChannelData = cn.c.ChannelzMetric() + cm.ChannelData = chanCopy.ChannelzMetric() cm.ID = cn.id cm.RefName = cn.refName cm.Trace = cn.trace.dumpData() @@ -620,8 +623,11 @@ func (c *channelMap) GetSubChannel(id int64) *SubChannelMetric { return nil } cm.Sockets = copyMap(sc.sockets) + // sc.c can be set to &dummyChannel{} when deleteSelfFromMap is called. Save a copy of sc.c when + // holding the lock to prevent potential data race. + chanCopy := sc.c c.mu.RUnlock() - cm.ChannelData = sc.c.ChannelzMetric() + cm.ChannelData = chanCopy.ChannelzMetric() cm.ID = sc.id cm.RefName = sc.refName cm.Trace = sc.trace.dumpData() diff --git a/vendor/google.golang.org/grpc/internal/channelz/types_linux.go b/vendor/google.golang.org/grpc/internal/channelz/types_linux.go index 07215396d..692dd6181 100644 --- a/vendor/google.golang.org/grpc/internal/channelz/types_linux.go +++ b/vendor/google.golang.org/grpc/internal/channelz/types_linux.go @@ -1,4 +1,4 @@ -// +build !appengine,go1.7 +// +build !appengine /* * diff --git a/vendor/google.golang.org/grpc/internal/channelz/types_nonlinux.go b/vendor/google.golang.org/grpc/internal/channelz/types_nonlinux.go index b24600480..79edbefc4 100644 --- a/vendor/google.golang.org/grpc/internal/channelz/types_nonlinux.go +++ b/vendor/google.golang.org/grpc/internal/channelz/types_nonlinux.go @@ -1,4 +1,4 @@ -// +build !linux appengine !go1.7 +// +build !linux appengine /* * diff --git a/vendor/google.golang.org/grpc/internal/channelz/util_linux_go19.go b/vendor/google.golang.org/grpc/internal/channelz/util_linux.go similarity index 96% rename from vendor/google.golang.org/grpc/internal/channelz/util_linux_go19.go rename to vendor/google.golang.org/grpc/internal/channelz/util_linux.go index e1e9e32d7..fdf409d55 100644 --- a/vendor/google.golang.org/grpc/internal/channelz/util_linux_go19.go +++ b/vendor/google.golang.org/grpc/internal/channelz/util_linux.go @@ -1,4 +1,4 @@ -// +build linux,go1.9,!appengine +// +build linux,!appengine /* * diff --git a/vendor/google.golang.org/grpc/internal/channelz/util_nonlinux_pre_go19.go b/vendor/google.golang.org/grpc/internal/channelz/util_nonlinux.go similarity index 95% rename from vendor/google.golang.org/grpc/internal/channelz/util_nonlinux_pre_go19.go rename to vendor/google.golang.org/grpc/internal/channelz/util_nonlinux.go index 1d4da952d..8864a0811 100644 --- a/vendor/google.golang.org/grpc/internal/channelz/util_nonlinux_pre_go19.go +++ b/vendor/google.golang.org/grpc/internal/channelz/util_nonlinux.go @@ -1,4 +1,4 @@ -// +build !linux !go1.9 appengine +// +build !linux appengine /* * diff --git a/vendor/google.golang.org/grpc/internal/envconfig/envconfig.go b/vendor/google.golang.org/grpc/internal/envconfig/envconfig.go index 3ee8740f1..a3e02b661 100644 --- a/vendor/google.golang.org/grpc/internal/envconfig/envconfig.go +++ b/vendor/google.golang.org/grpc/internal/envconfig/envconfig.go @@ -25,11 +25,45 @@ import ( ) const ( - prefix = "GRPC_GO_" - retryStr = prefix + "RETRY" + prefix = "GRPC_GO_" + retryStr = prefix + "RETRY" + requireHandshakeStr = prefix + "REQUIRE_HANDSHAKE" +) + +// RequireHandshakeSetting describes the settings for handshaking. +type RequireHandshakeSetting int + +const ( + // RequireHandshakeHybrid (default, deprecated) indicates to wait for + // handshake before considering a connection ready, but wait before + // considering successful. + RequireHandshakeHybrid RequireHandshakeSetting = iota + // RequireHandshakeOn (default after the 1.17 release) indicates to wait + // for handshake before considering a connection ready/successful. + RequireHandshakeOn + // RequireHandshakeOff indicates to not wait for handshake before + // considering a connection ready/successful. + RequireHandshakeOff ) var ( // Retry is set if retry is explicitly enabled via "GRPC_GO_RETRY=on". Retry = strings.EqualFold(os.Getenv(retryStr), "on") + // RequireHandshake is set based upon the GRPC_GO_REQUIRE_HANDSHAKE + // environment variable. + // + // Will be removed after the 1.18 release. + RequireHandshake RequireHandshakeSetting ) + +func init() { + switch strings.ToLower(os.Getenv(requireHandshakeStr)) { + case "on": + RequireHandshake = RequireHandshakeOn + case "off": + RequireHandshake = RequireHandshakeOff + case "hybrid": + // Will be removed after the 1.17 release. + RequireHandshake = RequireHandshakeHybrid + } +} diff --git a/vendor/google.golang.org/grpc/internal/grpcsync/event.go b/vendor/google.golang.org/grpc/internal/grpcsync/event.go index 85dbea886..fbe697c37 100644 --- a/vendor/google.golang.org/grpc/internal/grpcsync/event.go +++ b/vendor/google.golang.org/grpc/internal/grpcsync/event.go @@ -20,12 +20,16 @@ // the sync package. package grpcsync -import "sync" +import ( + "sync" + "sync/atomic" +) // Event represents a one-time event that may occur in the future. type Event struct { - c chan struct{} - o sync.Once + fired int32 + c chan struct{} + o sync.Once } // Fire causes e to complete. It is safe to call multiple times, and @@ -34,6 +38,7 @@ type Event struct { func (e *Event) Fire() bool { ret := false e.o.Do(func() { + atomic.StoreInt32(&e.fired, 1) close(e.c) ret = true }) @@ -47,12 +52,7 @@ func (e *Event) Done() <-chan struct{} { // HasFired returns true if Fire has been called. func (e *Event) HasFired() bool { - select { - case <-e.c: - return true - default: - return false - } + return atomic.LoadInt32(&e.fired) == 1 } // NewEvent returns a new, ready-to-use Event. diff --git a/vendor/google.golang.org/grpc/internal/internal.go b/vendor/google.golang.org/grpc/internal/internal.go index 41f8af678..f8932b1d8 100644 --- a/vendor/google.golang.org/grpc/internal/internal.go +++ b/vendor/google.golang.org/grpc/internal/internal.go @@ -20,7 +20,7 @@ // symbols to avoid circular dependencies. package internal -import "golang.org/x/net/context" +import "context" var ( // WithContextDialer is exported by clientconn.go diff --git a/vendor/google.golang.org/grpc/internal/syscall/syscall_linux.go b/vendor/google.golang.org/grpc/internal/syscall/syscall_linux.go index 87bc65a19..43281a3e0 100644 --- a/vendor/google.golang.org/grpc/internal/syscall/syscall_linux.go +++ b/vendor/google.golang.org/grpc/internal/syscall/syscall_linux.go @@ -1,4 +1,4 @@ -// +build !appengine,go1.7 +// +build !appengine /* * @@ -23,7 +23,10 @@ package syscall import ( + "fmt" + "net" "syscall" + "time" "golang.org/x/sys/unix" "google.golang.org/grpc/grpclog" @@ -65,3 +68,47 @@ func CPUTimeDiff(first *Rusage, latest *Rusage) (float64, float64) { return uTimeElapsed, sTimeElapsed } + +// SetTCPUserTimeout sets the TCP user timeout on a connection's socket +func SetTCPUserTimeout(conn net.Conn, timeout time.Duration) error { + tcpconn, ok := conn.(*net.TCPConn) + if !ok { + // not a TCP connection. exit early + return nil + } + rawConn, err := tcpconn.SyscallConn() + if err != nil { + return fmt.Errorf("error getting raw connection: %v", err) + } + err = rawConn.Control(func(fd uintptr) { + err = syscall.SetsockoptInt(int(fd), syscall.IPPROTO_TCP, unix.TCP_USER_TIMEOUT, int(timeout/time.Millisecond)) + }) + if err != nil { + return fmt.Errorf("error setting option on socket: %v", err) + } + + return nil +} + +// GetTCPUserTimeout gets the TCP user timeout on a connection's socket +func GetTCPUserTimeout(conn net.Conn) (opt int, err error) { + tcpconn, ok := conn.(*net.TCPConn) + if !ok { + err = fmt.Errorf("conn is not *net.TCPConn. got %T", conn) + return + } + rawConn, err := tcpconn.SyscallConn() + if err != nil { + err = fmt.Errorf("error getting raw connection: %v", err) + return + } + err = rawConn.Control(func(fd uintptr) { + opt, err = syscall.GetsockoptInt(int(fd), syscall.IPPROTO_TCP, unix.TCP_USER_TIMEOUT) + }) + if err != nil { + err = fmt.Errorf("error getting option on socket: %v", err) + return + } + + return +} diff --git a/vendor/google.golang.org/grpc/internal/syscall/syscall_nonlinux.go b/vendor/google.golang.org/grpc/internal/syscall/syscall_nonlinux.go index 16a5c3fe4..61678feb0 100644 --- a/vendor/google.golang.org/grpc/internal/syscall/syscall_nonlinux.go +++ b/vendor/google.golang.org/grpc/internal/syscall/syscall_nonlinux.go @@ -1,4 +1,4 @@ -// +build !linux appengine !go1.7 +// +build !linux appengine /* * @@ -20,7 +20,12 @@ package syscall -import "google.golang.org/grpc/grpclog" +import ( + "net" + "time" + + "google.golang.org/grpc/grpclog" +) func init() { grpclog.Info("CPU time info is unavailable on non-linux or appengine environment.") @@ -45,3 +50,14 @@ func GetRusage() (rusage *Rusage) { func CPUTimeDiff(first *Rusage, latest *Rusage) (float64, float64) { return 0, 0 } + +// SetTCPUserTimeout is a no-op function under non-linux or appengine environments +func SetTCPUserTimeout(conn net.Conn, timeout time.Duration) error { + return nil +} + +// GetTCPUserTimeout is a no-op function under non-linux or appengine environments +// a negative return value indicates the operation is not supported +func GetTCPUserTimeout(conn net.Conn) (int, error) { + return -1, nil +} diff --git a/vendor/google.golang.org/grpc/internal/testutils/pipe_listener.go b/vendor/google.golang.org/grpc/internal/testutils/pipe_listener.go index 77def1179..6bd3bc0be 100644 --- a/vendor/google.golang.org/grpc/internal/testutils/pipe_listener.go +++ b/vendor/google.golang.org/grpc/internal/testutils/pipe_listener.go @@ -16,6 +16,7 @@ * */ +// Package testutils contains testing helpers. package testutils import ( diff --git a/vendor/google.golang.org/grpc/internal/transport/bdp_estimator.go b/vendor/google.golang.org/grpc/internal/transport/bdp_estimator.go index 63cd2627c..070680edb 100644 --- a/vendor/google.golang.org/grpc/internal/transport/bdp_estimator.go +++ b/vendor/google.golang.org/grpc/internal/transport/bdp_estimator.go @@ -24,9 +24,10 @@ import ( ) const ( - // bdpLimit is the maximum value the flow control windows - // will be increased to. - bdpLimit = (1 << 20) * 4 + // bdpLimit is the maximum value the flow control windows will be increased + // to. TCP typically limits this to 4MB, but some systems go up to 16MB. + // Since this is only a limit, it is safe to make it optimistic. + bdpLimit = (1 << 20) * 16 // alpha is a constant factor used to keep a moving average // of RTTs. alpha = 0.9 diff --git a/vendor/google.golang.org/grpc/internal/transport/go16.go b/vendor/google.golang.org/grpc/internal/transport/go16.go deleted file mode 100644 index e0d00115d..000000000 --- a/vendor/google.golang.org/grpc/internal/transport/go16.go +++ /dev/null @@ -1,52 +0,0 @@ -// +build go1.6,!go1.7 - -/* - * - * Copyright 2016 gRPC authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package transport - -import ( - "net" - "net/http" - - "google.golang.org/grpc/codes" - "google.golang.org/grpc/status" - - "golang.org/x/net/context" -) - -// dialContext connects to the address on the named network. -func dialContext(ctx context.Context, network, address string) (net.Conn, error) { - return (&net.Dialer{Cancel: ctx.Done()}).Dial(network, address) -} - -// ContextErr converts the error from context package into a status error. -func ContextErr(err error) error { - switch err { - case context.DeadlineExceeded: - return status.Error(codes.DeadlineExceeded, err.Error()) - case context.Canceled: - return status.Error(codes.Canceled, err.Error()) - } - return status.Errorf(codes.Internal, "Unexpected error from context packet: %v", err) -} - -// contextFromRequest returns a background context. -func contextFromRequest(r *http.Request) context.Context { - return context.Background() -} diff --git a/vendor/google.golang.org/grpc/internal/transport/go17.go b/vendor/google.golang.org/grpc/internal/transport/go17.go deleted file mode 100644 index 4d515b00d..000000000 --- a/vendor/google.golang.org/grpc/internal/transport/go17.go +++ /dev/null @@ -1,53 +0,0 @@ -// +build go1.7 - -/* - * - * Copyright 2016 gRPC authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package transport - -import ( - "context" - "net" - "net/http" - - "google.golang.org/grpc/codes" - "google.golang.org/grpc/status" - - netctx "golang.org/x/net/context" -) - -// dialContext connects to the address on the named network. -func dialContext(ctx context.Context, network, address string) (net.Conn, error) { - return (&net.Dialer{}).DialContext(ctx, network, address) -} - -// ContextErr converts the error from context package into a status error. -func ContextErr(err error) error { - switch err { - case context.DeadlineExceeded, netctx.DeadlineExceeded: - return status.Error(codes.DeadlineExceeded, err.Error()) - case context.Canceled, netctx.Canceled: - return status.Error(codes.Canceled, err.Error()) - } - return status.Errorf(codes.Internal, "Unexpected error from context packet: %v", err) -} - -// contextFromRequest returns a context from the HTTP Request. -func contextFromRequest(r *http.Request) context.Context { - return r.Context() -} diff --git a/vendor/google.golang.org/grpc/internal/transport/handler_server.go b/vendor/google.golang.org/grpc/internal/transport/handler_server.go index c6fb4b9c1..73b41ea7e 100644 --- a/vendor/google.golang.org/grpc/internal/transport/handler_server.go +++ b/vendor/google.golang.org/grpc/internal/transport/handler_server.go @@ -24,6 +24,7 @@ package transport import ( + "context" "errors" "fmt" "io" @@ -34,7 +35,6 @@ import ( "time" "github.com/golang/protobuf/proto" - "golang.org/x/net/context" "golang.org/x/net/http2" "google.golang.org/grpc/codes" "google.golang.org/grpc/credentials" @@ -307,7 +307,7 @@ func (ht *serverHandlerTransport) WriteHeader(s *Stream, md metadata.MD) error { func (ht *serverHandlerTransport) HandleStreams(startStream func(*Stream), traceCtx func(context.Context, string) context.Context) { // With this transport type there will be exactly 1 stream: this HTTP request. - ctx := contextFromRequest(ht.req) + ctx := ht.req.Context() var cancel context.CancelFunc if ht.timeoutSet { ctx, cancel = context.WithTimeout(ctx, ht.timeout) diff --git a/vendor/google.golang.org/grpc/internal/transport/handler_server_test.go b/vendor/google.golang.org/grpc/internal/transport/handler_server_test.go index d4e2ce3b9..cf989c76e 100644 --- a/vendor/google.golang.org/grpc/internal/transport/handler_server_test.go +++ b/vendor/google.golang.org/grpc/internal/transport/handler_server_test.go @@ -19,6 +19,7 @@ package transport import ( + "context" "errors" "fmt" "io" @@ -32,7 +33,6 @@ import ( "github.com/golang/protobuf/proto" dpb "github.com/golang/protobuf/ptypes/duration" - "golang.org/x/net/context" epb "google.golang.org/genproto/googleapis/rpc/errdetails" "google.golang.org/grpc/codes" "google.golang.org/grpc/metadata" diff --git a/vendor/google.golang.org/grpc/internal/transport/http2_client.go b/vendor/google.golang.org/grpc/internal/transport/http2_client.go index 0c3c47e2a..39208b146 100644 --- a/vendor/google.golang.org/grpc/internal/transport/http2_client.go +++ b/vendor/google.golang.org/grpc/internal/transport/http2_client.go @@ -19,6 +19,8 @@ package transport import ( + "context" + "fmt" "io" "math" "net" @@ -28,13 +30,13 @@ import ( "sync/atomic" "time" - "golang.org/x/net/context" "golang.org/x/net/http2" "golang.org/x/net/http2/hpack" "google.golang.org/grpc/codes" "google.golang.org/grpc/credentials" "google.golang.org/grpc/internal/channelz" + "google.golang.org/grpc/internal/syscall" "google.golang.org/grpc/keepalive" "google.golang.org/grpc/metadata" "google.golang.org/grpc/peer" @@ -121,7 +123,7 @@ func dial(ctx context.Context, fn func(context.Context, string) (net.Conn, error if fn != nil { return fn(ctx, addr) } - return dialContext(ctx, "tcp", addr) + return (&net.Dialer{}).DialContext(ctx, "tcp", addr) } func isTemporary(err error) bool { @@ -165,6 +167,21 @@ func newHTTP2Client(connectCtx, ctx context.Context, addr TargetInfo, opts Conne conn.Close() } }(conn) + kp := opts.KeepaliveParams + // Validate keepalive parameters. + if kp.Time == 0 { + kp.Time = defaultClientKeepaliveTime + } + if kp.Timeout == 0 { + kp.Timeout = defaultClientKeepaliveTimeout + } + keepaliveEnabled := false + if kp.Time != infinity { + if err = syscall.SetTCPUserTimeout(conn, kp.Timeout); err != nil { + return nil, connectionErrorf(false, err, "transport: failed to set TCP_USER_TIMEOUT: %v", err) + } + keepaliveEnabled = true + } var ( isSecure bool authInfo credentials.AuthInfo @@ -188,14 +205,6 @@ func newHTTP2Client(connectCtx, ctx context.Context, addr TargetInfo, opts Conne } isSecure = true } - kp := opts.KeepaliveParams - // Validate keepalive parameters. - if kp.Time == 0 { - kp.Time = defaultClientKeepaliveTime - } - if kp.Timeout == 0 { - kp.Timeout = defaultClientKeepaliveTimeout - } dynamicWindow := true icwz := int32(initialWindowSize) if opts.InitialConnWindowSize >= defaultWindowSize { @@ -239,6 +248,7 @@ func newHTTP2Client(connectCtx, ctx context.Context, addr TargetInfo, opts Conne czData: new(channelzData), onGoAway: onGoAway, onClose: onClose, + keepaliveEnabled: keepaliveEnabled, } t.controlBuf = newControlBuffer(t.ctxDone) if opts.InitialWindowSize >= defaultWindowSize { @@ -265,10 +275,9 @@ func newHTTP2Client(connectCtx, ctx context.Context, addr TargetInfo, opts Conne t.statsHandler.HandleConn(t.ctx, connBegin) } if channelz.IsOn() { - t.channelzID = channelz.RegisterNormalSocket(t, opts.ChannelzParentID, "") + t.channelzID = channelz.RegisterNormalSocket(t, opts.ChannelzParentID, fmt.Sprintf("%s -> %s", t.localAddr, t.remoteAddr)) } - if t.kp.Time != infinity { - t.keepaliveEnabled = true + if t.keepaliveEnabled { go t.keepalive() } // Start the reader goroutine for incoming message. Each transport has diff --git a/vendor/google.golang.org/grpc/internal/transport/http2_server.go b/vendor/google.golang.org/grpc/internal/transport/http2_server.go index efb7f53ff..df2740398 100644 --- a/vendor/google.golang.org/grpc/internal/transport/http2_server.go +++ b/vendor/google.golang.org/grpc/internal/transport/http2_server.go @@ -20,6 +20,7 @@ package transport import ( "bytes" + "context" "errors" "fmt" "io" @@ -31,7 +32,6 @@ import ( "time" "github.com/golang/protobuf/proto" - "golang.org/x/net/context" "golang.org/x/net/http2" "golang.org/x/net/http2/hpack" @@ -237,7 +237,7 @@ func newHTTP2Server(conn net.Conn, config *ServerConfig) (_ ServerTransport, err t.stats.HandleConn(t.ctx, connBegin) } if channelz.IsOn() { - t.channelzID = channelz.RegisterNormalSocket(t, config.ChannelzParentID, "") + t.channelzID = channelz.RegisterNormalSocket(t, config.ChannelzParentID, fmt.Sprintf("%s -> %s", t.remoteAddr, t.localAddr)) } t.framer.writer.Flush() diff --git a/vendor/google.golang.org/grpc/internal/transport/transport.go b/vendor/google.golang.org/grpc/internal/transport/transport.go index 1be518a62..4d7e89067 100644 --- a/vendor/google.golang.org/grpc/internal/transport/transport.go +++ b/vendor/google.golang.org/grpc/internal/transport/transport.go @@ -22,6 +22,7 @@ package transport import ( + "context" "errors" "fmt" "io" @@ -29,7 +30,6 @@ import ( "sync" "sync/atomic" - "golang.org/x/net/context" "google.golang.org/grpc/codes" "google.golang.org/grpc/credentials" "google.golang.org/grpc/keepalive" @@ -186,8 +186,12 @@ type Stream struct { headerDone uint32 // set when headerChan is closed. Used to avoid closing headerChan multiple times. // hdrMu protects header and trailer metadata on the server-side. - hdrMu sync.Mutex - header metadata.MD // the received header metadata. + hdrMu sync.Mutex + // On client side, header keeps the received header metadata. + // + // On server side, header keeps the header set by SetHeader(). The complete + // header will merged into this after t.WriteHeader() is called. + header metadata.MD trailer metadata.MD // the key-value map of trailer metadata. noHeaders bool // set if the client never received headers (set only after the stream is done). @@ -266,10 +270,19 @@ func (s *Stream) Done() <-chan struct{} { return s.done } -// Header acquires the key-value pairs of header metadata once it -// is available. It blocks until i) the metadata is ready or ii) there is no -// header metadata or iii) the stream is canceled/expired. +// Header returns the header metadata of the stream. +// +// On client side, it acquires the key-value pairs of header metadata once it is +// available. It blocks until i) the metadata is ready or ii) there is no header +// metadata or iii) the stream is canceled/expired. +// +// On server side, it returns the out header after t.WriteHeader is called. func (s *Stream) Header() (metadata.MD, error) { + if s.headerChan == nil && s.header != nil { + // On server side, return the header in stream. It will be the out + // header after t.WriteHeader is called. + return s.header.Copy(), nil + } err := s.waitOnHeader() // Even if the stream is closed, header is returned if available. select { @@ -710,3 +723,14 @@ type channelzData struct { lastMsgSentTime int64 lastMsgRecvTime int64 } + +// ContextErr converts the error from context package into a status error. +func ContextErr(err error) error { + switch err { + case context.DeadlineExceeded: + return status.Error(codes.DeadlineExceeded, err.Error()) + case context.Canceled: + return status.Error(codes.Canceled, err.Error()) + } + return status.Errorf(codes.Internal, "Unexpected error from context packet: %v", err) +} diff --git a/vendor/google.golang.org/grpc/internal/transport/transport_test.go b/vendor/google.golang.org/grpc/internal/transport/transport_test.go index 45e29be8c..91b6b95fa 100644 --- a/vendor/google.golang.org/grpc/internal/transport/transport_test.go +++ b/vendor/google.golang.org/grpc/internal/transport/transport_test.go @@ -21,6 +21,7 @@ package transport import ( "bufio" "bytes" + "context" "encoding/binary" "errors" "fmt" @@ -36,11 +37,11 @@ import ( "testing" "time" - "golang.org/x/net/context" "golang.org/x/net/http2" "golang.org/x/net/http2/hpack" "google.golang.org/grpc/codes" "google.golang.org/grpc/internal/leakcheck" + "google.golang.org/grpc/internal/syscall" "google.golang.org/grpc/keepalive" "google.golang.org/grpc/status" ) @@ -2027,13 +2028,10 @@ func setUpHTTPStatusTest(t *testing.T, httpStatus int, wh writeHeaders) (*Stream wh: wh, } server.start(t, lis) - // TODO(deklerk): we can `defer cancel()` here after we drop Go 1.6 support. Until then, - // doing a `defer cancel()` could cause the dialer to become broken: - // https://github.com/golang/go/issues/15078, https://github.com/golang/go/issues/15035 connectCtx, cancel := context.WithDeadline(context.Background(), time.Now().Add(2*time.Second)) + defer cancel() client, err := newHTTP2Client(connectCtx, context.Background(), TargetInfo{Addr: lis.Addr().String()}, ConnectOptions{}, func() {}, func(GoAwayReason) {}, func() {}) if err != nil { - cancel() // Do not cancel in success path. lis.Close() t.Fatalf("Error creating client. Err: %v", err) } @@ -2317,3 +2315,61 @@ func TestHeaderTblSize(t *testing.T) { t.Fatalf("expected len(limits) = 2 within 10s, got != 2") } } + +// TestTCPUserTimeout tests that the TCP_USER_TIMEOUT socket option is set to the +// keepalive timeout, as detailed in proposal A18 +func TestTCPUserTimeout(t *testing.T) { + tests := []struct { + time time.Duration + timeout time.Duration + }{ + { + 10 * time.Second, + 10 * time.Second, + }, + { + 0, + 0, + }, + } + for _, tt := range tests { + server, client, cancel := setUpWithOptions( + t, + 0, + &ServerConfig{ + KeepaliveParams: keepalive.ServerParameters{ + Time: tt.timeout, + Timeout: tt.timeout, + }, + }, + normal, + ConnectOptions{ + KeepaliveParams: keepalive.ClientParameters{ + Time: tt.time, + Timeout: tt.timeout, + }, + }, + ) + defer cancel() + defer server.stop() + defer client.Close() + + stream, err := client.NewStream(context.Background(), &CallHdr{}) + if err != nil { + t.Fatalf("Client failed to create RPC request: %v", err) + } + client.closeStream(stream, io.EOF, true, http2.ErrCodeCancel, nil, nil, false) + + opt, err := syscall.GetTCPUserTimeout(client.conn) + if err != nil { + t.Fatalf("GetTCPUserTimeout error: %v", err) + } + if opt < 0 { + t.Skipf("skipping test on unsupported environment") + } + if timeoutMS := int(tt.timeout / time.Millisecond); timeoutMS != opt { + t.Fatalf("wrong TCP_USER_TIMEOUT set on conn. expected %d. got %d", + timeoutMS, opt) + } + } +} diff --git a/vendor/google.golang.org/grpc/interop/alts/client/client.go b/vendor/google.golang.org/grpc/interop/alts/client/client.go index b07761076..f3b1028bf 100644 --- a/vendor/google.golang.org/grpc/interop/alts/client/client.go +++ b/vendor/google.golang.org/grpc/interop/alts/client/client.go @@ -20,10 +20,10 @@ package main import ( + "context" "flag" "time" - "golang.org/x/net/context" grpc "google.golang.org/grpc" "google.golang.org/grpc/credentials/alts" "google.golang.org/grpc/grpclog" diff --git a/vendor/google.golang.org/grpc/interop/http2/negative_http2_client.go b/vendor/google.golang.org/grpc/interop/http2/negative_http2_client.go index 7658a6342..2d7da138f 100644 --- a/vendor/google.golang.org/grpc/interop/http2/negative_http2_client.go +++ b/vendor/google.golang.org/grpc/interop/http2/negative_http2_client.go @@ -24,13 +24,13 @@ package main import ( + "context" "flag" "net" "strconv" "sync" "time" - "golang.org/x/net/context" "google.golang.org/grpc" "google.golang.org/grpc/codes" "google.golang.org/grpc/grpclog" diff --git a/vendor/google.golang.org/grpc/interop/test_utils.go b/vendor/google.golang.org/grpc/interop/test_utils.go index ee1ae7032..7ce970cc1 100644 --- a/vendor/google.golang.org/grpc/interop/test_utils.go +++ b/vendor/google.golang.org/grpc/interop/test_utils.go @@ -21,6 +21,7 @@ package interop import ( + "context" "fmt" "io" "io/ioutil" @@ -28,7 +29,6 @@ import ( "time" "github.com/golang/protobuf/proto" - "golang.org/x/net/context" "golang.org/x/oauth2" "golang.org/x/oauth2/google" "google.golang.org/grpc" diff --git a/vendor/google.golang.org/grpc/metadata/metadata.go b/vendor/google.golang.org/grpc/metadata/metadata.go index bd2eaf408..cf6d1b947 100644 --- a/vendor/google.golang.org/grpc/metadata/metadata.go +++ b/vendor/google.golang.org/grpc/metadata/metadata.go @@ -22,10 +22,9 @@ package metadata // import "google.golang.org/grpc/metadata" import ( + "context" "fmt" "strings" - - "golang.org/x/net/context" ) // DecodeKeyValue returns k, v, nil. diff --git a/vendor/google.golang.org/grpc/metadata/metadata_test.go b/vendor/google.golang.org/grpc/metadata/metadata_test.go index 324f1323f..f166ffaf7 100644 --- a/vendor/google.golang.org/grpc/metadata/metadata_test.go +++ b/vendor/google.golang.org/grpc/metadata/metadata_test.go @@ -19,11 +19,10 @@ package metadata import ( + "context" "reflect" "strconv" "testing" - - "golang.org/x/net/context" ) func TestPairsMD(t *testing.T) { diff --git a/vendor/google.golang.org/grpc/naming/dns_resolver.go b/vendor/google.golang.org/grpc/naming/dns_resolver.go index 0f8a908ea..fd8cd3b5a 100644 --- a/vendor/google.golang.org/grpc/naming/dns_resolver.go +++ b/vendor/google.golang.org/grpc/naming/dns_resolver.go @@ -19,13 +19,13 @@ package naming import ( + "context" "errors" "fmt" "net" "strconv" "time" - "golang.org/x/net/context" "google.golang.org/grpc/grpclog" ) @@ -37,6 +37,9 @@ const ( var ( errMissingAddr = errors.New("missing address") errWatcherClose = errors.New("watcher has been closed") + + lookupHost = net.DefaultResolver.LookupHost + lookupSRV = net.DefaultResolver.LookupSRV ) // NewDNSResolverWithFreq creates a DNS Resolver that can resolve DNS names, and diff --git a/vendor/google.golang.org/grpc/naming/dns_resolver_test.go b/vendor/google.golang.org/grpc/naming/dns_resolver_test.go index be1ac1aec..42868a5d0 100644 --- a/vendor/google.golang.org/grpc/naming/dns_resolver_test.go +++ b/vendor/google.golang.org/grpc/naming/dns_resolver_test.go @@ -19,6 +19,7 @@ package naming import ( + "context" "fmt" "net" "reflect" @@ -253,6 +254,21 @@ func testResolver(t *testing.T, freq time.Duration, slp time.Duration) { } } +func replaceNetFunc() func() { + oldLookupHost := lookupHost + oldLookupSRV := lookupSRV + lookupHost = func(ctx context.Context, host string) ([]string, error) { + return hostLookup(host) + } + lookupSRV = func(ctx context.Context, service, proto, name string) (string, []*net.SRV, error) { + return srvLookup(service, proto, name) + } + return func() { + lookupHost = oldLookupHost + lookupSRV = oldLookupSRV + } +} + func TestResolve(t *testing.T) { defer replaceNetFunc()() testResolver(t, time.Millisecond*5, time.Millisecond*10) diff --git a/vendor/google.golang.org/grpc/naming/go17.go b/vendor/google.golang.org/grpc/naming/go17.go deleted file mode 100644 index 57b65d7b8..000000000 --- a/vendor/google.golang.org/grpc/naming/go17.go +++ /dev/null @@ -1,34 +0,0 @@ -// +build go1.6,!go1.8 - -/* - * - * Copyright 2017 gRPC authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package naming - -import ( - "net" - - "golang.org/x/net/context" -) - -var ( - lookupHost = func(ctx context.Context, host string) ([]string, error) { return net.LookupHost(host) } - lookupSRV = func(ctx context.Context, service, proto, name string) (string, []*net.SRV, error) { - return net.LookupSRV(service, proto, name) - } -) diff --git a/vendor/google.golang.org/grpc/naming/go17_test.go b/vendor/google.golang.org/grpc/naming/go17_test.go deleted file mode 100644 index db39b9ab7..000000000 --- a/vendor/google.golang.org/grpc/naming/go17_test.go +++ /dev/null @@ -1,42 +0,0 @@ -// +build go1.6, !go1.8 - -/* - * - * Copyright 2017 gRPC authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package naming - -import ( - "net" - - "golang.org/x/net/context" -) - -func replaceNetFunc() func() { - oldLookupHost := lookupHost - oldLookupSRV := lookupSRV - lookupHost = func(ctx context.Context, host string) ([]string, error) { - return hostLookup(host) - } - lookupSRV = func(ctx context.Context, service, proto, name string) (string, []*net.SRV, error) { - return srvLookup(service, proto, name) - } - return func() { - lookupHost = oldLookupHost - lookupSRV = oldLookupSRV - } -} diff --git a/vendor/google.golang.org/grpc/naming/go18.go b/vendor/google.golang.org/grpc/naming/go18.go deleted file mode 100644 index b5a0f8427..000000000 --- a/vendor/google.golang.org/grpc/naming/go18.go +++ /dev/null @@ -1,28 +0,0 @@ -// +build go1.8 - -/* - * - * Copyright 2017 gRPC authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package naming - -import "net" - -var ( - lookupHost = net.DefaultResolver.LookupHost - lookupSRV = net.DefaultResolver.LookupSRV -) diff --git a/vendor/google.golang.org/grpc/naming/go18_test.go b/vendor/google.golang.org/grpc/naming/go18_test.go deleted file mode 100644 index 5e297539b..000000000 --- a/vendor/google.golang.org/grpc/naming/go18_test.go +++ /dev/null @@ -1,41 +0,0 @@ -// +build go1.8 - -/* - * - * Copyright 2017 gRPC authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package naming - -import ( - "context" - "net" -) - -func replaceNetFunc() func() { - oldLookupHost := lookupHost - oldLookupSRV := lookupSRV - lookupHost = func(ctx context.Context, host string) ([]string, error) { - return hostLookup(host) - } - lookupSRV = func(ctx context.Context, service, proto, name string) (string, []*net.SRV, error) { - return srvLookup(service, proto, name) - } - return func() { - lookupHost = oldLookupHost - lookupSRV = oldLookupSRV - } -} diff --git a/vendor/google.golang.org/grpc/peer/peer.go b/vendor/google.golang.org/grpc/peer/peer.go index 317b8b9d0..e01d219ff 100644 --- a/vendor/google.golang.org/grpc/peer/peer.go +++ b/vendor/google.golang.org/grpc/peer/peer.go @@ -21,9 +21,9 @@ package peer import ( + "context" "net" - "golang.org/x/net/context" "google.golang.org/grpc/credentials" ) diff --git a/vendor/google.golang.org/grpc/picker_wrapper.go b/vendor/google.golang.org/grpc/picker_wrapper.go index 76cc456aa..14f915d67 100644 --- a/vendor/google.golang.org/grpc/picker_wrapper.go +++ b/vendor/google.golang.org/grpc/picker_wrapper.go @@ -19,10 +19,10 @@ package grpc import ( + "context" "io" "sync" - "golang.org/x/net/context" "google.golang.org/grpc/balancer" "google.golang.org/grpc/codes" "google.golang.org/grpc/grpclog" diff --git a/vendor/google.golang.org/grpc/picker_wrapper_test.go b/vendor/google.golang.org/grpc/picker_wrapper_test.go index 34c6c8915..36653b12e 100644 --- a/vendor/google.golang.org/grpc/picker_wrapper_test.go +++ b/vendor/google.golang.org/grpc/picker_wrapper_test.go @@ -19,12 +19,12 @@ package grpc import ( + "context" "fmt" "sync/atomic" "testing" "time" - "golang.org/x/net/context" "google.golang.org/grpc/balancer" "google.golang.org/grpc/connectivity" _ "google.golang.org/grpc/grpclog/glogger" diff --git a/vendor/google.golang.org/grpc/pickfirst.go b/vendor/google.golang.org/grpc/pickfirst.go index bda4309c0..d1e38aad7 100644 --- a/vendor/google.golang.org/grpc/pickfirst.go +++ b/vendor/google.golang.org/grpc/pickfirst.go @@ -19,7 +19,8 @@ package grpc import ( - "golang.org/x/net/context" + "context" + "google.golang.org/grpc/balancer" "google.golang.org/grpc/connectivity" "google.golang.org/grpc/grpclog" diff --git a/vendor/google.golang.org/grpc/pickfirst_test.go b/vendor/google.golang.org/grpc/pickfirst_test.go index 7f8169f19..675067fd9 100644 --- a/vendor/google.golang.org/grpc/pickfirst_test.go +++ b/vendor/google.golang.org/grpc/pickfirst_test.go @@ -19,12 +19,12 @@ package grpc import ( + "context" "math" "sync" "testing" "time" - "golang.org/x/net/context" "google.golang.org/grpc/codes" "google.golang.org/grpc/internal/leakcheck" "google.golang.org/grpc/resolver" diff --git a/vendor/google.golang.org/grpc/proxy.go b/vendor/google.golang.org/grpc/proxy.go index 2d40236e2..f8f69bfb7 100644 --- a/vendor/google.golang.org/grpc/proxy.go +++ b/vendor/google.golang.org/grpc/proxy.go @@ -20,6 +20,8 @@ package grpc import ( "bufio" + "context" + "encoding/base64" "errors" "fmt" "io" @@ -27,10 +29,10 @@ import ( "net/http" "net/http/httputil" "net/url" - - "golang.org/x/net/context" ) +const proxyAuthHeaderKey = "Proxy-Authorization" + var ( // errDisabled indicates that proxy is disabled for the address. errDisabled = errors.New("proxy is disabled for the address") @@ -38,7 +40,7 @@ var ( httpProxyFromEnvironment = http.ProxyFromEnvironment ) -func mapAddress(ctx context.Context, address string) (string, error) { +func mapAddress(ctx context.Context, address string) (*url.URL, error) { req := &http.Request{ URL: &url.URL{ Scheme: "https", @@ -47,12 +49,12 @@ func mapAddress(ctx context.Context, address string) (string, error) { } url, err := httpProxyFromEnvironment(req) if err != nil { - return "", err + return nil, err } if url == nil { - return "", errDisabled + return nil, errDisabled } - return url.Host, nil + return url, nil } // To read a response from a net.Conn, http.ReadResponse() takes a bufio.Reader. @@ -69,18 +71,28 @@ func (c *bufConn) Read(b []byte) (int, error) { return c.r.Read(b) } -func doHTTPConnectHandshake(ctx context.Context, conn net.Conn, addr string) (_ net.Conn, err error) { +func basicAuth(username, password string) string { + auth := username + ":" + password + return base64.StdEncoding.EncodeToString([]byte(auth)) +} + +func doHTTPConnectHandshake(ctx context.Context, conn net.Conn, backendAddr string, proxyURL *url.URL) (_ net.Conn, err error) { defer func() { if err != nil { conn.Close() } }() - req := (&http.Request{ + req := &http.Request{ Method: http.MethodConnect, - URL: &url.URL{Host: addr}, + URL: &url.URL{Host: backendAddr}, Header: map[string][]string{"User-Agent": {grpcUA}}, - }) + } + if t := proxyURL.User; t != nil { + u := t.Username() + p, _ := t.Password() + req.Header.Add(proxyAuthHeaderKey, "Basic "+basicAuth(u, p)) + } if err := sendHTTPRequest(ctx, req, conn); err != nil { return nil, fmt.Errorf("failed to write the HTTP request: %v", err) @@ -108,23 +120,33 @@ func doHTTPConnectHandshake(ctx context.Context, conn net.Conn, addr string) (_ // provided dialer, does HTTP CONNECT handshake and returns the connection. func newProxyDialer(dialer func(context.Context, string) (net.Conn, error)) func(context.Context, string) (net.Conn, error) { return func(ctx context.Context, addr string) (conn net.Conn, err error) { - var skipHandshake bool - newAddr, err := mapAddress(ctx, addr) + var newAddr string + proxyURL, err := mapAddress(ctx, addr) if err != nil { if err != errDisabled { return nil, err } - skipHandshake = true newAddr = addr + } else { + newAddr = proxyURL.Host } conn, err = dialer(ctx, newAddr) if err != nil { return } - if !skipHandshake { - conn, err = doHTTPConnectHandshake(ctx, conn, addr) + if proxyURL != nil { + // proxy is disabled if proxyURL is nil. + conn, err = doHTTPConnectHandshake(ctx, conn, addr, proxyURL) } return } } + +func sendHTTPRequest(ctx context.Context, req *http.Request, conn net.Conn) error { + req = req.WithContext(ctx) + if err := req.Write(conn); err != nil { + return fmt.Errorf("failed to write the HTTP request: %v", err) + } + return nil +} diff --git a/vendor/google.golang.org/grpc/proxy_test.go b/vendor/google.golang.org/grpc/proxy_test.go index 7183ba342..9ab72cb8a 100644 --- a/vendor/google.golang.org/grpc/proxy_test.go +++ b/vendor/google.golang.org/grpc/proxy_test.go @@ -22,6 +22,9 @@ package grpc import ( "bufio" + "context" + "encoding/base64" + "fmt" "io" "net" "net/http" @@ -29,7 +32,6 @@ import ( "testing" "time" - "golang.org/x/net/context" "google.golang.org/grpc/internal/leakcheck" ) @@ -53,6 +55,8 @@ type proxyServer struct { lis net.Listener in net.Conn out net.Conn + + requestCheck func(*http.Request) error } func (p *proxyServer) run() { @@ -67,11 +71,11 @@ func (p *proxyServer) run() { p.t.Errorf("failed to read CONNECT req: %v", err) return } - if req.Method != http.MethodConnect || req.UserAgent() != grpcUA { + if err := p.requestCheck(req); err != nil { resp := http.Response{StatusCode: http.StatusMethodNotAllowed} resp.Write(p.in) p.in.Close() - p.t.Errorf("get wrong CONNECT req: %+v", req) + p.t.Errorf("get wrong CONNECT req: %+v, error: %v", req, err) return } @@ -97,13 +101,17 @@ func (p *proxyServer) stop() { } } -func TestHTTPConnect(t *testing.T) { +func testHTTPConnect(t *testing.T, proxyURLModify func(*url.URL) *url.URL, proxyReqCheck func(*http.Request) error) { defer leakcheck.Check(t) plis, err := net.Listen("tcp", "localhost:0") if err != nil { t.Fatalf("failed to listen: %v", err) } - p := &proxyServer{t: t, lis: plis} + p := &proxyServer{ + t: t, + lis: plis, + requestCheck: proxyReqCheck, + } go p.run() defer p.stop() @@ -128,7 +136,7 @@ func TestHTTPConnect(t *testing.T) { // Overwrite the function in the test and restore them in defer. hpfe := func(req *http.Request) (*url.URL, error) { - return &url.URL{Host: plis.Addr().String()}, nil + return proxyURLModify(&url.URL{Host: plis.Addr().String()}), nil } defer overwrite(hpfe)() @@ -157,6 +165,51 @@ func TestHTTPConnect(t *testing.T) { } } +func TestHTTPConnect(t *testing.T) { + testHTTPConnect(t, + func(in *url.URL) *url.URL { + return in + }, + func(req *http.Request) error { + if req.Method != http.MethodConnect { + return fmt.Errorf("unexpected Method %q, want %q", req.Method, http.MethodConnect) + } + if req.UserAgent() != grpcUA { + return fmt.Errorf("unexpect user agent %q, want %q", req.UserAgent(), grpcUA) + } + return nil + }, + ) +} + +func TestHTTPConnectBasicAuth(t *testing.T) { + const ( + user = "notAUser" + password = "notAPassword" + ) + testHTTPConnect(t, + func(in *url.URL) *url.URL { + in.User = url.UserPassword(user, password) + return in + }, + func(req *http.Request) error { + if req.Method != http.MethodConnect { + return fmt.Errorf("unexpected Method %q, want %q", req.Method, http.MethodConnect) + } + if req.UserAgent() != grpcUA { + return fmt.Errorf("unexpect user agent %q, want %q", req.UserAgent(), grpcUA) + } + wantProxyAuthStr := "Basic " + base64.StdEncoding.EncodeToString([]byte(user+":"+password)) + if got := req.Header.Get(proxyAuthHeaderKey); got != wantProxyAuthStr { + gotDecoded, _ := base64.StdEncoding.DecodeString(got) + wantDecoded, _ := base64.StdEncoding.DecodeString(wantProxyAuthStr) + return fmt.Errorf("unexpected auth %q (%q), want %q (%q)", got, gotDecoded, wantProxyAuthStr, wantDecoded) + } + return nil + }, + ) +} + func TestMapAddressEnv(t *testing.T) { defer leakcheck.Check(t) // Overwrite the function in the test and restore them in defer. @@ -176,7 +229,7 @@ func TestMapAddressEnv(t *testing.T) { if err != nil { t.Error(err) } - if got != envProxyAddr { + if got.Host != envProxyAddr { t.Errorf("want %v, got %v", envProxyAddr, got) } } diff --git a/vendor/google.golang.org/grpc/reflection/serverreflection_test.go b/vendor/google.golang.org/grpc/reflection/serverreflection_test.go index e2c741697..9078b2055 100644 --- a/vendor/google.golang.org/grpc/reflection/serverreflection_test.go +++ b/vendor/google.golang.org/grpc/reflection/serverreflection_test.go @@ -24,6 +24,7 @@ package reflection import ( + "context" "fmt" "net" "reflect" @@ -32,7 +33,6 @@ import ( "github.com/golang/protobuf/proto" dpb "github.com/golang/protobuf/protoc-gen-go/descriptor" - "golang.org/x/net/context" "google.golang.org/grpc" rpb "google.golang.org/grpc/reflection/grpc_reflection_v1alpha" pb "google.golang.org/grpc/reflection/grpc_testing" diff --git a/vendor/google.golang.org/grpc/resolver/dns/dns_resolver.go b/vendor/google.golang.org/grpc/resolver/dns/dns_resolver.go index 4af67422c..f33189fed 100644 --- a/vendor/google.golang.org/grpc/resolver/dns/dns_resolver.go +++ b/vendor/google.golang.org/grpc/resolver/dns/dns_resolver.go @@ -21,6 +21,7 @@ package dns import ( + "context" "encoding/json" "errors" "fmt" @@ -31,7 +32,6 @@ import ( "sync" "time" - "golang.org/x/net/context" "google.golang.org/grpc/grpclog" "google.golang.org/grpc/internal/backoff" "google.golang.org/grpc/internal/grpcrand" @@ -43,9 +43,10 @@ func init() { } const ( - defaultPort = "443" - defaultFreq = time.Minute * 30 - golang = "GO" + defaultPort = "443" + defaultFreq = time.Minute * 30 + defaultDNSSvrPort = "53" + golang = "GO" // In DNS, service config is encoded in a TXT record via the mechanism // described in RFC-1464 using the attribute name grpc_config. txtAttribute = "grpc_config=" @@ -61,6 +62,31 @@ var ( errEndsWithColon = errors.New("dns resolver: missing port after port-separator colon") ) +var ( + defaultResolver netResolver = net.DefaultResolver +) + +var customAuthorityDialler = func(authority string) func(ctx context.Context, network, address string) (net.Conn, error) { + return func(ctx context.Context, network, address string) (net.Conn, error) { + var dialer net.Dialer + return dialer.DialContext(ctx, network, authority) + } +} + +var customAuthorityResolver = func(authority string) (netResolver, error) { + host, port, err := parseTarget(authority, defaultDNSSvrPort) + if err != nil { + return nil, err + } + + authorityWithPort := net.JoinHostPort(host, port) + + return &net.Resolver{ + PreferGo: true, + Dial: customAuthorityDialler(authorityWithPort), + }, nil +} + // NewBuilder creates a dnsBuilder which is used to factory DNS resolvers. func NewBuilder() resolver.Builder { return &dnsBuilder{minFreq: defaultFreq} diff --git a/vendor/google.golang.org/grpc/resolver/dns/dns_resolver_go19_test.go b/vendor/google.golang.org/grpc/resolver/dns/dns_resolver_go19_test.go deleted file mode 100644 index 8b1793817..000000000 --- a/vendor/google.golang.org/grpc/resolver/dns/dns_resolver_go19_test.go +++ /dev/null @@ -1,135 +0,0 @@ -// +build go1.9 - -/* - * - * Copyright 2018 gRPC authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package dns - -import ( - "errors" - "fmt" - "net" - "testing" - - "golang.org/x/net/context" - "google.golang.org/grpc/internal/leakcheck" - "google.golang.org/grpc/resolver" -) - -func TestCustomAuthority(t *testing.T) { - defer leakcheck.Check(t) - - tests := []struct { - authority string - authorityWant string - expectError bool - }{ - { - "4.3.2.1:" + defaultDNSSvrPort, - "4.3.2.1:" + defaultDNSSvrPort, - false, - }, - { - "4.3.2.1:123", - "4.3.2.1:123", - false, - }, - { - "4.3.2.1", - "4.3.2.1:" + defaultDNSSvrPort, - false, - }, - { - "::1", - "[::1]:" + defaultDNSSvrPort, - false, - }, - { - "[::1]", - "[::1]:" + defaultDNSSvrPort, - false, - }, - { - "[::1]:123", - "[::1]:123", - false, - }, - { - "dnsserver.com", - "dnsserver.com:" + defaultDNSSvrPort, - false, - }, - { - ":123", - "localhost:123", - false, - }, - { - ":", - "", - true, - }, - { - "[::1]:", - "", - true, - }, - { - "dnsserver.com:", - "", - true, - }, - } - oldCustomAuthorityDialler := customAuthorityDialler - defer func() { - customAuthorityDialler = oldCustomAuthorityDialler - }() - - for _, a := range tests { - errChan := make(chan error, 1) - customAuthorityDialler = func(authority string) func(ctx context.Context, network, address string) (net.Conn, error) { - if authority != a.authorityWant { - errChan <- fmt.Errorf("wrong custom authority passed to resolver. input: %s expected: %s actual: %s", a.authority, a.authorityWant, authority) - } else { - errChan <- nil - } - return func(ctx context.Context, network, address string) (net.Conn, error) { - return nil, errors.New("no need to dial") - } - } - - b := NewBuilder() - cc := &testClientConn{target: "foo.bar.com"} - r, err := b.Build(resolver.Target{Endpoint: "foo.bar.com", Authority: a.authority}, cc, resolver.BuildOption{}) - - if err == nil { - r.Close() - - err = <-errChan - if err != nil { - t.Errorf(err.Error()) - } - - if a.expectError { - t.Errorf("custom authority should have caused an error: %s", a.authority) - } - } else if !a.expectError { - t.Errorf("unexpected error using custom authority %s: %s", a.authority, err) - } - } -} diff --git a/vendor/google.golang.org/grpc/resolver/dns/dns_resolver_test.go b/vendor/google.golang.org/grpc/resolver/dns/dns_resolver_test.go index 222eb516f..07673d0da 100644 --- a/vendor/google.golang.org/grpc/resolver/dns/dns_resolver_test.go +++ b/vendor/google.golang.org/grpc/resolver/dns/dns_resolver_test.go @@ -19,6 +19,8 @@ package dns import ( + "context" + "errors" "fmt" "net" "os" @@ -27,7 +29,6 @@ import ( "testing" "time" - "golang.org/x/net/context" "google.golang.org/grpc/internal/leakcheck" "google.golang.org/grpc/resolver" ) @@ -904,7 +905,7 @@ func TestResolveFunc(t *testing.T) { {"[2001:db8::1]:", errEndsWithColon}, {":", errEndsWithColon}, {"", errMissingAddr}, - {"[2001:db8:a0b:12f0::1", errForInvalidTarget}, + {"[2001:db8:a0b:12f0::1", fmt.Errorf("invalid target address [2001:db8:a0b:12f0::1, error info: address [2001:db8:a0b:12f0::1:443: missing ']' in address")}, } b := NewBuilder() @@ -1018,3 +1019,106 @@ func TestDNSResolverRetry(t *testing.T) { } r.Close() } + +func TestCustomAuthority(t *testing.T) { + defer leakcheck.Check(t) + + tests := []struct { + authority string + authorityWant string + expectError bool + }{ + { + "4.3.2.1:" + defaultDNSSvrPort, + "4.3.2.1:" + defaultDNSSvrPort, + false, + }, + { + "4.3.2.1:123", + "4.3.2.1:123", + false, + }, + { + "4.3.2.1", + "4.3.2.1:" + defaultDNSSvrPort, + false, + }, + { + "::1", + "[::1]:" + defaultDNSSvrPort, + false, + }, + { + "[::1]", + "[::1]:" + defaultDNSSvrPort, + false, + }, + { + "[::1]:123", + "[::1]:123", + false, + }, + { + "dnsserver.com", + "dnsserver.com:" + defaultDNSSvrPort, + false, + }, + { + ":123", + "localhost:123", + false, + }, + { + ":", + "", + true, + }, + { + "[::1]:", + "", + true, + }, + { + "dnsserver.com:", + "", + true, + }, + } + oldCustomAuthorityDialler := customAuthorityDialler + defer func() { + customAuthorityDialler = oldCustomAuthorityDialler + }() + + for _, a := range tests { + errChan := make(chan error, 1) + customAuthorityDialler = func(authority string) func(ctx context.Context, network, address string) (net.Conn, error) { + if authority != a.authorityWant { + errChan <- fmt.Errorf("wrong custom authority passed to resolver. input: %s expected: %s actual: %s", a.authority, a.authorityWant, authority) + } else { + errChan <- nil + } + return func(ctx context.Context, network, address string) (net.Conn, error) { + return nil, errors.New("no need to dial") + } + } + + b := NewBuilder() + cc := &testClientConn{target: "foo.bar.com"} + r, err := b.Build(resolver.Target{Endpoint: "foo.bar.com", Authority: a.authority}, cc, resolver.BuildOption{}) + + if err == nil { + r.Close() + + err = <-errChan + if err != nil { + t.Errorf(err.Error()) + } + + if a.expectError { + t.Errorf("custom authority should have caused an error: %s", a.authority) + } + } else if !a.expectError { + t.Errorf("unexpected error using custom authority %s: %s", a.authority, err) + } + } +} diff --git a/vendor/google.golang.org/grpc/resolver/dns/go18_test.go b/vendor/google.golang.org/grpc/resolver/dns/go18_test.go deleted file mode 100644 index 1743f3a23..000000000 --- a/vendor/google.golang.org/grpc/resolver/dns/go18_test.go +++ /dev/null @@ -1,27 +0,0 @@ -// +build go1.8 - -/* - * - * Copyright 2018 gRPC authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package dns - -import ( - "fmt" -) - -var errForInvalidTarget = fmt.Errorf("invalid target address [2001:db8:a0b:12f0::1, error info: address [2001:db8:a0b:12f0::1:443: missing ']' in address") diff --git a/vendor/google.golang.org/grpc/resolver/dns/go19.go b/vendor/google.golang.org/grpc/resolver/dns/go19.go deleted file mode 100644 index 9886de275..000000000 --- a/vendor/google.golang.org/grpc/resolver/dns/go19.go +++ /dev/null @@ -1,54 +0,0 @@ -// +build go1.9 - -/* - * - * Copyright 2018 gRPC authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package dns - -import ( - "net" - - "golang.org/x/net/context" -) - -var ( - defaultResolver netResolver = net.DefaultResolver -) - -const defaultDNSSvrPort = "53" - -var customAuthorityDialler = func(authority string) func(ctx context.Context, network, address string) (net.Conn, error) { - return func(ctx context.Context, network, address string) (net.Conn, error) { - var dialer net.Dialer - return dialer.DialContext(ctx, network, authority) - } -} - -var customAuthorityResolver = func(authority string) (netResolver, error) { - host, port, err := parseTarget(authority, defaultDNSSvrPort) - if err != nil { - return nil, err - } - - authorityWithPort := net.JoinHostPort(host, port) - - return &net.Resolver{ - PreferGo: true, - Dial: customAuthorityDialler(authorityWithPort), - }, nil -} diff --git a/vendor/google.golang.org/grpc/resolver/dns/pre_go19.go b/vendor/google.golang.org/grpc/resolver/dns/pre_go19.go deleted file mode 100644 index 70428113b..000000000 --- a/vendor/google.golang.org/grpc/resolver/dns/pre_go19.go +++ /dev/null @@ -1,51 +0,0 @@ -// +build go1.6, !go1.9 - -/* - * - * Copyright 2018 gRPC authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package dns - -import ( - "fmt" - "net" - - "golang.org/x/net/context" -) - -var ( - defaultResolver netResolver = &preGo19Resolver{} -) - -type preGo19Resolver struct { -} - -func (*preGo19Resolver) LookupHost(ctx context.Context, host string) ([]string, error) { - return net.LookupHost(host) -} - -func (*preGo19Resolver) LookupSRV(ctx context.Context, service, proto, name string) (string, []*net.SRV, error) { - return net.LookupSRV(service, proto, name) -} - -func (*preGo19Resolver) LookupTXT(ctx context.Context, name string) ([]string, error) { - return net.LookupTXT(name) -} - -var customAuthorityResolver = func(authority string) (netResolver, error) { - return nil, fmt.Errorf("Default DNS resolver does not support custom DNS server with go < 1.9") -} diff --git a/vendor/google.golang.org/grpc/resolver_conn_wrapper.go b/vendor/google.golang.org/grpc/resolver_conn_wrapper.go index a6c02ac9e..9d7602539 100644 --- a/vendor/google.golang.org/grpc/resolver_conn_wrapper.go +++ b/vendor/google.golang.org/grpc/resolver_conn_wrapper.go @@ -93,47 +93,6 @@ func newCCResolverWrapper(cc *ClientConn) (*ccResolverWrapper, error) { return ccr, nil } -func (ccr *ccResolverWrapper) start() { - go ccr.watcher() -} - -// watcher processes address updates and service config updates sequentially. -// Otherwise, we need to resolve possible races between address and service -// config (e.g. they specify different balancer types). -func (ccr *ccResolverWrapper) watcher() { - for { - select { - case <-ccr.done: - return - default: - } - - select { - case addrs := <-ccr.addrCh: - select { - case <-ccr.done: - return - default: - } - grpclog.Infof("ccResolverWrapper: sending new addresses to cc: %v", addrs) - if channelz.IsOn() { - ccr.addChannelzTraceEvent(addrs) - } - ccr.cc.handleResolvedAddrs(addrs, nil) - case sc := <-ccr.scCh: - select { - case <-ccr.done: - return - default: - } - grpclog.Infof("ccResolverWrapper: got new service config: %v", sc) - ccr.cc.handleServiceConfig(sc) - case <-ccr.done: - return - } - } -} - func (ccr *ccResolverWrapper) resolveNow(o resolver.ResolveNowOption) { ccr.resolver.ResolveNow(o) } @@ -146,20 +105,27 @@ func (ccr *ccResolverWrapper) close() { // NewAddress is called by the resolver implemenetion to send addresses to gRPC. func (ccr *ccResolverWrapper) NewAddress(addrs []resolver.Address) { select { - case <-ccr.addrCh: + case <-ccr.done: + return default: } - ccr.addrCh <- addrs + grpclog.Infof("ccResolverWrapper: sending new addresses to cc: %v", addrs) + if channelz.IsOn() { + ccr.addChannelzTraceEvent(addrs) + } + ccr.cc.handleResolvedAddrs(addrs, nil) } // NewServiceConfig is called by the resolver implemenetion to send service // configs to gRPC. func (ccr *ccResolverWrapper) NewServiceConfig(sc string) { select { - case <-ccr.scCh: + case <-ccr.done: + return default: } - ccr.scCh <- sc + grpclog.Infof("ccResolverWrapper: got new service config: %v", sc) + ccr.cc.handleServiceConfig(sc) } func (ccr *ccResolverWrapper) addChannelzTraceEvent(addrs []resolver.Address) { diff --git a/vendor/google.golang.org/grpc/rpc_util.go b/vendor/google.golang.org/grpc/rpc_util.go index 6849e37a5..86f00e5a2 100644 --- a/vendor/google.golang.org/grpc/rpc_util.go +++ b/vendor/google.golang.org/grpc/rpc_util.go @@ -21,6 +21,7 @@ package grpc import ( "bytes" "compress/gzip" + "context" "encoding/binary" "fmt" "io" @@ -31,7 +32,6 @@ import ( "sync" "time" - "golang.org/x/net/context" "google.golang.org/grpc/codes" "google.golang.org/grpc/credentials" "google.golang.org/grpc/encoding" @@ -155,7 +155,7 @@ func (d *gzipDecompressor) Type() string { type callInfo struct { compressorType string failFast bool - stream *clientStream + stream ClientStream maxReceiveMessageSize *int maxSendMessageSize *int creds credentials.PerRPCCredentials @@ -598,13 +598,18 @@ func checkRecvPayload(pf payloadFormat, recvCompress string, haveCompressor bool return nil } -func recvAndDecompress(p *parser, s *transport.Stream, dc Decompressor, maxReceiveMessageSize int, inPayload *stats.InPayload, compressor encoding.Compressor) ([]byte, error) { +type payloadInfo struct { + wireLength int // The compressed length got from wire. + uncompressedBytes []byte +} + +func recvAndDecompress(p *parser, s *transport.Stream, dc Decompressor, maxReceiveMessageSize int, payInfo *payloadInfo, compressor encoding.Compressor) ([]byte, error) { pf, d, err := p.recvMsg(maxReceiveMessageSize) if err != nil { return nil, err } - if inPayload != nil { - inPayload.WireLength = len(d) + if payInfo != nil { + payInfo.wireLength = len(d) } if st := checkRecvPayload(pf, s.RecvCompress(), compressor != nil || dc != nil); st != nil { @@ -641,20 +646,16 @@ func recvAndDecompress(p *parser, s *transport.Stream, dc Decompressor, maxRecei // For the two compressor parameters, both should not be set, but if they are, // dc takes precedence over compressor. // TODO(dfawley): wrap the old compressor/decompressor using the new API? -func recv(p *parser, c baseCodec, s *transport.Stream, dc Decompressor, m interface{}, maxReceiveMessageSize int, inPayload *stats.InPayload, compressor encoding.Compressor) error { - d, err := recvAndDecompress(p, s, dc, maxReceiveMessageSize, inPayload, compressor) +func recv(p *parser, c baseCodec, s *transport.Stream, dc Decompressor, m interface{}, maxReceiveMessageSize int, payInfo *payloadInfo, compressor encoding.Compressor) error { + d, err := recvAndDecompress(p, s, dc, maxReceiveMessageSize, payInfo, compressor) if err != nil { return err } if err := c.Unmarshal(d, m); err != nil { return status.Errorf(codes.Internal, "grpc: failed to unmarshal the received message %v", err) } - if inPayload != nil { - inPayload.RecvTime = time.Now() - inPayload.Payload = m - // TODO truncate large payload. - inPayload.Data = d - inPayload.Length = len(d) + if payInfo != nil { + payInfo.uncompressedBytes = d } return nil } @@ -704,6 +705,31 @@ func Errorf(c codes.Code, format string, a ...interface{}) error { return status.Errorf(c, format, a...) } +// toRPCErr converts an error into an error from the status package. +func toRPCErr(err error) error { + if err == nil || err == io.EOF { + return err + } + if err == io.ErrUnexpectedEOF { + return status.Error(codes.Internal, err.Error()) + } + if _, ok := status.FromError(err); ok { + return err + } + switch e := err.(type) { + case transport.ConnectionError: + return status.Error(codes.Unavailable, e.Desc) + default: + switch err { + case context.DeadlineExceeded: + return status.Error(codes.DeadlineExceeded, err.Error()) + case context.Canceled: + return status.Error(codes.Canceled, err.Error()) + } + } + return status.Error(codes.Unknown, err.Error()) +} + // setCallInfoCodec should only be called after CallOptions have been applied. func setCallInfoCodec(c *callInfo) error { if c.codec != nil { diff --git a/vendor/google.golang.org/grpc/server.go b/vendor/google.golang.org/grpc/server.go index 920da5e01..d705d7a80 100644 --- a/vendor/google.golang.org/grpc/server.go +++ b/vendor/google.golang.org/grpc/server.go @@ -19,6 +19,7 @@ package grpc import ( + "context" "errors" "fmt" "io" @@ -32,7 +33,6 @@ import ( "sync/atomic" "time" - "golang.org/x/net/context" "golang.org/x/net/trace" "google.golang.org/grpc/codes" @@ -40,10 +40,12 @@ import ( "google.golang.org/grpc/encoding" "google.golang.org/grpc/encoding/proto" "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/internal/binarylog" "google.golang.org/grpc/internal/channelz" "google.golang.org/grpc/internal/transport" "google.golang.org/grpc/keepalive" "google.golang.org/grpc/metadata" + "google.golang.org/grpc/peer" "google.golang.org/grpc/stats" "google.golang.org/grpc/status" "google.golang.org/grpc/tap" @@ -535,7 +537,7 @@ func (s *Server) Serve(lis net.Listener) error { s.lis[ls] = true if channelz.IsOn() { - ls.channelzID = channelz.RegisterListenSocket(ls, s.channelzID, "") + ls.channelzID = channelz.RegisterListenSocket(ls, s.channelzID, lis.Addr().String()) } s.mu.Unlock() @@ -862,6 +864,30 @@ func (s *Server) processUnaryRPC(t transport.ServerTransport, stream *transport. }() } + binlog := binarylog.GetMethodLogger(stream.Method()) + if binlog != nil { + ctx := stream.Context() + md, _ := metadata.FromIncomingContext(ctx) + logEntry := &binarylog.ClientHeader{ + Header: md, + MethodName: stream.Method(), + PeerAddr: nil, + } + if deadline, ok := ctx.Deadline(); ok { + logEntry.Timeout = deadline.Sub(time.Now()) + if logEntry.Timeout < 0 { + logEntry.Timeout = 0 + } + } + if a := md[":authority"]; len(a) > 0 { + logEntry.Authority = a[0] + } + if peer, ok := peer.FromContext(ctx); ok { + logEntry.PeerAddr = peer.Addr + } + binlog.Log(logEntry) + } + // comp and cp are used for compression. decomp and dc are used for // decompression. If comp and decomp are both set, they are the same; // however they are kept separate to ensure that at most one of the @@ -898,13 +924,11 @@ func (s *Server) processUnaryRPC(t transport.ServerTransport, stream *transport. } } - var inPayload *stats.InPayload - if sh != nil { - inPayload = &stats.InPayload{ - RecvTime: time.Now(), - } + var payInfo *payloadInfo + if sh != nil || binlog != nil { + payInfo = &payloadInfo{} } - d, err := recvAndDecompress(&parser{r: stream}, stream, dc, s.opts.maxReceiveMessageSize, inPayload, decomp) + d, err := recvAndDecompress(&parser{r: stream}, stream, dc, s.opts.maxReceiveMessageSize, payInfo, decomp) if err != nil { if st, ok := status.FromError(err); ok { if e := t.WriteStatus(stream, st); e != nil { @@ -920,11 +944,18 @@ func (s *Server) processUnaryRPC(t transport.ServerTransport, stream *transport. if err := s.getCodec(stream.ContentSubtype()).Unmarshal(d, v); err != nil { return status.Errorf(codes.Internal, "grpc: error unmarshalling request: %v", err) } - if inPayload != nil { - inPayload.Payload = v - inPayload.Data = d - inPayload.Length = len(d) - sh.HandleRPC(stream.Context(), inPayload) + if sh != nil { + sh.HandleRPC(stream.Context(), &stats.InPayload{ + RecvTime: time.Now(), + Payload: v, + Data: d, + Length: len(d), + }) + } + if binlog != nil { + binlog.Log(&binarylog.ClientMessage{ + Message: d, + }) } if trInfo != nil { trInfo.tr.LazyLog(&payload{sent: false, msg: v}, true) @@ -947,6 +978,19 @@ func (s *Server) processUnaryRPC(t transport.ServerTransport, stream *transport. if e := t.WriteStatus(stream, appStatus); e != nil { grpclog.Warningf("grpc: Server.processUnaryRPC failed to write status: %v", e) } + if binlog != nil { + if h, _ := stream.Header(); h.Len() > 0 { + // Only log serverHeader if there was header. Otherwise it can + // be trailer only. + binlog.Log(&binarylog.ServerHeader{ + Header: h, + }) + } + binlog.Log(&binarylog.ServerTrailer{ + Trailer: stream.Trailer(), + Err: appErr, + }) + } return appErr } if trInfo != nil { @@ -971,8 +1015,27 @@ func (s *Server) processUnaryRPC(t transport.ServerTransport, stream *transport. panic(fmt.Sprintf("grpc: Unexpected error (%T) from sendResponse: %v", st, st)) } } + if binlog != nil { + h, _ := stream.Header() + binlog.Log(&binarylog.ServerHeader{ + Header: h, + }) + binlog.Log(&binarylog.ServerTrailer{ + Trailer: stream.Trailer(), + Err: appErr, + }) + } return err } + if binlog != nil { + h, _ := stream.Header() + binlog.Log(&binarylog.ServerHeader{ + Header: h, + }) + binlog.Log(&binarylog.ServerMessage{ + Message: reply, + }) + } if channelz.IsOn() { t.IncrMsgSent() } @@ -982,7 +1045,14 @@ func (s *Server) processUnaryRPC(t transport.ServerTransport, stream *transport. // TODO: Should we be logging if writing status failed here, like above? // Should the logging be in WriteStatus? Should we ignore the WriteStatus // error or allow the stats handler to see it? - return t.WriteStatus(stream, status.New(codes.OK, "")) + err = t.WriteStatus(stream, status.New(codes.OK, "")) + if binlog != nil { + binlog.Log(&binarylog.ServerTrailer{ + Trailer: stream.Trailer(), + Err: appErr, + }) + } + return err } func (s *Server) processStreamingRPC(t transport.ServerTransport, stream *transport.Stream, srv *service, sd *StreamDesc, trInfo *traceInfo) (err error) { @@ -1027,6 +1097,29 @@ func (s *Server) processStreamingRPC(t transport.ServerTransport, stream *transp statsHandler: sh, } + ss.binlog = binarylog.GetMethodLogger(stream.Method()) + if ss.binlog != nil { + md, _ := metadata.FromIncomingContext(ctx) + logEntry := &binarylog.ClientHeader{ + Header: md, + MethodName: stream.Method(), + PeerAddr: nil, + } + if deadline, ok := ctx.Deadline(); ok { + logEntry.Timeout = deadline.Sub(time.Now()) + if logEntry.Timeout < 0 { + logEntry.Timeout = 0 + } + } + if a := md[":authority"]; len(a) > 0 { + logEntry.Authority = a[0] + } + if peer, ok := peer.FromContext(ss.Context()); ok { + logEntry.PeerAddr = peer.Addr + } + ss.binlog.Log(logEntry) + } + // If dc is set and matches the stream's compression, use it. Otherwise, try // to find a matching registered compressor for decomp. if rc := stream.RecvCompress(); s.opts.dc != nil && s.opts.dc.Type() == rc { @@ -1096,6 +1189,12 @@ func (s *Server) processStreamingRPC(t transport.ServerTransport, stream *transp ss.mu.Unlock() } t.WriteStatus(ss.s, appStatus) + if ss.binlog != nil { + ss.binlog.Log(&binarylog.ServerTrailer{ + Trailer: ss.s.Trailer(), + Err: appErr, + }) + } // TODO: Should we log an error from WriteStatus here and below? return appErr } @@ -1104,7 +1203,14 @@ func (s *Server) processStreamingRPC(t transport.ServerTransport, stream *transp ss.trInfo.tr.LazyLog(stringer("OK"), false) ss.mu.Unlock() } - return t.WriteStatus(ss.s, status.New(codes.OK, "")) + err = t.WriteStatus(ss.s, status.New(codes.OK, "")) + if ss.binlog != nil { + ss.binlog.Log(&binarylog.ServerTrailer{ + Trailer: ss.s.Trailer(), + Err: appErr, + }) + } + return err } func (s *Server) handleStream(t transport.ServerTransport, stream *transport.Stream, trInfo *traceInfo) { diff --git a/vendor/google.golang.org/grpc/server_test.go b/vendor/google.golang.org/grpc/server_test.go index 11ce86733..125be01c5 100644 --- a/vendor/google.golang.org/grpc/server_test.go +++ b/vendor/google.golang.org/grpc/server_test.go @@ -19,13 +19,13 @@ package grpc import ( + "context" "net" "reflect" "strings" "testing" "time" - "golang.org/x/net/context" "google.golang.org/grpc/internal/leakcheck" "google.golang.org/grpc/internal/transport" ) diff --git a/vendor/google.golang.org/grpc/service_config.go b/vendor/google.golang.org/grpc/service_config.go index a305fe0a4..162857e20 100644 --- a/vendor/google.golang.org/grpc/service_config.go +++ b/vendor/google.golang.org/grpc/service_config.go @@ -96,6 +96,15 @@ type ServiceConfig struct { // If token_count is less than or equal to maxTokens / 2, then RPCs will not // be retried and hedged RPCs will not be sent. retryThrottling *retryThrottlingPolicy + // healthCheckConfig must be set as one of the requirement to enable LB channel + // health check. + healthCheckConfig *healthCheckConfig +} + +// healthCheckConfig defines the go-native version of the LB channel health check config. +type healthCheckConfig struct { + // serviceName is the service name to use in the health-checking request. + ServiceName string } // retryPolicy defines the go-native version of the retry policy defined by the @@ -226,6 +235,7 @@ type jsonSC struct { LoadBalancingPolicy *string MethodConfig *[]jsonMC RetryThrottling *retryThrottlingPolicy + HealthCheckConfig *healthCheckConfig } func parseServiceConfig(js string) (ServiceConfig, error) { @@ -239,9 +249,10 @@ func parseServiceConfig(js string) (ServiceConfig, error) { return ServiceConfig{}, err } sc := ServiceConfig{ - LB: rsc.LoadBalancingPolicy, - Methods: make(map[string]MethodConfig), - retryThrottling: rsc.RetryThrottling, + LB: rsc.LoadBalancingPolicy, + Methods: make(map[string]MethodConfig), + retryThrottling: rsc.RetryThrottling, + healthCheckConfig: rsc.HealthCheckConfig, } if rsc.MethodConfig == nil { return sc, nil diff --git a/vendor/google.golang.org/grpc/stats/handlers.go b/vendor/google.golang.org/grpc/stats/handlers.go index 05b384c69..dc03731e4 100644 --- a/vendor/google.golang.org/grpc/stats/handlers.go +++ b/vendor/google.golang.org/grpc/stats/handlers.go @@ -19,9 +19,8 @@ package stats import ( + "context" "net" - - "golang.org/x/net/context" ) // ConnTagInfo defines the relevant information needed by connection context tagger. diff --git a/vendor/google.golang.org/grpc/stats/stats.go b/vendor/google.golang.org/grpc/stats/stats.go index 3f13190a0..84f77dafa 100644 --- a/vendor/google.golang.org/grpc/stats/stats.go +++ b/vendor/google.golang.org/grpc/stats/stats.go @@ -24,10 +24,9 @@ package stats // import "google.golang.org/grpc/stats" import ( + "context" "net" "time" - - "golang.org/x/net/context" ) // RPCStats contains stats information about RPCs. diff --git a/vendor/google.golang.org/grpc/stats/stats_test.go b/vendor/google.golang.org/grpc/stats/stats_test.go index c48143a39..008d684c1 100644 --- a/vendor/google.golang.org/grpc/stats/stats_test.go +++ b/vendor/google.golang.org/grpc/stats/stats_test.go @@ -1,5 +1,3 @@ -// +build go1.7 - /* * * Copyright 2016 gRPC authors. @@ -21,6 +19,7 @@ package stats_test import ( + "context" "fmt" "io" "net" @@ -30,7 +29,6 @@ import ( "time" "github.com/golang/protobuf/proto" - "golang.org/x/net/context" "google.golang.org/grpc" "google.golang.org/grpc/metadata" "google.golang.org/grpc/stats" diff --git a/vendor/google.golang.org/grpc/status/go16.go b/vendor/google.golang.org/grpc/status/go16.go deleted file mode 100644 index e59b53e82..000000000 --- a/vendor/google.golang.org/grpc/status/go16.go +++ /dev/null @@ -1,42 +0,0 @@ -// +build go1.6,!go1.7 - -/* - * - * Copyright 2018 gRPC authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package status - -import ( - "golang.org/x/net/context" - "google.golang.org/grpc/codes" -) - -// FromContextError converts a context error into a Status. It returns a -// Status with codes.OK if err is nil, or a Status with codes.Unknown if err is -// non-nil and not a context error. -func FromContextError(err error) *Status { - switch err { - case nil: - return New(codes.OK, "") - case context.DeadlineExceeded: - return New(codes.DeadlineExceeded, err.Error()) - case context.Canceled: - return New(codes.Canceled, err.Error()) - default: - return New(codes.Unknown, err.Error()) - } -} diff --git a/vendor/google.golang.org/grpc/status/go17.go b/vendor/google.golang.org/grpc/status/go17.go deleted file mode 100644 index 090215149..000000000 --- a/vendor/google.golang.org/grpc/status/go17.go +++ /dev/null @@ -1,44 +0,0 @@ -// +build go1.7 - -/* - * - * Copyright 2018 gRPC authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package status - -import ( - "context" - - netctx "golang.org/x/net/context" - "google.golang.org/grpc/codes" -) - -// FromContextError converts a context error into a Status. It returns a -// Status with codes.OK if err is nil, or a Status with codes.Unknown if err is -// non-nil and not a context error. -func FromContextError(err error) *Status { - switch err { - case nil: - return New(codes.OK, "") - case context.DeadlineExceeded, netctx.DeadlineExceeded: - return New(codes.DeadlineExceeded, err.Error()) - case context.Canceled, netctx.Canceled: - return New(codes.Canceled, err.Error()) - default: - return New(codes.Unknown, err.Error()) - } -} diff --git a/vendor/google.golang.org/grpc/status/go17_test.go b/vendor/google.golang.org/grpc/status/go17_test.go deleted file mode 100644 index 2dc5add94..000000000 --- a/vendor/google.golang.org/grpc/status/go17_test.go +++ /dev/null @@ -1,44 +0,0 @@ -// +build go1.7 - -/* - * - * Copyright 2018 gRPC authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package status - -import ( - "context" - "testing" - - "google.golang.org/grpc/codes" -) - -func TestFromStdContextError(t *testing.T) { - testCases := []struct { - in error - want *Status - }{ - {in: context.DeadlineExceeded, want: New(codes.DeadlineExceeded, context.DeadlineExceeded.Error())}, - {in: context.Canceled, want: New(codes.Canceled, context.Canceled.Error())}, - } - for _, tc := range testCases { - got := FromContextError(tc.in) - if got.Code() != tc.want.Code() || got.Message() != tc.want.Message() { - t.Errorf("FromContextError(%v) = %v; want %v", tc.in, got, tc.want) - } - } -} diff --git a/vendor/google.golang.org/grpc/status/status.go b/vendor/google.golang.org/grpc/status/status.go index 897321bab..ed36681bb 100644 --- a/vendor/google.golang.org/grpc/status/status.go +++ b/vendor/google.golang.org/grpc/status/status.go @@ -28,6 +28,7 @@ package status import ( + "context" "errors" "fmt" @@ -191,3 +192,19 @@ func Code(err error) codes.Code { } return codes.Unknown } + +// FromContextError converts a context error into a Status. It returns a +// Status with codes.OK if err is nil, or a Status with codes.Unknown if err is +// non-nil and not a context error. +func FromContextError(err error) *Status { + switch err { + case nil: + return New(codes.OK, "") + case context.DeadlineExceeded: + return New(codes.DeadlineExceeded, err.Error()) + case context.Canceled: + return New(codes.Canceled, err.Error()) + default: + return New(codes.Unknown, err.Error()) + } +} diff --git a/vendor/google.golang.org/grpc/status/status_test.go b/vendor/google.golang.org/grpc/status/status_test.go index 1eb132093..011cb0aea 100644 --- a/vendor/google.golang.org/grpc/status/status_test.go +++ b/vendor/google.golang.org/grpc/status/status_test.go @@ -19,6 +19,7 @@ package status import ( + "context" "errors" "fmt" "reflect" @@ -28,7 +29,6 @@ import ( "github.com/golang/protobuf/ptypes" apb "github.com/golang/protobuf/ptypes/any" dpb "github.com/golang/protobuf/ptypes/duration" - "golang.org/x/net/context" cpb "google.golang.org/genproto/googleapis/rpc/code" epb "google.golang.org/genproto/googleapis/rpc/errdetails" spb "google.golang.org/genproto/googleapis/rpc/status" diff --git a/vendor/google.golang.org/grpc/stream.go b/vendor/google.golang.org/grpc/stream.go index b71eb3112..0c266d6f9 100644 --- a/vendor/google.golang.org/grpc/stream.go +++ b/vendor/google.golang.org/grpc/stream.go @@ -19,6 +19,7 @@ package grpc import ( + "context" "errors" "io" "math" @@ -26,16 +27,18 @@ import ( "sync" "time" - "golang.org/x/net/context" "golang.org/x/net/trace" "google.golang.org/grpc/balancer" "google.golang.org/grpc/codes" + "google.golang.org/grpc/connectivity" "google.golang.org/grpc/encoding" "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/internal/binarylog" "google.golang.org/grpc/internal/channelz" "google.golang.org/grpc/internal/grpcrand" "google.golang.org/grpc/internal/transport" "google.golang.org/grpc/metadata" + "google.golang.org/grpc/peer" "google.golang.org/grpc/stats" "google.golang.org/grpc/status" ) @@ -82,7 +85,8 @@ type ClientStream interface { // stream.Recv has returned a non-nil error (including io.EOF). Trailer() metadata.MD // CloseSend closes the send direction of the stream. It closes the stream - // when non-nil error is met. + // when non-nil error is met. It is also not safe to call CloseSend + // concurrently with SendMsg. CloseSend() error // Context returns the context for this stream. // @@ -105,7 +109,8 @@ type ClientStream interface { // // It is safe to have a goroutine calling SendMsg and another goroutine // calling RecvMsg on the same stream at the same time, but it is not safe - // to call SendMsg on the same stream in different goroutines. + // to call SendMsg on the same stream in different goroutines. It is also + // not safe to call CloseSend concurrently with SendMsg. SendMsg(m interface{}) error // RecvMsg blocks until it receives a message into m or the stream is // done. It returns io.EOF when the stream completes successfully. On @@ -160,6 +165,11 @@ func newClientStream(ctx context.Context, desc *StreamDesc, cc *ClientConn, meth }() } c := defaultCallInfo() + // Provide an opportunity for the first RPC to see the first service config + // provided by the resolver. + if err := cc.waitForResolvedAddrs(ctx); err != nil { + return nil, err + } mc := cc.GetMethodConfig(method) if mc.WaitForReady != nil { c.failFast = !*mc.WaitForReady @@ -262,6 +272,7 @@ func newClientStream(ctx context.Context, desc *StreamDesc, cc *ClientConn, meth if !cc.dopts.disableRetry { cs.retryThrottler = cc.retryThrottler.Load().(*retryThrottler) } + cs.binlog = binarylog.GetMethodLogger(method) cs.callInfo.stream = cs // Only this initial attempt has stats/tracing. @@ -277,6 +288,23 @@ func newClientStream(ctx context.Context, desc *StreamDesc, cc *ClientConn, meth return nil, err } + if cs.binlog != nil { + md, _ := metadata.FromOutgoingContext(ctx) + logEntry := &binarylog.ClientHeader{ + OnClientSide: true, + Header: md, + MethodName: method, + Authority: cs.cc.authority, + } + if deadline, ok := ctx.Deadline(); ok { + logEntry.Timeout = deadline.Sub(time.Now()) + if logEntry.Timeout < 0 { + logEntry.Timeout = 0 + } + } + cs.binlog.Log(logEntry) + } + if desc != unaryStreamDesc { // Listen on cc and stream contexts to cleanup when the user closes the // ClientConn or cancels the stream context. In all other cases, an error @@ -350,6 +378,15 @@ type clientStream struct { retryThrottler *retryThrottler // The throttler active when the RPC began. + binlog *binarylog.MethodLogger // Binary logger, can be nil. + // serverHeaderBinlogged is a boolean for whether server header has been + // logged. Server header will be logged when the first time one of those + // happens: stream.Header(), stream.Recv(). + // + // It's only read and used by Recv() and Header(), so it doesn't need to be + // synchronized. + serverHeaderBinlogged bool + mu sync.Mutex firstAttempt bool // if true, transparent retry is valid numRetries int // exclusive of transparent retry attempt(s) @@ -561,6 +598,20 @@ func (cs *clientStream) Header() (metadata.MD, error) { }, cs.commitAttemptLocked) if err != nil { cs.finish(err) + return nil, err + } + if cs.binlog != nil && !cs.serverHeaderBinlogged { + // Only log if binary log is on and header has not been logged. + logEntry := &binarylog.ServerHeader{ + OnClientSide: true, + Header: m, + PeerAddr: nil, + } + if peer, ok := peer.FromContext(cs.Context()); ok { + logEntry.PeerAddr = peer.Addr + } + cs.binlog.Log(logEntry) + cs.serverHeaderBinlogged = true } return m, err } @@ -633,6 +684,7 @@ func (cs *clientStream) SendMsg(m interface{}) (err error) { if len(payload) > *cs.callInfo.maxSendMessageSize { return status.Errorf(codes.ResourceExhausted, "trying to send message larger than max (%d vs. %d)", len(payload), *cs.callInfo.maxSendMessageSize) } + msgBytes := data // Store the pointer before setting to nil. For binary logging. op := func(a *csAttempt) error { err := a.sendMsg(m, hdr, payload, data) // nil out the message and uncomp when replaying; they are only needed for @@ -640,16 +692,53 @@ func (cs *clientStream) SendMsg(m interface{}) (err error) { m, data = nil, nil return err } - return cs.withRetry(op, func() { cs.bufferForRetryLocked(len(hdr)+len(payload), op) }) + err = cs.withRetry(op, func() { cs.bufferForRetryLocked(len(hdr)+len(payload), op) }) + if cs.binlog != nil && err == nil { + cs.binlog.Log(&binarylog.ClientMessage{ + OnClientSide: true, + Message: msgBytes, + }) + } + return } func (cs *clientStream) RecvMsg(m interface{}) error { + if cs.binlog != nil && !cs.serverHeaderBinlogged { + // Call Header() to binary log header if it's not already logged. + cs.Header() + } + var recvInfo *payloadInfo + if cs.binlog != nil { + recvInfo = &payloadInfo{} + } err := cs.withRetry(func(a *csAttempt) error { - return a.recvMsg(m) + return a.recvMsg(m, recvInfo) }, cs.commitAttemptLocked) + if cs.binlog != nil && err == nil { + cs.binlog.Log(&binarylog.ServerMessage{ + OnClientSide: true, + Message: recvInfo.uncompressedBytes, + }) + } if err != nil || !cs.desc.ServerStreams { // err != nil or non-server-streaming indicates end of stream. cs.finish(err) + + if cs.binlog != nil { + // finish will not log Trailer. Log Trailer here. + logEntry := &binarylog.ServerTrailer{ + OnClientSide: true, + Trailer: cs.Trailer(), + Err: err, + } + if logEntry.Err == io.EOF { + logEntry.Err = nil + } + if peer, ok := peer.FromContext(cs.Context()); ok { + logEntry.PeerAddr = peer.Addr + } + cs.binlog.Log(logEntry) + } } return err } @@ -669,6 +758,11 @@ func (cs *clientStream) CloseSend() error { return nil } cs.withRetry(op, func() { cs.bufferForRetryLocked(0, op) }) + if cs.binlog != nil { + cs.binlog.Log(&binarylog.ClientHalfClose{ + OnClientSide: true, + }) + } // We never returned an error here for reasons. return nil } @@ -686,6 +780,16 @@ func (cs *clientStream) finish(err error) { cs.finished = true cs.commitAttemptLocked() cs.mu.Unlock() + // For binary logging. only log cancel in finish (could be caused by RPC ctx + // canceled or ClientConn closed). Trailer will be logged in RecvMsg. + // + // Only one of cancel or trailer needs to be logged. In the cases where + // users don't call RecvMsg, users must have already canceled the RPC. + if cs.binlog != nil && status.Code(err) == codes.Canceled { + cs.binlog.Log(&binarylog.Cancel{ + OnClientSide: true, + }) + } if err == nil { cs.retryThrottler.successfulRPC() } @@ -735,14 +839,12 @@ func (a *csAttempt) sendMsg(m interface{}, hdr, payld, data []byte) error { return nil } -func (a *csAttempt) recvMsg(m interface{}) (err error) { +func (a *csAttempt) recvMsg(m interface{}, payInfo *payloadInfo) (err error) { cs := a.cs - var inPayload *stats.InPayload - if a.statsHandler != nil { - inPayload = &stats.InPayload{ - Client: true, - } + if a.statsHandler != nil && payInfo == nil { + payInfo = &payloadInfo{} } + if !a.decompSet { // Block until we receive headers containing received message encoding. if ct := a.s.RecvCompress(); ct != "" && ct != encoding.Identity { @@ -759,7 +861,7 @@ func (a *csAttempt) recvMsg(m interface{}) (err error) { // Only initialize this state once per stream. a.decompSet = true } - err = recv(a.p, cs.codec, a.s, a.dc, m, *cs.callInfo.maxReceiveMessageSize, inPayload, a.decomp) + err = recv(a.p, cs.codec, a.s, a.dc, m, *cs.callInfo.maxReceiveMessageSize, payInfo, a.decomp) if err != nil { if err == io.EOF { if statusErr := a.s.Status().Err(); statusErr != nil { @@ -776,8 +878,15 @@ func (a *csAttempt) recvMsg(m interface{}) (err error) { } a.mu.Unlock() } - if inPayload != nil { - a.statsHandler.HandleRPC(cs.ctx, inPayload) + if a.statsHandler != nil { + a.statsHandler.HandleRPC(cs.ctx, &stats.InPayload{ + Client: true, + RecvTime: time.Now(), + Payload: m, + // TODO truncate large payload. + Data: payInfo.uncompressedBytes, + Length: len(payInfo.uncompressedBytes), + }) } if channelz.IsOn() { a.t.IncrMsgRecv() @@ -786,7 +895,6 @@ func (a *csAttempt) recvMsg(m interface{}) (err error) { // Subsequent messages should be received by subsequent RecvMsg calls. return nil } - // Special handling for non-server-stream rpcs. // This recv expects EOF or errors, so we don't collect inPayload. err = recv(a.p, cs.codec, a.s, a.dc, m, *cs.callInfo.maxReceiveMessageSize, nil, a.decomp) @@ -850,6 +958,299 @@ func (a *csAttempt) finish(err error) { a.mu.Unlock() } +func (ac *addrConn) newClientStream(ctx context.Context, desc *StreamDesc, method string, t transport.ClientTransport, opts ...CallOption) (_ ClientStream, err error) { + ac.mu.Lock() + if ac.transport != t { + ac.mu.Unlock() + return nil, status.Error(codes.Canceled, "the provided transport is no longer valid to use") + } + // transition to CONNECTING state when an attempt starts + if ac.state != connectivity.Connecting { + ac.updateConnectivityState(connectivity.Connecting) + ac.cc.handleSubConnStateChange(ac.acbw, ac.state) + } + ac.mu.Unlock() + + if t == nil { + // TODO: return RPC error here? + return nil, errors.New("transport provided is nil") + } + // defaultCallInfo contains unnecessary info(i.e. failfast, maxRetryRPCBufferSize), so we just initialize an empty struct. + c := &callInfo{} + + for _, o := range opts { + if err := o.before(c); err != nil { + return nil, toRPCErr(err) + } + } + c.maxReceiveMessageSize = getMaxSize(nil, c.maxReceiveMessageSize, defaultClientMaxReceiveMessageSize) + c.maxSendMessageSize = getMaxSize(nil, c.maxSendMessageSize, defaultServerMaxSendMessageSize) + + // Possible context leak: + // The cancel function for the child context we create will only be called + // when RecvMsg returns a non-nil error, if the ClientConn is closed, or if + // an error is generated by SendMsg. + // https://github.com/grpc/grpc-go/issues/1818. + ctx, cancel := context.WithCancel(ctx) + defer func() { + if err != nil { + cancel() + } + }() + + if err := setCallInfoCodec(c); err != nil { + return nil, err + } + + callHdr := &transport.CallHdr{ + Host: ac.cc.authority, + Method: method, + ContentSubtype: c.contentSubtype, + } + + // Set our outgoing compression according to the UseCompressor CallOption, if + // set. In that case, also find the compressor from the encoding package. + // Otherwise, use the compressor configured by the WithCompressor DialOption, + // if set. + var cp Compressor + var comp encoding.Compressor + if ct := c.compressorType; ct != "" { + callHdr.SendCompress = ct + if ct != encoding.Identity { + comp = encoding.GetCompressor(ct) + if comp == nil { + return nil, status.Errorf(codes.Internal, "grpc: Compressor is not installed for requested grpc-encoding %q", ct) + } + } + } else if ac.cc.dopts.cp != nil { + callHdr.SendCompress = ac.cc.dopts.cp.Type() + cp = ac.cc.dopts.cp + } + if c.creds != nil { + callHdr.Creds = c.creds + } + + as := &addrConnStream{ + callHdr: callHdr, + ac: ac, + ctx: ctx, + cancel: cancel, + opts: opts, + callInfo: c, + desc: desc, + codec: c.codec, + cp: cp, + comp: comp, + t: t, + } + + as.callInfo.stream = as + s, err := as.t.NewStream(as.ctx, as.callHdr) + if err != nil { + err = toRPCErr(err) + return nil, err + } + as.s = s + as.p = &parser{r: s} + ac.incrCallsStarted() + if desc != unaryStreamDesc { + // Listen on cc and stream contexts to cleanup when the user closes the + // ClientConn or cancels the stream context. In all other cases, an error + // should already be injected into the recv buffer by the transport, which + // the client will eventually receive, and then we will cancel the stream's + // context in clientStream.finish. + go func() { + select { + case <-ac.ctx.Done(): + as.finish(status.Error(codes.Canceled, "grpc: the SubConn is closing")) + case <-ctx.Done(): + as.finish(toRPCErr(ctx.Err())) + } + }() + } + return as, nil +} + +type addrConnStream struct { + s *transport.Stream + ac *addrConn + callHdr *transport.CallHdr + cancel context.CancelFunc + opts []CallOption + callInfo *callInfo + t transport.ClientTransport + ctx context.Context + sentLast bool + desc *StreamDesc + codec baseCodec + cp Compressor + comp encoding.Compressor + decompSet bool + dc Decompressor + decomp encoding.Compressor + p *parser + done func(balancer.DoneInfo) + mu sync.Mutex + finished bool +} + +func (as *addrConnStream) Header() (metadata.MD, error) { + m, err := as.s.Header() + if err != nil { + as.finish(toRPCErr(err)) + } + return m, err +} + +func (as *addrConnStream) Trailer() metadata.MD { + return as.s.Trailer() +} + +func (as *addrConnStream) CloseSend() error { + if as.sentLast { + // TODO: return an error and finish the stream instead, due to API misuse? + return nil + } + as.sentLast = true + + as.t.Write(as.s, nil, nil, &transport.Options{Last: true}) + // Always return nil; io.EOF is the only error that might make sense + // instead, but there is no need to signal the client to call RecvMsg + // as the only use left for the stream after CloseSend is to call + // RecvMsg. This also matches historical behavior. + return nil +} + +func (as *addrConnStream) Context() context.Context { + return as.s.Context() +} + +func (as *addrConnStream) SendMsg(m interface{}) (err error) { + defer func() { + if err != nil && err != io.EOF { + // Call finish on the client stream for errors generated by this SendMsg + // call, as these indicate problems created by this client. (Transport + // errors are converted to an io.EOF error in csAttempt.sendMsg; the real + // error will be returned from RecvMsg eventually in that case, or be + // retried.) + as.finish(err) + } + }() + if as.sentLast { + return status.Errorf(codes.Internal, "SendMsg called after CloseSend") + } + if !as.desc.ClientStreams { + as.sentLast = true + } + data, err := encode(as.codec, m) + if err != nil { + return err + } + compData, err := compress(data, as.cp, as.comp) + if err != nil { + return err + } + hdr, payld := msgHeader(data, compData) + // TODO(dfawley): should we be checking len(data) instead? + if len(payld) > *as.callInfo.maxSendMessageSize { + return status.Errorf(codes.ResourceExhausted, "trying to send message larger than max (%d vs. %d)", len(payld), *as.callInfo.maxSendMessageSize) + } + + if err := as.t.Write(as.s, hdr, payld, &transport.Options{Last: !as.desc.ClientStreams}); err != nil { + if !as.desc.ClientStreams { + // For non-client-streaming RPCs, we return nil instead of EOF on error + // because the generated code requires it. finish is not called; RecvMsg() + // will call it with the stream's status independently. + return nil + } + return io.EOF + } + + if channelz.IsOn() { + as.t.IncrMsgSent() + } + return nil +} + +func (as *addrConnStream) RecvMsg(m interface{}) (err error) { + defer func() { + if err != nil || !as.desc.ServerStreams { + // err != nil or non-server-streaming indicates end of stream. + as.finish(err) + } + }() + + if !as.decompSet { + // Block until we receive headers containing received message encoding. + if ct := as.s.RecvCompress(); ct != "" && ct != encoding.Identity { + if as.dc == nil || as.dc.Type() != ct { + // No configured decompressor, or it does not match the incoming + // message encoding; attempt to find a registered compressor that does. + as.dc = nil + as.decomp = encoding.GetCompressor(ct) + } + } else { + // No compression is used; disable our decompressor. + as.dc = nil + } + // Only initialize this state once per stream. + as.decompSet = true + } + err = recv(as.p, as.codec, as.s, as.dc, m, *as.callInfo.maxReceiveMessageSize, nil, as.decomp) + if err != nil { + if err == io.EOF { + if statusErr := as.s.Status().Err(); statusErr != nil { + return statusErr + } + return io.EOF // indicates successful end of stream. + } + return toRPCErr(err) + } + + if channelz.IsOn() { + as.t.IncrMsgRecv() + } + if as.desc.ServerStreams { + // Subsequent messages should be received by subsequent RecvMsg calls. + return nil + } + + // Special handling for non-server-stream rpcs. + // This recv expects EOF or errors, so we don't collect inPayload. + err = recv(as.p, as.codec, as.s, as.dc, m, *as.callInfo.maxReceiveMessageSize, nil, as.decomp) + if err == nil { + return toRPCErr(errors.New("grpc: client streaming protocol violation: get , want ")) + } + if err == io.EOF { + return as.s.Status().Err() // non-server streaming Recv returns nil on success + } + return toRPCErr(err) +} + +func (as *addrConnStream) finish(err error) { + as.mu.Lock() + if as.finished { + as.mu.Unlock() + return + } + as.finished = true + if err == io.EOF { + // Ending a stream with EOF indicates a success. + err = nil + } + if as.s != nil { + as.t.CloseStream(as.s, err) + } + + if err != nil { + as.ac.incrCallsFailed() + } else { + as.ac.incrCallsSucceeded() + } + as.cancel() + as.mu.Unlock() +} + // ServerStream defines the server-side behavior of a streaming RPC. // // All errors returned from ServerStream methods are compatible with the @@ -916,6 +1317,15 @@ type serverStream struct { statsHandler stats.Handler + binlog *binarylog.MethodLogger + // serverHeaderBinlogged indicates whether server header has been logged. It + // will happen when one of the following two happens: stream.SendHeader(), + // stream.Send(). + // + // It's only checked in send and sendHeader, doesn't need to be + // synchronized. + serverHeaderBinlogged bool + mu sync.Mutex // protects trInfo.tr after the service handler runs. } @@ -931,7 +1341,15 @@ func (ss *serverStream) SetHeader(md metadata.MD) error { } func (ss *serverStream) SendHeader(md metadata.MD) error { - return ss.t.WriteHeader(ss.s, md) + err := ss.t.WriteHeader(ss.s, md) + if ss.binlog != nil && !ss.serverHeaderBinlogged { + h, _ := ss.s.Header() + ss.binlog.Log(&binarylog.ServerHeader{ + Header: h, + }) + ss.serverHeaderBinlogged = true + } + return err } func (ss *serverStream) SetTrailer(md metadata.MD) { @@ -958,6 +1376,12 @@ func (ss *serverStream) SendMsg(m interface{}) (err error) { if err != nil && err != io.EOF { st, _ := status.FromError(toRPCErr(err)) ss.t.WriteStatus(ss.s, st) + // Non-user specified status was sent out. This should be an error + // case (as a server side Cancel maybe). + // + // This is not handled specifically now. User will return a final + // status from the service handler, we will log that error instead. + // This behavior is similar to an interceptor. } if channelz.IsOn() && err == nil { ss.t.IncrMsgSent() @@ -979,6 +1403,18 @@ func (ss *serverStream) SendMsg(m interface{}) (err error) { if err := ss.t.Write(ss.s, hdr, payload, &transport.Options{Last: false}); err != nil { return toRPCErr(err) } + if ss.binlog != nil { + if !ss.serverHeaderBinlogged { + h, _ := ss.s.Header() + ss.binlog.Log(&binarylog.ServerHeader{ + Header: h, + }) + ss.serverHeaderBinlogged = true + } + ss.binlog.Log(&binarylog.ServerMessage{ + Message: data, + }) + } if ss.statsHandler != nil { ss.statsHandler.HandleRPC(ss.s.Context(), outPayload(false, m, data, payload, time.Now())) } @@ -1002,17 +1438,26 @@ func (ss *serverStream) RecvMsg(m interface{}) (err error) { if err != nil && err != io.EOF { st, _ := status.FromError(toRPCErr(err)) ss.t.WriteStatus(ss.s, st) + // Non-user specified status was sent out. This should be an error + // case (as a server side Cancel maybe). + // + // This is not handled specifically now. User will return a final + // status from the service handler, we will log that error instead. + // This behavior is similar to an interceptor. } if channelz.IsOn() && err == nil { ss.t.IncrMsgRecv() } }() - var inPayload *stats.InPayload - if ss.statsHandler != nil { - inPayload = &stats.InPayload{} + var payInfo *payloadInfo + if ss.statsHandler != nil || ss.binlog != nil { + payInfo = &payloadInfo{} } - if err := recv(ss.p, ss.codec, ss.s, ss.dc, m, ss.maxReceiveMessageSize, inPayload, ss.decomp); err != nil { + if err := recv(ss.p, ss.codec, ss.s, ss.dc, m, ss.maxReceiveMessageSize, payInfo, ss.decomp); err != nil { if err == io.EOF { + if ss.binlog != nil { + ss.binlog.Log(&binarylog.ClientHalfClose{}) + } return err } if err == io.ErrUnexpectedEOF { @@ -1020,8 +1465,19 @@ func (ss *serverStream) RecvMsg(m interface{}) (err error) { } return toRPCErr(err) } - if inPayload != nil { - ss.statsHandler.HandleRPC(ss.s.Context(), inPayload) + if ss.statsHandler != nil { + ss.statsHandler.HandleRPC(ss.s.Context(), &stats.InPayload{ + RecvTime: time.Now(), + Payload: m, + // TODO truncate large payload. + Data: payInfo.uncompressedBytes, + Length: len(payInfo.uncompressedBytes), + }) + } + if ss.binlog != nil { + ss.binlog.Log(&binarylog.ClientMessage{ + Message: payInfo.uncompressedBytes, + }) } return nil } diff --git a/vendor/google.golang.org/grpc/stress/client/main.go b/vendor/google.golang.org/grpc/stress/client/main.go index dab8a9d74..82febbc24 100644 --- a/vendor/google.golang.org/grpc/stress/client/main.go +++ b/vendor/google.golang.org/grpc/stress/client/main.go @@ -22,6 +22,7 @@ package main import ( + "context" "flag" "fmt" "math/rand" @@ -31,7 +32,6 @@ import ( "sync" "time" - "golang.org/x/net/context" "google.golang.org/grpc" "google.golang.org/grpc/codes" "google.golang.org/grpc/credentials" diff --git a/vendor/google.golang.org/grpc/stress/metrics_client/main.go b/vendor/google.golang.org/grpc/stress/metrics_client/main.go index 70b024b63..c9a5c8c55 100644 --- a/vendor/google.golang.org/grpc/stress/metrics_client/main.go +++ b/vendor/google.golang.org/grpc/stress/metrics_client/main.go @@ -19,11 +19,11 @@ package main import ( + "context" "flag" "fmt" "io" - "golang.org/x/net/context" "google.golang.org/grpc" "google.golang.org/grpc/grpclog" metricspb "google.golang.org/grpc/stress/grpc_testing" diff --git a/vendor/google.golang.org/grpc/tap/tap.go b/vendor/google.golang.org/grpc/tap/tap.go index 22b8fb50d..584360f68 100644 --- a/vendor/google.golang.org/grpc/tap/tap.go +++ b/vendor/google.golang.org/grpc/tap/tap.go @@ -21,7 +21,7 @@ package tap import ( - "golang.org/x/net/context" + "context" ) // Info defines the relevant information needed by the handles. diff --git a/vendor/google.golang.org/grpc/test/balancer_test.go b/vendor/google.golang.org/grpc/test/balancer_test.go index 5eb51af04..188f5debe 100644 --- a/vendor/google.golang.org/grpc/test/balancer_test.go +++ b/vendor/google.golang.org/grpc/test/balancer_test.go @@ -19,11 +19,11 @@ package test import ( + "context" "reflect" "testing" "time" - "golang.org/x/net/context" "google.golang.org/grpc" "google.golang.org/grpc/balancer" "google.golang.org/grpc/connectivity" @@ -68,7 +68,7 @@ func (b *testBalancer) HandleResolvedAddrs(addrs []resolver.Address, err error) grpclog.Errorf("testBalancer: failed to NewSubConn: %v", err) return } - b.cc.UpdateBalancerState(connectivity.Idle, &picker{sc: b.sc, bal: b}) + b.cc.UpdateBalancerState(connectivity.Connecting, &picker{sc: b.sc, bal: b}) b.sc.Connect() } } diff --git a/vendor/google.golang.org/grpc/test/channelz_test.go b/vendor/google.golang.org/grpc/test/channelz_test.go index c204e35f1..9a5abfe6a 100644 --- a/vendor/google.golang.org/grpc/test/channelz_test.go +++ b/vendor/google.golang.org/grpc/test/channelz_test.go @@ -19,19 +19,22 @@ package test import ( + "context" + "crypto/tls" "fmt" "net" + "reflect" "sync" "testing" "time" - "golang.org/x/net/context" "golang.org/x/net/http2" "google.golang.org/grpc" _ "google.golang.org/grpc/balancer/grpclb" "google.golang.org/grpc/balancer/roundrobin" "google.golang.org/grpc/codes" "google.golang.org/grpc/connectivity" + "google.golang.org/grpc/credentials" "google.golang.org/grpc/internal/channelz" "google.golang.org/grpc/internal/leakcheck" "google.golang.org/grpc/keepalive" @@ -39,6 +42,7 @@ import ( "google.golang.org/grpc/resolver/manual" "google.golang.org/grpc/status" testpb "google.golang.org/grpc/test/grpc_testing" + "google.golang.org/grpc/testdata" ) func (te *test) startServers(ts testpb.TestServiceServer, num int) { @@ -1196,6 +1200,82 @@ func TestCZServerSocketMetricsKeepAlive(t *testing.T) { } } +var cipherSuites = []string{ + "TLS_RSA_WITH_RC4_128_SHA", + "TLS_RSA_WITH_3DES_EDE_CBC_SHA", + "TLS_RSA_WITH_AES_128_CBC_SHA", + "TLS_RSA_WITH_AES_256_CBC_SHA", + "TLS_RSA_WITH_AES_128_GCM_SHA256", + "TLS_RSA_WITH_AES_256_GCM_SHA384", + "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA", + "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA", + "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA", + "TLS_ECDHE_RSA_WITH_RC4_128_SHA", + "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA", + "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA", + "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA", + "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", + "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", + "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", + "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384", + "TLS_FALLBACK_SCSV", + "TLS_RSA_WITH_AES_128_CBC_SHA256", + "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256", + "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256", + "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305", + "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305", +} + +func TestCZSocketGetSecurityValueTLS(t *testing.T) { + defer leakcheck.Check(t) + channelz.NewChannelzStorage() + e := tcpTLSRREnv + te := newTest(t, e) + te.startServer(&testServer{security: e.security}) + defer te.tearDown() + te.clientConn() + if err := verifyResultWithDelay(func() (bool, error) { + tchan, _ := channelz.GetTopChannels(0) + if len(tchan) != 1 { + return false, fmt.Errorf("there should only be one top channel, not %d", len(tchan)) + } + if len(tchan[0].SubChans) != 1 { + return false, fmt.Errorf("there should only be one subchannel under top channel %d, not %d", tchan[0].ID, len(tchan[0].SubChans)) + } + var id int64 + for id = range tchan[0].SubChans { + break + } + sc := channelz.GetSubChannel(id) + if sc == nil { + return false, fmt.Errorf("there should only be one socket under subchannel %d, not 0", id) + } + if len(sc.Sockets) != 1 { + return false, fmt.Errorf("there should only be one socket under subchannel %d, not %d", sc.ID, len(sc.Sockets)) + } + for id = range sc.Sockets { + break + } + skt := channelz.GetSocket(id) + cert, _ := tls.LoadX509KeyPair(testdata.Path("server1.pem"), testdata.Path("server1.key")) + securityVal, ok := skt.SocketData.Security.(*credentials.TLSChannelzSecurityValue) + if !ok { + return false, fmt.Errorf("the SocketData.Security is of type: %T, want: *credentials.TLSChannelzSecurityValue", skt.SocketData.Security) + } + if !reflect.DeepEqual(securityVal.RemoteCertificate, cert.Certificate[0]) { + return false, fmt.Errorf("SocketData.Security.RemoteCertificate got: %v, want: %v", securityVal.RemoteCertificate, cert.Certificate[0]) + } + for _, v := range cipherSuites { + if v == securityVal.StandardName { + return true, nil + } + } + return false, fmt.Errorf("SocketData.Security.StandardName got: %v, want it to be one of %v ", securityVal.StandardName, cipherSuites) + }); err != nil { + t.Fatal(err) + } +} + func TestCZChannelTraceCreationDeletion(t *testing.T) { defer leakcheck.Check(t) channelz.NewChannelzStorage() diff --git a/vendor/google.golang.org/grpc/test/creds_test.go b/vendor/google.golang.org/grpc/test/creds_test.go index f56440fa2..58418f782 100644 --- a/vendor/google.golang.org/grpc/test/creds_test.go +++ b/vendor/google.golang.org/grpc/test/creds_test.go @@ -22,9 +22,9 @@ package test // tests to this file. import ( + "context" "testing" - "golang.org/x/net/context" "google.golang.org/grpc" "google.golang.org/grpc/credentials" "google.golang.org/grpc/internal/leakcheck" diff --git a/vendor/google.golang.org/grpc/test/end2end_test.go b/vendor/google.golang.org/grpc/test/end2end_test.go index 30d8a8c8d..8fdca906a 100644 --- a/vendor/google.golang.org/grpc/test/end2end_test.go +++ b/vendor/google.golang.org/grpc/test/end2end_test.go @@ -23,6 +23,7 @@ package test import ( "bytes" + "context" "crypto/tls" "errors" "flag" @@ -43,7 +44,6 @@ import ( "github.com/golang/protobuf/proto" anypb "github.com/golang/protobuf/ptypes/any" - "golang.org/x/net/context" "golang.org/x/net/http2" spb "google.golang.org/genproto/googleapis/rpc/status" "google.golang.org/grpc" @@ -2481,6 +2481,50 @@ func testHealthWatchMultipleClients(t *testing.T, e env) { healthWatchChecker(t, stream2, healthpb.HealthCheckResponse_NOT_SERVING) } +func TestHealthWatchSameStatus(t *testing.T) { + defer leakcheck.Check(t) + for _, e := range listTestEnv() { + testHealthWatchSameStatus(t, e) + } +} + +func testHealthWatchSameStatus(t *testing.T, e env) { + const service = "grpc.health.v1.Health1" + + hs := health.NewServer() + + te := newTest(t, e) + te.healthServer = hs + te.startServer(&testServer{security: e.security}) + defer te.tearDown() + + cc := te.clientConn() + hc := healthgrpc.NewHealthClient(cc) + + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + req := &healthpb.HealthCheckRequest{ + Service: service, + } + + stream1, err := hc.Watch(ctx, req) + if err != nil { + t.Fatalf("error: %v", err) + } + + healthWatchChecker(t, stream1, healthpb.HealthCheckResponse_SERVICE_UNKNOWN) + + hs.SetServingStatus(service, healthpb.HealthCheckResponse_SERVING) + + healthWatchChecker(t, stream1, healthpb.HealthCheckResponse_SERVING) + + hs.SetServingStatus(service, healthpb.HealthCheckResponse_SERVING) + hs.SetServingStatus(service, healthpb.HealthCheckResponse_NOT_SERVING) + + healthWatchChecker(t, stream1, healthpb.HealthCheckResponse_NOT_SERVING) +} + func TestHealthWatchServiceStatusSetBeforeStartingServer(t *testing.T) { defer leakcheck.Check(t) for _, e := range listTestEnv() { @@ -2634,7 +2678,7 @@ func testHealthWatchOverallServerHealthChange(t *testing.T, e env) { healthWatchChecker(t, stream, healthpb.HealthCheckResponse_NOT_SERVING) } -func healthWatchChecker(t *testing.T, stream healthpb.Health_WatchClient, expectedServingStatus healthpb.HealthCheckResponse_ServingStatus) { +func healthWatchChecker(t *testing.T, stream healthgrpc.Health_WatchClient, expectedServingStatus healthpb.HealthCheckResponse_ServingStatus) { response, err := stream.Recv() if err != nil { t.Fatalf("error on %v.Recv(): %v", stream, err) @@ -7103,3 +7147,55 @@ func (lis notifyingListener) Accept() (net.Conn, error) { defer lis.connEstablished.Fire() return lis.Listener.Accept() } + +func TestRPCWaitsForResolver(t *testing.T) { + te := testServiceConfigSetup(t, tcpClearRREnv) + te.startServer(&testServer{security: tcpClearRREnv.security}) + defer te.tearDown() + r, rcleanup := manual.GenerateAndRegisterManualResolver() + defer rcleanup() + + te.resolverScheme = r.Scheme() + te.nonBlockingDial = true + cc := te.clientConn() + tc := testpb.NewTestServiceClient(cc) + + ctx, cancel := context.WithTimeout(context.Background(), 500*time.Millisecond) + defer cancel() + // With no resolved addresses yet, this will timeout. + if _, err := tc.EmptyCall(ctx, &testpb.Empty{}); status.Code(err) != codes.DeadlineExceeded { + t.Fatalf("TestService/EmptyCall(_, _) = _, %v, want _, %s", err, codes.DeadlineExceeded) + } + + ctx, cancel = context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() + go func() { + time.Sleep(time.Second) + r.NewServiceConfig(`{ + "methodConfig": [ + { + "name": [ + { + "service": "grpc.testing.TestService", + "method": "UnaryCall" + } + ], + "maxRequestMessageBytes": 0 + } + ] + }`) + r.NewAddress([]resolver.Address{{Addr: te.srvAddr}}) + }() + // We wait a second before providing a service config and resolving + // addresses. So this will wait for that and then honor the + // maxRequestMessageBytes it contains. + if _, err := tc.UnaryCall(ctx, &testpb.SimpleRequest{ResponseType: testpb.PayloadType_UNCOMPRESSABLE}); status.Code(err) != codes.ResourceExhausted { + t.Fatalf("TestService/UnaryCall(_, _) = _, %v, want _, nil", err) + } + if got := ctx.Err(); got != nil { + t.Fatalf("ctx.Err() = %v; want nil (deadline should be set short by service config)", got) + } + if _, err := tc.UnaryCall(ctx, &testpb.SimpleRequest{}); err != nil { + t.Fatalf("TestService/UnaryCall(_, _) = _, %v, want _, nil", err) + } +} diff --git a/vendor/google.golang.org/grpc/test/go_vet/vet.go b/vendor/google.golang.org/grpc/test/go_vet/vet.go index f80ad6066..475e8d683 100644 --- a/vendor/google.golang.org/grpc/test/go_vet/vet.go +++ b/vendor/google.golang.org/grpc/test/go_vet/vet.go @@ -16,8 +16,8 @@ * */ -// vet.go is a script to check whether files that are supposed to be built on appengine import -// unsupported package (e.g. "unsafe", "syscall") or not. +// vet checks whether files that are supposed to be built on appengine running +// Go 1.10 or earlier import an unsupported package (e.g. "unsafe", "syscall"). package main import ( @@ -27,6 +27,7 @@ import ( ) func main() { + fail := false b := build.Default b.BuildTags = []string{"appengine", "appenginevm"} argsWithoutProg := os.Args[1:] @@ -36,12 +37,17 @@ func main() { continue } else if err != nil { fmt.Printf("build.Import failed due to %v\n", err) + fail = true continue } for _, pkg := range p.Imports { if pkg == "syscall" || pkg == "unsafe" { fmt.Printf("Package %s/%s importing %s package without appengine build tag is NOT ALLOWED!\n", p.Dir, p.Name, pkg) + fail = true } } } + if fail { + os.Exit(1) + } } diff --git a/vendor/google.golang.org/grpc/test/gracefulstop_test.go b/vendor/google.golang.org/grpc/test/gracefulstop_test.go index 560235859..be44ebb00 100644 --- a/vendor/google.golang.org/grpc/test/gracefulstop_test.go +++ b/vendor/google.golang.org/grpc/test/gracefulstop_test.go @@ -19,6 +19,7 @@ package test import ( + "context" "fmt" "io" "net" @@ -26,7 +27,6 @@ import ( "testing" "time" - "golang.org/x/net/context" "google.golang.org/grpc" "google.golang.org/grpc/internal/leakcheck" diff --git a/vendor/google.golang.org/grpc/test/healthcheck_test.go b/vendor/google.golang.org/grpc/test/healthcheck_test.go new file mode 100644 index 000000000..016ab4a62 --- /dev/null +++ b/vendor/google.golang.org/grpc/test/healthcheck_test.go @@ -0,0 +1,995 @@ +/* + * + * Copyright 2018 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package test + +import ( + "context" + "errors" + "fmt" + "net" + "sync" + "testing" + "time" + + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/connectivity" + _ "google.golang.org/grpc/health" + healthgrpc "google.golang.org/grpc/health/grpc_health_v1" + healthpb "google.golang.org/grpc/health/grpc_health_v1" + "google.golang.org/grpc/internal" + "google.golang.org/grpc/internal/channelz" + "google.golang.org/grpc/internal/leakcheck" + "google.golang.org/grpc/resolver" + "google.golang.org/grpc/resolver/manual" + "google.golang.org/grpc/status" + testpb "google.golang.org/grpc/test/grpc_testing" +) + +var testHealthCheckFunc = internal.HealthCheckFunc + +func replaceHealthCheckFunc(f func(context.Context, func() (interface{}, error), func(bool), string) error) func() { + oldHcFunc := internal.HealthCheckFunc + internal.HealthCheckFunc = f + return func() { + internal.HealthCheckFunc = oldHcFunc + } +} + +func newTestHealthServer() *testHealthServer { + return newTestHealthServerWithWatchFunc(defaultWatchFunc) +} + +func newTestHealthServerWithWatchFunc(f func(s *testHealthServer, in *healthpb.HealthCheckRequest, stream healthgrpc.Health_WatchServer) error) *testHealthServer { + return &testHealthServer{ + watchFunc: f, + update: make(chan struct{}, 1), + status: make(map[string]healthpb.HealthCheckResponse_ServingStatus), + } +} + +// defaultWatchFunc will send a HealthCheckResponse to the client whenever SetServingStatus is called. +func defaultWatchFunc(s *testHealthServer, in *healthpb.HealthCheckRequest, stream healthgrpc.Health_WatchServer) error { + if in.Service != "foo" { + return status.Error(codes.FailedPrecondition, + "the defaultWatchFunc only handles request with service name to be \"foo\"") + } + var done bool + for { + select { + case <-stream.Context().Done(): + done = true + case <-s.update: + } + if done { + break + } + s.mu.Lock() + resp := &healthpb.HealthCheckResponse{ + Status: s.status[in.Service], + } + s.mu.Unlock() + stream.SendMsg(resp) + } + return nil +} + +type testHealthServer struct { + watchFunc func(s *testHealthServer, in *healthpb.HealthCheckRequest, stream healthgrpc.Health_WatchServer) error + mu sync.Mutex + status map[string]healthpb.HealthCheckResponse_ServingStatus + update chan struct{} +} + +func (s *testHealthServer) Check(ctx context.Context, in *healthpb.HealthCheckRequest) (*healthpb.HealthCheckResponse, error) { + return &healthpb.HealthCheckResponse{ + Status: healthpb.HealthCheckResponse_SERVING, + }, nil +} + +func (s *testHealthServer) Watch(in *healthpb.HealthCheckRequest, stream healthgrpc.Health_WatchServer) error { + return s.watchFunc(s, in, stream) +} + +// SetServingStatus is called when need to reset the serving status of a service +// or insert a new service entry into the statusMap. +func (s *testHealthServer) SetServingStatus(service string, status healthpb.HealthCheckResponse_ServingStatus) { + s.mu.Lock() + s.status[service] = status + select { + case <-s.update: + default: + } + s.update <- struct{}{} + s.mu.Unlock() +} + +func TestHealthCheckWatchStateChange(t *testing.T) { + defer leakcheck.Check(t) + s := grpc.NewServer() + lis, err := net.Listen("tcp", "localhost:0") + if err != nil { + t.Fatalf("failed to listen due to err: %v", err) + } + ts := newTestHealthServer() + healthgrpc.RegisterHealthServer(s, ts) + go s.Serve(lis) + defer s.Stop() + + // The table below shows the expected series of addrConn connectivity transitions when server + // updates its health status. As there's only one addrConn corresponds with the ClientConn in this + // test, we use ClientConn's connectivity state as the addrConn connectivity state. + //+------------------------------+-------------------------------------------+ + //| Health Check Returned Status | Expected addrConn Connectivity Transition | + //+------------------------------+-------------------------------------------+ + //| NOT_SERVING | ->TRANSIENT FAILURE | + //| SERVING | ->READY | + //| SERVICE_UNKNOWN | ->TRANSIENT FAILURE | + //| SERVING | ->READY | + //| UNKNOWN | ->TRANSIENT FAILURE | + //+------------------------------+-------------------------------------------+ + ts.SetServingStatus("foo", healthpb.HealthCheckResponse_NOT_SERVING) + r, rcleanup := manual.GenerateAndRegisterManualResolver() + defer rcleanup() + cc, err := grpc.Dial(r.Scheme()+":///test.server", grpc.WithInsecure(), grpc.WithBalancerName("round_robin")) + if err != nil { + t.Fatalf("dial failed due to err: %v", err) + } + defer cc.Close() + + r.NewServiceConfig(`{ + "healthCheckConfig": { + "serviceName": "foo" + } +}`) + r.NewAddress([]resolver.Address{{Addr: lis.Addr().String()}}) + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() + if ok := cc.WaitForStateChange(ctx, connectivity.Idle); !ok { + t.Fatal("ClientConn is still in IDLE state when the context times out.") + } + if ok := cc.WaitForStateChange(ctx, connectivity.Connecting); !ok { + t.Fatal("ClientConn is still in CONNECTING state when the context times out.") + } + if s := cc.GetState(); s != connectivity.TransientFailure { + t.Fatalf("ClientConn is in %v state, want TRANSIENT FAILURE", s) + } + + ts.SetServingStatus("foo", healthpb.HealthCheckResponse_SERVING) + if ok := cc.WaitForStateChange(ctx, connectivity.TransientFailure); !ok { + t.Fatal("ClientConn is still in TRANSIENT FAILURE state when the context times out.") + } + if s := cc.GetState(); s != connectivity.Ready { + t.Fatalf("ClientConn is in %v state, want READY", s) + } + + ts.SetServingStatus("foo", healthpb.HealthCheckResponse_SERVICE_UNKNOWN) + if ok := cc.WaitForStateChange(ctx, connectivity.Ready); !ok { + t.Fatal("ClientConn is still in READY state when the context times out.") + } + if s := cc.GetState(); s != connectivity.TransientFailure { + t.Fatalf("ClientConn is in %v state, want TRANSIENT FAILURE", s) + } + + ts.SetServingStatus("foo", healthpb.HealthCheckResponse_SERVING) + if ok := cc.WaitForStateChange(ctx, connectivity.TransientFailure); !ok { + t.Fatal("ClientConn is still in TRANSIENT FAILURE state when the context times out.") + } + if s := cc.GetState(); s != connectivity.Ready { + t.Fatalf("ClientConn is in %v state, want READY", s) + } + + ts.SetServingStatus("foo", healthpb.HealthCheckResponse_UNKNOWN) + if ok := cc.WaitForStateChange(ctx, connectivity.Ready); !ok { + t.Fatal("ClientConn is still in READY state when the context times out.") + } + if s := cc.GetState(); s != connectivity.TransientFailure { + t.Fatalf("ClientConn is in %v state, want TRANSIENT FAILURE", s) + } +} + +// If Watch returns Unimplemented, then the ClientConn should go into READY state. +func TestHealthCheckHealthServerNotRegistered(t *testing.T) { + defer leakcheck.Check(t) + s := grpc.NewServer() + lis, err := net.Listen("tcp", "localhost:0") + if err != nil { + t.Fatalf("failed to listen due to err: %v", err) + } + go s.Serve(lis) + defer s.Stop() + + r, rcleanup := manual.GenerateAndRegisterManualResolver() + defer rcleanup() + cc, err := grpc.Dial(r.Scheme()+":///test.server", grpc.WithInsecure(), grpc.WithBalancerName("round_robin")) + if err != nil { + t.Fatalf("dial failed due to err: %v", err) + } + defer cc.Close() + + r.NewServiceConfig(`{ + "healthCheckConfig": { + "serviceName": "foo" + } +}`) + r.NewAddress([]resolver.Address{{Addr: lis.Addr().String()}}) + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() + + if ok := cc.WaitForStateChange(ctx, connectivity.Idle); !ok { + t.Fatal("ClientConn is still in IDLE state when the context times out.") + } + if ok := cc.WaitForStateChange(ctx, connectivity.Connecting); !ok { + t.Fatal("ClientConn is still in CONNECTING state when the context times out.") + } + if s := cc.GetState(); s != connectivity.Ready { + t.Fatalf("ClientConn is in %v state, want READY", s) + } +} + +// In the case of a goaway received, the health check stream should be terminated and health check +// function should exit. +func TestHealthCheckWithGoAway(t *testing.T) { + defer leakcheck.Check(t) + s := grpc.NewServer() + lis, err := net.Listen("tcp", "localhost:0") + if err != nil { + t.Fatalf("failed to listen due to err: %v", err) + } + ts := newTestHealthServer() + healthgrpc.RegisterHealthServer(s, ts) + testpb.RegisterTestServiceServer(s, &testServer{}) + go s.Serve(lis) + defer s.Stop() + ts.SetServingStatus("foo", healthpb.HealthCheckResponse_SERVING) + hcExitChan := make(chan struct{}) + testHealthCheckFuncWrapper := func(ctx context.Context, newStream func() (interface{}, error), update func(bool), service string) error { + err := testHealthCheckFunc(ctx, newStream, update, service) + close(hcExitChan) + return err + } + replace := replaceHealthCheckFunc(testHealthCheckFuncWrapper) + defer replace() + r, rcleanup := manual.GenerateAndRegisterManualResolver() + defer rcleanup() + + cc, err := grpc.Dial(r.Scheme()+":///test.server", grpc.WithInsecure(), grpc.WithBalancerName("round_robin")) + if err != nil { + t.Fatalf("dial failed due to err: %v", err) + } + defer cc.Close() + + tc := testpb.NewTestServiceClient(cc) + r.NewServiceConfig(`{ + "healthCheckConfig": { + "serviceName": "foo" + } +}`) + r.NewAddress([]resolver.Address{{Addr: lis.Addr().String()}}) + + // make some rpcs to make sure connection is working. + if err := verifyResultWithDelay(func() (bool, error) { + if _, err := tc.EmptyCall(context.Background(), &testpb.Empty{}); err != nil { + return false, fmt.Errorf("TestService/EmptyCall(_, _) = _, %v, want _, ", err) + } + return true, nil + }); err != nil { + t.Fatal(err) + } + + // the stream rpc will persist through goaway event. + ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) + defer cancel() + stream, err := tc.FullDuplexCall(ctx, grpc.FailFast(false)) + if err != nil { + t.Fatalf("%v.FullDuplexCall(_) = _, %v, want ", tc, err) + } + respParam := []*testpb.ResponseParameters{{Size: 1}} + payload, err := newPayload(testpb.PayloadType_COMPRESSABLE, int32(1)) + if err != nil { + t.Fatal(err) + } + req := &testpb.StreamingOutputCallRequest{ + ResponseParameters: respParam, + Payload: payload, + } + if err := stream.Send(req); err != nil { + t.Fatalf("%v.Send(_) = %v, want ", stream, err) + } + if _, err := stream.Recv(); err != nil { + t.Fatalf("%v.Recv() = _, %v, want _, ", stream, err) + } + + select { + case <-hcExitChan: + t.Fatal("Health check function has exited, which is not expected.") + default: + } + + // server sends GoAway + go s.GracefulStop() + + select { + case <-hcExitChan: + case <-time.After(5 * time.Second): + t.Fatal("Health check function has not exited after 5s.") + } + + // The existing RPC should be still good to proceed. + if err := stream.Send(req); err != nil { + t.Fatalf("%v.Send(_) = %v, want ", stream, err) + } + if _, err := stream.Recv(); err != nil { + t.Fatalf("%v.Recv() = _, %v, want _, ", stream, err) + } +} + +func TestHealthCheckWithConnClose(t *testing.T) { + defer leakcheck.Check(t) + s := grpc.NewServer() + lis, err := net.Listen("tcp", "localhost:0") + if err != nil { + t.Fatalf("failed to listen due to err: %v", err) + } + ts := newTestHealthServer() + healthgrpc.RegisterHealthServer(s, ts) + testpb.RegisterTestServiceServer(s, &testServer{}) + go s.Serve(lis) + defer s.Stop() + ts.SetServingStatus("foo", healthpb.HealthCheckResponse_SERVING) + hcExitChan := make(chan struct{}) + testHealthCheckFuncWrapper := func(ctx context.Context, newStream func() (interface{}, error), update func(bool), service string) error { + err := testHealthCheckFunc(ctx, newStream, update, service) + close(hcExitChan) + return err + } + + replace := replaceHealthCheckFunc(testHealthCheckFuncWrapper) + defer replace() + r, rcleanup := manual.GenerateAndRegisterManualResolver() + defer rcleanup() + cc, err := grpc.Dial(r.Scheme()+":///test.server", grpc.WithInsecure(), grpc.WithBalancerName("round_robin")) + if err != nil { + t.Fatalf("dial failed due to err: %v", err) + } + defer cc.Close() + tc := testpb.NewTestServiceClient(cc) + + r.NewServiceConfig(`{ + "healthCheckConfig": { + "serviceName": "foo" + } +}`) + r.NewAddress([]resolver.Address{{Addr: lis.Addr().String()}}) + + // make some rpcs to make sure connection is working. + if err := verifyResultWithDelay(func() (bool, error) { + if _, err := tc.EmptyCall(context.Background(), &testpb.Empty{}); err != nil { + return false, fmt.Errorf("TestService/EmptyCall(_, _) = _, %v, want _, ", err) + } + return true, nil + }); err != nil { + t.Fatal(err) + } + + select { + case <-hcExitChan: + t.Fatal("Health check function has exited, which is not expected.") + default: + } + // server closes the connection + s.Stop() + + select { + case <-hcExitChan: + case <-time.After(5 * time.Second): + t.Fatal("Health check function has not exited after 5s.") + } +} + +// addrConn drain happens when addrConn gets torn down due to its address being no longer in the +// address list returned by the resolver. +func TestHealthCheckWithAddrConnDrain(t *testing.T) { + defer leakcheck.Check(t) + s := grpc.NewServer() + lis, err := net.Listen("tcp", "localhost:0") + if err != nil { + t.Fatalf("failed to listen due to err: %v", err) + } + ts := newTestHealthServer() + healthgrpc.RegisterHealthServer(s, ts) + testpb.RegisterTestServiceServer(s, &testServer{}) + go s.Serve(lis) + defer s.Stop() + ts.SetServingStatus("foo", healthpb.HealthCheckResponse_SERVING) + hcExitChan := make(chan struct{}) + testHealthCheckFuncWrapper := func(ctx context.Context, newStream func() (interface{}, error), update func(bool), service string) error { + err := testHealthCheckFunc(ctx, newStream, update, service) + close(hcExitChan) + return err + } + + replace := replaceHealthCheckFunc(testHealthCheckFuncWrapper) + defer replace() + r, rcleanup := manual.GenerateAndRegisterManualResolver() + defer rcleanup() + cc, err := grpc.Dial(r.Scheme()+":///test.server", grpc.WithInsecure(), grpc.WithBalancerName("round_robin")) + if err != nil { + t.Fatalf("dial failed due to err: %v", err) + } + defer cc.Close() + + tc := testpb.NewTestServiceClient(cc) + r.NewServiceConfig(`{ + "healthCheckConfig": { + "serviceName": "foo" + } +}`) + r.NewAddress([]resolver.Address{{Addr: lis.Addr().String()}}) + + // make some rpcs to make sure connection is working. + if err := verifyResultWithDelay(func() (bool, error) { + if _, err := tc.EmptyCall(context.Background(), &testpb.Empty{}); err != nil { + return false, fmt.Errorf("TestService/EmptyCall(_, _) = _, %v, want _, ", err) + } + return true, nil + }); err != nil { + t.Fatal(err) + } + + // the stream rpc will persist through goaway event. + ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) + defer cancel() + stream, err := tc.FullDuplexCall(ctx, grpc.FailFast(false)) + if err != nil { + t.Fatalf("%v.FullDuplexCall(_) = _, %v, want ", tc, err) + } + respParam := []*testpb.ResponseParameters{{Size: 1}} + payload, err := newPayload(testpb.PayloadType_COMPRESSABLE, int32(1)) + if err != nil { + t.Fatal(err) + } + req := &testpb.StreamingOutputCallRequest{ + ResponseParameters: respParam, + Payload: payload, + } + if err := stream.Send(req); err != nil { + t.Fatalf("%v.Send(_) = %v, want ", stream, err) + } + if _, err := stream.Recv(); err != nil { + t.Fatalf("%v.Recv() = _, %v, want _, ", stream, err) + } + + select { + case <-hcExitChan: + t.Fatal("Health check function has exited, which is not expected.") + default: + } + // trigger teardown of the ac + r.NewAddress([]resolver.Address{}) + + select { + case <-hcExitChan: + case <-time.After(5 * time.Second): + t.Fatal("Health check function has not exited after 5s.") + } + + // The existing RPC should be still good to proceed. + if err := stream.Send(req); err != nil { + t.Fatalf("%v.Send(_) = %v, want ", stream, err) + } + if _, err := stream.Recv(); err != nil { + t.Fatalf("%v.Recv() = _, %v, want _, ", stream, err) + } +} + +// ClientConn close will lead to its addrConns being torn down. +func TestHealthCheckWithClientConnClose(t *testing.T) { + defer leakcheck.Check(t) + s := grpc.NewServer() + lis, err := net.Listen("tcp", "localhost:0") + if err != nil { + t.Fatalf("failed to listen due to err: %v", err) + } + ts := newTestHealthServer() + healthgrpc.RegisterHealthServer(s, ts) + testpb.RegisterTestServiceServer(s, &testServer{}) + go s.Serve(lis) + defer s.Stop() + ts.SetServingStatus("foo", healthpb.HealthCheckResponse_SERVING) + hcExitChan := make(chan struct{}) + testHealthCheckFuncWrapper := func(ctx context.Context, newStream func() (interface{}, error), update func(bool), service string) error { + err := testHealthCheckFunc(ctx, newStream, update, service) + close(hcExitChan) + return err + } + + replace := replaceHealthCheckFunc(testHealthCheckFuncWrapper) + defer replace() + r, rcleanup := manual.GenerateAndRegisterManualResolver() + defer rcleanup() + cc, err := grpc.Dial(r.Scheme()+":///test.server", grpc.WithInsecure(), grpc.WithBalancerName("round_robin")) + if err != nil { + t.Fatalf("dial failed due to err: %v", err) + } + defer cc.Close() + + tc := testpb.NewTestServiceClient(cc) + r.NewServiceConfig(`{ + "healthCheckConfig": { + "serviceName": "foo" + } +}`) + r.NewAddress([]resolver.Address{{Addr: lis.Addr().String()}}) + + // make some rpcs to make sure connection is working. + if err := verifyResultWithDelay(func() (bool, error) { + if _, err := tc.EmptyCall(context.Background(), &testpb.Empty{}); err != nil { + return false, fmt.Errorf("TestService/EmptyCall(_, _) = _, %v, want _, ", err) + } + return true, nil + }); err != nil { + t.Fatal(err) + } + + select { + case <-hcExitChan: + t.Fatal("Health check function has exited, which is not expected.") + default: + } + + // trigger addrConn teardown + cc.Close() + + select { + case <-hcExitChan: + case <-time.After(5 * time.Second): + t.Fatal("Health check function has not exited after 5s.") + } +} + +// This test is to test the logic in the createTransport after the health check function returns which +// closes the skipReset channel(since it has not been closed inside health check func) to unblock +// onGoAway/onClose goroutine. +func TestHealthCheckWithoutReportHealthCalledAddrConnShutDown(t *testing.T) { + defer leakcheck.Check(t) + s := grpc.NewServer() + lis, err := net.Listen("tcp", "localhost:0") + if err != nil { + t.Fatalf("failed to listen due to err %v", err) + } + ts := newTestHealthServerWithWatchFunc(func(s *testHealthServer, in *healthpb.HealthCheckRequest, stream healthgrpc.Health_WatchServer) error { + if in.Service != "delay" { + return status.Error(codes.FailedPrecondition, + "this special Watch function only handles request with service name to be \"delay\"") + } + // Do nothing to mock a delay of health check response from server side. + // This case is to help with the test that covers the condition that reportHealth is not + // called inside HealthCheckFunc before the func returns. + select { + case <-stream.Context().Done(): + case <-time.After(5 * time.Second): + } + return nil + }) + healthgrpc.RegisterHealthServer(s, ts) + testpb.RegisterTestServiceServer(s, &testServer{}) + go s.Serve(lis) + defer s.Stop() + ts.SetServingStatus("delay", healthpb.HealthCheckResponse_SERVING) + + hcEnterChan := make(chan struct{}) + hcExitChan := make(chan struct{}) + testHealthCheckFuncWrapper := func(ctx context.Context, newStream func() (interface{}, error), update func(bool), service string) error { + close(hcEnterChan) + err := testHealthCheckFunc(ctx, newStream, update, service) + close(hcExitChan) + return err + } + + replace := replaceHealthCheckFunc(testHealthCheckFuncWrapper) + defer replace() + r, rcleanup := manual.GenerateAndRegisterManualResolver() + defer rcleanup() + cc, err := grpc.Dial(r.Scheme()+":///test.server", grpc.WithInsecure(), grpc.WithBalancerName("round_robin")) + if err != nil { + t.Fatalf("dial failed due to err: %v", err) + } + defer cc.Close() + + // The serviceName "delay" is specially handled at server side, where response will not be sent + // back to client immediately upon receiving the request (client should receive no response until + // test ends). + r.NewServiceConfig(`{ + "healthCheckConfig": { + "serviceName": "delay" + } +}`) + r.NewAddress([]resolver.Address{{Addr: lis.Addr().String()}}) + + select { + case <-hcExitChan: + t.Fatal("Health check function has exited, which is not expected.") + default: + } + + select { + case <-hcEnterChan: + case <-time.After(5 * time.Second): + t.Fatal("Health check function has not been invoked after 5s.") + } + // trigger teardown of the ac, ac in SHUTDOWN state + r.NewAddress([]resolver.Address{}) + + // The health check func should exit without calling the reportHealth func, as server hasn't sent + // any response. + select { + case <-hcExitChan: + case <-time.After(5 * time.Second): + t.Fatal("Health check function has not exited after 5s.") + } + // The deferred leakcheck will check whether there's leaked goroutine, which is an indication + // whether we closes the skipReset channel to unblock onGoAway/onClose goroutine. +} + +// This test is to test the logic in the createTransport after the health check function returns which +// closes the allowedToReset channel(since it has not been closed inside health check func) to unblock +// onGoAway/onClose goroutine. +func TestHealthCheckWithoutReportHealthCalled(t *testing.T) { + defer leakcheck.Check(t) + s := grpc.NewServer() + lis, err := net.Listen("tcp", "localhost:0") + if err != nil { + t.Fatalf("failed to listen due to err: %v", err) + } + ts := newTestHealthServerWithWatchFunc(func(s *testHealthServer, in *healthpb.HealthCheckRequest, stream healthgrpc.Health_WatchServer) error { + if in.Service != "delay" { + return status.Error(codes.FailedPrecondition, + "this special Watch function only handles request with service name to be \"delay\"") + } + // Do nothing to mock a delay of health check response from server side. + // This case is to help with the test that covers the condition that reportHealth is not + // called inside HealthCheckFunc before the func returns. + select { + case <-stream.Context().Done(): + case <-time.After(5 * time.Second): + } + return nil + }) + healthgrpc.RegisterHealthServer(s, ts) + testpb.RegisterTestServiceServer(s, &testServer{}) + go s.Serve(lis) + defer s.Stop() + ts.SetServingStatus("delay", healthpb.HealthCheckResponse_SERVING) + + hcEnterChan := make(chan struct{}) + hcExitChan := make(chan struct{}) + testHealthCheckFuncWrapper := func(ctx context.Context, newStream func() (interface{}, error), update func(bool), service string) error { + close(hcEnterChan) + err := testHealthCheckFunc(ctx, newStream, update, service) + close(hcExitChan) + return err + } + + replace := replaceHealthCheckFunc(testHealthCheckFuncWrapper) + defer replace() + r, rcleanup := manual.GenerateAndRegisterManualResolver() + defer rcleanup() + cc, err := grpc.Dial(r.Scheme()+":///test.server", grpc.WithInsecure(), grpc.WithBalancerName("round_robin")) + if err != nil { + t.Fatalf("dial failed due to err: %v", err) + } + defer cc.Close() + + // The serviceName "delay" is specially handled at server side, where response will not be sent + // back to client immediately upon receiving the request (client should receive no response until + // test ends). + r.NewServiceConfig(`{ + "healthCheckConfig": { + "serviceName": "delay" + } +}`) + r.NewAddress([]resolver.Address{{Addr: lis.Addr().String()}}) + + select { + case <-hcExitChan: + t.Fatal("Health check function has exited, which is not expected.") + default: + } + + select { + case <-hcEnterChan: + case <-time.After(5 * time.Second): + t.Fatal("Health check function has not been invoked after 5s.") + } + // trigger transport being closed + s.Stop() + + // The health check func should exit without calling the reportHealth func, as server hasn't sent + // any response. + select { + case <-hcExitChan: + case <-time.After(5 * time.Second): + t.Fatal("Health check function has not exited after 5s.") + } + // The deferred leakcheck will check whether there's leaked goroutine, which is an indication + // whether we closes the allowedToReset channel to unblock onGoAway/onClose goroutine. +} + +func testHealthCheckDisableWithDialOption(t *testing.T, addr string) { + hcEnterChan := make(chan struct{}) + testHealthCheckFuncWrapper := func(ctx context.Context, newStream func() (interface{}, error), update func(bool), service string) error { + close(hcEnterChan) + return nil + } + + replace := replaceHealthCheckFunc(testHealthCheckFuncWrapper) + defer replace() + r, rcleanup := manual.GenerateAndRegisterManualResolver() + defer rcleanup() + cc, err := grpc.Dial(r.Scheme()+":///test.server", grpc.WithInsecure(), grpc.WithBalancerName("round_robin"), grpc.WithDisableHealthCheck()) + if err != nil { + t.Fatalf("dial failed due to err: %v", err) + } + tc := testpb.NewTestServiceClient(cc) + defer cc.Close() + r.NewServiceConfig(`{ + "healthCheckConfig": { + "serviceName": "foo" + } +}`) + r.NewAddress([]resolver.Address{{Addr: addr}}) + + // send some rpcs to make sure transport has been created and is ready for use. + if err := verifyResultWithDelay(func() (bool, error) { + if _, err := tc.EmptyCall(context.Background(), &testpb.Empty{}); err != nil { + return false, fmt.Errorf("TestService/EmptyCall(_, _) = _, %v, want _, ", err) + } + return true, nil + }); err != nil { + t.Fatal(err) + } + + select { + case <-hcEnterChan: + t.Fatal("Health check function has exited, which is not expected.") + default: + } +} + +func testHealthCheckDisableWithBalancer(t *testing.T, addr string) { + hcEnterChan := make(chan struct{}) + testHealthCheckFuncWrapper := func(ctx context.Context, newStream func() (interface{}, error), update func(bool), service string) error { + close(hcEnterChan) + return nil + } + + replace := replaceHealthCheckFunc(testHealthCheckFuncWrapper) + defer replace() + r, rcleanup := manual.GenerateAndRegisterManualResolver() + defer rcleanup() + cc, err := grpc.Dial(r.Scheme()+":///test.server", grpc.WithInsecure(), grpc.WithBalancerName("pick_first")) + if err != nil { + t.Fatalf("dial failed due to err: %v", err) + } + tc := testpb.NewTestServiceClient(cc) + defer cc.Close() + r.NewServiceConfig(`{ + "healthCheckConfig": { + "serviceName": "foo" + } +}`) + r.NewAddress([]resolver.Address{{Addr: addr}}) + + // send some rpcs to make sure transport has been created and is ready for use. + if err := verifyResultWithDelay(func() (bool, error) { + if _, err := tc.EmptyCall(context.Background(), &testpb.Empty{}); err != nil { + return false, fmt.Errorf("TestService/EmptyCall(_, _) = _, %v, want _, ", err) + } + return true, nil + }); err != nil { + t.Fatal(err) + } + + select { + case <-hcEnterChan: + t.Fatal("Health check function has started, which is not expected.") + default: + } +} + +func testHealthCheckDisableWithServiceConfig(t *testing.T, addr string) { + hcEnterChan := make(chan struct{}) + testHealthCheckFuncWrapper := func(ctx context.Context, newStream func() (interface{}, error), update func(bool), service string) error { + close(hcEnterChan) + return nil + } + + replace := replaceHealthCheckFunc(testHealthCheckFuncWrapper) + defer replace() + r, rcleanup := manual.GenerateAndRegisterManualResolver() + defer rcleanup() + cc, err := grpc.Dial(r.Scheme()+":///test.server", grpc.WithInsecure(), grpc.WithBalancerName("round_robin")) + if err != nil { + t.Fatalf("dial failed due to err: %v", err) + } + tc := testpb.NewTestServiceClient(cc) + defer cc.Close() + + r.NewAddress([]resolver.Address{{Addr: addr}}) + + // send some rpcs to make sure transport has been created and is ready for use. + if err := verifyResultWithDelay(func() (bool, error) { + if _, err := tc.EmptyCall(context.Background(), &testpb.Empty{}); err != nil { + return false, fmt.Errorf("TestService/EmptyCall(_, _) = _, %v, want _, ", err) + } + return true, nil + }); err != nil { + t.Fatal(err) + } + + select { + case <-hcEnterChan: + t.Fatal("Health check function has started, which is not expected.") + default: + } +} + +func TestHealthCheckDisable(t *testing.T) { + defer leakcheck.Check(t) + // set up server side + s := grpc.NewServer() + lis, err := net.Listen("tcp", "localhost:0") + if err != nil { + t.Fatalf("failed to listen due to err: %v", err) + } + ts := newTestHealthServer() + healthgrpc.RegisterHealthServer(s, ts) + testpb.RegisterTestServiceServer(s, &testServer{}) + go s.Serve(lis) + defer s.Stop() + ts.SetServingStatus("foo", healthpb.HealthCheckResponse_SERVING) + + // test client side disabling configuration. + testHealthCheckDisableWithDialOption(t, lis.Addr().String()) + testHealthCheckDisableWithBalancer(t, lis.Addr().String()) + testHealthCheckDisableWithServiceConfig(t, lis.Addr().String()) +} + +func TestHealthCheckChannelzCountingCallSuccess(t *testing.T) { + defer leakcheck.Check(t) + s := grpc.NewServer() + lis, err := net.Listen("tcp", "localhost:0") + if err != nil { + t.Fatalf("failed to listen due to err: %v", err) + } + ts := newTestHealthServerWithWatchFunc(func(s *testHealthServer, in *healthpb.HealthCheckRequest, stream healthgrpc.Health_WatchServer) error { + if in.Service != "channelzSuccess" { + return status.Error(codes.FailedPrecondition, + "this special Watch function only handles request with service name to be \"channelzSuccess\"") + } + return status.Error(codes.OK, "fake success") + }) + healthgrpc.RegisterHealthServer(s, ts) + testpb.RegisterTestServiceServer(s, &testServer{}) + go s.Serve(lis) + defer s.Stop() + + r, rcleanup := manual.GenerateAndRegisterManualResolver() + defer rcleanup() + cc, err := grpc.Dial(r.Scheme()+":///test.server", grpc.WithInsecure(), grpc.WithBalancerName("round_robin")) + if err != nil { + t.Fatalf("dial failed due to err: %v", err) + } + defer cc.Close() + + r.NewServiceConfig(`{ + "healthCheckConfig": { + "serviceName": "channelzSuccess" + } +}`) + r.NewAddress([]resolver.Address{{Addr: lis.Addr().String()}}) + + if err := verifyResultWithDelay(func() (bool, error) { + cm, _ := channelz.GetTopChannels(0) + if len(cm) == 0 { + return false, errors.New("channelz.GetTopChannels return 0 top channel") + } + if len(cm[0].SubChans) == 0 { + return false, errors.New("there is 0 subchannel") + } + var id int64 + for k := range cm[0].SubChans { + id = k + break + } + scm := channelz.GetSubChannel(id) + if scm == nil || scm.ChannelData == nil { + return false, errors.New("nil subchannel metric or nil subchannel metric ChannelData returned") + } + // exponential backoff retry may result in more than one health check call. + if scm.ChannelData.CallsStarted > 0 && scm.ChannelData.CallsSucceeded > 0 && scm.ChannelData.CallsFailed == 0 { + return true, nil + } + return false, fmt.Errorf("got %d CallsStarted, %d CallsSucceeded, want >0 >0", scm.ChannelData.CallsStarted, scm.ChannelData.CallsSucceeded) + }); err != nil { + t.Fatal(err) + } +} + +func TestHealthCheckChannelzCountingCallFailure(t *testing.T) { + defer leakcheck.Check(t) + s := grpc.NewServer() + lis, err := net.Listen("tcp", "localhost:0") + if err != nil { + t.Fatalf("failed to listen due to err: %v", err) + } + ts := newTestHealthServerWithWatchFunc(func(s *testHealthServer, in *healthpb.HealthCheckRequest, stream healthgrpc.Health_WatchServer) error { + if in.Service != "channelzFailure" { + return status.Error(codes.FailedPrecondition, + "this special Watch function only handles request with service name to be \"channelzFailure\"") + } + return status.Error(codes.Internal, "fake failure") + }) + healthgrpc.RegisterHealthServer(s, ts) + testpb.RegisterTestServiceServer(s, &testServer{}) + go s.Serve(lis) + defer s.Stop() + + r, rcleanup := manual.GenerateAndRegisterManualResolver() + defer rcleanup() + cc, err := grpc.Dial(r.Scheme()+":///test.server", grpc.WithInsecure(), grpc.WithBalancerName("round_robin")) + if err != nil { + t.Fatalf("dial failed due to err: %v", err) + } + defer cc.Close() + + r.NewServiceConfig(`{ + "healthCheckConfig": { + "serviceName": "channelzFailure" + } +}`) + r.NewAddress([]resolver.Address{{Addr: lis.Addr().String()}}) + + if err := verifyResultWithDelay(func() (bool, error) { + cm, _ := channelz.GetTopChannels(0) + if len(cm) == 0 { + return false, errors.New("channelz.GetTopChannels return 0 top channel") + } + if len(cm[0].SubChans) == 0 { + return false, errors.New("there is 0 subchannel") + } + var id int64 + for k := range cm[0].SubChans { + id = k + break + } + scm := channelz.GetSubChannel(id) + if scm == nil || scm.ChannelData == nil { + return false, errors.New("nil subchannel metric or nil subchannel metric ChannelData returned") + } + // exponential backoff retry may result in more than one health check call. + if scm.ChannelData.CallsStarted > 0 && scm.ChannelData.CallsFailed > 0 && scm.ChannelData.CallsSucceeded == 0 { + return true, nil + } + return false, fmt.Errorf("got %d CallsStarted, %d CallsFailed, want >0, >0", scm.ChannelData.CallsStarted, scm.ChannelData.CallsFailed) + }); err != nil { + t.Fatal(err) + } +} diff --git a/vendor/google.golang.org/grpc/test/retry_test.go b/vendor/google.golang.org/grpc/test/retry_test.go index c53b66db6..b9a4acff5 100644 --- a/vendor/google.golang.org/grpc/test/retry_test.go +++ b/vendor/google.golang.org/grpc/test/retry_test.go @@ -19,6 +19,7 @@ package test import ( + "context" "fmt" "io" "os" @@ -29,7 +30,6 @@ import ( "time" "github.com/golang/protobuf/proto" - "golang.org/x/net/context" "google.golang.org/grpc" "google.golang.org/grpc/codes" "google.golang.org/grpc/internal/envconfig" diff --git a/vendor/google.golang.org/grpc/test/tools/tools.go b/vendor/google.golang.org/grpc/test/tools/tools.go index f65618b84..511dc2534 100644 --- a/vendor/google.golang.org/grpc/test/tools/tools.go +++ b/vendor/google.golang.org/grpc/test/tools/tools.go @@ -27,8 +27,8 @@ package tools import ( _ "github.com/client9/misspell/cmd/misspell" - _ "github.com/golang/lint/golint" _ "github.com/golang/protobuf/protoc-gen-go" + _ "golang.org/x/lint/golint" _ "golang.org/x/tools/cmd/goimports" _ "honnef.co/go/tools/cmd/staticcheck" ) diff --git a/vendor/google.golang.org/grpc/version.go b/vendor/google.golang.org/grpc/version.go index d8e0287ef..260f27c88 100644 --- a/vendor/google.golang.org/grpc/version.go +++ b/vendor/google.golang.org/grpc/version.go @@ -19,4 +19,4 @@ package grpc // Version is the current grpc version. -const Version = "1.16.0" +const Version = "1.17.0" diff --git a/vendor/google.golang.org/grpc/vet.sh b/vendor/google.golang.org/grpc/vet.sh index eb3287036..94d3d54e2 100755 --- a/vendor/google.golang.org/grpc/vet.sh +++ b/vendor/google.golang.org/grpc/vet.sh @@ -29,13 +29,17 @@ cleanup() { } trap cleanup EXIT +fail_on_output() { + tee /dev/stderr | (! read) +} + PATH="${GOPATH}/bin:${GOROOT}/bin:${PATH}" if [[ "$1" = "-install" ]]; then # Check for module support if go help mod >& /dev/null; then go install \ - github.com/golang/lint/golint \ + golang.org/x/lint/golint \ golang.org/x/tools/cmd/goimports \ honnef.co/go/tools/cmd/staticcheck \ github.com/client9/misspell/cmd/misspell \ @@ -45,7 +49,7 @@ if [[ "$1" = "-install" ]]; then # Note: this gets the latest version of all tools (vs. the pinned versions # with Go modules). go get -u \ - github.com/golang/lint/golint \ + golang.org/x/lint/golint \ golang.org/x/tools/cmd/goimports \ honnef.co/go/tools/cmd/staticcheck \ github.com/client9/misspell/cmd/misspell \ @@ -69,40 +73,41 @@ elif [[ "$#" -ne 0 ]]; then die "Unknown argument(s): $*" fi -git ls-files "*.go" | xargs grep -L "\(Copyright [0-9]\{4,\} gRPC authors\)\|DO NOT EDIT" 2>&1 | tee /dev/stderr | (! read) -git ls-files "*.go" | xargs grep -l '"math/rand"' 2>&1 | (! grep -v '^examples\|^stress\|grpcrand') | tee /dev/stderr | (! read) -git ls-files | xargs dirname | sort | uniq | xargs go run test/go_vet/vet.go | tee /dev/stderr | (! read) -gofmt -s -d -l . 2>&1 | tee /dev/stderr | (! read) -goimports -l . 2>&1 | tee /dev/stderr | (! read) -golint ./... 2>&1 | (grep -vE "(_mock|\.pb)\.go:" || true) | tee /dev/stderr | (! read) +# - Ensure all source files contain a copyright message. +git ls-files "*.go" | xargs grep -L "\(Copyright [0-9]\{4,\} gRPC authors\)\|DO NOT EDIT" 2>&1 | fail_on_output -# Rewrite golang.org/x/net/context -> context imports (see grpc/grpc-go#1484). -# TODO: Remove this mangling once "context" is imported directly (grpc/grpc-go#711). -git ls-files "*.go" | xargs sed -i 's:"golang.org/x/net/context":"context":' -set +o pipefail # vet exits with non-zero error if issues are found +# - Do not import math/rand for real library code. Use internal/grpcrand for +# thread safety. +git ls-files "*.go" | xargs grep -l '"math/rand"' 2>&1 | (! grep -v '^examples\|^stress\|grpcrand') -# TODO(deklerk) remove when we drop Go 1.6 support -go tool vet -all . 2>&1 | \ - grep -vE 'clientconn.go:.*cancel (function|var)' | \ - grep -vE '.*transport_test.go:.*cancel' | \ - tee /dev/stderr | \ - (! read) +# - Ensure all ptypes proto packages are renamed when importing. +git ls-files "*.go" | (! xargs grep "\(import \|^\s*\)\"github.com/golang/protobuf/ptypes/") -set -o pipefail -git reset --hard HEAD +# - Check imports that are illegal in appengine (until Go 1.11). +# TODO: Remove when we drop Go 1.10 support +go list -f {{.Dir}} ./... | xargs go run test/go_vet/vet.go +# - gofmt, goimports, golint (with exceptions for generated code), go vet. +gofmt -s -d -l . 2>&1 | fail_on_output +goimports -l . 2>&1 | fail_on_output +golint ./... 2>&1 | (! grep -vE "(_mock|\.pb)\.go:") +go tool vet -all . + +# - Check that generated proto files are up to date. if [[ -z "${VET_SKIP_PROTO}" ]]; then PATH="/home/travis/bin:${PATH}" make proto && \ - git status --porcelain 2>&1 | (! read) || \ + git status --porcelain 2>&1 | fail_on_output || \ (git status; git --no-pager diff; exit 1) fi +# - Check that our module is tidy. if go help mod >& /dev/null; then go mod tidy && \ - git status --porcelain 2>&1 | (! read) || \ + git status --porcelain 2>&1 | fail_on_output || \ (git status; git --no-pager diff; exit 1) fi +# - Collection of static analysis checks ### HACK HACK HACK: Remove once staticcheck works with modules. # Make a symlink in ${GOPATH}/src to its ${GOPATH}/pkg/mod equivalent for every package we use. for x in $(find "${GOPATH}/pkg/mod" -name '*@*' | grep -v \/mod\/cache\/); do @@ -116,14 +121,16 @@ done # TODO(menghanl): fix errors in transport_test. staticcheck -ignore ' -internal/transport/transport_test.go:SA2002 -benchmark/benchmain/main.go:SA1019 -stats/stats_test.go:SA1019 -test/end2end_test.go:SA1019 -balancer_test.go:SA1019 balancer.go:SA1019 +balancer_test.go:SA1019 clientconn_test.go:SA1019 -internal/transport/handler_server_test.go:SA1019 +balancer/roundrobin/roundrobin_test.go:SA1019 +benchmark/benchmain/main.go:SA1019 internal/transport/handler_server.go:SA1019 +internal/transport/handler_server_test.go:SA1019 +internal/transport/transport_test.go:SA2002 +stats/stats_test.go:SA1019 +test/channelz_test.go:SA1019 +test/end2end_test.go:SA1019 ' ./... misspell -error . diff --git a/vendor/k8s.io/api/Godeps/Godeps.json b/vendor/k8s.io/api/Godeps/Godeps.json index 21f3babad..f45d40414 100644 --- a/vendor/k8s.io/api/Godeps/Godeps.json +++ b/vendor/k8s.io/api/Godeps/Godeps.json @@ -1,170 +1,254 @@ { - "ImportPath": "k8s.io/api", - "GoVersion": "go1.9", - "GodepVersion": "v79", - "Packages": [ - "./..." - ], - "Deps": [ - { - "ImportPath": "github.com/gogo/protobuf/proto", - "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" - }, - { - "ImportPath": "github.com/gogo/protobuf/sortkeys", - "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" - }, - { - "ImportPath": "github.com/golang/glog", - "Rev": "44145f04b68cf362d9c4df2182967c2275eaefed" - }, - { - "ImportPath": "github.com/google/gofuzz", - "Rev": "44d81051d367757e1c7c6a5a86423ece9afcf63c" - }, - { - "ImportPath": "github.com/spf13/pflag", - "Rev": "4c012f6dcd9546820e378d0bdda4d8fc772cdfea" - }, - { - "ImportPath": "golang.org/x/net/http2", - "Rev": "1c05540f6879653db88113bc4a2b70aec4bd491f" - }, - { - "ImportPath": "golang.org/x/net/http2/hpack", - "Rev": "1c05540f6879653db88113bc4a2b70aec4bd491f" - }, - { - "ImportPath": "golang.org/x/net/idna", - "Rev": "1c05540f6879653db88113bc4a2b70aec4bd491f" - }, - { - "ImportPath": "golang.org/x/net/lex/httplex", - "Rev": "1c05540f6879653db88113bc4a2b70aec4bd491f" - }, - { - "ImportPath": "golang.org/x/text/secure/bidirule", - "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" - }, - { - "ImportPath": "golang.org/x/text/transform", - "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" - }, - { - "ImportPath": "golang.org/x/text/unicode/bidi", - "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" - }, - { - "ImportPath": "golang.org/x/text/unicode/norm", - "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" - }, - { - "ImportPath": "gopkg.in/inf.v0", - "Rev": "3887ee99ecf07df5b447e9b00d9c0b2adaa9f3e4" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/api/resource", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/conversion", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/conversion/queryparams", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/fields", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/labels", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/runtime", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/runtime/schema", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/selection", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/types", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/util/errors", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/util/intstr", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/util/json", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/util/net", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/util/runtime", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/util/sets", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/util/validation", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/util/validation/field", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/util/wait", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/watch", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" - }, - { - "ImportPath": "k8s.io/apimachinery/third_party/forked/golang/reflect", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/api/resource", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/runtime", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/runtime/schema", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/types", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/util/intstr", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" - } - ] + "ImportPath": "k8s.io/api", + "GoVersion": "go1.11", + "GodepVersion": "v80", + "Packages": [ + "./..." + ], + "Deps": [ + { + "ImportPath": "github.com/davecgh/go-spew/spew", + "Rev": "782f4967f2dc4564575ca782fe2d04090b5faca8" + }, + { + "ImportPath": "github.com/gogo/protobuf/proto", + "Rev": "342cbe0a04158f6dcb03ca0079991a51a4248c02" + }, + { + "ImportPath": "github.com/gogo/protobuf/sortkeys", + "Rev": "342cbe0a04158f6dcb03ca0079991a51a4248c02" + }, + { + "ImportPath": "github.com/golang/protobuf/proto", + "Rev": "b4deda0973fb4c70b50d226b1af49f3da59f5265" + }, + { + "ImportPath": "github.com/google/gofuzz", + "Rev": "44d81051d367757e1c7c6a5a86423ece9afcf63c" + }, + { + "ImportPath": "github.com/json-iterator/go", + "Rev": "ab8a2e0c74be9d3be70b3184d9acc634935ded82" + }, + { + "ImportPath": "github.com/modern-go/concurrent", + "Rev": "bacd9c7ef1dd9b15be4a9909b8ac7a4e313eec94" + }, + { + "ImportPath": "github.com/modern-go/reflect2", + "Rev": "94122c33edd36123c84d5368cfb2b69df93a0ec8" + }, + { + "ImportPath": "github.com/pmezard/go-difflib/difflib", + "Rev": "d8ed2627bdf02c080bf22230dbb337003b7aba2d" + }, + { + "ImportPath": "github.com/spf13/pflag", + "Rev": "583c0c0531f06d5278b7d917446061adc344b5cd" + }, + { + "ImportPath": "github.com/stretchr/testify/assert", + "Rev": "c679ae2cc0cb27ec3293fea7e254e47386f05d69" + }, + { + "ImportPath": "github.com/stretchr/testify/require", + "Rev": "c679ae2cc0cb27ec3293fea7e254e47386f05d69" + }, + { + "ImportPath": "golang.org/x/net/http2", + "Rev": "0ed95abb35c445290478a5348a7b38bb154135fd" + }, + { + "ImportPath": "golang.org/x/net/http2/hpack", + "Rev": "0ed95abb35c445290478a5348a7b38bb154135fd" + }, + { + "ImportPath": "golang.org/x/net/idna", + "Rev": "0ed95abb35c445290478a5348a7b38bb154135fd" + }, + { + "ImportPath": "golang.org/x/net/lex/httplex", + "Rev": "0ed95abb35c445290478a5348a7b38bb154135fd" + }, + { + "ImportPath": "golang.org/x/text/secure/bidirule", + "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" + }, + { + "ImportPath": "golang.org/x/text/transform", + "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" + }, + { + "ImportPath": "golang.org/x/text/unicode/bidi", + "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" + }, + { + "ImportPath": "golang.org/x/text/unicode/norm", + "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" + }, + { + "ImportPath": "gopkg.in/inf.v0", + "Rev": "3887ee99ecf07df5b447e9b00d9c0b2adaa9f3e4" + }, + { + "ImportPath": "gopkg.in/yaml.v2", + "Rev": "5420a8b6744d3b0345ab293f6fcba19c978f1183" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/api/apitesting", + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/api/apitesting/fuzzer", + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/api/apitesting/roundtrip", + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/api/equality", + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/api/meta", + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/api/resource", + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/fuzzer", + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1", + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured", + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1beta1", + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/conversion", + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/conversion/queryparams", + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/fields", + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/labels", + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/runtime", + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/runtime/schema", + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer", + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/json", + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/protobuf", + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/recognizer", + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/versioning", + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/selection", + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/types", + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/diff", + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/errors", + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/framer", + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/intstr", + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/json", + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/naming", + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/net", + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/runtime", + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/sets", + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/validation", + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/validation/field", + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/yaml", + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/watch", + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" + }, + { + "ImportPath": "k8s.io/apimachinery/third_party/forked/golang/reflect", + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" + }, + { + "ImportPath": "k8s.io/klog", + "Rev": "8139d8cb77af419532b33dfa7dd09fbc5f1d344f" + }, + { + "ImportPath": "sigs.k8s.io/yaml", + "Rev": "fd68e9863619f6ec2fdd8625fe1f02e7c877e480" + } + ] } diff --git a/vendor/k8s.io/api/OWNERS b/vendor/k8s.io/api/OWNERS index b2c570008..67952cace 100644 --- a/vendor/k8s.io/api/OWNERS +++ b/vendor/k8s.io/api/OWNERS @@ -1,50 +1,10 @@ +# Disable inheritance as this is an api owners file +options: + no_parent_owners: true approvers: -- erictune -- lavalamp -- smarterclayton -- thockin -- liggitt -# - bgrant0607 # manual escalations only +- api-approvers reviewers: -- brendandburns -- caesarxuchao -- davidopp -- dchen1107 -- deads2k -- derekwaynecarr -- dims -- eparis -- erictune -- errordeveloper -- feiskyer -- gmarek -- janetkuo -- jbeda -- jsafrane -- jszczepkowski -- justinsb -- krousey -- lavalamp -- liggitt -- luxas -- madhusudancs -- mikedanese -- mwielgus -- ncdc -- nikhiljindal -- piosz -- pmorie -- pwittrock -- roberthbailey -- rootfs -- saad-ali -- smarterclayton -- soltysh -- sttts -- tallclair -- thockin -- vishh -- wojtek-t -- yifan-gu -- yujuhong -- zmerlynn +- api-reviewers +labels: +- sig/architecture +- kind/api-change diff --git a/vendor/k8s.io/api/SECURITY_CONTACTS b/vendor/k8s.io/api/SECURITY_CONTACTS new file mode 100644 index 000000000..0648a8ebf --- /dev/null +++ b/vendor/k8s.io/api/SECURITY_CONTACTS @@ -0,0 +1,17 @@ +# Defined below are the security contacts for this repo. +# +# They are the contact point for the Product Security Team to reach out +# to for triaging and handling of incoming issues. +# +# The below names agree to abide by the +# [Embargo Policy](https://github.com/kubernetes/sig-release/blob/master/security-release-process-documentation/security-release-process.md#embargo-policy) +# and will be removed and replaced if they violate that agreement. +# +# DO NOT REPORT SECURITY VULNERABILITIES DIRECTLY TO THESE NAMES, FOLLOW THE +# INSTRUCTIONS AT https://kubernetes.io/security/ + +cjcullen +jessfraz +liggitt +philips +tallclair diff --git a/vendor/k8s.io/api/admission/v1beta1/BUILD b/vendor/k8s.io/api/admission/v1beta1/BUILD deleted file mode 100644 index fd69b9170..000000000 --- a/vendor/k8s.io/api/admission/v1beta1/BUILD +++ /dev/null @@ -1,43 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "generated.pb.go", - "register.go", - "types.go", - "types_swagger_doc_generated.go", - "zz_generated.deepcopy.go", - ], - importpath = "k8s.io/api/admission/v1beta1", - visibility = ["//visibility:public"], - deps = [ - "//vendor/github.com/gogo/protobuf/proto:go_default_library", - "//vendor/k8s.io/api/authentication/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - ], -) - -filegroup( - name = "go_default_library_protos", - srcs = ["generated.proto"], - visibility = ["//visibility:public"], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/api/admission/v1beta1/doc.go b/vendor/k8s.io/api/admission/v1beta1/doc.go index a26d4d45a..f5135f0f3 100644 --- a/vendor/k8s.io/api/admission/v1beta1/doc.go +++ b/vendor/k8s.io/api/admission/v1beta1/doc.go @@ -18,4 +18,5 @@ limitations under the License. // +k8s:openapi-gen=false // +groupName=admission.k8s.io + package v1beta1 // import "k8s.io/api/admission/v1beta1" diff --git a/vendor/k8s.io/api/admission/v1beta1/generated.pb.go b/vendor/k8s.io/api/admission/v1beta1/generated.pb.go index f56a0f063..4082082ff 100644 --- a/vendor/k8s.io/api/admission/v1beta1/generated.pb.go +++ b/vendor/k8s.io/api/admission/v1beta1/generated.pb.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -14,9 +14,8 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: k8s.io/kubernetes/vendor/k8s.io/api/admission/v1beta1/generated.proto -// DO NOT EDIT! /* Package v1beta1 is a generated protocol buffer package. @@ -39,6 +38,8 @@ import k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v import k8s_io_apimachinery_pkg_types "k8s.io/apimachinery/pkg/types" +import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" + import strings "strings" import reflect "reflect" @@ -147,6 +148,16 @@ func (m *AdmissionRequest) MarshalTo(dAtA []byte) (int, error) { return 0, err } i += n5 + if m.DryRun != nil { + dAtA[i] = 0x58 + i++ + if *m.DryRun { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ + } return i, nil } @@ -199,6 +210,28 @@ func (m *AdmissionResponse) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintGenerated(dAtA, i, uint64(len(*m.PatchType))) i += copy(dAtA[i:], *m.PatchType) } + if len(m.AuditAnnotations) > 0 { + keysForAuditAnnotations := make([]string, 0, len(m.AuditAnnotations)) + for k := range m.AuditAnnotations { + keysForAuditAnnotations = append(keysForAuditAnnotations, string(k)) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForAuditAnnotations) + for _, k := range keysForAuditAnnotations { + dAtA[i] = 0x32 + i++ + v := m.AuditAnnotations[string(k)] + mapSize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) + i = encodeVarintGenerated(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) + } + } return i, nil } @@ -240,24 +273,6 @@ func (m *AdmissionReview) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Generated(dAtA []byte, offset int, v uint64) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - dAtA[offset+4] = uint8(v >> 32) - dAtA[offset+5] = uint8(v >> 40) - dAtA[offset+6] = uint8(v >> 48) - dAtA[offset+7] = uint8(v >> 56) - return offset + 8 -} -func encodeFixed32Generated(dAtA []byte, offset int, v uint32) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - return offset + 4 -} func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -290,6 +305,9 @@ func (m *AdmissionRequest) Size() (n int) { n += 1 + l + sovGenerated(uint64(l)) l = m.OldObject.Size() n += 1 + l + sovGenerated(uint64(l)) + if m.DryRun != nil { + n += 2 + } return n } @@ -311,6 +329,14 @@ func (m *AdmissionResponse) Size() (n int) { l = len(*m.PatchType) n += 1 + l + sovGenerated(uint64(l)) } + if len(m.AuditAnnotations) > 0 { + for k, v := range m.AuditAnnotations { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) + n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) + } + } return n } @@ -356,6 +382,7 @@ func (this *AdmissionRequest) String() string { `UserInfo:` + strings.Replace(strings.Replace(this.UserInfo.String(), "UserInfo", "k8s_io_api_authentication_v1.UserInfo", 1), `&`, ``, 1) + `,`, `Object:` + strings.Replace(strings.Replace(this.Object.String(), "RawExtension", "k8s_io_apimachinery_pkg_runtime.RawExtension", 1), `&`, ``, 1) + `,`, `OldObject:` + strings.Replace(strings.Replace(this.OldObject.String(), "RawExtension", "k8s_io_apimachinery_pkg_runtime.RawExtension", 1), `&`, ``, 1) + `,`, + `DryRun:` + valueToStringGenerated(this.DryRun) + `,`, `}`, }, "") return s @@ -364,12 +391,23 @@ func (this *AdmissionResponse) String() string { if this == nil { return "nil" } + keysForAuditAnnotations := make([]string, 0, len(this.AuditAnnotations)) + for k := range this.AuditAnnotations { + keysForAuditAnnotations = append(keysForAuditAnnotations, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForAuditAnnotations) + mapStringForAuditAnnotations := "map[string]string{" + for _, k := range keysForAuditAnnotations { + mapStringForAuditAnnotations += fmt.Sprintf("%v: %v,", k, this.AuditAnnotations[k]) + } + mapStringForAuditAnnotations += "}" s := strings.Join([]string{`&AdmissionResponse{`, `UID:` + fmt.Sprintf("%v", this.UID) + `,`, `Allowed:` + fmt.Sprintf("%v", this.Allowed) + `,`, `Result:` + strings.Replace(fmt.Sprintf("%v", this.Result), "Status", "k8s_io_apimachinery_pkg_apis_meta_v1.Status", 1) + `,`, `Patch:` + valueToStringGenerated(this.Patch) + `,`, `PatchType:` + valueToStringGenerated(this.PatchType) + `,`, + `AuditAnnotations:` + mapStringForAuditAnnotations + `,`, `}`, }, "") return s @@ -717,6 +755,27 @@ func (m *AdmissionRequest) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 11: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field DryRun", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.DryRun = &b default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -910,6 +969,124 @@ func (m *AdmissionResponse) Unmarshal(dAtA []byte) error { s := PatchType(dAtA[iNdEx:postIndex]) m.PatchType = &s iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AuditAnnotations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AuditAnnotations == nil { + m.AuditAnnotations = make(map[string]string) + } + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.AuditAnnotations[mapkey] = mapvalue + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -1157,52 +1334,57 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 739 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x54, 0xcd, 0x4e, 0xdb, 0x4a, - 0x14, 0x8e, 0x21, 0x7f, 0x9e, 0xa0, 0x0b, 0xcc, 0xdd, 0x58, 0xd1, 0x95, 0xc3, 0x65, 0x71, 0xc5, - 0x95, 0x60, 0x5c, 0x68, 0x8b, 0x50, 0xd5, 0x0d, 0x16, 0xa8, 0x42, 0x95, 0x00, 0x0d, 0xa4, 0x6a, - 0xbb, 0xa8, 0x34, 0x71, 0x86, 0x64, 0x9a, 0xd8, 0xe3, 0x7a, 0xc6, 0xa1, 0xec, 0xfa, 0x08, 0x7d, - 0x93, 0x3e, 0x44, 0x37, 0x2c, 0x59, 0xb2, 0x8a, 0x4a, 0xfa, 0x00, 0xdd, 0xb3, 0xaa, 0x3c, 0x1e, - 0xc7, 0x29, 0x34, 0x2d, 0xad, 0xba, 0xca, 0x9c, 0x73, 0xbe, 0xef, 0x3b, 0xf1, 0x77, 0xce, 0x0c, - 0xd8, 0xed, 0x6d, 0x09, 0xc4, 0xb8, 0xd3, 0x8b, 0x5b, 0x34, 0x0a, 0xa8, 0xa4, 0xc2, 0x19, 0xd0, - 0xa0, 0xcd, 0x23, 0x47, 0x17, 0x48, 0xc8, 0x1c, 0xd2, 0xf6, 0x99, 0x10, 0x8c, 0x07, 0xce, 0x60, - 0xbd, 0x45, 0x25, 0x59, 0x77, 0x3a, 0x34, 0xa0, 0x11, 0x91, 0xb4, 0x8d, 0xc2, 0x88, 0x4b, 0x0e, - 0xff, 0x49, 0xd1, 0x88, 0x84, 0x0c, 0x8d, 0xd1, 0x48, 0xa3, 0xeb, 0x6b, 0x1d, 0x26, 0xbb, 0x71, - 0x0b, 0x79, 0xdc, 0x77, 0x3a, 0xbc, 0xc3, 0x1d, 0x45, 0x6a, 0xc5, 0x27, 0x2a, 0x52, 0x81, 0x3a, - 0xa5, 0x62, 0xf5, 0xd5, 0xc9, 0xd6, 0xb1, 0xec, 0xd2, 0x40, 0x32, 0x8f, 0xc8, 0xb4, 0xff, 0xcd, - 0xd6, 0xf5, 0x07, 0x39, 0xda, 0x27, 0x5e, 0x97, 0x05, 0x34, 0x3a, 0x73, 0xc2, 0x5e, 0x27, 0x49, - 0x08, 0xc7, 0xa7, 0x92, 0x7c, 0x8f, 0xe5, 0x4c, 0x63, 0x45, 0x71, 0x20, 0x99, 0x4f, 0x6f, 0x11, - 0x36, 0x7f, 0x46, 0x10, 0x5e, 0x97, 0xfa, 0xe4, 0x16, 0xef, 0xfe, 0x34, 0x5e, 0x2c, 0x59, 0xdf, - 0x61, 0x81, 0x14, 0x32, 0xba, 0x49, 0x5a, 0xfe, 0x52, 0x02, 0x0b, 0xdb, 0x99, 0x8d, 0x98, 0xbe, - 0x89, 0xa9, 0x90, 0xd0, 0x05, 0xb3, 0x31, 0x6b, 0x5b, 0xc6, 0x92, 0xb1, 0x62, 0xba, 0xf7, 0xce, - 0x87, 0x8d, 0xc2, 0x68, 0xd8, 0x98, 0x6d, 0xee, 0xed, 0x5c, 0x0f, 0x1b, 0xff, 0x4e, 0xeb, 0x22, - 0xcf, 0x42, 0x2a, 0x50, 0x73, 0x6f, 0x07, 0x27, 0x64, 0xf8, 0x1c, 0x14, 0x7b, 0x2c, 0x68, 0x5b, - 0x33, 0x4b, 0xc6, 0x4a, 0x6d, 0x63, 0x13, 0xe5, 0x63, 0x1b, 0xd3, 0x50, 0xd8, 0xeb, 0x24, 0x09, - 0x81, 0x12, 0xef, 0xd0, 0x60, 0x1d, 0x3d, 0x89, 0x78, 0x1c, 0x3e, 0xa3, 0x51, 0xf2, 0x67, 0x9e, - 0xb2, 0xa0, 0xed, 0xce, 0xe9, 0xe6, 0xc5, 0x24, 0xc2, 0x4a, 0x11, 0x76, 0x41, 0x35, 0xa2, 0x82, - 0xc7, 0x91, 0x47, 0xad, 0x59, 0xa5, 0xfe, 0xe8, 0xd7, 0xd5, 0xb1, 0x56, 0x70, 0x17, 0x74, 0x87, - 0x6a, 0x96, 0xc1, 0x63, 0x75, 0xf8, 0x10, 0xd4, 0x44, 0xdc, 0xca, 0x0a, 0x56, 0x51, 0xf9, 0xf1, - 0xb7, 0x26, 0xd4, 0x8e, 0xf2, 0x12, 0x9e, 0xc4, 0xc1, 0x25, 0x50, 0x0c, 0x88, 0x4f, 0xad, 0x92, - 0xc2, 0x8f, 0x3f, 0x61, 0x9f, 0xf8, 0x14, 0xab, 0x0a, 0x74, 0x80, 0x99, 0xfc, 0x8a, 0x90, 0x78, - 0xd4, 0x2a, 0x2b, 0xd8, 0xa2, 0x86, 0x99, 0xfb, 0x59, 0x01, 0xe7, 0x18, 0xf8, 0x18, 0x98, 0x3c, - 0x4c, 0x06, 0xc7, 0x78, 0x60, 0x55, 0x14, 0xc1, 0xce, 0x08, 0x07, 0x59, 0xe1, 0x7a, 0x32, 0xc0, - 0x39, 0x01, 0x1e, 0x83, 0x6a, 0x2c, 0x68, 0xb4, 0x17, 0x9c, 0x70, 0xab, 0xaa, 0x1c, 0xfb, 0x0f, - 0x4d, 0x5e, 0xa3, 0x6f, 0x36, 0x3f, 0x71, 0xaa, 0xa9, 0xd1, 0xb9, 0x3b, 0x59, 0x06, 0x8f, 0x95, - 0x60, 0x13, 0x94, 0x79, 0xeb, 0x35, 0xf5, 0xa4, 0x65, 0x2a, 0xcd, 0xb5, 0xa9, 0x53, 0xd0, 0x8b, - 0x8b, 0x30, 0x39, 0xdd, 0x7d, 0x2b, 0x69, 0x90, 0x0c, 0xc0, 0xfd, 0x4b, 0x4b, 0x97, 0x0f, 0x94, - 0x08, 0xd6, 0x62, 0xf0, 0x15, 0x30, 0x79, 0xbf, 0x9d, 0x26, 0x2d, 0xf0, 0x3b, 0xca, 0x63, 0x2b, - 0x0f, 0x32, 0x1d, 0x9c, 0x4b, 0x2e, 0x7f, 0x98, 0x01, 0x8b, 0x13, 0x1b, 0x2f, 0x42, 0x1e, 0x08, - 0xfa, 0x47, 0x56, 0xfe, 0x7f, 0x50, 0x21, 0xfd, 0x3e, 0x3f, 0xa5, 0xe9, 0xd6, 0x57, 0xdd, 0x79, - 0xad, 0x53, 0xd9, 0x4e, 0xd3, 0x38, 0xab, 0xc3, 0x43, 0x50, 0x16, 0x92, 0xc8, 0x58, 0xe8, 0x0d, - 0x5e, 0xbd, 0xdb, 0x06, 0x1f, 0x29, 0x8e, 0x0b, 0x12, 0xdb, 0x30, 0x15, 0x71, 0x5f, 0x62, 0xad, - 0x03, 0x1b, 0xa0, 0x14, 0x12, 0xe9, 0x75, 0xd5, 0x96, 0xce, 0xb9, 0xe6, 0x68, 0xd8, 0x28, 0x1d, - 0x26, 0x09, 0x9c, 0xe6, 0xe1, 0x16, 0x30, 0xd5, 0xe1, 0xf8, 0x2c, 0xcc, 0x56, 0xb3, 0x9e, 0x98, - 0x74, 0x98, 0x25, 0xaf, 0x27, 0x03, 0x9c, 0x83, 0x97, 0x3f, 0x1a, 0x60, 0x7e, 0xc2, 0xb1, 0x01, - 0xa3, 0xa7, 0xb0, 0x09, 0x2a, 0x51, 0xfa, 0x5a, 0x28, 0xcf, 0x6a, 0x1b, 0x08, 0xfd, 0xe8, 0x61, - 0x46, 0x37, 0xdf, 0x18, 0xb7, 0x96, 0xf8, 0xa2, 0x03, 0x9c, 0x69, 0xc1, 0x17, 0xea, 0x6e, 0xab, - 0x91, 0xe8, 0x97, 0xc3, 0xb9, 0xb3, 0x6e, 0x4a, 0x73, 0xe7, 0xf4, 0x65, 0x56, 0x11, 0x1e, 0xcb, - 0xb9, 0x6b, 0xe7, 0x57, 0x76, 0xe1, 0xe2, 0xca, 0x2e, 0x5c, 0x5e, 0xd9, 0x85, 0x77, 0x23, 0xdb, - 0x38, 0x1f, 0xd9, 0xc6, 0xc5, 0xc8, 0x36, 0x2e, 0x47, 0xb6, 0xf1, 0x69, 0x64, 0x1b, 0xef, 0x3f, - 0xdb, 0x85, 0x97, 0x15, 0x2d, 0xfc, 0x35, 0x00, 0x00, 0xff, 0xff, 0x76, 0x21, 0xd5, 0x35, 0xaf, - 0x06, 0x00, 0x00, + // 821 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x54, 0xcf, 0x6f, 0xe3, 0x44, + 0x14, 0x8e, 0x37, 0x69, 0x12, 0x4f, 0x2a, 0x36, 0x3b, 0x80, 0x64, 0x45, 0xc8, 0x09, 0x3d, 0xa0, + 0x20, 0x6d, 0xc7, 0xb4, 0x82, 0x55, 0xb5, 0xe2, 0x12, 0xd3, 0x08, 0x55, 0x48, 0xdb, 0x6a, 0x76, + 0x83, 0x80, 0x03, 0xd2, 0xc4, 0x9e, 0x4d, 0x4c, 0xe2, 0x19, 0xe3, 0x99, 0x49, 0xc9, 0x0d, 0x71, + 0xe5, 0x82, 0xc4, 0x9f, 0xc4, 0xa5, 0xc7, 0x3d, 0xee, 0x29, 0xa2, 0xe1, 0xbf, 0xe8, 0x09, 0x79, + 0x3c, 0x8e, 0x43, 0xba, 0x85, 0x5d, 0xb4, 0x27, 0xfb, 0xfd, 0xf8, 0xbe, 0x37, 0xf3, 0xbd, 0x37, + 0x0f, 0x0c, 0x67, 0x27, 0x02, 0x45, 0xdc, 0x9b, 0xa9, 0x31, 0x4d, 0x19, 0x95, 0x54, 0x78, 0x0b, + 0xca, 0x42, 0x9e, 0x7a, 0x26, 0x40, 0x92, 0xc8, 0x23, 0x61, 0x1c, 0x09, 0x11, 0x71, 0xe6, 0x2d, + 0x8e, 0xc6, 0x54, 0x92, 0x23, 0x6f, 0x42, 0x19, 0x4d, 0x89, 0xa4, 0x21, 0x4a, 0x52, 0x2e, 0x39, + 0xfc, 0x20, 0xcf, 0x46, 0x24, 0x89, 0xd0, 0x26, 0x1b, 0x99, 0xec, 0xce, 0xe1, 0x24, 0x92, 0x53, + 0x35, 0x46, 0x01, 0x8f, 0xbd, 0x09, 0x9f, 0x70, 0x4f, 0x83, 0xc6, 0xea, 0xb9, 0xb6, 0xb4, 0xa1, + 0xff, 0x72, 0xb2, 0xce, 0xc3, 0xed, 0xd2, 0x4a, 0x4e, 0x29, 0x93, 0x51, 0x40, 0x64, 0x5e, 0x7f, + 0xb7, 0x74, 0xe7, 0xd3, 0x32, 0x3b, 0x26, 0xc1, 0x34, 0x62, 0x34, 0x5d, 0x7a, 0xc9, 0x6c, 0x92, + 0x39, 0x84, 0x17, 0x53, 0x49, 0x5e, 0x85, 0xf2, 0xee, 0x42, 0xa5, 0x8a, 0xc9, 0x28, 0xa6, 0xb7, + 0x00, 0x8f, 0xfe, 0x0b, 0x20, 0x82, 0x29, 0x8d, 0xc9, 0x2e, 0xee, 0xe0, 0xf7, 0x3a, 0x68, 0x0f, + 0x0a, 0x45, 0x30, 0xfd, 0x51, 0x51, 0x21, 0xa1, 0x0f, 0xaa, 0x2a, 0x0a, 0x1d, 0xab, 0x67, 0xf5, + 0x6d, 0xff, 0x93, 0xab, 0x55, 0xb7, 0xb2, 0x5e, 0x75, 0xab, 0xa3, 0xb3, 0xd3, 0x9b, 0x55, 0xf7, + 0xc3, 0xbb, 0x0a, 0xc9, 0x65, 0x42, 0x05, 0x1a, 0x9d, 0x9d, 0xe2, 0x0c, 0x0c, 0xbf, 0x01, 0xb5, + 0x59, 0xc4, 0x42, 0xe7, 0x5e, 0xcf, 0xea, 0xb7, 0x8e, 0x1f, 0xa1, 0xb2, 0x03, 0x1b, 0x18, 0x4a, + 0x66, 0x93, 0xcc, 0x21, 0x50, 0x26, 0x03, 0x5a, 0x1c, 0xa1, 0x2f, 0x53, 0xae, 0x92, 0xaf, 0x69, + 0x9a, 0x1d, 0xe6, 0xab, 0x88, 0x85, 0xfe, 0xbe, 0x29, 0x5e, 0xcb, 0x2c, 0xac, 0x19, 0xe1, 0x14, + 0x34, 0x53, 0x2a, 0xb8, 0x4a, 0x03, 0xea, 0x54, 0x35, 0xfb, 0xe3, 0x37, 0x67, 0xc7, 0x86, 0xc1, + 0x6f, 0x9b, 0x0a, 0xcd, 0xc2, 0x83, 0x37, 0xec, 0xf0, 0x33, 0xd0, 0x12, 0x6a, 0x5c, 0x04, 0x9c, + 0x9a, 0xd6, 0xe3, 0x5d, 0x03, 0x68, 0x3d, 0x2d, 0x43, 0x78, 0x3b, 0x0f, 0xf6, 0x40, 0x8d, 0x91, + 0x98, 0x3a, 0x7b, 0x3a, 0x7f, 0x73, 0x85, 0x27, 0x24, 0xa6, 0x58, 0x47, 0xa0, 0x07, 0xec, 0xec, + 0x2b, 0x12, 0x12, 0x50, 0xa7, 0xae, 0xd3, 0x1e, 0x98, 0x34, 0xfb, 0x49, 0x11, 0xc0, 0x65, 0x0e, + 0xfc, 0x1c, 0xd8, 0x3c, 0xc9, 0x1a, 0x17, 0x71, 0xe6, 0x34, 0x34, 0xc0, 0x2d, 0x00, 0xe7, 0x45, + 0xe0, 0x66, 0xdb, 0xc0, 0x25, 0x00, 0x3e, 0x03, 0x4d, 0x25, 0x68, 0x7a, 0xc6, 0x9e, 0x73, 0xa7, + 0xa9, 0x15, 0xfb, 0x08, 0x6d, 0xbf, 0x88, 0x7f, 0x0c, 0x71, 0xa6, 0xd4, 0xc8, 0x64, 0x97, 0xea, + 0x14, 0x1e, 0xbc, 0x61, 0x82, 0x23, 0x50, 0xe7, 0xe3, 0x1f, 0x68, 0x20, 0x1d, 0x5b, 0x73, 0x1e, + 0xde, 0xd9, 0x05, 0x33, 0x83, 0x08, 0x93, 0xcb, 0xe1, 0x4f, 0x92, 0xb2, 0xac, 0x01, 0xfe, 0x3b, + 0x86, 0xba, 0x7e, 0xae, 0x49, 0xb0, 0x21, 0x83, 0xdf, 0x03, 0x9b, 0xcf, 0xc3, 0xdc, 0xe9, 0x80, + 0xff, 0xc3, 0xbc, 0x91, 0xf2, 0xbc, 0xe0, 0xc1, 0x25, 0x25, 0x3c, 0x00, 0xf5, 0x30, 0x5d, 0x62, + 0xc5, 0x9c, 0x56, 0xcf, 0xea, 0x37, 0x7d, 0x90, 0x9d, 0xe1, 0x54, 0x7b, 0xb0, 0x89, 0x1c, 0xfc, + 0x52, 0x03, 0x0f, 0xb6, 0x5e, 0x85, 0x48, 0x38, 0x13, 0xf4, 0xad, 0x3c, 0x8b, 0x8f, 0x41, 0x83, + 0xcc, 0xe7, 0xfc, 0x92, 0xe6, 0x2f, 0xa3, 0xe9, 0xdf, 0x37, 0x3c, 0x8d, 0x41, 0xee, 0xc6, 0x45, + 0x1c, 0x5e, 0x80, 0xba, 0x90, 0x44, 0x2a, 0x61, 0xa6, 0xfc, 0xe1, 0xeb, 0x4d, 0xf9, 0x53, 0x8d, + 0xc9, 0xaf, 0x85, 0xa9, 0x50, 0x73, 0x89, 0x0d, 0x0f, 0xec, 0x82, 0xbd, 0x84, 0xc8, 0x60, 0xaa, + 0x27, 0x79, 0xdf, 0xb7, 0xd7, 0xab, 0xee, 0xde, 0x45, 0xe6, 0xc0, 0xb9, 0x1f, 0x9e, 0x00, 0x5b, + 0xff, 0x3c, 0x5b, 0x26, 0xc5, 0xf8, 0x76, 0x32, 0x21, 0x2f, 0x0a, 0xe7, 0xcd, 0xb6, 0x81, 0xcb, + 0x64, 0xf8, 0xab, 0x05, 0xda, 0x44, 0x85, 0x91, 0x1c, 0x30, 0xc6, 0xa5, 0x1e, 0x24, 0xe1, 0xd4, + 0x7b, 0xd5, 0x7e, 0xeb, 0x78, 0x88, 0xfe, 0x6d, 0xfb, 0xa2, 0x5b, 0x3a, 0xa3, 0xc1, 0x0e, 0xcf, + 0x90, 0xc9, 0x74, 0xe9, 0x3b, 0x46, 0xa8, 0xf6, 0x6e, 0x18, 0xdf, 0x2a, 0xdc, 0xf9, 0x02, 0xbc, + 0xff, 0x4a, 0x12, 0xd8, 0x06, 0xd5, 0x19, 0x5d, 0xe6, 0x2d, 0xc4, 0xd9, 0x2f, 0x7c, 0x0f, 0xec, + 0x2d, 0xc8, 0x5c, 0x51, 0xdd, 0x0e, 0x1b, 0xe7, 0xc6, 0xe3, 0x7b, 0x27, 0xd6, 0xc1, 0x1f, 0x16, + 0xb8, 0xbf, 0x75, 0xb8, 0x45, 0x44, 0x2f, 0xe1, 0x08, 0x34, 0xd2, 0x7c, 0x49, 0x6a, 0x8e, 0xd6, + 0x31, 0x7a, 0xed, 0xcb, 0x69, 0x94, 0xdf, 0xca, 0x5a, 0x6d, 0x0c, 0x5c, 0x70, 0xc1, 0x6f, 0xf5, + 0x4a, 0xd3, 0xb7, 0x37, 0x0b, 0xd3, 0x7b, 0x43, 0xd1, 0xfc, 0x7d, 0xb3, 0xc3, 0xb4, 0x85, 0x37, + 0x74, 0xfe, 0xe1, 0xd5, 0xb5, 0x5b, 0x79, 0x71, 0xed, 0x56, 0x5e, 0x5e, 0xbb, 0x95, 0x9f, 0xd7, + 0xae, 0x75, 0xb5, 0x76, 0xad, 0x17, 0x6b, 0xd7, 0x7a, 0xb9, 0x76, 0xad, 0x3f, 0xd7, 0xae, 0xf5, + 0xdb, 0x5f, 0x6e, 0xe5, 0xbb, 0x86, 0x21, 0xfe, 0x3b, 0x00, 0x00, 0xff, 0xff, 0xf4, 0xc2, 0x6f, + 0x1b, 0x71, 0x07, 0x00, 0x00, } diff --git a/vendor/k8s.io/api/admission/v1beta1/generated.proto b/vendor/k8s.io/api/admission/v1beta1/generated.proto index a4e4ca266..451d4c9ad 100644 --- a/vendor/k8s.io/api/admission/v1beta1/generated.proto +++ b/vendor/k8s.io/api/admission/v1beta1/generated.proto @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -25,7 +25,6 @@ import "k8s.io/api/authentication/v1/generated.proto"; import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; -import "k8s.io/apimachinery/pkg/util/intstr/generated.proto"; // Package-wide variables from generator "generated". option go_package = "v1beta1"; @@ -74,6 +73,11 @@ message AdmissionRequest { // OldObject is the existing object. Only populated for UPDATE requests. // +optional optional k8s.io.apimachinery.pkg.runtime.RawExtension oldObject = 10; + + // DryRun indicates that modifications will definitely not be persisted for this request. + // Defaults to false. + // +optional + optional bool dryRun = 11; } // AdmissionResponse describes an admission response. @@ -97,6 +101,13 @@ message AdmissionResponse { // The type of Patch. Currently we only allow "JSONPatch". // +optional optional string patchType = 5; + + // AuditAnnotations is an unstructured key value map set by remote admission controller (e.g. error=image-blacklisted). + // MutatingAdmissionWebhook and ValidatingAdmissionWebhook admission controller will prefix the keys with + // admission webhook name (e.g. imagepolicy.example.com/error=image-blacklisted). AuditAnnotations will be provided by + // the admission webhook to add additional context to the audit log for this request. + // +optional + map auditAnnotations = 6; } // AdmissionReview describes an admission review request/response. diff --git a/vendor/k8s.io/api/admission/v1beta1/types.go b/vendor/k8s.io/api/admission/v1beta1/types.go index 9ad939c39..653e84710 100644 --- a/vendor/k8s.io/api/admission/v1beta1/types.go +++ b/vendor/k8s.io/api/admission/v1beta1/types.go @@ -71,6 +71,10 @@ type AdmissionRequest struct { // OldObject is the existing object. Only populated for UPDATE requests. // +optional OldObject runtime.RawExtension `json:"oldObject,omitempty" protobuf:"bytes,10,opt,name=oldObject"` + // DryRun indicates that modifications will definitely not be persisted for this request. + // Defaults to false. + // +optional + DryRun *bool `json:"dryRun,omitempty" protobuf:"varint,11,opt,name=dryRun"` } // AdmissionResponse describes an admission response. @@ -94,6 +98,13 @@ type AdmissionResponse struct { // The type of Patch. Currently we only allow "JSONPatch". // +optional PatchType *PatchType `json:"patchType,omitempty" protobuf:"bytes,5,opt,name=patchType"` + + // AuditAnnotations is an unstructured key value map set by remote admission controller (e.g. error=image-blacklisted). + // MutatingAdmissionWebhook and ValidatingAdmissionWebhook admission controller will prefix the keys with + // admission webhook name (e.g. imagepolicy.example.com/error=image-blacklisted). AuditAnnotations will be provided by + // the admission webhook to add additional context to the audit log for this request. + // +optional + AuditAnnotations map[string]string `json:"auditAnnotations,omitempty" protobuf:"bytes,6,opt,name=auditAnnotations"` } // PatchType is the type of patch being used to represent the mutated object diff --git a/vendor/k8s.io/api/admission/v1beta1/types_swagger_doc_generated.go b/vendor/k8s.io/api/admission/v1beta1/types_swagger_doc_generated.go index 1f5313517..8a938db3b 100644 --- a/vendor/k8s.io/api/admission/v1beta1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/admission/v1beta1/types_swagger_doc_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2016 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -26,7 +26,7 @@ package v1beta1 // // Those methods can be generated by using hack/update-generated-swagger-docs.sh -// AUTO-GENERATED FUNCTIONS START HERE +// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT. var map_AdmissionRequest = map[string]string{ "": "AdmissionRequest describes the admission.Attributes for the admission request.", "uid": "UID is an identifier for the individual request/response. It allows us to distinguish instances of requests which are otherwise identical (parallel requests, requests when earlier requests did not modify etc) The UID is meant to track the round trip (request/response) between the KAS and the WebHook, not the user request. It is suitable for correlating log entries between the webhook and apiserver, for either auditing or debugging.", @@ -39,6 +39,7 @@ var map_AdmissionRequest = map[string]string{ "userInfo": "UserInfo is information about the requesting user", "object": "Object is the object from the incoming request prior to default values being applied", "oldObject": "OldObject is the existing object. Only populated for UPDATE requests.", + "dryRun": "DryRun indicates that modifications will definitely not be persisted for this request. Defaults to false.", } func (AdmissionRequest) SwaggerDoc() map[string]string { @@ -46,12 +47,13 @@ func (AdmissionRequest) SwaggerDoc() map[string]string { } var map_AdmissionResponse = map[string]string{ - "": "AdmissionResponse describes an admission response.", - "uid": "UID is an identifier for the individual request/response. This should be copied over from the corresponding AdmissionRequest.", - "allowed": "Allowed indicates whether or not the admission request was permitted.", - "status": "Result contains extra details into why an admission request was denied. This field IS NOT consulted in any way if \"Allowed\" is \"true\".", - "patch": "The patch body. Currently we only support \"JSONPatch\" which implements RFC 6902.", - "patchType": "The type of Patch. Currently we only allow \"JSONPatch\".", + "": "AdmissionResponse describes an admission response.", + "uid": "UID is an identifier for the individual request/response. This should be copied over from the corresponding AdmissionRequest.", + "allowed": "Allowed indicates whether or not the admission request was permitted.", + "status": "Result contains extra details into why an admission request was denied. This field IS NOT consulted in any way if \"Allowed\" is \"true\".", + "patch": "The patch body. Currently we only support \"JSONPatch\" which implements RFC 6902.", + "patchType": "The type of Patch. Currently we only allow \"JSONPatch\".", + "auditAnnotations": "AuditAnnotations is an unstructured key value map set by remote admission controller (e.g. error=image-blacklisted). MutatingAdmissionWebhook and ValidatingAdmissionWebhook admission controller will prefix the keys with admission webhook name (e.g. imagepolicy.example.com/error=image-blacklisted). AuditAnnotations will be provided by the admission webhook to add additional context to the audit log for this request.", } func (AdmissionResponse) SwaggerDoc() map[string]string { diff --git a/vendor/k8s.io/api/admission/v1beta1/zz_generated.deepcopy.go b/vendor/k8s.io/api/admission/v1beta1/zz_generated.deepcopy.go index fc60e1909..2b4352a94 100644 --- a/vendor/k8s.io/api/admission/v1beta1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/api/admission/v1beta1/zz_generated.deepcopy.go @@ -1,7 +1,7 @@ // +build !ignore_autogenerated /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -33,6 +33,11 @@ func (in *AdmissionRequest) DeepCopyInto(out *AdmissionRequest) { in.UserInfo.DeepCopyInto(&out.UserInfo) in.Object.DeepCopyInto(&out.Object) in.OldObject.DeepCopyInto(&out.OldObject) + if in.DryRun != nil { + in, out := &in.DryRun, &out.DryRun + *out = new(bool) + **out = **in + } return } @@ -51,12 +56,8 @@ func (in *AdmissionResponse) DeepCopyInto(out *AdmissionResponse) { *out = *in if in.Result != nil { in, out := &in.Result, &out.Result - if *in == nil { - *out = nil - } else { - *out = new(v1.Status) - (*in).DeepCopyInto(*out) - } + *out = new(v1.Status) + (*in).DeepCopyInto(*out) } if in.Patch != nil { in, out := &in.Patch, &out.Patch @@ -65,11 +66,14 @@ func (in *AdmissionResponse) DeepCopyInto(out *AdmissionResponse) { } if in.PatchType != nil { in, out := &in.PatchType, &out.PatchType - if *in == nil { - *out = nil - } else { - *out = new(PatchType) - **out = **in + *out = new(PatchType) + **out = **in + } + if in.AuditAnnotations != nil { + in, out := &in.AuditAnnotations, &out.AuditAnnotations + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val } } return @@ -91,21 +95,13 @@ func (in *AdmissionReview) DeepCopyInto(out *AdmissionReview) { out.TypeMeta = in.TypeMeta if in.Request != nil { in, out := &in.Request, &out.Request - if *in == nil { - *out = nil - } else { - *out = new(AdmissionRequest) - (*in).DeepCopyInto(*out) - } + *out = new(AdmissionRequest) + (*in).DeepCopyInto(*out) } if in.Response != nil { in, out := &in.Response, &out.Response - if *in == nil { - *out = nil - } else { - *out = new(AdmissionResponse) - (*in).DeepCopyInto(*out) - } + *out = new(AdmissionResponse) + (*in).DeepCopyInto(*out) } return } diff --git a/vendor/k8s.io/api/admissionregistration/v1alpha1/BUILD b/vendor/k8s.io/api/admissionregistration/v1alpha1/BUILD deleted file mode 100644 index 417eab39f..000000000 --- a/vendor/k8s.io/api/admissionregistration/v1alpha1/BUILD +++ /dev/null @@ -1,44 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "generated.pb.go", - "register.go", - "types.go", - "types_swagger_doc_generated.go", - "zz_generated.deepcopy.go", - ], - importpath = "k8s.io/api/admissionregistration/v1alpha1", - deps = [ - "//vendor/github.com/gogo/protobuf/proto:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) - -filegroup( - name = "go_default_library_protos", - srcs = ["generated.proto"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/api/admissionregistration/v1alpha1/doc.go b/vendor/k8s.io/api/admissionregistration/v1alpha1/doc.go index 8a5d1fbbb..d29913cf5 100644 --- a/vendor/k8s.io/api/admissionregistration/v1alpha1/doc.go +++ b/vendor/k8s.io/api/admissionregistration/v1alpha1/doc.go @@ -16,10 +16,10 @@ limitations under the License. // +k8s:deepcopy-gen=package // +k8s:openapi-gen=true +// +groupName=admissionregistration.k8s.io // Package v1alpha1 is the v1alpha1 version of the API. // AdmissionConfiguration and AdmissionPluginConfiguration are legacy static admission plugin configuration // InitializerConfiguration and validatingWebhookConfiguration is for the // new dynamic admission controller configuration. -// +groupName=admissionregistration.k8s.io package v1alpha1 // import "k8s.io/api/admissionregistration/v1alpha1" diff --git a/vendor/k8s.io/api/admissionregistration/v1alpha1/generated.pb.go b/vendor/k8s.io/api/admissionregistration/v1alpha1/generated.pb.go index f5d4941d3..74c467a22 100644 --- a/vendor/k8s.io/api/admissionregistration/v1alpha1/generated.pb.go +++ b/vendor/k8s.io/api/admissionregistration/v1alpha1/generated.pb.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -14,9 +14,8 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: k8s.io/kubernetes/vendor/k8s.io/api/admissionregistration/v1alpha1/generated.proto -// DO NOT EDIT! /* Package v1alpha1 is a generated protocol buffer package. @@ -251,24 +250,6 @@ func (m *Rule) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Generated(dAtA []byte, offset int, v uint64) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - dAtA[offset+4] = uint8(v >> 32) - dAtA[offset+5] = uint8(v >> 40) - dAtA[offset+6] = uint8(v >> 48) - dAtA[offset+7] = uint8(v >> 56) - return offset + 8 -} -func encodeFixed32Generated(dAtA []byte, offset int, v uint32) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - return offset + 4 -} func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -989,40 +970,39 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 545 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x51, 0x4d, 0x8b, 0x13, 0x3f, - 0x18, 0x6f, 0xfe, 0xdb, 0x42, 0x9b, 0x76, 0xf9, 0xcb, 0xe0, 0xa1, 0x14, 0x99, 0x96, 0x9e, 0x2a, - 0x62, 0x62, 0x57, 0x59, 0xbc, 0xee, 0xec, 0x41, 0x0a, 0xbe, 0x2c, 0x41, 0x3c, 0x88, 0x07, 0xd3, - 0xf6, 0xd9, 0x69, 0x6c, 0x27, 0x19, 0x92, 0x4c, 0x41, 0x4f, 0x5e, 0xbc, 0x0b, 0x7e, 0xa9, 0x1e, - 0xf7, 0xb8, 0xa7, 0x62, 0x47, 0xf0, 0xe8, 0x67, 0x90, 0x99, 0xe9, 0xec, 0xcc, 0x5a, 0x8b, 0xab, - 0xb7, 0x3c, 0xbf, 0x27, 0xbf, 0xb7, 0x04, 0xb3, 0xf9, 0x63, 0x43, 0x84, 0xa2, 0xf3, 0x68, 0x0c, - 0x5a, 0x82, 0x05, 0x43, 0x97, 0x20, 0xa7, 0x4a, 0xd3, 0xed, 0x82, 0x87, 0x82, 0xf2, 0x69, 0x20, - 0x8c, 0x11, 0x4a, 0x6a, 0xf0, 0x85, 0xb1, 0x9a, 0x5b, 0xa1, 0x24, 0x5d, 0x0e, 0xf9, 0x22, 0x9c, - 0xf1, 0x21, 0xf5, 0x41, 0x82, 0xe6, 0x16, 0xa6, 0x24, 0xd4, 0xca, 0x2a, 0xe7, 0x6e, 0x46, 0x25, - 0x3c, 0x14, 0xe4, 0xb7, 0x54, 0x92, 0x53, 0x3b, 0xf7, 0x7d, 0x61, 0x67, 0xd1, 0x98, 0x4c, 0x54, - 0x40, 0x7d, 0xe5, 0x2b, 0x9a, 0x2a, 0x8c, 0xa3, 0xf3, 0x74, 0x4a, 0x87, 0xf4, 0x94, 0x29, 0x77, - 0x1e, 0x15, 0xa1, 0x02, 0x3e, 0x99, 0x09, 0x09, 0xfa, 0x3d, 0x0d, 0xe7, 0x7e, 0x02, 0x18, 0x1a, - 0x80, 0xe5, 0x74, 0xb9, 0x93, 0xa7, 0x43, 0xf7, 0xb1, 0x74, 0x24, 0xad, 0x08, 0x60, 0x87, 0x70, - 0xfc, 0x27, 0x82, 0x99, 0xcc, 0x20, 0xe0, 0x3b, 0xbc, 0x87, 0xfb, 0x78, 0x91, 0x15, 0x0b, 0x2a, - 0xa4, 0x35, 0x56, 0xff, 0x4a, 0xea, 0x7f, 0x42, 0xb8, 0x39, 0x92, 0xc2, 0x0a, 0xbe, 0x10, 0x1f, - 0x40, 0x3b, 0x3d, 0x5c, 0x95, 0x3c, 0x80, 0x36, 0xea, 0xa1, 0x41, 0xc3, 0x6b, 0xad, 0xd6, 0xdd, - 0x4a, 0xbc, 0xee, 0x56, 0x9f, 0xf3, 0x00, 0x58, 0xba, 0x71, 0x5e, 0xe2, 0x9a, 0x8e, 0x16, 0x60, - 0xda, 0xff, 0xf5, 0x0e, 0x06, 0xcd, 0x23, 0x4a, 0x6e, 0xfc, 0xde, 0x84, 0x45, 0x0b, 0xf0, 0x0e, - 0xb7, 0x9a, 0xb5, 0x64, 0x32, 0x2c, 0x13, 0xeb, 0xff, 0x40, 0xb8, 0x5d, 0xca, 0x71, 0xaa, 0xe4, - 0xb9, 0xf0, 0xa3, 0x4c, 0xc0, 0x79, 0x8b, 0xeb, 0xc9, 0xeb, 0x4e, 0xb9, 0xe5, 0x69, 0xb0, 0xe6, - 0xd1, 0x83, 0x92, 0xeb, 0x55, 0x59, 0x12, 0xce, 0xfd, 0x04, 0x30, 0x24, 0xb9, 0x4d, 0x96, 0x43, - 0xf2, 0x62, 0xfc, 0x0e, 0x26, 0xf6, 0x19, 0x58, 0xee, 0x39, 0x5b, 0x5b, 0x5c, 0x60, 0xec, 0x4a, - 0xd5, 0x09, 0x71, 0x4b, 0x14, 0xee, 0x79, 0xb7, 0xe3, 0xbf, 0xe8, 0x56, 0x0a, 0xef, 0xdd, 0xde, - 0x7a, 0xb5, 0x4a, 0xa0, 0x61, 0xd7, 0x1c, 0xfa, 0xdf, 0x11, 0xbe, 0xb3, 0xaf, 0xf0, 0x53, 0x61, - 0xac, 0xf3, 0x66, 0xa7, 0x34, 0xb9, 0x59, 0xe9, 0x84, 0x9d, 0x56, 0xbe, 0xb5, 0x8d, 0x51, 0xcf, - 0x91, 0x52, 0xe1, 0x19, 0xae, 0x09, 0x0b, 0x41, 0xde, 0xf4, 0xf4, 0xdf, 0x9a, 0x5e, 0x4b, 0x5d, - 0xfc, 0xec, 0x28, 0x51, 0x66, 0x99, 0x41, 0xff, 0x0b, 0xc2, 0xd5, 0xe4, 0xab, 0x9d, 0x7b, 0xb8, - 0xc1, 0x43, 0xf1, 0x44, 0xab, 0x28, 0x34, 0x6d, 0xd4, 0x3b, 0x18, 0x34, 0xbc, 0xc3, 0x78, 0xdd, - 0x6d, 0x9c, 0x9c, 0x8d, 0x32, 0x90, 0x15, 0x7b, 0x67, 0x88, 0x9b, 0x3c, 0x14, 0xaf, 0x40, 0x27, - 0x39, 0xb2, 0x94, 0x0d, 0xef, 0xff, 0x78, 0xdd, 0x6d, 0x9e, 0x9c, 0x8d, 0x72, 0x98, 0x95, 0xef, - 0x24, 0xfa, 0x1a, 0x8c, 0x8a, 0xf4, 0x04, 0x4c, 0xfb, 0xa0, 0xd0, 0x67, 0x39, 0xc8, 0x8a, 0xbd, - 0x47, 0x56, 0x1b, 0xb7, 0x72, 0xb1, 0x71, 0x2b, 0x97, 0x1b, 0xb7, 0xf2, 0x31, 0x76, 0xd1, 0x2a, - 0x76, 0xd1, 0x45, 0xec, 0xa2, 0xcb, 0xd8, 0x45, 0x5f, 0x63, 0x17, 0x7d, 0xfe, 0xe6, 0x56, 0x5e, - 0xd7, 0xf3, 0xd2, 0x3f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x1d, 0xfb, 0x23, 0x89, 0xaa, 0x04, 0x00, - 0x00, + // 531 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x51, 0x4d, 0x8b, 0x13, 0x31, + 0x18, 0x6e, 0x6c, 0x0b, 0x6d, 0xda, 0x45, 0x19, 0x3c, 0x94, 0x22, 0xd3, 0xd2, 0x53, 0x45, 0x4c, + 0xec, 0x22, 0x8b, 0xd7, 0x9d, 0x3d, 0x48, 0xc1, 0x8f, 0x25, 0x88, 0x07, 0xf1, 0x60, 0xda, 0xbe, + 0x3b, 0x8d, 0xed, 0x4c, 0x86, 0x24, 0x53, 0xd0, 0x93, 0x17, 0xef, 0x82, 0x7f, 0xaa, 0xc7, 0x3d, + 0xee, 0xa9, 0xd8, 0x11, 0x3c, 0xfa, 0x1b, 0x24, 0x33, 0x9d, 0x9d, 0x59, 0xeb, 0xe2, 0xea, 0x2d, + 0xef, 0xf3, 0xe6, 0xf9, 0x4a, 0x30, 0x5b, 0x3c, 0xd1, 0x44, 0x48, 0xba, 0x88, 0x27, 0xa0, 0x42, + 0x30, 0xa0, 0xe9, 0x0a, 0xc2, 0x99, 0x54, 0x74, 0xb7, 0xe0, 0x91, 0xa0, 0x7c, 0x16, 0x08, 0xad, + 0x85, 0x0c, 0x15, 0xf8, 0x42, 0x1b, 0xc5, 0x8d, 0x90, 0x21, 0x5d, 0x8d, 0xf8, 0x32, 0x9a, 0xf3, + 0x11, 0xf5, 0x21, 0x04, 0xc5, 0x0d, 0xcc, 0x48, 0xa4, 0xa4, 0x91, 0xce, 0xfd, 0x8c, 0x4a, 0x78, + 0x24, 0xc8, 0x1f, 0xa9, 0x24, 0xa7, 0x76, 0x1f, 0xfa, 0xc2, 0xcc, 0xe3, 0x09, 0x99, 0xca, 0x80, + 0xfa, 0xd2, 0x97, 0x34, 0x55, 0x98, 0xc4, 0x67, 0xe9, 0x94, 0x0e, 0xe9, 0x29, 0x53, 0xee, 0x3e, + 0x2e, 0x42, 0x05, 0x7c, 0x3a, 0x17, 0x21, 0xa8, 0x0f, 0x34, 0x5a, 0xf8, 0x16, 0xd0, 0x34, 0x00, + 0xc3, 0xe9, 0x6a, 0x2f, 0x4f, 0x97, 0x5e, 0xc7, 0x52, 0x71, 0x68, 0x44, 0x00, 0x7b, 0x84, 0xa3, + 0xbf, 0x11, 0xf4, 0x74, 0x0e, 0x01, 0xff, 0x9d, 0x37, 0xf8, 0x8c, 0x70, 0x6b, 0x1c, 0x0a, 0x23, + 0xf8, 0x52, 0x7c, 0x04, 0xe5, 0xf4, 0x71, 0x2d, 0xe4, 0x01, 0x74, 0x50, 0x1f, 0x0d, 0x9b, 0x5e, + 0x7b, 0xbd, 0xe9, 0x55, 0x92, 0x4d, 0xaf, 0xf6, 0x82, 0x07, 0xc0, 0xd2, 0x8d, 0xf3, 0x0a, 0xd7, + 0x55, 0xbc, 0x04, 0xdd, 0xb9, 0xd5, 0xaf, 0x0e, 0x5b, 0x87, 0x94, 0xdc, 0xf8, 0xe9, 0x08, 0x8b, + 0x97, 0xe0, 0x1d, 0xec, 0x34, 0xeb, 0x76, 0xd2, 0x2c, 0x13, 0x1b, 0xfc, 0x44, 0xb8, 0x53, 0xca, + 0x71, 0x22, 0xc3, 0x33, 0xe1, 0xc7, 0x99, 0x80, 0xf3, 0x0e, 0x37, 0xec, 0x43, 0xcd, 0xb8, 0xe1, + 0x69, 0xb0, 0xd6, 0xe1, 0xa3, 0x92, 0xeb, 0x65, 0x5f, 0x12, 0x2d, 0x7c, 0x0b, 0x68, 0x62, 0x6f, + 0x93, 0xd5, 0x88, 0xbc, 0x9c, 0xbc, 0x87, 0xa9, 0x79, 0x0e, 0x86, 0x7b, 0xce, 0xce, 0x16, 0x17, + 0x18, 0xbb, 0x54, 0x75, 0x22, 0xdc, 0x16, 0x85, 0x7b, 0xde, 0xed, 0xe8, 0x1f, 0xba, 0x95, 0xc2, + 0x7b, 0x77, 0x77, 0x5e, 0xed, 0x12, 0xa8, 0xd9, 0x15, 0x87, 0xc1, 0x0f, 0x84, 0xef, 0x5d, 0x57, + 0xf8, 0x99, 0xd0, 0xc6, 0x79, 0xbb, 0x57, 0x9a, 0xdc, 0xac, 0xb4, 0x65, 0xa7, 0x95, 0xef, 0xec, + 0x62, 0x34, 0x72, 0xa4, 0x54, 0x78, 0x8e, 0xeb, 0xc2, 0x40, 0x90, 0x37, 0x3d, 0xf9, 0xbf, 0xa6, + 0x57, 0x52, 0x17, 0x3f, 0x3b, 0xb6, 0xca, 0x2c, 0x33, 0x18, 0x7c, 0x45, 0xb8, 0x66, 0xbf, 0xda, + 0x79, 0x80, 0x9b, 0x3c, 0x12, 0x4f, 0x95, 0x8c, 0x23, 0xdd, 0x41, 0xfd, 0xea, 0xb0, 0xe9, 0x1d, + 0x24, 0x9b, 0x5e, 0xf3, 0xf8, 0x74, 0x9c, 0x81, 0xac, 0xd8, 0x3b, 0x23, 0xdc, 0xe2, 0x91, 0x78, + 0x0d, 0xca, 0xe6, 0xc8, 0x52, 0x36, 0xbd, 0xdb, 0xc9, 0xa6, 0xd7, 0x3a, 0x3e, 0x1d, 0xe7, 0x30, + 0x2b, 0xdf, 0xb1, 0xfa, 0x0a, 0xb4, 0x8c, 0xd5, 0x14, 0x74, 0xa7, 0x5a, 0xe8, 0xb3, 0x1c, 0x64, + 0xc5, 0xde, 0x23, 0xeb, 0xad, 0x5b, 0x39, 0xdf, 0xba, 0x95, 0x8b, 0xad, 0x5b, 0xf9, 0x94, 0xb8, + 0x68, 0x9d, 0xb8, 0xe8, 0x3c, 0x71, 0xd1, 0x45, 0xe2, 0xa2, 0x6f, 0x89, 0x8b, 0xbe, 0x7c, 0x77, + 0x2b, 0x6f, 0x1a, 0x79, 0xe9, 0x5f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xa2, 0x06, 0xa3, 0xcb, 0x75, + 0x04, 0x00, 0x00, } diff --git a/vendor/k8s.io/api/admissionregistration/v1alpha1/generated.proto b/vendor/k8s.io/api/admissionregistration/v1alpha1/generated.proto index 11de02ff4..98e9a571a 100644 --- a/vendor/k8s.io/api/admissionregistration/v1alpha1/generated.proto +++ b/vendor/k8s.io/api/admissionregistration/v1alpha1/generated.proto @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -24,7 +24,6 @@ package k8s.io.api.admissionregistration.v1alpha1; import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; -import "k8s.io/apimachinery/pkg/util/intstr/generated.proto"; // Package-wide variables from generator "generated". option go_package = "v1alpha1"; @@ -89,7 +88,7 @@ message Rule { repeated string apiVersions = 2; // Resources is a list of resources this rule applies to. - // + // // For example: // 'pods' means pods. // 'pods/log' means the log subresource of pods. @@ -97,10 +96,10 @@ message Rule { // 'pods/*' means all subresources of pods. // '*/scale' means all scale subresources. // '*/*' means all resources and their subresources. - // + // // If wildcard is present, the validation rule will ensure resources do not // overlap with each other. - // + // // Depending on the enclosing object, subresources might not be allowed. // Required. repeated string resources = 3; diff --git a/vendor/k8s.io/api/admissionregistration/v1alpha1/types_swagger_doc_generated.go b/vendor/k8s.io/api/admissionregistration/v1alpha1/types_swagger_doc_generated.go index e2494e5d7..69e4b7c64 100644 --- a/vendor/k8s.io/api/admissionregistration/v1alpha1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/admissionregistration/v1alpha1/types_swagger_doc_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2016 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -26,7 +26,7 @@ package v1alpha1 // // Those methods can be generated by using hack/update-generated-swagger-docs.sh -// AUTO-GENERATED FUNCTIONS START HERE +// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT. var map_Initializer = map[string]string{ "": "Initializer describes the name and the failure policy of an initializer, and what resources it applies to.", "name": "Name is the identifier of the initializer. It will be added to the object that needs to be initialized. Name should be fully qualified, e.g., alwayspullimages.kubernetes.io, where \"alwayspullimages\" is the name of the webhook, and kubernetes.io is the name of the organization. Required", diff --git a/vendor/k8s.io/api/admissionregistration/v1alpha1/zz_generated.deepcopy.go b/vendor/k8s.io/api/admissionregistration/v1alpha1/zz_generated.deepcopy.go index 2ca492946..9f636b484 100644 --- a/vendor/k8s.io/api/admissionregistration/v1alpha1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/api/admissionregistration/v1alpha1/zz_generated.deepcopy.go @@ -1,7 +1,7 @@ // +build !ignore_autogenerated /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/api/admissionregistration/v1beta1/BUILD b/vendor/k8s.io/api/admissionregistration/v1beta1/BUILD deleted file mode 100644 index dbcfadd2b..000000000 --- a/vendor/k8s.io/api/admissionregistration/v1beta1/BUILD +++ /dev/null @@ -1,44 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "generated.pb.go", - "register.go", - "types.go", - "types_swagger_doc_generated.go", - "zz_generated.deepcopy.go", - ], - importpath = "k8s.io/api/admissionregistration/v1beta1", - deps = [ - "//vendor/github.com/gogo/protobuf/proto:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) - -filegroup( - name = "go_default_library_protos", - srcs = ["generated.proto"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/api/admissionregistration/v1beta1/doc.go b/vendor/k8s.io/api/admissionregistration/v1beta1/doc.go index afbb3d6d3..2b29efaca 100644 --- a/vendor/k8s.io/api/admissionregistration/v1beta1/doc.go +++ b/vendor/k8s.io/api/admissionregistration/v1beta1/doc.go @@ -16,10 +16,10 @@ limitations under the License. // +k8s:deepcopy-gen=package // +k8s:openapi-gen=true +// +groupName=admissionregistration.k8s.io // Package v1beta1 is the v1beta1 version of the API. // AdmissionConfiguration and AdmissionPluginConfiguration are legacy static admission plugin configuration // InitializerConfiguration and validatingWebhookConfiguration is for the // new dynamic admission controller configuration. -// +groupName=admissionregistration.k8s.io package v1beta1 // import "k8s.io/api/admissionregistration/v1beta1" diff --git a/vendor/k8s.io/api/admissionregistration/v1beta1/generated.pb.go b/vendor/k8s.io/api/admissionregistration/v1beta1/generated.pb.go index 51e5762a8..2ca3fa652 100644 --- a/vendor/k8s.io/api/admissionregistration/v1beta1/generated.pb.go +++ b/vendor/k8s.io/api/admissionregistration/v1beta1/generated.pb.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -14,9 +14,8 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: k8s.io/kubernetes/vendor/k8s.io/api/admissionregistration/v1beta1/generated.proto -// DO NOT EDIT! /* Package v1beta1 is a generated protocol buffer package. @@ -457,6 +456,12 @@ func (m *Webhook) MarshalTo(dAtA []byte) (int, error) { } i += n7 } + if m.SideEffects != nil { + dAtA[i] = 0x32 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.SideEffects))) + i += copy(dAtA[i:], *m.SideEffects) + } return i, nil } @@ -500,24 +505,6 @@ func (m *WebhookClientConfig) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Generated(dAtA []byte, offset int, v uint64) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - dAtA[offset+4] = uint8(v >> 32) - dAtA[offset+5] = uint8(v >> 40) - dAtA[offset+6] = uint8(v >> 48) - dAtA[offset+7] = uint8(v >> 56) - return offset + 8 -} -func encodeFixed32Generated(dAtA []byte, offset int, v uint32) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - return offset + 4 -} func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -656,6 +643,10 @@ func (m *Webhook) Size() (n int) { l = m.NamespaceSelector.Size() n += 1 + l + sovGenerated(uint64(l)) } + if m.SideEffects != nil { + l = len(*m.SideEffects) + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -779,6 +770,7 @@ func (this *Webhook) String() string { `Rules:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Rules), "RuleWithOperations", "RuleWithOperations", 1), `&`, ``, 1) + `,`, `FailurePolicy:` + valueToStringGenerated(this.FailurePolicy) + `,`, `NamespaceSelector:` + strings.Replace(fmt.Sprintf("%v", this.NamespaceSelector), "LabelSelector", "k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector", 1) + `,`, + `SideEffects:` + valueToStringGenerated(this.SideEffects) + `,`, `}`, }, "") return s @@ -1813,6 +1805,36 @@ func (m *Webhook) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SideEffects", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := SideEffectClass(dAtA[iNdEx:postIndex]) + m.SideEffects = &s + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -2088,63 +2110,62 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 916 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x54, 0xcf, 0x6f, 0x1b, 0x45, - 0x14, 0xf6, 0xd6, 0x8e, 0x6c, 0x8f, 0x6d, 0xd1, 0x0c, 0x20, 0x99, 0xa8, 0xda, 0xb5, 0x7c, 0x40, - 0x96, 0x50, 0x76, 0x71, 0x8a, 0x10, 0x42, 0x20, 0x94, 0x8d, 0x54, 0x88, 0x94, 0xb4, 0x66, 0x02, - 0xad, 0x84, 0x38, 0x30, 0x5e, 0xbf, 0xd8, 0x83, 0xf7, 0x97, 0x66, 0x66, 0xdd, 0xe6, 0x86, 0xc4, - 0x3f, 0x80, 0xc4, 0x1f, 0xc1, 0x5f, 0xc1, 0x3d, 0x37, 0x7a, 0x41, 0xf4, 0xb4, 0x22, 0xcb, 0x99, - 0x03, 0xd7, 0x9e, 0xd0, 0xce, 0xae, 0xbd, 0x76, 0x1c, 0xa7, 0xee, 0x85, 0x03, 0x37, 0xcf, 0xf7, - 0xde, 0xf7, 0xbd, 0xf7, 0x3d, 0xbf, 0xb7, 0xe8, 0xcb, 0xe9, 0x47, 0xc2, 0x64, 0x81, 0x35, 0x8d, - 0x86, 0xc0, 0x7d, 0x90, 0x20, 0xac, 0x19, 0xf8, 0xa3, 0x80, 0x5b, 0x79, 0x80, 0x86, 0xcc, 0xa2, - 0x23, 0x8f, 0x09, 0xc1, 0x02, 0x9f, 0xc3, 0x98, 0x09, 0xc9, 0xa9, 0x64, 0x81, 0x6f, 0xcd, 0xfa, - 0x43, 0x90, 0xb4, 0x6f, 0x8d, 0xc1, 0x07, 0x4e, 0x25, 0x8c, 0xcc, 0x90, 0x07, 0x32, 0xc0, 0xbd, - 0x8c, 0x69, 0xd2, 0x90, 0x99, 0x37, 0x32, 0xcd, 0x9c, 0xb9, 0xb7, 0x3f, 0x66, 0x72, 0x12, 0x0d, - 0x4d, 0x27, 0xf0, 0xac, 0x71, 0x30, 0x0e, 0x2c, 0x25, 0x30, 0x8c, 0xce, 0xd5, 0x4b, 0x3d, 0xd4, - 0xaf, 0x4c, 0x78, 0xaf, 0xbb, 0xd4, 0x92, 0x13, 0x70, 0xb0, 0x66, 0x6b, 0xc5, 0xf7, 0x4e, 0x8b, - 0x1c, 0x78, 0x26, 0xc1, 0x4f, 0x6b, 0x8b, 0x7d, 0x1a, 0x32, 0x01, 0x7c, 0x06, 0xdc, 0x0a, 0xa7, - 0xe3, 0x34, 0x26, 0x56, 0x13, 0x36, 0x79, 0xd9, 0xfb, 0xa0, 0x90, 0xf3, 0xa8, 0x33, 0x61, 0x3e, - 0xf0, 0x8b, 0x42, 0xc3, 0x03, 0x49, 0x6f, 0x6a, 0xc2, 0xda, 0xc4, 0xe2, 0x91, 0x2f, 0x99, 0x07, - 0x6b, 0x84, 0x0f, 0x5f, 0x45, 0x10, 0xce, 0x04, 0x3c, 0xba, 0xc6, 0xbb, 0xbf, 0x89, 0x17, 0x49, - 0xe6, 0x5a, 0xcc, 0x97, 0x42, 0xf2, 0xeb, 0xa4, 0xee, 0xef, 0x1a, 0xba, 0x77, 0x1a, 0x49, 0x2a, - 0x99, 0x3f, 0x7e, 0x02, 0xc3, 0x49, 0x10, 0x4c, 0x8f, 0x02, 0xff, 0x9c, 0x8d, 0xa3, 0xec, 0xef, - 0xc1, 0xdf, 0xa1, 0x5a, 0xea, 0x6c, 0x44, 0x25, 0x6d, 0x6b, 0x1d, 0xad, 0xd7, 0x38, 0x78, 0xdf, - 0x2c, 0xfe, 0xd3, 0x45, 0x21, 0x33, 0x9c, 0x8e, 0x53, 0x40, 0x98, 0x69, 0xb6, 0x39, 0xeb, 0x9b, - 0x8f, 0x86, 0xdf, 0x83, 0x23, 0x4f, 0x41, 0x52, 0x1b, 0x5f, 0xc6, 0x46, 0x29, 0x89, 0x0d, 0x54, - 0x60, 0x64, 0xa1, 0x8a, 0xcf, 0x50, 0x2d, 0xaf, 0x2c, 0xda, 0x77, 0x3a, 0xe5, 0x5e, 0xe3, 0xa0, - 0x6f, 0x6e, 0xbb, 0x35, 0x66, 0xce, 0xb4, 0x2b, 0x69, 0x09, 0x52, 0x7b, 0x9a, 0x0b, 0x75, 0xff, - 0xd6, 0x50, 0xe7, 0x36, 0x5f, 0x27, 0x4c, 0x48, 0xfc, 0xed, 0x9a, 0x37, 0x73, 0x3b, 0x6f, 0x29, - 0x5b, 0x39, 0xbb, 0x9b, 0x3b, 0xab, 0xcd, 0x91, 0x25, 0x5f, 0x53, 0xb4, 0xc3, 0x24, 0x78, 0x73, - 0x53, 0x0f, 0xb6, 0x37, 0x75, 0x5b, 0xe3, 0x76, 0x2b, 0x2f, 0xb9, 0x73, 0x9c, 0x8a, 0x93, 0xac, - 0x46, 0xf7, 0x67, 0x0d, 0x55, 0x48, 0xe4, 0x02, 0x7e, 0x0f, 0xd5, 0x69, 0xc8, 0x3e, 0xe7, 0x41, - 0x14, 0x8a, 0xb6, 0xd6, 0x29, 0xf7, 0xea, 0x76, 0x2b, 0x89, 0x8d, 0xfa, 0xe1, 0xe0, 0x38, 0x03, - 0x49, 0x11, 0xc7, 0x7d, 0xd4, 0xa0, 0x21, 0x7b, 0x0c, 0x5c, 0x2d, 0xbe, 0x6a, 0xb4, 0x6e, 0xbf, - 0x91, 0xc4, 0x46, 0xe3, 0x70, 0x70, 0x3c, 0x87, 0xc9, 0x72, 0x4e, 0xaa, 0xcf, 0x41, 0x04, 0x11, - 0x77, 0x40, 0xb4, 0xcb, 0x85, 0x3e, 0x99, 0x83, 0xa4, 0x88, 0x77, 0x7f, 0xd1, 0x10, 0x4e, 0xbb, - 0x7a, 0xc2, 0xe4, 0xe4, 0x51, 0x08, 0x99, 0x03, 0x81, 0x3f, 0x43, 0x28, 0x58, 0xbc, 0xf2, 0x26, - 0x0d, 0xb5, 0x1f, 0x0b, 0xf4, 0x65, 0x6c, 0xb4, 0x16, 0xaf, 0xaf, 0x2e, 0x42, 0x20, 0x4b, 0x14, - 0x3c, 0x40, 0x15, 0x1e, 0xb9, 0xd0, 0xbe, 0xb3, 0xf6, 0xa7, 0xbd, 0x62, 0xb2, 0x69, 0x33, 0x76, - 0x33, 0x9f, 0xa0, 0x1a, 0x18, 0x51, 0x4a, 0xdd, 0x1f, 0x35, 0x74, 0xf7, 0x0c, 0xf8, 0x8c, 0x39, - 0x40, 0xe0, 0x1c, 0x38, 0xf8, 0x0e, 0x60, 0x0b, 0xd5, 0x7d, 0xea, 0x81, 0x08, 0xa9, 0x03, 0x6a, - 0x41, 0xea, 0xf6, 0x6e, 0xce, 0xad, 0x3f, 0x9c, 0x07, 0x48, 0x91, 0x83, 0x3b, 0xa8, 0x92, 0x3e, - 0x54, 0x5f, 0xf5, 0xa2, 0x4e, 0x9a, 0x4b, 0x54, 0x04, 0xdf, 0x43, 0x95, 0x90, 0xca, 0x49, 0xbb, - 0xac, 0x32, 0x6a, 0x69, 0x74, 0x40, 0xe5, 0x84, 0x28, 0xb4, 0xfb, 0x87, 0x86, 0xf4, 0xc7, 0xd4, - 0x65, 0xa3, 0xff, 0xdd, 0x3d, 0xfe, 0xa3, 0xa1, 0xee, 0xed, 0xce, 0xfe, 0x83, 0x8b, 0xf4, 0x56, - 0x2f, 0xf2, 0x8b, 0xed, 0x6d, 0xdd, 0xde, 0xfa, 0x86, 0x9b, 0xfc, 0xad, 0x8c, 0xaa, 0x79, 0xfa, - 0x62, 0x33, 0xb4, 0x8d, 0x9b, 0xf1, 0x14, 0x35, 0x1d, 0x97, 0x81, 0x2f, 0x33, 0xe9, 0x7c, 0xb7, - 0x3f, 0x7d, 0xed, 0xd1, 0x1f, 0x2d, 0x89, 0xd8, 0x6f, 0xe5, 0x85, 0x9a, 0xcb, 0x28, 0x59, 0x29, - 0x84, 0x29, 0xda, 0x49, 0x4f, 0x20, 0xbb, 0xe6, 0xc6, 0xc1, 0x27, 0xaf, 0x77, 0x4d, 0xab, 0xa7, - 0x5d, 0x4c, 0x22, 0x8d, 0x09, 0x92, 0x29, 0xe3, 0x13, 0xd4, 0x3a, 0xa7, 0xcc, 0x8d, 0x38, 0x0c, - 0x02, 0x97, 0x39, 0x17, 0xed, 0x8a, 0x1a, 0xc3, 0xbb, 0x49, 0x6c, 0xb4, 0x1e, 0x2c, 0x07, 0x5e, - 0xc6, 0xc6, 0xee, 0x0a, 0xa0, 0x4e, 0x7f, 0x95, 0x8c, 0x9f, 0xa1, 0xdd, 0xc5, 0xc9, 0x9d, 0x81, - 0x0b, 0x8e, 0x0c, 0x78, 0x7b, 0x47, 0x8d, 0xeb, 0xfe, 0x96, 0xdb, 0x42, 0x87, 0xe0, 0xce, 0xa9, - 0xf6, 0xdb, 0x49, 0x6c, 0xec, 0x3e, 0xbc, 0xae, 0x48, 0xd6, 0x8b, 0x74, 0x7f, 0xd5, 0xd0, 0x9b, - 0x37, 0x8c, 0x19, 0x53, 0x54, 0x15, 0xd9, 0xc7, 0x23, 0xdf, 0xda, 0x8f, 0xb7, 0x1f, 0xe2, 0xf5, - 0xaf, 0x8e, 0xdd, 0x48, 0x62, 0xa3, 0x3a, 0x47, 0xe7, 0xba, 0xb8, 0x87, 0x6a, 0x0e, 0xb5, 0x23, - 0x7f, 0x94, 0x7f, 0xf6, 0x9a, 0x76, 0x33, 0xdd, 0xf2, 0xa3, 0xc3, 0x0c, 0x23, 0x8b, 0x28, 0x7e, - 0x07, 0x95, 0x23, 0xee, 0xe6, 0x5f, 0x98, 0x6a, 0x12, 0x1b, 0xe5, 0xaf, 0xc9, 0x09, 0x49, 0x31, - 0x7b, 0xff, 0xf2, 0x4a, 0x2f, 0x3d, 0xbf, 0xd2, 0x4b, 0x2f, 0xae, 0xf4, 0xd2, 0x0f, 0x89, 0xae, - 0x5d, 0x26, 0xba, 0xf6, 0x3c, 0xd1, 0xb5, 0x17, 0x89, 0xae, 0xfd, 0x99, 0xe8, 0xda, 0x4f, 0x7f, - 0xe9, 0xa5, 0x6f, 0xaa, 0x79, 0x6b, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0x78, 0x57, 0x76, 0x28, - 0x10, 0x0a, 0x00, 0x00, + // 906 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x54, 0xcf, 0x6f, 0xe3, 0x44, + 0x14, 0x8e, 0x37, 0x29, 0x49, 0x26, 0x89, 0x76, 0x3b, 0x80, 0x14, 0xaa, 0x95, 0x1d, 0xe5, 0x80, + 0x22, 0xa1, 0xb5, 0x49, 0x41, 0x08, 0x21, 0x10, 0xaa, 0x0b, 0x0b, 0x95, 0xba, 0xbb, 0x61, 0x0a, + 0xbb, 0x12, 0xe2, 0xc0, 0xc4, 0x79, 0x49, 0x86, 0xf8, 0x97, 0x66, 0xc6, 0x59, 0x7a, 0x43, 0xe2, + 0x1f, 0x40, 0x42, 0xfc, 0x0d, 0xfc, 0x15, 0xdc, 0x7b, 0xdc, 0x0b, 0x62, 0x4f, 0x16, 0x35, 0x67, + 0x0e, 0x5c, 0x7b, 0x42, 0x63, 0x3b, 0x71, 0xd2, 0x6c, 0xbb, 0xe9, 0x85, 0x03, 0x37, 0xcf, 0xf7, + 0xe6, 0xfb, 0xde, 0xfb, 0x9e, 0xdf, 0x1b, 0xf4, 0xc5, 0xec, 0x7d, 0x61, 0xb2, 0xc0, 0x9a, 0x45, + 0x43, 0xe0, 0x3e, 0x48, 0x10, 0xd6, 0x1c, 0xfc, 0x51, 0xc0, 0xad, 0x3c, 0x40, 0x43, 0x66, 0xd1, + 0x91, 0xc7, 0x84, 0x60, 0x81, 0xcf, 0x61, 0xc2, 0x84, 0xe4, 0x54, 0xb2, 0xc0, 0xb7, 0xe6, 0xfd, + 0x21, 0x48, 0xda, 0xb7, 0x26, 0xe0, 0x03, 0xa7, 0x12, 0x46, 0x66, 0xc8, 0x03, 0x19, 0xe0, 0x5e, + 0xc6, 0x34, 0x69, 0xc8, 0xcc, 0x17, 0x32, 0xcd, 0x9c, 0xb9, 0x77, 0x6f, 0xc2, 0xe4, 0x34, 0x1a, + 0x9a, 0x4e, 0xe0, 0x59, 0x93, 0x60, 0x12, 0x58, 0xa9, 0xc0, 0x30, 0x1a, 0xa7, 0xa7, 0xf4, 0x90, + 0x7e, 0x65, 0xc2, 0x7b, 0xef, 0x16, 0x25, 0x79, 0xd4, 0x99, 0x32, 0x1f, 0xf8, 0xa9, 0x15, 0xce, + 0x26, 0x0a, 0x10, 0x96, 0x07, 0x92, 0x5a, 0xf3, 0x8d, 0x72, 0xf6, 0xac, 0xab, 0x58, 0x3c, 0xf2, + 0x25, 0xf3, 0x60, 0x83, 0xf0, 0xde, 0xcb, 0x08, 0xc2, 0x99, 0x82, 0x47, 0x2f, 0xf3, 0xba, 0xbf, + 0x6b, 0xe8, 0xee, 0x83, 0x48, 0x52, 0xc9, 0xfc, 0xc9, 0x13, 0x18, 0x4e, 0x83, 0x60, 0x76, 0x18, + 0xf8, 0x63, 0x36, 0x89, 0x32, 0xdb, 0xf8, 0x5b, 0x54, 0x53, 0x45, 0x8e, 0xa8, 0xa4, 0x6d, 0xad, + 0xa3, 0xf5, 0x1a, 0xfb, 0x6f, 0x9b, 0x45, 0xaf, 0x96, 0xb9, 0xcc, 0x70, 0x36, 0x51, 0x80, 0x30, + 0xd5, 0x6d, 0x73, 0xde, 0x37, 0x1f, 0x0d, 0xbf, 0x03, 0x47, 0x3e, 0x00, 0x49, 0x6d, 0x7c, 0x16, + 0x1b, 0xa5, 0x24, 0x36, 0x50, 0x81, 0x91, 0xa5, 0x2a, 0x3e, 0x41, 0xb5, 0x3c, 0xb3, 0x68, 0xdf, + 0xea, 0x94, 0x7b, 0x8d, 0xfd, 0xbe, 0xb9, 0xed, 0xdf, 0x30, 0x73, 0xa6, 0x5d, 0x51, 0x29, 0x48, + 0xed, 0x69, 0x2e, 0xd4, 0xfd, 0x5b, 0x43, 0x9d, 0xeb, 0x7c, 0x1d, 0x33, 0x21, 0xf1, 0x37, 0x1b, + 0xde, 0xcc, 0xed, 0xbc, 0x29, 0x76, 0xea, 0xec, 0x4e, 0xee, 0xac, 0xb6, 0x40, 0x56, 0x7c, 0xcd, + 0xd0, 0x0e, 0x93, 0xe0, 0x2d, 0x4c, 0xdd, 0xdf, 0xde, 0xd4, 0x75, 0x85, 0xdb, 0xad, 0x3c, 0xe5, + 0xce, 0x91, 0x12, 0x27, 0x59, 0x8e, 0xee, 0xcf, 0x1a, 0xaa, 0x90, 0xc8, 0x05, 0xfc, 0x16, 0xaa, + 0xd3, 0x90, 0x7d, 0xc6, 0x83, 0x28, 0x14, 0x6d, 0xad, 0x53, 0xee, 0xd5, 0xed, 0x56, 0x12, 0x1b, + 0xf5, 0x83, 0xc1, 0x51, 0x06, 0x92, 0x22, 0x8e, 0xfb, 0xa8, 0x41, 0x43, 0xf6, 0x18, 0xb8, 0x2a, + 0x25, 0x2b, 0xb4, 0x6e, 0xdf, 0x4e, 0x62, 0xa3, 0x71, 0x30, 0x38, 0x5a, 0xc0, 0x64, 0xf5, 0x8e, + 0xd2, 0xe7, 0x20, 0x82, 0x88, 0x3b, 0x20, 0xda, 0xe5, 0x42, 0x9f, 0x2c, 0x40, 0x52, 0xc4, 0xbb, + 0xbf, 0x6a, 0x08, 0xab, 0xaa, 0x9e, 0x30, 0x39, 0x7d, 0x14, 0x42, 0xe6, 0x40, 0xe0, 0x8f, 0x11, + 0x0a, 0x96, 0xa7, 0xbc, 0x48, 0x23, 0x9d, 0x8f, 0x25, 0x7a, 0x11, 0x1b, 0xad, 0xe5, 0xe9, 0xcb, + 0xd3, 0x10, 0xc8, 0x0a, 0x05, 0x0f, 0x50, 0x85, 0x47, 0x2e, 0xb4, 0x6f, 0x6d, 0xfc, 0xb4, 0x97, + 0x74, 0x56, 0x15, 0x63, 0x37, 0xf3, 0x0e, 0xa6, 0x0d, 0x23, 0xa9, 0x52, 0xf7, 0x47, 0x0d, 0xdd, + 0x39, 0x01, 0x3e, 0x67, 0x0e, 0x10, 0x18, 0x03, 0x07, 0xdf, 0x01, 0x6c, 0xa1, 0xba, 0x4f, 0x3d, + 0x10, 0x21, 0x75, 0x20, 0x1d, 0x90, 0xba, 0xbd, 0x9b, 0x73, 0xeb, 0x0f, 0x17, 0x01, 0x52, 0xdc, + 0xc1, 0x1d, 0x54, 0x51, 0x87, 0xb4, 0xae, 0x7a, 0x91, 0x47, 0xdd, 0x25, 0x69, 0x04, 0xdf, 0x45, + 0x95, 0x90, 0xca, 0x69, 0xbb, 0x9c, 0xde, 0xa8, 0xa9, 0xe8, 0x80, 0xca, 0x29, 0x49, 0xd1, 0xee, + 0x1f, 0x1a, 0xd2, 0x1f, 0x53, 0x97, 0x8d, 0xfe, 0x77, 0xfb, 0xf8, 0x8f, 0x86, 0xba, 0xd7, 0x3b, + 0xfb, 0x0f, 0x36, 0xd2, 0x5b, 0xdf, 0xc8, 0xcf, 0xb7, 0xb7, 0x75, 0x7d, 0xe9, 0x57, 0xec, 0xe4, + 0x2f, 0x15, 0x54, 0xcd, 0xaf, 0x2f, 0x27, 0x43, 0xbb, 0x72, 0x32, 0x9e, 0xa2, 0xa6, 0xe3, 0x32, + 0xf0, 0x65, 0x26, 0x9d, 0xcf, 0xf6, 0x47, 0x37, 0x6e, 0xfd, 0xe1, 0x8a, 0x88, 0xfd, 0x5a, 0x9e, + 0xa8, 0xb9, 0x8a, 0x92, 0xb5, 0x44, 0x98, 0xa2, 0x1d, 0xb5, 0x02, 0xd9, 0x36, 0x37, 0xf6, 0x3f, + 0xbc, 0xd9, 0x36, 0xad, 0xaf, 0x76, 0xd1, 0x09, 0x15, 0x13, 0x24, 0x53, 0xc6, 0xc7, 0xa8, 0x35, + 0xa6, 0xcc, 0x8d, 0x38, 0x0c, 0x02, 0x97, 0x39, 0xa7, 0xed, 0x4a, 0xda, 0x86, 0x37, 0x93, 0xd8, + 0x68, 0xdd, 0x5f, 0x0d, 0x5c, 0xc4, 0xc6, 0xee, 0x1a, 0x90, 0xae, 0xfe, 0x3a, 0x19, 0x7f, 0x8f, + 0x76, 0x97, 0x2b, 0x77, 0x02, 0x2e, 0x38, 0x32, 0xe0, 0xed, 0x9d, 0xb4, 0x5d, 0xef, 0x6c, 0x39, + 0x2d, 0x74, 0x08, 0xee, 0x82, 0x6a, 0xbf, 0x9e, 0xc4, 0xc6, 0xee, 0xc3, 0xcb, 0x8a, 0x64, 0x33, + 0x09, 0xfe, 0x04, 0x35, 0x04, 0x1b, 0xc1, 0xa7, 0xe3, 0x31, 0x38, 0x52, 0xb4, 0x5f, 0x49, 0x5d, + 0x74, 0xd5, 0x7b, 0x79, 0x52, 0xc0, 0x17, 0xb1, 0x71, 0xbb, 0x38, 0x1e, 0xba, 0x54, 0x08, 0xb2, + 0x4a, 0xeb, 0xfe, 0xa6, 0xa1, 0x57, 0x5f, 0xf0, 0xb3, 0x30, 0x45, 0x55, 0x91, 0x3d, 0x41, 0xf9, + 0xec, 0x7f, 0xb0, 0xfd, 0xaf, 0xb8, 0xfc, 0x76, 0xd9, 0x8d, 0x24, 0x36, 0xaa, 0x0b, 0x74, 0xa1, + 0x8b, 0x7b, 0xa8, 0xe6, 0x50, 0x3b, 0xf2, 0x47, 0xf9, 0xe3, 0xd9, 0xb4, 0x9b, 0x6a, 0x57, 0x0e, + 0x0f, 0x32, 0x8c, 0x2c, 0xa3, 0xf8, 0x0d, 0x54, 0x8e, 0xb8, 0x9b, 0xbf, 0x53, 0xd5, 0x24, 0x36, + 0xca, 0x5f, 0x91, 0x63, 0xa2, 0x30, 0xfb, 0xde, 0xd9, 0xb9, 0x5e, 0x7a, 0x76, 0xae, 0x97, 0x9e, + 0x9f, 0xeb, 0xa5, 0x1f, 0x12, 0x5d, 0x3b, 0x4b, 0x74, 0xed, 0x59, 0xa2, 0x6b, 0xcf, 0x13, 0x5d, + 0xfb, 0x33, 0xd1, 0xb5, 0x9f, 0xfe, 0xd2, 0x4b, 0x5f, 0x57, 0xf3, 0xd2, 0xfe, 0x0d, 0x00, 0x00, + 0xff, 0xff, 0x85, 0x06, 0x8c, 0x7f, 0xae, 0x09, 0x00, 0x00, } diff --git a/vendor/k8s.io/api/admissionregistration/v1beta1/generated.proto b/vendor/k8s.io/api/admissionregistration/v1beta1/generated.proto index 8dcde259c..1c40ae530 100644 --- a/vendor/k8s.io/api/admissionregistration/v1beta1/generated.proto +++ b/vendor/k8s.io/api/admissionregistration/v1beta1/generated.proto @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,12 +21,9 @@ syntax = 'proto2'; package k8s.io.api.admissionregistration.v1beta1; -import "k8s.io/api/core/v1/generated.proto"; -import "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/generated.proto"; import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; -import "k8s.io/apimachinery/pkg/util/intstr/generated.proto"; // Package-wide variables from generator "generated". option go_package = "v1beta1"; @@ -69,7 +66,7 @@ message Rule { repeated string apiVersions = 2; // Resources is a list of resources this rule applies to. - // + // // For example: // 'pods' means pods. // 'pods/log' means the log subresource of pods. @@ -77,10 +74,10 @@ message Rule { // 'pods/*' means all subresources of pods. // '*/scale' means all scale subresources. // '*/*' means all resources and their subresources. - // + // // If wildcard is present, the validation rule will ensure resources do not // overlap with each other. - // + // // Depending on the enclosing object, subresources might not be allowed. // Required. repeated string resources = 3; @@ -155,6 +152,10 @@ message Webhook { // Rules describes what operations on what resources/subresources the webhook cares about. // The webhook cares about an operation if it matches _any_ Rule. + // However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks + // from putting the cluster in a state which cannot be recovered from without completely + // disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called + // on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects. repeated RuleWithOperations rules = 3; // FailurePolicy defines how unrecognized errors from the admission endpoint are handled - @@ -167,7 +168,7 @@ message Webhook { // object itself is a namespace, the matching is performed on // object.metadata.labels. If the object is another cluster scoped resource, // it never skips the webhook. - // + // // For example, to run the webhook on any objects whose namespace is not // associated with "runlevel" of "0" or "1"; you will set the selector as // follows: @@ -183,7 +184,7 @@ message Webhook { // } // ] // } - // + // // If instead you want to only run the webhook on any objects whose // namespace is associated with the "environment" of "prod" or "staging"; // you will set the selector as follows: @@ -199,63 +200,70 @@ message Webhook { // } // ] // } - // + // // See // https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ // for more examples of label selectors. - // + // // Default to the empty LabelSelector, which matches everything. // +optional optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector namespaceSelector = 5; + + // SideEffects states whether this webhookk has side effects. + // Acceptable values are: Unknown, None, Some, NoneOnDryRun + // Webhooks with side effects MUST implement a reconciliation system, since a request may be + // rejected by a future step in the admission change and the side effects therefore need to be undone. + // Requests with the dryRun attribute will be auto-rejected if they match a webhook with + // sideEffects == Unknown or Some. Defaults to Unknown. + // +optional + optional string sideEffects = 6; } // WebhookClientConfig contains the information to make a TLS // connection with the webhook message WebhookClientConfig { // `url` gives the location of the webhook, in standard URL form - // (`[scheme://]host:port/path`). Exactly one of `url` or `service` + // (`scheme://host:port/path`). Exactly one of `url` or `service` // must be specified. - // + // // The `host` should not refer to a service running in the cluster; use // the `service` field instead. The host might be resolved via external // DNS in some apiservers (e.g., `kube-apiserver` cannot resolve // in-cluster DNS as that would be a layering violation). `host` may // also be an IP address. - // + // // Please note that using `localhost` or `127.0.0.1` as a `host` is // risky unless you take great care to run this webhook on all hosts // which run an apiserver which might need to make calls to this // webhook. Such installs are likely to be non-portable, i.e., not easy // to turn up in a new cluster. - // + // // The scheme must be "https"; the URL must begin with "https://". - // + // // A path is optional, and if present may be any string permissible in // a URL. You may use the path to pass an arbitrary string to the // webhook, for example, a cluster identifier. - // + // // Attempting to use a user or basic auth e.g. "user:password@" is not // allowed. Fragments ("#...") and query parameters ("?...") are not // allowed, either. - // + // // +optional optional string url = 3; // `service` is a reference to the service for this webhook. Either // `service` or `url` must be specified. - // + // // If the webhook is running within the cluster, then you should use `service`. - // - // If there is only one port open for the service, that port will be - // used. If there are multiple ports open, port 443 will be used if it - // is open, otherwise it is an error. - // + // + // Port 443 will be used if it is open, otherwise it is an error. + // // +optional optional ServiceReference service = 1; - // `caBundle` is a PEM encoded CA bundle which will be used to validate - // the webhook's server certificate. - // Required. + // `caBundle` is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. + // If unspecified, system trust roots on the apiserver are used. + // +optional optional bytes caBundle = 2; } diff --git a/vendor/k8s.io/api/admissionregistration/v1beta1/types.go b/vendor/k8s.io/api/admissionregistration/v1beta1/types.go index be5c1339a..49d94ec0e 100644 --- a/vendor/k8s.io/api/admissionregistration/v1beta1/types.go +++ b/vendor/k8s.io/api/admissionregistration/v1beta1/types.go @@ -60,6 +60,22 @@ const ( Fail FailurePolicyType = "Fail" ) +type SideEffectClass string + +const ( + // SideEffectClassUnknown means that no information is known about the side effects of calling the webhook. + // If a request with the dry-run attribute would trigger a call to this webhook, the request will instead fail. + SideEffectClassUnknown SideEffectClass = "Unknown" + // SideEffectClassNone means that calling the webhook will have no side effects. + SideEffectClassNone SideEffectClass = "None" + // SideEffectClassSome means that calling the webhook will possibly have side effects. + // If a request with the dry-run attribute would trigger a call to this webhook, the request will instead fail. + SideEffectClassSome SideEffectClass = "Some" + // SideEffectClassNoneOnDryRun means that calling the webhook will possibly have side effects, but if the + // request being reviewed has the dry-run attribute, the side effects will be suppressed. + SideEffectClassNoneOnDryRun SideEffectClass = "NoneOnDryRun" +) + // +genclient // +genclient:nonNamespaced // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object @@ -135,6 +151,10 @@ type Webhook struct { // Rules describes what operations on what resources/subresources the webhook cares about. // The webhook cares about an operation if it matches _any_ Rule. + // However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks + // from putting the cluster in a state which cannot be recovered from without completely + // disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called + // on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects. Rules []RuleWithOperations `json:"rules,omitempty" protobuf:"bytes,3,rep,name=rules"` // FailurePolicy defines how unrecognized errors from the admission endpoint are handled - @@ -187,6 +207,15 @@ type Webhook struct { // Default to the empty LabelSelector, which matches everything. // +optional NamespaceSelector *metav1.LabelSelector `json:"namespaceSelector,omitempty" protobuf:"bytes,5,opt,name=namespaceSelector"` + + // SideEffects states whether this webhookk has side effects. + // Acceptable values are: Unknown, None, Some, NoneOnDryRun + // Webhooks with side effects MUST implement a reconciliation system, since a request may be + // rejected by a future step in the admission change and the side effects therefore need to be undone. + // Requests with the dryRun attribute will be auto-rejected if they match a webhook with + // sideEffects == Unknown or Some. Defaults to Unknown. + // +optional + SideEffects *SideEffectClass `json:"sideEffects,omitempty" protobuf:"bytes,6,opt,name=sideEffects,casttype=SideEffectClass"` } // RuleWithOperations is a tuple of Operations and Resources. It is recommended to make @@ -217,7 +246,7 @@ const ( // connection with the webhook type WebhookClientConfig struct { // `url` gives the location of the webhook, in standard URL form - // (`[scheme://]host:port/path`). Exactly one of `url` or `service` + // (`scheme://host:port/path`). Exactly one of `url` or `service` // must be specified. // // The `host` should not refer to a service running in the cluster; use @@ -250,17 +279,15 @@ type WebhookClientConfig struct { // // If the webhook is running within the cluster, then you should use `service`. // - // If there is only one port open for the service, that port will be - // used. If there are multiple ports open, port 443 will be used if it - // is open, otherwise it is an error. + // Port 443 will be used if it is open, otherwise it is an error. // // +optional - Service *ServiceReference `json:"service" protobuf:"bytes,1,opt,name=service"` + Service *ServiceReference `json:"service,omitempty" protobuf:"bytes,1,opt,name=service"` - // `caBundle` is a PEM encoded CA bundle which will be used to validate - // the webhook's server certificate. - // Required. - CABundle []byte `json:"caBundle" protobuf:"bytes,2,opt,name=caBundle"` + // `caBundle` is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. + // If unspecified, system trust roots on the apiserver are used. + // +optional + CABundle []byte `json:"caBundle,omitempty" protobuf:"bytes,2,opt,name=caBundle"` } // ServiceReference holds a reference to Service.legacy.k8s.io diff --git a/vendor/k8s.io/api/admissionregistration/v1beta1/types_swagger_doc_generated.go b/vendor/k8s.io/api/admissionregistration/v1beta1/types_swagger_doc_generated.go index 6dd18e973..e97628aab 100644 --- a/vendor/k8s.io/api/admissionregistration/v1beta1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/admissionregistration/v1beta1/types_swagger_doc_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2016 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -26,7 +26,7 @@ package v1beta1 // // Those methods can be generated by using hack/update-generated-swagger-docs.sh -// AUTO-GENERATED FUNCTIONS START HERE +// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT. var map_MutatingWebhookConfiguration = map[string]string{ "": "MutatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and may change the object.", "metadata": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata.", @@ -102,9 +102,10 @@ var map_Webhook = map[string]string{ "": "Webhook describes an admission webhook and the resources and operations it applies to.", "name": "The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.", "clientConfig": "ClientConfig defines how to communicate with the hook. Required", - "rules": "Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule.", + "rules": "Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.", "failurePolicy": "FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Ignore.", "namespaceSelector": "NamespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the webhook.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything.", + "sideEffects": "SideEffects states whether this webhookk has side effects. Acceptable values are: Unknown, None, Some, NoneOnDryRun Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission change and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some. Defaults to Unknown.", } func (Webhook) SwaggerDoc() map[string]string { @@ -113,9 +114,9 @@ func (Webhook) SwaggerDoc() map[string]string { var map_WebhookClientConfig = map[string]string{ "": "WebhookClientConfig contains the information to make a TLS connection with the webhook", - "url": "`url` gives the location of the webhook, in standard URL form (`[scheme://]host:port/path`). Exactly one of `url` or `service` must be specified.\n\nThe `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address.\n\nPlease note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.\n\nThe scheme must be \"https\"; the URL must begin with \"https://\".\n\nA path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.\n\nAttempting to use a user or basic auth e.g. \"user:password@\" is not allowed. Fragments (\"#...\") and query parameters (\"?...\") are not allowed, either.", - "service": "`service` is a reference to the service for this webhook. Either `service` or `url` must be specified.\n\nIf the webhook is running within the cluster, then you should use `service`.\n\nIf there is only one port open for the service, that port will be used. If there are multiple ports open, port 443 will be used if it is open, otherwise it is an error.", - "caBundle": "`caBundle` is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. Required.", + "url": "`url` gives the location of the webhook, in standard URL form (`scheme://host:port/path`). Exactly one of `url` or `service` must be specified.\n\nThe `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address.\n\nPlease note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.\n\nThe scheme must be \"https\"; the URL must begin with \"https://\".\n\nA path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.\n\nAttempting to use a user or basic auth e.g. \"user:password@\" is not allowed. Fragments (\"#...\") and query parameters (\"?...\") are not allowed, either.", + "service": "`service` is a reference to the service for this webhook. Either `service` or `url` must be specified.\n\nIf the webhook is running within the cluster, then you should use `service`.\n\nPort 443 will be used if it is open, otherwise it is an error.", + "caBundle": "`caBundle` is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. If unspecified, system trust roots on the apiserver are used.", } func (WebhookClientConfig) SwaggerDoc() map[string]string { diff --git a/vendor/k8s.io/api/admissionregistration/v1beta1/zz_generated.deepcopy.go b/vendor/k8s.io/api/admissionregistration/v1beta1/zz_generated.deepcopy.go index d8345d209..c6867be12 100644 --- a/vendor/k8s.io/api/admissionregistration/v1beta1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/api/admissionregistration/v1beta1/zz_generated.deepcopy.go @@ -1,7 +1,7 @@ // +build !ignore_autogenerated /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -149,12 +149,8 @@ func (in *ServiceReference) DeepCopyInto(out *ServiceReference) { *out = *in if in.Path != nil { in, out := &in.Path, &out.Path - if *in == nil { - *out = nil - } else { - *out = new(string) - **out = **in - } + *out = new(string) + **out = **in } return } @@ -248,21 +244,18 @@ func (in *Webhook) DeepCopyInto(out *Webhook) { } if in.FailurePolicy != nil { in, out := &in.FailurePolicy, &out.FailurePolicy - if *in == nil { - *out = nil - } else { - *out = new(FailurePolicyType) - **out = **in - } + *out = new(FailurePolicyType) + **out = **in } if in.NamespaceSelector != nil { in, out := &in.NamespaceSelector, &out.NamespaceSelector - if *in == nil { - *out = nil - } else { - *out = new(v1.LabelSelector) - (*in).DeepCopyInto(*out) - } + *out = new(v1.LabelSelector) + (*in).DeepCopyInto(*out) + } + if in.SideEffects != nil { + in, out := &in.SideEffects, &out.SideEffects + *out = new(SideEffectClass) + **out = **in } return } @@ -282,21 +275,13 @@ func (in *WebhookClientConfig) DeepCopyInto(out *WebhookClientConfig) { *out = *in if in.URL != nil { in, out := &in.URL, &out.URL - if *in == nil { - *out = nil - } else { - *out = new(string) - **out = **in - } + *out = new(string) + **out = **in } if in.Service != nil { in, out := &in.Service, &out.Service - if *in == nil { - *out = nil - } else { - *out = new(ServiceReference) - (*in).DeepCopyInto(*out) - } + *out = new(ServiceReference) + (*in).DeepCopyInto(*out) } if in.CABundle != nil { in, out := &in.CABundle, &out.CABundle diff --git a/vendor/k8s.io/api/apps/v1/BUILD b/vendor/k8s.io/api/apps/v1/BUILD deleted file mode 100644 index 7902387f5..000000000 --- a/vendor/k8s.io/api/apps/v1/BUILD +++ /dev/null @@ -1,43 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "generated.pb.go", - "register.go", - "types.go", - "types_swagger_doc_generated.go", - "zz_generated.deepcopy.go", - ], - importpath = "k8s.io/api/apps/v1", - visibility = ["//visibility:public"], - deps = [ - "//vendor/github.com/gogo/protobuf/proto:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", - ], -) - -filegroup( - name = "go_default_library_protos", - srcs = ["generated.proto"], - visibility = ["//visibility:public"], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/api/apps/v1/generated.pb.go b/vendor/k8s.io/api/apps/v1/generated.pb.go index 02123859b..5b29f4320 100644 --- a/vendor/k8s.io/api/apps/v1/generated.pb.go +++ b/vendor/k8s.io/api/apps/v1/generated.pb.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -14,9 +14,8 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: k8s.io/kubernetes/vendor/k8s.io/api/apps/v1/generated.proto -// DO NOT EDIT! /* Package v1 is a generated protocol buffer package. @@ -61,7 +60,6 @@ import fmt "fmt" import math "math" import k8s_io_api_core_v1 "k8s.io/api/core/v1" - import k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" import k8s_io_apimachinery_pkg_util_intstr "k8s.io/apimachinery/pkg/util/intstr" @@ -1441,24 +1439,6 @@ func (m *StatefulSetUpdateStrategy) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Generated(dAtA []byte, offset int, v uint64) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - dAtA[offset+4] = uint8(v >> 32) - dAtA[offset+5] = uint8(v >> 40) - dAtA[offset+6] = uint8(v >> 48) - dAtA[offset+7] = uint8(v >> 56) - return offset + 8 -} -func encodeFixed32Generated(dAtA []byte, offset int, v uint32) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - return offset + 4 -} func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -6812,134 +6792,133 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 2051 bytes of a gzipped FileDescriptorProto + // 2037 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5a, 0xcd, 0x6f, 0x24, 0x47, 0x1d, 0x75, 0xcf, 0x87, 0x3d, 0x2e, 0xaf, 0xed, 0xdd, 0xb2, 0xb1, 0x27, 0xbb, 0x64, 0x66, 0x19, - 0x60, 0xe3, 0xcd, 0x66, 0x7b, 0xf0, 0x66, 0x13, 0xa1, 0x2c, 0x02, 0x79, 0xc6, 0x21, 0x84, 0x78, - 0x6c, 0x53, 0x5e, 0xef, 0x61, 0x09, 0x12, 0x35, 0x33, 0xb5, 0xe3, 0x8e, 0xfb, 0x4b, 0xdd, 0xd5, - 0xc3, 0x8e, 0xb8, 0x20, 0x24, 0x38, 0x71, 0xe0, 0x3f, 0x41, 0x08, 0xc1, 0x0d, 0x45, 0x88, 0xcb, - 0x5e, 0x90, 0x22, 0x2e, 0xe4, 0x64, 0xb1, 0x93, 0x13, 0x42, 0x39, 0x72, 0xc9, 0x05, 0x54, 0xd5, - 0xd5, 0xdf, 0xd5, 0x9e, 0xb1, 0x37, 0xeb, 0xa0, 0x68, 0x6f, 0x9e, 0xaa, 0xf7, 0x7b, 0xfd, 0xab, - 0xaa, 0x5f, 0xd5, 0x7b, 0x5d, 0x6d, 0x70, 0xef, 0xf8, 0xdb, 0xae, 0xaa, 0x59, 0xcd, 0x63, 0xaf, - 0x4b, 0x1c, 0x93, 0x50, 0xe2, 0x36, 0x87, 0xc4, 0xec, 0x5b, 0x4e, 0x53, 0x74, 0x60, 0x5b, 0x6b, - 0x62, 0xdb, 0x76, 0x9b, 0xc3, 0xcd, 0xe6, 0x80, 0x98, 0xc4, 0xc1, 0x94, 0xf4, 0x55, 0xdb, 0xb1, - 0xa8, 0x05, 0xa1, 0x8f, 0x51, 0xb1, 0xad, 0xa9, 0x0c, 0xa3, 0x0e, 0x37, 0xaf, 0xde, 0x1e, 0x68, - 0xf4, 0xc8, 0xeb, 0xaa, 0x3d, 0xcb, 0x68, 0x0e, 0xac, 0x81, 0xd5, 0xe4, 0xd0, 0xae, 0xf7, 0x88, - 0xff, 0xe2, 0x3f, 0xf8, 0x5f, 0x3e, 0xc5, 0xd5, 0x46, 0xec, 0x31, 0x3d, 0xcb, 0x21, 0x92, 0xc7, - 0x5c, 0xbd, 0x19, 0xc3, 0xd8, 0x96, 0xae, 0xf5, 0x46, 0xcd, 0xe1, 0x66, 0x97, 0x50, 0x9c, 0x85, - 0xde, 0x8d, 0xa0, 0x06, 0xee, 0x1d, 0x69, 0x26, 0x71, 0x46, 0x4d, 0xfb, 0x78, 0xc0, 0x1a, 0xdc, - 0xa6, 0x41, 0x28, 0x96, 0x3d, 0xa0, 0x99, 0x17, 0xe5, 0x78, 0x26, 0xd5, 0x0c, 0x92, 0x09, 0x78, - 0x73, 0x52, 0x80, 0xdb, 0x3b, 0x22, 0x06, 0xce, 0xc4, 0xbd, 0x9e, 0x17, 0xe7, 0x51, 0x4d, 0x6f, - 0x6a, 0x26, 0x75, 0xa9, 0x93, 0x0e, 0x6a, 0xfc, 0x47, 0x01, 0xb0, 0x6d, 0x99, 0xd4, 0xb1, 0x74, - 0x9d, 0x38, 0x88, 0x0c, 0x35, 0x57, 0xb3, 0x4c, 0xf8, 0x53, 0x50, 0x61, 0xe3, 0xe9, 0x63, 0x8a, - 0xab, 0xca, 0x75, 0x65, 0x63, 0xe1, 0xce, 0xb7, 0xd4, 0x68, 0x3d, 0x42, 0x7a, 0xd5, 0x3e, 0x1e, - 0xb0, 0x06, 0x57, 0x65, 0x68, 0x75, 0xb8, 0xa9, 0xee, 0x75, 0x3f, 0x20, 0x3d, 0xda, 0x21, 0x14, - 0xb7, 0xe0, 0x93, 0x93, 0xfa, 0xcc, 0xf8, 0xa4, 0x0e, 0xa2, 0x36, 0x14, 0xb2, 0xc2, 0x3d, 0x50, - 0xe2, 0xec, 0x05, 0xce, 0x7e, 0x3b, 0x97, 0x5d, 0x0c, 0x5a, 0x45, 0xf8, 0x67, 0x6f, 0x3f, 0xa6, - 0xc4, 0x64, 0xe9, 0xb5, 0x2e, 0x09, 0xea, 0xd2, 0x36, 0xa6, 0x18, 0x71, 0x22, 0xf8, 0x1a, 0xa8, - 0x38, 0x22, 0xfd, 0x6a, 0xf1, 0xba, 0xb2, 0x51, 0x6c, 0x5d, 0x16, 0xa8, 0x4a, 0x30, 0x2c, 0x14, - 0x22, 0x1a, 0x7f, 0x55, 0xc0, 0x5a, 0x76, 0xdc, 0x3b, 0x9a, 0x4b, 0xe1, 0xfb, 0x99, 0xb1, 0xab, - 0xd3, 0x8d, 0x9d, 0x45, 0xf3, 0x91, 0x87, 0x0f, 0x0e, 0x5a, 0x62, 0xe3, 0x7e, 0x0f, 0x94, 0x35, - 0x4a, 0x0c, 0xb7, 0x5a, 0xb8, 0x5e, 0xdc, 0x58, 0xb8, 0x73, 0x43, 0xcd, 0x96, 0xb9, 0x9a, 0x4d, - 0xac, 0xb5, 0x28, 0x28, 0xcb, 0xef, 0xb2, 0x60, 0xe4, 0x73, 0x34, 0xfe, 0xab, 0x80, 0xf9, 0x6d, - 0x4c, 0x0c, 0xcb, 0x3c, 0x20, 0xf4, 0x02, 0x16, 0xad, 0x0d, 0x4a, 0xae, 0x4d, 0x7a, 0x62, 0xd1, - 0xbe, 0x26, 0xcb, 0x3d, 0x4c, 0xe7, 0xc0, 0x26, 0xbd, 0x68, 0xa1, 0xd8, 0x2f, 0xc4, 0x83, 0xe1, - 0x7b, 0x60, 0xd6, 0xa5, 0x98, 0x7a, 0x2e, 0x5f, 0xa6, 0x85, 0x3b, 0x5f, 0x3f, 0x9d, 0x86, 0x43, - 0x5b, 0x4b, 0x82, 0x68, 0xd6, 0xff, 0x8d, 0x04, 0x45, 0xe3, 0x5f, 0x05, 0x00, 0x43, 0x6c, 0xdb, - 0x32, 0xfb, 0x1a, 0x65, 0xf5, 0xfb, 0x16, 0x28, 0xd1, 0x91, 0x4d, 0xf8, 0x34, 0xcc, 0xb7, 0x6e, - 0x04, 0x59, 0xdc, 0x1f, 0xd9, 0xe4, 0xb3, 0x93, 0xfa, 0x5a, 0x36, 0x82, 0xf5, 0x20, 0x1e, 0x03, - 0x77, 0xc2, 0xfc, 0x0a, 0x3c, 0xfa, 0x6e, 0xf2, 0xd1, 0x9f, 0x9d, 0xd4, 0x25, 0xe7, 0x8a, 0x1a, - 0x32, 0x25, 0x13, 0x84, 0x43, 0x00, 0x75, 0xec, 0xd2, 0xfb, 0x0e, 0x36, 0x5d, 0xff, 0x49, 0x9a, - 0x41, 0xc4, 0xc8, 0x5f, 0x9d, 0x6e, 0x79, 0x58, 0x44, 0xeb, 0xaa, 0xc8, 0x02, 0xee, 0x64, 0xd8, - 0x90, 0xe4, 0x09, 0xf0, 0x06, 0x98, 0x75, 0x08, 0x76, 0x2d, 0xb3, 0x5a, 0xe2, 0xa3, 0x08, 0x27, - 0x10, 0xf1, 0x56, 0x24, 0x7a, 0xe1, 0x4d, 0x30, 0x67, 0x10, 0xd7, 0xc5, 0x03, 0x52, 0x2d, 0x73, - 0xe0, 0xb2, 0x00, 0xce, 0x75, 0xfc, 0x66, 0x14, 0xf4, 0x37, 0x7e, 0xaf, 0x80, 0xc5, 0x70, 0xe6, - 0x2e, 0x60, 0xab, 0xb4, 0x92, 0x5b, 0xe5, 0xe5, 0x53, 0xeb, 0x24, 0x67, 0x87, 0x7c, 0x58, 0x8c, - 0xe5, 0xcc, 0x8a, 0x10, 0xfe, 0x04, 0x54, 0x5c, 0xa2, 0x93, 0x1e, 0xb5, 0x1c, 0x91, 0xf3, 0xeb, - 0x53, 0xe6, 0x8c, 0xbb, 0x44, 0x3f, 0x10, 0xa1, 0xad, 0x4b, 0x2c, 0xe9, 0xe0, 0x17, 0x0a, 0x29, - 0xe1, 0x8f, 0x40, 0x85, 0x12, 0xc3, 0xd6, 0x31, 0x25, 0x62, 0x9b, 0x24, 0xea, 0x9b, 0x95, 0x0b, - 0x23, 0xdb, 0xb7, 0xfa, 0xf7, 0x05, 0x8c, 0x6f, 0x94, 0x70, 0x1e, 0x82, 0x56, 0x14, 0xd2, 0xc0, - 0x63, 0xb0, 0xe4, 0xd9, 0x7d, 0x86, 0xa4, 0xec, 0xe8, 0x1e, 0x8c, 0x44, 0xf9, 0xdc, 0x3a, 0x75, - 0x42, 0x0e, 0x13, 0x21, 0xad, 0x35, 0xf1, 0x80, 0xa5, 0x64, 0x3b, 0x4a, 0x51, 0xc3, 0x2d, 0xb0, - 0x6c, 0x68, 0x26, 0x22, 0xb8, 0x3f, 0x3a, 0x20, 0x3d, 0xcb, 0xec, 0xbb, 0xbc, 0x80, 0xca, 0xad, - 0x75, 0x41, 0xb0, 0xdc, 0x49, 0x76, 0xa3, 0x34, 0x1e, 0xee, 0x80, 0xd5, 0xe0, 0x9c, 0xfd, 0x81, - 0xe6, 0x52, 0xcb, 0x19, 0xed, 0x68, 0x86, 0x46, 0xab, 0xb3, 0x9c, 0xa7, 0x3a, 0x3e, 0xa9, 0xaf, - 0x22, 0x49, 0x3f, 0x92, 0x46, 0x35, 0x7e, 0x33, 0x0b, 0x96, 0x53, 0xa7, 0x01, 0x7c, 0x00, 0xd6, - 0x7a, 0x9e, 0xe3, 0x10, 0x93, 0xee, 0x7a, 0x46, 0x97, 0x38, 0x07, 0xbd, 0x23, 0xd2, 0xf7, 0x74, - 0xd2, 0xe7, 0x2b, 0x5a, 0x6e, 0xd5, 0x44, 0xae, 0x6b, 0x6d, 0x29, 0x0a, 0xe5, 0x44, 0xc3, 0x1f, - 0x02, 0x68, 0xf2, 0xa6, 0x8e, 0xe6, 0xba, 0x21, 0x67, 0x81, 0x73, 0x86, 0x1b, 0x70, 0x37, 0x83, - 0x40, 0x92, 0x28, 0x96, 0x63, 0x9f, 0xb8, 0x9a, 0x43, 0xfa, 0xe9, 0x1c, 0x8b, 0xc9, 0x1c, 0xb7, - 0xa5, 0x28, 0x94, 0x13, 0x0d, 0xdf, 0x00, 0x0b, 0xfe, 0xd3, 0xf8, 0x9c, 0x8b, 0xc5, 0x59, 0x11, - 0x64, 0x0b, 0xbb, 0x51, 0x17, 0x8a, 0xe3, 0xd8, 0xd0, 0xac, 0xae, 0x4b, 0x9c, 0x21, 0xe9, 0xbf, - 0xe3, 0x7b, 0x00, 0x26, 0x94, 0x65, 0x2e, 0x94, 0xe1, 0xd0, 0xf6, 0x32, 0x08, 0x24, 0x89, 0x62, - 0x43, 0xf3, 0xab, 0x26, 0x33, 0xb4, 0xd9, 0xe4, 0xd0, 0x0e, 0xa5, 0x28, 0x94, 0x13, 0xcd, 0x6a, - 0xcf, 0x4f, 0x79, 0x6b, 0x88, 0x35, 0x1d, 0x77, 0x75, 0x52, 0x9d, 0x4b, 0xd6, 0xde, 0x6e, 0xb2, - 0x1b, 0xa5, 0xf1, 0xf0, 0x1d, 0x70, 0xc5, 0x6f, 0x3a, 0x34, 0x71, 0x48, 0x52, 0xe1, 0x24, 0x2f, - 0x09, 0x92, 0x2b, 0xbb, 0x69, 0x00, 0xca, 0xc6, 0xc0, 0xb7, 0xc0, 0x52, 0xcf, 0xd2, 0x75, 0x5e, - 0x8f, 0x6d, 0xcb, 0x33, 0x69, 0x75, 0x9e, 0xb3, 0x40, 0xb6, 0x87, 0xda, 0x89, 0x1e, 0x94, 0x42, - 0xc2, 0x87, 0x00, 0xf4, 0x02, 0x39, 0x70, 0xab, 0x20, 0x5f, 0xe8, 0xb3, 0x3a, 0x14, 0x09, 0x70, - 0xd8, 0xe4, 0xa2, 0x18, 0x5b, 0xe3, 0x43, 0x05, 0xac, 0xe7, 0xec, 0x71, 0xf8, 0xbd, 0x84, 0xea, - 0xdd, 0x4a, 0xa9, 0xde, 0xb5, 0x9c, 0xb0, 0x98, 0xf4, 0xf5, 0xc0, 0x22, 0xf3, 0x1d, 0x9a, 0x39, - 0xf0, 0x21, 0xe2, 0x04, 0x7b, 0x55, 0x96, 0x3b, 0x8a, 0x03, 0xa3, 0x63, 0xf8, 0xca, 0xf8, 0xa4, - 0xbe, 0x98, 0xe8, 0x43, 0x49, 0xce, 0xc6, 0x2f, 0x0b, 0x00, 0x6c, 0x13, 0x5b, 0xb7, 0x46, 0x06, - 0x31, 0x2f, 0xc2, 0xb5, 0x6c, 0x27, 0x5c, 0x4b, 0x43, 0xba, 0x10, 0x61, 0x3e, 0xb9, 0xb6, 0x65, - 0x27, 0x65, 0x5b, 0xbe, 0x31, 0x81, 0xe7, 0x74, 0xdf, 0xf2, 0x8f, 0x22, 0x58, 0x89, 0xc0, 0x91, - 0x71, 0xb9, 0x97, 0x58, 0xc2, 0x57, 0x52, 0x4b, 0xb8, 0x2e, 0x09, 0x79, 0x6e, 0xce, 0xe5, 0xf3, - 0x77, 0x10, 0xf0, 0x03, 0xb0, 0xc4, 0xac, 0x8a, 0x5f, 0x08, 0xdc, 0x08, 0xcd, 0x9e, 0xd9, 0x08, - 0x85, 0x42, 0xb6, 0x93, 0x60, 0x42, 0x29, 0xe6, 0x1c, 0xe3, 0x35, 0xf7, 0xbc, 0x8d, 0x57, 0xe3, - 0x0f, 0x0a, 0x58, 0x8a, 0x96, 0xe9, 0x02, 0x6c, 0x52, 0x3b, 0x69, 0x93, 0x6a, 0xa7, 0xd7, 0x65, - 0x8e, 0x4f, 0xfa, 0x7b, 0x29, 0x9e, 0x35, 0x37, 0x4a, 0x1b, 0xec, 0x85, 0xca, 0xd6, 0xb5, 0x1e, - 0x76, 0x85, 0xac, 0x5e, 0xf2, 0x5f, 0xa6, 0xfc, 0x36, 0x14, 0xf6, 0x26, 0x2c, 0x55, 0xe1, 0xf9, - 0x5a, 0xaa, 0xe2, 0xe7, 0x63, 0xa9, 0xee, 0x83, 0x8a, 0x1b, 0x98, 0xa9, 0x12, 0xa7, 0xbc, 0x31, - 0x69, 0x3b, 0x0b, 0x1f, 0x15, 0xb2, 0x86, 0x0e, 0x2a, 0x64, 0x92, 0x79, 0xa7, 0xf2, 0x17, 0xe9, - 0x9d, 0xd8, 0x16, 0xb6, 0xb1, 0xe7, 0x92, 0x3e, 0xaf, 0xfb, 0x4a, 0xb4, 0x85, 0xf7, 0x79, 0x2b, - 0x12, 0xbd, 0xf0, 0x10, 0xac, 0xdb, 0x8e, 0x35, 0x70, 0x88, 0xeb, 0x6e, 0x13, 0xdc, 0xd7, 0x35, - 0x93, 0x04, 0x03, 0xf0, 0x55, 0xef, 0xda, 0xf8, 0xa4, 0xbe, 0xbe, 0x2f, 0x87, 0xa0, 0xbc, 0xd8, - 0xc6, 0x9f, 0x4b, 0xe0, 0x72, 0xfa, 0x44, 0xcc, 0x31, 0x22, 0xca, 0xb9, 0x8c, 0xc8, 0x6b, 0xb1, - 0x12, 0xf5, 0x5d, 0x5a, 0xec, 0x9d, 0x3f, 0x53, 0xa6, 0x5b, 0x60, 0x59, 0x18, 0x8f, 0xa0, 0x53, - 0x58, 0xb1, 0x70, 0x79, 0x0e, 0x93, 0xdd, 0x28, 0x8d, 0x67, 0xf6, 0x22, 0x72, 0x0d, 0x01, 0x49, - 0x29, 0x69, 0x2f, 0xb6, 0xd2, 0x00, 0x94, 0x8d, 0x81, 0x1d, 0xb0, 0xe2, 0x99, 0x59, 0x2a, 0xbf, - 0x5c, 0xae, 0x09, 0xaa, 0x95, 0xc3, 0x2c, 0x04, 0xc9, 0xe2, 0xe0, 0x8f, 0x13, 0x8e, 0x63, 0x96, - 0x1f, 0x04, 0xaf, 0x9c, 0x5e, 0xd1, 0x53, 0x5b, 0x0e, 0x78, 0x0f, 0x2c, 0x3a, 0xdc, 0x50, 0x06, - 0x59, 0xfa, 0xa6, 0xec, 0x2b, 0x22, 0x6c, 0x11, 0xc5, 0x3b, 0x51, 0x12, 0x2b, 0xf1, 0x51, 0x95, - 0x69, 0x7d, 0x54, 0xe3, 0x4f, 0x0a, 0x80, 0xd9, 0x2d, 0x38, 0xf1, 0xe5, 0x3e, 0x13, 0x11, 0x93, - 0xc8, 0xbe, 0xdc, 0xe1, 0xdc, 0x9a, 0xec, 0x70, 0xa2, 0x13, 0x74, 0x3a, 0x8b, 0x23, 0x66, 0xe0, - 0x62, 0x2e, 0x66, 0xa6, 0xb0, 0x38, 0x51, 0x3e, 0xcf, 0x66, 0x71, 0x62, 0x3c, 0xa7, 0x5b, 0x9c, - 0x7f, 0x17, 0xc0, 0x4a, 0x04, 0x9e, 0xda, 0xe2, 0x48, 0x42, 0x5e, 0x5c, 0xce, 0x4c, 0xbe, 0x9c, - 0x61, 0xb6, 0x23, 0x9a, 0xba, 0xff, 0x13, 0xdb, 0x11, 0x25, 0x94, 0x63, 0x3b, 0x7e, 0x57, 0x88, - 0x67, 0xfd, 0xa5, 0xb7, 0x1d, 0xcf, 0x7e, 0xb9, 0xd2, 0xf8, 0x4b, 0x11, 0x5c, 0x4e, 0x6f, 0xc1, - 0x84, 0x0e, 0x2a, 0x13, 0x75, 0x70, 0x1f, 0xac, 0x3e, 0xf2, 0x74, 0x7d, 0xc4, 0xa7, 0x21, 0x26, - 0x86, 0xbe, 0x82, 0x7e, 0x55, 0x44, 0xae, 0x7e, 0x5f, 0x82, 0x41, 0xd2, 0xc8, 0x1c, 0x4d, 0x2f, - 0x9e, 0x4b, 0xd3, 0x33, 0x6a, 0x53, 0x3a, 0x83, 0xda, 0x48, 0xf5, 0xb9, 0x7c, 0x0e, 0x7d, 0x9e, - 0x5a, 0x50, 0x25, 0xc7, 0xd5, 0xc4, 0x77, 0xf8, 0x5f, 0x2b, 0x60, 0x4d, 0xfe, 0xfa, 0x0c, 0x75, - 0xb0, 0x64, 0xe0, 0xc7, 0xf1, 0xcb, 0x8b, 0x49, 0x82, 0xe1, 0x51, 0x4d, 0x57, 0xfd, 0xaf, 0x3b, - 0xea, 0xbb, 0x26, 0xdd, 0x73, 0x0e, 0xa8, 0xa3, 0x99, 0x03, 0x5f, 0x60, 0x3b, 0x09, 0x2e, 0x94, - 0xe2, 0x6e, 0x7c, 0xa2, 0x80, 0xf5, 0x1c, 0x95, 0xbb, 0xd8, 0x4c, 0xe0, 0x43, 0x50, 0x31, 0xf0, - 0xe3, 0x03, 0xcf, 0x19, 0x04, 0x92, 0x7c, 0xf6, 0xe7, 0xf0, 0x8d, 0xdc, 0x11, 0x2c, 0x28, 0xe4, - 0x6b, 0xec, 0x81, 0xeb, 0x89, 0x41, 0xb2, 0x4d, 0x43, 0x1e, 0x79, 0x3a, 0xdf, 0x3f, 0xc2, 0x53, - 0xdc, 0x02, 0xf3, 0x36, 0x76, 0xa8, 0x16, 0x9a, 0xd1, 0x72, 0x6b, 0x71, 0x7c, 0x52, 0x9f, 0xdf, - 0x0f, 0x1a, 0x51, 0xd4, 0xdf, 0xf8, 0x55, 0x01, 0x2c, 0xc4, 0x48, 0x2e, 0x40, 0xdf, 0xdf, 0x4e, - 0xe8, 0xbb, 0xf4, 0x8b, 0x49, 0x7c, 0x54, 0x79, 0x02, 0xdf, 0x49, 0x09, 0xfc, 0x37, 0x27, 0x11, - 0x9d, 0xae, 0xf0, 0x9f, 0x16, 0xc0, 0x6a, 0x0c, 0x1d, 0x49, 0xfc, 0x77, 0x12, 0x12, 0xbf, 0x91, - 0x92, 0xf8, 0xaa, 0x2c, 0xe6, 0x85, 0xc6, 0x4f, 0xd6, 0xf8, 0x3f, 0x2a, 0x60, 0x39, 0x36, 0x77, - 0x17, 0x20, 0xf2, 0xdb, 0x49, 0x91, 0xaf, 0x4f, 0xa8, 0x97, 0x1c, 0x95, 0x7f, 0x52, 0x4e, 0xe4, - 0xfd, 0xa5, 0x97, 0xf9, 0x9f, 0x83, 0xd5, 0xa1, 0xa5, 0x7b, 0x06, 0x69, 0xeb, 0x58, 0x33, 0x02, - 0x00, 0x53, 0x32, 0x36, 0x89, 0x37, 0xa5, 0xf4, 0xc4, 0x71, 0x35, 0x97, 0x12, 0x93, 0x3e, 0x88, - 0x22, 0x23, 0x2d, 0x7e, 0x20, 0xa1, 0x43, 0xd2, 0x87, 0xc0, 0x37, 0xc0, 0x02, 0xd3, 0x54, 0xad, - 0x47, 0x76, 0xb1, 0x11, 0xd4, 0x54, 0xf8, 0x7d, 0xe0, 0x20, 0xea, 0x42, 0x71, 0x1c, 0x3c, 0x02, - 0x2b, 0xb6, 0xd5, 0xef, 0x60, 0x13, 0x0f, 0x08, 0x3b, 0xff, 0xf7, 0xf9, 0xff, 0x42, 0xf0, 0x7b, - 0x87, 0xf9, 0xd6, 0x9b, 0xc1, 0x0b, 0xe9, 0x7e, 0x16, 0xc2, 0x3c, 0xbb, 0xa4, 0x99, 0xef, 0x67, - 0x19, 0x25, 0x34, 0x32, 0x9f, 0xb3, 0xe6, 0x32, 0xff, 0x03, 0x20, 0x2b, 0xae, 0x73, 0x7e, 0xd0, - 0xca, 0xbb, 0x51, 0xa9, 0x9c, 0xeb, 0x6b, 0xd4, 0xa7, 0x25, 0x70, 0x25, 0x73, 0x40, 0x7e, 0x81, - 0x77, 0x1a, 0x19, 0xb7, 0x54, 0x3c, 0x83, 0x5b, 0xda, 0x02, 0xcb, 0xe2, 0x43, 0x58, 0xca, 0x6c, - 0x85, 0x76, 0xb4, 0x9d, 0xec, 0x46, 0x69, 0xbc, 0xec, 0x4e, 0xa5, 0x7c, 0xc6, 0x3b, 0x95, 0x78, - 0x16, 0xe2, 0xff, 0x37, 0xfc, 0xaa, 0xcb, 0x66, 0x21, 0xfe, 0x8d, 0x23, 0x8d, 0x87, 0xdf, 0x0d, - 0x4a, 0x2a, 0x64, 0x98, 0xe3, 0x0c, 0xa9, 0x1a, 0x09, 0x09, 0x52, 0xe8, 0x67, 0xfa, 0xd8, 0xf3, - 0xbe, 0xe4, 0x63, 0xcf, 0xc6, 0x84, 0x52, 0x9e, 0xde, 0x2a, 0xfe, 0x4d, 0x01, 0x2f, 0xe5, 0xee, - 0x01, 0xb8, 0x95, 0xd0, 0xd9, 0xdb, 0x29, 0x9d, 0x7d, 0x39, 0x37, 0x30, 0x26, 0xb6, 0x86, 0xfc, - 0x42, 0xe4, 0xee, 0xc4, 0x0b, 0x11, 0x89, 0x8b, 0x9a, 0x7c, 0x33, 0xd2, 0xda, 0x78, 0xf2, 0xb4, - 0x36, 0xf3, 0xd1, 0xd3, 0xda, 0xcc, 0xc7, 0x4f, 0x6b, 0x33, 0xbf, 0x18, 0xd7, 0x94, 0x27, 0xe3, - 0x9a, 0xf2, 0xd1, 0xb8, 0xa6, 0x7c, 0x3c, 0xae, 0x29, 0xff, 0x1c, 0xd7, 0x94, 0xdf, 0x7e, 0x52, - 0x9b, 0x79, 0x58, 0x18, 0x6e, 0xfe, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x70, 0x5f, 0xbf, 0x58, 0x3d, - 0x26, 0x00, 0x00, + 0x60, 0xe3, 0x64, 0xb3, 0x3d, 0xec, 0x66, 0x13, 0xa1, 0x2c, 0x02, 0x79, 0xc6, 0x21, 0x84, 0x78, + 0x6c, 0x53, 0x5e, 0xef, 0x61, 0x09, 0x12, 0xe5, 0xe9, 0xda, 0x71, 0xc7, 0xfd, 0xa5, 0xee, 0xea, + 0x61, 0x47, 0x5c, 0x10, 0x12, 0x9c, 0x38, 0xf0, 0x9f, 0x20, 0x84, 0xe0, 0x86, 0x22, 0xc4, 0x65, + 0x2f, 0x48, 0x11, 0x17, 0x72, 0xb2, 0xd8, 0xc9, 0x09, 0xa1, 0x1c, 0xb9, 0xe4, 0x02, 0xaa, 0xea, + 0xea, 0xef, 0x6a, 0xcf, 0xd8, 0x9b, 0x75, 0x50, 0x94, 0x9b, 0xa7, 0xea, 0xfd, 0x5e, 0xff, 0xaa, + 0xea, 0x57, 0xf5, 0x5e, 0x57, 0x1b, 0xdc, 0x3b, 0xfe, 0xb6, 0xa7, 0xea, 0x76, 0xfb, 0xd8, 0x3f, + 0x24, 0xae, 0x45, 0x28, 0xf1, 0xda, 0x43, 0x62, 0x69, 0xb6, 0xdb, 0x16, 0x1d, 0xd8, 0xd1, 0xdb, + 0xd8, 0x71, 0xbc, 0xf6, 0xf0, 0x76, 0x7b, 0x40, 0x2c, 0xe2, 0x62, 0x4a, 0x34, 0xd5, 0x71, 0x6d, + 0x6a, 0x43, 0x18, 0x60, 0x54, 0xec, 0xe8, 0x2a, 0xc3, 0xa8, 0xc3, 0xdb, 0x57, 0x6f, 0x0d, 0x74, + 0x7a, 0xe4, 0x1f, 0xaa, 0x7d, 0xdb, 0x6c, 0x0f, 0xec, 0x81, 0xdd, 0xe6, 0xd0, 0x43, 0xff, 0x11, + 0xff, 0xc5, 0x7f, 0xf0, 0xbf, 0x02, 0x8a, 0xab, 0xad, 0xc4, 0x63, 0xfa, 0xb6, 0x4b, 0x24, 0x8f, + 0xb9, 0x7a, 0x37, 0xc6, 0x98, 0xb8, 0x7f, 0xa4, 0x5b, 0xc4, 0x1d, 0xb5, 0x9d, 0xe3, 0x01, 0x6b, + 0xf0, 0xda, 0x26, 0xa1, 0x58, 0x16, 0xd5, 0x2e, 0x8a, 0x72, 0x7d, 0x8b, 0xea, 0x26, 0xc9, 0x05, + 0xbc, 0x31, 0x29, 0xc0, 0xeb, 0x1f, 0x11, 0x13, 0xe7, 0xe2, 0x5e, 0x2b, 0x8a, 0xf3, 0xa9, 0x6e, + 0xb4, 0x75, 0x8b, 0x7a, 0xd4, 0xcd, 0x06, 0xb5, 0xfe, 0xa3, 0x00, 0xd8, 0xb5, 0x2d, 0xea, 0xda, + 0x86, 0x41, 0x5c, 0x44, 0x86, 0xba, 0xa7, 0xdb, 0x16, 0xfc, 0x29, 0xa8, 0xb1, 0xf1, 0x68, 0x98, + 0xe2, 0xba, 0x72, 0x5d, 0xd9, 0x58, 0xb8, 0xf3, 0x2d, 0x35, 0x9e, 0xe4, 0x88, 0x5e, 0x75, 0x8e, + 0x07, 0xac, 0xc1, 0x53, 0x19, 0x5a, 0x1d, 0xde, 0x56, 0x77, 0x0f, 0xdf, 0x27, 0x7d, 0xda, 0x23, + 0x14, 0x77, 0xe0, 0x93, 0x93, 0xe6, 0xcc, 0xf8, 0xa4, 0x09, 0xe2, 0x36, 0x14, 0xb1, 0xc2, 0x5d, + 0x50, 0xe1, 0xec, 0x25, 0xce, 0x7e, 0xab, 0x90, 0x5d, 0x0c, 0x5a, 0x45, 0xf8, 0x67, 0x6f, 0x3d, + 0xa6, 0xc4, 0x62, 0xe9, 0x75, 0x2e, 0x09, 0xea, 0xca, 0x16, 0xa6, 0x18, 0x71, 0x22, 0xf8, 0x2a, + 0xa8, 0xb9, 0x22, 0xfd, 0x7a, 0xf9, 0xba, 0xb2, 0x51, 0xee, 0x5c, 0x16, 0xa8, 0x5a, 0x38, 0x2c, + 0x14, 0x21, 0x5a, 0x7f, 0x55, 0xc0, 0x5a, 0x7e, 0xdc, 0xdb, 0xba, 0x47, 0xe1, 0x7b, 0xb9, 0xb1, + 0xab, 0xd3, 0x8d, 0x9d, 0x45, 0xf3, 0x91, 0x47, 0x0f, 0x0e, 0x5b, 0x12, 0xe3, 0x7e, 0x17, 0x54, + 0x75, 0x4a, 0x4c, 0xaf, 0x5e, 0xba, 0x5e, 0xde, 0x58, 0xb8, 0x73, 0x43, 0xcd, 0xd7, 0xae, 0x9a, + 0x4f, 0xac, 0xb3, 0x28, 0x28, 0xab, 0xef, 0xb0, 0x60, 0x14, 0x70, 0xb4, 0xfe, 0xab, 0x80, 0xf9, + 0x2d, 0x4c, 0x4c, 0xdb, 0xda, 0x27, 0xf4, 0x02, 0x16, 0xad, 0x0b, 0x2a, 0x9e, 0x43, 0xfa, 0x62, + 0xd1, 0xbe, 0x26, 0xcb, 0x3d, 0x4a, 0x67, 0xdf, 0x21, 0xfd, 0x78, 0xa1, 0xd8, 0x2f, 0xc4, 0x83, + 0xe1, 0xbb, 0x60, 0xd6, 0xa3, 0x98, 0xfa, 0x1e, 0x5f, 0xa6, 0x85, 0x3b, 0x5f, 0x3f, 0x9d, 0x86, + 0x43, 0x3b, 0x4b, 0x82, 0x68, 0x36, 0xf8, 0x8d, 0x04, 0x45, 0xeb, 0x5f, 0x25, 0x00, 0x23, 0x6c, + 0xd7, 0xb6, 0x34, 0x9d, 0xb2, 0xfa, 0x7d, 0x13, 0x54, 0xe8, 0xc8, 0x21, 0x7c, 0x1a, 0xe6, 0x3b, + 0x37, 0xc2, 0x2c, 0xee, 0x8f, 0x1c, 0xf2, 0xe9, 0x49, 0x73, 0x2d, 0x1f, 0xc1, 0x7a, 0x10, 0x8f, + 0x81, 0xdb, 0x51, 0x7e, 0x25, 0x1e, 0x7d, 0x37, 0xfd, 0xe8, 0x4f, 0x4f, 0x9a, 0x92, 0xc3, 0x42, + 0x8d, 0x98, 0xd2, 0x09, 0xc2, 0x21, 0x80, 0x06, 0xf6, 0xe8, 0x7d, 0x17, 0x5b, 0x5e, 0xf0, 0x24, + 0xdd, 0x24, 0x62, 0xe4, 0xaf, 0x4c, 0xb7, 0x3c, 0x2c, 0xa2, 0x73, 0x55, 0x64, 0x01, 0xb7, 0x73, + 0x6c, 0x48, 0xf2, 0x04, 0x78, 0x03, 0xcc, 0xba, 0x04, 0x7b, 0xb6, 0x55, 0xaf, 0xf0, 0x51, 0x44, + 0x13, 0x88, 0x78, 0x2b, 0x12, 0xbd, 0xf0, 0x65, 0x30, 0x67, 0x12, 0xcf, 0xc3, 0x03, 0x52, 0xaf, + 0x72, 0xe0, 0xb2, 0x00, 0xce, 0xf5, 0x82, 0x66, 0x14, 0xf6, 0xb7, 0x7e, 0xaf, 0x80, 0xc5, 0x68, + 0xe6, 0x2e, 0x60, 0xab, 0x74, 0xd2, 0x5b, 0xe5, 0xc5, 0x53, 0xeb, 0xa4, 0x60, 0x87, 0x7c, 0x50, + 0x4e, 0xe4, 0xcc, 0x8a, 0x10, 0xfe, 0x04, 0xd4, 0x3c, 0x62, 0x90, 0x3e, 0xb5, 0x5d, 0x91, 0xf3, + 0x6b, 0x53, 0xe6, 0x8c, 0x0f, 0x89, 0xb1, 0x2f, 0x42, 0x3b, 0x97, 0x58, 0xd2, 0xe1, 0x2f, 0x14, + 0x51, 0xc2, 0x1f, 0x81, 0x1a, 0x25, 0xa6, 0x63, 0x60, 0x4a, 0xc4, 0x36, 0x49, 0xd5, 0x37, 0x2b, + 0x17, 0x46, 0xb6, 0x67, 0x6b, 0xf7, 0x05, 0x8c, 0x6f, 0x94, 0x68, 0x1e, 0xc2, 0x56, 0x14, 0xd1, + 0xc0, 0x63, 0xb0, 0xe4, 0x3b, 0x1a, 0x43, 0x52, 0x76, 0x74, 0x0f, 0x46, 0xa2, 0x7c, 0x6e, 0x9e, + 0x3a, 0x21, 0x07, 0xa9, 0x90, 0xce, 0x9a, 0x78, 0xc0, 0x52, 0xba, 0x1d, 0x65, 0xa8, 0xe1, 0x26, + 0x58, 0x36, 0x75, 0x0b, 0x11, 0xac, 0x8d, 0xf6, 0x49, 0xdf, 0xb6, 0x34, 0x8f, 0x17, 0x50, 0xb5, + 0xb3, 0x2e, 0x08, 0x96, 0x7b, 0xe9, 0x6e, 0x94, 0xc5, 0xc3, 0x6d, 0xb0, 0x1a, 0x9e, 0xb3, 0x3f, + 0xd0, 0x3d, 0x6a, 0xbb, 0xa3, 0x6d, 0xdd, 0xd4, 0x69, 0x7d, 0x96, 0xf3, 0xd4, 0xc7, 0x27, 0xcd, + 0x55, 0x24, 0xe9, 0x47, 0xd2, 0xa8, 0xd6, 0x6f, 0x66, 0xc1, 0x72, 0xe6, 0x34, 0x80, 0x0f, 0xc0, + 0x5a, 0xdf, 0x77, 0x5d, 0x62, 0xd1, 0x1d, 0xdf, 0x3c, 0x24, 0xee, 0x7e, 0xff, 0x88, 0x68, 0xbe, + 0x41, 0x34, 0xbe, 0xa2, 0xd5, 0x4e, 0x43, 0xe4, 0xba, 0xd6, 0x95, 0xa2, 0x50, 0x41, 0x34, 0xfc, + 0x21, 0x80, 0x16, 0x6f, 0xea, 0xe9, 0x9e, 0x17, 0x71, 0x96, 0x38, 0x67, 0xb4, 0x01, 0x77, 0x72, + 0x08, 0x24, 0x89, 0x62, 0x39, 0x6a, 0xc4, 0xd3, 0x5d, 0xa2, 0x65, 0x73, 0x2c, 0xa7, 0x73, 0xdc, + 0x92, 0xa2, 0x50, 0x41, 0x34, 0x7c, 0x1d, 0x2c, 0x04, 0x4f, 0xe3, 0x73, 0x2e, 0x16, 0x67, 0x45, + 0x90, 0x2d, 0xec, 0xc4, 0x5d, 0x28, 0x89, 0x63, 0x43, 0xb3, 0x0f, 0x3d, 0xe2, 0x0e, 0x89, 0xf6, + 0x76, 0xe0, 0x01, 0x98, 0x50, 0x56, 0xb9, 0x50, 0x46, 0x43, 0xdb, 0xcd, 0x21, 0x90, 0x24, 0x8a, + 0x0d, 0x2d, 0xa8, 0x9a, 0xdc, 0xd0, 0x66, 0xd3, 0x43, 0x3b, 0x90, 0xa2, 0x50, 0x41, 0x34, 0xab, + 0xbd, 0x20, 0xe5, 0xcd, 0x21, 0xd6, 0x0d, 0x7c, 0x68, 0x90, 0xfa, 0x5c, 0xba, 0xf6, 0x76, 0xd2, + 0xdd, 0x28, 0x8b, 0x87, 0x6f, 0x83, 0x2b, 0x41, 0xd3, 0x81, 0x85, 0x23, 0x92, 0x1a, 0x27, 0x79, + 0x41, 0x90, 0x5c, 0xd9, 0xc9, 0x02, 0x50, 0x3e, 0x06, 0xbe, 0x09, 0x96, 0xfa, 0xb6, 0x61, 0xf0, + 0x7a, 0xec, 0xda, 0xbe, 0x45, 0xeb, 0xf3, 0x9c, 0x05, 0xb2, 0x3d, 0xd4, 0x4d, 0xf5, 0xa0, 0x0c, + 0x12, 0x3e, 0x04, 0xa0, 0x1f, 0xca, 0x81, 0x57, 0x07, 0xc5, 0x42, 0x9f, 0xd7, 0xa1, 0x58, 0x80, + 0xa3, 0x26, 0x0f, 0x25, 0xd8, 0x5a, 0x1f, 0x28, 0x60, 0xbd, 0x60, 0x8f, 0xc3, 0xef, 0xa5, 0x54, + 0xef, 0x66, 0x46, 0xf5, 0xae, 0x15, 0x84, 0x25, 0xa4, 0xaf, 0x0f, 0x16, 0x99, 0xef, 0xd0, 0xad, + 0x41, 0x00, 0x11, 0x27, 0xd8, 0x2b, 0xb2, 0xdc, 0x51, 0x12, 0x18, 0x1f, 0xc3, 0x57, 0xc6, 0x27, + 0xcd, 0xc5, 0x54, 0x1f, 0x4a, 0x73, 0xb6, 0x7e, 0x59, 0x02, 0x60, 0x8b, 0x38, 0x86, 0x3d, 0x32, + 0x89, 0x75, 0x11, 0xae, 0x65, 0x2b, 0xe5, 0x5a, 0x5a, 0xd2, 0x85, 0x88, 0xf2, 0x29, 0xb4, 0x2d, + 0xdb, 0x19, 0xdb, 0xf2, 0x8d, 0x09, 0x3c, 0xa7, 0xfb, 0x96, 0x7f, 0x94, 0xc1, 0x4a, 0x0c, 0x8e, + 0x8d, 0xcb, 0xbd, 0xd4, 0x12, 0xbe, 0x94, 0x59, 0xc2, 0x75, 0x49, 0xc8, 0x73, 0x73, 0x2e, 0x9f, + 0xbd, 0x83, 0x80, 0xef, 0x83, 0x25, 0x66, 0x55, 0x82, 0x42, 0xe0, 0x46, 0x68, 0xf6, 0xcc, 0x46, + 0x28, 0x12, 0xb2, 0xed, 0x14, 0x13, 0xca, 0x30, 0x17, 0x18, 0xaf, 0xb9, 0xe7, 0x6d, 0xbc, 0x5a, + 0x7f, 0x50, 0xc0, 0x52, 0xbc, 0x4c, 0x17, 0x60, 0x93, 0xba, 0x69, 0x9b, 0xd4, 0x38, 0xbd, 0x2e, + 0x0b, 0x7c, 0xd2, 0xdf, 0x2b, 0xc9, 0xac, 0xb9, 0x51, 0xda, 0x60, 0x2f, 0x54, 0x8e, 0xa1, 0xf7, + 0xb1, 0x27, 0x64, 0xf5, 0x52, 0xf0, 0x32, 0x15, 0xb4, 0xa1, 0xa8, 0x37, 0x65, 0xa9, 0x4a, 0xcf, + 0xd7, 0x52, 0x95, 0x3f, 0x1b, 0x4b, 0x75, 0x1f, 0xd4, 0xbc, 0xd0, 0x4c, 0x55, 0x38, 0xe5, 0x8d, + 0x49, 0xdb, 0x59, 0xf8, 0xa8, 0x88, 0x35, 0x72, 0x50, 0x11, 0x93, 0xcc, 0x3b, 0x55, 0x3f, 0x4f, + 0xef, 0xc4, 0xb6, 0xb0, 0x83, 0x7d, 0x8f, 0x68, 0xbc, 0xee, 0x6b, 0xf1, 0x16, 0xde, 0xe3, 0xad, + 0x48, 0xf4, 0xc2, 0x03, 0xb0, 0xee, 0xb8, 0xf6, 0xc0, 0x25, 0x9e, 0xb7, 0x45, 0xb0, 0x66, 0xe8, + 0x16, 0x09, 0x07, 0x10, 0xa8, 0xde, 0xb5, 0xf1, 0x49, 0x73, 0x7d, 0x4f, 0x0e, 0x41, 0x45, 0xb1, + 0xad, 0x3f, 0x57, 0xc0, 0xe5, 0xec, 0x89, 0x58, 0x60, 0x44, 0x94, 0x73, 0x19, 0x91, 0x57, 0x13, + 0x25, 0x1a, 0xb8, 0xb4, 0xc4, 0x3b, 0x7f, 0xae, 0x4c, 0x37, 0xc1, 0xb2, 0x30, 0x1e, 0x61, 0xa7, + 0xb0, 0x62, 0xd1, 0xf2, 0x1c, 0xa4, 0xbb, 0x51, 0x16, 0xcf, 0xec, 0x45, 0xec, 0x1a, 0x42, 0x92, + 0x4a, 0xda, 0x5e, 0x6c, 0x66, 0x01, 0x28, 0x1f, 0x03, 0x7b, 0x60, 0xc5, 0xb7, 0xf2, 0x54, 0x41, + 0xb9, 0x5c, 0x13, 0x54, 0x2b, 0x07, 0x79, 0x08, 0x92, 0xc5, 0xc1, 0x1f, 0xa7, 0x1c, 0xc7, 0x2c, + 0x3f, 0x08, 0x5e, 0x3a, 0xbd, 0xa2, 0xa7, 0xb6, 0x1c, 0xf0, 0x1e, 0x58, 0x74, 0xb9, 0xa1, 0x0c, + 0xb3, 0x0c, 0x4c, 0xd9, 0x57, 0x44, 0xd8, 0x22, 0x4a, 0x76, 0xa2, 0x34, 0x56, 0xe2, 0xa3, 0x6a, + 0xd3, 0xfa, 0xa8, 0xd6, 0x9f, 0x14, 0x00, 0xf3, 0x5b, 0x70, 0xe2, 0xcb, 0x7d, 0x2e, 0x22, 0x21, + 0x91, 0x9a, 0xdc, 0xe1, 0xdc, 0x9c, 0xec, 0x70, 0xe2, 0x13, 0x74, 0x3a, 0x8b, 0x23, 0x66, 0xe0, + 0x62, 0x2e, 0x66, 0xa6, 0xb0, 0x38, 0x71, 0x3e, 0xcf, 0x66, 0x71, 0x12, 0x3c, 0xa7, 0x5b, 0x9c, + 0x7f, 0x97, 0xc0, 0x4a, 0x0c, 0x9e, 0xda, 0xe2, 0x48, 0x42, 0xbe, 0xbc, 0x9c, 0x99, 0x7c, 0x39, + 0xc3, 0x6c, 0x47, 0x3c, 0x75, 0xff, 0x27, 0xb6, 0x23, 0x4e, 0xa8, 0xc0, 0x76, 0xfc, 0xae, 0x94, + 0xcc, 0xfa, 0x0b, 0x6f, 0x3b, 0x9e, 0xfd, 0x72, 0xa5, 0xf5, 0x97, 0x32, 0xb8, 0x9c, 0xdd, 0x82, + 0x29, 0x1d, 0x54, 0x26, 0xea, 0xe0, 0x1e, 0x58, 0x7d, 0xe4, 0x1b, 0xc6, 0x88, 0x4f, 0x43, 0x42, + 0x0c, 0x03, 0x05, 0xfd, 0xaa, 0x88, 0x5c, 0xfd, 0xbe, 0x04, 0x83, 0xa4, 0x91, 0x05, 0x9a, 0x5e, + 0x3e, 0x97, 0xa6, 0xe7, 0xd4, 0xa6, 0x72, 0x06, 0xb5, 0x91, 0xea, 0x73, 0xf5, 0x1c, 0xfa, 0x3c, + 0xb5, 0xa0, 0x4a, 0x8e, 0xab, 0x89, 0xef, 0xf0, 0xbf, 0x56, 0xc0, 0x9a, 0xfc, 0xf5, 0x19, 0x1a, + 0x60, 0xc9, 0xc4, 0x8f, 0x93, 0x97, 0x17, 0x93, 0x04, 0xc3, 0xa7, 0xba, 0xa1, 0x06, 0x5f, 0x77, + 0xd4, 0x77, 0x2c, 0xba, 0xeb, 0xee, 0x53, 0x57, 0xb7, 0x06, 0x81, 0xc0, 0xf6, 0x52, 0x5c, 0x28, + 0xc3, 0xdd, 0xfa, 0x58, 0x01, 0xeb, 0x05, 0x2a, 0x77, 0xb1, 0x99, 0xc0, 0x87, 0xa0, 0x66, 0xe2, + 0xc7, 0xfb, 0xbe, 0x3b, 0x08, 0x25, 0xf9, 0xec, 0xcf, 0xe1, 0x1b, 0xb9, 0x27, 0x58, 0x50, 0xc4, + 0xd7, 0xda, 0x05, 0xd7, 0x53, 0x83, 0x64, 0x9b, 0x86, 0x3c, 0xf2, 0x0d, 0xbe, 0x7f, 0x84, 0xa7, + 0xb8, 0x09, 0xe6, 0x1d, 0xec, 0x52, 0x3d, 0x32, 0xa3, 0xd5, 0xce, 0xe2, 0xf8, 0xa4, 0x39, 0xbf, + 0x17, 0x36, 0xa2, 0xb8, 0xbf, 0xf5, 0xab, 0x12, 0x58, 0x48, 0x90, 0x5c, 0x80, 0xbe, 0xbf, 0x95, + 0xd2, 0x77, 0xe9, 0x17, 0x93, 0xe4, 0xa8, 0x8a, 0x04, 0xbe, 0x97, 0x11, 0xf8, 0x6f, 0x4e, 0x22, + 0x3a, 0x5d, 0xe1, 0x3f, 0x29, 0x81, 0xd5, 0x04, 0x3a, 0x96, 0xf8, 0xef, 0xa4, 0x24, 0x7e, 0x23, + 0x23, 0xf1, 0x75, 0x59, 0xcc, 0x97, 0x1a, 0x3f, 0x59, 0xe3, 0xff, 0xa8, 0x80, 0xe5, 0xc4, 0xdc, + 0x5d, 0x80, 0xc8, 0x6f, 0xa5, 0x45, 0xbe, 0x39, 0xa1, 0x5e, 0x0a, 0x54, 0xfe, 0x49, 0x35, 0x95, + 0xf7, 0x17, 0x5e, 0xe6, 0x7f, 0x0e, 0x56, 0x87, 0xb6, 0xe1, 0x9b, 0xa4, 0x6b, 0x60, 0xdd, 0x0c, + 0x01, 0x4c, 0xc9, 0xd8, 0x24, 0xbe, 0x2c, 0xa5, 0x27, 0xae, 0xa7, 0x7b, 0x94, 0x58, 0xf4, 0x41, + 0x1c, 0x19, 0x6b, 0xf1, 0x03, 0x09, 0x1d, 0x92, 0x3e, 0x04, 0xbe, 0x0e, 0x16, 0x98, 0xa6, 0xea, + 0x7d, 0xb2, 0x83, 0xcd, 0xb0, 0xa6, 0xa2, 0xef, 0x03, 0xfb, 0x71, 0x17, 0x4a, 0xe2, 0xe0, 0x11, + 0x58, 0x71, 0x6c, 0xad, 0x87, 0x2d, 0x3c, 0x20, 0xec, 0xfc, 0xdf, 0xb3, 0x0d, 0xbd, 0x3f, 0xe2, + 0xf7, 0x0e, 0xf3, 0x9d, 0x37, 0xc2, 0x17, 0xd2, 0xbd, 0x3c, 0x84, 0x79, 0x76, 0x49, 0x33, 0xdf, + 0xcf, 0x32, 0x4a, 0x68, 0xe6, 0x3e, 0x67, 0xcd, 0xe5, 0xfe, 0x07, 0x40, 0x56, 0x5c, 0xe7, 0xfc, + 0xa0, 0x55, 0x74, 0xa3, 0x52, 0x3b, 0xd7, 0xd7, 0xa8, 0x4f, 0x2a, 0xe0, 0x4a, 0xee, 0x80, 0xfc, + 0x1c, 0xef, 0x34, 0x72, 0x6e, 0xa9, 0x7c, 0x06, 0xb7, 0xb4, 0x09, 0x96, 0xc5, 0x87, 0xb0, 0x8c, + 0xd9, 0x8a, 0xec, 0x68, 0x37, 0xdd, 0x8d, 0xb2, 0x78, 0xd9, 0x9d, 0x4a, 0xf5, 0x8c, 0x77, 0x2a, + 0xc9, 0x2c, 0xc4, 0xff, 0x6f, 0x04, 0x55, 0x97, 0xcf, 0x42, 0xfc, 0x1b, 0x47, 0x16, 0x0f, 0xbf, + 0x1b, 0x96, 0x54, 0xc4, 0x30, 0xc7, 0x19, 0x32, 0x35, 0x12, 0x11, 0x64, 0xd0, 0xcf, 0xf4, 0xb1, + 0xe7, 0x3d, 0xc9, 0xc7, 0x9e, 0x8d, 0x09, 0xa5, 0x3c, 0xbd, 0x55, 0xfc, 0x9b, 0x02, 0x5e, 0x28, + 0xdc, 0x03, 0x70, 0x33, 0xa5, 0xb3, 0xb7, 0x32, 0x3a, 0xfb, 0x62, 0x61, 0x60, 0x42, 0x6c, 0x4d, + 0xf9, 0x85, 0xc8, 0xdd, 0x89, 0x17, 0x22, 0x12, 0x17, 0x35, 0xf9, 0x66, 0xa4, 0xb3, 0xf1, 0xe4, + 0x69, 0x63, 0xe6, 0xc3, 0xa7, 0x8d, 0x99, 0x8f, 0x9e, 0x36, 0x66, 0x7e, 0x31, 0x6e, 0x28, 0x4f, + 0xc6, 0x0d, 0xe5, 0xc3, 0x71, 0x43, 0xf9, 0x68, 0xdc, 0x50, 0xfe, 0x39, 0x6e, 0x28, 0xbf, 0xfd, + 0xb8, 0x31, 0xf3, 0xb0, 0x34, 0xbc, 0xfd, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xbc, 0x6b, 0x01, + 0x7b, 0x12, 0x26, 0x00, 0x00, } diff --git a/vendor/k8s.io/api/apps/v1/generated.proto b/vendor/k8s.io/api/apps/v1/generated.proto index 46473baa8..fea81922f 100644 --- a/vendor/k8s.io/api/apps/v1/generated.proto +++ b/vendor/k8s.io/api/apps/v1/generated.proto @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -22,7 +22,6 @@ syntax = 'proto2'; package k8s.io.api.apps.v1; import "k8s.io/api/core/v1/generated.proto"; -import "k8s.io/api/policy/v1beta1/generated.proto"; import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; @@ -281,6 +280,7 @@ message DeploymentSpec { // The deployment strategy to use to replace existing pods with new ones. // +optional + // +patchStrategy=retainKeys optional DeploymentStrategy strategy = 4; // Minimum number of seconds for which a newly created pod should be ready @@ -501,9 +501,9 @@ message RollingUpdateDeployment { // Absolute number is calculated from percentage by rounding down. // This can not be 0 if MaxSurge is 0. // Defaults to 25%. - // Example: when this is set to 30%, the old RC can be scaled down to 70% of desired pods - // immediately when the rolling update starts. Once new pods are ready, old RC - // can be scaled down further, followed by scaling up the new RC, ensuring + // Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods + // immediately when the rolling update starts. Once new pods are ready, old ReplicaSet + // can be scaled down further, followed by scaling up the new ReplicaSet, ensuring // that the total number of pods available at all times during the update is at // least 70% of desired pods. // +optional @@ -515,10 +515,10 @@ message RollingUpdateDeployment { // This can not be 0 if MaxUnavailable is 0. // Absolute number is calculated from percentage by rounding up. // Defaults to 25%. - // Example: when this is set to 30%, the new RC can be scaled up immediately when + // Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when // the rolling update starts, such that the total number of old and new pods do not exceed // 130% of desired pods. Once old pods have been killed, - // new RC can be scaled up further, ensuring that total number of pods running + // new ReplicaSet can be scaled up further, ensuring that total number of pods running // at any time during the update is at most 130% of desired pods. // +optional optional k8s.io.apimachinery.pkg.util.intstr.IntOrString maxSurge = 2; diff --git a/vendor/k8s.io/api/apps/v1/types.go b/vendor/k8s.io/api/apps/v1/types.go index b5df22c6f..68ac55bf1 100644 --- a/vendor/k8s.io/api/apps/v1/types.go +++ b/vendor/k8s.io/api/apps/v1/types.go @@ -32,6 +32,8 @@ const ( ) // +genclient +// +genclient:method=GetScale,verb=get,subresource=scale,result=k8s.io/api/autoscaling/v1.Scale +// +genclient:method=UpdateScale,verb=update,subresource=scale,input=k8s.io/api/autoscaling/v1.Scale,result=k8s.io/api/autoscaling/v1.Scale // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // StatefulSet represents a set of pods with consistent identities. @@ -244,6 +246,8 @@ type StatefulSetList struct { } // +genclient +// +genclient:method=GetScale,verb=get,subresource=scale,result=k8s.io/api/autoscaling/v1.Scale +// +genclient:method=UpdateScale,verb=update,subresource=scale,input=k8s.io/api/autoscaling/v1.Scale,result=k8s.io/api/autoscaling/v1.Scale // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // Deployment enables declarative updates for Pods and ReplicaSets. @@ -279,7 +283,8 @@ type DeploymentSpec struct { // The deployment strategy to use to replace existing pods with new ones. // +optional - Strategy DeploymentStrategy `json:"strategy,omitempty" protobuf:"bytes,4,opt,name=strategy"` + // +patchStrategy=retainKeys + Strategy DeploymentStrategy `json:"strategy,omitempty" patchStrategy:"retainKeys" protobuf:"bytes,4,opt,name=strategy"` // Minimum number of seconds for which a newly created pod should be ready // without any of its container crashing, for it to be considered available. @@ -307,8 +312,8 @@ type DeploymentSpec struct { const ( // DefaultDeploymentUniqueLabelKey is the default key of the selector that is added - // to existing RCs (and label key that is added to its pods) to prevent the existing RCs - // to select new pods (and old pods being select by new RC). + // to existing ReplicaSets (and label key that is added to its pods) to prevent the existing ReplicaSets + // to select new pods (and old pods being select by new ReplicaSet). DefaultDeploymentUniqueLabelKey string = "pod-template-hash" ) @@ -333,7 +338,7 @@ const ( // Kill all existing pods before creating new ones. RecreateDeploymentStrategyType DeploymentStrategyType = "Recreate" - // Replace the old RCs by new one using rolling update i.e gradually scale down the old RCs and scale up the new one. + // Replace the old ReplicaSets by new one using rolling update i.e gradually scale down the old ReplicaSets and scale up the new one. RollingUpdateDeploymentStrategyType DeploymentStrategyType = "RollingUpdate" ) @@ -344,9 +349,9 @@ type RollingUpdateDeployment struct { // Absolute number is calculated from percentage by rounding down. // This can not be 0 if MaxSurge is 0. // Defaults to 25%. - // Example: when this is set to 30%, the old RC can be scaled down to 70% of desired pods - // immediately when the rolling update starts. Once new pods are ready, old RC - // can be scaled down further, followed by scaling up the new RC, ensuring + // Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods + // immediately when the rolling update starts. Once new pods are ready, old ReplicaSet + // can be scaled down further, followed by scaling up the new ReplicaSet, ensuring // that the total number of pods available at all times during the update is at // least 70% of desired pods. // +optional @@ -358,10 +363,10 @@ type RollingUpdateDeployment struct { // This can not be 0 if MaxUnavailable is 0. // Absolute number is calculated from percentage by rounding up. // Defaults to 25%. - // Example: when this is set to 30%, the new RC can be scaled up immediately when + // Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when // the rolling update starts, such that the total number of old and new pods do not exceed // 130% of desired pods. Once old pods have been killed, - // new RC can be scaled up further, ensuring that total number of pods running + // new ReplicaSet can be scaled up further, ensuring that total number of pods running // at any time during the update is at most 130% of desired pods. // +optional MaxSurge *intstr.IntOrString `json:"maxSurge,omitempty" protobuf:"bytes,2,opt,name=maxSurge"` @@ -653,6 +658,8 @@ type DaemonSetList struct { } // +genclient +// +genclient:method=GetScale,verb=get,subresource=scale,result=k8s.io/api/autoscaling/v1.Scale +// +genclient:method=UpdateScale,verb=update,subresource=scale,input=k8s.io/api/autoscaling/v1.Scale,result=k8s.io/api/autoscaling/v1.Scale // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // ReplicaSet ensures that a specified number of pod replicas are running at any given time. diff --git a/vendor/k8s.io/api/apps/v1/types_swagger_doc_generated.go b/vendor/k8s.io/api/apps/v1/types_swagger_doc_generated.go index 4dec6f2f8..7e992c584 100644 --- a/vendor/k8s.io/api/apps/v1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/apps/v1/types_swagger_doc_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2016 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -26,7 +26,7 @@ package v1 // // Those methods can be generated by using hack/update-generated-swagger-docs.sh -// AUTO-GENERATED FUNCTIONS START HERE +// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT. var map_ControllerRevision = map[string]string{ "": "ControllerRevision implements an immutable snapshot of state data. Clients are responsible for serializing and deserializing the objects that contain their internal state. Once a ControllerRevision has been successfully created, it can not be updated. The API Server will fail validation of all requests that attempt to mutate the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However, it may be subject to name and representation changes in future releases, and clients should not depend on its stability. It is primarily for internal use by controllers.", "metadata": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", @@ -96,7 +96,7 @@ func (DaemonSetSpec) SwaggerDoc() map[string]string { } var map_DaemonSetStatus = map[string]string{ - "": "DaemonSetStatus represents the current status of a daemon set.", + "": "DaemonSetStatus represents the current status of a daemon set.", "currentNumberScheduled": "The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", "numberMisscheduled": "The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", "desiredNumberScheduled": "The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", @@ -271,8 +271,8 @@ func (RollingUpdateDaemonSet) SwaggerDoc() map[string]string { var map_RollingUpdateDeployment = map[string]string{ "": "Spec to control the desired behavior of rolling update.", - "maxUnavailable": "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 25%. Example: when this is set to 30%, the old RC can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old RC can be scaled down further, followed by scaling up the new RC, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods.", - "maxSurge": "The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 25%. Example: when this is set to 30%, the new RC can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new RC can be scaled up further, ensuring that total number of pods running at any time during the update is at most 130% of desired pods.", + "maxUnavailable": "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 25%. Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old ReplicaSet can be scaled down further, followed by scaling up the new ReplicaSet, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods.", + "maxSurge": "The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 25%. Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new ReplicaSet can be scaled up further, ensuring that total number of pods running at any time during the update is at most 130% of desired pods.", } func (RollingUpdateDeployment) SwaggerDoc() map[string]string { diff --git a/vendor/k8s.io/api/apps/v1/zz_generated.deepcopy.go b/vendor/k8s.io/api/apps/v1/zz_generated.deepcopy.go index 62984cb89..885203fca 100644 --- a/vendor/k8s.io/api/apps/v1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/api/apps/v1/zz_generated.deepcopy.go @@ -1,7 +1,7 @@ // +build !ignore_autogenerated /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,8 +21,8 @@ limitations under the License. package v1 import ( - core_v1 "k8s.io/api/core/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" intstr "k8s.io/apimachinery/pkg/util/intstr" ) @@ -170,23 +170,15 @@ func (in *DaemonSetSpec) DeepCopyInto(out *DaemonSetSpec) { *out = *in if in.Selector != nil { in, out := &in.Selector, &out.Selector - if *in == nil { - *out = nil - } else { - *out = new(meta_v1.LabelSelector) - (*in).DeepCopyInto(*out) - } + *out = new(metav1.LabelSelector) + (*in).DeepCopyInto(*out) } in.Template.DeepCopyInto(&out.Template) in.UpdateStrategy.DeepCopyInto(&out.UpdateStrategy) if in.RevisionHistoryLimit != nil { in, out := &in.RevisionHistoryLimit, &out.RevisionHistoryLimit - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } return } @@ -206,12 +198,8 @@ func (in *DaemonSetStatus) DeepCopyInto(out *DaemonSetStatus) { *out = *in if in.CollisionCount != nil { in, out := &in.CollisionCount, &out.CollisionCount - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } if in.Conditions != nil { in, out := &in.Conditions, &out.Conditions @@ -238,12 +226,8 @@ func (in *DaemonSetUpdateStrategy) DeepCopyInto(out *DaemonSetUpdateStrategy) { *out = *in if in.RollingUpdate != nil { in, out := &in.RollingUpdate, &out.RollingUpdate - if *in == nil { - *out = nil - } else { - *out = new(RollingUpdateDaemonSet) - (*in).DeepCopyInto(*out) - } + *out = new(RollingUpdateDaemonSet) + (*in).DeepCopyInto(*out) } return } @@ -342,41 +326,25 @@ func (in *DeploymentSpec) DeepCopyInto(out *DeploymentSpec) { *out = *in if in.Replicas != nil { in, out := &in.Replicas, &out.Replicas - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } if in.Selector != nil { in, out := &in.Selector, &out.Selector - if *in == nil { - *out = nil - } else { - *out = new(meta_v1.LabelSelector) - (*in).DeepCopyInto(*out) - } + *out = new(metav1.LabelSelector) + (*in).DeepCopyInto(*out) } in.Template.DeepCopyInto(&out.Template) in.Strategy.DeepCopyInto(&out.Strategy) if in.RevisionHistoryLimit != nil { in, out := &in.RevisionHistoryLimit, &out.RevisionHistoryLimit - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } if in.ProgressDeadlineSeconds != nil { in, out := &in.ProgressDeadlineSeconds, &out.ProgressDeadlineSeconds - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } return } @@ -403,12 +371,8 @@ func (in *DeploymentStatus) DeepCopyInto(out *DeploymentStatus) { } if in.CollisionCount != nil { in, out := &in.CollisionCount, &out.CollisionCount - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } return } @@ -428,12 +392,8 @@ func (in *DeploymentStrategy) DeepCopyInto(out *DeploymentStrategy) { *out = *in if in.RollingUpdate != nil { in, out := &in.RollingUpdate, &out.RollingUpdate - if *in == nil { - *out = nil - } else { - *out = new(RollingUpdateDeployment) - (*in).DeepCopyInto(*out) - } + *out = new(RollingUpdateDeployment) + (*in).DeepCopyInto(*out) } return } @@ -531,21 +491,13 @@ func (in *ReplicaSetSpec) DeepCopyInto(out *ReplicaSetSpec) { *out = *in if in.Replicas != nil { in, out := &in.Replicas, &out.Replicas - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } if in.Selector != nil { in, out := &in.Selector, &out.Selector - if *in == nil { - *out = nil - } else { - *out = new(meta_v1.LabelSelector) - (*in).DeepCopyInto(*out) - } + *out = new(metav1.LabelSelector) + (*in).DeepCopyInto(*out) } in.Template.DeepCopyInto(&out.Template) return @@ -589,12 +541,8 @@ func (in *RollingUpdateDaemonSet) DeepCopyInto(out *RollingUpdateDaemonSet) { *out = *in if in.MaxUnavailable != nil { in, out := &in.MaxUnavailable, &out.MaxUnavailable - if *in == nil { - *out = nil - } else { - *out = new(intstr.IntOrString) - **out = **in - } + *out = new(intstr.IntOrString) + **out = **in } return } @@ -614,21 +562,13 @@ func (in *RollingUpdateDeployment) DeepCopyInto(out *RollingUpdateDeployment) { *out = *in if in.MaxUnavailable != nil { in, out := &in.MaxUnavailable, &out.MaxUnavailable - if *in == nil { - *out = nil - } else { - *out = new(intstr.IntOrString) - **out = **in - } + *out = new(intstr.IntOrString) + **out = **in } if in.MaxSurge != nil { in, out := &in.MaxSurge, &out.MaxSurge - if *in == nil { - *out = nil - } else { - *out = new(intstr.IntOrString) - **out = **in - } + *out = new(intstr.IntOrString) + **out = **in } return } @@ -648,12 +588,8 @@ func (in *RollingUpdateStatefulSetStrategy) DeepCopyInto(out *RollingUpdateState *out = *in if in.Partition != nil { in, out := &in.Partition, &out.Partition - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } return } @@ -751,26 +687,18 @@ func (in *StatefulSetSpec) DeepCopyInto(out *StatefulSetSpec) { *out = *in if in.Replicas != nil { in, out := &in.Replicas, &out.Replicas - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } if in.Selector != nil { in, out := &in.Selector, &out.Selector - if *in == nil { - *out = nil - } else { - *out = new(meta_v1.LabelSelector) - (*in).DeepCopyInto(*out) - } + *out = new(metav1.LabelSelector) + (*in).DeepCopyInto(*out) } in.Template.DeepCopyInto(&out.Template) if in.VolumeClaimTemplates != nil { in, out := &in.VolumeClaimTemplates, &out.VolumeClaimTemplates - *out = make([]core_v1.PersistentVolumeClaim, len(*in)) + *out = make([]corev1.PersistentVolumeClaim, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } @@ -778,12 +706,8 @@ func (in *StatefulSetSpec) DeepCopyInto(out *StatefulSetSpec) { in.UpdateStrategy.DeepCopyInto(&out.UpdateStrategy) if in.RevisionHistoryLimit != nil { in, out := &in.RevisionHistoryLimit, &out.RevisionHistoryLimit - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } return } @@ -803,12 +727,8 @@ func (in *StatefulSetStatus) DeepCopyInto(out *StatefulSetStatus) { *out = *in if in.CollisionCount != nil { in, out := &in.CollisionCount, &out.CollisionCount - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } if in.Conditions != nil { in, out := &in.Conditions, &out.Conditions @@ -835,12 +755,8 @@ func (in *StatefulSetUpdateStrategy) DeepCopyInto(out *StatefulSetUpdateStrategy *out = *in if in.RollingUpdate != nil { in, out := &in.RollingUpdate, &out.RollingUpdate - if *in == nil { - *out = nil - } else { - *out = new(RollingUpdateStatefulSetStrategy) - (*in).DeepCopyInto(*out) - } + *out = new(RollingUpdateStatefulSetStrategy) + (*in).DeepCopyInto(*out) } return } diff --git a/vendor/k8s.io/api/apps/v1beta1/BUILD b/vendor/k8s.io/api/apps/v1beta1/BUILD deleted file mode 100644 index f40a41e3e..000000000 --- a/vendor/k8s.io/api/apps/v1beta1/BUILD +++ /dev/null @@ -1,47 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "generated.pb.go", - "register.go", - "types.go", - "types_swagger_doc_generated.go", - "zz_generated.deepcopy.go", - ], - importpath = "k8s.io/api/apps/v1beta1", - deps = [ - "//vendor/github.com/gogo/protobuf/proto:go_default_library", - "//vendor/github.com/gogo/protobuf/sortkeys:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) - -filegroup( - name = "go_default_library_protos", - srcs = ["generated.proto"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/api/apps/v1beta1/generated.pb.go b/vendor/k8s.io/api/apps/v1beta1/generated.pb.go index 04183fc2d..935304755 100644 --- a/vendor/k8s.io/api/apps/v1beta1/generated.pb.go +++ b/vendor/k8s.io/api/apps/v1beta1/generated.pb.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -14,9 +14,8 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: k8s.io/kubernetes/vendor/k8s.io/api/apps/v1beta1/generated.proto -// DO NOT EDIT! /* Package v1beta1 is a generated protocol buffer package. @@ -54,7 +53,6 @@ import fmt "fmt" import math "math" import k8s_io_api_core_v1 "k8s.io/api/core/v1" - import k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" import k8s_io_apimachinery_pkg_util_intstr "k8s.io/apimachinery/pkg/util/intstr" @@ -1092,24 +1090,6 @@ func (m *StatefulSetUpdateStrategy) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Generated(dAtA []byte, offset int, v uint64) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - dAtA[offset+4] = uint8(v >> 32) - dAtA[offset+5] = uint8(v >> 40) - dAtA[offset+6] = uint8(v >> 48) - dAtA[offset+7] = uint8(v >> 56) - return offset + 8 -} -func encodeFixed32Generated(dAtA []byte, offset int, v uint32) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - return offset + 4 -} func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -2553,51 +2533,14 @@ func (m *DeploymentRollback) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.UpdatedAnnotations == nil { m.UpdatedAnnotations = make(map[string]string) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -2607,41 +2550,80 @@ func (m *DeploymentRollback) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - m.UpdatedAnnotations[mapkey] = mapvalue - } else { - var mapvalue string - m.UpdatedAnnotations[mapkey] = mapvalue } + m.UpdatedAnnotations[mapkey] = mapvalue iNdEx = postIndex case 3: if wireType != 2 { @@ -3834,51 +3816,14 @@ func (m *ScaleStatus) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.Selector == nil { m.Selector = make(map[string]string) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -3888,41 +3833,80 @@ func (m *ScaleStatus) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - m.Selector[mapkey] = mapvalue - } else { - var mapvalue string - m.Selector[mapkey] = mapvalue } + m.Selector[mapkey] = mapvalue iNdEx = postIndex case 3: if wireType != 2 { @@ -5170,122 +5154,122 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 1871 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x58, 0x4f, 0x6f, 0x1b, 0xc7, - 0x15, 0xd7, 0x52, 0xa4, 0x44, 0x3d, 0x45, 0x94, 0x3d, 0x52, 0x2d, 0x46, 0x69, 0x29, 0x61, 0x1b, - 0x24, 0x72, 0x12, 0x2d, 0x63, 0x25, 0x0d, 0x12, 0xbb, 0x08, 0x2a, 0xca, 0x6e, 0xe2, 0x40, 0xaa, - 0x94, 0xa1, 0x94, 0xa2, 0x69, 0x0b, 0x64, 0xb8, 0x1c, 0xd3, 0x1b, 0xed, 0x3f, 0xec, 0x0e, 0x59, - 0x13, 0xbd, 0xf4, 0x03, 0x14, 0x48, 0xcf, 0xfd, 0x14, 0x3d, 0x16, 0xed, 0xad, 0x27, 0x5f, 0x0a, - 0x04, 0xbd, 0x34, 0x27, 0xa1, 0xa6, 0xaf, 0x6d, 0x6f, 0xbd, 0x18, 0x28, 0x50, 0xcc, 0xec, 0xec, - 0xff, 0x5d, 0x89, 0x2a, 0x20, 0x1d, 0x72, 0xe3, 0xce, 0x7b, 0xef, 0xf7, 0xde, 0xcc, 0xbc, 0xf7, - 0xe6, 0xfd, 0x08, 0x3f, 0x3a, 0x7d, 0xdf, 0xd7, 0x0c, 0xa7, 0x7d, 0x3a, 0xec, 0x51, 0xcf, 0xa6, - 0x8c, 0xfa, 0xed, 0x11, 0xb5, 0xfb, 0x8e, 0xd7, 0x96, 0x02, 0xe2, 0x1a, 0x6d, 0xe2, 0xba, 0x7e, - 0x7b, 0x74, 0xa7, 0x47, 0x19, 0xb9, 0xd3, 0x1e, 0x50, 0x9b, 0x7a, 0x84, 0xd1, 0xbe, 0xe6, 0x7a, - 0x0e, 0x73, 0xd0, 0x5a, 0xa0, 0xa8, 0x11, 0xd7, 0xd0, 0xb8, 0xa2, 0x26, 0x15, 0xd7, 0xb7, 0x07, - 0x06, 0x7b, 0x3c, 0xec, 0x69, 0xba, 0x63, 0xb5, 0x07, 0xce, 0xc0, 0x69, 0x0b, 0xfd, 0xde, 0xf0, - 0x91, 0xf8, 0x12, 0x1f, 0xe2, 0x57, 0x80, 0xb3, 0xae, 0x26, 0x1c, 0xea, 0x8e, 0x47, 0xdb, 0xa3, - 0x9c, 0xaf, 0xf5, 0xdb, 0x09, 0x1d, 0xd7, 0x31, 0x0d, 0x7d, 0x5c, 0x16, 0xd6, 0xfa, 0xbb, 0xb1, - 0xaa, 0x45, 0xf4, 0xc7, 0x86, 0x4d, 0xbd, 0x71, 0xdb, 0x3d, 0x1d, 0xf0, 0x05, 0xbf, 0x6d, 0x51, - 0x46, 0x8a, 0x1c, 0xb4, 0xcb, 0xac, 0xbc, 0xa1, 0xcd, 0x0c, 0x8b, 0xe6, 0x0c, 0xde, 0xbb, 0xc8, - 0xc0, 0xd7, 0x1f, 0x53, 0x8b, 0xe4, 0xec, 0xde, 0x29, 0xb3, 0x1b, 0x32, 0xc3, 0x6c, 0x1b, 0x36, - 0xf3, 0x99, 0x97, 0x35, 0x52, 0xff, 0xa3, 0x00, 0xda, 0x73, 0x6c, 0xe6, 0x39, 0xa6, 0x49, 0x3d, - 0x4c, 0x47, 0x86, 0x6f, 0x38, 0x36, 0xfa, 0x02, 0xea, 0x7c, 0x3f, 0x7d, 0xc2, 0x48, 0x53, 0xd9, - 0x54, 0xb6, 0x16, 0x77, 0xde, 0xd6, 0xe2, 0x4b, 0x89, 0xe0, 0x35, 0xf7, 0x74, 0xc0, 0x17, 0x7c, - 0x8d, 0x6b, 0x6b, 0xa3, 0x3b, 0xda, 0x61, 0xef, 0x4b, 0xaa, 0xb3, 0x03, 0xca, 0x48, 0x07, 0x3d, - 0x3d, 0xdb, 0x98, 0x99, 0x9c, 0x6d, 0x40, 0xbc, 0x86, 0x23, 0x54, 0x74, 0x08, 0x55, 0x81, 0x5e, - 0x11, 0xe8, 0xdb, 0xa5, 0xe8, 0x72, 0xd3, 0x1a, 0x26, 0xbf, 0x7a, 0xf0, 0x84, 0x51, 0x9b, 0x87, - 0xd7, 0x79, 0x49, 0x42, 0x57, 0xef, 0x13, 0x46, 0xb0, 0x00, 0x42, 0x6f, 0x41, 0xdd, 0x93, 0xe1, - 0x37, 0x67, 0x37, 0x95, 0xad, 0xd9, 0xce, 0x0d, 0xa9, 0x55, 0x0f, 0xb7, 0x85, 0x23, 0x0d, 0xf5, - 0xa9, 0x02, 0xb7, 0xf2, 0xfb, 0xde, 0x37, 0x7c, 0x86, 0x7e, 0x91, 0xdb, 0xbb, 0x36, 0xdd, 0xde, - 0xb9, 0xb5, 0xd8, 0x79, 0xe4, 0x38, 0x5c, 0x49, 0xec, 0xfb, 0x08, 0x6a, 0x06, 0xa3, 0x96, 0xdf, - 0xac, 0x6c, 0xce, 0x6e, 0x2d, 0xee, 0xbc, 0xa9, 0x95, 0xe4, 0xba, 0x96, 0x8f, 0xae, 0xb3, 0x24, - 0x71, 0x6b, 0x0f, 0x39, 0x02, 0x0e, 0x80, 0xd4, 0xdf, 0x56, 0x00, 0xee, 0x53, 0xd7, 0x74, 0xc6, - 0x16, 0xb5, 0xd9, 0x35, 0x5c, 0xdd, 0x43, 0xa8, 0xfa, 0x2e, 0xd5, 0xe5, 0xd5, 0xbd, 0x5e, 0xba, - 0x83, 0x38, 0xa8, 0xae, 0x4b, 0xf5, 0xf8, 0xd2, 0xf8, 0x17, 0x16, 0x10, 0xe8, 0x53, 0x98, 0xf3, - 0x19, 0x61, 0x43, 0x5f, 0x5c, 0xd9, 0xe2, 0xce, 0xed, 0x69, 0xc0, 0x84, 0x41, 0xa7, 0x21, 0xe1, - 0xe6, 0x82, 0x6f, 0x2c, 0x81, 0xd4, 0xbf, 0xcf, 0xc2, 0x4a, 0xac, 0xbc, 0xe7, 0xd8, 0x7d, 0x83, - 0xf1, 0x94, 0xbe, 0x07, 0x55, 0x36, 0x76, 0xa9, 0x38, 0x93, 0x85, 0xce, 0xeb, 0x61, 0x30, 0xc7, - 0x63, 0x97, 0xbe, 0x38, 0xdb, 0x58, 0x2b, 0x30, 0xe1, 0x22, 0x2c, 0x8c, 0xd0, 0x7e, 0x14, 0x67, - 0x45, 0x98, 0xbf, 0x9b, 0x76, 0xfe, 0xe2, 0x6c, 0xa3, 0xa0, 0xd7, 0x68, 0x11, 0x52, 0x3a, 0x44, - 0xf4, 0x1a, 0xcc, 0x79, 0x94, 0xf8, 0x8e, 0xdd, 0xac, 0x0a, 0xb4, 0x68, 0x2b, 0x58, 0xac, 0x62, - 0x29, 0x45, 0xb7, 0x61, 0xde, 0xa2, 0xbe, 0x4f, 0x06, 0xb4, 0x59, 0x13, 0x8a, 0xcb, 0x52, 0x71, - 0xfe, 0x20, 0x58, 0xc6, 0xa1, 0x1c, 0x7d, 0x09, 0x0d, 0x93, 0xf8, 0xec, 0xc4, 0xed, 0x13, 0x46, - 0x8f, 0x0d, 0x8b, 0x36, 0xe7, 0xc4, 0x81, 0xbe, 0x31, 0xdd, 0xdd, 0x73, 0x8b, 0xce, 0x2d, 0x89, - 0xde, 0xd8, 0x4f, 0x21, 0xe1, 0x0c, 0x32, 0x1a, 0x01, 0xe2, 0x2b, 0xc7, 0x1e, 0xb1, 0xfd, 0xe0, - 0xa0, 0xb8, 0xbf, 0xf9, 0x4b, 0xfb, 0x5b, 0x97, 0xfe, 0xd0, 0x7e, 0x0e, 0x0d, 0x17, 0x78, 0x50, - 0xff, 0xa8, 0x40, 0x23, 0xbe, 0xa6, 0x6b, 0xa8, 0xd5, 0x8f, 0xd3, 0xb5, 0xfa, 0xfd, 0x29, 0x92, - 0xb3, 0xa4, 0x46, 0xff, 0x59, 0x01, 0x14, 0x2b, 0x61, 0xc7, 0x34, 0x7b, 0x44, 0x3f, 0x45, 0x9b, - 0x50, 0xb5, 0x89, 0x15, 0xe6, 0x64, 0x54, 0x20, 0x3f, 0x21, 0x16, 0xc5, 0x42, 0x82, 0xbe, 0x52, - 0x00, 0x0d, 0xc5, 0xd1, 0xf7, 0x77, 0x6d, 0xdb, 0x61, 0x84, 0x9f, 0x46, 0x18, 0xd0, 0xde, 0x14, - 0x01, 0x85, 0xbe, 0xb4, 0x93, 0x1c, 0xca, 0x03, 0x9b, 0x79, 0xe3, 0xf8, 0x16, 0xf2, 0x0a, 0xb8, - 0xc0, 0x35, 0xfa, 0x39, 0x80, 0x27, 0x31, 0x8f, 0x1d, 0x59, 0xb6, 0xe5, 0x3d, 0x20, 0x74, 0xbf, - 0xe7, 0xd8, 0x8f, 0x8c, 0x41, 0xdc, 0x58, 0x70, 0x04, 0x81, 0x13, 0x70, 0xeb, 0x0f, 0x60, 0xad, - 0x24, 0x4e, 0x74, 0x03, 0x66, 0x4f, 0xe9, 0x38, 0x38, 0x2a, 0xcc, 0x7f, 0xa2, 0x55, 0xa8, 0x8d, - 0x88, 0x39, 0xa4, 0x41, 0x4d, 0xe2, 0xe0, 0xe3, 0x6e, 0xe5, 0x7d, 0x45, 0xfd, 0x43, 0x2d, 0x99, - 0x29, 0xbc, 0xdf, 0xa0, 0x2d, 0xfe, 0x3c, 0xb8, 0xa6, 0xa1, 0x13, 0x5f, 0x60, 0xd4, 0x3a, 0x2f, - 0x05, 0x4f, 0x43, 0xb0, 0x86, 0x23, 0x29, 0xfa, 0x25, 0xd4, 0x7d, 0x6a, 0x52, 0x9d, 0x39, 0x9e, - 0x6c, 0x71, 0xef, 0x4c, 0x99, 0x53, 0xa4, 0x47, 0xcd, 0xae, 0x34, 0x0d, 0xe0, 0xc3, 0x2f, 0x1c, - 0x41, 0xa2, 0x4f, 0xa1, 0xce, 0xa8, 0xe5, 0x9a, 0x84, 0x51, 0x79, 0x7a, 0xa9, 0xbc, 0xe2, 0xbd, - 0x83, 0x83, 0x1d, 0x39, 0xfd, 0x63, 0xa9, 0x26, 0xba, 0x67, 0x94, 0xa7, 0xe1, 0x2a, 0x8e, 0x60, - 0xd0, 0xcf, 0xa0, 0xee, 0x33, 0xfe, 0xaa, 0x0f, 0xc6, 0xa2, 0xa3, 0x9c, 0xf7, 0xac, 0x24, 0xfb, - 0x68, 0x60, 0x12, 0x43, 0x87, 0x2b, 0x38, 0x82, 0x43, 0xbb, 0xb0, 0x6c, 0x19, 0x36, 0xa6, 0xa4, - 0x3f, 0xee, 0x52, 0xdd, 0xb1, 0xfb, 0xbe, 0x68, 0x45, 0xb5, 0xce, 0x9a, 0x34, 0x5a, 0x3e, 0x48, - 0x8b, 0x71, 0x56, 0x1f, 0xed, 0xc3, 0x6a, 0xf8, 0xec, 0x7e, 0x6c, 0xf8, 0xcc, 0xf1, 0xc6, 0xfb, - 0x86, 0x65, 0x30, 0xd1, 0xa0, 0x6a, 0x9d, 0xe6, 0xe4, 0x6c, 0x63, 0x15, 0x17, 0xc8, 0x71, 0xa1, - 0x15, 0xef, 0x9d, 0x2e, 0x19, 0xfa, 0xb4, 0x2f, 0x1a, 0x4e, 0x3d, 0xee, 0x9d, 0x47, 0x62, 0x15, - 0x4b, 0x29, 0xfa, 0x69, 0x2a, 0x4d, 0xeb, 0x97, 0x4b, 0xd3, 0x46, 0x79, 0x8a, 0xa2, 0x13, 0x58, - 0x73, 0x3d, 0x67, 0xe0, 0x51, 0xdf, 0xbf, 0x4f, 0x49, 0xdf, 0x34, 0x6c, 0x1a, 0x9e, 0xcc, 0x82, - 0xd8, 0xd1, 0x2b, 0x93, 0xb3, 0x8d, 0xb5, 0xa3, 0x62, 0x15, 0x5c, 0x66, 0xab, 0xfe, 0xa5, 0x0a, - 0x37, 0xb2, 0x6f, 0x1c, 0xfa, 0x04, 0x90, 0xd3, 0xf3, 0xa9, 0x37, 0xa2, 0xfd, 0x8f, 0x82, 0xc1, - 0x8d, 0x4f, 0x37, 0x8a, 0x98, 0x6e, 0xa2, 0xba, 0x3d, 0xcc, 0x69, 0xe0, 0x02, 0xab, 0x60, 0x3e, - 0x92, 0x05, 0x50, 0x11, 0x81, 0x26, 0xe6, 0xa3, 0x5c, 0x11, 0xec, 0xc2, 0xb2, 0xac, 0xfd, 0x50, - 0x28, 0x92, 0x35, 0x71, 0xef, 0x27, 0x69, 0x31, 0xce, 0xea, 0xa3, 0x8f, 0xe0, 0x26, 0x19, 0x11, - 0xc3, 0x24, 0x3d, 0x93, 0x46, 0x20, 0x55, 0x01, 0xf2, 0xb2, 0x04, 0xb9, 0xb9, 0x9b, 0x55, 0xc0, - 0x79, 0x1b, 0x74, 0x00, 0x2b, 0x43, 0x3b, 0x0f, 0x15, 0xe4, 0xe1, 0x2b, 0x12, 0x6a, 0xe5, 0x24, - 0xaf, 0x82, 0x8b, 0xec, 0xd0, 0x17, 0x00, 0x7a, 0xf8, 0x30, 0xfb, 0xcd, 0x39, 0xd1, 0x49, 0xdf, - 0x9a, 0xa2, 0x5e, 0xa2, 0xd7, 0x3c, 0xee, 0x62, 0xd1, 0x92, 0x8f, 0x13, 0x98, 0xe8, 0x1e, 0x2c, - 0x79, 0xbc, 0x02, 0xa2, 0x50, 0xe7, 0x45, 0xa8, 0xdf, 0x91, 0x66, 0x4b, 0x38, 0x29, 0xc4, 0x69, - 0x5d, 0x74, 0x17, 0x1a, 0xba, 0x63, 0x9a, 0x22, 0xf3, 0xf7, 0x9c, 0xa1, 0xcd, 0x44, 0xf2, 0xd6, - 0x3a, 0x88, 0xbf, 0xcc, 0x7b, 0x29, 0x09, 0xce, 0x68, 0xaa, 0x7f, 0x56, 0x92, 0xcf, 0x4c, 0x58, - 0xce, 0xe8, 0x6e, 0x6a, 0xf4, 0x79, 0x2d, 0x33, 0xfa, 0xdc, 0xca, 0x5b, 0x24, 0x26, 0x1f, 0x03, - 0x96, 0x78, 0xf2, 0x1b, 0xf6, 0x20, 0xb8, 0x70, 0xd9, 0x12, 0xdf, 0x3e, 0xb7, 0x94, 0x22, 0xed, - 0xc4, 0xc3, 0x78, 0x53, 0xec, 0x3c, 0x29, 0xc4, 0x69, 0x64, 0xf5, 0x43, 0x68, 0xa4, 0xeb, 0x30, - 0x35, 0xd3, 0x2b, 0x17, 0xce, 0xf4, 0xcf, 0x15, 0x58, 0x2b, 0xf1, 0x8e, 0x4c, 0x68, 0x58, 0xe4, - 0x49, 0x22, 0x47, 0x2e, 0x9c, 0x8d, 0x39, 0x6b, 0xd2, 0x02, 0xd6, 0xa4, 0x3d, 0xb4, 0xd9, 0xa1, - 0xd7, 0x65, 0x9e, 0x61, 0x0f, 0x82, 0x7b, 0x38, 0x48, 0x61, 0xe1, 0x0c, 0x36, 0xfa, 0x1c, 0xea, - 0x16, 0x79, 0xd2, 0x1d, 0x7a, 0x83, 0xa2, 0xf3, 0x9a, 0xce, 0x8f, 0x78, 0x3f, 0x0e, 0x24, 0x0a, - 0x8e, 0xf0, 0xd4, 0x43, 0xd8, 0x4c, 0x6d, 0x92, 0xb7, 0x0a, 0xfa, 0x68, 0x68, 0x76, 0x69, 0x7c, - 0xe1, 0x6f, 0xc2, 0x82, 0x4b, 0x3c, 0x66, 0x44, 0xed, 0xa2, 0xd6, 0x59, 0x9a, 0x9c, 0x6d, 0x2c, - 0x1c, 0x85, 0x8b, 0x38, 0x96, 0xab, 0xff, 0x55, 0xa0, 0xd6, 0xd5, 0x89, 0x49, 0xaf, 0x81, 0x3a, - 0xdc, 0x4f, 0x51, 0x07, 0xb5, 0x34, 0x89, 0x44, 0x3c, 0xa5, 0xac, 0x61, 0x3f, 0xc3, 0x1a, 0x5e, - 0xbd, 0x00, 0xe7, 0x7c, 0xc2, 0xf0, 0x01, 0x2c, 0x44, 0xee, 0x52, 0x5d, 0x52, 0xb9, 0xa8, 0x4b, - 0xaa, 0xbf, 0xaf, 0xc0, 0x62, 0xc2, 0xc5, 0xe5, 0xac, 0xf9, 0x71, 0x27, 0x06, 0x0d, 0xde, 0x86, - 0x76, 0xa6, 0xd9, 0x88, 0x16, 0x0e, 0x15, 0xc1, 0xfc, 0x16, 0xbf, 0xde, 0xf9, 0x59, 0xe3, 0x43, - 0x68, 0x30, 0xe2, 0x0d, 0x28, 0x0b, 0x65, 0xe2, 0xc0, 0x16, 0xe2, 0x49, 0xff, 0x38, 0x25, 0xc5, - 0x19, 0xed, 0xf5, 0x7b, 0xb0, 0x94, 0x72, 0x76, 0xa9, 0x21, 0xec, 0x2b, 0x7e, 0x38, 0x71, 0x72, - 0x5e, 0x43, 0x76, 0x7d, 0x92, 0xca, 0xae, 0xad, 0xf2, 0xc3, 0x4c, 0x94, 0x4c, 0x59, 0x8e, 0xe1, - 0x4c, 0x8e, 0xbd, 0x31, 0x15, 0xda, 0xf9, 0x99, 0xf6, 0xaf, 0x0a, 0xac, 0x26, 0xb4, 0x63, 0x6e, - 0xfa, 0xc3, 0x54, 0x83, 0xde, 0xca, 0x34, 0xe8, 0x66, 0x91, 0xcd, 0x95, 0x91, 0xd3, 0x62, 0x76, - 0x37, 0x7b, 0xd5, 0xec, 0xee, 0x0a, 0x48, 0xb1, 0xfa, 0x27, 0x05, 0x96, 0x13, 0x67, 0x77, 0x0d, - 0x8c, 0xf1, 0x61, 0x9a, 0x31, 0xbe, 0x3a, 0x4d, 0xd2, 0x94, 0x50, 0xc6, 0xbf, 0xd6, 0x52, 0xc1, - 0x7f, 0xeb, 0x49, 0xcc, 0xaf, 0x61, 0x75, 0xe4, 0x98, 0x43, 0x8b, 0xee, 0x99, 0xc4, 0xb0, 0x42, - 0x05, 0x3e, 0x31, 0xce, 0x66, 0xff, 0x18, 0x8a, 0xe0, 0xa9, 0xe7, 0x1b, 0x3e, 0xa3, 0x36, 0xfb, - 0x2c, 0xb6, 0xec, 0x7c, 0x57, 0x3a, 0x59, 0xfd, 0xac, 0x00, 0x0e, 0x17, 0x3a, 0x41, 0x3f, 0x80, - 0x45, 0x3e, 0x30, 0x1b, 0x3a, 0xe5, 0xdc, 0x5b, 0x26, 0xd6, 0x8a, 0x04, 0x5a, 0xec, 0xc6, 0x22, - 0x9c, 0xd4, 0x43, 0x8f, 0x61, 0xc5, 0x75, 0xfa, 0x07, 0xc4, 0x26, 0x03, 0xca, 0xc7, 0x8c, 0x23, - 0xf1, 0x07, 0xb2, 0x60, 0x36, 0x0b, 0x9d, 0xf7, 0xc2, 0xc9, 0xf4, 0x28, 0xaf, 0xf2, 0x82, 0x53, - 0x84, 0xfc, 0xb2, 0x28, 0xea, 0x22, 0x48, 0xe4, 0x41, 0x63, 0x28, 0x9f, 0x7b, 0x49, 0xf4, 0x82, - 0xff, 0x5b, 0x76, 0xa6, 0xc9, 0xb0, 0x93, 0x94, 0x65, 0xdc, 0xfd, 0xd3, 0xeb, 0x38, 0xe3, 0xa1, - 0x94, 0xb8, 0xd5, 0xff, 0x1f, 0xe2, 0xa6, 0xfe, 0xbb, 0x0a, 0x37, 0x73, 0xad, 0x12, 0xfd, 0xf8, - 0x1c, 0x86, 0x73, 0xeb, 0xca, 0xd8, 0x4d, 0x6e, 0x40, 0x9f, 0xbd, 0xc4, 0x80, 0xbe, 0x0b, 0xcb, - 0xfa, 0xd0, 0xf3, 0xa8, 0xcd, 0x32, 0xac, 0x26, 0xa2, 0x46, 0x7b, 0x69, 0x31, 0xce, 0xea, 0x17, - 0xb1, 0xab, 0xda, 0x25, 0xd9, 0x55, 0x32, 0x0a, 0x39, 0x21, 0x07, 0x69, 0x97, 0x8f, 0x42, 0x0e, - 0xca, 0x59, 0x7d, 0x3e, 0x1d, 0x04, 0xa8, 0x11, 0xc2, 0x7c, 0x7a, 0x3a, 0x38, 0x49, 0x49, 0x71, - 0x46, 0xbb, 0x80, 0xa9, 0x2c, 0x4c, 0xcb, 0x54, 0x10, 0x49, 0x91, 0x30, 0x10, 0x35, 0xbe, 0x3d, - 0x4d, 0x2e, 0x4f, 0xcd, 0xc2, 0xd4, 0xbf, 0x29, 0xf0, 0x72, 0x69, 0x11, 0xa0, 0xdd, 0xd4, 0x93, - 0xbb, 0x9d, 0x79, 0x72, 0xbf, 0x57, 0x6a, 0x98, 0x78, 0x77, 0xbd, 0x62, 0x6a, 0xf4, 0xc1, 0x74, - 0xd4, 0xa8, 0x60, 0x6e, 0xbf, 0x98, 0x23, 0x75, 0xb6, 0x9f, 0x3e, 0x6b, 0xcd, 0x7c, 0xfd, 0xac, - 0x35, 0xf3, 0xcd, 0xb3, 0xd6, 0xcc, 0x6f, 0x26, 0x2d, 0xe5, 0xe9, 0xa4, 0xa5, 0x7c, 0x3d, 0x69, - 0x29, 0xdf, 0x4c, 0x5a, 0xca, 0x3f, 0x26, 0x2d, 0xe5, 0x77, 0xcf, 0x5b, 0x33, 0x9f, 0xcf, 0x4b, - 0x8f, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0x9d, 0x5d, 0x9e, 0x04, 0x8c, 0x1b, 0x00, 0x00, + // 1859 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x58, 0xcd, 0x6f, 0x24, 0x47, + 0x15, 0x77, 0x8f, 0x67, 0xec, 0xf1, 0x73, 0x3c, 0xde, 0x2d, 0x9b, 0xf5, 0xc4, 0x81, 0xb1, 0xd5, + 0x44, 0x89, 0xf3, 0xe1, 0x9e, 0xac, 0x13, 0xa2, 0x64, 0x17, 0x45, 0x78, 0xbc, 0x4b, 0xb2, 0x91, + 0x8d, 0x9d, 0xb2, 0x1d, 0x44, 0x00, 0x29, 0x35, 0x3d, 0xb5, 0xb3, 0x1d, 0xf7, 0x97, 0xba, 0x6b, + 0x86, 0x1d, 0x71, 0xe1, 0x0f, 0x40, 0x0a, 0x67, 0xfe, 0x0a, 0x8e, 0x08, 0x6e, 0x9c, 0xf6, 0x82, + 0x14, 0x71, 0x21, 0x27, 0x8b, 0x9d, 0x5c, 0x81, 0x1b, 0x97, 0x95, 0x90, 0x50, 0x55, 0x57, 0x7f, + 0x77, 0xdb, 0x6d, 0xa4, 0xf5, 0x21, 0xb7, 0xe9, 0x7a, 0xef, 0xfd, 0x5e, 0x7d, 0xbc, 0xaf, 0xdf, + 0xc0, 0x8f, 0xce, 0xde, 0xf3, 0x35, 0xc3, 0xe9, 0x9e, 0x8d, 0xfa, 0xd4, 0xb3, 0x29, 0xa3, 0x7e, + 0x77, 0x4c, 0xed, 0x81, 0xe3, 0x75, 0xa5, 0x80, 0xb8, 0x46, 0x97, 0xb8, 0xae, 0xdf, 0x1d, 0xdf, + 0xee, 0x53, 0x46, 0x6e, 0x77, 0x87, 0xd4, 0xa6, 0x1e, 0x61, 0x74, 0xa0, 0xb9, 0x9e, 0xc3, 0x1c, + 0xb4, 0x16, 0x28, 0x6a, 0xc4, 0x35, 0x34, 0xae, 0xa8, 0x49, 0xc5, 0xf5, 0xed, 0xa1, 0xc1, 0x1e, + 0x8d, 0xfa, 0x9a, 0xee, 0x58, 0xdd, 0xa1, 0x33, 0x74, 0xba, 0x42, 0xbf, 0x3f, 0x7a, 0x28, 0xbe, + 0xc4, 0x87, 0xf8, 0x15, 0xe0, 0xac, 0xab, 0x09, 0x87, 0xba, 0xe3, 0xd1, 0xee, 0x38, 0xe7, 0x6b, + 0xfd, 0x9d, 0x58, 0xc7, 0x22, 0xfa, 0x23, 0xc3, 0xa6, 0xde, 0xa4, 0xeb, 0x9e, 0x0d, 0xf9, 0x82, + 0xdf, 0xb5, 0x28, 0x23, 0x45, 0x56, 0xdd, 0x32, 0x2b, 0x6f, 0x64, 0x33, 0xc3, 0xa2, 0x39, 0x83, + 0x77, 0x2f, 0x33, 0xf0, 0xf5, 0x47, 0xd4, 0x22, 0x39, 0xbb, 0xb7, 0xcb, 0xec, 0x46, 0xcc, 0x30, + 0xbb, 0x86, 0xcd, 0x7c, 0xe6, 0x65, 0x8d, 0xd4, 0xff, 0x28, 0x80, 0xf6, 0x1c, 0x9b, 0x79, 0x8e, + 0x69, 0x52, 0x0f, 0xd3, 0xb1, 0xe1, 0x1b, 0x8e, 0x8d, 0x3e, 0x87, 0x26, 0x3f, 0xcf, 0x80, 0x30, + 0xd2, 0x56, 0x36, 0x95, 0xad, 0xc5, 0x9d, 0xb7, 0xb4, 0xf8, 0xa6, 0x23, 0x78, 0xcd, 0x3d, 0x1b, + 0xf2, 0x05, 0x5f, 0xe3, 0xda, 0xda, 0xf8, 0xb6, 0x76, 0xd8, 0xff, 0x82, 0xea, 0xec, 0x80, 0x32, + 0xd2, 0x43, 0x4f, 0xce, 0x37, 0x66, 0xa6, 0xe7, 0x1b, 0x10, 0xaf, 0xe1, 0x08, 0x15, 0x1d, 0x42, + 0x5d, 0xa0, 0xd7, 0x04, 0xfa, 0x76, 0x29, 0xba, 0x3c, 0xb4, 0x86, 0xc9, 0xaf, 0xee, 0x3f, 0x66, + 0xd4, 0xe6, 0xdb, 0xeb, 0xbd, 0x20, 0xa1, 0xeb, 0xf7, 0x08, 0x23, 0x58, 0x00, 0xa1, 0x37, 0xa1, + 0xe9, 0xc9, 0xed, 0xb7, 0x67, 0x37, 0x95, 0xad, 0xd9, 0xde, 0x0d, 0xa9, 0xd5, 0x0c, 0x8f, 0x85, + 0x23, 0x0d, 0xf5, 0x89, 0x02, 0xb7, 0xf2, 0xe7, 0xde, 0x37, 0x7c, 0x86, 0x7e, 0x91, 0x3b, 0xbb, + 0x56, 0xed, 0xec, 0xdc, 0x5a, 0x9c, 0x3c, 0x72, 0x1c, 0xae, 0x24, 0xce, 0x7d, 0x04, 0x0d, 0x83, + 0x51, 0xcb, 0x6f, 0xd7, 0x36, 0x67, 0xb7, 0x16, 0x77, 0xde, 0xd0, 0x4a, 0x02, 0x58, 0xcb, 0xef, + 0xae, 0xb7, 0x24, 0x71, 0x1b, 0x0f, 0x38, 0x02, 0x0e, 0x80, 0xd4, 0xdf, 0xd6, 0x00, 0xee, 0x51, + 0xd7, 0x74, 0x26, 0x16, 0xb5, 0xd9, 0x35, 0x3c, 0xdd, 0x03, 0xa8, 0xfb, 0x2e, 0xd5, 0xe5, 0xd3, + 0xbd, 0x5a, 0x7a, 0x82, 0x78, 0x53, 0xc7, 0x2e, 0xd5, 0xe3, 0x47, 0xe3, 0x5f, 0x58, 0x40, 0xa0, + 0x4f, 0x60, 0xce, 0x67, 0x84, 0x8d, 0x7c, 0xf1, 0x64, 0x8b, 0x3b, 0xaf, 0x55, 0x01, 0x13, 0x06, + 0xbd, 0x96, 0x84, 0x9b, 0x0b, 0xbe, 0xb1, 0x04, 0x52, 0xff, 0x3e, 0x0b, 0x2b, 0xb1, 0xf2, 0x9e, + 0x63, 0x0f, 0x0c, 0xc6, 0x43, 0xfa, 0x2e, 0xd4, 0xd9, 0xc4, 0xa5, 0xe2, 0x4e, 0x16, 0x7a, 0xaf, + 0x86, 0x9b, 0x39, 0x99, 0xb8, 0xf4, 0xd9, 0xf9, 0xc6, 0x5a, 0x81, 0x09, 0x17, 0x61, 0x61, 0x84, + 0xf6, 0xa3, 0x7d, 0xd6, 0x84, 0xf9, 0x3b, 0x69, 0xe7, 0xcf, 0xce, 0x37, 0x0a, 0x0a, 0x88, 0x16, + 0x21, 0xa5, 0xb7, 0x88, 0x5e, 0x81, 0x39, 0x8f, 0x12, 0xdf, 0xb1, 0xdb, 0x75, 0x81, 0x16, 0x1d, + 0x05, 0x8b, 0x55, 0x2c, 0xa5, 0xe8, 0x35, 0x98, 0xb7, 0xa8, 0xef, 0x93, 0x21, 0x6d, 0x37, 0x84, + 0xe2, 0xb2, 0x54, 0x9c, 0x3f, 0x08, 0x96, 0x71, 0x28, 0x47, 0x5f, 0x40, 0xcb, 0x24, 0x3e, 0x3b, + 0x75, 0x07, 0x84, 0xd1, 0x13, 0xc3, 0xa2, 0xed, 0x39, 0x71, 0xa1, 0xaf, 0x57, 0x7b, 0x7b, 0x6e, + 0xd1, 0xbb, 0x25, 0xd1, 0x5b, 0xfb, 0x29, 0x24, 0x9c, 0x41, 0x46, 0x63, 0x40, 0x7c, 0xe5, 0xc4, + 0x23, 0xb6, 0x1f, 0x5c, 0x14, 0xf7, 0x37, 0x7f, 0x65, 0x7f, 0xeb, 0xd2, 0x1f, 0xda, 0xcf, 0xa1, + 0xe1, 0x02, 0x0f, 0xea, 0x1f, 0x15, 0x68, 0xc5, 0xcf, 0x74, 0x0d, 0xb9, 0xfa, 0x51, 0x3a, 0x57, + 0xbf, 0x5f, 0x21, 0x38, 0x4b, 0x72, 0xf4, 0x9f, 0x35, 0x40, 0xb1, 0x12, 0x76, 0x4c, 0xb3, 0x4f, + 0xf4, 0x33, 0xb4, 0x09, 0x75, 0x9b, 0x58, 0x61, 0x4c, 0x46, 0x09, 0xf2, 0x13, 0x62, 0x51, 0x2c, + 0x24, 0xe8, 0x4b, 0x05, 0xd0, 0x48, 0x5c, 0xfd, 0x60, 0xd7, 0xb6, 0x1d, 0x46, 0xf8, 0x6d, 0x84, + 0x1b, 0xda, 0xab, 0xb0, 0xa1, 0xd0, 0x97, 0x76, 0x9a, 0x43, 0xb9, 0x6f, 0x33, 0x6f, 0x12, 0xbf, + 0x42, 0x5e, 0x01, 0x17, 0xb8, 0x46, 0x3f, 0x07, 0xf0, 0x24, 0xe6, 0x89, 0x23, 0xd3, 0xb6, 0xbc, + 0x06, 0x84, 0xee, 0xf7, 0x1c, 0xfb, 0xa1, 0x31, 0x8c, 0x0b, 0x0b, 0x8e, 0x20, 0x70, 0x02, 0x6e, + 0xfd, 0x3e, 0xac, 0x95, 0xec, 0x13, 0xdd, 0x80, 0xd9, 0x33, 0x3a, 0x09, 0xae, 0x0a, 0xf3, 0x9f, + 0x68, 0x15, 0x1a, 0x63, 0x62, 0x8e, 0x68, 0x90, 0x93, 0x38, 0xf8, 0xb8, 0x53, 0x7b, 0x4f, 0x51, + 0xff, 0xd0, 0x48, 0x46, 0x0a, 0xaf, 0x37, 0x68, 0x8b, 0xb7, 0x07, 0xd7, 0x34, 0x74, 0xe2, 0x0b, + 0x8c, 0x46, 0xef, 0x85, 0xa0, 0x35, 0x04, 0x6b, 0x38, 0x92, 0xa2, 0x5f, 0x42, 0xd3, 0xa7, 0x26, + 0xd5, 0x99, 0xe3, 0xc9, 0x12, 0xf7, 0x76, 0xc5, 0x98, 0x22, 0x7d, 0x6a, 0x1e, 0x4b, 0xd3, 0x00, + 0x3e, 0xfc, 0xc2, 0x11, 0x24, 0xfa, 0x04, 0x9a, 0x8c, 0x5a, 0xae, 0x49, 0x18, 0x95, 0xb7, 0x97, + 0x8a, 0x2b, 0x5e, 0x3b, 0x38, 0xd8, 0x91, 0x33, 0x38, 0x91, 0x6a, 0xa2, 0x7a, 0x46, 0x71, 0x1a, + 0xae, 0xe2, 0x08, 0x06, 0xfd, 0x0c, 0x9a, 0x3e, 0xe3, 0x5d, 0x7d, 0x38, 0x11, 0x15, 0xe5, 0xa2, + 0xb6, 0x92, 0xac, 0xa3, 0x81, 0x49, 0x0c, 0x1d, 0xae, 0xe0, 0x08, 0x0e, 0xed, 0xc2, 0xb2, 0x65, + 0xd8, 0x98, 0x92, 0xc1, 0xe4, 0x98, 0xea, 0x8e, 0x3d, 0xf0, 0x45, 0x29, 0x6a, 0xf4, 0xd6, 0xa4, + 0xd1, 0xf2, 0x41, 0x5a, 0x8c, 0xb3, 0xfa, 0x68, 0x1f, 0x56, 0xc3, 0xb6, 0xfb, 0x91, 0xe1, 0x33, + 0xc7, 0x9b, 0xec, 0x1b, 0x96, 0xc1, 0x44, 0x81, 0x6a, 0xf4, 0xda, 0xd3, 0xf3, 0x8d, 0x55, 0x5c, + 0x20, 0xc7, 0x85, 0x56, 0xbc, 0x76, 0xba, 0x64, 0xe4, 0xd3, 0x81, 0x28, 0x38, 0xcd, 0xb8, 0x76, + 0x1e, 0x89, 0x55, 0x2c, 0xa5, 0xe8, 0xa7, 0xa9, 0x30, 0x6d, 0x5e, 0x2d, 0x4c, 0x5b, 0xe5, 0x21, + 0x8a, 0x4e, 0x61, 0xcd, 0xf5, 0x9c, 0xa1, 0x47, 0x7d, 0xff, 0x1e, 0x25, 0x03, 0xd3, 0xb0, 0x69, + 0x78, 0x33, 0x0b, 0xe2, 0x44, 0x2f, 0x4d, 0xcf, 0x37, 0xd6, 0x8e, 0x8a, 0x55, 0x70, 0x99, 0xad, + 0xfa, 0x97, 0x3a, 0xdc, 0xc8, 0xf6, 0x38, 0xf4, 0x31, 0x20, 0xa7, 0xef, 0x53, 0x6f, 0x4c, 0x07, + 0x1f, 0x06, 0x83, 0x1b, 0x9f, 0x6e, 0x14, 0x31, 0xdd, 0x44, 0x79, 0x7b, 0x98, 0xd3, 0xc0, 0x05, + 0x56, 0xc1, 0x7c, 0x24, 0x13, 0xa0, 0x26, 0x36, 0x9a, 0x98, 0x8f, 0x72, 0x49, 0xb0, 0x0b, 0xcb, + 0x32, 0xf7, 0x43, 0xa1, 0x08, 0xd6, 0xc4, 0xbb, 0x9f, 0xa6, 0xc5, 0x38, 0xab, 0x8f, 0x3e, 0x84, + 0x9b, 0x64, 0x4c, 0x0c, 0x93, 0xf4, 0x4d, 0x1a, 0x81, 0xd4, 0x05, 0xc8, 0x8b, 0x12, 0xe4, 0xe6, + 0x6e, 0x56, 0x01, 0xe7, 0x6d, 0xd0, 0x01, 0xac, 0x8c, 0xec, 0x3c, 0x54, 0x10, 0x87, 0x2f, 0x49, + 0xa8, 0x95, 0xd3, 0xbc, 0x0a, 0x2e, 0xb2, 0x43, 0x9f, 0x03, 0xe8, 0x61, 0x63, 0xf6, 0xdb, 0x73, + 0xa2, 0x92, 0xbe, 0x59, 0x21, 0x5f, 0xa2, 0x6e, 0x1e, 0x57, 0xb1, 0x68, 0xc9, 0xc7, 0x09, 0x4c, + 0x74, 0x17, 0x96, 0x3c, 0x9e, 0x01, 0xd1, 0x56, 0xe7, 0xc5, 0x56, 0xbf, 0x23, 0xcd, 0x96, 0x70, + 0x52, 0x88, 0xd3, 0xba, 0xe8, 0x0e, 0xb4, 0x74, 0xc7, 0x34, 0x45, 0xe4, 0xef, 0x39, 0x23, 0x9b, + 0x89, 0xe0, 0x6d, 0xf4, 0x10, 0xef, 0xcc, 0x7b, 0x29, 0x09, 0xce, 0x68, 0xaa, 0x7f, 0x56, 0x92, + 0x6d, 0x26, 0x4c, 0x67, 0x74, 0x27, 0x35, 0xfa, 0xbc, 0x92, 0x19, 0x7d, 0x6e, 0xe5, 0x2d, 0x12, + 0x93, 0x8f, 0x01, 0x4b, 0x3c, 0xf8, 0x0d, 0x7b, 0x18, 0x3c, 0xb8, 0x2c, 0x89, 0x6f, 0x5d, 0x98, + 0x4a, 0x91, 0x76, 0xa2, 0x31, 0xde, 0x14, 0x27, 0x4f, 0x0a, 0x71, 0x1a, 0x59, 0xfd, 0x00, 0x5a, + 0xe9, 0x3c, 0x4c, 0xcd, 0xf4, 0xca, 0xa5, 0x33, 0xfd, 0x37, 0x0a, 0xac, 0x95, 0x78, 0x47, 0x26, + 0xb4, 0x2c, 0xf2, 0x38, 0x11, 0x23, 0x97, 0xce, 0xc6, 0x9c, 0x35, 0x69, 0x01, 0x6b, 0xd2, 0x1e, + 0xd8, 0xec, 0xd0, 0x3b, 0x66, 0x9e, 0x61, 0x0f, 0x83, 0x77, 0x38, 0x48, 0x61, 0xe1, 0x0c, 0x36, + 0xfa, 0x0c, 0x9a, 0x16, 0x79, 0x7c, 0x3c, 0xf2, 0x86, 0x45, 0xf7, 0x55, 0xcd, 0x8f, 0xe8, 0x1f, + 0x07, 0x12, 0x05, 0x47, 0x78, 0xea, 0x21, 0x6c, 0xa6, 0x0e, 0xc9, 0x4b, 0x05, 0x7d, 0x38, 0x32, + 0x8f, 0x69, 0xfc, 0xe0, 0x6f, 0xc0, 0x82, 0x4b, 0x3c, 0x66, 0x44, 0xe5, 0xa2, 0xd1, 0x5b, 0x9a, + 0x9e, 0x6f, 0x2c, 0x1c, 0x85, 0x8b, 0x38, 0x96, 0xab, 0xff, 0x55, 0xa0, 0x71, 0xac, 0x13, 0x93, + 0x5e, 0x03, 0x75, 0xb8, 0x97, 0xa2, 0x0e, 0x6a, 0x69, 0x10, 0x89, 0xfd, 0x94, 0xb2, 0x86, 0xfd, + 0x0c, 0x6b, 0x78, 0xf9, 0x12, 0x9c, 0x8b, 0x09, 0xc3, 0xfb, 0xb0, 0x10, 0xb9, 0x4b, 0x55, 0x49, + 0xe5, 0xb2, 0x2a, 0xa9, 0xfe, 0xbe, 0x06, 0x8b, 0x09, 0x17, 0x57, 0xb3, 0xe6, 0xd7, 0x9d, 0x18, + 0x34, 0x78, 0x19, 0xda, 0xa9, 0x72, 0x10, 0x2d, 0x1c, 0x2a, 0x82, 0xf9, 0x2d, 0xee, 0xde, 0xf9, + 0x59, 0xe3, 0x03, 0x68, 0x31, 0xe2, 0x0d, 0x29, 0x0b, 0x65, 0xe2, 0xc2, 0x16, 0xe2, 0x49, 0xff, + 0x24, 0x25, 0xc5, 0x19, 0xed, 0xf5, 0xbb, 0xb0, 0x94, 0x72, 0x76, 0xa5, 0x21, 0xec, 0x4b, 0x7e, + 0x39, 0x71, 0x70, 0x5e, 0x43, 0x74, 0x7d, 0x9c, 0x8a, 0xae, 0xad, 0xf2, 0xcb, 0x4c, 0xa4, 0x4c, + 0x59, 0x8c, 0xe1, 0x4c, 0x8c, 0xbd, 0x5e, 0x09, 0xed, 0xe2, 0x48, 0xfb, 0x57, 0x0d, 0x56, 0x13, + 0xda, 0x31, 0x37, 0xfd, 0x61, 0xaa, 0x40, 0x6f, 0x65, 0x0a, 0x74, 0xbb, 0xc8, 0xe6, 0xb9, 0x91, + 0xd3, 0x62, 0x76, 0x37, 0xfb, 0xbc, 0xd9, 0xdd, 0x73, 0x20, 0xc5, 0xea, 0x9f, 0x14, 0x58, 0x4e, + 0xdc, 0xdd, 0x35, 0x30, 0xc6, 0x07, 0x69, 0xc6, 0xf8, 0x72, 0x95, 0xa0, 0x29, 0xa1, 0x8c, 0x7f, + 0x6d, 0xa4, 0x36, 0xff, 0xad, 0x27, 0x31, 0xbf, 0x86, 0xd5, 0xb1, 0x63, 0x8e, 0x2c, 0xba, 0x67, + 0x12, 0xc3, 0x0a, 0x15, 0xf8, 0xc4, 0x38, 0x9b, 0xfd, 0x63, 0x28, 0x82, 0xa7, 0x9e, 0x6f, 0xf8, + 0x8c, 0xda, 0xec, 0xd3, 0xd8, 0xb2, 0xf7, 0x5d, 0xe9, 0x64, 0xf5, 0xd3, 0x02, 0x38, 0x5c, 0xe8, + 0x04, 0xfd, 0x00, 0x16, 0xf9, 0xc0, 0x6c, 0xe8, 0x94, 0x73, 0x6f, 0x19, 0x58, 0x2b, 0x12, 0x68, + 0xf1, 0x38, 0x16, 0xe1, 0xa4, 0x1e, 0x7a, 0x04, 0x2b, 0xae, 0x33, 0x38, 0x20, 0x36, 0x19, 0x52, + 0x3e, 0x66, 0x1c, 0x39, 0xa6, 0xa1, 0x4f, 0x04, 0xb3, 0x59, 0xe8, 0xbd, 0x1b, 0x4e, 0xa6, 0x47, + 0x79, 0x95, 0x67, 0x9c, 0x22, 0xe4, 0x97, 0x45, 0x52, 0x17, 0x41, 0x22, 0x0f, 0x5a, 0x23, 0xd9, + 0xee, 0x25, 0xd1, 0x0b, 0xfe, 0x6f, 0xd9, 0xa9, 0x12, 0x61, 0xa7, 0x29, 0xcb, 0xb8, 0xfa, 0xa7, + 0xd7, 0x71, 0xc6, 0x43, 0x29, 0x71, 0x6b, 0xfe, 0x3f, 0xc4, 0x4d, 0xfd, 0x77, 0x1d, 0x6e, 0xe6, + 0x4a, 0x25, 0xfa, 0xf1, 0x05, 0x0c, 0xe7, 0xd6, 0x73, 0x63, 0x37, 0xb9, 0x01, 0x7d, 0xf6, 0x0a, + 0x03, 0xfa, 0x2e, 0x2c, 0xeb, 0x23, 0xcf, 0xa3, 0x36, 0xcb, 0xb0, 0x9a, 0x88, 0x1a, 0xed, 0xa5, + 0xc5, 0x38, 0xab, 0x5f, 0xc4, 0xae, 0x1a, 0x57, 0x64, 0x57, 0xc9, 0x5d, 0xc8, 0x09, 0x39, 0x08, + 0xbb, 0xfc, 0x2e, 0xe4, 0xa0, 0x9c, 0xd5, 0xe7, 0xd3, 0x41, 0x80, 0x1a, 0x21, 0xcc, 0xa7, 0xa7, + 0x83, 0xd3, 0x94, 0x14, 0x67, 0xb4, 0x0b, 0x98, 0xca, 0x42, 0x55, 0xa6, 0x82, 0x48, 0x8a, 0x84, + 0x81, 0xc8, 0xf1, 0xed, 0x2a, 0xb1, 0x5c, 0x99, 0x85, 0xa9, 0x7f, 0x53, 0xe0, 0xc5, 0xd2, 0x24, + 0x40, 0xbb, 0xa9, 0x96, 0xbb, 0x9d, 0x69, 0xb9, 0xdf, 0x2b, 0x35, 0x4c, 0xf4, 0x5d, 0xaf, 0x98, + 0x1a, 0xbd, 0x5f, 0x8d, 0x1a, 0x15, 0xcc, 0xed, 0x97, 0x73, 0xa4, 0xde, 0xf6, 0x93, 0xa7, 0x9d, + 0x99, 0xaf, 0x9e, 0x76, 0x66, 0xbe, 0x7e, 0xda, 0x99, 0xf9, 0xcd, 0xb4, 0xa3, 0x3c, 0x99, 0x76, + 0x94, 0xaf, 0xa6, 0x1d, 0xe5, 0xeb, 0x69, 0x47, 0xf9, 0xc7, 0xb4, 0xa3, 0xfc, 0xee, 0x9b, 0xce, + 0xcc, 0x67, 0xf3, 0xd2, 0xe3, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0xe9, 0x89, 0x29, 0x5c, 0x61, + 0x1b, 0x00, 0x00, } diff --git a/vendor/k8s.io/api/apps/v1beta1/generated.proto b/vendor/k8s.io/api/apps/v1beta1/generated.proto index da160922d..f87f39fe9 100644 --- a/vendor/k8s.io/api/apps/v1beta1/generated.proto +++ b/vendor/k8s.io/api/apps/v1beta1/generated.proto @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -22,7 +22,6 @@ syntax = 'proto2'; package k8s.io.api.apps.v1beta1; import "k8s.io/api/core/v1/generated.proto"; -import "k8s.io/api/policy/v1beta1/generated.proto"; import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; @@ -144,6 +143,7 @@ message DeploymentSpec { // The deployment strategy to use to replace existing pods with new ones. // +optional + // +patchStrategy=retainKeys optional DeploymentStrategy strategy = 4; // Minimum number of seconds for which a newly created pod should be ready @@ -245,9 +245,9 @@ message RollingUpdateDeployment { // Absolute number is calculated from percentage by rounding down. // This can not be 0 if MaxSurge is 0. // Defaults to 25%. - // Example: when this is set to 30%, the old RC can be scaled down to 70% of desired pods - // immediately when the rolling update starts. Once new pods are ready, old RC - // can be scaled down further, followed by scaling up the new RC, ensuring + // Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods + // immediately when the rolling update starts. Once new pods are ready, old ReplicaSet + // can be scaled down further, followed by scaling up the new ReplicaSet, ensuring // that the total number of pods available at all times during the update is at // least 70% of desired pods. // +optional @@ -259,10 +259,10 @@ message RollingUpdateDeployment { // This can not be 0 if MaxUnavailable is 0. // Absolute number is calculated from percentage by rounding up. // Defaults to 25%. - // Example: when this is set to 30%, the new RC can be scaled up immediately when + // Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when // the rolling update starts, such that the total number of old and new pods do not exceed // 130% of desired pods. Once old pods have been killed, - // new RC can be scaled up further, ensuring that total number of pods running + // new ReplicaSet can be scaled up further, ensuring that total number of pods running // at any time during the update is atmost 130% of desired pods. // +optional optional k8s.io.apimachinery.pkg.util.intstr.IntOrString maxSurge = 2; diff --git a/vendor/k8s.io/api/apps/v1beta1/types.go b/vendor/k8s.io/api/apps/v1beta1/types.go index dd9e97e10..326902fd0 100644 --- a/vendor/k8s.io/api/apps/v1beta1/types.go +++ b/vendor/k8s.io/api/apps/v1beta1/types.go @@ -55,8 +55,6 @@ type ScaleStatus struct { TargetSelector string `json:"targetSelector,omitempty" protobuf:"bytes,3,opt,name=targetSelector"` } -// +genclient -// +genclient:noVerbs // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // Scale represents a scaling request for a resource. @@ -323,7 +321,8 @@ type DeploymentSpec struct { // The deployment strategy to use to replace existing pods with new ones. // +optional - Strategy DeploymentStrategy `json:"strategy,omitempty" protobuf:"bytes,4,opt,name=strategy"` + // +patchStrategy=retainKeys + Strategy DeploymentStrategy `json:"strategy,omitempty" patchStrategy:"retainKeys" protobuf:"bytes,4,opt,name=strategy"` // Minimum number of seconds for which a newly created pod should be ready // without any of its container crashing, for it to be considered available. @@ -379,8 +378,8 @@ type RollbackConfig struct { const ( // DefaultDeploymentUniqueLabelKey is the default key of the selector that is added - // to existing RCs (and label key that is added to its pods) to prevent the existing RCs - // to select new pods (and old pods being select by new RC). + // to existing ReplicaSets (and label key that is added to its pods) to prevent the existing ReplicaSets + // to select new pods (and old pods being select by new ReplicaSet). DefaultDeploymentUniqueLabelKey string = "pod-template-hash" ) @@ -405,7 +404,7 @@ const ( // Kill all existing pods before creating new ones. RecreateDeploymentStrategyType DeploymentStrategyType = "Recreate" - // Replace the old RCs by new one using rolling update i.e gradually scale down the old RCs and scale up the new one. + // Replace the old ReplicaSets by new one using rolling update i.e gradually scale down the old ReplicaSets and scale up the new one. RollingUpdateDeploymentStrategyType DeploymentStrategyType = "RollingUpdate" ) @@ -416,9 +415,9 @@ type RollingUpdateDeployment struct { // Absolute number is calculated from percentage by rounding down. // This can not be 0 if MaxSurge is 0. // Defaults to 25%. - // Example: when this is set to 30%, the old RC can be scaled down to 70% of desired pods - // immediately when the rolling update starts. Once new pods are ready, old RC - // can be scaled down further, followed by scaling up the new RC, ensuring + // Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods + // immediately when the rolling update starts. Once new pods are ready, old ReplicaSet + // can be scaled down further, followed by scaling up the new ReplicaSet, ensuring // that the total number of pods available at all times during the update is at // least 70% of desired pods. // +optional @@ -430,10 +429,10 @@ type RollingUpdateDeployment struct { // This can not be 0 if MaxUnavailable is 0. // Absolute number is calculated from percentage by rounding up. // Defaults to 25%. - // Example: when this is set to 30%, the new RC can be scaled up immediately when + // Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when // the rolling update starts, such that the total number of old and new pods do not exceed // 130% of desired pods. Once old pods have been killed, - // new RC can be scaled up further, ensuring that total number of pods running + // new ReplicaSet can be scaled up further, ensuring that total number of pods running // at any time during the update is atmost 130% of desired pods. // +optional MaxSurge *intstr.IntOrString `json:"maxSurge,omitempty" protobuf:"bytes,2,opt,name=maxSurge"` diff --git a/vendor/k8s.io/api/apps/v1beta1/types_swagger_doc_generated.go b/vendor/k8s.io/api/apps/v1beta1/types_swagger_doc_generated.go index d12baf39f..68ebef348 100644 --- a/vendor/k8s.io/api/apps/v1beta1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/apps/v1beta1/types_swagger_doc_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2016 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -26,7 +26,7 @@ package v1beta1 // // Those methods can be generated by using hack/update-generated-swagger-docs.sh -// AUTO-GENERATED FUNCTIONS START HERE +// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT. var map_ControllerRevision = map[string]string{ "": "DEPRECATED - This group version of ControllerRevision is deprecated by apps/v1beta2/ControllerRevision. See the release notes for more information. ControllerRevision implements an immutable snapshot of state data. Clients are responsible for serializing and deserializing the objects that contain their internal state. Once a ControllerRevision has been successfully created, it can not be updated. The API Server will fail validation of all requests that attempt to mutate the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However, it may be subject to name and representation changes in future releases, and clients should not depend on its stability. It is primarily for internal use by controllers.", "metadata": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", @@ -148,8 +148,8 @@ func (RollbackConfig) SwaggerDoc() map[string]string { var map_RollingUpdateDeployment = map[string]string{ "": "Spec to control the desired behavior of rolling update.", - "maxUnavailable": "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 25%. Example: when this is set to 30%, the old RC can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old RC can be scaled down further, followed by scaling up the new RC, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods.", - "maxSurge": "The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 25%. Example: when this is set to 30%, the new RC can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new RC can be scaled up further, ensuring that total number of pods running at any time during the update is atmost 130% of desired pods.", + "maxUnavailable": "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 25%. Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old ReplicaSet can be scaled down further, followed by scaling up the new ReplicaSet, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods.", + "maxSurge": "The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 25%. Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new ReplicaSet can be scaled up further, ensuring that total number of pods running at any time during the update is atmost 130% of desired pods.", } func (RollingUpdateDeployment) SwaggerDoc() map[string]string { diff --git a/vendor/k8s.io/api/apps/v1beta1/zz_generated.deepcopy.go b/vendor/k8s.io/api/apps/v1beta1/zz_generated.deepcopy.go index b06032e1e..93892bfd0 100644 --- a/vendor/k8s.io/api/apps/v1beta1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/api/apps/v1beta1/zz_generated.deepcopy.go @@ -1,7 +1,7 @@ // +build !ignore_autogenerated /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ limitations under the License. package v1beta1 import ( - core_v1 "k8s.io/api/core/v1" + corev1 "k8s.io/api/core/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" intstr "k8s.io/apimachinery/pkg/util/intstr" @@ -204,50 +204,30 @@ func (in *DeploymentSpec) DeepCopyInto(out *DeploymentSpec) { *out = *in if in.Replicas != nil { in, out := &in.Replicas, &out.Replicas - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } if in.Selector != nil { in, out := &in.Selector, &out.Selector - if *in == nil { - *out = nil - } else { - *out = new(v1.LabelSelector) - (*in).DeepCopyInto(*out) - } + *out = new(v1.LabelSelector) + (*in).DeepCopyInto(*out) } in.Template.DeepCopyInto(&out.Template) in.Strategy.DeepCopyInto(&out.Strategy) if in.RevisionHistoryLimit != nil { in, out := &in.RevisionHistoryLimit, &out.RevisionHistoryLimit - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } if in.RollbackTo != nil { in, out := &in.RollbackTo, &out.RollbackTo - if *in == nil { - *out = nil - } else { - *out = new(RollbackConfig) - **out = **in - } + *out = new(RollbackConfig) + **out = **in } if in.ProgressDeadlineSeconds != nil { in, out := &in.ProgressDeadlineSeconds, &out.ProgressDeadlineSeconds - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } return } @@ -274,12 +254,8 @@ func (in *DeploymentStatus) DeepCopyInto(out *DeploymentStatus) { } if in.CollisionCount != nil { in, out := &in.CollisionCount, &out.CollisionCount - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } return } @@ -299,12 +275,8 @@ func (in *DeploymentStrategy) DeepCopyInto(out *DeploymentStrategy) { *out = *in if in.RollingUpdate != nil { in, out := &in.RollingUpdate, &out.RollingUpdate - if *in == nil { - *out = nil - } else { - *out = new(RollingUpdateDeployment) - (*in).DeepCopyInto(*out) - } + *out = new(RollingUpdateDeployment) + (*in).DeepCopyInto(*out) } return } @@ -340,21 +312,13 @@ func (in *RollingUpdateDeployment) DeepCopyInto(out *RollingUpdateDeployment) { *out = *in if in.MaxUnavailable != nil { in, out := &in.MaxUnavailable, &out.MaxUnavailable - if *in == nil { - *out = nil - } else { - *out = new(intstr.IntOrString) - **out = **in - } + *out = new(intstr.IntOrString) + **out = **in } if in.MaxSurge != nil { in, out := &in.MaxSurge, &out.MaxSurge - if *in == nil { - *out = nil - } else { - *out = new(intstr.IntOrString) - **out = **in - } + *out = new(intstr.IntOrString) + **out = **in } return } @@ -374,12 +338,8 @@ func (in *RollingUpdateStatefulSetStrategy) DeepCopyInto(out *RollingUpdateState *out = *in if in.Partition != nil { in, out := &in.Partition, &out.Partition - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } return } @@ -544,26 +504,18 @@ func (in *StatefulSetSpec) DeepCopyInto(out *StatefulSetSpec) { *out = *in if in.Replicas != nil { in, out := &in.Replicas, &out.Replicas - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } if in.Selector != nil { in, out := &in.Selector, &out.Selector - if *in == nil { - *out = nil - } else { - *out = new(v1.LabelSelector) - (*in).DeepCopyInto(*out) - } + *out = new(v1.LabelSelector) + (*in).DeepCopyInto(*out) } in.Template.DeepCopyInto(&out.Template) if in.VolumeClaimTemplates != nil { in, out := &in.VolumeClaimTemplates, &out.VolumeClaimTemplates - *out = make([]core_v1.PersistentVolumeClaim, len(*in)) + *out = make([]corev1.PersistentVolumeClaim, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } @@ -571,12 +523,8 @@ func (in *StatefulSetSpec) DeepCopyInto(out *StatefulSetSpec) { in.UpdateStrategy.DeepCopyInto(&out.UpdateStrategy) if in.RevisionHistoryLimit != nil { in, out := &in.RevisionHistoryLimit, &out.RevisionHistoryLimit - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } return } @@ -596,21 +544,13 @@ func (in *StatefulSetStatus) DeepCopyInto(out *StatefulSetStatus) { *out = *in if in.ObservedGeneration != nil { in, out := &in.ObservedGeneration, &out.ObservedGeneration - if *in == nil { - *out = nil - } else { - *out = new(int64) - **out = **in - } + *out = new(int64) + **out = **in } if in.CollisionCount != nil { in, out := &in.CollisionCount, &out.CollisionCount - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } if in.Conditions != nil { in, out := &in.Conditions, &out.Conditions @@ -637,12 +577,8 @@ func (in *StatefulSetUpdateStrategy) DeepCopyInto(out *StatefulSetUpdateStrategy *out = *in if in.RollingUpdate != nil { in, out := &in.RollingUpdate, &out.RollingUpdate - if *in == nil { - *out = nil - } else { - *out = new(RollingUpdateStatefulSetStrategy) - (*in).DeepCopyInto(*out) - } + *out = new(RollingUpdateStatefulSetStrategy) + (*in).DeepCopyInto(*out) } return } diff --git a/vendor/k8s.io/api/apps/v1beta2/BUILD b/vendor/k8s.io/api/apps/v1beta2/BUILD deleted file mode 100644 index c13a6ff57..000000000 --- a/vendor/k8s.io/api/apps/v1beta2/BUILD +++ /dev/null @@ -1,47 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "generated.pb.go", - "register.go", - "types.go", - "types_swagger_doc_generated.go", - "zz_generated.deepcopy.go", - ], - importpath = "k8s.io/api/apps/v1beta2", - deps = [ - "//vendor/github.com/gogo/protobuf/proto:go_default_library", - "//vendor/github.com/gogo/protobuf/sortkeys:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) - -filegroup( - name = "go_default_library_protos", - srcs = ["generated.proto"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/api/apps/v1beta2/generated.pb.go b/vendor/k8s.io/api/apps/v1beta2/generated.pb.go index cfd422edb..fc1efbc90 100644 --- a/vendor/k8s.io/api/apps/v1beta2/generated.pb.go +++ b/vendor/k8s.io/api/apps/v1beta2/generated.pb.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -14,9 +14,8 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: k8s.io/kubernetes/vendor/k8s.io/api/apps/v1beta2/generated.proto -// DO NOT EDIT! /* Package v1beta2 is a generated protocol buffer package. @@ -64,7 +63,6 @@ import fmt "fmt" import math "math" import k8s_io_api_core_v1 "k8s.io/api/core/v1" - import k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" import k8s_io_apimachinery_pkg_util_intstr "k8s.io/apimachinery/pkg/util/intstr" @@ -1571,24 +1569,6 @@ func (m *StatefulSetUpdateStrategy) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Generated(dAtA []byte, offset int, v uint64) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - dAtA[offset+4] = uint8(v >> 32) - dAtA[offset+5] = uint8(v >> 40) - dAtA[offset+6] = uint8(v >> 48) - dAtA[offset+7] = uint8(v >> 56) - return offset + 8 -} -func encodeFixed32Generated(dAtA []byte, offset int, v uint32) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - return offset + 4 -} func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -6110,51 +6090,14 @@ func (m *ScaleStatus) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.Selector == nil { m.Selector = make(map[string]string) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -6164,41 +6107,80 @@ func (m *ScaleStatus) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - m.Selector[mapkey] = mapvalue - } else { - var mapvalue string - m.Selector[mapkey] = mapvalue } + m.Selector[mapkey] = mapvalue iNdEx = postIndex case 3: if wireType != 2 { @@ -7445,142 +7427,141 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 2186 bytes of a gzipped FileDescriptorProto + // 2176 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5a, 0xcb, 0x6f, 0x1c, 0xb7, - 0x19, 0xf7, 0xec, 0x43, 0x5a, 0x51, 0x96, 0x64, 0x53, 0xaa, 0xb4, 0x91, 0xdb, 0x95, 0xb1, 0x09, - 0x1c, 0x39, 0xb6, 0x66, 0x6d, 0xe5, 0x81, 0xc4, 0x2e, 0xda, 0x6a, 0xa5, 0xd4, 0x76, 0xa0, 0x57, + 0x19, 0xd7, 0xec, 0x43, 0x5a, 0x51, 0x91, 0x64, 0x53, 0xaa, 0xb4, 0x91, 0xdb, 0x95, 0xb1, 0x09, + 0x1c, 0x25, 0xb6, 0x66, 0x6d, 0xe5, 0x81, 0xc4, 0x2e, 0xda, 0x6a, 0xa5, 0xd4, 0x76, 0xa0, 0x57, 0x28, 0xcb, 0x40, 0x83, 0x16, 0x35, 0xb5, 0x4b, 0xaf, 0x26, 0x9a, 0x17, 0x66, 0x38, 0x5b, 0x2f, 0x7a, 0xe9, 0xa9, 0x40, 0x81, 0x02, 0x6d, 0xaf, 0xfd, 0x27, 0x7a, 0x2b, 0x8a, 0xf6, 0x56, 0x04, 0x85, 0x2f, 0x05, 0x82, 0x5e, 0x92, 0x93, 0x50, 0x6f, 0x4e, 0x45, 0xd1, 0x4b, 0x81, 0x5e, 0x02, 0x14, 0x28, 0xc8, 0xe1, 0x3c, 0x38, 0x0f, 0xef, 0x48, 0xb1, 0x95, 0x22, 0xc8, 0x6d, 0x87, 0xfc, - 0x7d, 0x3f, 0x7e, 0x24, 0xbf, 0x8f, 0xdf, 0x6f, 0x38, 0x0b, 0xbe, 0x77, 0xf4, 0xb6, 0xab, 0x6a, - 0x56, 0xeb, 0xc8, 0x3b, 0x20, 0x8e, 0x49, 0x28, 0x71, 0x5b, 0x7d, 0x62, 0x76, 0x2d, 0xa7, 0x25, - 0x3a, 0xb0, 0xad, 0xb5, 0xb0, 0x6d, 0xbb, 0xad, 0xfe, 0xcd, 0x03, 0x42, 0xf1, 0x6a, 0xab, 0x47, - 0x4c, 0xe2, 0x60, 0x4a, 0xba, 0xaa, 0xed, 0x58, 0xd4, 0x82, 0x0b, 0x3e, 0x50, 0xc5, 0xb6, 0xa6, - 0x32, 0xa0, 0x2a, 0x80, 0x8b, 0x2b, 0x3d, 0x8d, 0x1e, 0x7a, 0x07, 0x6a, 0xc7, 0x32, 0x5a, 0x3d, - 0xab, 0x67, 0xb5, 0x38, 0xfe, 0xc0, 0x7b, 0xc4, 0x9f, 0xf8, 0x03, 0xff, 0xe5, 0xf3, 0x2c, 0x36, - 0x63, 0x03, 0x76, 0x2c, 0x87, 0xb4, 0xfa, 0x37, 0x93, 0x63, 0x2d, 0x5e, 0x8d, 0x61, 0x6c, 0x4b, - 0xd7, 0x3a, 0x03, 0xe1, 0x56, 0x1a, 0xfa, 0x46, 0x04, 0x35, 0x70, 0xe7, 0x50, 0x33, 0x89, 0x33, - 0x68, 0xd9, 0x47, 0x3d, 0xd6, 0xe0, 0xb6, 0x0c, 0x42, 0x71, 0xd6, 0x00, 0xad, 0x3c, 0x2b, 0xc7, - 0x33, 0xa9, 0x66, 0x90, 0x94, 0xc1, 0x5b, 0xa3, 0x0c, 0xdc, 0xce, 0x21, 0x31, 0x70, 0xca, 0xee, - 0xf5, 0x3c, 0x3b, 0x8f, 0x6a, 0x7a, 0x4b, 0x33, 0xa9, 0x4b, 0x9d, 0xa4, 0x51, 0xf3, 0x3f, 0x0a, - 0x80, 0xeb, 0x96, 0x49, 0x1d, 0x4b, 0xd7, 0x89, 0x83, 0x48, 0x5f, 0x73, 0x35, 0xcb, 0x84, 0x0f, - 0x41, 0x8d, 0xcd, 0xa7, 0x8b, 0x29, 0xae, 0x2b, 0x97, 0x95, 0xe5, 0xc9, 0xd5, 0x1b, 0x6a, 0xb4, - 0x29, 0x21, 0xbd, 0x6a, 0x1f, 0xf5, 0x58, 0x83, 0xab, 0x32, 0xb4, 0xda, 0xbf, 0xa9, 0xee, 0x1c, - 0x7c, 0x48, 0x3a, 0x74, 0x8b, 0x50, 0xdc, 0x86, 0x4f, 0x8e, 0x97, 0xce, 0x0d, 0x8f, 0x97, 0x40, - 0xd4, 0x86, 0x42, 0x56, 0xb8, 0x03, 0x2a, 0x9c, 0xbd, 0xc4, 0xd9, 0x57, 0x72, 0xd9, 0xc5, 0xa4, - 0x55, 0x84, 0x7f, 0xf2, 0xee, 0x63, 0x4a, 0x4c, 0xe6, 0x5e, 0xfb, 0xbc, 0xa0, 0xae, 0x6c, 0x60, - 0x8a, 0x11, 0x27, 0x82, 0xd7, 0x41, 0xcd, 0x11, 0xee, 0xd7, 0xcb, 0x97, 0x95, 0xe5, 0x72, 0xfb, - 0x82, 0x40, 0xd5, 0x82, 0x69, 0xa1, 0x10, 0xd1, 0x7c, 0xa2, 0x80, 0xf9, 0xf4, 0xbc, 0x37, 0x35, - 0x97, 0xc2, 0x1f, 0xa6, 0xe6, 0xae, 0x16, 0x9b, 0x3b, 0xb3, 0xe6, 0x33, 0x0f, 0x07, 0x0e, 0x5a, - 0x62, 0xf3, 0xde, 0x05, 0x55, 0x8d, 0x12, 0xc3, 0xad, 0x97, 0x2e, 0x97, 0x97, 0x27, 0x57, 0xaf, - 0xa9, 0x39, 0xb1, 0xae, 0xa6, 0xbd, 0x6b, 0x4f, 0x09, 0xde, 0xea, 0x3d, 0xc6, 0x80, 0x7c, 0xa2, - 0xe6, 0x2f, 0x4a, 0x60, 0x62, 0x03, 0x13, 0xc3, 0x32, 0xf7, 0x08, 0x3d, 0x83, 0x9d, 0xbb, 0x0b, - 0x2a, 0xae, 0x4d, 0x3a, 0x62, 0xe7, 0xae, 0xe4, 0x4e, 0x20, 0xf4, 0x69, 0xcf, 0x26, 0x9d, 0x68, - 0xcb, 0xd8, 0x13, 0xe2, 0x0c, 0x70, 0x17, 0x8c, 0xb9, 0x14, 0x53, 0xcf, 0xe5, 0x1b, 0x36, 0xb9, - 0xba, 0x5c, 0x80, 0x8b, 0xe3, 0xdb, 0xd3, 0x82, 0x6d, 0xcc, 0x7f, 0x46, 0x82, 0xa7, 0xf9, 0x8f, - 0x12, 0x80, 0x21, 0x76, 0xdd, 0x32, 0xbb, 0x1a, 0x65, 0xe1, 0x7c, 0x0b, 0x54, 0xe8, 0xc0, 0x26, - 0x7c, 0x41, 0x26, 0xda, 0x57, 0x02, 0x57, 0xee, 0x0f, 0x6c, 0xf2, 0xf9, 0xf1, 0xd2, 0x7c, 0xda, - 0x82, 0xf5, 0x20, 0x6e, 0x03, 0x37, 0x43, 0x27, 0x4b, 0xdc, 0xfa, 0x0d, 0x79, 0xe8, 0xcf, 0x8f, - 0x97, 0x32, 0x8e, 0x19, 0x35, 0x64, 0x92, 0x1d, 0x84, 0x7d, 0x00, 0x75, 0xec, 0xd2, 0xfb, 0x0e, - 0x36, 0x5d, 0x7f, 0x24, 0xcd, 0x20, 0x62, 0xfa, 0xaf, 0x15, 0xdb, 0x28, 0x66, 0xd1, 0x5e, 0x14, - 0x5e, 0xc0, 0xcd, 0x14, 0x1b, 0xca, 0x18, 0x01, 0x5e, 0x01, 0x63, 0x0e, 0xc1, 0xae, 0x65, 0xd6, - 0x2b, 0x7c, 0x16, 0xe1, 0x02, 0x22, 0xde, 0x8a, 0x44, 0x2f, 0xbc, 0x0a, 0xc6, 0x0d, 0xe2, 0xba, - 0xb8, 0x47, 0xea, 0x55, 0x0e, 0x9c, 0x11, 0xc0, 0xf1, 0x2d, 0xbf, 0x19, 0x05, 0xfd, 0xcd, 0xdf, - 0x2b, 0x60, 0x2a, 0x5c, 0xb9, 0x33, 0xc8, 0x9c, 0x3b, 0x72, 0xe6, 0x34, 0x47, 0x07, 0x4b, 0x4e, - 0xc2, 0x7c, 0x54, 0x8e, 0x39, 0xce, 0xc2, 0x11, 0xfe, 0x08, 0xd4, 0x5c, 0xa2, 0x93, 0x0e, 0xb5, - 0x1c, 0xe1, 0xf8, 0xeb, 0x05, 0x1d, 0xc7, 0x07, 0x44, 0xdf, 0x13, 0xa6, 0xed, 0xf3, 0xcc, 0xf3, - 0xe0, 0x09, 0x85, 0x94, 0xf0, 0x7d, 0x50, 0xa3, 0xc4, 0xb0, 0x75, 0x4c, 0x89, 0xc8, 0x9a, 0x97, - 0xe3, 0xce, 0xb3, 0x98, 0x61, 0x64, 0xbb, 0x56, 0xf7, 0xbe, 0x80, 0xf1, 0x94, 0x09, 0x17, 0x23, - 0x68, 0x45, 0x21, 0x0d, 0xb4, 0xc1, 0xb4, 0x67, 0x77, 0x19, 0x92, 0xb2, 0xe3, 0xbc, 0x37, 0x10, - 0x31, 0x74, 0x63, 0xf4, 0xaa, 0xec, 0x4b, 0x76, 0xed, 0x79, 0x31, 0xca, 0xb4, 0xdc, 0x8e, 0x12, - 0xfc, 0x70, 0x0d, 0xcc, 0x18, 0x9a, 0x89, 0x08, 0xee, 0x0e, 0xf6, 0x48, 0xc7, 0x32, 0xbb, 0x2e, - 0x0f, 0xa5, 0x6a, 0x7b, 0x41, 0x10, 0xcc, 0x6c, 0xc9, 0xdd, 0x28, 0x89, 0x87, 0x9b, 0x60, 0x2e, - 0x38, 0x80, 0xef, 0x6a, 0x2e, 0xb5, 0x9c, 0xc1, 0xa6, 0x66, 0x68, 0xb4, 0x3e, 0xc6, 0x79, 0xea, - 0xc3, 0xe3, 0xa5, 0x39, 0x94, 0xd1, 0x8f, 0x32, 0xad, 0x9a, 0xbf, 0x19, 0x03, 0x33, 0x89, 0x73, - 0x01, 0x3e, 0x00, 0xf3, 0x1d, 0xcf, 0x71, 0x88, 0x49, 0xb7, 0x3d, 0xe3, 0x80, 0x38, 0x7b, 0x9d, - 0x43, 0xd2, 0xf5, 0x74, 0xd2, 0xe5, 0xdb, 0x5a, 0x6d, 0x37, 0x84, 0xaf, 0xf3, 0xeb, 0x99, 0x28, - 0x94, 0x63, 0x0d, 0xdf, 0x03, 0xd0, 0xe4, 0x4d, 0x5b, 0x9a, 0xeb, 0x86, 0x9c, 0x25, 0xce, 0x19, - 0xa6, 0xe2, 0x76, 0x0a, 0x81, 0x32, 0xac, 0x98, 0x8f, 0x5d, 0xe2, 0x6a, 0x0e, 0xe9, 0x26, 0x7d, - 0x2c, 0xcb, 0x3e, 0x6e, 0x64, 0xa2, 0x50, 0x8e, 0x35, 0x7c, 0x13, 0x4c, 0xfa, 0xa3, 0xf1, 0x35, - 0x17, 0x9b, 0x33, 0x2b, 0xc8, 0x26, 0xb7, 0xa3, 0x2e, 0x14, 0xc7, 0xb1, 0xa9, 0x59, 0x07, 0x2e, - 0x71, 0xfa, 0xa4, 0x7b, 0xc7, 0x17, 0x07, 0xac, 0x82, 0x56, 0x79, 0x05, 0x0d, 0xa7, 0xb6, 0x93, - 0x42, 0xa0, 0x0c, 0x2b, 0x36, 0x35, 0x3f, 0x6a, 0x52, 0x53, 0x1b, 0x93, 0xa7, 0xb6, 0x9f, 0x89, - 0x42, 0x39, 0xd6, 0x2c, 0xf6, 0x7c, 0x97, 0xd7, 0xfa, 0x58, 0xd3, 0xf1, 0x81, 0x4e, 0xea, 0xe3, - 0x72, 0xec, 0x6d, 0xcb, 0xdd, 0x28, 0x89, 0x87, 0x77, 0xc0, 0x45, 0xbf, 0x69, 0xdf, 0xc4, 0x21, - 0x49, 0x8d, 0x93, 0xbc, 0x24, 0x48, 0x2e, 0x6e, 0x27, 0x01, 0x28, 0x6d, 0x03, 0x6f, 0x81, 0xe9, - 0x8e, 0xa5, 0xeb, 0x3c, 0x1e, 0xd7, 0x2d, 0xcf, 0xa4, 0xf5, 0x09, 0xce, 0x02, 0x59, 0x0e, 0xad, - 0x4b, 0x3d, 0x28, 0x81, 0x84, 0x3f, 0x06, 0xa0, 0x13, 0x14, 0x06, 0xb7, 0x0e, 0x46, 0x28, 0x80, - 0x74, 0x59, 0x8a, 0x2a, 0x73, 0xd8, 0xe4, 0xa2, 0x18, 0x65, 0xf3, 0x23, 0x05, 0x2c, 0xe4, 0x24, - 0x3a, 0xfc, 0xae, 0x54, 0x04, 0xaf, 0x25, 0x8a, 0xe0, 0xa5, 0x1c, 0xb3, 0x58, 0x25, 0x3c, 0x04, - 0x53, 0x4c, 0x90, 0x68, 0x66, 0xcf, 0x87, 0x88, 0xb3, 0xac, 0x95, 0x3b, 0x01, 0x14, 0x47, 0x47, - 0xa7, 0xf2, 0xc5, 0xe1, 0xf1, 0xd2, 0x94, 0xd4, 0x87, 0x64, 0xe2, 0xe6, 0x2f, 0x4b, 0x00, 0x6c, - 0x10, 0x5b, 0xb7, 0x06, 0x06, 0x31, 0xcf, 0x42, 0xd3, 0xdc, 0x93, 0x34, 0xcd, 0xab, 0xf9, 0x5b, - 0x12, 0x3a, 0x95, 0x2b, 0x6a, 0xde, 0x4f, 0x88, 0x9a, 0xab, 0x45, 0xc8, 0x9e, 0xad, 0x6a, 0x3e, - 0x29, 0x83, 0xd9, 0x08, 0x1c, 0xc9, 0x9a, 0xdb, 0xd2, 0x8e, 0xbe, 0x9a, 0xd8, 0xd1, 0x85, 0x0c, - 0x93, 0x17, 0xa6, 0x6b, 0x9e, 0xbf, 0xbe, 0x80, 0x1f, 0x82, 0x69, 0x26, 0x64, 0xfc, 0x90, 0xe0, - 0x32, 0x69, 0xec, 0xc4, 0x32, 0x29, 0x2c, 0x6e, 0x9b, 0x12, 0x13, 0x4a, 0x30, 0xe7, 0xc8, 0xb2, - 0xf1, 0x17, 0x2d, 0xcb, 0x9a, 0x7f, 0x50, 0xc0, 0x74, 0xb4, 0x4d, 0x67, 0x20, 0xa2, 0xee, 0xca, - 0x22, 0xea, 0xe5, 0x02, 0xc1, 0x99, 0xa3, 0xa2, 0x3e, 0xa9, 0xc4, 0x5d, 0xe7, 0x32, 0x6a, 0x99, - 0xbd, 0x82, 0xd9, 0xba, 0xd6, 0xc1, 0xae, 0xa8, 0xb7, 0xe7, 0xfd, 0xd7, 0x2f, 0xbf, 0x0d, 0x85, - 0xbd, 0x92, 0xe0, 0x2a, 0xbd, 0x58, 0xc1, 0x55, 0x7e, 0x3e, 0x82, 0xeb, 0x07, 0xa0, 0xe6, 0x06, - 0x52, 0xab, 0xc2, 0x29, 0xaf, 0x15, 0x4a, 0x6c, 0xa1, 0xb2, 0x42, 0xea, 0x50, 0x5f, 0x85, 0x74, - 0x59, 0xca, 0xaa, 0xfa, 0x65, 0x2a, 0x2b, 0x96, 0xcc, 0x36, 0xf6, 0x5c, 0xd2, 0xe5, 0x19, 0x50, - 0x8b, 0x92, 0x79, 0x97, 0xb7, 0x22, 0xd1, 0x0b, 0xf7, 0xc1, 0x82, 0xed, 0x58, 0x3d, 0x87, 0xb8, - 0xee, 0x06, 0xc1, 0x5d, 0x5d, 0x33, 0x49, 0x30, 0x01, 0xbf, 0x26, 0x5e, 0x1a, 0x1e, 0x2f, 0x2d, - 0xec, 0x66, 0x43, 0x50, 0x9e, 0x6d, 0xf3, 0xcf, 0x15, 0x70, 0x21, 0x79, 0x36, 0xe6, 0xc8, 0x14, - 0xe5, 0x54, 0x32, 0xe5, 0x7a, 0x2c, 0x4e, 0x7d, 0x0d, 0x17, 0xbb, 0x2a, 0x48, 0xc5, 0xea, 0x1a, - 0x98, 0x11, 0xb2, 0x24, 0xe8, 0x14, 0x42, 0x2d, 0xdc, 0x9e, 0x7d, 0xb9, 0x1b, 0x25, 0xf1, 0x4c, - 0x7c, 0x44, 0x9a, 0x22, 0x20, 0xa9, 0xc8, 0xe2, 0x63, 0x2d, 0x09, 0x40, 0x69, 0x1b, 0xb8, 0x05, - 0x66, 0x3d, 0x33, 0x4d, 0xe5, 0x87, 0xcb, 0x25, 0x41, 0x35, 0xbb, 0x9f, 0x86, 0xa0, 0x2c, 0x3b, - 0xf8, 0x50, 0xd2, 0x23, 0x63, 0xfc, 0x48, 0xb8, 0x5e, 0x20, 0xac, 0x0b, 0x0b, 0x12, 0x78, 0x1b, - 0x4c, 0x39, 0x5c, 0x73, 0x06, 0xae, 0xfa, 0xba, 0xed, 0x1b, 0xc2, 0x6c, 0x0a, 0xc5, 0x3b, 0x91, - 0x8c, 0xcd, 0x90, 0x5a, 0xb5, 0xa2, 0x52, 0xab, 0xf9, 0x27, 0x05, 0xc0, 0x74, 0x1e, 0x8e, 0xbc, - 0x09, 0x48, 0x59, 0xc4, 0x2a, 0xa6, 0x96, 0xad, 0x7f, 0x6e, 0x14, 0xd4, 0x3f, 0xd1, 0x81, 0x5a, - 0x4c, 0x00, 0x89, 0x65, 0x38, 0x9b, 0x4b, 0x9d, 0xa2, 0x02, 0x28, 0x72, 0xea, 0x39, 0x08, 0xa0, - 0x18, 0xd9, 0xb3, 0x05, 0xd0, 0x3f, 0x4b, 0x60, 0x36, 0x02, 0x17, 0x16, 0x40, 0x19, 0x26, 0x5f, - 0x5f, 0xec, 0x8c, 0xbe, 0xd8, 0x61, 0xa2, 0x24, 0x5a, 0xba, 0xff, 0x27, 0x51, 0x12, 0x79, 0x95, - 0x23, 0x4a, 0x7e, 0x57, 0x8a, 0xbb, 0xfe, 0x95, 0x17, 0x25, 0x5f, 0xfc, 0x4e, 0xa6, 0xf9, 0x97, - 0x32, 0xb8, 0x90, 0xcc, 0x43, 0xa9, 0x40, 0x2a, 0x23, 0x0b, 0xe4, 0x2e, 0x98, 0x7b, 0xe4, 0xe9, - 0xfa, 0x80, 0x2f, 0x43, 0xac, 0x4a, 0xfa, 0xa5, 0xf5, 0x9b, 0xc2, 0x72, 0xee, 0xfb, 0x19, 0x18, - 0x94, 0x69, 0x99, 0x53, 0xec, 0xcb, 0xa7, 0x2a, 0xf6, 0xa9, 0x0a, 0x54, 0x39, 0x41, 0x05, 0xca, - 0x2c, 0xdc, 0xd5, 0x53, 0x14, 0xee, 0x93, 0x55, 0xda, 0x8c, 0x83, 0x6b, 0xe4, 0xab, 0xff, 0xcf, - 0x15, 0x30, 0x9f, 0xfd, 0xc2, 0x0d, 0x75, 0x30, 0x6d, 0xe0, 0xc7, 0xf1, 0x8b, 0x8f, 0x51, 0x45, - 0xc4, 0xa3, 0x9a, 0xae, 0xfa, 0x9f, 0x8c, 0xd4, 0x7b, 0x26, 0xdd, 0x71, 0xf6, 0xa8, 0xa3, 0x99, - 0x3d, 0xbf, 0xf2, 0x6e, 0x49, 0x5c, 0x28, 0xc1, 0xdd, 0xfc, 0x4c, 0x01, 0x0b, 0x39, 0x95, 0xef, - 0x6c, 0x3d, 0x81, 0x1f, 0x80, 0x9a, 0x81, 0x1f, 0xef, 0x79, 0x4e, 0x2f, 0xab, 0x56, 0x17, 0x1b, - 0x87, 0x67, 0xf3, 0x96, 0x60, 0x41, 0x21, 0x5f, 0x73, 0x07, 0x5c, 0x96, 0x26, 0xc9, 0x32, 0x87, - 0x3c, 0xf2, 0x74, 0x9e, 0x44, 0x42, 0x6c, 0x5c, 0x03, 0x13, 0x36, 0x76, 0xa8, 0x16, 0x4a, 0xd5, - 0x6a, 0x7b, 0x6a, 0x78, 0xbc, 0x34, 0xb1, 0x1b, 0x34, 0xa2, 0xa8, 0xbf, 0xf9, 0x5f, 0x05, 0x54, - 0xf7, 0x3a, 0x58, 0x27, 0x67, 0x50, 0xed, 0x37, 0xa4, 0x6a, 0x9f, 0x7f, 0x93, 0xce, 0xfd, 0xc9, - 0x2d, 0xf4, 0x9b, 0x89, 0x42, 0xff, 0xca, 0x08, 0x9e, 0x67, 0xd7, 0xf8, 0x77, 0xc0, 0x44, 0x38, - 0xdc, 0xc9, 0x0e, 0xa0, 0xe6, 0x6f, 0x4b, 0x60, 0x32, 0x36, 0xc4, 0x09, 0x8f, 0xaf, 0x87, 0xd2, - 0xb1, 0xcf, 0x12, 0x73, 0xb5, 0xc8, 0x44, 0xd4, 0xe0, 0x88, 0x7f, 0xd7, 0xa4, 0x4e, 0xfc, 0x05, - 0x2f, 0x7d, 0xf2, 0x7f, 0x07, 0x4c, 0x53, 0xec, 0xf4, 0x08, 0x0d, 0xfa, 0xf8, 0x82, 0x4d, 0x44, - 0xb7, 0x13, 0xf7, 0xa5, 0x5e, 0x94, 0x40, 0x2f, 0xde, 0x06, 0x53, 0xd2, 0x60, 0xf0, 0x02, 0x28, - 0x1f, 0x91, 0x81, 0x2f, 0x7b, 0x10, 0xfb, 0x09, 0xe7, 0x40, 0xb5, 0x8f, 0x75, 0xcf, 0x8f, 0xf3, - 0x09, 0xe4, 0x3f, 0xdc, 0x2a, 0xbd, 0xad, 0x34, 0x7f, 0xc5, 0x16, 0x27, 0x0a, 0xce, 0x33, 0x88, - 0xae, 0xf7, 0xa4, 0xe8, 0xca, 0xff, 0xa8, 0x17, 0x4f, 0x99, 0xbc, 0x18, 0x43, 0x89, 0x18, 0x7b, - 0xad, 0x10, 0xdb, 0xb3, 0x23, 0xed, 0x5f, 0x25, 0x30, 0x17, 0x43, 0x47, 0x72, 0xf2, 0xdb, 0x92, - 0x9c, 0x5c, 0x4e, 0xc8, 0xc9, 0x7a, 0x96, 0xcd, 0xd7, 0x7a, 0x72, 0xb4, 0x9e, 0xfc, 0xa3, 0x02, - 0x66, 0x62, 0x6b, 0x77, 0x06, 0x82, 0xf2, 0x9e, 0x2c, 0x28, 0x5f, 0x29, 0x12, 0x34, 0x39, 0x8a, - 0xf2, 0xaf, 0x55, 0xc9, 0xf9, 0xaf, 0xbc, 0xa4, 0xfc, 0x29, 0x98, 0xeb, 0x5b, 0xba, 0x67, 0x90, - 0x75, 0x1d, 0x6b, 0x46, 0x00, 0x60, 0xaa, 0xa9, 0x9c, 0x7c, 0x97, 0x0b, 0xe9, 0x89, 0xe3, 0x6a, - 0x2e, 0x25, 0x26, 0x7d, 0x10, 0x59, 0x46, 0xba, 0xef, 0x41, 0x06, 0x1d, 0xca, 0x1c, 0x04, 0xbe, - 0x09, 0x26, 0x99, 0x7e, 0xd3, 0x3a, 0x64, 0x1b, 0x1b, 0x41, 0x60, 0x85, 0x9f, 0xb0, 0xf6, 0xa2, - 0x2e, 0x14, 0xc7, 0xc1, 0x43, 0x30, 0x6b, 0x5b, 0xdd, 0x2d, 0x6c, 0xe2, 0x1e, 0x61, 0x32, 0x63, - 0x97, 0xff, 0x8f, 0x87, 0x5f, 0x7e, 0x4d, 0xb4, 0xdf, 0x0a, 0x6e, 0x45, 0x76, 0xd3, 0x10, 0xf6, - 0x92, 0x98, 0xd1, 0xcc, 0x93, 0x3a, 0x8b, 0x12, 0x3a, 0xa9, 0xcf, 0xae, 0xfe, 0x1d, 0xf1, 0x6a, - 0x91, 0x08, 0x3b, 0xe5, 0x87, 0xd7, 0xbc, 0xbb, 0xbd, 0xda, 0xa9, 0xbe, 0x9a, 0xfe, 0xbb, 0x02, - 0x2e, 0xa6, 0x8e, 0xca, 0x2f, 0xf1, 0x76, 0x2d, 0x25, 0xcf, 0xcb, 0x27, 0x90, 0xe7, 0x6b, 0x60, - 0x46, 0x7c, 0xb0, 0x4d, 0xa8, 0xfb, 0xf0, 0xfd, 0x67, 0x5d, 0xee, 0x46, 0x49, 0x7c, 0xd6, 0xed, - 0x5e, 0xf5, 0x84, 0xb7, 0x7b, 0x71, 0x2f, 0xc4, 0x1f, 0x90, 0xfc, 0xd0, 0x4b, 0x7b, 0x21, 0xfe, - 0x87, 0x94, 0xc4, 0x33, 0x85, 0xe0, 0xb3, 0x86, 0x0c, 0xe3, 0xb2, 0x42, 0xd8, 0x97, 0x7a, 0x51, - 0x02, 0xfd, 0x85, 0x3e, 0x4a, 0xe2, 0x8c, 0x8f, 0x92, 0x2b, 0x45, 0xe2, 0xb9, 0xf8, 0xbb, 0xc9, - 0xdf, 0x14, 0xf0, 0x52, 0x6e, 0x22, 0xc0, 0x35, 0xa9, 0xec, 0xae, 0x24, 0xca, 0xee, 0xb7, 0x72, - 0x0d, 0x63, 0xb5, 0xd7, 0xc9, 0xbe, 0x9a, 0x7b, 0xa7, 0xd8, 0xd5, 0x5c, 0x86, 0x76, 0x1f, 0x7d, - 0x47, 0xd7, 0x5e, 0x79, 0xf2, 0xb4, 0x71, 0xee, 0xe3, 0xa7, 0x8d, 0x73, 0x9f, 0x3e, 0x6d, 0x9c, - 0xfb, 0xd9, 0xb0, 0xa1, 0x3c, 0x19, 0x36, 0x94, 0x8f, 0x87, 0x0d, 0xe5, 0xd3, 0x61, 0x43, 0xf9, - 0xfb, 0xb0, 0xa1, 0xfc, 0xfa, 0xb3, 0xc6, 0xb9, 0x0f, 0xc6, 0xc5, 0x88, 0xff, 0x0b, 0x00, 0x00, - 0xff, 0xff, 0xe4, 0x8f, 0x6a, 0x57, 0x17, 0x29, 0x00, 0x00, + 0x7d, 0x3f, 0x7e, 0x24, 0xbf, 0x8f, 0xdf, 0x6f, 0x38, 0x0b, 0xbe, 0x77, 0xfc, 0xb6, 0xab, 0x6a, + 0x56, 0xeb, 0xd8, 0x3b, 0x24, 0x8e, 0x49, 0x28, 0x71, 0x5b, 0x7d, 0x62, 0x76, 0x2d, 0xa7, 0x25, + 0x3a, 0xb0, 0xad, 0xb5, 0xb0, 0x6d, 0xbb, 0xad, 0xfe, 0x8d, 0x43, 0x42, 0xf1, 0x5a, 0xab, 0x47, + 0x4c, 0xe2, 0x60, 0x4a, 0xba, 0xaa, 0xed, 0x58, 0xd4, 0x82, 0x8b, 0x3e, 0x50, 0xc5, 0xb6, 0xa6, + 0x32, 0xa0, 0x2a, 0x80, 0x4b, 0xab, 0x3d, 0x8d, 0x1e, 0x79, 0x87, 0x6a, 0xc7, 0x32, 0x5a, 0x3d, + 0xab, 0x67, 0xb5, 0x38, 0xfe, 0xd0, 0x7b, 0xc8, 0x9f, 0xf8, 0x03, 0xff, 0xe5, 0xf3, 0x2c, 0x35, + 0x63, 0x03, 0x76, 0x2c, 0x87, 0xb4, 0xfa, 0x37, 0x92, 0x63, 0x2d, 0xbd, 0x11, 0x61, 0x0c, 0xdc, + 0x39, 0xd2, 0x4c, 0xe2, 0x0c, 0x5a, 0xf6, 0x71, 0x8f, 0x35, 0xb8, 0x2d, 0x83, 0x50, 0x9c, 0x65, + 0xd5, 0xca, 0xb3, 0x72, 0x3c, 0x93, 0x6a, 0x06, 0x49, 0x19, 0xbc, 0x35, 0xca, 0xc0, 0xed, 0x1c, + 0x11, 0x03, 0xa7, 0xec, 0x5e, 0xcf, 0xb3, 0xf3, 0xa8, 0xa6, 0xb7, 0x34, 0x93, 0xba, 0xd4, 0x49, + 0x1a, 0x35, 0xff, 0xa3, 0x00, 0xb8, 0x61, 0x99, 0xd4, 0xb1, 0x74, 0x9d, 0x38, 0x88, 0xf4, 0x35, + 0x57, 0xb3, 0x4c, 0xf8, 0x00, 0xd4, 0xd8, 0x7c, 0xba, 0x98, 0xe2, 0xba, 0x72, 0x59, 0x59, 0x99, + 0x5a, 0xbb, 0xae, 0x46, 0x2b, 0x1d, 0xd2, 0xab, 0xf6, 0x71, 0x8f, 0x35, 0xb8, 0x2a, 0x43, 0xab, + 0xfd, 0x1b, 0xea, 0xee, 0xe1, 0x87, 0xa4, 0x43, 0xb7, 0x09, 0xc5, 0x6d, 0xf8, 0xf8, 0x64, 0x79, + 0x6c, 0x78, 0xb2, 0x0c, 0xa2, 0x36, 0x14, 0xb2, 0xc2, 0x5d, 0x50, 0xe1, 0xec, 0x25, 0xce, 0xbe, + 0x9a, 0xcb, 0x2e, 0x26, 0xad, 0x22, 0xfc, 0x93, 0x77, 0x1f, 0x51, 0x62, 0x32, 0xf7, 0xda, 0x2f, + 0x08, 0xea, 0xca, 0x26, 0xa6, 0x18, 0x71, 0x22, 0x78, 0x0d, 0xd4, 0x1c, 0xe1, 0x7e, 0xbd, 0x7c, + 0x59, 0x59, 0x29, 0xb7, 0x2f, 0x08, 0x54, 0x2d, 0x98, 0x16, 0x0a, 0x11, 0xcd, 0xc7, 0x0a, 0x58, + 0x48, 0xcf, 0x7b, 0x4b, 0x73, 0x29, 0xfc, 0x61, 0x6a, 0xee, 0x6a, 0xb1, 0xb9, 0x33, 0x6b, 0x3e, + 0xf3, 0x70, 0xe0, 0xa0, 0x25, 0x36, 0xef, 0x3d, 0x50, 0xd5, 0x28, 0x31, 0xdc, 0x7a, 0xe9, 0x72, + 0x79, 0x65, 0x6a, 0xed, 0xaa, 0x9a, 0x13, 0xc0, 0x6a, 0xda, 0xbb, 0xf6, 0xb4, 0xe0, 0xad, 0xde, + 0x65, 0x0c, 0xc8, 0x27, 0x6a, 0xfe, 0xa2, 0x04, 0x26, 0x37, 0x31, 0x31, 0x2c, 0x73, 0x9f, 0xd0, + 0x73, 0xd8, 0xb9, 0x3b, 0xa0, 0xe2, 0xda, 0xa4, 0x23, 0x76, 0xee, 0x4a, 0xee, 0x04, 0x42, 0x9f, + 0xf6, 0x6d, 0xd2, 0x89, 0xb6, 0x8c, 0x3d, 0x21, 0xce, 0x00, 0xf7, 0xc0, 0xb8, 0x4b, 0x31, 0xf5, + 0x5c, 0xbe, 0x61, 0x53, 0x6b, 0x2b, 0x05, 0xb8, 0x38, 0xbe, 0x3d, 0x23, 0xd8, 0xc6, 0xfd, 0x67, + 0x24, 0x78, 0x9a, 0xff, 0x28, 0x01, 0x18, 0x62, 0x37, 0x2c, 0xb3, 0xab, 0x51, 0x16, 0xce, 0x37, + 0x41, 0x85, 0x0e, 0x6c, 0xc2, 0x17, 0x64, 0xb2, 0x7d, 0x25, 0x70, 0xe5, 0xde, 0xc0, 0x26, 0x9f, + 0x9f, 0x2c, 0x2f, 0xa4, 0x2d, 0x58, 0x0f, 0xe2, 0x36, 0x70, 0x2b, 0x74, 0xb2, 0xc4, 0xad, 0xdf, + 0x90, 0x87, 0xfe, 0xfc, 0x64, 0x39, 0xe3, 0xec, 0x50, 0x43, 0x26, 0xd9, 0x41, 0xd8, 0x07, 0x50, + 0xc7, 0x2e, 0xbd, 0xe7, 0x60, 0xd3, 0xf5, 0x47, 0xd2, 0x0c, 0x22, 0xa6, 0xff, 0x5a, 0xb1, 0x8d, + 0x62, 0x16, 0xed, 0x25, 0xe1, 0x05, 0xdc, 0x4a, 0xb1, 0xa1, 0x8c, 0x11, 0xe0, 0x15, 0x30, 0xee, + 0x10, 0xec, 0x5a, 0x66, 0xbd, 0xc2, 0x67, 0x11, 0x2e, 0x20, 0xe2, 0xad, 0x48, 0xf4, 0xc2, 0x57, + 0xc1, 0x84, 0x41, 0x5c, 0x17, 0xf7, 0x48, 0xbd, 0xca, 0x81, 0xb3, 0x02, 0x38, 0xb1, 0xed, 0x37, + 0xa3, 0xa0, 0xbf, 0xf9, 0x7b, 0x05, 0x4c, 0x87, 0x2b, 0x77, 0x0e, 0x99, 0x73, 0x5b, 0xce, 0x9c, + 0xe6, 0xe8, 0x60, 0xc9, 0x49, 0x98, 0x8f, 0xca, 0x31, 0xc7, 0x59, 0x38, 0xc2, 0x1f, 0x81, 0x9a, + 0x4b, 0x74, 0xd2, 0xa1, 0x96, 0x23, 0x1c, 0x7f, 0xbd, 0xa0, 0xe3, 0xf8, 0x90, 0xe8, 0xfb, 0xc2, + 0xb4, 0xfd, 0x02, 0xf3, 0x3c, 0x78, 0x42, 0x21, 0x25, 0x7c, 0x1f, 0xd4, 0x28, 0x31, 0x6c, 0x1d, + 0x53, 0x22, 0xb2, 0xe6, 0xa5, 0xb8, 0xf3, 0x2c, 0x66, 0x18, 0xd9, 0x9e, 0xd5, 0xbd, 0x27, 0x60, + 0x3c, 0x65, 0xc2, 0xc5, 0x08, 0x5a, 0x51, 0x48, 0x03, 0x6d, 0x30, 0xe3, 0xd9, 0x5d, 0x86, 0xa4, + 0xec, 0x38, 0xef, 0x0d, 0x44, 0x0c, 0x5d, 0x1f, 0xbd, 0x2a, 0x07, 0x92, 0x5d, 0x7b, 0x41, 0x8c, + 0x32, 0x23, 0xb7, 0xa3, 0x04, 0x3f, 0x5c, 0x07, 0xb3, 0x86, 0x66, 0x22, 0x82, 0xbb, 0x83, 0x7d, + 0xd2, 0xb1, 0xcc, 0xae, 0xcb, 0x43, 0xa9, 0xda, 0x5e, 0x14, 0x04, 0xb3, 0xdb, 0x72, 0x37, 0x4a, + 0xe2, 0xe1, 0x16, 0x98, 0x0f, 0x0e, 0xe0, 0x3b, 0x9a, 0x4b, 0x2d, 0x67, 0xb0, 0xa5, 0x19, 0x1a, + 0xad, 0x8f, 0x73, 0x9e, 0xfa, 0xf0, 0x64, 0x79, 0x1e, 0x65, 0xf4, 0xa3, 0x4c, 0xab, 0xe6, 0x6f, + 0xc6, 0xc1, 0x6c, 0xe2, 0x5c, 0x80, 0xf7, 0xc1, 0x42, 0xc7, 0x73, 0x1c, 0x62, 0xd2, 0x1d, 0xcf, + 0x38, 0x24, 0xce, 0x7e, 0xe7, 0x88, 0x74, 0x3d, 0x9d, 0x74, 0xf9, 0xb6, 0x56, 0xdb, 0x0d, 0xe1, + 0xeb, 0xc2, 0x46, 0x26, 0x0a, 0xe5, 0x58, 0xc3, 0xf7, 0x00, 0x34, 0x79, 0xd3, 0xb6, 0xe6, 0xba, + 0x21, 0x67, 0x89, 0x73, 0x86, 0xa9, 0xb8, 0x93, 0x42, 0xa0, 0x0c, 0x2b, 0xe6, 0x63, 0x97, 0xb8, + 0x9a, 0x43, 0xba, 0x49, 0x1f, 0xcb, 0xb2, 0x8f, 0x9b, 0x99, 0x28, 0x94, 0x63, 0x0d, 0xdf, 0x04, + 0x53, 0xfe, 0x68, 0x7c, 0xcd, 0xc5, 0xe6, 0xcc, 0x09, 0xb2, 0xa9, 0x9d, 0xa8, 0x0b, 0xc5, 0x71, + 0x6c, 0x6a, 0xd6, 0xa1, 0x4b, 0x9c, 0x3e, 0xe9, 0xde, 0xf6, 0xc5, 0x01, 0xab, 0xa0, 0x55, 0x5e, + 0x41, 0xc3, 0xa9, 0xed, 0xa6, 0x10, 0x28, 0xc3, 0x8a, 0x4d, 0xcd, 0x8f, 0x9a, 0xd4, 0xd4, 0xc6, + 0xe5, 0xa9, 0x1d, 0x64, 0xa2, 0x50, 0x8e, 0x35, 0x8b, 0x3d, 0xdf, 0xe5, 0xf5, 0x3e, 0xd6, 0x74, + 0x7c, 0xa8, 0x93, 0xfa, 0x84, 0x1c, 0x7b, 0x3b, 0x72, 0x37, 0x4a, 0xe2, 0xe1, 0x6d, 0x70, 0xd1, + 0x6f, 0x3a, 0x30, 0x71, 0x48, 0x52, 0xe3, 0x24, 0x2f, 0x0a, 0x92, 0x8b, 0x3b, 0x49, 0x00, 0x4a, + 0xdb, 0xc0, 0x9b, 0x60, 0xa6, 0x63, 0xe9, 0x3a, 0x8f, 0xc7, 0x0d, 0xcb, 0x33, 0x69, 0x7d, 0x92, + 0xb3, 0x40, 0x96, 0x43, 0x1b, 0x52, 0x0f, 0x4a, 0x20, 0xe1, 0x8f, 0x01, 0xe8, 0x04, 0x85, 0xc1, + 0xad, 0x83, 0x11, 0x0a, 0x20, 0x5d, 0x96, 0xa2, 0xca, 0x1c, 0x36, 0xb9, 0x28, 0x46, 0xd9, 0xfc, + 0x48, 0x01, 0x8b, 0x39, 0x89, 0x0e, 0xbf, 0x2b, 0x15, 0xc1, 0xab, 0x89, 0x22, 0x78, 0x29, 0xc7, + 0x2c, 0x56, 0x09, 0x8f, 0xc0, 0x34, 0x13, 0x24, 0x9a, 0xd9, 0xf3, 0x21, 0xe2, 0x2c, 0x6b, 0xe5, + 0x4e, 0x00, 0xc5, 0xd1, 0xd1, 0xa9, 0x7c, 0x71, 0x78, 0xb2, 0x3c, 0x2d, 0xf5, 0x21, 0x99, 0xb8, + 0xf9, 0xcb, 0x12, 0x00, 0x9b, 0xc4, 0xd6, 0xad, 0x81, 0x41, 0xcc, 0xf3, 0xd0, 0x34, 0x77, 0x25, + 0x4d, 0xf3, 0x4a, 0xfe, 0x96, 0x84, 0x4e, 0xe5, 0x8a, 0x9a, 0xf7, 0x13, 0xa2, 0xe6, 0xd5, 0x22, + 0x64, 0x4f, 0x57, 0x35, 0x9f, 0x94, 0xc1, 0x5c, 0x04, 0x8e, 0x64, 0xcd, 0x2d, 0x69, 0x47, 0x5f, + 0x49, 0xec, 0xe8, 0x62, 0x86, 0xc9, 0x73, 0xd3, 0x35, 0xcf, 0x5e, 0x5f, 0xc0, 0x0f, 0xc1, 0x0c, + 0x13, 0x32, 0x7e, 0x48, 0x70, 0x99, 0x34, 0x7e, 0x6a, 0x99, 0x14, 0x16, 0xb7, 0x2d, 0x89, 0x09, + 0x25, 0x98, 0x73, 0x64, 0xd9, 0xc4, 0xf3, 0x96, 0x65, 0xcd, 0x3f, 0x28, 0x60, 0x26, 0xda, 0xa6, + 0x73, 0x10, 0x51, 0x77, 0x64, 0x11, 0xf5, 0x52, 0x81, 0xe0, 0xcc, 0x51, 0x51, 0x9f, 0x54, 0xe2, + 0xae, 0x73, 0x19, 0xb5, 0xc2, 0x5e, 0xc1, 0x6c, 0x5d, 0xeb, 0x60, 0x57, 0xd4, 0xdb, 0x17, 0xfc, + 0xd7, 0x2f, 0xbf, 0x0d, 0x85, 0xbd, 0x92, 0xe0, 0x2a, 0x3d, 0x5f, 0xc1, 0x55, 0x7e, 0x36, 0x82, + 0xeb, 0x07, 0xa0, 0xe6, 0x06, 0x52, 0xab, 0xc2, 0x29, 0xaf, 0x16, 0x4a, 0x6c, 0xa1, 0xb2, 0x42, + 0xea, 0x50, 0x5f, 0x85, 0x74, 0x59, 0xca, 0xaa, 0xfa, 0x65, 0x2a, 0x2b, 0x96, 0xcc, 0x36, 0xf6, + 0x5c, 0xd2, 0xe5, 0x19, 0x50, 0x8b, 0x92, 0x79, 0x8f, 0xb7, 0x22, 0xd1, 0x0b, 0x0f, 0xc0, 0xa2, + 0xed, 0x58, 0x3d, 0x87, 0xb8, 0xee, 0x26, 0xc1, 0x5d, 0x5d, 0x33, 0x49, 0x30, 0x01, 0xbf, 0x26, + 0x5e, 0x1a, 0x9e, 0x2c, 0x2f, 0xee, 0x65, 0x43, 0x50, 0x9e, 0x6d, 0xf3, 0xcf, 0x15, 0x70, 0x21, + 0x79, 0x36, 0xe6, 0xc8, 0x14, 0xe5, 0x4c, 0x32, 0xe5, 0x5a, 0x2c, 0x4e, 0x7d, 0x0d, 0x17, 0xbb, + 0x2a, 0x48, 0xc5, 0xea, 0x3a, 0x98, 0x15, 0xb2, 0x24, 0xe8, 0x14, 0x42, 0x2d, 0xdc, 0x9e, 0x03, + 0xb9, 0x1b, 0x25, 0xf1, 0x4c, 0x7c, 0x44, 0x9a, 0x22, 0x20, 0xa9, 0xc8, 0xe2, 0x63, 0x3d, 0x09, + 0x40, 0x69, 0x1b, 0xb8, 0x0d, 0xe6, 0x3c, 0x33, 0x4d, 0xe5, 0x87, 0xcb, 0x25, 0x41, 0x35, 0x77, + 0x90, 0x86, 0xa0, 0x2c, 0x3b, 0xf8, 0x40, 0xd2, 0x23, 0xe3, 0xfc, 0x48, 0xb8, 0x56, 0x20, 0xac, + 0x0b, 0x0b, 0x12, 0x78, 0x0b, 0x4c, 0x3b, 0x5c, 0x73, 0x06, 0xae, 0xfa, 0xba, 0xed, 0x1b, 0xc2, + 0x6c, 0x1a, 0xc5, 0x3b, 0x91, 0x8c, 0xcd, 0x90, 0x5a, 0xb5, 0xa2, 0x52, 0xab, 0xf9, 0x27, 0x05, + 0xc0, 0x74, 0x1e, 0x8e, 0xbc, 0x09, 0x48, 0x59, 0xc4, 0x2a, 0xa6, 0x96, 0xad, 0x7f, 0xae, 0x17, + 0xd4, 0x3f, 0xd1, 0x81, 0x5a, 0x4c, 0x00, 0x89, 0x65, 0x38, 0x9f, 0x4b, 0x9d, 0xa2, 0x02, 0x28, + 0x72, 0xea, 0x19, 0x08, 0xa0, 0x18, 0xd9, 0xd3, 0x05, 0xd0, 0x3f, 0x4b, 0x60, 0x2e, 0x02, 0x17, + 0x16, 0x40, 0x19, 0x26, 0x5f, 0x5f, 0xec, 0x8c, 0xbe, 0xd8, 0x61, 0xa2, 0x24, 0x5a, 0xba, 0xff, + 0x27, 0x51, 0x12, 0x79, 0x95, 0x23, 0x4a, 0x7e, 0x57, 0x8a, 0xbb, 0xfe, 0x95, 0x17, 0x25, 0x5f, + 0xfc, 0x4e, 0xa6, 0xf9, 0x97, 0x32, 0xb8, 0x90, 0xcc, 0x43, 0xa9, 0x40, 0x2a, 0x23, 0x0b, 0xe4, + 0x1e, 0x98, 0x7f, 0xe8, 0xe9, 0xfa, 0x80, 0x2f, 0x43, 0xac, 0x4a, 0xfa, 0xa5, 0xf5, 0x9b, 0xc2, + 0x72, 0xfe, 0xfb, 0x19, 0x18, 0x94, 0x69, 0x99, 0x53, 0xec, 0xcb, 0x67, 0x2a, 0xf6, 0xa9, 0x0a, + 0x54, 0x39, 0x45, 0x05, 0xca, 0x2c, 0xdc, 0xd5, 0x33, 0x14, 0xee, 0xd3, 0x55, 0xda, 0x8c, 0x83, + 0x6b, 0xe4, 0xab, 0xff, 0xcf, 0x15, 0xb0, 0x90, 0xfd, 0xc2, 0x0d, 0x75, 0x30, 0x63, 0xe0, 0x47, + 0xf1, 0x8b, 0x8f, 0x51, 0x45, 0xc4, 0xa3, 0x9a, 0xae, 0xfa, 0x9f, 0x8c, 0xd4, 0xbb, 0x26, 0xdd, + 0x75, 0xf6, 0xa9, 0xa3, 0x99, 0x3d, 0xbf, 0xf2, 0x6e, 0x4b, 0x5c, 0x28, 0xc1, 0xdd, 0xfc, 0x4c, + 0x01, 0x8b, 0x39, 0x95, 0xef, 0x7c, 0x3d, 0x81, 0x1f, 0x80, 0x9a, 0x81, 0x1f, 0xed, 0x7b, 0x4e, + 0x2f, 0xab, 0x56, 0x17, 0x1b, 0x87, 0x67, 0xf3, 0xb6, 0x60, 0x41, 0x21, 0x5f, 0x73, 0x17, 0x5c, + 0x96, 0x26, 0xc9, 0x32, 0x87, 0x3c, 0xf4, 0x74, 0x9e, 0x44, 0x42, 0x6c, 0x5c, 0x05, 0x93, 0x36, + 0x76, 0xa8, 0x16, 0x4a, 0xd5, 0x6a, 0x7b, 0x7a, 0x78, 0xb2, 0x3c, 0xb9, 0x17, 0x34, 0xa2, 0xa8, + 0xbf, 0xf9, 0x5f, 0x05, 0x54, 0xf7, 0x3b, 0x58, 0x27, 0xe7, 0x50, 0xed, 0x37, 0xa5, 0x6a, 0x9f, + 0x7f, 0x93, 0xce, 0xfd, 0xc9, 0x2d, 0xf4, 0x5b, 0x89, 0x42, 0xff, 0xf2, 0x08, 0x9e, 0xa7, 0xd7, + 0xf8, 0x77, 0xc0, 0x64, 0x38, 0xdc, 0xe9, 0x0e, 0xa0, 0xe6, 0x6f, 0x4b, 0x60, 0x2a, 0x36, 0xc4, + 0x29, 0x8f, 0xaf, 0x07, 0xd2, 0xb1, 0xcf, 0x12, 0x73, 0xad, 0xc8, 0x44, 0xd4, 0xe0, 0x88, 0x7f, + 0xd7, 0xa4, 0x4e, 0xfc, 0x05, 0x2f, 0x7d, 0xf2, 0x7f, 0x07, 0xcc, 0x50, 0xec, 0xf4, 0x08, 0x0d, + 0xfa, 0xf8, 0x82, 0x4d, 0x46, 0xb7, 0x13, 0xf7, 0xa4, 0x5e, 0x94, 0x40, 0x2f, 0xdd, 0x02, 0xd3, + 0xd2, 0x60, 0xf0, 0x02, 0x28, 0x1f, 0x93, 0x81, 0x2f, 0x7b, 0x10, 0xfb, 0x09, 0xe7, 0x41, 0xb5, + 0x8f, 0x75, 0xcf, 0x8f, 0xf3, 0x49, 0xe4, 0x3f, 0xdc, 0x2c, 0xbd, 0xad, 0x34, 0x7f, 0xc5, 0x16, + 0x27, 0x0a, 0xce, 0x73, 0x88, 0xae, 0xf7, 0xa4, 0xe8, 0xca, 0xff, 0xa8, 0x17, 0x4f, 0x99, 0xbc, + 0x18, 0x43, 0x89, 0x18, 0x7b, 0xad, 0x10, 0xdb, 0xd3, 0x23, 0xed, 0x5f, 0x25, 0x30, 0x1f, 0x43, + 0x47, 0x72, 0xf2, 0xdb, 0x92, 0x9c, 0x5c, 0x49, 0xc8, 0xc9, 0x7a, 0x96, 0xcd, 0xd7, 0x7a, 0x72, + 0xb4, 0x9e, 0xfc, 0xa3, 0x02, 0x66, 0x63, 0x6b, 0x77, 0x0e, 0x82, 0xf2, 0xae, 0x2c, 0x28, 0x5f, + 0x2e, 0x12, 0x34, 0x39, 0x8a, 0xf2, 0xaf, 0x55, 0xc9, 0xf9, 0xaf, 0xbc, 0xa4, 0xfc, 0x29, 0x98, + 0xef, 0x5b, 0xba, 0x67, 0x90, 0x0d, 0x1d, 0x6b, 0x46, 0x00, 0x60, 0xaa, 0xa9, 0x9c, 0x7c, 0x97, + 0x0b, 0xe9, 0x89, 0xe3, 0x6a, 0x2e, 0x25, 0x26, 0xbd, 0x1f, 0x59, 0x46, 0xba, 0xef, 0x7e, 0x06, + 0x1d, 0xca, 0x1c, 0x04, 0xbe, 0x09, 0xa6, 0x98, 0x7e, 0xd3, 0x3a, 0x64, 0x07, 0x1b, 0x41, 0x60, + 0x85, 0x9f, 0xb0, 0xf6, 0xa3, 0x2e, 0x14, 0xc7, 0xc1, 0x23, 0x30, 0x67, 0x5b, 0xdd, 0x6d, 0x6c, + 0xe2, 0x1e, 0x61, 0x32, 0x63, 0xcf, 0xd2, 0xb5, 0xce, 0x80, 0x5f, 0x7e, 0x4d, 0xb6, 0xdf, 0x0a, + 0x6e, 0x45, 0xf6, 0xd2, 0x10, 0xf6, 0x92, 0x98, 0xd1, 0xcc, 0x93, 0x3a, 0x8b, 0x12, 0x3a, 0xa9, + 0xcf, 0xae, 0xfe, 0x1d, 0xf1, 0x5a, 0x91, 0x08, 0x3b, 0xe3, 0x87, 0xd7, 0xbc, 0xbb, 0xbd, 0xda, + 0x99, 0xbe, 0x9a, 0xfe, 0xbb, 0x02, 0x2e, 0xa6, 0x8e, 0xca, 0x2f, 0xf1, 0x76, 0x2d, 0x25, 0xcf, + 0xcb, 0xa7, 0x90, 0xe7, 0xeb, 0x60, 0x56, 0x7c, 0xb0, 0x4d, 0xa8, 0xfb, 0xf0, 0xfd, 0x67, 0x43, + 0xee, 0x46, 0x49, 0x7c, 0xd6, 0xed, 0x5e, 0xf5, 0x94, 0xb7, 0x7b, 0x71, 0x2f, 0xc4, 0x1f, 0x90, + 0xfc, 0xd0, 0x4b, 0x7b, 0x21, 0xfe, 0x87, 0x94, 0xc4, 0x33, 0x85, 0xe0, 0xb3, 0x86, 0x0c, 0x13, + 0xb2, 0x42, 0x38, 0x90, 0x7a, 0x51, 0x02, 0xfd, 0x85, 0x3e, 0x4a, 0xe2, 0x8c, 0x8f, 0x92, 0xab, + 0x45, 0xe2, 0xb9, 0xf8, 0xbb, 0xc9, 0xdf, 0x14, 0xf0, 0x62, 0x6e, 0x22, 0xc0, 0x75, 0xa9, 0xec, + 0xae, 0x26, 0xca, 0xee, 0xb7, 0x72, 0x0d, 0x63, 0xb5, 0xd7, 0xc9, 0xbe, 0x9a, 0x7b, 0xa7, 0xd8, + 0xd5, 0x5c, 0x86, 0x76, 0x1f, 0x7d, 0x47, 0xd7, 0x5e, 0x7d, 0xfc, 0xa4, 0x31, 0xf6, 0xf1, 0x93, + 0xc6, 0xd8, 0xa7, 0x4f, 0x1a, 0x63, 0x3f, 0x1b, 0x36, 0x94, 0xc7, 0xc3, 0x86, 0xf2, 0xf1, 0xb0, + 0xa1, 0x7c, 0x3a, 0x6c, 0x28, 0x7f, 0x1f, 0x36, 0x94, 0x5f, 0x7f, 0xd6, 0x18, 0xfb, 0x60, 0x42, + 0x8c, 0xf8, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x80, 0x85, 0x43, 0x0a, 0xec, 0x28, 0x00, 0x00, } diff --git a/vendor/k8s.io/api/apps/v1beta2/generated.proto b/vendor/k8s.io/api/apps/v1beta2/generated.proto index 4a8b28c15..5d11cbe8d 100644 --- a/vendor/k8s.io/api/apps/v1beta2/generated.proto +++ b/vendor/k8s.io/api/apps/v1beta2/generated.proto @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -22,7 +22,6 @@ syntax = 'proto2'; package k8s.io.api.apps.v1beta2; import "k8s.io/api/core/v1/generated.proto"; -import "k8s.io/api/policy/v1beta1/generated.proto"; import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; @@ -287,6 +286,7 @@ message DeploymentSpec { // The deployment strategy to use to replace existing pods with new ones. // +optional + // +patchStrategy=retainKeys optional DeploymentStrategy strategy = 4; // Minimum number of seconds for which a newly created pod should be ready @@ -509,9 +509,9 @@ message RollingUpdateDeployment { // Absolute number is calculated from percentage by rounding down. // This can not be 0 if MaxSurge is 0. // Defaults to 25%. - // Example: when this is set to 30%, the old RC can be scaled down to 70% of desired pods - // immediately when the rolling update starts. Once new pods are ready, old RC - // can be scaled down further, followed by scaling up the new RC, ensuring + // Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods + // immediately when the rolling update starts. Once new pods are ready, old ReplicaSet + // can be scaled down further, followed by scaling up the new ReplicaSet, ensuring // that the total number of pods available at all times during the update is at // least 70% of desired pods. // +optional @@ -523,10 +523,10 @@ message RollingUpdateDeployment { // This can not be 0 if MaxUnavailable is 0. // Absolute number is calculated from percentage by rounding up. // Defaults to 25%. - // Example: when this is set to 30%, the new RC can be scaled up immediately when + // Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when // the rolling update starts, such that the total number of old and new pods do not exceed // 130% of desired pods. Once old pods have been killed, - // new RC can be scaled up further, ensuring that total number of pods running + // new ReplicaSet can be scaled up further, ensuring that total number of pods running // at any time during the update is atmost 130% of desired pods. // +optional optional k8s.io.apimachinery.pkg.util.intstr.IntOrString maxSurge = 2; diff --git a/vendor/k8s.io/api/apps/v1beta2/types.go b/vendor/k8s.io/api/apps/v1beta2/types.go index c8be2aaca..e75589adc 100644 --- a/vendor/k8s.io/api/apps/v1beta2/types.go +++ b/vendor/k8s.io/api/apps/v1beta2/types.go @@ -57,8 +57,6 @@ type ScaleStatus struct { TargetSelector string `json:"targetSelector,omitempty" protobuf:"bytes,3,opt,name=targetSelector"` } -// +genclient -// +genclient:noVerbs // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // Scale represents a scaling request for a resource. @@ -331,7 +329,8 @@ type DeploymentSpec struct { // The deployment strategy to use to replace existing pods with new ones. // +optional - Strategy DeploymentStrategy `json:"strategy,omitempty" protobuf:"bytes,4,opt,name=strategy"` + // +patchStrategy=retainKeys + Strategy DeploymentStrategy `json:"strategy,omitempty" patchStrategy:"retainKeys" protobuf:"bytes,4,opt,name=strategy"` // Minimum number of seconds for which a newly created pod should be ready // without any of its container crashing, for it to be considered available. @@ -359,8 +358,8 @@ type DeploymentSpec struct { const ( // DefaultDeploymentUniqueLabelKey is the default key of the selector that is added - // to existing RCs (and label key that is added to its pods) to prevent the existing RCs - // to select new pods (and old pods being select by new RC). + // to existing ReplicaSets (and label key that is added to its pods) to prevent the existing ReplicaSets + // to select new pods (and old pods being select by new ReplicaSet). DefaultDeploymentUniqueLabelKey string = "pod-template-hash" ) @@ -385,7 +384,7 @@ const ( // Kill all existing pods before creating new ones. RecreateDeploymentStrategyType DeploymentStrategyType = "Recreate" - // Replace the old RCs by new one using rolling update i.e gradually scale down the old RCs and scale up the new one. + // Replace the old ReplicaSets by new one using rolling update i.e gradually scale down the old ReplicaSets and scale up the new one. RollingUpdateDeploymentStrategyType DeploymentStrategyType = "RollingUpdate" ) @@ -396,9 +395,9 @@ type RollingUpdateDeployment struct { // Absolute number is calculated from percentage by rounding down. // This can not be 0 if MaxSurge is 0. // Defaults to 25%. - // Example: when this is set to 30%, the old RC can be scaled down to 70% of desired pods - // immediately when the rolling update starts. Once new pods are ready, old RC - // can be scaled down further, followed by scaling up the new RC, ensuring + // Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods + // immediately when the rolling update starts. Once new pods are ready, old ReplicaSet + // can be scaled down further, followed by scaling up the new ReplicaSet, ensuring // that the total number of pods available at all times during the update is at // least 70% of desired pods. // +optional @@ -410,10 +409,10 @@ type RollingUpdateDeployment struct { // This can not be 0 if MaxUnavailable is 0. // Absolute number is calculated from percentage by rounding up. // Defaults to 25%. - // Example: when this is set to 30%, the new RC can be scaled up immediately when + // Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when // the rolling update starts, such that the total number of old and new pods do not exceed // 130% of desired pods. Once old pods have been killed, - // new RC can be scaled up further, ensuring that total number of pods running + // new ReplicaSet can be scaled up further, ensuring that total number of pods running // at any time during the update is atmost 130% of desired pods. // +optional MaxSurge *intstr.IntOrString `json:"maxSurge,omitempty" protobuf:"bytes,2,opt,name=maxSurge"` diff --git a/vendor/k8s.io/api/apps/v1beta2/types_swagger_doc_generated.go b/vendor/k8s.io/api/apps/v1beta2/types_swagger_doc_generated.go index e2f133b51..f8229ceda 100644 --- a/vendor/k8s.io/api/apps/v1beta2/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/apps/v1beta2/types_swagger_doc_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2016 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -26,7 +26,7 @@ package v1beta2 // // Those methods can be generated by using hack/update-generated-swagger-docs.sh -// AUTO-GENERATED FUNCTIONS START HERE +// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT. var map_ControllerRevision = map[string]string{ "": "DEPRECATED - This group version of ControllerRevision is deprecated by apps/v1/ControllerRevision. See the release notes for more information. ControllerRevision implements an immutable snapshot of state data. Clients are responsible for serializing and deserializing the objects that contain their internal state. Once a ControllerRevision has been successfully created, it can not be updated. The API Server will fail validation of all requests that attempt to mutate the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However, it may be subject to name and representation changes in future releases, and clients should not depend on its stability. It is primarily for internal use by controllers.", "metadata": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", @@ -96,7 +96,7 @@ func (DaemonSetSpec) SwaggerDoc() map[string]string { } var map_DaemonSetStatus = map[string]string{ - "": "DaemonSetStatus represents the current status of a daemon set.", + "": "DaemonSetStatus represents the current status of a daemon set.", "currentNumberScheduled": "The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", "numberMisscheduled": "The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", "desiredNumberScheduled": "The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", @@ -271,8 +271,8 @@ func (RollingUpdateDaemonSet) SwaggerDoc() map[string]string { var map_RollingUpdateDeployment = map[string]string{ "": "Spec to control the desired behavior of rolling update.", - "maxUnavailable": "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 25%. Example: when this is set to 30%, the old RC can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old RC can be scaled down further, followed by scaling up the new RC, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods.", - "maxSurge": "The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 25%. Example: when this is set to 30%, the new RC can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new RC can be scaled up further, ensuring that total number of pods running at any time during the update is atmost 130% of desired pods.", + "maxUnavailable": "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 25%. Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old ReplicaSet can be scaled down further, followed by scaling up the new ReplicaSet, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods.", + "maxSurge": "The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 25%. Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new ReplicaSet can be scaled up further, ensuring that total number of pods running at any time during the update is atmost 130% of desired pods.", } func (RollingUpdateDeployment) SwaggerDoc() map[string]string { diff --git a/vendor/k8s.io/api/apps/v1beta2/zz_generated.deepcopy.go b/vendor/k8s.io/api/apps/v1beta2/zz_generated.deepcopy.go index 3db38527d..8a0bad22e 100644 --- a/vendor/k8s.io/api/apps/v1beta2/zz_generated.deepcopy.go +++ b/vendor/k8s.io/api/apps/v1beta2/zz_generated.deepcopy.go @@ -1,7 +1,7 @@ // +build !ignore_autogenerated /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ limitations under the License. package v1beta2 import ( - core_v1 "k8s.io/api/core/v1" + corev1 "k8s.io/api/core/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" intstr "k8s.io/apimachinery/pkg/util/intstr" @@ -170,23 +170,15 @@ func (in *DaemonSetSpec) DeepCopyInto(out *DaemonSetSpec) { *out = *in if in.Selector != nil { in, out := &in.Selector, &out.Selector - if *in == nil { - *out = nil - } else { - *out = new(v1.LabelSelector) - (*in).DeepCopyInto(*out) - } + *out = new(v1.LabelSelector) + (*in).DeepCopyInto(*out) } in.Template.DeepCopyInto(&out.Template) in.UpdateStrategy.DeepCopyInto(&out.UpdateStrategy) if in.RevisionHistoryLimit != nil { in, out := &in.RevisionHistoryLimit, &out.RevisionHistoryLimit - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } return } @@ -206,12 +198,8 @@ func (in *DaemonSetStatus) DeepCopyInto(out *DaemonSetStatus) { *out = *in if in.CollisionCount != nil { in, out := &in.CollisionCount, &out.CollisionCount - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } if in.Conditions != nil { in, out := &in.Conditions, &out.Conditions @@ -238,12 +226,8 @@ func (in *DaemonSetUpdateStrategy) DeepCopyInto(out *DaemonSetUpdateStrategy) { *out = *in if in.RollingUpdate != nil { in, out := &in.RollingUpdate, &out.RollingUpdate - if *in == nil { - *out = nil - } else { - *out = new(RollingUpdateDaemonSet) - (*in).DeepCopyInto(*out) - } + *out = new(RollingUpdateDaemonSet) + (*in).DeepCopyInto(*out) } return } @@ -342,41 +326,25 @@ func (in *DeploymentSpec) DeepCopyInto(out *DeploymentSpec) { *out = *in if in.Replicas != nil { in, out := &in.Replicas, &out.Replicas - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } if in.Selector != nil { in, out := &in.Selector, &out.Selector - if *in == nil { - *out = nil - } else { - *out = new(v1.LabelSelector) - (*in).DeepCopyInto(*out) - } + *out = new(v1.LabelSelector) + (*in).DeepCopyInto(*out) } in.Template.DeepCopyInto(&out.Template) in.Strategy.DeepCopyInto(&out.Strategy) if in.RevisionHistoryLimit != nil { in, out := &in.RevisionHistoryLimit, &out.RevisionHistoryLimit - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } if in.ProgressDeadlineSeconds != nil { in, out := &in.ProgressDeadlineSeconds, &out.ProgressDeadlineSeconds - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } return } @@ -403,12 +371,8 @@ func (in *DeploymentStatus) DeepCopyInto(out *DeploymentStatus) { } if in.CollisionCount != nil { in, out := &in.CollisionCount, &out.CollisionCount - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } return } @@ -428,12 +392,8 @@ func (in *DeploymentStrategy) DeepCopyInto(out *DeploymentStrategy) { *out = *in if in.RollingUpdate != nil { in, out := &in.RollingUpdate, &out.RollingUpdate - if *in == nil { - *out = nil - } else { - *out = new(RollingUpdateDeployment) - (*in).DeepCopyInto(*out) - } + *out = new(RollingUpdateDeployment) + (*in).DeepCopyInto(*out) } return } @@ -531,21 +491,13 @@ func (in *ReplicaSetSpec) DeepCopyInto(out *ReplicaSetSpec) { *out = *in if in.Replicas != nil { in, out := &in.Replicas, &out.Replicas - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } if in.Selector != nil { in, out := &in.Selector, &out.Selector - if *in == nil { - *out = nil - } else { - *out = new(v1.LabelSelector) - (*in).DeepCopyInto(*out) - } + *out = new(v1.LabelSelector) + (*in).DeepCopyInto(*out) } in.Template.DeepCopyInto(&out.Template) return @@ -589,12 +541,8 @@ func (in *RollingUpdateDaemonSet) DeepCopyInto(out *RollingUpdateDaemonSet) { *out = *in if in.MaxUnavailable != nil { in, out := &in.MaxUnavailable, &out.MaxUnavailable - if *in == nil { - *out = nil - } else { - *out = new(intstr.IntOrString) - **out = **in - } + *out = new(intstr.IntOrString) + **out = **in } return } @@ -614,21 +562,13 @@ func (in *RollingUpdateDeployment) DeepCopyInto(out *RollingUpdateDeployment) { *out = *in if in.MaxUnavailable != nil { in, out := &in.MaxUnavailable, &out.MaxUnavailable - if *in == nil { - *out = nil - } else { - *out = new(intstr.IntOrString) - **out = **in - } + *out = new(intstr.IntOrString) + **out = **in } if in.MaxSurge != nil { in, out := &in.MaxSurge, &out.MaxSurge - if *in == nil { - *out = nil - } else { - *out = new(intstr.IntOrString) - **out = **in - } + *out = new(intstr.IntOrString) + **out = **in } return } @@ -648,12 +588,8 @@ func (in *RollingUpdateStatefulSetStrategy) DeepCopyInto(out *RollingUpdateState *out = *in if in.Partition != nil { in, out := &in.Partition, &out.Partition - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } return } @@ -818,26 +754,18 @@ func (in *StatefulSetSpec) DeepCopyInto(out *StatefulSetSpec) { *out = *in if in.Replicas != nil { in, out := &in.Replicas, &out.Replicas - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } if in.Selector != nil { in, out := &in.Selector, &out.Selector - if *in == nil { - *out = nil - } else { - *out = new(v1.LabelSelector) - (*in).DeepCopyInto(*out) - } + *out = new(v1.LabelSelector) + (*in).DeepCopyInto(*out) } in.Template.DeepCopyInto(&out.Template) if in.VolumeClaimTemplates != nil { in, out := &in.VolumeClaimTemplates, &out.VolumeClaimTemplates - *out = make([]core_v1.PersistentVolumeClaim, len(*in)) + *out = make([]corev1.PersistentVolumeClaim, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } @@ -845,12 +773,8 @@ func (in *StatefulSetSpec) DeepCopyInto(out *StatefulSetSpec) { in.UpdateStrategy.DeepCopyInto(&out.UpdateStrategy) if in.RevisionHistoryLimit != nil { in, out := &in.RevisionHistoryLimit, &out.RevisionHistoryLimit - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } return } @@ -870,12 +794,8 @@ func (in *StatefulSetStatus) DeepCopyInto(out *StatefulSetStatus) { *out = *in if in.CollisionCount != nil { in, out := &in.CollisionCount, &out.CollisionCount - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } if in.Conditions != nil { in, out := &in.Conditions, &out.Conditions @@ -902,12 +822,8 @@ func (in *StatefulSetUpdateStrategy) DeepCopyInto(out *StatefulSetUpdateStrategy *out = *in if in.RollingUpdate != nil { in, out := &in.RollingUpdate, &out.RollingUpdate - if *in == nil { - *out = nil - } else { - *out = new(RollingUpdateStatefulSetStrategy) - (*in).DeepCopyInto(*out) - } + *out = new(RollingUpdateStatefulSetStrategy) + (*in).DeepCopyInto(*out) } return } diff --git a/vendor/k8s.io/api/auditregistration/OWNERS b/vendor/k8s.io/api/auditregistration/OWNERS new file mode 100644 index 000000000..c342e5e0c --- /dev/null +++ b/vendor/k8s.io/api/auditregistration/OWNERS @@ -0,0 +1,6 @@ +reviewers: +- sig-auth-audit-approvers +- sig-auth-audit-reviewers +labels: +- sig/auth + diff --git a/vendor/k8s.io/client-go/tools/bootstrap/token/api/doc.go b/vendor/k8s.io/api/auditregistration/v1alpha1/doc.go similarity index 63% rename from vendor/k8s.io/client-go/tools/bootstrap/token/api/doc.go rename to vendor/k8s.io/api/auditregistration/v1alpha1/doc.go index b9910c35a..c0d184a99 100644 --- a/vendor/k8s.io/client-go/tools/bootstrap/token/api/doc.go +++ b/vendor/k8s.io/api/auditregistration/v1alpha1/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2017 The Kubernetes Authors. +Copyright 2018 The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -14,7 +14,9 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Package api (pkg/bootstrap/token/api) contains constants and types needed for -// bootstrap tokens as maintained by the BootstrapSigner and TokenCleaner -// controllers (in pkg/controller/bootstrap) -package api // import "k8s.io/client-go/tools/bootstrap/token/api" +// +k8s:deepcopy-gen=package +// +k8s:openapi-gen=true + +// +groupName=auditregistration.k8s.io + +package v1alpha1 // import "k8s.io/api/auditregistration/v1alpha1" diff --git a/vendor/k8s.io/api/auditregistration/v1alpha1/generated.pb.go b/vendor/k8s.io/api/auditregistration/v1alpha1/generated.pb.go new file mode 100644 index 000000000..399d92b38 --- /dev/null +++ b/vendor/k8s.io/api/auditregistration/v1alpha1/generated.pb.go @@ -0,0 +1,1685 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: k8s.io/kubernetes/vendor/k8s.io/api/auditregistration/v1alpha1/generated.proto + +/* + Package v1alpha1 is a generated protocol buffer package. + + It is generated from these files: + k8s.io/kubernetes/vendor/k8s.io/api/auditregistration/v1alpha1/generated.proto + + It has these top-level messages: + AuditSink + AuditSinkList + AuditSinkSpec + Policy + ServiceReference + Webhook + WebhookClientConfig + WebhookThrottleConfig +*/ +package v1alpha1 + +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" + +import strings "strings" +import reflect "reflect" + +import io "io" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +func (m *AuditSink) Reset() { *m = AuditSink{} } +func (*AuditSink) ProtoMessage() {} +func (*AuditSink) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{0} } + +func (m *AuditSinkList) Reset() { *m = AuditSinkList{} } +func (*AuditSinkList) ProtoMessage() {} +func (*AuditSinkList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{1} } + +func (m *AuditSinkSpec) Reset() { *m = AuditSinkSpec{} } +func (*AuditSinkSpec) ProtoMessage() {} +func (*AuditSinkSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{2} } + +func (m *Policy) Reset() { *m = Policy{} } +func (*Policy) ProtoMessage() {} +func (*Policy) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{3} } + +func (m *ServiceReference) Reset() { *m = ServiceReference{} } +func (*ServiceReference) ProtoMessage() {} +func (*ServiceReference) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{4} } + +func (m *Webhook) Reset() { *m = Webhook{} } +func (*Webhook) ProtoMessage() {} +func (*Webhook) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{5} } + +func (m *WebhookClientConfig) Reset() { *m = WebhookClientConfig{} } +func (*WebhookClientConfig) ProtoMessage() {} +func (*WebhookClientConfig) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{6} } + +func (m *WebhookThrottleConfig) Reset() { *m = WebhookThrottleConfig{} } +func (*WebhookThrottleConfig) ProtoMessage() {} +func (*WebhookThrottleConfig) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{7} } + +func init() { + proto.RegisterType((*AuditSink)(nil), "k8s.io.api.auditregistration.v1alpha1.AuditSink") + proto.RegisterType((*AuditSinkList)(nil), "k8s.io.api.auditregistration.v1alpha1.AuditSinkList") + proto.RegisterType((*AuditSinkSpec)(nil), "k8s.io.api.auditregistration.v1alpha1.AuditSinkSpec") + proto.RegisterType((*Policy)(nil), "k8s.io.api.auditregistration.v1alpha1.Policy") + proto.RegisterType((*ServiceReference)(nil), "k8s.io.api.auditregistration.v1alpha1.ServiceReference") + proto.RegisterType((*Webhook)(nil), "k8s.io.api.auditregistration.v1alpha1.Webhook") + proto.RegisterType((*WebhookClientConfig)(nil), "k8s.io.api.auditregistration.v1alpha1.WebhookClientConfig") + proto.RegisterType((*WebhookThrottleConfig)(nil), "k8s.io.api.auditregistration.v1alpha1.WebhookThrottleConfig") +} +func (m *AuditSink) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AuditSink) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) + n1, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n1 + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) + n2, err := m.Spec.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n2 + return i, nil +} + +func (m *AuditSinkList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AuditSinkList) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) + n3, err := m.ListMeta.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n3 + if len(m.Items) > 0 { + for _, msg := range m.Items { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + +func (m *AuditSinkSpec) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AuditSinkSpec) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Policy.Size())) + n4, err := m.Policy.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n4 + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Webhook.Size())) + n5, err := m.Webhook.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n5 + return i, nil +} + +func (m *Policy) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Policy) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Level))) + i += copy(dAtA[i:], m.Level) + if len(m.Stages) > 0 { + for _, s := range m.Stages { + dAtA[i] = 0x12 + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } + return i, nil +} + +func (m *ServiceReference) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ServiceReference) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace))) + i += copy(dAtA[i:], m.Namespace) + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i += copy(dAtA[i:], m.Name) + if m.Path != nil { + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Path))) + i += copy(dAtA[i:], *m.Path) + } + return i, nil +} + +func (m *Webhook) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Webhook) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Throttle != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Throttle.Size())) + n6, err := m.Throttle.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n6 + } + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ClientConfig.Size())) + n7, err := m.ClientConfig.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n7 + return i, nil +} + +func (m *WebhookClientConfig) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *WebhookClientConfig) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.URL != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.URL))) + i += copy(dAtA[i:], *m.URL) + } + if m.Service != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Service.Size())) + n8, err := m.Service.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n8 + } + if m.CABundle != nil { + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.CABundle))) + i += copy(dAtA[i:], m.CABundle) + } + return i, nil +} + +func (m *WebhookThrottleConfig) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *WebhookThrottleConfig) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.QPS != nil { + dAtA[i] = 0x8 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(*m.QPS)) + } + if m.Burst != nil { + dAtA[i] = 0x10 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(*m.Burst)) + } + return i, nil +} + +func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return offset + 1 +} +func (m *AuditSink) Size() (n int) { + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Spec.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *AuditSinkList) Size() (n int) { + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *AuditSinkSpec) Size() (n int) { + var l int + _ = l + l = m.Policy.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Webhook.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *Policy) Size() (n int) { + var l int + _ = l + l = len(m.Level) + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Stages) > 0 { + for _, s := range m.Stages { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *ServiceReference) Size() (n int) { + var l int + _ = l + l = len(m.Namespace) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + if m.Path != nil { + l = len(*m.Path) + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *Webhook) Size() (n int) { + var l int + _ = l + if m.Throttle != nil { + l = m.Throttle.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + l = m.ClientConfig.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *WebhookClientConfig) Size() (n int) { + var l int + _ = l + if m.URL != nil { + l = len(*m.URL) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Service != nil { + l = m.Service.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.CABundle != nil { + l = len(m.CABundle) + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *WebhookThrottleConfig) Size() (n int) { + var l int + _ = l + if m.QPS != nil { + n += 1 + sovGenerated(uint64(*m.QPS)) + } + if m.Burst != nil { + n += 1 + sovGenerated(uint64(*m.Burst)) + } + return n +} + +func sovGenerated(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozGenerated(x uint64) (n int) { + return sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (this *AuditSink) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&AuditSink{`, + `ObjectMeta:` + strings.Replace(strings.Replace(this.ObjectMeta.String(), "ObjectMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "AuditSinkSpec", "AuditSinkSpec", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *AuditSinkList) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&AuditSinkList{`, + `ListMeta:` + strings.Replace(strings.Replace(this.ListMeta.String(), "ListMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Items), "AuditSink", "AuditSink", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *AuditSinkSpec) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&AuditSinkSpec{`, + `Policy:` + strings.Replace(strings.Replace(this.Policy.String(), "Policy", "Policy", 1), `&`, ``, 1) + `,`, + `Webhook:` + strings.Replace(strings.Replace(this.Webhook.String(), "Webhook", "Webhook", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *Policy) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Policy{`, + `Level:` + fmt.Sprintf("%v", this.Level) + `,`, + `Stages:` + fmt.Sprintf("%v", this.Stages) + `,`, + `}`, + }, "") + return s +} +func (this *ServiceReference) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ServiceReference{`, + `Namespace:` + fmt.Sprintf("%v", this.Namespace) + `,`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `Path:` + valueToStringGenerated(this.Path) + `,`, + `}`, + }, "") + return s +} +func (this *Webhook) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Webhook{`, + `Throttle:` + strings.Replace(fmt.Sprintf("%v", this.Throttle), "WebhookThrottleConfig", "WebhookThrottleConfig", 1) + `,`, + `ClientConfig:` + strings.Replace(strings.Replace(this.ClientConfig.String(), "WebhookClientConfig", "WebhookClientConfig", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *WebhookClientConfig) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&WebhookClientConfig{`, + `URL:` + valueToStringGenerated(this.URL) + `,`, + `Service:` + strings.Replace(fmt.Sprintf("%v", this.Service), "ServiceReference", "ServiceReference", 1) + `,`, + `CABundle:` + valueToStringGenerated(this.CABundle) + `,`, + `}`, + }, "") + return s +} +func (this *WebhookThrottleConfig) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&WebhookThrottleConfig{`, + `QPS:` + valueToStringGenerated(this.QPS) + `,`, + `Burst:` + valueToStringGenerated(this.Burst) + `,`, + `}`, + }, "") + return s +} +func valueToStringGenerated(v interface{}) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("*%v", pv) +} +func (m *AuditSink) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AuditSink: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AuditSink: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AuditSinkList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AuditSinkList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AuditSinkList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, AuditSink{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AuditSinkSpec) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AuditSinkSpec: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AuditSinkSpec: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Policy", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Policy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Webhook", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Webhook.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Policy) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Policy: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Policy: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Level", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Level = Level(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Stages", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Stages = append(m.Stages, Stage(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ServiceReference) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ServiceReference: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ServiceReference: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Namespace", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Namespace = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Path", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Path = &s + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Webhook) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Webhook: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Webhook: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Throttle", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Throttle == nil { + m.Throttle = &WebhookThrottleConfig{} + } + if err := m.Throttle.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ClientConfig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ClientConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *WebhookClientConfig) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: WebhookClientConfig: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: WebhookClientConfig: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field URL", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.URL = &s + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Service", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Service == nil { + m.Service = &ServiceReference{} + } + if err := m.Service.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CABundle", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + byteLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CABundle = append(m.CABundle[:0], dAtA[iNdEx:postIndex]...) + if m.CABundle == nil { + m.CABundle = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *WebhookThrottleConfig) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: WebhookThrottleConfig: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: WebhookThrottleConfig: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field QPS", wireType) + } + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.QPS = &v + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Burst", wireType) + } + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Burst = &v + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipGenerated(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + return iNdEx, nil + case 1: + iNdEx += 8 + return iNdEx, nil + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + iNdEx += length + if length < 0 { + return 0, ErrInvalidLengthGenerated + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + innerWire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + innerWireType := int(innerWire & 0x7) + if innerWireType == 4 { + break + } + next, err := skipGenerated(dAtA[start:]) + if err != nil { + return 0, err + } + iNdEx = start + next + } + return iNdEx, nil + case 4: + return iNdEx, nil + case 5: + iNdEx += 4 + return iNdEx, nil + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + } + panic("unreachable") +} + +var ( + ErrInvalidLengthGenerated = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowGenerated = fmt.Errorf("proto: integer overflow") +) + +func init() { + proto.RegisterFile("k8s.io/kubernetes/vendor/k8s.io/api/auditregistration/v1alpha1/generated.proto", fileDescriptorGenerated) +} + +var fileDescriptorGenerated = []byte{ + // 747 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x52, 0x41, 0x6f, 0xd3, 0x48, + 0x14, 0x8e, 0x9b, 0xa4, 0x49, 0xa6, 0xe9, 0x6e, 0x77, 0xba, 0xbb, 0xca, 0x56, 0x2b, 0xa7, 0xb2, + 0xb4, 0x52, 0xa5, 0xdd, 0x8e, 0xb7, 0xa8, 0x02, 0x84, 0xb8, 0xd4, 0x3d, 0x21, 0x95, 0x52, 0x26, + 0x14, 0x04, 0x42, 0x88, 0x89, 0xf3, 0x62, 0x0f, 0x49, 0x6c, 0x63, 0x8f, 0x83, 0x7a, 0x43, 0xe2, + 0x0f, 0xf0, 0x7b, 0xb8, 0x21, 0x81, 0xd4, 0x63, 0x8f, 0x3d, 0x55, 0x34, 0x1c, 0xf8, 0x0f, 0x9c, + 0xd0, 0x8c, 0xc7, 0x49, 0x68, 0x8a, 0x48, 0x6f, 0x33, 0xdf, 0xbc, 0xef, 0x7b, 0xdf, 0xf7, 0xde, + 0xa0, 0xfd, 0xde, 0xcd, 0x84, 0xf0, 0xd0, 0xee, 0xa5, 0x6d, 0x88, 0x03, 0x10, 0x90, 0xd8, 0x43, + 0x08, 0x3a, 0x61, 0x6c, 0xeb, 0x07, 0x16, 0x71, 0x9b, 0xa5, 0x1d, 0x2e, 0x62, 0xf0, 0x78, 0x22, + 0x62, 0x26, 0x78, 0x18, 0xd8, 0xc3, 0x2d, 0xd6, 0x8f, 0x7c, 0xb6, 0x65, 0x7b, 0x10, 0x40, 0xcc, + 0x04, 0x74, 0x48, 0x14, 0x87, 0x22, 0xc4, 0xff, 0x64, 0x34, 0xc2, 0x22, 0x4e, 0x66, 0x68, 0x24, + 0xa7, 0xad, 0x6d, 0x7a, 0x5c, 0xf8, 0x69, 0x9b, 0xb8, 0xe1, 0xc0, 0xf6, 0x42, 0x2f, 0xb4, 0x15, + 0xbb, 0x9d, 0x76, 0xd5, 0x4d, 0x5d, 0xd4, 0x29, 0x53, 0x5d, 0xdb, 0x9e, 0x98, 0x19, 0x30, 0xd7, + 0xe7, 0x01, 0xc4, 0x47, 0x76, 0xd4, 0xf3, 0x24, 0x90, 0xd8, 0x03, 0x10, 0xcc, 0x1e, 0xce, 0x78, + 0x59, 0xb3, 0x7f, 0xc4, 0x8a, 0xd3, 0x40, 0xf0, 0x01, 0xcc, 0x10, 0xae, 0xff, 0x8c, 0x90, 0xb8, + 0x3e, 0x0c, 0xd8, 0x45, 0x9e, 0xf5, 0xd1, 0x40, 0xb5, 0x1d, 0x19, 0xb6, 0xc5, 0x83, 0x1e, 0x7e, + 0x8e, 0xaa, 0xd2, 0x51, 0x87, 0x09, 0xd6, 0x30, 0xd6, 0x8d, 0x8d, 0xa5, 0x6b, 0xff, 0x93, 0xc9, + 0x54, 0xc6, 0xc2, 0x24, 0xea, 0x79, 0x12, 0x48, 0x88, 0xac, 0x26, 0xc3, 0x2d, 0x72, 0xaf, 0xfd, + 0x02, 0x5c, 0x71, 0x17, 0x04, 0x73, 0xf0, 0xf1, 0x59, 0xb3, 0x30, 0x3a, 0x6b, 0xa2, 0x09, 0x46, + 0xc7, 0xaa, 0xf8, 0x21, 0x2a, 0x25, 0x11, 0xb8, 0x8d, 0x05, 0xa5, 0xbe, 0x4d, 0xe6, 0x9a, 0x39, + 0x19, 0x3b, 0x6c, 0x45, 0xe0, 0x3a, 0x75, 0xdd, 0xa1, 0x24, 0x6f, 0x54, 0xe9, 0x59, 0x1f, 0x0c, + 0xb4, 0x3c, 0xae, 0xda, 0xe3, 0x89, 0xc0, 0x4f, 0x67, 0xb2, 0x90, 0xf9, 0xb2, 0x48, 0xb6, 0x4a, + 0xb2, 0xa2, 0xfb, 0x54, 0x73, 0x64, 0x2a, 0xc7, 0x21, 0x2a, 0x73, 0x01, 0x83, 0xa4, 0xb1, 0xb0, + 0x5e, 0xbc, 0x30, 0xa6, 0xb9, 0x82, 0x38, 0xcb, 0x5a, 0xbc, 0x7c, 0x47, 0xca, 0xd0, 0x4c, 0xcd, + 0x7a, 0x3f, 0x1d, 0x43, 0xc6, 0xc3, 0x87, 0x68, 0x31, 0x0a, 0xfb, 0xdc, 0x3d, 0xd2, 0x21, 0x36, + 0xe7, 0xec, 0x74, 0xa0, 0x48, 0xce, 0x2f, 0xba, 0xcd, 0x62, 0x76, 0xa7, 0x5a, 0x0c, 0x3f, 0x46, + 0x95, 0x57, 0xd0, 0xf6, 0xc3, 0xb0, 0xa7, 0x57, 0x41, 0xe6, 0xd4, 0x7d, 0x94, 0xb1, 0x9c, 0x5f, + 0xb5, 0x70, 0x45, 0x03, 0x34, 0xd7, 0xb3, 0x5c, 0xa4, 0x9b, 0xe1, 0xff, 0x50, 0xb9, 0x0f, 0x43, + 0xe8, 0x2b, 0xeb, 0x35, 0xe7, 0xcf, 0x3c, 0xf2, 0x9e, 0x04, 0xbf, 0xe6, 0x07, 0x9a, 0x15, 0xe1, + 0x7f, 0xd1, 0x62, 0x22, 0x98, 0x07, 0xd9, 0x4c, 0x6b, 0xce, 0xaa, 0xb4, 0xdd, 0x52, 0x88, 0xac, + 0x55, 0x27, 0xaa, 0x4b, 0xac, 0x37, 0x06, 0x5a, 0x69, 0x41, 0x3c, 0xe4, 0x2e, 0x50, 0xe8, 0x42, + 0x0c, 0x81, 0x0b, 0xd8, 0x46, 0xb5, 0x80, 0x0d, 0x20, 0x89, 0x98, 0x0b, 0xba, 0xe7, 0x6f, 0xba, + 0x67, 0x6d, 0x3f, 0x7f, 0xa0, 0x93, 0x1a, 0xbc, 0x8e, 0x4a, 0xf2, 0xa2, 0x46, 0x50, 0x9b, 0xfc, + 0x2b, 0x59, 0x4b, 0xd5, 0x0b, 0xfe, 0x1b, 0x95, 0x22, 0x26, 0xfc, 0x46, 0x51, 0x55, 0x54, 0xe5, + 0xeb, 0x01, 0x13, 0x3e, 0x55, 0xa8, 0xf5, 0xc5, 0x40, 0x79, 0x7e, 0xdc, 0x45, 0x55, 0xe1, 0xc7, + 0xa1, 0x10, 0x7d, 0xd0, 0xab, 0xba, 0x7d, 0xb5, 0x91, 0x3e, 0xd0, 0xec, 0xdd, 0x30, 0xe8, 0x72, + 0xcf, 0xa9, 0xcb, 0x9f, 0x97, 0x63, 0x74, 0xac, 0x8d, 0x05, 0xaa, 0xbb, 0x7d, 0x0e, 0x81, 0xc8, + 0xea, 0xf4, 0xfa, 0x6e, 0x5d, 0xad, 0xd7, 0xee, 0x94, 0x82, 0xf3, 0xbb, 0xce, 0x5d, 0x9f, 0x46, + 0xe9, 0x77, 0x5d, 0xac, 0x77, 0x06, 0x5a, 0xbd, 0x84, 0x8b, 0xff, 0x42, 0xc5, 0x34, 0xce, 0x17, + 0x5c, 0x19, 0x9d, 0x35, 0x8b, 0x87, 0x74, 0x8f, 0x4a, 0x0c, 0x3f, 0x43, 0x95, 0x24, 0xdb, 0x90, + 0xf6, 0x78, 0x63, 0x4e, 0x8f, 0x17, 0xf7, 0xea, 0x2c, 0xc9, 0x7f, 0x96, 0xa3, 0xb9, 0x28, 0xde, + 0x40, 0x55, 0x97, 0x39, 0x69, 0xd0, 0xe9, 0x83, 0x5a, 0x4f, 0x3d, 0x1b, 0xd9, 0xee, 0x4e, 0x86, + 0xd1, 0xf1, 0xab, 0xd5, 0x42, 0x7f, 0x5c, 0x3a, 0x63, 0xe9, 0xfe, 0x65, 0x94, 0x28, 0xf7, 0xc5, + 0xcc, 0xfd, 0xfd, 0x83, 0x16, 0x95, 0x18, 0x6e, 0xa2, 0x72, 0x3b, 0x8d, 0x13, 0xa1, 0xbc, 0x17, + 0x9d, 0x9a, 0xfc, 0xb7, 0x8e, 0x04, 0x68, 0x86, 0x3b, 0xe4, 0xf8, 0xdc, 0x2c, 0x9c, 0x9c, 0x9b, + 0x85, 0xd3, 0x73, 0xb3, 0xf0, 0x7a, 0x64, 0x1a, 0xc7, 0x23, 0xd3, 0x38, 0x19, 0x99, 0xc6, 0xe9, + 0xc8, 0x34, 0x3e, 0x8d, 0x4c, 0xe3, 0xed, 0x67, 0xb3, 0xf0, 0xa4, 0x9a, 0xa7, 0xfa, 0x16, 0x00, + 0x00, 0xff, 0xff, 0x55, 0x1b, 0x03, 0x56, 0xaf, 0x06, 0x00, 0x00, +} diff --git a/vendor/k8s.io/api/auditregistration/v1alpha1/generated.proto b/vendor/k8s.io/api/auditregistration/v1alpha1/generated.proto new file mode 100644 index 000000000..70801a6c5 --- /dev/null +++ b/vendor/k8s.io/api/auditregistration/v1alpha1/generated.proto @@ -0,0 +1,158 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + + +// This file was autogenerated by go-to-protobuf. Do not edit it manually! + +syntax = 'proto2'; + +package k8s.io.api.auditregistration.v1alpha1; + +import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; +import "k8s.io/apimachinery/pkg/runtime/generated.proto"; +import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; + +// Package-wide variables from generator "generated". +option go_package = "v1alpha1"; + +// AuditSink represents a cluster level audit sink +message AuditSink { + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // Spec defines the audit configuration spec + optional AuditSinkSpec spec = 2; +} + +// AuditSinkList is a list of AuditSink items. +message AuditSinkList { + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + // List of audit configurations. + repeated AuditSink items = 2; +} + +// AuditSinkSpec holds the spec for the audit sink +message AuditSinkSpec { + // Policy defines the policy for selecting which events should be sent to the webhook + // required + optional Policy policy = 1; + + // Webhook to send events + // required + optional Webhook webhook = 2; +} + +// Policy defines the configuration of how audit events are logged +message Policy { + // The Level that all requests are recorded at. + // available options: None, Metadata, Request, RequestResponse + // required + optional string level = 1; + + // Stages is a list of stages for which events are created. + // +optional + repeated string stages = 2; +} + +// ServiceReference holds a reference to Service.legacy.k8s.io +message ServiceReference { + // `namespace` is the namespace of the service. + // Required + optional string namespace = 1; + + // `name` is the name of the service. + // Required + optional string name = 2; + + // `path` is an optional URL path which will be sent in any request to + // this service. + // +optional + optional string path = 3; +} + +// Webhook holds the configuration of the webhook +message Webhook { + // Throttle holds the options for throttling the webhook + // +optional + optional WebhookThrottleConfig throttle = 1; + + // ClientConfig holds the connection parameters for the webhook + // required + optional WebhookClientConfig clientConfig = 2; +} + +// WebhookClientConfig contains the information to make a connection with the webhook +message WebhookClientConfig { + // `url` gives the location of the webhook, in standard URL form + // (`scheme://host:port/path`). Exactly one of `url` or `service` + // must be specified. + // + // The `host` should not refer to a service running in the cluster; use + // the `service` field instead. The host might be resolved via external + // DNS in some apiservers (e.g., `kube-apiserver` cannot resolve + // in-cluster DNS as that would be a layering violation). `host` may + // also be an IP address. + // + // Please note that using `localhost` or `127.0.0.1` as a `host` is + // risky unless you take great care to run this webhook on all hosts + // which run an apiserver which might need to make calls to this + // webhook. Such installs are likely to be non-portable, i.e., not easy + // to turn up in a new cluster. + // + // The scheme must be "https"; the URL must begin with "https://". + // + // A path is optional, and if present may be any string permissible in + // a URL. You may use the path to pass an arbitrary string to the + // webhook, for example, a cluster identifier. + // + // Attempting to use a user or basic auth e.g. "user:password@" is not + // allowed. Fragments ("#...") and query parameters ("?...") are not + // allowed, either. + // + // +optional + optional string url = 1; + + // `service` is a reference to the service for this webhook. Either + // `service` or `url` must be specified. + // + // If the webhook is running within the cluster, then you should use `service`. + // + // Port 443 will be used if it is open, otherwise it is an error. + // + // +optional + optional ServiceReference service = 2; + + // `caBundle` is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. + // If unspecified, system trust roots on the apiserver are used. + // +optional + optional bytes caBundle = 3; +} + +// WebhookThrottleConfig holds the configuration for throttling events +message WebhookThrottleConfig { + // ThrottleQPS maximum number of batches per second + // default 10 QPS + // +optional + optional int64 qps = 1; + + // ThrottleBurst is the maximum number of events sent at the same moment + // default 15 QPS + // +optional + optional int64 burst = 2; +} + diff --git a/vendor/k8s.io/api/auditregistration/v1alpha1/register.go b/vendor/k8s.io/api/auditregistration/v1alpha1/register.go new file mode 100644 index 000000000..d6271608f --- /dev/null +++ b/vendor/k8s.io/api/auditregistration/v1alpha1/register.go @@ -0,0 +1,56 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package v1alpha1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +// GroupName is the group name use in this package +const GroupName = "auditregistration.k8s.io" + +// SchemeGroupVersion is group version used to register these objects +var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1alpha1"} + +// Resource takes an unqualified resource and returns a Group qualified GroupResource +func Resource(resource string) schema.GroupResource { + return SchemeGroupVersion.WithResource(resource).GroupResource() +} + +var ( + SchemeBuilder runtime.SchemeBuilder + localSchemeBuilder = &SchemeBuilder + AddToScheme = localSchemeBuilder.AddToScheme +) + +func init() { + // We only register manually written functions here. The registration of the + // generated functions takes place in the generated files. The separation + // makes the code compile even when the generated files are missing. + localSchemeBuilder.Register(addKnownTypes) +} + +func addKnownTypes(scheme *runtime.Scheme) error { + scheme.AddKnownTypes(SchemeGroupVersion, + &AuditSink{}, + &AuditSinkList{}, + ) + metav1.AddToGroupVersion(scheme, SchemeGroupVersion) + return nil +} diff --git a/vendor/k8s.io/api/auditregistration/v1alpha1/types.go b/vendor/k8s.io/api/auditregistration/v1alpha1/types.go new file mode 100644 index 000000000..af31cfe27 --- /dev/null +++ b/vendor/k8s.io/api/auditregistration/v1alpha1/types.go @@ -0,0 +1,194 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// +k8s:openapi-gen=true + +package v1alpha1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// Level defines the amount of information logged during auditing +type Level string + +// Valid audit levels +const ( + // LevelNone disables auditing + LevelNone Level = "None" + // LevelMetadata provides the basic level of auditing. + LevelMetadata Level = "Metadata" + // LevelRequest provides Metadata level of auditing, and additionally + // logs the request object (does not apply for non-resource requests). + LevelRequest Level = "Request" + // LevelRequestResponse provides Request level of auditing, and additionally + // logs the response object (does not apply for non-resource requests and watches). + LevelRequestResponse Level = "RequestResponse" +) + +// Stage defines the stages in request handling during which audit events may be generated. +type Stage string + +// Valid audit stages. +const ( + // The stage for events generated after the audit handler receives the request, but before it + // is delegated down the handler chain. + StageRequestReceived = "RequestReceived" + // The stage for events generated after the response headers are sent, but before the response body + // is sent. This stage is only generated for long-running requests (e.g. watch). + StageResponseStarted = "ResponseStarted" + // The stage for events generated after the response body has been completed, and no more bytes + // will be sent. + StageResponseComplete = "ResponseComplete" + // The stage for events generated when a panic occurred. + StagePanic = "Panic" +) + +// +genclient +// +genclient:nonNamespaced +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// AuditSink represents a cluster level audit sink +type AuditSink struct { + metav1.TypeMeta `json:",inline"` + // +optional + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + // Spec defines the audit configuration spec + Spec AuditSinkSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` +} + +// AuditSinkSpec holds the spec for the audit sink +type AuditSinkSpec struct { + // Policy defines the policy for selecting which events should be sent to the webhook + // required + Policy Policy `json:"policy" protobuf:"bytes,1,opt,name=policy"` + + // Webhook to send events + // required + Webhook Webhook `json:"webhook" protobuf:"bytes,2,opt,name=webhook"` +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// AuditSinkList is a list of AuditSink items. +type AuditSinkList struct { + metav1.TypeMeta `json:",inline"` + // +optional + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + // List of audit configurations. + Items []AuditSink `json:"items" protobuf:"bytes,2,rep,name=items"` +} + +// Policy defines the configuration of how audit events are logged +type Policy struct { + // The Level that all requests are recorded at. + // available options: None, Metadata, Request, RequestResponse + // required + Level Level `json:"level" protobuf:"bytes,1,opt,name=level"` + + // Stages is a list of stages for which events are created. + // +optional + Stages []Stage `json:"stages" protobuf:"bytes,2,opt,name=stages"` +} + +// Webhook holds the configuration of the webhook +type Webhook struct { + // Throttle holds the options for throttling the webhook + // +optional + Throttle *WebhookThrottleConfig `json:"throttle,omitempty" protobuf:"bytes,1,opt,name=throttle"` + + // ClientConfig holds the connection parameters for the webhook + // required + ClientConfig WebhookClientConfig `json:"clientConfig" protobuf:"bytes,2,opt,name=clientConfig"` +} + +// WebhookThrottleConfig holds the configuration for throttling events +type WebhookThrottleConfig struct { + // ThrottleQPS maximum number of batches per second + // default 10 QPS + // +optional + QPS *int64 `json:"qps,omitempty" protobuf:"bytes,1,opt,name=qps"` + + // ThrottleBurst is the maximum number of events sent at the same moment + // default 15 QPS + // +optional + Burst *int64 `json:"burst,omitempty" protobuf:"bytes,2,opt,name=burst"` +} + +// WebhookClientConfig contains the information to make a connection with the webhook +type WebhookClientConfig struct { + // `url` gives the location of the webhook, in standard URL form + // (`scheme://host:port/path`). Exactly one of `url` or `service` + // must be specified. + // + // The `host` should not refer to a service running in the cluster; use + // the `service` field instead. The host might be resolved via external + // DNS in some apiservers (e.g., `kube-apiserver` cannot resolve + // in-cluster DNS as that would be a layering violation). `host` may + // also be an IP address. + // + // Please note that using `localhost` or `127.0.0.1` as a `host` is + // risky unless you take great care to run this webhook on all hosts + // which run an apiserver which might need to make calls to this + // webhook. Such installs are likely to be non-portable, i.e., not easy + // to turn up in a new cluster. + // + // The scheme must be "https"; the URL must begin with "https://". + // + // A path is optional, and if present may be any string permissible in + // a URL. You may use the path to pass an arbitrary string to the + // webhook, for example, a cluster identifier. + // + // Attempting to use a user or basic auth e.g. "user:password@" is not + // allowed. Fragments ("#...") and query parameters ("?...") are not + // allowed, either. + // + // +optional + URL *string `json:"url,omitempty" protobuf:"bytes,1,opt,name=url"` + + // `service` is a reference to the service for this webhook. Either + // `service` or `url` must be specified. + // + // If the webhook is running within the cluster, then you should use `service`. + // + // Port 443 will be used if it is open, otherwise it is an error. + // + // +optional + Service *ServiceReference `json:"service,omitempty" protobuf:"bytes,2,opt,name=service"` + + // `caBundle` is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. + // If unspecified, system trust roots on the apiserver are used. + // +optional + CABundle []byte `json:"caBundle,omitempty" protobuf:"bytes,3,opt,name=caBundle"` +} + +// ServiceReference holds a reference to Service.legacy.k8s.io +type ServiceReference struct { + // `namespace` is the namespace of the service. + // Required + Namespace string `json:"namespace" protobuf:"bytes,1,opt,name=namespace"` + + // `name` is the name of the service. + // Required + Name string `json:"name" protobuf:"bytes,2,opt,name=name"` + + // `path` is an optional URL path which will be sent in any request to + // this service. + // +optional + Path *string `json:"path,omitempty" protobuf:"bytes,3,opt,name=path"` +} diff --git a/vendor/k8s.io/api/auditregistration/v1alpha1/types_swagger_doc_generated.go b/vendor/k8s.io/api/auditregistration/v1alpha1/types_swagger_doc_generated.go new file mode 100644 index 000000000..edd608f3b --- /dev/null +++ b/vendor/k8s.io/api/auditregistration/v1alpha1/types_swagger_doc_generated.go @@ -0,0 +1,110 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package v1alpha1 + +// This file contains a collection of methods that can be used from go-restful to +// generate Swagger API documentation for its models. Please read this PR for more +// information on the implementation: https://github.com/emicklei/go-restful/pull/215 +// +// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if +// they are on one line! For multiple line or blocks that you want to ignore use ---. +// Any context after a --- is ignored. +// +// Those methods can be generated by using hack/update-generated-swagger-docs.sh + +// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT. +var map_AuditSink = map[string]string{ + "": "AuditSink represents a cluster level audit sink", + "spec": "Spec defines the audit configuration spec", +} + +func (AuditSink) SwaggerDoc() map[string]string { + return map_AuditSink +} + +var map_AuditSinkList = map[string]string{ + "": "AuditSinkList is a list of AuditSink items.", + "items": "List of audit configurations.", +} + +func (AuditSinkList) SwaggerDoc() map[string]string { + return map_AuditSinkList +} + +var map_AuditSinkSpec = map[string]string{ + "": "AuditSinkSpec holds the spec for the audit sink", + "policy": "Policy defines the policy for selecting which events should be sent to the webhook required", + "webhook": "Webhook to send events required", +} + +func (AuditSinkSpec) SwaggerDoc() map[string]string { + return map_AuditSinkSpec +} + +var map_Policy = map[string]string{ + "": "Policy defines the configuration of how audit events are logged", + "level": "The Level that all requests are recorded at. available options: None, Metadata, Request, RequestResponse required", + "stages": "Stages is a list of stages for which events are created.", +} + +func (Policy) SwaggerDoc() map[string]string { + return map_Policy +} + +var map_ServiceReference = map[string]string{ + "": "ServiceReference holds a reference to Service.legacy.k8s.io", + "namespace": "`namespace` is the namespace of the service. Required", + "name": "`name` is the name of the service. Required", + "path": "`path` is an optional URL path which will be sent in any request to this service.", +} + +func (ServiceReference) SwaggerDoc() map[string]string { + return map_ServiceReference +} + +var map_Webhook = map[string]string{ + "": "Webhook holds the configuration of the webhook", + "throttle": "Throttle holds the options for throttling the webhook", + "clientConfig": "ClientConfig holds the connection parameters for the webhook required", +} + +func (Webhook) SwaggerDoc() map[string]string { + return map_Webhook +} + +var map_WebhookClientConfig = map[string]string{ + "": "WebhookClientConfig contains the information to make a connection with the webhook", + "url": "`url` gives the location of the webhook, in standard URL form (`scheme://host:port/path`). Exactly one of `url` or `service` must be specified.\n\nThe `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address.\n\nPlease note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.\n\nThe scheme must be \"https\"; the URL must begin with \"https://\".\n\nA path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.\n\nAttempting to use a user or basic auth e.g. \"user:password@\" is not allowed. Fragments (\"#...\") and query parameters (\"?...\") are not allowed, either.", + "service": "`service` is a reference to the service for this webhook. Either `service` or `url` must be specified.\n\nIf the webhook is running within the cluster, then you should use `service`.\n\nPort 443 will be used if it is open, otherwise it is an error.", + "caBundle": "`caBundle` is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. If unspecified, system trust roots on the apiserver are used.", +} + +func (WebhookClientConfig) SwaggerDoc() map[string]string { + return map_WebhookClientConfig +} + +var map_WebhookThrottleConfig = map[string]string{ + "": "WebhookThrottleConfig holds the configuration for throttling events", + "qps": "ThrottleQPS maximum number of batches per second default 10 QPS", + "burst": "ThrottleBurst is the maximum number of events sent at the same moment default 15 QPS", +} + +func (WebhookThrottleConfig) SwaggerDoc() map[string]string { + return map_WebhookThrottleConfig +} + +// AUTO-GENERATED FUNCTIONS END HERE diff --git a/vendor/k8s.io/api/auditregistration/v1alpha1/zz_generated.deepcopy.go b/vendor/k8s.io/api/auditregistration/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 000000000..e71deffad --- /dev/null +++ b/vendor/k8s.io/api/auditregistration/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,224 @@ +// +build !ignore_autogenerated + +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by deepcopy-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + runtime "k8s.io/apimachinery/pkg/runtime" +) + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AuditSink) DeepCopyInto(out *AuditSink) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuditSink. +func (in *AuditSink) DeepCopy() *AuditSink { + if in == nil { + return nil + } + out := new(AuditSink) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *AuditSink) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AuditSinkList) DeepCopyInto(out *AuditSinkList) { + *out = *in + out.TypeMeta = in.TypeMeta + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]AuditSink, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuditSinkList. +func (in *AuditSinkList) DeepCopy() *AuditSinkList { + if in == nil { + return nil + } + out := new(AuditSinkList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *AuditSinkList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AuditSinkSpec) DeepCopyInto(out *AuditSinkSpec) { + *out = *in + in.Policy.DeepCopyInto(&out.Policy) + in.Webhook.DeepCopyInto(&out.Webhook) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuditSinkSpec. +func (in *AuditSinkSpec) DeepCopy() *AuditSinkSpec { + if in == nil { + return nil + } + out := new(AuditSinkSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Policy) DeepCopyInto(out *Policy) { + *out = *in + if in.Stages != nil { + in, out := &in.Stages, &out.Stages + *out = make([]Stage, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Policy. +func (in *Policy) DeepCopy() *Policy { + if in == nil { + return nil + } + out := new(Policy) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServiceReference) DeepCopyInto(out *ServiceReference) { + *out = *in + if in.Path != nil { + in, out := &in.Path, &out.Path + *out = new(string) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceReference. +func (in *ServiceReference) DeepCopy() *ServiceReference { + if in == nil { + return nil + } + out := new(ServiceReference) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Webhook) DeepCopyInto(out *Webhook) { + *out = *in + if in.Throttle != nil { + in, out := &in.Throttle, &out.Throttle + *out = new(WebhookThrottleConfig) + (*in).DeepCopyInto(*out) + } + in.ClientConfig.DeepCopyInto(&out.ClientConfig) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Webhook. +func (in *Webhook) DeepCopy() *Webhook { + if in == nil { + return nil + } + out := new(Webhook) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *WebhookClientConfig) DeepCopyInto(out *WebhookClientConfig) { + *out = *in + if in.URL != nil { + in, out := &in.URL, &out.URL + *out = new(string) + **out = **in + } + if in.Service != nil { + in, out := &in.Service, &out.Service + *out = new(ServiceReference) + (*in).DeepCopyInto(*out) + } + if in.CABundle != nil { + in, out := &in.CABundle, &out.CABundle + *out = make([]byte, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WebhookClientConfig. +func (in *WebhookClientConfig) DeepCopy() *WebhookClientConfig { + if in == nil { + return nil + } + out := new(WebhookClientConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *WebhookThrottleConfig) DeepCopyInto(out *WebhookThrottleConfig) { + *out = *in + if in.QPS != nil { + in, out := &in.QPS, &out.QPS + *out = new(int64) + **out = **in + } + if in.Burst != nil { + in, out := &in.Burst, &out.Burst + *out = new(int64) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WebhookThrottleConfig. +func (in *WebhookThrottleConfig) DeepCopy() *WebhookThrottleConfig { + if in == nil { + return nil + } + out := new(WebhookThrottleConfig) + in.DeepCopyInto(out) + return out +} diff --git a/vendor/k8s.io/api/authentication/OWNERS b/vendor/k8s.io/api/authentication/OWNERS index 2bdfd0ce5..1b888f0b8 100755 --- a/vendor/k8s.io/api/authentication/OWNERS +++ b/vendor/k8s.io/api/authentication/OWNERS @@ -1,9 +1,6 @@ reviewers: -- liggitt -- lavalamp -- wojtek-t -- deads2k -- sttts -- mbohlool -- jianhuiz -- enj +- sig-auth-authenticators-approvers +- sig-auth-authenticators-reviewers +labels: +- sig/auth + diff --git a/vendor/k8s.io/api/authentication/v1/BUILD b/vendor/k8s.io/api/authentication/v1/BUILD deleted file mode 100644 index 26e557e46..000000000 --- a/vendor/k8s.io/api/authentication/v1/BUILD +++ /dev/null @@ -1,46 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "generated.pb.go", - "register.go", - "types.go", - "types_swagger_doc_generated.go", - "zz_generated.deepcopy.go", - ], - importpath = "k8s.io/api/authentication/v1", - deps = [ - "//vendor/github.com/gogo/protobuf/proto:go_default_library", - "//vendor/github.com/gogo/protobuf/sortkeys:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) - -filegroup( - name = "go_default_library_protos", - srcs = ["generated.proto"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/api/authentication/v1/doc.go b/vendor/k8s.io/api/authentication/v1/doc.go index 2d2ed2ee8..193f154ab 100644 --- a/vendor/k8s.io/api/authentication/v1/doc.go +++ b/vendor/k8s.io/api/authentication/v1/doc.go @@ -17,4 +17,5 @@ limitations under the License. // +k8s:deepcopy-gen=package // +groupName=authentication.k8s.io // +k8s:openapi-gen=true + package v1 // import "k8s.io/api/authentication/v1" diff --git a/vendor/k8s.io/api/authentication/v1/generated.pb.go b/vendor/k8s.io/api/authentication/v1/generated.pb.go index d090ce579..4e7f28d8c 100644 --- a/vendor/k8s.io/api/authentication/v1/generated.pb.go +++ b/vendor/k8s.io/api/authentication/v1/generated.pb.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -14,9 +14,8 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: k8s.io/kubernetes/vendor/k8s.io/api/authentication/v1/generated.proto -// DO NOT EDIT! /* Package v1 is a generated protocol buffer package. @@ -356,6 +355,21 @@ func (m *TokenReviewSpec) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Token))) i += copy(dAtA[i:], m.Token) + if len(m.Audiences) > 0 { + for _, s := range m.Audiences { + dAtA[i] = 0x12 + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } return i, nil } @@ -394,6 +408,21 @@ func (m *TokenReviewStatus) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Error))) i += copy(dAtA[i:], m.Error) + if len(m.Audiences) > 0 { + for _, s := range m.Audiences { + dAtA[i] = 0x22 + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } return i, nil } @@ -469,24 +498,6 @@ func (m *UserInfo) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Generated(dAtA []byte, offset int, v uint64) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - dAtA[offset+4] = uint8(v >> 32) - dAtA[offset+5] = uint8(v >> 40) - dAtA[offset+6] = uint8(v >> 48) - dAtA[offset+7] = uint8(v >> 56) - return offset + 8 -} -func encodeFixed32Generated(dAtA []byte, offset int, v uint32) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - return offset + 4 -} func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -580,6 +591,12 @@ func (m *TokenReviewSpec) Size() (n int) { _ = l l = len(m.Token) n += 1 + l + sovGenerated(uint64(l)) + if len(m.Audiences) > 0 { + for _, s := range m.Audiences { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } return n } @@ -591,6 +608,12 @@ func (m *TokenReviewStatus) Size() (n int) { n += 1 + l + sovGenerated(uint64(l)) l = len(m.Error) n += 1 + l + sovGenerated(uint64(l)) + if len(m.Audiences) > 0 { + for _, s := range m.Audiences { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } return n } @@ -698,6 +721,7 @@ func (this *TokenReviewSpec) String() string { } s := strings.Join([]string{`&TokenReviewSpec{`, `Token:` + fmt.Sprintf("%v", this.Token) + `,`, + `Audiences:` + fmt.Sprintf("%v", this.Audiences) + `,`, `}`, }, "") return s @@ -710,6 +734,7 @@ func (this *TokenReviewStatus) String() string { `Authenticated:` + fmt.Sprintf("%v", this.Authenticated) + `,`, `User:` + strings.Replace(strings.Replace(this.User.String(), "UserInfo", "UserInfo", 1), `&`, ``, 1) + `,`, `Error:` + fmt.Sprintf("%v", this.Error) + `,`, + `Audiences:` + fmt.Sprintf("%v", this.Audiences) + `,`, `}`, }, "") return s @@ -1569,6 +1594,35 @@ func (m *TokenReviewSpec) Unmarshal(dAtA []byte) error { } m.Token = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Audiences", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Audiences = append(m.Audiences, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -1698,6 +1752,35 @@ func (m *TokenReviewStatus) Unmarshal(dAtA []byte) error { } m.Error = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Audiences", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Audiences = append(m.Audiences, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -1861,51 +1944,14 @@ func (m *UserInfo) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.Extra == nil { m.Extra = make(map[string]ExtraValue) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + mapvalue := &ExtraValue{} + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -1915,46 +1961,85 @@ func (m *UserInfo) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } + if mapmsglen < 0 { + return ErrInvalidLengthGenerated + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthGenerated + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue = &ExtraValue{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &ExtraValue{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.Extra[mapkey] = *mapvalue - } else { - var mapvalue ExtraValue - m.Extra[mapkey] = mapvalue } + m.Extra[mapkey] = *mapvalue iNdEx = postIndex default: iNdEx = preIndex @@ -2087,62 +2172,62 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 905 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x55, 0xcf, 0x6f, 0x1b, 0x45, - 0x14, 0xf6, 0xfa, 0x47, 0x64, 0x8f, 0x9b, 0x90, 0x4c, 0xa9, 0x64, 0x05, 0xb0, 0x8d, 0x91, 0x90, - 0x05, 0x74, 0xb7, 0x36, 0xa8, 0x54, 0x45, 0x42, 0xca, 0x12, 0x0b, 0x2c, 0x04, 0xad, 0xa6, 0x4d, - 0x40, 0x9c, 0x18, 0xdb, 0x2f, 0xce, 0xe0, 0xee, 0xec, 0x32, 0x3b, 0x6b, 0xea, 0x5b, 0xff, 0x04, - 0x8e, 0x20, 0x71, 0xe0, 0x8f, 0x40, 0xe2, 0xc8, 0x35, 0xc7, 0x8a, 0x53, 0x0f, 0xc8, 0x22, 0xcb, - 0xbf, 0xc0, 0x89, 0x13, 0x9a, 0xd9, 0x89, 0xd7, 0x3f, 0x12, 0xc7, 0xa7, 0xde, 0x3c, 0xef, 0x7d, - 0xef, 0x9b, 0xf7, 0xbe, 0xf9, 0xfc, 0x16, 0x75, 0x46, 0xf7, 0x42, 0x9b, 0xf9, 0xce, 0x28, 0xea, - 0x81, 0xe0, 0x20, 0x21, 0x74, 0xc6, 0xc0, 0x07, 0xbe, 0x70, 0x4c, 0x82, 0x06, 0xcc, 0xa1, 0x91, - 0x3c, 0x05, 0x2e, 0x59, 0x9f, 0x4a, 0xe6, 0x73, 0x67, 0xdc, 0x72, 0x86, 0xc0, 0x41, 0x50, 0x09, - 0x03, 0x3b, 0x10, 0xbe, 0xf4, 0xf1, 0xeb, 0x09, 0xda, 0xa6, 0x01, 0xb3, 0x17, 0xd1, 0xf6, 0xb8, - 0xb5, 0x7f, 0x7b, 0xc8, 0xe4, 0x69, 0xd4, 0xb3, 0xfb, 0xbe, 0xe7, 0x0c, 0xfd, 0xa1, 0xef, 0xe8, - 0xa2, 0x5e, 0x74, 0xa2, 0x4f, 0xfa, 0xa0, 0x7f, 0x25, 0x64, 0xfb, 0x1f, 0xa4, 0x57, 0x7b, 0xb4, - 0x7f, 0xca, 0x38, 0x88, 0x89, 0x13, 0x8c, 0x86, 0x2a, 0x10, 0x3a, 0x1e, 0x48, 0x7a, 0x49, 0x0b, - 0xfb, 0xce, 0x55, 0x55, 0x22, 0xe2, 0x92, 0x79, 0xb0, 0x52, 0x70, 0xf7, 0xba, 0x82, 0xb0, 0x7f, - 0x0a, 0x1e, 0x5d, 0xa9, 0x7b, 0xff, 0xaa, 0xba, 0x48, 0xb2, 0x27, 0x0e, 0xe3, 0x32, 0x94, 0x62, - 0xb9, 0xa8, 0xf1, 0xa7, 0x85, 0x5e, 0x75, 0xfd, 0x88, 0x0f, 0x1e, 0xf4, 0xbe, 0x83, 0xbe, 0x24, - 0x70, 0x02, 0x02, 0x78, 0x1f, 0x70, 0x1d, 0xe5, 0x47, 0x8c, 0x0f, 0x2a, 0x56, 0xdd, 0x6a, 0x96, - 0xdc, 0x1b, 0x67, 0xd3, 0x5a, 0x26, 0x9e, 0xd6, 0xf2, 0x9f, 0x33, 0x3e, 0x20, 0x3a, 0x83, 0xdb, - 0x08, 0xd1, 0x87, 0xdd, 0x63, 0x10, 0x21, 0xf3, 0x79, 0x25, 0xab, 0x71, 0xd8, 0xe0, 0xd0, 0xc1, - 0x2c, 0x43, 0xe6, 0x50, 0x8a, 0x95, 0x53, 0x0f, 0x2a, 0xb9, 0x45, 0xd6, 0x2f, 0xa9, 0x07, 0x44, - 0x67, 0xb0, 0x8b, 0x72, 0x51, 0xf7, 0xb0, 0x92, 0xd7, 0x80, 0x3b, 0x06, 0x90, 0x3b, 0xea, 0x1e, - 0xfe, 0x37, 0xad, 0xbd, 0x79, 0xd5, 0x84, 0x72, 0x12, 0x40, 0x68, 0x1f, 0x75, 0x0f, 0x89, 0x2a, - 0x6e, 0x7c, 0x88, 0x50, 0xe7, 0xa9, 0x14, 0xf4, 0x98, 0x3e, 0x89, 0x00, 0xd7, 0x50, 0x81, 0x49, - 0xf0, 0xc2, 0x8a, 0x55, 0xcf, 0x35, 0x4b, 0x6e, 0x29, 0x9e, 0xd6, 0x0a, 0x5d, 0x15, 0x20, 0x49, - 0xfc, 0x7e, 0xf1, 0xa7, 0x5f, 0x6b, 0x99, 0x67, 0x7f, 0xd5, 0x33, 0x8d, 0x5f, 0xb2, 0xe8, 0xc6, - 0x63, 0x7f, 0x04, 0x9c, 0xc0, 0xf7, 0x11, 0x84, 0x12, 0x7f, 0x8b, 0x8a, 0xea, 0x5d, 0x07, 0x54, - 0x52, 0xad, 0x44, 0xb9, 0x7d, 0xc7, 0x4e, 0x2d, 0x35, 0x6b, 0xc2, 0x0e, 0x46, 0x43, 0x15, 0x08, - 0x6d, 0x85, 0xb6, 0xc7, 0x2d, 0x3b, 0x91, 0xf3, 0x0b, 0x90, 0x34, 0xd5, 0x24, 0x8d, 0x91, 0x19, - 0x2b, 0x7e, 0x88, 0xf2, 0x61, 0x00, 0x7d, 0xad, 0x5f, 0xb9, 0x6d, 0xdb, 0xeb, 0x0c, 0x6b, 0xcf, - 0xf7, 0xf6, 0x28, 0x80, 0x7e, 0xaa, 0xa0, 0x3a, 0x11, 0xcd, 0x84, 0xbf, 0x46, 0x5b, 0xa1, 0xa4, - 0x32, 0x0a, 0xb5, 0xca, 0x8b, 0x1d, 0x5f, 0xc7, 0xa9, 0xeb, 0xdc, 0x1d, 0xc3, 0xba, 0x95, 0x9c, - 0x89, 0xe1, 0x6b, 0xfc, 0x6b, 0xa1, 0xdd, 0xe5, 0x16, 0xf0, 0xbb, 0xa8, 0x44, 0xa3, 0x01, 0x53, - 0xa6, 0xb9, 0x90, 0x78, 0x3b, 0x9e, 0xd6, 0x4a, 0x07, 0x17, 0x41, 0x92, 0xe6, 0x31, 0x47, 0x3b, - 0xbd, 0x05, 0xb7, 0x99, 0x1e, 0xdb, 0xeb, 0x7b, 0xbc, 0xcc, 0xa1, 0x2e, 0x8e, 0xa7, 0xb5, 0x9d, - 0xc5, 0x0c, 0x59, 0x62, 0xc7, 0x9f, 0xa0, 0x3d, 0x78, 0x1a, 0x30, 0xa1, 0x99, 0x1e, 0x41, 0xdf, - 0xe7, 0x83, 0x50, 0x7b, 0x2b, 0xe7, 0xde, 0x8a, 0xa7, 0xb5, 0xbd, 0xce, 0x72, 0x92, 0xac, 0xe2, - 0x1b, 0xbf, 0x59, 0x08, 0xaf, 0xaa, 0x84, 0xdf, 0x42, 0x05, 0xa9, 0xa2, 0xe6, 0x2f, 0xb2, 0x6d, - 0x44, 0x2b, 0x24, 0xd0, 0x24, 0x87, 0x27, 0xe8, 0x66, 0x4a, 0xf8, 0x98, 0x79, 0x10, 0x4a, 0xea, - 0x05, 0xe6, 0xb5, 0xdf, 0xd9, 0xcc, 0x4b, 0xaa, 0xcc, 0x7d, 0xcd, 0xd0, 0xdf, 0xec, 0xac, 0xd2, - 0x91, 0xcb, 0xee, 0x68, 0xfc, 0x9c, 0x45, 0x65, 0xd3, 0xf6, 0x98, 0xc1, 0x0f, 0x2f, 0xc1, 0xcb, - 0x0f, 0x16, 0xbc, 0x7c, 0x7b, 0x23, 0xdf, 0xa9, 0xd6, 0xae, 0xb4, 0xf2, 0x57, 0x4b, 0x56, 0x76, - 0x36, 0xa7, 0x5c, 0xef, 0xe4, 0xbb, 0xe8, 0x95, 0xa5, 0xfb, 0x37, 0x7a, 0xce, 0xc6, 0x1f, 0x16, - 0xda, 0x5b, 0xb9, 0x05, 0x7f, 0x84, 0xb6, 0xe7, 0x9a, 0x81, 0x64, 0x69, 0x16, 0xdd, 0x5b, 0x86, - 0x62, 0xfb, 0x60, 0x3e, 0x49, 0x16, 0xb1, 0xf8, 0x33, 0x94, 0x8f, 0x42, 0x10, 0x46, 0xb4, 0xb7, - 0xd7, 0x4f, 0x78, 0x14, 0x82, 0xe8, 0xf2, 0x13, 0x3f, 0x55, 0x4b, 0x45, 0x88, 0x66, 0x50, 0x13, - 0x80, 0x10, 0xbe, 0x30, 0xdb, 0x75, 0x36, 0x41, 0x47, 0x05, 0x49, 0x92, 0x6b, 0xfc, 0x9e, 0x45, - 0xc5, 0x0b, 0x16, 0xfc, 0x1e, 0x2a, 0xaa, 0x4a, 0xbd, 0x92, 0x93, 0xb1, 0x77, 0x4d, 0x91, 0xc6, - 0xa8, 0x38, 0x99, 0x21, 0xf0, 0x1b, 0x28, 0x17, 0xb1, 0x81, 0xd9, 0xf4, 0xe5, 0xb9, 0xd5, 0x4c, - 0x54, 0x1c, 0x37, 0xd0, 0xd6, 0x50, 0xf8, 0x51, 0xa0, 0x1e, 0x4b, 0x6d, 0x01, 0xa4, 0x74, 0xff, - 0x54, 0x47, 0x88, 0xc9, 0xe0, 0x63, 0x54, 0x00, 0xb5, 0x99, 0x2b, 0xf9, 0x7a, 0xae, 0x59, 0x6e, - 0xb7, 0x36, 0x9b, 0xd6, 0xd6, 0xdb, 0xbc, 0xc3, 0xa5, 0x98, 0xcc, 0x4d, 0xa5, 0x62, 0x24, 0xa1, - 0xdb, 0xef, 0x99, 0x8d, 0xaf, 0x31, 0x78, 0x17, 0xe5, 0x46, 0x30, 0x49, 0x26, 0x22, 0xea, 0x27, - 0xfe, 0x18, 0x15, 0xc6, 0xea, 0x63, 0x60, 0x54, 0x6e, 0xae, 0xbf, 0x37, 0xfd, 0x78, 0x90, 0xa4, - 0xec, 0x7e, 0xf6, 0x9e, 0xe5, 0x36, 0xcf, 0xce, 0xab, 0x99, 0xe7, 0xe7, 0xd5, 0xcc, 0x8b, 0xf3, - 0x6a, 0xe6, 0x59, 0x5c, 0xb5, 0xce, 0xe2, 0xaa, 0xf5, 0x3c, 0xae, 0x5a, 0x2f, 0xe2, 0xaa, 0xf5, - 0x77, 0x5c, 0xb5, 0x7e, 0xfc, 0xa7, 0x9a, 0xf9, 0x26, 0x3b, 0x6e, 0xfd, 0x1f, 0x00, 0x00, 0xff, - 0xff, 0x5f, 0x39, 0x60, 0xb1, 0xbd, 0x08, 0x00, 0x00, + // 900 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x55, 0xcf, 0x6f, 0xe3, 0x44, + 0x14, 0x8e, 0xf3, 0xa3, 0x4a, 0x26, 0xdb, 0xd2, 0xce, 0xb2, 0x52, 0x54, 0xc0, 0x2e, 0x41, 0x42, + 0x15, 0xb0, 0xf6, 0x26, 0x42, 0xb0, 0x5a, 0x24, 0xa4, 0x9a, 0x46, 0x10, 0x21, 0xd8, 0xd5, 0xec, + 0xb6, 0x20, 0x4e, 0x4c, 0xec, 0xd7, 0xc4, 0x04, 0x8f, 0x8d, 0x3d, 0x0e, 0x9b, 0xdb, 0xfe, 0x09, + 0x1c, 0x41, 0xe2, 0xc0, 0x1f, 0x81, 0xc4, 0xbf, 0xd0, 0xe3, 0x8a, 0xd3, 0x1e, 0x50, 0x44, 0xcd, + 0x95, 0x23, 0x27, 0x4e, 0x68, 0xc6, 0xd3, 0x38, 0x4e, 0xda, 0x34, 0x27, 0x6e, 0x9e, 0xf7, 0xbe, + 0xf7, 0xbd, 0x37, 0xdf, 0x7c, 0x9e, 0x41, 0xbd, 0xf1, 0xfd, 0xd8, 0xf4, 0x02, 0x6b, 0x9c, 0x0c, + 0x20, 0x62, 0xc0, 0x21, 0xb6, 0x26, 0xc0, 0xdc, 0x20, 0xb2, 0x54, 0x82, 0x86, 0x9e, 0x45, 0x13, + 0x3e, 0x02, 0xc6, 0x3d, 0x87, 0x72, 0x2f, 0x60, 0xd6, 0xa4, 0x63, 0x0d, 0x81, 0x41, 0x44, 0x39, + 0xb8, 0x66, 0x18, 0x05, 0x3c, 0xc0, 0xaf, 0x66, 0x68, 0x93, 0x86, 0x9e, 0x59, 0x44, 0x9b, 0x93, + 0xce, 0xfe, 0xdd, 0xa1, 0xc7, 0x47, 0xc9, 0xc0, 0x74, 0x02, 0xdf, 0x1a, 0x06, 0xc3, 0xc0, 0x92, + 0x45, 0x83, 0xe4, 0x4c, 0xae, 0xe4, 0x42, 0x7e, 0x65, 0x64, 0xfb, 0xef, 0xe6, 0xad, 0x7d, 0xea, + 0x8c, 0x3c, 0x06, 0xd1, 0xd4, 0x0a, 0xc7, 0x43, 0x11, 0x88, 0x2d, 0x1f, 0x38, 0xbd, 0x62, 0x84, + 0x7d, 0xeb, 0xba, 0xaa, 0x28, 0x61, 0xdc, 0xf3, 0x61, 0xa5, 0xe0, 0xbd, 0x9b, 0x0a, 0x62, 0x67, + 0x04, 0x3e, 0x5d, 0xae, 0x6b, 0xff, 0xae, 0xa1, 0x97, 0xed, 0x20, 0x61, 0xee, 0xc3, 0xc1, 0x37, + 0xe0, 0x70, 0x02, 0x67, 0x10, 0x01, 0x73, 0x00, 0x1f, 0xa0, 0xea, 0xd8, 0x63, 0x6e, 0x4b, 0x3b, + 0xd0, 0x0e, 0x1b, 0xf6, 0xad, 0xf3, 0x99, 0x51, 0x4a, 0x67, 0x46, 0xf5, 0x53, 0x8f, 0xb9, 0x44, + 0x66, 0x70, 0x17, 0x21, 0xfa, 0xa8, 0x7f, 0x0a, 0x51, 0xec, 0x05, 0xac, 0x55, 0x96, 0x38, 0xac, + 0x70, 0xe8, 0x68, 0x9e, 0x21, 0x0b, 0x28, 0xc1, 0xca, 0xa8, 0x0f, 0xad, 0x4a, 0x91, 0xf5, 0x73, + 0xea, 0x03, 0x91, 0x19, 0x6c, 0xa3, 0x4a, 0xd2, 0x3f, 0x6e, 0x55, 0x25, 0xe0, 0x9e, 0x02, 0x54, + 0x4e, 0xfa, 0xc7, 0xff, 0xce, 0x8c, 0xd7, 0xaf, 0xdb, 0x24, 0x9f, 0x86, 0x10, 0x9b, 0x27, 0xfd, + 0x63, 0x22, 0x8a, 0xdb, 0xef, 0x23, 0xd4, 0x7b, 0xca, 0x23, 0x7a, 0x4a, 0xbf, 0x4d, 0x00, 0x1b, + 0xa8, 0xe6, 0x71, 0xf0, 0xe3, 0x96, 0x76, 0x50, 0x39, 0x6c, 0xd8, 0x8d, 0x74, 0x66, 0xd4, 0xfa, + 0x22, 0x40, 0xb2, 0xf8, 0x83, 0xfa, 0x8f, 0xbf, 0x18, 0xa5, 0x67, 0x7f, 0x1c, 0x94, 0xda, 0x3f, + 0x97, 0xd1, 0xad, 0x27, 0xc1, 0x18, 0x18, 0x81, 0xef, 0x12, 0x88, 0x39, 0xfe, 0x1a, 0xd5, 0xc5, + 0x11, 0xb9, 0x94, 0x53, 0xa9, 0x44, 0xb3, 0x7b, 0xcf, 0xcc, 0xdd, 0x31, 0x1f, 0xc2, 0x0c, 0xc7, + 0x43, 0x11, 0x88, 0x4d, 0x81, 0x36, 0x27, 0x1d, 0x33, 0x93, 0xf3, 0x33, 0xe0, 0x34, 0xd7, 0x24, + 0x8f, 0x91, 0x39, 0x2b, 0x7e, 0x84, 0xaa, 0x71, 0x08, 0x8e, 0xd4, 0xaf, 0xd9, 0x35, 0xcd, 0x75, + 0xde, 0x33, 0x17, 0x67, 0x7b, 0x1c, 0x82, 0x93, 0x2b, 0x28, 0x56, 0x44, 0x32, 0xe1, 0x2f, 0xd1, + 0x56, 0xcc, 0x29, 0x4f, 0x62, 0xa9, 0x72, 0x71, 0xe2, 0x9b, 0x38, 0x65, 0x9d, 0xbd, 0xa3, 0x58, + 0xb7, 0xb2, 0x35, 0x51, 0x7c, 0xed, 0x7f, 0x34, 0xb4, 0xbb, 0x3c, 0x02, 0x7e, 0x1b, 0x35, 0x68, + 0xe2, 0x7a, 0xc2, 0x34, 0x97, 0x12, 0x6f, 0xa7, 0x33, 0xa3, 0x71, 0x74, 0x19, 0x24, 0x79, 0x1e, + 0x33, 0xb4, 0x33, 0x28, 0xb8, 0x4d, 0xcd, 0xd8, 0x5d, 0x3f, 0xe3, 0x55, 0x0e, 0xb5, 0x71, 0x3a, + 0x33, 0x76, 0x8a, 0x19, 0xb2, 0xc4, 0x8e, 0x3f, 0x42, 0x7b, 0xf0, 0x34, 0xf4, 0x22, 0xc9, 0xf4, + 0x18, 0x9c, 0x80, 0xb9, 0xb1, 0xf4, 0x56, 0xc5, 0xbe, 0x93, 0xce, 0x8c, 0xbd, 0xde, 0x72, 0x92, + 0xac, 0xe2, 0xdb, 0xbf, 0x6a, 0x08, 0xaf, 0xaa, 0x84, 0xdf, 0x40, 0x35, 0x2e, 0xa2, 0xea, 0x17, + 0xd9, 0x56, 0xa2, 0xd5, 0x32, 0x68, 0x96, 0xc3, 0x53, 0x74, 0x3b, 0x27, 0x7c, 0xe2, 0xf9, 0x10, + 0x73, 0xea, 0x87, 0xea, 0xb4, 0xdf, 0xda, 0xcc, 0x4b, 0xa2, 0xcc, 0x7e, 0x45, 0xd1, 0xdf, 0xee, + 0xad, 0xd2, 0x91, 0xab, 0x7a, 0xb4, 0x7f, 0x2a, 0xa3, 0xa6, 0x1a, 0x7b, 0xe2, 0xc1, 0xf7, 0xff, + 0x83, 0x97, 0x1f, 0x16, 0xbc, 0x7c, 0x77, 0x23, 0xdf, 0x89, 0xd1, 0xae, 0xb5, 0xf2, 0x17, 0x4b, + 0x56, 0xb6, 0x36, 0xa7, 0x5c, 0xef, 0x64, 0x07, 0xbd, 0xb4, 0xd4, 0x7f, 0xb3, 0xe3, 0x2c, 0x98, + 0xbd, 0xbc, 0xde, 0xec, 0xed, 0xbf, 0x35, 0xb4, 0xb7, 0x32, 0x12, 0xfe, 0x00, 0x6d, 0x2f, 0x4c, + 0x0e, 0xd9, 0x0d, 0x5b, 0xb7, 0xef, 0xa8, 0x7e, 0xdb, 0x47, 0x8b, 0x49, 0x52, 0xc4, 0xe2, 0x4f, + 0x50, 0x35, 0x89, 0x21, 0x52, 0x0a, 0xbf, 0xb9, 0x5e, 0x8e, 0x93, 0x18, 0xa2, 0x3e, 0x3b, 0x0b, + 0x72, 0x69, 0x45, 0x84, 0x48, 0x06, 0xb1, 0x5d, 0x88, 0xa2, 0x20, 0x52, 0x57, 0xf1, 0x7c, 0xbb, + 0x3d, 0x11, 0x24, 0x59, 0xae, 0xb8, 0xdd, 0xea, 0x0d, 0xdb, 0xfd, 0xad, 0x8c, 0xea, 0x97, 0x2d, + 0xf1, 0x3b, 0xa8, 0x2e, 0xda, 0xc8, 0xcb, 0x3e, 0x13, 0x74, 0x57, 0x75, 0x90, 0x18, 0x11, 0x27, + 0x73, 0x04, 0x7e, 0x0d, 0x55, 0x12, 0xcf, 0x55, 0x6f, 0x48, 0x73, 0xe1, 0xd2, 0x27, 0x22, 0x8e, + 0xdb, 0x68, 0x6b, 0x18, 0x05, 0x49, 0x28, 0x6c, 0x20, 0x66, 0x40, 0xe2, 0x44, 0x3f, 0x96, 0x11, + 0xa2, 0x32, 0xf8, 0x14, 0xd5, 0x40, 0xdc, 0xf9, 0x72, 0xcc, 0x66, 0xb7, 0xb3, 0x99, 0x34, 0xa6, + 0x7c, 0x27, 0x7a, 0x8c, 0x47, 0xd3, 0x05, 0x09, 0x44, 0x8c, 0x64, 0x74, 0xfb, 0x03, 0xf5, 0x96, + 0x48, 0x0c, 0xde, 0x45, 0x95, 0x31, 0x4c, 0xb3, 0x1d, 0x11, 0xf1, 0x89, 0x3f, 0x44, 0xb5, 0x89, + 0x78, 0x66, 0xd4, 0x91, 0x1c, 0xae, 0xef, 0x9b, 0x3f, 0x4b, 0x24, 0x2b, 0x7b, 0x50, 0xbe, 0xaf, + 0xd9, 0x87, 0xe7, 0x17, 0x7a, 0xe9, 0xf9, 0x85, 0x5e, 0x7a, 0x71, 0xa1, 0x97, 0x9e, 0xa5, 0xba, + 0x76, 0x9e, 0xea, 0xda, 0xf3, 0x54, 0xd7, 0x5e, 0xa4, 0xba, 0xf6, 0x67, 0xaa, 0x6b, 0x3f, 0xfc, + 0xa5, 0x97, 0xbe, 0x2a, 0x4f, 0x3a, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff, 0x5f, 0x04, 0x81, 0x6f, + 0xe2, 0x08, 0x00, 0x00, } diff --git a/vendor/k8s.io/api/authentication/v1/generated.proto b/vendor/k8s.io/api/authentication/v1/generated.proto index 1fd432a70..b69636a81 100644 --- a/vendor/k8s.io/api/authentication/v1/generated.proto +++ b/vendor/k8s.io/api/authentication/v1/generated.proto @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -24,7 +24,6 @@ package k8s.io.api.authentication.v1; import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; -import "k8s.io/apimachinery/pkg/util/intstr/generated.proto"; // Package-wide variables from generator "generated". option go_package = "v1"; @@ -119,6 +118,14 @@ message TokenReviewSpec { // Token is the opaque bearer token. // +optional optional string token = 1; + + // Audiences is a list of the identifiers that the resource server presented + // with the token identifies as. Audience-aware token authenticators will + // verify that the token was intended for at least one of the audiences in + // this list. If no audiences are provided, the audience will default to the + // audience of the Kubernetes apiserver. + // +optional + repeated string audiences = 2; } // TokenReviewStatus is the result of the token authentication request. @@ -131,6 +138,18 @@ message TokenReviewStatus { // +optional optional UserInfo user = 2; + // Audiences are audience identifiers chosen by the authenticator that are + // compatible with both the TokenReview and token. An identifier is any + // identifier in the intersection of the TokenReviewSpec audiences and the + // token's audiences. A client of the TokenReview API that sets the + // spec.audiences field should validate that a compatible audience identifier + // is returned in the status.audiences field to ensure that the TokenReview + // server is audience aware. If a TokenReview returns an empty + // status.audience field where status.authenticated is "true", the token is + // valid against the audience of the Kubernetes API server. + // +optional + repeated string audiences = 4; + // Error indicates that the token couldn't be checked // +optional optional string error = 3; diff --git a/vendor/k8s.io/api/authentication/v1/types.go b/vendor/k8s.io/api/authentication/v1/types.go index 723457a3d..d348c6fd4 100644 --- a/vendor/k8s.io/api/authentication/v1/types.go +++ b/vendor/k8s.io/api/authentication/v1/types.go @@ -64,6 +64,13 @@ type TokenReviewSpec struct { // Token is the opaque bearer token. // +optional Token string `json:"token,omitempty" protobuf:"bytes,1,opt,name=token"` + // Audiences is a list of the identifiers that the resource server presented + // with the token identifies as. Audience-aware token authenticators will + // verify that the token was intended for at least one of the audiences in + // this list. If no audiences are provided, the audience will default to the + // audience of the Kubernetes apiserver. + // +optional + Audiences []string `json:"audiences,omitempty" protobuf:"bytes,2,rep,name=audiences"` } // TokenReviewStatus is the result of the token authentication request. @@ -74,6 +81,17 @@ type TokenReviewStatus struct { // User is the UserInfo associated with the provided token. // +optional User UserInfo `json:"user,omitempty" protobuf:"bytes,2,opt,name=user"` + // Audiences are audience identifiers chosen by the authenticator that are + // compatible with both the TokenReview and token. An identifier is any + // identifier in the intersection of the TokenReviewSpec audiences and the + // token's audiences. A client of the TokenReview API that sets the + // spec.audiences field should validate that a compatible audience identifier + // is returned in the status.audiences field to ensure that the TokenReview + // server is audience aware. If a TokenReview returns an empty + // status.audience field where status.authenticated is "true", the token is + // valid against the audience of the Kubernetes API server. + // +optional + Audiences []string `json:"audiences,omitempty" protobuf:"bytes,4,rep,name=audiences"` // Error indicates that the token couldn't be checked // +optional Error string `json:"error,omitempty" protobuf:"bytes,3,opt,name=error"` diff --git a/vendor/k8s.io/api/authentication/v1/types_swagger_doc_generated.go b/vendor/k8s.io/api/authentication/v1/types_swagger_doc_generated.go index 68ecea8ea..f2c9b95c7 100644 --- a/vendor/k8s.io/api/authentication/v1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/authentication/v1/types_swagger_doc_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2016 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -26,7 +26,7 @@ package v1 // // Those methods can be generated by using hack/update-generated-swagger-docs.sh -// AUTO-GENERATED FUNCTIONS START HERE +// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT. var map_BoundObjectReference = map[string]string{ "": "BoundObjectReference is a reference to an object that a token is bound to.", "kind": "Kind of the referent. Valid kinds are 'Pod' and 'Secret'.", @@ -79,8 +79,9 @@ func (TokenReview) SwaggerDoc() map[string]string { } var map_TokenReviewSpec = map[string]string{ - "": "TokenReviewSpec is a description of the token authentication request.", - "token": "Token is the opaque bearer token.", + "": "TokenReviewSpec is a description of the token authentication request.", + "token": "Token is the opaque bearer token.", + "audiences": "Audiences is a list of the identifiers that the resource server presented with the token identifies as. Audience-aware token authenticators will verify that the token was intended for at least one of the audiences in this list. If no audiences are provided, the audience will default to the audience of the Kubernetes apiserver.", } func (TokenReviewSpec) SwaggerDoc() map[string]string { @@ -91,6 +92,7 @@ var map_TokenReviewStatus = map[string]string{ "": "TokenReviewStatus is the result of the token authentication request.", "authenticated": "Authenticated indicates that the token was associated with a known user.", "user": "User is the UserInfo associated with the provided token.", + "audiences": "Audiences are audience identifiers chosen by the authenticator that are compatible with both the TokenReview and token. An identifier is any identifier in the intersection of the TokenReviewSpec audiences and the token's audiences. A client of the TokenReview API that sets the spec.audiences field should validate that a compatible audience identifier is returned in the status.audiences field to ensure that the TokenReview server is audience aware. If a TokenReview returns an empty status.audience field where status.authenticated is \"true\", the token is valid against the audience of the Kubernetes API server.", "error": "Error indicates that the token couldn't be checked", } diff --git a/vendor/k8s.io/api/authentication/v1/zz_generated.deepcopy.go b/vendor/k8s.io/api/authentication/v1/zz_generated.deepcopy.go index ad0df8ff4..aca99c42b 100644 --- a/vendor/k8s.io/api/authentication/v1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/api/authentication/v1/zz_generated.deepcopy.go @@ -1,7 +1,7 @@ // +build !ignore_autogenerated /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -98,21 +98,13 @@ func (in *TokenRequestSpec) DeepCopyInto(out *TokenRequestSpec) { } if in.ExpirationSeconds != nil { in, out := &in.ExpirationSeconds, &out.ExpirationSeconds - if *in == nil { - *out = nil - } else { - *out = new(int64) - **out = **in - } + *out = new(int64) + **out = **in } if in.BoundObjectRef != nil { in, out := &in.BoundObjectRef, &out.BoundObjectRef - if *in == nil { - *out = nil - } else { - *out = new(BoundObjectReference) - **out = **in - } + *out = new(BoundObjectReference) + **out = **in } return } @@ -149,7 +141,7 @@ func (in *TokenReview) DeepCopyInto(out *TokenReview) { *out = *in out.TypeMeta = in.TypeMeta in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - out.Spec = in.Spec + in.Spec.DeepCopyInto(&out.Spec) in.Status.DeepCopyInto(&out.Status) return } @@ -175,6 +167,11 @@ func (in *TokenReview) DeepCopyObject() runtime.Object { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *TokenReviewSpec) DeepCopyInto(out *TokenReviewSpec) { *out = *in + if in.Audiences != nil { + in, out := &in.Audiences, &out.Audiences + *out = make([]string, len(*in)) + copy(*out, *in) + } return } @@ -192,6 +189,11 @@ func (in *TokenReviewSpec) DeepCopy() *TokenReviewSpec { func (in *TokenReviewStatus) DeepCopyInto(out *TokenReviewStatus) { *out = *in in.User.DeepCopyInto(&out.User) + if in.Audiences != nil { + in, out := &in.Audiences, &out.Audiences + *out = make([]string, len(*in)) + copy(*out, *in) + } return } @@ -217,12 +219,15 @@ func (in *UserInfo) DeepCopyInto(out *UserInfo) { in, out := &in.Extra, &out.Extra *out = make(map[string]ExtraValue, len(*in)) for key, val := range *in { + var outVal []string if val == nil { (*out)[key] = nil } else { - (*out)[key] = make([]string, len(val)) - copy((*out)[key], val) + in, out := &val, &outVal + *out = make(ExtraValue, len(*in)) + copy(*out, *in) } + (*out)[key] = outVal } } return diff --git a/vendor/k8s.io/api/authentication/v1beta1/BUILD b/vendor/k8s.io/api/authentication/v1beta1/BUILD deleted file mode 100644 index 998d793fe..000000000 --- a/vendor/k8s.io/api/authentication/v1beta1/BUILD +++ /dev/null @@ -1,45 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "generated.pb.go", - "register.go", - "types.go", - "types_swagger_doc_generated.go", - "zz_generated.deepcopy.go", - ], - importpath = "k8s.io/api/authentication/v1beta1", - deps = [ - "//vendor/github.com/gogo/protobuf/proto:go_default_library", - "//vendor/github.com/gogo/protobuf/sortkeys:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) - -filegroup( - name = "go_default_library_protos", - srcs = ["generated.proto"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/api/authentication/v1beta1/doc.go b/vendor/k8s.io/api/authentication/v1beta1/doc.go index e0de315d4..919f3c42f 100644 --- a/vendor/k8s.io/api/authentication/v1beta1/doc.go +++ b/vendor/k8s.io/api/authentication/v1beta1/doc.go @@ -17,4 +17,5 @@ limitations under the License. // +k8s:deepcopy-gen=package // +groupName=authentication.k8s.io // +k8s:openapi-gen=true + package v1beta1 // import "k8s.io/api/authentication/v1beta1" diff --git a/vendor/k8s.io/api/authentication/v1beta1/generated.pb.go b/vendor/k8s.io/api/authentication/v1beta1/generated.pb.go index 86e362b87..5f34e76a9 100644 --- a/vendor/k8s.io/api/authentication/v1beta1/generated.pb.go +++ b/vendor/k8s.io/api/authentication/v1beta1/generated.pb.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -14,9 +14,8 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: k8s.io/kubernetes/vendor/k8s.io/api/authentication/v1beta1/generated.proto -// DO NOT EDIT! /* Package v1beta1 is a generated protocol buffer package. @@ -176,6 +175,21 @@ func (m *TokenReviewSpec) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Token))) i += copy(dAtA[i:], m.Token) + if len(m.Audiences) > 0 { + for _, s := range m.Audiences { + dAtA[i] = 0x12 + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } return i, nil } @@ -214,6 +228,21 @@ func (m *TokenReviewStatus) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Error))) i += copy(dAtA[i:], m.Error) + if len(m.Audiences) > 0 { + for _, s := range m.Audiences { + dAtA[i] = 0x22 + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } return i, nil } @@ -289,24 +318,6 @@ func (m *UserInfo) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Generated(dAtA []byte, offset int, v uint64) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - dAtA[offset+4] = uint8(v >> 32) - dAtA[offset+5] = uint8(v >> 40) - dAtA[offset+6] = uint8(v >> 48) - dAtA[offset+7] = uint8(v >> 56) - return offset + 8 -} -func encodeFixed32Generated(dAtA []byte, offset int, v uint32) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - return offset + 4 -} func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -345,6 +356,12 @@ func (m *TokenReviewSpec) Size() (n int) { _ = l l = len(m.Token) n += 1 + l + sovGenerated(uint64(l)) + if len(m.Audiences) > 0 { + for _, s := range m.Audiences { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } return n } @@ -356,6 +373,12 @@ func (m *TokenReviewStatus) Size() (n int) { n += 1 + l + sovGenerated(uint64(l)) l = len(m.Error) n += 1 + l + sovGenerated(uint64(l)) + if len(m.Audiences) > 0 { + for _, s := range m.Audiences { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } return n } @@ -415,6 +438,7 @@ func (this *TokenReviewSpec) String() string { } s := strings.Join([]string{`&TokenReviewSpec{`, `Token:` + fmt.Sprintf("%v", this.Token) + `,`, + `Audiences:` + fmt.Sprintf("%v", this.Audiences) + `,`, `}`, }, "") return s @@ -427,6 +451,7 @@ func (this *TokenReviewStatus) String() string { `Authenticated:` + fmt.Sprintf("%v", this.Authenticated) + `,`, `User:` + strings.Replace(strings.Replace(this.User.String(), "UserInfo", "UserInfo", 1), `&`, ``, 1) + `,`, `Error:` + fmt.Sprintf("%v", this.Error) + `,`, + `Audiences:` + fmt.Sprintf("%v", this.Audiences) + `,`, `}`, }, "") return s @@ -739,6 +764,35 @@ func (m *TokenReviewSpec) Unmarshal(dAtA []byte) error { } m.Token = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Audiences", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Audiences = append(m.Audiences, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -868,6 +922,35 @@ func (m *TokenReviewStatus) Unmarshal(dAtA []byte) error { } m.Error = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Audiences", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Audiences = append(m.Audiences, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -1031,51 +1114,14 @@ func (m *UserInfo) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.Extra == nil { m.Extra = make(map[string]ExtraValue) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + mapvalue := &ExtraValue{} + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -1085,46 +1131,85 @@ func (m *UserInfo) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } + if mapmsglen < 0 { + return ErrInvalidLengthGenerated + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthGenerated + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue = &ExtraValue{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &ExtraValue{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.Extra[mapkey] = *mapvalue - } else { - var mapvalue ExtraValue - m.Extra[mapkey] = mapvalue } + m.Extra[mapkey] = *mapvalue iNdEx = postIndex default: iNdEx = preIndex @@ -1257,46 +1342,47 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 650 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x93, 0x4d, 0x4f, 0x14, 0x4d, - 0x10, 0xc7, 0x67, 0xf6, 0x85, 0x67, 0xb7, 0xf7, 0x41, 0xb1, 0x13, 0x93, 0xcd, 0x26, 0xce, 0xae, - 0xeb, 0x85, 0x44, 0xe9, 0x11, 0x24, 0x48, 0xf0, 0xe4, 0x28, 0x31, 0x98, 0x10, 0x93, 0x16, 0x3c, - 0xa8, 0x07, 0x7b, 0x67, 0x8b, 0xd9, 0x76, 0x99, 0x97, 0xf4, 0xf4, 0xac, 0x72, 0xe3, 0x23, 0x78, - 0xf4, 0x68, 0xe2, 0x27, 0x31, 0xf1, 0xc0, 0x91, 0x23, 0x07, 0x43, 0x64, 0xfc, 0x22, 0xa6, 0x7b, - 0x5a, 0x76, 0x61, 0x43, 0x80, 0xdb, 0xf4, 0xbf, 0xea, 0xff, 0x9b, 0xaa, 0xea, 0x2e, 0xf4, 0x72, - 0xb8, 0x9a, 0x12, 0x1e, 0xbb, 0xc3, 0xac, 0x07, 0x22, 0x02, 0x09, 0xa9, 0x3b, 0x82, 0xa8, 0x1f, - 0x0b, 0xd7, 0x04, 0x58, 0xc2, 0x5d, 0x96, 0xc9, 0x01, 0x44, 0x92, 0xfb, 0x4c, 0xf2, 0x38, 0x72, - 0x47, 0x8b, 0x3d, 0x90, 0x6c, 0xd1, 0x0d, 0x20, 0x02, 0xc1, 0x24, 0xf4, 0x49, 0x22, 0x62, 0x19, - 0xe3, 0xbb, 0x85, 0x85, 0xb0, 0x84, 0x93, 0xb3, 0x16, 0x62, 0x2c, 0xad, 0x85, 0x80, 0xcb, 0x41, - 0xd6, 0x23, 0x7e, 0x1c, 0xba, 0x41, 0x1c, 0xc4, 0xae, 0x76, 0xf6, 0xb2, 0x1d, 0x7d, 0xd2, 0x07, - 0xfd, 0x55, 0x10, 0x5b, 0xcb, 0xe3, 0x22, 0x42, 0xe6, 0x0f, 0x78, 0x04, 0x62, 0xcf, 0x4d, 0x86, - 0x81, 0x12, 0x52, 0x37, 0x04, 0xc9, 0xdc, 0xd1, 0x54, 0x1d, 0x2d, 0xf7, 0x22, 0x97, 0xc8, 0x22, - 0xc9, 0x43, 0x98, 0x32, 0xac, 0x5c, 0x66, 0x48, 0xfd, 0x01, 0x84, 0x6c, 0xca, 0xf7, 0xe8, 0x22, - 0x5f, 0x26, 0xf9, 0xae, 0xcb, 0x23, 0x99, 0x4a, 0x71, 0xde, 0xd4, 0x7d, 0x8c, 0xd0, 0xfa, 0x67, - 0x29, 0xd8, 0x1b, 0xb6, 0x9b, 0x01, 0x6e, 0xa3, 0x2a, 0x97, 0x10, 0xa6, 0x4d, 0xbb, 0x53, 0x9e, - 0xaf, 0x7b, 0xf5, 0xfc, 0xb8, 0x5d, 0xdd, 0x50, 0x02, 0x2d, 0xf4, 0xb5, 0xda, 0xd7, 0x6f, 0x6d, - 0x6b, 0xff, 0x57, 0xc7, 0xea, 0x7e, 0x2f, 0xa1, 0xc6, 0x56, 0x3c, 0x84, 0x88, 0xc2, 0x88, 0xc3, - 0x27, 0xfc, 0x01, 0xd5, 0xd4, 0x04, 0xfa, 0x4c, 0xb2, 0xa6, 0xdd, 0xb1, 0xe7, 0x1b, 0x4b, 0x0f, - 0xc9, 0xf8, 0x06, 0x4e, 0x0b, 0x22, 0xc9, 0x30, 0x50, 0x42, 0x4a, 0x54, 0x36, 0x19, 0x2d, 0x92, - 0x57, 0xbd, 0x8f, 0xe0, 0xcb, 0x4d, 0x90, 0xcc, 0xc3, 0x07, 0xc7, 0x6d, 0x2b, 0x3f, 0x6e, 0xa3, - 0xb1, 0x46, 0x4f, 0xa9, 0x78, 0x0b, 0x55, 0xd2, 0x04, 0xfc, 0x66, 0x49, 0xd3, 0x97, 0xc8, 0xa5, - 0xf7, 0x4b, 0x26, 0xea, 0x7b, 0x9d, 0x80, 0xef, 0xfd, 0x6f, 0xf8, 0x15, 0x75, 0xa2, 0x9a, 0x86, - 0xdf, 0xa3, 0x99, 0x54, 0x32, 0x99, 0xa5, 0xcd, 0xb2, 0xe6, 0x2e, 0x5f, 0x93, 0xab, 0xbd, 0xde, - 0x0d, 0x43, 0x9e, 0x29, 0xce, 0xd4, 0x30, 0xbb, 0x2b, 0xe8, 0xe6, 0xb9, 0x22, 0xf0, 0x3d, 0x54, - 0x95, 0x4a, 0xd2, 0x53, 0xaa, 0x7b, 0xb3, 0xc6, 0x59, 0x2d, 0xf2, 0x8a, 0x58, 0xf7, 0xa7, 0x8d, - 0x6e, 0x4d, 0xfd, 0x05, 0x3f, 0x41, 0xb3, 0x13, 0x15, 0x41, 0x5f, 0x23, 0x6a, 0xde, 0x6d, 0x83, - 0x98, 0x7d, 0x3a, 0x19, 0xa4, 0x67, 0x73, 0xf1, 0x26, 0xaa, 0x64, 0x29, 0x08, 0x33, 0xbe, 0xfb, - 0x57, 0x68, 0x73, 0x3b, 0x05, 0xb1, 0x11, 0xed, 0xc4, 0xe3, 0xb9, 0x29, 0x85, 0x6a, 0x8c, 0x6a, - 0x03, 0x84, 0x88, 0x85, 0x1e, 0xdb, 0x44, 0x1b, 0xeb, 0x4a, 0xa4, 0x45, 0xac, 0xfb, 0xa3, 0x84, - 0x6a, 0xff, 0x28, 0xf8, 0x01, 0xaa, 0x29, 0x67, 0xc4, 0x42, 0x30, 0xbd, 0xcf, 0x19, 0x93, 0xce, - 0x51, 0x3a, 0x3d, 0xcd, 0xc0, 0x77, 0x50, 0x39, 0xe3, 0x7d, 0x5d, 0x6d, 0xdd, 0x6b, 0x98, 0xc4, - 0xf2, 0xf6, 0xc6, 0x73, 0xaa, 0x74, 0xdc, 0x45, 0x33, 0x81, 0x88, 0xb3, 0x44, 0x5d, 0x9b, 0x7a, - 0xaa, 0x48, 0x0d, 0xff, 0x85, 0x56, 0xa8, 0x89, 0xe0, 0x77, 0xa8, 0x0a, 0xea, 0x6d, 0x37, 0x2b, - 0x9d, 0xf2, 0x7c, 0x63, 0x69, 0xe5, 0x1a, 0x2d, 0x13, 0xbd, 0x14, 0xeb, 0x91, 0x14, 0x7b, 0x13, - 0xad, 0x29, 0x8d, 0x16, 0xcc, 0x56, 0x60, 0x16, 0x47, 0xe7, 0xe0, 0x39, 0x54, 0x1e, 0xc2, 0x5e, - 0xd1, 0x16, 0x55, 0x9f, 0xf8, 0x19, 0xaa, 0x8e, 0xd4, 0x4e, 0x99, 0x79, 0x2f, 0x5c, 0xe1, 0xe7, - 0xe3, 0x45, 0xa4, 0x85, 0x77, 0xad, 0xb4, 0x6a, 0x7b, 0x0b, 0x07, 0x27, 0x8e, 0x75, 0x78, 0xe2, - 0x58, 0x47, 0x27, 0x8e, 0xb5, 0x9f, 0x3b, 0xf6, 0x41, 0xee, 0xd8, 0x87, 0xb9, 0x63, 0x1f, 0xe5, - 0x8e, 0xfd, 0x3b, 0x77, 0xec, 0x2f, 0x7f, 0x1c, 0xeb, 0xed, 0x7f, 0x06, 0xf2, 0x37, 0x00, 0x00, - 0xff, 0xff, 0x36, 0x0e, 0x35, 0x2a, 0x43, 0x05, 0x00, 0x00, + // 663 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x53, 0xcd, 0x4e, 0x14, 0x4d, + 0x14, 0xed, 0x9e, 0x1f, 0xbe, 0x99, 0x9a, 0x6f, 0x14, 0x2b, 0x31, 0x99, 0x4c, 0x62, 0x0f, 0x8e, + 0x1b, 0x12, 0xa4, 0x5a, 0x08, 0x41, 0x82, 0x2b, 0x5a, 0x89, 0xc1, 0x84, 0x98, 0x94, 0xe0, 0x42, + 0x5d, 0x58, 0xd3, 0x73, 0xe9, 0x69, 0xc7, 0xfe, 0x49, 0x55, 0xf5, 0x28, 0x3b, 0x1e, 0xc1, 0xa5, + 0x4b, 0x13, 0x9f, 0xc4, 0x1d, 0x4b, 0x96, 0x2c, 0xcc, 0x44, 0xda, 0x27, 0xf0, 0x0d, 0x4c, 0x55, + 0x17, 0xcc, 0x00, 0x31, 0xc0, 0xae, 0xeb, 0xdc, 0x7b, 0xce, 0x3d, 0xf7, 0x54, 0x17, 0x7a, 0x31, + 0x5c, 0x13, 0x24, 0x4c, 0xdc, 0x61, 0xd6, 0x03, 0x1e, 0x83, 0x04, 0xe1, 0x8e, 0x20, 0xee, 0x27, + 0xdc, 0x35, 0x05, 0x96, 0x86, 0x2e, 0xcb, 0xe4, 0x00, 0x62, 0x19, 0xfa, 0x4c, 0x86, 0x49, 0xec, + 0x8e, 0x96, 0x7a, 0x20, 0xd9, 0x92, 0x1b, 0x40, 0x0c, 0x9c, 0x49, 0xe8, 0x93, 0x94, 0x27, 0x32, + 0xc1, 0xf7, 0x0b, 0x0a, 0x61, 0x69, 0x48, 0xce, 0x53, 0x88, 0xa1, 0xb4, 0x17, 0x83, 0x50, 0x0e, + 0xb2, 0x1e, 0xf1, 0x93, 0xc8, 0x0d, 0x92, 0x20, 0x71, 0x35, 0xb3, 0x97, 0xed, 0xe9, 0x93, 0x3e, + 0xe8, 0xaf, 0x42, 0xb1, 0xbd, 0x32, 0x31, 0x11, 0x31, 0x7f, 0x10, 0xc6, 0xc0, 0xf7, 0xdd, 0x74, + 0x18, 0x28, 0x40, 0xb8, 0x11, 0x48, 0xe6, 0x8e, 0x2e, 0xf9, 0x68, 0xbb, 0xff, 0x62, 0xf1, 0x2c, + 0x96, 0x61, 0x04, 0x97, 0x08, 0xab, 0x57, 0x11, 0x84, 0x3f, 0x80, 0x88, 0x5d, 0xe4, 0x75, 0x1f, + 0x23, 0xb4, 0xf9, 0x59, 0x72, 0xf6, 0x9a, 0x7d, 0xcc, 0x00, 0x77, 0x50, 0x35, 0x94, 0x10, 0x89, + 0x96, 0x3d, 0x57, 0x9e, 0xaf, 0x7b, 0xf5, 0x7c, 0xdc, 0xa9, 0x6e, 0x29, 0x80, 0x16, 0xf8, 0x7a, + 0xed, 0xeb, 0xb7, 0x8e, 0x75, 0xf0, 0x73, 0xce, 0xea, 0x7e, 0x2f, 0xa1, 0xc6, 0x4e, 0x32, 0x84, + 0x98, 0xc2, 0x28, 0x84, 0x4f, 0xf8, 0x3d, 0xaa, 0xa9, 0x65, 0xfa, 0x4c, 0xb2, 0x96, 0x3d, 0x67, + 0xcf, 0x37, 0x96, 0x1f, 0x91, 0x49, 0x98, 0x67, 0x9e, 0x48, 0x3a, 0x0c, 0x14, 0x20, 0x88, 0xea, + 0x26, 0xa3, 0x25, 0xf2, 0xb2, 0xf7, 0x01, 0x7c, 0xb9, 0x0d, 0x92, 0x79, 0xf8, 0x70, 0xdc, 0xb1, + 0xf2, 0x71, 0x07, 0x4d, 0x30, 0x7a, 0xa6, 0x8a, 0x77, 0x50, 0x45, 0xa4, 0xe0, 0xb7, 0x4a, 0x5a, + 0x7d, 0x99, 0x5c, 0x79, 0x55, 0x64, 0xca, 0xdf, 0xab, 0x14, 0x7c, 0xef, 0x7f, 0xa3, 0x5f, 0x51, + 0x27, 0xaa, 0xd5, 0xf0, 0x3b, 0x34, 0x23, 0x24, 0x93, 0x99, 0x68, 0x95, 0xb5, 0xee, 0xca, 0x0d, + 0x75, 0x35, 0xd7, 0xbb, 0x65, 0x94, 0x67, 0x8a, 0x33, 0x35, 0x9a, 0x5d, 0x1f, 0xdd, 0xbe, 0x60, + 0x02, 0x3f, 0x40, 0x55, 0xa9, 0x20, 0x9d, 0x52, 0xdd, 0x6b, 0x1a, 0x66, 0xb5, 0xe8, 0x2b, 0x6a, + 0x78, 0x01, 0xd5, 0x59, 0xd6, 0x0f, 0x21, 0xf6, 0x41, 0xb4, 0x4a, 0xfa, 0x32, 0x9a, 0xf9, 0xb8, + 0x53, 0xdf, 0x38, 0x05, 0xe9, 0xa4, 0xde, 0xfd, 0x63, 0xa3, 0x3b, 0x97, 0x2c, 0xe1, 0x27, 0xa8, + 0x39, 0x65, 0x1f, 0xfa, 0x7a, 0x5e, 0xcd, 0xbb, 0x6b, 0xe6, 0x35, 0x37, 0xa6, 0x8b, 0xf4, 0x7c, + 0x2f, 0xde, 0x46, 0x95, 0x4c, 0x00, 0x37, 0x59, 0x2f, 0x5c, 0x23, 0x93, 0x5d, 0x01, 0x7c, 0x2b, + 0xde, 0x4b, 0x26, 0x21, 0x2b, 0x84, 0x6a, 0x19, 0xb5, 0x33, 0x70, 0x9e, 0x70, 0x9d, 0xf1, 0xd4, + 0xce, 0x9b, 0x0a, 0xa4, 0x45, 0xed, 0xfc, 0xce, 0x95, 0x2b, 0x76, 0xfe, 0x51, 0x42, 0xb5, 0xd3, + 0x91, 0xf8, 0x21, 0xaa, 0xa9, 0x31, 0x31, 0x8b, 0xc0, 0xa4, 0x3a, 0x6b, 0x26, 0xe8, 0x1e, 0x85, + 0xd3, 0xb3, 0x0e, 0x7c, 0x0f, 0x95, 0xb3, 0xb0, 0xaf, 0x57, 0xab, 0x7b, 0x0d, 0xd3, 0x58, 0xde, + 0xdd, 0x7a, 0x46, 0x15, 0x8e, 0xbb, 0x68, 0x26, 0xe0, 0x49, 0x96, 0xaa, 0x1f, 0x42, 0x79, 0x40, + 0xea, 0x5a, 0x9f, 0x6b, 0x84, 0x9a, 0x0a, 0x7e, 0x8b, 0xaa, 0xa0, 0x5e, 0x8d, 0xb6, 0xd9, 0x58, + 0x5e, 0xbd, 0x41, 0x3e, 0x44, 0x3f, 0xb7, 0xcd, 0x58, 0xf2, 0xfd, 0xa9, 0x1c, 0x14, 0x46, 0x0b, + 0xcd, 0x76, 0x60, 0x9e, 0xa4, 0xee, 0xc1, 0xb3, 0xa8, 0x3c, 0x84, 0xfd, 0x62, 0x2d, 0xaa, 0x3e, + 0xf1, 0x53, 0x54, 0x1d, 0xa9, 0xd7, 0x6a, 0x2e, 0x67, 0xf1, 0x1a, 0xc3, 0x27, 0x4f, 0x9c, 0x16, + 0xdc, 0xf5, 0xd2, 0x9a, 0xed, 0x2d, 0x1e, 0x9e, 0x38, 0xd6, 0xd1, 0x89, 0x63, 0x1d, 0x9f, 0x38, + 0xd6, 0x41, 0xee, 0xd8, 0x87, 0xb9, 0x63, 0x1f, 0xe5, 0x8e, 0x7d, 0x9c, 0x3b, 0xf6, 0xaf, 0xdc, + 0xb1, 0xbf, 0xfc, 0x76, 0xac, 0x37, 0xff, 0x19, 0x91, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0xf7, + 0xd6, 0x32, 0x28, 0x68, 0x05, 0x00, 0x00, } diff --git a/vendor/k8s.io/api/authentication/v1beta1/generated.proto b/vendor/k8s.io/api/authentication/v1beta1/generated.proto index 3d0abd15d..caf2a6a53 100644 --- a/vendor/k8s.io/api/authentication/v1beta1/generated.proto +++ b/vendor/k8s.io/api/authentication/v1beta1/generated.proto @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -24,7 +24,6 @@ package k8s.io.api.authentication.v1beta1; import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; -import "k8s.io/apimachinery/pkg/util/intstr/generated.proto"; // Package-wide variables from generator "generated". option go_package = "v1beta1"; @@ -58,6 +57,14 @@ message TokenReviewSpec { // Token is the opaque bearer token. // +optional optional string token = 1; + + // Audiences is a list of the identifiers that the resource server presented + // with the token identifies as. Audience-aware token authenticators will + // verify that the token was intended for at least one of the audiences in + // this list. If no audiences are provided, the audience will default to the + // audience of the Kubernetes apiserver. + // +optional + repeated string audiences = 2; } // TokenReviewStatus is the result of the token authentication request. @@ -70,6 +77,18 @@ message TokenReviewStatus { // +optional optional UserInfo user = 2; + // Audiences are audience identifiers chosen by the authenticator that are + // compatible with both the TokenReview and token. An identifier is any + // identifier in the intersection of the TokenReviewSpec audiences and the + // token's audiences. A client of the TokenReview API that sets the + // spec.audiences field should validate that a compatible audience identifier + // is returned in the status.audiences field to ensure that the TokenReview + // server is audience aware. If a TokenReview returns an empty + // status.audience field where status.authenticated is "true", the token is + // valid against the audience of the Kubernetes API server. + // +optional + repeated string audiences = 4; + // Error indicates that the token couldn't be checked // +optional optional string error = 3; diff --git a/vendor/k8s.io/api/authentication/v1beta1/types.go b/vendor/k8s.io/api/authentication/v1beta1/types.go index a90949dc3..0b6cba822 100644 --- a/vendor/k8s.io/api/authentication/v1beta1/types.go +++ b/vendor/k8s.io/api/authentication/v1beta1/types.go @@ -48,6 +48,13 @@ type TokenReviewSpec struct { // Token is the opaque bearer token. // +optional Token string `json:"token,omitempty" protobuf:"bytes,1,opt,name=token"` + // Audiences is a list of the identifiers that the resource server presented + // with the token identifies as. Audience-aware token authenticators will + // verify that the token was intended for at least one of the audiences in + // this list. If no audiences are provided, the audience will default to the + // audience of the Kubernetes apiserver. + // +optional + Audiences []string `json:"audiences,omitempty" protobuf:"bytes,2,rep,name=audiences"` } // TokenReviewStatus is the result of the token authentication request. @@ -58,6 +65,17 @@ type TokenReviewStatus struct { // User is the UserInfo associated with the provided token. // +optional User UserInfo `json:"user,omitempty" protobuf:"bytes,2,opt,name=user"` + // Audiences are audience identifiers chosen by the authenticator that are + // compatible with both the TokenReview and token. An identifier is any + // identifier in the intersection of the TokenReviewSpec audiences and the + // token's audiences. A client of the TokenReview API that sets the + // spec.audiences field should validate that a compatible audience identifier + // is returned in the status.audiences field to ensure that the TokenReview + // server is audience aware. If a TokenReview returns an empty + // status.audience field where status.authenticated is "true", the token is + // valid against the audience of the Kubernetes API server. + // +optional + Audiences []string `json:"audiences,omitempty" protobuf:"bytes,4,rep,name=audiences"` // Error indicates that the token couldn't be checked // +optional Error string `json:"error,omitempty" protobuf:"bytes,3,opt,name=error"` diff --git a/vendor/k8s.io/api/authentication/v1beta1/types_swagger_doc_generated.go b/vendor/k8s.io/api/authentication/v1beta1/types_swagger_doc_generated.go index f910bea6f..8c9acfb5b 100644 --- a/vendor/k8s.io/api/authentication/v1beta1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/authentication/v1beta1/types_swagger_doc_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2016 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -26,7 +26,7 @@ package v1beta1 // // Those methods can be generated by using hack/update-generated-swagger-docs.sh -// AUTO-GENERATED FUNCTIONS START HERE +// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT. var map_TokenReview = map[string]string{ "": "TokenReview attempts to authenticate a token to a known user. Note: TokenReview requests may be cached by the webhook token authenticator plugin in the kube-apiserver.", "spec": "Spec holds information about the request being evaluated", @@ -38,8 +38,9 @@ func (TokenReview) SwaggerDoc() map[string]string { } var map_TokenReviewSpec = map[string]string{ - "": "TokenReviewSpec is a description of the token authentication request.", - "token": "Token is the opaque bearer token.", + "": "TokenReviewSpec is a description of the token authentication request.", + "token": "Token is the opaque bearer token.", + "audiences": "Audiences is a list of the identifiers that the resource server presented with the token identifies as. Audience-aware token authenticators will verify that the token was intended for at least one of the audiences in this list. If no audiences are provided, the audience will default to the audience of the Kubernetes apiserver.", } func (TokenReviewSpec) SwaggerDoc() map[string]string { @@ -50,6 +51,7 @@ var map_TokenReviewStatus = map[string]string{ "": "TokenReviewStatus is the result of the token authentication request.", "authenticated": "Authenticated indicates that the token was associated with a known user.", "user": "User is the UserInfo associated with the provided token.", + "audiences": "Audiences are audience identifiers chosen by the authenticator that are compatible with both the TokenReview and token. An identifier is any identifier in the intersection of the TokenReviewSpec audiences and the token's audiences. A client of the TokenReview API that sets the spec.audiences field should validate that a compatible audience identifier is returned in the status.audiences field to ensure that the TokenReview server is audience aware. If a TokenReview returns an empty status.audience field where status.authenticated is \"true\", the token is valid against the audience of the Kubernetes API server.", "error": "Error indicates that the token couldn't be checked", } diff --git a/vendor/k8s.io/api/authentication/v1beta1/zz_generated.deepcopy.go b/vendor/k8s.io/api/authentication/v1beta1/zz_generated.deepcopy.go index 57d878e9a..a5d82a810 100644 --- a/vendor/k8s.io/api/authentication/v1beta1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/api/authentication/v1beta1/zz_generated.deepcopy.go @@ -1,7 +1,7 @@ // +build !ignore_autogenerated /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -49,7 +49,7 @@ func (in *TokenReview) DeepCopyInto(out *TokenReview) { *out = *in out.TypeMeta = in.TypeMeta in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - out.Spec = in.Spec + in.Spec.DeepCopyInto(&out.Spec) in.Status.DeepCopyInto(&out.Status) return } @@ -75,6 +75,11 @@ func (in *TokenReview) DeepCopyObject() runtime.Object { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *TokenReviewSpec) DeepCopyInto(out *TokenReviewSpec) { *out = *in + if in.Audiences != nil { + in, out := &in.Audiences, &out.Audiences + *out = make([]string, len(*in)) + copy(*out, *in) + } return } @@ -92,6 +97,11 @@ func (in *TokenReviewSpec) DeepCopy() *TokenReviewSpec { func (in *TokenReviewStatus) DeepCopyInto(out *TokenReviewStatus) { *out = *in in.User.DeepCopyInto(&out.User) + if in.Audiences != nil { + in, out := &in.Audiences, &out.Audiences + *out = make([]string, len(*in)) + copy(*out, *in) + } return } @@ -117,12 +127,15 @@ func (in *UserInfo) DeepCopyInto(out *UserInfo) { in, out := &in.Extra, &out.Extra *out = make(map[string]ExtraValue, len(*in)) for key, val := range *in { + var outVal []string if val == nil { (*out)[key] = nil } else { - (*out)[key] = make([]string, len(val)) - copy((*out)[key], val) + in, out := &val, &outVal + *out = make(ExtraValue, len(*in)) + copy(*out, *in) } + (*out)[key] = outVal } } return diff --git a/vendor/k8s.io/api/authorization/OWNERS b/vendor/k8s.io/api/authorization/OWNERS index c1613fc2e..ff4a7f4bf 100755 --- a/vendor/k8s.io/api/authorization/OWNERS +++ b/vendor/k8s.io/api/authorization/OWNERS @@ -1,17 +1,7 @@ +# approval on api packages bubbles to api-approvers reviewers: -- thockin -- lavalamp -- smarterclayton -- wojtek-t -- deads2k -- liggitt -- nikhiljindal -- erictune -- sttts -- ncdc -- dims -- mml -- mbohlool -- david-mcmahon -- jianhuiz -- enj +- sig-auth-authorizers-approvers +- sig-auth-authorizers-reviewers +labels: +- sig/auth + diff --git a/vendor/k8s.io/api/authorization/v1/BUILD b/vendor/k8s.io/api/authorization/v1/BUILD deleted file mode 100644 index af9e74a63..000000000 --- a/vendor/k8s.io/api/authorization/v1/BUILD +++ /dev/null @@ -1,45 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "generated.pb.go", - "register.go", - "types.go", - "types_swagger_doc_generated.go", - "zz_generated.deepcopy.go", - ], - importpath = "k8s.io/api/authorization/v1", - deps = [ - "//vendor/github.com/gogo/protobuf/proto:go_default_library", - "//vendor/github.com/gogo/protobuf/sortkeys:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) - -filegroup( - name = "go_default_library_protos", - srcs = ["generated.proto"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/api/authorization/v1/doc.go b/vendor/k8s.io/api/authorization/v1/doc.go index c06b798df..c63ac28cf 100644 --- a/vendor/k8s.io/api/authorization/v1/doc.go +++ b/vendor/k8s.io/api/authorization/v1/doc.go @@ -18,4 +18,5 @@ limitations under the License. // +k8s:openapi-gen=true // +groupName=authorization.k8s.io + package v1 // import "k8s.io/api/authorization/v1" diff --git a/vendor/k8s.io/api/authorization/v1/generated.pb.go b/vendor/k8s.io/api/authorization/v1/generated.pb.go index bdb606c0b..fc6a25f62 100644 --- a/vendor/k8s.io/api/authorization/v1/generated.pb.go +++ b/vendor/k8s.io/api/authorization/v1/generated.pb.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -14,9 +14,8 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: k8s.io/kubernetes/vendor/k8s.io/api/authorization/v1/generated.proto -// DO NOT EDIT! /* Package v1 is a generated protocol buffer package. @@ -795,24 +794,6 @@ func (m *SubjectRulesReviewStatus) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Generated(dAtA []byte, offset int, v uint64) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - dAtA[offset+4] = uint8(v >> 32) - dAtA[offset+5] = uint8(v >> 40) - dAtA[offset+6] = uint8(v >> 48) - dAtA[offset+7] = uint8(v >> 56) - return offset + 8 -} -func encodeFixed32Generated(dAtA []byte, offset int, v uint32) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - return offset + 4 -} func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -2888,51 +2869,14 @@ func (m *SubjectAccessReviewSpec) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.Extra == nil { m.Extra = make(map[string]ExtraValue) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + mapvalue := &ExtraValue{} + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -2942,46 +2886,85 @@ func (m *SubjectAccessReviewSpec) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } + if mapmsglen < 0 { + return ErrInvalidLengthGenerated + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthGenerated + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue = &ExtraValue{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &ExtraValue{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.Extra[mapkey] = *mapvalue - } else { - var mapvalue ExtraValue - m.Extra[mapkey] = mapvalue } + m.Extra[mapkey] = *mapvalue iNdEx = postIndex case 6: if wireType != 2 { @@ -3452,77 +3435,77 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 1152 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x56, 0x4f, 0x6f, 0x1b, 0x45, - 0x14, 0xf7, 0xae, 0xed, 0xd4, 0x1e, 0x37, 0x24, 0x9d, 0x28, 0xcd, 0x36, 0x15, 0x76, 0xb4, 0x48, - 0x90, 0x8a, 0xb2, 0x4b, 0x4c, 0xdb, 0x44, 0x95, 0x2a, 0x14, 0x2b, 0x11, 0x8a, 0xd4, 0x96, 0x6a, - 0xa2, 0x44, 0xa2, 0x08, 0xc4, 0x78, 0x3d, 0xb1, 0x97, 0xd8, 0xbb, 0xcb, 0xcc, 0xac, 0x43, 0x38, - 0x55, 0xe2, 0x0b, 0x70, 0xe4, 0xc0, 0x81, 0x6f, 0xc0, 0x05, 0x89, 0x1b, 0x07, 0x0e, 0x28, 0xc7, - 0x1e, 0x8b, 0x84, 0x2c, 0xb2, 0x9c, 0xf9, 0x0e, 0x68, 0x66, 0xc7, 0xde, 0x75, 0xb2, 0x76, 0x13, - 0x0e, 0xf4, 0xd2, 0xdb, 0xee, 0xfb, 0xfd, 0xde, 0x9f, 0x79, 0x7f, 0x66, 0x1e, 0xd8, 0x3a, 0xdc, - 0x60, 0x96, 0xeb, 0xdb, 0x87, 0x61, 0x93, 0x50, 0x8f, 0x70, 0xc2, 0xec, 0x3e, 0xf1, 0x5a, 0x3e, - 0xb5, 0x15, 0x80, 0x03, 0xd7, 0xc6, 0x21, 0xef, 0xf8, 0xd4, 0xfd, 0x06, 0x73, 0xd7, 0xf7, 0xec, - 0xfe, 0x9a, 0xdd, 0x26, 0x1e, 0xa1, 0x98, 0x93, 0x96, 0x15, 0x50, 0x9f, 0xfb, 0xf0, 0x66, 0x4c, - 0xb6, 0x70, 0xe0, 0x5a, 0x63, 0x64, 0xab, 0xbf, 0xb6, 0xfc, 0x5e, 0xdb, 0xe5, 0x9d, 0xb0, 0x69, - 0x39, 0x7e, 0xcf, 0x6e, 0xfb, 0x6d, 0xdf, 0x96, 0x3a, 0xcd, 0xf0, 0x40, 0xfe, 0xc9, 0x1f, 0xf9, - 0x15, 0xdb, 0x5a, 0xbe, 0x93, 0x38, 0xee, 0x61, 0xa7, 0xe3, 0x7a, 0x84, 0x1e, 0xdb, 0xc1, 0x61, - 0x5b, 0x08, 0x98, 0xdd, 0x23, 0x1c, 0x67, 0x44, 0xb0, 0x6c, 0x4f, 0xd2, 0xa2, 0xa1, 0xc7, 0xdd, - 0x1e, 0x39, 0xa7, 0x70, 0xef, 0x65, 0x0a, 0xcc, 0xe9, 0x90, 0x1e, 0x3e, 0xa7, 0xf7, 0xc1, 0x24, - 0xbd, 0x90, 0xbb, 0x5d, 0xdb, 0xf5, 0x38, 0xe3, 0xf4, 0xac, 0x92, 0xb9, 0x0e, 0xc0, 0xf6, 0xd7, - 0x9c, 0xe2, 0x7d, 0xdc, 0x0d, 0x09, 0xac, 0x81, 0xa2, 0xcb, 0x49, 0x8f, 0x19, 0xda, 0x4a, 0x7e, - 0xb5, 0xdc, 0x28, 0x47, 0x83, 0x5a, 0x71, 0x47, 0x08, 0x50, 0x2c, 0xbf, 0x5f, 0xfa, 0xfe, 0xc7, - 0x5a, 0xee, 0xd9, 0x9f, 0x2b, 0x39, 0xf3, 0x67, 0x1d, 0x18, 0x0f, 0x7d, 0x07, 0x77, 0x77, 0xc3, - 0xe6, 0x97, 0xc4, 0xe1, 0x9b, 0x8e, 0x43, 0x18, 0x43, 0xa4, 0xef, 0x92, 0x23, 0xf8, 0x05, 0x28, - 0x89, 0x74, 0xb4, 0x30, 0xc7, 0x86, 0xb6, 0xa2, 0xad, 0x56, 0xea, 0xef, 0x5b, 0x49, 0x21, 0x46, - 0xd1, 0x59, 0xc1, 0x61, 0x5b, 0x08, 0x98, 0x25, 0xd8, 0x56, 0x7f, 0xcd, 0xfa, 0x58, 0xda, 0x7a, - 0x44, 0x38, 0x6e, 0xc0, 0x93, 0x41, 0x2d, 0x17, 0x0d, 0x6a, 0x20, 0x91, 0xa1, 0x91, 0x55, 0xb8, - 0x0f, 0x0a, 0x2c, 0x20, 0x8e, 0xa1, 0x4b, 0xeb, 0x77, 0xac, 0x29, 0x65, 0xb6, 0x32, 0x22, 0xdc, - 0x0d, 0x88, 0xd3, 0xb8, 0xaa, 0x3c, 0x14, 0xc4, 0x1f, 0x92, 0xf6, 0xe0, 0xe7, 0x60, 0x86, 0x71, - 0xcc, 0x43, 0x66, 0xe4, 0xa5, 0xe5, 0x7b, 0x97, 0xb6, 0x2c, 0xb5, 0x1b, 0x6f, 0x28, 0xdb, 0x33, - 0xf1, 0x3f, 0x52, 0x56, 0xcd, 0x4f, 0xc1, 0xe2, 0x63, 0xdf, 0x43, 0x84, 0xf9, 0x21, 0x75, 0xc8, - 0x26, 0xe7, 0xd4, 0x6d, 0x86, 0x9c, 0x30, 0xb8, 0x02, 0x0a, 0x01, 0xe6, 0x1d, 0x99, 0xae, 0x72, - 0x12, 0xda, 0x13, 0xcc, 0x3b, 0x48, 0x22, 0x82, 0xd1, 0x27, 0xb4, 0x29, 0x8f, 0x9c, 0x62, 0xec, - 0x13, 0xda, 0x44, 0x12, 0x31, 0xbf, 0x02, 0x73, 0x29, 0xe3, 0x28, 0xec, 0xca, 0x8a, 0x0a, 0x68, - 0xac, 0xa2, 0x42, 0x83, 0xa1, 0x58, 0x0e, 0x1f, 0x80, 0x39, 0x2f, 0xd1, 0xd9, 0x43, 0x0f, 0x99, - 0xa1, 0x4b, 0xea, 0x42, 0x34, 0xa8, 0xa5, 0xcd, 0x09, 0x08, 0x9d, 0xe5, 0x9a, 0xbf, 0xea, 0x00, - 0x66, 0x9c, 0xc6, 0x06, 0x65, 0x0f, 0xf7, 0x08, 0x0b, 0xb0, 0x43, 0xd4, 0x91, 0xae, 0xa9, 0x80, - 0xcb, 0x8f, 0x87, 0x00, 0x4a, 0x38, 0x2f, 0x3f, 0x1c, 0x7c, 0x0b, 0x14, 0xdb, 0xd4, 0x0f, 0x03, - 0x59, 0x98, 0x72, 0x63, 0x56, 0x51, 0x8a, 0x1f, 0x09, 0x21, 0x8a, 0x31, 0x78, 0x0b, 0x5c, 0xe9, - 0x13, 0xca, 0x5c, 0xdf, 0x33, 0x0a, 0x92, 0x36, 0xa7, 0x68, 0x57, 0xf6, 0x63, 0x31, 0x1a, 0xe2, - 0xf0, 0x36, 0x28, 0x51, 0x15, 0xb8, 0x51, 0x94, 0xdc, 0x79, 0xc5, 0x2d, 0x8d, 0x32, 0x38, 0x62, - 0xc0, 0xbb, 0xa0, 0xc2, 0xc2, 0xe6, 0x48, 0x61, 0x46, 0x2a, 0x2c, 0x28, 0x85, 0xca, 0x6e, 0x02, - 0xa1, 0x34, 0x4f, 0x1c, 0x4b, 0x9c, 0xd1, 0xb8, 0x32, 0x7e, 0x2c, 0x91, 0x02, 0x24, 0x11, 0xf3, - 0x37, 0x0d, 0x5c, 0xbd, 0x5c, 0xc5, 0xde, 0x05, 0x65, 0x1c, 0xb8, 0xf2, 0xd8, 0xc3, 0x5a, 0xcd, - 0x8a, 0xbc, 0x6e, 0x3e, 0xd9, 0x89, 0x85, 0x28, 0xc1, 0x05, 0x79, 0x18, 0x8c, 0x68, 0xe9, 0x11, - 0x79, 0xe8, 0x92, 0xa1, 0x04, 0x87, 0xeb, 0x60, 0x76, 0xf8, 0x23, 0x8b, 0x64, 0x14, 0xa4, 0xc2, - 0xb5, 0x68, 0x50, 0x9b, 0x45, 0x69, 0x00, 0x8d, 0xf3, 0xcc, 0x5f, 0x74, 0xb0, 0xb4, 0x4b, 0xba, - 0x07, 0xaf, 0xe6, 0x2e, 0x78, 0x3a, 0x76, 0x17, 0x6c, 0x4c, 0x9f, 0xd8, 0xec, 0x28, 0x5f, 0xd9, - 0x7d, 0xf0, 0x83, 0x0e, 0x6e, 0x4e, 0x89, 0x09, 0x1e, 0x01, 0x48, 0xcf, 0x8d, 0x97, 0xca, 0xa3, - 0x3d, 0x35, 0x96, 0xf3, 0x53, 0xd9, 0xb8, 0x1e, 0x0d, 0x6a, 0x19, 0xd3, 0x8a, 0x32, 0x5c, 0xc0, - 0x6f, 0x35, 0xb0, 0xe8, 0x65, 0xdd, 0x54, 0x2a, 0xcd, 0xf5, 0xa9, 0xce, 0x33, 0xef, 0xb8, 0xc6, - 0x8d, 0x68, 0x50, 0xcb, 0xbe, 0xfe, 0x50, 0xb6, 0x2f, 0xf1, 0xca, 0x5c, 0x4f, 0xa5, 0x47, 0x0c, - 0xc8, 0xff, 0xd7, 0x57, 0x9f, 0x8c, 0xf5, 0xd5, 0xfa, 0x45, 0xfb, 0x2a, 0x15, 0xe4, 0xc4, 0xb6, - 0xfa, 0xec, 0x4c, 0x5b, 0xdd, 0xbd, 0x48, 0x5b, 0xa5, 0x0d, 0x4f, 0xef, 0xaa, 0x47, 0x60, 0x79, - 0x72, 0x40, 0x97, 0xbe, 0x9c, 0xcd, 0x9f, 0x74, 0xb0, 0xf0, 0xfa, 0x99, 0xbf, 0xcc, 0x58, 0xff, - 0x5e, 0x00, 0x4b, 0xaf, 0x47, 0x7a, 0xd2, 0xa2, 0x13, 0x32, 0x42, 0xd5, 0x33, 0x3e, 0x2a, 0xce, - 0x1e, 0x23, 0x14, 0x49, 0x04, 0x9a, 0x60, 0xa6, 0x1d, 0xbf, 0x6e, 0xf1, 0xfb, 0x03, 0x44, 0x82, - 0xd5, 0xd3, 0xa6, 0x10, 0xd8, 0x02, 0x45, 0x22, 0xf6, 0x56, 0xa3, 0xb8, 0x92, 0x5f, 0xad, 0xd4, - 0x3f, 0xfc, 0x2f, 0x9d, 0x61, 0xc9, 0xcd, 0x77, 0xdb, 0xe3, 0xf4, 0x38, 0x59, 0x27, 0xa4, 0x0c, - 0xc5, 0xc6, 0xe1, 0x9b, 0x20, 0x1f, 0xba, 0x2d, 0xf5, 0xda, 0x57, 0x14, 0x25, 0xbf, 0xb7, 0xb3, - 0x85, 0x84, 0x7c, 0x19, 0xab, 0xe5, 0x59, 0x9a, 0x80, 0xf3, 0x20, 0x7f, 0x48, 0x8e, 0xe3, 0x81, - 0x42, 0xe2, 0x13, 0x3e, 0x00, 0xc5, 0xbe, 0xd8, 0xab, 0x55, 0x7e, 0xdf, 0x99, 0x1a, 0x64, 0xb2, - 0x86, 0xa3, 0x58, 0xeb, 0xbe, 0xbe, 0xa1, 0x99, 0x7f, 0x68, 0xe0, 0xc6, 0xc4, 0xf6, 0x13, 0xeb, - 0x0e, 0xee, 0x76, 0xfd, 0x23, 0xd2, 0x92, 0x6e, 0x4b, 0xc9, 0xba, 0xb3, 0x19, 0x8b, 0xd1, 0x10, - 0x87, 0x6f, 0x83, 0x19, 0x4a, 0x30, 0xf3, 0x3d, 0xb5, 0x62, 0x8d, 0x3a, 0x17, 0x49, 0x29, 0x52, - 0x28, 0xdc, 0x04, 0x73, 0x44, 0xb8, 0x97, 0x71, 0x6d, 0x53, 0xea, 0x0f, 0x2b, 0xb5, 0xa4, 0x14, - 0xe6, 0xb6, 0xc7, 0x61, 0x74, 0x96, 0x2f, 0x5c, 0xb5, 0x88, 0xe7, 0x92, 0x96, 0xdc, 0xc1, 0x4a, - 0x89, 0xab, 0x2d, 0x29, 0x45, 0x0a, 0x35, 0xff, 0xd1, 0x81, 0x31, 0xe9, 0x6a, 0x83, 0x07, 0xc9, - 0x2e, 0x22, 0x41, 0xb9, 0x0e, 0x55, 0xea, 0xb7, 0x2e, 0x34, 0x20, 0x42, 0xa3, 0xb1, 0xa8, 0xdc, - 0xce, 0xa6, 0xa5, 0xa9, 0xd5, 0x45, 0xfe, 0x42, 0x0a, 0xe6, 0xbd, 0xf1, 0x9d, 0x39, 0x5e, 0xaa, - 0x2a, 0xf5, 0xdb, 0x17, 0x1d, 0x07, 0xe9, 0xcd, 0x50, 0xde, 0xe6, 0xcf, 0x00, 0x0c, 0x9d, 0xb3, - 0x0f, 0xeb, 0x00, 0xb8, 0x9e, 0xe3, 0xf7, 0x82, 0x2e, 0xe1, 0x44, 0xa6, 0xb7, 0x94, 0xdc, 0x83, - 0x3b, 0x23, 0x04, 0xa5, 0x58, 0x59, 0x75, 0x29, 0x5c, 0xae, 0x2e, 0x8d, 0xd5, 0x93, 0xd3, 0x6a, - 0xee, 0xf9, 0x69, 0x35, 0xf7, 0xe2, 0xb4, 0x9a, 0x7b, 0x16, 0x55, 0xb5, 0x93, 0xa8, 0xaa, 0x3d, - 0x8f, 0xaa, 0xda, 0x8b, 0xa8, 0xaa, 0xfd, 0x15, 0x55, 0xb5, 0xef, 0xfe, 0xae, 0xe6, 0x9e, 0xea, - 0xfd, 0xb5, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0xd6, 0x0e, 0xab, 0x82, 0x7c, 0x0f, 0x00, 0x00, + // 1140 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x56, 0x4d, 0x6f, 0x1b, 0xc5, + 0x1b, 0xf7, 0xae, 0xed, 0xc4, 0x1e, 0x37, 0xff, 0xa4, 0x13, 0xa5, 0xd9, 0xa6, 0xfa, 0xdb, 0xd1, + 0x22, 0x41, 0x2a, 0xca, 0x2e, 0xb1, 0xda, 0x26, 0xaa, 0x54, 0xa1, 0x58, 0x89, 0x50, 0xa4, 0xb6, + 0x54, 0x13, 0x25, 0x12, 0x45, 0x20, 0xc6, 0xeb, 0x89, 0xbd, 0xc4, 0xde, 0x5d, 0x66, 0x66, 0x1d, + 0xc2, 0xa9, 0x12, 0x5f, 0x80, 0x23, 0x07, 0x0e, 0x7c, 0x03, 0x2e, 0x48, 0xdc, 0x38, 0x70, 0x40, + 0x39, 0xf6, 0x58, 0x24, 0x64, 0x91, 0xe5, 0xcc, 0x77, 0x40, 0x33, 0x3b, 0xf6, 0xae, 0x93, 0xb5, + 0x9b, 0x70, 0xa0, 0x97, 0xde, 0x76, 0x9f, 0xdf, 0xef, 0x79, 0x99, 0xe7, 0x65, 0xe6, 0x01, 0xdb, + 0x47, 0x9b, 0xcc, 0x72, 0x7d, 0xfb, 0x28, 0x6c, 0x12, 0xea, 0x11, 0x4e, 0x98, 0xdd, 0x27, 0x5e, + 0xcb, 0xa7, 0xb6, 0x02, 0x70, 0xe0, 0xda, 0x38, 0xe4, 0x1d, 0x9f, 0xba, 0x5f, 0x63, 0xee, 0xfa, + 0x9e, 0xdd, 0x5f, 0xb7, 0xdb, 0xc4, 0x23, 0x14, 0x73, 0xd2, 0xb2, 0x02, 0xea, 0x73, 0x1f, 0xde, + 0x8a, 0xc9, 0x16, 0x0e, 0x5c, 0x6b, 0x8c, 0x6c, 0xf5, 0xd7, 0x57, 0xde, 0x6b, 0xbb, 0xbc, 0x13, + 0x36, 0x2d, 0xc7, 0xef, 0xd9, 0x6d, 0xbf, 0xed, 0xdb, 0x52, 0xa7, 0x19, 0x1e, 0xca, 0x3f, 0xf9, + 0x23, 0xbf, 0x62, 0x5b, 0x2b, 0x77, 0x13, 0xc7, 0x3d, 0xec, 0x74, 0x5c, 0x8f, 0xd0, 0x13, 0x3b, + 0x38, 0x6a, 0x0b, 0x01, 0xb3, 0x7b, 0x84, 0xe3, 0x8c, 0x08, 0x56, 0xec, 0x49, 0x5a, 0x34, 0xf4, + 0xb8, 0xdb, 0x23, 0x17, 0x14, 0xee, 0xbf, 0x4a, 0x81, 0x39, 0x1d, 0xd2, 0xc3, 0xe7, 0xf5, 0xcc, + 0x0d, 0x00, 0x76, 0xbe, 0xe2, 0x14, 0x1f, 0xe0, 0x6e, 0x48, 0x60, 0x0d, 0x14, 0x5d, 0x4e, 0x7a, + 0xcc, 0xd0, 0x56, 0xf3, 0x6b, 0xe5, 0x46, 0x39, 0x1a, 0xd4, 0x8a, 0xbb, 0x42, 0x80, 0x62, 0xf9, + 0x83, 0xd2, 0x77, 0x3f, 0xd4, 0x72, 0xcf, 0xff, 0x58, 0xcd, 0x99, 0x3f, 0xe9, 0xc0, 0x78, 0xe4, + 0x3b, 0xb8, 0xbb, 0x17, 0x36, 0xbf, 0x20, 0x0e, 0xdf, 0x72, 0x1c, 0xc2, 0x18, 0x22, 0x7d, 0x97, + 0x1c, 0xc3, 0xcf, 0x41, 0x49, 0x9c, 0xac, 0x85, 0x39, 0x36, 0xb4, 0x55, 0x6d, 0xad, 0x52, 0x7f, + 0xdf, 0x4a, 0x72, 0x3a, 0x0a, 0xd0, 0x0a, 0x8e, 0xda, 0x42, 0xc0, 0x2c, 0xc1, 0xb6, 0xfa, 0xeb, + 0xd6, 0x47, 0xd2, 0xd6, 0x63, 0xc2, 0x71, 0x03, 0x9e, 0x0e, 0x6a, 0xb9, 0x68, 0x50, 0x03, 0x89, + 0x0c, 0x8d, 0xac, 0xc2, 0x03, 0x50, 0x60, 0x01, 0x71, 0x0c, 0x5d, 0x5a, 0xbf, 0x6b, 0x4d, 0xa9, + 0x98, 0x95, 0x11, 0xe1, 0x5e, 0x40, 0x9c, 0xc6, 0x35, 0xe5, 0xa1, 0x20, 0xfe, 0x90, 0xb4, 0x07, + 0x3f, 0x03, 0x33, 0x8c, 0x63, 0x1e, 0x32, 0x23, 0x2f, 0x2d, 0xdf, 0xbf, 0xb2, 0x65, 0xa9, 0xdd, + 0xf8, 0x9f, 0xb2, 0x3d, 0x13, 0xff, 0x23, 0x65, 0xd5, 0xfc, 0x04, 0x2c, 0x3d, 0xf1, 0x3d, 0x44, + 0x98, 0x1f, 0x52, 0x87, 0x6c, 0x71, 0x4e, 0xdd, 0x66, 0xc8, 0x09, 0x83, 0xab, 0xa0, 0x10, 0x60, + 0xde, 0x91, 0xe9, 0x2a, 0x27, 0xa1, 0x3d, 0xc5, 0xbc, 0x83, 0x24, 0x22, 0x18, 0x7d, 0x42, 0x9b, + 0xf2, 0xc8, 0x29, 0xc6, 0x01, 0xa1, 0x4d, 0x24, 0x11, 0xf3, 0x4b, 0x30, 0x9f, 0x32, 0x8e, 0xc2, + 0xae, 0xac, 0xa8, 0x80, 0xc6, 0x2a, 0x2a, 0x34, 0x18, 0x8a, 0xe5, 0xf0, 0x21, 0x98, 0xf7, 0x12, + 0x9d, 0x7d, 0xf4, 0x88, 0x19, 0xba, 0xa4, 0x2e, 0x46, 0x83, 0x5a, 0xda, 0x9c, 0x80, 0xd0, 0x79, + 0xae, 0xf9, 0x8b, 0x0e, 0x60, 0xc6, 0x69, 0x6c, 0x50, 0xf6, 0x70, 0x8f, 0xb0, 0x00, 0x3b, 0x44, + 0x1d, 0xe9, 0xba, 0x0a, 0xb8, 0xfc, 0x64, 0x08, 0xa0, 0x84, 0xf3, 0xea, 0xc3, 0xc1, 0xb7, 0x40, + 0xb1, 0x4d, 0xfd, 0x30, 0x90, 0x85, 0x29, 0x37, 0xe6, 0x14, 0xa5, 0xf8, 0xa1, 0x10, 0xa2, 0x18, + 0x83, 0xb7, 0xc1, 0x6c, 0x9f, 0x50, 0xe6, 0xfa, 0x9e, 0x51, 0x90, 0xb4, 0x79, 0x45, 0x9b, 0x3d, + 0x88, 0xc5, 0x68, 0x88, 0xc3, 0x3b, 0xa0, 0x44, 0x55, 0xe0, 0x46, 0x51, 0x72, 0x17, 0x14, 0xb7, + 0x34, 0xca, 0xe0, 0x88, 0x01, 0xef, 0x81, 0x0a, 0x0b, 0x9b, 0x23, 0x85, 0x19, 0xa9, 0xb0, 0xa8, + 0x14, 0x2a, 0x7b, 0x09, 0x84, 0xd2, 0x3c, 0x71, 0x2c, 0x71, 0x46, 0x63, 0x76, 0xfc, 0x58, 0x22, + 0x05, 0x48, 0x22, 0xe6, 0xaf, 0x1a, 0xb8, 0x76, 0xb5, 0x8a, 0xbd, 0x0b, 0xca, 0x38, 0x70, 0xe5, + 0xb1, 0x87, 0xb5, 0x9a, 0x13, 0x79, 0xdd, 0x7a, 0xba, 0x1b, 0x0b, 0x51, 0x82, 0x0b, 0xf2, 0x30, + 0x18, 0xd1, 0xd2, 0x23, 0xf2, 0xd0, 0x25, 0x43, 0x09, 0x0e, 0x37, 0xc0, 0xdc, 0xf0, 0x47, 0x16, + 0xc9, 0x28, 0x48, 0x85, 0xeb, 0xd1, 0xa0, 0x36, 0x87, 0xd2, 0x00, 0x1a, 0xe7, 0x99, 0x3f, 0xeb, + 0x60, 0x79, 0x8f, 0x74, 0x0f, 0x5f, 0xcf, 0x5d, 0xf0, 0x6c, 0xec, 0x2e, 0xd8, 0x9c, 0x3e, 0xb1, + 0xd9, 0x51, 0xbe, 0xb6, 0xfb, 0xe0, 0x7b, 0x1d, 0xdc, 0x9a, 0x12, 0x13, 0x3c, 0x06, 0x90, 0x5e, + 0x18, 0x2f, 0x95, 0x47, 0x7b, 0x6a, 0x2c, 0x17, 0xa7, 0xb2, 0x71, 0x23, 0x1a, 0xd4, 0x32, 0xa6, + 0x15, 0x65, 0xb8, 0x80, 0xdf, 0x68, 0x60, 0xc9, 0xcb, 0xba, 0xa9, 0x54, 0x9a, 0xeb, 0x53, 0x9d, + 0x67, 0xde, 0x71, 0x8d, 0x9b, 0xd1, 0xa0, 0x96, 0x7d, 0xfd, 0xa1, 0x6c, 0x5f, 0xe2, 0x95, 0xb9, + 0x91, 0x4a, 0x8f, 0x18, 0x90, 0xff, 0xae, 0xaf, 0x3e, 0x1e, 0xeb, 0xab, 0x8d, 0xcb, 0xf6, 0x55, + 0x2a, 0xc8, 0x89, 0x6d, 0xf5, 0xe9, 0xb9, 0xb6, 0xba, 0x77, 0x99, 0xb6, 0x4a, 0x1b, 0x9e, 0xde, + 0x55, 0x8f, 0xc1, 0xca, 0xe4, 0x80, 0xae, 0x7c, 0x39, 0x9b, 0x3f, 0xea, 0x60, 0xf1, 0xcd, 0x33, + 0x7f, 0x95, 0xb1, 0xfe, 0xad, 0x00, 0x96, 0xdf, 0x8c, 0xf4, 0xa4, 0x45, 0x27, 0x64, 0x84, 0xaa, + 0x67, 0x7c, 0x54, 0x9c, 0x7d, 0x46, 0x28, 0x92, 0x08, 0x34, 0xc1, 0x4c, 0x3b, 0x7e, 0xdd, 0xe2, + 0xf7, 0x07, 0x88, 0x04, 0xab, 0xa7, 0x4d, 0x21, 0xb0, 0x05, 0x8a, 0x44, 0xec, 0xad, 0x46, 0x71, + 0x35, 0xbf, 0x56, 0xa9, 0x7f, 0xf0, 0x6f, 0x3a, 0xc3, 0x92, 0x9b, 0xef, 0x8e, 0xc7, 0xe9, 0x49, + 0xb2, 0x4e, 0x48, 0x19, 0x8a, 0x8d, 0xc3, 0xff, 0x83, 0x7c, 0xe8, 0xb6, 0xd4, 0x6b, 0x5f, 0x51, + 0x94, 0xfc, 0xfe, 0xee, 0x36, 0x12, 0xf2, 0x15, 0xac, 0x96, 0x67, 0x69, 0x02, 0x2e, 0x80, 0xfc, + 0x11, 0x39, 0x89, 0x07, 0x0a, 0x89, 0x4f, 0xf8, 0x10, 0x14, 0xfb, 0x62, 0xaf, 0x56, 0xf9, 0x7d, + 0x67, 0x6a, 0x90, 0xc9, 0x1a, 0x8e, 0x62, 0xad, 0x07, 0xfa, 0xa6, 0x66, 0xfe, 0xae, 0x81, 0x9b, + 0x13, 0xdb, 0x4f, 0xac, 0x3b, 0xb8, 0xdb, 0xf5, 0x8f, 0x49, 0x4b, 0xba, 0x2d, 0x25, 0xeb, 0xce, + 0x56, 0x2c, 0x46, 0x43, 0x1c, 0xbe, 0x0d, 0x66, 0x28, 0xc1, 0xcc, 0xf7, 0xd4, 0x8a, 0x35, 0xea, + 0x5c, 0x24, 0xa5, 0x48, 0xa1, 0x70, 0x0b, 0xcc, 0x13, 0xe1, 0x5e, 0xc6, 0xb5, 0x43, 0xa9, 0x3f, + 0xac, 0xd4, 0xb2, 0x52, 0x98, 0xdf, 0x19, 0x87, 0xd1, 0x79, 0xbe, 0x70, 0xd5, 0x22, 0x9e, 0x4b, + 0x5a, 0x72, 0x07, 0x2b, 0x25, 0xae, 0xb6, 0xa5, 0x14, 0x29, 0xd4, 0xfc, 0x5b, 0x07, 0xc6, 0xa4, + 0xab, 0x0d, 0x1e, 0x26, 0xbb, 0x88, 0x04, 0xe5, 0x3a, 0x54, 0xa9, 0xdf, 0xbe, 0xd4, 0x80, 0x08, + 0x8d, 0xc6, 0x92, 0x72, 0x3b, 0x97, 0x96, 0xa6, 0x56, 0x17, 0xf9, 0x0b, 0x29, 0x58, 0xf0, 0xc6, + 0x77, 0xe6, 0x78, 0xa9, 0xaa, 0xd4, 0xef, 0x5c, 0x76, 0x1c, 0xa4, 0x37, 0x43, 0x79, 0x5b, 0x38, + 0x07, 0x30, 0x74, 0xc1, 0x3e, 0xac, 0x03, 0xe0, 0x7a, 0x8e, 0xdf, 0x0b, 0xba, 0x84, 0x13, 0x99, + 0xde, 0x52, 0x72, 0x0f, 0xee, 0x8e, 0x10, 0x94, 0x62, 0x65, 0xd5, 0xa5, 0x70, 0xb5, 0xba, 0x34, + 0xd6, 0x4e, 0xcf, 0xaa, 0xb9, 0x17, 0x67, 0xd5, 0xdc, 0xcb, 0xb3, 0x6a, 0xee, 0x79, 0x54, 0xd5, + 0x4e, 0xa3, 0xaa, 0xf6, 0x22, 0xaa, 0x6a, 0x2f, 0xa3, 0xaa, 0xf6, 0x67, 0x54, 0xd5, 0xbe, 0xfd, + 0xab, 0x9a, 0x7b, 0xa6, 0xf7, 0xd7, 0xff, 0x09, 0x00, 0x00, 0xff, 0xff, 0x9f, 0x85, 0x45, 0x74, + 0x47, 0x0f, 0x00, 0x00, } diff --git a/vendor/k8s.io/api/authorization/v1/generated.proto b/vendor/k8s.io/api/authorization/v1/generated.proto index 2cd4af0c0..f68a04e49 100644 --- a/vendor/k8s.io/api/authorization/v1/generated.proto +++ b/vendor/k8s.io/api/authorization/v1/generated.proto @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -24,7 +24,6 @@ package k8s.io.api.authorization.v1; import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; -import "k8s.io/apimachinery/pkg/util/intstr/generated.proto"; // Package-wide variables from generator "generated". option go_package = "v1"; diff --git a/vendor/k8s.io/api/authorization/v1/types_swagger_doc_generated.go b/vendor/k8s.io/api/authorization/v1/types_swagger_doc_generated.go index 85503660c..8445f7116 100644 --- a/vendor/k8s.io/api/authorization/v1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/authorization/v1/types_swagger_doc_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2016 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -26,7 +26,7 @@ package v1 // // Those methods can be generated by using hack/update-generated-swagger-docs.sh -// AUTO-GENERATED FUNCTIONS START HERE +// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT. var map_LocalSubjectAccessReview = map[string]string{ "": "LocalSubjectAccessReview checks whether or not a user or group can perform an action in a given namespace. Having a namespace scoped resource makes it much easier to grant namespace scoped policy that includes permissions checking.", "spec": "Spec holds information about the request being evaluated. spec.namespace must be equal to the namespace you made the request against. If empty, it is defaulted.", diff --git a/vendor/k8s.io/api/authorization/v1/zz_generated.deepcopy.go b/vendor/k8s.io/api/authorization/v1/zz_generated.deepcopy.go index 3df85934a..1d11b38b0 100644 --- a/vendor/k8s.io/api/authorization/v1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/api/authorization/v1/zz_generated.deepcopy.go @@ -1,7 +1,7 @@ // +build !ignore_autogenerated /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -199,21 +199,13 @@ func (in *SelfSubjectAccessReviewSpec) DeepCopyInto(out *SelfSubjectAccessReview *out = *in if in.ResourceAttributes != nil { in, out := &in.ResourceAttributes, &out.ResourceAttributes - if *in == nil { - *out = nil - } else { - *out = new(ResourceAttributes) - **out = **in - } + *out = new(ResourceAttributes) + **out = **in } if in.NonResourceAttributes != nil { in, out := &in.NonResourceAttributes, &out.NonResourceAttributes - if *in == nil { - *out = nil - } else { - *out = new(NonResourceAttributes) - **out = **in - } + *out = new(NonResourceAttributes) + **out = **in } return } @@ -305,21 +297,13 @@ func (in *SubjectAccessReviewSpec) DeepCopyInto(out *SubjectAccessReviewSpec) { *out = *in if in.ResourceAttributes != nil { in, out := &in.ResourceAttributes, &out.ResourceAttributes - if *in == nil { - *out = nil - } else { - *out = new(ResourceAttributes) - **out = **in - } + *out = new(ResourceAttributes) + **out = **in } if in.NonResourceAttributes != nil { in, out := &in.NonResourceAttributes, &out.NonResourceAttributes - if *in == nil { - *out = nil - } else { - *out = new(NonResourceAttributes) - **out = **in - } + *out = new(NonResourceAttributes) + **out = **in } if in.Groups != nil { in, out := &in.Groups, &out.Groups @@ -330,12 +314,15 @@ func (in *SubjectAccessReviewSpec) DeepCopyInto(out *SubjectAccessReviewSpec) { in, out := &in.Extra, &out.Extra *out = make(map[string]ExtraValue, len(*in)) for key, val := range *in { + var outVal []string if val == nil { (*out)[key] = nil } else { - (*out)[key] = make([]string, len(val)) - copy((*out)[key], val) + in, out := &val, &outVal + *out = make(ExtraValue, len(*in)) + copy(*out, *in) } + (*out)[key] = outVal } } return diff --git a/vendor/k8s.io/api/authorization/v1beta1/BUILD b/vendor/k8s.io/api/authorization/v1beta1/BUILD deleted file mode 100644 index 06c953f2a..000000000 --- a/vendor/k8s.io/api/authorization/v1beta1/BUILD +++ /dev/null @@ -1,45 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "generated.pb.go", - "register.go", - "types.go", - "types_swagger_doc_generated.go", - "zz_generated.deepcopy.go", - ], - importpath = "k8s.io/api/authorization/v1beta1", - deps = [ - "//vendor/github.com/gogo/protobuf/proto:go_default_library", - "//vendor/github.com/gogo/protobuf/sortkeys:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) - -filegroup( - name = "go_default_library_protos", - srcs = ["generated.proto"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/api/authorization/v1beta1/doc.go b/vendor/k8s.io/api/authorization/v1beta1/doc.go index ea4f802e2..324f293a1 100644 --- a/vendor/k8s.io/api/authorization/v1beta1/doc.go +++ b/vendor/k8s.io/api/authorization/v1beta1/doc.go @@ -18,4 +18,5 @@ limitations under the License. // +k8s:openapi-gen=true // +groupName=authorization.k8s.io + package v1beta1 // import "k8s.io/api/authorization/v1beta1" diff --git a/vendor/k8s.io/api/authorization/v1beta1/generated.pb.go b/vendor/k8s.io/api/authorization/v1beta1/generated.pb.go index a9a8116b3..7cce98eb1 100644 --- a/vendor/k8s.io/api/authorization/v1beta1/generated.pb.go +++ b/vendor/k8s.io/api/authorization/v1beta1/generated.pb.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -14,9 +14,8 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: k8s.io/kubernetes/vendor/k8s.io/api/authorization/v1beta1/generated.proto -// DO NOT EDIT! /* Package v1beta1 is a generated protocol buffer package. @@ -795,24 +794,6 @@ func (m *SubjectRulesReviewStatus) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Generated(dAtA []byte, offset int, v uint64) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - dAtA[offset+4] = uint8(v >> 32) - dAtA[offset+5] = uint8(v >> 40) - dAtA[offset+6] = uint8(v >> 48) - dAtA[offset+7] = uint8(v >> 56) - return offset + 8 -} -func encodeFixed32Generated(dAtA []byte, offset int, v uint32) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - return offset + 4 -} func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -2888,51 +2869,14 @@ func (m *SubjectAccessReviewSpec) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.Extra == nil { m.Extra = make(map[string]ExtraValue) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + mapvalue := &ExtraValue{} + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -2942,46 +2886,85 @@ func (m *SubjectAccessReviewSpec) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } + if mapmsglen < 0 { + return ErrInvalidLengthGenerated + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthGenerated + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue = &ExtraValue{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &ExtraValue{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.Extra[mapkey] = *mapvalue - } else { - var mapvalue ExtraValue - m.Extra[mapkey] = mapvalue } + m.Extra[mapkey] = *mapvalue iNdEx = postIndex case 6: if wireType != 2 { @@ -3452,78 +3435,77 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 1154 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x56, 0x4d, 0x6f, 0x1b, 0xc5, - 0x1b, 0xf7, 0xfa, 0x25, 0xb1, 0xc7, 0xcd, 0x3f, 0xe9, 0x44, 0x69, 0xb6, 0xf9, 0x0b, 0xdb, 0x32, - 0x12, 0x0a, 0xa2, 0xdd, 0x25, 0xa1, 0x90, 0x12, 0xe8, 0x21, 0x56, 0x22, 0x14, 0xa9, 0x2d, 0xd5, - 0x44, 0xc9, 0x81, 0x4a, 0xc0, 0x78, 0x3d, 0xb1, 0x17, 0xdb, 0xbb, 0xcb, 0xcc, 0xac, 0x43, 0x10, - 0x87, 0x1e, 0x39, 0x72, 0xe4, 0xc8, 0x89, 0xef, 0xc0, 0x05, 0x09, 0x4e, 0x39, 0xf6, 0x18, 0x24, - 0x64, 0x91, 0xe5, 0x43, 0x70, 0x45, 0x33, 0x3b, 0xf6, 0xae, 0xe3, 0x75, 0x1c, 0xe7, 0x40, 0x2f, - 0xbd, 0xed, 0x3c, 0xbf, 0xe7, 0x6d, 0x9e, 0x97, 0xd9, 0x1f, 0xd8, 0x6f, 0x3f, 0x64, 0x86, 0xed, - 0x9a, 0x6d, 0xbf, 0x4e, 0xa8, 0x43, 0x38, 0x61, 0x66, 0x8f, 0x38, 0x0d, 0x97, 0x9a, 0x0a, 0xc0, - 0x9e, 0x6d, 0x62, 0x9f, 0xb7, 0x5c, 0x6a, 0x7f, 0x8b, 0xb9, 0xed, 0x3a, 0x66, 0x6f, 0xa3, 0x4e, - 0x38, 0xde, 0x30, 0x9b, 0xc4, 0x21, 0x14, 0x73, 0xd2, 0x30, 0x3c, 0xea, 0x72, 0x17, 0x56, 0x42, - 0x0b, 0x03, 0x7b, 0xb6, 0x31, 0x62, 0x61, 0x28, 0x8b, 0xb5, 0xfb, 0x4d, 0x9b, 0xb7, 0xfc, 0xba, - 0x61, 0xb9, 0x5d, 0xb3, 0xe9, 0x36, 0x5d, 0x53, 0x1a, 0xd6, 0xfd, 0x63, 0x79, 0x92, 0x07, 0xf9, - 0x15, 0x3a, 0x5c, 0x7b, 0x10, 0xa5, 0xd0, 0xc5, 0x56, 0xcb, 0x76, 0x08, 0x3d, 0x35, 0xbd, 0x76, - 0x53, 0x08, 0x98, 0xd9, 0x25, 0x1c, 0x9b, 0xbd, 0xb1, 0x34, 0xd6, 0xcc, 0x49, 0x56, 0xd4, 0x77, - 0xb8, 0xdd, 0x25, 0x63, 0x06, 0x1f, 0x4c, 0x33, 0x60, 0x56, 0x8b, 0x74, 0xf1, 0x98, 0xdd, 0x7b, - 0x93, 0xec, 0x7c, 0x6e, 0x77, 0x4c, 0xdb, 0xe1, 0x8c, 0xd3, 0xcb, 0x46, 0xd5, 0x2d, 0x00, 0xf6, - 0xbe, 0xe1, 0x14, 0x1f, 0xe1, 0x8e, 0x4f, 0x60, 0x19, 0xe4, 0x6c, 0x4e, 0xba, 0x4c, 0xd7, 0x2a, - 0x99, 0xf5, 0x42, 0xad, 0x10, 0xf4, 0xcb, 0xb9, 0x7d, 0x21, 0x40, 0xa1, 0x7c, 0x3b, 0xff, 0xe3, - 0x4f, 0xe5, 0xd4, 0x8b, 0x3f, 0x2b, 0xa9, 0xea, 0xaf, 0x69, 0xa0, 0x3f, 0x76, 0x2d, 0xdc, 0x39, - 0xf0, 0xeb, 0x5f, 0x11, 0x8b, 0xef, 0x58, 0x16, 0x61, 0x0c, 0x91, 0x9e, 0x4d, 0x4e, 0xe0, 0x97, - 0x20, 0x2f, 0xca, 0xd1, 0xc0, 0x1c, 0xeb, 0x5a, 0x45, 0x5b, 0x2f, 0x6e, 0xbe, 0x6b, 0x44, 0xdd, - 0x18, 0x66, 0x67, 0x78, 0xed, 0xa6, 0x10, 0x30, 0x43, 0x68, 0x1b, 0xbd, 0x0d, 0xe3, 0x53, 0xe9, - 0xeb, 0x09, 0xe1, 0xb8, 0x06, 0xcf, 0xfa, 0xe5, 0x54, 0xd0, 0x2f, 0x83, 0x48, 0x86, 0x86, 0x5e, - 0xe1, 0x73, 0x90, 0x65, 0x1e, 0xb1, 0xf4, 0xb4, 0xf4, 0xfe, 0xa1, 0x31, 0xad, 0xd7, 0x46, 0x42, - 0x9a, 0x07, 0x1e, 0xb1, 0x6a, 0xb7, 0x54, 0x98, 0xac, 0x38, 0x21, 0xe9, 0x14, 0x5a, 0x60, 0x8e, - 0x71, 0xcc, 0x7d, 0xa6, 0x67, 0xa4, 0xfb, 0x8f, 0x6e, 0xe6, 0x5e, 0xba, 0xa8, 0xfd, 0x4f, 0x05, - 0x98, 0x0b, 0xcf, 0x48, 0xb9, 0xae, 0x3e, 0x07, 0x2b, 0x4f, 0x5d, 0x07, 0x11, 0xe6, 0xfa, 0xd4, - 0x22, 0x3b, 0x9c, 0x53, 0xbb, 0xee, 0x73, 0xc2, 0x60, 0x05, 0x64, 0x3d, 0xcc, 0x5b, 0xb2, 0x70, - 0x85, 0x28, 0xbf, 0x67, 0x98, 0xb7, 0x90, 0x44, 0x84, 0x46, 0x8f, 0xd0, 0xba, 0xbc, 0x7c, 0x4c, - 0xe3, 0x88, 0xd0, 0x3a, 0x92, 0x48, 0xf5, 0x6b, 0xb0, 0x18, 0x73, 0x8e, 0xfc, 0x8e, 0xec, 0xad, - 0x80, 0x46, 0x7a, 0x2b, 0x2c, 0x18, 0x0a, 0xe5, 0xf0, 0x11, 0x58, 0x74, 0x22, 0x9b, 0x43, 0xf4, - 0x98, 0xe9, 0x69, 0xa9, 0xba, 0x1c, 0xf4, 0xcb, 0x71, 0x77, 0x02, 0x42, 0x97, 0x75, 0xc5, 0x40, - 0xc0, 0x84, 0xdb, 0x98, 0xa0, 0xe0, 0xe0, 0x2e, 0x61, 0x1e, 0xb6, 0x88, 0xba, 0xd2, 0x6d, 0x95, - 0x70, 0xe1, 0xe9, 0x00, 0x40, 0x91, 0xce, 0xf4, 0xcb, 0xc1, 0x37, 0x41, 0xae, 0x49, 0x5d, 0xdf, - 0x93, 0xdd, 0x29, 0xd4, 0x16, 0x94, 0x4a, 0xee, 0x13, 0x21, 0x44, 0x21, 0x06, 0xdf, 0x06, 0xf3, - 0x3d, 0x42, 0x99, 0xed, 0x3a, 0x7a, 0x56, 0xaa, 0x2d, 0x2a, 0xb5, 0xf9, 0xa3, 0x50, 0x8c, 0x06, - 0x38, 0xbc, 0x07, 0xf2, 0x54, 0x25, 0xae, 0xe7, 0xa4, 0xee, 0x92, 0xd2, 0xcd, 0x0f, 0x2b, 0x38, - 0xd4, 0x80, 0xef, 0x83, 0x22, 0xf3, 0xeb, 0x43, 0x83, 0x39, 0x69, 0xb0, 0xac, 0x0c, 0x8a, 0x07, - 0x11, 0x84, 0xe2, 0x7a, 0xe2, 0x5a, 0xe2, 0x8e, 0xfa, 0xfc, 0xe8, 0xb5, 0x44, 0x09, 0x90, 0x44, - 0xaa, 0xbf, 0x6b, 0xe0, 0xd6, 0x6c, 0x1d, 0x7b, 0x07, 0x14, 0xb0, 0x67, 0xcb, 0x6b, 0x0f, 0x7a, - 0xb5, 0x20, 0xea, 0xba, 0xf3, 0x6c, 0x3f, 0x14, 0xa2, 0x08, 0x17, 0xca, 0x83, 0x64, 0xc4, 0x5c, - 0x0f, 0x95, 0x07, 0x21, 0x19, 0x8a, 0x70, 0xb8, 0x05, 0x16, 0x06, 0x07, 0xd9, 0x24, 0x3d, 0x2b, - 0x0d, 0x6e, 0x07, 0xfd, 0xf2, 0x02, 0x8a, 0x03, 0x68, 0x54, 0xaf, 0xfa, 0x5b, 0x1a, 0xac, 0x1e, - 0x90, 0xce, 0xf1, 0xab, 0x79, 0x15, 0xbe, 0x18, 0x79, 0x15, 0x1e, 0x5d, 0x63, 0x6d, 0x93, 0x53, - 0x7d, 0xb5, 0x2f, 0xc3, 0xcf, 0x69, 0xf0, 0xff, 0x2b, 0x12, 0x83, 0xdf, 0x01, 0x48, 0xc7, 0x16, - 0x4d, 0x55, 0xf4, 0xc1, 0xf4, 0x84, 0xc6, 0x97, 0xb4, 0x76, 0x27, 0xe8, 0x97, 0x13, 0x96, 0x17, - 0x25, 0xc4, 0x81, 0xdf, 0x6b, 0x60, 0xc5, 0x49, 0x7a, 0xb8, 0x54, 0xd5, 0xb7, 0xa6, 0x67, 0x90, - 0xf8, 0xee, 0xd5, 0xee, 0x06, 0xfd, 0x72, 0xf2, 0x93, 0x88, 0x92, 0x03, 0x8a, 0x27, 0xe7, 0x4e, - 0xac, 0x50, 0x62, 0x69, 0xfe, 0xbb, 0x59, 0xfb, 0x7c, 0x64, 0xd6, 0x3e, 0x9e, 0x69, 0xd6, 0x62, - 0x99, 0x4e, 0x1c, 0xb5, 0xfa, 0xa5, 0x51, 0xdb, 0xbe, 0xf6, 0xa8, 0xc5, 0xbd, 0x5f, 0x3d, 0x69, - 0x4f, 0xc0, 0xda, 0xe4, 0xac, 0x66, 0x7e, 0xba, 0xab, 0xbf, 0xa4, 0xc1, 0xf2, 0x6b, 0x3a, 0x70, - 0xb3, 0xa5, 0x3f, 0xcf, 0x82, 0xd5, 0xd7, 0x0b, 0x7f, 0xf5, 0xc2, 0x8b, 0x9f, 0xa8, 0xcf, 0x08, - 0x55, 0x3f, 0xfe, 0x61, 0xaf, 0x0e, 0x19, 0xa1, 0x48, 0x22, 0xb0, 0x32, 0xe0, 0x06, 0xe1, 0x0f, - 0x0b, 0x88, 0x4a, 0xab, 0x7f, 0xa1, 0x22, 0x06, 0x36, 0xc8, 0x11, 0xc1, 0x78, 0xf5, 0x5c, 0x25, - 0xb3, 0x5e, 0xdc, 0xdc, 0xbd, 0xf1, 0xac, 0x18, 0x92, 0x38, 0xef, 0x39, 0x9c, 0x9e, 0x46, 0x1c, - 0x44, 0xca, 0x50, 0x18, 0x01, 0xbe, 0x01, 0x32, 0xbe, 0xdd, 0x50, 0x14, 0xa1, 0xa8, 0x54, 0x32, - 0x87, 0xfb, 0xbb, 0x48, 0xc8, 0xd7, 0x8e, 0x15, 0xf7, 0x96, 0x2e, 0xe0, 0x12, 0xc8, 0xb4, 0xc9, - 0x69, 0xb8, 0x67, 0x48, 0x7c, 0xc2, 0x1a, 0xc8, 0xf5, 0x04, 0x2d, 0x57, 0x75, 0xbe, 0x37, 0x3d, - 0xd3, 0x88, 0xca, 0xa3, 0xd0, 0x74, 0x3b, 0xfd, 0x50, 0xab, 0xfe, 0xa1, 0x81, 0xbb, 0x13, 0x07, - 0x52, 0x10, 0x25, 0xdc, 0xe9, 0xb8, 0x27, 0xa4, 0x21, 0x63, 0xe7, 0x23, 0xa2, 0xb4, 0x13, 0x8a, - 0xd1, 0x00, 0x87, 0x6f, 0x81, 0x39, 0x4a, 0x30, 0x73, 0x1d, 0x45, 0xce, 0x86, 0xb3, 0x8c, 0xa4, - 0x14, 0x29, 0x14, 0xee, 0x80, 0x45, 0x22, 0xc2, 0xcb, 0xe4, 0xf6, 0x28, 0x75, 0x07, 0x1d, 0x5b, - 0x55, 0x06, 0x8b, 0x7b, 0xa3, 0x30, 0xba, 0xac, 0x2f, 0x42, 0x35, 0x88, 0x63, 0x93, 0x86, 0x64, - 0x6f, 0xf9, 0x28, 0xd4, 0xae, 0x94, 0x22, 0x85, 0x56, 0xff, 0x49, 0x03, 0x7d, 0xd2, 0xb3, 0x07, - 0xdb, 0x11, 0x8b, 0x91, 0xa0, 0x24, 0x52, 0xc5, 0x4d, 0xe3, 0xfa, 0x2b, 0x23, 0xcc, 0x6a, 0x2b, - 0x2a, 0xf6, 0x42, 0x5c, 0x1a, 0x63, 0x3e, 0xf2, 0x08, 0x4f, 0xc0, 0x92, 0x33, 0x4a, 0xb9, 0x43, - 0x4e, 0x56, 0xdc, 0xdc, 0x98, 0x69, 0x41, 0x64, 0x48, 0x5d, 0x85, 0x5c, 0xba, 0x04, 0x30, 0x34, - 0x16, 0x04, 0x6e, 0x02, 0x60, 0x3b, 0x96, 0xdb, 0xf5, 0x3a, 0x84, 0x13, 0x59, 0xe8, 0x7c, 0xf4, - 0x5a, 0xee, 0x0f, 0x11, 0x14, 0xd3, 0x4a, 0xea, 0x50, 0x76, 0xb6, 0x0e, 0xd5, 0xee, 0x9f, 0x5d, - 0x94, 0x52, 0x2f, 0x2f, 0x4a, 0xa9, 0xf3, 0x8b, 0x52, 0xea, 0x45, 0x50, 0xd2, 0xce, 0x82, 0x92, - 0xf6, 0x32, 0x28, 0x69, 0xe7, 0x41, 0x49, 0xfb, 0x2b, 0x28, 0x69, 0x3f, 0xfc, 0x5d, 0x4a, 0x7d, - 0x36, 0xaf, 0x6e, 0xf8, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xcc, 0xb3, 0x5e, 0x05, 0xd9, 0x0f, - 0x00, 0x00, + // 1137 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x56, 0xcb, 0x6f, 0x1b, 0x45, + 0x18, 0xf7, 0xfa, 0x91, 0xd8, 0xe3, 0x86, 0xa4, 0x13, 0xa5, 0xd9, 0x06, 0x61, 0x5b, 0x46, 0x42, + 0x41, 0xb4, 0xbb, 0x24, 0x2a, 0xa4, 0x04, 0x7a, 0x88, 0x95, 0x08, 0x45, 0x6a, 0x4b, 0x35, 0x51, + 0x72, 0xa0, 0x12, 0x30, 0xbb, 0x9e, 0xd8, 0x8b, 0xed, 0xdd, 0x65, 0x66, 0xd6, 0x21, 0x88, 0x43, + 0x8f, 0x1c, 0x39, 0x72, 0xe4, 0xc4, 0xff, 0xc0, 0x05, 0x09, 0x4e, 0x39, 0xf6, 0x18, 0x24, 0x64, + 0x91, 0xe5, 0x8f, 0xe0, 0x8a, 0x66, 0x76, 0xec, 0x5d, 0x27, 0x9b, 0x38, 0xce, 0x81, 0x5e, 0x7a, + 0xdb, 0xf9, 0x7e, 0xdf, 0xfb, 0xb5, 0x1f, 0xd8, 0xed, 0x3c, 0x64, 0x86, 0xe3, 0x99, 0x9d, 0xc0, + 0x22, 0xd4, 0x25, 0x9c, 0x30, 0xb3, 0x4f, 0xdc, 0xa6, 0x47, 0x4d, 0x05, 0x60, 0xdf, 0x31, 0x71, + 0xc0, 0xdb, 0x1e, 0x75, 0xbe, 0xc3, 0xdc, 0xf1, 0x5c, 0xb3, 0xbf, 0x66, 0x11, 0x8e, 0xd7, 0xcc, + 0x16, 0x71, 0x09, 0xc5, 0x9c, 0x34, 0x0d, 0x9f, 0x7a, 0xdc, 0x83, 0xb5, 0x48, 0xc2, 0xc0, 0xbe, + 0x63, 0x8c, 0x49, 0x18, 0x4a, 0x62, 0xe5, 0x7e, 0xcb, 0xe1, 0xed, 0xc0, 0x32, 0x6c, 0xaf, 0x67, + 0xb6, 0xbc, 0x96, 0x67, 0x4a, 0x41, 0x2b, 0x38, 0x94, 0x2f, 0xf9, 0x90, 0x5f, 0x91, 0xc2, 0x95, + 0x07, 0xb1, 0x0b, 0x3d, 0x6c, 0xb7, 0x1d, 0x97, 0xd0, 0x63, 0xd3, 0xef, 0xb4, 0x04, 0x81, 0x99, + 0x3d, 0xc2, 0xb1, 0xd9, 0xbf, 0xe0, 0xc6, 0x8a, 0x79, 0x99, 0x14, 0x0d, 0x5c, 0xee, 0xf4, 0xc8, + 0x05, 0x81, 0x0f, 0x27, 0x09, 0x30, 0xbb, 0x4d, 0x7a, 0xf8, 0xbc, 0x5c, 0x7d, 0x03, 0x80, 0x9d, + 0x6f, 0x39, 0xc5, 0x07, 0xb8, 0x1b, 0x10, 0x58, 0x05, 0x05, 0x87, 0x93, 0x1e, 0xd3, 0xb5, 0x5a, + 0x6e, 0xb5, 0xd4, 0x28, 0x85, 0x83, 0x6a, 0x61, 0x57, 0x10, 0x50, 0x44, 0xdf, 0x2c, 0xfe, 0xf4, + 0x73, 0x35, 0xf3, 0xe2, 0xaf, 0x5a, 0xa6, 0xfe, 0x5b, 0x16, 0xe8, 0x8f, 0x3d, 0x1b, 0x77, 0xf7, + 0x02, 0xeb, 0x6b, 0x62, 0xf3, 0x2d, 0xdb, 0x26, 0x8c, 0x21, 0xd2, 0x77, 0xc8, 0x11, 0xfc, 0x0a, + 0x14, 0x45, 0x64, 0x4d, 0xcc, 0xb1, 0xae, 0xd5, 0xb4, 0xd5, 0xf2, 0xfa, 0xfb, 0x46, 0x9c, 0xd8, + 0x91, 0x83, 0x86, 0xdf, 0x69, 0x09, 0x02, 0x33, 0x04, 0xb7, 0xd1, 0x5f, 0x33, 0x3e, 0x93, 0xba, + 0x9e, 0x10, 0x8e, 0x1b, 0xf0, 0x64, 0x50, 0xcd, 0x84, 0x83, 0x2a, 0x88, 0x69, 0x68, 0xa4, 0x15, + 0x3e, 0x07, 0x79, 0xe6, 0x13, 0x5b, 0xcf, 0x4a, 0xed, 0x1f, 0x19, 0x93, 0xca, 0x66, 0xa4, 0xb8, + 0xb9, 0xe7, 0x13, 0xbb, 0x71, 0x4b, 0x99, 0xc9, 0x8b, 0x17, 0x92, 0x4a, 0xa1, 0x0d, 0x66, 0x18, + 0xc7, 0x3c, 0x60, 0x7a, 0x4e, 0xaa, 0xff, 0xf8, 0x66, 0xea, 0xa5, 0x8a, 0xc6, 0x1b, 0xca, 0xc0, + 0x4c, 0xf4, 0x46, 0x4a, 0x75, 0xfd, 0x39, 0x58, 0x7a, 0xea, 0xb9, 0x88, 0x30, 0x2f, 0xa0, 0x36, + 0xd9, 0xe2, 0x9c, 0x3a, 0x56, 0xc0, 0x09, 0x83, 0x35, 0x90, 0xf7, 0x31, 0x6f, 0xcb, 0xc4, 0x95, + 0x62, 0xff, 0x9e, 0x61, 0xde, 0x46, 0x12, 0x11, 0x1c, 0x7d, 0x42, 0x2d, 0x19, 0x7c, 0x82, 0xe3, + 0x80, 0x50, 0x0b, 0x49, 0xa4, 0xfe, 0x0d, 0x98, 0x4f, 0x28, 0x47, 0x41, 0x57, 0xd6, 0x56, 0x40, + 0x63, 0xb5, 0x15, 0x12, 0x0c, 0x45, 0x74, 0xf8, 0x08, 0xcc, 0xbb, 0xb1, 0xcc, 0x3e, 0x7a, 0xcc, + 0xf4, 0xac, 0x64, 0x5d, 0x0c, 0x07, 0xd5, 0xa4, 0x3a, 0x01, 0xa1, 0xf3, 0xbc, 0xa2, 0x21, 0x60, + 0x4a, 0x34, 0x26, 0x28, 0xb9, 0xb8, 0x47, 0x98, 0x8f, 0x6d, 0xa2, 0x42, 0xba, 0xad, 0x1c, 0x2e, + 0x3d, 0x1d, 0x02, 0x28, 0xe6, 0x99, 0x1c, 0x1c, 0x7c, 0x1b, 0x14, 0x5a, 0xd4, 0x0b, 0x7c, 0x59, + 0x9d, 0x52, 0x63, 0x4e, 0xb1, 0x14, 0x3e, 0x15, 0x44, 0x14, 0x61, 0xf0, 0x5d, 0x30, 0xdb, 0x27, + 0x94, 0x39, 0x9e, 0xab, 0xe7, 0x25, 0xdb, 0xbc, 0x62, 0x9b, 0x3d, 0x88, 0xc8, 0x68, 0x88, 0xc3, + 0x7b, 0xa0, 0x48, 0x95, 0xe3, 0x7a, 0x41, 0xf2, 0x2e, 0x28, 0xde, 0xe2, 0x28, 0x83, 0x23, 0x0e, + 0xf8, 0x01, 0x28, 0xb3, 0xc0, 0x1a, 0x09, 0xcc, 0x48, 0x81, 0x45, 0x25, 0x50, 0xde, 0x8b, 0x21, + 0x94, 0xe4, 0x13, 0x61, 0x89, 0x18, 0xf5, 0xd9, 0xf1, 0xb0, 0x44, 0x0a, 0x90, 0x44, 0xea, 0x7f, + 0x68, 0xe0, 0xd6, 0x74, 0x15, 0x7b, 0x0f, 0x94, 0xb0, 0xef, 0xc8, 0xb0, 0x87, 0xb5, 0x9a, 0x13, + 0x79, 0xdd, 0x7a, 0xb6, 0x1b, 0x11, 0x51, 0x8c, 0x0b, 0xe6, 0xa1, 0x33, 0xa2, 0xaf, 0x47, 0xcc, + 0x43, 0x93, 0x0c, 0xc5, 0x38, 0xdc, 0x00, 0x73, 0xc3, 0x87, 0x2c, 0x92, 0x9e, 0x97, 0x02, 0xb7, + 0xc3, 0x41, 0x75, 0x0e, 0x25, 0x01, 0x34, 0xce, 0x57, 0xff, 0x3d, 0x0b, 0x96, 0xf7, 0x48, 0xf7, + 0xf0, 0xd5, 0x6c, 0x85, 0x2f, 0xc7, 0xb6, 0xc2, 0xa3, 0x6b, 0x8c, 0x6d, 0xba, 0xab, 0xaf, 0x76, + 0x33, 0xfc, 0x92, 0x05, 0x6f, 0x5e, 0xe1, 0x18, 0xfc, 0x1e, 0x40, 0x7a, 0x61, 0xd0, 0x54, 0x46, + 0x1f, 0x4c, 0x76, 0xe8, 0xe2, 0x90, 0x36, 0xee, 0x84, 0x83, 0x6a, 0xca, 0xf0, 0xa2, 0x14, 0x3b, + 0xf0, 0x07, 0x0d, 0x2c, 0xb9, 0x69, 0x8b, 0x4b, 0x65, 0x7d, 0x63, 0xb2, 0x07, 0xa9, 0x7b, 0xaf, + 0x71, 0x37, 0x1c, 0x54, 0xd3, 0x57, 0x22, 0x4a, 0x37, 0x28, 0x56, 0xce, 0x9d, 0x44, 0xa2, 0xc4, + 0xd0, 0xfc, 0x7f, 0xbd, 0xf6, 0xc5, 0x58, 0xaf, 0x7d, 0x32, 0x55, 0xaf, 0x25, 0x3c, 0xbd, 0xb4, + 0xd5, 0xac, 0x73, 0xad, 0xb6, 0x79, 0xed, 0x56, 0x4b, 0x6a, 0xbf, 0xba, 0xd3, 0x9e, 0x80, 0x95, + 0xcb, 0xbd, 0x9a, 0x7a, 0x75, 0xd7, 0x7f, 0xcd, 0x82, 0xc5, 0xd7, 0xe7, 0xc0, 0xcd, 0x86, 0xfe, + 0x34, 0x0f, 0x96, 0x5f, 0x0f, 0xfc, 0xd5, 0x03, 0x2f, 0x7e, 0xa2, 0x01, 0x23, 0x54, 0xfd, 0xf8, + 0x47, 0xb5, 0xda, 0x67, 0x84, 0x22, 0x89, 0xc0, 0xda, 0xf0, 0x36, 0x88, 0x7e, 0x58, 0x40, 0x64, + 0x5a, 0xfd, 0x0b, 0xd5, 0x61, 0xe0, 0x80, 0x02, 0x11, 0x17, 0xaf, 0x5e, 0xa8, 0xe5, 0x56, 0xcb, + 0xeb, 0xdb, 0x37, 0xee, 0x15, 0x43, 0x1e, 0xce, 0x3b, 0x2e, 0xa7, 0xc7, 0xf1, 0x0d, 0x22, 0x69, + 0x28, 0xb2, 0x00, 0xdf, 0x02, 0xb9, 0xc0, 0x69, 0xaa, 0x13, 0xa1, 0xac, 0x58, 0x72, 0xfb, 0xbb, + 0xdb, 0x48, 0xd0, 0x57, 0x0e, 0xd5, 0xed, 0x2d, 0x55, 0xc0, 0x05, 0x90, 0xeb, 0x90, 0xe3, 0x68, + 0xce, 0x90, 0xf8, 0x84, 0x0d, 0x50, 0xe8, 0x8b, 0xb3, 0x5c, 0xe5, 0xf9, 0xde, 0x64, 0x4f, 0xe3, + 0x53, 0x1e, 0x45, 0xa2, 0x9b, 0xd9, 0x87, 0x5a, 0xfd, 0x4f, 0x0d, 0xdc, 0xbd, 0xb4, 0x21, 0xc5, + 0xa1, 0x84, 0xbb, 0x5d, 0xef, 0x88, 0x34, 0xa5, 0xed, 0x62, 0x7c, 0x28, 0x6d, 0x45, 0x64, 0x34, + 0xc4, 0xe1, 0x3b, 0x60, 0x86, 0x12, 0xcc, 0x3c, 0x57, 0x1d, 0x67, 0xa3, 0x5e, 0x46, 0x92, 0x8a, + 0x14, 0x0a, 0xb7, 0xc0, 0x3c, 0x11, 0xe6, 0xa5, 0x73, 0x3b, 0x94, 0x7a, 0xc3, 0x8a, 0x2d, 0x2b, + 0x81, 0xf9, 0x9d, 0x71, 0x18, 0x9d, 0xe7, 0x17, 0xa6, 0x9a, 0xc4, 0x75, 0x48, 0x53, 0x5e, 0x6f, + 0xc5, 0xd8, 0xd4, 0xb6, 0xa4, 0x22, 0x85, 0xd6, 0xff, 0xcd, 0x02, 0xfd, 0xb2, 0xb5, 0x07, 0x3b, + 0xf1, 0x15, 0x23, 0x41, 0x79, 0x48, 0x95, 0xd7, 0x8d, 0xeb, 0x8f, 0x8c, 0x10, 0x6b, 0x2c, 0x29, + 0xdb, 0x73, 0x49, 0x6a, 0xe2, 0xf2, 0x91, 0x4f, 0x78, 0x04, 0x16, 0xdc, 0xf1, 0x93, 0x3b, 0xba, + 0xc9, 0xca, 0xeb, 0x6b, 0x53, 0x0d, 0x88, 0x34, 0xa9, 0x2b, 0x93, 0x0b, 0xe7, 0x00, 0x86, 0x2e, + 0x18, 0x81, 0xeb, 0x00, 0x38, 0xae, 0xed, 0xf5, 0xfc, 0x2e, 0xe1, 0x44, 0x26, 0xba, 0x18, 0x6f, + 0xcb, 0xdd, 0x11, 0x82, 0x12, 0x5c, 0x69, 0x15, 0xca, 0x4f, 0x57, 0xa1, 0xc6, 0xfd, 0x93, 0xb3, + 0x4a, 0xe6, 0xe5, 0x59, 0x25, 0x73, 0x7a, 0x56, 0xc9, 0xbc, 0x08, 0x2b, 0xda, 0x49, 0x58, 0xd1, + 0x5e, 0x86, 0x15, 0xed, 0x34, 0xac, 0x68, 0x7f, 0x87, 0x15, 0xed, 0xc7, 0x7f, 0x2a, 0x99, 0xcf, + 0x67, 0x55, 0x84, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff, 0xc5, 0xba, 0xf8, 0x96, 0xa4, 0x0f, 0x00, + 0x00, } diff --git a/vendor/k8s.io/api/authorization/v1beta1/generated.proto b/vendor/k8s.io/api/authorization/v1beta1/generated.proto index b64c0642c..3876a3eeb 100644 --- a/vendor/k8s.io/api/authorization/v1beta1/generated.proto +++ b/vendor/k8s.io/api/authorization/v1beta1/generated.proto @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -24,7 +24,6 @@ package k8s.io.api.authorization.v1beta1; import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; -import "k8s.io/apimachinery/pkg/util/intstr/generated.proto"; // Package-wide variables from generator "generated". option go_package = "v1beta1"; diff --git a/vendor/k8s.io/api/authorization/v1beta1/types_swagger_doc_generated.go b/vendor/k8s.io/api/authorization/v1beta1/types_swagger_doc_generated.go index 2371b21c6..3ae6e7206 100644 --- a/vendor/k8s.io/api/authorization/v1beta1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/authorization/v1beta1/types_swagger_doc_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2016 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -26,7 +26,7 @@ package v1beta1 // // Those methods can be generated by using hack/update-generated-swagger-docs.sh -// AUTO-GENERATED FUNCTIONS START HERE +// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT. var map_LocalSubjectAccessReview = map[string]string{ "": "LocalSubjectAccessReview checks whether or not a user or group can perform an action in a given namespace. Having a namespace scoped resource makes it much easier to grant namespace scoped policy that includes permissions checking.", "spec": "Spec holds information about the request being evaluated. spec.namespace must be equal to the namespace you made the request against. If empty, it is defaulted.", diff --git a/vendor/k8s.io/api/authorization/v1beta1/zz_generated.deepcopy.go b/vendor/k8s.io/api/authorization/v1beta1/zz_generated.deepcopy.go index 7c76b183b..58b2dfe75 100644 --- a/vendor/k8s.io/api/authorization/v1beta1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/api/authorization/v1beta1/zz_generated.deepcopy.go @@ -1,7 +1,7 @@ // +build !ignore_autogenerated /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -199,21 +199,13 @@ func (in *SelfSubjectAccessReviewSpec) DeepCopyInto(out *SelfSubjectAccessReview *out = *in if in.ResourceAttributes != nil { in, out := &in.ResourceAttributes, &out.ResourceAttributes - if *in == nil { - *out = nil - } else { - *out = new(ResourceAttributes) - **out = **in - } + *out = new(ResourceAttributes) + **out = **in } if in.NonResourceAttributes != nil { in, out := &in.NonResourceAttributes, &out.NonResourceAttributes - if *in == nil { - *out = nil - } else { - *out = new(NonResourceAttributes) - **out = **in - } + *out = new(NonResourceAttributes) + **out = **in } return } @@ -305,21 +297,13 @@ func (in *SubjectAccessReviewSpec) DeepCopyInto(out *SubjectAccessReviewSpec) { *out = *in if in.ResourceAttributes != nil { in, out := &in.ResourceAttributes, &out.ResourceAttributes - if *in == nil { - *out = nil - } else { - *out = new(ResourceAttributes) - **out = **in - } + *out = new(ResourceAttributes) + **out = **in } if in.NonResourceAttributes != nil { in, out := &in.NonResourceAttributes, &out.NonResourceAttributes - if *in == nil { - *out = nil - } else { - *out = new(NonResourceAttributes) - **out = **in - } + *out = new(NonResourceAttributes) + **out = **in } if in.Groups != nil { in, out := &in.Groups, &out.Groups @@ -330,12 +314,15 @@ func (in *SubjectAccessReviewSpec) DeepCopyInto(out *SubjectAccessReviewSpec) { in, out := &in.Extra, &out.Extra *out = make(map[string]ExtraValue, len(*in)) for key, val := range *in { + var outVal []string if val == nil { (*out)[key] = nil } else { - (*out)[key] = make([]string, len(val)) - copy((*out)[key], val) + in, out := &val, &outVal + *out = make(ExtraValue, len(*in)) + copy(*out, *in) } + (*out)[key] = outVal } } return diff --git a/vendor/k8s.io/api/autoscaling/v1/BUILD b/vendor/k8s.io/api/autoscaling/v1/BUILD deleted file mode 100644 index ccf587be0..000000000 --- a/vendor/k8s.io/api/autoscaling/v1/BUILD +++ /dev/null @@ -1,46 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "generated.pb.go", - "register.go", - "types.go", - "types_swagger_doc_generated.go", - "zz_generated.deepcopy.go", - ], - importpath = "k8s.io/api/autoscaling/v1", - deps = [ - "//vendor/github.com/gogo/protobuf/proto:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) - -filegroup( - name = "go_default_library_protos", - srcs = ["generated.proto"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/api/autoscaling/v1/generated.pb.go b/vendor/k8s.io/api/autoscaling/v1/generated.pb.go index 9e2b235eb..950e93340 100644 --- a/vendor/k8s.io/api/autoscaling/v1/generated.pb.go +++ b/vendor/k8s.io/api/autoscaling/v1/generated.pb.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -14,9 +14,8 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: k8s.io/kubernetes/vendor/k8s.io/api/autoscaling/v1/generated.proto -// DO NOT EDIT! /* Package v1 is a generated protocol buffer package. @@ -675,6 +674,26 @@ func (m *ObjectMetricSource) MarshalTo(dAtA []byte) (int, error) { return 0, err } i += n23 + if m.Selector != nil { + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Selector.Size())) + n24, err := m.Selector.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n24 + } + if m.AverageValue != nil { + dAtA[i] = 0x2a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.AverageValue.Size())) + n25, err := m.AverageValue.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n25 + } return i, nil } @@ -696,11 +715,11 @@ func (m *ObjectMetricStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Target.Size())) - n24, err := m.Target.MarshalTo(dAtA[i:]) + n26, err := m.Target.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n24 + i += n26 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.MetricName))) @@ -708,11 +727,31 @@ func (m *ObjectMetricStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.CurrentValue.Size())) - n25, err := m.CurrentValue.MarshalTo(dAtA[i:]) + n27, err := m.CurrentValue.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n25 + i += n27 + if m.Selector != nil { + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Selector.Size())) + n28, err := m.Selector.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n28 + } + if m.AverageValue != nil { + dAtA[i] = 0x2a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.AverageValue.Size())) + n29, err := m.AverageValue.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n29 + } return i, nil } @@ -738,11 +777,21 @@ func (m *PodsMetricSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.TargetAverageValue.Size())) - n26, err := m.TargetAverageValue.MarshalTo(dAtA[i:]) + n30, err := m.TargetAverageValue.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n26 + i += n30 + if m.Selector != nil { + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Selector.Size())) + n31, err := m.Selector.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n31 + } return i, nil } @@ -768,11 +817,21 @@ func (m *PodsMetricStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.CurrentAverageValue.Size())) - n27, err := m.CurrentAverageValue.MarshalTo(dAtA[i:]) + n32, err := m.CurrentAverageValue.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n27 + i += n32 + if m.Selector != nil { + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Selector.Size())) + n33, err := m.Selector.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n33 + } return i, nil } @@ -804,11 +863,11 @@ func (m *ResourceMetricSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.TargetAverageValue.Size())) - n28, err := m.TargetAverageValue.MarshalTo(dAtA[i:]) + n34, err := m.TargetAverageValue.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n28 + i += n34 } return i, nil } @@ -840,11 +899,11 @@ func (m *ResourceMetricStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.CurrentAverageValue.Size())) - n29, err := m.CurrentAverageValue.MarshalTo(dAtA[i:]) + n35, err := m.CurrentAverageValue.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n29 + i += n35 return i, nil } @@ -866,27 +925,27 @@ func (m *Scale) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n30, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n36, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n30 + i += n36 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n31, err := m.Spec.MarshalTo(dAtA[i:]) + n37, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n31 + i += n37 dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n32, err := m.Status.MarshalTo(dAtA[i:]) + n38, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n32 + i += n38 return i, nil } @@ -936,24 +995,6 @@ func (m *ScaleStatus) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Generated(dAtA []byte, offset int, v uint64) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - dAtA[offset+4] = uint8(v >> 32) - dAtA[offset+5] = uint8(v >> 40) - dAtA[offset+6] = uint8(v >> 48) - dAtA[offset+7] = uint8(v >> 56) - return offset + 8 -} -func encodeFixed32Generated(dAtA []byte, offset int, v uint32) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - return offset + 4 -} func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -1145,6 +1186,14 @@ func (m *ObjectMetricSource) Size() (n int) { n += 1 + l + sovGenerated(uint64(l)) l = m.TargetValue.Size() n += 1 + l + sovGenerated(uint64(l)) + if m.Selector != nil { + l = m.Selector.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.AverageValue != nil { + l = m.AverageValue.Size() + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -1157,6 +1206,14 @@ func (m *ObjectMetricStatus) Size() (n int) { n += 1 + l + sovGenerated(uint64(l)) l = m.CurrentValue.Size() n += 1 + l + sovGenerated(uint64(l)) + if m.Selector != nil { + l = m.Selector.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.AverageValue != nil { + l = m.AverageValue.Size() + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -1167,6 +1224,10 @@ func (m *PodsMetricSource) Size() (n int) { n += 1 + l + sovGenerated(uint64(l)) l = m.TargetAverageValue.Size() n += 1 + l + sovGenerated(uint64(l)) + if m.Selector != nil { + l = m.Selector.Size() + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -1177,6 +1238,10 @@ func (m *PodsMetricStatus) Size() (n int) { n += 1 + l + sovGenerated(uint64(l)) l = m.CurrentAverageValue.Size() n += 1 + l + sovGenerated(uint64(l)) + if m.Selector != nil { + l = m.Selector.Size() + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -1387,6 +1452,8 @@ func (this *ObjectMetricSource) String() string { `Target:` + strings.Replace(strings.Replace(this.Target.String(), "CrossVersionObjectReference", "CrossVersionObjectReference", 1), `&`, ``, 1) + `,`, `MetricName:` + fmt.Sprintf("%v", this.MetricName) + `,`, `TargetValue:` + strings.Replace(strings.Replace(this.TargetValue.String(), "Quantity", "k8s_io_apimachinery_pkg_api_resource.Quantity", 1), `&`, ``, 1) + `,`, + `Selector:` + strings.Replace(fmt.Sprintf("%v", this.Selector), "LabelSelector", "k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector", 1) + `,`, + `AverageValue:` + strings.Replace(fmt.Sprintf("%v", this.AverageValue), "Quantity", "k8s_io_apimachinery_pkg_api_resource.Quantity", 1) + `,`, `}`, }, "") return s @@ -1399,6 +1466,8 @@ func (this *ObjectMetricStatus) String() string { `Target:` + strings.Replace(strings.Replace(this.Target.String(), "CrossVersionObjectReference", "CrossVersionObjectReference", 1), `&`, ``, 1) + `,`, `MetricName:` + fmt.Sprintf("%v", this.MetricName) + `,`, `CurrentValue:` + strings.Replace(strings.Replace(this.CurrentValue.String(), "Quantity", "k8s_io_apimachinery_pkg_api_resource.Quantity", 1), `&`, ``, 1) + `,`, + `Selector:` + strings.Replace(fmt.Sprintf("%v", this.Selector), "LabelSelector", "k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector", 1) + `,`, + `AverageValue:` + strings.Replace(fmt.Sprintf("%v", this.AverageValue), "Quantity", "k8s_io_apimachinery_pkg_api_resource.Quantity", 1) + `,`, `}`, }, "") return s @@ -1410,6 +1479,7 @@ func (this *PodsMetricSource) String() string { s := strings.Join([]string{`&PodsMetricSource{`, `MetricName:` + fmt.Sprintf("%v", this.MetricName) + `,`, `TargetAverageValue:` + strings.Replace(strings.Replace(this.TargetAverageValue.String(), "Quantity", "k8s_io_apimachinery_pkg_api_resource.Quantity", 1), `&`, ``, 1) + `,`, + `Selector:` + strings.Replace(fmt.Sprintf("%v", this.Selector), "LabelSelector", "k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector", 1) + `,`, `}`, }, "") return s @@ -1421,6 +1491,7 @@ func (this *PodsMetricStatus) String() string { s := strings.Join([]string{`&PodsMetricStatus{`, `MetricName:` + fmt.Sprintf("%v", this.MetricName) + `,`, `CurrentAverageValue:` + strings.Replace(strings.Replace(this.CurrentAverageValue.String(), "Quantity", "k8s_io_apimachinery_pkg_api_resource.Quantity", 1), `&`, ``, 1) + `,`, + `Selector:` + strings.Replace(fmt.Sprintf("%v", this.Selector), "LabelSelector", "k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector", 1) + `,`, `}`, }, "") return s @@ -3267,6 +3338,72 @@ func (m *ObjectMetricSource) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Selector", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Selector == nil { + m.Selector = &k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector{} + } + if err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AverageValue", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AverageValue == nil { + m.AverageValue = &k8s_io_apimachinery_pkg_api_resource.Quantity{} + } + if err := m.AverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -3406,6 +3543,72 @@ func (m *ObjectMetricStatus) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Selector", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Selector == nil { + m.Selector = &k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector{} + } + if err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AverageValue", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AverageValue == nil { + m.AverageValue = &k8s_io_apimachinery_pkg_api_resource.Quantity{} + } + if err := m.AverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -3515,6 +3718,39 @@ func (m *PodsMetricSource) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Selector", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Selector == nil { + m.Selector = &k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector{} + } + if err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -3624,6 +3860,39 @@ func (m *PodsMetricStatus) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Selector", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Selector == nil { + m.Selector = &k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector{} + } + if err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -4323,98 +4592,100 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 1485 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x58, 0xcb, 0x6f, 0x14, 0x47, - 0x13, 0xf7, 0x3e, 0x6c, 0xec, 0x5e, 0x63, 0xf3, 0x35, 0x08, 0x8c, 0xf9, 0xd8, 0xb1, 0xe6, 0x43, - 0x88, 0x2f, 0x09, 0x33, 0xb1, 0x21, 0x88, 0x1c, 0xbd, 0x9b, 0x10, 0x50, 0xbc, 0x60, 0xda, 0x86, - 0x90, 0x87, 0x22, 0xda, 0xb3, 0xcd, 0xba, 0xf1, 0xce, 0xcc, 0xaa, 0xa7, 0x77, 0x85, 0x91, 0x22, - 0x25, 0x87, 0x9c, 0x13, 0x45, 0x4a, 0x94, 0x63, 0xfe, 0x81, 0x9c, 0x39, 0x27, 0x52, 0x24, 0x8e, - 0x1c, 0x72, 0xe0, 0x34, 0x0a, 0x93, 0x63, 0xfe, 0x03, 0x4e, 0x51, 0x3f, 0x76, 0x76, 0x66, 0x77, - 0x67, 0xfd, 0xc0, 0x58, 0xc9, 0x6d, 0x7a, 0xaa, 0xea, 0x57, 0xdd, 0x55, 0xd5, 0xf5, 0x68, 0x50, - 0xd9, 0xba, 0x1a, 0x58, 0xd4, 0xb7, 0xb7, 0xda, 0x1b, 0x84, 0x79, 0x84, 0x93, 0xc0, 0xee, 0x10, - 0xaf, 0xee, 0x33, 0x5b, 0x13, 0x70, 0x8b, 0xda, 0xb8, 0xcd, 0xfd, 0xc0, 0xc1, 0x4d, 0xea, 0x35, - 0xec, 0xce, 0xa2, 0xdd, 0x20, 0x1e, 0x61, 0x98, 0x93, 0xba, 0xd5, 0x62, 0x3e, 0xf7, 0xe1, 0x69, - 0xc5, 0x6a, 0xe1, 0x16, 0xb5, 0x12, 0xac, 0x56, 0x67, 0x71, 0xfe, 0x62, 0x83, 0xf2, 0xcd, 0xf6, - 0x86, 0xe5, 0xf8, 0xae, 0xdd, 0xf0, 0x1b, 0xbe, 0x2d, 0x25, 0x36, 0xda, 0x0f, 0xe4, 0x4a, 0x2e, - 0xe4, 0x97, 0x42, 0x9a, 0x37, 0x13, 0x4a, 0x1d, 0x9f, 0x91, 0x21, 0xda, 0xe6, 0x2f, 0xf7, 0x78, - 0x5c, 0xec, 0x6c, 0x52, 0x8f, 0xb0, 0x6d, 0xbb, 0xb5, 0xd5, 0x90, 0x42, 0x8c, 0x04, 0x7e, 0x9b, - 0x39, 0x64, 0x4f, 0x52, 0x81, 0xed, 0x12, 0x8e, 0x87, 0xe9, 0xb2, 0xb3, 0xa4, 0x58, 0xdb, 0xe3, - 0xd4, 0x1d, 0x54, 0x73, 0x65, 0x27, 0x81, 0xc0, 0xd9, 0x24, 0x2e, 0x1e, 0x90, 0xbb, 0x94, 0x25, - 0xd7, 0xe6, 0xb4, 0x69, 0x53, 0x8f, 0x07, 0x9c, 0xf5, 0x0b, 0x99, 0xdf, 0xe7, 0xc0, 0x99, 0x2a, - 0xf3, 0x83, 0xe0, 0x2e, 0x61, 0x01, 0xf5, 0xbd, 0x5b, 0x1b, 0x0f, 0x89, 0xc3, 0x11, 0x79, 0x40, - 0x18, 0xf1, 0x1c, 0x02, 0x17, 0x40, 0x71, 0x8b, 0x7a, 0xf5, 0xb9, 0xdc, 0x42, 0xee, 0xc2, 0x54, - 0x65, 0xfa, 0x69, 0x68, 0x8c, 0x45, 0xa1, 0x51, 0xfc, 0x90, 0x7a, 0x75, 0x24, 0x29, 0x82, 0xc3, - 0xc3, 0x2e, 0x99, 0xcb, 0xa7, 0x39, 0x6e, 0x62, 0x97, 0x20, 0x49, 0x81, 0x4b, 0x00, 0xe0, 0x16, - 0xd5, 0x0a, 0xe6, 0x0a, 0x92, 0x0f, 0x6a, 0x3e, 0xb0, 0xbc, 0x7a, 0x43, 0x53, 0x50, 0x82, 0xcb, - 0xfc, 0xa1, 0x00, 0x4e, 0xbc, 0xff, 0x88, 0x13, 0xe6, 0xe1, 0x66, 0x8d, 0x70, 0x46, 0x9d, 0x35, - 0xe9, 0x14, 0x01, 0xe6, 0xca, 0xb5, 0x50, 0xa0, 0xb7, 0x15, 0x83, 0xd5, 0x62, 0x0a, 0x4a, 0x70, - 0x41, 0x1f, 0xcc, 0xa8, 0xd5, 0x1a, 0x69, 0x12, 0x87, 0xfb, 0x4c, 0x6e, 0xb6, 0xb4, 0x74, 0xc9, - 0xea, 0x45, 0x5d, 0x6c, 0x32, 0xab, 0xb5, 0xd5, 0x10, 0x3f, 0x02, 0x4b, 0x78, 0xd4, 0xea, 0x2c, - 0x5a, 0x2b, 0x78, 0x83, 0x34, 0xbb, 0xa2, 0x15, 0x18, 0x85, 0xc6, 0x4c, 0x2d, 0x05, 0x87, 0xfa, - 0xe0, 0x21, 0x06, 0x25, 0x8e, 0x59, 0x83, 0xf0, 0xbb, 0xb8, 0xd9, 0x26, 0xf2, 0xc8, 0xa5, 0x25, - 0x6b, 0x94, 0x36, 0xab, 0x1b, 0x75, 0xd6, 0xed, 0x36, 0xf6, 0x38, 0xe5, 0xdb, 0x95, 0xd9, 0x28, - 0x34, 0x4a, 0xeb, 0x3d, 0x18, 0x94, 0xc4, 0x84, 0x1d, 0x00, 0xd5, 0x72, 0xb9, 0x43, 0x18, 0x6e, - 0x10, 0xa5, 0xa9, 0xb8, 0x2f, 0x4d, 0x27, 0xa3, 0xd0, 0x80, 0xeb, 0x03, 0x68, 0x68, 0x88, 0x06, - 0xf3, 0xa7, 0x41, 0xc7, 0x70, 0xcc, 0xdb, 0xc1, 0xbf, 0xc3, 0x31, 0x9b, 0x60, 0xda, 0x69, 0x33, - 0x46, 0xbc, 0x57, 0xf2, 0xcc, 0x09, 0x7d, 0xac, 0xe9, 0x6a, 0x02, 0x0b, 0xa5, 0x90, 0xe1, 0x36, - 0x38, 0xae, 0xd7, 0x07, 0xe0, 0xa0, 0x53, 0x51, 0x68, 0x1c, 0xaf, 0x0e, 0xc2, 0xa1, 0x61, 0x3a, - 0xcc, 0x27, 0x79, 0x70, 0xea, 0xba, 0xcf, 0xe8, 0x63, 0xdf, 0xe3, 0xb8, 0xb9, 0xea, 0xd7, 0x97, - 0x75, 0x42, 0x25, 0x0c, 0xde, 0x07, 0x93, 0xc2, 0x7a, 0x75, 0xcc, 0xb1, 0xf4, 0x51, 0x69, 0xe9, - 0xed, 0xdd, 0xd9, 0x5a, 0x25, 0x86, 0x1a, 0xe1, 0xb8, 0xe7, 0xd5, 0xde, 0x3f, 0x14, 0xa3, 0xc2, - 0x7b, 0xa0, 0x18, 0xb4, 0x88, 0xa3, 0x3d, 0x79, 0xc5, 0xca, 0x4c, 0xec, 0x56, 0xc6, 0x1e, 0xd7, - 0x5a, 0xc4, 0xe9, 0xe5, 0x11, 0xb1, 0x42, 0x12, 0x11, 0xde, 0x07, 0x13, 0x81, 0x8c, 0x35, 0xed, - 0xb6, 0xab, 0xfb, 0xc0, 0x96, 0xf2, 0x95, 0x19, 0x8d, 0x3e, 0xa1, 0xd6, 0x48, 0xe3, 0x9a, 0x5f, - 0x17, 0xc0, 0x42, 0x86, 0x64, 0xd5, 0xf7, 0xea, 0x94, 0x53, 0xdf, 0x83, 0xd7, 0x41, 0x91, 0x6f, - 0xb7, 0xba, 0x21, 0x7e, 0xb9, 0xbb, 0xd1, 0xf5, 0xed, 0x16, 0x79, 0x19, 0x1a, 0xe7, 0x76, 0x92, - 0x17, 0x7c, 0x48, 0x22, 0xc0, 0x95, 0xf8, 0x40, 0xf9, 0x14, 0x96, 0xde, 0xd6, 0xcb, 0xd0, 0x18, - 0x52, 0xcc, 0xac, 0x18, 0x29, 0xbd, 0x79, 0x91, 0x11, 0x9a, 0x38, 0xe0, 0xeb, 0x0c, 0x7b, 0x81, - 0xd2, 0x44, 0xdd, 0x6e, 0x84, 0xbf, 0xb1, 0x3b, 0x27, 0x0b, 0x89, 0xca, 0xbc, 0xde, 0x05, 0x5c, - 0x19, 0x40, 0x43, 0x43, 0x34, 0xc0, 0xf3, 0x60, 0x82, 0x11, 0x1c, 0xf8, 0x9e, 0x0c, 0xee, 0xa9, - 0x9e, 0x71, 0x91, 0xfc, 0x8b, 0x34, 0x15, 0xfe, 0x1f, 0x1c, 0x71, 0x49, 0x10, 0xe0, 0x06, 0x99, - 0x1b, 0x97, 0x8c, 0xb3, 0x9a, 0xf1, 0x48, 0x4d, 0xfd, 0x46, 0x5d, 0xba, 0xf9, 0x7b, 0x0e, 0x9c, - 0xc9, 0xb0, 0xe3, 0x0a, 0x0d, 0x38, 0xfc, 0x6c, 0x20, 0x8a, 0xad, 0x5d, 0x66, 0x0c, 0x1a, 0xa8, - 0x18, 0x3e, 0xa6, 0x75, 0x4f, 0x76, 0xff, 0x24, 0x22, 0xf8, 0x23, 0x30, 0x4e, 0x39, 0x71, 0x85, - 0x57, 0x0a, 0x17, 0x4a, 0x4b, 0x4b, 0x7b, 0x0f, 0xb3, 0xca, 0x51, 0x0d, 0x3f, 0x7e, 0x43, 0x00, - 0x21, 0x85, 0x67, 0xfe, 0x95, 0xcf, 0x3c, 0x96, 0x08, 0x73, 0xd8, 0x01, 0x33, 0x72, 0xa5, 0x52, - 0x31, 0x22, 0x0f, 0xf4, 0xe1, 0x46, 0x5d, 0xa2, 0x11, 0xc5, 0xbb, 0x72, 0x52, 0xef, 0x62, 0x66, - 0x2d, 0x85, 0x8a, 0xfa, 0xb4, 0xc0, 0x45, 0x50, 0x72, 0xa9, 0x87, 0x48, 0xab, 0x49, 0x1d, 0xac, - 0x82, 0x71, 0x5c, 0x95, 0x9f, 0x5a, 0xef, 0x37, 0x4a, 0xf2, 0xc0, 0x77, 0x40, 0xc9, 0xc5, 0x8f, - 0x62, 0x91, 0x82, 0x14, 0x39, 0xae, 0xf5, 0x95, 0x6a, 0x3d, 0x12, 0x4a, 0xf2, 0xc1, 0x87, 0xa0, - 0xac, 0x6a, 0x4a, 0x75, 0xf5, 0xce, 0x1d, 0x4e, 0x9b, 0xf4, 0x31, 0x16, 0x71, 0xb4, 0x4a, 0x98, - 0x43, 0x3c, 0x2e, 0x42, 0xa3, 0x28, 0x91, 0xcc, 0x28, 0x34, 0xca, 0xeb, 0x23, 0x39, 0xd1, 0x0e, - 0x48, 0xe6, 0x2f, 0x05, 0x70, 0x76, 0x64, 0x1a, 0x80, 0xd7, 0x00, 0xf4, 0x37, 0x02, 0xc2, 0x3a, - 0xa4, 0xfe, 0x81, 0xea, 0x8b, 0x44, 0x83, 0x22, 0x6c, 0x5e, 0x50, 0x35, 0xf1, 0xd6, 0x00, 0x15, - 0x0d, 0x91, 0x80, 0x0e, 0x38, 0x2a, 0xee, 0x85, 0xb2, 0x32, 0xd5, 0xbd, 0xd0, 0xde, 0x2e, 0xdd, - 0x7f, 0xa2, 0xd0, 0x38, 0xba, 0x92, 0x04, 0x41, 0x69, 0x4c, 0xb8, 0x0c, 0x66, 0x75, 0xb2, 0xef, - 0xb3, 0xfa, 0x29, 0x6d, 0xf5, 0xd9, 0x6a, 0x9a, 0x8c, 0xfa, 0xf9, 0x05, 0x44, 0x9d, 0x04, 0x94, - 0x91, 0x7a, 0x0c, 0x51, 0x4c, 0x43, 0xbc, 0x97, 0x26, 0xa3, 0x7e, 0x7e, 0xe8, 0x02, 0x43, 0xa3, - 0x66, 0x7a, 0x70, 0x5c, 0x42, 0xfe, 0x2f, 0x0a, 0x0d, 0xa3, 0x3a, 0x9a, 0x15, 0xed, 0x84, 0x25, - 0xda, 0x40, 0xdd, 0x3b, 0xc8, 0x0b, 0x72, 0x39, 0x95, 0x7a, 0x17, 0xfa, 0x52, 0xef, 0xb1, 0x64, - 0xa3, 0x98, 0x48, 0xb3, 0xb7, 0xc1, 0x84, 0x2f, 0x6f, 0x86, 0xf6, 0xcb, 0xc5, 0x11, 0xd7, 0x29, - 0x2e, 0x69, 0x31, 0x50, 0x05, 0x88, 0x5c, 0xa6, 0xaf, 0x96, 0x06, 0x82, 0x37, 0x40, 0xb1, 0xe5, - 0xd7, 0xbb, 0x85, 0xe8, 0xcd, 0x11, 0x80, 0xab, 0x7e, 0x3d, 0x48, 0xc1, 0x4d, 0x8a, 0x1d, 0x8b, - 0xbf, 0x48, 0x42, 0xc0, 0x8f, 0xc1, 0x64, 0xb7, 0xe0, 0xeb, 0xee, 0xc0, 0x1e, 0x01, 0x87, 0x34, - 0x6b, 0x0a, 0x72, 0x5a, 0x24, 0xb2, 0x2e, 0x05, 0xc5, 0x70, 0x02, 0x9a, 0xe8, 0x56, 0x4d, 0x7a, - 0x65, 0x34, 0xf4, 0xb0, 0x76, 0x5b, 0x41, 0x77, 0x29, 0x28, 0x86, 0x33, 0x7f, 0x2c, 0x80, 0xe9, - 0x54, 0xfb, 0x77, 0xc8, 0xae, 0x51, 0x75, 0xfc, 0xc0, 0x5c, 0xa3, 0xe0, 0x0e, 0xd4, 0x35, 0x0a, - 0xf2, 0xb5, 0xb8, 0x26, 0x01, 0x3d, 0xc4, 0x35, 0xdf, 0xe4, 0x01, 0x1c, 0x0c, 0x63, 0xf8, 0x39, - 0x98, 0x50, 0x09, 0xf3, 0x15, 0x8b, 0x4a, 0x5c, 0xde, 0x75, 0xfd, 0xd0, 0xa8, 0x7d, 0xfd, 0x7f, - 0x7e, 0x57, 0xfd, 0x3f, 0x39, 0x88, 0x39, 0x29, 0xae, 0x3a, 0x59, 0xb3, 0x92, 0xf9, 0x5d, 0xbf, - 0x45, 0x54, 0xc8, 0xfe, 0x13, 0x2d, 0x72, 0x68, 0x03, 0x8a, 0xf9, 0x6b, 0x0e, 0x1c, 0xeb, 0x4f, - 0x4e, 0xfb, 0x1a, 0xe2, 0x1e, 0x0f, 0x9d, 0x44, 0xf3, 0xfb, 0xda, 0x78, 0xdc, 0x7b, 0xee, 0x72, - 0x1a, 0xfd, 0x2d, 0x7d, 0x88, 0xfd, 0x4f, 0xa2, 0x5f, 0x0c, 0x1f, 0xd7, 0xf6, 0x77, 0x8a, 0x33, - 0x5a, 0xd9, 0xee, 0x47, 0xb6, 0x9f, 0xf3, 0xe0, 0xc4, 0xb0, 0xd4, 0x0e, 0xab, 0xfa, 0x75, 0x45, - 0x9d, 0xc2, 0x4e, 0xbe, 0xae, 0xbc, 0x0c, 0x0d, 0x63, 0xc8, 0x78, 0xd0, 0x85, 0x49, 0x3c, 0xc0, - 0xdc, 0x03, 0x73, 0x29, 0xdb, 0x25, 0x6a, 0xad, 0x6e, 0xf6, 0xfe, 0x1b, 0x85, 0xc6, 0xdc, 0x7a, - 0x06, 0x0f, 0xca, 0x94, 0xce, 0x78, 0x85, 0x28, 0xbc, 0xf6, 0x57, 0x88, 0x27, 0x83, 0xf6, 0x52, - 0xbe, 0x3f, 0x10, 0x7b, 0x7d, 0x0a, 0x4e, 0xa7, 0x9d, 0x34, 0x68, 0xb0, 0xb3, 0x51, 0x68, 0x9c, - 0xae, 0x66, 0x31, 0xa1, 0x6c, 0xf9, 0xac, 0x48, 0x2b, 0x1c, 0x52, 0xa4, 0x7d, 0x95, 0x07, 0xe3, - 0xb2, 0xa9, 0x3c, 0x84, 0xa7, 0x80, 0x6b, 0xa9, 0xa7, 0x80, 0x73, 0x23, 0xd2, 0xab, 0xdc, 0x51, - 0xe6, 0xe0, 0x7f, 0xb3, 0x6f, 0xf0, 0x3f, 0xbf, 0x23, 0xd2, 0xe8, 0x31, 0xff, 0x5d, 0x30, 0x15, - 0x2b, 0x84, 0x6f, 0x89, 0x22, 0xaf, 0xbb, 0xe1, 0x9c, 0xf4, 0x6d, 0x3c, 0x1b, 0xc6, 0x6d, 0x70, - 0xcc, 0x61, 0x52, 0x50, 0x4a, 0x68, 0xd8, 0x9b, 0xb0, 0xe0, 0x0e, 0x92, 0x0f, 0x5d, 0x53, 0x3d, - 0xee, 0xf8, 0xc5, 0x2a, 0xe6, 0xa8, 0x5c, 0x78, 0xfa, 0xa2, 0x3c, 0xf6, 0xec, 0x45, 0x79, 0xec, - 0xf9, 0x8b, 0xf2, 0xd8, 0x97, 0x51, 0x39, 0xf7, 0x34, 0x2a, 0xe7, 0x9e, 0x45, 0xe5, 0xdc, 0xf3, - 0xa8, 0x9c, 0xfb, 0x23, 0x2a, 0xe7, 0xbe, 0xfd, 0xb3, 0x3c, 0xf6, 0x49, 0xbe, 0xb3, 0xf8, 0x77, - 0x00, 0x00, 0x00, 0xff, 0xff, 0x61, 0x55, 0xfd, 0xeb, 0x81, 0x17, 0x00, 0x00, + // 1516 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x58, 0xcf, 0x6f, 0x13, 0xc7, + 0x17, 0x8f, 0x7f, 0x24, 0x24, 0xe3, 0x90, 0xe4, 0x3b, 0x20, 0x08, 0xe1, 0x8b, 0x37, 0xda, 0x22, + 0x44, 0x7f, 0xb0, 0x6e, 0x52, 0x8a, 0xe8, 0x31, 0x76, 0x4b, 0x41, 0x8d, 0x21, 0x4c, 0x02, 0xa5, + 0x3f, 0xc5, 0x64, 0x3d, 0x38, 0x43, 0xbc, 0xbb, 0xd6, 0xec, 0xd8, 0x22, 0x48, 0x95, 0xda, 0x43, + 0xef, 0xbd, 0xb4, 0xea, 0xb1, 0x95, 0x7a, 0xed, 0x99, 0x73, 0x6f, 0x1c, 0x39, 0x20, 0x95, 0xd3, + 0xaa, 0x6c, 0x8f, 0xfd, 0x0f, 0x38, 0x55, 0xf3, 0xc3, 0xeb, 0x5d, 0xdb, 0xeb, 0x24, 0x26, 0x44, + 0x6d, 0x6f, 0x3b, 0x33, 0xef, 0x7d, 0xde, 0xec, 0x7b, 0x6f, 0xde, 0x2f, 0x50, 0xde, 0xbe, 0xec, + 0x5b, 0xd4, 0x2b, 0x6d, 0xb7, 0x36, 0x09, 0x73, 0x09, 0x27, 0x7e, 0xa9, 0x4d, 0xdc, 0x9a, 0xc7, + 0x4a, 0xfa, 0x00, 0x37, 0x69, 0x09, 0xb7, 0xb8, 0xe7, 0xdb, 0xb8, 0x41, 0xdd, 0x7a, 0xa9, 0xbd, + 0x54, 0xaa, 0x13, 0x97, 0x30, 0xcc, 0x49, 0xcd, 0x6a, 0x32, 0x8f, 0x7b, 0xf0, 0x94, 0x22, 0xb5, + 0x70, 0x93, 0x5a, 0x31, 0x52, 0xab, 0xbd, 0xb4, 0x70, 0xa1, 0x4e, 0xf9, 0x56, 0x6b, 0xd3, 0xb2, + 0x3d, 0xa7, 0x54, 0xf7, 0xea, 0x5e, 0x49, 0x72, 0x6c, 0xb6, 0xee, 0xc9, 0x95, 0x5c, 0xc8, 0x2f, + 0x85, 0xb4, 0x60, 0xc6, 0x84, 0xda, 0x1e, 0x23, 0x03, 0xa4, 0x2d, 0x5c, 0xec, 0xd2, 0x38, 0xd8, + 0xde, 0xa2, 0x2e, 0x61, 0x3b, 0xa5, 0xe6, 0x76, 0x5d, 0x32, 0x31, 0xe2, 0x7b, 0x2d, 0x66, 0x93, + 0x7d, 0x71, 0xf9, 0x25, 0x87, 0x70, 0x3c, 0x48, 0x56, 0x29, 0x8d, 0x8b, 0xb5, 0x5c, 0x4e, 0x9d, + 0x7e, 0x31, 0x97, 0x76, 0x63, 0xf0, 0xed, 0x2d, 0xe2, 0xe0, 0x5e, 0x3e, 0xf3, 0xfb, 0x0c, 0x38, + 0x5d, 0x61, 0x9e, 0xef, 0xdf, 0x26, 0xcc, 0xa7, 0x9e, 0x7b, 0x63, 0xf3, 0x3e, 0xb1, 0x39, 0x22, + 0xf7, 0x08, 0x23, 0xae, 0x4d, 0xe0, 0x22, 0xc8, 0x6f, 0x53, 0xb7, 0x36, 0x9f, 0x59, 0xcc, 0x9c, + 0x9f, 0x2a, 0x4f, 0x3f, 0x0e, 0x8c, 0xb1, 0x30, 0x30, 0xf2, 0x1f, 0x51, 0xb7, 0x86, 0xe4, 0x89, + 0xa0, 0x70, 0xb1, 0x43, 0xe6, 0xb3, 0x49, 0x8a, 0xeb, 0xd8, 0x21, 0x48, 0x9e, 0xc0, 0x65, 0x00, + 0x70, 0x93, 0x6a, 0x01, 0xf3, 0x39, 0x49, 0x07, 0x35, 0x1d, 0x58, 0x59, 0xbb, 0xa6, 0x4f, 0x50, + 0x8c, 0xca, 0xfc, 0x21, 0x07, 0x8e, 0x7f, 0xf0, 0x80, 0x13, 0xe6, 0xe2, 0x46, 0x95, 0x70, 0x46, + 0xed, 0x75, 0xa9, 0x5f, 0x01, 0xe6, 0xc8, 0xb5, 0x10, 0xa0, 0xaf, 0x15, 0x81, 0x55, 0xa3, 0x13, + 0x14, 0xa3, 0x82, 0x1e, 0x98, 0x51, 0xab, 0x75, 0xd2, 0x20, 0x36, 0xf7, 0x98, 0xbc, 0x6c, 0x61, + 0xf9, 0x1d, 0xab, 0xeb, 0x40, 0x91, 0xd6, 0xac, 0xe6, 0x76, 0x5d, 0x6c, 0xf8, 0x96, 0x30, 0x8e, + 0xd5, 0x5e, 0xb2, 0x56, 0xf1, 0x26, 0x69, 0x74, 0x58, 0xcb, 0x30, 0x0c, 0x8c, 0x99, 0x6a, 0x02, + 0x0e, 0xf5, 0xc0, 0x43, 0x0c, 0x0a, 0x1c, 0xb3, 0x3a, 0xe1, 0xb7, 0x71, 0xa3, 0x45, 0xe4, 0x2f, + 0x17, 0x96, 0xad, 0x61, 0xd2, 0xac, 0x8e, 0x03, 0x59, 0x37, 0x5b, 0xd8, 0xe5, 0x94, 0xef, 0x94, + 0x67, 0xc3, 0xc0, 0x28, 0x6c, 0x74, 0x61, 0x50, 0x1c, 0x13, 0xb6, 0x01, 0x54, 0xcb, 0x95, 0x36, + 0x61, 0xb8, 0x4e, 0x94, 0xa4, 0xfc, 0x48, 0x92, 0x4e, 0x84, 0x81, 0x01, 0x37, 0xfa, 0xd0, 0xd0, + 0x00, 0x09, 0xe6, 0x4f, 0xfd, 0x86, 0xe1, 0x98, 0xb7, 0xfc, 0x7f, 0x87, 0x61, 0xb6, 0xc0, 0xb4, + 0xdd, 0x62, 0x8c, 0xb8, 0x2f, 0x65, 0x99, 0xe3, 0xfa, 0xb7, 0xa6, 0x2b, 0x31, 0x2c, 0x94, 0x40, + 0x86, 0x3b, 0xe0, 0x98, 0x5e, 0x1f, 0x80, 0x81, 0x4e, 0x86, 0x81, 0x71, 0xac, 0xd2, 0x0f, 0x87, + 0x06, 0xc9, 0x30, 0x1f, 0x65, 0xc1, 0xc9, 0xab, 0x1e, 0xa3, 0x0f, 0x3d, 0x97, 0xe3, 0xc6, 0x9a, + 0x57, 0x5b, 0xd1, 0xb1, 0x91, 0x30, 0x78, 0x17, 0x4c, 0x0a, 0xed, 0xd5, 0x30, 0xc7, 0xd2, 0x46, + 0x85, 0xe5, 0xb7, 0xf7, 0xa6, 0x6b, 0x15, 0x18, 0xaa, 0x84, 0xe3, 0xae, 0x55, 0xbb, 0x7b, 0x28, + 0x42, 0x85, 0x77, 0x40, 0xde, 0x6f, 0x12, 0x5b, 0x5b, 0xf2, 0x92, 0x95, 0x1a, 0xa3, 0xad, 0x94, + 0x3b, 0xae, 0x37, 0x89, 0xdd, 0x8d, 0x23, 0x62, 0x85, 0x24, 0x22, 0xbc, 0x0b, 0x26, 0x7c, 0xe9, + 0x6b, 0xda, 0x6c, 0x97, 0x47, 0xc0, 0x96, 0xfc, 0xe5, 0x19, 0x8d, 0x3e, 0xa1, 0xd6, 0x48, 0xe3, + 0x9a, 0xdf, 0xe6, 0xc0, 0x62, 0x0a, 0x67, 0xc5, 0x73, 0x6b, 0x94, 0x53, 0xcf, 0x85, 0x57, 0x41, + 0x9e, 0xef, 0x34, 0x3b, 0x2e, 0x7e, 0xb1, 0x73, 0xd1, 0x8d, 0x9d, 0x26, 0x79, 0x11, 0x18, 0x67, + 0x77, 0xe3, 0x17, 0x74, 0x48, 0x22, 0xc0, 0xd5, 0xe8, 0x87, 0xb2, 0x09, 0x2c, 0x7d, 0xad, 0x17, + 0x81, 0x31, 0x20, 0x2f, 0x59, 0x11, 0x52, 0xf2, 0xf2, 0x22, 0x22, 0x34, 0xb0, 0xcf, 0x37, 0x18, + 0x76, 0x7d, 0x25, 0x89, 0x3a, 0x1d, 0x0f, 0x7f, 0x63, 0x6f, 0x46, 0x16, 0x1c, 0xe5, 0x05, 0x7d, + 0x0b, 0xb8, 0xda, 0x87, 0x86, 0x06, 0x48, 0x80, 0xe7, 0xc0, 0x04, 0x23, 0xd8, 0xf7, 0x5c, 0xe9, + 0xdc, 0x53, 0x5d, 0xe5, 0x22, 0xb9, 0x8b, 0xf4, 0x29, 0x7c, 0x1d, 0x1c, 0x71, 0x88, 0xef, 0xe3, + 0x3a, 0x99, 0x1f, 0x97, 0x84, 0xb3, 0x9a, 0xf0, 0x48, 0x55, 0x6d, 0xa3, 0xce, 0xb9, 0xf9, 0x34, + 0x03, 0x4e, 0xa7, 0xe8, 0x71, 0x95, 0xfa, 0x1c, 0x7e, 0xde, 0xe7, 0xc5, 0xd6, 0x1e, 0x23, 0x06, + 0xf5, 0x95, 0x0f, 0xcf, 0x69, 0xd9, 0x93, 0x9d, 0x9d, 0x98, 0x07, 0x7f, 0x0c, 0xc6, 0x29, 0x27, + 0x8e, 0xb0, 0x4a, 0xee, 0x7c, 0x61, 0x79, 0x79, 0xff, 0x6e, 0x56, 0x3e, 0xaa, 0xe1, 0xc7, 0xaf, + 0x09, 0x20, 0xa4, 0xf0, 0xcc, 0xbf, 0xb2, 0xa9, 0xbf, 0x25, 0xdc, 0x1c, 0xb6, 0xc1, 0x8c, 0x5c, + 0xa9, 0x50, 0x8c, 0xc8, 0x3d, 0xfd, 0x73, 0xc3, 0x1e, 0xd1, 0x90, 0xe4, 0x5d, 0x3e, 0xa1, 0x6f, + 0x31, 0xb3, 0x9e, 0x40, 0x45, 0x3d, 0x52, 0xe0, 0x12, 0x28, 0x38, 0xd4, 0x45, 0xa4, 0xd9, 0xa0, + 0x36, 0x56, 0xce, 0x38, 0xae, 0xd2, 0x4f, 0xb5, 0xbb, 0x8d, 0xe2, 0x34, 0xf0, 0x5d, 0x50, 0x70, + 0xf0, 0x83, 0x88, 0x25, 0x27, 0x59, 0x8e, 0x69, 0x79, 0x85, 0x6a, 0xf7, 0x08, 0xc5, 0xe9, 0xe0, + 0x7d, 0x50, 0x54, 0x39, 0xa5, 0xb2, 0x76, 0xeb, 0x16, 0xa7, 0x0d, 0xfa, 0x10, 0x0b, 0x3f, 0x5a, + 0x23, 0xcc, 0x26, 0x2e, 0x17, 0xae, 0x91, 0x97, 0x48, 0x66, 0x18, 0x18, 0xc5, 0x8d, 0xa1, 0x94, + 0x68, 0x17, 0x24, 0xf3, 0xb7, 0x1c, 0x38, 0x33, 0x34, 0x0c, 0xc0, 0x2b, 0x00, 0x7a, 0x9b, 0x3e, + 0x61, 0x6d, 0x52, 0xfb, 0x50, 0xd5, 0x45, 0xa2, 0x40, 0x11, 0x3a, 0xcf, 0xa9, 0x9c, 0x78, 0xa3, + 0xef, 0x14, 0x0d, 0xe0, 0x80, 0x36, 0x38, 0x2a, 0xde, 0x85, 0xd2, 0x32, 0xd5, 0xb5, 0xd0, 0xfe, + 0x1e, 0xdd, 0xff, 0xc2, 0xc0, 0x38, 0xba, 0x1a, 0x07, 0x41, 0x49, 0x4c, 0xb8, 0x02, 0x66, 0x75, + 0xb0, 0xef, 0xd1, 0xfa, 0x49, 0xad, 0xf5, 0xd9, 0x4a, 0xf2, 0x18, 0xf5, 0xd2, 0x0b, 0x88, 0x1a, + 0xf1, 0x29, 0x23, 0xb5, 0x08, 0x22, 0x9f, 0x84, 0x78, 0x3f, 0x79, 0x8c, 0x7a, 0xe9, 0xa1, 0x03, + 0x0c, 0x8d, 0x9a, 0x6a, 0xc1, 0x71, 0x09, 0xf9, 0x5a, 0x18, 0x18, 0x46, 0x65, 0x38, 0x29, 0xda, + 0x0d, 0x4b, 0x94, 0x81, 0xba, 0x76, 0x90, 0x0f, 0xe4, 0x62, 0x22, 0xf4, 0x2e, 0xf6, 0x84, 0xde, + 0xb9, 0x78, 0xa1, 0x18, 0x0b, 0xb3, 0x37, 0xc1, 0x84, 0x27, 0x5f, 0x86, 0xb6, 0xcb, 0x85, 0x21, + 0xcf, 0x29, 0x4a, 0x69, 0x11, 0x50, 0x19, 0x88, 0x58, 0xa6, 0x9f, 0x96, 0x06, 0x82, 0xd7, 0x40, + 0xbe, 0xe9, 0xd5, 0x3a, 0x89, 0xe8, 0xcd, 0x21, 0x80, 0x6b, 0x5e, 0xcd, 0x4f, 0xc0, 0x4d, 0x8a, + 0x1b, 0x8b, 0x5d, 0x24, 0x21, 0xe0, 0x27, 0x60, 0xb2, 0x93, 0xf0, 0x75, 0x75, 0x50, 0x1a, 0x02, + 0x87, 0x34, 0x69, 0x02, 0x72, 0x5a, 0x04, 0xb2, 0xce, 0x09, 0x8a, 0xe0, 0x04, 0x34, 0xd1, 0xa5, + 0x9a, 0xb4, 0xca, 0x70, 0xe8, 0x41, 0xe5, 0xb6, 0x82, 0xee, 0x9c, 0xa0, 0x08, 0xce, 0xfc, 0x31, + 0x07, 0xa6, 0x13, 0xe5, 0xdf, 0x21, 0x9b, 0x46, 0xe5, 0xf1, 0x03, 0x33, 0x8d, 0x82, 0x3b, 0x50, + 0xd3, 0x28, 0xc8, 0x57, 0x62, 0x9a, 0x18, 0xf4, 0x00, 0xd3, 0x3c, 0xcd, 0x01, 0xd8, 0xef, 0xc6, + 0xf0, 0x4b, 0x30, 0xa1, 0x02, 0xe6, 0x4b, 0x26, 0x95, 0x28, 0xbd, 0xeb, 0xfc, 0xa1, 0x51, 0x7b, + 0xea, 0xff, 0xec, 0x9e, 0xea, 0x7f, 0x72, 0x10, 0x7d, 0x52, 0x94, 0x75, 0x52, 0x7b, 0xa5, 0x2f, + 0xc0, 0xa4, 0xdf, 0x69, 0x30, 0xf2, 0xa3, 0x37, 0x18, 0x52, 0xe1, 0x51, 0x6b, 0x11, 0x41, 0xc2, + 0x1a, 0x98, 0xc6, 0xf1, 0x1a, 0x7f, 0x7c, 0xa4, 0xdf, 0x98, 0x13, 0x0d, 0x45, 0xa2, 0xb8, 0x4f, + 0xa0, 0x9a, 0xbf, 0xf7, 0x9a, 0x55, 0xbd, 0xbb, 0x7f, 0xa2, 0x59, 0x0f, 0xaf, 0xcb, 0xfa, 0x4f, + 0x58, 0xf6, 0xe7, 0x2c, 0x98, 0xeb, 0x4d, 0x13, 0x23, 0xb5, 0xd3, 0x0f, 0x07, 0xce, 0x04, 0xb2, + 0x23, 0x5d, 0x3a, 0xea, 0x02, 0xf6, 0x36, 0x17, 0x48, 0x58, 0x22, 0x77, 0xe0, 0x96, 0x30, 0x7f, + 0x49, 0xea, 0x68, 0xf4, 0x91, 0xc3, 0x57, 0x83, 0xfb, 0xf2, 0xd1, 0x94, 0x74, 0x5a, 0x0b, 0xdb, + 0x73, 0x6f, 0xfe, 0xaa, 0xd5, 0xf4, 0x6b, 0x16, 0x1c, 0x1f, 0x54, 0x22, 0xc0, 0x8a, 0x9e, 0xd2, + 0x29, 0x25, 0x95, 0xe2, 0x53, 0xba, 0x17, 0x81, 0x61, 0x0c, 0x68, 0x33, 0x3b, 0x30, 0xb1, 0x41, + 0xde, 0x1d, 0x30, 0x9f, 0xb0, 0x7c, 0xac, 0x66, 0xd3, 0x4d, 0xc3, 0xff, 0xc3, 0xc0, 0x98, 0xdf, + 0x48, 0xa1, 0x41, 0xa9, 0xdc, 0x29, 0xd3, 0xac, 0xdc, 0x2b, 0x9f, 0x66, 0x3d, 0xea, 0xd7, 0x97, + 0x72, 0xad, 0x03, 0xd1, 0xd7, 0x67, 0xe0, 0x54, 0xd2, 0x07, 0xfa, 0x15, 0x76, 0x26, 0x0c, 0x8c, + 0x53, 0x95, 0x34, 0x22, 0x94, 0xce, 0x9f, 0xe6, 0xc8, 0xb9, 0xc3, 0x71, 0x64, 0xf3, 0x9b, 0x2c, + 0x18, 0x97, 0xcd, 0xc9, 0x21, 0x8c, 0x94, 0xae, 0x24, 0x46, 0x4a, 0x67, 0x87, 0x64, 0x38, 0x79, + 0xa3, 0xd4, 0x01, 0xd2, 0xf5, 0x9e, 0x01, 0xd2, 0xb9, 0x5d, 0x91, 0x86, 0x8f, 0x8b, 0xde, 0x03, + 0x53, 0x91, 0x40, 0xf8, 0x96, 0x28, 0x16, 0x75, 0x57, 0x95, 0x91, 0xb6, 0x8d, 0x66, 0x0c, 0x51, + 0x3b, 0x15, 0x51, 0x98, 0x14, 0x14, 0x62, 0x12, 0xf6, 0xc7, 0x2c, 0xa8, 0xfd, 0xf8, 0xc0, 0x74, + 0xaa, 0x4b, 0xdd, 0x1f, 0x13, 0xca, 0xe7, 0x1f, 0x3f, 0x2f, 0x8e, 0x3d, 0x79, 0x5e, 0x1c, 0x7b, + 0xf6, 0xbc, 0x38, 0xf6, 0x75, 0x58, 0xcc, 0x3c, 0x0e, 0x8b, 0x99, 0x27, 0x61, 0x31, 0xf3, 0x2c, + 0x2c, 0x66, 0xfe, 0x08, 0x8b, 0x99, 0xef, 0xfe, 0x2c, 0x8e, 0x7d, 0x9a, 0x6d, 0x2f, 0xfd, 0x1d, + 0x00, 0x00, 0xff, 0xff, 0x3c, 0x26, 0x41, 0xcb, 0x94, 0x19, 0x00, 0x00, } diff --git a/vendor/k8s.io/api/autoscaling/v1/generated.proto b/vendor/k8s.io/api/autoscaling/v1/generated.proto index 64f01f477..5b56b2ac8 100644 --- a/vendor/k8s.io/api/autoscaling/v1/generated.proto +++ b/vendor/k8s.io/api/autoscaling/v1/generated.proto @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -26,7 +26,6 @@ import "k8s.io/apimachinery/pkg/api/resource/generated.proto"; import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; -import "k8s.io/apimachinery/pkg/util/intstr/generated.proto"; // Package-wide variables from generator "generated". option go_package = "v1"; @@ -258,6 +257,17 @@ message ObjectMetricSource { // targetValue is the target value of the metric (as a quantity). optional k8s.io.apimachinery.pkg.api.resource.Quantity targetValue = 3; + + // selector is the string-encoded form of a standard kubernetes label selector for the given metric. + // When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping + // When unset, just the metricName will be used to gather metrics. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 4; + + // averageValue is the target value of the average of the + // metric across all relevant pods (as a quantity) + // +optional + optional k8s.io.apimachinery.pkg.api.resource.Quantity averageValue = 5; } // ObjectMetricStatus indicates the current value of a metric describing a @@ -271,6 +281,17 @@ message ObjectMetricStatus { // currentValue is the current value of the metric (as a quantity). optional k8s.io.apimachinery.pkg.api.resource.Quantity currentValue = 3; + + // selector is the string-encoded form of a standard kubernetes label selector for the given metric + // When set in the ObjectMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping. + // When unset, just the metricName will be used to gather metrics. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 4; + + // averageValue is the current value of the average of the + // metric across all relevant pods (as a quantity) + // +optional + optional k8s.io.apimachinery.pkg.api.resource.Quantity averageValue = 5; } // PodsMetricSource indicates how to scale on a metric describing each pod in @@ -284,6 +305,12 @@ message PodsMetricSource { // targetAverageValue is the target value of the average of the // metric across all relevant pods (as a quantity) optional k8s.io.apimachinery.pkg.api.resource.Quantity targetAverageValue = 2; + + // selector is the string-encoded form of a standard kubernetes label selector for the given metric + // When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping + // When unset, just the metricName will be used to gather metrics. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 3; } // PodsMetricStatus indicates the current value of a metric describing each pod in @@ -295,6 +322,12 @@ message PodsMetricStatus { // currentAverageValue is the current value of the average of the // metric across all relevant pods (as a quantity) optional k8s.io.apimachinery.pkg.api.resource.Quantity currentAverageValue = 2; + + // selector is the string-encoded form of a standard kubernetes label selector for the given metric + // When set in the PodsMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping. + // When unset, just the metricName will be used to gather metrics. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 3; } // ResourceMetricSource indicates how to scale on a resource metric known to diff --git a/vendor/k8s.io/api/autoscaling/v1/types.go b/vendor/k8s.io/api/autoscaling/v1/types.go index 344af774f..c03af13ae 100644 --- a/vendor/k8s.io/api/autoscaling/v1/types.go +++ b/vendor/k8s.io/api/autoscaling/v1/types.go @@ -211,6 +211,16 @@ type ObjectMetricSource struct { MetricName string `json:"metricName" protobuf:"bytes,2,name=metricName"` // targetValue is the target value of the metric (as a quantity). TargetValue resource.Quantity `json:"targetValue" protobuf:"bytes,3,name=targetValue"` + + // selector is the string-encoded form of a standard kubernetes label selector for the given metric. + // When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping + // When unset, just the metricName will be used to gather metrics. + // +optional + Selector *metav1.LabelSelector `json:"selector,omitempty" protobuf:"bytes,4,name=selector"` + // averageValue is the target value of the average of the + // metric across all relevant pods (as a quantity) + // +optional + AverageValue *resource.Quantity `json:"averageValue,omitempty" protobuf:"bytes,5,name=averageValue"` } // PodsMetricSource indicates how to scale on a metric describing each pod in @@ -223,6 +233,12 @@ type PodsMetricSource struct { // targetAverageValue is the target value of the average of the // metric across all relevant pods (as a quantity) TargetAverageValue resource.Quantity `json:"targetAverageValue" protobuf:"bytes,2,name=targetAverageValue"` + + // selector is the string-encoded form of a standard kubernetes label selector for the given metric + // When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping + // When unset, just the metricName will be used to gather metrics. + // +optional + Selector *metav1.LabelSelector `json:"selector,omitempty" protobuf:"bytes,3,name=selector"` } // ResourceMetricSource indicates how to scale on a resource metric known to @@ -344,6 +360,16 @@ type ObjectMetricStatus struct { MetricName string `json:"metricName" protobuf:"bytes,2,name=metricName"` // currentValue is the current value of the metric (as a quantity). CurrentValue resource.Quantity `json:"currentValue" protobuf:"bytes,3,name=currentValue"` + + // selector is the string-encoded form of a standard kubernetes label selector for the given metric + // When set in the ObjectMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping. + // When unset, just the metricName will be used to gather metrics. + // +optional + Selector *metav1.LabelSelector `json:"selector,omitempty" protobuf:"bytes,4,name=selector"` + // averageValue is the current value of the average of the + // metric across all relevant pods (as a quantity) + // +optional + AverageValue *resource.Quantity `json:"averageValue,omitempty" protobuf:"bytes,5,name=averageValue"` } // PodsMetricStatus indicates the current value of a metric describing each pod in @@ -354,6 +380,12 @@ type PodsMetricStatus struct { // currentAverageValue is the current value of the average of the // metric across all relevant pods (as a quantity) CurrentAverageValue resource.Quantity `json:"currentAverageValue" protobuf:"bytes,2,name=currentAverageValue"` + + // selector is the string-encoded form of a standard kubernetes label selector for the given metric + // When set in the PodsMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping. + // When unset, just the metricName will be used to gather metrics. + // +optional + Selector *metav1.LabelSelector `json:"selector,omitempty" protobuf:"bytes,3,name=selector"` } // ResourceMetricStatus indicates the current value of a resource metric known to diff --git a/vendor/k8s.io/api/autoscaling/v1/types_swagger_doc_generated.go b/vendor/k8s.io/api/autoscaling/v1/types_swagger_doc_generated.go index ec364f53e..72ac97271 100644 --- a/vendor/k8s.io/api/autoscaling/v1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/autoscaling/v1/types_swagger_doc_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2016 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -26,7 +26,7 @@ package v1 // // Those methods can be generated by using hack/update-generated-swagger-docs.sh -// AUTO-GENERATED FUNCTIONS START HERE +// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT. var map_CrossVersionObjectReference = map[string]string{ "": "CrossVersionObjectReference contains enough information to let you identify the referred resource.", "kind": "Kind of the referent; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\"", @@ -148,10 +148,12 @@ func (MetricStatus) SwaggerDoc() map[string]string { } var map_ObjectMetricSource = map[string]string{ - "": "ObjectMetricSource indicates how to scale on a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).", - "target": "target is the described Kubernetes object.", - "metricName": "metricName is the name of the metric in question.", - "targetValue": "targetValue is the target value of the metric (as a quantity).", + "": "ObjectMetricSource indicates how to scale on a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).", + "target": "target is the described Kubernetes object.", + "metricName": "metricName is the name of the metric in question.", + "targetValue": "targetValue is the target value of the metric (as a quantity).", + "selector": "selector is the string-encoded form of a standard kubernetes label selector for the given metric. When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping When unset, just the metricName will be used to gather metrics.", + "averageValue": "averageValue is the target value of the average of the metric across all relevant pods (as a quantity)", } func (ObjectMetricSource) SwaggerDoc() map[string]string { @@ -163,6 +165,8 @@ var map_ObjectMetricStatus = map[string]string{ "target": "target is the described Kubernetes object.", "metricName": "metricName is the name of the metric in question.", "currentValue": "currentValue is the current value of the metric (as a quantity).", + "selector": "selector is the string-encoded form of a standard kubernetes label selector for the given metric When set in the ObjectMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics.", + "averageValue": "averageValue is the current value of the average of the metric across all relevant pods (as a quantity)", } func (ObjectMetricStatus) SwaggerDoc() map[string]string { @@ -173,6 +177,7 @@ var map_PodsMetricSource = map[string]string{ "": "PodsMetricSource indicates how to scale on a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.", "metricName": "metricName is the name of the metric in question", "targetAverageValue": "targetAverageValue is the target value of the average of the metric across all relevant pods (as a quantity)", + "selector": "selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping When unset, just the metricName will be used to gather metrics.", } func (PodsMetricSource) SwaggerDoc() map[string]string { @@ -183,6 +188,7 @@ var map_PodsMetricStatus = map[string]string{ "": "PodsMetricStatus indicates the current value of a metric describing each pod in the current scale target (for example, transactions-processed-per-second).", "metricName": "metricName is the name of the metric in question", "currentAverageValue": "currentAverageValue is the current value of the average of the metric across all relevant pods (as a quantity)", + "selector": "selector is the string-encoded form of a standard kubernetes label selector for the given metric When set in the PodsMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics.", } func (PodsMetricStatus) SwaggerDoc() map[string]string { @@ -190,8 +196,8 @@ func (PodsMetricStatus) SwaggerDoc() map[string]string { } var map_ResourceMetricSource = map[string]string{ - "": "ResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source. Only one \"target\" type should be set.", - "name": "name is the name of the resource in question.", + "": "ResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source. Only one \"target\" type should be set.", + "name": "name is the name of the resource in question.", "targetAverageUtilization": "targetAverageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.", "targetAverageValue": "targetAverageValue is the target value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the \"pods\" metric source type.", } @@ -201,8 +207,8 @@ func (ResourceMetricSource) SwaggerDoc() map[string]string { } var map_ResourceMetricStatus = map[string]string{ - "": "ResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source.", - "name": "name is the name of the resource in question.", + "": "ResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source.", + "name": "name is the name of the resource in question.", "currentAverageUtilization": "currentAverageUtilization is the current value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods. It will only be present if `targetAverageValue` was set in the corresponding metric specification.", "currentAverageValue": "currentAverageValue is the current value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the \"pods\" metric source type. It will always be set, regardless of the corresponding metric specification.", } diff --git a/vendor/k8s.io/api/autoscaling/v1/zz_generated.deepcopy.go b/vendor/k8s.io/api/autoscaling/v1/zz_generated.deepcopy.go index 011275be4..3fda47d54 100644 --- a/vendor/k8s.io/api/autoscaling/v1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/api/autoscaling/v1/zz_generated.deepcopy.go @@ -1,7 +1,7 @@ // +build !ignore_autogenerated /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ limitations under the License. package v1 import ( - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" ) @@ -46,30 +46,18 @@ func (in *ExternalMetricSource) DeepCopyInto(out *ExternalMetricSource) { *out = *in if in.MetricSelector != nil { in, out := &in.MetricSelector, &out.MetricSelector - if *in == nil { - *out = nil - } else { - *out = new(meta_v1.LabelSelector) - (*in).DeepCopyInto(*out) - } + *out = new(metav1.LabelSelector) + (*in).DeepCopyInto(*out) } if in.TargetValue != nil { in, out := &in.TargetValue, &out.TargetValue - if *in == nil { - *out = nil - } else { - x := (*in).DeepCopy() - *out = &x - } + x := (*in).DeepCopy() + *out = &x } if in.TargetAverageValue != nil { in, out := &in.TargetAverageValue, &out.TargetAverageValue - if *in == nil { - *out = nil - } else { - x := (*in).DeepCopy() - *out = &x - } + x := (*in).DeepCopy() + *out = &x } return } @@ -89,22 +77,14 @@ func (in *ExternalMetricStatus) DeepCopyInto(out *ExternalMetricStatus) { *out = *in if in.MetricSelector != nil { in, out := &in.MetricSelector, &out.MetricSelector - if *in == nil { - *out = nil - } else { - *out = new(meta_v1.LabelSelector) - (*in).DeepCopyInto(*out) - } + *out = new(metav1.LabelSelector) + (*in).DeepCopyInto(*out) } out.CurrentValue = in.CurrentValue.DeepCopy() if in.CurrentAverageValue != nil { in, out := &in.CurrentAverageValue, &out.CurrentAverageValue - if *in == nil { - *out = nil - } else { - x := (*in).DeepCopy() - *out = &x - } + x := (*in).DeepCopy() + *out = &x } return } @@ -203,21 +183,13 @@ func (in *HorizontalPodAutoscalerSpec) DeepCopyInto(out *HorizontalPodAutoscaler out.ScaleTargetRef = in.ScaleTargetRef if in.MinReplicas != nil { in, out := &in.MinReplicas, &out.MinReplicas - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } if in.TargetCPUUtilizationPercentage != nil { in, out := &in.TargetCPUUtilizationPercentage, &out.TargetCPUUtilizationPercentage - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } return } @@ -237,29 +209,17 @@ func (in *HorizontalPodAutoscalerStatus) DeepCopyInto(out *HorizontalPodAutoscal *out = *in if in.ObservedGeneration != nil { in, out := &in.ObservedGeneration, &out.ObservedGeneration - if *in == nil { - *out = nil - } else { - *out = new(int64) - **out = **in - } + *out = new(int64) + **out = **in } if in.LastScaleTime != nil { in, out := &in.LastScaleTime, &out.LastScaleTime - if *in == nil { - *out = nil - } else { - *out = (*in).DeepCopy() - } + *out = (*in).DeepCopy() } if in.CurrentCPUUtilizationPercentage != nil { in, out := &in.CurrentCPUUtilizationPercentage, &out.CurrentCPUUtilizationPercentage - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } return } @@ -279,39 +239,23 @@ func (in *MetricSpec) DeepCopyInto(out *MetricSpec) { *out = *in if in.Object != nil { in, out := &in.Object, &out.Object - if *in == nil { - *out = nil - } else { - *out = new(ObjectMetricSource) - (*in).DeepCopyInto(*out) - } + *out = new(ObjectMetricSource) + (*in).DeepCopyInto(*out) } if in.Pods != nil { in, out := &in.Pods, &out.Pods - if *in == nil { - *out = nil - } else { - *out = new(PodsMetricSource) - (*in).DeepCopyInto(*out) - } + *out = new(PodsMetricSource) + (*in).DeepCopyInto(*out) } if in.Resource != nil { in, out := &in.Resource, &out.Resource - if *in == nil { - *out = nil - } else { - *out = new(ResourceMetricSource) - (*in).DeepCopyInto(*out) - } + *out = new(ResourceMetricSource) + (*in).DeepCopyInto(*out) } if in.External != nil { in, out := &in.External, &out.External - if *in == nil { - *out = nil - } else { - *out = new(ExternalMetricSource) - (*in).DeepCopyInto(*out) - } + *out = new(ExternalMetricSource) + (*in).DeepCopyInto(*out) } return } @@ -331,39 +275,23 @@ func (in *MetricStatus) DeepCopyInto(out *MetricStatus) { *out = *in if in.Object != nil { in, out := &in.Object, &out.Object - if *in == nil { - *out = nil - } else { - *out = new(ObjectMetricStatus) - (*in).DeepCopyInto(*out) - } + *out = new(ObjectMetricStatus) + (*in).DeepCopyInto(*out) } if in.Pods != nil { in, out := &in.Pods, &out.Pods - if *in == nil { - *out = nil - } else { - *out = new(PodsMetricStatus) - (*in).DeepCopyInto(*out) - } + *out = new(PodsMetricStatus) + (*in).DeepCopyInto(*out) } if in.Resource != nil { in, out := &in.Resource, &out.Resource - if *in == nil { - *out = nil - } else { - *out = new(ResourceMetricStatus) - (*in).DeepCopyInto(*out) - } + *out = new(ResourceMetricStatus) + (*in).DeepCopyInto(*out) } if in.External != nil { in, out := &in.External, &out.External - if *in == nil { - *out = nil - } else { - *out = new(ExternalMetricStatus) - (*in).DeepCopyInto(*out) - } + *out = new(ExternalMetricStatus) + (*in).DeepCopyInto(*out) } return } @@ -383,6 +311,16 @@ func (in *ObjectMetricSource) DeepCopyInto(out *ObjectMetricSource) { *out = *in out.Target = in.Target out.TargetValue = in.TargetValue.DeepCopy() + if in.Selector != nil { + in, out := &in.Selector, &out.Selector + *out = new(metav1.LabelSelector) + (*in).DeepCopyInto(*out) + } + if in.AverageValue != nil { + in, out := &in.AverageValue, &out.AverageValue + x := (*in).DeepCopy() + *out = &x + } return } @@ -401,6 +339,16 @@ func (in *ObjectMetricStatus) DeepCopyInto(out *ObjectMetricStatus) { *out = *in out.Target = in.Target out.CurrentValue = in.CurrentValue.DeepCopy() + if in.Selector != nil { + in, out := &in.Selector, &out.Selector + *out = new(metav1.LabelSelector) + (*in).DeepCopyInto(*out) + } + if in.AverageValue != nil { + in, out := &in.AverageValue, &out.AverageValue + x := (*in).DeepCopy() + *out = &x + } return } @@ -418,6 +366,11 @@ func (in *ObjectMetricStatus) DeepCopy() *ObjectMetricStatus { func (in *PodsMetricSource) DeepCopyInto(out *PodsMetricSource) { *out = *in out.TargetAverageValue = in.TargetAverageValue.DeepCopy() + if in.Selector != nil { + in, out := &in.Selector, &out.Selector + *out = new(metav1.LabelSelector) + (*in).DeepCopyInto(*out) + } return } @@ -435,6 +388,11 @@ func (in *PodsMetricSource) DeepCopy() *PodsMetricSource { func (in *PodsMetricStatus) DeepCopyInto(out *PodsMetricStatus) { *out = *in out.CurrentAverageValue = in.CurrentAverageValue.DeepCopy() + if in.Selector != nil { + in, out := &in.Selector, &out.Selector + *out = new(metav1.LabelSelector) + (*in).DeepCopyInto(*out) + } return } @@ -453,21 +411,13 @@ func (in *ResourceMetricSource) DeepCopyInto(out *ResourceMetricSource) { *out = *in if in.TargetAverageUtilization != nil { in, out := &in.TargetAverageUtilization, &out.TargetAverageUtilization - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } if in.TargetAverageValue != nil { in, out := &in.TargetAverageValue, &out.TargetAverageValue - if *in == nil { - *out = nil - } else { - x := (*in).DeepCopy() - *out = &x - } + x := (*in).DeepCopy() + *out = &x } return } @@ -487,12 +437,8 @@ func (in *ResourceMetricStatus) DeepCopyInto(out *ResourceMetricStatus) { *out = *in if in.CurrentAverageUtilization != nil { in, out := &in.CurrentAverageUtilization, &out.CurrentAverageUtilization - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } out.CurrentAverageValue = in.CurrentAverageValue.DeepCopy() return diff --git a/vendor/k8s.io/api/autoscaling/v2beta1/BUILD b/vendor/k8s.io/api/autoscaling/v2beta1/BUILD deleted file mode 100644 index 32fc333eb..000000000 --- a/vendor/k8s.io/api/autoscaling/v2beta1/BUILD +++ /dev/null @@ -1,46 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "generated.pb.go", - "register.go", - "types.go", - "types_swagger_doc_generated.go", - "zz_generated.deepcopy.go", - ], - importpath = "k8s.io/api/autoscaling/v2beta1", - deps = [ - "//vendor/github.com/gogo/protobuf/proto:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) - -filegroup( - name = "go_default_library_protos", - srcs = ["generated.proto"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/api/autoscaling/v2beta1/generated.pb.go b/vendor/k8s.io/api/autoscaling/v2beta1/generated.pb.go index 784e4be2b..b6a5f3562 100644 --- a/vendor/k8s.io/api/autoscaling/v2beta1/generated.pb.go +++ b/vendor/k8s.io/api/autoscaling/v2beta1/generated.pb.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -14,9 +14,8 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: k8s.io/kubernetes/vendor/k8s.io/api/autoscaling/v2beta1/generated.proto -// DO NOT EDIT! /* Package v2beta1 is a generated protocol buffer package. @@ -683,6 +682,26 @@ func (m *ObjectMetricSource) MarshalTo(dAtA []byte) (int, error) { return 0, err } i += n23 + if m.Selector != nil { + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Selector.Size())) + n24, err := m.Selector.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n24 + } + if m.AverageValue != nil { + dAtA[i] = 0x2a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.AverageValue.Size())) + n25, err := m.AverageValue.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n25 + } return i, nil } @@ -704,11 +723,11 @@ func (m *ObjectMetricStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Target.Size())) - n24, err := m.Target.MarshalTo(dAtA[i:]) + n26, err := m.Target.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n24 + i += n26 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.MetricName))) @@ -716,11 +735,31 @@ func (m *ObjectMetricStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.CurrentValue.Size())) - n25, err := m.CurrentValue.MarshalTo(dAtA[i:]) + n27, err := m.CurrentValue.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n25 + i += n27 + if m.Selector != nil { + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Selector.Size())) + n28, err := m.Selector.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n28 + } + if m.AverageValue != nil { + dAtA[i] = 0x2a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.AverageValue.Size())) + n29, err := m.AverageValue.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n29 + } return i, nil } @@ -746,11 +785,21 @@ func (m *PodsMetricSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.TargetAverageValue.Size())) - n26, err := m.TargetAverageValue.MarshalTo(dAtA[i:]) + n30, err := m.TargetAverageValue.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n26 + i += n30 + if m.Selector != nil { + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Selector.Size())) + n31, err := m.Selector.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n31 + } return i, nil } @@ -776,11 +825,21 @@ func (m *PodsMetricStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.CurrentAverageValue.Size())) - n27, err := m.CurrentAverageValue.MarshalTo(dAtA[i:]) + n32, err := m.CurrentAverageValue.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n27 + i += n32 + if m.Selector != nil { + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Selector.Size())) + n33, err := m.Selector.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n33 + } return i, nil } @@ -812,11 +871,11 @@ func (m *ResourceMetricSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.TargetAverageValue.Size())) - n28, err := m.TargetAverageValue.MarshalTo(dAtA[i:]) + n34, err := m.TargetAverageValue.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n28 + i += n34 } return i, nil } @@ -848,32 +907,14 @@ func (m *ResourceMetricStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.CurrentAverageValue.Size())) - n29, err := m.CurrentAverageValue.MarshalTo(dAtA[i:]) + n35, err := m.CurrentAverageValue.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n29 + i += n35 return i, nil } -func encodeFixed64Generated(dAtA []byte, offset int, v uint64) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - dAtA[offset+4] = uint8(v >> 32) - dAtA[offset+5] = uint8(v >> 40) - dAtA[offset+6] = uint8(v >> 48) - dAtA[offset+7] = uint8(v >> 56) - return offset + 8 -} -func encodeFixed32Generated(dAtA []byte, offset int, v uint32) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - return offset + 4 -} func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -1077,6 +1118,14 @@ func (m *ObjectMetricSource) Size() (n int) { n += 1 + l + sovGenerated(uint64(l)) l = m.TargetValue.Size() n += 1 + l + sovGenerated(uint64(l)) + if m.Selector != nil { + l = m.Selector.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.AverageValue != nil { + l = m.AverageValue.Size() + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -1089,6 +1138,14 @@ func (m *ObjectMetricStatus) Size() (n int) { n += 1 + l + sovGenerated(uint64(l)) l = m.CurrentValue.Size() n += 1 + l + sovGenerated(uint64(l)) + if m.Selector != nil { + l = m.Selector.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.AverageValue != nil { + l = m.AverageValue.Size() + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -1099,6 +1156,10 @@ func (m *PodsMetricSource) Size() (n int) { n += 1 + l + sovGenerated(uint64(l)) l = m.TargetAverageValue.Size() n += 1 + l + sovGenerated(uint64(l)) + if m.Selector != nil { + l = m.Selector.Size() + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -1109,6 +1170,10 @@ func (m *PodsMetricStatus) Size() (n int) { n += 1 + l + sovGenerated(uint64(l)) l = m.CurrentAverageValue.Size() n += 1 + l + sovGenerated(uint64(l)) + if m.Selector != nil { + l = m.Selector.Size() + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -1292,6 +1357,8 @@ func (this *ObjectMetricSource) String() string { `Target:` + strings.Replace(strings.Replace(this.Target.String(), "CrossVersionObjectReference", "CrossVersionObjectReference", 1), `&`, ``, 1) + `,`, `MetricName:` + fmt.Sprintf("%v", this.MetricName) + `,`, `TargetValue:` + strings.Replace(strings.Replace(this.TargetValue.String(), "Quantity", "k8s_io_apimachinery_pkg_api_resource.Quantity", 1), `&`, ``, 1) + `,`, + `Selector:` + strings.Replace(fmt.Sprintf("%v", this.Selector), "LabelSelector", "k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector", 1) + `,`, + `AverageValue:` + strings.Replace(fmt.Sprintf("%v", this.AverageValue), "Quantity", "k8s_io_apimachinery_pkg_api_resource.Quantity", 1) + `,`, `}`, }, "") return s @@ -1304,6 +1371,8 @@ func (this *ObjectMetricStatus) String() string { `Target:` + strings.Replace(strings.Replace(this.Target.String(), "CrossVersionObjectReference", "CrossVersionObjectReference", 1), `&`, ``, 1) + `,`, `MetricName:` + fmt.Sprintf("%v", this.MetricName) + `,`, `CurrentValue:` + strings.Replace(strings.Replace(this.CurrentValue.String(), "Quantity", "k8s_io_apimachinery_pkg_api_resource.Quantity", 1), `&`, ``, 1) + `,`, + `Selector:` + strings.Replace(fmt.Sprintf("%v", this.Selector), "LabelSelector", "k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector", 1) + `,`, + `AverageValue:` + strings.Replace(fmt.Sprintf("%v", this.AverageValue), "Quantity", "k8s_io_apimachinery_pkg_api_resource.Quantity", 1) + `,`, `}`, }, "") return s @@ -1315,6 +1384,7 @@ func (this *PodsMetricSource) String() string { s := strings.Join([]string{`&PodsMetricSource{`, `MetricName:` + fmt.Sprintf("%v", this.MetricName) + `,`, `TargetAverageValue:` + strings.Replace(strings.Replace(this.TargetAverageValue.String(), "Quantity", "k8s_io_apimachinery_pkg_api_resource.Quantity", 1), `&`, ``, 1) + `,`, + `Selector:` + strings.Replace(fmt.Sprintf("%v", this.Selector), "LabelSelector", "k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector", 1) + `,`, `}`, }, "") return s @@ -1326,6 +1396,7 @@ func (this *PodsMetricStatus) String() string { s := strings.Join([]string{`&PodsMetricStatus{`, `MetricName:` + fmt.Sprintf("%v", this.MetricName) + `,`, `CurrentAverageValue:` + strings.Replace(strings.Replace(this.CurrentAverageValue.String(), "Quantity", "k8s_io_apimachinery_pkg_api_resource.Quantity", 1), `&`, ``, 1) + `,`, + `Selector:` + strings.Replace(fmt.Sprintf("%v", this.Selector), "LabelSelector", "k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector", 1) + `,`, `}`, }, "") return s @@ -3192,6 +3263,72 @@ func (m *ObjectMetricSource) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Selector", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Selector == nil { + m.Selector = &k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector{} + } + if err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AverageValue", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AverageValue == nil { + m.AverageValue = &k8s_io_apimachinery_pkg_api_resource.Quantity{} + } + if err := m.AverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -3331,6 +3468,72 @@ func (m *ObjectMetricStatus) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Selector", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Selector == nil { + m.Selector = &k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector{} + } + if err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AverageValue", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AverageValue == nil { + m.AverageValue = &k8s_io_apimachinery_pkg_api_resource.Quantity{} + } + if err := m.AverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -3440,6 +3643,39 @@ func (m *PodsMetricSource) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Selector", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Selector == nil { + m.Selector = &k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector{} + } + if err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -3549,6 +3785,39 @@ func (m *PodsMetricStatus) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Selector", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Selector == nil { + m.Selector = &k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector{} + } + if err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -3941,96 +4210,98 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 1441 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x58, 0xcd, 0x8f, 0x1b, 0xc5, - 0x12, 0x5f, 0x7f, 0xec, 0x66, 0xd3, 0xde, 0xec, 0xe6, 0x75, 0xa2, 0xc4, 0xd9, 0xbc, 0xd8, 0xab, - 0xd1, 0xd3, 0x53, 0x88, 0xc8, 0x4c, 0xe2, 0x2c, 0x1f, 0x12, 0x42, 0x62, 0x6d, 0x20, 0x89, 0x58, - 0x27, 0xa1, 0x77, 0x13, 0x21, 0x08, 0x88, 0xf6, 0xb8, 0xe3, 0x6d, 0xd6, 0x33, 0x63, 0x75, 0xb7, - 0xad, 0x6c, 0x10, 0x12, 0x17, 0xee, 0x1c, 0xf8, 0xb8, 0x72, 0x46, 0x70, 0x85, 0x33, 0x48, 0x48, - 0x39, 0xe6, 0x18, 0x84, 0x64, 0x91, 0xe1, 0xbf, 0xc8, 0x09, 0x4d, 0x77, 0xcf, 0x78, 0xc6, 0xf6, - 0xac, 0x1d, 0xb3, 0x09, 0x70, 0x9b, 0xee, 0xaa, 0xfa, 0x55, 0x75, 0x55, 0x75, 0x75, 0xd5, 0x80, - 0xcb, 0xbb, 0x2f, 0x73, 0x93, 0x7a, 0xd6, 0x6e, 0xb7, 0x41, 0x98, 0x4b, 0x04, 0xe1, 0x56, 0x8f, - 0xb8, 0x4d, 0x8f, 0x59, 0x9a, 0x80, 0x3b, 0xd4, 0xc2, 0x5d, 0xe1, 0x71, 0x1b, 0xb7, 0xa9, 0xdb, - 0xb2, 0x7a, 0x95, 0x06, 0x11, 0xf8, 0xa2, 0xd5, 0x22, 0x2e, 0x61, 0x58, 0x90, 0xa6, 0xd9, 0x61, - 0x9e, 0xf0, 0x60, 0x49, 0xf1, 0x9b, 0xb8, 0x43, 0xcd, 0x18, 0xbf, 0xa9, 0xf9, 0x57, 0xcf, 0xb7, - 0xa8, 0xd8, 0xe9, 0x36, 0x4c, 0xdb, 0x73, 0xac, 0x96, 0xd7, 0xf2, 0x2c, 0x29, 0xd6, 0xe8, 0xde, - 0x91, 0x2b, 0xb9, 0x90, 0x5f, 0x0a, 0x6e, 0xd5, 0x88, 0xa9, 0xb7, 0x3d, 0x46, 0xac, 0xde, 0x88, - 0xca, 0xd5, 0xf5, 0x01, 0x8f, 0x83, 0xed, 0x1d, 0xea, 0x12, 0xb6, 0x67, 0x75, 0x76, 0x5b, 0x52, - 0x88, 0x11, 0xee, 0x75, 0x99, 0x4d, 0x9e, 0x48, 0x8a, 0x5b, 0x0e, 0x11, 0x78, 0x9c, 0x2e, 0x2b, - 0x4d, 0x8a, 0x75, 0x5d, 0x41, 0x9d, 0x51, 0x35, 0x2f, 0x4e, 0x12, 0xe0, 0xf6, 0x0e, 0x71, 0xf0, - 0x88, 0xdc, 0xa5, 0x34, 0xb9, 0xae, 0xa0, 0x6d, 0x8b, 0xba, 0x82, 0x0b, 0x36, 0x2c, 0x64, 0x7c, - 0x99, 0x01, 0xa7, 0x6b, 0xcc, 0xe3, 0xfc, 0x16, 0x61, 0x9c, 0x7a, 0xee, 0xf5, 0xc6, 0x47, 0xc4, - 0x16, 0x88, 0xdc, 0x21, 0x8c, 0xb8, 0x36, 0x81, 0x6b, 0x20, 0xbf, 0x4b, 0xdd, 0x66, 0x31, 0xb3, - 0x96, 0x39, 0x7b, 0xb8, 0xba, 0x74, 0xbf, 0x5f, 0x9e, 0xf3, 0xfb, 0xe5, 0xfc, 0x5b, 0xd4, 0x6d, - 0x22, 0x49, 0x09, 0x38, 0x5c, 0xec, 0x90, 0x62, 0x36, 0xc9, 0x71, 0x0d, 0x3b, 0x04, 0x49, 0x0a, - 0xac, 0x00, 0x80, 0x3b, 0x54, 0x2b, 0x28, 0xe6, 0x24, 0x1f, 0xd4, 0x7c, 0x60, 0xe3, 0xc6, 0x55, - 0x4d, 0x41, 0x31, 0x2e, 0xe3, 0xab, 0x1c, 0x38, 0xfe, 0xc6, 0x5d, 0x41, 0x98, 0x8b, 0xdb, 0x75, - 0x22, 0x18, 0xb5, 0xb7, 0x64, 0x50, 0x02, 0x30, 0x47, 0xae, 0x03, 0x05, 0xda, 0xac, 0x08, 0xac, - 0x1e, 0x51, 0x50, 0x8c, 0x0b, 0x7a, 0x60, 0x59, 0xad, 0xb6, 0x48, 0x9b, 0xd8, 0xc2, 0x63, 0xd2, - 0xd8, 0x42, 0xe5, 0x92, 0x39, 0x48, 0xbd, 0xc8, 0x65, 0x66, 0x67, 0xb7, 0x15, 0x6c, 0x70, 0x33, - 0x88, 0xa8, 0xd9, 0xbb, 0x68, 0x6e, 0xe2, 0x06, 0x69, 0x87, 0xa2, 0x55, 0xe8, 0xf7, 0xcb, 0xcb, - 0xf5, 0x04, 0x1c, 0x1a, 0x82, 0x87, 0x18, 0x14, 0x04, 0x66, 0x2d, 0x22, 0x6e, 0xe1, 0x76, 0x97, - 0xc8, 0x23, 0x17, 0x2a, 0xe6, 0x7e, 0xda, 0xcc, 0x30, 0xeb, 0xcc, 0xb7, 0xbb, 0xd8, 0x15, 0x54, - 0xec, 0x55, 0x57, 0xfc, 0x7e, 0xb9, 0xb0, 0x3d, 0x80, 0x41, 0x71, 0x4c, 0xd8, 0x03, 0x50, 0x2d, - 0x37, 0x7a, 0x84, 0xe1, 0x16, 0x51, 0x9a, 0xf2, 0x33, 0x69, 0x3a, 0xe1, 0xf7, 0xcb, 0x70, 0x7b, - 0x04, 0x0d, 0x8d, 0xd1, 0x60, 0x7c, 0x33, 0x1a, 0x18, 0x81, 0x45, 0x97, 0xff, 0x3b, 0x02, 0xb3, - 0x03, 0x96, 0xec, 0x2e, 0x63, 0xc4, 0xfd, 0x4b, 0x91, 0x39, 0xae, 0x8f, 0xb5, 0x54, 0x8b, 0x61, - 0xa1, 0x04, 0x32, 0xdc, 0x03, 0xc7, 0xf4, 0xfa, 0x00, 0x02, 0x74, 0xd2, 0xef, 0x97, 0x8f, 0xd5, - 0x46, 0xe1, 0xd0, 0x38, 0x1d, 0xc6, 0x4f, 0x59, 0x70, 0xf2, 0x8a, 0xc7, 0xe8, 0x3d, 0xcf, 0x15, - 0xb8, 0x7d, 0xc3, 0x6b, 0x6e, 0xe8, 0xaa, 0x4a, 0x18, 0xfc, 0x10, 0x2c, 0x06, 0xde, 0x6b, 0x62, - 0x81, 0x65, 0x8c, 0x0a, 0x95, 0x0b, 0xd3, 0xf9, 0x5a, 0x15, 0x86, 0x3a, 0x11, 0x78, 0x10, 0xd5, - 0xc1, 0x1e, 0x8a, 0x50, 0xe1, 0xfb, 0x20, 0xcf, 0x3b, 0xc4, 0xd6, 0x91, 0x7c, 0xc5, 0xdc, 0xbf, - 0xba, 0x9b, 0x29, 0x86, 0x6e, 0x75, 0x88, 0x3d, 0x28, 0x26, 0xc1, 0x0a, 0x49, 0x58, 0x48, 0xc0, - 0x02, 0x97, 0x09, 0xa7, 0x63, 0xf7, 0xea, 0xac, 0x0a, 0x24, 0x48, 0x75, 0x59, 0xab, 0x58, 0x50, - 0x6b, 0xa4, 0xc1, 0x8d, 0xcf, 0x72, 0x60, 0x2d, 0x45, 0xb2, 0xe6, 0xb9, 0x4d, 0x2a, 0xa8, 0xe7, - 0xc2, 0x2b, 0x20, 0x2f, 0xf6, 0x3a, 0x61, 0xb2, 0xaf, 0x87, 0xd6, 0x6e, 0xef, 0x75, 0xc8, 0xe3, - 0x7e, 0xf9, 0x7f, 0x93, 0xe4, 0x03, 0x3e, 0x24, 0x11, 0xe0, 0x66, 0x74, 0xaa, 0x6c, 0x02, 0x4b, - 0x9b, 0xf5, 0xb8, 0x5f, 0x1e, 0xf3, 0xac, 0x99, 0x11, 0x52, 0xd2, 0xf8, 0xa0, 0x36, 0xb4, 0x31, - 0x17, 0xdb, 0x0c, 0xbb, 0x5c, 0x69, 0xa2, 0x4e, 0x98, 0xeb, 0xe7, 0xa6, 0x0b, 0x77, 0x20, 0x51, - 0x5d, 0xd5, 0x56, 0xc0, 0xcd, 0x11, 0x34, 0x34, 0x46, 0x03, 0xfc, 0x3f, 0x58, 0x60, 0x04, 0x73, - 0xcf, 0x95, 0x69, 0x7e, 0x78, 0xe0, 0x5c, 0x24, 0x77, 0x91, 0xa6, 0xc2, 0xe7, 0xc0, 0x21, 0x87, - 0x70, 0x8e, 0x5b, 0xa4, 0x38, 0x2f, 0x19, 0x57, 0x34, 0xe3, 0xa1, 0xba, 0xda, 0x46, 0x21, 0xdd, - 0xf8, 0x35, 0x03, 0x4e, 0xa7, 0xf8, 0x71, 0x93, 0x72, 0x01, 0x6f, 0x8f, 0xe4, 0xb3, 0x39, 0x65, - 0xed, 0xa0, 0x5c, 0x65, 0xf3, 0x51, 0xad, 0x7b, 0x31, 0xdc, 0x89, 0xe5, 0xf2, 0x6d, 0x30, 0x4f, - 0x05, 0x71, 0x82, 0xa8, 0xe4, 0xce, 0x16, 0x2a, 0x2f, 0xcd, 0x98, 0x6b, 0xd5, 0x23, 0x5a, 0xc7, - 0xfc, 0xd5, 0x00, 0x0d, 0x29, 0x50, 0xe3, 0xb7, 0x6c, 0xea, 0xd9, 0x82, 0x84, 0x87, 0x1f, 0x83, - 0x65, 0xb9, 0x52, 0x95, 0x19, 0x91, 0x3b, 0xfa, 0x84, 0x13, 0xef, 0xd4, 0x3e, 0x0f, 0x7a, 0xf5, - 0x84, 0x36, 0x65, 0x79, 0x2b, 0x01, 0x8d, 0x86, 0x54, 0xc1, 0x8b, 0xa0, 0xe0, 0x50, 0x17, 0x91, - 0x4e, 0x9b, 0xda, 0x58, 0xa5, 0xe5, 0xbc, 0x7a, 0x92, 0xea, 0x83, 0x6d, 0x14, 0xe7, 0x81, 0x2f, - 0x80, 0x82, 0x83, 0xef, 0x46, 0x22, 0x39, 0x29, 0x72, 0x4c, 0xeb, 0x2b, 0xd4, 0x07, 0x24, 0x14, - 0xe7, 0x83, 0x37, 0x83, 0x6c, 0x08, 0xaa, 0x34, 0x2f, 0xe6, 0xa5, 0x9b, 0xcf, 0x4d, 0x3a, 0x9f, - 0x2e, 0xf2, 0x41, 0x89, 0x88, 0x65, 0x8e, 0x84, 0x40, 0x21, 0x96, 0xf1, 0x43, 0x1e, 0x9c, 0xd9, - 0xf7, 0xee, 0xc3, 0x37, 0x01, 0xf4, 0x1a, 0x9c, 0xb0, 0x1e, 0x69, 0x5e, 0x56, 0x6d, 0x51, 0xd0, - 0x9f, 0x04, 0x3e, 0xce, 0xa9, 0x27, 0xf1, 0xfa, 0x08, 0x15, 0x8d, 0x91, 0x80, 0x36, 0x38, 0x12, - 0x5c, 0x06, 0xe5, 0x50, 0xaa, 0x5b, 0xa1, 0x27, 0xbb, 0x69, 0xff, 0xf1, 0xfb, 0xe5, 0x23, 0x9b, - 0x71, 0x10, 0x94, 0xc4, 0x84, 0x1b, 0x60, 0x45, 0xd7, 0xfa, 0x21, 0x07, 0x9f, 0xd4, 0x1e, 0x58, - 0xa9, 0x25, 0xc9, 0x68, 0x98, 0x3f, 0x80, 0x68, 0x12, 0x4e, 0x19, 0x69, 0x46, 0x10, 0xf9, 0x24, - 0xc4, 0xeb, 0x49, 0x32, 0x1a, 0xe6, 0x87, 0x6d, 0xb0, 0xac, 0x51, 0xb5, 0xbf, 0x8b, 0xf3, 0x32, - 0x64, 0xcf, 0x4f, 0x19, 0x32, 0x55, 0x74, 0xa3, 0x1c, 0xac, 0x25, 0xb0, 0xd0, 0x10, 0x36, 0x14, - 0x00, 0xd8, 0x61, 0x89, 0xe3, 0xc5, 0x05, 0xa9, 0xe9, 0xb5, 0x19, 0xef, 0x60, 0x54, 0x2b, 0x07, - 0xcf, 0x57, 0xb4, 0xc5, 0x51, 0x4c, 0x8f, 0xf1, 0x6d, 0x0e, 0x80, 0x41, 0x86, 0xc1, 0xf5, 0x44, - 0x91, 0x5f, 0x1b, 0x2a, 0xf2, 0x47, 0xe3, 0xcd, 0x69, 0xac, 0xa0, 0xdf, 0x02, 0x0b, 0x9e, 0xbc, - 0x79, 0x3a, 0x19, 0x2a, 0x93, 0xcc, 0x8e, 0xde, 0xd2, 0x08, 0xad, 0x0a, 0x82, 0xd2, 0xa9, 0xef, - 0xaf, 0x46, 0x83, 0xd7, 0x40, 0xbe, 0xe3, 0x35, 0xc3, 0xc7, 0xef, 0xc2, 0x24, 0xd4, 0x1b, 0x5e, - 0x93, 0x27, 0x30, 0x17, 0x03, 0xdb, 0x83, 0x5d, 0x24, 0x71, 0xe0, 0x07, 0x60, 0x31, 0x6c, 0x37, - 0x74, 0x6f, 0xb2, 0x3e, 0x09, 0x13, 0x69, 0xfe, 0x04, 0xee, 0x52, 0x50, 0x41, 0x43, 0x0a, 0x8a, - 0x30, 0x03, 0x7c, 0xa2, 0xbb, 0x45, 0x59, 0xeb, 0xa7, 0xc0, 0x1f, 0xd7, 0xf6, 0x2b, 0xfc, 0x90, - 0x82, 0x22, 0x4c, 0xe3, 0xbb, 0x1c, 0x58, 0x4a, 0xb4, 0xa1, 0x7f, 0x47, 0xb8, 0x54, 0x56, 0x1f, - 0x6c, 0xb8, 0x14, 0xe6, 0xc1, 0x87, 0x4b, 0xe1, 0x3e, 0xbd, 0x70, 0xc5, 0xf0, 0xc7, 0x84, 0xeb, - 0x8b, 0x2c, 0x80, 0xa3, 0x99, 0x0e, 0x6d, 0xb0, 0xa0, 0x46, 0x8d, 0x83, 0x78, 0xe1, 0xa2, 0xae, - 0x43, 0x3f, 0x66, 0x1a, 0x7a, 0x68, 0x40, 0xc9, 0x4e, 0x35, 0xa0, 0x90, 0x83, 0x18, 0xe4, 0xa2, - 0x27, 0x30, 0x6d, 0x98, 0x33, 0xbe, 0x1e, 0x76, 0x8b, 0xca, 0xe5, 0x7f, 0xac, 0x5b, 0x9e, 0xd9, - 0x18, 0x65, 0xfc, 0x9c, 0x01, 0x47, 0x87, 0x8b, 0xd8, 0x4c, 0xa3, 0xe6, 0xbd, 0xb1, 0xf3, 0x72, - 0x76, 0x26, 0xc3, 0xa3, 0xbe, 0x78, 0xca, 0x99, 0xf9, 0x97, 0xe4, 0x21, 0x66, 0x9f, 0x97, 0x3f, - 0x19, 0x3f, 0x54, 0xce, 0x76, 0x8a, 0xd3, 0x5a, 0xd9, 0xf4, 0x83, 0xe5, 0xf7, 0x59, 0x70, 0x7c, - 0x5c, 0xf5, 0x87, 0x35, 0xfd, 0x0f, 0x48, 0x9d, 0xc2, 0x8a, 0xff, 0x03, 0x7a, 0xdc, 0x2f, 0x97, - 0xc7, 0x8c, 0x2e, 0x21, 0x4c, 0xec, 0x37, 0xd1, 0x3b, 0xa0, 0x98, 0xf0, 0xdd, 0x4d, 0x41, 0xdb, - 0xf4, 0x9e, 0x6a, 0xca, 0x54, 0xfb, 0xf9, 0x5f, 0xbf, 0x5f, 0x2e, 0x6e, 0xa7, 0xf0, 0xa0, 0x54, - 0xe9, 0x94, 0x7f, 0x25, 0xb9, 0xa7, 0xfe, 0xaf, 0xe4, 0xc7, 0x51, 0x7f, 0xa9, 0xd8, 0x1f, 0x88, - 0xbf, 0xde, 0x03, 0xa7, 0x92, 0x41, 0x1a, 0x75, 0xd8, 0x19, 0xbf, 0x5f, 0x3e, 0x55, 0x4b, 0x63, - 0x42, 0xe9, 0xf2, 0x69, 0x99, 0x96, 0x7b, 0x36, 0x99, 0x56, 0x3d, 0x7f, 0xff, 0x51, 0x69, 0xee, - 0xc1, 0xa3, 0xd2, 0xdc, 0xc3, 0x47, 0xa5, 0xb9, 0x4f, 0xfd, 0x52, 0xe6, 0xbe, 0x5f, 0xca, 0x3c, - 0xf0, 0x4b, 0x99, 0x87, 0x7e, 0x29, 0xf3, 0xbb, 0x5f, 0xca, 0x7c, 0xfe, 0x47, 0x69, 0xee, 0xdd, - 0x43, 0xba, 0xee, 0xfd, 0x19, 0x00, 0x00, 0xff, 0xff, 0x91, 0x09, 0xa9, 0x38, 0x8c, 0x16, 0x00, - 0x00, + // 1475 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x58, 0xcb, 0x8f, 0x1b, 0x45, + 0x13, 0x5f, 0x3f, 0x76, 0xb3, 0x69, 0x6f, 0x76, 0xf7, 0xeb, 0x44, 0x89, 0xb3, 0xf9, 0x62, 0xaf, + 0x2c, 0x84, 0x42, 0x44, 0x66, 0x12, 0xb3, 0x3c, 0x24, 0x84, 0xc4, 0xda, 0x40, 0x12, 0xb1, 0x4e, + 0x42, 0xef, 0x26, 0x42, 0x90, 0x20, 0xda, 0x33, 0x1d, 0x6f, 0xb3, 0x9e, 0x19, 0x6b, 0xba, 0x6d, + 0x65, 0x83, 0x90, 0xb8, 0x70, 0xe7, 0x02, 0x67, 0x90, 0x38, 0x21, 0xb8, 0xc2, 0x99, 0x5b, 0x8e, + 0x39, 0x26, 0x02, 0x59, 0x64, 0xf8, 0x2f, 0x72, 0x42, 0xfd, 0x98, 0xf1, 0x8c, 0x1f, 0x6b, 0xc7, + 0x38, 0xe1, 0x71, 0x9b, 0xee, 0xaa, 0xfa, 0x55, 0x4f, 0xfd, 0xaa, 0xab, 0xbb, 0x1a, 0x5c, 0xdc, + 0x7b, 0x8d, 0x19, 0xd4, 0x33, 0xf7, 0xda, 0x75, 0xe2, 0xbb, 0x84, 0x13, 0x66, 0x76, 0x88, 0x6b, + 0x7b, 0xbe, 0xa9, 0x05, 0xb8, 0x45, 0x4d, 0xdc, 0xe6, 0x1e, 0xb3, 0x70, 0x93, 0xba, 0x0d, 0xb3, + 0x53, 0xae, 0x13, 0x8e, 0x2f, 0x98, 0x0d, 0xe2, 0x12, 0x1f, 0x73, 0x62, 0x1b, 0x2d, 0xdf, 0xe3, + 0x1e, 0x2c, 0x28, 0x7d, 0x03, 0xb7, 0xa8, 0x11, 0xd3, 0x37, 0xb4, 0xfe, 0xda, 0xb9, 0x06, 0xe5, + 0xbb, 0xed, 0xba, 0x61, 0x79, 0x8e, 0xd9, 0xf0, 0x1a, 0x9e, 0x29, 0xcd, 0xea, 0xed, 0xdb, 0x72, + 0x24, 0x07, 0xf2, 0x4b, 0xc1, 0xad, 0x95, 0x62, 0xee, 0x2d, 0xcf, 0x27, 0x66, 0x67, 0xc0, 0xe5, + 0xda, 0x46, 0x4f, 0xc7, 0xc1, 0xd6, 0x2e, 0x75, 0x89, 0xbf, 0x6f, 0xb6, 0xf6, 0x1a, 0xd2, 0xc8, + 0x27, 0xcc, 0x6b, 0xfb, 0x16, 0x79, 0x22, 0x2b, 0x66, 0x3a, 0x84, 0xe3, 0x61, 0xbe, 0xcc, 0x51, + 0x56, 0x7e, 0xdb, 0xe5, 0xd4, 0x19, 0x74, 0xf3, 0xca, 0x38, 0x03, 0x66, 0xed, 0x12, 0x07, 0xf7, + 0xdb, 0x95, 0xbe, 0x4a, 0x81, 0x53, 0x55, 0xdf, 0x63, 0xec, 0x06, 0xf1, 0x19, 0xf5, 0xdc, 0xab, + 0xf5, 0x4f, 0x88, 0xc5, 0x11, 0xb9, 0x4d, 0x7c, 0xe2, 0x5a, 0x04, 0xae, 0x83, 0xec, 0x1e, 0x75, + 0xed, 0x7c, 0x6a, 0x3d, 0x75, 0xe6, 0x70, 0x65, 0xe9, 0x5e, 0xb7, 0x38, 0x17, 0x74, 0x8b, 0xd9, + 0x77, 0xa9, 0x6b, 0x23, 0x29, 0x11, 0x1a, 0x2e, 0x76, 0x48, 0x3e, 0x9d, 0xd4, 0xb8, 0x82, 0x1d, + 0x82, 0xa4, 0x04, 0x96, 0x01, 0xc0, 0x2d, 0xaa, 0x1d, 0xe4, 0x33, 0x52, 0x0f, 0x6a, 0x3d, 0xb0, + 0x79, 0xed, 0xb2, 0x96, 0xa0, 0x98, 0x56, 0xe9, 0xeb, 0x0c, 0x38, 0xf6, 0xf6, 0x1d, 0x4e, 0x7c, + 0x17, 0x37, 0x6b, 0x84, 0xfb, 0xd4, 0xda, 0x96, 0xf1, 0x15, 0x60, 0x8e, 0x1c, 0x0b, 0x07, 0x7a, + 0x59, 0x11, 0x58, 0x2d, 0x92, 0xa0, 0x98, 0x16, 0xf4, 0xc0, 0xb2, 0x1a, 0x6d, 0x93, 0x26, 0xb1, + 0xb8, 0xe7, 0xcb, 0xc5, 0xe6, 0xca, 0x2f, 0x19, 0xbd, 0x2c, 0x8a, 0xa2, 0x66, 0xb4, 0xf6, 0x1a, + 0x62, 0x82, 0x19, 0x82, 0x1c, 0xa3, 0x73, 0xc1, 0xd8, 0xc2, 0x75, 0xd2, 0x0c, 0x4d, 0x2b, 0x30, + 0xe8, 0x16, 0x97, 0x6b, 0x09, 0x38, 0xd4, 0x07, 0x0f, 0x31, 0xc8, 0x71, 0xec, 0x37, 0x08, 0xbf, + 0x81, 0x9b, 0x6d, 0x22, 0x7f, 0x39, 0x57, 0x36, 0x0e, 0xf2, 0x66, 0x84, 0x09, 0x64, 0xbc, 0xd7, + 0xc6, 0x2e, 0xa7, 0x7c, 0xbf, 0xb2, 0x12, 0x74, 0x8b, 0xb9, 0x9d, 0x1e, 0x0c, 0x8a, 0x63, 0xc2, + 0x0e, 0x80, 0x6a, 0xb8, 0xd9, 0x21, 0x3e, 0x6e, 0x10, 0xe5, 0x29, 0x3b, 0x95, 0xa7, 0xe3, 0x41, + 0xb7, 0x08, 0x77, 0x06, 0xd0, 0xd0, 0x10, 0x0f, 0xa5, 0x6f, 0x06, 0x89, 0xe1, 0x98, 0xb7, 0xd9, + 0xbf, 0x83, 0x98, 0x5d, 0xb0, 0x64, 0xb5, 0x7d, 0x9f, 0xb8, 0x7f, 0x89, 0x99, 0x63, 0xfa, 0xb7, + 0x96, 0xaa, 0x31, 0x2c, 0x94, 0x40, 0x86, 0xfb, 0xe0, 0xa8, 0x1e, 0xcf, 0x80, 0xa0, 0x13, 0x41, + 0xb7, 0x78, 0xb4, 0x3a, 0x08, 0x87, 0x86, 0xf9, 0x28, 0xfd, 0x92, 0x06, 0x27, 0x2e, 0x79, 0x3e, + 0xbd, 0xeb, 0xb9, 0x1c, 0x37, 0xaf, 0x79, 0xf6, 0xa6, 0x2e, 0x90, 0xc4, 0x87, 0x1f, 0x83, 0x45, + 0x11, 0x3d, 0x1b, 0x73, 0x2c, 0x39, 0xca, 0x95, 0xcf, 0x4f, 0x16, 0x6b, 0x55, 0x18, 0x6a, 0x84, + 0xe3, 0x1e, 0xab, 0xbd, 0x39, 0x14, 0xa1, 0xc2, 0x5b, 0x20, 0xcb, 0x5a, 0xc4, 0xd2, 0x4c, 0xbe, + 0x6e, 0x1c, 0x5c, 0xa8, 0x8d, 0x11, 0x0b, 0xdd, 0x6e, 0x11, 0xab, 0x57, 0x4c, 0xc4, 0x08, 0x49, + 0x58, 0x48, 0xc0, 0x02, 0x93, 0x09, 0xa7, 0xb9, 0x7b, 0x63, 0x5a, 0x07, 0x12, 0xa4, 0xb2, 0xac, + 0x5d, 0x2c, 0xa8, 0x31, 0xd2, 0xe0, 0xa5, 0x2f, 0x32, 0x60, 0x7d, 0x84, 0x65, 0xd5, 0x73, 0x6d, + 0xca, 0xa9, 0xe7, 0xc2, 0x4b, 0x20, 0xcb, 0xf7, 0x5b, 0x61, 0xb2, 0x6f, 0x84, 0xab, 0xdd, 0xd9, + 0x6f, 0x91, 0xc7, 0xdd, 0xe2, 0x73, 0xe3, 0xec, 0x85, 0x1e, 0x92, 0x08, 0x70, 0x2b, 0xfa, 0xab, + 0x74, 0x02, 0x4b, 0x2f, 0xeb, 0x71, 0xb7, 0x38, 0xe4, 0x84, 0x32, 0x22, 0xa4, 0xe4, 0xe2, 0x45, + 0x6d, 0x68, 0x62, 0xc6, 0x77, 0x7c, 0xec, 0x32, 0xe5, 0x89, 0x3a, 0x61, 0xae, 0x9f, 0x9d, 0x8c, + 0x6e, 0x61, 0x51, 0x59, 0xd3, 0xab, 0x80, 0x5b, 0x03, 0x68, 0x68, 0x88, 0x07, 0xf8, 0x3c, 0x58, + 0xf0, 0x09, 0x66, 0x9e, 0x2b, 0xd3, 0xfc, 0x70, 0x2f, 0xb8, 0x48, 0xce, 0x22, 0x2d, 0x85, 0x2f, + 0x80, 0x43, 0x0e, 0x61, 0x0c, 0x37, 0x48, 0x7e, 0x5e, 0x2a, 0xae, 0x68, 0xc5, 0x43, 0x35, 0x35, + 0x8d, 0x42, 0x79, 0xe9, 0x61, 0x0a, 0x9c, 0x1a, 0x11, 0xc7, 0x2d, 0xca, 0x38, 0xbc, 0x39, 0x90, + 0xcf, 0xc6, 0x84, 0xb5, 0x83, 0x32, 0x95, 0xcd, 0xab, 0xda, 0xf7, 0x62, 0x38, 0x13, 0xcb, 0xe5, + 0x9b, 0x60, 0x9e, 0x72, 0xe2, 0x08, 0x56, 0x32, 0x67, 0x72, 0xe5, 0x57, 0xa7, 0xcc, 0xb5, 0xca, + 0x11, 0xed, 0x63, 0xfe, 0xb2, 0x40, 0x43, 0x0a, 0xb4, 0xf4, 0x6b, 0x7a, 0xe4, 0xbf, 0x89, 0x84, + 0x87, 0x9f, 0x82, 0x65, 0x39, 0x52, 0x95, 0x19, 0x91, 0xdb, 0xfa, 0x0f, 0xc7, 0xee, 0xa9, 0x03, + 0x0e, 0xf4, 0xca, 0x71, 0xbd, 0x94, 0xe5, 0xed, 0x04, 0x34, 0xea, 0x73, 0x05, 0x2f, 0x80, 0x9c, + 0x43, 0x5d, 0x44, 0x5a, 0x4d, 0x6a, 0x61, 0x95, 0x96, 0xf3, 0xea, 0x48, 0xaa, 0xf5, 0xa6, 0x51, + 0x5c, 0x07, 0xbe, 0x0c, 0x72, 0x0e, 0xbe, 0x13, 0x99, 0x64, 0xa4, 0xc9, 0x51, 0xed, 0x2f, 0x57, + 0xeb, 0x89, 0x50, 0x5c, 0x0f, 0x5e, 0x17, 0xd9, 0x20, 0xaa, 0x34, 0xcb, 0x67, 0x65, 0x98, 0xcf, + 0x8e, 0xfb, 0x3f, 0x5d, 0xe4, 0x45, 0x89, 0x88, 0x65, 0x8e, 0x84, 0x40, 0x21, 0x56, 0xe9, 0xa7, + 0x2c, 0x38, 0x7d, 0xe0, 0xde, 0x87, 0xef, 0x00, 0xe8, 0xd5, 0x19, 0xf1, 0x3b, 0xc4, 0xbe, 0xa8, + 0xae, 0x45, 0xe2, 0x7e, 0x22, 0x62, 0x9c, 0x51, 0x47, 0xe2, 0xd5, 0x01, 0x29, 0x1a, 0x62, 0x01, + 0x2d, 0x70, 0x44, 0x6c, 0x06, 0x15, 0x50, 0xaa, 0xaf, 0x42, 0x4f, 0xb6, 0xd3, 0xfe, 0x17, 0x74, + 0x8b, 0x47, 0xb6, 0xe2, 0x20, 0x28, 0x89, 0x09, 0x37, 0xc1, 0x8a, 0xae, 0xf5, 0x7d, 0x01, 0x3e, + 0xa1, 0x23, 0xb0, 0x52, 0x4d, 0x8a, 0x51, 0xbf, 0xbe, 0x80, 0xb0, 0x09, 0xa3, 0x3e, 0xb1, 0x23, + 0x88, 0x6c, 0x12, 0xe2, 0xad, 0xa4, 0x18, 0xf5, 0xeb, 0xc3, 0x26, 0x58, 0xd6, 0xa8, 0x3a, 0xde, + 0xf9, 0x79, 0x49, 0xd9, 0x8b, 0x13, 0x52, 0xa6, 0x8a, 0x6e, 0x94, 0x83, 0xd5, 0x04, 0x16, 0xea, + 0xc3, 0x86, 0x1c, 0x00, 0x2b, 0x2c, 0x71, 0x2c, 0xbf, 0x20, 0x3d, 0xbd, 0x39, 0xe5, 0x1e, 0x8c, + 0x6a, 0x65, 0xef, 0xf8, 0x8a, 0xa6, 0x18, 0x8a, 0xf9, 0x29, 0x7d, 0x9f, 0x01, 0xa0, 0x97, 0x61, + 0x70, 0x23, 0x51, 0xe4, 0xd7, 0xfb, 0x8a, 0xfc, 0x6a, 0xfc, 0x72, 0x1a, 0x2b, 0xe8, 0x37, 0xc0, + 0x82, 0x27, 0x77, 0x9e, 0x4e, 0x86, 0xf2, 0xb8, 0x65, 0x47, 0x67, 0x69, 0x84, 0x56, 0x01, 0xa2, + 0x74, 0xea, 0xfd, 0xab, 0xd1, 0xe0, 0x15, 0x90, 0x6d, 0x79, 0x76, 0x78, 0xf8, 0x9d, 0x1f, 0x87, + 0x7a, 0xcd, 0xb3, 0x59, 0x02, 0x73, 0x51, 0xac, 0x5d, 0xcc, 0x22, 0x89, 0x03, 0x3f, 0x02, 0x8b, + 0xe1, 0x75, 0x43, 0xdf, 0x4d, 0x36, 0xc6, 0x61, 0x22, 0xad, 0x9f, 0xc0, 0x5d, 0x12, 0x15, 0x34, + 0x94, 0xa0, 0x08, 0x53, 0xe0, 0x13, 0x7d, 0x5b, 0x94, 0xb5, 0x7e, 0x02, 0xfc, 0x61, 0xd7, 0x7e, + 0x85, 0x1f, 0x4a, 0x50, 0x84, 0x59, 0xfa, 0x21, 0x03, 0x96, 0x12, 0xd7, 0xd0, 0xbf, 0x83, 0x2e, + 0x95, 0xd5, 0xb3, 0xa5, 0x4b, 0x61, 0xce, 0x9e, 0x2e, 0x85, 0xfb, 0xf4, 0xe8, 0x8a, 0xe1, 0x0f, + 0xa1, 0xeb, 0x61, 0x06, 0xc0, 0xc1, 0x4c, 0x87, 0x16, 0x58, 0x50, 0xad, 0xc6, 0x2c, 0x4e, 0xb8, + 0xe8, 0xd6, 0xa1, 0x0f, 0x33, 0x0d, 0xdd, 0xd7, 0xa0, 0xa4, 0x27, 0x6a, 0x50, 0xc8, 0x2c, 0x1a, + 0xb9, 0xe8, 0x08, 0x1c, 0xd9, 0xcc, 0xdd, 0x02, 0x8b, 0x2c, 0xec, 0x80, 0xb2, 0xd3, 0x77, 0x40, + 0x32, 0xea, 0x51, 0xef, 0x13, 0x41, 0x42, 0x1b, 0x2c, 0xe1, 0x78, 0x13, 0x32, 0x3f, 0xd5, 0x6f, + 0xac, 0x8a, 0x8e, 0x27, 0xd1, 0x7d, 0x24, 0x50, 0x4b, 0xbf, 0xf5, 0x73, 0xab, 0x36, 0xe4, 0x3f, + 0x96, 0xdb, 0x67, 0xd7, 0x0b, 0xfe, 0x27, 0xe8, 0xfd, 0x36, 0x0d, 0x56, 0xfb, 0x8f, 0x93, 0xa9, + 0x9a, 0xfe, 0xbb, 0x43, 0x5f, 0x2e, 0xd2, 0x53, 0x2d, 0x3a, 0xea, 0x50, 0x26, 0x7b, 0xbd, 0x48, + 0x30, 0x91, 0x99, 0x39, 0x13, 0xa5, 0xef, 0x92, 0x31, 0x9a, 0xfe, 0x61, 0xe4, 0xb3, 0xe1, 0xaf, + 0x07, 0xd3, 0x05, 0xe9, 0x94, 0x76, 0x36, 0xf1, 0x0b, 0xc2, 0xd3, 0x0e, 0xd3, 0x8f, 0x69, 0x70, + 0x6c, 0xd8, 0x2d, 0x02, 0x56, 0xf5, 0x5b, 0xa2, 0x0a, 0x92, 0x19, 0x7f, 0x4b, 0x7c, 0xdc, 0x2d, + 0x16, 0x87, 0xb4, 0xc0, 0x21, 0x4c, 0xec, 0xb9, 0xf1, 0x7d, 0x90, 0x4f, 0x30, 0x7f, 0x9d, 0xd3, + 0x26, 0xbd, 0xab, 0x2e, 0xf7, 0xaa, 0x8d, 0xf9, 0x7f, 0xd0, 0x2d, 0xe6, 0x77, 0x46, 0xe8, 0xa0, + 0x91, 0xd6, 0x23, 0xde, 0xdc, 0x32, 0x4f, 0xfd, 0xcd, 0xed, 0xe7, 0xc1, 0x78, 0xa9, 0xd4, 0x9a, + 0x49, 0xbc, 0x3e, 0x04, 0x27, 0x93, 0x39, 0x30, 0x18, 0xb0, 0xd3, 0x41, 0xb7, 0x78, 0xb2, 0x3a, + 0x4a, 0x09, 0x8d, 0xb6, 0x1f, 0x95, 0xc8, 0x99, 0x67, 0x93, 0xc8, 0x95, 0x73, 0xf7, 0x1e, 0x15, + 0xe6, 0xee, 0x3f, 0x2a, 0xcc, 0x3d, 0x78, 0x54, 0x98, 0xfb, 0x3c, 0x28, 0xa4, 0xee, 0x05, 0x85, + 0xd4, 0xfd, 0xa0, 0x90, 0x7a, 0x10, 0x14, 0x52, 0xbf, 0x07, 0x85, 0xd4, 0x97, 0x7f, 0x14, 0xe6, + 0x3e, 0x38, 0xa4, 0x8f, 0x9e, 0x3f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x05, 0x26, 0x31, 0x5d, 0x9f, + 0x18, 0x00, 0x00, } diff --git a/vendor/k8s.io/api/autoscaling/v2beta1/generated.proto b/vendor/k8s.io/api/autoscaling/v2beta1/generated.proto index b565920c3..04bc0ed60 100644 --- a/vendor/k8s.io/api/autoscaling/v2beta1/generated.proto +++ b/vendor/k8s.io/api/autoscaling/v2beta1/generated.proto @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -26,7 +26,6 @@ import "k8s.io/apimachinery/pkg/api/resource/generated.proto"; import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; -import "k8s.io/apimachinery/pkg/util/intstr/generated.proto"; // Package-wide variables from generator "generated". option go_package = "v2beta1"; @@ -187,6 +186,7 @@ message HorizontalPodAutoscalerStatus { optional int32 desiredReplicas = 4; // currentMetrics is the last read state of the metrics used by this autoscaler. + // +optional repeated MetricStatus currentMetrics = 5; // conditions is the set of conditions required for this autoscaler to scale its target, @@ -274,6 +274,17 @@ message ObjectMetricSource { // targetValue is the target value of the metric (as a quantity). optional k8s.io.apimachinery.pkg.api.resource.Quantity targetValue = 3; + + // selector is the string-encoded form of a standard kubernetes label selector for the given metric + // When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping + // When unset, just the metricName will be used to gather metrics. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 4; + + // averageValue is the target value of the average of the + // metric across all relevant pods (as a quantity) + // +optional + optional k8s.io.apimachinery.pkg.api.resource.Quantity averageValue = 5; } // ObjectMetricStatus indicates the current value of a metric describing a @@ -287,6 +298,17 @@ message ObjectMetricStatus { // currentValue is the current value of the metric (as a quantity). optional k8s.io.apimachinery.pkg.api.resource.Quantity currentValue = 3; + + // selector is the string-encoded form of a standard kubernetes label selector for the given metric + // When set in the ObjectMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping. + // When unset, just the metricName will be used to gather metrics. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 4; + + // averageValue is the current value of the average of the + // metric across all relevant pods (as a quantity) + // +optional + optional k8s.io.apimachinery.pkg.api.resource.Quantity averageValue = 5; } // PodsMetricSource indicates how to scale on a metric describing each pod in @@ -300,6 +322,12 @@ message PodsMetricSource { // targetAverageValue is the target value of the average of the // metric across all relevant pods (as a quantity) optional k8s.io.apimachinery.pkg.api.resource.Quantity targetAverageValue = 2; + + // selector is the string-encoded form of a standard kubernetes label selector for the given metric + // When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping + // When unset, just the metricName will be used to gather metrics. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 3; } // PodsMetricStatus indicates the current value of a metric describing each pod in @@ -311,6 +339,12 @@ message PodsMetricStatus { // currentAverageValue is the current value of the average of the // metric across all relevant pods (as a quantity) optional k8s.io.apimachinery.pkg.api.resource.Quantity currentAverageValue = 2; + + // selector is the string-encoded form of a standard kubernetes label selector for the given metric + // When set in the PodsMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping. + // When unset, just the metricName will be used to gather metrics. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 3; } // ResourceMetricSource indicates how to scale on a resource metric known to diff --git a/vendor/k8s.io/api/autoscaling/v2beta1/types.go b/vendor/k8s.io/api/autoscaling/v2beta1/types.go index f842cc342..6a30e6774 100644 --- a/vendor/k8s.io/api/autoscaling/v2beta1/types.go +++ b/vendor/k8s.io/api/autoscaling/v2beta1/types.go @@ -123,6 +123,16 @@ type ObjectMetricSource struct { MetricName string `json:"metricName" protobuf:"bytes,2,name=metricName"` // targetValue is the target value of the metric (as a quantity). TargetValue resource.Quantity `json:"targetValue" protobuf:"bytes,3,name=targetValue"` + + // selector is the string-encoded form of a standard kubernetes label selector for the given metric + // When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping + // When unset, just the metricName will be used to gather metrics. + // +optional + Selector *metav1.LabelSelector `json:"selector,omitempty" protobuf:"bytes,4,name=selector"` + // averageValue is the target value of the average of the + // metric across all relevant pods (as a quantity) + // +optional + AverageValue *resource.Quantity `json:"averageValue,omitempty" protobuf:"bytes,5,name=averageValue"` } // PodsMetricSource indicates how to scale on a metric describing each pod in @@ -135,6 +145,12 @@ type PodsMetricSource struct { // targetAverageValue is the target value of the average of the // metric across all relevant pods (as a quantity) TargetAverageValue resource.Quantity `json:"targetAverageValue" protobuf:"bytes,2,name=targetAverageValue"` + + // selector is the string-encoded form of a standard kubernetes label selector for the given metric + // When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping + // When unset, just the metricName will be used to gather metrics. + // +optional + Selector *metav1.LabelSelector `json:"selector,omitempty" protobuf:"bytes,3,name=selector"` } // ResourceMetricSource indicates how to scale on a resource metric known to @@ -200,6 +216,7 @@ type HorizontalPodAutoscalerStatus struct { DesiredReplicas int32 `json:"desiredReplicas" protobuf:"varint,4,opt,name=desiredReplicas"` // currentMetrics is the last read state of the metrics used by this autoscaler. + // +optional CurrentMetrics []MetricStatus `json:"currentMetrics" protobuf:"bytes,5,rep,name=currentMetrics"` // conditions is the set of conditions required for this autoscaler to scale its target, @@ -284,6 +301,16 @@ type ObjectMetricStatus struct { MetricName string `json:"metricName" protobuf:"bytes,2,name=metricName"` // currentValue is the current value of the metric (as a quantity). CurrentValue resource.Quantity `json:"currentValue" protobuf:"bytes,3,name=currentValue"` + + // selector is the string-encoded form of a standard kubernetes label selector for the given metric + // When set in the ObjectMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping. + // When unset, just the metricName will be used to gather metrics. + // +optional + Selector *metav1.LabelSelector `json:"selector,omitempty" protobuf:"bytes,4,name=selector"` + // averageValue is the current value of the average of the + // metric across all relevant pods (as a quantity) + // +optional + AverageValue *resource.Quantity `json:"averageValue,omitempty" protobuf:"bytes,5,name=averageValue"` } // PodsMetricStatus indicates the current value of a metric describing each pod in @@ -294,6 +321,12 @@ type PodsMetricStatus struct { // currentAverageValue is the current value of the average of the // metric across all relevant pods (as a quantity) CurrentAverageValue resource.Quantity `json:"currentAverageValue" protobuf:"bytes,2,name=currentAverageValue"` + + // selector is the string-encoded form of a standard kubernetes label selector for the given metric + // When set in the PodsMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping. + // When unset, just the metricName will be used to gather metrics. + // +optional + Selector *metav1.LabelSelector `json:"selector,omitempty" protobuf:"bytes,3,name=selector"` } // ResourceMetricStatus indicates the current value of a resource metric known to diff --git a/vendor/k8s.io/api/autoscaling/v2beta1/types_swagger_doc_generated.go b/vendor/k8s.io/api/autoscaling/v2beta1/types_swagger_doc_generated.go index 12cfa7649..589408ace 100644 --- a/vendor/k8s.io/api/autoscaling/v2beta1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/autoscaling/v2beta1/types_swagger_doc_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2016 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -26,7 +26,7 @@ package v2beta1 // // Those methods can be generated by using hack/update-generated-swagger-docs.sh -// AUTO-GENERATED FUNCTIONS START HERE +// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT. var map_CrossVersionObjectReference = map[string]string{ "": "CrossVersionObjectReference contains enough information to let you identify the referred resource.", "kind": "Kind of the referent; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\"", @@ -149,10 +149,12 @@ func (MetricStatus) SwaggerDoc() map[string]string { } var map_ObjectMetricSource = map[string]string{ - "": "ObjectMetricSource indicates how to scale on a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).", - "target": "target is the described Kubernetes object.", - "metricName": "metricName is the name of the metric in question.", - "targetValue": "targetValue is the target value of the metric (as a quantity).", + "": "ObjectMetricSource indicates how to scale on a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).", + "target": "target is the described Kubernetes object.", + "metricName": "metricName is the name of the metric in question.", + "targetValue": "targetValue is the target value of the metric (as a quantity).", + "selector": "selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping When unset, just the metricName will be used to gather metrics.", + "averageValue": "averageValue is the target value of the average of the metric across all relevant pods (as a quantity)", } func (ObjectMetricSource) SwaggerDoc() map[string]string { @@ -164,6 +166,8 @@ var map_ObjectMetricStatus = map[string]string{ "target": "target is the described Kubernetes object.", "metricName": "metricName is the name of the metric in question.", "currentValue": "currentValue is the current value of the metric (as a quantity).", + "selector": "selector is the string-encoded form of a standard kubernetes label selector for the given metric When set in the ObjectMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics.", + "averageValue": "averageValue is the current value of the average of the metric across all relevant pods (as a quantity)", } func (ObjectMetricStatus) SwaggerDoc() map[string]string { @@ -174,6 +178,7 @@ var map_PodsMetricSource = map[string]string{ "": "PodsMetricSource indicates how to scale on a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.", "metricName": "metricName is the name of the metric in question", "targetAverageValue": "targetAverageValue is the target value of the average of the metric across all relevant pods (as a quantity)", + "selector": "selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping When unset, just the metricName will be used to gather metrics.", } func (PodsMetricSource) SwaggerDoc() map[string]string { @@ -184,6 +189,7 @@ var map_PodsMetricStatus = map[string]string{ "": "PodsMetricStatus indicates the current value of a metric describing each pod in the current scale target (for example, transactions-processed-per-second).", "metricName": "metricName is the name of the metric in question", "currentAverageValue": "currentAverageValue is the current value of the average of the metric across all relevant pods (as a quantity)", + "selector": "selector is the string-encoded form of a standard kubernetes label selector for the given metric When set in the PodsMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics.", } func (PodsMetricStatus) SwaggerDoc() map[string]string { @@ -191,8 +197,8 @@ func (PodsMetricStatus) SwaggerDoc() map[string]string { } var map_ResourceMetricSource = map[string]string{ - "": "ResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source. Only one \"target\" type should be set.", - "name": "name is the name of the resource in question.", + "": "ResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source. Only one \"target\" type should be set.", + "name": "name is the name of the resource in question.", "targetAverageUtilization": "targetAverageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.", "targetAverageValue": "targetAverageValue is the target value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the \"pods\" metric source type.", } @@ -202,8 +208,8 @@ func (ResourceMetricSource) SwaggerDoc() map[string]string { } var map_ResourceMetricStatus = map[string]string{ - "": "ResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source.", - "name": "name is the name of the resource in question.", + "": "ResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source.", + "name": "name is the name of the resource in question.", "currentAverageUtilization": "currentAverageUtilization is the current value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods. It will only be present if `targetAverageValue` was set in the corresponding metric specification.", "currentAverageValue": "currentAverageValue is the current value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the \"pods\" metric source type. It will always be set, regardless of the corresponding metric specification.", } diff --git a/vendor/k8s.io/api/autoscaling/v2beta1/zz_generated.deepcopy.go b/vendor/k8s.io/api/autoscaling/v2beta1/zz_generated.deepcopy.go index dc59dc2d3..2ec7e6156 100644 --- a/vendor/k8s.io/api/autoscaling/v2beta1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/api/autoscaling/v2beta1/zz_generated.deepcopy.go @@ -1,7 +1,7 @@ // +build !ignore_autogenerated /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -46,30 +46,18 @@ func (in *ExternalMetricSource) DeepCopyInto(out *ExternalMetricSource) { *out = *in if in.MetricSelector != nil { in, out := &in.MetricSelector, &out.MetricSelector - if *in == nil { - *out = nil - } else { - *out = new(v1.LabelSelector) - (*in).DeepCopyInto(*out) - } + *out = new(v1.LabelSelector) + (*in).DeepCopyInto(*out) } if in.TargetValue != nil { in, out := &in.TargetValue, &out.TargetValue - if *in == nil { - *out = nil - } else { - x := (*in).DeepCopy() - *out = &x - } + x := (*in).DeepCopy() + *out = &x } if in.TargetAverageValue != nil { in, out := &in.TargetAverageValue, &out.TargetAverageValue - if *in == nil { - *out = nil - } else { - x := (*in).DeepCopy() - *out = &x - } + x := (*in).DeepCopy() + *out = &x } return } @@ -89,22 +77,14 @@ func (in *ExternalMetricStatus) DeepCopyInto(out *ExternalMetricStatus) { *out = *in if in.MetricSelector != nil { in, out := &in.MetricSelector, &out.MetricSelector - if *in == nil { - *out = nil - } else { - *out = new(v1.LabelSelector) - (*in).DeepCopyInto(*out) - } + *out = new(v1.LabelSelector) + (*in).DeepCopyInto(*out) } out.CurrentValue = in.CurrentValue.DeepCopy() if in.CurrentAverageValue != nil { in, out := &in.CurrentAverageValue, &out.CurrentAverageValue - if *in == nil { - *out = nil - } else { - x := (*in).DeepCopy() - *out = &x - } + x := (*in).DeepCopy() + *out = &x } return } @@ -203,12 +183,8 @@ func (in *HorizontalPodAutoscalerSpec) DeepCopyInto(out *HorizontalPodAutoscaler out.ScaleTargetRef = in.ScaleTargetRef if in.MinReplicas != nil { in, out := &in.MinReplicas, &out.MinReplicas - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } if in.Metrics != nil { in, out := &in.Metrics, &out.Metrics @@ -235,20 +211,12 @@ func (in *HorizontalPodAutoscalerStatus) DeepCopyInto(out *HorizontalPodAutoscal *out = *in if in.ObservedGeneration != nil { in, out := &in.ObservedGeneration, &out.ObservedGeneration - if *in == nil { - *out = nil - } else { - *out = new(int64) - **out = **in - } + *out = new(int64) + **out = **in } if in.LastScaleTime != nil { in, out := &in.LastScaleTime, &out.LastScaleTime - if *in == nil { - *out = nil - } else { - *out = (*in).DeepCopy() - } + *out = (*in).DeepCopy() } if in.CurrentMetrics != nil { in, out := &in.CurrentMetrics, &out.CurrentMetrics @@ -282,39 +250,23 @@ func (in *MetricSpec) DeepCopyInto(out *MetricSpec) { *out = *in if in.Object != nil { in, out := &in.Object, &out.Object - if *in == nil { - *out = nil - } else { - *out = new(ObjectMetricSource) - (*in).DeepCopyInto(*out) - } + *out = new(ObjectMetricSource) + (*in).DeepCopyInto(*out) } if in.Pods != nil { in, out := &in.Pods, &out.Pods - if *in == nil { - *out = nil - } else { - *out = new(PodsMetricSource) - (*in).DeepCopyInto(*out) - } + *out = new(PodsMetricSource) + (*in).DeepCopyInto(*out) } if in.Resource != nil { in, out := &in.Resource, &out.Resource - if *in == nil { - *out = nil - } else { - *out = new(ResourceMetricSource) - (*in).DeepCopyInto(*out) - } + *out = new(ResourceMetricSource) + (*in).DeepCopyInto(*out) } if in.External != nil { in, out := &in.External, &out.External - if *in == nil { - *out = nil - } else { - *out = new(ExternalMetricSource) - (*in).DeepCopyInto(*out) - } + *out = new(ExternalMetricSource) + (*in).DeepCopyInto(*out) } return } @@ -334,39 +286,23 @@ func (in *MetricStatus) DeepCopyInto(out *MetricStatus) { *out = *in if in.Object != nil { in, out := &in.Object, &out.Object - if *in == nil { - *out = nil - } else { - *out = new(ObjectMetricStatus) - (*in).DeepCopyInto(*out) - } + *out = new(ObjectMetricStatus) + (*in).DeepCopyInto(*out) } if in.Pods != nil { in, out := &in.Pods, &out.Pods - if *in == nil { - *out = nil - } else { - *out = new(PodsMetricStatus) - (*in).DeepCopyInto(*out) - } + *out = new(PodsMetricStatus) + (*in).DeepCopyInto(*out) } if in.Resource != nil { in, out := &in.Resource, &out.Resource - if *in == nil { - *out = nil - } else { - *out = new(ResourceMetricStatus) - (*in).DeepCopyInto(*out) - } + *out = new(ResourceMetricStatus) + (*in).DeepCopyInto(*out) } if in.External != nil { in, out := &in.External, &out.External - if *in == nil { - *out = nil - } else { - *out = new(ExternalMetricStatus) - (*in).DeepCopyInto(*out) - } + *out = new(ExternalMetricStatus) + (*in).DeepCopyInto(*out) } return } @@ -386,6 +322,16 @@ func (in *ObjectMetricSource) DeepCopyInto(out *ObjectMetricSource) { *out = *in out.Target = in.Target out.TargetValue = in.TargetValue.DeepCopy() + if in.Selector != nil { + in, out := &in.Selector, &out.Selector + *out = new(v1.LabelSelector) + (*in).DeepCopyInto(*out) + } + if in.AverageValue != nil { + in, out := &in.AverageValue, &out.AverageValue + x := (*in).DeepCopy() + *out = &x + } return } @@ -404,6 +350,16 @@ func (in *ObjectMetricStatus) DeepCopyInto(out *ObjectMetricStatus) { *out = *in out.Target = in.Target out.CurrentValue = in.CurrentValue.DeepCopy() + if in.Selector != nil { + in, out := &in.Selector, &out.Selector + *out = new(v1.LabelSelector) + (*in).DeepCopyInto(*out) + } + if in.AverageValue != nil { + in, out := &in.AverageValue, &out.AverageValue + x := (*in).DeepCopy() + *out = &x + } return } @@ -421,6 +377,11 @@ func (in *ObjectMetricStatus) DeepCopy() *ObjectMetricStatus { func (in *PodsMetricSource) DeepCopyInto(out *PodsMetricSource) { *out = *in out.TargetAverageValue = in.TargetAverageValue.DeepCopy() + if in.Selector != nil { + in, out := &in.Selector, &out.Selector + *out = new(v1.LabelSelector) + (*in).DeepCopyInto(*out) + } return } @@ -438,6 +399,11 @@ func (in *PodsMetricSource) DeepCopy() *PodsMetricSource { func (in *PodsMetricStatus) DeepCopyInto(out *PodsMetricStatus) { *out = *in out.CurrentAverageValue = in.CurrentAverageValue.DeepCopy() + if in.Selector != nil { + in, out := &in.Selector, &out.Selector + *out = new(v1.LabelSelector) + (*in).DeepCopyInto(*out) + } return } @@ -456,21 +422,13 @@ func (in *ResourceMetricSource) DeepCopyInto(out *ResourceMetricSource) { *out = *in if in.TargetAverageUtilization != nil { in, out := &in.TargetAverageUtilization, &out.TargetAverageUtilization - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } if in.TargetAverageValue != nil { in, out := &in.TargetAverageValue, &out.TargetAverageValue - if *in == nil { - *out = nil - } else { - x := (*in).DeepCopy() - *out = &x - } + x := (*in).DeepCopy() + *out = &x } return } @@ -490,12 +448,8 @@ func (in *ResourceMetricStatus) DeepCopyInto(out *ResourceMetricStatus) { *out = *in if in.CurrentAverageUtilization != nil { in, out := &in.CurrentAverageUtilization, &out.CurrentAverageUtilization - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } out.CurrentAverageValue = in.CurrentAverageValue.DeepCopy() return diff --git a/vendor/k8s.io/api/autoscaling/v2beta2/doc.go b/vendor/k8s.io/api/autoscaling/v2beta2/doc.go new file mode 100644 index 000000000..7c7d2b6f1 --- /dev/null +++ b/vendor/k8s.io/api/autoscaling/v2beta2/doc.go @@ -0,0 +1,20 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// +k8s:deepcopy-gen=package +// +k8s:openapi-gen=true + +package v2beta2 // import "k8s.io/api/autoscaling/v2beta2" diff --git a/vendor/k8s.io/api/autoscaling/v2beta2/generated.pb.go b/vendor/k8s.io/api/autoscaling/v2beta2/generated.pb.go new file mode 100644 index 000000000..816fea9d5 --- /dev/null +++ b/vendor/k8s.io/api/autoscaling/v2beta2/generated.pb.go @@ -0,0 +1,4419 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: k8s.io/kubernetes/vendor/k8s.io/api/autoscaling/v2beta2/generated.proto + +/* + Package v2beta2 is a generated protocol buffer package. + + It is generated from these files: + k8s.io/kubernetes/vendor/k8s.io/api/autoscaling/v2beta2/generated.proto + + It has these top-level messages: + CrossVersionObjectReference + ExternalMetricSource + ExternalMetricStatus + HorizontalPodAutoscaler + HorizontalPodAutoscalerCondition + HorizontalPodAutoscalerList + HorizontalPodAutoscalerSpec + HorizontalPodAutoscalerStatus + MetricIdentifier + MetricSpec + MetricStatus + MetricTarget + MetricValueStatus + ObjectMetricSource + ObjectMetricStatus + PodsMetricSource + PodsMetricStatus + ResourceMetricSource + ResourceMetricStatus +*/ +package v2beta2 + +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" + +import k8s_io_apimachinery_pkg_api_resource "k8s.io/apimachinery/pkg/api/resource" +import k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + +import k8s_io_api_core_v1 "k8s.io/api/core/v1" + +import strings "strings" +import reflect "reflect" + +import io "io" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +func (m *CrossVersionObjectReference) Reset() { *m = CrossVersionObjectReference{} } +func (*CrossVersionObjectReference) ProtoMessage() {} +func (*CrossVersionObjectReference) Descriptor() ([]byte, []int) { + return fileDescriptorGenerated, []int{0} +} + +func (m *ExternalMetricSource) Reset() { *m = ExternalMetricSource{} } +func (*ExternalMetricSource) ProtoMessage() {} +func (*ExternalMetricSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{1} } + +func (m *ExternalMetricStatus) Reset() { *m = ExternalMetricStatus{} } +func (*ExternalMetricStatus) ProtoMessage() {} +func (*ExternalMetricStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{2} } + +func (m *HorizontalPodAutoscaler) Reset() { *m = HorizontalPodAutoscaler{} } +func (*HorizontalPodAutoscaler) ProtoMessage() {} +func (*HorizontalPodAutoscaler) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{3} } + +func (m *HorizontalPodAutoscalerCondition) Reset() { *m = HorizontalPodAutoscalerCondition{} } +func (*HorizontalPodAutoscalerCondition) ProtoMessage() {} +func (*HorizontalPodAutoscalerCondition) Descriptor() ([]byte, []int) { + return fileDescriptorGenerated, []int{4} +} + +func (m *HorizontalPodAutoscalerList) Reset() { *m = HorizontalPodAutoscalerList{} } +func (*HorizontalPodAutoscalerList) ProtoMessage() {} +func (*HorizontalPodAutoscalerList) Descriptor() ([]byte, []int) { + return fileDescriptorGenerated, []int{5} +} + +func (m *HorizontalPodAutoscalerSpec) Reset() { *m = HorizontalPodAutoscalerSpec{} } +func (*HorizontalPodAutoscalerSpec) ProtoMessage() {} +func (*HorizontalPodAutoscalerSpec) Descriptor() ([]byte, []int) { + return fileDescriptorGenerated, []int{6} +} + +func (m *HorizontalPodAutoscalerStatus) Reset() { *m = HorizontalPodAutoscalerStatus{} } +func (*HorizontalPodAutoscalerStatus) ProtoMessage() {} +func (*HorizontalPodAutoscalerStatus) Descriptor() ([]byte, []int) { + return fileDescriptorGenerated, []int{7} +} + +func (m *MetricIdentifier) Reset() { *m = MetricIdentifier{} } +func (*MetricIdentifier) ProtoMessage() {} +func (*MetricIdentifier) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{8} } + +func (m *MetricSpec) Reset() { *m = MetricSpec{} } +func (*MetricSpec) ProtoMessage() {} +func (*MetricSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{9} } + +func (m *MetricStatus) Reset() { *m = MetricStatus{} } +func (*MetricStatus) ProtoMessage() {} +func (*MetricStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{10} } + +func (m *MetricTarget) Reset() { *m = MetricTarget{} } +func (*MetricTarget) ProtoMessage() {} +func (*MetricTarget) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{11} } + +func (m *MetricValueStatus) Reset() { *m = MetricValueStatus{} } +func (*MetricValueStatus) ProtoMessage() {} +func (*MetricValueStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{12} } + +func (m *ObjectMetricSource) Reset() { *m = ObjectMetricSource{} } +func (*ObjectMetricSource) ProtoMessage() {} +func (*ObjectMetricSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{13} } + +func (m *ObjectMetricStatus) Reset() { *m = ObjectMetricStatus{} } +func (*ObjectMetricStatus) ProtoMessage() {} +func (*ObjectMetricStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{14} } + +func (m *PodsMetricSource) Reset() { *m = PodsMetricSource{} } +func (*PodsMetricSource) ProtoMessage() {} +func (*PodsMetricSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{15} } + +func (m *PodsMetricStatus) Reset() { *m = PodsMetricStatus{} } +func (*PodsMetricStatus) ProtoMessage() {} +func (*PodsMetricStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{16} } + +func (m *ResourceMetricSource) Reset() { *m = ResourceMetricSource{} } +func (*ResourceMetricSource) ProtoMessage() {} +func (*ResourceMetricSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{17} } + +func (m *ResourceMetricStatus) Reset() { *m = ResourceMetricStatus{} } +func (*ResourceMetricStatus) ProtoMessage() {} +func (*ResourceMetricStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{18} } + +func init() { + proto.RegisterType((*CrossVersionObjectReference)(nil), "k8s.io.api.autoscaling.v2beta2.CrossVersionObjectReference") + proto.RegisterType((*ExternalMetricSource)(nil), "k8s.io.api.autoscaling.v2beta2.ExternalMetricSource") + proto.RegisterType((*ExternalMetricStatus)(nil), "k8s.io.api.autoscaling.v2beta2.ExternalMetricStatus") + proto.RegisterType((*HorizontalPodAutoscaler)(nil), "k8s.io.api.autoscaling.v2beta2.HorizontalPodAutoscaler") + proto.RegisterType((*HorizontalPodAutoscalerCondition)(nil), "k8s.io.api.autoscaling.v2beta2.HorizontalPodAutoscalerCondition") + proto.RegisterType((*HorizontalPodAutoscalerList)(nil), "k8s.io.api.autoscaling.v2beta2.HorizontalPodAutoscalerList") + proto.RegisterType((*HorizontalPodAutoscalerSpec)(nil), "k8s.io.api.autoscaling.v2beta2.HorizontalPodAutoscalerSpec") + proto.RegisterType((*HorizontalPodAutoscalerStatus)(nil), "k8s.io.api.autoscaling.v2beta2.HorizontalPodAutoscalerStatus") + proto.RegisterType((*MetricIdentifier)(nil), "k8s.io.api.autoscaling.v2beta2.MetricIdentifier") + proto.RegisterType((*MetricSpec)(nil), "k8s.io.api.autoscaling.v2beta2.MetricSpec") + proto.RegisterType((*MetricStatus)(nil), "k8s.io.api.autoscaling.v2beta2.MetricStatus") + proto.RegisterType((*MetricTarget)(nil), "k8s.io.api.autoscaling.v2beta2.MetricTarget") + proto.RegisterType((*MetricValueStatus)(nil), "k8s.io.api.autoscaling.v2beta2.MetricValueStatus") + proto.RegisterType((*ObjectMetricSource)(nil), "k8s.io.api.autoscaling.v2beta2.ObjectMetricSource") + proto.RegisterType((*ObjectMetricStatus)(nil), "k8s.io.api.autoscaling.v2beta2.ObjectMetricStatus") + proto.RegisterType((*PodsMetricSource)(nil), "k8s.io.api.autoscaling.v2beta2.PodsMetricSource") + proto.RegisterType((*PodsMetricStatus)(nil), "k8s.io.api.autoscaling.v2beta2.PodsMetricStatus") + proto.RegisterType((*ResourceMetricSource)(nil), "k8s.io.api.autoscaling.v2beta2.ResourceMetricSource") + proto.RegisterType((*ResourceMetricStatus)(nil), "k8s.io.api.autoscaling.v2beta2.ResourceMetricStatus") +} +func (m *CrossVersionObjectReference) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CrossVersionObjectReference) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind))) + i += copy(dAtA[i:], m.Kind) + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i += copy(dAtA[i:], m.Name) + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.APIVersion))) + i += copy(dAtA[i:], m.APIVersion) + return i, nil +} + +func (m *ExternalMetricSource) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ExternalMetricSource) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Metric.Size())) + n1, err := m.Metric.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n1 + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Target.Size())) + n2, err := m.Target.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n2 + return i, nil +} + +func (m *ExternalMetricStatus) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ExternalMetricStatus) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Metric.Size())) + n3, err := m.Metric.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n3 + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Current.Size())) + n4, err := m.Current.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n4 + return i, nil +} + +func (m *HorizontalPodAutoscaler) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *HorizontalPodAutoscaler) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) + n5, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n5 + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) + n6, err := m.Spec.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n6 + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) + n7, err := m.Status.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n7 + return i, nil +} + +func (m *HorizontalPodAutoscalerCondition) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *HorizontalPodAutoscalerCondition) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i += copy(dAtA[i:], m.Type) + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Status))) + i += copy(dAtA[i:], m.Status) + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.LastTransitionTime.Size())) + n8, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n8 + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) + i += copy(dAtA[i:], m.Reason) + dAtA[i] = 0x2a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Message))) + i += copy(dAtA[i:], m.Message) + return i, nil +} + +func (m *HorizontalPodAutoscalerList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *HorizontalPodAutoscalerList) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) + n9, err := m.ListMeta.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n9 + if len(m.Items) > 0 { + for _, msg := range m.Items { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + +func (m *HorizontalPodAutoscalerSpec) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *HorizontalPodAutoscalerSpec) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ScaleTargetRef.Size())) + n10, err := m.ScaleTargetRef.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n10 + if m.MinReplicas != nil { + dAtA[i] = 0x10 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(*m.MinReplicas)) + } + dAtA[i] = 0x18 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.MaxReplicas)) + if len(m.Metrics) > 0 { + for _, msg := range m.Metrics { + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + +func (m *HorizontalPodAutoscalerStatus) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *HorizontalPodAutoscalerStatus) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.ObservedGeneration != nil { + dAtA[i] = 0x8 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(*m.ObservedGeneration)) + } + if m.LastScaleTime != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.LastScaleTime.Size())) + n11, err := m.LastScaleTime.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n11 + } + dAtA[i] = 0x18 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.CurrentReplicas)) + dAtA[i] = 0x20 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.DesiredReplicas)) + if len(m.CurrentMetrics) > 0 { + for _, msg := range m.CurrentMetrics { + dAtA[i] = 0x2a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if len(m.Conditions) > 0 { + for _, msg := range m.Conditions { + dAtA[i] = 0x32 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + +func (m *MetricIdentifier) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MetricIdentifier) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i += copy(dAtA[i:], m.Name) + if m.Selector != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Selector.Size())) + n12, err := m.Selector.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n12 + } + return i, nil +} + +func (m *MetricSpec) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MetricSpec) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i += copy(dAtA[i:], m.Type) + if m.Object != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Object.Size())) + n13, err := m.Object.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n13 + } + if m.Pods != nil { + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Pods.Size())) + n14, err := m.Pods.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n14 + } + if m.Resource != nil { + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Resource.Size())) + n15, err := m.Resource.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n15 + } + if m.External != nil { + dAtA[i] = 0x2a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.External.Size())) + n16, err := m.External.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n16 + } + return i, nil +} + +func (m *MetricStatus) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MetricStatus) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i += copy(dAtA[i:], m.Type) + if m.Object != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Object.Size())) + n17, err := m.Object.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n17 + } + if m.Pods != nil { + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Pods.Size())) + n18, err := m.Pods.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n18 + } + if m.Resource != nil { + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Resource.Size())) + n19, err := m.Resource.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n19 + } + if m.External != nil { + dAtA[i] = 0x2a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.External.Size())) + n20, err := m.External.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n20 + } + return i, nil +} + +func (m *MetricTarget) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MetricTarget) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i += copy(dAtA[i:], m.Type) + if m.Value != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Value.Size())) + n21, err := m.Value.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n21 + } + if m.AverageValue != nil { + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.AverageValue.Size())) + n22, err := m.AverageValue.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n22 + } + if m.AverageUtilization != nil { + dAtA[i] = 0x20 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(*m.AverageUtilization)) + } + return i, nil +} + +func (m *MetricValueStatus) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MetricValueStatus) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Value != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Value.Size())) + n23, err := m.Value.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n23 + } + if m.AverageValue != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.AverageValue.Size())) + n24, err := m.AverageValue.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n24 + } + if m.AverageUtilization != nil { + dAtA[i] = 0x18 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(*m.AverageUtilization)) + } + return i, nil +} + +func (m *ObjectMetricSource) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ObjectMetricSource) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.DescribedObject.Size())) + n25, err := m.DescribedObject.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n25 + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Target.Size())) + n26, err := m.Target.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n26 + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Metric.Size())) + n27, err := m.Metric.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n27 + return i, nil +} + +func (m *ObjectMetricStatus) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ObjectMetricStatus) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Metric.Size())) + n28, err := m.Metric.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n28 + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Current.Size())) + n29, err := m.Current.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n29 + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.DescribedObject.Size())) + n30, err := m.DescribedObject.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n30 + return i, nil +} + +func (m *PodsMetricSource) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PodsMetricSource) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Metric.Size())) + n31, err := m.Metric.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n31 + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Target.Size())) + n32, err := m.Target.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n32 + return i, nil +} + +func (m *PodsMetricStatus) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PodsMetricStatus) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Metric.Size())) + n33, err := m.Metric.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n33 + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Current.Size())) + n34, err := m.Current.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n34 + return i, nil +} + +func (m *ResourceMetricSource) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ResourceMetricSource) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i += copy(dAtA[i:], m.Name) + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Target.Size())) + n35, err := m.Target.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n35 + return i, nil +} + +func (m *ResourceMetricStatus) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ResourceMetricStatus) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i += copy(dAtA[i:], m.Name) + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Current.Size())) + n36, err := m.Current.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n36 + return i, nil +} + +func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return offset + 1 +} +func (m *CrossVersionObjectReference) Size() (n int) { + var l int + _ = l + l = len(m.Kind) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.APIVersion) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *ExternalMetricSource) Size() (n int) { + var l int + _ = l + l = m.Metric.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Target.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *ExternalMetricStatus) Size() (n int) { + var l int + _ = l + l = m.Metric.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Current.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *HorizontalPodAutoscaler) Size() (n int) { + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Spec.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Status.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *HorizontalPodAutoscalerCondition) Size() (n int) { + var l int + _ = l + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Status) + n += 1 + l + sovGenerated(uint64(l)) + l = m.LastTransitionTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Reason) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Message) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *HorizontalPodAutoscalerList) Size() (n int) { + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *HorizontalPodAutoscalerSpec) Size() (n int) { + var l int + _ = l + l = m.ScaleTargetRef.Size() + n += 1 + l + sovGenerated(uint64(l)) + if m.MinReplicas != nil { + n += 1 + sovGenerated(uint64(*m.MinReplicas)) + } + n += 1 + sovGenerated(uint64(m.MaxReplicas)) + if len(m.Metrics) > 0 { + for _, e := range m.Metrics { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *HorizontalPodAutoscalerStatus) Size() (n int) { + var l int + _ = l + if m.ObservedGeneration != nil { + n += 1 + sovGenerated(uint64(*m.ObservedGeneration)) + } + if m.LastScaleTime != nil { + l = m.LastScaleTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + n += 1 + sovGenerated(uint64(m.CurrentReplicas)) + n += 1 + sovGenerated(uint64(m.DesiredReplicas)) + if len(m.CurrentMetrics) > 0 { + for _, e := range m.CurrentMetrics { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + if len(m.Conditions) > 0 { + for _, e := range m.Conditions { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *MetricIdentifier) Size() (n int) { + var l int + _ = l + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + if m.Selector != nil { + l = m.Selector.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *MetricSpec) Size() (n int) { + var l int + _ = l + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + if m.Object != nil { + l = m.Object.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Pods != nil { + l = m.Pods.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Resource != nil { + l = m.Resource.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.External != nil { + l = m.External.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *MetricStatus) Size() (n int) { + var l int + _ = l + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + if m.Object != nil { + l = m.Object.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Pods != nil { + l = m.Pods.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Resource != nil { + l = m.Resource.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.External != nil { + l = m.External.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *MetricTarget) Size() (n int) { + var l int + _ = l + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + if m.Value != nil { + l = m.Value.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.AverageValue != nil { + l = m.AverageValue.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.AverageUtilization != nil { + n += 1 + sovGenerated(uint64(*m.AverageUtilization)) + } + return n +} + +func (m *MetricValueStatus) Size() (n int) { + var l int + _ = l + if m.Value != nil { + l = m.Value.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.AverageValue != nil { + l = m.AverageValue.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.AverageUtilization != nil { + n += 1 + sovGenerated(uint64(*m.AverageUtilization)) + } + return n +} + +func (m *ObjectMetricSource) Size() (n int) { + var l int + _ = l + l = m.DescribedObject.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Target.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Metric.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *ObjectMetricStatus) Size() (n int) { + var l int + _ = l + l = m.Metric.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Current.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.DescribedObject.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *PodsMetricSource) Size() (n int) { + var l int + _ = l + l = m.Metric.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Target.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *PodsMetricStatus) Size() (n int) { + var l int + _ = l + l = m.Metric.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Current.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *ResourceMetricSource) Size() (n int) { + var l int + _ = l + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + l = m.Target.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *ResourceMetricStatus) Size() (n int) { + var l int + _ = l + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + l = m.Current.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func sovGenerated(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozGenerated(x uint64) (n int) { + return sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (this *CrossVersionObjectReference) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&CrossVersionObjectReference{`, + `Kind:` + fmt.Sprintf("%v", this.Kind) + `,`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `APIVersion:` + fmt.Sprintf("%v", this.APIVersion) + `,`, + `}`, + }, "") + return s +} +func (this *ExternalMetricSource) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ExternalMetricSource{`, + `Metric:` + strings.Replace(strings.Replace(this.Metric.String(), "MetricIdentifier", "MetricIdentifier", 1), `&`, ``, 1) + `,`, + `Target:` + strings.Replace(strings.Replace(this.Target.String(), "MetricTarget", "MetricTarget", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *ExternalMetricStatus) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ExternalMetricStatus{`, + `Metric:` + strings.Replace(strings.Replace(this.Metric.String(), "MetricIdentifier", "MetricIdentifier", 1), `&`, ``, 1) + `,`, + `Current:` + strings.Replace(strings.Replace(this.Current.String(), "MetricValueStatus", "MetricValueStatus", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *HorizontalPodAutoscaler) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&HorizontalPodAutoscaler{`, + `ObjectMeta:` + strings.Replace(strings.Replace(this.ObjectMeta.String(), "ObjectMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "HorizontalPodAutoscalerSpec", "HorizontalPodAutoscalerSpec", 1), `&`, ``, 1) + `,`, + `Status:` + strings.Replace(strings.Replace(this.Status.String(), "HorizontalPodAutoscalerStatus", "HorizontalPodAutoscalerStatus", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *HorizontalPodAutoscalerCondition) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&HorizontalPodAutoscalerCondition{`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `Status:` + fmt.Sprintf("%v", this.Status) + `,`, + `LastTransitionTime:` + strings.Replace(strings.Replace(this.LastTransitionTime.String(), "Time", "k8s_io_apimachinery_pkg_apis_meta_v1.Time", 1), `&`, ``, 1) + `,`, + `Reason:` + fmt.Sprintf("%v", this.Reason) + `,`, + `Message:` + fmt.Sprintf("%v", this.Message) + `,`, + `}`, + }, "") + return s +} +func (this *HorizontalPodAutoscalerList) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&HorizontalPodAutoscalerList{`, + `ListMeta:` + strings.Replace(strings.Replace(this.ListMeta.String(), "ListMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Items), "HorizontalPodAutoscaler", "HorizontalPodAutoscaler", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *HorizontalPodAutoscalerSpec) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&HorizontalPodAutoscalerSpec{`, + `ScaleTargetRef:` + strings.Replace(strings.Replace(this.ScaleTargetRef.String(), "CrossVersionObjectReference", "CrossVersionObjectReference", 1), `&`, ``, 1) + `,`, + `MinReplicas:` + valueToStringGenerated(this.MinReplicas) + `,`, + `MaxReplicas:` + fmt.Sprintf("%v", this.MaxReplicas) + `,`, + `Metrics:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Metrics), "MetricSpec", "MetricSpec", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *HorizontalPodAutoscalerStatus) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&HorizontalPodAutoscalerStatus{`, + `ObservedGeneration:` + valueToStringGenerated(this.ObservedGeneration) + `,`, + `LastScaleTime:` + strings.Replace(fmt.Sprintf("%v", this.LastScaleTime), "Time", "k8s_io_apimachinery_pkg_apis_meta_v1.Time", 1) + `,`, + `CurrentReplicas:` + fmt.Sprintf("%v", this.CurrentReplicas) + `,`, + `DesiredReplicas:` + fmt.Sprintf("%v", this.DesiredReplicas) + `,`, + `CurrentMetrics:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.CurrentMetrics), "MetricStatus", "MetricStatus", 1), `&`, ``, 1) + `,`, + `Conditions:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Conditions), "HorizontalPodAutoscalerCondition", "HorizontalPodAutoscalerCondition", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *MetricIdentifier) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&MetricIdentifier{`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `Selector:` + strings.Replace(fmt.Sprintf("%v", this.Selector), "LabelSelector", "k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector", 1) + `,`, + `}`, + }, "") + return s +} +func (this *MetricSpec) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&MetricSpec{`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `Object:` + strings.Replace(fmt.Sprintf("%v", this.Object), "ObjectMetricSource", "ObjectMetricSource", 1) + `,`, + `Pods:` + strings.Replace(fmt.Sprintf("%v", this.Pods), "PodsMetricSource", "PodsMetricSource", 1) + `,`, + `Resource:` + strings.Replace(fmt.Sprintf("%v", this.Resource), "ResourceMetricSource", "ResourceMetricSource", 1) + `,`, + `External:` + strings.Replace(fmt.Sprintf("%v", this.External), "ExternalMetricSource", "ExternalMetricSource", 1) + `,`, + `}`, + }, "") + return s +} +func (this *MetricStatus) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&MetricStatus{`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `Object:` + strings.Replace(fmt.Sprintf("%v", this.Object), "ObjectMetricStatus", "ObjectMetricStatus", 1) + `,`, + `Pods:` + strings.Replace(fmt.Sprintf("%v", this.Pods), "PodsMetricStatus", "PodsMetricStatus", 1) + `,`, + `Resource:` + strings.Replace(fmt.Sprintf("%v", this.Resource), "ResourceMetricStatus", "ResourceMetricStatus", 1) + `,`, + `External:` + strings.Replace(fmt.Sprintf("%v", this.External), "ExternalMetricStatus", "ExternalMetricStatus", 1) + `,`, + `}`, + }, "") + return s +} +func (this *MetricTarget) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&MetricTarget{`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `Value:` + strings.Replace(fmt.Sprintf("%v", this.Value), "Quantity", "k8s_io_apimachinery_pkg_api_resource.Quantity", 1) + `,`, + `AverageValue:` + strings.Replace(fmt.Sprintf("%v", this.AverageValue), "Quantity", "k8s_io_apimachinery_pkg_api_resource.Quantity", 1) + `,`, + `AverageUtilization:` + valueToStringGenerated(this.AverageUtilization) + `,`, + `}`, + }, "") + return s +} +func (this *MetricValueStatus) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&MetricValueStatus{`, + `Value:` + strings.Replace(fmt.Sprintf("%v", this.Value), "Quantity", "k8s_io_apimachinery_pkg_api_resource.Quantity", 1) + `,`, + `AverageValue:` + strings.Replace(fmt.Sprintf("%v", this.AverageValue), "Quantity", "k8s_io_apimachinery_pkg_api_resource.Quantity", 1) + `,`, + `AverageUtilization:` + valueToStringGenerated(this.AverageUtilization) + `,`, + `}`, + }, "") + return s +} +func (this *ObjectMetricSource) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ObjectMetricSource{`, + `DescribedObject:` + strings.Replace(strings.Replace(this.DescribedObject.String(), "CrossVersionObjectReference", "CrossVersionObjectReference", 1), `&`, ``, 1) + `,`, + `Target:` + strings.Replace(strings.Replace(this.Target.String(), "MetricTarget", "MetricTarget", 1), `&`, ``, 1) + `,`, + `Metric:` + strings.Replace(strings.Replace(this.Metric.String(), "MetricIdentifier", "MetricIdentifier", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *ObjectMetricStatus) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ObjectMetricStatus{`, + `Metric:` + strings.Replace(strings.Replace(this.Metric.String(), "MetricIdentifier", "MetricIdentifier", 1), `&`, ``, 1) + `,`, + `Current:` + strings.Replace(strings.Replace(this.Current.String(), "MetricValueStatus", "MetricValueStatus", 1), `&`, ``, 1) + `,`, + `DescribedObject:` + strings.Replace(strings.Replace(this.DescribedObject.String(), "CrossVersionObjectReference", "CrossVersionObjectReference", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *PodsMetricSource) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&PodsMetricSource{`, + `Metric:` + strings.Replace(strings.Replace(this.Metric.String(), "MetricIdentifier", "MetricIdentifier", 1), `&`, ``, 1) + `,`, + `Target:` + strings.Replace(strings.Replace(this.Target.String(), "MetricTarget", "MetricTarget", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *PodsMetricStatus) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&PodsMetricStatus{`, + `Metric:` + strings.Replace(strings.Replace(this.Metric.String(), "MetricIdentifier", "MetricIdentifier", 1), `&`, ``, 1) + `,`, + `Current:` + strings.Replace(strings.Replace(this.Current.String(), "MetricValueStatus", "MetricValueStatus", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *ResourceMetricSource) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ResourceMetricSource{`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `Target:` + strings.Replace(strings.Replace(this.Target.String(), "MetricTarget", "MetricTarget", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *ResourceMetricStatus) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ResourceMetricStatus{`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `Current:` + strings.Replace(strings.Replace(this.Current.String(), "MetricValueStatus", "MetricValueStatus", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func valueToStringGenerated(v interface{}) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("*%v", pv) +} +func (m *CrossVersionObjectReference) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CrossVersionObjectReference: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CrossVersionObjectReference: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Kind", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Kind = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field APIVersion", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.APIVersion = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ExternalMetricSource) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ExternalMetricSource: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ExternalMetricSource: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Metric", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Metric.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Target", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Target.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ExternalMetricStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ExternalMetricStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ExternalMetricStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Metric", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Metric.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Current", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Current.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *HorizontalPodAutoscaler) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: HorizontalPodAutoscaler: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: HorizontalPodAutoscaler: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *HorizontalPodAutoscalerCondition) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: HorizontalPodAutoscalerCondition: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: HorizontalPodAutoscalerCondition: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = HorizontalPodAutoscalerConditionType(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastTransitionTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Reason", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Reason = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Message = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *HorizontalPodAutoscalerList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: HorizontalPodAutoscalerList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: HorizontalPodAutoscalerList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, HorizontalPodAutoscaler{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *HorizontalPodAutoscalerSpec) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: HorizontalPodAutoscalerSpec: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: HorizontalPodAutoscalerSpec: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ScaleTargetRef", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ScaleTargetRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MinReplicas", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.MinReplicas = &v + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MaxReplicas", wireType) + } + m.MaxReplicas = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.MaxReplicas |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Metrics", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Metrics = append(m.Metrics, MetricSpec{}) + if err := m.Metrics[len(m.Metrics)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *HorizontalPodAutoscalerStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: HorizontalPodAutoscalerStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: HorizontalPodAutoscalerStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ObservedGeneration", wireType) + } + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.ObservedGeneration = &v + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastScaleTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.LastScaleTime == nil { + m.LastScaleTime = &k8s_io_apimachinery_pkg_apis_meta_v1.Time{} + } + if err := m.LastScaleTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CurrentReplicas", wireType) + } + m.CurrentReplicas = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.CurrentReplicas |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field DesiredReplicas", wireType) + } + m.DesiredReplicas = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.DesiredReplicas |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CurrentMetrics", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CurrentMetrics = append(m.CurrentMetrics, MetricStatus{}) + if err := m.CurrentMetrics[len(m.CurrentMetrics)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Conditions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Conditions = append(m.Conditions, HorizontalPodAutoscalerCondition{}) + if err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MetricIdentifier) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MetricIdentifier: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MetricIdentifier: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Selector", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Selector == nil { + m.Selector = &k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector{} + } + if err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MetricSpec) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MetricSpec: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MetricSpec: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = MetricSourceType(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Object", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Object == nil { + m.Object = &ObjectMetricSource{} + } + if err := m.Object.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Pods", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Pods == nil { + m.Pods = &PodsMetricSource{} + } + if err := m.Pods.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Resource", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Resource == nil { + m.Resource = &ResourceMetricSource{} + } + if err := m.Resource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field External", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.External == nil { + m.External = &ExternalMetricSource{} + } + if err := m.External.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MetricStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MetricStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MetricStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = MetricSourceType(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Object", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Object == nil { + m.Object = &ObjectMetricStatus{} + } + if err := m.Object.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Pods", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Pods == nil { + m.Pods = &PodsMetricStatus{} + } + if err := m.Pods.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Resource", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Resource == nil { + m.Resource = &ResourceMetricStatus{} + } + if err := m.Resource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field External", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.External == nil { + m.External = &ExternalMetricStatus{} + } + if err := m.External.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MetricTarget) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MetricTarget: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MetricTarget: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = MetricTargetType(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Value == nil { + m.Value = &k8s_io_apimachinery_pkg_api_resource.Quantity{} + } + if err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AverageValue", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AverageValue == nil { + m.AverageValue = &k8s_io_apimachinery_pkg_api_resource.Quantity{} + } + if err := m.AverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field AverageUtilization", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.AverageUtilization = &v + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MetricValueStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MetricValueStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MetricValueStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Value == nil { + m.Value = &k8s_io_apimachinery_pkg_api_resource.Quantity{} + } + if err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AverageValue", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AverageValue == nil { + m.AverageValue = &k8s_io_apimachinery_pkg_api_resource.Quantity{} + } + if err := m.AverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field AverageUtilization", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.AverageUtilization = &v + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ObjectMetricSource) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ObjectMetricSource: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ObjectMetricSource: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DescribedObject", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.DescribedObject.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Target", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Target.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Metric", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Metric.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ObjectMetricStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ObjectMetricStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ObjectMetricStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Metric", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Metric.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Current", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Current.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DescribedObject", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.DescribedObject.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PodsMetricSource) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PodsMetricSource: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PodsMetricSource: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Metric", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Metric.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Target", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Target.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PodsMetricStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PodsMetricStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PodsMetricStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Metric", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Metric.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Current", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Current.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ResourceMetricSource) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ResourceMetricSource: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ResourceMetricSource: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Target", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Target.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ResourceMetricStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ResourceMetricStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ResourceMetricStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Current", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Current.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipGenerated(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + return iNdEx, nil + case 1: + iNdEx += 8 + return iNdEx, nil + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + iNdEx += length + if length < 0 { + return 0, ErrInvalidLengthGenerated + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + innerWire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + innerWireType := int(innerWire & 0x7) + if innerWireType == 4 { + break + } + next, err := skipGenerated(dAtA[start:]) + if err != nil { + return 0, err + } + iNdEx = start + next + } + return iNdEx, nil + case 4: + return iNdEx, nil + case 5: + iNdEx += 4 + return iNdEx, nil + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + } + panic("unreachable") +} + +var ( + ErrInvalidLengthGenerated = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowGenerated = fmt.Errorf("proto: integer overflow") +) + +func init() { + proto.RegisterFile("k8s.io/kubernetes/vendor/k8s.io/api/autoscaling/v2beta2/generated.proto", fileDescriptorGenerated) +} + +var fileDescriptorGenerated = []byte{ + // 1425 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x58, 0xdd, 0x6f, 0x1b, 0xc5, + 0x16, 0xcf, 0xda, 0x8e, 0x93, 0x8e, 0xd3, 0x24, 0x9d, 0x5b, 0xb5, 0x56, 0xaa, 0x6b, 0x47, 0xab, + 0xab, 0xab, 0x52, 0xd1, 0x35, 0x31, 0xe1, 0x43, 0x42, 0x48, 0xc4, 0x01, 0xda, 0x8a, 0xa4, 0x2d, + 0x93, 0xb4, 0x42, 0xa8, 0x45, 0x8c, 0x77, 0x4f, 0xdc, 0x21, 0xde, 0x5d, 0x6b, 0x76, 0x6c, 0x35, + 0x45, 0x42, 0xbc, 0xf0, 0x8e, 0x40, 0xfc, 0x13, 0x88, 0x17, 0x5e, 0x90, 0x78, 0xe4, 0x43, 0xa8, + 0x42, 0x08, 0xf5, 0xb1, 0x08, 0xc9, 0xa2, 0xe6, 0xbf, 0xe8, 0x13, 0xda, 0x99, 0xd9, 0xf5, 0xae, + 0xed, 0xc4, 0x4e, 0x95, 0x14, 0xf5, 0xcd, 0x33, 0xe7, 0x9c, 0xdf, 0xf9, 0x9c, 0x73, 0xce, 0x1a, + 0x5d, 0xda, 0x7d, 0x35, 0xb0, 0x98, 0x5f, 0xd9, 0x6d, 0xd7, 0x81, 0x7b, 0x20, 0x20, 0xa8, 0x74, + 0xc0, 0x73, 0x7c, 0x5e, 0xd1, 0x04, 0xda, 0x62, 0x15, 0xda, 0x16, 0x7e, 0x60, 0xd3, 0x26, 0xf3, + 0x1a, 0x95, 0x4e, 0xb5, 0x0e, 0x82, 0x56, 0x2b, 0x0d, 0xf0, 0x80, 0x53, 0x01, 0x8e, 0xd5, 0xe2, + 0xbe, 0xf0, 0x71, 0x49, 0xf1, 0x5b, 0xb4, 0xc5, 0xac, 0x04, 0xbf, 0xa5, 0xf9, 0x97, 0x2e, 0x36, + 0x98, 0xb8, 0xd3, 0xae, 0x5b, 0xb6, 0xef, 0x56, 0x1a, 0x7e, 0xc3, 0xaf, 0x48, 0xb1, 0x7a, 0x7b, + 0x47, 0x9e, 0xe4, 0x41, 0xfe, 0x52, 0x70, 0x4b, 0x66, 0x42, 0xbd, 0xed, 0x73, 0xa8, 0x74, 0x56, + 0x06, 0x55, 0x2e, 0xad, 0xf6, 0x79, 0x5c, 0x6a, 0xdf, 0x61, 0x1e, 0xf0, 0xbd, 0x4a, 0x6b, 0xb7, + 0x21, 0x85, 0x38, 0x04, 0x7e, 0x9b, 0xdb, 0x70, 0x28, 0xa9, 0xa0, 0xe2, 0x82, 0xa0, 0xa3, 0x74, + 0x55, 0xf6, 0x93, 0xe2, 0x6d, 0x4f, 0x30, 0x77, 0x58, 0xcd, 0xcb, 0xe3, 0x04, 0x02, 0xfb, 0x0e, + 0xb8, 0x74, 0x50, 0xce, 0xfc, 0xca, 0x40, 0xe7, 0xd6, 0xb9, 0x1f, 0x04, 0x37, 0x81, 0x07, 0xcc, + 0xf7, 0xae, 0xd5, 0x3f, 0x02, 0x5b, 0x10, 0xd8, 0x01, 0x0e, 0x9e, 0x0d, 0x78, 0x19, 0xe5, 0x76, + 0x99, 0xe7, 0x14, 0x8d, 0x65, 0xe3, 0xfc, 0x89, 0xda, 0xdc, 0xfd, 0x6e, 0x79, 0xaa, 0xd7, 0x2d, + 0xe7, 0xde, 0x61, 0x9e, 0x43, 0x24, 0x25, 0xe4, 0xf0, 0xa8, 0x0b, 0xc5, 0x4c, 0x9a, 0xe3, 0x2a, + 0x75, 0x81, 0x48, 0x0a, 0xae, 0x22, 0x44, 0x5b, 0x4c, 0x2b, 0x28, 0x66, 0x25, 0x1f, 0xd6, 0x7c, + 0x68, 0xed, 0xfa, 0x15, 0x4d, 0x21, 0x09, 0x2e, 0xf3, 0x17, 0x03, 0x9d, 0x7e, 0xeb, 0xae, 0x00, + 0xee, 0xd1, 0xe6, 0x26, 0x08, 0xce, 0xec, 0x2d, 0x19, 0x5f, 0xfc, 0x1e, 0xca, 0xbb, 0xf2, 0x2c, + 0x4d, 0x2a, 0x54, 0x5f, 0xb0, 0x0e, 0xae, 0x04, 0x4b, 0x49, 0x5f, 0x71, 0xc0, 0x13, 0x6c, 0x87, + 0x01, 0xaf, 0xcd, 0x6b, 0xd5, 0x79, 0x45, 0x21, 0x1a, 0x0f, 0x6f, 0xa3, 0xbc, 0xa0, 0xbc, 0x01, + 0x42, 0xba, 0x52, 0xa8, 0x3e, 0x3f, 0x19, 0xf2, 0xb6, 0x94, 0xe9, 0xa3, 0xaa, 0x33, 0xd1, 0x58, + 0xe6, 0xef, 0xc3, 0x8e, 0x08, 0x2a, 0xda, 0xc1, 0x31, 0x3a, 0x72, 0x0b, 0xcd, 0xd8, 0x6d, 0xce, + 0xc1, 0x8b, 0x3c, 0x59, 0x99, 0x0c, 0xfa, 0x26, 0x6d, 0xb6, 0x41, 0x59, 0x57, 0x5b, 0xd0, 0xd8, + 0x33, 0xeb, 0x0a, 0x89, 0x44, 0x90, 0xe6, 0x0f, 0x19, 0x74, 0xf6, 0xb2, 0xcf, 0xd9, 0x3d, 0xdf, + 0x13, 0xb4, 0x79, 0xdd, 0x77, 0xd6, 0x34, 0x20, 0x70, 0xfc, 0x21, 0x9a, 0x0d, 0x2b, 0xda, 0xa1, + 0x82, 0x8e, 0xf0, 0x2a, 0x2e, 0x4c, 0xab, 0xb5, 0xdb, 0x08, 0x2f, 0x02, 0x2b, 0xe4, 0xb6, 0x3a, + 0x2b, 0x96, 0x2a, 0xbb, 0x4d, 0x10, 0xb4, 0x5f, 0x19, 0xfd, 0x3b, 0x12, 0xa3, 0xe2, 0xdb, 0x28, + 0x17, 0xb4, 0xc0, 0xd6, 0x8e, 0xbd, 0x36, 0xce, 0xb1, 0x7d, 0x0c, 0xdd, 0x6a, 0x81, 0xdd, 0x2f, + 0xd5, 0xf0, 0x44, 0x24, 0x2c, 0x06, 0x94, 0x0f, 0x64, 0x00, 0x64, 0x99, 0x16, 0xaa, 0xaf, 0x3f, + 0xa9, 0x02, 0x15, 0xc5, 0x38, 0x43, 0xea, 0x4c, 0x34, 0xb8, 0xf9, 0x59, 0x16, 0x2d, 0xef, 0x23, + 0xb9, 0xee, 0x7b, 0x0e, 0x13, 0xcc, 0xf7, 0xf0, 0x65, 0x94, 0x13, 0x7b, 0x2d, 0xd0, 0x4f, 0x6f, + 0x35, 0xb2, 0x76, 0x7b, 0xaf, 0x05, 0x8f, 0xbb, 0xe5, 0xff, 0x8d, 0x93, 0x0f, 0xf9, 0x88, 0x44, + 0xc0, 0x1b, 0xb1, 0x57, 0x99, 0x14, 0x96, 0x36, 0xeb, 0x71, 0xb7, 0x3c, 0xa2, 0xff, 0x59, 0x31, + 0x52, 0xda, 0x78, 0xdc, 0x41, 0xb8, 0x49, 0x03, 0xb1, 0xcd, 0xa9, 0x17, 0x28, 0x4d, 0xcc, 0x05, + 0x1d, 0xaf, 0x0b, 0x93, 0xa5, 0x3b, 0x94, 0xa8, 0x2d, 0x69, 0x2b, 0xf0, 0xc6, 0x10, 0x1a, 0x19, + 0xa1, 0x01, 0xff, 0x1f, 0xe5, 0x39, 0xd0, 0xc0, 0xf7, 0x8a, 0x39, 0xe9, 0x45, 0x1c, 0x5c, 0x22, + 0x6f, 0x89, 0xa6, 0xe2, 0xe7, 0xd0, 0x8c, 0x0b, 0x41, 0x40, 0x1b, 0x50, 0x9c, 0x96, 0x8c, 0x71, + 0x2d, 0x6f, 0xaa, 0x6b, 0x12, 0xd1, 0xcd, 0x3f, 0x0c, 0x74, 0x6e, 0x9f, 0x38, 0x6e, 0xb0, 0x40, + 0xe0, 0x5b, 0x43, 0xf5, 0x6c, 0x4d, 0xe6, 0x60, 0x28, 0x2d, 0xab, 0x79, 0x51, 0xeb, 0x9e, 0x8d, + 0x6e, 0x12, 0xb5, 0x7c, 0x0b, 0x4d, 0x33, 0x01, 0x6e, 0x98, 0x95, 0xec, 0xf9, 0x42, 0xf5, 0x95, + 0x27, 0xac, 0xb5, 0xda, 0x49, 0xad, 0x63, 0xfa, 0x4a, 0x88, 0x46, 0x14, 0xa8, 0xf9, 0x67, 0x66, + 0x5f, 0xdf, 0xc2, 0x82, 0xc7, 0x1f, 0xa3, 0x79, 0x79, 0xd2, 0xfd, 0x0a, 0x76, 0xb4, 0x87, 0x63, + 0xdf, 0xd4, 0x01, 0xe3, 0xa2, 0x76, 0x46, 0x9b, 0x32, 0xbf, 0x95, 0x82, 0x26, 0x03, 0xaa, 0xf0, + 0x0a, 0x2a, 0xb8, 0xcc, 0x23, 0xd0, 0x6a, 0x32, 0x9b, 0xaa, 0xb2, 0x9c, 0xae, 0x2d, 0xf4, 0xba, + 0xe5, 0xc2, 0x66, 0xff, 0x9a, 0x24, 0x79, 0xf0, 0x4b, 0xa8, 0xe0, 0xd2, 0xbb, 0xb1, 0x48, 0x56, + 0x8a, 0xfc, 0x47, 0xeb, 0x2b, 0x6c, 0xf6, 0x49, 0x24, 0xc9, 0x87, 0x6f, 0x84, 0xd5, 0x10, 0x76, + 0xb7, 0xa0, 0x98, 0x93, 0x61, 0xbe, 0x30, 0x59, 0x33, 0x94, 0x2d, 0x22, 0x51, 0x39, 0x12, 0x82, + 0x44, 0x58, 0xe6, 0x77, 0x39, 0xf4, 0xdf, 0x03, 0xdf, 0x3e, 0x7e, 0x1b, 0x61, 0xbf, 0x1e, 0x00, + 0xef, 0x80, 0x73, 0x49, 0x0d, 0xdd, 0x70, 0xfa, 0x85, 0x31, 0xce, 0xd6, 0xce, 0x84, 0x65, 0x7f, + 0x6d, 0x88, 0x4a, 0x46, 0x48, 0x60, 0x1b, 0x9d, 0x0c, 0x1f, 0x83, 0x0a, 0x28, 0xd3, 0x83, 0xf6, + 0x70, 0x2f, 0xed, 0x54, 0xaf, 0x5b, 0x3e, 0xb9, 0x91, 0x04, 0x21, 0x69, 0x4c, 0xbc, 0x86, 0x16, + 0x74, 0x7f, 0x1f, 0x08, 0xf0, 0x59, 0x1d, 0x81, 0x85, 0xf5, 0x34, 0x99, 0x0c, 0xf2, 0x87, 0x10, + 0x0e, 0x04, 0x8c, 0x83, 0x13, 0x43, 0xe4, 0xd2, 0x10, 0x6f, 0xa6, 0xc9, 0x64, 0x90, 0x1f, 0x37, + 0xd1, 0xbc, 0x46, 0xd5, 0xf1, 0x2e, 0x4e, 0xcb, 0x94, 0x4d, 0x38, 0x89, 0x75, 0xd3, 0x8d, 0x6b, + 0x70, 0x3d, 0x85, 0x45, 0x06, 0xb0, 0xb1, 0x40, 0xc8, 0x8e, 0x5a, 0x5c, 0x50, 0xcc, 0x4b, 0x4d, + 0x6f, 0x3c, 0xe1, 0x1b, 0x8c, 0x7b, 0x65, 0x7f, 0x7c, 0xc5, 0x57, 0x01, 0x49, 0xe8, 0x31, 0xbf, + 0x34, 0xd0, 0xe2, 0xe0, 0x24, 0x8f, 0x77, 0x28, 0x63, 0xdf, 0x1d, 0xea, 0x36, 0x9a, 0x0d, 0xa0, + 0x09, 0xb6, 0xf0, 0xb9, 0x2e, 0x80, 0x17, 0x27, 0xec, 0x44, 0xb4, 0x0e, 0xcd, 0x2d, 0x2d, 0x5a, + 0x9b, 0x0b, 0x5b, 0x51, 0x74, 0x22, 0x31, 0xa4, 0xf9, 0x75, 0x16, 0xa1, 0x7e, 0xdd, 0xe3, 0xd5, + 0xd4, 0xe8, 0x59, 0x1e, 0x18, 0x3d, 0x8b, 0xc9, 0x85, 0x2c, 0x31, 0x66, 0x6e, 0xa2, 0xbc, 0x2f, + 0xfb, 0x81, 0xb6, 0xb0, 0x3a, 0x2e, 0x98, 0xf1, 0x84, 0x8f, 0xd1, 0x6a, 0x28, 0x6c, 0xe8, 0xba, + 0xab, 0x68, 0x34, 0x7c, 0x15, 0xe5, 0x5a, 0xbe, 0x13, 0x8d, 0xe4, 0xb1, 0x7b, 0xd2, 0x75, 0xdf, + 0x09, 0x52, 0x98, 0xb3, 0xa1, 0xed, 0xe1, 0x2d, 0x91, 0x38, 0xf8, 0x03, 0x34, 0x1b, 0xad, 0xeb, + 0xb2, 0x44, 0x0b, 0xd5, 0xd5, 0x71, 0x98, 0x44, 0xf3, 0xa7, 0x70, 0x65, 0x30, 0x23, 0x0a, 0x89, + 0x31, 0x43, 0x7c, 0xd0, 0x1b, 0x9f, 0x9c, 0x40, 0x13, 0xe0, 0x8f, 0x5a, 0x75, 0x15, 0x7e, 0x44, + 0x21, 0x31, 0xa6, 0xf9, 0x4d, 0x16, 0xcd, 0xa5, 0x56, 0xc9, 0x7f, 0x23, 0x5d, 0xea, 0xad, 0x1d, + 0x6d, 0xba, 0x14, 0xe6, 0xd1, 0xa7, 0x4b, 0xe1, 0x1e, 0x5f, 0xba, 0x12, 0xf8, 0x23, 0xd2, 0xf5, + 0x53, 0x26, 0x4a, 0x97, 0x9a, 0x7f, 0x93, 0xa5, 0x4b, 0xf1, 0x26, 0xd2, 0x75, 0x0d, 0x4d, 0x77, + 0xc2, 0x05, 0x5d, 0x67, 0xeb, 0xc0, 0x45, 0xc4, 0x8a, 0x9c, 0xb3, 0xde, 0x6d, 0x53, 0x4f, 0x30, + 0xb1, 0x57, 0x3b, 0x11, 0x2e, 0x08, 0x72, 0xc3, 0x27, 0x0a, 0x07, 0x3b, 0x68, 0x8e, 0x76, 0x80, + 0xd3, 0x06, 0xc8, 0x6b, 0x9d, 0xaf, 0xc3, 0xe2, 0x2e, 0xf6, 0xba, 0xe5, 0xb9, 0xb5, 0x04, 0x0e, + 0x49, 0xa1, 0x86, 0x63, 0x50, 0x9f, 0x6f, 0x08, 0xd6, 0x64, 0xf7, 0xd4, 0x18, 0x54, 0x93, 0x41, + 0x8e, 0xc1, 0xb5, 0x21, 0x2a, 0x19, 0x21, 0x61, 0x7e, 0x91, 0x41, 0xa7, 0x86, 0x3e, 0x53, 0xfa, + 0x41, 0x31, 0x8e, 0x29, 0x28, 0x99, 0xa7, 0x18, 0x94, 0xec, 0xa1, 0x83, 0xf2, 0x73, 0x06, 0xe1, + 0xe1, 0x26, 0x8a, 0x3f, 0x91, 0xa3, 0xd8, 0xe6, 0xac, 0x0e, 0x8e, 0x22, 0x1f, 0xc5, 0x6e, 0x97, + 0x9c, 0xe3, 0x49, 0x6c, 0x32, 0xa8, 0xec, 0x78, 0xbe, 0xa4, 0x13, 0x1f, 0xcc, 0xd9, 0xa3, 0xfd, + 0x60, 0x36, 0x7f, 0x1b, 0x0c, 0xe3, 0x33, 0xfd, 0x85, 0x3e, 0x2a, 0xfd, 0xd9, 0xa7, 0x98, 0x7e, + 0xf3, 0x47, 0x03, 0x2d, 0x0e, 0x0e, 0xe1, 0x67, 0xee, 0x7f, 0x9b, 0x5f, 0xd3, 0x4e, 0x3c, 0xdb, + 0xff, 0xd9, 0x7c, 0x6b, 0xa0, 0xd3, 0xa3, 0x56, 0x18, 0xbc, 0x9e, 0x5a, 0x3c, 0x2b, 0xc9, 0xc5, + 0xf3, 0x71, 0xb7, 0x5c, 0x1e, 0xf1, 0xaf, 0x40, 0x04, 0x93, 0xd8, 0x4d, 0x8f, 0x27, 0x01, 0xdf, + 0x0f, 0xdb, 0xac, 0x92, 0x70, 0x24, 0x36, 0x1f, 0x6b, 0xbc, 0x6b, 0x17, 0xef, 0x3f, 0x2a, 0x4d, + 0x3d, 0x78, 0x54, 0x9a, 0x7a, 0xf8, 0xa8, 0x34, 0xf5, 0x69, 0xaf, 0x64, 0xdc, 0xef, 0x95, 0x8c, + 0x07, 0xbd, 0x92, 0xf1, 0xb0, 0x57, 0x32, 0xfe, 0xea, 0x95, 0x8c, 0xcf, 0xff, 0x2e, 0x4d, 0xbd, + 0x3f, 0xa3, 0xa1, 0xff, 0x09, 0x00, 0x00, 0xff, 0xff, 0x7e, 0xa0, 0xce, 0xf5, 0x16, 0x17, 0x00, + 0x00, +} diff --git a/vendor/k8s.io/api/autoscaling/v2beta2/generated.proto b/vendor/k8s.io/api/autoscaling/v2beta2/generated.proto new file mode 100644 index 000000000..b4e4c95a3 --- /dev/null +++ b/vendor/k8s.io/api/autoscaling/v2beta2/generated.proto @@ -0,0 +1,369 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + + +// This file was autogenerated by go-to-protobuf. Do not edit it manually! + +syntax = 'proto2'; + +package k8s.io.api.autoscaling.v2beta2; + +import "k8s.io/api/core/v1/generated.proto"; +import "k8s.io/apimachinery/pkg/api/resource/generated.proto"; +import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; +import "k8s.io/apimachinery/pkg/runtime/generated.proto"; +import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; + +// Package-wide variables from generator "generated". +option go_package = "v2beta2"; + +// CrossVersionObjectReference contains enough information to let you identify the referred resource. +message CrossVersionObjectReference { + // Kind of the referent; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" + optional string kind = 1; + + // Name of the referent; More info: http://kubernetes.io/docs/user-guide/identifiers#names + optional string name = 2; + + // API version of the referent + // +optional + optional string apiVersion = 3; +} + +// ExternalMetricSource indicates how to scale on a metric not associated with +// any Kubernetes object (for example length of queue in cloud +// messaging service, or QPS from loadbalancer running outside of cluster). +message ExternalMetricSource { + // metric identifies the target metric by name and selector + optional MetricIdentifier metric = 1; + + // target specifies the target value for the given metric + optional MetricTarget target = 2; +} + +// ExternalMetricStatus indicates the current value of a global metric +// not associated with any Kubernetes object. +message ExternalMetricStatus { + // metric identifies the target metric by name and selector + optional MetricIdentifier metric = 1; + + // current contains the current value for the given metric + optional MetricValueStatus current = 2; +} + +// HorizontalPodAutoscaler is the configuration for a horizontal pod +// autoscaler, which automatically manages the replica count of any resource +// implementing the scale subresource based on the metrics specified. +message HorizontalPodAutoscaler { + // metadata is the standard object metadata. + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // spec is the specification for the behaviour of the autoscaler. + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. + // +optional + optional HorizontalPodAutoscalerSpec spec = 2; + + // status is the current information about the autoscaler. + // +optional + optional HorizontalPodAutoscalerStatus status = 3; +} + +// HorizontalPodAutoscalerCondition describes the state of +// a HorizontalPodAutoscaler at a certain point. +message HorizontalPodAutoscalerCondition { + // type describes the current condition + optional string type = 1; + + // status is the status of the condition (True, False, Unknown) + optional string status = 2; + + // lastTransitionTime is the last time the condition transitioned from + // one status to another + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3; + + // reason is the reason for the condition's last transition. + // +optional + optional string reason = 4; + + // message is a human-readable explanation containing details about + // the transition + // +optional + optional string message = 5; +} + +// HorizontalPodAutoscalerList is a list of horizontal pod autoscaler objects. +message HorizontalPodAutoscalerList { + // metadata is the standard list metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + // items is the list of horizontal pod autoscaler objects. + repeated HorizontalPodAutoscaler items = 2; +} + +// HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler. +message HorizontalPodAutoscalerSpec { + // scaleTargetRef points to the target resource to scale, and is used to the pods for which metrics + // should be collected, as well as to actually change the replica count. + optional CrossVersionObjectReference scaleTargetRef = 1; + + // minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down. + // It defaults to 1 pod. + // +optional + optional int32 minReplicas = 2; + + // maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up. + // It cannot be less that minReplicas. + optional int32 maxReplicas = 3; + + // metrics contains the specifications for which to use to calculate the + // desired replica count (the maximum replica count across all metrics will + // be used). The desired replica count is calculated multiplying the + // ratio between the target value and the current value by the current + // number of pods. Ergo, metrics used must decrease as the pod count is + // increased, and vice-versa. See the individual metric source types for + // more information about how each type of metric must respond. + // If not set, the default metric will be set to 80% average CPU utilization. + // +optional + repeated MetricSpec metrics = 4; +} + +// HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler. +message HorizontalPodAutoscalerStatus { + // observedGeneration is the most recent generation observed by this autoscaler. + // +optional + optional int64 observedGeneration = 1; + + // lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods, + // used by the autoscaler to control how often the number of pods is changed. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastScaleTime = 2; + + // currentReplicas is current number of replicas of pods managed by this autoscaler, + // as last seen by the autoscaler. + optional int32 currentReplicas = 3; + + // desiredReplicas is the desired number of replicas of pods managed by this autoscaler, + // as last calculated by the autoscaler. + optional int32 desiredReplicas = 4; + + // currentMetrics is the last read state of the metrics used by this autoscaler. + // +optional + repeated MetricStatus currentMetrics = 5; + + // conditions is the set of conditions required for this autoscaler to scale its target, + // and indicates whether or not those conditions are met. + repeated HorizontalPodAutoscalerCondition conditions = 6; +} + +// MetricIdentifier defines the name and optionally selector for a metric +message MetricIdentifier { + // name is the name of the given metric + optional string name = 1; + + // selector is the string-encoded form of a standard kubernetes label selector for the given metric + // When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. + // When unset, just the metricName will be used to gather metrics. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 2; +} + +// MetricSpec specifies how to scale based on a single metric +// (only `type` and one other matching field should be set at once). +message MetricSpec { + // type is the type of metric source. It should be one of "Object", + // "Pods" or "Resource", each mapping to a matching field in the object. + optional string type = 1; + + // object refers to a metric describing a single kubernetes object + // (for example, hits-per-second on an Ingress object). + // +optional + optional ObjectMetricSource object = 2; + + // pods refers to a metric describing each pod in the current scale target + // (for example, transactions-processed-per-second). The values will be + // averaged together before being compared to the target value. + // +optional + optional PodsMetricSource pods = 3; + + // resource refers to a resource metric (such as those specified in + // requests and limits) known to Kubernetes describing each pod in the + // current scale target (e.g. CPU or memory). Such metrics are built in to + // Kubernetes, and have special scaling options on top of those available + // to normal per-pod metrics using the "pods" source. + // +optional + optional ResourceMetricSource resource = 4; + + // external refers to a global metric that is not associated + // with any Kubernetes object. It allows autoscaling based on information + // coming from components running outside of cluster + // (for example length of queue in cloud messaging service, or + // QPS from loadbalancer running outside of cluster). + // +optional + optional ExternalMetricSource external = 5; +} + +// MetricStatus describes the last-read state of a single metric. +message MetricStatus { + // type is the type of metric source. It will be one of "Object", + // "Pods" or "Resource", each corresponds to a matching field in the object. + optional string type = 1; + + // object refers to a metric describing a single kubernetes object + // (for example, hits-per-second on an Ingress object). + // +optional + optional ObjectMetricStatus object = 2; + + // pods refers to a metric describing each pod in the current scale target + // (for example, transactions-processed-per-second). The values will be + // averaged together before being compared to the target value. + // +optional + optional PodsMetricStatus pods = 3; + + // resource refers to a resource metric (such as those specified in + // requests and limits) known to Kubernetes describing each pod in the + // current scale target (e.g. CPU or memory). Such metrics are built in to + // Kubernetes, and have special scaling options on top of those available + // to normal per-pod metrics using the "pods" source. + // +optional + optional ResourceMetricStatus resource = 4; + + // external refers to a global metric that is not associated + // with any Kubernetes object. It allows autoscaling based on information + // coming from components running outside of cluster + // (for example length of queue in cloud messaging service, or + // QPS from loadbalancer running outside of cluster). + // +optional + optional ExternalMetricStatus external = 5; +} + +// MetricTarget defines the target value, average value, or average utilization of a specific metric +message MetricTarget { + // type represents whether the metric type is Utilization, Value, or AverageValue + optional string type = 1; + + // value is the target value of the metric (as a quantity). + // +optional + optional k8s.io.apimachinery.pkg.api.resource.Quantity value = 2; + + // averageValue is the target value of the average of the + // metric across all relevant pods (as a quantity) + // +optional + optional k8s.io.apimachinery.pkg.api.resource.Quantity averageValue = 3; + + // averageUtilization is the target value of the average of the + // resource metric across all relevant pods, represented as a percentage of + // the requested value of the resource for the pods. + // Currently only valid for Resource metric source type + // +optional + optional int32 averageUtilization = 4; +} + +// MetricValueStatus holds the current value for a metric +message MetricValueStatus { + // value is the current value of the metric (as a quantity). + // +optional + optional k8s.io.apimachinery.pkg.api.resource.Quantity value = 1; + + // averageValue is the current value of the average of the + // metric across all relevant pods (as a quantity) + // +optional + optional k8s.io.apimachinery.pkg.api.resource.Quantity averageValue = 2; + + // currentAverageUtilization is the current value of the average of the + // resource metric across all relevant pods, represented as a percentage of + // the requested value of the resource for the pods. + // +optional + optional int32 averageUtilization = 3; +} + +// ObjectMetricSource indicates how to scale on a metric describing a +// kubernetes object (for example, hits-per-second on an Ingress object). +message ObjectMetricSource { + optional CrossVersionObjectReference describedObject = 1; + + // target specifies the target value for the given metric + optional MetricTarget target = 2; + + // metric identifies the target metric by name and selector + optional MetricIdentifier metric = 3; +} + +// ObjectMetricStatus indicates the current value of a metric describing a +// kubernetes object (for example, hits-per-second on an Ingress object). +message ObjectMetricStatus { + // metric identifies the target metric by name and selector + optional MetricIdentifier metric = 1; + + // current contains the current value for the given metric + optional MetricValueStatus current = 2; + + optional CrossVersionObjectReference describedObject = 3; +} + +// PodsMetricSource indicates how to scale on a metric describing each pod in +// the current scale target (for example, transactions-processed-per-second). +// The values will be averaged together before being compared to the target +// value. +message PodsMetricSource { + // metric identifies the target metric by name and selector + optional MetricIdentifier metric = 1; + + // target specifies the target value for the given metric + optional MetricTarget target = 2; +} + +// PodsMetricStatus indicates the current value of a metric describing each pod in +// the current scale target (for example, transactions-processed-per-second). +message PodsMetricStatus { + // metric identifies the target metric by name and selector + optional MetricIdentifier metric = 1; + + // current contains the current value for the given metric + optional MetricValueStatus current = 2; +} + +// ResourceMetricSource indicates how to scale on a resource metric known to +// Kubernetes, as specified in requests and limits, describing each pod in the +// current scale target (e.g. CPU or memory). The values will be averaged +// together before being compared to the target. Such metrics are built in to +// Kubernetes, and have special scaling options on top of those available to +// normal per-pod metrics using the "pods" source. Only one "target" type +// should be set. +message ResourceMetricSource { + // name is the name of the resource in question. + optional string name = 1; + + // target specifies the target value for the given metric + optional MetricTarget target = 2; +} + +// ResourceMetricStatus indicates the current value of a resource metric known to +// Kubernetes, as specified in requests and limits, describing each pod in the +// current scale target (e.g. CPU or memory). Such metrics are built in to +// Kubernetes, and have special scaling options on top of those available to +// normal per-pod metrics using the "pods" source. +message ResourceMetricStatus { + // Name is the name of the resource in question. + optional string name = 1; + + // current contains the current value for the given metric + optional MetricValueStatus current = 2; +} + diff --git a/vendor/k8s.io/api/autoscaling/v2beta2/register.go b/vendor/k8s.io/api/autoscaling/v2beta2/register.go new file mode 100644 index 000000000..eb1265c16 --- /dev/null +++ b/vendor/k8s.io/api/autoscaling/v2beta2/register.go @@ -0,0 +1,50 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package v2beta2 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +// GroupName is the group name use in this package +const GroupName = "autoscaling" + +// SchemeGroupVersion is group version used to register these objects +var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v2beta2"} + +// Resource takes an unqualified resource and returns a Group qualified GroupResource +func Resource(resource string) schema.GroupResource { + return SchemeGroupVersion.WithResource(resource).GroupResource() +} + +var ( + SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) + localSchemeBuilder = &SchemeBuilder + AddToScheme = localSchemeBuilder.AddToScheme +) + +// Adds the list of known types to the given scheme. +func addKnownTypes(scheme *runtime.Scheme) error { + scheme.AddKnownTypes(SchemeGroupVersion, + &HorizontalPodAutoscaler{}, + &HorizontalPodAutoscalerList{}, + ) + metav1.AddToGroupVersion(scheme, SchemeGroupVersion) + return nil +} diff --git a/vendor/k8s.io/api/autoscaling/v2beta2/types.go b/vendor/k8s.io/api/autoscaling/v2beta2/types.go new file mode 100644 index 000000000..2d3379537 --- /dev/null +++ b/vendor/k8s.io/api/autoscaling/v2beta2/types.go @@ -0,0 +1,393 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// +k8s:openapi-gen=true + +package v2beta2 + +import ( + "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/api/resource" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// +genclient +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// HorizontalPodAutoscaler is the configuration for a horizontal pod +// autoscaler, which automatically manages the replica count of any resource +// implementing the scale subresource based on the metrics specified. +type HorizontalPodAutoscaler struct { + metav1.TypeMeta `json:",inline"` + // metadata is the standard object metadata. + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata + // +optional + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + // spec is the specification for the behaviour of the autoscaler. + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. + // +optional + Spec HorizontalPodAutoscalerSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` + + // status is the current information about the autoscaler. + // +optional + Status HorizontalPodAutoscalerStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"` +} + +// HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler. +type HorizontalPodAutoscalerSpec struct { + // scaleTargetRef points to the target resource to scale, and is used to the pods for which metrics + // should be collected, as well as to actually change the replica count. + ScaleTargetRef CrossVersionObjectReference `json:"scaleTargetRef" protobuf:"bytes,1,opt,name=scaleTargetRef"` + // minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down. + // It defaults to 1 pod. + // +optional + MinReplicas *int32 `json:"minReplicas,omitempty" protobuf:"varint,2,opt,name=minReplicas"` + // maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up. + // It cannot be less that minReplicas. + MaxReplicas int32 `json:"maxReplicas" protobuf:"varint,3,opt,name=maxReplicas"` + // metrics contains the specifications for which to use to calculate the + // desired replica count (the maximum replica count across all metrics will + // be used). The desired replica count is calculated multiplying the + // ratio between the target value and the current value by the current + // number of pods. Ergo, metrics used must decrease as the pod count is + // increased, and vice-versa. See the individual metric source types for + // more information about how each type of metric must respond. + // If not set, the default metric will be set to 80% average CPU utilization. + // +optional + Metrics []MetricSpec `json:"metrics,omitempty" protobuf:"bytes,4,rep,name=metrics"` +} + +// CrossVersionObjectReference contains enough information to let you identify the referred resource. +type CrossVersionObjectReference struct { + // Kind of the referent; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" + Kind string `json:"kind" protobuf:"bytes,1,opt,name=kind"` + // Name of the referent; More info: http://kubernetes.io/docs/user-guide/identifiers#names + Name string `json:"name" protobuf:"bytes,2,opt,name=name"` + // API version of the referent + // +optional + APIVersion string `json:"apiVersion,omitempty" protobuf:"bytes,3,opt,name=apiVersion"` +} + +// MetricSpec specifies how to scale based on a single metric +// (only `type` and one other matching field should be set at once). +type MetricSpec struct { + // type is the type of metric source. It should be one of "Object", + // "Pods" or "Resource", each mapping to a matching field in the object. + Type MetricSourceType `json:"type" protobuf:"bytes,1,name=type"` + + // object refers to a metric describing a single kubernetes object + // (for example, hits-per-second on an Ingress object). + // +optional + Object *ObjectMetricSource `json:"object,omitempty" protobuf:"bytes,2,opt,name=object"` + // pods refers to a metric describing each pod in the current scale target + // (for example, transactions-processed-per-second). The values will be + // averaged together before being compared to the target value. + // +optional + Pods *PodsMetricSource `json:"pods,omitempty" protobuf:"bytes,3,opt,name=pods"` + // resource refers to a resource metric (such as those specified in + // requests and limits) known to Kubernetes describing each pod in the + // current scale target (e.g. CPU or memory). Such metrics are built in to + // Kubernetes, and have special scaling options on top of those available + // to normal per-pod metrics using the "pods" source. + // +optional + Resource *ResourceMetricSource `json:"resource,omitempty" protobuf:"bytes,4,opt,name=resource"` + // external refers to a global metric that is not associated + // with any Kubernetes object. It allows autoscaling based on information + // coming from components running outside of cluster + // (for example length of queue in cloud messaging service, or + // QPS from loadbalancer running outside of cluster). + // +optional + External *ExternalMetricSource `json:"external,omitempty" protobuf:"bytes,5,opt,name=external"` +} + +// MetricSourceType indicates the type of metric. +type MetricSourceType string + +var ( + // ObjectMetricSourceType is a metric describing a kubernetes object + // (for example, hits-per-second on an Ingress object). + ObjectMetricSourceType MetricSourceType = "Object" + // PodsMetricSourceType is a metric describing each pod in the current scale + // target (for example, transactions-processed-per-second). The values + // will be averaged together before being compared to the target value. + PodsMetricSourceType MetricSourceType = "Pods" + // ResourceMetricSourceType is a resource metric known to Kubernetes, as + // specified in requests and limits, describing each pod in the current + // scale target (e.g. CPU or memory). Such metrics are built in to + // Kubernetes, and have special scaling options on top of those available + // to normal per-pod metrics (the "pods" source). + ResourceMetricSourceType MetricSourceType = "Resource" + // ExternalMetricSourceType is a global metric that is not associated + // with any Kubernetes object. It allows autoscaling based on information + // coming from components running outside of cluster + // (for example length of queue in cloud messaging service, or + // QPS from loadbalancer running outside of cluster). + ExternalMetricSourceType MetricSourceType = "External" +) + +// ObjectMetricSource indicates how to scale on a metric describing a +// kubernetes object (for example, hits-per-second on an Ingress object). +type ObjectMetricSource struct { + DescribedObject CrossVersionObjectReference `json:"describedObject" protobuf:"bytes,1,name=describedObject"` + // target specifies the target value for the given metric + Target MetricTarget `json:"target" protobuf:"bytes,2,name=target"` + // metric identifies the target metric by name and selector + Metric MetricIdentifier `json:"metric" protobuf:"bytes,3,name=metric"` +} + +// PodsMetricSource indicates how to scale on a metric describing each pod in +// the current scale target (for example, transactions-processed-per-second). +// The values will be averaged together before being compared to the target +// value. +type PodsMetricSource struct { + // metric identifies the target metric by name and selector + Metric MetricIdentifier `json:"metric" protobuf:"bytes,1,name=metric"` + // target specifies the target value for the given metric + Target MetricTarget `json:"target" protobuf:"bytes,2,name=target"` +} + +// ResourceMetricSource indicates how to scale on a resource metric known to +// Kubernetes, as specified in requests and limits, describing each pod in the +// current scale target (e.g. CPU or memory). The values will be averaged +// together before being compared to the target. Such metrics are built in to +// Kubernetes, and have special scaling options on top of those available to +// normal per-pod metrics using the "pods" source. Only one "target" type +// should be set. +type ResourceMetricSource struct { + // name is the name of the resource in question. + Name v1.ResourceName `json:"name" protobuf:"bytes,1,name=name"` + // target specifies the target value for the given metric + Target MetricTarget `json:"target" protobuf:"bytes,2,name=target"` +} + +// ExternalMetricSource indicates how to scale on a metric not associated with +// any Kubernetes object (for example length of queue in cloud +// messaging service, or QPS from loadbalancer running outside of cluster). +type ExternalMetricSource struct { + // metric identifies the target metric by name and selector + Metric MetricIdentifier `json:"metric" protobuf:"bytes,1,name=metric"` + // target specifies the target value for the given metric + Target MetricTarget `json:"target" protobuf:"bytes,2,name=target"` +} + +// MetricIdentifier defines the name and optionally selector for a metric +type MetricIdentifier struct { + // name is the name of the given metric + Name string `json:"name" protobuf:"bytes,1,name=name"` + // selector is the string-encoded form of a standard kubernetes label selector for the given metric + // When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. + // When unset, just the metricName will be used to gather metrics. + // +optional + Selector *metav1.LabelSelector `json:"selector,omitempty" protobuf:"bytes,2,name=selector"` +} + +// MetricTarget defines the target value, average value, or average utilization of a specific metric +type MetricTarget struct { + // type represents whether the metric type is Utilization, Value, or AverageValue + Type MetricTargetType `json:"type" protobuf:"bytes,1,name=type"` + // value is the target value of the metric (as a quantity). + // +optional + Value *resource.Quantity `json:"value,omitempty" protobuf:"bytes,2,opt,name=value"` + // averageValue is the target value of the average of the + // metric across all relevant pods (as a quantity) + // +optional + AverageValue *resource.Quantity `json:"averageValue,omitempty" protobuf:"bytes,3,opt,name=averageValue"` + // averageUtilization is the target value of the average of the + // resource metric across all relevant pods, represented as a percentage of + // the requested value of the resource for the pods. + // Currently only valid for Resource metric source type + // +optional + AverageUtilization *int32 `json:"averageUtilization,omitempty" protobuf:"bytes,4,opt,name=averageUtilization"` +} + +// MetricTargetType specifies the type of metric being targeted, and should be either +// "Value", "AverageValue", or "Utilization" +type MetricTargetType string + +var ( + // UtilizationMetricType declares a MetricTarget is an AverageUtilization value + UtilizationMetricType MetricTargetType = "Utilization" + // ValueMetricType declares a MetricTarget is a raw value + ValueMetricType MetricTargetType = "Value" + // AverageValueMetricType declares a MetricTarget is an + AverageValueMetricType MetricTargetType = "AverageValue" +) + +// HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler. +type HorizontalPodAutoscalerStatus struct { + // observedGeneration is the most recent generation observed by this autoscaler. + // +optional + ObservedGeneration *int64 `json:"observedGeneration,omitempty" protobuf:"varint,1,opt,name=observedGeneration"` + + // lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods, + // used by the autoscaler to control how often the number of pods is changed. + // +optional + LastScaleTime *metav1.Time `json:"lastScaleTime,omitempty" protobuf:"bytes,2,opt,name=lastScaleTime"` + + // currentReplicas is current number of replicas of pods managed by this autoscaler, + // as last seen by the autoscaler. + CurrentReplicas int32 `json:"currentReplicas" protobuf:"varint,3,opt,name=currentReplicas"` + + // desiredReplicas is the desired number of replicas of pods managed by this autoscaler, + // as last calculated by the autoscaler. + DesiredReplicas int32 `json:"desiredReplicas" protobuf:"varint,4,opt,name=desiredReplicas"` + + // currentMetrics is the last read state of the metrics used by this autoscaler. + // +optional + CurrentMetrics []MetricStatus `json:"currentMetrics" protobuf:"bytes,5,rep,name=currentMetrics"` + + // conditions is the set of conditions required for this autoscaler to scale its target, + // and indicates whether or not those conditions are met. + Conditions []HorizontalPodAutoscalerCondition `json:"conditions" protobuf:"bytes,6,rep,name=conditions"` +} + +// HorizontalPodAutoscalerConditionType are the valid conditions of +// a HorizontalPodAutoscaler. +type HorizontalPodAutoscalerConditionType string + +var ( + // ScalingActive indicates that the HPA controller is able to scale if necessary: + // it's correctly configured, can fetch the desired metrics, and isn't disabled. + ScalingActive HorizontalPodAutoscalerConditionType = "ScalingActive" + // AbleToScale indicates a lack of transient issues which prevent scaling from occurring, + // such as being in a backoff window, or being unable to access/update the target scale. + AbleToScale HorizontalPodAutoscalerConditionType = "AbleToScale" + // ScalingLimited indicates that the calculated scale based on metrics would be above or + // below the range for the HPA, and has thus been capped. + ScalingLimited HorizontalPodAutoscalerConditionType = "ScalingLimited" +) + +// HorizontalPodAutoscalerCondition describes the state of +// a HorizontalPodAutoscaler at a certain point. +type HorizontalPodAutoscalerCondition struct { + // type describes the current condition + Type HorizontalPodAutoscalerConditionType `json:"type" protobuf:"bytes,1,name=type"` + // status is the status of the condition (True, False, Unknown) + Status v1.ConditionStatus `json:"status" protobuf:"bytes,2,name=status"` + // lastTransitionTime is the last time the condition transitioned from + // one status to another + // +optional + LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty" protobuf:"bytes,3,opt,name=lastTransitionTime"` + // reason is the reason for the condition's last transition. + // +optional + Reason string `json:"reason,omitempty" protobuf:"bytes,4,opt,name=reason"` + // message is a human-readable explanation containing details about + // the transition + // +optional + Message string `json:"message,omitempty" protobuf:"bytes,5,opt,name=message"` +} + +// MetricStatus describes the last-read state of a single metric. +type MetricStatus struct { + // type is the type of metric source. It will be one of "Object", + // "Pods" or "Resource", each corresponds to a matching field in the object. + Type MetricSourceType `json:"type" protobuf:"bytes,1,name=type"` + + // object refers to a metric describing a single kubernetes object + // (for example, hits-per-second on an Ingress object). + // +optional + Object *ObjectMetricStatus `json:"object,omitempty" protobuf:"bytes,2,opt,name=object"` + // pods refers to a metric describing each pod in the current scale target + // (for example, transactions-processed-per-second). The values will be + // averaged together before being compared to the target value. + // +optional + Pods *PodsMetricStatus `json:"pods,omitempty" protobuf:"bytes,3,opt,name=pods"` + // resource refers to a resource metric (such as those specified in + // requests and limits) known to Kubernetes describing each pod in the + // current scale target (e.g. CPU or memory). Such metrics are built in to + // Kubernetes, and have special scaling options on top of those available + // to normal per-pod metrics using the "pods" source. + // +optional + Resource *ResourceMetricStatus `json:"resource,omitempty" protobuf:"bytes,4,opt,name=resource"` + // external refers to a global metric that is not associated + // with any Kubernetes object. It allows autoscaling based on information + // coming from components running outside of cluster + // (for example length of queue in cloud messaging service, or + // QPS from loadbalancer running outside of cluster). + // +optional + External *ExternalMetricStatus `json:"external,omitempty" protobuf:"bytes,5,opt,name=external"` +} + +// ObjectMetricStatus indicates the current value of a metric describing a +// kubernetes object (for example, hits-per-second on an Ingress object). +type ObjectMetricStatus struct { + // metric identifies the target metric by name and selector + Metric MetricIdentifier `json:"metric" protobuf:"bytes,1,name=metric"` + // current contains the current value for the given metric + Current MetricValueStatus `json:"current" protobuf:"bytes,2,name=current"` + + DescribedObject CrossVersionObjectReference `json:"describedObject" protobuf:"bytes,3,name=describedObject"` +} + +// PodsMetricStatus indicates the current value of a metric describing each pod in +// the current scale target (for example, transactions-processed-per-second). +type PodsMetricStatus struct { + // metric identifies the target metric by name and selector + Metric MetricIdentifier `json:"metric" protobuf:"bytes,1,name=metric"` + // current contains the current value for the given metric + Current MetricValueStatus `json:"current" protobuf:"bytes,2,name=current"` +} + +// ResourceMetricStatus indicates the current value of a resource metric known to +// Kubernetes, as specified in requests and limits, describing each pod in the +// current scale target (e.g. CPU or memory). Such metrics are built in to +// Kubernetes, and have special scaling options on top of those available to +// normal per-pod metrics using the "pods" source. +type ResourceMetricStatus struct { + // Name is the name of the resource in question. + Name v1.ResourceName `json:"name" protobuf:"bytes,1,name=name"` + // current contains the current value for the given metric + Current MetricValueStatus `json:"current" protobuf:"bytes,2,name=current"` +} + +// ExternalMetricStatus indicates the current value of a global metric +// not associated with any Kubernetes object. +type ExternalMetricStatus struct { + // metric identifies the target metric by name and selector + Metric MetricIdentifier `json:"metric" protobuf:"bytes,1,name=metric"` + // current contains the current value for the given metric + Current MetricValueStatus `json:"current" protobuf:"bytes,2,name=current"` +} + +// MetricValueStatus holds the current value for a metric +type MetricValueStatus struct { + // value is the current value of the metric (as a quantity). + // +optional + Value *resource.Quantity `json:"value,omitempty" protobuf:"bytes,1,opt,name=value"` + // averageValue is the current value of the average of the + // metric across all relevant pods (as a quantity) + // +optional + AverageValue *resource.Quantity `json:"averageValue,omitempty" protobuf:"bytes,2,opt,name=averageValue"` + // currentAverageUtilization is the current value of the average of the + // resource metric across all relevant pods, represented as a percentage of + // the requested value of the resource for the pods. + // +optional + AverageUtilization *int32 `json:"averageUtilization,omitempty" protobuf:"bytes,3,opt,name=averageUtilization"` +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// HorizontalPodAutoscalerList is a list of horizontal pod autoscaler objects. +type HorizontalPodAutoscalerList struct { + metav1.TypeMeta `json:",inline"` + // metadata is the standard list metadata. + // +optional + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + // items is the list of horizontal pod autoscaler objects. + Items []HorizontalPodAutoscaler `json:"items" protobuf:"bytes,2,rep,name=items"` +} diff --git a/vendor/k8s.io/api/autoscaling/v2beta2/types_swagger_doc_generated.go b/vendor/k8s.io/api/autoscaling/v2beta2/types_swagger_doc_generated.go new file mode 100644 index 000000000..996dc1840 --- /dev/null +++ b/vendor/k8s.io/api/autoscaling/v2beta2/types_swagger_doc_generated.go @@ -0,0 +1,240 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package v2beta2 + +// This file contains a collection of methods that can be used from go-restful to +// generate Swagger API documentation for its models. Please read this PR for more +// information on the implementation: https://github.com/emicklei/go-restful/pull/215 +// +// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if +// they are on one line! For multiple line or blocks that you want to ignore use ---. +// Any context after a --- is ignored. +// +// Those methods can be generated by using hack/update-generated-swagger-docs.sh + +// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT. +var map_CrossVersionObjectReference = map[string]string{ + "": "CrossVersionObjectReference contains enough information to let you identify the referred resource.", + "kind": "Kind of the referent; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\"", + "name": "Name of the referent; More info: http://kubernetes.io/docs/user-guide/identifiers#names", + "apiVersion": "API version of the referent", +} + +func (CrossVersionObjectReference) SwaggerDoc() map[string]string { + return map_CrossVersionObjectReference +} + +var map_ExternalMetricSource = map[string]string{ + "": "ExternalMetricSource indicates how to scale on a metric not associated with any Kubernetes object (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).", + "metric": "metric identifies the target metric by name and selector", + "target": "target specifies the target value for the given metric", +} + +func (ExternalMetricSource) SwaggerDoc() map[string]string { + return map_ExternalMetricSource +} + +var map_ExternalMetricStatus = map[string]string{ + "": "ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object.", + "metric": "metric identifies the target metric by name and selector", + "current": "current contains the current value for the given metric", +} + +func (ExternalMetricStatus) SwaggerDoc() map[string]string { + return map_ExternalMetricStatus +} + +var map_HorizontalPodAutoscaler = map[string]string{ + "": "HorizontalPodAutoscaler is the configuration for a horizontal pod autoscaler, which automatically manages the replica count of any resource implementing the scale subresource based on the metrics specified.", + "metadata": "metadata is the standard object metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "spec": "spec is the specification for the behaviour of the autoscaler. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.", + "status": "status is the current information about the autoscaler.", +} + +func (HorizontalPodAutoscaler) SwaggerDoc() map[string]string { + return map_HorizontalPodAutoscaler +} + +var map_HorizontalPodAutoscalerCondition = map[string]string{ + "": "HorizontalPodAutoscalerCondition describes the state of a HorizontalPodAutoscaler at a certain point.", + "type": "type describes the current condition", + "status": "status is the status of the condition (True, False, Unknown)", + "lastTransitionTime": "lastTransitionTime is the last time the condition transitioned from one status to another", + "reason": "reason is the reason for the condition's last transition.", + "message": "message is a human-readable explanation containing details about the transition", +} + +func (HorizontalPodAutoscalerCondition) SwaggerDoc() map[string]string { + return map_HorizontalPodAutoscalerCondition +} + +var map_HorizontalPodAutoscalerList = map[string]string{ + "": "HorizontalPodAutoscalerList is a list of horizontal pod autoscaler objects.", + "metadata": "metadata is the standard list metadata.", + "items": "items is the list of horizontal pod autoscaler objects.", +} + +func (HorizontalPodAutoscalerList) SwaggerDoc() map[string]string { + return map_HorizontalPodAutoscalerList +} + +var map_HorizontalPodAutoscalerSpec = map[string]string{ + "": "HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler.", + "scaleTargetRef": "scaleTargetRef points to the target resource to scale, and is used to the pods for which metrics should be collected, as well as to actually change the replica count.", + "minReplicas": "minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down. It defaults to 1 pod.", + "maxReplicas": "maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up. It cannot be less that minReplicas.", + "metrics": "metrics contains the specifications for which to use to calculate the desired replica count (the maximum replica count across all metrics will be used). The desired replica count is calculated multiplying the ratio between the target value and the current value by the current number of pods. Ergo, metrics used must decrease as the pod count is increased, and vice-versa. See the individual metric source types for more information about how each type of metric must respond. If not set, the default metric will be set to 80% average CPU utilization.", +} + +func (HorizontalPodAutoscalerSpec) SwaggerDoc() map[string]string { + return map_HorizontalPodAutoscalerSpec +} + +var map_HorizontalPodAutoscalerStatus = map[string]string{ + "": "HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.", + "observedGeneration": "observedGeneration is the most recent generation observed by this autoscaler.", + "lastScaleTime": "lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods, used by the autoscaler to control how often the number of pods is changed.", + "currentReplicas": "currentReplicas is current number of replicas of pods managed by this autoscaler, as last seen by the autoscaler.", + "desiredReplicas": "desiredReplicas is the desired number of replicas of pods managed by this autoscaler, as last calculated by the autoscaler.", + "currentMetrics": "currentMetrics is the last read state of the metrics used by this autoscaler.", + "conditions": "conditions is the set of conditions required for this autoscaler to scale its target, and indicates whether or not those conditions are met.", +} + +func (HorizontalPodAutoscalerStatus) SwaggerDoc() map[string]string { + return map_HorizontalPodAutoscalerStatus +} + +var map_MetricIdentifier = map[string]string{ + "": "MetricIdentifier defines the name and optionally selector for a metric", + "name": "name is the name of the given metric", + "selector": "selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics.", +} + +func (MetricIdentifier) SwaggerDoc() map[string]string { + return map_MetricIdentifier +} + +var map_MetricSpec = map[string]string{ + "": "MetricSpec specifies how to scale based on a single metric (only `type` and one other matching field should be set at once).", + "type": "type is the type of metric source. It should be one of \"Object\", \"Pods\" or \"Resource\", each mapping to a matching field in the object.", + "object": "object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object).", + "pods": "pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.", + "resource": "resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source.", + "external": "external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).", +} + +func (MetricSpec) SwaggerDoc() map[string]string { + return map_MetricSpec +} + +var map_MetricStatus = map[string]string{ + "": "MetricStatus describes the last-read state of a single metric.", + "type": "type is the type of metric source. It will be one of \"Object\", \"Pods\" or \"Resource\", each corresponds to a matching field in the object.", + "object": "object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object).", + "pods": "pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.", + "resource": "resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source.", + "external": "external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).", +} + +func (MetricStatus) SwaggerDoc() map[string]string { + return map_MetricStatus +} + +var map_MetricTarget = map[string]string{ + "": "MetricTarget defines the target value, average value, or average utilization of a specific metric", + "type": "type represents whether the metric type is Utilization, Value, or AverageValue", + "value": "value is the target value of the metric (as a quantity).", + "averageValue": "averageValue is the target value of the average of the metric across all relevant pods (as a quantity)", + "averageUtilization": "averageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods. Currently only valid for Resource metric source type", +} + +func (MetricTarget) SwaggerDoc() map[string]string { + return map_MetricTarget +} + +var map_MetricValueStatus = map[string]string{ + "": "MetricValueStatus holds the current value for a metric", + "value": "value is the current value of the metric (as a quantity).", + "averageValue": "averageValue is the current value of the average of the metric across all relevant pods (as a quantity)", + "averageUtilization": "currentAverageUtilization is the current value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.", +} + +func (MetricValueStatus) SwaggerDoc() map[string]string { + return map_MetricValueStatus +} + +var map_ObjectMetricSource = map[string]string{ + "": "ObjectMetricSource indicates how to scale on a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).", + "target": "target specifies the target value for the given metric", + "metric": "metric identifies the target metric by name and selector", +} + +func (ObjectMetricSource) SwaggerDoc() map[string]string { + return map_ObjectMetricSource +} + +var map_ObjectMetricStatus = map[string]string{ + "": "ObjectMetricStatus indicates the current value of a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).", + "metric": "metric identifies the target metric by name and selector", + "current": "current contains the current value for the given metric", +} + +func (ObjectMetricStatus) SwaggerDoc() map[string]string { + return map_ObjectMetricStatus +} + +var map_PodsMetricSource = map[string]string{ + "": "PodsMetricSource indicates how to scale on a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.", + "metric": "metric identifies the target metric by name and selector", + "target": "target specifies the target value for the given metric", +} + +func (PodsMetricSource) SwaggerDoc() map[string]string { + return map_PodsMetricSource +} + +var map_PodsMetricStatus = map[string]string{ + "": "PodsMetricStatus indicates the current value of a metric describing each pod in the current scale target (for example, transactions-processed-per-second).", + "metric": "metric identifies the target metric by name and selector", + "current": "current contains the current value for the given metric", +} + +func (PodsMetricStatus) SwaggerDoc() map[string]string { + return map_PodsMetricStatus +} + +var map_ResourceMetricSource = map[string]string{ + "": "ResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source. Only one \"target\" type should be set.", + "name": "name is the name of the resource in question.", + "target": "target specifies the target value for the given metric", +} + +func (ResourceMetricSource) SwaggerDoc() map[string]string { + return map_ResourceMetricSource +} + +var map_ResourceMetricStatus = map[string]string{ + "": "ResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source.", + "name": "Name is the name of the resource in question.", + "current": "current contains the current value for the given metric", +} + +func (ResourceMetricStatus) SwaggerDoc() map[string]string { + return map_ResourceMetricStatus +} + +// AUTO-GENERATED FUNCTIONS END HERE diff --git a/vendor/k8s.io/api/autoscaling/v2beta2/zz_generated.deepcopy.go b/vendor/k8s.io/api/autoscaling/v2beta2/zz_generated.deepcopy.go new file mode 100644 index 000000000..a6a95653a --- /dev/null +++ b/vendor/k8s.io/api/autoscaling/v2beta2/zz_generated.deepcopy.go @@ -0,0 +1,487 @@ +// +build !ignore_autogenerated + +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by deepcopy-gen. DO NOT EDIT. + +package v2beta2 + +import ( + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" +) + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CrossVersionObjectReference) DeepCopyInto(out *CrossVersionObjectReference) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CrossVersionObjectReference. +func (in *CrossVersionObjectReference) DeepCopy() *CrossVersionObjectReference { + if in == nil { + return nil + } + out := new(CrossVersionObjectReference) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ExternalMetricSource) DeepCopyInto(out *ExternalMetricSource) { + *out = *in + in.Metric.DeepCopyInto(&out.Metric) + in.Target.DeepCopyInto(&out.Target) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalMetricSource. +func (in *ExternalMetricSource) DeepCopy() *ExternalMetricSource { + if in == nil { + return nil + } + out := new(ExternalMetricSource) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ExternalMetricStatus) DeepCopyInto(out *ExternalMetricStatus) { + *out = *in + in.Metric.DeepCopyInto(&out.Metric) + in.Current.DeepCopyInto(&out.Current) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalMetricStatus. +func (in *ExternalMetricStatus) DeepCopy() *ExternalMetricStatus { + if in == nil { + return nil + } + out := new(ExternalMetricStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *HorizontalPodAutoscaler) DeepCopyInto(out *HorizontalPodAutoscaler) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + in.Status.DeepCopyInto(&out.Status) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscaler. +func (in *HorizontalPodAutoscaler) DeepCopy() *HorizontalPodAutoscaler { + if in == nil { + return nil + } + out := new(HorizontalPodAutoscaler) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *HorizontalPodAutoscaler) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *HorizontalPodAutoscalerCondition) DeepCopyInto(out *HorizontalPodAutoscalerCondition) { + *out = *in + in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscalerCondition. +func (in *HorizontalPodAutoscalerCondition) DeepCopy() *HorizontalPodAutoscalerCondition { + if in == nil { + return nil + } + out := new(HorizontalPodAutoscalerCondition) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *HorizontalPodAutoscalerList) DeepCopyInto(out *HorizontalPodAutoscalerList) { + *out = *in + out.TypeMeta = in.TypeMeta + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]HorizontalPodAutoscaler, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscalerList. +func (in *HorizontalPodAutoscalerList) DeepCopy() *HorizontalPodAutoscalerList { + if in == nil { + return nil + } + out := new(HorizontalPodAutoscalerList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *HorizontalPodAutoscalerList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *HorizontalPodAutoscalerSpec) DeepCopyInto(out *HorizontalPodAutoscalerSpec) { + *out = *in + out.ScaleTargetRef = in.ScaleTargetRef + if in.MinReplicas != nil { + in, out := &in.MinReplicas, &out.MinReplicas + *out = new(int32) + **out = **in + } + if in.Metrics != nil { + in, out := &in.Metrics, &out.Metrics + *out = make([]MetricSpec, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscalerSpec. +func (in *HorizontalPodAutoscalerSpec) DeepCopy() *HorizontalPodAutoscalerSpec { + if in == nil { + return nil + } + out := new(HorizontalPodAutoscalerSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *HorizontalPodAutoscalerStatus) DeepCopyInto(out *HorizontalPodAutoscalerStatus) { + *out = *in + if in.ObservedGeneration != nil { + in, out := &in.ObservedGeneration, &out.ObservedGeneration + *out = new(int64) + **out = **in + } + if in.LastScaleTime != nil { + in, out := &in.LastScaleTime, &out.LastScaleTime + *out = (*in).DeepCopy() + } + if in.CurrentMetrics != nil { + in, out := &in.CurrentMetrics, &out.CurrentMetrics + *out = make([]MetricStatus, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]HorizontalPodAutoscalerCondition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscalerStatus. +func (in *HorizontalPodAutoscalerStatus) DeepCopy() *HorizontalPodAutoscalerStatus { + if in == nil { + return nil + } + out := new(HorizontalPodAutoscalerStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MetricIdentifier) DeepCopyInto(out *MetricIdentifier) { + *out = *in + if in.Selector != nil { + in, out := &in.Selector, &out.Selector + *out = new(v1.LabelSelector) + (*in).DeepCopyInto(*out) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricIdentifier. +func (in *MetricIdentifier) DeepCopy() *MetricIdentifier { + if in == nil { + return nil + } + out := new(MetricIdentifier) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MetricSpec) DeepCopyInto(out *MetricSpec) { + *out = *in + if in.Object != nil { + in, out := &in.Object, &out.Object + *out = new(ObjectMetricSource) + (*in).DeepCopyInto(*out) + } + if in.Pods != nil { + in, out := &in.Pods, &out.Pods + *out = new(PodsMetricSource) + (*in).DeepCopyInto(*out) + } + if in.Resource != nil { + in, out := &in.Resource, &out.Resource + *out = new(ResourceMetricSource) + (*in).DeepCopyInto(*out) + } + if in.External != nil { + in, out := &in.External, &out.External + *out = new(ExternalMetricSource) + (*in).DeepCopyInto(*out) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricSpec. +func (in *MetricSpec) DeepCopy() *MetricSpec { + if in == nil { + return nil + } + out := new(MetricSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MetricStatus) DeepCopyInto(out *MetricStatus) { + *out = *in + if in.Object != nil { + in, out := &in.Object, &out.Object + *out = new(ObjectMetricStatus) + (*in).DeepCopyInto(*out) + } + if in.Pods != nil { + in, out := &in.Pods, &out.Pods + *out = new(PodsMetricStatus) + (*in).DeepCopyInto(*out) + } + if in.Resource != nil { + in, out := &in.Resource, &out.Resource + *out = new(ResourceMetricStatus) + (*in).DeepCopyInto(*out) + } + if in.External != nil { + in, out := &in.External, &out.External + *out = new(ExternalMetricStatus) + (*in).DeepCopyInto(*out) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricStatus. +func (in *MetricStatus) DeepCopy() *MetricStatus { + if in == nil { + return nil + } + out := new(MetricStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MetricTarget) DeepCopyInto(out *MetricTarget) { + *out = *in + if in.Value != nil { + in, out := &in.Value, &out.Value + x := (*in).DeepCopy() + *out = &x + } + if in.AverageValue != nil { + in, out := &in.AverageValue, &out.AverageValue + x := (*in).DeepCopy() + *out = &x + } + if in.AverageUtilization != nil { + in, out := &in.AverageUtilization, &out.AverageUtilization + *out = new(int32) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricTarget. +func (in *MetricTarget) DeepCopy() *MetricTarget { + if in == nil { + return nil + } + out := new(MetricTarget) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MetricValueStatus) DeepCopyInto(out *MetricValueStatus) { + *out = *in + if in.Value != nil { + in, out := &in.Value, &out.Value + x := (*in).DeepCopy() + *out = &x + } + if in.AverageValue != nil { + in, out := &in.AverageValue, &out.AverageValue + x := (*in).DeepCopy() + *out = &x + } + if in.AverageUtilization != nil { + in, out := &in.AverageUtilization, &out.AverageUtilization + *out = new(int32) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricValueStatus. +func (in *MetricValueStatus) DeepCopy() *MetricValueStatus { + if in == nil { + return nil + } + out := new(MetricValueStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ObjectMetricSource) DeepCopyInto(out *ObjectMetricSource) { + *out = *in + out.DescribedObject = in.DescribedObject + in.Target.DeepCopyInto(&out.Target) + in.Metric.DeepCopyInto(&out.Metric) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectMetricSource. +func (in *ObjectMetricSource) DeepCopy() *ObjectMetricSource { + if in == nil { + return nil + } + out := new(ObjectMetricSource) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ObjectMetricStatus) DeepCopyInto(out *ObjectMetricStatus) { + *out = *in + in.Metric.DeepCopyInto(&out.Metric) + in.Current.DeepCopyInto(&out.Current) + out.DescribedObject = in.DescribedObject + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectMetricStatus. +func (in *ObjectMetricStatus) DeepCopy() *ObjectMetricStatus { + if in == nil { + return nil + } + out := new(ObjectMetricStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PodsMetricSource) DeepCopyInto(out *PodsMetricSource) { + *out = *in + in.Metric.DeepCopyInto(&out.Metric) + in.Target.DeepCopyInto(&out.Target) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodsMetricSource. +func (in *PodsMetricSource) DeepCopy() *PodsMetricSource { + if in == nil { + return nil + } + out := new(PodsMetricSource) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PodsMetricStatus) DeepCopyInto(out *PodsMetricStatus) { + *out = *in + in.Metric.DeepCopyInto(&out.Metric) + in.Current.DeepCopyInto(&out.Current) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodsMetricStatus. +func (in *PodsMetricStatus) DeepCopy() *PodsMetricStatus { + if in == nil { + return nil + } + out := new(PodsMetricStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ResourceMetricSource) DeepCopyInto(out *ResourceMetricSource) { + *out = *in + in.Target.DeepCopyInto(&out.Target) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceMetricSource. +func (in *ResourceMetricSource) DeepCopy() *ResourceMetricSource { + if in == nil { + return nil + } + out := new(ResourceMetricSource) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ResourceMetricStatus) DeepCopyInto(out *ResourceMetricStatus) { + *out = *in + in.Current.DeepCopyInto(&out.Current) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceMetricStatus. +func (in *ResourceMetricStatus) DeepCopy() *ResourceMetricStatus { + if in == nil { + return nil + } + out := new(ResourceMetricStatus) + in.DeepCopyInto(out) + return out +} diff --git a/vendor/k8s.io/api/batch/v1/BUILD b/vendor/k8s.io/api/batch/v1/BUILD deleted file mode 100644 index a7ca7a232..000000000 --- a/vendor/k8s.io/api/batch/v1/BUILD +++ /dev/null @@ -1,45 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "generated.pb.go", - "register.go", - "types.go", - "types_swagger_doc_generated.go", - "zz_generated.deepcopy.go", - ], - importpath = "k8s.io/api/batch/v1", - deps = [ - "//vendor/github.com/gogo/protobuf/proto:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) - -filegroup( - name = "go_default_library_protos", - srcs = ["generated.proto"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/api/batch/v1/generated.pb.go b/vendor/k8s.io/api/batch/v1/generated.pb.go index 8599b6733..3aa32b578 100644 --- a/vendor/k8s.io/api/batch/v1/generated.pb.go +++ b/vendor/k8s.io/api/batch/v1/generated.pb.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -14,9 +14,8 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: k8s.io/kubernetes/vendor/k8s.io/api/batch/v1/generated.proto -// DO NOT EDIT! /* Package v1 is a generated protocol buffer package. @@ -276,6 +275,11 @@ func (m *JobSpec) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintGenerated(dAtA, i, uint64(*m.BackoffLimit)) } + if m.TTLSecondsAfterFinished != nil { + dAtA[i] = 0x40 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(*m.TTLSecondsAfterFinished)) + } return i, nil } @@ -338,24 +342,6 @@ func (m *JobStatus) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Generated(dAtA []byte, offset int, v uint64) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - dAtA[offset+4] = uint8(v >> 32) - dAtA[offset+5] = uint8(v >> 40) - dAtA[offset+6] = uint8(v >> 48) - dAtA[offset+7] = uint8(v >> 56) - return offset + 8 -} -func encodeFixed32Generated(dAtA []byte, offset int, v uint32) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - return offset + 4 -} func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -433,6 +419,9 @@ func (m *JobSpec) Size() (n int) { if m.BackoffLimit != nil { n += 1 + sovGenerated(uint64(*m.BackoffLimit)) } + if m.TTLSecondsAfterFinished != nil { + n += 1 + sovGenerated(uint64(*m.TTLSecondsAfterFinished)) + } return n } @@ -522,6 +511,7 @@ func (this *JobSpec) String() string { `ManualSelector:` + valueToStringGenerated(this.ManualSelector) + `,`, `Template:` + strings.Replace(strings.Replace(this.Template.String(), "PodTemplateSpec", "k8s_io_api_core_v1.PodTemplateSpec", 1), `&`, ``, 1) + `,`, `BackoffLimit:` + valueToStringGenerated(this.BackoffLimit) + `,`, + `TTLSecondsAfterFinished:` + valueToStringGenerated(this.TTLSecondsAfterFinished) + `,`, `}`, }, "") return s @@ -1219,6 +1209,26 @@ func (m *JobSpec) Unmarshal(dAtA []byte) error { } } m.BackoffLimit = &v + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field TTLSecondsAfterFinished", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.TTLSecondsAfterFinished = &v default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -1554,62 +1564,64 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 907 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x54, 0x41, 0x6f, 0xe3, 0x44, - 0x18, 0x8d, 0x9b, 0xa6, 0x4d, 0x26, 0x69, 0x77, 0x19, 0x54, 0x29, 0x54, 0xc8, 0x59, 0x82, 0x84, - 0x0a, 0x12, 0x36, 0xe9, 0x56, 0x08, 0x21, 0x40, 0xc2, 0x45, 0x2b, 0x51, 0xa5, 0xda, 0x32, 0x29, - 0x42, 0x42, 0x20, 0x31, 0xb6, 0xbf, 0xa4, 0x43, 0x6c, 0x8f, 0xe5, 0x99, 0x44, 0xea, 0x8d, 0x9f, - 0xc0, 0x8f, 0x40, 0xfc, 0x14, 0xd4, 0xe3, 0x1e, 0xf7, 0x14, 0x51, 0xc3, 0x9d, 0xfb, 0x9e, 0xd0, - 0x8c, 0x1d, 0xdb, 0x69, 0x13, 0xd1, 0xe5, 0x66, 0xbf, 0x79, 0xef, 0x7d, 0x33, 0xf3, 0xbd, 0xf9, - 0xd0, 0x67, 0xd3, 0x4f, 0x84, 0xc5, 0xb8, 0x3d, 0x9d, 0xb9, 0x90, 0x44, 0x20, 0x41, 0xd8, 0x73, - 0x88, 0x7c, 0x9e, 0xd8, 0xf9, 0x02, 0x8d, 0x99, 0xed, 0x52, 0xe9, 0x5d, 0xd9, 0xf3, 0x81, 0x3d, - 0x81, 0x08, 0x12, 0x2a, 0xc1, 0xb7, 0xe2, 0x84, 0x4b, 0x8e, 0xdf, 0xcc, 0x48, 0x16, 0x8d, 0x99, - 0xa5, 0x49, 0xd6, 0x7c, 0x70, 0xf8, 0xe1, 0x84, 0xc9, 0xab, 0x99, 0x6b, 0x79, 0x3c, 0xb4, 0x27, - 0x7c, 0xc2, 0x6d, 0xcd, 0x75, 0x67, 0x63, 0xfd, 0xa7, 0x7f, 0xf4, 0x57, 0xe6, 0x71, 0xd8, 0xaf, - 0x14, 0xf2, 0x78, 0x02, 0x6b, 0xea, 0x1c, 0x9e, 0x94, 0x9c, 0x90, 0x7a, 0x57, 0x2c, 0x82, 0xe4, - 0xda, 0x8e, 0xa7, 0x13, 0x05, 0x08, 0x3b, 0x04, 0x49, 0xd7, 0xa9, 0xec, 0x4d, 0xaa, 0x64, 0x16, - 0x49, 0x16, 0xc2, 0x3d, 0xc1, 0xc7, 0xff, 0x25, 0x10, 0xde, 0x15, 0x84, 0xf4, 0x9e, 0xee, 0xe9, - 0x26, 0xdd, 0x4c, 0xb2, 0xc0, 0x66, 0x91, 0x14, 0x32, 0xb9, 0x2b, 0xea, 0xff, 0x63, 0xa0, 0xfa, - 0x19, 0x77, 0xf1, 0x4f, 0xa8, 0xa9, 0x0e, 0xe0, 0x53, 0x49, 0xbb, 0xc6, 0x13, 0xe3, 0xa8, 0x7d, - 0xfc, 0x91, 0x55, 0x5e, 0x6b, 0xe1, 0x67, 0xc5, 0xd3, 0x89, 0x02, 0x84, 0xa5, 0xd8, 0xd6, 0x7c, - 0x60, 0x3d, 0x77, 0x7f, 0x06, 0x4f, 0x9e, 0x83, 0xa4, 0x0e, 0xbe, 0x59, 0xf4, 0x6a, 0xe9, 0xa2, - 0x87, 0x4a, 0x8c, 0x14, 0xae, 0xf8, 0x0b, 0xb4, 0x2d, 0x62, 0xf0, 0xba, 0x5b, 0xda, 0xfd, 0x6d, - 0x6b, 0x4d, 0xd3, 0xac, 0x33, 0xee, 0x8e, 0x62, 0xf0, 0x9c, 0x4e, 0xee, 0xb4, 0xad, 0xfe, 0x88, - 0xd6, 0xe1, 0x67, 0x68, 0x47, 0x48, 0x2a, 0x67, 0xa2, 0x5b, 0xd7, 0x0e, 0xe6, 0x46, 0x07, 0xcd, - 0x72, 0xf6, 0x73, 0x8f, 0x9d, 0xec, 0x9f, 0xe4, 0xea, 0xfe, 0x1f, 0x75, 0xd4, 0x39, 0xe3, 0xee, - 0x29, 0x8f, 0x7c, 0x26, 0x19, 0x8f, 0xf0, 0x09, 0xda, 0x96, 0xd7, 0x31, 0xe8, 0x63, 0xb7, 0x9c, - 0x27, 0xcb, 0xd2, 0x97, 0xd7, 0x31, 0xbc, 0x5a, 0xf4, 0x1e, 0x57, 0xb9, 0x0a, 0x23, 0x9a, 0x8d, - 0x87, 0xc5, 0x76, 0xb6, 0xb4, 0xee, 0x64, 0xb5, 0xdc, 0xab, 0x45, 0x6f, 0x4d, 0xa4, 0xac, 0xc2, - 0x69, 0x75, 0x53, 0x78, 0x82, 0xf6, 0x02, 0x2a, 0xe4, 0x45, 0xc2, 0x5d, 0xb8, 0x64, 0x21, 0xe4, - 0x67, 0xfc, 0xe0, 0x61, 0x3d, 0x50, 0x0a, 0xe7, 0x20, 0xdf, 0xc0, 0xde, 0xb0, 0x6a, 0x44, 0x56, - 0x7d, 0xf1, 0x1c, 0x61, 0x05, 0x5c, 0x26, 0x34, 0x12, 0xd9, 0x91, 0x54, 0xb5, 0xed, 0xd7, 0xae, - 0x76, 0x98, 0x57, 0xc3, 0xc3, 0x7b, 0x6e, 0x64, 0x4d, 0x05, 0xfc, 0x1e, 0xda, 0x49, 0x80, 0x0a, - 0x1e, 0x75, 0x1b, 0xfa, 0xba, 0x8a, 0xee, 0x10, 0x8d, 0x92, 0x7c, 0x15, 0xbf, 0x8f, 0x76, 0x43, - 0x10, 0x82, 0x4e, 0xa0, 0xbb, 0xa3, 0x89, 0x8f, 0x72, 0xe2, 0xee, 0x79, 0x06, 0x93, 0xe5, 0x7a, - 0xff, 0x77, 0x03, 0xed, 0x9e, 0x71, 0x77, 0xc8, 0x84, 0xc4, 0x3f, 0xdc, 0x8b, 0xaf, 0xf5, 0xb0, - 0xc3, 0x28, 0xb5, 0x0e, 0xef, 0xe3, 0xbc, 0x4e, 0x73, 0x89, 0x54, 0xa2, 0xfb, 0x39, 0x6a, 0x30, - 0x09, 0xa1, 0x6a, 0x75, 0xfd, 0xa8, 0x7d, 0xdc, 0xdd, 0x94, 0x3c, 0x67, 0x2f, 0x37, 0x69, 0x7c, - 0xad, 0xe8, 0x24, 0x53, 0xf5, 0xff, 0xae, 0xeb, 0x8d, 0xaa, 0x2c, 0xe3, 0x01, 0x6a, 0xc7, 0x34, - 0xa1, 0x41, 0x00, 0x01, 0x13, 0xa1, 0xde, 0x6b, 0xc3, 0x79, 0x94, 0x2e, 0x7a, 0xed, 0x8b, 0x12, - 0x26, 0x55, 0x8e, 0x92, 0x78, 0x3c, 0x8c, 0x03, 0x50, 0x97, 0x99, 0xc5, 0x2d, 0x97, 0x9c, 0x96, - 0x30, 0xa9, 0x72, 0xf0, 0x73, 0x74, 0x40, 0x3d, 0xc9, 0xe6, 0xf0, 0x15, 0x50, 0x3f, 0x60, 0x11, - 0x8c, 0xc0, 0xe3, 0x91, 0x9f, 0x3d, 0x9d, 0xba, 0xf3, 0x56, 0xba, 0xe8, 0x1d, 0x7c, 0xb9, 0x8e, - 0x40, 0xd6, 0xeb, 0xf0, 0x8f, 0xa8, 0x29, 0x20, 0x00, 0x4f, 0xf2, 0x24, 0x0f, 0xcb, 0xd3, 0x07, - 0xde, 0x2f, 0x75, 0x21, 0x18, 0xe5, 0x52, 0xa7, 0xa3, 0x2e, 0x78, 0xf9, 0x47, 0x0a, 0x4b, 0xfc, - 0x29, 0xda, 0x0f, 0x69, 0x34, 0xa3, 0x05, 0x53, 0xa7, 0xa4, 0xe9, 0xe0, 0x74, 0xd1, 0xdb, 0x3f, - 0x5f, 0x59, 0x21, 0x77, 0x98, 0xf8, 0x1b, 0xd4, 0x94, 0x10, 0xc6, 0x01, 0x95, 0x59, 0x64, 0xda, - 0xc7, 0xef, 0x56, 0xfb, 0xa3, 0x5e, 0x9e, 0xda, 0xc8, 0x05, 0xf7, 0x2f, 0x73, 0x9a, 0x1e, 0x31, - 0x45, 0xbf, 0x97, 0x28, 0x29, 0x6c, 0xf0, 0x09, 0xea, 0xb8, 0xd4, 0x9b, 0xf2, 0xf1, 0x78, 0xc8, - 0x42, 0x26, 0xbb, 0xbb, 0xfa, 0xca, 0x1f, 0xa7, 0x8b, 0x5e, 0xc7, 0xa9, 0xe0, 0x64, 0x85, 0xd5, - 0xff, 0xad, 0x8e, 0x5a, 0xc5, 0xf8, 0xc1, 0xdf, 0x22, 0xe4, 0x2d, 0x1f, 0xbb, 0xe8, 0x1a, 0x3a, - 0x38, 0xef, 0x6c, 0x0a, 0x4e, 0x31, 0x16, 0xca, 0x19, 0x5a, 0x40, 0x82, 0x54, 0x8c, 0xf0, 0x77, - 0xa8, 0x25, 0x24, 0x4d, 0xa4, 0x7e, 0xb6, 0x5b, 0xaf, 0xfd, 0x6c, 0xf7, 0xd2, 0x45, 0xaf, 0x35, - 0x5a, 0x1a, 0x90, 0xd2, 0x0b, 0x8f, 0xd1, 0x7e, 0x99, 0xa0, 0xff, 0x39, 0x82, 0x74, 0xbb, 0x4e, - 0x57, 0x5c, 0xc8, 0x1d, 0x57, 0x35, 0x08, 0xb2, 0x88, 0xe9, 0x1c, 0x35, 0xca, 0x41, 0x90, 0xe5, - 0x91, 0xe4, 0xab, 0xd8, 0x46, 0x2d, 0x31, 0xf3, 0x3c, 0x00, 0x1f, 0x7c, 0x9d, 0x86, 0x86, 0xf3, - 0x46, 0x4e, 0x6d, 0x8d, 0x96, 0x0b, 0xa4, 0xe4, 0x28, 0xe3, 0x31, 0x65, 0x01, 0xf8, 0x3a, 0x05, - 0x15, 0xe3, 0x67, 0x1a, 0x25, 0xf9, 0xaa, 0x73, 0x74, 0x73, 0x6b, 0xd6, 0x5e, 0xdc, 0x9a, 0xb5, - 0x97, 0xb7, 0x66, 0xed, 0x97, 0xd4, 0x34, 0x6e, 0x52, 0xd3, 0x78, 0x91, 0x9a, 0xc6, 0xcb, 0xd4, - 0x34, 0xfe, 0x4c, 0x4d, 0xe3, 0xd7, 0xbf, 0xcc, 0xda, 0xf7, 0x5b, 0xf3, 0xc1, 0xbf, 0x01, 0x00, - 0x00, 0xff, 0xff, 0xce, 0x80, 0xf2, 0xbe, 0x96, 0x08, 0x00, 0x00, + // 929 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x54, 0x5d, 0x6f, 0xe3, 0x44, + 0x14, 0xad, 0x9b, 0xa6, 0x4d, 0xa6, 0x1f, 0x5b, 0x06, 0x55, 0x1b, 0x0a, 0xb2, 0x97, 0x20, 0xa1, + 0x82, 0x84, 0x4d, 0x4b, 0x85, 0x10, 0x02, 0xa4, 0x75, 0x51, 0x25, 0xaa, 0x54, 0x5b, 0x26, 0x59, + 0x21, 0x21, 0x90, 0x18, 0xdb, 0x37, 0x89, 0x89, 0xed, 0xb1, 0x3c, 0x93, 0x48, 0x7d, 0xe3, 0x27, + 0xf0, 0x23, 0x10, 0x7f, 0x82, 0x77, 0xd4, 0xc7, 0x7d, 0xdc, 0x27, 0x8b, 0x9a, 0x1f, 0xc0, 0xfb, + 0x3e, 0xa1, 0x19, 0x3b, 0xb6, 0xd3, 0x26, 0xa2, 0xcb, 0x5b, 0xe6, 0xcc, 0x39, 0xe7, 0x5e, 0xdf, + 0x39, 0xb9, 0xe8, 0x8b, 0xc9, 0x67, 0xdc, 0xf4, 0x99, 0x35, 0x99, 0x3a, 0x90, 0x44, 0x20, 0x80, + 0x5b, 0x33, 0x88, 0x3c, 0x96, 0x58, 0xc5, 0x05, 0x8d, 0x7d, 0xcb, 0xa1, 0xc2, 0x1d, 0x5b, 0xb3, + 0x63, 0x6b, 0x04, 0x11, 0x24, 0x54, 0x80, 0x67, 0xc6, 0x09, 0x13, 0x0c, 0xbf, 0x99, 0x93, 0x4c, + 0x1a, 0xfb, 0xa6, 0x22, 0x99, 0xb3, 0xe3, 0xc3, 0x8f, 0x46, 0xbe, 0x18, 0x4f, 0x1d, 0xd3, 0x65, + 0xa1, 0x35, 0x62, 0x23, 0x66, 0x29, 0xae, 0x33, 0x1d, 0xaa, 0x93, 0x3a, 0xa8, 0x5f, 0xb9, 0xc7, + 0x61, 0xb7, 0x56, 0xc8, 0x65, 0x09, 0x2c, 0xa9, 0x73, 0x78, 0x5a, 0x71, 0x42, 0xea, 0x8e, 0xfd, + 0x08, 0x92, 0x6b, 0x2b, 0x9e, 0x8c, 0x24, 0xc0, 0xad, 0x10, 0x04, 0x5d, 0xa6, 0xb2, 0x56, 0xa9, + 0x92, 0x69, 0x24, 0xfc, 0x10, 0xee, 0x09, 0x3e, 0xfd, 0x2f, 0x01, 0x77, 0xc7, 0x10, 0xd2, 0xbb, + 0xba, 0xee, 0x3f, 0x1a, 0x6a, 0x5c, 0x30, 0x07, 0xff, 0x84, 0x5a, 0xb2, 0x17, 0x8f, 0x0a, 0xda, + 0xd1, 0x9e, 0x68, 0x47, 0xdb, 0x27, 0x1f, 0x9b, 0xd5, 0x84, 0x4a, 0x4b, 0x33, 0x9e, 0x8c, 0x24, + 0xc0, 0x4d, 0xc9, 0x36, 0x67, 0xc7, 0xe6, 0x33, 0xe7, 0x67, 0x70, 0xc5, 0x25, 0x08, 0x6a, 0xe3, + 0x9b, 0xd4, 0x58, 0xcb, 0x52, 0x03, 0x55, 0x18, 0x29, 0x5d, 0xf1, 0x57, 0x68, 0x83, 0xc7, 0xe0, + 0x76, 0xd6, 0x95, 0xfb, 0x3b, 0xe6, 0x92, 0xf9, 0x9b, 0x17, 0xcc, 0xe9, 0xc7, 0xe0, 0xda, 0x3b, + 0x85, 0xd3, 0x86, 0x3c, 0x11, 0xa5, 0xc3, 0xe7, 0x68, 0x93, 0x0b, 0x2a, 0xa6, 0xbc, 0xd3, 0x50, + 0x0e, 0xfa, 0x4a, 0x07, 0xc5, 0xb2, 0xf7, 0x0a, 0x8f, 0xcd, 0xfc, 0x4c, 0x0a, 0x75, 0xf7, 0xcf, + 0x06, 0xda, 0xb9, 0x60, 0xce, 0x19, 0x8b, 0x3c, 0x5f, 0xf8, 0x2c, 0xc2, 0xa7, 0x68, 0x43, 0x5c, + 0xc7, 0xa0, 0x3e, 0xbb, 0x6d, 0x3f, 0x99, 0x97, 0x1e, 0x5c, 0xc7, 0xf0, 0x2a, 0x35, 0xf6, 0xeb, + 0x5c, 0x89, 0x11, 0xc5, 0xc6, 0xbd, 0xb2, 0x9d, 0x75, 0xa5, 0x3b, 0x5d, 0x2c, 0xf7, 0x2a, 0x35, + 0x96, 0xa4, 0xc3, 0x2c, 0x9d, 0x16, 0x9b, 0xc2, 0x23, 0xb4, 0x1b, 0x50, 0x2e, 0xae, 0x12, 0xe6, + 0xc0, 0xc0, 0x0f, 0xa1, 0xf8, 0xc6, 0x0f, 0x1f, 0xf6, 0x06, 0x52, 0x61, 0x1f, 0x14, 0x0d, 0xec, + 0xf6, 0xea, 0x46, 0x64, 0xd1, 0x17, 0xcf, 0x10, 0x96, 0xc0, 0x20, 0xa1, 0x11, 0xcf, 0x3f, 0x49, + 0x56, 0xdb, 0x78, 0xed, 0x6a, 0x87, 0x45, 0x35, 0xdc, 0xbb, 0xe7, 0x46, 0x96, 0x54, 0xc0, 0xef, + 0xa3, 0xcd, 0x04, 0x28, 0x67, 0x51, 0xa7, 0xa9, 0xc6, 0x55, 0xbe, 0x0e, 0x51, 0x28, 0x29, 0x6e, + 0xf1, 0x07, 0x68, 0x2b, 0x04, 0xce, 0xe9, 0x08, 0x3a, 0x9b, 0x8a, 0xf8, 0xa8, 0x20, 0x6e, 0x5d, + 0xe6, 0x30, 0x99, 0xdf, 0x77, 0x7f, 0xd7, 0xd0, 0xd6, 0x05, 0x73, 0x7a, 0x3e, 0x17, 0xf8, 0x87, + 0x7b, 0xf1, 0x35, 0x1f, 0xf6, 0x31, 0x52, 0xad, 0xc2, 0xbb, 0x5f, 0xd4, 0x69, 0xcd, 0x91, 0x5a, + 0x74, 0xbf, 0x44, 0x4d, 0x5f, 0x40, 0x28, 0x9f, 0xba, 0x71, 0xb4, 0x7d, 0xd2, 0x59, 0x95, 0x3c, + 0x7b, 0xb7, 0x30, 0x69, 0x7e, 0x23, 0xe9, 0x24, 0x57, 0x75, 0xff, 0xd8, 0x50, 0x8d, 0xca, 0x2c, + 0xe3, 0x63, 0xb4, 0x1d, 0xd3, 0x84, 0x06, 0x01, 0x04, 0x3e, 0x0f, 0x55, 0xaf, 0x4d, 0xfb, 0x51, + 0x96, 0x1a, 0xdb, 0x57, 0x15, 0x4c, 0xea, 0x1c, 0x29, 0x71, 0x59, 0x18, 0x07, 0x20, 0x87, 0x99, + 0xc7, 0xad, 0x90, 0x9c, 0x55, 0x30, 0xa9, 0x73, 0xf0, 0x33, 0x74, 0x40, 0x5d, 0xe1, 0xcf, 0xe0, + 0x6b, 0xa0, 0x5e, 0xe0, 0x47, 0xd0, 0x07, 0x97, 0x45, 0x5e, 0xfe, 0xd7, 0x69, 0xd8, 0x6f, 0x65, + 0xa9, 0x71, 0xf0, 0x74, 0x19, 0x81, 0x2c, 0xd7, 0xe1, 0x1f, 0x51, 0x8b, 0x43, 0x00, 0xae, 0x60, + 0x49, 0x11, 0x96, 0x4f, 0x1e, 0x38, 0x5f, 0xea, 0x40, 0xd0, 0x2f, 0xa4, 0xf6, 0x8e, 0x1c, 0xf0, + 0xfc, 0x44, 0x4a, 0x4b, 0xfc, 0x39, 0xda, 0x0b, 0x69, 0x34, 0xa5, 0x25, 0x53, 0xa5, 0xa4, 0x65, + 0xe3, 0x2c, 0x35, 0xf6, 0x2e, 0x17, 0x6e, 0xc8, 0x1d, 0x26, 0xfe, 0x16, 0xb5, 0x04, 0x84, 0x71, + 0x40, 0x45, 0x1e, 0x99, 0xed, 0x93, 0xf7, 0xea, 0xef, 0x23, 0xff, 0x79, 0xb2, 0x91, 0x2b, 0xe6, + 0x0d, 0x0a, 0x9a, 0x5a, 0x31, 0xe5, 0x7b, 0xcf, 0x51, 0x52, 0xda, 0xe0, 0x53, 0xb4, 0xe3, 0x50, + 0x77, 0xc2, 0x86, 0xc3, 0x9e, 0x1f, 0xfa, 0xa2, 0xb3, 0xa5, 0x46, 0xbe, 0x9f, 0xa5, 0xc6, 0x8e, + 0x5d, 0xc3, 0xc9, 0x02, 0x0b, 0x3f, 0x47, 0x8f, 0x85, 0x08, 0x8a, 0x89, 0x3d, 0x1d, 0x0a, 0x48, + 0xce, 0xfd, 0xc8, 0xe7, 0x63, 0xf0, 0x3a, 0x2d, 0x65, 0xf0, 0x76, 0x96, 0x1a, 0x8f, 0x07, 0x83, + 0xde, 0x32, 0x0a, 0x59, 0xa5, 0xed, 0xfe, 0xd6, 0x40, 0xed, 0x72, 0xab, 0xe1, 0xe7, 0x08, 0xb9, + 0xf3, 0x1d, 0xc2, 0x3b, 0x9a, 0xca, 0xe3, 0xbb, 0xab, 0xf2, 0x58, 0x6e, 0x9b, 0x6a, 0x35, 0x97, + 0x10, 0x27, 0x35, 0x23, 0xfc, 0x1d, 0x6a, 0x73, 0x41, 0x13, 0xa1, 0xb6, 0xc1, 0xfa, 0x6b, 0x6f, + 0x83, 0xdd, 0x2c, 0x35, 0xda, 0xfd, 0xb9, 0x01, 0xa9, 0xbc, 0xf0, 0x10, 0xed, 0x55, 0xc1, 0xfc, + 0x9f, 0x9b, 0x4d, 0xa5, 0xe0, 0x6c, 0xc1, 0x85, 0xdc, 0x71, 0x95, 0xfb, 0x25, 0x4f, 0xae, 0x8a, + 0x67, 0xb3, 0xda, 0x2f, 0x79, 0xcc, 0x49, 0x71, 0x8b, 0x2d, 0xd4, 0xe6, 0x53, 0xd7, 0x05, 0xf0, + 0xc0, 0x53, 0x21, 0x6b, 0xda, 0x6f, 0x14, 0xd4, 0x76, 0x7f, 0x7e, 0x41, 0x2a, 0x8e, 0x34, 0x1e, + 0x52, 0x3f, 0x00, 0x4f, 0x85, 0xab, 0x66, 0x7c, 0xae, 0x50, 0x52, 0xdc, 0xda, 0x47, 0x37, 0xb7, + 0xfa, 0xda, 0x8b, 0x5b, 0x7d, 0xed, 0xe5, 0xad, 0xbe, 0xf6, 0x4b, 0xa6, 0x6b, 0x37, 0x99, 0xae, + 0xbd, 0xc8, 0x74, 0xed, 0x65, 0xa6, 0x6b, 0x7f, 0x65, 0xba, 0xf6, 0xeb, 0xdf, 0xfa, 0xda, 0xf7, + 0xeb, 0xb3, 0xe3, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x13, 0xdb, 0x98, 0xf9, 0xb8, 0x08, 0x00, + 0x00, } diff --git a/vendor/k8s.io/api/batch/v1/generated.proto b/vendor/k8s.io/api/batch/v1/generated.proto index b0306f3bc..039149dab 100644 --- a/vendor/k8s.io/api/batch/v1/generated.proto +++ b/vendor/k8s.io/api/batch/v1/generated.proto @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -25,7 +25,6 @@ import "k8s.io/api/core/v1/generated.proto"; import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; -import "k8s.io/apimachinery/pkg/util/intstr/generated.proto"; // Package-wide variables from generator "generated". option go_package = "v1"; @@ -135,6 +134,18 @@ message JobSpec { // Describes the pod that will be created when executing a job. // More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/ optional k8s.io.api.core.v1.PodTemplateSpec template = 6; + + // ttlSecondsAfterFinished limits the lifetime of a Job that has finished + // execution (either Complete or Failed). If this field is set, + // ttlSecondsAfterFinished after the Job finishes, it is eligible to be + // automatically deleted. When the Job is being deleted, its lifecycle + // guarantees (e.g. finalizers) will be honored. If this field is unset, + // the Job won't be automatically deleted. If this field is set to zero, + // the Job becomes eligible to be deleted immediately after it finishes. + // This field is alpha-level and is only honored by servers that enable the + // TTLAfterFinished feature. + // +optional + optional int32 ttlSecondsAfterFinished = 8; } // JobStatus represents the current state of a Job. diff --git a/vendor/k8s.io/api/batch/v1/types.go b/vendor/k8s.io/api/batch/v1/types.go index 84abb1a90..8dad9043d 100644 --- a/vendor/k8s.io/api/batch/v1/types.go +++ b/vendor/k8s.io/api/batch/v1/types.go @@ -114,6 +114,18 @@ type JobSpec struct { // Describes the pod that will be created when executing a job. // More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/ Template v1.PodTemplateSpec `json:"template" protobuf:"bytes,6,opt,name=template"` + + // ttlSecondsAfterFinished limits the lifetime of a Job that has finished + // execution (either Complete or Failed). If this field is set, + // ttlSecondsAfterFinished after the Job finishes, it is eligible to be + // automatically deleted. When the Job is being deleted, its lifecycle + // guarantees (e.g. finalizers) will be honored. If this field is unset, + // the Job won't be automatically deleted. If this field is set to zero, + // the Job becomes eligible to be deleted immediately after it finishes. + // This field is alpha-level and is only honored by servers that enable the + // TTLAfterFinished feature. + // +optional + TTLSecondsAfterFinished *int32 `json:"ttlSecondsAfterFinished,omitempty" protobuf:"varint,8,opt,name=ttlSecondsAfterFinished"` } // JobStatus represents the current state of a Job. diff --git a/vendor/k8s.io/api/batch/v1/types_swagger_doc_generated.go b/vendor/k8s.io/api/batch/v1/types_swagger_doc_generated.go index 0ddf4b116..d8e2bdd78 100644 --- a/vendor/k8s.io/api/batch/v1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/batch/v1/types_swagger_doc_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2016 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -26,7 +26,7 @@ package v1 // // Those methods can be generated by using hack/update-generated-swagger-docs.sh -// AUTO-GENERATED FUNCTIONS START HERE +// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT. var map_Job = map[string]string{ "": "Job represents the configuration of a single job.", "metadata": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", @@ -63,14 +63,15 @@ func (JobList) SwaggerDoc() map[string]string { } var map_JobSpec = map[string]string{ - "": "JobSpec describes how the job execution will look like.", - "parallelism": "Specifies the maximum desired number of pods the job should run at any given time. The actual number of pods running in steady state will be less than this number when ((.spec.completions - .status.successful) < .spec.parallelism), i.e. when the work left to do is less than max parallelism. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/", - "completions": "Specifies the desired number of successfully finished pods the job should be run with. Setting to nil means that the success of any pod signals the success of all pods, and allows parallelism to have any positive value. Setting to 1 means that parallelism is limited to 1 and the success of that pod signals the success of the job. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/", - "activeDeadlineSeconds": "Specifies the duration in seconds relative to the startTime that the job may be active before the system tries to terminate it; value must be positive integer", - "backoffLimit": "Specifies the number of retries before marking this job failed. Defaults to 6", - "selector": "A label query over pods that should match the pod count. Normally, the system sets this field for you. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", - "manualSelector": "manualSelector controls generation of pod labels and pod selectors. Leave `manualSelector` unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template. When true, the user is responsible for picking unique labels and specifying the selector. Failure to pick a unique label may cause this and other jobs to not function correctly. However, You may see `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` API. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector", - "template": "Describes the pod that will be created when executing a job. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/", + "": "JobSpec describes how the job execution will look like.", + "parallelism": "Specifies the maximum desired number of pods the job should run at any given time. The actual number of pods running in steady state will be less than this number when ((.spec.completions - .status.successful) < .spec.parallelism), i.e. when the work left to do is less than max parallelism. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/", + "completions": "Specifies the desired number of successfully finished pods the job should be run with. Setting to nil means that the success of any pod signals the success of all pods, and allows parallelism to have any positive value. Setting to 1 means that parallelism is limited to 1 and the success of that pod signals the success of the job. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/", + "activeDeadlineSeconds": "Specifies the duration in seconds relative to the startTime that the job may be active before the system tries to terminate it; value must be positive integer", + "backoffLimit": "Specifies the number of retries before marking this job failed. Defaults to 6", + "selector": "A label query over pods that should match the pod count. Normally, the system sets this field for you. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", + "manualSelector": "manualSelector controls generation of pod labels and pod selectors. Leave `manualSelector` unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template. When true, the user is responsible for picking unique labels and specifying the selector. Failure to pick a unique label may cause this and other jobs to not function correctly. However, You may see `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` API. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector", + "template": "Describes the pod that will be created when executing a job. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/", + "ttlSecondsAfterFinished": "ttlSecondsAfterFinished limits the lifetime of a Job that has finished execution (either Complete or Failed). If this field is set, ttlSecondsAfterFinished after the Job finishes, it is eligible to be automatically deleted. When the Job is being deleted, its lifecycle guarantees (e.g. finalizers) will be honored. If this field is unset, the Job won't be automatically deleted. If this field is set to zero, the Job becomes eligible to be deleted immediately after it finishes. This field is alpha-level and is only honored by servers that enable the TTLAfterFinished feature.", } func (JobSpec) SwaggerDoc() map[string]string { diff --git a/vendor/k8s.io/api/batch/v1/zz_generated.deepcopy.go b/vendor/k8s.io/api/batch/v1/zz_generated.deepcopy.go index a7179849b..88cb01678 100644 --- a/vendor/k8s.io/api/batch/v1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/api/batch/v1/zz_generated.deepcopy.go @@ -1,7 +1,7 @@ // +build !ignore_autogenerated /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ limitations under the License. package v1 import ( - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" ) @@ -109,59 +109,40 @@ func (in *JobSpec) DeepCopyInto(out *JobSpec) { *out = *in if in.Parallelism != nil { in, out := &in.Parallelism, &out.Parallelism - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } if in.Completions != nil { in, out := &in.Completions, &out.Completions - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } if in.ActiveDeadlineSeconds != nil { in, out := &in.ActiveDeadlineSeconds, &out.ActiveDeadlineSeconds - if *in == nil { - *out = nil - } else { - *out = new(int64) - **out = **in - } + *out = new(int64) + **out = **in } if in.BackoffLimit != nil { in, out := &in.BackoffLimit, &out.BackoffLimit - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } if in.Selector != nil { in, out := &in.Selector, &out.Selector - if *in == nil { - *out = nil - } else { - *out = new(meta_v1.LabelSelector) - (*in).DeepCopyInto(*out) - } + *out = new(metav1.LabelSelector) + (*in).DeepCopyInto(*out) } if in.ManualSelector != nil { in, out := &in.ManualSelector, &out.ManualSelector - if *in == nil { - *out = nil - } else { - *out = new(bool) - **out = **in - } + *out = new(bool) + **out = **in } in.Template.DeepCopyInto(&out.Template) + if in.TTLSecondsAfterFinished != nil { + in, out := &in.TTLSecondsAfterFinished, &out.TTLSecondsAfterFinished + *out = new(int32) + **out = **in + } return } @@ -187,19 +168,11 @@ func (in *JobStatus) DeepCopyInto(out *JobStatus) { } if in.StartTime != nil { in, out := &in.StartTime, &out.StartTime - if *in == nil { - *out = nil - } else { - *out = (*in).DeepCopy() - } + *out = (*in).DeepCopy() } if in.CompletionTime != nil { in, out := &in.CompletionTime, &out.CompletionTime - if *in == nil { - *out = nil - } else { - *out = (*in).DeepCopy() - } + *out = (*in).DeepCopy() } return } diff --git a/vendor/k8s.io/api/batch/v1beta1/BUILD b/vendor/k8s.io/api/batch/v1beta1/BUILD deleted file mode 100644 index 3f0197b9c..000000000 --- a/vendor/k8s.io/api/batch/v1beta1/BUILD +++ /dev/null @@ -1,46 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "generated.pb.go", - "register.go", - "types.go", - "types_swagger_doc_generated.go", - "zz_generated.deepcopy.go", - ], - importpath = "k8s.io/api/batch/v1beta1", - deps = [ - "//vendor/github.com/gogo/protobuf/proto:go_default_library", - "//vendor/k8s.io/api/batch/v1:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) - -filegroup( - name = "go_default_library_protos", - srcs = ["generated.proto"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/api/batch/v1beta1/generated.pb.go b/vendor/k8s.io/api/batch/v1beta1/generated.pb.go index 6544184db..36342a3af 100644 --- a/vendor/k8s.io/api/batch/v1beta1/generated.pb.go +++ b/vendor/k8s.io/api/batch/v1beta1/generated.pb.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -14,9 +14,8 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: k8s.io/kubernetes/vendor/k8s.io/api/batch/v1beta1/generated.proto -// DO NOT EDIT! /* Package v1beta1 is a generated protocol buffer package. @@ -336,24 +335,6 @@ func (m *JobTemplateSpec) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Generated(dAtA []byte, offset int, v uint64) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - dAtA[offset+4] = uint8(v >> 32) - dAtA[offset+5] = uint8(v >> 40) - dAtA[offset+6] = uint8(v >> 48) - dAtA[offset+7] = uint8(v >> 56) - return offset + 8 -} -func encodeFixed32Generated(dAtA []byte, offset int, v uint32) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - return offset + 4 -} func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -1456,54 +1437,54 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 784 bytes of a gzipped FileDescriptorProto + // 771 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x94, 0xcf, 0x6f, 0xe3, 0x44, 0x14, 0xc7, 0xe3, 0x34, 0xbf, 0x76, 0xc2, 0x42, 0xd7, 0xa0, 0x5d, 0x2b, 0x20, 0x27, 0x64, 0xb5, - 0x22, 0x20, 0x76, 0x4c, 0x0b, 0x42, 0x9c, 0x90, 0xd6, 0x8b, 0x16, 0x28, 0x45, 0x8b, 0x9c, 0x22, - 0x24, 0x54, 0xa1, 0x8e, 0xc7, 0x2f, 0xc9, 0x34, 0xb6, 0xc7, 0xf2, 0x8c, 0x23, 0xe5, 0xc6, 0x85, - 0x3b, 0xff, 0x08, 0x27, 0xfe, 0x89, 0x88, 0x53, 0x8f, 0x3d, 0x45, 0xd4, 0xfc, 0x17, 0x9c, 0x90, - 0x27, 0xce, 0x8f, 0xe6, 0x47, 0x5b, 0x2e, 0xbd, 0x79, 0x9e, 0xbf, 0xdf, 0xcf, 0xbc, 0x79, 0xef, - 0xcd, 0xa0, 0x17, 0xc3, 0x2f, 0x04, 0x66, 0xdc, 0x1a, 0x26, 0x2e, 0xc4, 0x21, 0x48, 0x10, 0xd6, - 0x08, 0x42, 0x8f, 0xc7, 0x56, 0xfe, 0x83, 0x44, 0xcc, 0x72, 0x89, 0xa4, 0x03, 0x6b, 0x74, 0xe0, - 0x82, 0x24, 0x07, 0x56, 0x1f, 0x42, 0x88, 0x89, 0x04, 0x0f, 0x47, 0x31, 0x97, 0x5c, 0x37, 0x66, - 0x4a, 0x4c, 0x22, 0x86, 0x95, 0x12, 0xe7, 0xca, 0xc6, 0xf3, 0x3e, 0x93, 0x83, 0xc4, 0xc5, 0x94, - 0x07, 0x56, 0x9f, 0xf7, 0xb9, 0xa5, 0x0c, 0x6e, 0xd2, 0x53, 0x2b, 0xb5, 0x50, 0x5f, 0x33, 0x50, - 0xe3, 0xe9, 0x96, 0x2d, 0xd7, 0x77, 0x6b, 0xb4, 0x57, 0x44, 0x94, 0xc7, 0xb0, 0x4d, 0xf3, 0xd9, - 0x52, 0x13, 0x10, 0x3a, 0x60, 0x21, 0xc4, 0x63, 0x2b, 0x1a, 0xf6, 0xb3, 0x80, 0xb0, 0x02, 0x90, - 0x64, 0x9b, 0xcb, 0xda, 0xe5, 0x8a, 0x93, 0x50, 0xb2, 0x00, 0x36, 0x0c, 0x9f, 0xdf, 0x66, 0x10, - 0x74, 0x00, 0x01, 0xd9, 0xf0, 0x7d, 0xba, 0xcb, 0x97, 0x48, 0xe6, 0x5b, 0x2c, 0x94, 0x42, 0xc6, - 0xeb, 0xa6, 0xf6, 0x6f, 0x45, 0x54, 0x7d, 0x19, 0xf3, 0xf0, 0x88, 0xbb, 0xfa, 0x19, 0xaa, 0x65, - 0x87, 0xf0, 0x88, 0x24, 0x86, 0xd6, 0xd2, 0x3a, 0xf5, 0xc3, 0x4f, 0xf0, 0xb2, 0x09, 0x0b, 0x26, - 0x8e, 0x86, 0xfd, 0x2c, 0x20, 0x70, 0xa6, 0xc6, 0xa3, 0x03, 0xfc, 0xda, 0x3d, 0x07, 0x2a, 0xbf, - 0x07, 0x49, 0x6c, 0x7d, 0x32, 0x6d, 0x16, 0xd2, 0x69, 0x13, 0x2d, 0x63, 0xce, 0x82, 0xaa, 0x7f, - 0x8d, 0x4a, 0x22, 0x02, 0x6a, 0x14, 0x15, 0xfd, 0x19, 0xde, 0xd5, 0x62, 0x9c, 0xa7, 0xd4, 0x8d, - 0x80, 0xda, 0x6f, 0xe4, 0xc8, 0x52, 0xb6, 0x72, 0x14, 0x40, 0x7f, 0x8d, 0x2a, 0x42, 0x12, 0x99, - 0x08, 0x63, 0x4f, 0xa1, 0x3e, 0xb8, 0x1d, 0xa5, 0xe4, 0xf6, 0x9b, 0x39, 0xac, 0x32, 0x5b, 0x3b, - 0x39, 0xa6, 0xfd, 0xa7, 0x86, 0xea, 0xb9, 0xf2, 0x98, 0x09, 0xa9, 0x9f, 0x6e, 0xd4, 0x02, 0xdf, - 0xad, 0x16, 0x99, 0x5b, 0x55, 0x62, 0x3f, 0xdf, 0xa9, 0x36, 0x8f, 0xac, 0xd4, 0xe1, 0x15, 0x2a, - 0x33, 0x09, 0x81, 0x30, 0x8a, 0xad, 0xbd, 0x4e, 0xfd, 0xf0, 0xfd, 0x5b, 0xb3, 0xb7, 0x1f, 0xe6, - 0xb4, 0xf2, 0xb7, 0x99, 0xcf, 0x99, 0xd9, 0xdb, 0x7f, 0x94, 0x16, 0x59, 0x67, 0xc5, 0xd1, 0x3f, - 0x46, 0xb5, 0x6c, 0x38, 0xbc, 0xc4, 0x07, 0x95, 0xf5, 0x83, 0x65, 0x16, 0xdd, 0x3c, 0xee, 0x2c, - 0x14, 0xfa, 0x8f, 0xe8, 0x89, 0x90, 0x24, 0x96, 0x2c, 0xec, 0x7f, 0x05, 0xc4, 0xf3, 0x59, 0x08, - 0x5d, 0xa0, 0x3c, 0xf4, 0x84, 0x6a, 0xd0, 0x9e, 0xfd, 0x6e, 0x3a, 0x6d, 0x3e, 0xe9, 0x6e, 0x97, - 0x38, 0xbb, 0xbc, 0xfa, 0x29, 0x7a, 0x44, 0x79, 0x48, 0x93, 0x38, 0x86, 0x90, 0x8e, 0x7f, 0xe0, - 0x3e, 0xa3, 0x63, 0xd5, 0xa6, 0x07, 0x36, 0xce, 0xb3, 0x79, 0xf4, 0x72, 0x5d, 0xf0, 0xef, 0xb6, - 0xa0, 0xb3, 0x09, 0xd2, 0x9f, 0xa1, 0xaa, 0x48, 0x44, 0x04, 0xa1, 0x67, 0x94, 0x5a, 0x5a, 0xa7, - 0x66, 0xd7, 0xd3, 0x69, 0xb3, 0xda, 0x9d, 0x85, 0x9c, 0xf9, 0x3f, 0xfd, 0x0c, 0xd5, 0xcf, 0xb9, - 0x7b, 0x02, 0x41, 0xe4, 0x13, 0x09, 0x46, 0x59, 0xb5, 0xf0, 0xc3, 0xdd, 0x75, 0x3e, 0x5a, 0x8a, - 0xd5, 0xd0, 0xbd, 0x9d, 0x67, 0x5a, 0x5f, 0xf9, 0xe1, 0xac, 0x22, 0xf5, 0x5f, 0x50, 0x43, 0x24, - 0x94, 0x82, 0x10, 0xbd, 0xc4, 0x3f, 0xe2, 0xae, 0xf8, 0x86, 0x09, 0xc9, 0xe3, 0xf1, 0x31, 0x0b, - 0x98, 0x34, 0x2a, 0x2d, 0xad, 0x53, 0xb6, 0xcd, 0x74, 0xda, 0x6c, 0x74, 0x77, 0xaa, 0x9c, 0x1b, - 0x08, 0xba, 0x83, 0x1e, 0xf7, 0x08, 0xf3, 0xc1, 0xdb, 0x60, 0x57, 0x15, 0xbb, 0x91, 0x4e, 0x9b, - 0x8f, 0x5f, 0x6d, 0x55, 0x38, 0x3b, 0x9c, 0xed, 0xbf, 0x34, 0xf4, 0xf0, 0xda, 0x7d, 0xd0, 0xbf, - 0x43, 0x15, 0x42, 0x25, 0x1b, 0x65, 0xf3, 0x92, 0x8d, 0xe2, 0xd3, 0xd5, 0x12, 0x65, 0x0f, 0xe1, - 0xf2, 0x7e, 0x3b, 0xd0, 0x83, 0xac, 0x13, 0xb0, 0xbc, 0x44, 0x2f, 0x94, 0xd5, 0xc9, 0x11, 0xba, - 0x8f, 0xf6, 0x7d, 0x22, 0xe4, 0x7c, 0xd4, 0x4e, 0x58, 0x00, 0xaa, 0x49, 0xf5, 0xc3, 0x8f, 0xee, - 0x76, 0x79, 0x32, 0x87, 0xfd, 0x4e, 0x3a, 0x6d, 0xee, 0x1f, 0xaf, 0x71, 0x9c, 0x0d, 0x72, 0x7b, - 0xa2, 0xa1, 0xd5, 0xee, 0xdc, 0xc3, 0xf3, 0xf5, 0x13, 0xaa, 0xc9, 0xf9, 0x44, 0x15, 0xff, 0xef, - 0x44, 0x2d, 0x6e, 0xe2, 0x62, 0x9c, 0x16, 0xb0, 0xec, 0xf5, 0x79, 0x6b, 0x4d, 0x7f, 0x0f, 0xc7, - 0xf9, 0xf2, 0xda, 0x6b, 0xfc, 0xde, 0xb6, 0xa3, 0xe0, 0x1b, 0x1e, 0x61, 0xfb, 0xf9, 0xe4, 0xca, - 0x2c, 0x5c, 0x5c, 0x99, 0x85, 0xcb, 0x2b, 0xb3, 0xf0, 0x6b, 0x6a, 0x6a, 0x93, 0xd4, 0xd4, 0x2e, - 0x52, 0x53, 0xbb, 0x4c, 0x4d, 0xed, 0xef, 0xd4, 0xd4, 0x7e, 0xff, 0xc7, 0x2c, 0xfc, 0x5c, 0xcd, - 0x0b, 0xf2, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xc0, 0x78, 0xe4, 0x62, 0x14, 0x08, 0x00, 0x00, + 0x22, 0x20, 0x76, 0x4c, 0x2b, 0x84, 0x38, 0x21, 0xad, 0x17, 0x2d, 0x50, 0x8a, 0x16, 0x39, 0x45, + 0x48, 0xa8, 0x42, 0x1d, 0x8f, 0x5f, 0x92, 0x69, 0x6c, 0x8f, 0xe5, 0x19, 0x47, 0xca, 0x8d, 0x0b, + 0x77, 0xfe, 0x11, 0x4e, 0xfc, 0x13, 0x11, 0xa7, 0x1e, 0x7b, 0x8a, 0xa8, 0xf9, 0x2f, 0x38, 0x21, + 0x4f, 0x9c, 0x1f, 0xcd, 0x8f, 0xb6, 0x7b, 0xe9, 0xcd, 0xf3, 0xe6, 0xfb, 0xfd, 0xcc, 0xf3, 0x7b, + 0x6f, 0x06, 0xbd, 0x18, 0x7e, 0x29, 0x30, 0xe3, 0xd6, 0x30, 0x71, 0x21, 0x0e, 0x41, 0x82, 0xb0, + 0x46, 0x10, 0x7a, 0x3c, 0xb6, 0xf2, 0x0d, 0x12, 0x31, 0xcb, 0x25, 0x92, 0x0e, 0xac, 0xd1, 0x81, + 0x0b, 0x92, 0x1c, 0x58, 0x7d, 0x08, 0x21, 0x26, 0x12, 0x3c, 0x1c, 0xc5, 0x5c, 0x72, 0xdd, 0x98, + 0x29, 0x31, 0x89, 0x18, 0x56, 0x4a, 0x9c, 0x2b, 0x1b, 0xcf, 0xfb, 0x4c, 0x0e, 0x12, 0x17, 0x53, + 0x1e, 0x58, 0x7d, 0xde, 0xe7, 0x96, 0x32, 0xb8, 0x49, 0x4f, 0xad, 0xd4, 0x42, 0x7d, 0xcd, 0x40, + 0x8d, 0xa7, 0x5b, 0x8e, 0x5c, 0x3f, 0xad, 0xd1, 0x5e, 0x11, 0x51, 0x1e, 0xc3, 0x36, 0xcd, 0xe7, + 0x4b, 0x4d, 0x40, 0xe8, 0x80, 0x85, 0x10, 0x8f, 0xad, 0x68, 0xd8, 0xcf, 0x02, 0xc2, 0x0a, 0x40, + 0x92, 0x6d, 0x2e, 0x6b, 0x97, 0x2b, 0x4e, 0x42, 0xc9, 0x02, 0xd8, 0x30, 0x7c, 0x71, 0x9b, 0x41, + 0xd0, 0x01, 0x04, 0x64, 0xdd, 0xd7, 0xfe, 0xbd, 0x88, 0xaa, 0x2f, 0x63, 0x1e, 0x1e, 0x71, 0x57, + 0x3f, 0x43, 0xb5, 0x2c, 0x1f, 0x8f, 0x48, 0x62, 0x68, 0x2d, 0xad, 0x53, 0x3f, 0xfc, 0x0c, 0x2f, + 0xeb, 0xb9, 0xc0, 0xe2, 0x68, 0xd8, 0xcf, 0x02, 0x02, 0x67, 0x6a, 0x3c, 0x3a, 0xc0, 0xaf, 0xdd, + 0x73, 0xa0, 0xf2, 0x07, 0x90, 0xc4, 0xd6, 0x27, 0xd3, 0x66, 0x21, 0x9d, 0x36, 0xd1, 0x32, 0xe6, + 0x2c, 0xa8, 0xfa, 0x37, 0xa8, 0x24, 0x22, 0xa0, 0x46, 0x51, 0xd1, 0x9f, 0xe1, 0x5d, 0xdd, 0xc2, + 0x79, 0x4a, 0xdd, 0x08, 0xa8, 0xfd, 0x56, 0x8e, 0x2c, 0x65, 0x2b, 0x47, 0x01, 0xf4, 0xd7, 0xa8, + 0x22, 0x24, 0x91, 0x89, 0x30, 0xf6, 0x14, 0xea, 0xa3, 0xdb, 0x51, 0x4a, 0x6e, 0xbf, 0x9d, 0xc3, + 0x2a, 0xb3, 0xb5, 0x93, 0x63, 0xda, 0x7f, 0x69, 0xa8, 0x9e, 0x2b, 0x8f, 0x99, 0x90, 0xfa, 0xe9, + 0x46, 0x2d, 0xf0, 0xdd, 0x6a, 0x91, 0xb9, 0x55, 0x25, 0xf6, 0xf3, 0x93, 0x6a, 0xf3, 0xc8, 0x4a, + 0x1d, 0x5e, 0xa1, 0x32, 0x93, 0x10, 0x08, 0xa3, 0xd8, 0xda, 0xeb, 0xd4, 0x0f, 0x3f, 0xbc, 0x35, + 0x7b, 0xfb, 0x61, 0x4e, 0x2b, 0x7f, 0x97, 0xf9, 0x9c, 0x99, 0xbd, 0xfd, 0x67, 0x69, 0x91, 0x75, + 0x56, 0x1c, 0xfd, 0x53, 0x54, 0xcb, 0xfa, 0xec, 0x25, 0x3e, 0xa8, 0xac, 0x1f, 0x2c, 0xb3, 0xe8, + 0xe6, 0x71, 0x67, 0xa1, 0xd0, 0x7f, 0x42, 0x4f, 0x84, 0x24, 0xb1, 0x64, 0x61, 0xff, 0x6b, 0x20, + 0x9e, 0xcf, 0x42, 0xe8, 0x02, 0xe5, 0xa1, 0x27, 0x54, 0x83, 0xf6, 0xec, 0xf7, 0xd3, 0x69, 0xf3, + 0x49, 0x77, 0xbb, 0xc4, 0xd9, 0xe5, 0xd5, 0x4f, 0xd1, 0x23, 0xca, 0x43, 0x9a, 0xc4, 0x31, 0x84, + 0x74, 0xfc, 0x23, 0xf7, 0x19, 0x1d, 0xab, 0x36, 0x3d, 0xb0, 0x71, 0x9e, 0xcd, 0xa3, 0x97, 0xeb, + 0x82, 0xff, 0xb6, 0x05, 0x9d, 0x4d, 0x90, 0xfe, 0x0c, 0x55, 0x45, 0x22, 0x22, 0x08, 0x3d, 0xa3, + 0xd4, 0xd2, 0x3a, 0x35, 0xbb, 0x9e, 0x4e, 0x9b, 0xd5, 0xee, 0x2c, 0xe4, 0xcc, 0xf7, 0xf4, 0x33, + 0x54, 0x3f, 0xe7, 0xee, 0x09, 0x04, 0x91, 0x4f, 0x24, 0x18, 0x65, 0xd5, 0xc2, 0x8f, 0x77, 0xd7, + 0xf9, 0x68, 0x29, 0x56, 0x43, 0xf7, 0x6e, 0x9e, 0x69, 0x7d, 0x65, 0xc3, 0x59, 0x45, 0xea, 0xbf, + 0xa2, 0x86, 0x48, 0x28, 0x05, 0x21, 0x7a, 0x89, 0x7f, 0xc4, 0x5d, 0xf1, 0x2d, 0x13, 0x92, 0xc7, + 0xe3, 0x63, 0x16, 0x30, 0x69, 0x54, 0x5a, 0x5a, 0xa7, 0x6c, 0x9b, 0xe9, 0xb4, 0xd9, 0xe8, 0xee, + 0x54, 0x39, 0x37, 0x10, 0x74, 0x07, 0x3d, 0xee, 0x11, 0xe6, 0x83, 0xb7, 0xc1, 0xae, 0x2a, 0x76, + 0x23, 0x9d, 0x36, 0x1f, 0xbf, 0xda, 0xaa, 0x70, 0x76, 0x38, 0xdb, 0x7f, 0x6b, 0xe8, 0xe1, 0xb5, + 0xfb, 0xa0, 0x7f, 0x8f, 0x2a, 0x84, 0x4a, 0x36, 0xca, 0xe6, 0x25, 0x1b, 0xc5, 0xa7, 0xab, 0x25, + 0xca, 0xde, 0xb4, 0xe5, 0xfd, 0x76, 0xa0, 0x07, 0x59, 0x27, 0x60, 0x79, 0x89, 0x5e, 0x28, 0xab, + 0x93, 0x23, 0x74, 0x1f, 0xed, 0xfb, 0x44, 0xc8, 0xf9, 0xa8, 0x9d, 0xb0, 0x00, 0x54, 0x93, 0xea, + 0x87, 0x9f, 0xdc, 0xed, 0xf2, 0x64, 0x0e, 0xfb, 0xbd, 0x74, 0xda, 0xdc, 0x3f, 0x5e, 0xe3, 0x38, + 0x1b, 0xe4, 0xf6, 0x44, 0x43, 0xab, 0xdd, 0xb9, 0x87, 0xe7, 0xeb, 0x67, 0x54, 0x93, 0xf3, 0x89, + 0x2a, 0xbe, 0xe9, 0x44, 0x2d, 0x6e, 0xe2, 0x62, 0x9c, 0x16, 0xb0, 0xec, 0xf5, 0x79, 0x67, 0x4d, + 0x7f, 0x0f, 0xbf, 0xf3, 0xd5, 0xb5, 0xd7, 0xf8, 0x83, 0x6d, 0xbf, 0x82, 0x6f, 0x78, 0x84, 0xed, + 0xe7, 0x93, 0x2b, 0xb3, 0x70, 0x71, 0x65, 0x16, 0x2e, 0xaf, 0xcc, 0xc2, 0x6f, 0xa9, 0xa9, 0x4d, + 0x52, 0x53, 0xbb, 0x48, 0x4d, 0xed, 0x32, 0x35, 0xb5, 0x7f, 0x52, 0x53, 0xfb, 0xe3, 0x5f, 0xb3, + 0xf0, 0x4b, 0x35, 0x2f, 0xc8, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, 0xf6, 0x9f, 0xb3, 0xdd, 0xdf, + 0x07, 0x00, 0x00, } diff --git a/vendor/k8s.io/api/batch/v1beta1/generated.proto b/vendor/k8s.io/api/batch/v1beta1/generated.proto index 9278a3d9b..043b3551b 100644 --- a/vendor/k8s.io/api/batch/v1beta1/generated.proto +++ b/vendor/k8s.io/api/batch/v1beta1/generated.proto @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -26,7 +26,6 @@ import "k8s.io/api/core/v1/generated.proto"; import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; -import "k8s.io/apimachinery/pkg/util/intstr/generated.proto"; // Package-wide variables from generator "generated". option go_package = "v1beta1"; diff --git a/vendor/k8s.io/api/batch/v1beta1/types_swagger_doc_generated.go b/vendor/k8s.io/api/batch/v1beta1/types_swagger_doc_generated.go index 3b53ac08a..abbdfec01 100644 --- a/vendor/k8s.io/api/batch/v1beta1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/batch/v1beta1/types_swagger_doc_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2016 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -26,7 +26,7 @@ package v1beta1 // // Those methods can be generated by using hack/update-generated-swagger-docs.sh -// AUTO-GENERATED FUNCTIONS START HERE +// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT. var map_CronJob = map[string]string{ "": "CronJob represents the configuration of a single cron job.", "metadata": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", diff --git a/vendor/k8s.io/api/batch/v1beta1/zz_generated.deepcopy.go b/vendor/k8s.io/api/batch/v1beta1/zz_generated.deepcopy.go index 78e361aba..1c8bc4478 100644 --- a/vendor/k8s.io/api/batch/v1beta1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/api/batch/v1beta1/zz_generated.deepcopy.go @@ -1,7 +1,7 @@ // +build !ignore_autogenerated /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -91,40 +91,24 @@ func (in *CronJobSpec) DeepCopyInto(out *CronJobSpec) { *out = *in if in.StartingDeadlineSeconds != nil { in, out := &in.StartingDeadlineSeconds, &out.StartingDeadlineSeconds - if *in == nil { - *out = nil - } else { - *out = new(int64) - **out = **in - } + *out = new(int64) + **out = **in } if in.Suspend != nil { in, out := &in.Suspend, &out.Suspend - if *in == nil { - *out = nil - } else { - *out = new(bool) - **out = **in - } + *out = new(bool) + **out = **in } in.JobTemplate.DeepCopyInto(&out.JobTemplate) if in.SuccessfulJobsHistoryLimit != nil { in, out := &in.SuccessfulJobsHistoryLimit, &out.SuccessfulJobsHistoryLimit - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } if in.FailedJobsHistoryLimit != nil { in, out := &in.FailedJobsHistoryLimit, &out.FailedJobsHistoryLimit - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } return } @@ -149,11 +133,7 @@ func (in *CronJobStatus) DeepCopyInto(out *CronJobStatus) { } if in.LastScheduleTime != nil { in, out := &in.LastScheduleTime, &out.LastScheduleTime - if *in == nil { - *out = nil - } else { - *out = (*in).DeepCopy() - } + *out = (*in).DeepCopy() } return } diff --git a/vendor/k8s.io/api/batch/v2alpha1/BUILD b/vendor/k8s.io/api/batch/v2alpha1/BUILD deleted file mode 100644 index 0fc0ab57a..000000000 --- a/vendor/k8s.io/api/batch/v2alpha1/BUILD +++ /dev/null @@ -1,46 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "generated.pb.go", - "register.go", - "types.go", - "types_swagger_doc_generated.go", - "zz_generated.deepcopy.go", - ], - importpath = "k8s.io/api/batch/v2alpha1", - deps = [ - "//vendor/github.com/gogo/protobuf/proto:go_default_library", - "//vendor/k8s.io/api/batch/v1:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) - -filegroup( - name = "go_default_library_protos", - srcs = ["generated.proto"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/api/batch/v2alpha1/generated.pb.go b/vendor/k8s.io/api/batch/v2alpha1/generated.pb.go index 2560953eb..4d9ba5c00 100644 --- a/vendor/k8s.io/api/batch/v2alpha1/generated.pb.go +++ b/vendor/k8s.io/api/batch/v2alpha1/generated.pb.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -14,9 +14,8 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: k8s.io/kubernetes/vendor/k8s.io/api/batch/v2alpha1/generated.proto -// DO NOT EDIT! /* Package v2alpha1 is a generated protocol buffer package. @@ -336,24 +335,6 @@ func (m *JobTemplateSpec) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Generated(dAtA []byte, offset int, v uint64) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - dAtA[offset+4] = uint8(v >> 32) - dAtA[offset+5] = uint8(v >> 40) - dAtA[offset+6] = uint8(v >> 48) - dAtA[offset+7] = uint8(v >> 56) - return offset + 8 -} -func encodeFixed32Generated(dAtA []byte, offset int, v uint32) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - return offset + 4 -} func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -1456,55 +1437,54 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 787 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x94, 0xcf, 0x6f, 0xe3, 0x44, - 0x14, 0xc7, 0xe3, 0x34, 0xbf, 0x3a, 0xa1, 0xd0, 0x1a, 0xd4, 0x86, 0x80, 0x9c, 0xc8, 0x15, 0x28, - 0x42, 0x30, 0xa6, 0x05, 0x21, 0x4e, 0x48, 0xb8, 0x08, 0x4a, 0x29, 0xa2, 0x72, 0x8a, 0x84, 0x50, - 0xb5, 0xda, 0xf1, 0x78, 0x92, 0x4c, 0x63, 0x7b, 0x2c, 0xcf, 0x38, 0x52, 0x6e, 0x7b, 0xdb, 0xeb, - 0xfe, 0x25, 0x7b, 0xd9, 0xfd, 0x23, 0xba, 0x7b, 0xea, 0xb1, 0xa7, 0x68, 0xeb, 0xfd, 0x2f, 0xf6, - 0xb4, 0xf2, 0xc4, 0xf9, 0xd1, 0x38, 0x69, 0xbb, 0x97, 0xde, 0x3c, 0xcf, 0xdf, 0xef, 0x67, 0xde, - 0xbc, 0xf7, 0x66, 0x80, 0xd9, 0xff, 0x99, 0x43, 0xca, 0x8c, 0x7e, 0x64, 0x93, 0xd0, 0x27, 0x82, - 0x70, 0x63, 0x40, 0x7c, 0x87, 0x85, 0x46, 0xfa, 0x03, 0x05, 0xd4, 0xb0, 0x91, 0xc0, 0x3d, 0x63, - 0xb0, 0x8f, 0xdc, 0xa0, 0x87, 0xf6, 0x8c, 0x2e, 0xf1, 0x49, 0x88, 0x04, 0x71, 0x60, 0x10, 0x32, - 0xc1, 0xd4, 0xcf, 0xc7, 0x52, 0x88, 0x02, 0x0a, 0xa5, 0x14, 0x4e, 0xa4, 0xf5, 0xef, 0xba, 0x54, - 0xf4, 0x22, 0x1b, 0x62, 0xe6, 0x19, 0x5d, 0xd6, 0x65, 0x86, 0x74, 0xd8, 0x51, 0x47, 0xae, 0xe4, - 0x42, 0x7e, 0x8d, 0x49, 0xf5, 0xdd, 0xec, 0xa6, 0x99, 0xed, 0xea, 0xfa, 0x9c, 0x08, 0xb3, 0x90, - 0x2c, 0xd3, 0xfc, 0x38, 0xd3, 0x78, 0x08, 0xf7, 0xa8, 0x4f, 0xc2, 0xa1, 0x11, 0xf4, 0xbb, 0x49, - 0x80, 0x1b, 0x1e, 0x11, 0x68, 0x99, 0xcb, 0x58, 0xe5, 0x0a, 0x23, 0x5f, 0x50, 0x8f, 0x64, 0x0c, - 0x3f, 0xdd, 0x65, 0xe0, 0xb8, 0x47, 0x3c, 0x94, 0xf1, 0xfd, 0xb0, 0xca, 0x17, 0x09, 0xea, 0x1a, - 0xd4, 0x17, 0x5c, 0x84, 0x8b, 0x26, 0xfd, 0x69, 0x1e, 0x94, 0x0f, 0x42, 0xe6, 0x1f, 0x31, 0x5b, - 0x7d, 0x0c, 0x2a, 0xc9, 0x21, 0x1c, 0x24, 0x50, 0x4d, 0x69, 0x2a, 0xad, 0xea, 0xfe, 0xf7, 0x70, - 0xd6, 0x85, 0x29, 0x13, 0x06, 0xfd, 0x6e, 0x12, 0xe0, 0x30, 0x51, 0xc3, 0xc1, 0x1e, 0xfc, 0xc7, - 0x3e, 0x27, 0x58, 0xfc, 0x4d, 0x04, 0x32, 0xd5, 0x8b, 0x51, 0x23, 0x17, 0x8f, 0x1a, 0x60, 0x16, - 0xb3, 0xa6, 0x54, 0xf5, 0x10, 0x14, 0x78, 0x40, 0x70, 0x2d, 0x2f, 0xe9, 0x5f, 0xc3, 0x95, 0x3d, - 0x86, 0x69, 0x4e, 0xed, 0x80, 0x60, 0xf3, 0xa3, 0x94, 0x59, 0x48, 0x56, 0x96, 0x24, 0xa8, 0x27, - 0xa0, 0xc4, 0x05, 0x12, 0x11, 0xaf, 0xad, 0x49, 0x56, 0xeb, 0x1e, 0x2c, 0xa9, 0x37, 0x3f, 0x4e, - 0x69, 0xa5, 0xf1, 0xda, 0x4a, 0x39, 0xfa, 0x4b, 0x05, 0x54, 0x53, 0xe5, 0x31, 0xe5, 0x42, 0x3d, - 0xcb, 0x54, 0x03, 0xde, 0xaf, 0x1a, 0x89, 0x5b, 0xd6, 0x62, 0x33, 0xdd, 0xa9, 0x32, 0x89, 0xcc, - 0x55, 0xe2, 0x0f, 0x50, 0xa4, 0x82, 0x78, 0xbc, 0x96, 0x6f, 0xae, 0xb5, 0xaa, 0xfb, 0xfa, 0xdd, - 0xe9, 0x9b, 0x1b, 0x29, 0xae, 0xf8, 0x67, 0x62, 0xb4, 0xc6, 0x7e, 0xfd, 0x79, 0x61, 0x9a, 0x76, - 0x52, 0x1e, 0xf5, 0x5b, 0x50, 0x49, 0xe6, 0xc3, 0x89, 0x5c, 0x22, 0xd3, 0x5e, 0x9f, 0xa5, 0xd1, - 0x4e, 0xe3, 0xd6, 0x54, 0xa1, 0xfe, 0x0b, 0x76, 0xb8, 0x40, 0xa1, 0xa0, 0x7e, 0xf7, 0x37, 0x82, - 0x1c, 0x97, 0xfa, 0xa4, 0x4d, 0x30, 0xf3, 0x1d, 0x2e, 0x7b, 0xb4, 0x66, 0x7e, 0x11, 0x8f, 0x1a, - 0x3b, 0xed, 0xe5, 0x12, 0x6b, 0x95, 0x57, 0x3d, 0x03, 0x5b, 0x98, 0xf9, 0x38, 0x0a, 0x43, 0xe2, - 0xe3, 0xe1, 0x09, 0x73, 0x29, 0x1e, 0xca, 0x46, 0xad, 0x9b, 0x30, 0xcd, 0x66, 0xeb, 0x60, 0x51, - 0xf0, 0x6e, 0x59, 0xd0, 0xca, 0x82, 0xd4, 0xaf, 0x40, 0x99, 0x47, 0x3c, 0x20, 0xbe, 0x53, 0x2b, - 0x34, 0x95, 0x56, 0xc5, 0xac, 0xc6, 0xa3, 0x46, 0xb9, 0x3d, 0x0e, 0x59, 0x93, 0x7f, 0x2a, 0x02, - 0xd5, 0x73, 0x66, 0x9f, 0x12, 0x2f, 0x70, 0x91, 0x20, 0xb5, 0xa2, 0xec, 0xe1, 0x37, 0xb7, 0x14, - 0xfa, 0x68, 0xa6, 0x96, 0x73, 0xf7, 0x69, 0x9a, 0x6a, 0x75, 0xee, 0x87, 0x35, 0xcf, 0x54, 0x1f, - 0x81, 0x3a, 0x8f, 0x30, 0x26, 0x9c, 0x77, 0x22, 0xf7, 0x88, 0xd9, 0xfc, 0x90, 0x72, 0xc1, 0xc2, - 0xe1, 0x31, 0xf5, 0xa8, 0xa8, 0x95, 0x9a, 0x4a, 0xab, 0x68, 0x6a, 0xf1, 0xa8, 0x51, 0x6f, 0xaf, - 0x54, 0x59, 0xb7, 0x10, 0x54, 0x0b, 0x6c, 0x77, 0x10, 0x75, 0x89, 0x93, 0x61, 0x97, 0x25, 0xbb, - 0x1e, 0x8f, 0x1a, 0xdb, 0xbf, 0x2f, 0x55, 0x58, 0x2b, 0x9c, 0xfa, 0x6b, 0x05, 0x6c, 0xdc, 0xb8, - 0x11, 0xea, 0x5f, 0xa0, 0x84, 0xb0, 0xa0, 0x83, 0x64, 0x60, 0x92, 0x61, 0xdc, 0x9d, 0xaf, 0x51, - 0xf2, 0x18, 0xce, 0xee, 0xb8, 0x45, 0x3a, 0x24, 0x69, 0x05, 0x99, 0x5d, 0xa3, 0x5f, 0xa5, 0xd5, - 0x4a, 0x11, 0xaa, 0x0b, 0x36, 0x5d, 0xc4, 0xc5, 0x64, 0xd6, 0x4e, 0xa9, 0x47, 0x64, 0x97, 0x6e, - 0x96, 0xfe, 0x96, 0xeb, 0x93, 0x38, 0xcc, 0xcf, 0xe2, 0x51, 0x63, 0xf3, 0x78, 0x81, 0x63, 0x65, - 0xc8, 0xfa, 0x2b, 0x05, 0xcc, 0x77, 0xe7, 0x01, 0x9e, 0xb0, 0xff, 0x40, 0x45, 0x4c, 0x46, 0x2a, - 0xff, 0xc1, 0x23, 0x35, 0xbd, 0x8b, 0xd3, 0x79, 0x9a, 0xd2, 0xf4, 0x17, 0x0a, 0xf8, 0x64, 0x41, - 0xff, 0x00, 0xe7, 0xf9, 0xe5, 0xc6, 0x93, 0xfc, 0xe5, 0x92, 0xb3, 0xc8, 0x53, 0xac, 0x7a, 0x88, - 0x4d, 0x78, 0x71, 0xad, 0xe5, 0x2e, 0xaf, 0xb5, 0xdc, 0xd5, 0xb5, 0x96, 0x7b, 0x12, 0x6b, 0xca, - 0x45, 0xac, 0x29, 0x97, 0xb1, 0xa6, 0x5c, 0xc5, 0x9a, 0xf2, 0x26, 0xd6, 0x94, 0x67, 0x6f, 0xb5, - 0xdc, 0xff, 0x95, 0x49, 0x45, 0xde, 0x07, 0x00, 0x00, 0xff, 0xff, 0x02, 0x60, 0xaa, 0x00, 0x1c, - 0x08, 0x00, 0x00, + // 774 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x94, 0x4d, 0x6f, 0xdb, 0x36, + 0x18, 0xc7, 0x2d, 0xc7, 0x6f, 0xa1, 0x97, 0x2d, 0xd1, 0x86, 0xc4, 0xf3, 0x06, 0xd9, 0x50, 0xb0, + 0xc1, 0x18, 0x36, 0x6a, 0x09, 0x86, 0x61, 0xa7, 0x01, 0x53, 0x86, 0x36, 0x4d, 0x53, 0x34, 0x90, + 0x53, 0xa0, 0x28, 0x82, 0xa2, 0x14, 0x45, 0xdb, 0x8c, 0x25, 0x51, 0x10, 0x29, 0x03, 0xbe, 0xf5, + 0xd6, 0x6b, 0x3f, 0x49, 0x2f, 0xed, 0x87, 0x48, 0x7b, 0xca, 0x31, 0x27, 0xa3, 0x51, 0xbf, 0x45, + 0x4f, 0x85, 0x68, 0xf9, 0x25, 0x7e, 0x49, 0xd2, 0x4b, 0x6e, 0xe2, 0xa3, 0xff, 0xff, 0xc7, 0x87, + 0xcf, 0xf3, 0x90, 0xc0, 0xec, 0xfe, 0xc3, 0x21, 0x65, 0x46, 0x37, 0xb2, 0x49, 0xe8, 0x13, 0x41, + 0xb8, 0xd1, 0x23, 0xbe, 0xc3, 0x42, 0x23, 0xfd, 0x81, 0x02, 0x6a, 0xd8, 0x48, 0xe0, 0x8e, 0xd1, + 0xdb, 0x45, 0x6e, 0xd0, 0x41, 0x3b, 0x46, 0x9b, 0xf8, 0x24, 0x44, 0x82, 0x38, 0x30, 0x08, 0x99, + 0x60, 0xea, 0x8f, 0x43, 0x29, 0x44, 0x01, 0x85, 0x52, 0x0a, 0x47, 0xd2, 0xea, 0x1f, 0x6d, 0x2a, + 0x3a, 0x91, 0x0d, 0x31, 0xf3, 0x8c, 0x36, 0x6b, 0x33, 0x43, 0x3a, 0xec, 0xa8, 0x25, 0x57, 0x72, + 0x21, 0xbf, 0x86, 0xa4, 0xea, 0xf6, 0xfc, 0xa6, 0x73, 0xdb, 0x55, 0xf5, 0x29, 0x11, 0x66, 0x21, + 0x59, 0xa4, 0xf9, 0x6b, 0xa2, 0xf1, 0x10, 0xee, 0x50, 0x9f, 0x84, 0x7d, 0x23, 0xe8, 0xb6, 0x93, + 0x00, 0x37, 0x3c, 0x22, 0xd0, 0x22, 0x97, 0xb1, 0xcc, 0x15, 0x46, 0xbe, 0xa0, 0x1e, 0x99, 0x33, + 0xfc, 0x7d, 0x93, 0x81, 0xe3, 0x0e, 0xf1, 0xd0, 0xac, 0x4f, 0x7f, 0x95, 0x05, 0xc5, 0xbd, 0x90, + 0xf9, 0x07, 0xcc, 0x56, 0x5f, 0x80, 0x52, 0x92, 0x8f, 0x83, 0x04, 0xaa, 0x28, 0x75, 0xa5, 0x51, + 0xde, 0xfd, 0x13, 0x4e, 0x0a, 0x3a, 0xc6, 0xc2, 0xa0, 0xdb, 0x4e, 0x02, 0x1c, 0x26, 0x6a, 0xd8, + 0xdb, 0x81, 0x8f, 0xed, 0x53, 0x82, 0xc5, 0x23, 0x22, 0x90, 0xa9, 0x9e, 0x0d, 0x6a, 0x99, 0x78, + 0x50, 0x03, 0x93, 0x98, 0x35, 0xa6, 0xaa, 0xfb, 0x20, 0xc7, 0x03, 0x82, 0x2b, 0x59, 0x49, 0xff, + 0x15, 0x2e, 0x6d, 0x17, 0x4c, 0x73, 0x6a, 0x06, 0x04, 0x9b, 0xdf, 0xa4, 0xcc, 0x5c, 0xb2, 0xb2, + 0x24, 0x41, 0x3d, 0x02, 0x05, 0x2e, 0x90, 0x88, 0x78, 0x65, 0x45, 0xb2, 0x1a, 0xb7, 0x60, 0x49, + 0xbd, 0xf9, 0x6d, 0x4a, 0x2b, 0x0c, 0xd7, 0x56, 0xca, 0xd1, 0xdf, 0x29, 0xa0, 0x9c, 0x2a, 0x0f, + 0x29, 0x17, 0xea, 0xc9, 0x5c, 0x35, 0xe0, 0xed, 0xaa, 0x91, 0xb8, 0x65, 0x2d, 0xd6, 0xd3, 0x9d, + 0x4a, 0xa3, 0xc8, 0x54, 0x25, 0xee, 0x83, 0x3c, 0x15, 0xc4, 0xe3, 0x95, 0x6c, 0x7d, 0xa5, 0x51, + 0xde, 0xd5, 0x6f, 0x4e, 0xdf, 0x5c, 0x4b, 0x71, 0xf9, 0x07, 0x89, 0xd1, 0x1a, 0xfa, 0xf5, 0x37, + 0xb9, 0x71, 0xda, 0x49, 0x79, 0xd4, 0xdf, 0x41, 0x29, 0x69, 0xb5, 0x13, 0xb9, 0x44, 0xa6, 0xbd, + 0x3a, 0x49, 0xa3, 0x99, 0xc6, 0xad, 0xb1, 0x42, 0x7d, 0x02, 0xb6, 0xb8, 0x40, 0xa1, 0xa0, 0x7e, + 0xfb, 0x7f, 0x82, 0x1c, 0x97, 0xfa, 0xa4, 0x49, 0x30, 0xf3, 0x1d, 0x2e, 0x7b, 0xb4, 0x62, 0xfe, + 0x14, 0x0f, 0x6a, 0x5b, 0xcd, 0xc5, 0x12, 0x6b, 0x99, 0x57, 0x3d, 0x01, 0x1b, 0x98, 0xf9, 0x38, + 0x0a, 0x43, 0xe2, 0xe3, 0xfe, 0x11, 0x73, 0x29, 0xee, 0xcb, 0x46, 0xad, 0x9a, 0x30, 0xcd, 0x66, + 0x63, 0x6f, 0x56, 0xf0, 0x79, 0x51, 0xd0, 0x9a, 0x07, 0xa9, 0xbf, 0x80, 0x22, 0x8f, 0x78, 0x40, + 0x7c, 0xa7, 0x92, 0xab, 0x2b, 0x8d, 0x92, 0x59, 0x8e, 0x07, 0xb5, 0x62, 0x73, 0x18, 0xb2, 0x46, + 0xff, 0x54, 0x04, 0xca, 0xa7, 0xcc, 0x3e, 0x26, 0x5e, 0xe0, 0x22, 0x41, 0x2a, 0x79, 0xd9, 0xc3, + 0xdf, 0xae, 0x29, 0xf4, 0xc1, 0x44, 0x2d, 0xe7, 0xee, 0xfb, 0x34, 0xd5, 0xf2, 0xd4, 0x0f, 0x6b, + 0x9a, 0xa9, 0x3e, 0x07, 0x55, 0x1e, 0x61, 0x4c, 0x38, 0x6f, 0x45, 0xee, 0x01, 0xb3, 0xf9, 0x3e, + 0xe5, 0x82, 0x85, 0xfd, 0x43, 0xea, 0x51, 0x51, 0x29, 0xd4, 0x95, 0x46, 0xde, 0xd4, 0xe2, 0x41, + 0xad, 0xda, 0x5c, 0xaa, 0xb2, 0xae, 0x21, 0xa8, 0x16, 0xd8, 0x6c, 0x21, 0xea, 0x12, 0x67, 0x8e, + 0x5d, 0x94, 0xec, 0x6a, 0x3c, 0xa8, 0x6d, 0xde, 0x5b, 0xa8, 0xb0, 0x96, 0x38, 0xf5, 0x0f, 0x0a, + 0x58, 0xbb, 0x72, 0x23, 0xd4, 0x87, 0xa0, 0x80, 0xb0, 0xa0, 0xbd, 0x64, 0x60, 0x92, 0x61, 0xdc, + 0x9e, 0xae, 0x51, 0xf2, 0xae, 0x4d, 0xee, 0xb8, 0x45, 0x5a, 0x24, 0x69, 0x05, 0x99, 0x5c, 0xa3, + 0xff, 0xa4, 0xd5, 0x4a, 0x11, 0xaa, 0x0b, 0xd6, 0x5d, 0xc4, 0xc5, 0x68, 0xd6, 0x8e, 0xa9, 0x47, + 0x64, 0x97, 0xae, 0x96, 0xfe, 0x9a, 0xeb, 0x93, 0x38, 0xcc, 0x1f, 0xe2, 0x41, 0x6d, 0xfd, 0x70, + 0x86, 0x63, 0xcd, 0x91, 0xf5, 0xf7, 0x0a, 0x98, 0xee, 0xce, 0x1d, 0x3c, 0x61, 0x4f, 0x41, 0x49, + 0x8c, 0x46, 0x2a, 0xfb, 0xd5, 0x23, 0x35, 0xbe, 0x8b, 0xe3, 0x79, 0x1a, 0xd3, 0xf4, 0xb7, 0x0a, + 0xf8, 0x6e, 0x46, 0x7f, 0x07, 0xe7, 0xf9, 0xf7, 0xca, 0x93, 0xfc, 0xf3, 0x82, 0xb3, 0xc8, 0x53, + 0x2c, 0x7b, 0x88, 0x4d, 0x78, 0x76, 0xa9, 0x65, 0xce, 0x2f, 0xb5, 0xcc, 0xc5, 0xa5, 0x96, 0x79, + 0x19, 0x6b, 0xca, 0x59, 0xac, 0x29, 0xe7, 0xb1, 0xa6, 0x5c, 0xc4, 0x9a, 0xf2, 0x31, 0xd6, 0x94, + 0xd7, 0x9f, 0xb4, 0xcc, 0xb3, 0xd2, 0xa8, 0x22, 0x5f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x20, 0x1c, + 0xcf, 0x94, 0xe7, 0x07, 0x00, 0x00, } diff --git a/vendor/k8s.io/api/batch/v2alpha1/generated.proto b/vendor/k8s.io/api/batch/v2alpha1/generated.proto index e4de3644c..4321c3361 100644 --- a/vendor/k8s.io/api/batch/v2alpha1/generated.proto +++ b/vendor/k8s.io/api/batch/v2alpha1/generated.proto @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -26,7 +26,6 @@ import "k8s.io/api/core/v1/generated.proto"; import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; -import "k8s.io/apimachinery/pkg/util/intstr/generated.proto"; // Package-wide variables from generator "generated". option go_package = "v2alpha1"; diff --git a/vendor/k8s.io/api/batch/v2alpha1/types_swagger_doc_generated.go b/vendor/k8s.io/api/batch/v2alpha1/types_swagger_doc_generated.go index d166b807f..f448a92cf 100644 --- a/vendor/k8s.io/api/batch/v2alpha1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/batch/v2alpha1/types_swagger_doc_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2016 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -26,7 +26,7 @@ package v2alpha1 // // Those methods can be generated by using hack/update-generated-swagger-docs.sh -// AUTO-GENERATED FUNCTIONS START HERE +// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT. var map_CronJob = map[string]string{ "": "CronJob represents the configuration of a single cron job.", "metadata": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", diff --git a/vendor/k8s.io/api/batch/v2alpha1/zz_generated.deepcopy.go b/vendor/k8s.io/api/batch/v2alpha1/zz_generated.deepcopy.go index d8352bfbe..20d87e7e7 100644 --- a/vendor/k8s.io/api/batch/v2alpha1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/api/batch/v2alpha1/zz_generated.deepcopy.go @@ -1,7 +1,7 @@ // +build !ignore_autogenerated /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -91,40 +91,24 @@ func (in *CronJobSpec) DeepCopyInto(out *CronJobSpec) { *out = *in if in.StartingDeadlineSeconds != nil { in, out := &in.StartingDeadlineSeconds, &out.StartingDeadlineSeconds - if *in == nil { - *out = nil - } else { - *out = new(int64) - **out = **in - } + *out = new(int64) + **out = **in } if in.Suspend != nil { in, out := &in.Suspend, &out.Suspend - if *in == nil { - *out = nil - } else { - *out = new(bool) - **out = **in - } + *out = new(bool) + **out = **in } in.JobTemplate.DeepCopyInto(&out.JobTemplate) if in.SuccessfulJobsHistoryLimit != nil { in, out := &in.SuccessfulJobsHistoryLimit, &out.SuccessfulJobsHistoryLimit - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } if in.FailedJobsHistoryLimit != nil { in, out := &in.FailedJobsHistoryLimit, &out.FailedJobsHistoryLimit - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } return } @@ -149,11 +133,7 @@ func (in *CronJobStatus) DeepCopyInto(out *CronJobStatus) { } if in.LastScheduleTime != nil { in, out := &in.LastScheduleTime, &out.LastScheduleTime - if *in == nil { - *out = nil - } else { - *out = (*in).DeepCopy() - } + *out = (*in).DeepCopy() } return } diff --git a/vendor/k8s.io/api/certificates/v1beta1/BUILD b/vendor/k8s.io/api/certificates/v1beta1/BUILD deleted file mode 100644 index 4c94dd064..000000000 --- a/vendor/k8s.io/api/certificates/v1beta1/BUILD +++ /dev/null @@ -1,45 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "generated.pb.go", - "register.go", - "types.go", - "types_swagger_doc_generated.go", - "zz_generated.deepcopy.go", - ], - importpath = "k8s.io/api/certificates/v1beta1", - deps = [ - "//vendor/github.com/gogo/protobuf/proto:go_default_library", - "//vendor/github.com/gogo/protobuf/sortkeys:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) - -filegroup( - name = "go_default_library_protos", - srcs = ["generated.proto"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/api/certificates/v1beta1/doc.go b/vendor/k8s.io/api/certificates/v1beta1/doc.go index fb23aadb0..8473b640f 100644 --- a/vendor/k8s.io/api/certificates/v1beta1/doc.go +++ b/vendor/k8s.io/api/certificates/v1beta1/doc.go @@ -18,4 +18,5 @@ limitations under the License. // +k8s:openapi-gen=true // +groupName=certificates.k8s.io + package v1beta1 // import "k8s.io/api/certificates/v1beta1" diff --git a/vendor/k8s.io/api/certificates/v1beta1/generated.pb.go b/vendor/k8s.io/api/certificates/v1beta1/generated.pb.go index 7f704bf82..19bf225fa 100644 --- a/vendor/k8s.io/api/certificates/v1beta1/generated.pb.go +++ b/vendor/k8s.io/api/certificates/v1beta1/generated.pb.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -14,9 +14,8 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: k8s.io/kubernetes/vendor/k8s.io/api/certificates/v1beta1/generated.proto -// DO NOT EDIT! /* Package v1beta1 is a generated protocol buffer package. @@ -378,24 +377,6 @@ func (m ExtraValue) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Generated(dAtA []byte, offset int, v uint64) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - dAtA[offset+4] = uint8(v >> 32) - dAtA[offset+5] = uint8(v >> 40) - dAtA[offset+6] = uint8(v >> 48) - dAtA[offset+7] = uint8(v >> 56) - return offset + 8 -} -func encodeFixed32Generated(dAtA []byte, offset int, v uint32) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - return offset + 4 -} func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -1221,51 +1202,14 @@ func (m *CertificateSigningRequestSpec) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.Extra == nil { m.Extra = make(map[string]ExtraValue) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + mapvalue := &ExtraValue{} + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -1275,46 +1219,85 @@ func (m *CertificateSigningRequestSpec) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } + if mapmsglen < 0 { + return ErrInvalidLengthGenerated + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthGenerated + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue = &ExtraValue{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &ExtraValue{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.Extra[mapkey] = *mapvalue - } else { - var mapvalue ExtraValue - m.Extra[mapkey] = mapvalue } + m.Extra[mapkey] = *mapvalue iNdEx = postIndex default: iNdEx = preIndex @@ -1638,56 +1621,56 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 816 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x54, 0x4d, 0x6f, 0x1b, 0x45, - 0x18, 0xf6, 0xfa, 0x2b, 0xf6, 0x38, 0xa4, 0xd5, 0x08, 0x55, 0x4b, 0xa4, 0xee, 0x46, 0x2b, 0x40, - 0xe1, 0xa3, 0xb3, 0xa4, 0x20, 0x88, 0x72, 0x40, 0xb0, 0xa1, 0x82, 0x88, 0x56, 0x48, 0xd3, 0x86, - 0x03, 0x42, 0xa2, 0xe3, 0xf5, 0xdb, 0xcd, 0xd4, 0xd9, 0x0f, 0x76, 0x66, 0x0d, 0xbe, 0xf5, 0x27, - 0x70, 0xe4, 0x82, 0xc4, 0x2f, 0xe1, 0x1c, 0x0e, 0x48, 0x3d, 0xf6, 0x80, 0x2c, 0x62, 0xfe, 0x45, - 0x4f, 0x68, 0x66, 0xc7, 0x5e, 0x63, 0xcb, 0x75, 0xd5, 0xdc, 0xf6, 0x7d, 0xde, 0xf7, 0x79, 0xde, - 0xcf, 0x59, 0xf4, 0xd5, 0xf0, 0x50, 0x10, 0x9e, 0xfa, 0xc3, 0xa2, 0x0f, 0x79, 0x02, 0x12, 0x84, - 0x3f, 0x82, 0x64, 0x90, 0xe6, 0xbe, 0x71, 0xb0, 0x8c, 0xfb, 0x21, 0xe4, 0x92, 0x3f, 0xe2, 0x21, - 0xd3, 0xee, 0x83, 0x3e, 0x48, 0x76, 0xe0, 0x47, 0x90, 0x40, 0xce, 0x24, 0x0c, 0x48, 0x96, 0xa7, - 0x32, 0xc5, 0x6e, 0x49, 0x20, 0x2c, 0xe3, 0x64, 0x91, 0x40, 0x0c, 0x61, 0xf7, 0x56, 0xc4, 0xe5, - 0x59, 0xd1, 0x27, 0x61, 0x1a, 0xfb, 0x51, 0x1a, 0xa5, 0xbe, 0xe6, 0xf5, 0x8b, 0x47, 0xda, 0xd2, - 0x86, 0xfe, 0x2a, 0xf5, 0x76, 0x3f, 0xaa, 0x0a, 0x88, 0x59, 0x78, 0xc6, 0x13, 0xc8, 0xc7, 0x7e, - 0x36, 0x8c, 0x14, 0x20, 0xfc, 0x18, 0x24, 0xf3, 0x47, 0x2b, 0x55, 0xec, 0xfa, 0xeb, 0x58, 0x79, - 0x91, 0x48, 0x1e, 0xc3, 0x0a, 0xe1, 0xe3, 0x4d, 0x04, 0x11, 0x9e, 0x41, 0xcc, 0x56, 0x78, 0x1f, - 0xae, 0xe3, 0x15, 0x92, 0x9f, 0xfb, 0x3c, 0x91, 0x42, 0xe6, 0xcb, 0x24, 0xef, 0xcf, 0x3a, 0x7a, - 0xe3, 0xb8, 0x9a, 0xcd, 0x7d, 0x1e, 0x25, 0x3c, 0x89, 0x28, 0xfc, 0x58, 0x80, 0x90, 0xf8, 0x21, - 0xea, 0xa8, 0xb6, 0x06, 0x4c, 0x32, 0xdb, 0xda, 0xb3, 0xf6, 0x7b, 0xb7, 0x3f, 0x20, 0xd5, 0x50, - 0xe7, 0x59, 0x48, 0x36, 0x8c, 0x14, 0x20, 0x88, 0x8a, 0x26, 0xa3, 0x03, 0xf2, 0x4d, 0xff, 0x31, - 0x84, 0xf2, 0x1e, 0x48, 0x16, 0xe0, 0x8b, 0x89, 0x5b, 0x9b, 0x4e, 0x5c, 0x54, 0x61, 0x74, 0xae, - 0x8a, 0x1f, 0xa2, 0xa6, 0xc8, 0x20, 0xb4, 0xeb, 0x5a, 0xfd, 0x53, 0xb2, 0x61, 0x65, 0x64, 0x6d, - 0xad, 0xf7, 0x33, 0x08, 0x83, 0x6d, 0x93, 0xab, 0xa9, 0x2c, 0xaa, 0x95, 0xf1, 0x19, 0x6a, 0x0b, - 0xc9, 0x64, 0x21, 0xec, 0x86, 0xce, 0xf1, 0xd9, 0x15, 0x72, 0x68, 0x9d, 0x60, 0xc7, 0x64, 0x69, - 0x97, 0x36, 0x35, 0xfa, 0xde, 0x6f, 0x75, 0xe4, 0xad, 0xe5, 0x1e, 0xa7, 0xc9, 0x80, 0x4b, 0x9e, - 0x26, 0xf8, 0x10, 0x35, 0xe5, 0x38, 0x03, 0x3d, 0xd0, 0x6e, 0xf0, 0xe6, 0xac, 0xe4, 0x07, 0xe3, - 0x0c, 0x9e, 0x4f, 0xdc, 0xd7, 0x97, 0xe3, 0x15, 0x4e, 0x35, 0x03, 0xbf, 0x8d, 0xda, 0x39, 0x30, - 0x91, 0x26, 0x7a, 0x5c, 0xdd, 0xaa, 0x10, 0xaa, 0x51, 0x6a, 0xbc, 0xf8, 0x1d, 0xb4, 0x15, 0x83, - 0x10, 0x2c, 0x02, 0xdd, 0x73, 0x37, 0xb8, 0x66, 0x02, 0xb7, 0xee, 0x95, 0x30, 0x9d, 0xf9, 0xf1, - 0x63, 0xb4, 0x73, 0xce, 0x84, 0x3c, 0xcd, 0x06, 0x4c, 0xc2, 0x03, 0x1e, 0x83, 0xdd, 0xd4, 0x53, - 0x7a, 0xf7, 0xe5, 0xf6, 0xac, 0x18, 0xc1, 0x0d, 0xa3, 0xbe, 0x73, 0xf7, 0x7f, 0x4a, 0x74, 0x49, - 0xd9, 0x9b, 0x58, 0xe8, 0xe6, 0xda, 0xf9, 0xdc, 0xe5, 0x42, 0xe2, 0xef, 0x57, 0xee, 0x8d, 0xbc, - 0x5c, 0x1d, 0x8a, 0xad, 0xaf, 0xed, 0xba, 0xa9, 0xa5, 0x33, 0x43, 0x16, 0x6e, 0xed, 0x07, 0xd4, - 0xe2, 0x12, 0x62, 0x61, 0xd7, 0xf7, 0x1a, 0xfb, 0xbd, 0xdb, 0x47, 0xaf, 0x7e, 0x08, 0xc1, 0x6b, - 0x26, 0x4d, 0xeb, 0x44, 0x09, 0xd2, 0x52, 0xd7, 0xfb, 0xa3, 0xf1, 0x82, 0x06, 0xd5, 0x49, 0xe2, - 0xb7, 0xd0, 0x56, 0x5e, 0x9a, 0xba, 0xbf, 0xed, 0xa0, 0xa7, 0xb6, 0x62, 0x22, 0xe8, 0xcc, 0x87, - 0xdf, 0x47, 0x9d, 0x42, 0x40, 0x9e, 0xb0, 0x18, 0xcc, 0xaa, 0xe7, 0x7d, 0x9d, 0x1a, 0x9c, 0xce, - 0x23, 0xf0, 0x4d, 0xd4, 0x28, 0xf8, 0xc0, 0xac, 0xba, 0x67, 0x02, 0x1b, 0xa7, 0x27, 0x5f, 0x50, - 0x85, 0x63, 0x0f, 0xb5, 0xa3, 0x3c, 0x2d, 0x32, 0x61, 0x37, 0xf7, 0x1a, 0xfb, 0xdd, 0x00, 0xa9, - 0x8b, 0xf9, 0x52, 0x23, 0xd4, 0x78, 0x30, 0x41, 0xed, 0x42, 0xdd, 0x83, 0xb0, 0x5b, 0x3a, 0xe6, - 0x86, 0x8a, 0x39, 0xd5, 0xc8, 0xf3, 0x89, 0xdb, 0xf9, 0x1a, 0xc6, 0xda, 0xa0, 0x26, 0x0a, 0x27, - 0xa8, 0x05, 0x3f, 0xcb, 0x9c, 0xd9, 0x6d, 0x3d, 0xca, 0x93, 0xab, 0xbd, 0x5b, 0x72, 0x47, 0x69, - 0xdd, 0x49, 0x64, 0x3e, 0xae, 0x26, 0xab, 0x31, 0x5a, 0xa6, 0xd9, 0x05, 0x84, 0xaa, 0x18, 0x7c, - 0x1d, 0x35, 0x86, 0x30, 0x2e, 0x1f, 0x10, 0x55, 0x9f, 0xf8, 0x73, 0xd4, 0x1a, 0xb1, 0xf3, 0x02, - 0xcc, 0x7f, 0xe4, 0xbd, 0x8d, 0xf5, 0x68, 0xb5, 0x6f, 0x15, 0x85, 0x96, 0xcc, 0xa3, 0xfa, 0xa1, - 0xe5, 0xfd, 0x65, 0x21, 0x77, 0xc3, 0xeb, 0xc7, 0x3f, 0x21, 0x14, 0xce, 0xde, 0xa6, 0xb0, 0x2d, - 0xdd, 0xff, 0xf1, 0xab, 0xf7, 0x3f, 0x7f, 0xe7, 0xd5, 0x8f, 0x72, 0x0e, 0x09, 0xba, 0x90, 0x0a, - 0x1f, 0xa0, 0xde, 0x82, 0xb4, 0xee, 0x74, 0x3b, 0xb8, 0x36, 0x9d, 0xb8, 0xbd, 0x05, 0x71, 0xba, - 0x18, 0xe3, 0x7d, 0x62, 0xc6, 0xa6, 0x1b, 0xc5, 0xee, 0xec, 0xfe, 0x2d, 0xbd, 0xe3, 0xee, 0xf2, - 0xfd, 0x1e, 0x75, 0x7e, 0xfd, 0xdd, 0xad, 0x3d, 0xf9, 0x7b, 0xaf, 0x16, 0xdc, 0xba, 0xb8, 0x74, - 0x6a, 0x4f, 0x2f, 0x9d, 0xda, 0xb3, 0x4b, 0xa7, 0xf6, 0x64, 0xea, 0x58, 0x17, 0x53, 0xc7, 0x7a, - 0x3a, 0x75, 0xac, 0x67, 0x53, 0xc7, 0xfa, 0x67, 0xea, 0x58, 0xbf, 0xfc, 0xeb, 0xd4, 0xbe, 0xdb, - 0x32, 0xdd, 0xfd, 0x17, 0x00, 0x00, 0xff, 0xff, 0x73, 0x7d, 0xca, 0x2a, 0xb4, 0x07, 0x00, 0x00, + // 804 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x54, 0x4d, 0x8f, 0xdb, 0x44, + 0x18, 0x8e, 0xf3, 0xb5, 0xc9, 0x64, 0xd9, 0x56, 0x23, 0x54, 0x99, 0x95, 0x6a, 0xaf, 0x2c, 0x40, + 0xcb, 0x47, 0xc7, 0x6c, 0x85, 0x60, 0xb5, 0x07, 0x04, 0x5e, 0x2a, 0x58, 0xd1, 0x0a, 0x69, 0xda, + 0x70, 0x40, 0x48, 0x74, 0xe2, 0xbc, 0x75, 0xa6, 0xa9, 0x3f, 0xf0, 0x8c, 0x03, 0xb9, 0xf5, 0x27, + 0x70, 0xe4, 0x82, 0xc4, 0x2f, 0xe1, 0xbc, 0x1c, 0x90, 0x7a, 0xec, 0x01, 0x45, 0x6c, 0xf8, 0x17, + 0x3d, 0xa1, 0x19, 0x4f, 0xe2, 0x90, 0x55, 0x48, 0xd5, 0xbd, 0x79, 0x9e, 0xf7, 0x79, 0x9e, 0xf7, + 0x63, 0xde, 0x31, 0xfa, 0x72, 0x7c, 0x2c, 0x08, 0x4f, 0xfd, 0x71, 0x31, 0x80, 0x3c, 0x01, 0x09, + 0xc2, 0x9f, 0x40, 0x32, 0x4c, 0x73, 0xdf, 0x04, 0x58, 0xc6, 0xfd, 0x10, 0x72, 0xc9, 0x1f, 0xf1, + 0x90, 0xe9, 0xf0, 0xd1, 0x00, 0x24, 0x3b, 0xf2, 0x23, 0x48, 0x20, 0x67, 0x12, 0x86, 0x24, 0xcb, + 0x53, 0x99, 0x62, 0xb7, 0x14, 0x10, 0x96, 0x71, 0xb2, 0x2a, 0x20, 0x46, 0xb0, 0x7f, 0x2b, 0xe2, + 0x72, 0x54, 0x0c, 0x48, 0x98, 0xc6, 0x7e, 0x94, 0x46, 0xa9, 0xaf, 0x75, 0x83, 0xe2, 0x91, 0x3e, + 0xe9, 0x83, 0xfe, 0x2a, 0xfd, 0xf6, 0x3f, 0xac, 0x0a, 0x88, 0x59, 0x38, 0xe2, 0x09, 0xe4, 0x53, + 0x3f, 0x1b, 0x47, 0x0a, 0x10, 0x7e, 0x0c, 0x92, 0xf9, 0x93, 0x4b, 0x55, 0xec, 0xfb, 0x9b, 0x54, + 0x79, 0x91, 0x48, 0x1e, 0xc3, 0x25, 0xc1, 0x47, 0xdb, 0x04, 0x22, 0x1c, 0x41, 0xcc, 0xd6, 0x75, + 0xde, 0x1f, 0x75, 0xf4, 0xc6, 0x69, 0xd5, 0xe6, 0x7d, 0x1e, 0x25, 0x3c, 0x89, 0x28, 0xfc, 0x50, + 0x80, 0x90, 0xf8, 0x21, 0xea, 0xa8, 0x0a, 0x87, 0x4c, 0x32, 0xdb, 0x3a, 0xb0, 0x0e, 0x7b, 0xb7, + 0x3f, 0x20, 0xd5, 0x7c, 0x96, 0x89, 0x48, 0x36, 0x8e, 0x14, 0x20, 0x88, 0x62, 0x93, 0xc9, 0x11, + 0xf9, 0x7a, 0xf0, 0x18, 0x42, 0x79, 0x0f, 0x24, 0x0b, 0xf0, 0xf9, 0xcc, 0xad, 0xcd, 0x67, 0x2e, + 0xaa, 0x30, 0xba, 0x74, 0xc5, 0x0f, 0x51, 0x53, 0x64, 0x10, 0xda, 0x75, 0xed, 0xfe, 0x09, 0xd9, + 0x32, 0x7d, 0xb2, 0xb1, 0xd6, 0xfb, 0x19, 0x84, 0xc1, 0xae, 0xc9, 0xd5, 0x54, 0x27, 0xaa, 0x9d, + 0xf1, 0x08, 0xb5, 0x85, 0x64, 0xb2, 0x10, 0x76, 0x43, 0xe7, 0xf8, 0xf4, 0x0a, 0x39, 0xb4, 0x4f, + 0xb0, 0x67, 0xb2, 0xb4, 0xcb, 0x33, 0x35, 0xfe, 0xde, 0xaf, 0x75, 0xe4, 0x6d, 0xd4, 0x9e, 0xa6, + 0xc9, 0x90, 0x4b, 0x9e, 0x26, 0xf8, 0x18, 0x35, 0xe5, 0x34, 0x03, 0x3d, 0xd0, 0x6e, 0xf0, 0xe6, + 0xa2, 0xe4, 0x07, 0xd3, 0x0c, 0x5e, 0xcc, 0xdc, 0xd7, 0xd7, 0xf9, 0x0a, 0xa7, 0x5a, 0x81, 0xdf, + 0x46, 0xed, 0x1c, 0x98, 0x48, 0x13, 0x3d, 0xae, 0x6e, 0x55, 0x08, 0xd5, 0x28, 0x35, 0x51, 0xfc, + 0x0e, 0xda, 0x89, 0x41, 0x08, 0x16, 0x81, 0xee, 0xb9, 0x1b, 0x5c, 0x33, 0xc4, 0x9d, 0x7b, 0x25, + 0x4c, 0x17, 0x71, 0xfc, 0x18, 0xed, 0x3d, 0x61, 0x42, 0xf6, 0xb3, 0x21, 0x93, 0xf0, 0x80, 0xc7, + 0x60, 0x37, 0xf5, 0x94, 0xde, 0x7d, 0xb9, 0x7b, 0x56, 0x8a, 0xe0, 0x86, 0x71, 0xdf, 0xbb, 0xfb, + 0x1f, 0x27, 0xba, 0xe6, 0xec, 0xcd, 0x2c, 0x74, 0x73, 0xe3, 0x7c, 0xee, 0x72, 0x21, 0xf1, 0x77, + 0x97, 0xf6, 0x8d, 0xbc, 0x5c, 0x1d, 0x4a, 0xad, 0xb7, 0xed, 0xba, 0xa9, 0xa5, 0xb3, 0x40, 0x56, + 0x76, 0xed, 0x7b, 0xd4, 0xe2, 0x12, 0x62, 0x61, 0xd7, 0x0f, 0x1a, 0x87, 0xbd, 0xdb, 0x27, 0xaf, + 0xbe, 0x08, 0xc1, 0x6b, 0x26, 0x4d, 0xeb, 0x4c, 0x19, 0xd2, 0xd2, 0xd7, 0xfb, 0xbd, 0xf1, 0x3f, + 0x0d, 0xaa, 0x95, 0xc4, 0x6f, 0xa1, 0x9d, 0xbc, 0x3c, 0xea, 0xfe, 0x76, 0x83, 0x9e, 0xba, 0x15, + 0xc3, 0xa0, 0x8b, 0x18, 0x7e, 0x1f, 0x75, 0x0a, 0x01, 0x79, 0xc2, 0x62, 0x30, 0x57, 0xbd, 0xec, + 0xab, 0x6f, 0x70, 0xba, 0x64, 0xe0, 0x9b, 0xa8, 0x51, 0xf0, 0xa1, 0xb9, 0xea, 0x9e, 0x21, 0x36, + 0xfa, 0x67, 0x9f, 0x53, 0x85, 0x63, 0x0f, 0xb5, 0xa3, 0x3c, 0x2d, 0x32, 0x61, 0x37, 0x0f, 0x1a, + 0x87, 0xdd, 0x00, 0xa9, 0x8d, 0xf9, 0x42, 0x23, 0xd4, 0x44, 0x30, 0x41, 0xed, 0x42, 0xed, 0x83, + 0xb0, 0x5b, 0x9a, 0x73, 0x43, 0x71, 0xfa, 0x1a, 0x79, 0x31, 0x73, 0x3b, 0x5f, 0xc1, 0x54, 0x1f, + 0xa8, 0x61, 0xe1, 0x04, 0xb5, 0xe0, 0x27, 0x99, 0x33, 0xbb, 0xad, 0x47, 0x79, 0x76, 0xb5, 0x77, + 0x4b, 0xee, 0x28, 0xaf, 0x3b, 0x89, 0xcc, 0xa7, 0xd5, 0x64, 0x35, 0x46, 0xcb, 0x34, 0xfb, 0x80, + 0x50, 0xc5, 0xc1, 0xd7, 0x51, 0x63, 0x0c, 0xd3, 0xf2, 0x01, 0x51, 0xf5, 0x89, 0x3f, 0x43, 0xad, + 0x09, 0x7b, 0x52, 0x80, 0xf9, 0x8f, 0xbc, 0xb7, 0xb5, 0x1e, 0xed, 0xf6, 0x8d, 0x92, 0xd0, 0x52, + 0x79, 0x52, 0x3f, 0xb6, 0xbc, 0x3f, 0x2d, 0xe4, 0x6e, 0x79, 0xfd, 0xf8, 0x47, 0x84, 0xc2, 0xc5, + 0xdb, 0x14, 0xb6, 0xa5, 0xfb, 0x3f, 0x7d, 0xf5, 0xfe, 0x97, 0xef, 0xbc, 0xfa, 0x51, 0x2e, 0x21, + 0x41, 0x57, 0x52, 0xe1, 0x23, 0xd4, 0x5b, 0xb1, 0xd6, 0x9d, 0xee, 0x06, 0xd7, 0xe6, 0x33, 0xb7, + 0xb7, 0x62, 0x4e, 0x57, 0x39, 0xde, 0xc7, 0x66, 0x6c, 0xba, 0x51, 0xec, 0x2e, 0xf6, 0xdf, 0xd2, + 0x77, 0xdc, 0x5d, 0xdf, 0xdf, 0x93, 0xce, 0x2f, 0xbf, 0xb9, 0xb5, 0xa7, 0x7f, 0x1d, 0xd4, 0x82, + 0x5b, 0xe7, 0x17, 0x4e, 0xed, 0xd9, 0x85, 0x53, 0x7b, 0x7e, 0xe1, 0xd4, 0x9e, 0xce, 0x1d, 0xeb, + 0x7c, 0xee, 0x58, 0xcf, 0xe6, 0x8e, 0xf5, 0x7c, 0xee, 0x58, 0x7f, 0xcf, 0x1d, 0xeb, 0xe7, 0x7f, + 0x9c, 0xda, 0xb7, 0x3b, 0xa6, 0xbb, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0xb7, 0x6b, 0x5b, 0xf9, + 0x7f, 0x07, 0x00, 0x00, } diff --git a/vendor/k8s.io/api/certificates/v1beta1/generated.proto b/vendor/k8s.io/api/certificates/v1beta1/generated.proto index e3cd9000f..5200224a2 100644 --- a/vendor/k8s.io/api/certificates/v1beta1/generated.proto +++ b/vendor/k8s.io/api/certificates/v1beta1/generated.proto @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -24,7 +24,6 @@ package k8s.io.api.certificates.v1beta1; import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; -import "k8s.io/apimachinery/pkg/util/intstr/generated.proto"; // Package-wide variables from generator "generated". option go_package = "v1beta1"; diff --git a/vendor/k8s.io/api/certificates/v1beta1/types_swagger_doc_generated.go b/vendor/k8s.io/api/certificates/v1beta1/types_swagger_doc_generated.go index 4fd91df06..f6a7e16ac 100644 --- a/vendor/k8s.io/api/certificates/v1beta1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/certificates/v1beta1/types_swagger_doc_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2016 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -26,7 +26,7 @@ package v1beta1 // // Those methods can be generated by using hack/update-generated-swagger-docs.sh -// AUTO-GENERATED FUNCTIONS START HERE +// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT. var map_CertificateSigningRequest = map[string]string{ "": "Describes a certificate signing request", "spec": "The certificate request itself and any additional information.", diff --git a/vendor/k8s.io/api/certificates/v1beta1/zz_generated.deepcopy.go b/vendor/k8s.io/api/certificates/v1beta1/zz_generated.deepcopy.go index 5848a255b..1b103f155 100644 --- a/vendor/k8s.io/api/certificates/v1beta1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/api/certificates/v1beta1/zz_generated.deepcopy.go @@ -1,7 +1,7 @@ // +build !ignore_autogenerated /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -124,12 +124,15 @@ func (in *CertificateSigningRequestSpec) DeepCopyInto(out *CertificateSigningReq in, out := &in.Extra, &out.Extra *out = make(map[string]ExtraValue, len(*in)) for key, val := range *in { + var outVal []string if val == nil { (*out)[key] = nil } else { - (*out)[key] = make([]string, len(val)) - copy((*out)[key], val) + in, out := &val, &outVal + *out = make(ExtraValue, len(*in)) + copy(*out, *in) } + (*out)[key] = outVal } } return diff --git a/vendor/k8s.io/api/coordination/v1beta1/doc.go b/vendor/k8s.io/api/coordination/v1beta1/doc.go new file mode 100644 index 000000000..bc95fd17d --- /dev/null +++ b/vendor/k8s.io/api/coordination/v1beta1/doc.go @@ -0,0 +1,22 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// +k8s:deepcopy-gen=package +// +k8s:openapi-gen=true + +// +groupName=coordination.k8s.io + +package v1beta1 // import "k8s.io/api/coordination/v1beta1" diff --git a/vendor/k8s.io/api/coordination/v1beta1/generated.pb.go b/vendor/k8s.io/api/coordination/v1beta1/generated.pb.go new file mode 100644 index 000000000..aa57e9dd6 --- /dev/null +++ b/vendor/k8s.io/api/coordination/v1beta1/generated.pb.go @@ -0,0 +1,864 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: k8s.io/kubernetes/vendor/k8s.io/api/coordination/v1beta1/generated.proto + +/* + Package v1beta1 is a generated protocol buffer package. + + It is generated from these files: + k8s.io/kubernetes/vendor/k8s.io/api/coordination/v1beta1/generated.proto + + It has these top-level messages: + Lease + LeaseList + LeaseSpec +*/ +package v1beta1 + +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" + +import k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + +import strings "strings" +import reflect "reflect" + +import io "io" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +func (m *Lease) Reset() { *m = Lease{} } +func (*Lease) ProtoMessage() {} +func (*Lease) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{0} } + +func (m *LeaseList) Reset() { *m = LeaseList{} } +func (*LeaseList) ProtoMessage() {} +func (*LeaseList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{1} } + +func (m *LeaseSpec) Reset() { *m = LeaseSpec{} } +func (*LeaseSpec) ProtoMessage() {} +func (*LeaseSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{2} } + +func init() { + proto.RegisterType((*Lease)(nil), "k8s.io.api.coordination.v1beta1.Lease") + proto.RegisterType((*LeaseList)(nil), "k8s.io.api.coordination.v1beta1.LeaseList") + proto.RegisterType((*LeaseSpec)(nil), "k8s.io.api.coordination.v1beta1.LeaseSpec") +} +func (m *Lease) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Lease) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) + n1, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n1 + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) + n2, err := m.Spec.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n2 + return i, nil +} + +func (m *LeaseList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *LeaseList) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) + n3, err := m.ListMeta.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n3 + if len(m.Items) > 0 { + for _, msg := range m.Items { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + +func (m *LeaseSpec) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *LeaseSpec) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.HolderIdentity != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.HolderIdentity))) + i += copy(dAtA[i:], *m.HolderIdentity) + } + if m.LeaseDurationSeconds != nil { + dAtA[i] = 0x10 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(*m.LeaseDurationSeconds)) + } + if m.AcquireTime != nil { + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.AcquireTime.Size())) + n4, err := m.AcquireTime.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n4 + } + if m.RenewTime != nil { + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.RenewTime.Size())) + n5, err := m.RenewTime.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n5 + } + if m.LeaseTransitions != nil { + dAtA[i] = 0x28 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(*m.LeaseTransitions)) + } + return i, nil +} + +func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return offset + 1 +} +func (m *Lease) Size() (n int) { + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Spec.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *LeaseList) Size() (n int) { + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *LeaseSpec) Size() (n int) { + var l int + _ = l + if m.HolderIdentity != nil { + l = len(*m.HolderIdentity) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.LeaseDurationSeconds != nil { + n += 1 + sovGenerated(uint64(*m.LeaseDurationSeconds)) + } + if m.AcquireTime != nil { + l = m.AcquireTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.RenewTime != nil { + l = m.RenewTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.LeaseTransitions != nil { + n += 1 + sovGenerated(uint64(*m.LeaseTransitions)) + } + return n +} + +func sovGenerated(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozGenerated(x uint64) (n int) { + return sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (this *Lease) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Lease{`, + `ObjectMeta:` + strings.Replace(strings.Replace(this.ObjectMeta.String(), "ObjectMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "LeaseSpec", "LeaseSpec", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *LeaseList) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&LeaseList{`, + `ListMeta:` + strings.Replace(strings.Replace(this.ListMeta.String(), "ListMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Items), "Lease", "Lease", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *LeaseSpec) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&LeaseSpec{`, + `HolderIdentity:` + valueToStringGenerated(this.HolderIdentity) + `,`, + `LeaseDurationSeconds:` + valueToStringGenerated(this.LeaseDurationSeconds) + `,`, + `AcquireTime:` + strings.Replace(fmt.Sprintf("%v", this.AcquireTime), "MicroTime", "k8s_io_apimachinery_pkg_apis_meta_v1.MicroTime", 1) + `,`, + `RenewTime:` + strings.Replace(fmt.Sprintf("%v", this.RenewTime), "MicroTime", "k8s_io_apimachinery_pkg_apis_meta_v1.MicroTime", 1) + `,`, + `LeaseTransitions:` + valueToStringGenerated(this.LeaseTransitions) + `,`, + `}`, + }, "") + return s +} +func valueToStringGenerated(v interface{}) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("*%v", pv) +} +func (m *Lease) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Lease: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Lease: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *LeaseList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: LeaseList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: LeaseList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, Lease{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *LeaseSpec) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: LeaseSpec: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: LeaseSpec: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field HolderIdentity", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.HolderIdentity = &s + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field LeaseDurationSeconds", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.LeaseDurationSeconds = &v + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AcquireTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AcquireTime == nil { + m.AcquireTime = &k8s_io_apimachinery_pkg_apis_meta_v1.MicroTime{} + } + if err := m.AcquireTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RenewTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.RenewTime == nil { + m.RenewTime = &k8s_io_apimachinery_pkg_apis_meta_v1.MicroTime{} + } + if err := m.RenewTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field LeaseTransitions", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.LeaseTransitions = &v + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipGenerated(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + return iNdEx, nil + case 1: + iNdEx += 8 + return iNdEx, nil + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + iNdEx += length + if length < 0 { + return 0, ErrInvalidLengthGenerated + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + innerWire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + innerWireType := int(innerWire & 0x7) + if innerWireType == 4 { + break + } + next, err := skipGenerated(dAtA[start:]) + if err != nil { + return 0, err + } + iNdEx = start + next + } + return iNdEx, nil + case 4: + return iNdEx, nil + case 5: + iNdEx += 4 + return iNdEx, nil + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + } + panic("unreachable") +} + +var ( + ErrInvalidLengthGenerated = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowGenerated = fmt.Errorf("proto: integer overflow") +) + +func init() { + proto.RegisterFile("k8s.io/kubernetes/vendor/k8s.io/api/coordination/v1beta1/generated.proto", fileDescriptorGenerated) +} + +var fileDescriptorGenerated = []byte{ + // 540 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x91, 0xc1, 0x6e, 0xd3, 0x40, + 0x10, 0x86, 0xe3, 0xb6, 0x11, 0xcd, 0x86, 0x96, 0xc8, 0xca, 0xc1, 0xca, 0xc1, 0xae, 0x72, 0x40, + 0x15, 0x52, 0x77, 0x49, 0x85, 0x10, 0xe2, 0x04, 0x16, 0x87, 0x56, 0xb8, 0x42, 0x72, 0x7b, 0x42, + 0x3d, 0xb0, 0xb6, 0x07, 0x67, 0x49, 0xed, 0x35, 0xbb, 0xeb, 0xa0, 0xde, 0x78, 0x04, 0xae, 0xbc, + 0x08, 0xbc, 0x42, 0x8e, 0x3d, 0xf6, 0x64, 0x11, 0xf3, 0x22, 0xc8, 0x1b, 0xb7, 0x09, 0x49, 0x51, + 0x23, 0x6e, 0xde, 0x99, 0xf9, 0xbf, 0xf9, 0xe7, 0x37, 0x3a, 0x1a, 0xbd, 0x90, 0x98, 0x71, 0x32, + 0xca, 0x03, 0x10, 0x29, 0x28, 0x90, 0x64, 0x0c, 0x69, 0xc4, 0x05, 0xa9, 0x1b, 0x34, 0x63, 0x24, + 0xe4, 0x5c, 0x44, 0x2c, 0xa5, 0x8a, 0xf1, 0x94, 0x8c, 0x07, 0x01, 0x28, 0x3a, 0x20, 0x31, 0xa4, + 0x20, 0xa8, 0x82, 0x08, 0x67, 0x82, 0x2b, 0x6e, 0x3a, 0x33, 0x01, 0xa6, 0x19, 0xc3, 0x8b, 0x02, + 0x5c, 0x0b, 0x7a, 0x07, 0x31, 0x53, 0xc3, 0x3c, 0xc0, 0x21, 0x4f, 0x48, 0xcc, 0x63, 0x4e, 0xb4, + 0x2e, 0xc8, 0x3f, 0xea, 0x97, 0x7e, 0xe8, 0xaf, 0x19, 0xaf, 0xf7, 0x6c, 0x6e, 0x20, 0xa1, 0xe1, + 0x90, 0xa5, 0x20, 0x2e, 0x49, 0x36, 0x8a, 0xab, 0x82, 0x24, 0x09, 0x28, 0x4a, 0xc6, 0x2b, 0x2e, + 0x7a, 0xe4, 0x5f, 0x2a, 0x91, 0xa7, 0x8a, 0x25, 0xb0, 0x22, 0x78, 0x7e, 0x9f, 0x40, 0x86, 0x43, + 0x48, 0xe8, 0xb2, 0xae, 0xff, 0xd3, 0x40, 0x4d, 0x0f, 0xa8, 0x04, 0xf3, 0x03, 0xda, 0xae, 0xdc, + 0x44, 0x54, 0x51, 0xcb, 0xd8, 0x33, 0xf6, 0xdb, 0x87, 0x4f, 0xf1, 0x3c, 0x8b, 0x5b, 0x28, 0xce, + 0x46, 0x71, 0x55, 0x90, 0xb8, 0x9a, 0xc6, 0xe3, 0x01, 0x7e, 0x17, 0x7c, 0x82, 0x50, 0x9d, 0x80, + 0xa2, 0xae, 0x39, 0x29, 0x9c, 0x46, 0x59, 0x38, 0x68, 0x5e, 0xf3, 0x6f, 0xa9, 0xa6, 0x87, 0xb6, + 0x64, 0x06, 0xa1, 0xb5, 0xa1, 0xe9, 0x4f, 0xf0, 0x3d, 0x49, 0x63, 0xed, 0xeb, 0x34, 0x83, 0xd0, + 0x7d, 0x58, 0x73, 0xb7, 0xaa, 0x97, 0xaf, 0x29, 0xfd, 0x1f, 0x06, 0x6a, 0xe9, 0x09, 0x8f, 0x49, + 0x65, 0x9e, 0xaf, 0xb8, 0xc7, 0xeb, 0xb9, 0xaf, 0xd4, 0xda, 0x7b, 0xa7, 0xde, 0xb1, 0x7d, 0x53, + 0x59, 0x70, 0xfe, 0x16, 0x35, 0x99, 0x82, 0x44, 0x5a, 0x1b, 0x7b, 0x9b, 0xfb, 0xed, 0xc3, 0xc7, + 0xeb, 0x59, 0x77, 0x77, 0x6a, 0x64, 0xf3, 0xb8, 0x12, 0xfb, 0x33, 0x46, 0xff, 0xfb, 0x66, 0x6d, + 0xbc, 0x3a, 0xc6, 0x7c, 0x89, 0x76, 0x87, 0xfc, 0x22, 0x02, 0x71, 0x1c, 0x41, 0xaa, 0x98, 0xba, + 0xd4, 0xf6, 0x5b, 0xae, 0x59, 0x16, 0xce, 0xee, 0xd1, 0x5f, 0x1d, 0x7f, 0x69, 0xd2, 0xf4, 0x50, + 0xf7, 0xa2, 0x02, 0xbd, 0xc9, 0x85, 0x5e, 0x7f, 0x0a, 0x21, 0x4f, 0x23, 0xa9, 0x03, 0x6e, 0xba, + 0x56, 0x59, 0x38, 0x5d, 0xef, 0x8e, 0xbe, 0x7f, 0xa7, 0xca, 0x0c, 0x50, 0x9b, 0x86, 0x9f, 0x73, + 0x26, 0xe0, 0x8c, 0x25, 0x60, 0x6d, 0xea, 0x14, 0xc9, 0x7a, 0x29, 0x9e, 0xb0, 0x50, 0xf0, 0x4a, + 0xe6, 0x3e, 0x2a, 0x0b, 0xa7, 0xfd, 0x7a, 0xce, 0xf1, 0x17, 0xa1, 0xe6, 0x39, 0x6a, 0x09, 0x48, + 0xe1, 0x8b, 0xde, 0xb0, 0xf5, 0x7f, 0x1b, 0x76, 0xca, 0xc2, 0x69, 0xf9, 0x37, 0x14, 0x7f, 0x0e, + 0x34, 0x5f, 0xa1, 0x8e, 0xbe, 0xec, 0x4c, 0xd0, 0x54, 0xb2, 0xea, 0x36, 0x69, 0x35, 0x75, 0x16, + 0xdd, 0xb2, 0x70, 0x3a, 0xde, 0x52, 0xcf, 0x5f, 0x99, 0x76, 0x0f, 0x26, 0x53, 0xbb, 0x71, 0x35, + 0xb5, 0x1b, 0xd7, 0x53, 0xbb, 0xf1, 0xb5, 0xb4, 0x8d, 0x49, 0x69, 0x1b, 0x57, 0xa5, 0x6d, 0x5c, + 0x97, 0xb6, 0xf1, 0xab, 0xb4, 0x8d, 0x6f, 0xbf, 0xed, 0xc6, 0xfb, 0x07, 0xf5, 0x6f, 0xfe, 0x13, + 0x00, 0x00, 0xff, 0xff, 0x51, 0x34, 0x6a, 0x0f, 0x77, 0x04, 0x00, 0x00, +} diff --git a/vendor/k8s.io/api/coordination/v1beta1/generated.proto b/vendor/k8s.io/api/coordination/v1beta1/generated.proto new file mode 100644 index 000000000..918e0de1c --- /dev/null +++ b/vendor/k8s.io/api/coordination/v1beta1/generated.proto @@ -0,0 +1,80 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + + +// This file was autogenerated by go-to-protobuf. Do not edit it manually! + +syntax = 'proto2'; + +package k8s.io.api.coordination.v1beta1; + +import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; +import "k8s.io/apimachinery/pkg/runtime/generated.proto"; +import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; + +// Package-wide variables from generator "generated". +option go_package = "v1beta1"; + +// Lease defines a lease concept. +message Lease { + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // Specification of the Lease. + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status + // +optional + optional LeaseSpec spec = 2; +} + +// LeaseList is a list of Lease objects. +message LeaseList { + // Standard list metadata. + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + // Items is a list of schema objects. + repeated Lease items = 2; +} + +// LeaseSpec is a specification of a Lease. +message LeaseSpec { + // holderIdentity contains the identity of the holder of a current lease. + // +optional + optional string holderIdentity = 1; + + // leaseDurationSeconds is a duration that candidates for a lease need + // to wait to force acquire it. This is measure against time of last + // observed RenewTime. + // +optional + optional int32 leaseDurationSeconds = 2; + + // acquireTime is a time when the current lease was acquired. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime acquireTime = 3; + + // renewTime is a time when the current holder of a lease has last + // updated the lease. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime renewTime = 4; + + // leaseTransitions is the number of transitions of a lease between + // holders. + // +optional + optional int32 leaseTransitions = 5; +} + diff --git a/vendor/k8s.io/api/coordination/v1beta1/register.go b/vendor/k8s.io/api/coordination/v1beta1/register.go new file mode 100644 index 000000000..85efaa64e --- /dev/null +++ b/vendor/k8s.io/api/coordination/v1beta1/register.go @@ -0,0 +1,53 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package v1beta1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +// GroupName is the group name use in this package +const GroupName = "coordination.k8s.io" + +// SchemeGroupVersion is group version used to register these objects +var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1beta1"} + +// Resource takes an unqualified resource and returns a Group qualified GroupResource +func Resource(resource string) schema.GroupResource { + return SchemeGroupVersion.WithResource(resource).GroupResource() +} + +var ( + // TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api. + // localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes. + SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) + localSchemeBuilder = &SchemeBuilder + AddToScheme = localSchemeBuilder.AddToScheme +) + +// Adds the list of known types to api.Scheme. +func addKnownTypes(scheme *runtime.Scheme) error { + scheme.AddKnownTypes(SchemeGroupVersion, + &Lease{}, + &LeaseList{}, + ) + + metav1.AddToGroupVersion(scheme, SchemeGroupVersion) + return nil +} diff --git a/vendor/k8s.io/api/coordination/v1beta1/types.go b/vendor/k8s.io/api/coordination/v1beta1/types.go new file mode 100644 index 000000000..846f72802 --- /dev/null +++ b/vendor/k8s.io/api/coordination/v1beta1/types.go @@ -0,0 +1,74 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package v1beta1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// +genclient +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// Lease defines a lease concept. +type Lease struct { + metav1.TypeMeta `json:",inline"` + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata + // +optional + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + // Specification of the Lease. + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status + // +optional + Spec LeaseSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` +} + +// LeaseSpec is a specification of a Lease. +type LeaseSpec struct { + // holderIdentity contains the identity of the holder of a current lease. + // +optional + HolderIdentity *string `json:"holderIdentity,omitempty" protobuf:"bytes,1,opt,name=holderIdentity"` + // leaseDurationSeconds is a duration that candidates for a lease need + // to wait to force acquire it. This is measure against time of last + // observed RenewTime. + // +optional + LeaseDurationSeconds *int32 `json:"leaseDurationSeconds,omitempty" protobuf:"varint,2,opt,name=leaseDurationSeconds"` + // acquireTime is a time when the current lease was acquired. + // +optional + AcquireTime *metav1.MicroTime `json:"acquireTime,omitempty" protobuf:"bytes,3,opt,name=acquireTime"` + // renewTime is a time when the current holder of a lease has last + // updated the lease. + // +optional + RenewTime *metav1.MicroTime `json:"renewTime,omitempty" protobuf:"bytes,4,opt,name=renewTime"` + // leaseTransitions is the number of transitions of a lease between + // holders. + // +optional + LeaseTransitions *int32 `json:"leaseTransitions,omitempty" protobuf:"varint,5,opt,name=leaseTransitions"` +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// LeaseList is a list of Lease objects. +type LeaseList struct { + metav1.TypeMeta `json:",inline"` + // Standard list metadata. + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata + // +optional + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + // Items is a list of schema objects. + Items []Lease `json:"items" protobuf:"bytes,2,rep,name=items"` +} diff --git a/vendor/k8s.io/api/coordination/v1beta1/types_swagger_doc_generated.go b/vendor/k8s.io/api/coordination/v1beta1/types_swagger_doc_generated.go new file mode 100644 index 000000000..4532d322a --- /dev/null +++ b/vendor/k8s.io/api/coordination/v1beta1/types_swagger_doc_generated.go @@ -0,0 +1,63 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package v1beta1 + +// This file contains a collection of methods that can be used from go-restful to +// generate Swagger API documentation for its models. Please read this PR for more +// information on the implementation: https://github.com/emicklei/go-restful/pull/215 +// +// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if +// they are on one line! For multiple line or blocks that you want to ignore use ---. +// Any context after a --- is ignored. +// +// Those methods can be generated by using hack/update-generated-swagger-docs.sh + +// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT. +var map_Lease = map[string]string{ + "": "Lease defines a lease concept.", + "metadata": "More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "spec": "Specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", +} + +func (Lease) SwaggerDoc() map[string]string { + return map_Lease +} + +var map_LeaseList = map[string]string{ + "": "LeaseList is a list of Lease objects.", + "metadata": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "items": "Items is a list of schema objects.", +} + +func (LeaseList) SwaggerDoc() map[string]string { + return map_LeaseList +} + +var map_LeaseSpec = map[string]string{ + "": "LeaseSpec is a specification of a Lease.", + "holderIdentity": "holderIdentity contains the identity of the holder of a current lease.", + "leaseDurationSeconds": "leaseDurationSeconds is a duration that candidates for a lease need to wait to force acquire it. This is measure against time of last observed RenewTime.", + "acquireTime": "acquireTime is a time when the current lease was acquired.", + "renewTime": "renewTime is a time when the current holder of a lease has last updated the lease.", + "leaseTransitions": "leaseTransitions is the number of transitions of a lease between holders.", +} + +func (LeaseSpec) SwaggerDoc() map[string]string { + return map_LeaseSpec +} + +// AUTO-GENERATED FUNCTIONS END HERE diff --git a/vendor/k8s.io/api/coordination/v1beta1/zz_generated.deepcopy.go b/vendor/k8s.io/api/coordination/v1beta1/zz_generated.deepcopy.go new file mode 100644 index 000000000..a628ac19b --- /dev/null +++ b/vendor/k8s.io/api/coordination/v1beta1/zz_generated.deepcopy.go @@ -0,0 +1,124 @@ +// +build !ignore_autogenerated + +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by deepcopy-gen. DO NOT EDIT. + +package v1beta1 + +import ( + runtime "k8s.io/apimachinery/pkg/runtime" +) + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Lease) DeepCopyInto(out *Lease) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Lease. +func (in *Lease) DeepCopy() *Lease { + if in == nil { + return nil + } + out := new(Lease) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *Lease) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LeaseList) DeepCopyInto(out *LeaseList) { + *out = *in + out.TypeMeta = in.TypeMeta + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]Lease, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LeaseList. +func (in *LeaseList) DeepCopy() *LeaseList { + if in == nil { + return nil + } + out := new(LeaseList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *LeaseList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LeaseSpec) DeepCopyInto(out *LeaseSpec) { + *out = *in + if in.HolderIdentity != nil { + in, out := &in.HolderIdentity, &out.HolderIdentity + *out = new(string) + **out = **in + } + if in.LeaseDurationSeconds != nil { + in, out := &in.LeaseDurationSeconds, &out.LeaseDurationSeconds + *out = new(int32) + **out = **in + } + if in.AcquireTime != nil { + in, out := &in.AcquireTime, &out.AcquireTime + *out = (*in).DeepCopy() + } + if in.RenewTime != nil { + in, out := &in.RenewTime, &out.RenewTime + *out = (*in).DeepCopy() + } + if in.LeaseTransitions != nil { + in, out := &in.LeaseTransitions, &out.LeaseTransitions + *out = new(int32) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LeaseSpec. +func (in *LeaseSpec) DeepCopy() *LeaseSpec { + if in == nil { + return nil + } + out := new(LeaseSpec) + in.DeepCopyInto(out) + return out +} diff --git a/vendor/k8s.io/api/core/v1/BUILD b/vendor/k8s.io/api/core/v1/BUILD deleted file mode 100644 index 560ff5bd7..000000000 --- a/vendor/k8s.io/api/core/v1/BUILD +++ /dev/null @@ -1,64 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_test( - name = "go_default_test", - srcs = [ - "taint_test.go", - "toleration_test.go", - ], - embed = [":go_default_library"], -) - -go_library( - name = "go_default_library", - srcs = [ - "annotation_key_constants.go", - "doc.go", - "generated.pb.go", - "meta.go", - "objectreference.go", - "register.go", - "resource.go", - "taint.go", - "toleration.go", - "types.go", - "types_swagger_doc_generated.go", - "zz_generated.deepcopy.go", - ], - importpath = "k8s.io/api/core/v1", - deps = [ - "//vendor/github.com/gogo/protobuf/proto:go_default_library", - "//vendor/github.com/gogo/protobuf/sortkeys:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) - -filegroup( - name = "go_default_library_protos", - srcs = ["generated.proto"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/api/core/v1/annotation_key_constants.go b/vendor/k8s.io/api/core/v1/annotation_key_constants.go index de4e3cee4..2c72ec2df 100644 --- a/vendor/k8s.io/api/core/v1/annotation_key_constants.go +++ b/vendor/k8s.io/api/core/v1/annotation_key_constants.go @@ -45,24 +45,17 @@ const ( // to one container of a pod. SeccompContainerAnnotationKeyPrefix string = "container.seccomp.security.alpha.kubernetes.io/" + // SeccompProfileRuntimeDefault represents the default seccomp profile used by container runtime. + SeccompProfileRuntimeDefault string = "runtime/default" + + // DeprecatedSeccompProfileDockerDefault represents the default seccomp profile used by docker. + // This is now deprecated and should be replaced by SeccompProfileRuntimeDefault. + DeprecatedSeccompProfileDockerDefault string = "docker/default" + // PreferAvoidPodsAnnotationKey represents the key of preferAvoidPods data (json serialized) // in the Annotations of a Node. PreferAvoidPodsAnnotationKey string = "scheduler.alpha.kubernetes.io/preferAvoidPods" - // SysctlsPodAnnotationKey represents the key of sysctls which are set for the infrastructure - // container of a pod. The annotation value is a comma separated list of sysctl_name=value - // key-value pairs. Only a limited set of whitelisted and isolated sysctls is supported by - // the kubelet. Pods with other sysctls will fail to launch. - SysctlsPodAnnotationKey string = "security.alpha.kubernetes.io/sysctls" - - // UnsafeSysctlsPodAnnotationKey represents the key of sysctls which are set for the infrastructure - // container of a pod. The annotation value is a comma separated list of sysctl_name=value - // key-value pairs. Unsafe sysctls must be explicitly enabled for a kubelet. They are properly - // namespaced to a pod or a container, but their isolation is usually unclear or weak. Their use - // is at-your-own-risk. Pods that attempt to set an unsafe sysctl that is not enabled for a kubelet - // will fail to launch. - UnsafeSysctlsPodAnnotationKey string = "security.alpha.kubernetes.io/unsafe-sysctls" - // ObjectTTLAnnotations represents a suggestion for kubelet for how long it can cache // an object (e.g. secret, config map) before fetching it again from apiserver. // This annotation can be attached to node. @@ -85,4 +78,23 @@ const ( // // Not all cloud providers support this annotation, though AWS & GCE do. AnnotationLoadBalancerSourceRangesKey = "service.beta.kubernetes.io/load-balancer-source-ranges" + + // EndpointsLastChangeTriggerTime is the annotation key, set for endpoints objects, that + // represents the timestamp (stored as RFC 3339 date-time string, e.g. '2018-10-22T19:32:52.1Z') + // of the last change, of some Pod or Service object, that triggered the endpoints object change. + // In other words, if a Pod / Service changed at time T0, that change was observed by endpoints + // controller at T1, and the Endpoints object was changed at T2, the + // EndpointsLastChangeTriggerTime would be set to T0. + // + // The "endpoints change trigger" here means any Pod or Service change that resulted in the + // Endpoints object change. + // + // Given the definition of the "endpoints change trigger", please note that this annotation will + // be set ONLY for endpoints object changes triggered by either Pod or Service change. If the + // Endpoints object changes due to other reasons, this annotation won't be set (or updated if it's + // already set). + // + // This annotation will be used to compute the in-cluster network programming latency SLI, see + // https://github.com/kubernetes/community/blob/master/sig-scalability/slos/network_programming_latency.md + EndpointsLastChangeTriggerTime = "endpoints.kubernetes.io/last-change-trigger-time" ) diff --git a/vendor/k8s.io/api/core/v1/generated.pb.go b/vendor/k8s.io/api/core/v1/generated.pb.go index 48bfca98f..05cc6d628 100644 --- a/vendor/k8s.io/api/core/v1/generated.pb.go +++ b/vendor/k8s.io/api/core/v1/generated.pb.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -14,9 +14,8 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: k8s.io/kubernetes/vendor/k8s.io/api/core/v1/generated.proto -// DO NOT EDIT! /* Package v1 is a generated protocol buffer package. @@ -37,6 +36,7 @@ limitations under the License. Capabilities CephFSPersistentVolumeSource CephFSVolumeSource + CinderPersistentVolumeSource CinderVolumeSource ClientIPConfig ComponentCondition @@ -46,6 +46,7 @@ limitations under the License. ConfigMapEnvSource ConfigMapKeySelector ConfigMapList + ConfigMapNodeConfigSource ConfigMapProjection ConfigMapVolumeSource Container @@ -57,7 +58,6 @@ limitations under the License. ContainerStateWaiting ContainerStatus DaemonEndpoint - DeleteOptions DownwardAPIProjection DownwardAPIVolumeFile DownwardAPIVolumeSource @@ -81,6 +81,7 @@ limitations under the License. FlockerVolumeSource GCEPersistentDiskVolumeSource GitRepoVolumeSource + GlusterfsPersistentVolumeSource GlusterfsVolumeSource HTTPGetAction HTTPHeader @@ -96,7 +97,6 @@ limitations under the License. LimitRangeList LimitRangeSpec List - ListOptions LoadBalancerIngress LoadBalancerStatus LocalObjectReference @@ -111,6 +111,7 @@ limitations under the License. NodeAffinity NodeCondition NodeConfigSource + NodeConfigStatus NodeDaemonEndpoints NodeList NodeProxyOptions @@ -122,7 +123,6 @@ limitations under the License. NodeStatus NodeSystemInfo ObjectFieldSelector - ObjectMeta ObjectReference PersistentVolume PersistentVolumeClaim @@ -149,6 +149,7 @@ limitations under the License. PodLogOptions PodPortForwardOptions PodProxyOptions + PodReadinessGate PodSecurityContext PodSignature PodSpec @@ -181,6 +182,8 @@ limitations under the License. SELinuxOptions ScaleIOPersistentVolumeSource ScaleIOVolumeSource + ScopeSelector + ScopedResourceSelectorRequirement Secret SecretEnvSource SecretKeySelector @@ -193,6 +196,7 @@ limitations under the License. Service ServiceAccount ServiceAccountList + ServiceAccountTokenProjection ServiceList ServicePort ServiceProxyOptions @@ -205,6 +209,9 @@ limitations under the License. TCPSocketAction Taint Toleration + TopologySelectorLabelRequirement + TopologySelectorTerm + TypedLocalObjectReference Volume VolumeDevice VolumeMount @@ -300,756 +307,802 @@ func (m *CephFSVolumeSource) Reset() { *m = CephFSVolumeSourc func (*CephFSVolumeSource) ProtoMessage() {} func (*CephFSVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{11} } +func (m *CinderPersistentVolumeSource) Reset() { *m = CinderPersistentVolumeSource{} } +func (*CinderPersistentVolumeSource) ProtoMessage() {} +func (*CinderPersistentVolumeSource) Descriptor() ([]byte, []int) { + return fileDescriptorGenerated, []int{12} +} + func (m *CinderVolumeSource) Reset() { *m = CinderVolumeSource{} } func (*CinderVolumeSource) ProtoMessage() {} -func (*CinderVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{12} } +func (*CinderVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{13} } func (m *ClientIPConfig) Reset() { *m = ClientIPConfig{} } func (*ClientIPConfig) ProtoMessage() {} -func (*ClientIPConfig) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{13} } +func (*ClientIPConfig) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{14} } func (m *ComponentCondition) Reset() { *m = ComponentCondition{} } func (*ComponentCondition) ProtoMessage() {} -func (*ComponentCondition) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{14} } +func (*ComponentCondition) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{15} } func (m *ComponentStatus) Reset() { *m = ComponentStatus{} } func (*ComponentStatus) ProtoMessage() {} -func (*ComponentStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{15} } +func (*ComponentStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{16} } func (m *ComponentStatusList) Reset() { *m = ComponentStatusList{} } func (*ComponentStatusList) ProtoMessage() {} -func (*ComponentStatusList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{16} } +func (*ComponentStatusList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{17} } func (m *ConfigMap) Reset() { *m = ConfigMap{} } func (*ConfigMap) ProtoMessage() {} -func (*ConfigMap) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{17} } +func (*ConfigMap) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{18} } func (m *ConfigMapEnvSource) Reset() { *m = ConfigMapEnvSource{} } func (*ConfigMapEnvSource) ProtoMessage() {} -func (*ConfigMapEnvSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{18} } +func (*ConfigMapEnvSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{19} } func (m *ConfigMapKeySelector) Reset() { *m = ConfigMapKeySelector{} } func (*ConfigMapKeySelector) ProtoMessage() {} -func (*ConfigMapKeySelector) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{19} } +func (*ConfigMapKeySelector) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{20} } func (m *ConfigMapList) Reset() { *m = ConfigMapList{} } func (*ConfigMapList) ProtoMessage() {} -func (*ConfigMapList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{20} } +func (*ConfigMapList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{21} } + +func (m *ConfigMapNodeConfigSource) Reset() { *m = ConfigMapNodeConfigSource{} } +func (*ConfigMapNodeConfigSource) ProtoMessage() {} +func (*ConfigMapNodeConfigSource) Descriptor() ([]byte, []int) { + return fileDescriptorGenerated, []int{22} +} func (m *ConfigMapProjection) Reset() { *m = ConfigMapProjection{} } func (*ConfigMapProjection) ProtoMessage() {} -func (*ConfigMapProjection) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{21} } +func (*ConfigMapProjection) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{23} } func (m *ConfigMapVolumeSource) Reset() { *m = ConfigMapVolumeSource{} } func (*ConfigMapVolumeSource) ProtoMessage() {} -func (*ConfigMapVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{22} } +func (*ConfigMapVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{24} } func (m *Container) Reset() { *m = Container{} } func (*Container) ProtoMessage() {} -func (*Container) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{23} } +func (*Container) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{25} } func (m *ContainerImage) Reset() { *m = ContainerImage{} } func (*ContainerImage) ProtoMessage() {} -func (*ContainerImage) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{24} } +func (*ContainerImage) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{26} } func (m *ContainerPort) Reset() { *m = ContainerPort{} } func (*ContainerPort) ProtoMessage() {} -func (*ContainerPort) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{25} } +func (*ContainerPort) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{27} } func (m *ContainerState) Reset() { *m = ContainerState{} } func (*ContainerState) ProtoMessage() {} -func (*ContainerState) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{26} } +func (*ContainerState) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{28} } func (m *ContainerStateRunning) Reset() { *m = ContainerStateRunning{} } func (*ContainerStateRunning) ProtoMessage() {} -func (*ContainerStateRunning) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{27} } +func (*ContainerStateRunning) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{29} } func (m *ContainerStateTerminated) Reset() { *m = ContainerStateTerminated{} } func (*ContainerStateTerminated) ProtoMessage() {} func (*ContainerStateTerminated) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{28} + return fileDescriptorGenerated, []int{30} } func (m *ContainerStateWaiting) Reset() { *m = ContainerStateWaiting{} } func (*ContainerStateWaiting) ProtoMessage() {} -func (*ContainerStateWaiting) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{29} } +func (*ContainerStateWaiting) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{31} } func (m *ContainerStatus) Reset() { *m = ContainerStatus{} } func (*ContainerStatus) ProtoMessage() {} -func (*ContainerStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{30} } +func (*ContainerStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{32} } func (m *DaemonEndpoint) Reset() { *m = DaemonEndpoint{} } func (*DaemonEndpoint) ProtoMessage() {} -func (*DaemonEndpoint) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{31} } - -func (m *DeleteOptions) Reset() { *m = DeleteOptions{} } -func (*DeleteOptions) ProtoMessage() {} -func (*DeleteOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{32} } +func (*DaemonEndpoint) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{33} } func (m *DownwardAPIProjection) Reset() { *m = DownwardAPIProjection{} } func (*DownwardAPIProjection) ProtoMessage() {} -func (*DownwardAPIProjection) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{33} } +func (*DownwardAPIProjection) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{34} } func (m *DownwardAPIVolumeFile) Reset() { *m = DownwardAPIVolumeFile{} } func (*DownwardAPIVolumeFile) ProtoMessage() {} -func (*DownwardAPIVolumeFile) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{34} } +func (*DownwardAPIVolumeFile) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{35} } func (m *DownwardAPIVolumeSource) Reset() { *m = DownwardAPIVolumeSource{} } func (*DownwardAPIVolumeSource) ProtoMessage() {} func (*DownwardAPIVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{35} + return fileDescriptorGenerated, []int{36} } func (m *EmptyDirVolumeSource) Reset() { *m = EmptyDirVolumeSource{} } func (*EmptyDirVolumeSource) ProtoMessage() {} -func (*EmptyDirVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{36} } +func (*EmptyDirVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{37} } func (m *EndpointAddress) Reset() { *m = EndpointAddress{} } func (*EndpointAddress) ProtoMessage() {} -func (*EndpointAddress) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{37} } +func (*EndpointAddress) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{38} } func (m *EndpointPort) Reset() { *m = EndpointPort{} } func (*EndpointPort) ProtoMessage() {} -func (*EndpointPort) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{38} } +func (*EndpointPort) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{39} } func (m *EndpointSubset) Reset() { *m = EndpointSubset{} } func (*EndpointSubset) ProtoMessage() {} -func (*EndpointSubset) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{39} } +func (*EndpointSubset) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{40} } func (m *Endpoints) Reset() { *m = Endpoints{} } func (*Endpoints) ProtoMessage() {} -func (*Endpoints) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{40} } +func (*Endpoints) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{41} } func (m *EndpointsList) Reset() { *m = EndpointsList{} } func (*EndpointsList) ProtoMessage() {} -func (*EndpointsList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{41} } +func (*EndpointsList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{42} } func (m *EnvFromSource) Reset() { *m = EnvFromSource{} } func (*EnvFromSource) ProtoMessage() {} -func (*EnvFromSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{42} } +func (*EnvFromSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{43} } func (m *EnvVar) Reset() { *m = EnvVar{} } func (*EnvVar) ProtoMessage() {} -func (*EnvVar) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{43} } +func (*EnvVar) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{44} } func (m *EnvVarSource) Reset() { *m = EnvVarSource{} } func (*EnvVarSource) ProtoMessage() {} -func (*EnvVarSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{44} } +func (*EnvVarSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{45} } func (m *Event) Reset() { *m = Event{} } func (*Event) ProtoMessage() {} -func (*Event) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{45} } +func (*Event) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{46} } func (m *EventList) Reset() { *m = EventList{} } func (*EventList) ProtoMessage() {} -func (*EventList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{46} } +func (*EventList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{47} } func (m *EventSeries) Reset() { *m = EventSeries{} } func (*EventSeries) ProtoMessage() {} -func (*EventSeries) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{47} } +func (*EventSeries) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{48} } func (m *EventSource) Reset() { *m = EventSource{} } func (*EventSource) ProtoMessage() {} -func (*EventSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{48} } +func (*EventSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{49} } func (m *ExecAction) Reset() { *m = ExecAction{} } func (*ExecAction) ProtoMessage() {} -func (*ExecAction) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{49} } +func (*ExecAction) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{50} } func (m *FCVolumeSource) Reset() { *m = FCVolumeSource{} } func (*FCVolumeSource) ProtoMessage() {} -func (*FCVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{50} } +func (*FCVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{51} } func (m *FlexPersistentVolumeSource) Reset() { *m = FlexPersistentVolumeSource{} } func (*FlexPersistentVolumeSource) ProtoMessage() {} func (*FlexPersistentVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{51} + return fileDescriptorGenerated, []int{52} } func (m *FlexVolumeSource) Reset() { *m = FlexVolumeSource{} } func (*FlexVolumeSource) ProtoMessage() {} -func (*FlexVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{52} } +func (*FlexVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{53} } func (m *FlockerVolumeSource) Reset() { *m = FlockerVolumeSource{} } func (*FlockerVolumeSource) ProtoMessage() {} -func (*FlockerVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{53} } +func (*FlockerVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{54} } func (m *GCEPersistentDiskVolumeSource) Reset() { *m = GCEPersistentDiskVolumeSource{} } func (*GCEPersistentDiskVolumeSource) ProtoMessage() {} func (*GCEPersistentDiskVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{54} + return fileDescriptorGenerated, []int{55} } func (m *GitRepoVolumeSource) Reset() { *m = GitRepoVolumeSource{} } func (*GitRepoVolumeSource) ProtoMessage() {} -func (*GitRepoVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{55} } +func (*GitRepoVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{56} } + +func (m *GlusterfsPersistentVolumeSource) Reset() { *m = GlusterfsPersistentVolumeSource{} } +func (*GlusterfsPersistentVolumeSource) ProtoMessage() {} +func (*GlusterfsPersistentVolumeSource) Descriptor() ([]byte, []int) { + return fileDescriptorGenerated, []int{57} +} func (m *GlusterfsVolumeSource) Reset() { *m = GlusterfsVolumeSource{} } func (*GlusterfsVolumeSource) ProtoMessage() {} -func (*GlusterfsVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{56} } +func (*GlusterfsVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{58} } func (m *HTTPGetAction) Reset() { *m = HTTPGetAction{} } func (*HTTPGetAction) ProtoMessage() {} -func (*HTTPGetAction) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{57} } +func (*HTTPGetAction) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{59} } func (m *HTTPHeader) Reset() { *m = HTTPHeader{} } func (*HTTPHeader) ProtoMessage() {} -func (*HTTPHeader) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{58} } +func (*HTTPHeader) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{60} } func (m *Handler) Reset() { *m = Handler{} } func (*Handler) ProtoMessage() {} -func (*Handler) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{59} } +func (*Handler) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{61} } func (m *HostAlias) Reset() { *m = HostAlias{} } func (*HostAlias) ProtoMessage() {} -func (*HostAlias) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{60} } +func (*HostAlias) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{62} } func (m *HostPathVolumeSource) Reset() { *m = HostPathVolumeSource{} } func (*HostPathVolumeSource) ProtoMessage() {} -func (*HostPathVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{61} } +func (*HostPathVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{63} } func (m *ISCSIPersistentVolumeSource) Reset() { *m = ISCSIPersistentVolumeSource{} } func (*ISCSIPersistentVolumeSource) ProtoMessage() {} func (*ISCSIPersistentVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{62} + return fileDescriptorGenerated, []int{64} } func (m *ISCSIVolumeSource) Reset() { *m = ISCSIVolumeSource{} } func (*ISCSIVolumeSource) ProtoMessage() {} -func (*ISCSIVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{63} } +func (*ISCSIVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{65} } func (m *KeyToPath) Reset() { *m = KeyToPath{} } func (*KeyToPath) ProtoMessage() {} -func (*KeyToPath) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{64} } +func (*KeyToPath) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{66} } func (m *Lifecycle) Reset() { *m = Lifecycle{} } func (*Lifecycle) ProtoMessage() {} -func (*Lifecycle) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{65} } +func (*Lifecycle) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{67} } func (m *LimitRange) Reset() { *m = LimitRange{} } func (*LimitRange) ProtoMessage() {} -func (*LimitRange) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{66} } +func (*LimitRange) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{68} } func (m *LimitRangeItem) Reset() { *m = LimitRangeItem{} } func (*LimitRangeItem) ProtoMessage() {} -func (*LimitRangeItem) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{67} } +func (*LimitRangeItem) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{69} } func (m *LimitRangeList) Reset() { *m = LimitRangeList{} } func (*LimitRangeList) ProtoMessage() {} -func (*LimitRangeList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{68} } +func (*LimitRangeList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{70} } func (m *LimitRangeSpec) Reset() { *m = LimitRangeSpec{} } func (*LimitRangeSpec) ProtoMessage() {} -func (*LimitRangeSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{69} } +func (*LimitRangeSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{71} } func (m *List) Reset() { *m = List{} } func (*List) ProtoMessage() {} -func (*List) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{70} } - -func (m *ListOptions) Reset() { *m = ListOptions{} } -func (*ListOptions) ProtoMessage() {} -func (*ListOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{71} } +func (*List) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{72} } func (m *LoadBalancerIngress) Reset() { *m = LoadBalancerIngress{} } func (*LoadBalancerIngress) ProtoMessage() {} -func (*LoadBalancerIngress) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{72} } +func (*LoadBalancerIngress) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{73} } func (m *LoadBalancerStatus) Reset() { *m = LoadBalancerStatus{} } func (*LoadBalancerStatus) ProtoMessage() {} -func (*LoadBalancerStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{73} } +func (*LoadBalancerStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{74} } func (m *LocalObjectReference) Reset() { *m = LocalObjectReference{} } func (*LocalObjectReference) ProtoMessage() {} -func (*LocalObjectReference) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{74} } +func (*LocalObjectReference) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{75} } func (m *LocalVolumeSource) Reset() { *m = LocalVolumeSource{} } func (*LocalVolumeSource) ProtoMessage() {} -func (*LocalVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{75} } +func (*LocalVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{76} } func (m *NFSVolumeSource) Reset() { *m = NFSVolumeSource{} } func (*NFSVolumeSource) ProtoMessage() {} -func (*NFSVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{76} } +func (*NFSVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{77} } func (m *Namespace) Reset() { *m = Namespace{} } func (*Namespace) ProtoMessage() {} -func (*Namespace) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{77} } +func (*Namespace) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{78} } func (m *NamespaceList) Reset() { *m = NamespaceList{} } func (*NamespaceList) ProtoMessage() {} -func (*NamespaceList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{78} } +func (*NamespaceList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{79} } func (m *NamespaceSpec) Reset() { *m = NamespaceSpec{} } func (*NamespaceSpec) ProtoMessage() {} -func (*NamespaceSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{79} } +func (*NamespaceSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{80} } func (m *NamespaceStatus) Reset() { *m = NamespaceStatus{} } func (*NamespaceStatus) ProtoMessage() {} -func (*NamespaceStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{80} } +func (*NamespaceStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{81} } func (m *Node) Reset() { *m = Node{} } func (*Node) ProtoMessage() {} -func (*Node) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{81} } +func (*Node) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{82} } func (m *NodeAddress) Reset() { *m = NodeAddress{} } func (*NodeAddress) ProtoMessage() {} -func (*NodeAddress) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{82} } +func (*NodeAddress) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{83} } func (m *NodeAffinity) Reset() { *m = NodeAffinity{} } func (*NodeAffinity) ProtoMessage() {} -func (*NodeAffinity) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{83} } +func (*NodeAffinity) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{84} } func (m *NodeCondition) Reset() { *m = NodeCondition{} } func (*NodeCondition) ProtoMessage() {} -func (*NodeCondition) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{84} } +func (*NodeCondition) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{85} } func (m *NodeConfigSource) Reset() { *m = NodeConfigSource{} } func (*NodeConfigSource) ProtoMessage() {} -func (*NodeConfigSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{85} } +func (*NodeConfigSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{86} } + +func (m *NodeConfigStatus) Reset() { *m = NodeConfigStatus{} } +func (*NodeConfigStatus) ProtoMessage() {} +func (*NodeConfigStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{87} } func (m *NodeDaemonEndpoints) Reset() { *m = NodeDaemonEndpoints{} } func (*NodeDaemonEndpoints) ProtoMessage() {} -func (*NodeDaemonEndpoints) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{86} } +func (*NodeDaemonEndpoints) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{88} } func (m *NodeList) Reset() { *m = NodeList{} } func (*NodeList) ProtoMessage() {} -func (*NodeList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{87} } +func (*NodeList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{89} } func (m *NodeProxyOptions) Reset() { *m = NodeProxyOptions{} } func (*NodeProxyOptions) ProtoMessage() {} -func (*NodeProxyOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{88} } +func (*NodeProxyOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{90} } func (m *NodeResources) Reset() { *m = NodeResources{} } func (*NodeResources) ProtoMessage() {} -func (*NodeResources) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{89} } +func (*NodeResources) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{91} } func (m *NodeSelector) Reset() { *m = NodeSelector{} } func (*NodeSelector) ProtoMessage() {} -func (*NodeSelector) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{90} } +func (*NodeSelector) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{92} } func (m *NodeSelectorRequirement) Reset() { *m = NodeSelectorRequirement{} } func (*NodeSelectorRequirement) ProtoMessage() {} func (*NodeSelectorRequirement) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{91} + return fileDescriptorGenerated, []int{93} } func (m *NodeSelectorTerm) Reset() { *m = NodeSelectorTerm{} } func (*NodeSelectorTerm) ProtoMessage() {} -func (*NodeSelectorTerm) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{92} } +func (*NodeSelectorTerm) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{94} } func (m *NodeSpec) Reset() { *m = NodeSpec{} } func (*NodeSpec) ProtoMessage() {} -func (*NodeSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{93} } +func (*NodeSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{95} } func (m *NodeStatus) Reset() { *m = NodeStatus{} } func (*NodeStatus) ProtoMessage() {} -func (*NodeStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{94} } +func (*NodeStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{96} } func (m *NodeSystemInfo) Reset() { *m = NodeSystemInfo{} } func (*NodeSystemInfo) ProtoMessage() {} -func (*NodeSystemInfo) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{95} } +func (*NodeSystemInfo) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{97} } func (m *ObjectFieldSelector) Reset() { *m = ObjectFieldSelector{} } func (*ObjectFieldSelector) ProtoMessage() {} -func (*ObjectFieldSelector) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{96} } - -func (m *ObjectMeta) Reset() { *m = ObjectMeta{} } -func (*ObjectMeta) ProtoMessage() {} -func (*ObjectMeta) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{97} } +func (*ObjectFieldSelector) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{98} } func (m *ObjectReference) Reset() { *m = ObjectReference{} } func (*ObjectReference) ProtoMessage() {} -func (*ObjectReference) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{98} } +func (*ObjectReference) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{99} } func (m *PersistentVolume) Reset() { *m = PersistentVolume{} } func (*PersistentVolume) ProtoMessage() {} -func (*PersistentVolume) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{99} } +func (*PersistentVolume) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{100} } func (m *PersistentVolumeClaim) Reset() { *m = PersistentVolumeClaim{} } func (*PersistentVolumeClaim) ProtoMessage() {} -func (*PersistentVolumeClaim) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{100} } +func (*PersistentVolumeClaim) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{101} } func (m *PersistentVolumeClaimCondition) Reset() { *m = PersistentVolumeClaimCondition{} } func (*PersistentVolumeClaimCondition) ProtoMessage() {} func (*PersistentVolumeClaimCondition) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{101} + return fileDescriptorGenerated, []int{102} } func (m *PersistentVolumeClaimList) Reset() { *m = PersistentVolumeClaimList{} } func (*PersistentVolumeClaimList) ProtoMessage() {} func (*PersistentVolumeClaimList) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{102} + return fileDescriptorGenerated, []int{103} } func (m *PersistentVolumeClaimSpec) Reset() { *m = PersistentVolumeClaimSpec{} } func (*PersistentVolumeClaimSpec) ProtoMessage() {} func (*PersistentVolumeClaimSpec) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{103} + return fileDescriptorGenerated, []int{104} } func (m *PersistentVolumeClaimStatus) Reset() { *m = PersistentVolumeClaimStatus{} } func (*PersistentVolumeClaimStatus) ProtoMessage() {} func (*PersistentVolumeClaimStatus) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{104} + return fileDescriptorGenerated, []int{105} } func (m *PersistentVolumeClaimVolumeSource) Reset() { *m = PersistentVolumeClaimVolumeSource{} } func (*PersistentVolumeClaimVolumeSource) ProtoMessage() {} func (*PersistentVolumeClaimVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{105} + return fileDescriptorGenerated, []int{106} } func (m *PersistentVolumeList) Reset() { *m = PersistentVolumeList{} } func (*PersistentVolumeList) ProtoMessage() {} -func (*PersistentVolumeList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{106} } +func (*PersistentVolumeList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{107} } func (m *PersistentVolumeSource) Reset() { *m = PersistentVolumeSource{} } func (*PersistentVolumeSource) ProtoMessage() {} func (*PersistentVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{107} + return fileDescriptorGenerated, []int{108} } func (m *PersistentVolumeSpec) Reset() { *m = PersistentVolumeSpec{} } func (*PersistentVolumeSpec) ProtoMessage() {} -func (*PersistentVolumeSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{108} } +func (*PersistentVolumeSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{109} } func (m *PersistentVolumeStatus) Reset() { *m = PersistentVolumeStatus{} } func (*PersistentVolumeStatus) ProtoMessage() {} func (*PersistentVolumeStatus) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{109} + return fileDescriptorGenerated, []int{110} } func (m *PhotonPersistentDiskVolumeSource) Reset() { *m = PhotonPersistentDiskVolumeSource{} } func (*PhotonPersistentDiskVolumeSource) ProtoMessage() {} func (*PhotonPersistentDiskVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{110} + return fileDescriptorGenerated, []int{111} } func (m *Pod) Reset() { *m = Pod{} } func (*Pod) ProtoMessage() {} -func (*Pod) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{111} } +func (*Pod) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{112} } func (m *PodAffinity) Reset() { *m = PodAffinity{} } func (*PodAffinity) ProtoMessage() {} -func (*PodAffinity) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{112} } +func (*PodAffinity) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{113} } func (m *PodAffinityTerm) Reset() { *m = PodAffinityTerm{} } func (*PodAffinityTerm) ProtoMessage() {} -func (*PodAffinityTerm) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{113} } +func (*PodAffinityTerm) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{114} } func (m *PodAntiAffinity) Reset() { *m = PodAntiAffinity{} } func (*PodAntiAffinity) ProtoMessage() {} -func (*PodAntiAffinity) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{114} } +func (*PodAntiAffinity) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{115} } func (m *PodAttachOptions) Reset() { *m = PodAttachOptions{} } func (*PodAttachOptions) ProtoMessage() {} -func (*PodAttachOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{115} } +func (*PodAttachOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{116} } func (m *PodCondition) Reset() { *m = PodCondition{} } func (*PodCondition) ProtoMessage() {} -func (*PodCondition) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{116} } +func (*PodCondition) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{117} } func (m *PodDNSConfig) Reset() { *m = PodDNSConfig{} } func (*PodDNSConfig) ProtoMessage() {} -func (*PodDNSConfig) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{117} } +func (*PodDNSConfig) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{118} } func (m *PodDNSConfigOption) Reset() { *m = PodDNSConfigOption{} } func (*PodDNSConfigOption) ProtoMessage() {} -func (*PodDNSConfigOption) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{118} } +func (*PodDNSConfigOption) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{119} } func (m *PodExecOptions) Reset() { *m = PodExecOptions{} } func (*PodExecOptions) ProtoMessage() {} -func (*PodExecOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{119} } +func (*PodExecOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{120} } func (m *PodList) Reset() { *m = PodList{} } func (*PodList) ProtoMessage() {} -func (*PodList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{120} } +func (*PodList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{121} } func (m *PodLogOptions) Reset() { *m = PodLogOptions{} } func (*PodLogOptions) ProtoMessage() {} -func (*PodLogOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{121} } +func (*PodLogOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{122} } func (m *PodPortForwardOptions) Reset() { *m = PodPortForwardOptions{} } func (*PodPortForwardOptions) ProtoMessage() {} -func (*PodPortForwardOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{122} } +func (*PodPortForwardOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{123} } func (m *PodProxyOptions) Reset() { *m = PodProxyOptions{} } func (*PodProxyOptions) ProtoMessage() {} -func (*PodProxyOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{123} } +func (*PodProxyOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{124} } + +func (m *PodReadinessGate) Reset() { *m = PodReadinessGate{} } +func (*PodReadinessGate) ProtoMessage() {} +func (*PodReadinessGate) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{125} } func (m *PodSecurityContext) Reset() { *m = PodSecurityContext{} } func (*PodSecurityContext) ProtoMessage() {} -func (*PodSecurityContext) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{124} } +func (*PodSecurityContext) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{126} } func (m *PodSignature) Reset() { *m = PodSignature{} } func (*PodSignature) ProtoMessage() {} -func (*PodSignature) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{125} } +func (*PodSignature) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{127} } func (m *PodSpec) Reset() { *m = PodSpec{} } func (*PodSpec) ProtoMessage() {} -func (*PodSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{126} } +func (*PodSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{128} } func (m *PodStatus) Reset() { *m = PodStatus{} } func (*PodStatus) ProtoMessage() {} -func (*PodStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{127} } +func (*PodStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{129} } func (m *PodStatusResult) Reset() { *m = PodStatusResult{} } func (*PodStatusResult) ProtoMessage() {} -func (*PodStatusResult) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{128} } +func (*PodStatusResult) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{130} } func (m *PodTemplate) Reset() { *m = PodTemplate{} } func (*PodTemplate) ProtoMessage() {} -func (*PodTemplate) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{129} } +func (*PodTemplate) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{131} } func (m *PodTemplateList) Reset() { *m = PodTemplateList{} } func (*PodTemplateList) ProtoMessage() {} -func (*PodTemplateList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{130} } +func (*PodTemplateList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{132} } func (m *PodTemplateSpec) Reset() { *m = PodTemplateSpec{} } func (*PodTemplateSpec) ProtoMessage() {} -func (*PodTemplateSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{131} } +func (*PodTemplateSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{133} } func (m *PortworxVolumeSource) Reset() { *m = PortworxVolumeSource{} } func (*PortworxVolumeSource) ProtoMessage() {} -func (*PortworxVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{132} } +func (*PortworxVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{134} } func (m *Preconditions) Reset() { *m = Preconditions{} } func (*Preconditions) ProtoMessage() {} -func (*Preconditions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{133} } +func (*Preconditions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{135} } func (m *PreferAvoidPodsEntry) Reset() { *m = PreferAvoidPodsEntry{} } func (*PreferAvoidPodsEntry) ProtoMessage() {} -func (*PreferAvoidPodsEntry) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{134} } +func (*PreferAvoidPodsEntry) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{136} } func (m *PreferredSchedulingTerm) Reset() { *m = PreferredSchedulingTerm{} } func (*PreferredSchedulingTerm) ProtoMessage() {} func (*PreferredSchedulingTerm) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{135} + return fileDescriptorGenerated, []int{137} } func (m *Probe) Reset() { *m = Probe{} } func (*Probe) ProtoMessage() {} -func (*Probe) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{136} } +func (*Probe) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{138} } func (m *ProjectedVolumeSource) Reset() { *m = ProjectedVolumeSource{} } func (*ProjectedVolumeSource) ProtoMessage() {} -func (*ProjectedVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{137} } +func (*ProjectedVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{139} } func (m *QuobyteVolumeSource) Reset() { *m = QuobyteVolumeSource{} } func (*QuobyteVolumeSource) ProtoMessage() {} -func (*QuobyteVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{138} } +func (*QuobyteVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{140} } func (m *RBDPersistentVolumeSource) Reset() { *m = RBDPersistentVolumeSource{} } func (*RBDPersistentVolumeSource) ProtoMessage() {} func (*RBDPersistentVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{139} + return fileDescriptorGenerated, []int{141} } func (m *RBDVolumeSource) Reset() { *m = RBDVolumeSource{} } func (*RBDVolumeSource) ProtoMessage() {} -func (*RBDVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{140} } +func (*RBDVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{142} } func (m *RangeAllocation) Reset() { *m = RangeAllocation{} } func (*RangeAllocation) ProtoMessage() {} -func (*RangeAllocation) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{141} } +func (*RangeAllocation) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{143} } func (m *ReplicationController) Reset() { *m = ReplicationController{} } func (*ReplicationController) ProtoMessage() {} -func (*ReplicationController) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{142} } +func (*ReplicationController) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{144} } func (m *ReplicationControllerCondition) Reset() { *m = ReplicationControllerCondition{} } func (*ReplicationControllerCondition) ProtoMessage() {} func (*ReplicationControllerCondition) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{143} + return fileDescriptorGenerated, []int{145} } func (m *ReplicationControllerList) Reset() { *m = ReplicationControllerList{} } func (*ReplicationControllerList) ProtoMessage() {} func (*ReplicationControllerList) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{144} + return fileDescriptorGenerated, []int{146} } func (m *ReplicationControllerSpec) Reset() { *m = ReplicationControllerSpec{} } func (*ReplicationControllerSpec) ProtoMessage() {} func (*ReplicationControllerSpec) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{145} + return fileDescriptorGenerated, []int{147} } func (m *ReplicationControllerStatus) Reset() { *m = ReplicationControllerStatus{} } func (*ReplicationControllerStatus) ProtoMessage() {} func (*ReplicationControllerStatus) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{146} + return fileDescriptorGenerated, []int{148} } func (m *ResourceFieldSelector) Reset() { *m = ResourceFieldSelector{} } func (*ResourceFieldSelector) ProtoMessage() {} -func (*ResourceFieldSelector) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{147} } +func (*ResourceFieldSelector) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{149} } func (m *ResourceQuota) Reset() { *m = ResourceQuota{} } func (*ResourceQuota) ProtoMessage() {} -func (*ResourceQuota) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{148} } +func (*ResourceQuota) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{150} } func (m *ResourceQuotaList) Reset() { *m = ResourceQuotaList{} } func (*ResourceQuotaList) ProtoMessage() {} -func (*ResourceQuotaList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{149} } +func (*ResourceQuotaList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{151} } func (m *ResourceQuotaSpec) Reset() { *m = ResourceQuotaSpec{} } func (*ResourceQuotaSpec) ProtoMessage() {} -func (*ResourceQuotaSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{150} } +func (*ResourceQuotaSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{152} } func (m *ResourceQuotaStatus) Reset() { *m = ResourceQuotaStatus{} } func (*ResourceQuotaStatus) ProtoMessage() {} -func (*ResourceQuotaStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{151} } +func (*ResourceQuotaStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{153} } func (m *ResourceRequirements) Reset() { *m = ResourceRequirements{} } func (*ResourceRequirements) ProtoMessage() {} -func (*ResourceRequirements) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{152} } +func (*ResourceRequirements) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{154} } func (m *SELinuxOptions) Reset() { *m = SELinuxOptions{} } func (*SELinuxOptions) ProtoMessage() {} -func (*SELinuxOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{153} } +func (*SELinuxOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{155} } func (m *ScaleIOPersistentVolumeSource) Reset() { *m = ScaleIOPersistentVolumeSource{} } func (*ScaleIOPersistentVolumeSource) ProtoMessage() {} func (*ScaleIOPersistentVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{154} + return fileDescriptorGenerated, []int{156} } func (m *ScaleIOVolumeSource) Reset() { *m = ScaleIOVolumeSource{} } func (*ScaleIOVolumeSource) ProtoMessage() {} -func (*ScaleIOVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{155} } +func (*ScaleIOVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{157} } + +func (m *ScopeSelector) Reset() { *m = ScopeSelector{} } +func (*ScopeSelector) ProtoMessage() {} +func (*ScopeSelector) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{158} } + +func (m *ScopedResourceSelectorRequirement) Reset() { *m = ScopedResourceSelectorRequirement{} } +func (*ScopedResourceSelectorRequirement) ProtoMessage() {} +func (*ScopedResourceSelectorRequirement) Descriptor() ([]byte, []int) { + return fileDescriptorGenerated, []int{159} +} func (m *Secret) Reset() { *m = Secret{} } func (*Secret) ProtoMessage() {} -func (*Secret) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{156} } +func (*Secret) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{160} } func (m *SecretEnvSource) Reset() { *m = SecretEnvSource{} } func (*SecretEnvSource) ProtoMessage() {} -func (*SecretEnvSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{157} } +func (*SecretEnvSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{161} } func (m *SecretKeySelector) Reset() { *m = SecretKeySelector{} } func (*SecretKeySelector) ProtoMessage() {} -func (*SecretKeySelector) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{158} } +func (*SecretKeySelector) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{162} } func (m *SecretList) Reset() { *m = SecretList{} } func (*SecretList) ProtoMessage() {} -func (*SecretList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{159} } +func (*SecretList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{163} } func (m *SecretProjection) Reset() { *m = SecretProjection{} } func (*SecretProjection) ProtoMessage() {} -func (*SecretProjection) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{160} } +func (*SecretProjection) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{164} } func (m *SecretReference) Reset() { *m = SecretReference{} } func (*SecretReference) ProtoMessage() {} -func (*SecretReference) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{161} } +func (*SecretReference) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{165} } func (m *SecretVolumeSource) Reset() { *m = SecretVolumeSource{} } func (*SecretVolumeSource) ProtoMessage() {} -func (*SecretVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{162} } +func (*SecretVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{166} } func (m *SecurityContext) Reset() { *m = SecurityContext{} } func (*SecurityContext) ProtoMessage() {} -func (*SecurityContext) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{163} } +func (*SecurityContext) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{167} } func (m *SerializedReference) Reset() { *m = SerializedReference{} } func (*SerializedReference) ProtoMessage() {} -func (*SerializedReference) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{164} } +func (*SerializedReference) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{168} } func (m *Service) Reset() { *m = Service{} } func (*Service) ProtoMessage() {} -func (*Service) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{165} } +func (*Service) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{169} } func (m *ServiceAccount) Reset() { *m = ServiceAccount{} } func (*ServiceAccount) ProtoMessage() {} -func (*ServiceAccount) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{166} } +func (*ServiceAccount) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{170} } func (m *ServiceAccountList) Reset() { *m = ServiceAccountList{} } func (*ServiceAccountList) ProtoMessage() {} -func (*ServiceAccountList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{167} } +func (*ServiceAccountList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{171} } + +func (m *ServiceAccountTokenProjection) Reset() { *m = ServiceAccountTokenProjection{} } +func (*ServiceAccountTokenProjection) ProtoMessage() {} +func (*ServiceAccountTokenProjection) Descriptor() ([]byte, []int) { + return fileDescriptorGenerated, []int{172} +} func (m *ServiceList) Reset() { *m = ServiceList{} } func (*ServiceList) ProtoMessage() {} -func (*ServiceList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{168} } +func (*ServiceList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{173} } func (m *ServicePort) Reset() { *m = ServicePort{} } func (*ServicePort) ProtoMessage() {} -func (*ServicePort) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{169} } +func (*ServicePort) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{174} } func (m *ServiceProxyOptions) Reset() { *m = ServiceProxyOptions{} } func (*ServiceProxyOptions) ProtoMessage() {} -func (*ServiceProxyOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{170} } +func (*ServiceProxyOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{175} } func (m *ServiceSpec) Reset() { *m = ServiceSpec{} } func (*ServiceSpec) ProtoMessage() {} -func (*ServiceSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{171} } +func (*ServiceSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{176} } func (m *ServiceStatus) Reset() { *m = ServiceStatus{} } func (*ServiceStatus) ProtoMessage() {} -func (*ServiceStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{172} } +func (*ServiceStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{177} } func (m *SessionAffinityConfig) Reset() { *m = SessionAffinityConfig{} } func (*SessionAffinityConfig) ProtoMessage() {} -func (*SessionAffinityConfig) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{173} } +func (*SessionAffinityConfig) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{178} } func (m *StorageOSPersistentVolumeSource) Reset() { *m = StorageOSPersistentVolumeSource{} } func (*StorageOSPersistentVolumeSource) ProtoMessage() {} func (*StorageOSPersistentVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{174} + return fileDescriptorGenerated, []int{179} } func (m *StorageOSVolumeSource) Reset() { *m = StorageOSVolumeSource{} } func (*StorageOSVolumeSource) ProtoMessage() {} -func (*StorageOSVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{175} } +func (*StorageOSVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{180} } func (m *Sysctl) Reset() { *m = Sysctl{} } func (*Sysctl) ProtoMessage() {} -func (*Sysctl) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{176} } +func (*Sysctl) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{181} } func (m *TCPSocketAction) Reset() { *m = TCPSocketAction{} } func (*TCPSocketAction) ProtoMessage() {} -func (*TCPSocketAction) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{177} } +func (*TCPSocketAction) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{182} } func (m *Taint) Reset() { *m = Taint{} } func (*Taint) ProtoMessage() {} -func (*Taint) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{178} } +func (*Taint) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{183} } func (m *Toleration) Reset() { *m = Toleration{} } func (*Toleration) ProtoMessage() {} -func (*Toleration) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{179} } +func (*Toleration) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{184} } + +func (m *TopologySelectorLabelRequirement) Reset() { *m = TopologySelectorLabelRequirement{} } +func (*TopologySelectorLabelRequirement) ProtoMessage() {} +func (*TopologySelectorLabelRequirement) Descriptor() ([]byte, []int) { + return fileDescriptorGenerated, []int{185} +} + +func (m *TopologySelectorTerm) Reset() { *m = TopologySelectorTerm{} } +func (*TopologySelectorTerm) ProtoMessage() {} +func (*TopologySelectorTerm) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{186} } + +func (m *TypedLocalObjectReference) Reset() { *m = TypedLocalObjectReference{} } +func (*TypedLocalObjectReference) ProtoMessage() {} +func (*TypedLocalObjectReference) Descriptor() ([]byte, []int) { + return fileDescriptorGenerated, []int{187} +} func (m *Volume) Reset() { *m = Volume{} } func (*Volume) ProtoMessage() {} -func (*Volume) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{180} } +func (*Volume) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{188} } func (m *VolumeDevice) Reset() { *m = VolumeDevice{} } func (*VolumeDevice) ProtoMessage() {} -func (*VolumeDevice) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{181} } +func (*VolumeDevice) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{189} } func (m *VolumeMount) Reset() { *m = VolumeMount{} } func (*VolumeMount) ProtoMessage() {} -func (*VolumeMount) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{182} } +func (*VolumeMount) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{190} } func (m *VolumeNodeAffinity) Reset() { *m = VolumeNodeAffinity{} } func (*VolumeNodeAffinity) ProtoMessage() {} -func (*VolumeNodeAffinity) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{183} } +func (*VolumeNodeAffinity) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{191} } func (m *VolumeProjection) Reset() { *m = VolumeProjection{} } func (*VolumeProjection) ProtoMessage() {} -func (*VolumeProjection) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{184} } +func (*VolumeProjection) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{192} } func (m *VolumeSource) Reset() { *m = VolumeSource{} } func (*VolumeSource) ProtoMessage() {} -func (*VolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{185} } +func (*VolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{193} } func (m *VsphereVirtualDiskVolumeSource) Reset() { *m = VsphereVirtualDiskVolumeSource{} } func (*VsphereVirtualDiskVolumeSource) ProtoMessage() {} func (*VsphereVirtualDiskVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{186} + return fileDescriptorGenerated, []int{194} } func (m *WeightedPodAffinityTerm) Reset() { *m = WeightedPodAffinityTerm{} } func (*WeightedPodAffinityTerm) ProtoMessage() {} func (*WeightedPodAffinityTerm) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{187} + return fileDescriptorGenerated, []int{195} } func init() { @@ -1065,6 +1118,7 @@ func init() { proto.RegisterType((*Capabilities)(nil), "k8s.io.api.core.v1.Capabilities") proto.RegisterType((*CephFSPersistentVolumeSource)(nil), "k8s.io.api.core.v1.CephFSPersistentVolumeSource") proto.RegisterType((*CephFSVolumeSource)(nil), "k8s.io.api.core.v1.CephFSVolumeSource") + proto.RegisterType((*CinderPersistentVolumeSource)(nil), "k8s.io.api.core.v1.CinderPersistentVolumeSource") proto.RegisterType((*CinderVolumeSource)(nil), "k8s.io.api.core.v1.CinderVolumeSource") proto.RegisterType((*ClientIPConfig)(nil), "k8s.io.api.core.v1.ClientIPConfig") proto.RegisterType((*ComponentCondition)(nil), "k8s.io.api.core.v1.ComponentCondition") @@ -1074,6 +1128,7 @@ func init() { proto.RegisterType((*ConfigMapEnvSource)(nil), "k8s.io.api.core.v1.ConfigMapEnvSource") proto.RegisterType((*ConfigMapKeySelector)(nil), "k8s.io.api.core.v1.ConfigMapKeySelector") proto.RegisterType((*ConfigMapList)(nil), "k8s.io.api.core.v1.ConfigMapList") + proto.RegisterType((*ConfigMapNodeConfigSource)(nil), "k8s.io.api.core.v1.ConfigMapNodeConfigSource") proto.RegisterType((*ConfigMapProjection)(nil), "k8s.io.api.core.v1.ConfigMapProjection") proto.RegisterType((*ConfigMapVolumeSource)(nil), "k8s.io.api.core.v1.ConfigMapVolumeSource") proto.RegisterType((*Container)(nil), "k8s.io.api.core.v1.Container") @@ -1085,7 +1140,6 @@ func init() { proto.RegisterType((*ContainerStateWaiting)(nil), "k8s.io.api.core.v1.ContainerStateWaiting") proto.RegisterType((*ContainerStatus)(nil), "k8s.io.api.core.v1.ContainerStatus") proto.RegisterType((*DaemonEndpoint)(nil), "k8s.io.api.core.v1.DaemonEndpoint") - proto.RegisterType((*DeleteOptions)(nil), "k8s.io.api.core.v1.DeleteOptions") proto.RegisterType((*DownwardAPIProjection)(nil), "k8s.io.api.core.v1.DownwardAPIProjection") proto.RegisterType((*DownwardAPIVolumeFile)(nil), "k8s.io.api.core.v1.DownwardAPIVolumeFile") proto.RegisterType((*DownwardAPIVolumeSource)(nil), "k8s.io.api.core.v1.DownwardAPIVolumeSource") @@ -1109,6 +1163,7 @@ func init() { proto.RegisterType((*FlockerVolumeSource)(nil), "k8s.io.api.core.v1.FlockerVolumeSource") proto.RegisterType((*GCEPersistentDiskVolumeSource)(nil), "k8s.io.api.core.v1.GCEPersistentDiskVolumeSource") proto.RegisterType((*GitRepoVolumeSource)(nil), "k8s.io.api.core.v1.GitRepoVolumeSource") + proto.RegisterType((*GlusterfsPersistentVolumeSource)(nil), "k8s.io.api.core.v1.GlusterfsPersistentVolumeSource") proto.RegisterType((*GlusterfsVolumeSource)(nil), "k8s.io.api.core.v1.GlusterfsVolumeSource") proto.RegisterType((*HTTPGetAction)(nil), "k8s.io.api.core.v1.HTTPGetAction") proto.RegisterType((*HTTPHeader)(nil), "k8s.io.api.core.v1.HTTPHeader") @@ -1124,7 +1179,6 @@ func init() { proto.RegisterType((*LimitRangeList)(nil), "k8s.io.api.core.v1.LimitRangeList") proto.RegisterType((*LimitRangeSpec)(nil), "k8s.io.api.core.v1.LimitRangeSpec") proto.RegisterType((*List)(nil), "k8s.io.api.core.v1.List") - proto.RegisterType((*ListOptions)(nil), "k8s.io.api.core.v1.ListOptions") proto.RegisterType((*LoadBalancerIngress)(nil), "k8s.io.api.core.v1.LoadBalancerIngress") proto.RegisterType((*LoadBalancerStatus)(nil), "k8s.io.api.core.v1.LoadBalancerStatus") proto.RegisterType((*LocalObjectReference)(nil), "k8s.io.api.core.v1.LocalObjectReference") @@ -1139,6 +1193,7 @@ func init() { proto.RegisterType((*NodeAffinity)(nil), "k8s.io.api.core.v1.NodeAffinity") proto.RegisterType((*NodeCondition)(nil), "k8s.io.api.core.v1.NodeCondition") proto.RegisterType((*NodeConfigSource)(nil), "k8s.io.api.core.v1.NodeConfigSource") + proto.RegisterType((*NodeConfigStatus)(nil), "k8s.io.api.core.v1.NodeConfigStatus") proto.RegisterType((*NodeDaemonEndpoints)(nil), "k8s.io.api.core.v1.NodeDaemonEndpoints") proto.RegisterType((*NodeList)(nil), "k8s.io.api.core.v1.NodeList") proto.RegisterType((*NodeProxyOptions)(nil), "k8s.io.api.core.v1.NodeProxyOptions") @@ -1150,7 +1205,6 @@ func init() { proto.RegisterType((*NodeStatus)(nil), "k8s.io.api.core.v1.NodeStatus") proto.RegisterType((*NodeSystemInfo)(nil), "k8s.io.api.core.v1.NodeSystemInfo") proto.RegisterType((*ObjectFieldSelector)(nil), "k8s.io.api.core.v1.ObjectFieldSelector") - proto.RegisterType((*ObjectMeta)(nil), "k8s.io.api.core.v1.ObjectMeta") proto.RegisterType((*ObjectReference)(nil), "k8s.io.api.core.v1.ObjectReference") proto.RegisterType((*PersistentVolume)(nil), "k8s.io.api.core.v1.PersistentVolume") proto.RegisterType((*PersistentVolumeClaim)(nil), "k8s.io.api.core.v1.PersistentVolumeClaim") @@ -1177,6 +1231,7 @@ func init() { proto.RegisterType((*PodLogOptions)(nil), "k8s.io.api.core.v1.PodLogOptions") proto.RegisterType((*PodPortForwardOptions)(nil), "k8s.io.api.core.v1.PodPortForwardOptions") proto.RegisterType((*PodProxyOptions)(nil), "k8s.io.api.core.v1.PodProxyOptions") + proto.RegisterType((*PodReadinessGate)(nil), "k8s.io.api.core.v1.PodReadinessGate") proto.RegisterType((*PodSecurityContext)(nil), "k8s.io.api.core.v1.PodSecurityContext") proto.RegisterType((*PodSignature)(nil), "k8s.io.api.core.v1.PodSignature") proto.RegisterType((*PodSpec)(nil), "k8s.io.api.core.v1.PodSpec") @@ -1209,6 +1264,8 @@ func init() { proto.RegisterType((*SELinuxOptions)(nil), "k8s.io.api.core.v1.SELinuxOptions") proto.RegisterType((*ScaleIOPersistentVolumeSource)(nil), "k8s.io.api.core.v1.ScaleIOPersistentVolumeSource") proto.RegisterType((*ScaleIOVolumeSource)(nil), "k8s.io.api.core.v1.ScaleIOVolumeSource") + proto.RegisterType((*ScopeSelector)(nil), "k8s.io.api.core.v1.ScopeSelector") + proto.RegisterType((*ScopedResourceSelectorRequirement)(nil), "k8s.io.api.core.v1.ScopedResourceSelectorRequirement") proto.RegisterType((*Secret)(nil), "k8s.io.api.core.v1.Secret") proto.RegisterType((*SecretEnvSource)(nil), "k8s.io.api.core.v1.SecretEnvSource") proto.RegisterType((*SecretKeySelector)(nil), "k8s.io.api.core.v1.SecretKeySelector") @@ -1221,6 +1278,7 @@ func init() { proto.RegisterType((*Service)(nil), "k8s.io.api.core.v1.Service") proto.RegisterType((*ServiceAccount)(nil), "k8s.io.api.core.v1.ServiceAccount") proto.RegisterType((*ServiceAccountList)(nil), "k8s.io.api.core.v1.ServiceAccountList") + proto.RegisterType((*ServiceAccountTokenProjection)(nil), "k8s.io.api.core.v1.ServiceAccountTokenProjection") proto.RegisterType((*ServiceList)(nil), "k8s.io.api.core.v1.ServiceList") proto.RegisterType((*ServicePort)(nil), "k8s.io.api.core.v1.ServicePort") proto.RegisterType((*ServiceProxyOptions)(nil), "k8s.io.api.core.v1.ServiceProxyOptions") @@ -1233,6 +1291,9 @@ func init() { proto.RegisterType((*TCPSocketAction)(nil), "k8s.io.api.core.v1.TCPSocketAction") proto.RegisterType((*Taint)(nil), "k8s.io.api.core.v1.Taint") proto.RegisterType((*Toleration)(nil), "k8s.io.api.core.v1.Toleration") + proto.RegisterType((*TopologySelectorLabelRequirement)(nil), "k8s.io.api.core.v1.TopologySelectorLabelRequirement") + proto.RegisterType((*TopologySelectorTerm)(nil), "k8s.io.api.core.v1.TopologySelectorTerm") + proto.RegisterType((*TypedLocalObjectReference)(nil), "k8s.io.api.core.v1.TypedLocalObjectReference") proto.RegisterType((*Volume)(nil), "k8s.io.api.core.v1.Volume") proto.RegisterType((*VolumeDevice)(nil), "k8s.io.api.core.v1.VolumeDevice") proto.RegisterType((*VolumeMount)(nil), "k8s.io.api.core.v1.VolumeMount") @@ -1809,6 +1870,50 @@ func (m *CephFSVolumeSource) MarshalTo(dAtA []byte) (int, error) { return i, nil } +func (m *CinderPersistentVolumeSource) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CinderPersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.VolumeID))) + i += copy(dAtA[i:], m.VolumeID) + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.FSType))) + i += copy(dAtA[i:], m.FSType) + dAtA[i] = 0x18 + i++ + if m.ReadOnly { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ + if m.SecretRef != nil { + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.SecretRef.Size())) + n11, err := m.SecretRef.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n11 + } + return i, nil +} + func (m *CinderVolumeSource) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -1840,6 +1945,16 @@ func (m *CinderVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0 } i++ + if m.SecretRef != nil { + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.SecretRef.Size())) + n12, err := m.SecretRef.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n12 + } return i, nil } @@ -1918,11 +2033,11 @@ func (m *ComponentStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n11, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n13, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n11 + i += n13 if len(m.Conditions) > 0 { for _, msg := range m.Conditions { dAtA[i] = 0x12 @@ -1956,11 +2071,11 @@ func (m *ComponentStatusList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n12, err := m.ListMeta.MarshalTo(dAtA[i:]) + n14, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n12 + i += n14 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -1994,11 +2109,11 @@ func (m *ConfigMap) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n13, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n15, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n13 + i += n15 if len(m.Data) > 0 { keysForData := make([]string, 0, len(m.Data)) for k := range m.Data { @@ -2070,11 +2185,11 @@ func (m *ConfigMapEnvSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LocalObjectReference.Size())) - n14, err := m.LocalObjectReference.MarshalTo(dAtA[i:]) + n16, err := m.LocalObjectReference.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n14 + i += n16 if m.Optional != nil { dAtA[i] = 0x10 i++ @@ -2106,11 +2221,11 @@ func (m *ConfigMapKeySelector) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LocalObjectReference.Size())) - n15, err := m.LocalObjectReference.MarshalTo(dAtA[i:]) + n17, err := m.LocalObjectReference.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n15 + i += n17 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Key))) @@ -2146,11 +2261,11 @@ func (m *ConfigMapList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n16, err := m.ListMeta.MarshalTo(dAtA[i:]) + n18, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n16 + i += n18 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -2166,6 +2281,44 @@ func (m *ConfigMapList) MarshalTo(dAtA []byte) (int, error) { return i, nil } +func (m *ConfigMapNodeConfigSource) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ConfigMapNodeConfigSource) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace))) + i += copy(dAtA[i:], m.Namespace) + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i += copy(dAtA[i:], m.Name) + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.UID))) + i += copy(dAtA[i:], m.UID) + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.ResourceVersion))) + i += copy(dAtA[i:], m.ResourceVersion) + dAtA[i] = 0x2a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.KubeletConfigKey))) + i += copy(dAtA[i:], m.KubeletConfigKey) + return i, nil +} + func (m *ConfigMapProjection) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -2184,11 +2337,11 @@ func (m *ConfigMapProjection) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LocalObjectReference.Size())) - n17, err := m.LocalObjectReference.MarshalTo(dAtA[i:]) + n19, err := m.LocalObjectReference.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n17 + i += n19 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -2232,11 +2385,11 @@ func (m *ConfigMapVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LocalObjectReference.Size())) - n18, err := m.LocalObjectReference.MarshalTo(dAtA[i:]) + n20, err := m.LocalObjectReference.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n18 + i += n20 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -2351,11 +2504,11 @@ func (m *Container) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x42 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Resources.Size())) - n19, err := m.Resources.MarshalTo(dAtA[i:]) + n21, err := m.Resources.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n19 + i += n21 if len(m.VolumeMounts) > 0 { for _, msg := range m.VolumeMounts { dAtA[i] = 0x4a @@ -2372,31 +2525,31 @@ func (m *Container) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x52 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LivenessProbe.Size())) - n20, err := m.LivenessProbe.MarshalTo(dAtA[i:]) + n22, err := m.LivenessProbe.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n20 + i += n22 } if m.ReadinessProbe != nil { dAtA[i] = 0x5a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ReadinessProbe.Size())) - n21, err := m.ReadinessProbe.MarshalTo(dAtA[i:]) + n23, err := m.ReadinessProbe.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n21 + i += n23 } if m.Lifecycle != nil { dAtA[i] = 0x62 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Lifecycle.Size())) - n22, err := m.Lifecycle.MarshalTo(dAtA[i:]) + n24, err := m.Lifecycle.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n22 + i += n24 } dAtA[i] = 0x6a i++ @@ -2410,11 +2563,11 @@ func (m *Container) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x7a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SecurityContext.Size())) - n23, err := m.SecurityContext.MarshalTo(dAtA[i:]) + n25, err := m.SecurityContext.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n23 + i += n25 } dAtA[i] = 0x80 i++ @@ -2574,31 +2727,31 @@ func (m *ContainerState) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Waiting.Size())) - n24, err := m.Waiting.MarshalTo(dAtA[i:]) + n26, err := m.Waiting.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n24 + i += n26 } if m.Running != nil { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Running.Size())) - n25, err := m.Running.MarshalTo(dAtA[i:]) + n27, err := m.Running.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n25 + i += n27 } if m.Terminated != nil { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Terminated.Size())) - n26, err := m.Terminated.MarshalTo(dAtA[i:]) + n28, err := m.Terminated.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n26 + i += n28 } return i, nil } @@ -2621,11 +2774,11 @@ func (m *ContainerStateRunning) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.StartedAt.Size())) - n27, err := m.StartedAt.MarshalTo(dAtA[i:]) + n29, err := m.StartedAt.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n27 + i += n29 return i, nil } @@ -2661,19 +2814,19 @@ func (m *ContainerStateTerminated) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x2a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.StartedAt.Size())) - n28, err := m.StartedAt.MarshalTo(dAtA[i:]) + n30, err := m.StartedAt.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n28 + i += n30 dAtA[i] = 0x32 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.FinishedAt.Size())) - n29, err := m.FinishedAt.MarshalTo(dAtA[i:]) + n31, err := m.FinishedAt.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n29 + i += n31 dAtA[i] = 0x3a i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.ContainerID))) @@ -2729,19 +2882,19 @@ func (m *ContainerStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.State.Size())) - n30, err := m.State.MarshalTo(dAtA[i:]) + n32, err := m.State.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n30 + i += n32 dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LastTerminationState.Size())) - n31, err := m.LastTerminationState.MarshalTo(dAtA[i:]) + n33, err := m.LastTerminationState.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n31 + i += n33 dAtA[i] = 0x20 i++ if m.Ready { @@ -2789,55 +2942,6 @@ func (m *DaemonEndpoint) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func (m *DeleteOptions) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *DeleteOptions) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.GracePeriodSeconds != nil { - dAtA[i] = 0x8 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(*m.GracePeriodSeconds)) - } - if m.Preconditions != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Preconditions.Size())) - n32, err := m.Preconditions.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n32 - } - if m.OrphanDependents != nil { - dAtA[i] = 0x18 - i++ - if *m.OrphanDependents { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - } - if m.PropagationPolicy != nil { - dAtA[i] = 0x22 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(*m.PropagationPolicy))) - i += copy(dAtA[i:], *m.PropagationPolicy) - } - return i, nil -} - func (m *DownwardAPIProjection) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -2891,21 +2995,21 @@ func (m *DownwardAPIVolumeFile) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.FieldRef.Size())) - n33, err := m.FieldRef.MarshalTo(dAtA[i:]) + n34, err := m.FieldRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n33 + i += n34 } if m.ResourceFieldRef != nil { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ResourceFieldRef.Size())) - n34, err := m.ResourceFieldRef.MarshalTo(dAtA[i:]) + n35, err := m.ResourceFieldRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n34 + i += n35 } if m.Mode != nil { dAtA[i] = 0x20 @@ -2973,11 +3077,11 @@ func (m *EmptyDirVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SizeLimit.Size())) - n35, err := m.SizeLimit.MarshalTo(dAtA[i:]) + n36, err := m.SizeLimit.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n35 + i += n36 } return i, nil } @@ -3005,11 +3109,11 @@ func (m *EndpointAddress) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.TargetRef.Size())) - n36, err := m.TargetRef.MarshalTo(dAtA[i:]) + n37, err := m.TargetRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n36 + i += n37 } dAtA[i] = 0x1a i++ @@ -3125,11 +3229,11 @@ func (m *Endpoints) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n37, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n38, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n37 + i += n38 if len(m.Subsets) > 0 { for _, msg := range m.Subsets { dAtA[i] = 0x12 @@ -3163,11 +3267,11 @@ func (m *EndpointsList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n38, err := m.ListMeta.MarshalTo(dAtA[i:]) + n39, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n38 + i += n39 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -3206,21 +3310,21 @@ func (m *EnvFromSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ConfigMapRef.Size())) - n39, err := m.ConfigMapRef.MarshalTo(dAtA[i:]) + n40, err := m.ConfigMapRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n39 + i += n40 } if m.SecretRef != nil { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SecretRef.Size())) - n40, err := m.SecretRef.MarshalTo(dAtA[i:]) + n41, err := m.SecretRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n40 + i += n41 } return i, nil } @@ -3252,11 +3356,11 @@ func (m *EnvVar) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ValueFrom.Size())) - n41, err := m.ValueFrom.MarshalTo(dAtA[i:]) + n42, err := m.ValueFrom.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n41 + i += n42 } return i, nil } @@ -3280,42 +3384,42 @@ func (m *EnvVarSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.FieldRef.Size())) - n42, err := m.FieldRef.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n42 - } - if m.ResourceFieldRef != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.ResourceFieldRef.Size())) - n43, err := m.ResourceFieldRef.MarshalTo(dAtA[i:]) + n43, err := m.FieldRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n43 } - if m.ConfigMapKeyRef != nil { - dAtA[i] = 0x1a + if m.ResourceFieldRef != nil { + dAtA[i] = 0x12 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.ConfigMapKeyRef.Size())) - n44, err := m.ConfigMapKeyRef.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.ResourceFieldRef.Size())) + n44, err := m.ResourceFieldRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n44 } - if m.SecretKeyRef != nil { - dAtA[i] = 0x22 + if m.ConfigMapKeyRef != nil { + dAtA[i] = 0x1a i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.SecretKeyRef.Size())) - n45, err := m.SecretKeyRef.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.ConfigMapKeyRef.Size())) + n45, err := m.ConfigMapKeyRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n45 } + if m.SecretKeyRef != nil { + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.SecretKeyRef.Size())) + n46, err := m.SecretKeyRef.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n46 + } return i, nil } @@ -3337,19 +3441,19 @@ func (m *Event) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n46, err := m.ObjectMeta.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n46 - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.InvolvedObject.Size())) - n47, err := m.InvolvedObject.MarshalTo(dAtA[i:]) + n47, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n47 + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.InvolvedObject.Size())) + n48, err := m.InvolvedObject.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n48 dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) @@ -3361,27 +3465,27 @@ func (m *Event) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x2a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Source.Size())) - n48, err := m.Source.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n48 - dAtA[i] = 0x32 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.FirstTimestamp.Size())) - n49, err := m.FirstTimestamp.MarshalTo(dAtA[i:]) + n49, err := m.Source.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n49 - dAtA[i] = 0x3a + dAtA[i] = 0x32 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.LastTimestamp.Size())) - n50, err := m.LastTimestamp.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.FirstTimestamp.Size())) + n50, err := m.FirstTimestamp.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n50 + dAtA[i] = 0x3a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.LastTimestamp.Size())) + n51, err := m.LastTimestamp.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n51 dAtA[i] = 0x40 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Count)) @@ -3392,20 +3496,20 @@ func (m *Event) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x52 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.EventTime.Size())) - n51, err := m.EventTime.MarshalTo(dAtA[i:]) + n52, err := m.EventTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n51 + i += n52 if m.Series != nil { dAtA[i] = 0x5a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Series.Size())) - n52, err := m.Series.MarshalTo(dAtA[i:]) + n53, err := m.Series.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n52 + i += n53 } dAtA[i] = 0x62 i++ @@ -3415,11 +3519,11 @@ func (m *Event) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x6a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Related.Size())) - n53, err := m.Related.MarshalTo(dAtA[i:]) + n54, err := m.Related.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n53 + i += n54 } dAtA[i] = 0x72 i++ @@ -3450,11 +3554,11 @@ func (m *EventList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n54, err := m.ListMeta.MarshalTo(dAtA[i:]) + n55, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n54 + i += n55 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -3491,11 +3595,11 @@ func (m *EventSeries) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LastObservedTime.Size())) - n55, err := m.LastObservedTime.MarshalTo(dAtA[i:]) + n56, err := m.LastObservedTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n55 + i += n56 dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.State))) @@ -3654,11 +3758,11 @@ func (m *FlexPersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SecretRef.Size())) - n56, err := m.SecretRef.MarshalTo(dAtA[i:]) + n57, err := m.SecretRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n56 + i += n57 } dAtA[i] = 0x20 i++ @@ -3720,11 +3824,11 @@ func (m *FlexVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SecretRef.Size())) - n57, err := m.SecretRef.MarshalTo(dAtA[i:]) + n58, err := m.SecretRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n57 + i += n58 } dAtA[i] = 0x20 i++ @@ -3852,6 +3956,46 @@ func (m *GitRepoVolumeSource) MarshalTo(dAtA []byte) (int, error) { return i, nil } +func (m *GlusterfsPersistentVolumeSource) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GlusterfsPersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.EndpointsName))) + i += copy(dAtA[i:], m.EndpointsName) + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Path))) + i += copy(dAtA[i:], m.Path) + dAtA[i] = 0x18 + i++ + if m.ReadOnly { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ + if m.EndpointsNamespace != nil { + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.EndpointsNamespace))) + i += copy(dAtA[i:], *m.EndpointsNamespace) + } + return i, nil +} + func (m *GlusterfsVolumeSource) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -3908,11 +4052,11 @@ func (m *HTTPGetAction) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Port.Size())) - n58, err := m.Port.MarshalTo(dAtA[i:]) + n59, err := m.Port.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n58 + i += n59 dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Host))) @@ -3981,32 +4125,32 @@ func (m *Handler) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Exec.Size())) - n59, err := m.Exec.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n59 - } - if m.HTTPGet != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.HTTPGet.Size())) - n60, err := m.HTTPGet.MarshalTo(dAtA[i:]) + n60, err := m.Exec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n60 } - if m.TCPSocket != nil { - dAtA[i] = 0x1a + if m.HTTPGet != nil { + dAtA[i] = 0x12 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.TCPSocket.Size())) - n61, err := m.TCPSocket.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.HTTPGet.Size())) + n61, err := m.HTTPGet.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n61 } + if m.TCPSocket != nil { + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.TCPSocket.Size())) + n62, err := m.TCPSocket.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n62 + } return i, nil } @@ -4144,11 +4288,11 @@ func (m *ISCSIPersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x52 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SecretRef.Size())) - n62, err := m.SecretRef.MarshalTo(dAtA[i:]) + n63, err := m.SecretRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n62 + i += n63 } dAtA[i] = 0x58 i++ @@ -4236,11 +4380,11 @@ func (m *ISCSIVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x52 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SecretRef.Size())) - n63, err := m.SecretRef.MarshalTo(dAtA[i:]) + n64, err := m.SecretRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n63 + i += n64 } dAtA[i] = 0x58 i++ @@ -4309,21 +4453,21 @@ func (m *Lifecycle) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.PostStart.Size())) - n64, err := m.PostStart.MarshalTo(dAtA[i:]) + n65, err := m.PostStart.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n64 + i += n65 } if m.PreStop != nil { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.PreStop.Size())) - n65, err := m.PreStop.MarshalTo(dAtA[i:]) + n66, err := m.PreStop.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n65 + i += n66 } return i, nil } @@ -4346,19 +4490,19 @@ func (m *LimitRange) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n66, err := m.ObjectMeta.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n66 - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n67, err := m.Spec.MarshalTo(dAtA[i:]) + n67, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n67 + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) + n68, err := m.Spec.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n68 return i, nil } @@ -4405,11 +4549,11 @@ func (m *LimitRangeItem) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n68, err := (&v).MarshalTo(dAtA[i:]) + n69, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n68 + i += n69 } } if len(m.Min) > 0 { @@ -4436,11 +4580,11 @@ func (m *LimitRangeItem) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n69, err := (&v).MarshalTo(dAtA[i:]) + n70, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n69 + i += n70 } } if len(m.Default) > 0 { @@ -4467,11 +4611,11 @@ func (m *LimitRangeItem) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n70, err := (&v).MarshalTo(dAtA[i:]) + n71, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n70 + i += n71 } } if len(m.DefaultRequest) > 0 { @@ -4498,11 +4642,11 @@ func (m *LimitRangeItem) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n71, err := (&v).MarshalTo(dAtA[i:]) + n72, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n71 + i += n72 } } if len(m.MaxLimitRequestRatio) > 0 { @@ -4529,11 +4673,11 @@ func (m *LimitRangeItem) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n72, err := (&v).MarshalTo(dAtA[i:]) + n73, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n72 + i += n73 } } return i, nil @@ -4557,11 +4701,11 @@ func (m *LimitRangeList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n73, err := m.ListMeta.MarshalTo(dAtA[i:]) + n74, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n73 + i += n74 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -4625,11 +4769,11 @@ func (m *List) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n74, err := m.ListMeta.MarshalTo(dAtA[i:]) + n75, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n74 + i += n75 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -4645,57 +4789,6 @@ func (m *List) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func (m *ListOptions) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ListOptions) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0xa - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(m.LabelSelector))) - i += copy(dAtA[i:], m.LabelSelector) - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(m.FieldSelector))) - i += copy(dAtA[i:], m.FieldSelector) - dAtA[i] = 0x18 - i++ - if m.Watch { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - dAtA[i] = 0x22 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(m.ResourceVersion))) - i += copy(dAtA[i:], m.ResourceVersion) - if m.TimeoutSeconds != nil { - dAtA[i] = 0x28 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(*m.TimeoutSeconds)) - } - dAtA[i] = 0x30 - i++ - if m.IncludeUninitialized { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - return i, nil -} - func (m *LoadBalancerIngress) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -4793,6 +4886,12 @@ func (m *LocalVolumeSource) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Path))) i += copy(dAtA[i:], m.Path) + if m.FSType != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.FSType))) + i += copy(dAtA[i:], *m.FSType) + } return i, nil } @@ -4848,27 +4947,27 @@ func (m *Namespace) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n75, err := m.ObjectMeta.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n75 - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n76, err := m.Spec.MarshalTo(dAtA[i:]) + n76, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n76 - dAtA[i] = 0x1a + dAtA[i] = 0x12 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n77, err := m.Status.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) + n77, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n77 + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) + n78, err := m.Status.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n78 return i, nil } @@ -4890,11 +4989,11 @@ func (m *NamespaceList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n78, err := m.ListMeta.MarshalTo(dAtA[i:]) + n79, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n78 + i += n79 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -4983,27 +5082,27 @@ func (m *Node) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n79, err := m.ObjectMeta.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n79 - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n80, err := m.Spec.MarshalTo(dAtA[i:]) + n80, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n80 - dAtA[i] = 0x1a + dAtA[i] = 0x12 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n81, err := m.Status.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) + n81, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n81 + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) + n82, err := m.Status.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n82 return i, nil } @@ -5052,11 +5151,11 @@ func (m *NodeAffinity) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.RequiredDuringSchedulingIgnoredDuringExecution.Size())) - n82, err := m.RequiredDuringSchedulingIgnoredDuringExecution.MarshalTo(dAtA[i:]) + n83, err := m.RequiredDuringSchedulingIgnoredDuringExecution.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n82 + i += n83 } if len(m.PreferredDuringSchedulingIgnoredDuringExecution) > 0 { for _, msg := range m.PreferredDuringSchedulingIgnoredDuringExecution { @@ -5099,19 +5198,19 @@ func (m *NodeCondition) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LastHeartbeatTime.Size())) - n83, err := m.LastHeartbeatTime.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n83 - dAtA[i] = 0x22 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.LastTransitionTime.Size())) - n84, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) + n84, err := m.LastHeartbeatTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n84 + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.LastTransitionTime.Size())) + n85, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n85 dAtA[i] = 0x2a i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) @@ -5138,19 +5237,71 @@ func (m *NodeConfigSource) MarshalTo(dAtA []byte) (int, error) { _ = i var l int _ = l - if m.ConfigMapRef != nil { - dAtA[i] = 0xa + if m.ConfigMap != nil { + dAtA[i] = 0x12 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.ConfigMapRef.Size())) - n85, err := m.ConfigMapRef.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.ConfigMap.Size())) + n86, err := m.ConfigMap.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n85 + i += n86 } return i, nil } +func (m *NodeConfigStatus) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *NodeConfigStatus) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Assigned != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Assigned.Size())) + n87, err := m.Assigned.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n87 + } + if m.Active != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Active.Size())) + n88, err := m.Active.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n88 + } + if m.LastKnownGood != nil { + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.LastKnownGood.Size())) + n89, err := m.LastKnownGood.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n89 + } + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Error))) + i += copy(dAtA[i:], m.Error) + return i, nil +} + func (m *NodeDaemonEndpoints) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -5169,11 +5320,11 @@ func (m *NodeDaemonEndpoints) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.KubeletEndpoint.Size())) - n86, err := m.KubeletEndpoint.MarshalTo(dAtA[i:]) + n90, err := m.KubeletEndpoint.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n86 + i += n90 return i, nil } @@ -5195,11 +5346,11 @@ func (m *NodeList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n87, err := m.ListMeta.MarshalTo(dAtA[i:]) + n91, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n87 + i += n91 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -5276,11 +5427,11 @@ func (m *NodeResources) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n88, err := (&v).MarshalTo(dAtA[i:]) + n92, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n88 + i += n92 } } return i, nil @@ -5384,6 +5535,18 @@ func (m *NodeSelectorTerm) MarshalTo(dAtA []byte) (int, error) { i += n } } + if len(m.MatchFields) > 0 { + for _, msg := range m.MatchFields { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } return i, nil } @@ -5408,8 +5571,8 @@ func (m *NodeSpec) MarshalTo(dAtA []byte) (int, error) { i += copy(dAtA[i:], m.PodCIDR) dAtA[i] = 0x12 i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(m.ExternalID))) - i += copy(dAtA[i:], m.ExternalID) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.DoNotUse_ExternalID))) + i += copy(dAtA[i:], m.DoNotUse_ExternalID) dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.ProviderID))) @@ -5438,11 +5601,11 @@ func (m *NodeSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x32 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ConfigSource.Size())) - n89, err := m.ConfigSource.MarshalTo(dAtA[i:]) + n93, err := m.ConfigSource.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n89 + i += n93 } return i, nil } @@ -5486,11 +5649,11 @@ func (m *NodeStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n90, err := (&v).MarshalTo(dAtA[i:]) + n94, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n90 + i += n94 } } if len(m.Allocatable) > 0 { @@ -5517,11 +5680,11 @@ func (m *NodeStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n91, err := (&v).MarshalTo(dAtA[i:]) + n95, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n91 + i += n95 } } dAtA[i] = 0x1a @@ -5555,19 +5718,19 @@ func (m *NodeStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x32 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.DaemonEndpoints.Size())) - n92, err := m.DaemonEndpoints.MarshalTo(dAtA[i:]) + n96, err := m.DaemonEndpoints.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n92 + i += n96 dAtA[i] = 0x3a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.NodeInfo.Size())) - n93, err := m.NodeInfo.MarshalTo(dAtA[i:]) + n97, err := m.NodeInfo.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n93 + i += n97 if len(m.Images) > 0 { for _, msg := range m.Images { dAtA[i] = 0x42 @@ -5607,6 +5770,16 @@ func (m *NodeStatus) MarshalTo(dAtA []byte) (int, error) { i += n } } + if m.Config != nil { + dAtA[i] = 0x5a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Config.Size())) + n98, err := m.Config.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n98 + } return i, nil } @@ -5694,161 +5867,6 @@ func (m *ObjectFieldSelector) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func (m *ObjectMeta) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ObjectMeta) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0xa - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) - i += copy(dAtA[i:], m.Name) - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(m.GenerateName))) - i += copy(dAtA[i:], m.GenerateName) - dAtA[i] = 0x1a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace))) - i += copy(dAtA[i:], m.Namespace) - dAtA[i] = 0x22 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(m.SelfLink))) - i += copy(dAtA[i:], m.SelfLink) - dAtA[i] = 0x2a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(m.UID))) - i += copy(dAtA[i:], m.UID) - dAtA[i] = 0x32 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(m.ResourceVersion))) - i += copy(dAtA[i:], m.ResourceVersion) - dAtA[i] = 0x38 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Generation)) - dAtA[i] = 0x42 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.CreationTimestamp.Size())) - n94, err := m.CreationTimestamp.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n94 - if m.DeletionTimestamp != nil { - dAtA[i] = 0x4a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.DeletionTimestamp.Size())) - n95, err := m.DeletionTimestamp.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n95 - } - if m.DeletionGracePeriodSeconds != nil { - dAtA[i] = 0x50 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(*m.DeletionGracePeriodSeconds)) - } - if len(m.Labels) > 0 { - keysForLabels := make([]string, 0, len(m.Labels)) - for k := range m.Labels { - keysForLabels = append(keysForLabels, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForLabels) - for _, k := range keysForLabels { - dAtA[i] = 0x5a - i++ - v := m.Labels[string(k)] - mapSize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) - i = encodeVarintGenerated(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(v))) - i += copy(dAtA[i:], v) - } - } - if len(m.Annotations) > 0 { - keysForAnnotations := make([]string, 0, len(m.Annotations)) - for k := range m.Annotations { - keysForAnnotations = append(keysForAnnotations, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForAnnotations) - for _, k := range keysForAnnotations { - dAtA[i] = 0x62 - i++ - v := m.Annotations[string(k)] - mapSize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) - i = encodeVarintGenerated(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(v))) - i += copy(dAtA[i:], v) - } - } - if len(m.OwnerReferences) > 0 { - for _, msg := range m.OwnerReferences { - dAtA[i] = 0x6a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if len(m.Finalizers) > 0 { - for _, s := range m.Finalizers { - dAtA[i] = 0x72 - i++ - l = len(s) - for l >= 1<<7 { - dAtA[i] = uint8(uint64(l)&0x7f | 0x80) - l >>= 7 - i++ - } - dAtA[i] = uint8(l) - i++ - i += copy(dAtA[i:], s) - } - } - dAtA[i] = 0x7a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(m.ClusterName))) - i += copy(dAtA[i:], m.ClusterName) - if m.Initializers != nil { - dAtA[i] = 0x82 - i++ - dAtA[i] = 0x1 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Initializers.Size())) - n96, err := m.Initializers.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n96 - } - return i, nil -} - func (m *ObjectReference) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -5913,27 +5931,27 @@ func (m *PersistentVolume) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n97, err := m.ObjectMeta.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n97 - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n98, err := m.Spec.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n98 - dAtA[i] = 0x1a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n99, err := m.Status.MarshalTo(dAtA[i:]) + n99, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n99 + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) + n100, err := m.Spec.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n100 + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) + n101, err := m.Status.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n101 return i, nil } @@ -5955,27 +5973,27 @@ func (m *PersistentVolumeClaim) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n100, err := m.ObjectMeta.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n100 - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n101, err := m.Spec.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n101 - dAtA[i] = 0x1a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n102, err := m.Status.MarshalTo(dAtA[i:]) + n102, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n102 + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) + n103, err := m.Spec.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n103 + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) + n104, err := m.Status.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n104 return i, nil } @@ -6005,19 +6023,19 @@ func (m *PersistentVolumeClaimCondition) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LastProbeTime.Size())) - n103, err := m.LastProbeTime.MarshalTo(dAtA[i:]) + n105, err := m.LastProbeTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n103 + i += n105 dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LastTransitionTime.Size())) - n104, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) + n106, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n104 + i += n106 dAtA[i] = 0x2a i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) @@ -6047,11 +6065,11 @@ func (m *PersistentVolumeClaimList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n105, err := m.ListMeta.MarshalTo(dAtA[i:]) + n107, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n105 + i += n107 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -6100,11 +6118,11 @@ func (m *PersistentVolumeClaimSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Resources.Size())) - n106, err := m.Resources.MarshalTo(dAtA[i:]) + n108, err := m.Resources.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n106 + i += n108 dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.VolumeName))) @@ -6113,11 +6131,11 @@ func (m *PersistentVolumeClaimSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Selector.Size())) - n107, err := m.Selector.MarshalTo(dAtA[i:]) + n109, err := m.Selector.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n107 + i += n109 } if m.StorageClassName != nil { dAtA[i] = 0x2a @@ -6131,6 +6149,16 @@ func (m *PersistentVolumeClaimSpec) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintGenerated(dAtA, i, uint64(len(*m.VolumeMode))) i += copy(dAtA[i:], *m.VolumeMode) } + if m.DataSource != nil { + dAtA[i] = 0x3a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.DataSource.Size())) + n110, err := m.DataSource.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n110 + } return i, nil } @@ -6192,11 +6220,11 @@ func (m *PersistentVolumeClaimStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n108, err := (&v).MarshalTo(dAtA[i:]) + n111, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n108 + i += n111 } } if len(m.Conditions) > 0 { @@ -6262,11 +6290,11 @@ func (m *PersistentVolumeList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n109, err := m.ListMeta.MarshalTo(dAtA[i:]) + n112, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n109 + i += n112 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -6301,163 +6329,163 @@ func (m *PersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.GCEPersistentDisk.Size())) - n110, err := m.GCEPersistentDisk.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n110 - } - if m.AWSElasticBlockStore != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.AWSElasticBlockStore.Size())) - n111, err := m.AWSElasticBlockStore.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n111 - } - if m.HostPath != nil { - dAtA[i] = 0x1a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.HostPath.Size())) - n112, err := m.HostPath.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n112 - } - if m.Glusterfs != nil { - dAtA[i] = 0x22 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Glusterfs.Size())) - n113, err := m.Glusterfs.MarshalTo(dAtA[i:]) + n113, err := m.GCEPersistentDisk.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n113 } - if m.NFS != nil { - dAtA[i] = 0x2a + if m.AWSElasticBlockStore != nil { + dAtA[i] = 0x12 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.NFS.Size())) - n114, err := m.NFS.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.AWSElasticBlockStore.Size())) + n114, err := m.AWSElasticBlockStore.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n114 } - if m.RBD != nil { - dAtA[i] = 0x32 + if m.HostPath != nil { + dAtA[i] = 0x1a i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.RBD.Size())) - n115, err := m.RBD.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.HostPath.Size())) + n115, err := m.HostPath.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n115 } - if m.ISCSI != nil { - dAtA[i] = 0x3a + if m.Glusterfs != nil { + dAtA[i] = 0x22 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.ISCSI.Size())) - n116, err := m.ISCSI.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.Glusterfs.Size())) + n116, err := m.Glusterfs.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n116 } - if m.Cinder != nil { - dAtA[i] = 0x42 + if m.NFS != nil { + dAtA[i] = 0x2a i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Cinder.Size())) - n117, err := m.Cinder.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.NFS.Size())) + n117, err := m.NFS.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n117 } - if m.CephFS != nil { - dAtA[i] = 0x4a + if m.RBD != nil { + dAtA[i] = 0x32 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.CephFS.Size())) - n118, err := m.CephFS.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.RBD.Size())) + n118, err := m.RBD.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n118 } - if m.FC != nil { - dAtA[i] = 0x52 + if m.ISCSI != nil { + dAtA[i] = 0x3a i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.FC.Size())) - n119, err := m.FC.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.ISCSI.Size())) + n119, err := m.ISCSI.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n119 } - if m.Flocker != nil { - dAtA[i] = 0x5a + if m.Cinder != nil { + dAtA[i] = 0x42 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Flocker.Size())) - n120, err := m.Flocker.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.Cinder.Size())) + n120, err := m.Cinder.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n120 } - if m.FlexVolume != nil { - dAtA[i] = 0x62 + if m.CephFS != nil { + dAtA[i] = 0x4a i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.FlexVolume.Size())) - n121, err := m.FlexVolume.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.CephFS.Size())) + n121, err := m.CephFS.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n121 } - if m.AzureFile != nil { - dAtA[i] = 0x6a + if m.FC != nil { + dAtA[i] = 0x52 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.AzureFile.Size())) - n122, err := m.AzureFile.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.FC.Size())) + n122, err := m.FC.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n122 } - if m.VsphereVolume != nil { - dAtA[i] = 0x72 + if m.Flocker != nil { + dAtA[i] = 0x5a i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.VsphereVolume.Size())) - n123, err := m.VsphereVolume.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.Flocker.Size())) + n123, err := m.Flocker.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n123 } - if m.Quobyte != nil { - dAtA[i] = 0x7a + if m.FlexVolume != nil { + dAtA[i] = 0x62 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Quobyte.Size())) - n124, err := m.Quobyte.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.FlexVolume.Size())) + n124, err := m.FlexVolume.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n124 } + if m.AzureFile != nil { + dAtA[i] = 0x6a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.AzureFile.Size())) + n125, err := m.AzureFile.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n125 + } + if m.VsphereVolume != nil { + dAtA[i] = 0x72 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.VsphereVolume.Size())) + n126, err := m.VsphereVolume.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n126 + } + if m.Quobyte != nil { + dAtA[i] = 0x7a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Quobyte.Size())) + n127, err := m.Quobyte.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n127 + } if m.AzureDisk != nil { dAtA[i] = 0x82 i++ dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.AzureDisk.Size())) - n125, err := m.AzureDisk.MarshalTo(dAtA[i:]) + n128, err := m.AzureDisk.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n125 + i += n128 } if m.PhotonPersistentDisk != nil { dAtA[i] = 0x8a @@ -6465,11 +6493,11 @@ func (m *PersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.PhotonPersistentDisk.Size())) - n126, err := m.PhotonPersistentDisk.MarshalTo(dAtA[i:]) + n129, err := m.PhotonPersistentDisk.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n126 + i += n129 } if m.PortworxVolume != nil { dAtA[i] = 0x92 @@ -6477,11 +6505,11 @@ func (m *PersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.PortworxVolume.Size())) - n127, err := m.PortworxVolume.MarshalTo(dAtA[i:]) + n130, err := m.PortworxVolume.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n127 + i += n130 } if m.ScaleIO != nil { dAtA[i] = 0x9a @@ -6489,11 +6517,11 @@ func (m *PersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ScaleIO.Size())) - n128, err := m.ScaleIO.MarshalTo(dAtA[i:]) + n131, err := m.ScaleIO.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n128 + i += n131 } if m.Local != nil { dAtA[i] = 0xa2 @@ -6501,11 +6529,11 @@ func (m *PersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Local.Size())) - n129, err := m.Local.MarshalTo(dAtA[i:]) + n132, err := m.Local.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n129 + i += n132 } if m.StorageOS != nil { dAtA[i] = 0xaa @@ -6513,11 +6541,11 @@ func (m *PersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.StorageOS.Size())) - n130, err := m.StorageOS.MarshalTo(dAtA[i:]) + n133, err := m.StorageOS.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n130 + i += n133 } if m.CSI != nil { dAtA[i] = 0xb2 @@ -6525,11 +6553,11 @@ func (m *PersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.CSI.Size())) - n131, err := m.CSI.MarshalTo(dAtA[i:]) + n134, err := m.CSI.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n131 + i += n134 } return i, nil } @@ -6573,21 +6601,21 @@ func (m *PersistentVolumeSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n132, err := (&v).MarshalTo(dAtA[i:]) + n135, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n132 + i += n135 } } dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.PersistentVolumeSource.Size())) - n133, err := m.PersistentVolumeSource.MarshalTo(dAtA[i:]) + n136, err := m.PersistentVolumeSource.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n133 + i += n136 if len(m.AccessModes) > 0 { for _, s := range m.AccessModes { dAtA[i] = 0x1a @@ -6607,11 +6635,11 @@ func (m *PersistentVolumeSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ClaimRef.Size())) - n134, err := m.ClaimRef.MarshalTo(dAtA[i:]) + n137, err := m.ClaimRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n134 + i += n137 } dAtA[i] = 0x2a i++ @@ -6646,11 +6674,11 @@ func (m *PersistentVolumeSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x4a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.NodeAffinity.Size())) - n135, err := m.NodeAffinity.MarshalTo(dAtA[i:]) + n138, err := m.NodeAffinity.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n135 + i += n138 } return i, nil } @@ -6729,27 +6757,27 @@ func (m *Pod) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n136, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n139, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n136 + i += n139 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n137, err := m.Spec.MarshalTo(dAtA[i:]) + n140, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n137 + i += n140 dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n138, err := m.Status.MarshalTo(dAtA[i:]) + n141, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n138 + i += n141 return i, nil } @@ -6814,11 +6842,11 @@ func (m *PodAffinityTerm) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LabelSelector.Size())) - n139, err := m.LabelSelector.MarshalTo(dAtA[i:]) + n142, err := m.LabelSelector.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n139 + i += n142 } if len(m.Namespaces) > 0 { for _, s := range m.Namespaces { @@ -6964,19 +6992,19 @@ func (m *PodCondition) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LastProbeTime.Size())) - n140, err := m.LastProbeTime.MarshalTo(dAtA[i:]) + n143, err := m.LastProbeTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n140 + i += n143 dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LastTransitionTime.Size())) - n141, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) + n144, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n141 + i += n144 dAtA[i] = 0x2a i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) @@ -7163,11 +7191,11 @@ func (m *PodList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n142, err := m.ListMeta.MarshalTo(dAtA[i:]) + n145, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n142 + i += n145 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -7227,11 +7255,11 @@ func (m *PodLogOptions) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x2a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SinceTime.Size())) - n143, err := m.SinceTime.MarshalTo(dAtA[i:]) + n146, err := m.SinceTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n143 + i += n146 } dAtA[i] = 0x30 i++ @@ -7301,6 +7329,28 @@ func (m *PodProxyOptions) MarshalTo(dAtA []byte) (int, error) { return i, nil } +func (m *PodReadinessGate) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PodReadinessGate) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.ConditionType))) + i += copy(dAtA[i:], m.ConditionType) + return i, nil +} + func (m *PodSecurityContext) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -7320,11 +7370,11 @@ func (m *PodSecurityContext) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SELinuxOptions.Size())) - n144, err := m.SELinuxOptions.MarshalTo(dAtA[i:]) + n147, err := m.SELinuxOptions.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n144 + i += n147 } if m.RunAsUser != nil { dAtA[i] = 0x10 @@ -7353,6 +7403,23 @@ func (m *PodSecurityContext) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintGenerated(dAtA, i, uint64(*m.FSGroup)) } + if m.RunAsGroup != nil { + dAtA[i] = 0x30 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(*m.RunAsGroup)) + } + if len(m.Sysctls) > 0 { + for _, msg := range m.Sysctls { + dAtA[i] = 0x3a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } return i, nil } @@ -7375,11 +7442,11 @@ func (m *PodSignature) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.PodController.Size())) - n145, err := m.PodController.MarshalTo(dAtA[i:]) + n148, err := m.PodController.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n145 + i += n148 } return i, nil } @@ -7503,11 +7570,11 @@ func (m *PodSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x72 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SecurityContext.Size())) - n146, err := m.SecurityContext.MarshalTo(dAtA[i:]) + n149, err := m.SecurityContext.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n146 + i += n149 } if len(m.ImagePullSecrets) > 0 { for _, msg := range m.ImagePullSecrets { @@ -7539,11 +7606,11 @@ func (m *PodSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Affinity.Size())) - n147, err := m.Affinity.MarshalTo(dAtA[i:]) + n150, err := m.Affinity.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n147 + i += n150 } dAtA[i] = 0x9a i++ @@ -7624,11 +7691,11 @@ func (m *PodSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.DNSConfig.Size())) - n148, err := m.DNSConfig.MarshalTo(dAtA[i:]) + n151, err := m.DNSConfig.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n148 + i += n151 } if m.ShareProcessNamespace != nil { dAtA[i] = 0xd8 @@ -7642,6 +7709,40 @@ func (m *PodSpec) MarshalTo(dAtA []byte) (int, error) { } i++ } + if len(m.ReadinessGates) > 0 { + for _, msg := range m.ReadinessGates { + dAtA[i] = 0xe2 + i++ + dAtA[i] = 0x1 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + if m.RuntimeClassName != nil { + dAtA[i] = 0xea + i++ + dAtA[i] = 0x1 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.RuntimeClassName))) + i += copy(dAtA[i:], *m.RuntimeClassName) + } + if m.EnableServiceLinks != nil { + dAtA[i] = 0xf0 + i++ + dAtA[i] = 0x1 + i++ + if *m.EnableServiceLinks { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ + } return i, nil } @@ -7696,11 +7797,11 @@ func (m *PodStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x3a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.StartTime.Size())) - n149, err := m.StartTime.MarshalTo(dAtA[i:]) + n152, err := m.StartTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n149 + i += n152 } if len(m.ContainerStatuses) > 0 { for _, msg := range m.ContainerStatuses { @@ -7755,19 +7856,19 @@ func (m *PodStatusResult) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n150, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n153, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n150 + i += n153 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n151, err := m.Status.MarshalTo(dAtA[i:]) + n154, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n151 + i += n154 return i, nil } @@ -7789,19 +7890,19 @@ func (m *PodTemplate) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n152, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n155, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n152 + i += n155 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Template.Size())) - n153, err := m.Template.MarshalTo(dAtA[i:]) + n156, err := m.Template.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n153 + i += n156 return i, nil } @@ -7823,11 +7924,11 @@ func (m *PodTemplateList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n154, err := m.ListMeta.MarshalTo(dAtA[i:]) + n157, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n154 + i += n157 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -7861,19 +7962,19 @@ func (m *PodTemplateSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n155, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n158, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n155 + i += n158 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n156, err := m.Spec.MarshalTo(dAtA[i:]) + n159, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n156 + i += n159 return i, nil } @@ -7953,19 +8054,19 @@ func (m *PreferAvoidPodsEntry) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.PodSignature.Size())) - n157, err := m.PodSignature.MarshalTo(dAtA[i:]) + n160, err := m.PodSignature.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n157 + i += n160 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.EvictionTime.Size())) - n158, err := m.EvictionTime.MarshalTo(dAtA[i:]) + n161, err := m.EvictionTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n158 + i += n161 dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) @@ -7998,11 +8099,11 @@ func (m *PreferredSchedulingTerm) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Preference.Size())) - n159, err := m.Preference.MarshalTo(dAtA[i:]) + n162, err := m.Preference.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n159 + i += n162 return i, nil } @@ -8024,11 +8125,11 @@ func (m *Probe) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Handler.Size())) - n160, err := m.Handler.MarshalTo(dAtA[i:]) + n163, err := m.Handler.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n160 + i += n163 dAtA[i] = 0x10 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.InitialDelaySeconds)) @@ -8178,11 +8279,11 @@ func (m *RBDPersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x3a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SecretRef.Size())) - n161, err := m.SecretRef.MarshalTo(dAtA[i:]) + n164, err := m.SecretRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n161 + i += n164 } dAtA[i] = 0x40 i++ @@ -8249,11 +8350,11 @@ func (m *RBDVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x3a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SecretRef.Size())) - n162, err := m.SecretRef.MarshalTo(dAtA[i:]) + n165, err := m.SecretRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n162 + i += n165 } dAtA[i] = 0x40 i++ @@ -8284,11 +8385,11 @@ func (m *RangeAllocation) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n163, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n166, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n163 + i += n166 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Range))) @@ -8320,27 +8421,27 @@ func (m *ReplicationController) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n164, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n167, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n164 + i += n167 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n165, err := m.Spec.MarshalTo(dAtA[i:]) + n168, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n165 + i += n168 dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n166, err := m.Status.MarshalTo(dAtA[i:]) + n169, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n166 + i += n169 return i, nil } @@ -8370,11 +8471,11 @@ func (m *ReplicationControllerCondition) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LastTransitionTime.Size())) - n167, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) + n170, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n167 + i += n170 dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) @@ -8404,11 +8505,11 @@ func (m *ReplicationControllerList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n168, err := m.ListMeta.MarshalTo(dAtA[i:]) + n171, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n168 + i += n171 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -8470,11 +8571,11 @@ func (m *ReplicationControllerSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Template.Size())) - n169, err := m.Template.MarshalTo(dAtA[i:]) + n172, err := m.Template.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n169 + i += n172 } dAtA[i] = 0x20 i++ @@ -8553,11 +8654,11 @@ func (m *ResourceFieldSelector) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Divisor.Size())) - n170, err := m.Divisor.MarshalTo(dAtA[i:]) + n173, err := m.Divisor.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n170 + i += n173 return i, nil } @@ -8579,27 +8680,27 @@ func (m *ResourceQuota) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n171, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n174, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n171 + i += n174 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n172, err := m.Spec.MarshalTo(dAtA[i:]) + n175, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n172 + i += n175 dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n173, err := m.Status.MarshalTo(dAtA[i:]) + n176, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n173 + i += n176 return i, nil } @@ -8621,11 +8722,11 @@ func (m *ResourceQuotaList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n174, err := m.ListMeta.MarshalTo(dAtA[i:]) + n177, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n174 + i += n177 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -8680,11 +8781,11 @@ func (m *ResourceQuotaSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n175, err := (&v).MarshalTo(dAtA[i:]) + n178, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n175 + i += n178 } } if len(m.Scopes) > 0 { @@ -8702,6 +8803,16 @@ func (m *ResourceQuotaSpec) MarshalTo(dAtA []byte) (int, error) { i += copy(dAtA[i:], s) } } + if m.ScopeSelector != nil { + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ScopeSelector.Size())) + n179, err := m.ScopeSelector.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n179 + } return i, nil } @@ -8744,11 +8855,11 @@ func (m *ResourceQuotaStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n176, err := (&v).MarshalTo(dAtA[i:]) + n180, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n176 + i += n180 } } if len(m.Used) > 0 { @@ -8775,11 +8886,11 @@ func (m *ResourceQuotaStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n177, err := (&v).MarshalTo(dAtA[i:]) + n181, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n177 + i += n181 } } return i, nil @@ -8824,11 +8935,11 @@ func (m *ResourceRequirements) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n178, err := (&v).MarshalTo(dAtA[i:]) + n182, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n178 + i += n182 } } if len(m.Requests) > 0 { @@ -8855,11 +8966,11 @@ func (m *ResourceRequirements) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n179, err := (&v).MarshalTo(dAtA[i:]) + n183, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n179 + i += n183 } } return i, nil @@ -8926,11 +9037,11 @@ func (m *ScaleIOPersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SecretRef.Size())) - n180, err := m.SecretRef.MarshalTo(dAtA[i:]) + n184, err := m.SecretRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n180 + i += n184 } dAtA[i] = 0x20 i++ @@ -8998,11 +9109,11 @@ func (m *ScaleIOVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SecretRef.Size())) - n181, err := m.SecretRef.MarshalTo(dAtA[i:]) + n185, err := m.SecretRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n181 + i += n185 } dAtA[i] = 0x20 i++ @@ -9043,6 +9154,77 @@ func (m *ScaleIOVolumeSource) MarshalTo(dAtA []byte) (int, error) { return i, nil } +func (m *ScopeSelector) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ScopeSelector) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.MatchExpressions) > 0 { + for _, msg := range m.MatchExpressions { + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + +func (m *ScopedResourceSelectorRequirement) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ScopedResourceSelectorRequirement) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.ScopeName))) + i += copy(dAtA[i:], m.ScopeName) + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Operator))) + i += copy(dAtA[i:], m.Operator) + if len(m.Values) > 0 { + for _, s := range m.Values { + dAtA[i] = 0x1a + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } + return i, nil +} + func (m *Secret) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -9061,11 +9243,11 @@ func (m *Secret) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n182, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n186, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n182 + i += n186 if len(m.Data) > 0 { keysForData := make([]string, 0, len(m.Data)) for k := range m.Data { @@ -9141,11 +9323,11 @@ func (m *SecretEnvSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LocalObjectReference.Size())) - n183, err := m.LocalObjectReference.MarshalTo(dAtA[i:]) + n187, err := m.LocalObjectReference.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n183 + i += n187 if m.Optional != nil { dAtA[i] = 0x10 i++ @@ -9177,11 +9359,11 @@ func (m *SecretKeySelector) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LocalObjectReference.Size())) - n184, err := m.LocalObjectReference.MarshalTo(dAtA[i:]) + n188, err := m.LocalObjectReference.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n184 + i += n188 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Key))) @@ -9217,11 +9399,11 @@ func (m *SecretList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n185, err := m.ListMeta.MarshalTo(dAtA[i:]) + n189, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n185 + i += n189 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -9255,11 +9437,11 @@ func (m *SecretProjection) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LocalObjectReference.Size())) - n186, err := m.LocalObjectReference.MarshalTo(dAtA[i:]) + n190, err := m.LocalObjectReference.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n186 + i += n190 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -9379,11 +9561,11 @@ func (m *SecurityContext) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Capabilities.Size())) - n187, err := m.Capabilities.MarshalTo(dAtA[i:]) + n191, err := m.Capabilities.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n187 + i += n191 } if m.Privileged != nil { dAtA[i] = 0x10 @@ -9399,11 +9581,11 @@ func (m *SecurityContext) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SELinuxOptions.Size())) - n188, err := m.SELinuxOptions.MarshalTo(dAtA[i:]) + n192, err := m.SELinuxOptions.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n188 + i += n192 } if m.RunAsUser != nil { dAtA[i] = 0x20 @@ -9440,6 +9622,17 @@ func (m *SecurityContext) MarshalTo(dAtA []byte) (int, error) { } i++ } + if m.RunAsGroup != nil { + dAtA[i] = 0x40 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(*m.RunAsGroup)) + } + if m.ProcMount != nil { + dAtA[i] = 0x4a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.ProcMount))) + i += copy(dAtA[i:], *m.ProcMount) + } return i, nil } @@ -9461,11 +9654,11 @@ func (m *SerializedReference) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Reference.Size())) - n189, err := m.Reference.MarshalTo(dAtA[i:]) + n193, err := m.Reference.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n189 + i += n193 return i, nil } @@ -9487,27 +9680,27 @@ func (m *Service) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n190, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n194, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n190 + i += n194 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n191, err := m.Spec.MarshalTo(dAtA[i:]) + n195, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n191 + i += n195 dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n192, err := m.Status.MarshalTo(dAtA[i:]) + n196, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n192 + i += n196 return i, nil } @@ -9529,11 +9722,11 @@ func (m *ServiceAccount) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n193, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n197, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n193 + i += n197 if len(m.Secrets) > 0 { for _, msg := range m.Secrets { dAtA[i] = 0x12 @@ -9589,11 +9782,11 @@ func (m *ServiceAccountList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n194, err := m.ListMeta.MarshalTo(dAtA[i:]) + n198, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n194 + i += n198 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -9609,6 +9802,37 @@ func (m *ServiceAccountList) MarshalTo(dAtA []byte) (int, error) { return i, nil } +func (m *ServiceAccountTokenProjection) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ServiceAccountTokenProjection) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Audience))) + i += copy(dAtA[i:], m.Audience) + if m.ExpirationSeconds != nil { + dAtA[i] = 0x10 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(*m.ExpirationSeconds)) + } + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Path))) + i += copy(dAtA[i:], m.Path) + return i, nil +} + func (m *ServiceList) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -9627,11 +9851,11 @@ func (m *ServiceList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n195, err := m.ListMeta.MarshalTo(dAtA[i:]) + n199, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n195 + i += n199 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -9676,11 +9900,11 @@ func (m *ServicePort) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.TargetPort.Size())) - n196, err := m.TargetPort.MarshalTo(dAtA[i:]) + n200, err := m.TargetPort.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n196 + i += n200 dAtA[i] = 0x28 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.NodePort)) @@ -9827,11 +10051,11 @@ func (m *ServiceSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x72 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SessionAffinityConfig.Size())) - n197, err := m.SessionAffinityConfig.MarshalTo(dAtA[i:]) + n201, err := m.SessionAffinityConfig.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n197 + i += n201 } return i, nil } @@ -9854,11 +10078,11 @@ func (m *ServiceStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LoadBalancer.Size())) - n198, err := m.LoadBalancer.MarshalTo(dAtA[i:]) + n202, err := m.LoadBalancer.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n198 + i += n202 return i, nil } @@ -9881,11 +10105,11 @@ func (m *SessionAffinityConfig) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ClientIP.Size())) - n199, err := m.ClientIP.MarshalTo(dAtA[i:]) + n203, err := m.ClientIP.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n199 + i += n203 } return i, nil } @@ -9929,11 +10153,11 @@ func (m *StorageOSPersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x2a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SecretRef.Size())) - n200, err := m.SecretRef.MarshalTo(dAtA[i:]) + n204, err := m.SecretRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n200 + i += n204 } return i, nil } @@ -9977,11 +10201,11 @@ func (m *StorageOSVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x2a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SecretRef.Size())) - n201, err := m.SecretRef.MarshalTo(dAtA[i:]) + n205, err := m.SecretRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n201 + i += n205 } return i, nil } @@ -10030,11 +10254,11 @@ func (m *TCPSocketAction) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Port.Size())) - n202, err := m.Port.MarshalTo(dAtA[i:]) + n206, err := m.Port.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n202 + i += n206 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Host))) @@ -10073,11 +10297,11 @@ func (m *Taint) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.TimeAdded.Size())) - n203, err := m.TimeAdded.MarshalTo(dAtA[i:]) + n207, err := m.TimeAdded.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n203 + i += n207 } return i, nil } @@ -10121,6 +10345,105 @@ func (m *Toleration) MarshalTo(dAtA []byte) (int, error) { return i, nil } +func (m *TopologySelectorLabelRequirement) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TopologySelectorLabelRequirement) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Key))) + i += copy(dAtA[i:], m.Key) + if len(m.Values) > 0 { + for _, s := range m.Values { + dAtA[i] = 0x12 + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } + return i, nil +} + +func (m *TopologySelectorTerm) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TopologySelectorTerm) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.MatchLabelExpressions) > 0 { + for _, msg := range m.MatchLabelExpressions { + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + +func (m *TypedLocalObjectReference) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TypedLocalObjectReference) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.APIGroup != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.APIGroup))) + i += copy(dAtA[i:], *m.APIGroup) + } + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind))) + i += copy(dAtA[i:], m.Kind) + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i += copy(dAtA[i:], m.Name) + return i, nil +} + func (m *Volume) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -10143,11 +10466,11 @@ func (m *Volume) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.VolumeSource.Size())) - n204, err := m.VolumeSource.MarshalTo(dAtA[i:]) + n208, err := m.VolumeSource.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n204 + i += n208 return i, nil } @@ -10240,11 +10563,11 @@ func (m *VolumeNodeAffinity) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Required.Size())) - n205, err := m.Required.MarshalTo(dAtA[i:]) + n209, err := m.Required.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n205 + i += n209 } return i, nil } @@ -10268,31 +10591,41 @@ func (m *VolumeProjection) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Secret.Size())) - n206, err := m.Secret.MarshalTo(dAtA[i:]) + n210, err := m.Secret.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n206 + i += n210 } if m.DownwardAPI != nil { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.DownwardAPI.Size())) - n207, err := m.DownwardAPI.MarshalTo(dAtA[i:]) + n211, err := m.DownwardAPI.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n207 + i += n211 } if m.ConfigMap != nil { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ConfigMap.Size())) - n208, err := m.ConfigMap.MarshalTo(dAtA[i:]) + n212, err := m.ConfigMap.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n208 + i += n212 + } + if m.ServiceAccountToken != nil { + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ServiceAccountToken.Size())) + n213, err := m.ServiceAccountToken.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n213 } return i, nil } @@ -10316,163 +10649,163 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.HostPath.Size())) - n209, err := m.HostPath.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n209 - } - if m.EmptyDir != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.EmptyDir.Size())) - n210, err := m.EmptyDir.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n210 - } - if m.GCEPersistentDisk != nil { - dAtA[i] = 0x1a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.GCEPersistentDisk.Size())) - n211, err := m.GCEPersistentDisk.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n211 - } - if m.AWSElasticBlockStore != nil { - dAtA[i] = 0x22 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.AWSElasticBlockStore.Size())) - n212, err := m.AWSElasticBlockStore.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n212 - } - if m.GitRepo != nil { - dAtA[i] = 0x2a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.GitRepo.Size())) - n213, err := m.GitRepo.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n213 - } - if m.Secret != nil { - dAtA[i] = 0x32 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Secret.Size())) - n214, err := m.Secret.MarshalTo(dAtA[i:]) + n214, err := m.HostPath.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n214 } - if m.NFS != nil { - dAtA[i] = 0x3a + if m.EmptyDir != nil { + dAtA[i] = 0x12 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.NFS.Size())) - n215, err := m.NFS.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.EmptyDir.Size())) + n215, err := m.EmptyDir.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n215 } - if m.ISCSI != nil { - dAtA[i] = 0x42 + if m.GCEPersistentDisk != nil { + dAtA[i] = 0x1a i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.ISCSI.Size())) - n216, err := m.ISCSI.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.GCEPersistentDisk.Size())) + n216, err := m.GCEPersistentDisk.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n216 } - if m.Glusterfs != nil { - dAtA[i] = 0x4a + if m.AWSElasticBlockStore != nil { + dAtA[i] = 0x22 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Glusterfs.Size())) - n217, err := m.Glusterfs.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.AWSElasticBlockStore.Size())) + n217, err := m.AWSElasticBlockStore.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n217 } - if m.PersistentVolumeClaim != nil { - dAtA[i] = 0x52 + if m.GitRepo != nil { + dAtA[i] = 0x2a i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.PersistentVolumeClaim.Size())) - n218, err := m.PersistentVolumeClaim.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.GitRepo.Size())) + n218, err := m.GitRepo.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n218 } - if m.RBD != nil { - dAtA[i] = 0x5a + if m.Secret != nil { + dAtA[i] = 0x32 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.RBD.Size())) - n219, err := m.RBD.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.Secret.Size())) + n219, err := m.Secret.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n219 } - if m.FlexVolume != nil { - dAtA[i] = 0x62 + if m.NFS != nil { + dAtA[i] = 0x3a i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.FlexVolume.Size())) - n220, err := m.FlexVolume.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.NFS.Size())) + n220, err := m.NFS.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n220 } - if m.Cinder != nil { - dAtA[i] = 0x6a + if m.ISCSI != nil { + dAtA[i] = 0x42 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Cinder.Size())) - n221, err := m.Cinder.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.ISCSI.Size())) + n221, err := m.ISCSI.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n221 } - if m.CephFS != nil { - dAtA[i] = 0x72 + if m.Glusterfs != nil { + dAtA[i] = 0x4a i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.CephFS.Size())) - n222, err := m.CephFS.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.Glusterfs.Size())) + n222, err := m.Glusterfs.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n222 } - if m.Flocker != nil { - dAtA[i] = 0x7a + if m.PersistentVolumeClaim != nil { + dAtA[i] = 0x52 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Flocker.Size())) - n223, err := m.Flocker.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.PersistentVolumeClaim.Size())) + n223, err := m.PersistentVolumeClaim.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n223 } + if m.RBD != nil { + dAtA[i] = 0x5a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.RBD.Size())) + n224, err := m.RBD.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n224 + } + if m.FlexVolume != nil { + dAtA[i] = 0x62 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.FlexVolume.Size())) + n225, err := m.FlexVolume.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n225 + } + if m.Cinder != nil { + dAtA[i] = 0x6a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Cinder.Size())) + n226, err := m.Cinder.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n226 + } + if m.CephFS != nil { + dAtA[i] = 0x72 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.CephFS.Size())) + n227, err := m.CephFS.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n227 + } + if m.Flocker != nil { + dAtA[i] = 0x7a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Flocker.Size())) + n228, err := m.Flocker.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n228 + } if m.DownwardAPI != nil { dAtA[i] = 0x82 i++ dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.DownwardAPI.Size())) - n224, err := m.DownwardAPI.MarshalTo(dAtA[i:]) + n229, err := m.DownwardAPI.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n224 + i += n229 } if m.FC != nil { dAtA[i] = 0x8a @@ -10480,11 +10813,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.FC.Size())) - n225, err := m.FC.MarshalTo(dAtA[i:]) + n230, err := m.FC.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n225 + i += n230 } if m.AzureFile != nil { dAtA[i] = 0x92 @@ -10492,11 +10825,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.AzureFile.Size())) - n226, err := m.AzureFile.MarshalTo(dAtA[i:]) + n231, err := m.AzureFile.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n226 + i += n231 } if m.ConfigMap != nil { dAtA[i] = 0x9a @@ -10504,11 +10837,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ConfigMap.Size())) - n227, err := m.ConfigMap.MarshalTo(dAtA[i:]) + n232, err := m.ConfigMap.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n227 + i += n232 } if m.VsphereVolume != nil { dAtA[i] = 0xa2 @@ -10516,11 +10849,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.VsphereVolume.Size())) - n228, err := m.VsphereVolume.MarshalTo(dAtA[i:]) + n233, err := m.VsphereVolume.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n228 + i += n233 } if m.Quobyte != nil { dAtA[i] = 0xaa @@ -10528,11 +10861,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Quobyte.Size())) - n229, err := m.Quobyte.MarshalTo(dAtA[i:]) + n234, err := m.Quobyte.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n229 + i += n234 } if m.AzureDisk != nil { dAtA[i] = 0xb2 @@ -10540,11 +10873,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.AzureDisk.Size())) - n230, err := m.AzureDisk.MarshalTo(dAtA[i:]) + n235, err := m.AzureDisk.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n230 + i += n235 } if m.PhotonPersistentDisk != nil { dAtA[i] = 0xba @@ -10552,11 +10885,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.PhotonPersistentDisk.Size())) - n231, err := m.PhotonPersistentDisk.MarshalTo(dAtA[i:]) + n236, err := m.PhotonPersistentDisk.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n231 + i += n236 } if m.PortworxVolume != nil { dAtA[i] = 0xc2 @@ -10564,11 +10897,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.PortworxVolume.Size())) - n232, err := m.PortworxVolume.MarshalTo(dAtA[i:]) + n237, err := m.PortworxVolume.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n232 + i += n237 } if m.ScaleIO != nil { dAtA[i] = 0xca @@ -10576,11 +10909,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ScaleIO.Size())) - n233, err := m.ScaleIO.MarshalTo(dAtA[i:]) + n238, err := m.ScaleIO.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n233 + i += n238 } if m.Projected != nil { dAtA[i] = 0xd2 @@ -10588,11 +10921,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Projected.Size())) - n234, err := m.Projected.MarshalTo(dAtA[i:]) + n239, err := m.Projected.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n234 + i += n239 } if m.StorageOS != nil { dAtA[i] = 0xda @@ -10600,11 +10933,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.StorageOS.Size())) - n235, err := m.StorageOS.MarshalTo(dAtA[i:]) + n240, err := m.StorageOS.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n235 + i += n240 } return i, nil } @@ -10664,32 +10997,14 @@ func (m *WeightedPodAffinityTerm) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.PodAffinityTerm.Size())) - n236, err := m.PodAffinityTerm.MarshalTo(dAtA[i:]) + n241, err := m.PodAffinityTerm.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n236 + i += n241 return i, nil } -func encodeFixed64Generated(dAtA []byte, offset int, v uint64) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - dAtA[offset+4] = uint8(v >> 32) - dAtA[offset+5] = uint8(v >> 40) - dAtA[offset+6] = uint8(v >> 48) - dAtA[offset+7] = uint8(v >> 56) - return offset + 8 -} -func encodeFixed32Generated(dAtA []byte, offset int, v uint32) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - return offset + 4 -} func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -10909,6 +11224,21 @@ func (m *CephFSVolumeSource) Size() (n int) { return n } +func (m *CinderPersistentVolumeSource) Size() (n int) { + var l int + _ = l + l = len(m.VolumeID) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.FSType) + n += 1 + l + sovGenerated(uint64(l)) + n += 2 + if m.SecretRef != nil { + l = m.SecretRef.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + func (m *CinderVolumeSource) Size() (n int) { var l int _ = l @@ -10917,6 +11247,10 @@ func (m *CinderVolumeSource) Size() (n int) { l = len(m.FSType) n += 1 + l + sovGenerated(uint64(l)) n += 2 + if m.SecretRef != nil { + l = m.SecretRef.Size() + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -11037,6 +11371,22 @@ func (m *ConfigMapList) Size() (n int) { return n } +func (m *ConfigMapNodeConfigSource) Size() (n int) { + var l int + _ = l + l = len(m.Namespace) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.UID) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.ResourceVersion) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.KubeletConfigKey) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + func (m *ConfigMapProjection) Size() (n int) { var l int _ = l @@ -11263,26 +11613,6 @@ func (m *DaemonEndpoint) Size() (n int) { return n } -func (m *DeleteOptions) Size() (n int) { - var l int - _ = l - if m.GracePeriodSeconds != nil { - n += 1 + sovGenerated(uint64(*m.GracePeriodSeconds)) - } - if m.Preconditions != nil { - l = m.Preconditions.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if m.OrphanDependents != nil { - n += 2 - } - if m.PropagationPolicy != nil { - l = len(*m.PropagationPolicy) - n += 1 + l + sovGenerated(uint64(l)) - } - return n -} - func (m *DownwardAPIProjection) Size() (n int) { var l int _ = l @@ -11664,6 +11994,21 @@ func (m *GitRepoVolumeSource) Size() (n int) { return n } +func (m *GlusterfsPersistentVolumeSource) Size() (n int) { + var l int + _ = l + l = len(m.EndpointsName) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Path) + n += 1 + l + sovGenerated(uint64(l)) + n += 2 + if m.EndpointsNamespace != nil { + l = len(*m.EndpointsNamespace) + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + func (m *GlusterfsVolumeSource) Size() (n int) { var l int _ = l @@ -11943,23 +12288,6 @@ func (m *List) Size() (n int) { return n } -func (m *ListOptions) Size() (n int) { - var l int - _ = l - l = len(m.LabelSelector) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.FieldSelector) - n += 1 + l + sovGenerated(uint64(l)) - n += 2 - l = len(m.ResourceVersion) - n += 1 + l + sovGenerated(uint64(l)) - if m.TimeoutSeconds != nil { - n += 1 + sovGenerated(uint64(*m.TimeoutSeconds)) - } - n += 2 - return n -} - func (m *LoadBalancerIngress) Size() (n int) { var l int _ = l @@ -11995,6 +12323,10 @@ func (m *LocalVolumeSource) Size() (n int) { _ = l l = len(m.Path) n += 1 + l + sovGenerated(uint64(l)) + if m.FSType != nil { + l = len(*m.FSType) + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -12114,13 +12446,33 @@ func (m *NodeCondition) Size() (n int) { func (m *NodeConfigSource) Size() (n int) { var l int _ = l - if m.ConfigMapRef != nil { - l = m.ConfigMapRef.Size() + if m.ConfigMap != nil { + l = m.ConfigMap.Size() n += 1 + l + sovGenerated(uint64(l)) } return n } +func (m *NodeConfigStatus) Size() (n int) { + var l int + _ = l + if m.Assigned != nil { + l = m.Assigned.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Active != nil { + l = m.Active.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.LastKnownGood != nil { + l = m.LastKnownGood.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + l = len(m.Error) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + func (m *NodeDaemonEndpoints) Size() (n int) { var l int _ = l @@ -12203,6 +12555,12 @@ func (m *NodeSelectorTerm) Size() (n int) { n += 1 + l + sovGenerated(uint64(l)) } } + if len(m.MatchFields) > 0 { + for _, e := range m.MatchFields { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } return n } @@ -12211,7 +12569,7 @@ func (m *NodeSpec) Size() (n int) { _ = l l = len(m.PodCIDR) n += 1 + l + sovGenerated(uint64(l)) - l = len(m.ExternalID) + l = len(m.DoNotUse_ExternalID) n += 1 + l + sovGenerated(uint64(l)) l = len(m.ProviderID) n += 1 + l + sovGenerated(uint64(l)) @@ -12286,6 +12644,10 @@ func (m *NodeStatus) Size() (n int) { n += 1 + l + sovGenerated(uint64(l)) } } + if m.Config != nil { + l = m.Config.Size() + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -12325,68 +12687,6 @@ func (m *ObjectFieldSelector) Size() (n int) { return n } -func (m *ObjectMeta) Size() (n int) { - var l int - _ = l - l = len(m.Name) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.GenerateName) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Namespace) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.SelfLink) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.UID) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.ResourceVersion) - n += 1 + l + sovGenerated(uint64(l)) - n += 1 + sovGenerated(uint64(m.Generation)) - l = m.CreationTimestamp.Size() - n += 1 + l + sovGenerated(uint64(l)) - if m.DeletionTimestamp != nil { - l = m.DeletionTimestamp.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if m.DeletionGracePeriodSeconds != nil { - n += 1 + sovGenerated(uint64(*m.DeletionGracePeriodSeconds)) - } - if len(m.Labels) > 0 { - for k, v := range m.Labels { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) - n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) - } - } - if len(m.Annotations) > 0 { - for k, v := range m.Annotations { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) - n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) - } - } - if len(m.OwnerReferences) > 0 { - for _, e := range m.OwnerReferences { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - if len(m.Finalizers) > 0 { - for _, s := range m.Finalizers { - l = len(s) - n += 1 + l + sovGenerated(uint64(l)) - } - } - l = len(m.ClusterName) - n += 1 + l + sovGenerated(uint64(l)) - if m.Initializers != nil { - l = m.Initializers.Size() - n += 2 + l + sovGenerated(uint64(l)) - } - return n -} - func (m *ObjectReference) Size() (n int) { var l int _ = l @@ -12488,6 +12788,10 @@ func (m *PersistentVolumeClaimSpec) Size() (n int) { l = len(*m.VolumeMode) n += 1 + l + sovGenerated(uint64(l)) } + if m.DataSource != nil { + l = m.DataSource.Size() + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -12911,6 +13215,14 @@ func (m *PodProxyOptions) Size() (n int) { return n } +func (m *PodReadinessGate) Size() (n int) { + var l int + _ = l + l = len(m.ConditionType) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + func (m *PodSecurityContext) Size() (n int) { var l int _ = l @@ -12932,6 +13244,15 @@ func (m *PodSecurityContext) Size() (n int) { if m.FSGroup != nil { n += 1 + sovGenerated(uint64(*m.FSGroup)) } + if m.RunAsGroup != nil { + n += 1 + sovGenerated(uint64(*m.RunAsGroup)) + } + if len(m.Sysctls) > 0 { + for _, e := range m.Sysctls { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } return n } @@ -13040,6 +13361,19 @@ func (m *PodSpec) Size() (n int) { if m.ShareProcessNamespace != nil { n += 3 } + if len(m.ReadinessGates) > 0 { + for _, e := range m.ReadinessGates { + l = e.Size() + n += 2 + l + sovGenerated(uint64(l)) + } + } + if m.RuntimeClassName != nil { + l = len(*m.RuntimeClassName) + n += 2 + l + sovGenerated(uint64(l)) + } + if m.EnableServiceLinks != nil { + n += 3 + } return n } @@ -13421,6 +13755,10 @@ func (m *ResourceQuotaSpec) Size() (n int) { n += 1 + l + sovGenerated(uint64(l)) } } + if m.ScopeSelector != nil { + l = m.ScopeSelector.Size() + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -13538,6 +13876,34 @@ func (m *ScaleIOVolumeSource) Size() (n int) { return n } +func (m *ScopeSelector) Size() (n int) { + var l int + _ = l + if len(m.MatchExpressions) > 0 { + for _, e := range m.MatchExpressions { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *ScopedResourceSelectorRequirement) Size() (n int) { + var l int + _ = l + l = len(m.ScopeName) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Operator) + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Values) > 0 { + for _, s := range m.Values { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + func (m *Secret) Size() (n int) { var l int _ = l @@ -13679,6 +14045,13 @@ func (m *SecurityContext) Size() (n int) { if m.AllowPrivilegeEscalation != nil { n += 2 } + if m.RunAsGroup != nil { + n += 1 + sovGenerated(uint64(*m.RunAsGroup)) + } + if m.ProcMount != nil { + l = len(*m.ProcMount) + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -13739,6 +14112,19 @@ func (m *ServiceAccountList) Size() (n int) { return n } +func (m *ServiceAccountTokenProjection) Size() (n int) { + var l int + _ = l + l = len(m.Audience) + n += 1 + l + sovGenerated(uint64(l)) + if m.ExpirationSeconds != nil { + n += 1 + sovGenerated(uint64(*m.ExpirationSeconds)) + } + l = len(m.Path) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + func (m *ServiceList) Size() (n int) { var l int _ = l @@ -13930,6 +14316,46 @@ func (m *Toleration) Size() (n int) { return n } +func (m *TopologySelectorLabelRequirement) Size() (n int) { + var l int + _ = l + l = len(m.Key) + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Values) > 0 { + for _, s := range m.Values { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *TopologySelectorTerm) Size() (n int) { + var l int + _ = l + if len(m.MatchLabelExpressions) > 0 { + for _, e := range m.MatchLabelExpressions { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *TypedLocalObjectReference) Size() (n int) { + var l int + _ = l + if m.APIGroup != nil { + l = len(*m.APIGroup) + n += 1 + l + sovGenerated(uint64(l)) + } + l = len(m.Kind) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + func (m *Volume) Size() (n int) { var l int _ = l @@ -13992,6 +14418,10 @@ func (m *VolumeProjection) Size() (n int) { l = m.ConfigMap.Size() n += 1 + l + sovGenerated(uint64(l)) } + if m.ServiceAccountToken != nil { + l = m.ServiceAccountToken.Size() + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -14310,6 +14740,19 @@ func (this *CephFSVolumeSource) String() string { }, "") return s } +func (this *CinderPersistentVolumeSource) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&CinderPersistentVolumeSource{`, + `VolumeID:` + fmt.Sprintf("%v", this.VolumeID) + `,`, + `FSType:` + fmt.Sprintf("%v", this.FSType) + `,`, + `ReadOnly:` + fmt.Sprintf("%v", this.ReadOnly) + `,`, + `SecretRef:` + strings.Replace(fmt.Sprintf("%v", this.SecretRef), "SecretReference", "SecretReference", 1) + `,`, + `}`, + }, "") + return s +} func (this *CinderVolumeSource) String() string { if this == nil { return "nil" @@ -14318,6 +14761,7 @@ func (this *CinderVolumeSource) String() string { `VolumeID:` + fmt.Sprintf("%v", this.VolumeID) + `,`, `FSType:` + fmt.Sprintf("%v", this.FSType) + `,`, `ReadOnly:` + fmt.Sprintf("%v", this.ReadOnly) + `,`, + `SecretRef:` + strings.Replace(fmt.Sprintf("%v", this.SecretRef), "LocalObjectReference", "LocalObjectReference", 1) + `,`, `}`, }, "") return s @@ -14433,6 +14877,20 @@ func (this *ConfigMapList) String() string { }, "") return s } +func (this *ConfigMapNodeConfigSource) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ConfigMapNodeConfigSource{`, + `Namespace:` + fmt.Sprintf("%v", this.Namespace) + `,`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `UID:` + fmt.Sprintf("%v", this.UID) + `,`, + `ResourceVersion:` + fmt.Sprintf("%v", this.ResourceVersion) + `,`, + `KubeletConfigKey:` + fmt.Sprintf("%v", this.KubeletConfigKey) + `,`, + `}`, + }, "") + return s +} func (this *ConfigMapProjection) String() string { if this == nil { return "nil" @@ -14589,19 +15047,6 @@ func (this *DaemonEndpoint) String() string { }, "") return s } -func (this *DeleteOptions) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&DeleteOptions{`, - `GracePeriodSeconds:` + valueToStringGenerated(this.GracePeriodSeconds) + `,`, - `Preconditions:` + strings.Replace(fmt.Sprintf("%v", this.Preconditions), "Preconditions", "Preconditions", 1) + `,`, - `OrphanDependents:` + valueToStringGenerated(this.OrphanDependents) + `,`, - `PropagationPolicy:` + valueToStringGenerated(this.PropagationPolicy) + `,`, - `}`, - }, "") - return s -} func (this *DownwardAPIProjection) String() string { if this == nil { return "nil" @@ -14909,6 +15354,19 @@ func (this *GitRepoVolumeSource) String() string { }, "") return s } +func (this *GlusterfsPersistentVolumeSource) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&GlusterfsPersistentVolumeSource{`, + `EndpointsName:` + fmt.Sprintf("%v", this.EndpointsName) + `,`, + `Path:` + fmt.Sprintf("%v", this.Path) + `,`, + `ReadOnly:` + fmt.Sprintf("%v", this.ReadOnly) + `,`, + `EndpointsNamespace:` + valueToStringGenerated(this.EndpointsNamespace) + `,`, + `}`, + }, "") + return s +} func (this *GlusterfsVolumeSource) String() string { if this == nil { return "nil" @@ -15151,21 +15609,6 @@ func (this *List) String() string { }, "") return s } -func (this *ListOptions) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ListOptions{`, - `LabelSelector:` + fmt.Sprintf("%v", this.LabelSelector) + `,`, - `FieldSelector:` + fmt.Sprintf("%v", this.FieldSelector) + `,`, - `Watch:` + fmt.Sprintf("%v", this.Watch) + `,`, - `ResourceVersion:` + fmt.Sprintf("%v", this.ResourceVersion) + `,`, - `TimeoutSeconds:` + valueToStringGenerated(this.TimeoutSeconds) + `,`, - `IncludeUninitialized:` + fmt.Sprintf("%v", this.IncludeUninitialized) + `,`, - `}`, - }, "") - return s -} func (this *LoadBalancerIngress) String() string { if this == nil { return "nil" @@ -15203,6 +15646,7 @@ func (this *LocalVolumeSource) String() string { } s := strings.Join([]string{`&LocalVolumeSource{`, `Path:` + fmt.Sprintf("%v", this.Path) + `,`, + `FSType:` + valueToStringGenerated(this.FSType) + `,`, `}`, }, "") return s @@ -15316,7 +15760,20 @@ func (this *NodeConfigSource) String() string { return "nil" } s := strings.Join([]string{`&NodeConfigSource{`, - `ConfigMapRef:` + strings.Replace(fmt.Sprintf("%v", this.ConfigMapRef), "ObjectReference", "ObjectReference", 1) + `,`, + `ConfigMap:` + strings.Replace(fmt.Sprintf("%v", this.ConfigMap), "ConfigMapNodeConfigSource", "ConfigMapNodeConfigSource", 1) + `,`, + `}`, + }, "") + return s +} +func (this *NodeConfigStatus) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&NodeConfigStatus{`, + `Assigned:` + strings.Replace(fmt.Sprintf("%v", this.Assigned), "NodeConfigSource", "NodeConfigSource", 1) + `,`, + `Active:` + strings.Replace(fmt.Sprintf("%v", this.Active), "NodeConfigSource", "NodeConfigSource", 1) + `,`, + `LastKnownGood:` + strings.Replace(fmt.Sprintf("%v", this.LastKnownGood), "NodeConfigSource", "NodeConfigSource", 1) + `,`, + `Error:` + fmt.Sprintf("%v", this.Error) + `,`, `}`, }, "") return s @@ -15400,6 +15857,7 @@ func (this *NodeSelectorTerm) String() string { } s := strings.Join([]string{`&NodeSelectorTerm{`, `MatchExpressions:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.MatchExpressions), "NodeSelectorRequirement", "NodeSelectorRequirement", 1), `&`, ``, 1) + `,`, + `MatchFields:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.MatchFields), "NodeSelectorRequirement", "NodeSelectorRequirement", 1), `&`, ``, 1) + `,`, `}`, }, "") return s @@ -15410,7 +15868,7 @@ func (this *NodeSpec) String() string { } s := strings.Join([]string{`&NodeSpec{`, `PodCIDR:` + fmt.Sprintf("%v", this.PodCIDR) + `,`, - `ExternalID:` + fmt.Sprintf("%v", this.ExternalID) + `,`, + `DoNotUse_ExternalID:` + fmt.Sprintf("%v", this.DoNotUse_ExternalID) + `,`, `ProviderID:` + fmt.Sprintf("%v", this.ProviderID) + `,`, `Unschedulable:` + fmt.Sprintf("%v", this.Unschedulable) + `,`, `Taints:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Taints), "Taint", "Taint", 1), `&`, ``, 1) + `,`, @@ -15454,6 +15912,7 @@ func (this *NodeStatus) String() string { `Images:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Images), "ContainerImage", "ContainerImage", 1), `&`, ``, 1) + `,`, `VolumesInUse:` + fmt.Sprintf("%v", this.VolumesInUse) + `,`, `VolumesAttached:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.VolumesAttached), "AttachedVolume", "AttachedVolume", 1), `&`, ``, 1) + `,`, + `Config:` + strings.Replace(fmt.Sprintf("%v", this.Config), "NodeConfigStatus", "NodeConfigStatus", 1) + `,`, `}`, }, "") return s @@ -15488,51 +15947,6 @@ func (this *ObjectFieldSelector) String() string { }, "") return s } -func (this *ObjectMeta) String() string { - if this == nil { - return "nil" - } - keysForLabels := make([]string, 0, len(this.Labels)) - for k := range this.Labels { - keysForLabels = append(keysForLabels, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForLabels) - mapStringForLabels := "map[string]string{" - for _, k := range keysForLabels { - mapStringForLabels += fmt.Sprintf("%v: %v,", k, this.Labels[k]) - } - mapStringForLabels += "}" - keysForAnnotations := make([]string, 0, len(this.Annotations)) - for k := range this.Annotations { - keysForAnnotations = append(keysForAnnotations, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForAnnotations) - mapStringForAnnotations := "map[string]string{" - for _, k := range keysForAnnotations { - mapStringForAnnotations += fmt.Sprintf("%v: %v,", k, this.Annotations[k]) - } - mapStringForAnnotations += "}" - s := strings.Join([]string{`&ObjectMeta{`, - `Name:` + fmt.Sprintf("%v", this.Name) + `,`, - `GenerateName:` + fmt.Sprintf("%v", this.GenerateName) + `,`, - `Namespace:` + fmt.Sprintf("%v", this.Namespace) + `,`, - `SelfLink:` + fmt.Sprintf("%v", this.SelfLink) + `,`, - `UID:` + fmt.Sprintf("%v", this.UID) + `,`, - `ResourceVersion:` + fmt.Sprintf("%v", this.ResourceVersion) + `,`, - `Generation:` + fmt.Sprintf("%v", this.Generation) + `,`, - `CreationTimestamp:` + strings.Replace(strings.Replace(this.CreationTimestamp.String(), "Time", "k8s_io_apimachinery_pkg_apis_meta_v1.Time", 1), `&`, ``, 1) + `,`, - `DeletionTimestamp:` + strings.Replace(fmt.Sprintf("%v", this.DeletionTimestamp), "Time", "k8s_io_apimachinery_pkg_apis_meta_v1.Time", 1) + `,`, - `DeletionGracePeriodSeconds:` + valueToStringGenerated(this.DeletionGracePeriodSeconds) + `,`, - `Labels:` + mapStringForLabels + `,`, - `Annotations:` + mapStringForAnnotations + `,`, - `OwnerReferences:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.OwnerReferences), "OwnerReference", "k8s_io_apimachinery_pkg_apis_meta_v1.OwnerReference", 1), `&`, ``, 1) + `,`, - `Finalizers:` + fmt.Sprintf("%v", this.Finalizers) + `,`, - `ClusterName:` + fmt.Sprintf("%v", this.ClusterName) + `,`, - `Initializers:` + strings.Replace(fmt.Sprintf("%v", this.Initializers), "Initializers", "k8s_io_apimachinery_pkg_apis_meta_v1.Initializers", 1) + `,`, - `}`, - }, "") - return s -} func (this *ObjectReference) String() string { if this == nil { return "nil" @@ -15610,6 +16024,7 @@ func (this *PersistentVolumeClaimSpec) String() string { `Selector:` + strings.Replace(fmt.Sprintf("%v", this.Selector), "LabelSelector", "k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector", 1) + `,`, `StorageClassName:` + valueToStringGenerated(this.StorageClassName) + `,`, `VolumeMode:` + valueToStringGenerated(this.VolumeMode) + `,`, + `DataSource:` + strings.Replace(fmt.Sprintf("%v", this.DataSource), "TypedLocalObjectReference", "TypedLocalObjectReference", 1) + `,`, `}`, }, "") return s @@ -15667,11 +16082,11 @@ func (this *PersistentVolumeSource) String() string { `GCEPersistentDisk:` + strings.Replace(fmt.Sprintf("%v", this.GCEPersistentDisk), "GCEPersistentDiskVolumeSource", "GCEPersistentDiskVolumeSource", 1) + `,`, `AWSElasticBlockStore:` + strings.Replace(fmt.Sprintf("%v", this.AWSElasticBlockStore), "AWSElasticBlockStoreVolumeSource", "AWSElasticBlockStoreVolumeSource", 1) + `,`, `HostPath:` + strings.Replace(fmt.Sprintf("%v", this.HostPath), "HostPathVolumeSource", "HostPathVolumeSource", 1) + `,`, - `Glusterfs:` + strings.Replace(fmt.Sprintf("%v", this.Glusterfs), "GlusterfsVolumeSource", "GlusterfsVolumeSource", 1) + `,`, + `Glusterfs:` + strings.Replace(fmt.Sprintf("%v", this.Glusterfs), "GlusterfsPersistentVolumeSource", "GlusterfsPersistentVolumeSource", 1) + `,`, `NFS:` + strings.Replace(fmt.Sprintf("%v", this.NFS), "NFSVolumeSource", "NFSVolumeSource", 1) + `,`, `RBD:` + strings.Replace(fmt.Sprintf("%v", this.RBD), "RBDPersistentVolumeSource", "RBDPersistentVolumeSource", 1) + `,`, `ISCSI:` + strings.Replace(fmt.Sprintf("%v", this.ISCSI), "ISCSIPersistentVolumeSource", "ISCSIPersistentVolumeSource", 1) + `,`, - `Cinder:` + strings.Replace(fmt.Sprintf("%v", this.Cinder), "CinderVolumeSource", "CinderVolumeSource", 1) + `,`, + `Cinder:` + strings.Replace(fmt.Sprintf("%v", this.Cinder), "CinderPersistentVolumeSource", "CinderPersistentVolumeSource", 1) + `,`, `CephFS:` + strings.Replace(fmt.Sprintf("%v", this.CephFS), "CephFSPersistentVolumeSource", "CephFSPersistentVolumeSource", 1) + `,`, `FC:` + strings.Replace(fmt.Sprintf("%v", this.FC), "FCVolumeSource", "FCVolumeSource", 1) + `,`, `Flocker:` + strings.Replace(fmt.Sprintf("%v", this.Flocker), "FlockerVolumeSource", "FlockerVolumeSource", 1) + `,`, @@ -15902,6 +16317,16 @@ func (this *PodProxyOptions) String() string { }, "") return s } +func (this *PodReadinessGate) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&PodReadinessGate{`, + `ConditionType:` + fmt.Sprintf("%v", this.ConditionType) + `,`, + `}`, + }, "") + return s +} func (this *PodSecurityContext) String() string { if this == nil { return "nil" @@ -15912,6 +16337,8 @@ func (this *PodSecurityContext) String() string { `RunAsNonRoot:` + valueToStringGenerated(this.RunAsNonRoot) + `,`, `SupplementalGroups:` + fmt.Sprintf("%v", this.SupplementalGroups) + `,`, `FSGroup:` + valueToStringGenerated(this.FSGroup) + `,`, + `RunAsGroup:` + valueToStringGenerated(this.RunAsGroup) + `,`, + `Sysctls:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Sysctls), "Sysctl", "Sysctl", 1), `&`, ``, 1) + `,`, `}`, }, "") return s @@ -15968,6 +16395,9 @@ func (this *PodSpec) String() string { `Priority:` + valueToStringGenerated(this.Priority) + `,`, `DNSConfig:` + strings.Replace(fmt.Sprintf("%v", this.DNSConfig), "PodDNSConfig", "PodDNSConfig", 1) + `,`, `ShareProcessNamespace:` + valueToStringGenerated(this.ShareProcessNamespace) + `,`, + `ReadinessGates:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ReadinessGates), "PodReadinessGate", "PodReadinessGate", 1), `&`, ``, 1) + `,`, + `RuntimeClassName:` + valueToStringGenerated(this.RuntimeClassName) + `,`, + `EnableServiceLinks:` + valueToStringGenerated(this.EnableServiceLinks) + `,`, `}`, }, "") return s @@ -16295,6 +16725,7 @@ func (this *ResourceQuotaSpec) String() string { s := strings.Join([]string{`&ResourceQuotaSpec{`, `Hard:` + mapStringForHard + `,`, `Scopes:` + fmt.Sprintf("%v", this.Scopes) + `,`, + `ScopeSelector:` + strings.Replace(fmt.Sprintf("%v", this.ScopeSelector), "ScopeSelector", "ScopeSelector", 1) + `,`, `}`, }, "") return s @@ -16412,6 +16843,28 @@ func (this *ScaleIOVolumeSource) String() string { }, "") return s } +func (this *ScopeSelector) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ScopeSelector{`, + `MatchExpressions:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.MatchExpressions), "ScopedResourceSelectorRequirement", "ScopedResourceSelectorRequirement", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *ScopedResourceSelectorRequirement) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ScopedResourceSelectorRequirement{`, + `ScopeName:` + fmt.Sprintf("%v", this.ScopeName) + `,`, + `Operator:` + fmt.Sprintf("%v", this.Operator) + `,`, + `Values:` + fmt.Sprintf("%v", this.Values) + `,`, + `}`, + }, "") + return s +} func (this *Secret) String() string { if this == nil { return "nil" @@ -16527,6 +16980,8 @@ func (this *SecurityContext) String() string { `RunAsNonRoot:` + valueToStringGenerated(this.RunAsNonRoot) + `,`, `ReadOnlyRootFilesystem:` + valueToStringGenerated(this.ReadOnlyRootFilesystem) + `,`, `AllowPrivilegeEscalation:` + valueToStringGenerated(this.AllowPrivilegeEscalation) + `,`, + `RunAsGroup:` + valueToStringGenerated(this.RunAsGroup) + `,`, + `ProcMount:` + valueToStringGenerated(this.ProcMount) + `,`, `}`, }, "") return s @@ -16577,6 +17032,18 @@ func (this *ServiceAccountList) String() string { }, "") return s } +func (this *ServiceAccountTokenProjection) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ServiceAccountTokenProjection{`, + `Audience:` + fmt.Sprintf("%v", this.Audience) + `,`, + `ExpirationSeconds:` + valueToStringGenerated(this.ExpirationSeconds) + `,`, + `Path:` + fmt.Sprintf("%v", this.Path) + `,`, + `}`, + }, "") + return s +} func (this *ServiceList) String() string { if this == nil { return "nil" @@ -16741,6 +17208,39 @@ func (this *Toleration) String() string { }, "") return s } +func (this *TopologySelectorLabelRequirement) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&TopologySelectorLabelRequirement{`, + `Key:` + fmt.Sprintf("%v", this.Key) + `,`, + `Values:` + fmt.Sprintf("%v", this.Values) + `,`, + `}`, + }, "") + return s +} +func (this *TopologySelectorTerm) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&TopologySelectorTerm{`, + `MatchLabelExpressions:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.MatchLabelExpressions), "TopologySelectorLabelRequirement", "TopologySelectorLabelRequirement", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *TypedLocalObjectReference) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&TypedLocalObjectReference{`, + `APIGroup:` + valueToStringGenerated(this.APIGroup) + `,`, + `Kind:` + fmt.Sprintf("%v", this.Kind) + `,`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `}`, + }, "") + return s +} func (this *Volume) String() string { if this == nil { return "nil" @@ -16795,6 +17295,7 @@ func (this *VolumeProjection) String() string { `Secret:` + strings.Replace(fmt.Sprintf("%v", this.Secret), "SecretProjection", "SecretProjection", 1) + `,`, `DownwardAPI:` + strings.Replace(fmt.Sprintf("%v", this.DownwardAPI), "DownwardAPIProjection", "DownwardAPIProjection", 1) + `,`, `ConfigMap:` + strings.Replace(fmt.Sprintf("%v", this.ConfigMap), "ConfigMapProjection", "ConfigMapProjection", 1) + `,`, + `ServiceAccountToken:` + strings.Replace(fmt.Sprintf("%v", this.ServiceAccountToken), "ServiceAccountTokenProjection", "ServiceAccountTokenProjection", 1) + `,`, `}`, }, "") return s @@ -18129,51 +18630,14 @@ func (m *CSIPersistentVolumeSource) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.VolumeAttributes == nil { m.VolumeAttributes = make(map[string]string) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -18183,41 +18647,80 @@ func (m *CSIPersistentVolumeSource) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - m.VolumeAttributes[mapkey] = mapvalue - } else { - var mapvalue string - m.VolumeAttributes[mapkey] = mapvalue } + m.VolumeAttributes[mapkey] = mapvalue iNdEx = postIndex case 6: if wireType != 2 { @@ -18885,6 +19388,167 @@ func (m *CephFSVolumeSource) Unmarshal(dAtA []byte) error { } return nil } +func (m *CinderPersistentVolumeSource) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CinderPersistentVolumeSource: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CinderPersistentVolumeSource: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field VolumeID", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.VolumeID = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FSType", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FSType = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ReadOnly", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.ReadOnly = bool(v != 0) + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SecretRef", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.SecretRef == nil { + m.SecretRef = &SecretReference{} + } + if err := m.SecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *CinderVolumeSource) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -18992,6 +19656,39 @@ func (m *CinderVolumeSource) Unmarshal(dAtA []byte) error { } } m.ReadOnly = bool(v != 0) + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SecretRef", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.SecretRef == nil { + m.SecretRef = &LocalObjectReference{} + } + if err := m.SecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -19556,51 +20253,14 @@ func (m *ConfigMap) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.Data == nil { m.Data = make(map[string]string) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -19610,41 +20270,80 @@ func (m *ConfigMap) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - m.Data[mapkey] = mapvalue - } else { - var mapvalue string - m.Data[mapkey] = mapvalue } + m.Data[mapkey] = mapvalue iNdEx = postIndex case 3: if wireType != 2 { @@ -19672,51 +20371,14 @@ func (m *ConfigMap) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.BinaryData == nil { m.BinaryData = make(map[string][]byte) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + mapvalue := []byte{} + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -19726,42 +20388,81 @@ func (m *ConfigMap) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthGenerated + } + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue = make([]byte, mapbyteLen) + copy(mapvalue, dAtA[iNdEx:postbytesIndex]) + iNdEx = postbytesIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthGenerated - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := make([]byte, mapbyteLen) - copy(mapvalue, dAtA[iNdEx:postbytesIndex]) - iNdEx = postbytesIndex - m.BinaryData[mapkey] = mapvalue - } else { - var mapvalue []byte - m.BinaryData[mapkey] = mapvalue } + m.BinaryData[mapkey] = mapvalue iNdEx = postIndex default: iNdEx = preIndex @@ -20126,6 +20827,201 @@ func (m *ConfigMapList) Unmarshal(dAtA []byte) error { } return nil } +func (m *ConfigMapNodeConfigSource) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ConfigMapNodeConfigSource: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ConfigMapNodeConfigSource: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Namespace", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Namespace = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UID", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.UID = k8s_io_apimachinery_pkg_types.UID(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ResourceVersion", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ResourceVersion = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field KubeletConfigKey", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.KubeletConfigKey = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *ConfigMapProjection) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -22248,160 +23144,6 @@ func (m *DaemonEndpoint) Unmarshal(dAtA []byte) error { } return nil } -func (m *DeleteOptions) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: DeleteOptions: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: DeleteOptions: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field GracePeriodSeconds", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.GracePeriodSeconds = &v - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Preconditions", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Preconditions == nil { - m.Preconditions = &Preconditions{} - } - if err := m.Preconditions.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field OrphanDependents", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - b := bool(v != 0) - m.OrphanDependents = &b - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PropagationPolicy", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - s := DeletionPropagation(dAtA[iNdEx:postIndex]) - m.PropagationPolicy = &s - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} func (m *DownwardAPIProjection) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -25250,51 +25992,14 @@ func (m *FlexPersistentVolumeSource) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.Options == nil { m.Options = make(map[string]string) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -25304,41 +26009,80 @@ func (m *FlexPersistentVolumeSource) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - m.Options[mapkey] = mapvalue - } else { - var mapvalue string - m.Options[mapkey] = mapvalue } + m.Options[mapkey] = mapvalue iNdEx = postIndex default: iNdEx = preIndex @@ -25527,51 +26271,14 @@ func (m *FlexVolumeSource) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.Options == nil { m.Options = make(map[string]string) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -25581,41 +26288,80 @@ func (m *FlexVolumeSource) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - m.Options[mapkey] = mapvalue - } else { - var mapvalue string - m.Options[mapkey] = mapvalue } + m.Options[mapkey] = mapvalue iNdEx = postIndex default: iNdEx = preIndex @@ -26030,6 +26776,164 @@ func (m *GitRepoVolumeSource) Unmarshal(dAtA []byte) error { } return nil } +func (m *GlusterfsPersistentVolumeSource) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GlusterfsPersistentVolumeSource: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GlusterfsPersistentVolumeSource: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field EndpointsName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.EndpointsName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Path", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Path = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ReadOnly", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.ReadOnly = bool(v != 0) + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field EndpointsNamespace", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.EndpointsNamespace = &s + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *GlusterfsVolumeSource) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -27942,51 +28846,14 @@ func (m *LimitRangeItem) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := ResourceName(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.Max == nil { m.Max = make(ResourceList) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey ResourceName + mapvalue := &k8s_io_apimachinery_pkg_api_resource.Quantity{} + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -27996,46 +28863,85 @@ func (m *LimitRangeItem) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } + if mapmsglen < 0 { + return ErrInvalidLengthGenerated + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthGenerated + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue = &k8s_io_apimachinery_pkg_api_resource.Quantity{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &k8s_io_apimachinery_pkg_api_resource.Quantity{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.Max[ResourceName(mapkey)] = *mapvalue - } else { - var mapvalue k8s_io_apimachinery_pkg_api_resource.Quantity - m.Max[ResourceName(mapkey)] = mapvalue } + m.Max[ResourceName(mapkey)] = *mapvalue iNdEx = postIndex case 3: if wireType != 2 { @@ -28063,51 +28969,14 @@ func (m *LimitRangeItem) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := ResourceName(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.Min == nil { m.Min = make(ResourceList) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey ResourceName + mapvalue := &k8s_io_apimachinery_pkg_api_resource.Quantity{} + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -28117,46 +28986,85 @@ func (m *LimitRangeItem) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } + if mapmsglen < 0 { + return ErrInvalidLengthGenerated + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthGenerated + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue = &k8s_io_apimachinery_pkg_api_resource.Quantity{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &k8s_io_apimachinery_pkg_api_resource.Quantity{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.Min[ResourceName(mapkey)] = *mapvalue - } else { - var mapvalue k8s_io_apimachinery_pkg_api_resource.Quantity - m.Min[ResourceName(mapkey)] = mapvalue } + m.Min[ResourceName(mapkey)] = *mapvalue iNdEx = postIndex case 4: if wireType != 2 { @@ -28184,51 +29092,14 @@ func (m *LimitRangeItem) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := ResourceName(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.Default == nil { m.Default = make(ResourceList) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey ResourceName + mapvalue := &k8s_io_apimachinery_pkg_api_resource.Quantity{} + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -28238,46 +29109,85 @@ func (m *LimitRangeItem) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } + if mapmsglen < 0 { + return ErrInvalidLengthGenerated + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthGenerated + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue = &k8s_io_apimachinery_pkg_api_resource.Quantity{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &k8s_io_apimachinery_pkg_api_resource.Quantity{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.Default[ResourceName(mapkey)] = *mapvalue - } else { - var mapvalue k8s_io_apimachinery_pkg_api_resource.Quantity - m.Default[ResourceName(mapkey)] = mapvalue } + m.Default[ResourceName(mapkey)] = *mapvalue iNdEx = postIndex case 5: if wireType != 2 { @@ -28305,51 +29215,14 @@ func (m *LimitRangeItem) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := ResourceName(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.DefaultRequest == nil { m.DefaultRequest = make(ResourceList) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey ResourceName + mapvalue := &k8s_io_apimachinery_pkg_api_resource.Quantity{} + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -28359,46 +29232,85 @@ func (m *LimitRangeItem) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } + if mapmsglen < 0 { + return ErrInvalidLengthGenerated + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthGenerated + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue = &k8s_io_apimachinery_pkg_api_resource.Quantity{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &k8s_io_apimachinery_pkg_api_resource.Quantity{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.DefaultRequest[ResourceName(mapkey)] = *mapvalue - } else { - var mapvalue k8s_io_apimachinery_pkg_api_resource.Quantity - m.DefaultRequest[ResourceName(mapkey)] = mapvalue } + m.DefaultRequest[ResourceName(mapkey)] = *mapvalue iNdEx = postIndex case 6: if wireType != 2 { @@ -28426,51 +29338,14 @@ func (m *LimitRangeItem) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := ResourceName(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.MaxLimitRequestRatio == nil { m.MaxLimitRequestRatio = make(ResourceList) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey ResourceName + mapvalue := &k8s_io_apimachinery_pkg_api_resource.Quantity{} + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -28480,46 +29355,85 @@ func (m *LimitRangeItem) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } + if mapmsglen < 0 { + return ErrInvalidLengthGenerated + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthGenerated + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue = &k8s_io_apimachinery_pkg_api_resource.Quantity{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &k8s_io_apimachinery_pkg_api_resource.Quantity{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.MaxLimitRequestRatio[ResourceName(mapkey)] = *mapvalue - } else { - var mapvalue k8s_io_apimachinery_pkg_api_resource.Quantity - m.MaxLimitRequestRatio[ResourceName(mapkey)] = mapvalue } + m.MaxLimitRequestRatio[ResourceName(mapkey)] = *mapvalue iNdEx = postIndex default: iNdEx = preIndex @@ -28845,203 +29759,6 @@ func (m *List) Unmarshal(dAtA []byte) error { } return nil } -func (m *ListOptions) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ListOptions: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ListOptions: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LabelSelector", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.LabelSelector = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldSelector", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.FieldSelector = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Watch", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Watch = bool(v != 0) - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ResourceVersion", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ResourceVersion = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field TimeoutSeconds", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.TimeoutSeconds = &v - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field IncludeUninitialized", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.IncludeUninitialized = bool(v != 0) - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} func (m *LoadBalancerIngress) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -29368,6 +30085,36 @@ func (m *LocalVolumeSource) Unmarshal(dAtA []byte) error { } m.Path = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FSType", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.FSType = &s + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -30543,9 +31290,9 @@ func (m *NodeConfigSource) Unmarshal(dAtA []byte) error { return fmt.Errorf("proto: NodeConfigSource: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ConfigMapRef", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ConfigMap", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -30569,10 +31316,10 @@ func (m *NodeConfigSource) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.ConfigMapRef == nil { - m.ConfigMapRef = &ObjectReference{} + if m.ConfigMap == nil { + m.ConfigMap = &ConfigMapNodeConfigSource{} } - if err := m.ConfigMapRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.ConfigMap.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -30597,6 +31344,184 @@ func (m *NodeConfigSource) Unmarshal(dAtA []byte) error { } return nil } +func (m *NodeConfigStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: NodeConfigStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: NodeConfigStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Assigned", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Assigned == nil { + m.Assigned = &NodeConfigSource{} + } + if err := m.Assigned.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Active", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Active == nil { + m.Active = &NodeConfigSource{} + } + if err := m.Active.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastKnownGood", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.LastKnownGood == nil { + m.LastKnownGood = &NodeConfigSource{} + } + if err := m.LastKnownGood.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Error = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *NodeDaemonEndpoints) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -30922,51 +31847,14 @@ func (m *NodeResources) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := ResourceName(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.Capacity == nil { m.Capacity = make(ResourceList) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey ResourceName + mapvalue := &k8s_io_apimachinery_pkg_api_resource.Quantity{} + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -30976,46 +31864,85 @@ func (m *NodeResources) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } + if mapmsglen < 0 { + return ErrInvalidLengthGenerated + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthGenerated + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue = &k8s_io_apimachinery_pkg_api_resource.Quantity{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &k8s_io_apimachinery_pkg_api_resource.Quantity{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.Capacity[ResourceName(mapkey)] = *mapvalue - } else { - var mapvalue k8s_io_apimachinery_pkg_api_resource.Quantity - m.Capacity[ResourceName(mapkey)] = mapvalue } + m.Capacity[ResourceName(mapkey)] = *mapvalue iNdEx = postIndex default: iNdEx = preIndex @@ -31316,6 +32243,37 @@ func (m *NodeSelectorTerm) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MatchFields", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.MatchFields = append(m.MatchFields, NodeSelectorRequirement{}) + if err := m.MatchFields[len(m.MatchFields)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -31397,7 +32355,7 @@ func (m *NodeSpec) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ExternalID", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field DoNotUse_ExternalID", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -31422,7 +32380,7 @@ func (m *NodeSpec) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.ExternalID = string(dAtA[iNdEx:postIndex]) + m.DoNotUse_ExternalID = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 3: if wireType != 2 { @@ -31613,51 +32571,14 @@ func (m *NodeStatus) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := ResourceName(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.Capacity == nil { m.Capacity = make(ResourceList) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey ResourceName + mapvalue := &k8s_io_apimachinery_pkg_api_resource.Quantity{} + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -31667,46 +32588,85 @@ func (m *NodeStatus) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } + if mapmsglen < 0 { + return ErrInvalidLengthGenerated + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthGenerated + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue = &k8s_io_apimachinery_pkg_api_resource.Quantity{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &k8s_io_apimachinery_pkg_api_resource.Quantity{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.Capacity[ResourceName(mapkey)] = *mapvalue - } else { - var mapvalue k8s_io_apimachinery_pkg_api_resource.Quantity - m.Capacity[ResourceName(mapkey)] = mapvalue } + m.Capacity[ResourceName(mapkey)] = *mapvalue iNdEx = postIndex case 2: if wireType != 2 { @@ -31734,51 +32694,14 @@ func (m *NodeStatus) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := ResourceName(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.Allocatable == nil { m.Allocatable = make(ResourceList) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey ResourceName + mapvalue := &k8s_io_apimachinery_pkg_api_resource.Quantity{} + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -31788,46 +32711,85 @@ func (m *NodeStatus) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } + if mapmsglen < 0 { + return ErrInvalidLengthGenerated + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthGenerated + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue = &k8s_io_apimachinery_pkg_api_resource.Quantity{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &k8s_io_apimachinery_pkg_api_resource.Quantity{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.Allocatable[ResourceName(mapkey)] = *mapvalue - } else { - var mapvalue k8s_io_apimachinery_pkg_api_resource.Quantity - m.Allocatable[ResourceName(mapkey)] = mapvalue } + m.Allocatable[ResourceName(mapkey)] = *mapvalue iNdEx = postIndex case 3: if wireType != 2 { @@ -32071,6 +33033,39 @@ func (m *NodeStatus) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Config", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Config == nil { + m.Config = &NodeConfigStatus{} + } + if err := m.Config.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -32540,686 +33535,6 @@ func (m *ObjectFieldSelector) Unmarshal(dAtA []byte) error { } return nil } -func (m *ObjectMeta) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ObjectMeta: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ObjectMeta: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Name = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field GenerateName", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.GenerateName = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Namespace", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Namespace = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SelfLink", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.SelfLink = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field UID", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.UID = k8s_io_apimachinery_pkg_types.UID(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ResourceVersion", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ResourceVersion = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Generation", wireType) - } - m.Generation = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Generation |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CreationTimestamp", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.CreationTimestamp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 9: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DeletionTimestamp", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.DeletionTimestamp == nil { - m.DeletionTimestamp = &k8s_io_apimachinery_pkg_apis_meta_v1.Time{} - } - if err := m.DeletionTimestamp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 10: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field DeletionGracePeriodSeconds", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.DeletionGracePeriodSeconds = &v - case 11: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Labels", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.Labels == nil { - m.Labels = make(map[string]string) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - m.Labels[mapkey] = mapvalue - } else { - var mapvalue string - m.Labels[mapkey] = mapvalue - } - iNdEx = postIndex - case 12: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Annotations", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.Annotations == nil { - m.Annotations = make(map[string]string) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - m.Annotations[mapkey] = mapvalue - } else { - var mapvalue string - m.Annotations[mapkey] = mapvalue - } - iNdEx = postIndex - case 13: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OwnerReferences", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.OwnerReferences = append(m.OwnerReferences, k8s_io_apimachinery_pkg_apis_meta_v1.OwnerReference{}) - if err := m.OwnerReferences[len(m.OwnerReferences)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Finalizers", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Finalizers = append(m.Finalizers, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ClusterName", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ClusterName = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 16: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Initializers", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Initializers == nil { - m.Initializers = &k8s_io_apimachinery_pkg_apis_meta_v1.Initializers{} - } - if err := m.Initializers.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} func (m *ObjectReference) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -34300,6 +34615,39 @@ func (m *PersistentVolumeClaimSpec) Unmarshal(dAtA []byte) error { s := PersistentVolumeMode(dAtA[iNdEx:postIndex]) m.VolumeMode = &s iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DataSource", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.DataSource == nil { + m.DataSource = &TypedLocalObjectReference{} + } + if err := m.DataSource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -34434,51 +34782,14 @@ func (m *PersistentVolumeClaimStatus) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := ResourceName(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.Capacity == nil { m.Capacity = make(ResourceList) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey ResourceName + mapvalue := &k8s_io_apimachinery_pkg_api_resource.Quantity{} + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -34488,46 +34799,85 @@ func (m *PersistentVolumeClaimStatus) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } + if mapmsglen < 0 { + return ErrInvalidLengthGenerated + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthGenerated + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue = &k8s_io_apimachinery_pkg_api_resource.Quantity{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &k8s_io_apimachinery_pkg_api_resource.Quantity{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.Capacity[ResourceName(mapkey)] = *mapvalue - } else { - var mapvalue k8s_io_apimachinery_pkg_api_resource.Quantity - m.Capacity[ResourceName(mapkey)] = mapvalue } + m.Capacity[ResourceName(mapkey)] = *mapvalue iNdEx = postIndex case 4: if wireType != 2 { @@ -34946,7 +35296,7 @@ func (m *PersistentVolumeSource) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Glusterfs == nil { - m.Glusterfs = &GlusterfsVolumeSource{} + m.Glusterfs = &GlusterfsPersistentVolumeSource{} } if err := m.Glusterfs.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -35078,7 +35428,7 @@ func (m *PersistentVolumeSource) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Cinder == nil { - m.Cinder = &CinderVolumeSource{} + m.Cinder = &CinderPersistentVolumeSource{} } if err := m.Cinder.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -35622,51 +35972,14 @@ func (m *PersistentVolumeSpec) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := ResourceName(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.Capacity == nil { m.Capacity = make(ResourceList) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey ResourceName + mapvalue := &k8s_io_apimachinery_pkg_api_resource.Quantity{} + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -35676,46 +35989,85 @@ func (m *PersistentVolumeSpec) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } + if mapmsglen < 0 { + return ErrInvalidLengthGenerated + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthGenerated + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue = &k8s_io_apimachinery_pkg_api_resource.Quantity{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &k8s_io_apimachinery_pkg_api_resource.Quantity{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.Capacity[ResourceName(mapkey)] = *mapvalue - } else { - var mapvalue k8s_io_apimachinery_pkg_api_resource.Quantity - m.Capacity[ResourceName(mapkey)] = mapvalue } + m.Capacity[ResourceName(mapkey)] = *mapvalue iNdEx = postIndex case 2: if wireType != 2 { @@ -38085,6 +38437,85 @@ func (m *PodProxyOptions) Unmarshal(dAtA []byte) error { } return nil } +func (m *PodReadinessGate) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PodReadinessGate: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PodReadinessGate: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ConditionType", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ConditionType = PodConditionType(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *PodSecurityContext) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -38270,6 +38701,57 @@ func (m *PodSecurityContext) Unmarshal(dAtA []byte) error { } } m.FSGroup = &v + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field RunAsGroup", wireType) + } + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.RunAsGroup = &v + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Sysctls", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Sysctls = append(m.Sysctls, Sysctl{}) + if err := m.Sysctls[len(m.Sysctls)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -38589,51 +39071,14 @@ func (m *PodSpec) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.NodeSelector == nil { m.NodeSelector = make(map[string]string) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -38643,41 +39088,80 @@ func (m *PodSpec) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - m.NodeSelector[mapkey] = mapvalue - } else { - var mapvalue string - m.NodeSelector[mapkey] = mapvalue } + m.NodeSelector[mapkey] = mapvalue iNdEx = postIndex case 8: if wireType != 2 { @@ -39227,6 +39711,88 @@ func (m *PodSpec) Unmarshal(dAtA []byte) error { } b := bool(v != 0) m.ShareProcessNamespace = &b + case 28: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ReadinessGates", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ReadinessGates = append(m.ReadinessGates, PodReadinessGate{}) + if err := m.ReadinessGates[len(m.ReadinessGates)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 29: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RuntimeClassName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.RuntimeClassName = &s + iNdEx = postIndex + case 30: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field EnableServiceLinks", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.EnableServiceLinks = &b default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -42221,51 +42787,14 @@ func (m *ReplicationControllerSpec) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.Selector == nil { m.Selector = make(map[string]string) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -42275,41 +42804,80 @@ func (m *ReplicationControllerSpec) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - m.Selector[mapkey] = mapvalue - } else { - var mapvalue string - m.Selector[mapkey] = mapvalue } + m.Selector[mapkey] = mapvalue iNdEx = postIndex case 3: if wireType != 2 { @@ -43004,51 +43572,14 @@ func (m *ResourceQuotaSpec) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := ResourceName(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.Hard == nil { m.Hard = make(ResourceList) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey ResourceName + mapvalue := &k8s_io_apimachinery_pkg_api_resource.Quantity{} + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -43058,46 +43589,85 @@ func (m *ResourceQuotaSpec) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } + if mapmsglen < 0 { + return ErrInvalidLengthGenerated + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthGenerated + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue = &k8s_io_apimachinery_pkg_api_resource.Quantity{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &k8s_io_apimachinery_pkg_api_resource.Quantity{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.Hard[ResourceName(mapkey)] = *mapvalue - } else { - var mapvalue k8s_io_apimachinery_pkg_api_resource.Quantity - m.Hard[ResourceName(mapkey)] = mapvalue } + m.Hard[ResourceName(mapkey)] = *mapvalue iNdEx = postIndex case 2: if wireType != 2 { @@ -43128,6 +43698,39 @@ func (m *ResourceQuotaSpec) Unmarshal(dAtA []byte) error { } m.Scopes = append(m.Scopes, ResourceQuotaScope(dAtA[iNdEx:postIndex])) iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ScopeSelector", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ScopeSelector == nil { + m.ScopeSelector = &ScopeSelector{} + } + if err := m.ScopeSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -43204,51 +43807,14 @@ func (m *ResourceQuotaStatus) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := ResourceName(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.Hard == nil { m.Hard = make(ResourceList) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey ResourceName + mapvalue := &k8s_io_apimachinery_pkg_api_resource.Quantity{} + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -43258,46 +43824,85 @@ func (m *ResourceQuotaStatus) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } + if mapmsglen < 0 { + return ErrInvalidLengthGenerated + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthGenerated + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue = &k8s_io_apimachinery_pkg_api_resource.Quantity{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &k8s_io_apimachinery_pkg_api_resource.Quantity{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.Hard[ResourceName(mapkey)] = *mapvalue - } else { - var mapvalue k8s_io_apimachinery_pkg_api_resource.Quantity - m.Hard[ResourceName(mapkey)] = mapvalue } + m.Hard[ResourceName(mapkey)] = *mapvalue iNdEx = postIndex case 2: if wireType != 2 { @@ -43325,51 +43930,14 @@ func (m *ResourceQuotaStatus) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := ResourceName(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.Used == nil { m.Used = make(ResourceList) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey ResourceName + mapvalue := &k8s_io_apimachinery_pkg_api_resource.Quantity{} + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -43379,46 +43947,85 @@ func (m *ResourceQuotaStatus) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } + if mapmsglen < 0 { + return ErrInvalidLengthGenerated + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthGenerated + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue = &k8s_io_apimachinery_pkg_api_resource.Quantity{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &k8s_io_apimachinery_pkg_api_resource.Quantity{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.Used[ResourceName(mapkey)] = *mapvalue - } else { - var mapvalue k8s_io_apimachinery_pkg_api_resource.Quantity - m.Used[ResourceName(mapkey)] = mapvalue } + m.Used[ResourceName(mapkey)] = *mapvalue iNdEx = postIndex default: iNdEx = preIndex @@ -43496,51 +44103,14 @@ func (m *ResourceRequirements) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := ResourceName(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.Limits == nil { m.Limits = make(ResourceList) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey ResourceName + mapvalue := &k8s_io_apimachinery_pkg_api_resource.Quantity{} + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -43550,46 +44120,85 @@ func (m *ResourceRequirements) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } + if mapmsglen < 0 { + return ErrInvalidLengthGenerated + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthGenerated + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue = &k8s_io_apimachinery_pkg_api_resource.Quantity{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &k8s_io_apimachinery_pkg_api_resource.Quantity{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.Limits[ResourceName(mapkey)] = *mapvalue - } else { - var mapvalue k8s_io_apimachinery_pkg_api_resource.Quantity - m.Limits[ResourceName(mapkey)] = mapvalue } + m.Limits[ResourceName(mapkey)] = *mapvalue iNdEx = postIndex case 2: if wireType != 2 { @@ -43617,51 +44226,14 @@ func (m *ResourceRequirements) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := ResourceName(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.Requests == nil { m.Requests = make(ResourceList) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey ResourceName + mapvalue := &k8s_io_apimachinery_pkg_api_resource.Quantity{} + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -43671,46 +44243,85 @@ func (m *ResourceRequirements) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } + if mapmsglen < 0 { + return ErrInvalidLengthGenerated + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthGenerated + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue = &k8s_io_apimachinery_pkg_api_resource.Quantity{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &k8s_io_apimachinery_pkg_api_resource.Quantity{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.Requests[ResourceName(mapkey)] = *mapvalue - } else { - var mapvalue k8s_io_apimachinery_pkg_api_resource.Quantity - m.Requests[ResourceName(mapkey)] = mapvalue } + m.Requests[ResourceName(mapkey)] = *mapvalue iNdEx = postIndex default: iNdEx = preIndex @@ -44551,6 +45162,224 @@ func (m *ScaleIOVolumeSource) Unmarshal(dAtA []byte) error { } return nil } +func (m *ScopeSelector) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ScopeSelector: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ScopeSelector: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MatchExpressions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.MatchExpressions = append(m.MatchExpressions, ScopedResourceSelectorRequirement{}) + if err := m.MatchExpressions[len(m.MatchExpressions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ScopedResourceSelectorRequirement) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ScopedResourceSelectorRequirement: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ScopedResourceSelectorRequirement: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ScopeName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ScopeName = ResourceQuotaScope(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Operator", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Operator = ScopeSelectorOperator(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Values", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Values = append(m.Values, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *Secret) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -44636,51 +45465,14 @@ func (m *Secret) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.Data == nil { m.Data = make(map[string][]byte) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + mapvalue := []byte{} + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -44690,42 +45482,81 @@ func (m *Secret) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapbyteLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapbyteLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapbyteLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapbyteLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + intMapbyteLen := int(mapbyteLen) + if intMapbyteLen < 0 { + return ErrInvalidLengthGenerated + } + postbytesIndex := iNdEx + intMapbyteLen + if postbytesIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue = make([]byte, mapbyteLen) + copy(mapvalue, dAtA[iNdEx:postbytesIndex]) + iNdEx = postbytesIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - intMapbyteLen := int(mapbyteLen) - if intMapbyteLen < 0 { - return ErrInvalidLengthGenerated - } - postbytesIndex := iNdEx + intMapbyteLen - if postbytesIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := make([]byte, mapbyteLen) - copy(mapvalue, dAtA[iNdEx:postbytesIndex]) - iNdEx = postbytesIndex - m.Data[mapkey] = mapvalue - } else { - var mapvalue []byte - m.Data[mapkey] = mapvalue } + m.Data[mapkey] = mapvalue iNdEx = postIndex case 3: if wireType != 2 { @@ -44782,51 +45613,14 @@ func (m *Secret) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.StringData == nil { m.StringData = make(map[string]string) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -44836,41 +45630,80 @@ func (m *Secret) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - m.StringData[mapkey] = mapvalue - } else { - var mapvalue string - m.StringData[mapkey] = mapvalue } + m.StringData[mapkey] = mapvalue iNdEx = postIndex default: iNdEx = preIndex @@ -45825,6 +46658,56 @@ func (m *SecurityContext) Unmarshal(dAtA []byte) error { } b := bool(v != 0) m.AllowPrivilegeEscalation = &b + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field RunAsGroup", wireType) + } + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.RunAsGroup = &v + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProcMount", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := ProcMountType(dAtA[iNdEx:postIndex]) + m.ProcMount = &s + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -46340,6 +47223,134 @@ func (m *ServiceAccountList) Unmarshal(dAtA []byte) error { } return nil } +func (m *ServiceAccountTokenProjection) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ServiceAccountTokenProjection: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ServiceAccountTokenProjection: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Audience", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Audience = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ExpirationSeconds", wireType) + } + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.ExpirationSeconds = &v + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Path", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Path = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *ServiceList) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -46792,51 +47803,14 @@ func (m *ServiceSpec) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.Selector == nil { m.Selector = make(map[string]string) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -46846,41 +47820,80 @@ func (m *ServiceSpec) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - m.Selector[mapkey] = mapvalue - } else { - var mapvalue string - m.Selector[mapkey] = mapvalue } + m.Selector[mapkey] = mapvalue iNdEx = postIndex case 3: if wireType != 2 { @@ -48323,6 +49336,333 @@ func (m *Toleration) Unmarshal(dAtA []byte) error { } return nil } +func (m *TopologySelectorLabelRequirement) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TopologySelectorLabelRequirement: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TopologySelectorLabelRequirement: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Key = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Values", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Values = append(m.Values, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TopologySelectorTerm) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TopologySelectorTerm: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TopologySelectorTerm: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MatchLabelExpressions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.MatchLabelExpressions = append(m.MatchLabelExpressions, TopologySelectorLabelRequirement{}) + if err := m.MatchLabelExpressions[len(m.MatchLabelExpressions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TypedLocalObjectReference) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TypedLocalObjectReference: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TypedLocalObjectReference: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field APIGroup", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.APIGroup = &s + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Kind", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Kind = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *Volume) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -48938,6 +50278,39 @@ func (m *VolumeProjection) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ServiceAccountToken", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ServiceAccountToken == nil { + m.ServiceAccountToken = &ServiceAccountTokenProjection{} + } + if err := m.ServiceAccountToken.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -50275,796 +51648,808 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 12646 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x5b, 0x70, 0x24, 0x47, - 0x76, 0x18, 0xba, 0xd5, 0x8d, 0x57, 0x1f, 0xbc, 0x73, 0x66, 0x48, 0x0c, 0x48, 0x4e, 0x0f, 0x8b, - 0xbb, 0xc3, 0xe1, 0x0b, 0x58, 0x0e, 0xc9, 0x25, 0xb5, 0xdc, 0xa5, 0x04, 0xa0, 0x81, 0x99, 0xe6, - 0x0c, 0x30, 0xcd, 0x6c, 0xcc, 0xcc, 0x2e, 0x45, 0xed, 0xdd, 0x42, 0x77, 0xa2, 0x51, 0x44, 0xa1, - 0xaa, 0x59, 0x55, 0x8d, 0x19, 0x30, 0xa4, 0x88, 0x7b, 0x57, 0x8f, 0x7b, 0xf5, 0xf8, 0xd8, 0xb8, - 0x52, 0xd8, 0xb2, 0xa4, 0x90, 0x23, 0x6c, 0x39, 0xa4, 0xb5, 0x6c, 0x47, 0xc8, 0x92, 0x25, 0x59, - 0x92, 0x6d, 0x59, 0x76, 0x38, 0xa4, 0x1f, 0x59, 0xf2, 0xcf, 0x2a, 0x42, 0x61, 0x58, 0x82, 0x14, - 0x76, 0xe8, 0xc3, 0x0e, 0x87, 0xf5, 0x25, 0x58, 0xb6, 0x1c, 0xf9, 0xac, 0xcc, 0xea, 0xaa, 0xee, - 0xc6, 0x10, 0x03, 0x52, 0x8a, 0xfd, 0xeb, 0xce, 0x73, 0xf2, 0x64, 0x56, 0x3e, 0x4e, 0x9e, 0x3c, - 0x79, 0x1e, 0xf0, 0xe6, 0xee, 0x1b, 0xd1, 0x82, 0x1b, 0x2c, 0xee, 0x76, 0xb6, 0x48, 0xe8, 0x93, - 0x98, 0x44, 0x8b, 0xfb, 0xc4, 0x6f, 0x06, 0xe1, 0xa2, 0x00, 0x38, 0x6d, 0x77, 0xb1, 0x11, 0x84, - 0x64, 0x71, 0xff, 0xe5, 0xc5, 0x16, 0xf1, 0x49, 0xe8, 0xc4, 0xa4, 0xb9, 0xd0, 0x0e, 0x83, 0x38, - 0x40, 0x88, 0xe3, 0x2c, 0x38, 0x6d, 0x77, 0x81, 0xe2, 0x2c, 0xec, 0xbf, 0x3c, 0xff, 0x52, 0xcb, - 0x8d, 0x77, 0x3a, 0x5b, 0x0b, 0x8d, 0x60, 0x6f, 0xb1, 0x15, 0xb4, 0x82, 0x45, 0x86, 0xba, 0xd5, - 0xd9, 0x66, 0xff, 0xd8, 0x1f, 0xf6, 0x8b, 0x93, 0x98, 0x5f, 0x4f, 0x9a, 0x21, 0x0f, 0x62, 0xe2, - 0x47, 0x6e, 0xe0, 0x47, 0x2f, 0x39, 0x6d, 0x37, 0x22, 0xe1, 0x3e, 0x09, 0x17, 0xdb, 0xbb, 0x2d, - 0x0a, 0x8b, 0x4c, 0x84, 0xc5, 0xfd, 0x97, 0xb7, 0x48, 0xec, 0x74, 0xf5, 0x68, 0xfe, 0xd5, 0x84, - 0xdc, 0x9e, 0xd3, 0xd8, 0x71, 0x7d, 0x12, 0x1e, 0x48, 0x1a, 0x8b, 0x21, 0x89, 0x82, 0x4e, 0xd8, - 0x20, 0x27, 0xaa, 0x15, 0x2d, 0xee, 0x91, 0xd8, 0xc9, 0xf8, 0xfa, 0xf9, 0xc5, 0xbc, 0x5a, 0x61, - 0xc7, 0x8f, 0xdd, 0xbd, 0xee, 0x66, 0x3e, 0xd7, 0xaf, 0x42, 0xd4, 0xd8, 0x21, 0x7b, 0x4e, 0x57, - 0xbd, 0x57, 0xf2, 0xea, 0x75, 0x62, 0xd7, 0x5b, 0x74, 0xfd, 0x38, 0x8a, 0xc3, 0x74, 0x25, 0xfb, - 0x9b, 0x16, 0x5c, 0x5e, 0xba, 0x57, 0x5f, 0xf5, 0x9c, 0x28, 0x76, 0x1b, 0xcb, 0x5e, 0xd0, 0xd8, - 0xad, 0xc7, 0x41, 0x48, 0xee, 0x06, 0x5e, 0x67, 0x8f, 0xd4, 0xd9, 0x40, 0xa0, 0x17, 0x61, 0x6c, - 0x9f, 0xfd, 0xaf, 0x56, 0xe6, 0xac, 0xcb, 0xd6, 0xd5, 0xd2, 0xf2, 0xcc, 0x6f, 0x1f, 0x96, 0x3f, - 0x75, 0x74, 0x58, 0x1e, 0xbb, 0x2b, 0xca, 0xb1, 0xc2, 0x40, 0x57, 0x60, 0x64, 0x3b, 0xda, 0x3c, - 0x68, 0x93, 0xb9, 0x02, 0xc3, 0x9d, 0x12, 0xb8, 0x23, 0x6b, 0x75, 0x5a, 0x8a, 0x05, 0x14, 0x2d, - 0x42, 0xa9, 0xed, 0x84, 0xb1, 0x1b, 0xbb, 0x81, 0x3f, 0x57, 0xbc, 0x6c, 0x5d, 0x1d, 0x5e, 0x9e, - 0x15, 0xa8, 0xa5, 0x9a, 0x04, 0xe0, 0x04, 0x87, 0x76, 0x23, 0x24, 0x4e, 0xf3, 0xb6, 0xef, 0x1d, - 0xcc, 0x0d, 0x5d, 0xb6, 0xae, 0x8e, 0x25, 0xdd, 0xc0, 0xa2, 0x1c, 0x2b, 0x0c, 0xfb, 0x27, 0x0a, - 0x30, 0xb6, 0xb4, 0xbd, 0xed, 0xfa, 0x6e, 0x7c, 0x80, 0xee, 0xc2, 0x84, 0x1f, 0x34, 0x89, 0xfc, - 0xcf, 0xbe, 0x62, 0xfc, 0xda, 0xe5, 0x85, 0xee, 0x95, 0xb9, 0xb0, 0xa1, 0xe1, 0x2d, 0xcf, 0x1c, - 0x1d, 0x96, 0x27, 0xf4, 0x12, 0x6c, 0xd0, 0x41, 0x18, 0xc6, 0xdb, 0x41, 0x53, 0x91, 0x2d, 0x30, - 0xb2, 0xe5, 0x2c, 0xb2, 0xb5, 0x04, 0x6d, 0x79, 0xfa, 0xe8, 0xb0, 0x3c, 0xae, 0x15, 0x60, 0x9d, - 0x08, 0xda, 0x82, 0x69, 0xfa, 0xd7, 0x8f, 0x5d, 0x45, 0xb7, 0xc8, 0xe8, 0x3e, 0x93, 0x47, 0x57, - 0x43, 0x5d, 0x3e, 0x77, 0x74, 0x58, 0x9e, 0x4e, 0x15, 0xe2, 0x34, 0x41, 0xfb, 0x43, 0x98, 0x5a, - 0x8a, 0x63, 0xa7, 0xb1, 0x43, 0x9a, 0x7c, 0x06, 0xd1, 0xab, 0x30, 0xe4, 0x3b, 0x7b, 0x44, 0xcc, - 0xef, 0x65, 0x31, 0xb0, 0x43, 0x1b, 0xce, 0x1e, 0x39, 0x3e, 0x2c, 0xcf, 0xdc, 0xf1, 0xdd, 0x0f, - 0x3a, 0x62, 0x55, 0xd0, 0x32, 0xcc, 0xb0, 0xd1, 0x35, 0x80, 0x26, 0xd9, 0x77, 0x1b, 0xa4, 0xe6, - 0xc4, 0x3b, 0x62, 0xbe, 0x91, 0xa8, 0x0b, 0x15, 0x05, 0xc1, 0x1a, 0x96, 0xfd, 0x00, 0x4a, 0x4b, - 0xfb, 0x81, 0xdb, 0xac, 0x05, 0xcd, 0x08, 0xed, 0xc2, 0x74, 0x3b, 0x24, 0xdb, 0x24, 0x54, 0x45, - 0x73, 0xd6, 0xe5, 0xe2, 0xd5, 0xf1, 0x6b, 0x57, 0x33, 0x3f, 0xd6, 0x44, 0x5d, 0xf5, 0xe3, 0xf0, - 0x60, 0xf9, 0x71, 0xd1, 0xde, 0x74, 0x0a, 0x8a, 0xd3, 0x94, 0xed, 0x7f, 0x5b, 0x80, 0x0b, 0x4b, - 0x1f, 0x76, 0x42, 0x52, 0x71, 0xa3, 0xdd, 0xf4, 0x0a, 0x6f, 0xba, 0xd1, 0xee, 0x46, 0x32, 0x02, - 0x6a, 0x69, 0x55, 0x44, 0x39, 0x56, 0x18, 0xe8, 0x25, 0x18, 0xa5, 0xbf, 0xef, 0xe0, 0xaa, 0xf8, - 0xe4, 0x73, 0x02, 0x79, 0xbc, 0xe2, 0xc4, 0x4e, 0x85, 0x83, 0xb0, 0xc4, 0x41, 0xeb, 0x30, 0xde, - 0x60, 0x1b, 0xb2, 0xb5, 0x1e, 0x34, 0x09, 0x9b, 0xcc, 0xd2, 0xf2, 0x0b, 0x14, 0x7d, 0x25, 0x29, - 0x3e, 0x3e, 0x2c, 0xcf, 0xf1, 0xbe, 0x09, 0x12, 0x1a, 0x0c, 0xeb, 0xf5, 0x91, 0xad, 0xf6, 0xd7, - 0x10, 0xa3, 0x04, 0x19, 0x7b, 0xeb, 0xaa, 0xb6, 0x55, 0x86, 0xd9, 0x56, 0x99, 0xc8, 0xde, 0x26, - 0xe8, 0x65, 0x18, 0xda, 0x75, 0xfd, 0xe6, 0xdc, 0x08, 0xa3, 0xf5, 0x14, 0x9d, 0xf3, 0x9b, 0xae, - 0xdf, 0x3c, 0x3e, 0x2c, 0xcf, 0x1a, 0xdd, 0xa1, 0x85, 0x98, 0xa1, 0xda, 0x7f, 0x6e, 0x41, 0x99, - 0xc1, 0xd6, 0x5c, 0x8f, 0xd4, 0x48, 0x18, 0xb9, 0x51, 0x4c, 0xfc, 0xd8, 0x18, 0xd0, 0x6b, 0x00, - 0x11, 0x69, 0x84, 0x24, 0xd6, 0x86, 0x54, 0x2d, 0x8c, 0xba, 0x82, 0x60, 0x0d, 0x8b, 0x32, 0x84, - 0x68, 0xc7, 0x09, 0xd9, 0xfa, 0x12, 0x03, 0xab, 0x18, 0x42, 0x5d, 0x02, 0x70, 0x82, 0x63, 0x30, - 0x84, 0x62, 0x3f, 0x86, 0x80, 0xbe, 0x08, 0xd3, 0x49, 0x63, 0x51, 0xdb, 0x69, 0xc8, 0x01, 0x64, - 0x5b, 0xa6, 0x6e, 0x82, 0x70, 0x1a, 0xd7, 0xfe, 0x87, 0x96, 0x58, 0x3c, 0xf4, 0xab, 0x3f, 0xe1, - 0xdf, 0x6a, 0xff, 0xaa, 0x05, 0xa3, 0xcb, 0xae, 0xdf, 0x74, 0xfd, 0x16, 0xfa, 0x2a, 0x8c, 0xd1, - 0xb3, 0xa9, 0xe9, 0xc4, 0x8e, 0xe0, 0x7b, 0x9f, 0xd5, 0xf6, 0x96, 0x3a, 0x2a, 0x16, 0xda, 0xbb, - 0x2d, 0x5a, 0x10, 0x2d, 0x50, 0x6c, 0xba, 0xdb, 0x6e, 0x6f, 0xbd, 0x4f, 0x1a, 0xf1, 0x3a, 0x89, - 0x9d, 0xe4, 0x73, 0x92, 0x32, 0xac, 0xa8, 0xa2, 0x9b, 0x30, 0x12, 0x3b, 0x61, 0x8b, 0xc4, 0x82, - 0x01, 0x66, 0x32, 0x2a, 0x5e, 0x13, 0xd3, 0x1d, 0x49, 0xfc, 0x06, 0x49, 0x8e, 0x85, 0x4d, 0x56, - 0x15, 0x0b, 0x12, 0xf6, 0x0f, 0x8d, 0xc0, 0xc5, 0x95, 0x7a, 0x35, 0x67, 0x5d, 0x5d, 0x81, 0x91, - 0x66, 0xe8, 0xee, 0x93, 0x50, 0x8c, 0xb3, 0xa2, 0x52, 0x61, 0xa5, 0x58, 0x40, 0xd1, 0x1b, 0x30, - 0xc1, 0x0f, 0xa4, 0x1b, 0x8e, 0xdf, 0xf4, 0xe4, 0x10, 0x9f, 0x17, 0xd8, 0x13, 0x77, 0x35, 0x18, - 0x36, 0x30, 0x4f, 0xb8, 0xa8, 0xae, 0xa4, 0x36, 0x63, 0xde, 0x61, 0xf7, 0x83, 0x16, 0xcc, 0xf0, - 0x66, 0x96, 0xe2, 0x38, 0x74, 0xb7, 0x3a, 0x31, 0x89, 0xe6, 0x86, 0x19, 0xa7, 0x5b, 0xc9, 0x1a, - 0xad, 0xdc, 0x11, 0x58, 0xb8, 0x9b, 0xa2, 0xc2, 0x99, 0xe0, 0x9c, 0x68, 0x77, 0x26, 0x0d, 0xc6, - 0x5d, 0xcd, 0xa2, 0xef, 0xb5, 0x60, 0xbe, 0x11, 0xf8, 0x71, 0x18, 0x78, 0x1e, 0x09, 0x6b, 0x9d, - 0x2d, 0xcf, 0x8d, 0x76, 0xf8, 0x3a, 0xc5, 0x64, 0x9b, 0x71, 0x82, 0x9c, 0x39, 0x54, 0x48, 0x62, - 0x0e, 0x2f, 0x1d, 0x1d, 0x96, 0xe7, 0x57, 0x72, 0x49, 0xe1, 0x1e, 0xcd, 0xa0, 0x5d, 0x40, 0xf4, - 0x28, 0xad, 0xc7, 0x4e, 0x8b, 0x24, 0x8d, 0x8f, 0x0e, 0xde, 0xf8, 0x63, 0x47, 0x87, 0x65, 0xb4, - 0xd1, 0x45, 0x02, 0x67, 0x90, 0x45, 0x1f, 0xc0, 0x79, 0x5a, 0xda, 0xf5, 0xad, 0x63, 0x83, 0x37, - 0x37, 0x77, 0x74, 0x58, 0x3e, 0xbf, 0x91, 0x41, 0x04, 0x67, 0x92, 0x9e, 0x5f, 0x81, 0x0b, 0x99, - 0x53, 0x85, 0x66, 0xa0, 0xb8, 0x4b, 0xb8, 0x08, 0x52, 0xc2, 0xf4, 0x27, 0x3a, 0x0f, 0xc3, 0xfb, - 0x8e, 0xd7, 0x11, 0xab, 0x14, 0xf3, 0x3f, 0x9f, 0x2f, 0xbc, 0x61, 0xd9, 0x0d, 0x98, 0x58, 0x71, - 0xda, 0xce, 0x96, 0xeb, 0xb9, 0xb1, 0x4b, 0x22, 0xf4, 0x2c, 0x14, 0x9d, 0x66, 0x93, 0x1d, 0x91, - 0xa5, 0xe5, 0x0b, 0x47, 0x87, 0xe5, 0xe2, 0x52, 0x93, 0xf2, 0x6a, 0x50, 0x58, 0x07, 0x98, 0x62, - 0xa0, 0xe7, 0x61, 0xa8, 0x19, 0x06, 0xed, 0xb9, 0x02, 0xc3, 0xa4, 0x43, 0x35, 0x54, 0x09, 0x83, - 0x76, 0x0a, 0x95, 0xe1, 0xd8, 0xbf, 0x59, 0x80, 0x27, 0x57, 0x48, 0x7b, 0x67, 0xad, 0x9e, 0xb3, - 0xe9, 0xae, 0xc2, 0xd8, 0x5e, 0xe0, 0xbb, 0x71, 0x10, 0x46, 0xa2, 0x69, 0x76, 0x9a, 0xac, 0x8b, - 0x32, 0xac, 0xa0, 0xe8, 0x32, 0x0c, 0xb5, 0x13, 0x49, 0x60, 0x42, 0x4a, 0x11, 0x4c, 0x06, 0x60, - 0x10, 0x8a, 0xd1, 0x89, 0x48, 0x28, 0x4e, 0x41, 0x85, 0x71, 0x27, 0x22, 0x21, 0x66, 0x90, 0x84, - 0x9d, 0x52, 0x46, 0x2b, 0xb6, 0x55, 0x8a, 0x9d, 0x52, 0x08, 0xd6, 0xb0, 0x50, 0x0d, 0x4a, 0x91, - 0x9a, 0xd4, 0xe1, 0xc1, 0x27, 0x75, 0x92, 0xf1, 0x5b, 0x35, 0x93, 0x09, 0x11, 0x83, 0x0d, 0x8c, - 0xf4, 0xe5, 0xb7, 0xbf, 0x5e, 0x00, 0xc4, 0x87, 0xf0, 0xaf, 0xd9, 0xc0, 0xdd, 0xe9, 0x1e, 0xb8, - 0x4c, 0xc9, 0xeb, 0x56, 0xd0, 0x70, 0xbc, 0x34, 0x0b, 0x3f, 0xad, 0xd1, 0xfb, 0x71, 0x0b, 0xd0, - 0x8a, 0xeb, 0x37, 0x49, 0x78, 0x06, 0xd7, 0x8e, 0x93, 0x1d, 0xa4, 0xb7, 0x60, 0x6a, 0xc5, 0x73, - 0x89, 0x1f, 0x57, 0x6b, 0x2b, 0x81, 0xbf, 0xed, 0xb6, 0xd0, 0xe7, 0x61, 0x8a, 0xde, 0xc2, 0x82, - 0x4e, 0x5c, 0x27, 0x8d, 0xc0, 0x67, 0x02, 0x2b, 0xbd, 0xbb, 0xa0, 0xa3, 0xc3, 0xf2, 0xd4, 0xa6, - 0x01, 0xc1, 0x29, 0x4c, 0xfb, 0x0f, 0xe9, 0x87, 0x06, 0x7b, 0xed, 0xc0, 0x27, 0x7e, 0xbc, 0x12, - 0xf8, 0x4d, 0x7e, 0xb1, 0xf9, 0x3c, 0x0c, 0xc5, 0xb4, 0xe3, 0xfc, 0x23, 0xaf, 0xc8, 0xa9, 0xa5, - 0xdd, 0x3d, 0x3e, 0x2c, 0x3f, 0xd6, 0x5d, 0x83, 0x7d, 0x10, 0xab, 0x83, 0xbe, 0x0d, 0x46, 0xa2, - 0xd8, 0x89, 0x3b, 0x91, 0xf8, 0xec, 0xa7, 0xe5, 0x67, 0xd7, 0x59, 0xe9, 0xf1, 0x61, 0x79, 0x5a, - 0x55, 0xe3, 0x45, 0x58, 0x54, 0x40, 0xcf, 0xc1, 0xe8, 0x1e, 0x89, 0x22, 0xa7, 0x25, 0x65, 0xd2, - 0x69, 0x51, 0x77, 0x74, 0x9d, 0x17, 0x63, 0x09, 0x47, 0xcf, 0xc0, 0x30, 0x09, 0xc3, 0x20, 0x14, - 0xab, 0x6a, 0x52, 0x20, 0x0e, 0xaf, 0xd2, 0x42, 0xcc, 0x61, 0xf6, 0xbf, 0xb7, 0x60, 0x5a, 0xf5, - 0x95, 0xb7, 0x75, 0x06, 0xc2, 0xc7, 0xbb, 0x00, 0x0d, 0xf9, 0x81, 0x11, 0xe3, 0x77, 0xe3, 0xd7, - 0xae, 0x64, 0x1e, 0xa9, 0x5d, 0xc3, 0x98, 0x50, 0x56, 0x45, 0x11, 0xd6, 0xa8, 0xd9, 0xff, 0xc2, - 0x82, 0x73, 0xa9, 0x2f, 0xba, 0xe5, 0x46, 0x31, 0x7a, 0xaf, 0xeb, 0xab, 0x16, 0x06, 0xfb, 0x2a, - 0x5a, 0x9b, 0x7d, 0x93, 0x5a, 0x73, 0xb2, 0x44, 0xfb, 0xa2, 0x1b, 0x30, 0xec, 0xc6, 0x64, 0x4f, - 0x7e, 0xcc, 0x33, 0x3d, 0x3f, 0x86, 0xf7, 0x2a, 0x99, 0x91, 0x2a, 0xad, 0x89, 0x39, 0x01, 0xfb, - 0x47, 0x8b, 0x50, 0xe2, 0xcb, 0x76, 0xdd, 0x69, 0x9f, 0xc1, 0x5c, 0x54, 0x61, 0x88, 0x51, 0xe7, - 0x1d, 0x7f, 0x36, 0xbb, 0xe3, 0xa2, 0x3b, 0x0b, 0xf4, 0x66, 0xc1, 0x85, 0x17, 0xc5, 0xcc, 0x68, - 0x11, 0x66, 0x24, 0x90, 0x03, 0xb0, 0xe5, 0xfa, 0x4e, 0x78, 0x40, 0xcb, 0xe6, 0x8a, 0x8c, 0xe0, - 0x4b, 0xbd, 0x09, 0x2e, 0x2b, 0x7c, 0x4e, 0x56, 0xf5, 0x35, 0x01, 0x60, 0x8d, 0xe8, 0xfc, 0xeb, - 0x50, 0x52, 0xc8, 0x27, 0x39, 0x95, 0xe7, 0xbf, 0x08, 0xd3, 0xa9, 0xb6, 0xfa, 0x55, 0x9f, 0xd0, - 0x0f, 0xf5, 0x5f, 0x63, 0x5c, 0x40, 0xf4, 0x7a, 0xd5, 0xdf, 0x17, 0xec, 0xee, 0x43, 0x38, 0xef, - 0x65, 0x70, 0x59, 0x31, 0x55, 0x83, 0x73, 0xe5, 0x27, 0xc5, 0x67, 0x9f, 0xcf, 0x82, 0xe2, 0xcc, - 0x36, 0xe8, 0x41, 0x15, 0xb4, 0xe9, 0x9a, 0x77, 0x3c, 0xd6, 0x5f, 0x71, 0x5f, 0xbc, 0x2d, 0xca, - 0xb0, 0x82, 0x52, 0x16, 0x76, 0x5e, 0x75, 0xfe, 0x26, 0x39, 0xa8, 0x13, 0x8f, 0x34, 0xe2, 0x20, - 0xfc, 0x58, 0xbb, 0xff, 0x14, 0x1f, 0x7d, 0xce, 0x01, 0xc7, 0x05, 0x81, 0xe2, 0x4d, 0x72, 0xc0, - 0xa7, 0x42, 0xff, 0xba, 0x62, 0xcf, 0xaf, 0xfb, 0x05, 0x0b, 0x26, 0xd5, 0xd7, 0x9d, 0xc1, 0x56, - 0x5f, 0x36, 0xb7, 0xfa, 0x53, 0x3d, 0x17, 0x78, 0xce, 0x26, 0xff, 0x2b, 0xc6, 0xa4, 0x04, 0x4e, - 0x2d, 0x0c, 0xe8, 0xd0, 0xd0, 0x53, 0xe5, 0xe3, 0x9c, 0x90, 0x41, 0xbe, 0xeb, 0x26, 0x39, 0xd8, - 0x0c, 0xa8, 0x80, 0x93, 0xfd, 0x5d, 0xc6, 0xac, 0x0d, 0xf5, 0x9c, 0xb5, 0x5f, 0x2a, 0xc0, 0x05, - 0x35, 0x02, 0x86, 0x08, 0xf1, 0xd7, 0x7d, 0x0c, 0x5e, 0x86, 0xf1, 0x26, 0xd9, 0x76, 0x3a, 0x5e, - 0xac, 0x54, 0x47, 0xc3, 0x5c, 0x7d, 0x58, 0x49, 0x8a, 0xb1, 0x8e, 0x73, 0x82, 0x61, 0xfb, 0x99, - 0x71, 0x76, 0x3a, 0xc4, 0x0e, 0x5d, 0xc1, 0x54, 0xbe, 0xd4, 0x14, 0x80, 0x13, 0xba, 0x02, 0x50, - 0x28, 0xfb, 0x9e, 0x81, 0x61, 0x77, 0x8f, 0x4a, 0x0b, 0x05, 0x53, 0x08, 0xa8, 0xd2, 0x42, 0xcc, - 0x61, 0xe8, 0x33, 0x30, 0xda, 0x08, 0xf6, 0xf6, 0x1c, 0xbf, 0xc9, 0x98, 0x76, 0x69, 0x79, 0x9c, - 0x0a, 0x14, 0x2b, 0xbc, 0x08, 0x4b, 0x18, 0x7a, 0x12, 0x86, 0x9c, 0xb0, 0x15, 0xcd, 0x0d, 0x31, - 0x9c, 0x31, 0xda, 0xd2, 0x52, 0xd8, 0x8a, 0x30, 0x2b, 0xa5, 0x92, 0xec, 0xfd, 0x20, 0xdc, 0x75, - 0xfd, 0x56, 0xc5, 0x0d, 0x99, 0x58, 0xaa, 0x49, 0xb2, 0xf7, 0x14, 0x04, 0x6b, 0x58, 0x68, 0x0d, - 0x86, 0xdb, 0x41, 0x18, 0x47, 0x73, 0x23, 0x6c, 0xb8, 0x9f, 0xce, 0xd9, 0x4a, 0xfc, 0x6b, 0x6b, - 0x41, 0x18, 0x27, 0x1f, 0x40, 0xff, 0x45, 0x98, 0x57, 0x47, 0xdf, 0x06, 0x45, 0xe2, 0xef, 0xcf, - 0x8d, 0x32, 0x2a, 0xf3, 0x59, 0x54, 0x56, 0xfd, 0xfd, 0xbb, 0x4e, 0x98, 0xf0, 0x99, 0x55, 0x7f, - 0x1f, 0xd3, 0x3a, 0xe8, 0xcb, 0x50, 0x92, 0x8f, 0x07, 0x91, 0xb8, 0x5a, 0x66, 0x2e, 0x31, 0x2c, - 0x90, 0x30, 0xf9, 0xa0, 0xe3, 0x86, 0x64, 0x8f, 0xf8, 0x71, 0x94, 0xa8, 0x7f, 0x24, 0x34, 0xc2, - 0x09, 0x35, 0xf4, 0x65, 0xa9, 0xcf, 0x58, 0x0f, 0x3a, 0x7e, 0x1c, 0xcd, 0x95, 0x58, 0xf7, 0x32, - 0x35, 0xcd, 0x77, 0x13, 0xbc, 0xb4, 0xc2, 0x83, 0x57, 0xc6, 0x06, 0x29, 0x84, 0x61, 0xd2, 0x73, - 0xf7, 0x89, 0x4f, 0xa2, 0xa8, 0x16, 0x06, 0x5b, 0x64, 0x0e, 0x58, 0xcf, 0x2f, 0x66, 0x2b, 0x60, - 0x83, 0x2d, 0xb2, 0x3c, 0x7b, 0x74, 0x58, 0x9e, 0xbc, 0xa5, 0xd7, 0xc1, 0x26, 0x09, 0x74, 0x07, - 0xa6, 0xa8, 0x08, 0xed, 0x26, 0x44, 0xc7, 0xfb, 0x11, 0x65, 0xf2, 0x33, 0x36, 0x2a, 0xe1, 0x14, - 0x11, 0xf4, 0x36, 0x94, 0x3c, 0x77, 0x9b, 0x34, 0x0e, 0x1a, 0x1e, 0x99, 0x9b, 0x60, 0x14, 0x33, - 0xb7, 0xd5, 0x2d, 0x89, 0xc4, 0xaf, 0x28, 0xea, 0x2f, 0x4e, 0xaa, 0xa3, 0xbb, 0xf0, 0x58, 0x4c, - 0xc2, 0x3d, 0xd7, 0x77, 0xe8, 0x76, 0x10, 0x12, 0x2f, 0x53, 0x63, 0x4f, 0xb2, 0xf5, 0x76, 0x49, - 0x0c, 0xdd, 0x63, 0x9b, 0x99, 0x58, 0x38, 0xa7, 0x36, 0xba, 0x0d, 0xd3, 0x6c, 0x27, 0xd4, 0x3a, - 0x9e, 0x57, 0x0b, 0x3c, 0xb7, 0x71, 0x30, 0x37, 0xc5, 0x08, 0x7e, 0x46, 0xea, 0xa9, 0xab, 0x26, - 0x98, 0xde, 0xc9, 0x93, 0x7f, 0x38, 0x5d, 0x1b, 0x6d, 0x31, 0xbd, 0x65, 0x27, 0x74, 0xe3, 0x03, - 0xba, 0x7e, 0xc9, 0x83, 0x78, 0x6e, 0xba, 0xe7, 0x0d, 0x57, 0x47, 0x55, 0xca, 0x4d, 0xbd, 0x10, - 0xa7, 0x09, 0xd2, 0xad, 0x1d, 0xc5, 0x4d, 0xd7, 0x9f, 0x9b, 0x61, 0x1c, 0x43, 0xed, 0x8c, 0x3a, - 0x2d, 0xc4, 0x1c, 0xc6, 0x74, 0x96, 0xf4, 0xc7, 0x6d, 0xca, 0x41, 0x67, 0x19, 0x62, 0xa2, 0xb3, - 0x94, 0x00, 0x9c, 0xe0, 0xd0, 0x63, 0x39, 0x8e, 0x0f, 0xe6, 0x10, 0x43, 0x55, 0xdb, 0x65, 0x73, - 0xf3, 0xcb, 0x98, 0x96, 0xa3, 0x5b, 0x30, 0x4a, 0xfc, 0xfd, 0xb5, 0x30, 0xd8, 0x9b, 0x3b, 0x97, - 0xbf, 0x67, 0x57, 0x39, 0x0a, 0x67, 0xe8, 0xc9, 0x15, 0x45, 0x14, 0x63, 0x49, 0x02, 0x3d, 0x80, - 0xb9, 0x8c, 0x19, 0xe1, 0x13, 0x70, 0x9e, 0x4d, 0xc0, 0x17, 0x44, 0xdd, 0xb9, 0xcd, 0x1c, 0xbc, - 0xe3, 0x1e, 0x30, 0x9c, 0x4b, 0x1d, 0x7d, 0x17, 0x4c, 0xf2, 0x0d, 0xc5, 0x1f, 0x3c, 0xa2, 0xb9, - 0x0b, 0xec, 0x6b, 0x2e, 0xe7, 0x6f, 0x4e, 0x8e, 0xb8, 0x7c, 0x41, 0x74, 0x68, 0x52, 0x2f, 0x8d, - 0xb0, 0x49, 0xcd, 0xde, 0x82, 0x29, 0xc5, 0xb7, 0xd8, 0xd2, 0x41, 0x65, 0x18, 0xa6, 0x0c, 0x59, - 0xea, 0x14, 0x4a, 0x74, 0xa6, 0x98, 0xa2, 0x1a, 0xf3, 0x72, 0x36, 0x53, 0xee, 0x87, 0x64, 0xf9, - 0x20, 0x26, 0xfc, 0x5e, 0x58, 0xd4, 0x66, 0x4a, 0x02, 0x70, 0x82, 0x63, 0xff, 0x6f, 0x2e, 0xf7, - 0x24, 0xcc, 0x71, 0x80, 0xe3, 0xe0, 0x45, 0x18, 0xdb, 0x09, 0xa2, 0x98, 0x62, 0xb3, 0x36, 0x86, - 0x13, 0x49, 0xe7, 0x86, 0x28, 0xc7, 0x0a, 0x03, 0xbd, 0x09, 0x93, 0x0d, 0xbd, 0x01, 0x71, 0x96, - 0xa9, 0x21, 0x30, 0x5a, 0xc7, 0x26, 0x2e, 0x7a, 0x03, 0xc6, 0xd8, 0x73, 0x65, 0x23, 0xf0, 0xc4, - 0x0d, 0x54, 0x1e, 0xc8, 0x63, 0x35, 0x51, 0x7e, 0xac, 0xfd, 0xc6, 0x0a, 0x1b, 0x5d, 0x81, 0x11, - 0xda, 0x85, 0x6a, 0x4d, 0x9c, 0x22, 0x4a, 0x2b, 0x70, 0x83, 0x95, 0x62, 0x01, 0xb5, 0xff, 0xff, - 0x82, 0x36, 0xca, 0xf4, 0x4e, 0x45, 0x50, 0x0d, 0x46, 0xef, 0x3b, 0x6e, 0xec, 0xfa, 0x2d, 0x21, - 0x2e, 0x3c, 0xd7, 0xf3, 0x48, 0x61, 0x95, 0xee, 0xf1, 0x0a, 0xfc, 0xd0, 0x13, 0x7f, 0xb0, 0x24, - 0x43, 0x29, 0x86, 0x1d, 0xdf, 0xa7, 0x14, 0x0b, 0x83, 0x52, 0xc4, 0xbc, 0x02, 0xa7, 0x28, 0xfe, - 0x60, 0x49, 0x06, 0xbd, 0x07, 0x20, 0x97, 0x25, 0x69, 0x8a, 0x67, 0xc2, 0x17, 0xfb, 0x13, 0xdd, - 0x54, 0x75, 0x96, 0xa7, 0xe8, 0x91, 0x9a, 0xfc, 0xc7, 0x1a, 0x3d, 0x3b, 0x66, 0x62, 0x55, 0x77, - 0x67, 0xd0, 0x77, 0x52, 0x4e, 0xe0, 0x84, 0x31, 0x69, 0x2e, 0xc5, 0x62, 0x70, 0x9e, 0x1f, 0x4c, - 0x2a, 0xde, 0x74, 0xf7, 0x88, 0xce, 0x35, 0x04, 0x11, 0x9c, 0xd0, 0xb3, 0x7f, 0xa5, 0x08, 0x73, - 0x79, 0xdd, 0xa5, 0x8b, 0x8e, 0x3c, 0x70, 0xe3, 0x15, 0x2a, 0x0d, 0x59, 0xe6, 0xa2, 0x5b, 0x15, - 0xe5, 0x58, 0x61, 0xd0, 0xd9, 0x8f, 0xdc, 0x96, 0xbc, 0xd4, 0x0c, 0x27, 0xb3, 0x5f, 0x67, 0xa5, - 0x58, 0x40, 0x29, 0x5e, 0x48, 0x9c, 0x48, 0xbc, 0x43, 0x6b, 0xab, 0x04, 0xb3, 0x52, 0x2c, 0xa0, - 0xba, 0xc6, 0x64, 0xa8, 0x8f, 0xc6, 0xc4, 0x18, 0xa2, 0xe1, 0xd3, 0x1d, 0x22, 0xf4, 0x15, 0x80, - 0x6d, 0xd7, 0x77, 0xa3, 0x1d, 0x46, 0x7d, 0xe4, 0xc4, 0xd4, 0x95, 0x2c, 0xb5, 0xa6, 0xa8, 0x60, - 0x8d, 0x22, 0x7a, 0x0d, 0xc6, 0xd5, 0x06, 0xac, 0x56, 0x98, 0x52, 0x5e, 0x7b, 0xe4, 0x4c, 0xb8, - 0x51, 0x05, 0xeb, 0x78, 0xf6, 0xfb, 0xe9, 0xf5, 0x22, 0x76, 0x80, 0x36, 0xbe, 0xd6, 0xa0, 0xe3, - 0x5b, 0xe8, 0x3d, 0xbe, 0xf6, 0x6f, 0x15, 0x61, 0xda, 0x68, 0xac, 0x13, 0x0d, 0xc0, 0xb3, 0xae, - 0xd3, 0x73, 0xce, 0x89, 0x89, 0xd8, 0x7f, 0x76, 0xff, 0xad, 0xa2, 0x9f, 0x85, 0x74, 0x07, 0xf0, - 0xfa, 0xe8, 0x2b, 0x50, 0xf2, 0x9c, 0x88, 0x69, 0x5f, 0x88, 0xd8, 0x77, 0x83, 0x10, 0x4b, 0xee, - 0x11, 0x4e, 0x14, 0x6b, 0x47, 0x0d, 0xa7, 0x9d, 0x90, 0xa4, 0x07, 0x32, 0x95, 0x7d, 0xa4, 0xa1, - 0x83, 0xea, 0x04, 0x15, 0x90, 0x0e, 0x30, 0x87, 0xa1, 0x37, 0x60, 0x22, 0x24, 0x6c, 0x55, 0xac, - 0x50, 0x51, 0x8e, 0x2d, 0xb3, 0xe1, 0x44, 0xe6, 0xc3, 0x1a, 0x0c, 0x1b, 0x98, 0x89, 0x28, 0x3f, - 0xd2, 0x43, 0x94, 0x7f, 0x0e, 0x46, 0xd9, 0x0f, 0xb5, 0x02, 0xd4, 0x6c, 0x54, 0x79, 0x31, 0x96, - 0xf0, 0xf4, 0x82, 0x19, 0x1b, 0x70, 0xc1, 0x3c, 0x0f, 0x53, 0x15, 0x87, 0xec, 0x05, 0xfe, 0xaa, - 0xdf, 0x6c, 0x07, 0xae, 0x1f, 0xa3, 0x39, 0x18, 0x62, 0xa7, 0x03, 0xdf, 0xdb, 0x43, 0x94, 0x02, - 0x1e, 0xa2, 0x82, 0xb9, 0xfd, 0xfb, 0x05, 0x98, 0xac, 0x10, 0x8f, 0xc4, 0x84, 0x5f, 0x65, 0x22, - 0xb4, 0x06, 0xa8, 0x15, 0x3a, 0x0d, 0x52, 0x23, 0xa1, 0x1b, 0x34, 0x75, 0x6d, 0x6c, 0x91, 0x3f, - 0x0e, 0x5d, 0xef, 0x82, 0xe2, 0x8c, 0x1a, 0xe8, 0x5d, 0x98, 0x6c, 0x87, 0xc4, 0x50, 0x22, 0x5a, - 0x79, 0xd2, 0x48, 0x4d, 0x47, 0xe4, 0x82, 0xb0, 0x51, 0x84, 0x4d, 0x52, 0xe8, 0x3b, 0x60, 0x26, - 0x08, 0xdb, 0x3b, 0x8e, 0x5f, 0x21, 0x6d, 0xe2, 0x37, 0xa9, 0xa4, 0x2f, 0x54, 0x10, 0xe7, 0x8f, - 0x0e, 0xcb, 0x33, 0xb7, 0x53, 0x30, 0xdc, 0x85, 0x8d, 0xde, 0x85, 0xd9, 0x76, 0x18, 0xb4, 0x9d, - 0x16, 0x5b, 0x28, 0x42, 0xa0, 0xe1, 0xdc, 0xe7, 0xc5, 0xa3, 0xc3, 0xf2, 0x6c, 0x2d, 0x0d, 0x3c, - 0x3e, 0x2c, 0x9f, 0x63, 0x03, 0x45, 0x4b, 0x12, 0x20, 0xee, 0x26, 0x63, 0xb7, 0xe0, 0x42, 0x25, - 0xb8, 0xef, 0xdf, 0x77, 0xc2, 0xe6, 0x52, 0xad, 0xaa, 0xe9, 0x0e, 0x36, 0xe4, 0xdd, 0x95, 0x1b, - 0x63, 0x64, 0x9e, 0x53, 0x5a, 0x4d, 0x2e, 0xbf, 0xac, 0xb9, 0x1e, 0xc9, 0xd1, 0x51, 0xfc, 0xed, - 0x82, 0xd1, 0x52, 0x82, 0xaf, 0x1e, 0x3e, 0xac, 0xdc, 0x87, 0x8f, 0x77, 0x60, 0x6c, 0xdb, 0x25, - 0x5e, 0x13, 0x93, 0x6d, 0x31, 0x33, 0xcf, 0xe6, 0xbf, 0x2f, 0xaf, 0x51, 0x4c, 0xa9, 0x93, 0xe2, - 0x37, 0xdf, 0x35, 0x51, 0x19, 0x2b, 0x32, 0x68, 0x17, 0x66, 0xe4, 0xd5, 0x4a, 0x42, 0xc5, 0x26, - 0x7e, 0xae, 0xd7, 0x7d, 0xcd, 0x24, 0xce, 0x26, 0x10, 0xa7, 0xc8, 0xe0, 0x2e, 0xc2, 0xf4, 0xaa, - 0xbb, 0x47, 0x8f, 0xab, 0x21, 0xb6, 0xa4, 0xd9, 0x55, 0x97, 0xdd, 0xda, 0x59, 0xa9, 0xfd, 0x53, - 0x16, 0x3c, 0xde, 0x35, 0x32, 0x42, 0x7b, 0x71, 0xca, 0xb3, 0x90, 0xd6, 0x26, 0x14, 0xfa, 0x6b, - 0x13, 0xec, 0x7f, 0x64, 0xc1, 0xf9, 0xd5, 0xbd, 0x76, 0x7c, 0x50, 0x71, 0xcd, 0xc7, 0x99, 0xd7, - 0x61, 0x64, 0x8f, 0x34, 0xdd, 0xce, 0x9e, 0x98, 0xb9, 0xb2, 0x64, 0xe9, 0xeb, 0xac, 0xf4, 0xf8, - 0xb0, 0x3c, 0x59, 0x8f, 0x83, 0xd0, 0x69, 0x11, 0x5e, 0x80, 0x05, 0x3a, 0x3b, 0x18, 0xdd, 0x0f, - 0xc9, 0x2d, 0x77, 0xcf, 0x95, 0xf6, 0x02, 0x3d, 0x35, 0x6a, 0x0b, 0x72, 0x40, 0x17, 0xde, 0xe9, - 0x38, 0x7e, 0xec, 0xc6, 0x07, 0xe2, 0xdd, 0x49, 0x12, 0xc1, 0x09, 0x3d, 0xfb, 0x9b, 0x16, 0x4c, - 0x4b, 0x5e, 0xb2, 0xd4, 0x6c, 0x86, 0x24, 0x8a, 0xd0, 0x3c, 0x14, 0xdc, 0xb6, 0xe8, 0x25, 0x88, - 0x5e, 0x16, 0xaa, 0x35, 0x5c, 0x70, 0xdb, 0xa8, 0x06, 0x25, 0x6e, 0x76, 0x90, 0x2c, 0xae, 0x81, - 0x8c, 0x17, 0x58, 0x0f, 0x36, 0x65, 0x4d, 0x9c, 0x10, 0x91, 0x52, 0x31, 0x3b, 0x87, 0x8a, 0xe6, - 0xa3, 0xd5, 0x0d, 0x51, 0x8e, 0x15, 0x06, 0xba, 0x0a, 0x63, 0x7e, 0xd0, 0xe4, 0x56, 0x20, 0x7c, - 0x4f, 0xb3, 0x25, 0xbb, 0x21, 0xca, 0xb0, 0x82, 0xda, 0x3f, 0x62, 0xc1, 0x84, 0xfc, 0xb2, 0x01, - 0x05, 0x74, 0xba, 0xb5, 0x12, 0xe1, 0x3c, 0xd9, 0x5a, 0x54, 0xc0, 0x66, 0x10, 0x43, 0xae, 0x2e, - 0x9e, 0x44, 0xae, 0xb6, 0x7f, 0xb2, 0x00, 0x53, 0xb2, 0x3b, 0xf5, 0xce, 0x56, 0x44, 0x62, 0xb4, - 0x09, 0x25, 0x87, 0x0f, 0x39, 0x91, 0x2b, 0xf6, 0x99, 0xec, 0x0b, 0x9d, 0x31, 0x3f, 0x89, 0xa8, - 0xb3, 0x24, 0x6b, 0xe3, 0x84, 0x10, 0xf2, 0x60, 0xd6, 0x0f, 0x62, 0x76, 0xec, 0x29, 0x78, 0xaf, - 0x87, 0x91, 0x34, 0xf5, 0x8b, 0x82, 0xfa, 0xec, 0x46, 0x9a, 0x0a, 0xee, 0x26, 0x8c, 0x56, 0xa5, - 0x12, 0xa9, 0x98, 0x7f, 0x85, 0xd3, 0x67, 0x21, 0x5b, 0x87, 0x64, 0xff, 0x86, 0x05, 0x25, 0x89, - 0x76, 0x16, 0x6f, 0x60, 0xeb, 0x30, 0x1a, 0xb1, 0x49, 0x90, 0x43, 0x63, 0xf7, 0xea, 0x38, 0x9f, - 0xaf, 0xe4, 0x34, 0xe7, 0xff, 0x23, 0x2c, 0x69, 0x30, 0x2d, 0xb8, 0xea, 0xfe, 0x27, 0x44, 0x0b, - 0xae, 0xfa, 0x93, 0x73, 0xc2, 0xfc, 0x17, 0xd6, 0x67, 0x4d, 0x55, 0x40, 0x85, 0xce, 0x76, 0x48, - 0xb6, 0xdd, 0x07, 0x69, 0xa1, 0xb3, 0xc6, 0x4a, 0xb1, 0x80, 0xa2, 0xf7, 0x60, 0xa2, 0x21, 0x95, - 0xc7, 0x09, 0x1b, 0xb8, 0xd2, 0x53, 0x15, 0xaf, 0x5e, 0x6d, 0xb8, 0x85, 0xe8, 0x8a, 0x56, 0x1f, - 0x1b, 0xd4, 0x4c, 0xcb, 0x84, 0x62, 0x3f, 0xcb, 0x84, 0x84, 0x6e, 0xee, 0xdb, 0xba, 0xfd, 0xd3, - 0x16, 0x8c, 0x70, 0x15, 0xe4, 0x60, 0x3a, 0x5b, 0xed, 0x11, 0x2b, 0x19, 0xbb, 0xbb, 0xb4, 0x50, - 0x3c, 0x4a, 0xa1, 0x75, 0x28, 0xb1, 0x1f, 0x4c, 0x15, 0x53, 0xcc, 0x37, 0x8d, 0xe5, 0xad, 0xea, - 0x1d, 0xbc, 0x2b, 0xab, 0xe1, 0x84, 0x82, 0xfd, 0x63, 0x45, 0xca, 0xaa, 0x12, 0x54, 0xe3, 0x04, - 0xb7, 0x1e, 0xdd, 0x09, 0x5e, 0x78, 0x54, 0x27, 0x78, 0x0b, 0xa6, 0x1b, 0xda, 0x93, 0x57, 0x32, - 0x93, 0x57, 0x7b, 0x2e, 0x12, 0xed, 0x75, 0x8c, 0xab, 0xe1, 0x56, 0x4c, 0x22, 0x38, 0x4d, 0x15, - 0x7d, 0x27, 0x4c, 0xf0, 0x79, 0x16, 0xad, 0x0c, 0xb1, 0x56, 0x3e, 0x93, 0xbf, 0x5e, 0xf4, 0x26, - 0xd8, 0x4a, 0xac, 0x6b, 0xd5, 0xb1, 0x41, 0xcc, 0xfe, 0x95, 0x31, 0x18, 0x5e, 0xdd, 0x27, 0x7e, - 0x7c, 0x06, 0x0c, 0xa9, 0x01, 0x53, 0xae, 0xbf, 0x1f, 0x78, 0xfb, 0xa4, 0xc9, 0xe1, 0x27, 0x39, - 0x5c, 0x1f, 0x13, 0xa4, 0xa7, 0xaa, 0x06, 0x09, 0x9c, 0x22, 0xf9, 0x28, 0x6e, 0xed, 0xd7, 0x61, - 0x84, 0xcf, 0xbd, 0xb8, 0xb2, 0x67, 0x2a, 0xd8, 0xd9, 0x20, 0x8a, 0x5d, 0x90, 0x68, 0x14, 0xb8, - 0x46, 0x5f, 0x54, 0x47, 0xef, 0xc3, 0xd4, 0xb6, 0x1b, 0x46, 0x31, 0xbd, 0x6e, 0x47, 0xb1, 0xb3, - 0xd7, 0x7e, 0x88, 0x5b, 0xba, 0x1a, 0x87, 0x35, 0x83, 0x12, 0x4e, 0x51, 0x46, 0x2d, 0x98, 0xa4, - 0x17, 0xc7, 0xa4, 0xa9, 0xd1, 0x13, 0x37, 0xa5, 0xd4, 0x70, 0xb7, 0x74, 0x42, 0xd8, 0xa4, 0x4b, - 0x99, 0x49, 0x83, 0x5d, 0x34, 0xc7, 0x98, 0x44, 0xa1, 0x98, 0x09, 0xbf, 0x61, 0x72, 0x18, 0xe5, - 0x49, 0xcc, 0x98, 0xa5, 0x64, 0xf2, 0x24, 0xcd, 0x64, 0xe5, 0xab, 0x50, 0x22, 0x74, 0x08, 0x29, - 0x61, 0xf1, 0xd8, 0xb0, 0x38, 0x58, 0x5f, 0xd7, 0xdd, 0x46, 0x18, 0x98, 0xfa, 0x91, 0x55, 0x49, - 0x09, 0x27, 0x44, 0xd1, 0x0a, 0x8c, 0x44, 0x24, 0x74, 0x49, 0x24, 0x9e, 0x1d, 0x7a, 0x4c, 0x23, - 0x43, 0xe3, 0x36, 0xd4, 0xfc, 0x37, 0x16, 0x55, 0xe9, 0xf2, 0x72, 0xd8, 0x6d, 0x88, 0xbd, 0x34, - 0x68, 0xcb, 0x6b, 0x89, 0x95, 0x62, 0x01, 0x45, 0x6f, 0xc3, 0x68, 0x48, 0x3c, 0xa6, 0x80, 0x9b, - 0x1c, 0x7c, 0x91, 0x73, 0x7d, 0x1e, 0xaf, 0x87, 0x25, 0x01, 0x74, 0x13, 0x50, 0x48, 0xa8, 0x0c, - 0xe1, 0xfa, 0x2d, 0x65, 0xe2, 0x21, 0xde, 0x0f, 0x9e, 0x10, 0xed, 0x9f, 0xc3, 0x09, 0x86, 0xb4, - 0xae, 0xc4, 0x19, 0xd5, 0xd0, 0x75, 0x98, 0x55, 0xa5, 0x55, 0x3f, 0x8a, 0x1d, 0xbf, 0x41, 0xd8, - 0xd3, 0x41, 0x29, 0x91, 0x8a, 0x70, 0x1a, 0x01, 0x77, 0xd7, 0xb1, 0xbf, 0x41, 0xc5, 0x19, 0x3a, - 0x5a, 0x67, 0x20, 0x0b, 0xbc, 0x65, 0xca, 0x02, 0x17, 0x73, 0x67, 0x2e, 0x47, 0x0e, 0x38, 0xb2, - 0x60, 0x5c, 0x9b, 0xd9, 0x64, 0xcd, 0x5a, 0x3d, 0xd6, 0x6c, 0x07, 0x66, 0xe8, 0x4a, 0xbf, 0xbd, - 0xc5, 0xdc, 0x89, 0x9a, 0x6c, 0x61, 0x16, 0x1e, 0x6e, 0x61, 0x2a, 0x43, 0xdc, 0x5b, 0x29, 0x82, - 0xb8, 0xab, 0x09, 0xf4, 0xba, 0xd4, 0x46, 0x15, 0x0d, 0xd3, 0x2d, 0xae, 0x69, 0x3a, 0x3e, 0x2c, - 0xcf, 0x68, 0x1f, 0xa2, 0x6b, 0x9f, 0xec, 0xaf, 0xca, 0x6f, 0xe4, 0xcc, 0x66, 0x11, 0x4a, 0x0d, - 0xb5, 0x58, 0x2c, 0xd3, 0x98, 0x5c, 0x2d, 0x07, 0x9c, 0xe0, 0xd0, 0x3d, 0x4a, 0xaf, 0x20, 0x69, - 0x6b, 0x43, 0x7a, 0x41, 0xc1, 0x0c, 0x62, 0xbf, 0x02, 0xb0, 0xfa, 0x80, 0x34, 0xf8, 0x52, 0xd7, - 0x1f, 0x75, 0xad, 0xfc, 0x47, 0x5d, 0xfb, 0x3f, 0x58, 0x30, 0xb5, 0xb6, 0x62, 0x5c, 0x13, 0x17, - 0x00, 0xf8, 0xdd, 0xe8, 0xde, 0xbd, 0x0d, 0xf9, 0x5e, 0xc1, 0x55, 0xce, 0xaa, 0x14, 0x6b, 0x18, - 0xe8, 0x22, 0x14, 0xbd, 0x8e, 0x2f, 0xae, 0x2c, 0xa3, 0x47, 0x87, 0xe5, 0xe2, 0xad, 0x8e, 0x8f, - 0x69, 0x99, 0x66, 0xe0, 0x57, 0x1c, 0xd8, 0xc0, 0xaf, 0xaf, 0x9b, 0x10, 0x2a, 0xc3, 0xf0, 0xfd, - 0xfb, 0x6e, 0x93, 0x1b, 0x63, 0x8b, 0xb7, 0x94, 0x7b, 0xf7, 0xaa, 0x95, 0x08, 0xf3, 0x72, 0xfb, - 0xeb, 0x45, 0x98, 0x5f, 0xf3, 0xc8, 0x83, 0x8f, 0x68, 0x90, 0x3e, 0xa8, 0x79, 0xe2, 0xc9, 0xe4, - 0xc5, 0x93, 0xda, 0x62, 0xf6, 0x1f, 0x8f, 0x6d, 0x18, 0xe5, 0x06, 0x02, 0xd2, 0x3c, 0xfd, 0xcd, - 0xac, 0xd6, 0xf3, 0x07, 0x64, 0x41, 0x68, 0xe7, 0xb8, 0x09, 0x96, 0x3a, 0x69, 0x45, 0x29, 0x96, - 0xc4, 0xe7, 0x3f, 0x0f, 0x13, 0x3a, 0xe6, 0x89, 0xac, 0xa2, 0xff, 0x9f, 0x22, 0xcc, 0xd0, 0x1e, - 0x3c, 0xd2, 0x89, 0xb8, 0xd3, 0x3d, 0x11, 0xa7, 0x6d, 0x19, 0xdb, 0x7f, 0x36, 0xde, 0x4b, 0xcf, - 0xc6, 0xcb, 0x79, 0xb3, 0x71, 0xd6, 0x73, 0xf0, 0xbd, 0x16, 0x9c, 0x5b, 0xf3, 0x82, 0xc6, 0x6e, - 0xca, 0x68, 0xf7, 0x35, 0x18, 0xa7, 0x7c, 0x3c, 0x32, 0xbc, 0x61, 0x0c, 0xff, 0x28, 0x01, 0xc2, - 0x3a, 0x9e, 0x56, 0xed, 0xce, 0x9d, 0x6a, 0x25, 0xcb, 0xad, 0x4a, 0x80, 0xb0, 0x8e, 0x67, 0xff, - 0xae, 0x05, 0x4f, 0x5d, 0x5f, 0x59, 0x4d, 0x96, 0x62, 0x97, 0x67, 0x17, 0xbd, 0x05, 0x36, 0xb5, - 0xae, 0x24, 0xb7, 0xc0, 0x0a, 0xeb, 0x85, 0x80, 0x7e, 0x52, 0xbc, 0x16, 0x7f, 0xce, 0x82, 0x73, - 0xd7, 0xdd, 0x98, 0x1e, 0xcb, 0x69, 0x1f, 0x23, 0x7a, 0x2e, 0x47, 0x6e, 0x1c, 0x84, 0x07, 0x69, - 0x1f, 0x23, 0xac, 0x20, 0x58, 0xc3, 0xe2, 0x2d, 0xef, 0xbb, 0x11, 0xed, 0x69, 0xc1, 0x54, 0x45, - 0x61, 0x51, 0x8e, 0x15, 0x06, 0xfd, 0xb0, 0xa6, 0x1b, 0xb2, 0xab, 0xc4, 0x81, 0xe0, 0xb0, 0xea, - 0xc3, 0x2a, 0x12, 0x80, 0x13, 0x1c, 0xfb, 0xa7, 0x2c, 0xb8, 0x70, 0xdd, 0xeb, 0x44, 0x31, 0x09, - 0xb7, 0x23, 0xa3, 0xb3, 0xaf, 0x40, 0x89, 0xc8, 0xeb, 0xba, 0xe8, 0xab, 0x12, 0x30, 0xd5, 0x3d, - 0x9e, 0x3b, 0x38, 0x29, 0xbc, 0x01, 0x2c, 0xe0, 0x4f, 0x66, 0xb9, 0xfd, 0x8b, 0x05, 0x98, 0xbc, - 0xb1, 0xb9, 0x59, 0xbb, 0x4e, 0x62, 0x71, 0x8a, 0xf5, 0x57, 0x35, 0x63, 0x4d, 0x63, 0xd6, 0xeb, - 0x52, 0xd4, 0x89, 0x5d, 0x6f, 0x81, 0x7b, 0xd4, 0x2e, 0x54, 0xfd, 0xf8, 0x76, 0x58, 0x8f, 0x43, - 0xd7, 0x6f, 0x65, 0xea, 0xd8, 0xe4, 0x59, 0x5b, 0xcc, 0x3b, 0x6b, 0xd1, 0x2b, 0x30, 0xc2, 0x5c, - 0x7a, 0xe5, 0xf5, 0xe4, 0x09, 0x75, 0xa7, 0x60, 0xa5, 0xc7, 0x87, 0xe5, 0xd2, 0x1d, 0x5c, 0xe5, - 0x7f, 0xb0, 0x40, 0x45, 0x77, 0x60, 0x7c, 0x27, 0x8e, 0xdb, 0x37, 0x88, 0xd3, 0x24, 0xa1, 0xe4, - 0x0e, 0x97, 0xb2, 0xb8, 0x03, 0x1d, 0x04, 0x8e, 0x96, 0x6c, 0xa8, 0xa4, 0x2c, 0xc2, 0x3a, 0x1d, - 0xbb, 0x0e, 0x90, 0xc0, 0x4e, 0x49, 0xbf, 0x60, 0xff, 0x89, 0x05, 0xa3, 0xdc, 0xbb, 0x2a, 0x44, - 0x5f, 0x80, 0x21, 0xf2, 0x80, 0x34, 0x84, 0xe4, 0x98, 0xd9, 0xe1, 0x44, 0xf0, 0xe0, 0xda, 0x72, - 0xfa, 0x1f, 0xb3, 0x5a, 0xe8, 0x06, 0x8c, 0xd2, 0xde, 0x5e, 0x57, 0xae, 0x66, 0x4f, 0xe7, 0x7d, - 0xb1, 0x9a, 0x76, 0x2e, 0xab, 0x88, 0x22, 0x2c, 0xab, 0x33, 0xcd, 0x6f, 0xa3, 0x5d, 0xa7, 0x0c, - 0x2c, 0xee, 0x75, 0xce, 0x6e, 0xae, 0xd4, 0x38, 0x92, 0xa0, 0xc6, 0x35, 0xbf, 0xb2, 0x10, 0x27, - 0x44, 0xec, 0x4d, 0x28, 0xd1, 0x49, 0x5d, 0xf2, 0x5c, 0xa7, 0xb7, 0xd2, 0xf9, 0x05, 0x28, 0x49, - 0x05, 0x70, 0x24, 0x1c, 0x74, 0x18, 0x55, 0xa9, 0x1f, 0x8e, 0x70, 0x02, 0xb7, 0xb7, 0xe1, 0x3c, - 0xb3, 0xa6, 0x70, 0xe2, 0x1d, 0x63, 0x8f, 0xf5, 0x5f, 0xcc, 0x2f, 0x8a, 0x8b, 0x18, 0x9f, 0x99, - 0x39, 0xcd, 0xa3, 0x60, 0x42, 0x52, 0x4c, 0x2e, 0x65, 0xf6, 0x9f, 0x0d, 0xc1, 0x13, 0xd5, 0x7a, - 0xbe, 0xe3, 0xdd, 0x1b, 0x30, 0xc1, 0xc5, 0x34, 0xba, 0xb4, 0x1d, 0x4f, 0xb4, 0xab, 0xde, 0x1a, - 0x37, 0x35, 0x18, 0x36, 0x30, 0xd1, 0x53, 0x50, 0x74, 0x3f, 0xf0, 0xd3, 0xc6, 0xb9, 0xd5, 0x77, - 0x36, 0x30, 0x2d, 0xa7, 0x60, 0x2a, 0xf1, 0x71, 0x56, 0xaa, 0xc0, 0x4a, 0xea, 0x7b, 0x0b, 0xa6, - 0xdc, 0xa8, 0x11, 0xb9, 0x55, 0x9f, 0xf2, 0x99, 0xc4, 0x69, 0x33, 0x51, 0x12, 0xd0, 0x4e, 0x2b, - 0x28, 0x4e, 0x61, 0x6b, 0x7c, 0x7d, 0x78, 0x60, 0xa9, 0xb1, 0xaf, 0xc7, 0x0a, 0x15, 0x88, 0xdb, - 0xec, 0xeb, 0x22, 0x66, 0x28, 0x28, 0x04, 0x62, 0xfe, 0xc1, 0x11, 0x96, 0x30, 0x7a, 0x03, 0x6b, - 0xec, 0x38, 0xed, 0xa5, 0x4e, 0xbc, 0x53, 0x71, 0xa3, 0x46, 0xb0, 0x4f, 0xc2, 0x03, 0x76, 0x79, - 0x1e, 0x4b, 0x6e, 0x60, 0x0a, 0xb0, 0x72, 0x63, 0xa9, 0x46, 0x31, 0x71, 0x77, 0x1d, 0x53, 0x2a, - 0x84, 0xd3, 0x90, 0x0a, 0x97, 0x60, 0x5a, 0x36, 0x53, 0x27, 0x11, 0x3b, 0x23, 0xc6, 0x59, 0xc7, - 0x94, 0x3b, 0xb5, 0x28, 0x56, 0xdd, 0x4a, 0xe3, 0xa3, 0xd7, 0x61, 0xd2, 0xf5, 0xdd, 0xd8, 0x75, - 0xe2, 0x20, 0x64, 0x27, 0x2c, 0xbf, 0x27, 0xb3, 0x47, 0xd1, 0xaa, 0x0e, 0xc0, 0x26, 0x9e, 0xfd, - 0xa7, 0x43, 0x30, 0xcb, 0xa6, 0xed, 0x5b, 0x2b, 0xec, 0x13, 0xb3, 0xc2, 0xee, 0x74, 0xaf, 0xb0, - 0xd3, 0x10, 0x77, 0x3f, 0xce, 0x65, 0xf6, 0x3e, 0x94, 0x94, 0x7d, 0xb5, 0x74, 0x11, 0xb0, 0x72, - 0x5c, 0x04, 0xfa, 0x4b, 0x1f, 0xf2, 0x19, 0xb7, 0x98, 0xf9, 0x8c, 0xfb, 0x77, 0x2c, 0x48, 0xcc, - 0x4c, 0xd1, 0x0d, 0x28, 0xb5, 0x03, 0x66, 0xca, 0x11, 0x4a, 0xfb, 0xa8, 0x27, 0x32, 0x0f, 0x2a, - 0x7e, 0x28, 0xf2, 0xf1, 0xab, 0xc9, 0x1a, 0x38, 0xa9, 0x8c, 0x96, 0x61, 0xb4, 0x1d, 0x92, 0x7a, - 0xcc, 0x5c, 0x39, 0xfb, 0xd2, 0xe1, 0x6b, 0x84, 0xe3, 0x63, 0x59, 0xd1, 0xfe, 0x25, 0x0b, 0x80, - 0xbf, 0x94, 0x3a, 0x7e, 0x8b, 0x9c, 0x81, 0xf6, 0xb7, 0x02, 0x43, 0x51, 0x9b, 0x34, 0x7a, 0x19, - 0xd9, 0x24, 0xfd, 0xa9, 0xb7, 0x49, 0x23, 0x19, 0x70, 0xfa, 0x0f, 0xb3, 0xda, 0xf6, 0xf7, 0x03, - 0x4c, 0x25, 0x68, 0xd5, 0x98, 0xec, 0xa1, 0x97, 0x0c, 0x47, 0xb9, 0x8b, 0x29, 0x47, 0xb9, 0x12, - 0xc3, 0xd6, 0x14, 0x8d, 0xef, 0x43, 0x71, 0xcf, 0x79, 0x20, 0x34, 0x49, 0x2f, 0xf4, 0xee, 0x06, - 0xa5, 0xbf, 0xb0, 0xee, 0x3c, 0xe0, 0x77, 0xa6, 0x17, 0xe4, 0x02, 0x59, 0x77, 0x1e, 0x1c, 0x73, - 0x53, 0x1a, 0xc6, 0xa4, 0x6e, 0xb9, 0x51, 0xfc, 0xb5, 0xff, 0x94, 0xfc, 0x67, 0xcb, 0x8e, 0x36, - 0xc2, 0xda, 0x72, 0x7d, 0xf1, 0x6e, 0x38, 0x50, 0x5b, 0xae, 0x9f, 0x6e, 0xcb, 0xf5, 0x07, 0x68, - 0xcb, 0xf5, 0xd1, 0x87, 0x30, 0x2a, 0xde, 0xe8, 0x99, 0xfd, 0xbc, 0xa9, 0xa5, 0xca, 0x6b, 0x4f, - 0x3c, 0xf1, 0xf3, 0x36, 0x17, 0xe5, 0x9d, 0x50, 0x94, 0xf6, 0x6d, 0x57, 0x36, 0x88, 0xfe, 0x96, - 0x05, 0x53, 0xe2, 0x37, 0x26, 0x1f, 0x74, 0x48, 0x14, 0x0b, 0xd9, 0xf3, 0x73, 0x83, 0xf7, 0x41, - 0x54, 0xe4, 0x5d, 0xf9, 0x9c, 0x64, 0xb3, 0x26, 0xb0, 0x6f, 0x8f, 0x52, 0xbd, 0x40, 0xff, 0xc4, - 0x82, 0xf3, 0x7b, 0xce, 0x03, 0xde, 0x22, 0x2f, 0xc3, 0x4e, 0xec, 0x06, 0xc2, 0x1f, 0xe0, 0x0b, - 0x83, 0x4d, 0x7f, 0x57, 0x75, 0xde, 0x49, 0x69, 0x3a, 0x7c, 0x3e, 0x0b, 0xa5, 0x6f, 0x57, 0x33, - 0xfb, 0x35, 0xbf, 0x0d, 0x63, 0x72, 0xbd, 0x65, 0xdc, 0xbc, 0x2b, 0xba, 0x60, 0x7d, 0x62, 0x13, - 0x09, 0xdd, 0x5b, 0x8d, 0xb6, 0x23, 0xd6, 0xda, 0x23, 0x6d, 0xe7, 0x7d, 0x98, 0xd0, 0xd7, 0xd8, - 0x23, 0x6d, 0xeb, 0x03, 0x38, 0x97, 0xb1, 0x96, 0x1e, 0x69, 0x93, 0xf7, 0xe1, 0x62, 0xee, 0xfa, - 0x78, 0x94, 0x0d, 0xdb, 0xbf, 0x68, 0xe9, 0x7c, 0xf0, 0x0c, 0x54, 0xf0, 0x2b, 0xa6, 0x0a, 0xfe, - 0x52, 0xef, 0x9d, 0x93, 0xa3, 0x87, 0x7f, 0x4f, 0xef, 0x34, 0xe5, 0xea, 0xe8, 0x6d, 0x18, 0xf1, - 0x68, 0x89, 0x34, 0x0e, 0xb1, 0xfb, 0xef, 0xc8, 0x44, 0x96, 0x62, 0xe5, 0x11, 0x16, 0x14, 0xec, - 0x5f, 0xb5, 0x60, 0xe8, 0x0c, 0x46, 0x02, 0x9b, 0x23, 0xf1, 0x52, 0x2e, 0x69, 0x11, 0x9a, 0x6b, - 0x01, 0x3b, 0xf7, 0x57, 0x65, 0xf8, 0xb1, 0x9c, 0x81, 0xf9, 0x5f, 0x05, 0x18, 0xa7, 0x4d, 0x49, - 0x2b, 0xc6, 0x37, 0x61, 0xd2, 0x73, 0xb6, 0x88, 0x27, 0xdf, 0x71, 0xd3, 0x0a, 0x93, 0x5b, 0x3a, - 0x10, 0x9b, 0xb8, 0xb4, 0xf2, 0xb6, 0xfe, 0xa4, 0x2d, 0xe4, 0x17, 0x55, 0xd9, 0x78, 0xef, 0xc6, - 0x26, 0x2e, 0xbd, 0xbb, 0xdf, 0x77, 0xe2, 0xc6, 0x8e, 0x50, 0xa6, 0xa8, 0xee, 0xde, 0xa3, 0x85, - 0x98, 0xc3, 0xa8, 0x00, 0x27, 0x57, 0xe7, 0x5d, 0x7a, 0x33, 0x0c, 0x7c, 0x21, 0x1e, 0x2b, 0x01, - 0x0e, 0x9b, 0x60, 0x9c, 0xc6, 0xcf, 0xf0, 0x98, 0x1f, 0x66, 0x36, 0x9a, 0x03, 0x78, 0xcc, 0xa3, - 0x1a, 0x9c, 0x77, 0xfd, 0x86, 0xd7, 0x69, 0x92, 0x3b, 0x3e, 0x97, 0xee, 0x3c, 0xf7, 0x43, 0xd2, - 0x14, 0x02, 0xb4, 0x32, 0xa7, 0xad, 0x66, 0xe0, 0xe0, 0xcc, 0x9a, 0xf6, 0xff, 0x05, 0xe7, 0x6e, - 0x05, 0x4e, 0x73, 0xd9, 0xf1, 0x1c, 0xbf, 0x41, 0xc2, 0xaa, 0xdf, 0xea, 0x6b, 0x25, 0xa6, 0xdb, - 0x74, 0x15, 0xfa, 0xd9, 0x74, 0xd9, 0x3b, 0x80, 0xf4, 0x06, 0x84, 0x6d, 0x32, 0x86, 0x51, 0x97, - 0x37, 0x25, 0x96, 0xff, 0xb3, 0xd9, 0xd2, 0x75, 0x57, 0xcf, 0x34, 0xab, 0x5b, 0x5e, 0x80, 0x25, - 0x21, 0xfb, 0x0d, 0xc8, 0xf4, 0x47, 0xec, 0xaf, 0xb6, 0xb1, 0x5f, 0x83, 0x59, 0x56, 0xf3, 0x64, - 0x2a, 0x05, 0xfb, 0x07, 0x2d, 0x98, 0xde, 0x48, 0xc5, 0xb8, 0xb8, 0xc2, 0xde, 0x5a, 0x33, 0xf4, - 0xee, 0x75, 0x56, 0x8a, 0x05, 0xf4, 0xd4, 0xf5, 0x7b, 0x7f, 0x65, 0x41, 0x49, 0x45, 0x67, 0x3a, - 0x03, 0xa1, 0x76, 0xc5, 0x10, 0x6a, 0x33, 0xf5, 0x4e, 0xaa, 0x3b, 0x79, 0x32, 0x2d, 0xba, 0xa9, - 0xa2, 0x35, 0xf4, 0x50, 0x39, 0x25, 0x64, 0xb8, 0x6f, 0xff, 0x94, 0x19, 0xd2, 0x41, 0xc6, 0x6f, - 0x60, 0x66, 0x5a, 0x0a, 0xf7, 0x13, 0x62, 0xa6, 0xa5, 0xfa, 0x93, 0xc3, 0xfd, 0x6a, 0x5a, 0x97, - 0xd9, 0xa9, 0xf0, 0xed, 0xcc, 0x95, 0x81, 0xed, 0x4d, 0x15, 0x24, 0xa5, 0x2c, 0x5c, 0x13, 0x44, - 0xe9, 0x31, 0x63, 0x64, 0xe2, 0x1f, 0x8f, 0xa4, 0x95, 0x54, 0xb1, 0x6f, 0xc0, 0x74, 0x6a, 0xc0, - 0xd0, 0x6b, 0x30, 0xdc, 0xde, 0x71, 0x22, 0x92, 0x32, 0x4d, 0x1d, 0xae, 0xd1, 0xc2, 0xe3, 0xc3, - 0xf2, 0x94, 0xaa, 0xc0, 0x4a, 0x30, 0xc7, 0xb6, 0xff, 0xbb, 0x05, 0x43, 0x1b, 0x41, 0xf3, 0x2c, - 0x16, 0xd3, 0x5b, 0xc6, 0x62, 0x7a, 0x32, 0x2f, 0x0e, 0x61, 0xee, 0x3a, 0x5a, 0x4b, 0xad, 0xa3, - 0x4b, 0xb9, 0x14, 0x7a, 0x2f, 0xa1, 0x3d, 0x18, 0x67, 0xd1, 0x0d, 0x85, 0xa9, 0xec, 0x2b, 0xc6, - 0xfd, 0xaa, 0x9c, 0xba, 0x5f, 0x4d, 0x6b, 0xa8, 0xda, 0x2d, 0xeb, 0x39, 0x18, 0x15, 0xe6, 0x9a, - 0x69, 0xa7, 0x0d, 0x81, 0x8b, 0x25, 0xdc, 0xfe, 0xe9, 0x22, 0x18, 0xd1, 0x14, 0xd1, 0x6f, 0x58, - 0xb0, 0x10, 0x72, 0x2f, 0xd8, 0x66, 0xa5, 0x13, 0xba, 0x7e, 0xab, 0xde, 0xd8, 0x21, 0xcd, 0x8e, - 0xe7, 0xfa, 0xad, 0x6a, 0xcb, 0x0f, 0x54, 0xf1, 0xea, 0x03, 0xd2, 0xe8, 0xb0, 0x37, 0x97, 0x3e, - 0xa1, 0x1b, 0x95, 0x39, 0xd4, 0xb5, 0xa3, 0xc3, 0xf2, 0x02, 0x3e, 0x11, 0x6d, 0x7c, 0xc2, 0xbe, - 0xa0, 0xdf, 0xb5, 0x60, 0x91, 0x07, 0x19, 0x1c, 0xbc, 0xff, 0x3d, 0x6e, 0xa3, 0x35, 0x49, 0x2a, - 0x21, 0xb2, 0x49, 0xc2, 0xbd, 0xe5, 0xd7, 0xc5, 0x80, 0x2e, 0xd6, 0x4e, 0xd6, 0x16, 0x3e, 0x69, - 0xe7, 0xec, 0x7f, 0x5d, 0x84, 0x49, 0x3a, 0x8a, 0x49, 0x6c, 0x9a, 0xd7, 0x8c, 0x25, 0xf1, 0x74, - 0x6a, 0x49, 0xcc, 0x1a, 0xc8, 0xa7, 0x13, 0x96, 0x26, 0x82, 0x59, 0xcf, 0x89, 0xe2, 0x1b, 0xc4, - 0x09, 0xe3, 0x2d, 0xe2, 0x70, 0x33, 0xa1, 0xe2, 0x89, 0x4d, 0x9a, 0x94, 0xfa, 0xeb, 0x56, 0x9a, - 0x18, 0xee, 0xa6, 0x8f, 0xf6, 0x01, 0x31, 0x5b, 0xa7, 0xd0, 0xf1, 0x23, 0xfe, 0x2d, 0xae, 0x78, - 0x8f, 0x39, 0x59, 0xab, 0xf3, 0xa2, 0x55, 0x74, 0xab, 0x8b, 0x1a, 0xce, 0x68, 0x41, 0xb3, 0x61, - 0x1b, 0x1e, 0xd4, 0x86, 0x6d, 0xa4, 0x8f, 0x67, 0xd4, 0x1e, 0xcc, 0x88, 0x59, 0xd9, 0x76, 0x5b, - 0xe2, 0x90, 0xfe, 0x72, 0xca, 0xc6, 0xd5, 0x1a, 0xdc, 0x50, 0xa9, 0x8f, 0x81, 0xab, 0xfd, 0xdd, - 0x70, 0x8e, 0x36, 0x67, 0xfa, 0xf1, 0x44, 0x88, 0xc0, 0xf4, 0x6e, 0x67, 0x8b, 0x78, 0x24, 0x96, - 0x65, 0xa2, 0xd1, 0x4c, 0xb1, 0xdf, 0xac, 0x9d, 0xc8, 0x96, 0x37, 0x4d, 0x12, 0x38, 0x4d, 0xd3, - 0xfe, 0x59, 0x0b, 0x98, 0xb5, 0xfc, 0x19, 0x1c, 0x7f, 0x5f, 0x34, 0x8f, 0xbf, 0xb9, 0x3c, 0x0e, - 0x94, 0x73, 0xf2, 0xbd, 0xca, 0xa7, 0xa5, 0x16, 0x06, 0x0f, 0x0e, 0xa4, 0xec, 0xdf, 0x5f, 0xe2, - 0xfa, 0x9f, 0x16, 0xdf, 0x90, 0x2a, 0x28, 0x00, 0xfa, 0x1e, 0x18, 0x6b, 0x38, 0x6d, 0xa7, 0xc1, - 0xc3, 0xd8, 0xe6, 0x6a, 0x7f, 0x8c, 0x4a, 0x0b, 0x2b, 0xa2, 0x06, 0xd7, 0x66, 0x7c, 0x56, 0x7e, - 0xa5, 0x2c, 0xee, 0xab, 0xc1, 0x50, 0x4d, 0xce, 0xef, 0xc2, 0xa4, 0x41, 0xec, 0x91, 0x5e, 0x7d, - 0xbf, 0x87, 0x1f, 0x17, 0xea, 0xc6, 0xb2, 0x07, 0xb3, 0xbe, 0xf6, 0x9f, 0x32, 0x47, 0x29, 0x4e, - 0x7f, 0xba, 0xdf, 0x81, 0xc0, 0x38, 0xa9, 0xe6, 0x0d, 0x90, 0x22, 0x83, 0xbb, 0x29, 0xdb, 0x7f, - 0xcf, 0x82, 0xc7, 0x75, 0x44, 0x2d, 0x5e, 0x43, 0x3f, 0x7d, 0x72, 0x05, 0xc6, 0x82, 0x36, 0x09, - 0x9d, 0xe4, 0x4e, 0x76, 0x55, 0x0e, 0xfa, 0x6d, 0x51, 0x7e, 0x2c, 0xe2, 0x09, 0x4a, 0xea, 0xb2, - 0x1c, 0xab, 0x9a, 0xc8, 0x86, 0x11, 0x36, 0x18, 0x91, 0x88, 0xa5, 0xc1, 0xcc, 0x14, 0xd9, 0xd3, - 0x6a, 0x84, 0x05, 0xc4, 0xfe, 0x7e, 0x8b, 0x2f, 0x2c, 0xbd, 0xeb, 0xe8, 0x03, 0x98, 0xd9, 0xa3, - 0xd7, 0xb7, 0xd5, 0x07, 0xed, 0x90, 0xab, 0xd1, 0xe5, 0x38, 0xbd, 0xd0, 0x6f, 0x9c, 0xb4, 0x8f, - 0x4c, 0x8c, 0xd9, 0xd6, 0x53, 0xc4, 0x70, 0x17, 0x79, 0xfb, 0x2f, 0x0a, 0x7c, 0x27, 0x32, 0xa9, - 0xee, 0x39, 0x18, 0x6d, 0x07, 0xcd, 0x95, 0x6a, 0x05, 0x8b, 0x11, 0x52, 0xec, 0xaa, 0xc6, 0x8b, - 0xb1, 0x84, 0xa3, 0x6b, 0x00, 0xe4, 0x41, 0x4c, 0x42, 0xdf, 0xf1, 0x94, 0xe1, 0x87, 0x12, 0x9e, - 0x56, 0x15, 0x04, 0x6b, 0x58, 0xb4, 0x4e, 0x3b, 0x0c, 0xf6, 0xdd, 0x26, 0xf3, 0x36, 0x2c, 0x9a, - 0x75, 0x6a, 0x0a, 0x82, 0x35, 0x2c, 0x7a, 0x55, 0xee, 0xf8, 0x11, 0x3f, 0x00, 0x9d, 0x2d, 0x11, - 0x20, 0x6f, 0x2c, 0xb9, 0x2a, 0xdf, 0xd1, 0x81, 0xd8, 0xc4, 0x45, 0x4b, 0x30, 0x12, 0x3b, 0xcc, - 0x9c, 0x61, 0x38, 0xdf, 0x2c, 0x71, 0x93, 0x62, 0xe8, 0x71, 0x4d, 0x69, 0x05, 0x2c, 0x2a, 0xa2, - 0x77, 0x25, 0x0b, 0xe6, 0x2c, 0x59, 0xd8, 0x03, 0xe7, 0x2e, 0x5b, 0x9d, 0x7d, 0xeb, 0x3c, 0x58, - 0xd8, 0x19, 0x1b, 0xb4, 0xec, 0xef, 0x2b, 0x01, 0x24, 0xd2, 0x1e, 0xfa, 0xb0, 0x8b, 0x45, 0xbc, - 0xd8, 0x5b, 0x3e, 0x3c, 0x3d, 0xfe, 0x80, 0x7e, 0xc0, 0x82, 0x71, 0xc7, 0xf3, 0x82, 0x86, 0x13, - 0xb3, 0x51, 0x2e, 0xf4, 0x66, 0x51, 0xa2, 0xfd, 0xa5, 0xa4, 0x06, 0xef, 0xc2, 0x2b, 0xd2, 0x52, - 0x41, 0x83, 0xf4, 0xed, 0x85, 0xde, 0x30, 0xfa, 0xac, 0xbc, 0x04, 0xf0, 0xe5, 0x31, 0x9f, 0xbe, - 0x04, 0x94, 0x18, 0x37, 0xd6, 0xe4, 0x7f, 0x74, 0xc7, 0x88, 0x24, 0x37, 0x94, 0x1f, 0x92, 0xc2, - 0x10, 0x7a, 0xfa, 0x05, 0x91, 0x43, 0x35, 0xdd, 0x2f, 0x6a, 0x38, 0x3f, 0x6e, 0x8b, 0x26, 0x5d, - 0xf7, 0xf1, 0x89, 0x7a, 0x1f, 0xa6, 0x9b, 0xe6, 0x71, 0x2b, 0x56, 0xd3, 0xb3, 0x79, 0x74, 0x53, - 0xa7, 0x73, 0x72, 0xc0, 0xa6, 0x00, 0x38, 0x4d, 0x18, 0xd5, 0xb8, 0x87, 0x5a, 0xd5, 0xdf, 0x0e, - 0x84, 0x5d, 0xb9, 0x9d, 0x3b, 0x97, 0x07, 0x51, 0x4c, 0xf6, 0x28, 0x66, 0x72, 0x8e, 0x6e, 0x88, - 0xba, 0x58, 0x51, 0x41, 0x6f, 0xc3, 0x08, 0x73, 0x1b, 0x8e, 0xe6, 0xc6, 0xf2, 0xf5, 0x80, 0x66, - 0xc4, 0x8b, 0x64, 0x53, 0xb1, 0xbf, 0x11, 0x16, 0x14, 0xd0, 0x0d, 0x19, 0x16, 0x27, 0xaa, 0xfa, - 0x77, 0x22, 0xc2, 0xc2, 0xe2, 0x94, 0x96, 0x3f, 0x9d, 0x44, 0xbc, 0xe1, 0xe5, 0x99, 0x11, 0xcc, - 0x8d, 0x9a, 0x54, 0x5e, 0x11, 0xff, 0x65, 0x60, 0xf4, 0x39, 0xc8, 0xef, 0x9e, 0x19, 0x3c, 0x3d, - 0x19, 0xce, 0xbb, 0x26, 0x09, 0x9c, 0xa6, 0x79, 0xa6, 0xc7, 0xe7, 0xbc, 0x0f, 0x33, 0xe9, 0x8d, - 0xf5, 0x48, 0x8f, 0xeb, 0x3f, 0x19, 0x82, 0x29, 0x73, 0x21, 0xa0, 0x45, 0x28, 0x09, 0x22, 0x2a, - 0x88, 0xa7, 0x5a, 0xdb, 0xeb, 0x12, 0x80, 0x13, 0x1c, 0x16, 0xc4, 0x94, 0x55, 0xd7, 0xec, 0x00, - 0x93, 0x20, 0xa6, 0x0a, 0x82, 0x35, 0x2c, 0x2a, 0x44, 0x6f, 0x05, 0x41, 0xac, 0x8e, 0x02, 0xb5, - 0x5a, 0x96, 0x59, 0x29, 0x16, 0x50, 0x7a, 0x04, 0xec, 0x92, 0xd0, 0x27, 0x9e, 0xa9, 0xc9, 0x54, - 0x47, 0xc0, 0x4d, 0x1d, 0x88, 0x4d, 0x5c, 0x7a, 0xa4, 0x05, 0x11, 0x5b, 0x7e, 0x42, 0x54, 0x4f, - 0xec, 0x2a, 0xeb, 0xdc, 0x6d, 0x5e, 0xc2, 0xd1, 0x97, 0xe1, 0x71, 0xe5, 0xe5, 0x8e, 0xb9, 0x66, - 0x58, 0xb6, 0x38, 0x62, 0xdc, 0xac, 0x1f, 0x5f, 0xc9, 0x46, 0xc3, 0x79, 0xf5, 0xd1, 0x5b, 0x30, - 0x25, 0x44, 0x60, 0x49, 0x71, 0xd4, 0x34, 0x56, 0xb8, 0x69, 0x40, 0x71, 0x0a, 0x1b, 0x55, 0x60, - 0x86, 0x96, 0x30, 0x29, 0x54, 0x52, 0xe0, 0xde, 0xfa, 0xea, 0xac, 0xbf, 0x99, 0x82, 0xe3, 0xae, - 0x1a, 0x68, 0x09, 0xa6, 0xb9, 0x8c, 0x42, 0xef, 0x94, 0x6c, 0x1e, 0x84, 0xbb, 0x87, 0xda, 0x08, - 0xb7, 0x4d, 0x30, 0x4e, 0xe3, 0xa3, 0x37, 0x60, 0xc2, 0x09, 0x1b, 0x3b, 0x6e, 0x4c, 0x1a, 0x71, - 0x27, 0xe4, 0x7e, 0x20, 0x9a, 0xb5, 0xc7, 0x92, 0x06, 0xc3, 0x06, 0xa6, 0xfd, 0x21, 0x9c, 0xcb, - 0xf0, 0x14, 0xa3, 0x0b, 0xc7, 0x69, 0xbb, 0xf2, 0x9b, 0x52, 0x16, 0x92, 0x4b, 0xb5, 0xaa, 0xfc, - 0x1a, 0x0d, 0x8b, 0xae, 0x4e, 0xa6, 0x12, 0xd7, 0xb2, 0x17, 0xa8, 0xd5, 0xb9, 0x26, 0x01, 0x38, - 0xc1, 0xb1, 0x7f, 0x07, 0x40, 0x53, 0xe8, 0x0c, 0x60, 0x1f, 0xf7, 0x06, 0x4c, 0xc8, 0x94, 0x1b, - 0x5a, 0xa8, 0x77, 0xf5, 0x99, 0xd7, 0x35, 0x18, 0x36, 0x30, 0x69, 0xdf, 0x7c, 0x15, 0xa8, 0x3e, - 0x65, 0x8f, 0x99, 0x84, 0xa9, 0x4f, 0x70, 0xd0, 0x8b, 0x30, 0x16, 0x11, 0x6f, 0xfb, 0x96, 0xeb, - 0xef, 0x8a, 0x85, 0xad, 0xb8, 0x70, 0x5d, 0x94, 0x63, 0x85, 0x81, 0x96, 0xa1, 0xd8, 0x71, 0x9b, - 0x62, 0x29, 0xcb, 0x03, 0xbf, 0x78, 0xa7, 0x5a, 0x39, 0x3e, 0x2c, 0x3f, 0x9d, 0x97, 0x49, 0x84, - 0x5e, 0xed, 0xa3, 0x05, 0xba, 0xfd, 0x68, 0xe5, 0xac, 0xb7, 0x81, 0x91, 0x13, 0xbe, 0x0d, 0x5c, - 0x03, 0x10, 0x5f, 0x2d, 0xd7, 0x72, 0x31, 0x99, 0xb5, 0xeb, 0x0a, 0x82, 0x35, 0x2c, 0x14, 0xc1, - 0x6c, 0x23, 0x24, 0x8e, 0xbc, 0x43, 0x73, 0x9f, 0xa7, 0xb1, 0x87, 0x57, 0x10, 0xac, 0xa4, 0x89, - 0xe1, 0x6e, 0xfa, 0x28, 0x80, 0xd9, 0xa6, 0x08, 0xaa, 0x90, 0x34, 0x5a, 0x3a, 0xb9, 0xa3, 0x15, - 0x33, 0xc8, 0x49, 0x13, 0xc2, 0xdd, 0xb4, 0xd1, 0x57, 0x60, 0x5e, 0x16, 0x76, 0xc7, 0xb1, 0x60, - 0xdb, 0xa5, 0xc8, 0xe3, 0xaf, 0x57, 0x72, 0xb1, 0x70, 0x0f, 0x0a, 0x08, 0xc3, 0x08, 0x7b, 0x4b, - 0x8a, 0xe6, 0xc6, 0xd9, 0x39, 0xf7, 0x7c, 0xbe, 0x32, 0x80, 0xae, 0xf5, 0x05, 0xf6, 0x0e, 0x25, - 0x4c, 0xca, 0x93, 0x67, 0x39, 0x56, 0x88, 0x05, 0x25, 0xb4, 0x0d, 0xe3, 0x8e, 0xef, 0x07, 0xb1, - 0xc3, 0x45, 0xa8, 0x89, 0x7c, 0xd9, 0x4f, 0x23, 0xbc, 0x94, 0xd4, 0xe0, 0xd4, 0x95, 0x95, 0xaa, - 0x06, 0xc1, 0x3a, 0x61, 0x74, 0x1f, 0xa6, 0x83, 0xfb, 0x94, 0x39, 0x4a, 0x2d, 0x45, 0x34, 0x37, - 0xc9, 0xda, 0x7a, 0x75, 0x40, 0x3d, 0xad, 0x51, 0x59, 0xe3, 0x5a, 0x26, 0x51, 0x9c, 0x6e, 0x05, - 0x2d, 0x18, 0xda, 0xea, 0xa9, 0xc4, 0x9d, 0x25, 0xd1, 0x56, 0xeb, 0xca, 0x69, 0x16, 0x17, 0x85, - 0x9b, 0x48, 0xb3, 0xdd, 0x3f, 0x9d, 0x8a, 0x8b, 0x92, 0x80, 0xb0, 0x8e, 0x87, 0x76, 0x60, 0x22, - 0x79, 0xb2, 0x0a, 0x23, 0x16, 0x95, 0x6d, 0xfc, 0xda, 0xb5, 0xc1, 0x3e, 0xae, 0xaa, 0xd5, 0xe4, - 0x37, 0x07, 0xbd, 0x04, 0x1b, 0x94, 0xe7, 0xbf, 0x0d, 0xc6, 0xb5, 0x89, 0x3d, 0x51, 0x14, 0xdc, - 0xb7, 0x60, 0x26, 0x3d, 0x75, 0x27, 0xf2, 0x20, 0xf8, 0x1f, 0x05, 0x98, 0xce, 0x78, 0xb9, 0x62, - 0xd9, 0x48, 0x52, 0x0c, 0x35, 0x49, 0x3e, 0x62, 0xb2, 0xc5, 0xc2, 0x00, 0x6c, 0x51, 0xf2, 0xe8, - 0x62, 0x2e, 0x8f, 0x16, 0xac, 0x70, 0xe8, 0xa3, 0xb0, 0x42, 0xf3, 0xf4, 0x19, 0x1e, 0xe8, 0xf4, - 0x39, 0x05, 0xf6, 0x69, 0x1c, 0x60, 0xa3, 0x03, 0x1c, 0x60, 0x3f, 0x56, 0x80, 0x99, 0xb4, 0x85, - 0xef, 0x19, 0xbc, 0x77, 0xbc, 0x6d, 0xbc, 0x77, 0x64, 0xe7, 0xf6, 0x49, 0xdb, 0x1d, 0xe7, 0xbd, - 0x7d, 0xe0, 0xd4, 0xdb, 0xc7, 0xf3, 0x03, 0x51, 0xeb, 0xfd, 0x0e, 0xf2, 0xf7, 0x0b, 0x70, 0x21, - 0x5d, 0x65, 0xc5, 0x73, 0xdc, 0xbd, 0x33, 0x18, 0x9b, 0xdb, 0xc6, 0xd8, 0xbc, 0x34, 0xc8, 0xd7, - 0xb0, 0xae, 0xe5, 0x0e, 0xd0, 0xbd, 0xd4, 0x00, 0x2d, 0x0e, 0x4e, 0xb2, 0xf7, 0x28, 0x7d, 0xb3, - 0x08, 0x97, 0x32, 0xeb, 0x25, 0xcf, 0x05, 0x6b, 0xc6, 0x73, 0xc1, 0xb5, 0xd4, 0x73, 0x81, 0xdd, - 0xbb, 0xf6, 0xe9, 0xbc, 0x1f, 0x08, 0x77, 0x68, 0x16, 0x31, 0xf4, 0x21, 0xdf, 0x0e, 0x0c, 0x77, - 0x68, 0x45, 0x08, 0x9b, 0x74, 0xff, 0x26, 0xbd, 0x19, 0xfc, 0x8e, 0x05, 0x17, 0x33, 0xe7, 0xe6, - 0x0c, 0xf4, 0xea, 0x1b, 0xa6, 0x5e, 0xfd, 0xb9, 0x81, 0x57, 0x6b, 0x8e, 0xa2, 0xfd, 0x4f, 0x8b, - 0x39, 0xdf, 0xc2, 0x34, 0x93, 0xb7, 0x61, 0xdc, 0x69, 0x34, 0x48, 0x14, 0xad, 0x07, 0x4d, 0x15, - 0x41, 0xf3, 0x25, 0x26, 0x6d, 0x24, 0xc5, 0xc7, 0x87, 0xe5, 0xf9, 0x34, 0x89, 0x04, 0x8c, 0x75, - 0x0a, 0x66, 0xd0, 0xdf, 0xc2, 0xa9, 0x06, 0xfd, 0xbd, 0x06, 0xb0, 0xaf, 0xf4, 0x15, 0x69, 0x35, - 0xa7, 0xa6, 0xc9, 0xd0, 0xb0, 0xd0, 0x77, 0xb1, 0x5b, 0x00, 0x37, 0x06, 0xe2, 0x4b, 0xf1, 0x95, - 0x01, 0xe7, 0x4a, 0x37, 0x2c, 0xe2, 0x71, 0x37, 0x94, 0x4a, 0x58, 0x91, 0x44, 0xdf, 0x01, 0x33, - 0x11, 0x0f, 0xeb, 0xb4, 0xe2, 0x39, 0x11, 0x73, 0xe2, 0x12, 0xab, 0x90, 0x05, 0xd3, 0xa8, 0xa7, - 0x60, 0xb8, 0x0b, 0x1b, 0xad, 0xc9, 0x8f, 0x62, 0x31, 0xa8, 0xf8, 0xc2, 0xbc, 0x92, 0x7c, 0x90, - 0xc8, 0x85, 0x76, 0x3e, 0x3d, 0xfc, 0x6c, 0xe0, 0xb5, 0x9a, 0xf6, 0x8f, 0x0d, 0xc1, 0x13, 0x3d, - 0x98, 0x18, 0x5a, 0x32, 0x8d, 0x00, 0x5e, 0x48, 0xeb, 0xff, 0xe6, 0x33, 0x2b, 0x1b, 0x0a, 0xc1, - 0xd4, 0x5a, 0x29, 0x7c, 0xe4, 0xb5, 0xf2, 0xc3, 0x96, 0xa6, 0x99, 0xe5, 0xa6, 0xc2, 0x5f, 0x3c, - 0x21, 0x73, 0x3e, 0x45, 0x55, 0xed, 0x76, 0x86, 0xbe, 0xf3, 0xda, 0xc0, 0xdd, 0x19, 0x58, 0x01, - 0x7a, 0xb6, 0x4f, 0x46, 0x5f, 0xb3, 0xe0, 0xe9, 0xcc, 0xfe, 0x1a, 0x46, 0x4b, 0x8b, 0x50, 0x6a, - 0xd0, 0x42, 0xcd, 0x31, 0x34, 0xf1, 0x98, 0x97, 0x00, 0x9c, 0xe0, 0x18, 0xb6, 0x49, 0x85, 0xbe, - 0xb6, 0x49, 0xff, 0xca, 0x82, 0xae, 0x05, 0x7c, 0x06, 0x9c, 0xb4, 0x6a, 0x72, 0xd2, 0x4f, 0x0f, - 0x32, 0x97, 0x39, 0x4c, 0xf4, 0x0f, 0xa7, 0xe1, 0xb1, 0x1c, 0x4f, 0xb0, 0x7d, 0x98, 0x6d, 0x35, - 0x88, 0xe9, 0x72, 0x2b, 0x3e, 0x26, 0xd3, 0x3b, 0xb9, 0xa7, 0x7f, 0x2e, 0xbf, 0x10, 0x77, 0xa1, - 0xe0, 0xee, 0x26, 0xd0, 0xd7, 0x2c, 0x38, 0xef, 0xdc, 0x8f, 0xba, 0x52, 0x95, 0x8a, 0x35, 0xf3, - 0x6a, 0xa6, 0x9e, 0xb6, 0x4f, 0x6a, 0x53, 0x9e, 0xd5, 0x2b, 0x0b, 0x0b, 0x67, 0xb6, 0x85, 0xb0, - 0x08, 0x7a, 0x4c, 0xe5, 0xed, 0x1e, 0x4e, 0xe1, 0x59, 0x2e, 0x7b, 0x9c, 0xa7, 0x4a, 0x08, 0x56, - 0x74, 0xd0, 0x5d, 0x28, 0xb5, 0xa4, 0x1f, 0xad, 0xe0, 0xd9, 0x99, 0x87, 0x60, 0xa6, 0xb3, 0x2d, - 0xf7, 0x1d, 0x51, 0x20, 0x9c, 0x90, 0x42, 0x6f, 0x41, 0xd1, 0xdf, 0x8e, 0x7a, 0xa5, 0xc3, 0x4a, - 0xd9, 0xf2, 0xf1, 0x80, 0x0b, 0x1b, 0x6b, 0x75, 0x4c, 0x2b, 0xa2, 0x1b, 0x50, 0x0c, 0xb7, 0x9a, - 0xe2, 0x69, 0x21, 0x53, 0x2e, 0xc5, 0xcb, 0x95, 0xec, 0x45, 0xc2, 0x29, 0xe1, 0xe5, 0x0a, 0xa6, - 0x24, 0x50, 0x0d, 0x86, 0x99, 0xd3, 0x94, 0x78, 0x41, 0xc8, 0x14, 0x48, 0x7b, 0x38, 0x1f, 0xf2, - 0xa8, 0x0c, 0x0c, 0x01, 0x73, 0x42, 0xe8, 0x6d, 0x18, 0x69, 0xb0, 0x8c, 0x51, 0x42, 0xf1, 0x93, - 0x1d, 0xae, 0xab, 0x2b, 0xa7, 0x14, 0x7f, 0x41, 0xe5, 0xe5, 0x58, 0x50, 0x40, 0x9b, 0x30, 0xd2, - 0x20, 0xed, 0x9d, 0xed, 0x48, 0xe8, 0x73, 0x3e, 0x9b, 0x49, 0xab, 0x47, 0x82, 0x34, 0x41, 0x95, - 0x61, 0x60, 0x41, 0x0b, 0x7d, 0x1e, 0x0a, 0xdb, 0x0d, 0xe1, 0x49, 0x95, 0xf9, 0x86, 0x60, 0x46, - 0xca, 0x58, 0x1e, 0x39, 0x3a, 0x2c, 0x17, 0xd6, 0x56, 0x70, 0x61, 0xbb, 0x81, 0x36, 0x60, 0x74, - 0x9b, 0xfb, 0xd6, 0x8b, 0x00, 0x36, 0xcf, 0x66, 0xbb, 0xfd, 0x77, 0xb9, 0xdf, 0x73, 0x0f, 0x20, - 0x01, 0xc0, 0x92, 0x08, 0x8b, 0x17, 0xac, 0x62, 0x04, 0x88, 0xc0, 0xf9, 0x0b, 0x27, 0x8b, 0xeb, - 0x20, 0xd4, 0x1c, 0x8a, 0x0a, 0xd6, 0x28, 0xa2, 0xaf, 0x42, 0xc9, 0x91, 0xa9, 0x31, 0x45, 0x10, - 0x9c, 0x57, 0x32, 0xb7, 0x63, 0xef, 0xac, 0xa1, 0x7c, 0x2d, 0x2b, 0x24, 0x9c, 0x10, 0x45, 0xbb, - 0x30, 0xb9, 0x1f, 0xb5, 0x77, 0x88, 0xdc, 0xbe, 0x2c, 0x26, 0x4e, 0xce, 0x71, 0x75, 0x57, 0x20, - 0xba, 0x61, 0xdc, 0x71, 0xbc, 0x2e, 0x8e, 0xc3, 0x1c, 0xc7, 0xee, 0xea, 0xc4, 0xb0, 0x49, 0x9b, - 0x0e, 0xff, 0x07, 0x9d, 0x60, 0xeb, 0x20, 0x26, 0x22, 0xd2, 0x7e, 0xe6, 0xf0, 0xbf, 0xc3, 0x51, - 0xba, 0x87, 0x5f, 0x00, 0xb0, 0x24, 0x42, 0x37, 0xb8, 0x23, 0xd3, 0xce, 0x0a, 0x5d, 0xce, 0x73, - 0xb9, 0xc3, 0xd3, 0xd5, 0xdf, 0x64, 0x50, 0x18, 0x67, 0x4c, 0x48, 0x31, 0x8e, 0xd8, 0xde, 0x09, - 0xe2, 0xc0, 0x4f, 0x71, 0xe3, 0xd9, 0x7c, 0x8e, 0x58, 0xcb, 0xc0, 0xef, 0xe6, 0x88, 0x59, 0x58, - 0x38, 0xb3, 0x2d, 0xd4, 0x84, 0xa9, 0x76, 0x10, 0xc6, 0xf7, 0x83, 0x50, 0xae, 0x2f, 0xd4, 0xe3, - 0x92, 0x6f, 0x60, 0x8a, 0x16, 0x99, 0x1d, 0xb8, 0x09, 0xc1, 0x29, 0x9a, 0xe8, 0x4b, 0x30, 0x1a, - 0x35, 0x1c, 0x8f, 0x54, 0x6f, 0xcf, 0x9d, 0xcb, 0x3f, 0x6a, 0xea, 0x1c, 0x25, 0x67, 0x75, 0xb1, - 0xc9, 0x11, 0x28, 0x58, 0x92, 0x43, 0x6b, 0x30, 0xcc, 0xd2, 0xb7, 0xb0, 0x24, 0x01, 0x39, 0xc1, - 0xd6, 0xba, 0x6c, 0xa5, 0x39, 0x47, 0x62, 0xc5, 0x98, 0x57, 0xa7, 0x7b, 0x40, 0xc8, 0xba, 0x41, - 0x34, 0x77, 0x21, 0x7f, 0x0f, 0x08, 0x11, 0xf9, 0x76, 0xbd, 0xd7, 0x1e, 0x50, 0x48, 0x38, 0x21, - 0x4a, 0xf9, 0x31, 0xe5, 0xa1, 0x8f, 0xe5, 0xf3, 0xe3, 0x7c, 0x0e, 0xca, 0xf8, 0x31, 0xe5, 0x9f, - 0x94, 0x84, 0xfd, 0x47, 0xa3, 0xdd, 0xf2, 0x09, 0xbb, 0x1d, 0x7d, 0x9f, 0xd5, 0x65, 0x3a, 0xf0, - 0xb9, 0x41, 0x95, 0x35, 0xa7, 0x28, 0x99, 0x7e, 0xcd, 0x82, 0xc7, 0xda, 0x99, 0x1f, 0x22, 0x0e, - 0xfb, 0xc1, 0x74, 0x3e, 0xfc, 0xd3, 0x55, 0x22, 0x8f, 0x6c, 0x38, 0xce, 0x69, 0x29, 0x2d, 0xfd, - 0x17, 0x3f, 0xb2, 0xf4, 0xbf, 0x0e, 0x63, 0x4c, 0xa0, 0x4c, 0x22, 0xfb, 0x0d, 0x64, 0x80, 0xc7, - 0xc4, 0x86, 0x15, 0x51, 0x11, 0x2b, 0x12, 0xe8, 0x47, 0x2c, 0x78, 0x2a, 0xdd, 0x75, 0x4c, 0x18, - 0x58, 0x44, 0x89, 0xe6, 0x17, 0xb3, 0x35, 0xf1, 0xfd, 0x4f, 0xd5, 0x7a, 0x21, 0x1f, 0xf7, 0x43, - 0xc0, 0xbd, 0x1b, 0x43, 0x95, 0x8c, 0x9b, 0xe1, 0x88, 0xf9, 0xb2, 0x38, 0xc0, 0xed, 0xf0, 0x55, - 0x98, 0xd8, 0x0b, 0x3a, 0xbe, 0xf4, 0x8e, 0x11, 0xbe, 0xcf, 0x4c, 0x8b, 0xbd, 0xae, 0x95, 0x63, - 0x03, 0x2b, 0x75, 0xa7, 0x1c, 0x7b, 0xd8, 0x3b, 0x25, 0x7a, 0x2f, 0x95, 0x26, 0xbe, 0x94, 0x2f, - 0x5b, 0x88, 0xeb, 0xf7, 0x09, 0x92, 0xc5, 0x9f, 0xed, 0x3d, 0xe8, 0x1b, 0x56, 0x86, 0x00, 0xcf, - 0x6f, 0xc6, 0x5f, 0x30, 0x6f, 0xc6, 0x57, 0xd2, 0x37, 0xe3, 0x2e, 0x4d, 0xa8, 0x71, 0x29, 0x1e, - 0x3c, 0x46, 0xff, 0xa0, 0x01, 0x1a, 0x6d, 0x0f, 0x2e, 0xf7, 0x3b, 0x96, 0x98, 0xa9, 0x64, 0x53, - 0xd9, 0x10, 0x24, 0xa6, 0x92, 0xcd, 0x6a, 0x05, 0x33, 0xc8, 0xa0, 0x11, 0x7c, 0xec, 0xff, 0x6a, - 0x41, 0xb1, 0x16, 0x34, 0xcf, 0x40, 0xb3, 0xfb, 0x45, 0x43, 0xb3, 0xfb, 0x44, 0x4e, 0xfa, 0xfe, - 0x5c, 0x3d, 0xee, 0x6a, 0x4a, 0x8f, 0xfb, 0x54, 0x1e, 0x81, 0xde, 0x5a, 0xdb, 0x9f, 0x29, 0xc2, - 0x78, 0x2d, 0x68, 0x2a, 0x9b, 0xfb, 0x7f, 0xf3, 0x30, 0x36, 0xf7, 0xb9, 0xf1, 0x96, 0x35, 0xca, - 0xcc, 0xc2, 0x52, 0xba, 0xf3, 0xfe, 0x35, 0x33, 0xbd, 0xbf, 0x47, 0xdc, 0xd6, 0x4e, 0x4c, 0x9a, - 0xe9, 0xcf, 0x39, 0x3b, 0xd3, 0xfb, 0xff, 0x6c, 0xc1, 0x74, 0xaa, 0x75, 0xe4, 0x65, 0xf9, 0x06, - 0x3e, 0xa4, 0x46, 0x6f, 0xb6, 0xaf, 0x33, 0xe1, 0x02, 0x80, 0x7a, 0x36, 0x93, 0xda, 0x2e, 0x26, - 0xf5, 0xab, 0x77, 0xb5, 0x08, 0x6b, 0x18, 0xe8, 0x35, 0x18, 0x8f, 0x83, 0x76, 0xe0, 0x05, 0xad, - 0x83, 0x9b, 0x44, 0xc6, 0x8c, 0x52, 0x8f, 0x9b, 0x9b, 0x09, 0x08, 0xeb, 0x78, 0xf6, 0xcf, 0x15, - 0xf9, 0x87, 0xfa, 0xb1, 0xfb, 0xad, 0x35, 0xf9, 0xc9, 0x5e, 0x93, 0xdf, 0xb4, 0x60, 0x86, 0xb6, - 0xce, 0xac, 0xd7, 0xe4, 0x61, 0xab, 0x72, 0x85, 0x59, 0x3d, 0x72, 0x85, 0x5d, 0xa1, 0xbc, 0xab, - 0x19, 0x74, 0x62, 0xa1, 0x2d, 0xd3, 0x98, 0x13, 0x2d, 0xc5, 0x02, 0x2a, 0xf0, 0x48, 0x18, 0x0a, - 0x8f, 0x3f, 0x1d, 0x8f, 0x84, 0x21, 0x16, 0x50, 0x99, 0x4a, 0x6c, 0x28, 0x27, 0x95, 0x18, 0x8b, - 0x80, 0x29, 0x2c, 0xa6, 0x84, 0xd8, 0xa3, 0x45, 0xc0, 0x94, 0xa6, 0x54, 0x09, 0x8e, 0xfd, 0x8b, - 0x45, 0x98, 0xa8, 0x05, 0xcd, 0xe4, 0xe1, 0xea, 0x55, 0xe3, 0xe1, 0xea, 0x72, 0xea, 0xe1, 0x6a, - 0x46, 0xc7, 0xfd, 0xd6, 0x33, 0xd5, 0xc7, 0xf5, 0x4c, 0xf5, 0x2f, 0x2d, 0x36, 0x6b, 0x95, 0x8d, - 0xba, 0x48, 0xc6, 0xfd, 0x32, 0x8c, 0x33, 0x86, 0xc4, 0x5c, 0x4c, 0xe5, 0x6b, 0x0e, 0xcb, 0x68, - 0xb1, 0x91, 0x14, 0x63, 0x1d, 0x07, 0x5d, 0x85, 0xb1, 0x88, 0x38, 0x61, 0x63, 0x47, 0xf1, 0x38, - 0xf1, 0xd6, 0xc1, 0xcb, 0xb0, 0x82, 0xa2, 0x77, 0x92, 0xe0, 0x8b, 0xc5, 0xfc, 0xb4, 0xd2, 0x7a, - 0x7f, 0xf8, 0x16, 0xc9, 0x8f, 0xb8, 0x68, 0xdf, 0x03, 0xd4, 0x8d, 0x3f, 0x80, 0x19, 0x59, 0xd9, - 0x0c, 0xb3, 0x56, 0xea, 0x0a, 0xb1, 0xf6, 0x97, 0x16, 0x4c, 0xd5, 0x82, 0x26, 0xdd, 0xba, 0x7f, - 0x93, 0xf6, 0xa9, 0x1e, 0x79, 0x76, 0xa4, 0x47, 0xe4, 0xd9, 0x7f, 0x60, 0xc1, 0x68, 0x2d, 0x68, - 0x9e, 0x81, 0x8e, 0xfd, 0x0b, 0xa6, 0x8e, 0xfd, 0xf1, 0x9c, 0x25, 0x91, 0xa3, 0x56, 0xff, 0xe5, - 0x22, 0x4c, 0xd2, 0x7e, 0x06, 0x2d, 0x39, 0x4b, 0xc6, 0x88, 0x58, 0x03, 0x8c, 0x08, 0x15, 0x73, - 0x03, 0xcf, 0x0b, 0xee, 0xa7, 0x67, 0x6c, 0x8d, 0x95, 0x62, 0x01, 0x45, 0x2f, 0xc2, 0x58, 0x3b, - 0x24, 0xfb, 0x6e, 0xd0, 0x89, 0xd2, 0xde, 0xd4, 0x35, 0x51, 0x8e, 0x15, 0x06, 0xbd, 0x77, 0x45, - 0xae, 0xdf, 0x20, 0xd2, 0xbe, 0x6c, 0x88, 0xd9, 0x97, 0xf1, 0x90, 0xf2, 0x5a, 0x39, 0x36, 0xb0, - 0xd0, 0x3d, 0x28, 0xb1, 0xff, 0x8c, 0xa3, 0x9c, 0x3c, 0xc9, 0x99, 0xc8, 0xe3, 0x22, 0x08, 0xe0, - 0x84, 0x16, 0xba, 0x06, 0x10, 0x4b, 0x4b, 0xb8, 0x48, 0x38, 0xfb, 0x2b, 0x59, 0x5b, 0xd9, 0xc8, - 0x45, 0x58, 0xc3, 0x42, 0x2f, 0x40, 0x29, 0x76, 0x5c, 0xef, 0x96, 0xeb, 0x93, 0x48, 0x58, 0x12, - 0x8a, 0x34, 0x2d, 0xa2, 0x10, 0x27, 0x70, 0x2a, 0xeb, 0xb0, 0x50, 0x12, 0x3c, 0x45, 0xe2, 0x18, - 0xc3, 0x66, 0xb2, 0xce, 0x2d, 0x55, 0x8a, 0x35, 0x0c, 0xfb, 0x0d, 0xb8, 0x50, 0x0b, 0x9a, 0xb5, - 0x20, 0x8c, 0xd7, 0x82, 0xf0, 0xbe, 0x13, 0x36, 0xe5, 0xfc, 0x95, 0x65, 0xc6, 0x10, 0xca, 0x7b, - 0x86, 0xf9, 0xce, 0x34, 0x72, 0x81, 0xbc, 0xc2, 0xa4, 0x9d, 0x13, 0xba, 0x7d, 0xfd, 0xbb, 0x02, - 0x63, 0x14, 0xa9, 0xbc, 0x9d, 0xe8, 0x2b, 0x30, 0x15, 0x91, 0x5b, 0xae, 0xdf, 0x79, 0x20, 0xef, - 0xc7, 0x3d, 0x7c, 0xea, 0xea, 0xab, 0x3a, 0x26, 0xd7, 0xb2, 0x99, 0x65, 0x38, 0x45, 0x8d, 0x0e, - 0x61, 0xd8, 0xf1, 0x97, 0xa2, 0x3b, 0x11, 0x09, 0x45, 0xde, 0x48, 0x36, 0x84, 0x58, 0x16, 0xe2, - 0x04, 0x4e, 0x97, 0x0c, 0xfb, 0xb3, 0x11, 0xf8, 0x38, 0x08, 0x62, 0xb9, 0xc8, 0x58, 0xe6, 0x31, - 0xad, 0x1c, 0x1b, 0x58, 0x68, 0x0d, 0x50, 0xd4, 0x69, 0xb7, 0x3d, 0xf6, 0x00, 0xee, 0x78, 0xd7, - 0xc3, 0xa0, 0xd3, 0xe6, 0x8f, 0x8f, 0x22, 0x69, 0x57, 0xbd, 0x0b, 0x8a, 0x33, 0x6a, 0x50, 0xc6, - 0xb0, 0x1d, 0xb1, 0xdf, 0x22, 0x9a, 0x04, 0xd7, 0x7c, 0xd7, 0x59, 0x11, 0x96, 0x30, 0xfb, 0x7b, - 0xd8, 0x81, 0xc1, 0xd2, 0xfd, 0xc5, 0x9d, 0x90, 0xa0, 0x3d, 0x98, 0x6c, 0xb3, 0xa3, 0x5c, 0x04, - 0x4e, 0x17, 0x03, 0xf8, 0x70, 0x76, 0x83, 0x3c, 0xfd, 0x97, 0x4e, 0x0e, 0x9b, 0xd4, 0xed, 0x9f, - 0x99, 0x61, 0x7c, 0xa9, 0xce, 0xaf, 0x73, 0xa3, 0xc2, 0x1b, 0x40, 0xc8, 0xae, 0xf3, 0xf9, 0x7a, - 0x85, 0xe4, 0x08, 0x11, 0x1e, 0x05, 0x58, 0xd6, 0x45, 0xef, 0xb0, 0x57, 0x5b, 0xce, 0x0c, 0xfa, - 0xe5, 0x0d, 0xe7, 0x58, 0xc6, 0x03, 0xad, 0xa8, 0x88, 0x35, 0x22, 0xe8, 0x16, 0x4c, 0x8a, 0xec, - 0x70, 0x42, 0x71, 0x54, 0x34, 0x14, 0x03, 0x93, 0x58, 0x07, 0x1e, 0xa7, 0x0b, 0xb0, 0x59, 0x19, - 0xb5, 0xe0, 0x29, 0x2d, 0x55, 0x6a, 0x86, 0xed, 0x2a, 0xe7, 0x2d, 0x4f, 0x1f, 0x1d, 0x96, 0x9f, - 0xda, 0xec, 0x85, 0x88, 0x7b, 0xd3, 0x41, 0xb7, 0xe1, 0x82, 0xd3, 0x88, 0xdd, 0x7d, 0x52, 0x21, - 0x4e, 0xd3, 0x73, 0x7d, 0x62, 0x86, 0x17, 0xb9, 0x78, 0x74, 0x58, 0xbe, 0xb0, 0x94, 0x85, 0x80, - 0xb3, 0xeb, 0xa1, 0x2f, 0x40, 0xa9, 0xe9, 0x47, 0x62, 0x0c, 0x46, 0x8c, 0x2c, 0xc0, 0xa5, 0xca, - 0x46, 0x5d, 0x7d, 0x7f, 0xf2, 0x07, 0x27, 0x15, 0x50, 0x8b, 0x2b, 0x8f, 0xd4, 0x5d, 0x6d, 0xb4, - 0x2b, 0x66, 0x4c, 0xfa, 0xd6, 0x6f, 0xf8, 0xdd, 0x71, 0xad, 0xa9, 0xb2, 0x0c, 0x37, 0x5c, 0xf2, - 0x0c, 0xc2, 0xe8, 0x6d, 0x40, 0x54, 0x98, 0x71, 0x1b, 0x64, 0xa9, 0xc1, 0xe2, 0xd7, 0x33, 0x5d, - 0xdb, 0x98, 0xe1, 0xe6, 0x84, 0xea, 0x5d, 0x18, 0x38, 0xa3, 0x16, 0xba, 0x41, 0x39, 0x8a, 0x5e, - 0x2a, 0x0c, 0xf9, 0xa5, 0x00, 0x3c, 0x57, 0x21, 0xed, 0x90, 0x34, 0x9c, 0x98, 0x34, 0x4d, 0x8a, - 0x38, 0x55, 0x8f, 0x9e, 0x37, 0x2a, 0x95, 0x15, 0x98, 0xe6, 0xe7, 0xdd, 0xe9, 0xac, 0xe8, 0xdd, - 0x71, 0x27, 0x88, 0xe2, 0x0d, 0x12, 0xdf, 0x0f, 0xc2, 0x5d, 0x11, 0x13, 0x30, 0x09, 0x4f, 0x9b, - 0x80, 0xb0, 0x8e, 0x47, 0x65, 0x45, 0xf6, 0x6c, 0x5a, 0xad, 0xb0, 0x57, 0xac, 0xb1, 0x64, 0x9f, - 0xdc, 0xe0, 0xc5, 0x58, 0xc2, 0x25, 0x6a, 0xb5, 0xb6, 0xc2, 0x5e, 0xa4, 0x52, 0xa8, 0xd5, 0xda, - 0x0a, 0x96, 0x70, 0x44, 0xba, 0x33, 0x2c, 0x4f, 0xe5, 0x6b, 0xfe, 0xba, 0xf9, 0xf2, 0x80, 0x49, - 0x96, 0x7d, 0x98, 0x51, 0xb9, 0x9d, 0x79, 0xb0, 0xc4, 0x68, 0x6e, 0x9a, 0x2d, 0x92, 0xc1, 0x23, - 0x2d, 0x2a, 0x5d, 0x6a, 0x35, 0x45, 0x09, 0x77, 0xd1, 0x36, 0xc2, 0xd6, 0xcc, 0xf4, 0x4d, 0x45, - 0xb6, 0x08, 0xa5, 0xa8, 0xb3, 0xd5, 0x0c, 0xf6, 0x1c, 0xd7, 0x67, 0x0f, 0x48, 0x9a, 0x20, 0x52, - 0x97, 0x00, 0x9c, 0xe0, 0xa0, 0x35, 0x18, 0x73, 0xa4, 0xa2, 0x14, 0xe5, 0xc7, 0xb1, 0x50, 0xea, - 0x51, 0x26, 0x66, 0x2b, 0xd5, 0xa8, 0xaa, 0x8b, 0xde, 0x84, 0x49, 0xe1, 0x6a, 0x29, 0xac, 0xa4, - 0xcf, 0x99, 0x5e, 0x39, 0x75, 0x1d, 0x88, 0x4d, 0x5c, 0xf4, 0x5d, 0x30, 0x45, 0xa9, 0x24, 0x8c, - 0x6d, 0xee, 0xfc, 0x20, 0x1c, 0x51, 0x4b, 0x31, 0xa3, 0x57, 0xc6, 0x29, 0x62, 0xa8, 0x09, 0x4f, - 0x3a, 0x9d, 0x38, 0x60, 0xca, 0x66, 0x73, 0xfd, 0x6f, 0x06, 0xbb, 0xc4, 0x67, 0xef, 0x3c, 0x63, - 0xcb, 0x97, 0x8f, 0x0e, 0xcb, 0x4f, 0x2e, 0xf5, 0xc0, 0xc3, 0x3d, 0xa9, 0xa0, 0x3b, 0x30, 0x1e, - 0x07, 0x9e, 0x70, 0x6f, 0x88, 0xe6, 0x1e, 0xcb, 0x0f, 0xbb, 0xb5, 0xa9, 0xd0, 0x74, 0x45, 0x8b, - 0xaa, 0x8a, 0x75, 0x3a, 0x68, 0x93, 0xef, 0x31, 0x16, 0x90, 0x98, 0x44, 0x73, 0x8f, 0xe7, 0x0f, - 0x8c, 0x8a, 0x5b, 0x6c, 0x6e, 0x41, 0x51, 0x13, 0xeb, 0x64, 0xd0, 0x75, 0x98, 0x6d, 0x87, 0x6e, - 0xc0, 0x16, 0xb6, 0x52, 0xf4, 0xcf, 0x99, 0x59, 0x45, 0x6a, 0x69, 0x04, 0xdc, 0x5d, 0x87, 0x5e, - 0xc4, 0x64, 0xe1, 0xdc, 0x45, 0x9e, 0xa2, 0x8e, 0x0b, 0xa7, 0xbc, 0x0c, 0x2b, 0x28, 0x5a, 0x67, - 0x7c, 0x99, 0x5f, 0x99, 0xe6, 0xe6, 0xf3, 0xe3, 0x7f, 0xe8, 0x57, 0x2b, 0x2e, 0xb8, 0xa8, 0xbf, - 0x38, 0xa1, 0x40, 0xcf, 0x8d, 0x68, 0xc7, 0x09, 0x49, 0x2d, 0x0c, 0x1a, 0x84, 0x77, 0x86, 0x9b, - 0x93, 0x3f, 0xc1, 0xe3, 0xa6, 0xd2, 0x73, 0xa3, 0x9e, 0x85, 0x80, 0xb3, 0xeb, 0xcd, 0x7f, 0x3b, - 0xcc, 0x76, 0x71, 0xf2, 0x13, 0x99, 0xc2, 0xff, 0xc5, 0x30, 0x94, 0x94, 0x22, 0x17, 0x2d, 0x9a, - 0xfa, 0xf9, 0x8b, 0x69, 0xfd, 0xfc, 0x18, 0x95, 0x27, 0x75, 0x95, 0xfc, 0xa6, 0x61, 0xc8, 0x55, - 0xc8, 0x4f, 0x5d, 0xa7, 0x6b, 0x31, 0xfa, 0xfa, 0xad, 0x6a, 0xf7, 0xf2, 0xe2, 0xc0, 0x8a, 0xfe, - 0xa1, 0x9e, 0x57, 0xfd, 0x01, 0xb3, 0x71, 0xd3, 0xab, 0x6b, 0x3b, 0x68, 0x56, 0x6b, 0xe9, 0xf4, - 0xb4, 0x35, 0x5a, 0x88, 0x39, 0x8c, 0x5d, 0x3e, 0xa8, 0xd8, 0xc1, 0x2e, 0x1f, 0xa3, 0x0f, 0x79, - 0xf9, 0x90, 0x04, 0x70, 0x42, 0x0b, 0x79, 0x30, 0xdb, 0x30, 0x33, 0x0b, 0x2b, 0x5f, 0xd5, 0x67, - 0xfa, 0xe6, 0xf8, 0xed, 0x68, 0x29, 0x07, 0x57, 0xd2, 0x54, 0x70, 0x37, 0x61, 0xf4, 0x26, 0x8c, - 0x7d, 0x10, 0x44, 0x6c, 0x5b, 0x88, 0xb3, 0x57, 0x7a, 0x07, 0x8e, 0xbd, 0x73, 0xbb, 0xce, 0xca, - 0x8f, 0x0f, 0xcb, 0xe3, 0xb5, 0xa0, 0x29, 0xff, 0x62, 0x55, 0x01, 0x3d, 0x80, 0x0b, 0x06, 0xc7, - 0x52, 0xdd, 0x85, 0xc1, 0xbb, 0xfb, 0x94, 0x68, 0xee, 0x42, 0x35, 0x8b, 0x12, 0xce, 0x6e, 0x80, - 0xb2, 0x01, 0x3f, 0x10, 0x59, 0xb9, 0xe5, 0xf9, 0xce, 0x8e, 0xf1, 0x92, 0x1e, 0x64, 0x21, 0x85, - 0x80, 0xbb, 0xeb, 0xd8, 0xbf, 0xc6, 0xf5, 0xde, 0x42, 0x3b, 0x46, 0xa2, 0x8e, 0x77, 0x16, 0x09, - 0xca, 0x56, 0x0d, 0xc5, 0xdd, 0x43, 0xbf, 0xad, 0xfc, 0x96, 0xc5, 0xde, 0x56, 0x36, 0xc9, 0x5e, - 0xdb, 0x73, 0xe2, 0xb3, 0xf0, 0xa4, 0x78, 0x07, 0xc6, 0x62, 0xd1, 0x5a, 0xaf, 0x9c, 0x6a, 0x5a, - 0xa7, 0xd8, 0xfb, 0x92, 0x3a, 0xf9, 0x65, 0x29, 0x56, 0x64, 0xec, 0x7f, 0xc6, 0x67, 0x40, 0x42, - 0xce, 0x40, 0x89, 0x52, 0x31, 0x95, 0x28, 0xe5, 0x3e, 0x5f, 0x90, 0xa3, 0x4c, 0xf9, 0xa7, 0x66, - 0xbf, 0xd9, 0x25, 0xeb, 0x93, 0xfe, 0xa8, 0x67, 0xff, 0x84, 0x05, 0xe7, 0xb3, 0xac, 0x60, 0xa8, - 0xb4, 0xc6, 0xaf, 0x78, 0xea, 0x91, 0x53, 0x8d, 0xe0, 0x5d, 0x51, 0x8e, 0x15, 0xc6, 0xc0, 0xe9, - 0x4a, 0x4e, 0x16, 0x53, 0xef, 0x36, 0x98, 0xd9, 0xac, 0xd1, 0x5b, 0xdc, 0x35, 0xca, 0x52, 0xe9, - 0xa6, 0x4f, 0xe6, 0x16, 0x65, 0xff, 0x7c, 0x01, 0xce, 0xf3, 0x57, 0x8a, 0xa5, 0xfd, 0xc0, 0x6d, - 0xd6, 0x82, 0xa6, 0x70, 0x14, 0x7b, 0x17, 0x26, 0xda, 0xda, 0xbd, 0xbc, 0x57, 0x54, 0x2f, 0xfd, - 0xfe, 0x9e, 0xdc, 0x8f, 0xf4, 0x52, 0x6c, 0xd0, 0x42, 0x4d, 0x98, 0x20, 0xfb, 0x6e, 0x43, 0xa9, - 0xba, 0x0b, 0x27, 0x3e, 0x1b, 0x54, 0x2b, 0xab, 0x1a, 0x1d, 0x6c, 0x50, 0x7d, 0x04, 0xd9, 0x07, - 0xed, 0x9f, 0xb4, 0xe0, 0xf1, 0x9c, 0x18, 0x60, 0xb4, 0xb9, 0xfb, 0xec, 0x3d, 0x48, 0x24, 0x32, - 0x53, 0xcd, 0xf1, 0x57, 0x22, 0x2c, 0xa0, 0xe8, 0x4b, 0x00, 0xfc, 0x95, 0x87, 0x5e, 0x17, 0xc4, - 0xa7, 0x0f, 0x16, 0x1b, 0x47, 0x0b, 0xa0, 0x22, 0xeb, 0x63, 0x8d, 0x96, 0xfd, 0xb3, 0x45, 0x18, - 0x66, 0xaf, 0x0a, 0x68, 0x0d, 0x46, 0x77, 0x78, 0xc4, 0xf1, 0x41, 0x82, 0x9b, 0x27, 0xf7, 0x2e, - 0x5e, 0x80, 0x65, 0x65, 0xb4, 0x0e, 0xe7, 0x84, 0x33, 0x62, 0x85, 0x78, 0xce, 0x81, 0xbc, 0xbe, - 0xf3, 0xe4, 0x5f, 0x2a, 0xdd, 0x5d, 0xb5, 0x1b, 0x05, 0x67, 0xd5, 0x43, 0x6f, 0x75, 0xc5, 0x19, - 0xe5, 0xb1, 0xda, 0x95, 0xb0, 0xdf, 0x27, 0xd6, 0xe8, 0x9b, 0x30, 0xd9, 0xee, 0x52, 0x54, 0x0c, - 0x27, 0x17, 0x11, 0x53, 0x39, 0x61, 0xe2, 0x32, 0xf3, 0x97, 0x0e, 0x33, 0xf6, 0xd9, 0xdc, 0x09, - 0x49, 0xb4, 0x13, 0x78, 0x4d, 0x91, 0x8f, 0x3f, 0x31, 0x7f, 0x49, 0xc1, 0x71, 0x57, 0x0d, 0x4a, - 0x65, 0xdb, 0x71, 0xbd, 0x4e, 0x48, 0x12, 0x2a, 0x23, 0x26, 0x95, 0xb5, 0x14, 0x1c, 0x77, 0xd5, - 0xa0, 0xeb, 0xe8, 0x82, 0x48, 0xe6, 0x2e, 0x43, 0x54, 0x28, 0x9b, 0xa6, 0x51, 0xe9, 0xaa, 0xd2, - 0x23, 0x6c, 0x92, 0xb0, 0xfa, 0x50, 0xe9, 0xe0, 0xb5, 0x54, 0xc1, 0xc2, 0x49, 0x45, 0x52, 0x79, - 0x98, 0x94, 0xe2, 0x7f, 0x64, 0xc1, 0xb9, 0x0c, 0xdb, 0x49, 0xce, 0xaa, 0x5a, 0x6e, 0x14, 0xab, - 0x04, 0x47, 0x1a, 0xab, 0xe2, 0xe5, 0x58, 0x61, 0xd0, 0xfd, 0xc0, 0x99, 0x61, 0x9a, 0x01, 0x0a, - 0xdb, 0x24, 0x01, 0x3d, 0x19, 0x03, 0x44, 0x97, 0x61, 0xa8, 0x13, 0x91, 0x50, 0xe6, 0xe2, 0x96, - 0xfc, 0x9b, 0xa9, 0x3e, 0x19, 0x84, 0x8a, 0xa6, 0x2d, 0xa5, 0x75, 0xd4, 0x44, 0x53, 0xae, 0x77, - 0xe4, 0x30, 0xfb, 0xeb, 0x45, 0xb8, 0x98, 0x6b, 0x1b, 0x4d, 0xbb, 0xb4, 0x17, 0xf8, 0x6e, 0x1c, - 0xa8, 0x17, 0x2b, 0x1e, 0xdf, 0x87, 0xb4, 0x77, 0xd6, 0x45, 0x39, 0x56, 0x18, 0xe8, 0x0a, 0x0c, - 0xb3, 0x9b, 0x7d, 0x57, 0x0a, 0xa7, 0xe5, 0x0a, 0x0f, 0x3b, 0xc1, 0xc1, 0x03, 0xa7, 0xc7, 0x7b, - 0x06, 0x86, 0xda, 0x41, 0xe0, 0xa5, 0x99, 0x11, 0xed, 0x6e, 0x10, 0x78, 0x98, 0x01, 0xd1, 0x67, - 0xc4, 0x38, 0xa4, 0x9e, 0x68, 0xb0, 0xd3, 0x0c, 0x22, 0x6d, 0x30, 0x9e, 0x83, 0xd1, 0x5d, 0x72, - 0x10, 0xba, 0x7e, 0x2b, 0xfd, 0x74, 0x77, 0x93, 0x17, 0x63, 0x09, 0x37, 0x33, 0x98, 0x8c, 0x9e, - 0x76, 0x5e, 0xbb, 0xb1, 0xbe, 0x47, 0xdb, 0x0f, 0x17, 0x61, 0x1a, 0x2f, 0x57, 0xbe, 0x35, 0x11, - 0x77, 0xba, 0x27, 0xe2, 0xb4, 0xf3, 0xda, 0xf5, 0x9f, 0x8d, 0x5f, 0xb6, 0x60, 0x9a, 0x45, 0xf9, - 0x16, 0xf1, 0x69, 0xdc, 0xc0, 0x3f, 0x03, 0xd1, 0xed, 0x19, 0x18, 0x0e, 0x69, 0xa3, 0xe9, 0x64, - 0x55, 0xac, 0x27, 0x98, 0xc3, 0xd0, 0x93, 0x30, 0xc4, 0xba, 0x40, 0x27, 0x6f, 0x82, 0xe7, 0xf9, - 0xa8, 0x38, 0xb1, 0x83, 0x59, 0x29, 0x73, 0x14, 0xc6, 0xa4, 0xed, 0xb9, 0xbc, 0xd3, 0x89, 0xaa, - 0xff, 0x93, 0xe1, 0x28, 0x9c, 0xd9, 0xb5, 0x8f, 0xe6, 0x28, 0x9c, 0x4d, 0xb2, 0xf7, 0xb5, 0xe8, - 0xbf, 0x15, 0xe0, 0x52, 0x66, 0xbd, 0x81, 0x1d, 0x85, 0x7b, 0xd7, 0x3e, 0x1d, 0x0b, 0x8c, 0x6c, - 0xc3, 0x88, 0xe2, 0x19, 0x1a, 0x46, 0x0c, 0x0d, 0x2a, 0x39, 0x0e, 0x0f, 0xe0, 0xbf, 0x9b, 0x39, - 0x64, 0x9f, 0x10, 0xff, 0xdd, 0xcc, 0xbe, 0xe5, 0x5c, 0xeb, 0xfe, 0xaa, 0x90, 0xf3, 0x2d, 0xec, - 0x82, 0x77, 0x95, 0xf2, 0x19, 0x06, 0x8c, 0x84, 0x24, 0x3c, 0xc1, 0x79, 0x0c, 0x2f, 0xc3, 0x0a, - 0x8a, 0x5c, 0xcd, 0x13, 0xb6, 0x90, 0x9f, 0xca, 0x34, 0xb7, 0xa9, 0x05, 0xf3, 0x65, 0x46, 0x0f, - 0xa6, 0x93, 0xf6, 0x8a, 0x5d, 0xd7, 0x2e, 0xe5, 0xc5, 0xc1, 0x2f, 0xe5, 0x13, 0xd9, 0x17, 0x72, - 0xb4, 0x04, 0xd3, 0x7b, 0xae, 0x4f, 0xd9, 0xe6, 0x81, 0x29, 0x8a, 0xaa, 0xc0, 0x10, 0xeb, 0x26, - 0x18, 0xa7, 0xf1, 0xe7, 0xdf, 0x84, 0xc9, 0x87, 0x57, 0x47, 0x7e, 0xb3, 0x08, 0x4f, 0xf4, 0xd8, - 0xf6, 0x9c, 0xd7, 0x1b, 0x73, 0xa0, 0xf1, 0xfa, 0xae, 0x79, 0xa8, 0xc1, 0xf9, 0xed, 0x8e, 0xe7, - 0x1d, 0x30, 0xdb, 0x43, 0xd2, 0x94, 0x18, 0x42, 0x56, 0x54, 0x21, 0xfc, 0xd7, 0x32, 0x70, 0x70, - 0x66, 0x4d, 0xf4, 0x36, 0xa0, 0x40, 0xe4, 0x51, 0x4e, 0x42, 0x04, 0xb1, 0x81, 0x2f, 0x26, 0x9b, - 0xf1, 0x76, 0x17, 0x06, 0xce, 0xa8, 0x45, 0x85, 0x7e, 0x7a, 0x2a, 0x1d, 0xa8, 0x6e, 0xa5, 0x84, - 0x7e, 0xac, 0x03, 0xb1, 0x89, 0x8b, 0xae, 0xc3, 0xac, 0xb3, 0xef, 0xb8, 0x3c, 0x64, 0xa4, 0x24, - 0xc0, 0xa5, 0x7e, 0xa5, 0x04, 0x5b, 0x4a, 0x23, 0xe0, 0xee, 0x3a, 0x29, 0x57, 0xdc, 0x91, 0x7c, - 0x57, 0xdc, 0xde, 0x7c, 0xb1, 0x9f, 0x4e, 0xd7, 0xfe, 0x8f, 0x16, 0x3d, 0xbe, 0xb8, 0xf0, 0x6e, - 0x86, 0xcf, 0x7a, 0x13, 0x26, 0x95, 0x6e, 0x52, 0xf3, 0x8a, 0x55, 0xe3, 0xb0, 0xa2, 0x03, 0xb1, - 0x89, 0xcb, 0x17, 0x44, 0x94, 0x38, 0x68, 0x18, 0xa2, 0xbb, 0x70, 0x7b, 0x57, 0x18, 0xe8, 0xcb, - 0x30, 0xda, 0x74, 0xf7, 0xdd, 0x28, 0x08, 0xc5, 0x66, 0x39, 0xa1, 0x99, 0x7b, 0xc2, 0x07, 0x2b, - 0x9c, 0x0c, 0x96, 0xf4, 0xec, 0x1f, 0x2e, 0xc0, 0xa4, 0x6c, 0xf1, 0x9d, 0x4e, 0x10, 0x3b, 0x67, - 0x70, 0x2c, 0x5f, 0x37, 0x8e, 0xe5, 0xcf, 0xf4, 0xf2, 0xfd, 0x67, 0x5d, 0xca, 0x3d, 0x8e, 0x6f, - 0xa7, 0x8e, 0xe3, 0x67, 0xfb, 0x93, 0xea, 0x7d, 0x0c, 0xff, 0x73, 0x0b, 0x66, 0x0d, 0xfc, 0x33, - 0x38, 0x0d, 0xd6, 0xcc, 0xd3, 0xe0, 0xe9, 0xbe, 0xdf, 0x90, 0x73, 0x0a, 0x7c, 0xa3, 0x90, 0xea, - 0x3b, 0xe3, 0xfe, 0x1f, 0xc0, 0xd0, 0x8e, 0x13, 0x36, 0x7b, 0x05, 0x3e, 0xee, 0xaa, 0xb4, 0x70, - 0xc3, 0x09, 0x9b, 0x9c, 0x87, 0xbf, 0xa8, 0xb2, 0xaf, 0x3a, 0x61, 0xb3, 0xaf, 0x3f, 0x12, 0x6b, - 0x0a, 0xbd, 0x01, 0x23, 0x51, 0x23, 0x68, 0x2b, 0x6b, 0xc1, 0xcb, 0x3c, 0x33, 0x2b, 0x2d, 0x39, - 0x3e, 0x2c, 0x23, 0xb3, 0x39, 0x5a, 0x8c, 0x05, 0xfe, 0x7c, 0x0b, 0x4a, 0xaa, 0xe9, 0x47, 0xea, - 0xeb, 0xf1, 0xfb, 0x45, 0x38, 0x97, 0xb1, 0x2e, 0x50, 0x64, 0x8c, 0xd6, 0xcb, 0x03, 0x2e, 0xa7, - 0x8f, 0x38, 0x5e, 0x11, 0xbb, 0xb1, 0x34, 0xc5, 0xfc, 0x0f, 0xdc, 0xe8, 0x9d, 0x88, 0xa4, 0x1b, - 0xa5, 0x45, 0xfd, 0x1b, 0xa5, 0x8d, 0x9d, 0xd9, 0x50, 0xd3, 0x86, 0x54, 0x4f, 0x1f, 0xe9, 0x9c, - 0xfe, 0x79, 0x11, 0xce, 0x67, 0x85, 0x0c, 0x41, 0xdf, 0x9d, 0x4a, 0xa3, 0xf4, 0xea, 0xa0, 0xc1, - 0x46, 0x78, 0x6e, 0x25, 0x11, 0x63, 0x6d, 0xc1, 0x4c, 0xac, 0xd4, 0x77, 0x98, 0x45, 0x9b, 0xcc, - 0x41, 0x30, 0xe4, 0xe9, 0xaf, 0xe4, 0x16, 0xff, 0xdc, 0xc0, 0x1d, 0x10, 0x79, 0xb3, 0xa2, 0x94, - 0x83, 0xa0, 0x2c, 0xee, 0xef, 0x20, 0x28, 0x5b, 0x9e, 0x77, 0x61, 0x5c, 0xfb, 0x9a, 0x47, 0x3a, - 0xe3, 0xbb, 0xf4, 0x44, 0xd1, 0xfa, 0xfd, 0x48, 0x67, 0xfd, 0x27, 0x2d, 0x48, 0xd9, 0xe8, 0x29, - 0x95, 0x94, 0x95, 0xab, 0x92, 0xba, 0x0c, 0x43, 0x61, 0xe0, 0x91, 0x74, 0x66, 0x1d, 0x1c, 0x78, - 0x04, 0x33, 0x08, 0xc5, 0x88, 0x13, 0x85, 0xc4, 0x84, 0x7e, 0xd9, 0x12, 0xd7, 0xa8, 0x67, 0x60, - 0xd8, 0x23, 0xfb, 0x44, 0x6a, 0x23, 0x14, 0x4f, 0xbe, 0x45, 0x0b, 0x31, 0x87, 0xd9, 0xbf, 0x3c, - 0x04, 0x4f, 0xf5, 0x74, 0xb1, 0xa5, 0x57, 0x96, 0x96, 0x13, 0x93, 0xfb, 0xce, 0x41, 0x3a, 0xee, - 0xf7, 0x75, 0x5e, 0x8c, 0x25, 0x9c, 0x59, 0x14, 0xf3, 0xd0, 0xa1, 0x29, 0x05, 0x9e, 0x88, 0x18, - 0x2a, 0xa0, 0xa6, 0xe2, 0xa8, 0x78, 0x1a, 0x8a, 0xa3, 0x6b, 0x00, 0x51, 0xe4, 0xad, 0xfa, 0x54, - 0x02, 0x6b, 0x0a, 0x53, 0xe5, 0x24, 0xc4, 0x6c, 0xfd, 0x96, 0x80, 0x60, 0x0d, 0x0b, 0x55, 0x60, - 0xa6, 0x1d, 0x06, 0x31, 0xd7, 0x87, 0x56, 0xb8, 0x91, 0xcc, 0xb0, 0xe9, 0xdd, 0x58, 0x4b, 0xc1, - 0x71, 0x57, 0x0d, 0xf4, 0x1a, 0x8c, 0x0b, 0x8f, 0xc7, 0x5a, 0x10, 0x78, 0x42, 0x55, 0xa3, 0x4c, - 0x2e, 0xea, 0x09, 0x08, 0xeb, 0x78, 0x5a, 0x35, 0xa6, 0x64, 0x1d, 0xcd, 0xac, 0xc6, 0x15, 0xad, - 0x1a, 0x5e, 0x2a, 0x7c, 0xd0, 0xd8, 0x40, 0xe1, 0x83, 0x12, 0xe5, 0x55, 0x69, 0xe0, 0x77, 0x25, - 0xe8, 0xab, 0xee, 0xf9, 0x85, 0x21, 0x38, 0x27, 0x16, 0xce, 0xa3, 0x5e, 0x2e, 0x77, 0xba, 0x97, - 0xcb, 0x69, 0xa8, 0xb7, 0xbe, 0xb5, 0x66, 0xce, 0x7a, 0xcd, 0xfc, 0x5a, 0x11, 0x46, 0xf8, 0x54, - 0x9c, 0x81, 0x0c, 0xbf, 0x26, 0x94, 0x7e, 0x3d, 0x02, 0xe7, 0xf0, 0xbe, 0x2c, 0x54, 0x9c, 0xd8, - 0xe1, 0xe7, 0x97, 0x62, 0xa3, 0x89, 0x7a, 0x10, 0x2d, 0x18, 0x8c, 0x76, 0x3e, 0xa5, 0xd5, 0x02, - 0x4e, 0x43, 0x63, 0xbb, 0x5f, 0x01, 0x88, 0xe2, 0xd0, 0xf5, 0x5b, 0x94, 0x86, 0x08, 0xc1, 0xf4, - 0x7c, 0x8f, 0xd6, 0xeb, 0x0a, 0x99, 0xf7, 0x21, 0x59, 0x82, 0x0a, 0x80, 0x35, 0x8a, 0xf3, 0xaf, - 0x43, 0x49, 0x21, 0xf7, 0x53, 0x01, 0x4c, 0xe8, 0xa7, 0xde, 0x17, 0x61, 0x3a, 0xd5, 0xd6, 0x89, - 0x34, 0x08, 0xbf, 0x62, 0xc1, 0x34, 0xef, 0xf2, 0xaa, 0xbf, 0x2f, 0x36, 0xfb, 0x87, 0x70, 0xde, - 0xcb, 0xd8, 0x74, 0x62, 0x46, 0x07, 0xdf, 0xa4, 0x4a, 0x63, 0x90, 0x05, 0xc5, 0x99, 0x6d, 0xa0, - 0xab, 0x30, 0xc6, 0x5d, 0x70, 0x1c, 0x4f, 0xb8, 0x4d, 0x4c, 0xf0, 0x54, 0x1c, 0xbc, 0x0c, 0x2b, - 0xa8, 0xfd, 0x07, 0x16, 0xcc, 0xf2, 0x9e, 0xdf, 0x24, 0x07, 0xea, 0x76, 0xfc, 0x71, 0xf6, 0x5d, - 0x64, 0x1a, 0x29, 0xe4, 0x64, 0x1a, 0xd1, 0x3f, 0xad, 0xd8, 0xf3, 0xd3, 0x7e, 0xde, 0x02, 0xb1, - 0x02, 0xcf, 0xe0, 0x1e, 0xf8, 0xed, 0xe6, 0x3d, 0x70, 0x3e, 0x7f, 0x51, 0xe7, 0x5c, 0x00, 0xff, - 0xd2, 0x82, 0x19, 0x8e, 0x90, 0x3c, 0x44, 0x7e, 0xac, 0xf3, 0x30, 0x48, 0xfa, 0x3b, 0x95, 0x6f, - 0x3c, 0xfb, 0xa3, 0x8c, 0xc9, 0x1a, 0xea, 0x39, 0x59, 0x4d, 0xb9, 0x81, 0x4e, 0x90, 0xd6, 0xf1, - 0xc4, 0xc1, 0x71, 0xed, 0x3f, 0xb3, 0x00, 0xf1, 0x66, 0x8c, 0x73, 0x99, 0x9e, 0x76, 0xac, 0x54, - 0xd3, 0x04, 0x25, 0xac, 0x46, 0x41, 0xb0, 0x86, 0x75, 0x2a, 0xc3, 0x93, 0x7a, 0x4d, 0x2e, 0xf6, - 0x7f, 0x4d, 0x3e, 0xc1, 0x88, 0xfe, 0xd0, 0x10, 0xa4, 0x6d, 0xb4, 0xd1, 0x5d, 0x98, 0x68, 0x38, - 0x6d, 0x67, 0xcb, 0xf5, 0xdc, 0xd8, 0x25, 0x51, 0x2f, 0x33, 0x94, 0x15, 0x0d, 0x4f, 0xbc, 0x13, - 0x6a, 0x25, 0xd8, 0xa0, 0x83, 0x16, 0x00, 0xda, 0xa1, 0xbb, 0xef, 0x7a, 0xa4, 0xc5, 0xae, 0xc2, - 0xcc, 0x51, 0x8b, 0xdb, 0x56, 0xc8, 0x52, 0xac, 0x61, 0x64, 0x38, 0xf6, 0x14, 0x1f, 0x9d, 0x63, - 0xcf, 0xd0, 0x09, 0x1d, 0x7b, 0x86, 0x07, 0x72, 0xec, 0xc1, 0xf0, 0x98, 0x3c, 0xbb, 0xe9, 0xff, - 0x35, 0xd7, 0x23, 0x42, 0x60, 0xe3, 0xee, 0x5b, 0xf3, 0x47, 0x87, 0xe5, 0xc7, 0x70, 0x26, 0x06, - 0xce, 0xa9, 0x89, 0xbe, 0x04, 0x73, 0x8e, 0xe7, 0x05, 0xf7, 0xd5, 0xa8, 0xad, 0x46, 0x0d, 0xc7, - 0x4b, 0x62, 0xc5, 0x8f, 0x2d, 0x3f, 0x79, 0x74, 0x58, 0x9e, 0x5b, 0xca, 0xc1, 0xc1, 0xb9, 0xb5, - 0xed, 0x5d, 0x38, 0x57, 0x27, 0xa1, 0xcc, 0x14, 0xab, 0xb6, 0xd8, 0x26, 0x94, 0xc2, 0x14, 0x53, - 0x19, 0x28, 0x46, 0x8b, 0x16, 0xc7, 0x53, 0x32, 0x91, 0x84, 0x90, 0xfd, 0x17, 0x16, 0x8c, 0x0a, - 0xbb, 0xef, 0x33, 0x90, 0x65, 0x96, 0x0c, 0x7d, 0x64, 0x39, 0x9b, 0xf1, 0xb2, 0xce, 0xe4, 0x6a, - 0x22, 0xab, 0x29, 0x4d, 0xe4, 0xd3, 0xbd, 0x88, 0xf4, 0xd6, 0x41, 0xfe, 0x78, 0x11, 0xa6, 0x4c, - 0x9b, 0xf7, 0x33, 0x18, 0x82, 0x0d, 0x18, 0x8d, 0x84, 0x83, 0x45, 0x21, 0xdf, 0x10, 0x36, 0x3d, - 0x89, 0x89, 0x95, 0x8b, 0x70, 0xa9, 0x90, 0x44, 0x32, 0x3d, 0x37, 0x8a, 0x8f, 0xd0, 0x73, 0xa3, - 0x9f, 0xdb, 0xc1, 0xd0, 0x69, 0xb8, 0x1d, 0xd8, 0xbf, 0xce, 0x98, 0xbf, 0x5e, 0x7e, 0x06, 0x72, - 0xc1, 0x75, 0xf3, 0x98, 0xb0, 0x7b, 0xac, 0x2c, 0xd1, 0xa9, 0x1c, 0xf9, 0xe0, 0x1f, 0x5b, 0x30, - 0x2e, 0x10, 0xcf, 0xa0, 0xdb, 0xdf, 0x61, 0x76, 0xfb, 0x89, 0x1e, 0xdd, 0xce, 0xe9, 0xef, 0xdf, - 0x2d, 0xa8, 0xfe, 0xd6, 0x82, 0x30, 0x1e, 0x28, 0x77, 0xc8, 0x18, 0xbd, 0x0d, 0x06, 0x8d, 0xc0, - 0x13, 0x87, 0xf9, 0x93, 0x89, 0x07, 0x2f, 0x2f, 0x3f, 0xd6, 0x7e, 0x63, 0x85, 0xcd, 0x1c, 0x4c, - 0x83, 0x30, 0x16, 0x07, 0x68, 0xe2, 0x60, 0x1a, 0x84, 0x31, 0x66, 0x10, 0xd4, 0x04, 0x88, 0x9d, - 0xb0, 0x45, 0x62, 0x5a, 0x26, 0x82, 0x01, 0xe4, 0xef, 0xc2, 0x4e, 0xec, 0x7a, 0x0b, 0xae, 0x1f, - 0x47, 0x71, 0xb8, 0x50, 0xf5, 0xe3, 0xdb, 0x21, 0xbf, 0x1b, 0x68, 0x2e, 0xb9, 0x8a, 0x16, 0xd6, - 0xe8, 0x4a, 0x9f, 0x30, 0xd6, 0xc6, 0xb0, 0xf9, 0x50, 0xb8, 0x21, 0xca, 0xb1, 0xc2, 0xb0, 0x5f, - 0x67, 0x3c, 0x99, 0x0d, 0xd0, 0xc9, 0xbc, 0x65, 0x7f, 0x77, 0x4c, 0x0d, 0x2d, 0x7b, 0x25, 0xa8, - 0xe8, 0x3e, 0xb9, 0xbd, 0x59, 0x20, 0x6d, 0x58, 0xf7, 0x2f, 0x48, 0x1c, 0x77, 0xd1, 0x77, 0x76, - 0xbd, 0x1f, 0xbf, 0xd4, 0x87, 0x97, 0x9e, 0xe0, 0xc5, 0x98, 0x05, 0xa0, 0x65, 0x81, 0x3a, 0xab, - 0xb5, 0x74, 0x76, 0x97, 0x15, 0x09, 0xc0, 0x09, 0x0e, 0x5a, 0x14, 0x37, 0x4b, 0xae, 0x9f, 0x7b, - 0x22, 0x75, 0xb3, 0x94, 0x9f, 0xaf, 0x5d, 0x2d, 0x5f, 0x86, 0x71, 0x95, 0x31, 0xaf, 0xc6, 0x13, - 0x8f, 0x89, 0xd0, 0x08, 0xab, 0x49, 0x31, 0xd6, 0x71, 0xd0, 0x26, 0x4c, 0x47, 0x3c, 0x9d, 0x9f, - 0x8a, 0x80, 0xc5, 0xf5, 0x06, 0xcf, 0xcb, 0x77, 0xe7, 0xba, 0x09, 0x3e, 0x66, 0x45, 0x7c, 0xb3, - 0x4a, 0xc7, 0xae, 0x34, 0x09, 0xf4, 0x16, 0x4c, 0x79, 0x7a, 0x5a, 0xf3, 0x9a, 0x50, 0x2b, 0x28, - 0xb3, 0x4c, 0x23, 0xe9, 0x79, 0x0d, 0xa7, 0xb0, 0xa9, 0x10, 0xa0, 0x97, 0x88, 0xa8, 0x6d, 0x8e, - 0xdf, 0x22, 0x91, 0xc8, 0xf7, 0xc5, 0x84, 0x80, 0x5b, 0x39, 0x38, 0x38, 0xb7, 0x36, 0x7a, 0x03, - 0x26, 0xe4, 0xe7, 0x6b, 0x6e, 0x8b, 0x89, 0xf1, 0xaf, 0x06, 0xc3, 0x06, 0x26, 0xba, 0x0f, 0x17, - 0xe4, 0xff, 0xcd, 0xd0, 0xd9, 0xde, 0x76, 0x1b, 0xc2, 0x6b, 0x94, 0x7b, 0x40, 0x2c, 0x49, 0x97, - 0x8a, 0xd5, 0x2c, 0xa4, 0xe3, 0xc3, 0xf2, 0x65, 0x31, 0x6a, 0x99, 0x70, 0x36, 0x89, 0xd9, 0xf4, - 0xd1, 0x3a, 0x9c, 0xdb, 0x21, 0x8e, 0x17, 0xef, 0xac, 0xec, 0x90, 0xc6, 0xae, 0xdc, 0x44, 0xcc, - 0x19, 0x52, 0x33, 0x99, 0xbd, 0xd1, 0x8d, 0x82, 0xb3, 0xea, 0xa1, 0xf7, 0x60, 0xae, 0xdd, 0xd9, - 0xf2, 0xdc, 0x68, 0x67, 0x23, 0x88, 0xd9, 0x53, 0xb7, 0x4a, 0x38, 0x27, 0xbc, 0x26, 0x95, 0x23, - 0x68, 0x2d, 0x07, 0x0f, 0xe7, 0x52, 0x40, 0x1f, 0xc2, 0x85, 0xd4, 0x62, 0x10, 0x3e, 0x5c, 0x53, - 0xf9, 0x31, 0x30, 0xeb, 0x59, 0x15, 0x84, 0x4f, 0x56, 0x16, 0x08, 0x67, 0x37, 0xf1, 0xd1, 0x0c, - 0x20, 0x3e, 0xa0, 0x95, 0x35, 0xe9, 0x06, 0x7d, 0x15, 0x26, 0xf4, 0x55, 0x24, 0x0e, 0x98, 0x2b, - 0xfd, 0x52, 0xf8, 0x0b, 0xd9, 0x48, 0xad, 0x28, 0x1d, 0x86, 0x0d, 0x8a, 0x36, 0x81, 0xec, 0xef, - 0x43, 0xb7, 0x60, 0xac, 0xe1, 0xb9, 0xc4, 0x8f, 0xab, 0xb5, 0x5e, 0xde, 0xfe, 0x2b, 0x02, 0x47, - 0x0c, 0x98, 0x08, 0x1a, 0xc8, 0xcb, 0xb0, 0xa2, 0x60, 0xff, 0x66, 0x01, 0xca, 0x7d, 0x22, 0x50, - 0xa6, 0x74, 0x80, 0xd6, 0x40, 0x3a, 0xc0, 0x25, 0x99, 0x3e, 0x6f, 0x23, 0x75, 0xff, 0x4c, 0xa5, - 0xc6, 0x4b, 0x6e, 0xa1, 0x69, 0xfc, 0x81, 0xed, 0x26, 0x75, 0x35, 0xe2, 0x50, 0x5f, 0x8b, 0x5e, - 0xe3, 0xf9, 0x60, 0x78, 0x70, 0x89, 0x3e, 0x57, 0x15, 0x6c, 0xff, 0x7a, 0x01, 0x2e, 0xa8, 0x21, - 0xfc, 0x9b, 0x3b, 0x70, 0x77, 0xba, 0x07, 0xee, 0x14, 0x14, 0xe9, 0xf6, 0x6d, 0x18, 0xa9, 0x1f, - 0x44, 0x8d, 0xd8, 0x1b, 0x40, 0x00, 0x7a, 0xc6, 0x8c, 0x7a, 0xa3, 0x8e, 0x69, 0x23, 0xf2, 0xcd, - 0xff, 0x6b, 0xc1, 0xf4, 0xe6, 0x4a, 0xad, 0x1e, 0x34, 0x76, 0x49, 0xbc, 0xc4, 0xd5, 0x44, 0x58, - 0xc8, 0x3f, 0xd6, 0x43, 0xca, 0x35, 0x59, 0x12, 0xd3, 0x65, 0x18, 0xda, 0x09, 0xa2, 0x38, 0xfd, - 0xca, 0x76, 0x23, 0x88, 0x62, 0xcc, 0x20, 0xf6, 0x1f, 0x5a, 0x30, 0xcc, 0x92, 0xbe, 0xf6, 0x4b, - 0x0e, 0x3c, 0xc8, 0x77, 0xa1, 0xd7, 0x60, 0x84, 0x6c, 0x6f, 0x93, 0x46, 0x2c, 0x66, 0x55, 0xba, - 0xe9, 0x8d, 0xac, 0xb2, 0x52, 0x7a, 0xe8, 0xb3, 0xc6, 0xf8, 0x5f, 0x2c, 0x90, 0xd1, 0x3d, 0x28, - 0xc5, 0xee, 0x1e, 0x59, 0x6a, 0x36, 0xc5, 0x3b, 0xc5, 0x43, 0x78, 0x45, 0x6e, 0x4a, 0x02, 0x38, - 0xa1, 0x65, 0x7f, 0xbd, 0x00, 0x90, 0xb8, 0x1a, 0xf7, 0xfb, 0xc4, 0xe5, 0xae, 0xfc, 0xc7, 0x57, - 0x32, 0xf2, 0x1f, 0xa3, 0x84, 0x60, 0x46, 0xf6, 0x63, 0x35, 0x4c, 0xc5, 0x81, 0x86, 0x69, 0xe8, - 0x24, 0xc3, 0xb4, 0x02, 0xb3, 0x89, 0xab, 0xb4, 0x19, 0x37, 0x82, 0x45, 0xa4, 0xdf, 0x4c, 0x03, - 0x71, 0x37, 0xbe, 0xfd, 0x03, 0x16, 0x08, 0x77, 0x83, 0x01, 0x16, 0xf3, 0xbb, 0x32, 0x55, 0xa9, - 0x11, 0xc8, 0xf6, 0x72, 0xbe, 0xff, 0x85, 0x08, 0x5f, 0xab, 0x0e, 0x0f, 0x23, 0x68, 0xad, 0x41, - 0xcb, 0x6e, 0x82, 0x80, 0x56, 0x08, 0x53, 0x32, 0xf4, 0xef, 0xcd, 0x35, 0x80, 0x26, 0xc3, 0xd5, - 0x52, 0x1f, 0x2a, 0x56, 0x55, 0x51, 0x10, 0xac, 0x61, 0xd9, 0x3f, 0x5a, 0x80, 0x71, 0x19, 0x38, - 0x95, 0xde, 0xe3, 0xfb, 0xb7, 0x72, 0xa2, 0xac, 0x09, 0x2c, 0x57, 0x28, 0x25, 0xac, 0x82, 0xeb, - 0xeb, 0xb9, 0x42, 0x25, 0x00, 0x27, 0x38, 0xe8, 0x39, 0x18, 0x8d, 0x3a, 0x5b, 0x0c, 0x3d, 0x65, - 0x44, 0x5f, 0xe7, 0xc5, 0x58, 0xc2, 0xd1, 0x97, 0x60, 0x86, 0xd7, 0x0b, 0x83, 0xb6, 0xd3, 0xe2, - 0x1a, 0xa4, 0x61, 0xe5, 0xd5, 0x36, 0xb3, 0x9e, 0x82, 0x1d, 0x1f, 0x96, 0xcf, 0xa7, 0xcb, 0x98, - 0xee, 0xb1, 0x8b, 0x8a, 0xfd, 0x55, 0x40, 0xdd, 0xb1, 0x60, 0xd1, 0xdb, 0xdc, 0x4c, 0xc2, 0x0d, - 0x49, 0xb3, 0x97, 0x52, 0x51, 0x77, 0xc2, 0x92, 0x86, 0xac, 0xbc, 0x16, 0x56, 0xf5, 0xe9, 0xce, - 0x9b, 0x49, 0xbb, 0xe4, 0xa0, 0x1b, 0x30, 0xc2, 0x99, 0xaa, 0x20, 0xdf, 0xe3, 0xcd, 0x4a, 0x73, - 0xe4, 0x61, 0x81, 0xea, 0x05, 0x5f, 0x16, 0xf5, 0xd1, 0x7b, 0x30, 0xde, 0x0c, 0xee, 0xfb, 0xf7, - 0x9d, 0xb0, 0xb9, 0x54, 0xab, 0x8a, 0x75, 0x99, 0x29, 0x9b, 0x55, 0x12, 0x34, 0xdd, 0x39, 0x88, - 0xe9, 0x67, 0x13, 0x10, 0xd6, 0xc9, 0xa1, 0x4d, 0x16, 0xdf, 0x6a, 0xdb, 0x6d, 0xad, 0x3b, 0xed, - 0x5e, 0x76, 0x6d, 0x2b, 0x12, 0x49, 0xa3, 0x3c, 0x29, 0x82, 0x60, 0x71, 0x00, 0x4e, 0x08, 0xd9, - 0x5f, 0x3b, 0x07, 0xc6, 0x7e, 0x30, 0xf2, 0x32, 0x58, 0xa7, 0x94, 0x97, 0x01, 0xc3, 0x18, 0xd9, - 0x6b, 0xc7, 0x07, 0x15, 0x37, 0xec, 0x95, 0xd8, 0x67, 0x55, 0xe0, 0x74, 0xd3, 0x94, 0x10, 0xac, - 0xe8, 0x64, 0x27, 0xcf, 0x28, 0x7e, 0x8c, 0xc9, 0x33, 0x86, 0xce, 0x30, 0x79, 0xc6, 0x06, 0x8c, - 0xb6, 0xdc, 0x18, 0x93, 0x76, 0x20, 0x04, 0x8a, 0xcc, 0x95, 0x70, 0x9d, 0xa3, 0x74, 0x87, 0x6e, - 0x17, 0x00, 0x2c, 0x89, 0xa0, 0xb7, 0xd5, 0x1e, 0x18, 0xc9, 0x97, 0xc7, 0xbb, 0x9f, 0x37, 0x32, - 0x77, 0x81, 0x48, 0x96, 0x31, 0xfa, 0xb0, 0xc9, 0x32, 0xd6, 0x64, 0x8a, 0x8b, 0xb1, 0x7c, 0x33, - 0x50, 0x96, 0xc1, 0xa2, 0x4f, 0x62, 0x0b, 0x23, 0x19, 0x48, 0xe9, 0xf4, 0x92, 0x81, 0xfc, 0x80, - 0x05, 0x17, 0xda, 0x59, 0x79, 0x71, 0x44, 0x8a, 0x8a, 0xd7, 0x06, 0x4e, 0xfc, 0x63, 0x34, 0xc8, - 0x2e, 0x66, 0x99, 0x68, 0x38, 0xbb, 0x39, 0x3a, 0xd0, 0xe1, 0x56, 0x53, 0xe4, 0xb5, 0x78, 0x26, - 0x27, 0xab, 0x48, 0x8f, 0x5c, 0x22, 0x9b, 0x19, 0xb9, 0x2c, 0x3e, 0x9d, 0x97, 0xcb, 0x62, 0xe0, - 0x0c, 0x16, 0x49, 0x3e, 0x91, 0xc9, 0x8f, 0x9c, 0x4f, 0xe4, 0x6d, 0x95, 0x4f, 0xa4, 0x47, 0x14, - 0x21, 0x9e, 0x2d, 0xa4, 0x6f, 0x16, 0x11, 0x2d, 0x13, 0xc8, 0xf4, 0xe9, 0x64, 0x02, 0x31, 0x98, - 0x3d, 0x4f, 0x46, 0xf1, 0x42, 0x1f, 0x66, 0x6f, 0xd0, 0xed, 0xcd, 0xee, 0x79, 0xd6, 0x93, 0xd9, - 0x87, 0xca, 0x7a, 0x72, 0x57, 0xcf, 0x22, 0x82, 0xfa, 0xa4, 0xc9, 0xa0, 0x48, 0x03, 0xe6, 0x0e, - 0xb9, 0xab, 0x1f, 0x41, 0xe7, 0xf2, 0xe9, 0xaa, 0x93, 0xa6, 0x9b, 0x6e, 0xd6, 0x21, 0xd4, 0x9d, - 0x93, 0xe4, 0xfc, 0xd9, 0xe4, 0x24, 0xb9, 0x70, 0xea, 0x39, 0x49, 0x1e, 0x3b, 0x83, 0x9c, 0x24, - 0x8f, 0x7f, 0xac, 0x39, 0x49, 0xe6, 0x1e, 0x41, 0x4e, 0x92, 0x8d, 0x24, 0x27, 0xc9, 0xc5, 0xfc, - 0x29, 0xc9, 0xb0, 0x7b, 0xcb, 0xc9, 0x44, 0x72, 0x17, 0x4a, 0x6d, 0xe9, 0xb5, 0x2d, 0xc2, 0x1c, - 0x65, 0x27, 0x43, 0xcc, 0x72, 0xed, 0xe6, 0x53, 0xa2, 0x40, 0x38, 0x21, 0x45, 0xe9, 0x26, 0x99, - 0x49, 0x9e, 0xe8, 0xa1, 0x7a, 0xcb, 0x52, 0x6a, 0xe4, 0xe7, 0x23, 0xb1, 0xff, 0xbf, 0x02, 0x5c, - 0xea, 0xbd, 0xae, 0x13, 0x8d, 0x48, 0x2d, 0xd1, 0xe0, 0xa7, 0x34, 0x22, 0xfc, 0x9a, 0x91, 0x60, - 0x0d, 0x1c, 0xda, 0xe2, 0x3a, 0xcc, 0x2a, 0x83, 0x37, 0xcf, 0x6d, 0x1c, 0x68, 0x49, 0x12, 0x95, - 0xf3, 0x4d, 0x3d, 0x8d, 0x80, 0xbb, 0xeb, 0xa0, 0x25, 0x98, 0x36, 0x0a, 0xab, 0x15, 0x71, 0x9d, - 0x50, 0x2a, 0x98, 0xba, 0x09, 0xc6, 0x69, 0x7c, 0xfb, 0x1b, 0x16, 0x3c, 0x9e, 0x13, 0xae, 0x7b, - 0xe0, 0xc8, 0x0d, 0xdb, 0x30, 0xdd, 0x36, 0xab, 0xf6, 0x09, 0xf0, 0x62, 0x04, 0x05, 0x57, 0x7d, - 0x4d, 0x01, 0x70, 0x9a, 0xe8, 0xf2, 0xd5, 0xdf, 0xfe, 0xe3, 0x4b, 0x9f, 0xfa, 0xbd, 0x3f, 0xbe, - 0xf4, 0xa9, 0x3f, 0xf8, 0xe3, 0x4b, 0x9f, 0xfa, 0xbf, 0x8f, 0x2e, 0x59, 0xbf, 0x7d, 0x74, 0xc9, - 0xfa, 0xbd, 0xa3, 0x4b, 0xd6, 0x1f, 0x1c, 0x5d, 0xb2, 0xfe, 0xe8, 0xe8, 0x92, 0xf5, 0xf5, 0x3f, - 0xb9, 0xf4, 0xa9, 0x77, 0x0b, 0xfb, 0x2f, 0xff, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x64, 0x22, - 0x56, 0xbb, 0xf6, 0xe3, 0x00, 0x00, + // 12835 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x6d, 0x70, 0x64, 0x57, + 0x56, 0xd8, 0xbe, 0xee, 0xd6, 0x47, 0x1f, 0x7d, 0xdf, 0x99, 0xb1, 0x35, 0xb2, 0x67, 0x7a, 0xfc, + 0xbc, 0x3b, 0x1e, 0xaf, 0x6d, 0xcd, 0x7a, 0x6c, 0xaf, 0xcd, 0xda, 0x6b, 0x90, 0xd4, 0xd2, 0x4c, + 0x7b, 0x46, 0x9a, 0xf6, 0x6d, 0xcd, 0x78, 0xd7, 0x78, 0x97, 0x7d, 0xea, 0xbe, 0x92, 0x9e, 0xf5, + 0xf4, 0x5e, 0xfb, 0xbd, 0xd7, 0x9a, 0x91, 0x03, 0x55, 0xc9, 0x12, 0x48, 0x36, 0x50, 0xa9, 0xad, + 0xb0, 0x95, 0x0f, 0xa0, 0x48, 0x15, 0x21, 0x05, 0x84, 0x24, 0x15, 0x02, 0x01, 0xc2, 0x42, 0x42, + 0x20, 0x3f, 0xc8, 0x9f, 0x0d, 0x49, 0x55, 0x6a, 0xa9, 0xa2, 0xa2, 0x80, 0x48, 0x25, 0xc5, 0x8f, + 0x40, 0x2a, 0xe4, 0x47, 0x50, 0xa8, 0x90, 0xba, 0x9f, 0xef, 0xde, 0xd7, 0xef, 0x75, 0xb7, 0xc6, + 0x1a, 0xd9, 0x50, 0xfb, 0xaf, 0xfb, 0x9e, 0x73, 0xcf, 0xbd, 0xef, 0x7e, 0x9e, 0x73, 0xee, 0xf9, + 0x80, 0x57, 0x77, 0x5e, 0x89, 0xe6, 0xdd, 0xe0, 0xea, 0x4e, 0x67, 0x83, 0x84, 0x3e, 0x89, 0x49, + 0x74, 0x75, 0x8f, 0xf8, 0xad, 0x20, 0xbc, 0x2a, 0x00, 0x4e, 0xdb, 0xbd, 0xda, 0x0c, 0x42, 0x72, + 0x75, 0xef, 0xf9, 0xab, 0x5b, 0xc4, 0x27, 0xa1, 0x13, 0x93, 0xd6, 0x7c, 0x3b, 0x0c, 0xe2, 0x00, + 0x21, 0x8e, 0x33, 0xef, 0xb4, 0xdd, 0x79, 0x8a, 0x33, 0xbf, 0xf7, 0xfc, 0xdc, 0x73, 0x5b, 0x6e, + 0xbc, 0xdd, 0xd9, 0x98, 0x6f, 0x06, 0xbb, 0x57, 0xb7, 0x82, 0xad, 0xe0, 0x2a, 0x43, 0xdd, 0xe8, + 0x6c, 0xb2, 0x7f, 0xec, 0x0f, 0xfb, 0xc5, 0x49, 0xcc, 0xbd, 0x98, 0x34, 0xb3, 0xeb, 0x34, 0xb7, + 0x5d, 0x9f, 0x84, 0xfb, 0x57, 0xdb, 0x3b, 0x5b, 0xac, 0xdd, 0x90, 0x44, 0x41, 0x27, 0x6c, 0x92, + 0x74, 0xc3, 0x3d, 0x6b, 0x45, 0x57, 0x77, 0x49, 0xec, 0x64, 0x74, 0x77, 0xee, 0x6a, 0x5e, 0xad, + 0xb0, 0xe3, 0xc7, 0xee, 0x6e, 0x77, 0x33, 0x9f, 0xee, 0x57, 0x21, 0x6a, 0x6e, 0x93, 0x5d, 0xa7, + 0xab, 0xde, 0x0b, 0x79, 0xf5, 0x3a, 0xb1, 0xeb, 0x5d, 0x75, 0xfd, 0x38, 0x8a, 0xc3, 0x74, 0x25, + 0xfb, 0x9b, 0x16, 0x5c, 0x5a, 0x78, 0xab, 0xb1, 0xec, 0x39, 0x51, 0xec, 0x36, 0x17, 0xbd, 0xa0, + 0xb9, 0xd3, 0x88, 0x83, 0x90, 0xdc, 0x0d, 0xbc, 0xce, 0x2e, 0x69, 0xb0, 0x81, 0x40, 0xcf, 0xc2, + 0xe8, 0x1e, 0xfb, 0x5f, 0xab, 0xce, 0x5a, 0x97, 0xac, 0x2b, 0xe5, 0xc5, 0xe9, 0xdf, 0x3c, 0xa8, + 0x7c, 0xec, 0xf0, 0xa0, 0x32, 0x7a, 0x57, 0x94, 0x63, 0x85, 0x81, 0x2e, 0xc3, 0xf0, 0x66, 0xb4, + 0xbe, 0xdf, 0x26, 0xb3, 0x05, 0x86, 0x3b, 0x29, 0x70, 0x87, 0x57, 0x1a, 0xb4, 0x14, 0x0b, 0x28, + 0xba, 0x0a, 0xe5, 0xb6, 0x13, 0xc6, 0x6e, 0xec, 0x06, 0xfe, 0x6c, 0xf1, 0x92, 0x75, 0x65, 0x68, + 0x71, 0x46, 0xa0, 0x96, 0xeb, 0x12, 0x80, 0x13, 0x1c, 0xda, 0x8d, 0x90, 0x38, 0xad, 0xdb, 0xbe, + 0xb7, 0x3f, 0x5b, 0xba, 0x64, 0x5d, 0x19, 0x4d, 0xba, 0x81, 0x45, 0x39, 0x56, 0x18, 0xf6, 0x0f, + 0x17, 0x60, 0x74, 0x61, 0x73, 0xd3, 0xf5, 0xdd, 0x78, 0x1f, 0xdd, 0x85, 0x71, 0x3f, 0x68, 0x11, + 0xf9, 0x9f, 0x7d, 0xc5, 0xd8, 0xb5, 0x4b, 0xf3, 0xdd, 0x4b, 0x69, 0x7e, 0x4d, 0xc3, 0x5b, 0x9c, + 0x3e, 0x3c, 0xa8, 0x8c, 0xeb, 0x25, 0xd8, 0xa0, 0x83, 0x30, 0x8c, 0xb5, 0x83, 0x96, 0x22, 0x5b, + 0x60, 0x64, 0x2b, 0x59, 0x64, 0xeb, 0x09, 0xda, 0xe2, 0xd4, 0xe1, 0x41, 0x65, 0x4c, 0x2b, 0xc0, + 0x3a, 0x11, 0xb4, 0x01, 0x53, 0xf4, 0xaf, 0x1f, 0xbb, 0x8a, 0x6e, 0x91, 0xd1, 0x7d, 0x32, 0x8f, + 0xae, 0x86, 0xba, 0x78, 0xe6, 0xf0, 0xa0, 0x32, 0x95, 0x2a, 0xc4, 0x69, 0x82, 0xf6, 0xfb, 0x30, + 0xb9, 0x10, 0xc7, 0x4e, 0x73, 0x9b, 0xb4, 0xf8, 0x0c, 0xa2, 0x17, 0xa1, 0xe4, 0x3b, 0xbb, 0x44, + 0xcc, 0xef, 0x25, 0x31, 0xb0, 0xa5, 0x35, 0x67, 0x97, 0x1c, 0x1d, 0x54, 0xa6, 0xef, 0xf8, 0xee, + 0x7b, 0x1d, 0xb1, 0x2a, 0x68, 0x19, 0x66, 0xd8, 0xe8, 0x1a, 0x40, 0x8b, 0xec, 0xb9, 0x4d, 0x52, + 0x77, 0xe2, 0x6d, 0x31, 0xdf, 0x48, 0xd4, 0x85, 0xaa, 0x82, 0x60, 0x0d, 0xcb, 0xbe, 0x0f, 0xe5, + 0x85, 0xbd, 0xc0, 0x6d, 0xd5, 0x83, 0x56, 0x84, 0x76, 0x60, 0xaa, 0x1d, 0x92, 0x4d, 0x12, 0xaa, + 0xa2, 0x59, 0xeb, 0x52, 0xf1, 0xca, 0xd8, 0xb5, 0x2b, 0x99, 0x1f, 0x6b, 0xa2, 0x2e, 0xfb, 0x71, + 0xb8, 0xbf, 0xf8, 0xa8, 0x68, 0x6f, 0x2a, 0x05, 0xc5, 0x69, 0xca, 0xf6, 0xbf, 0x2d, 0xc0, 0xb9, + 0x85, 0xf7, 0x3b, 0x21, 0xa9, 0xba, 0xd1, 0x4e, 0x7a, 0x85, 0xb7, 0xdc, 0x68, 0x67, 0x2d, 0x19, + 0x01, 0xb5, 0xb4, 0xaa, 0xa2, 0x1c, 0x2b, 0x0c, 0xf4, 0x1c, 0x8c, 0xd0, 0xdf, 0x77, 0x70, 0x4d, + 0x7c, 0xf2, 0x19, 0x81, 0x3c, 0x56, 0x75, 0x62, 0xa7, 0xca, 0x41, 0x58, 0xe2, 0xa0, 0x55, 0x18, + 0x6b, 0xb2, 0x0d, 0xb9, 0xb5, 0x1a, 0xb4, 0x08, 0x9b, 0xcc, 0xf2, 0xe2, 0x33, 0x14, 0x7d, 0x29, + 0x29, 0x3e, 0x3a, 0xa8, 0xcc, 0xf2, 0xbe, 0x09, 0x12, 0x1a, 0x0c, 0xeb, 0xf5, 0x91, 0xad, 0xf6, + 0x57, 0x89, 0x51, 0x82, 0x8c, 0xbd, 0x75, 0x45, 0xdb, 0x2a, 0x43, 0x6c, 0xab, 0x8c, 0x67, 0x6f, + 0x13, 0xf4, 0x3c, 0x94, 0x76, 0x5c, 0xbf, 0x35, 0x3b, 0xcc, 0x68, 0x5d, 0xa0, 0x73, 0x7e, 0xd3, + 0xf5, 0x5b, 0x47, 0x07, 0x95, 0x19, 0xa3, 0x3b, 0xb4, 0x10, 0x33, 0x54, 0xfb, 0x8f, 0x2d, 0xa8, + 0x30, 0xd8, 0x8a, 0xeb, 0x91, 0x3a, 0x09, 0x23, 0x37, 0x8a, 0x89, 0x1f, 0x1b, 0x03, 0x7a, 0x0d, + 0x20, 0x22, 0xcd, 0x90, 0xc4, 0xda, 0x90, 0xaa, 0x85, 0xd1, 0x50, 0x10, 0xac, 0x61, 0xd1, 0x03, + 0x21, 0xda, 0x76, 0x42, 0xb6, 0xbe, 0xc4, 0xc0, 0xaa, 0x03, 0xa1, 0x21, 0x01, 0x38, 0xc1, 0x31, + 0x0e, 0x84, 0x62, 0xbf, 0x03, 0x01, 0x7d, 0x16, 0xa6, 0x92, 0xc6, 0xa2, 0xb6, 0xd3, 0x94, 0x03, + 0xc8, 0xb6, 0x4c, 0xc3, 0x04, 0xe1, 0x34, 0xae, 0xfd, 0x8f, 0x2c, 0xb1, 0x78, 0xe8, 0x57, 0x7f, + 0xc4, 0xbf, 0xd5, 0xfe, 0x25, 0x0b, 0x46, 0x16, 0x5d, 0xbf, 0xe5, 0xfa, 0x5b, 0xe8, 0x4b, 0x30, + 0x4a, 0xef, 0xa6, 0x96, 0x13, 0x3b, 0xe2, 0xdc, 0xfb, 0x94, 0xb6, 0xb7, 0xd4, 0x55, 0x31, 0xdf, + 0xde, 0xd9, 0xa2, 0x05, 0xd1, 0x3c, 0xc5, 0xa6, 0xbb, 0xed, 0xf6, 0xc6, 0xbb, 0xa4, 0x19, 0xaf, + 0x92, 0xd8, 0x49, 0x3e, 0x27, 0x29, 0xc3, 0x8a, 0x2a, 0xba, 0x09, 0xc3, 0xb1, 0x13, 0x6e, 0x91, + 0x58, 0x1c, 0x80, 0x99, 0x07, 0x15, 0xaf, 0x89, 0xe9, 0x8e, 0x24, 0x7e, 0x93, 0x24, 0xd7, 0xc2, + 0x3a, 0xab, 0x8a, 0x05, 0x09, 0xfb, 0x6f, 0x0c, 0xc3, 0xf9, 0xa5, 0x46, 0x2d, 0x67, 0x5d, 0x5d, + 0x86, 0xe1, 0x56, 0xe8, 0xee, 0x91, 0x50, 0x8c, 0xb3, 0xa2, 0x52, 0x65, 0xa5, 0x58, 0x40, 0xd1, + 0x2b, 0x30, 0xce, 0x2f, 0xa4, 0x1b, 0x8e, 0xdf, 0xf2, 0xe4, 0x10, 0x9f, 0x15, 0xd8, 0xe3, 0x77, + 0x35, 0x18, 0x36, 0x30, 0x8f, 0xb9, 0xa8, 0x2e, 0xa7, 0x36, 0x63, 0xde, 0x65, 0xf7, 0x15, 0x0b, + 0xa6, 0x79, 0x33, 0x0b, 0x71, 0x1c, 0xba, 0x1b, 0x9d, 0x98, 0x44, 0xb3, 0x43, 0xec, 0xa4, 0x5b, + 0xca, 0x1a, 0xad, 0xdc, 0x11, 0x98, 0xbf, 0x9b, 0xa2, 0xc2, 0x0f, 0xc1, 0x59, 0xd1, 0xee, 0x74, + 0x1a, 0x8c, 0xbb, 0x9a, 0x45, 0xdf, 0x6b, 0xc1, 0x5c, 0x33, 0xf0, 0xe3, 0x30, 0xf0, 0x3c, 0x12, + 0xd6, 0x3b, 0x1b, 0x9e, 0x1b, 0x6d, 0xf3, 0x75, 0x8a, 0xc9, 0x26, 0x3b, 0x09, 0x72, 0xe6, 0x50, + 0x21, 0x89, 0x39, 0xbc, 0x78, 0x78, 0x50, 0x99, 0x5b, 0xca, 0x25, 0x85, 0x7b, 0x34, 0x83, 0x76, + 0x00, 0xd1, 0xab, 0xb4, 0x11, 0x3b, 0x5b, 0x24, 0x69, 0x7c, 0x64, 0xf0, 0xc6, 0x1f, 0x39, 0x3c, + 0xa8, 0xa0, 0xb5, 0x2e, 0x12, 0x38, 0x83, 0x2c, 0x7a, 0x0f, 0xce, 0xd2, 0xd2, 0xae, 0x6f, 0x1d, + 0x1d, 0xbc, 0xb9, 0xd9, 0xc3, 0x83, 0xca, 0xd9, 0xb5, 0x0c, 0x22, 0x38, 0x93, 0xf4, 0xdc, 0x12, + 0x9c, 0xcb, 0x9c, 0x2a, 0x34, 0x0d, 0xc5, 0x1d, 0xc2, 0x59, 0x90, 0x32, 0xa6, 0x3f, 0xd1, 0x59, + 0x18, 0xda, 0x73, 0xbc, 0x8e, 0x58, 0xa5, 0x98, 0xff, 0xf9, 0x4c, 0xe1, 0x15, 0xcb, 0x6e, 0xc2, + 0xf8, 0x92, 0xd3, 0x76, 0x36, 0x5c, 0xcf, 0x8d, 0x5d, 0x12, 0xa1, 0xa7, 0xa0, 0xe8, 0xb4, 0x5a, + 0xec, 0x8a, 0x2c, 0x2f, 0x9e, 0x3b, 0x3c, 0xa8, 0x14, 0x17, 0x5a, 0xf4, 0xac, 0x06, 0x85, 0xb5, + 0x8f, 0x29, 0x06, 0xfa, 0x24, 0x94, 0x5a, 0x61, 0xd0, 0x9e, 0x2d, 0x30, 0x4c, 0x3a, 0x54, 0xa5, + 0x6a, 0x18, 0xb4, 0x53, 0xa8, 0x0c, 0xc7, 0xfe, 0xb5, 0x02, 0x3c, 0xbe, 0x44, 0xda, 0xdb, 0x2b, + 0x8d, 0x9c, 0x4d, 0x77, 0x05, 0x46, 0x77, 0x03, 0xdf, 0x8d, 0x83, 0x30, 0x12, 0x4d, 0xb3, 0xdb, + 0x64, 0x55, 0x94, 0x61, 0x05, 0x45, 0x97, 0xa0, 0xd4, 0x4e, 0x38, 0x81, 0x71, 0xc9, 0x45, 0x30, + 0x1e, 0x80, 0x41, 0x28, 0x46, 0x27, 0x22, 0xa1, 0xb8, 0x05, 0x15, 0xc6, 0x9d, 0x88, 0x84, 0x98, + 0x41, 0x92, 0xe3, 0x94, 0x1e, 0xb4, 0x62, 0x5b, 0xa5, 0x8e, 0x53, 0x0a, 0xc1, 0x1a, 0x16, 0xaa, + 0x43, 0x39, 0x52, 0x93, 0x3a, 0x34, 0xf8, 0xa4, 0x4e, 0xb0, 0xf3, 0x56, 0xcd, 0x64, 0x42, 0xc4, + 0x38, 0x06, 0x86, 0xfb, 0x9e, 0xb7, 0x5f, 0x2f, 0x00, 0xe2, 0x43, 0xf8, 0xe7, 0x6c, 0xe0, 0xee, + 0x74, 0x0f, 0x5c, 0x26, 0xe7, 0x75, 0x2b, 0x68, 0x3a, 0x5e, 0xfa, 0x08, 0x3f, 0xa9, 0xd1, 0xfb, + 0xdf, 0x16, 0x3c, 0xbe, 0xe4, 0xfa, 0x2d, 0x12, 0xe6, 0x2c, 0xc0, 0x87, 0x23, 0x80, 0x1c, 0xef, + 0xa4, 0x37, 0x96, 0x58, 0xe9, 0x04, 0x96, 0x98, 0xfd, 0x47, 0x16, 0x20, 0xfe, 0xd9, 0x1f, 0xb9, + 0x8f, 0xbd, 0xd3, 0xfd, 0xb1, 0x27, 0xb0, 0x2c, 0xec, 0x5b, 0x30, 0xb9, 0xe4, 0xb9, 0xc4, 0x8f, + 0x6b, 0xf5, 0xa5, 0xc0, 0xdf, 0x74, 0xb7, 0xd0, 0x67, 0x60, 0x92, 0xca, 0xb4, 0x41, 0x27, 0x6e, + 0x90, 0x66, 0xe0, 0x33, 0xf6, 0x9f, 0x4a, 0x82, 0xe8, 0xf0, 0xa0, 0x32, 0xb9, 0x6e, 0x40, 0x70, + 0x0a, 0xd3, 0xfe, 0x1d, 0x3a, 0x7e, 0xc1, 0x6e, 0x3b, 0xf0, 0x89, 0x1f, 0x2f, 0x05, 0x7e, 0x8b, + 0x8b, 0x89, 0x9f, 0x81, 0x52, 0x4c, 0xc7, 0x83, 0x8f, 0xdd, 0x65, 0xb9, 0x51, 0xe8, 0x28, 0x1c, + 0x1d, 0x54, 0x1e, 0xe9, 0xae, 0xc1, 0xc6, 0x89, 0xd5, 0x41, 0xdf, 0x06, 0xc3, 0x51, 0xec, 0xc4, + 0x9d, 0x48, 0x8c, 0xe6, 0x13, 0x72, 0x34, 0x1b, 0xac, 0xf4, 0xe8, 0xa0, 0x32, 0xa5, 0xaa, 0xf1, + 0x22, 0x2c, 0x2a, 0xa0, 0xa7, 0x61, 0x64, 0x97, 0x44, 0x91, 0xb3, 0x25, 0x39, 0xfc, 0x29, 0x51, + 0x77, 0x64, 0x95, 0x17, 0x63, 0x09, 0x47, 0x4f, 0xc2, 0x10, 0x09, 0xc3, 0x20, 0x14, 0x7b, 0x74, + 0x42, 0x20, 0x0e, 0x2d, 0xd3, 0x42, 0xcc, 0x61, 0xf6, 0xbf, 0xb7, 0x60, 0x4a, 0xf5, 0x95, 0xb7, + 0x75, 0x0a, 0xac, 0xdc, 0xdb, 0x00, 0x4d, 0xf9, 0x81, 0x11, 0xbb, 0x3d, 0xc6, 0xae, 0x5d, 0xce, + 0x64, 0x50, 0xba, 0x86, 0x31, 0xa1, 0xac, 0x8a, 0x22, 0xac, 0x51, 0xb3, 0x7f, 0xd5, 0x82, 0x33, + 0xa9, 0x2f, 0xba, 0xe5, 0x46, 0x31, 0x7a, 0xa7, 0xeb, 0xab, 0xe6, 0x07, 0xfb, 0x2a, 0x5a, 0x9b, + 0x7d, 0x93, 0x5a, 0xca, 0xb2, 0x44, 0xfb, 0xa2, 0x1b, 0x30, 0xe4, 0xc6, 0x64, 0x57, 0x7e, 0xcc, + 0x93, 0x3d, 0x3f, 0x86, 0xf7, 0x2a, 0x99, 0x91, 0x1a, 0xad, 0x89, 0x39, 0x01, 0xfb, 0x87, 0x8a, + 0x50, 0xe6, 0xcb, 0x76, 0xd5, 0x69, 0x9f, 0xc2, 0x5c, 0xd4, 0xa0, 0xc4, 0xa8, 0xf3, 0x8e, 0x3f, + 0x95, 0xdd, 0x71, 0xd1, 0x9d, 0x79, 0x2a, 0xa7, 0x71, 0x56, 0x50, 0x5d, 0x0d, 0xb4, 0x08, 0x33, + 0x12, 0xc8, 0x01, 0xd8, 0x70, 0x7d, 0x27, 0xdc, 0xa7, 0x65, 0xb3, 0x45, 0x46, 0xf0, 0xb9, 0xde, + 0x04, 0x17, 0x15, 0x3e, 0x27, 0xab, 0xfa, 0x9a, 0x00, 0xb0, 0x46, 0x74, 0xee, 0x65, 0x28, 0x2b, + 0xe4, 0xe3, 0xf0, 0x38, 0x73, 0x9f, 0x85, 0xa9, 0x54, 0x5b, 0xfd, 0xaa, 0x8f, 0xeb, 0x2c, 0xd2, + 0x2f, 0xb3, 0x53, 0x40, 0xf4, 0x7a, 0xd9, 0xdf, 0x13, 0xa7, 0xe8, 0xfb, 0x70, 0xd6, 0xcb, 0x38, + 0x9c, 0xc4, 0x54, 0x0d, 0x7e, 0x98, 0x3d, 0x2e, 0x3e, 0xfb, 0x6c, 0x16, 0x14, 0x67, 0xb6, 0x41, + 0xaf, 0xfd, 0xa0, 0x4d, 0xd7, 0xbc, 0xe3, 0xb1, 0xfe, 0x0a, 0xe9, 0xfb, 0xb6, 0x28, 0xc3, 0x0a, + 0x4a, 0x8f, 0xb0, 0xb3, 0xaa, 0xf3, 0x37, 0xc9, 0x7e, 0x83, 0x78, 0xa4, 0x19, 0x07, 0xe1, 0x87, + 0xda, 0xfd, 0x0b, 0x7c, 0xf4, 0xf9, 0x09, 0x38, 0x26, 0x08, 0x14, 0x6f, 0x92, 0x7d, 0x3e, 0x15, + 0xfa, 0xd7, 0x15, 0x7b, 0x7e, 0xdd, 0xcf, 0x5a, 0x30, 0xa1, 0xbe, 0xee, 0x14, 0xb6, 0xfa, 0xa2, + 0xb9, 0xd5, 0x2f, 0xf4, 0x5c, 0xe0, 0x39, 0x9b, 0xfc, 0xeb, 0x05, 0x38, 0xaf, 0x70, 0x28, 0xbb, + 0xcf, 0xff, 0x88, 0x55, 0x75, 0x15, 0xca, 0xbe, 0xd2, 0x1e, 0x58, 0xa6, 0xd8, 0x9e, 0xe8, 0x0e, + 0x12, 0x1c, 0xca, 0xb5, 0xf9, 0x89, 0x88, 0x3f, 0xae, 0xab, 0xd5, 0x84, 0x0a, 0x6d, 0x11, 0x8a, + 0x1d, 0xb7, 0x25, 0xee, 0x8c, 0x4f, 0xc9, 0xd1, 0xbe, 0x53, 0xab, 0x1e, 0x1d, 0x54, 0x9e, 0xc8, + 0x53, 0xe9, 0xd2, 0xcb, 0x2a, 0x9a, 0xbf, 0x53, 0xab, 0x62, 0x5a, 0x19, 0x2d, 0xc0, 0x94, 0xd4, + 0x5a, 0xdf, 0xa5, 0x1c, 0x54, 0xe0, 0x8b, 0xab, 0x45, 0xe9, 0xc6, 0xb0, 0x09, 0xc6, 0x69, 0x7c, + 0x54, 0x85, 0xe9, 0x9d, 0xce, 0x06, 0xf1, 0x48, 0xcc, 0x3f, 0xf8, 0x26, 0xe1, 0x9a, 0xa3, 0x72, + 0x22, 0x5a, 0xde, 0x4c, 0xc1, 0x71, 0x57, 0x0d, 0xfb, 0xcf, 0xd8, 0x11, 0x2f, 0x46, 0xaf, 0x1e, + 0x06, 0x74, 0x61, 0x51, 0xea, 0x1f, 0xe6, 0x72, 0x1e, 0x64, 0x55, 0xdc, 0x24, 0xfb, 0xeb, 0x01, + 0x65, 0xb6, 0xb3, 0x57, 0x85, 0xb1, 0xe6, 0x4b, 0x3d, 0xd7, 0xfc, 0xcf, 0x17, 0xe0, 0x9c, 0x1a, + 0x01, 0x83, 0xaf, 0xfb, 0xf3, 0x3e, 0x06, 0xcf, 0xc3, 0x58, 0x8b, 0x6c, 0x3a, 0x1d, 0x2f, 0x56, + 0x6a, 0xcc, 0x21, 0xae, 0xca, 0xae, 0x26, 0xc5, 0x58, 0xc7, 0x39, 0xc6, 0xb0, 0xfd, 0xc4, 0x18, + 0xbb, 0x5b, 0x63, 0x87, 0xae, 0x71, 0xb5, 0x6b, 0xac, 0xdc, 0x5d, 0xf3, 0x24, 0x0c, 0xb9, 0xbb, + 0x94, 0xd7, 0x2a, 0x98, 0x2c, 0x54, 0x8d, 0x16, 0x62, 0x0e, 0x43, 0x9f, 0x80, 0x91, 0x66, 0xb0, + 0xbb, 0xeb, 0xf8, 0x2d, 0x76, 0xe5, 0x95, 0x17, 0xc7, 0x28, 0x3b, 0xb6, 0xc4, 0x8b, 0xb0, 0x84, + 0xa1, 0xc7, 0xa1, 0xe4, 0x84, 0x5b, 0xd1, 0x6c, 0x89, 0xe1, 0x8c, 0xd2, 0x96, 0x16, 0xc2, 0xad, + 0x08, 0xb3, 0x52, 0x2a, 0x55, 0xdd, 0x0b, 0xc2, 0x1d, 0xd7, 0xdf, 0xaa, 0xba, 0xa1, 0xd8, 0x12, + 0xea, 0x2e, 0x7c, 0x4b, 0x41, 0xb0, 0x86, 0x85, 0x56, 0x60, 0xa8, 0x1d, 0x84, 0x71, 0x34, 0x3b, + 0xcc, 0x86, 0xfb, 0x89, 0x9c, 0x83, 0x88, 0x7f, 0x6d, 0x3d, 0x08, 0xe3, 0xe4, 0x03, 0xe8, 0xbf, + 0x08, 0xf3, 0xea, 0xe8, 0xdb, 0xa0, 0x48, 0xfc, 0xbd, 0xd9, 0x11, 0x46, 0x65, 0x2e, 0x8b, 0xca, + 0xb2, 0xbf, 0x77, 0xd7, 0x09, 0x93, 0x53, 0x7a, 0xd9, 0xdf, 0xc3, 0xb4, 0x0e, 0xfa, 0x3c, 0x94, + 0xe5, 0x16, 0x8f, 0x84, 0x9a, 0x23, 0x73, 0x89, 0xc9, 0x83, 0x01, 0x93, 0xf7, 0x3a, 0x6e, 0x48, + 0x76, 0x89, 0x1f, 0x47, 0xc9, 0x99, 0x26, 0xa1, 0x11, 0x4e, 0xa8, 0xa1, 0xcf, 0x4b, 0xdd, 0xda, + 0x6a, 0xd0, 0xf1, 0xe3, 0x68, 0xb6, 0xcc, 0xba, 0x97, 0xf9, 0xea, 0x71, 0x37, 0xc1, 0x4b, 0x2b, + 0xdf, 0x78, 0x65, 0x6c, 0x90, 0x42, 0x18, 0x26, 0x3c, 0x77, 0x8f, 0xf8, 0x24, 0x8a, 0xea, 0x61, + 0xb0, 0x41, 0x66, 0x81, 0xf5, 0xfc, 0x7c, 0xf6, 0x63, 0x40, 0xb0, 0x41, 0x16, 0x67, 0x0e, 0x0f, + 0x2a, 0x13, 0xb7, 0xf4, 0x3a, 0xd8, 0x24, 0x81, 0xee, 0xc0, 0x24, 0x95, 0x6b, 0xdc, 0x84, 0xe8, + 0x58, 0x3f, 0xa2, 0x4c, 0xfa, 0xc0, 0x46, 0x25, 0x9c, 0x22, 0x82, 0xde, 0x80, 0xb2, 0xe7, 0x6e, + 0x92, 0xe6, 0x7e, 0xd3, 0x23, 0xb3, 0xe3, 0x8c, 0x62, 0xe6, 0xb6, 0xba, 0x25, 0x91, 0xb8, 0x5c, + 0xa4, 0xfe, 0xe2, 0xa4, 0x3a, 0xba, 0x0b, 0x8f, 0xc4, 0x24, 0xdc, 0x75, 0x7d, 0x87, 0x6e, 0x07, + 0x21, 0x2f, 0xb0, 0x27, 0x95, 0x09, 0xb6, 0xde, 0x2e, 0x8a, 0xa1, 0x7b, 0x64, 0x3d, 0x13, 0x0b, + 0xe7, 0xd4, 0x46, 0xb7, 0x61, 0x8a, 0xed, 0x84, 0x7a, 0xc7, 0xf3, 0xea, 0x81, 0xe7, 0x36, 0xf7, + 0x67, 0x27, 0x19, 0xc1, 0x4f, 0xc8, 0x7b, 0xa1, 0x66, 0x82, 0x8f, 0x0e, 0x2a, 0x90, 0xfc, 0xc3, + 0xe9, 0xda, 0x68, 0x83, 0xe9, 0xd0, 0x3b, 0xa1, 0x1b, 0xef, 0xd3, 0xf5, 0x4b, 0xee, 0xc7, 0xb3, + 0x53, 0x3d, 0x45, 0x61, 0x1d, 0x55, 0x29, 0xda, 0xf5, 0x42, 0x9c, 0x26, 0x48, 0xb7, 0x76, 0x14, + 0xb7, 0x5c, 0x7f, 0x76, 0x9a, 0x9d, 0x18, 0x6a, 0x67, 0x34, 0x68, 0x21, 0xe6, 0x30, 0xa6, 0x3f, + 0xa7, 0x3f, 0x6e, 0xd3, 0x13, 0x74, 0x86, 0x21, 0x26, 0xfa, 0x73, 0x09, 0xc0, 0x09, 0x0e, 0x65, + 0x6a, 0xe2, 0x78, 0x7f, 0x16, 0x31, 0x54, 0xb5, 0x5d, 0xd6, 0xd7, 0x3f, 0x8f, 0x69, 0x39, 0xba, + 0x05, 0x23, 0xc4, 0xdf, 0x5b, 0x09, 0x83, 0xdd, 0xd9, 0x33, 0xf9, 0x7b, 0x76, 0x99, 0xa3, 0xf0, + 0x03, 0x3d, 0x11, 0xf0, 0x44, 0x31, 0x96, 0x24, 0xd0, 0x7d, 0x98, 0xcd, 0x98, 0x11, 0x3e, 0x01, + 0x67, 0xd9, 0x04, 0xbc, 0x26, 0xea, 0xce, 0xae, 0xe7, 0xe0, 0x1d, 0xf5, 0x80, 0xe1, 0x5c, 0xea, + 0xe8, 0x0b, 0x30, 0xc1, 0x37, 0x14, 0x7f, 0x7c, 0x8b, 0x66, 0xcf, 0xb1, 0xaf, 0xb9, 0x94, 0xbf, + 0x39, 0x39, 0xe2, 0xe2, 0x39, 0xd1, 0xa1, 0x09, 0xbd, 0x34, 0xc2, 0x26, 0x35, 0x7b, 0x03, 0x26, + 0xd5, 0xb9, 0xc5, 0x96, 0x0e, 0xaa, 0xc0, 0x10, 0xe3, 0x76, 0x84, 0x7e, 0xab, 0x4c, 0x67, 0x8a, + 0x71, 0x42, 0x98, 0x97, 0xb3, 0x99, 0x72, 0xdf, 0x27, 0x8b, 0xfb, 0x31, 0xe1, 0x52, 0x75, 0x51, + 0x9b, 0x29, 0x09, 0xc0, 0x09, 0x8e, 0xfd, 0xff, 0x38, 0xd7, 0x98, 0x1c, 0x8e, 0x03, 0x5c, 0x07, + 0xcf, 0xc2, 0xe8, 0x76, 0x10, 0xc5, 0x14, 0x9b, 0xb5, 0x31, 0x94, 0xf0, 0x89, 0x37, 0x44, 0x39, + 0x56, 0x18, 0xe8, 0x55, 0x98, 0x68, 0xea, 0x0d, 0x88, 0xbb, 0x4c, 0x0d, 0x81, 0xd1, 0x3a, 0x36, + 0x71, 0xd1, 0x2b, 0x30, 0xca, 0x9e, 0xce, 0x9b, 0x81, 0x27, 0x98, 0x2c, 0x79, 0x21, 0x8f, 0xd6, + 0x45, 0xf9, 0x91, 0xf6, 0x1b, 0x2b, 0x6c, 0x74, 0x19, 0x86, 0x69, 0x17, 0x6a, 0x75, 0x71, 0x8b, + 0x28, 0x55, 0xcd, 0x0d, 0x56, 0x8a, 0x05, 0xd4, 0xfe, 0x5b, 0x05, 0x6d, 0x94, 0xa9, 0x44, 0x4a, + 0x50, 0x1d, 0x46, 0xee, 0x39, 0x6e, 0xec, 0xfa, 0x5b, 0x82, 0x5d, 0x78, 0xba, 0xe7, 0x95, 0xc2, + 0x2a, 0xbd, 0xc5, 0x2b, 0xf0, 0x4b, 0x4f, 0xfc, 0xc1, 0x92, 0x0c, 0xa5, 0x18, 0x76, 0x7c, 0x9f, + 0x52, 0x2c, 0x0c, 0x4a, 0x11, 0xf3, 0x0a, 0x9c, 0xa2, 0xf8, 0x83, 0x25, 0x19, 0xf4, 0x0e, 0x80, + 0x5c, 0x96, 0xa4, 0x25, 0x9e, 0xac, 0x9f, 0xed, 0x4f, 0x74, 0x5d, 0xd5, 0x59, 0x9c, 0xa4, 0x57, + 0x6a, 0xf2, 0x1f, 0x6b, 0xf4, 0xec, 0x98, 0xb1, 0x55, 0xdd, 0x9d, 0x41, 0xdf, 0x49, 0x4f, 0x02, + 0x27, 0x8c, 0x49, 0x6b, 0x21, 0x16, 0x83, 0xf3, 0xc9, 0xc1, 0x64, 0x8a, 0x75, 0x77, 0x97, 0xe8, + 0xa7, 0x86, 0x20, 0x82, 0x13, 0x7a, 0xf6, 0x2f, 0x16, 0x61, 0x36, 0xaf, 0xbb, 0x74, 0xd1, 0x91, + 0xfb, 0x6e, 0xbc, 0x44, 0xb9, 0x21, 0xcb, 0x5c, 0x74, 0xcb, 0xa2, 0x1c, 0x2b, 0x0c, 0x3a, 0xfb, + 0x91, 0xbb, 0x25, 0x45, 0xc2, 0xa1, 0x64, 0xf6, 0x1b, 0xac, 0x14, 0x0b, 0x28, 0xc5, 0x0b, 0x89, + 0x13, 0x09, 0x9b, 0x08, 0x6d, 0x95, 0x60, 0x56, 0x8a, 0x05, 0x54, 0xd7, 0x37, 0x95, 0xfa, 0xe8, + 0x9b, 0x8c, 0x21, 0x1a, 0x3a, 0xd9, 0x21, 0x42, 0x5f, 0x04, 0xd8, 0x74, 0x7d, 0x37, 0xda, 0x66, + 0xd4, 0x87, 0x8f, 0x4d, 0x5d, 0xf1, 0x52, 0x2b, 0x8a, 0x0a, 0xd6, 0x28, 0xa2, 0x97, 0x60, 0x4c, + 0x6d, 0xc0, 0x5a, 0x95, 0x3d, 0x10, 0x69, 0x0f, 0xee, 0xc9, 0x69, 0x54, 0xc5, 0x3a, 0x9e, 0xfd, + 0x6e, 0x7a, 0xbd, 0x88, 0x1d, 0xa0, 0x8d, 0xaf, 0x35, 0xe8, 0xf8, 0x16, 0x7a, 0x8f, 0xaf, 0xfd, + 0xeb, 0x45, 0x98, 0x32, 0x1a, 0xeb, 0x44, 0x03, 0x9c, 0x59, 0xd7, 0xe9, 0x3d, 0xe7, 0xc4, 0x44, + 0xec, 0x3f, 0xbb, 0xff, 0x56, 0xd1, 0xef, 0x42, 0xba, 0x03, 0x78, 0x7d, 0xf4, 0x45, 0x28, 0x7b, + 0x4e, 0xc4, 0x74, 0x57, 0x44, 0xec, 0xbb, 0x41, 0x88, 0x25, 0x72, 0x84, 0x13, 0xc5, 0xda, 0x55, + 0xc3, 0x69, 0x27, 0x24, 0xe9, 0x85, 0x4c, 0x79, 0x1f, 0x69, 0x74, 0xa3, 0x3a, 0x41, 0x19, 0xa4, + 0x7d, 0xcc, 0x61, 0xe8, 0x15, 0x18, 0x0f, 0x09, 0x5b, 0x15, 0x4b, 0x94, 0x95, 0x63, 0xcb, 0x6c, + 0x28, 0xe1, 0xf9, 0xb0, 0x06, 0xc3, 0x06, 0x66, 0xc2, 0xca, 0x0f, 0xf7, 0x60, 0xe5, 0x9f, 0x86, + 0x11, 0xf6, 0x43, 0xad, 0x00, 0x35, 0x1b, 0x35, 0x5e, 0x8c, 0x25, 0x3c, 0xbd, 0x60, 0x46, 0x07, + 0x5c, 0x30, 0x9f, 0x84, 0xc9, 0xaa, 0x43, 0x76, 0x03, 0x7f, 0xd9, 0x6f, 0xb5, 0x03, 0xd7, 0x8f, + 0xd1, 0x2c, 0x94, 0xd8, 0xed, 0xc0, 0xf7, 0x76, 0x89, 0x52, 0xc0, 0x25, 0xca, 0x98, 0xdb, 0x5b, + 0x70, 0xae, 0x1a, 0xdc, 0xf3, 0xef, 0x39, 0x61, 0x6b, 0xa1, 0x5e, 0xd3, 0xe4, 0xdc, 0x35, 0x29, + 0x67, 0x71, 0x23, 0x96, 0xcc, 0x33, 0x55, 0xab, 0xc9, 0xef, 0xda, 0x15, 0xd7, 0x23, 0x39, 0xda, + 0x88, 0xbf, 0x53, 0x30, 0x5a, 0x4a, 0xf0, 0xd5, 0x83, 0x91, 0x95, 0xfb, 0x60, 0xf4, 0x26, 0x8c, + 0x6e, 0xba, 0xc4, 0x6b, 0x61, 0xb2, 0x29, 0x96, 0xd8, 0x53, 0xf9, 0xef, 0xf2, 0x2b, 0x14, 0x53, + 0x6a, 0x9f, 0xb8, 0x94, 0xb6, 0x22, 0x2a, 0x63, 0x45, 0x06, 0xed, 0xc0, 0xb4, 0x14, 0x03, 0x24, + 0x54, 0x2c, 0xb8, 0xa7, 0x7b, 0xc9, 0x16, 0x26, 0xf1, 0xb3, 0x87, 0x07, 0x95, 0x69, 0x9c, 0x22, + 0x83, 0xbb, 0x08, 0x53, 0xb1, 0x6c, 0x97, 0x1e, 0xad, 0x25, 0x36, 0xfc, 0x4c, 0x2c, 0x63, 0x12, + 0x26, 0x2b, 0xb5, 0x7f, 0xd4, 0x82, 0x47, 0xbb, 0x46, 0x46, 0x48, 0xda, 0x27, 0x3c, 0x0b, 0x69, + 0xc9, 0xb7, 0xd0, 0x5f, 0xf2, 0xb5, 0xff, 0xb1, 0x05, 0x67, 0x97, 0x77, 0xdb, 0xf1, 0x7e, 0xd5, + 0x35, 0x5f, 0x77, 0x5e, 0x86, 0xe1, 0x5d, 0xd2, 0x72, 0x3b, 0xbb, 0x62, 0xe6, 0x2a, 0xf2, 0xf8, + 0x59, 0x65, 0xa5, 0x47, 0x07, 0x95, 0x89, 0x46, 0x1c, 0x84, 0xce, 0x16, 0xe1, 0x05, 0x58, 0xa0, + 0xb3, 0x43, 0xdc, 0x7d, 0x9f, 0xdc, 0x72, 0x77, 0x5d, 0x69, 0x67, 0xd1, 0x53, 0x77, 0x36, 0x2f, + 0x07, 0x74, 0xfe, 0xcd, 0x8e, 0xe3, 0xc7, 0x6e, 0xbc, 0x2f, 0x1e, 0x66, 0x24, 0x11, 0x9c, 0xd0, + 0xb3, 0xbf, 0x69, 0xc1, 0x94, 0x5c, 0xf7, 0x0b, 0xad, 0x56, 0x48, 0xa2, 0x08, 0xcd, 0x41, 0xc1, + 0x6d, 0x8b, 0x5e, 0x82, 0xe8, 0x65, 0xa1, 0x56, 0xc7, 0x05, 0xb7, 0x8d, 0xea, 0x50, 0xe6, 0xe6, + 0x1a, 0xc9, 0xe2, 0x1a, 0xc8, 0xe8, 0x83, 0xf5, 0x60, 0x5d, 0xd6, 0xc4, 0x09, 0x11, 0xc9, 0xc1, + 0xb1, 0x33, 0xb3, 0x68, 0xbe, 0x7a, 0xdd, 0x10, 0xe5, 0x58, 0x61, 0xa0, 0x2b, 0x30, 0xea, 0x07, + 0x2d, 0x6e, 0x3d, 0xc3, 0x6f, 0x3f, 0xb6, 0x64, 0xd7, 0x44, 0x19, 0x56, 0x50, 0xfb, 0x07, 0x2d, + 0x18, 0x97, 0x5f, 0x36, 0x20, 0x33, 0x49, 0xb7, 0x56, 0xc2, 0x48, 0x26, 0x5b, 0x8b, 0x32, 0x83, + 0x0c, 0x62, 0xf0, 0x80, 0xc5, 0xe3, 0xf0, 0x80, 0xf6, 0x8f, 0x14, 0x60, 0x52, 0x76, 0xa7, 0xd1, + 0xd9, 0x88, 0x48, 0x8c, 0xd6, 0xa1, 0xec, 0xf0, 0x21, 0x27, 0x72, 0xc5, 0x3e, 0x99, 0x2d, 0x7c, + 0x18, 0xf3, 0x93, 0x5c, 0xcb, 0x0b, 0xb2, 0x36, 0x4e, 0x08, 0x21, 0x0f, 0x66, 0xfc, 0x20, 0x66, + 0x47, 0xb4, 0x82, 0xf7, 0x7a, 0x02, 0x49, 0x53, 0x3f, 0x2f, 0xa8, 0xcf, 0xac, 0xa5, 0xa9, 0xe0, + 0x6e, 0xc2, 0x68, 0x59, 0x2a, 0x3c, 0x8a, 0xf9, 0xe2, 0x86, 0x3e, 0x0b, 0xd9, 0xfa, 0x0e, 0xfb, + 0x57, 0x2c, 0x28, 0x4b, 0xb4, 0xd3, 0x78, 0xed, 0x5a, 0x85, 0x91, 0x88, 0x4d, 0x82, 0x1c, 0x1a, + 0xbb, 0x57, 0xc7, 0xf9, 0x7c, 0x25, 0x37, 0x0f, 0xff, 0x1f, 0x61, 0x49, 0x83, 0xe9, 0xbb, 0x55, + 0xf7, 0x3f, 0x22, 0xfa, 0x6e, 0xd5, 0x9f, 0x9c, 0x1b, 0xe6, 0xbf, 0xb3, 0x3e, 0x6b, 0x62, 0x2d, + 0x65, 0x90, 0xda, 0x21, 0xd9, 0x74, 0xef, 0xa7, 0x19, 0xa4, 0x3a, 0x2b, 0xc5, 0x02, 0x8a, 0xde, + 0x81, 0xf1, 0xa6, 0x54, 0x74, 0x26, 0xc7, 0xc0, 0xe5, 0x9e, 0x4a, 0x77, 0xf5, 0x3e, 0xc3, 0x2d, + 0x6b, 0x97, 0xb4, 0xfa, 0xd8, 0xa0, 0x66, 0x3e, 0xb7, 0x17, 0xfb, 0x3d, 0xb7, 0x27, 0x74, 0xf3, + 0x1f, 0x9f, 0x7f, 0xcc, 0x82, 0x61, 0xae, 0x2e, 0x1b, 0x4c, 0xbf, 0xa8, 0x3d, 0x57, 0x25, 0x63, + 0x77, 0x97, 0x16, 0x8a, 0xe7, 0x27, 0xb4, 0x0a, 0x65, 0xf6, 0x83, 0xa9, 0x0d, 0x8a, 0xf9, 0x26, + 0xc5, 0xbc, 0x55, 0xbd, 0x83, 0x77, 0x65, 0x35, 0x9c, 0x50, 0xb0, 0xbf, 0x56, 0xa4, 0x47, 0x55, + 0x82, 0x6a, 0xdc, 0xe0, 0xd6, 0xc3, 0xbb, 0xc1, 0x0b, 0x0f, 0xeb, 0x06, 0xdf, 0x82, 0xa9, 0xa6, + 0xf6, 0xb8, 0x95, 0xcc, 0xe4, 0x95, 0x9e, 0x8b, 0x44, 0x7b, 0x07, 0xe3, 0x2a, 0xa3, 0x25, 0x93, + 0x08, 0x4e, 0x53, 0x45, 0xdf, 0x09, 0xe3, 0x7c, 0x9e, 0x45, 0x2b, 0xdc, 0x62, 0xe1, 0x13, 0xf9, + 0xeb, 0x45, 0x6f, 0x82, 0xad, 0xc4, 0x86, 0x56, 0x1d, 0x1b, 0xc4, 0xec, 0x5f, 0x1c, 0x85, 0xa1, + 0xe5, 0x3d, 0xe2, 0xc7, 0xa7, 0x70, 0x20, 0x35, 0x61, 0xd2, 0xf5, 0xf7, 0x02, 0x6f, 0x8f, 0xb4, + 0x38, 0xfc, 0x38, 0x97, 0xeb, 0x23, 0x82, 0xf4, 0x64, 0xcd, 0x20, 0x81, 0x53, 0x24, 0x1f, 0x86, + 0x84, 0x79, 0x1d, 0x86, 0xf9, 0xdc, 0x0b, 0xf1, 0x32, 0x53, 0x19, 0xcc, 0x06, 0x51, 0xec, 0x82, + 0x44, 0xfa, 0xe5, 0xda, 0x67, 0x51, 0x1d, 0xbd, 0x0b, 0x93, 0x9b, 0x6e, 0x18, 0xc5, 0x54, 0x34, + 0x8c, 0x62, 0x67, 0xb7, 0xfd, 0x00, 0x12, 0xa5, 0x1a, 0x87, 0x15, 0x83, 0x12, 0x4e, 0x51, 0x46, + 0x5b, 0x30, 0x41, 0x85, 0x9c, 0xa4, 0xa9, 0x91, 0x63, 0x37, 0xa5, 0x54, 0x46, 0xb7, 0x74, 0x42, + 0xd8, 0xa4, 0x4b, 0x0f, 0x93, 0x26, 0x13, 0x8a, 0x46, 0x19, 0x47, 0xa1, 0x0e, 0x13, 0x2e, 0x0d, + 0x71, 0x18, 0x3d, 0x93, 0x98, 0xd9, 0x4a, 0xd9, 0x3c, 0x93, 0x34, 0xe3, 0x94, 0x2f, 0x41, 0x99, + 0xd0, 0x21, 0xa4, 0x84, 0x85, 0x62, 0xfc, 0xea, 0x60, 0x7d, 0x5d, 0x75, 0x9b, 0x61, 0x60, 0xca, + 0xf2, 0xcb, 0x92, 0x12, 0x4e, 0x88, 0xa2, 0x25, 0x18, 0x8e, 0x48, 0xe8, 0x92, 0x48, 0xa8, 0xc8, + 0x7b, 0x4c, 0x23, 0x43, 0xe3, 0xb6, 0xe7, 0xfc, 0x37, 0x16, 0x55, 0xe9, 0xf2, 0x72, 0x98, 0x34, + 0xc4, 0xb4, 0xe2, 0xda, 0xf2, 0x5a, 0x60, 0xa5, 0x58, 0x40, 0xd1, 0x1b, 0x30, 0x12, 0x12, 0x8f, + 0x29, 0x8b, 0x26, 0x06, 0x5f, 0xe4, 0x5c, 0xf7, 0xc4, 0xeb, 0x61, 0x49, 0x00, 0xdd, 0x04, 0x14, + 0x12, 0xca, 0x43, 0xb8, 0xfe, 0x96, 0x32, 0xe6, 0x10, 0xba, 0xee, 0xc7, 0x44, 0xfb, 0x67, 0x70, + 0x82, 0x21, 0xad, 0x52, 0x71, 0x46, 0x35, 0x74, 0x1d, 0x66, 0x54, 0x69, 0xcd, 0x8f, 0x62, 0xc7, + 0x6f, 0x12, 0xa6, 0xe6, 0x2e, 0x27, 0x5c, 0x11, 0x4e, 0x23, 0xe0, 0xee, 0x3a, 0xf6, 0x4f, 0x53, + 0x76, 0x86, 0x8e, 0xd6, 0x29, 0xf0, 0x02, 0xaf, 0x9b, 0xbc, 0xc0, 0xf9, 0xdc, 0x99, 0xcb, 0xe1, + 0x03, 0x0e, 0x2d, 0x18, 0xd3, 0x66, 0x36, 0x59, 0xb3, 0x56, 0x8f, 0x35, 0xdb, 0x81, 0x69, 0xba, + 0xd2, 0x6f, 0x6f, 0x44, 0x24, 0xdc, 0x23, 0x2d, 0xb6, 0x30, 0x0b, 0x0f, 0xb6, 0x30, 0xd5, 0x2b, + 0xf3, 0xad, 0x14, 0x41, 0xdc, 0xd5, 0x04, 0x7a, 0x59, 0x6a, 0x4e, 0x8a, 0x86, 0x91, 0x16, 0xd7, + 0x8a, 0x1c, 0x1d, 0x54, 0xa6, 0xb5, 0x0f, 0xd1, 0x35, 0x25, 0xf6, 0x97, 0xe4, 0x37, 0xaa, 0xd7, + 0xfc, 0xa6, 0x5a, 0x2c, 0xa9, 0xd7, 0x7c, 0xb5, 0x1c, 0x70, 0x82, 0x43, 0xf7, 0x28, 0x15, 0x41, + 0xd2, 0xaf, 0xf9, 0x54, 0x40, 0xc1, 0x0c, 0x62, 0xbf, 0x00, 0xb0, 0x7c, 0x9f, 0x34, 0xf9, 0x52, + 0xd7, 0x1f, 0x20, 0xad, 0xfc, 0x07, 0x48, 0xfb, 0x3f, 0x5a, 0x30, 0xb9, 0xb2, 0x64, 0x88, 0x89, + 0xf3, 0x00, 0x5c, 0x36, 0x7a, 0xeb, 0xad, 0x35, 0xa9, 0x5b, 0xe7, 0xea, 0x51, 0x55, 0x8a, 0x35, + 0x0c, 0x74, 0x1e, 0x8a, 0x5e, 0xc7, 0x17, 0x22, 0xcb, 0xc8, 0xe1, 0x41, 0xa5, 0x78, 0xab, 0xe3, + 0x63, 0x5a, 0xa6, 0x59, 0x08, 0x16, 0x07, 0xb6, 0x10, 0xec, 0xeb, 0x5e, 0x85, 0x2a, 0x30, 0x74, + 0xef, 0x9e, 0xdb, 0xe2, 0x46, 0xec, 0x42, 0xef, 0xff, 0xd6, 0x5b, 0xb5, 0x6a, 0x84, 0x79, 0xb9, + 0xfd, 0xd5, 0x22, 0xcc, 0xad, 0x78, 0xe4, 0xfe, 0x07, 0x34, 0xe4, 0x1f, 0xd4, 0xbe, 0xf1, 0x78, + 0xfc, 0xe2, 0x71, 0x6d, 0x58, 0xfb, 0x8f, 0xc7, 0x26, 0x8c, 0xf0, 0xc7, 0x6c, 0x69, 0xd6, 0xff, + 0x6a, 0x56, 0xeb, 0xf9, 0x03, 0x32, 0xcf, 0x1f, 0xc5, 0x85, 0x39, 0xbf, 0xba, 0x69, 0x45, 0x29, + 0x96, 0xc4, 0xe7, 0x3e, 0x03, 0xe3, 0x3a, 0xe6, 0xb1, 0xac, 0xc9, 0xff, 0x4a, 0x11, 0xa6, 0x69, + 0x0f, 0x1e, 0xea, 0x44, 0xdc, 0xe9, 0x9e, 0x88, 0x93, 0xb6, 0x28, 0xee, 0x3f, 0x1b, 0xef, 0xa4, + 0x67, 0xe3, 0xf9, 0xbc, 0xd9, 0x38, 0xed, 0x39, 0xf8, 0x5e, 0x0b, 0xce, 0xac, 0x78, 0x41, 0x73, + 0x27, 0x65, 0xf5, 0xfb, 0x12, 0x8c, 0xd1, 0x73, 0x3c, 0x32, 0xbc, 0x88, 0x0c, 0xbf, 0x32, 0x01, + 0xc2, 0x3a, 0x9e, 0x56, 0xed, 0xce, 0x9d, 0x5a, 0x35, 0xcb, 0x1d, 0x4d, 0x80, 0xb0, 0x8e, 0x67, + 0x7f, 0xc3, 0x82, 0x0b, 0xd7, 0x97, 0x96, 0x93, 0xa5, 0xd8, 0xe5, 0x11, 0x47, 0xa5, 0xc0, 0x96, + 0xd6, 0x95, 0x44, 0x0a, 0xac, 0xb2, 0x5e, 0x08, 0xe8, 0x47, 0xc5, 0xdb, 0xf3, 0xa7, 0x2c, 0x38, + 0x73, 0xdd, 0x8d, 0xe9, 0xb5, 0x9c, 0xf6, 0xcd, 0xa2, 0xf7, 0x72, 0xe4, 0xc6, 0x41, 0xb8, 0x9f, + 0xf6, 0xcd, 0xc2, 0x0a, 0x82, 0x35, 0x2c, 0xde, 0xf2, 0x9e, 0xcb, 0xcc, 0xa8, 0x0a, 0xa6, 0x2a, + 0x0a, 0x8b, 0x72, 0xac, 0x30, 0xe8, 0x87, 0xb5, 0xdc, 0x90, 0x89, 0x12, 0xfb, 0xe2, 0x84, 0x55, + 0x1f, 0x56, 0x95, 0x00, 0x9c, 0xe0, 0xd8, 0x7f, 0x68, 0x41, 0xe5, 0xba, 0xd7, 0x89, 0x62, 0x12, + 0x6e, 0x46, 0x39, 0xa7, 0xe3, 0x0b, 0x50, 0x26, 0x52, 0x70, 0x17, 0xbd, 0x56, 0xac, 0xa6, 0x92, + 0xe8, 0xb9, 0x8b, 0x98, 0xc2, 0x1b, 0xc0, 0x87, 0xe0, 0x78, 0x46, 0xe0, 0x2b, 0x80, 0x88, 0xde, + 0x96, 0xee, 0x33, 0xc7, 0x9c, 0x6f, 0x96, 0xbb, 0xa0, 0x38, 0xa3, 0x86, 0xfd, 0xa3, 0x16, 0x9c, + 0x53, 0x1f, 0xfc, 0x91, 0xfb, 0x4c, 0xfb, 0xe7, 0x0a, 0x30, 0x71, 0x63, 0x7d, 0xbd, 0x7e, 0x9d, + 0xc4, 0xe2, 0xda, 0xee, 0xaf, 0x5b, 0xc7, 0x9a, 0x8a, 0xb0, 0x97, 0x14, 0xd8, 0x89, 0x5d, 0x6f, + 0x9e, 0xbb, 0x5e, 0xcf, 0xd7, 0xfc, 0xf8, 0x76, 0xd8, 0x88, 0x43, 0xd7, 0xdf, 0xca, 0x54, 0x2a, + 0x4a, 0xe6, 0xa2, 0x98, 0xc7, 0x5c, 0xa0, 0x17, 0x60, 0x98, 0xf9, 0x7e, 0xcb, 0x49, 0x78, 0x4c, + 0x09, 0x51, 0xac, 0xf4, 0xe8, 0xa0, 0x52, 0xbe, 0x83, 0x6b, 0xfc, 0x0f, 0x16, 0xa8, 0xe8, 0x0e, + 0x8c, 0x6d, 0xc7, 0x71, 0xfb, 0x06, 0x71, 0x5a, 0x24, 0x94, 0xc7, 0xe1, 0xc5, 0xac, 0xe3, 0x90, + 0x0e, 0x02, 0x47, 0x4b, 0x4e, 0x90, 0xa4, 0x2c, 0xc2, 0x3a, 0x1d, 0xbb, 0x01, 0x90, 0xc0, 0x4e, + 0x48, 0xa1, 0x62, 0xff, 0xbe, 0x05, 0x23, 0xdc, 0x0d, 0x2f, 0x44, 0xaf, 0x41, 0x89, 0xdc, 0x27, + 0x4d, 0xc1, 0x2a, 0x67, 0x76, 0x38, 0xe1, 0xb4, 0xf8, 0xf3, 0x00, 0xfd, 0x8f, 0x59, 0x2d, 0x74, + 0x03, 0x46, 0x68, 0x6f, 0xaf, 0x2b, 0x9f, 0xc4, 0x27, 0xf2, 0xbe, 0x58, 0x4d, 0x3b, 0x67, 0xce, + 0x44, 0x11, 0x96, 0xd5, 0x99, 0xaa, 0xbb, 0xd9, 0x6e, 0xd0, 0x13, 0x3b, 0xee, 0xc5, 0x58, 0xac, + 0x2f, 0xd5, 0x39, 0x92, 0xa0, 0xc6, 0x55, 0xdd, 0xb2, 0x10, 0x27, 0x44, 0xec, 0x75, 0x28, 0xd3, + 0x49, 0x5d, 0xf0, 0x5c, 0xa7, 0xb7, 0x96, 0xfd, 0x19, 0x28, 0x4b, 0x8d, 0x77, 0x24, 0x3c, 0xb9, + 0x18, 0x55, 0xa9, 0x10, 0x8f, 0x70, 0x02, 0xb7, 0x37, 0xe1, 0x2c, 0x33, 0x75, 0x70, 0xe2, 0x6d, + 0x63, 0x8f, 0xf5, 0x5f, 0xcc, 0xcf, 0x0a, 0xc9, 0x93, 0xcf, 0xcc, 0xac, 0xe6, 0x2c, 0x31, 0x2e, + 0x29, 0x26, 0x52, 0xa8, 0xfd, 0x07, 0x25, 0x78, 0xac, 0xd6, 0xc8, 0xf7, 0xd0, 0x7c, 0x05, 0xc6, + 0x39, 0x5f, 0x4a, 0x97, 0xb6, 0xe3, 0x89, 0x76, 0xd5, 0x43, 0xe0, 0xba, 0x06, 0xc3, 0x06, 0x26, + 0xba, 0x00, 0x45, 0xf7, 0x3d, 0x3f, 0x6d, 0x77, 0x5c, 0x7b, 0x73, 0x0d, 0xd3, 0x72, 0x0a, 0xa6, + 0x2c, 0x2e, 0xbf, 0x3b, 0x14, 0x58, 0xb1, 0xb9, 0xaf, 0xc3, 0xa4, 0x1b, 0x35, 0x23, 0xb7, 0xe6, + 0xd3, 0x73, 0x46, 0x3b, 0xa9, 0x94, 0x56, 0x84, 0x76, 0x5a, 0x41, 0x71, 0x0a, 0x5b, 0xbb, 0xc8, + 0x86, 0x06, 0x66, 0x93, 0xfb, 0xba, 0x36, 0x51, 0x09, 0xa0, 0xcd, 0xbe, 0x2e, 0x62, 0x56, 0x7c, + 0x42, 0x02, 0xe0, 0x1f, 0x1c, 0x61, 0x09, 0xa3, 0x22, 0x67, 0x73, 0xdb, 0x69, 0x2f, 0x74, 0xe2, + 0xed, 0xaa, 0x1b, 0x35, 0x83, 0x3d, 0x12, 0xee, 0x33, 0x6d, 0xc1, 0x68, 0x22, 0x72, 0x2a, 0xc0, + 0xd2, 0x8d, 0x85, 0x3a, 0xc5, 0xc4, 0xdd, 0x75, 0x4c, 0x36, 0x18, 0x4e, 0x82, 0x0d, 0x5e, 0x80, + 0x29, 0xd9, 0x4c, 0x83, 0x44, 0xec, 0x52, 0x1c, 0x63, 0x1d, 0x53, 0xb6, 0xc5, 0xa2, 0x58, 0x75, + 0x2b, 0x8d, 0x8f, 0x5e, 0x86, 0x09, 0xd7, 0x77, 0x63, 0xd7, 0x89, 0x83, 0x90, 0xb1, 0x14, 0x5c, + 0x31, 0xc0, 0x4c, 0xf7, 0x6a, 0x3a, 0x00, 0x9b, 0x78, 0xf6, 0x7f, 0x2d, 0xc1, 0x0c, 0x9b, 0xb6, + 0x6f, 0xad, 0xb0, 0x8f, 0xcc, 0x0a, 0xbb, 0xd3, 0xbd, 0xc2, 0x4e, 0x82, 0xbf, 0xff, 0x30, 0x97, + 0xd9, 0xbb, 0x50, 0x56, 0xc6, 0xcf, 0xd2, 0xfb, 0xc1, 0xca, 0xf1, 0x7e, 0xe8, 0xcf, 0x7d, 0xc8, + 0x77, 0xeb, 0x62, 0xe6, 0xbb, 0xf5, 0xdf, 0xb3, 0x20, 0xb1, 0x01, 0x45, 0x37, 0xa0, 0xdc, 0x0e, + 0x98, 0x9d, 0x45, 0x28, 0x8d, 0x97, 0x1e, 0xcb, 0xbc, 0xa8, 0xf8, 0xa5, 0xc8, 0xc7, 0xaf, 0x2e, + 0x6b, 0xe0, 0xa4, 0x32, 0x5a, 0x84, 0x91, 0x76, 0x48, 0x1a, 0x31, 0xf3, 0xf9, 0xed, 0x4b, 0x87, + 0xaf, 0x11, 0x8e, 0x8f, 0x65, 0x45, 0xfb, 0xe7, 0x2d, 0x00, 0xfe, 0x34, 0xec, 0xf8, 0x5b, 0xe4, + 0x14, 0xd4, 0xdd, 0x55, 0x28, 0x45, 0x6d, 0xd2, 0xec, 0x65, 0x01, 0x93, 0xf4, 0xa7, 0xd1, 0x26, + 0xcd, 0x64, 0xc0, 0xe9, 0x3f, 0xcc, 0x6a, 0xdb, 0xdf, 0x07, 0x30, 0x99, 0xa0, 0xd5, 0x62, 0xb2, + 0x8b, 0x9e, 0x33, 0x7c, 0x00, 0xcf, 0xa7, 0x7c, 0x00, 0xcb, 0x0c, 0x5b, 0xd3, 0xac, 0xbe, 0x0b, + 0xc5, 0x5d, 0xe7, 0xbe, 0x50, 0x9d, 0x3d, 0xd3, 0xbb, 0x1b, 0x94, 0xfe, 0xfc, 0xaa, 0x73, 0x9f, + 0x0b, 0x89, 0xcf, 0xc8, 0x05, 0xb2, 0xea, 0xdc, 0x3f, 0xe2, 0x76, 0x2e, 0xec, 0x90, 0xba, 0xe5, + 0x46, 0xf1, 0x97, 0xff, 0x4b, 0xf2, 0x9f, 0x2d, 0x3b, 0xda, 0x08, 0x6b, 0xcb, 0xf5, 0xc5, 0x43, + 0xe9, 0x40, 0x6d, 0xb9, 0x7e, 0xba, 0x2d, 0xd7, 0x1f, 0xa0, 0x2d, 0xd7, 0x47, 0xef, 0xc3, 0x88, + 0x30, 0x4a, 0x60, 0xc6, 0xed, 0xa6, 0x5a, 0x2e, 0xaf, 0x3d, 0x61, 0xd3, 0xc0, 0xdb, 0xbc, 0x2a, + 0x85, 0x60, 0x51, 0xda, 0xb7, 0x5d, 0xd9, 0x20, 0xfa, 0xdb, 0x16, 0x4c, 0x8a, 0xdf, 0x98, 0xbc, + 0xd7, 0x21, 0x51, 0x2c, 0x78, 0xcf, 0x4f, 0x0f, 0xde, 0x07, 0x51, 0x91, 0x77, 0xe5, 0xd3, 0xf2, + 0x98, 0x35, 0x81, 0x7d, 0x7b, 0x94, 0xea, 0x05, 0xfa, 0xa7, 0x16, 0x9c, 0xdd, 0x75, 0xee, 0xf3, + 0x16, 0x79, 0x19, 0x76, 0x62, 0x37, 0x10, 0xc6, 0xfa, 0xaf, 0x0d, 0x36, 0xfd, 0x5d, 0xd5, 0x79, + 0x27, 0xa5, 0x5d, 0xef, 0xd9, 0x2c, 0x94, 0xbe, 0x5d, 0xcd, 0xec, 0xd7, 0xdc, 0x26, 0x8c, 0xca, + 0xf5, 0x96, 0xa1, 0x6a, 0xa8, 0xea, 0x8c, 0xf5, 0xb1, 0x6d, 0x42, 0x74, 0x47, 0x3c, 0xda, 0x8e, + 0x58, 0x6b, 0x0f, 0xb5, 0x9d, 0x77, 0x61, 0x5c, 0x5f, 0x63, 0x0f, 0xb5, 0xad, 0xf7, 0xe0, 0x4c, + 0xc6, 0x5a, 0x7a, 0xa8, 0x4d, 0xde, 0x83, 0xf3, 0xb9, 0xeb, 0xe3, 0x61, 0x36, 0x6c, 0xff, 0x9c, + 0xa5, 0x9f, 0x83, 0xa7, 0xf0, 0xe6, 0xb0, 0x64, 0xbe, 0x39, 0x5c, 0xec, 0xbd, 0x73, 0x72, 0x1e, + 0x1e, 0xde, 0xd1, 0x3b, 0x4d, 0x4f, 0x75, 0xf4, 0x06, 0x0c, 0x7b, 0xb4, 0x44, 0x5a, 0xc3, 0xd8, + 0xfd, 0x77, 0x64, 0xc2, 0x4b, 0xb1, 0xf2, 0x08, 0x0b, 0x0a, 0xf6, 0x2f, 0x59, 0x50, 0x3a, 0x85, + 0x91, 0xc0, 0xe6, 0x48, 0x3c, 0x97, 0x4b, 0x5a, 0xc4, 0x70, 0x9b, 0xc7, 0xce, 0xbd, 0xe5, 0xfb, + 0x31, 0xf1, 0x23, 0x26, 0x2a, 0x66, 0x0e, 0xcc, 0x77, 0xc1, 0x99, 0x5b, 0x81, 0xd3, 0x5a, 0x74, + 0x3c, 0xc7, 0x6f, 0x92, 0xb0, 0xe6, 0x6f, 0xf5, 0x35, 0xcb, 0xd2, 0x8d, 0xa8, 0x0a, 0xfd, 0x8c, + 0xa8, 0xec, 0x6d, 0x40, 0x7a, 0x03, 0xc2, 0x70, 0x15, 0xc3, 0x88, 0xcb, 0x9b, 0x12, 0xc3, 0xff, + 0x54, 0x36, 0x77, 0xd7, 0xd5, 0x33, 0xcd, 0x24, 0x93, 0x17, 0x60, 0x49, 0xc8, 0x7e, 0x05, 0x32, + 0x9d, 0xd5, 0xfa, 0xab, 0x0d, 0xec, 0xcf, 0xc3, 0x0c, 0xab, 0x79, 0x4c, 0x91, 0xd6, 0x4e, 0x69, + 0x25, 0x33, 0x62, 0x64, 0xd9, 0x5f, 0xb1, 0x60, 0x6a, 0x2d, 0x15, 0xb0, 0xe3, 0x32, 0x7b, 0x00, + 0xcd, 0x50, 0x86, 0x37, 0x58, 0x29, 0x16, 0xd0, 0x13, 0xd7, 0x41, 0xfd, 0x99, 0x05, 0x89, 0xff, + 0xe8, 0x29, 0x30, 0x5e, 0x4b, 0x06, 0xe3, 0x95, 0xa9, 0x1b, 0x51, 0xdd, 0xc9, 0xe3, 0xbb, 0xd0, + 0x4d, 0x15, 0x2c, 0xa1, 0x87, 0x5a, 0x24, 0x21, 0xc3, 0x5d, 0xeb, 0x27, 0xcd, 0x88, 0x0a, 0x32, + 0x7c, 0x02, 0xb3, 0x9d, 0x52, 0xb8, 0x1f, 0x11, 0xdb, 0x29, 0xd5, 0x9f, 0x9c, 0x1d, 0x5a, 0xd7, + 0xba, 0xcc, 0x4e, 0xae, 0x6f, 0x67, 0xb6, 0xf0, 0x8e, 0xe7, 0xbe, 0x4f, 0x54, 0xc4, 0x97, 0x8a, + 0xb0, 0x6d, 0x17, 0xa5, 0x47, 0x07, 0x95, 0x09, 0xf5, 0x8f, 0x87, 0x05, 0x4b, 0xaa, 0xd8, 0x37, + 0x60, 0x2a, 0x35, 0x60, 0xe8, 0x25, 0x18, 0x6a, 0x6f, 0x3b, 0x11, 0x49, 0xd9, 0x8b, 0x0e, 0xd5, + 0x69, 0xe1, 0xd1, 0x41, 0x65, 0x52, 0x55, 0x60, 0x25, 0x98, 0x63, 0xdb, 0xff, 0xd3, 0x82, 0xd2, + 0x5a, 0xd0, 0x3a, 0x8d, 0xc5, 0xf4, 0xba, 0xb1, 0x98, 0x1e, 0xcf, 0x0b, 0xaa, 0x98, 0xbb, 0x8e, + 0x56, 0x52, 0xeb, 0xe8, 0x62, 0x2e, 0x85, 0xde, 0x4b, 0x68, 0x17, 0xc6, 0x58, 0xa8, 0x46, 0x61, + 0xbf, 0xfa, 0x82, 0x21, 0x03, 0x54, 0x52, 0x32, 0xc0, 0x94, 0x86, 0xaa, 0x49, 0x02, 0x4f, 0xc3, + 0x88, 0xb0, 0xa1, 0x4c, 0x5b, 0xfd, 0x0b, 0x5c, 0x2c, 0xe1, 0xf6, 0x8f, 0x15, 0xc1, 0x08, 0x0d, + 0x89, 0x7e, 0xc5, 0x82, 0xf9, 0x90, 0xbb, 0x51, 0xb6, 0xaa, 0x9d, 0xd0, 0xf5, 0xb7, 0x1a, 0xcd, + 0x6d, 0xd2, 0xea, 0x78, 0xae, 0xbf, 0x55, 0xdb, 0xf2, 0x03, 0x55, 0xbc, 0x7c, 0x9f, 0x34, 0x3b, + 0xec, 0x21, 0xa4, 0x4f, 0x1c, 0x4a, 0x65, 0xa3, 0x74, 0xed, 0xf0, 0xa0, 0x32, 0x8f, 0x8f, 0x45, + 0x1b, 0x1f, 0xb3, 0x2f, 0xe8, 0x1b, 0x16, 0x5c, 0xe5, 0x11, 0x13, 0x07, 0xef, 0x7f, 0x0f, 0x89, + 0xa9, 0x2e, 0x49, 0x25, 0x44, 0xd6, 0x49, 0xb8, 0xbb, 0xf8, 0xb2, 0x18, 0xd0, 0xab, 0xf5, 0xe3, + 0xb5, 0x85, 0x8f, 0xdb, 0x39, 0xfb, 0xdf, 0x14, 0x61, 0x42, 0x78, 0xf0, 0x8b, 0xd0, 0x30, 0x2f, + 0x19, 0x4b, 0xe2, 0x89, 0xd4, 0x92, 0x98, 0x31, 0x90, 0x4f, 0x26, 0x2a, 0x4c, 0x04, 0x33, 0x9e, + 0x13, 0xc5, 0x37, 0x88, 0x13, 0xc6, 0x1b, 0xc4, 0xe1, 0xb6, 0x3b, 0xc5, 0x63, 0xdb, 0x19, 0x29, + 0x15, 0xcd, 0xad, 0x34, 0x31, 0xdc, 0x4d, 0x1f, 0xed, 0x01, 0x62, 0x06, 0x48, 0xa1, 0xe3, 0x47, + 0xfc, 0x5b, 0x5c, 0xf1, 0x66, 0x70, 0xbc, 0x56, 0xe7, 0x44, 0xab, 0xe8, 0x56, 0x17, 0x35, 0x9c, + 0xd1, 0x82, 0x66, 0x58, 0x36, 0x34, 0xa8, 0x61, 0xd9, 0x70, 0x1f, 0xd7, 0x1a, 0x1f, 0xa6, 0xbb, + 0x82, 0x30, 0xbc, 0x0d, 0x65, 0x65, 0x00, 0x28, 0x0e, 0x9d, 0xde, 0xb1, 0x4c, 0xd2, 0x14, 0xb8, + 0x1a, 0x25, 0x31, 0x3e, 0x4d, 0xc8, 0xd9, 0xff, 0xac, 0x60, 0x34, 0xc8, 0x27, 0x71, 0x0d, 0x46, + 0x9d, 0x28, 0x72, 0xb7, 0x7c, 0xd2, 0x12, 0x3b, 0xf6, 0xe3, 0x79, 0x3b, 0xd6, 0x68, 0x86, 0x19, + 0x61, 0x2e, 0x88, 0x9a, 0x58, 0xd1, 0x40, 0x37, 0xb8, 0x85, 0xd4, 0x9e, 0xe4, 0xf9, 0x07, 0xa3, + 0x06, 0xd2, 0x86, 0x6a, 0x8f, 0x60, 0x51, 0x1f, 0x7d, 0x81, 0x9b, 0xb0, 0xdd, 0xf4, 0x83, 0x7b, + 0xfe, 0xf5, 0x20, 0x90, 0x6e, 0x77, 0x83, 0x11, 0x9c, 0x91, 0x86, 0x6b, 0xaa, 0x3a, 0x36, 0xa9, + 0x0d, 0x16, 0xa8, 0xe8, 0xbb, 0xe1, 0x0c, 0x25, 0x6d, 0x3a, 0xcf, 0x44, 0x88, 0xc0, 0x94, 0x08, + 0x0f, 0x21, 0xcb, 0xc4, 0xd8, 0x65, 0xb2, 0xf3, 0x66, 0xed, 0x44, 0xe9, 0x77, 0xd3, 0x24, 0x81, + 0xd3, 0x34, 0xed, 0x9f, 0xb4, 0x80, 0x99, 0xfd, 0x9f, 0x02, 0xcb, 0xf0, 0x59, 0x93, 0x65, 0x98, + 0xcd, 0x1b, 0xe4, 0x1c, 0x6e, 0xe1, 0x45, 0xbe, 0xb2, 0xea, 0x61, 0x70, 0x7f, 0x5f, 0x98, 0x0f, + 0xf4, 0xe7, 0x64, 0xed, 0xff, 0x6b, 0xf1, 0x43, 0x4c, 0x79, 0xe2, 0xa3, 0xef, 0x81, 0xd1, 0xa6, + 0xd3, 0x76, 0x9a, 0x3c, 0x8e, 0x71, 0xae, 0x56, 0xc7, 0xa8, 0x34, 0xbf, 0x24, 0x6a, 0x70, 0x2d, + 0x85, 0x0c, 0x33, 0x32, 0x2a, 0x8b, 0xfb, 0x6a, 0x26, 0x54, 0x93, 0x73, 0x3b, 0x30, 0x61, 0x10, + 0x7b, 0xa8, 0x22, 0xed, 0xf7, 0xf0, 0x2b, 0x56, 0x85, 0xc5, 0xd9, 0x85, 0x19, 0x5f, 0xfb, 0x4f, + 0x2f, 0x14, 0x29, 0xa6, 0x7c, 0xbc, 0xdf, 0x25, 0xca, 0x6e, 0x1f, 0xcd, 0xad, 0x21, 0x45, 0x06, + 0x77, 0x53, 0xb6, 0x7f, 0xdc, 0x82, 0x47, 0x75, 0x44, 0x2d, 0x48, 0x42, 0x3f, 0x3d, 0x71, 0x15, + 0x46, 0x83, 0x36, 0x09, 0x9d, 0x38, 0x08, 0xc5, 0xad, 0x71, 0x45, 0x0e, 0xfa, 0x6d, 0x51, 0x7e, + 0x24, 0x02, 0x4a, 0x4a, 0xea, 0xb2, 0x1c, 0xab, 0x9a, 0x54, 0x8e, 0x61, 0x83, 0x11, 0x89, 0x00, + 0x16, 0xec, 0x0c, 0x60, 0x4f, 0xa6, 0x11, 0x16, 0x10, 0xfb, 0x0f, 0x2c, 0xbe, 0xb0, 0xf4, 0xae, + 0xa3, 0xf7, 0x60, 0x7a, 0xd7, 0x89, 0x9b, 0xdb, 0xcb, 0xf7, 0xdb, 0x21, 0x57, 0x8f, 0xcb, 0x71, + 0x7a, 0xa6, 0xdf, 0x38, 0x69, 0x1f, 0x99, 0x58, 0xe5, 0xad, 0xa6, 0x88, 0xe1, 0x2e, 0xf2, 0x68, + 0x03, 0xc6, 0x58, 0x19, 0x33, 0xff, 0x8e, 0x7a, 0xb1, 0x06, 0x79, 0xad, 0xa9, 0x57, 0xe7, 0xd5, + 0x84, 0x0e, 0xd6, 0x89, 0xda, 0x5f, 0x2e, 0xf2, 0xdd, 0xce, 0xb8, 0xed, 0xa7, 0x61, 0xa4, 0x1d, + 0xb4, 0x96, 0x6a, 0x55, 0x2c, 0x66, 0x41, 0x5d, 0x23, 0x75, 0x5e, 0x8c, 0x25, 0x1c, 0xbd, 0x0a, + 0x40, 0xee, 0xc7, 0x24, 0xf4, 0x1d, 0x4f, 0x59, 0xc9, 0x28, 0xbb, 0xd0, 0x6a, 0xb0, 0x16, 0xc4, + 0x77, 0x22, 0xf2, 0x5d, 0xcb, 0x0a, 0x05, 0x6b, 0xe8, 0xe8, 0x1a, 0x40, 0x3b, 0x0c, 0xf6, 0xdc, + 0x16, 0xf3, 0x27, 0x2c, 0x9a, 0x36, 0x24, 0x75, 0x05, 0xc1, 0x1a, 0x16, 0x7a, 0x15, 0x26, 0x3a, + 0x7e, 0xc4, 0x39, 0x14, 0x67, 0x43, 0x84, 0x63, 0x1c, 0x4d, 0xac, 0x1b, 0xee, 0xe8, 0x40, 0x6c, + 0xe2, 0xa2, 0x05, 0x18, 0x8e, 0x1d, 0x66, 0x13, 0x31, 0x94, 0x6f, 0xcc, 0xb9, 0x4e, 0x31, 0xf4, + 0x28, 0xba, 0xb4, 0x02, 0x16, 0x15, 0xd1, 0xdb, 0xd2, 0x39, 0x83, 0x9f, 0xf5, 0xc2, 0x8a, 0x7a, + 0xb0, 0x7b, 0x41, 0x73, 0xcd, 0x10, 0xd6, 0xd9, 0x06, 0x2d, 0xfb, 0x1b, 0x65, 0x80, 0x84, 0x1d, + 0x47, 0xef, 0x77, 0x9d, 0x47, 0xcf, 0xf6, 0x66, 0xe0, 0x4f, 0xee, 0x30, 0x42, 0xdf, 0x6f, 0xc1, + 0x98, 0xe3, 0x79, 0x41, 0xd3, 0x89, 0xd9, 0x28, 0x17, 0x7a, 0x9f, 0x87, 0xa2, 0xfd, 0x85, 0xa4, + 0x06, 0xef, 0xc2, 0x0b, 0x72, 0xe1, 0x69, 0x90, 0xbe, 0xbd, 0xd0, 0x1b, 0x46, 0x9f, 0x92, 0x52, + 0x1a, 0x5f, 0x1e, 0x73, 0x69, 0x29, 0xad, 0xcc, 0x8e, 0x7e, 0x4d, 0x40, 0x43, 0x77, 0x8c, 0x48, + 0x7b, 0xa5, 0xfc, 0xa0, 0x13, 0x06, 0x57, 0xda, 0x2f, 0xc8, 0x1e, 0xaa, 0xeb, 0xde, 0x64, 0x43, + 0xf9, 0x91, 0x59, 0x34, 0xf1, 0xa7, 0x8f, 0x27, 0xd9, 0xbb, 0x30, 0xd5, 0x32, 0xef, 0x76, 0xb1, + 0x9a, 0x9e, 0xca, 0xa3, 0x9b, 0x62, 0x05, 0x92, 0xdb, 0x3c, 0x05, 0xc0, 0x69, 0xc2, 0xa8, 0xce, + 0xfd, 0xfa, 0x6a, 0xfe, 0x66, 0x20, 0xac, 0xf1, 0xed, 0xdc, 0xb9, 0xdc, 0x8f, 0x62, 0xb2, 0x4b, + 0x31, 0x93, 0x4b, 0x7b, 0x4d, 0xd4, 0xc5, 0x8a, 0x0a, 0x7a, 0x03, 0x86, 0x99, 0x63, 0x70, 0x34, + 0x3b, 0x9a, 0xaf, 0x4c, 0x34, 0x63, 0x5a, 0x24, 0x9b, 0x8a, 0xfd, 0x8d, 0xb0, 0xa0, 0x80, 0x6e, + 0xc8, 0xc0, 0x37, 0x51, 0xcd, 0xbf, 0x13, 0x11, 0x16, 0xf8, 0xa6, 0xbc, 0xf8, 0xf1, 0x24, 0xa6, + 0x0d, 0x2f, 0xcf, 0x8c, 0x97, 0x6f, 0xd4, 0xa4, 0xcc, 0x91, 0xf8, 0x2f, 0xc3, 0xf0, 0xcf, 0x42, + 0x7e, 0xf7, 0xcc, 0x50, 0xfd, 0xc9, 0x70, 0xde, 0x35, 0x49, 0xe0, 0x34, 0x4d, 0xca, 0x68, 0xf2, + 0x9d, 0x2b, 0xec, 0xf9, 0xfb, 0xed, 0x7f, 0x2e, 0x5f, 0xb3, 0x4b, 0x86, 0x97, 0x60, 0x51, 0xff, + 0x54, 0x6f, 0xfd, 0x39, 0x1f, 0xa6, 0xd3, 0x5b, 0xf4, 0xa1, 0x72, 0x19, 0xbf, 0x5f, 0x82, 0x49, + 0x73, 0x49, 0xa1, 0xab, 0x50, 0x16, 0x44, 0x54, 0x14, 0x56, 0xb5, 0x4b, 0x56, 0x25, 0x00, 0x27, + 0x38, 0x2c, 0xf8, 0x2e, 0xab, 0xae, 0xd9, 0x61, 0x26, 0xc1, 0x77, 0x15, 0x04, 0x6b, 0x58, 0x54, + 0x5e, 0xda, 0x08, 0x82, 0x58, 0x5d, 0x2a, 0x6a, 0xdd, 0x2d, 0xb2, 0x52, 0x2c, 0xa0, 0xf4, 0x32, + 0xd9, 0x21, 0xa1, 0x4f, 0x3c, 0x33, 0xb8, 0x9b, 0xba, 0x4c, 0x6e, 0xea, 0x40, 0x6c, 0xe2, 0xd2, + 0x5b, 0x32, 0x88, 0xd8, 0x42, 0x16, 0x52, 0x59, 0x62, 0xd7, 0xda, 0xe0, 0x2e, 0xf6, 0x12, 0x8e, + 0x3e, 0x0f, 0x8f, 0x2a, 0x8f, 0x78, 0xcc, 0x15, 0xd5, 0xb2, 0xc5, 0x61, 0x43, 0x89, 0xf2, 0xe8, + 0x52, 0x36, 0x1a, 0xce, 0xab, 0x8f, 0x5e, 0x87, 0x49, 0xc1, 0xb9, 0x4b, 0x8a, 0x23, 0xa6, 0xed, + 0xc4, 0x4d, 0x03, 0x8a, 0x53, 0xd8, 0x32, 0x3c, 0x1d, 0x63, 0x9e, 0x25, 0x85, 0xd1, 0xee, 0xf0, + 0x74, 0x3a, 0x1c, 0x77, 0xd5, 0x40, 0x0b, 0x30, 0xc5, 0x59, 0x2b, 0xd7, 0xdf, 0xe2, 0x73, 0x22, + 0xdc, 0x6d, 0xd4, 0x96, 0xba, 0x6d, 0x82, 0x71, 0x1a, 0x1f, 0xbd, 0x02, 0xe3, 0x4e, 0xd8, 0xdc, + 0x76, 0x63, 0xd2, 0x8c, 0x3b, 0x21, 0xf7, 0xc3, 0xd1, 0x8c, 0x4f, 0x16, 0x34, 0x18, 0x36, 0x30, + 0xed, 0xf7, 0xe1, 0x4c, 0x86, 0xa7, 0x1e, 0x5d, 0x38, 0x4e, 0xdb, 0x95, 0xdf, 0x94, 0xb2, 0x50, + 0x5d, 0xa8, 0xd7, 0xe4, 0xd7, 0x68, 0x58, 0x74, 0x75, 0x32, 0x8f, 0x3e, 0x2d, 0xeb, 0x86, 0x5a, + 0x9d, 0x2b, 0x12, 0x80, 0x13, 0x1c, 0xfb, 0x7f, 0x15, 0x60, 0x2a, 0x43, 0xf9, 0xce, 0x32, 0x3f, + 0xa4, 0x64, 0x8f, 0x24, 0xd1, 0x83, 0x19, 0xed, 0xb0, 0x70, 0x8c, 0x68, 0x87, 0xc5, 0x7e, 0xd1, + 0x0e, 0x4b, 0x1f, 0x24, 0xda, 0xa1, 0x39, 0x62, 0x43, 0x03, 0x8d, 0x58, 0x46, 0x84, 0xc4, 0xe1, + 0x63, 0x46, 0x48, 0x34, 0x06, 0x7d, 0x64, 0x80, 0x41, 0xff, 0x5a, 0x01, 0xa6, 0xd3, 0x46, 0x72, + 0xa7, 0xa0, 0x8e, 0x7d, 0xc3, 0x50, 0xc7, 0x66, 0xe7, 0x51, 0x49, 0x9b, 0xee, 0xe5, 0xa9, 0x66, + 0x71, 0x4a, 0x35, 0xfb, 0xc9, 0x81, 0xa8, 0xf5, 0x56, 0xd3, 0xfe, 0x83, 0x02, 0x9c, 0x4b, 0x57, + 0x59, 0xf2, 0x1c, 0x77, 0xf7, 0x14, 0xc6, 0xe6, 0xb6, 0x31, 0x36, 0xcf, 0x0d, 0xf2, 0x35, 0xac, + 0x6b, 0xb9, 0x03, 0xf4, 0x56, 0x6a, 0x80, 0xae, 0x0e, 0x4e, 0xb2, 0xf7, 0x28, 0x7d, 0xb3, 0x08, + 0x17, 0x33, 0xeb, 0x25, 0xda, 0xcc, 0x15, 0x43, 0x9b, 0x79, 0x2d, 0xa5, 0xcd, 0xb4, 0x7b, 0xd7, + 0x3e, 0x19, 0xf5, 0xa6, 0x70, 0xa1, 0x64, 0x11, 0xf1, 0x1e, 0x50, 0xb5, 0x69, 0xb8, 0x50, 0x2a, + 0x42, 0xd8, 0xa4, 0xfb, 0x17, 0x49, 0xa5, 0xf9, 0xef, 0x2c, 0x38, 0x9f, 0x39, 0x37, 0xa7, 0xa0, + 0xc2, 0x5a, 0x33, 0x55, 0x58, 0x4f, 0x0f, 0xbc, 0x5a, 0x73, 0x74, 0x5a, 0xbf, 0x51, 0xca, 0xf9, + 0x16, 0x26, 0xa0, 0xdf, 0x86, 0x31, 0xa7, 0xd9, 0x24, 0x51, 0xb4, 0x1a, 0xb4, 0x54, 0x84, 0xb8, + 0xe7, 0x98, 0x9c, 0x95, 0x14, 0x1f, 0x1d, 0x54, 0xe6, 0xd2, 0x24, 0x12, 0x30, 0xd6, 0x29, 0x98, + 0x41, 0x2d, 0x0b, 0x27, 0x1a, 0xd4, 0xf2, 0x1a, 0xc0, 0x9e, 0xe2, 0xd6, 0xd3, 0x42, 0xbe, 0xc6, + 0xc7, 0x6b, 0x58, 0xe8, 0x0b, 0x30, 0x1a, 0x89, 0x6b, 0x5c, 0x2c, 0xc5, 0x17, 0x06, 0x9c, 0x2b, + 0x67, 0x83, 0x78, 0xa6, 0xaf, 0xbe, 0xd2, 0x87, 0x28, 0x92, 0xe8, 0x3b, 0x60, 0x3a, 0xe2, 0xa1, + 0x60, 0x96, 0x3c, 0x27, 0x62, 0x7e, 0x10, 0x62, 0x15, 0x32, 0x07, 0xfc, 0x46, 0x0a, 0x86, 0xbb, + 0xb0, 0xd1, 0x8a, 0xfc, 0x28, 0x16, 0xb7, 0x86, 0x2f, 0xcc, 0xcb, 0xc9, 0x07, 0x89, 0xbc, 0x53, + 0x67, 0xd3, 0xc3, 0xcf, 0x06, 0x5e, 0xab, 0x89, 0xbe, 0x00, 0x40, 0x97, 0x8f, 0xd0, 0x25, 0x8c, + 0xe4, 0x1f, 0x9e, 0xf4, 0x54, 0x69, 0x65, 0x5a, 0x7e, 0x32, 0xe7, 0xc5, 0xaa, 0x22, 0x82, 0x35, + 0x82, 0xf6, 0xd7, 0x4a, 0xf0, 0x58, 0x8f, 0x33, 0x12, 0x2d, 0x98, 0x4f, 0xa0, 0xcf, 0xa4, 0x85, + 0xeb, 0xb9, 0xcc, 0xca, 0x86, 0xb4, 0x9d, 0x5a, 0x8a, 0x85, 0x0f, 0xbc, 0x14, 0x7f, 0xc0, 0xd2, + 0xd4, 0x1e, 0xdc, 0x98, 0xef, 0xb3, 0xc7, 0x3c, 0xfb, 0x4f, 0x50, 0x0f, 0xb2, 0x99, 0xa1, 0x4c, + 0xb8, 0x36, 0x70, 0x77, 0x06, 0xd6, 0x2e, 0x9c, 0xae, 0xf2, 0xf7, 0xcb, 0x16, 0x3c, 0x91, 0xd9, + 0x5f, 0xc3, 0x64, 0xe3, 0x2a, 0x94, 0x9b, 0xb4, 0x50, 0xf3, 0x55, 0x4b, 0x9c, 0x78, 0x25, 0x00, + 0x27, 0x38, 0x86, 0x65, 0x46, 0xa1, 0xaf, 0x65, 0xc6, 0xbf, 0xb6, 0xa0, 0x6b, 0x7f, 0x9c, 0xc2, + 0x41, 0x5d, 0x33, 0x0f, 0xea, 0x8f, 0x0f, 0x32, 0x97, 0x39, 0x67, 0xf4, 0x1f, 0x4d, 0xc1, 0x23, + 0x39, 0xbe, 0x1a, 0x7b, 0x30, 0xb3, 0xd5, 0x24, 0xa6, 0x17, 0xa0, 0xf8, 0x98, 0x4c, 0x87, 0xc9, + 0x9e, 0x2e, 0x83, 0x2c, 0x1f, 0xd1, 0x4c, 0x17, 0x0a, 0xee, 0x6e, 0x02, 0x7d, 0xd9, 0x82, 0xb3, + 0xce, 0xbd, 0xa8, 0x2b, 0xeb, 0xa4, 0x58, 0x33, 0x2f, 0x66, 0x2a, 0x41, 0xfa, 0x64, 0xa9, 0xe4, + 0x09, 0x9a, 0xb2, 0xb0, 0x70, 0x66, 0x5b, 0x08, 0x8b, 0x98, 0xa1, 0x94, 0x9d, 0xef, 0xe1, 0xa7, + 0x9a, 0xe5, 0x54, 0xc3, 0x8f, 0x6c, 0x09, 0xc1, 0x8a, 0x0e, 0xfa, 0x12, 0x94, 0xb7, 0xa4, 0xa7, + 0x5b, 0xc6, 0x95, 0x90, 0x0c, 0x64, 0x6f, 0xff, 0x3f, 0xfe, 0x40, 0xa9, 0x90, 0x70, 0x42, 0x14, + 0xbd, 0x0e, 0x45, 0x7f, 0x33, 0xea, 0x95, 0xe3, 0x28, 0x65, 0xd3, 0xc4, 0xbd, 0xc1, 0xd7, 0x56, + 0x1a, 0x98, 0x56, 0x44, 0x37, 0xa0, 0x18, 0x6e, 0xb4, 0x84, 0x06, 0x2f, 0xf3, 0x0c, 0xc7, 0x8b, + 0xd5, 0x9c, 0x5e, 0x31, 0x4a, 0x78, 0xb1, 0x8a, 0x29, 0x09, 0x54, 0x87, 0x21, 0xe6, 0xe0, 0x20, + 0xee, 0x83, 0x4c, 0xce, 0xb7, 0x87, 0xa3, 0x10, 0x77, 0x19, 0x67, 0x08, 0x98, 0x13, 0x42, 0xeb, + 0x30, 0xdc, 0x64, 0xf9, 0x70, 0x44, 0xc0, 0xea, 0x4f, 0x65, 0xea, 0xea, 0x7a, 0x24, 0x0a, 0x12, + 0xaa, 0x2b, 0x86, 0x81, 0x05, 0x2d, 0x46, 0x95, 0xb4, 0xb7, 0x37, 0x23, 0x26, 0xeb, 0xe7, 0x51, + 0xed, 0x91, 0xff, 0x4a, 0x50, 0x65, 0x18, 0x58, 0xd0, 0x42, 0x9f, 0x81, 0xc2, 0x66, 0x53, 0xf8, + 0x3f, 0x64, 0x2a, 0xed, 0x4c, 0x87, 0xfe, 0xc5, 0xe1, 0xc3, 0x83, 0x4a, 0x61, 0x65, 0x09, 0x17, + 0x36, 0x9b, 0x68, 0x0d, 0x46, 0x36, 0xb9, 0x0b, 0xb0, 0xd0, 0xcb, 0x3d, 0x95, 0xed, 0x9d, 0xdc, + 0xe5, 0x25, 0xcc, 0xed, 0xf6, 0x05, 0x00, 0x4b, 0x22, 0x2c, 0x04, 0xa7, 0x72, 0x65, 0x16, 0xb1, + 0xa8, 0xe7, 0x8f, 0xe7, 0x7e, 0xce, 0xef, 0xe7, 0xc4, 0x21, 0x1a, 0x6b, 0x14, 0xe9, 0xaa, 0x76, + 0x64, 0xe6, 0x43, 0x11, 0xab, 0x23, 0x73, 0x55, 0xf7, 0x49, 0x0a, 0xc9, 0x57, 0xb5, 0x42, 0xc2, + 0x09, 0x51, 0xb4, 0x03, 0x13, 0x7b, 0x51, 0x7b, 0x9b, 0xc8, 0x2d, 0xcd, 0x42, 0x77, 0xe4, 0x5c, + 0x61, 0x77, 0x05, 0xa2, 0x1b, 0xc6, 0x1d, 0xc7, 0xeb, 0x3a, 0x85, 0xd8, 0xab, 0xf6, 0x5d, 0x9d, + 0x18, 0x36, 0x69, 0xd3, 0xe1, 0x7f, 0xaf, 0x13, 0x6c, 0xec, 0xc7, 0x44, 0x04, 0xaf, 0xce, 0x1c, + 0xfe, 0x37, 0x39, 0x4a, 0xf7, 0xf0, 0x0b, 0x00, 0x96, 0x44, 0xd0, 0x5d, 0x31, 0x3c, 0xec, 0xf4, + 0x9c, 0xce, 0x0f, 0xa6, 0x94, 0x99, 0x7a, 0x54, 0x1b, 0x14, 0x76, 0x5a, 0x26, 0xa4, 0xd8, 0x29, + 0xd9, 0xde, 0x0e, 0xe2, 0xc0, 0x4f, 0x9d, 0xd0, 0x33, 0xf9, 0xa7, 0x64, 0x3d, 0x03, 0xbf, 0xfb, + 0x94, 0xcc, 0xc2, 0xc2, 0x99, 0x6d, 0xa1, 0x16, 0x4c, 0xb6, 0x83, 0x30, 0xbe, 0x17, 0x84, 0x72, + 0x7d, 0xa1, 0x1e, 0x7a, 0x05, 0x03, 0x53, 0xb4, 0xc8, 0x82, 0xa9, 0x9b, 0x10, 0x9c, 0xa2, 0x89, + 0x3e, 0x07, 0x23, 0x51, 0xd3, 0xf1, 0x48, 0xed, 0xf6, 0xec, 0x99, 0xfc, 0xeb, 0xa7, 0xc1, 0x51, + 0x72, 0x56, 0x17, 0x9b, 0x1c, 0x81, 0x82, 0x25, 0x39, 0xb4, 0x02, 0x43, 0x2c, 0x23, 0x02, 0x8b, + 0xbb, 0x9d, 0x13, 0x13, 0xaa, 0xcb, 0xc2, 0x94, 0x9f, 0x4d, 0xac, 0x18, 0xf3, 0xea, 0x74, 0x0f, + 0x08, 0xf6, 0x3a, 0x88, 0x66, 0xcf, 0xe5, 0xef, 0x01, 0xc1, 0x95, 0xdf, 0x6e, 0xf4, 0xda, 0x03, + 0x0a, 0x09, 0x27, 0x44, 0xe9, 0xc9, 0x4c, 0x4f, 0xd3, 0x47, 0x7a, 0x18, 0xb4, 0xe4, 0x9e, 0xa5, + 0xec, 0x64, 0xa6, 0x27, 0x29, 0x25, 0x61, 0xff, 0xee, 0x48, 0x37, 0xcf, 0xc2, 0x04, 0xb2, 0xbf, + 0x6a, 0x75, 0xbd, 0xd5, 0x7d, 0x7a, 0x50, 0xfd, 0xd0, 0x09, 0x72, 0xab, 0x5f, 0xb6, 0xe0, 0x91, + 0x76, 0xe6, 0x87, 0x08, 0x06, 0x60, 0x30, 0x35, 0x13, 0xff, 0x74, 0x15, 0x1b, 0x3f, 0x1b, 0x8e, + 0x73, 0x5a, 0x4a, 0x4b, 0x04, 0xc5, 0x0f, 0x2c, 0x11, 0xac, 0xc2, 0x28, 0x63, 0x32, 0xfb, 0xe4, + 0x87, 0x4b, 0x0b, 0x46, 0x8c, 0x95, 0x58, 0x12, 0x15, 0xb1, 0x22, 0x81, 0x7e, 0xd0, 0x82, 0x0b, + 0xe9, 0xae, 0x63, 0xc2, 0xc0, 0x22, 0x92, 0x3c, 0x97, 0x05, 0x57, 0xc4, 0xf7, 0x5f, 0xa8, 0xf7, + 0x42, 0x3e, 0xea, 0x87, 0x80, 0x7b, 0x37, 0x86, 0xaa, 0x19, 0xc2, 0xe8, 0xb0, 0xa9, 0x80, 0x1f, + 0x40, 0x20, 0x7d, 0x11, 0xc6, 0x77, 0x83, 0x8e, 0x1f, 0x0b, 0xfb, 0x17, 0xe1, 0xb1, 0xc8, 0x1e, + 0x9c, 0x57, 0xb5, 0x72, 0x6c, 0x60, 0xa5, 0xc4, 0xd8, 0xd1, 0x07, 0x16, 0x63, 0xdf, 0x49, 0x65, + 0x01, 0x2f, 0xe7, 0x47, 0x2c, 0x14, 0x12, 0xff, 0x31, 0x72, 0x81, 0x9f, 0xae, 0x6c, 0xf4, 0xd3, + 0x56, 0x06, 0x53, 0xcf, 0xa5, 0xe5, 0xd7, 0x4c, 0x69, 0xf9, 0x72, 0x5a, 0x5a, 0xee, 0x52, 0xbe, + 0x1a, 0x82, 0xf2, 0xe0, 0x61, 0xaf, 0x07, 0x8d, 0x23, 0x67, 0x7b, 0x70, 0xa9, 0xdf, 0xb5, 0xc4, + 0x0c, 0xa1, 0x5a, 0xea, 0xa9, 0x2d, 0x31, 0x84, 0x6a, 0xd5, 0xaa, 0x98, 0x41, 0x06, 0x0d, 0x34, + 0x62, 0xff, 0x0f, 0x0b, 0x8a, 0xf5, 0xa0, 0x75, 0x0a, 0xca, 0xe4, 0xcf, 0x1a, 0xca, 0xe4, 0xc7, + 0x72, 0xb2, 0xb3, 0xe7, 0xaa, 0x8e, 0x97, 0x53, 0xaa, 0xe3, 0x0b, 0x79, 0x04, 0x7a, 0x2b, 0x8a, + 0x7f, 0xa2, 0x08, 0x7a, 0x2e, 0x79, 0xf4, 0x1b, 0x0f, 0x62, 0x85, 0x5c, 0xec, 0x95, 0x5e, 0x5e, + 0x50, 0x66, 0xf6, 0x53, 0xd2, 0x09, 0xef, 0xcf, 0x99, 0x31, 0xf2, 0x5b, 0xc4, 0xdd, 0xda, 0x8e, + 0x49, 0x2b, 0xfd, 0x39, 0xa7, 0x67, 0x8c, 0xfc, 0xdf, 0x2c, 0x98, 0x4a, 0xb5, 0x8e, 0x3c, 0x98, + 0xf0, 0x74, 0x4d, 0xa0, 0x58, 0xa7, 0x0f, 0xa4, 0x44, 0x14, 0xc6, 0x9c, 0x5a, 0x11, 0x36, 0x89, + 0xa3, 0x79, 0x00, 0xf5, 0x52, 0x27, 0x35, 0x60, 0x8c, 0xeb, 0x57, 0x4f, 0x79, 0x11, 0xd6, 0x30, + 0xd0, 0x4b, 0x30, 0x16, 0x07, 0xed, 0xc0, 0x0b, 0xb6, 0xf6, 0x6f, 0x12, 0x19, 0xda, 0x46, 0x99, + 0x68, 0xad, 0x27, 0x20, 0xac, 0xe3, 0xd9, 0x3f, 0x55, 0xe4, 0x1f, 0xea, 0xc7, 0xee, 0xb7, 0xd6, + 0xe4, 0x47, 0x7b, 0x4d, 0x7e, 0xd3, 0x82, 0x69, 0xda, 0x3a, 0x33, 0x17, 0x91, 0x97, 0xad, 0x4a, + 0xbf, 0x63, 0xf5, 0x48, 0xbf, 0x73, 0x99, 0x9e, 0x5d, 0xad, 0xa0, 0x13, 0x0b, 0x0d, 0x9a, 0x76, + 0x38, 0xd1, 0x52, 0x2c, 0xa0, 0x02, 0x8f, 0x84, 0xa1, 0xf0, 0x81, 0xd2, 0xf1, 0x48, 0x18, 0x62, + 0x01, 0x95, 0xd9, 0x79, 0x4a, 0x39, 0xd9, 0x79, 0x58, 0xa0, 0x3e, 0x61, 0x58, 0x20, 0xd8, 0x1e, + 0x2d, 0x50, 0x9f, 0xb4, 0x38, 0x48, 0x70, 0xec, 0x9f, 0x2b, 0xc2, 0x78, 0x3d, 0x68, 0x25, 0x6f, + 0x65, 0x2f, 0x1a, 0x6f, 0x65, 0x97, 0x52, 0x6f, 0x65, 0xd3, 0x3a, 0xee, 0xb7, 0x5e, 0xc6, 0x3e, + 0xac, 0x97, 0xb1, 0x7f, 0x65, 0xb1, 0x59, 0xab, 0xae, 0x35, 0x44, 0x76, 0xe0, 0xe7, 0x61, 0x8c, + 0x1d, 0x48, 0xcc, 0xe9, 0x4e, 0x3e, 0x20, 0xb1, 0xc0, 0xfb, 0x6b, 0x49, 0x31, 0xd6, 0x71, 0xd0, + 0x15, 0x18, 0x8d, 0x88, 0x13, 0x36, 0xb7, 0xd5, 0x19, 0x27, 0x9e, 0x57, 0x78, 0x19, 0x56, 0x50, + 0xf4, 0x66, 0x12, 0x23, 0xae, 0x98, 0x9f, 0xe7, 0x56, 0xef, 0x0f, 0xdf, 0x22, 0xf9, 0x81, 0xe1, + 0xec, 0xb7, 0x00, 0x75, 0xe3, 0x0f, 0x10, 0x1c, 0xa9, 0x62, 0x06, 0x47, 0x2a, 0x77, 0x05, 0x46, + 0xfa, 0x53, 0x0b, 0x26, 0xeb, 0x41, 0x8b, 0x6e, 0xdd, 0xbf, 0x48, 0xfb, 0x54, 0x0f, 0x90, 0x39, + 0xdc, 0x23, 0x40, 0xe6, 0x3f, 0xb4, 0x60, 0xa4, 0x1e, 0xb4, 0x4e, 0x41, 0xef, 0xfe, 0x9a, 0xa9, + 0x77, 0x7f, 0x34, 0x67, 0x49, 0xe4, 0xa8, 0xda, 0x7f, 0xa1, 0x08, 0x13, 0xb4, 0x9f, 0xc1, 0x96, + 0x9c, 0x25, 0x63, 0x44, 0xac, 0x01, 0x46, 0x84, 0xb2, 0xb9, 0x81, 0xe7, 0x05, 0xf7, 0xd2, 0x33, + 0xb6, 0xc2, 0x4a, 0xb1, 0x80, 0xa2, 0x67, 0x61, 0xb4, 0x1d, 0x92, 0x3d, 0x37, 0x10, 0xfc, 0xa3, + 0xf6, 0x8a, 0x51, 0x17, 0xe5, 0x58, 0x61, 0x50, 0xb9, 0x2b, 0x72, 0xfd, 0x26, 0x91, 0x49, 0xb6, + 0x4b, 0x2c, 0x0f, 0x17, 0x8f, 0x7c, 0xad, 0x95, 0x63, 0x03, 0x0b, 0xbd, 0x05, 0x65, 0xf6, 0x9f, + 0x9d, 0x28, 0xc7, 0xcf, 0x1b, 0x24, 0xd2, 0x4d, 0x08, 0x02, 0x38, 0xa1, 0x85, 0xae, 0x01, 0xc4, + 0x32, 0x3a, 0x72, 0x24, 0x62, 0xdc, 0x28, 0x5e, 0x5b, 0xc5, 0x4d, 0x8e, 0xb0, 0x86, 0x85, 0x9e, + 0x81, 0x72, 0xec, 0xb8, 0xde, 0x2d, 0xd7, 0x27, 0x11, 0x53, 0x39, 0x17, 0x65, 0x36, 0x09, 0x51, + 0x88, 0x13, 0x38, 0xe5, 0x75, 0x98, 0x03, 0x38, 0xcf, 0x3a, 0x36, 0xca, 0xb0, 0x19, 0xaf, 0x73, + 0x4b, 0x95, 0x62, 0x0d, 0xc3, 0x7e, 0x05, 0xce, 0xd5, 0x83, 0x56, 0x3d, 0x08, 0xe3, 0x95, 0x20, + 0xbc, 0xe7, 0x84, 0x2d, 0x39, 0x7f, 0x15, 0x99, 0xd8, 0x80, 0x9e, 0x3d, 0x43, 0x7c, 0x67, 0x1a, + 0x29, 0x0b, 0x5e, 0x60, 0xdc, 0xce, 0x31, 0x9d, 0x3a, 0x9a, 0xec, 0xde, 0x55, 0x09, 0x06, 0xaf, + 0x3b, 0x31, 0x41, 0xb7, 0x59, 0x52, 0xb2, 0xe4, 0x0a, 0x12, 0xd5, 0x9f, 0xd6, 0x92, 0x92, 0x25, + 0xc0, 0xcc, 0x3b, 0xcb, 0xac, 0x6f, 0xff, 0x6a, 0x91, 0x9d, 0x46, 0xa9, 0x7c, 0x7b, 0xe8, 0x8b, + 0x30, 0x19, 0x91, 0x5b, 0xae, 0xdf, 0xb9, 0x2f, 0x85, 0xf0, 0x1e, 0x6e, 0x39, 0x8d, 0x65, 0x1d, + 0x93, 0xab, 0xf2, 0xcc, 0x32, 0x9c, 0xa2, 0x46, 0xe7, 0x29, 0xec, 0xf8, 0x0b, 0xd1, 0x9d, 0x88, + 0x84, 0x22, 0xdf, 0x1b, 0x9b, 0x27, 0x2c, 0x0b, 0x71, 0x02, 0xa7, 0xeb, 0x92, 0xfd, 0x59, 0x0b, + 0x7c, 0x1c, 0x04, 0xb1, 0x5c, 0xc9, 0x2c, 0x63, 0x90, 0x56, 0x8e, 0x0d, 0x2c, 0xb4, 0x02, 0x28, + 0xea, 0xb4, 0xdb, 0x1e, 0x7b, 0xd8, 0x77, 0xbc, 0xeb, 0x61, 0xd0, 0x69, 0xf3, 0x57, 0xcf, 0x22, + 0x0f, 0x4c, 0xd8, 0xe8, 0x82, 0xe2, 0x8c, 0x1a, 0xf4, 0xf4, 0xd9, 0x8c, 0xd8, 0x6f, 0xb6, 0xba, + 0x8b, 0x42, 0xbd, 0xde, 0x60, 0x45, 0x58, 0xc2, 0xe8, 0x62, 0x62, 0xcd, 0x73, 0xcc, 0xe1, 0x64, + 0x31, 0x61, 0x55, 0x8a, 0x35, 0x0c, 0xb4, 0x0c, 0x23, 0xd1, 0x7e, 0xd4, 0x8c, 0x45, 0x44, 0xa6, + 0x9c, 0xcc, 0x9d, 0x0d, 0x86, 0xa2, 0x65, 0x93, 0xe0, 0x55, 0xb0, 0xac, 0x6b, 0x7f, 0x0f, 0xbb, + 0x0c, 0x59, 0x76, 0xb0, 0xb8, 0x13, 0x12, 0xb4, 0x0b, 0x13, 0x6d, 0x36, 0xe5, 0x22, 0x76, 0xb5, + 0x98, 0xb7, 0x17, 0x07, 0x94, 0x6a, 0xef, 0xd1, 0x83, 0x46, 0x69, 0x9d, 0x98, 0xb8, 0x50, 0xd7, + 0xc9, 0x61, 0x93, 0xba, 0xfd, 0x35, 0xc4, 0xce, 0xdc, 0x06, 0x17, 0x55, 0x47, 0x84, 0x69, 0xb1, + 0xe0, 0xcb, 0xe7, 0xf2, 0x75, 0x26, 0xc9, 0x17, 0x09, 0xf3, 0x64, 0x2c, 0xeb, 0xa2, 0x37, 0xd9, + 0x2b, 0x35, 0x3f, 0xe8, 0xfa, 0x25, 0x69, 0xe6, 0x58, 0xc6, 0x83, 0xb4, 0xa8, 0x88, 0x35, 0x22, + 0xe8, 0x16, 0x4c, 0x88, 0x64, 0x52, 0x42, 0x29, 0x56, 0x34, 0x94, 0x1e, 0x13, 0x58, 0x07, 0x1e, + 0xa5, 0x0b, 0xb0, 0x59, 0x19, 0x6d, 0xc1, 0x05, 0x2d, 0xb3, 0xe2, 0xf5, 0xd0, 0x61, 0x2f, 0x97, + 0x2e, 0xdb, 0x44, 0xda, 0xb9, 0xf9, 0xc4, 0xe1, 0x41, 0xe5, 0xc2, 0x7a, 0x2f, 0x44, 0xdc, 0x9b, + 0x0e, 0xba, 0x0d, 0xe7, 0xb8, 0x07, 0x5f, 0x95, 0x38, 0x2d, 0xcf, 0xf5, 0xd5, 0xc1, 0xcc, 0xd7, + 0xe1, 0xf9, 0xc3, 0x83, 0xca, 0xb9, 0x85, 0x2c, 0x04, 0x9c, 0x5d, 0x0f, 0xbd, 0x06, 0xe5, 0x96, + 0x1f, 0x89, 0x31, 0x18, 0x36, 0x92, 0x86, 0x96, 0xab, 0x6b, 0x0d, 0xf5, 0xfd, 0xc9, 0x1f, 0x9c, + 0x54, 0x40, 0x5b, 0x5c, 0x31, 0xa6, 0xe4, 0xd0, 0x91, 0xfc, 0x04, 0xf1, 0x62, 0x49, 0x18, 0x3e, + 0x3c, 0x5c, 0x23, 0xac, 0x6c, 0x60, 0x0d, 0xf7, 0x1e, 0x83, 0x30, 0x7a, 0x03, 0x10, 0x65, 0xd4, + 0xdc, 0x26, 0x59, 0x68, 0xb2, 0x10, 0xe2, 0x4c, 0x8f, 0x38, 0x6a, 0xf8, 0x4c, 0xa0, 0x46, 0x17, + 0x06, 0xce, 0xa8, 0x85, 0x6e, 0xd0, 0x83, 0x4c, 0x2f, 0x15, 0xb6, 0xbc, 0x92, 0xb9, 0x9f, 0xad, + 0x92, 0x76, 0x48, 0x9a, 0x4e, 0x4c, 0x5a, 0x26, 0x45, 0x9c, 0xaa, 0x47, 0xef, 0x52, 0x95, 0x4d, + 0x08, 0xcc, 0xb0, 0x19, 0xdd, 0x19, 0x85, 0xa8, 0x5c, 0xbc, 0x1d, 0x44, 0xf1, 0x1a, 0x89, 0xef, + 0x05, 0xe1, 0x8e, 0x88, 0x52, 0x96, 0x04, 0xcc, 0x4c, 0x40, 0x58, 0xc7, 0xa3, 0x7c, 0x30, 0x7b, + 0x26, 0xae, 0x55, 0xd9, 0x0b, 0xdd, 0x68, 0xb2, 0x4f, 0x6e, 0xf0, 0x62, 0x2c, 0xe1, 0x12, 0xb5, + 0x56, 0x5f, 0x62, 0xaf, 0x6d, 0x29, 0xd4, 0x5a, 0x7d, 0x09, 0x4b, 0x38, 0x22, 0xdd, 0x09, 0x59, + 0x27, 0xf3, 0xb5, 0x9a, 0xdd, 0xd7, 0xc1, 0x80, 0x39, 0x59, 0x7d, 0x98, 0x56, 0xa9, 0x60, 0x79, + 0xf8, 0xb6, 0x68, 0x76, 0x8a, 0x2d, 0x92, 0xc1, 0x63, 0xbf, 0x29, 0x3d, 0x71, 0x2d, 0x45, 0x09, + 0x77, 0xd1, 0x36, 0x02, 0x99, 0x4c, 0xf7, 0xcd, 0x06, 0x75, 0x15, 0xca, 0x51, 0x67, 0xa3, 0x15, + 0xec, 0x3a, 0xae, 0xcf, 0x1e, 0xc7, 0x34, 0x26, 0xab, 0x21, 0x01, 0x38, 0xc1, 0x41, 0x2b, 0x30, + 0xea, 0x48, 0x25, 0x30, 0xca, 0x8f, 0x5a, 0xa0, 0x54, 0xbf, 0xdc, 0x91, 0x57, 0xaa, 0x7d, 0x55, + 0x5d, 0xf4, 0x2a, 0x4c, 0x08, 0xbf, 0x2d, 0x1e, 0xcb, 0x81, 0x3d, 0x5e, 0x69, 0x86, 0xf9, 0x0d, + 0x1d, 0x88, 0x4d, 0x5c, 0xf4, 0x05, 0x98, 0xa4, 0x54, 0x92, 0x83, 0x6d, 0xf6, 0xec, 0x20, 0x27, + 0xa2, 0x96, 0xe5, 0x43, 0xaf, 0x8c, 0x53, 0xc4, 0x50, 0x0b, 0x1e, 0x77, 0x3a, 0x71, 0xc0, 0x14, + 0xe9, 0xe6, 0xfa, 0x5f, 0x0f, 0x76, 0x88, 0xcf, 0xde, 0xb0, 0x46, 0x17, 0x2f, 0x1d, 0x1e, 0x54, + 0x1e, 0x5f, 0xe8, 0x81, 0x87, 0x7b, 0x52, 0x41, 0x77, 0x60, 0x2c, 0x0e, 0x3c, 0x66, 0x22, 0x4f, + 0x59, 0x89, 0x47, 0xf2, 0x03, 0x01, 0xad, 0x2b, 0x34, 0x5d, 0x89, 0xa4, 0xaa, 0x62, 0x9d, 0x0e, + 0x5a, 0xe7, 0x7b, 0x8c, 0x85, 0x48, 0x25, 0xd1, 0xec, 0xa3, 0xf9, 0x03, 0xa3, 0x22, 0xa9, 0x9a, + 0x5b, 0x50, 0xd4, 0xc4, 0x3a, 0x19, 0x74, 0x1d, 0x66, 0xda, 0xa1, 0x1b, 0xb0, 0x85, 0xad, 0x1e, + 0x31, 0x66, 0xcd, 0xc4, 0x0e, 0xf5, 0x34, 0x02, 0xee, 0xae, 0x43, 0x85, 0x4c, 0x59, 0x38, 0x7b, + 0x9e, 0x67, 0x09, 0xe3, 0x8c, 0x37, 0x2f, 0xc3, 0x0a, 0x8a, 0x56, 0xd9, 0xb9, 0xcc, 0xc5, 0xc1, + 0xd9, 0xb9, 0xfc, 0x68, 0x0f, 0xba, 0xd8, 0xc8, 0xf9, 0x25, 0xf5, 0x17, 0x27, 0x14, 0xe8, 0xbd, + 0x11, 0x6d, 0x3b, 0x21, 0xa9, 0x87, 0x41, 0x93, 0x44, 0x5a, 0x54, 0xe6, 0xc7, 0x78, 0x24, 0x47, + 0x7a, 0x6f, 0x34, 0xb2, 0x10, 0x70, 0x76, 0x3d, 0xd4, 0xd2, 0x92, 0x63, 0x53, 0x36, 0x34, 0x9a, + 0x7d, 0xbc, 0x87, 0xc1, 0x51, 0x8a, 0x67, 0x4d, 0xd6, 0xa2, 0x51, 0x1c, 0xe1, 0x14, 0x4d, 0xf4, + 0x1d, 0x30, 0x2d, 0x02, 0x1f, 0x25, 0xe3, 0x7e, 0x21, 0xb1, 0x64, 0xc4, 0x29, 0x18, 0xee, 0xc2, + 0xe6, 0xb1, 0xa8, 0x9d, 0x0d, 0x8f, 0x88, 0x45, 0x78, 0xcb, 0xf5, 0x77, 0xa2, 0xd9, 0x8b, 0xec, + 0xab, 0x45, 0x2c, 0xea, 0x34, 0x14, 0x67, 0xd4, 0x98, 0xfb, 0x76, 0x98, 0xe9, 0xba, 0xb9, 0x8e, + 0x15, 0xbf, 0xfd, 0x4f, 0x86, 0xa0, 0xac, 0x94, 0xf2, 0xe8, 0xaa, 0xf9, 0xd6, 0x72, 0x3e, 0xfd, + 0xd6, 0x32, 0x4a, 0x65, 0x03, 0xfd, 0x79, 0x65, 0xdd, 0x30, 0xd4, 0x2b, 0xe4, 0x67, 0x4b, 0xd3, + 0xb9, 0xfb, 0xbe, 0x4e, 0x7f, 0x9a, 0x8e, 0xa5, 0x38, 0xf0, 0xa3, 0x4d, 0xa9, 0xa7, 0xda, 0x66, + 0xc0, 0x64, 0xc5, 0xe8, 0x49, 0x2a, 0x20, 0xb5, 0x6a, 0xf5, 0x74, 0xf6, 0xce, 0x3a, 0x2d, 0xc4, + 0x1c, 0xc6, 0x04, 0x49, 0xca, 0x66, 0x31, 0x41, 0x72, 0xe4, 0x01, 0x05, 0x49, 0x49, 0x00, 0x27, + 0xb4, 0x90, 0x07, 0x33, 0x4d, 0x33, 0xf1, 0xaa, 0x72, 0xf4, 0x7b, 0xb2, 0x6f, 0x0a, 0xd4, 0x8e, + 0x96, 0xe5, 0x6e, 0x29, 0x4d, 0x05, 0x77, 0x13, 0x46, 0xaf, 0xc2, 0xe8, 0x7b, 0x41, 0xc4, 0x16, + 0xa5, 0xe0, 0x35, 0xa4, 0x43, 0xd4, 0xe8, 0x9b, 0xb7, 0x1b, 0xac, 0xfc, 0xe8, 0xa0, 0x32, 0x56, + 0x0f, 0x5a, 0xf2, 0x2f, 0x56, 0x15, 0xd0, 0x7d, 0x38, 0x67, 0x9c, 0xd0, 0xaa, 0xbb, 0x30, 0x78, + 0x77, 0x2f, 0x88, 0xe6, 0xce, 0xd5, 0xb2, 0x28, 0xe1, 0xec, 0x06, 0xe8, 0xb1, 0xe7, 0x07, 0x22, + 0x69, 0xb1, 0xe4, 0x67, 0x18, 0xdb, 0x52, 0xd6, 0xdd, 0xe1, 0x53, 0x08, 0xb8, 0xbb, 0x8e, 0xfd, + 0xcb, 0xfc, 0x0d, 0x43, 0x68, 0x3a, 0x49, 0xd4, 0xf1, 0x4e, 0x23, 0x27, 0xd6, 0xb2, 0xa1, 0x84, + 0x7d, 0xe0, 0x77, 0xb2, 0x5f, 0xb7, 0xd8, 0x3b, 0xd9, 0x3a, 0xd9, 0x6d, 0x7b, 0x54, 0xde, 0x7e, + 0xf8, 0x1d, 0x7f, 0x13, 0x46, 0x63, 0xd1, 0x5a, 0xaf, 0x34, 0x5e, 0x5a, 0xa7, 0xd8, 0x5b, 0xa1, + 0xe2, 0x74, 0x64, 0x29, 0x56, 0x64, 0xec, 0x7f, 0xc1, 0x67, 0x40, 0x42, 0x4e, 0x41, 0x21, 0x56, + 0x35, 0x15, 0x62, 0x95, 0x3e, 0x5f, 0x90, 0xa3, 0x18, 0xfb, 0xe7, 0x66, 0xbf, 0x99, 0x50, 0xf9, + 0x51, 0x7f, 0xa0, 0xb5, 0x7f, 0xd8, 0x82, 0xb3, 0x59, 0x16, 0x4d, 0x94, 0x3b, 0xe5, 0x22, 0xad, + 0x7a, 0xb0, 0x56, 0x23, 0x78, 0x57, 0x94, 0x63, 0x85, 0x31, 0x70, 0x86, 0x8c, 0xe3, 0x45, 0x8c, + 0xbb, 0x0d, 0x13, 0xf5, 0x90, 0x68, 0x77, 0xc0, 0xeb, 0xdc, 0xb3, 0x8e, 0xf7, 0xe7, 0xd9, 0x63, + 0x7b, 0xd5, 0xd9, 0x3f, 0x53, 0x80, 0xb3, 0xfc, 0xc5, 0x69, 0x61, 0x2f, 0x70, 0x5b, 0xf5, 0xa0, + 0x25, 0xb2, 0x9b, 0xbc, 0x0d, 0xe3, 0x6d, 0x4d, 0x0f, 0xd1, 0x2b, 0x66, 0x95, 0xae, 0xaf, 0x48, + 0xe4, 0x41, 0xbd, 0x14, 0x1b, 0xb4, 0x50, 0x0b, 0xc6, 0xc9, 0x9e, 0xdb, 0x54, 0xcf, 0x16, 0x85, + 0x63, 0xdf, 0x0d, 0xaa, 0x95, 0x65, 0x8d, 0x0e, 0x36, 0xa8, 0x3e, 0x84, 0x84, 0x77, 0xf6, 0x8f, + 0x58, 0xf0, 0x68, 0x4e, 0x84, 0x2b, 0xda, 0xdc, 0x3d, 0xf6, 0xb6, 0x27, 0x72, 0x67, 0xa9, 0xe6, + 0xf8, 0x8b, 0x1f, 0x16, 0x50, 0xf4, 0x39, 0x00, 0xfe, 0x62, 0x47, 0xc5, 0xa3, 0x7e, 0xa1, 0x80, + 0x8c, 0x28, 0x26, 0x5a, 0xf4, 0x09, 0x59, 0x1f, 0x6b, 0xb4, 0xec, 0x9f, 0x2c, 0xc2, 0x10, 0x7b, + 0x21, 0x42, 0x2b, 0x30, 0xb2, 0xcd, 0x63, 0x3e, 0x0f, 0x12, 0x5e, 0x3a, 0x91, 0x33, 0x79, 0x01, + 0x96, 0x95, 0xd1, 0x2a, 0x9c, 0xe1, 0x31, 0xb3, 0xbd, 0x2a, 0xf1, 0x9c, 0x7d, 0xa9, 0xae, 0xe0, + 0xf9, 0xa6, 0x54, 0x24, 0x8d, 0x5a, 0x37, 0x0a, 0xce, 0xaa, 0x87, 0x5e, 0x87, 0x49, 0xca, 0xdf, + 0x05, 0x9d, 0x58, 0x52, 0xe2, 0xd1, 0xb2, 0x15, 0x43, 0xb9, 0x6e, 0x40, 0x71, 0x0a, 0x9b, 0x0a, + 0x5e, 0xed, 0x2e, 0xc5, 0xcc, 0x50, 0x22, 0x78, 0x99, 0xca, 0x18, 0x13, 0x97, 0x99, 0x32, 0x75, + 0x98, 0xe1, 0xd6, 0xfa, 0x76, 0x48, 0xa2, 0xed, 0xc0, 0x6b, 0x89, 0x74, 0xe5, 0x89, 0x29, 0x53, + 0x0a, 0x8e, 0xbb, 0x6a, 0x50, 0x2a, 0x9b, 0x8e, 0xeb, 0x75, 0x42, 0x92, 0x50, 0x19, 0x36, 0xa9, + 0xac, 0xa4, 0xe0, 0xb8, 0xab, 0x06, 0x5d, 0x47, 0xe7, 0x44, 0xfe, 0x70, 0xe9, 0xdf, 0xaf, 0xec, + 0xd3, 0x46, 0xa4, 0xa7, 0x53, 0x8f, 0x00, 0x37, 0xc2, 0x82, 0x47, 0x65, 0x20, 0xd7, 0xf4, 0x89, + 0xc2, 0xc7, 0x49, 0x52, 0x79, 0x90, 0x2c, 0xd6, 0xbf, 0x6b, 0xc1, 0x99, 0x0c, 0x3b, 0x58, 0x7e, + 0x54, 0x6d, 0xb9, 0x51, 0xac, 0x72, 0xea, 0x68, 0x47, 0x15, 0x2f, 0xc7, 0x0a, 0x83, 0xee, 0x07, + 0x7e, 0x18, 0xa6, 0x0f, 0x40, 0x61, 0x67, 0x26, 0xa0, 0xc7, 0xcc, 0x4e, 0x73, 0x09, 0x4a, 0x9d, + 0x88, 0xc8, 0xd0, 0x54, 0xea, 0xfc, 0x66, 0x1a, 0x66, 0x06, 0xa1, 0xac, 0xe9, 0x96, 0x52, 0xee, + 0x6a, 0xac, 0x29, 0xd7, 0xd8, 0x72, 0x98, 0xfd, 0xd5, 0x22, 0x9c, 0xcf, 0xb5, 0x78, 0xa7, 0x5d, + 0xda, 0x0d, 0x7c, 0x37, 0x0e, 0xd4, 0xeb, 0x23, 0x0f, 0x8e, 0x42, 0xda, 0xdb, 0xab, 0xa2, 0x1c, + 0x2b, 0x0c, 0x74, 0x59, 0x66, 0xb2, 0x4f, 0x67, 0x0d, 0x5a, 0xac, 0x1a, 0xc9, 0xec, 0x07, 0xcd, + 0xc8, 0xf6, 0x24, 0x94, 0xda, 0x41, 0xe0, 0xa5, 0x0f, 0x23, 0xda, 0xdd, 0x20, 0xf0, 0x30, 0x03, + 0xa2, 0x4f, 0x88, 0x71, 0x48, 0x3d, 0xb7, 0x61, 0xa7, 0x15, 0x44, 0xda, 0x60, 0x3c, 0x0d, 0x23, + 0x3b, 0x64, 0x3f, 0x74, 0xfd, 0xad, 0xf4, 0x33, 0xec, 0x4d, 0x5e, 0x8c, 0x25, 0xdc, 0xcc, 0x21, + 0x31, 0x72, 0xd2, 0xa9, 0xd4, 0x46, 0xfb, 0x5e, 0x6d, 0x3f, 0x50, 0x84, 0x29, 0xbc, 0x58, 0xfd, + 0xd6, 0x44, 0xdc, 0xe9, 0x9e, 0x88, 0x93, 0x4e, 0xa5, 0xd6, 0x7f, 0x36, 0x7e, 0xc1, 0x82, 0x29, + 0x16, 0x67, 0x59, 0x84, 0xe4, 0x70, 0x03, 0xff, 0x14, 0x58, 0xb7, 0x27, 0x61, 0x28, 0xa4, 0x8d, + 0xa6, 0xd3, 0x05, 0xb1, 0x9e, 0x60, 0x0e, 0x43, 0x8f, 0x43, 0x89, 0x75, 0x81, 0x4e, 0xde, 0x38, + 0xcf, 0xb4, 0x50, 0x75, 0x62, 0x07, 0xb3, 0x52, 0xe6, 0x67, 0x8e, 0x49, 0xdb, 0x73, 0x79, 0xa7, + 0x93, 0xa7, 0x8d, 0x8f, 0x86, 0x9f, 0x79, 0x66, 0xd7, 0x3e, 0x98, 0x9f, 0x79, 0x36, 0xc9, 0xde, + 0x62, 0xd1, 0x1f, 0x16, 0xe0, 0x62, 0x66, 0xbd, 0x81, 0xfd, 0xcc, 0x7b, 0xd7, 0x3e, 0x19, 0x6b, + 0x9a, 0x6c, 0x23, 0x97, 0xe2, 0x29, 0x1a, 0xb9, 0x94, 0x06, 0xe5, 0x1c, 0x87, 0x06, 0x70, 0xff, + 0xce, 0x1c, 0xb2, 0x8f, 0x88, 0xfb, 0x77, 0x66, 0xdf, 0x72, 0xc4, 0xba, 0x3f, 0x2b, 0xe4, 0x7c, + 0x0b, 0x13, 0xf0, 0xae, 0xd0, 0x73, 0x86, 0x01, 0x23, 0xc1, 0x09, 0x8f, 0xf3, 0x33, 0x86, 0x97, + 0x61, 0x05, 0x45, 0xae, 0xe6, 0x48, 0x5d, 0xc8, 0xcf, 0x9e, 0x99, 0xdb, 0xd4, 0xbc, 0xf9, 0x12, + 0xa5, 0x86, 0x20, 0xc3, 0xa9, 0x7a, 0x55, 0x13, 0xca, 0x8b, 0x83, 0x0b, 0xe5, 0xe3, 0xd9, 0x02, + 0x39, 0x5a, 0x80, 0xa9, 0x5d, 0xd7, 0xa7, 0xc7, 0xe6, 0xbe, 0xc9, 0x8a, 0xaa, 0xb8, 0x22, 0xab, + 0x26, 0x18, 0xa7, 0xf1, 0xe7, 0x5e, 0x85, 0x89, 0x07, 0x57, 0x47, 0x7e, 0xb3, 0x08, 0x8f, 0xf5, + 0xd8, 0xf6, 0xfc, 0xac, 0x37, 0xe6, 0x40, 0x3b, 0xeb, 0xbb, 0xe6, 0xa1, 0x0e, 0x67, 0x37, 0x3b, + 0x9e, 0xb7, 0xcf, 0xec, 0x48, 0x49, 0x4b, 0x62, 0x08, 0x5e, 0xf1, 0x71, 0x99, 0xdb, 0x62, 0x25, + 0x03, 0x07, 0x67, 0xd6, 0x44, 0x6f, 0x00, 0x0a, 0x44, 0xea, 0xde, 0xeb, 0xc4, 0x17, 0xfa, 0x7d, + 0x36, 0xf0, 0xc5, 0x64, 0x33, 0xde, 0xee, 0xc2, 0xc0, 0x19, 0xb5, 0x28, 0xd3, 0x4f, 0x6f, 0xa5, + 0x7d, 0xd5, 0xad, 0x14, 0xd3, 0x8f, 0x75, 0x20, 0x36, 0x71, 0xd1, 0x75, 0x98, 0x71, 0xf6, 0x1c, + 0x97, 0xc7, 0xdb, 0x93, 0x04, 0x38, 0xd7, 0xaf, 0x94, 0x60, 0x0b, 0x69, 0x04, 0xdc, 0x5d, 0x27, + 0xe5, 0x6a, 0x3d, 0x9c, 0xef, 0x6a, 0xdd, 0xfb, 0x5c, 0xec, 0xa7, 0xd3, 0xb5, 0xff, 0xb3, 0x45, + 0xaf, 0xaf, 0x8c, 0xf4, 0xfb, 0x74, 0x1c, 0x94, 0x6e, 0x52, 0xf3, 0x7a, 0x3e, 0xa7, 0x59, 0x8a, + 0x24, 0x40, 0x6c, 0xe2, 0xf2, 0x05, 0x11, 0x25, 0xce, 0x36, 0x06, 0xeb, 0x2e, 0xa2, 0x26, 0x28, + 0x0c, 0xf4, 0x79, 0x18, 0x69, 0xb9, 0x7b, 0x6e, 0x14, 0x84, 0x62, 0xb3, 0x1c, 0xd3, 0x65, 0x21, + 0x39, 0x07, 0xab, 0x9c, 0x0c, 0x96, 0xf4, 0xec, 0x1f, 0x28, 0xc0, 0x84, 0x6c, 0xf1, 0xcd, 0x4e, + 0x10, 0x3b, 0xa7, 0x70, 0x2d, 0x5f, 0x37, 0xae, 0xe5, 0x4f, 0xf4, 0x0a, 0x1d, 0xc1, 0xba, 0x94, + 0x7b, 0x1d, 0xdf, 0x4e, 0x5d, 0xc7, 0x4f, 0xf5, 0x27, 0xd5, 0xfb, 0x1a, 0xfe, 0x97, 0x16, 0xcc, + 0x18, 0xf8, 0xa7, 0x70, 0x1b, 0xac, 0x98, 0xb7, 0xc1, 0x13, 0x7d, 0xbf, 0x21, 0xe7, 0x16, 0xf8, + 0xbe, 0x62, 0xaa, 0xef, 0xec, 0xf4, 0x7f, 0x0f, 0x4a, 0xdb, 0x4e, 0xd8, 0xea, 0x15, 0xa2, 0xb6, + 0xab, 0xd2, 0xfc, 0x0d, 0x27, 0x6c, 0xf1, 0x33, 0xfc, 0x59, 0x95, 0xff, 0xd2, 0x09, 0x5b, 0x7d, + 0x7d, 0xcb, 0x58, 0x53, 0xe8, 0x15, 0x18, 0x8e, 0x9a, 0x41, 0x5b, 0x59, 0x7e, 0x5e, 0xe2, 0xb9, + 0x31, 0x69, 0xc9, 0xd1, 0x41, 0x05, 0x99, 0xcd, 0xd1, 0x62, 0x2c, 0xf0, 0xd1, 0xdb, 0x30, 0xc1, + 0x7e, 0x29, 0x0b, 0x88, 0x62, 0x7e, 0x62, 0x84, 0x86, 0x8e, 0xc8, 0x0d, 0x69, 0x8c, 0x22, 0x6c, + 0x92, 0x9a, 0xdb, 0x82, 0xb2, 0xfa, 0xac, 0x87, 0xea, 0x13, 0xf4, 0x1f, 0x8a, 0x70, 0x26, 0x63, + 0xcd, 0xa1, 0xc8, 0x98, 0x89, 0xe7, 0x07, 0x5c, 0xaa, 0x1f, 0x70, 0x2e, 0x22, 0x26, 0x0d, 0xb5, + 0xc4, 0xda, 0x1a, 0xb8, 0xd1, 0x3b, 0x11, 0x49, 0x37, 0x4a, 0x8b, 0xfa, 0x37, 0x4a, 0x1b, 0x3b, + 0xb5, 0xa1, 0xa6, 0x0d, 0xa9, 0x9e, 0x3e, 0xd4, 0x39, 0xfd, 0xe3, 0x22, 0x9c, 0xcd, 0x8a, 0x66, + 0x83, 0xbe, 0x3b, 0x95, 0x24, 0xe7, 0xc5, 0x41, 0xe3, 0xe0, 0xf0, 0xcc, 0x39, 0x22, 0xc7, 0xf5, + 0xbc, 0x99, 0x36, 0xa7, 0xef, 0x30, 0x8b, 0x36, 0x99, 0x23, 0x69, 0xc8, 0x93, 0x1b, 0xc9, 0xe3, + 0xe3, 0xd3, 0x03, 0x77, 0x40, 0x64, 0x45, 0x8a, 0x52, 0x8e, 0xa4, 0xb2, 0xb8, 0xbf, 0x23, 0xa9, + 0x6c, 0x79, 0xce, 0x85, 0x31, 0xed, 0x6b, 0x1e, 0xea, 0x8c, 0xef, 0xd0, 0xdb, 0x4a, 0xeb, 0xf7, + 0x43, 0x9d, 0xf5, 0x1f, 0xb1, 0x20, 0x65, 0x66, 0xa9, 0xd4, 0x5d, 0x56, 0xae, 0xba, 0xeb, 0x12, + 0x94, 0xc2, 0xc0, 0x23, 0xe9, 0x9c, 0x34, 0x38, 0xf0, 0x08, 0x66, 0x10, 0x8a, 0x11, 0x27, 0xca, + 0x8e, 0x71, 0x5d, 0x90, 0x13, 0x22, 0xda, 0x93, 0x30, 0xe4, 0x91, 0x3d, 0xe2, 0xa5, 0x03, 0xbe, + 0xdf, 0xa2, 0x85, 0x98, 0xc3, 0xec, 0x5f, 0x28, 0xc1, 0x85, 0x9e, 0xae, 0xd8, 0x54, 0x1c, 0xda, + 0x72, 0x62, 0x72, 0xcf, 0xd9, 0x4f, 0x47, 0x66, 0xbe, 0xce, 0x8b, 0xb1, 0x84, 0x33, 0xcb, 0x73, + 0x1e, 0x89, 0x31, 0xa5, 0x1c, 0x14, 0x01, 0x18, 0x05, 0xf4, 0x21, 0xe4, 0xf7, 0xbf, 0x06, 0x10, + 0x45, 0x1e, 0xb7, 0x1b, 0x68, 0x09, 0x93, 0xf6, 0x24, 0x62, 0x67, 0xe3, 0x96, 0x80, 0x60, 0x0d, + 0x0b, 0x55, 0x61, 0xba, 0x1d, 0x06, 0x31, 0xd7, 0xb5, 0x56, 0xb9, 0xc1, 0xd1, 0x90, 0xe9, 0x05, + 0x5b, 0x4f, 0xc1, 0x71, 0x57, 0x0d, 0xf4, 0x12, 0x8c, 0x09, 0xcf, 0xd8, 0x7a, 0x10, 0x78, 0x42, + 0x0d, 0xa4, 0xcc, 0x57, 0x1a, 0x09, 0x08, 0xeb, 0x78, 0x5a, 0x35, 0xa6, 0xc0, 0x1d, 0xc9, 0xac, + 0xc6, 0x95, 0xb8, 0x1a, 0x5e, 0x2a, 0xb2, 0xd5, 0xe8, 0x40, 0x91, 0xad, 0x12, 0xc5, 0x58, 0x79, + 0xe0, 0x37, 0x2b, 0xe8, 0xab, 0x4a, 0xfa, 0xd9, 0x12, 0x9c, 0x11, 0x0b, 0xe7, 0x61, 0x2f, 0x97, + 0x3b, 0xdd, 0xcb, 0xe5, 0x24, 0x54, 0x67, 0xdf, 0x5a, 0x33, 0xa7, 0xbd, 0x66, 0x7e, 0xd0, 0x02, + 0x93, 0xbd, 0x42, 0x7f, 0x29, 0x37, 0xb4, 0xfd, 0x4b, 0xb9, 0xec, 0x5a, 0x4b, 0x5e, 0x20, 0x1f, + 0x30, 0xc8, 0xbd, 0xfd, 0x9f, 0x2c, 0x78, 0xa2, 0x2f, 0x45, 0xb4, 0x0c, 0x65, 0xc6, 0x03, 0x6a, + 0xd2, 0xd9, 0x53, 0xca, 0x20, 0x51, 0x02, 0x72, 0x58, 0xd2, 0xa4, 0x26, 0x5a, 0xee, 0xca, 0x21, + 0xf0, 0x74, 0x46, 0x0e, 0x81, 0x73, 0xc6, 0xf0, 0x3c, 0x60, 0x12, 0x81, 0x5f, 0x2e, 0xc2, 0x30, + 0x5f, 0xf1, 0xa7, 0x20, 0x86, 0xad, 0x08, 0xbd, 0x6d, 0x8f, 0xd8, 0x56, 0xbc, 0x2f, 0xf3, 0x55, + 0x27, 0x76, 0x38, 0x9b, 0xa0, 0x6e, 0xab, 0x44, 0xc3, 0x8b, 0xe6, 0x8d, 0xfb, 0x6c, 0x2e, 0xa5, + 0x98, 0x04, 0x4e, 0x43, 0xbb, 0xdd, 0xbe, 0x08, 0x10, 0xb1, 0xfc, 0xfb, 0x94, 0x86, 0x88, 0x92, + 0xf6, 0xc9, 0x1e, 0xad, 0x37, 0x14, 0x32, 0xef, 0x43, 0xb2, 0xd3, 0x15, 0x00, 0x6b, 0x14, 0xe7, + 0x5e, 0x86, 0xb2, 0x42, 0xee, 0xa7, 0xc5, 0x19, 0xd7, 0x99, 0x8b, 0xcf, 0xc2, 0x54, 0xaa, 0xad, + 0x63, 0x29, 0x81, 0x7e, 0xd1, 0x82, 0x29, 0xde, 0xe5, 0x65, 0x7f, 0x4f, 0x9c, 0xa9, 0xef, 0xc3, + 0x59, 0x2f, 0xe3, 0x6c, 0x13, 0x33, 0x3a, 0xf8, 0x59, 0xa8, 0x94, 0x3e, 0x59, 0x50, 0x9c, 0xd9, + 0x06, 0xba, 0x42, 0xd7, 0x2d, 0x3d, 0xbb, 0x1c, 0x4f, 0x78, 0x31, 0x8d, 0xf3, 0x35, 0xcb, 0xcb, + 0xb0, 0x82, 0xda, 0xbf, 0x6d, 0xc1, 0x0c, 0xef, 0xf9, 0x4d, 0xb2, 0xaf, 0x76, 0xf8, 0x87, 0xd9, + 0x77, 0x91, 0xd6, 0xa3, 0x90, 0x93, 0xd6, 0x43, 0xff, 0xb4, 0x62, 0xcf, 0x4f, 0xfb, 0x19, 0x0b, + 0xc4, 0x0a, 0x3c, 0x05, 0x51, 0xfe, 0xdb, 0x4d, 0x51, 0x7e, 0x2e, 0x7f, 0x51, 0xe7, 0xc8, 0xf0, + 0x7f, 0x6a, 0xc1, 0x34, 0x47, 0x48, 0xde, 0x92, 0x3f, 0xd4, 0x79, 0x18, 0x24, 0x3f, 0x9f, 0x4a, + 0xda, 0x9d, 0xfd, 0x51, 0xc6, 0x64, 0x95, 0x7a, 0x4e, 0x56, 0x4b, 0x6e, 0xa0, 0x63, 0xe4, 0xa6, + 0x3c, 0x76, 0x78, 0x6c, 0xfb, 0x0f, 0x2c, 0x40, 0xbc, 0x19, 0x83, 0xfd, 0xa1, 0x4c, 0x05, 0x2b, + 0xd5, 0xae, 0x8b, 0xe4, 0xa8, 0x51, 0x10, 0xac, 0x61, 0x9d, 0xc8, 0xf0, 0xa4, 0x0c, 0x02, 0x8a, + 0xfd, 0x0d, 0x02, 0x8e, 0x31, 0xa2, 0xff, 0xa7, 0x04, 0x69, 0xb7, 0x02, 0x74, 0x17, 0xc6, 0x9b, + 0x4e, 0xdb, 0xd9, 0x70, 0x3d, 0x37, 0x76, 0x49, 0xd4, 0xcb, 0x92, 0x68, 0x49, 0xc3, 0x13, 0x4f, + 0xbd, 0x5a, 0x09, 0x36, 0xe8, 0xa0, 0x79, 0x80, 0x76, 0xe8, 0xee, 0xb9, 0x1e, 0xd9, 0x62, 0x1a, + 0x07, 0xe6, 0x37, 0xc9, 0xcd, 0x63, 0x64, 0x29, 0xd6, 0x30, 0x32, 0x5c, 0xe0, 0x8a, 0x0f, 0xcf, + 0x05, 0xae, 0x74, 0x4c, 0x17, 0xb8, 0xa1, 0x81, 0x5c, 0xe0, 0x30, 0x3c, 0x22, 0x59, 0x24, 0xfa, + 0x7f, 0xc5, 0xf5, 0x88, 0xe0, 0x8b, 0xb9, 0x37, 0xe5, 0xdc, 0xe1, 0x41, 0xe5, 0x11, 0x9c, 0x89, + 0x81, 0x73, 0x6a, 0xa2, 0xcf, 0xc1, 0xac, 0xe3, 0x79, 0xc1, 0x3d, 0x35, 0x6a, 0xcb, 0x51, 0xd3, + 0xf1, 0xb8, 0xc6, 0x7e, 0x84, 0x51, 0x7d, 0xfc, 0xf0, 0xa0, 0x32, 0xbb, 0x90, 0x83, 0x83, 0x73, + 0x6b, 0xa7, 0x3c, 0xe8, 0x46, 0xfb, 0x7a, 0xd0, 0xbd, 0x06, 0xe5, 0x76, 0x18, 0x34, 0x57, 0x35, + 0xaf, 0x9e, 0x8b, 0x2c, 0xf3, 0xbd, 0x2c, 0x3c, 0x3a, 0xa8, 0x4c, 0xa8, 0x3f, 0xec, 0x86, 0x4f, + 0x2a, 0xd8, 0x3b, 0x70, 0xa6, 0x41, 0x42, 0x97, 0xe5, 0xd4, 0x6c, 0x25, 0x1b, 0x7a, 0x1d, 0xca, + 0x61, 0xea, 0x08, 0x1b, 0x28, 0x40, 0x93, 0x16, 0x37, 0x58, 0x1e, 0x59, 0x09, 0x21, 0xfb, 0x4f, + 0x2c, 0x18, 0x11, 0x16, 0xe6, 0xa7, 0xc0, 0x39, 0x2d, 0x18, 0x0a, 0xec, 0x4a, 0xf6, 0x31, 0xcf, + 0x3a, 0x93, 0xab, 0xba, 0xae, 0xa5, 0x54, 0xd7, 0x4f, 0xf4, 0x22, 0xd2, 0x5b, 0x69, 0xfd, 0x77, + 0x8b, 0x30, 0x69, 0x3a, 0x85, 0x9c, 0xc2, 0x10, 0xac, 0xc1, 0x48, 0x24, 0x3c, 0x90, 0x0a, 0xf9, + 0x96, 0xd3, 0xe9, 0x49, 0x4c, 0xcc, 0xa2, 0x84, 0xcf, 0x91, 0x24, 0x92, 0xe9, 0xda, 0x54, 0x7c, + 0x88, 0xae, 0x4d, 0xfd, 0xfc, 0x72, 0x4a, 0x27, 0xe1, 0x97, 0x63, 0x7f, 0x9d, 0x5d, 0x35, 0x7a, + 0xf9, 0x29, 0x70, 0x21, 0xd7, 0xcd, 0x4b, 0xc9, 0xee, 0xb1, 0xb2, 0x44, 0xa7, 0x72, 0xb8, 0x91, + 0x9f, 0xb7, 0xe0, 0x42, 0xc6, 0x57, 0x69, 0xac, 0xc9, 0xb3, 0x30, 0xea, 0x74, 0x5a, 0xae, 0xda, + 0xcb, 0xda, 0x33, 0xd6, 0x82, 0x28, 0xc7, 0x0a, 0x03, 0x2d, 0xc1, 0x0c, 0xb9, 0xdf, 0x76, 0xf9, + 0x3b, 0xa2, 0x6e, 0xbb, 0x58, 0xe4, 0x41, 0x6b, 0x97, 0xd3, 0x40, 0xdc, 0x8d, 0xaf, 0xdc, 0xba, + 0x8b, 0xb9, 0x6e, 0xdd, 0xff, 0xc4, 0x82, 0x31, 0xe5, 0x6d, 0xf2, 0xd0, 0x47, 0xfb, 0x3b, 0xcc, + 0xd1, 0x7e, 0xac, 0xc7, 0x68, 0xe7, 0x0c, 0xf3, 0xdf, 0x2f, 0xa8, 0xfe, 0xd6, 0x83, 0x30, 0x1e, + 0x80, 0xe5, 0x79, 0x05, 0x46, 0xdb, 0x61, 0x10, 0x07, 0xcd, 0xc0, 0x13, 0x1c, 0xcf, 0xe3, 0x49, + 0xd4, 0x01, 0x5e, 0x7e, 0xa4, 0xfd, 0xc6, 0x0a, 0x9b, 0x8d, 0x5e, 0x10, 0xc6, 0x82, 0xcb, 0x48, + 0x46, 0x2f, 0x08, 0x63, 0xcc, 0x20, 0xa8, 0x05, 0x10, 0x3b, 0xe1, 0x16, 0x89, 0x69, 0x99, 0x08, + 0x60, 0x92, 0x7f, 0x78, 0x74, 0x62, 0xd7, 0x9b, 0x77, 0xfd, 0x38, 0x8a, 0xc3, 0xf9, 0x9a, 0x1f, + 0xdf, 0x0e, 0xb9, 0x00, 0xa5, 0x85, 0x11, 0x50, 0xb4, 0xb0, 0x46, 0x57, 0xfa, 0x7a, 0xb2, 0x36, + 0x86, 0xcc, 0x07, 0xf1, 0x35, 0x51, 0x8e, 0x15, 0x86, 0xfd, 0x32, 0xbb, 0x4a, 0xd8, 0x00, 0x1d, + 0xcf, 0xc3, 0xff, 0x1b, 0xa3, 0x6a, 0x68, 0xd9, 0x6b, 0x58, 0x55, 0x8f, 0x23, 0xd0, 0xfb, 0xe4, + 0xa6, 0x0d, 0xeb, 0x7e, 0x34, 0x49, 0xb0, 0x01, 0xf4, 0x9d, 0x5d, 0x76, 0x12, 0xcf, 0xf5, 0xb9, + 0x02, 0x8e, 0x61, 0x19, 0xc1, 0x02, 0x69, 0xb3, 0x30, 0xc3, 0xb5, 0xba, 0x58, 0xe4, 0x5a, 0x20, + 0x6d, 0x01, 0xc0, 0x09, 0x0e, 0xba, 0x2a, 0xc4, 0xef, 0x92, 0x91, 0x4e, 0x4f, 0x8a, 0xdf, 0xf2, + 0xf3, 0x35, 0xf9, 0xfb, 0x79, 0x18, 0x53, 0x69, 0xf5, 0xea, 0x3c, 0x3b, 0x99, 0x08, 0xe7, 0xb2, + 0x9c, 0x14, 0x63, 0x1d, 0x07, 0xad, 0xc3, 0x54, 0xc4, 0x75, 0x2f, 0x2a, 0x6a, 0x1f, 0xd7, 0x61, + 0x7d, 0x52, 0xda, 0x57, 0x34, 0x4c, 0xf0, 0x11, 0x2b, 0xe2, 0x47, 0x87, 0x74, 0xd8, 0x4c, 0x93, + 0x40, 0xaf, 0xc3, 0xa4, 0xa7, 0x27, 0xb0, 0xaf, 0x0b, 0x15, 0x97, 0x32, 0x3f, 0x36, 0xd2, 0xdb, + 0xd7, 0x71, 0x0a, 0x9b, 0x72, 0x4a, 0x7a, 0x89, 0x88, 0x34, 0xe9, 0xf8, 0x5b, 0x24, 0x12, 0x49, + 0xc1, 0x18, 0xa7, 0x74, 0x2b, 0x07, 0x07, 0xe7, 0xd6, 0x46, 0xaf, 0xc0, 0xb8, 0xfc, 0x7c, 0xcd, + 0x1d, 0x39, 0x31, 0x72, 0xd7, 0x60, 0xd8, 0xc0, 0x44, 0xf7, 0xe0, 0x9c, 0xfc, 0xbf, 0x1e, 0x3a, + 0x9b, 0x9b, 0x6e, 0x53, 0x78, 0x83, 0x73, 0x4f, 0x9f, 0x05, 0xe9, 0x3a, 0xb4, 0x9c, 0x85, 0x74, + 0x74, 0x50, 0xb9, 0x24, 0x46, 0x2d, 0x13, 0xce, 0x26, 0x31, 0x9b, 0x3e, 0x5a, 0x85, 0x33, 0xdb, + 0xc4, 0xf1, 0xe2, 0xed, 0xa5, 0x6d, 0xd2, 0xdc, 0x91, 0x9b, 0x88, 0x39, 0x39, 0x6b, 0xa6, 0xe1, + 0x37, 0xba, 0x51, 0x70, 0x56, 0x3d, 0xf4, 0x0e, 0xcc, 0xb6, 0x3b, 0x1b, 0x9e, 0x1b, 0x6d, 0xaf, + 0x05, 0x31, 0x33, 0xe9, 0x50, 0x59, 0xe9, 0x84, 0x37, 0xb4, 0x72, 0xf0, 0xae, 0xe7, 0xe0, 0xe1, + 0x5c, 0x0a, 0xe8, 0x7d, 0x38, 0x97, 0x5a, 0x0c, 0xc2, 0x37, 0x73, 0x32, 0x3f, 0x6e, 0x6f, 0x23, + 0xab, 0x82, 0xf0, 0xb5, 0xcc, 0x02, 0xe1, 0xec, 0x26, 0x3e, 0x98, 0xa1, 0xcf, 0x7b, 0xb4, 0xb2, + 0xc6, 0x94, 0xa1, 0x2f, 0xc1, 0xb8, 0xbe, 0x8a, 0xc4, 0x05, 0x73, 0x39, 0x9b, 0x67, 0xd1, 0x56, + 0x1b, 0x67, 0xe9, 0xd4, 0x8a, 0xd2, 0x61, 0xd8, 0xa0, 0x68, 0x13, 0xc8, 0xfe, 0x3e, 0x74, 0x0b, + 0x46, 0x9b, 0x9e, 0x4b, 0xfc, 0xb8, 0x56, 0xef, 0x15, 0x3c, 0x64, 0x49, 0xe0, 0x88, 0x01, 0x13, + 0x81, 0x4e, 0x79, 0x19, 0x56, 0x14, 0xec, 0x5f, 0x2b, 0x40, 0xa5, 0x4f, 0xd4, 0xdc, 0x94, 0x3e, + 0xda, 0x1a, 0x48, 0x1f, 0xbd, 0x20, 0x73, 0xec, 0xad, 0xa5, 0x84, 0xf4, 0x54, 0xfe, 0xbc, 0x44, + 0x54, 0x4f, 0xe3, 0x0f, 0x6c, 0x1f, 0xac, 0xab, 0xb4, 0x4b, 0x7d, 0x2d, 0xd7, 0x8d, 0xa7, 0xac, + 0xa1, 0xc1, 0x05, 0x91, 0xdc, 0x67, 0x09, 0xfb, 0xeb, 0x05, 0x38, 0xa7, 0x86, 0xf0, 0x2f, 0xee, + 0xc0, 0xdd, 0xe9, 0x1e, 0xb8, 0x13, 0x78, 0xd4, 0xb1, 0x6f, 0xc3, 0x30, 0x0f, 0xbe, 0x32, 0x00, + 0x03, 0xf4, 0xa4, 0x19, 0xa9, 0x4b, 0x5d, 0xd3, 0x46, 0xb4, 0xae, 0xbf, 0x66, 0xc1, 0xd4, 0xfa, + 0x52, 0xbd, 0x11, 0x34, 0x77, 0x48, 0xbc, 0xc0, 0x19, 0x56, 0x2c, 0xf8, 0x1f, 0xeb, 0x01, 0xf9, + 0x9a, 0x2c, 0x8e, 0xe9, 0x12, 0x94, 0xb6, 0x83, 0x28, 0x4e, 0xbf, 0xf8, 0xde, 0x08, 0xa2, 0x18, + 0x33, 0x88, 0xfd, 0x3b, 0x16, 0x0c, 0xb1, 0xcc, 0xb0, 0xfd, 0xd2, 0x15, 0x0f, 0xf2, 0x5d, 0xe8, + 0x25, 0x18, 0x26, 0x9b, 0x9b, 0xa4, 0x19, 0x8b, 0x59, 0x95, 0xee, 0xa8, 0xc3, 0xcb, 0xac, 0x94, + 0x5e, 0xfa, 0xac, 0x31, 0xfe, 0x17, 0x0b, 0x64, 0xf4, 0x16, 0x94, 0x63, 0x77, 0x97, 0x2c, 0xb4, + 0x5a, 0xe2, 0xcd, 0xec, 0x01, 0xbc, 0x7f, 0xd7, 0x25, 0x01, 0x9c, 0xd0, 0xb2, 0xbf, 0x5a, 0x00, + 0x48, 0x42, 0x08, 0xf4, 0xfb, 0xc4, 0xc5, 0xae, 0xd7, 0x94, 0xcb, 0x19, 0xaf, 0x29, 0x28, 0x21, + 0x98, 0xf1, 0x94, 0xa2, 0x86, 0xa9, 0x38, 0xd0, 0x30, 0x95, 0x8e, 0x33, 0x4c, 0x4b, 0x30, 0x93, + 0x84, 0x40, 0x30, 0xe3, 0xc1, 0x30, 0x21, 0x65, 0x3d, 0x0d, 0xc4, 0xdd, 0xf8, 0x36, 0x81, 0x4b, + 0x32, 0x32, 0xa7, 0xbc, 0x6b, 0x98, 0x49, 0xe6, 0x31, 0x32, 0x57, 0x27, 0xcf, 0x45, 0x85, 0xdc, + 0xe7, 0xa2, 0x1f, 0xb7, 0xe0, 0x6c, 0xba, 0x1d, 0xe6, 0xfb, 0xf6, 0x15, 0x0b, 0xce, 0xb1, 0x47, + 0x33, 0xd6, 0x6a, 0xf7, 0x13, 0xdd, 0x8b, 0xd9, 0xa1, 0x21, 0x7a, 0xf7, 0x38, 0xf1, 0x7b, 0x5e, + 0xcd, 0x22, 0x8d, 0xb3, 0x5b, 0xb4, 0xbf, 0x62, 0xc1, 0xf9, 0xdc, 0x84, 0x44, 0xe8, 0x0a, 0x8c, + 0x3a, 0x6d, 0x97, 0x6b, 0xa4, 0xc4, 0x7e, 0x67, 0xd2, 0x63, 0xbd, 0xc6, 0xf5, 0x51, 0x0a, 0xaa, + 0x12, 0x25, 0x16, 0x72, 0x13, 0x25, 0xf6, 0xcd, 0x7b, 0x68, 0x7f, 0xbf, 0x05, 0xc2, 0xdd, 0x69, + 0x80, 0x43, 0xe6, 0x6d, 0x99, 0x67, 0xd6, 0x08, 0x8a, 0x7e, 0x29, 0xdf, 0xff, 0x4b, 0x84, 0x42, + 0x57, 0x97, 0xba, 0x11, 0x00, 0xdd, 0xa0, 0x65, 0xb7, 0x40, 0x40, 0xab, 0x84, 0xe9, 0xac, 0xfa, + 0xf7, 0xe6, 0x1a, 0x40, 0x8b, 0xe1, 0x6a, 0xd9, 0x26, 0xd5, 0x15, 0x52, 0x55, 0x10, 0xac, 0x61, + 0xd9, 0x3f, 0x54, 0x80, 0x31, 0x19, 0x84, 0xbb, 0xe3, 0x0f, 0x22, 0x59, 0x1e, 0x2b, 0x2b, 0x0f, + 0x4b, 0xcf, 0x4a, 0x09, 0xd7, 0x13, 0x81, 0x3c, 0x49, 0xcf, 0x2a, 0x01, 0x38, 0xc1, 0x41, 0x4f, + 0xc3, 0x48, 0xd4, 0xd9, 0x60, 0xe8, 0x29, 0x27, 0x9e, 0x06, 0x2f, 0xc6, 0x12, 0x8e, 0x3e, 0x07, + 0xd3, 0xbc, 0x5e, 0x18, 0xb4, 0x9d, 0x2d, 0xae, 0xfe, 0x1c, 0x52, 0x5e, 0xb5, 0xd3, 0xab, 0x29, + 0xd8, 0xd1, 0x41, 0xe5, 0x6c, 0xba, 0x8c, 0x29, 0xce, 0xbb, 0xa8, 0xd8, 0x5f, 0x02, 0xd4, 0x1d, + 0x57, 0x1c, 0xbd, 0xc1, 0x4d, 0xa9, 0xdc, 0x90, 0xb4, 0x7a, 0x69, 0xc4, 0x75, 0x27, 0x50, 0x69, + 0x48, 0xcf, 0x6b, 0x61, 0x55, 0xdf, 0xfe, 0x9b, 0x45, 0x98, 0x4e, 0xbb, 0x04, 0xa2, 0x1b, 0x30, + 0xcc, 0x2f, 0x3b, 0x41, 0xbe, 0xc7, 0x83, 0xab, 0xe6, 0x48, 0xc8, 0xb6, 0xbd, 0xb8, 0x2f, 0x45, + 0x7d, 0xf4, 0x0e, 0x8c, 0xb5, 0x82, 0x7b, 0xfe, 0x3d, 0x27, 0x6c, 0x2d, 0xd4, 0x6b, 0x62, 0x5d, + 0x66, 0xf2, 0xcc, 0xd5, 0x04, 0x4d, 0x77, 0x4e, 0x64, 0x8f, 0x0b, 0x09, 0x08, 0xeb, 0xe4, 0xd0, + 0x3a, 0x8b, 0x95, 0xb8, 0xe9, 0x6e, 0xad, 0x3a, 0xed, 0x5e, 0x76, 0xb5, 0x4b, 0x12, 0x49, 0xa3, + 0x3c, 0x21, 0x02, 0x2a, 0x72, 0x00, 0x4e, 0x08, 0xa1, 0xef, 0x86, 0x33, 0x51, 0x8e, 0x9a, 0x2d, + 0x2f, 0xcd, 0x44, 0x2f, 0xcd, 0xd3, 0xe2, 0xa3, 0x54, 0x9a, 0xc9, 0x52, 0xc8, 0x65, 0x35, 0x63, + 0x7f, 0xf9, 0x0c, 0x18, 0xbb, 0xd1, 0xc8, 0x3a, 0x64, 0x9d, 0x50, 0xd6, 0x21, 0x0c, 0xa3, 0x64, + 0xb7, 0x1d, 0xef, 0x57, 0xdd, 0xb0, 0x57, 0x56, 0xbc, 0x65, 0x81, 0xd3, 0x4d, 0x53, 0x42, 0xb0, + 0xa2, 0x93, 0x9d, 0x1a, 0xaa, 0xf8, 0x21, 0xa6, 0x86, 0x2a, 0x9d, 0x62, 0x6a, 0xa8, 0x35, 0x18, + 0xd9, 0x72, 0x63, 0x4c, 0xda, 0x81, 0x60, 0x33, 0x33, 0xd7, 0xe1, 0x75, 0x8e, 0xd2, 0x9d, 0x84, + 0x44, 0x00, 0xb0, 0x24, 0x82, 0xde, 0x50, 0x3b, 0x70, 0x38, 0x5f, 0x4a, 0xeb, 0x7e, 0x19, 0xcc, + 0xdc, 0x83, 0x22, 0x01, 0xd4, 0xc8, 0x83, 0x26, 0x80, 0x5a, 0x91, 0x69, 0x9b, 0x46, 0xf3, 0x8d, + 0xe0, 0x59, 0x56, 0xa6, 0x3e, 0xc9, 0x9a, 0xee, 0xea, 0xa9, 0xae, 0xca, 0xf9, 0x27, 0x81, 0xca, + 0x62, 0x35, 0x60, 0x82, 0xab, 0xef, 0xb7, 0xe0, 0x5c, 0x3b, 0x2b, 0xeb, 0x9b, 0x48, 0xb6, 0xf4, + 0xd2, 0xc0, 0x69, 0xed, 0x8c, 0x06, 0x99, 0xb8, 0x9e, 0x89, 0x86, 0xb3, 0x9b, 0xa3, 0x03, 0x1d, + 0x6e, 0xb4, 0x44, 0x86, 0xa6, 0x27, 0x73, 0x32, 0x65, 0xf5, 0xc8, 0x8f, 0xb5, 0x9e, 0x91, 0x95, + 0xe9, 0xe3, 0x79, 0x59, 0x99, 0x06, 0xce, 0xc5, 0xf4, 0x86, 0xca, 0x91, 0x35, 0x91, 0xbf, 0x94, + 0x78, 0x06, 0xac, 0xbe, 0x99, 0xb1, 0xde, 0x50, 0x99, 0xb1, 0x7a, 0xc4, 0x8c, 0xe3, 0x79, 0xaf, + 0xfa, 0xe6, 0xc3, 0xd2, 0x72, 0x5a, 0x4d, 0x9d, 0x4c, 0x4e, 0x2b, 0xe3, 0xaa, 0xe1, 0x69, 0x95, + 0x9e, 0xe9, 0x73, 0xd5, 0x18, 0x74, 0x7b, 0x5f, 0x36, 0x3c, 0x7f, 0xd7, 0xcc, 0x03, 0xe5, 0xef, + 0xba, 0xab, 0xe7, 0xc3, 0x42, 0x7d, 0x12, 0x3e, 0x51, 0xa4, 0x01, 0xb3, 0x60, 0xdd, 0xd5, 0x2f, + 0xc0, 0x33, 0xf9, 0x74, 0xd5, 0x3d, 0xd7, 0x4d, 0x37, 0xf3, 0x0a, 0xec, 0xca, 0xae, 0x75, 0xf6, + 0x74, 0xb2, 0x6b, 0x9d, 0x3b, 0xf1, 0xec, 0x5a, 0x8f, 0x9c, 0x42, 0x76, 0xad, 0x47, 0x3f, 0xd4, + 0xec, 0x5a, 0xb3, 0x0f, 0x21, 0xbb, 0xd6, 0x5a, 0x92, 0x5d, 0xeb, 0x7c, 0xfe, 0x94, 0x64, 0x58, + 0xe6, 0xe6, 0xe4, 0xd4, 0xba, 0xcb, 0x9e, 0xe7, 0x79, 0xcc, 0x0a, 0x11, 0xd4, 0x2e, 0x3b, 0x93, + 0x70, 0x56, 0x60, 0x0b, 0x3e, 0x25, 0x0a, 0x84, 0x13, 0x52, 0x94, 0x6e, 0x92, 0x63, 0xeb, 0xb1, + 0x1e, 0x0a, 0xd9, 0x2c, 0x55, 0x57, 0x7e, 0x66, 0x2d, 0xfb, 0xaf, 0x17, 0xe0, 0x62, 0xef, 0x75, + 0x9d, 0xe8, 0xc9, 0xea, 0xc9, 0xbb, 0x4e, 0x4a, 0x4f, 0xc6, 0x85, 0x9c, 0x04, 0x6b, 0xe0, 0xc0, + 0x3e, 0xd7, 0x61, 0x46, 0x99, 0xe4, 0x7a, 0x6e, 0x73, 0x5f, 0xcb, 0x30, 0xac, 0x5c, 0x0f, 0x1b, + 0x69, 0x04, 0xdc, 0x5d, 0x07, 0x2d, 0xc0, 0x94, 0x51, 0x58, 0xab, 0x0a, 0x61, 0x46, 0x29, 0xe6, + 0x1a, 0x26, 0x18, 0xa7, 0xf1, 0xed, 0x9f, 0xb6, 0xe0, 0xd1, 0x9c, 0xc4, 0x13, 0x03, 0xc7, 0xad, + 0xd9, 0x84, 0xa9, 0xb6, 0x59, 0xb5, 0x4f, 0x78, 0x2b, 0x23, 0xbd, 0x85, 0xea, 0x6b, 0x0a, 0x80, + 0xd3, 0x44, 0x17, 0xaf, 0xfc, 0xe6, 0xef, 0x5d, 0xfc, 0xd8, 0x6f, 0xfd, 0xde, 0xc5, 0x8f, 0xfd, + 0xf6, 0xef, 0x5d, 0xfc, 0xd8, 0x5f, 0x3e, 0xbc, 0x68, 0xfd, 0xe6, 0xe1, 0x45, 0xeb, 0xb7, 0x0e, + 0x2f, 0x5a, 0xbf, 0x7d, 0x78, 0xd1, 0xfa, 0xdd, 0xc3, 0x8b, 0xd6, 0x57, 0x7f, 0xff, 0xe2, 0xc7, + 0xde, 0x2e, 0xec, 0x3d, 0xff, 0xff, 0x03, 0x00, 0x00, 0xff, 0xff, 0x84, 0x97, 0x9c, 0xb4, 0x50, + 0xe8, 0x00, 0x00, } diff --git a/vendor/k8s.io/api/core/v1/generated.proto b/vendor/k8s.io/api/core/v1/generated.proto index 077363cff..165aa2a24 100644 --- a/vendor/k8s.io/api/core/v1/generated.proto +++ b/vendor/k8s.io/api/core/v1/generated.proto @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,7 +21,6 @@ syntax = 'proto2'; package k8s.io.api.core.v1; -import "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/generated.proto"; import "k8s.io/apimachinery/pkg/api/resource/generated.proto"; import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/generated.proto"; @@ -32,7 +31,7 @@ import "k8s.io/apimachinery/pkg/util/intstr/generated.proto"; option go_package = "v1"; // Represents a Persistent Disk resource in AWS. -// +// // An AWS EBS disk must exist before mounting to a container. The disk // must also be in the same AWS zone as the kubelet. An AWS EBS disk // can only be mounted as read/write once. AWS EBS volumes support @@ -188,7 +187,7 @@ message CSIPersistentVolumeSource { // Filesystem type to mount. // Must be a filesystem type supported by the host operating system. - // Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + // Ex. "ext4", "xfs", "ntfs". // +optional optional string fsType = 4; @@ -199,7 +198,7 @@ message CSIPersistentVolumeSource { // ControllerPublishSecretRef is a reference to the secret object containing // sensitive information to pass to the CSI driver to complete the CSI // ControllerPublishVolume and ControllerUnpublishVolume calls. - // This field is optional, and may be empty if no secret is required. If the + // This field is optional, and may be empty if no secret is required. If the // secret object contains more than one secret, all secrets are passed. // +optional optional SecretReference controllerPublishSecretRef = 6; @@ -207,7 +206,7 @@ message CSIPersistentVolumeSource { // NodeStageSecretRef is a reference to the secret object containing sensitive // information to pass to the CSI driver to complete the CSI NodeStageVolume // and NodeStageVolume and NodeUnstageVolume calls. - // This field is optional, and may be empty if no secret is required. If the + // This field is optional, and may be empty if no secret is required. If the // secret object contains more than one secret, all secrets are passed. // +optional optional SecretReference nodeStageSecretRef = 7; @@ -215,7 +214,7 @@ message CSIPersistentVolumeSource { // NodePublishSecretRef is a reference to the secret object containing // sensitive information to pass to the CSI driver to complete the CSI // NodePublishVolume and NodeUnpublishVolume calls. - // This field is optional, and may be empty if no secret is required. If the + // This field is optional, and may be empty if no secret is required. If the // secret object contains more than one secret, all secrets are passed. // +optional optional SecretReference nodePublishSecretRef = 8; @@ -298,6 +297,34 @@ message CephFSVolumeSource { optional bool readOnly = 6; } +// Represents a cinder volume resource in Openstack. +// A Cinder volume must exist before mounting to a container. +// The volume must also be in the same region as the kubelet. +// Cinder volumes support ownership management and SELinux relabeling. +message CinderPersistentVolumeSource { + // volume id used to identify the volume in cinder + // More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md + optional string volumeID = 1; + + // Filesystem type to mount. + // Must be a filesystem type supported by the host operating system. + // Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + // More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md + // +optional + optional string fsType = 2; + + // Optional: Defaults to false (read/write). ReadOnly here will force + // the ReadOnly setting in VolumeMounts. + // More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md + // +optional + optional bool readOnly = 3; + + // Optional: points to a secret object containing parameters used to connect + // to OpenStack. + // +optional + optional SecretReference secretRef = 4; +} + // Represents a cinder volume resource in Openstack. // A Cinder volume must exist before mounting to a container. // The volume must also be in the same region as the kubelet. @@ -319,6 +346,11 @@ message CinderVolumeSource { // More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md // +optional optional bool readOnly = 3; + + // Optional: points to a secret object containing parameters used to connect + // to OpenStack. + // +optional + optional LocalObjectReference secretRef = 4; } // ClientIPConfig represents the configurations of Client IP based session affinity. @@ -404,7 +436,7 @@ message ConfigMap { // ConfigMapEnvSource selects a ConfigMap to populate the environment // variables with. -// +// // The contents of the target ConfigMap's Data field will represent the // key-value pairs as environment variables. message ConfigMapEnvSource { @@ -439,8 +471,33 @@ message ConfigMapList { repeated ConfigMap items = 2; } +// ConfigMapNodeConfigSource contains the information to reference a ConfigMap as a config source for the Node. +message ConfigMapNodeConfigSource { + // Namespace is the metadata.namespace of the referenced ConfigMap. + // This field is required in all cases. + optional string namespace = 1; + + // Name is the metadata.name of the referenced ConfigMap. + // This field is required in all cases. + optional string name = 2; + + // UID is the metadata.UID of the referenced ConfigMap. + // This field is forbidden in Node.Spec, and required in Node.Status. + // +optional + optional string uid = 3; + + // ResourceVersion is the metadata.ResourceVersion of the referenced ConfigMap. + // This field is forbidden in Node.Spec, and required in Node.Status. + // +optional + optional string resourceVersion = 4; + + // KubeletConfigKey declares which key of the referenced ConfigMap corresponds to the KubeletConfiguration structure + // This field is required in all cases. + optional string kubeletConfigKey = 5; +} + // Adapts a ConfigMap into a projected volume. -// +// // The contents of the target ConfigMap's Data field will be presented in a // projected volume as files using the keys in the Data field as the file names, // unless the items element is populated with specific mappings of keys to paths. @@ -465,7 +522,7 @@ message ConfigMapProjection { } // Adapts a ConfigMap into a volume. -// +// // The contents of the target ConfigMap's Data field will be presented in a // volume as files using the keys in the Data field as the file names, unless // the items element is populated with specific mappings of keys to paths. @@ -549,6 +606,9 @@ message Container { // +optional // +patchMergeKey=containerPort // +patchStrategy=merge + // +listType=map + // +listMapKey=containerPort + // +listMapKey=protocol repeated ContainerPort ports = 6; // List of sources to populate environment variables in the container. @@ -569,7 +629,7 @@ message Container { // Compute Resources required by this container. // Cannot be updated. - // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources + // More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/ // +optional optional ResourceRequirements resources = 8; @@ -581,7 +641,7 @@ message Container { repeated VolumeMount volumeMounts = 9; // volumeDevices is the list of block devices to be used by the container. - // This is an alpha feature and may change in the future. + // This is a beta feature. // +patchMergeKey=devicePath // +patchStrategy=merge // +optional @@ -692,7 +752,7 @@ message ContainerPort { // This must be a valid port number, 0 < x < 65536. optional int32 containerPort = 3; - // Protocol for port. Must be UDP or TCP. + // Protocol for port. Must be UDP, TCP, or SCTP. // Defaults to "TCP". // +optional optional string protocol = 4; @@ -809,41 +869,6 @@ message DaemonEndpoint { optional int32 Port = 1; } -// DeleteOptions may be provided when deleting an API object -// DEPRECATED: This type has been moved to meta/v1 and will be removed soon. -// +k8s:openapi-gen=false -message DeleteOptions { - // The duration in seconds before the object should be deleted. Value must be non-negative integer. - // The value zero indicates delete immediately. If this value is nil, the default grace period for the - // specified type will be used. - // Defaults to a per object value if not specified. zero means delete immediately. - // +optional - optional int64 gracePeriodSeconds = 1; - - // Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be - // returned. - // +optional - optional Preconditions preconditions = 2; - - // Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. - // Should the dependent objects be orphaned. If true/false, the "orphan" - // finalizer will be added to/removed from the object's finalizers list. - // Either this field or PropagationPolicy may be set, but not both. - // +optional - optional bool orphanDependents = 3; - - // Whether and how garbage collection will be performed. - // Either this field or OrphanDependents may be set, but not both. - // The default policy is decided by the existing finalizer set in the - // metadata.finalizers and the resource-specific default policy. - // Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - - // allow the garbage collector to delete the dependents in the background; - // 'Foreground' - a cascading policy that deletes all dependents in the - // foreground. - // +optional - optional string propagationPolicy = 4; -} - // Represents downward API info for projecting into a projected volume. // Note that this is identical to a downwardAPI volume source without the default // mode. @@ -946,7 +971,7 @@ message EndpointPort { optional int32 port = 2; // The IP protocol for this port. - // Must be UDP or TCP. + // Must be UDP, TCP, or SCTP. // Default is TCP. // +optional optional string protocol = 3; @@ -1292,7 +1317,7 @@ message FlockerVolumeSource { } // Represents a Persistent Disk resource in Google Compute Engine. -// +// // A GCE PD must exist before mounting to a container. The disk must // also be in the same GCE project and zone as the kubelet. A GCE PD // can only be mounted as read/write once or read-only many times. GCE @@ -1328,6 +1353,10 @@ message GCEPersistentDiskVolumeSource { // Represents a volume that is populated with the contents of a git repository. // Git repo volumes do not support ownership management. // Git repo volumes support SELinux relabeling. +// +// DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an +// EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir +// into the Pod's container. message GitRepoVolumeSource { // Repository URL optional string repository = 1; @@ -1344,6 +1373,30 @@ message GitRepoVolumeSource { optional string directory = 3; } +// Represents a Glusterfs mount that lasts the lifetime of a pod. +// Glusterfs volumes do not support ownership management or SELinux relabeling. +message GlusterfsPersistentVolumeSource { + // EndpointsName is the endpoint name that details Glusterfs topology. + // More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod + optional string endpoints = 1; + + // Path is the Glusterfs volume path. + // More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod + optional string path = 2; + + // ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. + // Defaults to false. + // More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod + // +optional + optional bool readOnly = 3; + + // EndpointsNamespace is the namespace that contains Glusterfs endpoint. + // If this field is empty, the EndpointNamespace defaults to the same namespace as the bound PVC. + // More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod + // +optional + optional string endpointsNamespace = 4; +} + // Represents a Glusterfs mount that lasts the lifetime of a pod. // Glusterfs volumes do not support ownership management or SELinux relabeling. message GlusterfsVolumeSource { @@ -1662,43 +1715,6 @@ message List { repeated k8s.io.apimachinery.pkg.runtime.RawExtension items = 2; } -// ListOptions is the query options to a standard REST list call. -// DEPRECATED: This type has been moved to meta/v1 and will be removed soon. -// +k8s:openapi-gen=false -message ListOptions { - // A selector to restrict the list of returned objects by their labels. - // Defaults to everything. - // +optional - optional string labelSelector = 1; - - // A selector to restrict the list of returned objects by their fields. - // Defaults to everything. - // +optional - optional string fieldSelector = 2; - - // If true, partially initialized resources are included in the response. - // +optional - optional bool includeUninitialized = 6; - - // Watch for changes to the described resources and return them as a stream of - // add, update, and remove notifications. Specify resourceVersion. - // +optional - optional bool watch = 3; - - // When specified with a watch call, shows changes that occur after that particular version of a resource. - // Defaults to changes from the beginning of history. - // When specified for list: - // - if unset, then the result is returned from remote storage based on quorum-read flag; - // - if it's 0, then we simply return what we currently have in cache, no guarantee; - // - if set to non zero, then the result is at least as fresh as given rv. - // +optional - optional string resourceVersion = 4; - - // Timeout for the list/watch call. - // +optional - optional int64 timeoutSeconds = 5; -} - // LoadBalancerIngress represents the status of a load-balancer ingress point: // traffic intended for the service should be sent to an ingress point. message LoadBalancerIngress { @@ -1731,12 +1747,18 @@ message LocalObjectReference { optional string name = 1; } -// Local represents directly-attached storage with node affinity +// Local represents directly-attached storage with node affinity (Beta feature) message LocalVolumeSource { - // The full path to the volume on the node - // For alpha, this path must be a directory - // Once block as a source is supported, then this path can point to a block device + // The full path to the volume on the node. + // It can be either a directory or block device (disk, partition, ...). optional string path = 1; + + // Filesystem type to mount. + // It applies only when the Path is a block device. + // Must be a filesystem type supported by the host operating system. + // Ex. "ext4", "xfs", "ntfs". The default value is to auto-select a fileystem if unspecified. + // +optional + optional string fsType = 2; } // Represents an NFS mount that lasts the lifetime of a pod. @@ -1885,7 +1907,58 @@ message NodeCondition { // NodeConfigSource specifies a source of node configuration. Exactly one subfield (excluding metadata) must be non-nil. message NodeConfigSource { - optional ObjectReference configMapRef = 1; + // ConfigMap is a reference to a Node's ConfigMap + optional ConfigMapNodeConfigSource configMap = 2; +} + +// NodeConfigStatus describes the status of the config assigned by Node.Spec.ConfigSource. +message NodeConfigStatus { + // Assigned reports the checkpointed config the node will try to use. + // When Node.Spec.ConfigSource is updated, the node checkpoints the associated + // config payload to local disk, along with a record indicating intended + // config. The node refers to this record to choose its config checkpoint, and + // reports this record in Assigned. Assigned only updates in the status after + // the record has been checkpointed to disk. When the Kubelet is restarted, + // it tries to make the Assigned config the Active config by loading and + // validating the checkpointed payload identified by Assigned. + // +optional + optional NodeConfigSource assigned = 1; + + // Active reports the checkpointed config the node is actively using. + // Active will represent either the current version of the Assigned config, + // or the current LastKnownGood config, depending on whether attempting to use the + // Assigned config results in an error. + // +optional + optional NodeConfigSource active = 2; + + // LastKnownGood reports the checkpointed config the node will fall back to + // when it encounters an error attempting to use the Assigned config. + // The Assigned config becomes the LastKnownGood config when the node determines + // that the Assigned config is stable and correct. + // This is currently implemented as a 10-minute soak period starting when the local + // record of Assigned config is updated. If the Assigned config is Active at the end + // of this period, it becomes the LastKnownGood. Note that if Spec.ConfigSource is + // reset to nil (use local defaults), the LastKnownGood is also immediately reset to nil, + // because the local default config is always assumed good. + // You should not make assumptions about the node's method of determining config stability + // and correctness, as this may change or become configurable in the future. + // +optional + optional NodeConfigSource lastKnownGood = 3; + + // Error describes any problems reconciling the Spec.ConfigSource to the Active config. + // Errors may occur, for example, attempting to checkpoint Spec.ConfigSource to the local Assigned + // record, attempting to checkpoint the payload associated with Spec.ConfigSource, attempting + // to load or validate the Assigned config, etc. + // Errors may occur at different points while syncing config. Earlier errors (e.g. download or + // checkpointing errors) will not result in a rollback to LastKnownGood, and may resolve across + // Kubelet retries. Later errors (e.g. loading or validating a checkpointed config) will result in + // a rollback to LastKnownGood. In the latter case, it is usually possible to resolve the error + // by fixing the config assigned in Spec.ConfigSource. + // You can find additional information for debugging by searching the error message in the Kubelet log. + // Error is a human-readable description of the error state; machines can check whether or not Error + // is empty, but should not rely on the stability of the Error text across Kubelet versions. + // +optional + optional string error = 4; } // NodeDaemonEndpoints lists ports opened by daemons running on the Node. @@ -1947,10 +2020,17 @@ message NodeSelectorRequirement { repeated string values = 3; } -// A null or empty node selector term matches no objects. +// A null or empty node selector term matches no objects. The requirements of +// them are ANDed. +// The TopologySelectorTerm type implements a subset of the NodeSelectorTerm. message NodeSelectorTerm { - // Required. A list of node selector requirements. The requirements are ANDed. + // A list of node selector requirements by node's labels. + // +optional repeated NodeSelectorRequirement matchExpressions = 1; + + // A list of node selector requirements by node's fields. + // +optional + repeated NodeSelectorRequirement matchFields = 2; } // NodeSpec describes the attributes that a node is created with. @@ -1959,11 +2039,6 @@ message NodeSpec { // +optional optional string podCIDR = 1; - // External ID of the node assigned by some machine database (e.g. a cloud provider). - // Deprecated. - // +optional - optional string externalID = 2; - // ID of the node assigned by the cloud provider in the format: :// // +optional optional string providerID = 3; @@ -1981,6 +2056,11 @@ message NodeSpec { // The DynamicKubeletConfig feature gate must be enabled for the Kubelet to use this field // +optional optional NodeConfigSource configSource = 6; + + // Deprecated. Not all kubelets will set this field. Remove field after 1.13. + // see: https://issues.k8s.io/61966 + // +optional + optional string externalID = 2; } // NodeStatus is information about the current status of a node. @@ -2036,6 +2116,10 @@ message NodeStatus { // List of volumes that are attached to the node. // +optional repeated AttachedVolume volumesAttached = 10; + + // Status of the config assigned to the node via the dynamic Kubelet config feature. + // +optional + optional NodeConfigStatus config = 11; } // NodeSystemInfo is a set of ids/uuids to uniquely identify the node. @@ -2085,170 +2169,6 @@ message ObjectFieldSelector { optional string fieldPath = 2; } -// ObjectMeta is metadata that all persisted resources must have, which includes all objects -// users must create. -// DEPRECATED: Use k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta instead - this type will be removed soon. -// +k8s:openapi-gen=false -message ObjectMeta { - // Name must be unique within a namespace. Is required when creating resources, although - // some resources may allow a client to request the generation of an appropriate name - // automatically. Name is primarily intended for creation idempotence and configuration - // definition. - // Cannot be updated. - // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - // +optional - optional string name = 1; - - // GenerateName is an optional prefix, used by the server, to generate a unique - // name ONLY IF the Name field has not been provided. - // If this field is used, the name returned to the client will be different - // than the name passed. This value will also be combined with a unique suffix. - // The provided value has the same validation rules as the Name field, - // and may be truncated by the length of the suffix required to make the value - // unique on the server. - // - // If this field is specified and the generated name exists, the server will - // NOT return a 409 - instead, it will either return 201 Created or 500 with Reason - // ServerTimeout indicating a unique name could not be found in the time allotted, and the client - // should retry (optionally after the time indicated in the Retry-After header). - // - // Applied only if Name is not specified. - // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency - // +optional - optional string generateName = 2; - - // Namespace defines the space within each name must be unique. An empty namespace is - // equivalent to the "default" namespace, but "default" is the canonical representation. - // Not all objects are required to be scoped to a namespace - the value of this field for - // those objects will be empty. - // - // Must be a DNS_LABEL. - // Cannot be updated. - // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ - // +optional - optional string namespace = 3; - - // SelfLink is a URL representing this object. - // Populated by the system. - // Read-only. - // +optional - optional string selfLink = 4; - - // UID is the unique in time and space value for this object. It is typically generated by - // the server on successful creation of a resource and is not allowed to change on PUT - // operations. - // - // Populated by the system. - // Read-only. - // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids - // +optional - optional string uid = 5; - - // An opaque value that represents the internal version of this object that can - // be used by clients to determine when objects have changed. May be used for optimistic - // concurrency, change detection, and the watch operation on a resource or set of resources. - // Clients must treat these values as opaque and passed unmodified back to the server. - // They may only be valid for a particular resource or set of resources. - // - // Populated by the system. - // Read-only. - // Value must be treated as opaque by clients and . - // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency - // +optional - optional string resourceVersion = 6; - - // A sequence number representing a specific generation of the desired state. - // Populated by the system. Read-only. - // +optional - optional int64 generation = 7; - - // CreationTimestamp is a timestamp representing the server time when this object was - // created. It is not guaranteed to be set in happens-before order across separate operations. - // Clients may not set this value. It is represented in RFC3339 form and is in UTC. - // - // Populated by the system. - // Read-only. - // Null for lists. - // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata - // +optional - optional k8s.io.apimachinery.pkg.apis.meta.v1.Time creationTimestamp = 8; - - // DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This - // field is set by the server when a graceful deletion is requested by the user, and is not - // directly settable by a client. The resource is expected to be deleted (no longer visible - // from resource lists, and not reachable by name) after the time in this field. Once set, - // this value may not be unset or be set further into the future, although it may be shortened - // or the resource may be deleted prior to this time. For example, a user may request that - // a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination - // signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard - // termination signal (SIGKILL) to the container and after cleanup, remove the pod from the - // API. In the presence of network partitions, this object may still exist after this - // timestamp, until an administrator or automated process can determine the resource is - // fully terminated. - // If not set, graceful deletion of the object has not been requested. - // - // Populated by the system when a graceful deletion is requested. - // Read-only. - // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata - // +optional - optional k8s.io.apimachinery.pkg.apis.meta.v1.Time deletionTimestamp = 9; - - // Number of seconds allowed for this object to gracefully terminate before - // it will be removed from the system. Only set when deletionTimestamp is also set. - // May only be shortened. - // Read-only. - // +optional - optional int64 deletionGracePeriodSeconds = 10; - - // Map of string keys and values that can be used to organize and categorize - // (scope and select) objects. May match selectors of replication controllers - // and services. - // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ - // +optional - map labels = 11; - - // Annotations is an unstructured key value map stored with a resource that may be - // set by external tools to store and retrieve arbitrary metadata. They are not - // queryable and should be preserved when modifying objects. - // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ - // +optional - map annotations = 12; - - // List of objects depended by this object. If ALL objects in the list have - // been deleted, this object will be garbage collected. If this object is managed by a controller, - // then an entry in this list will point to this controller, with the controller field set to true. - // There cannot be more than one managing controller. - // +optional - // +patchMergeKey=uid - // +patchStrategy=merge - repeated k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference ownerReferences = 13; - - // An initializer is a controller which enforces some system invariant at object creation time. - // This field is a list of initializers that have not yet acted on this object. If nil or empty, - // this object has been completely initialized. Otherwise, the object is considered uninitialized - // and is hidden (in list/watch and get calls) from clients that haven't explicitly asked to - // observe uninitialized objects. - // - // When an object is created, the system will populate this list with the current set of initializers. - // Only privileged users may set or modify this list. Once it is empty, it may not be modified further - // by any user. - optional k8s.io.apimachinery.pkg.apis.meta.v1.Initializers initializers = 16; - - // Must be empty before the object is deleted from the registry. Each entry - // is an identifier for the responsible component that will remove the entry - // from the list. If the deletionTimestamp of the object is non-nil, entries - // in this list can only be removed. - // +optional - // +patchStrategy=merge - repeated string finalizers = 14; - - // The name of the cluster which the object belongs to. - // This is used to distinguish resources with same name and namespace in different clusters. - // This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request. - // +optional - optional string clusterName = 15; -} - // ObjectReference contains enough information to let you inspect or modify the referred object. // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object message ObjectReference { @@ -2400,9 +2320,20 @@ message PersistentVolumeClaimSpec { // volumeMode defines what type of volume is required by the claim. // Value of Filesystem is implied when not included in claim spec. - // This is an alpha feature and may change in the future. + // This is a beta feature. // +optional optional string volumeMode = 6; + + // This field requires the VolumeSnapshotDataSource alpha feature gate to be + // enabled and currently VolumeSnapshot is the only supported data source. + // If the provisioner can support VolumeSnapshot data source, it will create + // a new volume and data will be restored to the volume at the same time. + // If the provisioner does not support VolumeSnapshot data source, volume will + // not be created and the failure will be reported as an event. + // In the future, we plan to support more data source types and the behavior + // of the provisioner may change. + // +optional + optional TypedLocalObjectReference dataSource = 7; } // PersistentVolumeClaimStatus is the current status of a persistent volume claim. @@ -2482,7 +2413,7 @@ message PersistentVolumeSource { // exposed to the pod. Provisioned by an admin. // More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md // +optional - optional GlusterfsVolumeSource glusterfs = 4; + optional GlusterfsPersistentVolumeSource glusterfs = 4; // NFS represents an NFS mount on the host. Provisioned by an admin. // More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs @@ -2502,7 +2433,7 @@ message PersistentVolumeSource { // Cinder represents a cinder volume attached and mounted on kubelets host machine // More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md // +optional - optional CinderVolumeSource cinder = 8; + optional CinderPersistentVolumeSource cinder = 8; // CephFS represents a Ceph FS mount on the host that shares a pod's lifetime // +optional @@ -2605,7 +2536,7 @@ message PersistentVolumeSpec { // volumeMode defines if a volume is intended to be used with a formatted filesystem // or to remain in raw block state. Value of Filesystem is implied when not included in spec. - // This is an alpha feature and may change in the future. + // This is a beta feature. // +optional optional string volumeMode = 8; @@ -2775,7 +2706,6 @@ message PodAttachOptions { // PodCondition contains details for the current condition of this pod. message PodCondition { // Type is the type of the condition. - // Currently only Ready. // More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions optional string type = 1; @@ -2944,6 +2874,12 @@ message PodProxyOptions { optional string path = 1; } +// PodReadinessGate contains the reference to a pod condition +message PodReadinessGate { + // ConditionType refers to a condition in the pod's condition list with matching type. + optional string conditionType = 1; +} + // PodSecurityContext holds pod-level security attributes and common container settings. // Some fields are also present in container.securityContext. Field values of // container.securityContext take precedence over field values of PodSecurityContext. @@ -2964,6 +2900,14 @@ message PodSecurityContext { // +optional optional int64 runAsUser = 2; + // The GID to run the entrypoint of the container process. + // Uses runtime default if unset. + // May also be set in SecurityContext. If set in both SecurityContext and + // PodSecurityContext, the value specified in SecurityContext takes precedence + // for that container. + // +optional + optional int64 runAsGroup = 6; + // Indicates that the container must run as a non-root user. // If true, the Kubelet will validate the image at runtime to ensure that it // does not run as UID 0 (root) and fail to start the container if it does. @@ -2982,14 +2926,19 @@ message PodSecurityContext { // A special supplemental group that applies to all containers in a pod. // Some volume types allow the Kubelet to change the ownership of that volume // to be owned by the pod: - // + // // 1. The owning GID will be the FSGroup // 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) // 3. The permission bits are OR'd with rw-rw---- - // + // // If unset, the Kubelet will not modify the ownership and permissions of any volume. // +optional optional int64 fsGroup = 5; + + // Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported + // sysctls (by the container runtime) might fail to launch. + // +optional + repeated Sysctl sysctls = 7; } // Describes the class of pods that should avoid this node. @@ -3117,7 +3066,7 @@ message PodSpec { // in the same pod, and the first process in each container will not be assigned PID 1. // HostPID and ShareProcessNamespace cannot both be set. // Optional: Default to false. - // This field is alpha-level and is honored only by servers that enable the PodShareProcessNamespace feature. + // This field is beta-level and may be disabled with the PodShareProcessNamespace feature. // +k8s:conversion-gen=false // +optional optional bool shareProcessNamespace = 27; @@ -3188,12 +3137,50 @@ message PodSpec { // configuration based on DNSPolicy. // +optional optional PodDNSConfig dnsConfig = 26; + + // If specified, all readiness gates will be evaluated for pod readiness. + // A pod is ready when all its containers are ready AND + // all conditions specified in the readiness gates have status equal to "True" + // More info: https://github.com/kubernetes/community/blob/master/keps/sig-network/0007-pod-ready%2B%2B.md + // +optional + repeated PodReadinessGate readinessGates = 28; + + // RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used + // to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. + // If unset or empty, the "legacy" RuntimeClass will be used, which is an implicit class with an + // empty definition that uses the default runtime handler. + // More info: https://github.com/kubernetes/community/blob/master/keps/sig-node/0014-runtime-class.md + // This is an alpha feature and may change in the future. + // +optional + optional string runtimeClassName = 29; + + // EnableServiceLinks indicates whether information about services should be injected into pod's + // environment variables, matching the syntax of Docker links. + // +optional + optional bool enableServiceLinks = 30; } // PodStatus represents information about the status of a pod. Status may trail the actual -// state of a system. +// state of a system, especially if the node that hosts the pod cannot contact the control +// plane. message PodStatus { - // Current condition of the pod. + // The phase of a Pod is a simple, high-level summary of where the Pod is in its lifecycle. + // The conditions array, the reason and message fields, and the individual container status + // arrays contain more detail about the pod's status. + // There are five possible phase values: + // + // Pending: The pod has been accepted by the Kubernetes system, but one or more of the + // container images has not been created. This includes time before being scheduled as + // well as time spent downloading images over the network, which could take a while. + // Running: The pod has been bound to a node, and all of the containers have been created. + // At least one container is still running, or is in the process of starting or restarting. + // Succeeded: All containers in the pod have terminated in success, and will not be restarted. + // Failed: All containers in the pod have terminated, and at least one container has + // terminated in failure. The container either exited with non-zero status or was terminated + // by the system. + // Unknown: For some reason the state of the pod could not be obtained, typically due to an + // error in communicating with the host of the pod. + // // More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase // +optional optional string phase = 1; @@ -3713,7 +3700,7 @@ message ResourceQuotaList { // ResourceQuotaSpec defines the desired hard limits to enforce for Quota. message ResourceQuotaSpec { - // Hard is the set of desired hard limits for each named resource. + // hard is the set of desired hard limits for each named resource. // More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/ // +optional map hard = 1; @@ -3722,6 +3709,12 @@ message ResourceQuotaSpec { // If not specified, the quota matches all objects. // +optional repeated string scopes = 2; + + // scopeSelector is also a collection of filters like scopes that must match each object tracked by a quota + // but expressed using ScopeSelectorOperator in combination with possible values. + // For a resource to match, both scopes AND scopeSelector (if specified in spec), must be matched. + // +optional + optional ScopeSelector scopeSelector = 3; } // ResourceQuotaStatus defines the enforced hard limits and observed use. @@ -3795,6 +3788,7 @@ message ScaleIOPersistentVolumeSource { optional string storagePool = 6; // Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. + // Default is ThinProvisioned. // +optional optional string storageMode = 7; @@ -3804,7 +3798,8 @@ message ScaleIOPersistentVolumeSource { // Filesystem type to mount. // Must be a filesystem type supported by the host operating system. - // Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + // Ex. "ext4", "xfs", "ntfs". + // Default is "xfs" // +optional optional string fsType = 9; @@ -3839,6 +3834,7 @@ message ScaleIOVolumeSource { optional string storagePool = 6; // Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. + // Default is ThinProvisioned. // +optional optional string storageMode = 7; @@ -3848,7 +3844,8 @@ message ScaleIOVolumeSource { // Filesystem type to mount. // Must be a filesystem type supported by the host operating system. - // Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + // Ex. "ext4", "xfs", "ntfs". + // Default is "xfs". // +optional optional string fsType = 9; @@ -3858,6 +3855,32 @@ message ScaleIOVolumeSource { optional bool readOnly = 10; } +// A scope selector represents the AND of the selectors represented +// by the scoped-resource selector requirements. +message ScopeSelector { + // A list of scope selector requirements by scope of the resources. + // +optional + repeated ScopedResourceSelectorRequirement matchExpressions = 1; +} + +// A scoped-resource selector requirement is a selector that contains values, a scope name, and an operator +// that relates the scope name and values. +message ScopedResourceSelectorRequirement { + // The name of the scope that the selector applies to. + optional string scopeName = 1; + + // Represents a scope's relationship to a set of values. + // Valid operators are In, NotIn, Exists, DoesNotExist. + optional string operator = 2; + + // An array of string values. If the operator is In or NotIn, + // the values array must be non-empty. If the operator is Exists or DoesNotExist, + // the values array must be empty. + // This array is replaced during a strategic merge patch. + // +optional + repeated string values = 3; +} + // Secret holds secret data of a certain type. The total bytes of the values in // the Data field must be less than MaxSecretSize bytes. message Secret { @@ -3888,7 +3911,7 @@ message Secret { // SecretEnvSource selects a Secret to populate the environment // variables with. -// +// // The contents of the target Secret's Data field will represent the // key-value pairs as environment variables. message SecretEnvSource { @@ -3926,7 +3949,7 @@ message SecretList { } // Adapts a secret into a projected volume. -// +// // The contents of the target Secret's Data field will be presented in a // projected volume as files using the keys in the Data field as the file names. // Note that this is identical to a secret volume source without the default @@ -3962,7 +3985,7 @@ message SecretReference { } // Adapts a Secret into a volume. -// +// // The contents of the target Secret's Data field will be presented in a volume // as files using the keys in the Data field as the file names. // Secret volumes support ownership management and SELinux relabeling. @@ -4024,6 +4047,13 @@ message SecurityContext { // +optional optional int64 runAsUser = 4; + // The GID to run the entrypoint of the container process. + // Uses runtime default if unset. + // May also be set in PodSecurityContext. If set in both SecurityContext and + // PodSecurityContext, the value specified in SecurityContext takes precedence. + // +optional + optional int64 runAsGroup = 8; + // Indicates that the container must run as a non-root user. // If true, the Kubelet will validate the image at runtime to ensure that it // does not run as UID 0 (root) and fail to start the container if it does. @@ -4046,6 +4076,13 @@ message SecurityContext { // 2) has CAP_SYS_ADMIN // +optional optional bool allowPrivilegeEscalation = 7; + + // procMount denotes the type of proc mount to use for the containers. + // The default is DefaultProcMount which uses the container runtime defaults for + // readonly paths and masked paths. + // This requires the ProcMountType feature flag to be enabled. + // +optional + optional string procMount = 9; } // SerializedReference is a reference to serialized object. @@ -4119,6 +4156,32 @@ message ServiceAccountList { repeated ServiceAccount items = 2; } +// ServiceAccountTokenProjection represents a projected service account token +// volume. This projection can be used to insert a service account token into +// the pods runtime filesystem for use against APIs (Kubernetes API Server or +// otherwise). +message ServiceAccountTokenProjection { + // Audience is the intended audience of the token. A recipient of a token + // must identify itself with an identifier specified in the audience of the + // token, and otherwise should reject the token. The audience defaults to the + // identifier of the apiserver. + // +optional + optional string audience = 1; + + // ExpirationSeconds is the requested duration of validity of the service + // account token. As the token approaches expiration, the kubelet volume + // plugin will proactively rotate the service account token. The kubelet will + // start trying to rotate the token if the token is older than 80 percent of + // its time to live or if the token is older than 24 hours.Defaults to 1 hour + // and must be at least 10 minutes. + // +optional + optional int64 expirationSeconds = 2; + + // Path is the path relative to the mount point of the file to project the + // token into. + optional string path = 3; +} + // ServiceList holds a list of services. message ServiceList { // Standard list metadata. @@ -4139,7 +4202,7 @@ message ServicePort { // +optional optional string name = 1; - // The IP protocol for this port. Supports "TCP" and "UDP". + // The IP protocol for this port. Supports "TCP", "UDP", and "SCTP". // Default is TCP. // +optional optional string protocol = 2; @@ -4285,9 +4348,6 @@ message ServiceSpec { // The primary use case for setting this field is to use a StatefulSet's Headless Service // to propagate SRV records for its Pods without respect to their readiness for purpose // of peer discovery. - // This field will replace the service.alpha.kubernetes.io/tolerate-unready-endpoints - // when that annotation is deprecated and all clients have been converted to use this - // field. // +optional optional bool publishNotReadyAddresses = 13; @@ -4450,6 +4510,44 @@ message Toleration { optional int64 tolerationSeconds = 5; } +// A topology selector requirement is a selector that matches given label. +// This is an alpha feature and may change in the future. +message TopologySelectorLabelRequirement { + // The label key that the selector applies to. + optional string key = 1; + + // An array of string values. One value must match the label to be selected. + // Each entry in Values is ORed. + repeated string values = 2; +} + +// A topology selector term represents the result of label queries. +// A null or empty topology selector term matches no objects. +// The requirements of them are ANDed. +// It provides a subset of functionality as NodeSelectorTerm. +// This is an alpha feature and may change in the future. +message TopologySelectorTerm { + // A list of topology selector requirements by labels. + // +optional + repeated TopologySelectorLabelRequirement matchLabelExpressions = 1; +} + +// TypedLocalObjectReference contains enough information to let you locate the +// typed referenced object inside the same namespace. +message TypedLocalObjectReference { + // APIGroup is the group for the resource being referenced. + // If APIGroup is not specified, the specified Kind must be in the core API group. + // For any other third-party types, APIGroup is required. + // +optional + optional string apiGroup = 1; + + // Kind is the type of resource being referenced + optional string kind = 2; + + // Name is the name of resource being referenced + optional string name = 3; +} + // Volume represents a named volume in a pod that may be accessed by any container in the pod. message Volume { // Volume's name. @@ -4493,9 +4591,8 @@ message VolumeMount { // mountPropagation determines how mounts are propagated from the host // to container and the other way around. - // When not set, MountPropagationHostToContainer is used. - // This field is alpha in 1.8 and can be reworked or removed in a future - // release. + // When not set, MountPropagationNone is used. + // This field is beta in 1.10. // +optional optional string mountPropagation = 5; } @@ -4509,13 +4606,20 @@ message VolumeNodeAffinity { // Projection that may be projected along with other supported volume types message VolumeProjection { // information about the secret data to project + // +optional optional SecretProjection secret = 1; // information about the downwardAPI data to project + // +optional optional DownwardAPIProjection downwardAPI = 2; // information about the configMap data to project + // +optional optional ConfigMapProjection configMap = 3; + + // information about the serviceAccountToken data to project + // +optional + optional ServiceAccountTokenProjection serviceAccountToken = 4; } // Represents the source of a volume to mount. @@ -4550,6 +4654,9 @@ message VolumeSource { optional AWSElasticBlockStoreVolumeSource awsElasticBlockStore = 4; // GitRepo represents a git repository at a particular revision. + // DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an + // EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir + // into the Pod's container. // +optional optional GitRepoVolumeSource gitRepo = 5; diff --git a/vendor/k8s.io/api/core/v1/meta.go b/vendor/k8s.io/api/core/v1/meta.go deleted file mode 100644 index 0e3f5d920..000000000 --- a/vendor/k8s.io/api/core/v1/meta.go +++ /dev/null @@ -1,108 +0,0 @@ -/* -Copyright 2014 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/types" -) - -func (obj *ObjectMeta) GetObjectMeta() metav1.Object { return obj } - -// Namespace implements metav1.Object for any object with an ObjectMeta typed field. Allows -// fast, direct access to metadata fields for API objects. -func (meta *ObjectMeta) GetNamespace() string { return meta.Namespace } -func (meta *ObjectMeta) SetNamespace(namespace string) { meta.Namespace = namespace } -func (meta *ObjectMeta) GetName() string { return meta.Name } -func (meta *ObjectMeta) SetName(name string) { meta.Name = name } -func (meta *ObjectMeta) GetGenerateName() string { return meta.GenerateName } -func (meta *ObjectMeta) SetGenerateName(generateName string) { meta.GenerateName = generateName } -func (meta *ObjectMeta) GetUID() types.UID { return meta.UID } -func (meta *ObjectMeta) SetUID(uid types.UID) { meta.UID = uid } -func (meta *ObjectMeta) GetResourceVersion() string { return meta.ResourceVersion } -func (meta *ObjectMeta) SetResourceVersion(version string) { meta.ResourceVersion = version } -func (meta *ObjectMeta) GetGeneration() int64 { return meta.Generation } -func (meta *ObjectMeta) SetGeneration(generation int64) { meta.Generation = generation } -func (meta *ObjectMeta) GetSelfLink() string { return meta.SelfLink } -func (meta *ObjectMeta) SetSelfLink(selfLink string) { meta.SelfLink = selfLink } -func (meta *ObjectMeta) GetCreationTimestamp() metav1.Time { return meta.CreationTimestamp } -func (meta *ObjectMeta) SetCreationTimestamp(creationTimestamp metav1.Time) { - meta.CreationTimestamp = creationTimestamp -} -func (meta *ObjectMeta) GetDeletionTimestamp() *metav1.Time { return meta.DeletionTimestamp } -func (meta *ObjectMeta) SetDeletionTimestamp(deletionTimestamp *metav1.Time) { - meta.DeletionTimestamp = deletionTimestamp -} -func (meta *ObjectMeta) GetDeletionGracePeriodSeconds() *int64 { return meta.DeletionGracePeriodSeconds } -func (meta *ObjectMeta) SetDeletionGracePeriodSeconds(deletionGracePeriodSeconds *int64) { - meta.DeletionGracePeriodSeconds = deletionGracePeriodSeconds -} -func (meta *ObjectMeta) GetLabels() map[string]string { return meta.Labels } -func (meta *ObjectMeta) SetLabels(labels map[string]string) { meta.Labels = labels } -func (meta *ObjectMeta) GetAnnotations() map[string]string { return meta.Annotations } -func (meta *ObjectMeta) SetAnnotations(annotations map[string]string) { meta.Annotations = annotations } -func (meta *ObjectMeta) GetInitializers() *metav1.Initializers { return meta.Initializers } -func (meta *ObjectMeta) SetInitializers(initializers *metav1.Initializers) { - meta.Initializers = initializers -} -func (meta *ObjectMeta) GetFinalizers() []string { return meta.Finalizers } -func (meta *ObjectMeta) SetFinalizers(finalizers []string) { meta.Finalizers = finalizers } - -func (meta *ObjectMeta) GetOwnerReferences() []metav1.OwnerReference { - ret := make([]metav1.OwnerReference, len(meta.OwnerReferences)) - for i := 0; i < len(meta.OwnerReferences); i++ { - ret[i].Kind = meta.OwnerReferences[i].Kind - ret[i].Name = meta.OwnerReferences[i].Name - ret[i].UID = meta.OwnerReferences[i].UID - ret[i].APIVersion = meta.OwnerReferences[i].APIVersion - if meta.OwnerReferences[i].Controller != nil { - value := *meta.OwnerReferences[i].Controller - ret[i].Controller = &value - } - if meta.OwnerReferences[i].BlockOwnerDeletion != nil { - value := *meta.OwnerReferences[i].BlockOwnerDeletion - ret[i].BlockOwnerDeletion = &value - } - } - return ret -} - -func (meta *ObjectMeta) SetOwnerReferences(references []metav1.OwnerReference) { - newReferences := make([]metav1.OwnerReference, len(references)) - for i := 0; i < len(references); i++ { - newReferences[i].Kind = references[i].Kind - newReferences[i].Name = references[i].Name - newReferences[i].UID = references[i].UID - newReferences[i].APIVersion = references[i].APIVersion - if references[i].Controller != nil { - value := *references[i].Controller - newReferences[i].Controller = &value - } - if references[i].BlockOwnerDeletion != nil { - value := *references[i].BlockOwnerDeletion - newReferences[i].BlockOwnerDeletion = &value - } - } - meta.OwnerReferences = newReferences -} - -func (meta *ObjectMeta) GetClusterName() string { - return meta.ClusterName -} -func (meta *ObjectMeta) SetClusterName(clusterName string) { - meta.ClusterName = clusterName -} diff --git a/vendor/k8s.io/api/core/v1/register.go b/vendor/k8s.io/api/core/v1/register.go index 526e1320a..1aac0cb41 100644 --- a/vendor/k8s.io/api/core/v1/register.go +++ b/vendor/k8s.io/api/core/v1/register.go @@ -57,7 +57,6 @@ func addKnownTypes(scheme *runtime.Scheme) error { &Endpoints{}, &EndpointsList{}, &Node{}, - &NodeConfigSource{}, &NodeList{}, &NodeProxyOptions{}, &Binding{}, diff --git a/vendor/k8s.io/api/core/v1/resource.go b/vendor/k8s.io/api/core/v1/resource.go index 3bd6fec62..bb8041254 100644 --- a/vendor/k8s.io/api/core/v1/resource.go +++ b/vendor/k8s.io/api/core/v1/resource.go @@ -48,13 +48,6 @@ func (self *ResourceList) Pods() *resource.Quantity { return &resource.Quantity{} } -func (self *ResourceList) NvidiaGPU() *resource.Quantity { - if val, ok := (*self)[ResourceNvidiaGPU]; ok { - return &val - } - return &resource.Quantity{} -} - func (self *ResourceList) StorageEphemeral() *resource.Quantity { if val, ok := (*self)[ResourceEphemeralStorage]; ok { return &val diff --git a/vendor/k8s.io/api/core/v1/types.go b/vendor/k8s.io/api/core/v1/types.go index 5704983e9..43e70b9ba 100644 --- a/vendor/k8s.io/api/core/v1/types.go +++ b/vendor/k8s.io/api/core/v1/types.go @@ -23,214 +23,13 @@ import ( "k8s.io/apimachinery/pkg/util/intstr" ) -// The comments for the structs and fields can be used from go-restful to -// generate Swagger API documentation for its models. Please read this PR for more -// information on the implementation: https://github.com/emicklei/go-restful/pull/215 -// -// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if -// they are on one line! For multiple line or blocks that you want to ignore use ---. -// Any context after a --- is ignored and not exported to the SwaggerAPI. -// -// The aforementioned methods can be generated by hack/update-generated-swagger-docs.sh - -// Common string formats -// --------------------- -// Many fields in this API have formatting requirements. The commonly used -// formats are defined here. -// -// C_IDENTIFIER: This is a string that conforms to the definition of an "identifier" -// in the C language. This is captured by the following regex: -// [A-Za-z_][A-Za-z0-9_]* -// This defines the format, but not the length restriction, which should be -// specified at the definition of any field of this type. -// -// DNS_LABEL: This is a string, no more than 63 characters long, that conforms -// to the definition of a "label" in RFCs 1035 and 1123. This is captured -// by the following regex: -// [a-z0-9]([-a-z0-9]*[a-z0-9])? -// -// DNS_SUBDOMAIN: This is a string, no more than 253 characters long, that conforms -// to the definition of a "subdomain" in RFCs 1035 and 1123. This is captured -// by the following regex: -// [a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)* -// or more simply: -// DNS_LABEL(\.DNS_LABEL)* -// -// IANA_SVC_NAME: This is a string, no more than 15 characters long, that -// conforms to the definition of IANA service name in RFC 6335. -// It must contains at least one letter [a-z] and it must contains only [a-z0-9-]. -// Hypens ('-') cannot be leading or trailing character of the string -// and cannot be adjacent to other hyphens. - -// ObjectMeta is metadata that all persisted resources must have, which includes all objects -// users must create. -// DEPRECATED: Use k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta instead - this type will be removed soon. -// +k8s:openapi-gen=false -type ObjectMeta struct { - // Name must be unique within a namespace. Is required when creating resources, although - // some resources may allow a client to request the generation of an appropriate name - // automatically. Name is primarily intended for creation idempotence and configuration - // definition. - // Cannot be updated. - // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - // +optional - Name string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"` - - // GenerateName is an optional prefix, used by the server, to generate a unique - // name ONLY IF the Name field has not been provided. - // If this field is used, the name returned to the client will be different - // than the name passed. This value will also be combined with a unique suffix. - // The provided value has the same validation rules as the Name field, - // and may be truncated by the length of the suffix required to make the value - // unique on the server. - // - // If this field is specified and the generated name exists, the server will - // NOT return a 409 - instead, it will either return 201 Created or 500 with Reason - // ServerTimeout indicating a unique name could not be found in the time allotted, and the client - // should retry (optionally after the time indicated in the Retry-After header). - // - // Applied only if Name is not specified. - // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency - // +optional - GenerateName string `json:"generateName,omitempty" protobuf:"bytes,2,opt,name=generateName"` - - // Namespace defines the space within each name must be unique. An empty namespace is - // equivalent to the "default" namespace, but "default" is the canonical representation. - // Not all objects are required to be scoped to a namespace - the value of this field for - // those objects will be empty. - // - // Must be a DNS_LABEL. - // Cannot be updated. - // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ - // +optional - Namespace string `json:"namespace,omitempty" protobuf:"bytes,3,opt,name=namespace"` - - // SelfLink is a URL representing this object. - // Populated by the system. - // Read-only. - // +optional - SelfLink string `json:"selfLink,omitempty" protobuf:"bytes,4,opt,name=selfLink"` - - // UID is the unique in time and space value for this object. It is typically generated by - // the server on successful creation of a resource and is not allowed to change on PUT - // operations. - // - // Populated by the system. - // Read-only. - // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids - // +optional - UID types.UID `json:"uid,omitempty" protobuf:"bytes,5,opt,name=uid,casttype=k8s.io/apimachinery/pkg/types.UID"` - - // An opaque value that represents the internal version of this object that can - // be used by clients to determine when objects have changed. May be used for optimistic - // concurrency, change detection, and the watch operation on a resource or set of resources. - // Clients must treat these values as opaque and passed unmodified back to the server. - // They may only be valid for a particular resource or set of resources. - // - // Populated by the system. - // Read-only. - // Value must be treated as opaque by clients and . - // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency - // +optional - ResourceVersion string `json:"resourceVersion,omitempty" protobuf:"bytes,6,opt,name=resourceVersion"` - - // A sequence number representing a specific generation of the desired state. - // Populated by the system. Read-only. - // +optional - Generation int64 `json:"generation,omitempty" protobuf:"varint,7,opt,name=generation"` - - // CreationTimestamp is a timestamp representing the server time when this object was - // created. It is not guaranteed to be set in happens-before order across separate operations. - // Clients may not set this value. It is represented in RFC3339 form and is in UTC. - // - // Populated by the system. - // Read-only. - // Null for lists. - // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata - // +optional - CreationTimestamp metav1.Time `json:"creationTimestamp,omitempty" protobuf:"bytes,8,opt,name=creationTimestamp"` - - // DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This - // field is set by the server when a graceful deletion is requested by the user, and is not - // directly settable by a client. The resource is expected to be deleted (no longer visible - // from resource lists, and not reachable by name) after the time in this field. Once set, - // this value may not be unset or be set further into the future, although it may be shortened - // or the resource may be deleted prior to this time. For example, a user may request that - // a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination - // signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard - // termination signal (SIGKILL) to the container and after cleanup, remove the pod from the - // API. In the presence of network partitions, this object may still exist after this - // timestamp, until an administrator or automated process can determine the resource is - // fully terminated. - // If not set, graceful deletion of the object has not been requested. - // - // Populated by the system when a graceful deletion is requested. - // Read-only. - // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata - // +optional - DeletionTimestamp *metav1.Time `json:"deletionTimestamp,omitempty" protobuf:"bytes,9,opt,name=deletionTimestamp"` - - // Number of seconds allowed for this object to gracefully terminate before - // it will be removed from the system. Only set when deletionTimestamp is also set. - // May only be shortened. - // Read-only. - // +optional - DeletionGracePeriodSeconds *int64 `json:"deletionGracePeriodSeconds,omitempty" protobuf:"varint,10,opt,name=deletionGracePeriodSeconds"` - - // Map of string keys and values that can be used to organize and categorize - // (scope and select) objects. May match selectors of replication controllers - // and services. - // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ - // +optional - Labels map[string]string `json:"labels,omitempty" protobuf:"bytes,11,rep,name=labels"` - - // Annotations is an unstructured key value map stored with a resource that may be - // set by external tools to store and retrieve arbitrary metadata. They are not - // queryable and should be preserved when modifying objects. - // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ - // +optional - Annotations map[string]string `json:"annotations,omitempty" protobuf:"bytes,12,rep,name=annotations"` - - // List of objects depended by this object. If ALL objects in the list have - // been deleted, this object will be garbage collected. If this object is managed by a controller, - // then an entry in this list will point to this controller, with the controller field set to true. - // There cannot be more than one managing controller. - // +optional - // +patchMergeKey=uid - // +patchStrategy=merge - OwnerReferences []metav1.OwnerReference `json:"ownerReferences,omitempty" patchStrategy:"merge" patchMergeKey:"uid" protobuf:"bytes,13,rep,name=ownerReferences"` - - // An initializer is a controller which enforces some system invariant at object creation time. - // This field is a list of initializers that have not yet acted on this object. If nil or empty, - // this object has been completely initialized. Otherwise, the object is considered uninitialized - // and is hidden (in list/watch and get calls) from clients that haven't explicitly asked to - // observe uninitialized objects. - // - // When an object is created, the system will populate this list with the current set of initializers. - // Only privileged users may set or modify this list. Once it is empty, it may not be modified further - // by any user. - Initializers *metav1.Initializers `json:"initializers,omitempty" patchStrategy:"merge" protobuf:"bytes,16,rep,name=initializers"` - - // Must be empty before the object is deleted from the registry. Each entry - // is an identifier for the responsible component that will remove the entry - // from the list. If the deletionTimestamp of the object is non-nil, entries - // in this list can only be removed. - // +optional - // +patchStrategy=merge - Finalizers []string `json:"finalizers,omitempty" patchStrategy:"merge" protobuf:"bytes,14,rep,name=finalizers"` - - // The name of the cluster which the object belongs to. - // This is used to distinguish resources with same name and namespace in different clusters. - // This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request. - // +optional - ClusterName string `json:"clusterName,omitempty" protobuf:"bytes,15,opt,name=clusterName"` -} - const ( // NamespaceDefault means the object is in the default namespace which is applied when not specified by clients NamespaceDefault string = "default" // NamespaceAll is the default argument to specify on a context when you want to list or filter resources across all namespaces NamespaceAll string = "" + // NamespaceNodeLease is the namespace where we place node lease objects (used for node heartbeats) + NamespaceNodeLease string = "kube-node-lease" ) // Volume represents a named volume in a pod that may be accessed by any container in the pod. @@ -273,6 +72,9 @@ type VolumeSource struct { // +optional AWSElasticBlockStore *AWSElasticBlockStoreVolumeSource `json:"awsElasticBlockStore,omitempty" protobuf:"bytes,4,opt,name=awsElasticBlockStore"` // GitRepo represents a git repository at a particular revision. + // DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an + // EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir + // into the Pod's container. // +optional GitRepo *GitRepoVolumeSource `json:"gitRepo,omitempty" protobuf:"bytes,5,opt,name=gitRepo"` // Secret represents a secret that should populate this volume. @@ -389,7 +191,7 @@ type PersistentVolumeSource struct { // exposed to the pod. Provisioned by an admin. // More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md // +optional - Glusterfs *GlusterfsVolumeSource `json:"glusterfs,omitempty" protobuf:"bytes,4,opt,name=glusterfs"` + Glusterfs *GlusterfsPersistentVolumeSource `json:"glusterfs,omitempty" protobuf:"bytes,4,opt,name=glusterfs"` // NFS represents an NFS mount on the host. Provisioned by an admin. // More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs // +optional @@ -405,7 +207,7 @@ type PersistentVolumeSource struct { // Cinder represents a cinder volume attached and mounted on kubelets host machine // More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md // +optional - Cinder *CinderVolumeSource `json:"cinder,omitempty" protobuf:"bytes,8,opt,name=cinder"` + Cinder *CinderPersistentVolumeSource `json:"cinder,omitempty" protobuf:"bytes,8,opt,name=cinder"` // CephFS represents a Ceph FS mount on the host that shares a pod's lifetime // +optional CephFS *CephFSPersistentVolumeSource `json:"cephfs,omitempty" protobuf:"bytes,9,opt,name=cephfs"` @@ -458,10 +260,6 @@ const ( // MountOptionAnnotation defines mount option annotation used in PVs MountOptionAnnotation = "volume.beta.kubernetes.io/mount-options" - - // AlphaStorageNodeAffinityAnnotation defines node affinity policies for a PersistentVolume. - // Value is a string of the json representation of type NodeAffinity - AlphaStorageNodeAffinityAnnotation = "volume.alpha.kubernetes.io/node-affinity" ) // +genclient @@ -528,7 +326,7 @@ type PersistentVolumeSpec struct { MountOptions []string `json:"mountOptions,omitempty" protobuf:"bytes,7,opt,name=mountOptions"` // volumeMode defines if a volume is intended to be used with a formatted filesystem // or to remain in raw block state. Value of Filesystem is implied when not included in spec. - // This is an alpha feature and may change in the future. + // This is a beta feature. // +optional VolumeMode *PersistentVolumeMode `json:"volumeMode,omitempty" protobuf:"bytes,8,opt,name=volumeMode,casttype=PersistentVolumeMode"` // NodeAffinity defines constraints that limit what nodes this volume can be accessed from. @@ -657,9 +455,19 @@ type PersistentVolumeClaimSpec struct { StorageClassName *string `json:"storageClassName,omitempty" protobuf:"bytes,5,opt,name=storageClassName"` // volumeMode defines what type of volume is required by the claim. // Value of Filesystem is implied when not included in claim spec. - // This is an alpha feature and may change in the future. + // This is a beta feature. // +optional VolumeMode *PersistentVolumeMode `json:"volumeMode,omitempty" protobuf:"bytes,6,opt,name=volumeMode,casttype=PersistentVolumeMode"` + // This field requires the VolumeSnapshotDataSource alpha feature gate to be + // enabled and currently VolumeSnapshot is the only supported data source. + // If the provisioner can support VolumeSnapshot data source, it will create + // a new volume and data will be restored to the volume at the same time. + // If the provisioner does not support VolumeSnapshot data source, volume will + // not be created and the failure will be reported as an event. + // In the future, we plan to support more data source types and the behavior + // of the provisioner may change. + // +optional + DataSource *TypedLocalObjectReference `json:"dataSource" protobuf:"bytes,7,opt,name=dataSource"` } // PersistentVolumeClaimConditionType is a valid value of PersistentVolumeClaimCondition.Type @@ -828,6 +636,30 @@ type GlusterfsVolumeSource struct { ReadOnly bool `json:"readOnly,omitempty" protobuf:"varint,3,opt,name=readOnly"` } +// Represents a Glusterfs mount that lasts the lifetime of a pod. +// Glusterfs volumes do not support ownership management or SELinux relabeling. +type GlusterfsPersistentVolumeSource struct { + // EndpointsName is the endpoint name that details Glusterfs topology. + // More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod + EndpointsName string `json:"endpoints" protobuf:"bytes,1,opt,name=endpoints"` + + // Path is the Glusterfs volume path. + // More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod + Path string `json:"path" protobuf:"bytes,2,opt,name=path"` + + // ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. + // Defaults to false. + // More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod + // +optional + ReadOnly bool `json:"readOnly,omitempty" protobuf:"varint,3,opt,name=readOnly"` + + // EndpointsNamespace is the namespace that contains Glusterfs endpoint. + // If this field is empty, the EndpointNamespace defaults to the same namespace as the bound PVC. + // More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod + // +optional + EndpointsNamespace *string `json:"endpointsNamespace,omitempty" protobuf:"bytes,4,opt,name=endpointsNamespace"` +} + // Represents a Rados Block Device mount that lasts the lifetime of a pod. // RBD volumes support ownership management and SELinux relabeling. type RBDVolumeSource struct { @@ -935,6 +767,35 @@ type CinderVolumeSource struct { // More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md // +optional ReadOnly bool `json:"readOnly,omitempty" protobuf:"varint,3,opt,name=readOnly"` + // Optional: points to a secret object containing parameters used to connect + // to OpenStack. + // +optional + SecretRef *LocalObjectReference `json:"secretRef,omitempty" protobuf:"bytes,4,opt,name=secretRef"` +} + +// Represents a cinder volume resource in Openstack. +// A Cinder volume must exist before mounting to a container. +// The volume must also be in the same region as the kubelet. +// Cinder volumes support ownership management and SELinux relabeling. +type CinderPersistentVolumeSource struct { + // volume id used to identify the volume in cinder + // More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md + VolumeID string `json:"volumeID" protobuf:"bytes,1,opt,name=volumeID"` + // Filesystem type to mount. + // Must be a filesystem type supported by the host operating system. + // Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + // More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md + // +optional + FSType string `json:"fsType,omitempty" protobuf:"bytes,2,opt,name=fsType"` + // Optional: Defaults to false (read/write). ReadOnly here will force + // the ReadOnly setting in VolumeMounts. + // More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md + // +optional + ReadOnly bool `json:"readOnly,omitempty" protobuf:"varint,3,opt,name=readOnly"` + // Optional: points to a secret object containing parameters used to connect + // to OpenStack. + // +optional + SecretRef *SecretReference `json:"secretRef,omitempty" protobuf:"bytes,4,opt,name=secretRef"` } // Represents a Ceph Filesystem mount that lasts the lifetime of a pod @@ -1034,6 +895,8 @@ const ( ProtocolTCP Protocol = "TCP" // ProtocolUDP is the UDP protocol. ProtocolUDP Protocol = "UDP" + // ProtocolSCTP is the SCTP protocol. + ProtocolSCTP Protocol = "SCTP" ) // Represents a Persistent Disk resource in Google Compute Engine. @@ -1179,6 +1042,10 @@ type AWSElasticBlockStoreVolumeSource struct { // Represents a volume that is populated with the contents of a git repository. // Git repo volumes do not support ownership management. // Git repo volumes support SELinux relabeling. +// +// DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an +// EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir +// into the Pod's container. type GitRepoVolumeSource struct { // Repository URL Repository string `json:"repository" protobuf:"bytes,1,opt,name=repository"` @@ -1510,6 +1377,7 @@ type ScaleIOVolumeSource struct { // +optional StoragePool string `json:"storagePool,omitempty" protobuf:"bytes,6,opt,name=storagePool"` // Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. + // Default is ThinProvisioned. // +optional StorageMode string `json:"storageMode,omitempty" protobuf:"bytes,7,opt,name=storageMode"` // The name of a volume already created in the ScaleIO system @@ -1517,7 +1385,8 @@ type ScaleIOVolumeSource struct { VolumeName string `json:"volumeName,omitempty" protobuf:"bytes,8,opt,name=volumeName"` // Filesystem type to mount. // Must be a filesystem type supported by the host operating system. - // Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + // Ex. "ext4", "xfs", "ntfs". + // Default is "xfs". // +optional FSType string `json:"fsType,omitempty" protobuf:"bytes,9,opt,name=fsType"` // Defaults to false (read/write). ReadOnly here will force @@ -1545,6 +1414,7 @@ type ScaleIOPersistentVolumeSource struct { // +optional StoragePool string `json:"storagePool,omitempty" protobuf:"bytes,6,opt,name=storagePool"` // Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. + // Default is ThinProvisioned. // +optional StorageMode string `json:"storageMode,omitempty" protobuf:"bytes,7,opt,name=storageMode"` // The name of a volume already created in the ScaleIO system @@ -1552,7 +1422,8 @@ type ScaleIOPersistentVolumeSource struct { VolumeName string `json:"volumeName,omitempty" protobuf:"bytes,8,opt,name=volumeName"` // Filesystem type to mount. // Must be a filesystem type supported by the host operating system. - // Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + // Ex. "ext4", "xfs", "ntfs". + // Default is "xfs" // +optional FSType string `json:"fsType,omitempty" protobuf:"bytes,9,opt,name=fsType"` // Defaults to false (read/write). ReadOnly here will force @@ -1673,6 +1544,30 @@ type ConfigMapProjection struct { Optional *bool `json:"optional,omitempty" protobuf:"varint,4,opt,name=optional"` } +// ServiceAccountTokenProjection represents a projected service account token +// volume. This projection can be used to insert a service account token into +// the pods runtime filesystem for use against APIs (Kubernetes API Server or +// otherwise). +type ServiceAccountTokenProjection struct { + // Audience is the intended audience of the token. A recipient of a token + // must identify itself with an identifier specified in the audience of the + // token, and otherwise should reject the token. The audience defaults to the + // identifier of the apiserver. + //+optional + Audience string `json:"audience,omitempty" protobuf:"bytes,1,rep,name=audience"` + // ExpirationSeconds is the requested duration of validity of the service + // account token. As the token approaches expiration, the kubelet volume + // plugin will proactively rotate the service account token. The kubelet will + // start trying to rotate the token if the token is older than 80 percent of + // its time to live or if the token is older than 24 hours.Defaults to 1 hour + // and must be at least 10 minutes. + //+optional + ExpirationSeconds *int64 `json:"expirationSeconds,omitempty" protobuf:"varint,2,opt,name=expirationSeconds"` + // Path is the path relative to the mount point of the file to project the + // token into. + Path string `json:"path" protobuf:"bytes,3,opt,name=path"` +} + // Represents a projected volume source type ProjectedVolumeSource struct { // list of volume projections @@ -1691,11 +1586,17 @@ type VolumeProjection struct { // all types below are the supported types for projection into the same volume // information about the secret data to project + // +optional Secret *SecretProjection `json:"secret,omitempty" protobuf:"bytes,1,opt,name=secret"` // information about the downwardAPI data to project + // +optional DownwardAPI *DownwardAPIProjection `json:"downwardAPI,omitempty" protobuf:"bytes,2,opt,name=downwardAPI"` // information about the configMap data to project + // +optional ConfigMap *ConfigMapProjection `json:"configMap,omitempty" protobuf:"bytes,3,opt,name=configMap"` + // information about the serviceAccountToken data to project + // +optional + ServiceAccountToken *ServiceAccountTokenProjection `json:"serviceAccountToken,omitempty" protobuf:"bytes,4,opt,name=serviceAccountToken"` } const ( @@ -1720,12 +1621,18 @@ type KeyToPath struct { Mode *int32 `json:"mode,omitempty" protobuf:"varint,3,opt,name=mode"` } -// Local represents directly-attached storage with node affinity +// Local represents directly-attached storage with node affinity (Beta feature) type LocalVolumeSource struct { - // The full path to the volume on the node - // For alpha, this path must be a directory - // Once block as a source is supported, then this path can point to a block device + // The full path to the volume on the node. + // It can be either a directory or block device (disk, partition, ...). Path string `json:"path" protobuf:"bytes,1,opt,name=path"` + + // Filesystem type to mount. + // It applies only when the Path is a block device. + // Must be a filesystem type supported by the host operating system. + // Ex. "ext4", "xfs", "ntfs". The default value is to auto-select a fileystem if unspecified. + // +optional + FSType *string `json:"fsType,omitempty" protobuf:"bytes,2,opt,name=fsType"` } // Represents storage that is managed by an external CSI volume driver (Beta feature) @@ -1746,7 +1653,7 @@ type CSIPersistentVolumeSource struct { // Filesystem type to mount. // Must be a filesystem type supported by the host operating system. - // Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. + // Ex. "ext4", "xfs", "ntfs". // +optional FSType string `json:"fsType,omitempty" protobuf:"bytes,4,opt,name=fsType"` @@ -1757,7 +1664,7 @@ type CSIPersistentVolumeSource struct { // ControllerPublishSecretRef is a reference to the secret object containing // sensitive information to pass to the CSI driver to complete the CSI // ControllerPublishVolume and ControllerUnpublishVolume calls. - // This field is optional, and may be empty if no secret is required. If the + // This field is optional, and may be empty if no secret is required. If the // secret object contains more than one secret, all secrets are passed. // +optional ControllerPublishSecretRef *SecretReference `json:"controllerPublishSecretRef,omitempty" protobuf:"bytes,6,opt,name=controllerPublishSecretRef"` @@ -1765,7 +1672,7 @@ type CSIPersistentVolumeSource struct { // NodeStageSecretRef is a reference to the secret object containing sensitive // information to pass to the CSI driver to complete the CSI NodeStageVolume // and NodeStageVolume and NodeUnstageVolume calls. - // This field is optional, and may be empty if no secret is required. If the + // This field is optional, and may be empty if no secret is required. If the // secret object contains more than one secret, all secrets are passed. // +optional NodeStageSecretRef *SecretReference `json:"nodeStageSecretRef,omitempty" protobuf:"bytes,7,opt,name=nodeStageSecretRef"` @@ -1773,7 +1680,7 @@ type CSIPersistentVolumeSource struct { // NodePublishSecretRef is a reference to the secret object containing // sensitive information to pass to the CSI driver to complete the CSI // NodePublishVolume and NodeUnpublishVolume calls. - // This field is optional, and may be empty if no secret is required. If the + // This field is optional, and may be empty if no secret is required. If the // secret object contains more than one secret, all secrets are passed. // +optional NodePublishSecretRef *SecretReference `json:"nodePublishSecretRef,omitempty" protobuf:"bytes,8,opt,name=nodePublishSecretRef"` @@ -1795,7 +1702,7 @@ type ContainerPort struct { // Number of port to expose on the pod's IP address. // This must be a valid port number, 0 < x < 65536. ContainerPort int32 `json:"containerPort" protobuf:"varint,3,opt,name=containerPort"` - // Protocol for port. Must be UDP or TCP. + // Protocol for port. Must be UDP, TCP, or SCTP. // Defaults to "TCP". // +optional Protocol Protocol `json:"protocol,omitempty" protobuf:"bytes,4,opt,name=protocol,casttype=Protocol"` @@ -1821,9 +1728,8 @@ type VolumeMount struct { SubPath string `json:"subPath,omitempty" protobuf:"bytes,4,opt,name=subPath"` // mountPropagation determines how mounts are propagated from the host // to container and the other way around. - // When not set, MountPropagationHostToContainer is used. - // This field is alpha in 1.8 and can be reworked or removed in a future - // release. + // When not set, MountPropagationNone is used. + // This field is beta in 1.10. // +optional MountPropagation *MountPropagationMode `json:"mountPropagation,omitempty" protobuf:"bytes,5,opt,name=mountPropagation,casttype=MountPropagationMode"` } @@ -1832,6 +1738,12 @@ type VolumeMount struct { type MountPropagationMode string const ( + // MountPropagationNone means that the volume in a container will + // not receive new mounts from the host or other containers, and filesystems + // mounted inside the container won't be propagated to the host or other + // containers. + // Note that this mode corresponds to "private" in Linux terminology. + MountPropagationNone MountPropagationMode = "None" // MountPropagationHostToContainer means that the volume in a container will // receive new mounts from the host or other containers, but filesystems // mounted inside the container won't be propagated to the host or other @@ -2172,6 +2084,9 @@ type Container struct { // +optional // +patchMergeKey=containerPort // +patchStrategy=merge + // +listType=map + // +listMapKey=containerPort + // +listMapKey=protocol Ports []ContainerPort `json:"ports,omitempty" patchStrategy:"merge" patchMergeKey:"containerPort" protobuf:"bytes,6,rep,name=ports"` // List of sources to populate environment variables in the container. // The keys defined within a source must be a C_IDENTIFIER. All invalid keys @@ -2189,7 +2104,7 @@ type Container struct { Env []EnvVar `json:"env,omitempty" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,7,rep,name=env"` // Compute Resources required by this container. // Cannot be updated. - // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources + // More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/ // +optional Resources ResourceRequirements `json:"resources,omitempty" protobuf:"bytes,8,opt,name=resources"` // Pod volumes to mount into the container's filesystem. @@ -2199,7 +2114,7 @@ type Container struct { // +patchStrategy=merge VolumeMounts []VolumeMount `json:"volumeMounts,omitempty" patchStrategy:"merge" patchMergeKey:"mountPath" protobuf:"bytes,9,rep,name=volumeMounts"` // volumeDevices is the list of block devices to be used by the container. - // This is an alpha feature and may change in the future. + // This is a beta feature. // +patchMergeKey=devicePath // +patchStrategy=merge // +optional @@ -2446,12 +2361,13 @@ const ( // PodReasonUnschedulable reason in PodScheduled PodCondition means that the scheduler // can't schedule the pod right now, for example due to insufficient resources in the cluster. PodReasonUnschedulable = "Unschedulable" + // ContainersReady indicates whether all containers in the pod are ready. + ContainersReady PodConditionType = "ContainersReady" ) // PodCondition contains details for the current condition of this pod. type PodCondition struct { // Type is the type of the condition. - // Currently only Ready. // More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions Type PodConditionType `json:"type" protobuf:"bytes,1,opt,name=type,casttype=PodConditionType"` // Status is the status of the condition. @@ -2522,10 +2438,16 @@ type NodeSelector struct { NodeSelectorTerms []NodeSelectorTerm `json:"nodeSelectorTerms" protobuf:"bytes,1,rep,name=nodeSelectorTerms"` } -// A null or empty node selector term matches no objects. +// A null or empty node selector term matches no objects. The requirements of +// them are ANDed. +// The TopologySelectorTerm type implements a subset of the NodeSelectorTerm. type NodeSelectorTerm struct { - //Required. A list of node selector requirements. The requirements are ANDed. - MatchExpressions []NodeSelectorRequirement `json:"matchExpressions" protobuf:"bytes,1,rep,name=matchExpressions"` + // A list of node selector requirements by node's labels. + // +optional + MatchExpressions []NodeSelectorRequirement `json:"matchExpressions,omitempty" protobuf:"bytes,1,rep,name=matchExpressions"` + // A list of node selector requirements by node's fields. + // +optional + MatchFields []NodeSelectorRequirement `json:"matchFields,omitempty" protobuf:"bytes,2,rep,name=matchFields"` } // A node selector requirement is a selector that contains values, a key, and an operator @@ -2558,6 +2480,27 @@ const ( NodeSelectorOpLt NodeSelectorOperator = "Lt" ) +// A topology selector term represents the result of label queries. +// A null or empty topology selector term matches no objects. +// The requirements of them are ANDed. +// It provides a subset of functionality as NodeSelectorTerm. +// This is an alpha feature and may change in the future. +type TopologySelectorTerm struct { + // A list of topology selector requirements by labels. + // +optional + MatchLabelExpressions []TopologySelectorLabelRequirement `json:"matchLabelExpressions,omitempty" protobuf:"bytes,1,rep,name=matchLabelExpressions"` +} + +// A topology selector requirement is a selector that matches given label. +// This is an alpha feature and may change in the future. +type TopologySelectorLabelRequirement struct { + // The label key that the selector applies to. + Key string `json:"key" protobuf:"bytes,1,opt,name=key"` + // An array of string values. One value must match the label to be selected. + // Each entry in Values is ORed. + Values []string `json:"values" protobuf:"bytes,2,rep,name=values"` +} + // Affinity is a group of affinity scheduling rules. type Affinity struct { // Describes node affinity scheduling rules for the pod. @@ -2790,6 +2733,12 @@ const ( TolerationOpEqual TolerationOperator = "Equal" ) +// PodReadinessGate contains the reference to a pod condition +type PodReadinessGate struct { + // ConditionType refers to a condition in the pod's condition list with matching type. + ConditionType PodConditionType `json:"conditionType" protobuf:"bytes,1,opt,name=conditionType,casttype=PodConditionType"` +} + // PodSpec is a description of a pod. type PodSpec struct { // List of volumes that can be mounted by containers belonging to the pod. @@ -2894,7 +2843,7 @@ type PodSpec struct { // in the same pod, and the first process in each container will not be assigned PID 1. // HostPID and ShareProcessNamespace cannot both be set. // Optional: Default to false. - // This field is alpha-level and is honored only by servers that enable the PodShareProcessNamespace feature. + // This field is beta-level and may be disabled with the PodShareProcessNamespace feature. // +k8s:conversion-gen=false // +optional ShareProcessNamespace *bool `json:"shareProcessNamespace,omitempty" protobuf:"varint,27,opt,name=shareProcessNamespace"` @@ -2954,8 +2903,32 @@ type PodSpec struct { // configuration based on DNSPolicy. // +optional DNSConfig *PodDNSConfig `json:"dnsConfig,omitempty" protobuf:"bytes,26,opt,name=dnsConfig"` + + // If specified, all readiness gates will be evaluated for pod readiness. + // A pod is ready when all its containers are ready AND + // all conditions specified in the readiness gates have status equal to "True" + // More info: https://github.com/kubernetes/community/blob/master/keps/sig-network/0007-pod-ready%2B%2B.md + // +optional + ReadinessGates []PodReadinessGate `json:"readinessGates,omitempty" protobuf:"bytes,28,opt,name=readinessGates"` + // RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used + // to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. + // If unset or empty, the "legacy" RuntimeClass will be used, which is an implicit class with an + // empty definition that uses the default runtime handler. + // More info: https://github.com/kubernetes/community/blob/master/keps/sig-node/0014-runtime-class.md + // This is an alpha feature and may change in the future. + // +optional + RuntimeClassName *string `json:"runtimeClassName,omitempty" protobuf:"bytes,29,opt,name=runtimeClassName"` + // EnableServiceLinks indicates whether information about services should be injected into pod's + // environment variables, matching the syntax of Docker links. + // +optional + EnableServiceLinks *bool `json:"enableServiceLinks,omitempty" protobuf:"varint,30,opt,name=enableServiceLinks"` } +const ( + // The default value for enableServiceLinks attribute. + DefaultEnableServiceLinks = true +) + // HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the // pod's hosts file. type HostAlias struct { @@ -2983,6 +2956,13 @@ type PodSecurityContext struct { // for that container. // +optional RunAsUser *int64 `json:"runAsUser,omitempty" protobuf:"varint,2,opt,name=runAsUser"` + // The GID to run the entrypoint of the container process. + // Uses runtime default if unset. + // May also be set in SecurityContext. If set in both SecurityContext and + // PodSecurityContext, the value specified in SecurityContext takes precedence + // for that container. + // +optional + RunAsGroup *int64 `json:"runAsGroup,omitempty" protobuf:"varint,6,opt,name=runAsGroup"` // Indicates that the container must run as a non-root user. // If true, the Kubelet will validate the image at runtime to ensure that it // does not run as UID 0 (root) and fail to start the container if it does. @@ -3007,6 +2987,10 @@ type PodSecurityContext struct { // If unset, the Kubelet will not modify the ownership and permissions of any volume. // +optional FSGroup *int64 `json:"fsGroup,omitempty" protobuf:"varint,5,opt,name=fsGroup"` + // Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported + // sysctls (by the container runtime) might fail to launch. + // +optional + Sysctls []Sysctl `json:"sysctls,omitempty" protobuf:"bytes,7,rep,name=sysctls"` } // PodQOSClass defines the supported qos classes of Pods. @@ -3051,9 +3035,26 @@ type PodDNSConfigOption struct { } // PodStatus represents information about the status of a pod. Status may trail the actual -// state of a system. +// state of a system, especially if the node that hosts the pod cannot contact the control +// plane. type PodStatus struct { - // Current condition of the pod. + // The phase of a Pod is a simple, high-level summary of where the Pod is in its lifecycle. + // The conditions array, the reason and message fields, and the individual container status + // arrays contain more detail about the pod's status. + // There are five possible phase values: + // + // Pending: The pod has been accepted by the Kubernetes system, but one or more of the + // container images has not been created. This includes time before being scheduled as + // well as time spent downloading images over the network, which could take a while. + // Running: The pod has been bound to a node, and all of the containers have been created. + // At least one container is still running, or is in the process of starting or restarting. + // Succeeded: All containers in the pod have terminated in success, and will not be restarted. + // Failed: All containers in the pod have terminated, and at least one container has + // terminated in failure. The container either exited with non-zero status or was terminated + // by the system. + // Unknown: For some reason the state of the pod could not be obtained, typically due to an + // error in communicating with the host of the pod. + // // More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase // +optional Phase PodPhase `json:"phase,omitempty" protobuf:"bytes,1,opt,name=phase,casttype=PodPhase"` @@ -3308,8 +3309,8 @@ type ReplicationControllerCondition struct { } // +genclient -// +genclient:method=GetScale,verb=get,subresource=scale,result=k8s.io/api/extensions/v1beta1.Scale -// +genclient:method=UpdateScale,verb=update,subresource=scale,input=k8s.io/api/extensions/v1beta1.Scale,result=k8s.io/api/extensions/v1beta1.Scale +// +genclient:method=GetScale,verb=get,subresource=scale,result=k8s.io/api/autoscaling/v1.Scale +// +genclient:method=UpdateScale,verb=update,subresource=scale,input=k8s.io/api/autoscaling/v1.Scale,result=k8s.io/api/autoscaling/v1.Scale // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // ReplicationController represents the configuration of a replication controller. @@ -3550,9 +3551,6 @@ type ServiceSpec struct { // The primary use case for setting this field is to use a StatefulSet's Headless Service // to propagate SRV records for its Pods without respect to their readiness for purpose // of peer discovery. - // This field will replace the service.alpha.kubernetes.io/tolerate-unready-endpoints - // when that annotation is deprecated and all clients have been converted to use this - // field. // +optional PublishNotReadyAddresses bool `json:"publishNotReadyAddresses,omitempty" protobuf:"varint,13,opt,name=publishNotReadyAddresses"` // sessionAffinityConfig contains the configurations of session affinity. @@ -3569,7 +3567,7 @@ type ServicePort struct { // +optional Name string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"` - // The IP protocol for this port. Supports "TCP" and "UDP". + // The IP protocol for this port. Supports "TCP", "UDP", and "SCTP". // Default is TCP. // +optional Protocol Protocol `json:"protocol,omitempty" protobuf:"bytes,2,opt,name=protocol,casttype=Protocol"` @@ -3598,6 +3596,7 @@ type ServicePort struct { } // +genclient +// +genclient:skipVerbs=deleteCollection // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // Service is a named abstraction of software service (for example, mysql) consisting of local port @@ -3782,7 +3781,7 @@ type EndpointPort struct { Port int32 `json:"port" protobuf:"varint,2,opt,name=port"` // The IP protocol for this port. - // Must be UDP or TCP. + // Must be UDP, TCP, or SCTP. // Default is TCP. // +optional Protocol Protocol `json:"protocol,omitempty" protobuf:"bytes,3,opt,name=protocol,casttype=Protocol"` @@ -3807,10 +3806,6 @@ type NodeSpec struct { // PodCIDR represents the pod IP range assigned to the node. // +optional PodCIDR string `json:"podCIDR,omitempty" protobuf:"bytes,1,opt,name=podCIDR"` - // External ID of the node assigned by some machine database (e.g. a cloud provider). - // Deprecated. - // +optional - ExternalID string `json:"externalID,omitempty" protobuf:"bytes,2,opt,name=externalID"` // ID of the node assigned by the cloud provider in the format: :// // +optional ProviderID string `json:"providerID,omitempty" protobuf:"bytes,3,opt,name=providerID"` @@ -3825,14 +3820,53 @@ type NodeSpec struct { // The DynamicKubeletConfig feature gate must be enabled for the Kubelet to use this field // +optional ConfigSource *NodeConfigSource `json:"configSource,omitempty" protobuf:"bytes,6,opt,name=configSource"` -} -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + // Deprecated. Not all kubelets will set this field. Remove field after 1.13. + // see: https://issues.k8s.io/61966 + // +optional + DoNotUse_ExternalID string `json:"externalID,omitempty" protobuf:"bytes,2,opt,name=externalID"` +} // NodeConfigSource specifies a source of node configuration. Exactly one subfield (excluding metadata) must be non-nil. type NodeConfigSource struct { - metav1.TypeMeta `json:",inline"` - ConfigMapRef *ObjectReference `json:"configMapRef,omitempty" protobuf:"bytes,1,opt,name=configMapRef"` + // For historical context, regarding the below kind, apiVersion, and configMapRef deprecation tags: + // 1. kind/apiVersion were used by the kubelet to persist this struct to disk (they had no protobuf tags) + // 2. configMapRef and proto tag 1 were used by the API to refer to a configmap, + // but used a generic ObjectReference type that didn't really have the fields we needed + // All uses/persistence of the NodeConfigSource struct prior to 1.11 were gated by alpha feature flags, + // so there was no persisted data for these fields that needed to be migrated/handled. + + // +k8s:deprecated=kind + // +k8s:deprecated=apiVersion + // +k8s:deprecated=configMapRef,protobuf=1 + + // ConfigMap is a reference to a Node's ConfigMap + ConfigMap *ConfigMapNodeConfigSource `json:"configMap,omitempty" protobuf:"bytes,2,opt,name=configMap"` +} + +// ConfigMapNodeConfigSource contains the information to reference a ConfigMap as a config source for the Node. +type ConfigMapNodeConfigSource struct { + // Namespace is the metadata.namespace of the referenced ConfigMap. + // This field is required in all cases. + Namespace string `json:"namespace" protobuf:"bytes,1,opt,name=namespace"` + + // Name is the metadata.name of the referenced ConfigMap. + // This field is required in all cases. + Name string `json:"name" protobuf:"bytes,2,opt,name=name"` + + // UID is the metadata.UID of the referenced ConfigMap. + // This field is forbidden in Node.Spec, and required in Node.Status. + // +optional + UID types.UID `json:"uid,omitempty" protobuf:"bytes,3,opt,name=uid"` + + // ResourceVersion is the metadata.ResourceVersion of the referenced ConfigMap. + // This field is forbidden in Node.Spec, and required in Node.Status. + // +optional + ResourceVersion string `json:"resourceVersion,omitempty" protobuf:"bytes,4,opt,name=resourceVersion"` + + // KubeletConfigKey declares which key of the referenced ConfigMap corresponds to the KubeletConfiguration structure + // This field is required in all cases. + KubeletConfigKey string `json:"kubeletConfigKey" protobuf:"bytes,5,opt,name=kubeletConfigKey"` } // DaemonEndpoint contains information about a single Daemon endpoint. @@ -3882,6 +3916,53 @@ type NodeSystemInfo struct { Architecture string `json:"architecture" protobuf:"bytes,10,opt,name=architecture"` } +// NodeConfigStatus describes the status of the config assigned by Node.Spec.ConfigSource. +type NodeConfigStatus struct { + // Assigned reports the checkpointed config the node will try to use. + // When Node.Spec.ConfigSource is updated, the node checkpoints the associated + // config payload to local disk, along with a record indicating intended + // config. The node refers to this record to choose its config checkpoint, and + // reports this record in Assigned. Assigned only updates in the status after + // the record has been checkpointed to disk. When the Kubelet is restarted, + // it tries to make the Assigned config the Active config by loading and + // validating the checkpointed payload identified by Assigned. + // +optional + Assigned *NodeConfigSource `json:"assigned,omitempty" protobuf:"bytes,1,opt,name=assigned"` + // Active reports the checkpointed config the node is actively using. + // Active will represent either the current version of the Assigned config, + // or the current LastKnownGood config, depending on whether attempting to use the + // Assigned config results in an error. + // +optional + Active *NodeConfigSource `json:"active,omitempty" protobuf:"bytes,2,opt,name=active"` + // LastKnownGood reports the checkpointed config the node will fall back to + // when it encounters an error attempting to use the Assigned config. + // The Assigned config becomes the LastKnownGood config when the node determines + // that the Assigned config is stable and correct. + // This is currently implemented as a 10-minute soak period starting when the local + // record of Assigned config is updated. If the Assigned config is Active at the end + // of this period, it becomes the LastKnownGood. Note that if Spec.ConfigSource is + // reset to nil (use local defaults), the LastKnownGood is also immediately reset to nil, + // because the local default config is always assumed good. + // You should not make assumptions about the node's method of determining config stability + // and correctness, as this may change or become configurable in the future. + // +optional + LastKnownGood *NodeConfigSource `json:"lastKnownGood,omitempty" protobuf:"bytes,3,opt,name=lastKnownGood"` + // Error describes any problems reconciling the Spec.ConfigSource to the Active config. + // Errors may occur, for example, attempting to checkpoint Spec.ConfigSource to the local Assigned + // record, attempting to checkpoint the payload associated with Spec.ConfigSource, attempting + // to load or validate the Assigned config, etc. + // Errors may occur at different points while syncing config. Earlier errors (e.g. download or + // checkpointing errors) will not result in a rollback to LastKnownGood, and may resolve across + // Kubelet retries. Later errors (e.g. loading or validating a checkpointed config) will result in + // a rollback to LastKnownGood. In the latter case, it is usually possible to resolve the error + // by fixing the config assigned in Spec.ConfigSource. + // You can find additional information for debugging by searching the error message in the Kubelet log. + // Error is a human-readable description of the error state; machines can check whether or not Error + // is empty, but should not rely on the stability of the Error text across Kubelet versions. + // +optional + Error string `json:"error,omitempty" protobuf:"bytes,4,opt,name=error"` +} + // NodeStatus is information about the current status of a node. type NodeStatus struct { // Capacity represents the total resources of a node. @@ -3926,6 +4007,9 @@ type NodeStatus struct { // List of volumes that are attached to the node. // +optional VolumesAttached []AttachedVolume `json:"volumesAttached,omitempty" protobuf:"bytes,10,rep,name=volumesAttached"` + // Status of the config assigned to the node via the dynamic Kubelet config feature. + // +optional + Config *NodeConfigStatus `json:"config,omitempty" protobuf:"bytes,11,opt,name=config"` } type UniqueVolumeName string @@ -4013,8 +4097,6 @@ const ( NodePIDPressure NodeConditionType = "PIDPressure" // NodeNetworkUnavailable means that network for the node is not correctly configured. NodeNetworkUnavailable NodeConditionType = "NetworkUnavailable" - // NodeKubeletConfigOk indicates whether the kubelet is correctly configured - NodeKubeletConfigOk NodeConditionType = "KubeletConfigOk" ) // NodeCondition contains condition information for a node. @@ -4074,8 +4156,6 @@ const ( // Local ephemeral storage, in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024) // The resource name for ResourceEphemeralStorage is alpha and it can change across releases. ResourceEphemeralStorage ResourceName = "ephemeral-storage" - // NVIDIA GPU, in devices. Alpha, might change: although fractional and allowing values >1, only one whole device per node is assigned. - ResourceNvidiaGPU ResourceName = "alpha.kubernetes.io/nvidia-gpu" ) const ( @@ -4083,6 +4163,8 @@ const ( ResourceDefaultNamespacePrefix = "kubernetes.io/" // Name prefix for huge page resources (alpha). ResourceHugePagesPrefix = "hugepages-" + // Name prefix for storage resource limits + ResourceAttachableVolumesPrefix = "attachable-volumes-" ) // ResourceList is a set of (resource name, quantity) pairs. @@ -4165,6 +4247,7 @@ const ( // +genclient // +genclient:nonNamespaced +// +genclient:skipVerbs=deleteCollection // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // Namespace provides a scope for Names. @@ -4225,95 +4308,6 @@ type Preconditions struct { UID *types.UID `json:"uid,omitempty" protobuf:"bytes,1,opt,name=uid,casttype=k8s.io/apimachinery/pkg/types.UID"` } -// DeletionPropagation decides if a deletion will propagate to the dependents of the object, and how the garbage collector will handle the propagation. -type DeletionPropagation string - -const ( - // Orphans the dependents. - DeletePropagationOrphan DeletionPropagation = "Orphan" - // Deletes the object from the key-value store, the garbage collector will delete the dependents in the background. - DeletePropagationBackground DeletionPropagation = "Background" - // The object exists in the key-value store until the garbage collector deletes all the dependents whose ownerReference.blockOwnerDeletion=true from the key-value store. - // API sever will put the "DeletingDependents" finalizer on the object, and sets its deletionTimestamp. - // This policy is cascading, i.e., the dependents will be deleted with Foreground. - DeletePropagationForeground DeletionPropagation = "Foreground" -) - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// DeleteOptions may be provided when deleting an API object -// DEPRECATED: This type has been moved to meta/v1 and will be removed soon. -// +k8s:openapi-gen=false -type DeleteOptions struct { - metav1.TypeMeta `json:",inline"` - - // The duration in seconds before the object should be deleted. Value must be non-negative integer. - // The value zero indicates delete immediately. If this value is nil, the default grace period for the - // specified type will be used. - // Defaults to a per object value if not specified. zero means delete immediately. - // +optional - GracePeriodSeconds *int64 `json:"gracePeriodSeconds,omitempty" protobuf:"varint,1,opt,name=gracePeriodSeconds"` - - // Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be - // returned. - // +optional - Preconditions *Preconditions `json:"preconditions,omitempty" protobuf:"bytes,2,opt,name=preconditions"` - - // Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. - // Should the dependent objects be orphaned. If true/false, the "orphan" - // finalizer will be added to/removed from the object's finalizers list. - // Either this field or PropagationPolicy may be set, but not both. - // +optional - OrphanDependents *bool `json:"orphanDependents,omitempty" protobuf:"varint,3,opt,name=orphanDependents"` - - // Whether and how garbage collection will be performed. - // Either this field or OrphanDependents may be set, but not both. - // The default policy is decided by the existing finalizer set in the - // metadata.finalizers and the resource-specific default policy. - // Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - - // allow the garbage collector to delete the dependents in the background; - // 'Foreground' - a cascading policy that deletes all dependents in the - // foreground. - // +optional - PropagationPolicy *DeletionPropagation `protobuf:"bytes,4,opt,name=propagationPolicy,casttype=DeletionPropagation"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// ListOptions is the query options to a standard REST list call. -// DEPRECATED: This type has been moved to meta/v1 and will be removed soon. -// +k8s:openapi-gen=false -type ListOptions struct { - metav1.TypeMeta `json:",inline"` - - // A selector to restrict the list of returned objects by their labels. - // Defaults to everything. - // +optional - LabelSelector string `json:"labelSelector,omitempty" protobuf:"bytes,1,opt,name=labelSelector"` - // A selector to restrict the list of returned objects by their fields. - // Defaults to everything. - // +optional - FieldSelector string `json:"fieldSelector,omitempty" protobuf:"bytes,2,opt,name=fieldSelector"` - // If true, partially initialized resources are included in the response. - // +optional - IncludeUninitialized bool `json:"includeUninitialized,omitempty" protobuf:"varint,6,opt,name=includeUninitialized"` - // Watch for changes to the described resources and return them as a stream of - // add, update, and remove notifications. Specify resourceVersion. - // +optional - Watch bool `json:"watch,omitempty" protobuf:"varint,3,opt,name=watch"` - // When specified with a watch call, shows changes that occur after that particular version of a resource. - // Defaults to changes from the beginning of history. - // When specified for list: - // - if unset, then the result is returned from remote storage based on quorum-read flag; - // - if it's 0, then we simply return what we currently have in cache, no guarantee; - // - if set to non zero, then the result is at least as fresh as given rv. - // +optional - ResourceVersion string `json:"resourceVersion,omitempty" protobuf:"bytes,4,opt,name=resourceVersion"` - // Timeout for the list/watch call. - // +optional - TimeoutSeconds *int64 `json:"timeoutSeconds,omitempty" protobuf:"varint,5,opt,name=timeoutSeconds"` -} - // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // PodLogOptions is the query options for a Pod's logs REST call. @@ -4534,6 +4528,20 @@ type LocalObjectReference struct { Name string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"` } +// TypedLocalObjectReference contains enough information to let you locate the +// typed referenced object inside the same namespace. +type TypedLocalObjectReference struct { + // APIGroup is the group for the resource being referenced. + // If APIGroup is not specified, the specified Kind must be in the core API group. + // For any other third-party types, APIGroup is required. + // +optional + APIGroup *string `json:"apiGroup" protobuf:"bytes,1,opt,name=apiGroup"` + // Kind is the type of resource being referenced + Kind string `json:"kind" protobuf:"bytes,2,opt,name=kind"` + // Name is the name of resource being referenced + Name string `json:"name" protobuf:"bytes,3,opt,name=name"` +} + // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // SerializedReference is a reference to serialized object. @@ -4798,11 +4806,13 @@ const ( ResourceQuotaScopeBestEffort ResourceQuotaScope = "BestEffort" // Match all pod objects that do not have best effort quality of service ResourceQuotaScopeNotBestEffort ResourceQuotaScope = "NotBestEffort" + // Match all pod objects that have priority class mentioned + ResourceQuotaScopePriorityClass ResourceQuotaScope = "PriorityClass" ) // ResourceQuotaSpec defines the desired hard limits to enforce for Quota. type ResourceQuotaSpec struct { - // Hard is the set of desired hard limits for each named resource. + // hard is the set of desired hard limits for each named resource. // More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/ // +optional Hard ResourceList `json:"hard,omitempty" protobuf:"bytes,1,rep,name=hard,casttype=ResourceList,castkey=ResourceName"` @@ -4810,8 +4820,48 @@ type ResourceQuotaSpec struct { // If not specified, the quota matches all objects. // +optional Scopes []ResourceQuotaScope `json:"scopes,omitempty" protobuf:"bytes,2,rep,name=scopes,casttype=ResourceQuotaScope"` + // scopeSelector is also a collection of filters like scopes that must match each object tracked by a quota + // but expressed using ScopeSelectorOperator in combination with possible values. + // For a resource to match, both scopes AND scopeSelector (if specified in spec), must be matched. + // +optional + ScopeSelector *ScopeSelector `json:"scopeSelector,omitempty" protobuf:"bytes,3,opt,name=scopeSelector"` } +// A scope selector represents the AND of the selectors represented +// by the scoped-resource selector requirements. +type ScopeSelector struct { + // A list of scope selector requirements by scope of the resources. + // +optional + MatchExpressions []ScopedResourceSelectorRequirement `json:"matchExpressions,omitempty" protobuf:"bytes,1,rep,name=matchExpressions"` +} + +// A scoped-resource selector requirement is a selector that contains values, a scope name, and an operator +// that relates the scope name and values. +type ScopedResourceSelectorRequirement struct { + // The name of the scope that the selector applies to. + ScopeName ResourceQuotaScope `json:"scopeName" protobuf:"bytes,1,opt,name=scopeName"` + // Represents a scope's relationship to a set of values. + // Valid operators are In, NotIn, Exists, DoesNotExist. + Operator ScopeSelectorOperator `json:"operator" protobuf:"bytes,2,opt,name=operator,casttype=ScopedResourceSelectorOperator"` + // An array of string values. If the operator is In or NotIn, + // the values array must be non-empty. If the operator is Exists or DoesNotExist, + // the values array must be empty. + // This array is replaced during a strategic merge patch. + // +optional + Values []string `json:"values,omitempty" protobuf:"bytes,3,rep,name=values"` +} + +// A scope selector operator is the set of operators that can be used in +// a scope selector requirement. +type ScopeSelectorOperator string + +const ( + ScopeSelectorOpIn ScopeSelectorOperator = "In" + ScopeSelectorOpNotIn ScopeSelectorOperator = "NotIn" + ScopeSelectorOpExists ScopeSelectorOperator = "Exists" + ScopeSelectorOpDoesNotExist ScopeSelectorOperator = "DoesNotExist" +) + // ResourceQuotaStatus defines the enforced hard limits and observed use. type ResourceQuotaStatus struct { // Hard is the set of enforced hard limits for each named resource. @@ -4973,6 +5023,10 @@ const ( TLSCertKey = "tls.crt" // TLSPrivateKeyKey is the key for the private key field in a TLS secret. TLSPrivateKeyKey = "tls.key" + // SecretTypeBootstrapToken is used during the automated bootstrap process (first + // implemented by kubeadm). It stores tokens that are used to sign well known + // ConfigMaps. They are used for authn. + SecretTypeBootstrapToken SecretType = "bootstrap.kubernetes.io/token" ) // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object @@ -5165,6 +5219,12 @@ type SecurityContext struct { // PodSecurityContext, the value specified in SecurityContext takes precedence. // +optional RunAsUser *int64 `json:"runAsUser,omitempty" protobuf:"varint,4,opt,name=runAsUser"` + // The GID to run the entrypoint of the container process. + // Uses runtime default if unset. + // May also be set in PodSecurityContext. If set in both SecurityContext and + // PodSecurityContext, the value specified in SecurityContext takes precedence. + // +optional + RunAsGroup *int64 `json:"runAsGroup,omitempty" protobuf:"varint,8,opt,name=runAsGroup"` // Indicates that the container must run as a non-root user. // If true, the Kubelet will validate the image at runtime to ensure that it // does not run as UID 0 (root) and fail to start the container if it does. @@ -5185,8 +5245,28 @@ type SecurityContext struct { // 2) has CAP_SYS_ADMIN // +optional AllowPrivilegeEscalation *bool `json:"allowPrivilegeEscalation,omitempty" protobuf:"varint,7,opt,name=allowPrivilegeEscalation"` + // procMount denotes the type of proc mount to use for the containers. + // The default is DefaultProcMount which uses the container runtime defaults for + // readonly paths and masked paths. + // This requires the ProcMountType feature flag to be enabled. + // +optional + ProcMount *ProcMountType `json:"procMount,omitempty" protobuf:"bytes,9,opt,name=procMount"` } +type ProcMountType string + +const ( + // DefaultProcMount uses the container runtime defaults for readonly and masked + // paths for /proc. Most container runtimes mask certain paths in /proc to avoid + // accidental security exposure of special devices or information. + DefaultProcMount ProcMountType = "Default" + + // UnmaskedProcMount bypasses the default masking behavior of the container + // runtime and ensures the newly created /proc the container stays in tact with + // no modifications. + UnmaskedProcMount ProcMountType = "Unmasked" +) + // SELinuxOptions are the labels to be applied to the container type SELinuxOptions struct { // User is a SELinux user label that applies to the container. @@ -5233,9 +5313,9 @@ const ( // Sysctl defines a kernel parameter to be set type Sysctl struct { // Name of a property to set - Name string `protobuf:"bytes,1,opt,name=name"` + Name string `json:"name" protobuf:"bytes,1,opt,name=name"` // Value of a property to set - Value string `protobuf:"bytes,2,opt,name=value"` + Value string `json:"value" protobuf:"bytes,2,opt,name=value"` } // NodeResources is an object for conveying resource information about a node. diff --git a/vendor/k8s.io/api/core/v1/types_swagger_doc_generated.go b/vendor/k8s.io/api/core/v1/types_swagger_doc_generated.go index 19d5de8c7..71f90685f 100644 --- a/vendor/k8s.io/api/core/v1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/core/v1/types_swagger_doc_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2016 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -26,7 +26,7 @@ package v1 // // Those methods can be generated by using hack/update-generated-swagger-docs.sh -// AUTO-GENERATED FUNCTIONS START HERE +// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT. var map_AWSElasticBlockStoreVolumeSource = map[string]string{ "": "Represents a Persistent Disk resource in AWS.\n\nAn AWS EBS disk must exist before mounting to a container. The disk must also be in the same AWS zone as the kubelet. An AWS EBS disk can only be mounted as read/write once. AWS EBS volumes support ownership management and SELinux relabeling.", "volumeID": "Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", @@ -121,11 +121,11 @@ var map_CSIPersistentVolumeSource = map[string]string{ "driver": "Driver is the name of the driver to use for this volume. Required.", "volumeHandle": "VolumeHandle is the unique volume name returned by the CSI volume plugin’s CreateVolume to refer to the volume on all subsequent calls. Required.", "readOnly": "Optional: The value to pass to ControllerPublishVolumeRequest. Defaults to false (read/write).", - "fsType": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", + "fsType": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\".", "volumeAttributes": "Attributes of the volume to publish.", - "controllerPublishSecretRef": "ControllerPublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI ControllerPublishVolume and ControllerUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed.", - "nodeStageSecretRef": "NodeStageSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodeStageVolume and NodeStageVolume and NodeUnstageVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed.", - "nodePublishSecretRef": "NodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed.", + "controllerPublishSecretRef": "ControllerPublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI ControllerPublishVolume and ControllerUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed.", + "nodeStageSecretRef": "NodeStageSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodeStageVolume and NodeStageVolume and NodeUnstageVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed.", + "nodePublishSecretRef": "NodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed.", } func (CSIPersistentVolumeSource) SwaggerDoc() map[string]string { @@ -170,11 +170,24 @@ func (CephFSVolumeSource) SwaggerDoc() map[string]string { return map_CephFSVolumeSource } +var map_CinderPersistentVolumeSource = map[string]string{ + "": "Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling.", + "volumeID": "volume id used to identify the volume in cinder More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md", + "fsType": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md", + "readOnly": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md", + "secretRef": "Optional: points to a secret object containing parameters used to connect to OpenStack.", +} + +func (CinderPersistentVolumeSource) SwaggerDoc() map[string]string { + return map_CinderPersistentVolumeSource +} + var map_CinderVolumeSource = map[string]string{ - "": "Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling.", - "volumeID": "volume id used to identify the volume in cinder More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md", - "fsType": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md", - "readOnly": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md", + "": "Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling.", + "volumeID": "volume id used to identify the volume in cinder More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md", + "fsType": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md", + "readOnly": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md", + "secretRef": "Optional: points to a secret object containing parameters used to connect to OpenStack.", } func (CinderVolumeSource) SwaggerDoc() map[string]string { @@ -262,6 +275,19 @@ func (ConfigMapList) SwaggerDoc() map[string]string { return map_ConfigMapList } +var map_ConfigMapNodeConfigSource = map[string]string{ + "": "ConfigMapNodeConfigSource contains the information to reference a ConfigMap as a config source for the Node.", + "namespace": "Namespace is the metadata.namespace of the referenced ConfigMap. This field is required in all cases.", + "name": "Name is the metadata.name of the referenced ConfigMap. This field is required in all cases.", + "uid": "UID is the metadata.UID of the referenced ConfigMap. This field is forbidden in Node.Spec, and required in Node.Status.", + "resourceVersion": "ResourceVersion is the metadata.ResourceVersion of the referenced ConfigMap. This field is forbidden in Node.Spec, and required in Node.Status.", + "kubeletConfigKey": "KubeletConfigKey declares which key of the referenced ConfigMap corresponds to the KubeletConfiguration structure This field is required in all cases.", +} + +func (ConfigMapNodeConfigSource) SwaggerDoc() map[string]string { + return map_ConfigMapNodeConfigSource +} + var map_ConfigMapProjection = map[string]string{ "": "Adapts a ConfigMap into a projected volume.\n\nThe contents of the target ConfigMap's Data field will be presented in a projected volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. Note that this is identical to a configmap volume source without the default mode.", "items": "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", @@ -293,9 +319,9 @@ var map_Container = map[string]string{ "ports": "List of ports to expose from the container. Exposing a port here gives the system additional information about the network connections a container uses, but is primarily informational. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \"0.0.0.0\" address inside a container will be accessible from the network. Cannot be updated.", "envFrom": "List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.", "env": "List of environment variables to set in the container. Cannot be updated.", - "resources": "Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", + "resources": "Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/", "volumeMounts": "Pod volumes to mount into the container's filesystem. Cannot be updated.", - "volumeDevices": "volumeDevices is the list of block devices to be used by the container. This is an alpha feature and may change in the future.", + "volumeDevices": "volumeDevices is the list of block devices to be used by the container. This is a beta feature.", "livenessProbe": "Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", "readinessProbe": "Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", "lifecycle": "Actions that the management system should take in response to container lifecycle events. Cannot be updated.", @@ -327,7 +353,7 @@ var map_ContainerPort = map[string]string{ "name": "If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services.", "hostPort": "Number of port to expose on the host. If specified, this must be a valid port number, 0 < x < 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this.", "containerPort": "Number of port to expose on the pod's IP address. This must be a valid port number, 0 < x < 65536.", - "protocol": "Protocol for port. Must be UDP or TCP. Defaults to \"TCP\".", + "protocol": "Protocol for port. Must be UDP, TCP, or SCTP. Defaults to \"TCP\".", "hostIP": "What host IP to bind the external port to.", } @@ -405,18 +431,6 @@ func (DaemonEndpoint) SwaggerDoc() map[string]string { return map_DaemonEndpoint } -var map_DeleteOptions = map[string]string{ - "": "DeleteOptions may be provided when deleting an API object DEPRECATED: This type has been moved to meta/v1 and will be removed soon.", - "gracePeriodSeconds": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "preconditions": "Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.", - "orphanDependents": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "PropagationPolicy": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", -} - -func (DeleteOptions) SwaggerDoc() map[string]string { - return map_DeleteOptions -} - var map_DownwardAPIProjection = map[string]string{ "": "Represents downward API info for projecting into a projected volume. Note that this is identical to a downwardAPI volume source without the default mode.", "items": "Items is a list of DownwardAPIVolume file", @@ -474,7 +488,7 @@ var map_EndpointPort = map[string]string{ "": "EndpointPort is a tuple that describes a single port.", "name": "The name of this port (corresponds to ServicePort.Name). Must be a DNS_LABEL. Optional only if one port is defined.", "port": "The port number of the endpoint.", - "protocol": "The IP protocol for this port. Must be UDP or TCP. Default is TCP.", + "protocol": "The IP protocol for this port. Must be UDP, TCP, or SCTP. Default is TCP.", } func (EndpointPort) SwaggerDoc() map[string]string { @@ -671,7 +685,7 @@ func (GCEPersistentDiskVolumeSource) SwaggerDoc() map[string]string { } var map_GitRepoVolumeSource = map[string]string{ - "": "Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling.", + "": "Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling.\n\nDEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.", "repository": "Repository URL", "revision": "Commit hash for the specified revision.", "directory": "Target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.", @@ -681,6 +695,18 @@ func (GitRepoVolumeSource) SwaggerDoc() map[string]string { return map_GitRepoVolumeSource } +var map_GlusterfsPersistentVolumeSource = map[string]string{ + "": "Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.", + "endpoints": "EndpointsName is the endpoint name that details Glusterfs topology. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod", + "path": "Path is the Glusterfs volume path. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod", + "readOnly": "ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod", + "endpointsNamespace": "EndpointsNamespace is the namespace that contains Glusterfs endpoint. If this field is empty, the EndpointNamespace defaults to the same namespace as the bound PVC. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod", +} + +func (GlusterfsPersistentVolumeSource) SwaggerDoc() map[string]string { + return map_GlusterfsPersistentVolumeSource +} + var map_GlusterfsVolumeSource = map[string]string{ "": "Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.", "endpoints": "EndpointsName is the endpoint name that details Glusterfs topology. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod", @@ -848,20 +874,6 @@ func (LimitRangeSpec) SwaggerDoc() map[string]string { return map_LimitRangeSpec } -var map_ListOptions = map[string]string{ - "": "ListOptions is the query options to a standard REST list call. DEPRECATED: This type has been moved to meta/v1 and will be removed soon.", - "labelSelector": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "fieldSelector": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "includeUninitialized": "If true, partially initialized resources are included in the response.", - "watch": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "resourceVersion": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "timeoutSeconds": "Timeout for the list/watch call.", -} - -func (ListOptions) SwaggerDoc() map[string]string { - return map_ListOptions -} - var map_LoadBalancerIngress = map[string]string{ "": "LoadBalancerIngress represents the status of a load-balancer ingress point: traffic intended for the service should be sent to an ingress point.", "ip": "IP is set for load-balancer ingress points that are IP based (typically GCE or OpenStack load-balancers)", @@ -891,8 +903,9 @@ func (LocalObjectReference) SwaggerDoc() map[string]string { } var map_LocalVolumeSource = map[string]string{ - "": "Local represents directly-attached storage with node affinity", - "path": "The full path to the volume on the node For alpha, this path must be a directory Once block as a source is supported, then this path can point to a block device", + "": "Local represents directly-attached storage with node affinity (Beta feature)", + "path": "The full path to the volume on the node. It can be either a directory or block device (disk, partition, ...).", + "fsType": "Filesystem type to mount. It applies only when the Path is a block device. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default value is to auto-select a fileystem if unspecified.", } func (LocalVolumeSource) SwaggerDoc() map[string]string { @@ -995,13 +1008,26 @@ func (NodeCondition) SwaggerDoc() map[string]string { } var map_NodeConfigSource = map[string]string{ - "": "NodeConfigSource specifies a source of node configuration. Exactly one subfield (excluding metadata) must be non-nil.", + "": "NodeConfigSource specifies a source of node configuration. Exactly one subfield (excluding metadata) must be non-nil.", + "configMap": "ConfigMap is a reference to a Node's ConfigMap", } func (NodeConfigSource) SwaggerDoc() map[string]string { return map_NodeConfigSource } +var map_NodeConfigStatus = map[string]string{ + "": "NodeConfigStatus describes the status of the config assigned by Node.Spec.ConfigSource.", + "assigned": "Assigned reports the checkpointed config the node will try to use. When Node.Spec.ConfigSource is updated, the node checkpoints the associated config payload to local disk, along with a record indicating intended config. The node refers to this record to choose its config checkpoint, and reports this record in Assigned. Assigned only updates in the status after the record has been checkpointed to disk. When the Kubelet is restarted, it tries to make the Assigned config the Active config by loading and validating the checkpointed payload identified by Assigned.", + "active": "Active reports the checkpointed config the node is actively using. Active will represent either the current version of the Assigned config, or the current LastKnownGood config, depending on whether attempting to use the Assigned config results in an error.", + "lastKnownGood": "LastKnownGood reports the checkpointed config the node will fall back to when it encounters an error attempting to use the Assigned config. The Assigned config becomes the LastKnownGood config when the node determines that the Assigned config is stable and correct. This is currently implemented as a 10-minute soak period starting when the local record of Assigned config is updated. If the Assigned config is Active at the end of this period, it becomes the LastKnownGood. Note that if Spec.ConfigSource is reset to nil (use local defaults), the LastKnownGood is also immediately reset to nil, because the local default config is always assumed good. You should not make assumptions about the node's method of determining config stability and correctness, as this may change or become configurable in the future.", + "error": "Error describes any problems reconciling the Spec.ConfigSource to the Active config. Errors may occur, for example, attempting to checkpoint Spec.ConfigSource to the local Assigned record, attempting to checkpoint the payload associated with Spec.ConfigSource, attempting to load or validate the Assigned config, etc. Errors may occur at different points while syncing config. Earlier errors (e.g. download or checkpointing errors) will not result in a rollback to LastKnownGood, and may resolve across Kubelet retries. Later errors (e.g. loading or validating a checkpointed config) will result in a rollback to LastKnownGood. In the latter case, it is usually possible to resolve the error by fixing the config assigned in Spec.ConfigSource. You can find additional information for debugging by searching the error message in the Kubelet log. Error is a human-readable description of the error state; machines can check whether or not Error is empty, but should not rely on the stability of the Error text across Kubelet versions.", +} + +func (NodeConfigStatus) SwaggerDoc() map[string]string { + return map_NodeConfigStatus +} + var map_NodeDaemonEndpoints = map[string]string{ "": "NodeDaemonEndpoints lists ports opened by daemons running on the Node.", "kubeletEndpoint": "Endpoint on which Kubelet is listening.", @@ -1060,8 +1086,9 @@ func (NodeSelectorRequirement) SwaggerDoc() map[string]string { } var map_NodeSelectorTerm = map[string]string{ - "": "A null or empty node selector term matches no objects.", - "matchExpressions": "Required. A list of node selector requirements. The requirements are ANDed.", + "": "A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.", + "matchExpressions": "A list of node selector requirements by node's labels.", + "matchFields": "A list of node selector requirements by node's fields.", } func (NodeSelectorTerm) SwaggerDoc() map[string]string { @@ -1071,11 +1098,11 @@ func (NodeSelectorTerm) SwaggerDoc() map[string]string { var map_NodeSpec = map[string]string{ "": "NodeSpec describes the attributes that a node is created with.", "podCIDR": "PodCIDR represents the pod IP range assigned to the node.", - "externalID": "External ID of the node assigned by some machine database (e.g. a cloud provider). Deprecated.", "providerID": "ID of the node assigned by the cloud provider in the format: ://", "unschedulable": "Unschedulable controls node schedulability of new pods. By default, node is schedulable. More info: https://kubernetes.io/docs/concepts/nodes/node/#manual-node-administration", "taints": "If specified, the node's taints.", "configSource": "If specified, the source to get node configuration from The DynamicKubeletConfig feature gate must be enabled for the Kubelet to use this field", + "externalID": "Deprecated. Not all kubelets will set this field. Remove field after 1.13. see: https://issues.k8s.io/61966", } func (NodeSpec) SwaggerDoc() map[string]string { @@ -1094,6 +1121,7 @@ var map_NodeStatus = map[string]string{ "images": "List of container images on this node", "volumesInUse": "List of attachable volumes in use (mounted) by the node.", "volumesAttached": "List of volumes that are attached to the node.", + "config": "Status of the config assigned to the node via the dynamic Kubelet config feature.", } func (NodeStatus) SwaggerDoc() map[string]string { @@ -1128,30 +1156,6 @@ func (ObjectFieldSelector) SwaggerDoc() map[string]string { return map_ObjectFieldSelector } -var map_ObjectMeta = map[string]string{ - "": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create. DEPRECATED: Use k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta instead - this type will be removed soon.", - "name": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - "generateName": "GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.\n\nIf this field is specified and the generated name exists, the server will NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header).\n\nApplied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency", - "namespace": "Namespace defines the space within each name must be unique. An empty namespace is equivalent to the \"default\" namespace, but \"default\" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty.\n\nMust be a DNS_LABEL. Cannot be updated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/", - "selfLink": "SelfLink is a URL representing this object. Populated by the system. Read-only.", - "uid": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids", - "resourceVersion": "An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.\n\nPopulated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency", - "generation": "A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.", - "creationTimestamp": "CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\n\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "deletionTimestamp": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "deletionGracePeriodSeconds": "Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.", - "labels": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/", - "annotations": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/", - "ownerReferences": "List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.", - "initializers": "An initializer is a controller which enforces some system invariant at object creation time. This field is a list of initializers that have not yet acted on this object. If nil or empty, this object has been completely initialized. Otherwise, the object is considered uninitialized and is hidden (in list/watch and get calls) from clients that haven't explicitly asked to observe uninitialized objects.\n\nWhen an object is created, the system will populate this list with the current set of initializers. Only privileged users may set or modify this list. Once it is empty, it may not be modified further by any user.", - "finalizers": "Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed.", - "clusterName": "The name of the cluster which the object belongs to. This is used to distinguish resources with same name and namespace in different clusters. This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request.", -} - -func (ObjectMeta) SwaggerDoc() map[string]string { - return map_ObjectMeta -} - var map_ObjectReference = map[string]string{ "": "ObjectReference contains enough information to let you inspect or modify the referred object.", "kind": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", @@ -1218,7 +1222,8 @@ var map_PersistentVolumeClaimSpec = map[string]string{ "resources": "Resources represents the minimum resources the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", "volumeName": "VolumeName is the binding reference to the PersistentVolume backing this claim.", "storageClassName": "Name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1", - "volumeMode": "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec. This is an alpha feature and may change in the future.", + "volumeMode": "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec. This is a beta feature.", + "dataSource": "This field requires the VolumeSnapshotDataSource alpha feature gate to be enabled and currently VolumeSnapshot is the only supported data source. If the provisioner can support VolumeSnapshot data source, it will create a new volume and data will be restored to the volume at the same time. If the provisioner does not support VolumeSnapshot data source, volume will not be created and the failure will be reported as an event. In the future, we plan to support more data source types and the behavior of the provisioner may change.", } func (PersistentVolumeClaimSpec) SwaggerDoc() map[string]string { @@ -1295,7 +1300,7 @@ var map_PersistentVolumeSpec = map[string]string{ "persistentVolumeReclaimPolicy": "What happens to a persistent volume when released from its claim. Valid options are Retain (default for manually created PersistentVolumes), Delete (default for dynamically provisioned PersistentVolumes), and Recycle (deprecated). Recycle must be supported by the volume plugin underlying this PersistentVolume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming", "storageClassName": "Name of StorageClass to which this persistent volume belongs. Empty value means that this volume does not belong to any StorageClass.", "mountOptions": "A list of mount options, e.g. [\"ro\", \"soft\"]. Not validated - mount will simply fail if one is invalid. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#mount-options", - "volumeMode": "volumeMode defines if a volume is intended to be used with a formatted filesystem or to remain in raw block state. Value of Filesystem is implied when not included in spec. This is an alpha feature and may change in the future.", + "volumeMode": "volumeMode defines if a volume is intended to be used with a formatted filesystem or to remain in raw block state. Value of Filesystem is implied when not included in spec. This is a beta feature.", "nodeAffinity": "NodeAffinity defines constraints that limit what nodes this volume can be accessed from. This field influences the scheduling of pods that use this volume.", } @@ -1381,7 +1386,7 @@ func (PodAttachOptions) SwaggerDoc() map[string]string { var map_PodCondition = map[string]string{ "": "PodCondition contains details for the current condition of this pod.", - "type": "Type is the type of the condition. Currently only Ready. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions", + "type": "Type is the type of the condition. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions", "status": "Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions", "lastProbeTime": "Last time we probed the condition.", "lastTransitionTime": "Last time the condition transitioned from one status to another.", @@ -1471,13 +1476,24 @@ func (PodProxyOptions) SwaggerDoc() map[string]string { return map_PodProxyOptions } +var map_PodReadinessGate = map[string]string{ + "": "PodReadinessGate contains the reference to a pod condition", + "conditionType": "ConditionType refers to a condition in the pod's condition list with matching type.", +} + +func (PodReadinessGate) SwaggerDoc() map[string]string { + return map_PodReadinessGate +} + var map_PodSecurityContext = map[string]string{ "": "PodSecurityContext holds pod-level security attributes and common container settings. Some fields are also present in container.securityContext. Field values of container.securityContext take precedence over field values of PodSecurityContext.", "seLinuxOptions": "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container.", "runAsUser": "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container.", + "runAsGroup": "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container.", "runAsNonRoot": "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", "supplementalGroups": "A list of groups applied to the first process run in each container, in addition to the container's primary GID. If unspecified, no groups will be added to any container.", "fsGroup": "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod:\n\n1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw ", + "sysctls": "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch.", } func (PodSecurityContext) SwaggerDoc() map[string]string { @@ -1510,7 +1526,7 @@ var map_PodSpec = map[string]string{ "hostNetwork": "Host networking requested for this pod. Use the host's network namespace. If this option is set, the ports that will be used must be specified. Default to false.", "hostPID": "Use the host's pid namespace. Optional: Default to false.", "hostIPC": "Use the host's ipc namespace. Optional: Default to false.", - "shareProcessNamespace": "Share a single process namespace between all of the containers in a pod. When this is set containers will be able to view and signal processes from other containers in the same pod, and the first process in each container will not be assigned PID 1. HostPID and ShareProcessNamespace cannot both be set. Optional: Default to false. This field is alpha-level and is honored only by servers that enable the PodShareProcessNamespace feature.", + "shareProcessNamespace": "Share a single process namespace between all of the containers in a pod. When this is set containers will be able to view and signal processes from other containers in the same pod, and the first process in each container will not be assigned PID 1. HostPID and ShareProcessNamespace cannot both be set. Optional: Default to false. This field is beta-level and may be disabled with the PodShareProcessNamespace feature.", "securityContext": "SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field.", "imagePullSecrets": "ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod", "hostname": "Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value.", @@ -1522,6 +1538,9 @@ var map_PodSpec = map[string]string{ "priorityClassName": "If specified, indicates the pod's priority. \"system-node-critical\" and \"system-cluster-critical\" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.", "priority": "The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority.", "dnsConfig": "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.", + "readinessGates": "If specified, all readiness gates will be evaluated for pod readiness. A pod is ready when all its containers are ready AND all conditions specified in the readiness gates have status equal to \"True\" More info: https://github.com/kubernetes/community/blob/master/keps/sig-network/0007-pod-ready%2B%2B.md", + "runtimeClassName": "RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://github.com/kubernetes/community/blob/master/keps/sig-node/0014-runtime-class.md This is an alpha feature and may change in the future.", + "enableServiceLinks": "EnableServiceLinks indicates whether information about services should be injected into pod's environment variables, matching the syntax of Docker links.", } func (PodSpec) SwaggerDoc() map[string]string { @@ -1529,8 +1548,8 @@ func (PodSpec) SwaggerDoc() map[string]string { } var map_PodStatus = map[string]string{ - "": "PodStatus represents information about the status of a pod. Status may trail the actual state of a system.", - "phase": "Current condition of the pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase", + "": "PodStatus represents information about the status of a pod. Status may trail the actual state of a system, especially if the node that hosts the pod cannot contact the control plane.", + "phase": "The phase of a Pod is a simple, high-level summary of where the Pod is in its lifecycle. The conditions array, the reason and message fields, and the individual container status arrays contain more detail about the pod's status. There are five possible phase values:\n\nPending: The pod has been accepted by the Kubernetes system, but one or more of the container images has not been created. This includes time before being scheduled as well as time spent downloading images over the network, which could take a while. Running: The pod has been bound to a node, and all of the containers have been created. At least one container is still running, or is in the process of starting or restarting. Succeeded: All containers in the pod have terminated in success, and will not be restarted. Failed: All containers in the pod have terminated, and at least one container has terminated in failure. The container either exited with non-zero status or was terminated by the system. Unknown: For some reason the state of the pod could not be obtained, typically due to an error in communicating with the host of the pod.\n\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase", "conditions": "Current service state of pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions", "message": "A human readable message indicating details about why the pod is in this condition.", "reason": "A brief CamelCase message indicating details about why the pod is in this state. e.g. 'Evicted'", @@ -1630,7 +1649,7 @@ func (PreferredSchedulingTerm) SwaggerDoc() map[string]string { } var map_Probe = map[string]string{ - "": "Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.", + "": "Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.", "initialDelaySeconds": "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", "timeoutSeconds": "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", "periodSeconds": "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", @@ -1801,9 +1820,10 @@ func (ResourceQuotaList) SwaggerDoc() map[string]string { } var map_ResourceQuotaSpec = map[string]string{ - "": "ResourceQuotaSpec defines the desired hard limits to enforce for Quota.", - "hard": "Hard is the set of desired hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/", - "scopes": "A collection of filters that must match each object tracked by a quota. If not specified, the quota matches all objects.", + "": "ResourceQuotaSpec defines the desired hard limits to enforce for Quota.", + "hard": "hard is the set of desired hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/", + "scopes": "A collection of filters that must match each object tracked by a quota. If not specified, the quota matches all objects.", + "scopeSelector": "scopeSelector is also a collection of filters like scopes that must match each object tracked by a quota but expressed using ScopeSelectorOperator in combination with possible values. For a resource to match, both scopes AND scopeSelector (if specified in spec), must be matched.", } func (ResourceQuotaSpec) SwaggerDoc() map[string]string { @@ -1850,9 +1870,9 @@ var map_ScaleIOPersistentVolumeSource = map[string]string{ "sslEnabled": "Flag to enable/disable SSL communication with Gateway, default false", "protectionDomain": "The name of the ScaleIO Protection Domain for the configured storage.", "storagePool": "The ScaleIO Storage Pool associated with the protection domain.", - "storageMode": "Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.", + "storageMode": "Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.", "volumeName": "The name of a volume already created in the ScaleIO system that is associated with this volume source.", - "fsType": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", + "fsType": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Default is \"xfs\"", "readOnly": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", } @@ -1868,9 +1888,9 @@ var map_ScaleIOVolumeSource = map[string]string{ "sslEnabled": "Flag to enable/disable SSL communication with Gateway, default false", "protectionDomain": "The name of the ScaleIO Protection Domain for the configured storage.", "storagePool": "The ScaleIO Storage Pool associated with the protection domain.", - "storageMode": "Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.", + "storageMode": "Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.", "volumeName": "The name of a volume already created in the ScaleIO system that is associated with this volume source.", - "fsType": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", + "fsType": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Default is \"xfs\".", "readOnly": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", } @@ -1878,6 +1898,26 @@ func (ScaleIOVolumeSource) SwaggerDoc() map[string]string { return map_ScaleIOVolumeSource } +var map_ScopeSelector = map[string]string{ + "": "A scope selector represents the AND of the selectors represented by the scoped-resource selector requirements.", + "matchExpressions": "A list of scope selector requirements by scope of the resources.", +} + +func (ScopeSelector) SwaggerDoc() map[string]string { + return map_ScopeSelector +} + +var map_ScopedResourceSelectorRequirement = map[string]string{ + "": "A scoped-resource selector requirement is a selector that contains values, a scope name, and an operator that relates the scope name and values.", + "scopeName": "The name of the scope that the selector applies to.", + "operator": "Represents a scope's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist.", + "values": "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", +} + +func (ScopedResourceSelectorRequirement) SwaggerDoc() map[string]string { + return map_ScopedResourceSelectorRequirement +} + var map_Secret = map[string]string{ "": "Secret holds secret data of a certain type. The total bytes of the values in the Data field must be less than MaxSecretSize bytes.", "metadata": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", @@ -1957,9 +1997,11 @@ var map_SecurityContext = map[string]string{ "privileged": "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false.", "seLinuxOptions": "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", "runAsUser": "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", + "runAsGroup": "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", "runAsNonRoot": "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", "readOnlyRootFilesystem": "Whether this container has a read-only root filesystem. Default is false.", "allowPrivilegeEscalation": "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN", + "procMount": "procMount denotes the type of proc mount to use for the containers. The default is DefaultProcMount which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled.", } func (SecurityContext) SwaggerDoc() map[string]string { @@ -2008,6 +2050,17 @@ func (ServiceAccountList) SwaggerDoc() map[string]string { return map_ServiceAccountList } +var map_ServiceAccountTokenProjection = map[string]string{ + "": "ServiceAccountTokenProjection represents a projected service account token volume. This projection can be used to insert a service account token into the pods runtime filesystem for use against APIs (Kubernetes API Server or otherwise).", + "audience": "Audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.", + "expirationSeconds": "ExpirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.", + "path": "Path is the path relative to the mount point of the file to project the token into.", +} + +func (ServiceAccountTokenProjection) SwaggerDoc() map[string]string { + return map_ServiceAccountTokenProjection +} + var map_ServiceList = map[string]string{ "": "ServiceList holds a list of services.", "metadata": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", @@ -2021,7 +2074,7 @@ func (ServiceList) SwaggerDoc() map[string]string { var map_ServicePort = map[string]string{ "": "ServicePort contains information on service's port.", "name": "The name of this port within the service. This must be a DNS_LABEL. All ports within a ServiceSpec must have unique names. This maps to the 'Name' field in EndpointPort objects. Optional if only one ServicePort is defined on this service.", - "protocol": "The IP protocol for this port. Supports \"TCP\" and \"UDP\". Default is TCP.", + "protocol": "The IP protocol for this port. Supports \"TCP\", \"UDP\", and \"SCTP\". Default is TCP.", "port": "The port that will be exposed by this service.", "targetPort": "Number or name of the port to access on the pods targeted by the service. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. If this is a string, it will be looked up as a named port in the target Pod's container ports. If this is not specified, the value of the 'port' field is used (an identity map). This field is ignored for services with clusterIP=None, and should be omitted or set equal to the 'port' field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service", "nodePort": "The port on each node on which this service is exposed when type=NodePort or LoadBalancer. Usually assigned by the system. If specified, it will be allocated to the service if unused or else creation of the service will fail. Default is to auto-allocate a port if the ServiceType of this Service requires one. More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport", @@ -2053,7 +2106,7 @@ var map_ServiceSpec = map[string]string{ "externalName": "externalName is the external reference that kubedns or equivalent will return as a CNAME record for this service. No proxying will be involved. Must be a valid RFC-1123 hostname (https://tools.ietf.org/html/rfc1123) and requires Type to be ExternalName.", "externalTrafficPolicy": "externalTrafficPolicy denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints. \"Local\" preserves the client source IP and avoids a second hop for LoadBalancer and Nodeport type services, but risks potentially imbalanced traffic spreading. \"Cluster\" obscures the client source IP and may cause a second hop to another node, but should have good overall load-spreading.", "healthCheckNodePort": "healthCheckNodePort specifies the healthcheck nodePort for the service. If not specified, HealthCheckNodePort is created by the service api backend with the allocated nodePort. Will use user-specified nodePort value if specified by the client. Only effects when Type is set to LoadBalancer and ExternalTrafficPolicy is set to Local.", - "publishNotReadyAddresses": "publishNotReadyAddresses, when set to true, indicates that DNS implementations must publish the notReadyAddresses of subsets for the Endpoints associated with the Service. The default value is false. The primary use case for setting this field is to use a StatefulSet's Headless Service to propagate SRV records for its Pods without respect to their readiness for purpose of peer discovery. This field will replace the service.alpha.kubernetes.io/tolerate-unready-endpoints when that annotation is deprecated and all clients have been converted to use this field.", + "publishNotReadyAddresses": "publishNotReadyAddresses, when set to true, indicates that DNS implementations must publish the notReadyAddresses of subsets for the Endpoints associated with the Service. The default value is false. The primary use case for setting this field is to use a StatefulSet's Headless Service to propagate SRV records for its Pods without respect to their readiness for purpose of peer discovery.", "sessionAffinityConfig": "sessionAffinityConfig contains the configurations of session affinity.", } @@ -2107,8 +2160,8 @@ func (StorageOSVolumeSource) SwaggerDoc() map[string]string { var map_Sysctl = map[string]string{ "": "Sysctl defines a kernel parameter to be set", - "Name": "Name of a property to set", - "Value": "Value of a property to set", + "name": "Name of a property to set", + "value": "Value of a property to set", } func (Sysctl) SwaggerDoc() map[string]string { @@ -2150,6 +2203,36 @@ func (Toleration) SwaggerDoc() map[string]string { return map_Toleration } +var map_TopologySelectorLabelRequirement = map[string]string{ + "": "A topology selector requirement is a selector that matches given label. This is an alpha feature and may change in the future.", + "key": "The label key that the selector applies to.", + "values": "An array of string values. One value must match the label to be selected. Each entry in Values is ORed.", +} + +func (TopologySelectorLabelRequirement) SwaggerDoc() map[string]string { + return map_TopologySelectorLabelRequirement +} + +var map_TopologySelectorTerm = map[string]string{ + "": "A topology selector term represents the result of label queries. A null or empty topology selector term matches no objects. The requirements of them are ANDed. It provides a subset of functionality as NodeSelectorTerm. This is an alpha feature and may change in the future.", + "matchLabelExpressions": "A list of topology selector requirements by labels.", +} + +func (TopologySelectorTerm) SwaggerDoc() map[string]string { + return map_TopologySelectorTerm +} + +var map_TypedLocalObjectReference = map[string]string{ + "": "TypedLocalObjectReference contains enough information to let you locate the typed referenced object inside the same namespace.", + "apiGroup": "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.", + "kind": "Kind is the type of resource being referenced", + "name": "Name is the name of resource being referenced", +} + +func (TypedLocalObjectReference) SwaggerDoc() map[string]string { + return map_TypedLocalObjectReference +} + var map_Volume = map[string]string{ "": "Volume represents a named volume in a pod that may be accessed by any container in the pod.", "name": "Volume's name. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", @@ -2175,7 +2258,7 @@ var map_VolumeMount = map[string]string{ "readOnly": "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.", "mountPath": "Path within the container at which the volume should be mounted. Must not contain ':'.", "subPath": "Path within the volume from which the container's volume should be mounted. Defaults to \"\" (volume's root).", - "mountPropagation": "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationHostToContainer is used. This field is alpha in 1.8 and can be reworked or removed in a future release.", + "mountPropagation": "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.", } func (VolumeMount) SwaggerDoc() map[string]string { @@ -2192,10 +2275,11 @@ func (VolumeNodeAffinity) SwaggerDoc() map[string]string { } var map_VolumeProjection = map[string]string{ - "": "Projection that may be projected along with other supported volume types", - "secret": "information about the secret data to project", - "downwardAPI": "information about the downwardAPI data to project", - "configMap": "information about the configMap data to project", + "": "Projection that may be projected along with other supported volume types", + "secret": "information about the secret data to project", + "downwardAPI": "information about the downwardAPI data to project", + "configMap": "information about the configMap data to project", + "serviceAccountToken": "information about the serviceAccountToken data to project", } func (VolumeProjection) SwaggerDoc() map[string]string { @@ -2208,29 +2292,29 @@ var map_VolumeSource = map[string]string{ "emptyDir": "EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", "gcePersistentDisk": "GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", "awsElasticBlockStore": "AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - "gitRepo": "GitRepo represents a git repository at a particular revision.", + "gitRepo": "GitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.", "secret": "Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", "nfs": "NFS represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", "iscsi": "ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://releases.k8s.io/HEAD/examples/volumes/iscsi/README.md", "glusterfs": "Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md", "persistentVolumeClaim": "PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", - "rbd": "RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md", - "flexVolume": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.", - "cinder": "Cinder represents a cinder volume attached and mounted on kubelets host machine More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md", - "cephfs": "CephFS represents a Ceph FS mount on the host that shares a pod's lifetime", - "flocker": "Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running", - "downwardAPI": "DownwardAPI represents downward API about the pod that should populate this volume", - "fc": "FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.", - "azureFile": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", - "configMap": "ConfigMap represents a configMap that should populate this volume", - "vsphereVolume": "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine", - "quobyte": "Quobyte represents a Quobyte mount on the host that shares a pod's lifetime", - "azureDisk": "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.", - "photonPersistentDisk": "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine", - "projected": "Items for all in one resources secrets, configmaps, and downward API", - "portworxVolume": "PortworxVolume represents a portworx volume attached and mounted on kubelets host machine", - "scaleIO": "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.", - "storageos": "StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.", + "rbd": "RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md", + "flexVolume": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.", + "cinder": "Cinder represents a cinder volume attached and mounted on kubelets host machine More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md", + "cephfs": "CephFS represents a Ceph FS mount on the host that shares a pod's lifetime", + "flocker": "Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running", + "downwardAPI": "DownwardAPI represents downward API about the pod that should populate this volume", + "fc": "FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.", + "azureFile": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", + "configMap": "ConfigMap represents a configMap that should populate this volume", + "vsphereVolume": "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine", + "quobyte": "Quobyte represents a Quobyte mount on the host that shares a pod's lifetime", + "azureDisk": "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.", + "photonPersistentDisk": "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine", + "projected": "Items for all in one resources secrets, configmaps, and downward API", + "portworxVolume": "PortworxVolume represents a portworx volume attached and mounted on kubelets host machine", + "scaleIO": "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.", + "storageos": "StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.", } func (VolumeSource) SwaggerDoc() map[string]string { diff --git a/vendor/k8s.io/api/core/v1/zz_generated.deepcopy.go b/vendor/k8s.io/api/core/v1/zz_generated.deepcopy.go index c04a105ad..4219c95eb 100644 --- a/vendor/k8s.io/api/core/v1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/api/core/v1/zz_generated.deepcopy.go @@ -1,7 +1,7 @@ // +build !ignore_autogenerated /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ limitations under the License. package v1 import ( - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" types "k8s.io/apimachinery/pkg/types" ) @@ -47,30 +47,18 @@ func (in *Affinity) DeepCopyInto(out *Affinity) { *out = *in if in.NodeAffinity != nil { in, out := &in.NodeAffinity, &out.NodeAffinity - if *in == nil { - *out = nil - } else { - *out = new(NodeAffinity) - (*in).DeepCopyInto(*out) - } + *out = new(NodeAffinity) + (*in).DeepCopyInto(*out) } if in.PodAffinity != nil { in, out := &in.PodAffinity, &out.PodAffinity - if *in == nil { - *out = nil - } else { - *out = new(PodAffinity) - (*in).DeepCopyInto(*out) - } + *out = new(PodAffinity) + (*in).DeepCopyInto(*out) } if in.PodAntiAffinity != nil { in, out := &in.PodAntiAffinity, &out.PodAntiAffinity - if *in == nil { - *out = nil - } else { - *out = new(PodAntiAffinity) - (*in).DeepCopyInto(*out) - } + *out = new(PodAntiAffinity) + (*in).DeepCopyInto(*out) } return } @@ -129,39 +117,23 @@ func (in *AzureDiskVolumeSource) DeepCopyInto(out *AzureDiskVolumeSource) { *out = *in if in.CachingMode != nil { in, out := &in.CachingMode, &out.CachingMode - if *in == nil { - *out = nil - } else { - *out = new(AzureDataDiskCachingMode) - **out = **in - } + *out = new(AzureDataDiskCachingMode) + **out = **in } if in.FSType != nil { in, out := &in.FSType, &out.FSType - if *in == nil { - *out = nil - } else { - *out = new(string) - **out = **in - } + *out = new(string) + **out = **in } if in.ReadOnly != nil { in, out := &in.ReadOnly, &out.ReadOnly - if *in == nil { - *out = nil - } else { - *out = new(bool) - **out = **in - } + *out = new(bool) + **out = **in } if in.Kind != nil { in, out := &in.Kind, &out.Kind - if *in == nil { - *out = nil - } else { - *out = new(AzureDataDiskKind) - **out = **in - } + *out = new(AzureDataDiskKind) + **out = **in } return } @@ -181,12 +153,8 @@ func (in *AzureFilePersistentVolumeSource) DeepCopyInto(out *AzureFilePersistent *out = *in if in.SecretNamespace != nil { in, out := &in.SecretNamespace, &out.SecretNamespace - if *in == nil { - *out = nil - } else { - *out = new(string) - **out = **in - } + *out = new(string) + **out = **in } return } @@ -256,30 +224,18 @@ func (in *CSIPersistentVolumeSource) DeepCopyInto(out *CSIPersistentVolumeSource } if in.ControllerPublishSecretRef != nil { in, out := &in.ControllerPublishSecretRef, &out.ControllerPublishSecretRef - if *in == nil { - *out = nil - } else { - *out = new(SecretReference) - **out = **in - } + *out = new(SecretReference) + **out = **in } if in.NodeStageSecretRef != nil { in, out := &in.NodeStageSecretRef, &out.NodeStageSecretRef - if *in == nil { - *out = nil - } else { - *out = new(SecretReference) - **out = **in - } + *out = new(SecretReference) + **out = **in } if in.NodePublishSecretRef != nil { in, out := &in.NodePublishSecretRef, &out.NodePublishSecretRef - if *in == nil { - *out = nil - } else { - *out = new(SecretReference) - **out = **in - } + *out = new(SecretReference) + **out = **in } return } @@ -330,12 +286,8 @@ func (in *CephFSPersistentVolumeSource) DeepCopyInto(out *CephFSPersistentVolume } if in.SecretRef != nil { in, out := &in.SecretRef, &out.SecretRef - if *in == nil { - *out = nil - } else { - *out = new(SecretReference) - **out = **in - } + *out = new(SecretReference) + **out = **in } return } @@ -360,12 +312,8 @@ func (in *CephFSVolumeSource) DeepCopyInto(out *CephFSVolumeSource) { } if in.SecretRef != nil { in, out := &in.SecretRef, &out.SecretRef - if *in == nil { - *out = nil - } else { - *out = new(LocalObjectReference) - **out = **in - } + *out = new(LocalObjectReference) + **out = **in } return } @@ -380,9 +328,35 @@ func (in *CephFSVolumeSource) DeepCopy() *CephFSVolumeSource { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CinderPersistentVolumeSource) DeepCopyInto(out *CinderPersistentVolumeSource) { + *out = *in + if in.SecretRef != nil { + in, out := &in.SecretRef, &out.SecretRef + *out = new(SecretReference) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CinderPersistentVolumeSource. +func (in *CinderPersistentVolumeSource) DeepCopy() *CinderPersistentVolumeSource { + if in == nil { + return nil + } + out := new(CinderPersistentVolumeSource) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *CinderVolumeSource) DeepCopyInto(out *CinderVolumeSource) { *out = *in + if in.SecretRef != nil { + in, out := &in.SecretRef, &out.SecretRef + *out = new(LocalObjectReference) + **out = **in + } return } @@ -401,12 +375,8 @@ func (in *ClientIPConfig) DeepCopyInto(out *ClientIPConfig) { *out = *in if in.TimeoutSeconds != nil { in, out := &in.TimeoutSeconds, &out.TimeoutSeconds - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } return } @@ -517,12 +487,15 @@ func (in *ConfigMap) DeepCopyInto(out *ConfigMap) { in, out := &in.BinaryData, &out.BinaryData *out = make(map[string][]byte, len(*in)) for key, val := range *in { + var outVal []byte if val == nil { (*out)[key] = nil } else { - (*out)[key] = make([]byte, len(val)) - copy((*out)[key], val) + in, out := &val, &outVal + *out = make([]byte, len(*in)) + copy(*out, *in) } + (*out)[key] = outVal } } return @@ -552,12 +525,8 @@ func (in *ConfigMapEnvSource) DeepCopyInto(out *ConfigMapEnvSource) { out.LocalObjectReference = in.LocalObjectReference if in.Optional != nil { in, out := &in.Optional, &out.Optional - if *in == nil { - *out = nil - } else { - *out = new(bool) - **out = **in - } + *out = new(bool) + **out = **in } return } @@ -578,12 +547,8 @@ func (in *ConfigMapKeySelector) DeepCopyInto(out *ConfigMapKeySelector) { out.LocalObjectReference = in.LocalObjectReference if in.Optional != nil { in, out := &in.Optional, &out.Optional - if *in == nil { - *out = nil - } else { - *out = new(bool) - **out = **in - } + *out = new(bool) + **out = **in } return } @@ -631,6 +596,22 @@ func (in *ConfigMapList) DeepCopyObject() runtime.Object { return nil } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ConfigMapNodeConfigSource) DeepCopyInto(out *ConfigMapNodeConfigSource) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigMapNodeConfigSource. +func (in *ConfigMapNodeConfigSource) DeepCopy() *ConfigMapNodeConfigSource { + if in == nil { + return nil + } + out := new(ConfigMapNodeConfigSource) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ConfigMapProjection) DeepCopyInto(out *ConfigMapProjection) { *out = *in @@ -644,12 +625,8 @@ func (in *ConfigMapProjection) DeepCopyInto(out *ConfigMapProjection) { } if in.Optional != nil { in, out := &in.Optional, &out.Optional - if *in == nil { - *out = nil - } else { - *out = new(bool) - **out = **in - } + *out = new(bool) + **out = **in } return } @@ -677,21 +654,13 @@ func (in *ConfigMapVolumeSource) DeepCopyInto(out *ConfigMapVolumeSource) { } if in.DefaultMode != nil { in, out := &in.DefaultMode, &out.DefaultMode - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } if in.Optional != nil { in, out := &in.Optional, &out.Optional - if *in == nil { - *out = nil - } else { - *out = new(bool) - **out = **in - } + *out = new(bool) + **out = **in } return } @@ -753,39 +722,23 @@ func (in *Container) DeepCopyInto(out *Container) { } if in.LivenessProbe != nil { in, out := &in.LivenessProbe, &out.LivenessProbe - if *in == nil { - *out = nil - } else { - *out = new(Probe) - (*in).DeepCopyInto(*out) - } + *out = new(Probe) + (*in).DeepCopyInto(*out) } if in.ReadinessProbe != nil { in, out := &in.ReadinessProbe, &out.ReadinessProbe - if *in == nil { - *out = nil - } else { - *out = new(Probe) - (*in).DeepCopyInto(*out) - } + *out = new(Probe) + (*in).DeepCopyInto(*out) } if in.Lifecycle != nil { in, out := &in.Lifecycle, &out.Lifecycle - if *in == nil { - *out = nil - } else { - *out = new(Lifecycle) - (*in).DeepCopyInto(*out) - } + *out = new(Lifecycle) + (*in).DeepCopyInto(*out) } if in.SecurityContext != nil { in, out := &in.SecurityContext, &out.SecurityContext - if *in == nil { - *out = nil - } else { - *out = new(SecurityContext) - (*in).DeepCopyInto(*out) - } + *out = new(SecurityContext) + (*in).DeepCopyInto(*out) } return } @@ -842,30 +795,18 @@ func (in *ContainerState) DeepCopyInto(out *ContainerState) { *out = *in if in.Waiting != nil { in, out := &in.Waiting, &out.Waiting - if *in == nil { - *out = nil - } else { - *out = new(ContainerStateWaiting) - **out = **in - } + *out = new(ContainerStateWaiting) + **out = **in } if in.Running != nil { in, out := &in.Running, &out.Running - if *in == nil { - *out = nil - } else { - *out = new(ContainerStateRunning) - (*in).DeepCopyInto(*out) - } + *out = new(ContainerStateRunning) + (*in).DeepCopyInto(*out) } if in.Terminated != nil { in, out := &in.Terminated, &out.Terminated - if *in == nil { - *out = nil - } else { - *out = new(ContainerStateTerminated) - (*in).DeepCopyInto(*out) - } + *out = new(ContainerStateTerminated) + (*in).DeepCopyInto(*out) } return } @@ -965,67 +906,6 @@ func (in *DaemonEndpoint) DeepCopy() *DaemonEndpoint { return out } -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DeleteOptions) DeepCopyInto(out *DeleteOptions) { - *out = *in - out.TypeMeta = in.TypeMeta - if in.GracePeriodSeconds != nil { - in, out := &in.GracePeriodSeconds, &out.GracePeriodSeconds - if *in == nil { - *out = nil - } else { - *out = new(int64) - **out = **in - } - } - if in.Preconditions != nil { - in, out := &in.Preconditions, &out.Preconditions - if *in == nil { - *out = nil - } else { - *out = new(Preconditions) - (*in).DeepCopyInto(*out) - } - } - if in.OrphanDependents != nil { - in, out := &in.OrphanDependents, &out.OrphanDependents - if *in == nil { - *out = nil - } else { - *out = new(bool) - **out = **in - } - } - if in.PropagationPolicy != nil { - in, out := &in.PropagationPolicy, &out.PropagationPolicy - if *in == nil { - *out = nil - } else { - *out = new(DeletionPropagation) - **out = **in - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeleteOptions. -func (in *DeleteOptions) DeepCopy() *DeleteOptions { - if in == nil { - return nil - } - out := new(DeleteOptions) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *DeleteOptions) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *DownwardAPIProjection) DeepCopyInto(out *DownwardAPIProjection) { *out = *in @@ -1054,30 +934,18 @@ func (in *DownwardAPIVolumeFile) DeepCopyInto(out *DownwardAPIVolumeFile) { *out = *in if in.FieldRef != nil { in, out := &in.FieldRef, &out.FieldRef - if *in == nil { - *out = nil - } else { - *out = new(ObjectFieldSelector) - **out = **in - } + *out = new(ObjectFieldSelector) + **out = **in } if in.ResourceFieldRef != nil { in, out := &in.ResourceFieldRef, &out.ResourceFieldRef - if *in == nil { - *out = nil - } else { - *out = new(ResourceFieldSelector) - (*in).DeepCopyInto(*out) - } + *out = new(ResourceFieldSelector) + (*in).DeepCopyInto(*out) } if in.Mode != nil { in, out := &in.Mode, &out.Mode - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } return } @@ -1104,12 +972,8 @@ func (in *DownwardAPIVolumeSource) DeepCopyInto(out *DownwardAPIVolumeSource) { } if in.DefaultMode != nil { in, out := &in.DefaultMode, &out.DefaultMode - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } return } @@ -1129,12 +993,8 @@ func (in *EmptyDirVolumeSource) DeepCopyInto(out *EmptyDirVolumeSource) { *out = *in if in.SizeLimit != nil { in, out := &in.SizeLimit, &out.SizeLimit - if *in == nil { - *out = nil - } else { - x := (*in).DeepCopy() - *out = &x - } + x := (*in).DeepCopy() + *out = &x } return } @@ -1154,21 +1014,13 @@ func (in *EndpointAddress) DeepCopyInto(out *EndpointAddress) { *out = *in if in.NodeName != nil { in, out := &in.NodeName, &out.NodeName - if *in == nil { - *out = nil - } else { - *out = new(string) - **out = **in - } + *out = new(string) + **out = **in } if in.TargetRef != nil { in, out := &in.TargetRef, &out.TargetRef - if *in == nil { - *out = nil - } else { - *out = new(ObjectReference) - **out = **in - } + *out = new(ObjectReference) + **out = **in } return } @@ -1305,21 +1157,13 @@ func (in *EnvFromSource) DeepCopyInto(out *EnvFromSource) { *out = *in if in.ConfigMapRef != nil { in, out := &in.ConfigMapRef, &out.ConfigMapRef - if *in == nil { - *out = nil - } else { - *out = new(ConfigMapEnvSource) - (*in).DeepCopyInto(*out) - } + *out = new(ConfigMapEnvSource) + (*in).DeepCopyInto(*out) } if in.SecretRef != nil { in, out := &in.SecretRef, &out.SecretRef - if *in == nil { - *out = nil - } else { - *out = new(SecretEnvSource) - (*in).DeepCopyInto(*out) - } + *out = new(SecretEnvSource) + (*in).DeepCopyInto(*out) } return } @@ -1339,12 +1183,8 @@ func (in *EnvVar) DeepCopyInto(out *EnvVar) { *out = *in if in.ValueFrom != nil { in, out := &in.ValueFrom, &out.ValueFrom - if *in == nil { - *out = nil - } else { - *out = new(EnvVarSource) - (*in).DeepCopyInto(*out) - } + *out = new(EnvVarSource) + (*in).DeepCopyInto(*out) } return } @@ -1364,39 +1204,23 @@ func (in *EnvVarSource) DeepCopyInto(out *EnvVarSource) { *out = *in if in.FieldRef != nil { in, out := &in.FieldRef, &out.FieldRef - if *in == nil { - *out = nil - } else { - *out = new(ObjectFieldSelector) - **out = **in - } + *out = new(ObjectFieldSelector) + **out = **in } if in.ResourceFieldRef != nil { in, out := &in.ResourceFieldRef, &out.ResourceFieldRef - if *in == nil { - *out = nil - } else { - *out = new(ResourceFieldSelector) - (*in).DeepCopyInto(*out) - } + *out = new(ResourceFieldSelector) + (*in).DeepCopyInto(*out) } if in.ConfigMapKeyRef != nil { in, out := &in.ConfigMapKeyRef, &out.ConfigMapKeyRef - if *in == nil { - *out = nil - } else { - *out = new(ConfigMapKeySelector) - (*in).DeepCopyInto(*out) - } + *out = new(ConfigMapKeySelector) + (*in).DeepCopyInto(*out) } if in.SecretKeyRef != nil { in, out := &in.SecretKeyRef, &out.SecretKeyRef - if *in == nil { - *out = nil - } else { - *out = new(SecretKeySelector) - (*in).DeepCopyInto(*out) - } + *out = new(SecretKeySelector) + (*in).DeepCopyInto(*out) } return } @@ -1423,21 +1247,13 @@ func (in *Event) DeepCopyInto(out *Event) { in.EventTime.DeepCopyInto(&out.EventTime) if in.Series != nil { in, out := &in.Series, &out.Series - if *in == nil { - *out = nil - } else { - *out = new(EventSeries) - (*in).DeepCopyInto(*out) - } + *out = new(EventSeries) + (*in).DeepCopyInto(*out) } if in.Related != nil { in, out := &in.Related, &out.Related - if *in == nil { - *out = nil - } else { - *out = new(ObjectReference) - **out = **in - } + *out = new(ObjectReference) + **out = **in } return } @@ -1557,12 +1373,8 @@ func (in *FCVolumeSource) DeepCopyInto(out *FCVolumeSource) { } if in.Lun != nil { in, out := &in.Lun, &out.Lun - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } if in.WWIDs != nil { in, out := &in.WWIDs, &out.WWIDs @@ -1587,12 +1399,8 @@ func (in *FlexPersistentVolumeSource) DeepCopyInto(out *FlexPersistentVolumeSour *out = *in if in.SecretRef != nil { in, out := &in.SecretRef, &out.SecretRef - if *in == nil { - *out = nil - } else { - *out = new(SecretReference) - **out = **in - } + *out = new(SecretReference) + **out = **in } if in.Options != nil { in, out := &in.Options, &out.Options @@ -1619,12 +1427,8 @@ func (in *FlexVolumeSource) DeepCopyInto(out *FlexVolumeSource) { *out = *in if in.SecretRef != nil { in, out := &in.SecretRef, &out.SecretRef - if *in == nil { - *out = nil - } else { - *out = new(LocalObjectReference) - **out = **in - } + *out = new(LocalObjectReference) + **out = **in } if in.Options != nil { in, out := &in.Options, &out.Options @@ -1694,6 +1498,27 @@ func (in *GitRepoVolumeSource) DeepCopy() *GitRepoVolumeSource { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *GlusterfsPersistentVolumeSource) DeepCopyInto(out *GlusterfsPersistentVolumeSource) { + *out = *in + if in.EndpointsNamespace != nil { + in, out := &in.EndpointsNamespace, &out.EndpointsNamespace + *out = new(string) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GlusterfsPersistentVolumeSource. +func (in *GlusterfsPersistentVolumeSource) DeepCopy() *GlusterfsPersistentVolumeSource { + if in == nil { + return nil + } + out := new(GlusterfsPersistentVolumeSource) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *GlusterfsVolumeSource) DeepCopyInto(out *GlusterfsVolumeSource) { *out = *in @@ -1753,30 +1578,18 @@ func (in *Handler) DeepCopyInto(out *Handler) { *out = *in if in.Exec != nil { in, out := &in.Exec, &out.Exec - if *in == nil { - *out = nil - } else { - *out = new(ExecAction) - (*in).DeepCopyInto(*out) - } + *out = new(ExecAction) + (*in).DeepCopyInto(*out) } if in.HTTPGet != nil { in, out := &in.HTTPGet, &out.HTTPGet - if *in == nil { - *out = nil - } else { - *out = new(HTTPGetAction) - (*in).DeepCopyInto(*out) - } + *out = new(HTTPGetAction) + (*in).DeepCopyInto(*out) } if in.TCPSocket != nil { in, out := &in.TCPSocket, &out.TCPSocket - if *in == nil { - *out = nil - } else { - *out = new(TCPSocketAction) - **out = **in - } + *out = new(TCPSocketAction) + **out = **in } return } @@ -1817,12 +1630,8 @@ func (in *HostPathVolumeSource) DeepCopyInto(out *HostPathVolumeSource) { *out = *in if in.Type != nil { in, out := &in.Type, &out.Type - if *in == nil { - *out = nil - } else { - *out = new(HostPathType) - **out = **in - } + *out = new(HostPathType) + **out = **in } return } @@ -1847,21 +1656,13 @@ func (in *ISCSIPersistentVolumeSource) DeepCopyInto(out *ISCSIPersistentVolumeSo } if in.SecretRef != nil { in, out := &in.SecretRef, &out.SecretRef - if *in == nil { - *out = nil - } else { - *out = new(SecretReference) - **out = **in - } + *out = new(SecretReference) + **out = **in } if in.InitiatorName != nil { in, out := &in.InitiatorName, &out.InitiatorName - if *in == nil { - *out = nil - } else { - *out = new(string) - **out = **in - } + *out = new(string) + **out = **in } return } @@ -1886,21 +1687,13 @@ func (in *ISCSIVolumeSource) DeepCopyInto(out *ISCSIVolumeSource) { } if in.SecretRef != nil { in, out := &in.SecretRef, &out.SecretRef - if *in == nil { - *out = nil - } else { - *out = new(LocalObjectReference) - **out = **in - } + *out = new(LocalObjectReference) + **out = **in } if in.InitiatorName != nil { in, out := &in.InitiatorName, &out.InitiatorName - if *in == nil { - *out = nil - } else { - *out = new(string) - **out = **in - } + *out = new(string) + **out = **in } return } @@ -1920,12 +1713,8 @@ func (in *KeyToPath) DeepCopyInto(out *KeyToPath) { *out = *in if in.Mode != nil { in, out := &in.Mode, &out.Mode - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } return } @@ -1945,21 +1734,13 @@ func (in *Lifecycle) DeepCopyInto(out *Lifecycle) { *out = *in if in.PostStart != nil { in, out := &in.PostStart, &out.PostStart - if *in == nil { - *out = nil - } else { - *out = new(Handler) - (*in).DeepCopyInto(*out) - } + *out = new(Handler) + (*in).DeepCopyInto(*out) } if in.PreStop != nil { in, out := &in.PreStop, &out.PreStop - if *in == nil { - *out = nil - } else { - *out = new(Handler) - (*in).DeepCopyInto(*out) - } + *out = new(Handler) + (*in).DeepCopyInto(*out) } return } @@ -2141,40 +1922,6 @@ func (in *List) DeepCopyObject() runtime.Object { return nil } -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ListOptions) DeepCopyInto(out *ListOptions) { - *out = *in - out.TypeMeta = in.TypeMeta - if in.TimeoutSeconds != nil { - in, out := &in.TimeoutSeconds, &out.TimeoutSeconds - if *in == nil { - *out = nil - } else { - *out = new(int64) - **out = **in - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ListOptions. -func (in *ListOptions) DeepCopy() *ListOptions { - if in == nil { - return nil - } - out := new(ListOptions) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ListOptions) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *LoadBalancerIngress) DeepCopyInto(out *LoadBalancerIngress) { *out = *in @@ -2231,6 +1978,11 @@ func (in *LocalObjectReference) DeepCopy() *LocalObjectReference { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *LocalVolumeSource) DeepCopyInto(out *LocalVolumeSource) { *out = *in + if in.FSType != nil { + in, out := &in.FSType, &out.FSType + *out = new(string) + **out = **in + } return } @@ -2407,12 +2159,8 @@ func (in *NodeAffinity) DeepCopyInto(out *NodeAffinity) { *out = *in if in.RequiredDuringSchedulingIgnoredDuringExecution != nil { in, out := &in.RequiredDuringSchedulingIgnoredDuringExecution, &out.RequiredDuringSchedulingIgnoredDuringExecution - if *in == nil { - *out = nil - } else { - *out = new(NodeSelector) - (*in).DeepCopyInto(*out) - } + *out = new(NodeSelector) + (*in).DeepCopyInto(*out) } if in.PreferredDuringSchedulingIgnoredDuringExecution != nil { in, out := &in.PreferredDuringSchedulingIgnoredDuringExecution, &out.PreferredDuringSchedulingIgnoredDuringExecution @@ -2455,15 +2203,10 @@ func (in *NodeCondition) DeepCopy() *NodeCondition { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *NodeConfigSource) DeepCopyInto(out *NodeConfigSource) { *out = *in - out.TypeMeta = in.TypeMeta - if in.ConfigMapRef != nil { - in, out := &in.ConfigMapRef, &out.ConfigMapRef - if *in == nil { - *out = nil - } else { - *out = new(ObjectReference) - **out = **in - } + if in.ConfigMap != nil { + in, out := &in.ConfigMap, &out.ConfigMap + *out = new(ConfigMapNodeConfigSource) + **out = **in } return } @@ -2478,12 +2221,35 @@ func (in *NodeConfigSource) DeepCopy() *NodeConfigSource { return out } -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *NodeConfigSource) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodeConfigStatus) DeepCopyInto(out *NodeConfigStatus) { + *out = *in + if in.Assigned != nil { + in, out := &in.Assigned, &out.Assigned + *out = new(NodeConfigSource) + (*in).DeepCopyInto(*out) } - return nil + if in.Active != nil { + in, out := &in.Active, &out.Active + *out = new(NodeConfigSource) + (*in).DeepCopyInto(*out) + } + if in.LastKnownGood != nil { + in, out := &in.LastKnownGood, &out.LastKnownGood + *out = new(NodeConfigSource) + (*in).DeepCopyInto(*out) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeConfigStatus. +func (in *NodeConfigStatus) DeepCopy() *NodeConfigStatus { + if in == nil { + return nil + } + out := new(NodeConfigStatus) + in.DeepCopyInto(out) + return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. @@ -2638,6 +2404,13 @@ func (in *NodeSelectorTerm) DeepCopyInto(out *NodeSelectorTerm) { (*in)[i].DeepCopyInto(&(*out)[i]) } } + if in.MatchFields != nil { + in, out := &in.MatchFields, &out.MatchFields + *out = make([]NodeSelectorRequirement, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } return } @@ -2663,12 +2436,8 @@ func (in *NodeSpec) DeepCopyInto(out *NodeSpec) { } if in.ConfigSource != nil { in, out := &in.ConfigSource, &out.ConfigSource - if *in == nil { - *out = nil - } else { - *out = new(NodeConfigSource) - (*in).DeepCopyInto(*out) - } + *out = new(NodeConfigSource) + (*in).DeepCopyInto(*out) } return } @@ -2731,6 +2500,11 @@ func (in *NodeStatus) DeepCopyInto(out *NodeStatus) { *out = make([]AttachedVolume, len(*in)) copy(*out, *in) } + if in.Config != nil { + in, out := &in.Config, &out.Config + *out = new(NodeConfigStatus) + (*in).DeepCopyInto(*out) + } return } @@ -2776,75 +2550,6 @@ func (in *ObjectFieldSelector) DeepCopy() *ObjectFieldSelector { return out } -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ObjectMeta) DeepCopyInto(out *ObjectMeta) { - *out = *in - in.CreationTimestamp.DeepCopyInto(&out.CreationTimestamp) - if in.DeletionTimestamp != nil { - in, out := &in.DeletionTimestamp, &out.DeletionTimestamp - if *in == nil { - *out = nil - } else { - *out = (*in).DeepCopy() - } - } - if in.DeletionGracePeriodSeconds != nil { - in, out := &in.DeletionGracePeriodSeconds, &out.DeletionGracePeriodSeconds - if *in == nil { - *out = nil - } else { - *out = new(int64) - **out = **in - } - } - if in.Labels != nil { - in, out := &in.Labels, &out.Labels - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - if in.Annotations != nil { - in, out := &in.Annotations, &out.Annotations - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - if in.OwnerReferences != nil { - in, out := &in.OwnerReferences, &out.OwnerReferences - *out = make([]meta_v1.OwnerReference, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.Initializers != nil { - in, out := &in.Initializers, &out.Initializers - if *in == nil { - *out = nil - } else { - *out = new(meta_v1.Initializers) - (*in).DeepCopyInto(*out) - } - } - if in.Finalizers != nil { - in, out := &in.Finalizers, &out.Finalizers - *out = make([]string, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectMeta. -func (in *ObjectMeta) DeepCopy() *ObjectMeta { - if in == nil { - return nil - } - out := new(ObjectMeta) - in.DeepCopyInto(out) - return out -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ObjectReference) DeepCopyInto(out *ObjectReference) { *out = *in @@ -2986,31 +2691,24 @@ func (in *PersistentVolumeClaimSpec) DeepCopyInto(out *PersistentVolumeClaimSpec } if in.Selector != nil { in, out := &in.Selector, &out.Selector - if *in == nil { - *out = nil - } else { - *out = new(meta_v1.LabelSelector) - (*in).DeepCopyInto(*out) - } + *out = new(metav1.LabelSelector) + (*in).DeepCopyInto(*out) } in.Resources.DeepCopyInto(&out.Resources) if in.StorageClassName != nil { in, out := &in.StorageClassName, &out.StorageClassName - if *in == nil { - *out = nil - } else { - *out = new(string) - **out = **in - } + *out = new(string) + **out = **in } if in.VolumeMode != nil { in, out := &in.VolumeMode, &out.VolumeMode - if *in == nil { - *out = nil - } else { - *out = new(PersistentVolumeMode) - **out = **in - } + *out = new(PersistentVolumeMode) + **out = **in + } + if in.DataSource != nil { + in, out := &in.DataSource, &out.DataSource + *out = new(TypedLocalObjectReference) + (*in).DeepCopyInto(*out) } return } @@ -3114,201 +2812,113 @@ func (in *PersistentVolumeSource) DeepCopyInto(out *PersistentVolumeSource) { *out = *in if in.GCEPersistentDisk != nil { in, out := &in.GCEPersistentDisk, &out.GCEPersistentDisk - if *in == nil { - *out = nil - } else { - *out = new(GCEPersistentDiskVolumeSource) - **out = **in - } + *out = new(GCEPersistentDiskVolumeSource) + **out = **in } if in.AWSElasticBlockStore != nil { in, out := &in.AWSElasticBlockStore, &out.AWSElasticBlockStore - if *in == nil { - *out = nil - } else { - *out = new(AWSElasticBlockStoreVolumeSource) - **out = **in - } + *out = new(AWSElasticBlockStoreVolumeSource) + **out = **in } if in.HostPath != nil { in, out := &in.HostPath, &out.HostPath - if *in == nil { - *out = nil - } else { - *out = new(HostPathVolumeSource) - (*in).DeepCopyInto(*out) - } + *out = new(HostPathVolumeSource) + (*in).DeepCopyInto(*out) } if in.Glusterfs != nil { in, out := &in.Glusterfs, &out.Glusterfs - if *in == nil { - *out = nil - } else { - *out = new(GlusterfsVolumeSource) - **out = **in - } + *out = new(GlusterfsPersistentVolumeSource) + (*in).DeepCopyInto(*out) } if in.NFS != nil { in, out := &in.NFS, &out.NFS - if *in == nil { - *out = nil - } else { - *out = new(NFSVolumeSource) - **out = **in - } + *out = new(NFSVolumeSource) + **out = **in } if in.RBD != nil { in, out := &in.RBD, &out.RBD - if *in == nil { - *out = nil - } else { - *out = new(RBDPersistentVolumeSource) - (*in).DeepCopyInto(*out) - } + *out = new(RBDPersistentVolumeSource) + (*in).DeepCopyInto(*out) } if in.ISCSI != nil { in, out := &in.ISCSI, &out.ISCSI - if *in == nil { - *out = nil - } else { - *out = new(ISCSIPersistentVolumeSource) - (*in).DeepCopyInto(*out) - } + *out = new(ISCSIPersistentVolumeSource) + (*in).DeepCopyInto(*out) } if in.Cinder != nil { in, out := &in.Cinder, &out.Cinder - if *in == nil { - *out = nil - } else { - *out = new(CinderVolumeSource) - **out = **in - } + *out = new(CinderPersistentVolumeSource) + (*in).DeepCopyInto(*out) } if in.CephFS != nil { in, out := &in.CephFS, &out.CephFS - if *in == nil { - *out = nil - } else { - *out = new(CephFSPersistentVolumeSource) - (*in).DeepCopyInto(*out) - } + *out = new(CephFSPersistentVolumeSource) + (*in).DeepCopyInto(*out) } if in.FC != nil { in, out := &in.FC, &out.FC - if *in == nil { - *out = nil - } else { - *out = new(FCVolumeSource) - (*in).DeepCopyInto(*out) - } + *out = new(FCVolumeSource) + (*in).DeepCopyInto(*out) } if in.Flocker != nil { in, out := &in.Flocker, &out.Flocker - if *in == nil { - *out = nil - } else { - *out = new(FlockerVolumeSource) - **out = **in - } + *out = new(FlockerVolumeSource) + **out = **in } if in.FlexVolume != nil { in, out := &in.FlexVolume, &out.FlexVolume - if *in == nil { - *out = nil - } else { - *out = new(FlexPersistentVolumeSource) - (*in).DeepCopyInto(*out) - } + *out = new(FlexPersistentVolumeSource) + (*in).DeepCopyInto(*out) } if in.AzureFile != nil { in, out := &in.AzureFile, &out.AzureFile - if *in == nil { - *out = nil - } else { - *out = new(AzureFilePersistentVolumeSource) - (*in).DeepCopyInto(*out) - } + *out = new(AzureFilePersistentVolumeSource) + (*in).DeepCopyInto(*out) } if in.VsphereVolume != nil { in, out := &in.VsphereVolume, &out.VsphereVolume - if *in == nil { - *out = nil - } else { - *out = new(VsphereVirtualDiskVolumeSource) - **out = **in - } + *out = new(VsphereVirtualDiskVolumeSource) + **out = **in } if in.Quobyte != nil { in, out := &in.Quobyte, &out.Quobyte - if *in == nil { - *out = nil - } else { - *out = new(QuobyteVolumeSource) - **out = **in - } + *out = new(QuobyteVolumeSource) + **out = **in } if in.AzureDisk != nil { in, out := &in.AzureDisk, &out.AzureDisk - if *in == nil { - *out = nil - } else { - *out = new(AzureDiskVolumeSource) - (*in).DeepCopyInto(*out) - } + *out = new(AzureDiskVolumeSource) + (*in).DeepCopyInto(*out) } if in.PhotonPersistentDisk != nil { in, out := &in.PhotonPersistentDisk, &out.PhotonPersistentDisk - if *in == nil { - *out = nil - } else { - *out = new(PhotonPersistentDiskVolumeSource) - **out = **in - } + *out = new(PhotonPersistentDiskVolumeSource) + **out = **in } if in.PortworxVolume != nil { in, out := &in.PortworxVolume, &out.PortworxVolume - if *in == nil { - *out = nil - } else { - *out = new(PortworxVolumeSource) - **out = **in - } + *out = new(PortworxVolumeSource) + **out = **in } if in.ScaleIO != nil { in, out := &in.ScaleIO, &out.ScaleIO - if *in == nil { - *out = nil - } else { - *out = new(ScaleIOPersistentVolumeSource) - (*in).DeepCopyInto(*out) - } + *out = new(ScaleIOPersistentVolumeSource) + (*in).DeepCopyInto(*out) } if in.Local != nil { in, out := &in.Local, &out.Local - if *in == nil { - *out = nil - } else { - *out = new(LocalVolumeSource) - **out = **in - } + *out = new(LocalVolumeSource) + (*in).DeepCopyInto(*out) } if in.StorageOS != nil { in, out := &in.StorageOS, &out.StorageOS - if *in == nil { - *out = nil - } else { - *out = new(StorageOSPersistentVolumeSource) - (*in).DeepCopyInto(*out) - } + *out = new(StorageOSPersistentVolumeSource) + (*in).DeepCopyInto(*out) } if in.CSI != nil { in, out := &in.CSI, &out.CSI - if *in == nil { - *out = nil - } else { - *out = new(CSIPersistentVolumeSource) - (*in).DeepCopyInto(*out) - } + *out = new(CSIPersistentVolumeSource) + (*in).DeepCopyInto(*out) } return } @@ -3341,12 +2951,8 @@ func (in *PersistentVolumeSpec) DeepCopyInto(out *PersistentVolumeSpec) { } if in.ClaimRef != nil { in, out := &in.ClaimRef, &out.ClaimRef - if *in == nil { - *out = nil - } else { - *out = new(ObjectReference) - **out = **in - } + *out = new(ObjectReference) + **out = **in } if in.MountOptions != nil { in, out := &in.MountOptions, &out.MountOptions @@ -3355,21 +2961,13 @@ func (in *PersistentVolumeSpec) DeepCopyInto(out *PersistentVolumeSpec) { } if in.VolumeMode != nil { in, out := &in.VolumeMode, &out.VolumeMode - if *in == nil { - *out = nil - } else { - *out = new(PersistentVolumeMode) - **out = **in - } + *out = new(PersistentVolumeMode) + **out = **in } if in.NodeAffinity != nil { in, out := &in.NodeAffinity, &out.NodeAffinity - if *in == nil { - *out = nil - } else { - *out = new(VolumeNodeAffinity) - (*in).DeepCopyInto(*out) - } + *out = new(VolumeNodeAffinity) + (*in).DeepCopyInto(*out) } return } @@ -3479,12 +3077,8 @@ func (in *PodAffinityTerm) DeepCopyInto(out *PodAffinityTerm) { *out = *in if in.LabelSelector != nil { in, out := &in.LabelSelector, &out.LabelSelector - if *in == nil { - *out = nil - } else { - *out = new(meta_v1.LabelSelector) - (*in).DeepCopyInto(*out) - } + *out = new(metav1.LabelSelector) + (*in).DeepCopyInto(*out) } if in.Namespaces != nil { in, out := &in.Namespaces, &out.Namespaces @@ -3615,12 +3209,8 @@ func (in *PodDNSConfigOption) DeepCopyInto(out *PodDNSConfigOption) { *out = *in if in.Value != nil { in, out := &in.Value, &out.Value - if *in == nil { - *out = nil - } else { - *out = new(string) - **out = **in - } + *out = new(string) + **out = **in } return } @@ -3704,38 +3294,22 @@ func (in *PodLogOptions) DeepCopyInto(out *PodLogOptions) { out.TypeMeta = in.TypeMeta if in.SinceSeconds != nil { in, out := &in.SinceSeconds, &out.SinceSeconds - if *in == nil { - *out = nil - } else { - *out = new(int64) - **out = **in - } + *out = new(int64) + **out = **in } if in.SinceTime != nil { in, out := &in.SinceTime, &out.SinceTime - if *in == nil { - *out = nil - } else { - *out = (*in).DeepCopy() - } + *out = (*in).DeepCopy() } if in.TailLines != nil { in, out := &in.TailLines, &out.TailLines - if *in == nil { - *out = nil - } else { - *out = new(int64) - **out = **in - } + *out = new(int64) + **out = **in } if in.LimitBytes != nil { in, out := &in.LimitBytes, &out.LimitBytes - if *in == nil { - *out = nil - } else { - *out = new(int64) - **out = **in - } + *out = new(int64) + **out = **in } return } @@ -3813,35 +3387,44 @@ func (in *PodProxyOptions) DeepCopyObject() runtime.Object { return nil } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PodReadinessGate) DeepCopyInto(out *PodReadinessGate) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodReadinessGate. +func (in *PodReadinessGate) DeepCopy() *PodReadinessGate { + if in == nil { + return nil + } + out := new(PodReadinessGate) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *PodSecurityContext) DeepCopyInto(out *PodSecurityContext) { *out = *in if in.SELinuxOptions != nil { in, out := &in.SELinuxOptions, &out.SELinuxOptions - if *in == nil { - *out = nil - } else { - *out = new(SELinuxOptions) - **out = **in - } + *out = new(SELinuxOptions) + **out = **in } if in.RunAsUser != nil { in, out := &in.RunAsUser, &out.RunAsUser - if *in == nil { - *out = nil - } else { - *out = new(int64) - **out = **in - } + *out = new(int64) + **out = **in + } + if in.RunAsGroup != nil { + in, out := &in.RunAsGroup, &out.RunAsGroup + *out = new(int64) + **out = **in } if in.RunAsNonRoot != nil { in, out := &in.RunAsNonRoot, &out.RunAsNonRoot - if *in == nil { - *out = nil - } else { - *out = new(bool) - **out = **in - } + *out = new(bool) + **out = **in } if in.SupplementalGroups != nil { in, out := &in.SupplementalGroups, &out.SupplementalGroups @@ -3850,12 +3433,13 @@ func (in *PodSecurityContext) DeepCopyInto(out *PodSecurityContext) { } if in.FSGroup != nil { in, out := &in.FSGroup, &out.FSGroup - if *in == nil { - *out = nil - } else { - *out = new(int64) - **out = **in - } + *out = new(int64) + **out = **in + } + if in.Sysctls != nil { + in, out := &in.Sysctls, &out.Sysctls + *out = make([]Sysctl, len(*in)) + copy(*out, *in) } return } @@ -3875,12 +3459,8 @@ func (in *PodSignature) DeepCopyInto(out *PodSignature) { *out = *in if in.PodController != nil { in, out := &in.PodController, &out.PodController - if *in == nil { - *out = nil - } else { - *out = new(meta_v1.OwnerReference) - (*in).DeepCopyInto(*out) - } + *out = new(metav1.OwnerReference) + (*in).DeepCopyInto(*out) } return } @@ -3921,21 +3501,13 @@ func (in *PodSpec) DeepCopyInto(out *PodSpec) { } if in.TerminationGracePeriodSeconds != nil { in, out := &in.TerminationGracePeriodSeconds, &out.TerminationGracePeriodSeconds - if *in == nil { - *out = nil - } else { - *out = new(int64) - **out = **in - } + *out = new(int64) + **out = **in } if in.ActiveDeadlineSeconds != nil { in, out := &in.ActiveDeadlineSeconds, &out.ActiveDeadlineSeconds - if *in == nil { - *out = nil - } else { - *out = new(int64) - **out = **in - } + *out = new(int64) + **out = **in } if in.NodeSelector != nil { in, out := &in.NodeSelector, &out.NodeSelector @@ -3946,30 +3518,18 @@ func (in *PodSpec) DeepCopyInto(out *PodSpec) { } if in.AutomountServiceAccountToken != nil { in, out := &in.AutomountServiceAccountToken, &out.AutomountServiceAccountToken - if *in == nil { - *out = nil - } else { - *out = new(bool) - **out = **in - } + *out = new(bool) + **out = **in } if in.ShareProcessNamespace != nil { in, out := &in.ShareProcessNamespace, &out.ShareProcessNamespace - if *in == nil { - *out = nil - } else { - *out = new(bool) - **out = **in - } + *out = new(bool) + **out = **in } if in.SecurityContext != nil { in, out := &in.SecurityContext, &out.SecurityContext - if *in == nil { - *out = nil - } else { - *out = new(PodSecurityContext) - (*in).DeepCopyInto(*out) - } + *out = new(PodSecurityContext) + (*in).DeepCopyInto(*out) } if in.ImagePullSecrets != nil { in, out := &in.ImagePullSecrets, &out.ImagePullSecrets @@ -3978,12 +3538,8 @@ func (in *PodSpec) DeepCopyInto(out *PodSpec) { } if in.Affinity != nil { in, out := &in.Affinity, &out.Affinity - if *in == nil { - *out = nil - } else { - *out = new(Affinity) - (*in).DeepCopyInto(*out) - } + *out = new(Affinity) + (*in).DeepCopyInto(*out) } if in.Tolerations != nil { in, out := &in.Tolerations, &out.Tolerations @@ -4001,21 +3557,28 @@ func (in *PodSpec) DeepCopyInto(out *PodSpec) { } if in.Priority != nil { in, out := &in.Priority, &out.Priority - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } if in.DNSConfig != nil { in, out := &in.DNSConfig, &out.DNSConfig - if *in == nil { - *out = nil - } else { - *out = new(PodDNSConfig) - (*in).DeepCopyInto(*out) - } + *out = new(PodDNSConfig) + (*in).DeepCopyInto(*out) + } + if in.ReadinessGates != nil { + in, out := &in.ReadinessGates, &out.ReadinessGates + *out = make([]PodReadinessGate, len(*in)) + copy(*out, *in) + } + if in.RuntimeClassName != nil { + in, out := &in.RuntimeClassName, &out.RuntimeClassName + *out = new(string) + **out = **in + } + if in.EnableServiceLinks != nil { + in, out := &in.EnableServiceLinks, &out.EnableServiceLinks + *out = new(bool) + **out = **in } return } @@ -4042,11 +3605,7 @@ func (in *PodStatus) DeepCopyInto(out *PodStatus) { } if in.StartTime != nil { in, out := &in.StartTime, &out.StartTime - if *in == nil { - *out = nil - } else { - *out = (*in).DeepCopy() - } + *out = (*in).DeepCopy() } if in.InitContainerStatuses != nil { in, out := &in.InitContainerStatuses, &out.InitContainerStatuses @@ -4201,12 +3760,8 @@ func (in *Preconditions) DeepCopyInto(out *Preconditions) { *out = *in if in.UID != nil { in, out := &in.UID, &out.UID - if *in == nil { - *out = nil - } else { - *out = new(types.UID) - **out = **in - } + *out = new(types.UID) + **out = **in } return } @@ -4285,12 +3840,8 @@ func (in *ProjectedVolumeSource) DeepCopyInto(out *ProjectedVolumeSource) { } if in.DefaultMode != nil { in, out := &in.DefaultMode, &out.DefaultMode - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } return } @@ -4331,12 +3882,8 @@ func (in *RBDPersistentVolumeSource) DeepCopyInto(out *RBDPersistentVolumeSource } if in.SecretRef != nil { in, out := &in.SecretRef, &out.SecretRef - if *in == nil { - *out = nil - } else { - *out = new(SecretReference) - **out = **in - } + *out = new(SecretReference) + **out = **in } return } @@ -4361,12 +3908,8 @@ func (in *RBDVolumeSource) DeepCopyInto(out *RBDVolumeSource) { } if in.SecretRef != nil { in, out := &in.SecretRef, &out.SecretRef - if *in == nil { - *out = nil - } else { - *out = new(LocalObjectReference) - **out = **in - } + *out = new(LocalObjectReference) + **out = **in } return } @@ -4495,12 +4038,8 @@ func (in *ReplicationControllerSpec) DeepCopyInto(out *ReplicationControllerSpec *out = *in if in.Replicas != nil { in, out := &in.Replicas, &out.Replicas - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } if in.Selector != nil { in, out := &in.Selector, &out.Selector @@ -4511,12 +4050,8 @@ func (in *ReplicationControllerSpec) DeepCopyInto(out *ReplicationControllerSpec } if in.Template != nil { in, out := &in.Template, &out.Template - if *in == nil { - *out = nil - } else { - *out = new(PodTemplateSpec) - (*in).DeepCopyInto(*out) - } + *out = new(PodTemplateSpec) + (*in).DeepCopyInto(*out) } return } @@ -4669,6 +4204,11 @@ func (in *ResourceQuotaSpec) DeepCopyInto(out *ResourceQuotaSpec) { *out = make([]ResourceQuotaScope, len(*in)) copy(*out, *in) } + if in.ScopeSelector != nil { + in, out := &in.ScopeSelector, &out.ScopeSelector + *out = new(ScopeSelector) + (*in).DeepCopyInto(*out) + } return } @@ -4763,12 +4303,8 @@ func (in *ScaleIOPersistentVolumeSource) DeepCopyInto(out *ScaleIOPersistentVolu *out = *in if in.SecretRef != nil { in, out := &in.SecretRef, &out.SecretRef - if *in == nil { - *out = nil - } else { - *out = new(SecretReference) - **out = **in - } + *out = new(SecretReference) + **out = **in } return } @@ -4788,12 +4324,8 @@ func (in *ScaleIOVolumeSource) DeepCopyInto(out *ScaleIOVolumeSource) { *out = *in if in.SecretRef != nil { in, out := &in.SecretRef, &out.SecretRef - if *in == nil { - *out = nil - } else { - *out = new(LocalObjectReference) - **out = **in - } + *out = new(LocalObjectReference) + **out = **in } return } @@ -4808,6 +4340,50 @@ func (in *ScaleIOVolumeSource) DeepCopy() *ScaleIOVolumeSource { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ScopeSelector) DeepCopyInto(out *ScopeSelector) { + *out = *in + if in.MatchExpressions != nil { + in, out := &in.MatchExpressions, &out.MatchExpressions + *out = make([]ScopedResourceSelectorRequirement, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScopeSelector. +func (in *ScopeSelector) DeepCopy() *ScopeSelector { + if in == nil { + return nil + } + out := new(ScopeSelector) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ScopedResourceSelectorRequirement) DeepCopyInto(out *ScopedResourceSelectorRequirement) { + *out = *in + if in.Values != nil { + in, out := &in.Values, &out.Values + *out = make([]string, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScopedResourceSelectorRequirement. +func (in *ScopedResourceSelectorRequirement) DeepCopy() *ScopedResourceSelectorRequirement { + if in == nil { + return nil + } + out := new(ScopedResourceSelectorRequirement) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Secret) DeepCopyInto(out *Secret) { *out = *in @@ -4817,12 +4393,15 @@ func (in *Secret) DeepCopyInto(out *Secret) { in, out := &in.Data, &out.Data *out = make(map[string][]byte, len(*in)) for key, val := range *in { + var outVal []byte if val == nil { (*out)[key] = nil } else { - (*out)[key] = make([]byte, len(val)) - copy((*out)[key], val) + in, out := &val, &outVal + *out = make([]byte, len(*in)) + copy(*out, *in) } + (*out)[key] = outVal } } if in.StringData != nil { @@ -4859,12 +4438,8 @@ func (in *SecretEnvSource) DeepCopyInto(out *SecretEnvSource) { out.LocalObjectReference = in.LocalObjectReference if in.Optional != nil { in, out := &in.Optional, &out.Optional - if *in == nil { - *out = nil - } else { - *out = new(bool) - **out = **in - } + *out = new(bool) + **out = **in } return } @@ -4885,12 +4460,8 @@ func (in *SecretKeySelector) DeepCopyInto(out *SecretKeySelector) { out.LocalObjectReference = in.LocalObjectReference if in.Optional != nil { in, out := &in.Optional, &out.Optional - if *in == nil { - *out = nil - } else { - *out = new(bool) - **out = **in - } + *out = new(bool) + **out = **in } return } @@ -4951,12 +4522,8 @@ func (in *SecretProjection) DeepCopyInto(out *SecretProjection) { } if in.Optional != nil { in, out := &in.Optional, &out.Optional - if *in == nil { - *out = nil - } else { - *out = new(bool) - **out = **in - } + *out = new(bool) + **out = **in } return } @@ -4999,21 +4566,13 @@ func (in *SecretVolumeSource) DeepCopyInto(out *SecretVolumeSource) { } if in.DefaultMode != nil { in, out := &in.DefaultMode, &out.DefaultMode - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } if in.Optional != nil { in, out := &in.Optional, &out.Optional - if *in == nil { - *out = nil - } else { - *out = new(bool) - **out = **in - } + *out = new(bool) + **out = **in } return } @@ -5033,66 +4592,48 @@ func (in *SecurityContext) DeepCopyInto(out *SecurityContext) { *out = *in if in.Capabilities != nil { in, out := &in.Capabilities, &out.Capabilities - if *in == nil { - *out = nil - } else { - *out = new(Capabilities) - (*in).DeepCopyInto(*out) - } + *out = new(Capabilities) + (*in).DeepCopyInto(*out) } if in.Privileged != nil { in, out := &in.Privileged, &out.Privileged - if *in == nil { - *out = nil - } else { - *out = new(bool) - **out = **in - } + *out = new(bool) + **out = **in } if in.SELinuxOptions != nil { in, out := &in.SELinuxOptions, &out.SELinuxOptions - if *in == nil { - *out = nil - } else { - *out = new(SELinuxOptions) - **out = **in - } + *out = new(SELinuxOptions) + **out = **in } if in.RunAsUser != nil { in, out := &in.RunAsUser, &out.RunAsUser - if *in == nil { - *out = nil - } else { - *out = new(int64) - **out = **in - } + *out = new(int64) + **out = **in + } + if in.RunAsGroup != nil { + in, out := &in.RunAsGroup, &out.RunAsGroup + *out = new(int64) + **out = **in } if in.RunAsNonRoot != nil { in, out := &in.RunAsNonRoot, &out.RunAsNonRoot - if *in == nil { - *out = nil - } else { - *out = new(bool) - **out = **in - } + *out = new(bool) + **out = **in } if in.ReadOnlyRootFilesystem != nil { in, out := &in.ReadOnlyRootFilesystem, &out.ReadOnlyRootFilesystem - if *in == nil { - *out = nil - } else { - *out = new(bool) - **out = **in - } + *out = new(bool) + **out = **in } if in.AllowPrivilegeEscalation != nil { in, out := &in.AllowPrivilegeEscalation, &out.AllowPrivilegeEscalation - if *in == nil { - *out = nil - } else { - *out = new(bool) - **out = **in - } + *out = new(bool) + **out = **in + } + if in.ProcMount != nil { + in, out := &in.ProcMount, &out.ProcMount + *out = new(ProcMountType) + **out = **in } return } @@ -5178,12 +4719,8 @@ func (in *ServiceAccount) DeepCopyInto(out *ServiceAccount) { } if in.AutomountServiceAccountToken != nil { in, out := &in.AutomountServiceAccountToken, &out.AutomountServiceAccountToken - if *in == nil { - *out = nil - } else { - *out = new(bool) - **out = **in - } + *out = new(bool) + **out = **in } return } @@ -5239,6 +4776,27 @@ func (in *ServiceAccountList) DeepCopyObject() runtime.Object { return nil } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServiceAccountTokenProjection) DeepCopyInto(out *ServiceAccountTokenProjection) { + *out = *in + if in.ExpirationSeconds != nil { + in, out := &in.ExpirationSeconds, &out.ExpirationSeconds + *out = new(int64) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceAccountTokenProjection. +func (in *ServiceAccountTokenProjection) DeepCopy() *ServiceAccountTokenProjection { + if in == nil { + return nil + } + out := new(ServiceAccountTokenProjection) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ServiceList) DeepCopyInto(out *ServiceList) { *out = *in @@ -5341,12 +4899,8 @@ func (in *ServiceSpec) DeepCopyInto(out *ServiceSpec) { } if in.SessionAffinityConfig != nil { in, out := &in.SessionAffinityConfig, &out.SessionAffinityConfig - if *in == nil { - *out = nil - } else { - *out = new(SessionAffinityConfig) - (*in).DeepCopyInto(*out) - } + *out = new(SessionAffinityConfig) + (*in).DeepCopyInto(*out) } return } @@ -5383,12 +4937,8 @@ func (in *SessionAffinityConfig) DeepCopyInto(out *SessionAffinityConfig) { *out = *in if in.ClientIP != nil { in, out := &in.ClientIP, &out.ClientIP - if *in == nil { - *out = nil - } else { - *out = new(ClientIPConfig) - (*in).DeepCopyInto(*out) - } + *out = new(ClientIPConfig) + (*in).DeepCopyInto(*out) } return } @@ -5408,12 +4958,8 @@ func (in *StorageOSPersistentVolumeSource) DeepCopyInto(out *StorageOSPersistent *out = *in if in.SecretRef != nil { in, out := &in.SecretRef, &out.SecretRef - if *in == nil { - *out = nil - } else { - *out = new(ObjectReference) - **out = **in - } + *out = new(ObjectReference) + **out = **in } return } @@ -5433,12 +4979,8 @@ func (in *StorageOSVolumeSource) DeepCopyInto(out *StorageOSVolumeSource) { *out = *in if in.SecretRef != nil { in, out := &in.SecretRef, &out.SecretRef - if *in == nil { - *out = nil - } else { - *out = new(LocalObjectReference) - **out = **in - } + *out = new(LocalObjectReference) + **out = **in } return } @@ -5491,11 +5033,7 @@ func (in *Taint) DeepCopyInto(out *Taint) { *out = *in if in.TimeAdded != nil { in, out := &in.TimeAdded, &out.TimeAdded - if *in == nil { - *out = nil - } else { - *out = (*in).DeepCopy() - } + *out = (*in).DeepCopy() } return } @@ -5515,12 +5053,8 @@ func (in *Toleration) DeepCopyInto(out *Toleration) { *out = *in if in.TolerationSeconds != nil { in, out := &in.TolerationSeconds, &out.TolerationSeconds - if *in == nil { - *out = nil - } else { - *out = new(int64) - **out = **in - } + *out = new(int64) + **out = **in } return } @@ -5535,6 +5069,71 @@ func (in *Toleration) DeepCopy() *Toleration { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TopologySelectorLabelRequirement) DeepCopyInto(out *TopologySelectorLabelRequirement) { + *out = *in + if in.Values != nil { + in, out := &in.Values, &out.Values + *out = make([]string, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TopologySelectorLabelRequirement. +func (in *TopologySelectorLabelRequirement) DeepCopy() *TopologySelectorLabelRequirement { + if in == nil { + return nil + } + out := new(TopologySelectorLabelRequirement) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TopologySelectorTerm) DeepCopyInto(out *TopologySelectorTerm) { + *out = *in + if in.MatchLabelExpressions != nil { + in, out := &in.MatchLabelExpressions, &out.MatchLabelExpressions + *out = make([]TopologySelectorLabelRequirement, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TopologySelectorTerm. +func (in *TopologySelectorTerm) DeepCopy() *TopologySelectorTerm { + if in == nil { + return nil + } + out := new(TopologySelectorTerm) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TypedLocalObjectReference) DeepCopyInto(out *TypedLocalObjectReference) { + *out = *in + if in.APIGroup != nil { + in, out := &in.APIGroup, &out.APIGroup + *out = new(string) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TypedLocalObjectReference. +func (in *TypedLocalObjectReference) DeepCopy() *TypedLocalObjectReference { + if in == nil { + return nil + } + out := new(TypedLocalObjectReference) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Volume) DeepCopyInto(out *Volume) { *out = *in @@ -5573,12 +5172,8 @@ func (in *VolumeMount) DeepCopyInto(out *VolumeMount) { *out = *in if in.MountPropagation != nil { in, out := &in.MountPropagation, &out.MountPropagation - if *in == nil { - *out = nil - } else { - *out = new(MountPropagationMode) - **out = **in - } + *out = new(MountPropagationMode) + **out = **in } return } @@ -5598,12 +5193,8 @@ func (in *VolumeNodeAffinity) DeepCopyInto(out *VolumeNodeAffinity) { *out = *in if in.Required != nil { in, out := &in.Required, &out.Required - if *in == nil { - *out = nil - } else { - *out = new(NodeSelector) - (*in).DeepCopyInto(*out) - } + *out = new(NodeSelector) + (*in).DeepCopyInto(*out) } return } @@ -5623,30 +5214,23 @@ func (in *VolumeProjection) DeepCopyInto(out *VolumeProjection) { *out = *in if in.Secret != nil { in, out := &in.Secret, &out.Secret - if *in == nil { - *out = nil - } else { - *out = new(SecretProjection) - (*in).DeepCopyInto(*out) - } + *out = new(SecretProjection) + (*in).DeepCopyInto(*out) } if in.DownwardAPI != nil { in, out := &in.DownwardAPI, &out.DownwardAPI - if *in == nil { - *out = nil - } else { - *out = new(DownwardAPIProjection) - (*in).DeepCopyInto(*out) - } + *out = new(DownwardAPIProjection) + (*in).DeepCopyInto(*out) } if in.ConfigMap != nil { in, out := &in.ConfigMap, &out.ConfigMap - if *in == nil { - *out = nil - } else { - *out = new(ConfigMapProjection) - (*in).DeepCopyInto(*out) - } + *out = new(ConfigMapProjection) + (*in).DeepCopyInto(*out) + } + if in.ServiceAccountToken != nil { + in, out := &in.ServiceAccountToken, &out.ServiceAccountToken + *out = new(ServiceAccountTokenProjection) + (*in).DeepCopyInto(*out) } return } @@ -5666,246 +5250,138 @@ func (in *VolumeSource) DeepCopyInto(out *VolumeSource) { *out = *in if in.HostPath != nil { in, out := &in.HostPath, &out.HostPath - if *in == nil { - *out = nil - } else { - *out = new(HostPathVolumeSource) - (*in).DeepCopyInto(*out) - } + *out = new(HostPathVolumeSource) + (*in).DeepCopyInto(*out) } if in.EmptyDir != nil { in, out := &in.EmptyDir, &out.EmptyDir - if *in == nil { - *out = nil - } else { - *out = new(EmptyDirVolumeSource) - (*in).DeepCopyInto(*out) - } + *out = new(EmptyDirVolumeSource) + (*in).DeepCopyInto(*out) } if in.GCEPersistentDisk != nil { in, out := &in.GCEPersistentDisk, &out.GCEPersistentDisk - if *in == nil { - *out = nil - } else { - *out = new(GCEPersistentDiskVolumeSource) - **out = **in - } + *out = new(GCEPersistentDiskVolumeSource) + **out = **in } if in.AWSElasticBlockStore != nil { in, out := &in.AWSElasticBlockStore, &out.AWSElasticBlockStore - if *in == nil { - *out = nil - } else { - *out = new(AWSElasticBlockStoreVolumeSource) - **out = **in - } + *out = new(AWSElasticBlockStoreVolumeSource) + **out = **in } if in.GitRepo != nil { in, out := &in.GitRepo, &out.GitRepo - if *in == nil { - *out = nil - } else { - *out = new(GitRepoVolumeSource) - **out = **in - } + *out = new(GitRepoVolumeSource) + **out = **in } if in.Secret != nil { in, out := &in.Secret, &out.Secret - if *in == nil { - *out = nil - } else { - *out = new(SecretVolumeSource) - (*in).DeepCopyInto(*out) - } + *out = new(SecretVolumeSource) + (*in).DeepCopyInto(*out) } if in.NFS != nil { in, out := &in.NFS, &out.NFS - if *in == nil { - *out = nil - } else { - *out = new(NFSVolumeSource) - **out = **in - } + *out = new(NFSVolumeSource) + **out = **in } if in.ISCSI != nil { in, out := &in.ISCSI, &out.ISCSI - if *in == nil { - *out = nil - } else { - *out = new(ISCSIVolumeSource) - (*in).DeepCopyInto(*out) - } + *out = new(ISCSIVolumeSource) + (*in).DeepCopyInto(*out) } if in.Glusterfs != nil { in, out := &in.Glusterfs, &out.Glusterfs - if *in == nil { - *out = nil - } else { - *out = new(GlusterfsVolumeSource) - **out = **in - } + *out = new(GlusterfsVolumeSource) + **out = **in } if in.PersistentVolumeClaim != nil { in, out := &in.PersistentVolumeClaim, &out.PersistentVolumeClaim - if *in == nil { - *out = nil - } else { - *out = new(PersistentVolumeClaimVolumeSource) - **out = **in - } + *out = new(PersistentVolumeClaimVolumeSource) + **out = **in } if in.RBD != nil { in, out := &in.RBD, &out.RBD - if *in == nil { - *out = nil - } else { - *out = new(RBDVolumeSource) - (*in).DeepCopyInto(*out) - } + *out = new(RBDVolumeSource) + (*in).DeepCopyInto(*out) } if in.FlexVolume != nil { in, out := &in.FlexVolume, &out.FlexVolume - if *in == nil { - *out = nil - } else { - *out = new(FlexVolumeSource) - (*in).DeepCopyInto(*out) - } + *out = new(FlexVolumeSource) + (*in).DeepCopyInto(*out) } if in.Cinder != nil { in, out := &in.Cinder, &out.Cinder - if *in == nil { - *out = nil - } else { - *out = new(CinderVolumeSource) - **out = **in - } + *out = new(CinderVolumeSource) + (*in).DeepCopyInto(*out) } if in.CephFS != nil { in, out := &in.CephFS, &out.CephFS - if *in == nil { - *out = nil - } else { - *out = new(CephFSVolumeSource) - (*in).DeepCopyInto(*out) - } + *out = new(CephFSVolumeSource) + (*in).DeepCopyInto(*out) } if in.Flocker != nil { in, out := &in.Flocker, &out.Flocker - if *in == nil { - *out = nil - } else { - *out = new(FlockerVolumeSource) - **out = **in - } + *out = new(FlockerVolumeSource) + **out = **in } if in.DownwardAPI != nil { in, out := &in.DownwardAPI, &out.DownwardAPI - if *in == nil { - *out = nil - } else { - *out = new(DownwardAPIVolumeSource) - (*in).DeepCopyInto(*out) - } + *out = new(DownwardAPIVolumeSource) + (*in).DeepCopyInto(*out) } if in.FC != nil { in, out := &in.FC, &out.FC - if *in == nil { - *out = nil - } else { - *out = new(FCVolumeSource) - (*in).DeepCopyInto(*out) - } + *out = new(FCVolumeSource) + (*in).DeepCopyInto(*out) } if in.AzureFile != nil { in, out := &in.AzureFile, &out.AzureFile - if *in == nil { - *out = nil - } else { - *out = new(AzureFileVolumeSource) - **out = **in - } + *out = new(AzureFileVolumeSource) + **out = **in } if in.ConfigMap != nil { in, out := &in.ConfigMap, &out.ConfigMap - if *in == nil { - *out = nil - } else { - *out = new(ConfigMapVolumeSource) - (*in).DeepCopyInto(*out) - } + *out = new(ConfigMapVolumeSource) + (*in).DeepCopyInto(*out) } if in.VsphereVolume != nil { in, out := &in.VsphereVolume, &out.VsphereVolume - if *in == nil { - *out = nil - } else { - *out = new(VsphereVirtualDiskVolumeSource) - **out = **in - } + *out = new(VsphereVirtualDiskVolumeSource) + **out = **in } if in.Quobyte != nil { in, out := &in.Quobyte, &out.Quobyte - if *in == nil { - *out = nil - } else { - *out = new(QuobyteVolumeSource) - **out = **in - } + *out = new(QuobyteVolumeSource) + **out = **in } if in.AzureDisk != nil { in, out := &in.AzureDisk, &out.AzureDisk - if *in == nil { - *out = nil - } else { - *out = new(AzureDiskVolumeSource) - (*in).DeepCopyInto(*out) - } + *out = new(AzureDiskVolumeSource) + (*in).DeepCopyInto(*out) } if in.PhotonPersistentDisk != nil { in, out := &in.PhotonPersistentDisk, &out.PhotonPersistentDisk - if *in == nil { - *out = nil - } else { - *out = new(PhotonPersistentDiskVolumeSource) - **out = **in - } + *out = new(PhotonPersistentDiskVolumeSource) + **out = **in } if in.Projected != nil { in, out := &in.Projected, &out.Projected - if *in == nil { - *out = nil - } else { - *out = new(ProjectedVolumeSource) - (*in).DeepCopyInto(*out) - } + *out = new(ProjectedVolumeSource) + (*in).DeepCopyInto(*out) } if in.PortworxVolume != nil { in, out := &in.PortworxVolume, &out.PortworxVolume - if *in == nil { - *out = nil - } else { - *out = new(PortworxVolumeSource) - **out = **in - } + *out = new(PortworxVolumeSource) + **out = **in } if in.ScaleIO != nil { in, out := &in.ScaleIO, &out.ScaleIO - if *in == nil { - *out = nil - } else { - *out = new(ScaleIOVolumeSource) - (*in).DeepCopyInto(*out) - } + *out = new(ScaleIOVolumeSource) + (*in).DeepCopyInto(*out) } if in.StorageOS != nil { in, out := &in.StorageOS, &out.StorageOS - if *in == nil { - *out = nil - } else { - *out = new(StorageOSVolumeSource) - (*in).DeepCopyInto(*out) - } + *out = new(StorageOSVolumeSource) + (*in).DeepCopyInto(*out) } return } diff --git a/vendor/k8s.io/api/events/v1beta1/BUILD b/vendor/k8s.io/api/events/v1beta1/BUILD deleted file mode 100644 index 851874e78..000000000 --- a/vendor/k8s.io/api/events/v1beta1/BUILD +++ /dev/null @@ -1,42 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -filegroup( - name = "go_default_library_protos", - srcs = ["generated.proto"], - visibility = ["//visibility:public"], -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "generated.pb.go", - "register.go", - "types.go", - "types_swagger_doc_generated.go", - "zz_generated.deepcopy.go", - ], - importpath = "k8s.io/api/events/v1beta1", - visibility = ["//visibility:public"], - deps = [ - "//vendor/github.com/gogo/protobuf/proto:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/api/events/v1beta1/doc.go b/vendor/k8s.io/api/events/v1beta1/doc.go index 8b1a3e312..bd269c6d2 100644 --- a/vendor/k8s.io/api/events/v1beta1/doc.go +++ b/vendor/k8s.io/api/events/v1beta1/doc.go @@ -18,4 +18,5 @@ limitations under the License. // +k8s:openapi-gen=true // +groupName=events.k8s.io + package v1beta1 // import "k8s.io/api/events/v1beta1" diff --git a/vendor/k8s.io/api/events/v1beta1/generated.pb.go b/vendor/k8s.io/api/events/v1beta1/generated.pb.go index 9aac8420f..bb0c881b5 100644 --- a/vendor/k8s.io/api/events/v1beta1/generated.pb.go +++ b/vendor/k8s.io/api/events/v1beta1/generated.pb.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -14,9 +14,8 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: k8s.io/kubernetes/vendor/k8s.io/api/events/v1beta1/generated.proto -// DO NOT EDIT! /* Package v1beta1 is a generated protocol buffer package. @@ -254,24 +253,6 @@ func (m *EventSeries) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Generated(dAtA []byte, offset int, v uint64) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - dAtA[offset+4] = uint8(v >> 32) - dAtA[offset+5] = uint8(v >> 40) - dAtA[offset+6] = uint8(v >> 48) - dAtA[offset+7] = uint8(v >> 56) - return offset + 8 -} -func encodeFixed32Generated(dAtA []byte, offset int, v uint32) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - return offset + 4 -} func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -1251,56 +1232,56 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 814 bytes of a gzipped FileDescriptorProto + // 801 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x54, 0xcd, 0x6e, 0xdb, 0x46, - 0x10, 0x16, 0x13, 0x4b, 0xb6, 0x56, 0x49, 0x2c, 0x6f, 0x0e, 0xde, 0xb8, 0x00, 0xa5, 0x3a, 0x40, - 0x60, 0x14, 0x08, 0x59, 0xa7, 0x45, 0xdb, 0x6b, 0x18, 0xbb, 0x45, 0x02, 0xbb, 0x01, 0xd6, 0x3e, - 0x15, 0x3d, 0x64, 0x45, 0x4d, 0xe8, 0xad, 0xa5, 0x5d, 0x62, 0x77, 0x29, 0xc0, 0xb7, 0x5e, 0x0a, - 0xf4, 0xd8, 0x67, 0xe8, 0x13, 0xf4, 0x31, 0x7c, 0xcc, 0x31, 0x27, 0xa1, 0x66, 0xdf, 0xa2, 0xa7, - 0x82, 0xcb, 0x95, 0x28, 0x8b, 0x16, 0xec, 0x22, 0x37, 0x72, 0xe6, 0xfb, 0x99, 0x19, 0x0e, 0x07, - 0x45, 0xe7, 0xdf, 0xe9, 0x80, 0xcb, 0xf0, 0x3c, 0x1b, 0x80, 0x12, 0x60, 0x40, 0x87, 0x13, 0x10, - 0x43, 0xa9, 0x42, 0x97, 0x60, 0x29, 0x0f, 0x61, 0x02, 0xc2, 0xe8, 0x70, 0xb2, 0x3f, 0x00, 0xc3, - 0xf6, 0xc3, 0x04, 0x04, 0x28, 0x66, 0x60, 0x18, 0xa4, 0x4a, 0x1a, 0x89, 0x9f, 0x94, 0xd0, 0x80, - 0xa5, 0x3c, 0x28, 0xa1, 0x81, 0x83, 0xee, 0x3c, 0x4f, 0xb8, 0x39, 0xcb, 0x06, 0x41, 0x2c, 0xc7, - 0x61, 0x22, 0x13, 0x19, 0x5a, 0xc6, 0x20, 0x7b, 0x6f, 0xdf, 0xec, 0x8b, 0x7d, 0x2a, 0x95, 0x76, - 0x76, 0x17, 0x4c, 0x63, 0xa9, 0x20, 0x9c, 0xd4, 0xdc, 0x76, 0xbe, 0xae, 0x30, 0x63, 0x16, 0x9f, - 0x71, 0x01, 0xea, 0x22, 0x4c, 0xcf, 0x93, 0x22, 0xa0, 0xc3, 0x31, 0x18, 0x76, 0x13, 0x2b, 0x5c, - 0xc5, 0x52, 0x99, 0x30, 0x7c, 0x0c, 0x35, 0xc2, 0x37, 0xb7, 0x11, 0x74, 0x7c, 0x06, 0x63, 0x56, - 0xe3, 0x7d, 0xb5, 0x8a, 0x97, 0x19, 0x3e, 0x0a, 0xb9, 0x30, 0xda, 0xa8, 0x65, 0xd2, 0xee, 0x9f, - 0x6d, 0xd4, 0x3c, 0x2c, 0x26, 0x87, 0xdf, 0xa1, 0x8d, 0xa2, 0x85, 0x21, 0x33, 0x8c, 0x78, 0x7d, - 0x6f, 0xaf, 0xf3, 0xe2, 0xcb, 0xa0, 0x1a, 0xef, 0x5c, 0x31, 0x48, 0xcf, 0x93, 0x22, 0xa0, 0x83, - 0x02, 0x1d, 0x4c, 0xf6, 0x83, 0xb7, 0x83, 0x5f, 0x20, 0x36, 0xc7, 0x60, 0x58, 0x84, 0x2f, 0xa7, - 0xbd, 0x46, 0x3e, 0xed, 0xa1, 0x2a, 0x46, 0xe7, 0xaa, 0xf8, 0x1d, 0x6a, 0xdb, 0x8f, 0x74, 0xca, - 0xc7, 0x40, 0xee, 0x59, 0x8b, 0xf0, 0x6e, 0x16, 0xc7, 0x3c, 0x56, 0xb2, 0xa0, 0x45, 0x5b, 0xce, - 0xa1, 0x7d, 0x38, 0x53, 0xa2, 0x95, 0x28, 0x7e, 0x83, 0x5a, 0x1a, 0x14, 0x07, 0x4d, 0xee, 0x5b, - 0xf9, 0x67, 0xc1, 0xca, 0x05, 0x09, 0xac, 0xc0, 0x89, 0x45, 0x47, 0x28, 0x9f, 0xf6, 0x5a, 0xe5, - 0x33, 0x75, 0x0a, 0xf8, 0x18, 0x3d, 0x56, 0x90, 0x4a, 0x65, 0xb8, 0x48, 0x5e, 0x49, 0x61, 0x94, - 0x1c, 0x8d, 0x40, 0x91, 0xb5, 0xbe, 0xb7, 0xd7, 0x8e, 0x3e, 0x73, 0x65, 0x3c, 0xa6, 0x75, 0x08, - 0xbd, 0x89, 0x87, 0x7f, 0x40, 0x5b, 0xf3, 0xf0, 0x6b, 0xa1, 0x0d, 0x13, 0x31, 0x90, 0xa6, 0x15, - 0x7b, 0xe2, 0xc4, 0xb6, 0xe8, 0x32, 0x80, 0xd6, 0x39, 0xf8, 0x19, 0x6a, 0xb1, 0xd8, 0x70, 0x29, - 0x48, 0xcb, 0xb2, 0x1f, 0x39, 0x76, 0xeb, 0xa5, 0x8d, 0x52, 0x97, 0x2d, 0x70, 0x0a, 0x98, 0x96, - 0x82, 0xac, 0x5f, 0xc7, 0x51, 0x1b, 0xa5, 0x2e, 0x8b, 0x4f, 0x51, 0x5b, 0x41, 0xc2, 0xd4, 0x90, - 0x8b, 0x84, 0x6c, 0xd8, 0xb1, 0x3d, 0x5d, 0x1c, 0x5b, 0xf1, 0x37, 0x54, 0x9f, 0x99, 0xc2, 0x7b, - 0x50, 0x20, 0xe2, 0x85, 0x2f, 0x41, 0x67, 0x6c, 0x5a, 0x09, 0xe1, 0x37, 0x68, 0x5d, 0xc1, 0xa8, - 0x58, 0x34, 0xd2, 0xbe, 0xbb, 0x66, 0x27, 0x9f, 0xf6, 0xd6, 0x69, 0xc9, 0xa3, 0x33, 0x01, 0xdc, - 0x47, 0x6b, 0x42, 0x1a, 0x20, 0xc8, 0xf6, 0xf1, 0xc0, 0xf9, 0xae, 0xfd, 0x28, 0x0d, 0x50, 0x9b, - 0x29, 0x10, 0xe6, 0x22, 0x05, 0xd2, 0xb9, 0x8e, 0x38, 0xbd, 0x48, 0x81, 0xda, 0x0c, 0x06, 0xd4, - 0x1d, 0x42, 0xaa, 0x20, 0x2e, 0x14, 0x4f, 0x64, 0xa6, 0x62, 0x20, 0x0f, 0x6c, 0x61, 0xbd, 0x9b, - 0x0a, 0x2b, 0x97, 0xc3, 0xc2, 0x22, 0xe2, 0xe4, 0xba, 0x07, 0x4b, 0x02, 0xb4, 0x26, 0x89, 0x7f, - 0xf7, 0x10, 0xa9, 0x82, 0xdf, 0x73, 0xa5, 0xed, 0x62, 0x6a, 0xc3, 0xc6, 0x29, 0x79, 0x68, 0xfd, - 0xbe, 0xb8, 0xdb, 0xca, 0xdb, 0x6d, 0xef, 0x3b, 0x6b, 0x72, 0xb0, 0x42, 0x93, 0xae, 0x74, 0xc3, - 0xbf, 0x79, 0x68, 0xbb, 0x4a, 0x1e, 0xb1, 0xc5, 0x4a, 0x1e, 0xfd, 0xef, 0x4a, 0x7a, 0xae, 0x92, - 0xed, 0x83, 0x9b, 0x25, 0xe9, 0x2a, 0x2f, 0xfc, 0x12, 0x6d, 0x56, 0xa9, 0x57, 0x32, 0x13, 0x86, - 0x6c, 0xf6, 0xbd, 0xbd, 0x66, 0xb4, 0xed, 0x24, 0x37, 0x0f, 0xae, 0xa7, 0xe9, 0x32, 0x7e, 0xf7, - 0x2f, 0x0f, 0x95, 0xff, 0xfb, 0x11, 0xd7, 0x06, 0xff, 0x5c, 0x3b, 0x54, 0xc1, 0xdd, 0x1a, 0x29, - 0xd8, 0xf6, 0x4c, 0x75, 0x9d, 0xf3, 0xc6, 0x2c, 0xb2, 0x70, 0xa4, 0x0e, 0x51, 0x93, 0x1b, 0x18, - 0x6b, 0x72, 0xaf, 0x7f, 0x7f, 0xaf, 0xf3, 0xa2, 0x7f, 0xdb, 0x05, 0x89, 0x1e, 0x3a, 0xb1, 0xe6, - 0xeb, 0x82, 0x46, 0x4b, 0xf6, 0x6e, 0xee, 0xa1, 0xce, 0xc2, 0x85, 0xc1, 0x4f, 0x51, 0x33, 0xb6, - 0xbd, 0x7b, 0xb6, 0xf7, 0x39, 0xa9, 0xec, 0xb8, 0xcc, 0xe1, 0x0c, 0x75, 0x47, 0x4c, 0x9b, 0xb7, - 0x03, 0x0d, 0x6a, 0x02, 0xc3, 0x4f, 0xb9, 0x93, 0xf3, 0xa5, 0x3d, 0x5a, 0x12, 0xa4, 0x35, 0x0b, - 0xfc, 0x2d, 0x6a, 0x6a, 0xc3, 0x0c, 0xd8, 0xa3, 0xd9, 0x8e, 0x3e, 0x9f, 0xd5, 0x76, 0x52, 0x04, - 0xff, 0x9d, 0xf6, 0xba, 0x0b, 0x8d, 0xd8, 0x18, 0x2d, 0xf1, 0xd1, 0xf3, 0xcb, 0x2b, 0xbf, 0xf1, - 0xe1, 0xca, 0x6f, 0x7c, 0xbc, 0xf2, 0x1b, 0xbf, 0xe6, 0xbe, 0x77, 0x99, 0xfb, 0xde, 0x87, 0xdc, - 0xf7, 0x3e, 0xe6, 0xbe, 0xf7, 0x77, 0xee, 0x7b, 0x7f, 0xfc, 0xe3, 0x37, 0x7e, 0x5a, 0x77, 0xf3, - 0xfa, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x69, 0xa9, 0x7b, 0x6e, 0xf2, 0x07, 0x00, 0x00, + 0x10, 0x16, 0x13, 0x4b, 0xb2, 0x56, 0x49, 0x2c, 0x6f, 0x0e, 0xde, 0xb8, 0x00, 0xa5, 0x2a, 0x40, + 0x20, 0x14, 0x08, 0x59, 0x07, 0x45, 0xdb, 0x6b, 0x18, 0xb9, 0x45, 0x02, 0xbb, 0x01, 0xd6, 0x3e, + 0x15, 0x3d, 0x64, 0x45, 0x4d, 0x68, 0x56, 0xe2, 0x2e, 0xb1, 0xbb, 0x12, 0xe0, 0x5b, 0x2f, 0x05, + 0x7a, 0xec, 0x33, 0xf4, 0x09, 0xfa, 0x18, 0x3e, 0xe6, 0x98, 0x93, 0x50, 0xb3, 0x6f, 0xd1, 0x53, + 0xc1, 0xe5, 0x4a, 0x94, 0xf5, 0x83, 0xa8, 0xe8, 0x4d, 0x9c, 0xf9, 0x7e, 0x66, 0x66, 0x47, 0x83, + 0x82, 0xd1, 0xb7, 0xca, 0x8b, 0x85, 0x3f, 0x9a, 0x0c, 0x40, 0x72, 0xd0, 0xa0, 0xfc, 0x29, 0xf0, + 0xa1, 0x90, 0xbe, 0x4d, 0xb0, 0x34, 0xf6, 0x61, 0x0a, 0x5c, 0x2b, 0x7f, 0x7a, 0x32, 0x00, 0xcd, + 0x4e, 0xfc, 0x08, 0x38, 0x48, 0xa6, 0x61, 0xe8, 0xa5, 0x52, 0x68, 0x81, 0x9f, 0x14, 0x50, 0x8f, + 0xa5, 0xb1, 0x57, 0x40, 0x3d, 0x0b, 0x3d, 0x7e, 0x1e, 0xc5, 0xfa, 0x6a, 0x32, 0xf0, 0x42, 0x91, + 0xf8, 0x91, 0x88, 0x84, 0x6f, 0x18, 0x83, 0xc9, 0x7b, 0xf3, 0x65, 0x3e, 0xcc, 0xaf, 0x42, 0xe9, + 0xb8, 0xbb, 0x64, 0x1a, 0x0a, 0x09, 0xfe, 0x74, 0xcd, 0xed, 0xf8, 0xab, 0x12, 0x93, 0xb0, 0xf0, + 0x2a, 0xe6, 0x20, 0xaf, 0xfd, 0x74, 0x14, 0xe5, 0x01, 0xe5, 0x27, 0xa0, 0xd9, 0x26, 0x96, 0xbf, + 0x8d, 0x25, 0x27, 0x5c, 0xc7, 0x09, 0xac, 0x11, 0xbe, 0xfe, 0x14, 0x41, 0x85, 0x57, 0x90, 0xb0, + 0x55, 0x5e, 0xf7, 0x8f, 0x06, 0xaa, 0x9e, 0xe6, 0x43, 0xc0, 0xef, 0xd0, 0x7e, 0x5e, 0xcd, 0x90, + 0x69, 0x46, 0x9c, 0x8e, 0xd3, 0x6b, 0xbe, 0xf8, 0xd2, 0x2b, 0x27, 0xb5, 0x10, 0xf5, 0xd2, 0x51, + 0x94, 0x07, 0x94, 0x97, 0xa3, 0xbd, 0xe9, 0x89, 0xf7, 0x76, 0xf0, 0x33, 0x84, 0xfa, 0x1c, 0x34, + 0x0b, 0xf0, 0xcd, 0xac, 0x5d, 0xc9, 0x66, 0x6d, 0x54, 0xc6, 0xe8, 0x42, 0x15, 0xbf, 0x43, 0x0d, + 0x33, 0xef, 0xcb, 0x38, 0x01, 0x72, 0xcf, 0x58, 0xf8, 0xbb, 0x59, 0x9c, 0xc7, 0xa1, 0x14, 0x39, + 0x2d, 0x38, 0xb4, 0x0e, 0x8d, 0xd3, 0xb9, 0x12, 0x2d, 0x45, 0xf1, 0x1b, 0x54, 0x53, 0x20, 0x63, + 0x50, 0xe4, 0xbe, 0x91, 0x7f, 0xe6, 0x6d, 0x7d, 0x6b, 0xcf, 0x08, 0x5c, 0x18, 0x74, 0x80, 0xb2, + 0x59, 0xbb, 0x56, 0xfc, 0xa6, 0x56, 0x01, 0x9f, 0xa3, 0xc7, 0x12, 0x52, 0x21, 0x75, 0xcc, 0xa3, + 0x57, 0x82, 0x6b, 0x29, 0xc6, 0x63, 0x90, 0x64, 0xaf, 0xe3, 0xf4, 0x1a, 0xc1, 0x67, 0xb6, 0x8c, + 0xc7, 0x74, 0x1d, 0x42, 0x37, 0xf1, 0xf0, 0xf7, 0xe8, 0x70, 0x11, 0x7e, 0xcd, 0x95, 0x66, 0x3c, + 0x04, 0x52, 0x35, 0x62, 0x4f, 0xac, 0xd8, 0x21, 0x5d, 0x05, 0xd0, 0x75, 0x0e, 0x7e, 0x86, 0x6a, + 0x2c, 0xd4, 0xb1, 0xe0, 0xa4, 0x66, 0xd8, 0x8f, 0x2c, 0xbb, 0xf6, 0xd2, 0x44, 0xa9, 0xcd, 0xe6, + 0x38, 0x09, 0x4c, 0x09, 0x4e, 0xea, 0x77, 0x71, 0xd4, 0x44, 0xa9, 0xcd, 0xe2, 0x4b, 0xd4, 0x90, + 0x10, 0x31, 0x39, 0x8c, 0x79, 0x44, 0xf6, 0xcd, 0xd8, 0x9e, 0x2e, 0x8f, 0x2d, 0x5f, 0xec, 0xf2, + 0x99, 0x29, 0xbc, 0x07, 0x09, 0x3c, 0x5c, 0x7a, 0x09, 0x3a, 0x67, 0xd3, 0x52, 0x08, 0xbf, 0x41, + 0x75, 0x09, 0xe3, 0x7c, 0xd1, 0x48, 0x63, 0x77, 0xcd, 0x66, 0x36, 0x6b, 0xd7, 0x69, 0xc1, 0xa3, + 0x73, 0x01, 0xdc, 0x41, 0x7b, 0x5c, 0x68, 0x20, 0xc8, 0xf4, 0xf1, 0xc0, 0xfa, 0xee, 0xfd, 0x20, + 0x34, 0x50, 0x93, 0xc9, 0x11, 0xfa, 0x3a, 0x05, 0xd2, 0xbc, 0x8b, 0xb8, 0xbc, 0x4e, 0x81, 0x9a, + 0x0c, 0x06, 0xd4, 0x1a, 0x42, 0x2a, 0x21, 0xcc, 0x15, 0x2f, 0xc4, 0x44, 0x86, 0x40, 0x1e, 0x98, + 0xc2, 0xda, 0x9b, 0x0a, 0x2b, 0x96, 0xc3, 0xc0, 0x02, 0x62, 0xe5, 0x5a, 0xfd, 0x15, 0x01, 0xba, + 0x26, 0x89, 0x7f, 0x73, 0x10, 0x29, 0x83, 0xdf, 0xc5, 0x52, 0x99, 0xc5, 0x54, 0x9a, 0x25, 0x29, + 0x79, 0x68, 0xfc, 0xbe, 0xd8, 0x6d, 0xe5, 0xcd, 0xb6, 0x77, 0xac, 0x35, 0xe9, 0x6f, 0xd1, 0xa4, + 0x5b, 0xdd, 0xf0, 0xaf, 0x0e, 0x3a, 0x2a, 0x93, 0x67, 0x6c, 0xb9, 0x92, 0x47, 0xff, 0xb9, 0x92, + 0xb6, 0xad, 0xe4, 0xa8, 0xbf, 0x59, 0x92, 0x6e, 0xf3, 0xc2, 0x2f, 0xd1, 0x41, 0x99, 0x7a, 0x25, + 0x26, 0x5c, 0x93, 0x83, 0x8e, 0xd3, 0xab, 0x06, 0x47, 0x56, 0xf2, 0xa0, 0x7f, 0x37, 0x4d, 0x57, + 0xf1, 0xdd, 0x3f, 0x1d, 0x54, 0xfc, 0xdf, 0xcf, 0x62, 0xa5, 0xf1, 0x4f, 0x6b, 0x87, 0xca, 0xdb, + 0xad, 0x91, 0x9c, 0x6d, 0xce, 0x54, 0xcb, 0x3a, 0xef, 0xcf, 0x23, 0x4b, 0x47, 0xea, 0x14, 0x55, + 0x63, 0x0d, 0x89, 0x22, 0xf7, 0x3a, 0xf7, 0x7b, 0xcd, 0x17, 0x9d, 0x4f, 0x5d, 0x90, 0xe0, 0xa1, + 0x15, 0xab, 0xbe, 0xce, 0x69, 0xb4, 0x60, 0x77, 0x33, 0x07, 0x35, 0x97, 0x2e, 0x0c, 0x7e, 0x8a, + 0xaa, 0xa1, 0xe9, 0xdd, 0x31, 0xbd, 0x2f, 0x48, 0x45, 0xc7, 0x45, 0x0e, 0x4f, 0x50, 0x6b, 0xcc, + 0x94, 0x7e, 0x3b, 0x50, 0x20, 0xa7, 0x30, 0xfc, 0x3f, 0x77, 0x72, 0xb1, 0xb4, 0x67, 0x2b, 0x82, + 0x74, 0xcd, 0x02, 0x7f, 0x83, 0xaa, 0x4a, 0x33, 0x0d, 0xe6, 0x68, 0x36, 0x82, 0xcf, 0xe7, 0xb5, + 0x5d, 0xe4, 0xc1, 0x7f, 0x66, 0xed, 0xd6, 0x52, 0x23, 0x26, 0x46, 0x0b, 0x7c, 0xf0, 0xfc, 0xe6, + 0xd6, 0xad, 0x7c, 0xb8, 0x75, 0x2b, 0x1f, 0x6f, 0xdd, 0xca, 0x2f, 0x99, 0xeb, 0xdc, 0x64, 0xae, + 0xf3, 0x21, 0x73, 0x9d, 0x8f, 0x99, 0xeb, 0xfc, 0x95, 0xb9, 0xce, 0xef, 0x7f, 0xbb, 0x95, 0x1f, + 0xeb, 0x76, 0x5e, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0x25, 0x9b, 0x14, 0x4d, 0xbd, 0x07, 0x00, + 0x00, } diff --git a/vendor/k8s.io/api/events/v1beta1/generated.proto b/vendor/k8s.io/api/events/v1beta1/generated.proto index 0637f780a..b3e565e67 100644 --- a/vendor/k8s.io/api/events/v1beta1/generated.proto +++ b/vendor/k8s.io/api/events/v1beta1/generated.proto @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -25,7 +25,6 @@ import "k8s.io/api/core/v1/generated.proto"; import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; -import "k8s.io/apimachinery/pkg/util/intstr/generated.proto"; // Package-wide variables from generator "generated". option go_package = "v1beta1"; diff --git a/vendor/k8s.io/api/events/v1beta1/types_swagger_doc_generated.go b/vendor/k8s.io/api/events/v1beta1/types_swagger_doc_generated.go index 17ec3d777..a15672c19 100644 --- a/vendor/k8s.io/api/events/v1beta1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/events/v1beta1/types_swagger_doc_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2016 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -26,7 +26,7 @@ package v1beta1 // // Those methods can be generated by using hack/update-generated-swagger-docs.sh -// AUTO-GENERATED FUNCTIONS START HERE +// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT. var map_Event = map[string]string{ "": "Event is a report of an event somewhere in the cluster. It generally denotes some state change in the system.", "eventTime": "Required. Time when this Event was first observed.", diff --git a/vendor/k8s.io/api/events/v1beta1/zz_generated.deepcopy.go b/vendor/k8s.io/api/events/v1beta1/zz_generated.deepcopy.go index 546d69e7e..e52e142c6 100644 --- a/vendor/k8s.io/api/events/v1beta1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/api/events/v1beta1/zz_generated.deepcopy.go @@ -1,7 +1,7 @@ // +build !ignore_autogenerated /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -33,22 +33,14 @@ func (in *Event) DeepCopyInto(out *Event) { in.EventTime.DeepCopyInto(&out.EventTime) if in.Series != nil { in, out := &in.Series, &out.Series - if *in == nil { - *out = nil - } else { - *out = new(EventSeries) - (*in).DeepCopyInto(*out) - } + *out = new(EventSeries) + (*in).DeepCopyInto(*out) } out.Regarding = in.Regarding if in.Related != nil { in, out := &in.Related, &out.Related - if *in == nil { - *out = nil - } else { - *out = new(v1.ObjectReference) - **out = **in - } + *out = new(v1.ObjectReference) + **out = **in } out.DeprecatedSource = in.DeprecatedSource in.DeprecatedFirstTimestamp.DeepCopyInto(&out.DeprecatedFirstTimestamp) diff --git a/vendor/k8s.io/api/extensions/v1beta1/BUILD b/vendor/k8s.io/api/extensions/v1beta1/BUILD deleted file mode 100644 index 360ad999c..000000000 --- a/vendor/k8s.io/api/extensions/v1beta1/BUILD +++ /dev/null @@ -1,49 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "generated.pb.go", - "register.go", - "types.go", - "types_swagger_doc_generated.go", - "zz_generated.deepcopy.go", - ], - importpath = "k8s.io/api/extensions/v1beta1", - deps = [ - "//vendor/github.com/gogo/protobuf/proto:go_default_library", - "//vendor/github.com/gogo/protobuf/sortkeys:go_default_library", - "//vendor/k8s.io/api/apps/v1beta1:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) - -filegroup( - name = "go_default_library_protos", - srcs = ["generated.proto"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/api/extensions/v1beta1/generated.pb.go b/vendor/k8s.io/api/extensions/v1beta1/generated.pb.go index fcb80615f..a0dfa9662 100644 --- a/vendor/k8s.io/api/extensions/v1beta1/generated.pb.go +++ b/vendor/k8s.io/api/extensions/v1beta1/generated.pb.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -14,9 +14,8 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: k8s.io/kubernetes/vendor/k8s.io/api/extensions/v1beta1/generated.proto -// DO NOT EDIT! /* Package v1beta1 is a generated protocol buffer package. @@ -27,10 +26,6 @@ limitations under the License. It has these top-level messages: AllowedFlexVolume AllowedHostPath - CustomMetricCurrentStatus - CustomMetricCurrentStatusList - CustomMetricTarget - CustomMetricTargetList DaemonSet DaemonSetCondition DaemonSetList @@ -77,6 +72,7 @@ limitations under the License. RollbackConfig RollingUpdateDaemonSet RollingUpdateDeployment + RunAsGroupStrategyOptions RunAsUserStrategyOptions SELinuxStrategyOptions Scale @@ -91,7 +87,6 @@ import fmt "fmt" import math "math" import k8s_io_api_core_v1 "k8s.io/api/core/v1" - import k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" import k8s_io_apimachinery_pkg_util_intstr "k8s.io/apimachinery/pkg/util/intstr" @@ -122,255 +117,235 @@ func (m *AllowedHostPath) Reset() { *m = AllowedHostPath{} } func (*AllowedHostPath) ProtoMessage() {} func (*AllowedHostPath) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{1} } -func (m *CustomMetricCurrentStatus) Reset() { *m = CustomMetricCurrentStatus{} } -func (*CustomMetricCurrentStatus) ProtoMessage() {} -func (*CustomMetricCurrentStatus) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{2} -} - -func (m *CustomMetricCurrentStatusList) Reset() { *m = CustomMetricCurrentStatusList{} } -func (*CustomMetricCurrentStatusList) ProtoMessage() {} -func (*CustomMetricCurrentStatusList) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{3} -} - -func (m *CustomMetricTarget) Reset() { *m = CustomMetricTarget{} } -func (*CustomMetricTarget) ProtoMessage() {} -func (*CustomMetricTarget) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{4} } - -func (m *CustomMetricTargetList) Reset() { *m = CustomMetricTargetList{} } -func (*CustomMetricTargetList) ProtoMessage() {} -func (*CustomMetricTargetList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{5} } - func (m *DaemonSet) Reset() { *m = DaemonSet{} } func (*DaemonSet) ProtoMessage() {} -func (*DaemonSet) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{6} } +func (*DaemonSet) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{2} } func (m *DaemonSetCondition) Reset() { *m = DaemonSetCondition{} } func (*DaemonSetCondition) ProtoMessage() {} -func (*DaemonSetCondition) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{7} } +func (*DaemonSetCondition) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{3} } func (m *DaemonSetList) Reset() { *m = DaemonSetList{} } func (*DaemonSetList) ProtoMessage() {} -func (*DaemonSetList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{8} } +func (*DaemonSetList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{4} } func (m *DaemonSetSpec) Reset() { *m = DaemonSetSpec{} } func (*DaemonSetSpec) ProtoMessage() {} -func (*DaemonSetSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{9} } +func (*DaemonSetSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{5} } func (m *DaemonSetStatus) Reset() { *m = DaemonSetStatus{} } func (*DaemonSetStatus) ProtoMessage() {} -func (*DaemonSetStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{10} } +func (*DaemonSetStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{6} } -func (m *DaemonSetUpdateStrategy) Reset() { *m = DaemonSetUpdateStrategy{} } -func (*DaemonSetUpdateStrategy) ProtoMessage() {} -func (*DaemonSetUpdateStrategy) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{11} -} +func (m *DaemonSetUpdateStrategy) Reset() { *m = DaemonSetUpdateStrategy{} } +func (*DaemonSetUpdateStrategy) ProtoMessage() {} +func (*DaemonSetUpdateStrategy) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{7} } func (m *Deployment) Reset() { *m = Deployment{} } func (*Deployment) ProtoMessage() {} -func (*Deployment) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{12} } +func (*Deployment) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{8} } func (m *DeploymentCondition) Reset() { *m = DeploymentCondition{} } func (*DeploymentCondition) ProtoMessage() {} -func (*DeploymentCondition) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{13} } +func (*DeploymentCondition) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{9} } func (m *DeploymentList) Reset() { *m = DeploymentList{} } func (*DeploymentList) ProtoMessage() {} -func (*DeploymentList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{14} } +func (*DeploymentList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{10} } func (m *DeploymentRollback) Reset() { *m = DeploymentRollback{} } func (*DeploymentRollback) ProtoMessage() {} -func (*DeploymentRollback) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{15} } +func (*DeploymentRollback) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{11} } func (m *DeploymentSpec) Reset() { *m = DeploymentSpec{} } func (*DeploymentSpec) ProtoMessage() {} -func (*DeploymentSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{16} } +func (*DeploymentSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{12} } func (m *DeploymentStatus) Reset() { *m = DeploymentStatus{} } func (*DeploymentStatus) ProtoMessage() {} -func (*DeploymentStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{17} } +func (*DeploymentStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{13} } func (m *DeploymentStrategy) Reset() { *m = DeploymentStrategy{} } func (*DeploymentStrategy) ProtoMessage() {} -func (*DeploymentStrategy) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{18} } +func (*DeploymentStrategy) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{14} } func (m *FSGroupStrategyOptions) Reset() { *m = FSGroupStrategyOptions{} } func (*FSGroupStrategyOptions) ProtoMessage() {} -func (*FSGroupStrategyOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{19} } +func (*FSGroupStrategyOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{15} } func (m *HTTPIngressPath) Reset() { *m = HTTPIngressPath{} } func (*HTTPIngressPath) ProtoMessage() {} -func (*HTTPIngressPath) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{20} } +func (*HTTPIngressPath) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{16} } func (m *HTTPIngressRuleValue) Reset() { *m = HTTPIngressRuleValue{} } func (*HTTPIngressRuleValue) ProtoMessage() {} -func (*HTTPIngressRuleValue) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{21} } +func (*HTTPIngressRuleValue) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{17} } func (m *HostPortRange) Reset() { *m = HostPortRange{} } func (*HostPortRange) ProtoMessage() {} -func (*HostPortRange) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{22} } +func (*HostPortRange) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{18} } func (m *IDRange) Reset() { *m = IDRange{} } func (*IDRange) ProtoMessage() {} -func (*IDRange) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{23} } +func (*IDRange) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{19} } func (m *IPBlock) Reset() { *m = IPBlock{} } func (*IPBlock) ProtoMessage() {} -func (*IPBlock) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{24} } +func (*IPBlock) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{20} } func (m *Ingress) Reset() { *m = Ingress{} } func (*Ingress) ProtoMessage() {} -func (*Ingress) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{25} } +func (*Ingress) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{21} } func (m *IngressBackend) Reset() { *m = IngressBackend{} } func (*IngressBackend) ProtoMessage() {} -func (*IngressBackend) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{26} } +func (*IngressBackend) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{22} } func (m *IngressList) Reset() { *m = IngressList{} } func (*IngressList) ProtoMessage() {} -func (*IngressList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{27} } +func (*IngressList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{23} } func (m *IngressRule) Reset() { *m = IngressRule{} } func (*IngressRule) ProtoMessage() {} -func (*IngressRule) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{28} } +func (*IngressRule) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{24} } func (m *IngressRuleValue) Reset() { *m = IngressRuleValue{} } func (*IngressRuleValue) ProtoMessage() {} -func (*IngressRuleValue) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{29} } +func (*IngressRuleValue) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{25} } func (m *IngressSpec) Reset() { *m = IngressSpec{} } func (*IngressSpec) ProtoMessage() {} -func (*IngressSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{30} } +func (*IngressSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{26} } func (m *IngressStatus) Reset() { *m = IngressStatus{} } func (*IngressStatus) ProtoMessage() {} -func (*IngressStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{31} } +func (*IngressStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{27} } func (m *IngressTLS) Reset() { *m = IngressTLS{} } func (*IngressTLS) ProtoMessage() {} -func (*IngressTLS) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{32} } +func (*IngressTLS) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{28} } func (m *NetworkPolicy) Reset() { *m = NetworkPolicy{} } func (*NetworkPolicy) ProtoMessage() {} -func (*NetworkPolicy) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{33} } +func (*NetworkPolicy) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{29} } func (m *NetworkPolicyEgressRule) Reset() { *m = NetworkPolicyEgressRule{} } func (*NetworkPolicyEgressRule) ProtoMessage() {} func (*NetworkPolicyEgressRule) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{34} + return fileDescriptorGenerated, []int{30} } func (m *NetworkPolicyIngressRule) Reset() { *m = NetworkPolicyIngressRule{} } func (*NetworkPolicyIngressRule) ProtoMessage() {} func (*NetworkPolicyIngressRule) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{35} + return fileDescriptorGenerated, []int{31} } func (m *NetworkPolicyList) Reset() { *m = NetworkPolicyList{} } func (*NetworkPolicyList) ProtoMessage() {} -func (*NetworkPolicyList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{36} } +func (*NetworkPolicyList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{32} } func (m *NetworkPolicyPeer) Reset() { *m = NetworkPolicyPeer{} } func (*NetworkPolicyPeer) ProtoMessage() {} -func (*NetworkPolicyPeer) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{37} } +func (*NetworkPolicyPeer) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{33} } func (m *NetworkPolicyPort) Reset() { *m = NetworkPolicyPort{} } func (*NetworkPolicyPort) ProtoMessage() {} -func (*NetworkPolicyPort) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{38} } +func (*NetworkPolicyPort) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{34} } func (m *NetworkPolicySpec) Reset() { *m = NetworkPolicySpec{} } func (*NetworkPolicySpec) ProtoMessage() {} -func (*NetworkPolicySpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{39} } +func (*NetworkPolicySpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{35} } func (m *PodSecurityPolicy) Reset() { *m = PodSecurityPolicy{} } func (*PodSecurityPolicy) ProtoMessage() {} -func (*PodSecurityPolicy) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{40} } +func (*PodSecurityPolicy) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{36} } func (m *PodSecurityPolicyList) Reset() { *m = PodSecurityPolicyList{} } func (*PodSecurityPolicyList) ProtoMessage() {} -func (*PodSecurityPolicyList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{41} } +func (*PodSecurityPolicyList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{37} } func (m *PodSecurityPolicySpec) Reset() { *m = PodSecurityPolicySpec{} } func (*PodSecurityPolicySpec) ProtoMessage() {} -func (*PodSecurityPolicySpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{42} } +func (*PodSecurityPolicySpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{38} } func (m *ReplicaSet) Reset() { *m = ReplicaSet{} } func (*ReplicaSet) ProtoMessage() {} -func (*ReplicaSet) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{43} } +func (*ReplicaSet) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{39} } func (m *ReplicaSetCondition) Reset() { *m = ReplicaSetCondition{} } func (*ReplicaSetCondition) ProtoMessage() {} -func (*ReplicaSetCondition) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{44} } +func (*ReplicaSetCondition) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{40} } func (m *ReplicaSetList) Reset() { *m = ReplicaSetList{} } func (*ReplicaSetList) ProtoMessage() {} -func (*ReplicaSetList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{45} } +func (*ReplicaSetList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{41} } func (m *ReplicaSetSpec) Reset() { *m = ReplicaSetSpec{} } func (*ReplicaSetSpec) ProtoMessage() {} -func (*ReplicaSetSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{46} } +func (*ReplicaSetSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{42} } func (m *ReplicaSetStatus) Reset() { *m = ReplicaSetStatus{} } func (*ReplicaSetStatus) ProtoMessage() {} -func (*ReplicaSetStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{47} } +func (*ReplicaSetStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{43} } func (m *ReplicationControllerDummy) Reset() { *m = ReplicationControllerDummy{} } func (*ReplicationControllerDummy) ProtoMessage() {} func (*ReplicationControllerDummy) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{48} + return fileDescriptorGenerated, []int{44} } func (m *RollbackConfig) Reset() { *m = RollbackConfig{} } func (*RollbackConfig) ProtoMessage() {} -func (*RollbackConfig) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{49} } +func (*RollbackConfig) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{45} } func (m *RollingUpdateDaemonSet) Reset() { *m = RollingUpdateDaemonSet{} } func (*RollingUpdateDaemonSet) ProtoMessage() {} -func (*RollingUpdateDaemonSet) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{50} } +func (*RollingUpdateDaemonSet) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{46} } func (m *RollingUpdateDeployment) Reset() { *m = RollingUpdateDeployment{} } func (*RollingUpdateDeployment) ProtoMessage() {} func (*RollingUpdateDeployment) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{51} + return fileDescriptorGenerated, []int{47} +} + +func (m *RunAsGroupStrategyOptions) Reset() { *m = RunAsGroupStrategyOptions{} } +func (*RunAsGroupStrategyOptions) ProtoMessage() {} +func (*RunAsGroupStrategyOptions) Descriptor() ([]byte, []int) { + return fileDescriptorGenerated, []int{48} } func (m *RunAsUserStrategyOptions) Reset() { *m = RunAsUserStrategyOptions{} } func (*RunAsUserStrategyOptions) ProtoMessage() {} func (*RunAsUserStrategyOptions) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{52} + return fileDescriptorGenerated, []int{49} } func (m *SELinuxStrategyOptions) Reset() { *m = SELinuxStrategyOptions{} } func (*SELinuxStrategyOptions) ProtoMessage() {} -func (*SELinuxStrategyOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{53} } +func (*SELinuxStrategyOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{50} } func (m *Scale) Reset() { *m = Scale{} } func (*Scale) ProtoMessage() {} -func (*Scale) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{54} } +func (*Scale) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{51} } func (m *ScaleSpec) Reset() { *m = ScaleSpec{} } func (*ScaleSpec) ProtoMessage() {} -func (*ScaleSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{55} } +func (*ScaleSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{52} } func (m *ScaleStatus) Reset() { *m = ScaleStatus{} } func (*ScaleStatus) ProtoMessage() {} -func (*ScaleStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{56} } +func (*ScaleStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{53} } func (m *SupplementalGroupsStrategyOptions) Reset() { *m = SupplementalGroupsStrategyOptions{} } func (*SupplementalGroupsStrategyOptions) ProtoMessage() {} func (*SupplementalGroupsStrategyOptions) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{57} + return fileDescriptorGenerated, []int{54} } func init() { proto.RegisterType((*AllowedFlexVolume)(nil), "k8s.io.api.extensions.v1beta1.AllowedFlexVolume") proto.RegisterType((*AllowedHostPath)(nil), "k8s.io.api.extensions.v1beta1.AllowedHostPath") - proto.RegisterType((*CustomMetricCurrentStatus)(nil), "k8s.io.api.extensions.v1beta1.CustomMetricCurrentStatus") - proto.RegisterType((*CustomMetricCurrentStatusList)(nil), "k8s.io.api.extensions.v1beta1.CustomMetricCurrentStatusList") - proto.RegisterType((*CustomMetricTarget)(nil), "k8s.io.api.extensions.v1beta1.CustomMetricTarget") - proto.RegisterType((*CustomMetricTargetList)(nil), "k8s.io.api.extensions.v1beta1.CustomMetricTargetList") proto.RegisterType((*DaemonSet)(nil), "k8s.io.api.extensions.v1beta1.DaemonSet") proto.RegisterType((*DaemonSetCondition)(nil), "k8s.io.api.extensions.v1beta1.DaemonSetCondition") proto.RegisterType((*DaemonSetList)(nil), "k8s.io.api.extensions.v1beta1.DaemonSetList") @@ -417,6 +392,7 @@ func init() { proto.RegisterType((*RollbackConfig)(nil), "k8s.io.api.extensions.v1beta1.RollbackConfig") proto.RegisterType((*RollingUpdateDaemonSet)(nil), "k8s.io.api.extensions.v1beta1.RollingUpdateDaemonSet") proto.RegisterType((*RollingUpdateDeployment)(nil), "k8s.io.api.extensions.v1beta1.RollingUpdateDeployment") + proto.RegisterType((*RunAsGroupStrategyOptions)(nil), "k8s.io.api.extensions.v1beta1.RunAsGroupStrategyOptions") proto.RegisterType((*RunAsUserStrategyOptions)(nil), "k8s.io.api.extensions.v1beta1.RunAsUserStrategyOptions") proto.RegisterType((*SELinuxStrategyOptions)(nil), "k8s.io.api.extensions.v1beta1.SELinuxStrategyOptions") proto.RegisterType((*Scale)(nil), "k8s.io.api.extensions.v1beta1.Scale") @@ -465,126 +441,14 @@ func (m *AllowedHostPath) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.PathPrefix))) i += copy(dAtA[i:], m.PathPrefix) - return i, nil -} - -func (m *CustomMetricCurrentStatus) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *CustomMetricCurrentStatus) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0xa + dAtA[i] = 0x10 i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) - i += copy(dAtA[i:], m.Name) - dAtA[i] = 0x12 + if m.ReadOnly { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.CurrentValue.Size())) - n1, err := m.CurrentValue.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n1 - return i, nil -} - -func (m *CustomMetricCurrentStatusList) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *CustomMetricCurrentStatusList) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Items) > 0 { - for _, msg := range m.Items { - dAtA[i] = 0xa - i++ - i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - return i, nil -} - -func (m *CustomMetricTarget) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *CustomMetricTarget) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0xa - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) - i += copy(dAtA[i:], m.Name) - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.TargetValue.Size())) - n2, err := m.TargetValue.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n2 - return i, nil -} - -func (m *CustomMetricTargetList) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *CustomMetricTargetList) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Items) > 0 { - for _, msg := range m.Items { - dAtA[i] = 0xa - i++ - i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } return i, nil } @@ -606,27 +470,27 @@ func (m *DaemonSet) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n3, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n1, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n1 + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) + n2, err := m.Spec.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n2 + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) + n3, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n3 - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n4, err := m.Spec.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n4 - dAtA[i] = 0x1a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n5, err := m.Status.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n5 return i, nil } @@ -656,11 +520,11 @@ func (m *DaemonSetCondition) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LastTransitionTime.Size())) - n6, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) + n4, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n6 + i += n4 dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) @@ -690,11 +554,11 @@ func (m *DaemonSetList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n7, err := m.ListMeta.MarshalTo(dAtA[i:]) + n5, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n7 + i += n5 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -729,28 +593,28 @@ func (m *DaemonSetSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Selector.Size())) - n8, err := m.Selector.MarshalTo(dAtA[i:]) + n6, err := m.Selector.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n8 + i += n6 } dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Template.Size())) - n9, err := m.Template.MarshalTo(dAtA[i:]) + n7, err := m.Template.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n9 + i += n7 dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.UpdateStrategy.Size())) - n10, err := m.UpdateStrategy.MarshalTo(dAtA[i:]) + n8, err := m.UpdateStrategy.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n10 + i += n8 dAtA[i] = 0x20 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.MinReadySeconds)) @@ -847,11 +711,11 @@ func (m *DaemonSetUpdateStrategy) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.RollingUpdate.Size())) - n11, err := m.RollingUpdate.MarshalTo(dAtA[i:]) + n9, err := m.RollingUpdate.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n11 + i += n9 } return i, nil } @@ -874,27 +738,27 @@ func (m *Deployment) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n12, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n10, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n10 + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) + n11, err := m.Spec.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n11 + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) + n12, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n12 - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n13, err := m.Spec.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n13 - dAtA[i] = 0x1a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n14, err := m.Status.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n14 return i, nil } @@ -932,19 +796,19 @@ func (m *DeploymentCondition) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x32 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LastUpdateTime.Size())) - n15, err := m.LastUpdateTime.MarshalTo(dAtA[i:]) + n13, err := m.LastUpdateTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n15 + i += n13 dAtA[i] = 0x3a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LastTransitionTime.Size())) - n16, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) + n14, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n16 + i += n14 return i, nil } @@ -966,11 +830,11 @@ func (m *DeploymentList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n17, err := m.ListMeta.MarshalTo(dAtA[i:]) + n15, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n17 + i += n15 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -1030,11 +894,11 @@ func (m *DeploymentRollback) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.RollbackTo.Size())) - n18, err := m.RollbackTo.MarshalTo(dAtA[i:]) + n16, err := m.RollbackTo.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n18 + i += n16 return i, nil } @@ -1062,28 +926,28 @@ func (m *DeploymentSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Selector.Size())) - n19, err := m.Selector.MarshalTo(dAtA[i:]) + n17, err := m.Selector.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n19 + i += n17 } dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Template.Size())) - n20, err := m.Template.MarshalTo(dAtA[i:]) + n18, err := m.Template.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n20 + i += n18 dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Strategy.Size())) - n21, err := m.Strategy.MarshalTo(dAtA[i:]) + n19, err := m.Strategy.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n21 + i += n19 dAtA[i] = 0x28 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.MinReadySeconds)) @@ -1104,11 +968,11 @@ func (m *DeploymentSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x42 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.RollbackTo.Size())) - n22, err := m.RollbackTo.MarshalTo(dAtA[i:]) + n20, err := m.RollbackTo.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n22 + i += n20 } if m.ProgressDeadlineSeconds != nil { dAtA[i] = 0x48 @@ -1194,11 +1058,11 @@ func (m *DeploymentStrategy) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.RollingUpdate.Size())) - n23, err := m.RollingUpdate.MarshalTo(dAtA[i:]) + n21, err := m.RollingUpdate.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n23 + i += n21 } return i, nil } @@ -1259,11 +1123,11 @@ func (m *HTTPIngressPath) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Backend.Size())) - n24, err := m.Backend.MarshalTo(dAtA[i:]) + n22, err := m.Backend.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n24 + i += n22 return i, nil } @@ -1400,27 +1264,27 @@ func (m *Ingress) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n25, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n23, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n23 + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) + n24, err := m.Spec.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n24 + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) + n25, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n25 - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n26, err := m.Spec.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n26 - dAtA[i] = 0x1a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n27, err := m.Status.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n27 return i, nil } @@ -1446,11 +1310,11 @@ func (m *IngressBackend) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ServicePort.Size())) - n28, err := m.ServicePort.MarshalTo(dAtA[i:]) + n26, err := m.ServicePort.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n28 + i += n26 return i, nil } @@ -1472,11 +1336,11 @@ func (m *IngressList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n29, err := m.ListMeta.MarshalTo(dAtA[i:]) + n27, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n29 + i += n27 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -1514,11 +1378,11 @@ func (m *IngressRule) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.IngressRuleValue.Size())) - n30, err := m.IngressRuleValue.MarshalTo(dAtA[i:]) + n28, err := m.IngressRuleValue.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n30 + i += n28 return i, nil } @@ -1541,11 +1405,11 @@ func (m *IngressRuleValue) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.HTTP.Size())) - n31, err := m.HTTP.MarshalTo(dAtA[i:]) + n29, err := m.HTTP.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n31 + i += n29 } return i, nil } @@ -1569,11 +1433,11 @@ func (m *IngressSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Backend.Size())) - n32, err := m.Backend.MarshalTo(dAtA[i:]) + n30, err := m.Backend.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n32 + i += n30 } if len(m.TLS) > 0 { for _, msg := range m.TLS { @@ -1620,11 +1484,11 @@ func (m *IngressStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LoadBalancer.Size())) - n33, err := m.LoadBalancer.MarshalTo(dAtA[i:]) + n31, err := m.LoadBalancer.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n33 + i += n31 return i, nil } @@ -1683,19 +1547,19 @@ func (m *NetworkPolicy) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n34, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n32, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n34 + i += n32 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n35, err := m.Spec.MarshalTo(dAtA[i:]) + n33, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n35 + i += n33 return i, nil } @@ -1801,11 +1665,11 @@ func (m *NetworkPolicyList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n36, err := m.ListMeta.MarshalTo(dAtA[i:]) + n34, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n36 + i += n34 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -1840,31 +1704,31 @@ func (m *NetworkPolicyPeer) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.PodSelector.Size())) - n37, err := m.PodSelector.MarshalTo(dAtA[i:]) + n35, err := m.PodSelector.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n37 + i += n35 } if m.NamespaceSelector != nil { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.NamespaceSelector.Size())) - n38, err := m.NamespaceSelector.MarshalTo(dAtA[i:]) + n36, err := m.NamespaceSelector.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n38 + i += n36 } if m.IPBlock != nil { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.IPBlock.Size())) - n39, err := m.IPBlock.MarshalTo(dAtA[i:]) + n37, err := m.IPBlock.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n39 + i += n37 } return i, nil } @@ -1894,11 +1758,11 @@ func (m *NetworkPolicyPort) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Port.Size())) - n40, err := m.Port.MarshalTo(dAtA[i:]) + n38, err := m.Port.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n40 + i += n38 } return i, nil } @@ -1921,11 +1785,11 @@ func (m *NetworkPolicySpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.PodSelector.Size())) - n41, err := m.PodSelector.MarshalTo(dAtA[i:]) + n39, err := m.PodSelector.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n41 + i += n39 if len(m.Ingress) > 0 { for _, msg := range m.Ingress { dAtA[i] = 0x12 @@ -1986,19 +1850,19 @@ func (m *PodSecurityPolicy) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n42, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n40, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n42 + i += n40 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n43, err := m.Spec.MarshalTo(dAtA[i:]) + n41, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n43 + i += n41 return i, nil } @@ -2020,11 +1884,11 @@ func (m *PodSecurityPolicyList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n44, err := m.ListMeta.MarshalTo(dAtA[i:]) + n42, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n44 + i += n42 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -2162,35 +2026,35 @@ func (m *PodSecurityPolicySpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x52 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SELinux.Size())) - n45, err := m.SELinux.MarshalTo(dAtA[i:]) + n43, err := m.SELinux.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n43 + dAtA[i] = 0x5a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.RunAsUser.Size())) + n44, err := m.RunAsUser.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n44 + dAtA[i] = 0x62 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.SupplementalGroups.Size())) + n45, err := m.SupplementalGroups.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n45 - dAtA[i] = 0x5a + dAtA[i] = 0x6a i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.RunAsUser.Size())) - n46, err := m.RunAsUser.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.FSGroup.Size())) + n46, err := m.FSGroup.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n46 - dAtA[i] = 0x62 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.SupplementalGroups.Size())) - n47, err := m.SupplementalGroups.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n47 - dAtA[i] = 0x6a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.FSGroup.Size())) - n48, err := m.FSGroup.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n48 dAtA[i] = 0x70 i++ if m.ReadOnlyRootFilesystem { @@ -2249,6 +2113,69 @@ func (m *PodSecurityPolicySpec) MarshalTo(dAtA []byte) (int, error) { i += n } } + if len(m.AllowedUnsafeSysctls) > 0 { + for _, s := range m.AllowedUnsafeSysctls { + dAtA[i] = 0x9a + i++ + dAtA[i] = 0x1 + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } + if len(m.ForbiddenSysctls) > 0 { + for _, s := range m.ForbiddenSysctls { + dAtA[i] = 0xa2 + i++ + dAtA[i] = 0x1 + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } + if len(m.AllowedProcMountTypes) > 0 { + for _, s := range m.AllowedProcMountTypes { + dAtA[i] = 0xaa + i++ + dAtA[i] = 0x1 + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } + if m.RunAsGroup != nil { + dAtA[i] = 0xb2 + i++ + dAtA[i] = 0x1 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.RunAsGroup.Size())) + n47, err := m.RunAsGroup.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n47 + } return i, nil } @@ -2270,27 +2197,27 @@ func (m *ReplicaSet) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n49, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n48, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n48 + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) + n49, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n49 - dAtA[i] = 0x12 + dAtA[i] = 0x1a i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n50, err := m.Spec.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) + n50, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n50 - dAtA[i] = 0x1a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n51, err := m.Status.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n51 return i, nil } @@ -2320,11 +2247,11 @@ func (m *ReplicaSetCondition) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LastTransitionTime.Size())) - n52, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) + n51, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n52 + i += n51 dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) @@ -2354,11 +2281,11 @@ func (m *ReplicaSetList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n53, err := m.ListMeta.MarshalTo(dAtA[i:]) + n52, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n53 + i += n52 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -2398,20 +2325,20 @@ func (m *ReplicaSetSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Selector.Size())) - n54, err := m.Selector.MarshalTo(dAtA[i:]) + n53, err := m.Selector.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n54 + i += n53 } dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Template.Size())) - n55, err := m.Template.MarshalTo(dAtA[i:]) + n54, err := m.Template.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n55 + i += n54 dAtA[i] = 0x20 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.MinReadySeconds)) @@ -2521,11 +2448,11 @@ func (m *RollingUpdateDaemonSet) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.MaxUnavailable.Size())) - n56, err := m.MaxUnavailable.MarshalTo(dAtA[i:]) + n55, err := m.MaxUnavailable.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n56 + i += n55 } return i, nil } @@ -2549,21 +2476,55 @@ func (m *RollingUpdateDeployment) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.MaxUnavailable.Size())) - n57, err := m.MaxUnavailable.MarshalTo(dAtA[i:]) + n56, err := m.MaxUnavailable.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n57 + i += n56 } if m.MaxSurge != nil { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.MaxSurge.Size())) - n58, err := m.MaxSurge.MarshalTo(dAtA[i:]) + n57, err := m.MaxSurge.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n58 + i += n57 + } + return i, nil +} + +func (m *RunAsGroupStrategyOptions) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RunAsGroupStrategyOptions) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Rule))) + i += copy(dAtA[i:], m.Rule) + if len(m.Ranges) > 0 { + for _, msg := range m.Ranges { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } } return i, nil } @@ -2625,11 +2586,11 @@ func (m *SELinuxStrategyOptions) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SELinuxOptions.Size())) - n59, err := m.SELinuxOptions.MarshalTo(dAtA[i:]) + n58, err := m.SELinuxOptions.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n59 + i += n58 } return i, nil } @@ -2652,27 +2613,27 @@ func (m *Scale) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n60, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n59, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n59 + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) + n60, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n60 - dAtA[i] = 0x12 + dAtA[i] = 0x1a i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n61, err := m.Spec.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) + n61, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n61 - dAtA[i] = 0x1a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n62, err := m.Status.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n62 return i, nil } @@ -2778,24 +2739,6 @@ func (m *SupplementalGroupsStrategyOptions) MarshalTo(dAtA []byte) (int, error) return i, nil } -func encodeFixed64Generated(dAtA []byte, offset int, v uint64) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - dAtA[offset+4] = uint8(v >> 32) - dAtA[offset+5] = uint8(v >> 40) - dAtA[offset+6] = uint8(v >> 48) - dAtA[offset+7] = uint8(v >> 56) - return offset + 8 -} -func encodeFixed32Generated(dAtA []byte, offset int, v uint32) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - return offset + 4 -} func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -2818,50 +2761,7 @@ func (m *AllowedHostPath) Size() (n int) { _ = l l = len(m.PathPrefix) n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *CustomMetricCurrentStatus) Size() (n int) { - var l int - _ = l - l = len(m.Name) - n += 1 + l + sovGenerated(uint64(l)) - l = m.CurrentValue.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *CustomMetricCurrentStatusList) Size() (n int) { - var l int - _ = l - if len(m.Items) > 0 { - for _, e := range m.Items { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *CustomMetricTarget) Size() (n int) { - var l int - _ = l - l = len(m.Name) - n += 1 + l + sovGenerated(uint64(l)) - l = m.TargetValue.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *CustomMetricTargetList) Size() (n int) { - var l int - _ = l - if len(m.Items) > 0 { - for _, e := range m.Items { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } + n += 2 return n } @@ -3457,6 +3357,28 @@ func (m *PodSecurityPolicySpec) Size() (n int) { n += 2 + l + sovGenerated(uint64(l)) } } + if len(m.AllowedUnsafeSysctls) > 0 { + for _, s := range m.AllowedUnsafeSysctls { + l = len(s) + n += 2 + l + sovGenerated(uint64(l)) + } + } + if len(m.ForbiddenSysctls) > 0 { + for _, s := range m.ForbiddenSysctls { + l = len(s) + n += 2 + l + sovGenerated(uint64(l)) + } + } + if len(m.AllowedProcMountTypes) > 0 { + for _, s := range m.AllowedProcMountTypes { + l = len(s) + n += 2 + l + sovGenerated(uint64(l)) + } + } + if m.RunAsGroup != nil { + l = m.RunAsGroup.Size() + n += 2 + l + sovGenerated(uint64(l)) + } return n } @@ -3572,6 +3494,20 @@ func (m *RollingUpdateDeployment) Size() (n int) { return n } +func (m *RunAsGroupStrategyOptions) Size() (n int) { + var l int + _ = l + l = len(m.Rule) + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Ranges) > 0 { + for _, e := range m.Ranges { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + func (m *RunAsUserStrategyOptions) Size() (n int) { var l int _ = l @@ -3677,48 +3613,7 @@ func (this *AllowedHostPath) String() string { } s := strings.Join([]string{`&AllowedHostPath{`, `PathPrefix:` + fmt.Sprintf("%v", this.PathPrefix) + `,`, - `}`, - }, "") - return s -} -func (this *CustomMetricCurrentStatus) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CustomMetricCurrentStatus{`, - `Name:` + fmt.Sprintf("%v", this.Name) + `,`, - `CurrentValue:` + strings.Replace(strings.Replace(this.CurrentValue.String(), "Quantity", "k8s_io_apimachinery_pkg_api_resource.Quantity", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *CustomMetricCurrentStatusList) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CustomMetricCurrentStatusList{`, - `Items:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Items), "CustomMetricCurrentStatus", "CustomMetricCurrentStatus", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *CustomMetricTarget) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CustomMetricTarget{`, - `Name:` + fmt.Sprintf("%v", this.Name) + `,`, - `TargetValue:` + strings.Replace(strings.Replace(this.TargetValue.String(), "Quantity", "k8s_io_apimachinery_pkg_api_resource.Quantity", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *CustomMetricTargetList) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&CustomMetricTargetList{`, - `Items:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Items), "CustomMetricTarget", "CustomMetricTarget", 1), `&`, ``, 1) + `,`, + `ReadOnly:` + fmt.Sprintf("%v", this.ReadOnly) + `,`, `}`, }, "") return s @@ -4189,6 +4084,10 @@ func (this *PodSecurityPolicySpec) String() string { `AllowPrivilegeEscalation:` + valueToStringGenerated(this.AllowPrivilegeEscalation) + `,`, `AllowedHostPaths:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.AllowedHostPaths), "AllowedHostPath", "AllowedHostPath", 1), `&`, ``, 1) + `,`, `AllowedFlexVolumes:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.AllowedFlexVolumes), "AllowedFlexVolume", "AllowedFlexVolume", 1), `&`, ``, 1) + `,`, + `AllowedUnsafeSysctls:` + fmt.Sprintf("%v", this.AllowedUnsafeSysctls) + `,`, + `ForbiddenSysctls:` + fmt.Sprintf("%v", this.ForbiddenSysctls) + `,`, + `AllowedProcMountTypes:` + fmt.Sprintf("%v", this.AllowedProcMountTypes) + `,`, + `RunAsGroup:` + strings.Replace(fmt.Sprintf("%v", this.RunAsGroup), "RunAsGroupStrategyOptions", "RunAsGroupStrategyOptions", 1) + `,`, `}`, }, "") return s @@ -4298,6 +4197,17 @@ func (this *RollingUpdateDeployment) String() string { }, "") return s } +func (this *RunAsGroupStrategyOptions) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&RunAsGroupStrategyOptions{`, + `Rule:` + fmt.Sprintf("%v", this.Rule) + `,`, + `Ranges:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Ranges), "IDRange", "IDRange", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} func (this *RunAsUserStrategyOptions) String() string { if this == nil { return "nil" @@ -4520,90 +4430,11 @@ func (m *AllowedHostPath) Unmarshal(dAtA []byte) error { } m.PathPrefix = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *CustomMetricCurrentStatus) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: CustomMetricCurrentStatus: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: CustomMetricCurrentStatus: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Name = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CurrentValue", wireType) + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ReadOnly", wireType) } - var msglen int + var v int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -4613,293 +4444,12 @@ func (m *CustomMetricCurrentStatus) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= (int(b) & 0x7F) << shift + v |= (int(b) & 0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.CurrentValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *CustomMetricCurrentStatusList) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: CustomMetricCurrentStatusList: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: CustomMetricCurrentStatusList: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Items = append(m.Items, CustomMetricCurrentStatus{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *CustomMetricTarget) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: CustomMetricTarget: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: CustomMetricTarget: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Name = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TargetValue", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.TargetValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *CustomMetricTargetList) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: CustomMetricTargetList: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: CustomMetricTargetList: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Items = append(m.Items, CustomMetricTarget{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex + m.ReadOnly = bool(v != 0) default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -6495,51 +6045,14 @@ func (m *DeploymentRollback) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.UpdatedAnnotations == nil { m.UpdatedAnnotations = make(map[string]string) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -6549,41 +6062,80 @@ func (m *DeploymentRollback) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - m.UpdatedAnnotations[mapkey] = mapvalue - } else { - var mapvalue string - m.UpdatedAnnotations[mapkey] = mapvalue } + m.UpdatedAnnotations[mapkey] = mapvalue iNdEx = postIndex case 3: if wireType != 2 { @@ -10306,6 +9858,126 @@ func (m *PodSecurityPolicySpec) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 19: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AllowedUnsafeSysctls", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AllowedUnsafeSysctls = append(m.AllowedUnsafeSysctls, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 20: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ForbiddenSysctls", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ForbiddenSysctls = append(m.ForbiddenSysctls, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 21: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AllowedProcMountTypes", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AllowedProcMountTypes = append(m.AllowedProcMountTypes, k8s_io_api_core_v1.ProcMountType(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 22: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RunAsGroup", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.RunAsGroup == nil { + m.RunAsGroup = &RunAsGroupStrategyOptions{} + } + if err := m.RunAsGroup.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -11420,6 +11092,116 @@ func (m *RollingUpdateDeployment) Unmarshal(dAtA []byte) error { } return nil } +func (m *RunAsGroupStrategyOptions) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RunAsGroupStrategyOptions: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RunAsGroupStrategyOptions: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Rule", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Rule = RunAsGroupStrategy(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Ranges", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Ranges = append(m.Ranges, IDRange{}) + if err := m.Ranges[len(m.Ranges)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *RunAsUserStrategyOptions) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -11925,51 +11707,14 @@ func (m *ScaleStatus) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.Selector == nil { m.Selector = make(map[string]string) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -11979,41 +11724,80 @@ func (m *ScaleStatus) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - m.Selector[mapkey] = mapvalue - } else { - var mapvalue string - m.Selector[mapkey] = mapvalue } + m.Selector[mapkey] = mapvalue iNdEx = postIndex case 3: if wireType != 2 { @@ -12285,229 +12069,230 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 3571 bytes of a gzipped FileDescriptorProto + // 3587 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0xcd, 0x6f, 0x1c, 0x47, - 0x76, 0x57, 0xcf, 0x0c, 0x39, 0xc3, 0x47, 0xf1, 0xab, 0x28, 0x93, 0x63, 0xca, 0xe2, 0xc8, 0x6d, - 0x40, 0x91, 0x1c, 0x69, 0xc6, 0x92, 0x2d, 0x59, 0xb1, 0x10, 0x3b, 0x1c, 0x52, 0x1f, 0x74, 0xf8, - 0xa5, 0x1a, 0x52, 0x71, 0x8c, 0xc8, 0x71, 0x73, 0xa6, 0x38, 0x6c, 0xb1, 0xa7, 0xbb, 0xdd, 0x5d, - 0x4d, 0x73, 0x80, 0x20, 0xc8, 0x21, 0x08, 0x10, 0x20, 0x41, 0x92, 0x83, 0xf3, 0x71, 0x8b, 0x2f, - 0x39, 0x25, 0x48, 0x6e, 0xc9, 0xc1, 0x30, 0x10, 0xc0, 0x0b, 0x08, 0x0b, 0x2f, 0xe0, 0xdb, 0xfa, - 0x44, 0xac, 0xe9, 0xd3, 0x62, 0xff, 0x81, 0x85, 0x0e, 0x8b, 0x45, 0x55, 0x57, 0x7f, 0x77, 0x73, - 0x66, 0x68, 0x89, 0x58, 0x2c, 0xf6, 0xc6, 0xa9, 0xf7, 0xde, 0xef, 0xbd, 0x7a, 0xf5, 0xea, 0xbd, - 0xd7, 0x55, 0x45, 0xb8, 0xb7, 0x77, 0xdb, 0xae, 0xaa, 0x46, 0x6d, 0xcf, 0xd9, 0x26, 0x96, 0x4e, - 0x28, 0xb1, 0x6b, 0xfb, 0x44, 0x6f, 0x19, 0x56, 0x4d, 0x10, 0x14, 0x53, 0xad, 0x91, 0x03, 0x4a, - 0x74, 0x5b, 0x35, 0x74, 0xbb, 0xb6, 0x7f, 0x7d, 0x9b, 0x50, 0xe5, 0x7a, 0xad, 0x4d, 0x74, 0x62, - 0x29, 0x94, 0xb4, 0xaa, 0xa6, 0x65, 0x50, 0x03, 0x5d, 0x70, 0xd9, 0xab, 0x8a, 0xa9, 0x56, 0x03, - 0xf6, 0xaa, 0x60, 0x9f, 0xbb, 0xd6, 0x56, 0xe9, 0xae, 0xb3, 0x5d, 0x6d, 0x1a, 0x9d, 0x5a, 0xdb, - 0x68, 0x1b, 0x35, 0x2e, 0xb5, 0xed, 0xec, 0xf0, 0x5f, 0xfc, 0x07, 0xff, 0xcb, 0x45, 0x9b, 0x93, - 0x43, 0xca, 0x9b, 0x86, 0x45, 0x6a, 0xfb, 0x09, 0x8d, 0x73, 0x57, 0x42, 0x3c, 0xa6, 0xa1, 0xa9, - 0xcd, 0x6e, 0x96, 0x71, 0x73, 0x6f, 0x05, 0xac, 0x1d, 0xa5, 0xb9, 0xab, 0xea, 0xc4, 0xea, 0xd6, - 0xcc, 0xbd, 0x36, 0x97, 0xb5, 0x88, 0x6d, 0x38, 0x56, 0x93, 0x0c, 0x24, 0x65, 0xd7, 0x3a, 0x84, - 0x2a, 0x69, 0x66, 0xd5, 0xb2, 0xa4, 0x2c, 0x47, 0xa7, 0x6a, 0x27, 0xa9, 0xe6, 0x56, 0x2f, 0x01, - 0xbb, 0xb9, 0x4b, 0x3a, 0x4a, 0x42, 0xee, 0xcd, 0x2c, 0x39, 0x87, 0xaa, 0x5a, 0x4d, 0xd5, 0xa9, - 0x4d, 0xad, 0xb8, 0x90, 0x7c, 0x07, 0xa6, 0x16, 0x34, 0xcd, 0xf8, 0x94, 0xb4, 0xee, 0x69, 0xe4, - 0xe0, 0x91, 0xa1, 0x39, 0x1d, 0x82, 0x2e, 0xc1, 0x70, 0xcb, 0x52, 0xf7, 0x89, 0x55, 0x96, 0x2e, - 0x4a, 0x97, 0x47, 0xea, 0xe3, 0x4f, 0x0f, 0x2b, 0x67, 0x8e, 0x0e, 0x2b, 0xc3, 0x4b, 0x7c, 0x14, - 0x0b, 0xaa, 0x7c, 0x17, 0x26, 0x84, 0xf0, 0x03, 0xc3, 0xa6, 0x1b, 0x0a, 0xdd, 0x45, 0x37, 0x00, - 0x4c, 0x85, 0xee, 0x6e, 0x58, 0x64, 0x47, 0x3d, 0x10, 0xe2, 0x48, 0x88, 0xc3, 0x86, 0x4f, 0xc1, - 0x21, 0x2e, 0xf9, 0xdf, 0x24, 0x78, 0x79, 0xd1, 0xb1, 0xa9, 0xd1, 0x59, 0x25, 0xd4, 0x52, 0x9b, - 0x8b, 0x8e, 0x65, 0x11, 0x9d, 0x36, 0xa8, 0x42, 0x1d, 0x1b, 0x5d, 0x84, 0x82, 0xae, 0x74, 0x88, - 0xc0, 0x3a, 0x2b, 0xb0, 0x0a, 0x6b, 0x4a, 0x87, 0x60, 0x4e, 0x41, 0x1f, 0xc2, 0xd0, 0xbe, 0xa2, - 0x39, 0xa4, 0x9c, 0xbb, 0x28, 0x5d, 0x1e, 0xbd, 0x51, 0xad, 0x06, 0xa1, 0xe7, 0x3b, 0xa2, 0x6a, - 0xee, 0xb5, 0x79, 0x2c, 0x7a, 0xab, 0x5b, 0x7d, 0xe8, 0x28, 0x3a, 0x55, 0x69, 0xb7, 0x7e, 0x4e, - 0x40, 0x9e, 0x15, 0x7a, 0x1f, 0x31, 0x2c, 0xec, 0x42, 0xca, 0x7f, 0x09, 0x17, 0x32, 0x4d, 0x5b, - 0x51, 0x6d, 0x8a, 0x1e, 0xc3, 0x90, 0x4a, 0x49, 0xc7, 0x2e, 0x4b, 0x17, 0xf3, 0x97, 0x47, 0x6f, - 0xdc, 0xae, 0x1e, 0x1b, 0xf7, 0xd5, 0x4c, 0xb0, 0xfa, 0x98, 0x30, 0x63, 0x68, 0x99, 0xc1, 0x61, - 0x17, 0x55, 0xfe, 0x27, 0x09, 0x50, 0x58, 0x66, 0x53, 0xb1, 0xda, 0x84, 0xf6, 0xe1, 0x94, 0x3f, - 0xfd, 0x61, 0x4e, 0x99, 0x16, 0x90, 0xa3, 0xae, 0xc2, 0x88, 0x4f, 0x4c, 0x98, 0x49, 0x9a, 0xc4, - 0x9d, 0xf1, 0x28, 0xea, 0x8c, 0xeb, 0x03, 0x38, 0xc3, 0x45, 0xc9, 0xf0, 0xc2, 0x67, 0x39, 0x18, - 0x59, 0x52, 0x48, 0xc7, 0xd0, 0x1b, 0x84, 0xa2, 0x8f, 0xa1, 0xc4, 0x36, 0x5b, 0x4b, 0xa1, 0x0a, - 0x77, 0xc0, 0xe8, 0x8d, 0x37, 0x8e, 0x9b, 0x9d, 0x5d, 0x65, 0xdc, 0xd5, 0xfd, 0xeb, 0xd5, 0xf5, - 0xed, 0x27, 0xa4, 0x49, 0x57, 0x09, 0x55, 0x82, 0x98, 0x0c, 0xc6, 0xb0, 0x8f, 0x8a, 0xd6, 0xa0, - 0x60, 0x9b, 0xa4, 0x29, 0x7c, 0x77, 0xb5, 0xc7, 0x34, 0x7c, 0xcb, 0x1a, 0x26, 0x69, 0x06, 0x8b, - 0xc1, 0x7e, 0x61, 0x8e, 0x83, 0x1e, 0xc1, 0xb0, 0xcd, 0x57, 0xb9, 0x9c, 0x4f, 0xac, 0xc6, 0xf1, - 0x88, 0x6e, 0x6c, 0xf8, 0x1b, 0xd0, 0xfd, 0x8d, 0x05, 0x9a, 0xfc, 0xf3, 0x1c, 0x20, 0x9f, 0x77, - 0xd1, 0xd0, 0x5b, 0x2a, 0x55, 0x0d, 0x1d, 0xbd, 0x03, 0x05, 0xda, 0x35, 0xbd, 0xe8, 0xb8, 0xe4, - 0x19, 0xb4, 0xd9, 0x35, 0xc9, 0xb3, 0xc3, 0xca, 0x4c, 0x52, 0x82, 0x51, 0x30, 0x97, 0x41, 0x2b, - 0xbe, 0xa9, 0x39, 0x2e, 0xfd, 0x56, 0x54, 0xf5, 0xb3, 0xc3, 0x4a, 0x4a, 0x2e, 0xae, 0xfa, 0x48, - 0x51, 0x03, 0xd1, 0x3e, 0x20, 0x4d, 0xb1, 0xe9, 0xa6, 0xa5, 0xe8, 0xb6, 0xab, 0x49, 0xed, 0x10, - 0xe1, 0x84, 0xd7, 0xfb, 0x5b, 0x34, 0x26, 0x51, 0x9f, 0x13, 0x56, 0xa0, 0x95, 0x04, 0x1a, 0x4e, - 0xd1, 0xc0, 0x32, 0x98, 0x45, 0x14, 0xdb, 0xd0, 0xcb, 0x85, 0x68, 0x06, 0xc3, 0x7c, 0x14, 0x0b, - 0x2a, 0xba, 0x02, 0xc5, 0x0e, 0xb1, 0x6d, 0xa5, 0x4d, 0xca, 0x43, 0x9c, 0x71, 0x42, 0x30, 0x16, - 0x57, 0xdd, 0x61, 0xec, 0xd1, 0xe5, 0x2f, 0x24, 0x18, 0xf3, 0x3d, 0xc7, 0xa3, 0xfd, 0xcf, 0x12, - 0x71, 0x58, 0xed, 0x6f, 0x4a, 0x4c, 0x9a, 0x47, 0xe1, 0xa4, 0xd0, 0x56, 0xf2, 0x46, 0x42, 0x31, - 0xb8, 0xea, 0xed, 0xa5, 0x1c, 0xdf, 0x4b, 0x97, 0xfb, 0x0d, 0x99, 0x8c, 0x2d, 0xf4, 0xcf, 0x85, - 0x90, 0xf9, 0x2c, 0x34, 0xd1, 0x63, 0x28, 0xd9, 0x44, 0x23, 0x4d, 0x6a, 0x58, 0xc2, 0xfc, 0x37, - 0xfb, 0x34, 0x5f, 0xd9, 0x26, 0x5a, 0x43, 0x88, 0xd6, 0xcf, 0x32, 0xfb, 0xbd, 0x5f, 0xd8, 0x87, - 0x44, 0x0f, 0xa1, 0x44, 0x49, 0xc7, 0xd4, 0x14, 0xea, 0xe5, 0xa0, 0xd7, 0xc2, 0x53, 0x60, 0x91, - 0xc3, 0xc0, 0x36, 0x8c, 0xd6, 0xa6, 0x60, 0xe3, 0xdb, 0xc7, 0x77, 0x89, 0x37, 0x8a, 0x7d, 0x18, - 0xb4, 0x0f, 0xe3, 0x8e, 0xd9, 0x62, 0x9c, 0x94, 0xd5, 0xb0, 0x76, 0x57, 0x44, 0xd2, 0xad, 0x7e, - 0x7d, 0xb3, 0x15, 0x91, 0xae, 0xcf, 0x08, 0x5d, 0xe3, 0xd1, 0x71, 0x1c, 0xd3, 0x82, 0x16, 0x60, - 0xa2, 0xa3, 0xea, 0x98, 0x28, 0xad, 0x6e, 0x83, 0x34, 0x0d, 0xbd, 0x65, 0xf3, 0xb0, 0x1a, 0xaa, - 0xcf, 0x0a, 0x80, 0x89, 0xd5, 0x28, 0x19, 0xc7, 0xf9, 0xd1, 0xfb, 0x80, 0xbc, 0x69, 0xdc, 0x77, - 0x4b, 0xb0, 0x6a, 0xe8, 0x3c, 0xe6, 0xf2, 0x41, 0x70, 0x6f, 0x26, 0x38, 0x70, 0x8a, 0x14, 0x5a, - 0x81, 0x73, 0x16, 0xd9, 0x57, 0xd9, 0x1c, 0x1f, 0xa8, 0x36, 0x35, 0xac, 0xee, 0x8a, 0xda, 0x51, - 0x69, 0x79, 0x98, 0xdb, 0x54, 0x3e, 0x3a, 0xac, 0x9c, 0xc3, 0x29, 0x74, 0x9c, 0x2a, 0x25, 0xff, - 0xcb, 0x30, 0x4c, 0xc4, 0xf2, 0x0d, 0x7a, 0x04, 0x33, 0x4d, 0xb7, 0x38, 0xad, 0x39, 0x9d, 0x6d, - 0x62, 0x35, 0x9a, 0xbb, 0xa4, 0xe5, 0x68, 0xa4, 0xc5, 0x03, 0x65, 0xa8, 0x3e, 0x2f, 0x2c, 0x9e, - 0x59, 0x4c, 0xe5, 0xc2, 0x19, 0xd2, 0xcc, 0x0b, 0x3a, 0x1f, 0x5a, 0x55, 0x6d, 0xdb, 0xc7, 0xcc, - 0x71, 0x4c, 0xdf, 0x0b, 0x6b, 0x09, 0x0e, 0x9c, 0x22, 0xc5, 0x6c, 0x6c, 0x11, 0x5b, 0xb5, 0x48, - 0x2b, 0x6e, 0x63, 0x3e, 0x6a, 0xe3, 0x52, 0x2a, 0x17, 0xce, 0x90, 0x46, 0x37, 0x61, 0xd4, 0xd5, - 0xc6, 0xd7, 0x4f, 0x2c, 0xb4, 0x5f, 0x0e, 0xd7, 0x02, 0x12, 0x0e, 0xf3, 0xb1, 0xa9, 0x19, 0xdb, - 0x36, 0xb1, 0xf6, 0x49, 0x2b, 0x7b, 0x81, 0xd7, 0x13, 0x1c, 0x38, 0x45, 0x8a, 0x4d, 0xcd, 0x8d, - 0xc0, 0xc4, 0xd4, 0x86, 0xa3, 0x53, 0xdb, 0x4a, 0xe5, 0xc2, 0x19, 0xd2, 0x2c, 0x8e, 0x5d, 0x93, - 0x17, 0xf6, 0x15, 0x55, 0x53, 0xb6, 0x35, 0x52, 0x2e, 0x46, 0xe3, 0x78, 0x2d, 0x4a, 0xc6, 0x71, - 0x7e, 0x74, 0x1f, 0xa6, 0xdc, 0xa1, 0x2d, 0x5d, 0xf1, 0x41, 0x4a, 0x1c, 0xe4, 0x65, 0x01, 0x32, - 0xb5, 0x16, 0x67, 0xc0, 0x49, 0x19, 0xf4, 0x0e, 0x8c, 0x37, 0x0d, 0x4d, 0xe3, 0xf1, 0xb8, 0x68, - 0x38, 0x3a, 0x2d, 0x8f, 0x70, 0x14, 0xc4, 0xf6, 0xe3, 0x62, 0x84, 0x82, 0x63, 0x9c, 0x88, 0x00, - 0x34, 0xbd, 0x82, 0x63, 0x97, 0xa1, 0xaf, 0x5e, 0x23, 0x59, 0xf4, 0x82, 0x1e, 0xc0, 0x1f, 0xb2, - 0x71, 0x08, 0x58, 0xfe, 0xb1, 0x04, 0xb3, 0x19, 0xa9, 0x03, 0xbd, 0x17, 0x29, 0xb1, 0xbf, 0x1f, - 0x2b, 0xb1, 0xe7, 0x33, 0xc4, 0x42, 0x75, 0x56, 0x87, 0x31, 0x8b, 0xcd, 0x4a, 0x6f, 0xbb, 0x2c, - 0x22, 0x47, 0xde, 0xec, 0x31, 0x0d, 0x1c, 0x96, 0x09, 0x72, 0xfe, 0xd4, 0xd1, 0x61, 0x65, 0x2c, - 0x42, 0xc3, 0x51, 0x78, 0xf9, 0x5f, 0x73, 0x00, 0x4b, 0xc4, 0xd4, 0x8c, 0x6e, 0x87, 0xe8, 0xa7, - 0xd1, 0x43, 0xad, 0x47, 0x7a, 0xa8, 0x6b, 0xbd, 0x96, 0xc7, 0x37, 0x2d, 0xb3, 0x89, 0xfa, 0x93, - 0x58, 0x13, 0x55, 0xeb, 0x1f, 0xf2, 0xf8, 0x2e, 0xea, 0xa7, 0x79, 0x98, 0x0e, 0x98, 0x83, 0x36, - 0xea, 0x4e, 0x64, 0x8d, 0x7f, 0x2f, 0xb6, 0xc6, 0xb3, 0x29, 0x22, 0x2f, 0xac, 0x8f, 0x7a, 0xfe, - 0xfd, 0x0c, 0x7a, 0x02, 0xe3, 0xac, 0x71, 0x72, 0xc3, 0x83, 0xb7, 0x65, 0xc3, 0x03, 0xb7, 0x65, - 0x7e, 0x01, 0x5d, 0x89, 0x20, 0xe1, 0x18, 0x72, 0x46, 0x1b, 0x58, 0x7c, 0xd1, 0x6d, 0xa0, 0xfc, - 0xa5, 0x04, 0xe3, 0xc1, 0x32, 0x9d, 0x42, 0xd3, 0xb6, 0x16, 0x6d, 0xda, 0xae, 0xf4, 0x1d, 0xa2, - 0x19, 0x5d, 0xdb, 0x2f, 0x59, 0x83, 0xef, 0x33, 0xb1, 0x0d, 0xbe, 0xad, 0x34, 0xf7, 0xfa, 0xf8, - 0xfc, 0xfb, 0x4c, 0x02, 0x24, 0xaa, 0xc0, 0x82, 0xae, 0x1b, 0x54, 0x71, 0x73, 0xa5, 0x6b, 0xd6, - 0x72, 0xdf, 0x66, 0x79, 0x1a, 0xab, 0x5b, 0x09, 0xac, 0xbb, 0x3a, 0xb5, 0xba, 0xc1, 0x8a, 0x24, - 0x19, 0x70, 0x8a, 0x01, 0x48, 0x01, 0xb0, 0x04, 0xe6, 0xa6, 0x21, 0x36, 0xf2, 0xb5, 0x3e, 0x72, - 0x1e, 0x13, 0x58, 0x34, 0xf4, 0x1d, 0xb5, 0x1d, 0xa4, 0x1d, 0xec, 0x03, 0xe1, 0x10, 0xe8, 0xdc, - 0x5d, 0x98, 0xcd, 0xb0, 0x16, 0x4d, 0x42, 0x7e, 0x8f, 0x74, 0x5d, 0xb7, 0x61, 0xf6, 0x27, 0x3a, - 0x17, 0xfe, 0x4c, 0x1e, 0x11, 0x5f, 0xb8, 0xef, 0xe4, 0x6e, 0x4b, 0xf2, 0x17, 0x43, 0xe1, 0xd8, - 0xe1, 0x1d, 0xf3, 0x65, 0x28, 0x59, 0xc4, 0xd4, 0xd4, 0xa6, 0x62, 0x8b, 0x46, 0x88, 0x37, 0xbf, - 0x58, 0x8c, 0x61, 0x9f, 0x1a, 0xe9, 0xad, 0x73, 0x2f, 0xb6, 0xb7, 0xce, 0x3f, 0x9f, 0xde, 0xfa, - 0xcf, 0xa1, 0x64, 0x7b, 0x5d, 0x75, 0x81, 0x43, 0x5e, 0x1f, 0x20, 0xbf, 0x8a, 0x86, 0xda, 0x57, - 0xe0, 0xb7, 0xd2, 0x3e, 0x68, 0x5a, 0x13, 0x3d, 0x34, 0x60, 0x13, 0xfd, 0x5c, 0x1b, 0x5f, 0x96, - 0x53, 0x4d, 0xc5, 0xb1, 0x49, 0x8b, 0x27, 0xa2, 0x52, 0x90, 0x53, 0x37, 0xf8, 0x28, 0x16, 0x54, - 0xf4, 0x38, 0x12, 0xb2, 0xa5, 0x93, 0x84, 0xec, 0x78, 0x76, 0xb8, 0xa2, 0x2d, 0x98, 0x35, 0x2d, - 0xa3, 0x6d, 0x11, 0xdb, 0x5e, 0x22, 0x4a, 0x4b, 0x53, 0x75, 0xe2, 0xf9, 0xc7, 0xed, 0x88, 0xce, - 0x1f, 0x1d, 0x56, 0x66, 0x37, 0xd2, 0x59, 0x70, 0x96, 0xac, 0xfc, 0xb4, 0x00, 0x93, 0xf1, 0x0a, - 0x98, 0xd1, 0xa4, 0x4a, 0x27, 0x6a, 0x52, 0xaf, 0x86, 0x36, 0x83, 0xdb, 0xc1, 0xfb, 0xab, 0x9f, - 0xb2, 0x21, 0x16, 0x60, 0x42, 0x64, 0x03, 0x8f, 0x28, 0xda, 0x74, 0x7f, 0xf5, 0xb7, 0xa2, 0x64, - 0x1c, 0xe7, 0x67, 0xad, 0x67, 0xd0, 0x51, 0x7a, 0x20, 0x85, 0x68, 0xeb, 0xb9, 0x10, 0x67, 0xc0, - 0x49, 0x19, 0xb4, 0x0a, 0xd3, 0x8e, 0x9e, 0x84, 0x72, 0xa3, 0xf1, 0xbc, 0x80, 0x9a, 0xde, 0x4a, - 0xb2, 0xe0, 0x34, 0x39, 0xb4, 0x13, 0xe9, 0x46, 0x87, 0x79, 0x86, 0xbd, 0xd1, 0xf7, 0xde, 0xe9, - 0xbb, 0x1d, 0x45, 0x77, 0x60, 0xcc, 0xe2, 0xdf, 0x1d, 0x9e, 0xc1, 0x6e, 0xef, 0xfe, 0x92, 0x10, - 0x1b, 0xc3, 0x61, 0x22, 0x8e, 0xf2, 0xa6, 0xb4, 0xdb, 0xa5, 0x7e, 0xdb, 0x6d, 0xf9, 0xff, 0xa5, - 0x70, 0x11, 0xf2, 0x5b, 0xe0, 0x5e, 0xa7, 0x4c, 0x09, 0x89, 0x50, 0x77, 0x64, 0xa4, 0x77, 0xbf, - 0xb7, 0x06, 0xea, 0x7e, 0x83, 0xe2, 0xd9, 0xbb, 0xfd, 0xfd, 0x5c, 0x82, 0x99, 0x7b, 0x8d, 0xfb, - 0x96, 0xe1, 0x98, 0x9e, 0x39, 0xeb, 0xa6, 0xeb, 0xd7, 0xb7, 0xa1, 0x60, 0x39, 0x9a, 0x37, 0x8f, - 0xd7, 0xbc, 0x79, 0x60, 0x47, 0x63, 0xf3, 0x98, 0x8e, 0x49, 0xb9, 0x93, 0x60, 0x02, 0x68, 0x0d, - 0x86, 0x2d, 0x45, 0x6f, 0x13, 0xaf, 0xac, 0x5e, 0xea, 0x61, 0xfd, 0xf2, 0x12, 0x66, 0xec, 0xa1, - 0xe6, 0x8d, 0x4b, 0x63, 0x81, 0x22, 0xff, 0xbd, 0x04, 0x13, 0x0f, 0x36, 0x37, 0x37, 0x96, 0x75, - 0xbe, 0xa3, 0xf9, 0x79, 0xfa, 0x45, 0x28, 0x98, 0x0a, 0xdd, 0x8d, 0x57, 0x7a, 0x46, 0xc3, 0x9c, - 0x82, 0x3e, 0x80, 0x22, 0xcb, 0x24, 0x44, 0x6f, 0xf5, 0xd9, 0x6a, 0x0b, 0xf8, 0xba, 0x2b, 0x14, - 0x74, 0x88, 0x62, 0x00, 0x7b, 0x70, 0xf2, 0x1e, 0x9c, 0x0b, 0x99, 0xc3, 0xfc, 0xc1, 0x8f, 0x81, - 0x51, 0x03, 0x86, 0x98, 0x66, 0xef, 0x94, 0xb7, 0xd7, 0x61, 0x66, 0x6c, 0x4a, 0x41, 0xa7, 0xc3, - 0x7e, 0xd9, 0xd8, 0xc5, 0x92, 0x57, 0x61, 0x8c, 0x5f, 0x22, 0x18, 0x16, 0xe5, 0x6e, 0x41, 0x17, - 0x20, 0xdf, 0x51, 0x75, 0x51, 0x67, 0x47, 0x85, 0x4c, 0x9e, 0xd5, 0x08, 0x36, 0xce, 0xc9, 0xca, - 0x81, 0xc8, 0x3c, 0x01, 0x59, 0x39, 0xc0, 0x6c, 0x5c, 0xbe, 0x0f, 0x45, 0xe1, 0xee, 0x30, 0x50, - 0xfe, 0x78, 0xa0, 0x7c, 0x0a, 0xd0, 0x3a, 0x14, 0x97, 0x37, 0xea, 0x9a, 0xe1, 0x76, 0x5d, 0x4d, - 0xb5, 0x65, 0xc5, 0xd7, 0x62, 0x71, 0x79, 0x09, 0x63, 0x4e, 0x41, 0x32, 0x0c, 0x93, 0x83, 0x26, - 0x31, 0x29, 0x8f, 0x88, 0x91, 0x3a, 0xb0, 0x55, 0xbe, 0xcb, 0x47, 0xb0, 0xa0, 0xc8, 0xff, 0x90, - 0x83, 0xa2, 0x70, 0xc7, 0x29, 0x7c, 0x85, 0xad, 0x44, 0xbe, 0xc2, 0x5e, 0xef, 0x2f, 0x34, 0x32, - 0x3f, 0xc1, 0x36, 0x63, 0x9f, 0x60, 0x57, 0xfb, 0xc4, 0x3b, 0xfe, 0xfb, 0xeb, 0x7f, 0x24, 0x18, - 0x8f, 0x06, 0x25, 0xba, 0x09, 0xa3, 0xac, 0xe0, 0xa8, 0x4d, 0xb2, 0x16, 0xf4, 0xb9, 0xfe, 0x21, - 0x4c, 0x23, 0x20, 0xe1, 0x30, 0x1f, 0x6a, 0xfb, 0x62, 0x2c, 0x8e, 0xc4, 0xa4, 0xb3, 0x5d, 0xea, - 0x50, 0x55, 0xab, 0xba, 0x17, 0x63, 0xd5, 0x65, 0x9d, 0xae, 0x5b, 0x0d, 0x6a, 0xa9, 0x7a, 0x3b, - 0xa1, 0x88, 0x07, 0x65, 0x18, 0x59, 0xfe, 0x3f, 0x09, 0x46, 0x85, 0xc9, 0xa7, 0xf0, 0x55, 0xf1, - 0xc7, 0xd1, 0xaf, 0x8a, 0x4b, 0x7d, 0x6e, 0xf0, 0xf4, 0x4f, 0x8a, 0xff, 0x08, 0x4c, 0x67, 0x5b, - 0x9a, 0x45, 0xf5, 0xae, 0x61, 0xd3, 0x78, 0x54, 0xb3, 0xcd, 0x88, 0x39, 0x05, 0x39, 0x30, 0xa9, - 0xc6, 0x72, 0x80, 0x70, 0x6d, 0xad, 0x3f, 0x4b, 0x7c, 0xb1, 0x7a, 0x59, 0xc0, 0x4f, 0xc6, 0x29, - 0x38, 0xa1, 0x42, 0x26, 0x90, 0xe0, 0x42, 0x0f, 0xa1, 0xb0, 0x4b, 0xa9, 0x99, 0x72, 0x5e, 0xdd, - 0x23, 0xf3, 0x04, 0x26, 0x94, 0xf8, 0xec, 0x36, 0x37, 0x37, 0x30, 0x87, 0x92, 0x7f, 0x15, 0xf8, - 0xa3, 0xe1, 0xc6, 0xb8, 0x9f, 0x4f, 0xa5, 0x93, 0xe4, 0xd3, 0xd1, 0xb4, 0x5c, 0x8a, 0x1e, 0x40, - 0x9e, 0x6a, 0xfd, 0x7e, 0x16, 0x0a, 0xc4, 0xcd, 0x95, 0x46, 0x90, 0x90, 0x36, 0x57, 0x1a, 0x98, - 0x41, 0xa0, 0x75, 0x18, 0x62, 0xd5, 0x87, 0x6d, 0xc1, 0x7c, 0xff, 0x5b, 0x9a, 0xcd, 0x3f, 0x08, - 0x08, 0xf6, 0xcb, 0xc6, 0x2e, 0x8e, 0xfc, 0x09, 0x8c, 0x45, 0xf6, 0x29, 0xfa, 0x18, 0xce, 0x6a, - 0x86, 0xd2, 0xaa, 0x2b, 0x9a, 0xa2, 0x37, 0x89, 0x77, 0x39, 0x70, 0x29, 0xed, 0x0b, 0x63, 0x25, - 0xc4, 0x27, 0x76, 0xb9, 0x7f, 0x9d, 0x1a, 0xa6, 0xe1, 0x08, 0xa2, 0xac, 0x00, 0x04, 0x73, 0x44, - 0x15, 0x18, 0x62, 0x71, 0xe6, 0xd6, 0x93, 0x91, 0xfa, 0x08, 0xb3, 0x90, 0x85, 0x9f, 0x8d, 0xdd, - 0x71, 0x74, 0x03, 0xc0, 0x26, 0x4d, 0x8b, 0x50, 0x9e, 0x0c, 0x72, 0xd1, 0x4b, 0xe5, 0x86, 0x4f, - 0xc1, 0x21, 0x2e, 0xf9, 0x47, 0x12, 0x8c, 0xad, 0x11, 0xfa, 0xa9, 0x61, 0xed, 0x6d, 0xf0, 0xc7, - 0x00, 0xa7, 0x90, 0x6c, 0x71, 0x24, 0xd9, 0xbe, 0xd1, 0x63, 0x65, 0x22, 0xd6, 0x65, 0xa5, 0x5c, - 0xf9, 0x4b, 0x09, 0x66, 0x23, 0x9c, 0x77, 0x83, 0xad, 0xbb, 0x05, 0x43, 0xa6, 0x61, 0x51, 0xaf, - 0x10, 0x0f, 0xa4, 0x90, 0xa5, 0xb1, 0x50, 0x29, 0x66, 0x30, 0xd8, 0x45, 0x43, 0x2b, 0x90, 0xa3, - 0x86, 0x08, 0xd5, 0xc1, 0x30, 0x09, 0xb1, 0xea, 0x20, 0x30, 0x73, 0x9b, 0x06, 0xce, 0x51, 0x83, - 0x2d, 0x44, 0x39, 0xc2, 0x15, 0x4e, 0x3e, 0x2f, 0x68, 0x06, 0x18, 0x0a, 0x3b, 0x96, 0xd1, 0x39, - 0xf1, 0x1c, 0xfc, 0x85, 0xb8, 0x67, 0x19, 0x1d, 0xcc, 0xb1, 0xe4, 0xaf, 0x24, 0x98, 0x8a, 0x70, - 0x9e, 0x42, 0xe2, 0x7f, 0x18, 0x4d, 0xfc, 0x57, 0x07, 0x99, 0x48, 0x46, 0xfa, 0xff, 0x2a, 0x17, - 0x9b, 0x06, 0x9b, 0x30, 0xda, 0x81, 0x51, 0xd3, 0x68, 0x35, 0x9e, 0xc3, 0x75, 0xe0, 0x04, 0xab, - 0x9b, 0x1b, 0x01, 0x16, 0x0e, 0x03, 0xa3, 0x03, 0x98, 0xd2, 0x95, 0x0e, 0xb1, 0x4d, 0xa5, 0x49, - 0x1a, 0xcf, 0xe1, 0x80, 0xe4, 0x25, 0x7e, 0xdf, 0x10, 0x47, 0xc4, 0x49, 0x25, 0x68, 0x15, 0x8a, - 0xaa, 0xc9, 0xfb, 0x38, 0xd1, 0xbb, 0xf4, 0xac, 0xa2, 0x6e, 0xd7, 0xe7, 0xe6, 0x73, 0xf1, 0x03, - 0x7b, 0x18, 0xf2, 0x7f, 0xc6, 0xa3, 0x81, 0xc5, 0x1f, 0xba, 0x0f, 0x25, 0xfe, 0xac, 0xa6, 0x69, - 0x68, 0xde, 0xcd, 0x00, 0x5b, 0xd9, 0x0d, 0x31, 0xf6, 0xec, 0xb0, 0x72, 0x3e, 0xe5, 0xd0, 0xd7, - 0x23, 0x63, 0x5f, 0x18, 0xad, 0x41, 0xc1, 0xfc, 0x21, 0x1d, 0x0c, 0x2f, 0x72, 0xbc, 0x6d, 0xe1, - 0x38, 0xf2, 0x5f, 0xe7, 0x63, 0xe6, 0xf2, 0x52, 0xf7, 0xe4, 0xb9, 0xad, 0xba, 0xdf, 0x31, 0x65, - 0xae, 0xfc, 0x36, 0x14, 0x45, 0x85, 0x17, 0xc1, 0xfc, 0xf6, 0x20, 0xc1, 0x1c, 0xae, 0x62, 0xfe, - 0x07, 0x8b, 0x37, 0xe8, 0x01, 0xa3, 0x8f, 0x60, 0x98, 0xb8, 0x2a, 0xdc, 0xda, 0x78, 0x6b, 0x10, - 0x15, 0x41, 0x5e, 0x0d, 0x1a, 0x55, 0x31, 0x26, 0x50, 0xd1, 0x7b, 0xcc, 0x5f, 0x8c, 0x97, 0x7d, - 0x04, 0xda, 0xe5, 0x02, 0x2f, 0x57, 0x17, 0xdc, 0x69, 0xfb, 0xc3, 0xcf, 0x0e, 0x2b, 0x10, 0xfc, - 0xc4, 0x61, 0x09, 0xf9, 0x27, 0x12, 0x4c, 0x71, 0x0f, 0x35, 0x1d, 0x4b, 0xa5, 0xdd, 0x53, 0x2b, - 0x4c, 0x8f, 0x22, 0x85, 0xe9, 0xad, 0x1e, 0x6e, 0x49, 0x58, 0x98, 0x59, 0x9c, 0xbe, 0x96, 0xe0, - 0xa5, 0x04, 0xf7, 0x29, 0xe4, 0xc5, 0xad, 0x68, 0x5e, 0x7c, 0x63, 0xd0, 0x09, 0x65, 0xbd, 0x91, - 0x18, 0x4b, 0x99, 0x0e, 0xdf, 0x29, 0x37, 0x00, 0x4c, 0x4b, 0xdd, 0x57, 0x35, 0xd2, 0x16, 0x97, - 0xe0, 0xa5, 0xd0, 0xb3, 0x36, 0x9f, 0x82, 0x43, 0x5c, 0xc8, 0x86, 0x99, 0x16, 0xd9, 0x51, 0x1c, - 0x8d, 0x2e, 0xb4, 0x5a, 0x8b, 0x8a, 0xa9, 0x6c, 0xab, 0x9a, 0x4a, 0x55, 0x71, 0x5c, 0x30, 0x52, - 0xbf, 0xe3, 0x5e, 0x4e, 0xa7, 0x71, 0x3c, 0x3b, 0xac, 0x5c, 0x48, 0xbb, 0x1d, 0xf2, 0x58, 0xba, - 0x38, 0x03, 0x1a, 0x75, 0xa1, 0x6c, 0x91, 0x4f, 0x1c, 0xd5, 0x22, 0xad, 0x25, 0xcb, 0x30, 0x23, - 0x6a, 0xf3, 0x5c, 0xed, 0x1f, 0x1e, 0x1d, 0x56, 0xca, 0x38, 0x83, 0xa7, 0xb7, 0xe2, 0x4c, 0x78, - 0xf4, 0x04, 0xa6, 0x15, 0xf7, 0x35, 0x60, 0x44, 0xab, 0xbb, 0x4b, 0x6e, 0x1f, 0x1d, 0x56, 0xa6, - 0x17, 0x92, 0xe4, 0xde, 0x0a, 0xd3, 0x40, 0x51, 0x0d, 0x8a, 0xfb, 0xfc, 0xad, 0xa2, 0x5d, 0x1e, - 0xe2, 0xf8, 0xac, 0x10, 0x14, 0xdd, 0xe7, 0x8b, 0x0c, 0x73, 0xf8, 0x5e, 0x83, 0xef, 0x3e, 0x8f, - 0x8b, 0x7d, 0x50, 0xb2, 0x5e, 0x52, 0xec, 0x78, 0x7e, 0x62, 0x5c, 0x0a, 0xb2, 0xd6, 0x83, 0x80, - 0x84, 0xc3, 0x7c, 0xe8, 0x31, 0x8c, 0xec, 0x8a, 0x53, 0x09, 0xbb, 0x5c, 0xec, 0xab, 0x08, 0x47, - 0x4e, 0x31, 0xea, 0x53, 0x42, 0xc5, 0x88, 0x37, 0x6c, 0xe3, 0x00, 0x11, 0x5d, 0x81, 0x22, 0xff, - 0xb1, 0xbc, 0xc4, 0x8f, 0xe3, 0x4a, 0x41, 0x6e, 0x7b, 0xe0, 0x0e, 0x63, 0x8f, 0xee, 0xb1, 0x2e, - 0x6f, 0x2c, 0xf2, 0x63, 0xe1, 0x18, 0xeb, 0xf2, 0xc6, 0x22, 0xf6, 0xe8, 0xe8, 0x63, 0x28, 0xda, - 0x64, 0x45, 0xd5, 0x9d, 0x83, 0x32, 0xf4, 0x75, 0xa9, 0xdc, 0xb8, 0xcb, 0xb9, 0x63, 0x07, 0x63, - 0x81, 0x06, 0x41, 0xc7, 0x1e, 0x2c, 0xda, 0x85, 0x11, 0xcb, 0xd1, 0x17, 0xec, 0x2d, 0x9b, 0x58, - 0xe5, 0x51, 0xae, 0xa3, 0x57, 0x3a, 0xc7, 0x1e, 0x7f, 0x5c, 0x8b, 0xef, 0x21, 0x9f, 0x03, 0x07, - 0xe0, 0xe8, 0xef, 0x24, 0x40, 0xb6, 0x63, 0x9a, 0x1a, 0xe9, 0x10, 0x9d, 0x2a, 0x1a, 0x3f, 0x8b, - 0xb3, 0xcb, 0x67, 0xb9, 0xce, 0x3f, 0xea, 0x35, 0xaf, 0x84, 0x60, 0x5c, 0xb9, 0x7f, 0xe8, 0x9d, - 0x64, 0xc5, 0x29, 0x7a, 0x99, 0x6b, 0x77, 0x6c, 0xfe, 0x77, 0x79, 0xac, 0x2f, 0xd7, 0xa6, 0x9f, - 0x39, 0x06, 0xae, 0x15, 0x74, 0xec, 0xc1, 0xa2, 0x47, 0x30, 0x63, 0x11, 0xa5, 0xb5, 0xae, 0x6b, - 0x5d, 0x6c, 0x18, 0xf4, 0x9e, 0xaa, 0x11, 0xbb, 0x6b, 0x53, 0xd2, 0x29, 0x8f, 0xf3, 0x65, 0xf7, - 0xdf, 0x7e, 0xe0, 0x54, 0x2e, 0x9c, 0x21, 0x8d, 0x3a, 0x50, 0xf1, 0x52, 0x06, 0xdb, 0x4f, 0x7e, - 0xce, 0xba, 0x6b, 0x37, 0x15, 0xcd, 0xbd, 0x07, 0x98, 0xe0, 0x0a, 0x5e, 0x3b, 0x3a, 0xac, 0x54, - 0x96, 0x8e, 0x67, 0xc5, 0xbd, 0xb0, 0xd0, 0x07, 0x50, 0x56, 0xb2, 0xf4, 0x4c, 0x72, 0x3d, 0xaf, - 0xb0, 0x3c, 0x94, 0xa9, 0x20, 0x53, 0x1a, 0x51, 0x98, 0x54, 0xa2, 0x8f, 0x8e, 0xed, 0xf2, 0x54, - 0x5f, 0x07, 0x91, 0xb1, 0xb7, 0xca, 0xc1, 0x61, 0x44, 0x8c, 0x60, 0xe3, 0x84, 0x06, 0xf4, 0x17, - 0x80, 0x94, 0xf8, 0x3b, 0x69, 0xbb, 0x8c, 0xfa, 0x2a, 0x3f, 0x89, 0x07, 0xd6, 0x41, 0xd8, 0x25, - 0x48, 0x36, 0x4e, 0xd1, 0xc3, 0x1f, 0x6f, 0x88, 0xa3, 0xfc, 0xd3, 0x79, 0x00, 0x3b, 0xd8, 0xe3, - 0x8d, 0xc0, 0xb4, 0xe7, 0xf6, 0x78, 0x23, 0x04, 0x79, 0xfc, 0xe1, 0xe1, 0x2f, 0x72, 0x30, 0x1d, - 0x30, 0xf7, 0xfd, 0x78, 0x23, 0x45, 0xe4, 0x77, 0x8f, 0x60, 0x7b, 0x3f, 0x82, 0xfd, 0x52, 0x82, - 0xf1, 0xc0, 0x75, 0xbf, 0x79, 0x0f, 0x2a, 0x02, 0xdb, 0x32, 0x5a, 0xbc, 0xff, 0xce, 0x85, 0x27, - 0xf0, 0x5b, 0x7f, 0xab, 0xff, 0xc3, 0x5f, 0xae, 0xca, 0x5f, 0xe7, 0x61, 0x32, 0xbe, 0x1b, 0x23, - 0x97, 0xbf, 0x52, 0xcf, 0xcb, 0xdf, 0x0d, 0x38, 0xb7, 0xe3, 0x68, 0x5a, 0x97, 0xbb, 0x21, 0x74, - 0x03, 0xec, 0x5e, 0xde, 0xbc, 0x22, 0x24, 0xcf, 0xdd, 0x4b, 0xe1, 0xc1, 0xa9, 0x92, 0x19, 0x17, - 0xd9, 0xf9, 0x13, 0x5d, 0x64, 0x27, 0xee, 0x55, 0x0b, 0x03, 0xdc, 0xab, 0xa6, 0x5e, 0x4a, 0x0f, - 0x9d, 0xe0, 0x52, 0xfa, 0x24, 0xb7, 0xc8, 0x29, 0x49, 0xac, 0xe7, 0xa3, 0xc6, 0x57, 0x60, 0x4e, - 0x88, 0x51, 0x7e, 0xc1, 0xab, 0x53, 0xcb, 0xd0, 0x34, 0x62, 0x2d, 0x39, 0x9d, 0x4e, 0x57, 0x7e, - 0x17, 0xc6, 0xa3, 0x4f, 0x17, 0xdc, 0x95, 0x76, 0x5f, 0x4f, 0x88, 0x2b, 0xb4, 0xd0, 0x4a, 0xbb, - 0xe3, 0xd8, 0xe7, 0x90, 0xff, 0x46, 0x82, 0x99, 0xf4, 0x27, 0x8a, 0x48, 0x83, 0xf1, 0x8e, 0x72, - 0x10, 0x7e, 0x36, 0x2a, 0x9d, 0xf0, 0x70, 0x83, 0xdf, 0x59, 0xaf, 0x46, 0xb0, 0x70, 0x0c, 0x5b, - 0xfe, 0x5e, 0x82, 0xd9, 0x8c, 0xdb, 0xe2, 0xd3, 0xb5, 0x04, 0x7d, 0x08, 0xa5, 0x8e, 0x72, 0xd0, - 0x70, 0xac, 0x36, 0x39, 0xf1, 0x71, 0x0e, 0xcf, 0x18, 0xab, 0x02, 0x05, 0xfb, 0x78, 0xf2, 0xe7, - 0x12, 0x94, 0xb3, 0x1a, 0x6b, 0x74, 0x33, 0x72, 0xaf, 0xfd, 0x6a, 0xec, 0x5e, 0x7b, 0x2a, 0x21, - 0xf7, 0x82, 0x6e, 0xb5, 0xff, 0x4b, 0x82, 0x99, 0xf4, 0x0f, 0x0c, 0xf4, 0x66, 0xc4, 0xc2, 0x4a, - 0xcc, 0xc2, 0x89, 0x98, 0x94, 0xb0, 0xef, 0x23, 0x18, 0x17, 0x9f, 0x21, 0x02, 0x46, 0x78, 0x55, - 0x4e, 0xcb, 0x95, 0x02, 0xc2, 0x6b, 0xbb, 0xf9, 0x7a, 0x45, 0xc7, 0x70, 0x0c, 0x4d, 0xfe, 0xdb, - 0x1c, 0x0c, 0x35, 0x9a, 0x8a, 0x46, 0x4e, 0xa1, 0xcd, 0x7a, 0x3f, 0xd2, 0x66, 0xf5, 0xfa, 0x17, - 0x0f, 0x6e, 0x55, 0x66, 0x87, 0x85, 0x63, 0x1d, 0xd6, 0xeb, 0x7d, 0xa1, 0x1d, 0xdf, 0x5c, 0xfd, - 0x01, 0x8c, 0xf8, 0x4a, 0x07, 0xcb, 0xf9, 0xf2, 0xbf, 0xe7, 0x60, 0x34, 0xa4, 0x62, 0xc0, 0x8a, - 0xb1, 0x13, 0xa9, 0xb4, 0xfd, 0xfc, 0x63, 0x5d, 0x48, 0x57, 0xd5, 0xab, 0xad, 0xee, 0x13, 0xc5, - 0xe0, 0x51, 0x5a, 0xb2, 0xe4, 0xbe, 0x0b, 0xe3, 0x94, 0xff, 0xe3, 0x99, 0x7f, 0x08, 0x9a, 0xe7, - 0xb1, 0xe8, 0x3f, 0x6c, 0xdd, 0x8c, 0x50, 0x71, 0x8c, 0x7b, 0xee, 0x0e, 0x8c, 0x45, 0x94, 0x0d, - 0xf4, 0xc2, 0xf0, 0x7f, 0x25, 0x78, 0xb5, 0xe7, 0x27, 0x2a, 0xaa, 0x47, 0x36, 0x49, 0x35, 0xb6, - 0x49, 0xe6, 0xb3, 0x01, 0x5e, 0xdc, 0x4b, 0x95, 0xfa, 0xb5, 0xa7, 0xdf, 0xcd, 0x9f, 0xf9, 0xe6, - 0xbb, 0xf9, 0x33, 0xdf, 0x7e, 0x37, 0x7f, 0xe6, 0xaf, 0x8e, 0xe6, 0xa5, 0xa7, 0x47, 0xf3, 0xd2, - 0x37, 0x47, 0xf3, 0xd2, 0xb7, 0x47, 0xf3, 0xd2, 0xcf, 0x8e, 0xe6, 0xa5, 0x7f, 0xfc, 0x7e, 0xfe, - 0xcc, 0x87, 0x45, 0x01, 0xf7, 0xeb, 0x00, 0x00, 0x00, 0xff, 0xff, 0xb1, 0xb3, 0xc8, 0xe2, 0x54, + 0x76, 0x57, 0xcf, 0x0c, 0x39, 0xc3, 0x47, 0xf1, 0xab, 0x48, 0x91, 0x63, 0xc9, 0xe2, 0xc8, 0x6d, + 0x40, 0x91, 0x1d, 0x69, 0xc6, 0x92, 0x2d, 0x59, 0xb1, 0x10, 0xdb, 0x1c, 0x52, 0x94, 0xe8, 0xf0, + 0x63, 0x5c, 0x43, 0x2a, 0x86, 0x11, 0x3b, 0x6e, 0xce, 0x14, 0x87, 0x2d, 0xf6, 0x74, 0xb7, 0xbb, + 0x6b, 0x68, 0x0e, 0x90, 0x43, 0x0e, 0x49, 0x80, 0x00, 0x09, 0x92, 0x8b, 0x93, 0x1c, 0x63, 0x04, + 0xc8, 0x69, 0x17, 0xbb, 0xb7, 0xdd, 0x83, 0x61, 0x60, 0x01, 0x2f, 0x20, 0x2c, 0xbc, 0x80, 0x6f, + 0xeb, 0x13, 0xb1, 0xa6, 0x4f, 0x8b, 0xfd, 0x07, 0x16, 0x3a, 0x2c, 0x16, 0x55, 0x5d, 0xfd, 0xdd, + 0xad, 0x69, 0xd2, 0x12, 0xb1, 0x58, 0xec, 0x8d, 0x53, 0xef, 0xbd, 0xdf, 0x7b, 0x55, 0xf5, 0xea, + 0xbd, 0xd7, 0x55, 0x8f, 0xb0, 0xbc, 0x77, 0xdb, 0xae, 0xaa, 0x46, 0x6d, 0xaf, 0xb7, 0x4d, 0x2c, + 0x9d, 0x50, 0x62, 0xd7, 0xf6, 0x89, 0xde, 0x36, 0xac, 0x9a, 0x20, 0x28, 0xa6, 0x5a, 0x23, 0x07, + 0x94, 0xe8, 0xb6, 0x6a, 0xe8, 0x76, 0x6d, 0xff, 0xfa, 0x36, 0xa1, 0xca, 0xf5, 0x5a, 0x87, 0xe8, + 0xc4, 0x52, 0x28, 0x69, 0x57, 0x4d, 0xcb, 0xa0, 0x06, 0xba, 0xe8, 0xb0, 0x57, 0x15, 0x53, 0xad, + 0xfa, 0xec, 0x55, 0xc1, 0x7e, 0xfe, 0x5a, 0x47, 0xa5, 0xbb, 0xbd, 0xed, 0x6a, 0xcb, 0xe8, 0xd6, + 0x3a, 0x46, 0xc7, 0xa8, 0x71, 0xa9, 0xed, 0xde, 0x0e, 0xff, 0xc5, 0x7f, 0xf0, 0xbf, 0x1c, 0xb4, + 0xf3, 0x72, 0x40, 0x79, 0xcb, 0xb0, 0x48, 0x6d, 0x3f, 0xa6, 0xf1, 0xfc, 0x6b, 0x3e, 0x4f, 0x57, + 0x69, 0xed, 0xaa, 0x3a, 0xb1, 0xfa, 0x35, 0x73, 0xaf, 0xc3, 0x06, 0xec, 0x5a, 0x97, 0x50, 0x25, + 0x49, 0xaa, 0x96, 0x26, 0x65, 0xf5, 0x74, 0xaa, 0x76, 0x49, 0x4c, 0xe0, 0xd6, 0x20, 0x01, 0xbb, + 0xb5, 0x4b, 0xba, 0x4a, 0x4c, 0xee, 0xd5, 0x34, 0xb9, 0x1e, 0x55, 0xb5, 0x9a, 0xaa, 0x53, 0x9b, + 0x5a, 0x51, 0x21, 0xf9, 0x0e, 0x4c, 0x2d, 0x68, 0x9a, 0xf1, 0x09, 0x69, 0x2f, 0x6b, 0xe4, 0xe0, + 0x81, 0xa1, 0xf5, 0xba, 0x04, 0x5d, 0x86, 0xe1, 0xb6, 0xa5, 0xee, 0x13, 0xab, 0x2c, 0x5d, 0x92, + 0xae, 0x8c, 0xd4, 0xc7, 0x1f, 0x1d, 0x56, 0xce, 0x1c, 0x1d, 0x56, 0x86, 0x97, 0xf8, 0x28, 0x16, + 0x54, 0xd9, 0x86, 0x09, 0x21, 0x7c, 0xdf, 0xb0, 0x69, 0x43, 0xa1, 0xbb, 0xe8, 0x06, 0x80, 0xa9, + 0xd0, 0xdd, 0x86, 0x45, 0x76, 0xd4, 0x03, 0x21, 0x8e, 0x84, 0x38, 0x34, 0x3c, 0x0a, 0x0e, 0x70, + 0xa1, 0xab, 0x50, 0xb2, 0x88, 0xd2, 0xde, 0xd0, 0xb5, 0x7e, 0x39, 0x77, 0x49, 0xba, 0x52, 0xaa, + 0x4f, 0x0a, 0x89, 0x12, 0x16, 0xe3, 0xd8, 0xe3, 0x90, 0x3f, 0xcd, 0xc1, 0xc8, 0x92, 0x42, 0xba, + 0x86, 0xde, 0x24, 0x14, 0x7d, 0x04, 0x25, 0xb6, 0xf0, 0x6d, 0x85, 0x2a, 0x5c, 0xdb, 0xe8, 0x8d, + 0x57, 0xaa, 0xbe, 0x63, 0x78, 0xeb, 0x50, 0x35, 0xf7, 0x3a, 0x6c, 0xc0, 0xae, 0x32, 0xee, 0xea, + 0xfe, 0xf5, 0xea, 0xc6, 0xf6, 0x43, 0xd2, 0xa2, 0x6b, 0x84, 0x2a, 0xbe, 0x7d, 0xfe, 0x18, 0xf6, + 0x50, 0xd1, 0x3a, 0x14, 0x6c, 0x93, 0xb4, 0xb8, 0x65, 0xa3, 0x37, 0xae, 0x56, 0x9f, 0xe8, 0x76, + 0x55, 0xcf, 0xb2, 0xa6, 0x49, 0x5a, 0xf5, 0xb3, 0x02, 0xb9, 0xc0, 0x7e, 0x61, 0x8e, 0x83, 0x1e, + 0xc0, 0xb0, 0x4d, 0x15, 0xda, 0xb3, 0xcb, 0x79, 0x8e, 0x58, 0xcd, 0x8c, 0xc8, 0xa5, 0xfc, 0xcd, + 0x70, 0x7e, 0x63, 0x81, 0x26, 0xff, 0x26, 0x07, 0xc8, 0xe3, 0x5d, 0x34, 0xf4, 0xb6, 0x4a, 0x55, + 0x43, 0x47, 0x6f, 0x40, 0x81, 0xf6, 0x4d, 0x22, 0xb6, 0xe2, 0xb2, 0x6b, 0xd0, 0x66, 0xdf, 0x24, + 0x8f, 0x0f, 0x2b, 0xb3, 0x71, 0x09, 0x46, 0xc1, 0x5c, 0x06, 0xad, 0x7a, 0xa6, 0xe6, 0xb8, 0xf4, + 0x6b, 0x61, 0xd5, 0x8f, 0x0f, 0x2b, 0x09, 0xc7, 0xa6, 0xea, 0x21, 0x85, 0x0d, 0x44, 0xfb, 0x80, + 0x34, 0xc5, 0xa6, 0x9b, 0x96, 0xa2, 0xdb, 0x8e, 0x26, 0xb5, 0x4b, 0xc4, 0x22, 0xbc, 0x9c, 0x6d, + 0xd3, 0x98, 0x44, 0xfd, 0xbc, 0xb0, 0x02, 0xad, 0xc6, 0xd0, 0x70, 0x82, 0x06, 0xe6, 0xcd, 0x16, + 0x51, 0x6c, 0x43, 0x2f, 0x17, 0xc2, 0xde, 0x8c, 0xf9, 0x28, 0x16, 0x54, 0xf4, 0x12, 0x14, 0xbb, + 0xc4, 0xb6, 0x95, 0x0e, 0x29, 0x0f, 0x71, 0xc6, 0x09, 0xc1, 0x58, 0x5c, 0x73, 0x86, 0xb1, 0x4b, + 0x97, 0x3f, 0x97, 0x60, 0xcc, 0x5b, 0xb9, 0x55, 0xd5, 0xa6, 0xe8, 0xef, 0x62, 0x7e, 0x58, 0xcd, + 0x36, 0x25, 0x26, 0xcd, 0xbd, 0xd0, 0xf3, 0x79, 0x77, 0x24, 0xe0, 0x83, 0x6b, 0x30, 0xa4, 0x52, + 0xd2, 0x65, 0xfb, 0x90, 0xbf, 0x32, 0x7a, 0xe3, 0x4a, 0x56, 0x97, 0xa9, 0x8f, 0x09, 0xd0, 0xa1, + 0x15, 0x26, 0x8e, 0x1d, 0x14, 0xf9, 0xbf, 0x0a, 0x01, 0xf3, 0x99, 0x6b, 0xa2, 0x0f, 0xa0, 0x64, + 0x13, 0x8d, 0xb4, 0xa8, 0x61, 0x09, 0xf3, 0x5f, 0xcd, 0x68, 0xbe, 0xb2, 0x4d, 0xb4, 0xa6, 0x10, + 0xad, 0x9f, 0x65, 0xf6, 0xbb, 0xbf, 0xb0, 0x07, 0x89, 0xde, 0x85, 0x12, 0x25, 0x5d, 0x53, 0x53, + 0x28, 0x11, 0xe7, 0xe8, 0xc5, 0xe0, 0x14, 0x98, 0xe7, 0x30, 0xb0, 0x86, 0xd1, 0xde, 0x14, 0x6c, + 0xfc, 0xf8, 0x78, 0x4b, 0xe2, 0x8e, 0x62, 0x0f, 0x06, 0xed, 0xc3, 0x78, 0xcf, 0x6c, 0x33, 0x4e, + 0xca, 0xe2, 0x59, 0xa7, 0x2f, 0x3c, 0xe9, 0x56, 0xd6, 0xb5, 0xd9, 0x0a, 0x49, 0xd7, 0x67, 0x85, + 0xae, 0xf1, 0xf0, 0x38, 0x8e, 0x68, 0x41, 0x0b, 0x30, 0xd1, 0x55, 0x75, 0x16, 0x97, 0xfa, 0x4d, + 0xd2, 0x32, 0xf4, 0xb6, 0xcd, 0xdd, 0x6a, 0xa8, 0x3e, 0x27, 0x00, 0x26, 0xd6, 0xc2, 0x64, 0x1c, + 0xe5, 0x47, 0xef, 0x00, 0x72, 0xa7, 0x71, 0xcf, 0x09, 0xc7, 0xaa, 0xa1, 0x73, 0x9f, 0xcb, 0xfb, + 0xce, 0xbd, 0x19, 0xe3, 0xc0, 0x09, 0x52, 0x68, 0x15, 0x66, 0x2c, 0xb2, 0xaf, 0xb2, 0x39, 0xde, + 0x57, 0x6d, 0x6a, 0x58, 0xfd, 0x55, 0xb5, 0xab, 0xd2, 0xf2, 0x30, 0xb7, 0xa9, 0x7c, 0x74, 0x58, + 0x99, 0xc1, 0x09, 0x74, 0x9c, 0x28, 0x25, 0xff, 0xf7, 0x30, 0x4c, 0x44, 0xe2, 0x0d, 0x7a, 0x00, + 0xb3, 0xad, 0x9e, 0x65, 0x11, 0x9d, 0xae, 0xf7, 0xba, 0xdb, 0xc4, 0x6a, 0xb6, 0x76, 0x49, 0xbb, + 0xa7, 0x91, 0x36, 0x77, 0x94, 0xa1, 0xfa, 0xbc, 0xb0, 0x78, 0x76, 0x31, 0x91, 0x0b, 0xa7, 0x48, + 0xb3, 0x55, 0xd0, 0xf9, 0xd0, 0x9a, 0x6a, 0xdb, 0x1e, 0x66, 0x8e, 0x63, 0x7a, 0xab, 0xb0, 0x1e, + 0xe3, 0xc0, 0x09, 0x52, 0xcc, 0xc6, 0x36, 0xb1, 0x55, 0x8b, 0xb4, 0xa3, 0x36, 0xe6, 0xc3, 0x36, + 0x2e, 0x25, 0x72, 0xe1, 0x14, 0x69, 0x74, 0x13, 0x46, 0x1d, 0x6d, 0x7c, 0xff, 0xc4, 0x46, 0x4f, + 0x0b, 0xb0, 0xd1, 0x75, 0x9f, 0x84, 0x83, 0x7c, 0x6c, 0x6a, 0xc6, 0xb6, 0x4d, 0xac, 0x7d, 0xd2, + 0x4e, 0xdf, 0xe0, 0x8d, 0x18, 0x07, 0x4e, 0x90, 0x62, 0x53, 0x73, 0x3c, 0x30, 0x36, 0xb5, 0xe1, + 0xf0, 0xd4, 0xb6, 0x12, 0xb9, 0x70, 0x8a, 0x34, 0xf3, 0x63, 0xc7, 0xe4, 0x85, 0x7d, 0x45, 0xd5, + 0x94, 0x6d, 0x8d, 0x94, 0x8b, 0x61, 0x3f, 0x5e, 0x0f, 0x93, 0x71, 0x94, 0x1f, 0xdd, 0x83, 0x29, + 0x67, 0x68, 0x4b, 0x57, 0x3c, 0x90, 0x12, 0x07, 0x79, 0x4e, 0x80, 0x4c, 0xad, 0x47, 0x19, 0x70, + 0x5c, 0x06, 0xbd, 0x01, 0xe3, 0x2d, 0x43, 0xd3, 0xb8, 0x3f, 0x2e, 0x1a, 0x3d, 0x9d, 0x96, 0x47, + 0x38, 0x0a, 0x62, 0xe7, 0x71, 0x31, 0x44, 0xc1, 0x11, 0x4e, 0x44, 0x00, 0x5a, 0x6e, 0xc2, 0xb1, + 0xcb, 0xc0, 0xe3, 0xe3, 0xf5, 0xac, 0x31, 0xc0, 0x4b, 0x55, 0x7e, 0x0d, 0xe0, 0x0d, 0xd9, 0x38, + 0x00, 0x2c, 0xff, 0x42, 0x82, 0xb9, 0x94, 0xd0, 0x81, 0xde, 0x0a, 0xa5, 0xd8, 0xbf, 0x8c, 0xa4, + 0xd8, 0x0b, 0x29, 0x62, 0x81, 0x3c, 0xab, 0xc3, 0x98, 0xc5, 0x66, 0xa5, 0x77, 0x1c, 0x16, 0x11, + 0x23, 0x6f, 0x0e, 0x98, 0x06, 0x0e, 0xca, 0xf8, 0x31, 0x7f, 0xea, 0xe8, 0xb0, 0x32, 0x16, 0xa2, + 0xe1, 0x30, 0xbc, 0xfc, 0x3f, 0x39, 0x80, 0x25, 0x62, 0x6a, 0x46, 0xbf, 0x4b, 0xf4, 0xd3, 0xa8, + 0xa1, 0x36, 0x42, 0x35, 0xd4, 0xb5, 0x41, 0xdb, 0xe3, 0x99, 0x96, 0x5a, 0x44, 0xfd, 0x6d, 0xa4, + 0x88, 0xaa, 0x65, 0x87, 0x7c, 0x72, 0x15, 0xf5, 0xab, 0x3c, 0x4c, 0xfb, 0xcc, 0x7e, 0x19, 0x75, + 0x27, 0xb4, 0xc7, 0x7f, 0x11, 0xd9, 0xe3, 0xb9, 0x04, 0x91, 0x67, 0x56, 0x47, 0x3d, 0xfd, 0x7a, + 0x06, 0x3d, 0x84, 0x71, 0x56, 0x38, 0x39, 0xee, 0xc1, 0xcb, 0xb2, 0xe1, 0x63, 0x97, 0x65, 0x5e, + 0x02, 0x5d, 0x0d, 0x21, 0xe1, 0x08, 0x72, 0x4a, 0x19, 0x58, 0x7c, 0xd6, 0x65, 0xa0, 0xfc, 0x85, + 0x04, 0xe3, 0xfe, 0x36, 0x9d, 0x42, 0xd1, 0xb6, 0x1e, 0x2e, 0xda, 0x5e, 0xca, 0xec, 0xa2, 0x29, + 0x55, 0xdb, 0xef, 0x58, 0x81, 0xef, 0x31, 0xb1, 0x03, 0xbe, 0xad, 0xb4, 0xf6, 0xd0, 0x25, 0x28, + 0xe8, 0x4a, 0xd7, 0xf5, 0x4c, 0xef, 0xb0, 0xac, 0x2b, 0x5d, 0x82, 0x39, 0x05, 0x7d, 0x2a, 0x01, + 0x12, 0x59, 0x60, 0x41, 0xd7, 0x0d, 0xaa, 0x38, 0xb1, 0xd2, 0x31, 0x6b, 0x25, 0xb3, 0x59, 0xae, + 0xc6, 0xea, 0x56, 0x0c, 0xeb, 0xae, 0x4e, 0xad, 0xbe, 0xbf, 0x23, 0x71, 0x06, 0x9c, 0x60, 0x00, + 0x52, 0x00, 0x2c, 0x81, 0xb9, 0x69, 0x88, 0x83, 0x7c, 0x2d, 0x43, 0xcc, 0x63, 0x02, 0x8b, 0x86, + 0xbe, 0xa3, 0x76, 0xfc, 0xb0, 0x83, 0x3d, 0x20, 0x1c, 0x00, 0x3d, 0x7f, 0x17, 0xe6, 0x52, 0xac, + 0x45, 0x93, 0x90, 0xdf, 0x23, 0x7d, 0x67, 0xd9, 0x30, 0xfb, 0x13, 0xcd, 0xc0, 0xd0, 0xbe, 0xa2, + 0xf5, 0x9c, 0xf0, 0x3b, 0x82, 0x9d, 0x1f, 0x6f, 0xe4, 0x6e, 0x4b, 0xf2, 0xe7, 0x43, 0x41, 0xdf, + 0xe1, 0x15, 0xf3, 0x15, 0xf6, 0xd1, 0x6a, 0x6a, 0x6a, 0x4b, 0xb1, 0x45, 0x21, 0x74, 0xd6, 0xf9, + 0x60, 0x75, 0xc6, 0xb0, 0x47, 0x0d, 0xd5, 0xd6, 0xb9, 0x67, 0x5b, 0x5b, 0xe7, 0x9f, 0x4e, 0x6d, + 0xfd, 0xf7, 0x50, 0xb2, 0xdd, 0xaa, 0xba, 0xc0, 0x21, 0xaf, 0x1f, 0x23, 0xbe, 0x8a, 0x82, 0xda, + 0x53, 0xe0, 0x95, 0xd2, 0x1e, 0x68, 0x52, 0x11, 0x3d, 0x74, 0xcc, 0x22, 0xfa, 0xa9, 0x16, 0xbe, + 0x2c, 0xa6, 0x9a, 0x4a, 0xcf, 0x26, 0x6d, 0x1e, 0x88, 0x4a, 0x7e, 0x4c, 0x6d, 0xf0, 0x51, 0x2c, + 0xa8, 0xe8, 0x83, 0x90, 0xcb, 0x96, 0x4e, 0xe2, 0xb2, 0xe3, 0xe9, 0xee, 0x8a, 0xb6, 0x60, 0xce, + 0xb4, 0x8c, 0x8e, 0x45, 0x6c, 0x7b, 0x89, 0x28, 0x6d, 0x4d, 0xd5, 0x89, 0xbb, 0x3e, 0x4e, 0x45, + 0x74, 0xe1, 0xe8, 0xb0, 0x32, 0xd7, 0x48, 0x66, 0xc1, 0x69, 0xb2, 0xf2, 0xa3, 0x02, 0x4c, 0x46, + 0x33, 0x60, 0x4a, 0x91, 0x2a, 0x9d, 0xa8, 0x48, 0xbd, 0x1a, 0x38, 0x0c, 0x4e, 0x05, 0x1f, 0xb8, + 0xc1, 0x89, 0x1d, 0x88, 0x05, 0x98, 0x10, 0xd1, 0xc0, 0x25, 0x8a, 0x32, 0xdd, 0xdb, 0xfd, 0xad, + 0x30, 0x19, 0x47, 0xf9, 0x59, 0xe9, 0xe9, 0x57, 0x94, 0x2e, 0x48, 0x21, 0x5c, 0x7a, 0x2e, 0x44, + 0x19, 0x70, 0x5c, 0x06, 0xad, 0xc1, 0x74, 0x4f, 0x8f, 0x43, 0x39, 0xde, 0x78, 0x41, 0x40, 0x4d, + 0x6f, 0xc5, 0x59, 0x70, 0x92, 0x1c, 0xda, 0x09, 0x55, 0xa3, 0xc3, 0x3c, 0xc2, 0xde, 0xc8, 0x7c, + 0x76, 0x32, 0x97, 0xa3, 0xe8, 0x0e, 0x8c, 0x59, 0xfc, 0xbb, 0xc3, 0x35, 0xd8, 0xa9, 0xdd, 0xcf, + 0x09, 0xb1, 0x31, 0x1c, 0x24, 0xe2, 0x30, 0x6f, 0x42, 0xb9, 0x5d, 0xca, 0x5a, 0x6e, 0xcb, 0x3f, + 0x93, 0x82, 0x49, 0xc8, 0x2b, 0x81, 0x07, 0xdd, 0x32, 0xc5, 0x24, 0x02, 0xd5, 0x91, 0x91, 0x5c, + 0xfd, 0xde, 0x3a, 0x56, 0xf5, 0xeb, 0x27, 0xcf, 0xc1, 0xe5, 0xef, 0x67, 0x12, 0xcc, 0x2e, 0x37, + 0xef, 0x59, 0x46, 0xcf, 0x74, 0xcd, 0xd9, 0x30, 0x9d, 0x75, 0x7d, 0x1d, 0x0a, 0x56, 0x4f, 0x73, + 0xe7, 0xf1, 0xa2, 0x3b, 0x0f, 0xdc, 0xd3, 0xd8, 0x3c, 0xa6, 0x23, 0x52, 0xce, 0x24, 0x98, 0x00, + 0x5a, 0x87, 0x61, 0x4b, 0xd1, 0x3b, 0xc4, 0x4d, 0xab, 0x97, 0x07, 0x58, 0xbf, 0xb2, 0x84, 0x19, + 0x7b, 0xa0, 0x78, 0xe3, 0xd2, 0x58, 0xa0, 0xc8, 0xff, 0x2e, 0xc1, 0xc4, 0xfd, 0xcd, 0xcd, 0xc6, + 0x8a, 0xce, 0x4f, 0x34, 0xbf, 0x5b, 0xbd, 0x04, 0x05, 0x53, 0xa1, 0xbb, 0xd1, 0x4c, 0xcf, 0x68, + 0x98, 0x53, 0xd0, 0x7b, 0x50, 0x64, 0x91, 0x84, 0xe8, 0xed, 0x8c, 0xa5, 0xb6, 0x80, 0xaf, 0x3b, + 0x42, 0x7e, 0x85, 0x28, 0x06, 0xb0, 0x0b, 0x27, 0xef, 0xc1, 0x4c, 0xc0, 0x1c, 0xb6, 0x1e, 0x0f, + 0x58, 0x76, 0x44, 0x4d, 0x18, 0x62, 0x9a, 0x59, 0x0e, 0xcc, 0x67, 0xb8, 0xcc, 0x8c, 0x4c, 0xc9, + 0xaf, 0x74, 0xd8, 0x2f, 0x1b, 0x3b, 0x58, 0xf2, 0x1a, 0x8c, 0xf1, 0x0b, 0x65, 0xc3, 0xa2, 0x7c, + 0x59, 0xd0, 0x45, 0xc8, 0x77, 0x55, 0x5d, 0xe4, 0xd9, 0x51, 0x21, 0x93, 0x67, 0x39, 0x82, 0x8d, + 0x73, 0xb2, 0x72, 0x20, 0x22, 0x8f, 0x4f, 0x56, 0x0e, 0x30, 0x1b, 0x97, 0xef, 0x41, 0x51, 0x2c, + 0x77, 0x10, 0x28, 0xff, 0x64, 0xa0, 0x7c, 0x02, 0xd0, 0x06, 0x14, 0x57, 0x1a, 0x75, 0xcd, 0x70, + 0xaa, 0xae, 0x96, 0xda, 0xb6, 0xa2, 0x7b, 0xb1, 0xb8, 0xb2, 0x84, 0x31, 0xa7, 0x20, 0x19, 0x86, + 0xc9, 0x41, 0x8b, 0x98, 0x94, 0x7b, 0xc4, 0x48, 0x1d, 0xd8, 0x2e, 0xdf, 0xe5, 0x23, 0x58, 0x50, + 0xe4, 0xff, 0xc8, 0x41, 0x51, 0x2c, 0xc7, 0x29, 0x7c, 0x85, 0xad, 0x86, 0xbe, 0xc2, 0x5e, 0xce, + 0xe6, 0x1a, 0xa9, 0x9f, 0x60, 0x9b, 0x91, 0x4f, 0xb0, 0xab, 0x19, 0xf1, 0x9e, 0xfc, 0xfd, 0xf5, + 0x63, 0x09, 0xc6, 0xc3, 0x4e, 0x89, 0x6e, 0xc2, 0x28, 0x4b, 0x38, 0x6a, 0x8b, 0xac, 0xfb, 0x75, + 0xae, 0x77, 0x09, 0xd3, 0xf4, 0x49, 0x38, 0xc8, 0x87, 0x3a, 0x9e, 0x18, 0xf3, 0x23, 0x31, 0xe9, + 0xf4, 0x25, 0xed, 0x51, 0x55, 0xab, 0x3a, 0x8f, 0x24, 0xd5, 0x15, 0x9d, 0x6e, 0x58, 0x4d, 0x6a, + 0xa9, 0x7a, 0x27, 0xa6, 0x88, 0x3b, 0x65, 0x10, 0x59, 0xfe, 0xa9, 0x04, 0xa3, 0xc2, 0xe4, 0x53, + 0xf8, 0xaa, 0xf8, 0x9b, 0xf0, 0x57, 0xc5, 0xe5, 0x8c, 0x07, 0x3c, 0xf9, 0x93, 0xe2, 0xff, 0x7d, + 0xd3, 0xd9, 0x91, 0x66, 0x5e, 0xbd, 0x6b, 0xd8, 0x34, 0xea, 0xd5, 0xec, 0x30, 0x62, 0x4e, 0x41, + 0x3d, 0x98, 0x54, 0x23, 0x31, 0x40, 0x2c, 0x6d, 0x2d, 0x9b, 0x25, 0x9e, 0x58, 0xbd, 0x2c, 0xe0, + 0x27, 0xa3, 0x14, 0x1c, 0x53, 0x21, 0x13, 0x88, 0x71, 0xa1, 0x77, 0xa1, 0xb0, 0x4b, 0xa9, 0x99, + 0x70, 0x5f, 0x3d, 0x20, 0xf2, 0xf8, 0x26, 0x94, 0xf8, 0xec, 0x36, 0x37, 0x1b, 0x98, 0x43, 0xc9, + 0xbf, 0xf7, 0xd7, 0xa3, 0xe9, 0xf8, 0xb8, 0x17, 0x4f, 0xa5, 0x93, 0xc4, 0xd3, 0xd1, 0xa4, 0x58, + 0x8a, 0xee, 0x43, 0x9e, 0x6a, 0x59, 0x3f, 0x0b, 0x05, 0xe2, 0xe6, 0x6a, 0xd3, 0x0f, 0x48, 0x9b, + 0xab, 0x4d, 0xcc, 0x20, 0xd0, 0x06, 0x0c, 0xb1, 0xec, 0xc3, 0x8e, 0x60, 0x3e, 0xfb, 0x91, 0x66, + 0xf3, 0xf7, 0x1d, 0x82, 0xfd, 0xb2, 0xb1, 0x83, 0x23, 0x7f, 0x0c, 0x63, 0xa1, 0x73, 0x8a, 0x3e, + 0x82, 0xb3, 0x9a, 0xa1, 0xb4, 0xeb, 0x8a, 0xa6, 0xe8, 0x2d, 0xe2, 0x3e, 0x0e, 0x5c, 0x4e, 0xfa, + 0xc2, 0x58, 0x0d, 0xf0, 0x89, 0x53, 0x3e, 0x23, 0x94, 0x9c, 0x0d, 0xd2, 0x70, 0x08, 0x51, 0x56, + 0x00, 0xfc, 0x39, 0xa2, 0x0a, 0x0c, 0x31, 0x3f, 0x73, 0xf2, 0xc9, 0x48, 0x7d, 0x84, 0x59, 0xc8, + 0xdc, 0xcf, 0xc6, 0xce, 0x38, 0xba, 0x01, 0x60, 0x93, 0x96, 0x45, 0x28, 0x0f, 0x06, 0xb9, 0xf0, + 0x03, 0x63, 0xd3, 0xa3, 0xe0, 0x00, 0x97, 0xfc, 0x73, 0x09, 0xc6, 0xd6, 0x09, 0xfd, 0xc4, 0xb0, + 0xf6, 0x1a, 0x86, 0xa6, 0xb6, 0xfa, 0xa7, 0x10, 0x6c, 0x71, 0x28, 0xd8, 0xbe, 0x32, 0x60, 0x67, + 0x42, 0xd6, 0xa5, 0x85, 0x5c, 0xf9, 0x0b, 0x09, 0xe6, 0x42, 0x9c, 0x77, 0xfd, 0xa3, 0xbb, 0x05, + 0x43, 0xa6, 0x61, 0x51, 0x37, 0x11, 0x1f, 0x4b, 0x21, 0x0b, 0x63, 0x81, 0x54, 0xcc, 0x60, 0xb0, + 0x83, 0x86, 0x56, 0x21, 0x47, 0x0d, 0xe1, 0xaa, 0xc7, 0xc3, 0x24, 0xc4, 0xaa, 0x83, 0xc0, 0xcc, + 0x6d, 0x1a, 0x38, 0x47, 0x0d, 0xb6, 0x11, 0xe5, 0x10, 0x57, 0x30, 0xf8, 0x3c, 0xa3, 0x19, 0x60, + 0x28, 0xec, 0x58, 0x46, 0xf7, 0xc4, 0x73, 0xf0, 0x36, 0x62, 0xd9, 0x32, 0xba, 0x98, 0x63, 0xc9, + 0x5f, 0x4a, 0x30, 0x15, 0xe2, 0x3c, 0x85, 0xc0, 0xff, 0x6e, 0x38, 0xf0, 0x5f, 0x3d, 0xce, 0x44, + 0x52, 0xc2, 0xff, 0x97, 0xb9, 0xc8, 0x34, 0xd8, 0x84, 0xd1, 0x0e, 0x8c, 0x9a, 0x46, 0xbb, 0xf9, + 0x14, 0x9e, 0x03, 0x27, 0x58, 0xde, 0x6c, 0xf8, 0x58, 0x38, 0x08, 0x8c, 0x0e, 0x60, 0x4a, 0x57, + 0xba, 0xc4, 0x36, 0x95, 0x16, 0x69, 0x3e, 0x85, 0x0b, 0x92, 0x73, 0xfc, 0xbd, 0x21, 0x8a, 0x88, + 0xe3, 0x4a, 0xd0, 0x1a, 0x14, 0x55, 0x93, 0xd7, 0x71, 0xa2, 0x76, 0x19, 0x98, 0x45, 0x9d, 0xaa, + 0xcf, 0x89, 0xe7, 0xe2, 0x07, 0x76, 0x31, 0xe4, 0x1f, 0x44, 0xbd, 0x81, 0xf9, 0x1f, 0xba, 0x07, + 0x25, 0xde, 0x62, 0xd1, 0x32, 0x34, 0xf7, 0x65, 0x80, 0xed, 0x6c, 0x43, 0x8c, 0x3d, 0x3e, 0xac, + 0x5c, 0x48, 0xb8, 0xf4, 0x75, 0xc9, 0xd8, 0x13, 0x46, 0xeb, 0x50, 0x30, 0xbf, 0x4f, 0x05, 0xc3, + 0x93, 0x1c, 0x2f, 0x5b, 0x38, 0x8e, 0xfc, 0x4f, 0xf9, 0x88, 0xb9, 0x3c, 0xd5, 0x3d, 0x7c, 0x6a, + 0xbb, 0xee, 0x55, 0x4c, 0xa9, 0x3b, 0xbf, 0x0d, 0x45, 0x91, 0xe1, 0x85, 0x33, 0xbf, 0x7e, 0x1c, + 0x67, 0x0e, 0x66, 0x31, 0xef, 0x83, 0xc5, 0x1d, 0x74, 0x81, 0xd1, 0x87, 0x30, 0x4c, 0x1c, 0x15, + 0x4e, 0x6e, 0xbc, 0x75, 0x1c, 0x15, 0x7e, 0x5c, 0xf5, 0x0b, 0x55, 0x31, 0x26, 0x50, 0xd1, 0x5b, + 0x6c, 0xbd, 0x18, 0x2f, 0xfb, 0x08, 0xb4, 0xcb, 0x05, 0x9e, 0xae, 0x2e, 0x3a, 0xd3, 0xf6, 0x86, + 0x1f, 0x1f, 0x56, 0xc0, 0xff, 0x89, 0x83, 0x12, 0xf2, 0x2f, 0x25, 0x98, 0xe2, 0x2b, 0xd4, 0xea, + 0x59, 0x2a, 0xed, 0x9f, 0x5a, 0x62, 0x7a, 0x10, 0x4a, 0x4c, 0xaf, 0x0d, 0x58, 0x96, 0x98, 0x85, + 0xa9, 0xc9, 0xe9, 0x2b, 0x09, 0xce, 0xc5, 0xb8, 0x4f, 0x21, 0x2e, 0x6e, 0x85, 0xe3, 0xe2, 0x2b, + 0xc7, 0x9d, 0x50, 0x4a, 0x6c, 0xfc, 0xe7, 0xc9, 0x84, 0xe9, 0xf0, 0x93, 0x72, 0x03, 0xc0, 0xb4, + 0xd4, 0x7d, 0x55, 0x23, 0x1d, 0xf1, 0x08, 0x5e, 0x0a, 0xb4, 0x38, 0x79, 0x14, 0x1c, 0xe0, 0x42, + 0x36, 0xcc, 0xb6, 0xc9, 0x8e, 0xd2, 0xd3, 0xe8, 0x42, 0xbb, 0xbd, 0xa8, 0x98, 0xca, 0xb6, 0xaa, + 0xa9, 0x54, 0x15, 0xd7, 0x05, 0x23, 0xf5, 0x3b, 0xce, 0xe3, 0x74, 0x12, 0xc7, 0xe3, 0xc3, 0xca, + 0xc5, 0xa4, 0xd7, 0x21, 0x97, 0xa5, 0x8f, 0x53, 0xa0, 0x51, 0x1f, 0xca, 0x16, 0xf9, 0xb8, 0xa7, + 0x5a, 0xa4, 0xbd, 0x64, 0x19, 0x66, 0x48, 0x6d, 0x9e, 0xab, 0xfd, 0xeb, 0xa3, 0xc3, 0x4a, 0x19, + 0xa7, 0xf0, 0x0c, 0x56, 0x9c, 0x0a, 0x8f, 0x1e, 0xc2, 0xb4, 0xe2, 0x74, 0x86, 0x85, 0xb4, 0x3a, + 0xa7, 0xe4, 0xf6, 0xd1, 0x61, 0x65, 0x7a, 0x21, 0x4e, 0x1e, 0xac, 0x30, 0x09, 0x14, 0xd5, 0xa0, + 0xb8, 0xcf, 0xfb, 0xd6, 0xec, 0xf2, 0x10, 0xc7, 0x67, 0x89, 0xa0, 0xe8, 0xb4, 0xb2, 0x31, 0xcc, + 0xe1, 0xe5, 0x26, 0x3f, 0x7d, 0x2e, 0x17, 0xfb, 0xa0, 0x64, 0xb5, 0xa4, 0x38, 0xf1, 0xfc, 0xc6, + 0xb8, 0xe4, 0x47, 0xad, 0xfb, 0x3e, 0x09, 0x07, 0xf9, 0xd0, 0x07, 0x30, 0xb2, 0x2b, 0x6e, 0x25, + 0xec, 0x72, 0x31, 0x53, 0x12, 0x0e, 0xdd, 0x62, 0xd4, 0xa7, 0x84, 0x8a, 0x11, 0x77, 0xd8, 0xc6, + 0x3e, 0x22, 0x7a, 0x09, 0x8a, 0xfc, 0xc7, 0xca, 0x12, 0xbf, 0x8e, 0x2b, 0xf9, 0xb1, 0xed, 0xbe, + 0x33, 0x8c, 0x5d, 0xba, 0xcb, 0xba, 0xd2, 0x58, 0xe4, 0xd7, 0xc2, 0x11, 0xd6, 0x95, 0xc6, 0x22, + 0x76, 0xe9, 0xe8, 0x23, 0x28, 0xda, 0x64, 0x55, 0xd5, 0x7b, 0x07, 0x65, 0xc8, 0xf4, 0xa8, 0xdc, + 0xbc, 0xcb, 0xb9, 0x23, 0x17, 0x63, 0xbe, 0x06, 0x41, 0xc7, 0x2e, 0x2c, 0xda, 0x85, 0x11, 0xab, + 0xa7, 0x2f, 0xd8, 0x5b, 0x36, 0xb1, 0xca, 0xa3, 0x5c, 0xc7, 0xa0, 0x70, 0x8e, 0x5d, 0xfe, 0xa8, + 0x16, 0x6f, 0x85, 0x3c, 0x0e, 0xec, 0x83, 0xa3, 0x7f, 0x93, 0x00, 0xd9, 0x3d, 0xd3, 0xd4, 0x48, + 0x97, 0xe8, 0x54, 0xd1, 0xf8, 0x5d, 0x9c, 0x5d, 0x3e, 0xcb, 0x75, 0xbe, 0x3d, 0x68, 0x5e, 0x31, + 0xc1, 0xa8, 0x72, 0xef, 0xd2, 0x3b, 0xce, 0x8a, 0x13, 0xf4, 0xb2, 0xa5, 0xdd, 0xb1, 0xf9, 0xdf, + 0xe5, 0xb1, 0x4c, 0x4b, 0x9b, 0x7c, 0xe7, 0xe8, 0x2f, 0xad, 0xa0, 0x63, 0x17, 0x16, 0x3d, 0x80, + 0x59, 0xb7, 0xed, 0x11, 0x1b, 0x06, 0x5d, 0x56, 0x35, 0x62, 0xf7, 0x6d, 0x4a, 0xba, 0xe5, 0x71, + 0xbe, 0xed, 0x5e, 0xef, 0x07, 0x4e, 0xe4, 0xc2, 0x29, 0xd2, 0xa8, 0x0b, 0x15, 0x37, 0x64, 0xb0, + 0xf3, 0xe4, 0xc5, 0xac, 0xbb, 0x76, 0x4b, 0xd1, 0x9c, 0x77, 0x80, 0x09, 0xae, 0xe0, 0xc5, 0xa3, + 0xc3, 0x4a, 0x65, 0xe9, 0xc9, 0xac, 0x78, 0x10, 0x16, 0x7a, 0x0f, 0xca, 0x4a, 0x9a, 0x9e, 0x49, + 0xae, 0xe7, 0x79, 0x16, 0x87, 0x52, 0x15, 0xa4, 0x4a, 0x23, 0x0a, 0x93, 0x4a, 0xb8, 0x01, 0xd5, + 0x2e, 0x4f, 0x65, 0xba, 0x88, 0x8c, 0xf4, 0xad, 0xfa, 0x97, 0x11, 0x11, 0x82, 0x8d, 0x63, 0x1a, + 0xd0, 0x3f, 0x00, 0x52, 0xa2, 0x3d, 0xb3, 0x76, 0x19, 0x65, 0x4a, 0x3f, 0xb1, 0x66, 0x5b, 0xdf, + 0xed, 0x62, 0x24, 0x1b, 0x27, 0xe8, 0x41, 0xab, 0x30, 0x23, 0x46, 0xb7, 0x74, 0x5b, 0xd9, 0x21, + 0xcd, 0xbe, 0xdd, 0xa2, 0x9a, 0x5d, 0x9e, 0xe6, 0xb1, 0x8f, 0x3f, 0x7c, 0x2d, 0x24, 0xd0, 0x71, + 0xa2, 0x14, 0x7a, 0x1b, 0x26, 0x77, 0x0c, 0x6b, 0x5b, 0x6d, 0xb7, 0x89, 0xee, 0x22, 0xcd, 0x70, + 0xa4, 0x19, 0xb6, 0x1a, 0xcb, 0x11, 0x1a, 0x8e, 0x71, 0x23, 0x1b, 0xce, 0x09, 0xe4, 0x86, 0x65, + 0xb4, 0xd6, 0x8c, 0x9e, 0x4e, 0x9d, 0x92, 0xe8, 0x9c, 0x97, 0x62, 0xce, 0x2d, 0x24, 0x31, 0x3c, + 0x3e, 0xac, 0x5c, 0x4a, 0xae, 0x80, 0x7d, 0x26, 0x9c, 0x8c, 0x8d, 0x76, 0x01, 0x78, 0x5c, 0x70, + 0x8e, 0xdf, 0x2c, 0x3f, 0x7e, 0xb7, 0xb3, 0x44, 0x9d, 0xc4, 0x13, 0xe8, 0x3c, 0xc9, 0x79, 0x64, + 0x1c, 0xc0, 0xe6, 0xbd, 0x32, 0xe2, 0xe5, 0xe4, 0x74, 0xfa, 0x8d, 0x8f, 0xd7, 0x2b, 0xe3, 0x9b, + 0xf6, 0xd4, 0x7a, 0x65, 0x02, 0x90, 0x4f, 0xbe, 0xab, 0xfd, 0x6d, 0x0e, 0xa6, 0x7d, 0xe6, 0xcc, + 0xbd, 0x32, 0x09, 0x22, 0x7f, 0xee, 0x39, 0x1e, 0xdc, 0x73, 0xfc, 0x85, 0x04, 0xe3, 0xfe, 0xd2, + 0xfd, 0xf1, 0xf5, 0xaf, 0xf8, 0xb6, 0xa5, 0x54, 0xd4, 0x3f, 0xca, 0x05, 0x27, 0xf0, 0x27, 0xdf, + 0x44, 0xf1, 0xfd, 0x1b, 0x85, 0xe5, 0xaf, 0xf2, 0x30, 0x19, 0x3d, 0x8d, 0xa1, 0xb7, 0x76, 0x69, + 0xe0, 0x5b, 0x7b, 0x03, 0x66, 0x76, 0x7a, 0x9a, 0xd6, 0xe7, 0xcb, 0x10, 0x78, 0x70, 0x77, 0xde, + 0xca, 0x9e, 0x17, 0x92, 0x33, 0xcb, 0x09, 0x3c, 0x38, 0x51, 0x32, 0xa5, 0x6f, 0x20, 0x7f, 0xa2, + 0xbe, 0x81, 0xd8, 0x33, 0x76, 0xe1, 0x18, 0xcf, 0xd8, 0x89, 0x3d, 0x00, 0x43, 0x27, 0xe8, 0x01, + 0x38, 0xc9, 0xa3, 0x7d, 0x42, 0x10, 0x1b, 0xd8, 0x43, 0xfa, 0x3c, 0x9c, 0x17, 0x62, 0x94, 0xbf, + 0xa7, 0xeb, 0xd4, 0x32, 0x34, 0x8d, 0x58, 0x4b, 0xbd, 0x6e, 0xb7, 0x2f, 0xbf, 0x09, 0xe3, 0xe1, + 0x4e, 0x11, 0x67, 0xa7, 0x9d, 0x66, 0x15, 0xf1, 0x62, 0x19, 0xd8, 0x69, 0x67, 0x1c, 0x7b, 0x1c, + 0xf2, 0xbf, 0x48, 0x30, 0x9b, 0xdc, 0x11, 0x8a, 0x34, 0x18, 0xef, 0x2a, 0x07, 0xc1, 0x2e, 0x5d, + 0xe9, 0x84, 0x77, 0x49, 0xbc, 0x45, 0x60, 0x2d, 0x84, 0x85, 0x23, 0xd8, 0xf2, 0x77, 0x12, 0xcc, + 0xa5, 0x3c, 0xce, 0x9f, 0xae, 0x25, 0xe8, 0x7d, 0x28, 0x75, 0x95, 0x83, 0x66, 0xcf, 0xea, 0x90, + 0x13, 0xdf, 0x9e, 0xf1, 0x88, 0xb1, 0x26, 0x50, 0xb0, 0x87, 0x27, 0xff, 0x9f, 0x04, 0xcf, 0xa5, + 0x56, 0x14, 0xe8, 0x56, 0xa8, 0x8f, 0x40, 0x8e, 0xf4, 0x11, 0xa0, 0xb8, 0xe0, 0x33, 0x6a, 0x23, + 0xf8, 0x4c, 0x82, 0x72, 0xda, 0xd7, 0x16, 0xba, 0x19, 0x32, 0xf2, 0x85, 0x88, 0x91, 0x53, 0x31, + 0xb9, 0x67, 0x64, 0xe3, 0x0f, 0x25, 0x98, 0x4d, 0xfe, 0xea, 0x44, 0xaf, 0x86, 0x2c, 0xac, 0x44, + 0x2c, 0x9c, 0x88, 0x48, 0x09, 0xfb, 0x3e, 0x84, 0x71, 0xf1, 0x6d, 0x2a, 0x60, 0xc4, 0xde, 0xcb, + 0x49, 0x11, 0x5d, 0x40, 0xb8, 0x95, 0x20, 0xf7, 0xaa, 0xf0, 0x18, 0x8e, 0xa0, 0xc9, 0xff, 0x9a, + 0x83, 0xa1, 0x66, 0x4b, 0xd1, 0xc8, 0x29, 0x14, 0x83, 0xef, 0x84, 0x8a, 0xc1, 0x41, 0xff, 0xf7, + 0xc3, 0xad, 0x4a, 0xad, 0x03, 0x71, 0xa4, 0x0e, 0x7c, 0x39, 0x13, 0xda, 0x93, 0x4b, 0xc0, 0xbf, + 0x82, 0x11, 0x4f, 0xe9, 0xf1, 0x32, 0x93, 0xfc, 0xbf, 0x39, 0x18, 0x0d, 0xa8, 0x38, 0x66, 0x5e, + 0xdb, 0x09, 0xd5, 0x03, 0xf9, 0x0c, 0xe5, 0x7f, 0x40, 0x57, 0xd5, 0xad, 0x00, 0x9c, 0xbe, 0x55, + 0xbf, 0x53, 0x31, 0x5e, 0x18, 0xbc, 0x09, 0xe3, 0x54, 0xb1, 0x3a, 0x84, 0x7a, 0x37, 0xe3, 0x79, + 0xee, 0x8b, 0x5e, 0xb7, 0xf3, 0x66, 0x88, 0x8a, 0x23, 0xdc, 0xe7, 0xef, 0xc0, 0x58, 0x48, 0xd9, + 0xb1, 0xda, 0x4e, 0x7f, 0x22, 0xc1, 0x0b, 0x03, 0xef, 0x2d, 0x50, 0x3d, 0x74, 0x48, 0xaa, 0x91, + 0x43, 0x32, 0x9f, 0x0e, 0xf0, 0xec, 0xda, 0x97, 0xea, 0xd7, 0x1e, 0x7d, 0x3b, 0x7f, 0xe6, 0xeb, + 0x6f, 0xe7, 0xcf, 0x7c, 0xf3, 0xed, 0xfc, 0x99, 0x7f, 0x3c, 0x9a, 0x97, 0x1e, 0x1d, 0xcd, 0x4b, + 0x5f, 0x1f, 0xcd, 0x4b, 0xdf, 0x1c, 0xcd, 0x4b, 0xbf, 0x3e, 0x9a, 0x97, 0xfe, 0xf3, 0xbb, 0xf9, + 0x33, 0xef, 0x17, 0x05, 0xdc, 0x1f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x51, 0x7e, 0x9f, 0x62, 0x14, 0x3c, 0x00, 0x00, } diff --git a/vendor/k8s.io/api/extensions/v1beta1/generated.proto b/vendor/k8s.io/api/extensions/v1beta1/generated.proto index 8308786d1..efcda7ebd 100644 --- a/vendor/k8s.io/api/extensions/v1beta1/generated.proto +++ b/vendor/k8s.io/api/extensions/v1beta1/generated.proto @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -22,8 +22,6 @@ syntax = 'proto2'; package k8s.io.api.extensions.v1beta1; import "k8s.io/api/core/v1/generated.proto"; -import "k8s.io/api/policy/v1beta1/generated.proto"; -import "k8s.io/apimachinery/pkg/api/resource/generated.proto"; import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; @@ -33,47 +31,28 @@ import "k8s.io/apimachinery/pkg/util/intstr/generated.proto"; option go_package = "v1beta1"; // AllowedFlexVolume represents a single Flexvolume that is allowed to be used. +// Deprecated: use AllowedFlexVolume from policy API Group instead. message AllowedFlexVolume { - // Driver is the name of the Flexvolume driver. + // driver is the name of the Flexvolume driver. optional string driver = 1; } -// defines the host volume conditions that will be enabled by a policy +// AllowedHostPath defines the host volume conditions that will be enabled by a policy // for pods to use. It requires the path prefix to be defined. +// Deprecated: use AllowedHostPath from policy API Group instead. message AllowedHostPath { - // is the path prefix that the host volume must match. + // pathPrefix is the path prefix that the host volume must match. // It does not support `*`. // Trailing slashes are trimmed when validating the path prefix with a host path. - // + // // Examples: // `/foo` would allow `/foo`, `/foo/` and `/foo/bar` // `/foo` would not allow `/food` or `/etc/foo` optional string pathPrefix = 1; -} -message CustomMetricCurrentStatus { - // Custom Metric name. - optional string name = 1; - - // Custom Metric value (average). - optional k8s.io.apimachinery.pkg.api.resource.Quantity value = 2; -} - -message CustomMetricCurrentStatusList { - repeated CustomMetricCurrentStatus items = 1; -} - -// Alpha-level support for Custom Metrics in HPA (as annotations). -message CustomMetricTarget { - // Custom Metric name. - optional string name = 1; - - // Custom Metric value (average). - optional k8s.io.apimachinery.pkg.api.resource.Quantity value = 2; -} - -message CustomMetricTargetList { - repeated CustomMetricTarget items = 1; + // when set to true, will allow host volumes matching the pathPrefix only if all volume mounts are readOnly. + // +optional + optional bool readOnly = 2; } // DEPRECATED - This group version of DaemonSet is deprecated by apps/v1beta2/DaemonSet. See the release notes for @@ -330,6 +309,8 @@ message DeploymentSpec { // The number of old ReplicaSets to retain to allow rollback. // This is a pointer to distinguish between explicit zero and not specified. + // This is set to the max value of int32 (i.e. 2147483647) by default, which + // means "retaining all old RelicaSets". // +optional optional int32 revisionHistoryLimit = 6; @@ -347,8 +328,8 @@ message DeploymentSpec { // is considered to be failed. The deployment controller will continue to // process failed deployments and a condition with a ProgressDeadlineExceeded // reason will be surfaced in the deployment status. Note that progress will - // not be estimated during the time a deployment is paused. This is not set - // by default. + // not be estimated during the time a deployment is paused. This is set to + // the max value of int32 (i.e. 2147483647) by default, which means "no deadline". // +optional optional int32 progressDeadlineSeconds = 9; } @@ -409,13 +390,14 @@ message DeploymentStrategy { } // FSGroupStrategyOptions defines the strategy type and options used to create the strategy. +// Deprecated: use FSGroupStrategyOptions from policy API Group instead. message FSGroupStrategyOptions { - // Rule is the strategy that will dictate what FSGroup is used in the SecurityContext. + // rule is the strategy that will dictate what FSGroup is used in the SecurityContext. // +optional optional string rule = 1; - // Ranges are the allowed ranges of fs groups. If you would like to force a single - // fs group then supply a single range with the same start and end. + // ranges are the allowed ranges of fs groups. If you would like to force a single + // fs group then supply a single range with the same start and end. Required for MustRunAs. // +optional repeated IDRange ranges = 2; } @@ -448,8 +430,9 @@ message HTTPIngressRuleValue { repeated HTTPIngressPath paths = 1; } -// Host Port Range defines a range of host ports that will be enabled by a policy +// HostPortRange defines a range of host ports that will be enabled by a policy // for pods to use. It requires both the start and end to be defined. +// Deprecated: use HostPortRange from policy API Group instead. message HostPortRange { // min is the start of the range, inclusive. optional int32 min = 1; @@ -458,12 +441,13 @@ message HostPortRange { optional int32 max = 2; } -// ID Range provides a min/max of an allowed range of IDs. +// IDRange provides a min/max of an allowed range of IDs. +// Deprecated: use IDRange from policy API Group instead. message IDRange { - // Min is the start of the range, inclusive. + // min is the start of the range, inclusive. optional int64 min = 1; - // Max is the end of the range, inclusive. + // max is the end of the range, inclusive. optional int64 max = 2; } @@ -678,27 +662,33 @@ message NetworkPolicyList { // DEPRECATED 1.9 - This group version of NetworkPolicyPeer is deprecated by networking/v1/NetworkPolicyPeer. message NetworkPolicyPeer { - // This is a label selector which selects Pods in this namespace. - // This field follows standard label selector semantics. - // If present but empty, this selector selects all pods in this namespace. + // This is a label selector which selects Pods. This field follows standard label + // selector semantics; if present but empty, it selects all pods. + // + // If NamespaceSelector is also set, then the NetworkPolicyPeer as a whole selects + // the Pods matching PodSelector in the Namespaces selected by NamespaceSelector. + // Otherwise it selects the Pods matching PodSelector in the policy's own Namespace. // +optional optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector podSelector = 1; - // Selects Namespaces using cluster scoped-labels. This - // matches all pods in all namespaces selected by this label selector. - // This field follows standard label selector semantics. - // If present but empty, this selector selects all namespaces. + // Selects Namespaces using cluster-scoped labels. This field follows standard label + // selector semantics; if present but empty, it selects all namespaces. + // + // If PodSelector is also set, then the NetworkPolicyPeer as a whole selects + // the Pods matching PodSelector in the Namespaces selected by NamespaceSelector. + // Otherwise it selects all Pods in the Namespaces selected by NamespaceSelector. // +optional optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector namespaceSelector = 2; - // IPBlock defines policy on a particular IPBlock + // IPBlock defines policy on a particular IPBlock. If this field is set then + // neither of the other fields can be. // +optional optional IPBlock ipBlock = 3; } // DEPRECATED 1.9 - This group version of NetworkPolicyPort is deprecated by networking/v1/NetworkPolicyPort. message NetworkPolicyPort { - // Optional. The protocol (TCP or UDP) which traffic must match. + // Optional. The protocol (TCP, UDP, or SCTP) which traffic must match. // If not specified, this field defaults to TCP. // +optional optional string protocol = 1; @@ -755,8 +745,9 @@ message NetworkPolicySpec { repeated string policyTypes = 4; } -// Pod Security Policy governs the ability to make requests that affect the Security Context +// PodSecurityPolicy governs the ability to make requests that affect the Security Context // that will be applied to a pod and container. +// Deprecated: use PodSecurityPolicy from policy API Group instead. message PodSecurityPolicy { // Standard object's metadata. // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata @@ -768,43 +759,45 @@ message PodSecurityPolicy { optional PodSecurityPolicySpec spec = 2; } -// Pod Security Policy List is a list of PodSecurityPolicy objects. +// PodSecurityPolicyList is a list of PodSecurityPolicy objects. +// Deprecated: use PodSecurityPolicyList from policy API Group instead. message PodSecurityPolicyList { // Standard list metadata. // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata // +optional optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; - // Items is a list of schema objects. + // items is a list of schema objects. repeated PodSecurityPolicy items = 2; } -// Pod Security Policy Spec defines the policy enforced. +// PodSecurityPolicySpec defines the policy enforced. +// Deprecated: use PodSecurityPolicySpec from policy API Group instead. message PodSecurityPolicySpec { // privileged determines if a pod can request to be run as privileged. // +optional optional bool privileged = 1; - // DefaultAddCapabilities is the default set of capabilities that will be added to the container + // defaultAddCapabilities is the default set of capabilities that will be added to the container // unless the pod spec specifically drops the capability. You may not list a capability in both - // DefaultAddCapabilities and RequiredDropCapabilities. Capabilities added here are implicitly - // allowed, and need not be included in the AllowedCapabilities list. + // defaultAddCapabilities and requiredDropCapabilities. Capabilities added here are implicitly + // allowed, and need not be included in the allowedCapabilities list. // +optional repeated string defaultAddCapabilities = 2; - // RequiredDropCapabilities are the capabilities that will be dropped from the container. These + // requiredDropCapabilities are the capabilities that will be dropped from the container. These // are required to be dropped and cannot be added. // +optional repeated string requiredDropCapabilities = 3; - // AllowedCapabilities is a list of capabilities that can be requested to add to the container. + // allowedCapabilities is a list of capabilities that can be requested to add to the container. // Capabilities in this field may be added at the pod author's discretion. - // You must not list a capability in both AllowedCapabilities and RequiredDropCapabilities. + // You must not list a capability in both allowedCapabilities and requiredDropCapabilities. // +optional repeated string allowedCapabilities = 4; - // volumes is a white list of allowed volume plugins. Empty indicates that all plugins - // may be used. + // volumes is a white list of allowed volume plugins. Empty indicates that + // no volumes may be used. To allow all volumes you may use '*'. // +optional repeated string volumes = 5; @@ -830,13 +823,19 @@ message PodSecurityPolicySpec { // runAsUser is the strategy that will dictate the allowable RunAsUser values that may be set. optional RunAsUserStrategyOptions runAsUser = 11; - // SupplementalGroups is the strategy that will dictate what supplemental groups are used by the SecurityContext. + // RunAsGroup is the strategy that will dictate the allowable RunAsGroup values that may be set. + // If this field is omitted, the pod's RunAsGroup can take any value. This field requires the + // RunAsGroup feature gate to be enabled. + // +optional + optional RunAsGroupStrategyOptions runAsGroup = 22; + + // supplementalGroups is the strategy that will dictate what supplemental groups are used by the SecurityContext. optional SupplementalGroupsStrategyOptions supplementalGroups = 12; - // FSGroup is the strategy that will dictate what fs group is used by the SecurityContext. + // fsGroup is the strategy that will dictate what fs group is used by the SecurityContext. optional FSGroupStrategyOptions fsGroup = 13; - // ReadOnlyRootFilesystem when set to true will force containers to run with a read only root file + // readOnlyRootFilesystem when set to true will force containers to run with a read only root file // system. If the container specifically requests to run with a non-read only root file system // the PSP should deny the pod. // If set to false the container may run with a read only root file system if it wishes but it @@ -844,25 +843,53 @@ message PodSecurityPolicySpec { // +optional optional bool readOnlyRootFilesystem = 14; - // DefaultAllowPrivilegeEscalation controls the default setting for whether a + // defaultAllowPrivilegeEscalation controls the default setting for whether a // process can gain more privileges than its parent process. // +optional optional bool defaultAllowPrivilegeEscalation = 15; - // AllowPrivilegeEscalation determines if a pod can request to allow + // allowPrivilegeEscalation determines if a pod can request to allow // privilege escalation. If unspecified, defaults to true. // +optional optional bool allowPrivilegeEscalation = 16; - // is a white list of allowed host paths. Empty indicates that all host paths may be used. + // allowedHostPaths is a white list of allowed host paths. Empty indicates + // that all host paths may be used. // +optional repeated AllowedHostPath allowedHostPaths = 17; - // AllowedFlexVolumes is a whitelist of allowed Flexvolumes. Empty or nil indicates that all + // allowedFlexVolumes is a whitelist of allowed Flexvolumes. Empty or nil indicates that all // Flexvolumes may be used. This parameter is effective only when the usage of the Flexvolumes - // is allowed in the "Volumes" field. + // is allowed in the "volumes" field. // +optional repeated AllowedFlexVolume allowedFlexVolumes = 18; + + // allowedUnsafeSysctls is a list of explicitly allowed unsafe sysctls, defaults to none. + // Each entry is either a plain sysctl name or ends in "*" in which case it is considered + // as a prefix of allowed sysctls. Single * means all unsafe sysctls are allowed. + // Kubelet has to whitelist all allowed unsafe sysctls explicitly to avoid rejection. + // + // Examples: + // e.g. "foo/*" allows "foo/bar", "foo/baz", etc. + // e.g. "foo.*" allows "foo.bar", "foo.baz", etc. + // +optional + repeated string allowedUnsafeSysctls = 19; + + // forbiddenSysctls is a list of explicitly forbidden sysctls, defaults to none. + // Each entry is either a plain sysctl name or ends in "*" in which case it is considered + // as a prefix of forbidden sysctls. Single * means all sysctls are forbidden. + // + // Examples: + // e.g. "foo/*" forbids "foo/bar", "foo/baz", etc. + // e.g. "foo.*" forbids "foo.bar", "foo.baz", etc. + // +optional + repeated string forbiddenSysctls = 20; + + // AllowedProcMountTypes is a whitelist of allowed ProcMountTypes. + // Empty or nil indicates that only the DefaultProcMountType may be used. + // This requires the ProcMountType feature flag to be enabled. + // +optional + repeated string allowedProcMountTypes = 21; } // DEPRECATED - This group version of ReplicaSet is deprecated by apps/v1beta2/ReplicaSet. See the release notes for @@ -1041,19 +1068,34 @@ message RollingUpdateDeployment { optional k8s.io.apimachinery.pkg.util.intstr.IntOrString maxSurge = 2; } -// Run A sUser Strategy Options defines the strategy type and any options used to create the strategy. -message RunAsUserStrategyOptions { - // Rule is the strategy that will dictate the allowable RunAsUser values that may be set. +// RunAsGroupStrategyOptions defines the strategy type and any options used to create the strategy. +// Deprecated: use RunAsGroupStrategyOptions from policy API Group instead. +message RunAsGroupStrategyOptions { + // rule is the strategy that will dictate the allowable RunAsGroup values that may be set. optional string rule = 1; - // Ranges are the allowed ranges of uids that may be used. + // ranges are the allowed ranges of gids that may be used. If you would like to force a single gid + // then supply a single range with the same start and end. Required for MustRunAs. // +optional repeated IDRange ranges = 2; } -// SELinux Strategy Options defines the strategy type and any options used to create the strategy. +// RunAsUserStrategyOptions defines the strategy type and any options used to create the strategy. +// Deprecated: use RunAsUserStrategyOptions from policy API Group instead. +message RunAsUserStrategyOptions { + // rule is the strategy that will dictate the allowable RunAsUser values that may be set. + optional string rule = 1; + + // ranges are the allowed ranges of uids that may be used. If you would like to force a single uid + // then supply a single range with the same start and end. Required for MustRunAs. + // +optional + repeated IDRange ranges = 2; +} + +// SELinuxStrategyOptions defines the strategy type and any options used to create the strategy. +// Deprecated: use SELinuxStrategyOptions from policy API Group instead. message SELinuxStrategyOptions { - // type is the strategy that will dictate the allowable labels that may be set. + // rule is the strategy that will dictate the allowable labels that may be set. optional string rule = 1; // seLinuxOptions required to run as; required for MustRunAs @@ -1104,13 +1146,14 @@ message ScaleStatus { } // SupplementalGroupsStrategyOptions defines the strategy type and options used to create the strategy. +// Deprecated: use SupplementalGroupsStrategyOptions from policy API Group instead. message SupplementalGroupsStrategyOptions { - // Rule is the strategy that will dictate what supplemental groups is used in the SecurityContext. + // rule is the strategy that will dictate what supplemental groups is used in the SecurityContext. // +optional optional string rule = 1; - // Ranges are the allowed ranges of supplemental groups. If you would like to force a single - // supplemental group then supply a single range with the same start and end. + // ranges are the allowed ranges of supplemental groups. If you would like to force a single + // supplemental group then supply a single range with the same start and end. Required for MustRunAs. // +optional repeated IDRange ranges = 2; } diff --git a/vendor/k8s.io/api/extensions/v1beta1/types.go b/vendor/k8s.io/api/extensions/v1beta1/types.go index c3d9f72d7..5ba6f9585 100644 --- a/vendor/k8s.io/api/extensions/v1beta1/types.go +++ b/vendor/k8s.io/api/extensions/v1beta1/types.go @@ -19,7 +19,6 @@ package v1beta1 import ( appsv1beta1 "k8s.io/api/apps/v1beta1" "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/intstr" ) @@ -50,8 +49,6 @@ type ScaleStatus struct { TargetSelector string `json:"targetSelector,omitempty" protobuf:"bytes,3,opt,name=targetSelector"` } -// +genclient -// +genclient:noVerbs // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // represents a scaling request for a resource. @@ -77,29 +74,6 @@ type ReplicationControllerDummy struct { metav1.TypeMeta `json:",inline"` } -// Alpha-level support for Custom Metrics in HPA (as annotations). -type CustomMetricTarget struct { - // Custom Metric name. - Name string `json:"name" protobuf:"bytes,1,opt,name=name"` - // Custom Metric value (average). - TargetValue resource.Quantity `json:"value" protobuf:"bytes,2,opt,name=value"` -} - -type CustomMetricTargetList struct { - Items []CustomMetricTarget `json:"items" protobuf:"bytes,1,rep,name=items"` -} - -type CustomMetricCurrentStatus struct { - // Custom Metric name. - Name string `json:"name" protobuf:"bytes,1,opt,name=name"` - // Custom Metric value (average). - CurrentValue resource.Quantity `json:"value" protobuf:"bytes,2,opt,name=value"` -} - -type CustomMetricCurrentStatusList struct { - Items []CustomMetricCurrentStatus `json:"items" protobuf:"bytes,1,rep,name=items"` -} - // +genclient // +genclient:method=GetScale,verb=get,subresource=scale,result=Scale // +genclient:method=UpdateScale,verb=update,subresource=scale,input=Scale,result=Scale @@ -151,6 +125,8 @@ type DeploymentSpec struct { // The number of old ReplicaSets to retain to allow rollback. // This is a pointer to distinguish between explicit zero and not specified. + // This is set to the max value of int32 (i.e. 2147483647) by default, which + // means "retaining all old RelicaSets". // +optional RevisionHistoryLimit *int32 `json:"revisionHistoryLimit,omitempty" protobuf:"varint,6,opt,name=revisionHistoryLimit"` @@ -168,8 +144,8 @@ type DeploymentSpec struct { // is considered to be failed. The deployment controller will continue to // process failed deployments and a condition with a ProgressDeadlineExceeded // reason will be surfaced in the deployment status. Note that progress will - // not be estimated during the time a deployment is paused. This is not set - // by default. + // not be estimated during the time a deployment is paused. This is set to + // the max value of int32 (i.e. 2147483647) by default, which means "no deadline". // +optional ProgressDeadlineSeconds *int32 `json:"progressDeadlineSeconds,omitempty" protobuf:"varint,9,opt,name=progressDeadlineSeconds"` } @@ -862,8 +838,9 @@ type ReplicaSetCondition struct { // +genclient:nonNamespaced // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object -// Pod Security Policy governs the ability to make requests that affect the Security Context +// PodSecurityPolicy governs the ability to make requests that affect the Security Context // that will be applied to a pod and container. +// Deprecated: use PodSecurityPolicy from policy API Group instead. type PodSecurityPolicy struct { metav1.TypeMeta `json:",inline"` // Standard object's metadata. @@ -876,28 +853,29 @@ type PodSecurityPolicy struct { Spec PodSecurityPolicySpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` } -// Pod Security Policy Spec defines the policy enforced. +// PodSecurityPolicySpec defines the policy enforced. +// Deprecated: use PodSecurityPolicySpec from policy API Group instead. type PodSecurityPolicySpec struct { // privileged determines if a pod can request to be run as privileged. // +optional Privileged bool `json:"privileged,omitempty" protobuf:"varint,1,opt,name=privileged"` - // DefaultAddCapabilities is the default set of capabilities that will be added to the container + // defaultAddCapabilities is the default set of capabilities that will be added to the container // unless the pod spec specifically drops the capability. You may not list a capability in both - // DefaultAddCapabilities and RequiredDropCapabilities. Capabilities added here are implicitly - // allowed, and need not be included in the AllowedCapabilities list. + // defaultAddCapabilities and requiredDropCapabilities. Capabilities added here are implicitly + // allowed, and need not be included in the allowedCapabilities list. // +optional DefaultAddCapabilities []v1.Capability `json:"defaultAddCapabilities,omitempty" protobuf:"bytes,2,rep,name=defaultAddCapabilities,casttype=k8s.io/api/core/v1.Capability"` - // RequiredDropCapabilities are the capabilities that will be dropped from the container. These + // requiredDropCapabilities are the capabilities that will be dropped from the container. These // are required to be dropped and cannot be added. // +optional RequiredDropCapabilities []v1.Capability `json:"requiredDropCapabilities,omitempty" protobuf:"bytes,3,rep,name=requiredDropCapabilities,casttype=k8s.io/api/core/v1.Capability"` - // AllowedCapabilities is a list of capabilities that can be requested to add to the container. + // allowedCapabilities is a list of capabilities that can be requested to add to the container. // Capabilities in this field may be added at the pod author's discretion. - // You must not list a capability in both AllowedCapabilities and RequiredDropCapabilities. + // You must not list a capability in both allowedCapabilities and requiredDropCapabilities. // +optional AllowedCapabilities []v1.Capability `json:"allowedCapabilities,omitempty" protobuf:"bytes,4,rep,name=allowedCapabilities,casttype=k8s.io/api/core/v1.Capability"` - // volumes is a white list of allowed volume plugins. Empty indicates that all plugins - // may be used. + // volumes is a white list of allowed volume plugins. Empty indicates that + // no volumes may be used. To allow all volumes you may use '*'. // +optional Volumes []FSType `json:"volumes,omitempty" protobuf:"bytes,5,rep,name=volumes,casttype=FSType"` // hostNetwork determines if the policy allows the use of HostNetwork in the pod spec. @@ -916,39 +894,70 @@ type PodSecurityPolicySpec struct { SELinux SELinuxStrategyOptions `json:"seLinux" protobuf:"bytes,10,opt,name=seLinux"` // runAsUser is the strategy that will dictate the allowable RunAsUser values that may be set. RunAsUser RunAsUserStrategyOptions `json:"runAsUser" protobuf:"bytes,11,opt,name=runAsUser"` - // SupplementalGroups is the strategy that will dictate what supplemental groups are used by the SecurityContext. + // RunAsGroup is the strategy that will dictate the allowable RunAsGroup values that may be set. + // If this field is omitted, the pod's RunAsGroup can take any value. This field requires the + // RunAsGroup feature gate to be enabled. + // +optional + RunAsGroup *RunAsGroupStrategyOptions `json:"runAsGroup,omitempty" protobuf:"bytes,22,opt,name=runAsGroup"` + // supplementalGroups is the strategy that will dictate what supplemental groups are used by the SecurityContext. SupplementalGroups SupplementalGroupsStrategyOptions `json:"supplementalGroups" protobuf:"bytes,12,opt,name=supplementalGroups"` - // FSGroup is the strategy that will dictate what fs group is used by the SecurityContext. + // fsGroup is the strategy that will dictate what fs group is used by the SecurityContext. FSGroup FSGroupStrategyOptions `json:"fsGroup" protobuf:"bytes,13,opt,name=fsGroup"` - // ReadOnlyRootFilesystem when set to true will force containers to run with a read only root file + // readOnlyRootFilesystem when set to true will force containers to run with a read only root file // system. If the container specifically requests to run with a non-read only root file system // the PSP should deny the pod. // If set to false the container may run with a read only root file system if it wishes but it // will not be forced to. // +optional ReadOnlyRootFilesystem bool `json:"readOnlyRootFilesystem,omitempty" protobuf:"varint,14,opt,name=readOnlyRootFilesystem"` - // DefaultAllowPrivilegeEscalation controls the default setting for whether a + // defaultAllowPrivilegeEscalation controls the default setting for whether a // process can gain more privileges than its parent process. // +optional DefaultAllowPrivilegeEscalation *bool `json:"defaultAllowPrivilegeEscalation,omitempty" protobuf:"varint,15,opt,name=defaultAllowPrivilegeEscalation"` - // AllowPrivilegeEscalation determines if a pod can request to allow + // allowPrivilegeEscalation determines if a pod can request to allow // privilege escalation. If unspecified, defaults to true. // +optional AllowPrivilegeEscalation *bool `json:"allowPrivilegeEscalation,omitempty" protobuf:"varint,16,opt,name=allowPrivilegeEscalation"` - // is a white list of allowed host paths. Empty indicates that all host paths may be used. + // allowedHostPaths is a white list of allowed host paths. Empty indicates + // that all host paths may be used. // +optional AllowedHostPaths []AllowedHostPath `json:"allowedHostPaths,omitempty" protobuf:"bytes,17,rep,name=allowedHostPaths"` - // AllowedFlexVolumes is a whitelist of allowed Flexvolumes. Empty or nil indicates that all + // allowedFlexVolumes is a whitelist of allowed Flexvolumes. Empty or nil indicates that all // Flexvolumes may be used. This parameter is effective only when the usage of the Flexvolumes - // is allowed in the "Volumes" field. + // is allowed in the "volumes" field. // +optional AllowedFlexVolumes []AllowedFlexVolume `json:"allowedFlexVolumes,omitempty" protobuf:"bytes,18,rep,name=allowedFlexVolumes"` + // allowedUnsafeSysctls is a list of explicitly allowed unsafe sysctls, defaults to none. + // Each entry is either a plain sysctl name or ends in "*" in which case it is considered + // as a prefix of allowed sysctls. Single * means all unsafe sysctls are allowed. + // Kubelet has to whitelist all allowed unsafe sysctls explicitly to avoid rejection. + // + // Examples: + // e.g. "foo/*" allows "foo/bar", "foo/baz", etc. + // e.g. "foo.*" allows "foo.bar", "foo.baz", etc. + // +optional + AllowedUnsafeSysctls []string `json:"allowedUnsafeSysctls,omitempty" protobuf:"bytes,19,rep,name=allowedUnsafeSysctls"` + // forbiddenSysctls is a list of explicitly forbidden sysctls, defaults to none. + // Each entry is either a plain sysctl name or ends in "*" in which case it is considered + // as a prefix of forbidden sysctls. Single * means all sysctls are forbidden. + // + // Examples: + // e.g. "foo/*" forbids "foo/bar", "foo/baz", etc. + // e.g. "foo.*" forbids "foo.bar", "foo.baz", etc. + // +optional + ForbiddenSysctls []string `json:"forbiddenSysctls,omitempty" protobuf:"bytes,20,rep,name=forbiddenSysctls"` + // AllowedProcMountTypes is a whitelist of allowed ProcMountTypes. + // Empty or nil indicates that only the DefaultProcMountType may be used. + // This requires the ProcMountType feature flag to be enabled. + // +optional + AllowedProcMountTypes []v1.ProcMountType `json:"allowedProcMountTypes,omitempty" protobuf:"bytes,21,opt,name=allowedProcMountTypes"` } -// defines the host volume conditions that will be enabled by a policy +// AllowedHostPath defines the host volume conditions that will be enabled by a policy // for pods to use. It requires the path prefix to be defined. +// Deprecated: use AllowedHostPath from policy API Group instead. type AllowedHostPath struct { - // is the path prefix that the host volume must match. + // pathPrefix is the path prefix that the host volume must match. // It does not support `*`. // Trailing slashes are trimmed when validating the path prefix with a host path. // @@ -956,9 +965,14 @@ type AllowedHostPath struct { // `/foo` would allow `/foo`, `/foo/` and `/foo/bar` // `/foo` would not allow `/food` or `/etc/foo` PathPrefix string `json:"pathPrefix,omitempty" protobuf:"bytes,1,rep,name=pathPrefix"` + + // when set to true, will allow host volumes matching the pathPrefix only if all volume mounts are readOnly. + // +optional + ReadOnly bool `json:"readOnly,omitempty" protobuf:"varint,2,opt,name=readOnly"` } -// FS Type gives strong typing to different file systems that are used by volumes. +// FSType gives strong typing to different file systems that are used by volumes. +// Deprecated: use FSType from policy API Group instead. type FSType string var ( @@ -987,13 +1001,15 @@ var ( ) // AllowedFlexVolume represents a single Flexvolume that is allowed to be used. +// Deprecated: use AllowedFlexVolume from policy API Group instead. type AllowedFlexVolume struct { - // Driver is the name of the Flexvolume driver. + // driver is the name of the Flexvolume driver. Driver string `json:"driver" protobuf:"bytes,1,opt,name=driver"` } -// Host Port Range defines a range of host ports that will be enabled by a policy +// HostPortRange defines a range of host ports that will be enabled by a policy // for pods to use. It requires both the start and end to be defined. +// Deprecated: use HostPortRange from policy API Group instead. type HostPortRange struct { // min is the start of the range, inclusive. Min int32 `json:"min" protobuf:"varint,1,opt,name=min"` @@ -1001,9 +1017,10 @@ type HostPortRange struct { Max int32 `json:"max" protobuf:"varint,2,opt,name=max"` } -// SELinux Strategy Options defines the strategy type and any options used to create the strategy. +// SELinuxStrategyOptions defines the strategy type and any options used to create the strategy. +// Deprecated: use SELinuxStrategyOptions from policy API Group instead. type SELinuxStrategyOptions struct { - // type is the strategy that will dictate the allowable labels that may be set. + // rule is the strategy that will dictate the allowable labels that may be set. Rule SELinuxStrategy `json:"rule" protobuf:"bytes,1,opt,name=rule,casttype=SELinuxStrategy"` // seLinuxOptions required to run as; required for MustRunAs // More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ @@ -1013,92 +1030,139 @@ type SELinuxStrategyOptions struct { // SELinuxStrategy denotes strategy types for generating SELinux options for a // Security Context. +// Deprecated: use SELinuxStrategy from policy API Group instead. type SELinuxStrategy string const ( - // container must have SELinux labels of X applied. + // SELinuxStrategyMustRunAs means that container must have SELinux labels of X applied. + // Deprecated: use SELinuxStrategyMustRunAs from policy API Group instead. SELinuxStrategyMustRunAs SELinuxStrategy = "MustRunAs" - // container may make requests for any SELinux context labels. + // SELinuxStrategyRunAsAny means that container may make requests for any SELinux context labels. + // Deprecated: use SELinuxStrategyRunAsAny from policy API Group instead. SELinuxStrategyRunAsAny SELinuxStrategy = "RunAsAny" ) -// Run A sUser Strategy Options defines the strategy type and any options used to create the strategy. +// RunAsUserStrategyOptions defines the strategy type and any options used to create the strategy. +// Deprecated: use RunAsUserStrategyOptions from policy API Group instead. type RunAsUserStrategyOptions struct { - // Rule is the strategy that will dictate the allowable RunAsUser values that may be set. + // rule is the strategy that will dictate the allowable RunAsUser values that may be set. Rule RunAsUserStrategy `json:"rule" protobuf:"bytes,1,opt,name=rule,casttype=RunAsUserStrategy"` - // Ranges are the allowed ranges of uids that may be used. + // ranges are the allowed ranges of uids that may be used. If you would like to force a single uid + // then supply a single range with the same start and end. Required for MustRunAs. // +optional Ranges []IDRange `json:"ranges,omitempty" protobuf:"bytes,2,rep,name=ranges"` } -// ID Range provides a min/max of an allowed range of IDs. +// RunAsGroupStrategyOptions defines the strategy type and any options used to create the strategy. +// Deprecated: use RunAsGroupStrategyOptions from policy API Group instead. +type RunAsGroupStrategyOptions struct { + // rule is the strategy that will dictate the allowable RunAsGroup values that may be set. + Rule RunAsGroupStrategy `json:"rule" protobuf:"bytes,1,opt,name=rule,casttype=RunAsGroupStrategy"` + // ranges are the allowed ranges of gids that may be used. If you would like to force a single gid + // then supply a single range with the same start and end. Required for MustRunAs. + // +optional + Ranges []IDRange `json:"ranges,omitempty" protobuf:"bytes,2,rep,name=ranges"` +} + +// IDRange provides a min/max of an allowed range of IDs. +// Deprecated: use IDRange from policy API Group instead. type IDRange struct { - // Min is the start of the range, inclusive. + // min is the start of the range, inclusive. Min int64 `json:"min" protobuf:"varint,1,opt,name=min"` - // Max is the end of the range, inclusive. + // max is the end of the range, inclusive. Max int64 `json:"max" protobuf:"varint,2,opt,name=max"` } // RunAsUserStrategy denotes strategy types for generating RunAsUser values for a // Security Context. +// Deprecated: use RunAsUserStrategy from policy API Group instead. type RunAsUserStrategy string const ( - // container must run as a particular uid. + // RunAsUserStrategyMustRunAs means that container must run as a particular uid. + // Deprecated: use RunAsUserStrategyMustRunAs from policy API Group instead. RunAsUserStrategyMustRunAs RunAsUserStrategy = "MustRunAs" - // container must run as a non-root uid + // RunAsUserStrategyMustRunAsNonRoot means that container must run as a non-root uid. + // Deprecated: use RunAsUserStrategyMustRunAsNonRoot from policy API Group instead. RunAsUserStrategyMustRunAsNonRoot RunAsUserStrategy = "MustRunAsNonRoot" - // container may make requests for any uid. + // RunAsUserStrategyRunAsAny means that container may make requests for any uid. + // Deprecated: use RunAsUserStrategyRunAsAny from policy API Group instead. RunAsUserStrategyRunAsAny RunAsUserStrategy = "RunAsAny" ) +// RunAsGroupStrategy denotes strategy types for generating RunAsGroup values for a +// Security Context. +// Deprecated: use RunAsGroupStrategy from policy API Group instead. +type RunAsGroupStrategy string + +const ( + // RunAsGroupStrategyMayRunAs means that container does not need to run with a particular gid. + // However, when RunAsGroup are specified, they have to fall in the defined range. + RunAsGroupStrategyMayRunAs RunAsGroupStrategy = "MayRunAs" + // RunAsGroupStrategyMustRunAs means that container must run as a particular gid. + // Deprecated: use RunAsGroupStrategyMustRunAs from policy API Group instead. + RunAsGroupStrategyMustRunAs RunAsGroupStrategy = "MustRunAs" + // RunAsGroupStrategyRunAsAny means that container may make requests for any gid. + // Deprecated: use RunAsGroupStrategyRunAsAny from policy API Group instead. + RunAsGroupStrategyRunAsAny RunAsGroupStrategy = "RunAsAny" +) + // FSGroupStrategyOptions defines the strategy type and options used to create the strategy. +// Deprecated: use FSGroupStrategyOptions from policy API Group instead. type FSGroupStrategyOptions struct { - // Rule is the strategy that will dictate what FSGroup is used in the SecurityContext. + // rule is the strategy that will dictate what FSGroup is used in the SecurityContext. // +optional Rule FSGroupStrategyType `json:"rule,omitempty" protobuf:"bytes,1,opt,name=rule,casttype=FSGroupStrategyType"` - // Ranges are the allowed ranges of fs groups. If you would like to force a single - // fs group then supply a single range with the same start and end. + // ranges are the allowed ranges of fs groups. If you would like to force a single + // fs group then supply a single range with the same start and end. Required for MustRunAs. // +optional Ranges []IDRange `json:"ranges,omitempty" protobuf:"bytes,2,rep,name=ranges"` } // FSGroupStrategyType denotes strategy types for generating FSGroup values for a // SecurityContext +// Deprecated: use FSGroupStrategyType from policy API Group instead. type FSGroupStrategyType string const ( - // container must have FSGroup of X applied. + // FSGroupStrategyMustRunAs meant that container must have FSGroup of X applied. + // Deprecated: use FSGroupStrategyMustRunAs from policy API Group instead. FSGroupStrategyMustRunAs FSGroupStrategyType = "MustRunAs" - // container may make requests for any FSGroup labels. + // FSGroupStrategyRunAsAny means that container may make requests for any FSGroup labels. + // Deprecated: use FSGroupStrategyRunAsAny from policy API Group instead. FSGroupStrategyRunAsAny FSGroupStrategyType = "RunAsAny" ) // SupplementalGroupsStrategyOptions defines the strategy type and options used to create the strategy. +// Deprecated: use SupplementalGroupsStrategyOptions from policy API Group instead. type SupplementalGroupsStrategyOptions struct { - // Rule is the strategy that will dictate what supplemental groups is used in the SecurityContext. + // rule is the strategy that will dictate what supplemental groups is used in the SecurityContext. // +optional Rule SupplementalGroupsStrategyType `json:"rule,omitempty" protobuf:"bytes,1,opt,name=rule,casttype=SupplementalGroupsStrategyType"` - // Ranges are the allowed ranges of supplemental groups. If you would like to force a single - // supplemental group then supply a single range with the same start and end. + // ranges are the allowed ranges of supplemental groups. If you would like to force a single + // supplemental group then supply a single range with the same start and end. Required for MustRunAs. // +optional Ranges []IDRange `json:"ranges,omitempty" protobuf:"bytes,2,rep,name=ranges"` } // SupplementalGroupsStrategyType denotes strategy types for determining valid supplemental // groups for a SecurityContext. +// Deprecated: use SupplementalGroupsStrategyType from policy API Group instead. type SupplementalGroupsStrategyType string const ( - // container must run as a particular gid. + // SupplementalGroupsStrategyMustRunAs means that container must run as a particular gid. + // Deprecated: use SupplementalGroupsStrategyMustRunAs from policy API Group instead. SupplementalGroupsStrategyMustRunAs SupplementalGroupsStrategyType = "MustRunAs" - // container may make requests for any gid. + // SupplementalGroupsStrategyRunAsAny means that container may make requests for any gid. + // Deprecated: use SupplementalGroupsStrategyRunAsAny from policy API Group instead. SupplementalGroupsStrategyRunAsAny SupplementalGroupsStrategyType = "RunAsAny" ) // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object -// Pod Security Policy List is a list of PodSecurityPolicy objects. +// PodSecurityPolicyList is a list of PodSecurityPolicy objects. +// Deprecated: use PodSecurityPolicyList from policy API Group instead. type PodSecurityPolicyList struct { metav1.TypeMeta `json:",inline"` // Standard list metadata. @@ -1106,7 +1170,7 @@ type PodSecurityPolicyList struct { // +optional metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - // Items is a list of schema objects. + // items is a list of schema objects. Items []PodSecurityPolicy `json:"items" protobuf:"bytes,2,rep,name=items"` } @@ -1225,7 +1289,7 @@ type NetworkPolicyEgressRule struct { // DEPRECATED 1.9 - This group version of NetworkPolicyPort is deprecated by networking/v1/NetworkPolicyPort. type NetworkPolicyPort struct { - // Optional. The protocol (TCP or UDP) which traffic must match. + // Optional. The protocol (TCP, UDP, or SCTP) which traffic must match. // If not specified, this field defaults to TCP. // +optional Protocol *v1.Protocol `json:"protocol,omitempty" protobuf:"bytes,1,opt,name=protocol,casttype=k8s.io/api/core/v1.Protocol"` @@ -1256,22 +1320,26 @@ type IPBlock struct { // DEPRECATED 1.9 - This group version of NetworkPolicyPeer is deprecated by networking/v1/NetworkPolicyPeer. type NetworkPolicyPeer struct { - // Exactly one of the following must be specified. - - // This is a label selector which selects Pods in this namespace. - // This field follows standard label selector semantics. - // If present but empty, this selector selects all pods in this namespace. + // This is a label selector which selects Pods. This field follows standard label + // selector semantics; if present but empty, it selects all pods. + // + // If NamespaceSelector is also set, then the NetworkPolicyPeer as a whole selects + // the Pods matching PodSelector in the Namespaces selected by NamespaceSelector. + // Otherwise it selects the Pods matching PodSelector in the policy's own Namespace. // +optional PodSelector *metav1.LabelSelector `json:"podSelector,omitempty" protobuf:"bytes,1,opt,name=podSelector"` - // Selects Namespaces using cluster scoped-labels. This - // matches all pods in all namespaces selected by this label selector. - // This field follows standard label selector semantics. - // If present but empty, this selector selects all namespaces. + // Selects Namespaces using cluster-scoped labels. This field follows standard label + // selector semantics; if present but empty, it selects all namespaces. + // + // If PodSelector is also set, then the NetworkPolicyPeer as a whole selects + // the Pods matching PodSelector in the Namespaces selected by NamespaceSelector. + // Otherwise it selects all Pods in the Namespaces selected by NamespaceSelector. // +optional NamespaceSelector *metav1.LabelSelector `json:"namespaceSelector,omitempty" protobuf:"bytes,2,opt,name=namespaceSelector"` - // IPBlock defines policy on a particular IPBlock + // IPBlock defines policy on a particular IPBlock. If this field is set then + // neither of the other fields can be. // +optional IPBlock *IPBlock `json:"ipBlock,omitempty" protobuf:"bytes,3,rep,name=ipBlock"` } diff --git a/vendor/k8s.io/api/extensions/v1beta1/types_swagger_doc_generated.go b/vendor/k8s.io/api/extensions/v1beta1/types_swagger_doc_generated.go index 236d934fa..bce6036cd 100644 --- a/vendor/k8s.io/api/extensions/v1beta1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/extensions/v1beta1/types_swagger_doc_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2016 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -26,10 +26,10 @@ package v1beta1 // // Those methods can be generated by using hack/update-generated-swagger-docs.sh -// AUTO-GENERATED FUNCTIONS START HERE +// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT. var map_AllowedFlexVolume = map[string]string{ - "": "AllowedFlexVolume represents a single Flexvolume that is allowed to be used.", - "driver": "Driver is the name of the Flexvolume driver.", + "": "AllowedFlexVolume represents a single Flexvolume that is allowed to be used. Deprecated: use AllowedFlexVolume from policy API Group instead.", + "driver": "driver is the name of the Flexvolume driver.", } func (AllowedFlexVolume) SwaggerDoc() map[string]string { @@ -37,33 +37,15 @@ func (AllowedFlexVolume) SwaggerDoc() map[string]string { } var map_AllowedHostPath = map[string]string{ - "": "defines the host volume conditions that will be enabled by a policy for pods to use. It requires the path prefix to be defined.", - "pathPrefix": "is the path prefix that the host volume must match. It does not support `*`. Trailing slashes are trimmed when validating the path prefix with a host path.\n\nExamples: `/foo` would allow `/foo`, `/foo/` and `/foo/bar` `/foo` would not allow `/food` or `/etc/foo`", + "": "AllowedHostPath defines the host volume conditions that will be enabled by a policy for pods to use. It requires the path prefix to be defined. Deprecated: use AllowedHostPath from policy API Group instead.", + "pathPrefix": "pathPrefix is the path prefix that the host volume must match. It does not support `*`. Trailing slashes are trimmed when validating the path prefix with a host path.\n\nExamples: `/foo` would allow `/foo`, `/foo/` and `/foo/bar` `/foo` would not allow `/food` or `/etc/foo`", + "readOnly": "when set to true, will allow host volumes matching the pathPrefix only if all volume mounts are readOnly.", } func (AllowedHostPath) SwaggerDoc() map[string]string { return map_AllowedHostPath } -var map_CustomMetricCurrentStatus = map[string]string{ - "name": "Custom Metric name.", - "value": "Custom Metric value (average).", -} - -func (CustomMetricCurrentStatus) SwaggerDoc() map[string]string { - return map_CustomMetricCurrentStatus -} - -var map_CustomMetricTarget = map[string]string{ - "": "Alpha-level support for Custom Metrics in HPA (as annotations).", - "name": "Custom Metric name.", - "value": "Custom Metric value (average).", -} - -func (CustomMetricTarget) SwaggerDoc() map[string]string { - return map_CustomMetricTarget -} - var map_DaemonSet = map[string]string{ "": "DEPRECATED - This group version of DaemonSet is deprecated by apps/v1beta2/DaemonSet. See the release notes for more information. DaemonSet represents the configuration of a daemon set.", "metadata": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", @@ -113,7 +95,7 @@ func (DaemonSetSpec) SwaggerDoc() map[string]string { } var map_DaemonSetStatus = map[string]string{ - "": "DaemonSetStatus represents the current status of a daemon set.", + "": "DaemonSetStatus represents the current status of a daemon set.", "currentNumberScheduled": "The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", "numberMisscheduled": "The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", "desiredNumberScheduled": "The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", @@ -192,10 +174,10 @@ var map_DeploymentSpec = map[string]string{ "template": "Template describes the pods that will be created.", "strategy": "The deployment strategy to use to replace existing pods with new ones.", "minReadySeconds": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", - "revisionHistoryLimit": "The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified.", + "revisionHistoryLimit": "The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. This is set to the max value of int32 (i.e. 2147483647) by default, which means \"retaining all old RelicaSets\".", "paused": "Indicates that the deployment is paused and will not be processed by the deployment controller.", "rollbackTo": "DEPRECATED. The config this deployment is rolling back to. Will be cleared after rollback is done.", - "progressDeadlineSeconds": "The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. This is not set by default.", + "progressDeadlineSeconds": "The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. This is set to the max value of int32 (i.e. 2147483647) by default, which means \"no deadline\".", } func (DeploymentSpec) SwaggerDoc() map[string]string { @@ -229,9 +211,9 @@ func (DeploymentStrategy) SwaggerDoc() map[string]string { } var map_FSGroupStrategyOptions = map[string]string{ - "": "FSGroupStrategyOptions defines the strategy type and options used to create the strategy.", - "rule": "Rule is the strategy that will dictate what FSGroup is used in the SecurityContext.", - "ranges": "Ranges are the allowed ranges of fs groups. If you would like to force a single fs group then supply a single range with the same start and end.", + "": "FSGroupStrategyOptions defines the strategy type and options used to create the strategy. Deprecated: use FSGroupStrategyOptions from policy API Group instead.", + "rule": "rule is the strategy that will dictate what FSGroup is used in the SecurityContext.", + "ranges": "ranges are the allowed ranges of fs groups. If you would like to force a single fs group then supply a single range with the same start and end. Required for MustRunAs.", } func (FSGroupStrategyOptions) SwaggerDoc() map[string]string { @@ -258,7 +240,7 @@ func (HTTPIngressRuleValue) SwaggerDoc() map[string]string { } var map_HostPortRange = map[string]string{ - "": "Host Port Range defines a range of host ports that will be enabled by a policy for pods to use. It requires both the start and end to be defined.", + "": "HostPortRange defines a range of host ports that will be enabled by a policy for pods to use. It requires both the start and end to be defined. Deprecated: use HostPortRange from policy API Group instead.", "min": "min is the start of the range, inclusive.", "max": "max is the end of the range, inclusive.", } @@ -268,9 +250,9 @@ func (HostPortRange) SwaggerDoc() map[string]string { } var map_IDRange = map[string]string{ - "": "ID Range provides a min/max of an allowed range of IDs.", - "min": "Min is the start of the range, inclusive.", - "max": "Max is the end of the range, inclusive.", + "": "IDRange provides a min/max of an allowed range of IDs. Deprecated: use IDRange from policy API Group instead.", + "min": "min is the start of the range, inclusive.", + "max": "max is the end of the range, inclusive.", } func (IDRange) SwaggerDoc() map[string]string { @@ -407,9 +389,9 @@ func (NetworkPolicyList) SwaggerDoc() map[string]string { var map_NetworkPolicyPeer = map[string]string{ "": "DEPRECATED 1.9 - This group version of NetworkPolicyPeer is deprecated by networking/v1/NetworkPolicyPeer.", - "podSelector": "This is a label selector which selects Pods in this namespace. This field follows standard label selector semantics. If present but empty, this selector selects all pods in this namespace.", - "namespaceSelector": "Selects Namespaces using cluster scoped-labels. This matches all pods in all namespaces selected by this label selector. This field follows standard label selector semantics. If present but empty, this selector selects all namespaces.", - "ipBlock": "IPBlock defines policy on a particular IPBlock", + "podSelector": "This is a label selector which selects Pods. This field follows standard label selector semantics; if present but empty, it selects all pods.\n\nIf NamespaceSelector is also set, then the NetworkPolicyPeer as a whole selects the Pods matching PodSelector in the Namespaces selected by NamespaceSelector. Otherwise it selects the Pods matching PodSelector in the policy's own Namespace.", + "namespaceSelector": "Selects Namespaces using cluster-scoped labels. This field follows standard label selector semantics; if present but empty, it selects all namespaces.\n\nIf PodSelector is also set, then the NetworkPolicyPeer as a whole selects the Pods matching PodSelector in the Namespaces selected by NamespaceSelector. Otherwise it selects all Pods in the Namespaces selected by NamespaceSelector.", + "ipBlock": "IPBlock defines policy on a particular IPBlock. If this field is set then neither of the other fields can be.", } func (NetworkPolicyPeer) SwaggerDoc() map[string]string { @@ -418,7 +400,7 @@ func (NetworkPolicyPeer) SwaggerDoc() map[string]string { var map_NetworkPolicyPort = map[string]string{ "": "DEPRECATED 1.9 - This group version of NetworkPolicyPort is deprecated by networking/v1/NetworkPolicyPort.", - "protocol": "Optional. The protocol (TCP or UDP) which traffic must match. If not specified, this field defaults to TCP.", + "protocol": "Optional. The protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this field defaults to TCP.", "port": "If specified, the port on the given protocol. This can either be a numerical or named port on a pod. If this field is not provided, this matches all port names and numbers. If present, only traffic on the specified protocol AND port will be matched.", } @@ -439,7 +421,7 @@ func (NetworkPolicySpec) SwaggerDoc() map[string]string { } var map_PodSecurityPolicy = map[string]string{ - "": "Pod Security Policy governs the ability to make requests that affect the Security Context that will be applied to a pod and container.", + "": "PodSecurityPolicy governs the ability to make requests that affect the Security Context that will be applied to a pod and container. Deprecated: use PodSecurityPolicy from policy API Group instead.", "metadata": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", "spec": "spec defines the policy enforced.", } @@ -449,9 +431,9 @@ func (PodSecurityPolicy) SwaggerDoc() map[string]string { } var map_PodSecurityPolicyList = map[string]string{ - "": "Pod Security Policy List is a list of PodSecurityPolicy objects.", + "": "PodSecurityPolicyList is a list of PodSecurityPolicy objects. Deprecated: use PodSecurityPolicyList from policy API Group instead.", "metadata": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "items": "Items is a list of schema objects.", + "items": "items is a list of schema objects.", } func (PodSecurityPolicyList) SwaggerDoc() map[string]string { @@ -459,25 +441,29 @@ func (PodSecurityPolicyList) SwaggerDoc() map[string]string { } var map_PodSecurityPolicySpec = map[string]string{ - "": "Pod Security Policy Spec defines the policy enforced.", + "": "PodSecurityPolicySpec defines the policy enforced. Deprecated: use PodSecurityPolicySpec from policy API Group instead.", "privileged": "privileged determines if a pod can request to be run as privileged.", - "defaultAddCapabilities": "DefaultAddCapabilities is the default set of capabilities that will be added to the container unless the pod spec specifically drops the capability. You may not list a capability in both DefaultAddCapabilities and RequiredDropCapabilities. Capabilities added here are implicitly allowed, and need not be included in the AllowedCapabilities list.", - "requiredDropCapabilities": "RequiredDropCapabilities are the capabilities that will be dropped from the container. These are required to be dropped and cannot be added.", - "allowedCapabilities": "AllowedCapabilities is a list of capabilities that can be requested to add to the container. Capabilities in this field may be added at the pod author's discretion. You must not list a capability in both AllowedCapabilities and RequiredDropCapabilities.", - "volumes": "volumes is a white list of allowed volume plugins. Empty indicates that all plugins may be used.", + "defaultAddCapabilities": "defaultAddCapabilities is the default set of capabilities that will be added to the container unless the pod spec specifically drops the capability. You may not list a capability in both defaultAddCapabilities and requiredDropCapabilities. Capabilities added here are implicitly allowed, and need not be included in the allowedCapabilities list.", + "requiredDropCapabilities": "requiredDropCapabilities are the capabilities that will be dropped from the container. These are required to be dropped and cannot be added.", + "allowedCapabilities": "allowedCapabilities is a list of capabilities that can be requested to add to the container. Capabilities in this field may be added at the pod author's discretion. You must not list a capability in both allowedCapabilities and requiredDropCapabilities.", + "volumes": "volumes is a white list of allowed volume plugins. Empty indicates that no volumes may be used. To allow all volumes you may use '*'.", "hostNetwork": "hostNetwork determines if the policy allows the use of HostNetwork in the pod spec.", "hostPorts": "hostPorts determines which host port ranges are allowed to be exposed.", "hostPID": "hostPID determines if the policy allows the use of HostPID in the pod spec.", "hostIPC": "hostIPC determines if the policy allows the use of HostIPC in the pod spec.", "seLinux": "seLinux is the strategy that will dictate the allowable labels that may be set.", "runAsUser": "runAsUser is the strategy that will dictate the allowable RunAsUser values that may be set.", - "supplementalGroups": "SupplementalGroups is the strategy that will dictate what supplemental groups are used by the SecurityContext.", - "fsGroup": "FSGroup is the strategy that will dictate what fs group is used by the SecurityContext.", - "readOnlyRootFilesystem": "ReadOnlyRootFilesystem when set to true will force containers to run with a read only root file system. If the container specifically requests to run with a non-read only root file system the PSP should deny the pod. If set to false the container may run with a read only root file system if it wishes but it will not be forced to.", - "defaultAllowPrivilegeEscalation": "DefaultAllowPrivilegeEscalation controls the default setting for whether a process can gain more privileges than its parent process.", - "allowPrivilegeEscalation": "AllowPrivilegeEscalation determines if a pod can request to allow privilege escalation. If unspecified, defaults to true.", - "allowedHostPaths": "is a white list of allowed host paths. Empty indicates that all host paths may be used.", - "allowedFlexVolumes": "AllowedFlexVolumes is a whitelist of allowed Flexvolumes. Empty or nil indicates that all Flexvolumes may be used. This parameter is effective only when the usage of the Flexvolumes is allowed in the \"Volumes\" field.", + "runAsGroup": "RunAsGroup is the strategy that will dictate the allowable RunAsGroup values that may be set. If this field is omitted, the pod's RunAsGroup can take any value. This field requires the RunAsGroup feature gate to be enabled.", + "supplementalGroups": "supplementalGroups is the strategy that will dictate what supplemental groups are used by the SecurityContext.", + "fsGroup": "fsGroup is the strategy that will dictate what fs group is used by the SecurityContext.", + "readOnlyRootFilesystem": "readOnlyRootFilesystem when set to true will force containers to run with a read only root file system. If the container specifically requests to run with a non-read only root file system the PSP should deny the pod. If set to false the container may run with a read only root file system if it wishes but it will not be forced to.", + "defaultAllowPrivilegeEscalation": "defaultAllowPrivilegeEscalation controls the default setting for whether a process can gain more privileges than its parent process.", + "allowPrivilegeEscalation": "allowPrivilegeEscalation determines if a pod can request to allow privilege escalation. If unspecified, defaults to true.", + "allowedHostPaths": "allowedHostPaths is a white list of allowed host paths. Empty indicates that all host paths may be used.", + "allowedFlexVolumes": "allowedFlexVolumes is a whitelist of allowed Flexvolumes. Empty or nil indicates that all Flexvolumes may be used. This parameter is effective only when the usage of the Flexvolumes is allowed in the \"volumes\" field.", + "allowedUnsafeSysctls": "allowedUnsafeSysctls is a list of explicitly allowed unsafe sysctls, defaults to none. Each entry is either a plain sysctl name or ends in \"*\" in which case it is considered as a prefix of allowed sysctls. Single * means all unsafe sysctls are allowed. Kubelet has to whitelist all allowed unsafe sysctls explicitly to avoid rejection.\n\nExamples: e.g. \"foo/*\" allows \"foo/bar\", \"foo/baz\", etc. e.g. \"foo.*\" allows \"foo.bar\", \"foo.baz\", etc.", + "forbiddenSysctls": "forbiddenSysctls is a list of explicitly forbidden sysctls, defaults to none. Each entry is either a plain sysctl name or ends in \"*\" in which case it is considered as a prefix of forbidden sysctls. Single * means all sysctls are forbidden.\n\nExamples: e.g. \"foo/*\" forbids \"foo/bar\", \"foo/baz\", etc. e.g. \"foo.*\" forbids \"foo.bar\", \"foo.baz\", etc.", + "allowedProcMountTypes": "AllowedProcMountTypes is a whitelist of allowed ProcMountTypes. Empty or nil indicates that only the DefaultProcMountType may be used. This requires the ProcMountType feature flag to be enabled.", } func (PodSecurityPolicySpec) SwaggerDoc() map[string]string { @@ -580,10 +566,20 @@ func (RollingUpdateDeployment) SwaggerDoc() map[string]string { return map_RollingUpdateDeployment } +var map_RunAsGroupStrategyOptions = map[string]string{ + "": "RunAsGroupStrategyOptions defines the strategy type and any options used to create the strategy. Deprecated: use RunAsGroupStrategyOptions from policy API Group instead.", + "rule": "rule is the strategy that will dictate the allowable RunAsGroup values that may be set.", + "ranges": "ranges are the allowed ranges of gids that may be used. If you would like to force a single gid then supply a single range with the same start and end. Required for MustRunAs.", +} + +func (RunAsGroupStrategyOptions) SwaggerDoc() map[string]string { + return map_RunAsGroupStrategyOptions +} + var map_RunAsUserStrategyOptions = map[string]string{ - "": "Run A sUser Strategy Options defines the strategy type and any options used to create the strategy.", - "rule": "Rule is the strategy that will dictate the allowable RunAsUser values that may be set.", - "ranges": "Ranges are the allowed ranges of uids that may be used.", + "": "RunAsUserStrategyOptions defines the strategy type and any options used to create the strategy. Deprecated: use RunAsUserStrategyOptions from policy API Group instead.", + "rule": "rule is the strategy that will dictate the allowable RunAsUser values that may be set.", + "ranges": "ranges are the allowed ranges of uids that may be used. If you would like to force a single uid then supply a single range with the same start and end. Required for MustRunAs.", } func (RunAsUserStrategyOptions) SwaggerDoc() map[string]string { @@ -591,8 +587,8 @@ func (RunAsUserStrategyOptions) SwaggerDoc() map[string]string { } var map_SELinuxStrategyOptions = map[string]string{ - "": "SELinux Strategy Options defines the strategy type and any options used to create the strategy.", - "rule": "type is the strategy that will dictate the allowable labels that may be set.", + "": "SELinuxStrategyOptions defines the strategy type and any options used to create the strategy. Deprecated: use SELinuxStrategyOptions from policy API Group instead.", + "rule": "rule is the strategy that will dictate the allowable labels that may be set.", "seLinuxOptions": "seLinuxOptions required to run as; required for MustRunAs More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/", } @@ -632,9 +628,9 @@ func (ScaleStatus) SwaggerDoc() map[string]string { } var map_SupplementalGroupsStrategyOptions = map[string]string{ - "": "SupplementalGroupsStrategyOptions defines the strategy type and options used to create the strategy.", - "rule": "Rule is the strategy that will dictate what supplemental groups is used in the SecurityContext.", - "ranges": "Ranges are the allowed ranges of supplemental groups. If you would like to force a single supplemental group then supply a single range with the same start and end.", + "": "SupplementalGroupsStrategyOptions defines the strategy type and options used to create the strategy. Deprecated: use SupplementalGroupsStrategyOptions from policy API Group instead.", + "rule": "rule is the strategy that will dictate what supplemental groups is used in the SecurityContext.", + "ranges": "ranges are the allowed ranges of supplemental groups. If you would like to force a single supplemental group then supply a single range with the same start and end. Required for MustRunAs.", } func (SupplementalGroupsStrategyOptions) SwaggerDoc() map[string]string { diff --git a/vendor/k8s.io/api/extensions/v1beta1/zz_generated.deepcopy.go b/vendor/k8s.io/api/extensions/v1beta1/zz_generated.deepcopy.go index de1970c8f..8128c079b 100644 --- a/vendor/k8s.io/api/extensions/v1beta1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/api/extensions/v1beta1/zz_generated.deepcopy.go @@ -1,7 +1,7 @@ // +build !ignore_autogenerated /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ limitations under the License. package v1beta1 import ( - core_v1 "k8s.io/api/core/v1" + corev1 "k8s.io/api/core/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" intstr "k8s.io/apimachinery/pkg/util/intstr" @@ -59,86 +59,6 @@ func (in *AllowedHostPath) DeepCopy() *AllowedHostPath { return out } -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *CustomMetricCurrentStatus) DeepCopyInto(out *CustomMetricCurrentStatus) { - *out = *in - out.CurrentValue = in.CurrentValue.DeepCopy() - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomMetricCurrentStatus. -func (in *CustomMetricCurrentStatus) DeepCopy() *CustomMetricCurrentStatus { - if in == nil { - return nil - } - out := new(CustomMetricCurrentStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *CustomMetricCurrentStatusList) DeepCopyInto(out *CustomMetricCurrentStatusList) { - *out = *in - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]CustomMetricCurrentStatus, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomMetricCurrentStatusList. -func (in *CustomMetricCurrentStatusList) DeepCopy() *CustomMetricCurrentStatusList { - if in == nil { - return nil - } - out := new(CustomMetricCurrentStatusList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *CustomMetricTarget) DeepCopyInto(out *CustomMetricTarget) { - *out = *in - out.TargetValue = in.TargetValue.DeepCopy() - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomMetricTarget. -func (in *CustomMetricTarget) DeepCopy() *CustomMetricTarget { - if in == nil { - return nil - } - out := new(CustomMetricTarget) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *CustomMetricTargetList) DeepCopyInto(out *CustomMetricTargetList) { - *out = *in - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]CustomMetricTarget, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomMetricTargetList. -func (in *CustomMetricTargetList) DeepCopy() *CustomMetricTargetList { - if in == nil { - return nil - } - out := new(CustomMetricTargetList) - in.DeepCopyInto(out) - return out -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *DaemonSet) DeepCopyInto(out *DaemonSet) { *out = *in @@ -222,23 +142,15 @@ func (in *DaemonSetSpec) DeepCopyInto(out *DaemonSetSpec) { *out = *in if in.Selector != nil { in, out := &in.Selector, &out.Selector - if *in == nil { - *out = nil - } else { - *out = new(v1.LabelSelector) - (*in).DeepCopyInto(*out) - } + *out = new(v1.LabelSelector) + (*in).DeepCopyInto(*out) } in.Template.DeepCopyInto(&out.Template) in.UpdateStrategy.DeepCopyInto(&out.UpdateStrategy) if in.RevisionHistoryLimit != nil { in, out := &in.RevisionHistoryLimit, &out.RevisionHistoryLimit - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } return } @@ -258,12 +170,8 @@ func (in *DaemonSetStatus) DeepCopyInto(out *DaemonSetStatus) { *out = *in if in.CollisionCount != nil { in, out := &in.CollisionCount, &out.CollisionCount - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } if in.Conditions != nil { in, out := &in.Conditions, &out.Conditions @@ -290,12 +198,8 @@ func (in *DaemonSetUpdateStrategy) DeepCopyInto(out *DaemonSetUpdateStrategy) { *out = *in if in.RollingUpdate != nil { in, out := &in.RollingUpdate, &out.RollingUpdate - if *in == nil { - *out = nil - } else { - *out = new(RollingUpdateDaemonSet) - (*in).DeepCopyInto(*out) - } + *out = new(RollingUpdateDaemonSet) + (*in).DeepCopyInto(*out) } return } @@ -427,50 +331,30 @@ func (in *DeploymentSpec) DeepCopyInto(out *DeploymentSpec) { *out = *in if in.Replicas != nil { in, out := &in.Replicas, &out.Replicas - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } if in.Selector != nil { in, out := &in.Selector, &out.Selector - if *in == nil { - *out = nil - } else { - *out = new(v1.LabelSelector) - (*in).DeepCopyInto(*out) - } + *out = new(v1.LabelSelector) + (*in).DeepCopyInto(*out) } in.Template.DeepCopyInto(&out.Template) in.Strategy.DeepCopyInto(&out.Strategy) if in.RevisionHistoryLimit != nil { in, out := &in.RevisionHistoryLimit, &out.RevisionHistoryLimit - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } if in.RollbackTo != nil { in, out := &in.RollbackTo, &out.RollbackTo - if *in == nil { - *out = nil - } else { - *out = new(RollbackConfig) - **out = **in - } + *out = new(RollbackConfig) + **out = **in } if in.ProgressDeadlineSeconds != nil { in, out := &in.ProgressDeadlineSeconds, &out.ProgressDeadlineSeconds - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } return } @@ -497,12 +381,8 @@ func (in *DeploymentStatus) DeepCopyInto(out *DeploymentStatus) { } if in.CollisionCount != nil { in, out := &in.CollisionCount, &out.CollisionCount - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } return } @@ -522,12 +402,8 @@ func (in *DeploymentStrategy) DeepCopyInto(out *DeploymentStrategy) { *out = *in if in.RollingUpdate != nil { in, out := &in.RollingUpdate, &out.RollingUpdate - if *in == nil { - *out = nil - } else { - *out = new(RollingUpdateDeployment) - (*in).DeepCopyInto(*out) - } + *out = new(RollingUpdateDeployment) + (*in).DeepCopyInto(*out) } return } @@ -754,12 +630,8 @@ func (in *IngressRuleValue) DeepCopyInto(out *IngressRuleValue) { *out = *in if in.HTTP != nil { in, out := &in.HTTP, &out.HTTP - if *in == nil { - *out = nil - } else { - *out = new(HTTPIngressRuleValue) - (*in).DeepCopyInto(*out) - } + *out = new(HTTPIngressRuleValue) + (*in).DeepCopyInto(*out) } return } @@ -779,12 +651,8 @@ func (in *IngressSpec) DeepCopyInto(out *IngressSpec) { *out = *in if in.Backend != nil { in, out := &in.Backend, &out.Backend - if *in == nil { - *out = nil - } else { - *out = new(IngressBackend) - **out = **in - } + *out = new(IngressBackend) + **out = **in } if in.TLS != nil { in, out := &in.TLS, &out.TLS @@ -976,30 +844,18 @@ func (in *NetworkPolicyPeer) DeepCopyInto(out *NetworkPolicyPeer) { *out = *in if in.PodSelector != nil { in, out := &in.PodSelector, &out.PodSelector - if *in == nil { - *out = nil - } else { - *out = new(v1.LabelSelector) - (*in).DeepCopyInto(*out) - } + *out = new(v1.LabelSelector) + (*in).DeepCopyInto(*out) } if in.NamespaceSelector != nil { in, out := &in.NamespaceSelector, &out.NamespaceSelector - if *in == nil { - *out = nil - } else { - *out = new(v1.LabelSelector) - (*in).DeepCopyInto(*out) - } + *out = new(v1.LabelSelector) + (*in).DeepCopyInto(*out) } if in.IPBlock != nil { in, out := &in.IPBlock, &out.IPBlock - if *in == nil { - *out = nil - } else { - *out = new(IPBlock) - (*in).DeepCopyInto(*out) - } + *out = new(IPBlock) + (*in).DeepCopyInto(*out) } return } @@ -1019,21 +875,13 @@ func (in *NetworkPolicyPort) DeepCopyInto(out *NetworkPolicyPort) { *out = *in if in.Protocol != nil { in, out := &in.Protocol, &out.Protocol - if *in == nil { - *out = nil - } else { - *out = new(core_v1.Protocol) - **out = **in - } + *out = new(corev1.Protocol) + **out = **in } if in.Port != nil { in, out := &in.Port, &out.Port - if *in == nil { - *out = nil - } else { - *out = new(intstr.IntOrString) - **out = **in - } + *out = new(intstr.IntOrString) + **out = **in } return } @@ -1149,17 +997,17 @@ func (in *PodSecurityPolicySpec) DeepCopyInto(out *PodSecurityPolicySpec) { *out = *in if in.DefaultAddCapabilities != nil { in, out := &in.DefaultAddCapabilities, &out.DefaultAddCapabilities - *out = make([]core_v1.Capability, len(*in)) + *out = make([]corev1.Capability, len(*in)) copy(*out, *in) } if in.RequiredDropCapabilities != nil { in, out := &in.RequiredDropCapabilities, &out.RequiredDropCapabilities - *out = make([]core_v1.Capability, len(*in)) + *out = make([]corev1.Capability, len(*in)) copy(*out, *in) } if in.AllowedCapabilities != nil { in, out := &in.AllowedCapabilities, &out.AllowedCapabilities - *out = make([]core_v1.Capability, len(*in)) + *out = make([]corev1.Capability, len(*in)) copy(*out, *in) } if in.Volumes != nil { @@ -1174,25 +1022,22 @@ func (in *PodSecurityPolicySpec) DeepCopyInto(out *PodSecurityPolicySpec) { } in.SELinux.DeepCopyInto(&out.SELinux) in.RunAsUser.DeepCopyInto(&out.RunAsUser) + if in.RunAsGroup != nil { + in, out := &in.RunAsGroup, &out.RunAsGroup + *out = new(RunAsGroupStrategyOptions) + (*in).DeepCopyInto(*out) + } in.SupplementalGroups.DeepCopyInto(&out.SupplementalGroups) in.FSGroup.DeepCopyInto(&out.FSGroup) if in.DefaultAllowPrivilegeEscalation != nil { in, out := &in.DefaultAllowPrivilegeEscalation, &out.DefaultAllowPrivilegeEscalation - if *in == nil { - *out = nil - } else { - *out = new(bool) - **out = **in - } + *out = new(bool) + **out = **in } if in.AllowPrivilegeEscalation != nil { in, out := &in.AllowPrivilegeEscalation, &out.AllowPrivilegeEscalation - if *in == nil { - *out = nil - } else { - *out = new(bool) - **out = **in - } + *out = new(bool) + **out = **in } if in.AllowedHostPaths != nil { in, out := &in.AllowedHostPaths, &out.AllowedHostPaths @@ -1204,6 +1049,21 @@ func (in *PodSecurityPolicySpec) DeepCopyInto(out *PodSecurityPolicySpec) { *out = make([]AllowedFlexVolume, len(*in)) copy(*out, *in) } + if in.AllowedUnsafeSysctls != nil { + in, out := &in.AllowedUnsafeSysctls, &out.AllowedUnsafeSysctls + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.ForbiddenSysctls != nil { + in, out := &in.ForbiddenSysctls, &out.ForbiddenSysctls + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.AllowedProcMountTypes != nil { + in, out := &in.AllowedProcMountTypes, &out.AllowedProcMountTypes + *out = make([]corev1.ProcMountType, len(*in)) + copy(*out, *in) + } return } @@ -1300,21 +1160,13 @@ func (in *ReplicaSetSpec) DeepCopyInto(out *ReplicaSetSpec) { *out = *in if in.Replicas != nil { in, out := &in.Replicas, &out.Replicas - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } + *out = new(int32) + **out = **in } if in.Selector != nil { in, out := &in.Selector, &out.Selector - if *in == nil { - *out = nil - } else { - *out = new(v1.LabelSelector) - (*in).DeepCopyInto(*out) - } + *out = new(v1.LabelSelector) + (*in).DeepCopyInto(*out) } in.Template.DeepCopyInto(&out.Template) return @@ -1399,12 +1251,8 @@ func (in *RollingUpdateDaemonSet) DeepCopyInto(out *RollingUpdateDaemonSet) { *out = *in if in.MaxUnavailable != nil { in, out := &in.MaxUnavailable, &out.MaxUnavailable - if *in == nil { - *out = nil - } else { - *out = new(intstr.IntOrString) - **out = **in - } + *out = new(intstr.IntOrString) + **out = **in } return } @@ -1424,21 +1272,13 @@ func (in *RollingUpdateDeployment) DeepCopyInto(out *RollingUpdateDeployment) { *out = *in if in.MaxUnavailable != nil { in, out := &in.MaxUnavailable, &out.MaxUnavailable - if *in == nil { - *out = nil - } else { - *out = new(intstr.IntOrString) - **out = **in - } + *out = new(intstr.IntOrString) + **out = **in } if in.MaxSurge != nil { in, out := &in.MaxSurge, &out.MaxSurge - if *in == nil { - *out = nil - } else { - *out = new(intstr.IntOrString) - **out = **in - } + *out = new(intstr.IntOrString) + **out = **in } return } @@ -1453,6 +1293,27 @@ func (in *RollingUpdateDeployment) DeepCopy() *RollingUpdateDeployment { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RunAsGroupStrategyOptions) DeepCopyInto(out *RunAsGroupStrategyOptions) { + *out = *in + if in.Ranges != nil { + in, out := &in.Ranges, &out.Ranges + *out = make([]IDRange, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RunAsGroupStrategyOptions. +func (in *RunAsGroupStrategyOptions) DeepCopy() *RunAsGroupStrategyOptions { + if in == nil { + return nil + } + out := new(RunAsGroupStrategyOptions) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *RunAsUserStrategyOptions) DeepCopyInto(out *RunAsUserStrategyOptions) { *out = *in @@ -1479,12 +1340,8 @@ func (in *SELinuxStrategyOptions) DeepCopyInto(out *SELinuxStrategyOptions) { *out = *in if in.SELinuxOptions != nil { in, out := &in.SELinuxOptions, &out.SELinuxOptions - if *in == nil { - *out = nil - } else { - *out = new(core_v1.SELinuxOptions) - **out = **in - } + *out = new(corev1.SELinuxOptions) + **out = **in } return } diff --git a/vendor/k8s.io/api/imagepolicy/OWNERS b/vendor/k8s.io/api/imagepolicy/OWNERS index 96ae42e02..02b8511e4 100755 --- a/vendor/k8s.io/api/imagepolicy/OWNERS +++ b/vendor/k8s.io/api/imagepolicy/OWNERS @@ -1,4 +1,7 @@ +# approval on api packages bubbles to api-approvers reviewers: -- deads2k -- mbohlool -- jianhuiz +- sig-auth-policy-approvers +- sig-auth-policy-reviewers +labels: +- sig/auth + diff --git a/vendor/k8s.io/api/imagepolicy/v1alpha1/BUILD b/vendor/k8s.io/api/imagepolicy/v1alpha1/BUILD deleted file mode 100644 index 455205f7a..000000000 --- a/vendor/k8s.io/api/imagepolicy/v1alpha1/BUILD +++ /dev/null @@ -1,45 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "generated.pb.go", - "register.go", - "types.go", - "types_swagger_doc_generated.go", - "zz_generated.deepcopy.go", - ], - importpath = "k8s.io/api/imagepolicy/v1alpha1", - deps = [ - "//vendor/github.com/gogo/protobuf/proto:go_default_library", - "//vendor/github.com/gogo/protobuf/sortkeys:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) - -filegroup( - name = "go_default_library_protos", - srcs = ["generated.proto"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/api/imagepolicy/v1alpha1/doc.go b/vendor/k8s.io/api/imagepolicy/v1alpha1/doc.go index 3b4840ad6..598dff2a8 100644 --- a/vendor/k8s.io/api/imagepolicy/v1alpha1/doc.go +++ b/vendor/k8s.io/api/imagepolicy/v1alpha1/doc.go @@ -18,4 +18,5 @@ limitations under the License. // +k8s:openapi-gen=true // +groupName=imagepolicy.k8s.io + package v1alpha1 // import "k8s.io/api/imagepolicy/v1alpha1" diff --git a/vendor/k8s.io/api/imagepolicy/v1alpha1/generated.pb.go b/vendor/k8s.io/api/imagepolicy/v1alpha1/generated.pb.go index f521979b7..2a4529bfc 100644 --- a/vendor/k8s.io/api/imagepolicy/v1alpha1/generated.pb.go +++ b/vendor/k8s.io/api/imagepolicy/v1alpha1/generated.pb.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -14,9 +14,8 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: k8s.io/kubernetes/vendor/k8s.io/api/imagepolicy/v1alpha1/generated.proto -// DO NOT EDIT! /* Package v1alpha1 is a generated protocol buffer package. @@ -225,27 +224,31 @@ func (m *ImageReviewStatus) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) i += copy(dAtA[i:], m.Reason) + if len(m.AuditAnnotations) > 0 { + keysForAuditAnnotations := make([]string, 0, len(m.AuditAnnotations)) + for k := range m.AuditAnnotations { + keysForAuditAnnotations = append(keysForAuditAnnotations, string(k)) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForAuditAnnotations) + for _, k := range keysForAuditAnnotations { + dAtA[i] = 0x1a + i++ + v := m.AuditAnnotations[string(k)] + mapSize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) + i = encodeVarintGenerated(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) + } + } return i, nil } -func encodeFixed64Generated(dAtA []byte, offset int, v uint64) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - dAtA[offset+4] = uint8(v >> 32) - dAtA[offset+5] = uint8(v >> 40) - dAtA[offset+6] = uint8(v >> 48) - dAtA[offset+7] = uint8(v >> 56) - return offset + 8 -} -func encodeFixed32Generated(dAtA []byte, offset int, v uint32) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - return offset + 4 -} func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -303,6 +306,14 @@ func (m *ImageReviewStatus) Size() (n int) { n += 2 l = len(m.Reason) n += 1 + l + sovGenerated(uint64(l)) + if len(m.AuditAnnotations) > 0 { + for k, v := range m.AuditAnnotations { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) + n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) + } + } return n } @@ -367,9 +378,20 @@ func (this *ImageReviewStatus) String() string { if this == nil { return "nil" } + keysForAuditAnnotations := make([]string, 0, len(this.AuditAnnotations)) + for k := range this.AuditAnnotations { + keysForAuditAnnotations = append(keysForAuditAnnotations, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForAuditAnnotations) + mapStringForAuditAnnotations := "map[string]string{" + for _, k := range keysForAuditAnnotations { + mapStringForAuditAnnotations += fmt.Sprintf("%v: %v,", k, this.AuditAnnotations[k]) + } + mapStringForAuditAnnotations += "}" s := strings.Join([]string{`&ImageReviewStatus{`, `Allowed:` + fmt.Sprintf("%v", this.Allowed) + `,`, `Reason:` + fmt.Sprintf("%v", this.Reason) + `,`, + `AuditAnnotations:` + mapStringForAuditAnnotations + `,`, `}`, }, "") return s @@ -687,51 +709,14 @@ func (m *ImageReviewSpec) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.Annotations == nil { m.Annotations = make(map[string]string) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -741,41 +726,80 @@ func (m *ImageReviewSpec) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - m.Annotations[mapkey] = mapvalue - } else { - var mapvalue string - m.Annotations[mapkey] = mapvalue } + m.Annotations[mapkey] = mapvalue iNdEx = postIndex case 3: if wireType != 2 { @@ -905,6 +929,124 @@ func (m *ImageReviewStatus) Unmarshal(dAtA []byte) error { } m.Reason = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AuditAnnotations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AuditAnnotations == nil { + m.AuditAnnotations = make(map[string]string) + } + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.AuditAnnotations[mapkey] = mapvalue + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -1036,41 +1178,43 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 575 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x92, 0xcf, 0x6e, 0xd4, 0x30, - 0x10, 0xc6, 0x37, 0xdb, 0xbf, 0xeb, 0x05, 0xda, 0x1a, 0x0e, 0xab, 0x3d, 0xa4, 0xd5, 0x22, 0xa1, - 0x72, 0xc0, 0xa6, 0x05, 0xa1, 0xc2, 0x01, 0xd4, 0x20, 0x24, 0x38, 0x00, 0x92, 0xb9, 0xf5, 0x84, - 0x37, 0x3b, 0xcd, 0x9a, 0x4d, 0xec, 0x28, 0x76, 0x52, 0xf6, 0xc6, 0x23, 0xf0, 0x06, 0xbc, 0x4e, - 0x8f, 0x3d, 0xf6, 0x54, 0xd1, 0x70, 0xe4, 0x25, 0x50, 0x9c, 0x6c, 0x13, 0xba, 0x54, 0x68, 0x6f, - 0x9e, 0x19, 0x7f, 0xbf, 0x19, 0x7f, 0x63, 0xf4, 0x76, 0x72, 0xa0, 0x89, 0x50, 0x74, 0x92, 0x0e, - 0x21, 0x91, 0x60, 0x40, 0xd3, 0x0c, 0xe4, 0x48, 0x25, 0xb4, 0x2a, 0xf0, 0x58, 0x50, 0x11, 0xf1, - 0x00, 0x62, 0x15, 0x0a, 0x7f, 0x4a, 0xb3, 0x3d, 0x1e, 0xc6, 0x63, 0xbe, 0x47, 0x03, 0x90, 0x90, - 0x70, 0x03, 0x23, 0x12, 0x27, 0xca, 0x28, 0xbc, 0x5d, 0x0a, 0x08, 0x8f, 0x05, 0x69, 0x08, 0xc8, - 0x4c, 0xd0, 0x7f, 0x14, 0x08, 0x33, 0x4e, 0x87, 0xc4, 0x57, 0x11, 0x0d, 0x54, 0xa0, 0xa8, 0xd5, - 0x0d, 0xd3, 0x63, 0x1b, 0xd9, 0xc0, 0x9e, 0x4a, 0x5e, 0xff, 0x69, 0x3d, 0x40, 0xc4, 0xfd, 0xb1, - 0x90, 0x90, 0x4c, 0x69, 0x3c, 0x09, 0x8a, 0x84, 0xa6, 0x11, 0x18, 0x4e, 0xb3, 0xb9, 0x29, 0xfa, - 0xf4, 0x26, 0x55, 0x92, 0x4a, 0x23, 0x22, 0x98, 0x13, 0x3c, 0xfb, 0x9f, 0x40, 0xfb, 0x63, 0x88, - 0xf8, 0x9c, 0xee, 0xc9, 0x4d, 0xba, 0xd4, 0x88, 0x90, 0x0a, 0x69, 0xb4, 0x49, 0xae, 0x8b, 0x06, - 0x3f, 0xda, 0xa8, 0xfb, 0xae, 0xf0, 0x86, 0x41, 0x26, 0xe0, 0x04, 0x7f, 0x46, 0xeb, 0xc5, 0x43, - 0x46, 0xdc, 0xf0, 0x9e, 0xb3, 0xe3, 0xec, 0x76, 0xf7, 0x1f, 0x93, 0xda, 0xc6, 0x2b, 0x2e, 0x89, - 0x27, 0x41, 0x91, 0xd0, 0xa4, 0xb8, 0x4d, 0xb2, 0x3d, 0xf2, 0x71, 0xf8, 0x05, 0x7c, 0xf3, 0x1e, - 0x0c, 0xf7, 0xf0, 0xe9, 0xc5, 0x76, 0x2b, 0xbf, 0xd8, 0x46, 0x75, 0x8e, 0x5d, 0x51, 0x31, 0x43, - 0xcb, 0x3a, 0x06, 0xbf, 0xd7, 0x9e, 0xa3, 0xff, 0x73, 0x49, 0xa4, 0x31, 0xdd, 0xa7, 0x18, 0x7c, - 0xef, 0x56, 0x45, 0x5f, 0x2e, 0x22, 0x66, 0x59, 0xf8, 0x08, 0xad, 0x6a, 0xc3, 0x4d, 0xaa, 0x7b, - 0x4b, 0x96, 0xba, 0xbf, 0x10, 0xd5, 0x2a, 0xbd, 0x3b, 0x15, 0x77, 0xb5, 0x8c, 0x59, 0x45, 0x1c, - 0xbc, 0x42, 0xbd, 0xc6, 0xe5, 0xd7, 0x4a, 0x1a, 0x5e, 0x58, 0x50, 0x74, 0xc7, 0xf7, 0xd1, 0x8a, - 0xa5, 0x5b, 0xab, 0x3a, 0xde, 0xed, 0x0a, 0xb1, 0x52, 0x0a, 0xca, 0xda, 0xe0, 0x77, 0x1b, 0x6d, - 0x5c, 0x7b, 0x04, 0x8e, 0x10, 0xf2, 0x67, 0x24, 0xdd, 0x73, 0x76, 0x96, 0x76, 0xbb, 0xfb, 0xcf, - 0x17, 0x19, 0xfa, 0xaf, 0x39, 0x6a, 0xc7, 0xaf, 0xd2, 0x9a, 0x35, 0x1a, 0xe0, 0xaf, 0xa8, 0xcb, - 0xa5, 0x54, 0x86, 0x1b, 0xa1, 0xa4, 0xee, 0xb5, 0x6d, 0xbf, 0xc3, 0x45, 0xad, 0x27, 0x87, 0x35, - 0xe3, 0x8d, 0x34, 0xc9, 0xd4, 0xbb, 0x5b, 0xf5, 0xed, 0x36, 0x2a, 0xac, 0xd9, 0x0a, 0x53, 0xd4, - 0x91, 0x3c, 0x02, 0x1d, 0x73, 0x1f, 0xec, 0x72, 0x3a, 0xde, 0x56, 0x25, 0xea, 0x7c, 0x98, 0x15, - 0x58, 0x7d, 0xa7, 0xff, 0x12, 0x6d, 0x5e, 0x6f, 0x83, 0x37, 0xd1, 0xd2, 0x04, 0xa6, 0xa5, 0xc9, - 0xac, 0x38, 0xe2, 0x7b, 0x68, 0x25, 0xe3, 0x61, 0x0a, 0xf6, 0x17, 0x75, 0x58, 0x19, 0xbc, 0x68, - 0x1f, 0x38, 0x83, 0x63, 0xb4, 0x35, 0xb7, 0x5b, 0xfc, 0x10, 0xad, 0xf1, 0x30, 0x54, 0x27, 0x30, - 0xb2, 0x90, 0x75, 0x6f, 0xa3, 0x9a, 0x61, 0xed, 0xb0, 0x4c, 0xb3, 0x59, 0x1d, 0x3f, 0x40, 0xab, - 0x09, 0x70, 0xad, 0x64, 0x89, 0xae, 0xbf, 0x05, 0xb3, 0x59, 0x56, 0x55, 0x3d, 0x72, 0x7a, 0xe9, - 0xb6, 0xce, 0x2e, 0xdd, 0xd6, 0xf9, 0xa5, 0xdb, 0xfa, 0x96, 0xbb, 0xce, 0x69, 0xee, 0x3a, 0x67, - 0xb9, 0xeb, 0x9c, 0xe7, 0xae, 0xf3, 0x33, 0x77, 0x9d, 0xef, 0xbf, 0xdc, 0xd6, 0xd1, 0xfa, 0xcc, - 0xcb, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xb8, 0x2d, 0x62, 0x44, 0xd7, 0x04, 0x00, 0x00, + // 607 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x92, 0xcf, 0x6e, 0xd3, 0x4c, + 0x14, 0xc5, 0xe3, 0xa4, 0xff, 0x32, 0xf9, 0x3e, 0x9a, 0x0e, 0x20, 0x59, 0x59, 0xb8, 0x55, 0x90, + 0x50, 0x59, 0x30, 0x43, 0x2b, 0x84, 0x0a, 0x0b, 0x50, 0x5c, 0x21, 0x95, 0x05, 0x20, 0x0d, 0xbb, + 0xae, 0x98, 0x38, 0x17, 0xc7, 0x24, 0x9e, 0xb1, 0x3c, 0xe3, 0x94, 0xec, 0x78, 0x02, 0xc4, 0x1b, + 0xf0, 0x22, 0x3c, 0x40, 0x97, 0x5d, 0x76, 0x55, 0x51, 0xb3, 0xe4, 0x25, 0x90, 0xc7, 0x4e, 0x6c, + 0x92, 0x22, 0x94, 0x9d, 0xef, 0xbd, 0x73, 0x7e, 0xf7, 0xcc, 0xf1, 0xa0, 0x93, 0xd1, 0x91, 0x22, + 0x81, 0xa4, 0xa3, 0xa4, 0x0f, 0xb1, 0x00, 0x0d, 0x8a, 0x4e, 0x40, 0x0c, 0x64, 0x4c, 0x8b, 0x01, + 0x8f, 0x02, 0x1a, 0x84, 0xdc, 0x87, 0x48, 0x8e, 0x03, 0x6f, 0x4a, 0x27, 0x07, 0x7c, 0x1c, 0x0d, + 0xf9, 0x01, 0xf5, 0x41, 0x40, 0xcc, 0x35, 0x0c, 0x48, 0x14, 0x4b, 0x2d, 0xf1, 0x6e, 0x2e, 0x20, + 0x3c, 0x0a, 0x48, 0x45, 0x40, 0x66, 0x82, 0xce, 0x43, 0x3f, 0xd0, 0xc3, 0xa4, 0x4f, 0x3c, 0x19, + 0x52, 0x5f, 0xfa, 0x92, 0x1a, 0x5d, 0x3f, 0xf9, 0x60, 0x2a, 0x53, 0x98, 0xaf, 0x9c, 0xd7, 0x79, + 0x5c, 0x1a, 0x08, 0xb9, 0x37, 0x0c, 0x04, 0xc4, 0x53, 0x1a, 0x8d, 0xfc, 0xac, 0xa1, 0x68, 0x08, + 0x9a, 0xd3, 0xc9, 0x92, 0x8b, 0x0e, 0xfd, 0x9b, 0x2a, 0x4e, 0x84, 0x0e, 0x42, 0x58, 0x12, 0x3c, + 0xf9, 0x97, 0x40, 0x79, 0x43, 0x08, 0xf9, 0xa2, 0xae, 0xfb, 0xad, 0x8e, 0x5a, 0xaf, 0xb2, 0x6b, + 0x32, 0x98, 0x04, 0x70, 0x86, 0xdf, 0xa3, 0xad, 0xcc, 0xd3, 0x80, 0x6b, 0x6e, 0x5b, 0x7b, 0xd6, + 0x7e, 0xeb, 0xf0, 0x11, 0x29, 0x13, 0x99, 0xa3, 0x49, 0x34, 0xf2, 0xb3, 0x86, 0x22, 0xd9, 0x69, + 0x32, 0x39, 0x20, 0x6f, 0xfb, 0x1f, 0xc1, 0xd3, 0xaf, 0x41, 0x73, 0x17, 0x9f, 0x5f, 0xed, 0xd6, + 0xd2, 0xab, 0x5d, 0x54, 0xf6, 0xd8, 0x9c, 0x8a, 0x19, 0x5a, 0x53, 0x11, 0x78, 0x76, 0x7d, 0x89, + 0x7e, 0x63, 0xde, 0xa4, 0xe2, 0xee, 0x5d, 0x04, 0x9e, 0xfb, 0x5f, 0x41, 0x5f, 0xcb, 0x2a, 0x66, + 0x58, 0xf8, 0x14, 0x6d, 0x28, 0xcd, 0x75, 0xa2, 0xec, 0x86, 0xa1, 0x1e, 0xae, 0x44, 0x35, 0x4a, + 0xf7, 0x56, 0xc1, 0xdd, 0xc8, 0x6b, 0x56, 0x10, 0xbb, 0x2f, 0x90, 0x5d, 0x39, 0x7c, 0x2c, 0x85, + 0xe6, 0x59, 0x04, 0xd9, 0x76, 0x7c, 0x0f, 0xad, 0x1b, 0xba, 0x89, 0xaa, 0xe9, 0xfe, 0x5f, 0x20, + 0xd6, 0x73, 0x41, 0x3e, 0xeb, 0xfe, 0xaa, 0xa3, 0xed, 0x85, 0x4b, 0xe0, 0x10, 0x21, 0x6f, 0x46, + 0x52, 0xb6, 0xb5, 0xd7, 0xd8, 0x6f, 0x1d, 0x3e, 0x5d, 0xc5, 0xf4, 0x1f, 0x3e, 0xca, 0xc4, 0xe7, + 0x6d, 0xc5, 0x2a, 0x0b, 0xf0, 0x27, 0xd4, 0xe2, 0x42, 0x48, 0xcd, 0x75, 0x20, 0x85, 0xb2, 0xeb, + 0x66, 0x5f, 0x6f, 0xd5, 0xe8, 0x49, 0xaf, 0x64, 0xbc, 0x14, 0x3a, 0x9e, 0xba, 0xb7, 0x8b, 0xbd, + 0xad, 0xca, 0x84, 0x55, 0x57, 0x61, 0x8a, 0x9a, 0x82, 0x87, 0xa0, 0x22, 0xee, 0x81, 0xf9, 0x39, + 0x4d, 0x77, 0xa7, 0x10, 0x35, 0xdf, 0xcc, 0x06, 0xac, 0x3c, 0xd3, 0x79, 0x8e, 0xda, 0x8b, 0x6b, + 0x70, 0x1b, 0x35, 0x46, 0x30, 0xcd, 0x43, 0x66, 0xd9, 0x27, 0xbe, 0x83, 0xd6, 0x27, 0x7c, 0x9c, + 0x80, 0x79, 0x45, 0x4d, 0x96, 0x17, 0xcf, 0xea, 0x47, 0x56, 0xf7, 0x7b, 0x1d, 0xed, 0x2c, 0xfd, + 0x5c, 0xfc, 0x00, 0x6d, 0xf2, 0xf1, 0x58, 0x9e, 0xc1, 0xc0, 0x50, 0xb6, 0xdc, 0xed, 0xc2, 0xc4, + 0x66, 0x2f, 0x6f, 0xb3, 0xd9, 0x1c, 0xdf, 0x47, 0x1b, 0x31, 0x70, 0x25, 0x45, 0xce, 0x2e, 0xdf, + 0x05, 0x33, 0x5d, 0x56, 0x4c, 0xf1, 0x17, 0x0b, 0xb5, 0x79, 0x32, 0x08, 0x74, 0xc5, 0xae, 0xdd, + 0x30, 0xc9, 0x9e, 0xac, 0xfe, 0xfc, 0x48, 0x6f, 0x01, 0x95, 0x07, 0x6c, 0x17, 0xcb, 0xdb, 0x8b, + 0x63, 0xb6, 0xb4, 0xbb, 0x73, 0x8c, 0xee, 0xde, 0x08, 0x59, 0x25, 0x3e, 0x97, 0x9c, 0x5f, 0x3b, + 0xb5, 0x8b, 0x6b, 0xa7, 0x76, 0x79, 0xed, 0xd4, 0x3e, 0xa7, 0x8e, 0x75, 0x9e, 0x3a, 0xd6, 0x45, + 0xea, 0x58, 0x97, 0xa9, 0x63, 0xfd, 0x48, 0x1d, 0xeb, 0xeb, 0x4f, 0xa7, 0x76, 0xba, 0x35, 0xbb, + 0xc8, 0xef, 0x00, 0x00, 0x00, 0xff, 0xff, 0x44, 0x16, 0x48, 0xa2, 0x79, 0x05, 0x00, 0x00, } diff --git a/vendor/k8s.io/api/imagepolicy/v1alpha1/generated.proto b/vendor/k8s.io/api/imagepolicy/v1alpha1/generated.proto index a19967cbe..381d0091b 100644 --- a/vendor/k8s.io/api/imagepolicy/v1alpha1/generated.proto +++ b/vendor/k8s.io/api/imagepolicy/v1alpha1/generated.proto @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -24,7 +24,6 @@ package k8s.io.api.imagepolicy.v1alpha1; import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; -import "k8s.io/apimachinery/pkg/util/intstr/generated.proto"; // Package-wide variables from generator "generated". option go_package = "v1alpha1"; @@ -66,7 +65,7 @@ message ImageReviewSpec { optional string namespace = 3; } -// ImageReviewStatus is the result of the token authentication request. +// ImageReviewStatus is the result of the review for the pod creation request. message ImageReviewStatus { // Allowed indicates that all images were allowed to be run. optional bool allowed = 1; @@ -76,5 +75,12 @@ message ImageReviewStatus { // may truncate excessively long errors when displaying to the user. // +optional optional string reason = 2; + + // AuditAnnotations will be added to the attributes object of the + // admission controller request using 'AddAnnotation'. The keys should + // be prefix-less (i.e., the admission controller will add an + // appropriate prefix). + // +optional + map auditAnnotations = 3; } diff --git a/vendor/k8s.io/api/imagepolicy/v1alpha1/types.go b/vendor/k8s.io/api/imagepolicy/v1alpha1/types.go index 258b5cd75..fd689e638 100644 --- a/vendor/k8s.io/api/imagepolicy/v1alpha1/types.go +++ b/vendor/k8s.io/api/imagepolicy/v1alpha1/types.go @@ -62,7 +62,7 @@ type ImageReviewContainerSpec struct { // In future, we may add command line overrides, exec health check command lines, and so on. } -// ImageReviewStatus is the result of the token authentication request. +// ImageReviewStatus is the result of the review for the pod creation request. type ImageReviewStatus struct { // Allowed indicates that all images were allowed to be run. Allowed bool `json:"allowed" protobuf:"varint,1,opt,name=allowed"` @@ -71,4 +71,10 @@ type ImageReviewStatus struct { // may truncate excessively long errors when displaying to the user. // +optional Reason string `json:"reason,omitempty" protobuf:"bytes,2,opt,name=reason"` + // AuditAnnotations will be added to the attributes object of the + // admission controller request using 'AddAnnotation'. The keys should + // be prefix-less (i.e., the admission controller will add an + // appropriate prefix). + // +optional + AuditAnnotations map[string]string `json:"auditAnnotations,omitempty" protobuf:"bytes,3,rep,name=auditAnnotations"` } diff --git a/vendor/k8s.io/api/imagepolicy/v1alpha1/types_swagger_doc_generated.go b/vendor/k8s.io/api/imagepolicy/v1alpha1/types_swagger_doc_generated.go index f4b26f5e8..0211d94af 100644 --- a/vendor/k8s.io/api/imagepolicy/v1alpha1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/imagepolicy/v1alpha1/types_swagger_doc_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2016 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -26,7 +26,7 @@ package v1alpha1 // // Those methods can be generated by using hack/update-generated-swagger-docs.sh -// AUTO-GENERATED FUNCTIONS START HERE +// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT. var map_ImageReview = map[string]string{ "": "ImageReview checks if the set of images in a pod are allowed.", "spec": "Spec holds information about the pod being evaluated", @@ -58,9 +58,10 @@ func (ImageReviewSpec) SwaggerDoc() map[string]string { } var map_ImageReviewStatus = map[string]string{ - "": "ImageReviewStatus is the result of the token authentication request.", - "allowed": "Allowed indicates that all images were allowed to be run.", - "reason": "Reason should be empty unless Allowed is false in which case it may contain a short description of what is wrong. Kubernetes may truncate excessively long errors when displaying to the user.", + "": "ImageReviewStatus is the result of the review for the pod creation request.", + "allowed": "Allowed indicates that all images were allowed to be run.", + "reason": "Reason should be empty unless Allowed is false in which case it may contain a short description of what is wrong. Kubernetes may truncate excessively long errors when displaying to the user.", + "auditAnnotations": "AuditAnnotations will be added to the attributes object of the admission controller request using 'AddAnnotation'. The keys should be prefix-less (i.e., the admission controller will add an appropriate prefix).", } func (ImageReviewStatus) SwaggerDoc() map[string]string { diff --git a/vendor/k8s.io/api/imagepolicy/v1alpha1/zz_generated.deepcopy.go b/vendor/k8s.io/api/imagepolicy/v1alpha1/zz_generated.deepcopy.go index 50f314886..83d47b791 100644 --- a/vendor/k8s.io/api/imagepolicy/v1alpha1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/api/imagepolicy/v1alpha1/zz_generated.deepcopy.go @@ -1,7 +1,7 @@ // +build !ignore_autogenerated /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -30,7 +30,7 @@ func (in *ImageReview) DeepCopyInto(out *ImageReview) { out.TypeMeta = in.TypeMeta in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) in.Spec.DeepCopyInto(&out.Spec) - out.Status = in.Status + in.Status.DeepCopyInto(&out.Status) return } @@ -99,6 +99,13 @@ func (in *ImageReviewSpec) DeepCopy() *ImageReviewSpec { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ImageReviewStatus) DeepCopyInto(out *ImageReviewStatus) { *out = *in + if in.AuditAnnotations != nil { + in, out := &in.AuditAnnotations, &out.AuditAnnotations + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } return } diff --git a/vendor/k8s.io/api/networking/v1/BUILD b/vendor/k8s.io/api/networking/v1/BUILD deleted file mode 100644 index beb3afcaf..000000000 --- a/vendor/k8s.io/api/networking/v1/BUILD +++ /dev/null @@ -1,46 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "generated.pb.go", - "register.go", - "types.go", - "types_swagger_doc_generated.go", - "zz_generated.deepcopy.go", - ], - importpath = "k8s.io/api/networking/v1", - deps = [ - "//vendor/github.com/gogo/protobuf/proto:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) - -filegroup( - name = "go_default_library_protos", - srcs = ["generated.proto"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/api/networking/v1/doc.go b/vendor/k8s.io/api/networking/v1/doc.go index ef9ae2ae4..887c36647 100644 --- a/vendor/k8s.io/api/networking/v1/doc.go +++ b/vendor/k8s.io/api/networking/v1/doc.go @@ -17,4 +17,5 @@ limitations under the License. // +k8s:deepcopy-gen=package // +k8s:openapi-gen=true // +groupName=networking.k8s.io + package v1 // import "k8s.io/api/networking/v1" diff --git a/vendor/k8s.io/api/networking/v1/generated.pb.go b/vendor/k8s.io/api/networking/v1/generated.pb.go index 05aaf1d9a..86bd80c85 100644 --- a/vendor/k8s.io/api/networking/v1/generated.pb.go +++ b/vendor/k8s.io/api/networking/v1/generated.pb.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -14,9 +14,8 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: k8s.io/kubernetes/vendor/k8s.io/api/networking/v1/generated.proto -// DO NOT EDIT! /* Package v1 is a generated protocol buffer package. @@ -446,24 +445,6 @@ func (m *NetworkPolicySpec) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Generated(dAtA []byte, offset int, v uint64) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - dAtA[offset+4] = uint8(v >> 32) - dAtA[offset+5] = uint8(v >> 40) - dAtA[offset+6] = uint8(v >> 48) - dAtA[offset+7] = uint8(v >> 56) - return offset + 8 -} -func encodeFixed32Generated(dAtA []byte, offset int, v uint32) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - return offset + 4 -} func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -1813,57 +1794,56 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 829 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x55, 0x4d, 0x6f, 0x1b, 0x45, - 0x18, 0xf6, 0x3a, 0xce, 0x47, 0x27, 0x94, 0x92, 0x41, 0x08, 0x2b, 0x88, 0x75, 0xd8, 0x0b, 0x41, - 0x55, 0x67, 0x71, 0x8b, 0x10, 0x37, 0xc4, 0x42, 0x29, 0x96, 0x9a, 0xc4, 0x9a, 0xf4, 0x02, 0x02, - 0x89, 0xf5, 0xfa, 0xcd, 0x66, 0x6a, 0xef, 0xce, 0x6a, 0x66, 0x6c, 0x92, 0x1b, 0x3f, 0x81, 0x1f, - 0xc2, 0x91, 0x1b, 0x87, 0x72, 0xcc, 0xb1, 0xc7, 0x9e, 0x56, 0x64, 0xf9, 0x17, 0x39, 0xa1, 0x99, - 0x1d, 0x7b, 0xfd, 0x51, 0x0b, 0xb7, 0xa2, 0x37, 0xcf, 0x3b, 0xcf, 0xf3, 0xbc, 0x1f, 0xf3, 0xf8, - 0x5d, 0xf4, 0xd5, 0xe0, 0x0b, 0x49, 0x18, 0xf7, 0x07, 0xa3, 0x1e, 0x88, 0x14, 0x14, 0x48, 0x7f, - 0x0c, 0x69, 0x9f, 0x0b, 0xdf, 0x5e, 0x84, 0x19, 0xf3, 0x53, 0x50, 0xbf, 0x70, 0x31, 0x60, 0x69, - 0xec, 0x8f, 0xdb, 0x7e, 0x0c, 0x29, 0x88, 0x50, 0x41, 0x9f, 0x64, 0x82, 0x2b, 0x8e, 0x9b, 0x25, - 0x92, 0x84, 0x19, 0x23, 0x15, 0x92, 0x8c, 0xdb, 0xfb, 0xf7, 0x62, 0xa6, 0xce, 0x47, 0x3d, 0x12, - 0xf1, 0xc4, 0x8f, 0x79, 0xcc, 0x7d, 0x43, 0xe8, 0x8d, 0xce, 0xcc, 0xc9, 0x1c, 0xcc, 0xaf, 0x52, - 0x68, 0xdf, 0x9b, 0x49, 0x19, 0x71, 0x01, 0x2f, 0x49, 0xb6, 0x7f, 0x6f, 0x06, 0x03, 0x17, 0x0a, - 0x52, 0xc9, 0x78, 0x2a, 0xfd, 0x71, 0xbb, 0x07, 0x2a, 0x5c, 0x86, 0x7f, 0x32, 0x03, 0xcf, 0xf8, - 0x90, 0x45, 0x97, 0x2b, 0xa1, 0x9f, 0x55, 0xd0, 0x24, 0x8c, 0xce, 0x59, 0x0a, 0xe2, 0xd2, 0xcf, - 0x06, 0xb1, 0x0e, 0x48, 0x3f, 0x01, 0x15, 0xbe, 0xac, 0x1e, 0x7f, 0x15, 0x4b, 0x8c, 0x52, 0xc5, - 0x12, 0x58, 0x22, 0x7c, 0xfe, 0x5f, 0x04, 0x19, 0x9d, 0x43, 0x12, 0x2e, 0xf1, 0x1e, 0xac, 0xe2, - 0x8d, 0x14, 0x1b, 0xfa, 0x2c, 0x55, 0x52, 0x89, 0x45, 0x92, 0x77, 0x82, 0xb6, 0x3b, 0xdd, 0x60, - 0xc8, 0xa3, 0x01, 0x3e, 0x40, 0x8d, 0x88, 0xf5, 0x45, 0xd3, 0x39, 0x70, 0x0e, 0x6f, 0x05, 0x6f, - 0x5d, 0xe5, 0xad, 0x5a, 0x91, 0xb7, 0x1a, 0x5f, 0x77, 0xbe, 0xa1, 0xd4, 0xdc, 0x60, 0x0f, 0x6d, - 0xc1, 0x45, 0x04, 0x99, 0x6a, 0xd6, 0x0f, 0x36, 0x0e, 0x6f, 0x05, 0xa8, 0xc8, 0x5b, 0x5b, 0x0f, - 0x4d, 0x84, 0xda, 0x1b, 0xef, 0x2f, 0x07, 0xdd, 0x3e, 0x2e, 0xdf, 0xb8, 0x6b, 0xc6, 0x89, 0x7f, - 0x46, 0x3b, 0x7a, 0x36, 0xfd, 0x50, 0x85, 0x46, 0x7b, 0xf7, 0xfe, 0xa7, 0xa4, 0x32, 0xc4, 0xb4, - 0x54, 0x92, 0x0d, 0x62, 0x1d, 0x90, 0x44, 0xa3, 0xc9, 0xb8, 0x4d, 0x4e, 0x7a, 0x4f, 0x21, 0x52, - 0x47, 0xa0, 0xc2, 0x00, 0xdb, 0x6a, 0x50, 0x15, 0xa3, 0x53, 0x55, 0x7c, 0x84, 0x1a, 0x32, 0x83, - 0xa8, 0x59, 0x37, 0xea, 0x77, 0xc9, 0x2a, 0xbb, 0x91, 0xb9, 0xc2, 0x4e, 0x33, 0x88, 0xaa, 0x36, - 0xf5, 0x89, 0x1a, 0x19, 0xef, 0x0f, 0x07, 0xbd, 0x3f, 0x87, 0x7c, 0x18, 0x0b, 0x90, 0x92, 0x8e, - 0x86, 0x80, 0xbb, 0x68, 0x33, 0xe3, 0x42, 0xc9, 0xa6, 0x73, 0xb0, 0xf1, 0x0a, 0xb9, 0xba, 0x5c, - 0xa8, 0xe0, 0xb6, 0xcd, 0xb5, 0xa9, 0x4f, 0x92, 0x96, 0x42, 0xf8, 0x11, 0xaa, 0x2b, 0x6e, 0x06, - 0xfa, 0x0a, 0x72, 0x00, 0x22, 0x40, 0x56, 0xae, 0xfe, 0x84, 0xd3, 0xba, 0xe2, 0xde, 0x9f, 0x0e, - 0x6a, 0xce, 0xa1, 0x3a, 0xe9, 0x9b, 0xac, 0xfb, 0x08, 0x35, 0xce, 0x04, 0x4f, 0x5e, 0xa7, 0xf2, - 0xe9, 0xd0, 0xbf, 0x15, 0x3c, 0xa1, 0x46, 0xc6, 0x7b, 0xe6, 0xa0, 0xbd, 0x39, 0xe4, 0x63, 0x26, - 0x15, 0xfe, 0x71, 0xc9, 0x3b, 0x64, 0x3d, 0xef, 0x68, 0xb6, 0x71, 0xce, 0x3b, 0x36, 0xd7, 0xce, - 0x24, 0x32, 0xe3, 0x9b, 0xc7, 0x68, 0x93, 0x29, 0x48, 0xa4, 0xed, 0xe1, 0xe3, 0x35, 0x7b, 0xa8, - 0x06, 0xd2, 0xd1, 0x6c, 0x5a, 0x8a, 0x78, 0xcf, 0xea, 0x0b, 0x1d, 0xe8, 0x5e, 0xf1, 0x19, 0xda, - 0xcd, 0x78, 0xff, 0x14, 0x86, 0x10, 0x29, 0x2e, 0x6c, 0x13, 0x0f, 0xd6, 0x6c, 0x22, 0xec, 0xc1, - 0x70, 0x42, 0x0d, 0xee, 0x14, 0x79, 0x6b, 0xb7, 0x5b, 0x69, 0xd1, 0x59, 0x61, 0x7c, 0x81, 0xf6, - 0xd2, 0x30, 0x01, 0x99, 0x85, 0x11, 0x4c, 0xb3, 0xd5, 0x5f, 0x3f, 0xdb, 0x7b, 0x45, 0xde, 0xda, - 0x3b, 0x5e, 0x54, 0xa4, 0xcb, 0x49, 0xf0, 0x77, 0x68, 0x9b, 0x65, 0x66, 0x85, 0x34, 0x37, 0x4c, - 0xbe, 0x8f, 0x56, 0xcf, 0xd1, 0xee, 0x9a, 0x60, 0xb7, 0xc8, 0x5b, 0x93, 0xc5, 0x43, 0x27, 0x74, - 0xef, 0xf7, 0x45, 0x0f, 0x68, 0xc3, 0xe1, 0x47, 0x68, 0xc7, 0xec, 0xaa, 0x88, 0x0f, 0xed, 0x6e, - 0xba, 0xab, 0xdf, 0xb3, 0x6b, 0x63, 0x37, 0x79, 0xeb, 0x83, 0xe5, 0xcf, 0x02, 0x99, 0x5c, 0xd3, - 0x29, 0x19, 0x1f, 0xa3, 0x86, 0xb6, 0xae, 0x9d, 0xca, 0xea, 0x25, 0xa4, 0xf7, 0x25, 0x29, 0xf7, - 0x25, 0xe9, 0xa4, 0xea, 0x44, 0x9c, 0x2a, 0xc1, 0xd2, 0x38, 0xd8, 0xd1, 0x96, 0xd5, 0x25, 0x51, - 0xa3, 0xe3, 0xdd, 0x2c, 0x3e, 0xb8, 0xde, 0x21, 0xf8, 0xe9, 0xff, 0xf6, 0xe0, 0xef, 0x5a, 0x9b, - 0xad, 0x7e, 0xf4, 0x9f, 0xd0, 0x36, 0x2b, 0xff, 0xe4, 0xd6, 0xc2, 0xf7, 0xd7, 0xb4, 0xf0, 0xcc, - 0x6a, 0x08, 0xee, 0xd8, 0x34, 0xdb, 0x93, 0xe0, 0x44, 0x13, 0x7f, 0x8f, 0xb6, 0xa0, 0x54, 0xdf, - 0x30, 0xea, 0xed, 0x35, 0xd5, 0xab, 0x7d, 0x19, 0xbc, 0x6d, 0xc5, 0xb7, 0x6c, 0xcc, 0x0a, 0xe2, - 0x2f, 0xf5, 0x94, 0x34, 0xf6, 0xc9, 0x65, 0x06, 0xb2, 0xd9, 0x30, 0xdf, 0x93, 0x0f, 0xcb, 0x66, - 0xa7, 0xe1, 0x9b, 0xbc, 0x85, 0xaa, 0x23, 0x9d, 0x65, 0x04, 0x87, 0x57, 0xd7, 0x6e, 0xed, 0xf9, - 0xb5, 0x5b, 0x7b, 0x71, 0xed, 0xd6, 0x7e, 0x2d, 0x5c, 0xe7, 0xaa, 0x70, 0x9d, 0xe7, 0x85, 0xeb, - 0xbc, 0x28, 0x5c, 0xe7, 0xef, 0xc2, 0x75, 0x7e, 0xfb, 0xc7, 0xad, 0xfd, 0x50, 0x1f, 0xb7, 0xff, - 0x0d, 0x00, 0x00, 0xff, 0xff, 0x48, 0x47, 0x24, 0xc9, 0xc1, 0x08, 0x00, 0x00, + // 804 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x55, 0xcf, 0x8f, 0xdb, 0x44, + 0x14, 0x8e, 0x9d, 0x6c, 0x92, 0x4e, 0x28, 0x65, 0x07, 0x21, 0xac, 0x45, 0xd8, 0xc1, 0x17, 0x56, + 0xaa, 0x18, 0x93, 0x16, 0x21, 0x6e, 0x08, 0x43, 0x29, 0x91, 0xba, 0xbb, 0xd1, 0x6c, 0x2f, 0x20, + 0x90, 0x70, 0x9c, 0x59, 0xef, 0x34, 0xb1, 0xc7, 0x1a, 0x4f, 0x42, 0xf7, 0xc6, 0x9f, 0xc0, 0x1f, + 0xc2, 0x91, 0x1b, 0x87, 0x72, 0xdc, 0x63, 0x8f, 0x3d, 0x59, 0xac, 0xf9, 0x2f, 0xf6, 0x84, 0x66, + 0x3c, 0x89, 0xf3, 0xa3, 0x11, 0xd9, 0x15, 0xbd, 0x65, 0xde, 0xbc, 0xef, 0x7b, 0xf3, 0xde, 0xfb, + 0xf2, 0x19, 0x7c, 0x35, 0xfe, 0x22, 0x43, 0x94, 0x79, 0xe3, 0xe9, 0x90, 0xf0, 0x84, 0x08, 0x92, + 0x79, 0x33, 0x92, 0x8c, 0x18, 0xf7, 0xf4, 0x45, 0x90, 0x52, 0x2f, 0x21, 0xe2, 0x17, 0xc6, 0xc7, + 0x34, 0x89, 0xbc, 0x59, 0xcf, 0x8b, 0x48, 0x42, 0x78, 0x20, 0xc8, 0x08, 0xa5, 0x9c, 0x09, 0x06, + 0xad, 0x32, 0x13, 0x05, 0x29, 0x45, 0x55, 0x26, 0x9a, 0xf5, 0x0e, 0x3e, 0x89, 0xa8, 0x38, 0x9f, + 0x0e, 0x51, 0xc8, 0x62, 0x2f, 0x62, 0x11, 0xf3, 0x14, 0x60, 0x38, 0x3d, 0x53, 0x27, 0x75, 0x50, + 0xbf, 0x4a, 0xa2, 0x03, 0x77, 0xa9, 0x64, 0xc8, 0x38, 0x79, 0x4d, 0xb1, 0x83, 0xcf, 0xaa, 0x9c, + 0x38, 0x08, 0xcf, 0x69, 0x42, 0xf8, 0x85, 0x97, 0x8e, 0x23, 0x19, 0xc8, 0xbc, 0x98, 0x88, 0xe0, + 0x75, 0x28, 0x6f, 0x1b, 0x8a, 0x4f, 0x13, 0x41, 0x63, 0xb2, 0x01, 0xf8, 0xfc, 0xbf, 0x00, 0x59, + 0x78, 0x4e, 0xe2, 0x60, 0x03, 0xf7, 0x70, 0x1b, 0x6e, 0x2a, 0xe8, 0xc4, 0xa3, 0x89, 0xc8, 0x04, + 0x5f, 0x07, 0xb9, 0x27, 0xa0, 0xd5, 0x1f, 0xf8, 0x13, 0x16, 0x8e, 0x61, 0x17, 0x34, 0x42, 0x3a, + 0xe2, 0x96, 0xd1, 0x35, 0x0e, 0xef, 0xf8, 0x6f, 0x5d, 0xe6, 0x4e, 0xad, 0xc8, 0x9d, 0xc6, 0xd7, + 0xfd, 0x6f, 0x30, 0x56, 0x37, 0xd0, 0x05, 0x4d, 0xf2, 0x3c, 0x24, 0xa9, 0xb0, 0xcc, 0x6e, 0xfd, + 0xf0, 0x8e, 0x0f, 0x8a, 0xdc, 0x69, 0x3e, 0x52, 0x11, 0xac, 0x6f, 0xdc, 0xbf, 0x0c, 0x70, 0xf7, + 0xb8, 0xdc, 0xc4, 0x80, 0x4d, 0x68, 0x78, 0x01, 0x7f, 0x06, 0x6d, 0x39, 0x9b, 0x51, 0x20, 0x02, + 0xc5, 0xdd, 0x79, 0xf0, 0x29, 0xaa, 0xd6, 0xb6, 0x78, 0x2a, 0x4a, 0xc7, 0x91, 0x0c, 0x64, 0x48, + 0x66, 0xa3, 0x59, 0x0f, 0x9d, 0x0c, 0x9f, 0x91, 0x50, 0x1c, 0x11, 0x11, 0xf8, 0x50, 0xbf, 0x06, + 0x54, 0x31, 0xbc, 0x60, 0x85, 0x47, 0xa0, 0x91, 0xa5, 0x24, 0xb4, 0x4c, 0xc5, 0x7e, 0x1f, 0x6d, + 0x13, 0x05, 0x5a, 0x79, 0xd8, 0x69, 0x4a, 0xc2, 0xaa, 0x4d, 0x79, 0xc2, 0x8a, 0xc6, 0xfd, 0xc3, + 0x00, 0xef, 0xaf, 0x64, 0x3e, 0x8a, 0x38, 0xc9, 0x32, 0x3c, 0x9d, 0x10, 0x38, 0x00, 0x7b, 0x29, + 0xe3, 0x22, 0xb3, 0x8c, 0x6e, 0xfd, 0x06, 0xb5, 0x06, 0x8c, 0x0b, 0xff, 0xae, 0xae, 0xb5, 0x27, + 0x4f, 0x19, 0x2e, 0x89, 0xe0, 0x63, 0x60, 0x0a, 0xa6, 0x06, 0x7a, 0x03, 0x3a, 0x42, 0xb8, 0x0f, + 0x34, 0x9d, 0xf9, 0x94, 0x61, 0x53, 0x30, 0xf7, 0x4f, 0x03, 0x58, 0x2b, 0x59, 0xfd, 0xe4, 0x4d, + 0xbe, 0xfb, 0x08, 0x34, 0xce, 0x38, 0x8b, 0x6f, 0xf3, 0xf2, 0xc5, 0xd0, 0xbf, 0xe5, 0x2c, 0xc6, + 0x8a, 0xc6, 0x7d, 0x61, 0x80, 0xfd, 0x95, 0xcc, 0x27, 0x34, 0x13, 0xf0, 0xc7, 0x0d, 0xed, 0xa0, + 0xdd, 0xb4, 0x23, 0xd1, 0x4a, 0x39, 0xef, 0xe8, 0x5a, 0xed, 0x79, 0x64, 0x49, 0x37, 0x4f, 0xc0, + 0x1e, 0x15, 0x24, 0xce, 0x74, 0x0f, 0x1f, 0xef, 0xd8, 0x43, 0x35, 0x90, 0xbe, 0x44, 0xe3, 0x92, + 0xc4, 0x7d, 0x61, 0xae, 0x75, 0x20, 0x7b, 0x85, 0x67, 0xa0, 0x93, 0xb2, 0xd1, 0x29, 0x99, 0x90, + 0x50, 0x30, 0xae, 0x9b, 0x78, 0xb8, 0x63, 0x13, 0xc1, 0x90, 0x4c, 0xe6, 0x50, 0xff, 0x5e, 0x91, + 0x3b, 0x9d, 0x41, 0xc5, 0x85, 0x97, 0x89, 0xe1, 0x73, 0xb0, 0x9f, 0x04, 0x31, 0xc9, 0xd2, 0x20, + 0x24, 0x8b, 0x6a, 0xe6, 0xed, 0xab, 0xbd, 0x57, 0xe4, 0xce, 0xfe, 0xf1, 0x3a, 0x23, 0xde, 0x2c, + 0x02, 0xbf, 0x03, 0x2d, 0x9a, 0x2a, 0x0b, 0xb1, 0xea, 0xaa, 0xde, 0x47, 0xdb, 0xe7, 0xa8, 0xbd, + 0xc6, 0xef, 0x14, 0xb9, 0x33, 0x37, 0x1e, 0x3c, 0x87, 0xbb, 0xbf, 0xaf, 0x6b, 0x40, 0x0a, 0x0e, + 0x3e, 0x06, 0x6d, 0xe5, 0x55, 0x21, 0x9b, 0x68, 0x6f, 0xba, 0x2f, 0xf7, 0x39, 0xd0, 0xb1, 0xeb, + 0xdc, 0xf9, 0x60, 0xd3, 0xbc, 0xd1, 0xfc, 0x1a, 0x2f, 0xc0, 0xf0, 0x18, 0x34, 0xa4, 0x74, 0xf5, + 0x54, 0xb6, 0x9b, 0x90, 0xf4, 0x4b, 0x54, 0xfa, 0x25, 0xea, 0x27, 0xe2, 0x84, 0x9f, 0x0a, 0x4e, + 0x93, 0xc8, 0x6f, 0x4b, 0xc9, 0xca, 0x27, 0x61, 0xc5, 0xe3, 0x5e, 0xaf, 0x2f, 0x5c, 0x7a, 0x08, + 0x7c, 0xf6, 0xbf, 0x2d, 0xfc, 0x5d, 0x2d, 0xb3, 0xed, 0x4b, 0xff, 0x09, 0xb4, 0x68, 0xf9, 0x27, + 0xd7, 0x12, 0x7e, 0xb0, 0xa3, 0x84, 0x97, 0xac, 0xc1, 0xbf, 0xa7, 0xcb, 0xb4, 0xe6, 0xc1, 0x39, + 0x27, 0xfc, 0x1e, 0x34, 0x49, 0xc9, 0x5e, 0x57, 0xec, 0xbd, 0x1d, 0xd9, 0x2b, 0xbf, 0xf4, 0xdf, + 0xd6, 0xe4, 0x4d, 0x1d, 0xd3, 0x84, 0xf0, 0x4b, 0x39, 0x25, 0x99, 0xfb, 0xf4, 0x22, 0x25, 0x99, + 0xd5, 0x50, 0xdf, 0x93, 0x0f, 0xcb, 0x66, 0x17, 0xe1, 0xeb, 0xdc, 0x01, 0xd5, 0x11, 0x2f, 0x23, + 0xfc, 0xc3, 0xcb, 0x2b, 0xbb, 0xf6, 0xf2, 0xca, 0xae, 0xbd, 0xba, 0xb2, 0x6b, 0xbf, 0x16, 0xb6, + 0x71, 0x59, 0xd8, 0xc6, 0xcb, 0xc2, 0x36, 0x5e, 0x15, 0xb6, 0xf1, 0x77, 0x61, 0x1b, 0xbf, 0xfd, + 0x63, 0xd7, 0x7e, 0x30, 0x67, 0xbd, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0xf7, 0x7b, 0xc9, 0x59, + 0x67, 0x08, 0x00, 0x00, } diff --git a/vendor/k8s.io/api/networking/v1/generated.proto b/vendor/k8s.io/api/networking/v1/generated.proto index 06365ebe3..ab3731e9c 100644 --- a/vendor/k8s.io/api/networking/v1/generated.proto +++ b/vendor/k8s.io/api/networking/v1/generated.proto @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -22,8 +22,6 @@ syntax = 'proto2'; package k8s.io.api.networking.v1; import "k8s.io/api/core/v1/generated.proto"; -import "k8s.io/api/extensions/v1beta1/generated.proto"; -import "k8s.io/api/policy/v1beta1/generated.proto"; import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; @@ -111,29 +109,36 @@ message NetworkPolicyList { repeated NetworkPolicy items = 2; } -// NetworkPolicyPeer describes a peer to allow traffic from. Exactly one of its fields -// must be specified. +// NetworkPolicyPeer describes a peer to allow traffic from. Only certain combinations of +// fields are allowed message NetworkPolicyPeer { - // This is a label selector which selects Pods in this namespace. This field - // follows standard label selector semantics. If present but empty, this selector - // selects all pods in this namespace. + // This is a label selector which selects Pods. This field follows standard label + // selector semantics; if present but empty, it selects all pods. + // + // If NamespaceSelector is also set, then the NetworkPolicyPeer as a whole selects + // the Pods matching PodSelector in the Namespaces selected by NamespaceSelector. + // Otherwise it selects the Pods matching PodSelector in the policy's own Namespace. // +optional optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector podSelector = 1; - // Selects Namespaces using cluster scoped-labels. This matches all pods in all - // namespaces selected by this label selector. This field follows standard label - // selector semantics. If present but empty, this selector selects all namespaces. + // Selects Namespaces using cluster-scoped labels. This field follows standard label + // selector semantics; if present but empty, it selects all namespaces. + // + // If PodSelector is also set, then the NetworkPolicyPeer as a whole selects + // the Pods matching PodSelector in the Namespaces selected by NamespaceSelector. + // Otherwise it selects all Pods in the Namespaces selected by NamespaceSelector. // +optional optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector namespaceSelector = 2; - // IPBlock defines policy on a particular IPBlock + // IPBlock defines policy on a particular IPBlock. If this field is set then + // neither of the other fields can be. // +optional optional IPBlock ipBlock = 3; } // NetworkPolicyPort describes a port to allow traffic on message NetworkPolicyPort { - // The protocol (TCP or UDP) which traffic must match. If not specified, this + // The protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this // field defaults to TCP. // +optional optional string protocol = 1; diff --git a/vendor/k8s.io/api/networking/v1/types.go b/vendor/k8s.io/api/networking/v1/types.go index 57bc8005e..ce70448d3 100644 --- a/vendor/k8s.io/api/networking/v1/types.go +++ b/vendor/k8s.io/api/networking/v1/types.go @@ -136,7 +136,7 @@ type NetworkPolicyEgressRule struct { // NetworkPolicyPort describes a port to allow traffic on type NetworkPolicyPort struct { - // The protocol (TCP or UDP) which traffic must match. If not specified, this + // The protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this // field defaults to TCP. // +optional Protocol *v1.Protocol `json:"protocol,omitempty" protobuf:"bytes,1,opt,name=protocol,casttype=k8s.io/api/core/v1.Protocol"` @@ -161,22 +161,29 @@ type IPBlock struct { Except []string `json:"except,omitempty" protobuf:"bytes,2,rep,name=except"` } -// NetworkPolicyPeer describes a peer to allow traffic from. Exactly one of its fields -// must be specified. +// NetworkPolicyPeer describes a peer to allow traffic from. Only certain combinations of +// fields are allowed type NetworkPolicyPeer struct { - // This is a label selector which selects Pods in this namespace. This field - // follows standard label selector semantics. If present but empty, this selector - // selects all pods in this namespace. + // This is a label selector which selects Pods. This field follows standard label + // selector semantics; if present but empty, it selects all pods. + // + // If NamespaceSelector is also set, then the NetworkPolicyPeer as a whole selects + // the Pods matching PodSelector in the Namespaces selected by NamespaceSelector. + // Otherwise it selects the Pods matching PodSelector in the policy's own Namespace. // +optional PodSelector *metav1.LabelSelector `json:"podSelector,omitempty" protobuf:"bytes,1,opt,name=podSelector"` - // Selects Namespaces using cluster scoped-labels. This matches all pods in all - // namespaces selected by this label selector. This field follows standard label - // selector semantics. If present but empty, this selector selects all namespaces. + // Selects Namespaces using cluster-scoped labels. This field follows standard label + // selector semantics; if present but empty, it selects all namespaces. + // + // If PodSelector is also set, then the NetworkPolicyPeer as a whole selects + // the Pods matching PodSelector in the Namespaces selected by NamespaceSelector. + // Otherwise it selects all Pods in the Namespaces selected by NamespaceSelector. // +optional NamespaceSelector *metav1.LabelSelector `json:"namespaceSelector,omitempty" protobuf:"bytes,2,opt,name=namespaceSelector"` - // IPBlock defines policy on a particular IPBlock + // IPBlock defines policy on a particular IPBlock. If this field is set then + // neither of the other fields can be. // +optional IPBlock *IPBlock `json:"ipBlock,omitempty" protobuf:"bytes,3,rep,name=ipBlock"` } diff --git a/vendor/k8s.io/api/networking/v1/types_swagger_doc_generated.go b/vendor/k8s.io/api/networking/v1/types_swagger_doc_generated.go index ad0bafeac..f4363bc09 100644 --- a/vendor/k8s.io/api/networking/v1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/networking/v1/types_swagger_doc_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2016 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -26,7 +26,7 @@ package v1 // // Those methods can be generated by using hack/update-generated-swagger-docs.sh -// AUTO-GENERATED FUNCTIONS START HERE +// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT. var map_IPBlock = map[string]string{ "": "IPBlock describes a particular CIDR (Ex. \"192.168.1.1/24\") that is allowed to the pods matched by a NetworkPolicySpec's podSelector. The except entry describes CIDRs that should not be included within this rule.", "cidr": "CIDR is a string representing the IP Block Valid examples are \"192.168.1.1/24\"", @@ -78,10 +78,10 @@ func (NetworkPolicyList) SwaggerDoc() map[string]string { } var map_NetworkPolicyPeer = map[string]string{ - "": "NetworkPolicyPeer describes a peer to allow traffic from. Exactly one of its fields must be specified.", - "podSelector": "This is a label selector which selects Pods in this namespace. This field follows standard label selector semantics. If present but empty, this selector selects all pods in this namespace.", - "namespaceSelector": "Selects Namespaces using cluster scoped-labels. This matches all pods in all namespaces selected by this label selector. This field follows standard label selector semantics. If present but empty, this selector selects all namespaces.", - "ipBlock": "IPBlock defines policy on a particular IPBlock", + "": "NetworkPolicyPeer describes a peer to allow traffic from. Only certain combinations of fields are allowed", + "podSelector": "This is a label selector which selects Pods. This field follows standard label selector semantics; if present but empty, it selects all pods.\n\nIf NamespaceSelector is also set, then the NetworkPolicyPeer as a whole selects the Pods matching PodSelector in the Namespaces selected by NamespaceSelector. Otherwise it selects the Pods matching PodSelector in the policy's own Namespace.", + "namespaceSelector": "Selects Namespaces using cluster-scoped labels. This field follows standard label selector semantics; if present but empty, it selects all namespaces.\n\nIf PodSelector is also set, then the NetworkPolicyPeer as a whole selects the Pods matching PodSelector in the Namespaces selected by NamespaceSelector. Otherwise it selects all Pods in the Namespaces selected by NamespaceSelector.", + "ipBlock": "IPBlock defines policy on a particular IPBlock. If this field is set then neither of the other fields can be.", } func (NetworkPolicyPeer) SwaggerDoc() map[string]string { @@ -90,7 +90,7 @@ func (NetworkPolicyPeer) SwaggerDoc() map[string]string { var map_NetworkPolicyPort = map[string]string{ "": "NetworkPolicyPort describes a port to allow traffic on", - "protocol": "The protocol (TCP or UDP) which traffic must match. If not specified, this field defaults to TCP.", + "protocol": "The protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this field defaults to TCP.", "port": "The port on the given protocol. This can either be a numerical or named port on a pod. If this field is not provided, this matches all port names and numbers.", } diff --git a/vendor/k8s.io/api/networking/v1/zz_generated.deepcopy.go b/vendor/k8s.io/api/networking/v1/zz_generated.deepcopy.go index 8a7c1530e..d1e4e8845 100644 --- a/vendor/k8s.io/api/networking/v1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/api/networking/v1/zz_generated.deepcopy.go @@ -1,7 +1,7 @@ // +build !ignore_autogenerated /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,8 +21,8 @@ limitations under the License. package v1 import ( - core_v1 "k8s.io/api/core/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" intstr "k8s.io/apimachinery/pkg/util/intstr" ) @@ -173,30 +173,18 @@ func (in *NetworkPolicyPeer) DeepCopyInto(out *NetworkPolicyPeer) { *out = *in if in.PodSelector != nil { in, out := &in.PodSelector, &out.PodSelector - if *in == nil { - *out = nil - } else { - *out = new(meta_v1.LabelSelector) - (*in).DeepCopyInto(*out) - } + *out = new(metav1.LabelSelector) + (*in).DeepCopyInto(*out) } if in.NamespaceSelector != nil { in, out := &in.NamespaceSelector, &out.NamespaceSelector - if *in == nil { - *out = nil - } else { - *out = new(meta_v1.LabelSelector) - (*in).DeepCopyInto(*out) - } + *out = new(metav1.LabelSelector) + (*in).DeepCopyInto(*out) } if in.IPBlock != nil { in, out := &in.IPBlock, &out.IPBlock - if *in == nil { - *out = nil - } else { - *out = new(IPBlock) - (*in).DeepCopyInto(*out) - } + *out = new(IPBlock) + (*in).DeepCopyInto(*out) } return } @@ -216,21 +204,13 @@ func (in *NetworkPolicyPort) DeepCopyInto(out *NetworkPolicyPort) { *out = *in if in.Protocol != nil { in, out := &in.Protocol, &out.Protocol - if *in == nil { - *out = nil - } else { - *out = new(core_v1.Protocol) - **out = **in - } + *out = new(corev1.Protocol) + **out = **in } if in.Port != nil { in, out := &in.Port, &out.Port - if *in == nil { - *out = nil - } else { - *out = new(intstr.IntOrString) - **out = **in - } + *out = new(intstr.IntOrString) + **out = **in } return } diff --git a/vendor/k8s.io/api/policy/OWNERS b/vendor/k8s.io/api/policy/OWNERS index a245fde35..61a5da4cf 100755 --- a/vendor/k8s.io/api/policy/OWNERS +++ b/vendor/k8s.io/api/policy/OWNERS @@ -1,8 +1,8 @@ -approvers: -- sig-apps-api-approvers +# approval on api packages bubbles to api-approvers reviewers: - sig-apps-reviewers -- pweil- -- liggitt -- tallclair -- php-coder +- sig-auth-policy-approvers +- sig-auth-policy-reviewers +labels: +- sig/auth + diff --git a/vendor/k8s.io/api/policy/v1beta1/BUILD b/vendor/k8s.io/api/policy/v1beta1/BUILD deleted file mode 100644 index d55d68e5d..000000000 --- a/vendor/k8s.io/api/policy/v1beta1/BUILD +++ /dev/null @@ -1,47 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "generated.pb.go", - "register.go", - "types.go", - "types_swagger_doc_generated.go", - "zz_generated.deepcopy.go", - ], - importpath = "k8s.io/api/policy/v1beta1", - deps = [ - "//vendor/github.com/gogo/protobuf/proto:go_default_library", - "//vendor/github.com/gogo/protobuf/sortkeys:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) - -filegroup( - name = "go_default_library_protos", - srcs = ["generated.proto"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/api/policy/v1beta1/doc.go b/vendor/k8s.io/api/policy/v1beta1/doc.go index 9c456f923..74611c6ba 100644 --- a/vendor/k8s.io/api/policy/v1beta1/doc.go +++ b/vendor/k8s.io/api/policy/v1beta1/doc.go @@ -15,9 +15,9 @@ limitations under the License. */ // +k8s:deepcopy-gen=package +// +k8s:openapi-gen=true // Package policy is for any kind of policy object. Suitable examples, even if // they aren't all here, are PodDisruptionBudget, PodSecurityPolicy, // NetworkPolicy, etc. -// +k8s:openapi-gen=true package v1beta1 // import "k8s.io/api/policy/v1beta1" diff --git a/vendor/k8s.io/api/policy/v1beta1/generated.pb.go b/vendor/k8s.io/api/policy/v1beta1/generated.pb.go index 24bbe8975..d122fcfda 100644 --- a/vendor/k8s.io/api/policy/v1beta1/generated.pb.go +++ b/vendor/k8s.io/api/policy/v1beta1/generated.pb.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -14,9 +14,8 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: k8s.io/kubernetes/vendor/k8s.io/api/policy/v1beta1/generated.proto -// DO NOT EDIT! /* Package v1beta1 is a generated protocol buffer package. @@ -38,6 +37,7 @@ limitations under the License. PodSecurityPolicy PodSecurityPolicyList PodSecurityPolicySpec + RunAsGroupStrategyOptions RunAsUserStrategyOptions SELinuxStrategyOptions SupplementalGroupsStrategyOptions @@ -125,20 +125,26 @@ func (m *PodSecurityPolicySpec) Reset() { *m = PodSecurityPol func (*PodSecurityPolicySpec) ProtoMessage() {} func (*PodSecurityPolicySpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{12} } +func (m *RunAsGroupStrategyOptions) Reset() { *m = RunAsGroupStrategyOptions{} } +func (*RunAsGroupStrategyOptions) ProtoMessage() {} +func (*RunAsGroupStrategyOptions) Descriptor() ([]byte, []int) { + return fileDescriptorGenerated, []int{13} +} + func (m *RunAsUserStrategyOptions) Reset() { *m = RunAsUserStrategyOptions{} } func (*RunAsUserStrategyOptions) ProtoMessage() {} func (*RunAsUserStrategyOptions) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{13} + return fileDescriptorGenerated, []int{14} } func (m *SELinuxStrategyOptions) Reset() { *m = SELinuxStrategyOptions{} } func (*SELinuxStrategyOptions) ProtoMessage() {} -func (*SELinuxStrategyOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{14} } +func (*SELinuxStrategyOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{15} } func (m *SupplementalGroupsStrategyOptions) Reset() { *m = SupplementalGroupsStrategyOptions{} } func (*SupplementalGroupsStrategyOptions) ProtoMessage() {} func (*SupplementalGroupsStrategyOptions) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{15} + return fileDescriptorGenerated, []int{16} } func init() { @@ -155,6 +161,7 @@ func init() { proto.RegisterType((*PodSecurityPolicy)(nil), "k8s.io.api.policy.v1beta1.PodSecurityPolicy") proto.RegisterType((*PodSecurityPolicyList)(nil), "k8s.io.api.policy.v1beta1.PodSecurityPolicyList") proto.RegisterType((*PodSecurityPolicySpec)(nil), "k8s.io.api.policy.v1beta1.PodSecurityPolicySpec") + proto.RegisterType((*RunAsGroupStrategyOptions)(nil), "k8s.io.api.policy.v1beta1.RunAsGroupStrategyOptions") proto.RegisterType((*RunAsUserStrategyOptions)(nil), "k8s.io.api.policy.v1beta1.RunAsUserStrategyOptions") proto.RegisterType((*SELinuxStrategyOptions)(nil), "k8s.io.api.policy.v1beta1.SELinuxStrategyOptions") proto.RegisterType((*SupplementalGroupsStrategyOptions)(nil), "k8s.io.api.policy.v1beta1.SupplementalGroupsStrategyOptions") @@ -200,6 +207,14 @@ func (m *AllowedHostPath) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.PathPrefix))) i += copy(dAtA[i:], m.PathPrefix) + dAtA[i] = 0x10 + i++ + if m.ReadOnly { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ return i, nil } @@ -794,6 +809,103 @@ func (m *PodSecurityPolicySpec) MarshalTo(dAtA []byte) (int, error) { i += n } } + if len(m.AllowedUnsafeSysctls) > 0 { + for _, s := range m.AllowedUnsafeSysctls { + dAtA[i] = 0x9a + i++ + dAtA[i] = 0x1 + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } + if len(m.ForbiddenSysctls) > 0 { + for _, s := range m.ForbiddenSysctls { + dAtA[i] = 0xa2 + i++ + dAtA[i] = 0x1 + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } + if len(m.AllowedProcMountTypes) > 0 { + for _, s := range m.AllowedProcMountTypes { + dAtA[i] = 0xaa + i++ + dAtA[i] = 0x1 + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } + if m.RunAsGroup != nil { + dAtA[i] = 0xb2 + i++ + dAtA[i] = 0x1 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.RunAsGroup.Size())) + n18, err := m.RunAsGroup.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n18 + } + return i, nil +} + +func (m *RunAsGroupStrategyOptions) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RunAsGroupStrategyOptions) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Rule))) + i += copy(dAtA[i:], m.Rule) + if len(m.Ranges) > 0 { + for _, msg := range m.Ranges { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } return i, nil } @@ -854,11 +966,11 @@ func (m *SELinuxStrategyOptions) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SELinuxOptions.Size())) - n18, err := m.SELinuxOptions.MarshalTo(dAtA[i:]) + n19, err := m.SELinuxOptions.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n18 + i += n19 } return i, nil } @@ -897,24 +1009,6 @@ func (m *SupplementalGroupsStrategyOptions) MarshalTo(dAtA []byte) (int, error) return i, nil } -func encodeFixed64Generated(dAtA []byte, offset int, v uint64) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - dAtA[offset+4] = uint8(v >> 32) - dAtA[offset+5] = uint8(v >> 40) - dAtA[offset+6] = uint8(v >> 48) - dAtA[offset+7] = uint8(v >> 56) - return offset + 8 -} -func encodeFixed32Generated(dAtA []byte, offset int, v uint32) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - return offset + 4 -} func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -937,6 +1031,7 @@ func (m *AllowedHostPath) Size() (n int) { _ = l l = len(m.PathPrefix) n += 1 + l + sovGenerated(uint64(l)) + n += 2 return n } @@ -1134,6 +1229,42 @@ func (m *PodSecurityPolicySpec) Size() (n int) { n += 2 + l + sovGenerated(uint64(l)) } } + if len(m.AllowedUnsafeSysctls) > 0 { + for _, s := range m.AllowedUnsafeSysctls { + l = len(s) + n += 2 + l + sovGenerated(uint64(l)) + } + } + if len(m.ForbiddenSysctls) > 0 { + for _, s := range m.ForbiddenSysctls { + l = len(s) + n += 2 + l + sovGenerated(uint64(l)) + } + } + if len(m.AllowedProcMountTypes) > 0 { + for _, s := range m.AllowedProcMountTypes { + l = len(s) + n += 2 + l + sovGenerated(uint64(l)) + } + } + if m.RunAsGroup != nil { + l = m.RunAsGroup.Size() + n += 2 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *RunAsGroupStrategyOptions) Size() (n int) { + var l int + _ = l + l = len(m.Rule) + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Ranges) > 0 { + for _, e := range m.Ranges { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } return n } @@ -1206,6 +1337,7 @@ func (this *AllowedHostPath) String() string { } s := strings.Join([]string{`&AllowedHostPath{`, `PathPrefix:` + fmt.Sprintf("%v", this.PathPrefix) + `,`, + `ReadOnly:` + fmt.Sprintf("%v", this.ReadOnly) + `,`, `}`, }, "") return s @@ -1359,6 +1491,21 @@ func (this *PodSecurityPolicySpec) String() string { `AllowPrivilegeEscalation:` + valueToStringGenerated(this.AllowPrivilegeEscalation) + `,`, `AllowedHostPaths:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.AllowedHostPaths), "AllowedHostPath", "AllowedHostPath", 1), `&`, ``, 1) + `,`, `AllowedFlexVolumes:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.AllowedFlexVolumes), "AllowedFlexVolume", "AllowedFlexVolume", 1), `&`, ``, 1) + `,`, + `AllowedUnsafeSysctls:` + fmt.Sprintf("%v", this.AllowedUnsafeSysctls) + `,`, + `ForbiddenSysctls:` + fmt.Sprintf("%v", this.ForbiddenSysctls) + `,`, + `AllowedProcMountTypes:` + fmt.Sprintf("%v", this.AllowedProcMountTypes) + `,`, + `RunAsGroup:` + strings.Replace(fmt.Sprintf("%v", this.RunAsGroup), "RunAsGroupStrategyOptions", "RunAsGroupStrategyOptions", 1) + `,`, + `}`, + }, "") + return s +} +func (this *RunAsGroupStrategyOptions) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&RunAsGroupStrategyOptions{`, + `Rule:` + fmt.Sprintf("%v", this.Rule) + `,`, + `Ranges:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Ranges), "IDRange", "IDRange", 1), `&`, ``, 1) + `,`, `}`, }, "") return s @@ -1541,6 +1688,26 @@ func (m *AllowedHostPath) Unmarshal(dAtA []byte) error { } m.PathPrefix = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ReadOnly", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.ReadOnly = bool(v != 0) default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -2435,51 +2602,14 @@ func (m *PodDisruptionBudgetStatus) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.DisruptedPods == nil { m.DisruptedPods = make(map[string]k8s_io_apimachinery_pkg_apis_meta_v1.Time) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + mapvalue := &k8s_io_apimachinery_pkg_apis_meta_v1.Time{} + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -2489,46 +2619,85 @@ func (m *PodDisruptionBudgetStatus) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } } + if mapmsglen < 0 { + return ErrInvalidLengthGenerated + } + postmsgIndex := iNdEx + mapmsglen + if mapmsglen < 0 { + return ErrInvalidLengthGenerated + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue = &k8s_io_apimachinery_pkg_apis_meta_v1.Time{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthGenerated - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &k8s_io_apimachinery_pkg_apis_meta_v1.Time{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.DisruptedPods[mapkey] = *mapvalue - } else { - var mapvalue k8s_io_apimachinery_pkg_apis_meta_v1.Time - m.DisruptedPods[mapkey] = mapvalue } + m.DisruptedPods[mapkey] = *mapvalue iNdEx = postIndex case 3: if wireType != 0 { @@ -3348,6 +3517,236 @@ func (m *PodSecurityPolicySpec) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 19: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AllowedUnsafeSysctls", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AllowedUnsafeSysctls = append(m.AllowedUnsafeSysctls, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 20: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ForbiddenSysctls", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ForbiddenSysctls = append(m.ForbiddenSysctls, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 21: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AllowedProcMountTypes", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AllowedProcMountTypes = append(m.AllowedProcMountTypes, k8s_io_api_core_v1.ProcMountType(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 22: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RunAsGroup", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.RunAsGroup == nil { + m.RunAsGroup = &RunAsGroupStrategyOptions{} + } + if err := m.RunAsGroup.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RunAsGroupStrategyOptions) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RunAsGroupStrategyOptions: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RunAsGroupStrategyOptions: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Rule", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Rule = RunAsGroupStrategy(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Ranges", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Ranges = append(m.Ranges, IDRange{}) + if err := m.Ranges[len(m.Ranges)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -3811,106 +4210,115 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 1605 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0x4f, 0x6f, 0x1b, 0xb9, - 0x15, 0xf7, 0x58, 0xb6, 0x65, 0xd3, 0xf2, 0x3f, 0xba, 0x76, 0x27, 0x46, 0x23, 0x35, 0x0a, 0x50, - 0xa4, 0x41, 0x33, 0x8a, 0x9d, 0xa4, 0x35, 0x9a, 0xb6, 0xa8, 0xc7, 0xf2, 0xbf, 0x20, 0xae, 0x55, - 0x2a, 0x09, 0xda, 0x22, 0x2d, 0x4a, 0x69, 0x68, 0x89, 0xf1, 0x68, 0x66, 0x4a, 0x72, 0x14, 0xe9, - 0xd6, 0x43, 0x0f, 0x3d, 0xf6, 0x0b, 0xf4, 0x13, 0x14, 0x3d, 0xed, 0x97, 0xf0, 0x02, 0x8b, 0x45, - 0x8e, 0xc1, 0x1e, 0x84, 0x8d, 0x16, 0xfb, 0x25, 0x72, 0x5a, 0x0c, 0xc5, 0x91, 0x34, 0x33, 0x92, - 0x1c, 0x07, 0x48, 0x6e, 0x1a, 0xbe, 0xdf, 0xef, 0xf7, 0x1e, 0x1f, 0xc9, 0xc7, 0x47, 0x01, 0xf3, - 0x62, 0x97, 0x1b, 0xd4, 0x2d, 0x5c, 0xf8, 0x15, 0xc2, 0x1c, 0x22, 0x08, 0x2f, 0x34, 0x89, 0x63, - 0xb9, 0xac, 0xa0, 0x0c, 0xd8, 0xa3, 0x05, 0xcf, 0xb5, 0x69, 0xb5, 0x5d, 0x68, 0x6e, 0x57, 0x88, - 0xc0, 0xdb, 0x85, 0x1a, 0x71, 0x08, 0xc3, 0x82, 0x58, 0x86, 0xc7, 0x5c, 0xe1, 0xc2, 0x1b, 0x3d, - 0xa8, 0x81, 0x3d, 0x6a, 0xf4, 0xa0, 0x86, 0x82, 0x6e, 0xdd, 0xab, 0x51, 0x51, 0xf7, 0x2b, 0x46, - 0xd5, 0x6d, 0x14, 0x6a, 0x6e, 0xcd, 0x2d, 0x48, 0x46, 0xc5, 0x3f, 0x97, 0x5f, 0xf2, 0x43, 0xfe, - 0xea, 0x29, 0x6d, 0xe5, 0x87, 0x9c, 0x56, 0x5d, 0x46, 0x0a, 0xcd, 0x84, 0xb7, 0xad, 0x87, 0x03, - 0x4c, 0x03, 0x57, 0xeb, 0xd4, 0x21, 0xac, 0x5d, 0xf0, 0x2e, 0x6a, 0xc1, 0x00, 0x2f, 0x34, 0x88, - 0xc0, 0xa3, 0x58, 0x85, 0x71, 0x2c, 0xe6, 0x3b, 0x82, 0x36, 0x48, 0x82, 0xf0, 0xcb, 0xab, 0x08, - 0xbc, 0x5a, 0x27, 0x0d, 0x9c, 0xe0, 0x3d, 0x18, 0xc7, 0xf3, 0x05, 0xb5, 0x0b, 0xd4, 0x11, 0x5c, - 0xb0, 0x38, 0x29, 0xff, 0x18, 0xac, 0xed, 0xd9, 0xb6, 0xfb, 0x9a, 0x58, 0x87, 0x36, 0x69, 0xbd, - 0x70, 0x6d, 0xbf, 0x41, 0xe0, 0xcf, 0xc0, 0x9c, 0xc5, 0x68, 0x93, 0x30, 0x5d, 0xfb, 0xa9, 0x76, - 0x67, 0xc1, 0x5c, 0xbe, 0xec, 0xe4, 0xa6, 0xba, 0x9d, 0xdc, 0x5c, 0x51, 0x8e, 0x22, 0x65, 0xcd, - 0x1f, 0x80, 0x15, 0x45, 0x3e, 0x76, 0xb9, 0x28, 0x61, 0x51, 0x87, 0x3b, 0x00, 0x78, 0x58, 0xd4, - 0x4b, 0x8c, 0x9c, 0xd3, 0x96, 0xa2, 0x43, 0x45, 0x07, 0xa5, 0xbe, 0x05, 0x0d, 0xa1, 0xf2, 0xdf, - 0x68, 0x60, 0xfe, 0xa0, 0x49, 0xab, 0x82, 0xba, 0x0e, 0xfc, 0x3b, 0x98, 0x0f, 0x32, 0x69, 0x61, - 0x81, 0x25, 0x7d, 0x71, 0xe7, 0xbe, 0x31, 0x58, 0xe5, 0xfe, 0xc4, 0x0c, 0xef, 0xa2, 0x16, 0x0c, - 0x70, 0x23, 0x40, 0x1b, 0xcd, 0x6d, 0xe3, 0xac, 0xf2, 0x8a, 0x54, 0xc5, 0x29, 0x11, 0x78, 0xe0, - 0x70, 0x30, 0x86, 0xfa, 0xaa, 0xd0, 0x06, 0x4b, 0x16, 0xb1, 0x89, 0x20, 0x67, 0x5e, 0xe0, 0x91, - 0xeb, 0xd3, 0xd2, 0xcd, 0x83, 0x0f, 0x73, 0x53, 0x1c, 0xa6, 0x9a, 0x6b, 0xdd, 0x4e, 0x6e, 0x29, - 0x32, 0x84, 0xa2, 0xe2, 0xf9, 0xff, 0x6a, 0x60, 0xf3, 0xb0, 0x7c, 0xc4, 0x5c, 0xdf, 0x2b, 0x8b, - 0x20, 0xf3, 0xb5, 0xb6, 0x32, 0xc1, 0x5f, 0x81, 0x19, 0xe6, 0xdb, 0x44, 0x65, 0xe9, 0xb6, 0x0a, - 0x7a, 0x06, 0xf9, 0x36, 0x79, 0xdf, 0xc9, 0xad, 0xc7, 0x58, 0xcf, 0xda, 0x1e, 0x41, 0x92, 0x00, - 0x9f, 0x80, 0x39, 0x86, 0x9d, 0x1a, 0x09, 0x42, 0x4f, 0xdd, 0x59, 0xdc, 0xc9, 0x1b, 0x63, 0xcf, - 0x81, 0x71, 0x52, 0x44, 0x01, 0x74, 0xb0, 0x86, 0xf2, 0x93, 0x23, 0xa5, 0x90, 0x3f, 0x05, 0x4b, - 0x72, 0xf1, 0x5c, 0x26, 0xa4, 0x05, 0xde, 0x04, 0xa9, 0x06, 0x75, 0x64, 0x50, 0xb3, 0xe6, 0xa2, - 0x62, 0xa5, 0x4e, 0xa9, 0x83, 0x82, 0x71, 0x69, 0xc6, 0x2d, 0x99, 0xb3, 0x61, 0x33, 0x6e, 0xa1, - 0x60, 0x3c, 0x7f, 0x04, 0xd2, 0xca, 0xe3, 0xb0, 0x50, 0x6a, 0xb2, 0x50, 0x6a, 0x84, 0xd0, 0xff, - 0xa6, 0xc1, 0x7a, 0xc9, 0xb5, 0x8a, 0x94, 0x33, 0x5f, 0xe6, 0xcb, 0xf4, 0xad, 0x1a, 0x11, 0x9f, - 0x61, 0x7f, 0x3c, 0x03, 0x33, 0xdc, 0x23, 0x55, 0xb5, 0x2d, 0x76, 0x26, 0xe4, 0x76, 0x44, 0x7c, - 0x65, 0x8f, 0x54, 0xcd, 0x4c, 0xb8, 0x94, 0xc1, 0x17, 0x92, 0x6a, 0xf0, 0x25, 0x98, 0xe3, 0x02, - 0x0b, 0x9f, 0xeb, 0x29, 0xa9, 0xfb, 0xf0, 0x9a, 0xba, 0x92, 0x3b, 0x58, 0xc5, 0xde, 0x37, 0x52, - 0x9a, 0xf9, 0xaf, 0x34, 0xf0, 0xe3, 0x11, 0xac, 0xa7, 0x94, 0x0b, 0xf8, 0x32, 0x91, 0x31, 0xe3, - 0xc3, 0x32, 0x16, 0xb0, 0x65, 0xbe, 0x56, 0x95, 0xd7, 0xf9, 0x70, 0x64, 0x28, 0x5b, 0x65, 0x30, - 0x4b, 0x05, 0x69, 0x84, 0x5b, 0xd1, 0xb8, 0xde, 0xb4, 0xcc, 0x25, 0x25, 0x3d, 0x7b, 0x12, 0x88, - 0xa0, 0x9e, 0x56, 0xfe, 0xeb, 0xe9, 0x91, 0xd3, 0x09, 0xd2, 0x09, 0xcf, 0x41, 0xa6, 0x41, 0x9d, - 0xbd, 0x26, 0xa6, 0x36, 0xae, 0xa8, 0xd3, 0x33, 0x69, 0x13, 0x04, 0xd5, 0xcf, 0xe8, 0x55, 0x3f, - 0xe3, 0xc4, 0x11, 0x67, 0xac, 0x2c, 0x18, 0x75, 0x6a, 0xe6, 0x6a, 0xb7, 0x93, 0xcb, 0x9c, 0x0e, - 0x29, 0xa1, 0x88, 0x2e, 0xfc, 0x2b, 0x98, 0xe7, 0xc4, 0x26, 0x55, 0xe1, 0xb2, 0xeb, 0x55, 0x88, - 0xa7, 0xb8, 0x42, 0xec, 0xb2, 0xa2, 0x9a, 0x99, 0x20, 0x6f, 0xe1, 0x17, 0xea, 0x4b, 0x42, 0x1b, - 0x2c, 0x37, 0x70, 0xeb, 0xb9, 0x83, 0xfb, 0x13, 0x49, 0x7d, 0xe4, 0x44, 0x60, 0xb7, 0x93, 0x5b, - 0x3e, 0x8d, 0x68, 0xa1, 0x98, 0x76, 0xfe, 0xfb, 0x19, 0x70, 0x63, 0xec, 0xae, 0x82, 0x4f, 0x00, - 0x74, 0x2b, 0x9c, 0xb0, 0x26, 0xb1, 0x8e, 0x7a, 0xf7, 0x03, 0x75, 0xc3, 0x83, 0xbb, 0xa5, 0x16, - 0x08, 0x9e, 0x25, 0x10, 0x68, 0x04, 0x0b, 0xfe, 0x4b, 0x03, 0x4b, 0x56, 0xcf, 0x0d, 0xb1, 0x4a, - 0xae, 0x15, 0x6e, 0x8c, 0xa3, 0x8f, 0xd9, 0xef, 0x46, 0x71, 0x58, 0xe9, 0xc0, 0x11, 0xac, 0x6d, - 0x6e, 0xa8, 0x80, 0x96, 0x22, 0x36, 0x14, 0x75, 0x0a, 0x4f, 0x01, 0xb4, 0xfa, 0x92, 0x5c, 0xdd, - 0x52, 0x32, 0xc5, 0xb3, 0xe6, 0x4d, 0xa5, 0xb0, 0x11, 0xf1, 0x1b, 0x82, 0xd0, 0x08, 0x22, 0xfc, - 0x1d, 0x58, 0xae, 0xfa, 0x8c, 0x11, 0x47, 0x1c, 0x13, 0x6c, 0x8b, 0x7a, 0x5b, 0x9f, 0x91, 0x52, - 0x9b, 0x4a, 0x6a, 0x79, 0x3f, 0x62, 0x45, 0x31, 0x74, 0xc0, 0xb7, 0x08, 0xa7, 0x8c, 0x58, 0x21, - 0x7f, 0x36, 0xca, 0x2f, 0x46, 0xac, 0x28, 0x86, 0x86, 0xbb, 0x20, 0x43, 0x5a, 0x1e, 0xa9, 0x86, - 0x39, 0x9d, 0x93, 0xec, 0x1f, 0x29, 0x76, 0xe6, 0x60, 0xc8, 0x86, 0x22, 0xc8, 0x2d, 0x1b, 0xc0, - 0x64, 0x12, 0xe1, 0x2a, 0x48, 0x5d, 0x90, 0x76, 0xef, 0xe6, 0x41, 0xc1, 0x4f, 0xf8, 0x7b, 0x30, - 0xdb, 0xc4, 0xb6, 0x4f, 0xd4, 0x5e, 0xbf, 0xfb, 0x61, 0x7b, 0xfd, 0x19, 0x6d, 0x10, 0xd4, 0x23, - 0xfe, 0x7a, 0x7a, 0x57, 0xcb, 0x7f, 0xa9, 0x81, 0xb5, 0x92, 0x6b, 0x95, 0x49, 0xd5, 0x67, 0x54, - 0xb4, 0x4b, 0x72, 0x9d, 0x3f, 0x43, 0xcd, 0x46, 0x91, 0x9a, 0x7d, 0x7f, 0xf2, 0x5e, 0x8b, 0x46, - 0x37, 0xae, 0x62, 0xe7, 0x2f, 0x35, 0xb0, 0x91, 0x40, 0x7f, 0x86, 0x8a, 0xfa, 0xc7, 0x68, 0x45, - 0xfd, 0xc5, 0x75, 0x26, 0x33, 0xa6, 0x9e, 0xbe, 0xcf, 0x8c, 0x98, 0x8a, 0xac, 0xa6, 0x41, 0xbf, - 0xc6, 0x68, 0x93, 0xda, 0xa4, 0x46, 0x2c, 0x39, 0x99, 0xf9, 0xa1, 0x7e, 0xad, 0x6f, 0x41, 0x43, - 0x28, 0xc8, 0xc1, 0xa6, 0x45, 0xce, 0xb1, 0x6f, 0x8b, 0x3d, 0xcb, 0xda, 0xc7, 0x1e, 0xae, 0x50, - 0x9b, 0x0a, 0xaa, 0xda, 0x91, 0x05, 0xf3, 0x71, 0xb7, 0x93, 0xdb, 0x2c, 0x8e, 0x44, 0xbc, 0xef, - 0xe4, 0x6e, 0x26, 0x3b, 0x6d, 0xa3, 0x0f, 0x69, 0xa3, 0x31, 0xd2, 0xb0, 0x0d, 0x74, 0x46, 0xfe, - 0xe1, 0x07, 0x87, 0xa2, 0xc8, 0x5c, 0x2f, 0xe2, 0x36, 0x25, 0xdd, 0xfe, 0xb6, 0xdb, 0xc9, 0xe9, - 0x68, 0x0c, 0xe6, 0x6a, 0xc7, 0x63, 0xe5, 0xe1, 0x2b, 0xb0, 0x8e, 0x7b, 0x75, 0x20, 0xe2, 0x75, - 0x46, 0x7a, 0xdd, 0xed, 0x76, 0x72, 0xeb, 0x7b, 0x49, 0xf3, 0xd5, 0x0e, 0x47, 0x89, 0xc2, 0x02, - 0x48, 0x37, 0x65, 0x13, 0xce, 0xf5, 0x59, 0xa9, 0xbf, 0xd1, 0xed, 0xe4, 0xd2, 0xbd, 0xbe, 0x3c, - 0xd0, 0x9c, 0x3b, 0x2c, 0xcb, 0x46, 0x30, 0x44, 0xc1, 0x47, 0x60, 0xb1, 0xee, 0x72, 0xf1, 0x07, - 0x22, 0x5e, 0xbb, 0xec, 0x42, 0x16, 0x86, 0x79, 0x73, 0x5d, 0xad, 0xe0, 0xe2, 0xf1, 0xc0, 0x84, - 0x86, 0x71, 0xf0, 0xcf, 0x60, 0xa1, 0xae, 0xda, 0x3e, 0xae, 0xa7, 0xe5, 0x46, 0xbb, 0x33, 0x61, - 0xa3, 0x45, 0x5a, 0x44, 0x73, 0x4d, 0xc9, 0x2f, 0x84, 0xc3, 0x1c, 0x0d, 0xd4, 0xe0, 0xcf, 0x41, - 0x5a, 0x7e, 0x9c, 0x14, 0xf5, 0x79, 0x19, 0xcd, 0x8a, 0x82, 0xa7, 0x8f, 0x7b, 0xc3, 0x28, 0xb4, - 0x87, 0xd0, 0x93, 0xd2, 0xbe, 0xbe, 0x90, 0x84, 0x9e, 0x94, 0xf6, 0x51, 0x68, 0x87, 0x2f, 0x41, - 0x9a, 0x93, 0xa7, 0xd4, 0xf1, 0x5b, 0x3a, 0x90, 0x47, 0x6e, 0x7b, 0x42, 0xb8, 0xe5, 0x03, 0x89, - 0x8c, 0x35, 0xdc, 0x03, 0x75, 0x65, 0x47, 0xa1, 0x24, 0xb4, 0xc0, 0x02, 0xf3, 0x9d, 0x3d, 0xfe, - 0x9c, 0x13, 0xa6, 0x2f, 0x26, 0x6e, 0xfb, 0xb8, 0x3e, 0x0a, 0xb1, 0x71, 0x0f, 0xfd, 0xcc, 0xf4, - 0x11, 0x68, 0x20, 0x0c, 0xff, 0xad, 0x01, 0xc8, 0x7d, 0xcf, 0xb3, 0x49, 0x83, 0x38, 0x02, 0xdb, - 0xb2, 0xbf, 0xe7, 0x7a, 0x46, 0xfa, 0xfb, 0xcd, 0xa4, 0xf9, 0x24, 0x48, 0x71, 0xc7, 0xfd, 0x6b, - 0x3a, 0x09, 0x45, 0x23, 0x7c, 0x06, 0xe9, 0x3c, 0xe7, 0xf2, 0xb7, 0xbe, 0x74, 0x65, 0x3a, 0x47, - 0xbf, 0x5f, 0x06, 0xe9, 0x54, 0x76, 0x14, 0x4a, 0xc2, 0x17, 0x60, 0x93, 0x11, 0x6c, 0x9d, 0x39, - 0x76, 0x1b, 0xb9, 0xae, 0x38, 0xa4, 0x36, 0xe1, 0x6d, 0x2e, 0x48, 0x43, 0x5f, 0x96, 0xcb, 0x9c, - 0x55, 0xcc, 0x4d, 0x34, 0x12, 0x85, 0xc6, 0xb0, 0x61, 0x03, 0xe4, 0xc2, 0xf2, 0x10, 0x9c, 0x9d, - 0x7e, 0x7d, 0x3a, 0xe0, 0x55, 0x6c, 0xf7, 0xba, 0x96, 0x15, 0xe9, 0xe0, 0x76, 0xb7, 0x93, 0xcb, - 0x15, 0x27, 0x43, 0xd1, 0x55, 0x5a, 0xf0, 0x4f, 0x40, 0xc7, 0xe3, 0xfc, 0xac, 0x4a, 0x3f, 0x3f, - 0x09, 0x6a, 0xce, 0x58, 0x07, 0x63, 0xd9, 0xd0, 0x03, 0xab, 0x38, 0xfa, 0x72, 0xe6, 0xfa, 0x9a, - 0x3c, 0x85, 0x77, 0x27, 0xac, 0x43, 0xec, 0xb1, 0x6d, 0xea, 0x2a, 0x8d, 0xab, 0x31, 0x03, 0x47, - 0x09, 0x75, 0xd8, 0x02, 0x10, 0xc7, 0x1f, 0xfa, 0x5c, 0x87, 0x57, 0x5e, 0x31, 0x89, 0x7f, 0x07, - 0x06, 0x5b, 0x2d, 0x61, 0xe2, 0x68, 0x84, 0x8f, 0xe0, 0x05, 0xac, 0x8f, 0x3b, 0x30, 0xf0, 0x51, - 0xe4, 0x0d, 0x7c, 0x2b, 0xf6, 0x06, 0x5e, 0x4b, 0xf0, 0x3e, 0xc1, 0x0b, 0xf8, 0xff, 0x1a, 0xd8, - 0x1c, 0x5d, 0x30, 0xe0, 0x83, 0x48, 0x74, 0xb9, 0x58, 0x74, 0x2b, 0x31, 0x96, 0x8a, 0xed, 0x6f, - 0x60, 0x59, 0x95, 0x95, 0xe8, 0x1f, 0x0c, 0x91, 0x18, 0x83, 0xfb, 0x20, 0xe8, 0x08, 0x94, 0x44, - 0x78, 0xa4, 0x64, 0x2f, 0x1f, 0x1d, 0x43, 0x31, 0xb5, 0xfc, 0x17, 0x1a, 0xb8, 0x75, 0x65, 0x41, - 0x80, 0x66, 0x24, 0x74, 0x23, 0x16, 0x7a, 0x76, 0xbc, 0xc0, 0xa7, 0xf9, 0x9f, 0xc1, 0xbc, 0x77, - 0xf9, 0x2e, 0x3b, 0xf5, 0xe6, 0x5d, 0x76, 0xea, 0xed, 0xbb, 0xec, 0xd4, 0x3f, 0xbb, 0x59, 0xed, - 0xb2, 0x9b, 0xd5, 0xde, 0x74, 0xb3, 0xda, 0xdb, 0x6e, 0x56, 0xfb, 0xb6, 0x9b, 0xd5, 0xfe, 0xf3, - 0x5d, 0x76, 0xea, 0x2f, 0x69, 0x25, 0xf7, 0x43, 0x00, 0x00, 0x00, 0xff, 0xff, 0xc3, 0x7d, 0x0b, - 0x1d, 0x1e, 0x14, 0x00, 0x00, + // 1756 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0xdd, 0x8e, 0xdb, 0xc6, + 0x15, 0x5e, 0x5a, 0xfb, 0xa3, 0x9d, 0xfd, 0x9f, 0xfd, 0x29, 0xbd, 0xa8, 0x45, 0x47, 0x01, 0x0a, + 0x37, 0x48, 0xa8, 0x78, 0x9d, 0xa4, 0x46, 0xd3, 0x16, 0x59, 0x5a, 0xbb, 0xf6, 0x06, 0xde, 0xae, + 0x3a, 0xb2, 0x83, 0xb6, 0x70, 0x8b, 0x8e, 0xc4, 0x59, 0xed, 0x64, 0x29, 0x92, 0x9d, 0x19, 0x2a, + 0xab, 0xbb, 0x5e, 0xf4, 0xa2, 0x97, 0x7d, 0x81, 0xa0, 0x0f, 0x50, 0xf4, 0xaa, 0x2f, 0xe1, 0x02, + 0x45, 0x91, 0xcb, 0xa0, 0x17, 0x42, 0xad, 0x22, 0x2f, 0xe1, 0xab, 0x80, 0xa3, 0x21, 0x25, 0xfe, + 0x49, 0x5e, 0x03, 0xf6, 0x1d, 0x39, 0xe7, 0xfb, 0xbe, 0x73, 0xe6, 0xcc, 0x99, 0x33, 0x43, 0x02, + 0xeb, 0xf2, 0x3e, 0x37, 0xa9, 0x57, 0xbb, 0x0c, 0x5a, 0x84, 0xb9, 0x44, 0x10, 0x5e, 0xeb, 0x11, + 0xd7, 0xf6, 0x58, 0x4d, 0x19, 0xb0, 0x4f, 0x6b, 0xbe, 0xe7, 0xd0, 0x76, 0xbf, 0xd6, 0xbb, 0xdb, + 0x22, 0x02, 0xdf, 0xad, 0x75, 0x88, 0x4b, 0x18, 0x16, 0xc4, 0x36, 0x7d, 0xe6, 0x09, 0x0f, 0xde, + 0x1c, 0x41, 0x4d, 0xec, 0x53, 0x73, 0x04, 0x35, 0x15, 0x74, 0xff, 0x83, 0x0e, 0x15, 0x17, 0x41, + 0xcb, 0x6c, 0x7b, 0xdd, 0x5a, 0xc7, 0xeb, 0x78, 0x35, 0xc9, 0x68, 0x05, 0xe7, 0xf2, 0x4d, 0xbe, + 0xc8, 0xa7, 0x91, 0xd2, 0x7e, 0x75, 0xc2, 0x69, 0xdb, 0x63, 0xa4, 0xd6, 0xcb, 0x78, 0xdb, 0xff, + 0x68, 0x8c, 0xe9, 0xe2, 0xf6, 0x05, 0x75, 0x09, 0xeb, 0xd7, 0xfc, 0xcb, 0x4e, 0x38, 0xc0, 0x6b, + 0x5d, 0x22, 0x70, 0x1e, 0xab, 0x56, 0xc4, 0x62, 0x81, 0x2b, 0x68, 0x97, 0x64, 0x08, 0x9f, 0xcc, + 0x22, 0xf0, 0xf6, 0x05, 0xe9, 0xe2, 0x0c, 0xef, 0x5e, 0x11, 0x2f, 0x10, 0xd4, 0xa9, 0x51, 0x57, + 0x70, 0xc1, 0xd2, 0xa4, 0xea, 0xa7, 0x60, 0xeb, 0xd0, 0x71, 0xbc, 0xaf, 0x88, 0x7d, 0xec, 0x90, + 0xab, 0x2f, 0x3c, 0x27, 0xe8, 0x12, 0xf8, 0x23, 0xb0, 0x68, 0x33, 0xda, 0x23, 0x4c, 0xd7, 0x6e, + 0x6b, 0x77, 0x96, 0xad, 0xf5, 0xe7, 0x03, 0x63, 0x6e, 0x38, 0x30, 0x16, 0xeb, 0x72, 0x14, 0x29, + 0x6b, 0x95, 0x83, 0x0d, 0x45, 0x7e, 0xe4, 0x71, 0xd1, 0xc0, 0xe2, 0x02, 0x1e, 0x00, 0xe0, 0x63, + 0x71, 0xd1, 0x60, 0xe4, 0x9c, 0x5e, 0x29, 0x3a, 0x54, 0x74, 0xd0, 0x88, 0x2d, 0x68, 0x02, 0x05, + 0xdf, 0x07, 0x65, 0x46, 0xb0, 0x7d, 0xe6, 0x3a, 0x7d, 0xfd, 0xc6, 0x6d, 0xed, 0x4e, 0xd9, 0xda, + 0x54, 0x8c, 0x32, 0x52, 0xe3, 0x28, 0x46, 0x54, 0xff, 0xab, 0x81, 0xf2, 0x51, 0x8f, 0xb6, 0x05, + 0xf5, 0x5c, 0xf8, 0x07, 0x50, 0x0e, 0xf3, 0x6e, 0x63, 0x81, 0xa5, 0xb3, 0x95, 0x83, 0x0f, 0xcd, + 0x71, 0x4d, 0xc4, 0x69, 0x30, 0xfd, 0xcb, 0x4e, 0x38, 0xc0, 0xcd, 0x10, 0x6d, 0xf6, 0xee, 0x9a, + 0x67, 0xad, 0x2f, 0x49, 0x5b, 0x9c, 0x12, 0x81, 0xc7, 0xe1, 0x8d, 0xc7, 0x50, 0xac, 0x0a, 0x1d, + 0xb0, 0x66, 0x13, 0x87, 0x08, 0x72, 0xe6, 0x87, 0x1e, 0xb9, 0x8c, 0x70, 0xe5, 0xe0, 0xde, 0xab, + 0xb9, 0xa9, 0x4f, 0x52, 0xad, 0xad, 0xe1, 0xc0, 0x58, 0x4b, 0x0c, 0xa1, 0xa4, 0x78, 0xf5, 0x6b, + 0x0d, 0xec, 0x1d, 0x37, 0x1f, 0x32, 0x2f, 0xf0, 0x9b, 0x22, 0x5c, 0xa7, 0x4e, 0x5f, 0x99, 0xe0, + 0x4f, 0xc0, 0x3c, 0x0b, 0x1c, 0xa2, 0x72, 0xfa, 0xae, 0x0a, 0x7a, 0x1e, 0x05, 0x0e, 0x79, 0x39, + 0x30, 0xb6, 0x53, 0xac, 0x27, 0x7d, 0x9f, 0x20, 0x49, 0x80, 0x9f, 0x83, 0x45, 0x86, 0xdd, 0x0e, + 0x09, 0x43, 0x2f, 0xdd, 0x59, 0x39, 0xa8, 0x9a, 0x85, 0xbb, 0xc6, 0x3c, 0xa9, 0xa3, 0x10, 0x3a, + 0x5e, 0x71, 0xf9, 0xca, 0x91, 0x52, 0xa8, 0x9e, 0x82, 0x35, 0xb9, 0xd4, 0x1e, 0x13, 0xd2, 0x02, + 0x6f, 0x81, 0x52, 0x97, 0xba, 0x32, 0xa8, 0x05, 0x6b, 0x45, 0xb1, 0x4a, 0xa7, 0xd4, 0x45, 0xe1, + 0xb8, 0x34, 0xe3, 0x2b, 0x99, 0xb3, 0x49, 0x33, 0xbe, 0x42, 0xe1, 0x78, 0xf5, 0x21, 0x58, 0x52, + 0x1e, 0x27, 0x85, 0x4a, 0xd3, 0x85, 0x4a, 0x39, 0x42, 0x7f, 0xbf, 0x01, 0xb6, 0x1b, 0x9e, 0x5d, + 0xa7, 0x9c, 0x05, 0x32, 0x5f, 0x56, 0x60, 0x77, 0x88, 0x78, 0x0b, 0xf5, 0xf1, 0x04, 0xcc, 0x73, + 0x9f, 0xb4, 0x55, 0x59, 0x1c, 0x4c, 0xc9, 0x6d, 0x4e, 0x7c, 0x4d, 0x9f, 0xb4, 0xad, 0xd5, 0x68, + 0x29, 0xc3, 0x37, 0x24, 0xd5, 0xe0, 0x33, 0xb0, 0xc8, 0x05, 0x16, 0x01, 0xd7, 0x4b, 0x52, 0xf7, + 0xa3, 0x6b, 0xea, 0x4a, 0xee, 0x78, 0x15, 0x47, 0xef, 0x48, 0x69, 0x56, 0xff, 0xad, 0x81, 0x1f, + 0xe4, 0xb0, 0x1e, 0x53, 0x2e, 0xe0, 0xb3, 0x4c, 0xc6, 0xcc, 0x57, 0xcb, 0x58, 0xc8, 0x96, 0xf9, + 0x8a, 0x37, 0x6f, 0x34, 0x32, 0x91, 0xad, 0x26, 0x58, 0xa0, 0x82, 0x74, 0xa3, 0x52, 0x34, 0xaf, + 0x37, 0x2d, 0x6b, 0x4d, 0x49, 0x2f, 0x9c, 0x84, 0x22, 0x68, 0xa4, 0x55, 0xfd, 0xcf, 0x8d, 0xdc, + 0xe9, 0x84, 0xe9, 0x84, 0xe7, 0x60, 0xb5, 0x4b, 0xdd, 0xc3, 0x1e, 0xa6, 0x0e, 0x6e, 0xa9, 0xdd, + 0x33, 0xad, 0x08, 0xc2, 0x5e, 0x69, 0x8e, 0x7a, 0xa5, 0x79, 0xe2, 0x8a, 0x33, 0xd6, 0x14, 0x8c, + 0xba, 0x1d, 0x6b, 0x73, 0x38, 0x30, 0x56, 0x4f, 0x27, 0x94, 0x50, 0x42, 0x17, 0xfe, 0x0e, 0x94, + 0x39, 0x71, 0x48, 0x5b, 0x78, 0xec, 0x7a, 0x1d, 0xe2, 0x31, 0x6e, 0x11, 0xa7, 0xa9, 0xa8, 0xd6, + 0x6a, 0x98, 0xb7, 0xe8, 0x0d, 0xc5, 0x92, 0xd0, 0x01, 0xeb, 0x5d, 0x7c, 0xf5, 0xd4, 0xc5, 0xf1, + 0x44, 0x4a, 0xaf, 0x39, 0x11, 0x38, 0x1c, 0x18, 0xeb, 0xa7, 0x09, 0x2d, 0x94, 0xd2, 0xae, 0x7e, + 0x37, 0x0f, 0x6e, 0x16, 0x56, 0x15, 0xfc, 0x1c, 0x40, 0xaf, 0xc5, 0x09, 0xeb, 0x11, 0xfb, 0xe1, + 0xe8, 0x34, 0xa1, 0x5e, 0xb4, 0x71, 0xf7, 0xd5, 0x02, 0xc1, 0xb3, 0x0c, 0x02, 0xe5, 0xb0, 0xe0, + 0x9f, 0x35, 0xb0, 0x66, 0x8f, 0xdc, 0x10, 0xbb, 0xe1, 0xd9, 0x51, 0x61, 0x3c, 0x7c, 0x9d, 0x7a, + 0x37, 0xeb, 0x93, 0x4a, 0x47, 0xae, 0x60, 0x7d, 0x6b, 0x57, 0x05, 0xb4, 0x96, 0xb0, 0xa1, 0xa4, + 0x53, 0x78, 0x0a, 0xa0, 0x1d, 0x4b, 0x72, 0x75, 0xa6, 0xc9, 0x14, 0x2f, 0x58, 0xb7, 0x94, 0xc2, + 0x6e, 0xc2, 0x6f, 0x04, 0x42, 0x39, 0x44, 0xf8, 0x0b, 0xb0, 0xde, 0x0e, 0x18, 0x23, 0xae, 0x78, + 0x44, 0xb0, 0x23, 0x2e, 0xfa, 0xfa, 0xbc, 0x94, 0xda, 0x53, 0x52, 0xeb, 0x0f, 0x12, 0x56, 0x94, + 0x42, 0x87, 0x7c, 0x9b, 0x70, 0xca, 0x88, 0x1d, 0xf1, 0x17, 0x92, 0xfc, 0x7a, 0xc2, 0x8a, 0x52, + 0x68, 0x78, 0x1f, 0xac, 0x92, 0x2b, 0x9f, 0xb4, 0xa3, 0x9c, 0x2e, 0x4a, 0xf6, 0x8e, 0x62, 0xaf, + 0x1e, 0x4d, 0xd8, 0x50, 0x02, 0xb9, 0xef, 0x00, 0x98, 0x4d, 0x22, 0xdc, 0x04, 0xa5, 0x4b, 0xd2, + 0x1f, 0x9d, 0x3c, 0x28, 0x7c, 0x84, 0x9f, 0x81, 0x85, 0x1e, 0x76, 0x02, 0xa2, 0x6a, 0xfd, 0xbd, + 0x57, 0xab, 0xf5, 0x27, 0xb4, 0x4b, 0xd0, 0x88, 0xf8, 0xd3, 0x1b, 0xf7, 0xb5, 0xea, 0xbf, 0x34, + 0xb0, 0xd5, 0xf0, 0xec, 0x26, 0x69, 0x07, 0x8c, 0x8a, 0x7e, 0x43, 0xae, 0xf3, 0x5b, 0xe8, 0xd9, + 0x28, 0xd1, 0xb3, 0x3f, 0x9c, 0x5e, 0x6b, 0xc9, 0xe8, 0x8a, 0x3a, 0x76, 0xf5, 0xb9, 0x06, 0x76, + 0x33, 0xe8, 0xb7, 0xd0, 0x51, 0x7f, 0x95, 0xec, 0xa8, 0xef, 0x5f, 0x67, 0x32, 0x05, 0xfd, 0xf4, + 0xbb, 0x8d, 0x9c, 0xa9, 0xc8, 0x6e, 0x1a, 0xde, 0xee, 0x18, 0xed, 0x51, 0x87, 0x74, 0x88, 0x2d, + 0x27, 0x53, 0x9e, 0xb8, 0xdd, 0xc5, 0x16, 0x34, 0x81, 0x82, 0x1c, 0xec, 0xd9, 0xe4, 0x1c, 0x07, + 0x8e, 0x38, 0xb4, 0xed, 0x07, 0xd8, 0xc7, 0x2d, 0xea, 0x50, 0x41, 0xd5, 0x75, 0x64, 0xd9, 0xfa, + 0x74, 0x38, 0x30, 0xf6, 0xea, 0xb9, 0x88, 0x97, 0x03, 0xe3, 0x56, 0xf6, 0x5e, 0x6e, 0xc6, 0x90, + 0x3e, 0x2a, 0x90, 0x86, 0x7d, 0xa0, 0x33, 0xf2, 0xc7, 0x20, 0xdc, 0x14, 0x75, 0xe6, 0xf9, 0x09, + 0xb7, 0x25, 0xe9, 0xf6, 0xe7, 0xc3, 0x81, 0xa1, 0xa3, 0x02, 0xcc, 0x6c, 0xc7, 0x85, 0xf2, 0xf0, + 0x4b, 0xb0, 0x8d, 0x47, 0x7d, 0x20, 0xe1, 0x75, 0x5e, 0x7a, 0xbd, 0x3f, 0x1c, 0x18, 0xdb, 0x87, + 0x59, 0xf3, 0x6c, 0x87, 0x79, 0xa2, 0xb0, 0x06, 0x96, 0x7a, 0xf2, 0xca, 0xce, 0xf5, 0x05, 0xa9, + 0xbf, 0x3b, 0x1c, 0x18, 0x4b, 0xa3, 0x5b, 0x7c, 0xa8, 0xb9, 0x78, 0xdc, 0x94, 0x17, 0xc1, 0x08, + 0x05, 0x3f, 0x06, 0x2b, 0x17, 0x1e, 0x17, 0xbf, 0x24, 0xe2, 0x2b, 0x8f, 0x5d, 0xca, 0xc6, 0x50, + 0xb6, 0xb6, 0xd5, 0x0a, 0xae, 0x3c, 0x1a, 0x9b, 0xd0, 0x24, 0x0e, 0xfe, 0x06, 0x2c, 0x5f, 0xa8, + 0x6b, 0x1f, 0xd7, 0x97, 0x64, 0xa1, 0xdd, 0x99, 0x52, 0x68, 0x89, 0x2b, 0xa2, 0xb5, 0xa5, 0xe4, + 0x97, 0xa3, 0x61, 0x8e, 0xc6, 0x6a, 0xf0, 0xc7, 0x60, 0x49, 0xbe, 0x9c, 0xd4, 0xf5, 0xb2, 0x8c, + 0x66, 0x43, 0xc1, 0x97, 0x1e, 0x8d, 0x86, 0x51, 0x64, 0x8f, 0xa0, 0x27, 0x8d, 0x07, 0xfa, 0x72, + 0x16, 0x7a, 0xd2, 0x78, 0x80, 0x22, 0x3b, 0x7c, 0x06, 0x96, 0x38, 0x79, 0x4c, 0xdd, 0xe0, 0x4a, + 0x07, 0x72, 0xcb, 0xdd, 0x9d, 0x12, 0x6e, 0xf3, 0x48, 0x22, 0x53, 0x17, 0xee, 0xb1, 0xba, 0xb2, + 0xa3, 0x48, 0x12, 0xda, 0x60, 0x99, 0x05, 0xee, 0x21, 0x7f, 0xca, 0x09, 0xd3, 0x57, 0x32, 0xa7, + 0x7d, 0x5a, 0x1f, 0x45, 0xd8, 0xb4, 0x87, 0x38, 0x33, 0x31, 0x02, 0x8d, 0x85, 0xe1, 0x5f, 0x34, + 0x00, 0x79, 0xe0, 0xfb, 0x0e, 0xe9, 0x12, 0x57, 0x60, 0x47, 0xde, 0xef, 0xb9, 0xbe, 0x2a, 0xfd, + 0xfd, 0x6c, 0xda, 0x7c, 0x32, 0xa4, 0xb4, 0xe3, 0xf8, 0x98, 0xce, 0x42, 0x51, 0x8e, 0xcf, 0x30, + 0x9d, 0xe7, 0x5c, 0x3e, 0xeb, 0x6b, 0x33, 0xd3, 0x99, 0xff, 0xfd, 0x32, 0x4e, 0xa7, 0xb2, 0xa3, + 0x48, 0x12, 0x7e, 0x01, 0xf6, 0xa2, 0xaf, 0x3b, 0xe4, 0x79, 0xe2, 0x98, 0x3a, 0x84, 0xf7, 0xb9, + 0x20, 0x5d, 0x7d, 0x5d, 0x2e, 0x73, 0x45, 0x31, 0xf7, 0x50, 0x2e, 0x0a, 0x15, 0xb0, 0x61, 0x17, + 0x18, 0x51, 0x7b, 0x08, 0xf7, 0x4e, 0xdc, 0x9f, 0x8e, 0x78, 0x1b, 0x3b, 0xa3, 0x5b, 0xcb, 0x86, + 0x74, 0xf0, 0xee, 0x70, 0x60, 0x18, 0xf5, 0xe9, 0x50, 0x34, 0x4b, 0x0b, 0xfe, 0x1a, 0xe8, 0xb8, + 0xc8, 0xcf, 0xa6, 0xf4, 0xf3, 0xc3, 0xb0, 0xe7, 0x14, 0x3a, 0x28, 0x64, 0x43, 0x1f, 0x6c, 0xe2, + 0xe4, 0x77, 0x36, 0xd7, 0xb7, 0xe4, 0x2e, 0x7c, 0x6f, 0xca, 0x3a, 0xa4, 0x3e, 0xcd, 0x2d, 0x5d, + 0xa5, 0x71, 0x33, 0x65, 0xe0, 0x28, 0xa3, 0x0e, 0xaf, 0x00, 0xc4, 0xe9, 0xdf, 0x02, 0x5c, 0x87, + 0x33, 0x8f, 0x98, 0xcc, 0xbf, 0x84, 0x71, 0xa9, 0x65, 0x4c, 0x1c, 0xe5, 0xf8, 0x80, 0x8f, 0xc1, + 0x8e, 0x1a, 0x7d, 0xea, 0x72, 0x7c, 0x4e, 0x9a, 0x7d, 0xde, 0x16, 0x0e, 0xd7, 0xb7, 0x65, 0x7f, + 0xd3, 0x87, 0x03, 0x63, 0xe7, 0x30, 0xc7, 0x8e, 0x72, 0x59, 0xf0, 0x33, 0xb0, 0x79, 0xee, 0xb1, + 0x16, 0xb5, 0x6d, 0xe2, 0x46, 0x4a, 0x3b, 0x52, 0x69, 0x27, 0xcc, 0xc4, 0x71, 0xca, 0x86, 0x32, + 0x68, 0xc8, 0xc1, 0xae, 0x52, 0x6e, 0x30, 0xaf, 0x7d, 0xea, 0x05, 0xae, 0x08, 0x5b, 0x2a, 0xd7, + 0x77, 0xe3, 0x63, 0x64, 0xf7, 0x30, 0x0f, 0xf0, 0x72, 0x60, 0xdc, 0xce, 0x69, 0xe9, 0x09, 0x10, + 0xca, 0xd7, 0x86, 0x36, 0x00, 0xb2, 0x0f, 0x8c, 0xb6, 0xdc, 0xde, 0xcc, 0x4f, 0x40, 0x14, 0x83, + 0xd3, 0xbb, 0x6e, 0x3d, 0x3c, 0x99, 0xc7, 0x66, 0x34, 0xa1, 0x5b, 0xfd, 0x9b, 0x06, 0x6e, 0x16, + 0x32, 0xe1, 0x27, 0x89, 0xff, 0x0d, 0xd5, 0xd4, 0xff, 0x06, 0x98, 0x25, 0xbe, 0x81, 0xdf, 0x0d, + 0x5f, 0x6b, 0x40, 0x2f, 0xea, 0x9e, 0xf0, 0xe3, 0x44, 0x80, 0xef, 0xa4, 0x02, 0xdc, 0xca, 0xf0, + 0xde, 0x40, 0x7c, 0xff, 0xd0, 0xc0, 0x5e, 0xfe, 0xe9, 0x01, 0xef, 0x25, 0xa2, 0x33, 0x52, 0xd1, + 0x6d, 0xa4, 0x58, 0x2a, 0xb6, 0xdf, 0x83, 0x75, 0x75, 0xc6, 0x24, 0xff, 0x36, 0x25, 0x62, 0x0c, + 0x2b, 0x29, 0xbc, 0x1e, 0x2a, 0x89, 0x68, 0xa5, 0xe5, 0x87, 0x5d, 0x72, 0x0c, 0xa5, 0xd4, 0xaa, + 0xff, 0xd4, 0xc0, 0x3b, 0x33, 0x4f, 0x07, 0x68, 0x25, 0x42, 0x37, 0x53, 0xa1, 0x57, 0x8a, 0x05, + 0xde, 0xcc, 0x4f, 0x27, 0xeb, 0x83, 0xe7, 0x2f, 0x2a, 0x73, 0xdf, 0xbc, 0xa8, 0xcc, 0x7d, 0xfb, + 0xa2, 0x32, 0xf7, 0xa7, 0x61, 0x45, 0x7b, 0x3e, 0xac, 0x68, 0xdf, 0x0c, 0x2b, 0xda, 0xb7, 0xc3, + 0x8a, 0xf6, 0xbf, 0x61, 0x45, 0xfb, 0xeb, 0xff, 0x2b, 0x73, 0xbf, 0x5d, 0x52, 0x72, 0xdf, 0x07, + 0x00, 0x00, 0xff, 0xff, 0x15, 0x2e, 0xf4, 0x72, 0x59, 0x16, 0x00, 0x00, } diff --git a/vendor/k8s.io/api/policy/v1beta1/generated.proto b/vendor/k8s.io/api/policy/v1beta1/generated.proto index 514868a9f..e9df3c16f 100644 --- a/vendor/k8s.io/api/policy/v1beta1/generated.proto +++ b/vendor/k8s.io/api/policy/v1beta1/generated.proto @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -32,21 +32,25 @@ option go_package = "v1beta1"; // AllowedFlexVolume represents a single Flexvolume that is allowed to be used. message AllowedFlexVolume { - // Driver is the name of the Flexvolume driver. + // driver is the name of the Flexvolume driver. optional string driver = 1; } -// defines the host volume conditions that will be enabled by a policy +// AllowedHostPath defines the host volume conditions that will be enabled by a policy // for pods to use. It requires the path prefix to be defined. message AllowedHostPath { - // is the path prefix that the host volume must match. + // pathPrefix is the path prefix that the host volume must match. // It does not support `*`. // Trailing slashes are trimmed when validating the path prefix with a host path. - // + // // Examples: // `/foo` would allow `/foo`, `/foo/` and `/foo/bar` // `/foo` would not allow `/food` or `/etc/foo` optional string pathPrefix = 1; + + // when set to true, will allow host volumes matching the pathPrefix only if all volume mounts are readOnly. + // +optional + optional bool readOnly = 2; } // Eviction evicts a pod from its node subject to certain policies and safety constraints. @@ -54,25 +58,27 @@ message AllowedHostPath { // created by POSTing to .../pods//evictions. message Eviction { // ObjectMeta describes the pod that is being evicted. + // +optional optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; // DeleteOptions may be provided + // +optional optional k8s.io.apimachinery.pkg.apis.meta.v1.DeleteOptions deleteOptions = 2; } // FSGroupStrategyOptions defines the strategy type and options used to create the strategy. message FSGroupStrategyOptions { - // Rule is the strategy that will dictate what FSGroup is used in the SecurityContext. + // rule is the strategy that will dictate what FSGroup is used in the SecurityContext. // +optional optional string rule = 1; - // Ranges are the allowed ranges of fs groups. If you would like to force a single - // fs group then supply a single range with the same start and end. + // ranges are the allowed ranges of fs groups. If you would like to force a single + // fs group then supply a single range with the same start and end. Required for MustRunAs. // +optional repeated IDRange ranges = 2; } -// Host Port Range defines a range of host ports that will be enabled by a policy +// HostPortRange defines a range of host ports that will be enabled by a policy // for pods to use. It requires both the start and end to be defined. message HostPortRange { // min is the start of the range, inclusive. @@ -82,28 +88,32 @@ message HostPortRange { optional int32 max = 2; } -// ID Range provides a min/max of an allowed range of IDs. +// IDRange provides a min/max of an allowed range of IDs. message IDRange { - // Min is the start of the range, inclusive. + // min is the start of the range, inclusive. optional int64 min = 1; - // Max is the end of the range, inclusive. + // max is the end of the range, inclusive. optional int64 max = 2; } // PodDisruptionBudget is an object to define the max disruption that can be caused to a collection of pods message PodDisruptionBudget { + // +optional optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; // Specification of the desired behavior of the PodDisruptionBudget. + // +optional optional PodDisruptionBudgetSpec spec = 2; // Most recently observed status of the PodDisruptionBudget. + // +optional optional PodDisruptionBudgetStatus status = 3; } // PodDisruptionBudgetList is a collection of PodDisruptionBudgets. message PodDisruptionBudgetList { + // +optional optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; repeated PodDisruptionBudget items = 2; @@ -115,16 +125,19 @@ message PodDisruptionBudgetSpec { // "selector" will still be available after the eviction, i.e. even in the // absence of the evicted pod. So for example you can prevent all voluntary // evictions by specifying "100%". + // +optional optional k8s.io.apimachinery.pkg.util.intstr.IntOrString minAvailable = 1; // Label query over pods whose evictions are managed by the disruption // budget. + // +optional optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 2; // An eviction is allowed if at most "maxUnavailable" pods selected by // "selector" are unavailable after the eviction, i.e. even in absence of // the evicted pod. For example, one can prevent all voluntary evictions // by specifying 0. This is a mutually exclusive setting with "minAvailable". + // +optional optional k8s.io.apimachinery.pkg.util.intstr.IntOrString maxUnavailable = 3; } @@ -147,6 +160,7 @@ message PodDisruptionBudgetStatus { // the list automatically by PodDisruptionBudget controller after some time. // If everything goes smooth this map should be empty for the most of the time. // Large number of entries in the map may indicate problems with pod deletions. + // +optional map disruptedPods = 2; // Number of pod disruptions that are currently allowed. @@ -162,7 +176,7 @@ message PodDisruptionBudgetStatus { optional int32 expectedPods = 6; } -// Pod Security Policy governs the ability to make requests that affect the Security Context +// PodSecurityPolicy governs the ability to make requests that affect the Security Context // that will be applied to a pod and container. message PodSecurityPolicy { // Standard object's metadata. @@ -175,43 +189,43 @@ message PodSecurityPolicy { optional PodSecurityPolicySpec spec = 2; } -// Pod Security Policy List is a list of PodSecurityPolicy objects. +// PodSecurityPolicyList is a list of PodSecurityPolicy objects. message PodSecurityPolicyList { // Standard list metadata. // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata // +optional optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; - // Items is a list of schema objects. + // items is a list of schema objects. repeated PodSecurityPolicy items = 2; } -// Pod Security Policy Spec defines the policy enforced. +// PodSecurityPolicySpec defines the policy enforced. message PodSecurityPolicySpec { // privileged determines if a pod can request to be run as privileged. // +optional optional bool privileged = 1; - // DefaultAddCapabilities is the default set of capabilities that will be added to the container + // defaultAddCapabilities is the default set of capabilities that will be added to the container // unless the pod spec specifically drops the capability. You may not list a capability in both - // DefaultAddCapabilities and RequiredDropCapabilities. Capabilities added here are implicitly - // allowed, and need not be included in the AllowedCapabilities list. + // defaultAddCapabilities and requiredDropCapabilities. Capabilities added here are implicitly + // allowed, and need not be included in the allowedCapabilities list. // +optional repeated string defaultAddCapabilities = 2; - // RequiredDropCapabilities are the capabilities that will be dropped from the container. These + // requiredDropCapabilities are the capabilities that will be dropped from the container. These // are required to be dropped and cannot be added. // +optional repeated string requiredDropCapabilities = 3; - // AllowedCapabilities is a list of capabilities that can be requested to add to the container. + // allowedCapabilities is a list of capabilities that can be requested to add to the container. // Capabilities in this field may be added at the pod author's discretion. - // You must not list a capability in both AllowedCapabilities and RequiredDropCapabilities. + // You must not list a capability in both allowedCapabilities and requiredDropCapabilities. // +optional repeated string allowedCapabilities = 4; - // volumes is a white list of allowed volume plugins. Empty indicates that all plugins - // may be used. + // volumes is a white list of allowed volume plugins. Empty indicates that + // no volumes may be used. To allow all volumes you may use '*'. // +optional repeated string volumes = 5; @@ -237,13 +251,19 @@ message PodSecurityPolicySpec { // runAsUser is the strategy that will dictate the allowable RunAsUser values that may be set. optional RunAsUserStrategyOptions runAsUser = 11; - // SupplementalGroups is the strategy that will dictate what supplemental groups are used by the SecurityContext. + // RunAsGroup is the strategy that will dictate the allowable RunAsGroup values that may be set. + // If this field is omitted, the pod's RunAsGroup can take any value. This field requires the + // RunAsGroup feature gate to be enabled. + // +optional + optional RunAsGroupStrategyOptions runAsGroup = 22; + + // supplementalGroups is the strategy that will dictate what supplemental groups are used by the SecurityContext. optional SupplementalGroupsStrategyOptions supplementalGroups = 12; - // FSGroup is the strategy that will dictate what fs group is used by the SecurityContext. + // fsGroup is the strategy that will dictate what fs group is used by the SecurityContext. optional FSGroupStrategyOptions fsGroup = 13; - // ReadOnlyRootFilesystem when set to true will force containers to run with a read only root file + // readOnlyRootFilesystem when set to true will force containers to run with a read only root file // system. If the container specifically requests to run with a non-read only root file system // the PSP should deny the pod. // If set to false the container may run with a read only root file system if it wishes but it @@ -251,40 +271,80 @@ message PodSecurityPolicySpec { // +optional optional bool readOnlyRootFilesystem = 14; - // DefaultAllowPrivilegeEscalation controls the default setting for whether a + // defaultAllowPrivilegeEscalation controls the default setting for whether a // process can gain more privileges than its parent process. // +optional optional bool defaultAllowPrivilegeEscalation = 15; - // AllowPrivilegeEscalation determines if a pod can request to allow + // allowPrivilegeEscalation determines if a pod can request to allow // privilege escalation. If unspecified, defaults to true. // +optional optional bool allowPrivilegeEscalation = 16; - // is a white list of allowed host paths. Empty indicates that all host paths may be used. + // allowedHostPaths is a white list of allowed host paths. Empty indicates + // that all host paths may be used. // +optional repeated AllowedHostPath allowedHostPaths = 17; - // AllowedFlexVolumes is a whitelist of allowed Flexvolumes. Empty or nil indicates that all + // allowedFlexVolumes is a whitelist of allowed Flexvolumes. Empty or nil indicates that all // Flexvolumes may be used. This parameter is effective only when the usage of the Flexvolumes - // is allowed in the "Volumes" field. + // is allowed in the "volumes" field. // +optional repeated AllowedFlexVolume allowedFlexVolumes = 18; + + // allowedUnsafeSysctls is a list of explicitly allowed unsafe sysctls, defaults to none. + // Each entry is either a plain sysctl name or ends in "*" in which case it is considered + // as a prefix of allowed sysctls. Single * means all unsafe sysctls are allowed. + // Kubelet has to whitelist all allowed unsafe sysctls explicitly to avoid rejection. + // + // Examples: + // e.g. "foo/*" allows "foo/bar", "foo/baz", etc. + // e.g. "foo.*" allows "foo.bar", "foo.baz", etc. + // +optional + repeated string allowedUnsafeSysctls = 19; + + // forbiddenSysctls is a list of explicitly forbidden sysctls, defaults to none. + // Each entry is either a plain sysctl name or ends in "*" in which case it is considered + // as a prefix of forbidden sysctls. Single * means all sysctls are forbidden. + // + // Examples: + // e.g. "foo/*" forbids "foo/bar", "foo/baz", etc. + // e.g. "foo.*" forbids "foo.bar", "foo.baz", etc. + // +optional + repeated string forbiddenSysctls = 20; + + // AllowedProcMountTypes is a whitelist of allowed ProcMountTypes. + // Empty or nil indicates that only the DefaultProcMountType may be used. + // This requires the ProcMountType feature flag to be enabled. + // +optional + repeated string allowedProcMountTypes = 21; } -// Run A sUser Strategy Options defines the strategy type and any options used to create the strategy. -message RunAsUserStrategyOptions { - // Rule is the strategy that will dictate the allowable RunAsUser values that may be set. +// RunAsGroupStrategyOptions defines the strategy type and any options used to create the strategy. +message RunAsGroupStrategyOptions { + // rule is the strategy that will dictate the allowable RunAsGroup values that may be set. optional string rule = 1; - // Ranges are the allowed ranges of uids that may be used. + // ranges are the allowed ranges of gids that may be used. If you would like to force a single gid + // then supply a single range with the same start and end. Required for MustRunAs. // +optional repeated IDRange ranges = 2; } -// SELinux Strategy Options defines the strategy type and any options used to create the strategy. +// RunAsUserStrategyOptions defines the strategy type and any options used to create the strategy. +message RunAsUserStrategyOptions { + // rule is the strategy that will dictate the allowable RunAsUser values that may be set. + optional string rule = 1; + + // ranges are the allowed ranges of uids that may be used. If you would like to force a single uid + // then supply a single range with the same start and end. Required for MustRunAs. + // +optional + repeated IDRange ranges = 2; +} + +// SELinuxStrategyOptions defines the strategy type and any options used to create the strategy. message SELinuxStrategyOptions { - // type is the strategy that will dictate the allowable labels that may be set. + // rule is the strategy that will dictate the allowable labels that may be set. optional string rule = 1; // seLinuxOptions required to run as; required for MustRunAs @@ -295,12 +355,12 @@ message SELinuxStrategyOptions { // SupplementalGroupsStrategyOptions defines the strategy type and options used to create the strategy. message SupplementalGroupsStrategyOptions { - // Rule is the strategy that will dictate what supplemental groups is used in the SecurityContext. + // rule is the strategy that will dictate what supplemental groups is used in the SecurityContext. // +optional optional string rule = 1; - // Ranges are the allowed ranges of supplemental groups. If you would like to force a single - // supplemental group then supply a single range with the same start and end. + // ranges are the allowed ranges of supplemental groups. If you would like to force a single + // supplemental group then supply a single range with the same start and end. Required for MustRunAs. // +optional repeated IDRange ranges = 2; } diff --git a/vendor/k8s.io/api/policy/v1beta1/types.go b/vendor/k8s.io/api/policy/v1beta1/types.go index 6cea9615f..91ea11858 100644 --- a/vendor/k8s.io/api/policy/v1beta1/types.go +++ b/vendor/k8s.io/api/policy/v1beta1/types.go @@ -28,16 +28,19 @@ type PodDisruptionBudgetSpec struct { // "selector" will still be available after the eviction, i.e. even in the // absence of the evicted pod. So for example you can prevent all voluntary // evictions by specifying "100%". + // +optional MinAvailable *intstr.IntOrString `json:"minAvailable,omitempty" protobuf:"bytes,1,opt,name=minAvailable"` // Label query over pods whose evictions are managed by the disruption // budget. + // +optional Selector *metav1.LabelSelector `json:"selector,omitempty" protobuf:"bytes,2,opt,name=selector"` // An eviction is allowed if at most "maxUnavailable" pods selected by // "selector" are unavailable after the eviction, i.e. even in absence of // the evicted pod. For example, one can prevent all voluntary evictions // by specifying 0. This is a mutually exclusive setting with "minAvailable". + // +optional MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty" protobuf:"bytes,3,opt,name=maxUnavailable"` } @@ -60,7 +63,8 @@ type PodDisruptionBudgetStatus struct { // the list automatically by PodDisruptionBudget controller after some time. // If everything goes smooth this map should be empty for the most of the time. // Large number of entries in the map may indicate problems with pod deletions. - DisruptedPods map[string]metav1.Time `json:"disruptedPods" protobuf:"bytes,2,rep,name=disruptedPods"` + // +optional + DisruptedPods map[string]metav1.Time `json:"disruptedPods,omitempty" protobuf:"bytes,2,rep,name=disruptedPods"` // Number of pod disruptions that are currently allowed. PodDisruptionsAllowed int32 `json:"disruptionsAllowed" protobuf:"varint,3,opt,name=disruptionsAllowed"` @@ -80,12 +84,15 @@ type PodDisruptionBudgetStatus struct { // PodDisruptionBudget is an object to define the max disruption that can be caused to a collection of pods type PodDisruptionBudget struct { - metav1.TypeMeta `json:",inline"` + metav1.TypeMeta `json:",inline"` + // +optional metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Specification of the desired behavior of the PodDisruptionBudget. + // +optional Spec PodDisruptionBudgetSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` // Most recently observed status of the PodDisruptionBudget. + // +optional Status PodDisruptionBudgetStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"` } @@ -94,6 +101,7 @@ type PodDisruptionBudget struct { // PodDisruptionBudgetList is a collection of PodDisruptionBudgets. type PodDisruptionBudgetList struct { metav1.TypeMeta `json:",inline"` + // +optional metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` Items []PodDisruptionBudget `json:"items" protobuf:"bytes,2,rep,name=items"` } @@ -109,9 +117,11 @@ type Eviction struct { metav1.TypeMeta `json:",inline"` // ObjectMeta describes the pod that is being evicted. + // +optional metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // DeleteOptions may be provided + // +optional DeleteOptions *metav1.DeleteOptions `json:"deleteOptions,omitempty" protobuf:"bytes,2,opt,name=deleteOptions"` } @@ -119,7 +129,7 @@ type Eviction struct { // +genclient:nonNamespaced // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object -// Pod Security Policy governs the ability to make requests that affect the Security Context +// PodSecurityPolicy governs the ability to make requests that affect the Security Context // that will be applied to a pod and container. type PodSecurityPolicy struct { metav1.TypeMeta `json:",inline"` @@ -133,28 +143,28 @@ type PodSecurityPolicy struct { Spec PodSecurityPolicySpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` } -// Pod Security Policy Spec defines the policy enforced. +// PodSecurityPolicySpec defines the policy enforced. type PodSecurityPolicySpec struct { // privileged determines if a pod can request to be run as privileged. // +optional Privileged bool `json:"privileged,omitempty" protobuf:"varint,1,opt,name=privileged"` - // DefaultAddCapabilities is the default set of capabilities that will be added to the container + // defaultAddCapabilities is the default set of capabilities that will be added to the container // unless the pod spec specifically drops the capability. You may not list a capability in both - // DefaultAddCapabilities and RequiredDropCapabilities. Capabilities added here are implicitly - // allowed, and need not be included in the AllowedCapabilities list. + // defaultAddCapabilities and requiredDropCapabilities. Capabilities added here are implicitly + // allowed, and need not be included in the allowedCapabilities list. // +optional DefaultAddCapabilities []v1.Capability `json:"defaultAddCapabilities,omitempty" protobuf:"bytes,2,rep,name=defaultAddCapabilities,casttype=k8s.io/api/core/v1.Capability"` - // RequiredDropCapabilities are the capabilities that will be dropped from the container. These + // requiredDropCapabilities are the capabilities that will be dropped from the container. These // are required to be dropped and cannot be added. // +optional RequiredDropCapabilities []v1.Capability `json:"requiredDropCapabilities,omitempty" protobuf:"bytes,3,rep,name=requiredDropCapabilities,casttype=k8s.io/api/core/v1.Capability"` - // AllowedCapabilities is a list of capabilities that can be requested to add to the container. + // allowedCapabilities is a list of capabilities that can be requested to add to the container. // Capabilities in this field may be added at the pod author's discretion. - // You must not list a capability in both AllowedCapabilities and RequiredDropCapabilities. + // You must not list a capability in both allowedCapabilities and requiredDropCapabilities. // +optional AllowedCapabilities []v1.Capability `json:"allowedCapabilities,omitempty" protobuf:"bytes,4,rep,name=allowedCapabilities,casttype=k8s.io/api/core/v1.Capability"` - // volumes is a white list of allowed volume plugins. Empty indicates that all plugins - // may be used. + // volumes is a white list of allowed volume plugins. Empty indicates that + // no volumes may be used. To allow all volumes you may use '*'. // +optional Volumes []FSType `json:"volumes,omitempty" protobuf:"bytes,5,rep,name=volumes,casttype=FSType"` // hostNetwork determines if the policy allows the use of HostNetwork in the pod spec. @@ -173,39 +183,69 @@ type PodSecurityPolicySpec struct { SELinux SELinuxStrategyOptions `json:"seLinux" protobuf:"bytes,10,opt,name=seLinux"` // runAsUser is the strategy that will dictate the allowable RunAsUser values that may be set. RunAsUser RunAsUserStrategyOptions `json:"runAsUser" protobuf:"bytes,11,opt,name=runAsUser"` - // SupplementalGroups is the strategy that will dictate what supplemental groups are used by the SecurityContext. + // RunAsGroup is the strategy that will dictate the allowable RunAsGroup values that may be set. + // If this field is omitted, the pod's RunAsGroup can take any value. This field requires the + // RunAsGroup feature gate to be enabled. + // +optional + RunAsGroup *RunAsGroupStrategyOptions `json:"runAsGroup,omitempty" protobuf:"bytes,22,opt,name=runAsGroup"` + // supplementalGroups is the strategy that will dictate what supplemental groups are used by the SecurityContext. SupplementalGroups SupplementalGroupsStrategyOptions `json:"supplementalGroups" protobuf:"bytes,12,opt,name=supplementalGroups"` - // FSGroup is the strategy that will dictate what fs group is used by the SecurityContext. + // fsGroup is the strategy that will dictate what fs group is used by the SecurityContext. FSGroup FSGroupStrategyOptions `json:"fsGroup" protobuf:"bytes,13,opt,name=fsGroup"` - // ReadOnlyRootFilesystem when set to true will force containers to run with a read only root file + // readOnlyRootFilesystem when set to true will force containers to run with a read only root file // system. If the container specifically requests to run with a non-read only root file system // the PSP should deny the pod. // If set to false the container may run with a read only root file system if it wishes but it // will not be forced to. // +optional ReadOnlyRootFilesystem bool `json:"readOnlyRootFilesystem,omitempty" protobuf:"varint,14,opt,name=readOnlyRootFilesystem"` - // DefaultAllowPrivilegeEscalation controls the default setting for whether a + // defaultAllowPrivilegeEscalation controls the default setting for whether a // process can gain more privileges than its parent process. // +optional DefaultAllowPrivilegeEscalation *bool `json:"defaultAllowPrivilegeEscalation,omitempty" protobuf:"varint,15,opt,name=defaultAllowPrivilegeEscalation"` - // AllowPrivilegeEscalation determines if a pod can request to allow + // allowPrivilegeEscalation determines if a pod can request to allow // privilege escalation. If unspecified, defaults to true. // +optional AllowPrivilegeEscalation *bool `json:"allowPrivilegeEscalation,omitempty" protobuf:"varint,16,opt,name=allowPrivilegeEscalation"` - // is a white list of allowed host paths. Empty indicates that all host paths may be used. + // allowedHostPaths is a white list of allowed host paths. Empty indicates + // that all host paths may be used. // +optional AllowedHostPaths []AllowedHostPath `json:"allowedHostPaths,omitempty" protobuf:"bytes,17,rep,name=allowedHostPaths"` - // AllowedFlexVolumes is a whitelist of allowed Flexvolumes. Empty or nil indicates that all + // allowedFlexVolumes is a whitelist of allowed Flexvolumes. Empty or nil indicates that all // Flexvolumes may be used. This parameter is effective only when the usage of the Flexvolumes - // is allowed in the "Volumes" field. + // is allowed in the "volumes" field. // +optional AllowedFlexVolumes []AllowedFlexVolume `json:"allowedFlexVolumes,omitempty" protobuf:"bytes,18,rep,name=allowedFlexVolumes"` + // allowedUnsafeSysctls is a list of explicitly allowed unsafe sysctls, defaults to none. + // Each entry is either a plain sysctl name or ends in "*" in which case it is considered + // as a prefix of allowed sysctls. Single * means all unsafe sysctls are allowed. + // Kubelet has to whitelist all allowed unsafe sysctls explicitly to avoid rejection. + // + // Examples: + // e.g. "foo/*" allows "foo/bar", "foo/baz", etc. + // e.g. "foo.*" allows "foo.bar", "foo.baz", etc. + // +optional + AllowedUnsafeSysctls []string `json:"allowedUnsafeSysctls,omitempty" protobuf:"bytes,19,rep,name=allowedUnsafeSysctls"` + // forbiddenSysctls is a list of explicitly forbidden sysctls, defaults to none. + // Each entry is either a plain sysctl name or ends in "*" in which case it is considered + // as a prefix of forbidden sysctls. Single * means all sysctls are forbidden. + // + // Examples: + // e.g. "foo/*" forbids "foo/bar", "foo/baz", etc. + // e.g. "foo.*" forbids "foo.bar", "foo.baz", etc. + // +optional + ForbiddenSysctls []string `json:"forbiddenSysctls,omitempty" protobuf:"bytes,20,rep,name=forbiddenSysctls"` + // AllowedProcMountTypes is a whitelist of allowed ProcMountTypes. + // Empty or nil indicates that only the DefaultProcMountType may be used. + // This requires the ProcMountType feature flag to be enabled. + // +optional + AllowedProcMountTypes []v1.ProcMountType `json:"allowedProcMountTypes,omitempty" protobuf:"bytes,21,opt,name=allowedProcMountTypes"` } -// defines the host volume conditions that will be enabled by a policy +// AllowedHostPath defines the host volume conditions that will be enabled by a policy // for pods to use. It requires the path prefix to be defined. type AllowedHostPath struct { - // is the path prefix that the host volume must match. + // pathPrefix is the path prefix that the host volume must match. // It does not support `*`. // Trailing slashes are trimmed when validating the path prefix with a host path. // @@ -213,9 +253,17 @@ type AllowedHostPath struct { // `/foo` would allow `/foo`, `/foo/` and `/foo/bar` // `/foo` would not allow `/food` or `/etc/foo` PathPrefix string `json:"pathPrefix,omitempty" protobuf:"bytes,1,rep,name=pathPrefix"` + + // when set to true, will allow host volumes matching the pathPrefix only if all volume mounts are readOnly. + // +optional + ReadOnly bool `json:"readOnly,omitempty" protobuf:"varint,2,opt,name=readOnly"` } -// FS Type gives strong typing to different file systems that are used by volumes. +// AllowAllCapabilities can be used as a value for the PodSecurityPolicy.AllowAllCapabilities +// field and means that any capabilities are allowed to be requested. +var AllowAllCapabilities v1.Capability = "*" + +// FSType gives strong typing to different file systems that are used by volumes. type FSType string var ( @@ -238,18 +286,25 @@ var ( DownwardAPI FSType = "downwardAPI" FC FSType = "fc" ConfigMap FSType = "configMap" + VsphereVolume FSType = "vsphereVolume" Quobyte FSType = "quobyte" AzureDisk FSType = "azureDisk" + PhotonPersistentDisk FSType = "photonPersistentDisk" + StorageOS FSType = "storageos" + Projected FSType = "projected" + PortworxVolume FSType = "portworxVolume" + ScaleIO FSType = "scaleIO" + CSI FSType = "csi" All FSType = "*" ) // AllowedFlexVolume represents a single Flexvolume that is allowed to be used. type AllowedFlexVolume struct { - // Driver is the name of the Flexvolume driver. + // driver is the name of the Flexvolume driver. Driver string `json:"driver" protobuf:"bytes,1,opt,name=driver"` } -// Host Port Range defines a range of host ports that will be enabled by a policy +// HostPortRange defines a range of host ports that will be enabled by a policy // for pods to use. It requires both the start and end to be defined. type HostPortRange struct { // min is the start of the range, inclusive. @@ -258,9 +313,9 @@ type HostPortRange struct { Max int32 `json:"max" protobuf:"varint,2,opt,name=max"` } -// SELinux Strategy Options defines the strategy type and any options used to create the strategy. +// SELinuxStrategyOptions defines the strategy type and any options used to create the strategy. type SELinuxStrategyOptions struct { - // type is the strategy that will dictate the allowable labels that may be set. + // rule is the strategy that will dictate the allowable labels that may be set. Rule SELinuxStrategy `json:"rule" protobuf:"bytes,1,opt,name=rule,casttype=SELinuxStrategy"` // seLinuxOptions required to run as; required for MustRunAs // More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ @@ -273,26 +328,37 @@ type SELinuxStrategyOptions struct { type SELinuxStrategy string const ( - // container must have SELinux labels of X applied. + // SELinuxStrategyMustRunAs means that container must have SELinux labels of X applied. SELinuxStrategyMustRunAs SELinuxStrategy = "MustRunAs" - // container may make requests for any SELinux context labels. + // SELinuxStrategyRunAsAny means that container may make requests for any SELinux context labels. SELinuxStrategyRunAsAny SELinuxStrategy = "RunAsAny" ) -// Run A sUser Strategy Options defines the strategy type and any options used to create the strategy. +// RunAsUserStrategyOptions defines the strategy type and any options used to create the strategy. type RunAsUserStrategyOptions struct { - // Rule is the strategy that will dictate the allowable RunAsUser values that may be set. + // rule is the strategy that will dictate the allowable RunAsUser values that may be set. Rule RunAsUserStrategy `json:"rule" protobuf:"bytes,1,opt,name=rule,casttype=RunAsUserStrategy"` - // Ranges are the allowed ranges of uids that may be used. + // ranges are the allowed ranges of uids that may be used. If you would like to force a single uid + // then supply a single range with the same start and end. Required for MustRunAs. // +optional Ranges []IDRange `json:"ranges,omitempty" protobuf:"bytes,2,rep,name=ranges"` } -// ID Range provides a min/max of an allowed range of IDs. +// RunAsGroupStrategyOptions defines the strategy type and any options used to create the strategy. +type RunAsGroupStrategyOptions struct { + // rule is the strategy that will dictate the allowable RunAsGroup values that may be set. + Rule RunAsGroupStrategy `json:"rule" protobuf:"bytes,1,opt,name=rule,casttype=RunAsGroupStrategy"` + // ranges are the allowed ranges of gids that may be used. If you would like to force a single gid + // then supply a single range with the same start and end. Required for MustRunAs. + // +optional + Ranges []IDRange `json:"ranges,omitempty" protobuf:"bytes,2,rep,name=ranges"` +} + +// IDRange provides a min/max of an allowed range of IDs. type IDRange struct { - // Min is the start of the range, inclusive. + // min is the start of the range, inclusive. Min int64 `json:"min" protobuf:"varint,1,opt,name=min"` - // Max is the end of the range, inclusive. + // max is the end of the range, inclusive. Max int64 `json:"max" protobuf:"varint,2,opt,name=max"` } @@ -301,21 +367,35 @@ type IDRange struct { type RunAsUserStrategy string const ( - // container must run as a particular uid. + // RunAsUserStrategyMustRunAs means that container must run as a particular uid. RunAsUserStrategyMustRunAs RunAsUserStrategy = "MustRunAs" - // container must run as a non-root uid + // RunAsUserStrategyMustRunAsNonRoot means that container must run as a non-root uid. RunAsUserStrategyMustRunAsNonRoot RunAsUserStrategy = "MustRunAsNonRoot" - // container may make requests for any uid. + // RunAsUserStrategyRunAsAny means that container may make requests for any uid. RunAsUserStrategyRunAsAny RunAsUserStrategy = "RunAsAny" ) +// RunAsGroupStrategy denotes strategy types for generating RunAsGroup values for a +// Security Context. +type RunAsGroupStrategy string + +const ( + // RunAsGroupStrategyMayRunAs means that container does not need to run with a particular gid. + // However, when RunAsGroup are specified, they have to fall in the defined range. + RunAsGroupStrategyMayRunAs RunAsGroupStrategy = "MayRunAs" + // RunAsGroupStrategyMustRunAs means that container must run as a particular gid. + RunAsGroupStrategyMustRunAs RunAsGroupStrategy = "MustRunAs" + // RunAsUserStrategyRunAsAny means that container may make requests for any gid. + RunAsGroupStrategyRunAsAny RunAsGroupStrategy = "RunAsAny" +) + // FSGroupStrategyOptions defines the strategy type and options used to create the strategy. type FSGroupStrategyOptions struct { - // Rule is the strategy that will dictate what FSGroup is used in the SecurityContext. + // rule is the strategy that will dictate what FSGroup is used in the SecurityContext. // +optional Rule FSGroupStrategyType `json:"rule,omitempty" protobuf:"bytes,1,opt,name=rule,casttype=FSGroupStrategyType"` - // Ranges are the allowed ranges of fs groups. If you would like to force a single - // fs group then supply a single range with the same start and end. + // ranges are the allowed ranges of fs groups. If you would like to force a single + // fs group then supply a single range with the same start and end. Required for MustRunAs. // +optional Ranges []IDRange `json:"ranges,omitempty" protobuf:"bytes,2,rep,name=ranges"` } @@ -325,19 +405,22 @@ type FSGroupStrategyOptions struct { type FSGroupStrategyType string const ( - // container must have FSGroup of X applied. + // FSGroupStrategyMayRunAs means that container does not need to have FSGroup of X applied. + // However, when FSGroups are specified, they have to fall in the defined range. + FSGroupStrategyMayRunAs FSGroupStrategyType = "MayRunAs" + // FSGroupStrategyMustRunAs meant that container must have FSGroup of X applied. FSGroupStrategyMustRunAs FSGroupStrategyType = "MustRunAs" - // container may make requests for any FSGroup labels. + // FSGroupStrategyRunAsAny means that container may make requests for any FSGroup labels. FSGroupStrategyRunAsAny FSGroupStrategyType = "RunAsAny" ) // SupplementalGroupsStrategyOptions defines the strategy type and options used to create the strategy. type SupplementalGroupsStrategyOptions struct { - // Rule is the strategy that will dictate what supplemental groups is used in the SecurityContext. + // rule is the strategy that will dictate what supplemental groups is used in the SecurityContext. // +optional Rule SupplementalGroupsStrategyType `json:"rule,omitempty" protobuf:"bytes,1,opt,name=rule,casttype=SupplementalGroupsStrategyType"` - // Ranges are the allowed ranges of supplemental groups. If you would like to force a single - // supplemental group then supply a single range with the same start and end. + // ranges are the allowed ranges of supplemental groups. If you would like to force a single + // supplemental group then supply a single range with the same start and end. Required for MustRunAs. // +optional Ranges []IDRange `json:"ranges,omitempty" protobuf:"bytes,2,rep,name=ranges"` } @@ -347,15 +430,18 @@ type SupplementalGroupsStrategyOptions struct { type SupplementalGroupsStrategyType string const ( - // container must run as a particular gid. + // SupplementalGroupsStrategyMayRunAs means that container does not need to run with a particular gid. + // However, when gids are specified, they have to fall in the defined range. + SupplementalGroupsStrategyMayRunAs SupplementalGroupsStrategyType = "MayRunAs" + // SupplementalGroupsStrategyMustRunAs means that container must run as a particular gid. SupplementalGroupsStrategyMustRunAs SupplementalGroupsStrategyType = "MustRunAs" - // container may make requests for any gid. + // SupplementalGroupsStrategyRunAsAny means that container may make requests for any gid. SupplementalGroupsStrategyRunAsAny SupplementalGroupsStrategyType = "RunAsAny" ) // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object -// Pod Security Policy List is a list of PodSecurityPolicy objects. +// PodSecurityPolicyList is a list of PodSecurityPolicy objects. type PodSecurityPolicyList struct { metav1.TypeMeta `json:",inline"` // Standard list metadata. @@ -363,6 +449,6 @@ type PodSecurityPolicyList struct { // +optional metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - // Items is a list of schema objects. + // items is a list of schema objects. Items []PodSecurityPolicy `json:"items" protobuf:"bytes,2,rep,name=items"` } diff --git a/vendor/k8s.io/api/policy/v1beta1/types_swagger_doc_generated.go b/vendor/k8s.io/api/policy/v1beta1/types_swagger_doc_generated.go index 8c51518d4..547ef18ea 100644 --- a/vendor/k8s.io/api/policy/v1beta1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/policy/v1beta1/types_swagger_doc_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2016 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -26,10 +26,10 @@ package v1beta1 // // Those methods can be generated by using hack/update-generated-swagger-docs.sh -// AUTO-GENERATED FUNCTIONS START HERE +// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT. var map_AllowedFlexVolume = map[string]string{ "": "AllowedFlexVolume represents a single Flexvolume that is allowed to be used.", - "driver": "Driver is the name of the Flexvolume driver.", + "driver": "driver is the name of the Flexvolume driver.", } func (AllowedFlexVolume) SwaggerDoc() map[string]string { @@ -37,8 +37,9 @@ func (AllowedFlexVolume) SwaggerDoc() map[string]string { } var map_AllowedHostPath = map[string]string{ - "": "defines the host volume conditions that will be enabled by a policy for pods to use. It requires the path prefix to be defined.", - "pathPrefix": "is the path prefix that the host volume must match. It does not support `*`. Trailing slashes are trimmed when validating the path prefix with a host path.\n\nExamples: `/foo` would allow `/foo`, `/foo/` and `/foo/bar` `/foo` would not allow `/food` or `/etc/foo`", + "": "AllowedHostPath defines the host volume conditions that will be enabled by a policy for pods to use. It requires the path prefix to be defined.", + "pathPrefix": "pathPrefix is the path prefix that the host volume must match. It does not support `*`. Trailing slashes are trimmed when validating the path prefix with a host path.\n\nExamples: `/foo` would allow `/foo`, `/foo/` and `/foo/bar` `/foo` would not allow `/food` or `/etc/foo`", + "readOnly": "when set to true, will allow host volumes matching the pathPrefix only if all volume mounts are readOnly.", } func (AllowedHostPath) SwaggerDoc() map[string]string { @@ -57,8 +58,8 @@ func (Eviction) SwaggerDoc() map[string]string { var map_FSGroupStrategyOptions = map[string]string{ "": "FSGroupStrategyOptions defines the strategy type and options used to create the strategy.", - "rule": "Rule is the strategy that will dictate what FSGroup is used in the SecurityContext.", - "ranges": "Ranges are the allowed ranges of fs groups. If you would like to force a single fs group then supply a single range with the same start and end.", + "rule": "rule is the strategy that will dictate what FSGroup is used in the SecurityContext.", + "ranges": "ranges are the allowed ranges of fs groups. If you would like to force a single fs group then supply a single range with the same start and end. Required for MustRunAs.", } func (FSGroupStrategyOptions) SwaggerDoc() map[string]string { @@ -66,7 +67,7 @@ func (FSGroupStrategyOptions) SwaggerDoc() map[string]string { } var map_HostPortRange = map[string]string{ - "": "Host Port Range defines a range of host ports that will be enabled by a policy for pods to use. It requires both the start and end to be defined.", + "": "HostPortRange defines a range of host ports that will be enabled by a policy for pods to use. It requires both the start and end to be defined.", "min": "min is the start of the range, inclusive.", "max": "max is the end of the range, inclusive.", } @@ -76,9 +77,9 @@ func (HostPortRange) SwaggerDoc() map[string]string { } var map_IDRange = map[string]string{ - "": "ID Range provides a min/max of an allowed range of IDs.", - "min": "Min is the start of the range, inclusive.", - "max": "Max is the end of the range, inclusive.", + "": "IDRange provides a min/max of an allowed range of IDs.", + "min": "min is the start of the range, inclusive.", + "max": "max is the end of the range, inclusive.", } func (IDRange) SwaggerDoc() map[string]string { @@ -129,7 +130,7 @@ func (PodDisruptionBudgetStatus) SwaggerDoc() map[string]string { } var map_PodSecurityPolicy = map[string]string{ - "": "Pod Security Policy governs the ability to make requests that affect the Security Context that will be applied to a pod and container.", + "": "PodSecurityPolicy governs the ability to make requests that affect the Security Context that will be applied to a pod and container.", "metadata": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", "spec": "spec defines the policy enforced.", } @@ -139,9 +140,9 @@ func (PodSecurityPolicy) SwaggerDoc() map[string]string { } var map_PodSecurityPolicyList = map[string]string{ - "": "Pod Security Policy List is a list of PodSecurityPolicy objects.", + "": "PodSecurityPolicyList is a list of PodSecurityPolicy objects.", "metadata": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "items": "Items is a list of schema objects.", + "items": "items is a list of schema objects.", } func (PodSecurityPolicyList) SwaggerDoc() map[string]string { @@ -149,35 +150,49 @@ func (PodSecurityPolicyList) SwaggerDoc() map[string]string { } var map_PodSecurityPolicySpec = map[string]string{ - "": "Pod Security Policy Spec defines the policy enforced.", + "": "PodSecurityPolicySpec defines the policy enforced.", "privileged": "privileged determines if a pod can request to be run as privileged.", - "defaultAddCapabilities": "DefaultAddCapabilities is the default set of capabilities that will be added to the container unless the pod spec specifically drops the capability. You may not list a capability in both DefaultAddCapabilities and RequiredDropCapabilities. Capabilities added here are implicitly allowed, and need not be included in the AllowedCapabilities list.", - "requiredDropCapabilities": "RequiredDropCapabilities are the capabilities that will be dropped from the container. These are required to be dropped and cannot be added.", - "allowedCapabilities": "AllowedCapabilities is a list of capabilities that can be requested to add to the container. Capabilities in this field may be added at the pod author's discretion. You must not list a capability in both AllowedCapabilities and RequiredDropCapabilities.", - "volumes": "volumes is a white list of allowed volume plugins. Empty indicates that all plugins may be used.", + "defaultAddCapabilities": "defaultAddCapabilities is the default set of capabilities that will be added to the container unless the pod spec specifically drops the capability. You may not list a capability in both defaultAddCapabilities and requiredDropCapabilities. Capabilities added here are implicitly allowed, and need not be included in the allowedCapabilities list.", + "requiredDropCapabilities": "requiredDropCapabilities are the capabilities that will be dropped from the container. These are required to be dropped and cannot be added.", + "allowedCapabilities": "allowedCapabilities is a list of capabilities that can be requested to add to the container. Capabilities in this field may be added at the pod author's discretion. You must not list a capability in both allowedCapabilities and requiredDropCapabilities.", + "volumes": "volumes is a white list of allowed volume plugins. Empty indicates that no volumes may be used. To allow all volumes you may use '*'.", "hostNetwork": "hostNetwork determines if the policy allows the use of HostNetwork in the pod spec.", "hostPorts": "hostPorts determines which host port ranges are allowed to be exposed.", "hostPID": "hostPID determines if the policy allows the use of HostPID in the pod spec.", "hostIPC": "hostIPC determines if the policy allows the use of HostIPC in the pod spec.", "seLinux": "seLinux is the strategy that will dictate the allowable labels that may be set.", "runAsUser": "runAsUser is the strategy that will dictate the allowable RunAsUser values that may be set.", - "supplementalGroups": "SupplementalGroups is the strategy that will dictate what supplemental groups are used by the SecurityContext.", - "fsGroup": "FSGroup is the strategy that will dictate what fs group is used by the SecurityContext.", - "readOnlyRootFilesystem": "ReadOnlyRootFilesystem when set to true will force containers to run with a read only root file system. If the container specifically requests to run with a non-read only root file system the PSP should deny the pod. If set to false the container may run with a read only root file system if it wishes but it will not be forced to.", - "defaultAllowPrivilegeEscalation": "DefaultAllowPrivilegeEscalation controls the default setting for whether a process can gain more privileges than its parent process.", - "allowPrivilegeEscalation": "AllowPrivilegeEscalation determines if a pod can request to allow privilege escalation. If unspecified, defaults to true.", - "allowedHostPaths": "is a white list of allowed host paths. Empty indicates that all host paths may be used.", - "allowedFlexVolumes": "AllowedFlexVolumes is a whitelist of allowed Flexvolumes. Empty or nil indicates that all Flexvolumes may be used. This parameter is effective only when the usage of the Flexvolumes is allowed in the \"Volumes\" field.", + "runAsGroup": "RunAsGroup is the strategy that will dictate the allowable RunAsGroup values that may be set. If this field is omitted, the pod's RunAsGroup can take any value. This field requires the RunAsGroup feature gate to be enabled.", + "supplementalGroups": "supplementalGroups is the strategy that will dictate what supplemental groups are used by the SecurityContext.", + "fsGroup": "fsGroup is the strategy that will dictate what fs group is used by the SecurityContext.", + "readOnlyRootFilesystem": "readOnlyRootFilesystem when set to true will force containers to run with a read only root file system. If the container specifically requests to run with a non-read only root file system the PSP should deny the pod. If set to false the container may run with a read only root file system if it wishes but it will not be forced to.", + "defaultAllowPrivilegeEscalation": "defaultAllowPrivilegeEscalation controls the default setting for whether a process can gain more privileges than its parent process.", + "allowPrivilegeEscalation": "allowPrivilegeEscalation determines if a pod can request to allow privilege escalation. If unspecified, defaults to true.", + "allowedHostPaths": "allowedHostPaths is a white list of allowed host paths. Empty indicates that all host paths may be used.", + "allowedFlexVolumes": "allowedFlexVolumes is a whitelist of allowed Flexvolumes. Empty or nil indicates that all Flexvolumes may be used. This parameter is effective only when the usage of the Flexvolumes is allowed in the \"volumes\" field.", + "allowedUnsafeSysctls": "allowedUnsafeSysctls is a list of explicitly allowed unsafe sysctls, defaults to none. Each entry is either a plain sysctl name or ends in \"*\" in which case it is considered as a prefix of allowed sysctls. Single * means all unsafe sysctls are allowed. Kubelet has to whitelist all allowed unsafe sysctls explicitly to avoid rejection.\n\nExamples: e.g. \"foo/*\" allows \"foo/bar\", \"foo/baz\", etc. e.g. \"foo.*\" allows \"foo.bar\", \"foo.baz\", etc.", + "forbiddenSysctls": "forbiddenSysctls is a list of explicitly forbidden sysctls, defaults to none. Each entry is either a plain sysctl name or ends in \"*\" in which case it is considered as a prefix of forbidden sysctls. Single * means all sysctls are forbidden.\n\nExamples: e.g. \"foo/*\" forbids \"foo/bar\", \"foo/baz\", etc. e.g. \"foo.*\" forbids \"foo.bar\", \"foo.baz\", etc.", + "allowedProcMountTypes": "AllowedProcMountTypes is a whitelist of allowed ProcMountTypes. Empty or nil indicates that only the DefaultProcMountType may be used. This requires the ProcMountType feature flag to be enabled.", } func (PodSecurityPolicySpec) SwaggerDoc() map[string]string { return map_PodSecurityPolicySpec } +var map_RunAsGroupStrategyOptions = map[string]string{ + "": "RunAsGroupStrategyOptions defines the strategy type and any options used to create the strategy.", + "rule": "rule is the strategy that will dictate the allowable RunAsGroup values that may be set.", + "ranges": "ranges are the allowed ranges of gids that may be used. If you would like to force a single gid then supply a single range with the same start and end. Required for MustRunAs.", +} + +func (RunAsGroupStrategyOptions) SwaggerDoc() map[string]string { + return map_RunAsGroupStrategyOptions +} + var map_RunAsUserStrategyOptions = map[string]string{ - "": "Run A sUser Strategy Options defines the strategy type and any options used to create the strategy.", - "rule": "Rule is the strategy that will dictate the allowable RunAsUser values that may be set.", - "ranges": "Ranges are the allowed ranges of uids that may be used.", + "": "RunAsUserStrategyOptions defines the strategy type and any options used to create the strategy.", + "rule": "rule is the strategy that will dictate the allowable RunAsUser values that may be set.", + "ranges": "ranges are the allowed ranges of uids that may be used. If you would like to force a single uid then supply a single range with the same start and end. Required for MustRunAs.", } func (RunAsUserStrategyOptions) SwaggerDoc() map[string]string { @@ -185,8 +200,8 @@ func (RunAsUserStrategyOptions) SwaggerDoc() map[string]string { } var map_SELinuxStrategyOptions = map[string]string{ - "": "SELinux Strategy Options defines the strategy type and any options used to create the strategy.", - "rule": "type is the strategy that will dictate the allowable labels that may be set.", + "": "SELinuxStrategyOptions defines the strategy type and any options used to create the strategy.", + "rule": "rule is the strategy that will dictate the allowable labels that may be set.", "seLinuxOptions": "seLinuxOptions required to run as; required for MustRunAs More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/", } @@ -196,8 +211,8 @@ func (SELinuxStrategyOptions) SwaggerDoc() map[string]string { var map_SupplementalGroupsStrategyOptions = map[string]string{ "": "SupplementalGroupsStrategyOptions defines the strategy type and options used to create the strategy.", - "rule": "Rule is the strategy that will dictate what supplemental groups is used in the SecurityContext.", - "ranges": "Ranges are the allowed ranges of supplemental groups. If you would like to force a single supplemental group then supply a single range with the same start and end.", + "rule": "rule is the strategy that will dictate what supplemental groups is used in the SecurityContext.", + "ranges": "ranges are the allowed ranges of supplemental groups. If you would like to force a single supplemental group then supply a single range with the same start and end. Required for MustRunAs.", } func (SupplementalGroupsStrategyOptions) SwaggerDoc() map[string]string { diff --git a/vendor/k8s.io/api/policy/v1beta1/zz_generated.deepcopy.go b/vendor/k8s.io/api/policy/v1beta1/zz_generated.deepcopy.go index 8a770b2f0..1a02ae600 100644 --- a/vendor/k8s.io/api/policy/v1beta1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/api/policy/v1beta1/zz_generated.deepcopy.go @@ -1,7 +1,7 @@ // +build !ignore_autogenerated /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ limitations under the License. package v1beta1 import ( - core_v1 "k8s.io/api/core/v1" + corev1 "k8s.io/api/core/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" intstr "k8s.io/apimachinery/pkg/util/intstr" @@ -66,12 +66,8 @@ func (in *Eviction) DeepCopyInto(out *Eviction) { in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) if in.DeleteOptions != nil { in, out := &in.DeleteOptions, &out.DeleteOptions - if *in == nil { - *out = nil - } else { - *out = new(v1.DeleteOptions) - (*in).DeepCopyInto(*out) - } + *out = new(v1.DeleteOptions) + (*in).DeepCopyInto(*out) } return } @@ -213,30 +209,18 @@ func (in *PodDisruptionBudgetSpec) DeepCopyInto(out *PodDisruptionBudgetSpec) { *out = *in if in.MinAvailable != nil { in, out := &in.MinAvailable, &out.MinAvailable - if *in == nil { - *out = nil - } else { - *out = new(intstr.IntOrString) - **out = **in - } + *out = new(intstr.IntOrString) + **out = **in } if in.Selector != nil { in, out := &in.Selector, &out.Selector - if *in == nil { - *out = nil - } else { - *out = new(v1.LabelSelector) - (*in).DeepCopyInto(*out) - } + *out = new(v1.LabelSelector) + (*in).DeepCopyInto(*out) } if in.MaxUnavailable != nil { in, out := &in.MaxUnavailable, &out.MaxUnavailable - if *in == nil { - *out = nil - } else { - *out = new(intstr.IntOrString) - **out = **in - } + *out = new(intstr.IntOrString) + **out = **in } return } @@ -339,17 +323,17 @@ func (in *PodSecurityPolicySpec) DeepCopyInto(out *PodSecurityPolicySpec) { *out = *in if in.DefaultAddCapabilities != nil { in, out := &in.DefaultAddCapabilities, &out.DefaultAddCapabilities - *out = make([]core_v1.Capability, len(*in)) + *out = make([]corev1.Capability, len(*in)) copy(*out, *in) } if in.RequiredDropCapabilities != nil { in, out := &in.RequiredDropCapabilities, &out.RequiredDropCapabilities - *out = make([]core_v1.Capability, len(*in)) + *out = make([]corev1.Capability, len(*in)) copy(*out, *in) } if in.AllowedCapabilities != nil { in, out := &in.AllowedCapabilities, &out.AllowedCapabilities - *out = make([]core_v1.Capability, len(*in)) + *out = make([]corev1.Capability, len(*in)) copy(*out, *in) } if in.Volumes != nil { @@ -364,25 +348,22 @@ func (in *PodSecurityPolicySpec) DeepCopyInto(out *PodSecurityPolicySpec) { } in.SELinux.DeepCopyInto(&out.SELinux) in.RunAsUser.DeepCopyInto(&out.RunAsUser) + if in.RunAsGroup != nil { + in, out := &in.RunAsGroup, &out.RunAsGroup + *out = new(RunAsGroupStrategyOptions) + (*in).DeepCopyInto(*out) + } in.SupplementalGroups.DeepCopyInto(&out.SupplementalGroups) in.FSGroup.DeepCopyInto(&out.FSGroup) if in.DefaultAllowPrivilegeEscalation != nil { in, out := &in.DefaultAllowPrivilegeEscalation, &out.DefaultAllowPrivilegeEscalation - if *in == nil { - *out = nil - } else { - *out = new(bool) - **out = **in - } + *out = new(bool) + **out = **in } if in.AllowPrivilegeEscalation != nil { in, out := &in.AllowPrivilegeEscalation, &out.AllowPrivilegeEscalation - if *in == nil { - *out = nil - } else { - *out = new(bool) - **out = **in - } + *out = new(bool) + **out = **in } if in.AllowedHostPaths != nil { in, out := &in.AllowedHostPaths, &out.AllowedHostPaths @@ -394,6 +375,21 @@ func (in *PodSecurityPolicySpec) DeepCopyInto(out *PodSecurityPolicySpec) { *out = make([]AllowedFlexVolume, len(*in)) copy(*out, *in) } + if in.AllowedUnsafeSysctls != nil { + in, out := &in.AllowedUnsafeSysctls, &out.AllowedUnsafeSysctls + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.ForbiddenSysctls != nil { + in, out := &in.ForbiddenSysctls, &out.ForbiddenSysctls + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.AllowedProcMountTypes != nil { + in, out := &in.AllowedProcMountTypes, &out.AllowedProcMountTypes + *out = make([]corev1.ProcMountType, len(*in)) + copy(*out, *in) + } return } @@ -407,6 +403,27 @@ func (in *PodSecurityPolicySpec) DeepCopy() *PodSecurityPolicySpec { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RunAsGroupStrategyOptions) DeepCopyInto(out *RunAsGroupStrategyOptions) { + *out = *in + if in.Ranges != nil { + in, out := &in.Ranges, &out.Ranges + *out = make([]IDRange, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RunAsGroupStrategyOptions. +func (in *RunAsGroupStrategyOptions) DeepCopy() *RunAsGroupStrategyOptions { + if in == nil { + return nil + } + out := new(RunAsGroupStrategyOptions) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *RunAsUserStrategyOptions) DeepCopyInto(out *RunAsUserStrategyOptions) { *out = *in @@ -433,12 +450,8 @@ func (in *SELinuxStrategyOptions) DeepCopyInto(out *SELinuxStrategyOptions) { *out = *in if in.SELinuxOptions != nil { in, out := &in.SELinuxOptions, &out.SELinuxOptions - if *in == nil { - *out = nil - } else { - *out = new(core_v1.SELinuxOptions) - **out = **in - } + *out = new(corev1.SELinuxOptions) + **out = **in } return } diff --git a/vendor/k8s.io/api/rbac/OWNERS b/vendor/k8s.io/api/rbac/OWNERS index 1aefde049..ff4a7f4bf 100755 --- a/vendor/k8s.io/api/rbac/OWNERS +++ b/vendor/k8s.io/api/rbac/OWNERS @@ -1,17 +1,7 @@ +# approval on api packages bubbles to api-approvers reviewers: -- thockin -- lavalamp -- smarterclayton -- deads2k -- sttts -- ncdc -- dims -- krousey -- mml -- mbohlool -- david-mcmahon -- ericchiang -- lixiaobing10051267 -- jianhuiz -- liggitt -- enj +- sig-auth-authorizers-approvers +- sig-auth-authorizers-reviewers +labels: +- sig/auth + diff --git a/vendor/k8s.io/api/rbac/v1/BUILD b/vendor/k8s.io/api/rbac/v1/BUILD deleted file mode 100644 index 539afb7ae..000000000 --- a/vendor/k8s.io/api/rbac/v1/BUILD +++ /dev/null @@ -1,44 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "generated.pb.go", - "register.go", - "types.go", - "types_swagger_doc_generated.go", - "zz_generated.deepcopy.go", - ], - importpath = "k8s.io/api/rbac/v1", - deps = [ - "//vendor/github.com/gogo/protobuf/proto:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) - -filegroup( - name = "go_default_library_protos", - srcs = ["generated.proto"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/api/rbac/v1/doc.go b/vendor/k8s.io/api/rbac/v1/doc.go index 28ceb269b..76899ef09 100644 --- a/vendor/k8s.io/api/rbac/v1/doc.go +++ b/vendor/k8s.io/api/rbac/v1/doc.go @@ -18,4 +18,5 @@ limitations under the License. // +k8s:openapi-gen=true // +groupName=rbac.authorization.k8s.io + package v1 // import "k8s.io/api/rbac/v1" diff --git a/vendor/k8s.io/api/rbac/v1/generated.pb.go b/vendor/k8s.io/api/rbac/v1/generated.pb.go index 5343731cc..708db3276 100644 --- a/vendor/k8s.io/api/rbac/v1/generated.pb.go +++ b/vendor/k8s.io/api/rbac/v1/generated.pb.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -14,9 +14,8 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: k8s.io/kubernetes/vendor/k8s.io/api/rbac/v1/generated.proto -// DO NOT EDIT! /* Package v1 is a generated protocol buffer package. @@ -641,24 +640,6 @@ func (m *Subject) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Generated(dAtA []byte, offset int, v uint64) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - dAtA[offset+4] = uint8(v >> 32) - dAtA[offset+5] = uint8(v >> 40) - dAtA[offset+6] = uint8(v >> 48) - dAtA[offset+7] = uint8(v >> 56) - return offset + 8 -} -func encodeFixed32Generated(dAtA []byte, offset int, v uint32) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - return offset + 4 -} func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -2693,57 +2674,56 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 827 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x55, 0xcf, 0x8b, 0x23, 0x45, - 0x18, 0x4d, 0x65, 0x12, 0x26, 0x5d, 0x31, 0xc4, 0x2d, 0x17, 0x69, 0xa2, 0x74, 0x86, 0x16, 0x24, - 0xa0, 0x76, 0x9b, 0x5d, 0x51, 0x41, 0xf6, 0xb0, 0xbd, 0xa2, 0x0c, 0x3b, 0x8e, 0x4b, 0x2d, 0x7a, - 0x10, 0x0f, 0x56, 0x77, 0x6a, 0x3b, 0x65, 0xfa, 0x17, 0x55, 0xd5, 0x81, 0xc5, 0x8b, 0x08, 0x1e, - 0xbc, 0x79, 0xd4, 0xbf, 0xc0, 0x8b, 0x1e, 0xfd, 0x0b, 0xbc, 0xcc, 0x71, 0x8f, 0x7b, 0x0a, 0x4e, - 0xfb, 0x87, 0x28, 0xfd, 0x2b, 0x9d, 0xa4, 0x3b, 0x4e, 0x4e, 0x01, 0xf1, 0x34, 0x53, 0xdf, 0xf7, - 0xde, 0xfb, 0x5e, 0xbf, 0xa9, 0xaf, 0x06, 0x7e, 0xb0, 0x78, 0x5f, 0x18, 0x2c, 0x34, 0x17, 0xb1, - 0x4d, 0x79, 0x40, 0x25, 0x15, 0xe6, 0x92, 0x06, 0xb3, 0x90, 0x9b, 0x45, 0x83, 0x44, 0xcc, 0xe4, - 0x36, 0x71, 0xcc, 0xe5, 0xd4, 0x74, 0x69, 0x40, 0x39, 0x91, 0x74, 0x66, 0x44, 0x3c, 0x94, 0x21, - 0x42, 0x39, 0xc6, 0x20, 0x11, 0x33, 0x52, 0x8c, 0xb1, 0x9c, 0x8e, 0xde, 0x72, 0x99, 0x9c, 0xc7, - 0xb6, 0xe1, 0x84, 0xbe, 0xe9, 0x86, 0x6e, 0x68, 0x66, 0x50, 0x3b, 0x7e, 0x92, 0x9d, 0xb2, 0x43, - 0xf6, 0x5b, 0x2e, 0x31, 0x9a, 0xd4, 0xc7, 0x10, 0x2f, 0x9a, 0x93, 0xda, 0xb0, 0xd1, 0x3b, 0x15, - 0xd2, 0x27, 0xce, 0x9c, 0x05, 0x94, 0x3f, 0x35, 0xa3, 0x85, 0x9b, 0x16, 0x84, 0xe9, 0x53, 0x49, - 0x1a, 0x2c, 0x8e, 0xcc, 0x7d, 0x2c, 0x1e, 0x07, 0x92, 0xf9, 0xb4, 0x46, 0x78, 0xf7, 0x26, 0x82, - 0x70, 0xe6, 0xd4, 0x27, 0x35, 0xde, 0xdd, 0x7d, 0xbc, 0x58, 0x32, 0xcf, 0x64, 0x81, 0x14, 0x92, - 0xef, 0x92, 0xf4, 0x9f, 0x01, 0x1c, 0xde, 0x77, 0x5d, 0x4e, 0x5d, 0x22, 0x59, 0x18, 0xe0, 0xd8, - 0xa3, 0xe8, 0x7b, 0x00, 0x6f, 0x3b, 0x5e, 0x2c, 0x24, 0xe5, 0x38, 0xf4, 0xe8, 0x63, 0xea, 0x51, - 0x47, 0x86, 0x5c, 0xa8, 0xe0, 0xec, 0x64, 0xd2, 0xbf, 0x73, 0xd7, 0xa8, 0x42, 0x5f, 0x0f, 0x32, - 0xa2, 0x85, 0x9b, 0x16, 0x84, 0x91, 0xe6, 0x60, 0x2c, 0xa7, 0xc6, 0x05, 0xb1, 0xa9, 0x57, 0x72, - 0xad, 0x57, 0xaf, 0x56, 0xe3, 0x56, 0xb2, 0x1a, 0xdf, 0x7e, 0xd0, 0x20, 0x8c, 0x1b, 0xc7, 0xe9, - 0x3f, 0xb5, 0x61, 0x7f, 0x03, 0x8e, 0xbe, 0x82, 0xbd, 0x54, 0x7c, 0x46, 0x24, 0x51, 0xc1, 0x19, - 0x98, 0xf4, 0xef, 0xbc, 0x7d, 0x98, 0x95, 0x4f, 0xed, 0xaf, 0xa9, 0x23, 0x3f, 0xa1, 0x92, 0x58, - 0xa8, 0xf0, 0x01, 0xab, 0x1a, 0x5e, 0xab, 0xa2, 0x07, 0xb0, 0xcb, 0x63, 0x8f, 0x0a, 0xb5, 0x9d, - 0x7d, 0xa9, 0x66, 0xd4, 0xaf, 0x97, 0xf1, 0x28, 0xf4, 0x98, 0xf3, 0x34, 0x0d, 0xca, 0x1a, 0x14, - 0x62, 0xdd, 0xf4, 0x24, 0x70, 0xce, 0x45, 0x36, 0x1c, 0x92, 0xed, 0x44, 0xd5, 0x93, 0xcc, 0xed, - 0x6b, 0x4d, 0x72, 0x3b, 0xe1, 0x5b, 0x2f, 0x25, 0xab, 0xf1, 0xee, 0x5f, 0x04, 0xef, 0x0a, 0xea, - 0x3f, 0xb4, 0x21, 0xda, 0x88, 0xc6, 0x62, 0xc1, 0x8c, 0x05, 0xee, 0x11, 0x12, 0x3a, 0x87, 0x3d, - 0x11, 0x67, 0x8d, 0x32, 0xa4, 0x57, 0x9a, 0xbe, 0xea, 0x71, 0x8e, 0xb1, 0x5e, 0x2c, 0xc4, 0x7a, - 0x45, 0x41, 0xe0, 0x35, 0x1d, 0x7d, 0x04, 0x4f, 0x79, 0xe8, 0x51, 0x4c, 0x9f, 0x14, 0xf9, 0x34, - 0x2a, 0xe1, 0x1c, 0x62, 0x0d, 0x0b, 0xa5, 0xd3, 0xa2, 0x80, 0x4b, 0xb2, 0xfe, 0x07, 0x80, 0x2f, - 0xd7, 0xb3, 0xb8, 0x60, 0x42, 0xa2, 0x2f, 0x6b, 0x79, 0x18, 0x07, 0x5e, 0x5e, 0x26, 0xf2, 0x34, - 0xd6, 0x1f, 0x50, 0x56, 0x36, 0xb2, 0x78, 0x08, 0xbb, 0x4c, 0x52, 0xbf, 0x0c, 0xe2, 0xf5, 0x26, - 0xfb, 0x75, 0x63, 0xd5, 0xad, 0x39, 0x4f, 0xc9, 0x38, 0xd7, 0xd0, 0x7f, 0x07, 0x70, 0xb8, 0x01, - 0x3e, 0x82, 0xfd, 0x0f, 0xb7, 0xed, 0x8f, 0x6f, 0xb2, 0xdf, 0xec, 0xfb, 0x6f, 0x00, 0x61, 0xb5, - 0x12, 0x68, 0x0c, 0xbb, 0x4b, 0xca, 0xed, 0xfc, 0xad, 0x50, 0x2c, 0x25, 0xc5, 0x7f, 0x9e, 0x16, - 0x70, 0x5e, 0x47, 0x6f, 0x40, 0x85, 0x44, 0xec, 0x63, 0x1e, 0xc6, 0x51, 0x3e, 0x59, 0xb1, 0x06, - 0xc9, 0x6a, 0xac, 0xdc, 0x7f, 0x74, 0x9e, 0x17, 0x71, 0xd5, 0x4f, 0xc1, 0x9c, 0x8a, 0x30, 0xe6, - 0x0e, 0x15, 0xea, 0x49, 0x05, 0xc6, 0x65, 0x11, 0x57, 0x7d, 0xf4, 0x1e, 0x1c, 0x94, 0x87, 0x4b, - 0xe2, 0x53, 0xa1, 0x76, 0x32, 0xc2, 0xad, 0x64, 0x35, 0x1e, 0xe0, 0xcd, 0x06, 0xde, 0xc6, 0xa1, - 0x7b, 0x70, 0x18, 0x84, 0x41, 0x09, 0xf9, 0x0c, 0x5f, 0x08, 0xb5, 0x9b, 0x51, 0xb3, 0x5d, 0xbc, - 0xdc, 0x6e, 0xe1, 0x5d, 0xac, 0xfe, 0x1b, 0x80, 0x9d, 0xff, 0xd0, 0xfb, 0xa4, 0x7f, 0xd7, 0x86, - 0xfd, 0xff, 0xfd, 0xa3, 0x91, 0xae, 0xdb, 0x71, 0x5f, 0x8b, 0x43, 0xd6, 0xed, 0xe6, 0x67, 0xe2, - 0x17, 0x00, 0x7b, 0x47, 0x7a, 0x1f, 0xee, 0x6d, 0x1b, 0x56, 0xf7, 0x1a, 0x6e, 0x76, 0xfa, 0x0d, - 0x2c, 0x53, 0x47, 0x6f, 0xc2, 0x5e, 0xb9, 0xd3, 0x99, 0x4f, 0xa5, 0x9a, 0x5b, 0xae, 0x3d, 0x5e, - 0x23, 0xd0, 0x19, 0xec, 0x2c, 0x58, 0x30, 0x53, 0xdb, 0x19, 0xf2, 0x85, 0x02, 0xd9, 0x79, 0xc8, - 0x82, 0x19, 0xce, 0x3a, 0x29, 0x22, 0x20, 0x7e, 0xfe, 0x6f, 0x75, 0x03, 0x91, 0x6e, 0x33, 0xce, - 0x3a, 0xfa, 0xaf, 0x00, 0x9e, 0x16, 0xb7, 0x67, 0xad, 0x07, 0xf6, 0xea, 0x6d, 0xfa, 0x6b, 0x1f, - 0xe2, 0xef, 0xdf, 0xa7, 0x23, 0x13, 0x2a, 0xe9, 0x4f, 0x11, 0x11, 0x87, 0xaa, 0x9d, 0x0c, 0x76, - 0xab, 0x80, 0x29, 0x97, 0x65, 0x03, 0x57, 0x18, 0x6b, 0x72, 0x75, 0xad, 0xb5, 0x9e, 0x5d, 0x6b, - 0xad, 0xe7, 0xd7, 0x5a, 0xeb, 0xdb, 0x44, 0x03, 0x57, 0x89, 0x06, 0x9e, 0x25, 0x1a, 0x78, 0x9e, - 0x68, 0xe0, 0xcf, 0x44, 0x03, 0x3f, 0xfe, 0xa5, 0xb5, 0xbe, 0x68, 0x2f, 0xa7, 0xff, 0x04, 0x00, - 0x00, 0xff, 0xff, 0x32, 0xe3, 0x23, 0xf8, 0x2e, 0x0b, 0x00, 0x00, + // 807 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x55, 0xcf, 0x6f, 0xe3, 0x44, + 0x14, 0xce, 0xa4, 0x89, 0x1a, 0x4f, 0x88, 0x42, 0x87, 0x0a, 0x59, 0x05, 0x39, 0x95, 0x91, 0x50, + 0x25, 0xc0, 0x26, 0x05, 0x01, 0x12, 0xea, 0xa1, 0x2e, 0x02, 0x55, 0x2d, 0xa5, 0x9a, 0x0a, 0x0e, + 0x88, 0x03, 0x63, 0x67, 0xea, 0x0e, 0xf1, 0x2f, 0xcd, 0xd8, 0x91, 0x2a, 0x2e, 0x08, 0x89, 0x03, + 0xb7, 0x3d, 0xee, 0xfe, 0x05, 0x7b, 0xd9, 0x3d, 0xee, 0x5f, 0xb0, 0x97, 0x1e, 0x7b, 0xec, 0x29, + 0xda, 0x7a, 0xff, 0x90, 0x5d, 0xf9, 0x57, 0x9c, 0x1f, 0xee, 0x36, 0xa7, 0x48, 0xab, 0x3d, 0xb5, + 0xf3, 0xde, 0xf7, 0xbe, 0xf7, 0xcd, 0xe7, 0x79, 0x2f, 0xf0, 0xfb, 0xe1, 0x77, 0x42, 0x63, 0xbe, + 0x3e, 0x8c, 0x4c, 0xca, 0x3d, 0x1a, 0x52, 0xa1, 0x8f, 0xa8, 0x37, 0xf0, 0xb9, 0x9e, 0x27, 0x48, + 0xc0, 0x74, 0x6e, 0x12, 0x4b, 0x1f, 0xf5, 0x75, 0x9b, 0x7a, 0x94, 0x93, 0x90, 0x0e, 0xb4, 0x80, + 0xfb, 0xa1, 0x8f, 0x50, 0x86, 0xd1, 0x48, 0xc0, 0xb4, 0x04, 0xa3, 0x8d, 0xfa, 0x5b, 0x5f, 0xd8, + 0x2c, 0xbc, 0x88, 0x4c, 0xcd, 0xf2, 0x5d, 0xdd, 0xf6, 0x6d, 0x5f, 0x4f, 0xa1, 0x66, 0x74, 0x9e, + 0x9e, 0xd2, 0x43, 0xfa, 0x5f, 0x46, 0xb1, 0xf5, 0x75, 0xd9, 0xc6, 0x25, 0xd6, 0x05, 0xf3, 0x28, + 0xbf, 0xd4, 0x83, 0xa1, 0x9d, 0x04, 0x84, 0xee, 0xd2, 0x90, 0x54, 0x34, 0xde, 0xd2, 0xef, 0xaa, + 0xe2, 0x91, 0x17, 0x32, 0x97, 0x2e, 0x14, 0x7c, 0x73, 0x5f, 0x81, 0xb0, 0x2e, 0xa8, 0x4b, 0xe6, + 0xeb, 0xd4, 0x47, 0x00, 0x76, 0xf7, 0x6d, 0x9b, 0x53, 0x9b, 0x84, 0xcc, 0xf7, 0x70, 0xe4, 0x50, + 0xf4, 0x1f, 0x80, 0x9b, 0x96, 0x13, 0x89, 0x90, 0x72, 0xec, 0x3b, 0xf4, 0x8c, 0x3a, 0xd4, 0x0a, + 0x7d, 0x2e, 0x64, 0xb0, 0xbd, 0xb6, 0xd3, 0xde, 0xfd, 0x4a, 0x2b, 0x5d, 0x99, 0xf4, 0xd2, 0x82, + 0xa1, 0x9d, 0x04, 0x84, 0x96, 0x5c, 0x49, 0x1b, 0xf5, 0xb5, 0x63, 0x62, 0x52, 0xa7, 0xa8, 0x35, + 0x3e, 0xbe, 0x1a, 0xf7, 0x6a, 0xf1, 0xb8, 0xb7, 0x79, 0x50, 0x41, 0x8c, 0x2b, 0xdb, 0xa9, 0x0f, + 0xeb, 0xb0, 0x3d, 0x05, 0x47, 0x7f, 0xc2, 0x56, 0x42, 0x3e, 0x20, 0x21, 0x91, 0xc1, 0x36, 0xd8, + 0x69, 0xef, 0x7e, 0xb9, 0x9c, 0x94, 0x5f, 0xcc, 0xbf, 0xa8, 0x15, 0xfe, 0x4c, 0x43, 0x62, 0xa0, + 0x5c, 0x07, 0x2c, 0x63, 0x78, 0xc2, 0x8a, 0x0e, 0x60, 0x93, 0x47, 0x0e, 0x15, 0x72, 0x3d, 0xbd, + 0xa9, 0xa2, 0x2d, 0x7e, 0x7f, 0xed, 0xd4, 0x77, 0x98, 0x75, 0x99, 0x18, 0x65, 0x74, 0x72, 0xb2, + 0x66, 0x72, 0x12, 0x38, 0xab, 0x45, 0x26, 0xec, 0x92, 0x59, 0x47, 0xe5, 0xb5, 0x54, 0xed, 0x27, + 0x55, 0x74, 0x73, 0xe6, 0x1b, 0x1f, 0xc4, 0xe3, 0xde, 0xfc, 0x17, 0xc1, 0xf3, 0x84, 0xea, 0xff, + 0x75, 0x88, 0xa6, 0xac, 0x31, 0x98, 0x37, 0x60, 0x9e, 0xbd, 0x02, 0x87, 0x0e, 0x61, 0x4b, 0x44, + 0x69, 0xa2, 0x30, 0xe9, 0xa3, 0xaa, 0x5b, 0x9d, 0x65, 0x18, 0xe3, 0xfd, 0x9c, 0xac, 0x95, 0x07, + 0x04, 0x9e, 0x94, 0xa3, 0x1f, 0xe1, 0x3a, 0xf7, 0x1d, 0x8a, 0xe9, 0x79, 0xee, 0x4f, 0x25, 0x13, + 0xce, 0x20, 0x46, 0x37, 0x67, 0x5a, 0xcf, 0x03, 0xb8, 0x28, 0x56, 0x9f, 0x03, 0xf8, 0xe1, 0xa2, + 0x17, 0xc7, 0x4c, 0x84, 0xe8, 0x8f, 0x05, 0x3f, 0xb4, 0x25, 0x1f, 0x2f, 0x13, 0x99, 0x1b, 0x93, + 0x0b, 0x14, 0x91, 0x29, 0x2f, 0x8e, 0x60, 0x93, 0x85, 0xd4, 0x2d, 0x8c, 0xf8, 0xb4, 0x4a, 0xfe, + 0xa2, 0xb0, 0xf2, 0xd5, 0x1c, 0x26, 0xc5, 0x38, 0xe3, 0x50, 0x9f, 0x01, 0xd8, 0x9d, 0x02, 0xaf, + 0x40, 0xfe, 0x0f, 0xb3, 0xf2, 0x7b, 0xf7, 0xc9, 0xaf, 0xd6, 0xfd, 0x0a, 0x40, 0x58, 0x8e, 0x04, + 0xea, 0xc1, 0xe6, 0x88, 0x72, 0x33, 0xdb, 0x15, 0x92, 0x21, 0x25, 0xf8, 0xdf, 0x92, 0x00, 0xce, + 0xe2, 0xe8, 0x33, 0x28, 0x91, 0x80, 0xfd, 0xc4, 0xfd, 0x28, 0xc8, 0x3a, 0x4b, 0x46, 0x27, 0x1e, + 0xf7, 0xa4, 0xfd, 0xd3, 0xc3, 0x2c, 0x88, 0xcb, 0x7c, 0x02, 0xe6, 0x54, 0xf8, 0x11, 0xb7, 0xa8, + 0x90, 0xd7, 0x4a, 0x30, 0x2e, 0x82, 0xb8, 0xcc, 0xa3, 0x6f, 0x61, 0xa7, 0x38, 0x9c, 0x10, 0x97, + 0x0a, 0xb9, 0x91, 0x16, 0x6c, 0xc4, 0xe3, 0x5e, 0x07, 0x4f, 0x27, 0xf0, 0x2c, 0x0e, 0xed, 0xc1, + 0xae, 0xe7, 0x7b, 0x05, 0xe4, 0x57, 0x7c, 0x2c, 0xe4, 0x66, 0x5a, 0x9a, 0xce, 0xe2, 0xc9, 0x6c, + 0x0a, 0xcf, 0x63, 0xd5, 0xa7, 0x00, 0x36, 0xde, 0xa2, 0xfd, 0xa4, 0xfe, 0x5b, 0x87, 0xed, 0x77, + 0x7e, 0x69, 0x24, 0xe3, 0xb6, 0xda, 0x6d, 0xb1, 0xcc, 0xb8, 0xdd, 0xbf, 0x26, 0x1e, 0x03, 0xd8, + 0x5a, 0xd1, 0x7e, 0xd8, 0x9b, 0x15, 0x2c, 0xdf, 0x29, 0xb8, 0x5a, 0xe9, 0xdf, 0xb0, 0x70, 0x1d, + 0x7d, 0x0e, 0x5b, 0xc5, 0x4c, 0xa7, 0x3a, 0xa5, 0xb2, 0x6f, 0x31, 0xf6, 0x78, 0x82, 0x40, 0xdb, + 0xb0, 0x31, 0x64, 0xde, 0x40, 0xae, 0xa7, 0xc8, 0xf7, 0x72, 0x64, 0xe3, 0x88, 0x79, 0x03, 0x9c, + 0x66, 0x12, 0x84, 0x47, 0xdc, 0xec, 0x67, 0x75, 0x0a, 0x91, 0x4c, 0x33, 0x4e, 0x33, 0xea, 0x13, + 0x00, 0xd7, 0xf3, 0xd7, 0x33, 0xe1, 0x03, 0x77, 0xf2, 0x4d, 0xeb, 0xab, 0x2f, 0xa3, 0xef, 0xcd, + 0xdd, 0x91, 0x0e, 0xa5, 0xe4, 0xaf, 0x08, 0x88, 0x45, 0xe5, 0x46, 0x0a, 0xdb, 0xc8, 0x61, 0xd2, + 0x49, 0x91, 0xc0, 0x25, 0xc6, 0xd8, 0xb9, 0xba, 0x55, 0x6a, 0xd7, 0xb7, 0x4a, 0xed, 0xe6, 0x56, + 0xa9, 0xfd, 0x13, 0x2b, 0xe0, 0x2a, 0x56, 0xc0, 0x75, 0xac, 0x80, 0x9b, 0x58, 0x01, 0x2f, 0x62, + 0x05, 0x3c, 0x78, 0xa9, 0xd4, 0x7e, 0xaf, 0x8f, 0xfa, 0xaf, 0x03, 0x00, 0x00, 0xff, 0xff, 0x24, + 0xa1, 0x47, 0x98, 0xcf, 0x0a, 0x00, 0x00, } diff --git a/vendor/k8s.io/api/rbac/v1/generated.proto b/vendor/k8s.io/api/rbac/v1/generated.proto index 2f8d863df..4b321a7c2 100644 --- a/vendor/k8s.io/api/rbac/v1/generated.proto +++ b/vendor/k8s.io/api/rbac/v1/generated.proto @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,11 +21,9 @@ syntax = 'proto2'; package k8s.io.api.rbac.v1; -import "k8s.io/api/rbac/v1alpha1/generated.proto"; import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; -import "k8s.io/apimachinery/pkg/util/intstr/generated.proto"; // Package-wide variables from generator "generated". option go_package = "v1"; @@ -62,6 +60,7 @@ message ClusterRoleBinding { optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; // Subjects holds references to the objects the role applies to. + // +optional repeated Subject subjects = 2; // RoleRef can only reference a ClusterRole in the global namespace. @@ -134,6 +133,7 @@ message RoleBinding { optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; // Subjects holds references to the objects the role applies to. + // +optional repeated Subject subjects = 2; // RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace. diff --git a/vendor/k8s.io/api/rbac/v1/types.go b/vendor/k8s.io/api/rbac/v1/types.go index 91990548b..17163cbb2 100644 --- a/vendor/k8s.io/api/rbac/v1/types.go +++ b/vendor/k8s.io/api/rbac/v1/types.go @@ -124,7 +124,8 @@ type RoleBinding struct { metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Subjects holds references to the objects the role applies to. - Subjects []Subject `json:"subjects" protobuf:"bytes,2,rep,name=subjects"` + // +optional + Subjects []Subject `json:"subjects,omitempty" protobuf:"bytes,2,rep,name=subjects"` // RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace. // If the RoleRef cannot be resolved, the Authorizer must return an error. @@ -199,7 +200,8 @@ type ClusterRoleBinding struct { metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Subjects holds references to the objects the role applies to. - Subjects []Subject `json:"subjects" protobuf:"bytes,2,rep,name=subjects"` + // +optional + Subjects []Subject `json:"subjects,omitempty" protobuf:"bytes,2,rep,name=subjects"` // RoleRef can only reference a ClusterRole in the global namespace. // If the RoleRef cannot be resolved, the Authorizer must return an error. diff --git a/vendor/k8s.io/api/rbac/v1/types_swagger_doc_generated.go b/vendor/k8s.io/api/rbac/v1/types_swagger_doc_generated.go index 280ae5a82..83ce310e6 100644 --- a/vendor/k8s.io/api/rbac/v1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/rbac/v1/types_swagger_doc_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2016 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -26,9 +26,9 @@ package v1 // // Those methods can be generated by using hack/update-generated-swagger-docs.sh -// AUTO-GENERATED FUNCTIONS START HERE +// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT. var map_AggregationRule = map[string]string{ - "": "AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole", + "": "AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole", "clusterRoleSelectors": "ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole's permissions will be added", } diff --git a/vendor/k8s.io/api/rbac/v1/zz_generated.deepcopy.go b/vendor/k8s.io/api/rbac/v1/zz_generated.deepcopy.go index 0a2a4d08e..07eb321ea 100644 --- a/vendor/k8s.io/api/rbac/v1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/api/rbac/v1/zz_generated.deepcopy.go @@ -1,7 +1,7 @@ // +build !ignore_autogenerated /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ limitations under the License. package v1 import ( - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" ) @@ -30,7 +30,7 @@ func (in *AggregationRule) DeepCopyInto(out *AggregationRule) { *out = *in if in.ClusterRoleSelectors != nil { in, out := &in.ClusterRoleSelectors, &out.ClusterRoleSelectors - *out = make([]meta_v1.LabelSelector, len(*in)) + *out = make([]metav1.LabelSelector, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } @@ -62,12 +62,8 @@ func (in *ClusterRole) DeepCopyInto(out *ClusterRole) { } if in.AggregationRule != nil { in, out := &in.AggregationRule, &out.AggregationRule - if *in == nil { - *out = nil - } else { - *out = new(AggregationRule) - (*in).DeepCopyInto(*out) - } + *out = new(AggregationRule) + (*in).DeepCopyInto(*out) } return } diff --git a/vendor/k8s.io/api/rbac/v1alpha1/BUILD b/vendor/k8s.io/api/rbac/v1alpha1/BUILD deleted file mode 100644 index 68d7cdfbb..000000000 --- a/vendor/k8s.io/api/rbac/v1alpha1/BUILD +++ /dev/null @@ -1,44 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "generated.pb.go", - "register.go", - "types.go", - "types_swagger_doc_generated.go", - "zz_generated.deepcopy.go", - ], - importpath = "k8s.io/api/rbac/v1alpha1", - deps = [ - "//vendor/github.com/gogo/protobuf/proto:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) - -filegroup( - name = "go_default_library_protos", - srcs = ["generated.proto"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/api/rbac/v1alpha1/doc.go b/vendor/k8s.io/api/rbac/v1alpha1/doc.go index 5236a477f..f2547a58f 100644 --- a/vendor/k8s.io/api/rbac/v1alpha1/doc.go +++ b/vendor/k8s.io/api/rbac/v1alpha1/doc.go @@ -18,4 +18,5 @@ limitations under the License. // +k8s:openapi-gen=true // +groupName=rbac.authorization.k8s.io + package v1alpha1 // import "k8s.io/api/rbac/v1alpha1" diff --git a/vendor/k8s.io/api/rbac/v1alpha1/generated.pb.go b/vendor/k8s.io/api/rbac/v1alpha1/generated.pb.go index c07cdc75d..e035b331f 100644 --- a/vendor/k8s.io/api/rbac/v1alpha1/generated.pb.go +++ b/vendor/k8s.io/api/rbac/v1alpha1/generated.pb.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -14,9 +14,8 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: k8s.io/kubernetes/vendor/k8s.io/api/rbac/v1alpha1/generated.proto -// DO NOT EDIT! /* Package v1alpha1 is a generated protocol buffer package. @@ -641,24 +640,6 @@ func (m *Subject) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Generated(dAtA []byte, offset int, v uint64) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - dAtA[offset+4] = uint8(v >> 32) - dAtA[offset+5] = uint8(v >> 40) - dAtA[offset+6] = uint8(v >> 48) - dAtA[offset+7] = uint8(v >> 56) - return offset + 8 -} -func encodeFixed32Generated(dAtA []byte, offset int, v uint32) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - return offset + 4 -} func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -2693,58 +2674,57 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 844 bytes of a gzipped FileDescriptorProto + // 830 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x55, 0xbf, 0x8f, 0xe3, 0x44, - 0x14, 0xce, 0x64, 0x13, 0x36, 0x99, 0x65, 0x15, 0x6e, 0x38, 0x21, 0x6b, 0x85, 0x9c, 0xc5, 0x02, - 0xe9, 0x10, 0x87, 0xcd, 0xee, 0x21, 0xa0, 0xa1, 0x58, 0x5f, 0x81, 0x16, 0x96, 0xbd, 0x65, 0x4e, - 0x5c, 0x81, 0x28, 0x98, 0x38, 0x73, 0xce, 0x10, 0xdb, 0x63, 0xcd, 0x8c, 0x23, 0x9d, 0x68, 0x68, - 0x68, 0x11, 0x0d, 0x05, 0x3d, 0x2d, 0x0d, 0x94, 0xfc, 0x03, 0x4b, 0x77, 0xe5, 0x56, 0x11, 0x6b, - 0xfe, 0x10, 0x90, 0xc7, 0x76, 0xec, 0xfc, 0x22, 0xa9, 0x22, 0x21, 0x51, 0x25, 0xf3, 0xde, 0xf7, - 0xbe, 0xf7, 0xde, 0x37, 0xf3, 0x9e, 0xe1, 0xd9, 0xf8, 0x03, 0x69, 0x33, 0xee, 0x8c, 0x93, 0x01, - 0x15, 0x11, 0x55, 0x54, 0x3a, 0x13, 0x1a, 0x0d, 0xb9, 0x70, 0x0a, 0x07, 0x89, 0x99, 0x23, 0x06, - 0xc4, 0x73, 0x26, 0x27, 0x24, 0x88, 0x47, 0xe4, 0xc4, 0xf1, 0x69, 0x44, 0x05, 0x51, 0x74, 0x68, - 0xc7, 0x82, 0x2b, 0x8e, 0x8c, 0x1c, 0x69, 0x93, 0x98, 0xd9, 0x19, 0xd2, 0x2e, 0x91, 0x47, 0x6f, - 0xfb, 0x4c, 0x8d, 0x92, 0x81, 0xed, 0xf1, 0xd0, 0xf1, 0xb9, 0xcf, 0x1d, 0x1d, 0x30, 0x48, 0x9e, - 0xea, 0x93, 0x3e, 0xe8, 0x7f, 0x39, 0xd1, 0xd1, 0xbb, 0x55, 0xca, 0x90, 0x78, 0x23, 0x16, 0x51, - 0xf1, 0xcc, 0x89, 0xc7, 0x7e, 0x66, 0x90, 0x4e, 0x48, 0x15, 0x71, 0x26, 0x4b, 0xe9, 0x8f, 0x9c, - 0x75, 0x51, 0x22, 0x89, 0x14, 0x0b, 0xe9, 0x52, 0xc0, 0x7b, 0x9b, 0x02, 0xa4, 0x37, 0xa2, 0x21, - 0x59, 0x8a, 0x7b, 0xb0, 0x2e, 0x2e, 0x51, 0x2c, 0x70, 0x58, 0xa4, 0xa4, 0x12, 0x8b, 0x41, 0xd6, - 0x4f, 0x00, 0xf6, 0xce, 0x7c, 0x5f, 0x50, 0x9f, 0x28, 0xc6, 0x23, 0x9c, 0x04, 0x14, 0x7d, 0x07, - 0xe0, 0x5d, 0x2f, 0x48, 0xa4, 0xa2, 0x02, 0xf3, 0x80, 0x3e, 0xa6, 0x01, 0xf5, 0x14, 0x17, 0xd2, - 0x00, 0xc7, 0x7b, 0xf7, 0x0e, 0x4e, 0x1f, 0xd8, 0x95, 0xa0, 0xb3, 0x44, 0x76, 0x3c, 0xf6, 0x33, - 0x83, 0xb4, 0x33, 0x1d, 0xec, 0xc9, 0x89, 0x7d, 0x41, 0x06, 0x34, 0x28, 0x63, 0xdd, 0x57, 0xaf, - 0xa7, 0xfd, 0x46, 0x3a, 0xed, 0xdf, 0x7d, 0xb8, 0x82, 0x18, 0xaf, 0x4c, 0x67, 0xfd, 0xdc, 0x84, - 0x07, 0x35, 0x38, 0xfa, 0x0a, 0x76, 0x32, 0xf2, 0x21, 0x51, 0xc4, 0x00, 0xc7, 0xe0, 0xde, 0xc1, - 0xe9, 0x3b, 0xdb, 0x95, 0xf2, 0x68, 0xf0, 0x35, 0xf5, 0xd4, 0xa7, 0x54, 0x11, 0x17, 0x15, 0x75, - 0xc0, 0xca, 0x86, 0x67, 0xac, 0xe8, 0x1c, 0xb6, 0x45, 0x12, 0x50, 0x69, 0x34, 0x75, 0xa7, 0xaf, - 0xdb, 0xeb, 0x9e, 0x8e, 0x7d, 0xc5, 0x03, 0xe6, 0x3d, 0xcb, 0xe4, 0x72, 0x0f, 0x0b, 0xca, 0x76, - 0x76, 0x92, 0x38, 0x67, 0x40, 0x23, 0xd8, 0x23, 0xf3, 0xba, 0x1a, 0x7b, 0xba, 0xe6, 0x37, 0xd7, - 0x93, 0x2e, 0x5c, 0x84, 0xfb, 0x72, 0x3a, 0xed, 0x2f, 0xde, 0x0e, 0x5e, 0xa4, 0xb5, 0x7e, 0x6c, - 0x42, 0x54, 0x93, 0xc9, 0x65, 0xd1, 0x90, 0x45, 0xfe, 0x0e, 0xd4, 0x7a, 0x04, 0x3b, 0x32, 0xd1, - 0x8e, 0x52, 0xb0, 0xd7, 0xd6, 0xf7, 0xf6, 0x38, 0x47, 0xba, 0x2f, 0x15, 0x94, 0x9d, 0xc2, 0x20, - 0xf1, 0x8c, 0x04, 0x5d, 0xc0, 0x7d, 0xc1, 0x03, 0x8a, 0xe9, 0xd3, 0x42, 0xab, 0x7f, 0xe1, 0xc3, - 0x39, 0xd0, 0xed, 0x15, 0x7c, 0xfb, 0x85, 0x01, 0x97, 0x14, 0xd6, 0x1f, 0x00, 0xbe, 0xb2, 0xac, - 0xcb, 0x05, 0x93, 0x0a, 0x7d, 0xb9, 0xa4, 0x8d, 0xbd, 0xe5, 0xa3, 0x66, 0x32, 0x57, 0x66, 0xd6, - 0x46, 0x69, 0xa9, 0xe9, 0xf2, 0x19, 0x6c, 0x33, 0x45, 0xc3, 0x52, 0x94, 0xfb, 0xeb, 0x9b, 0x58, - 0x2e, 0xaf, 0x7a, 0x4d, 0xe7, 0x19, 0x05, 0xce, 0x99, 0xac, 0xdf, 0x01, 0xec, 0xd5, 0xc0, 0x3b, - 0x68, 0xe2, 0xe3, 0xf9, 0x26, 0xde, 0xd8, 0xae, 0x89, 0xd5, 0xd5, 0xff, 0x0d, 0x20, 0xac, 0x06, - 0x06, 0xf5, 0x61, 0x7b, 0x42, 0xc5, 0x20, 0xdf, 0x27, 0x5d, 0xb7, 0x9b, 0xe1, 0x9f, 0x64, 0x06, - 0x9c, 0xdb, 0xd1, 0x5b, 0xb0, 0x4b, 0x62, 0xf6, 0x91, 0xe0, 0x49, 0x2c, 0x8d, 0x3d, 0x0d, 0x3a, - 0x4c, 0xa7, 0xfd, 0xee, 0xd9, 0xd5, 0x79, 0x6e, 0xc4, 0x95, 0x3f, 0x03, 0x0b, 0x2a, 0x79, 0x22, - 0x3c, 0x2a, 0x8d, 0x56, 0x05, 0xc6, 0xa5, 0x11, 0x57, 0x7e, 0xf4, 0x3e, 0x3c, 0x2c, 0x0f, 0x97, - 0x24, 0xa4, 0xd2, 0x68, 0xeb, 0x80, 0x3b, 0xe9, 0xb4, 0x7f, 0x88, 0xeb, 0x0e, 0x3c, 0x8f, 0x43, - 0x1f, 0xc2, 0x5e, 0xc4, 0xa3, 0x12, 0xf2, 0x39, 0xbe, 0x90, 0xc6, 0x0b, 0x3a, 0x54, 0xcf, 0xe8, - 0xe5, 0xbc, 0x0b, 0x2f, 0x62, 0xad, 0xdf, 0x00, 0x6c, 0xfd, 0xe7, 0x76, 0x98, 0xf5, 0x7d, 0x13, - 0x1e, 0xfc, 0xbf, 0x52, 0x6a, 0x2b, 0x25, 0x1b, 0xc3, 0xdd, 0xee, 0x92, 0xed, 0xc7, 0x70, 0xf3, - 0x12, 0xf9, 0x05, 0xc0, 0xce, 0x8e, 0xb6, 0xc7, 0xc3, 0xf9, 0xb2, 0xcd, 0x0d, 0x65, 0xaf, 0xae, - 0xf7, 0x1b, 0x58, 0xde, 0x00, 0xba, 0x0f, 0x3b, 0xe5, 0xc4, 0xeb, 0x6a, 0xbb, 0x55, 0xf6, 0x72, - 0x29, 0xe0, 0x19, 0x02, 0x1d, 0xc3, 0xd6, 0x98, 0x45, 0x43, 0xa3, 0xa9, 0x91, 0x2f, 0x16, 0xc8, - 0xd6, 0x27, 0x2c, 0x1a, 0x62, 0xed, 0xc9, 0x10, 0x11, 0x09, 0xf3, 0x4f, 0x72, 0x0d, 0x91, 0xcd, - 0x3a, 0xd6, 0x1e, 0xeb, 0x57, 0x00, 0xf7, 0x8b, 0xf7, 0x34, 0xe3, 0x03, 0x6b, 0xf9, 0x4e, 0x21, - 0x24, 0x31, 0x7b, 0x42, 0x85, 0x64, 0x3c, 0x2a, 0xf2, 0xce, 0x5e, 0xfa, 0xd9, 0xd5, 0x79, 0xe1, - 0xc1, 0x35, 0xd4, 0xe6, 0x1a, 0x90, 0x03, 0xbb, 0xd9, 0xaf, 0x8c, 0x89, 0x47, 0x8d, 0x96, 0x86, - 0xdd, 0x29, 0x60, 0xdd, 0xcb, 0xd2, 0x81, 0x2b, 0x8c, 0x6b, 0x5f, 0xdf, 0x9a, 0x8d, 0xe7, 0xb7, - 0x66, 0xe3, 0xe6, 0xd6, 0x6c, 0x7c, 0x9b, 0x9a, 0xe0, 0x3a, 0x35, 0xc1, 0xf3, 0xd4, 0x04, 0x37, - 0xa9, 0x09, 0xfe, 0x4c, 0x4d, 0xf0, 0xc3, 0x5f, 0x66, 0xe3, 0x8b, 0x4e, 0x29, 0xfe, 0x3f, 0x01, - 0x00, 0x00, 0xff, 0xff, 0xeb, 0xcc, 0xe2, 0x61, 0x5e, 0x0b, 0x00, 0x00, + 0x14, 0xce, 0x64, 0x13, 0x36, 0x99, 0x25, 0x0a, 0x37, 0x9c, 0x90, 0xb5, 0x42, 0xce, 0x62, 0x81, + 0x74, 0x88, 0xc3, 0x66, 0x17, 0x04, 0x34, 0x14, 0xf1, 0x15, 0x28, 0x10, 0xf6, 0x96, 0x39, 0x71, + 0x05, 0xa2, 0x60, 0xe2, 0xcc, 0x39, 0x43, 0x6c, 0x8f, 0x35, 0x63, 0x47, 0x3a, 0xd1, 0xd0, 0xd0, + 0x22, 0x1a, 0x0a, 0x7a, 0x5a, 0x1a, 0x28, 0xf9, 0x07, 0x96, 0xee, 0xca, 0xad, 0x22, 0xd6, 0xfc, + 0x21, 0x20, 0x8f, 0xed, 0xd8, 0xf9, 0x45, 0x52, 0x45, 0x42, 0xba, 0x2a, 0x99, 0xf7, 0xbe, 0xf7, + 0xbd, 0xf7, 0xbe, 0x99, 0xf7, 0x0c, 0xfb, 0xd3, 0x0f, 0xa5, 0xc9, 0xb8, 0x35, 0x8d, 0x47, 0x54, + 0x04, 0x34, 0xa2, 0xd2, 0x9a, 0xd1, 0x60, 0xcc, 0x85, 0x95, 0x3b, 0x48, 0xc8, 0x2c, 0x31, 0x22, + 0x8e, 0x35, 0x3b, 0x27, 0x5e, 0x38, 0x21, 0xe7, 0x96, 0x4b, 0x03, 0x2a, 0x48, 0x44, 0xc7, 0x66, + 0x28, 0x78, 0xc4, 0x91, 0x96, 0x21, 0x4d, 0x12, 0x32, 0x33, 0x45, 0x9a, 0x05, 0xf2, 0xf4, 0x6d, + 0x97, 0x45, 0x93, 0x78, 0x64, 0x3a, 0xdc, 0xb7, 0x5c, 0xee, 0x72, 0x4b, 0x05, 0x8c, 0xe2, 0x27, + 0xea, 0xa4, 0x0e, 0xea, 0x5f, 0x46, 0x74, 0xfa, 0x5e, 0x99, 0xd2, 0x27, 0xce, 0x84, 0x05, 0x54, + 0x3c, 0xb5, 0xc2, 0xa9, 0x9b, 0x1a, 0xa4, 0xe5, 0xd3, 0x88, 0x58, 0xb3, 0xb5, 0xf4, 0xa7, 0xd6, + 0xb6, 0x28, 0x11, 0x07, 0x11, 0xf3, 0xe9, 0x5a, 0xc0, 0xfb, 0xbb, 0x02, 0xa4, 0x33, 0xa1, 0x3e, + 0x59, 0x8d, 0x33, 0x7e, 0x06, 0xb0, 0xdb, 0x77, 0x5d, 0x41, 0x5d, 0x12, 0x31, 0x1e, 0xe0, 0xd8, + 0xa3, 0xe8, 0x7b, 0x00, 0xef, 0x3a, 0x5e, 0x2c, 0x23, 0x2a, 0x30, 0xf7, 0xe8, 0x23, 0xea, 0x51, + 0x27, 0xe2, 0x42, 0x6a, 0xe0, 0xec, 0xe8, 0xde, 0xc9, 0xc5, 0xbb, 0x66, 0xa9, 0xcd, 0x22, 0x97, + 0x19, 0x4e, 0xdd, 0xd4, 0x20, 0xcd, 0xb4, 0x25, 0x73, 0x76, 0x6e, 0x0e, 0xc9, 0x88, 0x7a, 0x45, + 0xac, 0xfd, 0xea, 0xf5, 0xbc, 0x57, 0x4b, 0xe6, 0xbd, 0xbb, 0x0f, 0x36, 0x10, 0xe3, 0x8d, 0xe9, + 0x8c, 0x5f, 0xea, 0xf0, 0xa4, 0x02, 0x47, 0x5f, 0xc3, 0x56, 0x4a, 0x3e, 0x26, 0x11, 0xd1, 0xc0, + 0x19, 0xb8, 0x77, 0x72, 0xf1, 0xce, 0x7e, 0xa5, 0x3c, 0x1c, 0x7d, 0x43, 0x9d, 0xe8, 0x33, 0x1a, + 0x11, 0x1b, 0xe5, 0x75, 0xc0, 0xd2, 0x86, 0x17, 0xac, 0x68, 0x00, 0x9b, 0x22, 0xf6, 0xa8, 0xd4, + 0xea, 0xaa, 0xd3, 0xd7, 0xcd, 0x6d, 0xaf, 0xc0, 0xbc, 0xe2, 0x1e, 0x73, 0x9e, 0xa6, 0x72, 0xd9, + 0x9d, 0x9c, 0xb2, 0x99, 0x9e, 0x24, 0xce, 0x18, 0xd0, 0x04, 0x76, 0xc9, 0xb2, 0xae, 0xda, 0x91, + 0xaa, 0xf9, 0xcd, 0xed, 0xa4, 0x2b, 0x17, 0x61, 0xbf, 0x9c, 0xcc, 0x7b, 0xab, 0xb7, 0x83, 0x57, + 0x69, 0x8d, 0x9f, 0xea, 0x10, 0x55, 0x64, 0xb2, 0x59, 0x30, 0x66, 0x81, 0x7b, 0x00, 0xb5, 0x1e, + 0xc2, 0x96, 0x8c, 0x95, 0xa3, 0x10, 0xec, 0xb5, 0xed, 0xbd, 0x3d, 0xca, 0x90, 0xf6, 0x4b, 0x39, + 0x65, 0x2b, 0x37, 0x48, 0xbc, 0x20, 0x41, 0x43, 0x78, 0x2c, 0xb8, 0x47, 0x31, 0x7d, 0x92, 0x6b, + 0xf5, 0x1f, 0x7c, 0x38, 0x03, 0xda, 0xdd, 0x9c, 0xef, 0x38, 0x37, 0xe0, 0x82, 0xc2, 0xf8, 0x13, + 0xc0, 0x57, 0xd6, 0x75, 0x19, 0x32, 0x19, 0xa1, 0xaf, 0xd6, 0xb4, 0x31, 0xf7, 0x7c, 0xd4, 0x4c, + 0x66, 0xca, 0x2c, 0xda, 0x28, 0x2c, 0x15, 0x5d, 0x3e, 0x87, 0x4d, 0x16, 0x51, 0xbf, 0x10, 0xe5, + 0xfe, 0xf6, 0x26, 0xd6, 0xcb, 0x2b, 0x5f, 0xd3, 0x20, 0xa5, 0xc0, 0x19, 0x93, 0xf1, 0x07, 0x80, + 0xdd, 0x0a, 0xf8, 0x00, 0x4d, 0x7c, 0xb2, 0xdc, 0xc4, 0x1b, 0xfb, 0x35, 0xb1, 0xb9, 0xfa, 0x7f, + 0x00, 0x84, 0xe5, 0xc0, 0xa0, 0x1e, 0x6c, 0xce, 0xa8, 0x18, 0x65, 0xfb, 0xa4, 0x6d, 0xb7, 0x53, + 0xfc, 0xe3, 0xd4, 0x80, 0x33, 0x3b, 0x7a, 0x0b, 0xb6, 0x49, 0xc8, 0x3e, 0x16, 0x3c, 0x0e, 0xa5, + 0x76, 0xa4, 0x40, 0x9d, 0x64, 0xde, 0x6b, 0xf7, 0xaf, 0x06, 0x99, 0x11, 0x97, 0xfe, 0x14, 0x2c, + 0xa8, 0xe4, 0xb1, 0x70, 0xa8, 0xd4, 0x1a, 0x25, 0x18, 0x17, 0x46, 0x5c, 0xfa, 0xd1, 0x07, 0xb0, + 0x53, 0x1c, 0x2e, 0x89, 0x4f, 0xa5, 0xd6, 0x54, 0x01, 0x77, 0x92, 0x79, 0xaf, 0x83, 0xab, 0x0e, + 0xbc, 0x8c, 0x43, 0x1f, 0xc1, 0x6e, 0xc0, 0x83, 0x02, 0xf2, 0x05, 0x1e, 0x4a, 0xed, 0x05, 0x15, + 0xaa, 0x66, 0xf4, 0x72, 0xd9, 0x85, 0x57, 0xb1, 0xc6, 0xef, 0x00, 0x36, 0xfe, 0x77, 0x3b, 0xcc, + 0xf8, 0xa1, 0x0e, 0x4f, 0x9e, 0xaf, 0x94, 0xca, 0x4a, 0x49, 0xc7, 0xf0, 0xb0, 0xbb, 0x64, 0xff, + 0x31, 0xdc, 0xbd, 0x44, 0x7e, 0x05, 0xb0, 0x75, 0xa0, 0xed, 0xf1, 0x60, 0xb9, 0x6c, 0x7d, 0x47, + 0xd9, 0x9b, 0xeb, 0xfd, 0x16, 0x16, 0x37, 0x80, 0xee, 0xc3, 0x56, 0x31, 0xf1, 0xaa, 0xda, 0x76, + 0x99, 0xbd, 0x58, 0x0a, 0x78, 0x81, 0x40, 0x67, 0xb0, 0x31, 0x65, 0xc1, 0x58, 0xab, 0x2b, 0xe4, + 0x8b, 0x39, 0xb2, 0xf1, 0x29, 0x0b, 0xc6, 0x58, 0x79, 0x52, 0x44, 0x40, 0xfc, 0xec, 0x93, 0x5c, + 0x41, 0xa4, 0xb3, 0x8e, 0x95, 0xc7, 0xf8, 0x0d, 0xc0, 0xe3, 0xfc, 0x3d, 0x2d, 0xf8, 0xc0, 0x56, + 0xbe, 0x0b, 0x08, 0x49, 0xc8, 0x1e, 0x53, 0x21, 0x19, 0x0f, 0xf2, 0xbc, 0x8b, 0x97, 0xde, 0xbf, + 0x1a, 0xe4, 0x1e, 0x5c, 0x41, 0xed, 0xae, 0x01, 0x59, 0xb0, 0x9d, 0xfe, 0xca, 0x90, 0x38, 0x54, + 0x6b, 0x28, 0xd8, 0x9d, 0x1c, 0xd6, 0xbe, 0x2c, 0x1c, 0xb8, 0xc4, 0xd8, 0xe6, 0xf5, 0xad, 0x5e, + 0x7b, 0x76, 0xab, 0xd7, 0x6e, 0x6e, 0xf5, 0xda, 0x77, 0x89, 0x0e, 0xae, 0x13, 0x1d, 0x3c, 0x4b, + 0x74, 0x70, 0x93, 0xe8, 0xe0, 0xaf, 0x44, 0x07, 0x3f, 0xfe, 0xad, 0xd7, 0xbe, 0x6c, 0x15, 0xe2, + 0xff, 0x1b, 0x00, 0x00, 0xff, 0xff, 0xb0, 0x73, 0x15, 0x10, 0x29, 0x0b, 0x00, 0x00, } diff --git a/vendor/k8s.io/api/rbac/v1alpha1/generated.proto b/vendor/k8s.io/api/rbac/v1alpha1/generated.proto index 41a193f55..cde3aaac9 100644 --- a/vendor/k8s.io/api/rbac/v1alpha1/generated.proto +++ b/vendor/k8s.io/api/rbac/v1alpha1/generated.proto @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -24,7 +24,6 @@ package k8s.io.api.rbac.v1alpha1; import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; -import "k8s.io/apimachinery/pkg/util/intstr/generated.proto"; // Package-wide variables from generator "generated". option go_package = "v1alpha1"; @@ -61,6 +60,7 @@ message ClusterRoleBinding { optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; // Subjects holds references to the objects the role applies to. + // +optional repeated Subject subjects = 2; // RoleRef can only reference a ClusterRole in the global namespace. @@ -134,6 +134,7 @@ message RoleBinding { optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; // Subjects holds references to the objects the role applies to. + // +optional repeated Subject subjects = 2; // RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace. diff --git a/vendor/k8s.io/api/rbac/v1alpha1/types.go b/vendor/k8s.io/api/rbac/v1alpha1/types.go index 843d998ec..398d6a169 100644 --- a/vendor/k8s.io/api/rbac/v1alpha1/types.go +++ b/vendor/k8s.io/api/rbac/v1alpha1/types.go @@ -126,7 +126,8 @@ type RoleBinding struct { metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Subjects holds references to the objects the role applies to. - Subjects []Subject `json:"subjects" protobuf:"bytes,2,rep,name=subjects"` + // +optional + Subjects []Subject `json:"subjects,omitempty" protobuf:"bytes,2,rep,name=subjects"` // RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace. // If the RoleRef cannot be resolved, the Authorizer must return an error. @@ -201,7 +202,8 @@ type ClusterRoleBinding struct { metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Subjects holds references to the objects the role applies to. - Subjects []Subject `json:"subjects" protobuf:"bytes,2,rep,name=subjects"` + // +optional + Subjects []Subject `json:"subjects,omitempty" protobuf:"bytes,2,rep,name=subjects"` // RoleRef can only reference a ClusterRole in the global namespace. // If the RoleRef cannot be resolved, the Authorizer must return an error. diff --git a/vendor/k8s.io/api/rbac/v1alpha1/types_swagger_doc_generated.go b/vendor/k8s.io/api/rbac/v1alpha1/types_swagger_doc_generated.go index e56cd0f10..d7b194ae4 100644 --- a/vendor/k8s.io/api/rbac/v1alpha1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/rbac/v1alpha1/types_swagger_doc_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2016 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -26,9 +26,9 @@ package v1alpha1 // // Those methods can be generated by using hack/update-generated-swagger-docs.sh -// AUTO-GENERATED FUNCTIONS START HERE +// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT. var map_AggregationRule = map[string]string{ - "": "AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole", + "": "AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole", "clusterRoleSelectors": "ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole's permissions will be added", } diff --git a/vendor/k8s.io/api/rbac/v1alpha1/zz_generated.deepcopy.go b/vendor/k8s.io/api/rbac/v1alpha1/zz_generated.deepcopy.go index 562451cd6..97f63331e 100644 --- a/vendor/k8s.io/api/rbac/v1alpha1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/api/rbac/v1alpha1/zz_generated.deepcopy.go @@ -1,7 +1,7 @@ // +build !ignore_autogenerated /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -62,12 +62,8 @@ func (in *ClusterRole) DeepCopyInto(out *ClusterRole) { } if in.AggregationRule != nil { in, out := &in.AggregationRule, &out.AggregationRule - if *in == nil { - *out = nil - } else { - *out = new(AggregationRule) - (*in).DeepCopyInto(*out) - } + *out = new(AggregationRule) + (*in).DeepCopyInto(*out) } return } diff --git a/vendor/k8s.io/api/rbac/v1beta1/BUILD b/vendor/k8s.io/api/rbac/v1beta1/BUILD deleted file mode 100644 index c9aa763f4..000000000 --- a/vendor/k8s.io/api/rbac/v1beta1/BUILD +++ /dev/null @@ -1,44 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "generated.pb.go", - "register.go", - "types.go", - "types_swagger_doc_generated.go", - "zz_generated.deepcopy.go", - ], - importpath = "k8s.io/api/rbac/v1beta1", - deps = [ - "//vendor/github.com/gogo/protobuf/proto:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) - -filegroup( - name = "go_default_library_protos", - srcs = ["generated.proto"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/api/rbac/v1beta1/doc.go b/vendor/k8s.io/api/rbac/v1beta1/doc.go index 4b77c9c6b..516625eee 100644 --- a/vendor/k8s.io/api/rbac/v1beta1/doc.go +++ b/vendor/k8s.io/api/rbac/v1beta1/doc.go @@ -18,4 +18,5 @@ limitations under the License. // +k8s:openapi-gen=true // +groupName=rbac.authorization.k8s.io + package v1beta1 // import "k8s.io/api/rbac/v1beta1" diff --git a/vendor/k8s.io/api/rbac/v1beta1/generated.pb.go b/vendor/k8s.io/api/rbac/v1beta1/generated.pb.go index c2525e0df..904a6e7a2 100644 --- a/vendor/k8s.io/api/rbac/v1beta1/generated.pb.go +++ b/vendor/k8s.io/api/rbac/v1beta1/generated.pb.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -14,9 +14,8 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: k8s.io/kubernetes/vendor/k8s.io/api/rbac/v1beta1/generated.proto -// DO NOT EDIT! /* Package v1beta1 is a generated protocol buffer package. @@ -641,24 +640,6 @@ func (m *Subject) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Generated(dAtA []byte, offset int, v uint64) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - dAtA[offset+4] = uint8(v >> 32) - dAtA[offset+5] = uint8(v >> 40) - dAtA[offset+6] = uint8(v >> 48) - dAtA[offset+7] = uint8(v >> 56) - return offset + 8 -} -func encodeFixed32Generated(dAtA []byte, offset int, v uint32) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - return offset + 4 -} func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -2693,58 +2674,56 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 833 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x55, 0xbf, 0x8f, 0xe3, 0x44, - 0x14, 0xce, 0x64, 0x13, 0x6d, 0x3c, 0xcb, 0x2a, 0xdc, 0x70, 0x02, 0x6b, 0x05, 0xce, 0x2a, 0x50, - 0x44, 0x3a, 0xce, 0x66, 0xef, 0x10, 0xd0, 0x20, 0x71, 0xa6, 0x80, 0xd5, 0x2d, 0x61, 0x35, 0x27, - 0x28, 0x10, 0x05, 0x63, 0x67, 0xce, 0x19, 0xe2, 0x5f, 0x9a, 0x19, 0x47, 0x3a, 0xd1, 0xd0, 0xd0, - 0x51, 0x20, 0x51, 0xd1, 0x52, 0x53, 0x51, 0xf2, 0x17, 0xa4, 0xbc, 0xf2, 0xaa, 0x88, 0x35, 0x7f, - 0x08, 0x68, 0xfc, 0x23, 0x4e, 0xe2, 0xf8, 0x2e, 0x55, 0x24, 0xa4, 0xab, 0x76, 0xe7, 0xbd, 0xef, - 0x7d, 0xef, 0x7b, 0x9f, 0x67, 0x5e, 0xe0, 0x27, 0xb3, 0x8f, 0x84, 0xc9, 0x22, 0x6b, 0x96, 0x38, - 0x94, 0x87, 0x54, 0x52, 0x61, 0xcd, 0x69, 0x38, 0x89, 0xb8, 0x55, 0x24, 0x48, 0xcc, 0x2c, 0xee, - 0x10, 0xd7, 0x9a, 0x5f, 0x38, 0x54, 0x92, 0x0b, 0xcb, 0xa3, 0x21, 0xe5, 0x44, 0xd2, 0x89, 0x19, - 0xf3, 0x48, 0x46, 0xe8, 0x8d, 0x1c, 0x68, 0x92, 0x98, 0x99, 0x0a, 0x68, 0x16, 0xc0, 0xb3, 0xbb, - 0x1e, 0x93, 0xd3, 0xc4, 0x31, 0xdd, 0x28, 0xb0, 0xbc, 0xc8, 0x8b, 0xac, 0x0c, 0xef, 0x24, 0x8f, - 0xb3, 0x53, 0x76, 0xc8, 0xfe, 0xcb, 0x79, 0xce, 0x46, 0xf5, 0x86, 0xc4, 0x8f, 0xa7, 0xf5, 0x8e, - 0x67, 0xef, 0x57, 0xc8, 0x80, 0xb8, 0x53, 0x16, 0x52, 0xfe, 0xc4, 0x8a, 0x67, 0x9e, 0x0a, 0x08, - 0x2b, 0xa0, 0x92, 0x58, 0xf3, 0x7a, 0x95, 0xd5, 0x54, 0xc5, 0x93, 0x50, 0xb2, 0x80, 0xd6, 0x0a, - 0x3e, 0x78, 0x51, 0x81, 0x70, 0xa7, 0x34, 0x20, 0xb5, 0xba, 0xfb, 0x4d, 0x75, 0x89, 0x64, 0xbe, - 0xc5, 0x42, 0x29, 0x24, 0xdf, 0x2e, 0x1a, 0xfe, 0x06, 0x60, 0xff, 0x81, 0xe7, 0x71, 0xea, 0x11, - 0xc9, 0xa2, 0x10, 0x27, 0x3e, 0x45, 0x3f, 0x01, 0x78, 0xdb, 0xf5, 0x13, 0x21, 0x29, 0xc7, 0x91, - 0x4f, 0x1f, 0x51, 0x9f, 0xba, 0x32, 0xe2, 0x42, 0x07, 0xe7, 0x47, 0xa3, 0x93, 0x7b, 0xf7, 0xcd, - 0xca, 0xf9, 0x55, 0x23, 0x33, 0x9e, 0x79, 0x2a, 0x20, 0x4c, 0xe5, 0x83, 0x39, 0xbf, 0x30, 0xaf, - 0x88, 0x43, 0xfd, 0xb2, 0xd6, 0x7e, 0x73, 0xb1, 0x1c, 0xb4, 0xd2, 0xe5, 0xe0, 0xf6, 0xa7, 0x3b, - 0x88, 0xf1, 0xce, 0x76, 0xc3, 0xdf, 0xdb, 0xf0, 0x64, 0x0d, 0x8e, 0xbe, 0x83, 0x3d, 0x45, 0x3e, - 0x21, 0x92, 0xe8, 0xe0, 0x1c, 0x8c, 0x4e, 0xee, 0xbd, 0xb7, 0x9f, 0x94, 0x2f, 0x9d, 0xef, 0xa9, - 0x2b, 0xbf, 0xa0, 0x92, 0xd8, 0xa8, 0xd0, 0x01, 0xab, 0x18, 0x5e, 0xb1, 0xa2, 0xcf, 0x61, 0x97, - 0x27, 0x3e, 0x15, 0x7a, 0x3b, 0x9b, 0xf4, 0x6d, 0xb3, 0xe1, 0x8e, 0x99, 0xd7, 0x91, 0xcf, 0xdc, - 0x27, 0xca, 0x2d, 0xfb, 0xb4, 0x60, 0xec, 0xaa, 0x93, 0xc0, 0x39, 0x01, 0xf2, 0x60, 0x9f, 0x6c, - 0xda, 0xaa, 0x1f, 0x65, 0x92, 0x47, 0x8d, 0x9c, 0x5b, 0x9f, 0xc1, 0x7e, 0x2d, 0x5d, 0x0e, 0xb6, - 0xbf, 0x0d, 0xde, 0x66, 0x1d, 0xfe, 0xda, 0x86, 0x68, 0xcd, 0x24, 0x9b, 0x85, 0x13, 0x16, 0x7a, - 0x07, 0xf0, 0x6a, 0x0c, 0x7b, 0x22, 0xc9, 0x12, 0xa5, 0x5d, 0xe7, 0x8d, 0xa3, 0x3d, 0xca, 0x81, - 0xf6, 0xab, 0x05, 0x63, 0xaf, 0x08, 0x08, 0xbc, 0xe2, 0x40, 0x0f, 0xe1, 0x31, 0x8f, 0x7c, 0x8a, - 0xe9, 0xe3, 0xc2, 0xa9, 0x66, 0x3a, 0x9c, 0xe3, 0xec, 0x7e, 0x41, 0x77, 0x5c, 0x04, 0x70, 0xc9, - 0x30, 0x5c, 0x00, 0xf8, 0x7a, 0xdd, 0x95, 0x2b, 0x26, 0x24, 0xfa, 0xb6, 0xe6, 0x8c, 0xb9, 0xe7, - 0x85, 0x66, 0x22, 0xf7, 0x65, 0x35, 0x45, 0x19, 0x59, 0x73, 0xe5, 0x1a, 0x76, 0x99, 0xa4, 0x41, - 0x69, 0xc9, 0x9d, 0xc6, 0x19, 0xea, 0xea, 0xaa, 0x9b, 0x74, 0xa9, 0x18, 0x70, 0x4e, 0x34, 0xfc, - 0x0b, 0xc0, 0xfe, 0x1a, 0xf8, 0x00, 0x33, 0x5c, 0x6e, 0xce, 0xf0, 0xce, 0x5e, 0x33, 0xec, 0x16, - 0xff, 0x2f, 0x80, 0xb0, 0x7a, 0x2b, 0x68, 0x00, 0xbb, 0x73, 0xca, 0x9d, 0x7c, 0x93, 0x68, 0xb6, - 0xa6, 0xf0, 0x5f, 0xab, 0x00, 0xce, 0xe3, 0xe8, 0x0e, 0xd4, 0x48, 0xcc, 0x3e, 0xe3, 0x51, 0x12, - 0xe7, 0xed, 0x35, 0xfb, 0x34, 0x5d, 0x0e, 0xb4, 0x07, 0xd7, 0x97, 0x79, 0x10, 0x57, 0x79, 0x05, - 0xe6, 0x54, 0x44, 0x09, 0x77, 0xa9, 0xd0, 0x8f, 0x2a, 0x30, 0x2e, 0x83, 0xb8, 0xca, 0xa3, 0x0f, - 0xe1, 0x69, 0x79, 0x18, 0x93, 0x80, 0x0a, 0xbd, 0x93, 0x15, 0xdc, 0x4a, 0x97, 0x83, 0x53, 0xbc, - 0x9e, 0xc0, 0x9b, 0x38, 0xf4, 0x31, 0xec, 0x87, 0x51, 0x58, 0x42, 0xbe, 0xc2, 0x57, 0x42, 0xef, - 0x66, 0xa5, 0xd9, 0xfb, 0x1c, 0x6f, 0xa6, 0xf0, 0x36, 0x76, 0xf8, 0x27, 0x80, 0x9d, 0xff, 0xdb, - 0xf6, 0x1a, 0xfe, 0xdc, 0x86, 0x27, 0x2f, 0xb7, 0xc9, 0x6a, 0x9b, 0xa8, 0x27, 0x78, 0xd8, 0x35, - 0xb2, 0xf7, 0x13, 0x7c, 0xf1, 0xfe, 0xf8, 0x03, 0xc0, 0xde, 0x81, 0x16, 0x87, 0xbd, 0xa9, 0xfa, - 0xad, 0xe7, 0xab, 0xde, 0x2d, 0xf7, 0x07, 0x58, 0xfa, 0x8f, 0xde, 0x85, 0xbd, 0xf2, 0xb1, 0x67, - 0x62, 0xb5, 0xaa, 0x79, 0xb9, 0x0f, 0xf0, 0x0a, 0x81, 0xce, 0x61, 0x67, 0xc6, 0xc2, 0x89, 0xde, - 0xce, 0x90, 0xaf, 0x14, 0xc8, 0xce, 0x43, 0x16, 0x4e, 0x70, 0x96, 0x51, 0x88, 0x90, 0x04, 0xf9, - 0x0f, 0xf1, 0x1a, 0x42, 0x3d, 0x73, 0x9c, 0x65, 0x94, 0x57, 0xc7, 0xc5, 0x65, 0x5a, 0xf1, 0x81, - 0x46, 0xbe, 0x75, 0x7d, 0xed, 0x7d, 0xf4, 0x3d, 0xbf, 0x3b, 0xb2, 0xa0, 0xa6, 0xfe, 0x8a, 0x98, - 0xb8, 0x54, 0xef, 0x64, 0xb0, 0x5b, 0x05, 0x4c, 0x1b, 0x97, 0x09, 0x5c, 0x61, 0xec, 0xbb, 0x8b, - 0x1b, 0xa3, 0xf5, 0xf4, 0xc6, 0x68, 0x3d, 0xbb, 0x31, 0x5a, 0x3f, 0xa6, 0x06, 0x58, 0xa4, 0x06, - 0x78, 0x9a, 0x1a, 0xe0, 0x59, 0x6a, 0x80, 0xbf, 0x53, 0x03, 0xfc, 0xf2, 0x8f, 0xd1, 0xfa, 0xe6, - 0xb8, 0x70, 0xfd, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xd1, 0x99, 0xaf, 0xff, 0x74, 0x0b, 0x00, - 0x00, + // 808 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x55, 0xbd, 0x6f, 0xfb, 0x44, + 0x18, 0xce, 0xa5, 0x89, 0x12, 0x5f, 0x88, 0xc2, 0xef, 0xa8, 0xc0, 0xaa, 0xc0, 0x89, 0x02, 0x43, + 0xa5, 0x52, 0x9b, 0x16, 0x04, 0x2c, 0x48, 0xd4, 0x0c, 0x50, 0xb5, 0x84, 0xea, 0x2a, 0x18, 0x10, + 0x03, 0x67, 0xe7, 0xea, 0x1e, 0xf1, 0x97, 0xee, 0xec, 0x48, 0x15, 0x0b, 0x0b, 0x1b, 0x03, 0x12, + 0x13, 0x2b, 0x33, 0x13, 0x23, 0x7f, 0x41, 0xc6, 0x8e, 0x9d, 0x22, 0x6a, 0xfe, 0x10, 0xd0, 0xf9, + 0x23, 0xce, 0x67, 0x9b, 0x29, 0x12, 0x12, 0x53, 0x7b, 0xef, 0xfb, 0xbc, 0xcf, 0xfb, 0xbc, 0x8f, + 0xef, 0xde, 0xc0, 0x8f, 0x47, 0x1f, 0x0a, 0x9d, 0x05, 0xc6, 0x28, 0xb6, 0x28, 0xf7, 0x69, 0x44, + 0x85, 0x31, 0xa6, 0xfe, 0x30, 0xe0, 0x46, 0x9e, 0x20, 0x21, 0x33, 0xb8, 0x45, 0x6c, 0x63, 0x7c, + 0x62, 0xd1, 0x88, 0x9c, 0x18, 0x0e, 0xf5, 0x29, 0x27, 0x11, 0x1d, 0xea, 0x21, 0x0f, 0xa2, 0x00, + 0xbd, 0x96, 0x01, 0x75, 0x12, 0x32, 0x5d, 0x02, 0xf5, 0x1c, 0x78, 0x70, 0xec, 0xb0, 0xe8, 0x36, + 0xb6, 0x74, 0x3b, 0xf0, 0x0c, 0x27, 0x70, 0x02, 0x23, 0xc5, 0x5b, 0xf1, 0x4d, 0x7a, 0x4a, 0x0f, + 0xe9, 0x7f, 0x19, 0xcf, 0xc1, 0x7b, 0x65, 0x43, 0x8f, 0xd8, 0xb7, 0xcc, 0xa7, 0xfc, 0xce, 0x08, + 0x47, 0x8e, 0x0c, 0x08, 0xc3, 0xa3, 0x11, 0x31, 0xc6, 0x2b, 0xdd, 0x0f, 0x8c, 0x4d, 0x55, 0x3c, + 0xf6, 0x23, 0xe6, 0xd1, 0x95, 0x82, 0xf7, 0x9f, 0x2b, 0x10, 0xf6, 0x2d, 0xf5, 0xc8, 0x72, 0x5d, + 0xff, 0x57, 0x00, 0x3b, 0x67, 0x8e, 0xc3, 0xa9, 0x43, 0x22, 0x16, 0xf8, 0x38, 0x76, 0x29, 0xfa, + 0x11, 0xc0, 0x7d, 0xdb, 0x8d, 0x45, 0x44, 0x39, 0x0e, 0x5c, 0x7a, 0x4d, 0x5d, 0x6a, 0x47, 0x01, + 0x17, 0x2a, 0xe8, 0xed, 0x1d, 0xb6, 0x4e, 0xdf, 0xd5, 0x4b, 0x6b, 0x66, 0xbd, 0xf4, 0x70, 0xe4, + 0xc8, 0x80, 0xd0, 0xe5, 0x48, 0xfa, 0xf8, 0x44, 0xbf, 0x24, 0x16, 0x75, 0x8b, 0x5a, 0xf3, 0xf5, + 0xc9, 0xb4, 0x5b, 0x49, 0xa6, 0xdd, 0xfd, 0x4f, 0xd6, 0x10, 0xe3, 0xb5, 0xed, 0xfa, 0xbf, 0x55, + 0x61, 0x6b, 0x0e, 0x8e, 0xbe, 0x85, 0x4d, 0x49, 0x3e, 0x24, 0x11, 0x51, 0x41, 0x0f, 0x1c, 0xb6, + 0x4e, 0xdf, 0xd9, 0x4e, 0xca, 0x17, 0xd6, 0x77, 0xd4, 0x8e, 0x3e, 0xa7, 0x11, 0x31, 0x51, 0xae, + 0x03, 0x96, 0x31, 0x3c, 0x63, 0x45, 0x9f, 0xc1, 0x3a, 0x8f, 0x5d, 0x2a, 0xd4, 0x6a, 0x3a, 0xe9, + 0x9b, 0xfa, 0x86, 0x4b, 0xa0, 0x5f, 0x05, 0x2e, 0xb3, 0xef, 0xa4, 0x5b, 0x66, 0x3b, 0x67, 0xac, + 0xcb, 0x93, 0xc0, 0x19, 0x01, 0x72, 0x60, 0x87, 0x2c, 0xda, 0xaa, 0xee, 0xa5, 0x92, 0x0f, 0x37, + 0x72, 0x2e, 0x7d, 0x06, 0xf3, 0x95, 0x64, 0xda, 0x5d, 0xfe, 0x36, 0x78, 0x99, 0xb5, 0xff, 0x4b, + 0x15, 0xa2, 0x39, 0x93, 0x4c, 0xe6, 0x0f, 0x99, 0xef, 0xec, 0xc0, 0xab, 0x01, 0x6c, 0x8a, 0x38, + 0x4d, 0x14, 0x76, 0xf5, 0x36, 0x8e, 0x76, 0x9d, 0x01, 0xcd, 0x97, 0x73, 0xc6, 0x66, 0x1e, 0x10, + 0x78, 0xc6, 0x81, 0x2e, 0x60, 0x83, 0x07, 0x2e, 0xc5, 0xf4, 0x26, 0x77, 0x6a, 0x33, 0x1d, 0xce, + 0x70, 0x66, 0x27, 0xa7, 0x6b, 0xe4, 0x01, 0x5c, 0x30, 0xf4, 0x27, 0x00, 0xbe, 0xba, 0xea, 0xca, + 0x25, 0x13, 0x11, 0xfa, 0x66, 0xc5, 0x19, 0x7d, 0xcb, 0x0b, 0xcd, 0x44, 0xe6, 0xcb, 0x6c, 0x8a, + 0x22, 0x32, 0xe7, 0xca, 0x15, 0xac, 0xb3, 0x88, 0x7a, 0x85, 0x25, 0x47, 0x1b, 0x67, 0x58, 0x55, + 0x57, 0xde, 0xa4, 0x73, 0xc9, 0x80, 0x33, 0xa2, 0xfe, 0x9f, 0x00, 0x76, 0xe6, 0xc0, 0x3b, 0x98, + 0xe1, 0x7c, 0x71, 0x86, 0xb7, 0xb6, 0x9a, 0x61, 0xbd, 0xf8, 0x7f, 0x00, 0x84, 0xe5, 0x5b, 0x41, + 0x5d, 0x58, 0x1f, 0x53, 0x6e, 0x65, 0x9b, 0x44, 0x31, 0x15, 0x89, 0xff, 0x4a, 0x06, 0x70, 0x16, + 0x47, 0x47, 0x50, 0x21, 0x21, 0xfb, 0x94, 0x07, 0x71, 0x98, 0xb5, 0x57, 0xcc, 0x76, 0x32, 0xed, + 0x2a, 0x67, 0x57, 0xe7, 0x59, 0x10, 0x97, 0x79, 0x09, 0xe6, 0x54, 0x04, 0x31, 0xb7, 0xa9, 0x50, + 0xf7, 0x4a, 0x30, 0x2e, 0x82, 0xb8, 0xcc, 0xa3, 0x0f, 0x60, 0xbb, 0x38, 0x0c, 0x88, 0x47, 0x85, + 0x5a, 0x4b, 0x0b, 0x5e, 0x24, 0xd3, 0x6e, 0x1b, 0xcf, 0x27, 0xf0, 0x22, 0x0e, 0x7d, 0x04, 0x3b, + 0x7e, 0xe0, 0x17, 0x90, 0x2f, 0xf1, 0xa5, 0x50, 0xeb, 0x69, 0x69, 0xfa, 0x3e, 0x07, 0x8b, 0x29, + 0xbc, 0x8c, 0xed, 0xff, 0x01, 0x60, 0xed, 0xbf, 0xb6, 0xbd, 0xfa, 0x3f, 0x55, 0x61, 0xeb, 0xff, + 0x6d, 0x32, 0xdb, 0x26, 0xf2, 0x09, 0xee, 0x76, 0x8d, 0x6c, 0xfd, 0x04, 0x9f, 0xdf, 0x1f, 0xbf, + 0x03, 0xd8, 0xdc, 0xd1, 0xe2, 0x30, 0x17, 0x55, 0xbf, 0xf1, 0xb4, 0xea, 0xf5, 0x72, 0xbf, 0x87, + 0x85, 0xff, 0xe8, 0x6d, 0xd8, 0x2c, 0x1e, 0x7b, 0x2a, 0x56, 0x29, 0x9b, 0x17, 0xfb, 0x00, 0xcf, + 0x10, 0xa8, 0x07, 0x6b, 0x23, 0xe6, 0x0f, 0xd5, 0x6a, 0x8a, 0x7c, 0x29, 0x47, 0xd6, 0x2e, 0x98, + 0x3f, 0xc4, 0x69, 0x46, 0x22, 0x7c, 0xe2, 0x65, 0x3f, 0xc4, 0x73, 0x08, 0xf9, 0xcc, 0x71, 0x9a, + 0x91, 0x5e, 0x35, 0xf2, 0xcb, 0x34, 0xe3, 0x03, 0x1b, 0xf9, 0xe6, 0xf5, 0x55, 0xb7, 0xd1, 0xf7, + 0x74, 0x77, 0x64, 0x40, 0x45, 0xfe, 0x15, 0x21, 0xb1, 0xa9, 0x5a, 0x4b, 0x61, 0x2f, 0x72, 0x98, + 0x32, 0x28, 0x12, 0xb8, 0xc4, 0x98, 0xc7, 0x93, 0x47, 0xad, 0x72, 0xff, 0xa8, 0x55, 0x1e, 0x1e, + 0xb5, 0xca, 0x0f, 0x89, 0x06, 0x26, 0x89, 0x06, 0xee, 0x13, 0x0d, 0x3c, 0x24, 0x1a, 0xf8, 0x2b, + 0xd1, 0xc0, 0xcf, 0x7f, 0x6b, 0x95, 0xaf, 0x1b, 0xb9, 0xeb, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, + 0x37, 0x8f, 0x77, 0xcd, 0x15, 0x0b, 0x00, 0x00, } diff --git a/vendor/k8s.io/api/rbac/v1beta1/generated.proto b/vendor/k8s.io/api/rbac/v1beta1/generated.proto index aa9960b8e..27bd30ce9 100644 --- a/vendor/k8s.io/api/rbac/v1beta1/generated.proto +++ b/vendor/k8s.io/api/rbac/v1beta1/generated.proto @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,11 +21,9 @@ syntax = 'proto2'; package k8s.io.api.rbac.v1beta1; -import "k8s.io/api/rbac/v1alpha1/generated.proto"; import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; -import "k8s.io/apimachinery/pkg/util/intstr/generated.proto"; // Package-wide variables from generator "generated". option go_package = "v1beta1"; @@ -62,6 +60,7 @@ message ClusterRoleBinding { optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; // Subjects holds references to the objects the role applies to. + // +optional repeated Subject subjects = 2; // RoleRef can only reference a ClusterRole in the global namespace. @@ -135,6 +134,7 @@ message RoleBinding { optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; // Subjects holds references to the objects the role applies to. + // +optional repeated Subject subjects = 2; // RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace. diff --git a/vendor/k8s.io/api/rbac/v1beta1/types.go b/vendor/k8s.io/api/rbac/v1beta1/types.go index 091fc1dc9..857b67a6f 100644 --- a/vendor/k8s.io/api/rbac/v1beta1/types.go +++ b/vendor/k8s.io/api/rbac/v1beta1/types.go @@ -125,7 +125,8 @@ type RoleBinding struct { metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Subjects holds references to the objects the role applies to. - Subjects []Subject `json:"subjects" protobuf:"bytes,2,rep,name=subjects"` + // +optional + Subjects []Subject `json:"subjects,omitempty" protobuf:"bytes,2,rep,name=subjects"` // RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace. // If the RoleRef cannot be resolved, the Authorizer must return an error. @@ -199,7 +200,8 @@ type ClusterRoleBinding struct { metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Subjects holds references to the objects the role applies to. - Subjects []Subject `json:"subjects" protobuf:"bytes,2,rep,name=subjects"` + // +optional + Subjects []Subject `json:"subjects,omitempty" protobuf:"bytes,2,rep,name=subjects"` // RoleRef can only reference a ClusterRole in the global namespace. // If the RoleRef cannot be resolved, the Authorizer must return an error. diff --git a/vendor/k8s.io/api/rbac/v1beta1/types_swagger_doc_generated.go b/vendor/k8s.io/api/rbac/v1beta1/types_swagger_doc_generated.go index 6180d6d43..c80327593 100644 --- a/vendor/k8s.io/api/rbac/v1beta1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/rbac/v1beta1/types_swagger_doc_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2016 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -26,9 +26,9 @@ package v1beta1 // // Those methods can be generated by using hack/update-generated-swagger-docs.sh -// AUTO-GENERATED FUNCTIONS START HERE +// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT. var map_AggregationRule = map[string]string{ - "": "AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole", + "": "AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole", "clusterRoleSelectors": "ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole's permissions will be added", } diff --git a/vendor/k8s.io/api/rbac/v1beta1/zz_generated.deepcopy.go b/vendor/k8s.io/api/rbac/v1beta1/zz_generated.deepcopy.go index 0ef823a07..c085c90b1 100644 --- a/vendor/k8s.io/api/rbac/v1beta1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/api/rbac/v1beta1/zz_generated.deepcopy.go @@ -1,7 +1,7 @@ // +build !ignore_autogenerated /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -62,12 +62,8 @@ func (in *ClusterRole) DeepCopyInto(out *ClusterRole) { } if in.AggregationRule != nil { in, out := &in.AggregationRule, &out.AggregationRule - if *in == nil { - *out = nil - } else { - *out = new(AggregationRule) - (*in).DeepCopyInto(*out) - } + *out = new(AggregationRule) + (*in).DeepCopyInto(*out) } return } diff --git a/vendor/k8s.io/api/roundtrip_test.go b/vendor/k8s.io/api/roundtrip_test.go new file mode 100644 index 000000000..0c79c3eb4 --- /dev/null +++ b/vendor/k8s.io/api/roundtrip_test.go @@ -0,0 +1,151 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package testing + +import ( + "math/rand" + "testing" + + admissionv1beta1 "k8s.io/api/admission/v1beta1" + admissionregv1alpha1 "k8s.io/api/admissionregistration/v1alpha1" + admissionregv1beta1 "k8s.io/api/admissionregistration/v1beta1" + appsv1 "k8s.io/api/apps/v1" + appsv1beta1 "k8s.io/api/apps/v1beta1" + appsv1beta2 "k8s.io/api/apps/v1beta2" + authenticationv1 "k8s.io/api/authentication/v1" + authenticationv1beta1 "k8s.io/api/authentication/v1beta1" + authorizationv1 "k8s.io/api/authorization/v1" + authorizationv1beta1 "k8s.io/api/authorization/v1beta1" + autoscalingv1 "k8s.io/api/autoscaling/v1" + autoscalingv2beta1 "k8s.io/api/autoscaling/v2beta1" + batchv1 "k8s.io/api/batch/v1" + batchv1beta1 "k8s.io/api/batch/v1beta1" + batchv2alpha1 "k8s.io/api/batch/v2alpha1" + certificatesv1beta1 "k8s.io/api/certificates/v1beta1" + corev1 "k8s.io/api/core/v1" + eventsv1beta1 "k8s.io/api/events/v1beta1" + extensionsv1beta1 "k8s.io/api/extensions/v1beta1" + imagepolicyv1alpha1 "k8s.io/api/imagepolicy/v1alpha1" + networkingv1 "k8s.io/api/networking/v1" + policyv1beta1 "k8s.io/api/policy/v1beta1" + rbacv1 "k8s.io/api/rbac/v1" + rbacv1alpha1 "k8s.io/api/rbac/v1alpha1" + rbacv1beta1 "k8s.io/api/rbac/v1beta1" + schedulingv1alpha1 "k8s.io/api/scheduling/v1alpha1" + schedulingv1beta1 "k8s.io/api/scheduling/v1beta1" + settingsv1alpha1 "k8s.io/api/settings/v1alpha1" + storagev1 "k8s.io/api/storage/v1" + storagev1alpha1 "k8s.io/api/storage/v1alpha1" + storagev1beta1 "k8s.io/api/storage/v1beta1" + + "github.com/stretchr/testify/require" + "k8s.io/apimachinery/pkg/api/apitesting/fuzzer" + "k8s.io/apimachinery/pkg/api/apitesting/roundtrip" + genericfuzzer "k8s.io/apimachinery/pkg/apis/meta/fuzzer" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/runtime/serializer" +) + +var groups = []runtime.SchemeBuilder{ + admissionv1beta1.SchemeBuilder, + admissionregv1alpha1.SchemeBuilder, + admissionregv1beta1.SchemeBuilder, + appsv1beta1.SchemeBuilder, + appsv1beta2.SchemeBuilder, + appsv1.SchemeBuilder, + authenticationv1beta1.SchemeBuilder, + authenticationv1.SchemeBuilder, + authorizationv1beta1.SchemeBuilder, + authorizationv1.SchemeBuilder, + autoscalingv1.SchemeBuilder, + autoscalingv2beta1.SchemeBuilder, + batchv2alpha1.SchemeBuilder, + batchv1beta1.SchemeBuilder, + batchv1.SchemeBuilder, + certificatesv1beta1.SchemeBuilder, + corev1.SchemeBuilder, + eventsv1beta1.SchemeBuilder, + extensionsv1beta1.SchemeBuilder, + imagepolicyv1alpha1.SchemeBuilder, + networkingv1.SchemeBuilder, + policyv1beta1.SchemeBuilder, + rbacv1alpha1.SchemeBuilder, + rbacv1beta1.SchemeBuilder, + rbacv1.SchemeBuilder, + schedulingv1alpha1.SchemeBuilder, + schedulingv1beta1.SchemeBuilder, + settingsv1alpha1.SchemeBuilder, + storagev1alpha1.SchemeBuilder, + storagev1beta1.SchemeBuilder, + storagev1.SchemeBuilder, +} + +func TestRoundTripExternalTypes(t *testing.T) { + for _, builder := range groups { + scheme := runtime.NewScheme() + codecs := serializer.NewCodecFactory(scheme) + + require.NoError(t, builder.AddToScheme(scheme)) + seed := rand.Int63() + // I'm only using the generic fuzzer funcs, but at some point in time we might need to + // switch to specialized. For now we're happy with the current serialization test. + fuzzer := fuzzer.FuzzerFor(genericfuzzer.Funcs, rand.NewSource(seed), codecs) + + roundtrip.RoundTripExternalTypes(t, scheme, codecs, fuzzer, nil) + } +} + +func TestFailRoundTrip(t *testing.T) { + scheme := runtime.NewScheme() + codecs := serializer.NewCodecFactory(scheme) + groupVersion := schema.GroupVersion{Group: "broken", Version: "v1"} + builder := runtime.NewSchemeBuilder(func(scheme *runtime.Scheme) error { + scheme.AddKnownTypes(groupVersion, &BrokenType{}) + metav1.AddToGroupVersion(scheme, groupVersion) + return nil + }) + require.NoError(t, builder.AddToScheme(scheme)) + seed := rand.Int63() + fuzzer := fuzzer.FuzzerFor(genericfuzzer.Funcs, rand.NewSource(seed), codecs) + tmpT := new(testing.T) + roundtrip.RoundTripExternalTypes(tmpT, scheme, codecs, fuzzer, nil) + // It's very hacky way of making sure the DeepCopy is actually invoked inside RoundTripExternalTypes + // used in the other test. If for some reason this tests starts passing we need to fail b/c we're not testing + // the DeepCopy in the other method which we care so much about. + if !tmpT.Failed() { + t.Log("RoundTrip should've failed on DeepCopy but it did not!") + t.FailNow() + } +} + +type BrokenType struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + + Field1 string `json:"field1,omitempty"` + Field2 string `json:"field2,omitempty"` +} + +func (in *BrokenType) DeepCopy() *BrokenType { + return new(BrokenType) +} + +func (in *BrokenType) DeepCopyObject() runtime.Object { + return in.DeepCopy() +} diff --git a/vendor/k8s.io/api/scheduling/v1alpha1/BUILD b/vendor/k8s.io/api/scheduling/v1alpha1/BUILD deleted file mode 100644 index c8c197664..000000000 --- a/vendor/k8s.io/api/scheduling/v1alpha1/BUILD +++ /dev/null @@ -1,44 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "generated.pb.go", - "register.go", - "types.go", - "types_swagger_doc_generated.go", - "zz_generated.deepcopy.go", - ], - importpath = "k8s.io/api/scheduling/v1alpha1", - deps = [ - "//vendor/github.com/gogo/protobuf/proto:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) - -filegroup( - name = "go_default_library_protos", - srcs = ["generated.proto"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/api/scheduling/v1alpha1/doc.go b/vendor/k8s.io/api/scheduling/v1alpha1/doc.go index e10d07ff7..05a454a52 100644 --- a/vendor/k8s.io/api/scheduling/v1alpha1/doc.go +++ b/vendor/k8s.io/api/scheduling/v1alpha1/doc.go @@ -18,4 +18,5 @@ limitations under the License. // +k8s:openapi-gen=true // +groupName=scheduling.k8s.io + package v1alpha1 // import "k8s.io/api/scheduling/v1alpha1" diff --git a/vendor/k8s.io/api/scheduling/v1alpha1/generated.pb.go b/vendor/k8s.io/api/scheduling/v1alpha1/generated.pb.go index 39c0b9e6a..0a0d481a2 100644 --- a/vendor/k8s.io/api/scheduling/v1alpha1/generated.pb.go +++ b/vendor/k8s.io/api/scheduling/v1alpha1/generated.pb.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -14,9 +14,8 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: k8s.io/kubernetes/vendor/k8s.io/api/scheduling/v1alpha1/generated.proto -// DO NOT EDIT! /* Package v1alpha1 is a generated protocol buffer package. @@ -141,24 +140,6 @@ func (m *PriorityClassList) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Generated(dAtA []byte, offset int, v uint64) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - dAtA[offset+4] = uint8(v >> 32) - dAtA[offset+5] = uint8(v >> 40) - dAtA[offset+6] = uint8(v >> 48) - dAtA[offset+7] = uint8(v >> 56) - return offset + 8 -} -func encodeFixed32Generated(dAtA []byte, offset int, v uint32) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - return offset + 4 -} func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -608,34 +589,33 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 460 bytes of a gzipped FileDescriptorProto + // 447 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x92, 0x4f, 0x8b, 0xd3, 0x40, 0x18, 0xc6, 0x33, 0x5d, 0x0b, 0x75, 0x4a, 0x41, 0x23, 0x42, 0xe8, 0x61, 0x36, 0xac, 0x97, 0x5c, - 0x76, 0xc6, 0xae, 0x7f, 0x10, 0xbc, 0xc5, 0x85, 0x45, 0x50, 0x94, 0x1c, 0x3c, 0x88, 0x07, 0x27, - 0xc9, 0x6c, 0x3a, 0x36, 0xc9, 0x84, 0x99, 0x37, 0x81, 0xbd, 0x79, 0xf6, 0xe4, 0x97, 0x12, 0x7a, - 0xdc, 0xe3, 0x9e, 0x16, 0x1b, 0xbf, 0x88, 0x24, 0x4d, 0x37, 0xad, 0x65, 0xd5, 0x5b, 0xe6, 0x79, - 0x9f, 0xdf, 0x33, 0xf3, 0x3e, 0x04, 0x9f, 0x2d, 0x5e, 0x18, 0x2a, 0x15, 0x5b, 0x94, 0xa1, 0xd0, - 0xb9, 0x00, 0x61, 0x58, 0x25, 0xf2, 0x58, 0x69, 0xd6, 0x0d, 0x78, 0x21, 0x99, 0x89, 0xe6, 0x22, - 0x2e, 0x53, 0x99, 0x27, 0xac, 0x9a, 0xf1, 0xb4, 0x98, 0xf3, 0x19, 0x4b, 0x44, 0x2e, 0x34, 0x07, - 0x11, 0xd3, 0x42, 0x2b, 0x50, 0x36, 0x59, 0xfb, 0x29, 0x2f, 0x24, 0xed, 0xfd, 0x74, 0xe3, 0x9f, - 0x1e, 0x27, 0x12, 0xe6, 0x65, 0x48, 0x23, 0x95, 0xb1, 0x44, 0x25, 0x8a, 0xb5, 0x58, 0x58, 0x9e, - 0xb7, 0xa7, 0xf6, 0xd0, 0x7e, 0xad, 0xe3, 0xa6, 0x4f, 0xfb, 0xeb, 0x33, 0x1e, 0xcd, 0x65, 0x2e, - 0xf4, 0x05, 0x2b, 0x16, 0x49, 0x23, 0x18, 0x96, 0x09, 0xe0, 0xac, 0xda, 0x7b, 0xc4, 0x94, 0xdd, - 0x46, 0xe9, 0x32, 0x07, 0x99, 0x89, 0x3d, 0xe0, 0xf9, 0xbf, 0x80, 0x66, 0x95, 0x8c, 0xef, 0x71, - 0x4f, 0x6e, 0xe3, 0x4a, 0x90, 0x29, 0x93, 0x39, 0x18, 0xd0, 0x7f, 0x42, 0x47, 0xdf, 0x06, 0x78, - 0xf2, 0x5e, 0x4b, 0xa5, 0x25, 0x5c, 0xbc, 0x4a, 0xb9, 0x31, 0xf6, 0x67, 0x3c, 0x6a, 0x56, 0x89, - 0x39, 0x70, 0x07, 0xb9, 0xc8, 0x1b, 0x9f, 0x3c, 0xa6, 0x7d, 0x8f, 0x37, 0xc9, 0xb4, 0x58, 0x24, - 0x8d, 0x60, 0x68, 0xe3, 0xa6, 0xd5, 0x8c, 0xbe, 0x0b, 0xbf, 0x88, 0x08, 0xde, 0x0a, 0xe0, 0xbe, - 0xbd, 0xbc, 0x3e, 0xb4, 0xea, 0xeb, 0x43, 0xdc, 0x6b, 0xc1, 0x4d, 0xaa, 0xfd, 0x08, 0x0f, 0x2b, - 0x9e, 0x96, 0xc2, 0x19, 0xb8, 0xc8, 0x1b, 0xfa, 0x93, 0xce, 0x3c, 0xfc, 0xd0, 0x88, 0xc1, 0x7a, - 0x66, 0xbf, 0xc4, 0x93, 0x24, 0x55, 0x21, 0x4f, 0x4f, 0xc5, 0x39, 0x2f, 0x53, 0x70, 0x0e, 0x5c, - 0xe4, 0x8d, 0xfc, 0x87, 0x9d, 0x79, 0x72, 0xb6, 0x3d, 0x0c, 0x76, 0xbd, 0xf6, 0x33, 0x3c, 0x8e, - 0x85, 0x89, 0xb4, 0x2c, 0x40, 0xaa, 0xdc, 0xb9, 0xe3, 0x22, 0xef, 0xae, 0xff, 0xa0, 0x43, 0xc7, - 0xa7, 0xfd, 0x28, 0xd8, 0xf6, 0x1d, 0xfd, 0x40, 0xf8, 0xfe, 0x4e, 0x19, 0x6f, 0xa4, 0x01, 0xfb, - 0xd3, 0x5e, 0x21, 0xf4, 0xff, 0x0a, 0x69, 0xe8, 0xb6, 0x8e, 0x7b, 0xdd, 0xcd, 0xa3, 0x8d, 0xb2, - 0x55, 0x46, 0x80, 0x87, 0x12, 0x44, 0x66, 0x9c, 0x81, 0x7b, 0xe0, 0x8d, 0x4f, 0x8e, 0xe9, 0xdf, - 0xff, 0x59, 0xba, 0xf3, 0xbe, 0xbe, 0xbb, 0xd7, 0x4d, 0x46, 0xb0, 0x8e, 0xf2, 0xe9, 0x72, 0x45, - 0xac, 0xcb, 0x15, 0xb1, 0xae, 0x56, 0xc4, 0xfa, 0x5a, 0x13, 0xb4, 0xac, 0x09, 0xba, 0xac, 0x09, - 0xba, 0xaa, 0x09, 0xfa, 0x59, 0x13, 0xf4, 0xfd, 0x17, 0xb1, 0x3e, 0x8e, 0x36, 0x99, 0xbf, 0x03, - 0x00, 0x00, 0xff, 0xff, 0x44, 0x05, 0xba, 0x7b, 0x71, 0x03, 0x00, 0x00, + 0x76, 0xc6, 0x2e, 0x2a, 0x82, 0xb7, 0xb8, 0xb0, 0x08, 0x8a, 0x92, 0x83, 0x07, 0xf1, 0xe0, 0x24, + 0x79, 0x37, 0x1d, 0x9b, 0x64, 0xc2, 0xcc, 0x24, 0xb0, 0x37, 0xcf, 0x9e, 0xfc, 0x52, 0x42, 0x8f, + 0x7b, 0xdc, 0xd3, 0x62, 0xe3, 0x17, 0x91, 0xa4, 0x69, 0xd3, 0x5a, 0xfc, 0x73, 0xcb, 0x3c, 0xef, + 0xef, 0x79, 0xe6, 0xcd, 0xc3, 0xe0, 0x8b, 0xc5, 0x73, 0x4d, 0x85, 0x64, 0x8b, 0x32, 0x04, 0x95, + 0x83, 0x01, 0xcd, 0x2a, 0xc8, 0x63, 0xa9, 0x58, 0x37, 0xe0, 0x85, 0x60, 0x3a, 0x9a, 0x43, 0x5c, + 0xa6, 0x22, 0x4f, 0x58, 0x35, 0xe3, 0x69, 0x31, 0xe7, 0x33, 0x96, 0x40, 0x0e, 0x8a, 0x1b, 0x88, + 0x69, 0xa1, 0xa4, 0x91, 0x36, 0x59, 0xf3, 0x94, 0x17, 0x82, 0xf6, 0x3c, 0xdd, 0xf0, 0xd3, 0xd3, + 0x44, 0x98, 0x79, 0x19, 0xd2, 0x48, 0x66, 0x2c, 0x91, 0x89, 0x64, 0xad, 0x2d, 0x2c, 0x2f, 0xdb, + 0x53, 0x7b, 0x68, 0xbf, 0xd6, 0x71, 0xd3, 0x27, 0xfd, 0xf5, 0x19, 0x8f, 0xe6, 0x22, 0x07, 0x75, + 0xc5, 0x8a, 0x45, 0xd2, 0x08, 0x9a, 0x65, 0x60, 0x38, 0xab, 0x0e, 0x96, 0x98, 0xb2, 0x3f, 0xb9, + 0x54, 0x99, 0x1b, 0x91, 0xc1, 0x81, 0xe1, 0xd9, 0xbf, 0x0c, 0xcd, 0xaf, 0x64, 0xfc, 0x77, 0xdf, + 0xc9, 0xd7, 0x01, 0x9e, 0xbc, 0x53, 0x42, 0x2a, 0x61, 0xae, 0x5e, 0xa6, 0x5c, 0x6b, 0xfb, 0x13, + 0x1e, 0x35, 0x5b, 0xc5, 0xdc, 0x70, 0x07, 0xb9, 0xc8, 0x1b, 0x9f, 0x3d, 0xa6, 0x7d, 0x25, 0xdb, + 0x70, 0x5a, 0x2c, 0x92, 0x46, 0xd0, 0xb4, 0xa1, 0x69, 0x35, 0xa3, 0x6f, 0xc3, 0xcf, 0x10, 0x99, + 0x37, 0x60, 0xb8, 0x6f, 0x2f, 0x6f, 0x8f, 0xad, 0xfa, 0xf6, 0x18, 0xf7, 0x5a, 0xb0, 0x4d, 0xb5, + 0x1f, 0xe1, 0x61, 0xc5, 0xd3, 0x12, 0x9c, 0x81, 0x8b, 0xbc, 0xa1, 0x3f, 0xe9, 0xe0, 0xe1, 0xfb, + 0x46, 0x0c, 0xd6, 0x33, 0xfb, 0x05, 0x9e, 0x24, 0xa9, 0x0c, 0x79, 0x7a, 0x0e, 0x97, 0xbc, 0x4c, + 0x8d, 0x73, 0xe4, 0x22, 0x6f, 0xe4, 0x3f, 0xec, 0xe0, 0xc9, 0xc5, 0xee, 0x30, 0xd8, 0x67, 0xed, + 0xa7, 0x78, 0x1c, 0x83, 0x8e, 0x94, 0x28, 0x8c, 0x90, 0xb9, 0x73, 0xc7, 0x45, 0xde, 0x5d, 0xff, + 0x41, 0x67, 0x1d, 0x9f, 0xf7, 0xa3, 0x60, 0x97, 0x3b, 0xf9, 0x8e, 0xf0, 0xfd, 0xbd, 0x32, 0x5e, + 0x0b, 0x6d, 0xec, 0x8f, 0x07, 0x85, 0xd0, 0xff, 0x2b, 0xa4, 0x71, 0xb7, 0x75, 0xdc, 0xeb, 0x6e, + 0x1e, 0x6d, 0x94, 0x9d, 0x32, 0x02, 0x3c, 0x14, 0x06, 0x32, 0xed, 0x0c, 0xdc, 0x23, 0x6f, 0x7c, + 0x76, 0x4a, 0xff, 0xfe, 0xfc, 0xe8, 0xde, 0x7e, 0x7d, 0x77, 0xaf, 0x9a, 0x8c, 0x60, 0x1d, 0xe5, + 0xd3, 0xe5, 0x8a, 0x58, 0xd7, 0x2b, 0x62, 0xdd, 0xac, 0x88, 0xf5, 0xa5, 0x26, 0x68, 0x59, 0x13, + 0x74, 0x5d, 0x13, 0x74, 0x53, 0x13, 0xf4, 0xa3, 0x26, 0xe8, 0xdb, 0x4f, 0x62, 0x7d, 0x18, 0x6d, + 0x32, 0x7f, 0x05, 0x00, 0x00, 0xff, 0xff, 0xab, 0x20, 0x12, 0x63, 0x3c, 0x03, 0x00, 0x00, } diff --git a/vendor/k8s.io/api/scheduling/v1alpha1/generated.proto b/vendor/k8s.io/api/scheduling/v1alpha1/generated.proto index e964a76dd..5fb547211 100644 --- a/vendor/k8s.io/api/scheduling/v1alpha1/generated.proto +++ b/vendor/k8s.io/api/scheduling/v1alpha1/generated.proto @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -24,7 +24,6 @@ package k8s.io.api.scheduling.v1alpha1; import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; -import "k8s.io/apimachinery/pkg/util/intstr/generated.proto"; // Package-wide variables from generator "generated". option go_package = "v1alpha1"; diff --git a/vendor/k8s.io/api/scheduling/v1alpha1/types_swagger_doc_generated.go b/vendor/k8s.io/api/scheduling/v1alpha1/types_swagger_doc_generated.go index 9080dd9d6..f406f4402 100644 --- a/vendor/k8s.io/api/scheduling/v1alpha1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/scheduling/v1alpha1/types_swagger_doc_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2016 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -26,7 +26,7 @@ package v1alpha1 // // Those methods can be generated by using hack/update-generated-swagger-docs.sh -// AUTO-GENERATED FUNCTIONS START HERE +// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT. var map_PriorityClass = map[string]string{ "": "PriorityClass defines mapping from a priority class name to the priority integer value. The value can be any valid integer.", "metadata": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", diff --git a/vendor/k8s.io/api/scheduling/v1alpha1/zz_generated.deepcopy.go b/vendor/k8s.io/api/scheduling/v1alpha1/zz_generated.deepcopy.go index 51f8d0473..fe0c86040 100644 --- a/vendor/k8s.io/api/scheduling/v1alpha1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/api/scheduling/v1alpha1/zz_generated.deepcopy.go @@ -1,7 +1,7 @@ // +build !ignore_autogenerated /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/api/scheduling/v1beta1/doc.go b/vendor/k8s.io/api/scheduling/v1beta1/doc.go new file mode 100644 index 000000000..7cf1af212 --- /dev/null +++ b/vendor/k8s.io/api/scheduling/v1beta1/doc.go @@ -0,0 +1,22 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// +k8s:deepcopy-gen=package +// +k8s:openapi-gen=true + +// +groupName=scheduling.k8s.io + +package v1beta1 // import "k8s.io/api/scheduling/v1beta1" diff --git a/vendor/k8s.io/api/scheduling/v1beta1/generated.pb.go b/vendor/k8s.io/api/scheduling/v1beta1/generated.pb.go new file mode 100644 index 000000000..ddb285446 --- /dev/null +++ b/vendor/k8s.io/api/scheduling/v1beta1/generated.pb.go @@ -0,0 +1,621 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: k8s.io/kubernetes/vendor/k8s.io/api/scheduling/v1beta1/generated.proto + +/* + Package v1beta1 is a generated protocol buffer package. + + It is generated from these files: + k8s.io/kubernetes/vendor/k8s.io/api/scheduling/v1beta1/generated.proto + + It has these top-level messages: + PriorityClass + PriorityClassList +*/ +package v1beta1 + +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" + +import strings "strings" +import reflect "reflect" + +import io "io" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +func (m *PriorityClass) Reset() { *m = PriorityClass{} } +func (*PriorityClass) ProtoMessage() {} +func (*PriorityClass) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{0} } + +func (m *PriorityClassList) Reset() { *m = PriorityClassList{} } +func (*PriorityClassList) ProtoMessage() {} +func (*PriorityClassList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{1} } + +func init() { + proto.RegisterType((*PriorityClass)(nil), "k8s.io.api.scheduling.v1beta1.PriorityClass") + proto.RegisterType((*PriorityClassList)(nil), "k8s.io.api.scheduling.v1beta1.PriorityClassList") +} +func (m *PriorityClass) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PriorityClass) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) + n1, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n1 + dAtA[i] = 0x10 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Value)) + dAtA[i] = 0x18 + i++ + if m.GlobalDefault { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Description))) + i += copy(dAtA[i:], m.Description) + return i, nil +} + +func (m *PriorityClassList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PriorityClassList) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) + n2, err := m.ListMeta.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n2 + if len(m.Items) > 0 { + for _, msg := range m.Items { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + +func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return offset + 1 +} +func (m *PriorityClass) Size() (n int) { + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + n += 1 + sovGenerated(uint64(m.Value)) + n += 2 + l = len(m.Description) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *PriorityClassList) Size() (n int) { + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func sovGenerated(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozGenerated(x uint64) (n int) { + return sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (this *PriorityClass) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&PriorityClass{`, + `ObjectMeta:` + strings.Replace(strings.Replace(this.ObjectMeta.String(), "ObjectMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Value:` + fmt.Sprintf("%v", this.Value) + `,`, + `GlobalDefault:` + fmt.Sprintf("%v", this.GlobalDefault) + `,`, + `Description:` + fmt.Sprintf("%v", this.Description) + `,`, + `}`, + }, "") + return s +} +func (this *PriorityClassList) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&PriorityClassList{`, + `ListMeta:` + strings.Replace(strings.Replace(this.ListMeta.String(), "ListMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Items), "PriorityClass", "PriorityClass", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func valueToStringGenerated(v interface{}) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("*%v", pv) +} +func (m *PriorityClass) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PriorityClass: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PriorityClass: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + m.Value = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Value |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field GlobalDefault", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.GlobalDefault = bool(v != 0) + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Description = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PriorityClassList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PriorityClassList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PriorityClassList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, PriorityClass{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipGenerated(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + return iNdEx, nil + case 1: + iNdEx += 8 + return iNdEx, nil + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + iNdEx += length + if length < 0 { + return 0, ErrInvalidLengthGenerated + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + innerWire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + innerWireType := int(innerWire & 0x7) + if innerWireType == 4 { + break + } + next, err := skipGenerated(dAtA[start:]) + if err != nil { + return 0, err + } + iNdEx = start + next + } + return iNdEx, nil + case 4: + return iNdEx, nil + case 5: + iNdEx += 4 + return iNdEx, nil + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + } + panic("unreachable") +} + +var ( + ErrInvalidLengthGenerated = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowGenerated = fmt.Errorf("proto: integer overflow") +) + +func init() { + proto.RegisterFile("k8s.io/kubernetes/vendor/k8s.io/api/scheduling/v1beta1/generated.proto", fileDescriptorGenerated) +} + +var fileDescriptorGenerated = []byte{ + // 448 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x92, 0xc1, 0x8b, 0xd3, 0x40, + 0x18, 0xc5, 0x33, 0x5d, 0x8b, 0x75, 0x4a, 0x41, 0x23, 0x42, 0x28, 0x38, 0x1b, 0xd6, 0x4b, 0x0e, + 0xee, 0x8c, 0x5d, 0x54, 0x04, 0x6f, 0x71, 0x51, 0x04, 0x45, 0xcd, 0xc1, 0x83, 0x78, 0x70, 0x92, + 0x7c, 0x9b, 0x8e, 0x4d, 0x32, 0x61, 0x66, 0x12, 0xd8, 0x9b, 0x67, 0x4f, 0xfe, 0x51, 0x1e, 0x7a, + 0xdc, 0xe3, 0x9e, 0x16, 0x1b, 0xff, 0x11, 0x49, 0x1a, 0x37, 0xad, 0x45, 0xdd, 0x5b, 0xe6, 0x7d, + 0xbf, 0xf7, 0xe6, 0xcb, 0x63, 0xf0, 0xf3, 0xc5, 0x13, 0x4d, 0x85, 0x64, 0x8b, 0x32, 0x04, 0x95, + 0x83, 0x01, 0xcd, 0x2a, 0xc8, 0x63, 0xa9, 0x58, 0x37, 0xe0, 0x85, 0x60, 0x3a, 0x9a, 0x43, 0x5c, + 0xa6, 0x22, 0x4f, 0x58, 0x35, 0x0b, 0xc1, 0xf0, 0x19, 0x4b, 0x20, 0x07, 0xc5, 0x0d, 0xc4, 0xb4, + 0x50, 0xd2, 0x48, 0xfb, 0xee, 0x1a, 0xa7, 0xbc, 0x10, 0xb4, 0xc7, 0x69, 0x87, 0x4f, 0x0f, 0x13, + 0x61, 0xe6, 0x65, 0x48, 0x23, 0x99, 0xb1, 0x44, 0x26, 0x92, 0xb5, 0xae, 0xb0, 0x3c, 0x69, 0x4f, + 0xed, 0xa1, 0xfd, 0x5a, 0xa7, 0x4d, 0x1f, 0xf6, 0x97, 0x67, 0x3c, 0x9a, 0x8b, 0x1c, 0xd4, 0x29, + 0x2b, 0x16, 0x49, 0x23, 0x68, 0x96, 0x81, 0xe1, 0xac, 0xda, 0xd9, 0x61, 0xca, 0xfe, 0xe6, 0x52, + 0x65, 0x6e, 0x44, 0x06, 0x3b, 0x86, 0xc7, 0xff, 0x33, 0x34, 0x7f, 0x92, 0xf1, 0x3f, 0x7d, 0x07, + 0x5f, 0x07, 0x78, 0xf2, 0x56, 0x09, 0xa9, 0x84, 0x39, 0x7d, 0x96, 0x72, 0xad, 0xed, 0x4f, 0x78, + 0xd4, 0x6c, 0x15, 0x73, 0xc3, 0x1d, 0xe4, 0x22, 0x6f, 0x7c, 0xf4, 0x80, 0xf6, 0x8d, 0x5c, 0x86, + 0xd3, 0x62, 0x91, 0x34, 0x82, 0xa6, 0x0d, 0x4d, 0xab, 0x19, 0x7d, 0x13, 0x7e, 0x86, 0xc8, 0xbc, + 0x06, 0xc3, 0x7d, 0x7b, 0x79, 0xb1, 0x6f, 0xd5, 0x17, 0xfb, 0xb8, 0xd7, 0x82, 0xcb, 0x54, 0xfb, + 0x1e, 0x1e, 0x56, 0x3c, 0x2d, 0xc1, 0x19, 0xb8, 0xc8, 0x1b, 0xfa, 0x93, 0x0e, 0x1e, 0xbe, 0x6f, + 0xc4, 0x60, 0x3d, 0xb3, 0x9f, 0xe2, 0x49, 0x92, 0xca, 0x90, 0xa7, 0xc7, 0x70, 0xc2, 0xcb, 0xd4, + 0x38, 0x7b, 0x2e, 0xf2, 0x46, 0xfe, 0x9d, 0x0e, 0x9e, 0xbc, 0xd8, 0x1c, 0x06, 0xdb, 0xac, 0xfd, + 0x08, 0x8f, 0x63, 0xd0, 0x91, 0x12, 0x85, 0x11, 0x32, 0x77, 0xae, 0xb9, 0xc8, 0xbb, 0xe1, 0xdf, + 0xee, 0xac, 0xe3, 0xe3, 0x7e, 0x14, 0x6c, 0x72, 0x07, 0xdf, 0x11, 0xbe, 0xb5, 0x55, 0xc6, 0x2b, + 0xa1, 0x8d, 0xfd, 0x71, 0xa7, 0x10, 0x7a, 0xb5, 0x42, 0x1a, 0x77, 0x5b, 0xc7, 0xcd, 0xee, 0xe6, + 0xd1, 0x6f, 0x65, 0xa3, 0x8c, 0x77, 0x78, 0x28, 0x0c, 0x64, 0xda, 0x19, 0xb8, 0x7b, 0xde, 0xf8, + 0xe8, 0x3e, 0xfd, 0xe7, 0xeb, 0xa3, 0x5b, 0xeb, 0xf5, 0xd5, 0xbd, 0x6c, 0x22, 0x82, 0x75, 0x92, + 0x7f, 0xb8, 0x5c, 0x11, 0xeb, 0x6c, 0x45, 0xac, 0xf3, 0x15, 0xb1, 0xbe, 0xd4, 0x04, 0x2d, 0x6b, + 0x82, 0xce, 0x6a, 0x82, 0xce, 0x6b, 0x82, 0x7e, 0xd4, 0x04, 0x7d, 0xfb, 0x49, 0xac, 0x0f, 0xd7, + 0xbb, 0xc8, 0x5f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x41, 0x74, 0x8a, 0x60, 0x38, 0x03, 0x00, 0x00, +} diff --git a/vendor/k8s.io/api/scheduling/v1beta1/generated.proto b/vendor/k8s.io/api/scheduling/v1beta1/generated.proto new file mode 100644 index 000000000..0a9575503 --- /dev/null +++ b/vendor/k8s.io/api/scheduling/v1beta1/generated.proto @@ -0,0 +1,67 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + + +// This file was autogenerated by go-to-protobuf. Do not edit it manually! + +syntax = 'proto2'; + +package k8s.io.api.scheduling.v1beta1; + +import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; +import "k8s.io/apimachinery/pkg/runtime/generated.proto"; +import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; + +// Package-wide variables from generator "generated". +option go_package = "v1beta1"; + +// PriorityClass defines mapping from a priority class name to the priority +// integer value. The value can be any valid integer. +message PriorityClass { + // Standard object's metadata. + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // The value of this priority class. This is the actual priority that pods + // receive when they have the name of this class in their pod spec. + optional int32 value = 2; + + // globalDefault specifies whether this PriorityClass should be considered as + // the default priority for pods that do not have any priority class. + // Only one PriorityClass can be marked as `globalDefault`. However, if more than + // one PriorityClasses exists with their `globalDefault` field set to true, + // the smallest value of such global default PriorityClasses will be used as the default priority. + // +optional + optional bool globalDefault = 3; + + // description is an arbitrary string that usually provides guidelines on + // when this priority class should be used. + // +optional + optional string description = 4; +} + +// PriorityClassList is a collection of priority classes. +message PriorityClassList { + // Standard list metadata + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + // items is the list of PriorityClasses + repeated PriorityClass items = 2; +} + diff --git a/vendor/k8s.io/api/scheduling/v1beta1/register.go b/vendor/k8s.io/api/scheduling/v1beta1/register.go new file mode 100644 index 000000000..fb26557bb --- /dev/null +++ b/vendor/k8s.io/api/scheduling/v1beta1/register.go @@ -0,0 +1,52 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package v1beta1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +// GroupName is the group name use in this package +const GroupName = "scheduling.k8s.io" + +// SchemeGroupVersion is group version used to register these objects +var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1beta1"} + +// Resource takes an unqualified resource and returns a Group qualified GroupResource +func Resource(resource string) schema.GroupResource { + return SchemeGroupVersion.WithResource(resource).GroupResource() +} + +var ( + // TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api. + // localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes. + SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) + localSchemeBuilder = &SchemeBuilder + AddToScheme = localSchemeBuilder.AddToScheme +) + +// Adds the list of known types to the given scheme. +func addKnownTypes(scheme *runtime.Scheme) error { + scheme.AddKnownTypes(SchemeGroupVersion, + &PriorityClass{}, + &PriorityClassList{}, + ) + metav1.AddToGroupVersion(scheme, SchemeGroupVersion) + return nil +} diff --git a/vendor/k8s.io/api/scheduling/v1beta1/types.go b/vendor/k8s.io/api/scheduling/v1beta1/types.go new file mode 100644 index 000000000..a9aaa8665 --- /dev/null +++ b/vendor/k8s.io/api/scheduling/v1beta1/types.go @@ -0,0 +1,66 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package v1beta1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// +genclient +// +genclient:nonNamespaced +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// PriorityClass defines mapping from a priority class name to the priority +// integer value. The value can be any valid integer. +type PriorityClass struct { + metav1.TypeMeta `json:",inline"` + // Standard object's metadata. + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata + // +optional + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + // The value of this priority class. This is the actual priority that pods + // receive when they have the name of this class in their pod spec. + Value int32 `json:"value" protobuf:"bytes,2,opt,name=value"` + + // globalDefault specifies whether this PriorityClass should be considered as + // the default priority for pods that do not have any priority class. + // Only one PriorityClass can be marked as `globalDefault`. However, if more than + // one PriorityClasses exists with their `globalDefault` field set to true, + // the smallest value of such global default PriorityClasses will be used as the default priority. + // +optional + GlobalDefault bool `json:"globalDefault,omitempty" protobuf:"bytes,3,opt,name=globalDefault"` + + // description is an arbitrary string that usually provides guidelines on + // when this priority class should be used. + // +optional + Description string `json:"description,omitempty" protobuf:"bytes,4,opt,name=description"` +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// PriorityClassList is a collection of priority classes. +type PriorityClassList struct { + metav1.TypeMeta `json:",inline"` + // Standard list metadata + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata + // +optional + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + // items is the list of PriorityClasses + Items []PriorityClass `json:"items" protobuf:"bytes,2,rep,name=items"` +} diff --git a/vendor/k8s.io/api/scheduling/v1beta1/types_swagger_doc_generated.go b/vendor/k8s.io/api/scheduling/v1beta1/types_swagger_doc_generated.go new file mode 100644 index 000000000..c18f54a82 --- /dev/null +++ b/vendor/k8s.io/api/scheduling/v1beta1/types_swagger_doc_generated.go @@ -0,0 +1,52 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package v1beta1 + +// This file contains a collection of methods that can be used from go-restful to +// generate Swagger API documentation for its models. Please read this PR for more +// information on the implementation: https://github.com/emicklei/go-restful/pull/215 +// +// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if +// they are on one line! For multiple line or blocks that you want to ignore use ---. +// Any context after a --- is ignored. +// +// Those methods can be generated by using hack/update-generated-swagger-docs.sh + +// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT. +var map_PriorityClass = map[string]string{ + "": "PriorityClass defines mapping from a priority class name to the priority integer value. The value can be any valid integer.", + "metadata": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "value": "The value of this priority class. This is the actual priority that pods receive when they have the name of this class in their pod spec.", + "globalDefault": "globalDefault specifies whether this PriorityClass should be considered as the default priority for pods that do not have any priority class. Only one PriorityClass can be marked as `globalDefault`. However, if more than one PriorityClasses exists with their `globalDefault` field set to true, the smallest value of such global default PriorityClasses will be used as the default priority.", + "description": "description is an arbitrary string that usually provides guidelines on when this priority class should be used.", +} + +func (PriorityClass) SwaggerDoc() map[string]string { + return map_PriorityClass +} + +var map_PriorityClassList = map[string]string{ + "": "PriorityClassList is a collection of priority classes.", + "metadata": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "items": "items is the list of PriorityClasses", +} + +func (PriorityClassList) SwaggerDoc() map[string]string { + return map_PriorityClassList +} + +// AUTO-GENERATED FUNCTIONS END HERE diff --git a/vendor/k8s.io/api/scheduling/v1beta1/zz_generated.deepcopy.go b/vendor/k8s.io/api/scheduling/v1beta1/zz_generated.deepcopy.go new file mode 100644 index 000000000..6f68e4ac5 --- /dev/null +++ b/vendor/k8s.io/api/scheduling/v1beta1/zz_generated.deepcopy.go @@ -0,0 +1,84 @@ +// +build !ignore_autogenerated + +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by deepcopy-gen. DO NOT EDIT. + +package v1beta1 + +import ( + runtime "k8s.io/apimachinery/pkg/runtime" +) + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PriorityClass) DeepCopyInto(out *PriorityClass) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityClass. +func (in *PriorityClass) DeepCopy() *PriorityClass { + if in == nil { + return nil + } + out := new(PriorityClass) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *PriorityClass) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PriorityClassList) DeepCopyInto(out *PriorityClassList) { + *out = *in + out.TypeMeta = in.TypeMeta + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]PriorityClass, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityClassList. +func (in *PriorityClassList) DeepCopy() *PriorityClassList { + if in == nil { + return nil + } + out := new(PriorityClassList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *PriorityClassList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} diff --git a/vendor/k8s.io/api/settings/v1alpha1/BUILD b/vendor/k8s.io/api/settings/v1alpha1/BUILD deleted file mode 100644 index d7457427d..000000000 --- a/vendor/k8s.io/api/settings/v1alpha1/BUILD +++ /dev/null @@ -1,45 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "generated.pb.go", - "register.go", - "types.go", - "types_swagger_doc_generated.go", - "zz_generated.deepcopy.go", - ], - importpath = "k8s.io/api/settings/v1alpha1", - deps = [ - "//vendor/github.com/gogo/protobuf/proto:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) - -filegroup( - name = "go_default_library_protos", - srcs = ["generated.proto"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/api/settings/v1alpha1/doc.go b/vendor/k8s.io/api/settings/v1alpha1/doc.go index 05a62c569..9126211d6 100644 --- a/vendor/k8s.io/api/settings/v1alpha1/doc.go +++ b/vendor/k8s.io/api/settings/v1alpha1/doc.go @@ -18,4 +18,5 @@ limitations under the License. // +k8s:openapi-gen=true // +groupName=settings.k8s.io + package v1alpha1 // import "k8s.io/api/settings/v1alpha1" diff --git a/vendor/k8s.io/api/settings/v1alpha1/generated.pb.go b/vendor/k8s.io/api/settings/v1alpha1/generated.pb.go index bfc6a5a11..c84213105 100644 --- a/vendor/k8s.io/api/settings/v1alpha1/generated.pb.go +++ b/vendor/k8s.io/api/settings/v1alpha1/generated.pb.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -14,9 +14,8 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: k8s.io/kubernetes/vendor/k8s.io/api/settings/v1alpha1/generated.proto -// DO NOT EDIT! /* Package v1alpha1 is a generated protocol buffer package. @@ -216,24 +215,6 @@ func (m *PodPresetSpec) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Generated(dAtA []byte, offset int, v uint64) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - dAtA[offset+4] = uint8(v >> 32) - dAtA[offset+5] = uint8(v >> 40) - dAtA[offset+6] = uint8(v >> 48) - dAtA[offset+7] = uint8(v >> 56) - return offset + 8 -} -func encodeFixed32Generated(dAtA []byte, offset int, v uint32) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - return offset + 4 -} func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -891,40 +872,39 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 556 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x92, 0xc1, 0x8e, 0xd2, 0x4e, - 0x1c, 0xc7, 0xe9, 0xb2, 0x04, 0xfe, 0x03, 0x9b, 0xbf, 0x69, 0x3c, 0x34, 0xc4, 0x94, 0x95, 0x8b, - 0x9b, 0x18, 0x67, 0x64, 0xd7, 0x18, 0xbd, 0x36, 0xc1, 0xc4, 0x04, 0xe2, 0xa6, 0x24, 0x9b, 0x68, - 0x3c, 0x38, 0x94, 0x9f, 0xa5, 0x42, 0x67, 0x9a, 0x99, 0x69, 0x13, 0x6f, 0x3e, 0x82, 0x2f, 0xe0, - 0x93, 0xe8, 0x03, 0x70, 0xdc, 0xe3, 0x9e, 0x36, 0x52, 0x5f, 0xc4, 0x4c, 0x99, 0x02, 0x8a, 0x28, - 0xb7, 0xce, 0x8f, 0xef, 0xe7, 0x33, 0xbf, 0x2f, 0x2d, 0xea, 0xcf, 0x9e, 0x49, 0x1c, 0x71, 0x32, - 0x4b, 0xc7, 0x20, 0x18, 0x28, 0x90, 0x24, 0x03, 0x36, 0xe1, 0x82, 0x98, 0x1f, 0x68, 0x12, 0x11, - 0x09, 0x4a, 0x45, 0x2c, 0x94, 0x24, 0xeb, 0xd1, 0x79, 0x32, 0xa5, 0x3d, 0x12, 0x02, 0x03, 0x41, - 0x15, 0x4c, 0x70, 0x22, 0xb8, 0xe2, 0xf6, 0xbd, 0x55, 0x1a, 0xd3, 0x24, 0xc2, 0x65, 0x1a, 0x97, - 0xe9, 0xf6, 0xa3, 0x30, 0x52, 0xd3, 0x74, 0x8c, 0x03, 0x1e, 0x93, 0x90, 0x87, 0x9c, 0x14, 0xd0, - 0x38, 0x7d, 0x5f, 0x9c, 0x8a, 0x43, 0xf1, 0xb4, 0x92, 0xb5, 0xbb, 0x5b, 0x57, 0x07, 0x5c, 0x00, - 0xc9, 0x76, 0x2e, 0x6c, 0x3f, 0xd9, 0x64, 0x62, 0x1a, 0x4c, 0x23, 0x06, 0xe2, 0x23, 0x49, 0x66, - 0xa1, 0x1e, 0x48, 0x12, 0x83, 0xa2, 0x7f, 0xa2, 0xc8, 0x3e, 0x4a, 0xa4, 0x4c, 0x45, 0x31, 0xec, - 0x00, 0x4f, 0xff, 0x05, 0xc8, 0x60, 0x0a, 0x31, 0xdd, 0xe1, 0x2e, 0xf6, 0x71, 0xa9, 0x8a, 0xe6, - 0x24, 0x62, 0x4a, 0x2a, 0xf1, 0x3b, 0xd4, 0xfd, 0x66, 0xa1, 0xff, 0x2e, 0xf9, 0xe4, 0x52, 0x80, - 0x04, 0x65, 0xbf, 0x43, 0x0d, 0x5d, 0x63, 0x42, 0x15, 0x75, 0xac, 0x53, 0xeb, 0xac, 0x79, 0xfe, - 0x18, 0x6f, 0xfe, 0xe5, 0xb5, 0x15, 0x27, 0xb3, 0x50, 0x0f, 0x24, 0xd6, 0x69, 0x9c, 0xf5, 0xf0, - 0xab, 0xf1, 0x07, 0x08, 0xd4, 0x10, 0x14, 0xf5, 0xec, 0xc5, 0x6d, 0xa7, 0x92, 0xdf, 0x76, 0xd0, - 0x66, 0xe6, 0xaf, 0xad, 0xf6, 0x10, 0x1d, 0xcb, 0x04, 0x02, 0xe7, 0xa8, 0xb0, 0x3f, 0xc4, 0x7f, - 0x7b, 0x87, 0x78, 0xbd, 0xd8, 0x28, 0x81, 0xc0, 0x6b, 0x19, 0xf1, 0xb1, 0x3e, 0xf9, 0x85, 0xa6, - 0xfb, 0xd5, 0x42, 0x27, 0xeb, 0xd4, 0x20, 0x92, 0xca, 0x7e, 0xbb, 0x53, 0x01, 0x1f, 0x56, 0x41, - 0xd3, 0x45, 0x81, 0x3b, 0xe6, 0x9e, 0x46, 0x39, 0xd9, 0x5a, 0x7f, 0x80, 0x6a, 0x91, 0x82, 0x58, - 0x3a, 0x47, 0xa7, 0xd5, 0xb3, 0xe6, 0xf9, 0x83, 0x03, 0xf7, 0xf7, 0x4e, 0x8c, 0xb3, 0xf6, 0x52, - 0xd3, 0xfe, 0x4a, 0xd2, 0xfd, 0x52, 0xdd, 0xda, 0x5e, 0xb7, 0xb2, 0x29, 0x6a, 0x48, 0x98, 0x43, - 0xa0, 0xb8, 0x30, 0xdb, 0x5f, 0x1c, 0xb8, 0x3d, 0x1d, 0xc3, 0x7c, 0x64, 0xd0, 0x4d, 0x85, 0x72, - 0xe2, 0xaf, 0xb5, 0xf6, 0x73, 0x54, 0x05, 0x96, 0x99, 0x02, 0xed, 0xed, 0x02, 0xfa, 0xbb, 0xd7, - 0xae, 0x3e, 0xcb, 0xae, 0xa8, 0xf0, 0x9a, 0x46, 0x52, 0xed, 0xb3, 0xcc, 0xd7, 0x8c, 0x3d, 0x40, - 0x75, 0x60, 0xd9, 0x0b, 0xc1, 0x63, 0xa7, 0x5a, 0xe0, 0xf7, 0xf7, 0xe0, 0x3a, 0x32, 0xe2, 0xa9, - 0x08, 0xc0, 0xfb, 0xdf, 0x58, 0xea, 0x66, 0xec, 0x97, 0x0a, 0xbb, 0x8f, 0xea, 0x19, 0x9f, 0xa7, - 0x31, 0x48, 0xe7, 0x78, 0xff, 0x32, 0x57, 0x45, 0x64, 0xa3, 0x59, 0x9d, 0xa5, 0x5f, 0xb2, 0xf6, - 0x6b, 0xd4, 0x5a, 0x3d, 0x0e, 0x79, 0xca, 0x94, 0x74, 0x6a, 0x85, 0xab, 0xb3, 0xdf, 0x55, 0xe4, - 0xbc, 0xbb, 0x46, 0xd8, 0xda, 0x1a, 0x4a, 0xff, 0x17, 0x95, 0x87, 0x17, 0x4b, 0xb7, 0x72, 0xbd, - 0x74, 0x2b, 0x37, 0x4b, 0xb7, 0xf2, 0x29, 0x77, 0xad, 0x45, 0xee, 0x5a, 0xd7, 0xb9, 0x6b, 0xdd, - 0xe4, 0xae, 0xf5, 0x3d, 0x77, 0xad, 0xcf, 0x3f, 0xdc, 0xca, 0x9b, 0x46, 0xf9, 0xbe, 0x7f, 0x06, - 0x00, 0x00, 0xff, 0xff, 0x0e, 0x35, 0x98, 0xb5, 0xd9, 0x04, 0x00, 0x00, + // 542 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x92, 0xc1, 0x8e, 0xd2, 0x40, + 0x1c, 0xc6, 0xe9, 0xb2, 0x04, 0x1c, 0xd8, 0x68, 0x1a, 0x0f, 0x0d, 0x31, 0x65, 0xe5, 0xe2, 0x26, + 0xc6, 0x19, 0x59, 0x8d, 0xd1, 0x6b, 0x13, 0x4c, 0x4c, 0x20, 0x6e, 0x4a, 0xb2, 0x89, 0xc6, 0x83, + 0x43, 0xf9, 0x5b, 0x2a, 0xb4, 0xd3, 0xcc, 0x4c, 0x9b, 0x78, 0xf3, 0x11, 0x7c, 0x01, 0x9f, 0x44, + 0x1f, 0x80, 0xe3, 0x1e, 0xf7, 0xb4, 0x91, 0xfa, 0x22, 0x66, 0x86, 0x29, 0xa0, 0x88, 0x72, 0x9b, + 0xff, 0x9f, 0xef, 0xfb, 0xcd, 0xf7, 0x31, 0x45, 0xfd, 0xd9, 0x73, 0x81, 0x23, 0x46, 0x66, 0xd9, + 0x18, 0x78, 0x02, 0x12, 0x04, 0xc9, 0x21, 0x99, 0x30, 0x4e, 0xcc, 0x0f, 0x34, 0x8d, 0x88, 0x00, + 0x29, 0xa3, 0x24, 0x14, 0x24, 0xef, 0xd1, 0x79, 0x3a, 0xa5, 0x3d, 0x12, 0x42, 0x02, 0x9c, 0x4a, + 0x98, 0xe0, 0x94, 0x33, 0xc9, 0xec, 0x7b, 0x2b, 0x35, 0xa6, 0x69, 0x84, 0x4b, 0x35, 0x2e, 0xd5, + 0xed, 0x47, 0x61, 0x24, 0xa7, 0xd9, 0x18, 0x07, 0x2c, 0x26, 0x21, 0x0b, 0x19, 0xd1, 0xa6, 0x71, + 0xf6, 0x41, 0x4f, 0x7a, 0xd0, 0xa7, 0x15, 0xac, 0xdd, 0xdd, 0xba, 0x3a, 0x60, 0x1c, 0x48, 0xbe, + 0x73, 0x61, 0xfb, 0xe9, 0x46, 0x13, 0xd3, 0x60, 0x1a, 0x25, 0xc0, 0x3f, 0x91, 0x74, 0x16, 0xaa, + 0x85, 0x20, 0x31, 0x48, 0xfa, 0x37, 0x17, 0xd9, 0xe7, 0xe2, 0x59, 0x22, 0xa3, 0x18, 0x76, 0x0c, + 0xcf, 0xfe, 0x67, 0x10, 0xc1, 0x14, 0x62, 0xfa, 0xa7, 0xaf, 0xfb, 0xdd, 0x42, 0xb7, 0x2e, 0xd8, + 0xe4, 0x82, 0x83, 0x00, 0x69, 0xbf, 0x47, 0x0d, 0x95, 0x68, 0x42, 0x25, 0x75, 0xac, 0x53, 0xeb, + 0xac, 0x79, 0xfe, 0x18, 0x6f, 0xfe, 0xb0, 0x35, 0x18, 0xa7, 0xb3, 0x50, 0x2d, 0x04, 0x56, 0x6a, + 0x9c, 0xf7, 0xf0, 0xeb, 0xf1, 0x47, 0x08, 0xe4, 0x10, 0x24, 0xf5, 0xec, 0xc5, 0x4d, 0xa7, 0x52, + 0xdc, 0x74, 0xd0, 0x66, 0xe7, 0xaf, 0xa9, 0xf6, 0x10, 0x1d, 0x8b, 0x14, 0x02, 0xe7, 0x48, 0xd3, + 0x1f, 0xe2, 0x7f, 0x3d, 0x07, 0x5e, 0x07, 0x1b, 0xa5, 0x10, 0x78, 0x2d, 0x03, 0x3e, 0x56, 0x93, + 0xaf, 0x31, 0xdd, 0x6f, 0x16, 0x3a, 0x59, 0xab, 0x06, 0x91, 0x90, 0xf6, 0xbb, 0x9d, 0x0a, 0xf8, + 0xb0, 0x0a, 0xca, 0xad, 0x0b, 0xdc, 0x31, 0xf7, 0x34, 0xca, 0xcd, 0x56, 0xfc, 0x01, 0xaa, 0x45, + 0x12, 0x62, 0xe1, 0x1c, 0x9d, 0x56, 0xcf, 0x9a, 0xe7, 0x0f, 0x0e, 0xcc, 0xef, 0x9d, 0x18, 0x66, + 0xed, 0x95, 0x72, 0xfb, 0x2b, 0x48, 0xf7, 0x6b, 0x75, 0x2b, 0xbd, 0x6a, 0x65, 0x53, 0xd4, 0x10, + 0x30, 0x87, 0x40, 0x32, 0x6e, 0xd2, 0x3f, 0x39, 0x30, 0x3d, 0x1d, 0xc3, 0x7c, 0x64, 0xac, 0x9b, + 0x0a, 0xe5, 0xc6, 0x5f, 0x63, 0xed, 0x17, 0xa8, 0x0a, 0x49, 0x6e, 0x0a, 0xb4, 0xb7, 0x0b, 0xa8, + 0x4f, 0x58, 0xb1, 0xfa, 0x49, 0x7e, 0x49, 0xb9, 0xd7, 0x34, 0x90, 0x6a, 0x3f, 0xc9, 0x7d, 0xe5, + 0xb1, 0x07, 0xa8, 0x0e, 0x49, 0xfe, 0x92, 0xb3, 0xd8, 0xa9, 0x6a, 0xfb, 0xfd, 0x3d, 0x76, 0x25, + 0x19, 0xb1, 0x8c, 0x07, 0xe0, 0xdd, 0x36, 0x94, 0xba, 0x59, 0xfb, 0x25, 0xc2, 0xee, 0xa3, 0x7a, + 0xce, 0xe6, 0x59, 0x0c, 0xc2, 0x39, 0xde, 0x1f, 0xe6, 0x52, 0x4b, 0x36, 0x98, 0xd5, 0x2c, 0xfc, + 0xd2, 0x6b, 0xbf, 0x41, 0xad, 0xd5, 0x71, 0xc8, 0xb2, 0x44, 0x0a, 0xa7, 0xa6, 0x59, 0x9d, 0xfd, + 0x2c, 0xad, 0xf3, 0xee, 0x1a, 0x60, 0x6b, 0x6b, 0x29, 0xfc, 0xdf, 0x50, 0x1e, 0x5e, 0x2c, 0xdd, + 0xca, 0xd5, 0xd2, 0xad, 0x5c, 0x2f, 0xdd, 0xca, 0xe7, 0xc2, 0xb5, 0x16, 0x85, 0x6b, 0x5d, 0x15, + 0xae, 0x75, 0x5d, 0xb8, 0xd6, 0x8f, 0xc2, 0xb5, 0xbe, 0xfc, 0x74, 0x2b, 0x6f, 0x1b, 0xe5, 0x7b, + 0xff, 0x0a, 0x00, 0x00, 0xff, 0xff, 0x46, 0x15, 0xf2, 0x97, 0xa4, 0x04, 0x00, 0x00, } diff --git a/vendor/k8s.io/api/settings/v1alpha1/generated.proto b/vendor/k8s.io/api/settings/v1alpha1/generated.proto index 098e8dd9b..d5534c4de 100644 --- a/vendor/k8s.io/api/settings/v1alpha1/generated.proto +++ b/vendor/k8s.io/api/settings/v1alpha1/generated.proto @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -25,7 +25,6 @@ import "k8s.io/api/core/v1/generated.proto"; import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; -import "k8s.io/apimachinery/pkg/util/intstr/generated.proto"; // Package-wide variables from generator "generated". option go_package = "v1alpha1"; diff --git a/vendor/k8s.io/api/settings/v1alpha1/types_swagger_doc_generated.go b/vendor/k8s.io/api/settings/v1alpha1/types_swagger_doc_generated.go index 2a89e5566..508c452f1 100644 --- a/vendor/k8s.io/api/settings/v1alpha1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/settings/v1alpha1/types_swagger_doc_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2016 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -26,7 +26,7 @@ package v1alpha1 // // Those methods can be generated by using hack/update-generated-swagger-docs.sh -// AUTO-GENERATED FUNCTIONS START HERE +// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT. var map_PodPreset = map[string]string{ "": "PodPreset is a policy resource that defines additional runtime requirements for a Pod.", } diff --git a/vendor/k8s.io/api/settings/v1alpha1/zz_generated.deepcopy.go b/vendor/k8s.io/api/settings/v1alpha1/zz_generated.deepcopy.go index 3fe7f6ca4..6397a88ab 100644 --- a/vendor/k8s.io/api/settings/v1alpha1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/api/settings/v1alpha1/zz_generated.deepcopy.go @@ -1,7 +1,7 @@ // +build !ignore_autogenerated /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/api/storage/v1/BUILD b/vendor/k8s.io/api/storage/v1/BUILD deleted file mode 100644 index 50a09f0eb..000000000 --- a/vendor/k8s.io/api/storage/v1/BUILD +++ /dev/null @@ -1,43 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "generated.pb.go", - "register.go", - "types.go", - "types_swagger_doc_generated.go", - "zz_generated.deepcopy.go", - ], - importpath = "k8s.io/api/storage/v1", - visibility = ["//visibility:public"], - deps = [ - "//vendor/github.com/gogo/protobuf/proto:go_default_library", - "//vendor/github.com/gogo/protobuf/sortkeys:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - ], -) - -filegroup( - name = "go_default_library_protos", - srcs = ["generated.proto"], - visibility = ["//visibility:public"], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/api/storage/v1/doc.go b/vendor/k8s.io/api/storage/v1/doc.go index 8f4a4045c..ff8bb34ca 100644 --- a/vendor/k8s.io/api/storage/v1/doc.go +++ b/vendor/k8s.io/api/storage/v1/doc.go @@ -17,4 +17,5 @@ limitations under the License. // +k8s:deepcopy-gen=package // +groupName=storage.k8s.io // +k8s:openapi-gen=true + package v1 diff --git a/vendor/k8s.io/api/storage/v1/generated.pb.go b/vendor/k8s.io/api/storage/v1/generated.pb.go index 31988b70d..e4b29311b 100644 --- a/vendor/k8s.io/api/storage/v1/generated.pb.go +++ b/vendor/k8s.io/api/storage/v1/generated.pb.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -14,9 +14,8 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: k8s.io/kubernetes/vendor/k8s.io/api/storage/v1/generated.proto -// DO NOT EDIT! /* Package v1 is a generated protocol buffer package. @@ -27,6 +26,12 @@ limitations under the License. It has these top-level messages: StorageClass StorageClassList + VolumeAttachment + VolumeAttachmentList + VolumeAttachmentSource + VolumeAttachmentSpec + VolumeAttachmentStatus + VolumeError */ package v1 @@ -62,9 +67,39 @@ func (m *StorageClassList) Reset() { *m = StorageClassList{} func (*StorageClassList) ProtoMessage() {} func (*StorageClassList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{1} } +func (m *VolumeAttachment) Reset() { *m = VolumeAttachment{} } +func (*VolumeAttachment) ProtoMessage() {} +func (*VolumeAttachment) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{2} } + +func (m *VolumeAttachmentList) Reset() { *m = VolumeAttachmentList{} } +func (*VolumeAttachmentList) ProtoMessage() {} +func (*VolumeAttachmentList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{3} } + +func (m *VolumeAttachmentSource) Reset() { *m = VolumeAttachmentSource{} } +func (*VolumeAttachmentSource) ProtoMessage() {} +func (*VolumeAttachmentSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{4} } + +func (m *VolumeAttachmentSpec) Reset() { *m = VolumeAttachmentSpec{} } +func (*VolumeAttachmentSpec) ProtoMessage() {} +func (*VolumeAttachmentSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{5} } + +func (m *VolumeAttachmentStatus) Reset() { *m = VolumeAttachmentStatus{} } +func (*VolumeAttachmentStatus) ProtoMessage() {} +func (*VolumeAttachmentStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{6} } + +func (m *VolumeError) Reset() { *m = VolumeError{} } +func (*VolumeError) ProtoMessage() {} +func (*VolumeError) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{7} } + func init() { proto.RegisterType((*StorageClass)(nil), "k8s.io.api.storage.v1.StorageClass") proto.RegisterType((*StorageClassList)(nil), "k8s.io.api.storage.v1.StorageClassList") + proto.RegisterType((*VolumeAttachment)(nil), "k8s.io.api.storage.v1.VolumeAttachment") + proto.RegisterType((*VolumeAttachmentList)(nil), "k8s.io.api.storage.v1.VolumeAttachmentList") + proto.RegisterType((*VolumeAttachmentSource)(nil), "k8s.io.api.storage.v1.VolumeAttachmentSource") + proto.RegisterType((*VolumeAttachmentSpec)(nil), "k8s.io.api.storage.v1.VolumeAttachmentSpec") + proto.RegisterType((*VolumeAttachmentStatus)(nil), "k8s.io.api.storage.v1.VolumeAttachmentStatus") + proto.RegisterType((*VolumeError)(nil), "k8s.io.api.storage.v1.VolumeError") } func (m *StorageClass) Marshal() (dAtA []byte, err error) { size := m.Size() @@ -152,6 +187,18 @@ func (m *StorageClass) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintGenerated(dAtA, i, uint64(len(*m.VolumeBindingMode))) i += copy(dAtA[i:], *m.VolumeBindingMode) } + if len(m.AllowedTopologies) > 0 { + for _, msg := range m.AllowedTopologies { + dAtA[i] = 0x42 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } return i, nil } @@ -193,24 +240,242 @@ func (m *StorageClassList) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Generated(dAtA []byte, offset int, v uint64) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - dAtA[offset+4] = uint8(v >> 32) - dAtA[offset+5] = uint8(v >> 40) - dAtA[offset+6] = uint8(v >> 48) - dAtA[offset+7] = uint8(v >> 56) - return offset + 8 +func (m *VolumeAttachment) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil } -func encodeFixed32Generated(dAtA []byte, offset int, v uint32) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - return offset + 4 + +func (m *VolumeAttachment) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) + n3, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n3 + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) + n4, err := m.Spec.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n4 + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) + n5, err := m.Status.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n5 + return i, nil } + +func (m *VolumeAttachmentList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *VolumeAttachmentList) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) + n6, err := m.ListMeta.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n6 + if len(m.Items) > 0 { + for _, msg := range m.Items { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + +func (m *VolumeAttachmentSource) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *VolumeAttachmentSource) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.PersistentVolumeName != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.PersistentVolumeName))) + i += copy(dAtA[i:], *m.PersistentVolumeName) + } + return i, nil +} + +func (m *VolumeAttachmentSpec) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *VolumeAttachmentSpec) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Attacher))) + i += copy(dAtA[i:], m.Attacher) + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Source.Size())) + n7, err := m.Source.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n7 + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.NodeName))) + i += copy(dAtA[i:], m.NodeName) + return i, nil +} + +func (m *VolumeAttachmentStatus) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *VolumeAttachmentStatus) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0x8 + i++ + if m.Attached { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ + if len(m.AttachmentMetadata) > 0 { + keysForAttachmentMetadata := make([]string, 0, len(m.AttachmentMetadata)) + for k := range m.AttachmentMetadata { + keysForAttachmentMetadata = append(keysForAttachmentMetadata, string(k)) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForAttachmentMetadata) + for _, k := range keysForAttachmentMetadata { + dAtA[i] = 0x12 + i++ + v := m.AttachmentMetadata[string(k)] + mapSize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) + i = encodeVarintGenerated(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) + } + } + if m.AttachError != nil { + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.AttachError.Size())) + n8, err := m.AttachError.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n8 + } + if m.DetachError != nil { + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.DetachError.Size())) + n9, err := m.DetachError.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n9 + } + return i, nil +} + +func (m *VolumeError) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *VolumeError) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Time.Size())) + n10, err := m.Time.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n10 + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Message))) + i += copy(dAtA[i:], m.Message) + return i, nil +} + func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -252,6 +517,12 @@ func (m *StorageClass) Size() (n int) { l = len(*m.VolumeBindingMode) n += 1 + l + sovGenerated(uint64(l)) } + if len(m.AllowedTopologies) > 0 { + for _, e := range m.AllowedTopologies { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } return n } @@ -269,6 +540,87 @@ func (m *StorageClassList) Size() (n int) { return n } +func (m *VolumeAttachment) Size() (n int) { + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Spec.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Status.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *VolumeAttachmentList) Size() (n int) { + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *VolumeAttachmentSource) Size() (n int) { + var l int + _ = l + if m.PersistentVolumeName != nil { + l = len(*m.PersistentVolumeName) + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *VolumeAttachmentSpec) Size() (n int) { + var l int + _ = l + l = len(m.Attacher) + n += 1 + l + sovGenerated(uint64(l)) + l = m.Source.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.NodeName) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *VolumeAttachmentStatus) Size() (n int) { + var l int + _ = l + n += 2 + if len(m.AttachmentMetadata) > 0 { + for k, v := range m.AttachmentMetadata { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) + n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) + } + } + if m.AttachError != nil { + l = m.AttachError.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.DetachError != nil { + l = m.DetachError.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *VolumeError) Size() (n int) { + var l int + _ = l + l = m.Time.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Message) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + func sovGenerated(x uint64) (n int) { for { n++ @@ -304,6 +656,7 @@ func (this *StorageClass) String() string { `MountOptions:` + fmt.Sprintf("%v", this.MountOptions) + `,`, `AllowVolumeExpansion:` + valueToStringGenerated(this.AllowVolumeExpansion) + `,`, `VolumeBindingMode:` + valueToStringGenerated(this.VolumeBindingMode) + `,`, + `AllowedTopologies:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.AllowedTopologies), "TopologySelectorTerm", "k8s_io_api_core_v1.TopologySelectorTerm", 1), `&`, ``, 1) + `,`, `}`, }, "") return s @@ -319,6 +672,85 @@ func (this *StorageClassList) String() string { }, "") return s } +func (this *VolumeAttachment) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&VolumeAttachment{`, + `ObjectMeta:` + strings.Replace(strings.Replace(this.ObjectMeta.String(), "ObjectMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "VolumeAttachmentSpec", "VolumeAttachmentSpec", 1), `&`, ``, 1) + `,`, + `Status:` + strings.Replace(strings.Replace(this.Status.String(), "VolumeAttachmentStatus", "VolumeAttachmentStatus", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *VolumeAttachmentList) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&VolumeAttachmentList{`, + `ListMeta:` + strings.Replace(strings.Replace(this.ListMeta.String(), "ListMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Items), "VolumeAttachment", "VolumeAttachment", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *VolumeAttachmentSource) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&VolumeAttachmentSource{`, + `PersistentVolumeName:` + valueToStringGenerated(this.PersistentVolumeName) + `,`, + `}`, + }, "") + return s +} +func (this *VolumeAttachmentSpec) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&VolumeAttachmentSpec{`, + `Attacher:` + fmt.Sprintf("%v", this.Attacher) + `,`, + `Source:` + strings.Replace(strings.Replace(this.Source.String(), "VolumeAttachmentSource", "VolumeAttachmentSource", 1), `&`, ``, 1) + `,`, + `NodeName:` + fmt.Sprintf("%v", this.NodeName) + `,`, + `}`, + }, "") + return s +} +func (this *VolumeAttachmentStatus) String() string { + if this == nil { + return "nil" + } + keysForAttachmentMetadata := make([]string, 0, len(this.AttachmentMetadata)) + for k := range this.AttachmentMetadata { + keysForAttachmentMetadata = append(keysForAttachmentMetadata, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForAttachmentMetadata) + mapStringForAttachmentMetadata := "map[string]string{" + for _, k := range keysForAttachmentMetadata { + mapStringForAttachmentMetadata += fmt.Sprintf("%v: %v,", k, this.AttachmentMetadata[k]) + } + mapStringForAttachmentMetadata += "}" + s := strings.Join([]string{`&VolumeAttachmentStatus{`, + `Attached:` + fmt.Sprintf("%v", this.Attached) + `,`, + `AttachmentMetadata:` + mapStringForAttachmentMetadata + `,`, + `AttachError:` + strings.Replace(fmt.Sprintf("%v", this.AttachError), "VolumeError", "VolumeError", 1) + `,`, + `DetachError:` + strings.Replace(fmt.Sprintf("%v", this.DetachError), "VolumeError", "VolumeError", 1) + `,`, + `}`, + }, "") + return s +} +func (this *VolumeError) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&VolumeError{`, + `Time:` + strings.Replace(strings.Replace(this.Time.String(), "Time", "k8s_io_apimachinery_pkg_apis_meta_v1.Time", 1), `&`, ``, 1) + `,`, + `Message:` + fmt.Sprintf("%v", this.Message) + `,`, + `}`, + }, "") + return s +} func valueToStringGenerated(v interface{}) string { rv := reflect.ValueOf(v) if rv.IsNil() { @@ -441,51 +873,14 @@ func (m *StorageClass) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.Parameters == nil { m.Parameters = make(map[string]string) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -495,41 +890,80 @@ func (m *StorageClass) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - m.Parameters[mapkey] = mapvalue - } else { - var mapvalue string - m.Parameters[mapkey] = mapvalue } + m.Parameters[mapkey] = mapvalue iNdEx = postIndex case 4: if wireType != 2 { @@ -641,6 +1075,37 @@ func (m *StorageClass) Unmarshal(dAtA []byte) error { s := VolumeBindingMode(dAtA[iNdEx:postIndex]) m.VolumeBindingMode = &s iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AllowedTopologies", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AllowedTopologies = append(m.AllowedTopologies, k8s_io_api_core_v1.TopologySelectorTerm{}) + if err := m.AllowedTopologies[len(m.AllowedTopologies)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -773,6 +1238,838 @@ func (m *StorageClassList) Unmarshal(dAtA []byte) error { } return nil } +func (m *VolumeAttachment) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: VolumeAttachment: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: VolumeAttachment: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *VolumeAttachmentList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: VolumeAttachmentList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: VolumeAttachmentList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, VolumeAttachment{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *VolumeAttachmentSource) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: VolumeAttachmentSource: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: VolumeAttachmentSource: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PersistentVolumeName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.PersistentVolumeName = &s + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *VolumeAttachmentSpec) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: VolumeAttachmentSpec: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: VolumeAttachmentSpec: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Attacher", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Attacher = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Source", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Source.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NodeName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NodeName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *VolumeAttachmentStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: VolumeAttachmentStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: VolumeAttachmentStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Attached", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Attached = bool(v != 0) + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AttachmentMetadata", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AttachmentMetadata == nil { + m.AttachmentMetadata = make(map[string]string) + } + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.AttachmentMetadata[mapkey] = mapvalue + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AttachError", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AttachError == nil { + m.AttachError = &VolumeError{} + } + if err := m.AttachError.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DetachError", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.DetachError == nil { + m.DetachError = &VolumeError{} + } + if err := m.DetachError.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *VolumeError) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: VolumeError: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: VolumeError: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Time", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Time.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Message = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipGenerated(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 @@ -883,44 +2180,67 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 623 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x52, 0x4f, 0x6f, 0xd3, 0x3c, - 0x18, 0x6f, 0xda, 0xb7, 0x2f, 0x9b, 0xbb, 0x89, 0x2e, 0x0c, 0x29, 0xea, 0x21, 0xa9, 0xc6, 0xa5, - 0x9a, 0x84, 0xb3, 0x6e, 0x03, 0x4d, 0x48, 0x20, 0x11, 0x34, 0x09, 0xa4, 0x4d, 0xab, 0x82, 0x34, - 0x21, 0xc4, 0x01, 0x37, 0x7d, 0xc8, 0x4c, 0x13, 0x3b, 0xb2, 0x9d, 0x40, 0x6f, 0x7c, 0x04, 0xce, - 0x7c, 0x14, 0x3e, 0xc1, 0x8e, 0x3b, 0xee, 0x14, 0xb1, 0xf0, 0x2d, 0x76, 0x42, 0x49, 0xca, 0x9a, - 0xad, 0x9d, 0xd8, 0x2d, 0xfe, 0xfd, 0xb3, 0x9f, 0x27, 0x3f, 0xf4, 0x62, 0xbc, 0x27, 0x31, 0xe5, - 0xf6, 0x38, 0x1e, 0x82, 0x60, 0xa0, 0x40, 0xda, 0x09, 0xb0, 0x11, 0x17, 0xf6, 0x94, 0x20, 0x11, - 0xb5, 0xa5, 0xe2, 0x82, 0xf8, 0x60, 0x27, 0x7d, 0xdb, 0x07, 0x06, 0x82, 0x28, 0x18, 0xe1, 0x48, - 0x70, 0xc5, 0xf5, 0x87, 0xa5, 0x0c, 0x93, 0x88, 0xe2, 0xa9, 0x0c, 0x27, 0xfd, 0xce, 0x63, 0x9f, - 0xaa, 0x93, 0x78, 0x88, 0x3d, 0x1e, 0xda, 0x3e, 0xf7, 0xb9, 0x5d, 0xa8, 0x87, 0xf1, 0xa7, 0xe2, - 0x54, 0x1c, 0x8a, 0xaf, 0x32, 0xa5, 0xb3, 0xb9, 0xf0, 0xb2, 0x21, 0x28, 0x32, 0x77, 0x63, 0x67, - 0x77, 0xa6, 0x0d, 0x89, 0x77, 0x42, 0x19, 0x88, 0x89, 0x1d, 0x8d, 0xfd, 0x1c, 0x90, 0x76, 0x08, - 0x8a, 0x2c, 0x78, 0x67, 0xc7, 0xbe, 0xcd, 0x25, 0x62, 0xa6, 0x68, 0x08, 0x73, 0x86, 0xa7, 0xff, - 0x32, 0x48, 0xef, 0x04, 0x42, 0x32, 0xe7, 0xdb, 0xb9, 0xcd, 0x17, 0x2b, 0x1a, 0xd8, 0x94, 0x29, - 0xa9, 0xc4, 0x4d, 0xd3, 0xc6, 0x8f, 0x26, 0x5a, 0x79, 0x5b, 0xce, 0xfd, 0x2a, 0x20, 0x52, 0xea, - 0x1f, 0xd1, 0x52, 0x3e, 0xc9, 0x88, 0x28, 0x62, 0x68, 0x5d, 0xad, 0xd7, 0xda, 0xde, 0xc2, 0xb3, - 0x4d, 0x5f, 0x05, 0xe3, 0x68, 0xec, 0xe7, 0x80, 0xc4, 0xb9, 0x1a, 0x27, 0x7d, 0x7c, 0x34, 0xfc, - 0x0c, 0x9e, 0x3a, 0x04, 0x45, 0x1c, 0xfd, 0x34, 0xb5, 0x6a, 0x59, 0x6a, 0xa1, 0x19, 0xe6, 0x5e, - 0xa5, 0xea, 0x4f, 0x50, 0x2b, 0x12, 0x3c, 0xa1, 0x92, 0x72, 0x06, 0xc2, 0xa8, 0x77, 0xb5, 0xde, - 0xb2, 0xf3, 0x60, 0x6a, 0x69, 0x0d, 0x66, 0x94, 0x5b, 0xd5, 0xe9, 0x3e, 0x42, 0x11, 0x11, 0x24, - 0x04, 0x05, 0x42, 0x1a, 0x8d, 0x6e, 0xa3, 0xd7, 0xda, 0xde, 0xc1, 0x0b, 0x4b, 0x80, 0xab, 0x13, - 0xe1, 0xc1, 0x95, 0x6b, 0x9f, 0x29, 0x31, 0x99, 0xbd, 0x6e, 0x46, 0xb8, 0x95, 0x68, 0x7d, 0x8c, - 0x56, 0x05, 0x78, 0x01, 0xa1, 0xe1, 0x80, 0x07, 0xd4, 0x9b, 0x18, 0xff, 0x15, 0x2f, 0xdc, 0xcf, - 0x52, 0x6b, 0xd5, 0xad, 0x12, 0x97, 0xa9, 0xb5, 0x55, 0xa9, 0x8f, 0xc7, 0x45, 0xde, 0x1d, 0x3c, - 0x00, 0x21, 0xa9, 0x54, 0xc0, 0xd4, 0x31, 0x0f, 0xe2, 0x10, 0xae, 0x79, 0xdc, 0xeb, 0xd9, 0xfa, - 0x2e, 0x5a, 0x09, 0x79, 0xcc, 0xd4, 0x51, 0xa4, 0x28, 0x67, 0xd2, 0x68, 0x76, 0x1b, 0xbd, 0x65, - 0xa7, 0x9d, 0xa5, 0xd6, 0xca, 0x61, 0x05, 0x77, 0xaf, 0xa9, 0xf4, 0x03, 0xb4, 0x4e, 0x82, 0x80, - 0x7f, 0x29, 0x2f, 0xd8, 0xff, 0x1a, 0x11, 0x96, 0x6f, 0xc9, 0xf8, 0xbf, 0xab, 0xf5, 0x96, 0x1c, - 0x23, 0x4b, 0xad, 0xf5, 0x97, 0x0b, 0x78, 0x77, 0xa1, 0x4b, 0x7f, 0x87, 0xd6, 0x92, 0x02, 0x72, - 0x28, 0x1b, 0x51, 0xe6, 0x1f, 0xf2, 0x11, 0x18, 0xf7, 0x8a, 0xa1, 0x37, 0xb3, 0xd4, 0x5a, 0x3b, - 0xbe, 0x49, 0x5e, 0x2e, 0x02, 0xdd, 0xf9, 0x90, 0xce, 0x73, 0x74, 0xff, 0xc6, 0xf6, 0xf5, 0x36, - 0x6a, 0x8c, 0x61, 0x52, 0x54, 0x6b, 0xd9, 0xcd, 0x3f, 0xf5, 0x75, 0xd4, 0x4c, 0x48, 0x10, 0x43, - 0xd9, 0x04, 0xb7, 0x3c, 0x3c, 0xab, 0xef, 0x69, 0x1b, 0x3f, 0x35, 0xd4, 0xae, 0xfe, 0xca, 0x03, - 0x2a, 0x95, 0xfe, 0x61, 0xae, 0xa0, 0xf8, 0x6e, 0x05, 0xcd, 0xdd, 0x45, 0x3d, 0xdb, 0xd3, 0x02, - 0x2c, 0xfd, 0x45, 0x2a, 0xe5, 0x7c, 0x8d, 0x9a, 0x54, 0x41, 0x28, 0x8d, 0x7a, 0x51, 0xb0, 0x47, - 0x77, 0x28, 0x98, 0xb3, 0x3a, 0xcd, 0x6b, 0xbe, 0xc9, 0x9d, 0x6e, 0x19, 0xe0, 0xf4, 0x4e, 0x2f, - 0xcc, 0xda, 0xd9, 0x85, 0x59, 0x3b, 0xbf, 0x30, 0x6b, 0xdf, 0x32, 0x53, 0x3b, 0xcd, 0x4c, 0xed, - 0x2c, 0x33, 0xb5, 0xf3, 0xcc, 0xd4, 0x7e, 0x65, 0xa6, 0xf6, 0xfd, 0xb7, 0x59, 0x7b, 0x5f, 0x4f, - 0xfa, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0xee, 0x56, 0xcc, 0xfd, 0x0a, 0x05, 0x00, 0x00, + // 984 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x56, 0x3d, 0x6f, 0x23, 0x45, + 0x18, 0xce, 0xc6, 0xf9, 0x70, 0xc6, 0x09, 0x97, 0x0c, 0x01, 0x8c, 0x0b, 0x3b, 0x32, 0x05, 0xe6, + 0xe0, 0x76, 0x2f, 0xe1, 0x40, 0x27, 0x24, 0x90, 0xbc, 0x60, 0x09, 0xa4, 0xf8, 0x2e, 0x9a, 0x84, + 0x13, 0x42, 0x14, 0x4c, 0x76, 0xdf, 0xdb, 0x2c, 0xf6, 0xee, 0x2c, 0x33, 0x63, 0x43, 0x3a, 0x2a, + 0x3a, 0x24, 0x68, 0xf9, 0x29, 0x94, 0x54, 0xa1, 0xbb, 0xf2, 0x2a, 0x8b, 0x2c, 0x35, 0x7f, 0x20, + 0x15, 0x9a, 0xd9, 0x89, 0xbd, 0xb1, 0xd7, 0x9c, 0xd3, 0x5c, 0xe7, 0xf7, 0xe3, 0x79, 0xde, 0xef, + 0x59, 0xa3, 0x4f, 0x7a, 0x0f, 0x85, 0x1d, 0x32, 0xa7, 0x37, 0x38, 0x05, 0x1e, 0x83, 0x04, 0xe1, + 0x0c, 0x21, 0xf6, 0x19, 0x77, 0x8c, 0x81, 0x26, 0xa1, 0x23, 0x24, 0xe3, 0x34, 0x00, 0x67, 0xb8, + 0xef, 0x04, 0x10, 0x03, 0xa7, 0x12, 0x7c, 0x3b, 0xe1, 0x4c, 0x32, 0xfc, 0x5a, 0xe6, 0x66, 0xd3, + 0x24, 0xb4, 0x8d, 0x9b, 0x3d, 0xdc, 0xaf, 0xdd, 0x0b, 0x42, 0x79, 0x36, 0x38, 0xb5, 0x3d, 0x16, + 0x39, 0x01, 0x0b, 0x98, 0xa3, 0xbd, 0x4f, 0x07, 0x4f, 0xb5, 0xa4, 0x05, 0xfd, 0x2b, 0x63, 0xa9, + 0x35, 0x73, 0xc1, 0x3c, 0xc6, 0x8b, 0x22, 0xd5, 0x1e, 0x4c, 0x7c, 0x22, 0xea, 0x9d, 0x85, 0x31, + 0xf0, 0x73, 0x27, 0xe9, 0x05, 0x4a, 0x21, 0x9c, 0x08, 0x24, 0x2d, 0x42, 0x39, 0xf3, 0x50, 0x7c, + 0x10, 0xcb, 0x30, 0x82, 0x19, 0xc0, 0x87, 0x2f, 0x02, 0x08, 0xef, 0x0c, 0x22, 0x3a, 0x8d, 0x6b, + 0xfe, 0xb2, 0x86, 0x36, 0x8f, 0xb3, 0x06, 0x7c, 0xda, 0xa7, 0x42, 0xe0, 0x6f, 0x51, 0x59, 0x25, + 0xe5, 0x53, 0x49, 0xab, 0xd6, 0x9e, 0xd5, 0xaa, 0x1c, 0xdc, 0xb7, 0x27, 0xcd, 0x1a, 0x73, 0xdb, + 0x49, 0x2f, 0x50, 0x0a, 0x61, 0x2b, 0x6f, 0x7b, 0xb8, 0x6f, 0x3f, 0x3e, 0xfd, 0x0e, 0x3c, 0xd9, + 0x05, 0x49, 0x5d, 0x7c, 0x31, 0x6a, 0x2c, 0xa5, 0xa3, 0x06, 0x9a, 0xe8, 0xc8, 0x98, 0x15, 0x7f, + 0x80, 0x2a, 0x09, 0x67, 0xc3, 0x50, 0x84, 0x2c, 0x06, 0x5e, 0x5d, 0xde, 0xb3, 0x5a, 0x1b, 0xee, + 0xab, 0x06, 0x52, 0x39, 0x9a, 0x98, 0x48, 0xde, 0x0f, 0x07, 0x08, 0x25, 0x94, 0xd3, 0x08, 0x24, + 0x70, 0x51, 0x2d, 0xed, 0x95, 0x5a, 0x95, 0x83, 0xf7, 0xed, 0xc2, 0x39, 0xda, 0xf9, 0x8a, 0xec, + 0xa3, 0x31, 0xaa, 0x13, 0x4b, 0x7e, 0x3e, 0xc9, 0x6e, 0x62, 0x20, 0x39, 0x6a, 0xdc, 0x43, 0x5b, + 0x1c, 0xbc, 0x3e, 0x0d, 0xa3, 0x23, 0xd6, 0x0f, 0xbd, 0xf3, 0xea, 0x8a, 0xce, 0xb0, 0x93, 0x8e, + 0x1a, 0x5b, 0x24, 0x6f, 0xb8, 0x1a, 0x35, 0xee, 0xcf, 0x6e, 0x80, 0x7d, 0x04, 0x5c, 0x84, 0x42, + 0x42, 0x2c, 0x9f, 0xb0, 0xfe, 0x20, 0x82, 0x1b, 0x18, 0x72, 0x93, 0x1b, 0x3f, 0x40, 0x9b, 0x11, + 0x1b, 0xc4, 0xf2, 0x71, 0x22, 0x43, 0x16, 0x8b, 0xea, 0xea, 0x5e, 0xa9, 0xb5, 0xe1, 0x6e, 0xa7, + 0xa3, 0xc6, 0x66, 0x37, 0xa7, 0x27, 0x37, 0xbc, 0xf0, 0x21, 0xda, 0xa5, 0xfd, 0x3e, 0xfb, 0x21, + 0x0b, 0xd0, 0xf9, 0x31, 0xa1, 0xb1, 0xea, 0x52, 0x75, 0x6d, 0xcf, 0x6a, 0x95, 0xdd, 0x6a, 0x3a, + 0x6a, 0xec, 0xb6, 0x0b, 0xec, 0xa4, 0x10, 0x85, 0xbf, 0x42, 0x3b, 0x43, 0xad, 0x72, 0xc3, 0xd8, + 0x0f, 0xe3, 0xa0, 0xcb, 0x7c, 0xa8, 0xae, 0xeb, 0xa2, 0xef, 0xa6, 0xa3, 0xc6, 0xce, 0x93, 0x69, + 0xe3, 0x55, 0x91, 0x92, 0xcc, 0x92, 0xe0, 0xef, 0xd1, 0x8e, 0x8e, 0x08, 0xfe, 0x09, 0x4b, 0x58, + 0x9f, 0x05, 0x21, 0x88, 0x6a, 0x59, 0x8f, 0xae, 0x95, 0x1f, 0x9d, 0x6a, 0x9d, 0x9a, 0x9b, 0xf1, + 0x3a, 0x3f, 0x86, 0x3e, 0x78, 0x92, 0xf1, 0x13, 0xe0, 0x91, 0xfb, 0xa6, 0x99, 0xd7, 0x4e, 0x7b, + 0x9a, 0x8a, 0xcc, 0xb2, 0xd7, 0x3e, 0x46, 0x77, 0xa6, 0x06, 0x8e, 0xb7, 0x51, 0xa9, 0x07, 0xe7, + 0x7a, 0x9b, 0x37, 0x88, 0xfa, 0x89, 0x77, 0xd1, 0xea, 0x90, 0xf6, 0x07, 0x90, 0x2d, 0x1f, 0xc9, + 0x84, 0x8f, 0x96, 0x1f, 0x5a, 0xcd, 0x3f, 0x2c, 0xb4, 0x9d, 0xdf, 0x9e, 0xc3, 0x50, 0x48, 0xfc, + 0xcd, 0xcc, 0x4d, 0xd8, 0x8b, 0xdd, 0x84, 0x42, 0xeb, 0x8b, 0xd8, 0x36, 0x35, 0x94, 0xaf, 0x35, + 0xb9, 0x7b, 0xf8, 0x1c, 0xad, 0x86, 0x12, 0x22, 0x51, 0x5d, 0xd6, 0x8d, 0x79, 0x6b, 0x81, 0x9d, + 0x76, 0xb7, 0x0c, 0xdf, 0xea, 0x17, 0x0a, 0x49, 0x32, 0x82, 0xe6, 0xef, 0xcb, 0x68, 0x3b, 0x9b, + 0x4b, 0x5b, 0x4a, 0xea, 0x9d, 0x45, 0x10, 0xcb, 0x97, 0x70, 0xd0, 0x5d, 0xb4, 0x22, 0x12, 0xf0, + 0x74, 0x33, 0x2b, 0x07, 0xef, 0xce, 0xc9, 0x7f, 0x3a, 0xb1, 0xe3, 0x04, 0x3c, 0x77, 0xd3, 0x10, + 0xaf, 0x28, 0x89, 0x68, 0x1a, 0xfc, 0x25, 0x5a, 0x13, 0x92, 0xca, 0x81, 0x3a, 0x72, 0x45, 0x78, + 0x6f, 0x51, 0x42, 0x0d, 0x72, 0x5f, 0x31, 0x94, 0x6b, 0x99, 0x4c, 0x0c, 0x59, 0xf3, 0x4f, 0x0b, + 0xed, 0x4e, 0x43, 0x5e, 0xc2, 0x74, 0x0f, 0x6f, 0x4e, 0xf7, 0xed, 0x05, 0x8b, 0x99, 0x33, 0xe1, + 0xa7, 0xe8, 0xf5, 0x99, 0xb2, 0xd9, 0x80, 0x7b, 0xa0, 0x9e, 0x84, 0x64, 0xea, 0xe1, 0x79, 0x44, + 0x23, 0xc8, 0xb6, 0x3e, 0x7b, 0x12, 0x8e, 0x0a, 0xec, 0xa4, 0x10, 0xd5, 0xfc, 0xab, 0xa0, 0x59, + 0x6a, 0x44, 0xf8, 0x3d, 0x54, 0xa6, 0x5a, 0x03, 0xdc, 0x50, 0x8f, 0x8b, 0x6f, 0x1b, 0x3d, 0x19, + 0x7b, 0xe8, 0x51, 0xea, 0xf4, 0xcc, 0x6e, 0x2c, 0x3c, 0x4a, 0x0d, 0xca, 0x8d, 0x52, 0xcb, 0xc4, + 0x90, 0xa9, 0x24, 0x62, 0xe6, 0x67, 0xf5, 0x95, 0x6e, 0x26, 0xf1, 0xc8, 0xe8, 0xc9, 0xd8, 0xa3, + 0xf9, 0x6f, 0xa9, 0xa0, 0x69, 0x7a, 0x27, 0x72, 0xd5, 0xf8, 0xba, 0x9a, 0xf2, 0x4c, 0x35, 0xfe, + 0xb8, 0x1a, 0x1f, 0xff, 0x66, 0x21, 0x4c, 0xc7, 0x14, 0xdd, 0xeb, 0x9d, 0xc9, 0x06, 0xdb, 0xb9, + 0xd5, 0x96, 0xda, 0xed, 0x19, 0x9e, 0xec, 0xe3, 0x54, 0x33, 0xf1, 0xf1, 0xac, 0x03, 0x29, 0x08, + 0x8e, 0x7d, 0x54, 0xc9, 0xb4, 0x1d, 0xce, 0x19, 0x37, 0x17, 0xd3, 0xfc, 0xdf, 0x5c, 0xb4, 0xa7, + 0x5b, 0x57, 0x1f, 0xdb, 0xf6, 0x04, 0x7a, 0x35, 0x6a, 0x54, 0x72, 0x76, 0x92, 0xa7, 0x55, 0x51, + 0x7c, 0x98, 0x44, 0x59, 0xb9, 0x5d, 0x94, 0xcf, 0x60, 0x7e, 0x94, 0x1c, 0x6d, 0xad, 0x83, 0xde, + 0x98, 0xd3, 0x96, 0x5b, 0x3d, 0xe1, 0x3f, 0x5b, 0x28, 0x1f, 0x03, 0x1f, 0xa2, 0x15, 0xf5, 0x0f, + 0xc8, 0xdc, 0xf6, 0xdd, 0xc5, 0x6e, 0xfb, 0x24, 0x8c, 0x60, 0xf2, 0x3a, 0x29, 0x89, 0x68, 0x16, + 0xfc, 0x0e, 0x5a, 0x8f, 0x40, 0x08, 0x1a, 0x98, 0xc8, 0xee, 0x1d, 0xe3, 0xb4, 0xde, 0xcd, 0xd4, + 0xe4, 0xda, 0xee, 0xb6, 0x2e, 0x2e, 0xeb, 0x4b, 0xcf, 0x2e, 0xeb, 0x4b, 0xcf, 0x2f, 0xeb, 0x4b, + 0x3f, 0xa5, 0x75, 0xeb, 0x22, 0xad, 0x5b, 0xcf, 0xd2, 0xba, 0xf5, 0x3c, 0xad, 0x5b, 0x7f, 0xa7, + 0x75, 0xeb, 0xd7, 0x7f, 0xea, 0x4b, 0x5f, 0x2f, 0x0f, 0xf7, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, + 0x85, 0x2a, 0x88, 0xc0, 0xcf, 0x0a, 0x00, 0x00, } diff --git a/vendor/k8s.io/api/storage/v1/generated.proto b/vendor/k8s.io/api/storage/v1/generated.proto index 72b3ceb83..668c85447 100644 --- a/vendor/k8s.io/api/storage/v1/generated.proto +++ b/vendor/k8s.io/api/storage/v1/generated.proto @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,18 +21,17 @@ syntax = 'proto2'; package k8s.io.api.storage.v1; -import "k8s.io/api/storage/v1beta1/generated.proto"; +import "k8s.io/api/core/v1/generated.proto"; import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; -import "k8s.io/apimachinery/pkg/util/intstr/generated.proto"; // Package-wide variables from generator "generated". option go_package = "v1"; // StorageClass describes the parameters for a class of storage for // which PersistentVolumes can be dynamically provisioned. -// +// // StorageClasses are non-namespaced; the name of the storage class // according to etcd is in ObjectMeta.Name. message StorageClass { @@ -66,10 +65,16 @@ message StorageClass { // VolumeBindingMode indicates how PersistentVolumeClaims should be // provisioned and bound. When unset, VolumeBindingImmediate is used. - // This field is alpha-level and is only honored by servers that enable - // the VolumeScheduling feature. + // This field is only honored by servers that enable the VolumeScheduling feature. // +optional optional string volumeBindingMode = 7; + + // Restrict the node topologies where volumes can be dynamically provisioned. + // Each volume plugin defines its own supported topology specifications. + // An empty TopologySelectorTerm list means there is no topology restriction. + // This field is only honored by servers that enable the VolumeScheduling feature. + // +optional + repeated k8s.io.api.core.v1.TopologySelectorTerm allowedTopologies = 8; } // StorageClassList is a collection of storage classes. @@ -83,3 +88,99 @@ message StorageClassList { repeated StorageClass items = 2; } +// VolumeAttachment captures the intent to attach or detach the specified volume +// to/from the specified node. +// +// VolumeAttachment objects are non-namespaced. +message VolumeAttachment { + // Standard object metadata. + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // Specification of the desired attach/detach volume behavior. + // Populated by the Kubernetes system. + optional VolumeAttachmentSpec spec = 2; + + // Status of the VolumeAttachment request. + // Populated by the entity completing the attach or detach + // operation, i.e. the external-attacher. + // +optional + optional VolumeAttachmentStatus status = 3; +} + +// VolumeAttachmentList is a collection of VolumeAttachment objects. +message VolumeAttachmentList { + // Standard list metadata + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + // Items is the list of VolumeAttachments + repeated VolumeAttachment items = 2; +} + +// VolumeAttachmentSource represents a volume that should be attached. +// Right now only PersistenVolumes can be attached via external attacher, +// in future we may allow also inline volumes in pods. +// Exactly one member can be set. +message VolumeAttachmentSource { + // Name of the persistent volume to attach. + // +optional + optional string persistentVolumeName = 1; +} + +// VolumeAttachmentSpec is the specification of a VolumeAttachment request. +message VolumeAttachmentSpec { + // Attacher indicates the name of the volume driver that MUST handle this + // request. This is the name returned by GetPluginName(). + optional string attacher = 1; + + // Source represents the volume that should be attached. + optional VolumeAttachmentSource source = 2; + + // The node that the volume should be attached to. + optional string nodeName = 3; +} + +// VolumeAttachmentStatus is the status of a VolumeAttachment request. +message VolumeAttachmentStatus { + // Indicates the volume is successfully attached. + // This field must only be set by the entity completing the attach + // operation, i.e. the external-attacher. + optional bool attached = 1; + + // Upon successful attach, this field is populated with any + // information returned by the attach operation that must be passed + // into subsequent WaitForAttach or Mount calls. + // This field must only be set by the entity completing the attach + // operation, i.e. the external-attacher. + // +optional + map attachmentMetadata = 2; + + // The last error encountered during attach operation, if any. + // This field must only be set by the entity completing the attach + // operation, i.e. the external-attacher. + // +optional + optional VolumeError attachError = 3; + + // The last error encountered during detach operation, if any. + // This field must only be set by the entity completing the detach + // operation, i.e. the external-attacher. + // +optional + optional VolumeError detachError = 4; +} + +// VolumeError captures an error encountered during a volume operation. +message VolumeError { + // Time the error was encountered. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time time = 1; + + // String detailing the error encountered during Attach or Detach operation. + // This string maybe logged, so it should not contain sensitive + // information. + // +optional + optional string message = 2; +} + diff --git a/vendor/k8s.io/api/storage/v1/register.go b/vendor/k8s.io/api/storage/v1/register.go index c058add84..473c68727 100644 --- a/vendor/k8s.io/api/storage/v1/register.go +++ b/vendor/k8s.io/api/storage/v1/register.go @@ -46,6 +46,9 @@ func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &StorageClass{}, &StorageClassList{}, + + &VolumeAttachment{}, + &VolumeAttachmentList{}, ) metav1.AddToGroupVersion(scheme, SchemeGroupVersion) diff --git a/vendor/k8s.io/api/storage/v1/types.go b/vendor/k8s.io/api/storage/v1/types.go index 288d40abb..9f2f67b6b 100644 --- a/vendor/k8s.io/api/storage/v1/types.go +++ b/vendor/k8s.io/api/storage/v1/types.go @@ -62,10 +62,16 @@ type StorageClass struct { // VolumeBindingMode indicates how PersistentVolumeClaims should be // provisioned and bound. When unset, VolumeBindingImmediate is used. - // This field is alpha-level and is only honored by servers that enable - // the VolumeScheduling feature. + // This field is only honored by servers that enable the VolumeScheduling feature. // +optional VolumeBindingMode *VolumeBindingMode `json:"volumeBindingMode,omitempty" protobuf:"bytes,7,opt,name=volumeBindingMode"` + + // Restrict the node topologies where volumes can be dynamically provisioned. + // Each volume plugin defines its own supported topology specifications. + // An empty TopologySelectorTerm list means there is no topology restriction. + // This field is only honored by servers that enable the VolumeScheduling feature. + // +optional + AllowedTopologies []v1.TopologySelectorTerm `json:"allowedTopologies,omitempty" protobuf:"bytes,8,rep,name=allowedTopologies"` } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object @@ -96,3 +102,110 @@ const ( // binding will occur during Pod scheduing. VolumeBindingWaitForFirstConsumer VolumeBindingMode = "WaitForFirstConsumer" ) + +// +genclient +// +genclient:nonNamespaced +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// VolumeAttachment captures the intent to attach or detach the specified volume +// to/from the specified node. +// +// VolumeAttachment objects are non-namespaced. +type VolumeAttachment struct { + metav1.TypeMeta `json:",inline"` + + // Standard object metadata. + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata + // +optional + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + // Specification of the desired attach/detach volume behavior. + // Populated by the Kubernetes system. + Spec VolumeAttachmentSpec `json:"spec" protobuf:"bytes,2,opt,name=spec"` + + // Status of the VolumeAttachment request. + // Populated by the entity completing the attach or detach + // operation, i.e. the external-attacher. + // +optional + Status VolumeAttachmentStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"` +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// VolumeAttachmentList is a collection of VolumeAttachment objects. +type VolumeAttachmentList struct { + metav1.TypeMeta `json:",inline"` + // Standard list metadata + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata + // +optional + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + // Items is the list of VolumeAttachments + Items []VolumeAttachment `json:"items" protobuf:"bytes,2,rep,name=items"` +} + +// VolumeAttachmentSpec is the specification of a VolumeAttachment request. +type VolumeAttachmentSpec struct { + // Attacher indicates the name of the volume driver that MUST handle this + // request. This is the name returned by GetPluginName(). + Attacher string `json:"attacher" protobuf:"bytes,1,opt,name=attacher"` + + // Source represents the volume that should be attached. + Source VolumeAttachmentSource `json:"source" protobuf:"bytes,2,opt,name=source"` + + // The node that the volume should be attached to. + NodeName string `json:"nodeName" protobuf:"bytes,3,opt,name=nodeName"` +} + +// VolumeAttachmentSource represents a volume that should be attached. +// Right now only PersistenVolumes can be attached via external attacher, +// in future we may allow also inline volumes in pods. +// Exactly one member can be set. +type VolumeAttachmentSource struct { + // Name of the persistent volume to attach. + // +optional + PersistentVolumeName *string `json:"persistentVolumeName,omitempty" protobuf:"bytes,1,opt,name=persistentVolumeName"` + + // Placeholder for *VolumeSource to accommodate inline volumes in pods. +} + +// VolumeAttachmentStatus is the status of a VolumeAttachment request. +type VolumeAttachmentStatus struct { + // Indicates the volume is successfully attached. + // This field must only be set by the entity completing the attach + // operation, i.e. the external-attacher. + Attached bool `json:"attached" protobuf:"varint,1,opt,name=attached"` + + // Upon successful attach, this field is populated with any + // information returned by the attach operation that must be passed + // into subsequent WaitForAttach or Mount calls. + // This field must only be set by the entity completing the attach + // operation, i.e. the external-attacher. + // +optional + AttachmentMetadata map[string]string `json:"attachmentMetadata,omitempty" protobuf:"bytes,2,rep,name=attachmentMetadata"` + + // The last error encountered during attach operation, if any. + // This field must only be set by the entity completing the attach + // operation, i.e. the external-attacher. + // +optional + AttachError *VolumeError `json:"attachError,omitempty" protobuf:"bytes,3,opt,name=attachError,casttype=VolumeError"` + + // The last error encountered during detach operation, if any. + // This field must only be set by the entity completing the detach + // operation, i.e. the external-attacher. + // +optional + DetachError *VolumeError `json:"detachError,omitempty" protobuf:"bytes,4,opt,name=detachError,casttype=VolumeError"` +} + +// VolumeError captures an error encountered during a volume operation. +type VolumeError struct { + // Time the error was encountered. + // +optional + Time metav1.Time `json:"time,omitempty" protobuf:"bytes,1,opt,name=time"` + + // String detailing the error encountered during Attach or Detach operation. + // This string maybe logged, so it should not contain sensitive + // information. + // +optional + Message string `json:"message,omitempty" protobuf:"bytes,2,opt,name=message"` +} diff --git a/vendor/k8s.io/api/storage/v1/types_swagger_doc_generated.go b/vendor/k8s.io/api/storage/v1/types_swagger_doc_generated.go index 3eb9bdab7..d4a022d52 100644 --- a/vendor/k8s.io/api/storage/v1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/storage/v1/types_swagger_doc_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2016 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -26,7 +26,7 @@ package v1 // // Those methods can be generated by using hack/update-generated-swagger-docs.sh -// AUTO-GENERATED FUNCTIONS START HERE +// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT. var map_StorageClass = map[string]string{ "": "StorageClass describes the parameters for a class of storage for which PersistentVolumes can be dynamically provisioned.\n\nStorageClasses are non-namespaced; the name of the storage class according to etcd is in ObjectMeta.Name.", "metadata": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", @@ -35,7 +35,8 @@ var map_StorageClass = map[string]string{ "reclaimPolicy": "Dynamically provisioned PersistentVolumes of this storage class are created with this reclaimPolicy. Defaults to Delete.", "mountOptions": "Dynamically provisioned PersistentVolumes of this storage class are created with these mountOptions, e.g. [\"ro\", \"soft\"]. Not validated - mount of the PVs will simply fail if one is invalid.", "allowVolumeExpansion": "AllowVolumeExpansion shows whether the storage class allow volume expand", - "volumeBindingMode": "VolumeBindingMode indicates how PersistentVolumeClaims should be provisioned and bound. When unset, VolumeBindingImmediate is used. This field is alpha-level and is only honored by servers that enable the VolumeScheduling feature.", + "volumeBindingMode": "VolumeBindingMode indicates how PersistentVolumeClaims should be provisioned and bound. When unset, VolumeBindingImmediate is used. This field is only honored by servers that enable the VolumeScheduling feature.", + "allowedTopologies": "Restrict the node topologies where volumes can be dynamically provisioned. Each volume plugin defines its own supported topology specifications. An empty TopologySelectorTerm list means there is no topology restriction. This field is only honored by servers that enable the VolumeScheduling feature.", } func (StorageClass) SwaggerDoc() map[string]string { @@ -52,4 +53,67 @@ func (StorageClassList) SwaggerDoc() map[string]string { return map_StorageClassList } +var map_VolumeAttachment = map[string]string{ + "": "VolumeAttachment captures the intent to attach or detach the specified volume to/from the specified node.\n\nVolumeAttachment objects are non-namespaced.", + "metadata": "Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "spec": "Specification of the desired attach/detach volume behavior. Populated by the Kubernetes system.", + "status": "Status of the VolumeAttachment request. Populated by the entity completing the attach or detach operation, i.e. the external-attacher.", +} + +func (VolumeAttachment) SwaggerDoc() map[string]string { + return map_VolumeAttachment +} + +var map_VolumeAttachmentList = map[string]string{ + "": "VolumeAttachmentList is a collection of VolumeAttachment objects.", + "metadata": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "items": "Items is the list of VolumeAttachments", +} + +func (VolumeAttachmentList) SwaggerDoc() map[string]string { + return map_VolumeAttachmentList +} + +var map_VolumeAttachmentSource = map[string]string{ + "": "VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set.", + "persistentVolumeName": "Name of the persistent volume to attach.", +} + +func (VolumeAttachmentSource) SwaggerDoc() map[string]string { + return map_VolumeAttachmentSource +} + +var map_VolumeAttachmentSpec = map[string]string{ + "": "VolumeAttachmentSpec is the specification of a VolumeAttachment request.", + "attacher": "Attacher indicates the name of the volume driver that MUST handle this request. This is the name returned by GetPluginName().", + "source": "Source represents the volume that should be attached.", + "nodeName": "The node that the volume should be attached to.", +} + +func (VolumeAttachmentSpec) SwaggerDoc() map[string]string { + return map_VolumeAttachmentSpec +} + +var map_VolumeAttachmentStatus = map[string]string{ + "": "VolumeAttachmentStatus is the status of a VolumeAttachment request.", + "attached": "Indicates the volume is successfully attached. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.", + "attachmentMetadata": "Upon successful attach, this field is populated with any information returned by the attach operation that must be passed into subsequent WaitForAttach or Mount calls. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.", + "attachError": "The last error encountered during attach operation, if any. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.", + "detachError": "The last error encountered during detach operation, if any. This field must only be set by the entity completing the detach operation, i.e. the external-attacher.", +} + +func (VolumeAttachmentStatus) SwaggerDoc() map[string]string { + return map_VolumeAttachmentStatus +} + +var map_VolumeError = map[string]string{ + "": "VolumeError captures an error encountered during a volume operation.", + "time": "Time the error was encountered.", + "message": "String detailing the error encountered during Attach or Detach operation. This string maybe logged, so it should not contain sensitive information.", +} + +func (VolumeError) SwaggerDoc() map[string]string { + return map_VolumeError +} + // AUTO-GENERATED FUNCTIONS END HERE diff --git a/vendor/k8s.io/api/storage/v1/zz_generated.deepcopy.go b/vendor/k8s.io/api/storage/v1/zz_generated.deepcopy.go index ccab05ccc..3157ec678 100644 --- a/vendor/k8s.io/api/storage/v1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/api/storage/v1/zz_generated.deepcopy.go @@ -1,7 +1,7 @@ // +build !ignore_autogenerated /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ limitations under the License. package v1 import ( - core_v1 "k8s.io/api/core/v1" + corev1 "k8s.io/api/core/v1" runtime "k8s.io/apimachinery/pkg/runtime" ) @@ -39,12 +39,8 @@ func (in *StorageClass) DeepCopyInto(out *StorageClass) { } if in.ReclaimPolicy != nil { in, out := &in.ReclaimPolicy, &out.ReclaimPolicy - if *in == nil { - *out = nil - } else { - *out = new(core_v1.PersistentVolumeReclaimPolicy) - **out = **in - } + *out = new(corev1.PersistentVolumeReclaimPolicy) + **out = **in } if in.MountOptions != nil { in, out := &in.MountOptions, &out.MountOptions @@ -53,20 +49,19 @@ func (in *StorageClass) DeepCopyInto(out *StorageClass) { } if in.AllowVolumeExpansion != nil { in, out := &in.AllowVolumeExpansion, &out.AllowVolumeExpansion - if *in == nil { - *out = nil - } else { - *out = new(bool) - **out = **in - } + *out = new(bool) + **out = **in } if in.VolumeBindingMode != nil { in, out := &in.VolumeBindingMode, &out.VolumeBindingMode - if *in == nil { - *out = nil - } else { - *out = new(VolumeBindingMode) - **out = **in + *out = new(VolumeBindingMode) + **out = **in + } + if in.AllowedTopologies != nil { + in, out := &in.AllowedTopologies, &out.AllowedTopologies + *out = make([]corev1.TopologySelectorTerm, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) } } return @@ -122,3 +117,152 @@ func (in *StorageClassList) DeepCopyObject() runtime.Object { } return nil } + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VolumeAttachment) DeepCopyInto(out *VolumeAttachment) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + in.Status.DeepCopyInto(&out.Status) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachment. +func (in *VolumeAttachment) DeepCopy() *VolumeAttachment { + if in == nil { + return nil + } + out := new(VolumeAttachment) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *VolumeAttachment) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VolumeAttachmentList) DeepCopyInto(out *VolumeAttachmentList) { + *out = *in + out.TypeMeta = in.TypeMeta + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]VolumeAttachment, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachmentList. +func (in *VolumeAttachmentList) DeepCopy() *VolumeAttachmentList { + if in == nil { + return nil + } + out := new(VolumeAttachmentList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *VolumeAttachmentList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VolumeAttachmentSource) DeepCopyInto(out *VolumeAttachmentSource) { + *out = *in + if in.PersistentVolumeName != nil { + in, out := &in.PersistentVolumeName, &out.PersistentVolumeName + *out = new(string) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachmentSource. +func (in *VolumeAttachmentSource) DeepCopy() *VolumeAttachmentSource { + if in == nil { + return nil + } + out := new(VolumeAttachmentSource) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VolumeAttachmentSpec) DeepCopyInto(out *VolumeAttachmentSpec) { + *out = *in + in.Source.DeepCopyInto(&out.Source) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachmentSpec. +func (in *VolumeAttachmentSpec) DeepCopy() *VolumeAttachmentSpec { + if in == nil { + return nil + } + out := new(VolumeAttachmentSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VolumeAttachmentStatus) DeepCopyInto(out *VolumeAttachmentStatus) { + *out = *in + if in.AttachmentMetadata != nil { + in, out := &in.AttachmentMetadata, &out.AttachmentMetadata + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.AttachError != nil { + in, out := &in.AttachError, &out.AttachError + *out = new(VolumeError) + (*in).DeepCopyInto(*out) + } + if in.DetachError != nil { + in, out := &in.DetachError, &out.DetachError + *out = new(VolumeError) + (*in).DeepCopyInto(*out) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachmentStatus. +func (in *VolumeAttachmentStatus) DeepCopy() *VolumeAttachmentStatus { + if in == nil { + return nil + } + out := new(VolumeAttachmentStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VolumeError) DeepCopyInto(out *VolumeError) { + *out = *in + in.Time.DeepCopyInto(&out.Time) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeError. +func (in *VolumeError) DeepCopy() *VolumeError { + if in == nil { + return nil + } + out := new(VolumeError) + in.DeepCopyInto(out) + return out +} diff --git a/vendor/k8s.io/api/storage/v1alpha1/BUILD b/vendor/k8s.io/api/storage/v1alpha1/BUILD deleted file mode 100644 index 98342a426..000000000 --- a/vendor/k8s.io/api/storage/v1alpha1/BUILD +++ /dev/null @@ -1,42 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -filegroup( - name = "go_default_library_protos", - srcs = ["generated.proto"], - visibility = ["//visibility:public"], -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "generated.pb.go", - "register.go", - "types.go", - "types_swagger_doc_generated.go", - "zz_generated.deepcopy.go", - ], - importpath = "k8s.io/api/storage/v1alpha1", - visibility = ["//visibility:public"], - deps = [ - "//vendor/github.com/gogo/protobuf/proto:go_default_library", - "//vendor/github.com/gogo/protobuf/sortkeys:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/api/storage/v1alpha1/doc.go b/vendor/k8s.io/api/storage/v1alpha1/doc.go index aa94aff7f..0056b00d9 100644 --- a/vendor/k8s.io/api/storage/v1alpha1/doc.go +++ b/vendor/k8s.io/api/storage/v1alpha1/doc.go @@ -17,4 +17,5 @@ limitations under the License. // +k8s:deepcopy-gen=package,register // +groupName=storage.k8s.io // +k8s:openapi-gen=true + package v1alpha1 // import "k8s.io/api/storage/v1alpha1" diff --git a/vendor/k8s.io/api/storage/v1alpha1/generated.pb.go b/vendor/k8s.io/api/storage/v1alpha1/generated.pb.go index 586a1b672..0511ccabd 100644 --- a/vendor/k8s.io/api/storage/v1alpha1/generated.pb.go +++ b/vendor/k8s.io/api/storage/v1alpha1/generated.pb.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -14,9 +14,8 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: k8s.io/kubernetes/vendor/k8s.io/api/storage/v1alpha1/generated.proto -// DO NOT EDIT! /* Package v1alpha1 is a generated protocol buffer package. @@ -324,24 +323,6 @@ func (m *VolumeError) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Generated(dAtA []byte, offset int, v uint64) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - dAtA[offset+4] = uint8(v >> 32) - dAtA[offset+5] = uint8(v >> 40) - dAtA[offset+6] = uint8(v >> 48) - dAtA[offset+7] = uint8(v >> 56) - return offset + 8 -} -func encodeFixed32Generated(dAtA []byte, offset int, v uint32) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - return offset + 4 -} func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -1076,51 +1057,14 @@ func (m *VolumeAttachmentStatus) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.AttachmentMetadata == nil { m.AttachmentMetadata = make(map[string]string) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -1130,41 +1074,80 @@ func (m *VolumeAttachmentStatus) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - m.AttachmentMetadata[mapkey] = mapvalue - } else { - var mapvalue string - m.AttachmentMetadata[mapkey] = mapvalue } + m.AttachmentMetadata[mapkey] = mapvalue iNdEx = postIndex case 3: if wireType != 2 { @@ -1472,52 +1455,49 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 745 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x94, 0x3d, 0x6f, 0xdb, 0x46, - 0x18, 0xc7, 0x45, 0x49, 0xb6, 0xe5, 0x53, 0x5f, 0x8c, 0x83, 0xd0, 0x0a, 0x2a, 0x40, 0x19, 0x9a, - 0xdc, 0xa2, 0x3e, 0x56, 0x76, 0x51, 0x18, 0xdd, 0x44, 0xd8, 0x43, 0x51, 0xcb, 0x2d, 0xe8, 0xa2, - 0x43, 0xdb, 0xa1, 0x27, 0xf2, 0x31, 0x45, 0x4b, 0x7c, 0xc1, 0xdd, 0x51, 0x88, 0xb7, 0x4c, 0x99, - 0xb3, 0xe5, 0x1b, 0xe4, 0xb3, 0x68, 0x8b, 0x47, 0x4f, 0x42, 0xcc, 0x7c, 0x8b, 0x2c, 0x09, 0x78, - 0x3c, 0x89, 0xb2, 0x29, 0x25, 0xb6, 0x37, 0x3e, 0xcf, 0x3d, 0xff, 0xdf, 0xf3, 0x76, 0x47, 0x74, - 0x3c, 0x3a, 0xe2, 0xc4, 0x0b, 0x8d, 0x51, 0x3c, 0x00, 0x16, 0x80, 0x00, 0x6e, 0x4c, 0x20, 0x70, - 0x42, 0x66, 0xa8, 0x03, 0x1a, 0x79, 0x06, 0x17, 0x21, 0xa3, 0x2e, 0x18, 0x93, 0x2e, 0x1d, 0x47, - 0x43, 0xda, 0x35, 0x5c, 0x08, 0x80, 0x51, 0x01, 0x0e, 0x89, 0x58, 0x28, 0x42, 0xfc, 0x5d, 0x16, - 0x4c, 0x68, 0xe4, 0x11, 0x15, 0x4c, 0xe6, 0xc1, 0xad, 0x7d, 0xd7, 0x13, 0xc3, 0x78, 0x40, 0xec, - 0xd0, 0x37, 0xdc, 0xd0, 0x0d, 0x0d, 0xa9, 0x19, 0xc4, 0x17, 0xd2, 0x92, 0x86, 0xfc, 0xca, 0x58, - 0xad, 0x7e, 0x9e, 0x18, 0x9e, 0x09, 0x08, 0xb8, 0x17, 0x06, 0x7c, 0x9f, 0x46, 0x1e, 0x07, 0x36, - 0x01, 0x66, 0x44, 0x23, 0x37, 0x3d, 0xe3, 0x77, 0x03, 0x8c, 0x49, 0x77, 0x00, 0xa2, 0x58, 0x5a, - 0xeb, 0xe7, 0x1c, 0xe7, 0x53, 0x7b, 0xe8, 0x05, 0xc0, 0xae, 0x72, 0x86, 0x0f, 0x82, 0x1a, 0x93, - 0xa2, 0xca, 0x58, 0xa7, 0x62, 0x71, 0x20, 0x3c, 0x1f, 0x0a, 0x82, 0x5f, 0x3e, 0x27, 0xe0, 0xf6, - 0x10, 0x7c, 0x5a, 0xd0, 0x1d, 0xae, 0xd3, 0xc5, 0xc2, 0x1b, 0x1b, 0x5e, 0x20, 0xb8, 0x60, 0xf7, - 0x45, 0x9d, 0xd7, 0x65, 0xb4, 0xf3, 0x77, 0x38, 0x8e, 0x7d, 0xe8, 0x09, 0x41, 0xed, 0xa1, 0x0f, - 0x81, 0xc0, 0xff, 0xa3, 0x5a, 0xda, 0x8d, 0x43, 0x05, 0x6d, 0x6a, 0xbb, 0xda, 0x5e, 0xfd, 0xe0, - 0x27, 0x92, 0xaf, 0x65, 0x01, 0x27, 0xd1, 0xc8, 0x4d, 0x1d, 0x9c, 0xa4, 0xd1, 0x64, 0xd2, 0x25, - 0x7f, 0x0c, 0x2e, 0xc1, 0x16, 0x7d, 0x10, 0xd4, 0xc4, 0xd3, 0x59, 0xbb, 0x94, 0xcc, 0xda, 0x28, - 0xf7, 0x59, 0x0b, 0x2a, 0x3e, 0x47, 0x55, 0x1e, 0x81, 0xdd, 0x2c, 0x4b, 0x7a, 0x97, 0x7c, 0x62, - 0xe9, 0xe4, 0x7e, 0x79, 0xe7, 0x11, 0xd8, 0xe6, 0x17, 0x0a, 0x5f, 0x4d, 0x2d, 0x4b, 0xc2, 0xf0, - 0xbf, 0x68, 0x93, 0x0b, 0x2a, 0x62, 0xde, 0xac, 0x48, 0xec, 0xe1, 0xe3, 0xb0, 0x52, 0x6a, 0x7e, - 0xa5, 0xc0, 0x9b, 0x99, 0x6d, 0x29, 0x64, 0x67, 0xaa, 0xa1, 0xc6, 0x7d, 0xc9, 0xa9, 0xc7, 0x05, - 0xfe, 0xaf, 0x30, 0x2c, 0xf2, 0xb0, 0x61, 0xa5, 0x6a, 0x39, 0xaa, 0x1d, 0x95, 0xb2, 0x36, 0xf7, - 0x2c, 0x0d, 0xca, 0x42, 0x1b, 0x9e, 0x00, 0x9f, 0x37, 0xcb, 0xbb, 0x95, 0xbd, 0xfa, 0xc1, 0xfe, - 0xa3, 0x5a, 0x32, 0xbf, 0x54, 0xe4, 0x8d, 0xdf, 0x52, 0x86, 0x95, 0xa1, 0x3a, 0x17, 0xe8, 0x9b, - 0x42, 0xf3, 0x61, 0xcc, 0x6c, 0xc0, 0xa7, 0xa8, 0x11, 0x01, 0xe3, 0x1e, 0x17, 0x10, 0x88, 0x2c, - 0xe6, 0x8c, 0xfa, 0x20, 0xfb, 0xda, 0x36, 0x9b, 0xc9, 0xac, 0xdd, 0xf8, 0x73, 0xc5, 0xb9, 0xb5, - 0x52, 0xd5, 0x79, 0xb3, 0x62, 0x64, 0xe9, 0xba, 0xf0, 0x8f, 0xa8, 0x46, 0xa5, 0x07, 0x98, 0x42, - 0x2f, 0x46, 0xd0, 0x53, 0x7e, 0x6b, 0x11, 0x21, 0xd7, 0x2a, 0xcb, 0x53, 0xb7, 0xe5, 0x91, 0x6b, - 0x95, 0xd2, 0xa5, 0xb5, 0x4a, 0xdb, 0x52, 0xc8, 0xb4, 0x94, 0x20, 0x74, 0xb2, 0x2e, 0x2b, 0x77, - 0x4b, 0x39, 0x53, 0x7e, 0x6b, 0x11, 0xd1, 0xf9, 0x50, 0x59, 0x31, 0x3a, 0x79, 0x3f, 0x96, 0x7a, - 0x72, 0x64, 0x4f, 0xb5, 0x42, 0x4f, 0xce, 0xa2, 0x27, 0x07, 0xbf, 0xd2, 0x10, 0xa6, 0x0b, 0x44, - 0x7f, 0x7e, 0x7f, 0xb2, 0x25, 0xff, 0xfe, 0x84, 0x7b, 0x4b, 0x7a, 0x05, 0xda, 0x49, 0x20, 0xd8, - 0x95, 0xd9, 0x52, 0x55, 0xe0, 0x62, 0x80, 0xb5, 0xa2, 0x04, 0x7c, 0x89, 0xea, 0x99, 0xf7, 0x84, - 0xb1, 0x90, 0xa9, 0x97, 0xb4, 0xf7, 0x80, 0x8a, 0x64, 0xbc, 0xa9, 0x27, 0xb3, 0x76, 0xbd, 0x97, - 0x03, 0xde, 0xcf, 0xda, 0xf5, 0xa5, 0x73, 0x6b, 0x19, 0x9e, 0xe6, 0x72, 0x20, 0xcf, 0x55, 0x7d, - 0x4a, 0xae, 0x63, 0x58, 0x9f, 0x6b, 0x09, 0xde, 0x3a, 0x41, 0xdf, 0xae, 0x19, 0x11, 0xde, 0x41, - 0x95, 0x11, 0x5c, 0x65, 0x37, 0xd1, 0x4a, 0x3f, 0x71, 0x03, 0x6d, 0x4c, 0xe8, 0x38, 0xce, 0x6e, - 0xdc, 0xb6, 0x95, 0x19, 0xbf, 0x96, 0x8f, 0xb4, 0xce, 0x0b, 0x0d, 0x2d, 0xe7, 0xc0, 0xa7, 0xa8, - 0x9a, 0xfe, 0x93, 0xd5, 0xcb, 0xff, 0xe1, 0x61, 0x2f, 0xff, 0x2f, 0xcf, 0x87, 0xfc, 0x0f, 0x96, - 0x5a, 0x96, 0xa4, 0xe0, 0xef, 0xd1, 0x96, 0x0f, 0x9c, 0x53, 0x57, 0x65, 0x36, 0xbf, 0x56, 0x41, - 0x5b, 0xfd, 0xcc, 0x6d, 0xcd, 0xcf, 0x4d, 0x32, 0xbd, 0xd5, 0x4b, 0xd7, 0xb7, 0x7a, 0xe9, 0xe6, - 0x56, 0x2f, 0x3d, 0x4f, 0x74, 0x6d, 0x9a, 0xe8, 0xda, 0x75, 0xa2, 0x6b, 0x37, 0x89, 0xae, 0xbd, - 0x4d, 0x74, 0xed, 0xe5, 0x3b, 0xbd, 0xf4, 0x4f, 0x6d, 0x3e, 0xb8, 0x8f, 0x01, 0x00, 0x00, 0xff, - 0xff, 0x68, 0x82, 0x7b, 0x73, 0x9e, 0x07, 0x00, 0x00, + // 704 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x94, 0x4d, 0x6f, 0xd3, 0x4c, + 0x10, 0xc7, 0xe3, 0x24, 0x6d, 0xd3, 0xcd, 0xf3, 0x52, 0xad, 0xa2, 0xe7, 0x89, 0x82, 0xe4, 0x54, + 0x39, 0x15, 0x44, 0xd7, 0xa4, 0x20, 0x54, 0x71, 0x8b, 0xd5, 0x1e, 0x10, 0x6d, 0x41, 0x5b, 0xc4, + 0x01, 0x38, 0xb0, 0xb1, 0xa7, 0x8e, 0x9b, 0xfa, 0x45, 0xbb, 0xeb, 0x48, 0xbd, 0x71, 0xe2, 0xcc, + 0x8d, 0x6f, 0xc0, 0x67, 0xc9, 0x8d, 0x1e, 0x7b, 0x8a, 0xa8, 0xf9, 0x16, 0x5c, 0x40, 0x5e, 0x6f, + 0x5e, 0x68, 0x52, 0x68, 0x7b, 0xf3, 0xcc, 0xce, 0xfc, 0x66, 0xe6, 0xbf, 0xb3, 0x46, 0x3b, 0xfd, + 0x6d, 0x41, 0xfc, 0xc8, 0xea, 0x27, 0x5d, 0xe0, 0x21, 0x48, 0x10, 0xd6, 0x00, 0x42, 0x37, 0xe2, + 0x96, 0x3e, 0x60, 0xb1, 0x6f, 0x09, 0x19, 0x71, 0xe6, 0x81, 0x35, 0x68, 0xb3, 0x93, 0xb8, 0xc7, + 0xda, 0x96, 0x07, 0x21, 0x70, 0x26, 0xc1, 0x25, 0x31, 0x8f, 0x64, 0x84, 0xef, 0xe4, 0xc1, 0x84, + 0xc5, 0x3e, 0xd1, 0xc1, 0x64, 0x1c, 0xdc, 0xd8, 0xf4, 0x7c, 0xd9, 0x4b, 0xba, 0xc4, 0x89, 0x02, + 0xcb, 0x8b, 0xbc, 0xc8, 0x52, 0x39, 0xdd, 0xe4, 0x48, 0x59, 0xca, 0x50, 0x5f, 0x39, 0xab, 0xf1, + 0x68, 0x5a, 0x38, 0x60, 0x4e, 0xcf, 0x0f, 0x81, 0x9f, 0x5a, 0x71, 0xdf, 0xcb, 0x1c, 0xc2, 0x0a, + 0x40, 0x32, 0x6b, 0x30, 0xd7, 0x41, 0xc3, 0xba, 0x2a, 0x8b, 0x27, 0xa1, 0xf4, 0x03, 0x98, 0x4b, + 0x78, 0xfc, 0xa7, 0x04, 0xe1, 0xf4, 0x20, 0x60, 0x97, 0xf3, 0x5a, 0x9f, 0x8b, 0x68, 0xed, 0x55, + 0x74, 0x92, 0x04, 0xd0, 0x91, 0x92, 0x39, 0xbd, 0x00, 0x42, 0x89, 0xdf, 0xa1, 0x4a, 0xd6, 0x98, + 0xcb, 0x24, 0xab, 0x1b, 0xeb, 0xc6, 0x46, 0x75, 0xeb, 0x01, 0x99, 0x4a, 0x32, 0xe1, 0x93, 0xb8, + 0xef, 0x65, 0x0e, 0x41, 0xb2, 0x68, 0x32, 0x68, 0x93, 0xe7, 0xdd, 0x63, 0x70, 0xe4, 0x3e, 0x48, + 0x66, 0xe3, 0xe1, 0xa8, 0x59, 0x48, 0x47, 0x4d, 0x34, 0xf5, 0xd1, 0x09, 0x15, 0x1f, 0xa2, 0xb2, + 0x88, 0xc1, 0xa9, 0x17, 0x15, 0xbd, 0x4d, 0x7e, 0x23, 0x38, 0xb9, 0xdc, 0xde, 0x61, 0x0c, 0x8e, + 0xfd, 0x97, 0xc6, 0x97, 0x33, 0x8b, 0x2a, 0x18, 0x7e, 0x83, 0x96, 0x85, 0x64, 0x32, 0x11, 0xf5, + 0x92, 0xc2, 0x3e, 0xbc, 0x19, 0x56, 0xa5, 0xda, 0xff, 0x68, 0xf0, 0x72, 0x6e, 0x53, 0x8d, 0x6c, + 0x0d, 0x0d, 0x54, 0xbb, 0x9c, 0xb2, 0xe7, 0x0b, 0x89, 0xdf, 0xce, 0x89, 0x45, 0xae, 0x27, 0x56, + 0x96, 0xad, 0xa4, 0x5a, 0xd3, 0x25, 0x2b, 0x63, 0xcf, 0x8c, 0x50, 0x14, 0x2d, 0xf9, 0x12, 0x02, + 0x51, 0x2f, 0xae, 0x97, 0x36, 0xaa, 0x5b, 0x9b, 0x37, 0x1a, 0xc9, 0xfe, 0x5b, 0x93, 0x97, 0x9e, + 0x66, 0x0c, 0x9a, 0xa3, 0x5a, 0x47, 0xe8, 0xbf, 0xb9, 0xe1, 0xa3, 0x84, 0x3b, 0x80, 0xf7, 0x50, + 0x2d, 0x06, 0x2e, 0x7c, 0x21, 0x21, 0x94, 0x79, 0xcc, 0x01, 0x0b, 0x40, 0xcd, 0xb5, 0x6a, 0xd7, + 0xd3, 0x51, 0xb3, 0xf6, 0x62, 0xc1, 0x39, 0x5d, 0x98, 0xd5, 0xfa, 0xb2, 0x40, 0xb2, 0xec, 0xba, + 0xf0, 0x7d, 0x54, 0x61, 0xca, 0x03, 0x5c, 0xa3, 0x27, 0x12, 0x74, 0xb4, 0x9f, 0x4e, 0x22, 0xd4, + 0xb5, 0xaa, 0xf6, 0xf4, 0xb6, 0xdc, 0xf0, 0x5a, 0x55, 0xea, 0xcc, 0xb5, 0x2a, 0x9b, 0x6a, 0x64, + 0xd6, 0x4a, 0x18, 0xb9, 0xf9, 0x94, 0xa5, 0x5f, 0x5b, 0x39, 0xd0, 0x7e, 0x3a, 0x89, 0x68, 0xfd, + 0x28, 0x2d, 0x90, 0x4e, 0xed, 0xc7, 0xcc, 0x4c, 0xae, 0x9a, 0xa9, 0x32, 0x37, 0x93, 0x3b, 0x99, + 0xc9, 0xc5, 0x9f, 0x0c, 0x84, 0xd9, 0x04, 0xb1, 0x3f, 0xde, 0x9f, 0xfc, 0x92, 0x9f, 0xdd, 0x62, + 0x6f, 0x49, 0x67, 0x8e, 0xb6, 0x1b, 0x4a, 0x7e, 0x6a, 0x37, 0x74, 0x17, 0x78, 0x3e, 0x80, 0x2e, + 0x68, 0x01, 0x1f, 0xa3, 0x6a, 0xee, 0xdd, 0xe5, 0x3c, 0xe2, 0xfa, 0x25, 0x6d, 0x5c, 0xa3, 0x23, + 0x15, 0x6f, 0x9b, 0xe9, 0xa8, 0x59, 0xed, 0x4c, 0x01, 0xdf, 0x47, 0xcd, 0xea, 0xcc, 0x39, 0x9d, + 0x85, 0x67, 0xb5, 0x5c, 0x98, 0xd6, 0x2a, 0xdf, 0xa6, 0xd6, 0x0e, 0x5c, 0x5d, 0x6b, 0x06, 0xde, + 0xd8, 0x45, 0xff, 0x5f, 0x21, 0x11, 0x5e, 0x43, 0xa5, 0x3e, 0x9c, 0xe6, 0x9b, 0x48, 0xb3, 0x4f, + 0x5c, 0x43, 0x4b, 0x03, 0x76, 0x92, 0xe4, 0x1b, 0xb7, 0x4a, 0x73, 0xe3, 0x49, 0x71, 0xdb, 0x68, + 0x7d, 0x30, 0xd0, 0x6c, 0x0d, 0xbc, 0x87, 0xca, 0xd9, 0xef, 0x55, 0xbf, 0xfc, 0x7b, 0xd7, 0x7b, + 0xf9, 0x2f, 0xfd, 0x00, 0xa6, 0x7f, 0xb0, 0xcc, 0xa2, 0x8a, 0x82, 0xef, 0xa2, 0x95, 0x00, 0x84, + 0x60, 0x9e, 0xae, 0x6c, 0xff, 0xab, 0x83, 0x56, 0xf6, 0x73, 0x37, 0x1d, 0x9f, 0xdb, 0x64, 0x78, + 0x61, 0x16, 0xce, 0x2e, 0xcc, 0xc2, 0xf9, 0x85, 0x59, 0x78, 0x9f, 0x9a, 0xc6, 0x30, 0x35, 0x8d, + 0xb3, 0xd4, 0x34, 0xce, 0x53, 0xd3, 0xf8, 0x9a, 0x9a, 0xc6, 0xc7, 0x6f, 0x66, 0xe1, 0x75, 0x65, + 0x2c, 0xdc, 0xcf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x42, 0xba, 0xdb, 0x12, 0x1a, 0x07, 0x00, 0x00, } diff --git a/vendor/k8s.io/api/storage/v1alpha1/generated.proto b/vendor/k8s.io/api/storage/v1alpha1/generated.proto index 289ef5f3e..fdc4ad257 100644 --- a/vendor/k8s.io/api/storage/v1alpha1/generated.proto +++ b/vendor/k8s.io/api/storage/v1alpha1/generated.proto @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,18 +21,16 @@ syntax = 'proto2'; package k8s.io.api.storage.v1alpha1; -import "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/generated.proto"; import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; -import "k8s.io/apimachinery/pkg/util/intstr/generated.proto"; // Package-wide variables from generator "generated". option go_package = "v1alpha1"; // VolumeAttachment captures the intent to attach or detach the specified volume // to/from the specified node. -// +// // VolumeAttachment objects are non-namespaced. message VolumeAttachment { // Standard object metadata. diff --git a/vendor/k8s.io/api/storage/v1alpha1/types_swagger_doc_generated.go b/vendor/k8s.io/api/storage/v1alpha1/types_swagger_doc_generated.go index faca8e939..3701b0864 100644 --- a/vendor/k8s.io/api/storage/v1alpha1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/storage/v1alpha1/types_swagger_doc_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2016 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -26,7 +26,7 @@ package v1alpha1 // // Those methods can be generated by using hack/update-generated-swagger-docs.sh -// AUTO-GENERATED FUNCTIONS START HERE +// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT. var map_VolumeAttachment = map[string]string{ "": "VolumeAttachment captures the intent to attach or detach the specified volume to/from the specified node.\n\nVolumeAttachment objects are non-namespaced.", "metadata": "Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", @@ -49,7 +49,7 @@ func (VolumeAttachmentList) SwaggerDoc() map[string]string { } var map_VolumeAttachmentSource = map[string]string{ - "": "VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set.", + "": "VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set.", "persistentVolumeName": "Name of the persistent volume to attach.", } diff --git a/vendor/k8s.io/api/storage/v1alpha1/zz_generated.deepcopy.go b/vendor/k8s.io/api/storage/v1alpha1/zz_generated.deepcopy.go index 04221c67c..e27c6ff3f 100644 --- a/vendor/k8s.io/api/storage/v1alpha1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/api/storage/v1alpha1/zz_generated.deepcopy.go @@ -1,7 +1,7 @@ // +build !ignore_autogenerated /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -90,12 +90,8 @@ func (in *VolumeAttachmentSource) DeepCopyInto(out *VolumeAttachmentSource) { *out = *in if in.PersistentVolumeName != nil { in, out := &in.PersistentVolumeName, &out.PersistentVolumeName - if *in == nil { - *out = nil - } else { - *out = new(string) - **out = **in - } + *out = new(string) + **out = **in } return } @@ -139,21 +135,13 @@ func (in *VolumeAttachmentStatus) DeepCopyInto(out *VolumeAttachmentStatus) { } if in.AttachError != nil { in, out := &in.AttachError, &out.AttachError - if *in == nil { - *out = nil - } else { - *out = new(VolumeError) - (*in).DeepCopyInto(*out) - } + *out = new(VolumeError) + (*in).DeepCopyInto(*out) } if in.DetachError != nil { in, out := &in.DetachError, &out.DetachError - if *in == nil { - *out = nil - } else { - *out = new(VolumeError) - (*in).DeepCopyInto(*out) - } + *out = new(VolumeError) + (*in).DeepCopyInto(*out) } return } diff --git a/vendor/k8s.io/api/storage/v1beta1/BUILD b/vendor/k8s.io/api/storage/v1beta1/BUILD deleted file mode 100644 index e659e9de0..000000000 --- a/vendor/k8s.io/api/storage/v1beta1/BUILD +++ /dev/null @@ -1,43 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "generated.pb.go", - "register.go", - "types.go", - "types_swagger_doc_generated.go", - "zz_generated.deepcopy.go", - ], - importpath = "k8s.io/api/storage/v1beta1", - visibility = ["//visibility:public"], - deps = [ - "//vendor/github.com/gogo/protobuf/proto:go_default_library", - "//vendor/github.com/gogo/protobuf/sortkeys:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - ], -) - -filegroup( - name = "go_default_library_protos", - srcs = ["generated.proto"], - visibility = ["//visibility:public"], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/api/storage/v1beta1/doc.go b/vendor/k8s.io/api/storage/v1beta1/doc.go index 8957a4cf2..ea7667dda 100644 --- a/vendor/k8s.io/api/storage/v1beta1/doc.go +++ b/vendor/k8s.io/api/storage/v1beta1/doc.go @@ -17,4 +17,5 @@ limitations under the License. // +k8s:deepcopy-gen=package // +groupName=storage.k8s.io // +k8s:openapi-gen=true + package v1beta1 // import "k8s.io/api/storage/v1beta1" diff --git a/vendor/k8s.io/api/storage/v1beta1/generated.pb.go b/vendor/k8s.io/api/storage/v1beta1/generated.pb.go index 425d0e717..3e995f039 100644 --- a/vendor/k8s.io/api/storage/v1beta1/generated.pb.go +++ b/vendor/k8s.io/api/storage/v1beta1/generated.pb.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -14,9 +14,8 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by protoc-gen-gogo. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: k8s.io/kubernetes/vendor/k8s.io/api/storage/v1beta1/generated.proto -// DO NOT EDIT! /* Package v1beta1 is a generated protocol buffer package. @@ -188,6 +187,18 @@ func (m *StorageClass) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintGenerated(dAtA, i, uint64(len(*m.VolumeBindingMode))) i += copy(dAtA[i:], *m.VolumeBindingMode) } + if len(m.AllowedTopologies) > 0 { + for _, msg := range m.AllowedTopologies { + dAtA[i] = 0x42 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } return i, nil } @@ -465,24 +476,6 @@ func (m *VolumeError) MarshalTo(dAtA []byte) (int, error) { return i, nil } -func encodeFixed64Generated(dAtA []byte, offset int, v uint64) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - dAtA[offset+4] = uint8(v >> 32) - dAtA[offset+5] = uint8(v >> 40) - dAtA[offset+6] = uint8(v >> 48) - dAtA[offset+7] = uint8(v >> 56) - return offset + 8 -} -func encodeFixed32Generated(dAtA []byte, offset int, v uint32) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - return offset + 4 -} func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { for v >= 1<<7 { dAtA[offset] = uint8(v&0x7f | 0x80) @@ -524,6 +517,12 @@ func (m *StorageClass) Size() (n int) { l = len(*m.VolumeBindingMode) n += 1 + l + sovGenerated(uint64(l)) } + if len(m.AllowedTopologies) > 0 { + for _, e := range m.AllowedTopologies { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } return n } @@ -657,6 +656,7 @@ func (this *StorageClass) String() string { `MountOptions:` + fmt.Sprintf("%v", this.MountOptions) + `,`, `AllowVolumeExpansion:` + valueToStringGenerated(this.AllowVolumeExpansion) + `,`, `VolumeBindingMode:` + valueToStringGenerated(this.VolumeBindingMode) + `,`, + `AllowedTopologies:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.AllowedTopologies), "TopologySelectorTerm", "k8s_io_api_core_v1.TopologySelectorTerm", 1), `&`, ``, 1) + `,`, `}`, }, "") return s @@ -873,51 +873,14 @@ func (m *StorageClass) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.Parameters == nil { m.Parameters = make(map[string]string) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -927,41 +890,80 @@ func (m *StorageClass) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - m.Parameters[mapkey] = mapvalue - } else { - var mapvalue string - m.Parameters[mapkey] = mapvalue } + m.Parameters[mapkey] = mapvalue iNdEx = postIndex case 4: if wireType != 2 { @@ -1073,6 +1075,37 @@ func (m *StorageClass) Unmarshal(dAtA []byte) error { s := VolumeBindingMode(dAtA[iNdEx:postIndex]) m.VolumeBindingMode = &s iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AllowedTopologies", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AllowedTopologies = append(m.AllowedTopologies, k8s_io_api_core_v1.TopologySelectorTerm{}) + if err := m.AllowedTopologies[len(m.AllowedTopologies)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -1749,51 +1782,14 @@ func (m *VolumeAttachmentStatus) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey if m.AttachmentMetadata == nil { m.AttachmentMetadata = make(map[string]string) } - if iNdEx < postIndex { - var valuekey uint64 + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -1803,41 +1799,80 @@ func (m *VolumeAttachmentStatus) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift + wire |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - m.AttachmentMetadata[mapkey] = mapvalue - } else { - var mapvalue string - m.AttachmentMetadata[mapkey] = mapvalue } + m.AttachmentMetadata[mapkey] = mapvalue iNdEx = postIndex case 3: if wireType != 2 { @@ -2145,67 +2180,67 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 977 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x56, 0xcd, 0x6f, 0x1b, 0x45, - 0x14, 0xcf, 0xc6, 0xf9, 0x1c, 0x27, 0x34, 0x1d, 0x22, 0xb0, 0x7c, 0x58, 0x47, 0xbe, 0x60, 0xaa, - 0x66, 0xb7, 0x09, 0x05, 0x45, 0x48, 0x1c, 0xb2, 0x25, 0x07, 0x50, 0xdc, 0x86, 0x29, 0xaa, 0x50, - 0xc5, 0x81, 0xc9, 0xee, 0xab, 0x33, 0xd8, 0xfb, 0xa1, 0x99, 0x59, 0xd3, 0xdc, 0x38, 0x71, 0xe6, - 0xc4, 0x95, 0x0b, 0xff, 0x07, 0x47, 0x72, 0x42, 0x3d, 0xf6, 0x64, 0x91, 0xe5, 0xbf, 0x88, 0x38, - 0xa0, 0x99, 0x9d, 0x78, 0xd7, 0x5e, 0x5b, 0x4d, 0x7a, 0xe8, 0x2d, 0xf3, 0xde, 0xfb, 0xfd, 0xde, - 0xd7, 0xef, 0xad, 0x83, 0x1e, 0xf5, 0x0f, 0x84, 0xc3, 0x62, 0xb7, 0x9f, 0x9e, 0x02, 0x8f, 0x40, - 0x82, 0x70, 0x87, 0x10, 0x05, 0x31, 0x77, 0x8d, 0x83, 0x26, 0xcc, 0x15, 0x32, 0xe6, 0xb4, 0x07, - 0xee, 0x70, 0xef, 0x14, 0x24, 0xdd, 0x73, 0x7b, 0x10, 0x01, 0xa7, 0x12, 0x02, 0x27, 0xe1, 0xb1, - 0x8c, 0x71, 0x33, 0x8f, 0x75, 0x68, 0xc2, 0x1c, 0x13, 0xeb, 0x98, 0xd8, 0xe6, 0x6e, 0x8f, 0xc9, - 0xb3, 0xf4, 0xd4, 0xf1, 0xe3, 0xd0, 0xed, 0xc5, 0xbd, 0xd8, 0xd5, 0x90, 0xd3, 0xf4, 0x85, 0x7e, - 0xe9, 0x87, 0xfe, 0x2b, 0xa7, 0x6a, 0xb6, 0x4b, 0x69, 0xfd, 0x98, 0xab, 0x9c, 0xd3, 0xe9, 0x9a, - 0xdd, 0x22, 0x06, 0x5e, 0x4a, 0x88, 0x04, 0x8b, 0x23, 0xb1, 0x4b, 0x13, 0x26, 0x80, 0x0f, 0x81, - 0xbb, 0x49, 0xbf, 0xa7, 0x7c, 0x62, 0x32, 0x60, 0x5e, 0xf5, 0xcd, 0x87, 0x05, 0x5d, 0x48, 0xfd, - 0x33, 0x16, 0x01, 0x3f, 0x2f, 0x38, 0x42, 0x90, 0x74, 0x56, 0x11, 0xee, 0x3c, 0x14, 0x4f, 0x23, - 0xc9, 0x42, 0xa8, 0x00, 0x3e, 0x7b, 0x13, 0x40, 0xf8, 0x67, 0x10, 0xd2, 0x0a, 0xee, 0x93, 0x79, - 0xb8, 0x54, 0xb2, 0x81, 0xcb, 0x22, 0x29, 0x24, 0x9f, 0x06, 0xb5, 0x7f, 0x5f, 0x46, 0x1b, 0x4f, - 0xf3, 0x4d, 0x3c, 0x1a, 0x50, 0x21, 0xf0, 0x0f, 0x68, 0x4d, 0x75, 0x12, 0x50, 0x49, 0x1b, 0xd6, - 0x8e, 0xd5, 0xa9, 0xef, 0x3f, 0x70, 0x8a, 0xad, 0x8d, 0x89, 0x9d, 0xa4, 0xdf, 0x53, 0x06, 0xe1, - 0xa8, 0x68, 0x67, 0xb8, 0xe7, 0x3c, 0x39, 0xfd, 0x11, 0x7c, 0xd9, 0x05, 0x49, 0x3d, 0x7c, 0x31, - 0x6a, 0x2d, 0x64, 0xa3, 0x16, 0x2a, 0x6c, 0x64, 0xcc, 0x8a, 0x3f, 0x45, 0xf5, 0x84, 0xc7, 0x43, - 0xa6, 0x86, 0x0d, 0xbc, 0xb1, 0xb8, 0x63, 0x75, 0xd6, 0xbd, 0xf7, 0x0d, 0xa4, 0x7e, 0x52, 0xb8, - 0x48, 0x39, 0x0e, 0x0f, 0x10, 0x4a, 0x28, 0xa7, 0x21, 0x48, 0xe0, 0xa2, 0x51, 0xdb, 0xa9, 0x75, - 0xea, 0xfb, 0x07, 0xce, 0x7c, 0x41, 0x39, 0xe5, 0xb6, 0x9c, 0x93, 0x31, 0xf4, 0x28, 0x92, 0xfc, - 0xbc, 0x28, 0xb1, 0x70, 0x90, 0x12, 0x3f, 0xee, 0xa3, 0x4d, 0x0e, 0xfe, 0x80, 0xb2, 0xf0, 0x24, - 0x1e, 0x30, 0xff, 0xbc, 0xb1, 0xa4, 0xcb, 0x3c, 0xca, 0x46, 0xad, 0x4d, 0x52, 0x76, 0x5c, 0x8d, - 0x5a, 0x0f, 0xaa, 0x52, 0x74, 0x4e, 0x80, 0x0b, 0x26, 0x24, 0x44, 0xf2, 0x59, 0x3c, 0x48, 0x43, - 0x98, 0xc0, 0x90, 0x49, 0x6e, 0xfc, 0x10, 0x6d, 0x84, 0x71, 0x1a, 0xc9, 0x27, 0x89, 0x54, 0x02, - 0x6c, 0x2c, 0xef, 0xd4, 0x3a, 0xeb, 0xde, 0x56, 0x36, 0x6a, 0x6d, 0x74, 0x4b, 0x76, 0x32, 0x11, - 0x85, 0x8f, 0xd1, 0x36, 0x1d, 0x0c, 0xe2, 0x9f, 0xf2, 0x04, 0x47, 0x2f, 0x13, 0xaa, 0xf5, 0xdb, - 0x58, 0xd9, 0xb1, 0x3a, 0x6b, 0x5e, 0x23, 0x1b, 0xb5, 0xb6, 0x0f, 0x67, 0xf8, 0xc9, 0x4c, 0x14, - 0xfe, 0x0e, 0xdd, 0x1d, 0x6a, 0x93, 0xc7, 0xa2, 0x80, 0x45, 0xbd, 0x6e, 0x1c, 0x40, 0x63, 0x55, - 0x37, 0x7d, 0x2f, 0x1b, 0xb5, 0xee, 0x3e, 0x9b, 0x76, 0x5e, 0xcd, 0x32, 0x92, 0x2a, 0x49, 0xf3, - 0x0b, 0x74, 0x67, 0x6a, 0xfa, 0x78, 0x0b, 0xd5, 0xfa, 0x70, 0xae, 0xf5, 0xb5, 0x4e, 0xd4, 0x9f, - 0x78, 0x1b, 0x2d, 0x0f, 0xe9, 0x20, 0x85, 0x5c, 0x0e, 0x24, 0x7f, 0x7c, 0xbe, 0x78, 0x60, 0xb5, - 0xff, 0xb4, 0xd0, 0x56, 0x79, 0x95, 0xc7, 0x4c, 0x48, 0xfc, 0x7d, 0x45, 0xa5, 0xce, 0xcd, 0x54, - 0xaa, 0xd0, 0x5a, 0xa3, 0x5b, 0x46, 0x00, 0x6b, 0xd7, 0x96, 0x92, 0x42, 0xbb, 0x68, 0x99, 0x49, - 0x08, 0x45, 0x63, 0x51, 0xab, 0xac, 0x73, 0x53, 0x95, 0x79, 0x9b, 0x86, 0x74, 0xf9, 0x2b, 0x05, - 0x27, 0x39, 0x4b, 0xfb, 0x8f, 0x45, 0xb4, 0x95, 0x4f, 0xea, 0x50, 0x4a, 0xea, 0x9f, 0x85, 0x10, - 0xc9, 0x77, 0x70, 0x67, 0x04, 0x2d, 0x89, 0x04, 0x7c, 0x3d, 0xd1, 0x49, 0xf6, 0x4a, 0x13, 0xd3, - 0xd5, 0x3d, 0x4d, 0xc0, 0xf7, 0x36, 0x0c, 0xfb, 0x92, 0x7a, 0x11, 0xcd, 0x85, 0x9f, 0xa3, 0x15, - 0x21, 0xa9, 0x4c, 0xd5, 0x01, 0x2a, 0xd6, 0xfd, 0x5b, 0xb1, 0x6a, 0xa4, 0xf7, 0x9e, 0xe1, 0x5d, - 0xc9, 0xdf, 0xc4, 0x30, 0xb6, 0xff, 0xb2, 0xd0, 0xf6, 0x34, 0xe4, 0x1d, 0x2c, 0xfb, 0x9b, 0xc9, - 0x65, 0xdf, 0xbf, 0x4d, 0x47, 0x73, 0x16, 0xfe, 0x02, 0x7d, 0x50, 0xe9, 0x3d, 0x4e, 0xb9, 0x0f, - 0xea, 0x66, 0x93, 0xa9, 0x2f, 0xc3, 0x63, 0x1a, 0x42, 0x7e, 0x09, 0xf9, 0xcd, 0x9e, 0xcc, 0xf0, - 0x93, 0x99, 0xa8, 0xf6, 0xdf, 0x33, 0x26, 0xa6, 0x96, 0x85, 0xef, 0xa3, 0x35, 0xaa, 0x2d, 0xc0, - 0x0d, 0xf5, 0x78, 0x02, 0x87, 0xc6, 0x4e, 0xc6, 0x11, 0x7a, 0xa9, 0xba, 0x3c, 0x23, 0x95, 0xdb, - 0x2d, 0x55, 0x23, 0x4b, 0x4b, 0xd5, 0x6f, 0x62, 0x18, 0x55, 0x25, 0x51, 0x1c, 0xe4, 0x4d, 0xd6, - 0x26, 0x2b, 0x79, 0x6c, 0xec, 0x64, 0x1c, 0xd1, 0xfe, 0xaf, 0x36, 0x63, 0x72, 0x5a, 0x1d, 0xa5, - 0x96, 0x02, 0xdd, 0xd2, 0x5a, 0xa5, 0xa5, 0x60, 0xdc, 0x52, 0x80, 0x7f, 0xb3, 0x10, 0xa6, 0x63, - 0x8a, 0xee, 0xb5, 0x7a, 0xf2, 0x15, 0x7f, 0x7d, 0x7b, 0xd1, 0x3a, 0x87, 0x15, 0xb2, 0xfc, 0x77, - 0xa4, 0x69, 0x8a, 0xc0, 0xd5, 0x00, 0x32, 0xa3, 0x02, 0xcc, 0x50, 0x3d, 0xb7, 0x1e, 0x71, 0x1e, - 0x73, 0x73, 0x45, 0x1f, 0xbd, 0xb9, 0x20, 0x1d, 0xee, 0xd9, 0xea, 0x17, 0xf2, 0xb0, 0xc0, 0x5f, - 0x8d, 0x5a, 0xf5, 0x92, 0x9f, 0x94, 0xb9, 0x55, 0xaa, 0x00, 0x8a, 0x54, 0x4b, 0x6f, 0x91, 0xea, - 0x4b, 0x98, 0x9f, 0xaa, 0xc4, 0xdd, 0x3c, 0x42, 0x1f, 0xce, 0x19, 0xd0, 0xad, 0x3e, 0xf5, 0xbf, - 0x58, 0xa8, 0x9c, 0x03, 0x1f, 0xa3, 0x25, 0xf5, 0x0f, 0x8f, 0x39, 0xfa, 0x7b, 0x37, 0x3b, 0xfa, - 0x6f, 0x59, 0x08, 0xc5, 0xb7, 0x4b, 0xbd, 0x88, 0x66, 0xc1, 0x1f, 0xa3, 0xd5, 0x10, 0x84, 0xa0, - 0x3d, 0x93, 0xd9, 0xbb, 0x63, 0x82, 0x56, 0xbb, 0xb9, 0x99, 0x5c, 0xfb, 0xbd, 0xdd, 0x8b, 0x4b, - 0x7b, 0xe1, 0xd5, 0xa5, 0xbd, 0xf0, 0xfa, 0xd2, 0x5e, 0xf8, 0x39, 0xb3, 0xad, 0x8b, 0xcc, 0xb6, - 0x5e, 0x65, 0xb6, 0xf5, 0x3a, 0xb3, 0xad, 0x7f, 0x32, 0xdb, 0xfa, 0xf5, 0x5f, 0x7b, 0xe1, 0xf9, - 0xaa, 0x99, 0xdb, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, 0x4b, 0x7f, 0x8a, 0x3b, 0x1c, 0x0b, 0x00, - 0x00, + // 988 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x56, 0x4d, 0x6f, 0x1b, 0x45, + 0x18, 0xce, 0xc6, 0xf9, 0x70, 0xc6, 0x09, 0x4d, 0x86, 0x08, 0x8c, 0x0f, 0x76, 0xe4, 0x0b, 0xa6, + 0x6a, 0x77, 0x9b, 0xa8, 0xa0, 0x08, 0x89, 0x83, 0xb7, 0xe4, 0x00, 0x8a, 0xdb, 0x30, 0x89, 0x2a, + 0x54, 0x71, 0x60, 0xb2, 0xfb, 0x76, 0xb3, 0x78, 0x77, 0x67, 0x99, 0x19, 0x1b, 0x72, 0xe3, 0xc4, + 0x19, 0x71, 0xe0, 0x17, 0xf0, 0x3f, 0x38, 0x92, 0x13, 0xea, 0xb1, 0x27, 0x8b, 0x2c, 0xff, 0x22, + 0xe2, 0x80, 0x66, 0x76, 0x62, 0xaf, 0xbd, 0x0e, 0x6d, 0x7a, 0xe8, 0xcd, 0xef, 0xc7, 0xf3, 0xbc, + 0xdf, 0xb3, 0x46, 0x8f, 0xfa, 0xfb, 0xc2, 0x0e, 0x99, 0xd3, 0x1f, 0x9c, 0x02, 0x4f, 0x40, 0x82, + 0x70, 0x86, 0x90, 0xf8, 0x8c, 0x3b, 0xc6, 0x40, 0xd3, 0xd0, 0x11, 0x92, 0x71, 0x1a, 0x80, 0x33, + 0xdc, 0x3d, 0x05, 0x49, 0x77, 0x9d, 0x00, 0x12, 0xe0, 0x54, 0x82, 0x6f, 0xa7, 0x9c, 0x49, 0x86, + 0x1b, 0xb9, 0xaf, 0x4d, 0xd3, 0xd0, 0x36, 0xbe, 0xb6, 0xf1, 0x6d, 0xdc, 0x0f, 0x42, 0x79, 0x36, + 0x38, 0xb5, 0x3d, 0x16, 0x3b, 0x01, 0x0b, 0x98, 0xa3, 0x21, 0xa7, 0x83, 0xe7, 0x5a, 0xd2, 0x82, + 0xfe, 0x95, 0x53, 0x35, 0xda, 0x85, 0xb0, 0x1e, 0xe3, 0x2a, 0xe6, 0x6c, 0xb8, 0xc6, 0xc3, 0x89, + 0x4f, 0x4c, 0xbd, 0xb3, 0x30, 0x01, 0x7e, 0xee, 0xa4, 0xfd, 0x40, 0x29, 0x84, 0x13, 0x83, 0xa4, + 0xf3, 0x50, 0xce, 0x4d, 0x28, 0x3e, 0x48, 0x64, 0x18, 0x43, 0x09, 0xf0, 0xc9, 0xab, 0x00, 0xc2, + 0x3b, 0x83, 0x98, 0xce, 0xe2, 0xda, 0xbf, 0xae, 0xa0, 0xf5, 0xe3, 0xbc, 0x0b, 0x8f, 0x22, 0x2a, + 0x04, 0xfe, 0x16, 0x55, 0x55, 0x52, 0x3e, 0x95, 0xb4, 0x6e, 0xed, 0x58, 0x9d, 0xda, 0xde, 0x03, + 0x7b, 0xd2, 0xb1, 0x31, 0xb7, 0x9d, 0xf6, 0x03, 0xa5, 0x10, 0xb6, 0xf2, 0xb6, 0x87, 0xbb, 0xf6, + 0x93, 0xd3, 0xef, 0xc0, 0x93, 0x3d, 0x90, 0xd4, 0xc5, 0x17, 0xa3, 0xd6, 0x42, 0x36, 0x6a, 0xa1, + 0x89, 0x8e, 0x8c, 0x59, 0xf1, 0xc7, 0xa8, 0x96, 0x72, 0x36, 0x0c, 0x45, 0xc8, 0x12, 0xe0, 0xf5, + 0xc5, 0x1d, 0xab, 0xb3, 0xe6, 0xbe, 0x6b, 0x20, 0xb5, 0xa3, 0x89, 0x89, 0x14, 0xfd, 0x70, 0x84, + 0x50, 0x4a, 0x39, 0x8d, 0x41, 0x02, 0x17, 0xf5, 0xca, 0x4e, 0xa5, 0x53, 0xdb, 0xdb, 0xb7, 0x6f, + 0x1e, 0xa6, 0x5d, 0x2c, 0xcb, 0x3e, 0x1a, 0x43, 0x0f, 0x12, 0xc9, 0xcf, 0x27, 0x29, 0x4e, 0x0c, + 0xa4, 0xc0, 0x8f, 0xfb, 0x68, 0x83, 0x83, 0x17, 0xd1, 0x30, 0x3e, 0x62, 0x51, 0xe8, 0x9d, 0xd7, + 0x97, 0x74, 0x9a, 0x07, 0xd9, 0xa8, 0xb5, 0x41, 0x8a, 0x86, 0xab, 0x51, 0xeb, 0x41, 0x79, 0x0d, + 0xec, 0x23, 0xe0, 0x22, 0x14, 0x12, 0x12, 0xf9, 0x94, 0x45, 0x83, 0x18, 0xa6, 0x30, 0x64, 0x9a, + 0x1b, 0x3f, 0x44, 0xeb, 0x31, 0x1b, 0x24, 0xf2, 0x49, 0x2a, 0x43, 0x96, 0x88, 0xfa, 0xf2, 0x4e, + 0xa5, 0xb3, 0xe6, 0x6e, 0x66, 0xa3, 0xd6, 0x7a, 0xaf, 0xa0, 0x27, 0x53, 0x5e, 0xf8, 0x10, 0x6d, + 0xd3, 0x28, 0x62, 0x3f, 0xe4, 0x01, 0x0e, 0x7e, 0x4c, 0x69, 0xa2, 0x5a, 0x55, 0x5f, 0xd9, 0xb1, + 0x3a, 0x55, 0xb7, 0x9e, 0x8d, 0x5a, 0xdb, 0xdd, 0x39, 0x76, 0x32, 0x17, 0x85, 0xbf, 0x46, 0x5b, + 0x43, 0xad, 0x72, 0xc3, 0xc4, 0x0f, 0x93, 0xa0, 0xc7, 0x7c, 0xa8, 0xaf, 0xea, 0xa2, 0xef, 0x66, + 0xa3, 0xd6, 0xd6, 0xd3, 0x59, 0xe3, 0xd5, 0x3c, 0x25, 0x29, 0x93, 0xe0, 0xef, 0xd1, 0x96, 0x8e, + 0x08, 0xfe, 0x09, 0x4b, 0x59, 0xc4, 0x82, 0x10, 0x44, 0xbd, 0xaa, 0xe7, 0xd7, 0x29, 0xce, 0x4f, + 0xb5, 0x4e, 0x2d, 0x92, 0xf1, 0x3a, 0x3f, 0x86, 0x08, 0x3c, 0xc9, 0xf8, 0x09, 0xf0, 0xd8, 0xfd, + 0xc0, 0xcc, 0x6b, 0xab, 0x3b, 0x4b, 0x45, 0xca, 0xec, 0x8d, 0xcf, 0xd0, 0x9d, 0x99, 0x81, 0xe3, + 0x4d, 0x54, 0xe9, 0xc3, 0xb9, 0x5e, 0xe9, 0x35, 0xa2, 0x7e, 0xe2, 0x6d, 0xb4, 0x3c, 0xa4, 0xd1, + 0x00, 0xf2, 0x0d, 0x24, 0xb9, 0xf0, 0xe9, 0xe2, 0xbe, 0xd5, 0xfe, 0xc3, 0x42, 0x9b, 0xc5, 0xed, + 0x39, 0x0c, 0x85, 0xc4, 0xdf, 0x94, 0x0e, 0xc3, 0x7e, 0xbd, 0xc3, 0x50, 0x68, 0x7d, 0x16, 0x9b, + 0xa6, 0x86, 0xea, 0xb5, 0xa6, 0x70, 0x14, 0x3d, 0xb4, 0x1c, 0x4a, 0x88, 0x45, 0x7d, 0xb1, 0xdc, + 0x98, 0xff, 0x5b, 0x6c, 0x77, 0xc3, 0x90, 0x2e, 0x7f, 0xa1, 0xe0, 0x24, 0x67, 0x69, 0xff, 0xbe, + 0x88, 0x36, 0xf3, 0xe1, 0x74, 0xa5, 0xa4, 0xde, 0x59, 0x0c, 0x89, 0x7c, 0x0b, 0xa7, 0x4d, 0xd0, + 0x92, 0x48, 0xc1, 0xd3, 0x1d, 0x9d, 0x66, 0x2f, 0x15, 0x31, 0x9b, 0xdd, 0x71, 0x0a, 0x9e, 0xbb, + 0x6e, 0xd8, 0x97, 0x94, 0x44, 0x34, 0x17, 0x7e, 0x86, 0x56, 0x84, 0xa4, 0x72, 0xa0, 0x6e, 0x5e, + 0xb1, 0xee, 0xdd, 0x8a, 0x55, 0x23, 0xdd, 0x77, 0x0c, 0xef, 0x4a, 0x2e, 0x13, 0xc3, 0xd8, 0xfe, + 0xd3, 0x42, 0xdb, 0xb3, 0x90, 0xb7, 0x30, 0xec, 0xaf, 0xa6, 0x87, 0x7d, 0xef, 0x36, 0x15, 0xdd, + 0x30, 0xf0, 0xe7, 0xe8, 0xbd, 0x52, 0xed, 0x6c, 0xc0, 0x3d, 0x50, 0xcf, 0x44, 0x3a, 0xf3, 0x18, + 0x3d, 0xa6, 0x31, 0xe4, 0x97, 0x90, 0x3f, 0x13, 0x47, 0x73, 0xec, 0x64, 0x2e, 0xaa, 0xfd, 0xd7, + 0x9c, 0x8e, 0xa9, 0x61, 0xe1, 0x7b, 0xa8, 0x4a, 0xb5, 0x06, 0xb8, 0xa1, 0x1e, 0x77, 0xa0, 0x6b, + 0xf4, 0x64, 0xec, 0xa1, 0x87, 0xaa, 0xd3, 0x33, 0xab, 0x72, 0xbb, 0xa1, 0x6a, 0x64, 0x61, 0xa8, + 0x5a, 0x26, 0x86, 0x51, 0x65, 0x92, 0x30, 0x3f, 0x2f, 0xb2, 0x32, 0x9d, 0xc9, 0x63, 0xa3, 0x27, + 0x63, 0x8f, 0xf6, 0xbf, 0x95, 0x39, 0x9d, 0xd3, 0xdb, 0x51, 0x28, 0xc9, 0xd7, 0x25, 0x55, 0x4b, + 0x25, 0xf9, 0xe3, 0x92, 0x7c, 0xfc, 0x9b, 0x85, 0x30, 0x1d, 0x53, 0xf4, 0xae, 0xb7, 0x27, 0x1f, + 0xf1, 0x97, 0xb7, 0x5f, 0x5a, 0xbb, 0x5b, 0x22, 0xcb, 0x3f, 0x5d, 0x0d, 0x93, 0x04, 0x2e, 0x3b, + 0x90, 0x39, 0x19, 0xe0, 0x10, 0xd5, 0x72, 0xed, 0x01, 0xe7, 0x8c, 0x9b, 0x2b, 0xfa, 0xf0, 0xd5, + 0x09, 0x69, 0x77, 0xb7, 0xa9, 0x3e, 0xca, 0xdd, 0x09, 0xfe, 0x6a, 0xd4, 0xaa, 0x15, 0xec, 0xa4, + 0xc8, 0xad, 0x42, 0xf9, 0x30, 0x09, 0xb5, 0xf4, 0x06, 0xa1, 0x3e, 0x87, 0x9b, 0x43, 0x15, 0xb8, + 0x1b, 0x07, 0xe8, 0xfd, 0x1b, 0x1a, 0x74, 0xab, 0xa7, 0xfe, 0x67, 0x0b, 0x15, 0x63, 0xe0, 0x43, + 0xb4, 0xa4, 0xfe, 0x2e, 0x99, 0xa3, 0xbf, 0xfb, 0x7a, 0x47, 0x7f, 0x12, 0xc6, 0x30, 0x79, 0xbb, + 0x94, 0x44, 0x34, 0x0b, 0xfe, 0x08, 0xad, 0xc6, 0x20, 0x04, 0x0d, 0x4c, 0x64, 0xf7, 0x8e, 0x71, + 0x5a, 0xed, 0xe5, 0x6a, 0x72, 0x6d, 0x77, 0xef, 0x5f, 0x5c, 0x36, 0x17, 0x5e, 0x5c, 0x36, 0x17, + 0x5e, 0x5e, 0x36, 0x17, 0x7e, 0xca, 0x9a, 0xd6, 0x45, 0xd6, 0xb4, 0x5e, 0x64, 0x4d, 0xeb, 0x65, + 0xd6, 0xb4, 0xfe, 0xce, 0x9a, 0xd6, 0x2f, 0xff, 0x34, 0x17, 0x9e, 0xad, 0x9a, 0xbe, 0xfd, 0x17, + 0x00, 0x00, 0xff, 0xff, 0xb4, 0x63, 0x7e, 0xa7, 0x0b, 0x0b, 0x00, 0x00, } diff --git a/vendor/k8s.io/api/storage/v1beta1/generated.proto b/vendor/k8s.io/api/storage/v1beta1/generated.proto index 1c6db8d41..db1f302a0 100644 --- a/vendor/k8s.io/api/storage/v1beta1/generated.proto +++ b/vendor/k8s.io/api/storage/v1beta1/generated.proto @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -22,18 +22,16 @@ syntax = 'proto2'; package k8s.io.api.storage.v1beta1; import "k8s.io/api/core/v1/generated.proto"; -import "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/generated.proto"; import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; -import "k8s.io/apimachinery/pkg/util/intstr/generated.proto"; // Package-wide variables from generator "generated". option go_package = "v1beta1"; // StorageClass describes the parameters for a class of storage for // which PersistentVolumes can be dynamically provisioned. -// +// // StorageClasses are non-namespaced; the name of the storage class // according to etcd is in ObjectMeta.Name. message StorageClass { @@ -67,10 +65,16 @@ message StorageClass { // VolumeBindingMode indicates how PersistentVolumeClaims should be // provisioned and bound. When unset, VolumeBindingImmediate is used. - // This field is alpha-level and is only honored by servers that enable - // the VolumeScheduling feature. + // This field is only honored by servers that enable the VolumeScheduling feature. // +optional optional string volumeBindingMode = 7; + + // Restrict the node topologies where volumes can be dynamically provisioned. + // Each volume plugin defines its own supported topology specifications. + // An empty TopologySelectorTerm list means there is no topology restriction. + // This field is only honored by servers that enable the VolumeScheduling feature. + // +optional + repeated k8s.io.api.core.v1.TopologySelectorTerm allowedTopologies = 8; } // StorageClassList is a collection of storage classes. @@ -86,7 +90,7 @@ message StorageClassList { // VolumeAttachment captures the intent to attach or detach the specified volume // to/from the specified node. -// +// // VolumeAttachment objects are non-namespaced. message VolumeAttachment { // Standard object metadata. diff --git a/vendor/k8s.io/api/storage/v1beta1/types.go b/vendor/k8s.io/api/storage/v1beta1/types.go index 99c9e4594..5702c21bc 100644 --- a/vendor/k8s.io/api/storage/v1beta1/types.go +++ b/vendor/k8s.io/api/storage/v1beta1/types.go @@ -62,10 +62,16 @@ type StorageClass struct { // VolumeBindingMode indicates how PersistentVolumeClaims should be // provisioned and bound. When unset, VolumeBindingImmediate is used. - // This field is alpha-level and is only honored by servers that enable - // the VolumeScheduling feature. + // This field is only honored by servers that enable the VolumeScheduling feature. // +optional VolumeBindingMode *VolumeBindingMode `json:"volumeBindingMode,omitempty" protobuf:"bytes,7,opt,name=volumeBindingMode"` + + // Restrict the node topologies where volumes can be dynamically provisioned. + // Each volume plugin defines its own supported topology specifications. + // An empty TopologySelectorTerm list means there is no topology restriction. + // This field is only honored by servers that enable the VolumeScheduling feature. + // +optional + AllowedTopologies []v1.TopologySelectorTerm `json:"allowedTopologies,omitempty" protobuf:"bytes,8,rep,name=allowedTopologies"` } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object diff --git a/vendor/k8s.io/api/storage/v1beta1/types_swagger_doc_generated.go b/vendor/k8s.io/api/storage/v1beta1/types_swagger_doc_generated.go index c9c20c453..834553e1a 100644 --- a/vendor/k8s.io/api/storage/v1beta1/types_swagger_doc_generated.go +++ b/vendor/k8s.io/api/storage/v1beta1/types_swagger_doc_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2016 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -26,7 +26,7 @@ package v1beta1 // // Those methods can be generated by using hack/update-generated-swagger-docs.sh -// AUTO-GENERATED FUNCTIONS START HERE +// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT. var map_StorageClass = map[string]string{ "": "StorageClass describes the parameters for a class of storage for which PersistentVolumes can be dynamically provisioned.\n\nStorageClasses are non-namespaced; the name of the storage class according to etcd is in ObjectMeta.Name.", "metadata": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", @@ -35,7 +35,8 @@ var map_StorageClass = map[string]string{ "reclaimPolicy": "Dynamically provisioned PersistentVolumes of this storage class are created with this reclaimPolicy. Defaults to Delete.", "mountOptions": "Dynamically provisioned PersistentVolumes of this storage class are created with these mountOptions, e.g. [\"ro\", \"soft\"]. Not validated - mount of the PVs will simply fail if one is invalid.", "allowVolumeExpansion": "AllowVolumeExpansion shows whether the storage class allow volume expand", - "volumeBindingMode": "VolumeBindingMode indicates how PersistentVolumeClaims should be provisioned and bound. When unset, VolumeBindingImmediate is used. This field is alpha-level and is only honored by servers that enable the VolumeScheduling feature.", + "volumeBindingMode": "VolumeBindingMode indicates how PersistentVolumeClaims should be provisioned and bound. When unset, VolumeBindingImmediate is used. This field is only honored by servers that enable the VolumeScheduling feature.", + "allowedTopologies": "Restrict the node topologies where volumes can be dynamically provisioned. Each volume plugin defines its own supported topology specifications. An empty TopologySelectorTerm list means there is no topology restriction. This field is only honored by servers that enable the VolumeScheduling feature.", } func (StorageClass) SwaggerDoc() map[string]string { @@ -74,7 +75,7 @@ func (VolumeAttachmentList) SwaggerDoc() map[string]string { } var map_VolumeAttachmentSource = map[string]string{ - "": "VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set.", + "": "VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set.", "persistentVolumeName": "Name of the persistent volume to attach.", } diff --git a/vendor/k8s.io/api/storage/v1beta1/zz_generated.deepcopy.go b/vendor/k8s.io/api/storage/v1beta1/zz_generated.deepcopy.go index 9a6a7266d..8096dba9b 100644 --- a/vendor/k8s.io/api/storage/v1beta1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/api/storage/v1beta1/zz_generated.deepcopy.go @@ -1,7 +1,7 @@ // +build !ignore_autogenerated /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -39,12 +39,8 @@ func (in *StorageClass) DeepCopyInto(out *StorageClass) { } if in.ReclaimPolicy != nil { in, out := &in.ReclaimPolicy, &out.ReclaimPolicy - if *in == nil { - *out = nil - } else { - *out = new(v1.PersistentVolumeReclaimPolicy) - **out = **in - } + *out = new(v1.PersistentVolumeReclaimPolicy) + **out = **in } if in.MountOptions != nil { in, out := &in.MountOptions, &out.MountOptions @@ -53,20 +49,19 @@ func (in *StorageClass) DeepCopyInto(out *StorageClass) { } if in.AllowVolumeExpansion != nil { in, out := &in.AllowVolumeExpansion, &out.AllowVolumeExpansion - if *in == nil { - *out = nil - } else { - *out = new(bool) - **out = **in - } + *out = new(bool) + **out = **in } if in.VolumeBindingMode != nil { in, out := &in.VolumeBindingMode, &out.VolumeBindingMode - if *in == nil { - *out = nil - } else { - *out = new(VolumeBindingMode) - **out = **in + *out = new(VolumeBindingMode) + **out = **in + } + if in.AllowedTopologies != nil { + in, out := &in.AllowedTopologies, &out.AllowedTopologies + *out = make([]v1.TopologySelectorTerm, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) } } return @@ -189,12 +184,8 @@ func (in *VolumeAttachmentSource) DeepCopyInto(out *VolumeAttachmentSource) { *out = *in if in.PersistentVolumeName != nil { in, out := &in.PersistentVolumeName, &out.PersistentVolumeName - if *in == nil { - *out = nil - } else { - *out = new(string) - **out = **in - } + *out = new(string) + **out = **in } return } @@ -238,21 +229,13 @@ func (in *VolumeAttachmentStatus) DeepCopyInto(out *VolumeAttachmentStatus) { } if in.AttachError != nil { in, out := &in.AttachError, &out.AttachError - if *in == nil { - *out = nil - } else { - *out = new(VolumeError) - (*in).DeepCopyInto(*out) - } + *out = new(VolumeError) + (*in).DeepCopyInto(*out) } if in.DetachError != nil { in, out := &in.DetachError, &out.DetachError - if *in == nil { - *out = nil - } else { - *out = new(VolumeError) - (*in).DeepCopyInto(*out) - } + *out = new(VolumeError) + (*in).DeepCopyInto(*out) } return } diff --git a/vendor/k8s.io/client-go/.github/PULL_REQUEST_TEMPLATE.md b/vendor/k8s.io/client-go/.github/PULL_REQUEST_TEMPLATE.md index e559c074b..6aed9889c 100644 --- a/vendor/k8s.io/client-go/.github/PULL_REQUEST_TEMPLATE.md +++ b/vendor/k8s.io/client-go/.github/PULL_REQUEST_TEMPLATE.md @@ -1,2 +1,3 @@ -Sorry, we do not accept changes directly against this repository. Please see -CONTRIBUTING.md for information on where and how to contribute instead. +Sorry, we do not accept changes directly against this repository, unless the +change is to the `README.md` itself. Please see +`CONTRIBUTING.md` for information on where and how to contribute instead. diff --git a/vendor/k8s.io/client-go/.travis.yml b/vendor/k8s.io/client-go/.travis.yml index 557658ed4..6b2b4c305 100644 --- a/vendor/k8s.io/client-go/.travis.yml +++ b/vendor/k8s.io/client-go/.travis.yml @@ -3,6 +3,8 @@ language: go go_import_path: k8s.io/client-go go: - - 1.8.1 + - 1.11.1 -script: go build ./... +script: + - if [ "$TRAVIS_BRANCH" != "master" ]; then godep restore; fi + - go build ./... diff --git a/vendor/k8s.io/client-go/CHANGELOG.md b/vendor/k8s.io/client-go/CHANGELOG.md index bfa8a453d..667bfacdf 100644 --- a/vendor/k8s.io/client-go/CHANGELOG.md +++ b/vendor/k8s.io/client-go/CHANGELOG.md @@ -1,10 +1,474 @@ TODO: This document was manually maintained so might be incomplete. The automation effort is tracked in -https://github.com/kubernetes/client-go/issues/234. +https://github.com/kubernetes/test-infra/issues/5843. Changes in `k8s.io/api` and `k8s.io/apimachinery` are mentioned here because `k8s.io/client-go` depends on them. +# v9.0.0 + +**Breaking Changes:** + +* client-go now supports additional non-alpha-numeric characters in UserInfo +"extra" data keys. It should be updated in order to properly support extra +data containing "/" characters or other characters disallowed in HTTP headers. +Old clients sending keys which were `%`-escaped by the user will have their +values unescaped by new API servers. +([#65799](https://github.com/kubernetes/kubernetes/pull/65799)) + +* `apimachinery/pkg/watch.Until` has been moved to +`client-go/tools/watch.UntilWithoutRetry`. While switching please consider +using the new `client-go/tools/watch.UntilWithSync` or `client-go/tools/watch.Until`. +([#66906](https://github.com/kubernetes/kubernetes/pull/66906)) + +* [k8s.io/apimachinery] `Unstructured` metadata accessors now respect omitempty semantics +i.e. a field having zero value will now be removed from the unstructured metadata map. +([#67635](https://github.com/kubernetes/kubernetes/pull/67635)) + +* [k8s.io/apimachinery] The `ObjectConvertor` interface is now changed such that +`ConvertFieldLabel` func takes GroupVersionKind as an argument instead of just +version and kind. ([#65780](https://github.com/kubernetes/kubernetes/pull/65780)) + +* [k8s.io/apimachinery] componentconfig `ClientConnectionConfiguration` is +moved to `k8s.io/apimachinery/pkg/apis/config`. +([#66058](https://github.com/kubernetes/kubernetes/pull/66058)) + +* [k8s.io/apimachinery] Renamed ` KubeConfigFile` to `Kubeconfig` in +`ClientConnectionConfiguration`. +([#67149](https://github.com/kubernetes/kubernetes/pull/67149)) + +* [k8s.io/apimachinery] JSON patch no longer supports `int`. +([#63522](https://github.com/kubernetes/kubernetes/pull/63522)) + +**New Features:** + +* Add ability to cancel leader election. +This also proves useful in integration tests where the whole app is started and +stopped in each test. ([#57932](https://github.com/kubernetes/kubernetes/pull/57932)) + +* An example showing how to use fake clients in tests is added. +([#65291](https://github.com/kubernetes/kubernetes/pull/65291)) + +* [k8s.io/apimachinery] Create and Update now support `CreateOptions` and `UpdateOptions`. +([#65105](https://github.com/kubernetes/kubernetes/pull/65105)) + +**Bug fixes and Improvements:** + +* Decrease the amount of time it takes to modify kubeconfig +files with large amounts of contexts. +([#67093](https://github.com/kubernetes/kubernetes/pull/67093)) + +* The leader election client now renews timeout. +([#65094](https://github.com/kubernetes/kubernetes/pull/65094)) + +* Switched certificate data replacement from `REDACTED` to `DATA+OMITTED`. +([#66023](https://github.com/kubernetes/kubernetes/pull/66023)) + +* Fix listing in the fake dynamic client. +([#66078](https://github.com/kubernetes/kubernetes/pull/66078)) + +* Fix discovery so that plural names are no longer ignored if a singular name is not specified. +([#66249](https://github.com/kubernetes/kubernetes/pull/66249)) + +* Fix kubelet startup failure when using `ExecPlugin` in kubeconfig. +([#66395](https://github.com/kubernetes/kubernetes/pull/66395)) + +* Fix panic in the fake `SubjectAccessReview` client when object is nil. +([#66837](https://github.com/kubernetes/kubernetes/pull/66837)) + +* Periodically reload `InClusterConfig` token. +([#67359](https://github.com/kubernetes/kubernetes/pull/67359)) + +* [k8s.io/apimachinery] Report parsing error in json serializer. +([#63668](https://github.com/kubernetes/kubernetes/pull/63668)) + +* [k8s.io/apimachinery] The `metav1.ObjectMeta` accessor does not deepcopy +owner references anymore. In general, the accessor interface does not enforce +deepcopy nor does it forbid it (e.g. for `unstructured.Unstructured`). +([#64915](https://github.com/kubernetes/kubernetes/pull/64915)) + +* [k8s.io/apimachinery] Utility functions `SetTransportDefaults` and `DialerFor` +once again respect custom Dial functions set on transports. +([#65547](https://github.com/kubernetes/kubernetes/pull/65547)) + +* [k8s.io/apimachinery] Speed-up conversion function invocation by avoiding +`reflect.Call`. Action required: regenerated conversion with conversion-gen. +([#65771](https://github.com/kubernetes/kubernetes/pull/65771)) + +* [k8s.io/apimachinery] Establish "406 Not Acceptable" response for +unmarshable protobuf serialization error. +([#67041](https://github.com/kubernetes/kubernetes/pull/67041)) + +* [k8s.io/apimachinery] Immediately close the other side of the connection by +exiting once one side closes when proxying. +([#67288](https://github.com/kubernetes/kubernetes/pull/67288)) + + +## API changes + +**Breaking Changes:** + +* Volume dynamic provisioning scheduling has been promoted to beta. +ACTION REQUIRED: The DynamicProvisioningScheduling alpha feature gate has been removed. +The VolumeScheduling beta feature gate is still required for this feature. +([#67432](https://github.com/kubernetes/kubernetes/pull/67432)) + +* The CSI file system type is no longer defaulted to ext4. +All the production drivers listed under https://kubernetes-csi.github.io/docs/Drivers.html +were inspected and should not be impacted after this change. +If you are using a driver not in that list, +please test the drivers on an updated test cluster first. +([#65499](https://github.com/kubernetes/kubernetes/pull/65499)) + +**New Features:** + +* Support annotations for remote admission webhooks. +([#58679](https://github.com/kubernetes/kubernetes/pull/58679)) + +* Support both directory and block device for local volume +plugin `FileSystem` `VolumeMode`. +([#63011](https://github.com/kubernetes/kubernetes/pull/63011)) + +* Introduce `autoscaling/v2beta2` and `custom_metrics/v1beta2`, +which implement metric selectors for Object and Pods metrics, +as well as allowing AverageValue targets on Objects, similar to External metrics. +([#64097](https://github.com/kubernetes/kubernetes/pull/64097)) + +* Add `Lease` API in the `coordination.k8s.io` API group. +([#64246](https://github.com/kubernetes/kubernetes/pull/64246)) + +* `ProcMount` added to `SecurityContext` and `AllowedProcMounts` added to `PodSecurityPolicy` +to allow paths in the container's `/proc` to not be masked. +([#64283](https://github.com/kubernetes/kubernetes/pull/64283)) + +* Add the `AuditAnnotations` field to `ImageReviewStatus` to allow the +`ImageReview` backend to return annotations to be added to the created pod. +([#64597](https://github.com/kubernetes/kubernetes/pull/64597)) + +* SCTP is now supported as additional protocol (alpha) alongside TCP and UDP in +Pod, Service, Endpoint, and NetworkPolicy. +([#64973](https://github.com/kubernetes/kubernetes/pull/64973)) + +* The `PodShareProcessNamespace` feature to configure PID namespace sharing +within a pod has been promoted to beta. +([#66507](https://github.com/kubernetes/kubernetes/pull/66507)) + +* Add `TTLSecondsAfterFinished` to `JobSpec` for cleaning up Jobs after they finish. +([#66840](https://github.com/kubernetes/kubernetes/pull/66840)) + +* Add `DataSource` and `TypedLocalObjectReference` fields to support +restoring a volume from a volume snapshot data source. +([#67087](https://github.com/kubernetes/kubernetes/pull/67087)) + +* `RuntimeClass` is a new API resource for defining different classes of runtimes +that may be used to run containers in the cluster. +Pods can select a `RunitmeClass` to use via the `RuntimeClassName` field. +This feature is in alpha, and the `RuntimeClass` feature gate must be enabled +in order to use it. ([#67737](https://github.com/kubernetes/kubernetes/pull/67737)) + +* To address the possibility dry-run requests overwhelming admission webhooks +that rely on side effects and a reconciliation mechanism, a new field is being +added to `admissionregistration.k8s.io/v1beta1.ValidatingWebhookConfiguration` +and `admissionregistration.k8s.io/v1beta1.MutatingWebhookConfiguration` so that +webhooks can explicitly register as having dry-run support. +If a dry-run request is made on a resource that triggers a non dry-run supporting +webhook, the request will be completely rejected, with "400: Bad Request". +Additionally, a new field is being added to the +`admission.k8s.io/v1beta1.AdmissionReview` API object, exposing to webhooks +whether or not the request being reviewed is a dry-run. +([#66936](https://github.com/kubernetes/kubernetes/pull/66936)) + +**Bug fixes and Improvements:** + +* The `DisruptedPods` field in `PodDisruptionBudgetStatus` is now optional. +([#63757](https://github.com/kubernetes/kubernetes/pull/63757)) + +* `extensions/v1beta1` Deployment's `ProgressDeadlineSeconds` now defaults to `MaxInt32`. +([#66581](https://github.com/kubernetes/kubernetes/pull/66581)) + +# v8.0.0 + +**Breaking Changes:** + +* `KUBE_API_VERSIONS` has been removed. + + * [https://github.com/kubernetes/kubernetes/pull/63165](https://github.com/kubernetes/kubernetes/pull/63165) + +* The client-go/discovery `RESTMapper` has been moved to client-go/restmapper. + + * [https://github.com/kubernetes/kubernetes/pull/63507](https://github.com/kubernetes/kubernetes/pull/63507) + +* `CachedDiscoveryClient` has been moved from kubectl to client-go. + + * [https://github.com/kubernetes/kubernetes/pull/63550](https://github.com/kubernetes/kubernetes/pull/63550) + +* The `EventRecorder` interface is changed to include an `AnnotatedEventf` method, which can add annotations to an event. + + * [https://github.com/kubernetes/kubernetes/pull/64213](https://github.com/kubernetes/kubernetes/pull/64213) + +* [k8s.io/apimachinery] The deprecated `RepairMalformedUpdates` flag has been removed. + + * [https://github.com/kubernetes/kubernetes/pull/61455](https://github.com/kubernetes/kubernetes/pull/61455) + +**New Features:** + +* A new easy-to-use dynamic client is added and the old dynamic client is now deprecated. + + * [https://github.com/kubernetes/kubernetes/pull/62913](https://github.com/kubernetes/kubernetes/pull/62913) + +* client-go and kubectl now detect and report an error on duplicated name for user, cluster and context, while loading the kubeconfig. + + * [https://github.com/kubernetes/kubernetes/pull/60464](https://github.com/kubernetes/kubernetes/pull/60464) + +* The informer code-generator now allows specifying a custom resync period for certain informer types and uses the default resync period if none is specified. + + * [https://github.com/kubernetes/kubernetes/pull/61400](https://github.com/kubernetes/kubernetes/pull/61400) + +* Exec authenticator plugin now supports TLS client certificates. + + * [https://github.com/kubernetes/kubernetes/pull/61803](https://github.com/kubernetes/kubernetes/pull/61803) + +* The discovery client now has a default request timeout of 32 seconds. + + * [https://github.com/kubernetes/kubernetes/pull/62733](https://github.com/kubernetes/kubernetes/pull/62733) + +* The OpenStack auth config from is now read from the client config. If the client config is not available, it falls back to reading from the environment variables. + + * [https://github.com/kubernetes/kubernetes/pull/60200](https://github.com/kubernetes/kubernetes/pull/60200) + +* The in-tree support for openstack credentials is now deprecated. Please use the `client-keystone-auth` from the cloud-provider-openstack repository. Details on how to use this new capability is documented [here](https://github.com/kubernetes/cloud-provider-openstack/blob/master/docs/using-client-keystone-auth.md) + + * [https://github.com/kubernetes/kubernetes/pull/64346](https://github.com/kubernetes/kubernetes/pull/64346) + +**Bug fixes and Improvements:** + +* 406 mime-type errors are now tolerated while attempting to load new openapi schema. This improves compatibility with older servers when creating/updating API objects. + + * [https://github.com/kubernetes/kubernetes/pull/61949](https://github.com/kubernetes/kubernetes/pull/61949) + +* Removes the generated `DeleteCollection()` method for `Services` since the API does not support it. + + * [https://github.com/kubernetes/kubernetes/pull/63861](https://github.com/kubernetes/kubernetes/pull/63861) + +* Event object references with apiversion now report an apiversion, instead of just the group. + + * [https://github.com/kubernetes/kubernetes/pull/63913](https://github.com/kubernetes/kubernetes/pull/63913) + + [https://github.com/kubernetes/kubernetes/pull/62462](https://github.com/kubernetes/kubernetes/pull/62462) + +* [k8s.io/apimachinery] `runtime.Unstructured.UnstructuredContent()` no longer mutates the source while returning the contents. + + * [https://github.com/kubernetes/kubernetes/pull/62063](https://github.com/kubernetes/kubernetes/pull/62063) + +* [k8s.io/apimachinery] Incomplete support for `uint64` is now removed. This fixes a panic encountered while using `DeepCopyJSON` with `uint64`. + + * [https://github.com/kubernetes/kubernetes/pull/62981](https://github.com/kubernetes/kubernetes/pull/62981) + +* [k8s.io/apimachinery] API server can now parse `propagationPolicy` when it sent as a query parameter sent with a delete request. + + * [https://github.com/kubernetes/kubernetes/pull/63414](https://github.com/kubernetes/kubernetes/pull/63414) + +* [k8s.io/apimachinery] APIServices with kube-like versions (e.g. v1, v2beta1, etc.) will be sorted appropriately within each group. + + * [https://github.com/kubernetes/kubernetes/pull/64004](https://github.com/kubernetes/kubernetes/pull/64004) + +* [k8s.io/apimachinery] `int64` is the only allowed integer for printers. + + * [https://github.com/kubernetes/kubernetes/pull/64639](https://github.com/kubernetes/kubernetes/pull/64639) + +## API changes + +**Breaking Changes:** + +* Support for `alpha.kubernetes.io/nvidia-gpu` resource which was deprecated in 1.10 is removed. Please use the resource exposed by `DevicePlugins` instead (`nvidia.com/gpu`). + + * [https://github.com/kubernetes/kubernetes/pull/61498](https://github.com/kubernetes/kubernetes/pull/61498) + +* Alpha annotation for `PersistentVolume` node affinity has been removed. Update your `PersistentVolume`s to use the beta `PersistentVolume.nodeAffinity` field before upgrading. + + * [https://github.com/kubernetes/kubernetes/pull/61816](https://github.com/kubernetes/kubernetes/pull/61816) + +* `ObjectMeta ` `ListOptions` `DeleteOptions` are removed from the core api group. Please use the ones in `meta/v1` instead. + + * [https://github.com/kubernetes/kubernetes/pull/61809](https://github.com/kubernetes/kubernetes/pull/61809) + +* `ExternalID` in `NodeSpec` is deprecated. The externalID of the node is no longer set in the Node spec. + + * [https://github.com/kubernetes/kubernetes/pull/61877](https://github.com/kubernetes/kubernetes/pull/61877) + +* PSP-related types in the `extensions/v1beta1` API group are now deprecated. It is suggested to use the `policy/v1beta1` API group instead. + + * [https://github.com/kubernetes/kubernetes/pull/61777](https://github.com/kubernetes/kubernetes/pull/61777) + +**New Features:** + +* `PodSecurityPolicy` now supports restricting hostPath volume mounts to be readOnly and under specific path prefixes. + + * [https://github.com/kubernetes/kubernetes/pull/58647](https://github.com/kubernetes/kubernetes/pull/58647) + +* `Node.Spec.ConfigSource.ConfigMap.KubeletConfigKey` must be specified when using dynamic Kubelet config to tell the Kubelet which key of the `ConfigMap` identifies its config file. + + * [https://github.com/kubernetes/kubernetes/pull/59847](https://github.com/kubernetes/kubernetes/pull/59847) + +* `serverAddressByClientCIDRs` in `meta/v1` APIGroup is now optional. + + * [https://github.com/kubernetes/kubernetes/pull/61963](https://github.com/kubernetes/kubernetes/pull/61963) + +* A new field `MatchFields` is added to `NodeSelectorTerm`. Currently, it only supports `metadata.name`. + + * [https://github.com/kubernetes/kubernetes/pull/62002](https://github.com/kubernetes/kubernetes/pull/62002) + +* The `PriorityClass` API is promoted to `scheduling.k8s.io/v1beta1`. + + * [https://github.com/kubernetes/kubernetes/pull/63100](https://github.com/kubernetes/kubernetes/pull/63100) + +* The status of dynamic Kubelet config is now reported via `Node.Status.Config`, rather than the `KubeletConfigOk` node condition. + + * [https://github.com/kubernetes/kubernetes/pull/63314](https://github.com/kubernetes/kubernetes/pull/63314) + +* The `GitRepo` volume type is deprecated. To provision a container with a git repo, mount an `EmptyDir` into an `InitContainer` that clones the repo using git, then mount the `EmptyDir` into the Pod's container. + + * [https://github.com/kubernetes/kubernetes/pull/63445](https://github.com/kubernetes/kubernetes/pull/63445) + +* The Sysctls experimental feature has been promoted to beta (enabled by default via the `Sysctls` feature flag). `PodSecurityPolicy` and `Pod` objects now have fields for specifying and controlling sysctls. Alpha sysctl annotations will be ignored by 1.11+ kubelets. All alpha sysctl annotations in existing deployments must be converted to API fields to be effective. + + * [https://github.com/kubernetes/kubernetes/pull/63717](https://github.com/kubernetes/kubernetes/pull/63717) + +* The annotation `service.alpha.kubernetes.io/tolerate-unready-endpoints` is deprecated. Users should use `Service.spec.publishNotReadyAddresses` instead. + + * [https://github.com/kubernetes/kubernetes/pull/63742](https://github.com/kubernetes/kubernetes/pull/63742) + +* `VerticalPodAutoscaler` has been added to `autoscaling/v1` API group. + + * [https://github.com/kubernetes/kubernetes/pull/63797](https://github.com/kubernetes/kubernetes/pull/63797) + +* Alpha support is added for dynamic volume limits based on node type. + + * [https://github.com/kubernetes/kubernetes/pull/64154](https://github.com/kubernetes/kubernetes/pull/64154) + +* `ContainersReady` condition is added to the Pod status. + + * [https://github.com/kubernetes/kubernetes/pull/64646](https://github.com/kubernetes/kubernetes/pull/64646) + +**Bug fixes and Improvements:** + +* Default mount propagation has changed from `HostToContainer` (`rslave` in Linux terminology) to `None` (`private`) to match the behavior in 1.9 and earlier releases. `HostToContainer` as a default caused regressions in some pods. + + * [https://github.com/kubernetes/kubernetes/pull/62462](https://github.com/kubernetes/kubernetes/pull/62462) + +# v7.0.0 + +**Breaking Changes:** + +* Google Cloud Service Account email addresses can now be used in RBAC Role bindings since the default scopes now include the `userinfo.email` scope. This is a breaking change if the numeric uniqueIDs of the Google service accounts were being used in RBAC role bindings. The behavior can be overridden by explicitly specifying the scope values as comma-separated string in the `users[*].config.scopes` field in the `KUBECONFIG` file. + + * [https://github.com/kubernetes/kubernetes/pull/58141](https://github.com/kubernetes/kubernetes/pull/58141) + +* [k8s.io/api] The `ConfigOK` node condition has been renamed to `KubeletConfigOk`. + + * [https://github.com/kubernetes/kubernetes/pull/59905](https://github.com/kubernetes/kubernetes/pull/59905) + +**New Features:** + +* Subresource support is added to the dynamic client. + + * [https://github.com/kubernetes/kubernetes/pull/56717](https://github.com/kubernetes/kubernetes/pull/56717) + +* A watch method is added to the Fake Client. + + * [https://github.com/kubernetes/kubernetes/pull/57504](https://github.com/kubernetes/kubernetes/pull/57504) + +* `ListOptions` can be modified when creating a `ListWatch`. + + * [https://github.com/kubernetes/kubernetes/pull/57508](https://github.com/kubernetes/kubernetes/pull/57508) + +* A `/token` subresource for ServiceAccount is added. + + * [https://github.com/kubernetes/kubernetes/pull/58111](https://github.com/kubernetes/kubernetes/pull/58111) + +* If an informer delivery fails, the particular notification is skipped and continued the next time. + + * [https://github.com/kubernetes/kubernetes/pull/58394](https://github.com/kubernetes/kubernetes/pull/58394) + +* Certificate manager will no longer wait until the initial rotation succeeds or fails before returning from `Start()`. + + * [https://github.com/kubernetes/kubernetes/pull/58930](https://github.com/kubernetes/kubernetes/pull/58930) + +* [k8s.io/api] `VolumeScheduling` and `LocalPersistentVolume` features are beta and enabled by default. The PersistentVolume NodeAffinity alpha annotation is deprecated and will be removed in a future release. + + * [https://github.com/kubernetes/kubernetes/pull/59391](https://github.com/kubernetes/kubernetes/pull/59391) + +* [k8s.io/api] The `PodSecurityPolicy` API has been moved to the `policy/v1beta1` API group. The `PodSecurityPolicy` API in the `extensions/v1beta1` API group is deprecated and will be removed in a future release. + + * [https://github.com/kubernetes/kubernetes/pull/54933](https://github.com/kubernetes/kubernetes/pull/54933) + +* [k8s.io/api] ConfigMap objects now support binary data via a new `binaryData` field. + + * [https://github.com/kubernetes/kubernetes/pull/57938](https://github.com/kubernetes/kubernetes/pull/57938) + +* [k8s.io/api] Service account TokenRequest API is added. + + * [https://github.com/kubernetes/kubernetes/pull/58027](https://github.com/kubernetes/kubernetes/pull/58027) + +* [k8s.io/api] FSType is added in CSI volume source to specify filesystems. + + * [https://github.com/kubernetes/kubernetes/pull/58209](https://github.com/kubernetes/kubernetes/pull/58209) + +* [k8s.io/api] v1beta1 VolumeAttachment API is added. + + * [https://github.com/kubernetes/kubernetes/pull/58462](https://github.com/kubernetes/kubernetes/pull/58462) + +* [k8s.io/api] `v1.Pod` now has a field `ShareProcessNamespace` to configure whether a single process namespace should be shared between all containers in a pod. This feature is in alpha preview. + + * [https://github.com/kubernetes/kubernetes/pull/58716](https://github.com/kubernetes/kubernetes/pull/58716) + +* [k8s.io/api] Add `NominatedNodeName` field to `PodStatus`. This field is set when a pod preempts other pods on the node. + + * [https://github.com/kubernetes/kubernetes/pull/58990](https://github.com/kubernetes/kubernetes/pull/58990) + +* [k8s.io/api] Promote `CSIPersistentVolumeSourc`e to beta. + + * [https://github.com/kubernetes/kubernetes/pull/59157](https://github.com/kubernetes/kubernetes/pull/59157) + +* [k8s.io/api] Promote `DNSPolicy` and `DNSConfig` in `PodSpec` to beta. + + * [https://github.com/kubernetes/kubernetes/pull/59771](https://github.com/kubernetes/kubernetes/pull/59771) + +* [k8s.io/api] External metric types are added to the HPA API. + + * [https://github.com/kubernetes/kubernetes/pull/60096](https://github.com/kubernetes/kubernetes/pull/60096) + +* [k8s.io/apimachinery] The `meta.k8s.io/v1alpha1` objects for retrieving tabular responses from the server (`Table`) or fetching just the `ObjectMeta` for an object (as `PartialObjectMetadata`) are now beta as part of `meta.k8s.io/v1beta1`. Clients may request alternate representations of normal Kubernetes objects by passing an `Accept` header like `application/json;as=Table;g=meta.k8s.io;v=v1beta1` or `application/json;as=PartialObjectMetadata;g=meta.k8s.io;v1=v1beta1`. Older servers will ignore this representation or return an error if it is not available. Clients may request fallback to the normal object by adding a non-qualified mime-type to their `Accept` header like `application/json` - the server will then respond with either the alternate representation if it is supported or the fallback mime-type which is the normal object response. + + * [https://github.com/kubernetes/kubernetes/pull/59059](https://github.com/kubernetes/kubernetes/pull/59059) + + +**Bug fixes and Improvements:** + +* Port-forwarding of TCP6 ports is fixed. + + * [https://github.com/kubernetes/kubernetes/pull/57457](https://github.com/kubernetes/kubernetes/pull/57457) + +* A race condition in SharedInformer that could violate the sequential delivery guarantee and cause panics on shutdown is fixed. + + * [https://github.com/kubernetes/kubernetes/pull/59828](https://github.com/kubernetes/kubernetes/pull/59828) + +* [k8s.io/api] PersistentVolume flexVolume sources can now reference secrets in a namespace other than the PersistentVolumeClaim's namespace. + + * [https://github.com/kubernetes/kubernetes/pull/56460](https://github.com/kubernetes/kubernetes/pull/56460) + +* [k8s.io/apimachinery] YAMLDecoder Read can now return the number of bytes read. + + * [https://github.com/kubernetes/kubernetes/pull/57000](https://github.com/kubernetes/kubernetes/pull/57000) + +* [k8s.io/apimachinery] YAMLDecoder Read now tracks rest of buffer on `io.ErrShortBuffer`. + + * [https://github.com/kubernetes/kubernetes/pull/58817](https://github.com/kubernetes/kubernetes/pull/58817) + +* [k8s.io/apimachinery] Prompt required merge key in the error message while applying a strategic merge patch. + + * [https://github.com/kubernetes/kubernetes/pull/57854](https://github.com/kubernetes/kubernetes/pull/57854) + # v6.0.0 **Breaking Changes:** diff --git a/vendor/k8s.io/client-go/CONTRIBUTING.md b/vendor/k8s.io/client-go/CONTRIBUTING.md index b01f8abb0..a85350aae 100644 --- a/vendor/k8s.io/client-go/CONTRIBUTING.md +++ b/vendor/k8s.io/client-go/CONTRIBUTING.md @@ -1,6 +1,8 @@ # Contributing guidelines -Do not open pull requests directly against this repository, they will be ignored. Instead, please open pull requests against [kubernetes/kubernetes](https://git.k8s.io/kubernetes/). Please follow the same [contributing guide](https://git.k8s.io/kubernetes/CONTRIBUTING.md) you would follow for any other pull request made to kubernetes/kubernetes. +Do not open pull requests directly against this repository. They will be ignored. Instead, please open pull requests against [kubernetes/kubernetes](https://git.k8s.io/kubernetes/). +The exception is changes to the `README.md` itself. +Please follow the same [contributing guide](https://git.k8s.io/kubernetes/CONTRIBUTING.md) you would follow for any other pull request made to kubernetes/kubernetes. This repository is published from [kubernetes/kubernetes/staging/src/k8s.io/client-go](https://git.k8s.io/kubernetes/staging/src/k8s.io/client-go) by the [kubernetes publishing-bot](https://git.k8s.io/publishing-bot). diff --git a/vendor/k8s.io/client-go/Godeps/Godeps.json b/vendor/k8s.io/client-go/Godeps/Godeps.json index 63487cec6..0d16e9967 100644 --- a/vendor/k8s.io/client-go/Godeps/Godeps.json +++ b/vendor/k8s.io/client-go/Godeps/Godeps.json @@ -1,7 +1,7 @@ { "ImportPath": "k8s.io/client-go", - "GoVersion": "go1.9", - "GodepVersion": "v79", + "GoVersion": "go1.11", + "GodepVersion": "v80", "Packages": [ "./..." ], @@ -16,19 +16,27 @@ }, { "ImportPath": "github.com/Azure/go-autorest/autorest", - "Rev": "d4e6b95c12a08b4de2d48b45d5b4d594e5d32fab" + "Rev": "ea233b6412b0421a65dc6160e16c893364664a95" }, { "ImportPath": "github.com/Azure/go-autorest/autorest/adal", - "Rev": "d4e6b95c12a08b4de2d48b45d5b4d594e5d32fab" + "Rev": "ea233b6412b0421a65dc6160e16c893364664a95" }, { "ImportPath": "github.com/Azure/go-autorest/autorest/azure", - "Rev": "d4e6b95c12a08b4de2d48b45d5b4d594e5d32fab" + "Rev": "ea233b6412b0421a65dc6160e16c893364664a95" }, { "ImportPath": "github.com/Azure/go-autorest/autorest/date", - "Rev": "d4e6b95c12a08b4de2d48b45d5b4d594e5d32fab" + "Rev": "ea233b6412b0421a65dc6160e16c893364664a95" + }, + { + "ImportPath": "github.com/Azure/go-autorest/logger", + "Rev": "ea233b6412b0421a65dc6160e16c893364664a95" + }, + { + "ImportPath": "github.com/Azure/go-autorest/version", + "Rev": "ea233b6412b0421a65dc6160e16c893364664a95" }, { "ImportPath": "github.com/davecgh/go-spew/spew", @@ -47,20 +55,16 @@ "Rev": "449fdfce4d962303d702fec724ef0ad181c92528" }, { - "ImportPath": "github.com/ghodss/yaml", - "Rev": "73d445a93680fa1a78ae23a5839bad48f32ba1ee" + "ImportPath": "github.com/evanphx/json-patch", + "Rev": "36442dbdb585210f8d5a1b45e67aa323c197d5c4" }, { "ImportPath": "github.com/gogo/protobuf/proto", - "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" + "Rev": "342cbe0a04158f6dcb03ca0079991a51a4248c02" }, { "ImportPath": "github.com/gogo/protobuf/sortkeys", - "Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7" - }, - { - "ImportPath": "github.com/golang/glog", - "Rev": "44145f04b68cf362d9c4df2182967c2275eaefed" + "Rev": "342cbe0a04158f6dcb03ca0079991a51a4248c02" }, { "ImportPath": "github.com/golang/groupcache/lru", @@ -68,23 +72,27 @@ }, { "ImportPath": "github.com/golang/protobuf/proto", - "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" + "Rev": "b4deda0973fb4c70b50d226b1af49f3da59f5265" }, { "ImportPath": "github.com/golang/protobuf/ptypes", - "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" + "Rev": "b4deda0973fb4c70b50d226b1af49f3da59f5265" }, { "ImportPath": "github.com/golang/protobuf/ptypes/any", - "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" + "Rev": "b4deda0973fb4c70b50d226b1af49f3da59f5265" }, { "ImportPath": "github.com/golang/protobuf/ptypes/duration", - "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" + "Rev": "b4deda0973fb4c70b50d226b1af49f3da59f5265" }, { "ImportPath": "github.com/golang/protobuf/ptypes/timestamp", - "Rev": "1643683e1b54a9e88ad26d98f81400c8c9d9f4f9" + "Rev": "b4deda0973fb4c70b50d226b1af49f3da59f5265" + }, + { + "ImportPath": "github.com/google/btree", + "Rev": "7d79101e329e5a3adf994758c578dab82b90c017" }, { "ImportPath": "github.com/google/gofuzz", @@ -104,31 +112,39 @@ }, { "ImportPath": "github.com/gophercloud/gophercloud", - "Rev": "6da026c32e2d622cc242d32984259c77237aefe1" + "Rev": "781450b3c4fcb4f5182bcc5133adb4b2e4a09d1d" }, { "ImportPath": "github.com/gophercloud/gophercloud/openstack", - "Rev": "6da026c32e2d622cc242d32984259c77237aefe1" + "Rev": "781450b3c4fcb4f5182bcc5133adb4b2e4a09d1d" }, { "ImportPath": "github.com/gophercloud/gophercloud/openstack/identity/v2/tenants", - "Rev": "6da026c32e2d622cc242d32984259c77237aefe1" + "Rev": "781450b3c4fcb4f5182bcc5133adb4b2e4a09d1d" }, { "ImportPath": "github.com/gophercloud/gophercloud/openstack/identity/v2/tokens", - "Rev": "6da026c32e2d622cc242d32984259c77237aefe1" + "Rev": "781450b3c4fcb4f5182bcc5133adb4b2e4a09d1d" }, { "ImportPath": "github.com/gophercloud/gophercloud/openstack/identity/v3/tokens", - "Rev": "6da026c32e2d622cc242d32984259c77237aefe1" + "Rev": "781450b3c4fcb4f5182bcc5133adb4b2e4a09d1d" }, { "ImportPath": "github.com/gophercloud/gophercloud/openstack/utils", - "Rev": "6da026c32e2d622cc242d32984259c77237aefe1" + "Rev": "781450b3c4fcb4f5182bcc5133adb4b2e4a09d1d" }, { "ImportPath": "github.com/gophercloud/gophercloud/pagination", - "Rev": "6da026c32e2d622cc242d32984259c77237aefe1" + "Rev": "781450b3c4fcb4f5182bcc5133adb4b2e4a09d1d" + }, + { + "ImportPath": "github.com/gregjones/httpcache", + "Rev": "787624de3eb7bd915c329cba748687a3b22666a6" + }, + { + "ImportPath": "github.com/gregjones/httpcache/diskcache", + "Rev": "787624de3eb7bd915c329cba748687a3b22666a6" }, { "ImportPath": "github.com/hashicorp/golang-lru", @@ -138,17 +154,25 @@ "ImportPath": "github.com/hashicorp/golang-lru/simplelru", "Rev": "a0d98a5f288019575c6d1f4bb1573fef2d1fcdc4" }, - { - "ImportPath": "github.com/howeyc/gopass", - "Rev": "bf9dde6d0d2c004a008c27aaee91170c786f6db8" - }, { "ImportPath": "github.com/imdario/mergo", - "Rev": "6633656539c1639d9d78127b7d47c622b5d7b6dc" + "Rev": "9316a62528ac99aaecb4e47eadd6dc8aa6533d58" }, { "ImportPath": "github.com/json-iterator/go", - "Rev": "13f86432b882000a51c6e610c620974462691a97" + "Rev": "ab8a2e0c74be9d3be70b3184d9acc634935ded82" + }, + { + "ImportPath": "github.com/modern-go/concurrent", + "Rev": "bacd9c7ef1dd9b15be4a9909b8ac7a4e313eec94" + }, + { + "ImportPath": "github.com/modern-go/reflect2", + "Rev": "94122c33edd36123c84d5368cfb2b69df93a0ec8" + }, + { + "ImportPath": "github.com/peterbourgon/diskv", + "Rev": "5f041e8faa004a95c88a202771f4cc3e991971e6" }, { "ImportPath": "github.com/pmezard/go-difflib/difflib", @@ -156,39 +180,39 @@ }, { "ImportPath": "github.com/spf13/pflag", - "Rev": "4c012f6dcd9546820e378d0bdda4d8fc772cdfea" + "Rev": "583c0c0531f06d5278b7d917446061adc344b5cd" }, { "ImportPath": "github.com/stretchr/testify/assert", - "Rev": "f6abca593680b2315d2075e0f5e2a9751e3f431a" + "Rev": "c679ae2cc0cb27ec3293fea7e254e47386f05d69" }, { "ImportPath": "golang.org/x/crypto/ssh/terminal", - "Rev": "81e90905daefcd6fd217b62423c0908922eadb30" + "Rev": "de0752318171da717af4ce24d0a2e8626afaeb11" }, { "ImportPath": "golang.org/x/net/context", - "Rev": "1c05540f6879653db88113bc4a2b70aec4bd491f" + "Rev": "0ed95abb35c445290478a5348a7b38bb154135fd" }, { "ImportPath": "golang.org/x/net/context/ctxhttp", - "Rev": "1c05540f6879653db88113bc4a2b70aec4bd491f" + "Rev": "0ed95abb35c445290478a5348a7b38bb154135fd" }, { "ImportPath": "golang.org/x/net/http2", - "Rev": "1c05540f6879653db88113bc4a2b70aec4bd491f" + "Rev": "0ed95abb35c445290478a5348a7b38bb154135fd" }, { "ImportPath": "golang.org/x/net/http2/hpack", - "Rev": "1c05540f6879653db88113bc4a2b70aec4bd491f" + "Rev": "0ed95abb35c445290478a5348a7b38bb154135fd" }, { "ImportPath": "golang.org/x/net/idna", - "Rev": "1c05540f6879653db88113bc4a2b70aec4bd491f" + "Rev": "0ed95abb35c445290478a5348a7b38bb154135fd" }, { "ImportPath": "golang.org/x/net/lex/httplex", - "Rev": "1c05540f6879653db88113bc4a2b70aec4bd491f" + "Rev": "0ed95abb35c445290478a5348a7b38bb154135fd" }, { "ImportPath": "golang.org/x/oauth2", @@ -244,339 +268,355 @@ }, { "ImportPath": "gopkg.in/yaml.v2", - "Rev": "670d4cfef0544295bc27a114dbac37980d83185a" + "Rev": "5420a8b6744d3b0345ab293f6fcba19c978f1183" }, { "ImportPath": "k8s.io/api/admissionregistration/v1alpha1", - "Rev": "7aac3e00a1b32fa476b83078cebaaca606b2fb48" + "Rev": "89a74a8d264df0e993299876a8cde88379b940ee" }, { "ImportPath": "k8s.io/api/admissionregistration/v1beta1", - "Rev": "7aac3e00a1b32fa476b83078cebaaca606b2fb48" + "Rev": "89a74a8d264df0e993299876a8cde88379b940ee" }, { "ImportPath": "k8s.io/api/apps/v1", - "Rev": "7aac3e00a1b32fa476b83078cebaaca606b2fb48" + "Rev": "89a74a8d264df0e993299876a8cde88379b940ee" }, { "ImportPath": "k8s.io/api/apps/v1beta1", - "Rev": "7aac3e00a1b32fa476b83078cebaaca606b2fb48" + "Rev": "89a74a8d264df0e993299876a8cde88379b940ee" }, { "ImportPath": "k8s.io/api/apps/v1beta2", - "Rev": "7aac3e00a1b32fa476b83078cebaaca606b2fb48" + "Rev": "89a74a8d264df0e993299876a8cde88379b940ee" + }, + { + "ImportPath": "k8s.io/api/auditregistration/v1alpha1", + "Rev": "89a74a8d264df0e993299876a8cde88379b940ee" }, { "ImportPath": "k8s.io/api/authentication/v1", - "Rev": "7aac3e00a1b32fa476b83078cebaaca606b2fb48" + "Rev": "89a74a8d264df0e993299876a8cde88379b940ee" }, { "ImportPath": "k8s.io/api/authentication/v1beta1", - "Rev": "7aac3e00a1b32fa476b83078cebaaca606b2fb48" + "Rev": "89a74a8d264df0e993299876a8cde88379b940ee" }, { "ImportPath": "k8s.io/api/authorization/v1", - "Rev": "7aac3e00a1b32fa476b83078cebaaca606b2fb48" + "Rev": "89a74a8d264df0e993299876a8cde88379b940ee" }, { "ImportPath": "k8s.io/api/authorization/v1beta1", - "Rev": "7aac3e00a1b32fa476b83078cebaaca606b2fb48" + "Rev": "89a74a8d264df0e993299876a8cde88379b940ee" }, { "ImportPath": "k8s.io/api/autoscaling/v1", - "Rev": "7aac3e00a1b32fa476b83078cebaaca606b2fb48" + "Rev": "89a74a8d264df0e993299876a8cde88379b940ee" }, { "ImportPath": "k8s.io/api/autoscaling/v2beta1", - "Rev": "7aac3e00a1b32fa476b83078cebaaca606b2fb48" + "Rev": "89a74a8d264df0e993299876a8cde88379b940ee" + }, + { + "ImportPath": "k8s.io/api/autoscaling/v2beta2", + "Rev": "89a74a8d264df0e993299876a8cde88379b940ee" }, { "ImportPath": "k8s.io/api/batch/v1", - "Rev": "7aac3e00a1b32fa476b83078cebaaca606b2fb48" + "Rev": "89a74a8d264df0e993299876a8cde88379b940ee" }, { "ImportPath": "k8s.io/api/batch/v1beta1", - "Rev": "7aac3e00a1b32fa476b83078cebaaca606b2fb48" + "Rev": "89a74a8d264df0e993299876a8cde88379b940ee" }, { "ImportPath": "k8s.io/api/batch/v2alpha1", - "Rev": "7aac3e00a1b32fa476b83078cebaaca606b2fb48" + "Rev": "89a74a8d264df0e993299876a8cde88379b940ee" }, { "ImportPath": "k8s.io/api/certificates/v1beta1", - "Rev": "7aac3e00a1b32fa476b83078cebaaca606b2fb48" + "Rev": "89a74a8d264df0e993299876a8cde88379b940ee" + }, + { + "ImportPath": "k8s.io/api/coordination/v1beta1", + "Rev": "89a74a8d264df0e993299876a8cde88379b940ee" }, { "ImportPath": "k8s.io/api/core/v1", - "Rev": "7aac3e00a1b32fa476b83078cebaaca606b2fb48" + "Rev": "89a74a8d264df0e993299876a8cde88379b940ee" }, { "ImportPath": "k8s.io/api/events/v1beta1", - "Rev": "7aac3e00a1b32fa476b83078cebaaca606b2fb48" + "Rev": "89a74a8d264df0e993299876a8cde88379b940ee" }, { "ImportPath": "k8s.io/api/extensions/v1beta1", - "Rev": "7aac3e00a1b32fa476b83078cebaaca606b2fb48" + "Rev": "89a74a8d264df0e993299876a8cde88379b940ee" }, { "ImportPath": "k8s.io/api/imagepolicy/v1alpha1", - "Rev": "7aac3e00a1b32fa476b83078cebaaca606b2fb48" + "Rev": "89a74a8d264df0e993299876a8cde88379b940ee" }, { "ImportPath": "k8s.io/api/networking/v1", - "Rev": "7aac3e00a1b32fa476b83078cebaaca606b2fb48" + "Rev": "89a74a8d264df0e993299876a8cde88379b940ee" }, { "ImportPath": "k8s.io/api/policy/v1beta1", - "Rev": "7aac3e00a1b32fa476b83078cebaaca606b2fb48" + "Rev": "89a74a8d264df0e993299876a8cde88379b940ee" }, { "ImportPath": "k8s.io/api/rbac/v1", - "Rev": "7aac3e00a1b32fa476b83078cebaaca606b2fb48" + "Rev": "89a74a8d264df0e993299876a8cde88379b940ee" }, { "ImportPath": "k8s.io/api/rbac/v1alpha1", - "Rev": "7aac3e00a1b32fa476b83078cebaaca606b2fb48" + "Rev": "89a74a8d264df0e993299876a8cde88379b940ee" }, { "ImportPath": "k8s.io/api/rbac/v1beta1", - "Rev": "7aac3e00a1b32fa476b83078cebaaca606b2fb48" + "Rev": "89a74a8d264df0e993299876a8cde88379b940ee" }, { "ImportPath": "k8s.io/api/scheduling/v1alpha1", - "Rev": "7aac3e00a1b32fa476b83078cebaaca606b2fb48" + "Rev": "89a74a8d264df0e993299876a8cde88379b940ee" + }, + { + "ImportPath": "k8s.io/api/scheduling/v1beta1", + "Rev": "89a74a8d264df0e993299876a8cde88379b940ee" }, { "ImportPath": "k8s.io/api/settings/v1alpha1", - "Rev": "7aac3e00a1b32fa476b83078cebaaca606b2fb48" + "Rev": "89a74a8d264df0e993299876a8cde88379b940ee" }, { "ImportPath": "k8s.io/api/storage/v1", - "Rev": "7aac3e00a1b32fa476b83078cebaaca606b2fb48" + "Rev": "89a74a8d264df0e993299876a8cde88379b940ee" }, { "ImportPath": "k8s.io/api/storage/v1alpha1", - "Rev": "7aac3e00a1b32fa476b83078cebaaca606b2fb48" + "Rev": "89a74a8d264df0e993299876a8cde88379b940ee" }, { "ImportPath": "k8s.io/api/storage/v1beta1", - "Rev": "7aac3e00a1b32fa476b83078cebaaca606b2fb48" + "Rev": "89a74a8d264df0e993299876a8cde88379b940ee" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/api/apitesting", + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/api/apitesting/fuzzer", + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/api/apitesting/roundtrip", + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/equality", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/errors", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/meta", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" }, { "ImportPath": "k8s.io/apimachinery/pkg/api/resource", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/api/testing", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/api/testing/fuzzer", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/api/testing/roundtrip", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/apimachinery", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/apimachinery/announced", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" - }, - { - "ImportPath": "k8s.io/apimachinery/pkg/apimachinery/registered", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" }, { "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/fuzzer", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" }, { "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/internalversion", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" }, { "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" }, { "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" }, { "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1beta1", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" }, { "ImportPath": "k8s.io/apimachinery/pkg/conversion", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" }, { "ImportPath": "k8s.io/apimachinery/pkg/conversion/queryparams", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" }, { "ImportPath": "k8s.io/apimachinery/pkg/fields", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" }, { "ImportPath": "k8s.io/apimachinery/pkg/labels", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/schema", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/json", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/protobuf", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/recognizer", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/streaming", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" }, { "ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/versioning", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" }, { "ImportPath": "k8s.io/apimachinery/pkg/selection", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" }, { "ImportPath": "k8s.io/apimachinery/pkg/types", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/cache", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/clock", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/diff", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/errors", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/framer", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/httpstream", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/httpstream/spdy", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/intstr", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/json", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/mergepatch", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" + }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/naming", + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/net", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/remotecommand", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/runtime", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/sets", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/strategicpatch", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/validation", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/validation/field", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/wait", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" }, { "ImportPath": "k8s.io/apimachinery/pkg/util/yaml", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" }, { "ImportPath": "k8s.io/apimachinery/pkg/version", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" }, { "ImportPath": "k8s.io/apimachinery/pkg/watch", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" }, { "ImportPath": "k8s.io/apimachinery/third_party/forked/golang/json", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" }, { "ImportPath": "k8s.io/apimachinery/third_party/forked/golang/netutil", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" }, { "ImportPath": "k8s.io/apimachinery/third_party/forked/golang/reflect", - "Rev": "302974c03f7e50f16561ba237db776ab93594ef6" + "Rev": "2b1284ed4c93a43499e781493253e2ac5959c4fd" + }, + { + "ImportPath": "k8s.io/klog", + "Rev": "8139d8cb77af419532b33dfa7dd09fbc5f1d344f" }, { "ImportPath": "k8s.io/kube-openapi/pkg/util/proto", - "Rev": "50ae88d24ede7b8bad68e23c805b5d3da5c8abaf" + "Rev": "c59034cc13d587f5ef4e85ca0ade0c1866ae8e1d" + }, + { + "ImportPath": "sigs.k8s.io/yaml", + "Rev": "fd68e9863619f6ec2fdd8625fe1f02e7c877e480" } ] } diff --git a/vendor/k8s.io/client-go/INSTALL.md b/vendor/k8s.io/client-go/INSTALL.md index 42656284f..d3592f490 100644 --- a/vendor/k8s.io/client-go/INSTALL.md +++ b/vendor/k8s.io/client-go/INSTALL.md @@ -63,7 +63,7 @@ To install `client-go` and place its dependencies in your `$GOPATH`: ```sh go get k8s.io/client-go/... cd $GOPATH/src/k8s.io/client-go -git checkout v6.0.0 +git checkout v9.0.0 # replace v9.0.0 with the required version # cd 1.5 # only necessary with 1.5 and 1.4 clients. godep restore ./... ``` @@ -99,7 +99,7 @@ your project: package: ( your project's import path ) # e.g. github.com/foo/bar import: - package: k8s.io/client-go - version: v6.0.0 + version: v9.0.0 # replace v9.0.0 with the required version ``` Second, add a Go file that imports `client-go` somewhere in your project, @@ -132,7 +132,7 @@ requests can override the version manually in `glide.yaml`. For example: package: ( your project's import path ) # e.g. github.com/foo/bar import: - package: k8s.io/client-go - version: v6.0.0 + version: v9.0.0 # replace v9.0.0 with the required version # Use a newer version of go-spew even though client-go wants an old one. - package: github.com/davecgh/go-spew version: v1.1.0 diff --git a/vendor/k8s.io/client-go/OWNERS b/vendor/k8s.io/client-go/OWNERS index 44a4c9e1f..52d334653 100644 --- a/vendor/k8s.io/client-go/OWNERS +++ b/vendor/k8s.io/client-go/OWNERS @@ -1,44 +1,17 @@ approvers: - caesarxuchao - deads2k -- krousey - lavalamp +- liggitt - smarterclayton - sttts -- liggitt reviewers: -- thockin -- lavalamp -- smarterclayton -- wojtek-t -- deads2k -- yujuhong -- derekwaynecarr - caesarxuchao -- vishh -- mikedanese +- deads2k +- lavalamp - liggitt -- nikhiljindal -- gmarek -- erictune -- davidopp -- pmorie -- sttts -- dchen1107 -- saad-ali -- zmerlynn -- luxas -- janetkuo -- justinsb -- roberthbailey -- ncdc -- tallclair -- yifan-gu -- eparis -- mwielgus -- timothysc -- feiskyer -- jlowdermilk - soltysh -- piosz -- jsafrane +- sttts +- yliaog +labels: +- sig/api-machinery diff --git a/vendor/k8s.io/client-go/README.md b/vendor/k8s.io/client-go/README.md index 82f41d738..00be37999 100644 --- a/vendor/k8s.io/client-go/README.md +++ b/vendor/k8s.io/client-go/README.md @@ -2,9 +2,9 @@ Go clients for talking to a [kubernetes](http://kubernetes.io/) cluster. -We currently recommend using the v6.0.0 tag. See [INSTALL.md](/INSTALL.md) for +We currently recommend using the v9.0.0 tag. See [INSTALL.md](/INSTALL.md) for detailed installation instructions. `go get k8s.io/client-go/...` works, but -will give you head and doesn't handle the dependencies well. +will build `master`, which doesn't handle the dependencies well. [![BuildStatus Widget]][BuildStatus Result] [![GoReport Widget]][GoReport Status] @@ -91,16 +91,16 @@ We will backport bugfixes--but not new features--into older versions of #### Compatibility matrix -| | Kubernetes 1.4 | Kubernetes 1.5 | Kubernetes 1.6 | Kubernetes 1.7 | Kubernetes 1.8 | Kubernetes 1.9 | -|---------------------|----------------|----------------|----------------|----------------|----------------|----------------| -| client-go 1.4 | ✓ | - | - | - | - | - | -| client-go 1.5 | + | - | - | - | - | - | -| client-go 2.0 | +- | ✓ | +- | +- | +- | +- | -| client-go 3.0 | +- | +- | ✓ | - | +- | +- | -| client-go 4.0 | +- | +- | +- | ✓ | +- | +- | -| client-go 5.0 | +- | +- | +- | +- | ✓ | +- | -| client-go 6.0 | +- | +- | +- | +- | +- | ✓ | -| client-go HEAD | +- | +- | +- | +- | +- | + | +| | Kubernetes 1.6 | Kubernetes 1.7 | Kubernetes 1.8 | Kubernetes 1.9 | Kubernetes 1.10 | Kubernetes 1.11 | Kubernetes 1.12 | +|---------------------|----------------|----------------|----------------|----------------|-----------------|-----------------|-----------------| +| client-go 3.0 | ✓ | - | +- | +- | +- | +- | +- | +| client-go 4.0 | +- | ✓ | +- | +- | +- | +- | +- | +| client-go 5.0 | +- | +- | ✓ | +- | +- | +- | +- | +| client-go 6.0 | +- | +- | +- | ✓ | +- | +- | +- | +| client-go 7.0 | +- | +- | +- | +- | ✓ | +- | +- | +| client-go 8.0 | +- | +- | +- | +- | +- | ✓ | +- | +| client-go 9.0 | +- | +- | +- | +- | +- | +- | ✓ | +| client-go HEAD | +- | +- | +- | +- | +- | +- | +- | Key: @@ -125,9 +125,12 @@ between client-go versions. | client-go 1.5 | Kubernetes main repo, 1.5 branch | = - | | client-go 2.0 | Kubernetes main repo, 1.5 branch | = - | | client-go 3.0 | Kubernetes main repo, 1.6 branch | = - | -| client-go 4.0 | Kubernetes main repo, 1.7 branch | ✓ | -| client-go 5.0 | Kubernetes main repo, 1.8 branch | ✓ | -| client-go 6.0 | Kubernetes main repo, 1.9 branch | ✓ | +| client-go 4.0 | Kubernetes main repo, 1.7 branch | = - | +| client-go 5.0 | Kubernetes main repo, 1.8 branch | = - | +| client-go 6.0 | Kubernetes main repo, 1.9 branch | = - | +| client-go 7.0 | Kubernetes main repo, 1.10 branch | ✓ | +| client-go 8.0 | Kubernetes main repo, 1.11 branch | ✓ | +| client-go 9.0 | Kubernetes main repo, 1.12 branch | ✓ | | client-go HEAD | Kubernetes main repo, master branch | ✓ | Key: @@ -152,7 +155,7 @@ existing users won't be broken. ### Kubernetes tags -As of October 2017, client-go is still a mirror of +This repository is still a mirror of [k8s.io/kubernetes/staging/src/client-go](https://github.com/kubernetes/kubernetes/tree/master/staging/src/k8s.io/client-go), the code development is still done in the staging area. Since Kubernetes 1.8 release, when syncing the code from the staging area, we also sync the Kubernetes diff --git a/vendor/k8s.io/client-go/SECURITY_CONTACTS b/vendor/k8s.io/client-go/SECURITY_CONTACTS new file mode 100644 index 000000000..0648a8ebf --- /dev/null +++ b/vendor/k8s.io/client-go/SECURITY_CONTACTS @@ -0,0 +1,17 @@ +# Defined below are the security contacts for this repo. +# +# They are the contact point for the Product Security Team to reach out +# to for triaging and handling of incoming issues. +# +# The below names agree to abide by the +# [Embargo Policy](https://github.com/kubernetes/sig-release/blob/master/security-release-process-documentation/security-release-process.md#embargo-policy) +# and will be removed and replaced if they violate that agreement. +# +# DO NOT REPORT SECURITY VULNERABILITIES DIRECTLY TO THESE NAMES, FOLLOW THE +# INSTRUCTIONS AT https://kubernetes.io/security/ + +cjcullen +jessfraz +liggitt +philips +tallclair diff --git a/vendor/k8s.io/client-go/deprecated-dynamic/bad_debt.go b/vendor/k8s.io/client-go/deprecated-dynamic/bad_debt.go new file mode 100644 index 000000000..51e4a5830 --- /dev/null +++ b/vendor/k8s.io/client-go/deprecated-dynamic/bad_debt.go @@ -0,0 +1,79 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package deprecated_dynamic + +import ( + "encoding/json" + "io" + "strings" + + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/runtime/serializer" + "k8s.io/client-go/kubernetes/scheme" + "k8s.io/client-go/rest" +) + +// dynamicCodec is a codec that wraps the standard unstructured codec +// with special handling for Status objects. +// Deprecated only used by test code and its wrong +type dynamicCodec struct{} + +func (dynamicCodec) Decode(data []byte, gvk *schema.GroupVersionKind, obj runtime.Object) (runtime.Object, *schema.GroupVersionKind, error) { + obj, gvk, err := unstructured.UnstructuredJSONScheme.Decode(data, gvk, obj) + if err != nil { + return nil, nil, err + } + + if _, ok := obj.(*metav1.Status); !ok && strings.ToLower(gvk.Kind) == "status" { + obj = &metav1.Status{} + err := json.Unmarshal(data, obj) + if err != nil { + return nil, nil, err + } + } + + return obj, gvk, nil +} + +func (dynamicCodec) Encode(obj runtime.Object, w io.Writer) error { + return unstructured.UnstructuredJSONScheme.Encode(obj, w) +} + +// ContentConfig returns a rest.ContentConfig for dynamic types. +// Deprecated only used by test code and its wrong +func ContentConfig() rest.ContentConfig { + var jsonInfo runtime.SerializerInfo + // TODO: scheme.Codecs here should become "pkg/apis/server/scheme" which is the minimal core you need + // to talk to a kubernetes server + for _, info := range scheme.Codecs.SupportedMediaTypes() { + if info.MediaType == runtime.ContentTypeJSON { + jsonInfo = info + break + } + } + + jsonInfo.Serializer = dynamicCodec{} + jsonInfo.PrettySerializer = nil + return rest.ContentConfig{ + AcceptContentTypes: runtime.ContentTypeJSON, + ContentType: runtime.ContentTypeJSON, + NegotiatedSerializer: serializer.NegotiatedSerializerWrapper(jsonInfo), + } +} diff --git a/vendor/k8s.io/client-go/deprecated-dynamic/client.go b/vendor/k8s.io/client-go/deprecated-dynamic/client.go new file mode 100644 index 000000000..3b8efffab --- /dev/null +++ b/vendor/k8s.io/client-go/deprecated-dynamic/client.go @@ -0,0 +1,131 @@ +/* +Copyright 2016 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Package dynamic provides a client interface to arbitrary Kubernetes +// APIs that exposes common high level operations and exposes common +// metadata. +package deprecated_dynamic + +import ( + "strings" + + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/dynamic" + restclient "k8s.io/client-go/rest" +) + +// Interface is a Kubernetes client that allows you to access metadata +// and manipulate metadata of a Kubernetes API group. +type Interface interface { + // Resource returns an API interface to the specified resource for this client's + // group and version. If resource is not a namespaced resource, then namespace + // is ignored. The ResourceInterface inherits the parameter codec of this client. + Resource(resource *metav1.APIResource, namespace string) ResourceInterface +} + +// ResourceInterface is an API interface to a specific resource under a +// dynamic client. +type ResourceInterface interface { + // List returns a list of objects for this resource. + List(opts metav1.ListOptions) (runtime.Object, error) + // Get gets the resource with the specified name. + Get(name string, opts metav1.GetOptions) (*unstructured.Unstructured, error) + // Delete deletes the resource with the specified name. + Delete(name string, opts *metav1.DeleteOptions) error + // DeleteCollection deletes a collection of objects. + DeleteCollection(deleteOptions *metav1.DeleteOptions, listOptions metav1.ListOptions) error + // Create creates the provided resource. + Create(obj *unstructured.Unstructured) (*unstructured.Unstructured, error) + // Update updates the provided resource. + Update(obj *unstructured.Unstructured) (*unstructured.Unstructured, error) + // Watch returns a watch.Interface that watches the resource. + Watch(opts metav1.ListOptions) (watch.Interface, error) + // Patch patches the provided resource. + Patch(name string, pt types.PatchType, data []byte) (*unstructured.Unstructured, error) +} + +// Client is a Kubernetes client that allows you to access metadata +// and manipulate metadata of a Kubernetes API group, and implements Interface. +type Client struct { + version schema.GroupVersion + delegate dynamic.Interface +} + +// NewClient returns a new client based on the passed in config. The +// codec is ignored, as the dynamic client uses it's own codec. +func NewClient(conf *restclient.Config, version schema.GroupVersion) (*Client, error) { + delegate, err := dynamic.NewForConfig(conf) + if err != nil { + return nil, err + } + + return &Client{version: version, delegate: delegate}, nil +} + +// Resource returns an API interface to the specified resource for this client's +// group and version. If resource is not a namespaced resource, then namespace +// is ignored. The ResourceInterface inherits the parameter codec of c. +func (c *Client) Resource(resource *metav1.APIResource, namespace string) ResourceInterface { + resourceTokens := strings.SplitN(resource.Name, "/", 2) + subresources := []string{} + if len(resourceTokens) > 1 { + subresources = strings.Split(resourceTokens[1], "/") + } + + if len(namespace) == 0 { + return oldResourceShim(c.delegate.Resource(c.version.WithResource(resourceTokens[0])), subresources) + } + return oldResourceShim(c.delegate.Resource(c.version.WithResource(resourceTokens[0])).Namespace(namespace), subresources) +} + +// the old interfaces used the wrong type for lists. this fixes that +func oldResourceShim(in dynamic.ResourceInterface, subresources []string) ResourceInterface { + return oldResourceShimType{ResourceInterface: in, subresources: subresources} +} + +type oldResourceShimType struct { + dynamic.ResourceInterface + subresources []string +} + +func (s oldResourceShimType) Create(obj *unstructured.Unstructured) (*unstructured.Unstructured, error) { + return s.ResourceInterface.Create(obj, metav1.CreateOptions{}, s.subresources...) +} + +func (s oldResourceShimType) Update(obj *unstructured.Unstructured) (*unstructured.Unstructured, error) { + return s.ResourceInterface.Update(obj, metav1.UpdateOptions{}, s.subresources...) +} + +func (s oldResourceShimType) Delete(name string, opts *metav1.DeleteOptions) error { + return s.ResourceInterface.Delete(name, opts, s.subresources...) +} + +func (s oldResourceShimType) Get(name string, opts metav1.GetOptions) (*unstructured.Unstructured, error) { + return s.ResourceInterface.Get(name, opts, s.subresources...) +} + +func (s oldResourceShimType) List(opts metav1.ListOptions) (runtime.Object, error) { + return s.ResourceInterface.List(opts) +} + +func (s oldResourceShimType) Patch(name string, pt types.PatchType, data []byte) (*unstructured.Unstructured, error) { + return s.ResourceInterface.Patch(name, pt, data, metav1.UpdateOptions{}, s.subresources...) +} diff --git a/vendor/k8s.io/client-go/dynamic/client_pool.go b/vendor/k8s.io/client-go/deprecated-dynamic/client_pool.go similarity index 98% rename from vendor/k8s.io/client-go/dynamic/client_pool.go rename to vendor/k8s.io/client-go/deprecated-dynamic/client_pool.go index a5e1b2978..36dc54ce4 100644 --- a/vendor/k8s.io/client-go/dynamic/client_pool.go +++ b/vendor/k8s.io/client-go/deprecated-dynamic/client_pool.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package dynamic +package deprecated_dynamic import ( "sync" @@ -113,7 +113,7 @@ func (c *clientPoolImpl) ClientForGroupVersionKind(kind schema.GroupVersionKind) // we need to make a client conf.GroupVersion = &gv - dynamicClient, err := NewClient(conf) + dynamicClient, err := NewClient(conf, gv) if err != nil { return nil, err } diff --git a/vendor/k8s.io/client-go/deprecated-dynamic/client_test.go b/vendor/k8s.io/client-go/deprecated-dynamic/client_test.go new file mode 100644 index 000000000..790474522 --- /dev/null +++ b/vendor/k8s.io/client-go/deprecated-dynamic/client_test.go @@ -0,0 +1,623 @@ +/* +Copyright 2016 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package deprecated_dynamic + +import ( + "bytes" + "fmt" + "io/ioutil" + "net/http" + "net/http/httptest" + "reflect" + "testing" + + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/runtime/serializer/streaming" + "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/watch" + restclient "k8s.io/client-go/rest" + restclientwatch "k8s.io/client-go/rest/watch" +) + +func getJSON(version, kind, name string) []byte { + return []byte(fmt.Sprintf(`{"apiVersion": %q, "kind": %q, "metadata": {"name": %q}}`, version, kind, name)) +} + +func getListJSON(version, kind string, items ...[]byte) []byte { + json := fmt.Sprintf(`{"apiVersion": %q, "kind": %q, "items": [%s]}`, + version, kind, bytes.Join(items, []byte(","))) + return []byte(json) +} + +func getObject(version, kind, name string) *unstructured.Unstructured { + return &unstructured.Unstructured{ + Object: map[string]interface{}{ + "apiVersion": version, + "kind": kind, + "metadata": map[string]interface{}{ + "name": name, + }, + }, + } +} + +func getClientServer(gv *schema.GroupVersion, h func(http.ResponseWriter, *http.Request)) (Interface, *httptest.Server, error) { + srv := httptest.NewServer(http.HandlerFunc(h)) + cl, err := NewClient(&restclient.Config{ + Host: srv.URL, + ContentConfig: restclient.ContentConfig{GroupVersion: gv}, + }, *gv) + if err != nil { + srv.Close() + return nil, nil, err + } + return cl, srv, nil +} + +func TestList(t *testing.T) { + tcs := []struct { + name string + namespace string + path string + resp []byte + want *unstructured.UnstructuredList + }{ + { + name: "normal_list", + path: "/apis/gtest/vtest/rtest", + resp: getListJSON("vTest", "rTestList", + getJSON("vTest", "rTest", "item1"), + getJSON("vTest", "rTest", "item2")), + want: &unstructured.UnstructuredList{ + Object: map[string]interface{}{ + "apiVersion": "vTest", + "kind": "rTestList", + }, + Items: []unstructured.Unstructured{ + *getObject("vTest", "rTest", "item1"), + *getObject("vTest", "rTest", "item2"), + }, + }, + }, + { + name: "namespaced_list", + namespace: "nstest", + path: "/apis/gtest/vtest/namespaces/nstest/rtest", + resp: getListJSON("vTest", "rTestList", + getJSON("vTest", "rTest", "item1"), + getJSON("vTest", "rTest", "item2")), + want: &unstructured.UnstructuredList{ + Object: map[string]interface{}{ + "apiVersion": "vTest", + "kind": "rTestList", + }, + Items: []unstructured.Unstructured{ + *getObject("vTest", "rTest", "item1"), + *getObject("vTest", "rTest", "item2"), + }, + }, + }, + } + for _, tc := range tcs { + gv := &schema.GroupVersion{Group: "gtest", Version: "vtest"} + resource := &metav1.APIResource{Name: "rtest", Namespaced: len(tc.namespace) != 0} + cl, srv, err := getClientServer(gv, func(w http.ResponseWriter, r *http.Request) { + if r.Method != "GET" { + t.Errorf("List(%q) got HTTP method %s. wanted GET", tc.name, r.Method) + } + + if r.URL.Path != tc.path { + t.Errorf("List(%q) got path %s. wanted %s", tc.name, r.URL.Path, tc.path) + } + + w.Header().Set("Content-Type", runtime.ContentTypeJSON) + w.Write(tc.resp) + }) + if err != nil { + t.Errorf("unexpected error when creating client: %v", err) + continue + } + defer srv.Close() + + got, err := cl.Resource(resource, tc.namespace).List(metav1.ListOptions{}) + if err != nil { + t.Errorf("unexpected error when listing %q: %v", tc.name, err) + continue + } + + if !reflect.DeepEqual(got, tc.want) { + t.Errorf("List(%q) want: %v\ngot: %v", tc.name, tc.want, got) + } + } +} + +func TestGet(t *testing.T) { + tcs := []struct { + resource string + namespace string + name string + path string + resp []byte + want *unstructured.Unstructured + }{ + { + resource: "rtest", + name: "normal_get", + path: "/apis/gtest/vtest/rtest/normal_get", + resp: getJSON("vTest", "rTest", "normal_get"), + want: getObject("vTest", "rTest", "normal_get"), + }, + { + resource: "rtest", + namespace: "nstest", + name: "namespaced_get", + path: "/apis/gtest/vtest/namespaces/nstest/rtest/namespaced_get", + resp: getJSON("vTest", "rTest", "namespaced_get"), + want: getObject("vTest", "rTest", "namespaced_get"), + }, + { + resource: "rtest/srtest", + name: "normal_subresource_get", + path: "/apis/gtest/vtest/rtest/normal_subresource_get/srtest", + resp: getJSON("vTest", "srTest", "normal_subresource_get"), + want: getObject("vTest", "srTest", "normal_subresource_get"), + }, + { + resource: "rtest/srtest", + namespace: "nstest", + name: "namespaced_subresource_get", + path: "/apis/gtest/vtest/namespaces/nstest/rtest/namespaced_subresource_get/srtest", + resp: getJSON("vTest", "srTest", "namespaced_subresource_get"), + want: getObject("vTest", "srTest", "namespaced_subresource_get"), + }, + } + for _, tc := range tcs { + gv := &schema.GroupVersion{Group: "gtest", Version: "vtest"} + resource := &metav1.APIResource{Name: tc.resource, Namespaced: len(tc.namespace) != 0} + cl, srv, err := getClientServer(gv, func(w http.ResponseWriter, r *http.Request) { + if r.Method != "GET" { + t.Errorf("Get(%q) got HTTP method %s. wanted GET", tc.name, r.Method) + } + + if r.URL.Path != tc.path { + t.Errorf("Get(%q) got path %s. wanted %s", tc.name, r.URL.Path, tc.path) + } + + w.Header().Set("Content-Type", runtime.ContentTypeJSON) + w.Write(tc.resp) + }) + if err != nil { + t.Errorf("unexpected error when creating client: %v", err) + continue + } + defer srv.Close() + + got, err := cl.Resource(resource, tc.namespace).Get(tc.name, metav1.GetOptions{}) + if err != nil { + t.Errorf("unexpected error when getting %q: %v", tc.name, err) + continue + } + + if !reflect.DeepEqual(got, tc.want) { + t.Errorf("Get(%q) want: %v\ngot: %v", tc.name, tc.want, got) + } + } +} + +func TestDelete(t *testing.T) { + background := metav1.DeletePropagationBackground + uid := types.UID("uid") + + statusOK := &metav1.Status{ + TypeMeta: metav1.TypeMeta{Kind: "Status"}, + Status: metav1.StatusSuccess, + } + tcs := []struct { + namespace string + name string + path string + deleteOptions *metav1.DeleteOptions + }{ + { + name: "normal_delete", + path: "/apis/gtest/vtest/rtest/normal_delete", + }, + { + namespace: "nstest", + name: "namespaced_delete", + path: "/apis/gtest/vtest/namespaces/nstest/rtest/namespaced_delete", + }, + { + namespace: "nstest", + name: "namespaced_delete_with_options", + path: "/apis/gtest/vtest/namespaces/nstest/rtest/namespaced_delete_with_options", + deleteOptions: &metav1.DeleteOptions{Preconditions: &metav1.Preconditions{UID: &uid}, PropagationPolicy: &background}, + }, + } + for _, tc := range tcs { + gv := &schema.GroupVersion{Group: "gtest", Version: "vtest"} + resource := &metav1.APIResource{Name: "rtest", Namespaced: len(tc.namespace) != 0} + cl, srv, err := getClientServer(gv, func(w http.ResponseWriter, r *http.Request) { + if r.Method != "DELETE" { + t.Errorf("Delete(%q) got HTTP method %s. wanted DELETE", tc.name, r.Method) + } + + if r.URL.Path != tc.path { + t.Errorf("Delete(%q) got path %s. wanted %s", tc.name, r.URL.Path, tc.path) + } + + w.Header().Set("Content-Type", runtime.ContentTypeJSON) + unstructured.UnstructuredJSONScheme.Encode(statusOK, w) + }) + if err != nil { + t.Errorf("unexpected error when creating client: %v", err) + continue + } + defer srv.Close() + + err = cl.Resource(resource, tc.namespace).Delete(tc.name, tc.deleteOptions) + if err != nil { + t.Errorf("unexpected error when deleting %q: %v", tc.name, err) + continue + } + } +} + +func TestDeleteCollection(t *testing.T) { + statusOK := &metav1.Status{ + TypeMeta: metav1.TypeMeta{Kind: "Status"}, + Status: metav1.StatusSuccess, + } + tcs := []struct { + namespace string + name string + path string + }{ + { + name: "normal_delete_collection", + path: "/apis/gtest/vtest/rtest", + }, + { + namespace: "nstest", + name: "namespaced_delete_collection", + path: "/apis/gtest/vtest/namespaces/nstest/rtest", + }, + } + for _, tc := range tcs { + gv := &schema.GroupVersion{Group: "gtest", Version: "vtest"} + resource := &metav1.APIResource{Name: "rtest", Namespaced: len(tc.namespace) != 0} + cl, srv, err := getClientServer(gv, func(w http.ResponseWriter, r *http.Request) { + if r.Method != "DELETE" { + t.Errorf("DeleteCollection(%q) got HTTP method %s. wanted DELETE", tc.name, r.Method) + } + + if r.URL.Path != tc.path { + t.Errorf("DeleteCollection(%q) got path %s. wanted %s", tc.name, r.URL.Path, tc.path) + } + + w.Header().Set("Content-Type", runtime.ContentTypeJSON) + unstructured.UnstructuredJSONScheme.Encode(statusOK, w) + }) + if err != nil { + t.Errorf("unexpected error when creating client: %v", err) + continue + } + defer srv.Close() + + err = cl.Resource(resource, tc.namespace).DeleteCollection(nil, metav1.ListOptions{}) + if err != nil { + t.Errorf("unexpected error when deleting collection %q: %v", tc.name, err) + continue + } + } +} + +func TestCreate(t *testing.T) { + tcs := []struct { + resource string + name string + namespace string + obj *unstructured.Unstructured + path string + }{ + { + resource: "rtest", + name: "normal_create", + path: "/apis/gtest/vtest/rtest", + obj: getObject("gtest/vTest", "rTest", "normal_create"), + }, + { + resource: "rtest", + name: "namespaced_create", + namespace: "nstest", + path: "/apis/gtest/vtest/namespaces/nstest/rtest", + obj: getObject("gtest/vTest", "rTest", "namespaced_create"), + }, + } + for _, tc := range tcs { + gv := &schema.GroupVersion{Group: "gtest", Version: "vtest"} + resource := &metav1.APIResource{Name: tc.resource, Namespaced: len(tc.namespace) != 0} + cl, srv, err := getClientServer(gv, func(w http.ResponseWriter, r *http.Request) { + if r.Method != "POST" { + t.Errorf("Create(%q) got HTTP method %s. wanted POST", tc.name, r.Method) + } + + if r.URL.Path != tc.path { + t.Errorf("Create(%q) got path %s. wanted %s", tc.name, r.URL.Path, tc.path) + } + + w.Header().Set("Content-Type", runtime.ContentTypeJSON) + data, err := ioutil.ReadAll(r.Body) + if err != nil { + t.Errorf("Create(%q) unexpected error reading body: %v", tc.name, err) + w.WriteHeader(http.StatusInternalServerError) + return + } + + w.Write(data) + }) + if err != nil { + t.Errorf("unexpected error when creating client: %v", err) + continue + } + defer srv.Close() + + got, err := cl.Resource(resource, tc.namespace).Create(tc.obj) + if err != nil { + t.Errorf("unexpected error when creating %q: %v", tc.name, err) + continue + } + + if !reflect.DeepEqual(got, tc.obj) { + t.Errorf("Create(%q) want: %v\ngot: %v", tc.name, tc.obj, got) + } + } +} + +func TestUpdate(t *testing.T) { + tcs := []struct { + resource string + name string + namespace string + obj *unstructured.Unstructured + path string + }{ + { + resource: "rtest", + name: "normal_update", + path: "/apis/gtest/vtest/rtest/normal_update", + obj: getObject("gtest/vTest", "rTest", "normal_update"), + }, + { + resource: "rtest", + name: "namespaced_update", + namespace: "nstest", + path: "/apis/gtest/vtest/namespaces/nstest/rtest/namespaced_update", + obj: getObject("gtest/vTest", "rTest", "namespaced_update"), + }, + { + resource: "rtest/srtest", + name: "normal_subresource_update", + path: "/apis/gtest/vtest/rtest/normal_update/srtest", + obj: getObject("gtest/vTest", "srTest", "normal_update"), + }, + { + resource: "rtest/srtest", + name: "namespaced_subresource_update", + namespace: "nstest", + path: "/apis/gtest/vtest/namespaces/nstest/rtest/namespaced_update/srtest", + obj: getObject("gtest/vTest", "srTest", "namespaced_update"), + }, + } + for _, tc := range tcs { + gv := &schema.GroupVersion{Group: "gtest", Version: "vtest"} + resource := &metav1.APIResource{Name: tc.resource, Namespaced: len(tc.namespace) != 0} + cl, srv, err := getClientServer(gv, func(w http.ResponseWriter, r *http.Request) { + if r.Method != "PUT" { + t.Errorf("Update(%q) got HTTP method %s. wanted PUT", tc.name, r.Method) + } + + if r.URL.Path != tc.path { + t.Errorf("Update(%q) got path %s. wanted %s", tc.name, r.URL.Path, tc.path) + } + + w.Header().Set("Content-Type", runtime.ContentTypeJSON) + data, err := ioutil.ReadAll(r.Body) + if err != nil { + t.Errorf("Update(%q) unexpected error reading body: %v", tc.name, err) + w.WriteHeader(http.StatusInternalServerError) + return + } + + w.Write(data) + }) + if err != nil { + t.Errorf("unexpected error when creating client: %v", err) + continue + } + defer srv.Close() + + got, err := cl.Resource(resource, tc.namespace).Update(tc.obj) + if err != nil { + t.Errorf("unexpected error when updating %q: %v", tc.name, err) + continue + } + + if !reflect.DeepEqual(got, tc.obj) { + t.Errorf("Update(%q) want: %v\ngot: %v", tc.name, tc.obj, got) + } + } +} + +func TestWatch(t *testing.T) { + tcs := []struct { + name string + namespace string + events []watch.Event + path string + query string + }{ + { + name: "normal_watch", + path: "/apis/gtest/vtest/rtest", + query: "watch=true", + events: []watch.Event{ + {Type: watch.Added, Object: getObject("gtest/vTest", "rTest", "normal_watch")}, + {Type: watch.Modified, Object: getObject("gtest/vTest", "rTest", "normal_watch")}, + {Type: watch.Deleted, Object: getObject("gtest/vTest", "rTest", "normal_watch")}, + }, + }, + { + name: "namespaced_watch", + namespace: "nstest", + path: "/apis/gtest/vtest/namespaces/nstest/rtest", + query: "watch=true", + events: []watch.Event{ + {Type: watch.Added, Object: getObject("gtest/vTest", "rTest", "namespaced_watch")}, + {Type: watch.Modified, Object: getObject("gtest/vTest", "rTest", "namespaced_watch")}, + {Type: watch.Deleted, Object: getObject("gtest/vTest", "rTest", "namespaced_watch")}, + }, + }, + } + for _, tc := range tcs { + gv := &schema.GroupVersion{Group: "gtest", Version: "vtest"} + resource := &metav1.APIResource{Name: "rtest", Namespaced: len(tc.namespace) != 0} + cl, srv, err := getClientServer(gv, func(w http.ResponseWriter, r *http.Request) { + if r.Method != "GET" { + t.Errorf("Watch(%q) got HTTP method %s. wanted GET", tc.name, r.Method) + } + + if r.URL.Path != tc.path { + t.Errorf("Watch(%q) got path %s. wanted %s", tc.name, r.URL.Path, tc.path) + } + if r.URL.RawQuery != tc.query { + t.Errorf("Watch(%q) got query %s. wanted %s", tc.name, r.URL.RawQuery, tc.query) + } + + enc := restclientwatch.NewEncoder(streaming.NewEncoder(w, dynamicCodec{}), dynamicCodec{}) + for _, e := range tc.events { + enc.Encode(&e) + } + }) + if err != nil { + t.Errorf("unexpected error when creating client: %v", err) + continue + } + defer srv.Close() + + watcher, err := cl.Resource(resource, tc.namespace).Watch(metav1.ListOptions{}) + if err != nil { + t.Errorf("unexpected error when watching %q: %v", tc.name, err) + continue + } + + for _, want := range tc.events { + got := <-watcher.ResultChan() + if !reflect.DeepEqual(got, want) { + t.Errorf("Watch(%q) want: %v\ngot: %v", tc.name, want, got) + } + } + } +} + +func TestPatch(t *testing.T) { + tcs := []struct { + resource string + name string + namespace string + patch []byte + want *unstructured.Unstructured + path string + }{ + { + resource: "rtest", + name: "normal_patch", + path: "/apis/gtest/vtest/rtest/normal_patch", + patch: getJSON("gtest/vTest", "rTest", "normal_patch"), + want: getObject("gtest/vTest", "rTest", "normal_patch"), + }, + { + resource: "rtest", + name: "namespaced_patch", + namespace: "nstest", + path: "/apis/gtest/vtest/namespaces/nstest/rtest/namespaced_patch", + patch: getJSON("gtest/vTest", "rTest", "namespaced_patch"), + want: getObject("gtest/vTest", "rTest", "namespaced_patch"), + }, + { + resource: "rtest/srtest", + name: "normal_subresource_patch", + path: "/apis/gtest/vtest/rtest/normal_subresource_patch/srtest", + patch: getJSON("gtest/vTest", "srTest", "normal_subresource_patch"), + want: getObject("gtest/vTest", "srTest", "normal_subresource_patch"), + }, + { + resource: "rtest/srtest", + name: "namespaced_subresource_patch", + namespace: "nstest", + path: "/apis/gtest/vtest/namespaces/nstest/rtest/namespaced_subresource_patch/srtest", + patch: getJSON("gtest/vTest", "srTest", "namespaced_subresource_patch"), + want: getObject("gtest/vTest", "srTest", "namespaced_subresource_patch"), + }, + } + for _, tc := range tcs { + gv := &schema.GroupVersion{Group: "gtest", Version: "vtest"} + resource := &metav1.APIResource{Name: tc.resource, Namespaced: len(tc.namespace) != 0} + cl, srv, err := getClientServer(gv, func(w http.ResponseWriter, r *http.Request) { + if r.Method != "PATCH" { + t.Errorf("Patch(%q) got HTTP method %s. wanted PATCH", tc.name, r.Method) + } + + if r.URL.Path != tc.path { + t.Errorf("Patch(%q) got path %s. wanted %s", tc.name, r.URL.Path, tc.path) + } + + content := r.Header.Get("Content-Type") + if content != string(types.StrategicMergePatchType) { + t.Errorf("Patch(%q) got Content-Type %s. wanted %s", tc.name, content, types.StrategicMergePatchType) + } + + data, err := ioutil.ReadAll(r.Body) + if err != nil { + t.Errorf("Patch(%q) unexpected error reading body: %v", tc.name, err) + w.WriteHeader(http.StatusInternalServerError) + return + } + + w.Header().Set("Content-Type", "application/json") + w.Write(data) + }) + if err != nil { + t.Errorf("unexpected error when creating client: %v", err) + continue + } + defer srv.Close() + + got, err := cl.Resource(resource, tc.namespace).Patch(tc.name, types.StrategicMergePatchType, tc.patch) + if err != nil { + t.Errorf("unexpected error when patching %q: %v", tc.name, err) + continue + } + + if !reflect.DeepEqual(got, tc.want) { + t.Errorf("Patch(%q) want: %v\ngot: %v", tc.name, tc.want, got) + } + } +} diff --git a/vendor/k8s.io/client-go/discovery/BUILD b/vendor/k8s.io/client-go/discovery/BUILD deleted file mode 100644 index 19523ba53..000000000 --- a/vendor/k8s.io/client-go/discovery/BUILD +++ /dev/null @@ -1,75 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_library( - name = "go_default_library", - srcs = [ - "discovery_client.go", - "helper.go", - "restmapper.go", - "unstructured.go", - ], - importpath = "k8s.io/client-go/discovery", - deps = [ - "//vendor/github.com/golang/glog:go_default_library", - "//vendor/github.com/golang/protobuf/proto:go_default_library", - "//vendor/github.com/googleapis/gnostic/OpenAPIv2:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/version:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - ], -) - -go_test( - name = "go_default_xtest", - srcs = [ - "discovery_client_test.go", - "helper_blackbox_test.go", - "restmapper_test.go", - ], - deps = [ - "//vendor/github.com/gogo/protobuf/proto:go_default_library", - "//vendor/github.com/googleapis/gnostic/OpenAPIv2:go_default_library", - "//vendor/github.com/stretchr/testify/assert:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/version:go_default_library", - "//vendor/k8s.io/client-go/discovery:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/rest/fake:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/discovery/cached:all-srcs", - "//staging/src/k8s.io/client-go/discovery/fake:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/discovery/cached/BUILD b/vendor/k8s.io/client-go/discovery/cached/BUILD deleted file mode 100644 index 279e0ff9a..000000000 --- a/vendor/k8s.io/client-go/discovery/cached/BUILD +++ /dev/null @@ -1,44 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_test( - name = "go_default_test", - srcs = ["memcache_test.go"], - embed = [":go_default_library"], - deps = [ - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/client-go/discovery/fake:go_default_library", - ], -) - -go_library( - name = "go_default_library", - srcs = ["memcache.go"], - importpath = "k8s.io/client-go/discovery/cached", - deps = [ - "//vendor/github.com/googleapis/gnostic/OpenAPIv2:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/version:go_default_library", - "//vendor/k8s.io/client-go/discovery:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/discovery/cached/memcache.go b/vendor/k8s.io/client-go/discovery/cached/memcache.go index 585b4c80d..702392514 100644 --- a/vendor/k8s.io/client-go/discovery/cached/memcache.go +++ b/vendor/k8s.io/client-go/discovery/cached/memcache.go @@ -44,6 +44,7 @@ type memCacheClient struct { cacheValid bool } +// Error Constants var ( ErrCacheEmpty = errors.New("the cache has not been filled yet") ErrCacheNotFound = errors.New("not found") @@ -67,20 +68,7 @@ func (d *memCacheClient) ServerResourcesForGroupVersion(groupVersion string) (*m // ServerResources returns the supported resources for all groups and versions. func (d *memCacheClient) ServerResources() ([]*metav1.APIResourceList, error) { - apiGroups, err := d.ServerGroups() - if err != nil { - return nil, err - } - groupVersions := metav1.ExtractGroupVersions(apiGroups) - result := []*metav1.APIResourceList{} - for _, groupVersion := range groupVersions { - resources, err := d.ServerResourcesForGroupVersion(groupVersion) - if err != nil { - return nil, err - } - result = append(result, resources) - } - return result, nil + return discovery.ServerResources(d) } func (d *memCacheClient) ServerGroups() (*metav1.APIGroupList, error) { @@ -96,18 +84,12 @@ func (d *memCacheClient) RESTClient() restclient.Interface { return d.delegate.RESTClient() } -// TODO: Should this also be cached? The results seem more likely to be -// inconsistent with ServerGroups and ServerResources given the requirement to -// actively Invalidate. func (d *memCacheClient) ServerPreferredResources() ([]*metav1.APIResourceList, error) { - return d.delegate.ServerPreferredResources() + return discovery.ServerPreferredResources(d) } -// TODO: Should this also be cached? The results seem more likely to be -// inconsistent with ServerGroups and ServerResources given the requirement to -// actively Invalidate. func (d *memCacheClient) ServerPreferredNamespacedResources() ([]*metav1.APIResourceList, error) { - return d.delegate.ServerPreferredNamespacedResources() + return discovery.ServerPreferredNamespacedResources(d) } func (d *memCacheClient) ServerVersion() (*version.Info, error) { diff --git a/vendor/k8s.io/client-go/discovery/cached_discovery.go b/vendor/k8s.io/client-go/discovery/cached_discovery.go new file mode 100644 index 000000000..df69d6a19 --- /dev/null +++ b/vendor/k8s.io/client-go/discovery/cached_discovery.go @@ -0,0 +1,295 @@ +/* +Copyright 2016 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package discovery + +import ( + "errors" + "io/ioutil" + "net/http" + "os" + "path/filepath" + "sync" + "time" + + "github.com/googleapis/gnostic/OpenAPIv2" + "k8s.io/klog" + + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/version" + "k8s.io/client-go/kubernetes/scheme" + restclient "k8s.io/client-go/rest" +) + +// CachedDiscoveryClient implements the functions that discovery server-supported API groups, +// versions and resources. +type CachedDiscoveryClient struct { + delegate DiscoveryInterface + + // cacheDirectory is the directory where discovery docs are held. It must be unique per host:port combination to work well. + cacheDirectory string + + // ttl is how long the cache should be considered valid + ttl time.Duration + + // mutex protects the variables below + mutex sync.Mutex + + // ourFiles are all filenames of cache files created by this process + ourFiles map[string]struct{} + // invalidated is true if all cache files should be ignored that are not ours (e.g. after Invalidate() was called) + invalidated bool + // fresh is true if all used cache files were ours + fresh bool +} + +var _ CachedDiscoveryInterface = &CachedDiscoveryClient{} + +// ServerResourcesForGroupVersion returns the supported resources for a group and version. +func (d *CachedDiscoveryClient) ServerResourcesForGroupVersion(groupVersion string) (*metav1.APIResourceList, error) { + filename := filepath.Join(d.cacheDirectory, groupVersion, "serverresources.json") + cachedBytes, err := d.getCachedFile(filename) + // don't fail on errors, we either don't have a file or won't be able to run the cached check. Either way we can fallback. + if err == nil { + cachedResources := &metav1.APIResourceList{} + if err := runtime.DecodeInto(scheme.Codecs.UniversalDecoder(), cachedBytes, cachedResources); err == nil { + klog.V(10).Infof("returning cached discovery info from %v", filename) + return cachedResources, nil + } + } + + liveResources, err := d.delegate.ServerResourcesForGroupVersion(groupVersion) + if err != nil { + klog.V(3).Infof("skipped caching discovery info due to %v", err) + return liveResources, err + } + if liveResources == nil || len(liveResources.APIResources) == 0 { + klog.V(3).Infof("skipped caching discovery info, no resources found") + return liveResources, err + } + + if err := d.writeCachedFile(filename, liveResources); err != nil { + klog.V(1).Infof("failed to write cache to %v due to %v", filename, err) + } + + return liveResources, nil +} + +// ServerResources returns the supported resources for all groups and versions. +func (d *CachedDiscoveryClient) ServerResources() ([]*metav1.APIResourceList, error) { + return ServerResources(d) +} + +// ServerGroups returns the supported groups, with information like supported versions and the +// preferred version. +func (d *CachedDiscoveryClient) ServerGroups() (*metav1.APIGroupList, error) { + filename := filepath.Join(d.cacheDirectory, "servergroups.json") + cachedBytes, err := d.getCachedFile(filename) + // don't fail on errors, we either don't have a file or won't be able to run the cached check. Either way we can fallback. + if err == nil { + cachedGroups := &metav1.APIGroupList{} + if err := runtime.DecodeInto(scheme.Codecs.UniversalDecoder(), cachedBytes, cachedGroups); err == nil { + klog.V(10).Infof("returning cached discovery info from %v", filename) + return cachedGroups, nil + } + } + + liveGroups, err := d.delegate.ServerGroups() + if err != nil { + klog.V(3).Infof("skipped caching discovery info due to %v", err) + return liveGroups, err + } + if liveGroups == nil || len(liveGroups.Groups) == 0 { + klog.V(3).Infof("skipped caching discovery info, no groups found") + return liveGroups, err + } + + if err := d.writeCachedFile(filename, liveGroups); err != nil { + klog.V(1).Infof("failed to write cache to %v due to %v", filename, err) + } + + return liveGroups, nil +} + +func (d *CachedDiscoveryClient) getCachedFile(filename string) ([]byte, error) { + // after invalidation ignore cache files not created by this process + d.mutex.Lock() + _, ourFile := d.ourFiles[filename] + if d.invalidated && !ourFile { + d.mutex.Unlock() + return nil, errors.New("cache invalidated") + } + d.mutex.Unlock() + + file, err := os.Open(filename) + if err != nil { + return nil, err + } + defer file.Close() + + fileInfo, err := file.Stat() + if err != nil { + return nil, err + } + + if time.Now().After(fileInfo.ModTime().Add(d.ttl)) { + return nil, errors.New("cache expired") + } + + // the cache is present and its valid. Try to read and use it. + cachedBytes, err := ioutil.ReadAll(file) + if err != nil { + return nil, err + } + + d.mutex.Lock() + defer d.mutex.Unlock() + d.fresh = d.fresh && ourFile + + return cachedBytes, nil +} + +func (d *CachedDiscoveryClient) writeCachedFile(filename string, obj runtime.Object) error { + if err := os.MkdirAll(filepath.Dir(filename), 0755); err != nil { + return err + } + + bytes, err := runtime.Encode(scheme.Codecs.LegacyCodec(), obj) + if err != nil { + return err + } + + f, err := ioutil.TempFile(filepath.Dir(filename), filepath.Base(filename)+".") + if err != nil { + return err + } + defer os.Remove(f.Name()) + _, err = f.Write(bytes) + if err != nil { + return err + } + + err = os.Chmod(f.Name(), 0755) + if err != nil { + return err + } + + name := f.Name() + err = f.Close() + if err != nil { + return err + } + + // atomic rename + d.mutex.Lock() + defer d.mutex.Unlock() + err = os.Rename(name, filename) + if err == nil { + d.ourFiles[filename] = struct{}{} + } + return err +} + +// RESTClient returns a RESTClient that is used to communicate with API server +// by this client implementation. +func (d *CachedDiscoveryClient) RESTClient() restclient.Interface { + return d.delegate.RESTClient() +} + +// ServerPreferredResources returns the supported resources with the version preferred by the +// server. +func (d *CachedDiscoveryClient) ServerPreferredResources() ([]*metav1.APIResourceList, error) { + return ServerPreferredResources(d) +} + +// ServerPreferredNamespacedResources returns the supported namespaced resources with the +// version preferred by the server. +func (d *CachedDiscoveryClient) ServerPreferredNamespacedResources() ([]*metav1.APIResourceList, error) { + return ServerPreferredNamespacedResources(d) +} + +// ServerVersion retrieves and parses the server's version (git version). +func (d *CachedDiscoveryClient) ServerVersion() (*version.Info, error) { + return d.delegate.ServerVersion() +} + +// OpenAPISchema retrieves and parses the swagger API schema the server supports. +func (d *CachedDiscoveryClient) OpenAPISchema() (*openapi_v2.Document, error) { + return d.delegate.OpenAPISchema() +} + +// Fresh is supposed to tell the caller whether or not to retry if the cache +// fails to find something (false = retry, true = no need to retry). +func (d *CachedDiscoveryClient) Fresh() bool { + d.mutex.Lock() + defer d.mutex.Unlock() + + return d.fresh +} + +// Invalidate enforces that no cached data is used in the future that is older than the current time. +func (d *CachedDiscoveryClient) Invalidate() { + d.mutex.Lock() + defer d.mutex.Unlock() + + d.ourFiles = map[string]struct{}{} + d.fresh = true + d.invalidated = true +} + +// NewCachedDiscoveryClientForConfig creates a new DiscoveryClient for the given config, and wraps +// the created client in a CachedDiscoveryClient. The provided configuration is updated with a +// custom transport that understands cache responses. +// We receive two distinct cache directories for now, in order to preserve old behavior +// which makes use of the --cache-dir flag value for storing cache data from the CacheRoundTripper, +// and makes use of the hardcoded destination (~/.kube/cache/discovery/...) for storing +// CachedDiscoveryClient cache data. If httpCacheDir is empty, the restconfig's transport will not +// be updated with a roundtripper that understands cache responses. +// If discoveryCacheDir is empty, cached server resource data will be looked up in the current directory. +// TODO(juanvallejo): the value of "--cache-dir" should be honored. Consolidate discoveryCacheDir with httpCacheDir +// so that server resources and http-cache data are stored in the same location, provided via config flags. +func NewCachedDiscoveryClientForConfig(config *restclient.Config, discoveryCacheDir, httpCacheDir string, ttl time.Duration) (*CachedDiscoveryClient, error) { + if len(httpCacheDir) > 0 { + // update the given restconfig with a custom roundtripper that + // understands how to handle cache responses. + wt := config.WrapTransport + config.WrapTransport = func(rt http.RoundTripper) http.RoundTripper { + if wt != nil { + rt = wt(rt) + } + return newCacheRoundTripper(httpCacheDir, rt) + } + } + + discoveryClient, err := NewDiscoveryClientForConfig(config) + if err != nil { + return nil, err + } + + return newCachedDiscoveryClient(discoveryClient, discoveryCacheDir, ttl), nil +} + +// NewCachedDiscoveryClient creates a new DiscoveryClient. cacheDirectory is the directory where discovery docs are held. It must be unique per host:port combination to work well. +func newCachedDiscoveryClient(delegate DiscoveryInterface, cacheDirectory string, ttl time.Duration) *CachedDiscoveryClient { + return &CachedDiscoveryClient{ + delegate: delegate, + cacheDirectory: cacheDirectory, + ttl: ttl, + ourFiles: map[string]struct{}{}, + fresh: true, + } +} diff --git a/vendor/k8s.io/client-go/discovery/cached_discovery_test.go b/vendor/k8s.io/client-go/discovery/cached_discovery_test.go new file mode 100644 index 000000000..278931c2d --- /dev/null +++ b/vendor/k8s.io/client-go/discovery/cached_discovery_test.go @@ -0,0 +1,169 @@ +/* +Copyright 2016 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package discovery + +import ( + "io/ioutil" + "os" + "testing" + "time" + + "github.com/googleapis/gnostic/OpenAPIv2" + "github.com/stretchr/testify/assert" + + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/version" + restclient "k8s.io/client-go/rest" + "k8s.io/client-go/rest/fake" +) + +func TestCachedDiscoveryClient_Fresh(t *testing.T) { + assert := assert.New(t) + + d, err := ioutil.TempDir("", "") + assert.NoError(err) + defer os.RemoveAll(d) + + c := fakeDiscoveryClient{} + cdc := newCachedDiscoveryClient(&c, d, 60*time.Second) + assert.True(cdc.Fresh(), "should be fresh after creation") + + cdc.ServerGroups() + assert.True(cdc.Fresh(), "should be fresh after groups call without cache") + assert.Equal(c.groupCalls, 1) + + cdc.ServerGroups() + assert.True(cdc.Fresh(), "should be fresh after another groups call") + assert.Equal(c.groupCalls, 1) + + cdc.ServerResources() + assert.True(cdc.Fresh(), "should be fresh after resources call") + assert.Equal(c.resourceCalls, 1) + + cdc.ServerResources() + assert.True(cdc.Fresh(), "should be fresh after another resources call") + assert.Equal(c.resourceCalls, 1) + + cdc = newCachedDiscoveryClient(&c, d, 60*time.Second) + cdc.ServerGroups() + assert.False(cdc.Fresh(), "should NOT be fresh after recreation with existing groups cache") + assert.Equal(c.groupCalls, 1) + + cdc.ServerResources() + assert.False(cdc.Fresh(), "should NOT be fresh after recreation with existing resources cache") + assert.Equal(c.resourceCalls, 1) + + cdc.Invalidate() + assert.True(cdc.Fresh(), "should be fresh after cache invalidation") + + cdc.ServerResources() + assert.True(cdc.Fresh(), "should ignore existing resources cache after invalidation") + assert.Equal(c.resourceCalls, 2) +} + +func TestNewCachedDiscoveryClient_TTL(t *testing.T) { + assert := assert.New(t) + + d, err := ioutil.TempDir("", "") + assert.NoError(err) + defer os.RemoveAll(d) + + c := fakeDiscoveryClient{} + cdc := newCachedDiscoveryClient(&c, d, 1*time.Nanosecond) + cdc.ServerGroups() + assert.Equal(c.groupCalls, 1) + + time.Sleep(1 * time.Second) + + cdc.ServerGroups() + assert.Equal(c.groupCalls, 2) +} + +type fakeDiscoveryClient struct { + groupCalls int + resourceCalls int + versionCalls int + openAPICalls int + + serverResourcesHandler func() ([]*metav1.APIResourceList, error) +} + +var _ DiscoveryInterface = &fakeDiscoveryClient{} + +func (c *fakeDiscoveryClient) RESTClient() restclient.Interface { + return &fake.RESTClient{} +} + +func (c *fakeDiscoveryClient) ServerGroups() (*metav1.APIGroupList, error) { + c.groupCalls = c.groupCalls + 1 + return &metav1.APIGroupList{ + Groups: []metav1.APIGroup{ + { + Name: "a", + Versions: []metav1.GroupVersionForDiscovery{ + { + GroupVersion: "a/v1", + Version: "v1", + }, + }, + PreferredVersion: metav1.GroupVersionForDiscovery{ + GroupVersion: "a/v1", + Version: "v1", + }, + }, + }, + }, nil +} + +func (c *fakeDiscoveryClient) ServerResourcesForGroupVersion(groupVersion string) (*metav1.APIResourceList, error) { + c.resourceCalls = c.resourceCalls + 1 + if groupVersion == "a/v1" { + return &metav1.APIResourceList{APIResources: []metav1.APIResource{{Name: "widgets", Kind: "Widget"}}}, nil + } + + return nil, errors.NewNotFound(schema.GroupResource{}, "") +} + +func (c *fakeDiscoveryClient) ServerResources() ([]*metav1.APIResourceList, error) { + c.resourceCalls = c.resourceCalls + 1 + if c.serverResourcesHandler != nil { + return c.serverResourcesHandler() + } + return []*metav1.APIResourceList{}, nil +} + +func (c *fakeDiscoveryClient) ServerPreferredResources() ([]*metav1.APIResourceList, error) { + c.resourceCalls = c.resourceCalls + 1 + return nil, nil +} + +func (c *fakeDiscoveryClient) ServerPreferredNamespacedResources() ([]*metav1.APIResourceList, error) { + c.resourceCalls = c.resourceCalls + 1 + return nil, nil +} + +func (c *fakeDiscoveryClient) ServerVersion() (*version.Info, error) { + c.versionCalls = c.versionCalls + 1 + return &version.Info{}, nil +} + +func (c *fakeDiscoveryClient) OpenAPISchema() (*openapi_v2.Document, error) { + c.openAPICalls = c.openAPICalls + 1 + return &openapi_v2.Document{}, nil +} diff --git a/vendor/k8s.io/client-go/discovery/discovery_client.go b/vendor/k8s.io/client-go/discovery/discovery_client.go index 3c685a955..17b39de05 100644 --- a/vendor/k8s.io/client-go/discovery/discovery_client.go +++ b/vendor/k8s.io/client-go/discovery/discovery_client.go @@ -22,6 +22,8 @@ import ( "net/url" "sort" "strings" + "sync" + "time" "github.com/golang/protobuf/proto" "github.com/googleapis/gnostic/OpenAPIv2" @@ -31,6 +33,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/runtime/serializer" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/apimachinery/pkg/version" "k8s.io/client-go/kubernetes/scheme" restclient "k8s.io/client-go/rest" @@ -41,6 +44,9 @@ const ( defaultRetries = 2 // protobuf mime type mimePb = "application/com.github.proto-openapi.spec.v2@v1.0+protobuf" + // defaultTimeout is the maximum amount of time per request when no timeout has been set on a RESTClient. + // Defaults to 32s in order to have a distinguishable length of time, relative to other timeouts that exist. + defaultTimeout = 32 * time.Second ) // DiscoveryInterface holds the methods that discover server-supported API groups, @@ -183,33 +189,7 @@ func (d *DiscoveryClient) ServerResourcesForGroupVersion(groupVersion string) (r // serverResources returns the supported resources for all groups and versions. func (d *DiscoveryClient) serverResources() ([]*metav1.APIResourceList, error) { - apiGroups, err := d.ServerGroups() - if err != nil { - return nil, err - } - - result := []*metav1.APIResourceList{} - failedGroups := make(map[schema.GroupVersion]error) - - for _, apiGroup := range apiGroups.Groups { - for _, version := range apiGroup.Versions { - gv := schema.GroupVersion{Group: apiGroup.Name, Version: version.Version} - resources, err := d.ServerResourcesForGroupVersion(version.GroupVersion) - if err != nil { - // TODO: maybe restrict this to NotFound errors - failedGroups[gv] = err - continue - } - - result = append(result, resources) - } - } - - if len(failedGroups) == 0 { - return result, nil - } - - return result, &ErrGroupDiscoveryFailed{Groups: failedGroups} + return ServerResources(d) } // ServerResources returns the supported resources for all groups and versions. @@ -242,34 +222,65 @@ func IsGroupDiscoveryFailedError(err error) bool { // serverPreferredResources returns the supported resources with the version preferred by the server. func (d *DiscoveryClient) serverPreferredResources() ([]*metav1.APIResourceList, error) { + return ServerPreferredResources(d) +} + +// ServerResources uses the provided discovery interface to look up supported resources for all groups and versions. +func ServerResources(d DiscoveryInterface) ([]*metav1.APIResourceList, error) { + apiGroups, err := d.ServerGroups() + if err != nil { + return nil, err + } + + groupVersionResources, failedGroups := fetchGroupVersionResources(d, apiGroups) + + // order results by group/version discovery order + result := []*metav1.APIResourceList{} + for _, apiGroup := range apiGroups.Groups { + for _, version := range apiGroup.Versions { + gv := schema.GroupVersion{Group: apiGroup.Name, Version: version.Version} + if resources, ok := groupVersionResources[gv]; ok { + result = append(result, resources) + } + } + } + + if len(failedGroups) == 0 { + return result, nil + } + + return result, &ErrGroupDiscoveryFailed{Groups: failedGroups} +} + +// ServerPreferredResources uses the provided discovery interface to look up preferred resources +func ServerPreferredResources(d DiscoveryInterface) ([]*metav1.APIResourceList, error) { serverGroupList, err := d.ServerGroups() if err != nil { return nil, err } - result := []*metav1.APIResourceList{} - failedGroups := make(map[schema.GroupVersion]error) + groupVersionResources, failedGroups := fetchGroupVersionResources(d, serverGroupList) + result := []*metav1.APIResourceList{} grVersions := map[schema.GroupResource]string{} // selected version of a GroupResource - grApiResources := map[schema.GroupResource]*metav1.APIResource{} // selected APIResource for a GroupResource - gvApiResourceLists := map[schema.GroupVersion]*metav1.APIResourceList{} // blueprint for a APIResourceList for later grouping + grAPIResources := map[schema.GroupResource]*metav1.APIResource{} // selected APIResource for a GroupResource + gvAPIResourceLists := map[schema.GroupVersion]*metav1.APIResourceList{} // blueprint for a APIResourceList for later grouping for _, apiGroup := range serverGroupList.Groups { for _, version := range apiGroup.Versions { groupVersion := schema.GroupVersion{Group: apiGroup.Name, Version: version.Version} - apiResourceList, err := d.ServerResourcesForGroupVersion(version.GroupVersion) - if err != nil { - // TODO: maybe restrict this to NotFound errors - failedGroups[groupVersion] = err + + apiResourceList, ok := groupVersionResources[groupVersion] + if !ok { continue } // create empty list which is filled later in another loop - emptyApiResourceList := metav1.APIResourceList{ + emptyAPIResourceList := metav1.APIResourceList{ GroupVersion: version.GroupVersion, } - gvApiResourceLists[groupVersion] = &emptyApiResourceList - result = append(result, &emptyApiResourceList) + gvAPIResourceLists[groupVersion] = &emptyAPIResourceList + result = append(result, &emptyAPIResourceList) for i := range apiResourceList.APIResources { apiResource := &apiResourceList.APIResources[i] @@ -277,21 +288,21 @@ func (d *DiscoveryClient) serverPreferredResources() ([]*metav1.APIResourceList, continue } gv := schema.GroupResource{Group: apiGroup.Name, Resource: apiResource.Name} - if _, ok := grApiResources[gv]; ok && version.Version != apiGroup.PreferredVersion.Version { + if _, ok := grAPIResources[gv]; ok && version.Version != apiGroup.PreferredVersion.Version { // only override with preferred version continue } grVersions[gv] = version.Version - grApiResources[gv] = apiResource + grAPIResources[gv] = apiResource } } } // group selected APIResources according to GroupVersion into APIResourceLists - for groupResource, apiResource := range grApiResources { + for groupResource, apiResource := range grAPIResources { version := grVersions[groupResource] groupVersion := schema.GroupVersion{Group: groupResource.Group, Version: version} - apiResourceList := gvApiResourceLists[groupVersion] + apiResourceList := gvAPIResourceLists[groupVersion] apiResourceList.APIResources = append(apiResourceList.APIResources, *apiResource) } @@ -302,6 +313,41 @@ func (d *DiscoveryClient) serverPreferredResources() ([]*metav1.APIResourceList, return result, &ErrGroupDiscoveryFailed{Groups: failedGroups} } +// fetchServerResourcesForGroupVersions uses the discovery client to fetch the resources for the specified groups in parallel +func fetchGroupVersionResources(d DiscoveryInterface, apiGroups *metav1.APIGroupList) (map[schema.GroupVersion]*metav1.APIResourceList, map[schema.GroupVersion]error) { + groupVersionResources := make(map[schema.GroupVersion]*metav1.APIResourceList) + failedGroups := make(map[schema.GroupVersion]error) + + wg := &sync.WaitGroup{} + resultLock := &sync.Mutex{} + for _, apiGroup := range apiGroups.Groups { + for _, version := range apiGroup.Versions { + groupVersion := schema.GroupVersion{Group: apiGroup.Name, Version: version.Version} + wg.Add(1) + go func() { + defer wg.Done() + defer utilruntime.HandleCrash() + + apiResourceList, err := d.ServerResourcesForGroupVersion(groupVersion.String()) + + // lock to record results + resultLock.Lock() + defer resultLock.Unlock() + + if err != nil { + // TODO: maybe restrict this to NotFound errors + failedGroups[groupVersion] = err + } else { + groupVersionResources[groupVersion] = apiResourceList + } + }() + } + } + wg.Wait() + + return groupVersionResources, failedGroups +} + // ServerPreferredResources returns the supported resources with the version preferred by the // server. func (d *DiscoveryClient) ServerPreferredResources() ([]*metav1.APIResourceList, error) { @@ -311,7 +357,12 @@ func (d *DiscoveryClient) ServerPreferredResources() ([]*metav1.APIResourceList, // ServerPreferredNamespacedResources returns the supported namespaced resources with the // version preferred by the server. func (d *DiscoveryClient) ServerPreferredNamespacedResources() ([]*metav1.APIResourceList, error) { - all, err := d.ServerPreferredResources() + return ServerPreferredNamespacedResources(d) +} + +// ServerPreferredNamespacedResources uses the provided discovery interface to look up preferred namespaced resources +func ServerPreferredNamespacedResources(d DiscoveryInterface) ([]*metav1.APIResourceList, error) { + all, err := ServerPreferredResources(d) return FilteredBy(ResourcePredicateFunc(func(groupVersion string, r *metav1.APIResource) bool { return r.Namespaced }), all), err @@ -335,7 +386,7 @@ func (d *DiscoveryClient) ServerVersion() (*version.Info, error) { func (d *DiscoveryClient) OpenAPISchema() (*openapi_v2.Document, error) { data, err := d.restClient.Get().AbsPath("/openapi/v2").SetHeader("Accept", mimePb).Do().Raw() if err != nil { - if errors.IsForbidden(err) || errors.IsNotFound(err) { + if errors.IsForbidden(err) || errors.IsNotFound(err) || errors.IsNotAcceptable(err) { // single endpoint not found/registered in old server, try to fetch old endpoint // TODO(roycaihw): remove this in 1.11 data, err = d.restClient.Get().AbsPath("/swagger-2.0.0.pb-v1").Do().Raw() @@ -373,6 +424,9 @@ func withRetries(maxRetries int, f func() ([]*metav1.APIResourceList, error)) ([ func setDiscoveryDefaults(config *restclient.Config) error { config.APIPath = "" config.GroupVersion = nil + if config.Timeout == 0 { + config.Timeout = defaultTimeout + } codec := runtime.NoopEncoder{Decoder: scheme.Codecs.UniversalDecoder()} config.NegotiatedSerializer = serializer.NegotiatedSerializerWrapper(runtime.SerializerInfo{Serializer: codec}) if len(config.UserAgent) == 0 { @@ -410,9 +464,9 @@ func NewDiscoveryClient(c restclient.Interface) *DiscoveryClient { // RESTClient returns a RESTClient that is used to communicate // with API server by this client implementation. -func (c *DiscoveryClient) RESTClient() restclient.Interface { - if c == nil { +func (d *DiscoveryClient) RESTClient() restclient.Interface { + if d == nil { return nil } - return c.restClient + return d.restClient } diff --git a/vendor/k8s.io/client-go/discovery/discovery_client_test.go b/vendor/k8s.io/client-go/discovery/discovery_client_test.go index ad855139a..10e494322 100644 --- a/vendor/k8s.io/client-go/discovery/discovery_client_test.go +++ b/vendor/k8s.io/client-go/discovery/discovery_client_test.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package discovery_test +package discovery import ( "encoding/json" @@ -27,12 +27,13 @@ import ( "github.com/gogo/protobuf/proto" "github.com/googleapis/gnostic/OpenAPIv2" + "github.com/stretchr/testify/assert" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/diff" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/version" - . "k8s.io/client-go/discovery" restclient "k8s.io/client-go/rest" ) @@ -130,6 +131,12 @@ func TestGetServerGroupsWithBrokenServer(t *testing.T) { } } +func TestTimeoutIsSet(t *testing.T) { + cfg := &restclient.Config{} + setDiscoveryDefaults(cfg) + assert.Equal(t, defaultTimeout, cfg.Timeout) +} + func TestGetServerResourcesWithV1Server(t *testing.T) { server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { var obj interface{} @@ -183,6 +190,14 @@ func TestGetServerResources(t *testing.T) { {Name: "jobs", Namespaced: true, Kind: "Job"}, }, } + beta2 := metav1.APIResourceList{ + GroupVersion: "extensions/v1beta2", + APIResources: []metav1.APIResource{ + {Name: "deployments", Namespaced: true, Kind: "Deployment"}, + {Name: "ingresses", Namespaced: true, Kind: "Ingress"}, + {Name: "jobs", Namespaced: true, Kind: "Job"}, + }, + } tests := []struct { resourcesList *metav1.APIResourceList path string @@ -215,6 +230,8 @@ func TestGetServerResources(t *testing.T) { list = &stable case "/apis/extensions/v1beta1": list = &beta + case "/apis/extensions/v1beta2": + list = &beta2 case "/api": list = &metav1.APIVersions{ Versions: []string{ @@ -225,8 +242,10 @@ func TestGetServerResources(t *testing.T) { list = &metav1.APIGroupList{ Groups: []metav1.APIGroup{ { + Name: "extensions", Versions: []metav1.GroupVersionForDiscovery{ - {GroupVersion: "extensions/v1beta1"}, + {GroupVersion: "extensions/v1beta1", Version: "v1beta1"}, + {GroupVersion: "extensions/v1beta2", Version: "v1beta2"}, }, }, }, @@ -268,11 +287,10 @@ func TestGetServerResources(t *testing.T) { if err != nil { t.Errorf("unexpected error: %v", err) } - serverGroupVersions := sets.NewString(groupVersions(serverResources)...) - for _, api := range []string{"v1", "extensions/v1beta1"} { - if !serverGroupVersions.Has(api) { - t.Errorf("missing expected api %q in %v", api, serverResources) - } + serverGroupVersions := groupVersions(serverResources) + expectedGroupVersions := []string{"v1", "extensions/v1beta1", "extensions/v1beta2"} + if !reflect.DeepEqual(expectedGroupVersions, serverGroupVersions) { + t.Errorf("unexpected group versions: %v", diff.ObjectReflectDiff(expectedGroupVersions, serverGroupVersions)) } } @@ -326,12 +344,12 @@ var returnedOpenAPI = openapi_v2.Document{ }, } -func openapiSchemaDeprecatedFakeServer() (*httptest.Server, error) { +func openapiSchemaDeprecatedFakeServer(status int) (*httptest.Server, error) { var sErr error server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { - // old server returns 403 on new endpoint request if req.URL.Path == "/openapi/v2" { - w.WriteHeader(http.StatusForbidden) + // write the error status for the new endpoint request + w.WriteHeader(status) return } if req.URL.Path != "/swagger-2.0.0.pb-v1" { @@ -398,8 +416,42 @@ func TestGetOpenAPISchema(t *testing.T) { } } -func TestGetOpenAPISchemaFallback(t *testing.T) { - server, err := openapiSchemaDeprecatedFakeServer() +func TestGetOpenAPISchemaForbiddenFallback(t *testing.T) { + server, err := openapiSchemaDeprecatedFakeServer(http.StatusForbidden) + if err != nil { + t.Errorf("unexpected error starting fake server: %v", err) + } + defer server.Close() + + client := NewDiscoveryClientForConfigOrDie(&restclient.Config{Host: server.URL}) + got, err := client.OpenAPISchema() + if err != nil { + t.Fatalf("unexpected error getting openapi: %v", err) + } + if e, a := returnedOpenAPI, *got; !reflect.DeepEqual(e, a) { + t.Errorf("expected %v, got %v", e, a) + } +} + +func TestGetOpenAPISchemaNotFoundFallback(t *testing.T) { + server, err := openapiSchemaDeprecatedFakeServer(http.StatusNotFound) + if err != nil { + t.Errorf("unexpected error starting fake server: %v", err) + } + defer server.Close() + + client := NewDiscoveryClientForConfigOrDie(&restclient.Config{Host: server.URL}) + got, err := client.OpenAPISchema() + if err != nil { + t.Fatalf("unexpected error getting openapi: %v", err) + } + if e, a := returnedOpenAPI, *got; !reflect.DeepEqual(e, a) { + t.Errorf("expected %v, got %v", e, a) + } +} + +func TestGetOpenAPISchemaNotAcceptableFallback(t *testing.T) { + server, err := openapiSchemaDeprecatedFakeServer(http.StatusNotAcceptable) if err != nil { t.Errorf("unexpected error starting fake server: %v", err) } @@ -584,7 +636,7 @@ func TestServerPreferredResourcesRetries(t *testing.T) { { Name: "extensions", Versions: []metav1.GroupVersionForDiscovery{ - {GroupVersion: "extensions/v1beta1"}, + {GroupVersion: "extensions/v1beta1", Version: "v1beta1"}, }, PreferredVersion: metav1.GroupVersionForDiscovery{ GroupVersion: "extensions/v1beta1", diff --git a/vendor/k8s.io/client-go/discovery/doc.go b/vendor/k8s.io/client-go/discovery/doc.go new file mode 100644 index 000000000..76495588e --- /dev/null +++ b/vendor/k8s.io/client-go/discovery/doc.go @@ -0,0 +1,19 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Package discovery provides ways to discover server-supported +// API groups, versions and resources. +package discovery diff --git a/vendor/k8s.io/client-go/discovery/fake/BUILD b/vendor/k8s.io/client-go/discovery/fake/BUILD deleted file mode 100644 index 5b50832a8..000000000 --- a/vendor/k8s.io/client-go/discovery/fake/BUILD +++ /dev/null @@ -1,45 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_library( - name = "go_default_library", - srcs = ["discovery.go"], - importpath = "k8s.io/client-go/discovery/fake", - deps = [ - "//vendor/github.com/googleapis/gnostic/OpenAPIv2:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/version:go_default_library", - "//vendor/k8s.io/client-go/pkg/version:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/testing:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) - -go_test( - name = "go_default_xtest", - srcs = ["discovery_test.go"], - deps = [ - "//vendor/k8s.io/apimachinery/pkg/version:go_default_library", - "//vendor/k8s.io/client-go/discovery/fake:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/fake:go_default_library", - ], -) diff --git a/vendor/k8s.io/client-go/discovery/fake/discovery.go b/vendor/k8s.io/client-go/discovery/fake/discovery.go index 984a0ba1e..9565fa46c 100644 --- a/vendor/k8s.io/client-go/discovery/fake/discovery.go +++ b/vendor/k8s.io/client-go/discovery/fake/discovery.go @@ -36,6 +36,8 @@ type FakeDiscovery struct { FakedServerVersion *version.Info } +// ServerResourcesForGroupVersion returns the supported resources for a group +// and version. func (c *FakeDiscovery) ServerResourcesForGroupVersion(groupVersion string) (*metav1.APIResourceList, error) { action := testing.ActionImpl{ Verb: "get", @@ -50,6 +52,7 @@ func (c *FakeDiscovery) ServerResourcesForGroupVersion(groupVersion string) (*me return nil, fmt.Errorf("GroupVersion %q not found", groupVersion) } +// ServerResources returns the supported resources for all groups and versions. func (c *FakeDiscovery) ServerResources() ([]*metav1.APIResourceList, error) { action := testing.ActionImpl{ Verb: "get", @@ -59,14 +62,20 @@ func (c *FakeDiscovery) ServerResources() ([]*metav1.APIResourceList, error) { return c.Resources, nil } +// ServerPreferredResources returns the supported resources with the version +// preferred by the server. func (c *FakeDiscovery) ServerPreferredResources() ([]*metav1.APIResourceList, error) { return nil, nil } +// ServerPreferredNamespacedResources returns the supported namespaced resources +// with the version preferred by the server. func (c *FakeDiscovery) ServerPreferredNamespacedResources() ([]*metav1.APIResourceList, error) { return nil, nil } +// ServerGroups returns the supported groups, with information like supported +// versions and the preferred version. func (c *FakeDiscovery) ServerGroups() (*metav1.APIGroupList, error) { action := testing.ActionImpl{ Verb: "get", @@ -108,6 +117,7 @@ func (c *FakeDiscovery) ServerGroups() (*metav1.APIGroupList, error) { } +// ServerVersion retrieves and parses the server's version. func (c *FakeDiscovery) ServerVersion() (*version.Info, error) { action := testing.ActionImpl{} action.Verb = "get" @@ -122,10 +132,13 @@ func (c *FakeDiscovery) ServerVersion() (*version.Info, error) { return &versionInfo, nil } +// OpenAPISchema retrieves and parses the swagger API schema the server supports. func (c *FakeDiscovery) OpenAPISchema() (*openapi_v2.Document, error) { return &openapi_v2.Document{}, nil } +// RESTClient returns a RESTClient that is used to communicate with API server +// by this client implementation. func (c *FakeDiscovery) RESTClient() restclient.Interface { return nil } diff --git a/vendor/k8s.io/client-go/discovery/helper.go b/vendor/k8s.io/client-go/discovery/helper.go index 353d34b3c..3bfe514e8 100644 --- a/vendor/k8s.io/client-go/discovery/helper.go +++ b/vendor/k8s.io/client-go/discovery/helper.go @@ -31,11 +31,11 @@ import ( func MatchesServerVersion(clientVersion apimachineryversion.Info, client DiscoveryInterface) error { sVer, err := client.ServerVersion() if err != nil { - return fmt.Errorf("couldn't read version from server: %v\n", err) + return fmt.Errorf("couldn't read version from server: %v", err) } // GitVersion includes GitCommit and GitTreeState, but best to be safe? if clientVersion.GitVersion != sVer.GitVersion || clientVersion.GitCommit != sVer.GitCommit || clientVersion.GitTreeState != sVer.GitTreeState { - return fmt.Errorf("server version (%#v) differs from client version (%#v)!\n", sVer, clientVersion) + return fmt.Errorf("server version (%#v) differs from client version (%#v)", sVer, clientVersion) } return nil @@ -101,12 +101,15 @@ func FilteredBy(pred ResourcePredicate, rls []*metav1.APIResourceList) []*metav1 return result } +// ResourcePredicate has a method to check if a resource matches a given condition. type ResourcePredicate interface { Match(groupVersion string, r *metav1.APIResource) bool } +// ResourcePredicateFunc returns true if it matches a resource based on a custom condition. type ResourcePredicateFunc func(groupVersion string, r *metav1.APIResource) bool +// Match is a wrapper around ResourcePredicateFunc. func (fn ResourcePredicateFunc) Match(groupVersion string, r *metav1.APIResource) bool { return fn(groupVersion, r) } @@ -116,6 +119,7 @@ type SupportsAllVerbs struct { Verbs []string } +// Match checks if a resource contains all the given verbs. func (p SupportsAllVerbs) Match(groupVersion string, r *metav1.APIResource) bool { return sets.NewString([]string(r.Verbs)...).HasAll(p.Verbs...) } diff --git a/vendor/k8s.io/client-go/discovery/round_tripper.go b/vendor/k8s.io/client-go/discovery/round_tripper.go new file mode 100644 index 000000000..4e2bc24e7 --- /dev/null +++ b/vendor/k8s.io/client-go/discovery/round_tripper.go @@ -0,0 +1,62 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package discovery + +import ( + "net/http" + "path/filepath" + + "github.com/gregjones/httpcache" + "github.com/gregjones/httpcache/diskcache" + "github.com/peterbourgon/diskv" + "k8s.io/klog" +) + +type cacheRoundTripper struct { + rt *httpcache.Transport +} + +// newCacheRoundTripper creates a roundtripper that reads the ETag on +// response headers and send the If-None-Match header on subsequent +// corresponding requests. +func newCacheRoundTripper(cacheDir string, rt http.RoundTripper) http.RoundTripper { + d := diskv.New(diskv.Options{ + BasePath: cacheDir, + TempDir: filepath.Join(cacheDir, ".diskv-temp"), + }) + t := httpcache.NewTransport(diskcache.NewWithDiskv(d)) + t.Transport = rt + + return &cacheRoundTripper{rt: t} +} + +func (rt *cacheRoundTripper) RoundTrip(req *http.Request) (*http.Response, error) { + return rt.rt.RoundTrip(req) +} + +func (rt *cacheRoundTripper) CancelRequest(req *http.Request) { + type canceler interface { + CancelRequest(*http.Request) + } + if cr, ok := rt.rt.Transport.(canceler); ok { + cr.CancelRequest(req) + } else { + klog.Errorf("CancelRequest not implemented by %T", rt.rt.Transport) + } +} + +func (rt *cacheRoundTripper) WrappedRoundTripper() http.RoundTripper { return rt.rt.Transport } diff --git a/vendor/k8s.io/client-go/discovery/round_tripper_test.go b/vendor/k8s.io/client-go/discovery/round_tripper_test.go new file mode 100644 index 000000000..b15e2e771 --- /dev/null +++ b/vendor/k8s.io/client-go/discovery/round_tripper_test.go @@ -0,0 +1,95 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package discovery + +import ( + "bytes" + "io/ioutil" + "net/http" + "net/url" + "os" + "testing" +) + +// copied from k8s.io/client-go/transport/round_trippers_test.go +type testRoundTripper struct { + Request *http.Request + Response *http.Response + Err error +} + +func (rt *testRoundTripper) RoundTrip(req *http.Request) (*http.Response, error) { + rt.Request = req + return rt.Response, rt.Err +} + +func TestCacheRoundTripper(t *testing.T) { + rt := &testRoundTripper{} + cacheDir, err := ioutil.TempDir("", "cache-rt") + defer os.RemoveAll(cacheDir) + if err != nil { + t.Fatal(err) + } + cache := newCacheRoundTripper(cacheDir, rt) + + // First call, caches the response + req := &http.Request{ + Method: http.MethodGet, + URL: &url.URL{Host: "localhost"}, + } + rt.Response = &http.Response{ + Header: http.Header{"ETag": []string{`"123456"`}}, + Body: ioutil.NopCloser(bytes.NewReader([]byte("Content"))), + StatusCode: http.StatusOK, + } + resp, err := cache.RoundTrip(req) + if err != nil { + t.Fatal(err) + } + content, err := ioutil.ReadAll(resp.Body) + if err != nil { + t.Fatal(err) + } + if string(content) != "Content" { + t.Errorf(`Expected Body to be "Content", got %q`, string(content)) + } + + // Second call, returns cached response + req = &http.Request{ + Method: http.MethodGet, + URL: &url.URL{Host: "localhost"}, + } + rt.Response = &http.Response{ + StatusCode: http.StatusNotModified, + Body: ioutil.NopCloser(bytes.NewReader([]byte("Other Content"))), + } + + resp, err = cache.RoundTrip(req) + if err != nil { + t.Fatal(err) + } + + // Read body and make sure we have the initial content + content, err = ioutil.ReadAll(resp.Body) + resp.Body.Close() + if err != nil { + t.Fatal(err) + } + if string(content) != "Content" { + t.Errorf("Invalid content read from cache %q", string(content)) + } +} diff --git a/vendor/k8s.io/client-go/discovery/unstructured.go b/vendor/k8s.io/client-go/discovery/unstructured.go deleted file mode 100644 index fa7f2ec06..000000000 --- a/vendor/k8s.io/client-go/discovery/unstructured.go +++ /dev/null @@ -1,95 +0,0 @@ -/* -Copyright 2016 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package discovery - -import ( - "reflect" - - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -// UnstructuredObjectTyper provides a runtime.ObjectTyper implementation for -// runtime.Unstructured object based on discovery information. -type UnstructuredObjectTyper struct { - registered map[schema.GroupVersionKind]bool - typers []runtime.ObjectTyper -} - -// NewUnstructuredObjectTyper returns a runtime.ObjectTyper for -// unstructured objects based on discovery information. It accepts a list of fallback typers -// for handling objects that are not runtime.Unstructured. It does not delegate the Recognizes -// check, only ObjectKinds. -func NewUnstructuredObjectTyper(groupResources []*APIGroupResources, typers ...runtime.ObjectTyper) *UnstructuredObjectTyper { - dot := &UnstructuredObjectTyper{ - registered: make(map[schema.GroupVersionKind]bool), - typers: typers, - } - for _, group := range groupResources { - for _, discoveryVersion := range group.Group.Versions { - resources, ok := group.VersionedResources[discoveryVersion.Version] - if !ok { - continue - } - - gv := schema.GroupVersion{Group: group.Group.Name, Version: discoveryVersion.Version} - for _, resource := range resources { - dot.registered[gv.WithKind(resource.Kind)] = true - } - } - } - return dot -} - -// ObjectKinds returns a slice of one element with the group,version,kind of the -// provided object, or an error if the object is not runtime.Unstructured or -// has no group,version,kind information. unversionedType will always be false -// because runtime.Unstructured object should always have group,version,kind -// information set. -func (d *UnstructuredObjectTyper) ObjectKinds(obj runtime.Object) (gvks []schema.GroupVersionKind, unversionedType bool, err error) { - if _, ok := obj.(runtime.Unstructured); ok { - gvk := obj.GetObjectKind().GroupVersionKind() - if len(gvk.Kind) == 0 { - return nil, false, runtime.NewMissingKindErr("object has no kind field ") - } - if len(gvk.Version) == 0 { - return nil, false, runtime.NewMissingVersionErr("object has no apiVersion field") - } - return []schema.GroupVersionKind{gvk}, false, nil - } - var lastErr error - for _, typer := range d.typers { - gvks, unversioned, err := typer.ObjectKinds(obj) - if err != nil { - lastErr = err - continue - } - return gvks, unversioned, nil - } - if lastErr == nil { - lastErr = runtime.NewNotRegisteredErrForType(reflect.TypeOf(obj)) - } - return nil, false, lastErr -} - -// Recognizes returns true if the provided group,version,kind was in the -// discovery information. -func (d *UnstructuredObjectTyper) Recognizes(gvk schema.GroupVersionKind) bool { - return d.registered[gvk] -} - -var _ runtime.ObjectTyper = &UnstructuredObjectTyper{} diff --git a/vendor/k8s.io/client-go/dynamic/BUILD b/vendor/k8s.io/client-go/dynamic/BUILD deleted file mode 100644 index 3642f6a0f..000000000 --- a/vendor/k8s.io/client-go/dynamic/BUILD +++ /dev/null @@ -1,68 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_test( - name = "go_default_test", - srcs = [ - "client_test.go", - "dynamic_util_test.go", - ], - embed = [":go_default_library"], - deps = [ - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer/streaming:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/rest/watch:go_default_library", - ], -) - -go_library( - name = "go_default_library", - srcs = [ - "client.go", - "client_pool.go", - "dynamic_util.go", - ], - importpath = "k8s.io/client-go/dynamic", - deps = [ - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion/queryparams:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/util/flowcontrol:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/dynamic/fake:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/dynamic/client.go b/vendor/k8s.io/client-go/dynamic/client.go deleted file mode 100644 index 833e43537..000000000 --- a/vendor/k8s.io/client-go/dynamic/client.go +++ /dev/null @@ -1,379 +0,0 @@ -/* -Copyright 2016 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Package dynamic provides a client interface to arbitrary Kubernetes -// APIs that exposes common high level operations and exposes common -// metadata. -package dynamic - -import ( - "encoding/json" - "errors" - "io" - "net/url" - "strings" - - "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - "k8s.io/apimachinery/pkg/conversion/queryparams" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/runtime/serializer" - "k8s.io/apimachinery/pkg/types" - "k8s.io/apimachinery/pkg/watch" - "k8s.io/client-go/kubernetes/scheme" - restclient "k8s.io/client-go/rest" - "k8s.io/client-go/util/flowcontrol" -) - -// Interface is a Kubernetes client that allows you to access metadata -// and manipulate metadata of a Kubernetes API group. -type Interface interface { - // GetRateLimiter returns the rate limiter for this client. - GetRateLimiter() flowcontrol.RateLimiter - // Resource returns an API interface to the specified resource for this client's - // group and version. If resource is not a namespaced resource, then namespace - // is ignored. The ResourceInterface inherits the parameter codec of this client. - Resource(resource *metav1.APIResource, namespace string) ResourceInterface - // ParameterCodec returns a client with the provided parameter codec. - ParameterCodec(parameterCodec runtime.ParameterCodec) Interface -} - -// ResourceInterface is an API interface to a specific resource under a -// dynamic client. -type ResourceInterface interface { - // List returns a list of objects for this resource. - List(opts metav1.ListOptions) (runtime.Object, error) - // Get gets the resource with the specified name. - Get(name string, opts metav1.GetOptions) (*unstructured.Unstructured, error) - // Delete deletes the resource with the specified name. - Delete(name string, opts *metav1.DeleteOptions) error - // DeleteCollection deletes a collection of objects. - DeleteCollection(deleteOptions *metav1.DeleteOptions, listOptions metav1.ListOptions) error - // Create creates the provided resource. - Create(obj *unstructured.Unstructured) (*unstructured.Unstructured, error) - // Update updates the provided resource. - Update(obj *unstructured.Unstructured) (*unstructured.Unstructured, error) - // Watch returns a watch.Interface that watches the resource. - Watch(opts metav1.ListOptions) (watch.Interface, error) - // Patch patches the provided resource. - Patch(name string, pt types.PatchType, data []byte) (*unstructured.Unstructured, error) -} - -// Client is a Kubernetes client that allows you to access metadata -// and manipulate metadata of a Kubernetes API group, and implements Interface. -type Client struct { - cl *restclient.RESTClient - parameterCodec runtime.ParameterCodec -} - -// NewClient returns a new client based on the passed in config. The -// codec is ignored, as the dynamic client uses it's own codec. -func NewClient(conf *restclient.Config) (*Client, error) { - // avoid changing the original config - confCopy := *conf - conf = &confCopy - - contentConfig := ContentConfig() - contentConfig.GroupVersion = conf.GroupVersion - if conf.NegotiatedSerializer != nil { - contentConfig.NegotiatedSerializer = conf.NegotiatedSerializer - } - conf.ContentConfig = contentConfig - - if conf.APIPath == "" { - conf.APIPath = "/api" - } - - if len(conf.UserAgent) == 0 { - conf.UserAgent = restclient.DefaultKubernetesUserAgent() - } - - cl, err := restclient.RESTClientFor(conf) - if err != nil { - return nil, err - } - - return &Client{cl: cl}, nil -} - -// GetRateLimiter returns rate limier. -func (c *Client) GetRateLimiter() flowcontrol.RateLimiter { - return c.cl.GetRateLimiter() -} - -// Resource returns an API interface to the specified resource for this client's -// group and version. If resource is not a namespaced resource, then namespace -// is ignored. The ResourceInterface inherits the parameter codec of c. -func (c *Client) Resource(resource *metav1.APIResource, namespace string) ResourceInterface { - return &ResourceClient{ - cl: c.cl, - resource: resource, - ns: namespace, - parameterCodec: c.parameterCodec, - } -} - -// ParameterCodec returns a client with the provided parameter codec. -func (c *Client) ParameterCodec(parameterCodec runtime.ParameterCodec) Interface { - return &Client{ - cl: c.cl, - parameterCodec: parameterCodec, - } -} - -// ResourceClient is an API interface to a specific resource under a -// dynamic client, and implements ResourceInterface. -type ResourceClient struct { - cl *restclient.RESTClient - resource *metav1.APIResource - ns string - parameterCodec runtime.ParameterCodec -} - -func (rc *ResourceClient) parseResourceSubresourceName() (string, []string) { - var resourceName string - var subresourceName []string - if strings.Contains(rc.resource.Name, "/") { - resourceName = strings.Split(rc.resource.Name, "/")[0] - subresourceName = strings.Split(rc.resource.Name, "/")[1:] - } else { - resourceName = rc.resource.Name - } - - return resourceName, subresourceName -} - -// List returns a list of objects for this resource. -func (rc *ResourceClient) List(opts metav1.ListOptions) (runtime.Object, error) { - parameterEncoder := rc.parameterCodec - if parameterEncoder == nil { - parameterEncoder = defaultParameterEncoder - } - return rc.cl.Get(). - NamespaceIfScoped(rc.ns, rc.resource.Namespaced). - Resource(rc.resource.Name). - VersionedParams(&opts, parameterEncoder). - Do(). - Get() -} - -// Get gets the resource with the specified name. -func (rc *ResourceClient) Get(name string, opts metav1.GetOptions) (*unstructured.Unstructured, error) { - parameterEncoder := rc.parameterCodec - if parameterEncoder == nil { - parameterEncoder = defaultParameterEncoder - } - result := new(unstructured.Unstructured) - resourceName, subresourceName := rc.parseResourceSubresourceName() - err := rc.cl.Get(). - NamespaceIfScoped(rc.ns, rc.resource.Namespaced). - Resource(resourceName). - SubResource(subresourceName...). - VersionedParams(&opts, parameterEncoder). - Name(name). - Do(). - Into(result) - return result, err -} - -// Delete deletes the resource with the specified name. -func (rc *ResourceClient) Delete(name string, opts *metav1.DeleteOptions) error { - return rc.cl.Delete(). - NamespaceIfScoped(rc.ns, rc.resource.Namespaced). - Resource(rc.resource.Name). - Name(name). - Body(opts). - Do(). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (rc *ResourceClient) DeleteCollection(deleteOptions *metav1.DeleteOptions, listOptions metav1.ListOptions) error { - parameterEncoder := rc.parameterCodec - if parameterEncoder == nil { - parameterEncoder = defaultParameterEncoder - } - return rc.cl.Delete(). - NamespaceIfScoped(rc.ns, rc.resource.Namespaced). - Resource(rc.resource.Name). - VersionedParams(&listOptions, parameterEncoder). - Body(deleteOptions). - Do(). - Error() -} - -// Create creates the provided resource. -func (rc *ResourceClient) Create(obj *unstructured.Unstructured) (*unstructured.Unstructured, error) { - result := new(unstructured.Unstructured) - resourceName, subresourceName := rc.parseResourceSubresourceName() - req := rc.cl.Post(). - NamespaceIfScoped(rc.ns, rc.resource.Namespaced). - Resource(resourceName). - Body(obj) - if len(subresourceName) > 0 { - // If the provided resource is a subresource, the POST request should contain - // object name. Examples of subresources that support Create operation: - // core/v1/pods/{name}/binding - // core/v1/pods/{name}/eviction - // extensions/v1beta1/deployments/{name}/rollback - // apps/v1beta1/deployments/{name}/rollback - // NOTE: Currently our system assumes every subresource object has the same - // name as the parent resource object. E.g. a pods/binding object having - // metadada.name "foo" means pod "foo" is being bound. We may need to - // change this if we break the assumption in the future. - req = req.SubResource(subresourceName...). - Name(obj.GetName()) - } - err := req.Do(). - Into(result) - return result, err -} - -// Update updates the provided resource. -func (rc *ResourceClient) Update(obj *unstructured.Unstructured) (*unstructured.Unstructured, error) { - result := new(unstructured.Unstructured) - if len(obj.GetName()) == 0 { - return result, errors.New("object missing name") - } - resourceName, subresourceName := rc.parseResourceSubresourceName() - err := rc.cl.Put(). - NamespaceIfScoped(rc.ns, rc.resource.Namespaced). - Resource(resourceName). - SubResource(subresourceName...). - // NOTE: Currently our system assumes every subresource object has the same - // name as the parent resource object. E.g. a pods/binding object having - // metadada.name "foo" means pod "foo" is being bound. We may need to - // change this if we break the assumption in the future. - Name(obj.GetName()). - Body(obj). - Do(). - Into(result) - return result, err -} - -// Watch returns a watch.Interface that watches the resource. -func (rc *ResourceClient) Watch(opts metav1.ListOptions) (watch.Interface, error) { - parameterEncoder := rc.parameterCodec - if parameterEncoder == nil { - parameterEncoder = defaultParameterEncoder - } - opts.Watch = true - return rc.cl.Get(). - NamespaceIfScoped(rc.ns, rc.resource.Namespaced). - Resource(rc.resource.Name). - VersionedParams(&opts, parameterEncoder). - Watch() -} - -// Patch applies the patch and returns the patched resource. -func (rc *ResourceClient) Patch(name string, pt types.PatchType, data []byte) (*unstructured.Unstructured, error) { - result := new(unstructured.Unstructured) - resourceName, subresourceName := rc.parseResourceSubresourceName() - err := rc.cl.Patch(pt). - NamespaceIfScoped(rc.ns, rc.resource.Namespaced). - Resource(resourceName). - SubResource(subresourceName...). - Name(name). - Body(data). - Do(). - Into(result) - return result, err -} - -// dynamicCodec is a codec that wraps the standard unstructured codec -// with special handling for Status objects. -type dynamicCodec struct{} - -func (dynamicCodec) Decode(data []byte, gvk *schema.GroupVersionKind, obj runtime.Object) (runtime.Object, *schema.GroupVersionKind, error) { - obj, gvk, err := unstructured.UnstructuredJSONScheme.Decode(data, gvk, obj) - if err != nil { - return nil, nil, err - } - - if _, ok := obj.(*metav1.Status); !ok && strings.ToLower(gvk.Kind) == "status" { - obj = &metav1.Status{} - err := json.Unmarshal(data, obj) - if err != nil { - return nil, nil, err - } - } - - return obj, gvk, nil -} - -func (dynamicCodec) Encode(obj runtime.Object, w io.Writer) error { - return unstructured.UnstructuredJSONScheme.Encode(obj, w) -} - -// ContentConfig returns a restclient.ContentConfig for dynamic types. -func ContentConfig() restclient.ContentConfig { - var jsonInfo runtime.SerializerInfo - // TODO: scheme.Codecs here should become "pkg/apis/server/scheme" which is the minimal core you need - // to talk to a kubernetes server - for _, info := range scheme.Codecs.SupportedMediaTypes() { - if info.MediaType == runtime.ContentTypeJSON { - jsonInfo = info - break - } - } - - jsonInfo.Serializer = dynamicCodec{} - jsonInfo.PrettySerializer = nil - return restclient.ContentConfig{ - AcceptContentTypes: runtime.ContentTypeJSON, - ContentType: runtime.ContentTypeJSON, - NegotiatedSerializer: serializer.NegotiatedSerializerWrapper(jsonInfo), - } -} - -// paramaterCodec is a codec converts an API object to query -// parameters without trying to convert to the target version. -type parameterCodec struct{} - -func (parameterCodec) EncodeParameters(obj runtime.Object, to schema.GroupVersion) (url.Values, error) { - return queryparams.Convert(obj) -} - -func (parameterCodec) DecodeParameters(parameters url.Values, from schema.GroupVersion, into runtime.Object) error { - return errors.New("DecodeParameters not implemented on dynamic parameterCodec") -} - -var defaultParameterEncoder runtime.ParameterCodec = parameterCodec{} - -type versionedParameterEncoderWithV1Fallback struct{} - -func (versionedParameterEncoderWithV1Fallback) EncodeParameters(obj runtime.Object, to schema.GroupVersion) (url.Values, error) { - ret, err := scheme.ParameterCodec.EncodeParameters(obj, to) - if err != nil && runtime.IsNotRegisteredError(err) { - // fallback to v1 - return scheme.ParameterCodec.EncodeParameters(obj, v1.SchemeGroupVersion) - } - return ret, err -} - -func (versionedParameterEncoderWithV1Fallback) DecodeParameters(parameters url.Values, from schema.GroupVersion, into runtime.Object) error { - return errors.New("DecodeParameters not implemented on versionedParameterEncoderWithV1Fallback") -} - -// VersionedParameterEncoderWithV1Fallback is useful for encoding query -// parameters for custom resources. It tries to convert object to the -// specified version before converting it to query parameters, and falls back to -// converting to v1 if the object is not registered in the specified version. -// For the record, currently API server always treats query parameters sent to a -// custom resource endpoint as v1. -var VersionedParameterEncoderWithV1Fallback runtime.ParameterCodec = versionedParameterEncoderWithV1Fallback{} diff --git a/vendor/k8s.io/client-go/dynamic/client_test.go b/vendor/k8s.io/client-go/dynamic/client_test.go index ffa550ed5..e74cb832a 100644 --- a/vendor/k8s.io/client-go/dynamic/client_test.go +++ b/vendor/k8s.io/client-go/dynamic/client_test.go @@ -58,11 +58,10 @@ func getObject(version, kind, name string) *unstructured.Unstructured { } } -func getClientServer(gv *schema.GroupVersion, h func(http.ResponseWriter, *http.Request)) (Interface, *httptest.Server, error) { +func getClientServer(h func(http.ResponseWriter, *http.Request)) (Interface, *httptest.Server, error) { srv := httptest.NewServer(http.HandlerFunc(h)) - cl, err := NewClient(&restclient.Config{ - Host: srv.URL, - ContentConfig: restclient.ContentConfig{GroupVersion: gv}, + cl, err := NewForConfig(&restclient.Config{ + Host: srv.URL, }) if err != nil { srv.Close() @@ -81,7 +80,7 @@ func TestList(t *testing.T) { }{ { name: "normal_list", - path: "/api/gtest/vtest/rtest", + path: "/apis/gtest/vtest/rtest", resp: getListJSON("vTest", "rTestList", getJSON("vTest", "rTest", "item1"), getJSON("vTest", "rTest", "item2")), @@ -99,7 +98,7 @@ func TestList(t *testing.T) { { name: "namespaced_list", namespace: "nstest", - path: "/api/gtest/vtest/namespaces/nstest/rtest", + path: "/apis/gtest/vtest/namespaces/nstest/rtest", resp: getListJSON("vTest", "rTestList", getJSON("vTest", "rTest", "item1"), getJSON("vTest", "rTest", "item2")), @@ -116,9 +115,8 @@ func TestList(t *testing.T) { }, } for _, tc := range tcs { - gv := &schema.GroupVersion{Group: "gtest", Version: "vtest"} - resource := &metav1.APIResource{Name: "rtest", Namespaced: len(tc.namespace) != 0} - cl, srv, err := getClientServer(gv, func(w http.ResponseWriter, r *http.Request) { + resource := schema.GroupVersionResource{Group: "gtest", Version: "vtest", Resource: "rtest"} + cl, srv, err := getClientServer(func(w http.ResponseWriter, r *http.Request) { if r.Method != "GET" { t.Errorf("List(%q) got HTTP method %s. wanted GET", tc.name, r.Method) } @@ -136,7 +134,7 @@ func TestList(t *testing.T) { } defer srv.Close() - got, err := cl.Resource(resource, tc.namespace).List(metav1.ListOptions{}) + got, err := cl.Resource(resource).Namespace(tc.namespace).List(metav1.ListOptions{}) if err != nil { t.Errorf("unexpected error when listing %q: %v", tc.name, err) continue @@ -150,17 +148,18 @@ func TestList(t *testing.T) { func TestGet(t *testing.T) { tcs := []struct { - resource string - namespace string - name string - path string - resp []byte - want *unstructured.Unstructured + resource string + subresource []string + namespace string + name string + path string + resp []byte + want *unstructured.Unstructured }{ { resource: "rtest", name: "normal_get", - path: "/api/gtest/vtest/rtest/normal_get", + path: "/apis/gtest/vtest/rtest/normal_get", resp: getJSON("vTest", "rTest", "normal_get"), want: getObject("vTest", "rTest", "normal_get"), }, @@ -168,30 +167,31 @@ func TestGet(t *testing.T) { resource: "rtest", namespace: "nstest", name: "namespaced_get", - path: "/api/gtest/vtest/namespaces/nstest/rtest/namespaced_get", + path: "/apis/gtest/vtest/namespaces/nstest/rtest/namespaced_get", resp: getJSON("vTest", "rTest", "namespaced_get"), want: getObject("vTest", "rTest", "namespaced_get"), }, { - resource: "rtest/srtest", - name: "normal_subresource_get", - path: "/api/gtest/vtest/rtest/normal_subresource_get/srtest", - resp: getJSON("vTest", "srTest", "normal_subresource_get"), - want: getObject("vTest", "srTest", "normal_subresource_get"), + resource: "rtest", + subresource: []string{"srtest"}, + name: "normal_subresource_get", + path: "/apis/gtest/vtest/rtest/normal_subresource_get/srtest", + resp: getJSON("vTest", "srTest", "normal_subresource_get"), + want: getObject("vTest", "srTest", "normal_subresource_get"), }, { - resource: "rtest/srtest", - namespace: "nstest", - name: "namespaced_subresource_get", - path: "/api/gtest/vtest/namespaces/nstest/rtest/namespaced_subresource_get/srtest", - resp: getJSON("vTest", "srTest", "namespaced_subresource_get"), - want: getObject("vTest", "srTest", "namespaced_subresource_get"), + resource: "rtest", + subresource: []string{"srtest"}, + namespace: "nstest", + name: "namespaced_subresource_get", + path: "/apis/gtest/vtest/namespaces/nstest/rtest/namespaced_subresource_get/srtest", + resp: getJSON("vTest", "srTest", "namespaced_subresource_get"), + want: getObject("vTest", "srTest", "namespaced_subresource_get"), }, } for _, tc := range tcs { - gv := &schema.GroupVersion{Group: "gtest", Version: "vtest"} - resource := &metav1.APIResource{Name: tc.resource, Namespaced: len(tc.namespace) != 0} - cl, srv, err := getClientServer(gv, func(w http.ResponseWriter, r *http.Request) { + resource := schema.GroupVersionResource{Group: "gtest", Version: "vtest", Resource: tc.resource} + cl, srv, err := getClientServer(func(w http.ResponseWriter, r *http.Request) { if r.Method != "GET" { t.Errorf("Get(%q) got HTTP method %s. wanted GET", tc.name, r.Method) } @@ -209,7 +209,7 @@ func TestGet(t *testing.T) { } defer srv.Close() - got, err := cl.Resource(resource, tc.namespace).Get(tc.name, metav1.GetOptions{}) + got, err := cl.Resource(resource).Namespace(tc.namespace).Get(tc.name, metav1.GetOptions{}, tc.subresource...) if err != nil { t.Errorf("unexpected error when getting %q: %v", tc.name, err) continue @@ -222,29 +222,50 @@ func TestGet(t *testing.T) { } func TestDelete(t *testing.T) { + background := metav1.DeletePropagationBackground + uid := types.UID("uid") + statusOK := &metav1.Status{ TypeMeta: metav1.TypeMeta{Kind: "Status"}, Status: metav1.StatusSuccess, } tcs := []struct { - namespace string - name string - path string + subresource []string + namespace string + name string + path string + deleteOptions *metav1.DeleteOptions }{ { name: "normal_delete", - path: "/api/gtest/vtest/rtest/normal_delete", + path: "/apis/gtest/vtest/rtest/normal_delete", }, { namespace: "nstest", name: "namespaced_delete", - path: "/api/gtest/vtest/namespaces/nstest/rtest/namespaced_delete", + path: "/apis/gtest/vtest/namespaces/nstest/rtest/namespaced_delete", + }, + { + subresource: []string{"srtest"}, + name: "normal_delete", + path: "/apis/gtest/vtest/rtest/normal_delete/srtest", + }, + { + subresource: []string{"srtest"}, + namespace: "nstest", + name: "namespaced_delete", + path: "/apis/gtest/vtest/namespaces/nstest/rtest/namespaced_delete/srtest", + }, + { + namespace: "nstest", + name: "namespaced_delete_with_options", + path: "/apis/gtest/vtest/namespaces/nstest/rtest/namespaced_delete_with_options", + deleteOptions: &metav1.DeleteOptions{Preconditions: &metav1.Preconditions{UID: &uid}, PropagationPolicy: &background}, }, } for _, tc := range tcs { - gv := &schema.GroupVersion{Group: "gtest", Version: "vtest"} - resource := &metav1.APIResource{Name: "rtest", Namespaced: len(tc.namespace) != 0} - cl, srv, err := getClientServer(gv, func(w http.ResponseWriter, r *http.Request) { + resource := schema.GroupVersionResource{Group: "gtest", Version: "vtest", Resource: "rtest"} + cl, srv, err := getClientServer(func(w http.ResponseWriter, r *http.Request) { if r.Method != "DELETE" { t.Errorf("Delete(%q) got HTTP method %s. wanted DELETE", tc.name, r.Method) } @@ -262,7 +283,7 @@ func TestDelete(t *testing.T) { } defer srv.Close() - err = cl.Resource(resource, tc.namespace).Delete(tc.name, nil) + err = cl.Resource(resource).Namespace(tc.namespace).Delete(tc.name, tc.deleteOptions, tc.subresource...) if err != nil { t.Errorf("unexpected error when deleting %q: %v", tc.name, err) continue @@ -282,18 +303,17 @@ func TestDeleteCollection(t *testing.T) { }{ { name: "normal_delete_collection", - path: "/api/gtest/vtest/rtest", + path: "/apis/gtest/vtest/rtest", }, { namespace: "nstest", name: "namespaced_delete_collection", - path: "/api/gtest/vtest/namespaces/nstest/rtest", + path: "/apis/gtest/vtest/namespaces/nstest/rtest", }, } for _, tc := range tcs { - gv := &schema.GroupVersion{Group: "gtest", Version: "vtest"} - resource := &metav1.APIResource{Name: "rtest", Namespaced: len(tc.namespace) != 0} - cl, srv, err := getClientServer(gv, func(w http.ResponseWriter, r *http.Request) { + resource := schema.GroupVersionResource{Group: "gtest", Version: "vtest", Resource: "rtest"} + cl, srv, err := getClientServer(func(w http.ResponseWriter, r *http.Request) { if r.Method != "DELETE" { t.Errorf("DeleteCollection(%q) got HTTP method %s. wanted DELETE", tc.name, r.Method) } @@ -311,7 +331,7 @@ func TestDeleteCollection(t *testing.T) { } defer srv.Close() - err = cl.Resource(resource, tc.namespace).DeleteCollection(nil, metav1.ListOptions{}) + err = cl.Resource(resource).Namespace(tc.namespace).DeleteCollection(nil, metav1.ListOptions{}) if err != nil { t.Errorf("unexpected error when deleting collection %q: %v", tc.name, err) continue @@ -321,43 +341,45 @@ func TestDeleteCollection(t *testing.T) { func TestCreate(t *testing.T) { tcs := []struct { - resource string - name string - namespace string - obj *unstructured.Unstructured - path string + resource string + subresource []string + name string + namespace string + obj *unstructured.Unstructured + path string }{ { resource: "rtest", name: "normal_create", - path: "/api/gtest/vtest/rtest", - obj: getObject("vTest", "rTest", "normal_create"), + path: "/apis/gtest/vtest/rtest", + obj: getObject("gtest/vTest", "rTest", "normal_create"), }, { resource: "rtest", name: "namespaced_create", namespace: "nstest", - path: "/api/gtest/vtest/namespaces/nstest/rtest", - obj: getObject("vTest", "rTest", "namespaced_create"), + path: "/apis/gtest/vtest/namespaces/nstest/rtest", + obj: getObject("gtest/vTest", "rTest", "namespaced_create"), }, { - resource: "rtest/srtest", - name: "normal_subresource_create", - path: "/api/gtest/vtest/rtest/normal_subresource_create/srtest", - obj: getObject("vTest", "srTest", "normal_subresource_create"), + resource: "rtest", + subresource: []string{"srtest"}, + name: "normal_subresource_create", + path: "/apis/gtest/vtest/rtest/normal_subresource_create/srtest", + obj: getObject("vTest", "srTest", "normal_subresource_create"), }, { - resource: "rtest/srtest", - name: "namespaced_subresource_create", - namespace: "nstest", - path: "/api/gtest/vtest/namespaces/nstest/rtest/namespaced_subresource_create/srtest", - obj: getObject("vTest", "srTest", "namespaced_subresource_create"), + resource: "rtest/", + subresource: []string{"srtest"}, + name: "namespaced_subresource_create", + namespace: "nstest", + path: "/apis/gtest/vtest/namespaces/nstest/rtest/namespaced_subresource_create/srtest", + obj: getObject("vTest", "srTest", "namespaced_subresource_create"), }, } for _, tc := range tcs { - gv := &schema.GroupVersion{Group: "gtest", Version: "vtest"} - resource := &metav1.APIResource{Name: tc.resource, Namespaced: len(tc.namespace) != 0} - cl, srv, err := getClientServer(gv, func(w http.ResponseWriter, r *http.Request) { + resource := schema.GroupVersionResource{Group: "gtest", Version: "vtest", Resource: tc.resource} + cl, srv, err := getClientServer(func(w http.ResponseWriter, r *http.Request) { if r.Method != "POST" { t.Errorf("Create(%q) got HTTP method %s. wanted POST", tc.name, r.Method) } @@ -382,7 +404,7 @@ func TestCreate(t *testing.T) { } defer srv.Close() - got, err := cl.Resource(resource, tc.namespace).Create(tc.obj) + got, err := cl.Resource(resource).Namespace(tc.namespace).Create(tc.obj, metav1.CreateOptions{}, tc.subresource...) if err != nil { t.Errorf("unexpected error when creating %q: %v", tc.name, err) continue @@ -396,43 +418,45 @@ func TestCreate(t *testing.T) { func TestUpdate(t *testing.T) { tcs := []struct { - resource string - name string - namespace string - obj *unstructured.Unstructured - path string + resource string + subresource []string + name string + namespace string + obj *unstructured.Unstructured + path string }{ { resource: "rtest", name: "normal_update", - path: "/api/gtest/vtest/rtest/normal_update", - obj: getObject("vTest", "rTest", "normal_update"), + path: "/apis/gtest/vtest/rtest/normal_update", + obj: getObject("gtest/vTest", "rTest", "normal_update"), }, { resource: "rtest", name: "namespaced_update", namespace: "nstest", - path: "/api/gtest/vtest/namespaces/nstest/rtest/namespaced_update", - obj: getObject("vTest", "rTest", "namespaced_update"), + path: "/apis/gtest/vtest/namespaces/nstest/rtest/namespaced_update", + obj: getObject("gtest/vTest", "rTest", "namespaced_update"), }, { - resource: "rtest/srtest", - name: "normal_subresource_update", - path: "/api/gtest/vtest/rtest/normal_update/srtest", - obj: getObject("vTest", "srTest", "normal_update"), + resource: "rtest", + subresource: []string{"srtest"}, + name: "normal_subresource_update", + path: "/apis/gtest/vtest/rtest/normal_update/srtest", + obj: getObject("gtest/vTest", "srTest", "normal_update"), }, { - resource: "rtest/srtest", - name: "namespaced_subresource_update", - namespace: "nstest", - path: "/api/gtest/vtest/namespaces/nstest/rtest/namespaced_update/srtest", - obj: getObject("vTest", "srTest", "namespaced_update"), + resource: "rtest", + subresource: []string{"srtest"}, + name: "namespaced_subresource_update", + namespace: "nstest", + path: "/apis/gtest/vtest/namespaces/nstest/rtest/namespaced_update/srtest", + obj: getObject("gtest/vTest", "srTest", "namespaced_update"), }, } for _, tc := range tcs { - gv := &schema.GroupVersion{Group: "gtest", Version: "vtest"} - resource := &metav1.APIResource{Name: tc.resource, Namespaced: len(tc.namespace) != 0} - cl, srv, err := getClientServer(gv, func(w http.ResponseWriter, r *http.Request) { + resource := schema.GroupVersionResource{Group: "gtest", Version: "vtest", Resource: tc.resource} + cl, srv, err := getClientServer(func(w http.ResponseWriter, r *http.Request) { if r.Method != "PUT" { t.Errorf("Update(%q) got HTTP method %s. wanted PUT", tc.name, r.Method) } @@ -457,7 +481,7 @@ func TestUpdate(t *testing.T) { } defer srv.Close() - got, err := cl.Resource(resource, tc.namespace).Update(tc.obj) + got, err := cl.Resource(resource).Namespace(tc.namespace).Update(tc.obj, metav1.UpdateOptions{}, tc.subresource...) if err != nil { t.Errorf("unexpected error when updating %q: %v", tc.name, err) continue @@ -479,30 +503,29 @@ func TestWatch(t *testing.T) { }{ { name: "normal_watch", - path: "/api/gtest/vtest/rtest", + path: "/apis/gtest/vtest/rtest", query: "watch=true", events: []watch.Event{ - {Type: watch.Added, Object: getObject("vTest", "rTest", "normal_watch")}, - {Type: watch.Modified, Object: getObject("vTest", "rTest", "normal_watch")}, - {Type: watch.Deleted, Object: getObject("vTest", "rTest", "normal_watch")}, + {Type: watch.Added, Object: getObject("gtest/vTest", "rTest", "normal_watch")}, + {Type: watch.Modified, Object: getObject("gtest/vTest", "rTest", "normal_watch")}, + {Type: watch.Deleted, Object: getObject("gtest/vTest", "rTest", "normal_watch")}, }, }, { name: "namespaced_watch", namespace: "nstest", - path: "/api/gtest/vtest/namespaces/nstest/rtest", + path: "/apis/gtest/vtest/namespaces/nstest/rtest", query: "watch=true", events: []watch.Event{ - {Type: watch.Added, Object: getObject("vTest", "rTest", "namespaced_watch")}, - {Type: watch.Modified, Object: getObject("vTest", "rTest", "namespaced_watch")}, - {Type: watch.Deleted, Object: getObject("vTest", "rTest", "namespaced_watch")}, + {Type: watch.Added, Object: getObject("gtest/vTest", "rTest", "namespaced_watch")}, + {Type: watch.Modified, Object: getObject("gtest/vTest", "rTest", "namespaced_watch")}, + {Type: watch.Deleted, Object: getObject("gtest/vTest", "rTest", "namespaced_watch")}, }, }, } for _, tc := range tcs { - gv := &schema.GroupVersion{Group: "gtest", Version: "vtest"} - resource := &metav1.APIResource{Name: "rtest", Namespaced: len(tc.namespace) != 0} - cl, srv, err := getClientServer(gv, func(w http.ResponseWriter, r *http.Request) { + resource := schema.GroupVersionResource{Group: "gtest", Version: "vtest", Resource: "rtest"} + cl, srv, err := getClientServer(func(w http.ResponseWriter, r *http.Request) { if r.Method != "GET" { t.Errorf("Watch(%q) got HTTP method %s. wanted GET", tc.name, r.Method) } @@ -514,7 +537,7 @@ func TestWatch(t *testing.T) { t.Errorf("Watch(%q) got query %s. wanted %s", tc.name, r.URL.RawQuery, tc.query) } - enc := restclientwatch.NewEncoder(streaming.NewEncoder(w, dynamicCodec{}), dynamicCodec{}) + enc := restclientwatch.NewEncoder(streaming.NewEncoder(w, unstructured.UnstructuredJSONScheme), unstructured.UnstructuredJSONScheme) for _, e := range tc.events { enc.Encode(&e) } @@ -525,7 +548,7 @@ func TestWatch(t *testing.T) { } defer srv.Close() - watcher, err := cl.Resource(resource, tc.namespace).Watch(metav1.ListOptions{}) + watcher, err := cl.Resource(resource).Namespace(tc.namespace).Watch(metav1.ListOptions{}) if err != nil { t.Errorf("unexpected error when watching %q: %v", tc.name, err) continue @@ -542,48 +565,50 @@ func TestWatch(t *testing.T) { func TestPatch(t *testing.T) { tcs := []struct { - resource string - name string - namespace string - patch []byte - want *unstructured.Unstructured - path string + resource string + subresource []string + name string + namespace string + patch []byte + want *unstructured.Unstructured + path string }{ { resource: "rtest", name: "normal_patch", - path: "/api/gtest/vtest/rtest/normal_patch", - patch: getJSON("vTest", "rTest", "normal_patch"), - want: getObject("vTest", "rTest", "normal_patch"), + path: "/apis/gtest/vtest/rtest/normal_patch", + patch: getJSON("gtest/vTest", "rTest", "normal_patch"), + want: getObject("gtest/vTest", "rTest", "normal_patch"), }, { resource: "rtest", name: "namespaced_patch", namespace: "nstest", - path: "/api/gtest/vtest/namespaces/nstest/rtest/namespaced_patch", - patch: getJSON("vTest", "rTest", "namespaced_patch"), - want: getObject("vTest", "rTest", "namespaced_patch"), + path: "/apis/gtest/vtest/namespaces/nstest/rtest/namespaced_patch", + patch: getJSON("gtest/vTest", "rTest", "namespaced_patch"), + want: getObject("gtest/vTest", "rTest", "namespaced_patch"), }, { - resource: "rtest/srtest", - name: "normal_subresource_patch", - path: "/api/gtest/vtest/rtest/normal_subresource_patch/srtest", - patch: getJSON("vTest", "srTest", "normal_subresource_patch"), - want: getObject("vTest", "srTest", "normal_subresource_patch"), + resource: "rtest", + subresource: []string{"srtest"}, + name: "normal_subresource_patch", + path: "/apis/gtest/vtest/rtest/normal_subresource_patch/srtest", + patch: getJSON("gtest/vTest", "srTest", "normal_subresource_patch"), + want: getObject("gtest/vTest", "srTest", "normal_subresource_patch"), }, { - resource: "rtest/srtest", - name: "namespaced_subresource_patch", - namespace: "nstest", - path: "/api/gtest/vtest/namespaces/nstest/rtest/namespaced_subresource_patch/srtest", - patch: getJSON("vTest", "srTest", "namespaced_subresource_patch"), - want: getObject("vTest", "srTest", "namespaced_subresource_patch"), + resource: "rtest", + subresource: []string{"srtest"}, + name: "namespaced_subresource_patch", + namespace: "nstest", + path: "/apis/gtest/vtest/namespaces/nstest/rtest/namespaced_subresource_patch/srtest", + patch: getJSON("gtest/vTest", "srTest", "namespaced_subresource_patch"), + want: getObject("gtest/vTest", "srTest", "namespaced_subresource_patch"), }, } for _, tc := range tcs { - gv := &schema.GroupVersion{Group: "gtest", Version: "vtest"} - resource := &metav1.APIResource{Name: tc.resource, Namespaced: len(tc.namespace) != 0} - cl, srv, err := getClientServer(gv, func(w http.ResponseWriter, r *http.Request) { + resource := schema.GroupVersionResource{Group: "gtest", Version: "vtest", Resource: tc.resource} + cl, srv, err := getClientServer(func(w http.ResponseWriter, r *http.Request) { if r.Method != "PATCH" { t.Errorf("Patch(%q) got HTTP method %s. wanted PATCH", tc.name, r.Method) } @@ -613,7 +638,7 @@ func TestPatch(t *testing.T) { } defer srv.Close() - got, err := cl.Resource(resource, tc.namespace).Patch(tc.name, types.StrategicMergePatchType, tc.patch) + got, err := cl.Resource(resource).Namespace(tc.namespace).Patch(tc.name, types.StrategicMergePatchType, tc.patch, metav1.UpdateOptions{}, tc.subresource...) if err != nil { t.Errorf("unexpected error when patching %q: %v", tc.name, err) continue @@ -624,11 +649,3 @@ func TestPatch(t *testing.T) { } } } - -func TestVersionedParameterEncoderWithV1Fallback(t *testing.T) { - enc := VersionedParameterEncoderWithV1Fallback - _, err := enc.EncodeParameters(&metav1.ListOptions{}, schema.GroupVersion{Group: "foo.bar.com", Version: "v4"}) - if err != nil { - t.Errorf("Unexpected error: %v", err) - } -} diff --git a/vendor/k8s.io/client-go/dynamic/dynamic_util.go b/vendor/k8s.io/client-go/dynamic/dynamic_util.go deleted file mode 100644 index c2cf0daea..000000000 --- a/vendor/k8s.io/client-go/dynamic/dynamic_util.go +++ /dev/null @@ -1,96 +0,0 @@ -/* -Copyright 2016 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package dynamic - -import ( - "fmt" - - "k8s.io/apimachinery/pkg/api/meta" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -// VersionInterfaces provides an object converter and metadata -// accessor appropriate for use with unstructured objects. -func VersionInterfaces(schema.GroupVersion) (*meta.VersionInterfaces, error) { - return &meta.VersionInterfaces{ - ObjectConvertor: &unstructured.UnstructuredObjectConverter{}, - MetadataAccessor: meta.NewAccessor(), - }, nil -} - -// NewDiscoveryRESTMapper returns a RESTMapper based on discovery information. -func NewDiscoveryRESTMapper(resources []*metav1.APIResourceList, versionFunc meta.VersionInterfacesFunc) (*meta.DefaultRESTMapper, error) { - rm := meta.NewDefaultRESTMapper(nil, versionFunc) - for _, resourceList := range resources { - gv, err := schema.ParseGroupVersion(resourceList.GroupVersion) - if err != nil { - return nil, err - } - - for _, resource := range resourceList.APIResources { - gvk := gv.WithKind(resource.Kind) - scope := meta.RESTScopeRoot - if resource.Namespaced { - scope = meta.RESTScopeNamespace - } - rm.Add(gvk, scope) - } - } - return rm, nil -} - -// ObjectTyper provides an ObjectTyper implementation for -// unstructured.Unstructured object based on discovery information. -type ObjectTyper struct { - registered map[schema.GroupVersionKind]bool -} - -// NewObjectTyper constructs an ObjectTyper from discovery information. -func NewObjectTyper(resources []*metav1.APIResourceList) (runtime.ObjectTyper, error) { - ot := &ObjectTyper{registered: make(map[schema.GroupVersionKind]bool)} - for _, resourceList := range resources { - gv, err := schema.ParseGroupVersion(resourceList.GroupVersion) - if err != nil { - return nil, err - } - - for _, resource := range resourceList.APIResources { - ot.registered[gv.WithKind(resource.Kind)] = true - } - } - return ot, nil -} - -// ObjectKinds returns a slice of one element with the -// group,version,kind of the provided object, or an error if the -// object is not *unstructured.Unstructured or has no group,version,kind -// information. -func (ot *ObjectTyper) ObjectKinds(obj runtime.Object) ([]schema.GroupVersionKind, bool, error) { - if _, ok := obj.(*unstructured.Unstructured); !ok { - return nil, false, fmt.Errorf("type %T is invalid for determining dynamic object types", obj) - } - return []schema.GroupVersionKind{obj.GetObjectKind().GroupVersionKind()}, false, nil -} - -// Recognizes returns true if the provided group,version,kind was in -// the discovery information. -func (ot *ObjectTyper) Recognizes(gvk schema.GroupVersionKind) bool { - return ot.registered[gvk] -} diff --git a/vendor/k8s.io/client-go/dynamic/dynamic_util_test.go b/vendor/k8s.io/client-go/dynamic/dynamic_util_test.go deleted file mode 100644 index cdc68e018..000000000 --- a/vendor/k8s.io/client-go/dynamic/dynamic_util_test.go +++ /dev/null @@ -1,79 +0,0 @@ -/* -Copyright 2016 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package dynamic - -import ( - "testing" - - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -func TestDiscoveryRESTMapper(t *testing.T) { - resources := []*metav1.APIResourceList{ - { - GroupVersion: "test/beta1", - APIResources: []metav1.APIResource{ - { - Name: "test_kinds", - Namespaced: true, - Kind: "test_kind", - }, - }, - }, - } - - gvk := schema.GroupVersionKind{ - Group: "test", - Version: "beta1", - Kind: "test_kind", - } - - mapper, err := NewDiscoveryRESTMapper(resources, VersionInterfaces) - if err != nil { - t.Fatalf("unexpected error creating mapper: %s", err) - } - - for _, res := range []schema.GroupVersionResource{ - { - Group: "test", - Version: "beta1", - Resource: "test_kinds", - }, - { - Version: "beta1", - Resource: "test_kinds", - }, - { - Group: "test", - Resource: "test_kinds", - }, - { - Resource: "test_kinds", - }, - } { - got, err := mapper.KindFor(res) - if err != nil { - t.Errorf("KindFor(%#v) unexpected error: %s", res, err) - continue - } - - if got != gvk { - t.Errorf("KindFor(%#v) = %#v; want %#v", res, got, gvk) - } - } -} diff --git a/vendor/k8s.io/client-go/dynamic/dynamicinformer/informer.go b/vendor/k8s.io/client-go/dynamic/dynamicinformer/informer.go new file mode 100644 index 000000000..88a2e500c --- /dev/null +++ b/vendor/k8s.io/client-go/dynamic/dynamicinformer/informer.go @@ -0,0 +1,155 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package dynamicinformer + +import ( + "sync" + "time" + + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/dynamic" + "k8s.io/client-go/dynamic/dynamiclister" + "k8s.io/client-go/informers" + "k8s.io/client-go/tools/cache" +) + +// NewDynamicSharedInformerFactory constructs a new instance of dynamicSharedInformerFactory for all namespaces. +func NewDynamicSharedInformerFactory(client dynamic.Interface, defaultResync time.Duration) DynamicSharedInformerFactory { + return NewFilteredDynamicSharedInformerFactory(client, defaultResync, metav1.NamespaceAll, nil) +} + +// NewFilteredDynamicSharedInformerFactory constructs a new instance of dynamicSharedInformerFactory. +// Listers obtained via this factory will be subject to the same filters as specified here. +func NewFilteredDynamicSharedInformerFactory(client dynamic.Interface, defaultResync time.Duration, namespace string, tweakListOptions TweakListOptionsFunc) DynamicSharedInformerFactory { + return &dynamicSharedInformerFactory{ + client: client, + defaultResync: defaultResync, + namespace: metav1.NamespaceAll, + informers: map[schema.GroupVersionResource]informers.GenericInformer{}, + startedInformers: make(map[schema.GroupVersionResource]bool), + } +} + +type dynamicSharedInformerFactory struct { + client dynamic.Interface + defaultResync time.Duration + namespace string + + lock sync.Mutex + informers map[schema.GroupVersionResource]informers.GenericInformer + // startedInformers is used for tracking which informers have been started. + // This allows Start() to be called multiple times safely. + startedInformers map[schema.GroupVersionResource]bool +} + +var _ DynamicSharedInformerFactory = &dynamicSharedInformerFactory{} + +func (f *dynamicSharedInformerFactory) ForResource(gvr schema.GroupVersionResource) informers.GenericInformer { + f.lock.Lock() + defer f.lock.Unlock() + + key := gvr + informer, exists := f.informers[key] + if exists { + return informer + } + + informer = NewFilteredDynamicInformer(f.client, gvr, f.namespace, f.defaultResync, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, nil) + f.informers[key] = informer + + return informer +} + +// Start initializes all requested informers. +func (f *dynamicSharedInformerFactory) Start(stopCh <-chan struct{}) { + f.lock.Lock() + defer f.lock.Unlock() + + for informerType, informer := range f.informers { + if !f.startedInformers[informerType] { + go informer.Informer().Run(stopCh) + f.startedInformers[informerType] = true + } + } +} + +// WaitForCacheSync waits for all started informers' cache were synced. +func (f *dynamicSharedInformerFactory) WaitForCacheSync(stopCh <-chan struct{}) map[schema.GroupVersionResource]bool { + informers := func() map[schema.GroupVersionResource]cache.SharedIndexInformer { + f.lock.Lock() + defer f.lock.Unlock() + + informers := map[schema.GroupVersionResource]cache.SharedIndexInformer{} + for informerType, informer := range f.informers { + if f.startedInformers[informerType] { + informers[informerType] = informer.Informer() + } + } + return informers + }() + + res := map[schema.GroupVersionResource]bool{} + for informType, informer := range informers { + res[informType] = cache.WaitForCacheSync(stopCh, informer.HasSynced) + } + return res +} + +// NewFilteredDynamicInformer constructs a new informer for a dynamic type. +func NewFilteredDynamicInformer(client dynamic.Interface, gvr schema.GroupVersionResource, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions TweakListOptionsFunc) informers.GenericInformer { + return &dynamicInformer{ + gvr: gvr, + informer: cache.NewSharedIndexInformer( + &cache.ListWatch{ + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.Resource(gvr).Namespace(namespace).List(options) + }, + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.Resource(gvr).Namespace(namespace).Watch(options) + }, + }, + &unstructured.Unstructured{}, + resyncPeriod, + indexers, + ), + } +} + +type dynamicInformer struct { + informer cache.SharedIndexInformer + gvr schema.GroupVersionResource +} + +var _ informers.GenericInformer = &dynamicInformer{} + +func (d *dynamicInformer) Informer() cache.SharedIndexInformer { + return d.informer +} + +func (d *dynamicInformer) Lister() cache.GenericLister { + return dynamiclister.NewRuntimeObjectShim(dynamiclister.New(d.informer.GetIndexer(), d.gvr)) +} diff --git a/vendor/k8s.io/client-go/dynamic/dynamicinformer/informer_test.go b/vendor/k8s.io/client-go/dynamic/dynamicinformer/informer_test.go new file mode 100644 index 000000000..67c856020 --- /dev/null +++ b/vendor/k8s.io/client-go/dynamic/dynamicinformer/informer_test.go @@ -0,0 +1,160 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package dynamicinformer_test + +import ( + "context" + "testing" + "time" + + "k8s.io/apimachinery/pkg/api/equality" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/diff" + "k8s.io/client-go/dynamic/dynamicinformer" + "k8s.io/client-go/dynamic/fake" + "k8s.io/client-go/tools/cache" +) + +func TestDynamicSharedInformerFactory(t *testing.T) { + scenarios := []struct { + name string + existingObj *unstructured.Unstructured + gvr schema.GroupVersionResource + ns string + trigger func(gvr schema.GroupVersionResource, ns string, fakeClient *fake.FakeDynamicClient, testObject *unstructured.Unstructured) *unstructured.Unstructured + handler func(rcvCh chan<- *unstructured.Unstructured) *cache.ResourceEventHandlerFuncs + }{ + // scenario 1 + { + name: "scenario 1: test if adding an object triggers AddFunc", + ns: "ns-foo", + gvr: schema.GroupVersionResource{Group: "extensions", Version: "v1beta1", Resource: "deployments"}, + trigger: func(gvr schema.GroupVersionResource, ns string, fakeClient *fake.FakeDynamicClient, _ *unstructured.Unstructured) *unstructured.Unstructured { + testObject := newUnstructured("extensions/v1beta1", "Deployment", "ns-foo", "name-foo") + createdObj, err := fakeClient.Resource(gvr).Namespace(ns).Create(testObject, metav1.CreateOptions{}) + if err != nil { + t.Error(err) + } + return createdObj + }, + handler: func(rcvCh chan<- *unstructured.Unstructured) *cache.ResourceEventHandlerFuncs { + return &cache.ResourceEventHandlerFuncs{ + AddFunc: func(obj interface{}) { + rcvCh <- obj.(*unstructured.Unstructured) + }, + } + }, + }, + + // scenario 2 + { + name: "scenario 2: tests if updating an object triggers UpdateFunc", + ns: "ns-foo", + gvr: schema.GroupVersionResource{Group: "extensions", Version: "v1beta1", Resource: "deployments"}, + existingObj: newUnstructured("extensions/v1beta1", "Deployment", "ns-foo", "name-foo"), + trigger: func(gvr schema.GroupVersionResource, ns string, fakeClient *fake.FakeDynamicClient, testObject *unstructured.Unstructured) *unstructured.Unstructured { + testObject.Object["spec"] = "updatedName" + updatedObj, err := fakeClient.Resource(gvr).Namespace(ns).Update(testObject, metav1.UpdateOptions{}) + if err != nil { + t.Error(err) + } + return updatedObj + }, + handler: func(rcvCh chan<- *unstructured.Unstructured) *cache.ResourceEventHandlerFuncs { + return &cache.ResourceEventHandlerFuncs{ + UpdateFunc: func(old, updated interface{}) { + rcvCh <- updated.(*unstructured.Unstructured) + }, + } + }, + }, + + // scenario 3 + { + name: "scenario 3: test if deleting an object triggers DeleteFunc", + ns: "ns-foo", + gvr: schema.GroupVersionResource{Group: "extensions", Version: "v1beta1", Resource: "deployments"}, + existingObj: newUnstructured("extensions/v1beta1", "Deployment", "ns-foo", "name-foo"), + trigger: func(gvr schema.GroupVersionResource, ns string, fakeClient *fake.FakeDynamicClient, testObject *unstructured.Unstructured) *unstructured.Unstructured { + err := fakeClient.Resource(gvr).Namespace(ns).Delete(testObject.GetName(), &metav1.DeleteOptions{}) + if err != nil { + t.Error(err) + } + return testObject + }, + handler: func(rcvCh chan<- *unstructured.Unstructured) *cache.ResourceEventHandlerFuncs { + return &cache.ResourceEventHandlerFuncs{ + DeleteFunc: func(obj interface{}) { + rcvCh <- obj.(*unstructured.Unstructured) + }, + } + }, + }, + } + + for _, ts := range scenarios { + t.Run(ts.name, func(t *testing.T) { + // test data + timeout := time.Duration(3 * time.Second) + ctx, cancel := context.WithTimeout(context.Background(), timeout) + defer cancel() + scheme := runtime.NewScheme() + informerReciveObjectCh := make(chan *unstructured.Unstructured, 1) + objs := []runtime.Object{} + if ts.existingObj != nil { + objs = append(objs, ts.existingObj) + } + fakeClient := fake.NewSimpleDynamicClient(scheme, objs...) + target := dynamicinformer.NewDynamicSharedInformerFactory(fakeClient, 0) + + // act + informerListerForGvr := target.ForResource(ts.gvr) + informerListerForGvr.Informer().AddEventHandler(ts.handler(informerReciveObjectCh)) + target.Start(ctx.Done()) + if synced := target.WaitForCacheSync(ctx.Done()); !synced[ts.gvr] { + t.Errorf("informer for %s hasn't synced", ts.gvr) + } + + testObject := ts.trigger(ts.gvr, ts.ns, fakeClient, ts.existingObj) + select { + case objFromInformer := <-informerReciveObjectCh: + if !equality.Semantic.DeepEqual(testObject, objFromInformer) { + t.Fatalf("%v", diff.ObjectDiff(testObject, objFromInformer)) + } + case <-ctx.Done(): + t.Errorf("tested informer haven't received an object, waited %v", timeout) + } + }) + } +} + +func newUnstructured(apiVersion, kind, namespace, name string) *unstructured.Unstructured { + return &unstructured.Unstructured{ + Object: map[string]interface{}{ + "apiVersion": apiVersion, + "kind": kind, + "metadata": map[string]interface{}{ + "namespace": namespace, + "name": name, + }, + "spec": name, + }, + } +} diff --git a/vendor/k8s.io/client-go/dynamic/dynamicinformer/interface.go b/vendor/k8s.io/client-go/dynamic/dynamicinformer/interface.go new file mode 100644 index 000000000..083977c30 --- /dev/null +++ b/vendor/k8s.io/client-go/dynamic/dynamicinformer/interface.go @@ -0,0 +1,34 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package dynamicinformer + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/client-go/informers" +) + +// DynamicSharedInformerFactory provides access to a shared informer and lister for dynamic client +type DynamicSharedInformerFactory interface { + Start(stopCh <-chan struct{}) + ForResource(gvr schema.GroupVersionResource) informers.GenericInformer + WaitForCacheSync(stopCh <-chan struct{}) map[schema.GroupVersionResource]bool +} + +// TweakListOptionsFunc defines the signature of a helper function +// that wants to provide more listing options to API +type TweakListOptionsFunc func(*metav1.ListOptions) diff --git a/vendor/k8s.io/client-go/dynamic/dynamiclister/interface.go b/vendor/k8s.io/client-go/dynamic/dynamiclister/interface.go new file mode 100644 index 000000000..c39cbee92 --- /dev/null +++ b/vendor/k8s.io/client-go/dynamic/dynamiclister/interface.go @@ -0,0 +1,40 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package dynamiclister + +import ( + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/labels" +) + +// Lister helps list resources. +type Lister interface { + // List lists all resources in the indexer. + List(selector labels.Selector) (ret []*unstructured.Unstructured, err error) + // Get retrieves a resource from the indexer with the given name + Get(name string) (*unstructured.Unstructured, error) + // Namespace returns an object that can list and get resources in a given namespace. + Namespace(namespace string) NamespaceLister +} + +// NamespaceLister helps list and get resources. +type NamespaceLister interface { + // List lists all resources in the indexer for a given namespace. + List(selector labels.Selector) (ret []*unstructured.Unstructured, err error) + // Get retrieves a resource from the indexer for a given namespace and name. + Get(name string) (*unstructured.Unstructured, error) +} diff --git a/vendor/k8s.io/client-go/dynamic/dynamiclister/lister.go b/vendor/k8s.io/client-go/dynamic/dynamiclister/lister.go new file mode 100644 index 000000000..a50fc471e --- /dev/null +++ b/vendor/k8s.io/client-go/dynamic/dynamiclister/lister.go @@ -0,0 +1,91 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package dynamiclister + +import ( + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/client-go/tools/cache" +) + +var _ Lister = &dynamicLister{} +var _ NamespaceLister = &dynamicNamespaceLister{} + +// dynamicLister implements the Lister interface. +type dynamicLister struct { + indexer cache.Indexer + gvr schema.GroupVersionResource +} + +// New returns a new Lister. +func New(indexer cache.Indexer, gvr schema.GroupVersionResource) Lister { + return &dynamicLister{indexer: indexer, gvr: gvr} +} + +// List lists all resources in the indexer. +func (l *dynamicLister) List(selector labels.Selector) (ret []*unstructured.Unstructured, err error) { + err = cache.ListAll(l.indexer, selector, func(m interface{}) { + ret = append(ret, m.(*unstructured.Unstructured)) + }) + return ret, err +} + +// Get retrieves a resource from the indexer with the given name +func (l *dynamicLister) Get(name string) (*unstructured.Unstructured, error) { + obj, exists, err := l.indexer.GetByKey(name) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(l.gvr.GroupResource(), name) + } + return obj.(*unstructured.Unstructured), nil +} + +// Namespace returns an object that can list and get resources from a given namespace. +func (l *dynamicLister) Namespace(namespace string) NamespaceLister { + return &dynamicNamespaceLister{indexer: l.indexer, namespace: namespace, gvr: l.gvr} +} + +// dynamicNamespaceLister implements the NamespaceLister interface. +type dynamicNamespaceLister struct { + indexer cache.Indexer + namespace string + gvr schema.GroupVersionResource +} + +// List lists all resources in the indexer for a given namespace. +func (l *dynamicNamespaceLister) List(selector labels.Selector) (ret []*unstructured.Unstructured, err error) { + err = cache.ListAllByNamespace(l.indexer, l.namespace, selector, func(m interface{}) { + ret = append(ret, m.(*unstructured.Unstructured)) + }) + return ret, err +} + +// Get retrieves a resource from the indexer for a given namespace and name. +func (l *dynamicNamespaceLister) Get(name string) (*unstructured.Unstructured, error) { + obj, exists, err := l.indexer.GetByKey(l.namespace + "/" + name) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(l.gvr.GroupResource(), name) + } + return obj.(*unstructured.Unstructured), nil +} diff --git a/vendor/k8s.io/client-go/dynamic/dynamiclister/lister_test.go b/vendor/k8s.io/client-go/dynamic/dynamiclister/lister_test.go new file mode 100644 index 000000000..9ebc47946 --- /dev/null +++ b/vendor/k8s.io/client-go/dynamic/dynamiclister/lister_test.go @@ -0,0 +1,257 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package dynamiclister_test + +import ( + "reflect" + "testing" + + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/diff" + "k8s.io/client-go/dynamic/dynamiclister" + "k8s.io/client-go/tools/cache" +) + +func TestNamespaceGetMethod(t *testing.T) { + tests := []struct { + name string + existingObjects []runtime.Object + namespaceToSync string + gvrToSync schema.GroupVersionResource + objectToGet string + expectedObject *unstructured.Unstructured + expectError bool + }{ + { + name: "scenario 1: gets name-foo1 resource from the indexer from ns-foo namespace", + existingObjects: []runtime.Object{ + newUnstructured("group/version", "TheKind", "ns-foo", "name-foo"), + newUnstructured("group/version", "TheKind", "ns-foo", "name-foo1"), + newUnstructured("group/version", "TheKind", "ns-bar", "name-bar"), + }, + namespaceToSync: "ns-foo", + gvrToSync: schema.GroupVersionResource{Group: "group", Version: "version", Resource: "TheKinds"}, + objectToGet: "name-foo1", + expectedObject: newUnstructured("group/version", "TheKind", "ns-foo", "name-foo1"), + }, + { + name: "scenario 2: gets name-foo-non-existing resource from the indexer from ns-foo namespace", + existingObjects: []runtime.Object{ + newUnstructured("group/version", "TheKind", "ns-foo", "name-foo"), + newUnstructured("group/version", "TheKind", "ns-foo", "name-foo1"), + newUnstructured("group/version", "TheKind", "ns-bar", "name-bar"), + }, + namespaceToSync: "ns-foo", + gvrToSync: schema.GroupVersionResource{Group: "group", Version: "version", Resource: "TheKinds"}, + objectToGet: "name-foo-non-existing", + expectError: true, + }, + } + + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + // test data + indexer := cache.NewIndexer(cache.MetaNamespaceKeyFunc, cache.Indexers{}) + for _, obj := range test.existingObjects { + err := indexer.Add(obj) + if err != nil { + t.Fatal(err) + } + } + // act + target := dynamiclister.New(indexer, test.gvrToSync).Namespace(test.namespaceToSync) + actualObject, err := target.Get(test.objectToGet) + + // validate + if test.expectError { + if err == nil { + t.Fatal("expected to get an error but non was returned") + } + return + } + if err != nil { + t.Fatal(err) + } + if !reflect.DeepEqual(test.expectedObject, actualObject) { + t.Fatalf("unexpected object has been returned expected = %v actual = %v, diff = %v", test.expectedObject, actualObject, diff.ObjectDiff(test.expectedObject, actualObject)) + } + }) + } +} + +func TestNamespaceListMethod(t *testing.T) { + // test data + objs := []runtime.Object{ + newUnstructured("group/version", "TheKind", "ns-foo", "name-foo"), + newUnstructured("group/version", "TheKind", "ns-foo", "name-foo1"), + newUnstructured("group/version", "TheKind", "ns-bar", "name-bar"), + } + indexer := cache.NewIndexer(cache.MetaNamespaceKeyFunc, cache.Indexers{}) + for _, obj := range objs { + err := indexer.Add(obj) + if err != nil { + t.Fatal(err) + } + } + expectedOutput := []*unstructured.Unstructured{ + newUnstructured("group/version", "TheKind", "ns-foo", "name-foo"), + newUnstructured("group/version", "TheKind", "ns-foo", "name-foo1"), + } + namespaceToList := "ns-foo" + + // act + target := dynamiclister.New(indexer, schema.GroupVersionResource{Group: "group", Version: "version", Resource: "TheKinds"}).Namespace(namespaceToList) + actualOutput, err := target.List(labels.Everything()) + + // validate + if err != nil { + t.Fatal(err) + } + assertListOrDie(expectedOutput, actualOutput, t) +} + +func TestListerGetMethod(t *testing.T) { + tests := []struct { + name string + existingObjects []runtime.Object + namespaceToSync string + gvrToSync schema.GroupVersionResource + objectToGet string + expectedObject *unstructured.Unstructured + expectError bool + }{ + { + name: "scenario 1: gets name-foo1 resource from the indexer", + existingObjects: []runtime.Object{ + newUnstructured("group/version", "TheKind", "ns-foo", "name-foo"), + newUnstructured("group/version", "TheKind", "", "name-foo1"), + newUnstructured("group/version", "TheKind", "ns-bar", "name-bar"), + }, + namespaceToSync: "", + gvrToSync: schema.GroupVersionResource{Group: "group", Version: "version", Resource: "TheKinds"}, + objectToGet: "name-foo1", + expectedObject: newUnstructured("group/version", "TheKind", "", "name-foo1"), + }, + { + name: "scenario 2: doesn't get name-foo resource from the indexer from ns-foo namespace", + existingObjects: []runtime.Object{ + newUnstructured("group/version", "TheKind", "ns-foo", "name-foo"), + newUnstructured("group/version", "TheKind", "ns-foo", "name-foo1"), + newUnstructured("group/version", "TheKind", "ns-bar", "name-bar"), + }, + namespaceToSync: "ns-foo", + gvrToSync: schema.GroupVersionResource{Group: "group", Version: "version", Resource: "TheKinds"}, + objectToGet: "name-foo", + expectError: true, + }, + } + + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + // test data + indexer := cache.NewIndexer(cache.MetaNamespaceKeyFunc, cache.Indexers{}) + for _, obj := range test.existingObjects { + err := indexer.Add(obj) + if err != nil { + t.Fatal(err) + } + } + // act + target := dynamiclister.New(indexer, test.gvrToSync) + actualObject, err := target.Get(test.objectToGet) + + // validate + if test.expectError { + if err == nil { + t.Fatal("expected to get an error but non was returned") + } + return + } + if err != nil { + t.Fatal(err) + } + if !reflect.DeepEqual(test.expectedObject, actualObject) { + t.Fatalf("unexpected object has been returned expected = %v actual = %v, diff = %v", test.expectedObject, actualObject, diff.ObjectDiff(test.expectedObject, actualObject)) + } + }) + } +} + +func TestListerListMethod(t *testing.T) { + // test data + objs := []runtime.Object{ + newUnstructured("group/version", "TheKind", "ns-foo", "name-foo"), + newUnstructured("group/version", "TheKind", "ns-foo", "name-bar"), + } + indexer := cache.NewIndexer(cache.MetaNamespaceKeyFunc, cache.Indexers{}) + for _, obj := range objs { + err := indexer.Add(obj) + if err != nil { + t.Fatal(err) + } + } + expectedOutput := []*unstructured.Unstructured{ + newUnstructured("group/version", "TheKind", "ns-foo", "name-foo"), + newUnstructured("group/version", "TheKind", "ns-foo", "name-bar"), + } + + // act + target := dynamiclister.New(indexer, schema.GroupVersionResource{Group: "group", Version: "version", Resource: "TheKinds"}) + actualOutput, err := target.List(labels.Everything()) + + // validate + if err != nil { + t.Fatal(err) + } + assertListOrDie(expectedOutput, actualOutput, t) +} + +func newUnstructured(apiVersion, kind, namespace, name string) *unstructured.Unstructured { + return &unstructured.Unstructured{ + Object: map[string]interface{}{ + "apiVersion": apiVersion, + "kind": kind, + "metadata": map[string]interface{}{ + "namespace": namespace, + "name": name, + }, + }, + } +} + +func assertListOrDie(expected, actual []*unstructured.Unstructured, t *testing.T) { + if len(actual) != len(expected) { + t.Fatalf("unexpected number of items returned, expected = %d, actual = %d", len(expected), len(actual)) + } + for _, expectedObject := range expected { + found := false + for _, actualObject := range actual { + if actualObject.GetName() == expectedObject.GetName() { + if !reflect.DeepEqual(expectedObject, actualObject) { + t.Fatalf("unexpected object has been returned expected = %v actual = %v, diff = %v", expectedObject, actualObject, diff.ObjectDiff(expectedObject, actualObject)) + } + found = true + } + } + if !found { + t.Fatalf("the resource with the name = %s was not found in the returned output", expectedObject.GetName()) + } + } +} diff --git a/vendor/k8s.io/client-go/dynamic/dynamiclister/shim.go b/vendor/k8s.io/client-go/dynamic/dynamiclister/shim.go new file mode 100644 index 000000000..92a5f54af --- /dev/null +++ b/vendor/k8s.io/client-go/dynamic/dynamiclister/shim.go @@ -0,0 +1,87 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package dynamiclister + +import ( + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/client-go/tools/cache" +) + +var _ cache.GenericLister = &dynamicListerShim{} +var _ cache.GenericNamespaceLister = &dynamicNamespaceListerShim{} + +// dynamicListerShim implements the cache.GenericLister interface. +type dynamicListerShim struct { + lister Lister +} + +// NewRuntimeObjectShim returns a new shim for Lister. +// It wraps Lister so that it implements cache.GenericLister interface +func NewRuntimeObjectShim(lister Lister) cache.GenericLister { + return &dynamicListerShim{lister: lister} +} + +// List will return all objects across namespaces +func (s *dynamicListerShim) List(selector labels.Selector) (ret []runtime.Object, err error) { + objs, err := s.lister.List(selector) + if err != nil { + return nil, err + } + + ret = make([]runtime.Object, len(objs)) + for index, obj := range objs { + ret[index] = obj + } + return ret, err +} + +// Get will attempt to retrieve assuming that name==key +func (s *dynamicListerShim) Get(name string) (runtime.Object, error) { + return s.lister.Get(name) +} + +func (s *dynamicListerShim) ByNamespace(namespace string) cache.GenericNamespaceLister { + return &dynamicNamespaceListerShim{ + namespaceLister: s.lister.Namespace(namespace), + } +} + +// dynamicNamespaceListerShim implements the NamespaceLister interface. +// It wraps NamespaceLister so that it implements cache.GenericNamespaceLister interface +type dynamicNamespaceListerShim struct { + namespaceLister NamespaceLister +} + +// List will return all objects in this namespace +func (ns *dynamicNamespaceListerShim) List(selector labels.Selector) (ret []runtime.Object, err error) { + objs, err := ns.namespaceLister.List(selector) + if err != nil { + return nil, err + } + + ret = make([]runtime.Object, len(objs)) + for index, obj := range objs { + ret[index] = obj + } + return ret, err +} + +// Get will attempt to retrieve by namespace and name +func (ns *dynamicNamespaceListerShim) Get(name string) (runtime.Object, error) { + return ns.namespaceLister.Get(name) +} diff --git a/vendor/k8s.io/client-go/dynamic/fake/BUILD b/vendor/k8s.io/client-go/dynamic/fake/BUILD deleted file mode 100644 index d006188f8..000000000 --- a/vendor/k8s.io/client-go/dynamic/fake/BUILD +++ /dev/null @@ -1,40 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "client.go", - "client_pool.go", - ], - importpath = "k8s.io/client-go/dynamic/fake", - deps = [ - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/dynamic:go_default_library", - "//vendor/k8s.io/client-go/testing:go_default_library", - "//vendor/k8s.io/client-go/util/flowcontrol:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/dynamic/fake/client.go b/vendor/k8s.io/client-go/dynamic/fake/client.go deleted file mode 100644 index 8399076c2..000000000 --- a/vendor/k8s.io/client-go/dynamic/fake/client.go +++ /dev/null @@ -1,163 +0,0 @@ -/* -Copyright 2017 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Package fake provides a fake client interface to arbitrary Kubernetes -// APIs that exposes common high level operations and exposes common -// metadata. -package fake - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/types" - "k8s.io/apimachinery/pkg/watch" - "k8s.io/client-go/dynamic" - "k8s.io/client-go/testing" - "k8s.io/client-go/util/flowcontrol" -) - -// FakeClient is a fake implementation of dynamic.Interface. -type FakeClient struct { - GroupVersion schema.GroupVersion - - *testing.Fake -} - -// GetRateLimiter returns the rate limiter for this client. -func (c *FakeClient) GetRateLimiter() flowcontrol.RateLimiter { - return nil -} - -// Resource returns an API interface to the specified resource for this client's -// group and version. If resource is not a namespaced resource, then namespace -// is ignored. The ResourceClient inherits the parameter codec of this client -func (c *FakeClient) Resource(resource *metav1.APIResource, namespace string) dynamic.ResourceInterface { - return &FakeResourceClient{ - Resource: c.GroupVersion.WithResource(resource.Name), - Kind: c.GroupVersion.WithKind(resource.Kind), - Namespace: namespace, - - Fake: c.Fake, - } -} - -// ParameterCodec returns a client with the provided parameter codec. -func (c *FakeClient) ParameterCodec(parameterCodec runtime.ParameterCodec) dynamic.Interface { - return &FakeClient{ - Fake: c.Fake, - } -} - -// FakeResourceClient is a fake implementation of dynamic.ResourceInterface -type FakeResourceClient struct { - Resource schema.GroupVersionResource - Kind schema.GroupVersionKind - Namespace string - - *testing.Fake -} - -// List returns a list of objects for this resource. -func (c *FakeResourceClient) List(opts metav1.ListOptions) (runtime.Object, error) { - obj, err := c.Fake. - Invokes(testing.NewListAction(c.Resource, c.Kind, c.Namespace, opts), &unstructured.UnstructuredList{}) - - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &unstructured.UnstructuredList{} - for _, item := range obj.(*unstructured.UnstructuredList).Items { - if label.Matches(labels.Set(item.GetLabels())) { - list.Items = append(list.Items, item) - } - } - return list, err -} - -// Get gets the resource with the specified name. -func (c *FakeResourceClient) Get(name string, opts metav1.GetOptions) (*unstructured.Unstructured, error) { - obj, err := c.Fake. - Invokes(testing.NewGetAction(c.Resource, c.Namespace, name), &unstructured.Unstructured{}) - - if obj == nil { - return nil, err - } - - return obj.(*unstructured.Unstructured), err -} - -// Delete deletes the resource with the specified name. -func (c *FakeResourceClient) Delete(name string, opts *metav1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewDeleteAction(c.Resource, c.Namespace, name), &unstructured.Unstructured{}) - - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeResourceClient) DeleteCollection(deleteOptions *metav1.DeleteOptions, listOptions metav1.ListOptions) error { - _, err := c.Fake. - Invokes(testing.NewDeleteCollectionAction(c.Resource, c.Namespace, listOptions), &unstructured.Unstructured{}) - - return err -} - -// Create creates the provided resource. -func (c *FakeResourceClient) Create(inObj *unstructured.Unstructured) (*unstructured.Unstructured, error) { - obj, err := c.Fake. - Invokes(testing.NewCreateAction(c.Resource, c.Namespace, inObj), &unstructured.Unstructured{}) - - if obj == nil { - return nil, err - } - return obj.(*unstructured.Unstructured), err -} - -// Update updates the provided resource. -func (c *FakeResourceClient) Update(inObj *unstructured.Unstructured) (*unstructured.Unstructured, error) { - obj, err := c.Fake. - Invokes(testing.NewUpdateAction(c.Resource, c.Namespace, inObj), &unstructured.Unstructured{}) - - if obj == nil { - return nil, err - } - return obj.(*unstructured.Unstructured), err -} - -// Watch returns a watch.Interface that watches the resource. -func (c *FakeResourceClient) Watch(opts metav1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewWatchAction(c.Resource, c.Namespace, opts)) -} - -// Patch patches the provided resource. -func (c *FakeResourceClient) Patch(name string, pt types.PatchType, data []byte) (*unstructured.Unstructured, error) { - obj, err := c.Fake. - Invokes(testing.NewPatchAction(c.Resource, c.Namespace, name, data), &unstructured.Unstructured{}) - - if obj == nil { - return nil, err - } - return obj.(*unstructured.Unstructured), err -} diff --git a/vendor/k8s.io/client-go/dynamic/fake/client_pool.go b/vendor/k8s.io/client-go/dynamic/fake/client_pool.go deleted file mode 100644 index 7ec114892..000000000 --- a/vendor/k8s.io/client-go/dynamic/fake/client_pool.go +++ /dev/null @@ -1,48 +0,0 @@ -/* -Copyright 2017 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Package fake provides a fake client interface to arbitrary Kubernetes -// APIs that exposes common high level operations and exposes common -// metadata. -package fake - -import ( - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/client-go/dynamic" - "k8s.io/client-go/testing" -) - -// FakeClientPool provides a fake implementation of dynamic.ClientPool. -// It assumes resource GroupVersions are the same as their corresponding kind GroupVersions. -type FakeClientPool struct { - testing.Fake -} - -// ClientForGroupVersionKind returns a client configured for the specified groupVersionResource. -// Resource may be empty. -func (p *FakeClientPool) ClientForGroupVersionResource(resource schema.GroupVersionResource) (dynamic.Interface, error) { - return p.ClientForGroupVersionKind(resource.GroupVersion().WithKind("")) -} - -// ClientForGroupVersionKind returns a client configured for the specified groupVersionKind. -// Kind may be empty. -func (p *FakeClientPool) ClientForGroupVersionKind(kind schema.GroupVersionKind) (dynamic.Interface, error) { - // we can just create a new client every time for testing purposes - return &FakeClient{ - GroupVersion: kind.GroupVersion(), - Fake: &p.Fake, - }, nil -} diff --git a/vendor/k8s.io/client-go/dynamic/fake/simple.go b/vendor/k8s.io/client-go/dynamic/fake/simple.go new file mode 100644 index 000000000..eec3cfbc9 --- /dev/null +++ b/vendor/k8s.io/client-go/dynamic/fake/simple.go @@ -0,0 +1,369 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package fake + +import ( + "strings" + + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/runtime/serializer" + "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/dynamic" + "k8s.io/client-go/testing" +) + +func NewSimpleDynamicClient(scheme *runtime.Scheme, objects ...runtime.Object) *FakeDynamicClient { + // In order to use List with this client, you have to have the v1.List registered in your scheme. Neat thing though + // it does NOT have to be the *same* list + scheme.AddKnownTypeWithName(schema.GroupVersionKind{Group: "fake-dynamic-client-group", Version: "v1", Kind: "List"}, &unstructured.UnstructuredList{}) + + codecs := serializer.NewCodecFactory(scheme) + o := testing.NewObjectTracker(scheme, codecs.UniversalDecoder()) + for _, obj := range objects { + if err := o.Add(obj); err != nil { + panic(err) + } + } + + cs := &FakeDynamicClient{scheme: scheme} + cs.AddReactor("*", "*", testing.ObjectReaction(o)) + cs.AddWatchReactor("*", func(action testing.Action) (handled bool, ret watch.Interface, err error) { + gvr := action.GetResource() + ns := action.GetNamespace() + watch, err := o.Watch(gvr, ns) + if err != nil { + return false, nil, err + } + return true, watch, nil + }) + + return cs +} + +// Clientset implements clientset.Interface. Meant to be embedded into a +// struct to get a default implementation. This makes faking out just the method +// you want to test easier. +type FakeDynamicClient struct { + testing.Fake + scheme *runtime.Scheme +} + +type dynamicResourceClient struct { + client *FakeDynamicClient + namespace string + resource schema.GroupVersionResource +} + +var _ dynamic.Interface = &FakeDynamicClient{} + +func (c *FakeDynamicClient) Resource(resource schema.GroupVersionResource) dynamic.NamespaceableResourceInterface { + return &dynamicResourceClient{client: c, resource: resource} +} + +func (c *dynamicResourceClient) Namespace(ns string) dynamic.ResourceInterface { + ret := *c + ret.namespace = ns + return &ret +} + +func (c *dynamicResourceClient) Create(obj *unstructured.Unstructured, opts metav1.CreateOptions, subresources ...string) (*unstructured.Unstructured, error) { + var uncastRet runtime.Object + var err error + switch { + case len(c.namespace) == 0 && len(subresources) == 0: + uncastRet, err = c.client.Fake. + Invokes(testing.NewRootCreateAction(c.resource, obj), obj) + + case len(c.namespace) == 0 && len(subresources) > 0: + accessor, err := meta.Accessor(obj) + if err != nil { + return nil, err + } + name := accessor.GetName() + uncastRet, err = c.client.Fake. + Invokes(testing.NewRootCreateSubresourceAction(c.resource, name, strings.Join(subresources, "/"), obj), obj) + + case len(c.namespace) > 0 && len(subresources) == 0: + uncastRet, err = c.client.Fake. + Invokes(testing.NewCreateAction(c.resource, c.namespace, obj), obj) + + case len(c.namespace) > 0 && len(subresources) > 0: + accessor, err := meta.Accessor(obj) + if err != nil { + return nil, err + } + name := accessor.GetName() + uncastRet, err = c.client.Fake. + Invokes(testing.NewCreateSubresourceAction(c.resource, name, strings.Join(subresources, "/"), c.namespace, obj), obj) + + } + + if err != nil { + return nil, err + } + if uncastRet == nil { + return nil, err + } + + ret := &unstructured.Unstructured{} + if err := c.client.scheme.Convert(uncastRet, ret, nil); err != nil { + return nil, err + } + return ret, err +} + +func (c *dynamicResourceClient) Update(obj *unstructured.Unstructured, opts metav1.UpdateOptions, subresources ...string) (*unstructured.Unstructured, error) { + var uncastRet runtime.Object + var err error + switch { + case len(c.namespace) == 0 && len(subresources) == 0: + uncastRet, err = c.client.Fake. + Invokes(testing.NewRootUpdateAction(c.resource, obj), obj) + + case len(c.namespace) == 0 && len(subresources) > 0: + uncastRet, err = c.client.Fake. + Invokes(testing.NewRootUpdateSubresourceAction(c.resource, strings.Join(subresources, "/"), obj), obj) + + case len(c.namespace) > 0 && len(subresources) == 0: + uncastRet, err = c.client.Fake. + Invokes(testing.NewUpdateAction(c.resource, c.namespace, obj), obj) + + case len(c.namespace) > 0 && len(subresources) > 0: + uncastRet, err = c.client.Fake. + Invokes(testing.NewUpdateSubresourceAction(c.resource, strings.Join(subresources, "/"), c.namespace, obj), obj) + + } + + if err != nil { + return nil, err + } + if uncastRet == nil { + return nil, err + } + + ret := &unstructured.Unstructured{} + if err := c.client.scheme.Convert(uncastRet, ret, nil); err != nil { + return nil, err + } + return ret, err +} + +func (c *dynamicResourceClient) UpdateStatus(obj *unstructured.Unstructured, opts metav1.UpdateOptions) (*unstructured.Unstructured, error) { + var uncastRet runtime.Object + var err error + switch { + case len(c.namespace) == 0: + uncastRet, err = c.client.Fake. + Invokes(testing.NewRootUpdateSubresourceAction(c.resource, "status", obj), obj) + + case len(c.namespace) > 0: + uncastRet, err = c.client.Fake. + Invokes(testing.NewUpdateSubresourceAction(c.resource, "status", c.namespace, obj), obj) + + } + + if err != nil { + return nil, err + } + if uncastRet == nil { + return nil, err + } + + ret := &unstructured.Unstructured{} + if err := c.client.scheme.Convert(uncastRet, ret, nil); err != nil { + return nil, err + } + return ret, err +} + +func (c *dynamicResourceClient) Delete(name string, opts *metav1.DeleteOptions, subresources ...string) error { + var err error + switch { + case len(c.namespace) == 0 && len(subresources) == 0: + _, err = c.client.Fake. + Invokes(testing.NewRootDeleteAction(c.resource, name), &metav1.Status{Status: "dynamic delete fail"}) + + case len(c.namespace) == 0 && len(subresources) > 0: + _, err = c.client.Fake. + Invokes(testing.NewRootDeleteSubresourceAction(c.resource, strings.Join(subresources, "/"), name), &metav1.Status{Status: "dynamic delete fail"}) + + case len(c.namespace) > 0 && len(subresources) == 0: + _, err = c.client.Fake. + Invokes(testing.NewDeleteAction(c.resource, c.namespace, name), &metav1.Status{Status: "dynamic delete fail"}) + + case len(c.namespace) > 0 && len(subresources) > 0: + _, err = c.client.Fake. + Invokes(testing.NewDeleteSubresourceAction(c.resource, strings.Join(subresources, "/"), c.namespace, name), &metav1.Status{Status: "dynamic delete fail"}) + } + + return err +} + +func (c *dynamicResourceClient) DeleteCollection(opts *metav1.DeleteOptions, listOptions metav1.ListOptions) error { + var err error + switch { + case len(c.namespace) == 0: + action := testing.NewRootDeleteCollectionAction(c.resource, listOptions) + _, err = c.client.Fake.Invokes(action, &metav1.Status{Status: "dynamic deletecollection fail"}) + + case len(c.namespace) > 0: + action := testing.NewDeleteCollectionAction(c.resource, c.namespace, listOptions) + _, err = c.client.Fake.Invokes(action, &metav1.Status{Status: "dynamic deletecollection fail"}) + + } + + return err +} + +func (c *dynamicResourceClient) Get(name string, opts metav1.GetOptions, subresources ...string) (*unstructured.Unstructured, error) { + var uncastRet runtime.Object + var err error + switch { + case len(c.namespace) == 0 && len(subresources) == 0: + uncastRet, err = c.client.Fake. + Invokes(testing.NewRootGetAction(c.resource, name), &metav1.Status{Status: "dynamic get fail"}) + + case len(c.namespace) == 0 && len(subresources) > 0: + uncastRet, err = c.client.Fake. + Invokes(testing.NewRootGetSubresourceAction(c.resource, strings.Join(subresources, "/"), name), &metav1.Status{Status: "dynamic get fail"}) + + case len(c.namespace) > 0 && len(subresources) == 0: + uncastRet, err = c.client.Fake. + Invokes(testing.NewGetAction(c.resource, c.namespace, name), &metav1.Status{Status: "dynamic get fail"}) + + case len(c.namespace) > 0 && len(subresources) > 0: + uncastRet, err = c.client.Fake. + Invokes(testing.NewGetSubresourceAction(c.resource, c.namespace, strings.Join(subresources, "/"), name), &metav1.Status{Status: "dynamic get fail"}) + } + + if err != nil { + return nil, err + } + if uncastRet == nil { + return nil, err + } + + ret := &unstructured.Unstructured{} + if err := c.client.scheme.Convert(uncastRet, ret, nil); err != nil { + return nil, err + } + return ret, err +} + +func (c *dynamicResourceClient) List(opts metav1.ListOptions) (*unstructured.UnstructuredList, error) { + var obj runtime.Object + var err error + switch { + case len(c.namespace) == 0: + obj, err = c.client.Fake. + Invokes(testing.NewRootListAction(c.resource, schema.GroupVersionKind{Group: "fake-dynamic-client-group", Version: "v1", Kind: "" /*List is appended by the tracker automatically*/}, opts), &metav1.Status{Status: "dynamic list fail"}) + + case len(c.namespace) > 0: + obj, err = c.client.Fake. + Invokes(testing.NewListAction(c.resource, schema.GroupVersionKind{Group: "fake-dynamic-client-group", Version: "v1", Kind: "" /*List is appended by the tracker automatically*/}, c.namespace, opts), &metav1.Status{Status: "dynamic list fail"}) + + } + + if obj == nil { + return nil, err + } + + label, _, _ := testing.ExtractFromListOptions(opts) + if label == nil { + label = labels.Everything() + } + + retUnstructured := &unstructured.Unstructured{} + if err := c.client.scheme.Convert(obj, retUnstructured, nil); err != nil { + return nil, err + } + entireList, err := retUnstructured.ToList() + if err != nil { + return nil, err + } + + list := &unstructured.UnstructuredList{} + for i := range entireList.Items { + item := &entireList.Items[i] + metadata, err := meta.Accessor(item) + if err != nil { + return nil, err + } + if label.Matches(labels.Set(metadata.GetLabels())) { + list.Items = append(list.Items, *item) + } + } + return list, nil +} + +func (c *dynamicResourceClient) Watch(opts metav1.ListOptions) (watch.Interface, error) { + switch { + case len(c.namespace) == 0: + return c.client.Fake. + InvokesWatch(testing.NewRootWatchAction(c.resource, opts)) + + case len(c.namespace) > 0: + return c.client.Fake. + InvokesWatch(testing.NewWatchAction(c.resource, c.namespace, opts)) + + } + + panic("math broke") +} + +// TODO: opts are currently ignored. +func (c *dynamicResourceClient) Patch(name string, pt types.PatchType, data []byte, opts metav1.UpdateOptions, subresources ...string) (*unstructured.Unstructured, error) { + var uncastRet runtime.Object + var err error + switch { + case len(c.namespace) == 0 && len(subresources) == 0: + uncastRet, err = c.client.Fake. + Invokes(testing.NewRootPatchAction(c.resource, name, pt, data), &metav1.Status{Status: "dynamic patch fail"}) + + case len(c.namespace) == 0 && len(subresources) > 0: + uncastRet, err = c.client.Fake. + Invokes(testing.NewRootPatchSubresourceAction(c.resource, name, pt, data, subresources...), &metav1.Status{Status: "dynamic patch fail"}) + + case len(c.namespace) > 0 && len(subresources) == 0: + uncastRet, err = c.client.Fake. + Invokes(testing.NewPatchAction(c.resource, c.namespace, name, pt, data), &metav1.Status{Status: "dynamic patch fail"}) + + case len(c.namespace) > 0 && len(subresources) > 0: + uncastRet, err = c.client.Fake. + Invokes(testing.NewPatchSubresourceAction(c.resource, c.namespace, name, pt, data, subresources...), &metav1.Status{Status: "dynamic patch fail"}) + + } + + if err != nil { + return nil, err + } + if uncastRet == nil { + return nil, err + } + + ret := &unstructured.Unstructured{} + if err := c.client.scheme.Convert(uncastRet, ret, nil); err != nil { + return nil, err + } + return ret, err +} diff --git a/vendor/k8s.io/client-go/dynamic/fake/simple_test.go b/vendor/k8s.io/client-go/dynamic/fake/simple_test.go new file mode 100644 index 000000000..f09919564 --- /dev/null +++ b/vendor/k8s.io/client-go/dynamic/fake/simple_test.go @@ -0,0 +1,197 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package fake + +import ( + "fmt" + "testing" + + "k8s.io/apimachinery/pkg/api/equality" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/util/diff" +) + +const ( + testGroup = "testgroup" + testVersion = "testversion" + testResource = "testkinds" + testNamespace = "testns" + testName = "testname" + testKind = "TestKind" + testAPIVersion = "testgroup/testversion" +) + +func newUnstructured(apiVersion, kind, namespace, name string) *unstructured.Unstructured { + return &unstructured.Unstructured{ + Object: map[string]interface{}{ + "apiVersion": apiVersion, + "kind": kind, + "metadata": map[string]interface{}{ + "namespace": namespace, + "name": name, + }, + }, + } +} + +func newUnstructuredWithSpec(spec map[string]interface{}) *unstructured.Unstructured { + u := newUnstructured(testAPIVersion, testKind, testNamespace, testName) + u.Object["spec"] = spec + return u +} + +func TestList(t *testing.T) { + scheme := runtime.NewScheme() + + client := NewSimpleDynamicClient(scheme, + newUnstructured("group/version", "TheKind", "ns-foo", "name-foo"), + newUnstructured("group2/version", "TheKind", "ns-foo", "name2-foo"), + newUnstructured("group/version", "TheKind", "ns-foo", "name-bar"), + newUnstructured("group/version", "TheKind", "ns-foo", "name-baz"), + newUnstructured("group2/version", "TheKind", "ns-foo", "name2-baz"), + ) + listFirst, err := client.Resource(schema.GroupVersionResource{Group: "group", Version: "version", Resource: "thekinds"}).List(metav1.ListOptions{}) + if err != nil { + t.Fatal(err) + } + + expected := []unstructured.Unstructured{ + *newUnstructured("group/version", "TheKind", "ns-foo", "name-foo"), + *newUnstructured("group/version", "TheKind", "ns-foo", "name-bar"), + *newUnstructured("group/version", "TheKind", "ns-foo", "name-baz"), + } + if !equality.Semantic.DeepEqual(listFirst.Items, expected) { + t.Fatal(diff.ObjectGoPrintDiff(expected, listFirst.Items)) + } +} + +type patchTestCase struct { + name string + object runtime.Object + patchType types.PatchType + patchBytes []byte + wantErrMsg string + expectedPatchedObject runtime.Object +} + +func (tc *patchTestCase) runner(t *testing.T) { + client := NewSimpleDynamicClient(runtime.NewScheme(), tc.object) + resourceInterface := client.Resource(schema.GroupVersionResource{Group: testGroup, Version: testVersion, Resource: testResource}).Namespace(testNamespace) + + got, recErr := resourceInterface.Patch(testName, tc.patchType, tc.patchBytes, metav1.UpdateOptions{}) + + if err := tc.verifyErr(recErr); err != nil { + t.Error(err) + } + + if err := tc.verifyResult(got); err != nil { + t.Error(err) + } + +} + +// verifyErr verifies that the given error returned from Patch is the error +// expected by the test case. +func (tc *patchTestCase) verifyErr(err error) error { + if tc.wantErrMsg != "" && err == nil { + return fmt.Errorf("want error, got nil") + } + + if tc.wantErrMsg == "" && err != nil { + return fmt.Errorf("want no error, got %v", err) + } + + if err != nil { + if want, got := tc.wantErrMsg, err.Error(); want != got { + return fmt.Errorf("incorrect error: want: %q got: %q", want, got) + } + } + return nil +} + +func (tc *patchTestCase) verifyResult(result *unstructured.Unstructured) error { + if tc.expectedPatchedObject == nil && result == nil { + return nil + } + if !equality.Semantic.DeepEqual(result, tc.expectedPatchedObject) { + return fmt.Errorf("unexpected diff in received object: %s", diff.ObjectGoPrintDiff(tc.expectedPatchedObject, result)) + } + return nil +} + +func TestPatch(t *testing.T) { + testCases := []patchTestCase{ + { + name: "jsonpatch fails with merge type", + object: newUnstructuredWithSpec(map[string]interface{}{"foo": "bar"}), + patchType: types.StrategicMergePatchType, + patchBytes: []byte(`[]`), + wantErrMsg: "invalid JSON document", + }, { + name: "jsonpatch works with empty patch", + object: newUnstructuredWithSpec(map[string]interface{}{"foo": "bar"}), + patchType: types.JSONPatchType, + // No-op + patchBytes: []byte(`[]`), + expectedPatchedObject: newUnstructuredWithSpec(map[string]interface{}{"foo": "bar"}), + }, { + name: "jsonpatch works with simple change patch", + object: newUnstructuredWithSpec(map[string]interface{}{"foo": "bar"}), + patchType: types.JSONPatchType, + // change spec.foo from bar to foobar + patchBytes: []byte(`[{"op": "replace", "path": "/spec/foo", "value": "foobar"}]`), + expectedPatchedObject: newUnstructuredWithSpec(map[string]interface{}{"foo": "foobar"}), + }, { + name: "jsonpatch works with simple addition", + object: newUnstructuredWithSpec(map[string]interface{}{"foo": "bar"}), + patchType: types.JSONPatchType, + // add spec.newvalue = dummy + patchBytes: []byte(`[{"op": "add", "path": "/spec/newvalue", "value": "dummy"}]`), + expectedPatchedObject: newUnstructuredWithSpec(map[string]interface{}{"foo": "bar", "newvalue": "dummy"}), + }, { + name: "jsonpatch works with simple deletion", + object: newUnstructuredWithSpec(map[string]interface{}{"foo": "bar", "toremove": "shouldnotbehere"}), + patchType: types.JSONPatchType, + // remove spec.newvalue = dummy + patchBytes: []byte(`[{"op": "remove", "path": "/spec/toremove"}]`), + expectedPatchedObject: newUnstructuredWithSpec(map[string]interface{}{"foo": "bar"}), + }, { + name: "strategic merge patch fails with JSONPatch", + object: newUnstructuredWithSpec(map[string]interface{}{"foo": "bar"}), + patchType: types.StrategicMergePatchType, + // add spec.newvalue = dummy + patchBytes: []byte(`[{"op": "add", "path": "/spec/newvalue", "value": "dummy"}]`), + wantErrMsg: "invalid JSON document", + }, { + name: "merge patch fails as unsupported", + object: newUnstructured(testAPIVersion, testKind, testNamespace, testName), + patchType: types.MergePatchType, + patchBytes: []byte(`{}`), + wantErrMsg: "PatchType is not supported", + }, + // TODO: Add tests for strategic merge using v1.Pod for example to ensure the test cases + // demonstrate expected use cases. + } + + for _, tc := range testCases { + t.Run(tc.name, tc.runner) + } +} diff --git a/vendor/k8s.io/client-go/dynamic/interface.go b/vendor/k8s.io/client-go/dynamic/interface.go new file mode 100644 index 000000000..c457be178 --- /dev/null +++ b/vendor/k8s.io/client-go/dynamic/interface.go @@ -0,0 +1,59 @@ +/* +Copyright 2016 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package dynamic + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/watch" +) + +type Interface interface { + Resource(resource schema.GroupVersionResource) NamespaceableResourceInterface +} + +type ResourceInterface interface { + Create(obj *unstructured.Unstructured, options metav1.CreateOptions, subresources ...string) (*unstructured.Unstructured, error) + Update(obj *unstructured.Unstructured, options metav1.UpdateOptions, subresources ...string) (*unstructured.Unstructured, error) + UpdateStatus(obj *unstructured.Unstructured, options metav1.UpdateOptions) (*unstructured.Unstructured, error) + Delete(name string, options *metav1.DeleteOptions, subresources ...string) error + DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error + Get(name string, options metav1.GetOptions, subresources ...string) (*unstructured.Unstructured, error) + List(opts metav1.ListOptions) (*unstructured.UnstructuredList, error) + Watch(opts metav1.ListOptions) (watch.Interface, error) + Patch(name string, pt types.PatchType, data []byte, options metav1.UpdateOptions, subresources ...string) (*unstructured.Unstructured, error) +} + +type NamespaceableResourceInterface interface { + Namespace(string) ResourceInterface + ResourceInterface +} + +// APIPathResolverFunc knows how to convert a groupVersion to its API path. The Kind field is optional. +// TODO find a better place to move this for existing callers +type APIPathResolverFunc func(kind schema.GroupVersionKind) string + +// LegacyAPIPathResolverFunc can resolve paths properly with the legacy API. +// TODO find a better place to move this for existing callers +func LegacyAPIPathResolverFunc(kind schema.GroupVersionKind) string { + if len(kind.Group) == 0 { + return "/api" + } + return "/apis" +} diff --git a/vendor/k8s.io/client-go/dynamic/scheme.go b/vendor/k8s.io/client-go/dynamic/scheme.go new file mode 100644 index 000000000..c4aa081f9 --- /dev/null +++ b/vendor/k8s.io/client-go/dynamic/scheme.go @@ -0,0 +1,98 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package dynamic + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/runtime/serializer" + "k8s.io/apimachinery/pkg/runtime/serializer/json" + "k8s.io/apimachinery/pkg/runtime/serializer/versioning" +) + +var watchScheme = runtime.NewScheme() +var basicScheme = runtime.NewScheme() +var deleteScheme = runtime.NewScheme() +var parameterScheme = runtime.NewScheme() +var deleteOptionsCodec = serializer.NewCodecFactory(deleteScheme) +var dynamicParameterCodec = runtime.NewParameterCodec(parameterScheme) + +var versionV1 = schema.GroupVersion{Version: "v1"} + +func init() { + metav1.AddToGroupVersion(watchScheme, versionV1) + metav1.AddToGroupVersion(basicScheme, versionV1) + metav1.AddToGroupVersion(parameterScheme, versionV1) + metav1.AddToGroupVersion(deleteScheme, versionV1) +} + +var watchJsonSerializerInfo = runtime.SerializerInfo{ + MediaType: "application/json", + EncodesAsText: true, + Serializer: json.NewSerializer(json.DefaultMetaFactory, watchScheme, watchScheme, false), + PrettySerializer: json.NewSerializer(json.DefaultMetaFactory, watchScheme, watchScheme, true), + StreamSerializer: &runtime.StreamSerializerInfo{ + EncodesAsText: true, + Serializer: json.NewSerializer(json.DefaultMetaFactory, watchScheme, watchScheme, false), + Framer: json.Framer, + }, +} + +// watchNegotiatedSerializer is used to read the wrapper of the watch stream +type watchNegotiatedSerializer struct{} + +var watchNegotiatedSerializerInstance = watchNegotiatedSerializer{} + +func (s watchNegotiatedSerializer) SupportedMediaTypes() []runtime.SerializerInfo { + return []runtime.SerializerInfo{watchJsonSerializerInfo} +} + +func (s watchNegotiatedSerializer) EncoderForVersion(encoder runtime.Encoder, gv runtime.GroupVersioner) runtime.Encoder { + return versioning.NewDefaultingCodecForScheme(watchScheme, encoder, nil, gv, nil) +} + +func (s watchNegotiatedSerializer) DecoderToVersion(decoder runtime.Decoder, gv runtime.GroupVersioner) runtime.Decoder { + return versioning.NewDefaultingCodecForScheme(watchScheme, nil, decoder, nil, gv) +} + +// basicNegotiatedSerializer is used to handle discovery and error handling serialization +type basicNegotiatedSerializer struct{} + +func (s basicNegotiatedSerializer) SupportedMediaTypes() []runtime.SerializerInfo { + return []runtime.SerializerInfo{ + { + MediaType: "application/json", + EncodesAsText: true, + Serializer: json.NewSerializer(json.DefaultMetaFactory, basicScheme, basicScheme, false), + PrettySerializer: json.NewSerializer(json.DefaultMetaFactory, basicScheme, basicScheme, true), + StreamSerializer: &runtime.StreamSerializerInfo{ + EncodesAsText: true, + Serializer: json.NewSerializer(json.DefaultMetaFactory, basicScheme, basicScheme, false), + Framer: json.Framer, + }, + }, + } +} + +func (s basicNegotiatedSerializer) EncoderForVersion(encoder runtime.Encoder, gv runtime.GroupVersioner) runtime.Encoder { + return versioning.NewDefaultingCodecForScheme(watchScheme, encoder, nil, gv, nil) +} + +func (s basicNegotiatedSerializer) DecoderToVersion(decoder runtime.Decoder, gv runtime.GroupVersioner) runtime.Decoder { + return versioning.NewDefaultingCodecForScheme(watchScheme, nil, decoder, nil, gv) +} diff --git a/vendor/k8s.io/client-go/dynamic/simple.go b/vendor/k8s.io/client-go/dynamic/simple.go new file mode 100644 index 000000000..9e21cda6e --- /dev/null +++ b/vendor/k8s.io/client-go/dynamic/simple.go @@ -0,0 +1,326 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package dynamic + +import ( + "io" + + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/runtime/serializer/streaming" + "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/rest" +) + +type dynamicClient struct { + client *rest.RESTClient +} + +var _ Interface = &dynamicClient{} + +// NewForConfigOrDie creates a new Interface for the given config and +// panics if there is an error in the config. +func NewForConfigOrDie(c *rest.Config) Interface { + ret, err := NewForConfig(c) + if err != nil { + panic(err) + } + return ret +} + +func NewForConfig(inConfig *rest.Config) (Interface, error) { + config := rest.CopyConfig(inConfig) + // for serializing the options + config.GroupVersion = &schema.GroupVersion{} + config.APIPath = "/if-you-see-this-search-for-the-break" + config.AcceptContentTypes = "application/json" + config.ContentType = "application/json" + config.NegotiatedSerializer = basicNegotiatedSerializer{} // this gets used for discovery and error handling types + if config.UserAgent == "" { + config.UserAgent = rest.DefaultKubernetesUserAgent() + } + + restClient, err := rest.RESTClientFor(config) + if err != nil { + return nil, err + } + + return &dynamicClient{client: restClient}, nil +} + +type dynamicResourceClient struct { + client *dynamicClient + namespace string + resource schema.GroupVersionResource +} + +func (c *dynamicClient) Resource(resource schema.GroupVersionResource) NamespaceableResourceInterface { + return &dynamicResourceClient{client: c, resource: resource} +} + +func (c *dynamicResourceClient) Namespace(ns string) ResourceInterface { + ret := *c + ret.namespace = ns + return &ret +} + +func (c *dynamicResourceClient) Create(obj *unstructured.Unstructured, opts metav1.CreateOptions, subresources ...string) (*unstructured.Unstructured, error) { + outBytes, err := runtime.Encode(unstructured.UnstructuredJSONScheme, obj) + if err != nil { + return nil, err + } + name := "" + if len(subresources) > 0 { + accessor, err := meta.Accessor(obj) + if err != nil { + return nil, err + } + name = accessor.GetName() + } + + result := c.client.client. + Post(). + AbsPath(append(c.makeURLSegments(name), subresources...)...). + Body(outBytes). + SpecificallyVersionedParams(&opts, dynamicParameterCodec, versionV1). + Do() + if err := result.Error(); err != nil { + return nil, err + } + + retBytes, err := result.Raw() + if err != nil { + return nil, err + } + uncastObj, err := runtime.Decode(unstructured.UnstructuredJSONScheme, retBytes) + if err != nil { + return nil, err + } + return uncastObj.(*unstructured.Unstructured), nil +} + +func (c *dynamicResourceClient) Update(obj *unstructured.Unstructured, opts metav1.UpdateOptions, subresources ...string) (*unstructured.Unstructured, error) { + accessor, err := meta.Accessor(obj) + if err != nil { + return nil, err + } + outBytes, err := runtime.Encode(unstructured.UnstructuredJSONScheme, obj) + if err != nil { + return nil, err + } + + result := c.client.client. + Put(). + AbsPath(append(c.makeURLSegments(accessor.GetName()), subresources...)...). + Body(outBytes). + SpecificallyVersionedParams(&opts, dynamicParameterCodec, versionV1). + Do() + if err := result.Error(); err != nil { + return nil, err + } + + retBytes, err := result.Raw() + if err != nil { + return nil, err + } + uncastObj, err := runtime.Decode(unstructured.UnstructuredJSONScheme, retBytes) + if err != nil { + return nil, err + } + return uncastObj.(*unstructured.Unstructured), nil +} + +func (c *dynamicResourceClient) UpdateStatus(obj *unstructured.Unstructured, opts metav1.UpdateOptions) (*unstructured.Unstructured, error) { + accessor, err := meta.Accessor(obj) + if err != nil { + return nil, err + } + + outBytes, err := runtime.Encode(unstructured.UnstructuredJSONScheme, obj) + if err != nil { + return nil, err + } + + result := c.client.client. + Put(). + AbsPath(append(c.makeURLSegments(accessor.GetName()), "status")...). + Body(outBytes). + SpecificallyVersionedParams(&opts, dynamicParameterCodec, versionV1). + Do() + if err := result.Error(); err != nil { + return nil, err + } + + retBytes, err := result.Raw() + if err != nil { + return nil, err + } + uncastObj, err := runtime.Decode(unstructured.UnstructuredJSONScheme, retBytes) + if err != nil { + return nil, err + } + return uncastObj.(*unstructured.Unstructured), nil +} + +func (c *dynamicResourceClient) Delete(name string, opts *metav1.DeleteOptions, subresources ...string) error { + if opts == nil { + opts = &metav1.DeleteOptions{} + } + deleteOptionsByte, err := runtime.Encode(deleteOptionsCodec.LegacyCodec(schema.GroupVersion{Version: "v1"}), opts) + if err != nil { + return err + } + + result := c.client.client. + Delete(). + AbsPath(append(c.makeURLSegments(name), subresources...)...). + Body(deleteOptionsByte). + Do() + return result.Error() +} + +func (c *dynamicResourceClient) DeleteCollection(opts *metav1.DeleteOptions, listOptions metav1.ListOptions) error { + if opts == nil { + opts = &metav1.DeleteOptions{} + } + deleteOptionsByte, err := runtime.Encode(deleteOptionsCodec.LegacyCodec(schema.GroupVersion{Version: "v1"}), opts) + if err != nil { + return err + } + + result := c.client.client. + Delete(). + AbsPath(c.makeURLSegments("")...). + Body(deleteOptionsByte). + SpecificallyVersionedParams(&listOptions, dynamicParameterCodec, versionV1). + Do() + return result.Error() +} + +func (c *dynamicResourceClient) Get(name string, opts metav1.GetOptions, subresources ...string) (*unstructured.Unstructured, error) { + result := c.client.client.Get().AbsPath(append(c.makeURLSegments(name), subresources...)...).SpecificallyVersionedParams(&opts, dynamicParameterCodec, versionV1).Do() + if err := result.Error(); err != nil { + return nil, err + } + retBytes, err := result.Raw() + if err != nil { + return nil, err + } + uncastObj, err := runtime.Decode(unstructured.UnstructuredJSONScheme, retBytes) + if err != nil { + return nil, err + } + return uncastObj.(*unstructured.Unstructured), nil +} + +func (c *dynamicResourceClient) List(opts metav1.ListOptions) (*unstructured.UnstructuredList, error) { + result := c.client.client.Get().AbsPath(c.makeURLSegments("")...).SpecificallyVersionedParams(&opts, dynamicParameterCodec, versionV1).Do() + if err := result.Error(); err != nil { + return nil, err + } + retBytes, err := result.Raw() + if err != nil { + return nil, err + } + uncastObj, err := runtime.Decode(unstructured.UnstructuredJSONScheme, retBytes) + if err != nil { + return nil, err + } + if list, ok := uncastObj.(*unstructured.UnstructuredList); ok { + return list, nil + } + + list, err := uncastObj.(*unstructured.Unstructured).ToList() + if err != nil { + return nil, err + } + return list, nil +} + +func (c *dynamicResourceClient) Watch(opts metav1.ListOptions) (watch.Interface, error) { + internalGV := schema.GroupVersions{ + {Group: c.resource.Group, Version: runtime.APIVersionInternal}, + // always include the legacy group as a decoding target to handle non-error `Status` return types + {Group: "", Version: runtime.APIVersionInternal}, + } + s := &rest.Serializers{ + Encoder: watchNegotiatedSerializerInstance.EncoderForVersion(watchJsonSerializerInfo.Serializer, c.resource.GroupVersion()), + Decoder: watchNegotiatedSerializerInstance.DecoderToVersion(watchJsonSerializerInfo.Serializer, internalGV), + + RenegotiatedDecoder: func(contentType string, params map[string]string) (runtime.Decoder, error) { + return watchNegotiatedSerializerInstance.DecoderToVersion(watchJsonSerializerInfo.Serializer, internalGV), nil + }, + StreamingSerializer: watchJsonSerializerInfo.StreamSerializer.Serializer, + Framer: watchJsonSerializerInfo.StreamSerializer.Framer, + } + + wrappedDecoderFn := func(body io.ReadCloser) streaming.Decoder { + framer := s.Framer.NewFrameReader(body) + return streaming.NewDecoder(framer, s.StreamingSerializer) + } + + opts.Watch = true + return c.client.client.Get().AbsPath(c.makeURLSegments("")...). + SpecificallyVersionedParams(&opts, dynamicParameterCodec, versionV1). + WatchWithSpecificDecoders(wrappedDecoderFn, unstructured.UnstructuredJSONScheme) +} + +func (c *dynamicResourceClient) Patch(name string, pt types.PatchType, data []byte, opts metav1.UpdateOptions, subresources ...string) (*unstructured.Unstructured, error) { + result := c.client.client. + Patch(pt). + AbsPath(append(c.makeURLSegments(name), subresources...)...). + Body(data). + SpecificallyVersionedParams(&opts, dynamicParameterCodec, versionV1). + Do() + if err := result.Error(); err != nil { + return nil, err + } + retBytes, err := result.Raw() + if err != nil { + return nil, err + } + uncastObj, err := runtime.Decode(unstructured.UnstructuredJSONScheme, retBytes) + if err != nil { + return nil, err + } + return uncastObj.(*unstructured.Unstructured), nil +} + +func (c *dynamicResourceClient) makeURLSegments(name string) []string { + url := []string{} + if len(c.resource.Group) == 0 { + url = append(url, "api") + } else { + url = append(url, "apis", c.resource.Group) + } + url = append(url, c.resource.Version) + + if len(c.namespace) > 0 { + url = append(url, "namespaces", c.namespace) + } + url = append(url, c.resource.Resource) + + if len(name) > 0 { + url = append(url, name) + } + + return url +} diff --git a/vendor/k8s.io/client-go/examples/README.md b/vendor/k8s.io/client-go/examples/README.md index 4bdc6b1ce..0bbc56720 100644 --- a/vendor/k8s.io/client-go/examples/README.md +++ b/vendor/k8s.io/client-go/examples/README.md @@ -25,3 +25,7 @@ for client-go. the custom resources. [informer]: https://godoc.org/k8s.io/client-go/tools/cache#NewInformer + +### Testing + +- [**Fake Client**](./fake-client): Use a fake client in tests. \ No newline at end of file diff --git a/vendor/k8s.io/client-go/examples/create-update-delete-deployment/BUILD b/vendor/k8s.io/client-go/examples/create-update-delete-deployment/BUILD deleted file mode 100644 index 2da72ec9f..000000000 --- a/vendor/k8s.io/client-go/examples/create-update-delete-deployment/BUILD +++ /dev/null @@ -1,40 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_binary", - "go_library", -) - -go_binary( - name = "create-update-delete-deployment", - embed = [":go_default_library"], -) - -go_library( - name = "go_default_library", - srcs = ["main.go"], - importpath = "k8s.io/client-go/examples/create-update-delete-deployment", - deps = [ - "//vendor/k8s.io/api/apps/v1beta1:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes:go_default_library", - "//vendor/k8s.io/client-go/tools/clientcmd:go_default_library", - "//vendor/k8s.io/client-go/util/homedir:go_default_library", - "//vendor/k8s.io/client-go/util/retry:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/examples/create-update-delete-deployment/README.md b/vendor/k8s.io/client-go/examples/create-update-delete-deployment/README.md index 47d8dd1ee..72cfc5d91 100644 --- a/vendor/k8s.io/client-go/examples/create-update-delete-deployment/README.md +++ b/vendor/k8s.io/client-go/examples/create-update-delete-deployment/README.md @@ -49,7 +49,7 @@ Running this command will execute the following operations on your cluster: Each step is separated by an interactive prompt. You must hit the Return key to proceed to the next step. You can use these prompts as -a break to take time to run `kubectl` and inspect the result of the operations +a break to take time to run `kubectl` and inspect the result of the operations executed. You should see an output like the following: diff --git a/vendor/k8s.io/client-go/examples/create-update-delete-deployment/main.go b/vendor/k8s.io/client-go/examples/create-update-delete-deployment/main.go index f6d622745..333ada018 100644 --- a/vendor/k8s.io/client-go/examples/create-update-delete-deployment/main.go +++ b/vendor/k8s.io/client-go/examples/create-update-delete-deployment/main.go @@ -24,7 +24,7 @@ import ( "os" "path/filepath" - appsv1beta1 "k8s.io/api/apps/v1beta1" + appsv1 "k8s.io/api/apps/v1" apiv1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes" @@ -53,14 +53,19 @@ func main() { panic(err) } - deploymentsClient := clientset.AppsV1beta1().Deployments(apiv1.NamespaceDefault) + deploymentsClient := clientset.AppsV1().Deployments(apiv1.NamespaceDefault) - deployment := &appsv1beta1.Deployment{ + deployment := &appsv1.Deployment{ ObjectMeta: metav1.ObjectMeta{ Name: "demo-deployment", }, - Spec: appsv1beta1.DeploymentSpec{ + Spec: appsv1.DeploymentSpec{ Replicas: int32Ptr(2), + Selector: &metav1.LabelSelector{ + MatchLabels: map[string]string{ + "app": "demo", + }, + }, Template: apiv1.PodTemplateSpec{ ObjectMeta: metav1.ObjectMeta{ Labels: map[string]string{ @@ -128,27 +133,6 @@ func main() { } fmt.Println("Updated deployment...") - // Rollback Deployment - prompt() - fmt.Println("Rolling back deployment...") - // Once again use RetryOnConflict to avoid update conflicts - retryErr = retry.RetryOnConflict(retry.DefaultRetry, func() error { - result, getErr := deploymentsClient.Get("demo-deployment", metav1.GetOptions{}) - if getErr != nil { - panic(fmt.Errorf("Failed to get latest version of Deployment: %v", getErr)) - } - - result.Spec.RollbackTo = &appsv1beta1.RollbackConfig{ - Revision: 0, // can be specific revision number, or 0 for last revision - } - _, updateErr := deploymentsClient.Update(result) - return updateErr - }) - if retryErr != nil { - panic(fmt.Errorf("Rollback failed: %v", retryErr)) - } - fmt.Println("Rolled back deployment...") - // List Deployments prompt() fmt.Printf("Listing deployments in namespace %q:\n", apiv1.NamespaceDefault) diff --git a/vendor/k8s.io/client-go/examples/fake-client/README.md b/vendor/k8s.io/client-go/examples/fake-client/README.md new file mode 100644 index 000000000..89874460c --- /dev/null +++ b/vendor/k8s.io/client-go/examples/fake-client/README.md @@ -0,0 +1,14 @@ +# Fake Client Example + +This example demonstrates how to use a fake client with SharedInformerFactory in tests. + +It covers: + * Creating the fake client + * Setting up real informers + * Injecting events into those informers + +## Running + +``` +go test -v k8s.io/client-go/examples/fake-client +``` \ No newline at end of file diff --git a/vendor/k8s.io/client-go/examples/fake-client/doc.go b/vendor/k8s.io/client-go/examples/fake-client/doc.go new file mode 100644 index 000000000..1c02e5ea5 --- /dev/null +++ b/vendor/k8s.io/client-go/examples/fake-client/doc.go @@ -0,0 +1,20 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Package fakeclient contains examples on how to use fakeclient in tests. +// Note: This file is here to avoid warnings on go build since there are no +// non-test files in this package. +package fakeclient diff --git a/vendor/k8s.io/client-go/examples/fake-client/main_test.go b/vendor/k8s.io/client-go/examples/fake-client/main_test.go new file mode 100644 index 000000000..d77d7ecbc --- /dev/null +++ b/vendor/k8s.io/client-go/examples/fake-client/main_test.go @@ -0,0 +1,77 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package fakeclient + +import ( + "context" + "testing" + "time" + + "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/client-go/informers" + "k8s.io/client-go/kubernetes/fake" + "k8s.io/client-go/tools/cache" +) + +// TestFakeClient demonstrates how to use a fake client with SharedInformerFactory in tests. +func TestFakeClient(t *testing.T) { + // Use a timeout to keep the test from hanging. + ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) + + // Create the fake client. + client := fake.NewSimpleClientset() + + // We will create an informer that writes added pods to a channel. + pods := make(chan *v1.Pod, 1) + informers := informers.NewSharedInformerFactory(client, 0) + podInformer := informers.Core().V1().Pods().Informer() + podInformer.AddEventHandler(&cache.ResourceEventHandlerFuncs{ + AddFunc: func(obj interface{}) { + pod := obj.(*v1.Pod) + t.Logf("pod added: %s/%s", pod.Namespace, pod.Name) + pods <- pod + cancel() + }, + }) + + // Make sure informers are running. + informers.Start(ctx.Done()) + + // This is not required in tests, but it serves as a proof-of-concept by + // ensuring that the informer goroutine have warmed up and called List before + // we send any events to it. + for !podInformer.HasSynced() { + time.Sleep(10 * time.Millisecond) + } + + // Inject an event into the fake client. + p := &v1.Pod{ObjectMeta: metav1.ObjectMeta{Name: "my-pod"}} + _, err := client.Core().Pods("test-ns").Create(p) + if err != nil { + t.Errorf("error injecting pod add: %v", err) + } + + // Wait and check result. + <-ctx.Done() + select { + case pod := <-pods: + t.Logf("Got pod from channel: %s/%s", pod.Namespace, pod.Name) + default: + t.Error("Informer did not get the added pod") + } +} diff --git a/vendor/k8s.io/client-go/examples/in-cluster-client-configuration/BUILD b/vendor/k8s.io/client-go/examples/in-cluster-client-configuration/BUILD deleted file mode 100644 index f4146ae37..000000000 --- a/vendor/k8s.io/client-go/examples/in-cluster-client-configuration/BUILD +++ /dev/null @@ -1,37 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_binary", - "go_library", -) - -go_binary( - name = "in-cluster-client-configuration", - embed = [":go_default_library"], -) - -go_library( - name = "go_default_library", - srcs = ["main.go"], - importpath = "k8s.io/client-go/examples/in-cluster-client-configuration", - deps = [ - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/examples/in-cluster-client-configuration/README.md b/vendor/k8s.io/client-go/examples/in-cluster-client-configuration/README.md index 811b750c9..eaa10e0fe 100644 --- a/vendor/k8s.io/client-go/examples/in-cluster-client-configuration/README.md +++ b/vendor/k8s.io/client-go/examples/in-cluster-client-configuration/README.md @@ -25,7 +25,13 @@ build the image on Minikube: docker build -t in-cluster . If you are not using Minikube, you should build this image and push it to a registry -that your Kubernetes cluster can pull from. +that your Kubernetes cluster can pull from. If you have RBAC enabled, use the following +snippet to create role binding which will grant the default service account view +permissions. + +``` +kubectl create clusterrolebinding default-view --clusterrole=view --serviceaccount=default:default +``` Then, run the image in a Pod with a single instance Deployment: diff --git a/vendor/k8s.io/client-go/examples/out-of-cluster-client-configuration/BUILD b/vendor/k8s.io/client-go/examples/out-of-cluster-client-configuration/BUILD deleted file mode 100644 index 2fda9686f..000000000 --- a/vendor/k8s.io/client-go/examples/out-of-cluster-client-configuration/BUILD +++ /dev/null @@ -1,37 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_binary", - "go_library", -) - -go_binary( - name = "out-of-cluster-client-configuration", - embed = [":go_default_library"], -) - -go_library( - name = "go_default_library", - srcs = ["main.go"], - importpath = "k8s.io/client-go/examples/out-of-cluster-client-configuration", - deps = [ - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes:go_default_library", - "//vendor/k8s.io/client-go/tools/clientcmd:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/examples/workqueue/BUILD b/vendor/k8s.io/client-go/examples/workqueue/BUILD deleted file mode 100644 index 8c3c7cb51..000000000 --- a/vendor/k8s.io/client-go/examples/workqueue/BUILD +++ /dev/null @@ -1,43 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_binary", - "go_library", -) - -go_binary( - name = "workqueue", - embed = [":go_default_library"], -) - -go_library( - name = "go_default_library", - srcs = ["main.go"], - importpath = "k8s.io/client-go/examples/workqueue", - deps = [ - "//vendor/github.com/golang/glog:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", - "//vendor/k8s.io/client-go/kubernetes:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - "//vendor/k8s.io/client-go/tools/clientcmd:go_default_library", - "//vendor/k8s.io/client-go/util/workqueue:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/examples/workqueue/main.go b/vendor/k8s.io/client-go/examples/workqueue/main.go index 6768f5d91..c306aaae0 100644 --- a/vendor/k8s.io/client-go/examples/workqueue/main.go +++ b/vendor/k8s.io/client-go/examples/workqueue/main.go @@ -21,7 +21,7 @@ import ( "fmt" "time" - "github.com/golang/glog" + "k8s.io/klog" "k8s.io/api/core/v1" meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -72,7 +72,7 @@ func (c *Controller) processNextItem() bool { func (c *Controller) syncToStdout(key string) error { obj, exists, err := c.indexer.GetByKey(key) if err != nil { - glog.Errorf("Fetching object with key %s from store failed with %v", key, err) + klog.Errorf("Fetching object with key %s from store failed with %v", key, err) return err } @@ -99,7 +99,7 @@ func (c *Controller) handleErr(err error, key interface{}) { // This controller retries 5 times if something goes wrong. After that, it stops trying. if c.queue.NumRequeues(key) < 5 { - glog.Infof("Error syncing pod %v: %v", key, err) + klog.Infof("Error syncing pod %v: %v", key, err) // Re-enqueue the key rate limited. Based on the rate limiter on the // queue and the re-enqueue history, the key will be processed later again. @@ -110,7 +110,7 @@ func (c *Controller) handleErr(err error, key interface{}) { c.queue.Forget(key) // Report to an external entity that, even after several retries, we could not successfully process this key runtime.HandleError(err) - glog.Infof("Dropping pod %q out of the queue: %v", key, err) + klog.Infof("Dropping pod %q out of the queue: %v", key, err) } func (c *Controller) Run(threadiness int, stopCh chan struct{}) { @@ -118,7 +118,7 @@ func (c *Controller) Run(threadiness int, stopCh chan struct{}) { // Let the workers stop when we are done defer c.queue.ShutDown() - glog.Info("Starting Pod controller") + klog.Info("Starting Pod controller") go c.informer.Run(stopCh) @@ -133,7 +133,7 @@ func (c *Controller) Run(threadiness int, stopCh chan struct{}) { } <-stopCh - glog.Info("Stopping Pod controller") + klog.Info("Stopping Pod controller") } func (c *Controller) runWorker() { @@ -152,13 +152,13 @@ func main() { // creates the connection config, err := clientcmd.BuildConfigFromFlags(master, kubeconfig) if err != nil { - glog.Fatal(err) + klog.Fatal(err) } // creates the clientset clientset, err := kubernetes.NewForConfig(config) if err != nil { - glog.Fatal(err) + klog.Fatal(err) } // create the pod watcher diff --git a/vendor/k8s.io/client-go/informers/BUILD b/vendor/k8s.io/client-go/informers/BUILD deleted file mode 100644 index 99486a1c8..000000000 --- a/vendor/k8s.io/client-go/informers/BUILD +++ /dev/null @@ -1,91 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "factory.go", - "generic.go", - ], - importpath = "k8s.io/client-go/informers", - deps = [ - "//vendor/k8s.io/api/admissionregistration/v1alpha1:go_default_library", - "//vendor/k8s.io/api/admissionregistration/v1beta1:go_default_library", - "//vendor/k8s.io/api/apps/v1:go_default_library", - "//vendor/k8s.io/api/apps/v1beta1:go_default_library", - "//vendor/k8s.io/api/apps/v1beta2:go_default_library", - "//vendor/k8s.io/api/autoscaling/v1:go_default_library", - "//vendor/k8s.io/api/autoscaling/v2beta1:go_default_library", - "//vendor/k8s.io/api/batch/v1:go_default_library", - "//vendor/k8s.io/api/batch/v1beta1:go_default_library", - "//vendor/k8s.io/api/batch/v2alpha1:go_default_library", - "//vendor/k8s.io/api/certificates/v1beta1:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/api/events/v1beta1:go_default_library", - "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", - "//vendor/k8s.io/api/networking/v1:go_default_library", - "//vendor/k8s.io/api/policy/v1beta1:go_default_library", - "//vendor/k8s.io/api/rbac/v1:go_default_library", - "//vendor/k8s.io/api/rbac/v1alpha1:go_default_library", - "//vendor/k8s.io/api/rbac/v1beta1:go_default_library", - "//vendor/k8s.io/api/scheduling/v1alpha1:go_default_library", - "//vendor/k8s.io/api/settings/v1alpha1:go_default_library", - "//vendor/k8s.io/api/storage/v1:go_default_library", - "//vendor/k8s.io/api/storage/v1alpha1:go_default_library", - "//vendor/k8s.io/api/storage/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/client-go/informers/admissionregistration:go_default_library", - "//vendor/k8s.io/client-go/informers/apps:go_default_library", - "//vendor/k8s.io/client-go/informers/autoscaling:go_default_library", - "//vendor/k8s.io/client-go/informers/batch:go_default_library", - "//vendor/k8s.io/client-go/informers/certificates:go_default_library", - "//vendor/k8s.io/client-go/informers/core:go_default_library", - "//vendor/k8s.io/client-go/informers/events:go_default_library", - "//vendor/k8s.io/client-go/informers/extensions:go_default_library", - "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", - "//vendor/k8s.io/client-go/informers/networking:go_default_library", - "//vendor/k8s.io/client-go/informers/policy:go_default_library", - "//vendor/k8s.io/client-go/informers/rbac:go_default_library", - "//vendor/k8s.io/client-go/informers/scheduling:go_default_library", - "//vendor/k8s.io/client-go/informers/settings:go_default_library", - "//vendor/k8s.io/client-go/informers/storage:go_default_library", - "//vendor/k8s.io/client-go/kubernetes:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/informers/admissionregistration:all-srcs", - "//staging/src/k8s.io/client-go/informers/apps:all-srcs", - "//staging/src/k8s.io/client-go/informers/autoscaling:all-srcs", - "//staging/src/k8s.io/client-go/informers/batch:all-srcs", - "//staging/src/k8s.io/client-go/informers/certificates:all-srcs", - "//staging/src/k8s.io/client-go/informers/core:all-srcs", - "//staging/src/k8s.io/client-go/informers/events:all-srcs", - "//staging/src/k8s.io/client-go/informers/extensions:all-srcs", - "//staging/src/k8s.io/client-go/informers/internalinterfaces:all-srcs", - "//staging/src/k8s.io/client-go/informers/networking:all-srcs", - "//staging/src/k8s.io/client-go/informers/policy:all-srcs", - "//staging/src/k8s.io/client-go/informers/rbac:all-srcs", - "//staging/src/k8s.io/client-go/informers/scheduling:all-srcs", - "//staging/src/k8s.io/client-go/informers/settings:all-srcs", - "//staging/src/k8s.io/client-go/informers/storage:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/informers/admissionregistration/BUILD b/vendor/k8s.io/client-go/informers/admissionregistration/BUILD deleted file mode 100644 index 6f93c10a2..000000000 --- a/vendor/k8s.io/client-go/informers/admissionregistration/BUILD +++ /dev/null @@ -1,34 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = ["interface.go"], - importpath = "k8s.io/client-go/informers/admissionregistration", - deps = [ - "//vendor/k8s.io/client-go/informers/admissionregistration/v1alpha1:go_default_library", - "//vendor/k8s.io/client-go/informers/admissionregistration/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/informers/admissionregistration/v1alpha1:all-srcs", - "//staging/src/k8s.io/client-go/informers/admissionregistration/v1beta1:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/informers/admissionregistration/interface.go b/vendor/k8s.io/client-go/informers/admissionregistration/interface.go index 138dccc26..7a0783cc3 100644 --- a/vendor/k8s.io/client-go/informers/admissionregistration/interface.go +++ b/vendor/k8s.io/client-go/informers/admissionregistration/interface.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/informers/admissionregistration/v1alpha1/BUILD b/vendor/k8s.io/client-go/informers/admissionregistration/v1alpha1/BUILD deleted file mode 100644 index 7292f8ca2..000000000 --- a/vendor/k8s.io/client-go/informers/admissionregistration/v1alpha1/BUILD +++ /dev/null @@ -1,35 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "initializerconfiguration.go", - "interface.go", - ], - importpath = "k8s.io/client-go/informers/admissionregistration/v1alpha1", - visibility = ["//visibility:public"], - deps = [ - "//vendor/k8s.io/api/admissionregistration/v1alpha1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", - "//vendor/k8s.io/client-go/kubernetes:go_default_library", - "//vendor/k8s.io/client-go/listers/admissionregistration/v1alpha1:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/client-go/informers/admissionregistration/v1alpha1/initializerconfiguration.go b/vendor/k8s.io/client-go/informers/admissionregistration/v1alpha1/initializerconfiguration.go index 659a04caf..4cfaae5bd 100644 --- a/vendor/k8s.io/client-go/informers/admissionregistration/v1alpha1/initializerconfiguration.go +++ b/vendor/k8s.io/client-go/informers/admissionregistration/v1alpha1/initializerconfiguration.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ package v1alpha1 import ( time "time" - admissionregistration_v1alpha1 "k8s.io/api/admissionregistration/v1alpha1" + admissionregistrationv1alpha1 "k8s.io/api/admissionregistration/v1alpha1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" @@ -69,7 +69,7 @@ func NewFilteredInitializerConfigurationInformer(client kubernetes.Interface, re return client.AdmissionregistrationV1alpha1().InitializerConfigurations().Watch(options) }, }, - &admissionregistration_v1alpha1.InitializerConfiguration{}, + &admissionregistrationv1alpha1.InitializerConfiguration{}, resyncPeriod, indexers, ) @@ -80,7 +80,7 @@ func (f *initializerConfigurationInformer) defaultInformer(client kubernetes.Int } func (f *initializerConfigurationInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&admissionregistration_v1alpha1.InitializerConfiguration{}, f.defaultInformer) + return f.factory.InformerFor(&admissionregistrationv1alpha1.InitializerConfiguration{}, f.defaultInformer) } func (f *initializerConfigurationInformer) Lister() v1alpha1.InitializerConfigurationLister { diff --git a/vendor/k8s.io/client-go/informers/admissionregistration/v1alpha1/interface.go b/vendor/k8s.io/client-go/informers/admissionregistration/v1alpha1/interface.go index 54df1caf3..0f47d65d8 100644 --- a/vendor/k8s.io/client-go/informers/admissionregistration/v1alpha1/interface.go +++ b/vendor/k8s.io/client-go/informers/admissionregistration/v1alpha1/interface.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/informers/admissionregistration/v1beta1/BUILD b/vendor/k8s.io/client-go/informers/admissionregistration/v1beta1/BUILD deleted file mode 100644 index e66e6eb44..000000000 --- a/vendor/k8s.io/client-go/informers/admissionregistration/v1beta1/BUILD +++ /dev/null @@ -1,36 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "interface.go", - "mutatingwebhookconfiguration.go", - "validatingwebhookconfiguration.go", - ], - importpath = "k8s.io/client-go/informers/admissionregistration/v1beta1", - visibility = ["//visibility:public"], - deps = [ - "//vendor/k8s.io/api/admissionregistration/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", - "//vendor/k8s.io/client-go/kubernetes:go_default_library", - "//vendor/k8s.io/client-go/listers/admissionregistration/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/client-go/informers/admissionregistration/v1beta1/interface.go b/vendor/k8s.io/client-go/informers/admissionregistration/v1beta1/interface.go index 5364c1ae1..d1e2b61be 100644 --- a/vendor/k8s.io/client-go/informers/admissionregistration/v1beta1/interface.go +++ b/vendor/k8s.io/client-go/informers/admissionregistration/v1beta1/interface.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/informers/admissionregistration/v1beta1/mutatingwebhookconfiguration.go b/vendor/k8s.io/client-go/informers/admissionregistration/v1beta1/mutatingwebhookconfiguration.go index 6e65a86c3..a06c406c2 100644 --- a/vendor/k8s.io/client-go/informers/admissionregistration/v1beta1/mutatingwebhookconfiguration.go +++ b/vendor/k8s.io/client-go/informers/admissionregistration/v1beta1/mutatingwebhookconfiguration.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ package v1beta1 import ( time "time" - admissionregistration_v1beta1 "k8s.io/api/admissionregistration/v1beta1" + admissionregistrationv1beta1 "k8s.io/api/admissionregistration/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" @@ -69,7 +69,7 @@ func NewFilteredMutatingWebhookConfigurationInformer(client kubernetes.Interface return client.AdmissionregistrationV1beta1().MutatingWebhookConfigurations().Watch(options) }, }, - &admissionregistration_v1beta1.MutatingWebhookConfiguration{}, + &admissionregistrationv1beta1.MutatingWebhookConfiguration{}, resyncPeriod, indexers, ) @@ -80,7 +80,7 @@ func (f *mutatingWebhookConfigurationInformer) defaultInformer(client kubernetes } func (f *mutatingWebhookConfigurationInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&admissionregistration_v1beta1.MutatingWebhookConfiguration{}, f.defaultInformer) + return f.factory.InformerFor(&admissionregistrationv1beta1.MutatingWebhookConfiguration{}, f.defaultInformer) } func (f *mutatingWebhookConfigurationInformer) Lister() v1beta1.MutatingWebhookConfigurationLister { diff --git a/vendor/k8s.io/client-go/informers/admissionregistration/v1beta1/validatingwebhookconfiguration.go b/vendor/k8s.io/client-go/informers/admissionregistration/v1beta1/validatingwebhookconfiguration.go index 42d16177c..3b7fafd29 100644 --- a/vendor/k8s.io/client-go/informers/admissionregistration/v1beta1/validatingwebhookconfiguration.go +++ b/vendor/k8s.io/client-go/informers/admissionregistration/v1beta1/validatingwebhookconfiguration.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ package v1beta1 import ( time "time" - admissionregistration_v1beta1 "k8s.io/api/admissionregistration/v1beta1" + admissionregistrationv1beta1 "k8s.io/api/admissionregistration/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" @@ -69,7 +69,7 @@ func NewFilteredValidatingWebhookConfigurationInformer(client kubernetes.Interfa return client.AdmissionregistrationV1beta1().ValidatingWebhookConfigurations().Watch(options) }, }, - &admissionregistration_v1beta1.ValidatingWebhookConfiguration{}, + &admissionregistrationv1beta1.ValidatingWebhookConfiguration{}, resyncPeriod, indexers, ) @@ -80,7 +80,7 @@ func (f *validatingWebhookConfigurationInformer) defaultInformer(client kubernet } func (f *validatingWebhookConfigurationInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&admissionregistration_v1beta1.ValidatingWebhookConfiguration{}, f.defaultInformer) + return f.factory.InformerFor(&admissionregistrationv1beta1.ValidatingWebhookConfiguration{}, f.defaultInformer) } func (f *validatingWebhookConfigurationInformer) Lister() v1beta1.ValidatingWebhookConfigurationLister { diff --git a/vendor/k8s.io/client-go/informers/apps/BUILD b/vendor/k8s.io/client-go/informers/apps/BUILD deleted file mode 100644 index 80615b108..000000000 --- a/vendor/k8s.io/client-go/informers/apps/BUILD +++ /dev/null @@ -1,36 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = ["interface.go"], - importpath = "k8s.io/client-go/informers/apps", - deps = [ - "//vendor/k8s.io/client-go/informers/apps/v1:go_default_library", - "//vendor/k8s.io/client-go/informers/apps/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/informers/apps/v1beta2:go_default_library", - "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/informers/apps/v1:all-srcs", - "//staging/src/k8s.io/client-go/informers/apps/v1beta1:all-srcs", - "//staging/src/k8s.io/client-go/informers/apps/v1beta2:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/informers/apps/interface.go b/vendor/k8s.io/client-go/informers/apps/interface.go index 7013d4d6f..02eefe584 100644 --- a/vendor/k8s.io/client-go/informers/apps/interface.go +++ b/vendor/k8s.io/client-go/informers/apps/interface.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/informers/apps/v1/BUILD b/vendor/k8s.io/client-go/informers/apps/v1/BUILD deleted file mode 100644 index 233e26101..000000000 --- a/vendor/k8s.io/client-go/informers/apps/v1/BUILD +++ /dev/null @@ -1,39 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "controllerrevision.go", - "daemonset.go", - "deployment.go", - "interface.go", - "replicaset.go", - "statefulset.go", - ], - importpath = "k8s.io/client-go/informers/apps/v1", - visibility = ["//visibility:public"], - deps = [ - "//vendor/k8s.io/api/apps/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", - "//vendor/k8s.io/client-go/kubernetes:go_default_library", - "//vendor/k8s.io/client-go/listers/apps/v1:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/client-go/informers/apps/v1/controllerrevision.go b/vendor/k8s.io/client-go/informers/apps/v1/controllerrevision.go index 3fe6630ff..2f69e0df0 100644 --- a/vendor/k8s.io/client-go/informers/apps/v1/controllerrevision.go +++ b/vendor/k8s.io/client-go/informers/apps/v1/controllerrevision.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,8 +21,8 @@ package v1 import ( time "time" - apps_v1 "k8s.io/api/apps/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + appsv1 "k8s.io/api/apps/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" internalinterfaces "k8s.io/client-go/informers/internalinterfaces" @@ -57,20 +57,20 @@ func NewControllerRevisionInformer(client kubernetes.Interface, namespace string func NewFilteredControllerRevisionInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ - ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.AppsV1().ControllerRevisions(namespace).List(options) }, - WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.AppsV1().ControllerRevisions(namespace).Watch(options) }, }, - &apps_v1.ControllerRevision{}, + &appsv1.ControllerRevision{}, resyncPeriod, indexers, ) @@ -81,7 +81,7 @@ func (f *controllerRevisionInformer) defaultInformer(client kubernetes.Interface } func (f *controllerRevisionInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&apps_v1.ControllerRevision{}, f.defaultInformer) + return f.factory.InformerFor(&appsv1.ControllerRevision{}, f.defaultInformer) } func (f *controllerRevisionInformer) Lister() v1.ControllerRevisionLister { diff --git a/vendor/k8s.io/client-go/informers/apps/v1/daemonset.go b/vendor/k8s.io/client-go/informers/apps/v1/daemonset.go index 4e10d6f6f..db649ccbf 100644 --- a/vendor/k8s.io/client-go/informers/apps/v1/daemonset.go +++ b/vendor/k8s.io/client-go/informers/apps/v1/daemonset.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,8 +21,8 @@ package v1 import ( time "time" - apps_v1 "k8s.io/api/apps/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + appsv1 "k8s.io/api/apps/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" internalinterfaces "k8s.io/client-go/informers/internalinterfaces" @@ -57,20 +57,20 @@ func NewDaemonSetInformer(client kubernetes.Interface, namespace string, resyncP func NewFilteredDaemonSetInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ - ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.AppsV1().DaemonSets(namespace).List(options) }, - WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.AppsV1().DaemonSets(namespace).Watch(options) }, }, - &apps_v1.DaemonSet{}, + &appsv1.DaemonSet{}, resyncPeriod, indexers, ) @@ -81,7 +81,7 @@ func (f *daemonSetInformer) defaultInformer(client kubernetes.Interface, resyncP } func (f *daemonSetInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&apps_v1.DaemonSet{}, f.defaultInformer) + return f.factory.InformerFor(&appsv1.DaemonSet{}, f.defaultInformer) } func (f *daemonSetInformer) Lister() v1.DaemonSetLister { diff --git a/vendor/k8s.io/client-go/informers/apps/v1/deployment.go b/vendor/k8s.io/client-go/informers/apps/v1/deployment.go index e08f42ddb..71cd00273 100644 --- a/vendor/k8s.io/client-go/informers/apps/v1/deployment.go +++ b/vendor/k8s.io/client-go/informers/apps/v1/deployment.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,8 +21,8 @@ package v1 import ( time "time" - apps_v1 "k8s.io/api/apps/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + appsv1 "k8s.io/api/apps/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" internalinterfaces "k8s.io/client-go/informers/internalinterfaces" @@ -57,20 +57,20 @@ func NewDeploymentInformer(client kubernetes.Interface, namespace string, resync func NewFilteredDeploymentInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ - ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.AppsV1().Deployments(namespace).List(options) }, - WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.AppsV1().Deployments(namespace).Watch(options) }, }, - &apps_v1.Deployment{}, + &appsv1.Deployment{}, resyncPeriod, indexers, ) @@ -81,7 +81,7 @@ func (f *deploymentInformer) defaultInformer(client kubernetes.Interface, resync } func (f *deploymentInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&apps_v1.Deployment{}, f.defaultInformer) + return f.factory.InformerFor(&appsv1.Deployment{}, f.defaultInformer) } func (f *deploymentInformer) Lister() v1.DeploymentLister { diff --git a/vendor/k8s.io/client-go/informers/apps/v1/interface.go b/vendor/k8s.io/client-go/informers/apps/v1/interface.go index f3abfa9aa..fab1e76bd 100644 --- a/vendor/k8s.io/client-go/informers/apps/v1/interface.go +++ b/vendor/k8s.io/client-go/informers/apps/v1/interface.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/informers/apps/v1/replicaset.go b/vendor/k8s.io/client-go/informers/apps/v1/replicaset.go index 2a17836cb..6ee7a0537 100644 --- a/vendor/k8s.io/client-go/informers/apps/v1/replicaset.go +++ b/vendor/k8s.io/client-go/informers/apps/v1/replicaset.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,8 +21,8 @@ package v1 import ( time "time" - apps_v1 "k8s.io/api/apps/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + appsv1 "k8s.io/api/apps/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" internalinterfaces "k8s.io/client-go/informers/internalinterfaces" @@ -57,20 +57,20 @@ func NewReplicaSetInformer(client kubernetes.Interface, namespace string, resync func NewFilteredReplicaSetInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ - ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.AppsV1().ReplicaSets(namespace).List(options) }, - WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.AppsV1().ReplicaSets(namespace).Watch(options) }, }, - &apps_v1.ReplicaSet{}, + &appsv1.ReplicaSet{}, resyncPeriod, indexers, ) @@ -81,7 +81,7 @@ func (f *replicaSetInformer) defaultInformer(client kubernetes.Interface, resync } func (f *replicaSetInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&apps_v1.ReplicaSet{}, f.defaultInformer) + return f.factory.InformerFor(&appsv1.ReplicaSet{}, f.defaultInformer) } func (f *replicaSetInformer) Lister() v1.ReplicaSetLister { diff --git a/vendor/k8s.io/client-go/informers/apps/v1/statefulset.go b/vendor/k8s.io/client-go/informers/apps/v1/statefulset.go index e7084af58..385e65366 100644 --- a/vendor/k8s.io/client-go/informers/apps/v1/statefulset.go +++ b/vendor/k8s.io/client-go/informers/apps/v1/statefulset.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,8 +21,8 @@ package v1 import ( time "time" - apps_v1 "k8s.io/api/apps/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + appsv1 "k8s.io/api/apps/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" internalinterfaces "k8s.io/client-go/informers/internalinterfaces" @@ -57,20 +57,20 @@ func NewStatefulSetInformer(client kubernetes.Interface, namespace string, resyn func NewFilteredStatefulSetInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ - ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.AppsV1().StatefulSets(namespace).List(options) }, - WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.AppsV1().StatefulSets(namespace).Watch(options) }, }, - &apps_v1.StatefulSet{}, + &appsv1.StatefulSet{}, resyncPeriod, indexers, ) @@ -81,7 +81,7 @@ func (f *statefulSetInformer) defaultInformer(client kubernetes.Interface, resyn } func (f *statefulSetInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&apps_v1.StatefulSet{}, f.defaultInformer) + return f.factory.InformerFor(&appsv1.StatefulSet{}, f.defaultInformer) } func (f *statefulSetInformer) Lister() v1.StatefulSetLister { diff --git a/vendor/k8s.io/client-go/informers/apps/v1beta1/BUILD b/vendor/k8s.io/client-go/informers/apps/v1beta1/BUILD deleted file mode 100644 index 80ca939e1..000000000 --- a/vendor/k8s.io/client-go/informers/apps/v1beta1/BUILD +++ /dev/null @@ -1,40 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "controllerrevision.go", - "deployment.go", - "interface.go", - "statefulset.go", - ], - importpath = "k8s.io/client-go/informers/apps/v1beta1", - deps = [ - "//vendor/k8s.io/api/apps/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", - "//vendor/k8s.io/client-go/kubernetes:go_default_library", - "//vendor/k8s.io/client-go/listers/apps/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/informers/apps/v1beta1/controllerrevision.go b/vendor/k8s.io/client-go/informers/apps/v1beta1/controllerrevision.go index b4878e724..c7d3e30e0 100644 --- a/vendor/k8s.io/client-go/informers/apps/v1beta1/controllerrevision.go +++ b/vendor/k8s.io/client-go/informers/apps/v1beta1/controllerrevision.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ package v1beta1 import ( time "time" - apps_v1beta1 "k8s.io/api/apps/v1beta1" + appsv1beta1 "k8s.io/api/apps/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" @@ -70,7 +70,7 @@ func NewFilteredControllerRevisionInformer(client kubernetes.Interface, namespac return client.AppsV1beta1().ControllerRevisions(namespace).Watch(options) }, }, - &apps_v1beta1.ControllerRevision{}, + &appsv1beta1.ControllerRevision{}, resyncPeriod, indexers, ) @@ -81,7 +81,7 @@ func (f *controllerRevisionInformer) defaultInformer(client kubernetes.Interface } func (f *controllerRevisionInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&apps_v1beta1.ControllerRevision{}, f.defaultInformer) + return f.factory.InformerFor(&appsv1beta1.ControllerRevision{}, f.defaultInformer) } func (f *controllerRevisionInformer) Lister() v1beta1.ControllerRevisionLister { diff --git a/vendor/k8s.io/client-go/informers/apps/v1beta1/deployment.go b/vendor/k8s.io/client-go/informers/apps/v1beta1/deployment.go index 589ec39a5..03bafca6b 100644 --- a/vendor/k8s.io/client-go/informers/apps/v1beta1/deployment.go +++ b/vendor/k8s.io/client-go/informers/apps/v1beta1/deployment.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ package v1beta1 import ( time "time" - apps_v1beta1 "k8s.io/api/apps/v1beta1" + appsv1beta1 "k8s.io/api/apps/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" @@ -70,7 +70,7 @@ func NewFilteredDeploymentInformer(client kubernetes.Interface, namespace string return client.AppsV1beta1().Deployments(namespace).Watch(options) }, }, - &apps_v1beta1.Deployment{}, + &appsv1beta1.Deployment{}, resyncPeriod, indexers, ) @@ -81,7 +81,7 @@ func (f *deploymentInformer) defaultInformer(client kubernetes.Interface, resync } func (f *deploymentInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&apps_v1beta1.Deployment{}, f.defaultInformer) + return f.factory.InformerFor(&appsv1beta1.Deployment{}, f.defaultInformer) } func (f *deploymentInformer) Lister() v1beta1.DeploymentLister { diff --git a/vendor/k8s.io/client-go/informers/apps/v1beta1/interface.go b/vendor/k8s.io/client-go/informers/apps/v1beta1/interface.go index c0a487ca2..326939cd1 100644 --- a/vendor/k8s.io/client-go/informers/apps/v1beta1/interface.go +++ b/vendor/k8s.io/client-go/informers/apps/v1beta1/interface.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/informers/apps/v1beta1/statefulset.go b/vendor/k8s.io/client-go/informers/apps/v1beta1/statefulset.go index f12364c51..e4d1b46fa 100644 --- a/vendor/k8s.io/client-go/informers/apps/v1beta1/statefulset.go +++ b/vendor/k8s.io/client-go/informers/apps/v1beta1/statefulset.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ package v1beta1 import ( time "time" - apps_v1beta1 "k8s.io/api/apps/v1beta1" + appsv1beta1 "k8s.io/api/apps/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" @@ -70,7 +70,7 @@ func NewFilteredStatefulSetInformer(client kubernetes.Interface, namespace strin return client.AppsV1beta1().StatefulSets(namespace).Watch(options) }, }, - &apps_v1beta1.StatefulSet{}, + &appsv1beta1.StatefulSet{}, resyncPeriod, indexers, ) @@ -81,7 +81,7 @@ func (f *statefulSetInformer) defaultInformer(client kubernetes.Interface, resyn } func (f *statefulSetInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&apps_v1beta1.StatefulSet{}, f.defaultInformer) + return f.factory.InformerFor(&appsv1beta1.StatefulSet{}, f.defaultInformer) } func (f *statefulSetInformer) Lister() v1beta1.StatefulSetLister { diff --git a/vendor/k8s.io/client-go/informers/apps/v1beta2/BUILD b/vendor/k8s.io/client-go/informers/apps/v1beta2/BUILD deleted file mode 100644 index 5b0137bb2..000000000 --- a/vendor/k8s.io/client-go/informers/apps/v1beta2/BUILD +++ /dev/null @@ -1,42 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "controllerrevision.go", - "daemonset.go", - "deployment.go", - "interface.go", - "replicaset.go", - "statefulset.go", - ], - importpath = "k8s.io/client-go/informers/apps/v1beta2", - deps = [ - "//vendor/k8s.io/api/apps/v1beta2:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", - "//vendor/k8s.io/client-go/kubernetes:go_default_library", - "//vendor/k8s.io/client-go/listers/apps/v1beta2:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/informers/apps/v1beta2/controllerrevision.go b/vendor/k8s.io/client-go/informers/apps/v1beta2/controllerrevision.go index a2f3ceaac..975e81077 100644 --- a/vendor/k8s.io/client-go/informers/apps/v1beta2/controllerrevision.go +++ b/vendor/k8s.io/client-go/informers/apps/v1beta2/controllerrevision.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ package v1beta2 import ( time "time" - apps_v1beta2 "k8s.io/api/apps/v1beta2" + appsv1beta2 "k8s.io/api/apps/v1beta2" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" @@ -70,7 +70,7 @@ func NewFilteredControllerRevisionInformer(client kubernetes.Interface, namespac return client.AppsV1beta2().ControllerRevisions(namespace).Watch(options) }, }, - &apps_v1beta2.ControllerRevision{}, + &appsv1beta2.ControllerRevision{}, resyncPeriod, indexers, ) @@ -81,7 +81,7 @@ func (f *controllerRevisionInformer) defaultInformer(client kubernetes.Interface } func (f *controllerRevisionInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&apps_v1beta2.ControllerRevision{}, f.defaultInformer) + return f.factory.InformerFor(&appsv1beta2.ControllerRevision{}, f.defaultInformer) } func (f *controllerRevisionInformer) Lister() v1beta2.ControllerRevisionLister { diff --git a/vendor/k8s.io/client-go/informers/apps/v1beta2/daemonset.go b/vendor/k8s.io/client-go/informers/apps/v1beta2/daemonset.go index 700895e61..99f17fa6c 100644 --- a/vendor/k8s.io/client-go/informers/apps/v1beta2/daemonset.go +++ b/vendor/k8s.io/client-go/informers/apps/v1beta2/daemonset.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ package v1beta2 import ( time "time" - apps_v1beta2 "k8s.io/api/apps/v1beta2" + appsv1beta2 "k8s.io/api/apps/v1beta2" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" @@ -70,7 +70,7 @@ func NewFilteredDaemonSetInformer(client kubernetes.Interface, namespace string, return client.AppsV1beta2().DaemonSets(namespace).Watch(options) }, }, - &apps_v1beta2.DaemonSet{}, + &appsv1beta2.DaemonSet{}, resyncPeriod, indexers, ) @@ -81,7 +81,7 @@ func (f *daemonSetInformer) defaultInformer(client kubernetes.Interface, resyncP } func (f *daemonSetInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&apps_v1beta2.DaemonSet{}, f.defaultInformer) + return f.factory.InformerFor(&appsv1beta2.DaemonSet{}, f.defaultInformer) } func (f *daemonSetInformer) Lister() v1beta2.DaemonSetLister { diff --git a/vendor/k8s.io/client-go/informers/apps/v1beta2/deployment.go b/vendor/k8s.io/client-go/informers/apps/v1beta2/deployment.go index ba1a3cf9b..b25da82bd 100644 --- a/vendor/k8s.io/client-go/informers/apps/v1beta2/deployment.go +++ b/vendor/k8s.io/client-go/informers/apps/v1beta2/deployment.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ package v1beta2 import ( time "time" - apps_v1beta2 "k8s.io/api/apps/v1beta2" + appsv1beta2 "k8s.io/api/apps/v1beta2" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" @@ -70,7 +70,7 @@ func NewFilteredDeploymentInformer(client kubernetes.Interface, namespace string return client.AppsV1beta2().Deployments(namespace).Watch(options) }, }, - &apps_v1beta2.Deployment{}, + &appsv1beta2.Deployment{}, resyncPeriod, indexers, ) @@ -81,7 +81,7 @@ func (f *deploymentInformer) defaultInformer(client kubernetes.Interface, resync } func (f *deploymentInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&apps_v1beta2.Deployment{}, f.defaultInformer) + return f.factory.InformerFor(&appsv1beta2.Deployment{}, f.defaultInformer) } func (f *deploymentInformer) Lister() v1beta2.DeploymentLister { diff --git a/vendor/k8s.io/client-go/informers/apps/v1beta2/interface.go b/vendor/k8s.io/client-go/informers/apps/v1beta2/interface.go index 93a1940d9..ded89bd5b 100644 --- a/vendor/k8s.io/client-go/informers/apps/v1beta2/interface.go +++ b/vendor/k8s.io/client-go/informers/apps/v1beta2/interface.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/informers/apps/v1beta2/replicaset.go b/vendor/k8s.io/client-go/informers/apps/v1beta2/replicaset.go index 6a46b810b..6ce7fcfd0 100644 --- a/vendor/k8s.io/client-go/informers/apps/v1beta2/replicaset.go +++ b/vendor/k8s.io/client-go/informers/apps/v1beta2/replicaset.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ package v1beta2 import ( time "time" - apps_v1beta2 "k8s.io/api/apps/v1beta2" + appsv1beta2 "k8s.io/api/apps/v1beta2" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" @@ -70,7 +70,7 @@ func NewFilteredReplicaSetInformer(client kubernetes.Interface, namespace string return client.AppsV1beta2().ReplicaSets(namespace).Watch(options) }, }, - &apps_v1beta2.ReplicaSet{}, + &appsv1beta2.ReplicaSet{}, resyncPeriod, indexers, ) @@ -81,7 +81,7 @@ func (f *replicaSetInformer) defaultInformer(client kubernetes.Interface, resync } func (f *replicaSetInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&apps_v1beta2.ReplicaSet{}, f.defaultInformer) + return f.factory.InformerFor(&appsv1beta2.ReplicaSet{}, f.defaultInformer) } func (f *replicaSetInformer) Lister() v1beta2.ReplicaSetLister { diff --git a/vendor/k8s.io/client-go/informers/apps/v1beta2/statefulset.go b/vendor/k8s.io/client-go/informers/apps/v1beta2/statefulset.go index 841cbd8ab..e77bb2f8f 100644 --- a/vendor/k8s.io/client-go/informers/apps/v1beta2/statefulset.go +++ b/vendor/k8s.io/client-go/informers/apps/v1beta2/statefulset.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ package v1beta2 import ( time "time" - apps_v1beta2 "k8s.io/api/apps/v1beta2" + appsv1beta2 "k8s.io/api/apps/v1beta2" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" @@ -70,7 +70,7 @@ func NewFilteredStatefulSetInformer(client kubernetes.Interface, namespace strin return client.AppsV1beta2().StatefulSets(namespace).Watch(options) }, }, - &apps_v1beta2.StatefulSet{}, + &appsv1beta2.StatefulSet{}, resyncPeriod, indexers, ) @@ -81,7 +81,7 @@ func (f *statefulSetInformer) defaultInformer(client kubernetes.Interface, resyn } func (f *statefulSetInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&apps_v1beta2.StatefulSet{}, f.defaultInformer) + return f.factory.InformerFor(&appsv1beta2.StatefulSet{}, f.defaultInformer) } func (f *statefulSetInformer) Lister() v1beta2.StatefulSetLister { diff --git a/vendor/k8s.io/client-go/informers/auditregistration/interface.go b/vendor/k8s.io/client-go/informers/auditregistration/interface.go new file mode 100644 index 000000000..0f1682c47 --- /dev/null +++ b/vendor/k8s.io/client-go/informers/auditregistration/interface.go @@ -0,0 +1,46 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by informer-gen. DO NOT EDIT. + +package auditregistration + +import ( + v1alpha1 "k8s.io/client-go/informers/auditregistration/v1alpha1" + internalinterfaces "k8s.io/client-go/informers/internalinterfaces" +) + +// Interface provides access to each of this group's versions. +type Interface interface { + // V1alpha1 provides access to shared informers for resources in V1alpha1. + V1alpha1() v1alpha1.Interface +} + +type group struct { + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc +} + +// New returns a new Interface. +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} +} + +// V1alpha1 returns a new v1alpha1.Interface. +func (g *group) V1alpha1() v1alpha1.Interface { + return v1alpha1.New(g.factory, g.namespace, g.tweakListOptions) +} diff --git a/vendor/k8s.io/client-go/informers/auditregistration/v1alpha1/auditsink.go b/vendor/k8s.io/client-go/informers/auditregistration/v1alpha1/auditsink.go new file mode 100644 index 000000000..69778ad2c --- /dev/null +++ b/vendor/k8s.io/client-go/informers/auditregistration/v1alpha1/auditsink.go @@ -0,0 +1,88 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by informer-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + time "time" + + auditregistrationv1alpha1 "k8s.io/api/auditregistration/v1alpha1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + watch "k8s.io/apimachinery/pkg/watch" + internalinterfaces "k8s.io/client-go/informers/internalinterfaces" + kubernetes "k8s.io/client-go/kubernetes" + v1alpha1 "k8s.io/client-go/listers/auditregistration/v1alpha1" + cache "k8s.io/client-go/tools/cache" +) + +// AuditSinkInformer provides access to a shared informer and lister for +// AuditSinks. +type AuditSinkInformer interface { + Informer() cache.SharedIndexInformer + Lister() v1alpha1.AuditSinkLister +} + +type auditSinkInformer struct { + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc +} + +// NewAuditSinkInformer constructs a new informer for AuditSink type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewAuditSinkInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredAuditSinkInformer(client, resyncPeriod, indexers, nil) +} + +// NewFilteredAuditSinkInformer constructs a new informer for AuditSink type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewFilteredAuditSinkInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { + return cache.NewSharedIndexInformer( + &cache.ListWatch{ + ListFunc: func(options v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.AuditregistrationV1alpha1().AuditSinks().List(options) + }, + WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.AuditregistrationV1alpha1().AuditSinks().Watch(options) + }, + }, + &auditregistrationv1alpha1.AuditSink{}, + resyncPeriod, + indexers, + ) +} + +func (f *auditSinkInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredAuditSinkInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) +} + +func (f *auditSinkInformer) Informer() cache.SharedIndexInformer { + return f.factory.InformerFor(&auditregistrationv1alpha1.AuditSink{}, f.defaultInformer) +} + +func (f *auditSinkInformer) Lister() v1alpha1.AuditSinkLister { + return v1alpha1.NewAuditSinkLister(f.Informer().GetIndexer()) +} diff --git a/vendor/k8s.io/client-go/informers/auditregistration/v1alpha1/interface.go b/vendor/k8s.io/client-go/informers/auditregistration/v1alpha1/interface.go new file mode 100644 index 000000000..0a67ba821 --- /dev/null +++ b/vendor/k8s.io/client-go/informers/auditregistration/v1alpha1/interface.go @@ -0,0 +1,45 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by informer-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + internalinterfaces "k8s.io/client-go/informers/internalinterfaces" +) + +// Interface provides access to all the informers in this group version. +type Interface interface { + // AuditSinks returns a AuditSinkInformer. + AuditSinks() AuditSinkInformer +} + +type version struct { + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc +} + +// New returns a new Interface. +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} +} + +// AuditSinks returns a AuditSinkInformer. +func (v *version) AuditSinks() AuditSinkInformer { + return &auditSinkInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} +} diff --git a/vendor/k8s.io/client-go/informers/autoscaling/BUILD b/vendor/k8s.io/client-go/informers/autoscaling/BUILD deleted file mode 100644 index 7ad9e975e..000000000 --- a/vendor/k8s.io/client-go/informers/autoscaling/BUILD +++ /dev/null @@ -1,31 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = ["interface.go"], - importpath = "k8s.io/client-go/informers/autoscaling", - visibility = ["//visibility:public"], - deps = [ - "//vendor/k8s.io/client-go/informers/autoscaling/v1:go_default_library", - "//vendor/k8s.io/client-go/informers/autoscaling/v2beta1:go_default_library", - "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/informers/autoscaling/v1:all-srcs", - "//staging/src/k8s.io/client-go/informers/autoscaling/v2beta1:all-srcs", - ], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/client-go/informers/autoscaling/interface.go b/vendor/k8s.io/client-go/informers/autoscaling/interface.go index 347d6f628..81e839014 100644 --- a/vendor/k8s.io/client-go/informers/autoscaling/interface.go +++ b/vendor/k8s.io/client-go/informers/autoscaling/interface.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,6 +21,7 @@ package autoscaling import ( v1 "k8s.io/client-go/informers/autoscaling/v1" v2beta1 "k8s.io/client-go/informers/autoscaling/v2beta1" + v2beta2 "k8s.io/client-go/informers/autoscaling/v2beta2" internalinterfaces "k8s.io/client-go/informers/internalinterfaces" ) @@ -30,6 +31,8 @@ type Interface interface { V1() v1.Interface // V2beta1 provides access to shared informers for resources in V2beta1. V2beta1() v2beta1.Interface + // V2beta2 provides access to shared informers for resources in V2beta2. + V2beta2() v2beta2.Interface } type group struct { @@ -52,3 +55,8 @@ func (g *group) V1() v1.Interface { func (g *group) V2beta1() v2beta1.Interface { return v2beta1.New(g.factory, g.namespace, g.tweakListOptions) } + +// V2beta2 returns a new v2beta2.Interface. +func (g *group) V2beta2() v2beta2.Interface { + return v2beta2.New(g.factory, g.namespace, g.tweakListOptions) +} diff --git a/vendor/k8s.io/client-go/informers/autoscaling/v1/BUILD b/vendor/k8s.io/client-go/informers/autoscaling/v1/BUILD deleted file mode 100644 index 5c3ba46bc..000000000 --- a/vendor/k8s.io/client-go/informers/autoscaling/v1/BUILD +++ /dev/null @@ -1,35 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "horizontalpodautoscaler.go", - "interface.go", - ], - importpath = "k8s.io/client-go/informers/autoscaling/v1", - visibility = ["//visibility:public"], - deps = [ - "//vendor/k8s.io/api/autoscaling/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", - "//vendor/k8s.io/client-go/kubernetes:go_default_library", - "//vendor/k8s.io/client-go/listers/autoscaling/v1:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/client-go/informers/autoscaling/v1/horizontalpodautoscaler.go b/vendor/k8s.io/client-go/informers/autoscaling/v1/horizontalpodautoscaler.go index 1215c7f3b..205e4ecd7 100644 --- a/vendor/k8s.io/client-go/informers/autoscaling/v1/horizontalpodautoscaler.go +++ b/vendor/k8s.io/client-go/informers/autoscaling/v1/horizontalpodautoscaler.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,8 +21,8 @@ package v1 import ( time "time" - autoscaling_v1 "k8s.io/api/autoscaling/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + autoscalingv1 "k8s.io/api/autoscaling/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" internalinterfaces "k8s.io/client-go/informers/internalinterfaces" @@ -57,20 +57,20 @@ func NewHorizontalPodAutoscalerInformer(client kubernetes.Interface, namespace s func NewFilteredHorizontalPodAutoscalerInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ - ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.AutoscalingV1().HorizontalPodAutoscalers(namespace).List(options) }, - WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.AutoscalingV1().HorizontalPodAutoscalers(namespace).Watch(options) }, }, - &autoscaling_v1.HorizontalPodAutoscaler{}, + &autoscalingv1.HorizontalPodAutoscaler{}, resyncPeriod, indexers, ) @@ -81,7 +81,7 @@ func (f *horizontalPodAutoscalerInformer) defaultInformer(client kubernetes.Inte } func (f *horizontalPodAutoscalerInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&autoscaling_v1.HorizontalPodAutoscaler{}, f.defaultInformer) + return f.factory.InformerFor(&autoscalingv1.HorizontalPodAutoscaler{}, f.defaultInformer) } func (f *horizontalPodAutoscalerInformer) Lister() v1.HorizontalPodAutoscalerLister { diff --git a/vendor/k8s.io/client-go/informers/autoscaling/v1/interface.go b/vendor/k8s.io/client-go/informers/autoscaling/v1/interface.go index ffa7a168e..601d0f77f 100644 --- a/vendor/k8s.io/client-go/informers/autoscaling/v1/interface.go +++ b/vendor/k8s.io/client-go/informers/autoscaling/v1/interface.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/informers/autoscaling/v2beta1/BUILD b/vendor/k8s.io/client-go/informers/autoscaling/v2beta1/BUILD deleted file mode 100644 index 3439a4ed2..000000000 --- a/vendor/k8s.io/client-go/informers/autoscaling/v2beta1/BUILD +++ /dev/null @@ -1,35 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "horizontalpodautoscaler.go", - "interface.go", - ], - importpath = "k8s.io/client-go/informers/autoscaling/v2beta1", - visibility = ["//visibility:public"], - deps = [ - "//vendor/k8s.io/api/autoscaling/v2beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", - "//vendor/k8s.io/client-go/kubernetes:go_default_library", - "//vendor/k8s.io/client-go/listers/autoscaling/v2beta1:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/client-go/informers/autoscaling/v2beta1/horizontalpodautoscaler.go b/vendor/k8s.io/client-go/informers/autoscaling/v2beta1/horizontalpodautoscaler.go index 208757de3..4627c5a0b 100644 --- a/vendor/k8s.io/client-go/informers/autoscaling/v2beta1/horizontalpodautoscaler.go +++ b/vendor/k8s.io/client-go/informers/autoscaling/v2beta1/horizontalpodautoscaler.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ package v2beta1 import ( time "time" - autoscaling_v2beta1 "k8s.io/api/autoscaling/v2beta1" + autoscalingv2beta1 "k8s.io/api/autoscaling/v2beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" @@ -70,7 +70,7 @@ func NewFilteredHorizontalPodAutoscalerInformer(client kubernetes.Interface, nam return client.AutoscalingV2beta1().HorizontalPodAutoscalers(namespace).Watch(options) }, }, - &autoscaling_v2beta1.HorizontalPodAutoscaler{}, + &autoscalingv2beta1.HorizontalPodAutoscaler{}, resyncPeriod, indexers, ) @@ -81,7 +81,7 @@ func (f *horizontalPodAutoscalerInformer) defaultInformer(client kubernetes.Inte } func (f *horizontalPodAutoscalerInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&autoscaling_v2beta1.HorizontalPodAutoscaler{}, f.defaultInformer) + return f.factory.InformerFor(&autoscalingv2beta1.HorizontalPodAutoscaler{}, f.defaultInformer) } func (f *horizontalPodAutoscalerInformer) Lister() v2beta1.HorizontalPodAutoscalerLister { diff --git a/vendor/k8s.io/client-go/informers/autoscaling/v2beta1/interface.go b/vendor/k8s.io/client-go/informers/autoscaling/v2beta1/interface.go index 37ce2bc5f..ff5d44b09 100644 --- a/vendor/k8s.io/client-go/informers/autoscaling/v2beta1/interface.go +++ b/vendor/k8s.io/client-go/informers/autoscaling/v2beta1/interface.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/informers/autoscaling/v2beta2/horizontalpodautoscaler.go b/vendor/k8s.io/client-go/informers/autoscaling/v2beta2/horizontalpodautoscaler.go new file mode 100644 index 000000000..b4863f9b7 --- /dev/null +++ b/vendor/k8s.io/client-go/informers/autoscaling/v2beta2/horizontalpodautoscaler.go @@ -0,0 +1,89 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by informer-gen. DO NOT EDIT. + +package v2beta2 + +import ( + time "time" + + autoscalingv2beta2 "k8s.io/api/autoscaling/v2beta2" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + watch "k8s.io/apimachinery/pkg/watch" + internalinterfaces "k8s.io/client-go/informers/internalinterfaces" + kubernetes "k8s.io/client-go/kubernetes" + v2beta2 "k8s.io/client-go/listers/autoscaling/v2beta2" + cache "k8s.io/client-go/tools/cache" +) + +// HorizontalPodAutoscalerInformer provides access to a shared informer and lister for +// HorizontalPodAutoscalers. +type HorizontalPodAutoscalerInformer interface { + Informer() cache.SharedIndexInformer + Lister() v2beta2.HorizontalPodAutoscalerLister +} + +type horizontalPodAutoscalerInformer struct { + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string +} + +// NewHorizontalPodAutoscalerInformer constructs a new informer for HorizontalPodAutoscaler type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewHorizontalPodAutoscalerInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredHorizontalPodAutoscalerInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredHorizontalPodAutoscalerInformer constructs a new informer for HorizontalPodAutoscaler type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewFilteredHorizontalPodAutoscalerInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { + return cache.NewSharedIndexInformer( + &cache.ListWatch{ + ListFunc: func(options v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.AutoscalingV2beta2().HorizontalPodAutoscalers(namespace).List(options) + }, + WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.AutoscalingV2beta2().HorizontalPodAutoscalers(namespace).Watch(options) + }, + }, + &autoscalingv2beta2.HorizontalPodAutoscaler{}, + resyncPeriod, + indexers, + ) +} + +func (f *horizontalPodAutoscalerInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredHorizontalPodAutoscalerInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) +} + +func (f *horizontalPodAutoscalerInformer) Informer() cache.SharedIndexInformer { + return f.factory.InformerFor(&autoscalingv2beta2.HorizontalPodAutoscaler{}, f.defaultInformer) +} + +func (f *horizontalPodAutoscalerInformer) Lister() v2beta2.HorizontalPodAutoscalerLister { + return v2beta2.NewHorizontalPodAutoscalerLister(f.Informer().GetIndexer()) +} diff --git a/vendor/k8s.io/client-go/informers/autoscaling/v2beta2/interface.go b/vendor/k8s.io/client-go/informers/autoscaling/v2beta2/interface.go new file mode 100644 index 000000000..e482c5792 --- /dev/null +++ b/vendor/k8s.io/client-go/informers/autoscaling/v2beta2/interface.go @@ -0,0 +1,45 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by informer-gen. DO NOT EDIT. + +package v2beta2 + +import ( + internalinterfaces "k8s.io/client-go/informers/internalinterfaces" +) + +// Interface provides access to all the informers in this group version. +type Interface interface { + // HorizontalPodAutoscalers returns a HorizontalPodAutoscalerInformer. + HorizontalPodAutoscalers() HorizontalPodAutoscalerInformer +} + +type version struct { + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc +} + +// New returns a new Interface. +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} +} + +// HorizontalPodAutoscalers returns a HorizontalPodAutoscalerInformer. +func (v *version) HorizontalPodAutoscalers() HorizontalPodAutoscalerInformer { + return &horizontalPodAutoscalerInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} +} diff --git a/vendor/k8s.io/client-go/informers/batch/BUILD b/vendor/k8s.io/client-go/informers/batch/BUILD deleted file mode 100644 index 9199107c7..000000000 --- a/vendor/k8s.io/client-go/informers/batch/BUILD +++ /dev/null @@ -1,36 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = ["interface.go"], - importpath = "k8s.io/client-go/informers/batch", - deps = [ - "//vendor/k8s.io/client-go/informers/batch/v1:go_default_library", - "//vendor/k8s.io/client-go/informers/batch/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/informers/batch/v2alpha1:go_default_library", - "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/informers/batch/v1:all-srcs", - "//staging/src/k8s.io/client-go/informers/batch/v1beta1:all-srcs", - "//staging/src/k8s.io/client-go/informers/batch/v2alpha1:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/informers/batch/interface.go b/vendor/k8s.io/client-go/informers/batch/interface.go index f08227ba4..fa428869d 100644 --- a/vendor/k8s.io/client-go/informers/batch/interface.go +++ b/vendor/k8s.io/client-go/informers/batch/interface.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/informers/batch/v1/BUILD b/vendor/k8s.io/client-go/informers/batch/v1/BUILD deleted file mode 100644 index ed4825488..000000000 --- a/vendor/k8s.io/client-go/informers/batch/v1/BUILD +++ /dev/null @@ -1,38 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "interface.go", - "job.go", - ], - importpath = "k8s.io/client-go/informers/batch/v1", - deps = [ - "//vendor/k8s.io/api/batch/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", - "//vendor/k8s.io/client-go/kubernetes:go_default_library", - "//vendor/k8s.io/client-go/listers/batch/v1:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/informers/batch/v1/interface.go b/vendor/k8s.io/client-go/informers/batch/v1/interface.go index 5a09dc7ce..67d71adc2 100644 --- a/vendor/k8s.io/client-go/informers/batch/v1/interface.go +++ b/vendor/k8s.io/client-go/informers/batch/v1/interface.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/informers/batch/v1/job.go b/vendor/k8s.io/client-go/informers/batch/v1/job.go index 36d3cef42..30d41104a 100644 --- a/vendor/k8s.io/client-go/informers/batch/v1/job.go +++ b/vendor/k8s.io/client-go/informers/batch/v1/job.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,8 +21,8 @@ package v1 import ( time "time" - batch_v1 "k8s.io/api/batch/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + batchv1 "k8s.io/api/batch/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" internalinterfaces "k8s.io/client-go/informers/internalinterfaces" @@ -57,20 +57,20 @@ func NewJobInformer(client kubernetes.Interface, namespace string, resyncPeriod func NewFilteredJobInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ - ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.BatchV1().Jobs(namespace).List(options) }, - WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.BatchV1().Jobs(namespace).Watch(options) }, }, - &batch_v1.Job{}, + &batchv1.Job{}, resyncPeriod, indexers, ) @@ -81,7 +81,7 @@ func (f *jobInformer) defaultInformer(client kubernetes.Interface, resyncPeriod } func (f *jobInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&batch_v1.Job{}, f.defaultInformer) + return f.factory.InformerFor(&batchv1.Job{}, f.defaultInformer) } func (f *jobInformer) Lister() v1.JobLister { diff --git a/vendor/k8s.io/client-go/informers/batch/v1beta1/BUILD b/vendor/k8s.io/client-go/informers/batch/v1beta1/BUILD deleted file mode 100644 index 20f4ac3c4..000000000 --- a/vendor/k8s.io/client-go/informers/batch/v1beta1/BUILD +++ /dev/null @@ -1,38 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "cronjob.go", - "interface.go", - ], - importpath = "k8s.io/client-go/informers/batch/v1beta1", - deps = [ - "//vendor/k8s.io/api/batch/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", - "//vendor/k8s.io/client-go/kubernetes:go_default_library", - "//vendor/k8s.io/client-go/listers/batch/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/informers/batch/v1beta1/cronjob.go b/vendor/k8s.io/client-go/informers/batch/v1beta1/cronjob.go index 9dfaed490..0b7598e0f 100644 --- a/vendor/k8s.io/client-go/informers/batch/v1beta1/cronjob.go +++ b/vendor/k8s.io/client-go/informers/batch/v1beta1/cronjob.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ package v1beta1 import ( time "time" - batch_v1beta1 "k8s.io/api/batch/v1beta1" + batchv1beta1 "k8s.io/api/batch/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" @@ -70,7 +70,7 @@ func NewFilteredCronJobInformer(client kubernetes.Interface, namespace string, r return client.BatchV1beta1().CronJobs(namespace).Watch(options) }, }, - &batch_v1beta1.CronJob{}, + &batchv1beta1.CronJob{}, resyncPeriod, indexers, ) @@ -81,7 +81,7 @@ func (f *cronJobInformer) defaultInformer(client kubernetes.Interface, resyncPer } func (f *cronJobInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&batch_v1beta1.CronJob{}, f.defaultInformer) + return f.factory.InformerFor(&batchv1beta1.CronJob{}, f.defaultInformer) } func (f *cronJobInformer) Lister() v1beta1.CronJobLister { diff --git a/vendor/k8s.io/client-go/informers/batch/v1beta1/interface.go b/vendor/k8s.io/client-go/informers/batch/v1beta1/interface.go index 3ba8401ac..76cae22d6 100644 --- a/vendor/k8s.io/client-go/informers/batch/v1beta1/interface.go +++ b/vendor/k8s.io/client-go/informers/batch/v1beta1/interface.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/informers/batch/v2alpha1/BUILD b/vendor/k8s.io/client-go/informers/batch/v2alpha1/BUILD deleted file mode 100644 index 4684ca4b4..000000000 --- a/vendor/k8s.io/client-go/informers/batch/v2alpha1/BUILD +++ /dev/null @@ -1,38 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "cronjob.go", - "interface.go", - ], - importpath = "k8s.io/client-go/informers/batch/v2alpha1", - deps = [ - "//vendor/k8s.io/api/batch/v2alpha1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", - "//vendor/k8s.io/client-go/kubernetes:go_default_library", - "//vendor/k8s.io/client-go/listers/batch/v2alpha1:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/informers/batch/v2alpha1/cronjob.go b/vendor/k8s.io/client-go/informers/batch/v2alpha1/cronjob.go index 82bc9422f..20cf7d498 100644 --- a/vendor/k8s.io/client-go/informers/batch/v2alpha1/cronjob.go +++ b/vendor/k8s.io/client-go/informers/batch/v2alpha1/cronjob.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ package v2alpha1 import ( time "time" - batch_v2alpha1 "k8s.io/api/batch/v2alpha1" + batchv2alpha1 "k8s.io/api/batch/v2alpha1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" @@ -70,7 +70,7 @@ func NewFilteredCronJobInformer(client kubernetes.Interface, namespace string, r return client.BatchV2alpha1().CronJobs(namespace).Watch(options) }, }, - &batch_v2alpha1.CronJob{}, + &batchv2alpha1.CronJob{}, resyncPeriod, indexers, ) @@ -81,7 +81,7 @@ func (f *cronJobInformer) defaultInformer(client kubernetes.Interface, resyncPer } func (f *cronJobInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&batch_v2alpha1.CronJob{}, f.defaultInformer) + return f.factory.InformerFor(&batchv2alpha1.CronJob{}, f.defaultInformer) } func (f *cronJobInformer) Lister() v2alpha1.CronJobLister { diff --git a/vendor/k8s.io/client-go/informers/batch/v2alpha1/interface.go b/vendor/k8s.io/client-go/informers/batch/v2alpha1/interface.go index 3c2780fd2..6c5bf236f 100644 --- a/vendor/k8s.io/client-go/informers/batch/v2alpha1/interface.go +++ b/vendor/k8s.io/client-go/informers/batch/v2alpha1/interface.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/informers/certificates/BUILD b/vendor/k8s.io/client-go/informers/certificates/BUILD deleted file mode 100644 index bbe39da8b..000000000 --- a/vendor/k8s.io/client-go/informers/certificates/BUILD +++ /dev/null @@ -1,32 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = ["interface.go"], - importpath = "k8s.io/client-go/informers/certificates", - deps = [ - "//vendor/k8s.io/client-go/informers/certificates/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/informers/certificates/v1beta1:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/informers/certificates/interface.go b/vendor/k8s.io/client-go/informers/certificates/interface.go index 9b3121186..cff455403 100644 --- a/vendor/k8s.io/client-go/informers/certificates/interface.go +++ b/vendor/k8s.io/client-go/informers/certificates/interface.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/informers/certificates/v1beta1/BUILD b/vendor/k8s.io/client-go/informers/certificates/v1beta1/BUILD deleted file mode 100644 index d8ada3891..000000000 --- a/vendor/k8s.io/client-go/informers/certificates/v1beta1/BUILD +++ /dev/null @@ -1,38 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "certificatesigningrequest.go", - "interface.go", - ], - importpath = "k8s.io/client-go/informers/certificates/v1beta1", - deps = [ - "//vendor/k8s.io/api/certificates/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", - "//vendor/k8s.io/client-go/kubernetes:go_default_library", - "//vendor/k8s.io/client-go/listers/certificates/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/informers/certificates/v1beta1/certificatesigningrequest.go b/vendor/k8s.io/client-go/informers/certificates/v1beta1/certificatesigningrequest.go index a3d6c2d6a..6472d20e2 100644 --- a/vendor/k8s.io/client-go/informers/certificates/v1beta1/certificatesigningrequest.go +++ b/vendor/k8s.io/client-go/informers/certificates/v1beta1/certificatesigningrequest.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ package v1beta1 import ( time "time" - certificates_v1beta1 "k8s.io/api/certificates/v1beta1" + certificatesv1beta1 "k8s.io/api/certificates/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" @@ -69,7 +69,7 @@ func NewFilteredCertificateSigningRequestInformer(client kubernetes.Interface, r return client.CertificatesV1beta1().CertificateSigningRequests().Watch(options) }, }, - &certificates_v1beta1.CertificateSigningRequest{}, + &certificatesv1beta1.CertificateSigningRequest{}, resyncPeriod, indexers, ) @@ -80,7 +80,7 @@ func (f *certificateSigningRequestInformer) defaultInformer(client kubernetes.In } func (f *certificateSigningRequestInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&certificates_v1beta1.CertificateSigningRequest{}, f.defaultInformer) + return f.factory.InformerFor(&certificatesv1beta1.CertificateSigningRequest{}, f.defaultInformer) } func (f *certificateSigningRequestInformer) Lister() v1beta1.CertificateSigningRequestLister { diff --git a/vendor/k8s.io/client-go/informers/certificates/v1beta1/interface.go b/vendor/k8s.io/client-go/informers/certificates/v1beta1/interface.go index 718f370ee..258dd1d0e 100644 --- a/vendor/k8s.io/client-go/informers/certificates/v1beta1/interface.go +++ b/vendor/k8s.io/client-go/informers/certificates/v1beta1/interface.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/informers/coordination/interface.go b/vendor/k8s.io/client-go/informers/coordination/interface.go new file mode 100644 index 000000000..8e541d80d --- /dev/null +++ b/vendor/k8s.io/client-go/informers/coordination/interface.go @@ -0,0 +1,46 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by informer-gen. DO NOT EDIT. + +package coordination + +import ( + v1beta1 "k8s.io/client-go/informers/coordination/v1beta1" + internalinterfaces "k8s.io/client-go/informers/internalinterfaces" +) + +// Interface provides access to each of this group's versions. +type Interface interface { + // V1beta1 provides access to shared informers for resources in V1beta1. + V1beta1() v1beta1.Interface +} + +type group struct { + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc +} + +// New returns a new Interface. +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} +} + +// V1beta1 returns a new v1beta1.Interface. +func (g *group) V1beta1() v1beta1.Interface { + return v1beta1.New(g.factory, g.namespace, g.tweakListOptions) +} diff --git a/vendor/k8s.io/client-go/informers/coordination/v1beta1/interface.go b/vendor/k8s.io/client-go/informers/coordination/v1beta1/interface.go new file mode 100644 index 000000000..360266206 --- /dev/null +++ b/vendor/k8s.io/client-go/informers/coordination/v1beta1/interface.go @@ -0,0 +1,45 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by informer-gen. DO NOT EDIT. + +package v1beta1 + +import ( + internalinterfaces "k8s.io/client-go/informers/internalinterfaces" +) + +// Interface provides access to all the informers in this group version. +type Interface interface { + // Leases returns a LeaseInformer. + Leases() LeaseInformer +} + +type version struct { + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc +} + +// New returns a new Interface. +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} +} + +// Leases returns a LeaseInformer. +func (v *version) Leases() LeaseInformer { + return &leaseInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} +} diff --git a/vendor/k8s.io/client-go/informers/coordination/v1beta1/lease.go b/vendor/k8s.io/client-go/informers/coordination/v1beta1/lease.go new file mode 100644 index 000000000..bb59be13e --- /dev/null +++ b/vendor/k8s.io/client-go/informers/coordination/v1beta1/lease.go @@ -0,0 +1,89 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by informer-gen. DO NOT EDIT. + +package v1beta1 + +import ( + time "time" + + coordinationv1beta1 "k8s.io/api/coordination/v1beta1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + watch "k8s.io/apimachinery/pkg/watch" + internalinterfaces "k8s.io/client-go/informers/internalinterfaces" + kubernetes "k8s.io/client-go/kubernetes" + v1beta1 "k8s.io/client-go/listers/coordination/v1beta1" + cache "k8s.io/client-go/tools/cache" +) + +// LeaseInformer provides access to a shared informer and lister for +// Leases. +type LeaseInformer interface { + Informer() cache.SharedIndexInformer + Lister() v1beta1.LeaseLister +} + +type leaseInformer struct { + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string +} + +// NewLeaseInformer constructs a new informer for Lease type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewLeaseInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredLeaseInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredLeaseInformer constructs a new informer for Lease type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewFilteredLeaseInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { + return cache.NewSharedIndexInformer( + &cache.ListWatch{ + ListFunc: func(options v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.CoordinationV1beta1().Leases(namespace).List(options) + }, + WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.CoordinationV1beta1().Leases(namespace).Watch(options) + }, + }, + &coordinationv1beta1.Lease{}, + resyncPeriod, + indexers, + ) +} + +func (f *leaseInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredLeaseInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) +} + +func (f *leaseInformer) Informer() cache.SharedIndexInformer { + return f.factory.InformerFor(&coordinationv1beta1.Lease{}, f.defaultInformer) +} + +func (f *leaseInformer) Lister() v1beta1.LeaseLister { + return v1beta1.NewLeaseLister(f.Informer().GetIndexer()) +} diff --git a/vendor/k8s.io/client-go/informers/core/BUILD b/vendor/k8s.io/client-go/informers/core/BUILD deleted file mode 100644 index 694589909..000000000 --- a/vendor/k8s.io/client-go/informers/core/BUILD +++ /dev/null @@ -1,32 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = ["interface.go"], - importpath = "k8s.io/client-go/informers/core", - deps = [ - "//vendor/k8s.io/client-go/informers/core/v1:go_default_library", - "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/informers/core/v1:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/informers/core/interface.go b/vendor/k8s.io/client-go/informers/core/interface.go index aba68f349..de8396b51 100644 --- a/vendor/k8s.io/client-go/informers/core/interface.go +++ b/vendor/k8s.io/client-go/informers/core/interface.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/informers/core/v1/BUILD b/vendor/k8s.io/client-go/informers/core/v1/BUILD deleted file mode 100644 index 1d459c5db..000000000 --- a/vendor/k8s.io/client-go/informers/core/v1/BUILD +++ /dev/null @@ -1,53 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "componentstatus.go", - "configmap.go", - "endpoints.go", - "event.go", - "interface.go", - "limitrange.go", - "namespace.go", - "node.go", - "persistentvolume.go", - "persistentvolumeclaim.go", - "pod.go", - "podtemplate.go", - "replicationcontroller.go", - "resourcequota.go", - "secret.go", - "service.go", - "serviceaccount.go", - ], - importpath = "k8s.io/client-go/informers/core/v1", - deps = [ - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", - "//vendor/k8s.io/client-go/kubernetes:go_default_library", - "//vendor/k8s.io/client-go/listers/core/v1:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/informers/core/v1/componentstatus.go b/vendor/k8s.io/client-go/informers/core/v1/componentstatus.go index 33fc65a52..a5ae6fc49 100644 --- a/vendor/k8s.io/client-go/informers/core/v1/componentstatus.go +++ b/vendor/k8s.io/client-go/informers/core/v1/componentstatus.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,8 +21,8 @@ package v1 import ( time "time" - core_v1 "k8s.io/api/core/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" internalinterfaces "k8s.io/client-go/informers/internalinterfaces" @@ -56,20 +56,20 @@ func NewComponentStatusInformer(client kubernetes.Interface, resyncPeriod time.D func NewFilteredComponentStatusInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ - ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.CoreV1().ComponentStatuses().List(options) }, - WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.CoreV1().ComponentStatuses().Watch(options) }, }, - &core_v1.ComponentStatus{}, + &corev1.ComponentStatus{}, resyncPeriod, indexers, ) @@ -80,7 +80,7 @@ func (f *componentStatusInformer) defaultInformer(client kubernetes.Interface, r } func (f *componentStatusInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&core_v1.ComponentStatus{}, f.defaultInformer) + return f.factory.InformerFor(&corev1.ComponentStatus{}, f.defaultInformer) } func (f *componentStatusInformer) Lister() v1.ComponentStatusLister { diff --git a/vendor/k8s.io/client-go/informers/core/v1/configmap.go b/vendor/k8s.io/client-go/informers/core/v1/configmap.go index 618e74994..48cb1a48e 100644 --- a/vendor/k8s.io/client-go/informers/core/v1/configmap.go +++ b/vendor/k8s.io/client-go/informers/core/v1/configmap.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,8 +21,8 @@ package v1 import ( time "time" - core_v1 "k8s.io/api/core/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" internalinterfaces "k8s.io/client-go/informers/internalinterfaces" @@ -57,20 +57,20 @@ func NewConfigMapInformer(client kubernetes.Interface, namespace string, resyncP func NewFilteredConfigMapInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ - ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.CoreV1().ConfigMaps(namespace).List(options) }, - WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.CoreV1().ConfigMaps(namespace).Watch(options) }, }, - &core_v1.ConfigMap{}, + &corev1.ConfigMap{}, resyncPeriod, indexers, ) @@ -81,7 +81,7 @@ func (f *configMapInformer) defaultInformer(client kubernetes.Interface, resyncP } func (f *configMapInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&core_v1.ConfigMap{}, f.defaultInformer) + return f.factory.InformerFor(&corev1.ConfigMap{}, f.defaultInformer) } func (f *configMapInformer) Lister() v1.ConfigMapLister { diff --git a/vendor/k8s.io/client-go/informers/core/v1/endpoints.go b/vendor/k8s.io/client-go/informers/core/v1/endpoints.go index fa56fbc25..77fa8cf8a 100644 --- a/vendor/k8s.io/client-go/informers/core/v1/endpoints.go +++ b/vendor/k8s.io/client-go/informers/core/v1/endpoints.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,8 +21,8 @@ package v1 import ( time "time" - core_v1 "k8s.io/api/core/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" internalinterfaces "k8s.io/client-go/informers/internalinterfaces" @@ -57,20 +57,20 @@ func NewEndpointsInformer(client kubernetes.Interface, namespace string, resyncP func NewFilteredEndpointsInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ - ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.CoreV1().Endpoints(namespace).List(options) }, - WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.CoreV1().Endpoints(namespace).Watch(options) }, }, - &core_v1.Endpoints{}, + &corev1.Endpoints{}, resyncPeriod, indexers, ) @@ -81,7 +81,7 @@ func (f *endpointsInformer) defaultInformer(client kubernetes.Interface, resyncP } func (f *endpointsInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&core_v1.Endpoints{}, f.defaultInformer) + return f.factory.InformerFor(&corev1.Endpoints{}, f.defaultInformer) } func (f *endpointsInformer) Lister() v1.EndpointsLister { diff --git a/vendor/k8s.io/client-go/informers/core/v1/event.go b/vendor/k8s.io/client-go/informers/core/v1/event.go index 515784175..52f4911c1 100644 --- a/vendor/k8s.io/client-go/informers/core/v1/event.go +++ b/vendor/k8s.io/client-go/informers/core/v1/event.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,8 +21,8 @@ package v1 import ( time "time" - core_v1 "k8s.io/api/core/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" internalinterfaces "k8s.io/client-go/informers/internalinterfaces" @@ -57,20 +57,20 @@ func NewEventInformer(client kubernetes.Interface, namespace string, resyncPerio func NewFilteredEventInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ - ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.CoreV1().Events(namespace).List(options) }, - WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.CoreV1().Events(namespace).Watch(options) }, }, - &core_v1.Event{}, + &corev1.Event{}, resyncPeriod, indexers, ) @@ -81,7 +81,7 @@ func (f *eventInformer) defaultInformer(client kubernetes.Interface, resyncPerio } func (f *eventInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&core_v1.Event{}, f.defaultInformer) + return f.factory.InformerFor(&corev1.Event{}, f.defaultInformer) } func (f *eventInformer) Lister() v1.EventLister { diff --git a/vendor/k8s.io/client-go/informers/core/v1/interface.go b/vendor/k8s.io/client-go/informers/core/v1/interface.go index 9580dd9e0..b2216a05c 100644 --- a/vendor/k8s.io/client-go/informers/core/v1/interface.go +++ b/vendor/k8s.io/client-go/informers/core/v1/interface.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/informers/core/v1/limitrange.go b/vendor/k8s.io/client-go/informers/core/v1/limitrange.go index 8edffdfb7..7499e1869 100644 --- a/vendor/k8s.io/client-go/informers/core/v1/limitrange.go +++ b/vendor/k8s.io/client-go/informers/core/v1/limitrange.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,8 +21,8 @@ package v1 import ( time "time" - core_v1 "k8s.io/api/core/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" internalinterfaces "k8s.io/client-go/informers/internalinterfaces" @@ -57,20 +57,20 @@ func NewLimitRangeInformer(client kubernetes.Interface, namespace string, resync func NewFilteredLimitRangeInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ - ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.CoreV1().LimitRanges(namespace).List(options) }, - WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.CoreV1().LimitRanges(namespace).Watch(options) }, }, - &core_v1.LimitRange{}, + &corev1.LimitRange{}, resyncPeriod, indexers, ) @@ -81,7 +81,7 @@ func (f *limitRangeInformer) defaultInformer(client kubernetes.Interface, resync } func (f *limitRangeInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&core_v1.LimitRange{}, f.defaultInformer) + return f.factory.InformerFor(&corev1.LimitRange{}, f.defaultInformer) } func (f *limitRangeInformer) Lister() v1.LimitRangeLister { diff --git a/vendor/k8s.io/client-go/informers/core/v1/namespace.go b/vendor/k8s.io/client-go/informers/core/v1/namespace.go index e1925fed1..57a073355 100644 --- a/vendor/k8s.io/client-go/informers/core/v1/namespace.go +++ b/vendor/k8s.io/client-go/informers/core/v1/namespace.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,8 +21,8 @@ package v1 import ( time "time" - core_v1 "k8s.io/api/core/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" internalinterfaces "k8s.io/client-go/informers/internalinterfaces" @@ -56,20 +56,20 @@ func NewNamespaceInformer(client kubernetes.Interface, resyncPeriod time.Duratio func NewFilteredNamespaceInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ - ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.CoreV1().Namespaces().List(options) }, - WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.CoreV1().Namespaces().Watch(options) }, }, - &core_v1.Namespace{}, + &corev1.Namespace{}, resyncPeriod, indexers, ) @@ -80,7 +80,7 @@ func (f *namespaceInformer) defaultInformer(client kubernetes.Interface, resyncP } func (f *namespaceInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&core_v1.Namespace{}, f.defaultInformer) + return f.factory.InformerFor(&corev1.Namespace{}, f.defaultInformer) } func (f *namespaceInformer) Lister() v1.NamespaceLister { diff --git a/vendor/k8s.io/client-go/informers/core/v1/node.go b/vendor/k8s.io/client-go/informers/core/v1/node.go index dc829bcd6..d9b85f83c 100644 --- a/vendor/k8s.io/client-go/informers/core/v1/node.go +++ b/vendor/k8s.io/client-go/informers/core/v1/node.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,8 +21,8 @@ package v1 import ( time "time" - core_v1 "k8s.io/api/core/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" internalinterfaces "k8s.io/client-go/informers/internalinterfaces" @@ -56,20 +56,20 @@ func NewNodeInformer(client kubernetes.Interface, resyncPeriod time.Duration, in func NewFilteredNodeInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ - ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.CoreV1().Nodes().List(options) }, - WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.CoreV1().Nodes().Watch(options) }, }, - &core_v1.Node{}, + &corev1.Node{}, resyncPeriod, indexers, ) @@ -80,7 +80,7 @@ func (f *nodeInformer) defaultInformer(client kubernetes.Interface, resyncPeriod } func (f *nodeInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&core_v1.Node{}, f.defaultInformer) + return f.factory.InformerFor(&corev1.Node{}, f.defaultInformer) } func (f *nodeInformer) Lister() v1.NodeLister { diff --git a/vendor/k8s.io/client-go/informers/core/v1/persistentvolume.go b/vendor/k8s.io/client-go/informers/core/v1/persistentvolume.go index b3ed3c0d0..a50bcfc66 100644 --- a/vendor/k8s.io/client-go/informers/core/v1/persistentvolume.go +++ b/vendor/k8s.io/client-go/informers/core/v1/persistentvolume.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,8 +21,8 @@ package v1 import ( time "time" - core_v1 "k8s.io/api/core/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" internalinterfaces "k8s.io/client-go/informers/internalinterfaces" @@ -56,20 +56,20 @@ func NewPersistentVolumeInformer(client kubernetes.Interface, resyncPeriod time. func NewFilteredPersistentVolumeInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ - ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.CoreV1().PersistentVolumes().List(options) }, - WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.CoreV1().PersistentVolumes().Watch(options) }, }, - &core_v1.PersistentVolume{}, + &corev1.PersistentVolume{}, resyncPeriod, indexers, ) @@ -80,7 +80,7 @@ func (f *persistentVolumeInformer) defaultInformer(client kubernetes.Interface, } func (f *persistentVolumeInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&core_v1.PersistentVolume{}, f.defaultInformer) + return f.factory.InformerFor(&corev1.PersistentVolume{}, f.defaultInformer) } func (f *persistentVolumeInformer) Lister() v1.PersistentVolumeLister { diff --git a/vendor/k8s.io/client-go/informers/core/v1/persistentvolumeclaim.go b/vendor/k8s.io/client-go/informers/core/v1/persistentvolumeclaim.go index 9b4fde573..3fb5e5f6c 100644 --- a/vendor/k8s.io/client-go/informers/core/v1/persistentvolumeclaim.go +++ b/vendor/k8s.io/client-go/informers/core/v1/persistentvolumeclaim.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,8 +21,8 @@ package v1 import ( time "time" - core_v1 "k8s.io/api/core/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" internalinterfaces "k8s.io/client-go/informers/internalinterfaces" @@ -57,20 +57,20 @@ func NewPersistentVolumeClaimInformer(client kubernetes.Interface, namespace str func NewFilteredPersistentVolumeClaimInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ - ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.CoreV1().PersistentVolumeClaims(namespace).List(options) }, - WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.CoreV1().PersistentVolumeClaims(namespace).Watch(options) }, }, - &core_v1.PersistentVolumeClaim{}, + &corev1.PersistentVolumeClaim{}, resyncPeriod, indexers, ) @@ -81,7 +81,7 @@ func (f *persistentVolumeClaimInformer) defaultInformer(client kubernetes.Interf } func (f *persistentVolumeClaimInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&core_v1.PersistentVolumeClaim{}, f.defaultInformer) + return f.factory.InformerFor(&corev1.PersistentVolumeClaim{}, f.defaultInformer) } func (f *persistentVolumeClaimInformer) Lister() v1.PersistentVolumeClaimLister { diff --git a/vendor/k8s.io/client-go/informers/core/v1/pod.go b/vendor/k8s.io/client-go/informers/core/v1/pod.go index 18e61b225..57aadd945 100644 --- a/vendor/k8s.io/client-go/informers/core/v1/pod.go +++ b/vendor/k8s.io/client-go/informers/core/v1/pod.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,8 +21,8 @@ package v1 import ( time "time" - core_v1 "k8s.io/api/core/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" internalinterfaces "k8s.io/client-go/informers/internalinterfaces" @@ -57,20 +57,20 @@ func NewPodInformer(client kubernetes.Interface, namespace string, resyncPeriod func NewFilteredPodInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ - ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.CoreV1().Pods(namespace).List(options) }, - WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.CoreV1().Pods(namespace).Watch(options) }, }, - &core_v1.Pod{}, + &corev1.Pod{}, resyncPeriod, indexers, ) @@ -81,7 +81,7 @@ func (f *podInformer) defaultInformer(client kubernetes.Interface, resyncPeriod } func (f *podInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&core_v1.Pod{}, f.defaultInformer) + return f.factory.InformerFor(&corev1.Pod{}, f.defaultInformer) } func (f *podInformer) Lister() v1.PodLister { diff --git a/vendor/k8s.io/client-go/informers/core/v1/podtemplate.go b/vendor/k8s.io/client-go/informers/core/v1/podtemplate.go index a7de79b18..ff47094fb 100644 --- a/vendor/k8s.io/client-go/informers/core/v1/podtemplate.go +++ b/vendor/k8s.io/client-go/informers/core/v1/podtemplate.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,8 +21,8 @@ package v1 import ( time "time" - core_v1 "k8s.io/api/core/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" internalinterfaces "k8s.io/client-go/informers/internalinterfaces" @@ -57,20 +57,20 @@ func NewPodTemplateInformer(client kubernetes.Interface, namespace string, resyn func NewFilteredPodTemplateInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ - ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.CoreV1().PodTemplates(namespace).List(options) }, - WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.CoreV1().PodTemplates(namespace).Watch(options) }, }, - &core_v1.PodTemplate{}, + &corev1.PodTemplate{}, resyncPeriod, indexers, ) @@ -81,7 +81,7 @@ func (f *podTemplateInformer) defaultInformer(client kubernetes.Interface, resyn } func (f *podTemplateInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&core_v1.PodTemplate{}, f.defaultInformer) + return f.factory.InformerFor(&corev1.PodTemplate{}, f.defaultInformer) } func (f *podTemplateInformer) Lister() v1.PodTemplateLister { diff --git a/vendor/k8s.io/client-go/informers/core/v1/replicationcontroller.go b/vendor/k8s.io/client-go/informers/core/v1/replicationcontroller.go index df0a1d604..903fe3fba 100644 --- a/vendor/k8s.io/client-go/informers/core/v1/replicationcontroller.go +++ b/vendor/k8s.io/client-go/informers/core/v1/replicationcontroller.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,8 +21,8 @@ package v1 import ( time "time" - core_v1 "k8s.io/api/core/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" internalinterfaces "k8s.io/client-go/informers/internalinterfaces" @@ -57,20 +57,20 @@ func NewReplicationControllerInformer(client kubernetes.Interface, namespace str func NewFilteredReplicationControllerInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ - ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.CoreV1().ReplicationControllers(namespace).List(options) }, - WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.CoreV1().ReplicationControllers(namespace).Watch(options) }, }, - &core_v1.ReplicationController{}, + &corev1.ReplicationController{}, resyncPeriod, indexers, ) @@ -81,7 +81,7 @@ func (f *replicationControllerInformer) defaultInformer(client kubernetes.Interf } func (f *replicationControllerInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&core_v1.ReplicationController{}, f.defaultInformer) + return f.factory.InformerFor(&corev1.ReplicationController{}, f.defaultInformer) } func (f *replicationControllerInformer) Lister() v1.ReplicationControllerLister { diff --git a/vendor/k8s.io/client-go/informers/core/v1/resourcequota.go b/vendor/k8s.io/client-go/informers/core/v1/resourcequota.go index 89a56acb8..27ae53ccb 100644 --- a/vendor/k8s.io/client-go/informers/core/v1/resourcequota.go +++ b/vendor/k8s.io/client-go/informers/core/v1/resourcequota.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,8 +21,8 @@ package v1 import ( time "time" - core_v1 "k8s.io/api/core/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" internalinterfaces "k8s.io/client-go/informers/internalinterfaces" @@ -57,20 +57,20 @@ func NewResourceQuotaInformer(client kubernetes.Interface, namespace string, res func NewFilteredResourceQuotaInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ - ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.CoreV1().ResourceQuotas(namespace).List(options) }, - WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.CoreV1().ResourceQuotas(namespace).Watch(options) }, }, - &core_v1.ResourceQuota{}, + &corev1.ResourceQuota{}, resyncPeriod, indexers, ) @@ -81,7 +81,7 @@ func (f *resourceQuotaInformer) defaultInformer(client kubernetes.Interface, res } func (f *resourceQuotaInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&core_v1.ResourceQuota{}, f.defaultInformer) + return f.factory.InformerFor(&corev1.ResourceQuota{}, f.defaultInformer) } func (f *resourceQuotaInformer) Lister() v1.ResourceQuotaLister { diff --git a/vendor/k8s.io/client-go/informers/core/v1/secret.go b/vendor/k8s.io/client-go/informers/core/v1/secret.go index 05939c861..e13776b2b 100644 --- a/vendor/k8s.io/client-go/informers/core/v1/secret.go +++ b/vendor/k8s.io/client-go/informers/core/v1/secret.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,8 +21,8 @@ package v1 import ( time "time" - core_v1 "k8s.io/api/core/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" internalinterfaces "k8s.io/client-go/informers/internalinterfaces" @@ -57,20 +57,20 @@ func NewSecretInformer(client kubernetes.Interface, namespace string, resyncPeri func NewFilteredSecretInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ - ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.CoreV1().Secrets(namespace).List(options) }, - WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.CoreV1().Secrets(namespace).Watch(options) }, }, - &core_v1.Secret{}, + &corev1.Secret{}, resyncPeriod, indexers, ) @@ -81,7 +81,7 @@ func (f *secretInformer) defaultInformer(client kubernetes.Interface, resyncPeri } func (f *secretInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&core_v1.Secret{}, f.defaultInformer) + return f.factory.InformerFor(&corev1.Secret{}, f.defaultInformer) } func (f *secretInformer) Lister() v1.SecretLister { diff --git a/vendor/k8s.io/client-go/informers/core/v1/service.go b/vendor/k8s.io/client-go/informers/core/v1/service.go index 0e8aa0f7a..1c758668c 100644 --- a/vendor/k8s.io/client-go/informers/core/v1/service.go +++ b/vendor/k8s.io/client-go/informers/core/v1/service.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,8 +21,8 @@ package v1 import ( time "time" - core_v1 "k8s.io/api/core/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" internalinterfaces "k8s.io/client-go/informers/internalinterfaces" @@ -57,20 +57,20 @@ func NewServiceInformer(client kubernetes.Interface, namespace string, resyncPer func NewFilteredServiceInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ - ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.CoreV1().Services(namespace).List(options) }, - WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.CoreV1().Services(namespace).Watch(options) }, }, - &core_v1.Service{}, + &corev1.Service{}, resyncPeriod, indexers, ) @@ -81,7 +81,7 @@ func (f *serviceInformer) defaultInformer(client kubernetes.Interface, resyncPer } func (f *serviceInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&core_v1.Service{}, f.defaultInformer) + return f.factory.InformerFor(&corev1.Service{}, f.defaultInformer) } func (f *serviceInformer) Lister() v1.ServiceLister { diff --git a/vendor/k8s.io/client-go/informers/core/v1/serviceaccount.go b/vendor/k8s.io/client-go/informers/core/v1/serviceaccount.go index bf3b5a7bb..c701b8f1e 100644 --- a/vendor/k8s.io/client-go/informers/core/v1/serviceaccount.go +++ b/vendor/k8s.io/client-go/informers/core/v1/serviceaccount.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,8 +21,8 @@ package v1 import ( time "time" - core_v1 "k8s.io/api/core/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" internalinterfaces "k8s.io/client-go/informers/internalinterfaces" @@ -57,20 +57,20 @@ func NewServiceAccountInformer(client kubernetes.Interface, namespace string, re func NewFilteredServiceAccountInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ - ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.CoreV1().ServiceAccounts(namespace).List(options) }, - WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.CoreV1().ServiceAccounts(namespace).Watch(options) }, }, - &core_v1.ServiceAccount{}, + &corev1.ServiceAccount{}, resyncPeriod, indexers, ) @@ -81,7 +81,7 @@ func (f *serviceAccountInformer) defaultInformer(client kubernetes.Interface, re } func (f *serviceAccountInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&core_v1.ServiceAccount{}, f.defaultInformer) + return f.factory.InformerFor(&corev1.ServiceAccount{}, f.defaultInformer) } func (f *serviceAccountInformer) Lister() v1.ServiceAccountLister { diff --git a/vendor/k8s.io/client-go/informers/events/BUILD b/vendor/k8s.io/client-go/informers/events/BUILD deleted file mode 100644 index cf87d7c56..000000000 --- a/vendor/k8s.io/client-go/informers/events/BUILD +++ /dev/null @@ -1,29 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = ["interface.go"], - importpath = "k8s.io/client-go/informers/events", - visibility = ["//visibility:public"], - deps = [ - "//vendor/k8s.io/client-go/informers/events/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/informers/events/v1beta1:all-srcs", - ], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/client-go/informers/events/interface.go b/vendor/k8s.io/client-go/informers/events/interface.go index e8ad97c3c..af30a3913 100644 --- a/vendor/k8s.io/client-go/informers/events/interface.go +++ b/vendor/k8s.io/client-go/informers/events/interface.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/informers/events/v1beta1/BUILD b/vendor/k8s.io/client-go/informers/events/v1beta1/BUILD deleted file mode 100644 index 7f398d3ef..000000000 --- a/vendor/k8s.io/client-go/informers/events/v1beta1/BUILD +++ /dev/null @@ -1,35 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "event.go", - "interface.go", - ], - importpath = "k8s.io/client-go/informers/events/v1beta1", - visibility = ["//visibility:public"], - deps = [ - "//vendor/k8s.io/api/events/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", - "//vendor/k8s.io/client-go/kubernetes:go_default_library", - "//vendor/k8s.io/client-go/listers/events/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/client-go/informers/events/v1beta1/event.go b/vendor/k8s.io/client-go/informers/events/v1beta1/event.go index 8f2b27cf5..0ac6fa282 100644 --- a/vendor/k8s.io/client-go/informers/events/v1beta1/event.go +++ b/vendor/k8s.io/client-go/informers/events/v1beta1/event.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ package v1beta1 import ( time "time" - events_v1beta1 "k8s.io/api/events/v1beta1" + eventsv1beta1 "k8s.io/api/events/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" @@ -70,7 +70,7 @@ func NewFilteredEventInformer(client kubernetes.Interface, namespace string, res return client.EventsV1beta1().Events(namespace).Watch(options) }, }, - &events_v1beta1.Event{}, + &eventsv1beta1.Event{}, resyncPeriod, indexers, ) @@ -81,7 +81,7 @@ func (f *eventInformer) defaultInformer(client kubernetes.Interface, resyncPerio } func (f *eventInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&events_v1beta1.Event{}, f.defaultInformer) + return f.factory.InformerFor(&eventsv1beta1.Event{}, f.defaultInformer) } func (f *eventInformer) Lister() v1beta1.EventLister { diff --git a/vendor/k8s.io/client-go/informers/events/v1beta1/interface.go b/vendor/k8s.io/client-go/informers/events/v1beta1/interface.go index 0c67badb2..c71888c9a 100644 --- a/vendor/k8s.io/client-go/informers/events/v1beta1/interface.go +++ b/vendor/k8s.io/client-go/informers/events/v1beta1/interface.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/informers/extensions/BUILD b/vendor/k8s.io/client-go/informers/extensions/BUILD deleted file mode 100644 index 070358e20..000000000 --- a/vendor/k8s.io/client-go/informers/extensions/BUILD +++ /dev/null @@ -1,32 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = ["interface.go"], - importpath = "k8s.io/client-go/informers/extensions", - deps = [ - "//vendor/k8s.io/client-go/informers/extensions/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/informers/extensions/v1beta1:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/informers/extensions/interface.go b/vendor/k8s.io/client-go/informers/extensions/interface.go index 93d912ca5..94a66d385 100644 --- a/vendor/k8s.io/client-go/informers/extensions/interface.go +++ b/vendor/k8s.io/client-go/informers/extensions/interface.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/informers/extensions/v1beta1/BUILD b/vendor/k8s.io/client-go/informers/extensions/v1beta1/BUILD deleted file mode 100644 index 7f11d7bdf..000000000 --- a/vendor/k8s.io/client-go/informers/extensions/v1beta1/BUILD +++ /dev/null @@ -1,42 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "daemonset.go", - "deployment.go", - "ingress.go", - "interface.go", - "podsecuritypolicy.go", - "replicaset.go", - ], - importpath = "k8s.io/client-go/informers/extensions/v1beta1", - deps = [ - "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", - "//vendor/k8s.io/client-go/kubernetes:go_default_library", - "//vendor/k8s.io/client-go/listers/extensions/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/informers/extensions/v1beta1/daemonset.go b/vendor/k8s.io/client-go/informers/extensions/v1beta1/daemonset.go index 0f24af5ca..80e84eba8 100644 --- a/vendor/k8s.io/client-go/informers/extensions/v1beta1/daemonset.go +++ b/vendor/k8s.io/client-go/informers/extensions/v1beta1/daemonset.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ package v1beta1 import ( time "time" - extensions_v1beta1 "k8s.io/api/extensions/v1beta1" + extensionsv1beta1 "k8s.io/api/extensions/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" @@ -70,7 +70,7 @@ func NewFilteredDaemonSetInformer(client kubernetes.Interface, namespace string, return client.ExtensionsV1beta1().DaemonSets(namespace).Watch(options) }, }, - &extensions_v1beta1.DaemonSet{}, + &extensionsv1beta1.DaemonSet{}, resyncPeriod, indexers, ) @@ -81,7 +81,7 @@ func (f *daemonSetInformer) defaultInformer(client kubernetes.Interface, resyncP } func (f *daemonSetInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&extensions_v1beta1.DaemonSet{}, f.defaultInformer) + return f.factory.InformerFor(&extensionsv1beta1.DaemonSet{}, f.defaultInformer) } func (f *daemonSetInformer) Lister() v1beta1.DaemonSetLister { diff --git a/vendor/k8s.io/client-go/informers/extensions/v1beta1/deployment.go b/vendor/k8s.io/client-go/informers/extensions/v1beta1/deployment.go index 980eecb0f..cef4b8150 100644 --- a/vendor/k8s.io/client-go/informers/extensions/v1beta1/deployment.go +++ b/vendor/k8s.io/client-go/informers/extensions/v1beta1/deployment.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ package v1beta1 import ( time "time" - extensions_v1beta1 "k8s.io/api/extensions/v1beta1" + extensionsv1beta1 "k8s.io/api/extensions/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" @@ -70,7 +70,7 @@ func NewFilteredDeploymentInformer(client kubernetes.Interface, namespace string return client.ExtensionsV1beta1().Deployments(namespace).Watch(options) }, }, - &extensions_v1beta1.Deployment{}, + &extensionsv1beta1.Deployment{}, resyncPeriod, indexers, ) @@ -81,7 +81,7 @@ func (f *deploymentInformer) defaultInformer(client kubernetes.Interface, resync } func (f *deploymentInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&extensions_v1beta1.Deployment{}, f.defaultInformer) + return f.factory.InformerFor(&extensionsv1beta1.Deployment{}, f.defaultInformer) } func (f *deploymentInformer) Lister() v1beta1.DeploymentLister { diff --git a/vendor/k8s.io/client-go/informers/extensions/v1beta1/ingress.go b/vendor/k8s.io/client-go/informers/extensions/v1beta1/ingress.go index b250d22a3..72a88f313 100644 --- a/vendor/k8s.io/client-go/informers/extensions/v1beta1/ingress.go +++ b/vendor/k8s.io/client-go/informers/extensions/v1beta1/ingress.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ package v1beta1 import ( time "time" - extensions_v1beta1 "k8s.io/api/extensions/v1beta1" + extensionsv1beta1 "k8s.io/api/extensions/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" @@ -70,7 +70,7 @@ func NewFilteredIngressInformer(client kubernetes.Interface, namespace string, r return client.ExtensionsV1beta1().Ingresses(namespace).Watch(options) }, }, - &extensions_v1beta1.Ingress{}, + &extensionsv1beta1.Ingress{}, resyncPeriod, indexers, ) @@ -81,7 +81,7 @@ func (f *ingressInformer) defaultInformer(client kubernetes.Interface, resyncPer } func (f *ingressInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&extensions_v1beta1.Ingress{}, f.defaultInformer) + return f.factory.InformerFor(&extensionsv1beta1.Ingress{}, f.defaultInformer) } func (f *ingressInformer) Lister() v1beta1.IngressLister { diff --git a/vendor/k8s.io/client-go/informers/extensions/v1beta1/interface.go b/vendor/k8s.io/client-go/informers/extensions/v1beta1/interface.go index 10aa1b704..a259d27ae 100644 --- a/vendor/k8s.io/client-go/informers/extensions/v1beta1/interface.go +++ b/vendor/k8s.io/client-go/informers/extensions/v1beta1/interface.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/informers/extensions/v1beta1/podsecuritypolicy.go b/vendor/k8s.io/client-go/informers/extensions/v1beta1/podsecuritypolicy.go index 76b83b823..6f91e5458 100644 --- a/vendor/k8s.io/client-go/informers/extensions/v1beta1/podsecuritypolicy.go +++ b/vendor/k8s.io/client-go/informers/extensions/v1beta1/podsecuritypolicy.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ package v1beta1 import ( time "time" - extensions_v1beta1 "k8s.io/api/extensions/v1beta1" + extensionsv1beta1 "k8s.io/api/extensions/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" @@ -69,7 +69,7 @@ func NewFilteredPodSecurityPolicyInformer(client kubernetes.Interface, resyncPer return client.ExtensionsV1beta1().PodSecurityPolicies().Watch(options) }, }, - &extensions_v1beta1.PodSecurityPolicy{}, + &extensionsv1beta1.PodSecurityPolicy{}, resyncPeriod, indexers, ) @@ -80,7 +80,7 @@ func (f *podSecurityPolicyInformer) defaultInformer(client kubernetes.Interface, } func (f *podSecurityPolicyInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&extensions_v1beta1.PodSecurityPolicy{}, f.defaultInformer) + return f.factory.InformerFor(&extensionsv1beta1.PodSecurityPolicy{}, f.defaultInformer) } func (f *podSecurityPolicyInformer) Lister() v1beta1.PodSecurityPolicyLister { diff --git a/vendor/k8s.io/client-go/informers/extensions/v1beta1/replicaset.go b/vendor/k8s.io/client-go/informers/extensions/v1beta1/replicaset.go index 31c6a1b86..e8847aa2c 100644 --- a/vendor/k8s.io/client-go/informers/extensions/v1beta1/replicaset.go +++ b/vendor/k8s.io/client-go/informers/extensions/v1beta1/replicaset.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ package v1beta1 import ( time "time" - extensions_v1beta1 "k8s.io/api/extensions/v1beta1" + extensionsv1beta1 "k8s.io/api/extensions/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" @@ -70,7 +70,7 @@ func NewFilteredReplicaSetInformer(client kubernetes.Interface, namespace string return client.ExtensionsV1beta1().ReplicaSets(namespace).Watch(options) }, }, - &extensions_v1beta1.ReplicaSet{}, + &extensionsv1beta1.ReplicaSet{}, resyncPeriod, indexers, ) @@ -81,7 +81,7 @@ func (f *replicaSetInformer) defaultInformer(client kubernetes.Interface, resync } func (f *replicaSetInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&extensions_v1beta1.ReplicaSet{}, f.defaultInformer) + return f.factory.InformerFor(&extensionsv1beta1.ReplicaSet{}, f.defaultInformer) } func (f *replicaSetInformer) Lister() v1beta1.ReplicaSetLister { diff --git a/vendor/k8s.io/client-go/informers/factory.go b/vendor/k8s.io/client-go/informers/factory.go index 455afc2b9..88ead6213 100644 --- a/vendor/k8s.io/client-go/informers/factory.go +++ b/vendor/k8s.io/client-go/informers/factory.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -28,9 +28,11 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" admissionregistration "k8s.io/client-go/informers/admissionregistration" apps "k8s.io/client-go/informers/apps" + auditregistration "k8s.io/client-go/informers/auditregistration" autoscaling "k8s.io/client-go/informers/autoscaling" batch "k8s.io/client-go/informers/batch" certificates "k8s.io/client-go/informers/certificates" + coordination "k8s.io/client-go/informers/coordination" core "k8s.io/client-go/informers/core" events "k8s.io/client-go/informers/events" extensions "k8s.io/client-go/informers/extensions" @@ -45,12 +47,16 @@ import ( cache "k8s.io/client-go/tools/cache" ) +// SharedInformerOption defines the functional option type for SharedInformerFactory. +type SharedInformerOption func(*sharedInformerFactory) *sharedInformerFactory + type sharedInformerFactory struct { client kubernetes.Interface namespace string tweakListOptions internalinterfaces.TweakListOptionsFunc lock sync.Mutex defaultResync time.Duration + customResync map[reflect.Type]time.Duration informers map[reflect.Type]cache.SharedIndexInformer // startedInformers is used for tracking which informers have been started. @@ -58,23 +64,62 @@ type sharedInformerFactory struct { startedInformers map[reflect.Type]bool } -// NewSharedInformerFactory constructs a new instance of sharedInformerFactory +// WithCustomResyncConfig sets a custom resync period for the specified informer types. +func WithCustomResyncConfig(resyncConfig map[v1.Object]time.Duration) SharedInformerOption { + return func(factory *sharedInformerFactory) *sharedInformerFactory { + for k, v := range resyncConfig { + factory.customResync[reflect.TypeOf(k)] = v + } + return factory + } +} + +// WithTweakListOptions sets a custom filter on all listers of the configured SharedInformerFactory. +func WithTweakListOptions(tweakListOptions internalinterfaces.TweakListOptionsFunc) SharedInformerOption { + return func(factory *sharedInformerFactory) *sharedInformerFactory { + factory.tweakListOptions = tweakListOptions + return factory + } +} + +// WithNamespace limits the SharedInformerFactory to the specified namespace. +func WithNamespace(namespace string) SharedInformerOption { + return func(factory *sharedInformerFactory) *sharedInformerFactory { + factory.namespace = namespace + return factory + } +} + +// NewSharedInformerFactory constructs a new instance of sharedInformerFactory for all namespaces. func NewSharedInformerFactory(client kubernetes.Interface, defaultResync time.Duration) SharedInformerFactory { - return NewFilteredSharedInformerFactory(client, defaultResync, v1.NamespaceAll, nil) + return NewSharedInformerFactoryWithOptions(client, defaultResync) } // NewFilteredSharedInformerFactory constructs a new instance of sharedInformerFactory. // Listers obtained via this SharedInformerFactory will be subject to the same filters // as specified here. +// Deprecated: Please use NewSharedInformerFactoryWithOptions instead func NewFilteredSharedInformerFactory(client kubernetes.Interface, defaultResync time.Duration, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) SharedInformerFactory { - return &sharedInformerFactory{ + return NewSharedInformerFactoryWithOptions(client, defaultResync, WithNamespace(namespace), WithTweakListOptions(tweakListOptions)) +} + +// NewSharedInformerFactoryWithOptions constructs a new instance of a SharedInformerFactory with additional options. +func NewSharedInformerFactoryWithOptions(client kubernetes.Interface, defaultResync time.Duration, options ...SharedInformerOption) SharedInformerFactory { + factory := &sharedInformerFactory{ client: client, - namespace: namespace, - tweakListOptions: tweakListOptions, + namespace: v1.NamespaceAll, defaultResync: defaultResync, informers: make(map[reflect.Type]cache.SharedIndexInformer), startedInformers: make(map[reflect.Type]bool), + customResync: make(map[reflect.Type]time.Duration), } + + // Apply all options + for _, opt := range options { + factory = opt(factory) + } + + return factory } // Start initializes all requested informers. @@ -123,7 +168,13 @@ func (f *sharedInformerFactory) InformerFor(obj runtime.Object, newFunc internal if exists { return informer } - informer = newFunc(f.client, f.defaultResync) + + resyncPeriod, exists := f.customResync[informerType] + if !exists { + resyncPeriod = f.defaultResync + } + + informer = newFunc(f.client, resyncPeriod) f.informers[informerType] = informer return informer @@ -138,9 +189,11 @@ type SharedInformerFactory interface { Admissionregistration() admissionregistration.Interface Apps() apps.Interface + Auditregistration() auditregistration.Interface Autoscaling() autoscaling.Interface Batch() batch.Interface Certificates() certificates.Interface + Coordination() coordination.Interface Core() core.Interface Events() events.Interface Extensions() extensions.Interface @@ -160,6 +213,10 @@ func (f *sharedInformerFactory) Apps() apps.Interface { return apps.New(f, f.namespace, f.tweakListOptions) } +func (f *sharedInformerFactory) Auditregistration() auditregistration.Interface { + return auditregistration.New(f, f.namespace, f.tweakListOptions) +} + func (f *sharedInformerFactory) Autoscaling() autoscaling.Interface { return autoscaling.New(f, f.namespace, f.tweakListOptions) } @@ -172,6 +229,10 @@ func (f *sharedInformerFactory) Certificates() certificates.Interface { return certificates.New(f, f.namespace, f.tweakListOptions) } +func (f *sharedInformerFactory) Coordination() coordination.Interface { + return coordination.New(f, f.namespace, f.tweakListOptions) +} + func (f *sharedInformerFactory) Core() core.Interface { return core.New(f, f.namespace, f.tweakListOptions) } diff --git a/vendor/k8s.io/client-go/informers/generic.go b/vendor/k8s.io/client-go/informers/generic.go index 801267edf..09a5efe2e 100644 --- a/vendor/k8s.io/client-go/informers/generic.go +++ b/vendor/k8s.io/client-go/informers/generic.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -24,27 +24,31 @@ import ( v1alpha1 "k8s.io/api/admissionregistration/v1alpha1" v1beta1 "k8s.io/api/admissionregistration/v1beta1" v1 "k8s.io/api/apps/v1" - apps_v1beta1 "k8s.io/api/apps/v1beta1" + appsv1beta1 "k8s.io/api/apps/v1beta1" v1beta2 "k8s.io/api/apps/v1beta2" - autoscaling_v1 "k8s.io/api/autoscaling/v1" + auditregistrationv1alpha1 "k8s.io/api/auditregistration/v1alpha1" + autoscalingv1 "k8s.io/api/autoscaling/v1" v2beta1 "k8s.io/api/autoscaling/v2beta1" - batch_v1 "k8s.io/api/batch/v1" - batch_v1beta1 "k8s.io/api/batch/v1beta1" + v2beta2 "k8s.io/api/autoscaling/v2beta2" + batchv1 "k8s.io/api/batch/v1" + batchv1beta1 "k8s.io/api/batch/v1beta1" v2alpha1 "k8s.io/api/batch/v2alpha1" - certificates_v1beta1 "k8s.io/api/certificates/v1beta1" - core_v1 "k8s.io/api/core/v1" - events_v1beta1 "k8s.io/api/events/v1beta1" - extensions_v1beta1 "k8s.io/api/extensions/v1beta1" - networking_v1 "k8s.io/api/networking/v1" - policy_v1beta1 "k8s.io/api/policy/v1beta1" - rbac_v1 "k8s.io/api/rbac/v1" - rbac_v1alpha1 "k8s.io/api/rbac/v1alpha1" - rbac_v1beta1 "k8s.io/api/rbac/v1beta1" - scheduling_v1alpha1 "k8s.io/api/scheduling/v1alpha1" - settings_v1alpha1 "k8s.io/api/settings/v1alpha1" - storage_v1 "k8s.io/api/storage/v1" - storage_v1alpha1 "k8s.io/api/storage/v1alpha1" - storage_v1beta1 "k8s.io/api/storage/v1beta1" + certificatesv1beta1 "k8s.io/api/certificates/v1beta1" + coordinationv1beta1 "k8s.io/api/coordination/v1beta1" + corev1 "k8s.io/api/core/v1" + eventsv1beta1 "k8s.io/api/events/v1beta1" + extensionsv1beta1 "k8s.io/api/extensions/v1beta1" + networkingv1 "k8s.io/api/networking/v1" + policyv1beta1 "k8s.io/api/policy/v1beta1" + rbacv1 "k8s.io/api/rbac/v1" + rbacv1alpha1 "k8s.io/api/rbac/v1alpha1" + rbacv1beta1 "k8s.io/api/rbac/v1beta1" + schedulingv1alpha1 "k8s.io/api/scheduling/v1alpha1" + schedulingv1beta1 "k8s.io/api/scheduling/v1beta1" + settingsv1alpha1 "k8s.io/api/settings/v1alpha1" + storagev1 "k8s.io/api/storage/v1" + storagev1alpha1 "k8s.io/api/storage/v1alpha1" + storagev1beta1 "k8s.io/api/storage/v1beta1" schema "k8s.io/apimachinery/pkg/runtime/schema" cache "k8s.io/client-go/tools/cache" ) @@ -98,11 +102,11 @@ func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource return &genericInformer{resource: resource.GroupResource(), informer: f.Apps().V1().StatefulSets().Informer()}, nil // Group=apps, Version=v1beta1 - case apps_v1beta1.SchemeGroupVersion.WithResource("controllerrevisions"): + case appsv1beta1.SchemeGroupVersion.WithResource("controllerrevisions"): return &genericInformer{resource: resource.GroupResource(), informer: f.Apps().V1beta1().ControllerRevisions().Informer()}, nil - case apps_v1beta1.SchemeGroupVersion.WithResource("deployments"): + case appsv1beta1.SchemeGroupVersion.WithResource("deployments"): return &genericInformer{resource: resource.GroupResource(), informer: f.Apps().V1beta1().Deployments().Informer()}, nil - case apps_v1beta1.SchemeGroupVersion.WithResource("statefulsets"): + case appsv1beta1.SchemeGroupVersion.WithResource("statefulsets"): return &genericInformer{resource: resource.GroupResource(), informer: f.Apps().V1beta1().StatefulSets().Informer()}, nil // Group=apps, Version=v1beta2 @@ -117,20 +121,28 @@ func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource case v1beta2.SchemeGroupVersion.WithResource("statefulsets"): return &genericInformer{resource: resource.GroupResource(), informer: f.Apps().V1beta2().StatefulSets().Informer()}, nil + // Group=auditregistration.k8s.io, Version=v1alpha1 + case auditregistrationv1alpha1.SchemeGroupVersion.WithResource("auditsinks"): + return &genericInformer{resource: resource.GroupResource(), informer: f.Auditregistration().V1alpha1().AuditSinks().Informer()}, nil + // Group=autoscaling, Version=v1 - case autoscaling_v1.SchemeGroupVersion.WithResource("horizontalpodautoscalers"): + case autoscalingv1.SchemeGroupVersion.WithResource("horizontalpodautoscalers"): return &genericInformer{resource: resource.GroupResource(), informer: f.Autoscaling().V1().HorizontalPodAutoscalers().Informer()}, nil // Group=autoscaling, Version=v2beta1 case v2beta1.SchemeGroupVersion.WithResource("horizontalpodautoscalers"): return &genericInformer{resource: resource.GroupResource(), informer: f.Autoscaling().V2beta1().HorizontalPodAutoscalers().Informer()}, nil + // Group=autoscaling, Version=v2beta2 + case v2beta2.SchemeGroupVersion.WithResource("horizontalpodautoscalers"): + return &genericInformer{resource: resource.GroupResource(), informer: f.Autoscaling().V2beta2().HorizontalPodAutoscalers().Informer()}, nil + // Group=batch, Version=v1 - case batch_v1.SchemeGroupVersion.WithResource("jobs"): + case batchv1.SchemeGroupVersion.WithResource("jobs"): return &genericInformer{resource: resource.GroupResource(), informer: f.Batch().V1().Jobs().Informer()}, nil // Group=batch, Version=v1beta1 - case batch_v1beta1.SchemeGroupVersion.WithResource("cronjobs"): + case batchv1beta1.SchemeGroupVersion.WithResource("cronjobs"): return &genericInformer{resource: resource.GroupResource(), informer: f.Batch().V1beta1().CronJobs().Informer()}, nil // Group=batch, Version=v2alpha1 @@ -138,119 +150,129 @@ func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource return &genericInformer{resource: resource.GroupResource(), informer: f.Batch().V2alpha1().CronJobs().Informer()}, nil // Group=certificates.k8s.io, Version=v1beta1 - case certificates_v1beta1.SchemeGroupVersion.WithResource("certificatesigningrequests"): + case certificatesv1beta1.SchemeGroupVersion.WithResource("certificatesigningrequests"): return &genericInformer{resource: resource.GroupResource(), informer: f.Certificates().V1beta1().CertificateSigningRequests().Informer()}, nil + // Group=coordination.k8s.io, Version=v1beta1 + case coordinationv1beta1.SchemeGroupVersion.WithResource("leases"): + return &genericInformer{resource: resource.GroupResource(), informer: f.Coordination().V1beta1().Leases().Informer()}, nil + // Group=core, Version=v1 - case core_v1.SchemeGroupVersion.WithResource("componentstatuses"): + case corev1.SchemeGroupVersion.WithResource("componentstatuses"): return &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().ComponentStatuses().Informer()}, nil - case core_v1.SchemeGroupVersion.WithResource("configmaps"): + case corev1.SchemeGroupVersion.WithResource("configmaps"): return &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().ConfigMaps().Informer()}, nil - case core_v1.SchemeGroupVersion.WithResource("endpoints"): + case corev1.SchemeGroupVersion.WithResource("endpoints"): return &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().Endpoints().Informer()}, nil - case core_v1.SchemeGroupVersion.WithResource("events"): + case corev1.SchemeGroupVersion.WithResource("events"): return &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().Events().Informer()}, nil - case core_v1.SchemeGroupVersion.WithResource("limitranges"): + case corev1.SchemeGroupVersion.WithResource("limitranges"): return &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().LimitRanges().Informer()}, nil - case core_v1.SchemeGroupVersion.WithResource("namespaces"): + case corev1.SchemeGroupVersion.WithResource("namespaces"): return &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().Namespaces().Informer()}, nil - case core_v1.SchemeGroupVersion.WithResource("nodes"): + case corev1.SchemeGroupVersion.WithResource("nodes"): return &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().Nodes().Informer()}, nil - case core_v1.SchemeGroupVersion.WithResource("persistentvolumes"): + case corev1.SchemeGroupVersion.WithResource("persistentvolumes"): return &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().PersistentVolumes().Informer()}, nil - case core_v1.SchemeGroupVersion.WithResource("persistentvolumeclaims"): + case corev1.SchemeGroupVersion.WithResource("persistentvolumeclaims"): return &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().PersistentVolumeClaims().Informer()}, nil - case core_v1.SchemeGroupVersion.WithResource("pods"): + case corev1.SchemeGroupVersion.WithResource("pods"): return &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().Pods().Informer()}, nil - case core_v1.SchemeGroupVersion.WithResource("podtemplates"): + case corev1.SchemeGroupVersion.WithResource("podtemplates"): return &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().PodTemplates().Informer()}, nil - case core_v1.SchemeGroupVersion.WithResource("replicationcontrollers"): + case corev1.SchemeGroupVersion.WithResource("replicationcontrollers"): return &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().ReplicationControllers().Informer()}, nil - case core_v1.SchemeGroupVersion.WithResource("resourcequotas"): + case corev1.SchemeGroupVersion.WithResource("resourcequotas"): return &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().ResourceQuotas().Informer()}, nil - case core_v1.SchemeGroupVersion.WithResource("secrets"): + case corev1.SchemeGroupVersion.WithResource("secrets"): return &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().Secrets().Informer()}, nil - case core_v1.SchemeGroupVersion.WithResource("services"): + case corev1.SchemeGroupVersion.WithResource("services"): return &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().Services().Informer()}, nil - case core_v1.SchemeGroupVersion.WithResource("serviceaccounts"): + case corev1.SchemeGroupVersion.WithResource("serviceaccounts"): return &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().ServiceAccounts().Informer()}, nil // Group=events.k8s.io, Version=v1beta1 - case events_v1beta1.SchemeGroupVersion.WithResource("events"): + case eventsv1beta1.SchemeGroupVersion.WithResource("events"): return &genericInformer{resource: resource.GroupResource(), informer: f.Events().V1beta1().Events().Informer()}, nil // Group=extensions, Version=v1beta1 - case extensions_v1beta1.SchemeGroupVersion.WithResource("daemonsets"): + case extensionsv1beta1.SchemeGroupVersion.WithResource("daemonsets"): return &genericInformer{resource: resource.GroupResource(), informer: f.Extensions().V1beta1().DaemonSets().Informer()}, nil - case extensions_v1beta1.SchemeGroupVersion.WithResource("deployments"): + case extensionsv1beta1.SchemeGroupVersion.WithResource("deployments"): return &genericInformer{resource: resource.GroupResource(), informer: f.Extensions().V1beta1().Deployments().Informer()}, nil - case extensions_v1beta1.SchemeGroupVersion.WithResource("ingresses"): + case extensionsv1beta1.SchemeGroupVersion.WithResource("ingresses"): return &genericInformer{resource: resource.GroupResource(), informer: f.Extensions().V1beta1().Ingresses().Informer()}, nil - case extensions_v1beta1.SchemeGroupVersion.WithResource("podsecuritypolicies"): + case extensionsv1beta1.SchemeGroupVersion.WithResource("podsecuritypolicies"): return &genericInformer{resource: resource.GroupResource(), informer: f.Extensions().V1beta1().PodSecurityPolicies().Informer()}, nil - case extensions_v1beta1.SchemeGroupVersion.WithResource("replicasets"): + case extensionsv1beta1.SchemeGroupVersion.WithResource("replicasets"): return &genericInformer{resource: resource.GroupResource(), informer: f.Extensions().V1beta1().ReplicaSets().Informer()}, nil // Group=networking.k8s.io, Version=v1 - case networking_v1.SchemeGroupVersion.WithResource("networkpolicies"): + case networkingv1.SchemeGroupVersion.WithResource("networkpolicies"): return &genericInformer{resource: resource.GroupResource(), informer: f.Networking().V1().NetworkPolicies().Informer()}, nil // Group=policy, Version=v1beta1 - case policy_v1beta1.SchemeGroupVersion.WithResource("poddisruptionbudgets"): + case policyv1beta1.SchemeGroupVersion.WithResource("poddisruptionbudgets"): return &genericInformer{resource: resource.GroupResource(), informer: f.Policy().V1beta1().PodDisruptionBudgets().Informer()}, nil - case policy_v1beta1.SchemeGroupVersion.WithResource("podsecuritypolicies"): + case policyv1beta1.SchemeGroupVersion.WithResource("podsecuritypolicies"): return &genericInformer{resource: resource.GroupResource(), informer: f.Policy().V1beta1().PodSecurityPolicies().Informer()}, nil // Group=rbac.authorization.k8s.io, Version=v1 - case rbac_v1.SchemeGroupVersion.WithResource("clusterroles"): + case rbacv1.SchemeGroupVersion.WithResource("clusterroles"): return &genericInformer{resource: resource.GroupResource(), informer: f.Rbac().V1().ClusterRoles().Informer()}, nil - case rbac_v1.SchemeGroupVersion.WithResource("clusterrolebindings"): + case rbacv1.SchemeGroupVersion.WithResource("clusterrolebindings"): return &genericInformer{resource: resource.GroupResource(), informer: f.Rbac().V1().ClusterRoleBindings().Informer()}, nil - case rbac_v1.SchemeGroupVersion.WithResource("roles"): + case rbacv1.SchemeGroupVersion.WithResource("roles"): return &genericInformer{resource: resource.GroupResource(), informer: f.Rbac().V1().Roles().Informer()}, nil - case rbac_v1.SchemeGroupVersion.WithResource("rolebindings"): + case rbacv1.SchemeGroupVersion.WithResource("rolebindings"): return &genericInformer{resource: resource.GroupResource(), informer: f.Rbac().V1().RoleBindings().Informer()}, nil // Group=rbac.authorization.k8s.io, Version=v1alpha1 - case rbac_v1alpha1.SchemeGroupVersion.WithResource("clusterroles"): + case rbacv1alpha1.SchemeGroupVersion.WithResource("clusterroles"): return &genericInformer{resource: resource.GroupResource(), informer: f.Rbac().V1alpha1().ClusterRoles().Informer()}, nil - case rbac_v1alpha1.SchemeGroupVersion.WithResource("clusterrolebindings"): + case rbacv1alpha1.SchemeGroupVersion.WithResource("clusterrolebindings"): return &genericInformer{resource: resource.GroupResource(), informer: f.Rbac().V1alpha1().ClusterRoleBindings().Informer()}, nil - case rbac_v1alpha1.SchemeGroupVersion.WithResource("roles"): + case rbacv1alpha1.SchemeGroupVersion.WithResource("roles"): return &genericInformer{resource: resource.GroupResource(), informer: f.Rbac().V1alpha1().Roles().Informer()}, nil - case rbac_v1alpha1.SchemeGroupVersion.WithResource("rolebindings"): + case rbacv1alpha1.SchemeGroupVersion.WithResource("rolebindings"): return &genericInformer{resource: resource.GroupResource(), informer: f.Rbac().V1alpha1().RoleBindings().Informer()}, nil // Group=rbac.authorization.k8s.io, Version=v1beta1 - case rbac_v1beta1.SchemeGroupVersion.WithResource("clusterroles"): + case rbacv1beta1.SchemeGroupVersion.WithResource("clusterroles"): return &genericInformer{resource: resource.GroupResource(), informer: f.Rbac().V1beta1().ClusterRoles().Informer()}, nil - case rbac_v1beta1.SchemeGroupVersion.WithResource("clusterrolebindings"): + case rbacv1beta1.SchemeGroupVersion.WithResource("clusterrolebindings"): return &genericInformer{resource: resource.GroupResource(), informer: f.Rbac().V1beta1().ClusterRoleBindings().Informer()}, nil - case rbac_v1beta1.SchemeGroupVersion.WithResource("roles"): + case rbacv1beta1.SchemeGroupVersion.WithResource("roles"): return &genericInformer{resource: resource.GroupResource(), informer: f.Rbac().V1beta1().Roles().Informer()}, nil - case rbac_v1beta1.SchemeGroupVersion.WithResource("rolebindings"): + case rbacv1beta1.SchemeGroupVersion.WithResource("rolebindings"): return &genericInformer{resource: resource.GroupResource(), informer: f.Rbac().V1beta1().RoleBindings().Informer()}, nil // Group=scheduling.k8s.io, Version=v1alpha1 - case scheduling_v1alpha1.SchemeGroupVersion.WithResource("priorityclasses"): + case schedulingv1alpha1.SchemeGroupVersion.WithResource("priorityclasses"): return &genericInformer{resource: resource.GroupResource(), informer: f.Scheduling().V1alpha1().PriorityClasses().Informer()}, nil + // Group=scheduling.k8s.io, Version=v1beta1 + case schedulingv1beta1.SchemeGroupVersion.WithResource("priorityclasses"): + return &genericInformer{resource: resource.GroupResource(), informer: f.Scheduling().V1beta1().PriorityClasses().Informer()}, nil + // Group=settings.k8s.io, Version=v1alpha1 - case settings_v1alpha1.SchemeGroupVersion.WithResource("podpresets"): + case settingsv1alpha1.SchemeGroupVersion.WithResource("podpresets"): return &genericInformer{resource: resource.GroupResource(), informer: f.Settings().V1alpha1().PodPresets().Informer()}, nil // Group=storage.k8s.io, Version=v1 - case storage_v1.SchemeGroupVersion.WithResource("storageclasses"): + case storagev1.SchemeGroupVersion.WithResource("storageclasses"): return &genericInformer{resource: resource.GroupResource(), informer: f.Storage().V1().StorageClasses().Informer()}, nil + case storagev1.SchemeGroupVersion.WithResource("volumeattachments"): + return &genericInformer{resource: resource.GroupResource(), informer: f.Storage().V1().VolumeAttachments().Informer()}, nil // Group=storage.k8s.io, Version=v1alpha1 - case storage_v1alpha1.SchemeGroupVersion.WithResource("volumeattachments"): + case storagev1alpha1.SchemeGroupVersion.WithResource("volumeattachments"): return &genericInformer{resource: resource.GroupResource(), informer: f.Storage().V1alpha1().VolumeAttachments().Informer()}, nil // Group=storage.k8s.io, Version=v1beta1 - case storage_v1beta1.SchemeGroupVersion.WithResource("storageclasses"): + case storagev1beta1.SchemeGroupVersion.WithResource("storageclasses"): return &genericInformer{resource: resource.GroupResource(), informer: f.Storage().V1beta1().StorageClasses().Informer()}, nil - case storage_v1beta1.SchemeGroupVersion.WithResource("volumeattachments"): + case storagev1beta1.SchemeGroupVersion.WithResource("volumeattachments"): return &genericInformer{resource: resource.GroupResource(), informer: f.Storage().V1beta1().VolumeAttachments().Informer()}, nil } diff --git a/vendor/k8s.io/client-go/informers/internalinterfaces/BUILD b/vendor/k8s.io/client-go/informers/internalinterfaces/BUILD deleted file mode 100644 index 5b20c78f7..000000000 --- a/vendor/k8s.io/client-go/informers/internalinterfaces/BUILD +++ /dev/null @@ -1,31 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = ["factory_interfaces.go"], - importpath = "k8s.io/client-go/informers/internalinterfaces", - deps = [ - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/client-go/kubernetes:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/informers/internalinterfaces/factory_interfaces.go b/vendor/k8s.io/client-go/informers/internalinterfaces/factory_interfaces.go index 4e2a28fc7..b00ed70cf 100644 --- a/vendor/k8s.io/client-go/informers/internalinterfaces/factory_interfaces.go +++ b/vendor/k8s.io/client-go/informers/internalinterfaces/factory_interfaces.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -27,6 +27,7 @@ import ( cache "k8s.io/client-go/tools/cache" ) +// NewInformerFunc takes kubernetes.Interface and time.Duration to return a SharedIndexInformer. type NewInformerFunc func(kubernetes.Interface, time.Duration) cache.SharedIndexInformer // SharedInformerFactory a small interface to allow for adding an informer without an import cycle @@ -35,4 +36,5 @@ type SharedInformerFactory interface { InformerFor(obj runtime.Object, newFunc NewInformerFunc) cache.SharedIndexInformer } +// TweakListOptionsFunc is a function that transforms a v1.ListOptions. type TweakListOptionsFunc func(*v1.ListOptions) diff --git a/vendor/k8s.io/client-go/informers/networking/BUILD b/vendor/k8s.io/client-go/informers/networking/BUILD deleted file mode 100644 index 3219e7d02..000000000 --- a/vendor/k8s.io/client-go/informers/networking/BUILD +++ /dev/null @@ -1,32 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = ["interface.go"], - importpath = "k8s.io/client-go/informers/networking", - deps = [ - "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", - "//vendor/k8s.io/client-go/informers/networking/v1:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/informers/networking/v1:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/informers/networking/interface.go b/vendor/k8s.io/client-go/informers/networking/interface.go index 0f6c45649..989e8fa0f 100644 --- a/vendor/k8s.io/client-go/informers/networking/interface.go +++ b/vendor/k8s.io/client-go/informers/networking/interface.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/informers/networking/v1/BUILD b/vendor/k8s.io/client-go/informers/networking/v1/BUILD deleted file mode 100644 index dc6f32696..000000000 --- a/vendor/k8s.io/client-go/informers/networking/v1/BUILD +++ /dev/null @@ -1,38 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "interface.go", - "networkpolicy.go", - ], - importpath = "k8s.io/client-go/informers/networking/v1", - deps = [ - "//vendor/k8s.io/api/networking/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", - "//vendor/k8s.io/client-go/kubernetes:go_default_library", - "//vendor/k8s.io/client-go/listers/networking/v1:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/informers/networking/v1/interface.go b/vendor/k8s.io/client-go/informers/networking/v1/interface.go index 819a86146..84dc6476a 100644 --- a/vendor/k8s.io/client-go/informers/networking/v1/interface.go +++ b/vendor/k8s.io/client-go/informers/networking/v1/interface.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/informers/networking/v1/networkpolicy.go b/vendor/k8s.io/client-go/informers/networking/v1/networkpolicy.go index 20ac9909d..c2255c0df 100644 --- a/vendor/k8s.io/client-go/informers/networking/v1/networkpolicy.go +++ b/vendor/k8s.io/client-go/informers/networking/v1/networkpolicy.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,8 +21,8 @@ package v1 import ( time "time" - networking_v1 "k8s.io/api/networking/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + networkingv1 "k8s.io/api/networking/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" internalinterfaces "k8s.io/client-go/informers/internalinterfaces" @@ -57,20 +57,20 @@ func NewNetworkPolicyInformer(client kubernetes.Interface, namespace string, res func NewFilteredNetworkPolicyInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ - ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.NetworkingV1().NetworkPolicies(namespace).List(options) }, - WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.NetworkingV1().NetworkPolicies(namespace).Watch(options) }, }, - &networking_v1.NetworkPolicy{}, + &networkingv1.NetworkPolicy{}, resyncPeriod, indexers, ) @@ -81,7 +81,7 @@ func (f *networkPolicyInformer) defaultInformer(client kubernetes.Interface, res } func (f *networkPolicyInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&networking_v1.NetworkPolicy{}, f.defaultInformer) + return f.factory.InformerFor(&networkingv1.NetworkPolicy{}, f.defaultInformer) } func (f *networkPolicyInformer) Lister() v1.NetworkPolicyLister { diff --git a/vendor/k8s.io/client-go/informers/policy/BUILD b/vendor/k8s.io/client-go/informers/policy/BUILD deleted file mode 100644 index 882d54d5e..000000000 --- a/vendor/k8s.io/client-go/informers/policy/BUILD +++ /dev/null @@ -1,32 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = ["interface.go"], - importpath = "k8s.io/client-go/informers/policy", - deps = [ - "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", - "//vendor/k8s.io/client-go/informers/policy/v1beta1:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/informers/policy/v1beta1:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/informers/policy/interface.go b/vendor/k8s.io/client-go/informers/policy/interface.go index e77ab2b24..1859fca82 100644 --- a/vendor/k8s.io/client-go/informers/policy/interface.go +++ b/vendor/k8s.io/client-go/informers/policy/interface.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/informers/policy/v1beta1/BUILD b/vendor/k8s.io/client-go/informers/policy/v1beta1/BUILD deleted file mode 100644 index 547a0a397..000000000 --- a/vendor/k8s.io/client-go/informers/policy/v1beta1/BUILD +++ /dev/null @@ -1,39 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "interface.go", - "poddisruptionbudget.go", - "podsecuritypolicy.go", - ], - importpath = "k8s.io/client-go/informers/policy/v1beta1", - deps = [ - "//vendor/k8s.io/api/policy/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", - "//vendor/k8s.io/client-go/kubernetes:go_default_library", - "//vendor/k8s.io/client-go/listers/policy/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/informers/policy/v1beta1/interface.go b/vendor/k8s.io/client-go/informers/policy/v1beta1/interface.go index b368f068f..a6c1825d2 100644 --- a/vendor/k8s.io/client-go/informers/policy/v1beta1/interface.go +++ b/vendor/k8s.io/client-go/informers/policy/v1beta1/interface.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/informers/policy/v1beta1/poddisruptionbudget.go b/vendor/k8s.io/client-go/informers/policy/v1beta1/poddisruptionbudget.go index d5178652a..dce61f7f1 100644 --- a/vendor/k8s.io/client-go/informers/policy/v1beta1/poddisruptionbudget.go +++ b/vendor/k8s.io/client-go/informers/policy/v1beta1/poddisruptionbudget.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ package v1beta1 import ( time "time" - policy_v1beta1 "k8s.io/api/policy/v1beta1" + policyv1beta1 "k8s.io/api/policy/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" @@ -70,7 +70,7 @@ func NewFilteredPodDisruptionBudgetInformer(client kubernetes.Interface, namespa return client.PolicyV1beta1().PodDisruptionBudgets(namespace).Watch(options) }, }, - &policy_v1beta1.PodDisruptionBudget{}, + &policyv1beta1.PodDisruptionBudget{}, resyncPeriod, indexers, ) @@ -81,7 +81,7 @@ func (f *podDisruptionBudgetInformer) defaultInformer(client kubernetes.Interfac } func (f *podDisruptionBudgetInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&policy_v1beta1.PodDisruptionBudget{}, f.defaultInformer) + return f.factory.InformerFor(&policyv1beta1.PodDisruptionBudget{}, f.defaultInformer) } func (f *podDisruptionBudgetInformer) Lister() v1beta1.PodDisruptionBudgetLister { diff --git a/vendor/k8s.io/client-go/informers/policy/v1beta1/podsecuritypolicy.go b/vendor/k8s.io/client-go/informers/policy/v1beta1/podsecuritypolicy.go index c9bcc8bab..7ce5684fb 100644 --- a/vendor/k8s.io/client-go/informers/policy/v1beta1/podsecuritypolicy.go +++ b/vendor/k8s.io/client-go/informers/policy/v1beta1/podsecuritypolicy.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ package v1beta1 import ( time "time" - policy_v1beta1 "k8s.io/api/policy/v1beta1" + policyv1beta1 "k8s.io/api/policy/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" @@ -69,7 +69,7 @@ func NewFilteredPodSecurityPolicyInformer(client kubernetes.Interface, resyncPer return client.PolicyV1beta1().PodSecurityPolicies().Watch(options) }, }, - &policy_v1beta1.PodSecurityPolicy{}, + &policyv1beta1.PodSecurityPolicy{}, resyncPeriod, indexers, ) @@ -80,7 +80,7 @@ func (f *podSecurityPolicyInformer) defaultInformer(client kubernetes.Interface, } func (f *podSecurityPolicyInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&policy_v1beta1.PodSecurityPolicy{}, f.defaultInformer) + return f.factory.InformerFor(&policyv1beta1.PodSecurityPolicy{}, f.defaultInformer) } func (f *podSecurityPolicyInformer) Lister() v1beta1.PodSecurityPolicyLister { diff --git a/vendor/k8s.io/client-go/informers/rbac/BUILD b/vendor/k8s.io/client-go/informers/rbac/BUILD deleted file mode 100644 index e2afef934..000000000 --- a/vendor/k8s.io/client-go/informers/rbac/BUILD +++ /dev/null @@ -1,36 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = ["interface.go"], - importpath = "k8s.io/client-go/informers/rbac", - deps = [ - "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", - "//vendor/k8s.io/client-go/informers/rbac/v1:go_default_library", - "//vendor/k8s.io/client-go/informers/rbac/v1alpha1:go_default_library", - "//vendor/k8s.io/client-go/informers/rbac/v1beta1:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/informers/rbac/v1:all-srcs", - "//staging/src/k8s.io/client-go/informers/rbac/v1alpha1:all-srcs", - "//staging/src/k8s.io/client-go/informers/rbac/v1beta1:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/informers/rbac/interface.go b/vendor/k8s.io/client-go/informers/rbac/interface.go index ac491ee42..228811f8a 100644 --- a/vendor/k8s.io/client-go/informers/rbac/interface.go +++ b/vendor/k8s.io/client-go/informers/rbac/interface.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/informers/rbac/v1/BUILD b/vendor/k8s.io/client-go/informers/rbac/v1/BUILD deleted file mode 100644 index 4278890e8..000000000 --- a/vendor/k8s.io/client-go/informers/rbac/v1/BUILD +++ /dev/null @@ -1,41 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "clusterrole.go", - "clusterrolebinding.go", - "interface.go", - "role.go", - "rolebinding.go", - ], - importpath = "k8s.io/client-go/informers/rbac/v1", - deps = [ - "//vendor/k8s.io/api/rbac/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", - "//vendor/k8s.io/client-go/kubernetes:go_default_library", - "//vendor/k8s.io/client-go/listers/rbac/v1:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/informers/rbac/v1/clusterrole.go b/vendor/k8s.io/client-go/informers/rbac/v1/clusterrole.go index f541957a2..b8096e6bc 100644 --- a/vendor/k8s.io/client-go/informers/rbac/v1/clusterrole.go +++ b/vendor/k8s.io/client-go/informers/rbac/v1/clusterrole.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,8 +21,8 @@ package v1 import ( time "time" - rbac_v1 "k8s.io/api/rbac/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + rbacv1 "k8s.io/api/rbac/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" internalinterfaces "k8s.io/client-go/informers/internalinterfaces" @@ -56,20 +56,20 @@ func NewClusterRoleInformer(client kubernetes.Interface, resyncPeriod time.Durat func NewFilteredClusterRoleInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ - ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.RbacV1().ClusterRoles().List(options) }, - WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.RbacV1().ClusterRoles().Watch(options) }, }, - &rbac_v1.ClusterRole{}, + &rbacv1.ClusterRole{}, resyncPeriod, indexers, ) @@ -80,7 +80,7 @@ func (f *clusterRoleInformer) defaultInformer(client kubernetes.Interface, resyn } func (f *clusterRoleInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&rbac_v1.ClusterRole{}, f.defaultInformer) + return f.factory.InformerFor(&rbacv1.ClusterRole{}, f.defaultInformer) } func (f *clusterRoleInformer) Lister() v1.ClusterRoleLister { diff --git a/vendor/k8s.io/client-go/informers/rbac/v1/clusterrolebinding.go b/vendor/k8s.io/client-go/informers/rbac/v1/clusterrolebinding.go index bf1d7bdc1..5ef3407c4 100644 --- a/vendor/k8s.io/client-go/informers/rbac/v1/clusterrolebinding.go +++ b/vendor/k8s.io/client-go/informers/rbac/v1/clusterrolebinding.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,8 +21,8 @@ package v1 import ( time "time" - rbac_v1 "k8s.io/api/rbac/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + rbacv1 "k8s.io/api/rbac/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" internalinterfaces "k8s.io/client-go/informers/internalinterfaces" @@ -56,20 +56,20 @@ func NewClusterRoleBindingInformer(client kubernetes.Interface, resyncPeriod tim func NewFilteredClusterRoleBindingInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ - ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.RbacV1().ClusterRoleBindings().List(options) }, - WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.RbacV1().ClusterRoleBindings().Watch(options) }, }, - &rbac_v1.ClusterRoleBinding{}, + &rbacv1.ClusterRoleBinding{}, resyncPeriod, indexers, ) @@ -80,7 +80,7 @@ func (f *clusterRoleBindingInformer) defaultInformer(client kubernetes.Interface } func (f *clusterRoleBindingInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&rbac_v1.ClusterRoleBinding{}, f.defaultInformer) + return f.factory.InformerFor(&rbacv1.ClusterRoleBinding{}, f.defaultInformer) } func (f *clusterRoleBindingInformer) Lister() v1.ClusterRoleBindingLister { diff --git a/vendor/k8s.io/client-go/informers/rbac/v1/interface.go b/vendor/k8s.io/client-go/informers/rbac/v1/interface.go index fca0e807b..7f99c9454 100644 --- a/vendor/k8s.io/client-go/informers/rbac/v1/interface.go +++ b/vendor/k8s.io/client-go/informers/rbac/v1/interface.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/informers/rbac/v1/role.go b/vendor/k8s.io/client-go/informers/rbac/v1/role.go index f08e1fde3..2d98874e5 100644 --- a/vendor/k8s.io/client-go/informers/rbac/v1/role.go +++ b/vendor/k8s.io/client-go/informers/rbac/v1/role.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,8 +21,8 @@ package v1 import ( time "time" - rbac_v1 "k8s.io/api/rbac/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + rbacv1 "k8s.io/api/rbac/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" internalinterfaces "k8s.io/client-go/informers/internalinterfaces" @@ -57,20 +57,20 @@ func NewRoleInformer(client kubernetes.Interface, namespace string, resyncPeriod func NewFilteredRoleInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ - ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.RbacV1().Roles(namespace).List(options) }, - WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.RbacV1().Roles(namespace).Watch(options) }, }, - &rbac_v1.Role{}, + &rbacv1.Role{}, resyncPeriod, indexers, ) @@ -81,7 +81,7 @@ func (f *roleInformer) defaultInformer(client kubernetes.Interface, resyncPeriod } func (f *roleInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&rbac_v1.Role{}, f.defaultInformer) + return f.factory.InformerFor(&rbacv1.Role{}, f.defaultInformer) } func (f *roleInformer) Lister() v1.RoleLister { diff --git a/vendor/k8s.io/client-go/informers/rbac/v1/rolebinding.go b/vendor/k8s.io/client-go/informers/rbac/v1/rolebinding.go index f91c2ef03..a97107de1 100644 --- a/vendor/k8s.io/client-go/informers/rbac/v1/rolebinding.go +++ b/vendor/k8s.io/client-go/informers/rbac/v1/rolebinding.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,8 +21,8 @@ package v1 import ( time "time" - rbac_v1 "k8s.io/api/rbac/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + rbacv1 "k8s.io/api/rbac/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" internalinterfaces "k8s.io/client-go/informers/internalinterfaces" @@ -57,20 +57,20 @@ func NewRoleBindingInformer(client kubernetes.Interface, namespace string, resyn func NewFilteredRoleBindingInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ - ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.RbacV1().RoleBindings(namespace).List(options) }, - WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.RbacV1().RoleBindings(namespace).Watch(options) }, }, - &rbac_v1.RoleBinding{}, + &rbacv1.RoleBinding{}, resyncPeriod, indexers, ) @@ -81,7 +81,7 @@ func (f *roleBindingInformer) defaultInformer(client kubernetes.Interface, resyn } func (f *roleBindingInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&rbac_v1.RoleBinding{}, f.defaultInformer) + return f.factory.InformerFor(&rbacv1.RoleBinding{}, f.defaultInformer) } func (f *roleBindingInformer) Lister() v1.RoleBindingLister { diff --git a/vendor/k8s.io/client-go/informers/rbac/v1alpha1/BUILD b/vendor/k8s.io/client-go/informers/rbac/v1alpha1/BUILD deleted file mode 100644 index 345e10c6f..000000000 --- a/vendor/k8s.io/client-go/informers/rbac/v1alpha1/BUILD +++ /dev/null @@ -1,41 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "clusterrole.go", - "clusterrolebinding.go", - "interface.go", - "role.go", - "rolebinding.go", - ], - importpath = "k8s.io/client-go/informers/rbac/v1alpha1", - deps = [ - "//vendor/k8s.io/api/rbac/v1alpha1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", - "//vendor/k8s.io/client-go/kubernetes:go_default_library", - "//vendor/k8s.io/client-go/listers/rbac/v1alpha1:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/informers/rbac/v1alpha1/clusterrole.go b/vendor/k8s.io/client-go/informers/rbac/v1alpha1/clusterrole.go index 9293439f4..58c9c4125 100644 --- a/vendor/k8s.io/client-go/informers/rbac/v1alpha1/clusterrole.go +++ b/vendor/k8s.io/client-go/informers/rbac/v1alpha1/clusterrole.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ package v1alpha1 import ( time "time" - rbac_v1alpha1 "k8s.io/api/rbac/v1alpha1" + rbacv1alpha1 "k8s.io/api/rbac/v1alpha1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" @@ -69,7 +69,7 @@ func NewFilteredClusterRoleInformer(client kubernetes.Interface, resyncPeriod ti return client.RbacV1alpha1().ClusterRoles().Watch(options) }, }, - &rbac_v1alpha1.ClusterRole{}, + &rbacv1alpha1.ClusterRole{}, resyncPeriod, indexers, ) @@ -80,7 +80,7 @@ func (f *clusterRoleInformer) defaultInformer(client kubernetes.Interface, resyn } func (f *clusterRoleInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&rbac_v1alpha1.ClusterRole{}, f.defaultInformer) + return f.factory.InformerFor(&rbacv1alpha1.ClusterRole{}, f.defaultInformer) } func (f *clusterRoleInformer) Lister() v1alpha1.ClusterRoleLister { diff --git a/vendor/k8s.io/client-go/informers/rbac/v1alpha1/clusterrolebinding.go b/vendor/k8s.io/client-go/informers/rbac/v1alpha1/clusterrolebinding.go index d13561274..759c716bf 100644 --- a/vendor/k8s.io/client-go/informers/rbac/v1alpha1/clusterrolebinding.go +++ b/vendor/k8s.io/client-go/informers/rbac/v1alpha1/clusterrolebinding.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ package v1alpha1 import ( time "time" - rbac_v1alpha1 "k8s.io/api/rbac/v1alpha1" + rbacv1alpha1 "k8s.io/api/rbac/v1alpha1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" @@ -69,7 +69,7 @@ func NewFilteredClusterRoleBindingInformer(client kubernetes.Interface, resyncPe return client.RbacV1alpha1().ClusterRoleBindings().Watch(options) }, }, - &rbac_v1alpha1.ClusterRoleBinding{}, + &rbacv1alpha1.ClusterRoleBinding{}, resyncPeriod, indexers, ) @@ -80,7 +80,7 @@ func (f *clusterRoleBindingInformer) defaultInformer(client kubernetes.Interface } func (f *clusterRoleBindingInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&rbac_v1alpha1.ClusterRoleBinding{}, f.defaultInformer) + return f.factory.InformerFor(&rbacv1alpha1.ClusterRoleBinding{}, f.defaultInformer) } func (f *clusterRoleBindingInformer) Lister() v1alpha1.ClusterRoleBindingLister { diff --git a/vendor/k8s.io/client-go/informers/rbac/v1alpha1/interface.go b/vendor/k8s.io/client-go/informers/rbac/v1alpha1/interface.go index 1c972ec82..d27c79987 100644 --- a/vendor/k8s.io/client-go/informers/rbac/v1alpha1/interface.go +++ b/vendor/k8s.io/client-go/informers/rbac/v1alpha1/interface.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/informers/rbac/v1alpha1/role.go b/vendor/k8s.io/client-go/informers/rbac/v1alpha1/role.go index 5b4148fa9..1d1f99f06 100644 --- a/vendor/k8s.io/client-go/informers/rbac/v1alpha1/role.go +++ b/vendor/k8s.io/client-go/informers/rbac/v1alpha1/role.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ package v1alpha1 import ( time "time" - rbac_v1alpha1 "k8s.io/api/rbac/v1alpha1" + rbacv1alpha1 "k8s.io/api/rbac/v1alpha1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" @@ -70,7 +70,7 @@ func NewFilteredRoleInformer(client kubernetes.Interface, namespace string, resy return client.RbacV1alpha1().Roles(namespace).Watch(options) }, }, - &rbac_v1alpha1.Role{}, + &rbacv1alpha1.Role{}, resyncPeriod, indexers, ) @@ -81,7 +81,7 @@ func (f *roleInformer) defaultInformer(client kubernetes.Interface, resyncPeriod } func (f *roleInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&rbac_v1alpha1.Role{}, f.defaultInformer) + return f.factory.InformerFor(&rbacv1alpha1.Role{}, f.defaultInformer) } func (f *roleInformer) Lister() v1alpha1.RoleLister { diff --git a/vendor/k8s.io/client-go/informers/rbac/v1alpha1/rolebinding.go b/vendor/k8s.io/client-go/informers/rbac/v1alpha1/rolebinding.go index 54bae16e7..9fcb01d3a 100644 --- a/vendor/k8s.io/client-go/informers/rbac/v1alpha1/rolebinding.go +++ b/vendor/k8s.io/client-go/informers/rbac/v1alpha1/rolebinding.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ package v1alpha1 import ( time "time" - rbac_v1alpha1 "k8s.io/api/rbac/v1alpha1" + rbacv1alpha1 "k8s.io/api/rbac/v1alpha1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" @@ -70,7 +70,7 @@ func NewFilteredRoleBindingInformer(client kubernetes.Interface, namespace strin return client.RbacV1alpha1().RoleBindings(namespace).Watch(options) }, }, - &rbac_v1alpha1.RoleBinding{}, + &rbacv1alpha1.RoleBinding{}, resyncPeriod, indexers, ) @@ -81,7 +81,7 @@ func (f *roleBindingInformer) defaultInformer(client kubernetes.Interface, resyn } func (f *roleBindingInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&rbac_v1alpha1.RoleBinding{}, f.defaultInformer) + return f.factory.InformerFor(&rbacv1alpha1.RoleBinding{}, f.defaultInformer) } func (f *roleBindingInformer) Lister() v1alpha1.RoleBindingLister { diff --git a/vendor/k8s.io/client-go/informers/rbac/v1beta1/BUILD b/vendor/k8s.io/client-go/informers/rbac/v1beta1/BUILD deleted file mode 100644 index 0ed73f4ec..000000000 --- a/vendor/k8s.io/client-go/informers/rbac/v1beta1/BUILD +++ /dev/null @@ -1,41 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "clusterrole.go", - "clusterrolebinding.go", - "interface.go", - "role.go", - "rolebinding.go", - ], - importpath = "k8s.io/client-go/informers/rbac/v1beta1", - deps = [ - "//vendor/k8s.io/api/rbac/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", - "//vendor/k8s.io/client-go/kubernetes:go_default_library", - "//vendor/k8s.io/client-go/listers/rbac/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/informers/rbac/v1beta1/clusterrole.go b/vendor/k8s.io/client-go/informers/rbac/v1beta1/clusterrole.go index f429eeca1..b82c1c740 100644 --- a/vendor/k8s.io/client-go/informers/rbac/v1beta1/clusterrole.go +++ b/vendor/k8s.io/client-go/informers/rbac/v1beta1/clusterrole.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ package v1beta1 import ( time "time" - rbac_v1beta1 "k8s.io/api/rbac/v1beta1" + rbacv1beta1 "k8s.io/api/rbac/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" @@ -69,7 +69,7 @@ func NewFilteredClusterRoleInformer(client kubernetes.Interface, resyncPeriod ti return client.RbacV1beta1().ClusterRoles().Watch(options) }, }, - &rbac_v1beta1.ClusterRole{}, + &rbacv1beta1.ClusterRole{}, resyncPeriod, indexers, ) @@ -80,7 +80,7 @@ func (f *clusterRoleInformer) defaultInformer(client kubernetes.Interface, resyn } func (f *clusterRoleInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&rbac_v1beta1.ClusterRole{}, f.defaultInformer) + return f.factory.InformerFor(&rbacv1beta1.ClusterRole{}, f.defaultInformer) } func (f *clusterRoleInformer) Lister() v1beta1.ClusterRoleLister { diff --git a/vendor/k8s.io/client-go/informers/rbac/v1beta1/clusterrolebinding.go b/vendor/k8s.io/client-go/informers/rbac/v1beta1/clusterrolebinding.go index 5900eae9a..d662e7f56 100644 --- a/vendor/k8s.io/client-go/informers/rbac/v1beta1/clusterrolebinding.go +++ b/vendor/k8s.io/client-go/informers/rbac/v1beta1/clusterrolebinding.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ package v1beta1 import ( time "time" - rbac_v1beta1 "k8s.io/api/rbac/v1beta1" + rbacv1beta1 "k8s.io/api/rbac/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" @@ -69,7 +69,7 @@ func NewFilteredClusterRoleBindingInformer(client kubernetes.Interface, resyncPe return client.RbacV1beta1().ClusterRoleBindings().Watch(options) }, }, - &rbac_v1beta1.ClusterRoleBinding{}, + &rbacv1beta1.ClusterRoleBinding{}, resyncPeriod, indexers, ) @@ -80,7 +80,7 @@ func (f *clusterRoleBindingInformer) defaultInformer(client kubernetes.Interface } func (f *clusterRoleBindingInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&rbac_v1beta1.ClusterRoleBinding{}, f.defaultInformer) + return f.factory.InformerFor(&rbacv1beta1.ClusterRoleBinding{}, f.defaultInformer) } func (f *clusterRoleBindingInformer) Lister() v1beta1.ClusterRoleBindingLister { diff --git a/vendor/k8s.io/client-go/informers/rbac/v1beta1/interface.go b/vendor/k8s.io/client-go/informers/rbac/v1beta1/interface.go index c36d644e1..04add43af 100644 --- a/vendor/k8s.io/client-go/informers/rbac/v1beta1/interface.go +++ b/vendor/k8s.io/client-go/informers/rbac/v1beta1/interface.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/informers/rbac/v1beta1/role.go b/vendor/k8s.io/client-go/informers/rbac/v1beta1/role.go index 479044b42..b885beb27 100644 --- a/vendor/k8s.io/client-go/informers/rbac/v1beta1/role.go +++ b/vendor/k8s.io/client-go/informers/rbac/v1beta1/role.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ package v1beta1 import ( time "time" - rbac_v1beta1 "k8s.io/api/rbac/v1beta1" + rbacv1beta1 "k8s.io/api/rbac/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" @@ -70,7 +70,7 @@ func NewFilteredRoleInformer(client kubernetes.Interface, namespace string, resy return client.RbacV1beta1().Roles(namespace).Watch(options) }, }, - &rbac_v1beta1.Role{}, + &rbacv1beta1.Role{}, resyncPeriod, indexers, ) @@ -81,7 +81,7 @@ func (f *roleInformer) defaultInformer(client kubernetes.Interface, resyncPeriod } func (f *roleInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&rbac_v1beta1.Role{}, f.defaultInformer) + return f.factory.InformerFor(&rbacv1beta1.Role{}, f.defaultInformer) } func (f *roleInformer) Lister() v1beta1.RoleLister { diff --git a/vendor/k8s.io/client-go/informers/rbac/v1beta1/rolebinding.go b/vendor/k8s.io/client-go/informers/rbac/v1beta1/rolebinding.go index 34feed183..63d9d7264 100644 --- a/vendor/k8s.io/client-go/informers/rbac/v1beta1/rolebinding.go +++ b/vendor/k8s.io/client-go/informers/rbac/v1beta1/rolebinding.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ package v1beta1 import ( time "time" - rbac_v1beta1 "k8s.io/api/rbac/v1beta1" + rbacv1beta1 "k8s.io/api/rbac/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" @@ -70,7 +70,7 @@ func NewFilteredRoleBindingInformer(client kubernetes.Interface, namespace strin return client.RbacV1beta1().RoleBindings(namespace).Watch(options) }, }, - &rbac_v1beta1.RoleBinding{}, + &rbacv1beta1.RoleBinding{}, resyncPeriod, indexers, ) @@ -81,7 +81,7 @@ func (f *roleBindingInformer) defaultInformer(client kubernetes.Interface, resyn } func (f *roleBindingInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&rbac_v1beta1.RoleBinding{}, f.defaultInformer) + return f.factory.InformerFor(&rbacv1beta1.RoleBinding{}, f.defaultInformer) } func (f *roleBindingInformer) Lister() v1beta1.RoleBindingLister { diff --git a/vendor/k8s.io/client-go/informers/scheduling/BUILD b/vendor/k8s.io/client-go/informers/scheduling/BUILD deleted file mode 100644 index 14c2a70b9..000000000 --- a/vendor/k8s.io/client-go/informers/scheduling/BUILD +++ /dev/null @@ -1,32 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = ["interface.go"], - importpath = "k8s.io/client-go/informers/scheduling", - deps = [ - "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", - "//vendor/k8s.io/client-go/informers/scheduling/v1alpha1:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/informers/scheduling/v1alpha1:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/informers/scheduling/interface.go b/vendor/k8s.io/client-go/informers/scheduling/interface.go index 89aaac195..16d030c30 100644 --- a/vendor/k8s.io/client-go/informers/scheduling/interface.go +++ b/vendor/k8s.io/client-go/informers/scheduling/interface.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,12 +21,15 @@ package scheduling import ( internalinterfaces "k8s.io/client-go/informers/internalinterfaces" v1alpha1 "k8s.io/client-go/informers/scheduling/v1alpha1" + v1beta1 "k8s.io/client-go/informers/scheduling/v1beta1" ) // Interface provides access to each of this group's versions. type Interface interface { // V1alpha1 provides access to shared informers for resources in V1alpha1. V1alpha1() v1alpha1.Interface + // V1beta1 provides access to shared informers for resources in V1beta1. + V1beta1() v1beta1.Interface } type group struct { @@ -44,3 +47,8 @@ func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakList func (g *group) V1alpha1() v1alpha1.Interface { return v1alpha1.New(g.factory, g.namespace, g.tweakListOptions) } + +// V1beta1 returns a new v1beta1.Interface. +func (g *group) V1beta1() v1beta1.Interface { + return v1beta1.New(g.factory, g.namespace, g.tweakListOptions) +} diff --git a/vendor/k8s.io/client-go/informers/scheduling/v1alpha1/BUILD b/vendor/k8s.io/client-go/informers/scheduling/v1alpha1/BUILD deleted file mode 100644 index b168cda49..000000000 --- a/vendor/k8s.io/client-go/informers/scheduling/v1alpha1/BUILD +++ /dev/null @@ -1,38 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "interface.go", - "priorityclass.go", - ], - importpath = "k8s.io/client-go/informers/scheduling/v1alpha1", - deps = [ - "//vendor/k8s.io/api/scheduling/v1alpha1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", - "//vendor/k8s.io/client-go/kubernetes:go_default_library", - "//vendor/k8s.io/client-go/listers/scheduling/v1alpha1:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/informers/scheduling/v1alpha1/interface.go b/vendor/k8s.io/client-go/informers/scheduling/v1alpha1/interface.go index 091dd90b6..cd908d14e 100644 --- a/vendor/k8s.io/client-go/informers/scheduling/v1alpha1/interface.go +++ b/vendor/k8s.io/client-go/informers/scheduling/v1alpha1/interface.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/informers/scheduling/v1alpha1/priorityclass.go b/vendor/k8s.io/client-go/informers/scheduling/v1alpha1/priorityclass.go index 8a27631be..cd90dd765 100644 --- a/vendor/k8s.io/client-go/informers/scheduling/v1alpha1/priorityclass.go +++ b/vendor/k8s.io/client-go/informers/scheduling/v1alpha1/priorityclass.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ package v1alpha1 import ( time "time" - scheduling_v1alpha1 "k8s.io/api/scheduling/v1alpha1" + schedulingv1alpha1 "k8s.io/api/scheduling/v1alpha1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" @@ -69,7 +69,7 @@ func NewFilteredPriorityClassInformer(client kubernetes.Interface, resyncPeriod return client.SchedulingV1alpha1().PriorityClasses().Watch(options) }, }, - &scheduling_v1alpha1.PriorityClass{}, + &schedulingv1alpha1.PriorityClass{}, resyncPeriod, indexers, ) @@ -80,7 +80,7 @@ func (f *priorityClassInformer) defaultInformer(client kubernetes.Interface, res } func (f *priorityClassInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&scheduling_v1alpha1.PriorityClass{}, f.defaultInformer) + return f.factory.InformerFor(&schedulingv1alpha1.PriorityClass{}, f.defaultInformer) } func (f *priorityClassInformer) Lister() v1alpha1.PriorityClassLister { diff --git a/vendor/k8s.io/client-go/informers/scheduling/v1beta1/interface.go b/vendor/k8s.io/client-go/informers/scheduling/v1beta1/interface.go new file mode 100644 index 000000000..52840a9ce --- /dev/null +++ b/vendor/k8s.io/client-go/informers/scheduling/v1beta1/interface.go @@ -0,0 +1,45 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by informer-gen. DO NOT EDIT. + +package v1beta1 + +import ( + internalinterfaces "k8s.io/client-go/informers/internalinterfaces" +) + +// Interface provides access to all the informers in this group version. +type Interface interface { + // PriorityClasses returns a PriorityClassInformer. + PriorityClasses() PriorityClassInformer +} + +type version struct { + factory internalinterfaces.SharedInformerFactory + namespace string + tweakListOptions internalinterfaces.TweakListOptionsFunc +} + +// New returns a new Interface. +func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { + return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} +} + +// PriorityClasses returns a PriorityClassInformer. +func (v *version) PriorityClasses() PriorityClassInformer { + return &priorityClassInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} +} diff --git a/vendor/k8s.io/client-go/informers/scheduling/v1beta1/priorityclass.go b/vendor/k8s.io/client-go/informers/scheduling/v1beta1/priorityclass.go new file mode 100644 index 000000000..3c7d90938 --- /dev/null +++ b/vendor/k8s.io/client-go/informers/scheduling/v1beta1/priorityclass.go @@ -0,0 +1,88 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by informer-gen. DO NOT EDIT. + +package v1beta1 + +import ( + time "time" + + schedulingv1beta1 "k8s.io/api/scheduling/v1beta1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + watch "k8s.io/apimachinery/pkg/watch" + internalinterfaces "k8s.io/client-go/informers/internalinterfaces" + kubernetes "k8s.io/client-go/kubernetes" + v1beta1 "k8s.io/client-go/listers/scheduling/v1beta1" + cache "k8s.io/client-go/tools/cache" +) + +// PriorityClassInformer provides access to a shared informer and lister for +// PriorityClasses. +type PriorityClassInformer interface { + Informer() cache.SharedIndexInformer + Lister() v1beta1.PriorityClassLister +} + +type priorityClassInformer struct { + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc +} + +// NewPriorityClassInformer constructs a new informer for PriorityClass type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewPriorityClassInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredPriorityClassInformer(client, resyncPeriod, indexers, nil) +} + +// NewFilteredPriorityClassInformer constructs a new informer for PriorityClass type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewFilteredPriorityClassInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { + return cache.NewSharedIndexInformer( + &cache.ListWatch{ + ListFunc: func(options v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.SchedulingV1beta1().PriorityClasses().List(options) + }, + WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.SchedulingV1beta1().PriorityClasses().Watch(options) + }, + }, + &schedulingv1beta1.PriorityClass{}, + resyncPeriod, + indexers, + ) +} + +func (f *priorityClassInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredPriorityClassInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) +} + +func (f *priorityClassInformer) Informer() cache.SharedIndexInformer { + return f.factory.InformerFor(&schedulingv1beta1.PriorityClass{}, f.defaultInformer) +} + +func (f *priorityClassInformer) Lister() v1beta1.PriorityClassLister { + return v1beta1.NewPriorityClassLister(f.Informer().GetIndexer()) +} diff --git a/vendor/k8s.io/client-go/informers/settings/BUILD b/vendor/k8s.io/client-go/informers/settings/BUILD deleted file mode 100644 index 5dc3cfd14..000000000 --- a/vendor/k8s.io/client-go/informers/settings/BUILD +++ /dev/null @@ -1,32 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = ["interface.go"], - importpath = "k8s.io/client-go/informers/settings", - deps = [ - "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", - "//vendor/k8s.io/client-go/informers/settings/v1alpha1:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/informers/settings/v1alpha1:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/informers/settings/interface.go b/vendor/k8s.io/client-go/informers/settings/interface.go index cc134f706..d91e49867 100644 --- a/vendor/k8s.io/client-go/informers/settings/interface.go +++ b/vendor/k8s.io/client-go/informers/settings/interface.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/informers/settings/v1alpha1/BUILD b/vendor/k8s.io/client-go/informers/settings/v1alpha1/BUILD deleted file mode 100644 index fd24549e8..000000000 --- a/vendor/k8s.io/client-go/informers/settings/v1alpha1/BUILD +++ /dev/null @@ -1,38 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "interface.go", - "podpreset.go", - ], - importpath = "k8s.io/client-go/informers/settings/v1alpha1", - deps = [ - "//vendor/k8s.io/api/settings/v1alpha1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", - "//vendor/k8s.io/client-go/kubernetes:go_default_library", - "//vendor/k8s.io/client-go/listers/settings/v1alpha1:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/informers/settings/v1alpha1/interface.go b/vendor/k8s.io/client-go/informers/settings/v1alpha1/interface.go index d2964352a..250220469 100644 --- a/vendor/k8s.io/client-go/informers/settings/v1alpha1/interface.go +++ b/vendor/k8s.io/client-go/informers/settings/v1alpha1/interface.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/informers/settings/v1alpha1/podpreset.go b/vendor/k8s.io/client-go/informers/settings/v1alpha1/podpreset.go index 7e241b2be..33fcf2359 100644 --- a/vendor/k8s.io/client-go/informers/settings/v1alpha1/podpreset.go +++ b/vendor/k8s.io/client-go/informers/settings/v1alpha1/podpreset.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ package v1alpha1 import ( time "time" - settings_v1alpha1 "k8s.io/api/settings/v1alpha1" + settingsv1alpha1 "k8s.io/api/settings/v1alpha1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" @@ -70,7 +70,7 @@ func NewFilteredPodPresetInformer(client kubernetes.Interface, namespace string, return client.SettingsV1alpha1().PodPresets(namespace).Watch(options) }, }, - &settings_v1alpha1.PodPreset{}, + &settingsv1alpha1.PodPreset{}, resyncPeriod, indexers, ) @@ -81,7 +81,7 @@ func (f *podPresetInformer) defaultInformer(client kubernetes.Interface, resyncP } func (f *podPresetInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&settings_v1alpha1.PodPreset{}, f.defaultInformer) + return f.factory.InformerFor(&settingsv1alpha1.PodPreset{}, f.defaultInformer) } func (f *podPresetInformer) Lister() v1alpha1.PodPresetLister { diff --git a/vendor/k8s.io/client-go/informers/storage/BUILD b/vendor/k8s.io/client-go/informers/storage/BUILD deleted file mode 100644 index 56e9e1850..000000000 --- a/vendor/k8s.io/client-go/informers/storage/BUILD +++ /dev/null @@ -1,36 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = ["interface.go"], - importpath = "k8s.io/client-go/informers/storage", - deps = [ - "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", - "//vendor/k8s.io/client-go/informers/storage/v1:go_default_library", - "//vendor/k8s.io/client-go/informers/storage/v1alpha1:go_default_library", - "//vendor/k8s.io/client-go/informers/storage/v1beta1:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/informers/storage/v1:all-srcs", - "//staging/src/k8s.io/client-go/informers/storage/v1alpha1:all-srcs", - "//staging/src/k8s.io/client-go/informers/storage/v1beta1:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/informers/storage/interface.go b/vendor/k8s.io/client-go/informers/storage/interface.go index 6581a2a8d..8245aa60c 100644 --- a/vendor/k8s.io/client-go/informers/storage/interface.go +++ b/vendor/k8s.io/client-go/informers/storage/interface.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/informers/storage/v1/BUILD b/vendor/k8s.io/client-go/informers/storage/v1/BUILD deleted file mode 100644 index 29c0b883d..000000000 --- a/vendor/k8s.io/client-go/informers/storage/v1/BUILD +++ /dev/null @@ -1,38 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "interface.go", - "storageclass.go", - ], - importpath = "k8s.io/client-go/informers/storage/v1", - deps = [ - "//vendor/k8s.io/api/storage/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", - "//vendor/k8s.io/client-go/kubernetes:go_default_library", - "//vendor/k8s.io/client-go/listers/storage/v1:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/informers/storage/v1/interface.go b/vendor/k8s.io/client-go/informers/storage/v1/interface.go index ebdb1d98a..64fc2bd84 100644 --- a/vendor/k8s.io/client-go/informers/storage/v1/interface.go +++ b/vendor/k8s.io/client-go/informers/storage/v1/interface.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -26,6 +26,8 @@ import ( type Interface interface { // StorageClasses returns a StorageClassInformer. StorageClasses() StorageClassInformer + // VolumeAttachments returns a VolumeAttachmentInformer. + VolumeAttachments() VolumeAttachmentInformer } type version struct { @@ -43,3 +45,8 @@ func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakList func (v *version) StorageClasses() StorageClassInformer { return &storageClassInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} } + +// VolumeAttachments returns a VolumeAttachmentInformer. +func (v *version) VolumeAttachments() VolumeAttachmentInformer { + return &volumeAttachmentInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} +} diff --git a/vendor/k8s.io/client-go/informers/storage/v1/storageclass.go b/vendor/k8s.io/client-go/informers/storage/v1/storageclass.go index 5ef571eb4..b4609b4d2 100644 --- a/vendor/k8s.io/client-go/informers/storage/v1/storageclass.go +++ b/vendor/k8s.io/client-go/informers/storage/v1/storageclass.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,8 +21,8 @@ package v1 import ( time "time" - storage_v1 "k8s.io/api/storage/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + storagev1 "k8s.io/api/storage/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" internalinterfaces "k8s.io/client-go/informers/internalinterfaces" @@ -56,20 +56,20 @@ func NewStorageClassInformer(client kubernetes.Interface, resyncPeriod time.Dura func NewFilteredStorageClassInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( &cache.ListWatch{ - ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.StorageV1().StorageClasses().List(options) }, - WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { if tweakListOptions != nil { tweakListOptions(&options) } return client.StorageV1().StorageClasses().Watch(options) }, }, - &storage_v1.StorageClass{}, + &storagev1.StorageClass{}, resyncPeriod, indexers, ) @@ -80,7 +80,7 @@ func (f *storageClassInformer) defaultInformer(client kubernetes.Interface, resy } func (f *storageClassInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&storage_v1.StorageClass{}, f.defaultInformer) + return f.factory.InformerFor(&storagev1.StorageClass{}, f.defaultInformer) } func (f *storageClassInformer) Lister() v1.StorageClassLister { diff --git a/vendor/k8s.io/client-go/informers/storage/v1/volumeattachment.go b/vendor/k8s.io/client-go/informers/storage/v1/volumeattachment.go new file mode 100644 index 000000000..7ca3b86f2 --- /dev/null +++ b/vendor/k8s.io/client-go/informers/storage/v1/volumeattachment.go @@ -0,0 +1,88 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by informer-gen. DO NOT EDIT. + +package v1 + +import ( + time "time" + + storagev1 "k8s.io/api/storage/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + watch "k8s.io/apimachinery/pkg/watch" + internalinterfaces "k8s.io/client-go/informers/internalinterfaces" + kubernetes "k8s.io/client-go/kubernetes" + v1 "k8s.io/client-go/listers/storage/v1" + cache "k8s.io/client-go/tools/cache" +) + +// VolumeAttachmentInformer provides access to a shared informer and lister for +// VolumeAttachments. +type VolumeAttachmentInformer interface { + Informer() cache.SharedIndexInformer + Lister() v1.VolumeAttachmentLister +} + +type volumeAttachmentInformer struct { + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc +} + +// NewVolumeAttachmentInformer constructs a new informer for VolumeAttachment type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewVolumeAttachmentInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredVolumeAttachmentInformer(client, resyncPeriod, indexers, nil) +} + +// NewFilteredVolumeAttachmentInformer constructs a new informer for VolumeAttachment type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewFilteredVolumeAttachmentInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { + return cache.NewSharedIndexInformer( + &cache.ListWatch{ + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.StorageV1().VolumeAttachments().List(options) + }, + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.StorageV1().VolumeAttachments().Watch(options) + }, + }, + &storagev1.VolumeAttachment{}, + resyncPeriod, + indexers, + ) +} + +func (f *volumeAttachmentInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredVolumeAttachmentInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) +} + +func (f *volumeAttachmentInformer) Informer() cache.SharedIndexInformer { + return f.factory.InformerFor(&storagev1.VolumeAttachment{}, f.defaultInformer) +} + +func (f *volumeAttachmentInformer) Lister() v1.VolumeAttachmentLister { + return v1.NewVolumeAttachmentLister(f.Informer().GetIndexer()) +} diff --git a/vendor/k8s.io/client-go/informers/storage/v1alpha1/BUILD b/vendor/k8s.io/client-go/informers/storage/v1alpha1/BUILD deleted file mode 100644 index 1871ff496..000000000 --- a/vendor/k8s.io/client-go/informers/storage/v1alpha1/BUILD +++ /dev/null @@ -1,35 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "interface.go", - "volumeattachment.go", - ], - importpath = "k8s.io/client-go/informers/storage/v1alpha1", - visibility = ["//visibility:public"], - deps = [ - "//vendor/k8s.io/api/storage/v1alpha1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", - "//vendor/k8s.io/client-go/kubernetes:go_default_library", - "//vendor/k8s.io/client-go/listers/storage/v1alpha1:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/client-go/informers/storage/v1alpha1/interface.go b/vendor/k8s.io/client-go/informers/storage/v1alpha1/interface.go index f1b1a9bbd..d389b73fa 100644 --- a/vendor/k8s.io/client-go/informers/storage/v1alpha1/interface.go +++ b/vendor/k8s.io/client-go/informers/storage/v1alpha1/interface.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/informers/storage/v1alpha1/volumeattachment.go b/vendor/k8s.io/client-go/informers/storage/v1alpha1/volumeattachment.go index 506517acd..e169c8a29 100644 --- a/vendor/k8s.io/client-go/informers/storage/v1alpha1/volumeattachment.go +++ b/vendor/k8s.io/client-go/informers/storage/v1alpha1/volumeattachment.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ package v1alpha1 import ( time "time" - storage_v1alpha1 "k8s.io/api/storage/v1alpha1" + storagev1alpha1 "k8s.io/api/storage/v1alpha1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" @@ -69,7 +69,7 @@ func NewFilteredVolumeAttachmentInformer(client kubernetes.Interface, resyncPeri return client.StorageV1alpha1().VolumeAttachments().Watch(options) }, }, - &storage_v1alpha1.VolumeAttachment{}, + &storagev1alpha1.VolumeAttachment{}, resyncPeriod, indexers, ) @@ -80,7 +80,7 @@ func (f *volumeAttachmentInformer) defaultInformer(client kubernetes.Interface, } func (f *volumeAttachmentInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&storage_v1alpha1.VolumeAttachment{}, f.defaultInformer) + return f.factory.InformerFor(&storagev1alpha1.VolumeAttachment{}, f.defaultInformer) } func (f *volumeAttachmentInformer) Lister() v1alpha1.VolumeAttachmentLister { diff --git a/vendor/k8s.io/client-go/informers/storage/v1beta1/BUILD b/vendor/k8s.io/client-go/informers/storage/v1beta1/BUILD deleted file mode 100644 index 64aae5165..000000000 --- a/vendor/k8s.io/client-go/informers/storage/v1beta1/BUILD +++ /dev/null @@ -1,39 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "interface.go", - "storageclass.go", - "volumeattachment.go", - ], - importpath = "k8s.io/client-go/informers/storage/v1beta1", - deps = [ - "//vendor/k8s.io/api/storage/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", - "//vendor/k8s.io/client-go/kubernetes:go_default_library", - "//vendor/k8s.io/client-go/listers/storage/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/informers/storage/v1beta1/interface.go b/vendor/k8s.io/client-go/informers/storage/v1beta1/interface.go index 5a63728f1..aa11c2bb6 100644 --- a/vendor/k8s.io/client-go/informers/storage/v1beta1/interface.go +++ b/vendor/k8s.io/client-go/informers/storage/v1beta1/interface.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/informers/storage/v1beta1/storageclass.go b/vendor/k8s.io/client-go/informers/storage/v1beta1/storageclass.go index 0b4edbf52..ed898a77b 100644 --- a/vendor/k8s.io/client-go/informers/storage/v1beta1/storageclass.go +++ b/vendor/k8s.io/client-go/informers/storage/v1beta1/storageclass.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ package v1beta1 import ( time "time" - storage_v1beta1 "k8s.io/api/storage/v1beta1" + storagev1beta1 "k8s.io/api/storage/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" @@ -69,7 +69,7 @@ func NewFilteredStorageClassInformer(client kubernetes.Interface, resyncPeriod t return client.StorageV1beta1().StorageClasses().Watch(options) }, }, - &storage_v1beta1.StorageClass{}, + &storagev1beta1.StorageClass{}, resyncPeriod, indexers, ) @@ -80,7 +80,7 @@ func (f *storageClassInformer) defaultInformer(client kubernetes.Interface, resy } func (f *storageClassInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&storage_v1beta1.StorageClass{}, f.defaultInformer) + return f.factory.InformerFor(&storagev1beta1.StorageClass{}, f.defaultInformer) } func (f *storageClassInformer) Lister() v1beta1.StorageClassLister { diff --git a/vendor/k8s.io/client-go/informers/storage/v1beta1/volumeattachment.go b/vendor/k8s.io/client-go/informers/storage/v1beta1/volumeattachment.go index ae3c2fd71..c75fc06b1 100644 --- a/vendor/k8s.io/client-go/informers/storage/v1beta1/volumeattachment.go +++ b/vendor/k8s.io/client-go/informers/storage/v1beta1/volumeattachment.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,7 +21,7 @@ package v1beta1 import ( time "time" - storage_v1beta1 "k8s.io/api/storage/v1beta1" + storagev1beta1 "k8s.io/api/storage/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" @@ -69,7 +69,7 @@ func NewFilteredVolumeAttachmentInformer(client kubernetes.Interface, resyncPeri return client.StorageV1beta1().VolumeAttachments().Watch(options) }, }, - &storage_v1beta1.VolumeAttachment{}, + &storagev1beta1.VolumeAttachment{}, resyncPeriod, indexers, ) @@ -80,7 +80,7 @@ func (f *volumeAttachmentInformer) defaultInformer(client kubernetes.Interface, } func (f *volumeAttachmentInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&storage_v1beta1.VolumeAttachment{}, f.defaultInformer) + return f.factory.InformerFor(&storagev1beta1.VolumeAttachment{}, f.defaultInformer) } func (f *volumeAttachmentInformer) Lister() v1beta1.VolumeAttachmentLister { diff --git a/vendor/k8s.io/client-go/kubernetes/BUILD b/vendor/k8s.io/client-go/kubernetes/BUILD deleted file mode 100644 index 0ef4f8671..000000000 --- a/vendor/k8s.io/client-go/kubernetes/BUILD +++ /dev/null @@ -1,95 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "clientset.go", - "doc.go", - "import.go", - ], - importpath = "k8s.io/client-go/kubernetes", - deps = [ - "//vendor/github.com/golang/glog:go_default_library", - "//vendor/k8s.io/client-go/discovery:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/apps/v1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/authentication/v1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/authorization/v1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/batch/v1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/core/v1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/networking/v1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/rbac/v1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/settings/v1alpha1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/storage/v1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/util/flowcontrol:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/kubernetes/fake:all-srcs", - "//staging/src/k8s.io/client-go/kubernetes/scheme:all-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1:all-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1:all-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/apps/v1:all-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/apps/v1beta1:all-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/apps/v1beta2:all-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/authentication/v1:all-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/authentication/v1beta1:all-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/authorization/v1:all-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/authorization/v1beta1:all-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v1:all-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1:all-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/batch/v1:all-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/batch/v1beta1:all-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/batch/v2alpha1:all-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/certificates/v1beta1:all-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/core/v1:all-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/events/v1beta1:all-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/extensions/v1beta1:all-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/networking/v1:all-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/policy/v1beta1:all-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1:all-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1:all-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1beta1:all-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1:all-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/settings/v1alpha1:all-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/storage/v1:all-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/storage/v1alpha1:all-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/storage/v1beta1:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/clientset.go b/vendor/k8s.io/client-go/kubernetes/clientset.go index d867a58b2..6ad01d6db 100644 --- a/vendor/k8s.io/client-go/kubernetes/clientset.go +++ b/vendor/k8s.io/client-go/kubernetes/clientset.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,23 +19,25 @@ limitations under the License. package kubernetes import ( - glog "github.com/golang/glog" discovery "k8s.io/client-go/discovery" admissionregistrationv1alpha1 "k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1" admissionregistrationv1beta1 "k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1" appsv1 "k8s.io/client-go/kubernetes/typed/apps/v1" appsv1beta1 "k8s.io/client-go/kubernetes/typed/apps/v1beta1" appsv1beta2 "k8s.io/client-go/kubernetes/typed/apps/v1beta2" + auditregistrationv1alpha1 "k8s.io/client-go/kubernetes/typed/auditregistration/v1alpha1" authenticationv1 "k8s.io/client-go/kubernetes/typed/authentication/v1" authenticationv1beta1 "k8s.io/client-go/kubernetes/typed/authentication/v1beta1" authorizationv1 "k8s.io/client-go/kubernetes/typed/authorization/v1" authorizationv1beta1 "k8s.io/client-go/kubernetes/typed/authorization/v1beta1" autoscalingv1 "k8s.io/client-go/kubernetes/typed/autoscaling/v1" autoscalingv2beta1 "k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1" + autoscalingv2beta2 "k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2" batchv1 "k8s.io/client-go/kubernetes/typed/batch/v1" batchv1beta1 "k8s.io/client-go/kubernetes/typed/batch/v1beta1" batchv2alpha1 "k8s.io/client-go/kubernetes/typed/batch/v2alpha1" certificatesv1beta1 "k8s.io/client-go/kubernetes/typed/certificates/v1beta1" + coordinationv1beta1 "k8s.io/client-go/kubernetes/typed/coordination/v1beta1" corev1 "k8s.io/client-go/kubernetes/typed/core/v1" eventsv1beta1 "k8s.io/client-go/kubernetes/typed/events/v1beta1" extensionsv1beta1 "k8s.io/client-go/kubernetes/typed/extensions/v1beta1" @@ -45,6 +47,7 @@ import ( rbacv1alpha1 "k8s.io/client-go/kubernetes/typed/rbac/v1alpha1" rbacv1beta1 "k8s.io/client-go/kubernetes/typed/rbac/v1beta1" schedulingv1alpha1 "k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1" + schedulingv1beta1 "k8s.io/client-go/kubernetes/typed/scheduling/v1beta1" settingsv1alpha1 "k8s.io/client-go/kubernetes/typed/settings/v1alpha1" storagev1 "k8s.io/client-go/kubernetes/typed/storage/v1" storagev1alpha1 "k8s.io/client-go/kubernetes/typed/storage/v1alpha1" @@ -64,6 +67,9 @@ type Interface interface { AppsV1() appsv1.AppsV1Interface // Deprecated: please explicitly pick a version if possible. Apps() appsv1.AppsV1Interface + AuditregistrationV1alpha1() auditregistrationv1alpha1.AuditregistrationV1alpha1Interface + // Deprecated: please explicitly pick a version if possible. + Auditregistration() auditregistrationv1alpha1.AuditregistrationV1alpha1Interface AuthenticationV1() authenticationv1.AuthenticationV1Interface // Deprecated: please explicitly pick a version if possible. Authentication() authenticationv1.AuthenticationV1Interface @@ -76,6 +82,7 @@ type Interface interface { // Deprecated: please explicitly pick a version if possible. Autoscaling() autoscalingv1.AutoscalingV1Interface AutoscalingV2beta1() autoscalingv2beta1.AutoscalingV2beta1Interface + AutoscalingV2beta2() autoscalingv2beta2.AutoscalingV2beta2Interface BatchV1() batchv1.BatchV1Interface // Deprecated: please explicitly pick a version if possible. Batch() batchv1.BatchV1Interface @@ -84,6 +91,9 @@ type Interface interface { CertificatesV1beta1() certificatesv1beta1.CertificatesV1beta1Interface // Deprecated: please explicitly pick a version if possible. Certificates() certificatesv1beta1.CertificatesV1beta1Interface + CoordinationV1beta1() coordinationv1beta1.CoordinationV1beta1Interface + // Deprecated: please explicitly pick a version if possible. + Coordination() coordinationv1beta1.CoordinationV1beta1Interface CoreV1() corev1.CoreV1Interface // Deprecated: please explicitly pick a version if possible. Core() corev1.CoreV1Interface @@ -105,8 +115,9 @@ type Interface interface { RbacV1beta1() rbacv1beta1.RbacV1beta1Interface RbacV1alpha1() rbacv1alpha1.RbacV1alpha1Interface SchedulingV1alpha1() schedulingv1alpha1.SchedulingV1alpha1Interface + SchedulingV1beta1() schedulingv1beta1.SchedulingV1beta1Interface // Deprecated: please explicitly pick a version if possible. - Scheduling() schedulingv1alpha1.SchedulingV1alpha1Interface + Scheduling() schedulingv1beta1.SchedulingV1beta1Interface SettingsV1alpha1() settingsv1alpha1.SettingsV1alpha1Interface // Deprecated: please explicitly pick a version if possible. Settings() settingsv1alpha1.SettingsV1alpha1Interface @@ -126,16 +137,19 @@ type Clientset struct { appsV1beta1 *appsv1beta1.AppsV1beta1Client appsV1beta2 *appsv1beta2.AppsV1beta2Client appsV1 *appsv1.AppsV1Client + auditregistrationV1alpha1 *auditregistrationv1alpha1.AuditregistrationV1alpha1Client authenticationV1 *authenticationv1.AuthenticationV1Client authenticationV1beta1 *authenticationv1beta1.AuthenticationV1beta1Client authorizationV1 *authorizationv1.AuthorizationV1Client authorizationV1beta1 *authorizationv1beta1.AuthorizationV1beta1Client autoscalingV1 *autoscalingv1.AutoscalingV1Client autoscalingV2beta1 *autoscalingv2beta1.AutoscalingV2beta1Client + autoscalingV2beta2 *autoscalingv2beta2.AutoscalingV2beta2Client batchV1 *batchv1.BatchV1Client batchV1beta1 *batchv1beta1.BatchV1beta1Client batchV2alpha1 *batchv2alpha1.BatchV2alpha1Client certificatesV1beta1 *certificatesv1beta1.CertificatesV1beta1Client + coordinationV1beta1 *coordinationv1beta1.CoordinationV1beta1Client coreV1 *corev1.CoreV1Client eventsV1beta1 *eventsv1beta1.EventsV1beta1Client extensionsV1beta1 *extensionsv1beta1.ExtensionsV1beta1Client @@ -145,6 +159,7 @@ type Clientset struct { rbacV1beta1 *rbacv1beta1.RbacV1beta1Client rbacV1alpha1 *rbacv1alpha1.RbacV1alpha1Client schedulingV1alpha1 *schedulingv1alpha1.SchedulingV1alpha1Client + schedulingV1beta1 *schedulingv1beta1.SchedulingV1beta1Client settingsV1alpha1 *settingsv1alpha1.SettingsV1alpha1Client storageV1beta1 *storagev1beta1.StorageV1beta1Client storageV1 *storagev1.StorageV1Client @@ -188,6 +203,17 @@ func (c *Clientset) Apps() appsv1.AppsV1Interface { return c.appsV1 } +// AuditregistrationV1alpha1 retrieves the AuditregistrationV1alpha1Client +func (c *Clientset) AuditregistrationV1alpha1() auditregistrationv1alpha1.AuditregistrationV1alpha1Interface { + return c.auditregistrationV1alpha1 +} + +// Deprecated: Auditregistration retrieves the default version of AuditregistrationClient. +// Please explicitly pick a version. +func (c *Clientset) Auditregistration() auditregistrationv1alpha1.AuditregistrationV1alpha1Interface { + return c.auditregistrationV1alpha1 +} + // AuthenticationV1 retrieves the AuthenticationV1Client func (c *Clientset) AuthenticationV1() authenticationv1.AuthenticationV1Interface { return c.authenticationV1 @@ -236,6 +262,11 @@ func (c *Clientset) AutoscalingV2beta1() autoscalingv2beta1.AutoscalingV2beta1In return c.autoscalingV2beta1 } +// AutoscalingV2beta2 retrieves the AutoscalingV2beta2Client +func (c *Clientset) AutoscalingV2beta2() autoscalingv2beta2.AutoscalingV2beta2Interface { + return c.autoscalingV2beta2 +} + // BatchV1 retrieves the BatchV1Client func (c *Clientset) BatchV1() batchv1.BatchV1Interface { return c.batchV1 @@ -268,6 +299,17 @@ func (c *Clientset) Certificates() certificatesv1beta1.CertificatesV1beta1Interf return c.certificatesV1beta1 } +// CoordinationV1beta1 retrieves the CoordinationV1beta1Client +func (c *Clientset) CoordinationV1beta1() coordinationv1beta1.CoordinationV1beta1Interface { + return c.coordinationV1beta1 +} + +// Deprecated: Coordination retrieves the default version of CoordinationClient. +// Please explicitly pick a version. +func (c *Clientset) Coordination() coordinationv1beta1.CoordinationV1beta1Interface { + return c.coordinationV1beta1 +} + // CoreV1 retrieves the CoreV1Client func (c *Clientset) CoreV1() corev1.CoreV1Interface { return c.coreV1 @@ -349,10 +391,15 @@ func (c *Clientset) SchedulingV1alpha1() schedulingv1alpha1.SchedulingV1alpha1In return c.schedulingV1alpha1 } +// SchedulingV1beta1 retrieves the SchedulingV1beta1Client +func (c *Clientset) SchedulingV1beta1() schedulingv1beta1.SchedulingV1beta1Interface { + return c.schedulingV1beta1 +} + // Deprecated: Scheduling retrieves the default version of SchedulingClient. // Please explicitly pick a version. -func (c *Clientset) Scheduling() schedulingv1alpha1.SchedulingV1alpha1Interface { - return c.schedulingV1alpha1 +func (c *Clientset) Scheduling() schedulingv1beta1.SchedulingV1beta1Interface { + return c.schedulingV1beta1 } // SettingsV1alpha1 retrieves the SettingsV1alpha1Client @@ -423,6 +470,10 @@ func NewForConfig(c *rest.Config) (*Clientset, error) { if err != nil { return nil, err } + cs.auditregistrationV1alpha1, err = auditregistrationv1alpha1.NewForConfig(&configShallowCopy) + if err != nil { + return nil, err + } cs.authenticationV1, err = authenticationv1.NewForConfig(&configShallowCopy) if err != nil { return nil, err @@ -447,6 +498,10 @@ func NewForConfig(c *rest.Config) (*Clientset, error) { if err != nil { return nil, err } + cs.autoscalingV2beta2, err = autoscalingv2beta2.NewForConfig(&configShallowCopy) + if err != nil { + return nil, err + } cs.batchV1, err = batchv1.NewForConfig(&configShallowCopy) if err != nil { return nil, err @@ -463,6 +518,10 @@ func NewForConfig(c *rest.Config) (*Clientset, error) { if err != nil { return nil, err } + cs.coordinationV1beta1, err = coordinationv1beta1.NewForConfig(&configShallowCopy) + if err != nil { + return nil, err + } cs.coreV1, err = corev1.NewForConfig(&configShallowCopy) if err != nil { return nil, err @@ -499,6 +558,10 @@ func NewForConfig(c *rest.Config) (*Clientset, error) { if err != nil { return nil, err } + cs.schedulingV1beta1, err = schedulingv1beta1.NewForConfig(&configShallowCopy) + if err != nil { + return nil, err + } cs.settingsV1alpha1, err = settingsv1alpha1.NewForConfig(&configShallowCopy) if err != nil { return nil, err @@ -518,7 +581,6 @@ func NewForConfig(c *rest.Config) (*Clientset, error) { cs.DiscoveryClient, err = discovery.NewDiscoveryClientForConfig(&configShallowCopy) if err != nil { - glog.Errorf("failed to create the DiscoveryClient: %v", err) return nil, err } return &cs, nil @@ -533,16 +595,19 @@ func NewForConfigOrDie(c *rest.Config) *Clientset { cs.appsV1beta1 = appsv1beta1.NewForConfigOrDie(c) cs.appsV1beta2 = appsv1beta2.NewForConfigOrDie(c) cs.appsV1 = appsv1.NewForConfigOrDie(c) + cs.auditregistrationV1alpha1 = auditregistrationv1alpha1.NewForConfigOrDie(c) cs.authenticationV1 = authenticationv1.NewForConfigOrDie(c) cs.authenticationV1beta1 = authenticationv1beta1.NewForConfigOrDie(c) cs.authorizationV1 = authorizationv1.NewForConfigOrDie(c) cs.authorizationV1beta1 = authorizationv1beta1.NewForConfigOrDie(c) cs.autoscalingV1 = autoscalingv1.NewForConfigOrDie(c) cs.autoscalingV2beta1 = autoscalingv2beta1.NewForConfigOrDie(c) + cs.autoscalingV2beta2 = autoscalingv2beta2.NewForConfigOrDie(c) cs.batchV1 = batchv1.NewForConfigOrDie(c) cs.batchV1beta1 = batchv1beta1.NewForConfigOrDie(c) cs.batchV2alpha1 = batchv2alpha1.NewForConfigOrDie(c) cs.certificatesV1beta1 = certificatesv1beta1.NewForConfigOrDie(c) + cs.coordinationV1beta1 = coordinationv1beta1.NewForConfigOrDie(c) cs.coreV1 = corev1.NewForConfigOrDie(c) cs.eventsV1beta1 = eventsv1beta1.NewForConfigOrDie(c) cs.extensionsV1beta1 = extensionsv1beta1.NewForConfigOrDie(c) @@ -552,6 +617,7 @@ func NewForConfigOrDie(c *rest.Config) *Clientset { cs.rbacV1beta1 = rbacv1beta1.NewForConfigOrDie(c) cs.rbacV1alpha1 = rbacv1alpha1.NewForConfigOrDie(c) cs.schedulingV1alpha1 = schedulingv1alpha1.NewForConfigOrDie(c) + cs.schedulingV1beta1 = schedulingv1beta1.NewForConfigOrDie(c) cs.settingsV1alpha1 = settingsv1alpha1.NewForConfigOrDie(c) cs.storageV1beta1 = storagev1beta1.NewForConfigOrDie(c) cs.storageV1 = storagev1.NewForConfigOrDie(c) @@ -569,16 +635,19 @@ func New(c rest.Interface) *Clientset { cs.appsV1beta1 = appsv1beta1.New(c) cs.appsV1beta2 = appsv1beta2.New(c) cs.appsV1 = appsv1.New(c) + cs.auditregistrationV1alpha1 = auditregistrationv1alpha1.New(c) cs.authenticationV1 = authenticationv1.New(c) cs.authenticationV1beta1 = authenticationv1beta1.New(c) cs.authorizationV1 = authorizationv1.New(c) cs.authorizationV1beta1 = authorizationv1beta1.New(c) cs.autoscalingV1 = autoscalingv1.New(c) cs.autoscalingV2beta1 = autoscalingv2beta1.New(c) + cs.autoscalingV2beta2 = autoscalingv2beta2.New(c) cs.batchV1 = batchv1.New(c) cs.batchV1beta1 = batchv1beta1.New(c) cs.batchV2alpha1 = batchv2alpha1.New(c) cs.certificatesV1beta1 = certificatesv1beta1.New(c) + cs.coordinationV1beta1 = coordinationv1beta1.New(c) cs.coreV1 = corev1.New(c) cs.eventsV1beta1 = eventsv1beta1.New(c) cs.extensionsV1beta1 = extensionsv1beta1.New(c) @@ -588,6 +657,7 @@ func New(c rest.Interface) *Clientset { cs.rbacV1beta1 = rbacv1beta1.New(c) cs.rbacV1alpha1 = rbacv1alpha1.New(c) cs.schedulingV1alpha1 = schedulingv1alpha1.New(c) + cs.schedulingV1beta1 = schedulingv1beta1.New(c) cs.settingsV1alpha1 = settingsv1alpha1.New(c) cs.storageV1beta1 = storagev1beta1.New(c) cs.storageV1 = storagev1.New(c) diff --git a/vendor/k8s.io/client-go/kubernetes/doc.go b/vendor/k8s.io/client-go/kubernetes/doc.go index c5870c01a..b272334ad 100644 --- a/vendor/k8s.io/client-go/kubernetes/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/fake/BUILD b/vendor/k8s.io/client-go/kubernetes/fake/BUILD deleted file mode 100644 index c30d43ffb..000000000 --- a/vendor/k8s.io/client-go/kubernetes/fake/BUILD +++ /dev/null @@ -1,124 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "clientset_generated.go", - "doc.go", - "register.go", - ], - importpath = "k8s.io/client-go/kubernetes/fake", - deps = [ - "//vendor/k8s.io/api/admissionregistration/v1alpha1:go_default_library", - "//vendor/k8s.io/api/admissionregistration/v1beta1:go_default_library", - "//vendor/k8s.io/api/apps/v1:go_default_library", - "//vendor/k8s.io/api/apps/v1beta1:go_default_library", - "//vendor/k8s.io/api/apps/v1beta2:go_default_library", - "//vendor/k8s.io/api/authentication/v1:go_default_library", - "//vendor/k8s.io/api/authentication/v1beta1:go_default_library", - "//vendor/k8s.io/api/authorization/v1:go_default_library", - "//vendor/k8s.io/api/authorization/v1beta1:go_default_library", - "//vendor/k8s.io/api/autoscaling/v1:go_default_library", - "//vendor/k8s.io/api/autoscaling/v2beta1:go_default_library", - "//vendor/k8s.io/api/batch/v1:go_default_library", - "//vendor/k8s.io/api/batch/v1beta1:go_default_library", - "//vendor/k8s.io/api/batch/v2alpha1:go_default_library", - "//vendor/k8s.io/api/certificates/v1beta1:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/api/events/v1beta1:go_default_library", - "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", - "//vendor/k8s.io/api/networking/v1:go_default_library", - "//vendor/k8s.io/api/policy/v1beta1:go_default_library", - "//vendor/k8s.io/api/rbac/v1:go_default_library", - "//vendor/k8s.io/api/rbac/v1alpha1:go_default_library", - "//vendor/k8s.io/api/rbac/v1beta1:go_default_library", - "//vendor/k8s.io/api/scheduling/v1alpha1:go_default_library", - "//vendor/k8s.io/api/settings/v1alpha1:go_default_library", - "//vendor/k8s.io/api/storage/v1:go_default_library", - "//vendor/k8s.io/api/storage/v1alpha1:go_default_library", - "//vendor/k8s.io/api/storage/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/discovery:go_default_library", - "//vendor/k8s.io/client-go/discovery/fake:go_default_library", - "//vendor/k8s.io/client-go/kubernetes:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/apps/v1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/authentication/v1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/fake:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/fake:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/authorization/v1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/fake:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/fake:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/batch/v1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/batch/v1/fake:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/fake:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/fake:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/core/v1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/fake:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/networking/v1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/networking/v1/fake:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/rbac/v1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/fake:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/settings/v1alpha1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/fake:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/storage/v1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/storage/v1/fake:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake:go_default_library", - "//vendor/k8s.io/client-go/testing:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/fake/clientset_generated.go b/vendor/k8s.io/client-go/kubernetes/fake/clientset_generated.go index 0eb5ac9e5..47b63ffae 100644 --- a/vendor/k8s.io/client-go/kubernetes/fake/clientset_generated.go +++ b/vendor/k8s.io/client-go/kubernetes/fake/clientset_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -34,6 +34,8 @@ import ( fakeappsv1beta1 "k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake" appsv1beta2 "k8s.io/client-go/kubernetes/typed/apps/v1beta2" fakeappsv1beta2 "k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake" + auditregistrationv1alpha1 "k8s.io/client-go/kubernetes/typed/auditregistration/v1alpha1" + fakeauditregistrationv1alpha1 "k8s.io/client-go/kubernetes/typed/auditregistration/v1alpha1/fake" authenticationv1 "k8s.io/client-go/kubernetes/typed/authentication/v1" fakeauthenticationv1 "k8s.io/client-go/kubernetes/typed/authentication/v1/fake" authenticationv1beta1 "k8s.io/client-go/kubernetes/typed/authentication/v1beta1" @@ -46,6 +48,8 @@ import ( fakeautoscalingv1 "k8s.io/client-go/kubernetes/typed/autoscaling/v1/fake" autoscalingv2beta1 "k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1" fakeautoscalingv2beta1 "k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake" + autoscalingv2beta2 "k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2" + fakeautoscalingv2beta2 "k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2/fake" batchv1 "k8s.io/client-go/kubernetes/typed/batch/v1" fakebatchv1 "k8s.io/client-go/kubernetes/typed/batch/v1/fake" batchv1beta1 "k8s.io/client-go/kubernetes/typed/batch/v1beta1" @@ -54,6 +58,8 @@ import ( fakebatchv2alpha1 "k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake" certificatesv1beta1 "k8s.io/client-go/kubernetes/typed/certificates/v1beta1" fakecertificatesv1beta1 "k8s.io/client-go/kubernetes/typed/certificates/v1beta1/fake" + coordinationv1beta1 "k8s.io/client-go/kubernetes/typed/coordination/v1beta1" + fakecoordinationv1beta1 "k8s.io/client-go/kubernetes/typed/coordination/v1beta1/fake" corev1 "k8s.io/client-go/kubernetes/typed/core/v1" fakecorev1 "k8s.io/client-go/kubernetes/typed/core/v1/fake" eventsv1beta1 "k8s.io/client-go/kubernetes/typed/events/v1beta1" @@ -72,6 +78,8 @@ import ( fakerbacv1beta1 "k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake" schedulingv1alpha1 "k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1" fakeschedulingv1alpha1 "k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/fake" + schedulingv1beta1 "k8s.io/client-go/kubernetes/typed/scheduling/v1beta1" + fakeschedulingv1beta1 "k8s.io/client-go/kubernetes/typed/scheduling/v1beta1/fake" settingsv1alpha1 "k8s.io/client-go/kubernetes/typed/settings/v1alpha1" fakesettingsv1alpha1 "k8s.io/client-go/kubernetes/typed/settings/v1alpha1/fake" storagev1 "k8s.io/client-go/kubernetes/typed/storage/v1" @@ -95,9 +103,10 @@ func NewSimpleClientset(objects ...runtime.Object) *Clientset { } } - fakePtr := testing.Fake{} - fakePtr.AddReactor("*", "*", testing.ObjectReaction(o)) - fakePtr.AddWatchReactor("*", func(action testing.Action) (handled bool, ret watch.Interface, err error) { + cs := &Clientset{} + cs.discovery = &fakediscovery.FakeDiscovery{Fake: &cs.Fake} + cs.AddReactor("*", "*", testing.ObjectReaction(o)) + cs.AddWatchReactor("*", func(action testing.Action) (handled bool, ret watch.Interface, err error) { gvr := action.GetResource() ns := action.GetNamespace() watch, err := o.Watch(gvr, ns) @@ -107,7 +116,7 @@ func NewSimpleClientset(objects ...runtime.Object) *Clientset { return true, watch, nil }) - return &Clientset{fakePtr, &fakediscovery.FakeDiscovery{Fake: &fakePtr}} + return cs } // Clientset implements clientset.Interface. Meant to be embedded into a @@ -159,6 +168,16 @@ func (c *Clientset) Apps() appsv1.AppsV1Interface { return &fakeappsv1.FakeAppsV1{Fake: &c.Fake} } +// AuditregistrationV1alpha1 retrieves the AuditregistrationV1alpha1Client +func (c *Clientset) AuditregistrationV1alpha1() auditregistrationv1alpha1.AuditregistrationV1alpha1Interface { + return &fakeauditregistrationv1alpha1.FakeAuditregistrationV1alpha1{Fake: &c.Fake} +} + +// Auditregistration retrieves the AuditregistrationV1alpha1Client +func (c *Clientset) Auditregistration() auditregistrationv1alpha1.AuditregistrationV1alpha1Interface { + return &fakeauditregistrationv1alpha1.FakeAuditregistrationV1alpha1{Fake: &c.Fake} +} + // AuthenticationV1 retrieves the AuthenticationV1Client func (c *Clientset) AuthenticationV1() authenticationv1.AuthenticationV1Interface { return &fakeauthenticationv1.FakeAuthenticationV1{Fake: &c.Fake} @@ -204,6 +223,11 @@ func (c *Clientset) AutoscalingV2beta1() autoscalingv2beta1.AutoscalingV2beta1In return &fakeautoscalingv2beta1.FakeAutoscalingV2beta1{Fake: &c.Fake} } +// AutoscalingV2beta2 retrieves the AutoscalingV2beta2Client +func (c *Clientset) AutoscalingV2beta2() autoscalingv2beta2.AutoscalingV2beta2Interface { + return &fakeautoscalingv2beta2.FakeAutoscalingV2beta2{Fake: &c.Fake} +} + // BatchV1 retrieves the BatchV1Client func (c *Clientset) BatchV1() batchv1.BatchV1Interface { return &fakebatchv1.FakeBatchV1{Fake: &c.Fake} @@ -234,6 +258,16 @@ func (c *Clientset) Certificates() certificatesv1beta1.CertificatesV1beta1Interf return &fakecertificatesv1beta1.FakeCertificatesV1beta1{Fake: &c.Fake} } +// CoordinationV1beta1 retrieves the CoordinationV1beta1Client +func (c *Clientset) CoordinationV1beta1() coordinationv1beta1.CoordinationV1beta1Interface { + return &fakecoordinationv1beta1.FakeCoordinationV1beta1{Fake: &c.Fake} +} + +// Coordination retrieves the CoordinationV1beta1Client +func (c *Clientset) Coordination() coordinationv1beta1.CoordinationV1beta1Interface { + return &fakecoordinationv1beta1.FakeCoordinationV1beta1{Fake: &c.Fake} +} + // CoreV1 retrieves the CoreV1Client func (c *Clientset) CoreV1() corev1.CoreV1Interface { return &fakecorev1.FakeCoreV1{Fake: &c.Fake} @@ -309,9 +343,14 @@ func (c *Clientset) SchedulingV1alpha1() schedulingv1alpha1.SchedulingV1alpha1In return &fakeschedulingv1alpha1.FakeSchedulingV1alpha1{Fake: &c.Fake} } -// Scheduling retrieves the SchedulingV1alpha1Client -func (c *Clientset) Scheduling() schedulingv1alpha1.SchedulingV1alpha1Interface { - return &fakeschedulingv1alpha1.FakeSchedulingV1alpha1{Fake: &c.Fake} +// SchedulingV1beta1 retrieves the SchedulingV1beta1Client +func (c *Clientset) SchedulingV1beta1() schedulingv1beta1.SchedulingV1beta1Interface { + return &fakeschedulingv1beta1.FakeSchedulingV1beta1{Fake: &c.Fake} +} + +// Scheduling retrieves the SchedulingV1beta1Client +func (c *Clientset) Scheduling() schedulingv1beta1.SchedulingV1beta1Interface { + return &fakeschedulingv1beta1.FakeSchedulingV1beta1{Fake: &c.Fake} } // SettingsV1alpha1 retrieves the SettingsV1alpha1Client diff --git a/vendor/k8s.io/client-go/kubernetes/fake/doc.go b/vendor/k8s.io/client-go/kubernetes/fake/doc.go index 0bc260bca..9b99e7167 100644 --- a/vendor/k8s.io/client-go/kubernetes/fake/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/fake/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/fake/register.go b/vendor/k8s.io/client-go/kubernetes/fake/register.go index 45fdf124c..6e1e1fb29 100644 --- a/vendor/k8s.io/client-go/kubernetes/fake/register.go +++ b/vendor/k8s.io/client-go/kubernetes/fake/register.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -24,16 +24,19 @@ import ( appsv1 "k8s.io/api/apps/v1" appsv1beta1 "k8s.io/api/apps/v1beta1" appsv1beta2 "k8s.io/api/apps/v1beta2" + auditregistrationv1alpha1 "k8s.io/api/auditregistration/v1alpha1" authenticationv1 "k8s.io/api/authentication/v1" authenticationv1beta1 "k8s.io/api/authentication/v1beta1" authorizationv1 "k8s.io/api/authorization/v1" authorizationv1beta1 "k8s.io/api/authorization/v1beta1" autoscalingv1 "k8s.io/api/autoscaling/v1" autoscalingv2beta1 "k8s.io/api/autoscaling/v2beta1" + autoscalingv2beta2 "k8s.io/api/autoscaling/v2beta2" batchv1 "k8s.io/api/batch/v1" batchv1beta1 "k8s.io/api/batch/v1beta1" batchv2alpha1 "k8s.io/api/batch/v2alpha1" certificatesv1beta1 "k8s.io/api/certificates/v1beta1" + coordinationv1beta1 "k8s.io/api/coordination/v1beta1" corev1 "k8s.io/api/core/v1" eventsv1beta1 "k8s.io/api/events/v1beta1" extensionsv1beta1 "k8s.io/api/extensions/v1beta1" @@ -43,6 +46,7 @@ import ( rbacv1alpha1 "k8s.io/api/rbac/v1alpha1" rbacv1beta1 "k8s.io/api/rbac/v1beta1" schedulingv1alpha1 "k8s.io/api/scheduling/v1alpha1" + schedulingv1beta1 "k8s.io/api/scheduling/v1beta1" settingsv1alpha1 "k8s.io/api/settings/v1alpha1" storagev1 "k8s.io/api/storage/v1" storagev1alpha1 "k8s.io/api/storage/v1alpha1" @@ -51,15 +55,45 @@ import ( runtime "k8s.io/apimachinery/pkg/runtime" schema "k8s.io/apimachinery/pkg/runtime/schema" serializer "k8s.io/apimachinery/pkg/runtime/serializer" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" ) var scheme = runtime.NewScheme() var codecs = serializer.NewCodecFactory(scheme) var parameterCodec = runtime.NewParameterCodec(scheme) - -func init() { - v1.AddToGroupVersion(scheme, schema.GroupVersion{Version: "v1"}) - AddToScheme(scheme) +var localSchemeBuilder = runtime.SchemeBuilder{ + admissionregistrationv1alpha1.AddToScheme, + admissionregistrationv1beta1.AddToScheme, + appsv1beta1.AddToScheme, + appsv1beta2.AddToScheme, + appsv1.AddToScheme, + auditregistrationv1alpha1.AddToScheme, + authenticationv1.AddToScheme, + authenticationv1beta1.AddToScheme, + authorizationv1.AddToScheme, + authorizationv1beta1.AddToScheme, + autoscalingv1.AddToScheme, + autoscalingv2beta1.AddToScheme, + autoscalingv2beta2.AddToScheme, + batchv1.AddToScheme, + batchv1beta1.AddToScheme, + batchv2alpha1.AddToScheme, + certificatesv1beta1.AddToScheme, + coordinationv1beta1.AddToScheme, + corev1.AddToScheme, + eventsv1beta1.AddToScheme, + extensionsv1beta1.AddToScheme, + networkingv1.AddToScheme, + policyv1beta1.AddToScheme, + rbacv1.AddToScheme, + rbacv1beta1.AddToScheme, + rbacv1alpha1.AddToScheme, + schedulingv1alpha1.AddToScheme, + schedulingv1beta1.AddToScheme, + settingsv1alpha1.AddToScheme, + storagev1beta1.AddToScheme, + storagev1.AddToScheme, + storagev1alpha1.AddToScheme, } // AddToScheme adds all types of this clientset into the given scheme. This allows composition @@ -72,37 +106,13 @@ func init() { // ) // // kclientset, _ := kubernetes.NewForConfig(c) -// aggregatorclientsetscheme.AddToScheme(clientsetscheme.Scheme) +// _ = aggregatorclientsetscheme.AddToScheme(clientsetscheme.Scheme) // // After this, RawExtensions in Kubernetes types will serialize kube-aggregator types // correctly. -func AddToScheme(scheme *runtime.Scheme) { - admissionregistrationv1alpha1.AddToScheme(scheme) - admissionregistrationv1beta1.AddToScheme(scheme) - appsv1beta1.AddToScheme(scheme) - appsv1beta2.AddToScheme(scheme) - appsv1.AddToScheme(scheme) - authenticationv1.AddToScheme(scheme) - authenticationv1beta1.AddToScheme(scheme) - authorizationv1.AddToScheme(scheme) - authorizationv1beta1.AddToScheme(scheme) - autoscalingv1.AddToScheme(scheme) - autoscalingv2beta1.AddToScheme(scheme) - batchv1.AddToScheme(scheme) - batchv1beta1.AddToScheme(scheme) - batchv2alpha1.AddToScheme(scheme) - certificatesv1beta1.AddToScheme(scheme) - corev1.AddToScheme(scheme) - eventsv1beta1.AddToScheme(scheme) - extensionsv1beta1.AddToScheme(scheme) - networkingv1.AddToScheme(scheme) - policyv1beta1.AddToScheme(scheme) - rbacv1.AddToScheme(scheme) - rbacv1beta1.AddToScheme(scheme) - rbacv1alpha1.AddToScheme(scheme) - schedulingv1alpha1.AddToScheme(scheme) - settingsv1alpha1.AddToScheme(scheme) - storagev1beta1.AddToScheme(scheme) - storagev1.AddToScheme(scheme) - storagev1alpha1.AddToScheme(scheme) +var AddToScheme = localSchemeBuilder.AddToScheme + +func init() { + v1.AddToGroupVersion(scheme, schema.GroupVersion{Version: "v1"}) + utilruntime.Must(AddToScheme(scheme)) } diff --git a/vendor/k8s.io/client-go/kubernetes/scheme/BUILD b/vendor/k8s.io/client-go/kubernetes/scheme/BUILD deleted file mode 100644 index 1bb118aa0..000000000 --- a/vendor/k8s.io/client-go/kubernetes/scheme/BUILD +++ /dev/null @@ -1,62 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "register.go", - ], - importpath = "k8s.io/client-go/kubernetes/scheme", - deps = [ - "//vendor/k8s.io/api/admissionregistration/v1alpha1:go_default_library", - "//vendor/k8s.io/api/admissionregistration/v1beta1:go_default_library", - "//vendor/k8s.io/api/apps/v1:go_default_library", - "//vendor/k8s.io/api/apps/v1beta1:go_default_library", - "//vendor/k8s.io/api/apps/v1beta2:go_default_library", - "//vendor/k8s.io/api/authentication/v1:go_default_library", - "//vendor/k8s.io/api/authentication/v1beta1:go_default_library", - "//vendor/k8s.io/api/authorization/v1:go_default_library", - "//vendor/k8s.io/api/authorization/v1beta1:go_default_library", - "//vendor/k8s.io/api/autoscaling/v1:go_default_library", - "//vendor/k8s.io/api/autoscaling/v2beta1:go_default_library", - "//vendor/k8s.io/api/batch/v1:go_default_library", - "//vendor/k8s.io/api/batch/v1beta1:go_default_library", - "//vendor/k8s.io/api/batch/v2alpha1:go_default_library", - "//vendor/k8s.io/api/certificates/v1beta1:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/api/events/v1beta1:go_default_library", - "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", - "//vendor/k8s.io/api/networking/v1:go_default_library", - "//vendor/k8s.io/api/policy/v1beta1:go_default_library", - "//vendor/k8s.io/api/rbac/v1:go_default_library", - "//vendor/k8s.io/api/rbac/v1alpha1:go_default_library", - "//vendor/k8s.io/api/rbac/v1beta1:go_default_library", - "//vendor/k8s.io/api/scheduling/v1alpha1:go_default_library", - "//vendor/k8s.io/api/settings/v1alpha1:go_default_library", - "//vendor/k8s.io/api/storage/v1:go_default_library", - "//vendor/k8s.io/api/storage/v1alpha1:go_default_library", - "//vendor/k8s.io/api/storage/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/scheme/doc.go b/vendor/k8s.io/client-go/kubernetes/scheme/doc.go index 5c5c8debb..7dc375616 100644 --- a/vendor/k8s.io/client-go/kubernetes/scheme/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/scheme/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/scheme/register.go b/vendor/k8s.io/client-go/kubernetes/scheme/register.go index 66e2dcd18..e336eb917 100644 --- a/vendor/k8s.io/client-go/kubernetes/scheme/register.go +++ b/vendor/k8s.io/client-go/kubernetes/scheme/register.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -24,16 +24,19 @@ import ( appsv1 "k8s.io/api/apps/v1" appsv1beta1 "k8s.io/api/apps/v1beta1" appsv1beta2 "k8s.io/api/apps/v1beta2" + auditregistrationv1alpha1 "k8s.io/api/auditregistration/v1alpha1" authenticationv1 "k8s.io/api/authentication/v1" authenticationv1beta1 "k8s.io/api/authentication/v1beta1" authorizationv1 "k8s.io/api/authorization/v1" authorizationv1beta1 "k8s.io/api/authorization/v1beta1" autoscalingv1 "k8s.io/api/autoscaling/v1" autoscalingv2beta1 "k8s.io/api/autoscaling/v2beta1" + autoscalingv2beta2 "k8s.io/api/autoscaling/v2beta2" batchv1 "k8s.io/api/batch/v1" batchv1beta1 "k8s.io/api/batch/v1beta1" batchv2alpha1 "k8s.io/api/batch/v2alpha1" certificatesv1beta1 "k8s.io/api/certificates/v1beta1" + coordinationv1beta1 "k8s.io/api/coordination/v1beta1" corev1 "k8s.io/api/core/v1" eventsv1beta1 "k8s.io/api/events/v1beta1" extensionsv1beta1 "k8s.io/api/extensions/v1beta1" @@ -43,6 +46,7 @@ import ( rbacv1alpha1 "k8s.io/api/rbac/v1alpha1" rbacv1beta1 "k8s.io/api/rbac/v1beta1" schedulingv1alpha1 "k8s.io/api/scheduling/v1alpha1" + schedulingv1beta1 "k8s.io/api/scheduling/v1beta1" settingsv1alpha1 "k8s.io/api/settings/v1alpha1" storagev1 "k8s.io/api/storage/v1" storagev1alpha1 "k8s.io/api/storage/v1alpha1" @@ -51,15 +55,45 @@ import ( runtime "k8s.io/apimachinery/pkg/runtime" schema "k8s.io/apimachinery/pkg/runtime/schema" serializer "k8s.io/apimachinery/pkg/runtime/serializer" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" ) var Scheme = runtime.NewScheme() var Codecs = serializer.NewCodecFactory(Scheme) var ParameterCodec = runtime.NewParameterCodec(Scheme) - -func init() { - v1.AddToGroupVersion(Scheme, schema.GroupVersion{Version: "v1"}) - AddToScheme(Scheme) +var localSchemeBuilder = runtime.SchemeBuilder{ + admissionregistrationv1alpha1.AddToScheme, + admissionregistrationv1beta1.AddToScheme, + appsv1beta1.AddToScheme, + appsv1beta2.AddToScheme, + appsv1.AddToScheme, + auditregistrationv1alpha1.AddToScheme, + authenticationv1.AddToScheme, + authenticationv1beta1.AddToScheme, + authorizationv1.AddToScheme, + authorizationv1beta1.AddToScheme, + autoscalingv1.AddToScheme, + autoscalingv2beta1.AddToScheme, + autoscalingv2beta2.AddToScheme, + batchv1.AddToScheme, + batchv1beta1.AddToScheme, + batchv2alpha1.AddToScheme, + certificatesv1beta1.AddToScheme, + coordinationv1beta1.AddToScheme, + corev1.AddToScheme, + eventsv1beta1.AddToScheme, + extensionsv1beta1.AddToScheme, + networkingv1.AddToScheme, + policyv1beta1.AddToScheme, + rbacv1.AddToScheme, + rbacv1beta1.AddToScheme, + rbacv1alpha1.AddToScheme, + schedulingv1alpha1.AddToScheme, + schedulingv1beta1.AddToScheme, + settingsv1alpha1.AddToScheme, + storagev1beta1.AddToScheme, + storagev1.AddToScheme, + storagev1alpha1.AddToScheme, } // AddToScheme adds all types of this clientset into the given scheme. This allows composition @@ -72,37 +106,13 @@ func init() { // ) // // kclientset, _ := kubernetes.NewForConfig(c) -// aggregatorclientsetscheme.AddToScheme(clientsetscheme.Scheme) +// _ = aggregatorclientsetscheme.AddToScheme(clientsetscheme.Scheme) // // After this, RawExtensions in Kubernetes types will serialize kube-aggregator types // correctly. -func AddToScheme(scheme *runtime.Scheme) { - admissionregistrationv1alpha1.AddToScheme(scheme) - admissionregistrationv1beta1.AddToScheme(scheme) - appsv1beta1.AddToScheme(scheme) - appsv1beta2.AddToScheme(scheme) - appsv1.AddToScheme(scheme) - authenticationv1.AddToScheme(scheme) - authenticationv1beta1.AddToScheme(scheme) - authorizationv1.AddToScheme(scheme) - authorizationv1beta1.AddToScheme(scheme) - autoscalingv1.AddToScheme(scheme) - autoscalingv2beta1.AddToScheme(scheme) - batchv1.AddToScheme(scheme) - batchv1beta1.AddToScheme(scheme) - batchv2alpha1.AddToScheme(scheme) - certificatesv1beta1.AddToScheme(scheme) - corev1.AddToScheme(scheme) - eventsv1beta1.AddToScheme(scheme) - extensionsv1beta1.AddToScheme(scheme) - networkingv1.AddToScheme(scheme) - policyv1beta1.AddToScheme(scheme) - rbacv1.AddToScheme(scheme) - rbacv1beta1.AddToScheme(scheme) - rbacv1alpha1.AddToScheme(scheme) - schedulingv1alpha1.AddToScheme(scheme) - settingsv1alpha1.AddToScheme(scheme) - storagev1beta1.AddToScheme(scheme) - storagev1.AddToScheme(scheme) - storagev1alpha1.AddToScheme(scheme) +var AddToScheme = localSchemeBuilder.AddToScheme + +func init() { + v1.AddToGroupVersion(Scheme, schema.GroupVersion{Version: "v1"}) + utilruntime.Must(AddToScheme(Scheme)) } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/BUILD deleted file mode 100644 index 6ad245311..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/BUILD +++ /dev/null @@ -1,39 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "admissionregistration_client.go", - "doc.go", - "generated_expansion.go", - "initializerconfiguration.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1", - visibility = ["//visibility:public"], - deps = [ - "//vendor/k8s.io/api/admissionregistration/v1alpha1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake:all-srcs", - ], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/admissionregistration_client.go b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/admissionregistration_client.go index 8137129fc..5e02f7227 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/admissionregistration_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/admissionregistration_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/doc.go index 69ca30111..df51baa4d 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/BUILD deleted file mode 100644 index a70c2bef0..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/BUILD +++ /dev/null @@ -1,37 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "fake_admissionregistration_client.go", - "fake_initializerconfiguration.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake", - visibility = ["//visibility:public"], - deps = [ - "//vendor/k8s.io/api/admissionregistration/v1alpha1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/testing:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/doc.go index 87a1873ed..16f443990 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/fake_admissionregistration_client.go b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/fake_admissionregistration_client.go index 2917c0ae4..8457aec27 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/fake_admissionregistration_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/fake_admissionregistration_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/fake_initializerconfiguration.go b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/fake_initializerconfiguration.go index 699261cd4..4baee6610 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/fake_initializerconfiguration.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/fake_initializerconfiguration.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -59,7 +59,7 @@ func (c *FakeInitializerConfigurations) List(opts v1.ListOptions) (result *v1alp if label == nil { label = labels.Everything() } - list := &v1alpha1.InitializerConfigurationList{} + list := &v1alpha1.InitializerConfigurationList{ListMeta: obj.(*v1alpha1.InitializerConfigurationList).ListMeta} for _, item := range obj.(*v1alpha1.InitializerConfigurationList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) @@ -112,7 +112,7 @@ func (c *FakeInitializerConfigurations) DeleteCollection(options *v1.DeleteOptio // Patch applies the patch and returns the patched initializerConfiguration. func (c *FakeInitializerConfigurations) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.InitializerConfiguration, err error) { obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(initializerconfigurationsResource, name, data, subresources...), &v1alpha1.InitializerConfiguration{}) + Invokes(testing.NewRootPatchSubresourceAction(initializerconfigurationsResource, name, pt, data, subresources...), &v1alpha1.InitializerConfiguration{}) if obj == nil { return nil, err } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/generated_expansion.go b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/generated_expansion.go index 710bc4ea4..1e29b96f4 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/generated_expansion.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/generated_expansion.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/initializerconfiguration.go b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/initializerconfiguration.go index 77c6b8fcc..7b8acecee 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/initializerconfiguration.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/initializerconfiguration.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,6 +19,8 @@ limitations under the License. package v1alpha1 import ( + "time" + v1alpha1 "k8s.io/api/admissionregistration/v1alpha1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" @@ -72,10 +74,15 @@ func (c *initializerConfigurations) Get(name string, options v1.GetOptions) (res // List takes label and field selectors, and returns the list of InitializerConfigurations that match those selectors. func (c *initializerConfigurations) List(opts v1.ListOptions) (result *v1alpha1.InitializerConfigurationList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1alpha1.InitializerConfigurationList{} err = c.client.Get(). Resource("initializerconfigurations"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return @@ -83,10 +90,15 @@ func (c *initializerConfigurations) List(opts v1.ListOptions) (result *v1alpha1. // Watch returns a watch.Interface that watches the requested initializerConfigurations. func (c *initializerConfigurations) Watch(opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Resource("initializerconfigurations"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -125,9 +137,14 @@ func (c *initializerConfigurations) Delete(name string, options *v1.DeleteOption // DeleteCollection deletes a collection of objects. func (c *initializerConfigurations) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Resource("initializerconfigurations"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/BUILD deleted file mode 100644 index 197f738eb..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/BUILD +++ /dev/null @@ -1,40 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "admissionregistration_client.go", - "doc.go", - "generated_expansion.go", - "mutatingwebhookconfiguration.go", - "validatingwebhookconfiguration.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1", - visibility = ["//visibility:public"], - deps = [ - "//vendor/k8s.io/api/admissionregistration/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake:all-srcs", - ], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/admissionregistration_client.go b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/admissionregistration_client.go index 44b20b577..b13ea7953 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/admissionregistration_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/admissionregistration_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/doc.go index 11ae7049d..771101956 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake/BUILD deleted file mode 100644 index 4e615188d..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake/BUILD +++ /dev/null @@ -1,38 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "fake_admissionregistration_client.go", - "fake_mutatingwebhookconfiguration.go", - "fake_validatingwebhookconfiguration.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake", - visibility = ["//visibility:public"], - deps = [ - "//vendor/k8s.io/api/admissionregistration/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/testing:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake/doc.go index 87a1873ed..16f443990 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake/fake_admissionregistration_client.go b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake/fake_admissionregistration_client.go index 3255acb47..1a988ddba 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake/fake_admissionregistration_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake/fake_admissionregistration_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake/fake_mutatingwebhookconfiguration.go b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake/fake_mutatingwebhookconfiguration.go index 044636ead..d2177bad5 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake/fake_mutatingwebhookconfiguration.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake/fake_mutatingwebhookconfiguration.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -59,7 +59,7 @@ func (c *FakeMutatingWebhookConfigurations) List(opts v1.ListOptions) (result *v if label == nil { label = labels.Everything() } - list := &v1beta1.MutatingWebhookConfigurationList{} + list := &v1beta1.MutatingWebhookConfigurationList{ListMeta: obj.(*v1beta1.MutatingWebhookConfigurationList).ListMeta} for _, item := range obj.(*v1beta1.MutatingWebhookConfigurationList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) @@ -112,7 +112,7 @@ func (c *FakeMutatingWebhookConfigurations) DeleteCollection(options *v1.DeleteO // Patch applies the patch and returns the patched mutatingWebhookConfiguration. func (c *FakeMutatingWebhookConfigurations) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.MutatingWebhookConfiguration, err error) { obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(mutatingwebhookconfigurationsResource, name, data, subresources...), &v1beta1.MutatingWebhookConfiguration{}) + Invokes(testing.NewRootPatchSubresourceAction(mutatingwebhookconfigurationsResource, name, pt, data, subresources...), &v1beta1.MutatingWebhookConfiguration{}) if obj == nil { return nil, err } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake/fake_validatingwebhookconfiguration.go b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake/fake_validatingwebhookconfiguration.go index f06582d4e..6be2b3938 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake/fake_validatingwebhookconfiguration.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake/fake_validatingwebhookconfiguration.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -59,7 +59,7 @@ func (c *FakeValidatingWebhookConfigurations) List(opts v1.ListOptions) (result if label == nil { label = labels.Everything() } - list := &v1beta1.ValidatingWebhookConfigurationList{} + list := &v1beta1.ValidatingWebhookConfigurationList{ListMeta: obj.(*v1beta1.ValidatingWebhookConfigurationList).ListMeta} for _, item := range obj.(*v1beta1.ValidatingWebhookConfigurationList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) @@ -112,7 +112,7 @@ func (c *FakeValidatingWebhookConfigurations) DeleteCollection(options *v1.Delet // Patch applies the patch and returns the patched validatingWebhookConfiguration. func (c *FakeValidatingWebhookConfigurations) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.ValidatingWebhookConfiguration, err error) { obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(validatingwebhookconfigurationsResource, name, data, subresources...), &v1beta1.ValidatingWebhookConfiguration{}) + Invokes(testing.NewRootPatchSubresourceAction(validatingwebhookconfigurationsResource, name, pt, data, subresources...), &v1beta1.ValidatingWebhookConfiguration{}) if obj == nil { return nil, err } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/generated_expansion.go b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/generated_expansion.go index 293697555..2aeb9c98a 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/generated_expansion.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/generated_expansion.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/mutatingwebhookconfiguration.go b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/mutatingwebhookconfiguration.go index d37f68448..4524896cd 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/mutatingwebhookconfiguration.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/mutatingwebhookconfiguration.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,6 +19,8 @@ limitations under the License. package v1beta1 import ( + "time" + v1beta1 "k8s.io/api/admissionregistration/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" @@ -72,10 +74,15 @@ func (c *mutatingWebhookConfigurations) Get(name string, options v1.GetOptions) // List takes label and field selectors, and returns the list of MutatingWebhookConfigurations that match those selectors. func (c *mutatingWebhookConfigurations) List(opts v1.ListOptions) (result *v1beta1.MutatingWebhookConfigurationList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1beta1.MutatingWebhookConfigurationList{} err = c.client.Get(). Resource("mutatingwebhookconfigurations"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return @@ -83,10 +90,15 @@ func (c *mutatingWebhookConfigurations) List(opts v1.ListOptions) (result *v1bet // Watch returns a watch.Interface that watches the requested mutatingWebhookConfigurations. func (c *mutatingWebhookConfigurations) Watch(opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Resource("mutatingwebhookconfigurations"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -125,9 +137,14 @@ func (c *mutatingWebhookConfigurations) Delete(name string, options *v1.DeleteOp // DeleteCollection deletes a collection of objects. func (c *mutatingWebhookConfigurations) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Resource("mutatingwebhookconfigurations"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/validatingwebhookconfiguration.go b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/validatingwebhookconfiguration.go index 30dcfddbc..7e711b300 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/validatingwebhookconfiguration.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/validatingwebhookconfiguration.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,6 +19,8 @@ limitations under the License. package v1beta1 import ( + "time" + v1beta1 "k8s.io/api/admissionregistration/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" @@ -72,10 +74,15 @@ func (c *validatingWebhookConfigurations) Get(name string, options v1.GetOptions // List takes label and field selectors, and returns the list of ValidatingWebhookConfigurations that match those selectors. func (c *validatingWebhookConfigurations) List(opts v1.ListOptions) (result *v1beta1.ValidatingWebhookConfigurationList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1beta1.ValidatingWebhookConfigurationList{} err = c.client.Get(). Resource("validatingwebhookconfigurations"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return @@ -83,10 +90,15 @@ func (c *validatingWebhookConfigurations) List(opts v1.ListOptions) (result *v1b // Watch returns a watch.Interface that watches the requested validatingWebhookConfigurations. func (c *validatingWebhookConfigurations) Watch(opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Resource("validatingwebhookconfigurations"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -125,9 +137,14 @@ func (c *validatingWebhookConfigurations) Delete(name string, options *v1.Delete // DeleteCollection deletes a collection of objects. func (c *validatingWebhookConfigurations) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Resource("validatingwebhookconfigurations"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/BUILD deleted file mode 100644 index 5d77a94df..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/BUILD +++ /dev/null @@ -1,43 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "apps_client.go", - "controllerrevision.go", - "daemonset.go", - "deployment.go", - "doc.go", - "generated_expansion.go", - "replicaset.go", - "statefulset.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/apps/v1", - visibility = ["//visibility:public"], - deps = [ - "//vendor/k8s.io/api/apps/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/apps/v1/fake:all-srcs", - ], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/apps_client.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/apps_client.go index b0af79806..da19c7596 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/apps_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/apps_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/controllerrevision.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/controllerrevision.go index 26d020747..e28e4d2a3 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/controllerrevision.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/controllerrevision.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,8 +19,10 @@ limitations under the License. package v1 import ( + "time" + v1 "k8s.io/api/apps/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" scheme "k8s.io/client-go/kubernetes/scheme" @@ -37,11 +39,11 @@ type ControllerRevisionsGetter interface { type ControllerRevisionInterface interface { Create(*v1.ControllerRevision) (*v1.ControllerRevision, error) Update(*v1.ControllerRevision) (*v1.ControllerRevision, error) - Delete(name string, options *meta_v1.DeleteOptions) error - DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error - Get(name string, options meta_v1.GetOptions) (*v1.ControllerRevision, error) - List(opts meta_v1.ListOptions) (*v1.ControllerRevisionList, error) - Watch(opts meta_v1.ListOptions) (watch.Interface, error) + Delete(name string, options *metav1.DeleteOptions) error + DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error + Get(name string, options metav1.GetOptions) (*v1.ControllerRevision, error) + List(opts metav1.ListOptions) (*v1.ControllerRevisionList, error) + Watch(opts metav1.ListOptions) (watch.Interface, error) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.ControllerRevision, err error) ControllerRevisionExpansion } @@ -61,7 +63,7 @@ func newControllerRevisions(c *AppsV1Client, namespace string) *controllerRevisi } // Get takes name of the controllerRevision, and returns the corresponding controllerRevision object, and an error if there is any. -func (c *controllerRevisions) Get(name string, options meta_v1.GetOptions) (result *v1.ControllerRevision, err error) { +func (c *controllerRevisions) Get(name string, options metav1.GetOptions) (result *v1.ControllerRevision, err error) { result = &v1.ControllerRevision{} err = c.client.Get(). Namespace(c.ns). @@ -74,24 +76,34 @@ func (c *controllerRevisions) Get(name string, options meta_v1.GetOptions) (resu } // List takes label and field selectors, and returns the list of ControllerRevisions that match those selectors. -func (c *controllerRevisions) List(opts meta_v1.ListOptions) (result *v1.ControllerRevisionList, err error) { +func (c *controllerRevisions) List(opts metav1.ListOptions) (result *v1.ControllerRevisionList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1.ControllerRevisionList{} err = c.client.Get(). Namespace(c.ns). Resource("controllerrevisions"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return } // Watch returns a watch.Interface that watches the requested controllerRevisions. -func (c *controllerRevisions) Watch(opts meta_v1.ListOptions) (watch.Interface, error) { +func (c *controllerRevisions) Watch(opts metav1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Namespace(c.ns). Resource("controllerrevisions"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -121,7 +133,7 @@ func (c *controllerRevisions) Update(controllerRevision *v1.ControllerRevision) } // Delete takes name of the controllerRevision and deletes it. Returns an error if one occurs. -func (c *controllerRevisions) Delete(name string, options *meta_v1.DeleteOptions) error { +func (c *controllerRevisions) Delete(name string, options *metav1.DeleteOptions) error { return c.client.Delete(). Namespace(c.ns). Resource("controllerrevisions"). @@ -132,11 +144,16 @@ func (c *controllerRevisions) Delete(name string, options *meta_v1.DeleteOptions } // DeleteCollection deletes a collection of objects. -func (c *controllerRevisions) DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error { +func (c *controllerRevisions) DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Namespace(c.ns). Resource("controllerrevisions"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/daemonset.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/daemonset.go index 73fd1e9bd..a535cdabe 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/daemonset.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/daemonset.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,8 +19,10 @@ limitations under the License. package v1 import ( + "time" + v1 "k8s.io/api/apps/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" scheme "k8s.io/client-go/kubernetes/scheme" @@ -38,11 +40,11 @@ type DaemonSetInterface interface { Create(*v1.DaemonSet) (*v1.DaemonSet, error) Update(*v1.DaemonSet) (*v1.DaemonSet, error) UpdateStatus(*v1.DaemonSet) (*v1.DaemonSet, error) - Delete(name string, options *meta_v1.DeleteOptions) error - DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error - Get(name string, options meta_v1.GetOptions) (*v1.DaemonSet, error) - List(opts meta_v1.ListOptions) (*v1.DaemonSetList, error) - Watch(opts meta_v1.ListOptions) (watch.Interface, error) + Delete(name string, options *metav1.DeleteOptions) error + DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error + Get(name string, options metav1.GetOptions) (*v1.DaemonSet, error) + List(opts metav1.ListOptions) (*v1.DaemonSetList, error) + Watch(opts metav1.ListOptions) (watch.Interface, error) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.DaemonSet, err error) DaemonSetExpansion } @@ -62,7 +64,7 @@ func newDaemonSets(c *AppsV1Client, namespace string) *daemonSets { } // Get takes name of the daemonSet, and returns the corresponding daemonSet object, and an error if there is any. -func (c *daemonSets) Get(name string, options meta_v1.GetOptions) (result *v1.DaemonSet, err error) { +func (c *daemonSets) Get(name string, options metav1.GetOptions) (result *v1.DaemonSet, err error) { result = &v1.DaemonSet{} err = c.client.Get(). Namespace(c.ns). @@ -75,24 +77,34 @@ func (c *daemonSets) Get(name string, options meta_v1.GetOptions) (result *v1.Da } // List takes label and field selectors, and returns the list of DaemonSets that match those selectors. -func (c *daemonSets) List(opts meta_v1.ListOptions) (result *v1.DaemonSetList, err error) { +func (c *daemonSets) List(opts metav1.ListOptions) (result *v1.DaemonSetList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1.DaemonSetList{} err = c.client.Get(). Namespace(c.ns). Resource("daemonsets"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return } // Watch returns a watch.Interface that watches the requested daemonSets. -func (c *daemonSets) Watch(opts meta_v1.ListOptions) (watch.Interface, error) { +func (c *daemonSets) Watch(opts metav1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Namespace(c.ns). Resource("daemonsets"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -138,7 +150,7 @@ func (c *daemonSets) UpdateStatus(daemonSet *v1.DaemonSet) (result *v1.DaemonSet } // Delete takes name of the daemonSet and deletes it. Returns an error if one occurs. -func (c *daemonSets) Delete(name string, options *meta_v1.DeleteOptions) error { +func (c *daemonSets) Delete(name string, options *metav1.DeleteOptions) error { return c.client.Delete(). Namespace(c.ns). Resource("daemonsets"). @@ -149,11 +161,16 @@ func (c *daemonSets) Delete(name string, options *meta_v1.DeleteOptions) error { } // DeleteCollection deletes a collection of objects. -func (c *daemonSets) DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error { +func (c *daemonSets) DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Namespace(c.ns). Resource("daemonsets"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/deployment.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/deployment.go index 1a3e8f730..f9799a453 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/deployment.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/deployment.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,8 +19,11 @@ limitations under the License. package v1 import ( + "time" + v1 "k8s.io/api/apps/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + autoscalingv1 "k8s.io/api/autoscaling/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" scheme "k8s.io/client-go/kubernetes/scheme" @@ -38,12 +41,15 @@ type DeploymentInterface interface { Create(*v1.Deployment) (*v1.Deployment, error) Update(*v1.Deployment) (*v1.Deployment, error) UpdateStatus(*v1.Deployment) (*v1.Deployment, error) - Delete(name string, options *meta_v1.DeleteOptions) error - DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error - Get(name string, options meta_v1.GetOptions) (*v1.Deployment, error) - List(opts meta_v1.ListOptions) (*v1.DeploymentList, error) - Watch(opts meta_v1.ListOptions) (watch.Interface, error) + Delete(name string, options *metav1.DeleteOptions) error + DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error + Get(name string, options metav1.GetOptions) (*v1.Deployment, error) + List(opts metav1.ListOptions) (*v1.DeploymentList, error) + Watch(opts metav1.ListOptions) (watch.Interface, error) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.Deployment, err error) + GetScale(deploymentName string, options metav1.GetOptions) (*autoscalingv1.Scale, error) + UpdateScale(deploymentName string, scale *autoscalingv1.Scale) (*autoscalingv1.Scale, error) + DeploymentExpansion } @@ -62,7 +68,7 @@ func newDeployments(c *AppsV1Client, namespace string) *deployments { } // Get takes name of the deployment, and returns the corresponding deployment object, and an error if there is any. -func (c *deployments) Get(name string, options meta_v1.GetOptions) (result *v1.Deployment, err error) { +func (c *deployments) Get(name string, options metav1.GetOptions) (result *v1.Deployment, err error) { result = &v1.Deployment{} err = c.client.Get(). Namespace(c.ns). @@ -75,24 +81,34 @@ func (c *deployments) Get(name string, options meta_v1.GetOptions) (result *v1.D } // List takes label and field selectors, and returns the list of Deployments that match those selectors. -func (c *deployments) List(opts meta_v1.ListOptions) (result *v1.DeploymentList, err error) { +func (c *deployments) List(opts metav1.ListOptions) (result *v1.DeploymentList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1.DeploymentList{} err = c.client.Get(). Namespace(c.ns). Resource("deployments"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return } // Watch returns a watch.Interface that watches the requested deployments. -func (c *deployments) Watch(opts meta_v1.ListOptions) (watch.Interface, error) { +func (c *deployments) Watch(opts metav1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Namespace(c.ns). Resource("deployments"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -138,7 +154,7 @@ func (c *deployments) UpdateStatus(deployment *v1.Deployment) (result *v1.Deploy } // Delete takes name of the deployment and deletes it. Returns an error if one occurs. -func (c *deployments) Delete(name string, options *meta_v1.DeleteOptions) error { +func (c *deployments) Delete(name string, options *metav1.DeleteOptions) error { return c.client.Delete(). Namespace(c.ns). Resource("deployments"). @@ -149,11 +165,16 @@ func (c *deployments) Delete(name string, options *meta_v1.DeleteOptions) error } // DeleteCollection deletes a collection of objects. -func (c *deployments) DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error { +func (c *deployments) DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Namespace(c.ns). Resource("deployments"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() @@ -172,3 +193,31 @@ func (c *deployments) Patch(name string, pt types.PatchType, data []byte, subres Into(result) return } + +// GetScale takes name of the deployment, and returns the corresponding autoscalingv1.Scale object, and an error if there is any. +func (c *deployments) GetScale(deploymentName string, options metav1.GetOptions) (result *autoscalingv1.Scale, err error) { + result = &autoscalingv1.Scale{} + err = c.client.Get(). + Namespace(c.ns). + Resource("deployments"). + Name(deploymentName). + SubResource("scale"). + VersionedParams(&options, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// UpdateScale takes the top resource name and the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any. +func (c *deployments) UpdateScale(deploymentName string, scale *autoscalingv1.Scale) (result *autoscalingv1.Scale, err error) { + result = &autoscalingv1.Scale{} + err = c.client.Put(). + Namespace(c.ns). + Resource("deployments"). + Name(deploymentName). + SubResource("scale"). + Body(scale). + Do(). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/doc.go index d007a2903..3af5d054f 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/BUILD deleted file mode 100644 index 912b2755d..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/BUILD +++ /dev/null @@ -1,41 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "fake_apps_client.go", - "fake_controllerrevision.go", - "fake_daemonset.go", - "fake_deployment.go", - "fake_replicaset.go", - "fake_statefulset.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/apps/v1/fake", - visibility = ["//visibility:public"], - deps = [ - "//vendor/k8s.io/api/apps/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/apps/v1:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/testing:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/doc.go index 87a1873ed..16f443990 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_apps_client.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_apps_client.go index 11accc235..458df0fa3 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_apps_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_apps_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_controllerrevision.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_controllerrevision.go index fb43bea4c..eb38bca41 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_controllerrevision.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_controllerrevision.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,7 +19,7 @@ limitations under the License. package fake import ( - apps_v1 "k8s.io/api/apps/v1" + appsv1 "k8s.io/api/apps/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" schema "k8s.io/apimachinery/pkg/runtime/schema" @@ -39,20 +39,20 @@ var controllerrevisionsResource = schema.GroupVersionResource{Group: "apps", Ver var controllerrevisionsKind = schema.GroupVersionKind{Group: "apps", Version: "v1", Kind: "ControllerRevision"} // Get takes name of the controllerRevision, and returns the corresponding controllerRevision object, and an error if there is any. -func (c *FakeControllerRevisions) Get(name string, options v1.GetOptions) (result *apps_v1.ControllerRevision, err error) { +func (c *FakeControllerRevisions) Get(name string, options v1.GetOptions) (result *appsv1.ControllerRevision, err error) { obj, err := c.Fake. - Invokes(testing.NewGetAction(controllerrevisionsResource, c.ns, name), &apps_v1.ControllerRevision{}) + Invokes(testing.NewGetAction(controllerrevisionsResource, c.ns, name), &appsv1.ControllerRevision{}) if obj == nil { return nil, err } - return obj.(*apps_v1.ControllerRevision), err + return obj.(*appsv1.ControllerRevision), err } // List takes label and field selectors, and returns the list of ControllerRevisions that match those selectors. -func (c *FakeControllerRevisions) List(opts v1.ListOptions) (result *apps_v1.ControllerRevisionList, err error) { +func (c *FakeControllerRevisions) List(opts v1.ListOptions) (result *appsv1.ControllerRevisionList, err error) { obj, err := c.Fake. - Invokes(testing.NewListAction(controllerrevisionsResource, controllerrevisionsKind, c.ns, opts), &apps_v1.ControllerRevisionList{}) + Invokes(testing.NewListAction(controllerrevisionsResource, controllerrevisionsKind, c.ns, opts), &appsv1.ControllerRevisionList{}) if obj == nil { return nil, err @@ -62,8 +62,8 @@ func (c *FakeControllerRevisions) List(opts v1.ListOptions) (result *apps_v1.Con if label == nil { label = labels.Everything() } - list := &apps_v1.ControllerRevisionList{} - for _, item := range obj.(*apps_v1.ControllerRevisionList).Items { + list := &appsv1.ControllerRevisionList{ListMeta: obj.(*appsv1.ControllerRevisionList).ListMeta} + for _, item := range obj.(*appsv1.ControllerRevisionList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) } @@ -79,31 +79,31 @@ func (c *FakeControllerRevisions) Watch(opts v1.ListOptions) (watch.Interface, e } // Create takes the representation of a controllerRevision and creates it. Returns the server's representation of the controllerRevision, and an error, if there is any. -func (c *FakeControllerRevisions) Create(controllerRevision *apps_v1.ControllerRevision) (result *apps_v1.ControllerRevision, err error) { +func (c *FakeControllerRevisions) Create(controllerRevision *appsv1.ControllerRevision) (result *appsv1.ControllerRevision, err error) { obj, err := c.Fake. - Invokes(testing.NewCreateAction(controllerrevisionsResource, c.ns, controllerRevision), &apps_v1.ControllerRevision{}) + Invokes(testing.NewCreateAction(controllerrevisionsResource, c.ns, controllerRevision), &appsv1.ControllerRevision{}) if obj == nil { return nil, err } - return obj.(*apps_v1.ControllerRevision), err + return obj.(*appsv1.ControllerRevision), err } // Update takes the representation of a controllerRevision and updates it. Returns the server's representation of the controllerRevision, and an error, if there is any. -func (c *FakeControllerRevisions) Update(controllerRevision *apps_v1.ControllerRevision) (result *apps_v1.ControllerRevision, err error) { +func (c *FakeControllerRevisions) Update(controllerRevision *appsv1.ControllerRevision) (result *appsv1.ControllerRevision, err error) { obj, err := c.Fake. - Invokes(testing.NewUpdateAction(controllerrevisionsResource, c.ns, controllerRevision), &apps_v1.ControllerRevision{}) + Invokes(testing.NewUpdateAction(controllerrevisionsResource, c.ns, controllerRevision), &appsv1.ControllerRevision{}) if obj == nil { return nil, err } - return obj.(*apps_v1.ControllerRevision), err + return obj.(*appsv1.ControllerRevision), err } // Delete takes name of the controllerRevision and deletes it. Returns an error if one occurs. func (c *FakeControllerRevisions) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. - Invokes(testing.NewDeleteAction(controllerrevisionsResource, c.ns, name), &apps_v1.ControllerRevision{}) + Invokes(testing.NewDeleteAction(controllerrevisionsResource, c.ns, name), &appsv1.ControllerRevision{}) return err } @@ -112,17 +112,17 @@ func (c *FakeControllerRevisions) Delete(name string, options *v1.DeleteOptions) func (c *FakeControllerRevisions) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { action := testing.NewDeleteCollectionAction(controllerrevisionsResource, c.ns, listOptions) - _, err := c.Fake.Invokes(action, &apps_v1.ControllerRevisionList{}) + _, err := c.Fake.Invokes(action, &appsv1.ControllerRevisionList{}) return err } // Patch applies the patch and returns the patched controllerRevision. -func (c *FakeControllerRevisions) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *apps_v1.ControllerRevision, err error) { +func (c *FakeControllerRevisions) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *appsv1.ControllerRevision, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(controllerrevisionsResource, c.ns, name, data, subresources...), &apps_v1.ControllerRevision{}) + Invokes(testing.NewPatchSubresourceAction(controllerrevisionsResource, c.ns, name, pt, data, subresources...), &appsv1.ControllerRevision{}) if obj == nil { return nil, err } - return obj.(*apps_v1.ControllerRevision), err + return obj.(*appsv1.ControllerRevision), err } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_daemonset.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_daemonset.go index 0ee4cd33d..c06336e97 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_daemonset.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_daemonset.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,7 +19,7 @@ limitations under the License. package fake import ( - apps_v1 "k8s.io/api/apps/v1" + appsv1 "k8s.io/api/apps/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" schema "k8s.io/apimachinery/pkg/runtime/schema" @@ -39,20 +39,20 @@ var daemonsetsResource = schema.GroupVersionResource{Group: "apps", Version: "v1 var daemonsetsKind = schema.GroupVersionKind{Group: "apps", Version: "v1", Kind: "DaemonSet"} // Get takes name of the daemonSet, and returns the corresponding daemonSet object, and an error if there is any. -func (c *FakeDaemonSets) Get(name string, options v1.GetOptions) (result *apps_v1.DaemonSet, err error) { +func (c *FakeDaemonSets) Get(name string, options v1.GetOptions) (result *appsv1.DaemonSet, err error) { obj, err := c.Fake. - Invokes(testing.NewGetAction(daemonsetsResource, c.ns, name), &apps_v1.DaemonSet{}) + Invokes(testing.NewGetAction(daemonsetsResource, c.ns, name), &appsv1.DaemonSet{}) if obj == nil { return nil, err } - return obj.(*apps_v1.DaemonSet), err + return obj.(*appsv1.DaemonSet), err } // List takes label and field selectors, and returns the list of DaemonSets that match those selectors. -func (c *FakeDaemonSets) List(opts v1.ListOptions) (result *apps_v1.DaemonSetList, err error) { +func (c *FakeDaemonSets) List(opts v1.ListOptions) (result *appsv1.DaemonSetList, err error) { obj, err := c.Fake. - Invokes(testing.NewListAction(daemonsetsResource, daemonsetsKind, c.ns, opts), &apps_v1.DaemonSetList{}) + Invokes(testing.NewListAction(daemonsetsResource, daemonsetsKind, c.ns, opts), &appsv1.DaemonSetList{}) if obj == nil { return nil, err @@ -62,8 +62,8 @@ func (c *FakeDaemonSets) List(opts v1.ListOptions) (result *apps_v1.DaemonSetLis if label == nil { label = labels.Everything() } - list := &apps_v1.DaemonSetList{} - for _, item := range obj.(*apps_v1.DaemonSetList).Items { + list := &appsv1.DaemonSetList{ListMeta: obj.(*appsv1.DaemonSetList).ListMeta} + for _, item := range obj.(*appsv1.DaemonSetList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) } @@ -79,43 +79,43 @@ func (c *FakeDaemonSets) Watch(opts v1.ListOptions) (watch.Interface, error) { } // Create takes the representation of a daemonSet and creates it. Returns the server's representation of the daemonSet, and an error, if there is any. -func (c *FakeDaemonSets) Create(daemonSet *apps_v1.DaemonSet) (result *apps_v1.DaemonSet, err error) { +func (c *FakeDaemonSets) Create(daemonSet *appsv1.DaemonSet) (result *appsv1.DaemonSet, err error) { obj, err := c.Fake. - Invokes(testing.NewCreateAction(daemonsetsResource, c.ns, daemonSet), &apps_v1.DaemonSet{}) + Invokes(testing.NewCreateAction(daemonsetsResource, c.ns, daemonSet), &appsv1.DaemonSet{}) if obj == nil { return nil, err } - return obj.(*apps_v1.DaemonSet), err + return obj.(*appsv1.DaemonSet), err } // Update takes the representation of a daemonSet and updates it. Returns the server's representation of the daemonSet, and an error, if there is any. -func (c *FakeDaemonSets) Update(daemonSet *apps_v1.DaemonSet) (result *apps_v1.DaemonSet, err error) { +func (c *FakeDaemonSets) Update(daemonSet *appsv1.DaemonSet) (result *appsv1.DaemonSet, err error) { obj, err := c.Fake. - Invokes(testing.NewUpdateAction(daemonsetsResource, c.ns, daemonSet), &apps_v1.DaemonSet{}) + Invokes(testing.NewUpdateAction(daemonsetsResource, c.ns, daemonSet), &appsv1.DaemonSet{}) if obj == nil { return nil, err } - return obj.(*apps_v1.DaemonSet), err + return obj.(*appsv1.DaemonSet), err } // UpdateStatus was generated because the type contains a Status member. // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *FakeDaemonSets) UpdateStatus(daemonSet *apps_v1.DaemonSet) (*apps_v1.DaemonSet, error) { +func (c *FakeDaemonSets) UpdateStatus(daemonSet *appsv1.DaemonSet) (*appsv1.DaemonSet, error) { obj, err := c.Fake. - Invokes(testing.NewUpdateSubresourceAction(daemonsetsResource, "status", c.ns, daemonSet), &apps_v1.DaemonSet{}) + Invokes(testing.NewUpdateSubresourceAction(daemonsetsResource, "status", c.ns, daemonSet), &appsv1.DaemonSet{}) if obj == nil { return nil, err } - return obj.(*apps_v1.DaemonSet), err + return obj.(*appsv1.DaemonSet), err } // Delete takes name of the daemonSet and deletes it. Returns an error if one occurs. func (c *FakeDaemonSets) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. - Invokes(testing.NewDeleteAction(daemonsetsResource, c.ns, name), &apps_v1.DaemonSet{}) + Invokes(testing.NewDeleteAction(daemonsetsResource, c.ns, name), &appsv1.DaemonSet{}) return err } @@ -124,17 +124,17 @@ func (c *FakeDaemonSets) Delete(name string, options *v1.DeleteOptions) error { func (c *FakeDaemonSets) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { action := testing.NewDeleteCollectionAction(daemonsetsResource, c.ns, listOptions) - _, err := c.Fake.Invokes(action, &apps_v1.DaemonSetList{}) + _, err := c.Fake.Invokes(action, &appsv1.DaemonSetList{}) return err } // Patch applies the patch and returns the patched daemonSet. -func (c *FakeDaemonSets) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *apps_v1.DaemonSet, err error) { +func (c *FakeDaemonSets) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *appsv1.DaemonSet, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(daemonsetsResource, c.ns, name, data, subresources...), &apps_v1.DaemonSet{}) + Invokes(testing.NewPatchSubresourceAction(daemonsetsResource, c.ns, name, pt, data, subresources...), &appsv1.DaemonSet{}) if obj == nil { return nil, err } - return obj.(*apps_v1.DaemonSet), err + return obj.(*appsv1.DaemonSet), err } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_deployment.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_deployment.go index 852b628ad..6a8cb379d 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_deployment.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_deployment.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,7 +19,8 @@ limitations under the License. package fake import ( - apps_v1 "k8s.io/api/apps/v1" + appsv1 "k8s.io/api/apps/v1" + autoscalingv1 "k8s.io/api/autoscaling/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" schema "k8s.io/apimachinery/pkg/runtime/schema" @@ -39,20 +40,20 @@ var deploymentsResource = schema.GroupVersionResource{Group: "apps", Version: "v var deploymentsKind = schema.GroupVersionKind{Group: "apps", Version: "v1", Kind: "Deployment"} // Get takes name of the deployment, and returns the corresponding deployment object, and an error if there is any. -func (c *FakeDeployments) Get(name string, options v1.GetOptions) (result *apps_v1.Deployment, err error) { +func (c *FakeDeployments) Get(name string, options v1.GetOptions) (result *appsv1.Deployment, err error) { obj, err := c.Fake. - Invokes(testing.NewGetAction(deploymentsResource, c.ns, name), &apps_v1.Deployment{}) + Invokes(testing.NewGetAction(deploymentsResource, c.ns, name), &appsv1.Deployment{}) if obj == nil { return nil, err } - return obj.(*apps_v1.Deployment), err + return obj.(*appsv1.Deployment), err } // List takes label and field selectors, and returns the list of Deployments that match those selectors. -func (c *FakeDeployments) List(opts v1.ListOptions) (result *apps_v1.DeploymentList, err error) { +func (c *FakeDeployments) List(opts v1.ListOptions) (result *appsv1.DeploymentList, err error) { obj, err := c.Fake. - Invokes(testing.NewListAction(deploymentsResource, deploymentsKind, c.ns, opts), &apps_v1.DeploymentList{}) + Invokes(testing.NewListAction(deploymentsResource, deploymentsKind, c.ns, opts), &appsv1.DeploymentList{}) if obj == nil { return nil, err @@ -62,8 +63,8 @@ func (c *FakeDeployments) List(opts v1.ListOptions) (result *apps_v1.DeploymentL if label == nil { label = labels.Everything() } - list := &apps_v1.DeploymentList{} - for _, item := range obj.(*apps_v1.DeploymentList).Items { + list := &appsv1.DeploymentList{ListMeta: obj.(*appsv1.DeploymentList).ListMeta} + for _, item := range obj.(*appsv1.DeploymentList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) } @@ -79,43 +80,43 @@ func (c *FakeDeployments) Watch(opts v1.ListOptions) (watch.Interface, error) { } // Create takes the representation of a deployment and creates it. Returns the server's representation of the deployment, and an error, if there is any. -func (c *FakeDeployments) Create(deployment *apps_v1.Deployment) (result *apps_v1.Deployment, err error) { +func (c *FakeDeployments) Create(deployment *appsv1.Deployment) (result *appsv1.Deployment, err error) { obj, err := c.Fake. - Invokes(testing.NewCreateAction(deploymentsResource, c.ns, deployment), &apps_v1.Deployment{}) + Invokes(testing.NewCreateAction(deploymentsResource, c.ns, deployment), &appsv1.Deployment{}) if obj == nil { return nil, err } - return obj.(*apps_v1.Deployment), err + return obj.(*appsv1.Deployment), err } // Update takes the representation of a deployment and updates it. Returns the server's representation of the deployment, and an error, if there is any. -func (c *FakeDeployments) Update(deployment *apps_v1.Deployment) (result *apps_v1.Deployment, err error) { +func (c *FakeDeployments) Update(deployment *appsv1.Deployment) (result *appsv1.Deployment, err error) { obj, err := c.Fake. - Invokes(testing.NewUpdateAction(deploymentsResource, c.ns, deployment), &apps_v1.Deployment{}) + Invokes(testing.NewUpdateAction(deploymentsResource, c.ns, deployment), &appsv1.Deployment{}) if obj == nil { return nil, err } - return obj.(*apps_v1.Deployment), err + return obj.(*appsv1.Deployment), err } // UpdateStatus was generated because the type contains a Status member. // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *FakeDeployments) UpdateStatus(deployment *apps_v1.Deployment) (*apps_v1.Deployment, error) { +func (c *FakeDeployments) UpdateStatus(deployment *appsv1.Deployment) (*appsv1.Deployment, error) { obj, err := c.Fake. - Invokes(testing.NewUpdateSubresourceAction(deploymentsResource, "status", c.ns, deployment), &apps_v1.Deployment{}) + Invokes(testing.NewUpdateSubresourceAction(deploymentsResource, "status", c.ns, deployment), &appsv1.Deployment{}) if obj == nil { return nil, err } - return obj.(*apps_v1.Deployment), err + return obj.(*appsv1.Deployment), err } // Delete takes name of the deployment and deletes it. Returns an error if one occurs. func (c *FakeDeployments) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. - Invokes(testing.NewDeleteAction(deploymentsResource, c.ns, name), &apps_v1.Deployment{}) + Invokes(testing.NewDeleteAction(deploymentsResource, c.ns, name), &appsv1.Deployment{}) return err } @@ -124,17 +125,39 @@ func (c *FakeDeployments) Delete(name string, options *v1.DeleteOptions) error { func (c *FakeDeployments) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { action := testing.NewDeleteCollectionAction(deploymentsResource, c.ns, listOptions) - _, err := c.Fake.Invokes(action, &apps_v1.DeploymentList{}) + _, err := c.Fake.Invokes(action, &appsv1.DeploymentList{}) return err } // Patch applies the patch and returns the patched deployment. -func (c *FakeDeployments) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *apps_v1.Deployment, err error) { +func (c *FakeDeployments) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *appsv1.Deployment, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(deploymentsResource, c.ns, name, data, subresources...), &apps_v1.Deployment{}) + Invokes(testing.NewPatchSubresourceAction(deploymentsResource, c.ns, name, pt, data, subresources...), &appsv1.Deployment{}) if obj == nil { return nil, err } - return obj.(*apps_v1.Deployment), err + return obj.(*appsv1.Deployment), err +} + +// GetScale takes name of the deployment, and returns the corresponding scale object, and an error if there is any. +func (c *FakeDeployments) GetScale(deploymentName string, options v1.GetOptions) (result *autoscalingv1.Scale, err error) { + obj, err := c.Fake. + Invokes(testing.NewGetSubresourceAction(deploymentsResource, c.ns, "scale", deploymentName), &autoscalingv1.Scale{}) + + if obj == nil { + return nil, err + } + return obj.(*autoscalingv1.Scale), err +} + +// UpdateScale takes the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any. +func (c *FakeDeployments) UpdateScale(deploymentName string, scale *autoscalingv1.Scale) (result *autoscalingv1.Scale, err error) { + obj, err := c.Fake. + Invokes(testing.NewUpdateSubresourceAction(deploymentsResource, "scale", c.ns, scale), &autoscalingv1.Scale{}) + + if obj == nil { + return nil, err + } + return obj.(*autoscalingv1.Scale), err } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_replicaset.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_replicaset.go index 03f7558d4..e871f82f7 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_replicaset.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_replicaset.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,7 +19,8 @@ limitations under the License. package fake import ( - apps_v1 "k8s.io/api/apps/v1" + appsv1 "k8s.io/api/apps/v1" + autoscalingv1 "k8s.io/api/autoscaling/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" schema "k8s.io/apimachinery/pkg/runtime/schema" @@ -39,20 +40,20 @@ var replicasetsResource = schema.GroupVersionResource{Group: "apps", Version: "v var replicasetsKind = schema.GroupVersionKind{Group: "apps", Version: "v1", Kind: "ReplicaSet"} // Get takes name of the replicaSet, and returns the corresponding replicaSet object, and an error if there is any. -func (c *FakeReplicaSets) Get(name string, options v1.GetOptions) (result *apps_v1.ReplicaSet, err error) { +func (c *FakeReplicaSets) Get(name string, options v1.GetOptions) (result *appsv1.ReplicaSet, err error) { obj, err := c.Fake. - Invokes(testing.NewGetAction(replicasetsResource, c.ns, name), &apps_v1.ReplicaSet{}) + Invokes(testing.NewGetAction(replicasetsResource, c.ns, name), &appsv1.ReplicaSet{}) if obj == nil { return nil, err } - return obj.(*apps_v1.ReplicaSet), err + return obj.(*appsv1.ReplicaSet), err } // List takes label and field selectors, and returns the list of ReplicaSets that match those selectors. -func (c *FakeReplicaSets) List(opts v1.ListOptions) (result *apps_v1.ReplicaSetList, err error) { +func (c *FakeReplicaSets) List(opts v1.ListOptions) (result *appsv1.ReplicaSetList, err error) { obj, err := c.Fake. - Invokes(testing.NewListAction(replicasetsResource, replicasetsKind, c.ns, opts), &apps_v1.ReplicaSetList{}) + Invokes(testing.NewListAction(replicasetsResource, replicasetsKind, c.ns, opts), &appsv1.ReplicaSetList{}) if obj == nil { return nil, err @@ -62,8 +63,8 @@ func (c *FakeReplicaSets) List(opts v1.ListOptions) (result *apps_v1.ReplicaSetL if label == nil { label = labels.Everything() } - list := &apps_v1.ReplicaSetList{} - for _, item := range obj.(*apps_v1.ReplicaSetList).Items { + list := &appsv1.ReplicaSetList{ListMeta: obj.(*appsv1.ReplicaSetList).ListMeta} + for _, item := range obj.(*appsv1.ReplicaSetList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) } @@ -79,43 +80,43 @@ func (c *FakeReplicaSets) Watch(opts v1.ListOptions) (watch.Interface, error) { } // Create takes the representation of a replicaSet and creates it. Returns the server's representation of the replicaSet, and an error, if there is any. -func (c *FakeReplicaSets) Create(replicaSet *apps_v1.ReplicaSet) (result *apps_v1.ReplicaSet, err error) { +func (c *FakeReplicaSets) Create(replicaSet *appsv1.ReplicaSet) (result *appsv1.ReplicaSet, err error) { obj, err := c.Fake. - Invokes(testing.NewCreateAction(replicasetsResource, c.ns, replicaSet), &apps_v1.ReplicaSet{}) + Invokes(testing.NewCreateAction(replicasetsResource, c.ns, replicaSet), &appsv1.ReplicaSet{}) if obj == nil { return nil, err } - return obj.(*apps_v1.ReplicaSet), err + return obj.(*appsv1.ReplicaSet), err } // Update takes the representation of a replicaSet and updates it. Returns the server's representation of the replicaSet, and an error, if there is any. -func (c *FakeReplicaSets) Update(replicaSet *apps_v1.ReplicaSet) (result *apps_v1.ReplicaSet, err error) { +func (c *FakeReplicaSets) Update(replicaSet *appsv1.ReplicaSet) (result *appsv1.ReplicaSet, err error) { obj, err := c.Fake. - Invokes(testing.NewUpdateAction(replicasetsResource, c.ns, replicaSet), &apps_v1.ReplicaSet{}) + Invokes(testing.NewUpdateAction(replicasetsResource, c.ns, replicaSet), &appsv1.ReplicaSet{}) if obj == nil { return nil, err } - return obj.(*apps_v1.ReplicaSet), err + return obj.(*appsv1.ReplicaSet), err } // UpdateStatus was generated because the type contains a Status member. // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *FakeReplicaSets) UpdateStatus(replicaSet *apps_v1.ReplicaSet) (*apps_v1.ReplicaSet, error) { +func (c *FakeReplicaSets) UpdateStatus(replicaSet *appsv1.ReplicaSet) (*appsv1.ReplicaSet, error) { obj, err := c.Fake. - Invokes(testing.NewUpdateSubresourceAction(replicasetsResource, "status", c.ns, replicaSet), &apps_v1.ReplicaSet{}) + Invokes(testing.NewUpdateSubresourceAction(replicasetsResource, "status", c.ns, replicaSet), &appsv1.ReplicaSet{}) if obj == nil { return nil, err } - return obj.(*apps_v1.ReplicaSet), err + return obj.(*appsv1.ReplicaSet), err } // Delete takes name of the replicaSet and deletes it. Returns an error if one occurs. func (c *FakeReplicaSets) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. - Invokes(testing.NewDeleteAction(replicasetsResource, c.ns, name), &apps_v1.ReplicaSet{}) + Invokes(testing.NewDeleteAction(replicasetsResource, c.ns, name), &appsv1.ReplicaSet{}) return err } @@ -124,17 +125,39 @@ func (c *FakeReplicaSets) Delete(name string, options *v1.DeleteOptions) error { func (c *FakeReplicaSets) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { action := testing.NewDeleteCollectionAction(replicasetsResource, c.ns, listOptions) - _, err := c.Fake.Invokes(action, &apps_v1.ReplicaSetList{}) + _, err := c.Fake.Invokes(action, &appsv1.ReplicaSetList{}) return err } // Patch applies the patch and returns the patched replicaSet. -func (c *FakeReplicaSets) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *apps_v1.ReplicaSet, err error) { +func (c *FakeReplicaSets) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *appsv1.ReplicaSet, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(replicasetsResource, c.ns, name, data, subresources...), &apps_v1.ReplicaSet{}) + Invokes(testing.NewPatchSubresourceAction(replicasetsResource, c.ns, name, pt, data, subresources...), &appsv1.ReplicaSet{}) if obj == nil { return nil, err } - return obj.(*apps_v1.ReplicaSet), err + return obj.(*appsv1.ReplicaSet), err +} + +// GetScale takes name of the replicaSet, and returns the corresponding scale object, and an error if there is any. +func (c *FakeReplicaSets) GetScale(replicaSetName string, options v1.GetOptions) (result *autoscalingv1.Scale, err error) { + obj, err := c.Fake. + Invokes(testing.NewGetSubresourceAction(replicasetsResource, c.ns, "scale", replicaSetName), &autoscalingv1.Scale{}) + + if obj == nil { + return nil, err + } + return obj.(*autoscalingv1.Scale), err +} + +// UpdateScale takes the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any. +func (c *FakeReplicaSets) UpdateScale(replicaSetName string, scale *autoscalingv1.Scale) (result *autoscalingv1.Scale, err error) { + obj, err := c.Fake. + Invokes(testing.NewUpdateSubresourceAction(replicasetsResource, "scale", c.ns, scale), &autoscalingv1.Scale{}) + + if obj == nil { + return nil, err + } + return obj.(*autoscalingv1.Scale), err } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_statefulset.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_statefulset.go index af0a90720..83e80bff4 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_statefulset.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_statefulset.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,7 +19,8 @@ limitations under the License. package fake import ( - apps_v1 "k8s.io/api/apps/v1" + appsv1 "k8s.io/api/apps/v1" + autoscalingv1 "k8s.io/api/autoscaling/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" schema "k8s.io/apimachinery/pkg/runtime/schema" @@ -39,20 +40,20 @@ var statefulsetsResource = schema.GroupVersionResource{Group: "apps", Version: " var statefulsetsKind = schema.GroupVersionKind{Group: "apps", Version: "v1", Kind: "StatefulSet"} // Get takes name of the statefulSet, and returns the corresponding statefulSet object, and an error if there is any. -func (c *FakeStatefulSets) Get(name string, options v1.GetOptions) (result *apps_v1.StatefulSet, err error) { +func (c *FakeStatefulSets) Get(name string, options v1.GetOptions) (result *appsv1.StatefulSet, err error) { obj, err := c.Fake. - Invokes(testing.NewGetAction(statefulsetsResource, c.ns, name), &apps_v1.StatefulSet{}) + Invokes(testing.NewGetAction(statefulsetsResource, c.ns, name), &appsv1.StatefulSet{}) if obj == nil { return nil, err } - return obj.(*apps_v1.StatefulSet), err + return obj.(*appsv1.StatefulSet), err } // List takes label and field selectors, and returns the list of StatefulSets that match those selectors. -func (c *FakeStatefulSets) List(opts v1.ListOptions) (result *apps_v1.StatefulSetList, err error) { +func (c *FakeStatefulSets) List(opts v1.ListOptions) (result *appsv1.StatefulSetList, err error) { obj, err := c.Fake. - Invokes(testing.NewListAction(statefulsetsResource, statefulsetsKind, c.ns, opts), &apps_v1.StatefulSetList{}) + Invokes(testing.NewListAction(statefulsetsResource, statefulsetsKind, c.ns, opts), &appsv1.StatefulSetList{}) if obj == nil { return nil, err @@ -62,8 +63,8 @@ func (c *FakeStatefulSets) List(opts v1.ListOptions) (result *apps_v1.StatefulSe if label == nil { label = labels.Everything() } - list := &apps_v1.StatefulSetList{} - for _, item := range obj.(*apps_v1.StatefulSetList).Items { + list := &appsv1.StatefulSetList{ListMeta: obj.(*appsv1.StatefulSetList).ListMeta} + for _, item := range obj.(*appsv1.StatefulSetList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) } @@ -79,43 +80,43 @@ func (c *FakeStatefulSets) Watch(opts v1.ListOptions) (watch.Interface, error) { } // Create takes the representation of a statefulSet and creates it. Returns the server's representation of the statefulSet, and an error, if there is any. -func (c *FakeStatefulSets) Create(statefulSet *apps_v1.StatefulSet) (result *apps_v1.StatefulSet, err error) { +func (c *FakeStatefulSets) Create(statefulSet *appsv1.StatefulSet) (result *appsv1.StatefulSet, err error) { obj, err := c.Fake. - Invokes(testing.NewCreateAction(statefulsetsResource, c.ns, statefulSet), &apps_v1.StatefulSet{}) + Invokes(testing.NewCreateAction(statefulsetsResource, c.ns, statefulSet), &appsv1.StatefulSet{}) if obj == nil { return nil, err } - return obj.(*apps_v1.StatefulSet), err + return obj.(*appsv1.StatefulSet), err } // Update takes the representation of a statefulSet and updates it. Returns the server's representation of the statefulSet, and an error, if there is any. -func (c *FakeStatefulSets) Update(statefulSet *apps_v1.StatefulSet) (result *apps_v1.StatefulSet, err error) { +func (c *FakeStatefulSets) Update(statefulSet *appsv1.StatefulSet) (result *appsv1.StatefulSet, err error) { obj, err := c.Fake. - Invokes(testing.NewUpdateAction(statefulsetsResource, c.ns, statefulSet), &apps_v1.StatefulSet{}) + Invokes(testing.NewUpdateAction(statefulsetsResource, c.ns, statefulSet), &appsv1.StatefulSet{}) if obj == nil { return nil, err } - return obj.(*apps_v1.StatefulSet), err + return obj.(*appsv1.StatefulSet), err } // UpdateStatus was generated because the type contains a Status member. // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *FakeStatefulSets) UpdateStatus(statefulSet *apps_v1.StatefulSet) (*apps_v1.StatefulSet, error) { +func (c *FakeStatefulSets) UpdateStatus(statefulSet *appsv1.StatefulSet) (*appsv1.StatefulSet, error) { obj, err := c.Fake. - Invokes(testing.NewUpdateSubresourceAction(statefulsetsResource, "status", c.ns, statefulSet), &apps_v1.StatefulSet{}) + Invokes(testing.NewUpdateSubresourceAction(statefulsetsResource, "status", c.ns, statefulSet), &appsv1.StatefulSet{}) if obj == nil { return nil, err } - return obj.(*apps_v1.StatefulSet), err + return obj.(*appsv1.StatefulSet), err } // Delete takes name of the statefulSet and deletes it. Returns an error if one occurs. func (c *FakeStatefulSets) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. - Invokes(testing.NewDeleteAction(statefulsetsResource, c.ns, name), &apps_v1.StatefulSet{}) + Invokes(testing.NewDeleteAction(statefulsetsResource, c.ns, name), &appsv1.StatefulSet{}) return err } @@ -124,17 +125,39 @@ func (c *FakeStatefulSets) Delete(name string, options *v1.DeleteOptions) error func (c *FakeStatefulSets) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { action := testing.NewDeleteCollectionAction(statefulsetsResource, c.ns, listOptions) - _, err := c.Fake.Invokes(action, &apps_v1.StatefulSetList{}) + _, err := c.Fake.Invokes(action, &appsv1.StatefulSetList{}) return err } // Patch applies the patch and returns the patched statefulSet. -func (c *FakeStatefulSets) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *apps_v1.StatefulSet, err error) { +func (c *FakeStatefulSets) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *appsv1.StatefulSet, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(statefulsetsResource, c.ns, name, data, subresources...), &apps_v1.StatefulSet{}) + Invokes(testing.NewPatchSubresourceAction(statefulsetsResource, c.ns, name, pt, data, subresources...), &appsv1.StatefulSet{}) if obj == nil { return nil, err } - return obj.(*apps_v1.StatefulSet), err + return obj.(*appsv1.StatefulSet), err +} + +// GetScale takes name of the statefulSet, and returns the corresponding scale object, and an error if there is any. +func (c *FakeStatefulSets) GetScale(statefulSetName string, options v1.GetOptions) (result *autoscalingv1.Scale, err error) { + obj, err := c.Fake. + Invokes(testing.NewGetSubresourceAction(statefulsetsResource, c.ns, "scale", statefulSetName), &autoscalingv1.Scale{}) + + if obj == nil { + return nil, err + } + return obj.(*autoscalingv1.Scale), err +} + +// UpdateScale takes the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any. +func (c *FakeStatefulSets) UpdateScale(statefulSetName string, scale *autoscalingv1.Scale) (result *autoscalingv1.Scale, err error) { + obj, err := c.Fake. + Invokes(testing.NewUpdateSubresourceAction(statefulsetsResource, "scale", c.ns, scale), &autoscalingv1.Scale{}) + + if obj == nil { + return nil, err + } + return obj.(*autoscalingv1.Scale), err } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/generated_expansion.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/generated_expansion.go index 0f603bb8c..88cfe4ecb 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/generated_expansion.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/generated_expansion.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/replicaset.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/replicaset.go index f2f9c7256..ff3504e78 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/replicaset.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/replicaset.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,8 +19,11 @@ limitations under the License. package v1 import ( + "time" + v1 "k8s.io/api/apps/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + autoscalingv1 "k8s.io/api/autoscaling/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" scheme "k8s.io/client-go/kubernetes/scheme" @@ -38,12 +41,15 @@ type ReplicaSetInterface interface { Create(*v1.ReplicaSet) (*v1.ReplicaSet, error) Update(*v1.ReplicaSet) (*v1.ReplicaSet, error) UpdateStatus(*v1.ReplicaSet) (*v1.ReplicaSet, error) - Delete(name string, options *meta_v1.DeleteOptions) error - DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error - Get(name string, options meta_v1.GetOptions) (*v1.ReplicaSet, error) - List(opts meta_v1.ListOptions) (*v1.ReplicaSetList, error) - Watch(opts meta_v1.ListOptions) (watch.Interface, error) + Delete(name string, options *metav1.DeleteOptions) error + DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error + Get(name string, options metav1.GetOptions) (*v1.ReplicaSet, error) + List(opts metav1.ListOptions) (*v1.ReplicaSetList, error) + Watch(opts metav1.ListOptions) (watch.Interface, error) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.ReplicaSet, err error) + GetScale(replicaSetName string, options metav1.GetOptions) (*autoscalingv1.Scale, error) + UpdateScale(replicaSetName string, scale *autoscalingv1.Scale) (*autoscalingv1.Scale, error) + ReplicaSetExpansion } @@ -62,7 +68,7 @@ func newReplicaSets(c *AppsV1Client, namespace string) *replicaSets { } // Get takes name of the replicaSet, and returns the corresponding replicaSet object, and an error if there is any. -func (c *replicaSets) Get(name string, options meta_v1.GetOptions) (result *v1.ReplicaSet, err error) { +func (c *replicaSets) Get(name string, options metav1.GetOptions) (result *v1.ReplicaSet, err error) { result = &v1.ReplicaSet{} err = c.client.Get(). Namespace(c.ns). @@ -75,24 +81,34 @@ func (c *replicaSets) Get(name string, options meta_v1.GetOptions) (result *v1.R } // List takes label and field selectors, and returns the list of ReplicaSets that match those selectors. -func (c *replicaSets) List(opts meta_v1.ListOptions) (result *v1.ReplicaSetList, err error) { +func (c *replicaSets) List(opts metav1.ListOptions) (result *v1.ReplicaSetList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1.ReplicaSetList{} err = c.client.Get(). Namespace(c.ns). Resource("replicasets"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return } // Watch returns a watch.Interface that watches the requested replicaSets. -func (c *replicaSets) Watch(opts meta_v1.ListOptions) (watch.Interface, error) { +func (c *replicaSets) Watch(opts metav1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Namespace(c.ns). Resource("replicasets"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -138,7 +154,7 @@ func (c *replicaSets) UpdateStatus(replicaSet *v1.ReplicaSet) (result *v1.Replic } // Delete takes name of the replicaSet and deletes it. Returns an error if one occurs. -func (c *replicaSets) Delete(name string, options *meta_v1.DeleteOptions) error { +func (c *replicaSets) Delete(name string, options *metav1.DeleteOptions) error { return c.client.Delete(). Namespace(c.ns). Resource("replicasets"). @@ -149,11 +165,16 @@ func (c *replicaSets) Delete(name string, options *meta_v1.DeleteOptions) error } // DeleteCollection deletes a collection of objects. -func (c *replicaSets) DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error { +func (c *replicaSets) DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Namespace(c.ns). Resource("replicasets"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() @@ -172,3 +193,31 @@ func (c *replicaSets) Patch(name string, pt types.PatchType, data []byte, subres Into(result) return } + +// GetScale takes name of the replicaSet, and returns the corresponding autoscalingv1.Scale object, and an error if there is any. +func (c *replicaSets) GetScale(replicaSetName string, options metav1.GetOptions) (result *autoscalingv1.Scale, err error) { + result = &autoscalingv1.Scale{} + err = c.client.Get(). + Namespace(c.ns). + Resource("replicasets"). + Name(replicaSetName). + SubResource("scale"). + VersionedParams(&options, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// UpdateScale takes the top resource name and the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any. +func (c *replicaSets) UpdateScale(replicaSetName string, scale *autoscalingv1.Scale) (result *autoscalingv1.Scale, err error) { + result = &autoscalingv1.Scale{} + err = c.client.Put(). + Namespace(c.ns). + Resource("replicasets"). + Name(replicaSetName). + SubResource("scale"). + Body(scale). + Do(). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/statefulset.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/statefulset.go index 78fe23f84..c12c470bb 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/statefulset.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1/statefulset.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,8 +19,11 @@ limitations under the License. package v1 import ( + "time" + v1 "k8s.io/api/apps/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + autoscalingv1 "k8s.io/api/autoscaling/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" scheme "k8s.io/client-go/kubernetes/scheme" @@ -38,12 +41,15 @@ type StatefulSetInterface interface { Create(*v1.StatefulSet) (*v1.StatefulSet, error) Update(*v1.StatefulSet) (*v1.StatefulSet, error) UpdateStatus(*v1.StatefulSet) (*v1.StatefulSet, error) - Delete(name string, options *meta_v1.DeleteOptions) error - DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error - Get(name string, options meta_v1.GetOptions) (*v1.StatefulSet, error) - List(opts meta_v1.ListOptions) (*v1.StatefulSetList, error) - Watch(opts meta_v1.ListOptions) (watch.Interface, error) + Delete(name string, options *metav1.DeleteOptions) error + DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error + Get(name string, options metav1.GetOptions) (*v1.StatefulSet, error) + List(opts metav1.ListOptions) (*v1.StatefulSetList, error) + Watch(opts metav1.ListOptions) (watch.Interface, error) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.StatefulSet, err error) + GetScale(statefulSetName string, options metav1.GetOptions) (*autoscalingv1.Scale, error) + UpdateScale(statefulSetName string, scale *autoscalingv1.Scale) (*autoscalingv1.Scale, error) + StatefulSetExpansion } @@ -62,7 +68,7 @@ func newStatefulSets(c *AppsV1Client, namespace string) *statefulSets { } // Get takes name of the statefulSet, and returns the corresponding statefulSet object, and an error if there is any. -func (c *statefulSets) Get(name string, options meta_v1.GetOptions) (result *v1.StatefulSet, err error) { +func (c *statefulSets) Get(name string, options metav1.GetOptions) (result *v1.StatefulSet, err error) { result = &v1.StatefulSet{} err = c.client.Get(). Namespace(c.ns). @@ -75,24 +81,34 @@ func (c *statefulSets) Get(name string, options meta_v1.GetOptions) (result *v1. } // List takes label and field selectors, and returns the list of StatefulSets that match those selectors. -func (c *statefulSets) List(opts meta_v1.ListOptions) (result *v1.StatefulSetList, err error) { +func (c *statefulSets) List(opts metav1.ListOptions) (result *v1.StatefulSetList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1.StatefulSetList{} err = c.client.Get(). Namespace(c.ns). Resource("statefulsets"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return } // Watch returns a watch.Interface that watches the requested statefulSets. -func (c *statefulSets) Watch(opts meta_v1.ListOptions) (watch.Interface, error) { +func (c *statefulSets) Watch(opts metav1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Namespace(c.ns). Resource("statefulsets"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -138,7 +154,7 @@ func (c *statefulSets) UpdateStatus(statefulSet *v1.StatefulSet) (result *v1.Sta } // Delete takes name of the statefulSet and deletes it. Returns an error if one occurs. -func (c *statefulSets) Delete(name string, options *meta_v1.DeleteOptions) error { +func (c *statefulSets) Delete(name string, options *metav1.DeleteOptions) error { return c.client.Delete(). Namespace(c.ns). Resource("statefulsets"). @@ -149,11 +165,16 @@ func (c *statefulSets) Delete(name string, options *meta_v1.DeleteOptions) error } // DeleteCollection deletes a collection of objects. -func (c *statefulSets) DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error { +func (c *statefulSets) DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Namespace(c.ns). Resource("statefulsets"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() @@ -172,3 +193,31 @@ func (c *statefulSets) Patch(name string, pt types.PatchType, data []byte, subre Into(result) return } + +// GetScale takes name of the statefulSet, and returns the corresponding autoscalingv1.Scale object, and an error if there is any. +func (c *statefulSets) GetScale(statefulSetName string, options metav1.GetOptions) (result *autoscalingv1.Scale, err error) { + result = &autoscalingv1.Scale{} + err = c.client.Get(). + Namespace(c.ns). + Resource("statefulsets"). + Name(statefulSetName). + SubResource("scale"). + VersionedParams(&options, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// UpdateScale takes the top resource name and the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any. +func (c *statefulSets) UpdateScale(statefulSetName string, scale *autoscalingv1.Scale) (result *autoscalingv1.Scale, err error) { + result = &autoscalingv1.Scale{} + err = c.client.Put(). + Namespace(c.ns). + Resource("statefulsets"). + Name(statefulSetName). + SubResource("scale"). + Body(scale). + Do(). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/BUILD deleted file mode 100644 index 18dca7163..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/BUILD +++ /dev/null @@ -1,45 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "apps_client.go", - "controllerrevision.go", - "deployment.go", - "doc.go", - "generated_expansion.go", - "scale.go", - "statefulset.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/apps/v1beta1", - deps = [ - "//vendor/k8s.io/api/apps/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/apps_client.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/apps_client.go index 1aebc2176..2c9db886b 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/apps_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/apps_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -29,7 +29,6 @@ type AppsV1beta1Interface interface { RESTClient() rest.Interface ControllerRevisionsGetter DeploymentsGetter - ScalesGetter StatefulSetsGetter } @@ -46,10 +45,6 @@ func (c *AppsV1beta1Client) Deployments(namespace string) DeploymentInterface { return newDeployments(c, namespace) } -func (c *AppsV1beta1Client) Scales(namespace string) ScaleInterface { - return newScales(c, namespace) -} - func (c *AppsV1beta1Client) StatefulSets(namespace string) StatefulSetInterface { return newStatefulSets(c, namespace) } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/controllerrevision.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/controllerrevision.go index 312ba3c47..45ddb9159 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/controllerrevision.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/controllerrevision.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,6 +19,8 @@ limitations under the License. package v1beta1 import ( + "time" + v1beta1 "k8s.io/api/apps/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" @@ -75,11 +77,16 @@ func (c *controllerRevisions) Get(name string, options v1.GetOptions) (result *v // List takes label and field selectors, and returns the list of ControllerRevisions that match those selectors. func (c *controllerRevisions) List(opts v1.ListOptions) (result *v1beta1.ControllerRevisionList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1beta1.ControllerRevisionList{} err = c.client.Get(). Namespace(c.ns). Resource("controllerrevisions"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return @@ -87,11 +94,16 @@ func (c *controllerRevisions) List(opts v1.ListOptions) (result *v1beta1.Control // Watch returns a watch.Interface that watches the requested controllerRevisions. func (c *controllerRevisions) Watch(opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Namespace(c.ns). Resource("controllerrevisions"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -133,10 +145,15 @@ func (c *controllerRevisions) Delete(name string, options *v1.DeleteOptions) err // DeleteCollection deletes a collection of objects. func (c *controllerRevisions) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Namespace(c.ns). Resource("controllerrevisions"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/deployment.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/deployment.go index 2ff58aeac..05fdcb7a6 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/deployment.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/deployment.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,6 +19,8 @@ limitations under the License. package v1beta1 import ( + "time" + v1beta1 "k8s.io/api/apps/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" @@ -76,11 +78,16 @@ func (c *deployments) Get(name string, options v1.GetOptions) (result *v1beta1.D // List takes label and field selectors, and returns the list of Deployments that match those selectors. func (c *deployments) List(opts v1.ListOptions) (result *v1beta1.DeploymentList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1beta1.DeploymentList{} err = c.client.Get(). Namespace(c.ns). Resource("deployments"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return @@ -88,11 +95,16 @@ func (c *deployments) List(opts v1.ListOptions) (result *v1beta1.DeploymentList, // Watch returns a watch.Interface that watches the requested deployments. func (c *deployments) Watch(opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Namespace(c.ns). Resource("deployments"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -150,10 +162,15 @@ func (c *deployments) Delete(name string, options *v1.DeleteOptions) error { // DeleteCollection deletes a collection of objects. func (c *deployments) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Namespace(c.ns). Resource("deployments"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/doc.go index 11ae7049d..771101956 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/BUILD deleted file mode 100644 index ef39b5d3d..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/BUILD +++ /dev/null @@ -1,43 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "fake_apps_client.go", - "fake_controllerrevision.go", - "fake_deployment.go", - "fake_scale.go", - "fake_statefulset.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake", - deps = [ - "//vendor/k8s.io/api/apps/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/testing:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/doc.go index 87a1873ed..16f443990 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/fake_apps_client.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/fake_apps_client.go index 5cc316882..8e65d78d2 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/fake_apps_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/fake_apps_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -36,10 +36,6 @@ func (c *FakeAppsV1beta1) Deployments(namespace string) v1beta1.DeploymentInterf return &FakeDeployments{c, namespace} } -func (c *FakeAppsV1beta1) Scales(namespace string) v1beta1.ScaleInterface { - return &FakeScales{c, namespace} -} - func (c *FakeAppsV1beta1) StatefulSets(namespace string) v1beta1.StatefulSetInterface { return &FakeStatefulSets{c, namespace} } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/fake_controllerrevision.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/fake_controllerrevision.go index 2360bb07a..8e339d78b 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/fake_controllerrevision.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/fake_controllerrevision.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -62,7 +62,7 @@ func (c *FakeControllerRevisions) List(opts v1.ListOptions) (result *v1beta1.Con if label == nil { label = labels.Everything() } - list := &v1beta1.ControllerRevisionList{} + list := &v1beta1.ControllerRevisionList{ListMeta: obj.(*v1beta1.ControllerRevisionList).ListMeta} for _, item := range obj.(*v1beta1.ControllerRevisionList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) @@ -119,7 +119,7 @@ func (c *FakeControllerRevisions) DeleteCollection(options *v1.DeleteOptions, li // Patch applies the patch and returns the patched controllerRevision. func (c *FakeControllerRevisions) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.ControllerRevision, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(controllerrevisionsResource, c.ns, name, data, subresources...), &v1beta1.ControllerRevision{}) + Invokes(testing.NewPatchSubresourceAction(controllerrevisionsResource, c.ns, name, pt, data, subresources...), &v1beta1.ControllerRevision{}) if obj == nil { return nil, err diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/fake_deployment.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/fake_deployment.go index 5282d8cd9..c33baba58 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/fake_deployment.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/fake_deployment.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -62,7 +62,7 @@ func (c *FakeDeployments) List(opts v1.ListOptions) (result *v1beta1.DeploymentL if label == nil { label = labels.Everything() } - list := &v1beta1.DeploymentList{} + list := &v1beta1.DeploymentList{ListMeta: obj.(*v1beta1.DeploymentList).ListMeta} for _, item := range obj.(*v1beta1.DeploymentList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) @@ -131,7 +131,7 @@ func (c *FakeDeployments) DeleteCollection(options *v1.DeleteOptions, listOption // Patch applies the patch and returns the patched deployment. func (c *FakeDeployments) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.Deployment, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(deploymentsResource, c.ns, name, data, subresources...), &v1beta1.Deployment{}) + Invokes(testing.NewPatchSubresourceAction(deploymentsResource, c.ns, name, pt, data, subresources...), &v1beta1.Deployment{}) if obj == nil { return nil, err diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/fake_statefulset.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/fake_statefulset.go index 6e1d7a560..754da5fba 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/fake_statefulset.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/fake_statefulset.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -62,7 +62,7 @@ func (c *FakeStatefulSets) List(opts v1.ListOptions) (result *v1beta1.StatefulSe if label == nil { label = labels.Everything() } - list := &v1beta1.StatefulSetList{} + list := &v1beta1.StatefulSetList{ListMeta: obj.(*v1beta1.StatefulSetList).ListMeta} for _, item := range obj.(*v1beta1.StatefulSetList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) @@ -131,7 +131,7 @@ func (c *FakeStatefulSets) DeleteCollection(options *v1.DeleteOptions, listOptio // Patch applies the patch and returns the patched statefulSet. func (c *FakeStatefulSets) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.StatefulSet, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(statefulsetsResource, c.ns, name, data, subresources...), &v1beta1.StatefulSet{}) + Invokes(testing.NewPatchSubresourceAction(statefulsetsResource, c.ns, name, pt, data, subresources...), &v1beta1.StatefulSet{}) if obj == nil { return nil, err diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/generated_expansion.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/generated_expansion.go index a44a94b63..113455df2 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/generated_expansion.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/generated_expansion.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -22,6 +22,4 @@ type ControllerRevisionExpansion interface{} type DeploymentExpansion interface{} -type ScaleExpansion interface{} - type StatefulSetExpansion interface{} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/statefulset.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/statefulset.go index 6f89ca73a..c4b35b424 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/statefulset.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/statefulset.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,6 +19,8 @@ limitations under the License. package v1beta1 import ( + "time" + v1beta1 "k8s.io/api/apps/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" @@ -76,11 +78,16 @@ func (c *statefulSets) Get(name string, options v1.GetOptions) (result *v1beta1. // List takes label and field selectors, and returns the list of StatefulSets that match those selectors. func (c *statefulSets) List(opts v1.ListOptions) (result *v1beta1.StatefulSetList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1beta1.StatefulSetList{} err = c.client.Get(). Namespace(c.ns). Resource("statefulsets"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return @@ -88,11 +95,16 @@ func (c *statefulSets) List(opts v1.ListOptions) (result *v1beta1.StatefulSetLis // Watch returns a watch.Interface that watches the requested statefulSets. func (c *statefulSets) Watch(opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Namespace(c.ns). Resource("statefulsets"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -150,10 +162,15 @@ func (c *statefulSets) Delete(name string, options *v1.DeleteOptions) error { // DeleteCollection deletes a collection of objects. func (c *statefulSets) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Namespace(c.ns). Resource("statefulsets"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/BUILD deleted file mode 100644 index 0af42bcf8..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/BUILD +++ /dev/null @@ -1,47 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "apps_client.go", - "controllerrevision.go", - "daemonset.go", - "deployment.go", - "doc.go", - "generated_expansion.go", - "replicaset.go", - "scale.go", - "statefulset.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/apps/v1beta2", - deps = [ - "//vendor/k8s.io/api/apps/v1beta2:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/apps_client.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/apps_client.go index 8d5a78c44..99d677f40 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/apps_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/apps_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -31,7 +31,6 @@ type AppsV1beta2Interface interface { DaemonSetsGetter DeploymentsGetter ReplicaSetsGetter - ScalesGetter StatefulSetsGetter } @@ -56,10 +55,6 @@ func (c *AppsV1beta2Client) ReplicaSets(namespace string) ReplicaSetInterface { return newReplicaSets(c, namespace) } -func (c *AppsV1beta2Client) Scales(namespace string) ScaleInterface { - return newScales(c, namespace) -} - func (c *AppsV1beta2Client) StatefulSets(namespace string) StatefulSetInterface { return newStatefulSets(c, namespace) } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/controllerrevision.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/controllerrevision.go index 28b30e8be..e1d602515 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/controllerrevision.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/controllerrevision.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,6 +19,8 @@ limitations under the License. package v1beta2 import ( + "time" + v1beta2 "k8s.io/api/apps/v1beta2" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" @@ -75,11 +77,16 @@ func (c *controllerRevisions) Get(name string, options v1.GetOptions) (result *v // List takes label and field selectors, and returns the list of ControllerRevisions that match those selectors. func (c *controllerRevisions) List(opts v1.ListOptions) (result *v1beta2.ControllerRevisionList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1beta2.ControllerRevisionList{} err = c.client.Get(). Namespace(c.ns). Resource("controllerrevisions"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return @@ -87,11 +94,16 @@ func (c *controllerRevisions) List(opts v1.ListOptions) (result *v1beta2.Control // Watch returns a watch.Interface that watches the requested controllerRevisions. func (c *controllerRevisions) Watch(opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Namespace(c.ns). Resource("controllerrevisions"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -133,10 +145,15 @@ func (c *controllerRevisions) Delete(name string, options *v1.DeleteOptions) err // DeleteCollection deletes a collection of objects. func (c *controllerRevisions) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Namespace(c.ns). Resource("controllerrevisions"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/daemonset.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/daemonset.go index c21fc50a8..f8b7ac259 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/daemonset.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/daemonset.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,6 +19,8 @@ limitations under the License. package v1beta2 import ( + "time" + v1beta2 "k8s.io/api/apps/v1beta2" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" @@ -76,11 +78,16 @@ func (c *daemonSets) Get(name string, options v1.GetOptions) (result *v1beta2.Da // List takes label and field selectors, and returns the list of DaemonSets that match those selectors. func (c *daemonSets) List(opts v1.ListOptions) (result *v1beta2.DaemonSetList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1beta2.DaemonSetList{} err = c.client.Get(). Namespace(c.ns). Resource("daemonsets"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return @@ -88,11 +95,16 @@ func (c *daemonSets) List(opts v1.ListOptions) (result *v1beta2.DaemonSetList, e // Watch returns a watch.Interface that watches the requested daemonSets. func (c *daemonSets) Watch(opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Namespace(c.ns). Resource("daemonsets"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -150,10 +162,15 @@ func (c *daemonSets) Delete(name string, options *v1.DeleteOptions) error { // DeleteCollection deletes a collection of objects. func (c *daemonSets) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Namespace(c.ns). Resource("daemonsets"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/deployment.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/deployment.go index 270be527e..510250b06 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/deployment.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/deployment.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,6 +19,8 @@ limitations under the License. package v1beta2 import ( + "time" + v1beta2 "k8s.io/api/apps/v1beta2" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" @@ -76,11 +78,16 @@ func (c *deployments) Get(name string, options v1.GetOptions) (result *v1beta2.D // List takes label and field selectors, and returns the list of Deployments that match those selectors. func (c *deployments) List(opts v1.ListOptions) (result *v1beta2.DeploymentList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1beta2.DeploymentList{} err = c.client.Get(). Namespace(c.ns). Resource("deployments"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return @@ -88,11 +95,16 @@ func (c *deployments) List(opts v1.ListOptions) (result *v1beta2.DeploymentList, // Watch returns a watch.Interface that watches the requested deployments. func (c *deployments) Watch(opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Namespace(c.ns). Resource("deployments"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -150,10 +162,15 @@ func (c *deployments) Delete(name string, options *v1.DeleteOptions) error { // DeleteCollection deletes a collection of objects. func (c *deployments) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Namespace(c.ns). Resource("deployments"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/doc.go index 01d0ed2c2..56518ef7f 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/BUILD deleted file mode 100644 index d965ed1b2..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/BUILD +++ /dev/null @@ -1,45 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "fake_apps_client.go", - "fake_controllerrevision.go", - "fake_daemonset.go", - "fake_deployment.go", - "fake_replicaset.go", - "fake_scale.go", - "fake_statefulset.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake", - deps = [ - "//vendor/k8s.io/api/apps/v1beta2:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/testing:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/doc.go index 87a1873ed..16f443990 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_apps_client.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_apps_client.go index 7223cd24e..0ec34a2cd 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_apps_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_apps_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -44,10 +44,6 @@ func (c *FakeAppsV1beta2) ReplicaSets(namespace string) v1beta2.ReplicaSetInterf return &FakeReplicaSets{c, namespace} } -func (c *FakeAppsV1beta2) Scales(namespace string) v1beta2.ScaleInterface { - return &FakeScales{c, namespace} -} - func (c *FakeAppsV1beta2) StatefulSets(namespace string) v1beta2.StatefulSetInterface { return &FakeStatefulSets{c, namespace} } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_controllerrevision.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_controllerrevision.go index 720972e7d..197f190cb 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_controllerrevision.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_controllerrevision.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -62,7 +62,7 @@ func (c *FakeControllerRevisions) List(opts v1.ListOptions) (result *v1beta2.Con if label == nil { label = labels.Everything() } - list := &v1beta2.ControllerRevisionList{} + list := &v1beta2.ControllerRevisionList{ListMeta: obj.(*v1beta2.ControllerRevisionList).ListMeta} for _, item := range obj.(*v1beta2.ControllerRevisionList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) @@ -119,7 +119,7 @@ func (c *FakeControllerRevisions) DeleteCollection(options *v1.DeleteOptions, li // Patch applies the patch and returns the patched controllerRevision. func (c *FakeControllerRevisions) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta2.ControllerRevision, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(controllerrevisionsResource, c.ns, name, data, subresources...), &v1beta2.ControllerRevision{}) + Invokes(testing.NewPatchSubresourceAction(controllerrevisionsResource, c.ns, name, pt, data, subresources...), &v1beta2.ControllerRevision{}) if obj == nil { return nil, err diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_daemonset.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_daemonset.go index 3576b8427..b50747fdc 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_daemonset.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_daemonset.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -62,7 +62,7 @@ func (c *FakeDaemonSets) List(opts v1.ListOptions) (result *v1beta2.DaemonSetLis if label == nil { label = labels.Everything() } - list := &v1beta2.DaemonSetList{} + list := &v1beta2.DaemonSetList{ListMeta: obj.(*v1beta2.DaemonSetList).ListMeta} for _, item := range obj.(*v1beta2.DaemonSetList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) @@ -131,7 +131,7 @@ func (c *FakeDaemonSets) DeleteCollection(options *v1.DeleteOptions, listOptions // Patch applies the patch and returns the patched daemonSet. func (c *FakeDaemonSets) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta2.DaemonSet, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(daemonsetsResource, c.ns, name, data, subresources...), &v1beta2.DaemonSet{}) + Invokes(testing.NewPatchSubresourceAction(daemonsetsResource, c.ns, name, pt, data, subresources...), &v1beta2.DaemonSet{}) if obj == nil { return nil, err diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_deployment.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_deployment.go index 1f654a3cc..b74d24ed7 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_deployment.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_deployment.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -62,7 +62,7 @@ func (c *FakeDeployments) List(opts v1.ListOptions) (result *v1beta2.DeploymentL if label == nil { label = labels.Everything() } - list := &v1beta2.DeploymentList{} + list := &v1beta2.DeploymentList{ListMeta: obj.(*v1beta2.DeploymentList).ListMeta} for _, item := range obj.(*v1beta2.DeploymentList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) @@ -131,7 +131,7 @@ func (c *FakeDeployments) DeleteCollection(options *v1.DeleteOptions, listOption // Patch applies the patch and returns the patched deployment. func (c *FakeDeployments) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta2.Deployment, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(deploymentsResource, c.ns, name, data, subresources...), &v1beta2.Deployment{}) + Invokes(testing.NewPatchSubresourceAction(deploymentsResource, c.ns, name, pt, data, subresources...), &v1beta2.Deployment{}) if obj == nil { return nil, err diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_replicaset.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_replicaset.go index f8e69a3a3..ba1de33ec 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_replicaset.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_replicaset.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -62,7 +62,7 @@ func (c *FakeReplicaSets) List(opts v1.ListOptions) (result *v1beta2.ReplicaSetL if label == nil { label = labels.Everything() } - list := &v1beta2.ReplicaSetList{} + list := &v1beta2.ReplicaSetList{ListMeta: obj.(*v1beta2.ReplicaSetList).ListMeta} for _, item := range obj.(*v1beta2.ReplicaSetList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) @@ -131,7 +131,7 @@ func (c *FakeReplicaSets) DeleteCollection(options *v1.DeleteOptions, listOption // Patch applies the patch and returns the patched replicaSet. func (c *FakeReplicaSets) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta2.ReplicaSet, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(replicasetsResource, c.ns, name, data, subresources...), &v1beta2.ReplicaSet{}) + Invokes(testing.NewPatchSubresourceAction(replicasetsResource, c.ns, name, pt, data, subresources...), &v1beta2.ReplicaSet{}) if obj == nil { return nil, err diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_statefulset.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_statefulset.go index 0413428eb..652c7cbc5 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_statefulset.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_statefulset.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -62,7 +62,7 @@ func (c *FakeStatefulSets) List(opts v1.ListOptions) (result *v1beta2.StatefulSe if label == nil { label = labels.Everything() } - list := &v1beta2.StatefulSetList{} + list := &v1beta2.StatefulSetList{ListMeta: obj.(*v1beta2.StatefulSetList).ListMeta} for _, item := range obj.(*v1beta2.StatefulSetList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) @@ -131,7 +131,7 @@ func (c *FakeStatefulSets) DeleteCollection(options *v1.DeleteOptions, listOptio // Patch applies the patch and returns the patched statefulSet. func (c *FakeStatefulSets) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta2.StatefulSet, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(statefulsetsResource, c.ns, name, data, subresources...), &v1beta2.StatefulSet{}) + Invokes(testing.NewPatchSubresourceAction(statefulsetsResource, c.ns, name, pt, data, subresources...), &v1beta2.StatefulSet{}) if obj == nil { return nil, err diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/generated_expansion.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/generated_expansion.go index a88e1721f..6a2174968 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/generated_expansion.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/generated_expansion.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -26,6 +26,4 @@ type DeploymentExpansion interface{} type ReplicaSetExpansion interface{} -type ScaleExpansion interface{} - type StatefulSetExpansion interface{} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/replicaset.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/replicaset.go index 298ec26a2..7b738774b 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/replicaset.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/replicaset.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,6 +19,8 @@ limitations under the License. package v1beta2 import ( + "time" + v1beta2 "k8s.io/api/apps/v1beta2" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" @@ -76,11 +78,16 @@ func (c *replicaSets) Get(name string, options v1.GetOptions) (result *v1beta2.R // List takes label and field selectors, and returns the list of ReplicaSets that match those selectors. func (c *replicaSets) List(opts v1.ListOptions) (result *v1beta2.ReplicaSetList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1beta2.ReplicaSetList{} err = c.client.Get(). Namespace(c.ns). Resource("replicasets"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return @@ -88,11 +95,16 @@ func (c *replicaSets) List(opts v1.ListOptions) (result *v1beta2.ReplicaSetList, // Watch returns a watch.Interface that watches the requested replicaSets. func (c *replicaSets) Watch(opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Namespace(c.ns). Resource("replicasets"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -150,10 +162,15 @@ func (c *replicaSets) Delete(name string, options *v1.DeleteOptions) error { // DeleteCollection deletes a collection of objects. func (c *replicaSets) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Namespace(c.ns). Resource("replicasets"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/statefulset.go b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/statefulset.go index 64b7c8c8f..de7c3db8b 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/statefulset.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/statefulset.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,6 +19,8 @@ limitations under the License. package v1beta2 import ( + "time" + v1beta2 "k8s.io/api/apps/v1beta2" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" @@ -79,11 +81,16 @@ func (c *statefulSets) Get(name string, options v1.GetOptions) (result *v1beta2. // List takes label and field selectors, and returns the list of StatefulSets that match those selectors. func (c *statefulSets) List(opts v1.ListOptions) (result *v1beta2.StatefulSetList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1beta2.StatefulSetList{} err = c.client.Get(). Namespace(c.ns). Resource("statefulsets"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return @@ -91,11 +98,16 @@ func (c *statefulSets) List(opts v1.ListOptions) (result *v1beta2.StatefulSetLis // Watch returns a watch.Interface that watches the requested statefulSets. func (c *statefulSets) Watch(opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Namespace(c.ns). Resource("statefulsets"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -153,10 +165,15 @@ func (c *statefulSets) Delete(name string, options *v1.DeleteOptions) error { // DeleteCollection deletes a collection of objects. func (c *statefulSets) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Namespace(c.ns). Resource("statefulsets"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/auditregistration/v1alpha1/auditregistration_client.go b/vendor/k8s.io/client-go/kubernetes/typed/auditregistration/v1alpha1/auditregistration_client.go new file mode 100644 index 000000000..f007b05ef --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes/typed/auditregistration/v1alpha1/auditregistration_client.go @@ -0,0 +1,90 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + v1alpha1 "k8s.io/api/auditregistration/v1alpha1" + serializer "k8s.io/apimachinery/pkg/runtime/serializer" + "k8s.io/client-go/kubernetes/scheme" + rest "k8s.io/client-go/rest" +) + +type AuditregistrationV1alpha1Interface interface { + RESTClient() rest.Interface + AuditSinksGetter +} + +// AuditregistrationV1alpha1Client is used to interact with features provided by the auditregistration.k8s.io group. +type AuditregistrationV1alpha1Client struct { + restClient rest.Interface +} + +func (c *AuditregistrationV1alpha1Client) AuditSinks() AuditSinkInterface { + return newAuditSinks(c) +} + +// NewForConfig creates a new AuditregistrationV1alpha1Client for the given config. +func NewForConfig(c *rest.Config) (*AuditregistrationV1alpha1Client, error) { + config := *c + if err := setConfigDefaults(&config); err != nil { + return nil, err + } + client, err := rest.RESTClientFor(&config) + if err != nil { + return nil, err + } + return &AuditregistrationV1alpha1Client{client}, nil +} + +// NewForConfigOrDie creates a new AuditregistrationV1alpha1Client for the given config and +// panics if there is an error in the config. +func NewForConfigOrDie(c *rest.Config) *AuditregistrationV1alpha1Client { + client, err := NewForConfig(c) + if err != nil { + panic(err) + } + return client +} + +// New creates a new AuditregistrationV1alpha1Client for the given RESTClient. +func New(c rest.Interface) *AuditregistrationV1alpha1Client { + return &AuditregistrationV1alpha1Client{c} +} + +func setConfigDefaults(config *rest.Config) error { + gv := v1alpha1.SchemeGroupVersion + config.GroupVersion = &gv + config.APIPath = "/apis" + config.NegotiatedSerializer = serializer.DirectCodecFactory{CodecFactory: scheme.Codecs} + + if config.UserAgent == "" { + config.UserAgent = rest.DefaultKubernetesUserAgent() + } + + return nil +} + +// RESTClient returns a RESTClient that is used to communicate +// with API server by this client implementation. +func (c *AuditregistrationV1alpha1Client) RESTClient() rest.Interface { + if c == nil { + return nil + } + return c.restClient +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/auditregistration/v1alpha1/auditsink.go b/vendor/k8s.io/client-go/kubernetes/typed/auditregistration/v1alpha1/auditsink.go new file mode 100644 index 000000000..414d48006 --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes/typed/auditregistration/v1alpha1/auditsink.go @@ -0,0 +1,164 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + "time" + + v1alpha1 "k8s.io/api/auditregistration/v1alpha1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + scheme "k8s.io/client-go/kubernetes/scheme" + rest "k8s.io/client-go/rest" +) + +// AuditSinksGetter has a method to return a AuditSinkInterface. +// A group's client should implement this interface. +type AuditSinksGetter interface { + AuditSinks() AuditSinkInterface +} + +// AuditSinkInterface has methods to work with AuditSink resources. +type AuditSinkInterface interface { + Create(*v1alpha1.AuditSink) (*v1alpha1.AuditSink, error) + Update(*v1alpha1.AuditSink) (*v1alpha1.AuditSink, error) + Delete(name string, options *v1.DeleteOptions) error + DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error + Get(name string, options v1.GetOptions) (*v1alpha1.AuditSink, error) + List(opts v1.ListOptions) (*v1alpha1.AuditSinkList, error) + Watch(opts v1.ListOptions) (watch.Interface, error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.AuditSink, err error) + AuditSinkExpansion +} + +// auditSinks implements AuditSinkInterface +type auditSinks struct { + client rest.Interface +} + +// newAuditSinks returns a AuditSinks +func newAuditSinks(c *AuditregistrationV1alpha1Client) *auditSinks { + return &auditSinks{ + client: c.RESTClient(), + } +} + +// Get takes name of the auditSink, and returns the corresponding auditSink object, and an error if there is any. +func (c *auditSinks) Get(name string, options v1.GetOptions) (result *v1alpha1.AuditSink, err error) { + result = &v1alpha1.AuditSink{} + err = c.client.Get(). + Resource("auditsinks"). + Name(name). + VersionedParams(&options, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// List takes label and field selectors, and returns the list of AuditSinks that match those selectors. +func (c *auditSinks) List(opts v1.ListOptions) (result *v1alpha1.AuditSinkList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } + result = &v1alpha1.AuditSinkList{} + err = c.client.Get(). + Resource("auditsinks"). + VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). + Do(). + Into(result) + return +} + +// Watch returns a watch.Interface that watches the requested auditSinks. +func (c *auditSinks) Watch(opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } + opts.Watch = true + return c.client.Get(). + Resource("auditsinks"). + VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). + Watch() +} + +// Create takes the representation of a auditSink and creates it. Returns the server's representation of the auditSink, and an error, if there is any. +func (c *auditSinks) Create(auditSink *v1alpha1.AuditSink) (result *v1alpha1.AuditSink, err error) { + result = &v1alpha1.AuditSink{} + err = c.client.Post(). + Resource("auditsinks"). + Body(auditSink). + Do(). + Into(result) + return +} + +// Update takes the representation of a auditSink and updates it. Returns the server's representation of the auditSink, and an error, if there is any. +func (c *auditSinks) Update(auditSink *v1alpha1.AuditSink) (result *v1alpha1.AuditSink, err error) { + result = &v1alpha1.AuditSink{} + err = c.client.Put(). + Resource("auditsinks"). + Name(auditSink.Name). + Body(auditSink). + Do(). + Into(result) + return +} + +// Delete takes name of the auditSink and deletes it. Returns an error if one occurs. +func (c *auditSinks) Delete(name string, options *v1.DeleteOptions) error { + return c.client.Delete(). + Resource("auditsinks"). + Name(name). + Body(options). + Do(). + Error() +} + +// DeleteCollection deletes a collection of objects. +func (c *auditSinks) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } + return c.client.Delete(). + Resource("auditsinks"). + VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). + Body(options). + Do(). + Error() +} + +// Patch applies the patch and returns the patched auditSink. +func (c *auditSinks) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.AuditSink, err error) { + result = &v1alpha1.AuditSink{} + err = c.client.Patch(pt). + Resource("auditsinks"). + SubResource(subresources...). + Name(name). + Body(data). + Do(). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/auditregistration/v1alpha1/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/auditregistration/v1alpha1/doc.go new file mode 100644 index 000000000..df51baa4d --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes/typed/auditregistration/v1alpha1/doc.go @@ -0,0 +1,20 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +// This package has the automatically generated typed clients. +package v1alpha1 diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_scale.go b/vendor/k8s.io/client-go/kubernetes/typed/auditregistration/v1alpha1/fake/doc.go similarity index 80% rename from vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_scale.go rename to vendor/k8s.io/client-go/kubernetes/typed/auditregistration/v1alpha1/fake/doc.go index fb5eb5c59..16f443990 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_scale.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/auditregistration/v1alpha1/fake/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -16,10 +16,5 @@ limitations under the License. // Code generated by client-gen. DO NOT EDIT. +// Package fake has the automatically generated clients. package fake - -// FakeScales implements ScaleInterface -type FakeScales struct { - Fake *FakeAppsV1beta2 - ns string -} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/scale.go b/vendor/k8s.io/client-go/kubernetes/typed/auditregistration/v1alpha1/fake/fake_auditregistration_client.go similarity index 51% rename from vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/scale.go rename to vendor/k8s.io/client-go/kubernetes/typed/auditregistration/v1alpha1/fake/fake_auditregistration_client.go index e8c507326..c22acabcf 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/scale.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/auditregistration/v1alpha1/fake/fake_auditregistration_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -16,33 +16,25 @@ limitations under the License. // Code generated by client-gen. DO NOT EDIT. -package v1beta1 +package fake import ( + v1alpha1 "k8s.io/client-go/kubernetes/typed/auditregistration/v1alpha1" rest "k8s.io/client-go/rest" + testing "k8s.io/client-go/testing" ) -// ScalesGetter has a method to return a ScaleInterface. -// A group's client should implement this interface. -type ScalesGetter interface { - Scales(namespace string) ScaleInterface +type FakeAuditregistrationV1alpha1 struct { + *testing.Fake } -// ScaleInterface has methods to work with Scale resources. -type ScaleInterface interface { - ScaleExpansion +func (c *FakeAuditregistrationV1alpha1) AuditSinks() v1alpha1.AuditSinkInterface { + return &FakeAuditSinks{c} } -// scales implements ScaleInterface -type scales struct { - client rest.Interface - ns string -} - -// newScales returns a Scales -func newScales(c *AppsV1beta1Client, namespace string) *scales { - return &scales{ - client: c.RESTClient(), - ns: namespace, - } +// RESTClient returns a RESTClient that is used to communicate +// with API server by this client implementation. +func (c *FakeAuditregistrationV1alpha1) RESTClient() rest.Interface { + var ret *rest.RESTClient + return ret } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/auditregistration/v1alpha1/fake/fake_auditsink.go b/vendor/k8s.io/client-go/kubernetes/typed/auditregistration/v1alpha1/fake/fake_auditsink.go new file mode 100644 index 000000000..d0bb9fd00 --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes/typed/auditregistration/v1alpha1/fake/fake_auditsink.go @@ -0,0 +1,120 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package fake + +import ( + v1alpha1 "k8s.io/api/auditregistration/v1alpha1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + labels "k8s.io/apimachinery/pkg/labels" + schema "k8s.io/apimachinery/pkg/runtime/schema" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + testing "k8s.io/client-go/testing" +) + +// FakeAuditSinks implements AuditSinkInterface +type FakeAuditSinks struct { + Fake *FakeAuditregistrationV1alpha1 +} + +var auditsinksResource = schema.GroupVersionResource{Group: "auditregistration.k8s.io", Version: "v1alpha1", Resource: "auditsinks"} + +var auditsinksKind = schema.GroupVersionKind{Group: "auditregistration.k8s.io", Version: "v1alpha1", Kind: "AuditSink"} + +// Get takes name of the auditSink, and returns the corresponding auditSink object, and an error if there is any. +func (c *FakeAuditSinks) Get(name string, options v1.GetOptions) (result *v1alpha1.AuditSink, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootGetAction(auditsinksResource, name), &v1alpha1.AuditSink{}) + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.AuditSink), err +} + +// List takes label and field selectors, and returns the list of AuditSinks that match those selectors. +func (c *FakeAuditSinks) List(opts v1.ListOptions) (result *v1alpha1.AuditSinkList, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootListAction(auditsinksResource, auditsinksKind, opts), &v1alpha1.AuditSinkList{}) + if obj == nil { + return nil, err + } + + label, _, _ := testing.ExtractFromListOptions(opts) + if label == nil { + label = labels.Everything() + } + list := &v1alpha1.AuditSinkList{ListMeta: obj.(*v1alpha1.AuditSinkList).ListMeta} + for _, item := range obj.(*v1alpha1.AuditSinkList).Items { + if label.Matches(labels.Set(item.Labels)) { + list.Items = append(list.Items, item) + } + } + return list, err +} + +// Watch returns a watch.Interface that watches the requested auditSinks. +func (c *FakeAuditSinks) Watch(opts v1.ListOptions) (watch.Interface, error) { + return c.Fake. + InvokesWatch(testing.NewRootWatchAction(auditsinksResource, opts)) +} + +// Create takes the representation of a auditSink and creates it. Returns the server's representation of the auditSink, and an error, if there is any. +func (c *FakeAuditSinks) Create(auditSink *v1alpha1.AuditSink) (result *v1alpha1.AuditSink, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootCreateAction(auditsinksResource, auditSink), &v1alpha1.AuditSink{}) + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.AuditSink), err +} + +// Update takes the representation of a auditSink and updates it. Returns the server's representation of the auditSink, and an error, if there is any. +func (c *FakeAuditSinks) Update(auditSink *v1alpha1.AuditSink) (result *v1alpha1.AuditSink, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootUpdateAction(auditsinksResource, auditSink), &v1alpha1.AuditSink{}) + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.AuditSink), err +} + +// Delete takes name of the auditSink and deletes it. Returns an error if one occurs. +func (c *FakeAuditSinks) Delete(name string, options *v1.DeleteOptions) error { + _, err := c.Fake. + Invokes(testing.NewRootDeleteAction(auditsinksResource, name), &v1alpha1.AuditSink{}) + return err +} + +// DeleteCollection deletes a collection of objects. +func (c *FakeAuditSinks) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + action := testing.NewRootDeleteCollectionAction(auditsinksResource, listOptions) + + _, err := c.Fake.Invokes(action, &v1alpha1.AuditSinkList{}) + return err +} + +// Patch applies the patch and returns the patched auditSink. +func (c *FakeAuditSinks) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.AuditSink, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(auditsinksResource, name, pt, data, subresources...), &v1alpha1.AuditSink{}) + if obj == nil { + return nil, err + } + return obj.(*v1alpha1.AuditSink), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/auditregistration/v1alpha1/generated_expansion.go b/vendor/k8s.io/client-go/kubernetes/typed/auditregistration/v1alpha1/generated_expansion.go new file mode 100644 index 000000000..f0f511726 --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes/typed/auditregistration/v1alpha1/generated_expansion.go @@ -0,0 +1,21 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package v1alpha1 + +type AuditSinkExpansion interface{} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authentication/OWNERS b/vendor/k8s.io/client-go/kubernetes/typed/authentication/OWNERS new file mode 100644 index 000000000..c607d2aa8 --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes/typed/authentication/OWNERS @@ -0,0 +1,7 @@ +approvers: +- sig-auth-authenticators-approvers +reviewers: +- sig-auth-authenticators-reviewers +labels: +- sig/auth + diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/BUILD deleted file mode 100644 index b89498dea..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/BUILD +++ /dev/null @@ -1,40 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "authentication_client.go", - "doc.go", - "generated_expansion.go", - "tokenreview.go", - "tokenreview_expansion.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/authentication/v1", - deps = [ - "//vendor/k8s.io/api/authentication/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/authentication/v1/fake:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/authentication_client.go b/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/authentication_client.go index 25b86152d..3bdcee598 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/authentication_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/authentication_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/doc.go index d007a2903..3af5d054f 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/fake/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/fake/BUILD deleted file mode 100644 index b2c995baf..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/fake/BUILD +++ /dev/null @@ -1,36 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "fake_authentication_client.go", - "fake_tokenreview.go", - "fake_tokenreview_expansion.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/authentication/v1/fake", - deps = [ - "//vendor/k8s.io/api/authentication/v1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/authentication/v1:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/testing:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/fake/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/fake/doc.go index 87a1873ed..16f443990 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/fake/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/fake/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/fake/fake_authentication_client.go b/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/fake/fake_authentication_client.go index 93a0633e8..ee06a6cdd 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/fake/fake_authentication_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/fake/fake_authentication_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/fake/fake_tokenreview.go b/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/fake/fake_tokenreview.go index d98aa03d8..e2a7f72b6 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/fake/fake_tokenreview.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/fake/fake_tokenreview.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/generated_expansion.go b/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/generated_expansion.go index 7c92b9147..177209ec6 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/generated_expansion.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/generated_expansion.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/tokenreview.go b/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/tokenreview.go index 88f759f2b..25a8d6a17 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/tokenreview.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/tokenreview.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/BUILD deleted file mode 100644 index ddbe7e984..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/BUILD +++ /dev/null @@ -1,40 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "authentication_client.go", - "doc.go", - "generated_expansion.go", - "tokenreview.go", - "tokenreview_expansion.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/authentication/v1beta1", - deps = [ - "//vendor/k8s.io/api/authentication/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/fake:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/authentication_client.go b/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/authentication_client.go index 744c26c9e..7f3334a0c 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/authentication_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/authentication_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/doc.go index 11ae7049d..771101956 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/fake/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/fake/BUILD deleted file mode 100644 index b9800aac7..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/fake/BUILD +++ /dev/null @@ -1,36 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "fake_authentication_client.go", - "fake_tokenreview.go", - "fake_tokenreview_expansion.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/authentication/v1beta1/fake", - deps = [ - "//vendor/k8s.io/api/authentication/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/testing:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/fake/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/fake/doc.go index 87a1873ed..16f443990 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/fake/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/fake/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/fake/fake_authentication_client.go b/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/fake/fake_authentication_client.go index abc1fedd1..7299653ca 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/fake/fake_authentication_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/fake/fake_authentication_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/fake/fake_tokenreview.go b/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/fake/fake_tokenreview.go index c7c3e5631..63b6b6a85 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/fake/fake_tokenreview.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/fake/fake_tokenreview.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/generated_expansion.go b/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/generated_expansion.go index 7fd68c803..f6df76963 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/generated_expansion.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/generated_expansion.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/tokenreview.go b/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/tokenreview.go index fa611825e..0ac3561e1 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/tokenreview.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/tokenreview.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authorization/OWNERS b/vendor/k8s.io/client-go/kubernetes/typed/authorization/OWNERS new file mode 100644 index 000000000..cd0d70a0f --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes/typed/authorization/OWNERS @@ -0,0 +1,7 @@ +approvers: +- sig-auth-authorizers-approvers +reviewers: +- sig-auth-authorizers-reviewers +labels: +- sig/auth + diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/BUILD deleted file mode 100644 index f6255f38c..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/BUILD +++ /dev/null @@ -1,46 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "authorization_client.go", - "doc.go", - "generated_expansion.go", - "localsubjectaccessreview.go", - "localsubjectaccessreview_expansion.go", - "selfsubjectaccessreview.go", - "selfsubjectaccessreview_expansion.go", - "selfsubjectrulesreview.go", - "selfsubjectrulesreview_expansion.go", - "subjectaccessreview.go", - "subjectaccessreview_expansion.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/authorization/v1", - deps = [ - "//vendor/k8s.io/api/authorization/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/authorization/v1/fake:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/authorization_client.go b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/authorization_client.go index 852720f34..e84b90084 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/authorization_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/authorization_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/doc.go index d007a2903..3af5d054f 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/BUILD deleted file mode 100644 index cfea68c78..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/BUILD +++ /dev/null @@ -1,42 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "fake_authorization_client.go", - "fake_localsubjectaccessreview.go", - "fake_localsubjectaccessreview_expansion.go", - "fake_selfsubjectaccessreview.go", - "fake_selfsubjectaccessreview_expansion.go", - "fake_selfsubjectrulesreview.go", - "fake_selfsubjectrulesreview_expansion.go", - "fake_subjectaccessreview.go", - "fake_subjectaccessreview_expansion.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/authorization/v1/fake", - deps = [ - "//vendor/k8s.io/api/authorization/v1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/authorization/v1:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/testing:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/doc.go index 87a1873ed..16f443990 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/fake_authorization_client.go b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/fake_authorization_client.go index 5db9b9f34..f7e823450 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/fake_authorization_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/fake_authorization_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/fake_localsubjectaccessreview.go b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/fake_localsubjectaccessreview.go index 5f1aab8a4..778ba9cea 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/fake_localsubjectaccessreview.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/fake_localsubjectaccessreview.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/fake_selfsubjectaccessreview.go b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/fake_selfsubjectaccessreview.go index 7e466e1ec..a43a980ba 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/fake_selfsubjectaccessreview.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/fake_selfsubjectaccessreview.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/fake_selfsubjectrulesreview.go b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/fake_selfsubjectrulesreview.go index 82c1ac9cf..243f2e89e 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/fake_selfsubjectrulesreview.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/fake_selfsubjectrulesreview.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/fake_subjectaccessreview.go b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/fake_subjectaccessreview.go index cbc440e71..d07e56254 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/fake_subjectaccessreview.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/fake_subjectaccessreview.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/fake_subjectaccessreview_expansion.go b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/fake_subjectaccessreview_expansion.go index 7ddc58ff4..a2a2f0697 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/fake_subjectaccessreview_expansion.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/fake_subjectaccessreview_expansion.go @@ -23,5 +23,8 @@ import ( func (c *FakeSubjectAccessReviews) Create(sar *authorizationapi.SubjectAccessReview) (result *authorizationapi.SubjectAccessReview, err error) { obj, err := c.Fake.Invokes(core.NewRootCreateAction(authorizationapi.SchemeGroupVersion.WithResource("subjectaccessreviews"), sar), &authorizationapi.SubjectAccessReview{}) + if obj == nil { + return nil, err + } return obj.(*authorizationapi.SubjectAccessReview), err } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/generated_expansion.go b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/generated_expansion.go index 7c92b9147..177209ec6 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/generated_expansion.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/generated_expansion.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/localsubjectaccessreview.go b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/localsubjectaccessreview.go index 20461f132..0292c7861 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/localsubjectaccessreview.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/localsubjectaccessreview.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/selfsubjectaccessreview.go b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/selfsubjectaccessreview.go index 202e7c90d..1e3a45817 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/selfsubjectaccessreview.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/selfsubjectaccessreview.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/selfsubjectrulesreview.go b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/selfsubjectrulesreview.go index 5fb1cab5c..50a0233eb 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/selfsubjectrulesreview.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/selfsubjectrulesreview.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/subjectaccessreview.go b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/subjectaccessreview.go index 881641494..9c09008c3 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/subjectaccessreview.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/subjectaccessreview.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/BUILD deleted file mode 100644 index 793ec39b5..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/BUILD +++ /dev/null @@ -1,46 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "authorization_client.go", - "doc.go", - "generated_expansion.go", - "localsubjectaccessreview.go", - "localsubjectaccessreview_expansion.go", - "selfsubjectaccessreview.go", - "selfsubjectaccessreview_expansion.go", - "selfsubjectrulesreview.go", - "selfsubjectrulesreview_expansion.go", - "subjectaccessreview.go", - "subjectaccessreview_expansion.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/authorization/v1beta1", - deps = [ - "//vendor/k8s.io/api/authorization/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/authorization_client.go b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/authorization_client.go index cbe5bdcee..7f236f6e3 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/authorization_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/authorization_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/doc.go index 11ae7049d..771101956 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake/BUILD deleted file mode 100644 index d3fd9e81b..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake/BUILD +++ /dev/null @@ -1,43 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "fake_authorization_client.go", - "fake_generated_expansion.go", - "fake_localsubjectaccessreview.go", - "fake_localsubjectaccessreview_expansion.go", - "fake_selfsubjectaccessreview.go", - "fake_selfsubjectaccessreview_expansion.go", - "fake_selfsubjectrulesreview.go", - "fake_selfsubjectrulesreview_expansion.go", - "fake_subjectaccessreview.go", - "fake_subjectaccessreview_expansion.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake", - deps = [ - "//vendor/k8s.io/api/authorization/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/testing:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake/doc.go index 87a1873ed..16f443990 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake/fake_authorization_client.go b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake/fake_authorization_client.go index 7c3fc1746..8e328a57b 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake/fake_authorization_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake/fake_authorization_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake/fake_localsubjectaccessreview.go b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake/fake_localsubjectaccessreview.go index c7949a7df..d02d05e5d 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake/fake_localsubjectaccessreview.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake/fake_localsubjectaccessreview.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake/fake_selfsubjectaccessreview.go b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake/fake_selfsubjectaccessreview.go index 20904d179..8f98ce7a3 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake/fake_selfsubjectaccessreview.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake/fake_selfsubjectaccessreview.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake/fake_selfsubjectrulesreview.go b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake/fake_selfsubjectrulesreview.go index 2acd5f279..d8466b4c8 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake/fake_selfsubjectrulesreview.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake/fake_selfsubjectrulesreview.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake/fake_subjectaccessreview.go b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake/fake_subjectaccessreview.go index 218ed3d8f..0d0abdb72 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake/fake_subjectaccessreview.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake/fake_subjectaccessreview.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/generated_expansion.go b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/generated_expansion.go index 7fd68c803..f6df76963 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/generated_expansion.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/generated_expansion.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/localsubjectaccessreview.go b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/localsubjectaccessreview.go index 8029837f9..f5e86a76a 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/localsubjectaccessreview.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/localsubjectaccessreview.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/selfsubjectaccessreview.go b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/selfsubjectaccessreview.go index 36feb1530..906712cc3 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/selfsubjectaccessreview.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/selfsubjectaccessreview.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/selfsubjectrulesreview.go b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/selfsubjectrulesreview.go index 57079c8d9..56c0f99d4 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/selfsubjectrulesreview.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/selfsubjectrulesreview.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/subjectaccessreview.go b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/subjectaccessreview.go index d91fa87ec..79f1ec535 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/subjectaccessreview.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/subjectaccessreview.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/BUILD deleted file mode 100644 index 30e434a68..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/BUILD +++ /dev/null @@ -1,42 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "autoscaling_client.go", - "doc.go", - "generated_expansion.go", - "horizontalpodautoscaler.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/autoscaling/v1", - deps = [ - "//vendor/k8s.io/api/autoscaling/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v1/fake:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/autoscaling_client.go b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/autoscaling_client.go index b336bbd39..2bd49e2db 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/autoscaling_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/autoscaling_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/doc.go index d007a2903..3af5d054f 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/fake/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/fake/BUILD deleted file mode 100644 index 3cabf19c5..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/fake/BUILD +++ /dev/null @@ -1,40 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "fake_autoscaling_client.go", - "fake_horizontalpodautoscaler.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/autoscaling/v1/fake", - deps = [ - "//vendor/k8s.io/api/autoscaling/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/testing:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/fake/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/fake/doc.go index 87a1873ed..16f443990 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/fake/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/fake/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/fake/fake_autoscaling_client.go b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/fake/fake_autoscaling_client.go index 540eb5f5c..99e26fcf3 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/fake/fake_autoscaling_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/fake/fake_autoscaling_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/fake/fake_horizontalpodautoscaler.go b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/fake/fake_horizontalpodautoscaler.go index 532e6f51c..6a4bf9881 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/fake/fake_horizontalpodautoscaler.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/fake/fake_horizontalpodautoscaler.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,7 +19,7 @@ limitations under the License. package fake import ( - autoscaling_v1 "k8s.io/api/autoscaling/v1" + autoscalingv1 "k8s.io/api/autoscaling/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" schema "k8s.io/apimachinery/pkg/runtime/schema" @@ -39,20 +39,20 @@ var horizontalpodautoscalersResource = schema.GroupVersionResource{Group: "autos var horizontalpodautoscalersKind = schema.GroupVersionKind{Group: "autoscaling", Version: "v1", Kind: "HorizontalPodAutoscaler"} // Get takes name of the horizontalPodAutoscaler, and returns the corresponding horizontalPodAutoscaler object, and an error if there is any. -func (c *FakeHorizontalPodAutoscalers) Get(name string, options v1.GetOptions) (result *autoscaling_v1.HorizontalPodAutoscaler, err error) { +func (c *FakeHorizontalPodAutoscalers) Get(name string, options v1.GetOptions) (result *autoscalingv1.HorizontalPodAutoscaler, err error) { obj, err := c.Fake. - Invokes(testing.NewGetAction(horizontalpodautoscalersResource, c.ns, name), &autoscaling_v1.HorizontalPodAutoscaler{}) + Invokes(testing.NewGetAction(horizontalpodautoscalersResource, c.ns, name), &autoscalingv1.HorizontalPodAutoscaler{}) if obj == nil { return nil, err } - return obj.(*autoscaling_v1.HorizontalPodAutoscaler), err + return obj.(*autoscalingv1.HorizontalPodAutoscaler), err } // List takes label and field selectors, and returns the list of HorizontalPodAutoscalers that match those selectors. -func (c *FakeHorizontalPodAutoscalers) List(opts v1.ListOptions) (result *autoscaling_v1.HorizontalPodAutoscalerList, err error) { +func (c *FakeHorizontalPodAutoscalers) List(opts v1.ListOptions) (result *autoscalingv1.HorizontalPodAutoscalerList, err error) { obj, err := c.Fake. - Invokes(testing.NewListAction(horizontalpodautoscalersResource, horizontalpodautoscalersKind, c.ns, opts), &autoscaling_v1.HorizontalPodAutoscalerList{}) + Invokes(testing.NewListAction(horizontalpodautoscalersResource, horizontalpodautoscalersKind, c.ns, opts), &autoscalingv1.HorizontalPodAutoscalerList{}) if obj == nil { return nil, err @@ -62,8 +62,8 @@ func (c *FakeHorizontalPodAutoscalers) List(opts v1.ListOptions) (result *autosc if label == nil { label = labels.Everything() } - list := &autoscaling_v1.HorizontalPodAutoscalerList{} - for _, item := range obj.(*autoscaling_v1.HorizontalPodAutoscalerList).Items { + list := &autoscalingv1.HorizontalPodAutoscalerList{ListMeta: obj.(*autoscalingv1.HorizontalPodAutoscalerList).ListMeta} + for _, item := range obj.(*autoscalingv1.HorizontalPodAutoscalerList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) } @@ -79,43 +79,43 @@ func (c *FakeHorizontalPodAutoscalers) Watch(opts v1.ListOptions) (watch.Interfa } // Create takes the representation of a horizontalPodAutoscaler and creates it. Returns the server's representation of the horizontalPodAutoscaler, and an error, if there is any. -func (c *FakeHorizontalPodAutoscalers) Create(horizontalPodAutoscaler *autoscaling_v1.HorizontalPodAutoscaler) (result *autoscaling_v1.HorizontalPodAutoscaler, err error) { +func (c *FakeHorizontalPodAutoscalers) Create(horizontalPodAutoscaler *autoscalingv1.HorizontalPodAutoscaler) (result *autoscalingv1.HorizontalPodAutoscaler, err error) { obj, err := c.Fake. - Invokes(testing.NewCreateAction(horizontalpodautoscalersResource, c.ns, horizontalPodAutoscaler), &autoscaling_v1.HorizontalPodAutoscaler{}) + Invokes(testing.NewCreateAction(horizontalpodautoscalersResource, c.ns, horizontalPodAutoscaler), &autoscalingv1.HorizontalPodAutoscaler{}) if obj == nil { return nil, err } - return obj.(*autoscaling_v1.HorizontalPodAutoscaler), err + return obj.(*autoscalingv1.HorizontalPodAutoscaler), err } // Update takes the representation of a horizontalPodAutoscaler and updates it. Returns the server's representation of the horizontalPodAutoscaler, and an error, if there is any. -func (c *FakeHorizontalPodAutoscalers) Update(horizontalPodAutoscaler *autoscaling_v1.HorizontalPodAutoscaler) (result *autoscaling_v1.HorizontalPodAutoscaler, err error) { +func (c *FakeHorizontalPodAutoscalers) Update(horizontalPodAutoscaler *autoscalingv1.HorizontalPodAutoscaler) (result *autoscalingv1.HorizontalPodAutoscaler, err error) { obj, err := c.Fake. - Invokes(testing.NewUpdateAction(horizontalpodautoscalersResource, c.ns, horizontalPodAutoscaler), &autoscaling_v1.HorizontalPodAutoscaler{}) + Invokes(testing.NewUpdateAction(horizontalpodautoscalersResource, c.ns, horizontalPodAutoscaler), &autoscalingv1.HorizontalPodAutoscaler{}) if obj == nil { return nil, err } - return obj.(*autoscaling_v1.HorizontalPodAutoscaler), err + return obj.(*autoscalingv1.HorizontalPodAutoscaler), err } // UpdateStatus was generated because the type contains a Status member. // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *FakeHorizontalPodAutoscalers) UpdateStatus(horizontalPodAutoscaler *autoscaling_v1.HorizontalPodAutoscaler) (*autoscaling_v1.HorizontalPodAutoscaler, error) { +func (c *FakeHorizontalPodAutoscalers) UpdateStatus(horizontalPodAutoscaler *autoscalingv1.HorizontalPodAutoscaler) (*autoscalingv1.HorizontalPodAutoscaler, error) { obj, err := c.Fake. - Invokes(testing.NewUpdateSubresourceAction(horizontalpodautoscalersResource, "status", c.ns, horizontalPodAutoscaler), &autoscaling_v1.HorizontalPodAutoscaler{}) + Invokes(testing.NewUpdateSubresourceAction(horizontalpodautoscalersResource, "status", c.ns, horizontalPodAutoscaler), &autoscalingv1.HorizontalPodAutoscaler{}) if obj == nil { return nil, err } - return obj.(*autoscaling_v1.HorizontalPodAutoscaler), err + return obj.(*autoscalingv1.HorizontalPodAutoscaler), err } // Delete takes name of the horizontalPodAutoscaler and deletes it. Returns an error if one occurs. func (c *FakeHorizontalPodAutoscalers) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. - Invokes(testing.NewDeleteAction(horizontalpodautoscalersResource, c.ns, name), &autoscaling_v1.HorizontalPodAutoscaler{}) + Invokes(testing.NewDeleteAction(horizontalpodautoscalersResource, c.ns, name), &autoscalingv1.HorizontalPodAutoscaler{}) return err } @@ -124,17 +124,17 @@ func (c *FakeHorizontalPodAutoscalers) Delete(name string, options *v1.DeleteOpt func (c *FakeHorizontalPodAutoscalers) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { action := testing.NewDeleteCollectionAction(horizontalpodautoscalersResource, c.ns, listOptions) - _, err := c.Fake.Invokes(action, &autoscaling_v1.HorizontalPodAutoscalerList{}) + _, err := c.Fake.Invokes(action, &autoscalingv1.HorizontalPodAutoscalerList{}) return err } // Patch applies the patch and returns the patched horizontalPodAutoscaler. -func (c *FakeHorizontalPodAutoscalers) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *autoscaling_v1.HorizontalPodAutoscaler, err error) { +func (c *FakeHorizontalPodAutoscalers) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *autoscalingv1.HorizontalPodAutoscaler, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(horizontalpodautoscalersResource, c.ns, name, data, subresources...), &autoscaling_v1.HorizontalPodAutoscaler{}) + Invokes(testing.NewPatchSubresourceAction(horizontalpodautoscalersResource, c.ns, name, pt, data, subresources...), &autoscalingv1.HorizontalPodAutoscaler{}) if obj == nil { return nil, err } - return obj.(*autoscaling_v1.HorizontalPodAutoscaler), err + return obj.(*autoscalingv1.HorizontalPodAutoscaler), err } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/generated_expansion.go b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/generated_expansion.go index a5c694ffb..c60028b05 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/generated_expansion.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/generated_expansion.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/horizontalpodautoscaler.go b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/horizontalpodautoscaler.go index 9245e41a2..0e0839fb5 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/horizontalpodautoscaler.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/horizontalpodautoscaler.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,8 +19,10 @@ limitations under the License. package v1 import ( + "time" + v1 "k8s.io/api/autoscaling/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" scheme "k8s.io/client-go/kubernetes/scheme" @@ -38,11 +40,11 @@ type HorizontalPodAutoscalerInterface interface { Create(*v1.HorizontalPodAutoscaler) (*v1.HorizontalPodAutoscaler, error) Update(*v1.HorizontalPodAutoscaler) (*v1.HorizontalPodAutoscaler, error) UpdateStatus(*v1.HorizontalPodAutoscaler) (*v1.HorizontalPodAutoscaler, error) - Delete(name string, options *meta_v1.DeleteOptions) error - DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error - Get(name string, options meta_v1.GetOptions) (*v1.HorizontalPodAutoscaler, error) - List(opts meta_v1.ListOptions) (*v1.HorizontalPodAutoscalerList, error) - Watch(opts meta_v1.ListOptions) (watch.Interface, error) + Delete(name string, options *metav1.DeleteOptions) error + DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error + Get(name string, options metav1.GetOptions) (*v1.HorizontalPodAutoscaler, error) + List(opts metav1.ListOptions) (*v1.HorizontalPodAutoscalerList, error) + Watch(opts metav1.ListOptions) (watch.Interface, error) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.HorizontalPodAutoscaler, err error) HorizontalPodAutoscalerExpansion } @@ -62,7 +64,7 @@ func newHorizontalPodAutoscalers(c *AutoscalingV1Client, namespace string) *hori } // Get takes name of the horizontalPodAutoscaler, and returns the corresponding horizontalPodAutoscaler object, and an error if there is any. -func (c *horizontalPodAutoscalers) Get(name string, options meta_v1.GetOptions) (result *v1.HorizontalPodAutoscaler, err error) { +func (c *horizontalPodAutoscalers) Get(name string, options metav1.GetOptions) (result *v1.HorizontalPodAutoscaler, err error) { result = &v1.HorizontalPodAutoscaler{} err = c.client.Get(). Namespace(c.ns). @@ -75,24 +77,34 @@ func (c *horizontalPodAutoscalers) Get(name string, options meta_v1.GetOptions) } // List takes label and field selectors, and returns the list of HorizontalPodAutoscalers that match those selectors. -func (c *horizontalPodAutoscalers) List(opts meta_v1.ListOptions) (result *v1.HorizontalPodAutoscalerList, err error) { +func (c *horizontalPodAutoscalers) List(opts metav1.ListOptions) (result *v1.HorizontalPodAutoscalerList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1.HorizontalPodAutoscalerList{} err = c.client.Get(). Namespace(c.ns). Resource("horizontalpodautoscalers"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return } // Watch returns a watch.Interface that watches the requested horizontalPodAutoscalers. -func (c *horizontalPodAutoscalers) Watch(opts meta_v1.ListOptions) (watch.Interface, error) { +func (c *horizontalPodAutoscalers) Watch(opts metav1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Namespace(c.ns). Resource("horizontalpodautoscalers"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -138,7 +150,7 @@ func (c *horizontalPodAutoscalers) UpdateStatus(horizontalPodAutoscaler *v1.Hori } // Delete takes name of the horizontalPodAutoscaler and deletes it. Returns an error if one occurs. -func (c *horizontalPodAutoscalers) Delete(name string, options *meta_v1.DeleteOptions) error { +func (c *horizontalPodAutoscalers) Delete(name string, options *metav1.DeleteOptions) error { return c.client.Delete(). Namespace(c.ns). Resource("horizontalpodautoscalers"). @@ -149,11 +161,16 @@ func (c *horizontalPodAutoscalers) Delete(name string, options *meta_v1.DeleteOp } // DeleteCollection deletes a collection of objects. -func (c *horizontalPodAutoscalers) DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error { +func (c *horizontalPodAutoscalers) DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Namespace(c.ns). Resource("horizontalpodautoscalers"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/BUILD deleted file mode 100644 index 1bb145072..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/BUILD +++ /dev/null @@ -1,39 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "autoscaling_client.go", - "doc.go", - "generated_expansion.go", - "horizontalpodautoscaler.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1", - visibility = ["//visibility:public"], - deps = [ - "//vendor/k8s.io/api/autoscaling/v2beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake:all-srcs", - ], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/autoscaling_client.go b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/autoscaling_client.go index 25446452f..3a49b26b3 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/autoscaling_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/autoscaling_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/doc.go index 1f70aedf8..06fd344c0 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake/BUILD deleted file mode 100644 index 6d7d87326..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake/BUILD +++ /dev/null @@ -1,37 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "fake_autoscaling_client.go", - "fake_horizontalpodautoscaler.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake", - visibility = ["//visibility:public"], - deps = [ - "//vendor/k8s.io/api/autoscaling/v2beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/testing:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake/doc.go index 87a1873ed..16f443990 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake/fake_autoscaling_client.go b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake/fake_autoscaling_client.go index 6d3437a23..be8e0f48e 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake/fake_autoscaling_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake/fake_autoscaling_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake/fake_horizontalpodautoscaler.go b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake/fake_horizontalpodautoscaler.go index 549196c5e..514a787cb 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake/fake_horizontalpodautoscaler.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake/fake_horizontalpodautoscaler.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -62,7 +62,7 @@ func (c *FakeHorizontalPodAutoscalers) List(opts v1.ListOptions) (result *v2beta if label == nil { label = labels.Everything() } - list := &v2beta1.HorizontalPodAutoscalerList{} + list := &v2beta1.HorizontalPodAutoscalerList{ListMeta: obj.(*v2beta1.HorizontalPodAutoscalerList).ListMeta} for _, item := range obj.(*v2beta1.HorizontalPodAutoscalerList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) @@ -131,7 +131,7 @@ func (c *FakeHorizontalPodAutoscalers) DeleteCollection(options *v1.DeleteOption // Patch applies the patch and returns the patched horizontalPodAutoscaler. func (c *FakeHorizontalPodAutoscalers) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v2beta1.HorizontalPodAutoscaler, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(horizontalpodautoscalersResource, c.ns, name, data, subresources...), &v2beta1.HorizontalPodAutoscaler{}) + Invokes(testing.NewPatchSubresourceAction(horizontalpodautoscalersResource, c.ns, name, pt, data, subresources...), &v2beta1.HorizontalPodAutoscaler{}) if obj == nil { return nil, err diff --git a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/generated_expansion.go b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/generated_expansion.go index 561fbb0e6..6f1704f1e 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/generated_expansion.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/generated_expansion.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/horizontalpodautoscaler.go b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/horizontalpodautoscaler.go index 1be9b80ca..02d5cfb9b 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/horizontalpodautoscaler.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/horizontalpodautoscaler.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,6 +19,8 @@ limitations under the License. package v2beta1 import ( + "time" + v2beta1 "k8s.io/api/autoscaling/v2beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" @@ -76,11 +78,16 @@ func (c *horizontalPodAutoscalers) Get(name string, options v1.GetOptions) (resu // List takes label and field selectors, and returns the list of HorizontalPodAutoscalers that match those selectors. func (c *horizontalPodAutoscalers) List(opts v1.ListOptions) (result *v2beta1.HorizontalPodAutoscalerList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v2beta1.HorizontalPodAutoscalerList{} err = c.client.Get(). Namespace(c.ns). Resource("horizontalpodautoscalers"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return @@ -88,11 +95,16 @@ func (c *horizontalPodAutoscalers) List(opts v1.ListOptions) (result *v2beta1.Ho // Watch returns a watch.Interface that watches the requested horizontalPodAutoscalers. func (c *horizontalPodAutoscalers) Watch(opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Namespace(c.ns). Resource("horizontalpodautoscalers"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -150,10 +162,15 @@ func (c *horizontalPodAutoscalers) Delete(name string, options *v1.DeleteOptions // DeleteCollection deletes a collection of objects. func (c *horizontalPodAutoscalers) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Namespace(c.ns). Resource("horizontalpodautoscalers"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2/autoscaling_client.go b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2/autoscaling_client.go new file mode 100644 index 000000000..03fe25e48 --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2/autoscaling_client.go @@ -0,0 +1,90 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package v2beta2 + +import ( + v2beta2 "k8s.io/api/autoscaling/v2beta2" + serializer "k8s.io/apimachinery/pkg/runtime/serializer" + "k8s.io/client-go/kubernetes/scheme" + rest "k8s.io/client-go/rest" +) + +type AutoscalingV2beta2Interface interface { + RESTClient() rest.Interface + HorizontalPodAutoscalersGetter +} + +// AutoscalingV2beta2Client is used to interact with features provided by the autoscaling group. +type AutoscalingV2beta2Client struct { + restClient rest.Interface +} + +func (c *AutoscalingV2beta2Client) HorizontalPodAutoscalers(namespace string) HorizontalPodAutoscalerInterface { + return newHorizontalPodAutoscalers(c, namespace) +} + +// NewForConfig creates a new AutoscalingV2beta2Client for the given config. +func NewForConfig(c *rest.Config) (*AutoscalingV2beta2Client, error) { + config := *c + if err := setConfigDefaults(&config); err != nil { + return nil, err + } + client, err := rest.RESTClientFor(&config) + if err != nil { + return nil, err + } + return &AutoscalingV2beta2Client{client}, nil +} + +// NewForConfigOrDie creates a new AutoscalingV2beta2Client for the given config and +// panics if there is an error in the config. +func NewForConfigOrDie(c *rest.Config) *AutoscalingV2beta2Client { + client, err := NewForConfig(c) + if err != nil { + panic(err) + } + return client +} + +// New creates a new AutoscalingV2beta2Client for the given RESTClient. +func New(c rest.Interface) *AutoscalingV2beta2Client { + return &AutoscalingV2beta2Client{c} +} + +func setConfigDefaults(config *rest.Config) error { + gv := v2beta2.SchemeGroupVersion + config.GroupVersion = &gv + config.APIPath = "/apis" + config.NegotiatedSerializer = serializer.DirectCodecFactory{CodecFactory: scheme.Codecs} + + if config.UserAgent == "" { + config.UserAgent = rest.DefaultKubernetesUserAgent() + } + + return nil +} + +// RESTClient returns a RESTClient that is used to communicate +// with API server by this client implementation. +func (c *AutoscalingV2beta2Client) RESTClient() rest.Interface { + if c == nil { + return nil + } + return c.restClient +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2/doc.go new file mode 100644 index 000000000..c60096594 --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2/doc.go @@ -0,0 +1,20 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +// This package has the automatically generated typed clients. +package v2beta2 diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/fake_scale.go b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2/fake/doc.go similarity index 80% rename from vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/fake_scale.go rename to vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2/fake/doc.go index 72615c803..16f443990 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/fake_scale.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2/fake/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -16,10 +16,5 @@ limitations under the License. // Code generated by client-gen. DO NOT EDIT. +// Package fake has the automatically generated clients. package fake - -// FakeScales implements ScaleInterface -type FakeScales struct { - Fake *FakeAppsV1beta1 - ns string -} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/scale.go b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2/fake/fake_autoscaling_client.go similarity index 51% rename from vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/scale.go rename to vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2/fake/fake_autoscaling_client.go index 84f27a797..8c36e0e81 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/scale.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2/fake/fake_autoscaling_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -16,33 +16,25 @@ limitations under the License. // Code generated by client-gen. DO NOT EDIT. -package v1beta2 +package fake import ( + v2beta2 "k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2" rest "k8s.io/client-go/rest" + testing "k8s.io/client-go/testing" ) -// ScalesGetter has a method to return a ScaleInterface. -// A group's client should implement this interface. -type ScalesGetter interface { - Scales(namespace string) ScaleInterface +type FakeAutoscalingV2beta2 struct { + *testing.Fake } -// ScaleInterface has methods to work with Scale resources. -type ScaleInterface interface { - ScaleExpansion +func (c *FakeAutoscalingV2beta2) HorizontalPodAutoscalers(namespace string) v2beta2.HorizontalPodAutoscalerInterface { + return &FakeHorizontalPodAutoscalers{c, namespace} } -// scales implements ScaleInterface -type scales struct { - client rest.Interface - ns string -} - -// newScales returns a Scales -func newScales(c *AppsV1beta2Client, namespace string) *scales { - return &scales{ - client: c.RESTClient(), - ns: namespace, - } +// RESTClient returns a RESTClient that is used to communicate +// with API server by this client implementation. +func (c *FakeAutoscalingV2beta2) RESTClient() rest.Interface { + var ret *rest.RESTClient + return ret } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2/fake/fake_horizontalpodautoscaler.go b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2/fake/fake_horizontalpodautoscaler.go new file mode 100644 index 000000000..c0569f00a --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2/fake/fake_horizontalpodautoscaler.go @@ -0,0 +1,140 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package fake + +import ( + v2beta2 "k8s.io/api/autoscaling/v2beta2" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + labels "k8s.io/apimachinery/pkg/labels" + schema "k8s.io/apimachinery/pkg/runtime/schema" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + testing "k8s.io/client-go/testing" +) + +// FakeHorizontalPodAutoscalers implements HorizontalPodAutoscalerInterface +type FakeHorizontalPodAutoscalers struct { + Fake *FakeAutoscalingV2beta2 + ns string +} + +var horizontalpodautoscalersResource = schema.GroupVersionResource{Group: "autoscaling", Version: "v2beta2", Resource: "horizontalpodautoscalers"} + +var horizontalpodautoscalersKind = schema.GroupVersionKind{Group: "autoscaling", Version: "v2beta2", Kind: "HorizontalPodAutoscaler"} + +// Get takes name of the horizontalPodAutoscaler, and returns the corresponding horizontalPodAutoscaler object, and an error if there is any. +func (c *FakeHorizontalPodAutoscalers) Get(name string, options v1.GetOptions) (result *v2beta2.HorizontalPodAutoscaler, err error) { + obj, err := c.Fake. + Invokes(testing.NewGetAction(horizontalpodautoscalersResource, c.ns, name), &v2beta2.HorizontalPodAutoscaler{}) + + if obj == nil { + return nil, err + } + return obj.(*v2beta2.HorizontalPodAutoscaler), err +} + +// List takes label and field selectors, and returns the list of HorizontalPodAutoscalers that match those selectors. +func (c *FakeHorizontalPodAutoscalers) List(opts v1.ListOptions) (result *v2beta2.HorizontalPodAutoscalerList, err error) { + obj, err := c.Fake. + Invokes(testing.NewListAction(horizontalpodautoscalersResource, horizontalpodautoscalersKind, c.ns, opts), &v2beta2.HorizontalPodAutoscalerList{}) + + if obj == nil { + return nil, err + } + + label, _, _ := testing.ExtractFromListOptions(opts) + if label == nil { + label = labels.Everything() + } + list := &v2beta2.HorizontalPodAutoscalerList{ListMeta: obj.(*v2beta2.HorizontalPodAutoscalerList).ListMeta} + for _, item := range obj.(*v2beta2.HorizontalPodAutoscalerList).Items { + if label.Matches(labels.Set(item.Labels)) { + list.Items = append(list.Items, item) + } + } + return list, err +} + +// Watch returns a watch.Interface that watches the requested horizontalPodAutoscalers. +func (c *FakeHorizontalPodAutoscalers) Watch(opts v1.ListOptions) (watch.Interface, error) { + return c.Fake. + InvokesWatch(testing.NewWatchAction(horizontalpodautoscalersResource, c.ns, opts)) + +} + +// Create takes the representation of a horizontalPodAutoscaler and creates it. Returns the server's representation of the horizontalPodAutoscaler, and an error, if there is any. +func (c *FakeHorizontalPodAutoscalers) Create(horizontalPodAutoscaler *v2beta2.HorizontalPodAutoscaler) (result *v2beta2.HorizontalPodAutoscaler, err error) { + obj, err := c.Fake. + Invokes(testing.NewCreateAction(horizontalpodautoscalersResource, c.ns, horizontalPodAutoscaler), &v2beta2.HorizontalPodAutoscaler{}) + + if obj == nil { + return nil, err + } + return obj.(*v2beta2.HorizontalPodAutoscaler), err +} + +// Update takes the representation of a horizontalPodAutoscaler and updates it. Returns the server's representation of the horizontalPodAutoscaler, and an error, if there is any. +func (c *FakeHorizontalPodAutoscalers) Update(horizontalPodAutoscaler *v2beta2.HorizontalPodAutoscaler) (result *v2beta2.HorizontalPodAutoscaler, err error) { + obj, err := c.Fake. + Invokes(testing.NewUpdateAction(horizontalpodautoscalersResource, c.ns, horizontalPodAutoscaler), &v2beta2.HorizontalPodAutoscaler{}) + + if obj == nil { + return nil, err + } + return obj.(*v2beta2.HorizontalPodAutoscaler), err +} + +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). +func (c *FakeHorizontalPodAutoscalers) UpdateStatus(horizontalPodAutoscaler *v2beta2.HorizontalPodAutoscaler) (*v2beta2.HorizontalPodAutoscaler, error) { + obj, err := c.Fake. + Invokes(testing.NewUpdateSubresourceAction(horizontalpodautoscalersResource, "status", c.ns, horizontalPodAutoscaler), &v2beta2.HorizontalPodAutoscaler{}) + + if obj == nil { + return nil, err + } + return obj.(*v2beta2.HorizontalPodAutoscaler), err +} + +// Delete takes name of the horizontalPodAutoscaler and deletes it. Returns an error if one occurs. +func (c *FakeHorizontalPodAutoscalers) Delete(name string, options *v1.DeleteOptions) error { + _, err := c.Fake. + Invokes(testing.NewDeleteAction(horizontalpodautoscalersResource, c.ns, name), &v2beta2.HorizontalPodAutoscaler{}) + + return err +} + +// DeleteCollection deletes a collection of objects. +func (c *FakeHorizontalPodAutoscalers) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + action := testing.NewDeleteCollectionAction(horizontalpodautoscalersResource, c.ns, listOptions) + + _, err := c.Fake.Invokes(action, &v2beta2.HorizontalPodAutoscalerList{}) + return err +} + +// Patch applies the patch and returns the patched horizontalPodAutoscaler. +func (c *FakeHorizontalPodAutoscalers) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v2beta2.HorizontalPodAutoscaler, err error) { + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(horizontalpodautoscalersResource, c.ns, name, pt, data, subresources...), &v2beta2.HorizontalPodAutoscaler{}) + + if obj == nil { + return nil, err + } + return obj.(*v2beta2.HorizontalPodAutoscaler), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2/generated_expansion.go b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2/generated_expansion.go new file mode 100644 index 000000000..822e06287 --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2/generated_expansion.go @@ -0,0 +1,21 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package v2beta2 + +type HorizontalPodAutoscalerExpansion interface{} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2/horizontalpodautoscaler.go b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2/horizontalpodautoscaler.go new file mode 100644 index 000000000..91a0fa64f --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2/horizontalpodautoscaler.go @@ -0,0 +1,191 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package v2beta2 + +import ( + "time" + + v2beta2 "k8s.io/api/autoscaling/v2beta2" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + scheme "k8s.io/client-go/kubernetes/scheme" + rest "k8s.io/client-go/rest" +) + +// HorizontalPodAutoscalersGetter has a method to return a HorizontalPodAutoscalerInterface. +// A group's client should implement this interface. +type HorizontalPodAutoscalersGetter interface { + HorizontalPodAutoscalers(namespace string) HorizontalPodAutoscalerInterface +} + +// HorizontalPodAutoscalerInterface has methods to work with HorizontalPodAutoscaler resources. +type HorizontalPodAutoscalerInterface interface { + Create(*v2beta2.HorizontalPodAutoscaler) (*v2beta2.HorizontalPodAutoscaler, error) + Update(*v2beta2.HorizontalPodAutoscaler) (*v2beta2.HorizontalPodAutoscaler, error) + UpdateStatus(*v2beta2.HorizontalPodAutoscaler) (*v2beta2.HorizontalPodAutoscaler, error) + Delete(name string, options *v1.DeleteOptions) error + DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error + Get(name string, options v1.GetOptions) (*v2beta2.HorizontalPodAutoscaler, error) + List(opts v1.ListOptions) (*v2beta2.HorizontalPodAutoscalerList, error) + Watch(opts v1.ListOptions) (watch.Interface, error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v2beta2.HorizontalPodAutoscaler, err error) + HorizontalPodAutoscalerExpansion +} + +// horizontalPodAutoscalers implements HorizontalPodAutoscalerInterface +type horizontalPodAutoscalers struct { + client rest.Interface + ns string +} + +// newHorizontalPodAutoscalers returns a HorizontalPodAutoscalers +func newHorizontalPodAutoscalers(c *AutoscalingV2beta2Client, namespace string) *horizontalPodAutoscalers { + return &horizontalPodAutoscalers{ + client: c.RESTClient(), + ns: namespace, + } +} + +// Get takes name of the horizontalPodAutoscaler, and returns the corresponding horizontalPodAutoscaler object, and an error if there is any. +func (c *horizontalPodAutoscalers) Get(name string, options v1.GetOptions) (result *v2beta2.HorizontalPodAutoscaler, err error) { + result = &v2beta2.HorizontalPodAutoscaler{} + err = c.client.Get(). + Namespace(c.ns). + Resource("horizontalpodautoscalers"). + Name(name). + VersionedParams(&options, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// List takes label and field selectors, and returns the list of HorizontalPodAutoscalers that match those selectors. +func (c *horizontalPodAutoscalers) List(opts v1.ListOptions) (result *v2beta2.HorizontalPodAutoscalerList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } + result = &v2beta2.HorizontalPodAutoscalerList{} + err = c.client.Get(). + Namespace(c.ns). + Resource("horizontalpodautoscalers"). + VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). + Do(). + Into(result) + return +} + +// Watch returns a watch.Interface that watches the requested horizontalPodAutoscalers. +func (c *horizontalPodAutoscalers) Watch(opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } + opts.Watch = true + return c.client.Get(). + Namespace(c.ns). + Resource("horizontalpodautoscalers"). + VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). + Watch() +} + +// Create takes the representation of a horizontalPodAutoscaler and creates it. Returns the server's representation of the horizontalPodAutoscaler, and an error, if there is any. +func (c *horizontalPodAutoscalers) Create(horizontalPodAutoscaler *v2beta2.HorizontalPodAutoscaler) (result *v2beta2.HorizontalPodAutoscaler, err error) { + result = &v2beta2.HorizontalPodAutoscaler{} + err = c.client.Post(). + Namespace(c.ns). + Resource("horizontalpodautoscalers"). + Body(horizontalPodAutoscaler). + Do(). + Into(result) + return +} + +// Update takes the representation of a horizontalPodAutoscaler and updates it. Returns the server's representation of the horizontalPodAutoscaler, and an error, if there is any. +func (c *horizontalPodAutoscalers) Update(horizontalPodAutoscaler *v2beta2.HorizontalPodAutoscaler) (result *v2beta2.HorizontalPodAutoscaler, err error) { + result = &v2beta2.HorizontalPodAutoscaler{} + err = c.client.Put(). + Namespace(c.ns). + Resource("horizontalpodautoscalers"). + Name(horizontalPodAutoscaler.Name). + Body(horizontalPodAutoscaler). + Do(). + Into(result) + return +} + +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). + +func (c *horizontalPodAutoscalers) UpdateStatus(horizontalPodAutoscaler *v2beta2.HorizontalPodAutoscaler) (result *v2beta2.HorizontalPodAutoscaler, err error) { + result = &v2beta2.HorizontalPodAutoscaler{} + err = c.client.Put(). + Namespace(c.ns). + Resource("horizontalpodautoscalers"). + Name(horizontalPodAutoscaler.Name). + SubResource("status"). + Body(horizontalPodAutoscaler). + Do(). + Into(result) + return +} + +// Delete takes name of the horizontalPodAutoscaler and deletes it. Returns an error if one occurs. +func (c *horizontalPodAutoscalers) Delete(name string, options *v1.DeleteOptions) error { + return c.client.Delete(). + Namespace(c.ns). + Resource("horizontalpodautoscalers"). + Name(name). + Body(options). + Do(). + Error() +} + +// DeleteCollection deletes a collection of objects. +func (c *horizontalPodAutoscalers) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } + return c.client.Delete(). + Namespace(c.ns). + Resource("horizontalpodautoscalers"). + VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). + Body(options). + Do(). + Error() +} + +// Patch applies the patch and returns the patched horizontalPodAutoscaler. +func (c *horizontalPodAutoscalers) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v2beta2.HorizontalPodAutoscaler, err error) { + result = &v2beta2.HorizontalPodAutoscaler{} + err = c.client.Patch(pt). + Namespace(c.ns). + Resource("horizontalpodautoscalers"). + SubResource(subresources...). + Name(name). + Body(data). + Do(). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/BUILD deleted file mode 100644 index 2af6de364..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/BUILD +++ /dev/null @@ -1,42 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "batch_client.go", - "doc.go", - "generated_expansion.go", - "job.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/batch/v1", - deps = [ - "//vendor/k8s.io/api/batch/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/batch/v1/fake:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/batch_client.go b/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/batch_client.go index c092a3ca1..d5e35e6b2 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/batch_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/batch_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/doc.go index d007a2903..3af5d054f 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/fake/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/fake/BUILD deleted file mode 100644 index 384e15eee..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/fake/BUILD +++ /dev/null @@ -1,40 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "fake_batch_client.go", - "fake_job.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/batch/v1/fake", - deps = [ - "//vendor/k8s.io/api/batch/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/batch/v1:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/testing:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/fake/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/fake/doc.go index 87a1873ed..16f443990 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/fake/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/fake/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/fake/fake_batch_client.go b/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/fake/fake_batch_client.go index 27d54c4c4..c90dd7561 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/fake/fake_batch_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/fake/fake_batch_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/fake/fake_job.go b/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/fake/fake_job.go index 4d9ba490f..06dc25c6b 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/fake/fake_job.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/fake/fake_job.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,7 +19,7 @@ limitations under the License. package fake import ( - batch_v1 "k8s.io/api/batch/v1" + batchv1 "k8s.io/api/batch/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" schema "k8s.io/apimachinery/pkg/runtime/schema" @@ -39,20 +39,20 @@ var jobsResource = schema.GroupVersionResource{Group: "batch", Version: "v1", Re var jobsKind = schema.GroupVersionKind{Group: "batch", Version: "v1", Kind: "Job"} // Get takes name of the job, and returns the corresponding job object, and an error if there is any. -func (c *FakeJobs) Get(name string, options v1.GetOptions) (result *batch_v1.Job, err error) { +func (c *FakeJobs) Get(name string, options v1.GetOptions) (result *batchv1.Job, err error) { obj, err := c.Fake. - Invokes(testing.NewGetAction(jobsResource, c.ns, name), &batch_v1.Job{}) + Invokes(testing.NewGetAction(jobsResource, c.ns, name), &batchv1.Job{}) if obj == nil { return nil, err } - return obj.(*batch_v1.Job), err + return obj.(*batchv1.Job), err } // List takes label and field selectors, and returns the list of Jobs that match those selectors. -func (c *FakeJobs) List(opts v1.ListOptions) (result *batch_v1.JobList, err error) { +func (c *FakeJobs) List(opts v1.ListOptions) (result *batchv1.JobList, err error) { obj, err := c.Fake. - Invokes(testing.NewListAction(jobsResource, jobsKind, c.ns, opts), &batch_v1.JobList{}) + Invokes(testing.NewListAction(jobsResource, jobsKind, c.ns, opts), &batchv1.JobList{}) if obj == nil { return nil, err @@ -62,8 +62,8 @@ func (c *FakeJobs) List(opts v1.ListOptions) (result *batch_v1.JobList, err erro if label == nil { label = labels.Everything() } - list := &batch_v1.JobList{} - for _, item := range obj.(*batch_v1.JobList).Items { + list := &batchv1.JobList{ListMeta: obj.(*batchv1.JobList).ListMeta} + for _, item := range obj.(*batchv1.JobList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) } @@ -79,43 +79,43 @@ func (c *FakeJobs) Watch(opts v1.ListOptions) (watch.Interface, error) { } // Create takes the representation of a job and creates it. Returns the server's representation of the job, and an error, if there is any. -func (c *FakeJobs) Create(job *batch_v1.Job) (result *batch_v1.Job, err error) { +func (c *FakeJobs) Create(job *batchv1.Job) (result *batchv1.Job, err error) { obj, err := c.Fake. - Invokes(testing.NewCreateAction(jobsResource, c.ns, job), &batch_v1.Job{}) + Invokes(testing.NewCreateAction(jobsResource, c.ns, job), &batchv1.Job{}) if obj == nil { return nil, err } - return obj.(*batch_v1.Job), err + return obj.(*batchv1.Job), err } // Update takes the representation of a job and updates it. Returns the server's representation of the job, and an error, if there is any. -func (c *FakeJobs) Update(job *batch_v1.Job) (result *batch_v1.Job, err error) { +func (c *FakeJobs) Update(job *batchv1.Job) (result *batchv1.Job, err error) { obj, err := c.Fake. - Invokes(testing.NewUpdateAction(jobsResource, c.ns, job), &batch_v1.Job{}) + Invokes(testing.NewUpdateAction(jobsResource, c.ns, job), &batchv1.Job{}) if obj == nil { return nil, err } - return obj.(*batch_v1.Job), err + return obj.(*batchv1.Job), err } // UpdateStatus was generated because the type contains a Status member. // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *FakeJobs) UpdateStatus(job *batch_v1.Job) (*batch_v1.Job, error) { +func (c *FakeJobs) UpdateStatus(job *batchv1.Job) (*batchv1.Job, error) { obj, err := c.Fake. - Invokes(testing.NewUpdateSubresourceAction(jobsResource, "status", c.ns, job), &batch_v1.Job{}) + Invokes(testing.NewUpdateSubresourceAction(jobsResource, "status", c.ns, job), &batchv1.Job{}) if obj == nil { return nil, err } - return obj.(*batch_v1.Job), err + return obj.(*batchv1.Job), err } // Delete takes name of the job and deletes it. Returns an error if one occurs. func (c *FakeJobs) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. - Invokes(testing.NewDeleteAction(jobsResource, c.ns, name), &batch_v1.Job{}) + Invokes(testing.NewDeleteAction(jobsResource, c.ns, name), &batchv1.Job{}) return err } @@ -124,17 +124,17 @@ func (c *FakeJobs) Delete(name string, options *v1.DeleteOptions) error { func (c *FakeJobs) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { action := testing.NewDeleteCollectionAction(jobsResource, c.ns, listOptions) - _, err := c.Fake.Invokes(action, &batch_v1.JobList{}) + _, err := c.Fake.Invokes(action, &batchv1.JobList{}) return err } // Patch applies the patch and returns the patched job. -func (c *FakeJobs) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *batch_v1.Job, err error) { +func (c *FakeJobs) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *batchv1.Job, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(jobsResource, c.ns, name, data, subresources...), &batch_v1.Job{}) + Invokes(testing.NewPatchSubresourceAction(jobsResource, c.ns, name, pt, data, subresources...), &batchv1.Job{}) if obj == nil { return nil, err } - return obj.(*batch_v1.Job), err + return obj.(*batchv1.Job), err } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/generated_expansion.go b/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/generated_expansion.go index 04a37a49d..dc4142934 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/generated_expansion.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/generated_expansion.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/job.go b/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/job.go index dc0c79997..b55c602b3 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/job.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/batch/v1/job.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,8 +19,10 @@ limitations under the License. package v1 import ( + "time" + v1 "k8s.io/api/batch/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" scheme "k8s.io/client-go/kubernetes/scheme" @@ -38,11 +40,11 @@ type JobInterface interface { Create(*v1.Job) (*v1.Job, error) Update(*v1.Job) (*v1.Job, error) UpdateStatus(*v1.Job) (*v1.Job, error) - Delete(name string, options *meta_v1.DeleteOptions) error - DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error - Get(name string, options meta_v1.GetOptions) (*v1.Job, error) - List(opts meta_v1.ListOptions) (*v1.JobList, error) - Watch(opts meta_v1.ListOptions) (watch.Interface, error) + Delete(name string, options *metav1.DeleteOptions) error + DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error + Get(name string, options metav1.GetOptions) (*v1.Job, error) + List(opts metav1.ListOptions) (*v1.JobList, error) + Watch(opts metav1.ListOptions) (watch.Interface, error) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.Job, err error) JobExpansion } @@ -62,7 +64,7 @@ func newJobs(c *BatchV1Client, namespace string) *jobs { } // Get takes name of the job, and returns the corresponding job object, and an error if there is any. -func (c *jobs) Get(name string, options meta_v1.GetOptions) (result *v1.Job, err error) { +func (c *jobs) Get(name string, options metav1.GetOptions) (result *v1.Job, err error) { result = &v1.Job{} err = c.client.Get(). Namespace(c.ns). @@ -75,24 +77,34 @@ func (c *jobs) Get(name string, options meta_v1.GetOptions) (result *v1.Job, err } // List takes label and field selectors, and returns the list of Jobs that match those selectors. -func (c *jobs) List(opts meta_v1.ListOptions) (result *v1.JobList, err error) { +func (c *jobs) List(opts metav1.ListOptions) (result *v1.JobList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1.JobList{} err = c.client.Get(). Namespace(c.ns). Resource("jobs"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return } // Watch returns a watch.Interface that watches the requested jobs. -func (c *jobs) Watch(opts meta_v1.ListOptions) (watch.Interface, error) { +func (c *jobs) Watch(opts metav1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Namespace(c.ns). Resource("jobs"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -138,7 +150,7 @@ func (c *jobs) UpdateStatus(job *v1.Job) (result *v1.Job, err error) { } // Delete takes name of the job and deletes it. Returns an error if one occurs. -func (c *jobs) Delete(name string, options *meta_v1.DeleteOptions) error { +func (c *jobs) Delete(name string, options *metav1.DeleteOptions) error { return c.client.Delete(). Namespace(c.ns). Resource("jobs"). @@ -149,11 +161,16 @@ func (c *jobs) Delete(name string, options *meta_v1.DeleteOptions) error { } // DeleteCollection deletes a collection of objects. -func (c *jobs) DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error { +func (c *jobs) DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Namespace(c.ns). Resource("jobs"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/BUILD deleted file mode 100644 index 58e0a6afa..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/BUILD +++ /dev/null @@ -1,42 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "batch_client.go", - "cronjob.go", - "doc.go", - "generated_expansion.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/batch/v1beta1", - deps = [ - "//vendor/k8s.io/api/batch/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/batch/v1beta1/fake:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/batch_client.go b/vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/batch_client.go index 5ee39b5be..aa71ca833 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/batch_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/batch_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/cronjob.go b/vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/cronjob.go index 32ac52fac..d89d2fa21 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/cronjob.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/cronjob.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,6 +19,8 @@ limitations under the License. package v1beta1 import ( + "time" + v1beta1 "k8s.io/api/batch/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" @@ -76,11 +78,16 @@ func (c *cronJobs) Get(name string, options v1.GetOptions) (result *v1beta1.Cron // List takes label and field selectors, and returns the list of CronJobs that match those selectors. func (c *cronJobs) List(opts v1.ListOptions) (result *v1beta1.CronJobList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1beta1.CronJobList{} err = c.client.Get(). Namespace(c.ns). Resource("cronjobs"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return @@ -88,11 +95,16 @@ func (c *cronJobs) List(opts v1.ListOptions) (result *v1beta1.CronJobList, err e // Watch returns a watch.Interface that watches the requested cronJobs. func (c *cronJobs) Watch(opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Namespace(c.ns). Resource("cronjobs"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -150,10 +162,15 @@ func (c *cronJobs) Delete(name string, options *v1.DeleteOptions) error { // DeleteCollection deletes a collection of objects. func (c *cronJobs) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Namespace(c.ns). Resource("cronjobs"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/doc.go index 11ae7049d..771101956 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/fake/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/fake/BUILD deleted file mode 100644 index 8fd1c81ec..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/fake/BUILD +++ /dev/null @@ -1,40 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "fake_batch_client.go", - "fake_cronjob.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/batch/v1beta1/fake", - deps = [ - "//vendor/k8s.io/api/batch/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/testing:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/fake/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/fake/doc.go index 87a1873ed..16f443990 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/fake/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/fake/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/fake/fake_batch_client.go b/vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/fake/fake_batch_client.go index 9de70f8fe..6f350aed9 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/fake/fake_batch_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/fake/fake_batch_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/fake/fake_cronjob.go b/vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/fake/fake_cronjob.go index 756585d7d..3985c4037 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/fake/fake_cronjob.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/fake/fake_cronjob.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -62,7 +62,7 @@ func (c *FakeCronJobs) List(opts v1.ListOptions) (result *v1beta1.CronJobList, e if label == nil { label = labels.Everything() } - list := &v1beta1.CronJobList{} + list := &v1beta1.CronJobList{ListMeta: obj.(*v1beta1.CronJobList).ListMeta} for _, item := range obj.(*v1beta1.CronJobList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) @@ -131,7 +131,7 @@ func (c *FakeCronJobs) DeleteCollection(options *v1.DeleteOptions, listOptions v // Patch applies the patch and returns the patched cronJob. func (c *FakeCronJobs) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.CronJob, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(cronjobsResource, c.ns, name, data, subresources...), &v1beta1.CronJob{}) + Invokes(testing.NewPatchSubresourceAction(cronjobsResource, c.ns, name, pt, data, subresources...), &v1beta1.CronJob{}) if obj == nil { return nil, err diff --git a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/generated_expansion.go b/vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/generated_expansion.go index a093bbad4..145e14a99 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/generated_expansion.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/generated_expansion.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/BUILD deleted file mode 100644 index c698053ad..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/BUILD +++ /dev/null @@ -1,42 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "batch_client.go", - "cronjob.go", - "doc.go", - "generated_expansion.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/batch/v2alpha1", - deps = [ - "//vendor/k8s.io/api/batch/v2alpha1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/batch_client.go b/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/batch_client.go index ff26a76d5..e6c6306b8 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/batch_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/batch_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/cronjob.go b/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/cronjob.go index e5b135314..19123b604 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/cronjob.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/cronjob.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,6 +19,8 @@ limitations under the License. package v2alpha1 import ( + "time" + v2alpha1 "k8s.io/api/batch/v2alpha1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" @@ -76,11 +78,16 @@ func (c *cronJobs) Get(name string, options v1.GetOptions) (result *v2alpha1.Cro // List takes label and field selectors, and returns the list of CronJobs that match those selectors. func (c *cronJobs) List(opts v1.ListOptions) (result *v2alpha1.CronJobList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v2alpha1.CronJobList{} err = c.client.Get(). Namespace(c.ns). Resource("cronjobs"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return @@ -88,11 +95,16 @@ func (c *cronJobs) List(opts v1.ListOptions) (result *v2alpha1.CronJobList, err // Watch returns a watch.Interface that watches the requested cronJobs. func (c *cronJobs) Watch(opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Namespace(c.ns). Resource("cronjobs"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -150,10 +162,15 @@ func (c *cronJobs) Delete(name string, options *v1.DeleteOptions) error { // DeleteCollection deletes a collection of objects. func (c *cronJobs) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Namespace(c.ns). Resource("cronjobs"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/doc.go index ba60ac54b..3efe0d284 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake/BUILD deleted file mode 100644 index 659470373..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake/BUILD +++ /dev/null @@ -1,40 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "fake_batch_client.go", - "fake_cronjob.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake", - deps = [ - "//vendor/k8s.io/api/batch/v2alpha1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/testing:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake/doc.go index 87a1873ed..16f443990 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake/fake_batch_client.go b/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake/fake_batch_client.go index 52ad499cc..3e478cde9 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake/fake_batch_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake/fake_batch_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake/fake_cronjob.go b/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake/fake_cronjob.go index f80e94cae..2195027d2 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake/fake_cronjob.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake/fake_cronjob.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -62,7 +62,7 @@ func (c *FakeCronJobs) List(opts v1.ListOptions) (result *v2alpha1.CronJobList, if label == nil { label = labels.Everything() } - list := &v2alpha1.CronJobList{} + list := &v2alpha1.CronJobList{ListMeta: obj.(*v2alpha1.CronJobList).ListMeta} for _, item := range obj.(*v2alpha1.CronJobList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) @@ -131,7 +131,7 @@ func (c *FakeCronJobs) DeleteCollection(options *v1.DeleteOptions, listOptions v // Patch applies the patch and returns the patched cronJob. func (c *FakeCronJobs) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v2alpha1.CronJob, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(cronjobsResource, c.ns, name, data, subresources...), &v2alpha1.CronJob{}) + Invokes(testing.NewPatchSubresourceAction(cronjobsResource, c.ns, name, pt, data, subresources...), &v2alpha1.CronJob{}) if obj == nil { return nil, err diff --git a/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/generated_expansion.go b/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/generated_expansion.go index ed2c942b0..34dafc464 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/generated_expansion.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/generated_expansion.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/BUILD deleted file mode 100644 index 1caeb018f..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/BUILD +++ /dev/null @@ -1,43 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "certificates_client.go", - "certificatesigningrequest.go", - "certificatesigningrequest_expansion.go", - "doc.go", - "generated_expansion.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/certificates/v1beta1", - deps = [ - "//vendor/k8s.io/api/certificates/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/fake:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/certificates_client.go b/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/certificates_client.go index 7d69ce9f6..baac42ee2 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/certificates_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/certificates_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/certificatesigningrequest.go b/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/certificatesigningrequest.go index ecca7aedc..712d3a01a 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/certificatesigningrequest.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/certificatesigningrequest.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,6 +19,8 @@ limitations under the License. package v1beta1 import ( + "time" + v1beta1 "k8s.io/api/certificates/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" @@ -73,10 +75,15 @@ func (c *certificateSigningRequests) Get(name string, options v1.GetOptions) (re // List takes label and field selectors, and returns the list of CertificateSigningRequests that match those selectors. func (c *certificateSigningRequests) List(opts v1.ListOptions) (result *v1beta1.CertificateSigningRequestList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1beta1.CertificateSigningRequestList{} err = c.client.Get(). Resource("certificatesigningrequests"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return @@ -84,10 +91,15 @@ func (c *certificateSigningRequests) List(opts v1.ListOptions) (result *v1beta1. // Watch returns a watch.Interface that watches the requested certificateSigningRequests. func (c *certificateSigningRequests) Watch(opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Resource("certificatesigningrequests"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -141,9 +153,14 @@ func (c *certificateSigningRequests) Delete(name string, options *v1.DeleteOptio // DeleteCollection deletes a collection of objects. func (c *certificateSigningRequests) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Resource("certificatesigningrequests"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/doc.go index 11ae7049d..771101956 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/fake/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/fake/BUILD deleted file mode 100644 index 6fa63d82a..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/fake/BUILD +++ /dev/null @@ -1,41 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "fake_certificates_client.go", - "fake_certificatesigningrequest.go", - "fake_certificatesigningrequest_expansion.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/certificates/v1beta1/fake", - deps = [ - "//vendor/k8s.io/api/certificates/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/testing:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/fake/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/fake/doc.go index 87a1873ed..16f443990 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/fake/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/fake/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/fake/fake_certificates_client.go b/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/fake/fake_certificates_client.go index 455ac56b5..29d8b088e 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/fake/fake_certificates_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/fake/fake_certificates_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/fake/fake_certificatesigningrequest.go b/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/fake/fake_certificatesigningrequest.go index f3ea4c464..aa45c8803 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/fake/fake_certificatesigningrequest.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/fake/fake_certificatesigningrequest.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -59,7 +59,7 @@ func (c *FakeCertificateSigningRequests) List(opts v1.ListOptions) (result *v1be if label == nil { label = labels.Everything() } - list := &v1beta1.CertificateSigningRequestList{} + list := &v1beta1.CertificateSigningRequestList{ListMeta: obj.(*v1beta1.CertificateSigningRequestList).ListMeta} for _, item := range obj.(*v1beta1.CertificateSigningRequestList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) @@ -123,7 +123,7 @@ func (c *FakeCertificateSigningRequests) DeleteCollection(options *v1.DeleteOpti // Patch applies the patch and returns the patched certificateSigningRequest. func (c *FakeCertificateSigningRequests) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.CertificateSigningRequest, err error) { obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(certificatesigningrequestsResource, name, data, subresources...), &v1beta1.CertificateSigningRequest{}) + Invokes(testing.NewRootPatchSubresourceAction(certificatesigningrequestsResource, name, pt, data, subresources...), &v1beta1.CertificateSigningRequest{}) if obj == nil { return nil, err } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/generated_expansion.go b/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/generated_expansion.go index 7fd68c803..f6df76963 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/generated_expansion.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/generated_expansion.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/coordination/v1beta1/coordination_client.go b/vendor/k8s.io/client-go/kubernetes/typed/coordination/v1beta1/coordination_client.go new file mode 100644 index 000000000..91a764843 --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes/typed/coordination/v1beta1/coordination_client.go @@ -0,0 +1,90 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1beta1 "k8s.io/api/coordination/v1beta1" + serializer "k8s.io/apimachinery/pkg/runtime/serializer" + "k8s.io/client-go/kubernetes/scheme" + rest "k8s.io/client-go/rest" +) + +type CoordinationV1beta1Interface interface { + RESTClient() rest.Interface + LeasesGetter +} + +// CoordinationV1beta1Client is used to interact with features provided by the coordination.k8s.io group. +type CoordinationV1beta1Client struct { + restClient rest.Interface +} + +func (c *CoordinationV1beta1Client) Leases(namespace string) LeaseInterface { + return newLeases(c, namespace) +} + +// NewForConfig creates a new CoordinationV1beta1Client for the given config. +func NewForConfig(c *rest.Config) (*CoordinationV1beta1Client, error) { + config := *c + if err := setConfigDefaults(&config); err != nil { + return nil, err + } + client, err := rest.RESTClientFor(&config) + if err != nil { + return nil, err + } + return &CoordinationV1beta1Client{client}, nil +} + +// NewForConfigOrDie creates a new CoordinationV1beta1Client for the given config and +// panics if there is an error in the config. +func NewForConfigOrDie(c *rest.Config) *CoordinationV1beta1Client { + client, err := NewForConfig(c) + if err != nil { + panic(err) + } + return client +} + +// New creates a new CoordinationV1beta1Client for the given RESTClient. +func New(c rest.Interface) *CoordinationV1beta1Client { + return &CoordinationV1beta1Client{c} +} + +func setConfigDefaults(config *rest.Config) error { + gv := v1beta1.SchemeGroupVersion + config.GroupVersion = &gv + config.APIPath = "/apis" + config.NegotiatedSerializer = serializer.DirectCodecFactory{CodecFactory: scheme.Codecs} + + if config.UserAgent == "" { + config.UserAgent = rest.DefaultKubernetesUserAgent() + } + + return nil +} + +// RESTClient returns a RESTClient that is used to communicate +// with API server by this client implementation. +func (c *CoordinationV1beta1Client) RESTClient() rest.Interface { + if c == nil { + return nil + } + return c.restClient +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/coordination/v1beta1/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/coordination/v1beta1/doc.go new file mode 100644 index 000000000..771101956 --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes/typed/coordination/v1beta1/doc.go @@ -0,0 +1,20 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +// This package has the automatically generated typed clients. +package v1beta1 diff --git a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_scale.go b/vendor/k8s.io/client-go/kubernetes/typed/coordination/v1beta1/fake/doc.go similarity index 79% rename from vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_scale.go rename to vendor/k8s.io/client-go/kubernetes/typed/coordination/v1beta1/fake/doc.go index 0bbcbd15f..16f443990 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_scale.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/coordination/v1beta1/fake/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -16,10 +16,5 @@ limitations under the License. // Code generated by client-gen. DO NOT EDIT. +// Package fake has the automatically generated clients. package fake - -// FakeScales implements ScaleInterface -type FakeScales struct { - Fake *FakeExtensionsV1beta1 - ns string -} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/coordination/v1beta1/fake/fake_coordination_client.go b/vendor/k8s.io/client-go/kubernetes/typed/coordination/v1beta1/fake/fake_coordination_client.go new file mode 100644 index 000000000..f583b466e --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes/typed/coordination/v1beta1/fake/fake_coordination_client.go @@ -0,0 +1,40 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package fake + +import ( + v1beta1 "k8s.io/client-go/kubernetes/typed/coordination/v1beta1" + rest "k8s.io/client-go/rest" + testing "k8s.io/client-go/testing" +) + +type FakeCoordinationV1beta1 struct { + *testing.Fake +} + +func (c *FakeCoordinationV1beta1) Leases(namespace string) v1beta1.LeaseInterface { + return &FakeLeases{c, namespace} +} + +// RESTClient returns a RESTClient that is used to communicate +// with API server by this client implementation. +func (c *FakeCoordinationV1beta1) RESTClient() rest.Interface { + var ret *rest.RESTClient + return ret +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/coordination/v1beta1/fake/fake_lease.go b/vendor/k8s.io/client-go/kubernetes/typed/coordination/v1beta1/fake/fake_lease.go new file mode 100644 index 000000000..0ebf3bffc --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes/typed/coordination/v1beta1/fake/fake_lease.go @@ -0,0 +1,128 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package fake + +import ( + v1beta1 "k8s.io/api/coordination/v1beta1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + labels "k8s.io/apimachinery/pkg/labels" + schema "k8s.io/apimachinery/pkg/runtime/schema" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + testing "k8s.io/client-go/testing" +) + +// FakeLeases implements LeaseInterface +type FakeLeases struct { + Fake *FakeCoordinationV1beta1 + ns string +} + +var leasesResource = schema.GroupVersionResource{Group: "coordination.k8s.io", Version: "v1beta1", Resource: "leases"} + +var leasesKind = schema.GroupVersionKind{Group: "coordination.k8s.io", Version: "v1beta1", Kind: "Lease"} + +// Get takes name of the lease, and returns the corresponding lease object, and an error if there is any. +func (c *FakeLeases) Get(name string, options v1.GetOptions) (result *v1beta1.Lease, err error) { + obj, err := c.Fake. + Invokes(testing.NewGetAction(leasesResource, c.ns, name), &v1beta1.Lease{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.Lease), err +} + +// List takes label and field selectors, and returns the list of Leases that match those selectors. +func (c *FakeLeases) List(opts v1.ListOptions) (result *v1beta1.LeaseList, err error) { + obj, err := c.Fake. + Invokes(testing.NewListAction(leasesResource, leasesKind, c.ns, opts), &v1beta1.LeaseList{}) + + if obj == nil { + return nil, err + } + + label, _, _ := testing.ExtractFromListOptions(opts) + if label == nil { + label = labels.Everything() + } + list := &v1beta1.LeaseList{ListMeta: obj.(*v1beta1.LeaseList).ListMeta} + for _, item := range obj.(*v1beta1.LeaseList).Items { + if label.Matches(labels.Set(item.Labels)) { + list.Items = append(list.Items, item) + } + } + return list, err +} + +// Watch returns a watch.Interface that watches the requested leases. +func (c *FakeLeases) Watch(opts v1.ListOptions) (watch.Interface, error) { + return c.Fake. + InvokesWatch(testing.NewWatchAction(leasesResource, c.ns, opts)) + +} + +// Create takes the representation of a lease and creates it. Returns the server's representation of the lease, and an error, if there is any. +func (c *FakeLeases) Create(lease *v1beta1.Lease) (result *v1beta1.Lease, err error) { + obj, err := c.Fake. + Invokes(testing.NewCreateAction(leasesResource, c.ns, lease), &v1beta1.Lease{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.Lease), err +} + +// Update takes the representation of a lease and updates it. Returns the server's representation of the lease, and an error, if there is any. +func (c *FakeLeases) Update(lease *v1beta1.Lease) (result *v1beta1.Lease, err error) { + obj, err := c.Fake. + Invokes(testing.NewUpdateAction(leasesResource, c.ns, lease), &v1beta1.Lease{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.Lease), err +} + +// Delete takes name of the lease and deletes it. Returns an error if one occurs. +func (c *FakeLeases) Delete(name string, options *v1.DeleteOptions) error { + _, err := c.Fake. + Invokes(testing.NewDeleteAction(leasesResource, c.ns, name), &v1beta1.Lease{}) + + return err +} + +// DeleteCollection deletes a collection of objects. +func (c *FakeLeases) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + action := testing.NewDeleteCollectionAction(leasesResource, c.ns, listOptions) + + _, err := c.Fake.Invokes(action, &v1beta1.LeaseList{}) + return err +} + +// Patch applies the patch and returns the patched lease. +func (c *FakeLeases) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.Lease, err error) { + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(leasesResource, c.ns, name, pt, data, subresources...), &v1beta1.Lease{}) + + if obj == nil { + return nil, err + } + return obj.(*v1beta1.Lease), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/coordination/v1beta1/generated_expansion.go b/vendor/k8s.io/client-go/kubernetes/typed/coordination/v1beta1/generated_expansion.go new file mode 100644 index 000000000..dfd180daf --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes/typed/coordination/v1beta1/generated_expansion.go @@ -0,0 +1,21 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package v1beta1 + +type LeaseExpansion interface{} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/coordination/v1beta1/lease.go b/vendor/k8s.io/client-go/kubernetes/typed/coordination/v1beta1/lease.go new file mode 100644 index 000000000..490d815aa --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes/typed/coordination/v1beta1/lease.go @@ -0,0 +1,174 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package v1beta1 + +import ( + "time" + + v1beta1 "k8s.io/api/coordination/v1beta1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + scheme "k8s.io/client-go/kubernetes/scheme" + rest "k8s.io/client-go/rest" +) + +// LeasesGetter has a method to return a LeaseInterface. +// A group's client should implement this interface. +type LeasesGetter interface { + Leases(namespace string) LeaseInterface +} + +// LeaseInterface has methods to work with Lease resources. +type LeaseInterface interface { + Create(*v1beta1.Lease) (*v1beta1.Lease, error) + Update(*v1beta1.Lease) (*v1beta1.Lease, error) + Delete(name string, options *v1.DeleteOptions) error + DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error + Get(name string, options v1.GetOptions) (*v1beta1.Lease, error) + List(opts v1.ListOptions) (*v1beta1.LeaseList, error) + Watch(opts v1.ListOptions) (watch.Interface, error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.Lease, err error) + LeaseExpansion +} + +// leases implements LeaseInterface +type leases struct { + client rest.Interface + ns string +} + +// newLeases returns a Leases +func newLeases(c *CoordinationV1beta1Client, namespace string) *leases { + return &leases{ + client: c.RESTClient(), + ns: namespace, + } +} + +// Get takes name of the lease, and returns the corresponding lease object, and an error if there is any. +func (c *leases) Get(name string, options v1.GetOptions) (result *v1beta1.Lease, err error) { + result = &v1beta1.Lease{} + err = c.client.Get(). + Namespace(c.ns). + Resource("leases"). + Name(name). + VersionedParams(&options, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// List takes label and field selectors, and returns the list of Leases that match those selectors. +func (c *leases) List(opts v1.ListOptions) (result *v1beta1.LeaseList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } + result = &v1beta1.LeaseList{} + err = c.client.Get(). + Namespace(c.ns). + Resource("leases"). + VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). + Do(). + Into(result) + return +} + +// Watch returns a watch.Interface that watches the requested leases. +func (c *leases) Watch(opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } + opts.Watch = true + return c.client.Get(). + Namespace(c.ns). + Resource("leases"). + VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). + Watch() +} + +// Create takes the representation of a lease and creates it. Returns the server's representation of the lease, and an error, if there is any. +func (c *leases) Create(lease *v1beta1.Lease) (result *v1beta1.Lease, err error) { + result = &v1beta1.Lease{} + err = c.client.Post(). + Namespace(c.ns). + Resource("leases"). + Body(lease). + Do(). + Into(result) + return +} + +// Update takes the representation of a lease and updates it. Returns the server's representation of the lease, and an error, if there is any. +func (c *leases) Update(lease *v1beta1.Lease) (result *v1beta1.Lease, err error) { + result = &v1beta1.Lease{} + err = c.client.Put(). + Namespace(c.ns). + Resource("leases"). + Name(lease.Name). + Body(lease). + Do(). + Into(result) + return +} + +// Delete takes name of the lease and deletes it. Returns an error if one occurs. +func (c *leases) Delete(name string, options *v1.DeleteOptions) error { + return c.client.Delete(). + Namespace(c.ns). + Resource("leases"). + Name(name). + Body(options). + Do(). + Error() +} + +// DeleteCollection deletes a collection of objects. +func (c *leases) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } + return c.client.Delete(). + Namespace(c.ns). + Resource("leases"). + VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). + Body(options). + Do(). + Error() +} + +// Patch applies the patch and returns the patched lease. +func (c *leases) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.Lease, err error) { + result = &v1beta1.Lease{} + err = c.client.Patch(pt). + Namespace(c.ns). + Resource("leases"). + SubResource(subresources...). + Name(name). + Body(data). + Do(). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/BUILD deleted file mode 100644 index 4c9f03aa4..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/BUILD +++ /dev/null @@ -1,70 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "componentstatus.go", - "configmap.go", - "core_client.go", - "doc.go", - "endpoints.go", - "event.go", - "event_expansion.go", - "generated_expansion.go", - "limitrange.go", - "namespace.go", - "namespace_expansion.go", - "node.go", - "node_expansion.go", - "persistentvolume.go", - "persistentvolumeclaim.go", - "pod.go", - "pod_expansion.go", - "podtemplate.go", - "replicationcontroller.go", - "resourcequota.go", - "secret.go", - "service.go", - "service_expansion.go", - "serviceaccount.go", - "serviceaccount_expansion.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/core/v1", - deps = [ - "//vendor/k8s.io/api/authentication/v1:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", - "//vendor/k8s.io/api/policy/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/net:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/tools/reference:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/core/v1/fake:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/componentstatus.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/componentstatus.go index 1717e7c19..302b2fdc3 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/componentstatus.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/componentstatus.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,8 +19,10 @@ limitations under the License. package v1 import ( + "time" + v1 "k8s.io/api/core/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" scheme "k8s.io/client-go/kubernetes/scheme" @@ -37,11 +39,11 @@ type ComponentStatusesGetter interface { type ComponentStatusInterface interface { Create(*v1.ComponentStatus) (*v1.ComponentStatus, error) Update(*v1.ComponentStatus) (*v1.ComponentStatus, error) - Delete(name string, options *meta_v1.DeleteOptions) error - DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error - Get(name string, options meta_v1.GetOptions) (*v1.ComponentStatus, error) - List(opts meta_v1.ListOptions) (*v1.ComponentStatusList, error) - Watch(opts meta_v1.ListOptions) (watch.Interface, error) + Delete(name string, options *metav1.DeleteOptions) error + DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error + Get(name string, options metav1.GetOptions) (*v1.ComponentStatus, error) + List(opts metav1.ListOptions) (*v1.ComponentStatusList, error) + Watch(opts metav1.ListOptions) (watch.Interface, error) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.ComponentStatus, err error) ComponentStatusExpansion } @@ -59,7 +61,7 @@ func newComponentStatuses(c *CoreV1Client) *componentStatuses { } // Get takes name of the componentStatus, and returns the corresponding componentStatus object, and an error if there is any. -func (c *componentStatuses) Get(name string, options meta_v1.GetOptions) (result *v1.ComponentStatus, err error) { +func (c *componentStatuses) Get(name string, options metav1.GetOptions) (result *v1.ComponentStatus, err error) { result = &v1.ComponentStatus{} err = c.client.Get(). Resource("componentstatuses"). @@ -71,22 +73,32 @@ func (c *componentStatuses) Get(name string, options meta_v1.GetOptions) (result } // List takes label and field selectors, and returns the list of ComponentStatuses that match those selectors. -func (c *componentStatuses) List(opts meta_v1.ListOptions) (result *v1.ComponentStatusList, err error) { +func (c *componentStatuses) List(opts metav1.ListOptions) (result *v1.ComponentStatusList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1.ComponentStatusList{} err = c.client.Get(). Resource("componentstatuses"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return } // Watch returns a watch.Interface that watches the requested componentStatuses. -func (c *componentStatuses) Watch(opts meta_v1.ListOptions) (watch.Interface, error) { +func (c *componentStatuses) Watch(opts metav1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Resource("componentstatuses"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -114,7 +126,7 @@ func (c *componentStatuses) Update(componentStatus *v1.ComponentStatus) (result } // Delete takes name of the componentStatus and deletes it. Returns an error if one occurs. -func (c *componentStatuses) Delete(name string, options *meta_v1.DeleteOptions) error { +func (c *componentStatuses) Delete(name string, options *metav1.DeleteOptions) error { return c.client.Delete(). Resource("componentstatuses"). Name(name). @@ -124,10 +136,15 @@ func (c *componentStatuses) Delete(name string, options *meta_v1.DeleteOptions) } // DeleteCollection deletes a collection of objects. -func (c *componentStatuses) DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error { +func (c *componentStatuses) DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Resource("componentstatuses"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/configmap.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/configmap.go index 6e7a12e5d..18ce954ae 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/configmap.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/configmap.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,8 +19,10 @@ limitations under the License. package v1 import ( + "time" + v1 "k8s.io/api/core/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" scheme "k8s.io/client-go/kubernetes/scheme" @@ -37,11 +39,11 @@ type ConfigMapsGetter interface { type ConfigMapInterface interface { Create(*v1.ConfigMap) (*v1.ConfigMap, error) Update(*v1.ConfigMap) (*v1.ConfigMap, error) - Delete(name string, options *meta_v1.DeleteOptions) error - DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error - Get(name string, options meta_v1.GetOptions) (*v1.ConfigMap, error) - List(opts meta_v1.ListOptions) (*v1.ConfigMapList, error) - Watch(opts meta_v1.ListOptions) (watch.Interface, error) + Delete(name string, options *metav1.DeleteOptions) error + DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error + Get(name string, options metav1.GetOptions) (*v1.ConfigMap, error) + List(opts metav1.ListOptions) (*v1.ConfigMapList, error) + Watch(opts metav1.ListOptions) (watch.Interface, error) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.ConfigMap, err error) ConfigMapExpansion } @@ -61,7 +63,7 @@ func newConfigMaps(c *CoreV1Client, namespace string) *configMaps { } // Get takes name of the configMap, and returns the corresponding configMap object, and an error if there is any. -func (c *configMaps) Get(name string, options meta_v1.GetOptions) (result *v1.ConfigMap, err error) { +func (c *configMaps) Get(name string, options metav1.GetOptions) (result *v1.ConfigMap, err error) { result = &v1.ConfigMap{} err = c.client.Get(). Namespace(c.ns). @@ -74,24 +76,34 @@ func (c *configMaps) Get(name string, options meta_v1.GetOptions) (result *v1.Co } // List takes label and field selectors, and returns the list of ConfigMaps that match those selectors. -func (c *configMaps) List(opts meta_v1.ListOptions) (result *v1.ConfigMapList, err error) { +func (c *configMaps) List(opts metav1.ListOptions) (result *v1.ConfigMapList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1.ConfigMapList{} err = c.client.Get(). Namespace(c.ns). Resource("configmaps"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return } // Watch returns a watch.Interface that watches the requested configMaps. -func (c *configMaps) Watch(opts meta_v1.ListOptions) (watch.Interface, error) { +func (c *configMaps) Watch(opts metav1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Namespace(c.ns). Resource("configmaps"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -121,7 +133,7 @@ func (c *configMaps) Update(configMap *v1.ConfigMap) (result *v1.ConfigMap, err } // Delete takes name of the configMap and deletes it. Returns an error if one occurs. -func (c *configMaps) Delete(name string, options *meta_v1.DeleteOptions) error { +func (c *configMaps) Delete(name string, options *metav1.DeleteOptions) error { return c.client.Delete(). Namespace(c.ns). Resource("configmaps"). @@ -132,11 +144,16 @@ func (c *configMaps) Delete(name string, options *meta_v1.DeleteOptions) error { } // DeleteCollection deletes a collection of objects. -func (c *configMaps) DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error { +func (c *configMaps) DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Namespace(c.ns). Resource("configmaps"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/core_client.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/core_client.go index 1c86c47d4..044a28ebd 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/core_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/core_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/doc.go index d007a2903..3af5d054f 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/endpoints.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/endpoints.go index 03b2a6919..978a2a196 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/endpoints.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/endpoints.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,8 +19,10 @@ limitations under the License. package v1 import ( + "time" + v1 "k8s.io/api/core/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" scheme "k8s.io/client-go/kubernetes/scheme" @@ -37,11 +39,11 @@ type EndpointsGetter interface { type EndpointsInterface interface { Create(*v1.Endpoints) (*v1.Endpoints, error) Update(*v1.Endpoints) (*v1.Endpoints, error) - Delete(name string, options *meta_v1.DeleteOptions) error - DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error - Get(name string, options meta_v1.GetOptions) (*v1.Endpoints, error) - List(opts meta_v1.ListOptions) (*v1.EndpointsList, error) - Watch(opts meta_v1.ListOptions) (watch.Interface, error) + Delete(name string, options *metav1.DeleteOptions) error + DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error + Get(name string, options metav1.GetOptions) (*v1.Endpoints, error) + List(opts metav1.ListOptions) (*v1.EndpointsList, error) + Watch(opts metav1.ListOptions) (watch.Interface, error) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.Endpoints, err error) EndpointsExpansion } @@ -61,7 +63,7 @@ func newEndpoints(c *CoreV1Client, namespace string) *endpoints { } // Get takes name of the endpoints, and returns the corresponding endpoints object, and an error if there is any. -func (c *endpoints) Get(name string, options meta_v1.GetOptions) (result *v1.Endpoints, err error) { +func (c *endpoints) Get(name string, options metav1.GetOptions) (result *v1.Endpoints, err error) { result = &v1.Endpoints{} err = c.client.Get(). Namespace(c.ns). @@ -74,24 +76,34 @@ func (c *endpoints) Get(name string, options meta_v1.GetOptions) (result *v1.End } // List takes label and field selectors, and returns the list of Endpoints that match those selectors. -func (c *endpoints) List(opts meta_v1.ListOptions) (result *v1.EndpointsList, err error) { +func (c *endpoints) List(opts metav1.ListOptions) (result *v1.EndpointsList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1.EndpointsList{} err = c.client.Get(). Namespace(c.ns). Resource("endpoints"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return } // Watch returns a watch.Interface that watches the requested endpoints. -func (c *endpoints) Watch(opts meta_v1.ListOptions) (watch.Interface, error) { +func (c *endpoints) Watch(opts metav1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Namespace(c.ns). Resource("endpoints"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -121,7 +133,7 @@ func (c *endpoints) Update(endpoints *v1.Endpoints) (result *v1.Endpoints, err e } // Delete takes name of the endpoints and deletes it. Returns an error if one occurs. -func (c *endpoints) Delete(name string, options *meta_v1.DeleteOptions) error { +func (c *endpoints) Delete(name string, options *metav1.DeleteOptions) error { return c.client.Delete(). Namespace(c.ns). Resource("endpoints"). @@ -132,11 +144,16 @@ func (c *endpoints) Delete(name string, options *meta_v1.DeleteOptions) error { } // DeleteCollection deletes a collection of objects. -func (c *endpoints) DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error { +func (c *endpoints) DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Namespace(c.ns). Resource("endpoints"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/event.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/event.go index b9570e689..55cfa0901 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/event.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/event.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,8 +19,10 @@ limitations under the License. package v1 import ( + "time" + v1 "k8s.io/api/core/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" scheme "k8s.io/client-go/kubernetes/scheme" @@ -37,11 +39,11 @@ type EventsGetter interface { type EventInterface interface { Create(*v1.Event) (*v1.Event, error) Update(*v1.Event) (*v1.Event, error) - Delete(name string, options *meta_v1.DeleteOptions) error - DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error - Get(name string, options meta_v1.GetOptions) (*v1.Event, error) - List(opts meta_v1.ListOptions) (*v1.EventList, error) - Watch(opts meta_v1.ListOptions) (watch.Interface, error) + Delete(name string, options *metav1.DeleteOptions) error + DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error + Get(name string, options metav1.GetOptions) (*v1.Event, error) + List(opts metav1.ListOptions) (*v1.EventList, error) + Watch(opts metav1.ListOptions) (watch.Interface, error) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.Event, err error) EventExpansion } @@ -61,7 +63,7 @@ func newEvents(c *CoreV1Client, namespace string) *events { } // Get takes name of the event, and returns the corresponding event object, and an error if there is any. -func (c *events) Get(name string, options meta_v1.GetOptions) (result *v1.Event, err error) { +func (c *events) Get(name string, options metav1.GetOptions) (result *v1.Event, err error) { result = &v1.Event{} err = c.client.Get(). Namespace(c.ns). @@ -74,24 +76,34 @@ func (c *events) Get(name string, options meta_v1.GetOptions) (result *v1.Event, } // List takes label and field selectors, and returns the list of Events that match those selectors. -func (c *events) List(opts meta_v1.ListOptions) (result *v1.EventList, err error) { +func (c *events) List(opts metav1.ListOptions) (result *v1.EventList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1.EventList{} err = c.client.Get(). Namespace(c.ns). Resource("events"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return } // Watch returns a watch.Interface that watches the requested events. -func (c *events) Watch(opts meta_v1.ListOptions) (watch.Interface, error) { +func (c *events) Watch(opts metav1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Namespace(c.ns). Resource("events"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -121,7 +133,7 @@ func (c *events) Update(event *v1.Event) (result *v1.Event, err error) { } // Delete takes name of the event and deletes it. Returns an error if one occurs. -func (c *events) Delete(name string, options *meta_v1.DeleteOptions) error { +func (c *events) Delete(name string, options *metav1.DeleteOptions) error { return c.client.Delete(). Namespace(c.ns). Resource("events"). @@ -132,11 +144,16 @@ func (c *events) Delete(name string, options *meta_v1.DeleteOptions) error { } // DeleteCollection deletes a collection of objects. -func (c *events) DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error { +func (c *events) DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Namespace(c.ns). Resource("events"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/BUILD deleted file mode 100644 index 7403a4997..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/BUILD +++ /dev/null @@ -1,66 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "fake_componentstatus.go", - "fake_configmap.go", - "fake_core_client.go", - "fake_endpoints.go", - "fake_event.go", - "fake_event_expansion.go", - "fake_limitrange.go", - "fake_namespace.go", - "fake_namespace_expansion.go", - "fake_node.go", - "fake_node_expansion.go", - "fake_persistentvolume.go", - "fake_persistentvolumeclaim.go", - "fake_pod.go", - "fake_pod_expansion.go", - "fake_podtemplate.go", - "fake_replicationcontroller.go", - "fake_resourcequota.go", - "fake_secret.go", - "fake_service.go", - "fake_service_expansion.go", - "fake_serviceaccount.go", - "fake_serviceaccount_expansion.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/core/v1/fake", - deps = [ - "//vendor/k8s.io/api/authentication/v1:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", - "//vendor/k8s.io/api/policy/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/core/v1:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/testing:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/doc.go index 87a1873ed..16f443990 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_componentstatus.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_componentstatus.go index 42039aea9..18beedc2d 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_componentstatus.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_componentstatus.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,7 +19,7 @@ limitations under the License. package fake import ( - core_v1 "k8s.io/api/core/v1" + corev1 "k8s.io/api/core/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" schema "k8s.io/apimachinery/pkg/runtime/schema" @@ -38,19 +38,19 @@ var componentstatusesResource = schema.GroupVersionResource{Group: "", Version: var componentstatusesKind = schema.GroupVersionKind{Group: "", Version: "v1", Kind: "ComponentStatus"} // Get takes name of the componentStatus, and returns the corresponding componentStatus object, and an error if there is any. -func (c *FakeComponentStatuses) Get(name string, options v1.GetOptions) (result *core_v1.ComponentStatus, err error) { +func (c *FakeComponentStatuses) Get(name string, options v1.GetOptions) (result *corev1.ComponentStatus, err error) { obj, err := c.Fake. - Invokes(testing.NewRootGetAction(componentstatusesResource, name), &core_v1.ComponentStatus{}) + Invokes(testing.NewRootGetAction(componentstatusesResource, name), &corev1.ComponentStatus{}) if obj == nil { return nil, err } - return obj.(*core_v1.ComponentStatus), err + return obj.(*corev1.ComponentStatus), err } // List takes label and field selectors, and returns the list of ComponentStatuses that match those selectors. -func (c *FakeComponentStatuses) List(opts v1.ListOptions) (result *core_v1.ComponentStatusList, err error) { +func (c *FakeComponentStatuses) List(opts v1.ListOptions) (result *corev1.ComponentStatusList, err error) { obj, err := c.Fake. - Invokes(testing.NewRootListAction(componentstatusesResource, componentstatusesKind, opts), &core_v1.ComponentStatusList{}) + Invokes(testing.NewRootListAction(componentstatusesResource, componentstatusesKind, opts), &corev1.ComponentStatusList{}) if obj == nil { return nil, err } @@ -59,8 +59,8 @@ func (c *FakeComponentStatuses) List(opts v1.ListOptions) (result *core_v1.Compo if label == nil { label = labels.Everything() } - list := &core_v1.ComponentStatusList{} - for _, item := range obj.(*core_v1.ComponentStatusList).Items { + list := &corev1.ComponentStatusList{ListMeta: obj.(*corev1.ComponentStatusList).ListMeta} + for _, item := range obj.(*corev1.ComponentStatusList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) } @@ -75,29 +75,29 @@ func (c *FakeComponentStatuses) Watch(opts v1.ListOptions) (watch.Interface, err } // Create takes the representation of a componentStatus and creates it. Returns the server's representation of the componentStatus, and an error, if there is any. -func (c *FakeComponentStatuses) Create(componentStatus *core_v1.ComponentStatus) (result *core_v1.ComponentStatus, err error) { +func (c *FakeComponentStatuses) Create(componentStatus *corev1.ComponentStatus) (result *corev1.ComponentStatus, err error) { obj, err := c.Fake. - Invokes(testing.NewRootCreateAction(componentstatusesResource, componentStatus), &core_v1.ComponentStatus{}) + Invokes(testing.NewRootCreateAction(componentstatusesResource, componentStatus), &corev1.ComponentStatus{}) if obj == nil { return nil, err } - return obj.(*core_v1.ComponentStatus), err + return obj.(*corev1.ComponentStatus), err } // Update takes the representation of a componentStatus and updates it. Returns the server's representation of the componentStatus, and an error, if there is any. -func (c *FakeComponentStatuses) Update(componentStatus *core_v1.ComponentStatus) (result *core_v1.ComponentStatus, err error) { +func (c *FakeComponentStatuses) Update(componentStatus *corev1.ComponentStatus) (result *corev1.ComponentStatus, err error) { obj, err := c.Fake. - Invokes(testing.NewRootUpdateAction(componentstatusesResource, componentStatus), &core_v1.ComponentStatus{}) + Invokes(testing.NewRootUpdateAction(componentstatusesResource, componentStatus), &corev1.ComponentStatus{}) if obj == nil { return nil, err } - return obj.(*core_v1.ComponentStatus), err + return obj.(*corev1.ComponentStatus), err } // Delete takes name of the componentStatus and deletes it. Returns an error if one occurs. func (c *FakeComponentStatuses) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. - Invokes(testing.NewRootDeleteAction(componentstatusesResource, name), &core_v1.ComponentStatus{}) + Invokes(testing.NewRootDeleteAction(componentstatusesResource, name), &corev1.ComponentStatus{}) return err } @@ -105,16 +105,16 @@ func (c *FakeComponentStatuses) Delete(name string, options *v1.DeleteOptions) e func (c *FakeComponentStatuses) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { action := testing.NewRootDeleteCollectionAction(componentstatusesResource, listOptions) - _, err := c.Fake.Invokes(action, &core_v1.ComponentStatusList{}) + _, err := c.Fake.Invokes(action, &corev1.ComponentStatusList{}) return err } // Patch applies the patch and returns the patched componentStatus. -func (c *FakeComponentStatuses) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core_v1.ComponentStatus, err error) { +func (c *FakeComponentStatuses) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *corev1.ComponentStatus, err error) { obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(componentstatusesResource, name, data, subresources...), &core_v1.ComponentStatus{}) + Invokes(testing.NewRootPatchSubresourceAction(componentstatusesResource, name, pt, data, subresources...), &corev1.ComponentStatus{}) if obj == nil { return nil, err } - return obj.(*core_v1.ComponentStatus), err + return obj.(*corev1.ComponentStatus), err } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_configmap.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_configmap.go index 8de1cde17..2361ac3fe 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_configmap.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_configmap.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,7 +19,7 @@ limitations under the License. package fake import ( - core_v1 "k8s.io/api/core/v1" + corev1 "k8s.io/api/core/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" schema "k8s.io/apimachinery/pkg/runtime/schema" @@ -39,20 +39,20 @@ var configmapsResource = schema.GroupVersionResource{Group: "", Version: "v1", R var configmapsKind = schema.GroupVersionKind{Group: "", Version: "v1", Kind: "ConfigMap"} // Get takes name of the configMap, and returns the corresponding configMap object, and an error if there is any. -func (c *FakeConfigMaps) Get(name string, options v1.GetOptions) (result *core_v1.ConfigMap, err error) { +func (c *FakeConfigMaps) Get(name string, options v1.GetOptions) (result *corev1.ConfigMap, err error) { obj, err := c.Fake. - Invokes(testing.NewGetAction(configmapsResource, c.ns, name), &core_v1.ConfigMap{}) + Invokes(testing.NewGetAction(configmapsResource, c.ns, name), &corev1.ConfigMap{}) if obj == nil { return nil, err } - return obj.(*core_v1.ConfigMap), err + return obj.(*corev1.ConfigMap), err } // List takes label and field selectors, and returns the list of ConfigMaps that match those selectors. -func (c *FakeConfigMaps) List(opts v1.ListOptions) (result *core_v1.ConfigMapList, err error) { +func (c *FakeConfigMaps) List(opts v1.ListOptions) (result *corev1.ConfigMapList, err error) { obj, err := c.Fake. - Invokes(testing.NewListAction(configmapsResource, configmapsKind, c.ns, opts), &core_v1.ConfigMapList{}) + Invokes(testing.NewListAction(configmapsResource, configmapsKind, c.ns, opts), &corev1.ConfigMapList{}) if obj == nil { return nil, err @@ -62,8 +62,8 @@ func (c *FakeConfigMaps) List(opts v1.ListOptions) (result *core_v1.ConfigMapLis if label == nil { label = labels.Everything() } - list := &core_v1.ConfigMapList{} - for _, item := range obj.(*core_v1.ConfigMapList).Items { + list := &corev1.ConfigMapList{ListMeta: obj.(*corev1.ConfigMapList).ListMeta} + for _, item := range obj.(*corev1.ConfigMapList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) } @@ -79,31 +79,31 @@ func (c *FakeConfigMaps) Watch(opts v1.ListOptions) (watch.Interface, error) { } // Create takes the representation of a configMap and creates it. Returns the server's representation of the configMap, and an error, if there is any. -func (c *FakeConfigMaps) Create(configMap *core_v1.ConfigMap) (result *core_v1.ConfigMap, err error) { +func (c *FakeConfigMaps) Create(configMap *corev1.ConfigMap) (result *corev1.ConfigMap, err error) { obj, err := c.Fake. - Invokes(testing.NewCreateAction(configmapsResource, c.ns, configMap), &core_v1.ConfigMap{}) + Invokes(testing.NewCreateAction(configmapsResource, c.ns, configMap), &corev1.ConfigMap{}) if obj == nil { return nil, err } - return obj.(*core_v1.ConfigMap), err + return obj.(*corev1.ConfigMap), err } // Update takes the representation of a configMap and updates it. Returns the server's representation of the configMap, and an error, if there is any. -func (c *FakeConfigMaps) Update(configMap *core_v1.ConfigMap) (result *core_v1.ConfigMap, err error) { +func (c *FakeConfigMaps) Update(configMap *corev1.ConfigMap) (result *corev1.ConfigMap, err error) { obj, err := c.Fake. - Invokes(testing.NewUpdateAction(configmapsResource, c.ns, configMap), &core_v1.ConfigMap{}) + Invokes(testing.NewUpdateAction(configmapsResource, c.ns, configMap), &corev1.ConfigMap{}) if obj == nil { return nil, err } - return obj.(*core_v1.ConfigMap), err + return obj.(*corev1.ConfigMap), err } // Delete takes name of the configMap and deletes it. Returns an error if one occurs. func (c *FakeConfigMaps) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. - Invokes(testing.NewDeleteAction(configmapsResource, c.ns, name), &core_v1.ConfigMap{}) + Invokes(testing.NewDeleteAction(configmapsResource, c.ns, name), &corev1.ConfigMap{}) return err } @@ -112,17 +112,17 @@ func (c *FakeConfigMaps) Delete(name string, options *v1.DeleteOptions) error { func (c *FakeConfigMaps) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { action := testing.NewDeleteCollectionAction(configmapsResource, c.ns, listOptions) - _, err := c.Fake.Invokes(action, &core_v1.ConfigMapList{}) + _, err := c.Fake.Invokes(action, &corev1.ConfigMapList{}) return err } // Patch applies the patch and returns the patched configMap. -func (c *FakeConfigMaps) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core_v1.ConfigMap, err error) { +func (c *FakeConfigMaps) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *corev1.ConfigMap, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(configmapsResource, c.ns, name, data, subresources...), &core_v1.ConfigMap{}) + Invokes(testing.NewPatchSubresourceAction(configmapsResource, c.ns, name, pt, data, subresources...), &corev1.ConfigMap{}) if obj == nil { return nil, err } - return obj.(*core_v1.ConfigMap), err + return obj.(*corev1.ConfigMap), err } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_core_client.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_core_client.go index b30c02de1..5ad90943c 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_core_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_core_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_endpoints.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_endpoints.go index 7b54929f6..d521af408 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_endpoints.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_endpoints.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,7 +19,7 @@ limitations under the License. package fake import ( - core_v1 "k8s.io/api/core/v1" + corev1 "k8s.io/api/core/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" schema "k8s.io/apimachinery/pkg/runtime/schema" @@ -39,20 +39,20 @@ var endpointsResource = schema.GroupVersionResource{Group: "", Version: "v1", Re var endpointsKind = schema.GroupVersionKind{Group: "", Version: "v1", Kind: "Endpoints"} // Get takes name of the endpoints, and returns the corresponding endpoints object, and an error if there is any. -func (c *FakeEndpoints) Get(name string, options v1.GetOptions) (result *core_v1.Endpoints, err error) { +func (c *FakeEndpoints) Get(name string, options v1.GetOptions) (result *corev1.Endpoints, err error) { obj, err := c.Fake. - Invokes(testing.NewGetAction(endpointsResource, c.ns, name), &core_v1.Endpoints{}) + Invokes(testing.NewGetAction(endpointsResource, c.ns, name), &corev1.Endpoints{}) if obj == nil { return nil, err } - return obj.(*core_v1.Endpoints), err + return obj.(*corev1.Endpoints), err } // List takes label and field selectors, and returns the list of Endpoints that match those selectors. -func (c *FakeEndpoints) List(opts v1.ListOptions) (result *core_v1.EndpointsList, err error) { +func (c *FakeEndpoints) List(opts v1.ListOptions) (result *corev1.EndpointsList, err error) { obj, err := c.Fake. - Invokes(testing.NewListAction(endpointsResource, endpointsKind, c.ns, opts), &core_v1.EndpointsList{}) + Invokes(testing.NewListAction(endpointsResource, endpointsKind, c.ns, opts), &corev1.EndpointsList{}) if obj == nil { return nil, err @@ -62,8 +62,8 @@ func (c *FakeEndpoints) List(opts v1.ListOptions) (result *core_v1.EndpointsList if label == nil { label = labels.Everything() } - list := &core_v1.EndpointsList{} - for _, item := range obj.(*core_v1.EndpointsList).Items { + list := &corev1.EndpointsList{ListMeta: obj.(*corev1.EndpointsList).ListMeta} + for _, item := range obj.(*corev1.EndpointsList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) } @@ -79,31 +79,31 @@ func (c *FakeEndpoints) Watch(opts v1.ListOptions) (watch.Interface, error) { } // Create takes the representation of a endpoints and creates it. Returns the server's representation of the endpoints, and an error, if there is any. -func (c *FakeEndpoints) Create(endpoints *core_v1.Endpoints) (result *core_v1.Endpoints, err error) { +func (c *FakeEndpoints) Create(endpoints *corev1.Endpoints) (result *corev1.Endpoints, err error) { obj, err := c.Fake. - Invokes(testing.NewCreateAction(endpointsResource, c.ns, endpoints), &core_v1.Endpoints{}) + Invokes(testing.NewCreateAction(endpointsResource, c.ns, endpoints), &corev1.Endpoints{}) if obj == nil { return nil, err } - return obj.(*core_v1.Endpoints), err + return obj.(*corev1.Endpoints), err } // Update takes the representation of a endpoints and updates it. Returns the server's representation of the endpoints, and an error, if there is any. -func (c *FakeEndpoints) Update(endpoints *core_v1.Endpoints) (result *core_v1.Endpoints, err error) { +func (c *FakeEndpoints) Update(endpoints *corev1.Endpoints) (result *corev1.Endpoints, err error) { obj, err := c.Fake. - Invokes(testing.NewUpdateAction(endpointsResource, c.ns, endpoints), &core_v1.Endpoints{}) + Invokes(testing.NewUpdateAction(endpointsResource, c.ns, endpoints), &corev1.Endpoints{}) if obj == nil { return nil, err } - return obj.(*core_v1.Endpoints), err + return obj.(*corev1.Endpoints), err } // Delete takes name of the endpoints and deletes it. Returns an error if one occurs. func (c *FakeEndpoints) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. - Invokes(testing.NewDeleteAction(endpointsResource, c.ns, name), &core_v1.Endpoints{}) + Invokes(testing.NewDeleteAction(endpointsResource, c.ns, name), &corev1.Endpoints{}) return err } @@ -112,17 +112,17 @@ func (c *FakeEndpoints) Delete(name string, options *v1.DeleteOptions) error { func (c *FakeEndpoints) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { action := testing.NewDeleteCollectionAction(endpointsResource, c.ns, listOptions) - _, err := c.Fake.Invokes(action, &core_v1.EndpointsList{}) + _, err := c.Fake.Invokes(action, &corev1.EndpointsList{}) return err } // Patch applies the patch and returns the patched endpoints. -func (c *FakeEndpoints) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core_v1.Endpoints, err error) { +func (c *FakeEndpoints) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *corev1.Endpoints, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(endpointsResource, c.ns, name, data, subresources...), &core_v1.Endpoints{}) + Invokes(testing.NewPatchSubresourceAction(endpointsResource, c.ns, name, pt, data, subresources...), &corev1.Endpoints{}) if obj == nil { return nil, err } - return obj.(*core_v1.Endpoints), err + return obj.(*corev1.Endpoints), err } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_event.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_event.go index 5ba47f419..3444f4be9 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_event.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_event.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,7 +19,7 @@ limitations under the License. package fake import ( - core_v1 "k8s.io/api/core/v1" + corev1 "k8s.io/api/core/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" schema "k8s.io/apimachinery/pkg/runtime/schema" @@ -39,20 +39,20 @@ var eventsResource = schema.GroupVersionResource{Group: "", Version: "v1", Resou var eventsKind = schema.GroupVersionKind{Group: "", Version: "v1", Kind: "Event"} // Get takes name of the event, and returns the corresponding event object, and an error if there is any. -func (c *FakeEvents) Get(name string, options v1.GetOptions) (result *core_v1.Event, err error) { +func (c *FakeEvents) Get(name string, options v1.GetOptions) (result *corev1.Event, err error) { obj, err := c.Fake. - Invokes(testing.NewGetAction(eventsResource, c.ns, name), &core_v1.Event{}) + Invokes(testing.NewGetAction(eventsResource, c.ns, name), &corev1.Event{}) if obj == nil { return nil, err } - return obj.(*core_v1.Event), err + return obj.(*corev1.Event), err } // List takes label and field selectors, and returns the list of Events that match those selectors. -func (c *FakeEvents) List(opts v1.ListOptions) (result *core_v1.EventList, err error) { +func (c *FakeEvents) List(opts v1.ListOptions) (result *corev1.EventList, err error) { obj, err := c.Fake. - Invokes(testing.NewListAction(eventsResource, eventsKind, c.ns, opts), &core_v1.EventList{}) + Invokes(testing.NewListAction(eventsResource, eventsKind, c.ns, opts), &corev1.EventList{}) if obj == nil { return nil, err @@ -62,8 +62,8 @@ func (c *FakeEvents) List(opts v1.ListOptions) (result *core_v1.EventList, err e if label == nil { label = labels.Everything() } - list := &core_v1.EventList{} - for _, item := range obj.(*core_v1.EventList).Items { + list := &corev1.EventList{ListMeta: obj.(*corev1.EventList).ListMeta} + for _, item := range obj.(*corev1.EventList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) } @@ -79,31 +79,31 @@ func (c *FakeEvents) Watch(opts v1.ListOptions) (watch.Interface, error) { } // Create takes the representation of a event and creates it. Returns the server's representation of the event, and an error, if there is any. -func (c *FakeEvents) Create(event *core_v1.Event) (result *core_v1.Event, err error) { +func (c *FakeEvents) Create(event *corev1.Event) (result *corev1.Event, err error) { obj, err := c.Fake. - Invokes(testing.NewCreateAction(eventsResource, c.ns, event), &core_v1.Event{}) + Invokes(testing.NewCreateAction(eventsResource, c.ns, event), &corev1.Event{}) if obj == nil { return nil, err } - return obj.(*core_v1.Event), err + return obj.(*corev1.Event), err } // Update takes the representation of a event and updates it. Returns the server's representation of the event, and an error, if there is any. -func (c *FakeEvents) Update(event *core_v1.Event) (result *core_v1.Event, err error) { +func (c *FakeEvents) Update(event *corev1.Event) (result *corev1.Event, err error) { obj, err := c.Fake. - Invokes(testing.NewUpdateAction(eventsResource, c.ns, event), &core_v1.Event{}) + Invokes(testing.NewUpdateAction(eventsResource, c.ns, event), &corev1.Event{}) if obj == nil { return nil, err } - return obj.(*core_v1.Event), err + return obj.(*corev1.Event), err } // Delete takes name of the event and deletes it. Returns an error if one occurs. func (c *FakeEvents) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. - Invokes(testing.NewDeleteAction(eventsResource, c.ns, name), &core_v1.Event{}) + Invokes(testing.NewDeleteAction(eventsResource, c.ns, name), &corev1.Event{}) return err } @@ -112,17 +112,17 @@ func (c *FakeEvents) Delete(name string, options *v1.DeleteOptions) error { func (c *FakeEvents) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { action := testing.NewDeleteCollectionAction(eventsResource, c.ns, listOptions) - _, err := c.Fake.Invokes(action, &core_v1.EventList{}) + _, err := c.Fake.Invokes(action, &corev1.EventList{}) return err } // Patch applies the patch and returns the patched event. -func (c *FakeEvents) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core_v1.Event, err error) { +func (c *FakeEvents) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *corev1.Event, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(eventsResource, c.ns, name, data, subresources...), &core_v1.Event{}) + Invokes(testing.NewPatchSubresourceAction(eventsResource, c.ns, name, pt, data, subresources...), &corev1.Event{}) if obj == nil { return nil, err } - return obj.(*core_v1.Event), err + return obj.(*corev1.Event), err } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_event_expansion.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_event_expansion.go index dd3fb8392..4b4c90d7d 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_event_expansion.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_event_expansion.go @@ -21,6 +21,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/fields" "k8s.io/apimachinery/pkg/runtime" + types "k8s.io/apimachinery/pkg/types" core "k8s.io/client-go/testing" ) @@ -52,10 +53,13 @@ func (c *FakeEvents) UpdateWithEventNamespace(event *v1.Event) (*v1.Event, error } // PatchWithEventNamespace patches an existing event. Returns the copy of the event the server returns, or an error. +// TODO: Should take a PatchType as an argument probably. func (c *FakeEvents) PatchWithEventNamespace(event *v1.Event, data []byte) (*v1.Event, error) { - action := core.NewRootPatchAction(eventsResource, event.Name, data) + // TODO: Should be configurable to support additional patch strategies. + pt := types.StrategicMergePatchType + action := core.NewRootPatchAction(eventsResource, event.Name, pt, data) if c.ns != "" { - action = core.NewPatchAction(eventsResource, c.ns, event.Name, data) + action = core.NewPatchAction(eventsResource, c.ns, event.Name, pt, data) } obj, err := c.Fake.Invokes(action, event) if obj == nil { diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_limitrange.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_limitrange.go index bd736980e..d110031f8 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_limitrange.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_limitrange.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,7 +19,7 @@ limitations under the License. package fake import ( - core_v1 "k8s.io/api/core/v1" + corev1 "k8s.io/api/core/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" schema "k8s.io/apimachinery/pkg/runtime/schema" @@ -39,20 +39,20 @@ var limitrangesResource = schema.GroupVersionResource{Group: "", Version: "v1", var limitrangesKind = schema.GroupVersionKind{Group: "", Version: "v1", Kind: "LimitRange"} // Get takes name of the limitRange, and returns the corresponding limitRange object, and an error if there is any. -func (c *FakeLimitRanges) Get(name string, options v1.GetOptions) (result *core_v1.LimitRange, err error) { +func (c *FakeLimitRanges) Get(name string, options v1.GetOptions) (result *corev1.LimitRange, err error) { obj, err := c.Fake. - Invokes(testing.NewGetAction(limitrangesResource, c.ns, name), &core_v1.LimitRange{}) + Invokes(testing.NewGetAction(limitrangesResource, c.ns, name), &corev1.LimitRange{}) if obj == nil { return nil, err } - return obj.(*core_v1.LimitRange), err + return obj.(*corev1.LimitRange), err } // List takes label and field selectors, and returns the list of LimitRanges that match those selectors. -func (c *FakeLimitRanges) List(opts v1.ListOptions) (result *core_v1.LimitRangeList, err error) { +func (c *FakeLimitRanges) List(opts v1.ListOptions) (result *corev1.LimitRangeList, err error) { obj, err := c.Fake. - Invokes(testing.NewListAction(limitrangesResource, limitrangesKind, c.ns, opts), &core_v1.LimitRangeList{}) + Invokes(testing.NewListAction(limitrangesResource, limitrangesKind, c.ns, opts), &corev1.LimitRangeList{}) if obj == nil { return nil, err @@ -62,8 +62,8 @@ func (c *FakeLimitRanges) List(opts v1.ListOptions) (result *core_v1.LimitRangeL if label == nil { label = labels.Everything() } - list := &core_v1.LimitRangeList{} - for _, item := range obj.(*core_v1.LimitRangeList).Items { + list := &corev1.LimitRangeList{ListMeta: obj.(*corev1.LimitRangeList).ListMeta} + for _, item := range obj.(*corev1.LimitRangeList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) } @@ -79,31 +79,31 @@ func (c *FakeLimitRanges) Watch(opts v1.ListOptions) (watch.Interface, error) { } // Create takes the representation of a limitRange and creates it. Returns the server's representation of the limitRange, and an error, if there is any. -func (c *FakeLimitRanges) Create(limitRange *core_v1.LimitRange) (result *core_v1.LimitRange, err error) { +func (c *FakeLimitRanges) Create(limitRange *corev1.LimitRange) (result *corev1.LimitRange, err error) { obj, err := c.Fake. - Invokes(testing.NewCreateAction(limitrangesResource, c.ns, limitRange), &core_v1.LimitRange{}) + Invokes(testing.NewCreateAction(limitrangesResource, c.ns, limitRange), &corev1.LimitRange{}) if obj == nil { return nil, err } - return obj.(*core_v1.LimitRange), err + return obj.(*corev1.LimitRange), err } // Update takes the representation of a limitRange and updates it. Returns the server's representation of the limitRange, and an error, if there is any. -func (c *FakeLimitRanges) Update(limitRange *core_v1.LimitRange) (result *core_v1.LimitRange, err error) { +func (c *FakeLimitRanges) Update(limitRange *corev1.LimitRange) (result *corev1.LimitRange, err error) { obj, err := c.Fake. - Invokes(testing.NewUpdateAction(limitrangesResource, c.ns, limitRange), &core_v1.LimitRange{}) + Invokes(testing.NewUpdateAction(limitrangesResource, c.ns, limitRange), &corev1.LimitRange{}) if obj == nil { return nil, err } - return obj.(*core_v1.LimitRange), err + return obj.(*corev1.LimitRange), err } // Delete takes name of the limitRange and deletes it. Returns an error if one occurs. func (c *FakeLimitRanges) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. - Invokes(testing.NewDeleteAction(limitrangesResource, c.ns, name), &core_v1.LimitRange{}) + Invokes(testing.NewDeleteAction(limitrangesResource, c.ns, name), &corev1.LimitRange{}) return err } @@ -112,17 +112,17 @@ func (c *FakeLimitRanges) Delete(name string, options *v1.DeleteOptions) error { func (c *FakeLimitRanges) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { action := testing.NewDeleteCollectionAction(limitrangesResource, c.ns, listOptions) - _, err := c.Fake.Invokes(action, &core_v1.LimitRangeList{}) + _, err := c.Fake.Invokes(action, &corev1.LimitRangeList{}) return err } // Patch applies the patch and returns the patched limitRange. -func (c *FakeLimitRanges) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core_v1.LimitRange, err error) { +func (c *FakeLimitRanges) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *corev1.LimitRange, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(limitrangesResource, c.ns, name, data, subresources...), &core_v1.LimitRange{}) + Invokes(testing.NewPatchSubresourceAction(limitrangesResource, c.ns, name, pt, data, subresources...), &corev1.LimitRange{}) if obj == nil { return nil, err } - return obj.(*core_v1.LimitRange), err + return obj.(*corev1.LimitRange), err } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_namespace.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_namespace.go index 84743469a..21387b5e2 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_namespace.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_namespace.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,7 +19,7 @@ limitations under the License. package fake import ( - core_v1 "k8s.io/api/core/v1" + corev1 "k8s.io/api/core/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" schema "k8s.io/apimachinery/pkg/runtime/schema" @@ -38,19 +38,19 @@ var namespacesResource = schema.GroupVersionResource{Group: "", Version: "v1", R var namespacesKind = schema.GroupVersionKind{Group: "", Version: "v1", Kind: "Namespace"} // Get takes name of the namespace, and returns the corresponding namespace object, and an error if there is any. -func (c *FakeNamespaces) Get(name string, options v1.GetOptions) (result *core_v1.Namespace, err error) { +func (c *FakeNamespaces) Get(name string, options v1.GetOptions) (result *corev1.Namespace, err error) { obj, err := c.Fake. - Invokes(testing.NewRootGetAction(namespacesResource, name), &core_v1.Namespace{}) + Invokes(testing.NewRootGetAction(namespacesResource, name), &corev1.Namespace{}) if obj == nil { return nil, err } - return obj.(*core_v1.Namespace), err + return obj.(*corev1.Namespace), err } // List takes label and field selectors, and returns the list of Namespaces that match those selectors. -func (c *FakeNamespaces) List(opts v1.ListOptions) (result *core_v1.NamespaceList, err error) { +func (c *FakeNamespaces) List(opts v1.ListOptions) (result *corev1.NamespaceList, err error) { obj, err := c.Fake. - Invokes(testing.NewRootListAction(namespacesResource, namespacesKind, opts), &core_v1.NamespaceList{}) + Invokes(testing.NewRootListAction(namespacesResource, namespacesKind, opts), &corev1.NamespaceList{}) if obj == nil { return nil, err } @@ -59,8 +59,8 @@ func (c *FakeNamespaces) List(opts v1.ListOptions) (result *core_v1.NamespaceLis if label == nil { label = labels.Everything() } - list := &core_v1.NamespaceList{} - for _, item := range obj.(*core_v1.NamespaceList).Items { + list := &corev1.NamespaceList{ListMeta: obj.(*corev1.NamespaceList).ListMeta} + for _, item := range obj.(*corev1.NamespaceList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) } @@ -75,57 +75,49 @@ func (c *FakeNamespaces) Watch(opts v1.ListOptions) (watch.Interface, error) { } // Create takes the representation of a namespace and creates it. Returns the server's representation of the namespace, and an error, if there is any. -func (c *FakeNamespaces) Create(namespace *core_v1.Namespace) (result *core_v1.Namespace, err error) { +func (c *FakeNamespaces) Create(namespace *corev1.Namespace) (result *corev1.Namespace, err error) { obj, err := c.Fake. - Invokes(testing.NewRootCreateAction(namespacesResource, namespace), &core_v1.Namespace{}) + Invokes(testing.NewRootCreateAction(namespacesResource, namespace), &corev1.Namespace{}) if obj == nil { return nil, err } - return obj.(*core_v1.Namespace), err + return obj.(*corev1.Namespace), err } // Update takes the representation of a namespace and updates it. Returns the server's representation of the namespace, and an error, if there is any. -func (c *FakeNamespaces) Update(namespace *core_v1.Namespace) (result *core_v1.Namespace, err error) { +func (c *FakeNamespaces) Update(namespace *corev1.Namespace) (result *corev1.Namespace, err error) { obj, err := c.Fake. - Invokes(testing.NewRootUpdateAction(namespacesResource, namespace), &core_v1.Namespace{}) + Invokes(testing.NewRootUpdateAction(namespacesResource, namespace), &corev1.Namespace{}) if obj == nil { return nil, err } - return obj.(*core_v1.Namespace), err + return obj.(*corev1.Namespace), err } // UpdateStatus was generated because the type contains a Status member. // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *FakeNamespaces) UpdateStatus(namespace *core_v1.Namespace) (*core_v1.Namespace, error) { +func (c *FakeNamespaces) UpdateStatus(namespace *corev1.Namespace) (*corev1.Namespace, error) { obj, err := c.Fake. - Invokes(testing.NewRootUpdateSubresourceAction(namespacesResource, "status", namespace), &core_v1.Namespace{}) + Invokes(testing.NewRootUpdateSubresourceAction(namespacesResource, "status", namespace), &corev1.Namespace{}) if obj == nil { return nil, err } - return obj.(*core_v1.Namespace), err + return obj.(*corev1.Namespace), err } // Delete takes name of the namespace and deletes it. Returns an error if one occurs. func (c *FakeNamespaces) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. - Invokes(testing.NewRootDeleteAction(namespacesResource, name), &core_v1.Namespace{}) - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeNamespaces) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { - action := testing.NewRootDeleteCollectionAction(namespacesResource, listOptions) - - _, err := c.Fake.Invokes(action, &core_v1.NamespaceList{}) + Invokes(testing.NewRootDeleteAction(namespacesResource, name), &corev1.Namespace{}) return err } // Patch applies the patch and returns the patched namespace. -func (c *FakeNamespaces) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core_v1.Namespace, err error) { +func (c *FakeNamespaces) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *corev1.Namespace, err error) { obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(namespacesResource, name, data, subresources...), &core_v1.Namespace{}) + Invokes(testing.NewRootPatchSubresourceAction(namespacesResource, name, pt, data, subresources...), &corev1.Namespace{}) if obj == nil { return nil, err } - return obj.(*core_v1.Namespace), err + return obj.(*corev1.Namespace), err } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_node.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_node.go index c7e042fc8..bcde116a4 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_node.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_node.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,7 +19,7 @@ limitations under the License. package fake import ( - core_v1 "k8s.io/api/core/v1" + corev1 "k8s.io/api/core/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" schema "k8s.io/apimachinery/pkg/runtime/schema" @@ -38,19 +38,19 @@ var nodesResource = schema.GroupVersionResource{Group: "", Version: "v1", Resour var nodesKind = schema.GroupVersionKind{Group: "", Version: "v1", Kind: "Node"} // Get takes name of the node, and returns the corresponding node object, and an error if there is any. -func (c *FakeNodes) Get(name string, options v1.GetOptions) (result *core_v1.Node, err error) { +func (c *FakeNodes) Get(name string, options v1.GetOptions) (result *corev1.Node, err error) { obj, err := c.Fake. - Invokes(testing.NewRootGetAction(nodesResource, name), &core_v1.Node{}) + Invokes(testing.NewRootGetAction(nodesResource, name), &corev1.Node{}) if obj == nil { return nil, err } - return obj.(*core_v1.Node), err + return obj.(*corev1.Node), err } // List takes label and field selectors, and returns the list of Nodes that match those selectors. -func (c *FakeNodes) List(opts v1.ListOptions) (result *core_v1.NodeList, err error) { +func (c *FakeNodes) List(opts v1.ListOptions) (result *corev1.NodeList, err error) { obj, err := c.Fake. - Invokes(testing.NewRootListAction(nodesResource, nodesKind, opts), &core_v1.NodeList{}) + Invokes(testing.NewRootListAction(nodesResource, nodesKind, opts), &corev1.NodeList{}) if obj == nil { return nil, err } @@ -59,8 +59,8 @@ func (c *FakeNodes) List(opts v1.ListOptions) (result *core_v1.NodeList, err err if label == nil { label = labels.Everything() } - list := &core_v1.NodeList{} - for _, item := range obj.(*core_v1.NodeList).Items { + list := &corev1.NodeList{ListMeta: obj.(*corev1.NodeList).ListMeta} + for _, item := range obj.(*corev1.NodeList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) } @@ -75,40 +75,40 @@ func (c *FakeNodes) Watch(opts v1.ListOptions) (watch.Interface, error) { } // Create takes the representation of a node and creates it. Returns the server's representation of the node, and an error, if there is any. -func (c *FakeNodes) Create(node *core_v1.Node) (result *core_v1.Node, err error) { +func (c *FakeNodes) Create(node *corev1.Node) (result *corev1.Node, err error) { obj, err := c.Fake. - Invokes(testing.NewRootCreateAction(nodesResource, node), &core_v1.Node{}) + Invokes(testing.NewRootCreateAction(nodesResource, node), &corev1.Node{}) if obj == nil { return nil, err } - return obj.(*core_v1.Node), err + return obj.(*corev1.Node), err } // Update takes the representation of a node and updates it. Returns the server's representation of the node, and an error, if there is any. -func (c *FakeNodes) Update(node *core_v1.Node) (result *core_v1.Node, err error) { +func (c *FakeNodes) Update(node *corev1.Node) (result *corev1.Node, err error) { obj, err := c.Fake. - Invokes(testing.NewRootUpdateAction(nodesResource, node), &core_v1.Node{}) + Invokes(testing.NewRootUpdateAction(nodesResource, node), &corev1.Node{}) if obj == nil { return nil, err } - return obj.(*core_v1.Node), err + return obj.(*corev1.Node), err } // UpdateStatus was generated because the type contains a Status member. // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *FakeNodes) UpdateStatus(node *core_v1.Node) (*core_v1.Node, error) { +func (c *FakeNodes) UpdateStatus(node *corev1.Node) (*corev1.Node, error) { obj, err := c.Fake. - Invokes(testing.NewRootUpdateSubresourceAction(nodesResource, "status", node), &core_v1.Node{}) + Invokes(testing.NewRootUpdateSubresourceAction(nodesResource, "status", node), &corev1.Node{}) if obj == nil { return nil, err } - return obj.(*core_v1.Node), err + return obj.(*corev1.Node), err } // Delete takes name of the node and deletes it. Returns an error if one occurs. func (c *FakeNodes) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. - Invokes(testing.NewRootDeleteAction(nodesResource, name), &core_v1.Node{}) + Invokes(testing.NewRootDeleteAction(nodesResource, name), &corev1.Node{}) return err } @@ -116,16 +116,16 @@ func (c *FakeNodes) Delete(name string, options *v1.DeleteOptions) error { func (c *FakeNodes) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { action := testing.NewRootDeleteCollectionAction(nodesResource, listOptions) - _, err := c.Fake.Invokes(action, &core_v1.NodeList{}) + _, err := c.Fake.Invokes(action, &corev1.NodeList{}) return err } // Patch applies the patch and returns the patched node. -func (c *FakeNodes) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core_v1.Node, err error) { +func (c *FakeNodes) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *corev1.Node, err error) { obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(nodesResource, name, data, subresources...), &core_v1.Node{}) + Invokes(testing.NewRootPatchSubresourceAction(nodesResource, name, pt, data, subresources...), &corev1.Node{}) if obj == nil { return nil, err } - return obj.(*core_v1.Node), err + return obj.(*corev1.Node), err } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_node_expansion.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_node_expansion.go index eb684fd29..a39022c83 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_node_expansion.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_node_expansion.go @@ -18,12 +18,16 @@ package fake import ( "k8s.io/api/core/v1" + types "k8s.io/apimachinery/pkg/types" core "k8s.io/client-go/testing" ) +// TODO: Should take a PatchType as an argument probably. func (c *FakeNodes) PatchStatus(nodeName string, data []byte) (*v1.Node, error) { + // TODO: Should be configurable to support additional patch strategies. + pt := types.StrategicMergePatchType obj, err := c.Fake.Invokes( - core.NewRootPatchSubresourceAction(nodesResource, nodeName, data, "status"), &v1.Node{}) + core.NewRootPatchSubresourceAction(nodesResource, nodeName, pt, data, "status"), &v1.Node{}) if obj == nil { return nil, err } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_persistentvolume.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_persistentvolume.go index 1be38a89e..843f32307 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_persistentvolume.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_persistentvolume.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,7 +19,7 @@ limitations under the License. package fake import ( - core_v1 "k8s.io/api/core/v1" + corev1 "k8s.io/api/core/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" schema "k8s.io/apimachinery/pkg/runtime/schema" @@ -38,19 +38,19 @@ var persistentvolumesResource = schema.GroupVersionResource{Group: "", Version: var persistentvolumesKind = schema.GroupVersionKind{Group: "", Version: "v1", Kind: "PersistentVolume"} // Get takes name of the persistentVolume, and returns the corresponding persistentVolume object, and an error if there is any. -func (c *FakePersistentVolumes) Get(name string, options v1.GetOptions) (result *core_v1.PersistentVolume, err error) { +func (c *FakePersistentVolumes) Get(name string, options v1.GetOptions) (result *corev1.PersistentVolume, err error) { obj, err := c.Fake. - Invokes(testing.NewRootGetAction(persistentvolumesResource, name), &core_v1.PersistentVolume{}) + Invokes(testing.NewRootGetAction(persistentvolumesResource, name), &corev1.PersistentVolume{}) if obj == nil { return nil, err } - return obj.(*core_v1.PersistentVolume), err + return obj.(*corev1.PersistentVolume), err } // List takes label and field selectors, and returns the list of PersistentVolumes that match those selectors. -func (c *FakePersistentVolumes) List(opts v1.ListOptions) (result *core_v1.PersistentVolumeList, err error) { +func (c *FakePersistentVolumes) List(opts v1.ListOptions) (result *corev1.PersistentVolumeList, err error) { obj, err := c.Fake. - Invokes(testing.NewRootListAction(persistentvolumesResource, persistentvolumesKind, opts), &core_v1.PersistentVolumeList{}) + Invokes(testing.NewRootListAction(persistentvolumesResource, persistentvolumesKind, opts), &corev1.PersistentVolumeList{}) if obj == nil { return nil, err } @@ -59,8 +59,8 @@ func (c *FakePersistentVolumes) List(opts v1.ListOptions) (result *core_v1.Persi if label == nil { label = labels.Everything() } - list := &core_v1.PersistentVolumeList{} - for _, item := range obj.(*core_v1.PersistentVolumeList).Items { + list := &corev1.PersistentVolumeList{ListMeta: obj.(*corev1.PersistentVolumeList).ListMeta} + for _, item := range obj.(*corev1.PersistentVolumeList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) } @@ -75,40 +75,40 @@ func (c *FakePersistentVolumes) Watch(opts v1.ListOptions) (watch.Interface, err } // Create takes the representation of a persistentVolume and creates it. Returns the server's representation of the persistentVolume, and an error, if there is any. -func (c *FakePersistentVolumes) Create(persistentVolume *core_v1.PersistentVolume) (result *core_v1.PersistentVolume, err error) { +func (c *FakePersistentVolumes) Create(persistentVolume *corev1.PersistentVolume) (result *corev1.PersistentVolume, err error) { obj, err := c.Fake. - Invokes(testing.NewRootCreateAction(persistentvolumesResource, persistentVolume), &core_v1.PersistentVolume{}) + Invokes(testing.NewRootCreateAction(persistentvolumesResource, persistentVolume), &corev1.PersistentVolume{}) if obj == nil { return nil, err } - return obj.(*core_v1.PersistentVolume), err + return obj.(*corev1.PersistentVolume), err } // Update takes the representation of a persistentVolume and updates it. Returns the server's representation of the persistentVolume, and an error, if there is any. -func (c *FakePersistentVolumes) Update(persistentVolume *core_v1.PersistentVolume) (result *core_v1.PersistentVolume, err error) { +func (c *FakePersistentVolumes) Update(persistentVolume *corev1.PersistentVolume) (result *corev1.PersistentVolume, err error) { obj, err := c.Fake. - Invokes(testing.NewRootUpdateAction(persistentvolumesResource, persistentVolume), &core_v1.PersistentVolume{}) + Invokes(testing.NewRootUpdateAction(persistentvolumesResource, persistentVolume), &corev1.PersistentVolume{}) if obj == nil { return nil, err } - return obj.(*core_v1.PersistentVolume), err + return obj.(*corev1.PersistentVolume), err } // UpdateStatus was generated because the type contains a Status member. // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *FakePersistentVolumes) UpdateStatus(persistentVolume *core_v1.PersistentVolume) (*core_v1.PersistentVolume, error) { +func (c *FakePersistentVolumes) UpdateStatus(persistentVolume *corev1.PersistentVolume) (*corev1.PersistentVolume, error) { obj, err := c.Fake. - Invokes(testing.NewRootUpdateSubresourceAction(persistentvolumesResource, "status", persistentVolume), &core_v1.PersistentVolume{}) + Invokes(testing.NewRootUpdateSubresourceAction(persistentvolumesResource, "status", persistentVolume), &corev1.PersistentVolume{}) if obj == nil { return nil, err } - return obj.(*core_v1.PersistentVolume), err + return obj.(*corev1.PersistentVolume), err } // Delete takes name of the persistentVolume and deletes it. Returns an error if one occurs. func (c *FakePersistentVolumes) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. - Invokes(testing.NewRootDeleteAction(persistentvolumesResource, name), &core_v1.PersistentVolume{}) + Invokes(testing.NewRootDeleteAction(persistentvolumesResource, name), &corev1.PersistentVolume{}) return err } @@ -116,16 +116,16 @@ func (c *FakePersistentVolumes) Delete(name string, options *v1.DeleteOptions) e func (c *FakePersistentVolumes) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { action := testing.NewRootDeleteCollectionAction(persistentvolumesResource, listOptions) - _, err := c.Fake.Invokes(action, &core_v1.PersistentVolumeList{}) + _, err := c.Fake.Invokes(action, &corev1.PersistentVolumeList{}) return err } // Patch applies the patch and returns the patched persistentVolume. -func (c *FakePersistentVolumes) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core_v1.PersistentVolume, err error) { +func (c *FakePersistentVolumes) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *corev1.PersistentVolume, err error) { obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(persistentvolumesResource, name, data, subresources...), &core_v1.PersistentVolume{}) + Invokes(testing.NewRootPatchSubresourceAction(persistentvolumesResource, name, pt, data, subresources...), &corev1.PersistentVolume{}) if obj == nil { return nil, err } - return obj.(*core_v1.PersistentVolume), err + return obj.(*corev1.PersistentVolume), err } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_persistentvolumeclaim.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_persistentvolumeclaim.go index ea189bb9c..d2557c4c8 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_persistentvolumeclaim.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_persistentvolumeclaim.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,7 +19,7 @@ limitations under the License. package fake import ( - core_v1 "k8s.io/api/core/v1" + corev1 "k8s.io/api/core/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" schema "k8s.io/apimachinery/pkg/runtime/schema" @@ -39,20 +39,20 @@ var persistentvolumeclaimsResource = schema.GroupVersionResource{Group: "", Vers var persistentvolumeclaimsKind = schema.GroupVersionKind{Group: "", Version: "v1", Kind: "PersistentVolumeClaim"} // Get takes name of the persistentVolumeClaim, and returns the corresponding persistentVolumeClaim object, and an error if there is any. -func (c *FakePersistentVolumeClaims) Get(name string, options v1.GetOptions) (result *core_v1.PersistentVolumeClaim, err error) { +func (c *FakePersistentVolumeClaims) Get(name string, options v1.GetOptions) (result *corev1.PersistentVolumeClaim, err error) { obj, err := c.Fake. - Invokes(testing.NewGetAction(persistentvolumeclaimsResource, c.ns, name), &core_v1.PersistentVolumeClaim{}) + Invokes(testing.NewGetAction(persistentvolumeclaimsResource, c.ns, name), &corev1.PersistentVolumeClaim{}) if obj == nil { return nil, err } - return obj.(*core_v1.PersistentVolumeClaim), err + return obj.(*corev1.PersistentVolumeClaim), err } // List takes label and field selectors, and returns the list of PersistentVolumeClaims that match those selectors. -func (c *FakePersistentVolumeClaims) List(opts v1.ListOptions) (result *core_v1.PersistentVolumeClaimList, err error) { +func (c *FakePersistentVolumeClaims) List(opts v1.ListOptions) (result *corev1.PersistentVolumeClaimList, err error) { obj, err := c.Fake. - Invokes(testing.NewListAction(persistentvolumeclaimsResource, persistentvolumeclaimsKind, c.ns, opts), &core_v1.PersistentVolumeClaimList{}) + Invokes(testing.NewListAction(persistentvolumeclaimsResource, persistentvolumeclaimsKind, c.ns, opts), &corev1.PersistentVolumeClaimList{}) if obj == nil { return nil, err @@ -62,8 +62,8 @@ func (c *FakePersistentVolumeClaims) List(opts v1.ListOptions) (result *core_v1. if label == nil { label = labels.Everything() } - list := &core_v1.PersistentVolumeClaimList{} - for _, item := range obj.(*core_v1.PersistentVolumeClaimList).Items { + list := &corev1.PersistentVolumeClaimList{ListMeta: obj.(*corev1.PersistentVolumeClaimList).ListMeta} + for _, item := range obj.(*corev1.PersistentVolumeClaimList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) } @@ -79,43 +79,43 @@ func (c *FakePersistentVolumeClaims) Watch(opts v1.ListOptions) (watch.Interface } // Create takes the representation of a persistentVolumeClaim and creates it. Returns the server's representation of the persistentVolumeClaim, and an error, if there is any. -func (c *FakePersistentVolumeClaims) Create(persistentVolumeClaim *core_v1.PersistentVolumeClaim) (result *core_v1.PersistentVolumeClaim, err error) { +func (c *FakePersistentVolumeClaims) Create(persistentVolumeClaim *corev1.PersistentVolumeClaim) (result *corev1.PersistentVolumeClaim, err error) { obj, err := c.Fake. - Invokes(testing.NewCreateAction(persistentvolumeclaimsResource, c.ns, persistentVolumeClaim), &core_v1.PersistentVolumeClaim{}) + Invokes(testing.NewCreateAction(persistentvolumeclaimsResource, c.ns, persistentVolumeClaim), &corev1.PersistentVolumeClaim{}) if obj == nil { return nil, err } - return obj.(*core_v1.PersistentVolumeClaim), err + return obj.(*corev1.PersistentVolumeClaim), err } // Update takes the representation of a persistentVolumeClaim and updates it. Returns the server's representation of the persistentVolumeClaim, and an error, if there is any. -func (c *FakePersistentVolumeClaims) Update(persistentVolumeClaim *core_v1.PersistentVolumeClaim) (result *core_v1.PersistentVolumeClaim, err error) { +func (c *FakePersistentVolumeClaims) Update(persistentVolumeClaim *corev1.PersistentVolumeClaim) (result *corev1.PersistentVolumeClaim, err error) { obj, err := c.Fake. - Invokes(testing.NewUpdateAction(persistentvolumeclaimsResource, c.ns, persistentVolumeClaim), &core_v1.PersistentVolumeClaim{}) + Invokes(testing.NewUpdateAction(persistentvolumeclaimsResource, c.ns, persistentVolumeClaim), &corev1.PersistentVolumeClaim{}) if obj == nil { return nil, err } - return obj.(*core_v1.PersistentVolumeClaim), err + return obj.(*corev1.PersistentVolumeClaim), err } // UpdateStatus was generated because the type contains a Status member. // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *FakePersistentVolumeClaims) UpdateStatus(persistentVolumeClaim *core_v1.PersistentVolumeClaim) (*core_v1.PersistentVolumeClaim, error) { +func (c *FakePersistentVolumeClaims) UpdateStatus(persistentVolumeClaim *corev1.PersistentVolumeClaim) (*corev1.PersistentVolumeClaim, error) { obj, err := c.Fake. - Invokes(testing.NewUpdateSubresourceAction(persistentvolumeclaimsResource, "status", c.ns, persistentVolumeClaim), &core_v1.PersistentVolumeClaim{}) + Invokes(testing.NewUpdateSubresourceAction(persistentvolumeclaimsResource, "status", c.ns, persistentVolumeClaim), &corev1.PersistentVolumeClaim{}) if obj == nil { return nil, err } - return obj.(*core_v1.PersistentVolumeClaim), err + return obj.(*corev1.PersistentVolumeClaim), err } // Delete takes name of the persistentVolumeClaim and deletes it. Returns an error if one occurs. func (c *FakePersistentVolumeClaims) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. - Invokes(testing.NewDeleteAction(persistentvolumeclaimsResource, c.ns, name), &core_v1.PersistentVolumeClaim{}) + Invokes(testing.NewDeleteAction(persistentvolumeclaimsResource, c.ns, name), &corev1.PersistentVolumeClaim{}) return err } @@ -124,17 +124,17 @@ func (c *FakePersistentVolumeClaims) Delete(name string, options *v1.DeleteOptio func (c *FakePersistentVolumeClaims) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { action := testing.NewDeleteCollectionAction(persistentvolumeclaimsResource, c.ns, listOptions) - _, err := c.Fake.Invokes(action, &core_v1.PersistentVolumeClaimList{}) + _, err := c.Fake.Invokes(action, &corev1.PersistentVolumeClaimList{}) return err } // Patch applies the patch and returns the patched persistentVolumeClaim. -func (c *FakePersistentVolumeClaims) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core_v1.PersistentVolumeClaim, err error) { +func (c *FakePersistentVolumeClaims) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *corev1.PersistentVolumeClaim, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(persistentvolumeclaimsResource, c.ns, name, data, subresources...), &core_v1.PersistentVolumeClaim{}) + Invokes(testing.NewPatchSubresourceAction(persistentvolumeclaimsResource, c.ns, name, pt, data, subresources...), &corev1.PersistentVolumeClaim{}) if obj == nil { return nil, err } - return obj.(*core_v1.PersistentVolumeClaim), err + return obj.(*corev1.PersistentVolumeClaim), err } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_pod.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_pod.go index 6f5faef99..2dbecbbaa 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_pod.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_pod.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,7 +19,7 @@ limitations under the License. package fake import ( - core_v1 "k8s.io/api/core/v1" + corev1 "k8s.io/api/core/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" schema "k8s.io/apimachinery/pkg/runtime/schema" @@ -39,20 +39,20 @@ var podsResource = schema.GroupVersionResource{Group: "", Version: "v1", Resourc var podsKind = schema.GroupVersionKind{Group: "", Version: "v1", Kind: "Pod"} // Get takes name of the pod, and returns the corresponding pod object, and an error if there is any. -func (c *FakePods) Get(name string, options v1.GetOptions) (result *core_v1.Pod, err error) { +func (c *FakePods) Get(name string, options v1.GetOptions) (result *corev1.Pod, err error) { obj, err := c.Fake. - Invokes(testing.NewGetAction(podsResource, c.ns, name), &core_v1.Pod{}) + Invokes(testing.NewGetAction(podsResource, c.ns, name), &corev1.Pod{}) if obj == nil { return nil, err } - return obj.(*core_v1.Pod), err + return obj.(*corev1.Pod), err } // List takes label and field selectors, and returns the list of Pods that match those selectors. -func (c *FakePods) List(opts v1.ListOptions) (result *core_v1.PodList, err error) { +func (c *FakePods) List(opts v1.ListOptions) (result *corev1.PodList, err error) { obj, err := c.Fake. - Invokes(testing.NewListAction(podsResource, podsKind, c.ns, opts), &core_v1.PodList{}) + Invokes(testing.NewListAction(podsResource, podsKind, c.ns, opts), &corev1.PodList{}) if obj == nil { return nil, err @@ -62,8 +62,8 @@ func (c *FakePods) List(opts v1.ListOptions) (result *core_v1.PodList, err error if label == nil { label = labels.Everything() } - list := &core_v1.PodList{} - for _, item := range obj.(*core_v1.PodList).Items { + list := &corev1.PodList{ListMeta: obj.(*corev1.PodList).ListMeta} + for _, item := range obj.(*corev1.PodList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) } @@ -79,43 +79,43 @@ func (c *FakePods) Watch(opts v1.ListOptions) (watch.Interface, error) { } // Create takes the representation of a pod and creates it. Returns the server's representation of the pod, and an error, if there is any. -func (c *FakePods) Create(pod *core_v1.Pod) (result *core_v1.Pod, err error) { +func (c *FakePods) Create(pod *corev1.Pod) (result *corev1.Pod, err error) { obj, err := c.Fake. - Invokes(testing.NewCreateAction(podsResource, c.ns, pod), &core_v1.Pod{}) + Invokes(testing.NewCreateAction(podsResource, c.ns, pod), &corev1.Pod{}) if obj == nil { return nil, err } - return obj.(*core_v1.Pod), err + return obj.(*corev1.Pod), err } // Update takes the representation of a pod and updates it. Returns the server's representation of the pod, and an error, if there is any. -func (c *FakePods) Update(pod *core_v1.Pod) (result *core_v1.Pod, err error) { +func (c *FakePods) Update(pod *corev1.Pod) (result *corev1.Pod, err error) { obj, err := c.Fake. - Invokes(testing.NewUpdateAction(podsResource, c.ns, pod), &core_v1.Pod{}) + Invokes(testing.NewUpdateAction(podsResource, c.ns, pod), &corev1.Pod{}) if obj == nil { return nil, err } - return obj.(*core_v1.Pod), err + return obj.(*corev1.Pod), err } // UpdateStatus was generated because the type contains a Status member. // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *FakePods) UpdateStatus(pod *core_v1.Pod) (*core_v1.Pod, error) { +func (c *FakePods) UpdateStatus(pod *corev1.Pod) (*corev1.Pod, error) { obj, err := c.Fake. - Invokes(testing.NewUpdateSubresourceAction(podsResource, "status", c.ns, pod), &core_v1.Pod{}) + Invokes(testing.NewUpdateSubresourceAction(podsResource, "status", c.ns, pod), &corev1.Pod{}) if obj == nil { return nil, err } - return obj.(*core_v1.Pod), err + return obj.(*corev1.Pod), err } // Delete takes name of the pod and deletes it. Returns an error if one occurs. func (c *FakePods) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. - Invokes(testing.NewDeleteAction(podsResource, c.ns, name), &core_v1.Pod{}) + Invokes(testing.NewDeleteAction(podsResource, c.ns, name), &corev1.Pod{}) return err } @@ -124,17 +124,17 @@ func (c *FakePods) Delete(name string, options *v1.DeleteOptions) error { func (c *FakePods) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { action := testing.NewDeleteCollectionAction(podsResource, c.ns, listOptions) - _, err := c.Fake.Invokes(action, &core_v1.PodList{}) + _, err := c.Fake.Invokes(action, &corev1.PodList{}) return err } // Patch applies the patch and returns the patched pod. -func (c *FakePods) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core_v1.Pod, err error) { +func (c *FakePods) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *corev1.Pod, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(podsResource, c.ns, name, data, subresources...), &core_v1.Pod{}) + Invokes(testing.NewPatchSubresourceAction(podsResource, c.ns, name, pt, data, subresources...), &corev1.Pod{}) if obj == nil { return nil, err } - return obj.(*core_v1.Pod), err + return obj.(*corev1.Pod), err } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_pod_expansion.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_pod_expansion.go index 497cc7857..9c4b09d3e 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_pod_expansion.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_pod_expansion.go @@ -26,20 +26,31 @@ import ( func (c *FakePods) Bind(binding *v1.Binding) error { action := core.CreateActionImpl{} action.Verb = "create" + action.Namespace = binding.Namespace action.Resource = podsResource - action.Subresource = "bindings" + action.Subresource = "binding" action.Object = binding _, err := c.Fake.Invokes(action, binding) return err } +func (c *FakePods) GetBinding(name string) (result *v1.Binding, err error) { + obj, err := c.Fake. + Invokes(core.NewGetSubresourceAction(podsResource, c.ns, "binding", name), &v1.Binding{}) + + if obj == nil { + return nil, err + } + return obj.(*v1.Binding), err +} + func (c *FakePods) GetLogs(name string, opts *v1.PodLogOptions) *restclient.Request { action := core.GenericActionImpl{} action.Verb = "get" action.Namespace = c.ns action.Resource = podsResource - action.Subresource = "logs" + action.Subresource = "log" action.Value = opts _, _ = c.Fake.Invokes(action, &v1.Pod{}) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_podtemplate.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_podtemplate.go index 1dd272e78..307f30594 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_podtemplate.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_podtemplate.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,7 +19,7 @@ limitations under the License. package fake import ( - core_v1 "k8s.io/api/core/v1" + corev1 "k8s.io/api/core/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" schema "k8s.io/apimachinery/pkg/runtime/schema" @@ -39,20 +39,20 @@ var podtemplatesResource = schema.GroupVersionResource{Group: "", Version: "v1", var podtemplatesKind = schema.GroupVersionKind{Group: "", Version: "v1", Kind: "PodTemplate"} // Get takes name of the podTemplate, and returns the corresponding podTemplate object, and an error if there is any. -func (c *FakePodTemplates) Get(name string, options v1.GetOptions) (result *core_v1.PodTemplate, err error) { +func (c *FakePodTemplates) Get(name string, options v1.GetOptions) (result *corev1.PodTemplate, err error) { obj, err := c.Fake. - Invokes(testing.NewGetAction(podtemplatesResource, c.ns, name), &core_v1.PodTemplate{}) + Invokes(testing.NewGetAction(podtemplatesResource, c.ns, name), &corev1.PodTemplate{}) if obj == nil { return nil, err } - return obj.(*core_v1.PodTemplate), err + return obj.(*corev1.PodTemplate), err } // List takes label and field selectors, and returns the list of PodTemplates that match those selectors. -func (c *FakePodTemplates) List(opts v1.ListOptions) (result *core_v1.PodTemplateList, err error) { +func (c *FakePodTemplates) List(opts v1.ListOptions) (result *corev1.PodTemplateList, err error) { obj, err := c.Fake. - Invokes(testing.NewListAction(podtemplatesResource, podtemplatesKind, c.ns, opts), &core_v1.PodTemplateList{}) + Invokes(testing.NewListAction(podtemplatesResource, podtemplatesKind, c.ns, opts), &corev1.PodTemplateList{}) if obj == nil { return nil, err @@ -62,8 +62,8 @@ func (c *FakePodTemplates) List(opts v1.ListOptions) (result *core_v1.PodTemplat if label == nil { label = labels.Everything() } - list := &core_v1.PodTemplateList{} - for _, item := range obj.(*core_v1.PodTemplateList).Items { + list := &corev1.PodTemplateList{ListMeta: obj.(*corev1.PodTemplateList).ListMeta} + for _, item := range obj.(*corev1.PodTemplateList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) } @@ -79,31 +79,31 @@ func (c *FakePodTemplates) Watch(opts v1.ListOptions) (watch.Interface, error) { } // Create takes the representation of a podTemplate and creates it. Returns the server's representation of the podTemplate, and an error, if there is any. -func (c *FakePodTemplates) Create(podTemplate *core_v1.PodTemplate) (result *core_v1.PodTemplate, err error) { +func (c *FakePodTemplates) Create(podTemplate *corev1.PodTemplate) (result *corev1.PodTemplate, err error) { obj, err := c.Fake. - Invokes(testing.NewCreateAction(podtemplatesResource, c.ns, podTemplate), &core_v1.PodTemplate{}) + Invokes(testing.NewCreateAction(podtemplatesResource, c.ns, podTemplate), &corev1.PodTemplate{}) if obj == nil { return nil, err } - return obj.(*core_v1.PodTemplate), err + return obj.(*corev1.PodTemplate), err } // Update takes the representation of a podTemplate and updates it. Returns the server's representation of the podTemplate, and an error, if there is any. -func (c *FakePodTemplates) Update(podTemplate *core_v1.PodTemplate) (result *core_v1.PodTemplate, err error) { +func (c *FakePodTemplates) Update(podTemplate *corev1.PodTemplate) (result *corev1.PodTemplate, err error) { obj, err := c.Fake. - Invokes(testing.NewUpdateAction(podtemplatesResource, c.ns, podTemplate), &core_v1.PodTemplate{}) + Invokes(testing.NewUpdateAction(podtemplatesResource, c.ns, podTemplate), &corev1.PodTemplate{}) if obj == nil { return nil, err } - return obj.(*core_v1.PodTemplate), err + return obj.(*corev1.PodTemplate), err } // Delete takes name of the podTemplate and deletes it. Returns an error if one occurs. func (c *FakePodTemplates) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. - Invokes(testing.NewDeleteAction(podtemplatesResource, c.ns, name), &core_v1.PodTemplate{}) + Invokes(testing.NewDeleteAction(podtemplatesResource, c.ns, name), &corev1.PodTemplate{}) return err } @@ -112,17 +112,17 @@ func (c *FakePodTemplates) Delete(name string, options *v1.DeleteOptions) error func (c *FakePodTemplates) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { action := testing.NewDeleteCollectionAction(podtemplatesResource, c.ns, listOptions) - _, err := c.Fake.Invokes(action, &core_v1.PodTemplateList{}) + _, err := c.Fake.Invokes(action, &corev1.PodTemplateList{}) return err } // Patch applies the patch and returns the patched podTemplate. -func (c *FakePodTemplates) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core_v1.PodTemplate, err error) { +func (c *FakePodTemplates) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *corev1.PodTemplate, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(podtemplatesResource, c.ns, name, data, subresources...), &core_v1.PodTemplate{}) + Invokes(testing.NewPatchSubresourceAction(podtemplatesResource, c.ns, name, pt, data, subresources...), &corev1.PodTemplate{}) if obj == nil { return nil, err } - return obj.(*core_v1.PodTemplate), err + return obj.(*corev1.PodTemplate), err } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_replicationcontroller.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_replicationcontroller.go index 047831a31..6de94c148 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_replicationcontroller.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_replicationcontroller.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,8 +19,8 @@ limitations under the License. package fake import ( - core_v1 "k8s.io/api/core/v1" - v1beta1 "k8s.io/api/extensions/v1beta1" + autoscalingv1 "k8s.io/api/autoscaling/v1" + corev1 "k8s.io/api/core/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" schema "k8s.io/apimachinery/pkg/runtime/schema" @@ -40,20 +40,20 @@ var replicationcontrollersResource = schema.GroupVersionResource{Group: "", Vers var replicationcontrollersKind = schema.GroupVersionKind{Group: "", Version: "v1", Kind: "ReplicationController"} // Get takes name of the replicationController, and returns the corresponding replicationController object, and an error if there is any. -func (c *FakeReplicationControllers) Get(name string, options v1.GetOptions) (result *core_v1.ReplicationController, err error) { +func (c *FakeReplicationControllers) Get(name string, options v1.GetOptions) (result *corev1.ReplicationController, err error) { obj, err := c.Fake. - Invokes(testing.NewGetAction(replicationcontrollersResource, c.ns, name), &core_v1.ReplicationController{}) + Invokes(testing.NewGetAction(replicationcontrollersResource, c.ns, name), &corev1.ReplicationController{}) if obj == nil { return nil, err } - return obj.(*core_v1.ReplicationController), err + return obj.(*corev1.ReplicationController), err } // List takes label and field selectors, and returns the list of ReplicationControllers that match those selectors. -func (c *FakeReplicationControllers) List(opts v1.ListOptions) (result *core_v1.ReplicationControllerList, err error) { +func (c *FakeReplicationControllers) List(opts v1.ListOptions) (result *corev1.ReplicationControllerList, err error) { obj, err := c.Fake. - Invokes(testing.NewListAction(replicationcontrollersResource, replicationcontrollersKind, c.ns, opts), &core_v1.ReplicationControllerList{}) + Invokes(testing.NewListAction(replicationcontrollersResource, replicationcontrollersKind, c.ns, opts), &corev1.ReplicationControllerList{}) if obj == nil { return nil, err @@ -63,8 +63,8 @@ func (c *FakeReplicationControllers) List(opts v1.ListOptions) (result *core_v1. if label == nil { label = labels.Everything() } - list := &core_v1.ReplicationControllerList{} - for _, item := range obj.(*core_v1.ReplicationControllerList).Items { + list := &corev1.ReplicationControllerList{ListMeta: obj.(*corev1.ReplicationControllerList).ListMeta} + for _, item := range obj.(*corev1.ReplicationControllerList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) } @@ -80,43 +80,43 @@ func (c *FakeReplicationControllers) Watch(opts v1.ListOptions) (watch.Interface } // Create takes the representation of a replicationController and creates it. Returns the server's representation of the replicationController, and an error, if there is any. -func (c *FakeReplicationControllers) Create(replicationController *core_v1.ReplicationController) (result *core_v1.ReplicationController, err error) { +func (c *FakeReplicationControllers) Create(replicationController *corev1.ReplicationController) (result *corev1.ReplicationController, err error) { obj, err := c.Fake. - Invokes(testing.NewCreateAction(replicationcontrollersResource, c.ns, replicationController), &core_v1.ReplicationController{}) + Invokes(testing.NewCreateAction(replicationcontrollersResource, c.ns, replicationController), &corev1.ReplicationController{}) if obj == nil { return nil, err } - return obj.(*core_v1.ReplicationController), err + return obj.(*corev1.ReplicationController), err } // Update takes the representation of a replicationController and updates it. Returns the server's representation of the replicationController, and an error, if there is any. -func (c *FakeReplicationControllers) Update(replicationController *core_v1.ReplicationController) (result *core_v1.ReplicationController, err error) { +func (c *FakeReplicationControllers) Update(replicationController *corev1.ReplicationController) (result *corev1.ReplicationController, err error) { obj, err := c.Fake. - Invokes(testing.NewUpdateAction(replicationcontrollersResource, c.ns, replicationController), &core_v1.ReplicationController{}) + Invokes(testing.NewUpdateAction(replicationcontrollersResource, c.ns, replicationController), &corev1.ReplicationController{}) if obj == nil { return nil, err } - return obj.(*core_v1.ReplicationController), err + return obj.(*corev1.ReplicationController), err } // UpdateStatus was generated because the type contains a Status member. // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *FakeReplicationControllers) UpdateStatus(replicationController *core_v1.ReplicationController) (*core_v1.ReplicationController, error) { +func (c *FakeReplicationControllers) UpdateStatus(replicationController *corev1.ReplicationController) (*corev1.ReplicationController, error) { obj, err := c.Fake. - Invokes(testing.NewUpdateSubresourceAction(replicationcontrollersResource, "status", c.ns, replicationController), &core_v1.ReplicationController{}) + Invokes(testing.NewUpdateSubresourceAction(replicationcontrollersResource, "status", c.ns, replicationController), &corev1.ReplicationController{}) if obj == nil { return nil, err } - return obj.(*core_v1.ReplicationController), err + return obj.(*corev1.ReplicationController), err } // Delete takes name of the replicationController and deletes it. Returns an error if one occurs. func (c *FakeReplicationControllers) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. - Invokes(testing.NewDeleteAction(replicationcontrollersResource, c.ns, name), &core_v1.ReplicationController{}) + Invokes(testing.NewDeleteAction(replicationcontrollersResource, c.ns, name), &corev1.ReplicationController{}) return err } @@ -125,39 +125,39 @@ func (c *FakeReplicationControllers) Delete(name string, options *v1.DeleteOptio func (c *FakeReplicationControllers) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { action := testing.NewDeleteCollectionAction(replicationcontrollersResource, c.ns, listOptions) - _, err := c.Fake.Invokes(action, &core_v1.ReplicationControllerList{}) + _, err := c.Fake.Invokes(action, &corev1.ReplicationControllerList{}) return err } // Patch applies the patch and returns the patched replicationController. -func (c *FakeReplicationControllers) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core_v1.ReplicationController, err error) { +func (c *FakeReplicationControllers) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *corev1.ReplicationController, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(replicationcontrollersResource, c.ns, name, data, subresources...), &core_v1.ReplicationController{}) + Invokes(testing.NewPatchSubresourceAction(replicationcontrollersResource, c.ns, name, pt, data, subresources...), &corev1.ReplicationController{}) if obj == nil { return nil, err } - return obj.(*core_v1.ReplicationController), err + return obj.(*corev1.ReplicationController), err } // GetScale takes name of the replicationController, and returns the corresponding scale object, and an error if there is any. -func (c *FakeReplicationControllers) GetScale(replicationControllerName string, options v1.GetOptions) (result *v1beta1.Scale, err error) { +func (c *FakeReplicationControllers) GetScale(replicationControllerName string, options v1.GetOptions) (result *autoscalingv1.Scale, err error) { obj, err := c.Fake. - Invokes(testing.NewGetSubresourceAction(replicationcontrollersResource, c.ns, "scale", replicationControllerName), &v1beta1.Scale{}) + Invokes(testing.NewGetSubresourceAction(replicationcontrollersResource, c.ns, "scale", replicationControllerName), &autoscalingv1.Scale{}) if obj == nil { return nil, err } - return obj.(*v1beta1.Scale), err + return obj.(*autoscalingv1.Scale), err } // UpdateScale takes the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any. -func (c *FakeReplicationControllers) UpdateScale(replicationControllerName string, scale *v1beta1.Scale) (result *v1beta1.Scale, err error) { +func (c *FakeReplicationControllers) UpdateScale(replicationControllerName string, scale *autoscalingv1.Scale) (result *autoscalingv1.Scale, err error) { obj, err := c.Fake. - Invokes(testing.NewUpdateSubresourceAction(replicationcontrollersResource, "scale", c.ns, scale), &v1beta1.Scale{}) + Invokes(testing.NewUpdateSubresourceAction(replicationcontrollersResource, "scale", c.ns, scale), &autoscalingv1.Scale{}) if obj == nil { return nil, err } - return obj.(*v1beta1.Scale), err + return obj.(*autoscalingv1.Scale), err } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_resourcequota.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_resourcequota.go index afdc8c88a..b521f7120 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_resourcequota.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_resourcequota.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,7 +19,7 @@ limitations under the License. package fake import ( - core_v1 "k8s.io/api/core/v1" + corev1 "k8s.io/api/core/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" schema "k8s.io/apimachinery/pkg/runtime/schema" @@ -39,20 +39,20 @@ var resourcequotasResource = schema.GroupVersionResource{Group: "", Version: "v1 var resourcequotasKind = schema.GroupVersionKind{Group: "", Version: "v1", Kind: "ResourceQuota"} // Get takes name of the resourceQuota, and returns the corresponding resourceQuota object, and an error if there is any. -func (c *FakeResourceQuotas) Get(name string, options v1.GetOptions) (result *core_v1.ResourceQuota, err error) { +func (c *FakeResourceQuotas) Get(name string, options v1.GetOptions) (result *corev1.ResourceQuota, err error) { obj, err := c.Fake. - Invokes(testing.NewGetAction(resourcequotasResource, c.ns, name), &core_v1.ResourceQuota{}) + Invokes(testing.NewGetAction(resourcequotasResource, c.ns, name), &corev1.ResourceQuota{}) if obj == nil { return nil, err } - return obj.(*core_v1.ResourceQuota), err + return obj.(*corev1.ResourceQuota), err } // List takes label and field selectors, and returns the list of ResourceQuotas that match those selectors. -func (c *FakeResourceQuotas) List(opts v1.ListOptions) (result *core_v1.ResourceQuotaList, err error) { +func (c *FakeResourceQuotas) List(opts v1.ListOptions) (result *corev1.ResourceQuotaList, err error) { obj, err := c.Fake. - Invokes(testing.NewListAction(resourcequotasResource, resourcequotasKind, c.ns, opts), &core_v1.ResourceQuotaList{}) + Invokes(testing.NewListAction(resourcequotasResource, resourcequotasKind, c.ns, opts), &corev1.ResourceQuotaList{}) if obj == nil { return nil, err @@ -62,8 +62,8 @@ func (c *FakeResourceQuotas) List(opts v1.ListOptions) (result *core_v1.Resource if label == nil { label = labels.Everything() } - list := &core_v1.ResourceQuotaList{} - for _, item := range obj.(*core_v1.ResourceQuotaList).Items { + list := &corev1.ResourceQuotaList{ListMeta: obj.(*corev1.ResourceQuotaList).ListMeta} + for _, item := range obj.(*corev1.ResourceQuotaList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) } @@ -79,43 +79,43 @@ func (c *FakeResourceQuotas) Watch(opts v1.ListOptions) (watch.Interface, error) } // Create takes the representation of a resourceQuota and creates it. Returns the server's representation of the resourceQuota, and an error, if there is any. -func (c *FakeResourceQuotas) Create(resourceQuota *core_v1.ResourceQuota) (result *core_v1.ResourceQuota, err error) { +func (c *FakeResourceQuotas) Create(resourceQuota *corev1.ResourceQuota) (result *corev1.ResourceQuota, err error) { obj, err := c.Fake. - Invokes(testing.NewCreateAction(resourcequotasResource, c.ns, resourceQuota), &core_v1.ResourceQuota{}) + Invokes(testing.NewCreateAction(resourcequotasResource, c.ns, resourceQuota), &corev1.ResourceQuota{}) if obj == nil { return nil, err } - return obj.(*core_v1.ResourceQuota), err + return obj.(*corev1.ResourceQuota), err } // Update takes the representation of a resourceQuota and updates it. Returns the server's representation of the resourceQuota, and an error, if there is any. -func (c *FakeResourceQuotas) Update(resourceQuota *core_v1.ResourceQuota) (result *core_v1.ResourceQuota, err error) { +func (c *FakeResourceQuotas) Update(resourceQuota *corev1.ResourceQuota) (result *corev1.ResourceQuota, err error) { obj, err := c.Fake. - Invokes(testing.NewUpdateAction(resourcequotasResource, c.ns, resourceQuota), &core_v1.ResourceQuota{}) + Invokes(testing.NewUpdateAction(resourcequotasResource, c.ns, resourceQuota), &corev1.ResourceQuota{}) if obj == nil { return nil, err } - return obj.(*core_v1.ResourceQuota), err + return obj.(*corev1.ResourceQuota), err } // UpdateStatus was generated because the type contains a Status member. // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *FakeResourceQuotas) UpdateStatus(resourceQuota *core_v1.ResourceQuota) (*core_v1.ResourceQuota, error) { +func (c *FakeResourceQuotas) UpdateStatus(resourceQuota *corev1.ResourceQuota) (*corev1.ResourceQuota, error) { obj, err := c.Fake. - Invokes(testing.NewUpdateSubresourceAction(resourcequotasResource, "status", c.ns, resourceQuota), &core_v1.ResourceQuota{}) + Invokes(testing.NewUpdateSubresourceAction(resourcequotasResource, "status", c.ns, resourceQuota), &corev1.ResourceQuota{}) if obj == nil { return nil, err } - return obj.(*core_v1.ResourceQuota), err + return obj.(*corev1.ResourceQuota), err } // Delete takes name of the resourceQuota and deletes it. Returns an error if one occurs. func (c *FakeResourceQuotas) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. - Invokes(testing.NewDeleteAction(resourcequotasResource, c.ns, name), &core_v1.ResourceQuota{}) + Invokes(testing.NewDeleteAction(resourcequotasResource, c.ns, name), &corev1.ResourceQuota{}) return err } @@ -124,17 +124,17 @@ func (c *FakeResourceQuotas) Delete(name string, options *v1.DeleteOptions) erro func (c *FakeResourceQuotas) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { action := testing.NewDeleteCollectionAction(resourcequotasResource, c.ns, listOptions) - _, err := c.Fake.Invokes(action, &core_v1.ResourceQuotaList{}) + _, err := c.Fake.Invokes(action, &corev1.ResourceQuotaList{}) return err } // Patch applies the patch and returns the patched resourceQuota. -func (c *FakeResourceQuotas) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core_v1.ResourceQuota, err error) { +func (c *FakeResourceQuotas) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *corev1.ResourceQuota, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(resourcequotasResource, c.ns, name, data, subresources...), &core_v1.ResourceQuota{}) + Invokes(testing.NewPatchSubresourceAction(resourcequotasResource, c.ns, name, pt, data, subresources...), &corev1.ResourceQuota{}) if obj == nil { return nil, err } - return obj.(*core_v1.ResourceQuota), err + return obj.(*corev1.ResourceQuota), err } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_secret.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_secret.go index abf7db090..47dba9eff 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_secret.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_secret.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,7 +19,7 @@ limitations under the License. package fake import ( - core_v1 "k8s.io/api/core/v1" + corev1 "k8s.io/api/core/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" schema "k8s.io/apimachinery/pkg/runtime/schema" @@ -39,20 +39,20 @@ var secretsResource = schema.GroupVersionResource{Group: "", Version: "v1", Reso var secretsKind = schema.GroupVersionKind{Group: "", Version: "v1", Kind: "Secret"} // Get takes name of the secret, and returns the corresponding secret object, and an error if there is any. -func (c *FakeSecrets) Get(name string, options v1.GetOptions) (result *core_v1.Secret, err error) { +func (c *FakeSecrets) Get(name string, options v1.GetOptions) (result *corev1.Secret, err error) { obj, err := c.Fake. - Invokes(testing.NewGetAction(secretsResource, c.ns, name), &core_v1.Secret{}) + Invokes(testing.NewGetAction(secretsResource, c.ns, name), &corev1.Secret{}) if obj == nil { return nil, err } - return obj.(*core_v1.Secret), err + return obj.(*corev1.Secret), err } // List takes label and field selectors, and returns the list of Secrets that match those selectors. -func (c *FakeSecrets) List(opts v1.ListOptions) (result *core_v1.SecretList, err error) { +func (c *FakeSecrets) List(opts v1.ListOptions) (result *corev1.SecretList, err error) { obj, err := c.Fake. - Invokes(testing.NewListAction(secretsResource, secretsKind, c.ns, opts), &core_v1.SecretList{}) + Invokes(testing.NewListAction(secretsResource, secretsKind, c.ns, opts), &corev1.SecretList{}) if obj == nil { return nil, err @@ -62,8 +62,8 @@ func (c *FakeSecrets) List(opts v1.ListOptions) (result *core_v1.SecretList, err if label == nil { label = labels.Everything() } - list := &core_v1.SecretList{} - for _, item := range obj.(*core_v1.SecretList).Items { + list := &corev1.SecretList{ListMeta: obj.(*corev1.SecretList).ListMeta} + for _, item := range obj.(*corev1.SecretList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) } @@ -79,31 +79,31 @@ func (c *FakeSecrets) Watch(opts v1.ListOptions) (watch.Interface, error) { } // Create takes the representation of a secret and creates it. Returns the server's representation of the secret, and an error, if there is any. -func (c *FakeSecrets) Create(secret *core_v1.Secret) (result *core_v1.Secret, err error) { +func (c *FakeSecrets) Create(secret *corev1.Secret) (result *corev1.Secret, err error) { obj, err := c.Fake. - Invokes(testing.NewCreateAction(secretsResource, c.ns, secret), &core_v1.Secret{}) + Invokes(testing.NewCreateAction(secretsResource, c.ns, secret), &corev1.Secret{}) if obj == nil { return nil, err } - return obj.(*core_v1.Secret), err + return obj.(*corev1.Secret), err } // Update takes the representation of a secret and updates it. Returns the server's representation of the secret, and an error, if there is any. -func (c *FakeSecrets) Update(secret *core_v1.Secret) (result *core_v1.Secret, err error) { +func (c *FakeSecrets) Update(secret *corev1.Secret) (result *corev1.Secret, err error) { obj, err := c.Fake. - Invokes(testing.NewUpdateAction(secretsResource, c.ns, secret), &core_v1.Secret{}) + Invokes(testing.NewUpdateAction(secretsResource, c.ns, secret), &corev1.Secret{}) if obj == nil { return nil, err } - return obj.(*core_v1.Secret), err + return obj.(*corev1.Secret), err } // Delete takes name of the secret and deletes it. Returns an error if one occurs. func (c *FakeSecrets) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. - Invokes(testing.NewDeleteAction(secretsResource, c.ns, name), &core_v1.Secret{}) + Invokes(testing.NewDeleteAction(secretsResource, c.ns, name), &corev1.Secret{}) return err } @@ -112,17 +112,17 @@ func (c *FakeSecrets) Delete(name string, options *v1.DeleteOptions) error { func (c *FakeSecrets) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { action := testing.NewDeleteCollectionAction(secretsResource, c.ns, listOptions) - _, err := c.Fake.Invokes(action, &core_v1.SecretList{}) + _, err := c.Fake.Invokes(action, &corev1.SecretList{}) return err } // Patch applies the patch and returns the patched secret. -func (c *FakeSecrets) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core_v1.Secret, err error) { +func (c *FakeSecrets) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *corev1.Secret, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(secretsResource, c.ns, name, data, subresources...), &core_v1.Secret{}) + Invokes(testing.NewPatchSubresourceAction(secretsResource, c.ns, name, pt, data, subresources...), &corev1.Secret{}) if obj == nil { return nil, err } - return obj.(*core_v1.Secret), err + return obj.(*corev1.Secret), err } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_service.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_service.go index 7ce885ae8..a65de4991 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_service.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_service.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,7 +19,7 @@ limitations under the License. package fake import ( - core_v1 "k8s.io/api/core/v1" + corev1 "k8s.io/api/core/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" schema "k8s.io/apimachinery/pkg/runtime/schema" @@ -39,20 +39,20 @@ var servicesResource = schema.GroupVersionResource{Group: "", Version: "v1", Res var servicesKind = schema.GroupVersionKind{Group: "", Version: "v1", Kind: "Service"} // Get takes name of the service, and returns the corresponding service object, and an error if there is any. -func (c *FakeServices) Get(name string, options v1.GetOptions) (result *core_v1.Service, err error) { +func (c *FakeServices) Get(name string, options v1.GetOptions) (result *corev1.Service, err error) { obj, err := c.Fake. - Invokes(testing.NewGetAction(servicesResource, c.ns, name), &core_v1.Service{}) + Invokes(testing.NewGetAction(servicesResource, c.ns, name), &corev1.Service{}) if obj == nil { return nil, err } - return obj.(*core_v1.Service), err + return obj.(*corev1.Service), err } // List takes label and field selectors, and returns the list of Services that match those selectors. -func (c *FakeServices) List(opts v1.ListOptions) (result *core_v1.ServiceList, err error) { +func (c *FakeServices) List(opts v1.ListOptions) (result *corev1.ServiceList, err error) { obj, err := c.Fake. - Invokes(testing.NewListAction(servicesResource, servicesKind, c.ns, opts), &core_v1.ServiceList{}) + Invokes(testing.NewListAction(servicesResource, servicesKind, c.ns, opts), &corev1.ServiceList{}) if obj == nil { return nil, err @@ -62,8 +62,8 @@ func (c *FakeServices) List(opts v1.ListOptions) (result *core_v1.ServiceList, e if label == nil { label = labels.Everything() } - list := &core_v1.ServiceList{} - for _, item := range obj.(*core_v1.ServiceList).Items { + list := &corev1.ServiceList{ListMeta: obj.(*corev1.ServiceList).ListMeta} + for _, item := range obj.(*corev1.ServiceList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) } @@ -79,62 +79,54 @@ func (c *FakeServices) Watch(opts v1.ListOptions) (watch.Interface, error) { } // Create takes the representation of a service and creates it. Returns the server's representation of the service, and an error, if there is any. -func (c *FakeServices) Create(service *core_v1.Service) (result *core_v1.Service, err error) { +func (c *FakeServices) Create(service *corev1.Service) (result *corev1.Service, err error) { obj, err := c.Fake. - Invokes(testing.NewCreateAction(servicesResource, c.ns, service), &core_v1.Service{}) + Invokes(testing.NewCreateAction(servicesResource, c.ns, service), &corev1.Service{}) if obj == nil { return nil, err } - return obj.(*core_v1.Service), err + return obj.(*corev1.Service), err } // Update takes the representation of a service and updates it. Returns the server's representation of the service, and an error, if there is any. -func (c *FakeServices) Update(service *core_v1.Service) (result *core_v1.Service, err error) { +func (c *FakeServices) Update(service *corev1.Service) (result *corev1.Service, err error) { obj, err := c.Fake. - Invokes(testing.NewUpdateAction(servicesResource, c.ns, service), &core_v1.Service{}) + Invokes(testing.NewUpdateAction(servicesResource, c.ns, service), &corev1.Service{}) if obj == nil { return nil, err } - return obj.(*core_v1.Service), err + return obj.(*corev1.Service), err } // UpdateStatus was generated because the type contains a Status member. // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *FakeServices) UpdateStatus(service *core_v1.Service) (*core_v1.Service, error) { +func (c *FakeServices) UpdateStatus(service *corev1.Service) (*corev1.Service, error) { obj, err := c.Fake. - Invokes(testing.NewUpdateSubresourceAction(servicesResource, "status", c.ns, service), &core_v1.Service{}) + Invokes(testing.NewUpdateSubresourceAction(servicesResource, "status", c.ns, service), &corev1.Service{}) if obj == nil { return nil, err } - return obj.(*core_v1.Service), err + return obj.(*corev1.Service), err } // Delete takes name of the service and deletes it. Returns an error if one occurs. func (c *FakeServices) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. - Invokes(testing.NewDeleteAction(servicesResource, c.ns, name), &core_v1.Service{}) + Invokes(testing.NewDeleteAction(servicesResource, c.ns, name), &corev1.Service{}) return err } -// DeleteCollection deletes a collection of objects. -func (c *FakeServices) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { - action := testing.NewDeleteCollectionAction(servicesResource, c.ns, listOptions) - - _, err := c.Fake.Invokes(action, &core_v1.ServiceList{}) - return err -} - // Patch applies the patch and returns the patched service. -func (c *FakeServices) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core_v1.Service, err error) { +func (c *FakeServices) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *corev1.Service, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(servicesResource, c.ns, name, data, subresources...), &core_v1.Service{}) + Invokes(testing.NewPatchSubresourceAction(servicesResource, c.ns, name, pt, data, subresources...), &corev1.Service{}) if obj == nil { return nil, err } - return obj.(*core_v1.Service), err + return obj.(*corev1.Service), err } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_serviceaccount.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_serviceaccount.go index 635b2c32b..5b6d8f8be 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_serviceaccount.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_serviceaccount.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,7 +19,7 @@ limitations under the License. package fake import ( - core_v1 "k8s.io/api/core/v1" + corev1 "k8s.io/api/core/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" schema "k8s.io/apimachinery/pkg/runtime/schema" @@ -39,20 +39,20 @@ var serviceaccountsResource = schema.GroupVersionResource{Group: "", Version: "v var serviceaccountsKind = schema.GroupVersionKind{Group: "", Version: "v1", Kind: "ServiceAccount"} // Get takes name of the serviceAccount, and returns the corresponding serviceAccount object, and an error if there is any. -func (c *FakeServiceAccounts) Get(name string, options v1.GetOptions) (result *core_v1.ServiceAccount, err error) { +func (c *FakeServiceAccounts) Get(name string, options v1.GetOptions) (result *corev1.ServiceAccount, err error) { obj, err := c.Fake. - Invokes(testing.NewGetAction(serviceaccountsResource, c.ns, name), &core_v1.ServiceAccount{}) + Invokes(testing.NewGetAction(serviceaccountsResource, c.ns, name), &corev1.ServiceAccount{}) if obj == nil { return nil, err } - return obj.(*core_v1.ServiceAccount), err + return obj.(*corev1.ServiceAccount), err } // List takes label and field selectors, and returns the list of ServiceAccounts that match those selectors. -func (c *FakeServiceAccounts) List(opts v1.ListOptions) (result *core_v1.ServiceAccountList, err error) { +func (c *FakeServiceAccounts) List(opts v1.ListOptions) (result *corev1.ServiceAccountList, err error) { obj, err := c.Fake. - Invokes(testing.NewListAction(serviceaccountsResource, serviceaccountsKind, c.ns, opts), &core_v1.ServiceAccountList{}) + Invokes(testing.NewListAction(serviceaccountsResource, serviceaccountsKind, c.ns, opts), &corev1.ServiceAccountList{}) if obj == nil { return nil, err @@ -62,8 +62,8 @@ func (c *FakeServiceAccounts) List(opts v1.ListOptions) (result *core_v1.Service if label == nil { label = labels.Everything() } - list := &core_v1.ServiceAccountList{} - for _, item := range obj.(*core_v1.ServiceAccountList).Items { + list := &corev1.ServiceAccountList{ListMeta: obj.(*corev1.ServiceAccountList).ListMeta} + for _, item := range obj.(*corev1.ServiceAccountList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) } @@ -79,31 +79,31 @@ func (c *FakeServiceAccounts) Watch(opts v1.ListOptions) (watch.Interface, error } // Create takes the representation of a serviceAccount and creates it. Returns the server's representation of the serviceAccount, and an error, if there is any. -func (c *FakeServiceAccounts) Create(serviceAccount *core_v1.ServiceAccount) (result *core_v1.ServiceAccount, err error) { +func (c *FakeServiceAccounts) Create(serviceAccount *corev1.ServiceAccount) (result *corev1.ServiceAccount, err error) { obj, err := c.Fake. - Invokes(testing.NewCreateAction(serviceaccountsResource, c.ns, serviceAccount), &core_v1.ServiceAccount{}) + Invokes(testing.NewCreateAction(serviceaccountsResource, c.ns, serviceAccount), &corev1.ServiceAccount{}) if obj == nil { return nil, err } - return obj.(*core_v1.ServiceAccount), err + return obj.(*corev1.ServiceAccount), err } // Update takes the representation of a serviceAccount and updates it. Returns the server's representation of the serviceAccount, and an error, if there is any. -func (c *FakeServiceAccounts) Update(serviceAccount *core_v1.ServiceAccount) (result *core_v1.ServiceAccount, err error) { +func (c *FakeServiceAccounts) Update(serviceAccount *corev1.ServiceAccount) (result *corev1.ServiceAccount, err error) { obj, err := c.Fake. - Invokes(testing.NewUpdateAction(serviceaccountsResource, c.ns, serviceAccount), &core_v1.ServiceAccount{}) + Invokes(testing.NewUpdateAction(serviceaccountsResource, c.ns, serviceAccount), &corev1.ServiceAccount{}) if obj == nil { return nil, err } - return obj.(*core_v1.ServiceAccount), err + return obj.(*corev1.ServiceAccount), err } // Delete takes name of the serviceAccount and deletes it. Returns an error if one occurs. func (c *FakeServiceAccounts) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. - Invokes(testing.NewDeleteAction(serviceaccountsResource, c.ns, name), &core_v1.ServiceAccount{}) + Invokes(testing.NewDeleteAction(serviceaccountsResource, c.ns, name), &corev1.ServiceAccount{}) return err } @@ -112,17 +112,17 @@ func (c *FakeServiceAccounts) Delete(name string, options *v1.DeleteOptions) err func (c *FakeServiceAccounts) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { action := testing.NewDeleteCollectionAction(serviceaccountsResource, c.ns, listOptions) - _, err := c.Fake.Invokes(action, &core_v1.ServiceAccountList{}) + _, err := c.Fake.Invokes(action, &corev1.ServiceAccountList{}) return err } // Patch applies the patch and returns the patched serviceAccount. -func (c *FakeServiceAccounts) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *core_v1.ServiceAccount, err error) { +func (c *FakeServiceAccounts) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *corev1.ServiceAccount, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(serviceaccountsResource, c.ns, name, data, subresources...), &core_v1.ServiceAccount{}) + Invokes(testing.NewPatchSubresourceAction(serviceaccountsResource, c.ns, name, pt, data, subresources...), &corev1.ServiceAccount{}) if obj == nil { return nil, err } - return obj.(*core_v1.ServiceAccount), err + return obj.(*corev1.ServiceAccount), err } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/generated_expansion.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/generated_expansion.go index 430bd6c5a..6e8591b12 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/generated_expansion.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/generated_expansion.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/limitrange.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/limitrange.go index b67997d70..2eeae11a8 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/limitrange.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/limitrange.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,8 +19,10 @@ limitations under the License. package v1 import ( + "time" + v1 "k8s.io/api/core/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" scheme "k8s.io/client-go/kubernetes/scheme" @@ -37,11 +39,11 @@ type LimitRangesGetter interface { type LimitRangeInterface interface { Create(*v1.LimitRange) (*v1.LimitRange, error) Update(*v1.LimitRange) (*v1.LimitRange, error) - Delete(name string, options *meta_v1.DeleteOptions) error - DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error - Get(name string, options meta_v1.GetOptions) (*v1.LimitRange, error) - List(opts meta_v1.ListOptions) (*v1.LimitRangeList, error) - Watch(opts meta_v1.ListOptions) (watch.Interface, error) + Delete(name string, options *metav1.DeleteOptions) error + DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error + Get(name string, options metav1.GetOptions) (*v1.LimitRange, error) + List(opts metav1.ListOptions) (*v1.LimitRangeList, error) + Watch(opts metav1.ListOptions) (watch.Interface, error) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.LimitRange, err error) LimitRangeExpansion } @@ -61,7 +63,7 @@ func newLimitRanges(c *CoreV1Client, namespace string) *limitRanges { } // Get takes name of the limitRange, and returns the corresponding limitRange object, and an error if there is any. -func (c *limitRanges) Get(name string, options meta_v1.GetOptions) (result *v1.LimitRange, err error) { +func (c *limitRanges) Get(name string, options metav1.GetOptions) (result *v1.LimitRange, err error) { result = &v1.LimitRange{} err = c.client.Get(). Namespace(c.ns). @@ -74,24 +76,34 @@ func (c *limitRanges) Get(name string, options meta_v1.GetOptions) (result *v1.L } // List takes label and field selectors, and returns the list of LimitRanges that match those selectors. -func (c *limitRanges) List(opts meta_v1.ListOptions) (result *v1.LimitRangeList, err error) { +func (c *limitRanges) List(opts metav1.ListOptions) (result *v1.LimitRangeList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1.LimitRangeList{} err = c.client.Get(). Namespace(c.ns). Resource("limitranges"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return } // Watch returns a watch.Interface that watches the requested limitRanges. -func (c *limitRanges) Watch(opts meta_v1.ListOptions) (watch.Interface, error) { +func (c *limitRanges) Watch(opts metav1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Namespace(c.ns). Resource("limitranges"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -121,7 +133,7 @@ func (c *limitRanges) Update(limitRange *v1.LimitRange) (result *v1.LimitRange, } // Delete takes name of the limitRange and deletes it. Returns an error if one occurs. -func (c *limitRanges) Delete(name string, options *meta_v1.DeleteOptions) error { +func (c *limitRanges) Delete(name string, options *metav1.DeleteOptions) error { return c.client.Delete(). Namespace(c.ns). Resource("limitranges"). @@ -132,11 +144,16 @@ func (c *limitRanges) Delete(name string, options *meta_v1.DeleteOptions) error } // DeleteCollection deletes a collection of objects. -func (c *limitRanges) DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error { +func (c *limitRanges) DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Namespace(c.ns). Resource("limitranges"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/namespace.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/namespace.go index a298d7c02..8a81fe850 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/namespace.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/namespace.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,8 +19,10 @@ limitations under the License. package v1 import ( + "time" + v1 "k8s.io/api/core/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" scheme "k8s.io/client-go/kubernetes/scheme" @@ -38,11 +40,10 @@ type NamespaceInterface interface { Create(*v1.Namespace) (*v1.Namespace, error) Update(*v1.Namespace) (*v1.Namespace, error) UpdateStatus(*v1.Namespace) (*v1.Namespace, error) - Delete(name string, options *meta_v1.DeleteOptions) error - DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error - Get(name string, options meta_v1.GetOptions) (*v1.Namespace, error) - List(opts meta_v1.ListOptions) (*v1.NamespaceList, error) - Watch(opts meta_v1.ListOptions) (watch.Interface, error) + Delete(name string, options *metav1.DeleteOptions) error + Get(name string, options metav1.GetOptions) (*v1.Namespace, error) + List(opts metav1.ListOptions) (*v1.NamespaceList, error) + Watch(opts metav1.ListOptions) (watch.Interface, error) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.Namespace, err error) NamespaceExpansion } @@ -60,7 +61,7 @@ func newNamespaces(c *CoreV1Client) *namespaces { } // Get takes name of the namespace, and returns the corresponding namespace object, and an error if there is any. -func (c *namespaces) Get(name string, options meta_v1.GetOptions) (result *v1.Namespace, err error) { +func (c *namespaces) Get(name string, options metav1.GetOptions) (result *v1.Namespace, err error) { result = &v1.Namespace{} err = c.client.Get(). Resource("namespaces"). @@ -72,22 +73,32 @@ func (c *namespaces) Get(name string, options meta_v1.GetOptions) (result *v1.Na } // List takes label and field selectors, and returns the list of Namespaces that match those selectors. -func (c *namespaces) List(opts meta_v1.ListOptions) (result *v1.NamespaceList, err error) { +func (c *namespaces) List(opts metav1.ListOptions) (result *v1.NamespaceList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1.NamespaceList{} err = c.client.Get(). Resource("namespaces"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return } // Watch returns a watch.Interface that watches the requested namespaces. -func (c *namespaces) Watch(opts meta_v1.ListOptions) (watch.Interface, error) { +func (c *namespaces) Watch(opts metav1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Resource("namespaces"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -130,7 +141,7 @@ func (c *namespaces) UpdateStatus(namespace *v1.Namespace) (result *v1.Namespace } // Delete takes name of the namespace and deletes it. Returns an error if one occurs. -func (c *namespaces) Delete(name string, options *meta_v1.DeleteOptions) error { +func (c *namespaces) Delete(name string, options *metav1.DeleteOptions) error { return c.client.Delete(). Resource("namespaces"). Name(name). @@ -139,16 +150,6 @@ func (c *namespaces) Delete(name string, options *meta_v1.DeleteOptions) error { Error() } -// DeleteCollection deletes a collection of objects. -func (c *namespaces) DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error { - return c.client.Delete(). - Resource("namespaces"). - VersionedParams(&listOptions, scheme.ParameterCodec). - Body(options). - Do(). - Error() -} - // Patch applies the patch and returns the patched namespace. func (c *namespaces) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.Namespace, err error) { result = &v1.Namespace{} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/node.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/node.go index b16f92f00..d19fab895 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/node.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/node.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,8 +19,10 @@ limitations under the License. package v1 import ( + "time" + v1 "k8s.io/api/core/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" scheme "k8s.io/client-go/kubernetes/scheme" @@ -38,11 +40,11 @@ type NodeInterface interface { Create(*v1.Node) (*v1.Node, error) Update(*v1.Node) (*v1.Node, error) UpdateStatus(*v1.Node) (*v1.Node, error) - Delete(name string, options *meta_v1.DeleteOptions) error - DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error - Get(name string, options meta_v1.GetOptions) (*v1.Node, error) - List(opts meta_v1.ListOptions) (*v1.NodeList, error) - Watch(opts meta_v1.ListOptions) (watch.Interface, error) + Delete(name string, options *metav1.DeleteOptions) error + DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error + Get(name string, options metav1.GetOptions) (*v1.Node, error) + List(opts metav1.ListOptions) (*v1.NodeList, error) + Watch(opts metav1.ListOptions) (watch.Interface, error) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.Node, err error) NodeExpansion } @@ -60,7 +62,7 @@ func newNodes(c *CoreV1Client) *nodes { } // Get takes name of the node, and returns the corresponding node object, and an error if there is any. -func (c *nodes) Get(name string, options meta_v1.GetOptions) (result *v1.Node, err error) { +func (c *nodes) Get(name string, options metav1.GetOptions) (result *v1.Node, err error) { result = &v1.Node{} err = c.client.Get(). Resource("nodes"). @@ -72,22 +74,32 @@ func (c *nodes) Get(name string, options meta_v1.GetOptions) (result *v1.Node, e } // List takes label and field selectors, and returns the list of Nodes that match those selectors. -func (c *nodes) List(opts meta_v1.ListOptions) (result *v1.NodeList, err error) { +func (c *nodes) List(opts metav1.ListOptions) (result *v1.NodeList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1.NodeList{} err = c.client.Get(). Resource("nodes"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return } // Watch returns a watch.Interface that watches the requested nodes. -func (c *nodes) Watch(opts meta_v1.ListOptions) (watch.Interface, error) { +func (c *nodes) Watch(opts metav1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Resource("nodes"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -130,7 +142,7 @@ func (c *nodes) UpdateStatus(node *v1.Node) (result *v1.Node, err error) { } // Delete takes name of the node and deletes it. Returns an error if one occurs. -func (c *nodes) Delete(name string, options *meta_v1.DeleteOptions) error { +func (c *nodes) Delete(name string, options *metav1.DeleteOptions) error { return c.client.Delete(). Resource("nodes"). Name(name). @@ -140,10 +152,15 @@ func (c *nodes) Delete(name string, options *meta_v1.DeleteOptions) error { } // DeleteCollection deletes a collection of objects. -func (c *nodes) DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error { +func (c *nodes) DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Resource("nodes"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/persistentvolume.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/persistentvolume.go index f23b95f30..74514825e 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/persistentvolume.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/persistentvolume.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,8 +19,10 @@ limitations under the License. package v1 import ( + "time" + v1 "k8s.io/api/core/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" scheme "k8s.io/client-go/kubernetes/scheme" @@ -38,11 +40,11 @@ type PersistentVolumeInterface interface { Create(*v1.PersistentVolume) (*v1.PersistentVolume, error) Update(*v1.PersistentVolume) (*v1.PersistentVolume, error) UpdateStatus(*v1.PersistentVolume) (*v1.PersistentVolume, error) - Delete(name string, options *meta_v1.DeleteOptions) error - DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error - Get(name string, options meta_v1.GetOptions) (*v1.PersistentVolume, error) - List(opts meta_v1.ListOptions) (*v1.PersistentVolumeList, error) - Watch(opts meta_v1.ListOptions) (watch.Interface, error) + Delete(name string, options *metav1.DeleteOptions) error + DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error + Get(name string, options metav1.GetOptions) (*v1.PersistentVolume, error) + List(opts metav1.ListOptions) (*v1.PersistentVolumeList, error) + Watch(opts metav1.ListOptions) (watch.Interface, error) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.PersistentVolume, err error) PersistentVolumeExpansion } @@ -60,7 +62,7 @@ func newPersistentVolumes(c *CoreV1Client) *persistentVolumes { } // Get takes name of the persistentVolume, and returns the corresponding persistentVolume object, and an error if there is any. -func (c *persistentVolumes) Get(name string, options meta_v1.GetOptions) (result *v1.PersistentVolume, err error) { +func (c *persistentVolumes) Get(name string, options metav1.GetOptions) (result *v1.PersistentVolume, err error) { result = &v1.PersistentVolume{} err = c.client.Get(). Resource("persistentvolumes"). @@ -72,22 +74,32 @@ func (c *persistentVolumes) Get(name string, options meta_v1.GetOptions) (result } // List takes label and field selectors, and returns the list of PersistentVolumes that match those selectors. -func (c *persistentVolumes) List(opts meta_v1.ListOptions) (result *v1.PersistentVolumeList, err error) { +func (c *persistentVolumes) List(opts metav1.ListOptions) (result *v1.PersistentVolumeList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1.PersistentVolumeList{} err = c.client.Get(). Resource("persistentvolumes"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return } // Watch returns a watch.Interface that watches the requested persistentVolumes. -func (c *persistentVolumes) Watch(opts meta_v1.ListOptions) (watch.Interface, error) { +func (c *persistentVolumes) Watch(opts metav1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Resource("persistentvolumes"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -130,7 +142,7 @@ func (c *persistentVolumes) UpdateStatus(persistentVolume *v1.PersistentVolume) } // Delete takes name of the persistentVolume and deletes it. Returns an error if one occurs. -func (c *persistentVolumes) Delete(name string, options *meta_v1.DeleteOptions) error { +func (c *persistentVolumes) Delete(name string, options *metav1.DeleteOptions) error { return c.client.Delete(). Resource("persistentvolumes"). Name(name). @@ -140,10 +152,15 @@ func (c *persistentVolumes) Delete(name string, options *meta_v1.DeleteOptions) } // DeleteCollection deletes a collection of objects. -func (c *persistentVolumes) DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error { +func (c *persistentVolumes) DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Resource("persistentvolumes"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/persistentvolumeclaim.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/persistentvolumeclaim.go index f168a985a..410ab37dc 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/persistentvolumeclaim.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/persistentvolumeclaim.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,8 +19,10 @@ limitations under the License. package v1 import ( + "time" + v1 "k8s.io/api/core/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" scheme "k8s.io/client-go/kubernetes/scheme" @@ -38,11 +40,11 @@ type PersistentVolumeClaimInterface interface { Create(*v1.PersistentVolumeClaim) (*v1.PersistentVolumeClaim, error) Update(*v1.PersistentVolumeClaim) (*v1.PersistentVolumeClaim, error) UpdateStatus(*v1.PersistentVolumeClaim) (*v1.PersistentVolumeClaim, error) - Delete(name string, options *meta_v1.DeleteOptions) error - DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error - Get(name string, options meta_v1.GetOptions) (*v1.PersistentVolumeClaim, error) - List(opts meta_v1.ListOptions) (*v1.PersistentVolumeClaimList, error) - Watch(opts meta_v1.ListOptions) (watch.Interface, error) + Delete(name string, options *metav1.DeleteOptions) error + DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error + Get(name string, options metav1.GetOptions) (*v1.PersistentVolumeClaim, error) + List(opts metav1.ListOptions) (*v1.PersistentVolumeClaimList, error) + Watch(opts metav1.ListOptions) (watch.Interface, error) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.PersistentVolumeClaim, err error) PersistentVolumeClaimExpansion } @@ -62,7 +64,7 @@ func newPersistentVolumeClaims(c *CoreV1Client, namespace string) *persistentVol } // Get takes name of the persistentVolumeClaim, and returns the corresponding persistentVolumeClaim object, and an error if there is any. -func (c *persistentVolumeClaims) Get(name string, options meta_v1.GetOptions) (result *v1.PersistentVolumeClaim, err error) { +func (c *persistentVolumeClaims) Get(name string, options metav1.GetOptions) (result *v1.PersistentVolumeClaim, err error) { result = &v1.PersistentVolumeClaim{} err = c.client.Get(). Namespace(c.ns). @@ -75,24 +77,34 @@ func (c *persistentVolumeClaims) Get(name string, options meta_v1.GetOptions) (r } // List takes label and field selectors, and returns the list of PersistentVolumeClaims that match those selectors. -func (c *persistentVolumeClaims) List(opts meta_v1.ListOptions) (result *v1.PersistentVolumeClaimList, err error) { +func (c *persistentVolumeClaims) List(opts metav1.ListOptions) (result *v1.PersistentVolumeClaimList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1.PersistentVolumeClaimList{} err = c.client.Get(). Namespace(c.ns). Resource("persistentvolumeclaims"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return } // Watch returns a watch.Interface that watches the requested persistentVolumeClaims. -func (c *persistentVolumeClaims) Watch(opts meta_v1.ListOptions) (watch.Interface, error) { +func (c *persistentVolumeClaims) Watch(opts metav1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Namespace(c.ns). Resource("persistentvolumeclaims"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -138,7 +150,7 @@ func (c *persistentVolumeClaims) UpdateStatus(persistentVolumeClaim *v1.Persiste } // Delete takes name of the persistentVolumeClaim and deletes it. Returns an error if one occurs. -func (c *persistentVolumeClaims) Delete(name string, options *meta_v1.DeleteOptions) error { +func (c *persistentVolumeClaims) Delete(name string, options *metav1.DeleteOptions) error { return c.client.Delete(). Namespace(c.ns). Resource("persistentvolumeclaims"). @@ -149,11 +161,16 @@ func (c *persistentVolumeClaims) Delete(name string, options *meta_v1.DeleteOpti } // DeleteCollection deletes a collection of objects. -func (c *persistentVolumeClaims) DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error { +func (c *persistentVolumeClaims) DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Namespace(c.ns). Resource("persistentvolumeclaims"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/pod.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/pod.go index 423d81ad8..8d6b6e879 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/pod.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/pod.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,8 +19,10 @@ limitations under the License. package v1 import ( + "time" + v1 "k8s.io/api/core/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" scheme "k8s.io/client-go/kubernetes/scheme" @@ -38,11 +40,11 @@ type PodInterface interface { Create(*v1.Pod) (*v1.Pod, error) Update(*v1.Pod) (*v1.Pod, error) UpdateStatus(*v1.Pod) (*v1.Pod, error) - Delete(name string, options *meta_v1.DeleteOptions) error - DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error - Get(name string, options meta_v1.GetOptions) (*v1.Pod, error) - List(opts meta_v1.ListOptions) (*v1.PodList, error) - Watch(opts meta_v1.ListOptions) (watch.Interface, error) + Delete(name string, options *metav1.DeleteOptions) error + DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error + Get(name string, options metav1.GetOptions) (*v1.Pod, error) + List(opts metav1.ListOptions) (*v1.PodList, error) + Watch(opts metav1.ListOptions) (watch.Interface, error) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.Pod, err error) PodExpansion } @@ -62,7 +64,7 @@ func newPods(c *CoreV1Client, namespace string) *pods { } // Get takes name of the pod, and returns the corresponding pod object, and an error if there is any. -func (c *pods) Get(name string, options meta_v1.GetOptions) (result *v1.Pod, err error) { +func (c *pods) Get(name string, options metav1.GetOptions) (result *v1.Pod, err error) { result = &v1.Pod{} err = c.client.Get(). Namespace(c.ns). @@ -75,24 +77,34 @@ func (c *pods) Get(name string, options meta_v1.GetOptions) (result *v1.Pod, err } // List takes label and field selectors, and returns the list of Pods that match those selectors. -func (c *pods) List(opts meta_v1.ListOptions) (result *v1.PodList, err error) { +func (c *pods) List(opts metav1.ListOptions) (result *v1.PodList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1.PodList{} err = c.client.Get(). Namespace(c.ns). Resource("pods"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return } // Watch returns a watch.Interface that watches the requested pods. -func (c *pods) Watch(opts meta_v1.ListOptions) (watch.Interface, error) { +func (c *pods) Watch(opts metav1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Namespace(c.ns). Resource("pods"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -138,7 +150,7 @@ func (c *pods) UpdateStatus(pod *v1.Pod) (result *v1.Pod, err error) { } // Delete takes name of the pod and deletes it. Returns an error if one occurs. -func (c *pods) Delete(name string, options *meta_v1.DeleteOptions) error { +func (c *pods) Delete(name string, options *metav1.DeleteOptions) error { return c.client.Delete(). Namespace(c.ns). Resource("pods"). @@ -149,11 +161,16 @@ func (c *pods) Delete(name string, options *meta_v1.DeleteOptions) error { } // DeleteCollection deletes a collection of objects. -func (c *pods) DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error { +func (c *pods) DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Namespace(c.ns). Resource("pods"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/podtemplate.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/podtemplate.go index 730b54330..84d7c9805 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/podtemplate.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/podtemplate.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,8 +19,10 @@ limitations under the License. package v1 import ( + "time" + v1 "k8s.io/api/core/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" scheme "k8s.io/client-go/kubernetes/scheme" @@ -37,11 +39,11 @@ type PodTemplatesGetter interface { type PodTemplateInterface interface { Create(*v1.PodTemplate) (*v1.PodTemplate, error) Update(*v1.PodTemplate) (*v1.PodTemplate, error) - Delete(name string, options *meta_v1.DeleteOptions) error - DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error - Get(name string, options meta_v1.GetOptions) (*v1.PodTemplate, error) - List(opts meta_v1.ListOptions) (*v1.PodTemplateList, error) - Watch(opts meta_v1.ListOptions) (watch.Interface, error) + Delete(name string, options *metav1.DeleteOptions) error + DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error + Get(name string, options metav1.GetOptions) (*v1.PodTemplate, error) + List(opts metav1.ListOptions) (*v1.PodTemplateList, error) + Watch(opts metav1.ListOptions) (watch.Interface, error) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.PodTemplate, err error) PodTemplateExpansion } @@ -61,7 +63,7 @@ func newPodTemplates(c *CoreV1Client, namespace string) *podTemplates { } // Get takes name of the podTemplate, and returns the corresponding podTemplate object, and an error if there is any. -func (c *podTemplates) Get(name string, options meta_v1.GetOptions) (result *v1.PodTemplate, err error) { +func (c *podTemplates) Get(name string, options metav1.GetOptions) (result *v1.PodTemplate, err error) { result = &v1.PodTemplate{} err = c.client.Get(). Namespace(c.ns). @@ -74,24 +76,34 @@ func (c *podTemplates) Get(name string, options meta_v1.GetOptions) (result *v1. } // List takes label and field selectors, and returns the list of PodTemplates that match those selectors. -func (c *podTemplates) List(opts meta_v1.ListOptions) (result *v1.PodTemplateList, err error) { +func (c *podTemplates) List(opts metav1.ListOptions) (result *v1.PodTemplateList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1.PodTemplateList{} err = c.client.Get(). Namespace(c.ns). Resource("podtemplates"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return } // Watch returns a watch.Interface that watches the requested podTemplates. -func (c *podTemplates) Watch(opts meta_v1.ListOptions) (watch.Interface, error) { +func (c *podTemplates) Watch(opts metav1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Namespace(c.ns). Resource("podtemplates"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -121,7 +133,7 @@ func (c *podTemplates) Update(podTemplate *v1.PodTemplate) (result *v1.PodTempla } // Delete takes name of the podTemplate and deletes it. Returns an error if one occurs. -func (c *podTemplates) Delete(name string, options *meta_v1.DeleteOptions) error { +func (c *podTemplates) Delete(name string, options *metav1.DeleteOptions) error { return c.client.Delete(). Namespace(c.ns). Resource("podtemplates"). @@ -132,11 +144,16 @@ func (c *podTemplates) Delete(name string, options *meta_v1.DeleteOptions) error } // DeleteCollection deletes a collection of objects. -func (c *podTemplates) DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error { +func (c *podTemplates) DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Namespace(c.ns). Resource("podtemplates"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/replicationcontroller.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/replicationcontroller.go index a0f36a1fa..dd3182db6 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/replicationcontroller.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/replicationcontroller.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,9 +19,11 @@ limitations under the License. package v1 import ( + "time" + + autoscalingv1 "k8s.io/api/autoscaling/v1" v1 "k8s.io/api/core/v1" - v1beta1 "k8s.io/api/extensions/v1beta1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" scheme "k8s.io/client-go/kubernetes/scheme" @@ -39,14 +41,14 @@ type ReplicationControllerInterface interface { Create(*v1.ReplicationController) (*v1.ReplicationController, error) Update(*v1.ReplicationController) (*v1.ReplicationController, error) UpdateStatus(*v1.ReplicationController) (*v1.ReplicationController, error) - Delete(name string, options *meta_v1.DeleteOptions) error - DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error - Get(name string, options meta_v1.GetOptions) (*v1.ReplicationController, error) - List(opts meta_v1.ListOptions) (*v1.ReplicationControllerList, error) - Watch(opts meta_v1.ListOptions) (watch.Interface, error) + Delete(name string, options *metav1.DeleteOptions) error + DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error + Get(name string, options metav1.GetOptions) (*v1.ReplicationController, error) + List(opts metav1.ListOptions) (*v1.ReplicationControllerList, error) + Watch(opts metav1.ListOptions) (watch.Interface, error) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.ReplicationController, err error) - GetScale(replicationControllerName string, options meta_v1.GetOptions) (*v1beta1.Scale, error) - UpdateScale(replicationControllerName string, scale *v1beta1.Scale) (*v1beta1.Scale, error) + GetScale(replicationControllerName string, options metav1.GetOptions) (*autoscalingv1.Scale, error) + UpdateScale(replicationControllerName string, scale *autoscalingv1.Scale) (*autoscalingv1.Scale, error) ReplicationControllerExpansion } @@ -66,7 +68,7 @@ func newReplicationControllers(c *CoreV1Client, namespace string) *replicationCo } // Get takes name of the replicationController, and returns the corresponding replicationController object, and an error if there is any. -func (c *replicationControllers) Get(name string, options meta_v1.GetOptions) (result *v1.ReplicationController, err error) { +func (c *replicationControllers) Get(name string, options metav1.GetOptions) (result *v1.ReplicationController, err error) { result = &v1.ReplicationController{} err = c.client.Get(). Namespace(c.ns). @@ -79,24 +81,34 @@ func (c *replicationControllers) Get(name string, options meta_v1.GetOptions) (r } // List takes label and field selectors, and returns the list of ReplicationControllers that match those selectors. -func (c *replicationControllers) List(opts meta_v1.ListOptions) (result *v1.ReplicationControllerList, err error) { +func (c *replicationControllers) List(opts metav1.ListOptions) (result *v1.ReplicationControllerList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1.ReplicationControllerList{} err = c.client.Get(). Namespace(c.ns). Resource("replicationcontrollers"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return } // Watch returns a watch.Interface that watches the requested replicationControllers. -func (c *replicationControllers) Watch(opts meta_v1.ListOptions) (watch.Interface, error) { +func (c *replicationControllers) Watch(opts metav1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Namespace(c.ns). Resource("replicationcontrollers"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -142,7 +154,7 @@ func (c *replicationControllers) UpdateStatus(replicationController *v1.Replicat } // Delete takes name of the replicationController and deletes it. Returns an error if one occurs. -func (c *replicationControllers) Delete(name string, options *meta_v1.DeleteOptions) error { +func (c *replicationControllers) Delete(name string, options *metav1.DeleteOptions) error { return c.client.Delete(). Namespace(c.ns). Resource("replicationcontrollers"). @@ -153,11 +165,16 @@ func (c *replicationControllers) Delete(name string, options *meta_v1.DeleteOpti } // DeleteCollection deletes a collection of objects. -func (c *replicationControllers) DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error { +func (c *replicationControllers) DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Namespace(c.ns). Resource("replicationcontrollers"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() @@ -177,9 +194,9 @@ func (c *replicationControllers) Patch(name string, pt types.PatchType, data []b return } -// GetScale takes name of the replicationController, and returns the corresponding v1beta1.Scale object, and an error if there is any. -func (c *replicationControllers) GetScale(replicationControllerName string, options meta_v1.GetOptions) (result *v1beta1.Scale, err error) { - result = &v1beta1.Scale{} +// GetScale takes name of the replicationController, and returns the corresponding autoscalingv1.Scale object, and an error if there is any. +func (c *replicationControllers) GetScale(replicationControllerName string, options metav1.GetOptions) (result *autoscalingv1.Scale, err error) { + result = &autoscalingv1.Scale{} err = c.client.Get(). Namespace(c.ns). Resource("replicationcontrollers"). @@ -192,8 +209,8 @@ func (c *replicationControllers) GetScale(replicationControllerName string, opti } // UpdateScale takes the top resource name and the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any. -func (c *replicationControllers) UpdateScale(replicationControllerName string, scale *v1beta1.Scale) (result *v1beta1.Scale, err error) { - result = &v1beta1.Scale{} +func (c *replicationControllers) UpdateScale(replicationControllerName string, scale *autoscalingv1.Scale) (result *autoscalingv1.Scale, err error) { + result = &autoscalingv1.Scale{} err = c.client.Put(). Namespace(c.ns). Resource("replicationcontrollers"). diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/resourcequota.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/resourcequota.go index 011e72a91..5a178990e 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/resourcequota.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/resourcequota.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,8 +19,10 @@ limitations under the License. package v1 import ( + "time" + v1 "k8s.io/api/core/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" scheme "k8s.io/client-go/kubernetes/scheme" @@ -38,11 +40,11 @@ type ResourceQuotaInterface interface { Create(*v1.ResourceQuota) (*v1.ResourceQuota, error) Update(*v1.ResourceQuota) (*v1.ResourceQuota, error) UpdateStatus(*v1.ResourceQuota) (*v1.ResourceQuota, error) - Delete(name string, options *meta_v1.DeleteOptions) error - DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error - Get(name string, options meta_v1.GetOptions) (*v1.ResourceQuota, error) - List(opts meta_v1.ListOptions) (*v1.ResourceQuotaList, error) - Watch(opts meta_v1.ListOptions) (watch.Interface, error) + Delete(name string, options *metav1.DeleteOptions) error + DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error + Get(name string, options metav1.GetOptions) (*v1.ResourceQuota, error) + List(opts metav1.ListOptions) (*v1.ResourceQuotaList, error) + Watch(opts metav1.ListOptions) (watch.Interface, error) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.ResourceQuota, err error) ResourceQuotaExpansion } @@ -62,7 +64,7 @@ func newResourceQuotas(c *CoreV1Client, namespace string) *resourceQuotas { } // Get takes name of the resourceQuota, and returns the corresponding resourceQuota object, and an error if there is any. -func (c *resourceQuotas) Get(name string, options meta_v1.GetOptions) (result *v1.ResourceQuota, err error) { +func (c *resourceQuotas) Get(name string, options metav1.GetOptions) (result *v1.ResourceQuota, err error) { result = &v1.ResourceQuota{} err = c.client.Get(). Namespace(c.ns). @@ -75,24 +77,34 @@ func (c *resourceQuotas) Get(name string, options meta_v1.GetOptions) (result *v } // List takes label and field selectors, and returns the list of ResourceQuotas that match those selectors. -func (c *resourceQuotas) List(opts meta_v1.ListOptions) (result *v1.ResourceQuotaList, err error) { +func (c *resourceQuotas) List(opts metav1.ListOptions) (result *v1.ResourceQuotaList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1.ResourceQuotaList{} err = c.client.Get(). Namespace(c.ns). Resource("resourcequotas"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return } // Watch returns a watch.Interface that watches the requested resourceQuotas. -func (c *resourceQuotas) Watch(opts meta_v1.ListOptions) (watch.Interface, error) { +func (c *resourceQuotas) Watch(opts metav1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Namespace(c.ns). Resource("resourcequotas"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -138,7 +150,7 @@ func (c *resourceQuotas) UpdateStatus(resourceQuota *v1.ResourceQuota) (result * } // Delete takes name of the resourceQuota and deletes it. Returns an error if one occurs. -func (c *resourceQuotas) Delete(name string, options *meta_v1.DeleteOptions) error { +func (c *resourceQuotas) Delete(name string, options *metav1.DeleteOptions) error { return c.client.Delete(). Namespace(c.ns). Resource("resourcequotas"). @@ -149,11 +161,16 @@ func (c *resourceQuotas) Delete(name string, options *meta_v1.DeleteOptions) err } // DeleteCollection deletes a collection of objects. -func (c *resourceQuotas) DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error { +func (c *resourceQuotas) DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Namespace(c.ns). Resource("resourcequotas"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/secret.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/secret.go index 931afb5db..85c143b17 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/secret.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/secret.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,8 +19,10 @@ limitations under the License. package v1 import ( + "time" + v1 "k8s.io/api/core/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" scheme "k8s.io/client-go/kubernetes/scheme" @@ -37,11 +39,11 @@ type SecretsGetter interface { type SecretInterface interface { Create(*v1.Secret) (*v1.Secret, error) Update(*v1.Secret) (*v1.Secret, error) - Delete(name string, options *meta_v1.DeleteOptions) error - DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error - Get(name string, options meta_v1.GetOptions) (*v1.Secret, error) - List(opts meta_v1.ListOptions) (*v1.SecretList, error) - Watch(opts meta_v1.ListOptions) (watch.Interface, error) + Delete(name string, options *metav1.DeleteOptions) error + DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error + Get(name string, options metav1.GetOptions) (*v1.Secret, error) + List(opts metav1.ListOptions) (*v1.SecretList, error) + Watch(opts metav1.ListOptions) (watch.Interface, error) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.Secret, err error) SecretExpansion } @@ -61,7 +63,7 @@ func newSecrets(c *CoreV1Client, namespace string) *secrets { } // Get takes name of the secret, and returns the corresponding secret object, and an error if there is any. -func (c *secrets) Get(name string, options meta_v1.GetOptions) (result *v1.Secret, err error) { +func (c *secrets) Get(name string, options metav1.GetOptions) (result *v1.Secret, err error) { result = &v1.Secret{} err = c.client.Get(). Namespace(c.ns). @@ -74,24 +76,34 @@ func (c *secrets) Get(name string, options meta_v1.GetOptions) (result *v1.Secre } // List takes label and field selectors, and returns the list of Secrets that match those selectors. -func (c *secrets) List(opts meta_v1.ListOptions) (result *v1.SecretList, err error) { +func (c *secrets) List(opts metav1.ListOptions) (result *v1.SecretList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1.SecretList{} err = c.client.Get(). Namespace(c.ns). Resource("secrets"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return } // Watch returns a watch.Interface that watches the requested secrets. -func (c *secrets) Watch(opts meta_v1.ListOptions) (watch.Interface, error) { +func (c *secrets) Watch(opts metav1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Namespace(c.ns). Resource("secrets"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -121,7 +133,7 @@ func (c *secrets) Update(secret *v1.Secret) (result *v1.Secret, err error) { } // Delete takes name of the secret and deletes it. Returns an error if one occurs. -func (c *secrets) Delete(name string, options *meta_v1.DeleteOptions) error { +func (c *secrets) Delete(name string, options *metav1.DeleteOptions) error { return c.client.Delete(). Namespace(c.ns). Resource("secrets"). @@ -132,11 +144,16 @@ func (c *secrets) Delete(name string, options *meta_v1.DeleteOptions) error { } // DeleteCollection deletes a collection of objects. -func (c *secrets) DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error { +func (c *secrets) DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Namespace(c.ns). Resource("secrets"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/service.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/service.go index 156bcc235..b0e09413e 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/service.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/service.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,8 +19,10 @@ limitations under the License. package v1 import ( + "time" + v1 "k8s.io/api/core/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" scheme "k8s.io/client-go/kubernetes/scheme" @@ -38,11 +40,10 @@ type ServiceInterface interface { Create(*v1.Service) (*v1.Service, error) Update(*v1.Service) (*v1.Service, error) UpdateStatus(*v1.Service) (*v1.Service, error) - Delete(name string, options *meta_v1.DeleteOptions) error - DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error - Get(name string, options meta_v1.GetOptions) (*v1.Service, error) - List(opts meta_v1.ListOptions) (*v1.ServiceList, error) - Watch(opts meta_v1.ListOptions) (watch.Interface, error) + Delete(name string, options *metav1.DeleteOptions) error + Get(name string, options metav1.GetOptions) (*v1.Service, error) + List(opts metav1.ListOptions) (*v1.ServiceList, error) + Watch(opts metav1.ListOptions) (watch.Interface, error) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.Service, err error) ServiceExpansion } @@ -62,7 +63,7 @@ func newServices(c *CoreV1Client, namespace string) *services { } // Get takes name of the service, and returns the corresponding service object, and an error if there is any. -func (c *services) Get(name string, options meta_v1.GetOptions) (result *v1.Service, err error) { +func (c *services) Get(name string, options metav1.GetOptions) (result *v1.Service, err error) { result = &v1.Service{} err = c.client.Get(). Namespace(c.ns). @@ -75,24 +76,34 @@ func (c *services) Get(name string, options meta_v1.GetOptions) (result *v1.Serv } // List takes label and field selectors, and returns the list of Services that match those selectors. -func (c *services) List(opts meta_v1.ListOptions) (result *v1.ServiceList, err error) { +func (c *services) List(opts metav1.ListOptions) (result *v1.ServiceList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1.ServiceList{} err = c.client.Get(). Namespace(c.ns). Resource("services"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return } // Watch returns a watch.Interface that watches the requested services. -func (c *services) Watch(opts meta_v1.ListOptions) (watch.Interface, error) { +func (c *services) Watch(opts metav1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Namespace(c.ns). Resource("services"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -138,7 +149,7 @@ func (c *services) UpdateStatus(service *v1.Service) (result *v1.Service, err er } // Delete takes name of the service and deletes it. Returns an error if one occurs. -func (c *services) Delete(name string, options *meta_v1.DeleteOptions) error { +func (c *services) Delete(name string, options *metav1.DeleteOptions) error { return c.client.Delete(). Namespace(c.ns). Resource("services"). @@ -148,17 +159,6 @@ func (c *services) Delete(name string, options *meta_v1.DeleteOptions) error { Error() } -// DeleteCollection deletes a collection of objects. -func (c *services) DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error { - return c.client.Delete(). - Namespace(c.ns). - Resource("services"). - VersionedParams(&listOptions, scheme.ParameterCodec). - Body(options). - Do(). - Error() -} - // Patch applies the patch and returns the patched service. func (c *services) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.Service, err error) { result = &v1.Service{} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/serviceaccount.go b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/serviceaccount.go index 0a87feb5b..50af6a21c 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/core/v1/serviceaccount.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/core/v1/serviceaccount.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,8 +19,10 @@ limitations under the License. package v1 import ( + "time" + v1 "k8s.io/api/core/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" scheme "k8s.io/client-go/kubernetes/scheme" @@ -37,11 +39,11 @@ type ServiceAccountsGetter interface { type ServiceAccountInterface interface { Create(*v1.ServiceAccount) (*v1.ServiceAccount, error) Update(*v1.ServiceAccount) (*v1.ServiceAccount, error) - Delete(name string, options *meta_v1.DeleteOptions) error - DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error - Get(name string, options meta_v1.GetOptions) (*v1.ServiceAccount, error) - List(opts meta_v1.ListOptions) (*v1.ServiceAccountList, error) - Watch(opts meta_v1.ListOptions) (watch.Interface, error) + Delete(name string, options *metav1.DeleteOptions) error + DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error + Get(name string, options metav1.GetOptions) (*v1.ServiceAccount, error) + List(opts metav1.ListOptions) (*v1.ServiceAccountList, error) + Watch(opts metav1.ListOptions) (watch.Interface, error) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.ServiceAccount, err error) ServiceAccountExpansion } @@ -61,7 +63,7 @@ func newServiceAccounts(c *CoreV1Client, namespace string) *serviceAccounts { } // Get takes name of the serviceAccount, and returns the corresponding serviceAccount object, and an error if there is any. -func (c *serviceAccounts) Get(name string, options meta_v1.GetOptions) (result *v1.ServiceAccount, err error) { +func (c *serviceAccounts) Get(name string, options metav1.GetOptions) (result *v1.ServiceAccount, err error) { result = &v1.ServiceAccount{} err = c.client.Get(). Namespace(c.ns). @@ -74,24 +76,34 @@ func (c *serviceAccounts) Get(name string, options meta_v1.GetOptions) (result * } // List takes label and field selectors, and returns the list of ServiceAccounts that match those selectors. -func (c *serviceAccounts) List(opts meta_v1.ListOptions) (result *v1.ServiceAccountList, err error) { +func (c *serviceAccounts) List(opts metav1.ListOptions) (result *v1.ServiceAccountList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1.ServiceAccountList{} err = c.client.Get(). Namespace(c.ns). Resource("serviceaccounts"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return } // Watch returns a watch.Interface that watches the requested serviceAccounts. -func (c *serviceAccounts) Watch(opts meta_v1.ListOptions) (watch.Interface, error) { +func (c *serviceAccounts) Watch(opts metav1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Namespace(c.ns). Resource("serviceaccounts"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -121,7 +133,7 @@ func (c *serviceAccounts) Update(serviceAccount *v1.ServiceAccount) (result *v1. } // Delete takes name of the serviceAccount and deletes it. Returns an error if one occurs. -func (c *serviceAccounts) Delete(name string, options *meta_v1.DeleteOptions) error { +func (c *serviceAccounts) Delete(name string, options *metav1.DeleteOptions) error { return c.client.Delete(). Namespace(c.ns). Resource("serviceaccounts"). @@ -132,11 +144,16 @@ func (c *serviceAccounts) Delete(name string, options *meta_v1.DeleteOptions) er } // DeleteCollection deletes a collection of objects. -func (c *serviceAccounts) DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error { +func (c *serviceAccounts) DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Namespace(c.ns). Resource("serviceaccounts"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/BUILD deleted file mode 100644 index 307884cc4..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/BUILD +++ /dev/null @@ -1,39 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "event.go", - "events_client.go", - "generated_expansion.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/events/v1beta1", - visibility = ["//visibility:public"], - deps = [ - "//vendor/k8s.io/api/events/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/events/v1beta1/fake:all-srcs", - ], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/doc.go index 11ae7049d..771101956 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/event.go b/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/event.go index e8737cf9e..143281b25 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/event.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/event.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,6 +19,8 @@ limitations under the License. package v1beta1 import ( + "time" + v1beta1 "k8s.io/api/events/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" @@ -75,11 +77,16 @@ func (c *events) Get(name string, options v1.GetOptions) (result *v1beta1.Event, // List takes label and field selectors, and returns the list of Events that match those selectors. func (c *events) List(opts v1.ListOptions) (result *v1beta1.EventList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1beta1.EventList{} err = c.client.Get(). Namespace(c.ns). Resource("events"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return @@ -87,11 +94,16 @@ func (c *events) List(opts v1.ListOptions) (result *v1beta1.EventList, err error // Watch returns a watch.Interface that watches the requested events. func (c *events) Watch(opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Namespace(c.ns). Resource("events"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -133,10 +145,15 @@ func (c *events) Delete(name string, options *v1.DeleteOptions) error { // DeleteCollection deletes a collection of objects. func (c *events) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Namespace(c.ns). Resource("events"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/events_client.go b/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/events_client.go index 7225d90d8..fb59635bb 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/events_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/events_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/fake/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/fake/BUILD deleted file mode 100644 index b9a692e5c..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/fake/BUILD +++ /dev/null @@ -1,37 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "fake_event.go", - "fake_events_client.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/events/v1beta1/fake", - visibility = ["//visibility:public"], - deps = [ - "//vendor/k8s.io/api/events/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/testing:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/fake/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/fake/doc.go index 87a1873ed..16f443990 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/fake/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/fake/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/fake/fake_event.go b/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/fake/fake_event.go index 02fa70fbd..ef76ec131 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/fake/fake_event.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/fake/fake_event.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -62,7 +62,7 @@ func (c *FakeEvents) List(opts v1.ListOptions) (result *v1beta1.EventList, err e if label == nil { label = labels.Everything() } - list := &v1beta1.EventList{} + list := &v1beta1.EventList{ListMeta: obj.(*v1beta1.EventList).ListMeta} for _, item := range obj.(*v1beta1.EventList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) @@ -119,7 +119,7 @@ func (c *FakeEvents) DeleteCollection(options *v1.DeleteOptions, listOptions v1. // Patch applies the patch and returns the patched event. func (c *FakeEvents) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.Event, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(eventsResource, c.ns, name, data, subresources...), &v1beta1.Event{}) + Invokes(testing.NewPatchSubresourceAction(eventsResource, c.ns, name, pt, data, subresources...), &v1beta1.Event{}) if obj == nil { return nil, err diff --git a/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/fake/fake_events_client.go b/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/fake/fake_events_client.go index c6eb06623..875c774e3 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/fake/fake_events_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/fake/fake_events_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/generated_expansion.go b/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/generated_expansion.go index 871411abb..e27f693f8 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/generated_expansion.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/generated_expansion.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/BUILD deleted file mode 100644 index 5ad976867..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/BUILD +++ /dev/null @@ -1,51 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "daemonset.go", - "deployment.go", - "deployment_expansion.go", - "doc.go", - "extensions_client.go", - "generated_expansion.go", - "ingress.go", - "podsecuritypolicy.go", - "replicaset.go", - "scale.go", - "scale_expansion.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/extensions/v1beta1", - deps = [ - "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/daemonset.go b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/daemonset.go index 20cd58728..93b1ae9b6 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/daemonset.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/daemonset.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,6 +19,8 @@ limitations under the License. package v1beta1 import ( + "time" + v1beta1 "k8s.io/api/extensions/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" @@ -76,11 +78,16 @@ func (c *daemonSets) Get(name string, options v1.GetOptions) (result *v1beta1.Da // List takes label and field selectors, and returns the list of DaemonSets that match those selectors. func (c *daemonSets) List(opts v1.ListOptions) (result *v1beta1.DaemonSetList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1beta1.DaemonSetList{} err = c.client.Get(). Namespace(c.ns). Resource("daemonsets"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return @@ -88,11 +95,16 @@ func (c *daemonSets) List(opts v1.ListOptions) (result *v1beta1.DaemonSetList, e // Watch returns a watch.Interface that watches the requested daemonSets. func (c *daemonSets) Watch(opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Namespace(c.ns). Resource("daemonsets"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -150,10 +162,15 @@ func (c *daemonSets) Delete(name string, options *v1.DeleteOptions) error { // DeleteCollection deletes a collection of objects. func (c *daemonSets) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Namespace(c.ns). Resource("daemonsets"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/deployment.go b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/deployment.go index 91ada9e54..5557b9f2b 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/deployment.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/deployment.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,6 +19,8 @@ limitations under the License. package v1beta1 import ( + "time" + v1beta1 "k8s.io/api/extensions/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" @@ -79,11 +81,16 @@ func (c *deployments) Get(name string, options v1.GetOptions) (result *v1beta1.D // List takes label and field selectors, and returns the list of Deployments that match those selectors. func (c *deployments) List(opts v1.ListOptions) (result *v1beta1.DeploymentList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1beta1.DeploymentList{} err = c.client.Get(). Namespace(c.ns). Resource("deployments"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return @@ -91,11 +98,16 @@ func (c *deployments) List(opts v1.ListOptions) (result *v1beta1.DeploymentList, // Watch returns a watch.Interface that watches the requested deployments. func (c *deployments) Watch(opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Namespace(c.ns). Resource("deployments"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -153,10 +165,15 @@ func (c *deployments) Delete(name string, options *v1.DeleteOptions) error { // DeleteCollection deletes a collection of objects. func (c *deployments) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Namespace(c.ns). Resource("deployments"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/doc.go index 11ae7049d..771101956 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/extensions_client.go b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/extensions_client.go index c359a58f2..0e9edf5cc 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/extensions_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/extensions_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -32,7 +32,6 @@ type ExtensionsV1beta1Interface interface { IngressesGetter PodSecurityPoliciesGetter ReplicaSetsGetter - ScalesGetter } // ExtensionsV1beta1Client is used to interact with features provided by the extensions group. @@ -60,10 +59,6 @@ func (c *ExtensionsV1beta1Client) ReplicaSets(namespace string) ReplicaSetInterf return newReplicaSets(c, namespace) } -func (c *ExtensionsV1beta1Client) Scales(namespace string) ScaleInterface { - return newScales(c, namespace) -} - // NewForConfig creates a new ExtensionsV1beta1Client for the given config. func NewForConfig(c *rest.Config) (*ExtensionsV1beta1Client, error) { config := *c diff --git a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/BUILD deleted file mode 100644 index e62ff5bc8..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/BUILD +++ /dev/null @@ -1,47 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "fake_daemonset.go", - "fake_deployment.go", - "fake_deployment_expansion.go", - "fake_extensions_client.go", - "fake_ingress.go", - "fake_podsecuritypolicy.go", - "fake_replicaset.go", - "fake_scale.go", - "fake_scale_expansion.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake", - deps = [ - "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/testing:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/doc.go index 87a1873ed..16f443990 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_daemonset.go b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_daemonset.go index 083bed820..4c9866060 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_daemonset.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_daemonset.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -62,7 +62,7 @@ func (c *FakeDaemonSets) List(opts v1.ListOptions) (result *v1beta1.DaemonSetLis if label == nil { label = labels.Everything() } - list := &v1beta1.DaemonSetList{} + list := &v1beta1.DaemonSetList{ListMeta: obj.(*v1beta1.DaemonSetList).ListMeta} for _, item := range obj.(*v1beta1.DaemonSetList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) @@ -131,7 +131,7 @@ func (c *FakeDaemonSets) DeleteCollection(options *v1.DeleteOptions, listOptions // Patch applies the patch and returns the patched daemonSet. func (c *FakeDaemonSets) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.DaemonSet, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(daemonsetsResource, c.ns, name, data, subresources...), &v1beta1.DaemonSet{}) + Invokes(testing.NewPatchSubresourceAction(daemonsetsResource, c.ns, name, pt, data, subresources...), &v1beta1.DaemonSet{}) if obj == nil { return nil, err diff --git a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_deployment.go b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_deployment.go index 1ce8fb34b..7b7df45cc 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_deployment.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_deployment.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -62,7 +62,7 @@ func (c *FakeDeployments) List(opts v1.ListOptions) (result *v1beta1.DeploymentL if label == nil { label = labels.Everything() } - list := &v1beta1.DeploymentList{} + list := &v1beta1.DeploymentList{ListMeta: obj.(*v1beta1.DeploymentList).ListMeta} for _, item := range obj.(*v1beta1.DeploymentList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) @@ -131,7 +131,7 @@ func (c *FakeDeployments) DeleteCollection(options *v1.DeleteOptions, listOption // Patch applies the patch and returns the patched deployment. func (c *FakeDeployments) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.Deployment, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(deploymentsResource, c.ns, name, data, subresources...), &v1beta1.Deployment{}) + Invokes(testing.NewPatchSubresourceAction(deploymentsResource, c.ns, name, pt, data, subresources...), &v1beta1.Deployment{}) if obj == nil { return nil, err diff --git a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_extensions_client.go b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_extensions_client.go index d8b6741e6..0282c0b49 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_extensions_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_extensions_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -48,10 +48,6 @@ func (c *FakeExtensionsV1beta1) ReplicaSets(namespace string) v1beta1.ReplicaSet return &FakeReplicaSets{c, namespace} } -func (c *FakeExtensionsV1beta1) Scales(namespace string) v1beta1.ScaleInterface { - return &FakeScales{c, namespace} -} - // RESTClient returns a RESTClient that is used to communicate // with API server by this client implementation. func (c *FakeExtensionsV1beta1) RESTClient() rest.Interface { diff --git a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_ingress.go b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_ingress.go index 60efe17c8..01c252140 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_ingress.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_ingress.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -62,7 +62,7 @@ func (c *FakeIngresses) List(opts v1.ListOptions) (result *v1beta1.IngressList, if label == nil { label = labels.Everything() } - list := &v1beta1.IngressList{} + list := &v1beta1.IngressList{ListMeta: obj.(*v1beta1.IngressList).ListMeta} for _, item := range obj.(*v1beta1.IngressList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) @@ -131,7 +131,7 @@ func (c *FakeIngresses) DeleteCollection(options *v1.DeleteOptions, listOptions // Patch applies the patch and returns the patched ingress. func (c *FakeIngresses) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.Ingress, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(ingressesResource, c.ns, name, data, subresources...), &v1beta1.Ingress{}) + Invokes(testing.NewPatchSubresourceAction(ingressesResource, c.ns, name, pt, data, subresources...), &v1beta1.Ingress{}) if obj == nil { return nil, err diff --git a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_podsecuritypolicy.go b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_podsecuritypolicy.go index c381e62f1..b97a34416 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_podsecuritypolicy.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_podsecuritypolicy.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -59,7 +59,7 @@ func (c *FakePodSecurityPolicies) List(opts v1.ListOptions) (result *v1beta1.Pod if label == nil { label = labels.Everything() } - list := &v1beta1.PodSecurityPolicyList{} + list := &v1beta1.PodSecurityPolicyList{ListMeta: obj.(*v1beta1.PodSecurityPolicyList).ListMeta} for _, item := range obj.(*v1beta1.PodSecurityPolicyList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) @@ -112,7 +112,7 @@ func (c *FakePodSecurityPolicies) DeleteCollection(options *v1.DeleteOptions, li // Patch applies the patch and returns the patched podSecurityPolicy. func (c *FakePodSecurityPolicies) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.PodSecurityPolicy, err error) { obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(podsecuritypoliciesResource, name, data, subresources...), &v1beta1.PodSecurityPolicy{}) + Invokes(testing.NewRootPatchSubresourceAction(podsecuritypoliciesResource, name, pt, data, subresources...), &v1beta1.PodSecurityPolicy{}) if obj == nil { return nil, err } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_replicaset.go b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_replicaset.go index 20e8f76f6..7ed16af90 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_replicaset.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_replicaset.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -62,7 +62,7 @@ func (c *FakeReplicaSets) List(opts v1.ListOptions) (result *v1beta1.ReplicaSetL if label == nil { label = labels.Everything() } - list := &v1beta1.ReplicaSetList{} + list := &v1beta1.ReplicaSetList{ListMeta: obj.(*v1beta1.ReplicaSetList).ListMeta} for _, item := range obj.(*v1beta1.ReplicaSetList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) @@ -131,7 +131,7 @@ func (c *FakeReplicaSets) DeleteCollection(options *v1.DeleteOptions, listOption // Patch applies the patch and returns the patched replicaSet. func (c *FakeReplicaSets) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.ReplicaSet, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(replicasetsResource, c.ns, name, data, subresources...), &v1beta1.ReplicaSet{}) + Invokes(testing.NewPatchSubresourceAction(replicasetsResource, c.ns, name, pt, data, subresources...), &v1beta1.ReplicaSet{}) if obj == nil { return nil, err diff --git a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_scale_expansion.go b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_scale_expansion.go deleted file mode 100644 index 1f1d49ba1..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_scale_expansion.go +++ /dev/null @@ -1,47 +0,0 @@ -/* -Copyright 2015 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package fake - -import ( - "k8s.io/api/extensions/v1beta1" - "k8s.io/apimachinery/pkg/runtime/schema" - core "k8s.io/client-go/testing" -) - -func (c *FakeScales) Get(kind string, name string) (result *v1beta1.Scale, err error) { - action := core.GetActionImpl{} - action.Verb = "get" - action.Namespace = c.ns - action.Resource = schema.GroupVersionResource{Resource: kind} - action.Subresource = "scale" - action.Name = name - obj, err := c.Fake.Invokes(action, &v1beta1.Scale{}) - result = obj.(*v1beta1.Scale) - return -} - -func (c *FakeScales) Update(kind string, scale *v1beta1.Scale) (result *v1beta1.Scale, err error) { - action := core.UpdateActionImpl{} - action.Verb = "update" - action.Namespace = c.ns - action.Resource = schema.GroupVersionResource{Resource: kind} - action.Subresource = "scale" - action.Object = scale - obj, err := c.Fake.Invokes(action, scale) - result = obj.(*v1beta1.Scale) - return -} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/generated_expansion.go b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/generated_expansion.go index eef05e765..cfaeebd05 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/generated_expansion.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/generated_expansion.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/ingress.go b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/ingress.go index 26b21baa5..4da51c368 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/ingress.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/ingress.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,6 +19,8 @@ limitations under the License. package v1beta1 import ( + "time" + v1beta1 "k8s.io/api/extensions/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" @@ -76,11 +78,16 @@ func (c *ingresses) Get(name string, options v1.GetOptions) (result *v1beta1.Ing // List takes label and field selectors, and returns the list of Ingresses that match those selectors. func (c *ingresses) List(opts v1.ListOptions) (result *v1beta1.IngressList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1beta1.IngressList{} err = c.client.Get(). Namespace(c.ns). Resource("ingresses"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return @@ -88,11 +95,16 @@ func (c *ingresses) List(opts v1.ListOptions) (result *v1beta1.IngressList, err // Watch returns a watch.Interface that watches the requested ingresses. func (c *ingresses) Watch(opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Namespace(c.ns). Resource("ingresses"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -150,10 +162,15 @@ func (c *ingresses) Delete(name string, options *v1.DeleteOptions) error { // DeleteCollection deletes a collection of objects. func (c *ingresses) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Namespace(c.ns). Resource("ingresses"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/podsecuritypolicy.go b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/podsecuritypolicy.go index 19475a5c0..a947a54a6 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/podsecuritypolicy.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/podsecuritypolicy.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,6 +19,8 @@ limitations under the License. package v1beta1 import ( + "time" + v1beta1 "k8s.io/api/extensions/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" @@ -72,10 +74,15 @@ func (c *podSecurityPolicies) Get(name string, options v1.GetOptions) (result *v // List takes label and field selectors, and returns the list of PodSecurityPolicies that match those selectors. func (c *podSecurityPolicies) List(opts v1.ListOptions) (result *v1beta1.PodSecurityPolicyList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1beta1.PodSecurityPolicyList{} err = c.client.Get(). Resource("podsecuritypolicies"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return @@ -83,10 +90,15 @@ func (c *podSecurityPolicies) List(opts v1.ListOptions) (result *v1beta1.PodSecu // Watch returns a watch.Interface that watches the requested podSecurityPolicies. func (c *podSecurityPolicies) Watch(opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Resource("podsecuritypolicies"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -125,9 +137,14 @@ func (c *podSecurityPolicies) Delete(name string, options *v1.DeleteOptions) err // DeleteCollection deletes a collection of objects. func (c *podSecurityPolicies) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Resource("podsecuritypolicies"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/replicaset.go b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/replicaset.go index b307ac70e..444029058 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/replicaset.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/replicaset.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,6 +19,8 @@ limitations under the License. package v1beta1 import ( + "time" + v1beta1 "k8s.io/api/extensions/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" @@ -79,11 +81,16 @@ func (c *replicaSets) Get(name string, options v1.GetOptions) (result *v1beta1.R // List takes label and field selectors, and returns the list of ReplicaSets that match those selectors. func (c *replicaSets) List(opts v1.ListOptions) (result *v1beta1.ReplicaSetList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1beta1.ReplicaSetList{} err = c.client.Get(). Namespace(c.ns). Resource("replicasets"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return @@ -91,11 +98,16 @@ func (c *replicaSets) List(opts v1.ListOptions) (result *v1beta1.ReplicaSetList, // Watch returns a watch.Interface that watches the requested replicaSets. func (c *replicaSets) Watch(opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Namespace(c.ns). Resource("replicasets"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -153,10 +165,15 @@ func (c *replicaSets) Delete(name string, options *v1.DeleteOptions) error { // DeleteCollection deletes a collection of objects. func (c *replicaSets) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Namespace(c.ns). Resource("replicasets"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/scale.go b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/scale.go deleted file mode 100644 index e654d9537..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/scale.go +++ /dev/null @@ -1,48 +0,0 @@ -/* -Copyright 2018 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by client-gen. DO NOT EDIT. - -package v1beta1 - -import ( - rest "k8s.io/client-go/rest" -) - -// ScalesGetter has a method to return a ScaleInterface. -// A group's client should implement this interface. -type ScalesGetter interface { - Scales(namespace string) ScaleInterface -} - -// ScaleInterface has methods to work with Scale resources. -type ScaleInterface interface { - ScaleExpansion -} - -// scales implements ScaleInterface -type scales struct { - client rest.Interface - ns string -} - -// newScales returns a Scales -func newScales(c *ExtensionsV1beta1Client, namespace string) *scales { - return &scales{ - client: c.RESTClient(), - ns: namespace, - } -} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/scale_expansion.go b/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/scale_expansion.go deleted file mode 100644 index c9733cb28..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/scale_expansion.go +++ /dev/null @@ -1,65 +0,0 @@ -/* -Copyright 2016 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package v1beta1 - -import ( - "k8s.io/api/extensions/v1beta1" - "k8s.io/apimachinery/pkg/api/meta" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -// The ScaleExpansion interface allows manually adding extra methods to the ScaleInterface. -type ScaleExpansion interface { - Get(kind string, name string) (*v1beta1.Scale, error) - Update(kind string, scale *v1beta1.Scale) (*v1beta1.Scale, error) -} - -// Get takes the reference to scale subresource and returns the subresource or error, if one occurs. -func (c *scales) Get(kind string, name string) (result *v1beta1.Scale, err error) { - result = &v1beta1.Scale{} - - // TODO this method needs to take a proper unambiguous kind - fullyQualifiedKind := schema.GroupVersionKind{Kind: kind} - resource, _ := meta.UnsafeGuessKindToResource(fullyQualifiedKind) - - err = c.client.Get(). - Namespace(c.ns). - Resource(resource.Resource). - Name(name). - SubResource("scale"). - Do(). - Into(result) - return -} - -func (c *scales) Update(kind string, scale *v1beta1.Scale) (result *v1beta1.Scale, err error) { - result = &v1beta1.Scale{} - - // TODO this method needs to take a proper unambiguous kind - fullyQualifiedKind := schema.GroupVersionKind{Kind: kind} - resource, _ := meta.UnsafeGuessKindToResource(fullyQualifiedKind) - - err = c.client.Put(). - Namespace(scale.Namespace). - Resource(resource.Resource). - Name(scale.Name). - SubResource("scale"). - Body(scale). - Do(). - Into(result) - return -} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/BUILD deleted file mode 100644 index 7a2e3e2b1..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/BUILD +++ /dev/null @@ -1,42 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "generated_expansion.go", - "networking_client.go", - "networkpolicy.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/networking/v1", - deps = [ - "//vendor/k8s.io/api/networking/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/networking/v1/fake:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/doc.go index d007a2903..3af5d054f 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/fake/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/fake/BUILD deleted file mode 100644 index bc84632da..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/fake/BUILD +++ /dev/null @@ -1,40 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "fake_networking_client.go", - "fake_networkpolicy.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/networking/v1/fake", - deps = [ - "//vendor/k8s.io/api/networking/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/networking/v1:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/testing:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/fake/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/fake/doc.go index 87a1873ed..16f443990 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/fake/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/fake/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/fake/fake_networking_client.go b/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/fake/fake_networking_client.go index 8bce64250..6b135c636 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/fake/fake_networking_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/fake/fake_networking_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/fake/fake_networkpolicy.go b/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/fake/fake_networkpolicy.go index fbab3ca16..58667c481 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/fake/fake_networkpolicy.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/fake/fake_networkpolicy.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,7 +19,7 @@ limitations under the License. package fake import ( - networking_v1 "k8s.io/api/networking/v1" + networkingv1 "k8s.io/api/networking/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" schema "k8s.io/apimachinery/pkg/runtime/schema" @@ -39,20 +39,20 @@ var networkpoliciesResource = schema.GroupVersionResource{Group: "networking.k8s var networkpoliciesKind = schema.GroupVersionKind{Group: "networking.k8s.io", Version: "v1", Kind: "NetworkPolicy"} // Get takes name of the networkPolicy, and returns the corresponding networkPolicy object, and an error if there is any. -func (c *FakeNetworkPolicies) Get(name string, options v1.GetOptions) (result *networking_v1.NetworkPolicy, err error) { +func (c *FakeNetworkPolicies) Get(name string, options v1.GetOptions) (result *networkingv1.NetworkPolicy, err error) { obj, err := c.Fake. - Invokes(testing.NewGetAction(networkpoliciesResource, c.ns, name), &networking_v1.NetworkPolicy{}) + Invokes(testing.NewGetAction(networkpoliciesResource, c.ns, name), &networkingv1.NetworkPolicy{}) if obj == nil { return nil, err } - return obj.(*networking_v1.NetworkPolicy), err + return obj.(*networkingv1.NetworkPolicy), err } // List takes label and field selectors, and returns the list of NetworkPolicies that match those selectors. -func (c *FakeNetworkPolicies) List(opts v1.ListOptions) (result *networking_v1.NetworkPolicyList, err error) { +func (c *FakeNetworkPolicies) List(opts v1.ListOptions) (result *networkingv1.NetworkPolicyList, err error) { obj, err := c.Fake. - Invokes(testing.NewListAction(networkpoliciesResource, networkpoliciesKind, c.ns, opts), &networking_v1.NetworkPolicyList{}) + Invokes(testing.NewListAction(networkpoliciesResource, networkpoliciesKind, c.ns, opts), &networkingv1.NetworkPolicyList{}) if obj == nil { return nil, err @@ -62,8 +62,8 @@ func (c *FakeNetworkPolicies) List(opts v1.ListOptions) (result *networking_v1.N if label == nil { label = labels.Everything() } - list := &networking_v1.NetworkPolicyList{} - for _, item := range obj.(*networking_v1.NetworkPolicyList).Items { + list := &networkingv1.NetworkPolicyList{ListMeta: obj.(*networkingv1.NetworkPolicyList).ListMeta} + for _, item := range obj.(*networkingv1.NetworkPolicyList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) } @@ -79,31 +79,31 @@ func (c *FakeNetworkPolicies) Watch(opts v1.ListOptions) (watch.Interface, error } // Create takes the representation of a networkPolicy and creates it. Returns the server's representation of the networkPolicy, and an error, if there is any. -func (c *FakeNetworkPolicies) Create(networkPolicy *networking_v1.NetworkPolicy) (result *networking_v1.NetworkPolicy, err error) { +func (c *FakeNetworkPolicies) Create(networkPolicy *networkingv1.NetworkPolicy) (result *networkingv1.NetworkPolicy, err error) { obj, err := c.Fake. - Invokes(testing.NewCreateAction(networkpoliciesResource, c.ns, networkPolicy), &networking_v1.NetworkPolicy{}) + Invokes(testing.NewCreateAction(networkpoliciesResource, c.ns, networkPolicy), &networkingv1.NetworkPolicy{}) if obj == nil { return nil, err } - return obj.(*networking_v1.NetworkPolicy), err + return obj.(*networkingv1.NetworkPolicy), err } // Update takes the representation of a networkPolicy and updates it. Returns the server's representation of the networkPolicy, and an error, if there is any. -func (c *FakeNetworkPolicies) Update(networkPolicy *networking_v1.NetworkPolicy) (result *networking_v1.NetworkPolicy, err error) { +func (c *FakeNetworkPolicies) Update(networkPolicy *networkingv1.NetworkPolicy) (result *networkingv1.NetworkPolicy, err error) { obj, err := c.Fake. - Invokes(testing.NewUpdateAction(networkpoliciesResource, c.ns, networkPolicy), &networking_v1.NetworkPolicy{}) + Invokes(testing.NewUpdateAction(networkpoliciesResource, c.ns, networkPolicy), &networkingv1.NetworkPolicy{}) if obj == nil { return nil, err } - return obj.(*networking_v1.NetworkPolicy), err + return obj.(*networkingv1.NetworkPolicy), err } // Delete takes name of the networkPolicy and deletes it. Returns an error if one occurs. func (c *FakeNetworkPolicies) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. - Invokes(testing.NewDeleteAction(networkpoliciesResource, c.ns, name), &networking_v1.NetworkPolicy{}) + Invokes(testing.NewDeleteAction(networkpoliciesResource, c.ns, name), &networkingv1.NetworkPolicy{}) return err } @@ -112,17 +112,17 @@ func (c *FakeNetworkPolicies) Delete(name string, options *v1.DeleteOptions) err func (c *FakeNetworkPolicies) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { action := testing.NewDeleteCollectionAction(networkpoliciesResource, c.ns, listOptions) - _, err := c.Fake.Invokes(action, &networking_v1.NetworkPolicyList{}) + _, err := c.Fake.Invokes(action, &networkingv1.NetworkPolicyList{}) return err } // Patch applies the patch and returns the patched networkPolicy. -func (c *FakeNetworkPolicies) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *networking_v1.NetworkPolicy, err error) { +func (c *FakeNetworkPolicies) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *networkingv1.NetworkPolicy, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(networkpoliciesResource, c.ns, name, data, subresources...), &networking_v1.NetworkPolicy{}) + Invokes(testing.NewPatchSubresourceAction(networkpoliciesResource, c.ns, name, pt, data, subresources...), &networkingv1.NetworkPolicy{}) if obj == nil { return nil, err } - return obj.(*networking_v1.NetworkPolicy), err + return obj.(*networkingv1.NetworkPolicy), err } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/generated_expansion.go b/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/generated_expansion.go index c6dd5c323..7d77495fa 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/generated_expansion.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/generated_expansion.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/networking_client.go b/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/networking_client.go index ac8200f82..8684db456 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/networking_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/networking_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/networkpolicy.go b/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/networkpolicy.go index b0a85c5c5..3f39be957 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/networkpolicy.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/networking/v1/networkpolicy.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,8 +19,10 @@ limitations under the License. package v1 import ( + "time" + v1 "k8s.io/api/networking/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" scheme "k8s.io/client-go/kubernetes/scheme" @@ -37,11 +39,11 @@ type NetworkPoliciesGetter interface { type NetworkPolicyInterface interface { Create(*v1.NetworkPolicy) (*v1.NetworkPolicy, error) Update(*v1.NetworkPolicy) (*v1.NetworkPolicy, error) - Delete(name string, options *meta_v1.DeleteOptions) error - DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error - Get(name string, options meta_v1.GetOptions) (*v1.NetworkPolicy, error) - List(opts meta_v1.ListOptions) (*v1.NetworkPolicyList, error) - Watch(opts meta_v1.ListOptions) (watch.Interface, error) + Delete(name string, options *metav1.DeleteOptions) error + DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error + Get(name string, options metav1.GetOptions) (*v1.NetworkPolicy, error) + List(opts metav1.ListOptions) (*v1.NetworkPolicyList, error) + Watch(opts metav1.ListOptions) (watch.Interface, error) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.NetworkPolicy, err error) NetworkPolicyExpansion } @@ -61,7 +63,7 @@ func newNetworkPolicies(c *NetworkingV1Client, namespace string) *networkPolicie } // Get takes name of the networkPolicy, and returns the corresponding networkPolicy object, and an error if there is any. -func (c *networkPolicies) Get(name string, options meta_v1.GetOptions) (result *v1.NetworkPolicy, err error) { +func (c *networkPolicies) Get(name string, options metav1.GetOptions) (result *v1.NetworkPolicy, err error) { result = &v1.NetworkPolicy{} err = c.client.Get(). Namespace(c.ns). @@ -74,24 +76,34 @@ func (c *networkPolicies) Get(name string, options meta_v1.GetOptions) (result * } // List takes label and field selectors, and returns the list of NetworkPolicies that match those selectors. -func (c *networkPolicies) List(opts meta_v1.ListOptions) (result *v1.NetworkPolicyList, err error) { +func (c *networkPolicies) List(opts metav1.ListOptions) (result *v1.NetworkPolicyList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1.NetworkPolicyList{} err = c.client.Get(). Namespace(c.ns). Resource("networkpolicies"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return } // Watch returns a watch.Interface that watches the requested networkPolicies. -func (c *networkPolicies) Watch(opts meta_v1.ListOptions) (watch.Interface, error) { +func (c *networkPolicies) Watch(opts metav1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Namespace(c.ns). Resource("networkpolicies"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -121,7 +133,7 @@ func (c *networkPolicies) Update(networkPolicy *v1.NetworkPolicy) (result *v1.Ne } // Delete takes name of the networkPolicy and deletes it. Returns an error if one occurs. -func (c *networkPolicies) Delete(name string, options *meta_v1.DeleteOptions) error { +func (c *networkPolicies) Delete(name string, options *metav1.DeleteOptions) error { return c.client.Delete(). Namespace(c.ns). Resource("networkpolicies"). @@ -132,11 +144,16 @@ func (c *networkPolicies) Delete(name string, options *meta_v1.DeleteOptions) er } // DeleteCollection deletes a collection of objects. -func (c *networkPolicies) DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error { +func (c *networkPolicies) DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Namespace(c.ns). Resource("networkpolicies"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/BUILD deleted file mode 100644 index 92606b3c4..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/BUILD +++ /dev/null @@ -1,45 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "eviction.go", - "eviction_expansion.go", - "generated_expansion.go", - "poddisruptionbudget.go", - "podsecuritypolicy.go", - "policy_client.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/policy/v1beta1", - deps = [ - "//vendor/k8s.io/api/policy/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/doc.go index 11ae7049d..771101956 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/eviction.go b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/eviction.go index b0abf6563..12e8e76ed 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/eviction.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/eviction.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/BUILD deleted file mode 100644 index 9b6941ce9..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/BUILD +++ /dev/null @@ -1,43 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "fake_eviction.go", - "fake_eviction_expansion.go", - "fake_poddisruptionbudget.go", - "fake_podsecuritypolicy.go", - "fake_policy_client.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake", - deps = [ - "//vendor/k8s.io/api/policy/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/testing:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/doc.go index 87a1873ed..16f443990 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/fake_eviction.go b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/fake_eviction.go index 06aba37b4..b8f6f3eae 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/fake_eviction.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/fake_eviction.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/fake_eviction_expansion.go b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/fake_eviction_expansion.go index 2f0d8e953..f3b5e93ab 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/fake_eviction_expansion.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/fake_eviction_expansion.go @@ -26,8 +26,9 @@ func (c *FakeEvictions) Evict(eviction *policy.Eviction) error { action := core.GetActionImpl{} action.Verb = "post" action.Namespace = c.ns - action.Resource = schema.GroupVersionResource{Group: "", Version: "", Resource: "pods"} + action.Resource = schema.GroupVersionResource{Group: "", Version: "v1", Resource: "pods"} action.Subresource = "eviction" + action.Name = eviction.Name _, err := c.Fake.Invokes(action, eviction) return err } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/fake_poddisruptionbudget.go b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/fake_poddisruptionbudget.go index d85a67e4f..5bfbbca47 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/fake_poddisruptionbudget.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/fake_poddisruptionbudget.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -62,7 +62,7 @@ func (c *FakePodDisruptionBudgets) List(opts v1.ListOptions) (result *v1beta1.Po if label == nil { label = labels.Everything() } - list := &v1beta1.PodDisruptionBudgetList{} + list := &v1beta1.PodDisruptionBudgetList{ListMeta: obj.(*v1beta1.PodDisruptionBudgetList).ListMeta} for _, item := range obj.(*v1beta1.PodDisruptionBudgetList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) @@ -131,7 +131,7 @@ func (c *FakePodDisruptionBudgets) DeleteCollection(options *v1.DeleteOptions, l // Patch applies the patch and returns the patched podDisruptionBudget. func (c *FakePodDisruptionBudgets) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.PodDisruptionBudget, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(poddisruptionbudgetsResource, c.ns, name, data, subresources...), &v1beta1.PodDisruptionBudget{}) + Invokes(testing.NewPatchSubresourceAction(poddisruptionbudgetsResource, c.ns, name, pt, data, subresources...), &v1beta1.PodDisruptionBudget{}) if obj == nil { return nil, err diff --git a/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/fake_podsecuritypolicy.go b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/fake_podsecuritypolicy.go index 068515a36..32d1989f3 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/fake_podsecuritypolicy.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/fake_podsecuritypolicy.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -59,7 +59,7 @@ func (c *FakePodSecurityPolicies) List(opts v1.ListOptions) (result *v1beta1.Pod if label == nil { label = labels.Everything() } - list := &v1beta1.PodSecurityPolicyList{} + list := &v1beta1.PodSecurityPolicyList{ListMeta: obj.(*v1beta1.PodSecurityPolicyList).ListMeta} for _, item := range obj.(*v1beta1.PodSecurityPolicyList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) @@ -112,7 +112,7 @@ func (c *FakePodSecurityPolicies) DeleteCollection(options *v1.DeleteOptions, li // Patch applies the patch and returns the patched podSecurityPolicy. func (c *FakePodSecurityPolicies) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.PodSecurityPolicy, err error) { obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(podsecuritypoliciesResource, name, data, subresources...), &v1beta1.PodSecurityPolicy{}) + Invokes(testing.NewRootPatchSubresourceAction(podsecuritypoliciesResource, name, pt, data, subresources...), &v1beta1.PodSecurityPolicy{}) if obj == nil { return nil, err } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/fake_policy_client.go b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/fake_policy_client.go index 3b7e5415e..9c780bf1f 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/fake_policy_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/fake_policy_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/generated_expansion.go b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/generated_expansion.go index d39f527be..078c16d5c 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/generated_expansion.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/generated_expansion.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/poddisruptionbudget.go b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/poddisruptionbudget.go index d154dfcf8..864af9a26 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/poddisruptionbudget.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/poddisruptionbudget.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,6 +19,8 @@ limitations under the License. package v1beta1 import ( + "time" + v1beta1 "k8s.io/api/policy/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" @@ -76,11 +78,16 @@ func (c *podDisruptionBudgets) Get(name string, options v1.GetOptions) (result * // List takes label and field selectors, and returns the list of PodDisruptionBudgets that match those selectors. func (c *podDisruptionBudgets) List(opts v1.ListOptions) (result *v1beta1.PodDisruptionBudgetList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1beta1.PodDisruptionBudgetList{} err = c.client.Get(). Namespace(c.ns). Resource("poddisruptionbudgets"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return @@ -88,11 +95,16 @@ func (c *podDisruptionBudgets) List(opts v1.ListOptions) (result *v1beta1.PodDis // Watch returns a watch.Interface that watches the requested podDisruptionBudgets. func (c *podDisruptionBudgets) Watch(opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Namespace(c.ns). Resource("poddisruptionbudgets"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -150,10 +162,15 @@ func (c *podDisruptionBudgets) Delete(name string, options *v1.DeleteOptions) er // DeleteCollection deletes a collection of objects. func (c *podDisruptionBudgets) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Namespace(c.ns). Resource("poddisruptionbudgets"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/podsecuritypolicy.go b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/podsecuritypolicy.go index de6760b14..d02096d74 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/podsecuritypolicy.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/podsecuritypolicy.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,6 +19,8 @@ limitations under the License. package v1beta1 import ( + "time" + v1beta1 "k8s.io/api/policy/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" @@ -72,10 +74,15 @@ func (c *podSecurityPolicies) Get(name string, options v1.GetOptions) (result *v // List takes label and field selectors, and returns the list of PodSecurityPolicies that match those selectors. func (c *podSecurityPolicies) List(opts v1.ListOptions) (result *v1beta1.PodSecurityPolicyList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1beta1.PodSecurityPolicyList{} err = c.client.Get(). Resource("podsecuritypolicies"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return @@ -83,10 +90,15 @@ func (c *podSecurityPolicies) List(opts v1.ListOptions) (result *v1beta1.PodSecu // Watch returns a watch.Interface that watches the requested podSecurityPolicies. func (c *podSecurityPolicies) Watch(opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Resource("podsecuritypolicies"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -125,9 +137,14 @@ func (c *podSecurityPolicies) Delete(name string, options *v1.DeleteOptions) err // DeleteCollection deletes a collection of objects. func (c *podSecurityPolicies) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Resource("podsecuritypolicies"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/policy_client.go b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/policy_client.go index f45cfdf37..020e185e6 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/policy_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/policy_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/OWNERS b/vendor/k8s.io/client-go/kubernetes/typed/rbac/OWNERS new file mode 100644 index 000000000..cd0d70a0f --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/OWNERS @@ -0,0 +1,7 @@ +approvers: +- sig-auth-authorizers-approvers +reviewers: +- sig-auth-authorizers-reviewers +labels: +- sig/auth + diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/BUILD deleted file mode 100644 index 76e85d4fc..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/BUILD +++ /dev/null @@ -1,45 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "clusterrole.go", - "clusterrolebinding.go", - "doc.go", - "generated_expansion.go", - "rbac_client.go", - "role.go", - "rolebinding.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/rbac/v1", - deps = [ - "//vendor/k8s.io/api/rbac/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/fake:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/clusterrole.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/clusterrole.go index e1af3a99b..0a47c4411 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/clusterrole.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/clusterrole.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,8 +19,10 @@ limitations under the License. package v1 import ( + "time" + v1 "k8s.io/api/rbac/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" scheme "k8s.io/client-go/kubernetes/scheme" @@ -37,11 +39,11 @@ type ClusterRolesGetter interface { type ClusterRoleInterface interface { Create(*v1.ClusterRole) (*v1.ClusterRole, error) Update(*v1.ClusterRole) (*v1.ClusterRole, error) - Delete(name string, options *meta_v1.DeleteOptions) error - DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error - Get(name string, options meta_v1.GetOptions) (*v1.ClusterRole, error) - List(opts meta_v1.ListOptions) (*v1.ClusterRoleList, error) - Watch(opts meta_v1.ListOptions) (watch.Interface, error) + Delete(name string, options *metav1.DeleteOptions) error + DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error + Get(name string, options metav1.GetOptions) (*v1.ClusterRole, error) + List(opts metav1.ListOptions) (*v1.ClusterRoleList, error) + Watch(opts metav1.ListOptions) (watch.Interface, error) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.ClusterRole, err error) ClusterRoleExpansion } @@ -59,7 +61,7 @@ func newClusterRoles(c *RbacV1Client) *clusterRoles { } // Get takes name of the clusterRole, and returns the corresponding clusterRole object, and an error if there is any. -func (c *clusterRoles) Get(name string, options meta_v1.GetOptions) (result *v1.ClusterRole, err error) { +func (c *clusterRoles) Get(name string, options metav1.GetOptions) (result *v1.ClusterRole, err error) { result = &v1.ClusterRole{} err = c.client.Get(). Resource("clusterroles"). @@ -71,22 +73,32 @@ func (c *clusterRoles) Get(name string, options meta_v1.GetOptions) (result *v1. } // List takes label and field selectors, and returns the list of ClusterRoles that match those selectors. -func (c *clusterRoles) List(opts meta_v1.ListOptions) (result *v1.ClusterRoleList, err error) { +func (c *clusterRoles) List(opts metav1.ListOptions) (result *v1.ClusterRoleList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1.ClusterRoleList{} err = c.client.Get(). Resource("clusterroles"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return } // Watch returns a watch.Interface that watches the requested clusterRoles. -func (c *clusterRoles) Watch(opts meta_v1.ListOptions) (watch.Interface, error) { +func (c *clusterRoles) Watch(opts metav1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Resource("clusterroles"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -114,7 +126,7 @@ func (c *clusterRoles) Update(clusterRole *v1.ClusterRole) (result *v1.ClusterRo } // Delete takes name of the clusterRole and deletes it. Returns an error if one occurs. -func (c *clusterRoles) Delete(name string, options *meta_v1.DeleteOptions) error { +func (c *clusterRoles) Delete(name string, options *metav1.DeleteOptions) error { return c.client.Delete(). Resource("clusterroles"). Name(name). @@ -124,10 +136,15 @@ func (c *clusterRoles) Delete(name string, options *meta_v1.DeleteOptions) error } // DeleteCollection deletes a collection of objects. -func (c *clusterRoles) DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error { +func (c *clusterRoles) DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Resource("clusterroles"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/clusterrolebinding.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/clusterrolebinding.go index c49ac6dd2..c16ebc312 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/clusterrolebinding.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/clusterrolebinding.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,8 +19,10 @@ limitations under the License. package v1 import ( + "time" + v1 "k8s.io/api/rbac/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" scheme "k8s.io/client-go/kubernetes/scheme" @@ -37,11 +39,11 @@ type ClusterRoleBindingsGetter interface { type ClusterRoleBindingInterface interface { Create(*v1.ClusterRoleBinding) (*v1.ClusterRoleBinding, error) Update(*v1.ClusterRoleBinding) (*v1.ClusterRoleBinding, error) - Delete(name string, options *meta_v1.DeleteOptions) error - DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error - Get(name string, options meta_v1.GetOptions) (*v1.ClusterRoleBinding, error) - List(opts meta_v1.ListOptions) (*v1.ClusterRoleBindingList, error) - Watch(opts meta_v1.ListOptions) (watch.Interface, error) + Delete(name string, options *metav1.DeleteOptions) error + DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error + Get(name string, options metav1.GetOptions) (*v1.ClusterRoleBinding, error) + List(opts metav1.ListOptions) (*v1.ClusterRoleBindingList, error) + Watch(opts metav1.ListOptions) (watch.Interface, error) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.ClusterRoleBinding, err error) ClusterRoleBindingExpansion } @@ -59,7 +61,7 @@ func newClusterRoleBindings(c *RbacV1Client) *clusterRoleBindings { } // Get takes name of the clusterRoleBinding, and returns the corresponding clusterRoleBinding object, and an error if there is any. -func (c *clusterRoleBindings) Get(name string, options meta_v1.GetOptions) (result *v1.ClusterRoleBinding, err error) { +func (c *clusterRoleBindings) Get(name string, options metav1.GetOptions) (result *v1.ClusterRoleBinding, err error) { result = &v1.ClusterRoleBinding{} err = c.client.Get(). Resource("clusterrolebindings"). @@ -71,22 +73,32 @@ func (c *clusterRoleBindings) Get(name string, options meta_v1.GetOptions) (resu } // List takes label and field selectors, and returns the list of ClusterRoleBindings that match those selectors. -func (c *clusterRoleBindings) List(opts meta_v1.ListOptions) (result *v1.ClusterRoleBindingList, err error) { +func (c *clusterRoleBindings) List(opts metav1.ListOptions) (result *v1.ClusterRoleBindingList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1.ClusterRoleBindingList{} err = c.client.Get(). Resource("clusterrolebindings"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return } // Watch returns a watch.Interface that watches the requested clusterRoleBindings. -func (c *clusterRoleBindings) Watch(opts meta_v1.ListOptions) (watch.Interface, error) { +func (c *clusterRoleBindings) Watch(opts metav1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Resource("clusterrolebindings"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -114,7 +126,7 @@ func (c *clusterRoleBindings) Update(clusterRoleBinding *v1.ClusterRoleBinding) } // Delete takes name of the clusterRoleBinding and deletes it. Returns an error if one occurs. -func (c *clusterRoleBindings) Delete(name string, options *meta_v1.DeleteOptions) error { +func (c *clusterRoleBindings) Delete(name string, options *metav1.DeleteOptions) error { return c.client.Delete(). Resource("clusterrolebindings"). Name(name). @@ -124,10 +136,15 @@ func (c *clusterRoleBindings) Delete(name string, options *meta_v1.DeleteOptions } // DeleteCollection deletes a collection of objects. -func (c *clusterRoleBindings) DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error { +func (c *clusterRoleBindings) DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Resource("clusterrolebindings"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/doc.go index d007a2903..3af5d054f 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/BUILD deleted file mode 100644 index 4e92a39ba..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/BUILD +++ /dev/null @@ -1,43 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "fake_clusterrole.go", - "fake_clusterrolebinding.go", - "fake_rbac_client.go", - "fake_role.go", - "fake_rolebinding.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/rbac/v1/fake", - deps = [ - "//vendor/k8s.io/api/rbac/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/rbac/v1:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/testing:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/doc.go index 87a1873ed..16f443990 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_clusterrole.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_clusterrole.go index b07323c50..d57f33939 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_clusterrole.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_clusterrole.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,7 +19,7 @@ limitations under the License. package fake import ( - rbac_v1 "k8s.io/api/rbac/v1" + rbacv1 "k8s.io/api/rbac/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" schema "k8s.io/apimachinery/pkg/runtime/schema" @@ -38,19 +38,19 @@ var clusterrolesResource = schema.GroupVersionResource{Group: "rbac.authorizatio var clusterrolesKind = schema.GroupVersionKind{Group: "rbac.authorization.k8s.io", Version: "v1", Kind: "ClusterRole"} // Get takes name of the clusterRole, and returns the corresponding clusterRole object, and an error if there is any. -func (c *FakeClusterRoles) Get(name string, options v1.GetOptions) (result *rbac_v1.ClusterRole, err error) { +func (c *FakeClusterRoles) Get(name string, options v1.GetOptions) (result *rbacv1.ClusterRole, err error) { obj, err := c.Fake. - Invokes(testing.NewRootGetAction(clusterrolesResource, name), &rbac_v1.ClusterRole{}) + Invokes(testing.NewRootGetAction(clusterrolesResource, name), &rbacv1.ClusterRole{}) if obj == nil { return nil, err } - return obj.(*rbac_v1.ClusterRole), err + return obj.(*rbacv1.ClusterRole), err } // List takes label and field selectors, and returns the list of ClusterRoles that match those selectors. -func (c *FakeClusterRoles) List(opts v1.ListOptions) (result *rbac_v1.ClusterRoleList, err error) { +func (c *FakeClusterRoles) List(opts v1.ListOptions) (result *rbacv1.ClusterRoleList, err error) { obj, err := c.Fake. - Invokes(testing.NewRootListAction(clusterrolesResource, clusterrolesKind, opts), &rbac_v1.ClusterRoleList{}) + Invokes(testing.NewRootListAction(clusterrolesResource, clusterrolesKind, opts), &rbacv1.ClusterRoleList{}) if obj == nil { return nil, err } @@ -59,8 +59,8 @@ func (c *FakeClusterRoles) List(opts v1.ListOptions) (result *rbac_v1.ClusterRol if label == nil { label = labels.Everything() } - list := &rbac_v1.ClusterRoleList{} - for _, item := range obj.(*rbac_v1.ClusterRoleList).Items { + list := &rbacv1.ClusterRoleList{ListMeta: obj.(*rbacv1.ClusterRoleList).ListMeta} + for _, item := range obj.(*rbacv1.ClusterRoleList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) } @@ -75,29 +75,29 @@ func (c *FakeClusterRoles) Watch(opts v1.ListOptions) (watch.Interface, error) { } // Create takes the representation of a clusterRole and creates it. Returns the server's representation of the clusterRole, and an error, if there is any. -func (c *FakeClusterRoles) Create(clusterRole *rbac_v1.ClusterRole) (result *rbac_v1.ClusterRole, err error) { +func (c *FakeClusterRoles) Create(clusterRole *rbacv1.ClusterRole) (result *rbacv1.ClusterRole, err error) { obj, err := c.Fake. - Invokes(testing.NewRootCreateAction(clusterrolesResource, clusterRole), &rbac_v1.ClusterRole{}) + Invokes(testing.NewRootCreateAction(clusterrolesResource, clusterRole), &rbacv1.ClusterRole{}) if obj == nil { return nil, err } - return obj.(*rbac_v1.ClusterRole), err + return obj.(*rbacv1.ClusterRole), err } // Update takes the representation of a clusterRole and updates it. Returns the server's representation of the clusterRole, and an error, if there is any. -func (c *FakeClusterRoles) Update(clusterRole *rbac_v1.ClusterRole) (result *rbac_v1.ClusterRole, err error) { +func (c *FakeClusterRoles) Update(clusterRole *rbacv1.ClusterRole) (result *rbacv1.ClusterRole, err error) { obj, err := c.Fake. - Invokes(testing.NewRootUpdateAction(clusterrolesResource, clusterRole), &rbac_v1.ClusterRole{}) + Invokes(testing.NewRootUpdateAction(clusterrolesResource, clusterRole), &rbacv1.ClusterRole{}) if obj == nil { return nil, err } - return obj.(*rbac_v1.ClusterRole), err + return obj.(*rbacv1.ClusterRole), err } // Delete takes name of the clusterRole and deletes it. Returns an error if one occurs. func (c *FakeClusterRoles) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. - Invokes(testing.NewRootDeleteAction(clusterrolesResource, name), &rbac_v1.ClusterRole{}) + Invokes(testing.NewRootDeleteAction(clusterrolesResource, name), &rbacv1.ClusterRole{}) return err } @@ -105,16 +105,16 @@ func (c *FakeClusterRoles) Delete(name string, options *v1.DeleteOptions) error func (c *FakeClusterRoles) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { action := testing.NewRootDeleteCollectionAction(clusterrolesResource, listOptions) - _, err := c.Fake.Invokes(action, &rbac_v1.ClusterRoleList{}) + _, err := c.Fake.Invokes(action, &rbacv1.ClusterRoleList{}) return err } // Patch applies the patch and returns the patched clusterRole. -func (c *FakeClusterRoles) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *rbac_v1.ClusterRole, err error) { +func (c *FakeClusterRoles) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *rbacv1.ClusterRole, err error) { obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(clusterrolesResource, name, data, subresources...), &rbac_v1.ClusterRole{}) + Invokes(testing.NewRootPatchSubresourceAction(clusterrolesResource, name, pt, data, subresources...), &rbacv1.ClusterRole{}) if obj == nil { return nil, err } - return obj.(*rbac_v1.ClusterRole), err + return obj.(*rbacv1.ClusterRole), err } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_clusterrolebinding.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_clusterrolebinding.go index 5e960c8ca..878473ef3 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_clusterrolebinding.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_clusterrolebinding.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,7 +19,7 @@ limitations under the License. package fake import ( - rbac_v1 "k8s.io/api/rbac/v1" + rbacv1 "k8s.io/api/rbac/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" schema "k8s.io/apimachinery/pkg/runtime/schema" @@ -38,19 +38,19 @@ var clusterrolebindingsResource = schema.GroupVersionResource{Group: "rbac.autho var clusterrolebindingsKind = schema.GroupVersionKind{Group: "rbac.authorization.k8s.io", Version: "v1", Kind: "ClusterRoleBinding"} // Get takes name of the clusterRoleBinding, and returns the corresponding clusterRoleBinding object, and an error if there is any. -func (c *FakeClusterRoleBindings) Get(name string, options v1.GetOptions) (result *rbac_v1.ClusterRoleBinding, err error) { +func (c *FakeClusterRoleBindings) Get(name string, options v1.GetOptions) (result *rbacv1.ClusterRoleBinding, err error) { obj, err := c.Fake. - Invokes(testing.NewRootGetAction(clusterrolebindingsResource, name), &rbac_v1.ClusterRoleBinding{}) + Invokes(testing.NewRootGetAction(clusterrolebindingsResource, name), &rbacv1.ClusterRoleBinding{}) if obj == nil { return nil, err } - return obj.(*rbac_v1.ClusterRoleBinding), err + return obj.(*rbacv1.ClusterRoleBinding), err } // List takes label and field selectors, and returns the list of ClusterRoleBindings that match those selectors. -func (c *FakeClusterRoleBindings) List(opts v1.ListOptions) (result *rbac_v1.ClusterRoleBindingList, err error) { +func (c *FakeClusterRoleBindings) List(opts v1.ListOptions) (result *rbacv1.ClusterRoleBindingList, err error) { obj, err := c.Fake. - Invokes(testing.NewRootListAction(clusterrolebindingsResource, clusterrolebindingsKind, opts), &rbac_v1.ClusterRoleBindingList{}) + Invokes(testing.NewRootListAction(clusterrolebindingsResource, clusterrolebindingsKind, opts), &rbacv1.ClusterRoleBindingList{}) if obj == nil { return nil, err } @@ -59,8 +59,8 @@ func (c *FakeClusterRoleBindings) List(opts v1.ListOptions) (result *rbac_v1.Clu if label == nil { label = labels.Everything() } - list := &rbac_v1.ClusterRoleBindingList{} - for _, item := range obj.(*rbac_v1.ClusterRoleBindingList).Items { + list := &rbacv1.ClusterRoleBindingList{ListMeta: obj.(*rbacv1.ClusterRoleBindingList).ListMeta} + for _, item := range obj.(*rbacv1.ClusterRoleBindingList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) } @@ -75,29 +75,29 @@ func (c *FakeClusterRoleBindings) Watch(opts v1.ListOptions) (watch.Interface, e } // Create takes the representation of a clusterRoleBinding and creates it. Returns the server's representation of the clusterRoleBinding, and an error, if there is any. -func (c *FakeClusterRoleBindings) Create(clusterRoleBinding *rbac_v1.ClusterRoleBinding) (result *rbac_v1.ClusterRoleBinding, err error) { +func (c *FakeClusterRoleBindings) Create(clusterRoleBinding *rbacv1.ClusterRoleBinding) (result *rbacv1.ClusterRoleBinding, err error) { obj, err := c.Fake. - Invokes(testing.NewRootCreateAction(clusterrolebindingsResource, clusterRoleBinding), &rbac_v1.ClusterRoleBinding{}) + Invokes(testing.NewRootCreateAction(clusterrolebindingsResource, clusterRoleBinding), &rbacv1.ClusterRoleBinding{}) if obj == nil { return nil, err } - return obj.(*rbac_v1.ClusterRoleBinding), err + return obj.(*rbacv1.ClusterRoleBinding), err } // Update takes the representation of a clusterRoleBinding and updates it. Returns the server's representation of the clusterRoleBinding, and an error, if there is any. -func (c *FakeClusterRoleBindings) Update(clusterRoleBinding *rbac_v1.ClusterRoleBinding) (result *rbac_v1.ClusterRoleBinding, err error) { +func (c *FakeClusterRoleBindings) Update(clusterRoleBinding *rbacv1.ClusterRoleBinding) (result *rbacv1.ClusterRoleBinding, err error) { obj, err := c.Fake. - Invokes(testing.NewRootUpdateAction(clusterrolebindingsResource, clusterRoleBinding), &rbac_v1.ClusterRoleBinding{}) + Invokes(testing.NewRootUpdateAction(clusterrolebindingsResource, clusterRoleBinding), &rbacv1.ClusterRoleBinding{}) if obj == nil { return nil, err } - return obj.(*rbac_v1.ClusterRoleBinding), err + return obj.(*rbacv1.ClusterRoleBinding), err } // Delete takes name of the clusterRoleBinding and deletes it. Returns an error if one occurs. func (c *FakeClusterRoleBindings) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. - Invokes(testing.NewRootDeleteAction(clusterrolebindingsResource, name), &rbac_v1.ClusterRoleBinding{}) + Invokes(testing.NewRootDeleteAction(clusterrolebindingsResource, name), &rbacv1.ClusterRoleBinding{}) return err } @@ -105,16 +105,16 @@ func (c *FakeClusterRoleBindings) Delete(name string, options *v1.DeleteOptions) func (c *FakeClusterRoleBindings) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { action := testing.NewRootDeleteCollectionAction(clusterrolebindingsResource, listOptions) - _, err := c.Fake.Invokes(action, &rbac_v1.ClusterRoleBindingList{}) + _, err := c.Fake.Invokes(action, &rbacv1.ClusterRoleBindingList{}) return err } // Patch applies the patch and returns the patched clusterRoleBinding. -func (c *FakeClusterRoleBindings) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *rbac_v1.ClusterRoleBinding, err error) { +func (c *FakeClusterRoleBindings) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *rbacv1.ClusterRoleBinding, err error) { obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(clusterrolebindingsResource, name, data, subresources...), &rbac_v1.ClusterRoleBinding{}) + Invokes(testing.NewRootPatchSubresourceAction(clusterrolebindingsResource, name, pt, data, subresources...), &rbacv1.ClusterRoleBinding{}) if obj == nil { return nil, err } - return obj.(*rbac_v1.ClusterRoleBinding), err + return obj.(*rbacv1.ClusterRoleBinding), err } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_rbac_client.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_rbac_client.go index 5311f0618..426fd70d6 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_rbac_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_rbac_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_role.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_role.go index 733760de2..78ef3192f 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_role.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_role.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,7 +19,7 @@ limitations under the License. package fake import ( - rbac_v1 "k8s.io/api/rbac/v1" + rbacv1 "k8s.io/api/rbac/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" schema "k8s.io/apimachinery/pkg/runtime/schema" @@ -39,20 +39,20 @@ var rolesResource = schema.GroupVersionResource{Group: "rbac.authorization.k8s.i var rolesKind = schema.GroupVersionKind{Group: "rbac.authorization.k8s.io", Version: "v1", Kind: "Role"} // Get takes name of the role, and returns the corresponding role object, and an error if there is any. -func (c *FakeRoles) Get(name string, options v1.GetOptions) (result *rbac_v1.Role, err error) { +func (c *FakeRoles) Get(name string, options v1.GetOptions) (result *rbacv1.Role, err error) { obj, err := c.Fake. - Invokes(testing.NewGetAction(rolesResource, c.ns, name), &rbac_v1.Role{}) + Invokes(testing.NewGetAction(rolesResource, c.ns, name), &rbacv1.Role{}) if obj == nil { return nil, err } - return obj.(*rbac_v1.Role), err + return obj.(*rbacv1.Role), err } // List takes label and field selectors, and returns the list of Roles that match those selectors. -func (c *FakeRoles) List(opts v1.ListOptions) (result *rbac_v1.RoleList, err error) { +func (c *FakeRoles) List(opts v1.ListOptions) (result *rbacv1.RoleList, err error) { obj, err := c.Fake. - Invokes(testing.NewListAction(rolesResource, rolesKind, c.ns, opts), &rbac_v1.RoleList{}) + Invokes(testing.NewListAction(rolesResource, rolesKind, c.ns, opts), &rbacv1.RoleList{}) if obj == nil { return nil, err @@ -62,8 +62,8 @@ func (c *FakeRoles) List(opts v1.ListOptions) (result *rbac_v1.RoleList, err err if label == nil { label = labels.Everything() } - list := &rbac_v1.RoleList{} - for _, item := range obj.(*rbac_v1.RoleList).Items { + list := &rbacv1.RoleList{ListMeta: obj.(*rbacv1.RoleList).ListMeta} + for _, item := range obj.(*rbacv1.RoleList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) } @@ -79,31 +79,31 @@ func (c *FakeRoles) Watch(opts v1.ListOptions) (watch.Interface, error) { } // Create takes the representation of a role and creates it. Returns the server's representation of the role, and an error, if there is any. -func (c *FakeRoles) Create(role *rbac_v1.Role) (result *rbac_v1.Role, err error) { +func (c *FakeRoles) Create(role *rbacv1.Role) (result *rbacv1.Role, err error) { obj, err := c.Fake. - Invokes(testing.NewCreateAction(rolesResource, c.ns, role), &rbac_v1.Role{}) + Invokes(testing.NewCreateAction(rolesResource, c.ns, role), &rbacv1.Role{}) if obj == nil { return nil, err } - return obj.(*rbac_v1.Role), err + return obj.(*rbacv1.Role), err } // Update takes the representation of a role and updates it. Returns the server's representation of the role, and an error, if there is any. -func (c *FakeRoles) Update(role *rbac_v1.Role) (result *rbac_v1.Role, err error) { +func (c *FakeRoles) Update(role *rbacv1.Role) (result *rbacv1.Role, err error) { obj, err := c.Fake. - Invokes(testing.NewUpdateAction(rolesResource, c.ns, role), &rbac_v1.Role{}) + Invokes(testing.NewUpdateAction(rolesResource, c.ns, role), &rbacv1.Role{}) if obj == nil { return nil, err } - return obj.(*rbac_v1.Role), err + return obj.(*rbacv1.Role), err } // Delete takes name of the role and deletes it. Returns an error if one occurs. func (c *FakeRoles) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. - Invokes(testing.NewDeleteAction(rolesResource, c.ns, name), &rbac_v1.Role{}) + Invokes(testing.NewDeleteAction(rolesResource, c.ns, name), &rbacv1.Role{}) return err } @@ -112,17 +112,17 @@ func (c *FakeRoles) Delete(name string, options *v1.DeleteOptions) error { func (c *FakeRoles) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { action := testing.NewDeleteCollectionAction(rolesResource, c.ns, listOptions) - _, err := c.Fake.Invokes(action, &rbac_v1.RoleList{}) + _, err := c.Fake.Invokes(action, &rbacv1.RoleList{}) return err } // Patch applies the patch and returns the patched role. -func (c *FakeRoles) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *rbac_v1.Role, err error) { +func (c *FakeRoles) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *rbacv1.Role, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(rolesResource, c.ns, name, data, subresources...), &rbac_v1.Role{}) + Invokes(testing.NewPatchSubresourceAction(rolesResource, c.ns, name, pt, data, subresources...), &rbacv1.Role{}) if obj == nil { return nil, err } - return obj.(*rbac_v1.Role), err + return obj.(*rbacv1.Role), err } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_rolebinding.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_rolebinding.go index 11a75f939..6c344cadf 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_rolebinding.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_rolebinding.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,7 +19,7 @@ limitations under the License. package fake import ( - rbac_v1 "k8s.io/api/rbac/v1" + rbacv1 "k8s.io/api/rbac/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" schema "k8s.io/apimachinery/pkg/runtime/schema" @@ -39,20 +39,20 @@ var rolebindingsResource = schema.GroupVersionResource{Group: "rbac.authorizatio var rolebindingsKind = schema.GroupVersionKind{Group: "rbac.authorization.k8s.io", Version: "v1", Kind: "RoleBinding"} // Get takes name of the roleBinding, and returns the corresponding roleBinding object, and an error if there is any. -func (c *FakeRoleBindings) Get(name string, options v1.GetOptions) (result *rbac_v1.RoleBinding, err error) { +func (c *FakeRoleBindings) Get(name string, options v1.GetOptions) (result *rbacv1.RoleBinding, err error) { obj, err := c.Fake. - Invokes(testing.NewGetAction(rolebindingsResource, c.ns, name), &rbac_v1.RoleBinding{}) + Invokes(testing.NewGetAction(rolebindingsResource, c.ns, name), &rbacv1.RoleBinding{}) if obj == nil { return nil, err } - return obj.(*rbac_v1.RoleBinding), err + return obj.(*rbacv1.RoleBinding), err } // List takes label and field selectors, and returns the list of RoleBindings that match those selectors. -func (c *FakeRoleBindings) List(opts v1.ListOptions) (result *rbac_v1.RoleBindingList, err error) { +func (c *FakeRoleBindings) List(opts v1.ListOptions) (result *rbacv1.RoleBindingList, err error) { obj, err := c.Fake. - Invokes(testing.NewListAction(rolebindingsResource, rolebindingsKind, c.ns, opts), &rbac_v1.RoleBindingList{}) + Invokes(testing.NewListAction(rolebindingsResource, rolebindingsKind, c.ns, opts), &rbacv1.RoleBindingList{}) if obj == nil { return nil, err @@ -62,8 +62,8 @@ func (c *FakeRoleBindings) List(opts v1.ListOptions) (result *rbac_v1.RoleBindin if label == nil { label = labels.Everything() } - list := &rbac_v1.RoleBindingList{} - for _, item := range obj.(*rbac_v1.RoleBindingList).Items { + list := &rbacv1.RoleBindingList{ListMeta: obj.(*rbacv1.RoleBindingList).ListMeta} + for _, item := range obj.(*rbacv1.RoleBindingList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) } @@ -79,31 +79,31 @@ func (c *FakeRoleBindings) Watch(opts v1.ListOptions) (watch.Interface, error) { } // Create takes the representation of a roleBinding and creates it. Returns the server's representation of the roleBinding, and an error, if there is any. -func (c *FakeRoleBindings) Create(roleBinding *rbac_v1.RoleBinding) (result *rbac_v1.RoleBinding, err error) { +func (c *FakeRoleBindings) Create(roleBinding *rbacv1.RoleBinding) (result *rbacv1.RoleBinding, err error) { obj, err := c.Fake. - Invokes(testing.NewCreateAction(rolebindingsResource, c.ns, roleBinding), &rbac_v1.RoleBinding{}) + Invokes(testing.NewCreateAction(rolebindingsResource, c.ns, roleBinding), &rbacv1.RoleBinding{}) if obj == nil { return nil, err } - return obj.(*rbac_v1.RoleBinding), err + return obj.(*rbacv1.RoleBinding), err } // Update takes the representation of a roleBinding and updates it. Returns the server's representation of the roleBinding, and an error, if there is any. -func (c *FakeRoleBindings) Update(roleBinding *rbac_v1.RoleBinding) (result *rbac_v1.RoleBinding, err error) { +func (c *FakeRoleBindings) Update(roleBinding *rbacv1.RoleBinding) (result *rbacv1.RoleBinding, err error) { obj, err := c.Fake. - Invokes(testing.NewUpdateAction(rolebindingsResource, c.ns, roleBinding), &rbac_v1.RoleBinding{}) + Invokes(testing.NewUpdateAction(rolebindingsResource, c.ns, roleBinding), &rbacv1.RoleBinding{}) if obj == nil { return nil, err } - return obj.(*rbac_v1.RoleBinding), err + return obj.(*rbacv1.RoleBinding), err } // Delete takes name of the roleBinding and deletes it. Returns an error if one occurs. func (c *FakeRoleBindings) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. - Invokes(testing.NewDeleteAction(rolebindingsResource, c.ns, name), &rbac_v1.RoleBinding{}) + Invokes(testing.NewDeleteAction(rolebindingsResource, c.ns, name), &rbacv1.RoleBinding{}) return err } @@ -112,17 +112,17 @@ func (c *FakeRoleBindings) Delete(name string, options *v1.DeleteOptions) error func (c *FakeRoleBindings) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { action := testing.NewDeleteCollectionAction(rolebindingsResource, c.ns, listOptions) - _, err := c.Fake.Invokes(action, &rbac_v1.RoleBindingList{}) + _, err := c.Fake.Invokes(action, &rbacv1.RoleBindingList{}) return err } // Patch applies the patch and returns the patched roleBinding. -func (c *FakeRoleBindings) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *rbac_v1.RoleBinding, err error) { +func (c *FakeRoleBindings) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *rbacv1.RoleBinding, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(rolebindingsResource, c.ns, name, data, subresources...), &rbac_v1.RoleBinding{}) + Invokes(testing.NewPatchSubresourceAction(rolebindingsResource, c.ns, name, pt, data, subresources...), &rbacv1.RoleBinding{}) if obj == nil { return nil, err } - return obj.(*rbac_v1.RoleBinding), err + return obj.(*rbacv1.RoleBinding), err } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/generated_expansion.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/generated_expansion.go index 0977cc00c..e3f1b02e3 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/generated_expansion.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/generated_expansion.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/rbac_client.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/rbac_client.go index e5b7b561d..e3855bb9b 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/rbac_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/rbac_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/role.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/role.go index 678e284b7..a17d791ff 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/role.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/role.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,8 +19,10 @@ limitations under the License. package v1 import ( + "time" + v1 "k8s.io/api/rbac/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" scheme "k8s.io/client-go/kubernetes/scheme" @@ -37,11 +39,11 @@ type RolesGetter interface { type RoleInterface interface { Create(*v1.Role) (*v1.Role, error) Update(*v1.Role) (*v1.Role, error) - Delete(name string, options *meta_v1.DeleteOptions) error - DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error - Get(name string, options meta_v1.GetOptions) (*v1.Role, error) - List(opts meta_v1.ListOptions) (*v1.RoleList, error) - Watch(opts meta_v1.ListOptions) (watch.Interface, error) + Delete(name string, options *metav1.DeleteOptions) error + DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error + Get(name string, options metav1.GetOptions) (*v1.Role, error) + List(opts metav1.ListOptions) (*v1.RoleList, error) + Watch(opts metav1.ListOptions) (watch.Interface, error) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.Role, err error) RoleExpansion } @@ -61,7 +63,7 @@ func newRoles(c *RbacV1Client, namespace string) *roles { } // Get takes name of the role, and returns the corresponding role object, and an error if there is any. -func (c *roles) Get(name string, options meta_v1.GetOptions) (result *v1.Role, err error) { +func (c *roles) Get(name string, options metav1.GetOptions) (result *v1.Role, err error) { result = &v1.Role{} err = c.client.Get(). Namespace(c.ns). @@ -74,24 +76,34 @@ func (c *roles) Get(name string, options meta_v1.GetOptions) (result *v1.Role, e } // List takes label and field selectors, and returns the list of Roles that match those selectors. -func (c *roles) List(opts meta_v1.ListOptions) (result *v1.RoleList, err error) { +func (c *roles) List(opts metav1.ListOptions) (result *v1.RoleList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1.RoleList{} err = c.client.Get(). Namespace(c.ns). Resource("roles"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return } // Watch returns a watch.Interface that watches the requested roles. -func (c *roles) Watch(opts meta_v1.ListOptions) (watch.Interface, error) { +func (c *roles) Watch(opts metav1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Namespace(c.ns). Resource("roles"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -121,7 +133,7 @@ func (c *roles) Update(role *v1.Role) (result *v1.Role, err error) { } // Delete takes name of the role and deletes it. Returns an error if one occurs. -func (c *roles) Delete(name string, options *meta_v1.DeleteOptions) error { +func (c *roles) Delete(name string, options *metav1.DeleteOptions) error { return c.client.Delete(). Namespace(c.ns). Resource("roles"). @@ -132,11 +144,16 @@ func (c *roles) Delete(name string, options *meta_v1.DeleteOptions) error { } // DeleteCollection deletes a collection of objects. -func (c *roles) DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error { +func (c *roles) DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Namespace(c.ns). Resource("roles"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/rolebinding.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/rolebinding.go index 7fd9e29fa..c87e45718 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/rolebinding.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/rolebinding.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,8 +19,10 @@ limitations under the License. package v1 import ( + "time" + v1 "k8s.io/api/rbac/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" scheme "k8s.io/client-go/kubernetes/scheme" @@ -37,11 +39,11 @@ type RoleBindingsGetter interface { type RoleBindingInterface interface { Create(*v1.RoleBinding) (*v1.RoleBinding, error) Update(*v1.RoleBinding) (*v1.RoleBinding, error) - Delete(name string, options *meta_v1.DeleteOptions) error - DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error - Get(name string, options meta_v1.GetOptions) (*v1.RoleBinding, error) - List(opts meta_v1.ListOptions) (*v1.RoleBindingList, error) - Watch(opts meta_v1.ListOptions) (watch.Interface, error) + Delete(name string, options *metav1.DeleteOptions) error + DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error + Get(name string, options metav1.GetOptions) (*v1.RoleBinding, error) + List(opts metav1.ListOptions) (*v1.RoleBindingList, error) + Watch(opts metav1.ListOptions) (watch.Interface, error) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.RoleBinding, err error) RoleBindingExpansion } @@ -61,7 +63,7 @@ func newRoleBindings(c *RbacV1Client, namespace string) *roleBindings { } // Get takes name of the roleBinding, and returns the corresponding roleBinding object, and an error if there is any. -func (c *roleBindings) Get(name string, options meta_v1.GetOptions) (result *v1.RoleBinding, err error) { +func (c *roleBindings) Get(name string, options metav1.GetOptions) (result *v1.RoleBinding, err error) { result = &v1.RoleBinding{} err = c.client.Get(). Namespace(c.ns). @@ -74,24 +76,34 @@ func (c *roleBindings) Get(name string, options meta_v1.GetOptions) (result *v1. } // List takes label and field selectors, and returns the list of RoleBindings that match those selectors. -func (c *roleBindings) List(opts meta_v1.ListOptions) (result *v1.RoleBindingList, err error) { +func (c *roleBindings) List(opts metav1.ListOptions) (result *v1.RoleBindingList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1.RoleBindingList{} err = c.client.Get(). Namespace(c.ns). Resource("rolebindings"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return } // Watch returns a watch.Interface that watches the requested roleBindings. -func (c *roleBindings) Watch(opts meta_v1.ListOptions) (watch.Interface, error) { +func (c *roleBindings) Watch(opts metav1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Namespace(c.ns). Resource("rolebindings"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -121,7 +133,7 @@ func (c *roleBindings) Update(roleBinding *v1.RoleBinding) (result *v1.RoleBindi } // Delete takes name of the roleBinding and deletes it. Returns an error if one occurs. -func (c *roleBindings) Delete(name string, options *meta_v1.DeleteOptions) error { +func (c *roleBindings) Delete(name string, options *metav1.DeleteOptions) error { return c.client.Delete(). Namespace(c.ns). Resource("rolebindings"). @@ -132,11 +144,16 @@ func (c *roleBindings) Delete(name string, options *meta_v1.DeleteOptions) error } // DeleteCollection deletes a collection of objects. -func (c *roleBindings) DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error { +func (c *roleBindings) DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Namespace(c.ns). Resource("rolebindings"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/BUILD deleted file mode 100644 index 11065cf6a..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/BUILD +++ /dev/null @@ -1,45 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "clusterrole.go", - "clusterrolebinding.go", - "doc.go", - "generated_expansion.go", - "rbac_client.go", - "role.go", - "rolebinding.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/rbac/v1alpha1", - deps = [ - "//vendor/k8s.io/api/rbac/v1alpha1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/clusterrole.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/clusterrole.go index 901ef7f46..77e66877e 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/clusterrole.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/clusterrole.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,6 +19,8 @@ limitations under the License. package v1alpha1 import ( + "time" + v1alpha1 "k8s.io/api/rbac/v1alpha1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" @@ -72,10 +74,15 @@ func (c *clusterRoles) Get(name string, options v1.GetOptions) (result *v1alpha1 // List takes label and field selectors, and returns the list of ClusterRoles that match those selectors. func (c *clusterRoles) List(opts v1.ListOptions) (result *v1alpha1.ClusterRoleList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1alpha1.ClusterRoleList{} err = c.client.Get(). Resource("clusterroles"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return @@ -83,10 +90,15 @@ func (c *clusterRoles) List(opts v1.ListOptions) (result *v1alpha1.ClusterRoleLi // Watch returns a watch.Interface that watches the requested clusterRoles. func (c *clusterRoles) Watch(opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Resource("clusterroles"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -125,9 +137,14 @@ func (c *clusterRoles) Delete(name string, options *v1.DeleteOptions) error { // DeleteCollection deletes a collection of objects. func (c *clusterRoles) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Resource("clusterroles"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/clusterrolebinding.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/clusterrolebinding.go index c5c5360b9..0d1b9d205 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/clusterrolebinding.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/clusterrolebinding.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,6 +19,8 @@ limitations under the License. package v1alpha1 import ( + "time" + v1alpha1 "k8s.io/api/rbac/v1alpha1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" @@ -72,10 +74,15 @@ func (c *clusterRoleBindings) Get(name string, options v1.GetOptions) (result *v // List takes label and field selectors, and returns the list of ClusterRoleBindings that match those selectors. func (c *clusterRoleBindings) List(opts v1.ListOptions) (result *v1alpha1.ClusterRoleBindingList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1alpha1.ClusterRoleBindingList{} err = c.client.Get(). Resource("clusterrolebindings"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return @@ -83,10 +90,15 @@ func (c *clusterRoleBindings) List(opts v1.ListOptions) (result *v1alpha1.Cluste // Watch returns a watch.Interface that watches the requested clusterRoleBindings. func (c *clusterRoleBindings) Watch(opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Resource("clusterrolebindings"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -125,9 +137,14 @@ func (c *clusterRoleBindings) Delete(name string, options *v1.DeleteOptions) err // DeleteCollection deletes a collection of objects. func (c *clusterRoleBindings) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Resource("clusterrolebindings"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/doc.go index 69ca30111..df51baa4d 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/BUILD deleted file mode 100644 index 461fd09a0..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/BUILD +++ /dev/null @@ -1,43 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "fake_clusterrole.go", - "fake_clusterrolebinding.go", - "fake_rbac_client.go", - "fake_role.go", - "fake_rolebinding.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake", - deps = [ - "//vendor/k8s.io/api/rbac/v1alpha1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/testing:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/doc.go index 87a1873ed..16f443990 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/fake_clusterrole.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/fake_clusterrole.go index 1b3eec014..d2d1b1c74 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/fake_clusterrole.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/fake_clusterrole.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -59,7 +59,7 @@ func (c *FakeClusterRoles) List(opts v1.ListOptions) (result *v1alpha1.ClusterRo if label == nil { label = labels.Everything() } - list := &v1alpha1.ClusterRoleList{} + list := &v1alpha1.ClusterRoleList{ListMeta: obj.(*v1alpha1.ClusterRoleList).ListMeta} for _, item := range obj.(*v1alpha1.ClusterRoleList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) @@ -112,7 +112,7 @@ func (c *FakeClusterRoles) DeleteCollection(options *v1.DeleteOptions, listOptio // Patch applies the patch and returns the patched clusterRole. func (c *FakeClusterRoles) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.ClusterRole, err error) { obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(clusterrolesResource, name, data, subresources...), &v1alpha1.ClusterRole{}) + Invokes(testing.NewRootPatchSubresourceAction(clusterrolesResource, name, pt, data, subresources...), &v1alpha1.ClusterRole{}) if obj == nil { return nil, err } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/fake_clusterrolebinding.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/fake_clusterrolebinding.go index d54eb6f25..3e23e5f65 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/fake_clusterrolebinding.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/fake_clusterrolebinding.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -59,7 +59,7 @@ func (c *FakeClusterRoleBindings) List(opts v1.ListOptions) (result *v1alpha1.Cl if label == nil { label = labels.Everything() } - list := &v1alpha1.ClusterRoleBindingList{} + list := &v1alpha1.ClusterRoleBindingList{ListMeta: obj.(*v1alpha1.ClusterRoleBindingList).ListMeta} for _, item := range obj.(*v1alpha1.ClusterRoleBindingList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) @@ -112,7 +112,7 @@ func (c *FakeClusterRoleBindings) DeleteCollection(options *v1.DeleteOptions, li // Patch applies the patch and returns the patched clusterRoleBinding. func (c *FakeClusterRoleBindings) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.ClusterRoleBinding, err error) { obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(clusterrolebindingsResource, name, data, subresources...), &v1alpha1.ClusterRoleBinding{}) + Invokes(testing.NewRootPatchSubresourceAction(clusterrolebindingsResource, name, pt, data, subresources...), &v1alpha1.ClusterRoleBinding{}) if obj == nil { return nil, err } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/fake_rbac_client.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/fake_rbac_client.go index 12a96c5b6..3447e9be8 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/fake_rbac_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/fake_rbac_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/fake_role.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/fake_role.go index 8c365efcb..7bd52373f 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/fake_role.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/fake_role.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -62,7 +62,7 @@ func (c *FakeRoles) List(opts v1.ListOptions) (result *v1alpha1.RoleList, err er if label == nil { label = labels.Everything() } - list := &v1alpha1.RoleList{} + list := &v1alpha1.RoleList{ListMeta: obj.(*v1alpha1.RoleList).ListMeta} for _, item := range obj.(*v1alpha1.RoleList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) @@ -119,7 +119,7 @@ func (c *FakeRoles) DeleteCollection(options *v1.DeleteOptions, listOptions v1.L // Patch applies the patch and returns the patched role. func (c *FakeRoles) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.Role, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(rolesResource, c.ns, name, data, subresources...), &v1alpha1.Role{}) + Invokes(testing.NewPatchSubresourceAction(rolesResource, c.ns, name, pt, data, subresources...), &v1alpha1.Role{}) if obj == nil { return nil, err diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/fake_rolebinding.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/fake_rolebinding.go index 4346589a8..015050311 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/fake_rolebinding.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/fake_rolebinding.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -62,7 +62,7 @@ func (c *FakeRoleBindings) List(opts v1.ListOptions) (result *v1alpha1.RoleBindi if label == nil { label = labels.Everything() } - list := &v1alpha1.RoleBindingList{} + list := &v1alpha1.RoleBindingList{ListMeta: obj.(*v1alpha1.RoleBindingList).ListMeta} for _, item := range obj.(*v1alpha1.RoleBindingList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) @@ -119,7 +119,7 @@ func (c *FakeRoleBindings) DeleteCollection(options *v1.DeleteOptions, listOptio // Patch applies the patch and returns the patched roleBinding. func (c *FakeRoleBindings) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.RoleBinding, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(rolebindingsResource, c.ns, name, data, subresources...), &v1alpha1.RoleBinding{}) + Invokes(testing.NewPatchSubresourceAction(rolebindingsResource, c.ns, name, pt, data, subresources...), &v1alpha1.RoleBinding{}) if obj == nil { return nil, err diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/generated_expansion.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/generated_expansion.go index aebf50655..b8b5c7869 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/generated_expansion.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/generated_expansion.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/rbac_client.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/rbac_client.go index 06b5f5cab..de83531ed 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/rbac_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/rbac_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/role.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/role.go index 8af1d7784..4a4b67240 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/role.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/role.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,6 +19,8 @@ limitations under the License. package v1alpha1 import ( + "time" + v1alpha1 "k8s.io/api/rbac/v1alpha1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" @@ -75,11 +77,16 @@ func (c *roles) Get(name string, options v1.GetOptions) (result *v1alpha1.Role, // List takes label and field selectors, and returns the list of Roles that match those selectors. func (c *roles) List(opts v1.ListOptions) (result *v1alpha1.RoleList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1alpha1.RoleList{} err = c.client.Get(). Namespace(c.ns). Resource("roles"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return @@ -87,11 +94,16 @@ func (c *roles) List(opts v1.ListOptions) (result *v1alpha1.RoleList, err error) // Watch returns a watch.Interface that watches the requested roles. func (c *roles) Watch(opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Namespace(c.ns). Resource("roles"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -133,10 +145,15 @@ func (c *roles) Delete(name string, options *v1.DeleteOptions) error { // DeleteCollection deletes a collection of objects. func (c *roles) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Namespace(c.ns). Resource("roles"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/rolebinding.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/rolebinding.go index 43888d066..bf4e5a10e 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/rolebinding.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/rolebinding.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,6 +19,8 @@ limitations under the License. package v1alpha1 import ( + "time" + v1alpha1 "k8s.io/api/rbac/v1alpha1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" @@ -75,11 +77,16 @@ func (c *roleBindings) Get(name string, options v1.GetOptions) (result *v1alpha1 // List takes label and field selectors, and returns the list of RoleBindings that match those selectors. func (c *roleBindings) List(opts v1.ListOptions) (result *v1alpha1.RoleBindingList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1alpha1.RoleBindingList{} err = c.client.Get(). Namespace(c.ns). Resource("rolebindings"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return @@ -87,11 +94,16 @@ func (c *roleBindings) List(opts v1.ListOptions) (result *v1alpha1.RoleBindingLi // Watch returns a watch.Interface that watches the requested roleBindings. func (c *roleBindings) Watch(opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Namespace(c.ns). Resource("rolebindings"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -133,10 +145,15 @@ func (c *roleBindings) Delete(name string, options *v1.DeleteOptions) error { // DeleteCollection deletes a collection of objects. func (c *roleBindings) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Namespace(c.ns). Resource("rolebindings"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/BUILD deleted file mode 100644 index e750f1e17..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/BUILD +++ /dev/null @@ -1,45 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "clusterrole.go", - "clusterrolebinding.go", - "doc.go", - "generated_expansion.go", - "rbac_client.go", - "role.go", - "rolebinding.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/rbac/v1beta1", - deps = [ - "//vendor/k8s.io/api/rbac/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/clusterrole.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/clusterrole.go index fd6effd46..21d3cab37 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/clusterrole.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/clusterrole.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,6 +19,8 @@ limitations under the License. package v1beta1 import ( + "time" + v1beta1 "k8s.io/api/rbac/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" @@ -72,10 +74,15 @@ func (c *clusterRoles) Get(name string, options v1.GetOptions) (result *v1beta1. // List takes label and field selectors, and returns the list of ClusterRoles that match those selectors. func (c *clusterRoles) List(opts v1.ListOptions) (result *v1beta1.ClusterRoleList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1beta1.ClusterRoleList{} err = c.client.Get(). Resource("clusterroles"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return @@ -83,10 +90,15 @@ func (c *clusterRoles) List(opts v1.ListOptions) (result *v1beta1.ClusterRoleLis // Watch returns a watch.Interface that watches the requested clusterRoles. func (c *clusterRoles) Watch(opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Resource("clusterroles"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -125,9 +137,14 @@ func (c *clusterRoles) Delete(name string, options *v1.DeleteOptions) error { // DeleteCollection deletes a collection of objects. func (c *clusterRoles) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Resource("clusterroles"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/clusterrolebinding.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/clusterrolebinding.go index 469307000..47eb9e4e7 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/clusterrolebinding.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/clusterrolebinding.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,6 +19,8 @@ limitations under the License. package v1beta1 import ( + "time" + v1beta1 "k8s.io/api/rbac/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" @@ -72,10 +74,15 @@ func (c *clusterRoleBindings) Get(name string, options v1.GetOptions) (result *v // List takes label and field selectors, and returns the list of ClusterRoleBindings that match those selectors. func (c *clusterRoleBindings) List(opts v1.ListOptions) (result *v1beta1.ClusterRoleBindingList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1beta1.ClusterRoleBindingList{} err = c.client.Get(). Resource("clusterrolebindings"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return @@ -83,10 +90,15 @@ func (c *clusterRoleBindings) List(opts v1.ListOptions) (result *v1beta1.Cluster // Watch returns a watch.Interface that watches the requested clusterRoleBindings. func (c *clusterRoleBindings) Watch(opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Resource("clusterrolebindings"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -125,9 +137,14 @@ func (c *clusterRoleBindings) Delete(name string, options *v1.DeleteOptions) err // DeleteCollection deletes a collection of objects. func (c *clusterRoleBindings) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Resource("clusterrolebindings"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/doc.go index 11ae7049d..771101956 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/BUILD deleted file mode 100644 index 0ab08b3e3..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/BUILD +++ /dev/null @@ -1,43 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "fake_clusterrole.go", - "fake_clusterrolebinding.go", - "fake_rbac_client.go", - "fake_role.go", - "fake_rolebinding.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake", - deps = [ - "//vendor/k8s.io/api/rbac/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/testing:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/doc.go index 87a1873ed..16f443990 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/fake_clusterrole.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/fake_clusterrole.go index 738ca1ea9..2dbc3f616 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/fake_clusterrole.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/fake_clusterrole.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -59,7 +59,7 @@ func (c *FakeClusterRoles) List(opts v1.ListOptions) (result *v1beta1.ClusterRol if label == nil { label = labels.Everything() } - list := &v1beta1.ClusterRoleList{} + list := &v1beta1.ClusterRoleList{ListMeta: obj.(*v1beta1.ClusterRoleList).ListMeta} for _, item := range obj.(*v1beta1.ClusterRoleList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) @@ -112,7 +112,7 @@ func (c *FakeClusterRoles) DeleteCollection(options *v1.DeleteOptions, listOptio // Patch applies the patch and returns the patched clusterRole. func (c *FakeClusterRoles) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.ClusterRole, err error) { obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(clusterrolesResource, name, data, subresources...), &v1beta1.ClusterRole{}) + Invokes(testing.NewRootPatchSubresourceAction(clusterrolesResource, name, pt, data, subresources...), &v1beta1.ClusterRole{}) if obj == nil { return nil, err } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/fake_clusterrolebinding.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/fake_clusterrolebinding.go index 144bf70d3..14e20bc28 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/fake_clusterrolebinding.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/fake_clusterrolebinding.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -59,7 +59,7 @@ func (c *FakeClusterRoleBindings) List(opts v1.ListOptions) (result *v1beta1.Clu if label == nil { label = labels.Everything() } - list := &v1beta1.ClusterRoleBindingList{} + list := &v1beta1.ClusterRoleBindingList{ListMeta: obj.(*v1beta1.ClusterRoleBindingList).ListMeta} for _, item := range obj.(*v1beta1.ClusterRoleBindingList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) @@ -112,7 +112,7 @@ func (c *FakeClusterRoleBindings) DeleteCollection(options *v1.DeleteOptions, li // Patch applies the patch and returns the patched clusterRoleBinding. func (c *FakeClusterRoleBindings) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.ClusterRoleBinding, err error) { obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(clusterrolebindingsResource, name, data, subresources...), &v1beta1.ClusterRoleBinding{}) + Invokes(testing.NewRootPatchSubresourceAction(clusterrolebindingsResource, name, pt, data, subresources...), &v1beta1.ClusterRoleBinding{}) if obj == nil { return nil, err } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/fake_rbac_client.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/fake_rbac_client.go index 0856ee084..bdbc246b7 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/fake_rbac_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/fake_rbac_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/fake_role.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/fake_role.go index 2e9d46b51..e31768e4e 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/fake_role.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/fake_role.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -62,7 +62,7 @@ func (c *FakeRoles) List(opts v1.ListOptions) (result *v1beta1.RoleList, err err if label == nil { label = labels.Everything() } - list := &v1beta1.RoleList{} + list := &v1beta1.RoleList{ListMeta: obj.(*v1beta1.RoleList).ListMeta} for _, item := range obj.(*v1beta1.RoleList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) @@ -119,7 +119,7 @@ func (c *FakeRoles) DeleteCollection(options *v1.DeleteOptions, listOptions v1.L // Patch applies the patch and returns the patched role. func (c *FakeRoles) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.Role, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(rolesResource, c.ns, name, data, subresources...), &v1beta1.Role{}) + Invokes(testing.NewPatchSubresourceAction(rolesResource, c.ns, name, pt, data, subresources...), &v1beta1.Role{}) if obj == nil { return nil, err diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/fake_rolebinding.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/fake_rolebinding.go index bb363d874..06b93c93f 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/fake_rolebinding.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/fake_rolebinding.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -62,7 +62,7 @@ func (c *FakeRoleBindings) List(opts v1.ListOptions) (result *v1beta1.RoleBindin if label == nil { label = labels.Everything() } - list := &v1beta1.RoleBindingList{} + list := &v1beta1.RoleBindingList{ListMeta: obj.(*v1beta1.RoleBindingList).ListMeta} for _, item := range obj.(*v1beta1.RoleBindingList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) @@ -119,7 +119,7 @@ func (c *FakeRoleBindings) DeleteCollection(options *v1.DeleteOptions, listOptio // Patch applies the patch and returns the patched roleBinding. func (c *FakeRoleBindings) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.RoleBinding, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(rolebindingsResource, c.ns, name, data, subresources...), &v1beta1.RoleBinding{}) + Invokes(testing.NewPatchSubresourceAction(rolebindingsResource, c.ns, name, pt, data, subresources...), &v1beta1.RoleBinding{}) if obj == nil { return nil, err diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/generated_expansion.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/generated_expansion.go index 538b09833..e7be79f8d 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/generated_expansion.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/generated_expansion.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/rbac_client.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/rbac_client.go index eecdd45a8..46718d731 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/rbac_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/rbac_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/role.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/role.go index 363b2c6cd..2b61aad52 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/role.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/role.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,6 +19,8 @@ limitations under the License. package v1beta1 import ( + "time" + v1beta1 "k8s.io/api/rbac/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" @@ -75,11 +77,16 @@ func (c *roles) Get(name string, options v1.GetOptions) (result *v1beta1.Role, e // List takes label and field selectors, and returns the list of Roles that match those selectors. func (c *roles) List(opts v1.ListOptions) (result *v1beta1.RoleList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1beta1.RoleList{} err = c.client.Get(). Namespace(c.ns). Resource("roles"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return @@ -87,11 +94,16 @@ func (c *roles) List(opts v1.ListOptions) (result *v1beta1.RoleList, err error) // Watch returns a watch.Interface that watches the requested roles. func (c *roles) Watch(opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Namespace(c.ns). Resource("roles"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -133,10 +145,15 @@ func (c *roles) Delete(name string, options *v1.DeleteOptions) error { // DeleteCollection deletes a collection of objects. func (c *roles) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Namespace(c.ns). Resource("roles"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/rolebinding.go b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/rolebinding.go index 8d9f1f617..0bd118fdf 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/rolebinding.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/rolebinding.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,6 +19,8 @@ limitations under the License. package v1beta1 import ( + "time" + v1beta1 "k8s.io/api/rbac/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" @@ -75,11 +77,16 @@ func (c *roleBindings) Get(name string, options v1.GetOptions) (result *v1beta1. // List takes label and field selectors, and returns the list of RoleBindings that match those selectors. func (c *roleBindings) List(opts v1.ListOptions) (result *v1beta1.RoleBindingList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1beta1.RoleBindingList{} err = c.client.Get(). Namespace(c.ns). Resource("rolebindings"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return @@ -87,11 +94,16 @@ func (c *roleBindings) List(opts v1.ListOptions) (result *v1beta1.RoleBindingLis // Watch returns a watch.Interface that watches the requested roleBindings. func (c *roleBindings) Watch(opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Namespace(c.ns). Resource("rolebindings"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -133,10 +145,15 @@ func (c *roleBindings) Delete(name string, options *v1.DeleteOptions) error { // DeleteCollection deletes a collection of objects. func (c *roleBindings) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Namespace(c.ns). Resource("rolebindings"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/BUILD deleted file mode 100644 index db9b36f32..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/BUILD +++ /dev/null @@ -1,42 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "generated_expansion.go", - "priorityclass.go", - "scheduling_client.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1", - deps = [ - "//vendor/k8s.io/api/scheduling/v1alpha1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/fake:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/doc.go index 69ca30111..df51baa4d 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/fake/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/fake/BUILD deleted file mode 100644 index f5c9c6436..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/fake/BUILD +++ /dev/null @@ -1,40 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "fake_priorityclass.go", - "fake_scheduling_client.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/fake", - deps = [ - "//vendor/k8s.io/api/scheduling/v1alpha1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/testing:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/fake/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/fake/doc.go index 87a1873ed..16f443990 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/fake/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/fake/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/fake/fake_priorityclass.go b/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/fake/fake_priorityclass.go index 9946411e2..e592ed137 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/fake/fake_priorityclass.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/fake/fake_priorityclass.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -59,7 +59,7 @@ func (c *FakePriorityClasses) List(opts v1.ListOptions) (result *v1alpha1.Priori if label == nil { label = labels.Everything() } - list := &v1alpha1.PriorityClassList{} + list := &v1alpha1.PriorityClassList{ListMeta: obj.(*v1alpha1.PriorityClassList).ListMeta} for _, item := range obj.(*v1alpha1.PriorityClassList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) @@ -112,7 +112,7 @@ func (c *FakePriorityClasses) DeleteCollection(options *v1.DeleteOptions, listOp // Patch applies the patch and returns the patched priorityClass. func (c *FakePriorityClasses) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.PriorityClass, err error) { obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(priorityclassesResource, name, data, subresources...), &v1alpha1.PriorityClass{}) + Invokes(testing.NewRootPatchSubresourceAction(priorityclassesResource, name, pt, data, subresources...), &v1alpha1.PriorityClass{}) if obj == nil { return nil, err } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/fake/fake_scheduling_client.go b/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/fake/fake_scheduling_client.go index 6e0a9659e..974ba193f 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/fake/fake_scheduling_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/fake/fake_scheduling_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/generated_expansion.go b/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/generated_expansion.go index 682f0f3bf..52f81d881 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/generated_expansion.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/generated_expansion.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/priorityclass.go b/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/priorityclass.go index 055a0e3f3..29d646fb1 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/priorityclass.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/priorityclass.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,6 +19,8 @@ limitations under the License. package v1alpha1 import ( + "time" + v1alpha1 "k8s.io/api/scheduling/v1alpha1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" @@ -72,10 +74,15 @@ func (c *priorityClasses) Get(name string, options v1.GetOptions) (result *v1alp // List takes label and field selectors, and returns the list of PriorityClasses that match those selectors. func (c *priorityClasses) List(opts v1.ListOptions) (result *v1alpha1.PriorityClassList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1alpha1.PriorityClassList{} err = c.client.Get(). Resource("priorityclasses"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return @@ -83,10 +90,15 @@ func (c *priorityClasses) List(opts v1.ListOptions) (result *v1alpha1.PriorityCl // Watch returns a watch.Interface that watches the requested priorityClasses. func (c *priorityClasses) Watch(opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Resource("priorityclasses"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -125,9 +137,14 @@ func (c *priorityClasses) Delete(name string, options *v1.DeleteOptions) error { // DeleteCollection deletes a collection of objects. func (c *priorityClasses) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Resource("priorityclasses"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/scheduling_client.go b/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/scheduling_client.go index f030b319e..375f41b8d 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/scheduling_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/scheduling_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1beta1/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1beta1/doc.go new file mode 100644 index 000000000..771101956 --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1beta1/doc.go @@ -0,0 +1,20 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +// This package has the automatically generated typed clients. +package v1beta1 diff --git a/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1beta1/fake/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1beta1/fake/doc.go new file mode 100644 index 000000000..16f443990 --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1beta1/fake/doc.go @@ -0,0 +1,20 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +// Package fake has the automatically generated clients. +package fake diff --git a/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1beta1/fake/fake_priorityclass.go b/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1beta1/fake/fake_priorityclass.go new file mode 100644 index 000000000..44ce64b5c --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1beta1/fake/fake_priorityclass.go @@ -0,0 +1,120 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package fake + +import ( + v1beta1 "k8s.io/api/scheduling/v1beta1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + labels "k8s.io/apimachinery/pkg/labels" + schema "k8s.io/apimachinery/pkg/runtime/schema" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + testing "k8s.io/client-go/testing" +) + +// FakePriorityClasses implements PriorityClassInterface +type FakePriorityClasses struct { + Fake *FakeSchedulingV1beta1 +} + +var priorityclassesResource = schema.GroupVersionResource{Group: "scheduling.k8s.io", Version: "v1beta1", Resource: "priorityclasses"} + +var priorityclassesKind = schema.GroupVersionKind{Group: "scheduling.k8s.io", Version: "v1beta1", Kind: "PriorityClass"} + +// Get takes name of the priorityClass, and returns the corresponding priorityClass object, and an error if there is any. +func (c *FakePriorityClasses) Get(name string, options v1.GetOptions) (result *v1beta1.PriorityClass, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootGetAction(priorityclassesResource, name), &v1beta1.PriorityClass{}) + if obj == nil { + return nil, err + } + return obj.(*v1beta1.PriorityClass), err +} + +// List takes label and field selectors, and returns the list of PriorityClasses that match those selectors. +func (c *FakePriorityClasses) List(opts v1.ListOptions) (result *v1beta1.PriorityClassList, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootListAction(priorityclassesResource, priorityclassesKind, opts), &v1beta1.PriorityClassList{}) + if obj == nil { + return nil, err + } + + label, _, _ := testing.ExtractFromListOptions(opts) + if label == nil { + label = labels.Everything() + } + list := &v1beta1.PriorityClassList{ListMeta: obj.(*v1beta1.PriorityClassList).ListMeta} + for _, item := range obj.(*v1beta1.PriorityClassList).Items { + if label.Matches(labels.Set(item.Labels)) { + list.Items = append(list.Items, item) + } + } + return list, err +} + +// Watch returns a watch.Interface that watches the requested priorityClasses. +func (c *FakePriorityClasses) Watch(opts v1.ListOptions) (watch.Interface, error) { + return c.Fake. + InvokesWatch(testing.NewRootWatchAction(priorityclassesResource, opts)) +} + +// Create takes the representation of a priorityClass and creates it. Returns the server's representation of the priorityClass, and an error, if there is any. +func (c *FakePriorityClasses) Create(priorityClass *v1beta1.PriorityClass) (result *v1beta1.PriorityClass, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootCreateAction(priorityclassesResource, priorityClass), &v1beta1.PriorityClass{}) + if obj == nil { + return nil, err + } + return obj.(*v1beta1.PriorityClass), err +} + +// Update takes the representation of a priorityClass and updates it. Returns the server's representation of the priorityClass, and an error, if there is any. +func (c *FakePriorityClasses) Update(priorityClass *v1beta1.PriorityClass) (result *v1beta1.PriorityClass, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootUpdateAction(priorityclassesResource, priorityClass), &v1beta1.PriorityClass{}) + if obj == nil { + return nil, err + } + return obj.(*v1beta1.PriorityClass), err +} + +// Delete takes name of the priorityClass and deletes it. Returns an error if one occurs. +func (c *FakePriorityClasses) Delete(name string, options *v1.DeleteOptions) error { + _, err := c.Fake. + Invokes(testing.NewRootDeleteAction(priorityclassesResource, name), &v1beta1.PriorityClass{}) + return err +} + +// DeleteCollection deletes a collection of objects. +func (c *FakePriorityClasses) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + action := testing.NewRootDeleteCollectionAction(priorityclassesResource, listOptions) + + _, err := c.Fake.Invokes(action, &v1beta1.PriorityClassList{}) + return err +} + +// Patch applies the patch and returns the patched priorityClass. +func (c *FakePriorityClasses) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.PriorityClass, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(priorityclassesResource, name, pt, data, subresources...), &v1beta1.PriorityClass{}) + if obj == nil { + return nil, err + } + return obj.(*v1beta1.PriorityClass), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1beta1/fake/fake_scheduling_client.go b/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1beta1/fake/fake_scheduling_client.go new file mode 100644 index 000000000..4a6878a45 --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1beta1/fake/fake_scheduling_client.go @@ -0,0 +1,40 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package fake + +import ( + v1beta1 "k8s.io/client-go/kubernetes/typed/scheduling/v1beta1" + rest "k8s.io/client-go/rest" + testing "k8s.io/client-go/testing" +) + +type FakeSchedulingV1beta1 struct { + *testing.Fake +} + +func (c *FakeSchedulingV1beta1) PriorityClasses() v1beta1.PriorityClassInterface { + return &FakePriorityClasses{c} +} + +// RESTClient returns a RESTClient that is used to communicate +// with API server by this client implementation. +func (c *FakeSchedulingV1beta1) RESTClient() rest.Interface { + var ret *rest.RESTClient + return ret +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1beta1/generated_expansion.go b/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1beta1/generated_expansion.go new file mode 100644 index 000000000..3bab873e6 --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1beta1/generated_expansion.go @@ -0,0 +1,21 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package v1beta1 + +type PriorityClassExpansion interface{} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1beta1/priorityclass.go b/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1beta1/priorityclass.go new file mode 100644 index 000000000..5e402f8e3 --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1beta1/priorityclass.go @@ -0,0 +1,164 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package v1beta1 + +import ( + "time" + + v1beta1 "k8s.io/api/scheduling/v1beta1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + scheme "k8s.io/client-go/kubernetes/scheme" + rest "k8s.io/client-go/rest" +) + +// PriorityClassesGetter has a method to return a PriorityClassInterface. +// A group's client should implement this interface. +type PriorityClassesGetter interface { + PriorityClasses() PriorityClassInterface +} + +// PriorityClassInterface has methods to work with PriorityClass resources. +type PriorityClassInterface interface { + Create(*v1beta1.PriorityClass) (*v1beta1.PriorityClass, error) + Update(*v1beta1.PriorityClass) (*v1beta1.PriorityClass, error) + Delete(name string, options *v1.DeleteOptions) error + DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error + Get(name string, options v1.GetOptions) (*v1beta1.PriorityClass, error) + List(opts v1.ListOptions) (*v1beta1.PriorityClassList, error) + Watch(opts v1.ListOptions) (watch.Interface, error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.PriorityClass, err error) + PriorityClassExpansion +} + +// priorityClasses implements PriorityClassInterface +type priorityClasses struct { + client rest.Interface +} + +// newPriorityClasses returns a PriorityClasses +func newPriorityClasses(c *SchedulingV1beta1Client) *priorityClasses { + return &priorityClasses{ + client: c.RESTClient(), + } +} + +// Get takes name of the priorityClass, and returns the corresponding priorityClass object, and an error if there is any. +func (c *priorityClasses) Get(name string, options v1.GetOptions) (result *v1beta1.PriorityClass, err error) { + result = &v1beta1.PriorityClass{} + err = c.client.Get(). + Resource("priorityclasses"). + Name(name). + VersionedParams(&options, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// List takes label and field selectors, and returns the list of PriorityClasses that match those selectors. +func (c *priorityClasses) List(opts v1.ListOptions) (result *v1beta1.PriorityClassList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } + result = &v1beta1.PriorityClassList{} + err = c.client.Get(). + Resource("priorityclasses"). + VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). + Do(). + Into(result) + return +} + +// Watch returns a watch.Interface that watches the requested priorityClasses. +func (c *priorityClasses) Watch(opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } + opts.Watch = true + return c.client.Get(). + Resource("priorityclasses"). + VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). + Watch() +} + +// Create takes the representation of a priorityClass and creates it. Returns the server's representation of the priorityClass, and an error, if there is any. +func (c *priorityClasses) Create(priorityClass *v1beta1.PriorityClass) (result *v1beta1.PriorityClass, err error) { + result = &v1beta1.PriorityClass{} + err = c.client.Post(). + Resource("priorityclasses"). + Body(priorityClass). + Do(). + Into(result) + return +} + +// Update takes the representation of a priorityClass and updates it. Returns the server's representation of the priorityClass, and an error, if there is any. +func (c *priorityClasses) Update(priorityClass *v1beta1.PriorityClass) (result *v1beta1.PriorityClass, err error) { + result = &v1beta1.PriorityClass{} + err = c.client.Put(). + Resource("priorityclasses"). + Name(priorityClass.Name). + Body(priorityClass). + Do(). + Into(result) + return +} + +// Delete takes name of the priorityClass and deletes it. Returns an error if one occurs. +func (c *priorityClasses) Delete(name string, options *v1.DeleteOptions) error { + return c.client.Delete(). + Resource("priorityclasses"). + Name(name). + Body(options). + Do(). + Error() +} + +// DeleteCollection deletes a collection of objects. +func (c *priorityClasses) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } + return c.client.Delete(). + Resource("priorityclasses"). + VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). + Body(options). + Do(). + Error() +} + +// Patch applies the patch and returns the patched priorityClass. +func (c *priorityClasses) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.PriorityClass, err error) { + result = &v1beta1.PriorityClass{} + err = c.client.Patch(pt). + Resource("priorityclasses"). + SubResource(subresources...). + Name(name). + Body(data). + Do(). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1beta1/scheduling_client.go b/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1beta1/scheduling_client.go new file mode 100644 index 000000000..6feec4aec --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1beta1/scheduling_client.go @@ -0,0 +1,90 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1beta1 "k8s.io/api/scheduling/v1beta1" + serializer "k8s.io/apimachinery/pkg/runtime/serializer" + "k8s.io/client-go/kubernetes/scheme" + rest "k8s.io/client-go/rest" +) + +type SchedulingV1beta1Interface interface { + RESTClient() rest.Interface + PriorityClassesGetter +} + +// SchedulingV1beta1Client is used to interact with features provided by the scheduling.k8s.io group. +type SchedulingV1beta1Client struct { + restClient rest.Interface +} + +func (c *SchedulingV1beta1Client) PriorityClasses() PriorityClassInterface { + return newPriorityClasses(c) +} + +// NewForConfig creates a new SchedulingV1beta1Client for the given config. +func NewForConfig(c *rest.Config) (*SchedulingV1beta1Client, error) { + config := *c + if err := setConfigDefaults(&config); err != nil { + return nil, err + } + client, err := rest.RESTClientFor(&config) + if err != nil { + return nil, err + } + return &SchedulingV1beta1Client{client}, nil +} + +// NewForConfigOrDie creates a new SchedulingV1beta1Client for the given config and +// panics if there is an error in the config. +func NewForConfigOrDie(c *rest.Config) *SchedulingV1beta1Client { + client, err := NewForConfig(c) + if err != nil { + panic(err) + } + return client +} + +// New creates a new SchedulingV1beta1Client for the given RESTClient. +func New(c rest.Interface) *SchedulingV1beta1Client { + return &SchedulingV1beta1Client{c} +} + +func setConfigDefaults(config *rest.Config) error { + gv := v1beta1.SchemeGroupVersion + config.GroupVersion = &gv + config.APIPath = "/apis" + config.NegotiatedSerializer = serializer.DirectCodecFactory{CodecFactory: scheme.Codecs} + + if config.UserAgent == "" { + config.UserAgent = rest.DefaultKubernetesUserAgent() + } + + return nil +} + +// RESTClient returns a RESTClient that is used to communicate +// with API server by this client implementation. +func (c *SchedulingV1beta1Client) RESTClient() rest.Interface { + if c == nil { + return nil + } + return c.restClient +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/BUILD deleted file mode 100644 index a1abc87e3..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/BUILD +++ /dev/null @@ -1,42 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "generated_expansion.go", - "podpreset.go", - "settings_client.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/settings/v1alpha1", - deps = [ - "//vendor/k8s.io/api/settings/v1alpha1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/fake:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/doc.go index 69ca30111..df51baa4d 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/fake/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/fake/BUILD deleted file mode 100644 index f8823f465..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/fake/BUILD +++ /dev/null @@ -1,40 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "fake_podpreset.go", - "fake_settings_client.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/settings/v1alpha1/fake", - deps = [ - "//vendor/k8s.io/api/settings/v1alpha1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/settings/v1alpha1:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/testing:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/fake/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/fake/doc.go index 87a1873ed..16f443990 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/fake/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/fake/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/fake/fake_podpreset.go b/vendor/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/fake/fake_podpreset.go index 512b38f54..273a027fa 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/fake/fake_podpreset.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/fake/fake_podpreset.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -62,7 +62,7 @@ func (c *FakePodPresets) List(opts v1.ListOptions) (result *v1alpha1.PodPresetLi if label == nil { label = labels.Everything() } - list := &v1alpha1.PodPresetList{} + list := &v1alpha1.PodPresetList{ListMeta: obj.(*v1alpha1.PodPresetList).ListMeta} for _, item := range obj.(*v1alpha1.PodPresetList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) @@ -119,7 +119,7 @@ func (c *FakePodPresets) DeleteCollection(options *v1.DeleteOptions, listOptions // Patch applies the patch and returns the patched podPreset. func (c *FakePodPresets) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.PodPreset, err error) { obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(podpresetsResource, c.ns, name, data, subresources...), &v1alpha1.PodPreset{}) + Invokes(testing.NewPatchSubresourceAction(podpresetsResource, c.ns, name, pt, data, subresources...), &v1alpha1.PodPreset{}) if obj == nil { return nil, err diff --git a/vendor/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/fake/fake_settings_client.go b/vendor/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/fake/fake_settings_client.go index fb07a8248..a142edfed 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/fake/fake_settings_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/fake/fake_settings_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/generated_expansion.go b/vendor/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/generated_expansion.go index f0dbcc607..23d9f94d5 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/generated_expansion.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/generated_expansion.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/podpreset.go b/vendor/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/podpreset.go index 25ed8f543..8fd6adc56 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/podpreset.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/podpreset.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,6 +19,8 @@ limitations under the License. package v1alpha1 import ( + "time" + v1alpha1 "k8s.io/api/settings/v1alpha1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" @@ -75,11 +77,16 @@ func (c *podPresets) Get(name string, options v1.GetOptions) (result *v1alpha1.P // List takes label and field selectors, and returns the list of PodPresets that match those selectors. func (c *podPresets) List(opts v1.ListOptions) (result *v1alpha1.PodPresetList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1alpha1.PodPresetList{} err = c.client.Get(). Namespace(c.ns). Resource("podpresets"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return @@ -87,11 +94,16 @@ func (c *podPresets) List(opts v1.ListOptions) (result *v1alpha1.PodPresetList, // Watch returns a watch.Interface that watches the requested podPresets. func (c *podPresets) Watch(opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Namespace(c.ns). Resource("podpresets"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -133,10 +145,15 @@ func (c *podPresets) Delete(name string, options *v1.DeleteOptions) error { // DeleteCollection deletes a collection of objects. func (c *podPresets) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Namespace(c.ns). Resource("podpresets"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/settings_client.go b/vendor/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/settings_client.go index 77fa64040..c2a03b960 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/settings_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/settings_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/BUILD deleted file mode 100644 index 0c5507141..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/BUILD +++ /dev/null @@ -1,42 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "generated_expansion.go", - "storage_client.go", - "storageclass.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/storage/v1", - deps = [ - "//vendor/k8s.io/api/storage/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/storage/v1/fake:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/doc.go index d007a2903..3af5d054f 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/fake/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/fake/BUILD deleted file mode 100644 index be83e85f8..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/fake/BUILD +++ /dev/null @@ -1,40 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "fake_storage_client.go", - "fake_storageclass.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/storage/v1/fake", - deps = [ - "//vendor/k8s.io/api/storage/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/storage/v1:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/testing:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/fake/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/fake/doc.go index 87a1873ed..16f443990 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/fake/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/fake/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/fake/fake_storage_client.go b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/fake/fake_storage_client.go index 9ba1f5104..967a52850 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/fake/fake_storage_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/fake/fake_storage_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -32,6 +32,10 @@ func (c *FakeStorageV1) StorageClasses() v1.StorageClassInterface { return &FakeStorageClasses{c} } +func (c *FakeStorageV1) VolumeAttachments() v1.VolumeAttachmentInterface { + return &FakeVolumeAttachments{c} +} + // RESTClient returns a RESTClient that is used to communicate // with API server by this client implementation. func (c *FakeStorageV1) RESTClient() rest.Interface { diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/fake/fake_storageclass.go b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/fake/fake_storageclass.go index 147ad8028..c7531d879 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/fake/fake_storageclass.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/fake/fake_storageclass.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,7 +19,7 @@ limitations under the License. package fake import ( - storage_v1 "k8s.io/api/storage/v1" + storagev1 "k8s.io/api/storage/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" schema "k8s.io/apimachinery/pkg/runtime/schema" @@ -38,19 +38,19 @@ var storageclassesResource = schema.GroupVersionResource{Group: "storage.k8s.io" var storageclassesKind = schema.GroupVersionKind{Group: "storage.k8s.io", Version: "v1", Kind: "StorageClass"} // Get takes name of the storageClass, and returns the corresponding storageClass object, and an error if there is any. -func (c *FakeStorageClasses) Get(name string, options v1.GetOptions) (result *storage_v1.StorageClass, err error) { +func (c *FakeStorageClasses) Get(name string, options v1.GetOptions) (result *storagev1.StorageClass, err error) { obj, err := c.Fake. - Invokes(testing.NewRootGetAction(storageclassesResource, name), &storage_v1.StorageClass{}) + Invokes(testing.NewRootGetAction(storageclassesResource, name), &storagev1.StorageClass{}) if obj == nil { return nil, err } - return obj.(*storage_v1.StorageClass), err + return obj.(*storagev1.StorageClass), err } // List takes label and field selectors, and returns the list of StorageClasses that match those selectors. -func (c *FakeStorageClasses) List(opts v1.ListOptions) (result *storage_v1.StorageClassList, err error) { +func (c *FakeStorageClasses) List(opts v1.ListOptions) (result *storagev1.StorageClassList, err error) { obj, err := c.Fake. - Invokes(testing.NewRootListAction(storageclassesResource, storageclassesKind, opts), &storage_v1.StorageClassList{}) + Invokes(testing.NewRootListAction(storageclassesResource, storageclassesKind, opts), &storagev1.StorageClassList{}) if obj == nil { return nil, err } @@ -59,8 +59,8 @@ func (c *FakeStorageClasses) List(opts v1.ListOptions) (result *storage_v1.Stora if label == nil { label = labels.Everything() } - list := &storage_v1.StorageClassList{} - for _, item := range obj.(*storage_v1.StorageClassList).Items { + list := &storagev1.StorageClassList{ListMeta: obj.(*storagev1.StorageClassList).ListMeta} + for _, item := range obj.(*storagev1.StorageClassList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) } @@ -75,29 +75,29 @@ func (c *FakeStorageClasses) Watch(opts v1.ListOptions) (watch.Interface, error) } // Create takes the representation of a storageClass and creates it. Returns the server's representation of the storageClass, and an error, if there is any. -func (c *FakeStorageClasses) Create(storageClass *storage_v1.StorageClass) (result *storage_v1.StorageClass, err error) { +func (c *FakeStorageClasses) Create(storageClass *storagev1.StorageClass) (result *storagev1.StorageClass, err error) { obj, err := c.Fake. - Invokes(testing.NewRootCreateAction(storageclassesResource, storageClass), &storage_v1.StorageClass{}) + Invokes(testing.NewRootCreateAction(storageclassesResource, storageClass), &storagev1.StorageClass{}) if obj == nil { return nil, err } - return obj.(*storage_v1.StorageClass), err + return obj.(*storagev1.StorageClass), err } // Update takes the representation of a storageClass and updates it. Returns the server's representation of the storageClass, and an error, if there is any. -func (c *FakeStorageClasses) Update(storageClass *storage_v1.StorageClass) (result *storage_v1.StorageClass, err error) { +func (c *FakeStorageClasses) Update(storageClass *storagev1.StorageClass) (result *storagev1.StorageClass, err error) { obj, err := c.Fake. - Invokes(testing.NewRootUpdateAction(storageclassesResource, storageClass), &storage_v1.StorageClass{}) + Invokes(testing.NewRootUpdateAction(storageclassesResource, storageClass), &storagev1.StorageClass{}) if obj == nil { return nil, err } - return obj.(*storage_v1.StorageClass), err + return obj.(*storagev1.StorageClass), err } // Delete takes name of the storageClass and deletes it. Returns an error if one occurs. func (c *FakeStorageClasses) Delete(name string, options *v1.DeleteOptions) error { _, err := c.Fake. - Invokes(testing.NewRootDeleteAction(storageclassesResource, name), &storage_v1.StorageClass{}) + Invokes(testing.NewRootDeleteAction(storageclassesResource, name), &storagev1.StorageClass{}) return err } @@ -105,16 +105,16 @@ func (c *FakeStorageClasses) Delete(name string, options *v1.DeleteOptions) erro func (c *FakeStorageClasses) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { action := testing.NewRootDeleteCollectionAction(storageclassesResource, listOptions) - _, err := c.Fake.Invokes(action, &storage_v1.StorageClassList{}) + _, err := c.Fake.Invokes(action, &storagev1.StorageClassList{}) return err } // Patch applies the patch and returns the patched storageClass. -func (c *FakeStorageClasses) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *storage_v1.StorageClass, err error) { +func (c *FakeStorageClasses) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *storagev1.StorageClass, err error) { obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(storageclassesResource, name, data, subresources...), &storage_v1.StorageClass{}) + Invokes(testing.NewRootPatchSubresourceAction(storageclassesResource, name, pt, data, subresources...), &storagev1.StorageClass{}) if obj == nil { return nil, err } - return obj.(*storage_v1.StorageClass), err + return obj.(*storagev1.StorageClass), err } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/fake/fake_volumeattachment.go b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/fake/fake_volumeattachment.go new file mode 100644 index 000000000..58e09da46 --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/fake/fake_volumeattachment.go @@ -0,0 +1,131 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package fake + +import ( + storagev1 "k8s.io/api/storage/v1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + labels "k8s.io/apimachinery/pkg/labels" + schema "k8s.io/apimachinery/pkg/runtime/schema" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + testing "k8s.io/client-go/testing" +) + +// FakeVolumeAttachments implements VolumeAttachmentInterface +type FakeVolumeAttachments struct { + Fake *FakeStorageV1 +} + +var volumeattachmentsResource = schema.GroupVersionResource{Group: "storage.k8s.io", Version: "v1", Resource: "volumeattachments"} + +var volumeattachmentsKind = schema.GroupVersionKind{Group: "storage.k8s.io", Version: "v1", Kind: "VolumeAttachment"} + +// Get takes name of the volumeAttachment, and returns the corresponding volumeAttachment object, and an error if there is any. +func (c *FakeVolumeAttachments) Get(name string, options v1.GetOptions) (result *storagev1.VolumeAttachment, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootGetAction(volumeattachmentsResource, name), &storagev1.VolumeAttachment{}) + if obj == nil { + return nil, err + } + return obj.(*storagev1.VolumeAttachment), err +} + +// List takes label and field selectors, and returns the list of VolumeAttachments that match those selectors. +func (c *FakeVolumeAttachments) List(opts v1.ListOptions) (result *storagev1.VolumeAttachmentList, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootListAction(volumeattachmentsResource, volumeattachmentsKind, opts), &storagev1.VolumeAttachmentList{}) + if obj == nil { + return nil, err + } + + label, _, _ := testing.ExtractFromListOptions(opts) + if label == nil { + label = labels.Everything() + } + list := &storagev1.VolumeAttachmentList{ListMeta: obj.(*storagev1.VolumeAttachmentList).ListMeta} + for _, item := range obj.(*storagev1.VolumeAttachmentList).Items { + if label.Matches(labels.Set(item.Labels)) { + list.Items = append(list.Items, item) + } + } + return list, err +} + +// Watch returns a watch.Interface that watches the requested volumeAttachments. +func (c *FakeVolumeAttachments) Watch(opts v1.ListOptions) (watch.Interface, error) { + return c.Fake. + InvokesWatch(testing.NewRootWatchAction(volumeattachmentsResource, opts)) +} + +// Create takes the representation of a volumeAttachment and creates it. Returns the server's representation of the volumeAttachment, and an error, if there is any. +func (c *FakeVolumeAttachments) Create(volumeAttachment *storagev1.VolumeAttachment) (result *storagev1.VolumeAttachment, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootCreateAction(volumeattachmentsResource, volumeAttachment), &storagev1.VolumeAttachment{}) + if obj == nil { + return nil, err + } + return obj.(*storagev1.VolumeAttachment), err +} + +// Update takes the representation of a volumeAttachment and updates it. Returns the server's representation of the volumeAttachment, and an error, if there is any. +func (c *FakeVolumeAttachments) Update(volumeAttachment *storagev1.VolumeAttachment) (result *storagev1.VolumeAttachment, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootUpdateAction(volumeattachmentsResource, volumeAttachment), &storagev1.VolumeAttachment{}) + if obj == nil { + return nil, err + } + return obj.(*storagev1.VolumeAttachment), err +} + +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). +func (c *FakeVolumeAttachments) UpdateStatus(volumeAttachment *storagev1.VolumeAttachment) (*storagev1.VolumeAttachment, error) { + obj, err := c.Fake. + Invokes(testing.NewRootUpdateSubresourceAction(volumeattachmentsResource, "status", volumeAttachment), &storagev1.VolumeAttachment{}) + if obj == nil { + return nil, err + } + return obj.(*storagev1.VolumeAttachment), err +} + +// Delete takes name of the volumeAttachment and deletes it. Returns an error if one occurs. +func (c *FakeVolumeAttachments) Delete(name string, options *v1.DeleteOptions) error { + _, err := c.Fake. + Invokes(testing.NewRootDeleteAction(volumeattachmentsResource, name), &storagev1.VolumeAttachment{}) + return err +} + +// DeleteCollection deletes a collection of objects. +func (c *FakeVolumeAttachments) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + action := testing.NewRootDeleteCollectionAction(volumeattachmentsResource, listOptions) + + _, err := c.Fake.Invokes(action, &storagev1.VolumeAttachmentList{}) + return err +} + +// Patch applies the patch and returns the patched volumeAttachment. +func (c *FakeVolumeAttachments) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *storagev1.VolumeAttachment, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(volumeattachmentsResource, name, pt, data, subresources...), &storagev1.VolumeAttachment{}) + if obj == nil { + return nil, err + } + return obj.(*storagev1.VolumeAttachment), err +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/generated_expansion.go b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/generated_expansion.go index 08fedd7ed..ccac16114 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/generated_expansion.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/generated_expansion.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,3 +19,5 @@ limitations under the License. package v1 type StorageClassExpansion interface{} + +type VolumeAttachmentExpansion interface{} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/storage_client.go b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/storage_client.go index 36a189c46..92378cf7f 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/storage_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/storage_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -28,6 +28,7 @@ import ( type StorageV1Interface interface { RESTClient() rest.Interface StorageClassesGetter + VolumeAttachmentsGetter } // StorageV1Client is used to interact with features provided by the storage.k8s.io group. @@ -39,6 +40,10 @@ func (c *StorageV1Client) StorageClasses() StorageClassInterface { return newStorageClasses(c) } +func (c *StorageV1Client) VolumeAttachments() VolumeAttachmentInterface { + return newVolumeAttachments(c) +} + // NewForConfig creates a new StorageV1Client for the given config. func NewForConfig(c *rest.Config) (*StorageV1Client, error) { config := *c diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/storageclass.go b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/storageclass.go index 24133cd62..3f4c48f0a 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/storageclass.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/storageclass.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,8 +19,10 @@ limitations under the License. package v1 import ( + "time" + v1 "k8s.io/api/storage/v1" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" scheme "k8s.io/client-go/kubernetes/scheme" @@ -37,11 +39,11 @@ type StorageClassesGetter interface { type StorageClassInterface interface { Create(*v1.StorageClass) (*v1.StorageClass, error) Update(*v1.StorageClass) (*v1.StorageClass, error) - Delete(name string, options *meta_v1.DeleteOptions) error - DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error - Get(name string, options meta_v1.GetOptions) (*v1.StorageClass, error) - List(opts meta_v1.ListOptions) (*v1.StorageClassList, error) - Watch(opts meta_v1.ListOptions) (watch.Interface, error) + Delete(name string, options *metav1.DeleteOptions) error + DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error + Get(name string, options metav1.GetOptions) (*v1.StorageClass, error) + List(opts metav1.ListOptions) (*v1.StorageClassList, error) + Watch(opts metav1.ListOptions) (watch.Interface, error) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.StorageClass, err error) StorageClassExpansion } @@ -59,7 +61,7 @@ func newStorageClasses(c *StorageV1Client) *storageClasses { } // Get takes name of the storageClass, and returns the corresponding storageClass object, and an error if there is any. -func (c *storageClasses) Get(name string, options meta_v1.GetOptions) (result *v1.StorageClass, err error) { +func (c *storageClasses) Get(name string, options metav1.GetOptions) (result *v1.StorageClass, err error) { result = &v1.StorageClass{} err = c.client.Get(). Resource("storageclasses"). @@ -71,22 +73,32 @@ func (c *storageClasses) Get(name string, options meta_v1.GetOptions) (result *v } // List takes label and field selectors, and returns the list of StorageClasses that match those selectors. -func (c *storageClasses) List(opts meta_v1.ListOptions) (result *v1.StorageClassList, err error) { +func (c *storageClasses) List(opts metav1.ListOptions) (result *v1.StorageClassList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1.StorageClassList{} err = c.client.Get(). Resource("storageclasses"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return } // Watch returns a watch.Interface that watches the requested storageClasses. -func (c *storageClasses) Watch(opts meta_v1.ListOptions) (watch.Interface, error) { +func (c *storageClasses) Watch(opts metav1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Resource("storageclasses"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -114,7 +126,7 @@ func (c *storageClasses) Update(storageClass *v1.StorageClass) (result *v1.Stora } // Delete takes name of the storageClass and deletes it. Returns an error if one occurs. -func (c *storageClasses) Delete(name string, options *meta_v1.DeleteOptions) error { +func (c *storageClasses) Delete(name string, options *metav1.DeleteOptions) error { return c.client.Delete(). Resource("storageclasses"). Name(name). @@ -124,10 +136,15 @@ func (c *storageClasses) Delete(name string, options *meta_v1.DeleteOptions) err } // DeleteCollection deletes a collection of objects. -func (c *storageClasses) DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error { +func (c *storageClasses) DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Resource("storageclasses"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/volumeattachment.go b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/volumeattachment.go new file mode 100644 index 000000000..0f45097b2 --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1/volumeattachment.go @@ -0,0 +1,180 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package v1 + +import ( + "time" + + v1 "k8s.io/api/storage/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + scheme "k8s.io/client-go/kubernetes/scheme" + rest "k8s.io/client-go/rest" +) + +// VolumeAttachmentsGetter has a method to return a VolumeAttachmentInterface. +// A group's client should implement this interface. +type VolumeAttachmentsGetter interface { + VolumeAttachments() VolumeAttachmentInterface +} + +// VolumeAttachmentInterface has methods to work with VolumeAttachment resources. +type VolumeAttachmentInterface interface { + Create(*v1.VolumeAttachment) (*v1.VolumeAttachment, error) + Update(*v1.VolumeAttachment) (*v1.VolumeAttachment, error) + UpdateStatus(*v1.VolumeAttachment) (*v1.VolumeAttachment, error) + Delete(name string, options *metav1.DeleteOptions) error + DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error + Get(name string, options metav1.GetOptions) (*v1.VolumeAttachment, error) + List(opts metav1.ListOptions) (*v1.VolumeAttachmentList, error) + Watch(opts metav1.ListOptions) (watch.Interface, error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.VolumeAttachment, err error) + VolumeAttachmentExpansion +} + +// volumeAttachments implements VolumeAttachmentInterface +type volumeAttachments struct { + client rest.Interface +} + +// newVolumeAttachments returns a VolumeAttachments +func newVolumeAttachments(c *StorageV1Client) *volumeAttachments { + return &volumeAttachments{ + client: c.RESTClient(), + } +} + +// Get takes name of the volumeAttachment, and returns the corresponding volumeAttachment object, and an error if there is any. +func (c *volumeAttachments) Get(name string, options metav1.GetOptions) (result *v1.VolumeAttachment, err error) { + result = &v1.VolumeAttachment{} + err = c.client.Get(). + Resource("volumeattachments"). + Name(name). + VersionedParams(&options, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// List takes label and field selectors, and returns the list of VolumeAttachments that match those selectors. +func (c *volumeAttachments) List(opts metav1.ListOptions) (result *v1.VolumeAttachmentList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } + result = &v1.VolumeAttachmentList{} + err = c.client.Get(). + Resource("volumeattachments"). + VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). + Do(). + Into(result) + return +} + +// Watch returns a watch.Interface that watches the requested volumeAttachments. +func (c *volumeAttachments) Watch(opts metav1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } + opts.Watch = true + return c.client.Get(). + Resource("volumeattachments"). + VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). + Watch() +} + +// Create takes the representation of a volumeAttachment and creates it. Returns the server's representation of the volumeAttachment, and an error, if there is any. +func (c *volumeAttachments) Create(volumeAttachment *v1.VolumeAttachment) (result *v1.VolumeAttachment, err error) { + result = &v1.VolumeAttachment{} + err = c.client.Post(). + Resource("volumeattachments"). + Body(volumeAttachment). + Do(). + Into(result) + return +} + +// Update takes the representation of a volumeAttachment and updates it. Returns the server's representation of the volumeAttachment, and an error, if there is any. +func (c *volumeAttachments) Update(volumeAttachment *v1.VolumeAttachment) (result *v1.VolumeAttachment, err error) { + result = &v1.VolumeAttachment{} + err = c.client.Put(). + Resource("volumeattachments"). + Name(volumeAttachment.Name). + Body(volumeAttachment). + Do(). + Into(result) + return +} + +// UpdateStatus was generated because the type contains a Status member. +// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). + +func (c *volumeAttachments) UpdateStatus(volumeAttachment *v1.VolumeAttachment) (result *v1.VolumeAttachment, err error) { + result = &v1.VolumeAttachment{} + err = c.client.Put(). + Resource("volumeattachments"). + Name(volumeAttachment.Name). + SubResource("status"). + Body(volumeAttachment). + Do(). + Into(result) + return +} + +// Delete takes name of the volumeAttachment and deletes it. Returns an error if one occurs. +func (c *volumeAttachments) Delete(name string, options *metav1.DeleteOptions) error { + return c.client.Delete(). + Resource("volumeattachments"). + Name(name). + Body(options). + Do(). + Error() +} + +// DeleteCollection deletes a collection of objects. +func (c *volumeAttachments) DeleteCollection(options *metav1.DeleteOptions, listOptions metav1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } + return c.client.Delete(). + Resource("volumeattachments"). + VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). + Body(options). + Do(). + Error() +} + +// Patch applies the patch and returns the patched volumeAttachment. +func (c *volumeAttachments) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.VolumeAttachment, err error) { + result = &v1.VolumeAttachment{} + err = c.client.Patch(pt). + Resource("volumeattachments"). + SubResource(subresources...). + Name(name). + Body(data). + Do(). + Into(result) + return +} diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/BUILD deleted file mode 100644 index 155421963..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/BUILD +++ /dev/null @@ -1,39 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "generated_expansion.go", - "storage_client.go", - "volumeattachment.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/storage/v1alpha1", - visibility = ["//visibility:public"], - deps = [ - "//vendor/k8s.io/api/storage/v1alpha1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake:all-srcs", - ], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/doc.go index 69ca30111..df51baa4d 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake/BUILD deleted file mode 100644 index a509ba7fc..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake/BUILD +++ /dev/null @@ -1,37 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "fake_storage_client.go", - "fake_volumeattachment.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake", - visibility = ["//visibility:public"], - deps = [ - "//vendor/k8s.io/api/storage/v1alpha1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/testing:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake/doc.go index 87a1873ed..16f443990 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake/fake_storage_client.go b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake/fake_storage_client.go index 5a9ed0964..1a4d9f56f 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake/fake_storage_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake/fake_storage_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake/fake_volumeattachment.go b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake/fake_volumeattachment.go index c5db88531..86f53e2d4 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake/fake_volumeattachment.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake/fake_volumeattachment.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -59,7 +59,7 @@ func (c *FakeVolumeAttachments) List(opts v1.ListOptions) (result *v1alpha1.Volu if label == nil { label = labels.Everything() } - list := &v1alpha1.VolumeAttachmentList{} + list := &v1alpha1.VolumeAttachmentList{ListMeta: obj.(*v1alpha1.VolumeAttachmentList).ListMeta} for _, item := range obj.(*v1alpha1.VolumeAttachmentList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) @@ -123,7 +123,7 @@ func (c *FakeVolumeAttachments) DeleteCollection(options *v1.DeleteOptions, list // Patch applies the patch and returns the patched volumeAttachment. func (c *FakeVolumeAttachments) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1alpha1.VolumeAttachment, err error) { obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(volumeattachmentsResource, name, data, subresources...), &v1alpha1.VolumeAttachment{}) + Invokes(testing.NewRootPatchSubresourceAction(volumeattachmentsResource, name, pt, data, subresources...), &v1alpha1.VolumeAttachment{}) if obj == nil { return nil, err } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/generated_expansion.go b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/generated_expansion.go index e3fc3f399..cdb7ab2f8 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/generated_expansion.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/generated_expansion.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/storage_client.go b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/storage_client.go index 63834e462..c52f630ac 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/storage_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/storage_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/volumeattachment.go b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/volumeattachment.go index 7bf79a6c1..7fef94e8d 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/volumeattachment.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/volumeattachment.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,6 +19,8 @@ limitations under the License. package v1alpha1 import ( + "time" + v1alpha1 "k8s.io/api/storage/v1alpha1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" @@ -73,10 +75,15 @@ func (c *volumeAttachments) Get(name string, options v1.GetOptions) (result *v1a // List takes label and field selectors, and returns the list of VolumeAttachments that match those selectors. func (c *volumeAttachments) List(opts v1.ListOptions) (result *v1alpha1.VolumeAttachmentList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1alpha1.VolumeAttachmentList{} err = c.client.Get(). Resource("volumeattachments"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return @@ -84,10 +91,15 @@ func (c *volumeAttachments) List(opts v1.ListOptions) (result *v1alpha1.VolumeAt // Watch returns a watch.Interface that watches the requested volumeAttachments. func (c *volumeAttachments) Watch(opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Resource("volumeattachments"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -141,9 +153,14 @@ func (c *volumeAttachments) Delete(name string, options *v1.DeleteOptions) error // DeleteCollection deletes a collection of objects. func (c *volumeAttachments) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Resource("volumeattachments"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/BUILD deleted file mode 100644 index 79d13929c..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/BUILD +++ /dev/null @@ -1,43 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "generated_expansion.go", - "storage_client.go", - "storageclass.go", - "volumeattachment.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/storage/v1beta1", - deps = [ - "//vendor/k8s.io/api/storage/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/doc.go index 11ae7049d..771101956 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/BUILD b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/BUILD deleted file mode 100644 index 743008884..000000000 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/BUILD +++ /dev/null @@ -1,41 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "fake_storage_client.go", - "fake_storageclass.go", - "fake_volumeattachment.go", - ], - importpath = "k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake", - deps = [ - "//vendor/k8s.io/api/storage/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/testing:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/doc.go b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/doc.go index 87a1873ed..16f443990 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/doc.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/doc.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/fake_storage_client.go b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/fake_storage_client.go index a81d90542..e0e3f1d78 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/fake_storage_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/fake_storage_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/fake_storageclass.go b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/fake_storageclass.go index ce1e72d53..9fc8ca991 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/fake_storageclass.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/fake_storageclass.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -59,7 +59,7 @@ func (c *FakeStorageClasses) List(opts v1.ListOptions) (result *v1beta1.StorageC if label == nil { label = labels.Everything() } - list := &v1beta1.StorageClassList{} + list := &v1beta1.StorageClassList{ListMeta: obj.(*v1beta1.StorageClassList).ListMeta} for _, item := range obj.(*v1beta1.StorageClassList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) @@ -112,7 +112,7 @@ func (c *FakeStorageClasses) DeleteCollection(options *v1.DeleteOptions, listOpt // Patch applies the patch and returns the patched storageClass. func (c *FakeStorageClasses) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.StorageClass, err error) { obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(storageclassesResource, name, data, subresources...), &v1beta1.StorageClass{}) + Invokes(testing.NewRootPatchSubresourceAction(storageclassesResource, name, pt, data, subresources...), &v1beta1.StorageClass{}) if obj == nil { return nil, err } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/fake_volumeattachment.go b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/fake_volumeattachment.go index 8bbf197dd..043098f45 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/fake_volumeattachment.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/fake_volumeattachment.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -59,7 +59,7 @@ func (c *FakeVolumeAttachments) List(opts v1.ListOptions) (result *v1beta1.Volum if label == nil { label = labels.Everything() } - list := &v1beta1.VolumeAttachmentList{} + list := &v1beta1.VolumeAttachmentList{ListMeta: obj.(*v1beta1.VolumeAttachmentList).ListMeta} for _, item := range obj.(*v1beta1.VolumeAttachmentList).Items { if label.Matches(labels.Set(item.Labels)) { list.Items = append(list.Items, item) @@ -123,7 +123,7 @@ func (c *FakeVolumeAttachments) DeleteCollection(options *v1.DeleteOptions, list // Patch applies the patch and returns the patched volumeAttachment. func (c *FakeVolumeAttachments) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1beta1.VolumeAttachment, err error) { obj, err := c.Fake. - Invokes(testing.NewRootPatchSubresourceAction(volumeattachmentsResource, name, data, subresources...), &v1beta1.VolumeAttachment{}) + Invokes(testing.NewRootPatchSubresourceAction(volumeattachmentsResource, name, pt, data, subresources...), &v1beta1.VolumeAttachment{}) if obj == nil { return nil, err } diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/generated_expansion.go b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/generated_expansion.go index 5bb931f05..559f88f67 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/generated_expansion.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/generated_expansion.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/storage_client.go b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/storage_client.go index 4ca05be6f..4bdebb878 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/storage_client.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/storage_client.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/storageclass.go b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/storageclass.go index 63047a7fb..8a8f38916 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/storageclass.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/storageclass.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,6 +19,8 @@ limitations under the License. package v1beta1 import ( + "time" + v1beta1 "k8s.io/api/storage/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" @@ -72,10 +74,15 @@ func (c *storageClasses) Get(name string, options v1.GetOptions) (result *v1beta // List takes label and field selectors, and returns the list of StorageClasses that match those selectors. func (c *storageClasses) List(opts v1.ListOptions) (result *v1beta1.StorageClassList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1beta1.StorageClassList{} err = c.client.Get(). Resource("storageclasses"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return @@ -83,10 +90,15 @@ func (c *storageClasses) List(opts v1.ListOptions) (result *v1beta1.StorageClass // Watch returns a watch.Interface that watches the requested storageClasses. func (c *storageClasses) Watch(opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Resource("storageclasses"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -125,9 +137,14 @@ func (c *storageClasses) Delete(name string, options *v1.DeleteOptions) error { // DeleteCollection deletes a collection of objects. func (c *storageClasses) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Resource("storageclasses"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/volumeattachment.go b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/volumeattachment.go index fab0801b0..d319407f2 100644 --- a/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/volumeattachment.go +++ b/vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/volumeattachment.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -19,6 +19,8 @@ limitations under the License. package v1beta1 import ( + "time" + v1beta1 "k8s.io/api/storage/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" @@ -73,10 +75,15 @@ func (c *volumeAttachments) Get(name string, options v1.GetOptions) (result *v1b // List takes label and field selectors, and returns the list of VolumeAttachments that match those selectors. func (c *volumeAttachments) List(opts v1.ListOptions) (result *v1beta1.VolumeAttachmentList, err error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } result = &v1beta1.VolumeAttachmentList{} err = c.client.Get(). Resource("volumeattachments"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Do(). Into(result) return @@ -84,10 +91,15 @@ func (c *volumeAttachments) List(opts v1.ListOptions) (result *v1beta1.VolumeAtt // Watch returns a watch.Interface that watches the requested volumeAttachments. func (c *volumeAttachments) Watch(opts v1.ListOptions) (watch.Interface, error) { + var timeout time.Duration + if opts.TimeoutSeconds != nil { + timeout = time.Duration(*opts.TimeoutSeconds) * time.Second + } opts.Watch = true return c.client.Get(). Resource("volumeattachments"). VersionedParams(&opts, scheme.ParameterCodec). + Timeout(timeout). Watch() } @@ -141,9 +153,14 @@ func (c *volumeAttachments) Delete(name string, options *v1.DeleteOptions) error // DeleteCollection deletes a collection of objects. func (c *volumeAttachments) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + var timeout time.Duration + if listOptions.TimeoutSeconds != nil { + timeout = time.Duration(*listOptions.TimeoutSeconds) * time.Second + } return c.client.Delete(). Resource("volumeattachments"). VersionedParams(&listOptions, scheme.ParameterCodec). + Timeout(timeout). Body(options). Do(). Error() diff --git a/vendor/k8s.io/client-go/kubernetes_test/timeout_test.go b/vendor/k8s.io/client-go/kubernetes_test/timeout_test.go new file mode 100644 index 000000000..055fb4909 --- /dev/null +++ b/vendor/k8s.io/client-go/kubernetes_test/timeout_test.go @@ -0,0 +1,60 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package kubernetes_test + +import ( + "bytes" + "io/ioutil" + "net/http" + "testing" + + "github.com/davecgh/go-spew/spew" + + appsv1 "k8s.io/api/apps/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/client-go/kubernetes" + "k8s.io/client-go/kubernetes/scheme" + "k8s.io/client-go/rest" + manualfake "k8s.io/client-go/rest/fake" +) + +func TestListTimeout(t *testing.T) { + fakeClient := &manualfake.RESTClient{ + GroupVersion: appsv1.SchemeGroupVersion, + NegotiatedSerializer: scheme.Codecs, + Client: manualfake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { + if req.URL.Query().Get("timeout") != "21s" { + t.Fatal(spew.Sdump(req.URL.Query())) + } + return &http.Response{StatusCode: http.StatusNotFound, Body: ioutil.NopCloser(&bytes.Buffer{})}, nil + }), + } + clientConfig := &rest.Config{ + APIPath: "/apis", + ContentConfig: rest.ContentConfig{ + NegotiatedSerializer: scheme.Codecs, + GroupVersion: &appsv1.SchemeGroupVersion, + }, + } + restClient, _ := rest.RESTClientFor(clientConfig) + restClient.Client = fakeClient.Client + realClient := kubernetes.New(restClient) + + timeout := int64(21) + realClient.AppsV1().DaemonSets("").List(metav1.ListOptions{TimeoutSeconds: &timeout}) + realClient.AppsV1().DaemonSets("").Watch(metav1.ListOptions{TimeoutSeconds: &timeout}) +} diff --git a/vendor/k8s.io/client-go/listers/admissionregistration/v1alpha1/BUILD b/vendor/k8s.io/client-go/listers/admissionregistration/v1alpha1/BUILD deleted file mode 100644 index df0364232..000000000 --- a/vendor/k8s.io/client-go/listers/admissionregistration/v1alpha1/BUILD +++ /dev/null @@ -1,31 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "expansion_generated.go", - "initializerconfiguration.go", - ], - importpath = "k8s.io/client-go/listers/admissionregistration/v1alpha1", - visibility = ["//visibility:public"], - deps = [ - "//vendor/k8s.io/api/admissionregistration/v1alpha1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/client-go/listers/admissionregistration/v1alpha1/expansion_generated.go b/vendor/k8s.io/client-go/listers/admissionregistration/v1alpha1/expansion_generated.go index 868ee66cf..2c9f9f6a6 100644 --- a/vendor/k8s.io/client-go/listers/admissionregistration/v1alpha1/expansion_generated.go +++ b/vendor/k8s.io/client-go/listers/admissionregistration/v1alpha1/expansion_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/admissionregistration/v1alpha1/initializerconfiguration.go b/vendor/k8s.io/client-go/listers/admissionregistration/v1alpha1/initializerconfiguration.go index a2cc796dc..dbd7301fc 100644 --- a/vendor/k8s.io/client-go/listers/admissionregistration/v1alpha1/initializerconfiguration.go +++ b/vendor/k8s.io/client-go/listers/admissionregistration/v1alpha1/initializerconfiguration.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/admissionregistration/v1beta1/BUILD b/vendor/k8s.io/client-go/listers/admissionregistration/v1beta1/BUILD deleted file mode 100644 index d5128618f..000000000 --- a/vendor/k8s.io/client-go/listers/admissionregistration/v1beta1/BUILD +++ /dev/null @@ -1,32 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "expansion_generated.go", - "mutatingwebhookconfiguration.go", - "validatingwebhookconfiguration.go", - ], - importpath = "k8s.io/client-go/listers/admissionregistration/v1beta1", - visibility = ["//visibility:public"], - deps = [ - "//vendor/k8s.io/api/admissionregistration/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/client-go/listers/admissionregistration/v1beta1/expansion_generated.go b/vendor/k8s.io/client-go/listers/admissionregistration/v1beta1/expansion_generated.go index 93dddb5ff..8960abc4f 100644 --- a/vendor/k8s.io/client-go/listers/admissionregistration/v1beta1/expansion_generated.go +++ b/vendor/k8s.io/client-go/listers/admissionregistration/v1beta1/expansion_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/admissionregistration/v1beta1/mutatingwebhookconfiguration.go b/vendor/k8s.io/client-go/listers/admissionregistration/v1beta1/mutatingwebhookconfiguration.go index 015587e80..b38732c36 100644 --- a/vendor/k8s.io/client-go/listers/admissionregistration/v1beta1/mutatingwebhookconfiguration.go +++ b/vendor/k8s.io/client-go/listers/admissionregistration/v1beta1/mutatingwebhookconfiguration.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/admissionregistration/v1beta1/validatingwebhookconfiguration.go b/vendor/k8s.io/client-go/listers/admissionregistration/v1beta1/validatingwebhookconfiguration.go index 243589b2f..b89c9bbe2 100644 --- a/vendor/k8s.io/client-go/listers/admissionregistration/v1beta1/validatingwebhookconfiguration.go +++ b/vendor/k8s.io/client-go/listers/admissionregistration/v1beta1/validatingwebhookconfiguration.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/apps/v1/BUILD b/vendor/k8s.io/client-go/listers/apps/v1/BUILD deleted file mode 100644 index fb3cfbbb6..000000000 --- a/vendor/k8s.io/client-go/listers/apps/v1/BUILD +++ /dev/null @@ -1,41 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "controllerrevision.go", - "daemonset.go", - "daemonset_expansion.go", - "deployment.go", - "deployment_expansion.go", - "expansion_generated.go", - "replicaset.go", - "replicaset_expansion.go", - "statefulset.go", - "statefulset_expansion.go", - ], - importpath = "k8s.io/client-go/listers/apps/v1", - visibility = ["//visibility:public"], - deps = [ - "//vendor/k8s.io/api/apps/v1:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/client-go/listers/apps/v1/controllerrevision.go b/vendor/k8s.io/client-go/listers/apps/v1/controllerrevision.go index 19f567e82..9029805a3 100644 --- a/vendor/k8s.io/client-go/listers/apps/v1/controllerrevision.go +++ b/vendor/k8s.io/client-go/listers/apps/v1/controllerrevision.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/apps/v1/daemonset.go b/vendor/k8s.io/client-go/listers/apps/v1/daemonset.go index 7fcd1e063..b022ecc4a 100644 --- a/vendor/k8s.io/client-go/listers/apps/v1/daemonset.go +++ b/vendor/k8s.io/client-go/listers/apps/v1/daemonset.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/apps/v1/deployment.go b/vendor/k8s.io/client-go/listers/apps/v1/deployment.go index 2d2ecf0cf..d1be7156e 100644 --- a/vendor/k8s.io/client-go/listers/apps/v1/deployment.go +++ b/vendor/k8s.io/client-go/listers/apps/v1/deployment.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/apps/v1/expansion_generated.go b/vendor/k8s.io/client-go/listers/apps/v1/expansion_generated.go index 1e8bf6fec..7f5815f79 100644 --- a/vendor/k8s.io/client-go/listers/apps/v1/expansion_generated.go +++ b/vendor/k8s.io/client-go/listers/apps/v1/expansion_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/apps/v1/replicaset.go b/vendor/k8s.io/client-go/listers/apps/v1/replicaset.go index 99fb92ff4..d487ef656 100644 --- a/vendor/k8s.io/client-go/listers/apps/v1/replicaset.go +++ b/vendor/k8s.io/client-go/listers/apps/v1/replicaset.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/apps/v1/statefulset.go b/vendor/k8s.io/client-go/listers/apps/v1/statefulset.go index 6ad54b71f..cc0031858 100644 --- a/vendor/k8s.io/client-go/listers/apps/v1/statefulset.go +++ b/vendor/k8s.io/client-go/listers/apps/v1/statefulset.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/apps/v1beta1/BUILD b/vendor/k8s.io/client-go/listers/apps/v1beta1/BUILD deleted file mode 100644 index f6ddce530..000000000 --- a/vendor/k8s.io/client-go/listers/apps/v1beta1/BUILD +++ /dev/null @@ -1,40 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "controllerrevision.go", - "deployment.go", - "expansion_generated.go", - "scale.go", - "statefulset.go", - "statefulset_expansion.go", - ], - importpath = "k8s.io/client-go/listers/apps/v1beta1", - deps = [ - "//vendor/k8s.io/api/apps/v1beta1:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/listers/apps/v1beta1/controllerrevision.go b/vendor/k8s.io/client-go/listers/apps/v1beta1/controllerrevision.go index 95aeb0236..d84a865b3 100644 --- a/vendor/k8s.io/client-go/listers/apps/v1beta1/controllerrevision.go +++ b/vendor/k8s.io/client-go/listers/apps/v1beta1/controllerrevision.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/apps/v1beta1/deployment.go b/vendor/k8s.io/client-go/listers/apps/v1beta1/deployment.go index 4f6e883ba..048558f2a 100644 --- a/vendor/k8s.io/client-go/listers/apps/v1beta1/deployment.go +++ b/vendor/k8s.io/client-go/listers/apps/v1beta1/deployment.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/apps/v1beta1/expansion_generated.go b/vendor/k8s.io/client-go/listers/apps/v1beta1/expansion_generated.go index 4f3813a94..c73cf98c7 100644 --- a/vendor/k8s.io/client-go/listers/apps/v1beta1/expansion_generated.go +++ b/vendor/k8s.io/client-go/listers/apps/v1beta1/expansion_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -33,11 +33,3 @@ type DeploymentListerExpansion interface{} // DeploymentNamespaceListerExpansion allows custom methods to be added to // DeploymentNamespaceLister. type DeploymentNamespaceListerExpansion interface{} - -// ScaleListerExpansion allows custom methods to be added to -// ScaleLister. -type ScaleListerExpansion interface{} - -// ScaleNamespaceListerExpansion allows custom methods to be added to -// ScaleNamespaceLister. -type ScaleNamespaceListerExpansion interface{} diff --git a/vendor/k8s.io/client-go/listers/apps/v1beta1/scale.go b/vendor/k8s.io/client-go/listers/apps/v1beta1/scale.go deleted file mode 100644 index 85bf3a6f4..000000000 --- a/vendor/k8s.io/client-go/listers/apps/v1beta1/scale.go +++ /dev/null @@ -1,94 +0,0 @@ -/* -Copyright 2018 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by lister-gen. DO NOT EDIT. - -package v1beta1 - -import ( - v1beta1 "k8s.io/api/apps/v1beta1" - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" -) - -// ScaleLister helps list Scales. -type ScaleLister interface { - // List lists all Scales in the indexer. - List(selector labels.Selector) (ret []*v1beta1.Scale, err error) - // Scales returns an object that can list and get Scales. - Scales(namespace string) ScaleNamespaceLister - ScaleListerExpansion -} - -// scaleLister implements the ScaleLister interface. -type scaleLister struct { - indexer cache.Indexer -} - -// NewScaleLister returns a new ScaleLister. -func NewScaleLister(indexer cache.Indexer) ScaleLister { - return &scaleLister{indexer: indexer} -} - -// List lists all Scales in the indexer. -func (s *scaleLister) List(selector labels.Selector) (ret []*v1beta1.Scale, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*v1beta1.Scale)) - }) - return ret, err -} - -// Scales returns an object that can list and get Scales. -func (s *scaleLister) Scales(namespace string) ScaleNamespaceLister { - return scaleNamespaceLister{indexer: s.indexer, namespace: namespace} -} - -// ScaleNamespaceLister helps list and get Scales. -type ScaleNamespaceLister interface { - // List lists all Scales in the indexer for a given namespace. - List(selector labels.Selector) (ret []*v1beta1.Scale, err error) - // Get retrieves the Scale from the indexer for a given namespace and name. - Get(name string) (*v1beta1.Scale, error) - ScaleNamespaceListerExpansion -} - -// scaleNamespaceLister implements the ScaleNamespaceLister -// interface. -type scaleNamespaceLister struct { - indexer cache.Indexer - namespace string -} - -// List lists all Scales in the indexer for a given namespace. -func (s scaleNamespaceLister) List(selector labels.Selector) (ret []*v1beta1.Scale, err error) { - err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { - ret = append(ret, m.(*v1beta1.Scale)) - }) - return ret, err -} - -// Get retrieves the Scale from the indexer for a given namespace and name. -func (s scaleNamespaceLister) Get(name string) (*v1beta1.Scale, error) { - obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(v1beta1.Resource("scale"), name) - } - return obj.(*v1beta1.Scale), nil -} diff --git a/vendor/k8s.io/client-go/listers/apps/v1beta1/statefulset.go b/vendor/k8s.io/client-go/listers/apps/v1beta1/statefulset.go index a967e8492..277beb3e4 100644 --- a/vendor/k8s.io/client-go/listers/apps/v1beta1/statefulset.go +++ b/vendor/k8s.io/client-go/listers/apps/v1beta1/statefulset.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/apps/v1beta2/BUILD b/vendor/k8s.io/client-go/listers/apps/v1beta2/BUILD deleted file mode 100644 index 50aefcab1..000000000 --- a/vendor/k8s.io/client-go/listers/apps/v1beta2/BUILD +++ /dev/null @@ -1,45 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "controllerrevision.go", - "daemonset.go", - "daemonset_expansion.go", - "deployment.go", - "deployment_expansion.go", - "expansion_generated.go", - "replicaset.go", - "replicaset_expansion.go", - "scale.go", - "statefulset.go", - "statefulset_expansion.go", - ], - importpath = "k8s.io/client-go/listers/apps/v1beta2", - deps = [ - "//vendor/k8s.io/api/apps/v1beta2:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/listers/apps/v1beta2/controllerrevision.go b/vendor/k8s.io/client-go/listers/apps/v1beta2/controllerrevision.go index 3d5274dc3..904b59b24 100644 --- a/vendor/k8s.io/client-go/listers/apps/v1beta2/controllerrevision.go +++ b/vendor/k8s.io/client-go/listers/apps/v1beta2/controllerrevision.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/apps/v1beta2/daemonset.go b/vendor/k8s.io/client-go/listers/apps/v1beta2/daemonset.go index 0ea4dc83f..8a40d2c86 100644 --- a/vendor/k8s.io/client-go/listers/apps/v1beta2/daemonset.go +++ b/vendor/k8s.io/client-go/listers/apps/v1beta2/daemonset.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/apps/v1beta2/deployment.go b/vendor/k8s.io/client-go/listers/apps/v1beta2/deployment.go index 8855bb20c..32beaf25c 100644 --- a/vendor/k8s.io/client-go/listers/apps/v1beta2/deployment.go +++ b/vendor/k8s.io/client-go/listers/apps/v1beta2/deployment.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/apps/v1beta2/expansion_generated.go b/vendor/k8s.io/client-go/listers/apps/v1beta2/expansion_generated.go index 48cbedb8f..bac6ccb9a 100644 --- a/vendor/k8s.io/client-go/listers/apps/v1beta2/expansion_generated.go +++ b/vendor/k8s.io/client-go/listers/apps/v1beta2/expansion_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -25,11 +25,3 @@ type ControllerRevisionListerExpansion interface{} // ControllerRevisionNamespaceListerExpansion allows custom methods to be added to // ControllerRevisionNamespaceLister. type ControllerRevisionNamespaceListerExpansion interface{} - -// ScaleListerExpansion allows custom methods to be added to -// ScaleLister. -type ScaleListerExpansion interface{} - -// ScaleNamespaceListerExpansion allows custom methods to be added to -// ScaleNamespaceLister. -type ScaleNamespaceListerExpansion interface{} diff --git a/vendor/k8s.io/client-go/listers/apps/v1beta2/replicaset.go b/vendor/k8s.io/client-go/listers/apps/v1beta2/replicaset.go index 0fd8dbaa4..18c2136a2 100644 --- a/vendor/k8s.io/client-go/listers/apps/v1beta2/replicaset.go +++ b/vendor/k8s.io/client-go/listers/apps/v1beta2/replicaset.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/apps/v1beta2/scale.go b/vendor/k8s.io/client-go/listers/apps/v1beta2/scale.go deleted file mode 100644 index f53e42ce8..000000000 --- a/vendor/k8s.io/client-go/listers/apps/v1beta2/scale.go +++ /dev/null @@ -1,94 +0,0 @@ -/* -Copyright 2018 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by lister-gen. DO NOT EDIT. - -package v1beta2 - -import ( - v1beta2 "k8s.io/api/apps/v1beta2" - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" -) - -// ScaleLister helps list Scales. -type ScaleLister interface { - // List lists all Scales in the indexer. - List(selector labels.Selector) (ret []*v1beta2.Scale, err error) - // Scales returns an object that can list and get Scales. - Scales(namespace string) ScaleNamespaceLister - ScaleListerExpansion -} - -// scaleLister implements the ScaleLister interface. -type scaleLister struct { - indexer cache.Indexer -} - -// NewScaleLister returns a new ScaleLister. -func NewScaleLister(indexer cache.Indexer) ScaleLister { - return &scaleLister{indexer: indexer} -} - -// List lists all Scales in the indexer. -func (s *scaleLister) List(selector labels.Selector) (ret []*v1beta2.Scale, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*v1beta2.Scale)) - }) - return ret, err -} - -// Scales returns an object that can list and get Scales. -func (s *scaleLister) Scales(namespace string) ScaleNamespaceLister { - return scaleNamespaceLister{indexer: s.indexer, namespace: namespace} -} - -// ScaleNamespaceLister helps list and get Scales. -type ScaleNamespaceLister interface { - // List lists all Scales in the indexer for a given namespace. - List(selector labels.Selector) (ret []*v1beta2.Scale, err error) - // Get retrieves the Scale from the indexer for a given namespace and name. - Get(name string) (*v1beta2.Scale, error) - ScaleNamespaceListerExpansion -} - -// scaleNamespaceLister implements the ScaleNamespaceLister -// interface. -type scaleNamespaceLister struct { - indexer cache.Indexer - namespace string -} - -// List lists all Scales in the indexer for a given namespace. -func (s scaleNamespaceLister) List(selector labels.Selector) (ret []*v1beta2.Scale, err error) { - err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { - ret = append(ret, m.(*v1beta2.Scale)) - }) - return ret, err -} - -// Get retrieves the Scale from the indexer for a given namespace and name. -func (s scaleNamespaceLister) Get(name string) (*v1beta2.Scale, error) { - obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(v1beta2.Resource("scale"), name) - } - return obj.(*v1beta2.Scale), nil -} diff --git a/vendor/k8s.io/client-go/listers/apps/v1beta2/statefulset.go b/vendor/k8s.io/client-go/listers/apps/v1beta2/statefulset.go index 2e095ace4..544bff458 100644 --- a/vendor/k8s.io/client-go/listers/apps/v1beta2/statefulset.go +++ b/vendor/k8s.io/client-go/listers/apps/v1beta2/statefulset.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/auditregistration/v1alpha1/auditsink.go b/vendor/k8s.io/client-go/listers/auditregistration/v1alpha1/auditsink.go new file mode 100644 index 000000000..3ae4528c8 --- /dev/null +++ b/vendor/k8s.io/client-go/listers/auditregistration/v1alpha1/auditsink.go @@ -0,0 +1,65 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by lister-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + v1alpha1 "k8s.io/api/auditregistration/v1alpha1" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" +) + +// AuditSinkLister helps list AuditSinks. +type AuditSinkLister interface { + // List lists all AuditSinks in the indexer. + List(selector labels.Selector) (ret []*v1alpha1.AuditSink, err error) + // Get retrieves the AuditSink from the index for a given name. + Get(name string) (*v1alpha1.AuditSink, error) + AuditSinkListerExpansion +} + +// auditSinkLister implements the AuditSinkLister interface. +type auditSinkLister struct { + indexer cache.Indexer +} + +// NewAuditSinkLister returns a new AuditSinkLister. +func NewAuditSinkLister(indexer cache.Indexer) AuditSinkLister { + return &auditSinkLister{indexer: indexer} +} + +// List lists all AuditSinks in the indexer. +func (s *auditSinkLister) List(selector labels.Selector) (ret []*v1alpha1.AuditSink, err error) { + err = cache.ListAll(s.indexer, selector, func(m interface{}) { + ret = append(ret, m.(*v1alpha1.AuditSink)) + }) + return ret, err +} + +// Get retrieves the AuditSink from the index for a given name. +func (s *auditSinkLister) Get(name string) (*v1alpha1.AuditSink, error) { + obj, exists, err := s.indexer.GetByKey(name) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(v1alpha1.Resource("auditsink"), name) + } + return obj.(*v1alpha1.AuditSink), nil +} diff --git a/vendor/k8s.io/client-go/listers/auditregistration/v1alpha1/expansion_generated.go b/vendor/k8s.io/client-go/listers/auditregistration/v1alpha1/expansion_generated.go new file mode 100644 index 000000000..533dd0631 --- /dev/null +++ b/vendor/k8s.io/client-go/listers/auditregistration/v1alpha1/expansion_generated.go @@ -0,0 +1,23 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by lister-gen. DO NOT EDIT. + +package v1alpha1 + +// AuditSinkListerExpansion allows custom methods to be added to +// AuditSinkLister. +type AuditSinkListerExpansion interface{} diff --git a/vendor/k8s.io/client-go/listers/authentication/OWNERS b/vendor/k8s.io/client-go/listers/authentication/OWNERS new file mode 100644 index 000000000..c607d2aa8 --- /dev/null +++ b/vendor/k8s.io/client-go/listers/authentication/OWNERS @@ -0,0 +1,7 @@ +approvers: +- sig-auth-authenticators-approvers +reviewers: +- sig-auth-authenticators-reviewers +labels: +- sig/auth + diff --git a/vendor/k8s.io/client-go/listers/authentication/v1/BUILD b/vendor/k8s.io/client-go/listers/authentication/v1/BUILD deleted file mode 100644 index 18c90f1d3..000000000 --- a/vendor/k8s.io/client-go/listers/authentication/v1/BUILD +++ /dev/null @@ -1,34 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "expansion_generated.go", - "tokenreview.go", - ], - importpath = "k8s.io/client-go/listers/authentication/v1", - deps = [ - "//vendor/k8s.io/api/authentication/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/listers/authentication/v1/expansion_generated.go b/vendor/k8s.io/client-go/listers/authentication/v1/expansion_generated.go index 77b284d8d..a8d097f40 100644 --- a/vendor/k8s.io/client-go/listers/authentication/v1/expansion_generated.go +++ b/vendor/k8s.io/client-go/listers/authentication/v1/expansion_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/authentication/v1/tokenreview.go b/vendor/k8s.io/client-go/listers/authentication/v1/tokenreview.go index 5f2c6c3e6..5bb907c0c 100644 --- a/vendor/k8s.io/client-go/listers/authentication/v1/tokenreview.go +++ b/vendor/k8s.io/client-go/listers/authentication/v1/tokenreview.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/authentication/v1beta1/BUILD b/vendor/k8s.io/client-go/listers/authentication/v1beta1/BUILD deleted file mode 100644 index 45a7b02eb..000000000 --- a/vendor/k8s.io/client-go/listers/authentication/v1beta1/BUILD +++ /dev/null @@ -1,34 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "expansion_generated.go", - "tokenreview.go", - ], - importpath = "k8s.io/client-go/listers/authentication/v1beta1", - deps = [ - "//vendor/k8s.io/api/authentication/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/listers/authentication/v1beta1/expansion_generated.go b/vendor/k8s.io/client-go/listers/authentication/v1beta1/expansion_generated.go index 3b2b18860..82192059d 100644 --- a/vendor/k8s.io/client-go/listers/authentication/v1beta1/expansion_generated.go +++ b/vendor/k8s.io/client-go/listers/authentication/v1beta1/expansion_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/authentication/v1beta1/tokenreview.go b/vendor/k8s.io/client-go/listers/authentication/v1beta1/tokenreview.go index 9db014e9b..148bcae78 100644 --- a/vendor/k8s.io/client-go/listers/authentication/v1beta1/tokenreview.go +++ b/vendor/k8s.io/client-go/listers/authentication/v1beta1/tokenreview.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/authorization/OWNERS b/vendor/k8s.io/client-go/listers/authorization/OWNERS new file mode 100644 index 000000000..cd0d70a0f --- /dev/null +++ b/vendor/k8s.io/client-go/listers/authorization/OWNERS @@ -0,0 +1,7 @@ +approvers: +- sig-auth-authorizers-approvers +reviewers: +- sig-auth-authorizers-reviewers +labels: +- sig/auth + diff --git a/vendor/k8s.io/client-go/listers/authorization/v1/BUILD b/vendor/k8s.io/client-go/listers/authorization/v1/BUILD deleted file mode 100644 index dbea6dcc2..000000000 --- a/vendor/k8s.io/client-go/listers/authorization/v1/BUILD +++ /dev/null @@ -1,37 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "expansion_generated.go", - "localsubjectaccessreview.go", - "selfsubjectaccessreview.go", - "selfsubjectrulesreview.go", - "subjectaccessreview.go", - ], - importpath = "k8s.io/client-go/listers/authorization/v1", - deps = [ - "//vendor/k8s.io/api/authorization/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/listers/authorization/v1/expansion_generated.go b/vendor/k8s.io/client-go/listers/authorization/v1/expansion_generated.go index 9a0f2e212..af91939fb 100644 --- a/vendor/k8s.io/client-go/listers/authorization/v1/expansion_generated.go +++ b/vendor/k8s.io/client-go/listers/authorization/v1/expansion_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/authorization/v1/localsubjectaccessreview.go b/vendor/k8s.io/client-go/listers/authorization/v1/localsubjectaccessreview.go index 99055b348..e064c94c1 100644 --- a/vendor/k8s.io/client-go/listers/authorization/v1/localsubjectaccessreview.go +++ b/vendor/k8s.io/client-go/listers/authorization/v1/localsubjectaccessreview.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/authorization/v1/selfsubjectaccessreview.go b/vendor/k8s.io/client-go/listers/authorization/v1/selfsubjectaccessreview.go index 627e4dd74..f89bc1dde 100644 --- a/vendor/k8s.io/client-go/listers/authorization/v1/selfsubjectaccessreview.go +++ b/vendor/k8s.io/client-go/listers/authorization/v1/selfsubjectaccessreview.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/authorization/v1/selfsubjectrulesreview.go b/vendor/k8s.io/client-go/listers/authorization/v1/selfsubjectrulesreview.go index 6b2f06352..c65b5f84d 100644 --- a/vendor/k8s.io/client-go/listers/authorization/v1/selfsubjectrulesreview.go +++ b/vendor/k8s.io/client-go/listers/authorization/v1/selfsubjectrulesreview.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/authorization/v1/subjectaccessreview.go b/vendor/k8s.io/client-go/listers/authorization/v1/subjectaccessreview.go index ca7b47b46..0d6c29b39 100644 --- a/vendor/k8s.io/client-go/listers/authorization/v1/subjectaccessreview.go +++ b/vendor/k8s.io/client-go/listers/authorization/v1/subjectaccessreview.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/authorization/v1beta1/BUILD b/vendor/k8s.io/client-go/listers/authorization/v1beta1/BUILD deleted file mode 100644 index 665642706..000000000 --- a/vendor/k8s.io/client-go/listers/authorization/v1beta1/BUILD +++ /dev/null @@ -1,37 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "expansion_generated.go", - "localsubjectaccessreview.go", - "selfsubjectaccessreview.go", - "selfsubjectrulesreview.go", - "subjectaccessreview.go", - ], - importpath = "k8s.io/client-go/listers/authorization/v1beta1", - deps = [ - "//vendor/k8s.io/api/authorization/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/listers/authorization/v1beta1/expansion_generated.go b/vendor/k8s.io/client-go/listers/authorization/v1beta1/expansion_generated.go index d140d6563..24b06185e 100644 --- a/vendor/k8s.io/client-go/listers/authorization/v1beta1/expansion_generated.go +++ b/vendor/k8s.io/client-go/listers/authorization/v1beta1/expansion_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/authorization/v1beta1/localsubjectaccessreview.go b/vendor/k8s.io/client-go/listers/authorization/v1beta1/localsubjectaccessreview.go index 534e39aa9..4eb8158a3 100644 --- a/vendor/k8s.io/client-go/listers/authorization/v1beta1/localsubjectaccessreview.go +++ b/vendor/k8s.io/client-go/listers/authorization/v1beta1/localsubjectaccessreview.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/authorization/v1beta1/selfsubjectaccessreview.go b/vendor/k8s.io/client-go/listers/authorization/v1beta1/selfsubjectaccessreview.go index c2e82dbb9..4736ccdd5 100644 --- a/vendor/k8s.io/client-go/listers/authorization/v1beta1/selfsubjectaccessreview.go +++ b/vendor/k8s.io/client-go/listers/authorization/v1beta1/selfsubjectaccessreview.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/authorization/v1beta1/selfsubjectrulesreview.go b/vendor/k8s.io/client-go/listers/authorization/v1beta1/selfsubjectrulesreview.go index 5ce83f217..4e47abc3a 100644 --- a/vendor/k8s.io/client-go/listers/authorization/v1beta1/selfsubjectrulesreview.go +++ b/vendor/k8s.io/client-go/listers/authorization/v1beta1/selfsubjectrulesreview.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/authorization/v1beta1/subjectaccessreview.go b/vendor/k8s.io/client-go/listers/authorization/v1beta1/subjectaccessreview.go index b1853fc3c..5782b4f23 100644 --- a/vendor/k8s.io/client-go/listers/authorization/v1beta1/subjectaccessreview.go +++ b/vendor/k8s.io/client-go/listers/authorization/v1beta1/subjectaccessreview.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/autoscaling/v1/BUILD b/vendor/k8s.io/client-go/listers/autoscaling/v1/BUILD deleted file mode 100644 index 8c5bfd95d..000000000 --- a/vendor/k8s.io/client-go/listers/autoscaling/v1/BUILD +++ /dev/null @@ -1,31 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "expansion_generated.go", - "horizontalpodautoscaler.go", - ], - importpath = "k8s.io/client-go/listers/autoscaling/v1", - visibility = ["//visibility:public"], - deps = [ - "//vendor/k8s.io/api/autoscaling/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/client-go/listers/autoscaling/v1/expansion_generated.go b/vendor/k8s.io/client-go/listers/autoscaling/v1/expansion_generated.go index a20ab75da..05253c770 100644 --- a/vendor/k8s.io/client-go/listers/autoscaling/v1/expansion_generated.go +++ b/vendor/k8s.io/client-go/listers/autoscaling/v1/expansion_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/autoscaling/v1/horizontalpodautoscaler.go b/vendor/k8s.io/client-go/listers/autoscaling/v1/horizontalpodautoscaler.go index 27ade7ddb..6d563ca98 100644 --- a/vendor/k8s.io/client-go/listers/autoscaling/v1/horizontalpodautoscaler.go +++ b/vendor/k8s.io/client-go/listers/autoscaling/v1/horizontalpodautoscaler.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/autoscaling/v2beta1/BUILD b/vendor/k8s.io/client-go/listers/autoscaling/v2beta1/BUILD deleted file mode 100644 index 78aca5847..000000000 --- a/vendor/k8s.io/client-go/listers/autoscaling/v2beta1/BUILD +++ /dev/null @@ -1,31 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "expansion_generated.go", - "horizontalpodautoscaler.go", - ], - importpath = "k8s.io/client-go/listers/autoscaling/v2beta1", - visibility = ["//visibility:public"], - deps = [ - "//vendor/k8s.io/api/autoscaling/v2beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/client-go/listers/autoscaling/v2beta1/expansion_generated.go b/vendor/k8s.io/client-go/listers/autoscaling/v2beta1/expansion_generated.go index c026b65d5..8d46a4b6e 100644 --- a/vendor/k8s.io/client-go/listers/autoscaling/v2beta1/expansion_generated.go +++ b/vendor/k8s.io/client-go/listers/autoscaling/v2beta1/expansion_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/autoscaling/v2beta1/horizontalpodautoscaler.go b/vendor/k8s.io/client-go/listers/autoscaling/v2beta1/horizontalpodautoscaler.go index 4c29df910..08d13803b 100644 --- a/vendor/k8s.io/client-go/listers/autoscaling/v2beta1/horizontalpodautoscaler.go +++ b/vendor/k8s.io/client-go/listers/autoscaling/v2beta1/horizontalpodautoscaler.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/autoscaling/v2beta2/expansion_generated.go b/vendor/k8s.io/client-go/listers/autoscaling/v2beta2/expansion_generated.go new file mode 100644 index 000000000..5127945a9 --- /dev/null +++ b/vendor/k8s.io/client-go/listers/autoscaling/v2beta2/expansion_generated.go @@ -0,0 +1,27 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by lister-gen. DO NOT EDIT. + +package v2beta2 + +// HorizontalPodAutoscalerListerExpansion allows custom methods to be added to +// HorizontalPodAutoscalerLister. +type HorizontalPodAutoscalerListerExpansion interface{} + +// HorizontalPodAutoscalerNamespaceListerExpansion allows custom methods to be added to +// HorizontalPodAutoscalerNamespaceLister. +type HorizontalPodAutoscalerNamespaceListerExpansion interface{} diff --git a/vendor/k8s.io/client-go/listers/autoscaling/v2beta2/horizontalpodautoscaler.go b/vendor/k8s.io/client-go/listers/autoscaling/v2beta2/horizontalpodautoscaler.go new file mode 100644 index 000000000..9caaed88f --- /dev/null +++ b/vendor/k8s.io/client-go/listers/autoscaling/v2beta2/horizontalpodautoscaler.go @@ -0,0 +1,94 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by lister-gen. DO NOT EDIT. + +package v2beta2 + +import ( + v2beta2 "k8s.io/api/autoscaling/v2beta2" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" +) + +// HorizontalPodAutoscalerLister helps list HorizontalPodAutoscalers. +type HorizontalPodAutoscalerLister interface { + // List lists all HorizontalPodAutoscalers in the indexer. + List(selector labels.Selector) (ret []*v2beta2.HorizontalPodAutoscaler, err error) + // HorizontalPodAutoscalers returns an object that can list and get HorizontalPodAutoscalers. + HorizontalPodAutoscalers(namespace string) HorizontalPodAutoscalerNamespaceLister + HorizontalPodAutoscalerListerExpansion +} + +// horizontalPodAutoscalerLister implements the HorizontalPodAutoscalerLister interface. +type horizontalPodAutoscalerLister struct { + indexer cache.Indexer +} + +// NewHorizontalPodAutoscalerLister returns a new HorizontalPodAutoscalerLister. +func NewHorizontalPodAutoscalerLister(indexer cache.Indexer) HorizontalPodAutoscalerLister { + return &horizontalPodAutoscalerLister{indexer: indexer} +} + +// List lists all HorizontalPodAutoscalers in the indexer. +func (s *horizontalPodAutoscalerLister) List(selector labels.Selector) (ret []*v2beta2.HorizontalPodAutoscaler, err error) { + err = cache.ListAll(s.indexer, selector, func(m interface{}) { + ret = append(ret, m.(*v2beta2.HorizontalPodAutoscaler)) + }) + return ret, err +} + +// HorizontalPodAutoscalers returns an object that can list and get HorizontalPodAutoscalers. +func (s *horizontalPodAutoscalerLister) HorizontalPodAutoscalers(namespace string) HorizontalPodAutoscalerNamespaceLister { + return horizontalPodAutoscalerNamespaceLister{indexer: s.indexer, namespace: namespace} +} + +// HorizontalPodAutoscalerNamespaceLister helps list and get HorizontalPodAutoscalers. +type HorizontalPodAutoscalerNamespaceLister interface { + // List lists all HorizontalPodAutoscalers in the indexer for a given namespace. + List(selector labels.Selector) (ret []*v2beta2.HorizontalPodAutoscaler, err error) + // Get retrieves the HorizontalPodAutoscaler from the indexer for a given namespace and name. + Get(name string) (*v2beta2.HorizontalPodAutoscaler, error) + HorizontalPodAutoscalerNamespaceListerExpansion +} + +// horizontalPodAutoscalerNamespaceLister implements the HorizontalPodAutoscalerNamespaceLister +// interface. +type horizontalPodAutoscalerNamespaceLister struct { + indexer cache.Indexer + namespace string +} + +// List lists all HorizontalPodAutoscalers in the indexer for a given namespace. +func (s horizontalPodAutoscalerNamespaceLister) List(selector labels.Selector) (ret []*v2beta2.HorizontalPodAutoscaler, err error) { + err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { + ret = append(ret, m.(*v2beta2.HorizontalPodAutoscaler)) + }) + return ret, err +} + +// Get retrieves the HorizontalPodAutoscaler from the indexer for a given namespace and name. +func (s horizontalPodAutoscalerNamespaceLister) Get(name string) (*v2beta2.HorizontalPodAutoscaler, error) { + obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(v2beta2.Resource("horizontalpodautoscaler"), name) + } + return obj.(*v2beta2.HorizontalPodAutoscaler), nil +} diff --git a/vendor/k8s.io/client-go/listers/batch/v1/BUILD b/vendor/k8s.io/client-go/listers/batch/v1/BUILD deleted file mode 100644 index c695b9856..000000000 --- a/vendor/k8s.io/client-go/listers/batch/v1/BUILD +++ /dev/null @@ -1,37 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "expansion_generated.go", - "job.go", - "job_expansion.go", - ], - importpath = "k8s.io/client-go/listers/batch/v1", - deps = [ - "//vendor/k8s.io/api/batch/v1:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/listers/batch/v1/expansion_generated.go b/vendor/k8s.io/client-go/listers/batch/v1/expansion_generated.go index 63091e84a..c43caf240 100644 --- a/vendor/k8s.io/client-go/listers/batch/v1/expansion_generated.go +++ b/vendor/k8s.io/client-go/listers/batch/v1/expansion_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/batch/v1/job.go b/vendor/k8s.io/client-go/listers/batch/v1/job.go index e29e0271c..909b6f88f 100644 --- a/vendor/k8s.io/client-go/listers/batch/v1/job.go +++ b/vendor/k8s.io/client-go/listers/batch/v1/job.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/batch/v1beta1/BUILD b/vendor/k8s.io/client-go/listers/batch/v1beta1/BUILD deleted file mode 100644 index 0ae1a2eda..000000000 --- a/vendor/k8s.io/client-go/listers/batch/v1beta1/BUILD +++ /dev/null @@ -1,34 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "cronjob.go", - "expansion_generated.go", - ], - importpath = "k8s.io/client-go/listers/batch/v1beta1", - deps = [ - "//vendor/k8s.io/api/batch/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/listers/batch/v1beta1/cronjob.go b/vendor/k8s.io/client-go/listers/batch/v1beta1/cronjob.go index 93f197986..521378ebf 100644 --- a/vendor/k8s.io/client-go/listers/batch/v1beta1/cronjob.go +++ b/vendor/k8s.io/client-go/listers/batch/v1beta1/cronjob.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/batch/v1beta1/expansion_generated.go b/vendor/k8s.io/client-go/listers/batch/v1beta1/expansion_generated.go index 1d6cc198a..be2742ef6 100644 --- a/vendor/k8s.io/client-go/listers/batch/v1beta1/expansion_generated.go +++ b/vendor/k8s.io/client-go/listers/batch/v1beta1/expansion_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/batch/v2alpha1/BUILD b/vendor/k8s.io/client-go/listers/batch/v2alpha1/BUILD deleted file mode 100644 index 92220512e..000000000 --- a/vendor/k8s.io/client-go/listers/batch/v2alpha1/BUILD +++ /dev/null @@ -1,34 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "cronjob.go", - "expansion_generated.go", - ], - importpath = "k8s.io/client-go/listers/batch/v2alpha1", - deps = [ - "//vendor/k8s.io/api/batch/v2alpha1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/listers/batch/v2alpha1/cronjob.go b/vendor/k8s.io/client-go/listers/batch/v2alpha1/cronjob.go index 6af5f1457..2623f1959 100644 --- a/vendor/k8s.io/client-go/listers/batch/v2alpha1/cronjob.go +++ b/vendor/k8s.io/client-go/listers/batch/v2alpha1/cronjob.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/batch/v2alpha1/expansion_generated.go b/vendor/k8s.io/client-go/listers/batch/v2alpha1/expansion_generated.go index 11f6c3471..a30c7a619 100644 --- a/vendor/k8s.io/client-go/listers/batch/v2alpha1/expansion_generated.go +++ b/vendor/k8s.io/client-go/listers/batch/v2alpha1/expansion_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/certificates/v1beta1/BUILD b/vendor/k8s.io/client-go/listers/certificates/v1beta1/BUILD deleted file mode 100644 index b7ca4270c..000000000 --- a/vendor/k8s.io/client-go/listers/certificates/v1beta1/BUILD +++ /dev/null @@ -1,34 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "certificatesigningrequest.go", - "expansion_generated.go", - ], - importpath = "k8s.io/client-go/listers/certificates/v1beta1", - deps = [ - "//vendor/k8s.io/api/certificates/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/listers/certificates/v1beta1/certificatesigningrequest.go b/vendor/k8s.io/client-go/listers/certificates/v1beta1/certificatesigningrequest.go index a122c3660..47c282984 100644 --- a/vendor/k8s.io/client-go/listers/certificates/v1beta1/certificatesigningrequest.go +++ b/vendor/k8s.io/client-go/listers/certificates/v1beta1/certificatesigningrequest.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/certificates/v1beta1/expansion_generated.go b/vendor/k8s.io/client-go/listers/certificates/v1beta1/expansion_generated.go index 6815de7ad..68f993cd6 100644 --- a/vendor/k8s.io/client-go/listers/certificates/v1beta1/expansion_generated.go +++ b/vendor/k8s.io/client-go/listers/certificates/v1beta1/expansion_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/coordination/v1beta1/expansion_generated.go b/vendor/k8s.io/client-go/listers/coordination/v1beta1/expansion_generated.go new file mode 100644 index 000000000..dddc53107 --- /dev/null +++ b/vendor/k8s.io/client-go/listers/coordination/v1beta1/expansion_generated.go @@ -0,0 +1,27 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by lister-gen. DO NOT EDIT. + +package v1beta1 + +// LeaseListerExpansion allows custom methods to be added to +// LeaseLister. +type LeaseListerExpansion interface{} + +// LeaseNamespaceListerExpansion allows custom methods to be added to +// LeaseNamespaceLister. +type LeaseNamespaceListerExpansion interface{} diff --git a/vendor/k8s.io/client-go/listers/coordination/v1beta1/lease.go b/vendor/k8s.io/client-go/listers/coordination/v1beta1/lease.go new file mode 100644 index 000000000..0027444dc --- /dev/null +++ b/vendor/k8s.io/client-go/listers/coordination/v1beta1/lease.go @@ -0,0 +1,94 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by lister-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1beta1 "k8s.io/api/coordination/v1beta1" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" +) + +// LeaseLister helps list Leases. +type LeaseLister interface { + // List lists all Leases in the indexer. + List(selector labels.Selector) (ret []*v1beta1.Lease, err error) + // Leases returns an object that can list and get Leases. + Leases(namespace string) LeaseNamespaceLister + LeaseListerExpansion +} + +// leaseLister implements the LeaseLister interface. +type leaseLister struct { + indexer cache.Indexer +} + +// NewLeaseLister returns a new LeaseLister. +func NewLeaseLister(indexer cache.Indexer) LeaseLister { + return &leaseLister{indexer: indexer} +} + +// List lists all Leases in the indexer. +func (s *leaseLister) List(selector labels.Selector) (ret []*v1beta1.Lease, err error) { + err = cache.ListAll(s.indexer, selector, func(m interface{}) { + ret = append(ret, m.(*v1beta1.Lease)) + }) + return ret, err +} + +// Leases returns an object that can list and get Leases. +func (s *leaseLister) Leases(namespace string) LeaseNamespaceLister { + return leaseNamespaceLister{indexer: s.indexer, namespace: namespace} +} + +// LeaseNamespaceLister helps list and get Leases. +type LeaseNamespaceLister interface { + // List lists all Leases in the indexer for a given namespace. + List(selector labels.Selector) (ret []*v1beta1.Lease, err error) + // Get retrieves the Lease from the indexer for a given namespace and name. + Get(name string) (*v1beta1.Lease, error) + LeaseNamespaceListerExpansion +} + +// leaseNamespaceLister implements the LeaseNamespaceLister +// interface. +type leaseNamespaceLister struct { + indexer cache.Indexer + namespace string +} + +// List lists all Leases in the indexer for a given namespace. +func (s leaseNamespaceLister) List(selector labels.Selector) (ret []*v1beta1.Lease, err error) { + err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { + ret = append(ret, m.(*v1beta1.Lease)) + }) + return ret, err +} + +// Get retrieves the Lease from the indexer for a given namespace and name. +func (s leaseNamespaceLister) Get(name string) (*v1beta1.Lease, error) { + obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(v1beta1.Resource("lease"), name) + } + return obj.(*v1beta1.Lease), nil +} diff --git a/vendor/k8s.io/client-go/listers/core/v1/BUILD b/vendor/k8s.io/client-go/listers/core/v1/BUILD deleted file mode 100644 index 313cdc299..000000000 --- a/vendor/k8s.io/client-go/listers/core/v1/BUILD +++ /dev/null @@ -1,52 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "componentstatus.go", - "configmap.go", - "endpoints.go", - "event.go", - "expansion_generated.go", - "limitrange.go", - "namespace.go", - "node.go", - "node_expansion.go", - "persistentvolume.go", - "persistentvolumeclaim.go", - "pod.go", - "podtemplate.go", - "replicationcontroller.go", - "replicationcontroller_expansion.go", - "resourcequota.go", - "secret.go", - "service.go", - "service_expansion.go", - "serviceaccount.go", - ], - importpath = "k8s.io/client-go/listers/core/v1", - deps = [ - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/listers/core/v1/componentstatus.go b/vendor/k8s.io/client-go/listers/core/v1/componentstatus.go index 82fbedac2..23d070810 100644 --- a/vendor/k8s.io/client-go/listers/core/v1/componentstatus.go +++ b/vendor/k8s.io/client-go/listers/core/v1/componentstatus.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/core/v1/configmap.go b/vendor/k8s.io/client-go/listers/core/v1/configmap.go index fc927ab2c..55d7cd4d3 100644 --- a/vendor/k8s.io/client-go/listers/core/v1/configmap.go +++ b/vendor/k8s.io/client-go/listers/core/v1/configmap.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/core/v1/endpoints.go b/vendor/k8s.io/client-go/listers/core/v1/endpoints.go index 7799562d7..ac2fdfc57 100644 --- a/vendor/k8s.io/client-go/listers/core/v1/endpoints.go +++ b/vendor/k8s.io/client-go/listers/core/v1/endpoints.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/core/v1/event.go b/vendor/k8s.io/client-go/listers/core/v1/event.go index 738e333db..a9d2db01a 100644 --- a/vendor/k8s.io/client-go/listers/core/v1/event.go +++ b/vendor/k8s.io/client-go/listers/core/v1/event.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/core/v1/expansion_generated.go b/vendor/k8s.io/client-go/listers/core/v1/expansion_generated.go index b8b985ce0..fac0221b8 100644 --- a/vendor/k8s.io/client-go/listers/core/v1/expansion_generated.go +++ b/vendor/k8s.io/client-go/listers/core/v1/expansion_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/core/v1/limitrange.go b/vendor/k8s.io/client-go/listers/core/v1/limitrange.go index 4ee02634d..c773c433e 100644 --- a/vendor/k8s.io/client-go/listers/core/v1/limitrange.go +++ b/vendor/k8s.io/client-go/listers/core/v1/limitrange.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/core/v1/namespace.go b/vendor/k8s.io/client-go/listers/core/v1/namespace.go index b819d741e..6a17d0457 100644 --- a/vendor/k8s.io/client-go/listers/core/v1/namespace.go +++ b/vendor/k8s.io/client-go/listers/core/v1/namespace.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/core/v1/node.go b/vendor/k8s.io/client-go/listers/core/v1/node.go index 21a8a0675..b568ebe47 100644 --- a/vendor/k8s.io/client-go/listers/core/v1/node.go +++ b/vendor/k8s.io/client-go/listers/core/v1/node.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/core/v1/persistentvolume.go b/vendor/k8s.io/client-go/listers/core/v1/persistentvolume.go index a88dbd0c0..1d7c6ca76 100644 --- a/vendor/k8s.io/client-go/listers/core/v1/persistentvolume.go +++ b/vendor/k8s.io/client-go/listers/core/v1/persistentvolume.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/core/v1/persistentvolumeclaim.go b/vendor/k8s.io/client-go/listers/core/v1/persistentvolumeclaim.go index 8c3d5f566..501a38c43 100644 --- a/vendor/k8s.io/client-go/listers/core/v1/persistentvolumeclaim.go +++ b/vendor/k8s.io/client-go/listers/core/v1/persistentvolumeclaim.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/core/v1/pod.go b/vendor/k8s.io/client-go/listers/core/v1/pod.go index d3ce8ab32..442f8c55f 100644 --- a/vendor/k8s.io/client-go/listers/core/v1/pod.go +++ b/vendor/k8s.io/client-go/listers/core/v1/pod.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/core/v1/podtemplate.go b/vendor/k8s.io/client-go/listers/core/v1/podtemplate.go index 91c2a4661..9a17f820c 100644 --- a/vendor/k8s.io/client-go/listers/core/v1/podtemplate.go +++ b/vendor/k8s.io/client-go/listers/core/v1/podtemplate.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/core/v1/replicationcontroller.go b/vendor/k8s.io/client-go/listers/core/v1/replicationcontroller.go index ee00a465c..8b17aa2c4 100644 --- a/vendor/k8s.io/client-go/listers/core/v1/replicationcontroller.go +++ b/vendor/k8s.io/client-go/listers/core/v1/replicationcontroller.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/core/v1/resourcequota.go b/vendor/k8s.io/client-go/listers/core/v1/resourcequota.go index fd3119d45..f5b7030cc 100644 --- a/vendor/k8s.io/client-go/listers/core/v1/resourcequota.go +++ b/vendor/k8s.io/client-go/listers/core/v1/resourcequota.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/core/v1/secret.go b/vendor/k8s.io/client-go/listers/core/v1/secret.go index f8c2b11e1..e9ef24934 100644 --- a/vendor/k8s.io/client-go/listers/core/v1/secret.go +++ b/vendor/k8s.io/client-go/listers/core/v1/secret.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/core/v1/service.go b/vendor/k8s.io/client-go/listers/core/v1/service.go index d872540b3..3b5941acb 100644 --- a/vendor/k8s.io/client-go/listers/core/v1/service.go +++ b/vendor/k8s.io/client-go/listers/core/v1/service.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/core/v1/serviceaccount.go b/vendor/k8s.io/client-go/listers/core/v1/serviceaccount.go index 9973af66b..8b94cf594 100644 --- a/vendor/k8s.io/client-go/listers/core/v1/serviceaccount.go +++ b/vendor/k8s.io/client-go/listers/core/v1/serviceaccount.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/events/v1beta1/BUILD b/vendor/k8s.io/client-go/listers/events/v1beta1/BUILD deleted file mode 100644 index f4ea35d4a..000000000 --- a/vendor/k8s.io/client-go/listers/events/v1beta1/BUILD +++ /dev/null @@ -1,31 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "event.go", - "expansion_generated.go", - ], - importpath = "k8s.io/client-go/listers/events/v1beta1", - visibility = ["//visibility:public"], - deps = [ - "//vendor/k8s.io/api/events/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/client-go/listers/events/v1beta1/event.go b/vendor/k8s.io/client-go/listers/events/v1beta1/event.go index c52afd091..4a5bc3997 100644 --- a/vendor/k8s.io/client-go/listers/events/v1beta1/event.go +++ b/vendor/k8s.io/client-go/listers/events/v1beta1/event.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/events/v1beta1/expansion_generated.go b/vendor/k8s.io/client-go/listers/events/v1beta1/expansion_generated.go index 9971dd5dd..d311691d9 100644 --- a/vendor/k8s.io/client-go/listers/events/v1beta1/expansion_generated.go +++ b/vendor/k8s.io/client-go/listers/events/v1beta1/expansion_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/extensions/v1beta1/BUILD b/vendor/k8s.io/client-go/listers/extensions/v1beta1/BUILD deleted file mode 100644 index 49b895c3e..000000000 --- a/vendor/k8s.io/client-go/listers/extensions/v1beta1/BUILD +++ /dev/null @@ -1,60 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_library( - name = "go_default_library", - srcs = [ - "daemonset.go", - "daemonset_expansion.go", - "deployment.go", - "deployment_expansion.go", - "expansion_generated.go", - "ingress.go", - "podsecuritypolicy.go", - "replicaset.go", - "replicaset_expansion.go", - "scale.go", - ], - importpath = "k8s.io/client-go/listers/extensions/v1beta1", - deps = [ - "//vendor/k8s.io/api/apps/v1beta1:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -go_test( - name = "go_default_test", - srcs = ["daemonset_expansion_test.go"], - embed = [":go_default_library"], - deps = [ - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/listers/extensions/v1beta1/daemonset.go b/vendor/k8s.io/client-go/listers/extensions/v1beta1/daemonset.go index b63c32b97..a7bb6657a 100644 --- a/vendor/k8s.io/client-go/listers/extensions/v1beta1/daemonset.go +++ b/vendor/k8s.io/client-go/listers/extensions/v1beta1/daemonset.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/extensions/v1beta1/deployment.go b/vendor/k8s.io/client-go/listers/extensions/v1beta1/deployment.go index ea5168fef..13e307189 100644 --- a/vendor/k8s.io/client-go/listers/extensions/v1beta1/deployment.go +++ b/vendor/k8s.io/client-go/listers/extensions/v1beta1/deployment.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/extensions/v1beta1/expansion_generated.go b/vendor/k8s.io/client-go/listers/extensions/v1beta1/expansion_generated.go index 87c3cbe3b..d5c2a7a7d 100644 --- a/vendor/k8s.io/client-go/listers/extensions/v1beta1/expansion_generated.go +++ b/vendor/k8s.io/client-go/listers/extensions/v1beta1/expansion_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -29,11 +29,3 @@ type IngressNamespaceListerExpansion interface{} // PodSecurityPolicyListerExpansion allows custom methods to be added to // PodSecurityPolicyLister. type PodSecurityPolicyListerExpansion interface{} - -// ScaleListerExpansion allows custom methods to be added to -// ScaleLister. -type ScaleListerExpansion interface{} - -// ScaleNamespaceListerExpansion allows custom methods to be added to -// ScaleNamespaceLister. -type ScaleNamespaceListerExpansion interface{} diff --git a/vendor/k8s.io/client-go/listers/extensions/v1beta1/ingress.go b/vendor/k8s.io/client-go/listers/extensions/v1beta1/ingress.go index 1f9e34d17..1bc33ede2 100644 --- a/vendor/k8s.io/client-go/listers/extensions/v1beta1/ingress.go +++ b/vendor/k8s.io/client-go/listers/extensions/v1beta1/ingress.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/extensions/v1beta1/podsecuritypolicy.go b/vendor/k8s.io/client-go/listers/extensions/v1beta1/podsecuritypolicy.go index fadd212f1..1298e87ba 100644 --- a/vendor/k8s.io/client-go/listers/extensions/v1beta1/podsecuritypolicy.go +++ b/vendor/k8s.io/client-go/listers/extensions/v1beta1/podsecuritypolicy.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/extensions/v1beta1/replicaset.go b/vendor/k8s.io/client-go/listers/extensions/v1beta1/replicaset.go index 930db4480..d3e741a86 100644 --- a/vendor/k8s.io/client-go/listers/extensions/v1beta1/replicaset.go +++ b/vendor/k8s.io/client-go/listers/extensions/v1beta1/replicaset.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/extensions/v1beta1/scale.go b/vendor/k8s.io/client-go/listers/extensions/v1beta1/scale.go deleted file mode 100644 index 67d45e328..000000000 --- a/vendor/k8s.io/client-go/listers/extensions/v1beta1/scale.go +++ /dev/null @@ -1,94 +0,0 @@ -/* -Copyright 2018 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by lister-gen. DO NOT EDIT. - -package v1beta1 - -import ( - v1beta1 "k8s.io/api/extensions/v1beta1" - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" -) - -// ScaleLister helps list Scales. -type ScaleLister interface { - // List lists all Scales in the indexer. - List(selector labels.Selector) (ret []*v1beta1.Scale, err error) - // Scales returns an object that can list and get Scales. - Scales(namespace string) ScaleNamespaceLister - ScaleListerExpansion -} - -// scaleLister implements the ScaleLister interface. -type scaleLister struct { - indexer cache.Indexer -} - -// NewScaleLister returns a new ScaleLister. -func NewScaleLister(indexer cache.Indexer) ScaleLister { - return &scaleLister{indexer: indexer} -} - -// List lists all Scales in the indexer. -func (s *scaleLister) List(selector labels.Selector) (ret []*v1beta1.Scale, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*v1beta1.Scale)) - }) - return ret, err -} - -// Scales returns an object that can list and get Scales. -func (s *scaleLister) Scales(namespace string) ScaleNamespaceLister { - return scaleNamespaceLister{indexer: s.indexer, namespace: namespace} -} - -// ScaleNamespaceLister helps list and get Scales. -type ScaleNamespaceLister interface { - // List lists all Scales in the indexer for a given namespace. - List(selector labels.Selector) (ret []*v1beta1.Scale, err error) - // Get retrieves the Scale from the indexer for a given namespace and name. - Get(name string) (*v1beta1.Scale, error) - ScaleNamespaceListerExpansion -} - -// scaleNamespaceLister implements the ScaleNamespaceLister -// interface. -type scaleNamespaceLister struct { - indexer cache.Indexer - namespace string -} - -// List lists all Scales in the indexer for a given namespace. -func (s scaleNamespaceLister) List(selector labels.Selector) (ret []*v1beta1.Scale, err error) { - err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { - ret = append(ret, m.(*v1beta1.Scale)) - }) - return ret, err -} - -// Get retrieves the Scale from the indexer for a given namespace and name. -func (s scaleNamespaceLister) Get(name string) (*v1beta1.Scale, error) { - obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(v1beta1.Resource("scale"), name) - } - return obj.(*v1beta1.Scale), nil -} diff --git a/vendor/k8s.io/client-go/listers/imagepolicy/v1alpha1/BUILD b/vendor/k8s.io/client-go/listers/imagepolicy/v1alpha1/BUILD deleted file mode 100644 index da825e6a5..000000000 --- a/vendor/k8s.io/client-go/listers/imagepolicy/v1alpha1/BUILD +++ /dev/null @@ -1,34 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "expansion_generated.go", - "imagereview.go", - ], - importpath = "k8s.io/client-go/listers/imagepolicy/v1alpha1", - deps = [ - "//vendor/k8s.io/api/imagepolicy/v1alpha1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/listers/imagepolicy/v1alpha1/expansion_generated.go b/vendor/k8s.io/client-go/listers/imagepolicy/v1alpha1/expansion_generated.go index 1529fcf3f..9cb13f792 100644 --- a/vendor/k8s.io/client-go/listers/imagepolicy/v1alpha1/expansion_generated.go +++ b/vendor/k8s.io/client-go/listers/imagepolicy/v1alpha1/expansion_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/imagepolicy/v1alpha1/imagereview.go b/vendor/k8s.io/client-go/listers/imagepolicy/v1alpha1/imagereview.go index cdb046cf9..722e456e7 100644 --- a/vendor/k8s.io/client-go/listers/imagepolicy/v1alpha1/imagereview.go +++ b/vendor/k8s.io/client-go/listers/imagepolicy/v1alpha1/imagereview.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/networking/v1/BUILD b/vendor/k8s.io/client-go/listers/networking/v1/BUILD deleted file mode 100644 index 64dc638ba..000000000 --- a/vendor/k8s.io/client-go/listers/networking/v1/BUILD +++ /dev/null @@ -1,34 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "expansion_generated.go", - "networkpolicy.go", - ], - importpath = "k8s.io/client-go/listers/networking/v1", - deps = [ - "//vendor/k8s.io/api/networking/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/listers/networking/v1/expansion_generated.go b/vendor/k8s.io/client-go/listers/networking/v1/expansion_generated.go index 458a1d249..e03a52385 100644 --- a/vendor/k8s.io/client-go/listers/networking/v1/expansion_generated.go +++ b/vendor/k8s.io/client-go/listers/networking/v1/expansion_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/networking/v1/networkpolicy.go b/vendor/k8s.io/client-go/listers/networking/v1/networkpolicy.go index b70adedf1..e5d997747 100644 --- a/vendor/k8s.io/client-go/listers/networking/v1/networkpolicy.go +++ b/vendor/k8s.io/client-go/listers/networking/v1/networkpolicy.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/policy/v1beta1/BUILD b/vendor/k8s.io/client-go/listers/policy/v1beta1/BUILD deleted file mode 100644 index 2c5f33df4..000000000 --- a/vendor/k8s.io/client-go/listers/policy/v1beta1/BUILD +++ /dev/null @@ -1,40 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "eviction.go", - "expansion_generated.go", - "poddisruptionbudget.go", - "poddisruptionbudget_expansion.go", - "podsecuritypolicy.go", - ], - importpath = "k8s.io/client-go/listers/policy/v1beta1", - deps = [ - "//vendor/github.com/golang/glog:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/api/policy/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/listers/policy/v1beta1/eviction.go b/vendor/k8s.io/client-go/listers/policy/v1beta1/eviction.go index 29c454e2a..6e27f5fdc 100644 --- a/vendor/k8s.io/client-go/listers/policy/v1beta1/eviction.go +++ b/vendor/k8s.io/client-go/listers/policy/v1beta1/eviction.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/policy/v1beta1/expansion_generated.go b/vendor/k8s.io/client-go/listers/policy/v1beta1/expansion_generated.go index 3e63c2c9c..9a005f20b 100644 --- a/vendor/k8s.io/client-go/listers/policy/v1beta1/expansion_generated.go +++ b/vendor/k8s.io/client-go/listers/policy/v1beta1/expansion_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/policy/v1beta1/poddisruptionbudget.go b/vendor/k8s.io/client-go/listers/policy/v1beta1/poddisruptionbudget.go index 7304f36b2..b1f83ee16 100644 --- a/vendor/k8s.io/client-go/listers/policy/v1beta1/poddisruptionbudget.go +++ b/vendor/k8s.io/client-go/listers/policy/v1beta1/poddisruptionbudget.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/policy/v1beta1/poddisruptionbudget_expansion.go b/vendor/k8s.io/client-go/listers/policy/v1beta1/poddisruptionbudget_expansion.go index c0ab9d3ed..d07d11a98 100644 --- a/vendor/k8s.io/client-go/listers/policy/v1beta1/poddisruptionbudget_expansion.go +++ b/vendor/k8s.io/client-go/listers/policy/v1beta1/poddisruptionbudget_expansion.go @@ -19,11 +19,11 @@ package v1beta1 import ( "fmt" - "github.com/golang/glog" "k8s.io/api/core/v1" policy "k8s.io/api/policy/v1beta1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" + "k8s.io/klog" ) // PodDisruptionBudgetListerExpansion allows custom methods to be added to @@ -54,7 +54,7 @@ func (s *podDisruptionBudgetLister) GetPodPodDisruptionBudgets(pod *v1.Pod) ([]* pdb := list[i] selector, err = metav1.LabelSelectorAsSelector(pdb.Spec.Selector) if err != nil { - glog.Warningf("invalid selector: %v", err) + klog.Warningf("invalid selector: %v", err) // TODO(mml): add an event to the PDB continue } diff --git a/vendor/k8s.io/client-go/listers/policy/v1beta1/podsecuritypolicy.go b/vendor/k8s.io/client-go/listers/policy/v1beta1/podsecuritypolicy.go index d80f5c56e..e943d3a05 100644 --- a/vendor/k8s.io/client-go/listers/policy/v1beta1/podsecuritypolicy.go +++ b/vendor/k8s.io/client-go/listers/policy/v1beta1/podsecuritypolicy.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/rbac/OWNERS b/vendor/k8s.io/client-go/listers/rbac/OWNERS new file mode 100644 index 000000000..cd0d70a0f --- /dev/null +++ b/vendor/k8s.io/client-go/listers/rbac/OWNERS @@ -0,0 +1,7 @@ +approvers: +- sig-auth-authorizers-approvers +reviewers: +- sig-auth-authorizers-reviewers +labels: +- sig/auth + diff --git a/vendor/k8s.io/client-go/listers/rbac/v1/BUILD b/vendor/k8s.io/client-go/listers/rbac/v1/BUILD deleted file mode 100644 index 9facdc04d..000000000 --- a/vendor/k8s.io/client-go/listers/rbac/v1/BUILD +++ /dev/null @@ -1,37 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "clusterrole.go", - "clusterrolebinding.go", - "expansion_generated.go", - "role.go", - "rolebinding.go", - ], - importpath = "k8s.io/client-go/listers/rbac/v1", - deps = [ - "//vendor/k8s.io/api/rbac/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/listers/rbac/v1/clusterrole.go b/vendor/k8s.io/client-go/listers/rbac/v1/clusterrole.go index eb1d87006..a612dbeab 100644 --- a/vendor/k8s.io/client-go/listers/rbac/v1/clusterrole.go +++ b/vendor/k8s.io/client-go/listers/rbac/v1/clusterrole.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/rbac/v1/clusterrolebinding.go b/vendor/k8s.io/client-go/listers/rbac/v1/clusterrolebinding.go index a22d6025e..2c5958ff9 100644 --- a/vendor/k8s.io/client-go/listers/rbac/v1/clusterrolebinding.go +++ b/vendor/k8s.io/client-go/listers/rbac/v1/clusterrolebinding.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/rbac/v1/expansion_generated.go b/vendor/k8s.io/client-go/listers/rbac/v1/expansion_generated.go index 967ebdd84..0eb2a6d11 100644 --- a/vendor/k8s.io/client-go/listers/rbac/v1/expansion_generated.go +++ b/vendor/k8s.io/client-go/listers/rbac/v1/expansion_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/rbac/v1/role.go b/vendor/k8s.io/client-go/listers/rbac/v1/role.go index b4649c2c3..9a9d98773 100644 --- a/vendor/k8s.io/client-go/listers/rbac/v1/role.go +++ b/vendor/k8s.io/client-go/listers/rbac/v1/role.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/rbac/v1/rolebinding.go b/vendor/k8s.io/client-go/listers/rbac/v1/rolebinding.go index 8dc0968bb..85a69315a 100644 --- a/vendor/k8s.io/client-go/listers/rbac/v1/rolebinding.go +++ b/vendor/k8s.io/client-go/listers/rbac/v1/rolebinding.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/rbac/v1alpha1/BUILD b/vendor/k8s.io/client-go/listers/rbac/v1alpha1/BUILD deleted file mode 100644 index 917c535fc..000000000 --- a/vendor/k8s.io/client-go/listers/rbac/v1alpha1/BUILD +++ /dev/null @@ -1,37 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "clusterrole.go", - "clusterrolebinding.go", - "expansion_generated.go", - "role.go", - "rolebinding.go", - ], - importpath = "k8s.io/client-go/listers/rbac/v1alpha1", - deps = [ - "//vendor/k8s.io/api/rbac/v1alpha1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/listers/rbac/v1alpha1/clusterrole.go b/vendor/k8s.io/client-go/listers/rbac/v1alpha1/clusterrole.go index 302ca29d8..f8c50f65b 100644 --- a/vendor/k8s.io/client-go/listers/rbac/v1alpha1/clusterrole.go +++ b/vendor/k8s.io/client-go/listers/rbac/v1alpha1/clusterrole.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/rbac/v1alpha1/clusterrolebinding.go b/vendor/k8s.io/client-go/listers/rbac/v1alpha1/clusterrolebinding.go index 91ba54c23..5769ed0e6 100644 --- a/vendor/k8s.io/client-go/listers/rbac/v1alpha1/clusterrolebinding.go +++ b/vendor/k8s.io/client-go/listers/rbac/v1alpha1/clusterrolebinding.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/rbac/v1alpha1/expansion_generated.go b/vendor/k8s.io/client-go/listers/rbac/v1alpha1/expansion_generated.go index 737ba6637..2d4ad1756 100644 --- a/vendor/k8s.io/client-go/listers/rbac/v1alpha1/expansion_generated.go +++ b/vendor/k8s.io/client-go/listers/rbac/v1alpha1/expansion_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/rbac/v1alpha1/role.go b/vendor/k8s.io/client-go/listers/rbac/v1alpha1/role.go index cf874f56c..c337b589b 100644 --- a/vendor/k8s.io/client-go/listers/rbac/v1alpha1/role.go +++ b/vendor/k8s.io/client-go/listers/rbac/v1alpha1/role.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/rbac/v1alpha1/rolebinding.go b/vendor/k8s.io/client-go/listers/rbac/v1alpha1/rolebinding.go index 5e76ab42f..4e517f4d6 100644 --- a/vendor/k8s.io/client-go/listers/rbac/v1alpha1/rolebinding.go +++ b/vendor/k8s.io/client-go/listers/rbac/v1alpha1/rolebinding.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/rbac/v1beta1/BUILD b/vendor/k8s.io/client-go/listers/rbac/v1beta1/BUILD deleted file mode 100644 index bde3d52e8..000000000 --- a/vendor/k8s.io/client-go/listers/rbac/v1beta1/BUILD +++ /dev/null @@ -1,37 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "clusterrole.go", - "clusterrolebinding.go", - "expansion_generated.go", - "role.go", - "rolebinding.go", - ], - importpath = "k8s.io/client-go/listers/rbac/v1beta1", - deps = [ - "//vendor/k8s.io/api/rbac/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/listers/rbac/v1beta1/clusterrole.go b/vendor/k8s.io/client-go/listers/rbac/v1beta1/clusterrole.go index be7f2df6a..01356f4b2 100644 --- a/vendor/k8s.io/client-go/listers/rbac/v1beta1/clusterrole.go +++ b/vendor/k8s.io/client-go/listers/rbac/v1beta1/clusterrole.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/rbac/v1beta1/clusterrolebinding.go b/vendor/k8s.io/client-go/listers/rbac/v1beta1/clusterrolebinding.go index 09d65be76..6d3f14338 100644 --- a/vendor/k8s.io/client-go/listers/rbac/v1beta1/clusterrolebinding.go +++ b/vendor/k8s.io/client-go/listers/rbac/v1beta1/clusterrolebinding.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/rbac/v1beta1/expansion_generated.go b/vendor/k8s.io/client-go/listers/rbac/v1beta1/expansion_generated.go index 8da573661..51f674bd0 100644 --- a/vendor/k8s.io/client-go/listers/rbac/v1beta1/expansion_generated.go +++ b/vendor/k8s.io/client-go/listers/rbac/v1beta1/expansion_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/rbac/v1beta1/role.go b/vendor/k8s.io/client-go/listers/rbac/v1beta1/role.go index e12039dbf..c946c43a7 100644 --- a/vendor/k8s.io/client-go/listers/rbac/v1beta1/role.go +++ b/vendor/k8s.io/client-go/listers/rbac/v1beta1/role.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/rbac/v1beta1/rolebinding.go b/vendor/k8s.io/client-go/listers/rbac/v1beta1/rolebinding.go index 10cb23cd3..0eec45bde 100644 --- a/vendor/k8s.io/client-go/listers/rbac/v1beta1/rolebinding.go +++ b/vendor/k8s.io/client-go/listers/rbac/v1beta1/rolebinding.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/scheduling/v1alpha1/BUILD b/vendor/k8s.io/client-go/listers/scheduling/v1alpha1/BUILD deleted file mode 100644 index cf60e8132..000000000 --- a/vendor/k8s.io/client-go/listers/scheduling/v1alpha1/BUILD +++ /dev/null @@ -1,34 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "expansion_generated.go", - "priorityclass.go", - ], - importpath = "k8s.io/client-go/listers/scheduling/v1alpha1", - deps = [ - "//vendor/k8s.io/api/scheduling/v1alpha1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/listers/scheduling/v1alpha1/expansion_generated.go b/vendor/k8s.io/client-go/listers/scheduling/v1alpha1/expansion_generated.go index 00b662888..bde8b6206 100644 --- a/vendor/k8s.io/client-go/listers/scheduling/v1alpha1/expansion_generated.go +++ b/vendor/k8s.io/client-go/listers/scheduling/v1alpha1/expansion_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/scheduling/v1alpha1/priorityclass.go b/vendor/k8s.io/client-go/listers/scheduling/v1alpha1/priorityclass.go index fb7f6007c..a3059c94d 100644 --- a/vendor/k8s.io/client-go/listers/scheduling/v1alpha1/priorityclass.go +++ b/vendor/k8s.io/client-go/listers/scheduling/v1alpha1/priorityclass.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/scheduling/v1beta1/expansion_generated.go b/vendor/k8s.io/client-go/listers/scheduling/v1beta1/expansion_generated.go new file mode 100644 index 000000000..b806e8cf8 --- /dev/null +++ b/vendor/k8s.io/client-go/listers/scheduling/v1beta1/expansion_generated.go @@ -0,0 +1,23 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by lister-gen. DO NOT EDIT. + +package v1beta1 + +// PriorityClassListerExpansion allows custom methods to be added to +// PriorityClassLister. +type PriorityClassListerExpansion interface{} diff --git a/vendor/k8s.io/client-go/listers/scheduling/v1beta1/priorityclass.go b/vendor/k8s.io/client-go/listers/scheduling/v1beta1/priorityclass.go new file mode 100644 index 000000000..9d0606392 --- /dev/null +++ b/vendor/k8s.io/client-go/listers/scheduling/v1beta1/priorityclass.go @@ -0,0 +1,65 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by lister-gen. DO NOT EDIT. + +package v1beta1 + +import ( + v1beta1 "k8s.io/api/scheduling/v1beta1" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" +) + +// PriorityClassLister helps list PriorityClasses. +type PriorityClassLister interface { + // List lists all PriorityClasses in the indexer. + List(selector labels.Selector) (ret []*v1beta1.PriorityClass, err error) + // Get retrieves the PriorityClass from the index for a given name. + Get(name string) (*v1beta1.PriorityClass, error) + PriorityClassListerExpansion +} + +// priorityClassLister implements the PriorityClassLister interface. +type priorityClassLister struct { + indexer cache.Indexer +} + +// NewPriorityClassLister returns a new PriorityClassLister. +func NewPriorityClassLister(indexer cache.Indexer) PriorityClassLister { + return &priorityClassLister{indexer: indexer} +} + +// List lists all PriorityClasses in the indexer. +func (s *priorityClassLister) List(selector labels.Selector) (ret []*v1beta1.PriorityClass, err error) { + err = cache.ListAll(s.indexer, selector, func(m interface{}) { + ret = append(ret, m.(*v1beta1.PriorityClass)) + }) + return ret, err +} + +// Get retrieves the PriorityClass from the index for a given name. +func (s *priorityClassLister) Get(name string) (*v1beta1.PriorityClass, error) { + obj, exists, err := s.indexer.GetByKey(name) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(v1beta1.Resource("priorityclass"), name) + } + return obj.(*v1beta1.PriorityClass), nil +} diff --git a/vendor/k8s.io/client-go/listers/settings/v1alpha1/BUILD b/vendor/k8s.io/client-go/listers/settings/v1alpha1/BUILD deleted file mode 100644 index 9979b5e3c..000000000 --- a/vendor/k8s.io/client-go/listers/settings/v1alpha1/BUILD +++ /dev/null @@ -1,34 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "expansion_generated.go", - "podpreset.go", - ], - importpath = "k8s.io/client-go/listers/settings/v1alpha1", - deps = [ - "//vendor/k8s.io/api/settings/v1alpha1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/listers/settings/v1alpha1/expansion_generated.go b/vendor/k8s.io/client-go/listers/settings/v1alpha1/expansion_generated.go index 72558897b..fba210343 100644 --- a/vendor/k8s.io/client-go/listers/settings/v1alpha1/expansion_generated.go +++ b/vendor/k8s.io/client-go/listers/settings/v1alpha1/expansion_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/settings/v1alpha1/podpreset.go b/vendor/k8s.io/client-go/listers/settings/v1alpha1/podpreset.go index d30036962..c862e7d7d 100644 --- a/vendor/k8s.io/client-go/listers/settings/v1alpha1/podpreset.go +++ b/vendor/k8s.io/client-go/listers/settings/v1alpha1/podpreset.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/storage/v1/BUILD b/vendor/k8s.io/client-go/listers/storage/v1/BUILD deleted file mode 100644 index b90f06bb7..000000000 --- a/vendor/k8s.io/client-go/listers/storage/v1/BUILD +++ /dev/null @@ -1,34 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "expansion_generated.go", - "storageclass.go", - ], - importpath = "k8s.io/client-go/listers/storage/v1", - deps = [ - "//vendor/k8s.io/api/storage/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/listers/storage/v1/expansion_generated.go b/vendor/k8s.io/client-go/listers/storage/v1/expansion_generated.go index 49e290f4c..9d7d88872 100644 --- a/vendor/k8s.io/client-go/listers/storage/v1/expansion_generated.go +++ b/vendor/k8s.io/client-go/listers/storage/v1/expansion_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21,3 +21,7 @@ package v1 // StorageClassListerExpansion allows custom methods to be added to // StorageClassLister. type StorageClassListerExpansion interface{} + +// VolumeAttachmentListerExpansion allows custom methods to be added to +// VolumeAttachmentLister. +type VolumeAttachmentListerExpansion interface{} diff --git a/vendor/k8s.io/client-go/listers/storage/v1/storageclass.go b/vendor/k8s.io/client-go/listers/storage/v1/storageclass.go index 5b20f6ab5..13e8536b4 100644 --- a/vendor/k8s.io/client-go/listers/storage/v1/storageclass.go +++ b/vendor/k8s.io/client-go/listers/storage/v1/storageclass.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/storage/v1/volumeattachment.go b/vendor/k8s.io/client-go/listers/storage/v1/volumeattachment.go new file mode 100644 index 000000000..14888812e --- /dev/null +++ b/vendor/k8s.io/client-go/listers/storage/v1/volumeattachment.go @@ -0,0 +1,65 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by lister-gen. DO NOT EDIT. + +package v1 + +import ( + v1 "k8s.io/api/storage/v1" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" +) + +// VolumeAttachmentLister helps list VolumeAttachments. +type VolumeAttachmentLister interface { + // List lists all VolumeAttachments in the indexer. + List(selector labels.Selector) (ret []*v1.VolumeAttachment, err error) + // Get retrieves the VolumeAttachment from the index for a given name. + Get(name string) (*v1.VolumeAttachment, error) + VolumeAttachmentListerExpansion +} + +// volumeAttachmentLister implements the VolumeAttachmentLister interface. +type volumeAttachmentLister struct { + indexer cache.Indexer +} + +// NewVolumeAttachmentLister returns a new VolumeAttachmentLister. +func NewVolumeAttachmentLister(indexer cache.Indexer) VolumeAttachmentLister { + return &volumeAttachmentLister{indexer: indexer} +} + +// List lists all VolumeAttachments in the indexer. +func (s *volumeAttachmentLister) List(selector labels.Selector) (ret []*v1.VolumeAttachment, err error) { + err = cache.ListAll(s.indexer, selector, func(m interface{}) { + ret = append(ret, m.(*v1.VolumeAttachment)) + }) + return ret, err +} + +// Get retrieves the VolumeAttachment from the index for a given name. +func (s *volumeAttachmentLister) Get(name string) (*v1.VolumeAttachment, error) { + obj, exists, err := s.indexer.GetByKey(name) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(v1.Resource("volumeattachment"), name) + } + return obj.(*v1.VolumeAttachment), nil +} diff --git a/vendor/k8s.io/client-go/listers/storage/v1alpha1/BUILD b/vendor/k8s.io/client-go/listers/storage/v1alpha1/BUILD deleted file mode 100644 index 50592d670..000000000 --- a/vendor/k8s.io/client-go/listers/storage/v1alpha1/BUILD +++ /dev/null @@ -1,31 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "expansion_generated.go", - "volumeattachment.go", - ], - importpath = "k8s.io/client-go/listers/storage/v1alpha1", - visibility = ["//visibility:public"], - deps = [ - "//vendor/k8s.io/api/storage/v1alpha1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/client-go/listers/storage/v1alpha1/expansion_generated.go b/vendor/k8s.io/client-go/listers/storage/v1alpha1/expansion_generated.go index 2fc6add1d..7ca765622 100644 --- a/vendor/k8s.io/client-go/listers/storage/v1alpha1/expansion_generated.go +++ b/vendor/k8s.io/client-go/listers/storage/v1alpha1/expansion_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/storage/v1alpha1/volumeattachment.go b/vendor/k8s.io/client-go/listers/storage/v1alpha1/volumeattachment.go index f8d1bdb2d..7871f55e4 100644 --- a/vendor/k8s.io/client-go/listers/storage/v1alpha1/volumeattachment.go +++ b/vendor/k8s.io/client-go/listers/storage/v1alpha1/volumeattachment.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/storage/v1beta1/BUILD b/vendor/k8s.io/client-go/listers/storage/v1beta1/BUILD deleted file mode 100644 index 49d992e47..000000000 --- a/vendor/k8s.io/client-go/listers/storage/v1beta1/BUILD +++ /dev/null @@ -1,35 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "expansion_generated.go", - "storageclass.go", - "volumeattachment.go", - ], - importpath = "k8s.io/client-go/listers/storage/v1beta1", - deps = [ - "//vendor/k8s.io/api/storage/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/listers/storage/v1beta1/expansion_generated.go b/vendor/k8s.io/client-go/listers/storage/v1beta1/expansion_generated.go index 8c2dc9055..21d95620c 100644 --- a/vendor/k8s.io/client-go/listers/storage/v1beta1/expansion_generated.go +++ b/vendor/k8s.io/client-go/listers/storage/v1beta1/expansion_generated.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/storage/v1beta1/storageclass.go b/vendor/k8s.io/client-go/listers/storage/v1beta1/storageclass.go index 45afe0e77..07bc97b32 100644 --- a/vendor/k8s.io/client-go/listers/storage/v1beta1/storageclass.go +++ b/vendor/k8s.io/client-go/listers/storage/v1beta1/storageclass.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/listers/storage/v1beta1/volumeattachment.go b/vendor/k8s.io/client-go/listers/storage/v1beta1/volumeattachment.go index c9cc3984e..7193441b0 100644 --- a/vendor/k8s.io/client-go/listers/storage/v1beta1/volumeattachment.go +++ b/vendor/k8s.io/client-go/listers/storage/v1beta1/volumeattachment.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/pkg/apis/clientauthentication/OWNERS b/vendor/k8s.io/client-go/pkg/apis/clientauthentication/OWNERS new file mode 100644 index 000000000..3b7ea1b13 --- /dev/null +++ b/vendor/k8s.io/client-go/pkg/apis/clientauthentication/OWNERS @@ -0,0 +1,7 @@ +# approval on api packages bubbles to api-approvers +reviewers: +- sig-auth-authenticators-approvers +- sig-auth-authenticators-reviewers +labels: +- sig/auth + diff --git a/vendor/k8s.io/client-go/pkg/apis/clientauthentication/doc.go b/vendor/k8s.io/client-go/pkg/apis/clientauthentication/doc.go new file mode 100644 index 000000000..b99459757 --- /dev/null +++ b/vendor/k8s.io/client-go/pkg/apis/clientauthentication/doc.go @@ -0,0 +1,20 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// +k8s:deepcopy-gen=package +// +groupName=client.authentication.k8s.io + +package clientauthentication // import "k8s.io/client-go/pkg/apis/clientauthentication" diff --git a/vendor/k8s.io/client-go/pkg/apis/clientauthentication/install/install.go b/vendor/k8s.io/client-go/pkg/apis/clientauthentication/install/install.go new file mode 100644 index 000000000..1b7b5f949 --- /dev/null +++ b/vendor/k8s.io/client-go/pkg/apis/clientauthentication/install/install.go @@ -0,0 +1,33 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Package install installs the experimental API group, making it available as +// an option to all of the API encoding/decoding machinery. +package install + +import ( + "k8s.io/apimachinery/pkg/runtime" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/client-go/pkg/apis/clientauthentication" + "k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1" +) + +// Install registers the API group and adds types to a scheme +func Install(scheme *runtime.Scheme) { + utilruntime.Must(clientauthentication.AddToScheme(scheme)) + utilruntime.Must(v1alpha1.AddToScheme(scheme)) + utilruntime.Must(scheme.SetVersionPriority(v1alpha1.SchemeGroupVersion)) +} diff --git a/vendor/k8s.io/client-go/pkg/apis/clientauthentication/register.go b/vendor/k8s.io/client-go/pkg/apis/clientauthentication/register.go new file mode 100644 index 000000000..e4fbc3ea9 --- /dev/null +++ b/vendor/k8s.io/client-go/pkg/apis/clientauthentication/register.go @@ -0,0 +1,50 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package clientauthentication + +import ( + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +// GroupName is the group name use in this package +const GroupName = "client.authentication.k8s.io" + +// SchemeGroupVersion is group version used to register these objects +var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal} + +// Kind takes an unqualified kind and returns a Group qualified GroupKind +func Kind(kind string) schema.GroupKind { + return SchemeGroupVersion.WithKind(kind).GroupKind() +} + +// Resource takes an unqualified resource and returns a Group qualified GroupResource +func Resource(resource string) schema.GroupResource { + return SchemeGroupVersion.WithResource(resource).GroupResource() +} + +var ( + SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) + AddToScheme = SchemeBuilder.AddToScheme +) + +func addKnownTypes(scheme *runtime.Scheme) error { + scheme.AddKnownTypes(SchemeGroupVersion, + &ExecCredential{}, + ) + return nil +} diff --git a/vendor/k8s.io/client-go/pkg/apis/clientauthentication/types.go b/vendor/k8s.io/client-go/pkg/apis/clientauthentication/types.go new file mode 100644 index 000000000..6fb53cecf --- /dev/null +++ b/vendor/k8s.io/client-go/pkg/apis/clientauthentication/types.go @@ -0,0 +1,77 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package clientauthentication + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// ExecCredentials is used by exec-based plugins to communicate credentials to +// HTTP transports. +type ExecCredential struct { + metav1.TypeMeta + + // Spec holds information passed to the plugin by the transport. This contains + // request and runtime specific information, such as if the session is interactive. + Spec ExecCredentialSpec + + // Status is filled in by the plugin and holds the credentials that the transport + // should use to contact the API. + // +optional + Status *ExecCredentialStatus +} + +// ExecCredenitalSpec holds request and runtime specific information provided by +// the transport. +type ExecCredentialSpec struct { + // Response is populated when the transport encounters HTTP status codes, such as 401, + // suggesting previous credentials were invalid. + // +optional + Response *Response + + // Interactive is true when the transport detects the command is being called from an + // interactive prompt. + // +optional + Interactive bool +} + +// ExecCredentialStatus holds credentials for the transport to use. +type ExecCredentialStatus struct { + // ExpirationTimestamp indicates a time when the provided credentials expire. + // +optional + ExpirationTimestamp *metav1.Time + // Token is a bearer token used by the client for request authentication. + // +optional + Token string + // PEM-encoded client TLS certificate. + // +optional + ClientCertificateData string + // PEM-encoded client TLS private key. + // +optional + ClientKeyData string +} + +// Response defines metadata about a failed request, including HTTP status code and +// response headers. +type Response struct { + // Headers holds HTTP headers returned by the server. + Header map[string][]string + // Code is the HTTP status code returned by the server. + Code int32 +} diff --git a/vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1/doc.go b/vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1/doc.go new file mode 100644 index 000000000..19ab77614 --- /dev/null +++ b/vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1/doc.go @@ -0,0 +1,24 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// +k8s:deepcopy-gen=package +// +k8s:conversion-gen=k8s.io/client-go/pkg/apis/clientauthentication +// +k8s:openapi-gen=true +// +k8s:defaulter-gen=TypeMeta + +// +groupName=client.authentication.k8s.io + +package v1alpha1 // import "k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1" diff --git a/vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1/register.go b/vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1/register.go new file mode 100644 index 000000000..2acd13dea --- /dev/null +++ b/vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1/register.go @@ -0,0 +1,55 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package v1alpha1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +// GroupName is the group name use in this package +const GroupName = "client.authentication.k8s.io" + +// SchemeGroupVersion is group version used to register these objects +var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1alpha1"} + +// Resource takes an unqualified resource and returns a Group qualified GroupResource +func Resource(resource string) schema.GroupResource { + return SchemeGroupVersion.WithResource(resource).GroupResource() +} + +var ( + SchemeBuilder runtime.SchemeBuilder + localSchemeBuilder = &SchemeBuilder + AddToScheme = localSchemeBuilder.AddToScheme +) + +func init() { + // We only register manually written functions here. The registration of the + // generated functions takes place in the generated files. The separation + // makes the code compile even when the generated files are missing. + localSchemeBuilder.Register(addKnownTypes) +} + +func addKnownTypes(scheme *runtime.Scheme) error { + scheme.AddKnownTypes(SchemeGroupVersion, + &ExecCredential{}, + ) + metav1.AddToGroupVersion(scheme, SchemeGroupVersion) + return nil +} diff --git a/vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1/types.go b/vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1/types.go new file mode 100644 index 000000000..921f3a2b9 --- /dev/null +++ b/vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1/types.go @@ -0,0 +1,78 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package v1alpha1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// ExecCredentials is used by exec-based plugins to communicate credentials to +// HTTP transports. +type ExecCredential struct { + metav1.TypeMeta `json:",inline"` + + // Spec holds information passed to the plugin by the transport. This contains + // request and runtime specific information, such as if the session is interactive. + Spec ExecCredentialSpec `json:"spec,omitempty"` + + // Status is filled in by the plugin and holds the credentials that the transport + // should use to contact the API. + // +optional + Status *ExecCredentialStatus `json:"status,omitempty"` +} + +// ExecCredenitalSpec holds request and runtime specific information provided by +// the transport. +type ExecCredentialSpec struct { + // Response is populated when the transport encounters HTTP status codes, such as 401, + // suggesting previous credentials were invalid. + // +optional + Response *Response `json:"response,omitempty"` + + // Interactive is true when the transport detects the command is being called from an + // interactive prompt. + // +optional + Interactive bool `json:"interactive,omitempty"` +} + +// ExecCredentialStatus holds credentials for the transport to use. +// +// Token and ClientKeyData are sensitive fields. This data should only be +// transmitted in-memory between client and exec plugin process. Exec plugin +// itself should at least be protected via file permissions. +type ExecCredentialStatus struct { + // ExpirationTimestamp indicates a time when the provided credentials expire. + // +optional + ExpirationTimestamp *metav1.Time `json:"expirationTimestamp,omitempty"` + // Token is a bearer token used by the client for request authentication. + Token string `json:"token,omitempty"` + // PEM-encoded client TLS certificates (including intermediates, if any). + ClientCertificateData string `json:"clientCertificateData,omitempty"` + // PEM-encoded private key for the above certificate. + ClientKeyData string `json:"clientKeyData,omitempty"` +} + +// Response defines metadata about a failed request, including HTTP status code and +// response headers. +type Response struct { + // Header holds HTTP headers returned by the server. + Header map[string][]string `json:"header,omitempty"` + // Code is the HTTP status code returned by the server. + Code int32 `json:"code,omitempty"` +} diff --git a/vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1/zz_generated.conversion.go b/vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1/zz_generated.conversion.go new file mode 100644 index 000000000..461c20b29 --- /dev/null +++ b/vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1/zz_generated.conversion.go @@ -0,0 +1,176 @@ +// +build !ignore_autogenerated + +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by conversion-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + unsafe "unsafe" + + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" + clientauthentication "k8s.io/client-go/pkg/apis/clientauthentication" +) + +func init() { + localSchemeBuilder.Register(RegisterConversions) +} + +// RegisterConversions adds conversion functions to the given scheme. +// Public to allow building arbitrary schemes. +func RegisterConversions(s *runtime.Scheme) error { + if err := s.AddGeneratedConversionFunc((*ExecCredential)(nil), (*clientauthentication.ExecCredential)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_ExecCredential_To_clientauthentication_ExecCredential(a.(*ExecCredential), b.(*clientauthentication.ExecCredential), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*clientauthentication.ExecCredential)(nil), (*ExecCredential)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_clientauthentication_ExecCredential_To_v1alpha1_ExecCredential(a.(*clientauthentication.ExecCredential), b.(*ExecCredential), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*ExecCredentialSpec)(nil), (*clientauthentication.ExecCredentialSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_ExecCredentialSpec_To_clientauthentication_ExecCredentialSpec(a.(*ExecCredentialSpec), b.(*clientauthentication.ExecCredentialSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*clientauthentication.ExecCredentialSpec)(nil), (*ExecCredentialSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_clientauthentication_ExecCredentialSpec_To_v1alpha1_ExecCredentialSpec(a.(*clientauthentication.ExecCredentialSpec), b.(*ExecCredentialSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*ExecCredentialStatus)(nil), (*clientauthentication.ExecCredentialStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_ExecCredentialStatus_To_clientauthentication_ExecCredentialStatus(a.(*ExecCredentialStatus), b.(*clientauthentication.ExecCredentialStatus), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*clientauthentication.ExecCredentialStatus)(nil), (*ExecCredentialStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_clientauthentication_ExecCredentialStatus_To_v1alpha1_ExecCredentialStatus(a.(*clientauthentication.ExecCredentialStatus), b.(*ExecCredentialStatus), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*Response)(nil), (*clientauthentication.Response)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha1_Response_To_clientauthentication_Response(a.(*Response), b.(*clientauthentication.Response), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*clientauthentication.Response)(nil), (*Response)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_clientauthentication_Response_To_v1alpha1_Response(a.(*clientauthentication.Response), b.(*Response), scope) + }); err != nil { + return err + } + return nil +} + +func autoConvert_v1alpha1_ExecCredential_To_clientauthentication_ExecCredential(in *ExecCredential, out *clientauthentication.ExecCredential, s conversion.Scope) error { + if err := Convert_v1alpha1_ExecCredentialSpec_To_clientauthentication_ExecCredentialSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + out.Status = (*clientauthentication.ExecCredentialStatus)(unsafe.Pointer(in.Status)) + return nil +} + +// Convert_v1alpha1_ExecCredential_To_clientauthentication_ExecCredential is an autogenerated conversion function. +func Convert_v1alpha1_ExecCredential_To_clientauthentication_ExecCredential(in *ExecCredential, out *clientauthentication.ExecCredential, s conversion.Scope) error { + return autoConvert_v1alpha1_ExecCredential_To_clientauthentication_ExecCredential(in, out, s) +} + +func autoConvert_clientauthentication_ExecCredential_To_v1alpha1_ExecCredential(in *clientauthentication.ExecCredential, out *ExecCredential, s conversion.Scope) error { + if err := Convert_clientauthentication_ExecCredentialSpec_To_v1alpha1_ExecCredentialSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + out.Status = (*ExecCredentialStatus)(unsafe.Pointer(in.Status)) + return nil +} + +// Convert_clientauthentication_ExecCredential_To_v1alpha1_ExecCredential is an autogenerated conversion function. +func Convert_clientauthentication_ExecCredential_To_v1alpha1_ExecCredential(in *clientauthentication.ExecCredential, out *ExecCredential, s conversion.Scope) error { + return autoConvert_clientauthentication_ExecCredential_To_v1alpha1_ExecCredential(in, out, s) +} + +func autoConvert_v1alpha1_ExecCredentialSpec_To_clientauthentication_ExecCredentialSpec(in *ExecCredentialSpec, out *clientauthentication.ExecCredentialSpec, s conversion.Scope) error { + out.Response = (*clientauthentication.Response)(unsafe.Pointer(in.Response)) + out.Interactive = in.Interactive + return nil +} + +// Convert_v1alpha1_ExecCredentialSpec_To_clientauthentication_ExecCredentialSpec is an autogenerated conversion function. +func Convert_v1alpha1_ExecCredentialSpec_To_clientauthentication_ExecCredentialSpec(in *ExecCredentialSpec, out *clientauthentication.ExecCredentialSpec, s conversion.Scope) error { + return autoConvert_v1alpha1_ExecCredentialSpec_To_clientauthentication_ExecCredentialSpec(in, out, s) +} + +func autoConvert_clientauthentication_ExecCredentialSpec_To_v1alpha1_ExecCredentialSpec(in *clientauthentication.ExecCredentialSpec, out *ExecCredentialSpec, s conversion.Scope) error { + out.Response = (*Response)(unsafe.Pointer(in.Response)) + out.Interactive = in.Interactive + return nil +} + +// Convert_clientauthentication_ExecCredentialSpec_To_v1alpha1_ExecCredentialSpec is an autogenerated conversion function. +func Convert_clientauthentication_ExecCredentialSpec_To_v1alpha1_ExecCredentialSpec(in *clientauthentication.ExecCredentialSpec, out *ExecCredentialSpec, s conversion.Scope) error { + return autoConvert_clientauthentication_ExecCredentialSpec_To_v1alpha1_ExecCredentialSpec(in, out, s) +} + +func autoConvert_v1alpha1_ExecCredentialStatus_To_clientauthentication_ExecCredentialStatus(in *ExecCredentialStatus, out *clientauthentication.ExecCredentialStatus, s conversion.Scope) error { + out.ExpirationTimestamp = (*v1.Time)(unsafe.Pointer(in.ExpirationTimestamp)) + out.Token = in.Token + out.ClientCertificateData = in.ClientCertificateData + out.ClientKeyData = in.ClientKeyData + return nil +} + +// Convert_v1alpha1_ExecCredentialStatus_To_clientauthentication_ExecCredentialStatus is an autogenerated conversion function. +func Convert_v1alpha1_ExecCredentialStatus_To_clientauthentication_ExecCredentialStatus(in *ExecCredentialStatus, out *clientauthentication.ExecCredentialStatus, s conversion.Scope) error { + return autoConvert_v1alpha1_ExecCredentialStatus_To_clientauthentication_ExecCredentialStatus(in, out, s) +} + +func autoConvert_clientauthentication_ExecCredentialStatus_To_v1alpha1_ExecCredentialStatus(in *clientauthentication.ExecCredentialStatus, out *ExecCredentialStatus, s conversion.Scope) error { + out.ExpirationTimestamp = (*v1.Time)(unsafe.Pointer(in.ExpirationTimestamp)) + out.Token = in.Token + out.ClientCertificateData = in.ClientCertificateData + out.ClientKeyData = in.ClientKeyData + return nil +} + +// Convert_clientauthentication_ExecCredentialStatus_To_v1alpha1_ExecCredentialStatus is an autogenerated conversion function. +func Convert_clientauthentication_ExecCredentialStatus_To_v1alpha1_ExecCredentialStatus(in *clientauthentication.ExecCredentialStatus, out *ExecCredentialStatus, s conversion.Scope) error { + return autoConvert_clientauthentication_ExecCredentialStatus_To_v1alpha1_ExecCredentialStatus(in, out, s) +} + +func autoConvert_v1alpha1_Response_To_clientauthentication_Response(in *Response, out *clientauthentication.Response, s conversion.Scope) error { + out.Header = *(*map[string][]string)(unsafe.Pointer(&in.Header)) + out.Code = in.Code + return nil +} + +// Convert_v1alpha1_Response_To_clientauthentication_Response is an autogenerated conversion function. +func Convert_v1alpha1_Response_To_clientauthentication_Response(in *Response, out *clientauthentication.Response, s conversion.Scope) error { + return autoConvert_v1alpha1_Response_To_clientauthentication_Response(in, out, s) +} + +func autoConvert_clientauthentication_Response_To_v1alpha1_Response(in *clientauthentication.Response, out *Response, s conversion.Scope) error { + out.Header = *(*map[string][]string)(unsafe.Pointer(&in.Header)) + out.Code = in.Code + return nil +} + +// Convert_clientauthentication_Response_To_v1alpha1_Response is an autogenerated conversion function. +func Convert_clientauthentication_Response_To_v1alpha1_Response(in *clientauthentication.Response, out *Response, s conversion.Scope) error { + return autoConvert_clientauthentication_Response_To_v1alpha1_Response(in, out, s) +} diff --git a/vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1/zz_generated.deepcopy.go b/vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 000000000..a73d31b3f --- /dev/null +++ b/vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,128 @@ +// +build !ignore_autogenerated + +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by deepcopy-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + runtime "k8s.io/apimachinery/pkg/runtime" +) + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ExecCredential) DeepCopyInto(out *ExecCredential) { + *out = *in + out.TypeMeta = in.TypeMeta + in.Spec.DeepCopyInto(&out.Spec) + if in.Status != nil { + in, out := &in.Status, &out.Status + *out = new(ExecCredentialStatus) + (*in).DeepCopyInto(*out) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecCredential. +func (in *ExecCredential) DeepCopy() *ExecCredential { + if in == nil { + return nil + } + out := new(ExecCredential) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ExecCredential) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ExecCredentialSpec) DeepCopyInto(out *ExecCredentialSpec) { + *out = *in + if in.Response != nil { + in, out := &in.Response, &out.Response + *out = new(Response) + (*in).DeepCopyInto(*out) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecCredentialSpec. +func (in *ExecCredentialSpec) DeepCopy() *ExecCredentialSpec { + if in == nil { + return nil + } + out := new(ExecCredentialSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ExecCredentialStatus) DeepCopyInto(out *ExecCredentialStatus) { + *out = *in + if in.ExpirationTimestamp != nil { + in, out := &in.ExpirationTimestamp, &out.ExpirationTimestamp + *out = (*in).DeepCopy() + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecCredentialStatus. +func (in *ExecCredentialStatus) DeepCopy() *ExecCredentialStatus { + if in == nil { + return nil + } + out := new(ExecCredentialStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Response) DeepCopyInto(out *Response) { + *out = *in + if in.Header != nil { + in, out := &in.Header, &out.Header + *out = make(map[string][]string, len(*in)) + for key, val := range *in { + var outVal []string + if val == nil { + (*out)[key] = nil + } else { + in, out := &val, &outVal + *out = make([]string, len(*in)) + copy(*out, *in) + } + (*out)[key] = outVal + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Response. +func (in *Response) DeepCopy() *Response { + if in == nil { + return nil + } + out := new(Response) + in.DeepCopyInto(out) + return out +} diff --git a/vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1/zz_generated.defaults.go b/vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1/zz_generated.defaults.go new file mode 100644 index 000000000..dd621a3ac --- /dev/null +++ b/vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1/zz_generated.defaults.go @@ -0,0 +1,32 @@ +// +build !ignore_autogenerated + +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by defaulter-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + runtime "k8s.io/apimachinery/pkg/runtime" +) + +// RegisterDefaults adds defaulters functions to the given scheme. +// Public to allow building arbitrary schemes. +// All generated defaulters are covering - they call all nested defaulters. +func RegisterDefaults(scheme *runtime.Scheme) error { + return nil +} diff --git a/vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1beta1/conversion.go b/vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1beta1/conversion.go new file mode 100644 index 000000000..f543806ac --- /dev/null +++ b/vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1beta1/conversion.go @@ -0,0 +1,26 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package v1beta1 + +import ( + conversion "k8s.io/apimachinery/pkg/conversion" + clientauthentication "k8s.io/client-go/pkg/apis/clientauthentication" +) + +func Convert_clientauthentication_ExecCredentialSpec_To_v1beta1_ExecCredentialSpec(in *clientauthentication.ExecCredentialSpec, out *ExecCredentialSpec, s conversion.Scope) error { + return nil +} diff --git a/vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1beta1/doc.go b/vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1beta1/doc.go new file mode 100644 index 000000000..22d1c588b --- /dev/null +++ b/vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1beta1/doc.go @@ -0,0 +1,24 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// +k8s:deepcopy-gen=package +// +k8s:conversion-gen=k8s.io/client-go/pkg/apis/clientauthentication +// +k8s:openapi-gen=true +// +k8s:defaulter-gen=TypeMeta + +// +groupName=client.authentication.k8s.io + +package v1beta1 // import "k8s.io/client-go/pkg/apis/clientauthentication/v1beta1" diff --git a/vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1beta1/register.go b/vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1beta1/register.go new file mode 100644 index 000000000..0bb92f16a --- /dev/null +++ b/vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1beta1/register.go @@ -0,0 +1,55 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package v1beta1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +// GroupName is the group name use in this package +const GroupName = "client.authentication.k8s.io" + +// SchemeGroupVersion is group version used to register these objects +var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1beta1"} + +// Resource takes an unqualified resource and returns a Group qualified GroupResource +func Resource(resource string) schema.GroupResource { + return SchemeGroupVersion.WithResource(resource).GroupResource() +} + +var ( + SchemeBuilder runtime.SchemeBuilder + localSchemeBuilder = &SchemeBuilder + AddToScheme = localSchemeBuilder.AddToScheme +) + +func init() { + // We only register manually written functions here. The registration of the + // generated functions takes place in the generated files. The separation + // makes the code compile even when the generated files are missing. + localSchemeBuilder.Register(addKnownTypes) +} + +func addKnownTypes(scheme *runtime.Scheme) error { + scheme.AddKnownTypes(SchemeGroupVersion, + &ExecCredential{}, + ) + metav1.AddToGroupVersion(scheme, SchemeGroupVersion) + return nil +} diff --git a/vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1beta1/types.go b/vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1beta1/types.go new file mode 100644 index 000000000..d6e267452 --- /dev/null +++ b/vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1beta1/types.go @@ -0,0 +1,59 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package v1beta1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// ExecCredentials is used by exec-based plugins to communicate credentials to +// HTTP transports. +type ExecCredential struct { + metav1.TypeMeta `json:",inline"` + + // Spec holds information passed to the plugin by the transport. This contains + // request and runtime specific information, such as if the session is interactive. + Spec ExecCredentialSpec `json:"spec,omitempty"` + + // Status is filled in by the plugin and holds the credentials that the transport + // should use to contact the API. + // +optional + Status *ExecCredentialStatus `json:"status,omitempty"` +} + +// ExecCredenitalSpec holds request and runtime specific information provided by +// the transport. +type ExecCredentialSpec struct{} + +// ExecCredentialStatus holds credentials for the transport to use. +// +// Token and ClientKeyData are sensitive fields. This data should only be +// transmitted in-memory between client and exec plugin process. Exec plugin +// itself should at least be protected via file permissions. +type ExecCredentialStatus struct { + // ExpirationTimestamp indicates a time when the provided credentials expire. + // +optional + ExpirationTimestamp *metav1.Time `json:"expirationTimestamp,omitempty"` + // Token is a bearer token used by the client for request authentication. + Token string `json:"token,omitempty"` + // PEM-encoded client TLS certificates (including intermediates, if any). + ClientCertificateData string `json:"clientCertificateData,omitempty"` + // PEM-encoded private key for the above certificate. + ClientKeyData string `json:"clientKeyData,omitempty"` +} diff --git a/vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1beta1/zz_generated.conversion.go b/vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1beta1/zz_generated.conversion.go new file mode 100644 index 000000000..94ef4b733 --- /dev/null +++ b/vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1beta1/zz_generated.conversion.go @@ -0,0 +1,142 @@ +// +build !ignore_autogenerated + +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by conversion-gen. DO NOT EDIT. + +package v1beta1 + +import ( + unsafe "unsafe" + + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" + clientauthentication "k8s.io/client-go/pkg/apis/clientauthentication" +) + +func init() { + localSchemeBuilder.Register(RegisterConversions) +} + +// RegisterConversions adds conversion functions to the given scheme. +// Public to allow building arbitrary schemes. +func RegisterConversions(s *runtime.Scheme) error { + if err := s.AddGeneratedConversionFunc((*ExecCredential)(nil), (*clientauthentication.ExecCredential)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_ExecCredential_To_clientauthentication_ExecCredential(a.(*ExecCredential), b.(*clientauthentication.ExecCredential), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*clientauthentication.ExecCredential)(nil), (*ExecCredential)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_clientauthentication_ExecCredential_To_v1beta1_ExecCredential(a.(*clientauthentication.ExecCredential), b.(*ExecCredential), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*ExecCredentialSpec)(nil), (*clientauthentication.ExecCredentialSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_ExecCredentialSpec_To_clientauthentication_ExecCredentialSpec(a.(*ExecCredentialSpec), b.(*clientauthentication.ExecCredentialSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*clientauthentication.ExecCredentialSpec)(nil), (*ExecCredentialSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_clientauthentication_ExecCredentialSpec_To_v1beta1_ExecCredentialSpec(a.(*clientauthentication.ExecCredentialSpec), b.(*ExecCredentialSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*ExecCredentialStatus)(nil), (*clientauthentication.ExecCredentialStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_ExecCredentialStatus_To_clientauthentication_ExecCredentialStatus(a.(*ExecCredentialStatus), b.(*clientauthentication.ExecCredentialStatus), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*clientauthentication.ExecCredentialStatus)(nil), (*ExecCredentialStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_clientauthentication_ExecCredentialStatus_To_v1beta1_ExecCredentialStatus(a.(*clientauthentication.ExecCredentialStatus), b.(*ExecCredentialStatus), scope) + }); err != nil { + return err + } + if err := s.AddConversionFunc((*clientauthentication.ExecCredentialSpec)(nil), (*ExecCredentialSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_clientauthentication_ExecCredentialSpec_To_v1beta1_ExecCredentialSpec(a.(*clientauthentication.ExecCredentialSpec), b.(*ExecCredentialSpec), scope) + }); err != nil { + return err + } + return nil +} + +func autoConvert_v1beta1_ExecCredential_To_clientauthentication_ExecCredential(in *ExecCredential, out *clientauthentication.ExecCredential, s conversion.Scope) error { + if err := Convert_v1beta1_ExecCredentialSpec_To_clientauthentication_ExecCredentialSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + out.Status = (*clientauthentication.ExecCredentialStatus)(unsafe.Pointer(in.Status)) + return nil +} + +// Convert_v1beta1_ExecCredential_To_clientauthentication_ExecCredential is an autogenerated conversion function. +func Convert_v1beta1_ExecCredential_To_clientauthentication_ExecCredential(in *ExecCredential, out *clientauthentication.ExecCredential, s conversion.Scope) error { + return autoConvert_v1beta1_ExecCredential_To_clientauthentication_ExecCredential(in, out, s) +} + +func autoConvert_clientauthentication_ExecCredential_To_v1beta1_ExecCredential(in *clientauthentication.ExecCredential, out *ExecCredential, s conversion.Scope) error { + if err := Convert_clientauthentication_ExecCredentialSpec_To_v1beta1_ExecCredentialSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + out.Status = (*ExecCredentialStatus)(unsafe.Pointer(in.Status)) + return nil +} + +// Convert_clientauthentication_ExecCredential_To_v1beta1_ExecCredential is an autogenerated conversion function. +func Convert_clientauthentication_ExecCredential_To_v1beta1_ExecCredential(in *clientauthentication.ExecCredential, out *ExecCredential, s conversion.Scope) error { + return autoConvert_clientauthentication_ExecCredential_To_v1beta1_ExecCredential(in, out, s) +} + +func autoConvert_v1beta1_ExecCredentialSpec_To_clientauthentication_ExecCredentialSpec(in *ExecCredentialSpec, out *clientauthentication.ExecCredentialSpec, s conversion.Scope) error { + return nil +} + +// Convert_v1beta1_ExecCredentialSpec_To_clientauthentication_ExecCredentialSpec is an autogenerated conversion function. +func Convert_v1beta1_ExecCredentialSpec_To_clientauthentication_ExecCredentialSpec(in *ExecCredentialSpec, out *clientauthentication.ExecCredentialSpec, s conversion.Scope) error { + return autoConvert_v1beta1_ExecCredentialSpec_To_clientauthentication_ExecCredentialSpec(in, out, s) +} + +func autoConvert_clientauthentication_ExecCredentialSpec_To_v1beta1_ExecCredentialSpec(in *clientauthentication.ExecCredentialSpec, out *ExecCredentialSpec, s conversion.Scope) error { + // WARNING: in.Response requires manual conversion: does not exist in peer-type + // WARNING: in.Interactive requires manual conversion: does not exist in peer-type + return nil +} + +func autoConvert_v1beta1_ExecCredentialStatus_To_clientauthentication_ExecCredentialStatus(in *ExecCredentialStatus, out *clientauthentication.ExecCredentialStatus, s conversion.Scope) error { + out.ExpirationTimestamp = (*v1.Time)(unsafe.Pointer(in.ExpirationTimestamp)) + out.Token = in.Token + out.ClientCertificateData = in.ClientCertificateData + out.ClientKeyData = in.ClientKeyData + return nil +} + +// Convert_v1beta1_ExecCredentialStatus_To_clientauthentication_ExecCredentialStatus is an autogenerated conversion function. +func Convert_v1beta1_ExecCredentialStatus_To_clientauthentication_ExecCredentialStatus(in *ExecCredentialStatus, out *clientauthentication.ExecCredentialStatus, s conversion.Scope) error { + return autoConvert_v1beta1_ExecCredentialStatus_To_clientauthentication_ExecCredentialStatus(in, out, s) +} + +func autoConvert_clientauthentication_ExecCredentialStatus_To_v1beta1_ExecCredentialStatus(in *clientauthentication.ExecCredentialStatus, out *ExecCredentialStatus, s conversion.Scope) error { + out.ExpirationTimestamp = (*v1.Time)(unsafe.Pointer(in.ExpirationTimestamp)) + out.Token = in.Token + out.ClientCertificateData = in.ClientCertificateData + out.ClientKeyData = in.ClientKeyData + return nil +} + +// Convert_clientauthentication_ExecCredentialStatus_To_v1beta1_ExecCredentialStatus is an autogenerated conversion function. +func Convert_clientauthentication_ExecCredentialStatus_To_v1beta1_ExecCredentialStatus(in *clientauthentication.ExecCredentialStatus, out *ExecCredentialStatus, s conversion.Scope) error { + return autoConvert_clientauthentication_ExecCredentialStatus_To_v1beta1_ExecCredentialStatus(in, out, s) +} diff --git a/vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1beta1/zz_generated.deepcopy.go b/vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1beta1/zz_generated.deepcopy.go new file mode 100644 index 000000000..736b8cf00 --- /dev/null +++ b/vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1beta1/zz_generated.deepcopy.go @@ -0,0 +1,92 @@ +// +build !ignore_autogenerated + +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by deepcopy-gen. DO NOT EDIT. + +package v1beta1 + +import ( + runtime "k8s.io/apimachinery/pkg/runtime" +) + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ExecCredential) DeepCopyInto(out *ExecCredential) { + *out = *in + out.TypeMeta = in.TypeMeta + out.Spec = in.Spec + if in.Status != nil { + in, out := &in.Status, &out.Status + *out = new(ExecCredentialStatus) + (*in).DeepCopyInto(*out) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecCredential. +func (in *ExecCredential) DeepCopy() *ExecCredential { + if in == nil { + return nil + } + out := new(ExecCredential) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ExecCredential) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ExecCredentialSpec) DeepCopyInto(out *ExecCredentialSpec) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecCredentialSpec. +func (in *ExecCredentialSpec) DeepCopy() *ExecCredentialSpec { + if in == nil { + return nil + } + out := new(ExecCredentialSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ExecCredentialStatus) DeepCopyInto(out *ExecCredentialStatus) { + *out = *in + if in.ExpirationTimestamp != nil { + in, out := &in.ExpirationTimestamp, &out.ExpirationTimestamp + *out = (*in).DeepCopy() + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecCredentialStatus. +func (in *ExecCredentialStatus) DeepCopy() *ExecCredentialStatus { + if in == nil { + return nil + } + out := new(ExecCredentialStatus) + in.DeepCopyInto(out) + return out +} diff --git a/vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1beta1/zz_generated.defaults.go b/vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1beta1/zz_generated.defaults.go new file mode 100644 index 000000000..73e63fc11 --- /dev/null +++ b/vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1beta1/zz_generated.defaults.go @@ -0,0 +1,32 @@ +// +build !ignore_autogenerated + +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by defaulter-gen. DO NOT EDIT. + +package v1beta1 + +import ( + runtime "k8s.io/apimachinery/pkg/runtime" +) + +// RegisterDefaults adds defaulters functions to the given scheme. +// Public to allow building arbitrary schemes. +// All generated defaulters are covering - they call all nested defaulters. +func RegisterDefaults(scheme *runtime.Scheme) error { + return nil +} diff --git a/vendor/k8s.io/client-go/pkg/apis/clientauthentication/zz_generated.deepcopy.go b/vendor/k8s.io/client-go/pkg/apis/clientauthentication/zz_generated.deepcopy.go new file mode 100644 index 000000000..c568a6fc8 --- /dev/null +++ b/vendor/k8s.io/client-go/pkg/apis/clientauthentication/zz_generated.deepcopy.go @@ -0,0 +1,128 @@ +// +build !ignore_autogenerated + +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by deepcopy-gen. DO NOT EDIT. + +package clientauthentication + +import ( + runtime "k8s.io/apimachinery/pkg/runtime" +) + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ExecCredential) DeepCopyInto(out *ExecCredential) { + *out = *in + out.TypeMeta = in.TypeMeta + in.Spec.DeepCopyInto(&out.Spec) + if in.Status != nil { + in, out := &in.Status, &out.Status + *out = new(ExecCredentialStatus) + (*in).DeepCopyInto(*out) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecCredential. +func (in *ExecCredential) DeepCopy() *ExecCredential { + if in == nil { + return nil + } + out := new(ExecCredential) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ExecCredential) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ExecCredentialSpec) DeepCopyInto(out *ExecCredentialSpec) { + *out = *in + if in.Response != nil { + in, out := &in.Response, &out.Response + *out = new(Response) + (*in).DeepCopyInto(*out) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecCredentialSpec. +func (in *ExecCredentialSpec) DeepCopy() *ExecCredentialSpec { + if in == nil { + return nil + } + out := new(ExecCredentialSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ExecCredentialStatus) DeepCopyInto(out *ExecCredentialStatus) { + *out = *in + if in.ExpirationTimestamp != nil { + in, out := &in.ExpirationTimestamp, &out.ExpirationTimestamp + *out = (*in).DeepCopy() + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecCredentialStatus. +func (in *ExecCredentialStatus) DeepCopy() *ExecCredentialStatus { + if in == nil { + return nil + } + out := new(ExecCredentialStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Response) DeepCopyInto(out *Response) { + *out = *in + if in.Header != nil { + in, out := &in.Header, &out.Header + *out = make(map[string][]string, len(*in)) + for key, val := range *in { + var outVal []string + if val == nil { + (*out)[key] = nil + } else { + in, out := &val, &outVal + *out = make([]string, len(*in)) + copy(*out, *in) + } + (*out)[key] = outVal + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Response. +func (in *Response) DeepCopy() *Response { + if in == nil { + return nil + } + out := new(Response) + in.DeepCopyInto(out) + return out +} diff --git a/vendor/k8s.io/client-go/pkg/version/BUILD b/vendor/k8s.io/client-go/pkg/version/BUILD deleted file mode 100644 index ee19d8cde..000000000 --- a/vendor/k8s.io/client-go/pkg/version/BUILD +++ /dev/null @@ -1,30 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "base.go", - "doc.go", - "version.go", - ], - importpath = "k8s.io/client-go/pkg/version", - deps = ["//vendor/k8s.io/apimachinery/pkg/version:go_default_library"], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/pkg/version/base.go b/vendor/k8s.io/client-go/pkg/version/base.go index 7ab0ed3a7..9b4c79f89 100644 --- a/vendor/k8s.io/client-go/pkg/version/base.go +++ b/vendor/k8s.io/client-go/pkg/version/base.go @@ -43,7 +43,7 @@ var ( gitMinor string = "" // minor version, numeric possibly followed by "+" // semantic version, derived by build scripts (see - // https://github.com/kubernetes/kubernetes/blob/master/docs/design/versioning.md + // https://git.k8s.io/community/contributors/design-proposals/release/versioning.md // for a detailed discussion of this field) // // TODO: This field is still called "gitVersion" for legacy diff --git a/vendor/k8s.io/client-go/pkg/version/doc.go b/vendor/k8s.io/client-go/pkg/version/doc.go index 30399fb02..05e997e13 100644 --- a/vendor/k8s.io/client-go/pkg/version/doc.go +++ b/vendor/k8s.io/client-go/pkg/version/doc.go @@ -14,7 +14,8 @@ See the License for the specific language governing permissions and limitations under the License. */ +// +k8s:openapi-gen=true + // Package version supplies version information collected at build time to // kubernetes components. -// +k8s:openapi-gen=true package version // import "k8s.io/client-go/pkg/version" diff --git a/vendor/k8s.io/client-go/plugin/pkg/client/auth/BUILD b/vendor/k8s.io/client-go/plugin/pkg/client/auth/BUILD deleted file mode 100644 index 8ab2d7452..000000000 --- a/vendor/k8s.io/client-go/plugin/pkg/client/auth/BUILD +++ /dev/null @@ -1,37 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = ["plugins.go"], - importpath = "k8s.io/client-go/plugin/pkg/client/auth", - deps = [ - "//vendor/k8s.io/client-go/plugin/pkg/client/auth/azure:go_default_library", - "//vendor/k8s.io/client-go/plugin/pkg/client/auth/gcp:go_default_library", - "//vendor/k8s.io/client-go/plugin/pkg/client/auth/oidc:go_default_library", - "//vendor/k8s.io/client-go/plugin/pkg/client/auth/openstack:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/plugin/pkg/client/auth/azure:all-srcs", - "//staging/src/k8s.io/client-go/plugin/pkg/client/auth/gcp:all-srcs", - "//staging/src/k8s.io/client-go/plugin/pkg/client/auth/oidc:all-srcs", - "//staging/src/k8s.io/client-go/plugin/pkg/client/auth/openstack:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/plugin/pkg/client/auth/OWNERS b/vendor/k8s.io/client-go/plugin/pkg/client/auth/OWNERS new file mode 100644 index 000000000..c607d2aa8 --- /dev/null +++ b/vendor/k8s.io/client-go/plugin/pkg/client/auth/OWNERS @@ -0,0 +1,7 @@ +approvers: +- sig-auth-authenticators-approvers +reviewers: +- sig-auth-authenticators-reviewers +labels: +- sig/auth + diff --git a/vendor/k8s.io/client-go/plugin/pkg/client/auth/azure/BUILD b/vendor/k8s.io/client-go/plugin/pkg/client/auth/azure/BUILD deleted file mode 100644 index 682776db5..000000000 --- a/vendor/k8s.io/client-go/plugin/pkg/client/auth/azure/BUILD +++ /dev/null @@ -1,41 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_test( - name = "go_default_test", - srcs = ["azure_test.go"], - embed = [":go_default_library"], - deps = ["//vendor/github.com/Azure/go-autorest/autorest/adal:go_default_library"], -) - -go_library( - name = "go_default_library", - srcs = ["azure.go"], - importpath = "k8s.io/client-go/plugin/pkg/client/auth/azure", - deps = [ - "//vendor/github.com/Azure/go-autorest/autorest:go_default_library", - "//vendor/github.com/Azure/go-autorest/autorest/adal:go_default_library", - "//vendor/github.com/Azure/go-autorest/autorest/azure:go_default_library", - "//vendor/github.com/golang/glog:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/net:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/plugin/pkg/client/auth/azure/README.md b/vendor/k8s.io/client-go/plugin/pkg/client/auth/azure/README.md index 0b5e62bd4..e4ba791ea 100644 --- a/vendor/k8s.io/client-go/plugin/pkg/client/auth/azure/README.md +++ b/vendor/k8s.io/client-go/plugin/pkg/client/auth/azure/README.md @@ -1,15 +1,14 @@ # Azure Active Directory plugin for client authentication -This plugin provides an integration with Azure Active Directory device flow. If no tokens are present in the kubectl configuration, it will prompt a device code which can be used to login in a browser. After login it will automatically fetch the tokens and stored them in the kubectl configuration. In addition it will refresh and update the tokens in configuration when expired. - +This plugin provides an integration with Azure Active Directory device flow. If no tokens are present in the kubectl configuration, it will prompt a device code which can be used to login in a browser. After login it will automatically fetch the tokens and store them in the kubectl configuration. In addition it will refresh and update the tokens in the configuration when expired. ## Usage -1. Create an Azure Active Directory *Web App / API* application for `apiserver` following these [instructions](https://docs.microsoft.com/en-us/azure/active-directory/active-directory-app-registration) +1. Create an Azure Active Directory *Web App / API* application for `apiserver` following these [instructions](https://docs.microsoft.com/en-us/azure/active-directory/active-directory-app-registration). The callback URL does not matter (just cannot be empty). -2. Create a second Azure Active Directory native application for `kubectl` +2. Create a second Azure Active Directory native application for `kubectl`. The callback URL does not matter (just cannot be empty). -3. On `kubectl` application's configuration page in Azure portal grant permissions to `apiserver` application by clicking on *Required Permissions*, click the *Add* button and search for the apiserver application created in step 1. Select "Access apiserver" under the *DELEGATED PERMISSIONS*. Once added click the *Grant Permissions* button to apply the changes +3. On `kubectl` application's configuration page in Azure portal grant permissions to `apiserver` application by clicking on *Required Permissions*, click the *Add* button and search for the apiserver application created in step 1. Select "Access apiserver" under the *DELEGATED PERMISSIONS*. Once added click the *Grant Permissions* button to apply the changes. 4. Configure the `apiserver` to use the Azure Active Directory as an OIDC provider with following options @@ -21,8 +20,9 @@ This plugin provides an integration with Azure Active Directory device flow. If * Replace the `APISERVER_APPLICATION_ID` with the application ID of `apiserver` application * Replace `TENANT_ID` with your tenant ID. +   * For a list of alternative username claims that are supported by the OIDC issuer check the JSON response at `https://sts.windows.net/TENANT_ID/.well-known/openid-configuration`. -5. Configure the `kubectl` to use the `azure` authentication provider +5. Configure `kubectl` to use the `azure` authentication provider ``` kubectl config set-credentials "USER_NAME" --auth-provider=azure \ @@ -35,7 +35,8 @@ This plugin provides an integration with Azure Active Directory device flow. If * Supported environments: `AzurePublicCloud`, `AzureUSGovernmentCloud`, `AzureChinaCloud`, `AzureGermanCloud` * Replace `USER_NAME` and `TENANT_ID` with your user name and tenant ID * Replace `APPLICATION_ID` with the application ID of your`kubectl` application ID - * Replace `APISERVER_APPLICATION_ID` with the application ID of your `apiserver` application ID + * Replace `APISERVER_APPLICATION_ID` with the application ID of your `apiserver` application ID + * Be sure to also (create and) select a context that uses above user 6. The access token is acquired when first `kubectl` command is executed @@ -45,4 +46,5 @@ This plugin provides an integration with Azure Active Directory device flow. If To sign in, use a web browser to open the page https://aka.ms/devicelogin and enter the code DEC7D48GA to authenticate. ``` - * After signing in a web browser, the token is stored in the configuration, and it will be reused when executing next commands. + * After signing in a web browser, the token is stored in the configuration, and it will be reused when executing further commands. + * The resulting username in Kubernetes depends on your [configuration of the `--oidc-username-claim` and `--oidc-username-prefix` flags on the API server](https://kubernetes.io/docs/admin/authentication/#configuring-the-api-server). If you are using any authorization method you need to give permissions to that user, e.g. by binding the user to a role in the case of RBAC. diff --git a/vendor/k8s.io/client-go/plugin/pkg/client/auth/azure/azure.go b/vendor/k8s.io/client-go/plugin/pkg/client/auth/azure/azure.go index e14dc8d9d..d42449fc2 100644 --- a/vendor/k8s.io/client-go/plugin/pkg/client/auth/azure/azure.go +++ b/vendor/k8s.io/client-go/plugin/pkg/client/auth/azure/azure.go @@ -17,6 +17,7 @@ limitations under the License. package azure import ( + "encoding/json" "errors" "fmt" "net/http" @@ -26,7 +27,7 @@ import ( "github.com/Azure/go-autorest/autorest" "github.com/Azure/go-autorest/autorest/adal" "github.com/Azure/go-autorest/autorest/azure" - "github.com/golang/glog" + "k8s.io/klog" "k8s.io/apimachinery/pkg/util/net" restclient "k8s.io/client-go/rest" @@ -49,7 +50,7 @@ const ( func init() { if err := restclient.RegisterAuthProviderPlugin("azure", newAzureAuthProvider); err != nil { - glog.Fatalf("Failed to register azure auth plugin: %v", err) + klog.Fatalf("Failed to register azure auth plugin: %v", err) } } @@ -123,7 +124,7 @@ func (r *azureRoundTripper) RoundTrip(req *http.Request) (*http.Response, error) token, err := r.tokenSource.Token() if err != nil { - glog.Errorf("Failed to acquire a token: %v", err) + klog.Errorf("Failed to acquire a token: %v", err) return nil, fmt.Errorf("acquiring a token for authorization header: %v", err) } @@ -243,9 +244,9 @@ func (ts *azureTokenSource) retrieveTokenFromCfg() (*azureToken, error) { token: adal.Token{ AccessToken: accessToken, RefreshToken: refreshToken, - ExpiresIn: expiresIn, - ExpiresOn: expiresOn, - NotBefore: expiresOn, + ExpiresIn: json.Number(expiresIn), + ExpiresOn: json.Number(expiresOn), + NotBefore: json.Number(expiresOn), Resource: fmt.Sprintf("spn:%s", apiserverID), Type: tokenType, }, @@ -262,8 +263,8 @@ func (ts *azureTokenSource) storeTokenInCfg(token *azureToken) error { newCfg[cfgClientID] = token.clientID newCfg[cfgTenantID] = token.tenantID newCfg[cfgApiserverID] = token.apiserverID - newCfg[cfgExpiresIn] = token.token.ExpiresIn - newCfg[cfgExpiresOn] = token.token.ExpiresOn + newCfg[cfgExpiresIn] = string(token.token.ExpiresIn) + newCfg[cfgExpiresOn] = string(token.token.ExpiresOn) err := ts.persister.Persist(newCfg) if err != nil { @@ -297,7 +298,7 @@ func (ts *azureTokenSource) refreshToken(token *azureToken) (*azureToken, error) } return &azureToken{ - token: spt.Token, + token: spt.Token(), clientID: token.clientID, tenantID: token.tenantID, apiserverID: token.apiserverID, diff --git a/vendor/k8s.io/client-go/plugin/pkg/client/auth/azure/azure_test.go b/vendor/k8s.io/client-go/plugin/pkg/client/auth/azure/azure_test.go index b420712bc..810a097de 100644 --- a/vendor/k8s.io/client-go/plugin/pkg/client/auth/azure/azure_test.go +++ b/vendor/k8s.io/client-go/plugin/pkg/client/auth/azure/azure_test.go @@ -17,6 +17,7 @@ limitations under the License. package azure import ( + "encoding/json" "strconv" "strings" "sync" @@ -115,8 +116,8 @@ func token2Cfg(token *azureToken) map[string]string { cfg[cfgClientID] = token.clientID cfg[cfgTenantID] = token.tenantID cfg[cfgApiserverID] = token.apiserverID - cfg[cfgExpiresIn] = token.token.ExpiresIn - cfg[cfgExpiresOn] = token.token.ExpiresOn + cfg[cfgExpiresIn] = string(token.token.ExpiresIn) + cfg[cfgExpiresOn] = string(token.token.ExpiresOn) return cfg } @@ -125,8 +126,8 @@ func newFackeAzureToken(accessToken string, expiresOn string) adal.Token { AccessToken: accessToken, RefreshToken: "fake", ExpiresIn: "3600", - ExpiresOn: expiresOn, - NotBefore: expiresOn, + ExpiresOn: json.Number(expiresOn), + NotBefore: json.Number(expiresOn), Resource: "fake", Type: "fake", } diff --git a/vendor/k8s.io/client-go/plugin/pkg/client/auth/exec/exec.go b/vendor/k8s.io/client-go/plugin/pkg/client/auth/exec/exec.go new file mode 100644 index 000000000..4d7252658 --- /dev/null +++ b/vendor/k8s.io/client-go/plugin/pkg/client/auth/exec/exec.go @@ -0,0 +1,361 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package exec + +import ( + "bytes" + "context" + "crypto/tls" + "errors" + "fmt" + "io" + "net" + "net/http" + "os" + "os/exec" + "reflect" + "sync" + "time" + + "golang.org/x/crypto/ssh/terminal" + "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/runtime/serializer" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/client-go/pkg/apis/clientauthentication" + "k8s.io/client-go/pkg/apis/clientauthentication/v1alpha1" + "k8s.io/client-go/pkg/apis/clientauthentication/v1beta1" + "k8s.io/client-go/tools/clientcmd/api" + "k8s.io/client-go/transport" + "k8s.io/client-go/util/connrotation" + "k8s.io/klog" +) + +const execInfoEnv = "KUBERNETES_EXEC_INFO" + +var scheme = runtime.NewScheme() +var codecs = serializer.NewCodecFactory(scheme) + +func init() { + v1.AddToGroupVersion(scheme, schema.GroupVersion{Version: "v1"}) + utilruntime.Must(v1alpha1.AddToScheme(scheme)) + utilruntime.Must(v1beta1.AddToScheme(scheme)) + utilruntime.Must(clientauthentication.AddToScheme(scheme)) +} + +var ( + // Since transports can be constantly re-initialized by programs like kubectl, + // keep a cache of initialized authenticators keyed by a hash of their config. + globalCache = newCache() + // The list of API versions we accept. + apiVersions = map[string]schema.GroupVersion{ + v1alpha1.SchemeGroupVersion.String(): v1alpha1.SchemeGroupVersion, + v1beta1.SchemeGroupVersion.String(): v1beta1.SchemeGroupVersion, + } +) + +func newCache() *cache { + return &cache{m: make(map[string]*Authenticator)} +} + +func cacheKey(c *api.ExecConfig) string { + return fmt.Sprintf("%#v", c) +} + +type cache struct { + mu sync.Mutex + m map[string]*Authenticator +} + +func (c *cache) get(s string) (*Authenticator, bool) { + c.mu.Lock() + defer c.mu.Unlock() + a, ok := c.m[s] + return a, ok +} + +// put inserts an authenticator into the cache. If an authenticator is already +// associated with the key, the first one is returned instead. +func (c *cache) put(s string, a *Authenticator) *Authenticator { + c.mu.Lock() + defer c.mu.Unlock() + existing, ok := c.m[s] + if ok { + return existing + } + c.m[s] = a + return a +} + +// GetAuthenticator returns an exec-based plugin for providing client credentials. +func GetAuthenticator(config *api.ExecConfig) (*Authenticator, error) { + return newAuthenticator(globalCache, config) +} + +func newAuthenticator(c *cache, config *api.ExecConfig) (*Authenticator, error) { + key := cacheKey(config) + if a, ok := c.get(key); ok { + return a, nil + } + + gv, ok := apiVersions[config.APIVersion] + if !ok { + return nil, fmt.Errorf("exec plugin: invalid apiVersion %q", config.APIVersion) + } + + a := &Authenticator{ + cmd: config.Command, + args: config.Args, + group: gv, + + stdin: os.Stdin, + stderr: os.Stderr, + interactive: terminal.IsTerminal(int(os.Stdout.Fd())), + now: time.Now, + environ: os.Environ, + } + + for _, env := range config.Env { + a.env = append(a.env, env.Name+"="+env.Value) + } + + return c.put(key, a), nil +} + +// Authenticator is a client credential provider that rotates credentials by executing a plugin. +// The plugin input and output are defined by the API group client.authentication.k8s.io. +type Authenticator struct { + // Set by the config + cmd string + args []string + group schema.GroupVersion + env []string + + // Stubbable for testing + stdin io.Reader + stderr io.Writer + interactive bool + now func() time.Time + environ func() []string + + // Cached results. + // + // The mutex also guards calling the plugin. Since the plugin could be + // interactive we want to make sure it's only called once. + mu sync.Mutex + cachedCreds *credentials + exp time.Time + + onRotate func() +} + +type credentials struct { + token string + cert *tls.Certificate +} + +// UpdateTransportConfig updates the transport.Config to use credentials +// returned by the plugin. +func (a *Authenticator) UpdateTransportConfig(c *transport.Config) error { + wt := c.WrapTransport + c.WrapTransport = func(rt http.RoundTripper) http.RoundTripper { + if wt != nil { + rt = wt(rt) + } + return &roundTripper{a, rt} + } + + if c.TLS.GetCert != nil { + return errors.New("can't add TLS certificate callback: transport.Config.TLS.GetCert already set") + } + c.TLS.GetCert = a.cert + + var dial func(ctx context.Context, network, addr string) (net.Conn, error) + if c.Dial != nil { + dial = c.Dial + } else { + dial = (&net.Dialer{Timeout: 30 * time.Second, KeepAlive: 30 * time.Second}).DialContext + } + d := connrotation.NewDialer(dial) + a.onRotate = d.CloseAll + c.Dial = d.DialContext + + return nil +} + +type roundTripper struct { + a *Authenticator + base http.RoundTripper +} + +func (r *roundTripper) RoundTrip(req *http.Request) (*http.Response, error) { + // If a user has already set credentials, use that. This makes commands like + // "kubectl get --token (token) pods" work. + if req.Header.Get("Authorization") != "" { + return r.base.RoundTrip(req) + } + + creds, err := r.a.getCreds() + if err != nil { + return nil, fmt.Errorf("getting credentials: %v", err) + } + if creds.token != "" { + req.Header.Set("Authorization", "Bearer "+creds.token) + } + + res, err := r.base.RoundTrip(req) + if err != nil { + return nil, err + } + if res.StatusCode == http.StatusUnauthorized { + resp := &clientauthentication.Response{ + Header: res.Header, + Code: int32(res.StatusCode), + } + if err := r.a.maybeRefreshCreds(creds, resp); err != nil { + klog.Errorf("refreshing credentials: %v", err) + } + } + return res, nil +} + +func (a *Authenticator) credsExpired() bool { + if a.exp.IsZero() { + return false + } + return a.now().After(a.exp) +} + +func (a *Authenticator) cert() (*tls.Certificate, error) { + creds, err := a.getCreds() + if err != nil { + return nil, err + } + return creds.cert, nil +} + +func (a *Authenticator) getCreds() (*credentials, error) { + a.mu.Lock() + defer a.mu.Unlock() + if a.cachedCreds != nil && !a.credsExpired() { + return a.cachedCreds, nil + } + + if err := a.refreshCredsLocked(nil); err != nil { + return nil, err + } + return a.cachedCreds, nil +} + +// maybeRefreshCreds executes the plugin to force a rotation of the +// credentials, unless they were rotated already. +func (a *Authenticator) maybeRefreshCreds(creds *credentials, r *clientauthentication.Response) error { + a.mu.Lock() + defer a.mu.Unlock() + + // Since we're not making a new pointer to a.cachedCreds in getCreds, no + // need to do deep comparison. + if creds != a.cachedCreds { + // Credentials already rotated. + return nil + } + + return a.refreshCredsLocked(r) +} + +// refreshCredsLocked executes the plugin and reads the credentials from +// stdout. It must be called while holding the Authenticator's mutex. +func (a *Authenticator) refreshCredsLocked(r *clientauthentication.Response) error { + cred := &clientauthentication.ExecCredential{ + Spec: clientauthentication.ExecCredentialSpec{ + Response: r, + Interactive: a.interactive, + }, + } + + env := append(a.environ(), a.env...) + if a.group == v1alpha1.SchemeGroupVersion { + // Input spec disabled for beta due to lack of use. Possibly re-enable this later if + // someone wants it back. + // + // See: https://github.com/kubernetes/kubernetes/issues/61796 + data, err := runtime.Encode(codecs.LegacyCodec(a.group), cred) + if err != nil { + return fmt.Errorf("encode ExecCredentials: %v", err) + } + env = append(env, fmt.Sprintf("%s=%s", execInfoEnv, data)) + } + + stdout := &bytes.Buffer{} + cmd := exec.Command(a.cmd, a.args...) + cmd.Env = env + cmd.Stderr = a.stderr + cmd.Stdout = stdout + if a.interactive { + cmd.Stdin = a.stdin + } + + if err := cmd.Run(); err != nil { + return fmt.Errorf("exec: %v", err) + } + + _, gvk, err := codecs.UniversalDecoder(a.group).Decode(stdout.Bytes(), nil, cred) + if err != nil { + return fmt.Errorf("decoding stdout: %v", err) + } + if gvk.Group != a.group.Group || gvk.Version != a.group.Version { + return fmt.Errorf("exec plugin is configured to use API version %s, plugin returned version %s", + a.group, schema.GroupVersion{Group: gvk.Group, Version: gvk.Version}) + } + + if cred.Status == nil { + return fmt.Errorf("exec plugin didn't return a status field") + } + if cred.Status.Token == "" && cred.Status.ClientCertificateData == "" && cred.Status.ClientKeyData == "" { + return fmt.Errorf("exec plugin didn't return a token or cert/key pair") + } + if (cred.Status.ClientCertificateData == "") != (cred.Status.ClientKeyData == "") { + return fmt.Errorf("exec plugin returned only certificate or key, not both") + } + + if cred.Status.ExpirationTimestamp != nil { + a.exp = cred.Status.ExpirationTimestamp.Time + } else { + a.exp = time.Time{} + } + + newCreds := &credentials{ + token: cred.Status.Token, + } + if cred.Status.ClientKeyData != "" && cred.Status.ClientCertificateData != "" { + cert, err := tls.X509KeyPair([]byte(cred.Status.ClientCertificateData), []byte(cred.Status.ClientKeyData)) + if err != nil { + return fmt.Errorf("failed parsing client key/certificate: %v", err) + } + newCreds.cert = &cert + } + + oldCreds := a.cachedCreds + a.cachedCreds = newCreds + // Only close all connections when TLS cert rotates. Token rotation doesn't + // need the extra noise. + if a.onRotate != nil && oldCreds != nil && !reflect.DeepEqual(oldCreds.cert, a.cachedCreds.cert) { + a.onRotate() + } + return nil +} diff --git a/vendor/k8s.io/client-go/plugin/pkg/client/auth/exec/exec_test.go b/vendor/k8s.io/client-go/plugin/pkg/client/auth/exec/exec_test.go new file mode 100644 index 000000000..e3398e821 --- /dev/null +++ b/vendor/k8s.io/client-go/plugin/pkg/client/auth/exec/exec_test.go @@ -0,0 +1,748 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package exec + +import ( + "bytes" + "crypto/ecdsa" + "crypto/elliptic" + "crypto/rand" + "crypto/tls" + "crypto/x509" + "crypto/x509/pkix" + "encoding/json" + "encoding/pem" + "fmt" + "io/ioutil" + "math/big" + "net/http" + "net/http/httptest" + "reflect" + "strings" + "testing" + "time" + + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/client-go/pkg/apis/clientauthentication" + "k8s.io/client-go/tools/clientcmd/api" + "k8s.io/client-go/transport" +) + +var ( + certData = []byte(`-----BEGIN CERTIFICATE----- +MIIC6jCCAdSgAwIBAgIBCzALBgkqhkiG9w0BAQswIzEhMB8GA1UEAwwYMTAuMTMu +MTI5LjEwNkAxNDIxMzU5MDU4MB4XDTE1MDExNTIyMDEzMVoXDTE2MDExNTIyMDEz +MlowGzEZMBcGA1UEAxMQb3BlbnNoaWZ0LWNsaWVudDCCASIwDQYJKoZIhvcNAQEB +BQADggEPADCCAQoCggEBAKtdhz0+uCLXw5cSYns9rU/XifFSpb/x24WDdrm72S/v +b9BPYsAStiP148buylr1SOuNi8sTAZmlVDDIpIVwMLff+o2rKYDicn9fjbrTxTOj +lI4pHJBH+JU3AJ0tbajupioh70jwFS0oYpwtneg2zcnE2Z4l6mhrj2okrc5Q1/X2 +I2HChtIU4JYTisObtin10QKJX01CLfYXJLa8upWzKZ4/GOcHG+eAV3jXWoXidtjb +1Usw70amoTZ6mIVCkiu1QwCoa8+ycojGfZhvqMsAp1536ZcCul+Na+AbCv4zKS7F +kQQaImVrXdUiFansIoofGlw/JNuoKK6ssVpS5Ic3pgcCAwEAAaM1MDMwDgYDVR0P +AQH/BAQDAgCgMBMGA1UdJQQMMAoGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwCwYJ +KoZIhvcNAQELA4IBAQCKLREH7bXtXtZ+8vI6cjD7W3QikiArGqbl36bAhhWsJLp/ +p/ndKz39iFNaiZ3GlwIURWOOKx3y3GA0x9m8FR+Llthf0EQ8sUjnwaknWs0Y6DQ3 +jjPFZOpV3KPCFrdMJ3++E3MgwFC/Ih/N2ebFX9EcV9Vcc6oVWMdwT0fsrhu683rq +6GSR/3iVX1G/pmOiuaR0fNUaCyCfYrnI4zHBDgSfnlm3vIvN2lrsR/DQBakNL8DJ +HBgKxMGeUPoneBv+c8DMXIL0EhaFXRlBv9QW45/GiAIOuyFJ0i6hCtGZpJjq4OpQ +BRjCI+izPzFTjsxD4aORE+WOkyWFCGPWKfNejfw0 +-----END CERTIFICATE-----`) + keyData = []byte(`-----BEGIN RSA PRIVATE KEY----- +MIIEowIBAAKCAQEAq12HPT64ItfDlxJiez2tT9eJ8VKlv/HbhYN2ubvZL+9v0E9i +wBK2I/Xjxu7KWvVI642LyxMBmaVUMMikhXAwt9/6jaspgOJyf1+NutPFM6OUjikc +kEf4lTcAnS1tqO6mKiHvSPAVLShinC2d6DbNycTZniXqaGuPaiStzlDX9fYjYcKG +0hTglhOKw5u2KfXRAolfTUIt9hcktry6lbMpnj8Y5wcb54BXeNdaheJ22NvVSzDv +RqahNnqYhUKSK7VDAKhrz7JyiMZ9mG+oywCnXnfplwK6X41r4BsK/jMpLsWRBBoi +ZWtd1SIVqewiih8aXD8k26gorqyxWlLkhzemBwIDAQABAoIBAD2XYRs3JrGHQUpU +FkdbVKZkvrSY0vAZOqBTLuH0zUv4UATb8487anGkWBjRDLQCgxH+jucPTrztekQK +aW94clo0S3aNtV4YhbSYIHWs1a0It0UdK6ID7CmdWkAj6s0T8W8lQT7C46mWYVLm +5mFnCTHi6aB42jZrqmEpC7sivWwuU0xqj3Ml8kkxQCGmyc9JjmCB4OrFFC8NNt6M +ObvQkUI6Z3nO4phTbpxkE1/9dT0MmPIF7GhHVzJMS+EyyRYUDllZ0wvVSOM3qZT0 +JMUaBerkNwm9foKJ1+dv2nMKZZbJajv7suUDCfU44mVeaEO+4kmTKSGCGjjTBGkr +7L1ySDECgYEA5ElIMhpdBzIivCuBIH8LlUeuzd93pqssO1G2Xg0jHtfM4tz7fyeI +cr90dc8gpli24dkSxzLeg3Tn3wIj/Bu64m2TpZPZEIlukYvgdgArmRIPQVxerYey +OkrfTNkxU1HXsYjLCdGcGXs5lmb+K/kuTcFxaMOs7jZi7La+jEONwf8CgYEAwCs/ +rUOOA0klDsWWisbivOiNPII79c9McZCNBqncCBfMUoiGe8uWDEO4TFHN60vFuVk9 +8PkwpCfvaBUX+ajvbafIfHxsnfk1M04WLGCeqQ/ym5Q4sQoQOcC1b1y9qc/xEWfg +nIUuia0ukYRpl7qQa3tNg+BNFyjypW8zukUAC/kCgYB1/Kojuxx5q5/oQVPrx73k +2bevD+B3c+DYh9MJqSCNwFtUpYIWpggPxoQan4LwdsmO0PKzocb/ilyNFj4i/vII +NToqSc/WjDFpaDIKyuu9oWfhECye45NqLWhb/6VOuu4QA/Nsj7luMhIBehnEAHW+ +GkzTKM8oD1PxpEG3nPKXYQKBgQC6AuMPRt3XBl1NkCrpSBy/uObFlFaP2Enpf39S +3OZ0Gv0XQrnSaL1kP8TMcz68rMrGX8DaWYsgytstR4W+jyy7WvZwsUu+GjTJ5aMG +77uEcEBpIi9CBzivfn7hPccE8ZgqPf+n4i6q66yxBJflW5xhvafJqDtW2LcPNbW/ +bvzdmQKBgExALRUXpq+5dbmkdXBHtvXdRDZ6rVmrnjy4nI5bPw+1GqQqk6uAR6B/ +F6NmLCQOO4PDG/cuatNHIr2FrwTmGdEL6ObLUGWn9Oer9gJhHVqqsY5I4sEPo4XX +stR0Yiw0buV6DL/moUO0HIM9Bjh96HJp+LxiIS6UCdIhMPp5HoQa +-----END RSA PRIVATE KEY-----`) + validCert *tls.Certificate +) + +func init() { + cert, err := tls.X509KeyPair(certData, keyData) + if err != nil { + panic(err) + } + validCert = &cert +} + +func TestCacheKey(t *testing.T) { + c1 := &api.ExecConfig{ + Command: "foo-bar", + Args: []string{"1", "2"}, + Env: []api.ExecEnvVar{ + {Name: "3", Value: "4"}, + {Name: "5", Value: "6"}, + {Name: "7", Value: "8"}, + }, + APIVersion: "client.authentication.k8s.io/v1alpha1", + } + c2 := &api.ExecConfig{ + Command: "foo-bar", + Args: []string{"1", "2"}, + Env: []api.ExecEnvVar{ + {Name: "3", Value: "4"}, + {Name: "5", Value: "6"}, + {Name: "7", Value: "8"}, + }, + APIVersion: "client.authentication.k8s.io/v1alpha1", + } + c3 := &api.ExecConfig{ + Command: "foo-bar", + Args: []string{"1", "2"}, + Env: []api.ExecEnvVar{ + {Name: "3", Value: "4"}, + {Name: "5", Value: "6"}, + }, + APIVersion: "client.authentication.k8s.io/v1alpha1", + } + key1 := cacheKey(c1) + key2 := cacheKey(c2) + key3 := cacheKey(c3) + if key1 != key2 { + t.Error("key1 and key2 didn't match") + } + if key1 == key3 { + t.Error("key1 and key3 matched") + } + if key2 == key3 { + t.Error("key2 and key3 matched") + } +} + +func compJSON(t *testing.T, got, want []byte) { + t.Helper() + gotJSON := &bytes.Buffer{} + wantJSON := &bytes.Buffer{} + + if err := json.Indent(gotJSON, got, "", " "); err != nil { + t.Errorf("got invalid JSON: %v", err) + } + if err := json.Indent(wantJSON, want, "", " "); err != nil { + t.Errorf("want invalid JSON: %v", err) + } + g := strings.TrimSpace(gotJSON.String()) + w := strings.TrimSpace(wantJSON.String()) + if g != w { + t.Errorf("wanted %q, got %q", w, g) + } +} + +func TestRefreshCreds(t *testing.T) { + tests := []struct { + name string + config api.ExecConfig + output string + interactive bool + response *clientauthentication.Response + wantInput string + wantCreds credentials + wantExpiry time.Time + wantErr bool + }{ + { + name: "basic-request", + config: api.ExecConfig{ + APIVersion: "client.authentication.k8s.io/v1alpha1", + }, + wantInput: `{ + "kind":"ExecCredential", + "apiVersion":"client.authentication.k8s.io/v1alpha1", + "spec": {} + }`, + output: `{ + "kind": "ExecCredential", + "apiVersion": "client.authentication.k8s.io/v1alpha1", + "status": { + "token": "foo-bar" + } + }`, + wantCreds: credentials{token: "foo-bar"}, + }, + { + name: "interactive", + config: api.ExecConfig{ + APIVersion: "client.authentication.k8s.io/v1alpha1", + }, + interactive: true, + wantInput: `{ + "kind":"ExecCredential", + "apiVersion":"client.authentication.k8s.io/v1alpha1", + "spec": { + "interactive": true + } + }`, + output: `{ + "kind": "ExecCredential", + "apiVersion": "client.authentication.k8s.io/v1alpha1", + "status": { + "token": "foo-bar" + } + }`, + wantCreds: credentials{token: "foo-bar"}, + }, + { + name: "response", + config: api.ExecConfig{ + APIVersion: "client.authentication.k8s.io/v1alpha1", + }, + response: &clientauthentication.Response{ + Header: map[string][]string{ + "WWW-Authenticate": {`Basic realm="Access to the staging site", charset="UTF-8"`}, + }, + Code: 401, + }, + wantInput: `{ + "kind":"ExecCredential", + "apiVersion":"client.authentication.k8s.io/v1alpha1", + "spec": { + "response": { + "header": { + "WWW-Authenticate": [ + "Basic realm=\"Access to the staging site\", charset=\"UTF-8\"" + ] + }, + "code": 401 + } + } + }`, + output: `{ + "kind": "ExecCredential", + "apiVersion": "client.authentication.k8s.io/v1alpha1", + "status": { + "token": "foo-bar" + } + }`, + wantCreds: credentials{token: "foo-bar"}, + }, + { + name: "expiry", + config: api.ExecConfig{ + APIVersion: "client.authentication.k8s.io/v1alpha1", + }, + wantInput: `{ + "kind":"ExecCredential", + "apiVersion":"client.authentication.k8s.io/v1alpha1", + "spec": {} + }`, + output: `{ + "kind": "ExecCredential", + "apiVersion": "client.authentication.k8s.io/v1alpha1", + "status": { + "token": "foo-bar", + "expirationTimestamp": "2006-01-02T15:04:05Z" + } + }`, + wantExpiry: time.Date(2006, 01, 02, 15, 04, 05, 0, time.UTC), + wantCreds: credentials{token: "foo-bar"}, + }, + { + name: "no-group-version", + config: api.ExecConfig{ + APIVersion: "client.authentication.k8s.io/v1alpha1", + }, + wantInput: `{ + "kind":"ExecCredential", + "apiVersion":"client.authentication.k8s.io/v1alpha1", + "spec": {} + }`, + output: `{ + "kind": "ExecCredential", + "status": { + "token": "foo-bar" + } + }`, + wantErr: true, + }, + { + name: "no-status", + config: api.ExecConfig{ + APIVersion: "client.authentication.k8s.io/v1alpha1", + }, + wantInput: `{ + "kind":"ExecCredential", + "apiVersion":"client.authentication.k8s.io/v1alpha1", + "spec": {} + }`, + output: `{ + "kind": "ExecCredential", + "apiVersion":"client.authentication.k8s.io/v1alpha1" + }`, + wantErr: true, + }, + { + name: "no-creds", + config: api.ExecConfig{ + APIVersion: "client.authentication.k8s.io/v1alpha1", + }, + wantInput: `{ + "kind":"ExecCredential", + "apiVersion":"client.authentication.k8s.io/v1alpha1", + "spec": {} + }`, + output: `{ + "kind": "ExecCredential", + "apiVersion":"client.authentication.k8s.io/v1alpha1", + "status": {} + }`, + wantErr: true, + }, + { + name: "TLS credentials", + config: api.ExecConfig{ + APIVersion: "client.authentication.k8s.io/v1alpha1", + }, + wantInput: `{ + "kind":"ExecCredential", + "apiVersion":"client.authentication.k8s.io/v1alpha1", + "spec": {} + }`, + output: fmt.Sprintf(`{ + "kind": "ExecCredential", + "apiVersion": "client.authentication.k8s.io/v1alpha1", + "status": { + "clientKeyData": %q, + "clientCertificateData": %q + } + }`, keyData, certData), + wantCreds: credentials{cert: validCert}, + }, + { + name: "bad TLS credentials", + config: api.ExecConfig{ + APIVersion: "client.authentication.k8s.io/v1alpha1", + }, + wantInput: `{ + "kind":"ExecCredential", + "apiVersion":"client.authentication.k8s.io/v1alpha1", + "spec": {} + }`, + output: `{ + "kind": "ExecCredential", + "apiVersion": "client.authentication.k8s.io/v1alpha1", + "status": { + "clientKeyData": "foo", + "clientCertificateData": "bar" + } + }`, + wantErr: true, + }, + { + name: "cert but no key", + config: api.ExecConfig{ + APIVersion: "client.authentication.k8s.io/v1alpha1", + }, + wantInput: `{ + "kind":"ExecCredential", + "apiVersion":"client.authentication.k8s.io/v1alpha1", + "spec": {} + }`, + output: fmt.Sprintf(`{ + "kind": "ExecCredential", + "apiVersion": "client.authentication.k8s.io/v1alpha1", + "status": { + "clientCertificateData": %q + } + }`, certData), + wantErr: true, + }, + { + name: "beta-basic-request", + config: api.ExecConfig{ + APIVersion: "client.authentication.k8s.io/v1beta1", + }, + output: `{ + "kind": "ExecCredential", + "apiVersion": "client.authentication.k8s.io/v1beta1", + "status": { + "token": "foo-bar" + } + }`, + wantCreds: credentials{token: "foo-bar"}, + }, + { + name: "beta-expiry", + config: api.ExecConfig{ + APIVersion: "client.authentication.k8s.io/v1beta1", + }, + output: `{ + "kind": "ExecCredential", + "apiVersion": "client.authentication.k8s.io/v1beta1", + "status": { + "token": "foo-bar", + "expirationTimestamp": "2006-01-02T15:04:05Z" + } + }`, + wantExpiry: time.Date(2006, 01, 02, 15, 04, 05, 0, time.UTC), + wantCreds: credentials{token: "foo-bar"}, + }, + { + name: "beta-no-group-version", + config: api.ExecConfig{ + APIVersion: "client.authentication.k8s.io/v1beta1", + }, + output: `{ + "kind": "ExecCredential", + "status": { + "token": "foo-bar" + } + }`, + wantErr: true, + }, + { + name: "beta-no-status", + config: api.ExecConfig{ + APIVersion: "client.authentication.k8s.io/v1beta1", + }, + output: `{ + "kind": "ExecCredential", + "apiVersion":"client.authentication.k8s.io/v1beta1" + }`, + wantErr: true, + }, + { + name: "beta-no-token", + config: api.ExecConfig{ + APIVersion: "client.authentication.k8s.io/v1beta1", + }, + output: `{ + "kind": "ExecCredential", + "apiVersion":"client.authentication.k8s.io/v1beta1", + "status": {} + }`, + wantErr: true, + }, + } + + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + c := test.config + + c.Command = "./testdata/test-plugin.sh" + c.Env = append(c.Env, api.ExecEnvVar{ + Name: "TEST_OUTPUT", + Value: test.output, + }) + + a, err := newAuthenticator(newCache(), &c) + if err != nil { + t.Fatal(err) + } + + stderr := &bytes.Buffer{} + a.stderr = stderr + a.interactive = test.interactive + a.environ = func() []string { return nil } + + if err := a.refreshCredsLocked(test.response); err != nil { + if !test.wantErr { + t.Errorf("get token %v", err) + } + return + } + if test.wantErr { + t.Fatal("expected error getting token") + } + + if !reflect.DeepEqual(a.cachedCreds, &test.wantCreds) { + t.Errorf("expected credentials %+v got %+v", &test.wantCreds, a.cachedCreds) + } + + if !a.exp.Equal(test.wantExpiry) { + t.Errorf("expected expiry %v got %v", test.wantExpiry, a.exp) + } + + if test.wantInput == "" { + if got := strings.TrimSpace(stderr.String()); got != "" { + t.Errorf("expected no input parameters, got %q", got) + } + return + } + + compJSON(t, stderr.Bytes(), []byte(test.wantInput)) + }) + } +} + +func TestRoundTripper(t *testing.T) { + wantToken := "" + + n := time.Now() + now := func() time.Time { return n } + + env := []string{""} + environ := func() []string { + s := make([]string, len(env)) + copy(s, env) + return s + } + + setOutput := func(s string) { + env[0] = "TEST_OUTPUT=" + s + } + + handler := func(w http.ResponseWriter, r *http.Request) { + gotToken := "" + parts := strings.Split(r.Header.Get("Authorization"), " ") + if len(parts) > 1 && strings.EqualFold(parts[0], "bearer") { + gotToken = parts[1] + } + + if wantToken != gotToken { + http.Error(w, "Unauthorized", http.StatusUnauthorized) + return + } + fmt.Fprintln(w, "ok") + } + server := httptest.NewServer(http.HandlerFunc(handler)) + + c := api.ExecConfig{ + Command: "./testdata/test-plugin.sh", + APIVersion: "client.authentication.k8s.io/v1alpha1", + } + a, err := newAuthenticator(newCache(), &c) + if err != nil { + t.Fatal(err) + } + a.environ = environ + a.now = now + a.stderr = ioutil.Discard + + tc := &transport.Config{} + if err := a.UpdateTransportConfig(tc); err != nil { + t.Fatal(err) + } + client := http.Client{ + Transport: tc.WrapTransport(http.DefaultTransport), + } + + get := func(t *testing.T, statusCode int) { + t.Helper() + resp, err := client.Get(server.URL) + if err != nil { + t.Fatal(err) + } + defer resp.Body.Close() + if resp.StatusCode != statusCode { + t.Errorf("wanted status %d got %d", statusCode, resp.StatusCode) + } + } + + setOutput(`{ + "kind": "ExecCredential", + "apiVersion": "client.authentication.k8s.io/v1alpha1", + "status": { + "token": "token1" + } + }`) + wantToken = "token1" + get(t, http.StatusOK) + + setOutput(`{ + "kind": "ExecCredential", + "apiVersion": "client.authentication.k8s.io/v1alpha1", + "status": { + "token": "token2" + } + }`) + // Previous token should be cached + get(t, http.StatusOK) + + wantToken = "token2" + // Token is still cached, hits unauthorized but causes token to rotate. + get(t, http.StatusUnauthorized) + // Follow up request uses the rotated token. + get(t, http.StatusOK) + + setOutput(`{ + "kind": "ExecCredential", + "apiVersion": "client.authentication.k8s.io/v1alpha1", + "status": { + "token": "token3", + "expirationTimestamp": "` + now().Add(time.Hour).Format(time.RFC3339Nano) + `" + } + }`) + wantToken = "token3" + // Token is still cached, hit's unauthorized but causes rotation to token with an expiry. + get(t, http.StatusUnauthorized) + get(t, http.StatusOK) + + // Move time forward 2 hours, "token3" is now expired. + n = n.Add(time.Hour * 2) + setOutput(`{ + "kind": "ExecCredential", + "apiVersion": "client.authentication.k8s.io/v1alpha1", + "status": { + "token": "token4", + "expirationTimestamp": "` + now().Add(time.Hour).Format(time.RFC3339Nano) + `" + } + }`) + wantToken = "token4" + // Old token is expired, should refresh automatically without hitting a 401. + get(t, http.StatusOK) +} + +func TestTLSCredentials(t *testing.T) { + now := time.Now() + + certPool := x509.NewCertPool() + cert, key := genClientCert(t) + if !certPool.AppendCertsFromPEM(cert) { + t.Fatal("failed to add client cert to CertPool") + } + + server := httptest.NewUnstartedServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + fmt.Fprintln(w, "ok") + })) + server.TLS = &tls.Config{ + ClientAuth: tls.RequireAndVerifyClientCert, + ClientCAs: certPool, + } + server.StartTLS() + defer server.Close() + + a, err := newAuthenticator(newCache(), &api.ExecConfig{ + Command: "./testdata/test-plugin.sh", + APIVersion: "client.authentication.k8s.io/v1alpha1", + }) + if err != nil { + t.Fatal(err) + } + var output *clientauthentication.ExecCredential + a.environ = func() []string { + data, err := runtime.Encode(codecs.LegacyCodec(a.group), output) + if err != nil { + t.Fatal(err) + } + return []string{"TEST_OUTPUT=" + string(data)} + } + a.now = func() time.Time { return now } + a.stderr = ioutil.Discard + + // We're not interested in server's cert, this test is about client cert. + tc := &transport.Config{TLS: transport.TLSConfig{Insecure: true}} + if err := a.UpdateTransportConfig(tc); err != nil { + t.Fatal(err) + } + + get := func(t *testing.T, desc string, wantErr bool) { + t.Run(desc, func(t *testing.T) { + tlsCfg, err := transport.TLSConfigFor(tc) + if err != nil { + t.Fatal("TLSConfigFor:", err) + } + client := http.Client{ + Transport: &http.Transport{TLSClientConfig: tlsCfg}, + } + resp, err := client.Get(server.URL) + switch { + case err != nil && !wantErr: + t.Errorf("got client.Get error: %q, want nil", err) + case err == nil && wantErr: + t.Error("got nil client.Get error, want non-nil") + } + if err == nil { + resp.Body.Close() + } + }) + } + + output = &clientauthentication.ExecCredential{ + Status: &clientauthentication.ExecCredentialStatus{ + ClientCertificateData: string(cert), + ClientKeyData: string(key), + ExpirationTimestamp: &v1.Time{now.Add(time.Hour)}, + }, + } + get(t, "valid TLS cert", false) + + // Advance time to force re-exec. + nCert, nKey := genClientCert(t) + now = now.Add(time.Hour * 2) + output = &clientauthentication.ExecCredential{ + Status: &clientauthentication.ExecCredentialStatus{ + ClientCertificateData: string(nCert), + ClientKeyData: string(nKey), + ExpirationTimestamp: &v1.Time{now.Add(time.Hour)}, + }, + } + get(t, "untrusted TLS cert", true) + + now = now.Add(time.Hour * 2) + output = &clientauthentication.ExecCredential{ + Status: &clientauthentication.ExecCredentialStatus{ + ClientCertificateData: string(cert), + ClientKeyData: string(key), + ExpirationTimestamp: &v1.Time{now.Add(time.Hour)}, + }, + } + get(t, "valid TLS cert again", false) +} + +// genClientCert generates an x509 certificate for testing. Certificate and key +// are returned in PEM encoding. +func genClientCert(t *testing.T) ([]byte, []byte) { + key, err := ecdsa.GenerateKey(elliptic.P256(), rand.Reader) + if err != nil { + t.Fatal(err) + } + keyRaw, err := x509.MarshalECPrivateKey(key) + if err != nil { + t.Fatal(err) + } + serialNumberLimit := new(big.Int).Lsh(big.NewInt(1), 128) + serialNumber, err := rand.Int(rand.Reader, serialNumberLimit) + if err != nil { + t.Fatal(err) + } + cert := &x509.Certificate{ + SerialNumber: serialNumber, + Subject: pkix.Name{Organization: []string{"Acme Co"}}, + NotBefore: time.Now(), + NotAfter: time.Now().Add(24 * time.Hour), + + KeyUsage: x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature, + ExtKeyUsage: []x509.ExtKeyUsage{x509.ExtKeyUsageClientAuth}, + BasicConstraintsValid: true, + } + certRaw, err := x509.CreateCertificate(rand.Reader, cert, cert, key.Public(), key) + if err != nil { + t.Fatal(err) + } + return pem.EncodeToMemory(&pem.Block{Type: "CERTIFICATE", Bytes: certRaw}), + pem.EncodeToMemory(&pem.Block{Type: "PRIVATE KEY", Bytes: keyRaw}) +} diff --git a/vendor/k8s.io/client-go/plugin/pkg/client/auth/exec/testdata/test-plugin.sh b/vendor/k8s.io/client-go/plugin/pkg/client/auth/exec/testdata/test-plugin.sh new file mode 100755 index 000000000..aa7daad5f --- /dev/null +++ b/vendor/k8s.io/client-go/plugin/pkg/client/auth/exec/testdata/test-plugin.sh @@ -0,0 +1,18 @@ +#!/bin/bash -e + +# Copyright 2018 The Kubernetes Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +>&2 echo "$KUBERNETES_EXEC_INFO" +echo "$TEST_OUTPUT" diff --git a/vendor/k8s.io/client-go/plugin/pkg/client/auth/gcp/BUILD b/vendor/k8s.io/client-go/plugin/pkg/client/auth/gcp/BUILD deleted file mode 100644 index e57e896ae..000000000 --- a/vendor/k8s.io/client-go/plugin/pkg/client/auth/gcp/BUILD +++ /dev/null @@ -1,43 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_test( - name = "go_default_test", - srcs = ["gcp_test.go"], - embed = [":go_default_library"], - deps = ["//vendor/golang.org/x/oauth2:go_default_library"], -) - -go_library( - name = "go_default_library", - srcs = ["gcp.go"], - importpath = "k8s.io/client-go/plugin/pkg/client/auth/gcp", - deps = [ - "//vendor/github.com/golang/glog:go_default_library", - "//vendor/golang.org/x/net/context:go_default_library", - "//vendor/golang.org/x/oauth2:go_default_library", - "//vendor/golang.org/x/oauth2/google:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/net:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/yaml:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/util/jsonpath:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/plugin/pkg/client/auth/gcp/gcp.go b/vendor/k8s.io/client-go/plugin/pkg/client/auth/gcp/gcp.go index 3a4f86777..e44c2adab 100644 --- a/vendor/k8s.io/client-go/plugin/pkg/client/auth/gcp/gcp.go +++ b/vendor/k8s.io/client-go/plugin/pkg/client/auth/gcp/gcp.go @@ -18,6 +18,7 @@ package gcp import ( "bytes" + "context" "encoding/json" "fmt" "net/http" @@ -26,19 +27,18 @@ import ( "sync" "time" - "github.com/golang/glog" - "golang.org/x/net/context" "golang.org/x/oauth2" "golang.org/x/oauth2/google" "k8s.io/apimachinery/pkg/util/net" "k8s.io/apimachinery/pkg/util/yaml" restclient "k8s.io/client-go/rest" "k8s.io/client-go/util/jsonpath" + "k8s.io/klog" ) func init() { if err := restclient.RegisterAuthProviderPlugin("gcp", newGCPAuthProvider); err != nil { - glog.Fatalf("Failed to register gcp auth plugin: %v", err) + klog.Fatalf("Failed to register gcp auth plugin: %v", err) } } @@ -174,7 +174,13 @@ func parseScopes(gcpConfig map[string]string) []string { } func (g *gcpAuthProvider) WrapTransport(rt http.RoundTripper) http.RoundTripper { - return &conditionalTransport{&oauth2.Transport{Source: g.tokenSource, Base: rt}, g.persister} + var resetCache map[string]string + if cts, ok := g.tokenSource.(*cachedTokenSource); ok { + resetCache = cts.baseCache() + } else { + resetCache = make(map[string]string) + } + return &conditionalTransport{&oauth2.Transport{Source: g.tokenSource, Base: rt}, g.persister, resetCache} } func (g *gcpAuthProvider) Login() error { return nil } @@ -217,7 +223,7 @@ func (t *cachedTokenSource) Token() (*oauth2.Token, error) { cache := t.update(tok) if t.persister != nil { if err := t.persister.Persist(cache); err != nil { - glog.V(4).Infof("Failed to persist token: %v", err) + klog.V(4).Infof("Failed to persist token: %v", err) } } return tok, nil @@ -247,6 +253,19 @@ func (t *cachedTokenSource) update(tok *oauth2.Token) map[string]string { return ret } +// baseCache is the base configuration value for this TokenSource, without any cached ephemeral tokens. +func (t *cachedTokenSource) baseCache() map[string]string { + t.lk.Lock() + defer t.lk.Unlock() + ret := map[string]string{} + for k, v := range t.cache { + ret[k] = v + } + delete(ret, "access-token") + delete(ret, "expiry") + return ret +} + type commandTokenSource struct { cmd string args []string @@ -310,7 +329,7 @@ func (c *commandTokenSource) parseTokenCmdOutput(output []byte) (*oauth2.Token, } var expiry time.Time if t, err := time.Parse(c.timeFmt, expiryStr); err != nil { - glog.V(4).Infof("Failed to parse token expiry from %s (fmt=%s): %v", expiryStr, c.timeFmt, err) + klog.V(4).Infof("Failed to parse token expiry from %s (fmt=%s): %v", expiryStr, c.timeFmt, err) } else { expiry = t } @@ -337,6 +356,7 @@ func parseJSONPath(input interface{}, name, template string) (string, error) { type conditionalTransport struct { oauthTransport *oauth2.Transport persister restclient.AuthProviderConfigPersister + resetCache map[string]string } var _ net.RoundTripperWrapper = &conditionalTransport{} @@ -353,9 +373,8 @@ func (t *conditionalTransport) RoundTrip(req *http.Request) (*http.Response, err } if res.StatusCode == 401 { - glog.V(4).Infof("The credentials that were supplied are invalid for the target cluster") - emptyCache := make(map[string]string) - t.persister.Persist(emptyCache) + klog.V(4).Infof("The credentials that were supplied are invalid for the target cluster") + t.persister.Persist(t.resetCache) } return res, nil diff --git a/vendor/k8s.io/client-go/plugin/pkg/client/auth/gcp/gcp_test.go b/vendor/k8s.io/client-go/plugin/pkg/client/auth/gcp/gcp_test.go index 32271b252..c8fbb3516 100644 --- a/vendor/k8s.io/client-go/plugin/pkg/client/auth/gcp/gcp_test.go +++ b/vendor/k8s.io/client-go/plugin/pkg/client/auth/gcp/gcp_test.go @@ -442,37 +442,61 @@ func (t *MockTransport) RoundTrip(req *http.Request) (*http.Response, error) { return t.res, nil } -func TestClearingCredentials(t *testing.T) { +func Test_cmdTokenSource_roundTrip(t *testing.T) { + accessToken := "fakeToken" fakeExpiry := time.Now().Add(time.Hour) - - cache := map[string]string{ - "access-token": "fakeToken", - "expiry": fakeExpiry.String(), + fakeExpiryStr := fakeExpiry.Format(time.RFC3339Nano) + fs := &fakeTokenSource{ + token: &oauth2.Token{ + AccessToken: accessToken, + Expiry: fakeExpiry, + }, } - cts := cachedTokenSource{ - source: nil, - accessToken: cache["access-token"], - expiry: fakeExpiry, - persister: nil, - cache: nil, + cmdCache := map[string]string{ + "cmd-path": "/path/to/tokensource/cmd", + "cmd-args": "--output=json", + } + cmdCacheUpdated := map[string]string{ + "cmd-path": "/path/to/tokensource/cmd", + "cmd-args": "--output=json", + "access-token": accessToken, + "expiry": fakeExpiryStr, + } + simpleCacheUpdated := map[string]string{ + "access-token": accessToken, + "expiry": fakeExpiryStr, } tests := []struct { - name string - res http.Response - cache map[string]string + name string + res http.Response + baseCache, expectedCache map[string]string }{ { "Unauthorized", http.Response{StatusCode: 401}, make(map[string]string), + make(map[string]string), + }, + { + "Unauthorized, nonempty defaultCache", + http.Response{StatusCode: 401}, + cmdCache, + cmdCache, }, { "Authorized", http.Response{StatusCode: 200}, - cache, + make(map[string]string), + simpleCacheUpdated, + }, + { + "Authorized, nonempty defaultCache", + http.Response{StatusCode: 200}, + cmdCache, + cmdCacheUpdated, }, } @@ -480,17 +504,23 @@ func TestClearingCredentials(t *testing.T) { req := http.Request{Header: http.Header{}} for _, tc := range tests { - authProvider := gcpAuthProvider{&cts, persister} + cts, err := newCachedTokenSource(accessToken, fakeExpiry.String(), persister, fs, tc.baseCache) + if err != nil { + t.Fatalf("unexpected error from newCachedTokenSource: %v", err) + } + authProvider := gcpAuthProvider{cts, persister} fakeTransport := MockTransport{&tc.res} - transport := (authProvider.WrapTransport(&fakeTransport)) - persister.Persist(cache) + // call Token to persist/update cache + if _, err := cts.Token(); err != nil { + t.Fatalf("unexpected error from cachedTokenSource.Token(): %v", err) + } transport.RoundTrip(&req) - if got := persister.read(); !reflect.DeepEqual(got, tc.cache) { - t.Errorf("got cache %v, want %v", got, tc.cache) + if got := persister.read(); !reflect.DeepEqual(got, tc.expectedCache) { + t.Errorf("got cache %v, want %v", got, tc.expectedCache) } } diff --git a/vendor/k8s.io/client-go/plugin/pkg/client/auth/oidc/BUILD b/vendor/k8s.io/client-go/plugin/pkg/client/auth/oidc/BUILD deleted file mode 100644 index ee76fac0d..000000000 --- a/vendor/k8s.io/client-go/plugin/pkg/client/auth/oidc/BUILD +++ /dev/null @@ -1,38 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_test( - name = "go_default_test", - srcs = ["oidc_test.go"], - embed = [":go_default_library"], -) - -go_library( - name = "go_default_library", - srcs = ["oidc.go"], - importpath = "k8s.io/client-go/plugin/pkg/client/auth/oidc", - deps = [ - "//vendor/github.com/golang/glog:go_default_library", - "//vendor/golang.org/x/oauth2:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/net:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/plugin/pkg/client/auth/oidc/OWNERS b/vendor/k8s.io/client-go/plugin/pkg/client/auth/oidc/OWNERS index d2210cb89..e0f3c6ca9 100644 --- a/vendor/k8s.io/client-go/plugin/pkg/client/auth/oidc/OWNERS +++ b/vendor/k8s.io/client-go/plugin/pkg/client/auth/oidc/OWNERS @@ -2,3 +2,4 @@ approvers: - ericchiang reviewers: - ericchiang +- rithujohn191 diff --git a/vendor/k8s.io/client-go/plugin/pkg/client/auth/oidc/oidc.go b/vendor/k8s.io/client-go/plugin/pkg/client/auth/oidc/oidc.go index 1fe52c524..1383a97c6 100644 --- a/vendor/k8s.io/client-go/plugin/pkg/client/auth/oidc/oidc.go +++ b/vendor/k8s.io/client-go/plugin/pkg/client/auth/oidc/oidc.go @@ -28,10 +28,10 @@ import ( "sync" "time" - "github.com/golang/glog" "golang.org/x/oauth2" "k8s.io/apimachinery/pkg/util/net" restclient "k8s.io/client-go/rest" + "k8s.io/klog" ) const ( @@ -49,7 +49,7 @@ const ( func init() { if err := restclient.RegisterAuthProviderPlugin("oidc", newOIDCAuthProvider); err != nil { - glog.Fatalf("Failed to register oidc auth plugin: %v", err) + klog.Fatalf("Failed to register oidc auth plugin: %v", err) } } @@ -124,7 +124,7 @@ func newOIDCAuthProvider(_ string, cfg map[string]string, persister restclient.A } if len(cfg[cfgExtraScopes]) > 0 { - glog.V(2).Infof("%s auth provider field depricated, refresh request don't send scopes", + klog.V(2).Infof("%s auth provider field depricated, refresh request don't send scopes", cfgExtraScopes) } @@ -279,7 +279,7 @@ func (p *oidcAuthProvider) idToken() (string, error) { // Persist new config and if successful, update the in memory config. if err = p.persister.Persist(newCfg); err != nil { - return "", fmt.Errorf("could not perist new tokens: %v", err) + return "", fmt.Errorf("could not persist new tokens: %v", err) } p.cfg = newCfg diff --git a/vendor/k8s.io/client-go/plugin/pkg/client/auth/openstack/BUILD b/vendor/k8s.io/client-go/plugin/pkg/client/auth/openstack/BUILD deleted file mode 100644 index 750ffd6f5..000000000 --- a/vendor/k8s.io/client-go/plugin/pkg/client/auth/openstack/BUILD +++ /dev/null @@ -1,38 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_test( - name = "go_default_test", - srcs = ["openstack_test.go"], - embed = [":go_default_library"], -) - -go_library( - name = "go_default_library", - srcs = ["openstack.go"], - importpath = "k8s.io/client-go/plugin/pkg/client/auth/openstack", - deps = [ - "//vendor/github.com/golang/glog:go_default_library", - "//vendor/github.com/gophercloud/gophercloud/openstack:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/net:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/plugin/pkg/client/auth/openstack/openstack.go b/vendor/k8s.io/client-go/plugin/pkg/client/auth/openstack/openstack.go index 490eff128..fab5104ef 100644 --- a/vendor/k8s.io/client-go/plugin/pkg/client/auth/openstack/openstack.go +++ b/vendor/k8s.io/client-go/plugin/pkg/client/auth/openstack/openstack.go @@ -22,8 +22,9 @@ import ( "sync" "time" - "github.com/golang/glog" + "github.com/gophercloud/gophercloud" "github.com/gophercloud/gophercloud/openstack" + "k8s.io/klog" "k8s.io/apimachinery/pkg/util/net" restclient "k8s.io/client-go/rest" @@ -31,7 +32,7 @@ import ( func init() { if err := restclient.RegisterAuthProviderPlugin("openstack", newOpenstackAuthProvider); err != nil { - glog.Fatalf("Failed to register openstack auth plugin: %s", err) + klog.Fatalf("Failed to register openstack auth plugin: %s", err) } } @@ -42,8 +43,7 @@ const DefaultTTLDuration = 10 * time.Minute // the environment variables to determine the client identity, and generates a // token which will be inserted into the request header later. type openstackAuthProvider struct { - ttl time.Duration - + ttl time.Duration tokenGetter TokenGetter } @@ -52,13 +52,23 @@ type TokenGetter interface { Token() (string, error) } -type tokenGetter struct{} +type tokenGetter struct { + authOpt *gophercloud.AuthOptions +} // Token creates a token by authenticate with keystone. -func (*tokenGetter) Token() (string, error) { - options, err := openstack.AuthOptionsFromEnv() - if err != nil { - return "", fmt.Errorf("failed to read openstack env vars: %s", err) +func (t *tokenGetter) Token() (string, error) { + var options gophercloud.AuthOptions + var err error + if t.authOpt == nil { + // reads the config from the environment + klog.V(4).Info("reading openstack config from the environment variables") + options, err = openstack.AuthOptionsFromEnv() + if err != nil { + return "", fmt.Errorf("failed to read openstack env vars: %s", err) + } + } else { + options = *t.authOpt } client, err := openstack.AuthenticatedClient(options) if err != nil { @@ -85,7 +95,7 @@ func (c *cachedGetter) Token() (string, error) { var err error // no token or exceeds the TTL - if c.token == "" || time.Now().Sub(c.born) > c.ttl { + if c.token == "" || time.Since(c.born) > c.ttl { c.token, err = c.tokenGetter.Token() if err != nil { return "", fmt.Errorf("failed to get token: %s", err) @@ -116,7 +126,7 @@ func (t *tokenRoundTripper) RoundTrip(req *http.Request) (*http.Response, error) if err == nil { req.Header.Set("Authorization", "Bearer "+token) } else { - glog.V(4).Infof("failed to get token: %s", err) + klog.V(4).Infof("failed to get token: %s", err) } return t.RoundTripper.RoundTrip(req) @@ -126,10 +136,11 @@ func (t *tokenRoundTripper) WrappedRoundTripper() http.RoundTripper { return t.R // newOpenstackAuthProvider creates an auth provider which works with openstack // environment. -func newOpenstackAuthProvider(clusterAddress string, config map[string]string, persister restclient.AuthProviderConfigPersister) (restclient.AuthProvider, error) { +func newOpenstackAuthProvider(_ string, config map[string]string, persister restclient.AuthProviderConfigPersister) (restclient.AuthProvider, error) { var ttlDuration time.Duration var err error + klog.Warningf("WARNING: in-tree openstack auth plugin is now deprecated. please use the \"client-keystone-auth\" kubectl/client-go credential plugin instead") ttl, found := config["ttl"] if !found { ttlDuration = DefaultTTLDuration @@ -145,11 +156,27 @@ func newOpenstackAuthProvider(clusterAddress string, config map[string]string, p } } - // TODO: read/persist client configuration(OS_XXX env vars) in config + authOpt := gophercloud.AuthOptions{ + IdentityEndpoint: config["identityEndpoint"], + Username: config["username"], + Password: config["password"], + DomainName: config["name"], + TenantID: config["tenantId"], + TenantName: config["tenantName"], + } + + getter := tokenGetter{} + // not empty + if (authOpt != gophercloud.AuthOptions{}) { + if len(authOpt.IdentityEndpoint) == 0 { + return nil, fmt.Errorf("empty %q in the config for openstack auth provider", "identityEndpoint") + } + getter.authOpt = &authOpt + } return &openstackAuthProvider{ ttl: ttlDuration, - tokenGetter: &tokenGetter{}, + tokenGetter: &getter, }, nil } diff --git a/vendor/k8s.io/client-go/plugin/pkg/client/auth/openstack/openstack_test.go b/vendor/k8s.io/client-go/plugin/pkg/client/auth/openstack/openstack_test.go index 411bec70f..24d55b9fc 100644 --- a/vendor/k8s.io/client-go/plugin/pkg/client/auth/openstack/openstack_test.go +++ b/vendor/k8s.io/client-go/plugin/pkg/client/auth/openstack/openstack_test.go @@ -114,3 +114,60 @@ func TestOpenstackAuthProvider(t *testing.T) { } } + +type fakePersister struct{} + +func (i *fakePersister) Persist(map[string]string) error { + return nil +} + +func TestNewOpenstackAuthProvider(t *testing.T) { + tests := []struct { + name string + config map[string]string + expectError bool + }{ + { + name: "normal config without openstack configurations", + config: map[string]string{ + "ttl": "1s", + "foo": "bar", + }, + }, + { + name: "openstack auth provider: missing identityEndpoint", + config: map[string]string{ + "ttl": "1s", + "foo": "bar", + "username": "xyz", + "password": "123", + "tenantName": "admin", + }, + expectError: true, + }, + { + name: "openstack auth provider", + config: map[string]string{ + "ttl": "1s", + "foo": "bar", + "identityEndpoint": "http://controller:35357/v3", + "username": "xyz", + "password": "123", + "tenantName": "admin", + }, + }, + } + + for _, test := range tests { + _, err := newOpenstackAuthProvider("test", test.config, &fakePersister{}) + if err != nil { + if !test.expectError { + t.Errorf("unexpected error: %v", err) + } + } else { + if test.expectError { + t.Error("expect error, but nil") + } + } + } +} diff --git a/vendor/k8s.io/client-go/rest/BUILD b/vendor/k8s.io/client-go/rest/BUILD deleted file mode 100644 index ceab3512c..000000000 --- a/vendor/k8s.io/client-go/rest/BUILD +++ /dev/null @@ -1,98 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_test( - name = "go_default_test", - srcs = [ - "client_test.go", - "config_test.go", - "plugin_test.go", - "request_test.go", - "url_utils_test.go", - "urlbackoff_test.go", - ], - embed = [":go_default_library"], - deps = [ - "//vendor/github.com/golang/glog:go_default_library", - "//vendor/github.com/google/gofuzz:go_default_library", - "//vendor/github.com/stretchr/testify/assert:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer/streaming:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/clock:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/diff:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/httpstream:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", - "//vendor/k8s.io/client-go/rest/watch:go_default_library", - "//vendor/k8s.io/client-go/tools/clientcmd/api:go_default_library", - "//vendor/k8s.io/client-go/util/flowcontrol:go_default_library", - "//vendor/k8s.io/client-go/util/testing:go_default_library", - ], -) - -go_library( - name = "go_default_library", - srcs = [ - "client.go", - "config.go", - "plugin.go", - "request.go", - "transport.go", - "url_utils.go", - "urlbackoff.go", - "zz_generated.deepcopy.go", - ], - importpath = "k8s.io/client-go/rest", - deps = [ - "//vendor/github.com/golang/glog:go_default_library", - "//vendor/golang.org/x/net/http2:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer/streaming:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/net:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/pkg/version:go_default_library", - "//vendor/k8s.io/client-go/rest/watch:go_default_library", - "//vendor/k8s.io/client-go/tools/clientcmd/api:go_default_library", - "//vendor/k8s.io/client-go/tools/metrics:go_default_library", - "//vendor/k8s.io/client-go/transport:go_default_library", - "//vendor/k8s.io/client-go/util/cert:go_default_library", - "//vendor/k8s.io/client-go/util/flowcontrol:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/rest/fake:all-srcs", - "//staging/src/k8s.io/client-go/rest/watch:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/rest/config.go b/vendor/k8s.io/client-go/rest/config.go index c1a11b8f0..438eb3bed 100644 --- a/vendor/k8s.io/client-go/rest/config.go +++ b/vendor/k8s.io/client-go/rest/config.go @@ -17,6 +17,8 @@ limitations under the License. package rest import ( + "context" + "errors" "fmt" "io/ioutil" "net" @@ -27,9 +29,6 @@ import ( "strings" "time" - "github.com/golang/glog" - - "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" @@ -37,6 +36,7 @@ import ( clientcmdapi "k8s.io/client-go/tools/clientcmd/api" certutil "k8s.io/client-go/util/cert" "k8s.io/client-go/util/flowcontrol" + "k8s.io/klog" ) const ( @@ -44,6 +44,8 @@ const ( DefaultBurst int = 10 ) +var ErrNotInCluster = errors.New("unable to load in-cluster configuration, KUBERNETES_SERVICE_HOST and KUBERNETES_SERVICE_PORT must be defined") + // Config holds the common attributes that can be passed to a Kubernetes client on // initialization. type Config struct { @@ -77,6 +79,9 @@ type Config struct { // Callback to persist config for AuthProvider. AuthConfigPersister AuthProviderConfigPersister + // Exec-based authentication provider. + ExecProvider *clientcmdapi.ExecConfig + // TLSClientConfig contains settings to enable transport layer security TLSClientConfig @@ -108,7 +113,7 @@ type Config struct { Timeout time.Duration // Dial specifies the dial function for creating unencrypted TCP connections. - Dial func(network, addr string) (net.Conn, error) + Dial func(ctx context.Context, network, address string) (net.Conn, error) // Version forces a specific version to be used (if registered) // Do we need this? @@ -217,7 +222,7 @@ func RESTClientFor(config *Config) (*RESTClient, error) { // the config.Version to be empty. func UnversionedRESTClientFor(config *Config) (*RESTClient, error) { if config.NegotiatedSerializer == nil { - return nil, fmt.Errorf("NeogitatedSerializer is required when initializing a RESTClient") + return nil, fmt.Errorf("NegotiatedSerializer is required when initializing a RESTClient") } baseURL, versionedAPIPath, err := defaultServerUrlFor(config) @@ -305,22 +310,28 @@ func DefaultKubernetesUserAgent() string { // InClusterConfig returns a config object which uses the service account // kubernetes gives to pods. It's intended for clients that expect to be -// running inside a pod running on kubernetes. It will return an error if -// called from a process not running in a kubernetes environment. +// running inside a pod running on kubernetes. It will return ErrNotInCluster +// if called from a process not running in a kubernetes environment. func InClusterConfig() (*Config, error) { + const ( + tokenFile = "/var/run/secrets/kubernetes.io/serviceaccount/token" + rootCAFile = "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt" + ) host, port := os.Getenv("KUBERNETES_SERVICE_HOST"), os.Getenv("KUBERNETES_SERVICE_PORT") if len(host) == 0 || len(port) == 0 { - return nil, fmt.Errorf("unable to load in-cluster configuration, KUBERNETES_SERVICE_HOST and KUBERNETES_SERVICE_PORT must be defined") + return nil, ErrNotInCluster } - token, err := ioutil.ReadFile("/var/run/secrets/kubernetes.io/serviceaccount/" + v1.ServiceAccountTokenKey) - if err != nil { + ts := NewCachedFileTokenSource(tokenFile) + + if _, err := ts.Token(); err != nil { return nil, err } + tlsClientConfig := TLSClientConfig{} - rootCAFile := "/var/run/secrets/kubernetes.io/serviceaccount/" + v1.ServiceAccountRootCAKey + if _, err := certutil.NewPool(rootCAFile); err != nil { - glog.Errorf("Expected to load root CA config from %s, but got err: %v", rootCAFile, err) + klog.Errorf("Expected to load root CA config from %s, but got err: %v", rootCAFile, err) } else { tlsClientConfig.CAFile = rootCAFile } @@ -328,8 +339,8 @@ func InClusterConfig() (*Config, error) { return &Config{ // TODO: switch to using cluster DNS. Host: "https://" + net.JoinHostPort(host, port), - BearerToken: string(token), TLSClientConfig: tlsClientConfig, + WrapTransport: TokenSourceWrapTransport(ts), }, nil } @@ -432,6 +443,7 @@ func CopyConfig(config *Config) *Config { }, AuthProvider: config.AuthProvider, AuthConfigPersister: config.AuthConfigPersister, + ExecProvider: config.ExecProvider, TLSClientConfig: TLSClientConfig{ Insecure: config.TLSClientConfig.Insecure, ServerName: config.TLSClientConfig.ServerName, diff --git a/vendor/k8s.io/client-go/rest/config_test.go b/vendor/k8s.io/client-go/rest/config_test.go index 5d4d1a2fe..347864285 100644 --- a/vendor/k8s.io/client-go/rest/config_test.go +++ b/vendor/k8s.io/client-go/rest/config_test.go @@ -17,6 +17,8 @@ limitations under the License. package rest import ( + "context" + "errors" "io" "net" "net/http" @@ -25,8 +27,6 @@ import ( "strings" "testing" - fuzz "github.com/google/gofuzz" - "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" @@ -35,8 +35,7 @@ import ( clientcmdapi "k8s.io/client-go/tools/clientcmd/api" "k8s.io/client-go/util/flowcontrol" - "errors" - + fuzz "github.com/google/gofuzz" "github.com/stretchr/testify/assert" ) @@ -208,7 +207,7 @@ func (n *fakeNegotiatedSerializer) DecoderToVersion(serializer runtime.Decoder, return &fakeCodec{} } -var fakeDialFunc = func(network, addr string) (net.Conn, error) { +var fakeDialFunc = func(ctx context.Context, network, addr string) (net.Conn, error) { return nil, fakeDialerError } var fakeDialerError = errors.New("fakedialer") @@ -253,7 +252,7 @@ func TestAnonymousConfig(t *testing.T) { r.Config = map[string]string{} }, // Dial does not require fuzzer - func(r *func(network, addr string) (net.Conn, error), f fuzz.Continue) {}, + func(r *func(ctx context.Context, network, addr string) (net.Conn, error), f fuzz.Continue) {}, ) for i := 0; i < 20; i++ { original := &Config{} @@ -269,6 +268,7 @@ func TestAnonymousConfig(t *testing.T) { expected.Password = "" expected.AuthProvider = nil expected.AuthConfigPersister = nil + expected.ExecProvider = nil expected.TLSClientConfig.CertData = nil expected.TLSClientConfig.CertFile = "" expected.TLSClientConfig.KeyData = nil @@ -283,10 +283,10 @@ func TestAnonymousConfig(t *testing.T) { expected.WrapTransport = nil } if actual.Dial != nil { - _, actualError := actual.Dial("", "") - _, expectedError := actual.Dial("", "") + _, actualError := actual.Dial(context.Background(), "", "") + _, expectedError := expected.Dial(context.Background(), "", "") if !reflect.DeepEqual(expectedError, actualError) { - t.Fatalf("CopyConfig dropped the Dial field") + t.Fatalf("CopyConfig dropped the Dial field") } } else { actual.Dial = nil @@ -328,7 +328,7 @@ func TestCopyConfig(t *testing.T) { func(r *AuthProviderConfigPersister, f fuzz.Continue) { *r = fakeAuthProviderConfigPersister{} }, - func(r *func(network, addr string) (net.Conn, error), f fuzz.Continue) { + func(r *func(ctx context.Context, network, addr string) (net.Conn, error), f fuzz.Continue) { *r = fakeDialFunc }, ) @@ -350,8 +350,8 @@ func TestCopyConfig(t *testing.T) { expected.WrapTransport = nil } if actual.Dial != nil { - _, actualError := actual.Dial("", "") - _, expectedError := actual.Dial("", "") + _, actualError := actual.Dial(context.Background(), "", "") + _, expectedError := expected.Dial(context.Background(), "", "") if !reflect.DeepEqual(expectedError, actualError) { t.Fatalf("CopyConfig dropped the Dial field") } @@ -360,7 +360,7 @@ func TestCopyConfig(t *testing.T) { expected.Dial = nil if actual.AuthConfigPersister != nil { actualError := actual.AuthConfigPersister.Persist(nil) - expectedError := actual.AuthConfigPersister.Persist(nil) + expectedError := expected.AuthConfigPersister.Persist(nil) if !reflect.DeepEqual(expectedError, actualError) { t.Fatalf("CopyConfig dropped the Dial field") } diff --git a/vendor/k8s.io/client-go/rest/fake/BUILD b/vendor/k8s.io/client-go/rest/fake/BUILD deleted file mode 100644 index e511b207a..000000000 --- a/vendor/k8s.io/client-go/rest/fake/BUILD +++ /dev/null @@ -1,32 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = ["fake.go"], - importpath = "k8s.io/client-go/rest/fake", - deps = [ - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/util/flowcontrol:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/rest/fake/fake.go b/vendor/k8s.io/client-go/rest/fake/fake.go index bc43a90ac..bbba2da3e 100644 --- a/vendor/k8s.io/client-go/rest/fake/fake.go +++ b/vendor/k8s.io/client-go/rest/fake/fake.go @@ -94,14 +94,10 @@ func (c *RESTClient) request(verb string) *restclient.Request { ns := c.NegotiatedSerializer info, _ := runtime.SerializerInfoForMediaType(ns.SupportedMediaTypes(), runtime.ContentTypeJSON) - internalVersion := schema.GroupVersion{ - Group: c.GroupVersion.Group, - Version: runtime.APIVersionInternal, - } serializers := restclient.Serializers{ // TODO this was hardcoded before, but it doesn't look right Encoder: ns.EncoderForVersion(info.Serializer, c.GroupVersion), - Decoder: ns.DecoderToVersion(info.Serializer, internalVersion), + Decoder: ns.DecoderToVersion(info.Serializer, c.GroupVersion), } if info.StreamSerializer != nil { serializers.StreamingSerializer = info.StreamSerializer.Serializer diff --git a/vendor/k8s.io/client-go/rest/plugin.go b/vendor/k8s.io/client-go/rest/plugin.go index cf8fbabfd..83ef5ae32 100644 --- a/vendor/k8s.io/client-go/rest/plugin.go +++ b/vendor/k8s.io/client-go/rest/plugin.go @@ -21,7 +21,7 @@ import ( "net/http" "sync" - "github.com/golang/glog" + "k8s.io/klog" clientcmdapi "k8s.io/client-go/tools/clientcmd/api" ) @@ -57,7 +57,7 @@ func RegisterAuthProviderPlugin(name string, plugin Factory) error { if _, found := plugins[name]; found { return fmt.Errorf("Auth Provider Plugin %q was registered twice", name) } - glog.V(4).Infof("Registered Auth Provider Plugin %q", name) + klog.V(4).Infof("Registered Auth Provider Plugin %q", name) plugins[name] = plugin return nil } diff --git a/vendor/k8s.io/client-go/rest/request.go b/vendor/k8s.io/client-go/rest/request.go index 6ca9e0197..64901fba2 100644 --- a/vendor/k8s.io/client-go/rest/request.go +++ b/vendor/k8s.io/client-go/rest/request.go @@ -32,7 +32,6 @@ import ( "strings" "time" - "github.com/golang/glog" "golang.org/x/net/http2" "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -44,6 +43,7 @@ import ( restclientwatch "k8s.io/client-go/rest/watch" "k8s.io/client-go/tools/metrics" "k8s.io/client-go/util/flowcontrol" + "k8s.io/klog" ) var ( @@ -114,7 +114,7 @@ type Request struct { // NewRequest creates a new request helper object for accessing runtime.Objects on a server. func NewRequest(client HTTPClient, verb string, baseURL *url.URL, versionedAPIPath string, content ContentConfig, serializers Serializers, backoff BackoffManager, throttle flowcontrol.RateLimiter, timeout time.Duration) *Request { if backoff == nil { - glog.V(2).Infof("Not implementing request backoff strategy.") + klog.V(2).Infof("Not implementing request backoff strategy.") backoff = &NoBackoff{} } @@ -198,7 +198,7 @@ func (r *Request) Throttle(limiter flowcontrol.RateLimiter) *Request { return r } -// SubResource sets a sub-resource path which can be multiple segments segment after the resource +// SubResource sets a sub-resource path which can be multiple segments after the resource // name but before the suffix. func (r *Request) SubResource(subresources ...string) *Request { if r.err != nil { @@ -317,10 +317,14 @@ func (r *Request) Param(paramName, s string) *Request { // VersionedParams will not write query parameters that have omitempty set and are empty. If a // parameter has already been set it is appended to (Params and VersionedParams are additive). func (r *Request) VersionedParams(obj runtime.Object, codec runtime.ParameterCodec) *Request { + return r.SpecificallyVersionedParams(obj, codec, *r.content.GroupVersion) +} + +func (r *Request) SpecificallyVersionedParams(obj runtime.Object, codec runtime.ParameterCodec, version schema.GroupVersion) *Request { if r.err != nil { return r } - params, err := codec.EncodeParameters(obj, *r.content.GroupVersion) + params, err := codec.EncodeParameters(obj, version) if err != nil { r.err = err return r @@ -353,8 +357,8 @@ func (r *Request) SetHeader(key string, values ...string) *Request { return r } -// Timeout makes the request use the given duration as a timeout. Sets the "timeout" -// parameter. +// Timeout makes the request use the given duration as an overall timeout for the +// request. Additionally, if set passes the value as "timeout" parameter in URL. func (r *Request) Timeout(d time.Duration) *Request { if r.err != nil { return r @@ -451,17 +455,9 @@ func (r *Request) URL() *url.URL { // finalURLTemplate is similar to URL(), but will make all specific parameter values equal // - instead of name or namespace, "{name}" and "{namespace}" will be used, and all query -// parameters will be reset. This creates a copy of the request so as not to change the -// underlying object. This means some useful request info (like the types of field -// selectors in use) will be lost. -// TODO: preserve field selector keys +// parameters will be reset. This creates a copy of the url so as not to change the +// underlying object. func (r Request) finalURLTemplate() url.URL { - if len(r.resourceName) != 0 { - r.resourceName = "{name}" - } - if r.namespaceSet && len(r.namespace) != 0 { - r.namespace = "{namespace}" - } newParams := url.Values{} v := []string{"{value}"} for k := range r.params { @@ -469,6 +465,59 @@ func (r Request) finalURLTemplate() url.URL { } r.params = newParams url := r.URL() + segments := strings.Split(r.URL().Path, "/") + groupIndex := 0 + index := 0 + if r.URL() != nil && r.baseURL != nil && strings.Contains(r.URL().Path, r.baseURL.Path) { + groupIndex += len(strings.Split(r.baseURL.Path, "/")) + } + if groupIndex >= len(segments) { + return *url + } + + const CoreGroupPrefix = "api" + const NamedGroupPrefix = "apis" + isCoreGroup := segments[groupIndex] == CoreGroupPrefix + isNamedGroup := segments[groupIndex] == NamedGroupPrefix + if isCoreGroup { + // checking the case of core group with /api/v1/... format + index = groupIndex + 2 + } else if isNamedGroup { + // checking the case of named group with /apis/apps/v1/... format + index = groupIndex + 3 + } else { + // this should not happen that the only two possibilities are /api... and /apis..., just want to put an + // outlet here in case more API groups are added in future if ever possible: + // https://kubernetes.io/docs/concepts/overview/kubernetes-api/#api-groups + // if a wrong API groups name is encountered, return the {prefix} for url.Path + url.Path = "/{prefix}" + url.RawQuery = "" + return *url + } + //switch segLength := len(segments) - index; segLength { + switch { + // case len(segments) - index == 1: + // resource (with no name) do nothing + case len(segments)-index == 2: + // /$RESOURCE/$NAME: replace $NAME with {name} + segments[index+1] = "{name}" + case len(segments)-index == 3: + if segments[index+2] == "finalize" || segments[index+2] == "status" { + // /$RESOURCE/$NAME/$SUBRESOURCE: replace $NAME with {name} + segments[index+1] = "{name}" + } else { + // /namespace/$NAMESPACE/$RESOURCE: replace $NAMESPACE with {namespace} + segments[index+1] = "{namespace}" + } + case len(segments)-index >= 4: + segments[index+1] = "{namespace}" + // /namespace/$NAMESPACE/$RESOURCE/$NAME: replace $NAMESPACE with {namespace}, $NAME with {name} + if segments[index+3] != "finalize" && segments[index+3] != "status" { + // /$RESOURCE/$NAME/$SUBRESOURCE: replace $NAME with {name} + segments[index+3] = "{name}" + } + } + url.Path = path.Join(segments...) return *url } @@ -478,13 +527,26 @@ func (r *Request) tryThrottle() { r.throttle.Accept() } if latency := time.Since(now); latency > longThrottleLatency { - glog.V(4).Infof("Throttling request took %v, request: %s:%s", latency, r.verb, r.URL().String()) + klog.V(4).Infof("Throttling request took %v, request: %s:%s", latency, r.verb, r.URL().String()) } } // Watch attempts to begin watching the requested location. // Returns a watch.Interface, or an error. func (r *Request) Watch() (watch.Interface, error) { + return r.WatchWithSpecificDecoders( + func(body io.ReadCloser) streaming.Decoder { + framer := r.serializers.Framer.NewFrameReader(body) + return streaming.NewDecoder(framer, r.serializers.StreamingSerializer) + }, + r.serializers.Decoder, + ) +} + +// WatchWithSpecificDecoders attempts to begin watching the requested location with a *different* decoder. +// Turns out that you want one "standard" decoder for the watch event and one "personal" decoder for the content +// Returns a watch.Interface, or an error. +func (r *Request) WatchWithSpecificDecoders(wrapperDecoderFn func(io.ReadCloser) streaming.Decoder, embeddedDecoder runtime.Decoder) (watch.Interface, error) { // We specifically don't want to rate limit watches, so we // don't use r.throttle here. if r.err != nil { @@ -532,9 +594,8 @@ func (r *Request) Watch() (watch.Interface, error) { } return nil, fmt.Errorf("for request '%+v', got status: %v", url, resp.StatusCode) } - framer := r.serializers.Framer.NewFrameReader(resp.Body) - decoder := streaming.NewDecoder(framer, r.serializers.StreamingSerializer) - return watch.NewStreamWatcher(restclientwatch.NewDecoder(decoder, r.serializers.Decoder)), nil + wrapperDecoder := wrapperDecoderFn(resp.Body) + return watch.NewStreamWatcher(restclientwatch.NewDecoder(wrapperDecoder, embeddedDecoder)), nil } // updateURLMetrics is a convenience function for pushing metrics. @@ -622,7 +683,7 @@ func (r *Request) request(fn func(*http.Request, *http.Response)) error { }() if r.err != nil { - glog.V(4).Infof("Error in request: %v", r.err) + klog.V(4).Infof("Error in request: %v", r.err) return r.err } @@ -640,7 +701,6 @@ func (r *Request) request(fn func(*http.Request, *http.Response)) error { } // Right now we make about ten retry attempts if we get a Retry-After response. - // TODO: Change to a timeout based approach. maxRetries := 10 retries := 0 for { @@ -649,6 +709,14 @@ func (r *Request) request(fn func(*http.Request, *http.Response)) error { if err != nil { return err } + if r.timeout > 0 { + if r.ctx == nil { + r.ctx = context.Background() + } + var cancelFn context.CancelFunc + r.ctx, cancelFn = context.WithTimeout(r.ctx, r.timeout) + defer cancelFn() + } if r.ctx != nil { req = req.WithContext(r.ctx) } @@ -702,13 +770,13 @@ func (r *Request) request(fn func(*http.Request, *http.Response)) error { if seeker, ok := r.body.(io.Seeker); ok && r.body != nil { _, err := seeker.Seek(0, 0) if err != nil { - glog.V(4).Infof("Could not retry request, can't Seek() back to beginning of body for %T", r.body) + klog.V(4).Infof("Could not retry request, can't Seek() back to beginning of body for %T", r.body) fn(req, resp) return true } } - glog.V(4).Infof("Got a Retry-After %s response for attempt %d to %v", seconds, retries, url) + klog.V(4).Infof("Got a Retry-After %ds response for attempt %d to %v", seconds, retries, url) r.backoffMgr.Sleep(time.Duration(seconds) * time.Second) return false } @@ -776,13 +844,13 @@ func (r *Request) transformResponse(resp *http.Response, req *http.Request) Resu // 2. Apiserver sends back the headers and then part of the body // 3. Apiserver closes connection. // 4. client-go should catch this and return an error. - glog.V(2).Infof("Stream error %#v when reading response body, may be caused by closed connection.", err) + klog.V(2).Infof("Stream error %#v when reading response body, may be caused by closed connection.", err) streamErr := fmt.Errorf("Stream error %#v when reading response body, may be caused by closed connection. Please retry.", err) return Result{ err: streamErr, } default: - glog.Errorf("Unexpected error when reading response body: %#v", err) + klog.Errorf("Unexpected error when reading response body: %#v", err) unexpectedErr := fmt.Errorf("Unexpected error %#v when reading response body. Please retry.", err) return Result{ err: unexpectedErr, @@ -846,11 +914,11 @@ func (r *Request) transformResponse(resp *http.Response, req *http.Request) Resu func truncateBody(body string) string { max := 0 switch { - case bool(glog.V(10)): + case bool(klog.V(10)): return body - case bool(glog.V(9)): + case bool(klog.V(9)): max = 10240 - case bool(glog.V(8)): + case bool(klog.V(8)): max = 1024 } @@ -865,13 +933,13 @@ func truncateBody(body string) string { // allocating a new string for the body output unless necessary. Uses a simple heuristic to determine // whether the body is printable. func glogBody(prefix string, body []byte) { - if glog.V(8) { + if klog.V(8) { if bytes.IndexFunc(body, func(r rune) bool { return r < 0x0a }) != -1 { - glog.Infof("%s:\n%s", prefix, truncateBody(hex.Dump(body))) + klog.Infof("%s:\n%s", prefix, truncateBody(hex.Dump(body))) } else { - glog.Infof("%s: %s", prefix, truncateBody(string(body))) + klog.Infof("%s: %s", prefix, truncateBody(string(body))) } } } @@ -1073,7 +1141,7 @@ func (r Result) Error() error { // to be backwards compatible with old servers that do not return a version, default to "v1" out, _, err := r.decoder.Decode(r.body, &schema.GroupVersionKind{Version: "v1"}, nil) if err != nil { - glog.V(5).Infof("body was not decodable (unable to check for Status): %v", err) + klog.V(5).Infof("body was not decodable (unable to check for Status): %v", err) return r.err } switch t := out.(type) { diff --git a/vendor/k8s.io/client-go/rest/request_test.go b/vendor/k8s.io/client-go/rest/request_test.go index fac690255..a415f60ae 100755 --- a/vendor/k8s.io/client-go/rest/request_test.go +++ b/vendor/k8s.io/client-go/rest/request_test.go @@ -35,7 +35,7 @@ import ( "testing" "time" - "github.com/golang/glog" + "k8s.io/klog" "k8s.io/api/core/v1" apiequality "k8s.io/apimachinery/pkg/api/equality" @@ -340,21 +340,169 @@ func TestResultIntoWithNoBodyReturnsErr(t *testing.T) { } func TestURLTemplate(t *testing.T) { - uri, _ := url.Parse("http://localhost") - r := NewRequest(nil, "POST", uri, "", ContentConfig{GroupVersion: &schema.GroupVersion{Group: "test"}}, Serializers{}, nil, nil, 0) - r.Prefix("pre1").Resource("r1").Namespace("ns").Name("nm").Param("p0", "v0") - full := r.URL() - if full.String() != "http://localhost/pre1/namespaces/ns/r1/nm?p0=v0" { - t.Errorf("unexpected initial URL: %s", full) + uri, _ := url.Parse("http://localhost/some/base/url/path") + testCases := []struct { + Request *Request + ExpectedFullURL string + ExpectedFinalURL string + }{ + { + // non dynamic client + Request: NewRequest(nil, "POST", uri, "", ContentConfig{GroupVersion: &schema.GroupVersion{Group: "test"}}, Serializers{}, nil, nil, 0). + Prefix("api", "v1").Resource("r1").Namespace("ns").Name("nm").Param("p0", "v0"), + ExpectedFullURL: "http://localhost/some/base/url/path/api/v1/namespaces/ns/r1/nm?p0=v0", + ExpectedFinalURL: "http://localhost/some/base/url/path/api/v1/namespaces/%7Bnamespace%7D/r1/%7Bname%7D?p0=%7Bvalue%7D", + }, + { + // non dynamic client with wrong api group + Request: NewRequest(nil, "POST", uri, "", ContentConfig{GroupVersion: &schema.GroupVersion{Group: "test"}}, Serializers{}, nil, nil, 0). + Prefix("pre1", "v1").Resource("r1").Namespace("ns").Name("nm").Param("p0", "v0"), + ExpectedFullURL: "http://localhost/some/base/url/path/pre1/v1/namespaces/ns/r1/nm?p0=v0", + ExpectedFinalURL: "http://localhost/%7Bprefix%7D", + }, + { + // dynamic client with core group + namespace + resourceResource (with name) + // /api/$RESOURCEVERSION/namespaces/$NAMESPACE/$RESOURCE/%NAME + Request: NewRequest(nil, "DELETE", uri, "", ContentConfig{GroupVersion: &schema.GroupVersion{Group: "test"}}, Serializers{}, nil, nil, 0). + Prefix("/api/v1/namespaces/ns/r1/name1"), + ExpectedFullURL: "http://localhost/some/base/url/path/api/v1/namespaces/ns/r1/name1", + ExpectedFinalURL: "http://localhost/some/base/url/path/api/v1/namespaces/%7Bnamespace%7D/r1/%7Bname%7D", + }, + { + // dynamic client with named group + namespace + resourceResource (with name) + // /apis/$NAMEDGROUPNAME/$RESOURCEVERSION/namespaces/$NAMESPACE/$RESOURCE/%NAME + Request: NewRequest(nil, "DELETE", uri, "", ContentConfig{GroupVersion: &schema.GroupVersion{Group: "test"}}, Serializers{}, nil, nil, 0). + Prefix("/apis/g1/v1/namespaces/ns/r1/name1"), + ExpectedFullURL: "http://localhost/some/base/url/path/apis/g1/v1/namespaces/ns/r1/name1", + ExpectedFinalURL: "http://localhost/some/base/url/path/apis/g1/v1/namespaces/%7Bnamespace%7D/r1/%7Bname%7D", + }, + { + // dynamic client with core group + namespace + resourceResource (with NO name) + // /api/$RESOURCEVERSION/namespaces/$NAMESPACE/$RESOURCE + Request: NewRequest(nil, "DELETE", uri, "", ContentConfig{GroupVersion: &schema.GroupVersion{Group: "test"}}, Serializers{}, nil, nil, 0). + Prefix("/api/v1/namespaces/ns/r1"), + ExpectedFullURL: "http://localhost/some/base/url/path/api/v1/namespaces/ns/r1", + ExpectedFinalURL: "http://localhost/some/base/url/path/api/v1/namespaces/%7Bnamespace%7D/r1", + }, + { + // dynamic client with named group + namespace + resourceResource (with NO name) + // /apis/$NAMEDGROUPNAME/$RESOURCEVERSION/namespaces/$NAMESPACE/$RESOURCE + Request: NewRequest(nil, "DELETE", uri, "", ContentConfig{GroupVersion: &schema.GroupVersion{Group: "test"}}, Serializers{}, nil, nil, 0). + Prefix("/apis/g1/v1/namespaces/ns/r1"), + ExpectedFullURL: "http://localhost/some/base/url/path/apis/g1/v1/namespaces/ns/r1", + ExpectedFinalURL: "http://localhost/some/base/url/path/apis/g1/v1/namespaces/%7Bnamespace%7D/r1", + }, + { + // dynamic client with core group + resourceResource (with name) + // /api/$RESOURCEVERSION/$RESOURCE/%NAME + Request: NewRequest(nil, "DELETE", uri, "", ContentConfig{GroupVersion: &schema.GroupVersion{Group: "test"}}, Serializers{}, nil, nil, 0). + Prefix("/api/v1/r1/name1"), + ExpectedFullURL: "http://localhost/some/base/url/path/api/v1/r1/name1", + ExpectedFinalURL: "http://localhost/some/base/url/path/api/v1/r1/%7Bname%7D", + }, + { + // dynamic client with named group + resourceResource (with name) + // /apis/$NAMEDGROUPNAME/$RESOURCEVERSION/$RESOURCE/%NAME + Request: NewRequest(nil, "DELETE", uri, "", ContentConfig{GroupVersion: &schema.GroupVersion{Group: "test"}}, Serializers{}, nil, nil, 0). + Prefix("/apis/g1/v1/r1/name1"), + ExpectedFullURL: "http://localhost/some/base/url/path/apis/g1/v1/r1/name1", + ExpectedFinalURL: "http://localhost/some/base/url/path/apis/g1/v1/r1/%7Bname%7D", + }, + { + // dynamic client with named group + namespace + resourceResource (with name) + subresource + // /apis/$NAMEDGROUPNAME/$RESOURCEVERSION/namespaces/$NAMESPACE/$RESOURCE/%NAME/$SUBRESOURCE + Request: NewRequest(nil, "DELETE", uri, "", ContentConfig{GroupVersion: &schema.GroupVersion{Group: "test"}}, Serializers{}, nil, nil, 0). + Prefix("/apis/namespaces/namespaces/namespaces/namespaces/namespaces/namespaces/finalize"), + ExpectedFullURL: "http://localhost/some/base/url/path/apis/namespaces/namespaces/namespaces/namespaces/namespaces/namespaces/finalize", + ExpectedFinalURL: "http://localhost/some/base/url/path/apis/namespaces/namespaces/namespaces/%7Bnamespace%7D/namespaces/%7Bname%7D/finalize", + }, + { + // dynamic client with named group + namespace + resourceResource (with name) + // /apis/$NAMEDGROUPNAME/$RESOURCEVERSION/namespaces/$NAMESPACE/$RESOURCE/%NAME + Request: NewRequest(nil, "DELETE", uri, "", ContentConfig{GroupVersion: &schema.GroupVersion{Group: "test"}}, Serializers{}, nil, nil, 0). + Prefix("/apis/namespaces/namespaces/namespaces/namespaces/namespaces/namespaces"), + ExpectedFullURL: "http://localhost/some/base/url/path/apis/namespaces/namespaces/namespaces/namespaces/namespaces/namespaces", + ExpectedFinalURL: "http://localhost/some/base/url/path/apis/namespaces/namespaces/namespaces/%7Bnamespace%7D/namespaces/%7Bname%7D", + }, + { + // dynamic client with named group + namespace + resourceResource (with NO name) + subresource + // /apis/$NAMEDGROUPNAME/$RESOURCEVERSION/namespaces/$NAMESPACE/$RESOURCE/%SUBRESOURCE + Request: NewRequest(nil, "DELETE", uri, "", ContentConfig{GroupVersion: &schema.GroupVersion{Group: "test"}}, Serializers{}, nil, nil, 0). + Prefix("/apis/namespaces/namespaces/namespaces/namespaces/namespaces/finalize"), + ExpectedFullURL: "http://localhost/some/base/url/path/apis/namespaces/namespaces/namespaces/namespaces/namespaces/finalize", + ExpectedFinalURL: "http://localhost/some/base/url/path/apis/namespaces/namespaces/namespaces/%7Bnamespace%7D/namespaces/finalize", + }, + { + // dynamic client with named group + namespace + resourceResource (with NO name) + subresource + // /apis/$NAMEDGROUPNAME/$RESOURCEVERSION/namespaces/$NAMESPACE/$RESOURCE/%SUBRESOURCE + Request: NewRequest(nil, "DELETE", uri, "", ContentConfig{GroupVersion: &schema.GroupVersion{Group: "test"}}, Serializers{}, nil, nil, 0). + Prefix("/apis/namespaces/namespaces/namespaces/namespaces/namespaces/status"), + ExpectedFullURL: "http://localhost/some/base/url/path/apis/namespaces/namespaces/namespaces/namespaces/namespaces/status", + ExpectedFinalURL: "http://localhost/some/base/url/path/apis/namespaces/namespaces/namespaces/%7Bnamespace%7D/namespaces/status", + }, + { + // dynamic client with named group + namespace + resourceResource (with no name) + // /apis/$NAMEDGROUPNAME/$RESOURCEVERSION/namespaces/$NAMESPACE/$RESOURCE/%NAME + Request: NewRequest(nil, "DELETE", uri, "", ContentConfig{GroupVersion: &schema.GroupVersion{Group: "test"}}, Serializers{}, nil, nil, 0). + Prefix("/apis/namespaces/namespaces/namespaces/namespaces/namespaces"), + ExpectedFullURL: "http://localhost/some/base/url/path/apis/namespaces/namespaces/namespaces/namespaces/namespaces", + ExpectedFinalURL: "http://localhost/some/base/url/path/apis/namespaces/namespaces/namespaces/%7Bnamespace%7D/namespaces", + }, + { + // dynamic client with named group + resourceResource (with name) + subresource + // /apis/$NAMEDGROUPNAME/$RESOURCEVERSION/namespaces/$NAMESPACE/$RESOURCE/%NAME + Request: NewRequest(nil, "DELETE", uri, "", ContentConfig{GroupVersion: &schema.GroupVersion{Group: "test"}}, Serializers{}, nil, nil, 0). + Prefix("/apis/namespaces/namespaces/namespaces/namespaces/finalize"), + ExpectedFullURL: "http://localhost/some/base/url/path/apis/namespaces/namespaces/namespaces/namespaces/finalize", + ExpectedFinalURL: "http://localhost/some/base/url/path/apis/namespaces/namespaces/namespaces/%7Bname%7D/finalize", + }, + { + // dynamic client with named group + resourceResource (with name) + subresource + // /apis/$NAMEDGROUPNAME/$RESOURCEVERSION/namespaces/$NAMESPACE/$RESOURCE/%NAME + Request: NewRequest(nil, "DELETE", uri, "", ContentConfig{GroupVersion: &schema.GroupVersion{Group: "test"}}, Serializers{}, nil, nil, 0). + Prefix("/apis/namespaces/namespaces/namespaces/namespaces/status"), + ExpectedFullURL: "http://localhost/some/base/url/path/apis/namespaces/namespaces/namespaces/namespaces/status", + ExpectedFinalURL: "http://localhost/some/base/url/path/apis/namespaces/namespaces/namespaces/%7Bname%7D/status", + }, + { + // dynamic client with named group + resourceResource (with name) + // /apis/$NAMEDGROUPNAME/$RESOURCEVERSION/$RESOURCE/%NAME + Request: NewRequest(nil, "DELETE", uri, "", ContentConfig{GroupVersion: &schema.GroupVersion{Group: "test"}}, Serializers{}, nil, nil, 0). + Prefix("/apis/namespaces/namespaces/namespaces/namespaces"), + ExpectedFullURL: "http://localhost/some/base/url/path/apis/namespaces/namespaces/namespaces/namespaces", + ExpectedFinalURL: "http://localhost/some/base/url/path/apis/namespaces/namespaces/namespaces/%7Bname%7D", + }, + { + // dynamic client with named group + resourceResource (with no name) + // /apis/$NAMEDGROUPNAME/$RESOURCEVERSION/$RESOURCE/%NAME + Request: NewRequest(nil, "DELETE", uri, "", ContentConfig{GroupVersion: &schema.GroupVersion{Group: "test"}}, Serializers{}, nil, nil, 0). + Prefix("/apis/namespaces/namespaces/namespaces"), + ExpectedFullURL: "http://localhost/some/base/url/path/apis/namespaces/namespaces/namespaces", + ExpectedFinalURL: "http://localhost/some/base/url/path/apis/namespaces/namespaces/namespaces", + }, + { + // dynamic client with wrong api group + namespace + resourceResource (with name) + subresource + // /apis/$NAMEDGROUPNAME/$RESOURCEVERSION/namespaces/$NAMESPACE/$RESOURCE/%NAME/$SUBRESOURCE + Request: NewRequest(nil, "DELETE", uri, "", ContentConfig{GroupVersion: &schema.GroupVersion{Group: "test"}}, Serializers{}, nil, nil, 0). + Prefix("/pre1/namespaces/namespaces/namespaces/namespaces/namespaces/namespaces/finalize"), + ExpectedFullURL: "http://localhost/some/base/url/path/pre1/namespaces/namespaces/namespaces/namespaces/namespaces/namespaces/finalize", + ExpectedFinalURL: "http://localhost/%7Bprefix%7D", + }, } - actualURL := r.finalURLTemplate() - actual := actualURL.String() - expected := "http://localhost/pre1/namespaces/%7Bnamespace%7D/r1/%7Bname%7D?p0=%7Bvalue%7D" - if actual != expected { - t.Errorf("unexpected URL template: %s %s", actual, expected) - } - if r.URL().String() != full.String() { - t.Errorf("creating URL template changed request: %s -> %s", full.String(), r.URL().String()) + for i, testCase := range testCases { + r := testCase.Request + full := r.URL() + if full.String() != testCase.ExpectedFullURL { + t.Errorf("%d: unexpected initial URL: %s %s", i, full, testCase.ExpectedFullURL) + } + actualURL := r.finalURLTemplate() + actual := actualURL.String() + if actual != testCase.ExpectedFinalURL { + t.Errorf("%d: unexpected URL template: %s %s", i, actual, testCase.ExpectedFinalURL) + } + if r.URL().String() != full.String() { + t.Errorf("%d, creating URL template changed request: %s -> %s", i, full.String(), r.URL().String()) + } } } @@ -1522,7 +1670,7 @@ func TestBody(t *testing.T) { f.Close() defer os.Remove(f.Name()) - var nilObject *v1.DeleteOptions + var nilObject *metav1.DeleteOptions typedObject := interface{}(nilObject) c := testRESTClient(t, nil) tests := []struct { @@ -1707,6 +1855,10 @@ func buildString(length int) string { return string(s) } +func init() { + klog.InitFlags(nil) +} + func TestTruncateBody(t *testing.T) { tests := []struct { body string @@ -1756,7 +1908,7 @@ func TestTruncateBody(t *testing.T) { }, } - l := flag.Lookup("v").Value.(flag.Getter).Get().(glog.Level) + l := flag.Lookup("v").Value.(flag.Getter).Get().(klog.Level) for _, test := range tests { flag.Set("v", test.level) got := truncateBody(test.body) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/token_source.go b/vendor/k8s.io/client-go/rest/token_source.go similarity index 100% rename from vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/token_source.go rename to vendor/k8s.io/client-go/rest/token_source.go diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/token_source_test.go b/vendor/k8s.io/client-go/rest/token_source_test.go similarity index 100% rename from vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/token_source_test.go rename to vendor/k8s.io/client-go/rest/token_source_test.go diff --git a/vendor/k8s.io/client-go/rest/transport.go b/vendor/k8s.io/client-go/rest/transport.go index 878c6abf1..25c1801b6 100644 --- a/vendor/k8s.io/client-go/rest/transport.go +++ b/vendor/k8s.io/client-go/rest/transport.go @@ -18,8 +18,10 @@ package rest import ( "crypto/tls" + "errors" "net/http" + "k8s.io/client-go/plugin/pkg/client/auth/exec" "k8s.io/client-go/transport" ) @@ -58,25 +60,10 @@ func HTTPWrappersForConfig(config *Config, rt http.RoundTripper) (http.RoundTrip // TransportConfig converts a client config to an appropriate transport config. func (c *Config) TransportConfig() (*transport.Config, error) { - wt := c.WrapTransport - if c.AuthProvider != nil { - provider, err := GetAuthProvider(c.Host, c.AuthProvider, c.AuthConfigPersister) - if err != nil { - return nil, err - } - if wt != nil { - previousWT := wt - wt = func(rt http.RoundTripper) http.RoundTripper { - return provider.WrapTransport(previousWT(rt)) - } - } else { - wt = provider.WrapTransport - } - } - return &transport.Config{ + conf := &transport.Config{ UserAgent: c.UserAgent, Transport: c.Transport, - WrapTransport: wt, + WrapTransport: c.WrapTransport, TLS: transport.TLSConfig{ Insecure: c.Insecure, ServerName: c.ServerName, @@ -96,5 +83,34 @@ func (c *Config) TransportConfig() (*transport.Config, error) { Extra: c.Impersonate.Extra, }, Dial: c.Dial, - }, nil + } + + if c.ExecProvider != nil && c.AuthProvider != nil { + return nil, errors.New("execProvider and authProvider cannot be used in combination") + } + + if c.ExecProvider != nil { + provider, err := exec.GetAuthenticator(c.ExecProvider) + if err != nil { + return nil, err + } + if err := provider.UpdateTransportConfig(conf); err != nil { + return nil, err + } + } + if c.AuthProvider != nil { + provider, err := GetAuthProvider(c.Host, c.AuthProvider, c.AuthConfigPersister) + if err != nil { + return nil, err + } + wt := conf.WrapTransport + if wt != nil { + conf.WrapTransport = func(rt http.RoundTripper) http.RoundTripper { + return provider.WrapTransport(wt(rt)) + } + } else { + conf.WrapTransport = provider.WrapTransport + } + } + return conf, nil } diff --git a/vendor/k8s.io/client-go/rest/urlbackoff.go b/vendor/k8s.io/client-go/rest/urlbackoff.go index eff848abc..d00e42f86 100644 --- a/vendor/k8s.io/client-go/rest/urlbackoff.go +++ b/vendor/k8s.io/client-go/rest/urlbackoff.go @@ -20,9 +20,9 @@ import ( "net/url" "time" - "github.com/golang/glog" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/client-go/util/flowcontrol" + "k8s.io/klog" ) // Set of resp. Codes that we backoff for. @@ -64,7 +64,7 @@ func (n *NoBackoff) Sleep(d time.Duration) { // Disable makes the backoff trivial, i.e., sets it to zero. This might be used // by tests which want to run 1000s of mock requests without slowing down. func (b *URLBackoff) Disable() { - glog.V(4).Infof("Disabling backoff strategy") + klog.V(4).Infof("Disabling backoff strategy") b.Backoff = flowcontrol.NewBackOff(0*time.Second, 0*time.Second) } @@ -76,7 +76,7 @@ func (b *URLBackoff) baseUrlKey(rawurl *url.URL) string { // in the future. host, err := url.Parse(rawurl.String()) if err != nil { - glog.V(4).Infof("Error extracting url: %v", rawurl) + klog.V(4).Infof("Error extracting url: %v", rawurl) panic("bad url!") } return host.Host @@ -89,7 +89,7 @@ func (b *URLBackoff) UpdateBackoff(actualUrl *url.URL, err error, responseCode i b.Backoff.Next(b.baseUrlKey(actualUrl), b.Backoff.Clock.Now()) return } else if responseCode >= 300 || err != nil { - glog.V(4).Infof("Client is returning errors: code %v, error %v", responseCode, err) + klog.V(4).Infof("Client is returning errors: code %v, error %v", responseCode, err) } //If we got this far, there is no backoff required for this URL anymore. diff --git a/vendor/k8s.io/client-go/rest/watch/BUILD b/vendor/k8s.io/client-go/rest/watch/BUILD deleted file mode 100644 index 30dfadd1f..000000000 --- a/vendor/k8s.io/client-go/rest/watch/BUILD +++ /dev/null @@ -1,56 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_library( - name = "go_default_library", - srcs = [ - "decoder.go", - "encoder.go", - ], - importpath = "k8s.io/client-go/rest/watch", - deps = [ - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer/streaming:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - ], -) - -go_test( - name = "go_default_xtest", - srcs = [ - "decoder_test.go", - "encoder_test.go", - ], - deps = [ - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer/json:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer/streaming:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", - "//vendor/k8s.io/client-go/rest/watch:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/rest/zz_generated.deepcopy.go b/vendor/k8s.io/client-go/rest/zz_generated.deepcopy.go index 67568bf0b..c1ab45f33 100644 --- a/vendor/k8s.io/client-go/rest/zz_generated.deepcopy.go +++ b/vendor/k8s.io/client-go/rest/zz_generated.deepcopy.go @@ -1,7 +1,7 @@ // +build !ignore_autogenerated /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/client-go/restmapper/category_expansion.go b/vendor/k8s.io/client-go/restmapper/category_expansion.go new file mode 100644 index 000000000..1620bbcf8 --- /dev/null +++ b/vendor/k8s.io/client-go/restmapper/category_expansion.go @@ -0,0 +1,119 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package restmapper + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/client-go/discovery" +) + +// CategoryExpander maps category strings to GroupResouces. +// Categories are classification or 'tag' of a group of resources. +type CategoryExpander interface { + Expand(category string) ([]schema.GroupResource, bool) +} + +// SimpleCategoryExpander implements CategoryExpander interface +// using a static mapping of categories to GroupResource mapping. +type SimpleCategoryExpander struct { + Expansions map[string][]schema.GroupResource +} + +// Expand fulfills CategoryExpander +func (e SimpleCategoryExpander) Expand(category string) ([]schema.GroupResource, bool) { + ret, ok := e.Expansions[category] + return ret, ok +} + +// discoveryCategoryExpander struct lets a REST Client wrapper (discoveryClient) to retrieve list of APIResourceList, +// and then convert to fallbackExpander +type discoveryCategoryExpander struct { + discoveryClient discovery.DiscoveryInterface +} + +// NewDiscoveryCategoryExpander returns a category expander that makes use of the "categories" fields from +// the API, found through the discovery client. In case of any error or no category found (which likely +// means we're at a cluster prior to categories support, fallback to the expander provided. +func NewDiscoveryCategoryExpander(client discovery.DiscoveryInterface) CategoryExpander { + if client == nil { + panic("Please provide discovery client to shortcut expander") + } + return discoveryCategoryExpander{discoveryClient: client} +} + +// Expand fulfills CategoryExpander +func (e discoveryCategoryExpander) Expand(category string) ([]schema.GroupResource, bool) { + // Get all supported resources for groups and versions from server, if no resource found, fallback anyway. + apiResourceLists, _ := e.discoveryClient.ServerResources() + if len(apiResourceLists) == 0 { + return nil, false + } + + discoveredExpansions := map[string][]schema.GroupResource{} + for _, apiResourceList := range apiResourceLists { + gv, err := schema.ParseGroupVersion(apiResourceList.GroupVersion) + if err != nil { + continue + } + // Collect GroupVersions by categories + for _, apiResource := range apiResourceList.APIResources { + if categories := apiResource.Categories; len(categories) > 0 { + for _, category := range categories { + groupResource := schema.GroupResource{ + Group: gv.Group, + Resource: apiResource.Name, + } + discoveredExpansions[category] = append(discoveredExpansions[category], groupResource) + } + } + } + } + + ret, ok := discoveredExpansions[category] + return ret, ok +} + +// UnionCategoryExpander implements CategoryExpander interface. +// It maps given category string to union of expansions returned by all the CategoryExpanders in the list. +type UnionCategoryExpander []CategoryExpander + +// Expand fulfills CategoryExpander +func (u UnionCategoryExpander) Expand(category string) ([]schema.GroupResource, bool) { + ret := []schema.GroupResource{} + ok := false + + // Expand the category for each CategoryExpander in the list and merge/combine the results. + for _, expansion := range u { + curr, currOk := expansion.Expand(category) + + for _, currGR := range curr { + found := false + for _, existing := range ret { + if existing == currGR { + found = true + break + } + } + if !found { + ret = append(ret, currGR) + } + } + ok = ok || currOk + } + + return ret, ok +} diff --git a/vendor/k8s.io/client-go/restmapper/category_expansion_test.go b/vendor/k8s.io/client-go/restmapper/category_expansion_test.go new file mode 100644 index 000000000..8537a6b49 --- /dev/null +++ b/vendor/k8s.io/client-go/restmapper/category_expansion_test.go @@ -0,0 +1,145 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package restmapper + +import ( + "reflect" + "testing" + + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +func TestCategoryExpansion(t *testing.T) { + tests := []struct { + name string + arg string + + expected []schema.GroupResource + expectedOk bool + }{ + { + name: "no-replacement", + arg: "service", + expected: nil, + }, + { + name: "all-replacement", + arg: "all", + expected: []schema.GroupResource{ + {Resource: "one"}, + {Resource: "two"}, + {Resource: "three", Group: "alpha"}, + {Resource: "four", Group: "bravo"}, + }, + expectedOk: true, + }, + } + + for _, test := range tests { + simpleCategoryExpander := SimpleCategoryExpander{ + Expansions: map[string][]schema.GroupResource{ + "all": { + {Group: "", Resource: "one"}, + {Group: "", Resource: "two"}, + {Group: "alpha", Resource: "three"}, + {Group: "bravo", Resource: "four"}, + }, + }, + } + + actual, actualOk := simpleCategoryExpander.Expand(test.arg) + if e, a := test.expected, actual; !reflect.DeepEqual(e, a) { + t.Errorf("%s: expected %s, got %s", test.name, e, a) + } + if e, a := test.expectedOk, actualOk; e != a { + t.Errorf("%s: expected %v, got %v", test.name, e, a) + } + } +} + +func TestDiscoveryCategoryExpander(t *testing.T) { + tests := []struct { + category string + serverResponse []*metav1.APIResourceList + expected []schema.GroupResource + }{ + { + category: "all", + serverResponse: []*metav1.APIResourceList{ + { + GroupVersion: "batch/v1", + APIResources: []metav1.APIResource{ + { + Name: "jobs", + ShortNames: []string{"jz"}, + Categories: []string{"all"}, + }, + }, + }, + }, + expected: []schema.GroupResource{ + { + Group: "batch", + Resource: "jobs", + }, + }, + }, + { + category: "all", + serverResponse: []*metav1.APIResourceList{ + { + GroupVersion: "batch/v1", + APIResources: []metav1.APIResource{ + { + Name: "jobs", + ShortNames: []string{"jz"}, + }, + }, + }, + }, + }, + { + category: "targaryens", + serverResponse: []*metav1.APIResourceList{ + { + GroupVersion: "batch/v1", + APIResources: []metav1.APIResource{ + { + Name: "jobs", + ShortNames: []string{"jz"}, + Categories: []string{"all"}, + }, + }, + }, + }, + }, + } + + dc := &fakeDiscoveryClient{} + for _, test := range tests { + dc.serverResourcesHandler = func() ([]*metav1.APIResourceList, error) { + return test.serverResponse, nil + } + expander := NewDiscoveryCategoryExpander(dc) + expanded, _ := expander.Expand(test.category) + if !reflect.DeepEqual(expanded, test.expected) { + t.Errorf("expected %v, got %v", test.expected, expanded) + } + } + +} diff --git a/vendor/k8s.io/client-go/discovery/restmapper.go b/vendor/k8s.io/client-go/restmapper/discovery.go similarity index 89% rename from vendor/k8s.io/client-go/discovery/restmapper.go rename to vendor/k8s.io/client-go/restmapper/discovery.go index df5ab0358..84491f4c5 100644 --- a/vendor/k8s.io/client-go/discovery/restmapper.go +++ b/vendor/k8s.io/client-go/restmapper/discovery.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package discovery +package restmapper import ( "fmt" @@ -24,8 +24,9 @@ import ( "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/client-go/discovery" - "github.com/golang/glog" + "k8s.io/klog" ) // APIGroupResources is an API group with a mapping of versions to @@ -37,9 +38,9 @@ type APIGroupResources struct { VersionedResources map[string][]metav1.APIResource } -// NewRESTMapper returns a PriorityRESTMapper based on the discovered +// NewDiscoveryRESTMapper returns a PriorityRESTMapper based on the discovered // groups and resources passed in. -func NewRESTMapper(groupResources []*APIGroupResources, versionInterfaces meta.VersionInterfacesFunc) meta.RESTMapper { +func NewDiscoveryRESTMapper(groupResources []*APIGroupResources) meta.RESTMapper { unionMapper := meta.MultiRESTMapper{} var groupPriority []string @@ -90,7 +91,7 @@ func NewRESTMapper(groupResources []*APIGroupResources, versionInterfaces meta.V } gv := schema.GroupVersion{Group: group.Group.Name, Version: discoveryVersion.Version} - versionMapper := meta.NewDefaultRESTMapper([]schema.GroupVersion{gv}, versionInterfaces) + versionMapper := meta.NewDefaultRESTMapper([]schema.GroupVersion{gv}) for _, resource := range resources { scope := meta.RESTScopeNamespace @@ -98,18 +99,20 @@ func NewRESTMapper(groupResources []*APIGroupResources, versionInterfaces meta.V scope = meta.RESTScopeRoot } - // this is for legacy resources and servers which don't list singular forms. For those we must still guess. - if len(resource.SingularName) == 0 { - versionMapper.Add(gv.WithKind(resource.Kind), scope) - // TODO this is producing unsafe guesses that don't actually work, but it matches previous behavior - versionMapper.Add(gv.WithKind(resource.Kind+"List"), scope) + // if we have a slash, then this is a subresource and we shouldn't create mappings for those. + if strings.Contains(resource.Name, "/") { continue } plural := gv.WithResource(resource.Name) singular := gv.WithResource(resource.SingularName) - versionMapper.AddSpecific(gv.WithKind(resource.Kind), plural, singular, scope) + // this is for legacy resources and servers which don't list singular forms. For those we must still guess. + if len(resource.SingularName) == 0 { + _, singular = meta.UnsafeGuessKindToResource(gv.WithKind(resource.Kind)) + } + versionMapper.AddSpecific(gv.WithKind(strings.ToLower(resource.Kind)), plural, singular, scope) + versionMapper.AddSpecific(gv.WithKind(resource.Kind), plural, singular, scope) // TODO this is producing unsafe guesses that don't actually work, but it matches previous behavior versionMapper.Add(gv.WithKind(resource.Kind+"List"), scope) } @@ -141,10 +144,13 @@ func NewRESTMapper(groupResources []*APIGroupResources, versionInterfaces meta.V // GetAPIGroupResources uses the provided discovery client to gather // discovery information and populate a slice of APIGroupResources. -func GetAPIGroupResources(cl DiscoveryInterface) ([]*APIGroupResources, error) { +func GetAPIGroupResources(cl discovery.DiscoveryInterface) ([]*APIGroupResources, error) { apiGroups, err := cl.ServerGroups() if err != nil { - return nil, err + if apiGroups == nil || len(apiGroups.Groups) == 0 { + return nil, err + } + // TODO track the errors and update callers to handle partial errors. } var result []*APIGroupResources for _, group := range apiGroups.Groups { @@ -157,7 +163,9 @@ func GetAPIGroupResources(cl DiscoveryInterface) ([]*APIGroupResources, error) { if err != nil { // continue as best we can // TODO track the errors and update callers to handle partial errors. - continue + if resources == nil || len(resources.APIResources) == 0 { + continue + } } groupResources.VersionedResources[version.Version] = resources.APIResources } @@ -170,19 +178,17 @@ func GetAPIGroupResources(cl DiscoveryInterface) ([]*APIGroupResources, error) { // initialization of the RESTMapper until the first mapping is // requested. type DeferredDiscoveryRESTMapper struct { - initMu sync.Mutex - delegate meta.RESTMapper - cl CachedDiscoveryInterface - versionInterface meta.VersionInterfacesFunc + initMu sync.Mutex + delegate meta.RESTMapper + cl discovery.CachedDiscoveryInterface } // NewDeferredDiscoveryRESTMapper returns a // DeferredDiscoveryRESTMapper that will lazily query the provided // client for discovery information to do REST mappings. -func NewDeferredDiscoveryRESTMapper(cl CachedDiscoveryInterface, versionInterface meta.VersionInterfacesFunc) *DeferredDiscoveryRESTMapper { +func NewDeferredDiscoveryRESTMapper(cl discovery.CachedDiscoveryInterface) *DeferredDiscoveryRESTMapper { return &DeferredDiscoveryRESTMapper{ - cl: cl, - versionInterface: versionInterface, + cl: cl, } } @@ -199,14 +205,14 @@ func (d *DeferredDiscoveryRESTMapper) getDelegate() (meta.RESTMapper, error) { return nil, err } - d.delegate = NewRESTMapper(groupResources, d.versionInterface) + d.delegate = NewDiscoveryRESTMapper(groupResources) return d.delegate, err } // Reset resets the internally cached Discovery information and will // cause the next mapping request to re-discover. func (d *DeferredDiscoveryRESTMapper) Reset() { - glog.V(5).Info("Invalidating discovery information") + klog.V(5).Info("Invalidating discovery information") d.initMu.Lock() defer d.initMu.Unlock() diff --git a/vendor/k8s.io/client-go/discovery/restmapper_test.go b/vendor/k8s.io/client-go/restmapper/discovery_test.go similarity index 98% rename from vendor/k8s.io/client-go/discovery/restmapper_test.go rename to vendor/k8s.io/client-go/restmapper/discovery_test.go index 69ee7e686..1b8e7c4f0 100644 --- a/vendor/k8s.io/client-go/discovery/restmapper_test.go +++ b/vendor/k8s.io/client-go/restmapper/discovery_test.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package discovery_test +package restmapper import ( "reflect" @@ -94,7 +94,7 @@ func TestRESTMapper(t *testing.T) { }, } - restMapper := NewRESTMapper(resources, nil) + restMapper := NewDiscoveryRESTMapper(resources) kindTCs := []struct { input schema.GroupVersionResource @@ -243,7 +243,7 @@ func TestDeferredDiscoveryRESTMapper_CacheMiss(t *testing.T) { assert := assert.New(t) cdc := fakeCachedDiscoveryInterface{fresh: false} - m := NewDeferredDiscoveryRESTMapper(&cdc, nil) + m := NewDeferredDiscoveryRESTMapper(&cdc) assert.False(cdc.fresh, "should NOT be fresh after instantiation") assert.Zero(cdc.invalidateCalls, "should not have called Invalidate()") diff --git a/vendor/k8s.io/client-go/restmapper/shortcut.go b/vendor/k8s.io/client-go/restmapper/shortcut.go new file mode 100644 index 000000000..6f3c9d930 --- /dev/null +++ b/vendor/k8s.io/client-go/restmapper/shortcut.go @@ -0,0 +1,172 @@ +/* +Copyright 2016 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package restmapper + +import ( + "strings" + + "k8s.io/klog" + + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/client-go/discovery" +) + +// shortcutExpander is a RESTMapper that can be used for Kubernetes resources. It expands the resource first, then invokes the wrapped +type shortcutExpander struct { + RESTMapper meta.RESTMapper + + discoveryClient discovery.DiscoveryInterface +} + +var _ meta.RESTMapper = &shortcutExpander{} + +// NewShortcutExpander wraps a restmapper in a layer that expands shortcuts found via discovery +func NewShortcutExpander(delegate meta.RESTMapper, client discovery.DiscoveryInterface) meta.RESTMapper { + return shortcutExpander{RESTMapper: delegate, discoveryClient: client} +} + +// KindFor fulfills meta.RESTMapper +func (e shortcutExpander) KindFor(resource schema.GroupVersionResource) (schema.GroupVersionKind, error) { + return e.RESTMapper.KindFor(e.expandResourceShortcut(resource)) +} + +// KindsFor fulfills meta.RESTMapper +func (e shortcutExpander) KindsFor(resource schema.GroupVersionResource) ([]schema.GroupVersionKind, error) { + return e.RESTMapper.KindsFor(e.expandResourceShortcut(resource)) +} + +// ResourcesFor fulfills meta.RESTMapper +func (e shortcutExpander) ResourcesFor(resource schema.GroupVersionResource) ([]schema.GroupVersionResource, error) { + return e.RESTMapper.ResourcesFor(e.expandResourceShortcut(resource)) +} + +// ResourceFor fulfills meta.RESTMapper +func (e shortcutExpander) ResourceFor(resource schema.GroupVersionResource) (schema.GroupVersionResource, error) { + return e.RESTMapper.ResourceFor(e.expandResourceShortcut(resource)) +} + +// ResourceSingularizer fulfills meta.RESTMapper +func (e shortcutExpander) ResourceSingularizer(resource string) (string, error) { + return e.RESTMapper.ResourceSingularizer(e.expandResourceShortcut(schema.GroupVersionResource{Resource: resource}).Resource) +} + +// RESTMapping fulfills meta.RESTMapper +func (e shortcutExpander) RESTMapping(gk schema.GroupKind, versions ...string) (*meta.RESTMapping, error) { + return e.RESTMapper.RESTMapping(gk, versions...) +} + +// RESTMappings fulfills meta.RESTMapper +func (e shortcutExpander) RESTMappings(gk schema.GroupKind, versions ...string) ([]*meta.RESTMapping, error) { + return e.RESTMapper.RESTMappings(gk, versions...) +} + +// getShortcutMappings returns a set of tuples which holds short names for resources. +// First the list of potential resources will be taken from the API server. +// Next we will append the hardcoded list of resources - to be backward compatible with old servers. +// NOTE that the list is ordered by group priority. +func (e shortcutExpander) getShortcutMappings() ([]*metav1.APIResourceList, []resourceShortcuts, error) { + res := []resourceShortcuts{} + // get server resources + // This can return an error *and* the results it was able to find. We don't need to fail on the error. + apiResList, err := e.discoveryClient.ServerResources() + if err != nil { + klog.V(1).Infof("Error loading discovery information: %v", err) + } + for _, apiResources := range apiResList { + gv, err := schema.ParseGroupVersion(apiResources.GroupVersion) + if err != nil { + klog.V(1).Infof("Unable to parse groupversion = %s due to = %s", apiResources.GroupVersion, err.Error()) + continue + } + for _, apiRes := range apiResources.APIResources { + for _, shortName := range apiRes.ShortNames { + rs := resourceShortcuts{ + ShortForm: schema.GroupResource{Group: gv.Group, Resource: shortName}, + LongForm: schema.GroupResource{Group: gv.Group, Resource: apiRes.Name}, + } + res = append(res, rs) + } + } + } + + return apiResList, res, nil +} + +// expandResourceShortcut will return the expanded version of resource +// (something that a pkg/api/meta.RESTMapper can understand), if it is +// indeed a shortcut. If no match has been found, we will match on group prefixing. +// Lastly we will return resource unmodified. +func (e shortcutExpander) expandResourceShortcut(resource schema.GroupVersionResource) schema.GroupVersionResource { + // get the shortcut mappings and return on first match. + if allResources, shortcutResources, err := e.getShortcutMappings(); err == nil { + // avoid expanding if there's an exact match to a full resource name + for _, apiResources := range allResources { + gv, err := schema.ParseGroupVersion(apiResources.GroupVersion) + if err != nil { + continue + } + if len(resource.Group) != 0 && resource.Group != gv.Group { + continue + } + for _, apiRes := range apiResources.APIResources { + if resource.Resource == apiRes.Name { + return resource + } + if resource.Resource == apiRes.SingularName { + return resource + } + } + } + + for _, item := range shortcutResources { + if len(resource.Group) != 0 && resource.Group != item.ShortForm.Group { + continue + } + if resource.Resource == item.ShortForm.Resource { + resource.Resource = item.LongForm.Resource + resource.Group = item.LongForm.Group + return resource + } + } + + // we didn't find exact match so match on group prefixing. This allows autoscal to match autoscaling + if len(resource.Group) == 0 { + return resource + } + for _, item := range shortcutResources { + if !strings.HasPrefix(item.ShortForm.Group, resource.Group) { + continue + } + if resource.Resource == item.ShortForm.Resource { + resource.Resource = item.LongForm.Resource + resource.Group = item.LongForm.Group + return resource + } + } + } + + return resource +} + +// ResourceShortcuts represents a structure that holds the information how to +// transition from resource's shortcut to its full name. +type resourceShortcuts struct { + ShortForm schema.GroupResource + LongForm schema.GroupResource +} diff --git a/vendor/k8s.io/client-go/restmapper/shortcut_test.go b/vendor/k8s.io/client-go/restmapper/shortcut_test.go new file mode 100644 index 000000000..dbc288fad --- /dev/null +++ b/vendor/k8s.io/client-go/restmapper/shortcut_test.go @@ -0,0 +1,289 @@ +/* +Copyright 2016 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package restmapper + +import ( + "testing" + + "github.com/googleapis/gnostic/OpenAPIv2" + + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/version" + "k8s.io/client-go/discovery" + restclient "k8s.io/client-go/rest" + "k8s.io/client-go/rest/fake" +) + +func TestReplaceAliases(t *testing.T) { + tests := []struct { + name string + arg string + expected schema.GroupVersionResource + srvRes []*metav1.APIResourceList + }{ + { + name: "storageclasses-no-replacement", + arg: "storageclasses", + expected: schema.GroupVersionResource{Resource: "storageclasses"}, + srvRes: []*metav1.APIResourceList{}, + }, + { + name: "hpa-priority", + arg: "hpa", + expected: schema.GroupVersionResource{Resource: "superhorizontalpodautoscalers", Group: "autoscaling"}, + srvRes: []*metav1.APIResourceList{ + { + GroupVersion: "autoscaling/v1", + APIResources: []metav1.APIResource{ + { + Name: "superhorizontalpodautoscalers", + ShortNames: []string{"hpa"}, + }, + }, + }, + { + GroupVersion: "autoscaling/v1", + APIResources: []metav1.APIResource{ + { + Name: "horizontalpodautoscalers", + ShortNames: []string{"hpa"}, + }, + }, + }, + }, + }, + { + name: "resource-override", + arg: "dpl", + expected: schema.GroupVersionResource{Resource: "deployments", Group: "foo"}, + srvRes: []*metav1.APIResourceList{ + { + GroupVersion: "foo/v1", + APIResources: []metav1.APIResource{ + { + Name: "deployments", + ShortNames: []string{"dpl"}, + }, + }, + }, + { + GroupVersion: "extension/v1beta1", + APIResources: []metav1.APIResource{ + { + Name: "deployments", + ShortNames: []string{"deploy"}, + }, + }, + }, + }, + }, + { + name: "resource-match-preferred", + arg: "pods", + expected: schema.GroupVersionResource{Resource: "pods", Group: ""}, + srvRes: []*metav1.APIResourceList{ + { + GroupVersion: "v1", + APIResources: []metav1.APIResource{{Name: "pods", SingularName: "pod"}}, + }, + { + GroupVersion: "acme.com/v1", + APIResources: []metav1.APIResource{{Name: "poddlers", ShortNames: []string{"pods", "pod"}}}, + }, + }, + }, + { + name: "resource-match-singular-preferred", + arg: "pod", + expected: schema.GroupVersionResource{Resource: "pod", Group: ""}, + srvRes: []*metav1.APIResourceList{ + { + GroupVersion: "v1", + APIResources: []metav1.APIResource{{Name: "pods", SingularName: "pod"}}, + }, + { + GroupVersion: "acme.com/v1", + APIResources: []metav1.APIResource{{Name: "poddlers", ShortNames: []string{"pods", "pod"}}}, + }, + }, + }, + } + + for _, test := range tests { + ds := &fakeDiscoveryClient{} + ds.serverResourcesHandler = func() ([]*metav1.APIResourceList, error) { + return test.srvRes, nil + } + mapper := NewShortcutExpander(&fakeRESTMapper{}, ds).(shortcutExpander) + + actual := mapper.expandResourceShortcut(schema.GroupVersionResource{Resource: test.arg}) + if actual != test.expected { + t.Errorf("%s: unexpected argument: expected %s, got %s", test.name, test.expected, actual) + } + } +} + +func TestKindFor(t *testing.T) { + tests := []struct { + in schema.GroupVersionResource + expected schema.GroupVersionResource + srvRes []*metav1.APIResourceList + }{ + { + in: schema.GroupVersionResource{Group: "storage.k8s.io", Version: "", Resource: "sc"}, + expected: schema.GroupVersionResource{Group: "storage.k8s.io", Version: "", Resource: "storageclasses"}, + srvRes: []*metav1.APIResourceList{ + { + GroupVersion: "storage.k8s.io/v1", + APIResources: []metav1.APIResource{ + { + Name: "storageclasses", + ShortNames: []string{"sc"}, + }, + }, + }, + }, + }, + { + in: schema.GroupVersionResource{Group: "", Version: "", Resource: "sc"}, + expected: schema.GroupVersionResource{Group: "storage.k8s.io", Version: "", Resource: "storageclasses"}, + srvRes: []*metav1.APIResourceList{ + { + GroupVersion: "storage.k8s.io/v1", + APIResources: []metav1.APIResource{ + { + Name: "storageclasses", + ShortNames: []string{"sc"}, + }, + }, + }, + }, + }, + } + + for i, test := range tests { + ds := &fakeDiscoveryClient{} + ds.serverResourcesHandler = func() ([]*metav1.APIResourceList, error) { + return test.srvRes, nil + } + + delegate := &fakeRESTMapper{} + mapper := NewShortcutExpander(delegate, ds) + + mapper.KindFor(test.in) + if delegate.kindForInput != test.expected { + t.Errorf("%d: unexpected data returned %#v, expected %#v", i, delegate.kindForInput, test.expected) + } + } +} + +type fakeRESTMapper struct { + kindForInput schema.GroupVersionResource +} + +func (f *fakeRESTMapper) KindFor(resource schema.GroupVersionResource) (schema.GroupVersionKind, error) { + f.kindForInput = resource + return schema.GroupVersionKind{}, nil +} + +func (f *fakeRESTMapper) KindsFor(resource schema.GroupVersionResource) ([]schema.GroupVersionKind, error) { + return nil, nil +} + +func (f *fakeRESTMapper) ResourceFor(input schema.GroupVersionResource) (schema.GroupVersionResource, error) { + return schema.GroupVersionResource{}, nil +} + +func (f *fakeRESTMapper) ResourcesFor(input schema.GroupVersionResource) ([]schema.GroupVersionResource, error) { + return nil, nil +} + +func (f *fakeRESTMapper) RESTMapping(gk schema.GroupKind, versions ...string) (*meta.RESTMapping, error) { + return nil, nil +} + +func (f *fakeRESTMapper) RESTMappings(gk schema.GroupKind, versions ...string) ([]*meta.RESTMapping, error) { + return nil, nil +} + +func (f *fakeRESTMapper) ResourceSingularizer(resource string) (singular string, err error) { + return "", nil +} + +type fakeDiscoveryClient struct { + serverResourcesHandler func() ([]*metav1.APIResourceList, error) +} + +var _ discovery.DiscoveryInterface = &fakeDiscoveryClient{} + +func (c *fakeDiscoveryClient) RESTClient() restclient.Interface { + return &fake.RESTClient{} +} + +func (c *fakeDiscoveryClient) ServerGroups() (*metav1.APIGroupList, error) { + return &metav1.APIGroupList{ + Groups: []metav1.APIGroup{ + { + Name: "a", + Versions: []metav1.GroupVersionForDiscovery{ + { + GroupVersion: "a/v1", + Version: "v1", + }, + }, + PreferredVersion: metav1.GroupVersionForDiscovery{ + GroupVersion: "a/v1", + Version: "v1", + }, + }, + }, + }, nil +} + +func (c *fakeDiscoveryClient) ServerResourcesForGroupVersion(groupVersion string) (*metav1.APIResourceList, error) { + if groupVersion == "a/v1" { + return &metav1.APIResourceList{APIResources: []metav1.APIResource{{Name: "widgets", Kind: "Widget"}}}, nil + } + + return nil, errors.NewNotFound(schema.GroupResource{}, "") +} + +func (c *fakeDiscoveryClient) ServerResources() ([]*metav1.APIResourceList, error) { + if c.serverResourcesHandler != nil { + return c.serverResourcesHandler() + } + return []*metav1.APIResourceList{}, nil +} + +func (c *fakeDiscoveryClient) ServerPreferredResources() ([]*metav1.APIResourceList, error) { + return nil, nil +} + +func (c *fakeDiscoveryClient) ServerPreferredNamespacedResources() ([]*metav1.APIResourceList, error) { + return nil, nil +} + +func (c *fakeDiscoveryClient) ServerVersion() (*version.Info, error) { + return &version.Info{}, nil +} + +func (c *fakeDiscoveryClient) OpenAPISchema() (*openapi_v2.Document, error) { + return &openapi_v2.Document{}, nil +} diff --git a/vendor/k8s.io/client-go/scale/BUILD b/vendor/k8s.io/client-go/scale/BUILD deleted file mode 100644 index b82984243..000000000 --- a/vendor/k8s.io/client-go/scale/BUILD +++ /dev/null @@ -1,76 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") - -go_library( - name = "go_default_library", - srcs = [ - "client.go", - "doc.go", - "interfaces.go", - "util.go", - ], - importpath = "k8s.io/client-go/scale", - visibility = ["//visibility:public"], - deps = [ - "//vendor/k8s.io/api/autoscaling/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", - "//vendor/k8s.io/client-go/discovery:go_default_library", - "//vendor/k8s.io/client-go/dynamic:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/scale/scheme:go_default_library", - "//vendor/k8s.io/client-go/scale/scheme/appsint:go_default_library", - "//vendor/k8s.io/client-go/scale/scheme/appsv1beta1:go_default_library", - "//vendor/k8s.io/client-go/scale/scheme/appsv1beta2:go_default_library", - "//vendor/k8s.io/client-go/scale/scheme/autoscalingv1:go_default_library", - "//vendor/k8s.io/client-go/scale/scheme/extensionsint:go_default_library", - "//vendor/k8s.io/client-go/scale/scheme/extensionsv1beta1:go_default_library", - ], -) - -go_test( - name = "go_default_test", - srcs = [ - "client_test.go", - "roundtrip_test.go", - ], - embed = [":go_default_library"], - deps = [ - "//vendor/github.com/stretchr/testify/assert:go_default_library", - "//vendor/k8s.io/api/apps/v1beta1:go_default_library", - "//vendor/k8s.io/api/apps/v1beta2:go_default_library", - "//vendor/k8s.io/api/autoscaling/v1:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/testing/roundtrip:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", - "//vendor/k8s.io/client-go/discovery:go_default_library", - "//vendor/k8s.io/client-go/discovery/fake:go_default_library", - "//vendor/k8s.io/client-go/dynamic:go_default_library", - "//vendor/k8s.io/client-go/rest/fake:go_default_library", - "//vendor/k8s.io/client-go/testing:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/scale/fake:all-srcs", - "//staging/src/k8s.io/client-go/scale/scheme:all-srcs", - ], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/client-go/scale/client.go b/vendor/k8s.io/client-go/scale/client.go index 782aca394..3a3e8fc9e 100644 --- a/vendor/k8s.io/client-go/scale/client.go +++ b/vendor/k8s.io/client-go/scale/client.go @@ -20,7 +20,6 @@ import ( "fmt" autoscaling "k8s.io/api/autoscaling/v1" - "k8s.io/apimachinery/pkg/api/meta" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" serializer "k8s.io/apimachinery/pkg/runtime/serializer" @@ -41,7 +40,7 @@ type restInterfaceProvider func(*restclient.Config) (restclient.Interface, error // It behaves somewhat similarly to the dynamic ClientPool, // but is more specifically scoped to Scale. type scaleClient struct { - mapper meta.RESTMapper + mapper PreferredResourceMapper apiPathResolverFunc dynamic.APIPathResolverFunc scaleKindResolver ScaleKindResolver @@ -51,7 +50,7 @@ type scaleClient struct { // NewForConfig creates a new ScalesGetter which resolves kinds // to resources using the given RESTMapper, and API paths using // the given dynamic.APIPathResolverFunc. -func NewForConfig(cfg *restclient.Config, mapper meta.RESTMapper, resolver dynamic.APIPathResolverFunc, scaleKindResolver ScaleKindResolver) (ScalesGetter, error) { +func NewForConfig(cfg *restclient.Config, mapper PreferredResourceMapper, resolver dynamic.APIPathResolverFunc, scaleKindResolver ScaleKindResolver) (ScalesGetter, error) { // so that the RESTClientFor doesn't complain cfg.GroupVersion = &schema.GroupVersion{} @@ -72,7 +71,7 @@ func NewForConfig(cfg *restclient.Config, mapper meta.RESTMapper, resolver dynam // New creates a new ScalesGetter using the given client to make requests. // The GroupVersion on the client is ignored. -func New(baseClient restclient.Interface, mapper meta.RESTMapper, resolver dynamic.APIPathResolverFunc, scaleKindResolver ScaleKindResolver) ScalesGetter { +func New(baseClient restclient.Interface, mapper PreferredResourceMapper, resolver dynamic.APIPathResolverFunc, scaleKindResolver ScaleKindResolver) ScalesGetter { return &scaleClient{ mapper: mapper, @@ -138,7 +137,7 @@ func (c *namespacedScaleClient) Get(resource schema.GroupResource, name string) SubResource("scale"). Do() if err := result.Error(); err != nil { - return nil, fmt.Errorf("could not fetch the scale for %s %s: %v", resource.String(), name, err) + return nil, err } scaleBytes, err := result.Raw() @@ -196,7 +195,10 @@ func (c *namespacedScaleClient) Update(resource schema.GroupResource, scale *aut Body(scaleUpdateBytes). Do() if err := result.Error(); err != nil { - return nil, fmt.Errorf("could not update the scale for %s %s: %v", resource.String(), scale.Name, err) + // propagate "raw" error from the API + // this allows callers to interpret underlying Reason field + // for example: errors.IsConflict(err) + return nil, err } scaleBytes, err := result.Raw() diff --git a/vendor/k8s.io/client-go/scale/client_test.go b/vendor/k8s.io/client-go/scale/client_test.go index 6301320f3..a3a8c037d 100644 --- a/vendor/k8s.io/client-go/scale/client_test.go +++ b/vendor/k8s.io/client-go/scale/client_test.go @@ -29,7 +29,6 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" serializer "k8s.io/apimachinery/pkg/runtime/serializer" - "k8s.io/client-go/discovery" fakedisco "k8s.io/client-go/discovery/fake" "k8s.io/client-go/dynamic" fakerest "k8s.io/client-go/rest/fake" @@ -40,7 +39,7 @@ import ( autoscalingv1 "k8s.io/api/autoscaling/v1" corev1 "k8s.io/api/core/v1" extv1beta1 "k8s.io/api/extensions/v1beta1" - apimeta "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/client-go/restmapper" coretesting "k8s.io/client-go/testing" ) @@ -97,11 +96,11 @@ func fakeScaleClient(t *testing.T) (ScalesGetter, []schema.GroupResource) { }, } - restMapperRes, err := discovery.GetAPIGroupResources(fakeDiscoveryClient) + restMapperRes, err := restmapper.GetAPIGroupResources(fakeDiscoveryClient) if err != nil { t.Fatalf("unexpected error while constructing resource list from fake discovery client: %v", err) } - restMapper := discovery.NewRESTMapper(restMapperRes, apimeta.InterfacesForUnstructured) + restMapper := restmapper.NewDiscoveryRESTMapper(restMapperRes) autoscalingScale := &autoscalingv1.Scale{ TypeMeta: metav1.TypeMeta{ diff --git a/vendor/k8s.io/client-go/scale/fake/BUILD b/vendor/k8s.io/client-go/scale/fake/BUILD deleted file mode 100644 index 8c9374305..000000000 --- a/vendor/k8s.io/client-go/scale/fake/BUILD +++ /dev/null @@ -1,28 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = ["client.go"], - importpath = "k8s.io/client-go/scale/fake", - visibility = ["//visibility:public"], - deps = [ - "//vendor/k8s.io/api/autoscaling/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/client-go/scale:go_default_library", - "//vendor/k8s.io/client-go/testing:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/client-go/scale/interfaces.go b/vendor/k8s.io/client-go/scale/interfaces.go index 4668c7417..13f2cfb8e 100644 --- a/vendor/k8s.io/client-go/scale/interfaces.go +++ b/vendor/k8s.io/client-go/scale/interfaces.go @@ -34,6 +34,6 @@ type ScaleInterface interface { // Get fetches the scale of the given scalable resource. Get(resource schema.GroupResource, name string) (*autoscalingapi.Scale, error) - // Update updates the scale of the the given scalable resource. + // Update updates the scale of the given scalable resource. Update(resource schema.GroupResource, scale *autoscalingapi.Scale) (*autoscalingapi.Scale, error) } diff --git a/vendor/k8s.io/client-go/scale/roundtrip_test.go b/vendor/k8s.io/client-go/scale/roundtrip_test.go index 2d3b28bf6..1da98704e 100644 --- a/vendor/k8s.io/client-go/scale/roundtrip_test.go +++ b/vendor/k8s.io/client-go/scale/roundtrip_test.go @@ -19,7 +19,7 @@ package scale import ( "testing" - "k8s.io/apimachinery/pkg/api/testing/roundtrip" + "k8s.io/apimachinery/pkg/api/apitesting/roundtrip" ) // NB: this can't be in the scheme package, because importing' diff --git a/vendor/k8s.io/client-go/scale/scheme/BUILD b/vendor/k8s.io/client-go/scale/scheme/BUILD deleted file mode 100644 index 74bd976a1..000000000 --- a/vendor/k8s.io/client-go/scale/scheme/BUILD +++ /dev/null @@ -1,41 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "register.go", - "types.go", - "zz_generated.deepcopy.go", - ], - importpath = "k8s.io/client-go/scale/scheme", - visibility = ["//visibility:public"], - deps = [ - "//vendor/k8s.io/api/autoscaling/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/scale/scheme/appsint:all-srcs", - "//staging/src/k8s.io/client-go/scale/scheme/appsv1beta1:all-srcs", - "//staging/src/k8s.io/client-go/scale/scheme/appsv1beta2:all-srcs", - "//staging/src/k8s.io/client-go/scale/scheme/autoscalingv1:all-srcs", - "//staging/src/k8s.io/client-go/scale/scheme/extensionsint:all-srcs", - "//staging/src/k8s.io/client-go/scale/scheme/extensionsv1beta1:all-srcs", - ], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/client-go/scale/scheme/appsint/BUILD b/vendor/k8s.io/client-go/scale/scheme/appsint/BUILD deleted file mode 100644 index 2fef63f0e..000000000 --- a/vendor/k8s.io/client-go/scale/scheme/appsint/BUILD +++ /dev/null @@ -1,31 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "register.go", - ], - importpath = "k8s.io/client-go/scale/scheme/appsint", - visibility = ["//visibility:public"], - deps = [ - "//vendor/k8s.io/api/apps/v1beta2:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/client-go/scale/scheme:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/client-go/scale/scheme/appsv1beta1/BUILD b/vendor/k8s.io/client-go/scale/scheme/appsv1beta1/BUILD deleted file mode 100644 index 05530e300..000000000 --- a/vendor/k8s.io/client-go/scale/scheme/appsv1beta1/BUILD +++ /dev/null @@ -1,35 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "conversion.go", - "doc.go", - "register.go", - "zz_generated.conversion.go", - ], - importpath = "k8s.io/client-go/scale/scheme/appsv1beta1", - visibility = ["//visibility:public"], - deps = [ - "//vendor/k8s.io/api/apps/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/client-go/scale/scheme:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/client-go/scale/scheme/appsv1beta1/zz_generated.conversion.go b/vendor/k8s.io/client-go/scale/scheme/appsv1beta1/zz_generated.conversion.go index bd42e7add..16d53c697 100644 --- a/vendor/k8s.io/client-go/scale/scheme/appsv1beta1/zz_generated.conversion.go +++ b/vendor/k8s.io/client-go/scale/scheme/appsv1beta1/zz_generated.conversion.go @@ -1,7 +1,7 @@ // +build !ignore_autogenerated /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -33,15 +33,48 @@ func init() { // RegisterConversions adds conversion functions to the given scheme. // Public to allow building arbitrary schemes. -func RegisterConversions(scheme *runtime.Scheme) error { - return scheme.AddGeneratedConversionFuncs( - Convert_v1beta1_Scale_To_scheme_Scale, - Convert_scheme_Scale_To_v1beta1_Scale, - Convert_v1beta1_ScaleSpec_To_scheme_ScaleSpec, - Convert_scheme_ScaleSpec_To_v1beta1_ScaleSpec, - Convert_v1beta1_ScaleStatus_To_scheme_ScaleStatus, - Convert_scheme_ScaleStatus_To_v1beta1_ScaleStatus, - ) +func RegisterConversions(s *runtime.Scheme) error { + if err := s.AddGeneratedConversionFunc((*v1beta1.Scale)(nil), (*scheme.Scale)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_Scale_To_scheme_Scale(a.(*v1beta1.Scale), b.(*scheme.Scale), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*scheme.Scale)(nil), (*v1beta1.Scale)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_scheme_Scale_To_v1beta1_Scale(a.(*scheme.Scale), b.(*v1beta1.Scale), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*v1beta1.ScaleSpec)(nil), (*scheme.ScaleSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_ScaleSpec_To_scheme_ScaleSpec(a.(*v1beta1.ScaleSpec), b.(*scheme.ScaleSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*scheme.ScaleSpec)(nil), (*v1beta1.ScaleSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_scheme_ScaleSpec_To_v1beta1_ScaleSpec(a.(*scheme.ScaleSpec), b.(*v1beta1.ScaleSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*v1beta1.ScaleStatus)(nil), (*scheme.ScaleStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_ScaleStatus_To_scheme_ScaleStatus(a.(*v1beta1.ScaleStatus), b.(*scheme.ScaleStatus), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*scheme.ScaleStatus)(nil), (*v1beta1.ScaleStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_scheme_ScaleStatus_To_v1beta1_ScaleStatus(a.(*scheme.ScaleStatus), b.(*v1beta1.ScaleStatus), scope) + }); err != nil { + return err + } + if err := s.AddConversionFunc((*scheme.ScaleStatus)(nil), (*v1beta1.ScaleStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_scheme_ScaleStatus_To_v1beta1_ScaleStatus(a.(*scheme.ScaleStatus), b.(*v1beta1.ScaleStatus), scope) + }); err != nil { + return err + } + if err := s.AddConversionFunc((*v1beta1.ScaleStatus)(nil), (*scheme.ScaleStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_ScaleStatus_To_scheme_ScaleStatus(a.(*v1beta1.ScaleStatus), b.(*scheme.ScaleStatus), scope) + }); err != nil { + return err + } + return nil } func autoConvert_v1beta1_Scale_To_scheme_Scale(in *v1beta1.Scale, out *scheme.Scale, s conversion.Scope) error { diff --git a/vendor/k8s.io/client-go/scale/scheme/appsv1beta2/BUILD b/vendor/k8s.io/client-go/scale/scheme/appsv1beta2/BUILD deleted file mode 100644 index 7e52bc060..000000000 --- a/vendor/k8s.io/client-go/scale/scheme/appsv1beta2/BUILD +++ /dev/null @@ -1,35 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "conversion.go", - "doc.go", - "register.go", - "zz_generated.conversion.go", - ], - importpath = "k8s.io/client-go/scale/scheme/appsv1beta2", - visibility = ["//visibility:public"], - deps = [ - "//vendor/k8s.io/api/apps/v1beta2:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/client-go/scale/scheme:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/client-go/scale/scheme/appsv1beta2/zz_generated.conversion.go b/vendor/k8s.io/client-go/scale/scheme/appsv1beta2/zz_generated.conversion.go index d6afedb0d..1901be8cb 100644 --- a/vendor/k8s.io/client-go/scale/scheme/appsv1beta2/zz_generated.conversion.go +++ b/vendor/k8s.io/client-go/scale/scheme/appsv1beta2/zz_generated.conversion.go @@ -1,7 +1,7 @@ // +build !ignore_autogenerated /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -33,15 +33,48 @@ func init() { // RegisterConversions adds conversion functions to the given scheme. // Public to allow building arbitrary schemes. -func RegisterConversions(scheme *runtime.Scheme) error { - return scheme.AddGeneratedConversionFuncs( - Convert_v1beta2_Scale_To_scheme_Scale, - Convert_scheme_Scale_To_v1beta2_Scale, - Convert_v1beta2_ScaleSpec_To_scheme_ScaleSpec, - Convert_scheme_ScaleSpec_To_v1beta2_ScaleSpec, - Convert_v1beta2_ScaleStatus_To_scheme_ScaleStatus, - Convert_scheme_ScaleStatus_To_v1beta2_ScaleStatus, - ) +func RegisterConversions(s *runtime.Scheme) error { + if err := s.AddGeneratedConversionFunc((*v1beta2.Scale)(nil), (*scheme.Scale)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta2_Scale_To_scheme_Scale(a.(*v1beta2.Scale), b.(*scheme.Scale), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*scheme.Scale)(nil), (*v1beta2.Scale)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_scheme_Scale_To_v1beta2_Scale(a.(*scheme.Scale), b.(*v1beta2.Scale), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*v1beta2.ScaleSpec)(nil), (*scheme.ScaleSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta2_ScaleSpec_To_scheme_ScaleSpec(a.(*v1beta2.ScaleSpec), b.(*scheme.ScaleSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*scheme.ScaleSpec)(nil), (*v1beta2.ScaleSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_scheme_ScaleSpec_To_v1beta2_ScaleSpec(a.(*scheme.ScaleSpec), b.(*v1beta2.ScaleSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*v1beta2.ScaleStatus)(nil), (*scheme.ScaleStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta2_ScaleStatus_To_scheme_ScaleStatus(a.(*v1beta2.ScaleStatus), b.(*scheme.ScaleStatus), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*scheme.ScaleStatus)(nil), (*v1beta2.ScaleStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_scheme_ScaleStatus_To_v1beta2_ScaleStatus(a.(*scheme.ScaleStatus), b.(*v1beta2.ScaleStatus), scope) + }); err != nil { + return err + } + if err := s.AddConversionFunc((*scheme.ScaleStatus)(nil), (*v1beta2.ScaleStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_scheme_ScaleStatus_To_v1beta2_ScaleStatus(a.(*scheme.ScaleStatus), b.(*v1beta2.ScaleStatus), scope) + }); err != nil { + return err + } + if err := s.AddConversionFunc((*v1beta2.ScaleStatus)(nil), (*scheme.ScaleStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta2_ScaleStatus_To_scheme_ScaleStatus(a.(*v1beta2.ScaleStatus), b.(*scheme.ScaleStatus), scope) + }); err != nil { + return err + } + return nil } func autoConvert_v1beta2_Scale_To_scheme_Scale(in *v1beta2.Scale, out *scheme.Scale, s conversion.Scope) error { diff --git a/vendor/k8s.io/client-go/scale/scheme/autoscalingv1/BUILD b/vendor/k8s.io/client-go/scale/scheme/autoscalingv1/BUILD deleted file mode 100644 index 646a6fdf8..000000000 --- a/vendor/k8s.io/client-go/scale/scheme/autoscalingv1/BUILD +++ /dev/null @@ -1,35 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "conversion.go", - "doc.go", - "register.go", - "zz_generated.conversion.go", - ], - importpath = "k8s.io/client-go/scale/scheme/autoscalingv1", - visibility = ["//visibility:public"], - deps = [ - "//vendor/k8s.io/api/autoscaling/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/client-go/scale/scheme:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/client-go/scale/scheme/autoscalingv1/zz_generated.conversion.go b/vendor/k8s.io/client-go/scale/scheme/autoscalingv1/zz_generated.conversion.go index 2a7a45a47..203f8b323 100644 --- a/vendor/k8s.io/client-go/scale/scheme/autoscalingv1/zz_generated.conversion.go +++ b/vendor/k8s.io/client-go/scale/scheme/autoscalingv1/zz_generated.conversion.go @@ -1,7 +1,7 @@ // +build !ignore_autogenerated /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -33,15 +33,48 @@ func init() { // RegisterConversions adds conversion functions to the given scheme. // Public to allow building arbitrary schemes. -func RegisterConversions(scheme *runtime.Scheme) error { - return scheme.AddGeneratedConversionFuncs( - Convert_v1_Scale_To_scheme_Scale, - Convert_scheme_Scale_To_v1_Scale, - Convert_v1_ScaleSpec_To_scheme_ScaleSpec, - Convert_scheme_ScaleSpec_To_v1_ScaleSpec, - Convert_v1_ScaleStatus_To_scheme_ScaleStatus, - Convert_scheme_ScaleStatus_To_v1_ScaleStatus, - ) +func RegisterConversions(s *runtime.Scheme) error { + if err := s.AddGeneratedConversionFunc((*v1.Scale)(nil), (*scheme.Scale)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1_Scale_To_scheme_Scale(a.(*v1.Scale), b.(*scheme.Scale), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*scheme.Scale)(nil), (*v1.Scale)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_scheme_Scale_To_v1_Scale(a.(*scheme.Scale), b.(*v1.Scale), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*v1.ScaleSpec)(nil), (*scheme.ScaleSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1_ScaleSpec_To_scheme_ScaleSpec(a.(*v1.ScaleSpec), b.(*scheme.ScaleSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*scheme.ScaleSpec)(nil), (*v1.ScaleSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_scheme_ScaleSpec_To_v1_ScaleSpec(a.(*scheme.ScaleSpec), b.(*v1.ScaleSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*v1.ScaleStatus)(nil), (*scheme.ScaleStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1_ScaleStatus_To_scheme_ScaleStatus(a.(*v1.ScaleStatus), b.(*scheme.ScaleStatus), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*scheme.ScaleStatus)(nil), (*v1.ScaleStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_scheme_ScaleStatus_To_v1_ScaleStatus(a.(*scheme.ScaleStatus), b.(*v1.ScaleStatus), scope) + }); err != nil { + return err + } + if err := s.AddConversionFunc((*scheme.ScaleStatus)(nil), (*v1.ScaleStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_scheme_ScaleStatus_To_v1_ScaleStatus(a.(*scheme.ScaleStatus), b.(*v1.ScaleStatus), scope) + }); err != nil { + return err + } + if err := s.AddConversionFunc((*v1.ScaleStatus)(nil), (*scheme.ScaleStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1_ScaleStatus_To_scheme_ScaleStatus(a.(*v1.ScaleStatus), b.(*scheme.ScaleStatus), scope) + }); err != nil { + return err + } + return nil } func autoConvert_v1_Scale_To_scheme_Scale(in *v1.Scale, out *scheme.Scale, s conversion.Scope) error { diff --git a/vendor/k8s.io/client-go/scale/scheme/extensionsint/BUILD b/vendor/k8s.io/client-go/scale/scheme/extensionsint/BUILD deleted file mode 100644 index 6174a88b1..000000000 --- a/vendor/k8s.io/client-go/scale/scheme/extensionsint/BUILD +++ /dev/null @@ -1,31 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "register.go", - ], - importpath = "k8s.io/client-go/scale/scheme/extensionsint", - visibility = ["//visibility:public"], - deps = [ - "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/client-go/scale/scheme:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/client-go/scale/scheme/extensionsv1beta1/BUILD b/vendor/k8s.io/client-go/scale/scheme/extensionsv1beta1/BUILD deleted file mode 100644 index 4c992c7d1..000000000 --- a/vendor/k8s.io/client-go/scale/scheme/extensionsv1beta1/BUILD +++ /dev/null @@ -1,35 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "conversion.go", - "doc.go", - "register.go", - "zz_generated.conversion.go", - ], - importpath = "k8s.io/client-go/scale/scheme/extensionsv1beta1", - visibility = ["//visibility:public"], - deps = [ - "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/client-go/scale/scheme:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/client-go/scale/scheme/extensionsv1beta1/zz_generated.conversion.go b/vendor/k8s.io/client-go/scale/scheme/extensionsv1beta1/zz_generated.conversion.go index 6d0ed7a29..99aef8653 100644 --- a/vendor/k8s.io/client-go/scale/scheme/extensionsv1beta1/zz_generated.conversion.go +++ b/vendor/k8s.io/client-go/scale/scheme/extensionsv1beta1/zz_generated.conversion.go @@ -1,7 +1,7 @@ // +build !ignore_autogenerated /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -33,15 +33,48 @@ func init() { // RegisterConversions adds conversion functions to the given scheme. // Public to allow building arbitrary schemes. -func RegisterConversions(scheme *runtime.Scheme) error { - return scheme.AddGeneratedConversionFuncs( - Convert_v1beta1_Scale_To_scheme_Scale, - Convert_scheme_Scale_To_v1beta1_Scale, - Convert_v1beta1_ScaleSpec_To_scheme_ScaleSpec, - Convert_scheme_ScaleSpec_To_v1beta1_ScaleSpec, - Convert_v1beta1_ScaleStatus_To_scheme_ScaleStatus, - Convert_scheme_ScaleStatus_To_v1beta1_ScaleStatus, - ) +func RegisterConversions(s *runtime.Scheme) error { + if err := s.AddGeneratedConversionFunc((*v1beta1.Scale)(nil), (*scheme.Scale)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_Scale_To_scheme_Scale(a.(*v1beta1.Scale), b.(*scheme.Scale), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*scheme.Scale)(nil), (*v1beta1.Scale)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_scheme_Scale_To_v1beta1_Scale(a.(*scheme.Scale), b.(*v1beta1.Scale), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*v1beta1.ScaleSpec)(nil), (*scheme.ScaleSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_ScaleSpec_To_scheme_ScaleSpec(a.(*v1beta1.ScaleSpec), b.(*scheme.ScaleSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*scheme.ScaleSpec)(nil), (*v1beta1.ScaleSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_scheme_ScaleSpec_To_v1beta1_ScaleSpec(a.(*scheme.ScaleSpec), b.(*v1beta1.ScaleSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*v1beta1.ScaleStatus)(nil), (*scheme.ScaleStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_ScaleStatus_To_scheme_ScaleStatus(a.(*v1beta1.ScaleStatus), b.(*scheme.ScaleStatus), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*scheme.ScaleStatus)(nil), (*v1beta1.ScaleStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_scheme_ScaleStatus_To_v1beta1_ScaleStatus(a.(*scheme.ScaleStatus), b.(*v1beta1.ScaleStatus), scope) + }); err != nil { + return err + } + if err := s.AddConversionFunc((*scheme.ScaleStatus)(nil), (*v1beta1.ScaleStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_scheme_ScaleStatus_To_v1beta1_ScaleStatus(a.(*scheme.ScaleStatus), b.(*v1beta1.ScaleStatus), scope) + }); err != nil { + return err + } + if err := s.AddConversionFunc((*v1beta1.ScaleStatus)(nil), (*scheme.ScaleStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_ScaleStatus_To_scheme_ScaleStatus(a.(*v1beta1.ScaleStatus), b.(*scheme.ScaleStatus), scope) + }); err != nil { + return err + } + return nil } func autoConvert_v1beta1_Scale_To_scheme_Scale(in *v1beta1.Scale, out *scheme.Scale, s conversion.Scope) error { diff --git a/vendor/k8s.io/client-go/scale/scheme/zz_generated.deepcopy.go b/vendor/k8s.io/client-go/scale/scheme/zz_generated.deepcopy.go index d34399667..3db708154 100644 --- a/vendor/k8s.io/client-go/scale/scheme/zz_generated.deepcopy.go +++ b/vendor/k8s.io/client-go/scale/scheme/zz_generated.deepcopy.go @@ -1,7 +1,7 @@ // +build !ignore_autogenerated /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -74,12 +74,8 @@ func (in *ScaleStatus) DeepCopyInto(out *ScaleStatus) { *out = *in if in.Selector != nil { in, out := &in.Selector, &out.Selector - if *in == nil { - *out = nil - } else { - *out = new(v1.LabelSelector) - (*in).DeepCopyInto(*out) - } + *out = new(v1.LabelSelector) + (*in).DeepCopyInto(*out) } return } diff --git a/vendor/k8s.io/client-go/scale/util.go b/vendor/k8s.io/client-go/scale/util.go index 46b5c4d1e..2f43a7a79 100644 --- a/vendor/k8s.io/client-go/scale/util.go +++ b/vendor/k8s.io/client-go/scale/util.go @@ -21,9 +21,11 @@ import ( "strings" "sync" + "k8s.io/apimachinery/pkg/api/meta" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" serializer "k8s.io/apimachinery/pkg/runtime/serializer" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/client-go/discovery" scalescheme "k8s.io/client-go/scale/scheme" scaleappsint "k8s.io/client-go/scale/scheme/appsint" @@ -34,6 +36,15 @@ import ( scaleext "k8s.io/client-go/scale/scheme/extensionsv1beta1" ) +// PreferredResourceMapper determines the preferred version of a resource to scale +type PreferredResourceMapper interface { + // ResourceFor takes a partial resource and returns the preferred resource. + ResourceFor(resource schema.GroupVersionResource) (preferredResource schema.GroupVersionResource, err error) +} + +// Ensure a RESTMapper satisfies the PreferredResourceMapper interface +var _ PreferredResourceMapper = meta.RESTMapper(nil) + // ScaleKindResolver knows about the relationship between // resources and the GroupVersionKind of their scale subresources. type ScaleKindResolver interface { @@ -133,13 +144,13 @@ type ScaleConverter struct { // Scales in autoscaling/v1 and extensions/v1beta1. func NewScaleConverter() *ScaleConverter { scheme := runtime.NewScheme() - scaleautoscaling.AddToScheme(scheme) - scalescheme.AddToScheme(scheme) - scaleext.AddToScheme(scheme) - scaleextint.AddToScheme(scheme) - scaleappsint.AddToScheme(scheme) - scaleappsv1beta1.AddToScheme(scheme) - scaleappsv1beta2.AddToScheme(scheme) + utilruntime.Must(scaleautoscaling.AddToScheme(scheme)) + utilruntime.Must(scalescheme.AddToScheme(scheme)) + utilruntime.Must(scaleext.AddToScheme(scheme)) + utilruntime.Must(scaleextint.AddToScheme(scheme)) + utilruntime.Must(scaleappsint.AddToScheme(scheme)) + utilruntime.Must(scaleappsv1beta1.AddToScheme(scheme)) + utilruntime.Must(scaleappsv1beta2.AddToScheme(scheme)) return &ScaleConverter{ scheme: scheme, diff --git a/vendor/k8s.io/client-go/testing/BUILD b/vendor/k8s.io/client-go/testing/BUILD deleted file mode 100644 index dd8d13397..000000000 --- a/vendor/k8s.io/client-go/testing/BUILD +++ /dev/null @@ -1,60 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_library( - name = "go_default_library", - srcs = [ - "actions.go", - "fake.go", - "fixture.go", - ], - importpath = "k8s.io/client-go/testing", - deps = [ - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/version:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/pkg/version:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - ], -) - -go_test( - name = "go_default_test", - srcs = [ - "fixture_test.go", - ], - embed = [":go_default_library"], - deps = [ - "//vendor/github.com/stretchr/testify/assert:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/testing/actions.go b/vendor/k8s.io/client-go/testing/actions.go index 6f1c3a896..e6db578ed 100644 --- a/vendor/k8s.io/client-go/testing/actions.go +++ b/vendor/k8s.io/client-go/testing/actions.go @@ -26,6 +26,7 @@ import ( "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/types" ) func NewRootGetAction(resource schema.GroupVersionResource, name string) GetActionImpl { @@ -58,6 +59,16 @@ func NewGetSubresourceAction(resource schema.GroupVersionResource, namespace, su return action } +func NewRootGetSubresourceAction(resource schema.GroupVersionResource, subresource, name string) GetActionImpl { + action := GetActionImpl{} + action.Verb = "get" + action.Resource = resource + action.Subresource = subresource + action.Name = name + + return action +} + func NewRootListAction(resource schema.GroupVersionResource, kind schema.GroupVersionKind, opts interface{}) ListActionImpl { action := ListActionImpl{} action.Verb = "list" @@ -81,20 +92,6 @@ func NewListAction(resource schema.GroupVersionResource, kind schema.GroupVersio return action } -func NewListSubresourceAction(resource schema.GroupVersionResource, name, subresource string, kind schema.GroupVersionKind, namespace string, opts interface{}) ListActionImpl { - action := ListActionImpl{} - action.Verb = "list" - action.Resource = resource - action.Subresource = subresource - action.Kind = kind - action.Namespace = namespace - action.Name = name - labelSelector, fieldSelector, _ := ExtractFromListOptions(opts) - action.ListRestrictions = ListRestrictions{labelSelector, fieldSelector} - - return action -} - func NewRootCreateAction(resource schema.GroupVersionResource, object runtime.Object) CreateActionImpl { action := CreateActionImpl{} action.Verb = "create" @@ -114,12 +111,23 @@ func NewCreateAction(resource schema.GroupVersionResource, namespace string, obj return action } -func NewCreateSubresourceAction(resource schema.GroupVersionResource, name, subresource string, namespace string, object runtime.Object) CreateActionImpl { +func NewRootCreateSubresourceAction(resource schema.GroupVersionResource, name, subresource string, object runtime.Object) CreateActionImpl { action := CreateActionImpl{} action.Verb = "create" action.Resource = resource action.Subresource = subresource + action.Name = name + action.Object = object + + return action +} + +func NewCreateSubresourceAction(resource schema.GroupVersionResource, name, subresource, namespace string, object runtime.Object) CreateActionImpl { + action := CreateActionImpl{} + action.Verb = "create" + action.Resource = resource action.Namespace = namespace + action.Subresource = subresource action.Name = name action.Object = object @@ -145,45 +153,49 @@ func NewUpdateAction(resource schema.GroupVersionResource, namespace string, obj return action } -func NewRootPatchAction(resource schema.GroupVersionResource, name string, patch []byte) PatchActionImpl { +func NewRootPatchAction(resource schema.GroupVersionResource, name string, pt types.PatchType, patch []byte) PatchActionImpl { action := PatchActionImpl{} action.Verb = "patch" action.Resource = resource action.Name = name + action.PatchType = pt action.Patch = patch return action } -func NewPatchAction(resource schema.GroupVersionResource, namespace string, name string, patch []byte) PatchActionImpl { +func NewPatchAction(resource schema.GroupVersionResource, namespace string, name string, pt types.PatchType, patch []byte) PatchActionImpl { action := PatchActionImpl{} action.Verb = "patch" action.Resource = resource action.Namespace = namespace action.Name = name + action.PatchType = pt action.Patch = patch return action } -func NewRootPatchSubresourceAction(resource schema.GroupVersionResource, name string, patch []byte, subresources ...string) PatchActionImpl { +func NewRootPatchSubresourceAction(resource schema.GroupVersionResource, name string, pt types.PatchType, patch []byte, subresources ...string) PatchActionImpl { action := PatchActionImpl{} action.Verb = "patch" action.Resource = resource action.Subresource = path.Join(subresources...) action.Name = name + action.PatchType = pt action.Patch = patch return action } -func NewPatchSubresourceAction(resource schema.GroupVersionResource, namespace, name string, patch []byte, subresources ...string) PatchActionImpl { +func NewPatchSubresourceAction(resource schema.GroupVersionResource, namespace, name string, pt types.PatchType, patch []byte, subresources ...string) PatchActionImpl { action := PatchActionImpl{} action.Verb = "patch" action.Resource = resource action.Subresource = path.Join(subresources...) action.Namespace = namespace action.Name = name + action.PatchType = pt action.Patch = patch return action @@ -218,6 +230,16 @@ func NewRootDeleteAction(resource schema.GroupVersionResource, name string) Dele return action } +func NewRootDeleteSubresourceAction(resource schema.GroupVersionResource, subresource string, name string) DeleteActionImpl { + action := DeleteActionImpl{} + action.Verb = "delete" + action.Resource = resource + action.Subresource = subresource + action.Name = name + + return action +} + func NewDeleteAction(resource schema.GroupVersionResource, namespace, name string) DeleteActionImpl { action := DeleteActionImpl{} action.Verb = "delete" @@ -228,6 +250,17 @@ func NewDeleteAction(resource schema.GroupVersionResource, namespace, name strin return action } +func NewDeleteSubresourceAction(resource schema.GroupVersionResource, subresource, namespace, name string) DeleteActionImpl { + action := DeleteActionImpl{} + action.Verb = "delete" + action.Resource = resource + action.Subresource = subresource + action.Namespace = namespace + action.Name = name + + return action +} + func NewRootDeleteCollectionAction(resource schema.GroupVersionResource, opts interface{}) DeleteCollectionActionImpl { action := DeleteCollectionActionImpl{} action.Verb = "delete-collection" @@ -324,6 +357,10 @@ type Action interface { GetResource() schema.GroupVersionResource GetSubresource() string Matches(verb, resource string) bool + + // DeepCopy is used to copy an action to avoid any risk of accidental mutation. Most people never need to call this + // because the invocation logic deep copies before calls to storage and reactors. + DeepCopy() Action } type GenericAction interface { @@ -364,6 +401,7 @@ type DeleteCollectionAction interface { type PatchAction interface { Action GetName() string + GetPatchType() types.PatchType GetPatch() []byte } @@ -404,6 +442,10 @@ func (a ActionImpl) Matches(verb, resource string) bool { return strings.ToLower(verb) == strings.ToLower(a.Verb) && strings.ToLower(resource) == strings.ToLower(a.Resource.Resource) } +func (a ActionImpl) DeepCopy() Action { + ret := a + return ret +} type GenericActionImpl struct { ActionImpl @@ -414,6 +456,14 @@ func (a GenericActionImpl) GetValue() interface{} { return a.Value } +func (a GenericActionImpl) DeepCopy() Action { + return GenericActionImpl{ + ActionImpl: a.ActionImpl.DeepCopy().(ActionImpl), + // TODO this is wrong, but no worse than before + Value: a.Value, + } +} + type GetActionImpl struct { ActionImpl Name string @@ -423,6 +473,13 @@ func (a GetActionImpl) GetName() string { return a.Name } +func (a GetActionImpl) DeepCopy() Action { + return GetActionImpl{ + ActionImpl: a.ActionImpl.DeepCopy().(ActionImpl), + Name: a.Name, + } +} + type ListActionImpl struct { ActionImpl Kind schema.GroupVersionKind @@ -438,6 +495,18 @@ func (a ListActionImpl) GetListRestrictions() ListRestrictions { return a.ListRestrictions } +func (a ListActionImpl) DeepCopy() Action { + return ListActionImpl{ + ActionImpl: a.ActionImpl.DeepCopy().(ActionImpl), + Kind: a.Kind, + Name: a.Name, + ListRestrictions: ListRestrictions{ + Labels: a.ListRestrictions.Labels.DeepCopySelector(), + Fields: a.ListRestrictions.Fields.DeepCopySelector(), + }, + } +} + type CreateActionImpl struct { ActionImpl Name string @@ -448,6 +517,14 @@ func (a CreateActionImpl) GetObject() runtime.Object { return a.Object } +func (a CreateActionImpl) DeepCopy() Action { + return CreateActionImpl{ + ActionImpl: a.ActionImpl.DeepCopy().(ActionImpl), + Name: a.Name, + Object: a.Object.DeepCopyObject(), + } +} + type UpdateActionImpl struct { ActionImpl Object runtime.Object @@ -457,10 +534,18 @@ func (a UpdateActionImpl) GetObject() runtime.Object { return a.Object } +func (a UpdateActionImpl) DeepCopy() Action { + return UpdateActionImpl{ + ActionImpl: a.ActionImpl.DeepCopy().(ActionImpl), + Object: a.Object.DeepCopyObject(), + } +} + type PatchActionImpl struct { ActionImpl - Name string - Patch []byte + Name string + PatchType types.PatchType + Patch []byte } func (a PatchActionImpl) GetName() string { @@ -471,6 +556,21 @@ func (a PatchActionImpl) GetPatch() []byte { return a.Patch } +func (a PatchActionImpl) GetPatchType() types.PatchType { + return a.PatchType +} + +func (a PatchActionImpl) DeepCopy() Action { + patch := make([]byte, len(a.Patch)) + copy(patch, a.Patch) + return PatchActionImpl{ + ActionImpl: a.ActionImpl.DeepCopy().(ActionImpl), + Name: a.Name, + PatchType: a.PatchType, + Patch: patch, + } +} + type DeleteActionImpl struct { ActionImpl Name string @@ -480,6 +580,13 @@ func (a DeleteActionImpl) GetName() string { return a.Name } +func (a DeleteActionImpl) DeepCopy() Action { + return DeleteActionImpl{ + ActionImpl: a.ActionImpl.DeepCopy().(ActionImpl), + Name: a.Name, + } +} + type DeleteCollectionActionImpl struct { ActionImpl ListRestrictions ListRestrictions @@ -489,6 +596,16 @@ func (a DeleteCollectionActionImpl) GetListRestrictions() ListRestrictions { return a.ListRestrictions } +func (a DeleteCollectionActionImpl) DeepCopy() Action { + return DeleteCollectionActionImpl{ + ActionImpl: a.ActionImpl.DeepCopy().(ActionImpl), + ListRestrictions: ListRestrictions{ + Labels: a.ListRestrictions.Labels.DeepCopySelector(), + Fields: a.ListRestrictions.Fields.DeepCopySelector(), + }, + } +} + type WatchActionImpl struct { ActionImpl WatchRestrictions WatchRestrictions @@ -498,6 +615,17 @@ func (a WatchActionImpl) GetWatchRestrictions() WatchRestrictions { return a.WatchRestrictions } +func (a WatchActionImpl) DeepCopy() Action { + return WatchActionImpl{ + ActionImpl: a.ActionImpl.DeepCopy().(ActionImpl), + WatchRestrictions: WatchRestrictions{ + Labels: a.WatchRestrictions.Labels.DeepCopySelector(), + Fields: a.WatchRestrictions.Fields.DeepCopySelector(), + ResourceVersion: a.WatchRestrictions.ResourceVersion, + }, + } +} + type ProxyGetActionImpl struct { ActionImpl Scheme string @@ -526,3 +654,18 @@ func (a ProxyGetActionImpl) GetPath() string { func (a ProxyGetActionImpl) GetParams() map[string]string { return a.Params } + +func (a ProxyGetActionImpl) DeepCopy() Action { + params := map[string]string{} + for k, v := range a.Params { + params[k] = v + } + return ProxyGetActionImpl{ + ActionImpl: a.ActionImpl.DeepCopy().(ActionImpl), + Scheme: a.Scheme, + Name: a.Name, + Port: a.Port, + Path: a.Path, + Params: params, + } +} diff --git a/vendor/k8s.io/client-go/testing/fake.go b/vendor/k8s.io/client-go/testing/fake.go index da47b23b9..8b3f31eaf 100644 --- a/vendor/k8s.io/client-go/testing/fake.go +++ b/vendor/k8s.io/client-go/testing/fake.go @@ -22,10 +22,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/version" "k8s.io/apimachinery/pkg/watch" - kubeversion "k8s.io/client-go/pkg/version" restclient "k8s.io/client-go/rest" ) @@ -134,13 +131,13 @@ func (c *Fake) Invokes(action Action, defaultReturnObj runtime.Object) (runtime. c.Lock() defer c.Unlock() - c.actions = append(c.actions, action) + c.actions = append(c.actions, action.DeepCopy()) for _, reactor := range c.ReactionChain { if !reactor.Handles(action) { continue } - handled, ret, err := reactor.React(action) + handled, ret, err := reactor.React(action.DeepCopy()) if !handled { continue } @@ -157,13 +154,13 @@ func (c *Fake) InvokesWatch(action Action) (watch.Interface, error) { c.Lock() defer c.Unlock() - c.actions = append(c.actions, action) + c.actions = append(c.actions, action.DeepCopy()) for _, reactor := range c.WatchReactionChain { if !reactor.Handles(action) { continue } - handled, ret, err := reactor.React(action) + handled, ret, err := reactor.React(action.DeepCopy()) if !handled { continue } @@ -180,13 +177,13 @@ func (c *Fake) InvokesProxy(action Action) restclient.ResponseWrapper { c.Lock() defer c.Unlock() - c.actions = append(c.actions, action) + c.actions = append(c.actions, action.DeepCopy()) for _, reactor := range c.ProxyReactionChain { if !reactor.Handles(action) { continue } - handled, ret, err := reactor.React(action) + handled, ret, err := reactor.React(action.DeepCopy()) if !handled || err != nil { continue } @@ -214,46 +211,3 @@ func (c *Fake) Actions() []Action { copy(fa, c.actions) return fa } - -// TODO: this probably should be moved to somewhere else. -type FakeDiscovery struct { - *Fake -} - -func (c *FakeDiscovery) ServerResourcesForGroupVersion(groupVersion string) (*metav1.APIResourceList, error) { - action := ActionImpl{ - Verb: "get", - Resource: schema.GroupVersionResource{Resource: "resource"}, - } - c.Invokes(action, nil) - for _, rl := range c.Resources { - if rl.GroupVersion == groupVersion { - return rl, nil - } - } - - return nil, fmt.Errorf("GroupVersion %q not found", groupVersion) -} - -func (c *FakeDiscovery) ServerResources() ([]*metav1.APIResourceList, error) { - action := ActionImpl{ - Verb: "get", - Resource: schema.GroupVersionResource{Resource: "resource"}, - } - c.Invokes(action, nil) - return c.Resources, nil -} - -func (c *FakeDiscovery) ServerGroups() (*metav1.APIGroupList, error) { - return nil, nil -} - -func (c *FakeDiscovery) ServerVersion() (*version.Info, error) { - action := ActionImpl{} - action.Verb = "get" - action.Resource = schema.GroupVersionResource{Resource: "version"} - - c.Invokes(action, nil) - versionInfo := kubeversion.Get() - return &versionInfo, nil -} diff --git a/vendor/k8s.io/client-go/testing/fixture.go b/vendor/k8s.io/client-go/testing/fixture.go index ba8ee508f..90f16f560 100644 --- a/vendor/k8s.io/client-go/testing/fixture.go +++ b/vendor/k8s.io/client-go/testing/fixture.go @@ -20,20 +20,19 @@ import ( "fmt" "sync" + "github.com/evanphx/json-patch" "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/util/json" + "k8s.io/apimachinery/pkg/util/strategicpatch" "k8s.io/apimachinery/pkg/watch" restclient "k8s.io/client-go/rest" ) -// FakeWatchBufferSize is the max num of watch event can be buffered in the -// watch channel. Note that when watch event overflows or exceed this buffer -// size, manipulations via fake client may be blocked. -const FakeWatchBufferSize = 128 - // ObjectTracker keeps track of objects. It is intended to be used to // fake calls to a server by returning objects based on their kind, // namespace and name. @@ -77,7 +76,6 @@ func ObjectReaction(tracker ObjectTracker) ReactionFunc { return func(action Action) (bool, runtime.Object, error) { ns := action.GetNamespace() gvr := action.GetResource() - // Here and below we need to switch on implementation types, // not on interfaces, as some interfaces are identical // (e.g. UpdateAction and CreateAction), so if we use them, @@ -130,6 +128,49 @@ func ObjectReaction(tracker ObjectTracker) ReactionFunc { } return true, nil, nil + case PatchActionImpl: + obj, err := tracker.Get(gvr, ns, action.GetName()) + if err != nil { + // object is not registered + return false, nil, err + } + + old, err := json.Marshal(obj) + if err != nil { + return true, nil, err + } + // Only supports strategic merge patch and JSONPatch as coded. + switch action.GetPatchType() { + case types.JSONPatchType: + patch, err := jsonpatch.DecodePatch(action.GetPatch()) + if err != nil { + return true, nil, err + } + modified, err := patch.Apply(old) + if err != nil { + return true, nil, err + } + if err = json.Unmarshal(modified, obj); err != nil { + return true, nil, err + } + case types.StrategicMergePatchType: + mergedByte, err := strategicpatch.StrategicMergePatch(old, action.GetPatch(), obj) + if err != nil { + return true, nil, err + } + if err = json.Unmarshal(mergedByte, obj); err != nil { + return true, nil, err + } + default: + return true, nil, fmt.Errorf("PatchType is not supported") + } + + if err = tracker.Update(gvr, obj, ns); err != nil { + return true, nil, err + } + + return true, obj, nil + default: return false, nil, fmt.Errorf("no reaction implemented for %s", action) } @@ -142,12 +183,11 @@ type tracker struct { lock sync.RWMutex objects map[schema.GroupVersionResource][]runtime.Object // The value type of watchers is a map of which the key is either a namespace or - // all/non namespace aka "" and its value is list of fake watchers. Each of - // fake watcher holds a buffered channel of size "FakeWatchBufferSize" which - // is default to 128. Manipulations on resources will broadcast the notification - // events into the watchers' channel and note that too many unhandled event may - // potentially block the tracker. - watchers map[schema.GroupVersionResource]map[string][]*watch.FakeWatcher + // all/non namespace aka "" and its value is list of fake watchers. + // Manipulations on resources will broadcast the notification events into the + // watchers' channel. Note that too many unhandled events (currently 100, + // see apimachinery/pkg/watch.DefaultChanSize) will cause a panic. + watchers map[schema.GroupVersionResource]map[string][]*watch.RaceFreeFakeWatcher } var _ ObjectTracker = &tracker{} @@ -159,7 +199,7 @@ func NewObjectTracker(scheme ObjectScheme, decoder runtime.Decoder) ObjectTracke scheme: scheme, decoder: decoder, objects: make(map[schema.GroupVersionResource][]runtime.Object), - watchers: make(map[schema.GroupVersionResource]map[string][]*watch.FakeWatcher), + watchers: make(map[schema.GroupVersionResource]map[string][]*watch.RaceFreeFakeWatcher), } } @@ -206,10 +246,10 @@ func (t *tracker) Watch(gvr schema.GroupVersionResource, ns string) (watch.Inter t.lock.Lock() defer t.lock.Unlock() - fakewatcher := watch.NewFakeWithChanSize(FakeWatchBufferSize, true) + fakewatcher := watch.NewRaceFreeFake() if _, exists := t.watchers[gvr]; !exists { - t.watchers[gvr] = make(map[string][]*watch.FakeWatcher) + t.watchers[gvr] = make(map[string][]*watch.RaceFreeFakeWatcher) } t.watchers[gvr][ns] = append(t.watchers[gvr][ns], fakewatcher) return fakewatcher, nil @@ -293,8 +333,8 @@ func (t *tracker) Update(gvr schema.GroupVersionResource, obj runtime.Object, ns return t.add(gvr, obj, ns, true) } -func (t *tracker) getWatches(gvr schema.GroupVersionResource, ns string) []*watch.FakeWatcher { - watches := []*watch.FakeWatcher{} +func (t *tracker) getWatches(gvr schema.GroupVersionResource, ns string) []*watch.RaceFreeFakeWatcher { + watches := []*watch.RaceFreeFakeWatcher{} if t.watchers[gvr] != nil { if w := t.watchers[gvr][ns]; w != nil { watches = append(watches, w...) diff --git a/vendor/k8s.io/client-go/testing/fixture_test.go b/vendor/k8s.io/client-go/testing/fixture_test.go index 967e0aefa..405fe1a7e 100644 --- a/vendor/k8s.io/client-go/testing/fixture_test.go +++ b/vendor/k8s.io/client-go/testing/fixture_test.go @@ -63,6 +63,9 @@ func TestWatchCallNonNamespace(t *testing.T) { codecs := serializer.NewCodecFactory(scheme) o := NewObjectTracker(scheme, codecs.UniversalDecoder()) watch, err := o.Watch(testResource, ns) + if err != nil { + t.Fatalf("test resource watch failed in %s: %v ", ns, err) + } go func() { err := o.Create(testResource, testObj, ns) if err != nil { @@ -85,7 +88,13 @@ func TestWatchCallAllNamespace(t *testing.T) { codecs := serializer.NewCodecFactory(scheme) o := NewObjectTracker(scheme, codecs.UniversalDecoder()) w, err := o.Watch(testResource, "test_namespace") + if err != nil { + t.Fatalf("test resource watch failed in test_namespace: %v", err) + } wAll, err := o.Watch(testResource, "") + if err != nil { + t.Fatalf("test resource watch failed in all namespaces: %v", err) + } go func() { err := o.Create(testResource, testObj, ns) assert.NoError(t, err, "test resource creation failed") @@ -161,6 +170,9 @@ func TestWatchCallMultipleInvocation(t *testing.T) { for idx, watchNamespace := range watchNamespaces { i := idx w, err := o.Watch(testResource, watchNamespace) + if err != nil { + t.Fatalf("test resource watch failed in %s: %v", watchNamespace, err) + } go func() { assert.NoError(t, err, "watch invocation failed") for _, c := range cases { @@ -190,3 +202,34 @@ func TestWatchCallMultipleInvocation(t *testing.T) { } wg.Wait() } + +func TestWatchAddAfterStop(t *testing.T) { + testResource := schema.GroupVersionResource{Group: "", Version: "test_version", Resource: "test_kind"} + testObj := getArbitraryResource(testResource, "test_name", "test_namespace") + accessor, err := meta.Accessor(testObj) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + + ns := accessor.GetNamespace() + scheme := runtime.NewScheme() + codecs := serializer.NewCodecFactory(scheme) + o := NewObjectTracker(scheme, codecs.UniversalDecoder()) + watch, err := o.Watch(testResource, ns) + if err != nil { + t.Errorf("watch creation failed: %v", err) + } + + // When the watch is stopped it should ignore later events without panicking. + defer func() { + if r := recover(); r != nil { + t.Errorf("Watch panicked when it should have ignored create after stop: %v", r) + } + }() + + watch.Stop() + err = o.Create(testResource, testObj, ns) + if err != nil { + t.Errorf("test resource creation failed: %v", err) + } +} diff --git a/vendor/k8s.io/client-go/third_party/forked/golang/template/BUILD b/vendor/k8s.io/client-go/third_party/forked/golang/template/BUILD deleted file mode 100644 index cebdf7b63..000000000 --- a/vendor/k8s.io/client-go/third_party/forked/golang/template/BUILD +++ /dev/null @@ -1,28 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "exec.go", - "funcs.go", - ], - importpath = "k8s.io/client-go/third_party/forked/golang/template", -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/tools/auth/BUILD b/vendor/k8s.io/client-go/tools/auth/BUILD deleted file mode 100644 index 5c7718a77..000000000 --- a/vendor/k8s.io/client-go/tools/auth/BUILD +++ /dev/null @@ -1,33 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_library( - name = "go_default_library", - srcs = ["clientauth.go"], - importpath = "k8s.io/client-go/tools/auth", - deps = ["//vendor/k8s.io/client-go/rest:go_default_library"], -) - -go_test( - name = "go_default_xtest", - srcs = ["clientauth_test.go"], - deps = ["//vendor/k8s.io/client-go/tools/auth:go_default_library"], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/tools/auth/OWNERS b/vendor/k8s.io/client-go/tools/auth/OWNERS new file mode 100644 index 000000000..c607d2aa8 --- /dev/null +++ b/vendor/k8s.io/client-go/tools/auth/OWNERS @@ -0,0 +1,7 @@ +approvers: +- sig-auth-authenticators-approvers +reviewers: +- sig-auth-authenticators-reviewers +labels: +- sig/auth + diff --git a/vendor/k8s.io/client-go/tools/bootstrap/token/api/BUILD b/vendor/k8s.io/client-go/tools/bootstrap/token/api/BUILD deleted file mode 100644 index 7416adc01..000000000 --- a/vendor/k8s.io/client-go/tools/bootstrap/token/api/BUILD +++ /dev/null @@ -1,26 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "types.go", - ], - importpath = "k8s.io/client-go/tools/bootstrap/token/api", - visibility = ["//visibility:public"], - deps = ["//vendor/k8s.io/api/core/v1:go_default_library"], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/client-go/tools/bootstrap/token/api/OWNERS b/vendor/k8s.io/client-go/tools/bootstrap/token/api/OWNERS deleted file mode 100644 index 8a2f5b591..000000000 --- a/vendor/k8s.io/client-go/tools/bootstrap/token/api/OWNERS +++ /dev/null @@ -1,5 +0,0 @@ -approvers: -- jbeda -- luxas -reviewers: -- mattmoyer diff --git a/vendor/k8s.io/client-go/tools/bootstrap/token/api/types.go b/vendor/k8s.io/client-go/tools/bootstrap/token/api/types.go deleted file mode 100644 index c30814c0e..000000000 --- a/vendor/k8s.io/client-go/tools/bootstrap/token/api/types.go +++ /dev/null @@ -1,100 +0,0 @@ -/* -Copyright 2017 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package api - -import ( - "k8s.io/api/core/v1" -) - -const ( - // BootstrapTokenSecretPrefix is the prefix for bootstrap token names. - // Bootstrap tokens secrets must be named in the form - // `bootstrap-token-`. This is the prefix to be used before the - // token ID. - BootstrapTokenSecretPrefix = "bootstrap-token-" - - // SecretTypeBootstrapToken is used during the automated bootstrap process (first - // implemented by kubeadm). It stores tokens that are used to sign well known - // ConfigMaps. They may also eventually be used for authentication. - SecretTypeBootstrapToken v1.SecretType = "bootstrap.kubernetes.io/token" - - // BootstrapTokenIDKey is the id of this token. This can be transmitted in the - // clear and encoded in the name of the secret. It must be a random 6 character - // string that matches the regexp `^([a-z0-9]{6})$`. Required. - BootstrapTokenIDKey = "token-id" - - // BootstrapTokenSecretKey is the actual secret. It must be a random 16 character - // string that matches the regexp `^([a-z0-9]{16})$`. Required. - BootstrapTokenSecretKey = "token-secret" - - // BootstrapTokenExpirationKey is when this token should be expired and no - // longer used. A controller will delete this resource after this time. This - // is an absolute UTC time using RFC3339. If this cannot be parsed, the token - // should be considered invalid. Optional. - BootstrapTokenExpirationKey = "expiration" - - // BootstrapTokenDescriptionKey is a description in human-readable format that - // describes what the bootstrap token is used for. Optional. - BootstrapTokenDescriptionKey = "description" - - // BootstrapTokenExtraGroupsKey is a comma-separated list of group names. - // The bootstrap token will authenticate as these groups in addition to the - // "system:bootstrappers" group. - BootstrapTokenExtraGroupsKey = "auth-extra-groups" - - // BootstrapTokenUsagePrefix is the prefix for the other usage constants that specifies different - // functions of a bootstrap token - BootstrapTokenUsagePrefix = "usage-bootstrap-" - - // BootstrapTokenUsageSigningKey signals that this token should be used to - // sign configs as part of the bootstrap process. Value must be "true". Any - // other value is assumed to be false. Optional. - BootstrapTokenUsageSigningKey = "usage-bootstrap-signing" - - // BootstrapTokenUsageAuthentication signals that this token should be used - // as a bearer token to authenticate against the Kubernetes API. The bearer - // token takes the form "." and authenticates as the - // user "system:bootstrap:" in the "system:bootstrappers" group - // as well as any groups specified using BootstrapTokenExtraGroupsKey. - // Value must be "true". Any other value is assumed to be false. Optional. - BootstrapTokenUsageAuthentication = "usage-bootstrap-authentication" - - // ConfigMapClusterInfo defines the name for the ConfigMap where the information how to connect and trust the cluster exist - ConfigMapClusterInfo = "cluster-info" - - // KubeConfigKey defines at which key in the Data object of the ConfigMap the KubeConfig object is stored - KubeConfigKey = "kubeconfig" - - // JWSSignatureKeyPrefix defines what key prefix the JWS-signed tokens have - JWSSignatureKeyPrefix = "jws-kubeconfig-" - - // BootstrapUserPrefix is the username prefix bootstrapping bearer tokens - // authenticate as. The full username given is "system:bootstrap:". - BootstrapUserPrefix = "system:bootstrap:" - - // BootstrapGroupPattern is the valid regex pattern that all groups - // assigned to a bootstrap token by BootstrapTokenExtraGroupsKey must match. - // See also ValidateBootstrapGroupName(). - BootstrapGroupPattern = "system:bootstrappers:[a-z0-9:-]{0,255}[a-z0-9]" - - // BootstrapDefaultGroup is the default group for bootstrapping bearer - // tokens (in addition to any groups from BootstrapTokenExtraGroupsKey). - BootstrapDefaultGroup = "system:bootstrappers" -) - -// KnownTokenUsages specifies the known functions a token will get. -var KnownTokenUsages = []string{"signing", "authentication"} diff --git a/vendor/k8s.io/client-go/tools/bootstrap/token/util/BUILD b/vendor/k8s.io/client-go/tools/bootstrap/token/util/BUILD deleted file mode 100644 index 1d4d10e99..000000000 --- a/vendor/k8s.io/client-go/tools/bootstrap/token/util/BUILD +++ /dev/null @@ -1,32 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") - -go_library( - name = "go_default_library", - srcs = ["helpers.go"], - importpath = "k8s.io/client-go/tools/bootstrap/token/util", - visibility = ["//visibility:public"], - deps = [ - "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", - "//vendor/k8s.io/client-go/tools/bootstrap/token/api:go_default_library", - ], -) - -go_test( - name = "go_default_test", - srcs = ["helpers_test.go"], - embed = [":go_default_library"], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/client-go/tools/bootstrap/token/util/helpers.go b/vendor/k8s.io/client-go/tools/bootstrap/token/util/helpers.go deleted file mode 100644 index d28fd28f2..000000000 --- a/vendor/k8s.io/client-go/tools/bootstrap/token/util/helpers.go +++ /dev/null @@ -1,52 +0,0 @@ -/* -Copyright 2017 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package util - -import ( - "fmt" - "k8s.io/apimachinery/pkg/util/sets" - "k8s.io/client-go/tools/bootstrap/token/api" - "regexp" - "strings" -) - -var bootstrapGroupRegexp = regexp.MustCompile(`\A` + api.BootstrapGroupPattern + `\z`) - -// ValidateBootstrapGroupName checks if the provided group name is a valid -// bootstrap group name. Returns nil if valid or a validation error if invalid. -// TODO(mattmoyer): this validation should migrate out to client-go (see https://github.com/kubernetes/client-go/issues/114) -func ValidateBootstrapGroupName(name string) error { - if bootstrapGroupRegexp.Match([]byte(name)) { - return nil - } - return fmt.Errorf("bootstrap group %q is invalid (must match %s)", name, api.BootstrapGroupPattern) -} - -// ValidateUsages validates that the passed in string are valid usage strings for bootstrap tokens. -func ValidateUsages(usages []string) error { - validUsages := sets.NewString(api.KnownTokenUsages...) - invalidUsages := sets.NewString() - for _, usage := range usages { - if !validUsages.Has(usage) { - invalidUsages.Insert(usage) - } - } - if len(invalidUsages) > 0 { - return fmt.Errorf("invalide bootstrap token usage string: %s, valid usage options: %s", strings.Join(invalidUsages.List(), ","), strings.Join(api.KnownTokenUsages, ",")) - } - return nil -} diff --git a/vendor/k8s.io/client-go/tools/bootstrap/token/util/helpers_test.go b/vendor/k8s.io/client-go/tools/bootstrap/token/util/helpers_test.go deleted file mode 100644 index 915bf7540..000000000 --- a/vendor/k8s.io/client-go/tools/bootstrap/token/util/helpers_test.go +++ /dev/null @@ -1,76 +0,0 @@ -/* -Copyright 2017 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package util - -import ( - "strings" - "testing" -) - -func TestValidateBootstrapGroupName(t *testing.T) { - tests := []struct { - name string - input string - valid bool - }{ - {"valid", "system:bootstrappers:foo", true}, - {"valid nested", "system:bootstrappers:foo:bar:baz", true}, - {"valid with dashes and number", "system:bootstrappers:foo-bar-42", true}, - {"invalid uppercase", "system:bootstrappers:Foo", false}, - {"missing prefix", "foo", false}, - {"prefix with no body", "system:bootstrappers:", false}, - {"invalid spaces", "system:bootstrappers: ", false}, - {"invalid asterisk", "system:bootstrappers:*", false}, - {"trailing colon", "system:bootstrappers:foo:", false}, - {"trailing dash", "system:bootstrappers:foo-", false}, - {"script tags", "system:bootstrappers:", false}, - {"too long", "system:bootstrappers:" + strings.Repeat("x", 300), false}, - } - for _, test := range tests { - err := ValidateBootstrapGroupName(test.input) - if err != nil && test.valid { - t.Errorf("test %q: ValidateBootstrapGroupName(%q) returned unexpected error: %v", test.name, test.input, err) - } - if err == nil && !test.valid { - t.Errorf("test %q: ValidateBootstrapGroupName(%q) was supposed to return an error but didn't", test.name, test.input) - } - } -} - -func TestValidateUsages(t *testing.T) { - tests := []struct { - name string - input []string - valid bool - }{ - {"valid of signing", []string{"signing"}, true}, - {"valid of authentication", []string{"authentication"}, true}, - {"all valid", []string{"authentication", "signing"}, true}, - {"single invalid", []string{"authentication", "foo"}, false}, - {"all invalid", []string{"foo", "bar"}, false}, - } - - for _, test := range tests { - err := ValidateUsages(test.input) - if err != nil && test.valid { - t.Errorf("test %q: ValidateUsages(%v) returned unexpected error: %v", test.name, test.input, err) - } - if err == nil && !test.valid { - t.Errorf("test %q: ValidateUsages(%v) was supposed to return an error but didn't", test.name, test.input) - } - } -} diff --git a/vendor/k8s.io/client-go/tools/cache/BUILD b/vendor/k8s.io/client-go/tools/cache/BUILD deleted file mode 100644 index 524354e87..000000000 --- a/vendor/k8s.io/client-go/tools/cache/BUILD +++ /dev/null @@ -1,103 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_test( - name = "go_default_test", - srcs = [ - "controller_test.go", - "delta_fifo_test.go", - "expiration_cache_test.go", - "fifo_test.go", - "heap_test.go", - "index_test.go", - "mutation_detector_test.go", - "processor_listener_test.go", - "reflector_test.go", - "shared_informer_test.go", - "store_test.go", - "undelta_store_test.go", - ], - embed = [":go_default_library"], - race = "off", - deps = [ - "//vendor/github.com/google/gofuzz:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/clock:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/tools/cache/testing:go_default_library", - ], -) - -go_library( - name = "go_default_library", - srcs = [ - "controller.go", - "delta_fifo.go", - "doc.go", - "expiration_cache.go", - "expiration_cache_fakes.go", - "fake_custom_store.go", - "fifo.go", - "heap.go", - "index.go", - "listers.go", - "listwatch.go", - "mutation_cache.go", - "mutation_detector.go", - "reflector.go", - "reflector_metrics.go", - "shared_informer.go", - "store.go", - "thread_safe_store.go", - "undelta_store.go", - ], - importpath = "k8s.io/client-go/tools/cache", - deps = [ - "//vendor/github.com/golang/glog:go_default_library", - "//vendor/golang.org/x/net/context:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/cache:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/clock:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/diff:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/tools/pager:go_default_library", - "//vendor/k8s.io/client-go/util/buffer:go_default_library", - "//vendor/k8s.io/client-go/util/retry:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/tools/cache/testing:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/tools/cache/delta_fifo.go b/vendor/k8s.io/client-go/tools/cache/delta_fifo.go index 45c3b500d..f818a293a 100644 --- a/vendor/k8s.io/client-go/tools/cache/delta_fifo.go +++ b/vendor/k8s.io/client-go/tools/cache/delta_fifo.go @@ -23,7 +23,7 @@ import ( "k8s.io/apimachinery/pkg/util/sets" - "github.com/golang/glog" + "k8s.io/klog" ) // NewDeltaFIFO returns a Store which can be used process changes to items. @@ -320,17 +320,15 @@ func (f *DeltaFIFO) queueActionLocked(actionType DeltaType, obj interface{}) err newDeltas := append(f.items[id], Delta{actionType, obj}) newDeltas = dedupDeltas(newDeltas) - _, exists := f.items[id] if len(newDeltas) > 0 { - if !exists { + if _, exists := f.items[id]; !exists { f.queue = append(f.queue, id) } f.items[id] = newDeltas f.cond.Broadcast() - } else if exists { - // We need to remove this from our map (extra items - // in the queue are ignored if they are not in the - // map). + } else { + // We need to remove this from our map (extra items in the queue are + // ignored if they are not in the map). delete(f.items, id) } return nil @@ -348,9 +346,6 @@ func (f *DeltaFIFO) List() []interface{} { func (f *DeltaFIFO) listLocked() []interface{} { list := make([]interface{}, 0, len(f.items)) for _, item := range f.items { - // Copy item's slice so operations on this slice - // won't interfere with the object we return. - item = copyDeltas(item) list = append(list, item.Newest().Object) } return list @@ -398,10 +393,7 @@ func (f *DeltaFIFO) GetByKey(key string) (item interface{}, exists bool, err err func (f *DeltaFIFO) IsClosed() bool { f.closedLock.Lock() defer f.closedLock.Unlock() - if f.closed { - return true - } - return false + return f.closed } // Pop blocks until an item is added to the queue, and then returns it. If @@ -432,10 +424,10 @@ func (f *DeltaFIFO) Pop(process PopProcessFunc) (interface{}, error) { } id := f.queue[0] f.queue = f.queue[1:] - item, ok := f.items[id] if f.initialPopulationCount > 0 { f.initialPopulationCount-- } + item, ok := f.items[id] if !ok { // Item may have been deleted subsequently. continue @@ -506,10 +498,10 @@ func (f *DeltaFIFO) Replace(list []interface{}, resourceVersion string) error { deletedObj, exists, err := f.knownObjects.GetByKey(k) if err != nil { deletedObj = nil - glog.Errorf("Unexpected error %v during lookup of key %v, placing DeleteFinalStateUnknown marker without object", err, k) + klog.Errorf("Unexpected error %v during lookup of key %v, placing DeleteFinalStateUnknown marker without object", err, k) } else if !exists { deletedObj = nil - glog.Infof("Key %v does not exist in known objects store, placing DeleteFinalStateUnknown marker without object", k) + klog.Infof("Key %v does not exist in known objects store, placing DeleteFinalStateUnknown marker without object", k) } queuedDeletions++ if err := f.queueActionLocked(Deleted, DeletedFinalStateUnknown{k, deletedObj}); err != nil { @@ -553,10 +545,10 @@ func (f *DeltaFIFO) syncKey(key string) error { func (f *DeltaFIFO) syncKeyLocked(key string) error { obj, exists, err := f.knownObjects.GetByKey(key) if err != nil { - glog.Errorf("Unexpected error %v during lookup of key %v, unable to queue object for sync", err, key) + klog.Errorf("Unexpected error %v during lookup of key %v, unable to queue object for sync", err, key) return nil } else if !exists { - glog.Infof("Key %v does not exist in known objects store, unable to queue object for sync", key) + klog.Infof("Key %v does not exist in known objects store, unable to queue object for sync", key) return nil } diff --git a/vendor/k8s.io/client-go/tools/cache/expiration_cache.go b/vendor/k8s.io/client-go/tools/cache/expiration_cache.go index fa88fc407..b38fe70b9 100644 --- a/vendor/k8s.io/client-go/tools/cache/expiration_cache.go +++ b/vendor/k8s.io/client-go/tools/cache/expiration_cache.go @@ -20,8 +20,8 @@ import ( "sync" "time" - "github.com/golang/glog" "k8s.io/apimachinery/pkg/util/clock" + "k8s.io/klog" ) // ExpirationCache implements the store interface @@ -95,7 +95,7 @@ func (c *ExpirationCache) getOrExpire(key string) (interface{}, bool) { return nil, false } if c.expirationPolicy.IsExpired(timestampedItem) { - glog.V(4).Infof("Entry %v: %+v has expired", key, timestampedItem.obj) + klog.V(4).Infof("Entry %v: %+v has expired", key, timestampedItem.obj) c.cacheStorage.Delete(key) return nil, false } @@ -179,7 +179,7 @@ func (c *ExpirationCache) Delete(obj interface{}) error { func (c *ExpirationCache) Replace(list []interface{}, resourceVersion string) error { c.expirationLock.Lock() defer c.expirationLock.Unlock() - items := map[string]interface{}{} + items := make(map[string]interface{}, len(list)) ts := c.clock.Now() for _, item := range list { key, err := c.keyFunc(item) diff --git a/vendor/k8s.io/client-go/tools/cache/fifo.go b/vendor/k8s.io/client-go/tools/cache/fifo.go index e05c01ee2..508c5530c 100644 --- a/vendor/k8s.io/client-go/tools/cache/fifo.go +++ b/vendor/k8s.io/client-go/tools/cache/fifo.go @@ -297,7 +297,7 @@ func (f *FIFO) Pop(process PopProcessFunc) (interface{}, error) { // after calling this function. f's queue is reset, too; upon return, it // will contain the items in the map, in no particular order. func (f *FIFO) Replace(list []interface{}, resourceVersion string) error { - items := map[string]interface{}{} + items := make(map[string]interface{}, len(list)) for _, item := range list { key, err := f.keyFunc(item) if err != nil { diff --git a/vendor/k8s.io/client-go/tools/cache/heap.go b/vendor/k8s.io/client-go/tools/cache/heap.go index 78e492455..7357ff97a 100644 --- a/vendor/k8s.io/client-go/tools/cache/heap.go +++ b/vendor/k8s.io/client-go/tools/cache/heap.go @@ -204,7 +204,7 @@ func (h *Heap) AddIfNotPresent(obj interface{}) error { return nil } -// addIfNotPresentLocked assumes the lock is already held and adds the the provided +// addIfNotPresentLocked assumes the lock is already held and adds the provided // item to the queue if it does not already exist. func (h *Heap) addIfNotPresentLocked(key string, obj interface{}) { if _, exists := h.data.items[key]; exists { diff --git a/vendor/k8s.io/client-go/tools/cache/index_test.go b/vendor/k8s.io/client-go/tools/cache/index_test.go index ecc104c0c..75309735a 100644 --- a/vendor/k8s.io/client-go/tools/cache/index_test.go +++ b/vendor/k8s.io/client-go/tools/cache/index_test.go @@ -17,6 +17,7 @@ limitations under the License. package cache import ( + "k8s.io/apimachinery/pkg/util/sets" "strings" "testing" @@ -70,60 +71,31 @@ func TestMultiIndexKeys(t *testing.T) { index.Add(pod2) index.Add(pod3) - erniePods, err := index.ByIndex("byUser", "ernie") - if err != nil { - t.Errorf("unexpected error: %v", err) - } - if len(erniePods) != 2 { - t.Errorf("Expected 2 pods but got %v", len(erniePods)) - } - for _, erniePod := range erniePods { - if erniePod.(*v1.Pod).Name != "one" && erniePod.(*v1.Pod).Name != "tre" { - t.Errorf("Expected only 'one' or 'tre' but got %s", erniePod.(*v1.Pod).Name) - } - } - - bertPods, err := index.ByIndex("byUser", "bert") - if err != nil { - t.Errorf("unexpected error: %v", err) - } - if len(bertPods) != 2 { - t.Errorf("Expected 2 pods but got %v", len(bertPods)) - } - for _, bertPod := range bertPods { - if bertPod.(*v1.Pod).Name != "one" && bertPod.(*v1.Pod).Name != "two" { - t.Errorf("Expected only 'one' or 'two' but got %s", bertPod.(*v1.Pod).Name) - } - } - - oscarPods, err := index.ByIndex("byUser", "oscar") - if err != nil { - t.Errorf("unexpected error: %v", err) - } - if len(oscarPods) != 1 { - t.Errorf("Expected 1 pods but got %v", len(erniePods)) - } - for _, oscarPod := range oscarPods { - if oscarPod.(*v1.Pod).Name != "two" { - t.Errorf("Expected only 'two' but got %s", oscarPod.(*v1.Pod).Name) - } - } - - ernieAndBertKeys, err := index.Index("byUser", pod1) - if err != nil { - t.Errorf("unexpected error: %v", err) - } - if len(ernieAndBertKeys) != 3 { - t.Errorf("Expected 3 pods but got %v", len(ernieAndBertKeys)) - } - for _, ernieAndBertKey := range ernieAndBertKeys { - if ernieAndBertKey.(*v1.Pod).Name != "one" && ernieAndBertKey.(*v1.Pod).Name != "two" && ernieAndBertKey.(*v1.Pod).Name != "tre" { - t.Errorf("Expected only 'one', 'two' or 'tre' but got %s", ernieAndBertKey.(*v1.Pod).Name) + expected := map[string]sets.String{} + expected["ernie"] = sets.NewString("one", "tre") + expected["bert"] = sets.NewString("one", "two") + expected["elmo"] = sets.NewString("tre") + expected["oscar"] = sets.NewString("two") + expected["elmo"] = sets.NewString() // let's just make sure we don't get anything back in this case + { + for k, v := range expected { + found := sets.String{} + indexResults, err := index.ByIndex("byUser", k) + if err != nil { + t.Errorf("Unexpected error %v", err) + } + for _, item := range indexResults { + found.Insert(item.(*v1.Pod).Name) + } + items := v.List() + if !found.HasAll(items...) { + t.Errorf("missing items, index %s, expected %v but found %v", k, items, found.List()) + } } } index.Delete(pod3) - erniePods, err = index.ByIndex("byUser", "ernie") + erniePods, err := index.ByIndex("byUser", "ernie") if err != nil { t.Errorf("unexpected error: %v", err) } @@ -147,7 +119,7 @@ func TestMultiIndexKeys(t *testing.T) { copyOfPod2 := pod2.DeepCopy() copyOfPod2.Annotations["users"] = "oscar" index.Update(copyOfPod2) - bertPods, err = index.ByIndex("byUser", "bert") + bertPods, err := index.ByIndex("byUser", "bert") if err != nil { t.Errorf("unexpected error: %v", err) } @@ -159,5 +131,4 @@ func TestMultiIndexKeys(t *testing.T) { t.Errorf("Expected only 'one' but got %s", bertPod.(*v1.Pod).Name) } } - } diff --git a/vendor/k8s.io/client-go/tools/cache/listers.go b/vendor/k8s.io/client-go/tools/cache/listers.go index 27d51a6b3..ce377329c 100644 --- a/vendor/k8s.io/client-go/tools/cache/listers.go +++ b/vendor/k8s.io/client-go/tools/cache/listers.go @@ -17,7 +17,7 @@ limitations under the License. package cache import ( - "github.com/golang/glog" + "k8s.io/klog" "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/api/meta" @@ -60,7 +60,7 @@ func ListAllByNamespace(indexer Indexer, namespace string, selector labels.Selec items, err := indexer.Index(NamespaceIndex, &metav1.ObjectMeta{Namespace: namespace}) if err != nil { // Ignore error; do slow search without index. - glog.Warningf("can not retrieve list of objects using index : %v", err) + klog.Warningf("can not retrieve list of objects using index : %v", err) for _, m := range indexer.List() { metadata, err := meta.Accessor(m) if err != nil { diff --git a/vendor/k8s.io/client-go/tools/cache/listwatch.go b/vendor/k8s.io/client-go/tools/cache/listwatch.go index 06657a3b0..f86791650 100644 --- a/vendor/k8s.io/client-go/tools/cache/listwatch.go +++ b/vendor/k8s.io/client-go/tools/cache/listwatch.go @@ -17,15 +17,11 @@ limitations under the License. package cache import ( - "time" + "context" - "golang.org/x/net/context" - - "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/fields" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/util/wait" "k8s.io/apimachinery/pkg/watch" restclient "k8s.io/client-go/rest" "k8s.io/client-go/tools/pager" @@ -94,13 +90,6 @@ func NewFilteredListWatchFromClient(c Getter, resource string, namespace string, return &ListWatch{ListFunc: listFunc, WatchFunc: watchFunc} } -func timeoutFromListOptions(options metav1.ListOptions) time.Duration { - if options.TimeoutSeconds != nil { - return time.Duration(*options.TimeoutSeconds) * time.Second - } - return 0 -} - // List a set of apiserver resources func (lw *ListWatch) List(options metav1.ListOptions) (runtime.Object, error) { if !lw.DisableChunking { @@ -113,76 +102,3 @@ func (lw *ListWatch) List(options metav1.ListOptions) (runtime.Object, error) { func (lw *ListWatch) Watch(options metav1.ListOptions) (watch.Interface, error) { return lw.WatchFunc(options) } - -// ListWatchUntil checks the provided conditions against the items returned by the list watcher, returning wait.ErrWaitTimeout -// if timeout is exceeded without all conditions returning true, or an error if an error occurs. -// TODO: check for watch expired error and retry watch from latest point? Same issue exists for Until. -func ListWatchUntil(timeout time.Duration, lw ListerWatcher, conditions ...watch.ConditionFunc) (*watch.Event, error) { - if len(conditions) == 0 { - return nil, nil - } - - list, err := lw.List(metav1.ListOptions{}) - if err != nil { - return nil, err - } - initialItems, err := meta.ExtractList(list) - if err != nil { - return nil, err - } - - // use the initial items as simulated "adds" - var lastEvent *watch.Event - currIndex := 0 - passedConditions := 0 - for _, condition := range conditions { - // check the next condition against the previous event and short circuit waiting for the next watch - if lastEvent != nil { - done, err := condition(*lastEvent) - if err != nil { - return lastEvent, err - } - if done { - passedConditions = passedConditions + 1 - continue - } - } - - ConditionSucceeded: - for currIndex < len(initialItems) { - lastEvent = &watch.Event{Type: watch.Added, Object: initialItems[currIndex]} - currIndex++ - - done, err := condition(*lastEvent) - if err != nil { - return lastEvent, err - } - if done { - passedConditions = passedConditions + 1 - break ConditionSucceeded - } - } - } - if passedConditions == len(conditions) { - return lastEvent, nil - } - remainingConditions := conditions[passedConditions:] - - metaObj, err := meta.ListAccessor(list) - if err != nil { - return nil, err - } - currResourceVersion := metaObj.GetResourceVersion() - - watchInterface, err := lw.Watch(metav1.ListOptions{ResourceVersion: currResourceVersion}) - if err != nil { - return nil, err - } - - evt, err := watch.Until(timeout, watchInterface, remainingConditions...) - if err == watch.ErrWatchClosed { - // present a consistent error interface to callers - err = wait.ErrWaitTimeout - } - return evt, err -} diff --git a/vendor/k8s.io/client-go/tools/cache/mutation_cache.go b/vendor/k8s.io/client-go/tools/cache/mutation_cache.go index cbb6434eb..4c6686e91 100644 --- a/vendor/k8s.io/client-go/tools/cache/mutation_cache.go +++ b/vendor/k8s.io/client-go/tools/cache/mutation_cache.go @@ -22,7 +22,7 @@ import ( "sync" "time" - "github.com/golang/glog" + "k8s.io/klog" "k8s.io/apimachinery/pkg/api/meta" "k8s.io/apimachinery/pkg/runtime" @@ -156,7 +156,7 @@ func (c *mutationCache) ByIndex(name string, indexKey string) ([]interface{}, er } elements, err := fn(updated) if err != nil { - glog.V(4).Infof("Unable to calculate an index entry for mutation cache entry %s: %v", key, err) + klog.V(4).Infof("Unable to calculate an index entry for mutation cache entry %s: %v", key, err) continue } for _, inIndex := range elements { diff --git a/vendor/k8s.io/client-go/tools/cache/mutation_detector.go b/vendor/k8s.io/client-go/tools/cache/mutation_detector.go index 8e6338a1b..adb5b8be8 100644 --- a/vendor/k8s.io/client-go/tools/cache/mutation_detector.go +++ b/vendor/k8s.io/client-go/tools/cache/mutation_detector.go @@ -24,6 +24,8 @@ import ( "sync" "time" + "k8s.io/klog" + "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/diff" ) @@ -43,6 +45,7 @@ func NewCacheMutationDetector(name string) CacheMutationDetector { if !mutationDetectionEnabled { return dummyMutationDetector{} } + klog.Warningln("Mutation detector is enabled, this will result in memory leakage.") return &defaultCacheMutationDetector{name: name, period: 1 * time.Second} } diff --git a/vendor/k8s.io/client-go/tools/cache/reflector.go b/vendor/k8s.io/client-go/tools/cache/reflector.go index 054a7373c..12e2a3342 100644 --- a/vendor/k8s.io/client-go/tools/cache/reflector.go +++ b/vendor/k8s.io/client-go/tools/cache/reflector.go @@ -24,9 +24,6 @@ import ( "net" "net/url" "reflect" - "regexp" - goruntime "runtime" - "runtime/debug" "strconv" "strings" "sync" @@ -34,15 +31,16 @@ import ( "syscall" "time" - "github.com/golang/glog" apierrs "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/clock" + "k8s.io/apimachinery/pkg/util/naming" utilruntime "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/apimachinery/pkg/util/wait" "k8s.io/apimachinery/pkg/watch" + "k8s.io/klog" ) // Reflector watches a specified resource and causes all changes to be reflected in the given store. @@ -76,8 +74,6 @@ type Reflector struct { var ( // We try to spread the load on apiserver by setting timeouts for // watch requests - it is random in [minWatchTimeout, 2*minWatchTimeout]. - // However, it can be modified to avoid periodic resync to break the - // TCP connection. minWatchTimeout = 5 * time.Minute ) @@ -96,7 +92,7 @@ func NewNamespaceKeyedIndexerAndReflector(lw ListerWatcher, expectedType interfa // resyncPeriod, so that you can use reflectors to periodically process everything as // well as incrementally processing the things that change. func NewReflector(lw ListerWatcher, expectedType interface{}, store Store, resyncPeriod time.Duration) *Reflector { - return NewNamedReflector(getDefaultReflectorName(internalPackages...), lw, expectedType, store, resyncPeriod) + return NewNamedReflector(naming.GetNameFromCallsite(internalPackages...), lw, expectedType, store, resyncPeriod) } // reflectorDisambiguator is used to disambiguate started reflectors. @@ -127,79 +123,12 @@ func makeValidPrometheusMetricLabel(in string) string { // internalPackages are packages that ignored when creating a default reflector name. These packages are in the common // call chains to NewReflector, so they'd be low entropy names for reflectors -var internalPackages = []string{"client-go/tools/cache/", "/runtime/asm_"} - -// getDefaultReflectorName walks back through the call stack until we find a caller from outside of the ignoredPackages -// it returns back a shortpath/filename:line to aid in identification of this reflector when it starts logging -func getDefaultReflectorName(ignoredPackages ...string) string { - name := "????" - const maxStack = 10 - for i := 1; i < maxStack; i++ { - _, file, line, ok := goruntime.Caller(i) - if !ok { - file, line, ok = extractStackCreator() - if !ok { - break - } - i += maxStack - } - if hasPackage(file, ignoredPackages) { - continue - } - - file = trimPackagePrefix(file) - name = fmt.Sprintf("%s:%d", file, line) - break - } - return name -} - -// hasPackage returns true if the file is in one of the ignored packages. -func hasPackage(file string, ignoredPackages []string) bool { - for _, ignoredPackage := range ignoredPackages { - if strings.Contains(file, ignoredPackage) { - return true - } - } - return false -} - -// trimPackagePrefix reduces duplicate values off the front of a package name. -func trimPackagePrefix(file string) string { - if l := strings.LastIndex(file, "k8s.io/client-go/pkg/"); l >= 0 { - return file[l+len("k8s.io/client-go/"):] - } - if l := strings.LastIndex(file, "/src/"); l >= 0 { - return file[l+5:] - } - if l := strings.LastIndex(file, "/pkg/"); l >= 0 { - return file[l+1:] - } - return file -} - -var stackCreator = regexp.MustCompile(`(?m)^created by (.*)\n\s+(.*):(\d+) \+0x[[:xdigit:]]+$`) - -// extractStackCreator retrieves the goroutine file and line that launched this stack. Returns false -// if the creator cannot be located. -// TODO: Go does not expose this via runtime https://github.com/golang/go/issues/11440 -func extractStackCreator() (string, int, bool) { - stack := debug.Stack() - matches := stackCreator.FindStringSubmatch(string(stack)) - if matches == nil || len(matches) != 4 { - return "", 0, false - } - line, err := strconv.Atoi(matches[3]) - if err != nil { - return "", 0, false - } - return matches[2], line, true -} +var internalPackages = []string{"client-go/tools/cache/"} // Run starts a watch and handles watch events. Will restart the watch if it is closed. // Run will exit when stopCh is closed. func (r *Reflector) Run(stopCh <-chan struct{}) { - glog.V(3).Infof("Starting reflector %v (%s) from %s", r.expectedType, r.resyncPeriod, r.name) + klog.V(3).Infof("Starting reflector %v (%s) from %s", r.expectedType, r.resyncPeriod, r.name) wait.Until(func() { if err := r.ListAndWatch(stopCh); err != nil { utilruntime.HandleError(err) @@ -237,7 +166,7 @@ func (r *Reflector) resyncChan() (<-chan time.Time, func() bool) { // and then use the resource version to watch. // It returns error if ListAndWatch didn't even try to initialize watch. func (r *Reflector) ListAndWatch(stopCh <-chan struct{}) error { - glog.V(3).Infof("Listing and watching %v from %s", r.expectedType, r.name) + klog.V(3).Infof("Listing and watching %v from %s", r.expectedType, r.name) var resourceVersion string // Explicitly set "0" as resource version - it's fine for the List() @@ -283,7 +212,7 @@ func (r *Reflector) ListAndWatch(stopCh <-chan struct{}) error { return } if r.ShouldResync == nil || r.ShouldResync() { - glog.V(4).Infof("%s: forcing resync", r.name) + klog.V(4).Infof("%s: forcing resync", r.name) if err := r.store.Resync(); err != nil { resyncerrc <- err return @@ -317,7 +246,7 @@ func (r *Reflector) ListAndWatch(stopCh <-chan struct{}) error { case io.EOF: // watch closed normally case io.ErrUnexpectedEOF: - glog.V(1).Infof("%s: Watch for %v closed with unexpected EOF: %v", r.name, r.expectedType, err) + klog.V(1).Infof("%s: Watch for %v closed with unexpected EOF: %v", r.name, r.expectedType, err) default: utilruntime.HandleError(fmt.Errorf("%s: Failed to watch %v: %v", r.name, r.expectedType, err)) } @@ -338,7 +267,7 @@ func (r *Reflector) ListAndWatch(stopCh <-chan struct{}) error { if err := r.watchHandler(w, &resourceVersion, resyncerrc, stopCh); err != nil { if err != errorStopRequested { - glog.Warningf("%s: watch of %v ended with: %v", r.name, r.expectedType, err) + klog.Warningf("%s: watch of %v ended with: %v", r.name, r.expectedType, err) } return nil } @@ -425,7 +354,7 @@ loop: r.metrics.numberOfShortWatches.Inc() return fmt.Errorf("very short watch: %s: Unexpected watch close - watch lasted less than a second and no items received", r.name) } - glog.V(4).Infof("%s: Watch close - %v total %v items received", r.name, r.expectedType, eventCount) + klog.V(4).Infof("%s: Watch close - %v total %v items received", r.name, r.expectedType, eventCount) return nil } diff --git a/vendor/k8s.io/client-go/tools/cache/shared_informer.go b/vendor/k8s.io/client-go/tools/cache/shared_informer.go index 5f8c507f9..e91fc9e95 100644 --- a/vendor/k8s.io/client-go/tools/cache/shared_informer.go +++ b/vendor/k8s.io/client-go/tools/cache/shared_informer.go @@ -28,7 +28,7 @@ import ( "k8s.io/client-go/util/buffer" "k8s.io/client-go/util/retry" - "github.com/golang/glog" + "k8s.io/klog" ) // SharedInformer has a shared data cache and is capable of distributing notifications for changes @@ -86,7 +86,7 @@ func NewSharedIndexInformer(lw ListerWatcher, objType runtime.Object, defaultEve resyncCheckPeriod: defaultEventHandlerResyncPeriod, defaultEventHandlerResyncPeriod: defaultEventHandlerResyncPeriod, cacheMutationDetector: NewCacheMutationDetector(fmt.Sprintf("%T", objType)), - clock: realClock, + clock: realClock, } return sharedIndexInformer } @@ -116,11 +116,11 @@ func WaitForCacheSync(stopCh <-chan struct{}, cacheSyncs ...InformerSynced) bool }, stopCh) if err != nil { - glog.V(2).Infof("stop requested") + klog.V(2).Infof("stop requested") return false } - glog.V(4).Infof("caches populated") + klog.V(4).Infof("caches populated") return true } @@ -279,11 +279,11 @@ func determineResyncPeriod(desired, check time.Duration) time.Duration { return desired } if check == 0 { - glog.Warningf("The specified resyncPeriod %v is invalid because this shared informer doesn't support resyncing", desired) + klog.Warningf("The specified resyncPeriod %v is invalid because this shared informer doesn't support resyncing", desired) return 0 } if desired < check { - glog.Warningf("The specified resyncPeriod %v is being increased to the minimum resyncCheckPeriod %v", desired, check) + klog.Warningf("The specified resyncPeriod %v is being increased to the minimum resyncCheckPeriod %v", desired, check) return check } return desired @@ -296,19 +296,19 @@ func (s *sharedIndexInformer) AddEventHandlerWithResyncPeriod(handler ResourceEv defer s.startedLock.Unlock() if s.stopped { - glog.V(2).Infof("Handler %v was not added to shared informer because it has stopped already", handler) + klog.V(2).Infof("Handler %v was not added to shared informer because it has stopped already", handler) return } if resyncPeriod > 0 { if resyncPeriod < minimumResyncPeriod { - glog.Warningf("resyncPeriod %d is too small. Changing it to the minimum allowed value of %d", resyncPeriod, minimumResyncPeriod) + klog.Warningf("resyncPeriod %d is too small. Changing it to the minimum allowed value of %d", resyncPeriod, minimumResyncPeriod) resyncPeriod = minimumResyncPeriod } if resyncPeriod < s.resyncCheckPeriod { if s.started { - glog.Warningf("resyncPeriod %d is smaller than resyncCheckPeriod %d and the informer has already started. Changing it to %d", resyncPeriod, s.resyncCheckPeriod, s.resyncCheckPeriod) + klog.Warningf("resyncPeriod %d is smaller than resyncCheckPeriod %d and the informer has already started. Changing it to %d", resyncPeriod, s.resyncCheckPeriod, s.resyncCheckPeriod) resyncPeriod = s.resyncCheckPeriod } else { // if the event handler's resyncPeriod is smaller than the current resyncCheckPeriod, update diff --git a/vendor/k8s.io/client-go/tools/cache/store.go b/vendor/k8s.io/client-go/tools/cache/store.go index 4958987f0..fc844efe6 100755 --- a/vendor/k8s.io/client-go/tools/cache/store.go +++ b/vendor/k8s.io/client-go/tools/cache/store.go @@ -210,7 +210,7 @@ func (c *cache) GetByKey(key string) (item interface{}, exists bool, err error) // 'c' takes ownership of the list, you should not reference the list again // after calling this function. func (c *cache) Replace(list []interface{}, resourceVersion string) error { - items := map[string]interface{}{} + items := make(map[string]interface{}, len(list)) for _, item := range list { key, err := c.keyFunc(item) if err != nil { diff --git a/vendor/k8s.io/client-go/tools/cache/testing/BUILD b/vendor/k8s.io/client-go/tools/cache/testing/BUILD deleted file mode 100644 index d1658af4d..000000000 --- a/vendor/k8s.io/client-go/tools/cache/testing/BUILD +++ /dev/null @@ -1,45 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_test( - name = "go_default_test", - srcs = ["fake_controller_source_test.go"], - embed = [":go_default_library"], - deps = [ - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - ], -) - -go_library( - name = "go_default_library", - srcs = ["fake_controller_source.go"], - importpath = "k8s.io/client-go/tools/cache/testing", - deps = [ - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/tools/clientcmd/BUILD b/vendor/k8s.io/client-go/tools/clientcmd/BUILD deleted file mode 100644 index c46c76d5d..000000000 --- a/vendor/k8s.io/client-go/tools/clientcmd/BUILD +++ /dev/null @@ -1,78 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_test( - name = "go_default_test", - srcs = [ - "client_config_test.go", - "loader_test.go", - "merged_client_builder_test.go", - "overrides_test.go", - "validation_test.go", - ], - embed = [":go_default_library"], - deps = [ - "//vendor/github.com/ghodss/yaml:go_default_library", - "//vendor/github.com/imdario/mergo:go_default_library", - "//vendor/github.com/spf13/pflag:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/tools/clientcmd/api:go_default_library", - "//vendor/k8s.io/client-go/tools/clientcmd/api/latest:go_default_library", - ], -) - -go_library( - name = "go_default_library", - srcs = [ - "auth_loaders.go", - "client_config.go", - "config.go", - "doc.go", - "flag.go", - "helpers.go", - "loader.go", - "merged_client_builder.go", - "overrides.go", - "validation.go", - ], - importpath = "k8s.io/client-go/tools/clientcmd", - deps = [ - "//vendor/github.com/golang/glog:go_default_library", - "//vendor/github.com/howeyc/gopass:go_default_library", - "//vendor/github.com/imdario/mergo:go_default_library", - "//vendor/github.com/spf13/pflag:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/validation:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/tools/auth:go_default_library", - "//vendor/k8s.io/client-go/tools/clientcmd/api:go_default_library", - "//vendor/k8s.io/client-go/tools/clientcmd/api/latest:go_default_library", - "//vendor/k8s.io/client-go/util/homedir:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/tools/clientcmd/api:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/tools/clientcmd/api/BUILD b/vendor/k8s.io/client-go/tools/clientcmd/api/BUILD deleted file mode 100644 index b2fd13824..000000000 --- a/vendor/k8s.io/client-go/tools/clientcmd/api/BUILD +++ /dev/null @@ -1,50 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_test( - name = "go_default_test", - srcs = [ - "helpers_test.go", - "types_test.go", - ], - embed = [":go_default_library"], - deps = ["//vendor/github.com/ghodss/yaml:go_default_library"], -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "helpers.go", - "register.go", - "types.go", - "zz_generated.deepcopy.go", - ], - importpath = "k8s.io/client-go/tools/clientcmd/api", - deps = [ - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/tools/clientcmd/api/latest:all-srcs", - "//staging/src/k8s.io/client-go/tools/clientcmd/api/v1:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/tools/clientcmd/api/doc.go b/vendor/k8s.io/client-go/tools/clientcmd/api/doc.go index 0a081871a..5871575a6 100644 --- a/vendor/k8s.io/client-go/tools/clientcmd/api/doc.go +++ b/vendor/k8s.io/client-go/tools/clientcmd/api/doc.go @@ -15,4 +15,5 @@ limitations under the License. */ // +k8s:deepcopy-gen=package + package api diff --git a/vendor/k8s.io/client-go/tools/clientcmd/api/helpers.go b/vendor/k8s.io/client-go/tools/clientcmd/api/helpers.go index 43e26487c..65a36936b 100644 --- a/vendor/k8s.io/client-go/tools/clientcmd/api/helpers.go +++ b/vendor/k8s.io/client-go/tools/clientcmd/api/helpers.go @@ -29,6 +29,8 @@ import ( func init() { sDec, _ := base64.StdEncoding.DecodeString("REDACTED+") redactedBytes = []byte(string(sDec)) + sDec, _ = base64.StdEncoding.DecodeString("DATA+OMITTED") + dataOmittedBytes = []byte(string(sDec)) } // IsConfigEmpty returns true if the config is empty. @@ -79,7 +81,10 @@ func MinifyConfig(config *Config) error { return nil } -var redactedBytes []byte +var ( + redactedBytes []byte + dataOmittedBytes []byte +) // Flatten redacts raw data entries from the config object for a human-readable view. func ShortenConfig(config *Config) { @@ -97,7 +102,7 @@ func ShortenConfig(config *Config) { } for key, cluster := range config.Clusters { if len(cluster.CertificateAuthorityData) > 0 { - cluster.CertificateAuthorityData = redactedBytes + cluster.CertificateAuthorityData = dataOmittedBytes } config.Clusters[key] = cluster } diff --git a/vendor/k8s.io/client-go/tools/clientcmd/api/helpers_test.go b/vendor/k8s.io/client-go/tools/clientcmd/api/helpers_test.go index 430208456..48b3cec28 100644 --- a/vendor/k8s.io/client-go/tools/clientcmd/api/helpers_test.go +++ b/vendor/k8s.io/client-go/tools/clientcmd/api/helpers_test.go @@ -23,7 +23,7 @@ import ( "reflect" "testing" - "github.com/ghodss/yaml" + "sigs.k8s.io/yaml" ) func newMergedConfig(certFile, certContent, keyFile, keyContent, caFile, caContent string, t *testing.T) Config { @@ -229,7 +229,7 @@ func Example_minifyAndShorten() { // clusters: // cow-cluster: // LocationOfOrigin: "" - // certificate-authority-data: REDACTED + // certificate-authority-data: DATA+OMITTED // server: http://cow.org:8080 // contexts: // federal-context: @@ -276,14 +276,15 @@ func TestShortenSuccess(t *testing.T) { } redacted := string(redactedBytes) + dataOmitted := string(dataOmittedBytes) if len(mutatingConfig.Clusters) != 2 { t.Errorf("unexpected clusters: %v", mutatingConfig.Clusters) } if !reflect.DeepEqual(startingConfig.Clusters[unchangingCluster], mutatingConfig.Clusters[unchangingCluster]) { t.Errorf("expected %v, got %v", startingConfig.Clusters[unchangingCluster], mutatingConfig.Clusters[unchangingCluster]) } - if string(mutatingConfig.Clusters[changingCluster].CertificateAuthorityData) != redacted { - t.Errorf("expected %v, got %v", redacted, string(mutatingConfig.Clusters[changingCluster].CertificateAuthorityData)) + if string(mutatingConfig.Clusters[changingCluster].CertificateAuthorityData) != dataOmitted { + t.Errorf("expected %v, got %v", dataOmitted, string(mutatingConfig.Clusters[changingCluster].CertificateAuthorityData)) } if len(mutatingConfig.AuthInfos) != 2 { diff --git a/vendor/k8s.io/client-go/tools/clientcmd/api/latest/BUILD b/vendor/k8s.io/client-go/tools/clientcmd/api/latest/BUILD deleted file mode 100644 index 308319e22..000000000 --- a/vendor/k8s.io/client-go/tools/clientcmd/api/latest/BUILD +++ /dev/null @@ -1,33 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = ["latest.go"], - importpath = "k8s.io/client-go/tools/clientcmd/api/latest", - deps = [ - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer/json:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/serializer/versioning:go_default_library", - "//vendor/k8s.io/client-go/tools/clientcmd/api:go_default_library", - "//vendor/k8s.io/client-go/tools/clientcmd/api/v1:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/tools/clientcmd/api/latest/latest.go b/vendor/k8s.io/client-go/tools/clientcmd/api/latest/latest.go index 5fbbe3f13..35bb5dde1 100644 --- a/vendor/k8s.io/client-go/tools/clientcmd/api/latest/latest.go +++ b/vendor/k8s.io/client-go/tools/clientcmd/api/latest/latest.go @@ -21,6 +21,7 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/runtime/serializer/json" "k8s.io/apimachinery/pkg/runtime/serializer/versioning" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/client-go/tools/clientcmd/api" "k8s.io/client-go/tools/clientcmd/api/v1" ) @@ -47,14 +48,8 @@ var ( func init() { Scheme = runtime.NewScheme() - if err := api.AddToScheme(Scheme); err != nil { - // Programmer error, detect immediately - panic(err) - } - if err := v1.AddToScheme(Scheme); err != nil { - // Programmer error, detect immediately - panic(err) - } + utilruntime.Must(api.AddToScheme(Scheme)) + utilruntime.Must(v1.AddToScheme(Scheme)) yamlSerializer := json.NewYAMLSerializer(json.DefaultMetaFactory, Scheme, Scheme) Codec = versioning.NewDefaultingCodecForScheme( Scheme, diff --git a/vendor/k8s.io/client-go/tools/clientcmd/api/types.go b/vendor/k8s.io/client-go/tools/clientcmd/api/types.go index 407dec83a..1391df702 100644 --- a/vendor/k8s.io/client-go/tools/clientcmd/api/types.go +++ b/vendor/k8s.io/client-go/tools/clientcmd/api/types.go @@ -119,6 +119,9 @@ type AuthInfo struct { // AuthProvider specifies a custom authentication plugin for the kubernetes cluster. // +optional AuthProvider *AuthProviderConfig `json:"auth-provider,omitempty"` + // Exec specifies a custom exec-based authentication plugin for the kubernetes cluster. + // +optional + Exec *ExecConfig `json:"exec,omitempty"` // Extensions holds additional information. This is useful for extenders so that reads and writes don't clobber unknown fields // +optional Extensions map[string]runtime.Object `json:"extensions,omitempty"` @@ -147,6 +150,35 @@ type AuthProviderConfig struct { Config map[string]string `json:"config,omitempty"` } +// ExecConfig specifies a command to provide client credentials. The command is exec'd +// and outputs structured stdout holding credentials. +// +// See the client.authentiction.k8s.io API group for specifications of the exact input +// and output format +type ExecConfig struct { + // Command to execute. + Command string `json:"command"` + // Arguments to pass to the command when executing it. + // +optional + Args []string `json:"args"` + // Env defines additional environment variables to expose to the process. These + // are unioned with the host's environment, as well as variables client-go uses + // to pass argument to the plugin. + // +optional + Env []ExecEnvVar `json:"env"` + + // Preferred input version of the ExecInfo. The returned ExecCredentials MUST use + // the same encoding version as the input. + APIVersion string `json:"apiVersion,omitempty"` +} + +// ExecEnvVar is used for setting environment variables when executing an exec-based +// credential plugin. +type ExecEnvVar struct { + Name string `json:"name"` + Value string `json:"value"` +} + // NewConfig is a convenience function that returns a new Config object with non-nil maps func NewConfig() *Config { return &Config{ diff --git a/vendor/k8s.io/client-go/tools/clientcmd/api/types_test.go b/vendor/k8s.io/client-go/tools/clientcmd/api/types_test.go index bd3483452..f7190d93e 100644 --- a/vendor/k8s.io/client-go/tools/clientcmd/api/types_test.go +++ b/vendor/k8s.io/client-go/tools/clientcmd/api/types_test.go @@ -19,7 +19,7 @@ package api import ( "fmt" - "github.com/ghodss/yaml" + "sigs.k8s.io/yaml" ) func Example_emptyConfig() { diff --git a/vendor/k8s.io/client-go/tools/clientcmd/api/v1/BUILD b/vendor/k8s.io/client-go/tools/clientcmd/api/v1/BUILD deleted file mode 100644 index 2b9daaf08..000000000 --- a/vendor/k8s.io/client-go/tools/clientcmd/api/v1/BUILD +++ /dev/null @@ -1,37 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "conversion.go", - "doc.go", - "register.go", - "types.go", - "zz_generated.deepcopy.go", - ], - importpath = "k8s.io/client-go/tools/clientcmd/api/v1", - deps = [ - "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/client-go/tools/clientcmd/api:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/tools/clientcmd/api/v1/conversion.go b/vendor/k8s.io/client-go/tools/clientcmd/api/v1/conversion.go index b47bfbca2..2d7142e6e 100644 --- a/vendor/k8s.io/client-go/tools/clientcmd/api/v1/conversion.go +++ b/vendor/k8s.io/client-go/tools/clientcmd/api/v1/conversion.go @@ -17,6 +17,7 @@ limitations under the License. package v1 import ( + "fmt" "sort" "k8s.io/apimachinery/pkg/conversion" @@ -105,7 +106,11 @@ func addConversionFuncs(scheme *runtime.Scheme) error { if err := s.Convert(&curr.Cluster, newCluster, 0); err != nil { return err } - (*out)[curr.Name] = newCluster + if (*out)[curr.Name] == nil { + (*out)[curr.Name] = newCluster + } else { + return fmt.Errorf("error converting *[]NamedCluster into *map[string]*api.Cluster: duplicate name \"%v\" in list: %v", curr.Name, *in) + } } return nil @@ -136,7 +141,11 @@ func addConversionFuncs(scheme *runtime.Scheme) error { if err := s.Convert(&curr.AuthInfo, newAuthInfo, 0); err != nil { return err } - (*out)[curr.Name] = newAuthInfo + if (*out)[curr.Name] == nil { + (*out)[curr.Name] = newAuthInfo + } else { + return fmt.Errorf("error converting *[]NamedAuthInfo into *map[string]*api.AuthInfo: duplicate name \"%v\" in list: %v", curr.Name, *in) + } } return nil @@ -167,7 +176,11 @@ func addConversionFuncs(scheme *runtime.Scheme) error { if err := s.Convert(&curr.Context, newContext, 0); err != nil { return err } - (*out)[curr.Name] = newContext + if (*out)[curr.Name] == nil { + (*out)[curr.Name] = newContext + } else { + return fmt.Errorf("error converting *[]NamedContext into *map[string]*api.Context: duplicate name \"%v\" in list: %v", curr.Name, *in) + } } return nil @@ -198,7 +211,11 @@ func addConversionFuncs(scheme *runtime.Scheme) error { if err := s.Convert(&curr.Extension, &newExtension, 0); err != nil { return err } - (*out)[curr.Name] = newExtension + if (*out)[curr.Name] == nil { + (*out)[curr.Name] = newExtension + } else { + return fmt.Errorf("error converting *[]NamedExtension into *map[string]runtime.Object: duplicate name \"%v\" in list: %v", curr.Name, *in) + } } return nil diff --git a/vendor/k8s.io/client-go/tools/clientcmd/api/v1/doc.go b/vendor/k8s.io/client-go/tools/clientcmd/api/v1/doc.go index 9750cf73a..cbf29ccf2 100644 --- a/vendor/k8s.io/client-go/tools/clientcmd/api/v1/doc.go +++ b/vendor/k8s.io/client-go/tools/clientcmd/api/v1/doc.go @@ -15,4 +15,5 @@ limitations under the License. */ // +k8s:deepcopy-gen=package + package v1 diff --git a/vendor/k8s.io/client-go/tools/clientcmd/api/v1/types.go b/vendor/k8s.io/client-go/tools/clientcmd/api/v1/types.go index 53568135e..56afb608a 100644 --- a/vendor/k8s.io/client-go/tools/clientcmd/api/v1/types.go +++ b/vendor/k8s.io/client-go/tools/clientcmd/api/v1/types.go @@ -113,6 +113,9 @@ type AuthInfo struct { // AuthProvider specifies a custom authentication plugin for the kubernetes cluster. // +optional AuthProvider *AuthProviderConfig `json:"auth-provider,omitempty"` + // Exec specifies a custom exec-based authentication plugin for the kubernetes cluster. + // +optional + Exec *ExecConfig `json:"exec,omitempty"` // Extensions holds additional information. This is useful for extenders so that reads and writes don't clobber unknown fields // +optional Extensions []NamedExtension `json:"extensions,omitempty"` @@ -169,3 +172,32 @@ type AuthProviderConfig struct { Name string `json:"name"` Config map[string]string `json:"config"` } + +// ExecConfig specifies a command to provide client credentials. The command is exec'd +// and outputs structured stdout holding credentials. +// +// See the client.authentiction.k8s.io API group for specifications of the exact input +// and output format +type ExecConfig struct { + // Command to execute. + Command string `json:"command"` + // Arguments to pass to the command when executing it. + // +optional + Args []string `json:"args"` + // Env defines additional environment variables to expose to the process. These + // are unioned with the host's environment, as well as variables client-go uses + // to pass argument to the plugin. + // +optional + Env []ExecEnvVar `json:"env"` + + // Preferred input version of the ExecInfo. The returned ExecCredentials MUST use + // the same encoding version as the input. + APIVersion string `json:"apiVersion,omitempty"` +} + +// ExecEnvVar is used for setting environment variables when executing an exec-based +// credential plugin. +type ExecEnvVar struct { + Name string `json:"name"` + Value string `json:"value"` +} diff --git a/vendor/k8s.io/client-go/tools/clientcmd/api/v1/zz_generated.deepcopy.go b/vendor/k8s.io/client-go/tools/clientcmd/api/v1/zz_generated.deepcopy.go index aec725ef2..da519dfa3 100644 --- a/vendor/k8s.io/client-go/tools/clientcmd/api/v1/zz_generated.deepcopy.go +++ b/vendor/k8s.io/client-go/tools/clientcmd/api/v1/zz_generated.deepcopy.go @@ -1,7 +1,7 @@ // +build !ignore_autogenerated /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -46,22 +46,26 @@ func (in *AuthInfo) DeepCopyInto(out *AuthInfo) { in, out := &in.ImpersonateUserExtra, &out.ImpersonateUserExtra *out = make(map[string][]string, len(*in)) for key, val := range *in { + var outVal []string if val == nil { (*out)[key] = nil } else { - (*out)[key] = make([]string, len(val)) - copy((*out)[key], val) + in, out := &val, &outVal + *out = make([]string, len(*in)) + copy(*out, *in) } + (*out)[key] = outVal } } if in.AuthProvider != nil { in, out := &in.AuthProvider, &out.AuthProvider - if *in == nil { - *out = nil - } else { - *out = new(AuthProviderConfig) - (*in).DeepCopyInto(*out) - } + *out = new(AuthProviderConfig) + (*in).DeepCopyInto(*out) + } + if in.Exec != nil { + in, out := &in.Exec, &out.Exec + *out = new(ExecConfig) + (*in).DeepCopyInto(*out) } if in.Extensions != nil { in, out := &in.Extensions, &out.Extensions @@ -210,6 +214,48 @@ func (in *Context) DeepCopy() *Context { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ExecConfig) DeepCopyInto(out *ExecConfig) { + *out = *in + if in.Args != nil { + in, out := &in.Args, &out.Args + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.Env != nil { + in, out := &in.Env, &out.Env + *out = make([]ExecEnvVar, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecConfig. +func (in *ExecConfig) DeepCopy() *ExecConfig { + if in == nil { + return nil + } + out := new(ExecConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ExecEnvVar) DeepCopyInto(out *ExecEnvVar) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecEnvVar. +func (in *ExecEnvVar) DeepCopy() *ExecEnvVar { + if in == nil { + return nil + } + out := new(ExecEnvVar) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *NamedAuthInfo) DeepCopyInto(out *NamedAuthInfo) { *out = *in diff --git a/vendor/k8s.io/client-go/tools/clientcmd/api/zz_generated.deepcopy.go b/vendor/k8s.io/client-go/tools/clientcmd/api/zz_generated.deepcopy.go index 1e90c3cd5..3240a7a98 100644 --- a/vendor/k8s.io/client-go/tools/clientcmd/api/zz_generated.deepcopy.go +++ b/vendor/k8s.io/client-go/tools/clientcmd/api/zz_generated.deepcopy.go @@ -1,7 +1,7 @@ // +build !ignore_autogenerated /* -Copyright 2018 The Kubernetes Authors. +Copyright The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -46,22 +46,26 @@ func (in *AuthInfo) DeepCopyInto(out *AuthInfo) { in, out := &in.ImpersonateUserExtra, &out.ImpersonateUserExtra *out = make(map[string][]string, len(*in)) for key, val := range *in { + var outVal []string if val == nil { (*out)[key] = nil } else { - (*out)[key] = make([]string, len(val)) - copy((*out)[key], val) + in, out := &val, &outVal + *out = make([]string, len(*in)) + copy(*out, *in) } + (*out)[key] = outVal } } if in.AuthProvider != nil { in, out := &in.AuthProvider, &out.AuthProvider - if *in == nil { - *out = nil - } else { - *out = new(AuthProviderConfig) - (*in).DeepCopyInto(*out) - } + *out = new(AuthProviderConfig) + (*in).DeepCopyInto(*out) + } + if in.Exec != nil { + in, out := &in.Exec, &out.Exec + *out = new(ExecConfig) + (*in).DeepCopyInto(*out) } if in.Extensions != nil { in, out := &in.Extensions, &out.Extensions @@ -150,36 +154,45 @@ func (in *Config) DeepCopyInto(out *Config) { in, out := &in.Clusters, &out.Clusters *out = make(map[string]*Cluster, len(*in)) for key, val := range *in { + var outVal *Cluster if val == nil { (*out)[key] = nil } else { - (*out)[key] = new(Cluster) - val.DeepCopyInto((*out)[key]) + in, out := &val, &outVal + *out = new(Cluster) + (*in).DeepCopyInto(*out) } + (*out)[key] = outVal } } if in.AuthInfos != nil { in, out := &in.AuthInfos, &out.AuthInfos *out = make(map[string]*AuthInfo, len(*in)) for key, val := range *in { + var outVal *AuthInfo if val == nil { (*out)[key] = nil } else { - (*out)[key] = new(AuthInfo) - val.DeepCopyInto((*out)[key]) + in, out := &val, &outVal + *out = new(AuthInfo) + (*in).DeepCopyInto(*out) } + (*out)[key] = outVal } } if in.Contexts != nil { in, out := &in.Contexts, &out.Contexts *out = make(map[string]*Context, len(*in)) for key, val := range *in { + var outVal *Context if val == nil { (*out)[key] = nil } else { - (*out)[key] = new(Context) - val.DeepCopyInto((*out)[key]) + in, out := &val, &outVal + *out = new(Context) + (*in).DeepCopyInto(*out) } + (*out)[key] = outVal } } if in.Extensions != nil { @@ -241,6 +254,48 @@ func (in *Context) DeepCopy() *Context { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ExecConfig) DeepCopyInto(out *ExecConfig) { + *out = *in + if in.Args != nil { + in, out := &in.Args, &out.Args + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.Env != nil { + in, out := &in.Env, &out.Env + *out = make([]ExecEnvVar, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecConfig. +func (in *ExecConfig) DeepCopy() *ExecConfig { + if in == nil { + return nil + } + out := new(ExecConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ExecEnvVar) DeepCopyInto(out *ExecEnvVar) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecEnvVar. +func (in *ExecEnvVar) DeepCopy() *ExecEnvVar { + if in == nil { + return nil + } + out := new(ExecEnvVar) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Preferences) DeepCopyInto(out *Preferences) { *out = *in diff --git a/vendor/k8s.io/client-go/tools/clientcmd/auth_loaders.go b/vendor/k8s.io/client-go/tools/clientcmd/auth_loaders.go index 12331f6e6..1d3c11d8f 100644 --- a/vendor/k8s.io/client-go/tools/clientcmd/auth_loaders.go +++ b/vendor/k8s.io/client-go/tools/clientcmd/auth_loaders.go @@ -23,7 +23,8 @@ import ( "io/ioutil" "os" - "github.com/howeyc/gopass" + "golang.org/x/crypto/ssh/terminal" + clientauth "k8s.io/client-go/tools/auth" ) @@ -89,8 +90,12 @@ func promptForString(field string, r io.Reader, show bool) (result string, err e _, err = fmt.Fscan(r, &result) } else { var data []byte - data, err = gopass.GetPasswdMasked() - result = string(data) + if terminal.IsTerminal(int(os.Stdin.Fd())) { + data, err = terminal.ReadPassword(int(os.Stdin.Fd())) + result = string(data) + } else { + return "", fmt.Errorf("error reading input for %s", field) + } } return result, err } diff --git a/vendor/k8s.io/client-go/tools/clientcmd/client_config.go b/vendor/k8s.io/client-go/tools/clientcmd/client_config.go index af86f677c..dea229c91 100644 --- a/vendor/k8s.io/client-go/tools/clientcmd/client_config.go +++ b/vendor/k8s.io/client-go/tools/clientcmd/client_config.go @@ -24,10 +24,9 @@ import ( "os" "strings" - "github.com/golang/glog" "github.com/imdario/mergo" + "k8s.io/klog" - "k8s.io/api/core/v1" restclient "k8s.io/client-go/rest" clientauth "k8s.io/client-go/tools/auth" clientcmdapi "k8s.io/client-go/tools/clientcmd/api" @@ -100,6 +99,26 @@ func NewInteractiveClientConfig(config clientcmdapi.Config, contextName string, return &DirectClientConfig{config, contextName, overrides, fallbackReader, configAccess, promptedCredentials{}} } +// NewClientConfigFromBytes takes your kubeconfig and gives you back a ClientConfig +func NewClientConfigFromBytes(configBytes []byte) (ClientConfig, error) { + config, err := Load(configBytes) + if err != nil { + return nil, err + } + + return &DirectClientConfig{*config, "", &ConfigOverrides{}, nil, nil, promptedCredentials{}}, nil +} + +// RESTConfigFromKubeConfig is a convenience method to give back a restconfig from your kubeconfig bytes. +// For programmatic access, this is what you want 80% of the time +func RESTConfigFromKubeConfig(configBytes []byte) (*restclient.Config, error) { + clientConfig, err := NewClientConfigFromBytes(configBytes) + if err != nil { + return nil, err + } + return clientConfig.ClientConfig() +} + func (config *DirectClientConfig) RawConfig() (clientcmdapi.Config, error) { return config.config, nil } @@ -156,10 +175,6 @@ func (config *DirectClientConfig) ClientConfig() (*restclient.Config, error) { // only try to read the auth information if we are secure if restclient.IsConfigTransportTLS(*clientConfig) { var err error - - // mergo is a first write wins for map value and a last writing wins for interface values - // NOTE: This behavior changed with https://github.com/imdario/mergo/commit/d304790b2ed594794496464fadd89d2bb266600a. - // Our mergo.Merge version is older than this change. var persister restclient.AuthProviderConfigPersister if config.configAccess != nil { authInfoName, _ := config.getAuthInfoName() @@ -169,13 +184,13 @@ func (config *DirectClientConfig) ClientConfig() (*restclient.Config, error) { if err != nil { return nil, err } - mergo.Merge(clientConfig, userAuthPartialConfig) + mergo.MergeWithOverwrite(clientConfig, userAuthPartialConfig) serverAuthPartialConfig, err := getServerIdentificationPartialConfig(configAuthInfo, configClusterInfo) if err != nil { return nil, err } - mergo.Merge(clientConfig, serverAuthPartialConfig) + mergo.MergeWithOverwrite(clientConfig, serverAuthPartialConfig) } return clientConfig, nil @@ -195,7 +210,7 @@ func getServerIdentificationPartialConfig(configAuthInfo clientcmdapi.AuthInfo, configClientConfig.CAFile = configClusterInfo.CertificateAuthority configClientConfig.CAData = configClusterInfo.CertificateAuthorityData configClientConfig.Insecure = configClusterInfo.InsecureSkipTLSVerify - mergo.Merge(mergedConfig, configClientConfig) + mergo.MergeWithOverwrite(mergedConfig, configClientConfig) return mergedConfig, nil } @@ -214,11 +229,11 @@ func (config *DirectClientConfig) getUserIdentificationPartialConfig(configAuthI if len(configAuthInfo.Token) > 0 { mergedConfig.BearerToken = configAuthInfo.Token } else if len(configAuthInfo.TokenFile) > 0 { - tokenBytes, err := ioutil.ReadFile(configAuthInfo.TokenFile) - if err != nil { + ts := restclient.NewCachedFileTokenSource(configAuthInfo.TokenFile) + if _, err := ts.Token(); err != nil { return nil, err } - mergedConfig.BearerToken = string(tokenBytes) + mergedConfig.WrapTransport = restclient.TokenSourceWrapTransport(ts) } if len(configAuthInfo.Impersonate) > 0 { mergedConfig.Impersonate = restclient.ImpersonationConfig{ @@ -241,6 +256,9 @@ func (config *DirectClientConfig) getUserIdentificationPartialConfig(configAuthI mergedConfig.AuthProvider = configAuthInfo.AuthProvider mergedConfig.AuthConfigPersister = persistAuthConfig } + if configAuthInfo.Exec != nil { + mergedConfig.ExecProvider = configAuthInfo.Exec + } // if there still isn't enough information to authenticate the user, try prompting if !canIdentifyUser(*mergedConfig) && (fallbackReader != nil) { @@ -257,8 +275,8 @@ func (config *DirectClientConfig) getUserIdentificationPartialConfig(configAuthI promptedConfig := makeUserIdentificationConfig(*promptedAuthInfo) previouslyMergedConfig := mergedConfig mergedConfig = &restclient.Config{} - mergo.Merge(mergedConfig, promptedConfig) - mergo.Merge(mergedConfig, previouslyMergedConfig) + mergo.MergeWithOverwrite(mergedConfig, promptedConfig) + mergo.MergeWithOverwrite(mergedConfig, previouslyMergedConfig) config.promptedCredentials.username = mergedConfig.Username config.promptedCredentials.password = mergedConfig.Password } @@ -291,7 +309,8 @@ func canIdentifyUser(config restclient.Config) bool { return len(config.Username) > 0 || (len(config.CertFile) > 0 || len(config.CertData) > 0) || len(config.BearerToken) > 0 || - config.AuthProvider != nil + config.AuthProvider != nil || + config.ExecProvider != nil } // Namespace implements ClientConfig @@ -314,7 +333,7 @@ func (config *DirectClientConfig) Namespace() (string, bool, error) { } if len(configContext.Namespace) == 0 { - return v1.NamespaceDefault, false, nil + return "default", false, nil } return configContext.Namespace, false, nil @@ -400,11 +419,11 @@ func (config *DirectClientConfig) getContext() (clientcmdapi.Context, error) { mergedContext := clientcmdapi.NewContext() if configContext, exists := contexts[contextName]; exists { - mergo.Merge(mergedContext, configContext) + mergo.MergeWithOverwrite(mergedContext, configContext) } else if required { return clientcmdapi.Context{}, fmt.Errorf("context %q does not exist", contextName) } - mergo.Merge(mergedContext, config.overrides.Context) + mergo.MergeWithOverwrite(mergedContext, config.overrides.Context) return *mergedContext, nil } @@ -416,11 +435,11 @@ func (config *DirectClientConfig) getAuthInfo() (clientcmdapi.AuthInfo, error) { mergedAuthInfo := clientcmdapi.NewAuthInfo() if configAuthInfo, exists := authInfos[authInfoName]; exists { - mergo.Merge(mergedAuthInfo, configAuthInfo) + mergo.MergeWithOverwrite(mergedAuthInfo, configAuthInfo) } else if required { return clientcmdapi.AuthInfo{}, fmt.Errorf("auth info %q does not exist", authInfoName) } - mergo.Merge(mergedAuthInfo, config.overrides.AuthInfo) + mergo.MergeWithOverwrite(mergedAuthInfo, config.overrides.AuthInfo) return *mergedAuthInfo, nil } @@ -431,13 +450,13 @@ func (config *DirectClientConfig) getCluster() (clientcmdapi.Cluster, error) { clusterInfoName, required := config.getClusterName() mergedClusterInfo := clientcmdapi.NewCluster() - mergo.Merge(mergedClusterInfo, config.overrides.ClusterDefaults) + mergo.MergeWithOverwrite(mergedClusterInfo, config.overrides.ClusterDefaults) if configClusterInfo, exists := clusterInfos[clusterInfoName]; exists { - mergo.Merge(mergedClusterInfo, configClusterInfo) + mergo.MergeWithOverwrite(mergedClusterInfo, configClusterInfo) } else if required { return clientcmdapi.Cluster{}, fmt.Errorf("cluster %q does not exist", clusterInfoName) } - mergo.Merge(mergedClusterInfo, config.overrides.ClusterInfo) + mergo.MergeWithOverwrite(mergedClusterInfo, config.overrides.ClusterInfo) // An override of --insecure-skip-tls-verify=true and no accompanying CA/CA data should clear already-set CA/CA data // otherwise, a kubeconfig containing a CA reference would return an error that "CA and insecure-skip-tls-verify couldn't both be set" caLen := len(config.overrides.ClusterInfo.CertificateAuthority) @@ -526,12 +545,12 @@ func (config *inClusterClientConfig) Possible() bool { // to the default config. func BuildConfigFromFlags(masterUrl, kubeconfigPath string) (*restclient.Config, error) { if kubeconfigPath == "" && masterUrl == "" { - glog.Warningf("Neither --kubeconfig nor --master was specified. Using the inClusterConfig. This might not work.") + klog.Warningf("Neither --kubeconfig nor --master was specified. Using the inClusterConfig. This might not work.") kubeconfig, err := restclient.InClusterConfig() if err == nil { return kubeconfig, nil } - glog.Warning("error creating inClusterConfig, falling back to default config: ", err) + klog.Warning("error creating inClusterConfig, falling back to default config: ", err) } return NewNonInteractiveDeferredLoadingClientConfig( &ClientConfigLoadingRules{ExplicitPath: kubeconfigPath}, diff --git a/vendor/k8s.io/client-go/tools/clientcmd/client_config_test.go b/vendor/k8s.io/client-go/tools/clientcmd/client_config_test.go index 0a9288bcf..6da850ed4 100644 --- a/vendor/k8s.io/client-go/tools/clientcmd/client_config_test.go +++ b/vendor/k8s.io/client-go/tools/clientcmd/client_config_test.go @@ -18,31 +18,95 @@ package clientcmd import ( "io/ioutil" + "net/http" "os" "reflect" "strings" "testing" "github.com/imdario/mergo" + restclient "k8s.io/client-go/rest" clientcmdapi "k8s.io/client-go/tools/clientcmd/api" ) -func TestOldMergoLib(t *testing.T) { - type T struct { - X string +func TestMergoSemantics(t *testing.T) { + type U struct { + A string + B int64 } - dst := T{X: "one"} - src := T{X: "two"} - mergo.Merge(&dst, &src) - if dst.X != "two" { - // mergo.Merge changed in an incompatible way with - // - // https://github.com/imdario/mergo/commit/d304790b2ed594794496464fadd89d2bb266600a - // - // We have to stay with the old version which still does eager - // copying from src to dst in structs. - t.Errorf("mergo.Merge library found with incompatible, new behavior") + type T struct { + S []string + X string + Y int64 + U U + } + var testDataStruct = []struct { + dst T + src T + expected T + }{ + { + dst: T{X: "one"}, + src: T{X: "two"}, + expected: T{X: "two"}, + }, + { + dst: T{X: "one", Y: 5, U: U{A: "four", B: 6}}, + src: T{X: "two", U: U{A: "three", B: 4}}, + expected: T{X: "two", Y: 5, U: U{A: "three", B: 4}}, + }, + { + dst: T{S: []string{"test3", "test4", "test5"}}, + src: T{S: []string{"test1", "test2", "test3"}}, + expected: T{S: []string{"test1", "test2", "test3"}}, + }, + } + for _, data := range testDataStruct { + err := mergo.MergeWithOverwrite(&data.dst, &data.src) + if err != nil { + t.Errorf("error while merging: %s", err) + } + if !reflect.DeepEqual(data.dst, data.expected) { + // The mergo library has previously changed in a an incompatible way. + // example: + // + // https://github.com/imdario/mergo/commit/d304790b2ed594794496464fadd89d2bb266600a + // + // This test verifies that the semantics of the merge are what we expect. + // If they are not, the mergo library may have been updated and broken + // unexpectedly. + t.Errorf("mergo.MergeWithOverwrite did not provide expected output: %+v doesn't match %+v", data.dst, data.expected) + } + } + + var testDataMap = []struct { + dst map[string]int + src map[string]int + expected map[string]int + }{ + { + dst: map[string]int{"rsc": 6543, "r": 2138, "gri": 1908, "adg": 912, "prt": 22}, + src: map[string]int{"rsc": 3711, "r": 2138, "gri": 1908, "adg": 912}, + expected: map[string]int{"rsc": 3711, "r": 2138, "gri": 1908, "adg": 912, "prt": 22}, + }, + } + for _, data := range testDataMap { + err := mergo.MergeWithOverwrite(&data.dst, &data.src) + if err != nil { + t.Errorf("error while merging: %s", err) + } + if !reflect.DeepEqual(data.dst, data.expected) { + // The mergo library has previously changed in a an incompatible way. + // example: + // + // https://github.com/imdario/mergo/commit/d304790b2ed594794496464fadd89d2bb266600a + // + // This test verifies that the semantics of the merge are what we expect. + // If they are not, the mergo library may have been updated and broken + // unexpectedly. + t.Errorf("mergo.MergeWithOverwrite did not provide expected output: %+v doesn't match %+v", data.dst, data.expected) + } } } @@ -126,6 +190,54 @@ func TestMergeContext(t *testing.T) { matchStringArg(namespace, actual, t) } +func TestModifyContext(t *testing.T) { + expectedCtx := map[string]bool{ + "updated": true, + "clean": true, + } + + tempPath, err := ioutil.TempFile("", "testclientcmd-") + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + defer os.Remove(tempPath.Name()) + + pathOptions := NewDefaultPathOptions() + config := createValidTestConfig() + + pathOptions.GlobalFile = tempPath.Name() + + // define new context and assign it - our path options config + config.Contexts["updated"] = &clientcmdapi.Context{ + Cluster: "updated", + AuthInfo: "updated", + } + config.CurrentContext = "updated" + + if err := ModifyConfig(pathOptions, *config, true); err != nil { + t.Errorf("Unexpected error: %v", err) + } + + startingConfig, err := pathOptions.GetStartingConfig() + if err != nil { + t.Fatalf("Unexpected error: %v", err) + } + + // make sure the current context was updated + matchStringArg("updated", startingConfig.CurrentContext, t) + + // there should now be two contexts + if len(startingConfig.Contexts) != len(expectedCtx) { + t.Fatalf("unexpected nuber of contexts, expecting %v, but found %v", len(expectedCtx), len(startingConfig.Contexts)) + } + + for key := range startingConfig.Contexts { + if !expectedCtx[key] { + t.Fatalf("expected context %q to exist", key) + } + } +} + func TestCertificateData(t *testing.T) { caData := []byte("ca-data") certData := []byte("cert-data") @@ -133,7 +245,7 @@ func TestCertificateData(t *testing.T) { config := clientcmdapi.NewConfig() config.Clusters["clean"] = &clientcmdapi.Cluster{ - Server: "https://localhost:8443", + Server: "https://localhost:8443", CertificateAuthorityData: caData, } config.AuthInfos["clean"] = &clientcmdapi.AuthInfo{ @@ -222,7 +334,19 @@ func TestBasicTokenFile(t *testing.T) { t.Fatalf("Unexpected error: %v", err) } - matchStringArg(token, clientConfig.BearerToken, t) + var out *http.Request + clientConfig.WrapTransport(fakeTransport(func(req *http.Request) (*http.Response, error) { + out = req + return &http.Response{}, nil + })).RoundTrip(&http.Request{}) + + matchStringArg(token, strings.TrimPrefix(out.Header.Get("Authorization"), "Bearer "), t) +} + +type fakeTransport func(*http.Request) (*http.Response, error) + +func (ft fakeTransport) RoundTrip(req *http.Request) (*http.Response, error) { + return ft(req) } func TestPrecedenceTokenFile(t *testing.T) { @@ -526,3 +650,46 @@ func TestNamespaceOverride(t *testing.T) { matchStringArg("foo", ns, t) } + +func TestAuthConfigMerge(t *testing.T) { + content := ` +apiVersion: v1 +clusters: +- cluster: + server: https://localhost:8080 + name: foo-cluster +contexts: +- context: + cluster: foo-cluster + user: foo-user + namespace: bar + name: foo-context +current-context: foo-context +kind: Config +users: +- name: foo-user + user: + exec: + apiVersion: client.authentication.k8s.io/v1alpha1 + args: + - arg-1 + - arg-2 + command: foo-command +` + tmpfile, err := ioutil.TempFile("", "kubeconfig") + if err != nil { + t.Error(err) + } + defer os.Remove(tmpfile.Name()) + if err := ioutil.WriteFile(tmpfile.Name(), []byte(content), 0666); err != nil { + t.Error(err) + } + config, err := BuildConfigFromFlags("", tmpfile.Name()) + if err != nil { + t.Error(err) + } + if !reflect.DeepEqual(config.ExecProvider.Args, []string{"arg-1", "arg-2"}) { + t.Errorf("Got args %v when they should be %v\n", config.ExecProvider.Args, []string{"arg-1", "arg-2"}) + } + +} diff --git a/vendor/k8s.io/client-go/tools/clientcmd/config.go b/vendor/k8s.io/client-go/tools/clientcmd/config.go index 16ccdaf20..b8cc39688 100644 --- a/vendor/k8s.io/client-go/tools/clientcmd/config.go +++ b/vendor/k8s.io/client-go/tools/clientcmd/config.go @@ -24,7 +24,7 @@ import ( "reflect" "sort" - "github.com/golang/glog" + "k8s.io/klog" restclient "k8s.io/client-go/rest" clientcmdapi "k8s.io/client-go/tools/clientcmd/api" @@ -68,7 +68,9 @@ func (o *PathOptions) GetEnvVarFiles() []string { return []string{} } - return filepath.SplitList(envVarValue) + fileList := filepath.SplitList(envVarValue) + // prevent the same path load multiple times + return deduplicate(fileList) } func (o *PathOptions) GetLoadingPrecedence() []string { @@ -218,6 +220,9 @@ func ModifyConfig(configAccess ConfigAccess, newConfig clientcmdapi.Config, rela } } + // seenConfigs stores a map of config source filenames to computed config objects + seenConfigs := map[string]*clientcmdapi.Config{} + for key, context := range newConfig.Contexts { startingContext, exists := startingConfig.Contexts[key] if !reflect.DeepEqual(context, startingContext) || !exists { @@ -226,15 +231,28 @@ func ModifyConfig(configAccess ConfigAccess, newConfig clientcmdapi.Config, rela destinationFile = configAccess.GetDefaultFilename() } - configToWrite, err := getConfigFromFile(destinationFile) - if err != nil { - return err + // we only obtain a fresh config object from its source file + // if we have not seen it already - this prevents us from + // reading and writing to the same number of files repeatedly + // when multiple / all contexts share the same destination file. + configToWrite, seen := seenConfigs[destinationFile] + if !seen { + var err error + configToWrite, err = getConfigFromFile(destinationFile) + if err != nil { + return err + } + seenConfigs[destinationFile] = configToWrite } - configToWrite.Contexts[key] = context - if err := WriteToFile(*configToWrite, destinationFile); err != nil { - return err - } + configToWrite.Contexts[key] = context + } + } + + // actually persist config object changes + for destinationFile, configToWrite := range seenConfigs { + if err := WriteToFile(*configToWrite, destinationFile); err != nil { + return err } } @@ -465,7 +483,7 @@ func getConfigFromFile(filename string) (*clientcmdapi.Config, error) { func GetConfigFromFileOrDie(filename string) *clientcmdapi.Config { config, err := getConfigFromFile(filename) if err != nil { - glog.FatalDepth(1, err) + klog.FatalDepth(1, err) } return config diff --git a/vendor/k8s.io/client-go/tools/clientcmd/loader.go b/vendor/k8s.io/client-go/tools/clientcmd/loader.go index 2b6293db4..7e928a918 100644 --- a/vendor/k8s.io/client-go/tools/clientcmd/loader.go +++ b/vendor/k8s.io/client-go/tools/clientcmd/loader.go @@ -27,8 +27,8 @@ import ( goruntime "runtime" "strings" - "github.com/golang/glog" "github.com/imdario/mergo" + "k8s.io/klog" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" @@ -139,7 +139,9 @@ func NewDefaultClientConfigLoadingRules() *ClientConfigLoadingRules { envVarFiles := os.Getenv(RecommendedConfigPathEnvVar) if len(envVarFiles) != 0 { - chain = append(chain, filepath.SplitList(envVarFiles)...) + fileList := filepath.SplitList(envVarFiles) + // prevent the same path load multiple times + chain = append(chain, deduplicate(fileList)...) } else { chain = append(chain, RecommendedHomeFile) @@ -209,7 +211,7 @@ func (rules *ClientConfigLoadingRules) Load() (*clientcmdapi.Config, error) { mapConfig := clientcmdapi.NewConfig() for _, kubeconfig := range kubeconfigs { - mergo.Merge(mapConfig, kubeconfig) + mergo.MergeWithOverwrite(mapConfig, kubeconfig) } // merge all of the struct values in the reverse order so that priority is given correctly @@ -217,14 +219,14 @@ func (rules *ClientConfigLoadingRules) Load() (*clientcmdapi.Config, error) { nonMapConfig := clientcmdapi.NewConfig() for i := len(kubeconfigs) - 1; i >= 0; i-- { kubeconfig := kubeconfigs[i] - mergo.Merge(nonMapConfig, kubeconfig) + mergo.MergeWithOverwrite(nonMapConfig, kubeconfig) } // since values are overwritten, but maps values are not, we can merge the non-map config on top of the map config and // get the values we expect. config := clientcmdapi.NewConfig() - mergo.Merge(config, mapConfig) - mergo.Merge(config, nonMapConfig) + mergo.MergeWithOverwrite(config, mapConfig) + mergo.MergeWithOverwrite(config, nonMapConfig) if rules.ResolvePaths() { if err := ResolveLocalPaths(config); err != nil { @@ -354,7 +356,7 @@ func LoadFromFile(filename string) (*clientcmdapi.Config, error) { if err != nil { return nil, err } - glog.V(6).Infoln("Config loaded from file", filename) + klog.V(6).Infoln("Config loaded from file", filename) // set LocationOfOrigin on every Cluster, User, and Context for key, obj := range config.AuthInfos { @@ -557,7 +559,12 @@ func GetClusterFileReferences(cluster *clientcmdapi.Cluster) []*string { } func GetAuthInfoFileReferences(authInfo *clientcmdapi.AuthInfo) []*string { - return []*string{&authInfo.ClientCertificate, &authInfo.ClientKey, &authInfo.TokenFile} + s := []*string{&authInfo.ClientCertificate, &authInfo.ClientKey, &authInfo.TokenFile} + // Only resolve exec command if it isn't PATH based. + if authInfo.Exec != nil && strings.ContainsRune(authInfo.Exec.Command, filepath.Separator) { + s = append(s, &authInfo.Exec.Command) + } + return s } // ResolvePaths updates the given refs to be absolute paths, relative to the given base directory @@ -610,3 +617,17 @@ func MakeRelative(path, base string) (string, error) { } return path, nil } + +// deduplicate removes any duplicated values and returns a new slice, keeping the order unchanged +func deduplicate(s []string) []string { + encountered := map[string]bool{} + ret := make([]string, 0) + for i := range s { + if encountered[s[i]] { + continue + } + encountered[s[i]] = true + ret = append(ret, s[i]) + } + return ret +} diff --git a/vendor/k8s.io/client-go/tools/clientcmd/loader_test.go b/vendor/k8s.io/client-go/tools/clientcmd/loader_test.go index 74319788a..461d970bf 100644 --- a/vendor/k8s.io/client-go/tools/clientcmd/loader_test.go +++ b/vendor/k8s.io/client-go/tools/clientcmd/loader_test.go @@ -26,7 +26,7 @@ import ( "strings" "testing" - "github.com/ghodss/yaml" + "sigs.k8s.io/yaml" "k8s.io/apimachinery/pkg/runtime" clientcmdapi "k8s.io/client-go/tools/clientcmd/api" @@ -201,11 +201,182 @@ func TestLoadingEmptyMaps(t *testing.T) { } } +func TestDuplicateClusterName(t *testing.T) { + configFile, _ := ioutil.TempFile("", "") + defer os.Remove(configFile.Name()) + + err := ioutil.WriteFile(configFile.Name(), []byte(` +kind: Config +apiVersion: v1 +clusters: +- cluster: + api-version: v1 + server: https://kubernetes.default.svc:443 + certificate-authority: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt + name: kubeconfig-cluster +- cluster: + api-version: v2 + server: https://test.example.server:443 + certificate-authority: /var/run/secrets/test.example.io/serviceaccount/ca.crt + name: kubeconfig-cluster +contexts: +- context: + cluster: kubeconfig-cluster + namespace: default + user: kubeconfig-user + name: kubeconfig-context +current-context: kubeconfig-context +users: +- name: kubeconfig-user + user: + tokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token +`), os.FileMode(0755)) + + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + + _, err = LoadFromFile(configFile.Name()) + if err == nil || !strings.Contains(err.Error(), + "error converting *[]NamedCluster into *map[string]*api.Cluster: duplicate name \"kubeconfig-cluster\" in list") { + t.Error("Expected error in loading duplicate cluster name, got none") + } +} + +func TestDuplicateContextName(t *testing.T) { + configFile, _ := ioutil.TempFile("", "") + defer os.Remove(configFile.Name()) + + err := ioutil.WriteFile(configFile.Name(), []byte(` +kind: Config +apiVersion: v1 +clusters: +- cluster: + api-version: v1 + server: https://kubernetes.default.svc:443 + certificate-authority: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt + name: kubeconfig-cluster +contexts: +- context: + cluster: kubeconfig-cluster + namespace: default + user: kubeconfig-user + name: kubeconfig-context +- context: + cluster: test-example-cluster + namespace: test-example + user: test-example-user + name: kubeconfig-context +current-context: kubeconfig-context +users: +- name: kubeconfig-user + user: + tokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token +`), os.FileMode(0755)) + + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + + _, err = LoadFromFile(configFile.Name()) + if err == nil || !strings.Contains(err.Error(), + "error converting *[]NamedContext into *map[string]*api.Context: duplicate name \"kubeconfig-context\" in list") { + t.Error("Expected error in loading duplicate context name, got none") + } +} + +func TestDuplicateUserName(t *testing.T) { + configFile, _ := ioutil.TempFile("", "") + defer os.Remove(configFile.Name()) + + err := ioutil.WriteFile(configFile.Name(), []byte(` +kind: Config +apiVersion: v1 +clusters: +- cluster: + api-version: v1 + server: https://kubernetes.default.svc:443 + certificate-authority: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt + name: kubeconfig-cluster +contexts: +- context: + cluster: kubeconfig-cluster + namespace: default + user: kubeconfig-user + name: kubeconfig-context +current-context: kubeconfig-context +users: +- name: kubeconfig-user + user: + tokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token +- name: kubeconfig-user + user: + tokenFile: /var/run/secrets/test.example.com/serviceaccount/token +`), os.FileMode(0755)) + + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + + _, err = LoadFromFile(configFile.Name()) + if err == nil || !strings.Contains(err.Error(), + "error converting *[]NamedAuthInfo into *map[string]*api.AuthInfo: duplicate name \"kubeconfig-user\" in list") { + t.Error("Expected error in loading duplicate user name, got none") + } +} + +func TestDuplicateExtensionName(t *testing.T) { + configFile, _ := ioutil.TempFile("", "") + defer os.Remove(configFile.Name()) + + err := ioutil.WriteFile(configFile.Name(), []byte(` +kind: Config +apiVersion: v1 +clusters: +- cluster: + api-version: v1 + server: https://kubernetes.default.svc:443 + certificate-authority: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt + name: kubeconfig-cluster +contexts: +- context: + cluster: kubeconfig-cluster + namespace: default + user: kubeconfig-user + name: kubeconfig-context +current-context: kubeconfig-context +users: +- name: kubeconfig-user + user: + tokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token +extensions: +- extension: + bytes: test + name: test-extension +- extension: + bytes: some-example + name: test-extension +`), os.FileMode(0755)) + + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + + _, err = LoadFromFile(configFile.Name()) + if err == nil || !strings.Contains(err.Error(), + "error converting *[]NamedExtension into *map[string]runtime.Object: duplicate name \"test-extension\" in list") { + t.Error("Expected error in loading duplicate extension name, got none") + } +} + func TestResolveRelativePaths(t *testing.T) { pathResolutionConfig1 := clientcmdapi.Config{ AuthInfos: map[string]*clientcmdapi.AuthInfo{ "relative-user-1": {ClientCertificate: "relative/client/cert", ClientKey: "../relative/client/key"}, "absolute-user-1": {ClientCertificate: "/absolute/client/cert", ClientKey: "/absolute/client/key"}, + "relative-cmd-1": {Exec: &clientcmdapi.ExecConfig{Command: "../relative/client/cmd"}}, + "absolute-cmd-1": {Exec: &clientcmdapi.ExecConfig{Command: "/absolute/client/cmd"}}, + "PATH-cmd-1": {Exec: &clientcmdapi.ExecConfig{Command: "cmd"}}, }, Clusters: map[string]*clientcmdapi.Cluster{ "relative-server-1": {CertificateAuthority: "../relative/ca"}, @@ -291,9 +462,21 @@ func TestResolveRelativePaths(t *testing.T) { matchStringArg(pathResolutionConfig2.AuthInfos["absolute-user-2"].ClientCertificate, authInfo.ClientCertificate, t) matchStringArg(pathResolutionConfig2.AuthInfos["absolute-user-2"].ClientKey, authInfo.ClientKey, t) } + if key == "relative-cmd-1" { + foundAuthInfoCount++ + matchStringArg(path.Join(configDir1, pathResolutionConfig1.AuthInfos[key].Exec.Command), authInfo.Exec.Command, t) + } + if key == "absolute-cmd-1" { + foundAuthInfoCount++ + matchStringArg(pathResolutionConfig1.AuthInfos[key].Exec.Command, authInfo.Exec.Command, t) + } + if key == "PATH-cmd-1" { + foundAuthInfoCount++ + matchStringArg(pathResolutionConfig1.AuthInfos[key].Exec.Command, authInfo.Exec.Command, t) + } } - if foundAuthInfoCount != 4 { - t.Errorf("Expected 4 users, found %v: %v", foundAuthInfoCount, mergedConfig.AuthInfos) + if foundAuthInfoCount != 7 { + t.Errorf("Expected 7 users, found %v: %v", foundAuthInfoCount, mergedConfig.AuthInfos) } } @@ -577,3 +760,30 @@ func Example_mergingEverythingNoConflicts() { // user: // token: red-token } + +func TestDeduplicate(t *testing.T) { + testCases := []struct { + src []string + expect []string + }{ + { + src: []string{"a", "b", "c", "d", "e", "f"}, + expect: []string{"a", "b", "c", "d", "e", "f"}, + }, + { + src: []string{"a", "b", "c", "b", "e", "f"}, + expect: []string{"a", "b", "c", "e", "f"}, + }, + { + src: []string{"a", "a", "b", "b", "c", "b"}, + expect: []string{"a", "b", "c"}, + }, + } + + for _, testCase := range testCases { + get := deduplicate(testCase.src) + if !reflect.DeepEqual(get, testCase.expect) { + t.Errorf("expect: %v, get: %v", testCase.expect, get) + } + } +} diff --git a/vendor/k8s.io/client-go/tools/clientcmd/merged_client_builder.go b/vendor/k8s.io/client-go/tools/clientcmd/merged_client_builder.go index 3f02111bd..76380db82 100644 --- a/vendor/k8s.io/client-go/tools/clientcmd/merged_client_builder.go +++ b/vendor/k8s.io/client-go/tools/clientcmd/merged_client_builder.go @@ -20,9 +20,8 @@ import ( "io" "sync" - "github.com/golang/glog" + "k8s.io/klog" - "k8s.io/api/core/v1" restclient "k8s.io/client-go/rest" clientcmdapi "k8s.io/client-go/tools/clientcmd/api" ) @@ -120,7 +119,7 @@ func (config *DeferredLoadingClientConfig) ClientConfig() (*restclient.Config, e // check for in-cluster configuration and use it if config.icc.Possible() { - glog.V(4).Infof("Using in-cluster configuration") + klog.V(4).Infof("Using in-cluster configuration") return config.icc.ClientConfig() } @@ -145,7 +144,7 @@ func (config *DeferredLoadingClientConfig) Namespace() (string, bool, error) { if len(ns) > 0 { // if we got a non-default namespace from the kubeconfig, use it - if ns != v1.NamespaceDefault { + if ns != "default" { return ns, false, nil } @@ -157,7 +156,7 @@ func (config *DeferredLoadingClientConfig) Namespace() (string, bool, error) { } } - glog.V(4).Infof("Using in-cluster namespace") + klog.V(4).Infof("Using in-cluster namespace") // allow the namespace from the service account token directory to be used. return config.icc.Namespace() diff --git a/vendor/k8s.io/client-go/tools/clientcmd/validation.go b/vendor/k8s.io/client-go/tools/clientcmd/validation.go index 4c7b15b78..629c0b30a 100644 --- a/vendor/k8s.io/client-go/tools/clientcmd/validation.go +++ b/vendor/k8s.io/client-go/tools/clientcmd/validation.go @@ -237,6 +237,25 @@ func validateAuthInfo(authInfoName string, authInfo clientcmdapi.AuthInfo) []err } } + if authInfo.Exec != nil { + if authInfo.AuthProvider != nil { + validationErrors = append(validationErrors, fmt.Errorf("authProvider cannot be provided in combination with an exec plugin for %s", authInfoName)) + } + if len(authInfo.Exec.Command) == 0 { + validationErrors = append(validationErrors, fmt.Errorf("command must be specified for %v to use exec authentication plugin", authInfoName)) + } + if len(authInfo.Exec.APIVersion) == 0 { + validationErrors = append(validationErrors, fmt.Errorf("apiVersion must be specified for %v to use exec authentication plugin", authInfoName)) + } + for _, v := range authInfo.Exec.Env { + if len(v.Name) == 0 { + validationErrors = append(validationErrors, fmt.Errorf("env variable name must be specified for %v to use exec authentication plugin", authInfoName)) + } else if len(v.Value) == 0 { + validationErrors = append(validationErrors, fmt.Errorf("env variable %s value must be specified for %v to use exec authentication plugin", v.Name, authInfoName)) + } + } + } + // authPath also provides information for the client to identify the server, so allow multiple auth methods in that case if (len(methods) > 1) && (!usingAuthPath) { validationErrors = append(validationErrors, fmt.Errorf("more than one authentication method found for %v; found %v, only one is allowed", authInfoName, methods)) diff --git a/vendor/k8s.io/client-go/tools/clientcmd/validation_test.go b/vendor/k8s.io/client-go/tools/clientcmd/validation_test.go index fcf86ab0a..4742b1a14 100644 --- a/vendor/k8s.io/client-go/tools/clientcmd/validation_test.go +++ b/vendor/k8s.io/client-go/tools/clientcmd/validation_test.go @@ -365,6 +365,106 @@ func TestValidateMultipleMethodsAuthInfo(t *testing.T) { test.testConfig(t) } +func TestValidateAuthInfoExec(t *testing.T) { + config := clientcmdapi.NewConfig() + config.AuthInfos["user"] = &clientcmdapi.AuthInfo{ + Exec: &clientcmdapi.ExecConfig{ + Command: "/bin/example", + APIVersion: "clientauthentication.k8s.io/v1alpha1", + Args: []string{"hello", "world"}, + Env: []clientcmdapi.ExecEnvVar{ + {Name: "foo", Value: "bar"}, + }, + }, + } + test := configValidationTest{ + config: config, + } + + test.testAuthInfo("user", t) + test.testConfig(t) +} + +func TestValidateAuthInfoExecNoVersion(t *testing.T) { + config := clientcmdapi.NewConfig() + config.AuthInfos["user"] = &clientcmdapi.AuthInfo{ + Exec: &clientcmdapi.ExecConfig{ + Command: "/bin/example", + }, + } + test := configValidationTest{ + config: config, + expectedErrorSubstring: []string{ + "apiVersion must be specified for user to use exec authentication plugin", + }, + } + + test.testAuthInfo("user", t) + test.testConfig(t) +} + +func TestValidateAuthInfoExecNoCommand(t *testing.T) { + config := clientcmdapi.NewConfig() + config.AuthInfos["user"] = &clientcmdapi.AuthInfo{ + Exec: &clientcmdapi.ExecConfig{ + APIVersion: "clientauthentication.k8s.io/v1alpha1", + }, + } + test := configValidationTest{ + config: config, + expectedErrorSubstring: []string{ + "command must be specified for user to use exec authentication plugin", + }, + } + + test.testAuthInfo("user", t) + test.testConfig(t) +} + +func TestValidateAuthInfoExecWithAuthProvider(t *testing.T) { + config := clientcmdapi.NewConfig() + config.AuthInfos["user"] = &clientcmdapi.AuthInfo{ + AuthProvider: &clientcmdapi.AuthProviderConfig{ + Name: "oidc", + }, + Exec: &clientcmdapi.ExecConfig{ + Command: "/bin/example", + APIVersion: "clientauthentication.k8s.io/v1alpha1", + }, + } + test := configValidationTest{ + config: config, + expectedErrorSubstring: []string{ + "authProvider cannot be provided in combination with an exec plugin for user", + }, + } + + test.testAuthInfo("user", t) + test.testConfig(t) +} + +func TestValidateAuthInfoExecInvalidEnv(t *testing.T) { + config := clientcmdapi.NewConfig() + config.AuthInfos["user"] = &clientcmdapi.AuthInfo{ + Exec: &clientcmdapi.ExecConfig{ + Command: "/bin/example", + APIVersion: "clientauthentication.k8s.io/v1alpha1", + Env: []clientcmdapi.ExecEnvVar{ + {Name: "foo"}, // No value + }, + }, + } + test := configValidationTest{ + config: config, + expectedErrorSubstring: []string{ + "env variable foo value must be specified for user to use exec authentication plugin", + }, + } + + test.testAuthInfo("user", t) + test.testConfig(t) +} + type configValidationTest struct { config *clientcmdapi.Config expectedErrorSubstring []string diff --git a/vendor/k8s.io/client-go/tools/leaderelection/BUILD b/vendor/k8s.io/client-go/tools/leaderelection/BUILD deleted file mode 100644 index 22e020d8c..000000000 --- a/vendor/k8s.io/client-go/tools/leaderelection/BUILD +++ /dev/null @@ -1,53 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_library( - name = "go_default_library", - srcs = ["leaderelection.go"], - importpath = "k8s.io/client-go/tools/leaderelection", - deps = [ - "//vendor/github.com/golang/glog:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", - "//vendor/k8s.io/client-go/tools/leaderelection/resourcelock:go_default_library", - ], -) - -go_test( - name = "go_default_test", - srcs = ["leaderelection_test.go"], - embed = [":go_default_library"], - deps = [ - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake:go_default_library", - "//vendor/k8s.io/client-go/testing:go_default_library", - "//vendor/k8s.io/client-go/tools/leaderelection/resourcelock:go_default_library", - "//vendor/k8s.io/client-go/tools/record:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/tools/leaderelection/resourcelock:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/tools/leaderelection/healthzadaptor.go b/vendor/k8s.io/client-go/tools/leaderelection/healthzadaptor.go new file mode 100644 index 000000000..b93537291 --- /dev/null +++ b/vendor/k8s.io/client-go/tools/leaderelection/healthzadaptor.go @@ -0,0 +1,69 @@ +/* +Copyright 2015 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package leaderelection + +import ( + "net/http" + "sync" + "time" +) + +// HealthzAdaptor associates the /healthz endpoint with the LeaderElection object. +// It helps deal with the /healthz endpoint being set up prior to the LeaderElection. +// This contains the code needed to act as an adaptor between the leader +// election code the health check code. It allows us to provide health +// status about the leader election. Most specifically about if the leader +// has failed to renew without exiting the process. In that case we should +// report not healthy and rely on the kubelet to take down the process. +type HealthzAdaptor struct { + pointerLock sync.Mutex + le *LeaderElector + timeout time.Duration +} + +// Name returns the name of the health check we are implementing. +func (l *HealthzAdaptor) Name() string { + return "leaderElection" +} + +// Check is called by the healthz endpoint handler. +// It fails (returns an error) if we own the lease but had not been able to renew it. +func (l *HealthzAdaptor) Check(req *http.Request) error { + l.pointerLock.Lock() + defer l.pointerLock.Unlock() + if l.le == nil { + return nil + } + return l.le.Check(l.timeout) +} + +// SetLeaderElection ties a leader election object to a HealthzAdaptor +func (l *HealthzAdaptor) SetLeaderElection(le *LeaderElector) { + l.pointerLock.Lock() + defer l.pointerLock.Unlock() + l.le = le +} + +// NewLeaderHealthzAdaptor creates a basic healthz adaptor to monitor a leader election. +// timeout determines the time beyond the lease expiry to be allowed for timeout. +// checks within the timeout period after the lease expires will still return healthy. +func NewLeaderHealthzAdaptor(timeout time.Duration) *HealthzAdaptor { + result := &HealthzAdaptor{ + timeout: timeout, + } + return result +} diff --git a/vendor/k8s.io/client-go/tools/leaderelection/healthzadaptor_test.go b/vendor/k8s.io/client-go/tools/leaderelection/healthzadaptor_test.go new file mode 100644 index 000000000..746d49130 --- /dev/null +++ b/vendor/k8s.io/client-go/tools/leaderelection/healthzadaptor_test.go @@ -0,0 +1,175 @@ +/* +Copyright 2015 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package leaderelection + +import ( + "fmt" + "testing" + "time" + + "k8s.io/apimachinery/pkg/util/clock" + rl "k8s.io/client-go/tools/leaderelection/resourcelock" + "net/http" +) + +type fakeLock struct { + identity string +} + +// Get is a dummy to allow us to have a fakeLock for testing. +func (fl *fakeLock) Get() (ler *rl.LeaderElectionRecord, err error) { + return nil, nil +} + +// Create is a dummy to allow us to have a fakeLock for testing. +func (fl *fakeLock) Create(ler rl.LeaderElectionRecord) error { + return nil +} + +// Update is a dummy to allow us to have a fakeLock for testing. +func (fl *fakeLock) Update(ler rl.LeaderElectionRecord) error { + return nil +} + +// RecordEvent is a dummy to allow us to have a fakeLock for testing. +func (fl *fakeLock) RecordEvent(string) {} + +// Identity is a dummy to allow us to have a fakeLock for testing. +func (fl *fakeLock) Identity() string { + return fl.identity +} + +// Describe is a dummy to allow us to have a fakeLock for testing. +func (fl *fakeLock) Describe() string { + return "Dummy implementation of lock for testing" +} + +// TestLeaderElectionHealthChecker tests that the healthcheck for leader election handles its edge cases. +func TestLeaderElectionHealthChecker(t *testing.T) { + current := time.Now() + req := &http.Request{} + + tests := []struct { + description string + expected error + adaptorTimeout time.Duration + elector *LeaderElector + }{ + { + description: "call check before leader elector initialized", + expected: nil, + adaptorTimeout: time.Second * 20, + elector: nil, + }, + { + description: "call check when the the lease is far expired", + expected: fmt.Errorf("failed election to renew leadership on lease %s", "foo"), + adaptorTimeout: time.Second * 20, + elector: &LeaderElector{ + config: LeaderElectionConfig{ + Lock: &fakeLock{identity: "healthTest"}, + LeaseDuration: time.Minute, + Name: "foo", + }, + observedRecord: rl.LeaderElectionRecord{ + HolderIdentity: "healthTest", + }, + observedTime: current, + clock: clock.NewFakeClock(current.Add(time.Hour)), + }, + }, + { + description: "call check when the the lease is far expired but held by another server", + expected: nil, + adaptorTimeout: time.Second * 20, + elector: &LeaderElector{ + config: LeaderElectionConfig{ + Lock: &fakeLock{identity: "healthTest"}, + LeaseDuration: time.Minute, + Name: "foo", + }, + observedRecord: rl.LeaderElectionRecord{ + HolderIdentity: "otherServer", + }, + observedTime: current, + clock: clock.NewFakeClock(current.Add(time.Hour)), + }, + }, + { + description: "call check when the the lease is not expired", + expected: nil, + adaptorTimeout: time.Second * 20, + elector: &LeaderElector{ + config: LeaderElectionConfig{ + Lock: &fakeLock{identity: "healthTest"}, + LeaseDuration: time.Minute, + Name: "foo", + }, + observedRecord: rl.LeaderElectionRecord{ + HolderIdentity: "healthTest", + }, + observedTime: current, + clock: clock.NewFakeClock(current), + }, + }, + { + description: "call check when the the lease is expired but inside the timeout", + expected: nil, + adaptorTimeout: time.Second * 20, + elector: &LeaderElector{ + config: LeaderElectionConfig{ + Lock: &fakeLock{identity: "healthTest"}, + LeaseDuration: time.Minute, + Name: "foo", + }, + observedRecord: rl.LeaderElectionRecord{ + HolderIdentity: "healthTest", + }, + observedTime: current, + clock: clock.NewFakeClock(current.Add(time.Minute).Add(time.Second)), + }, + }, + } + + for _, test := range tests { + adaptor := NewLeaderHealthzAdaptor(test.adaptorTimeout) + if adaptor.le != nil { + t.Errorf("[%s] leaderChecker started with a LeaderElector %v", test.description, adaptor.le) + } + if test.elector != nil { + test.elector.config.WatchDog = adaptor + adaptor.SetLeaderElection(test.elector) + if adaptor.le == nil { + t.Errorf("[%s] adaptor failed to set the LeaderElector", test.description) + } + } + err := adaptor.Check(req) + if test.expected == nil { + if err == nil { + continue + } + t.Errorf("[%s] called check, expected no error but received \"%v\"", test.description, err) + } else { + if err == nil { + t.Errorf("[%s] called check and failed to received the expected error \"%v\"", test.description, test.expected) + } + if err.Error() != test.expected.Error() { + t.Errorf("[%s] called check, expected %v, received %v", test.description, test.expected, err) + } + } + } +} diff --git a/vendor/k8s.io/client-go/tools/leaderelection/leaderelection.go b/vendor/k8s.io/client-go/tools/leaderelection/leaderelection.go index e41b420c9..2096a5996 100644 --- a/vendor/k8s.io/client-go/tools/leaderelection/leaderelection.go +++ b/vendor/k8s.io/client-go/tools/leaderelection/leaderelection.go @@ -49,17 +49,19 @@ limitations under the License. package leaderelection import ( + "context" "fmt" "reflect" "time" "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/clock" "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/apimachinery/pkg/util/wait" rl "k8s.io/client-go/tools/leaderelection/resourcelock" - "github.com/golang/glog" + "k8s.io/klog" ) const ( @@ -74,11 +76,22 @@ func NewLeaderElector(lec LeaderElectionConfig) (*LeaderElector, error) { if lec.RenewDeadline <= time.Duration(JitterFactor*float64(lec.RetryPeriod)) { return nil, fmt.Errorf("renewDeadline must be greater than retryPeriod*JitterFactor") } + if lec.LeaseDuration < 1 { + return nil, fmt.Errorf("leaseDuration must be greater than zero") + } + if lec.RenewDeadline < 1 { + return nil, fmt.Errorf("renewDeadline must be greater than zero") + } + if lec.RetryPeriod < 1 { + return nil, fmt.Errorf("retryPeriod must be greater than zero") + } + if lec.Lock == nil { return nil, fmt.Errorf("Lock must not be nil.") } return &LeaderElector{ config: lec, + clock: clock.RealClock{}, }, nil } @@ -100,6 +113,13 @@ type LeaderElectionConfig struct { // Callbacks are callbacks that are triggered during certain lifecycle // events of the LeaderElector Callbacks LeaderCallbacks + + // WatchDog is the associated health checker + // WatchDog may be null if its not needed/configured. + WatchDog *HealthzAdaptor + + // Name is the name of the resource lock for debugging + Name string } // LeaderCallbacks are callbacks that are triggered during certain @@ -109,7 +129,7 @@ type LeaderElectionConfig struct { // * OnChallenge() type LeaderCallbacks struct { // OnStartedLeading is called when a LeaderElector client starts leading - OnStartedLeading func(stop <-chan struct{}) + OnStartedLeading func(context.Context) // OnStoppedLeading is called when a LeaderElector client stops leading OnStoppedLeading func() // OnNewLeader is called when the client observes a leader that is @@ -119,10 +139,6 @@ type LeaderCallbacks struct { } // LeaderElector is a leader election client. -// -// possible future methods: -// * (le *LeaderElector) IsLeader() -// * (le *LeaderElector) GetLeader() type LeaderElector struct { config LeaderElectionConfig // internal bookkeeping @@ -132,29 +148,40 @@ type LeaderElector struct { // value observedRecord.HolderIdentity if the transition has // not yet been reported. reportedLeader string + + // clock is wrapper around time to allow for less flaky testing + clock clock.Clock + + // name is the name of the resource lock for debugging + name string } // Run starts the leader election loop -func (le *LeaderElector) Run() { +func (le *LeaderElector) Run(ctx context.Context) { defer func() { runtime.HandleCrash() le.config.Callbacks.OnStoppedLeading() }() - le.acquire() - stop := make(chan struct{}) - go le.config.Callbacks.OnStartedLeading(stop) - le.renew() - close(stop) + if !le.acquire(ctx) { + return // ctx signalled done + } + ctx, cancel := context.WithCancel(ctx) + defer cancel() + go le.config.Callbacks.OnStartedLeading(ctx) + le.renew(ctx) } // RunOrDie starts a client with the provided config or panics if the config // fails to validate. -func RunOrDie(lec LeaderElectionConfig) { +func RunOrDie(ctx context.Context, lec LeaderElectionConfig) { le, err := NewLeaderElector(lec) if err != nil { panic(err) } - le.Run() + if lec.WatchDog != nil { + lec.WatchDog.SetLeaderElection(le) + } + le.Run(ctx) } // GetLeader returns the identity of the last observed leader or returns the empty string if @@ -168,41 +195,60 @@ func (le *LeaderElector) IsLeader() bool { return le.observedRecord.HolderIdentity == le.config.Lock.Identity() } -// acquire loops calling tryAcquireOrRenew and returns immediately when tryAcquireOrRenew succeeds. -func (le *LeaderElector) acquire() { - stop := make(chan struct{}) +// acquire loops calling tryAcquireOrRenew and returns true immediately when tryAcquireOrRenew succeeds. +// Returns false if ctx signals done. +func (le *LeaderElector) acquire(ctx context.Context) bool { + ctx, cancel := context.WithCancel(ctx) + defer cancel() + succeeded := false desc := le.config.Lock.Describe() - glog.Infof("attempting to acquire leader lease %v...", desc) + klog.Infof("attempting to acquire leader lease %v...", desc) wait.JitterUntil(func() { - succeeded := le.tryAcquireOrRenew() + succeeded = le.tryAcquireOrRenew() le.maybeReportTransition() if !succeeded { - glog.V(4).Infof("failed to acquire lease %v", desc) + klog.V(4).Infof("failed to acquire lease %v", desc) return } le.config.Lock.RecordEvent("became leader") - glog.Infof("successfully acquired lease %v", desc) - close(stop) - }, le.config.RetryPeriod, JitterFactor, true, stop) + klog.Infof("successfully acquired lease %v", desc) + cancel() + }, le.config.RetryPeriod, JitterFactor, true, ctx.Done()) + return succeeded } -// renew loops calling tryAcquireOrRenew and returns immediately when tryAcquireOrRenew fails. -func (le *LeaderElector) renew() { - stop := make(chan struct{}) +// renew loops calling tryAcquireOrRenew and returns immediately when tryAcquireOrRenew fails or ctx signals done. +func (le *LeaderElector) renew(ctx context.Context) { + ctx, cancel := context.WithCancel(ctx) + defer cancel() wait.Until(func() { - err := wait.Poll(le.config.RetryPeriod, le.config.RenewDeadline, func() (bool, error) { - return le.tryAcquireOrRenew(), nil - }) + timeoutCtx, timeoutCancel := context.WithTimeout(ctx, le.config.RenewDeadline) + defer timeoutCancel() + err := wait.PollImmediateUntil(le.config.RetryPeriod, func() (bool, error) { + done := make(chan bool, 1) + go func() { + defer close(done) + done <- le.tryAcquireOrRenew() + }() + + select { + case <-timeoutCtx.Done(): + return false, fmt.Errorf("failed to tryAcquireOrRenew %s", timeoutCtx.Err()) + case result := <-done: + return result, nil + } + }, timeoutCtx.Done()) + le.maybeReportTransition() desc := le.config.Lock.Describe() if err == nil { - glog.V(4).Infof("successfully renewed lease %v", desc) + klog.V(5).Infof("successfully renewed lease %v", desc) return } le.config.Lock.RecordEvent("stopped leading") - glog.Infof("failed to renew lease %v: %v", desc, err) - close(stop) - }, 0, stop) + klog.Infof("failed to renew lease %v: %v", desc, err) + cancel() + }, le.config.RetryPeriod, ctx.Done()) } // tryAcquireOrRenew tries to acquire a leader lease if it is not already acquired, @@ -221,32 +267,32 @@ func (le *LeaderElector) tryAcquireOrRenew() bool { oldLeaderElectionRecord, err := le.config.Lock.Get() if err != nil { if !errors.IsNotFound(err) { - glog.Errorf("error retrieving resource lock %v: %v", le.config.Lock.Describe(), err) + klog.Errorf("error retrieving resource lock %v: %v", le.config.Lock.Describe(), err) return false } if err = le.config.Lock.Create(leaderElectionRecord); err != nil { - glog.Errorf("error initially creating leader election record: %v", err) + klog.Errorf("error initially creating leader election record: %v", err) return false } le.observedRecord = leaderElectionRecord - le.observedTime = time.Now() + le.observedTime = le.clock.Now() return true } // 2. Record obtained, check the Identity & Time if !reflect.DeepEqual(le.observedRecord, *oldLeaderElectionRecord) { le.observedRecord = *oldLeaderElectionRecord - le.observedTime = time.Now() + le.observedTime = le.clock.Now() } if le.observedTime.Add(le.config.LeaseDuration).After(now.Time) && - oldLeaderElectionRecord.HolderIdentity != le.config.Lock.Identity() { - glog.V(4).Infof("lock is held by %v and has not yet expired", oldLeaderElectionRecord.HolderIdentity) + !le.IsLeader() { + klog.V(4).Infof("lock is held by %v and has not yet expired", oldLeaderElectionRecord.HolderIdentity) return false } // 3. We're going to try to update. The leaderElectionRecord is set to it's default // here. Let's correct it before updating. - if oldLeaderElectionRecord.HolderIdentity == le.config.Lock.Identity() { + if le.IsLeader() { leaderElectionRecord.AcquireTime = oldLeaderElectionRecord.AcquireTime leaderElectionRecord.LeaderTransitions = oldLeaderElectionRecord.LeaderTransitions } else { @@ -255,20 +301,36 @@ func (le *LeaderElector) tryAcquireOrRenew() bool { // update the lock itself if err = le.config.Lock.Update(leaderElectionRecord); err != nil { - glog.Errorf("Failed to update lock: %v", err) + klog.Errorf("Failed to update lock: %v", err) return false } le.observedRecord = leaderElectionRecord - le.observedTime = time.Now() + le.observedTime = le.clock.Now() return true } -func (l *LeaderElector) maybeReportTransition() { - if l.observedRecord.HolderIdentity == l.reportedLeader { +func (le *LeaderElector) maybeReportTransition() { + if le.observedRecord.HolderIdentity == le.reportedLeader { return } - l.reportedLeader = l.observedRecord.HolderIdentity - if l.config.Callbacks.OnNewLeader != nil { - go l.config.Callbacks.OnNewLeader(l.reportedLeader) + le.reportedLeader = le.observedRecord.HolderIdentity + if le.config.Callbacks.OnNewLeader != nil { + go le.config.Callbacks.OnNewLeader(le.reportedLeader) } } + +// Check will determine if the current lease is expired by more than timeout. +func (le *LeaderElector) Check(maxTolerableExpiredLease time.Duration) error { + if !le.IsLeader() { + // Currently not concerned with the case that we are hot standby + return nil + } + // If we are more than timeout seconds after the lease duration that is past the timeout + // on the lease renew. Time to start reporting ourselves as unhealthy. We should have + // died but conditions like deadlock can prevent this. (See #70819) + if le.clock.Since(le.observedTime) > le.config.LeaseDuration+maxTolerableExpiredLease { + return fmt.Errorf("failed election to renew leadership on lease %s", le.config.Name) + } + + return nil +} diff --git a/vendor/k8s.io/client-go/tools/leaderelection/leaderelection_test.go b/vendor/k8s.io/client-go/tools/leaderelection/leaderelection_test.go index e99cf57af..842aebdab 100644 --- a/vendor/k8s.io/client-go/tools/leaderelection/leaderelection_test.go +++ b/vendor/k8s.io/client-go/tools/leaderelection/leaderelection_test.go @@ -26,6 +26,7 @@ import ( "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/clock" fakecorev1 "k8s.io/client-go/kubernetes/typed/core/v1/fake" core "k8s.io/client-go/testing" rl "k8s.io/client-go/tools/leaderelection/resourcelock" @@ -257,6 +258,7 @@ func testTryAcquireOrRenew(t *testing.T, objectType string) { config: lec, observedRecord: test.observedRecord, observedTime: test.observedTime, + clock: clock.RealClock{}, } if test.expectSuccess != le.tryAcquireOrRenew() { diff --git a/vendor/k8s.io/client-go/tools/leaderelection/resourcelock/BUILD b/vendor/k8s.io/client-go/tools/leaderelection/resourcelock/BUILD deleted file mode 100644 index 8a9f8104f..000000000 --- a/vendor/k8s.io/client-go/tools/leaderelection/resourcelock/BUILD +++ /dev/null @@ -1,35 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "configmaplock.go", - "endpointslock.go", - "interface.go", - ], - importpath = "k8s.io/client-go/tools/leaderelection/resourcelock", - deps = [ - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/core/v1:go_default_library", - "//vendor/k8s.io/client-go/tools/record:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/tools/leaderelection/resourcelock/configmaplock.go b/vendor/k8s.io/client-go/tools/leaderelection/resourcelock/configmaplock.go index 4ff595603..c12daad02 100644 --- a/vendor/k8s.io/client-go/tools/leaderelection/resourcelock/configmaplock.go +++ b/vendor/k8s.io/client-go/tools/leaderelection/resourcelock/configmaplock.go @@ -80,7 +80,7 @@ func (cml *ConfigMapLock) Create(ler LeaderElectionRecord) error { // Update will update an existing annotation on a given resource. func (cml *ConfigMapLock) Update(ler LeaderElectionRecord) error { if cml.cm == nil { - return errors.New("endpoint not initialized, call get or create first") + return errors.New("configmap not initialized, call get or create first") } recordBytes, err := json.Marshal(ler) if err != nil { diff --git a/vendor/k8s.io/client-go/tools/metrics/BUILD b/vendor/k8s.io/client-go/tools/metrics/BUILD deleted file mode 100644 index 7b06e0f96..000000000 --- a/vendor/k8s.io/client-go/tools/metrics/BUILD +++ /dev/null @@ -1,25 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = ["metrics.go"], - importpath = "k8s.io/client-go/tools/metrics", -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/tools/pager/BUILD b/vendor/k8s.io/client-go/tools/pager/BUILD deleted file mode 100644 index 4d07429af..000000000 --- a/vendor/k8s.io/client-go/tools/pager/BUILD +++ /dev/null @@ -1,49 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_library( - name = "go_default_library", - srcs = ["pager.go"], - importpath = "k8s.io/client-go/tools/pager", - deps = [ - "//vendor/golang.org/x/net/context:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/internalversion:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) - -go_test( - name = "go_default_test", - srcs = ["pager_test.go"], - embed = [":go_default_library"], - deps = [ - "//vendor/golang.org/x/net/context:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/internalversion:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - ], -) diff --git a/vendor/k8s.io/client-go/tools/pager/pager.go b/vendor/k8s.io/client-go/tools/pager/pager.go index 2e0874e0e..74ea3586a 100644 --- a/vendor/k8s.io/client-go/tools/pager/pager.go +++ b/vendor/k8s.io/client-go/tools/pager/pager.go @@ -17,10 +17,9 @@ limitations under the License. package pager import ( + "context" "fmt" - "golang.org/x/net/context" - "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/api/meta" metainternalversion "k8s.io/apimachinery/pkg/apis/meta/internalversion" diff --git a/vendor/k8s.io/client-go/tools/pager/pager_test.go b/vendor/k8s.io/client-go/tools/pager/pager_test.go index b905fc1fb..ae517cab2 100644 --- a/vendor/k8s.io/client-go/tools/pager/pager_test.go +++ b/vendor/k8s.io/client-go/tools/pager/pager_test.go @@ -17,11 +17,11 @@ limitations under the License. package pager import ( + "context" "fmt" "reflect" "testing" - "golang.org/x/net/context" "k8s.io/apimachinery/pkg/api/errors" metainternalversion "k8s.io/apimachinery/pkg/apis/meta/internalversion" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" diff --git a/vendor/k8s.io/client-go/tools/portforward/BUILD b/vendor/k8s.io/client-go/tools/portforward/BUILD deleted file mode 100644 index e2fb01e73..000000000 --- a/vendor/k8s.io/client-go/tools/portforward/BUILD +++ /dev/null @@ -1,41 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_test( - name = "go_default_test", - srcs = ["portforward_test.go"], - embed = [":go_default_library"], - deps = ["//vendor/k8s.io/apimachinery/pkg/util/httpstream:go_default_library"], -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "portforward.go", - ], - importpath = "k8s.io/client-go/tools/portforward", - deps = [ - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/httpstream:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/tools/portforward/portforward.go b/vendor/k8s.io/client-go/tools/portforward/portforward.go index 9d7936e7c..0e9b369a9 100644 --- a/vendor/k8s.io/client-go/tools/portforward/portforward.go +++ b/vendor/k8s.io/client-go/tools/portforward/portforward.go @@ -39,8 +39,9 @@ const PortForwardProtocolV1Name = "portforward.k8s.io" // PortForwarder knows how to listen for local connections and forward them to // a remote pod via an upgraded HTTP request. type PortForwarder struct { - ports []ForwardedPort - stopChan <-chan struct{} + addresses []listenAddress + ports []ForwardedPort + stopChan <-chan struct{} dialer httpstream.Dialer streamConn httpstream.Connection @@ -110,8 +111,52 @@ func parsePorts(ports []string) ([]ForwardedPort, error) { return forwards, nil } -// New creates a new PortForwarder. +type listenAddress struct { + address string + protocol string + failureMode string +} + +func parseAddresses(addressesToParse []string) ([]listenAddress, error) { + var addresses []listenAddress + parsed := make(map[string]listenAddress) + for _, address := range addressesToParse { + if address == "localhost" { + ip := listenAddress{address: "127.0.0.1", protocol: "tcp4", failureMode: "all"} + parsed[ip.address] = ip + ip = listenAddress{address: "::1", protocol: "tcp6", failureMode: "all"} + parsed[ip.address] = ip + } else if net.ParseIP(address).To4() != nil { + parsed[address] = listenAddress{address: address, protocol: "tcp4", failureMode: "any"} + } else if net.ParseIP(address) != nil { + parsed[address] = listenAddress{address: address, protocol: "tcp6", failureMode: "any"} + } else { + return nil, fmt.Errorf("%s is not a valid IP", address) + } + } + addresses = make([]listenAddress, len(parsed)) + id := 0 + for _, v := range parsed { + addresses[id] = v + id++ + } + return addresses, nil +} + +// New creates a new PortForwarder with localhost listen addresses. func New(dialer httpstream.Dialer, ports []string, stopChan <-chan struct{}, readyChan chan struct{}, out, errOut io.Writer) (*PortForwarder, error) { + return NewOnAddresses(dialer, []string{"localhost"}, ports, stopChan, readyChan, out, errOut) +} + +// NewOnAddresses creates a new PortForwarder with custom listen addresses. +func NewOnAddresses(dialer httpstream.Dialer, addresses []string, ports []string, stopChan <-chan struct{}, readyChan chan struct{}, out, errOut io.Writer) (*PortForwarder, error) { + if len(addresses) == 0 { + return nil, errors.New("You must specify at least 1 address") + } + parsedAddresses, err := parseAddresses(addresses) + if err != nil { + return nil, err + } if len(ports) == 0 { return nil, errors.New("You must specify at least 1 port") } @@ -120,12 +165,13 @@ func New(dialer httpstream.Dialer, ports []string, stopChan <-chan struct{}, rea return nil, err } return &PortForwarder{ - dialer: dialer, - ports: parsedPorts, - stopChan: stopChan, - Ready: readyChan, - out: out, - errOut: errOut, + dialer: dialer, + addresses: parsedAddresses, + ports: parsedPorts, + stopChan: stopChan, + Ready: readyChan, + out: out, + errOut: errOut, }, nil } @@ -181,13 +227,26 @@ func (pf *PortForwarder) forward() error { return nil } -// listenOnPort delegates tcp4 and tcp6 listener creation and waits for connections on both of these addresses. -// If both listener creation fail, an error is raised. +// listenOnPort delegates listener creation and waits for connections on requested bind addresses. +// An error is raised based on address groups (default and localhost) and their failure modes func (pf *PortForwarder) listenOnPort(port *ForwardedPort) error { - errTcp4 := pf.listenOnPortAndAddress(port, "tcp4", "127.0.0.1") - errTcp6 := pf.listenOnPortAndAddress(port, "tcp6", "::1") - if errTcp4 != nil && errTcp6 != nil { - return fmt.Errorf("All listeners failed to create with the following errors: %s, %s", errTcp4, errTcp6) + var errors []error + failCounters := make(map[string]int, 2) + successCounters := make(map[string]int, 2) + for _, addr := range pf.addresses { + err := pf.listenOnPortAndAddress(port, addr.protocol, addr.address) + if err != nil { + errors = append(errors, err) + failCounters[addr.failureMode]++ + } else { + successCounters[addr.failureMode]++ + } + } + if successCounters["all"] == 0 && failCounters["all"] > 0 { + return fmt.Errorf("%s: %v", "Listeners failed to create with the following errors", errors) + } + if failCounters["any"] > 0 { + return fmt.Errorf("%s: %v", "Listeners failed to create with the following errors", errors) } return nil } @@ -216,6 +275,7 @@ func (pf *PortForwarder) getListener(protocol string, hostname string, port *For localPortUInt, err := strconv.ParseUint(localPort, 10, 16) if err != nil { + fmt.Fprintf(pf.out, "Failed to forward from %s:%d -> %d\n", hostname, localPortUInt, port.Remote) return nil, fmt.Errorf("Error parsing local port: %s from %s (%s)", err, listenerAddress, host) } port.Local = uint16(localPortUInt) @@ -340,3 +400,20 @@ func (pf *PortForwarder) Close() { } } } + +// GetPorts will return the ports that were forwarded; this can be used to +// retrieve the locally-bound port in cases where the input was port 0. This +// function will signal an error if the Ready channel is nil or if the +// listeners are not ready yet; this function will succeed after the Ready +// channel has been closed. +func (pf *PortForwarder) GetPorts() ([]ForwardedPort, error) { + if pf.Ready == nil { + return nil, fmt.Errorf("no Ready channel provided") + } + select { + case <-pf.Ready: + return pf.ports, nil + default: + return nil, fmt.Errorf("listeners not ready") + } +} diff --git a/vendor/k8s.io/client-go/tools/portforward/portforward_test.go b/vendor/k8s.io/client-go/tools/portforward/portforward_test.go index 2abbf16f2..ff2401e76 100644 --- a/vendor/k8s.io/client-go/tools/portforward/portforward_test.go +++ b/vendor/k8s.io/client-go/tools/portforward/portforward_test.go @@ -20,6 +20,7 @@ import ( "net" "os" "reflect" + "sort" "strings" "testing" @@ -40,23 +41,52 @@ func (d *fakeDialer) Dial(protocols ...string) (httpstream.Connection, string, e func TestParsePortsAndNew(t *testing.T) { tests := []struct { - input []string - expected []ForwardedPort - expectParseError bool - expectNewError bool + input []string + addresses []string + expectedPorts []ForwardedPort + expectedAddresses []listenAddress + expectPortParseError bool + expectAddressParseError bool + expectNewError bool }{ {input: []string{}, expectNewError: true}, - {input: []string{"a"}, expectParseError: true, expectNewError: true}, - {input: []string{":a"}, expectParseError: true, expectNewError: true}, - {input: []string{"-1"}, expectParseError: true, expectNewError: true}, - {input: []string{"65536"}, expectParseError: true, expectNewError: true}, - {input: []string{"0"}, expectParseError: true, expectNewError: true}, - {input: []string{"0:0"}, expectParseError: true, expectNewError: true}, - {input: []string{"a:5000"}, expectParseError: true, expectNewError: true}, - {input: []string{"5000:a"}, expectParseError: true, expectNewError: true}, + {input: []string{"a"}, expectPortParseError: true, expectAddressParseError: false, expectNewError: true}, + {input: []string{":a"}, expectPortParseError: true, expectAddressParseError: false, expectNewError: true}, + {input: []string{"-1"}, expectPortParseError: true, expectAddressParseError: false, expectNewError: true}, + {input: []string{"65536"}, expectPortParseError: true, expectAddressParseError: false, expectNewError: true}, + {input: []string{"0"}, expectPortParseError: true, expectAddressParseError: false, expectNewError: true}, + {input: []string{"0:0"}, expectPortParseError: true, expectAddressParseError: false, expectNewError: true}, + {input: []string{"a:5000"}, expectPortParseError: true, expectAddressParseError: false, expectNewError: true}, + {input: []string{"5000:a"}, expectPortParseError: true, expectAddressParseError: false, expectNewError: true}, + {input: []string{"5000:5000"}, addresses: []string{"127.0.0.257"}, expectPortParseError: false, expectAddressParseError: true, expectNewError: true}, + {input: []string{"5000:5000"}, addresses: []string{"::g"}, expectPortParseError: false, expectAddressParseError: true, expectNewError: true}, + {input: []string{"5000:5000"}, addresses: []string{"domain.invalid"}, expectPortParseError: false, expectAddressParseError: true, expectNewError: true}, { - input: []string{"5000", "5000:5000", "8888:5000", "5000:8888", ":5000", "0:5000"}, - expected: []ForwardedPort{ + input: []string{"5000:5000"}, + addresses: []string{"localhost"}, + expectedPorts: []ForwardedPort{ + {5000, 5000}, + }, + expectedAddresses: []listenAddress{ + {protocol: "tcp4", address: "127.0.0.1", failureMode: "all"}, + {protocol: "tcp6", address: "::1", failureMode: "all"}, + }, + }, + { + input: []string{"5000:5000"}, + addresses: []string{"localhost", "127.0.0.1"}, + expectedPorts: []ForwardedPort{ + {5000, 5000}, + }, + expectedAddresses: []listenAddress{ + {protocol: "tcp4", address: "127.0.0.1", failureMode: "any"}, + {protocol: "tcp6", address: "::1", failureMode: "all"}, + }, + }, + { + input: []string{"5000", "5000:5000", "8888:5000", "5000:8888", ":5000", "0:5000"}, + addresses: []string{"127.0.0.1", "::1"}, + expectedPorts: []ForwardedPort{ {5000, 5000}, {5000, 5000}, {8888, 5000}, @@ -64,34 +94,63 @@ func TestParsePortsAndNew(t *testing.T) { {0, 5000}, {0, 5000}, }, + expectedAddresses: []listenAddress{ + {protocol: "tcp4", address: "127.0.0.1", failureMode: "any"}, + {protocol: "tcp6", address: "::1", failureMode: "any"}, + }, }, } for i, test := range tests { - parsed, err := parsePorts(test.input) + parsedPorts, err := parsePorts(test.input) haveError := err != nil - if e, a := test.expectParseError, haveError; e != a { + if e, a := test.expectPortParseError, haveError; e != a { t.Fatalf("%d: parsePorts: error expected=%t, got %t: %s", i, e, a, err) } + // default to localhost + if len(test.addresses) == 0 && len(test.expectedAddresses) == 0 { + test.addresses = []string{"localhost"} + test.expectedAddresses = []listenAddress{{protocol: "tcp4", address: "127.0.0.1"}, {protocol: "tcp6", address: "::1"}} + } + // assert address parser + parsedAddresses, err := parseAddresses(test.addresses) + haveError = err != nil + if e, a := test.expectAddressParseError, haveError; e != a { + t.Fatalf("%d: parseAddresses: error expected=%t, got %t: %s", i, e, a, err) + } + dialer := &fakeDialer{} expectedStopChan := make(chan struct{}) readyChan := make(chan struct{}) - pf, err := New(dialer, test.input, expectedStopChan, readyChan, os.Stdout, os.Stderr) + + var pf *PortForwarder + if len(test.addresses) > 0 { + pf, err = NewOnAddresses(dialer, test.addresses, test.input, expectedStopChan, readyChan, os.Stdout, os.Stderr) + } else { + pf, err = New(dialer, test.input, expectedStopChan, readyChan, os.Stdout, os.Stderr) + } haveError = err != nil if e, a := test.expectNewError, haveError; e != a { t.Fatalf("%d: New: error expected=%t, got %t: %s", i, e, a, err) } - if test.expectParseError || test.expectNewError { + if test.expectPortParseError || test.expectAddressParseError || test.expectNewError { continue } - for pi, expectedPort := range test.expected { - if e, a := expectedPort.Local, parsed[pi].Local; e != a { + sort.Slice(test.expectedAddresses, func(i, j int) bool { return test.expectedAddresses[i].address < test.expectedAddresses[j].address }) + sort.Slice(parsedAddresses, func(i, j int) bool { return parsedAddresses[i].address < parsedAddresses[j].address }) + + if !reflect.DeepEqual(test.expectedAddresses, parsedAddresses) { + t.Fatalf("%d: expectedAddresses: %v, got: %v", i, test.expectedAddresses, parsedAddresses) + } + + for pi, expectedPort := range test.expectedPorts { + if e, a := expectedPort.Local, parsedPorts[pi].Local; e != a { t.Fatalf("%d: local expected: %d, got: %d", i, e, a) } - if e, a := expectedPort.Remote, parsed[pi].Remote; e != a { + if e, a := expectedPort.Remote, parsedPorts[pi].Remote; e != a { t.Fatalf("%d: remote expected: %d, got: %d", i, e, a) } } @@ -99,8 +158,17 @@ func TestParsePortsAndNew(t *testing.T) { if dialer.dialed { t.Fatalf("%d: expected not dialed", i) } - if e, a := test.expected, pf.ports; !reflect.DeepEqual(e, a) { - t.Fatalf("%d: ports: expected %#v, got %#v", i, e, a) + if _, portErr := pf.GetPorts(); portErr == nil { + t.Fatalf("%d: GetPorts: error expected but got nil", i) + } + + // mock-signal the Ready channel + close(readyChan) + + if ports, portErr := pf.GetPorts(); portErr != nil { + t.Fatalf("%d: GetPorts: unable to retrieve ports: %s", i, portErr) + } else if !reflect.DeepEqual(test.expectedPorts, ports) { + t.Fatalf("%d: ports: expected %#v, got %#v", i, test.expectedPorts, ports) } if e, a := expectedStopChan, pf.stopChan; e != a { t.Fatalf("%d: stopChan: expected %#v, got %#v", i, e, a) diff --git a/vendor/k8s.io/client-go/tools/record/BUILD b/vendor/k8s.io/client-go/tools/record/BUILD deleted file mode 100644 index 0799afe7e..000000000 --- a/vendor/k8s.io/client-go/tools/record/BUILD +++ /dev/null @@ -1,68 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_test( - name = "go_default_test", - srcs = [ - "event_test.go", - "events_cache_test.go", - ], - embed = [":go_default_library"], - deps = [ - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/clock:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/diff:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/strategicpatch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/tools/reference:go_default_library", - ], -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "event.go", - "events_cache.go", - "fake.go", - ], - importpath = "k8s.io/client-go/tools/record", - deps = [ - "//vendor/github.com/golang/glog:go_default_library", - "//vendor/github.com/golang/groupcache/lru:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/clock:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/strategicpatch:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/tools/reference:go_default_library", - "//vendor/k8s.io/client-go/util/flowcontrol:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/tools/record/event.go b/vendor/k8s.io/client-go/tools/record/event.go index b5ec44650..2ee69589c 100644 --- a/vendor/k8s.io/client-go/tools/record/event.go +++ b/vendor/k8s.io/client-go/tools/record/event.go @@ -33,7 +33,7 @@ import ( "net/http" - "github.com/golang/glog" + "k8s.io/klog" ) const maxTriesPerEvent = 12 @@ -72,6 +72,9 @@ type EventRecorder interface { // PastEventf is just like Eventf, but with an option to specify the event's 'timestamp' field. PastEventf(object runtime.Object, timestamp metav1.Time, eventtype, reason, messageFmt string, args ...interface{}) + + // AnnotatedEventf is just like eventf, but with annotations attached + AnnotatedEventf(object runtime.Object, annotations map[string]string, eventtype, reason, messageFmt string, args ...interface{}) } // EventBroadcaster knows how to receive events and send them to any EventSink, watcher, or log. @@ -141,7 +144,7 @@ func recordToSink(sink EventSink, event *v1.Event, eventCorrelator *EventCorrela } tries++ if tries >= maxTriesPerEvent { - glog.Errorf("Unable to write event '%#v' (retry limit exceeded!)", event) + klog.Errorf("Unable to write event '%#v' (retry limit exceeded!)", event) break } // Randomize the first sleep so that various clients won't all be @@ -191,13 +194,13 @@ func recordEvent(sink EventSink, event *v1.Event, patch []byte, updateExistingEv switch err.(type) { case *restclient.RequestConstructionError: // We will construct the request the same next time, so don't keep trying. - glog.Errorf("Unable to construct event '%#v': '%v' (will not retry!)", event, err) + klog.Errorf("Unable to construct event '%#v': '%v' (will not retry!)", event, err) return true case *errors.StatusError: if errors.IsAlreadyExists(err) { - glog.V(5).Infof("Server rejected event '%#v': '%v' (will not retry!)", event, err) + klog.V(5).Infof("Server rejected event '%#v': '%v' (will not retry!)", event, err) } else { - glog.Errorf("Server rejected event '%#v': '%v' (will not retry!)", event, err) + klog.Errorf("Server rejected event '%#v': '%v' (will not retry!)", event, err) } return true case *errors.UnexpectedObjectError: @@ -206,7 +209,7 @@ func recordEvent(sink EventSink, event *v1.Event, patch []byte, updateExistingEv default: // This case includes actual http transport errors. Go ahead and retry. } - glog.Errorf("Unable to write event: '%v' (may retry after sleeping)", err) + klog.Errorf("Unable to write event: '%v' (may retry after sleeping)", err) return false } @@ -225,11 +228,7 @@ func (eventBroadcaster *eventBroadcasterImpl) StartEventWatcher(eventHandler fun watcher := eventBroadcaster.Watch() go func() { defer utilruntime.HandleCrash() - for { - watchEvent, open := <-watcher.ResultChan() - if !open { - return - } + for watchEvent := range watcher.ResultChan() { event, ok := watchEvent.Object.(*v1.Event) if !ok { // This is all local, so there's no reason this should @@ -254,19 +253,19 @@ type recorderImpl struct { clock clock.Clock } -func (recorder *recorderImpl) generateEvent(object runtime.Object, timestamp metav1.Time, eventtype, reason, message string) { +func (recorder *recorderImpl) generateEvent(object runtime.Object, annotations map[string]string, timestamp metav1.Time, eventtype, reason, message string) { ref, err := ref.GetReference(recorder.scheme, object) if err != nil { - glog.Errorf("Could not construct reference to: '%#v' due to: '%v'. Will not report event: '%v' '%v' '%v'", object, err, eventtype, reason, message) + klog.Errorf("Could not construct reference to: '%#v' due to: '%v'. Will not report event: '%v' '%v' '%v'", object, err, eventtype, reason, message) return } if !validateEventType(eventtype) { - glog.Errorf("Unsupported event type: '%v'", eventtype) + klog.Errorf("Unsupported event type: '%v'", eventtype) return } - event := recorder.makeEvent(ref, eventtype, reason, message) + event := recorder.makeEvent(ref, annotations, eventtype, reason, message) event.Source = recorder.source go func() { @@ -285,7 +284,7 @@ func validateEventType(eventtype string) bool { } func (recorder *recorderImpl) Event(object runtime.Object, eventtype, reason, message string) { - recorder.generateEvent(object, metav1.Now(), eventtype, reason, message) + recorder.generateEvent(object, nil, metav1.Now(), eventtype, reason, message) } func (recorder *recorderImpl) Eventf(object runtime.Object, eventtype, reason, messageFmt string, args ...interface{}) { @@ -293,10 +292,14 @@ func (recorder *recorderImpl) Eventf(object runtime.Object, eventtype, reason, m } func (recorder *recorderImpl) PastEventf(object runtime.Object, timestamp metav1.Time, eventtype, reason, messageFmt string, args ...interface{}) { - recorder.generateEvent(object, timestamp, eventtype, reason, fmt.Sprintf(messageFmt, args...)) + recorder.generateEvent(object, nil, timestamp, eventtype, reason, fmt.Sprintf(messageFmt, args...)) } -func (recorder *recorderImpl) makeEvent(ref *v1.ObjectReference, eventtype, reason, message string) *v1.Event { +func (recorder *recorderImpl) AnnotatedEventf(object runtime.Object, annotations map[string]string, eventtype, reason, messageFmt string, args ...interface{}) { + recorder.generateEvent(object, annotations, metav1.Now(), eventtype, reason, fmt.Sprintf(messageFmt, args...)) +} + +func (recorder *recorderImpl) makeEvent(ref *v1.ObjectReference, annotations map[string]string, eventtype, reason, message string) *v1.Event { t := metav1.Time{Time: recorder.clock.Now()} namespace := ref.Namespace if namespace == "" { @@ -304,8 +307,9 @@ func (recorder *recorderImpl) makeEvent(ref *v1.ObjectReference, eventtype, reas } return &v1.Event{ ObjectMeta: metav1.ObjectMeta{ - Name: fmt.Sprintf("%v.%x", ref.Name, t.UnixNano()), - Namespace: namespace, + Name: fmt.Sprintf("%v.%x", ref.Name, t.UnixNano()), + Namespace: namespace, + Annotations: annotations, }, InvolvedObject: *ref, Reason: reason, diff --git a/vendor/k8s.io/client-go/tools/record/events_cache.go b/vendor/k8s.io/client-go/tools/record/events_cache.go index 6ac767c9f..a42084f3a 100644 --- a/vendor/k8s.io/client-go/tools/record/events_cache.go +++ b/vendor/k8s.io/client-go/tools/record/events_cache.go @@ -84,11 +84,6 @@ func getSpamKey(event *v1.Event) string { // EventFilterFunc is a function that returns true if the event should be skipped type EventFilterFunc func(event *v1.Event) bool -// DefaultEventFilterFunc returns false for all incoming events -func DefaultEventFilterFunc(event *v1.Event) bool { - return false -} - // EventSourceObjectSpamFilter is responsible for throttling // the amount of events a source and object can produce. type EventSourceObjectSpamFilter struct { diff --git a/vendor/k8s.io/client-go/tools/record/events_cache_test.go b/vendor/k8s.io/client-go/tools/record/events_cache_test.go index 6ccd16d82..8cb4a39e8 100644 --- a/vendor/k8s.io/client-go/tools/record/events_cache_test.go +++ b/vendor/k8s.io/client-go/tools/record/events_cache_test.go @@ -127,14 +127,6 @@ func validateEvent(messagePrefix string, actualEvent *v1.Event, expectedEvent *v return actualEvent, nil } -// TestDefaultEventFilterFunc ensures that no events are filtered -func TestDefaultEventFilterFunc(t *testing.T) { - event := makeEvent("end-of-world", "it was fun", makeObjectReference("Pod", "pod1", "other")) - if DefaultEventFilterFunc(&event) { - t.Fatalf("DefaultEventFilterFunc should always return false") - } -} - // TestEventAggregatorByReasonFunc ensures that two events are aggregated if they vary only by event.message func TestEventAggregatorByReasonFunc(t *testing.T) { event1 := makeEvent("end-of-world", "it was fun", makeObjectReference("Pod", "pod1", "other")) diff --git a/vendor/k8s.io/client-go/tools/record/fake.go b/vendor/k8s.io/client-go/tools/record/fake.go index c0e8eedbb..6e031daaf 100644 --- a/vendor/k8s.io/client-go/tools/record/fake.go +++ b/vendor/k8s.io/client-go/tools/record/fake.go @@ -45,6 +45,10 @@ func (f *FakeRecorder) Eventf(object runtime.Object, eventtype, reason, messageF func (f *FakeRecorder) PastEventf(object runtime.Object, timestamp metav1.Time, eventtype, reason, messageFmt string, args ...interface{}) { } +func (f *FakeRecorder) AnnotatedEventf(object runtime.Object, annotations map[string]string, eventtype, reason, messageFmt string, args ...interface{}) { + f.Eventf(object, eventtype, reason, messageFmt, args) +} + // NewFakeRecorder creates new fake event recorder with event channel with // buffer of given size. func NewFakeRecorder(bufferSize int) *FakeRecorder { diff --git a/vendor/k8s.io/client-go/tools/reference/BUILD b/vendor/k8s.io/client-go/tools/reference/BUILD deleted file mode 100644 index 47da958ab..000000000 --- a/vendor/k8s.io/client-go/tools/reference/BUILD +++ /dev/null @@ -1,31 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = ["ref.go"], - importpath = "k8s.io/client-go/tools/reference", - deps = [ - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/tools/reference/ref.go b/vendor/k8s.io/client-go/tools/reference/ref.go index 58b60fd5d..573d948a9 100644 --- a/vendor/k8s.io/client-go/tools/reference/ref.go +++ b/vendor/k8s.io/client-go/tools/reference/ref.go @@ -86,10 +86,14 @@ func GetReference(scheme *runtime.Scheme, obj runtime.Object) (*v1.ObjectReferen } // example paths: ///* parts := strings.Split(selfLinkUrl.Path, "/") - if len(parts) < 3 { + if len(parts) < 4 { return nil, fmt.Errorf("unexpected self link format: '%v'; got version '%v'", selfLink, version) } - version = parts[2] + if parts[1] == "api" { + version = parts[2] + } else { + version = parts[2] + "/" + parts[3] + } } // only has list metadata diff --git a/vendor/k8s.io/client-go/tools/reference/ref_test.go b/vendor/k8s.io/client-go/tools/reference/ref_test.go new file mode 100644 index 000000000..b0cf06a97 --- /dev/null +++ b/vendor/k8s.io/client-go/tools/reference/ref_test.go @@ -0,0 +1,72 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package reference + +import ( + "testing" + + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +type TestRuntimeObj struct { + metav1.TypeMeta + metav1.ObjectMeta +} + +func (o *TestRuntimeObj) DeepCopyObject() runtime.Object { + panic("die") +} + +func TestGetReferenceRefVersion(t *testing.T) { + tests := []struct { + name string + input *TestRuntimeObj + expectedRefVersion string + }{ + { + name: "api from selflink", + input: &TestRuntimeObj{ + ObjectMeta: metav1.ObjectMeta{SelfLink: "/api/v1/namespaces"}, + }, + expectedRefVersion: "v1", + }, + { + name: "foo.group/v3 from selflink", + input: &TestRuntimeObj{ + ObjectMeta: metav1.ObjectMeta{SelfLink: "/apis/foo.group/v3/namespaces"}, + }, + expectedRefVersion: "foo.group/v3", + }, + } + + scheme := runtime.NewScheme() + scheme.AddKnownTypes(schema.GroupVersion{Group: "this", Version: "is ignored"}, &TestRuntimeObj{}) + + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + ref, err := GetReference(scheme, test.input) + if err != nil { + t.Fatal(err) + } + if test.expectedRefVersion != ref.APIVersion { + t.Errorf("expected %q, got %q", test.expectedRefVersion, ref.APIVersion) + } + }) + } +} diff --git a/vendor/k8s.io/client-go/tools/remotecommand/BUILD b/vendor/k8s.io/client-go/tools/remotecommand/BUILD deleted file mode 100644 index b30c122c3..000000000 --- a/vendor/k8s.io/client-go/tools/remotecommand/BUILD +++ /dev/null @@ -1,60 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_test( - name = "go_default_test", - srcs = [ - "v2_test.go", - "v4_test.go", - ], - embed = [":go_default_library"], - deps = [ - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/httpstream:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", - ], -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "errorstream.go", - "remotecommand.go", - "resize.go", - "v1.go", - "v2.go", - "v3.go", - "v4.go", - ], - importpath = "k8s.io/client-go/tools/remotecommand", - deps = [ - "//vendor/github.com/golang/glog:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/httpstream:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/remotecommand:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - "//vendor/k8s.io/client-go/transport/spdy:go_default_library", - "//vendor/k8s.io/client-go/util/exec:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/tools/remotecommand/reader.go b/vendor/k8s.io/client-go/tools/remotecommand/reader.go new file mode 100644 index 000000000..d1f1be34c --- /dev/null +++ b/vendor/k8s.io/client-go/tools/remotecommand/reader.go @@ -0,0 +1,41 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package remotecommand + +import ( + "io" +) + +// readerWrapper delegates to an io.Reader so that only the io.Reader interface is implemented, +// to keep io.Copy from doing things we don't want when copying from the reader to the data stream. +// +// If the Stdin io.Reader provided to remotecommand implements a WriteTo function (like bytes.Buffer does[1]), +// io.Copy calls that method[2] to attempt to write the entire buffer to the stream in one call. +// That results in an oversized call to spdystream.Stream#Write [3], +// which results in a single oversized data frame[4] that is too large. +// +// [1] https://golang.org/pkg/bytes/#Buffer.WriteTo +// [2] https://golang.org/pkg/io/#Copy +// [3] https://github.com/kubernetes/kubernetes/blob/90295640ef87db9daa0144c5617afe889e7992b2/vendor/github.com/docker/spdystream/stream.go#L66-L73 +// [4] https://github.com/kubernetes/kubernetes/blob/90295640ef87db9daa0144c5617afe889e7992b2/vendor/github.com/docker/spdystream/spdy/write.go#L302-L304 +type readerWrapper struct { + reader io.Reader +} + +func (r readerWrapper) Read(p []byte) (int, error) { + return r.reader.Read(p) +} diff --git a/vendor/k8s.io/client-go/tools/remotecommand/remotecommand.go b/vendor/k8s.io/client-go/tools/remotecommand/remotecommand.go index 6b69f366e..892d8d105 100644 --- a/vendor/k8s.io/client-go/tools/remotecommand/remotecommand.go +++ b/vendor/k8s.io/client-go/tools/remotecommand/remotecommand.go @@ -22,7 +22,7 @@ import ( "net/http" "net/url" - "github.com/golang/glog" + "k8s.io/klog" "k8s.io/apimachinery/pkg/util/httpstream" "k8s.io/apimachinery/pkg/util/remotecommand" @@ -30,8 +30,8 @@ import ( spdy "k8s.io/client-go/transport/spdy" ) -// StreamOptions holds information pertaining to the current streaming session: supported stream -// protocols, input/output streams, if the client is requesting a TTY, and a terminal size queue to +// StreamOptions holds information pertaining to the current streaming session: +// input/output streams, if the client is requesting a TTY, and a terminal size queue to // support terminal resizing. type StreamOptions struct { Stdin io.Reader @@ -132,7 +132,7 @@ func (e *streamExecutor) Stream(options StreamOptions) error { case remotecommand.StreamProtocolV2Name: streamer = newStreamProtocolV2(options) case "": - glog.V(4).Infof("The server did not negotiate a streaming protocol version. Falling back to %s", remotecommand.StreamProtocolV1Name) + klog.V(4).Infof("The server did not negotiate a streaming protocol version. Falling back to %s", remotecommand.StreamProtocolV1Name) fallthrough case remotecommand.StreamProtocolV1Name: streamer = newStreamProtocolV1(options) diff --git a/vendor/k8s.io/client-go/tools/remotecommand/v1.go b/vendor/k8s.io/client-go/tools/remotecommand/v1.go index 92dad727f..4120f1f5f 100644 --- a/vendor/k8s.io/client-go/tools/remotecommand/v1.go +++ b/vendor/k8s.io/client-go/tools/remotecommand/v1.go @@ -22,9 +22,9 @@ import ( "io/ioutil" "net/http" - "github.com/golang/glog" "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/util/httpstream" + "k8s.io/klog" ) // streamProtocolV1 implements the first version of the streaming exec & attach @@ -53,10 +53,10 @@ func (p *streamProtocolV1) stream(conn streamCreator) error { errorChan := make(chan error) cp := func(s string, dst io.Writer, src io.Reader) { - glog.V(6).Infof("Copying %s", s) - defer glog.V(6).Infof("Done copying %s", s) + klog.V(6).Infof("Copying %s", s) + defer klog.V(6).Infof("Done copying %s", s) if _, err := io.Copy(dst, src); err != nil && err != io.EOF { - glog.Errorf("Error copying %s: %v", s, err) + klog.Errorf("Error copying %s: %v", s, err) } if s == v1.StreamTypeStdout || s == v1.StreamTypeStderr { doneChan <- struct{}{} @@ -127,7 +127,7 @@ func (p *streamProtocolV1) stream(conn streamCreator) error { // because stdin is not closed until the process exits. If we try to call // stdin.Close(), it returns no error but doesn't unblock the copy. It will // exit when the process exits, instead. - go cp(v1.StreamTypeStdin, p.remoteStdin, p.Stdin) + go cp(v1.StreamTypeStdin, p.remoteStdin, readerWrapper{p.Stdin}) } waitCount := 0 diff --git a/vendor/k8s.io/client-go/tools/remotecommand/v2.go b/vendor/k8s.io/client-go/tools/remotecommand/v2.go index b74ae8de2..4b0001502 100644 --- a/vendor/k8s.io/client-go/tools/remotecommand/v2.go +++ b/vendor/k8s.io/client-go/tools/remotecommand/v2.go @@ -101,7 +101,7 @@ func (p *streamProtocolV2) copyStdin() { // the executed command will remain running. defer once.Do(func() { p.remoteStdin.Close() }) - if _, err := io.Copy(p.remoteStdin, p.Stdin); err != nil { + if _, err := io.Copy(p.remoteStdin, readerWrapper{p.Stdin}); err != nil { runtime.HandleError(err) } }() diff --git a/vendor/k8s.io/client-go/tools/watch/informerwatcher.go b/vendor/k8s.io/client-go/tools/watch/informerwatcher.go new file mode 100644 index 000000000..35a346949 --- /dev/null +++ b/vendor/k8s.io/client-go/tools/watch/informerwatcher.go @@ -0,0 +1,114 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package watch + +import ( + "sync" + "sync/atomic" + + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/tools/cache" +) + +func newTicketer() *ticketer { + return &ticketer{ + cond: sync.NewCond(&sync.Mutex{}), + } +} + +type ticketer struct { + counter uint64 + + cond *sync.Cond + current uint64 +} + +func (t *ticketer) GetTicket() uint64 { + // -1 to start from 0 + return atomic.AddUint64(&t.counter, 1) - 1 +} + +func (t *ticketer) WaitForTicket(ticket uint64, f func()) { + t.cond.L.Lock() + defer t.cond.L.Unlock() + for ticket != t.current { + t.cond.Wait() + } + + f() + + t.current++ + t.cond.Broadcast() +} + +// NewIndexerInformerWatcher will create an IndexerInformer and wrap it into watch.Interface +// so you can use it anywhere where you'd have used a regular Watcher returned from Watch method. +func NewIndexerInformerWatcher(lw cache.ListerWatcher, objType runtime.Object) (cache.Indexer, cache.Controller, watch.Interface) { + ch := make(chan watch.Event) + w := watch.NewProxyWatcher(ch) + t := newTicketer() + + indexer, informer := cache.NewIndexerInformer(lw, objType, 0, cache.ResourceEventHandlerFuncs{ + AddFunc: func(obj interface{}) { + go t.WaitForTicket(t.GetTicket(), func() { + select { + case ch <- watch.Event{ + Type: watch.Added, + Object: obj.(runtime.Object), + }: + case <-w.StopChan(): + } + }) + }, + UpdateFunc: func(old, new interface{}) { + go t.WaitForTicket(t.GetTicket(), func() { + select { + case ch <- watch.Event{ + Type: watch.Modified, + Object: new.(runtime.Object), + }: + case <-w.StopChan(): + } + }) + }, + DeleteFunc: func(obj interface{}) { + go t.WaitForTicket(t.GetTicket(), func() { + staleObj, stale := obj.(cache.DeletedFinalStateUnknown) + if stale { + // We have no means of passing the additional information down using watch API based on watch.Event + // but the caller can filter such objects by checking if metadata.deletionTimestamp is set + obj = staleObj + } + + select { + case ch <- watch.Event{ + Type: watch.Deleted, + Object: obj.(runtime.Object), + }: + case <-w.StopChan(): + } + }) + }, + }, cache.Indexers{}) + + go func() { + informer.Run(w.StopChan()) + }() + + return indexer, informer, w +} diff --git a/vendor/k8s.io/client-go/tools/watch/informerwatcher_test.go b/vendor/k8s.io/client-go/tools/watch/informerwatcher_test.go new file mode 100644 index 000000000..e94b4d256 --- /dev/null +++ b/vendor/k8s.io/client-go/tools/watch/informerwatcher_test.go @@ -0,0 +1,236 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package watch + +import ( + "math/rand" + "reflect" + "sort" + "testing" + "time" + + "github.com/davecgh/go-spew/spew" + + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/diff" + "k8s.io/apimachinery/pkg/watch" + fakeclientset "k8s.io/client-go/kubernetes/fake" + testcore "k8s.io/client-go/testing" + "k8s.io/client-go/tools/cache" +) + +type byEventTypeAndName []watch.Event + +func (a byEventTypeAndName) Len() int { return len(a) } +func (a byEventTypeAndName) Swap(i, j int) { a[i], a[j] = a[j], a[i] } +func (a byEventTypeAndName) Less(i, j int) bool { + if a[i].Type < a[j].Type { + return true + } + + if a[i].Type > a[j].Type { + return false + } + + return a[i].Object.(*corev1.Secret).Name < a[j].Object.(*corev1.Secret).Name +} + +func TestTicketer(t *testing.T) { + tg := newTicketer() + + const numTickets = 100 // current golang limit for race detector is 8192 simultaneously alive goroutines + var tickets []uint64 + for i := 0; i < numTickets; i++ { + ticket := tg.GetTicket() + tickets = append(tickets, ticket) + + exp, got := uint64(i), ticket + if got != exp { + t.Fatalf("expected ticket %d, got %d", exp, got) + } + } + + // shuffle tickets + rand.Shuffle(len(tickets), func(i, j int) { + tickets[i], tickets[j] = tickets[j], tickets[i] + }) + + res := make(chan uint64, len(tickets)) + for _, ticket := range tickets { + go func(ticket uint64) { + time.Sleep(time.Duration(rand.Intn(50)) * time.Millisecond) + tg.WaitForTicket(ticket, func() { + res <- ticket + }) + }(ticket) + } + + for i := 0; i < numTickets; i++ { + exp, got := uint64(i), <-res + if got != exp { + t.Fatalf("expected ticket %d, got %d", exp, got) + } + } +} + +func TestNewInformerWatcher(t *testing.T) { + // Make sure there are no 2 same types of events on a secret with the same name or that might be flaky. + tt := []struct { + name string + objects []runtime.Object + events []watch.Event + }{ + { + name: "basic test", + objects: []runtime.Object{ + &corev1.Secret{ + ObjectMeta: metav1.ObjectMeta{ + Name: "pod-1", + }, + StringData: map[string]string{ + "foo-1": "initial", + }, + }, + &corev1.Secret{ + ObjectMeta: metav1.ObjectMeta{ + Name: "pod-2", + }, + StringData: map[string]string{ + "foo-2": "initial", + }, + }, + &corev1.Secret{ + ObjectMeta: metav1.ObjectMeta{ + Name: "pod-3", + }, + StringData: map[string]string{ + "foo-3": "initial", + }, + }, + }, + events: []watch.Event{ + { + Type: watch.Added, + Object: &corev1.Secret{ + ObjectMeta: metav1.ObjectMeta{ + Name: "pod-4", + }, + StringData: map[string]string{ + "foo-4": "initial", + }, + }, + }, + { + Type: watch.Modified, + Object: &corev1.Secret{ + ObjectMeta: metav1.ObjectMeta{ + Name: "pod-2", + }, + StringData: map[string]string{ + "foo-2": "new", + }, + }, + }, + { + Type: watch.Deleted, + Object: &corev1.Secret{ + ObjectMeta: metav1.ObjectMeta{ + Name: "pod-3", + }, + }, + }, + }, + }, + } + + for _, tc := range tt { + t.Run(tc.name, func(t *testing.T) { + var expected []watch.Event + for _, o := range tc.objects { + expected = append(expected, watch.Event{ + Type: watch.Added, + Object: o.DeepCopyObject(), + }) + } + for _, e := range tc.events { + expected = append(expected, *e.DeepCopy()) + } + + fake := fakeclientset.NewSimpleClientset(tc.objects...) + fakeWatch := watch.NewFakeWithChanSize(len(tc.events), false) + fake.PrependWatchReactor("secrets", testcore.DefaultWatchReactor(fakeWatch, nil)) + + for _, e := range tc.events { + fakeWatch.Action(e.Type, e.Object) + } + + lw := &cache.ListWatch{ + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { + return fake.Core().Secrets("").List(options) + }, + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { + return fake.Core().Secrets("").Watch(options) + }, + } + _, _, w := NewIndexerInformerWatcher(lw, &corev1.Secret{}) + + var result []watch.Event + loop: + for { + var event watch.Event + var ok bool + select { + case event, ok = <-w.ResultChan(): + if !ok { + t.Errorf("Failed to read event: channel is already closed!") + return + } + + result = append(result, *event.DeepCopy()) + case <-time.After(time.Second * 1): + // All the events are buffered -> this means we are done + // Also the one sec will make sure that we would detect RetryWatcher's incorrect behaviour after last event + break loop + } + } + + // Informers don't guarantee event order so we need to sort these arrays to compare them + sort.Sort(byEventTypeAndName(expected)) + sort.Sort(byEventTypeAndName(result)) + + if !reflect.DeepEqual(expected, result) { + t.Error(spew.Errorf("\nexpected: %#v,\ngot: %#v,\ndiff: %s", expected, result, diff.ObjectReflectDiff(expected, result))) + return + } + + // Fill in some data to test watch closing while there are some events to be read + for _, e := range tc.events { + fakeWatch.Action(e.Type, e.Object) + } + + // Stop before reading all the data to make sure the informer can deal with closed channel + w.Stop() + + // Wait a bit to see if the informer won't panic + // TODO: Try to figure out a more reliable mechanism than time.Sleep (https://github.com/kubernetes/kubernetes/pull/50102/files#r184716591) + time.Sleep(1 * time.Second) + }) + } + +} diff --git a/vendor/k8s.io/client-go/tools/watch/until.go b/vendor/k8s.io/client-go/tools/watch/until.go new file mode 100644 index 000000000..aa4bbc211 --- /dev/null +++ b/vendor/k8s.io/client-go/tools/watch/until.go @@ -0,0 +1,225 @@ +/* +Copyright 2016 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package watch + +import ( + "context" + "errors" + "fmt" + "time" + + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/tools/cache" + "k8s.io/klog" +) + +// PreconditionFunc returns true if the condition has been reached, false if it has not been reached yet, +// or an error if the condition failed or detected an error state. +type PreconditionFunc func(store cache.Store) (bool, error) + +// ConditionFunc returns true if the condition has been reached, false if it has not been reached yet, +// or an error if the condition cannot be checked and should terminate. In general, it is better to define +// level driven conditions over edge driven conditions (pod has ready=true, vs pod modified and ready changed +// from false to true). +type ConditionFunc func(event watch.Event) (bool, error) + +// ErrWatchClosed is returned when the watch channel is closed before timeout in UntilWithoutRetry. +var ErrWatchClosed = errors.New("watch closed before UntilWithoutRetry timeout") + +// UntilWithoutRetry reads items from the watch until each provided condition succeeds, and then returns the last watch +// encountered. The first condition that returns an error terminates the watch (and the event is also returned). +// If no event has been received, the returned event will be nil. +// Conditions are satisfied sequentially so as to provide a useful primitive for higher level composition. +// Waits until context deadline or until context is canceled. +// +// Warning: Unless you have a very specific use case (probably a special Watcher) don't use this function!!! +// Warning: This will fail e.g. on API timeouts and/or 'too old resource version' error. +// Warning: You are most probably looking for a function *Until* or *UntilWithSync* below, +// Warning: solving such issues. +// TODO: Consider making this function private to prevent misuse when the other occurrences in our codebase are gone. +func UntilWithoutRetry(ctx context.Context, watcher watch.Interface, conditions ...ConditionFunc) (*watch.Event, error) { + ch := watcher.ResultChan() + defer watcher.Stop() + var lastEvent *watch.Event + for _, condition := range conditions { + // check the next condition against the previous event and short circuit waiting for the next watch + if lastEvent != nil { + done, err := condition(*lastEvent) + if err != nil { + return lastEvent, err + } + if done { + continue + } + } + ConditionSucceeded: + for { + select { + case event, ok := <-ch: + if !ok { + return lastEvent, ErrWatchClosed + } + lastEvent = &event + + done, err := condition(event) + if err != nil { + return lastEvent, err + } + if done { + break ConditionSucceeded + } + + case <-ctx.Done(): + return lastEvent, wait.ErrWaitTimeout + } + } + } + return lastEvent, nil +} + +// UntilWithSync creates an informer from lw, optionally checks precondition when the store is synced, +// and watches the output until each provided condition succeeds, in a way that is identical +// to function UntilWithoutRetry. (See above.) +// UntilWithSync can deal with all errors like API timeout, lost connections and 'Resource version too old'. +// It is the only function that can recover from 'Resource version too old', Until and UntilWithoutRetry will +// just fail in that case. On the other hand it can't provide you with guarantees as strong as using simple +// Watch method with Until. It can skip some intermediate events in case of watch function failing but it will +// re-list to recover and you always get an event, if there has been a change, after recovery. +// Also with the current implementation based on DeltaFIFO, order of the events you receive is guaranteed only for +// particular object, not between more of them even it's the same resource. +// The most frequent usage would be a command that needs to watch the "state of the world" and should't fail, like: +// waiting for object reaching a state, "small" controllers, ... +func UntilWithSync(ctx context.Context, lw cache.ListerWatcher, objType runtime.Object, precondition PreconditionFunc, conditions ...ConditionFunc) (*watch.Event, error) { + indexer, informer, watcher := NewIndexerInformerWatcher(lw, objType) + // Proxy watcher can be stopped multiple times so it's fine to use defer here to cover alternative branches and + // let UntilWithoutRetry to stop it + defer watcher.Stop() + + if precondition != nil { + if !cache.WaitForCacheSync(ctx.Done(), informer.HasSynced) { + return nil, fmt.Errorf("UntilWithSync: unable to sync caches: %v", ctx.Err()) + } + + done, err := precondition(indexer) + if err != nil { + return nil, err + } + + if done { + return nil, nil + } + } + + return UntilWithoutRetry(ctx, watcher, conditions...) +} + +// ContextWithOptionalTimeout wraps context.WithTimeout and handles infinite timeouts expressed as 0 duration. +func ContextWithOptionalTimeout(parent context.Context, timeout time.Duration) (context.Context, context.CancelFunc) { + if timeout < 0 { + // This should be handled in validation + klog.Errorf("Timeout for context shall not be negative!") + timeout = 0 + } + + if timeout == 0 { + return context.WithCancel(parent) + } + + return context.WithTimeout(parent, timeout) +} + +// ListWatchUntil checks the provided conditions against the items returned by the list watcher, returning wait.ErrWaitTimeout +// if timeout is exceeded without all conditions returning true, or an error if an error occurs. +// TODO: check for watch expired error and retry watch from latest point? Same issue exists for Until. +// TODO: remove when no longer used +// +// Deprecated: Use UntilWithSync instead. +func ListWatchUntil(timeout time.Duration, lw cache.ListerWatcher, conditions ...ConditionFunc) (*watch.Event, error) { + if len(conditions) == 0 { + return nil, nil + } + + list, err := lw.List(metav1.ListOptions{}) + if err != nil { + return nil, err + } + initialItems, err := meta.ExtractList(list) + if err != nil { + return nil, err + } + + // use the initial items as simulated "adds" + var lastEvent *watch.Event + currIndex := 0 + passedConditions := 0 + for _, condition := range conditions { + // check the next condition against the previous event and short circuit waiting for the next watch + if lastEvent != nil { + done, err := condition(*lastEvent) + if err != nil { + return lastEvent, err + } + if done { + passedConditions = passedConditions + 1 + continue + } + } + + ConditionSucceeded: + for currIndex < len(initialItems) { + lastEvent = &watch.Event{Type: watch.Added, Object: initialItems[currIndex]} + currIndex++ + + done, err := condition(*lastEvent) + if err != nil { + return lastEvent, err + } + if done { + passedConditions = passedConditions + 1 + break ConditionSucceeded + } + } + } + if passedConditions == len(conditions) { + return lastEvent, nil + } + remainingConditions := conditions[passedConditions:] + + metaObj, err := meta.ListAccessor(list) + if err != nil { + return nil, err + } + currResourceVersion := metaObj.GetResourceVersion() + + watchInterface, err := lw.Watch(metav1.ListOptions{ResourceVersion: currResourceVersion}) + if err != nil { + return nil, err + } + + ctx, cancel := ContextWithOptionalTimeout(context.Background(), timeout) + defer cancel() + evt, err := UntilWithoutRetry(ctx, watchInterface, remainingConditions...) + if err == ErrWatchClosed { + // present a consistent error interface to callers + err = wait.ErrWaitTimeout + } + return evt, err +} diff --git a/vendor/k8s.io/client-go/tools/watch/until_test.go b/vendor/k8s.io/client-go/tools/watch/until_test.go new file mode 100644 index 000000000..dd0559461 --- /dev/null +++ b/vendor/k8s.io/client-go/tools/watch/until_test.go @@ -0,0 +1,303 @@ +/* +Copyright 2016 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package watch + +import ( + "context" + "errors" + "reflect" + "strings" + "testing" + "time" + + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/apimachinery/pkg/watch" + fakeclient "k8s.io/client-go/kubernetes/fake" + "k8s.io/client-go/tools/cache" +) + +type fakePod struct { + name string +} + +func (obj *fakePod) GetObjectKind() schema.ObjectKind { return schema.EmptyObjectKind } +func (obj *fakePod) DeepCopyObject() runtime.Object { panic("DeepCopyObject not supported by fakePod") } + +func TestUntil(t *testing.T) { + fw := watch.NewFake() + go func() { + var obj *fakePod + fw.Add(obj) + fw.Modify(obj) + }() + conditions := []ConditionFunc{ + func(event watch.Event) (bool, error) { return event.Type == watch.Added, nil }, + func(event watch.Event) (bool, error) { return event.Type == watch.Modified, nil }, + } + + ctx, _ := context.WithTimeout(context.Background(), time.Minute) + lastEvent, err := UntilWithoutRetry(ctx, fw, conditions...) + if err != nil { + t.Fatalf("expected nil error, got %#v", err) + } + if lastEvent == nil { + t.Fatal("expected an event") + } + if lastEvent.Type != watch.Modified { + t.Fatalf("expected MODIFIED event type, got %v", lastEvent.Type) + } + if got, isPod := lastEvent.Object.(*fakePod); !isPod { + t.Fatalf("expected a pod event, got %#v", got) + } +} + +func TestUntilMultipleConditions(t *testing.T) { + fw := watch.NewFake() + go func() { + var obj *fakePod + fw.Add(obj) + }() + conditions := []ConditionFunc{ + func(event watch.Event) (bool, error) { return event.Type == watch.Added, nil }, + func(event watch.Event) (bool, error) { return event.Type == watch.Added, nil }, + } + + ctx, _ := context.WithTimeout(context.Background(), time.Minute) + lastEvent, err := UntilWithoutRetry(ctx, fw, conditions...) + if err != nil { + t.Fatalf("expected nil error, got %#v", err) + } + if lastEvent == nil { + t.Fatal("expected an event") + } + if lastEvent.Type != watch.Added { + t.Fatalf("expected MODIFIED event type, got %v", lastEvent.Type) + } + if got, isPod := lastEvent.Object.(*fakePod); !isPod { + t.Fatalf("expected a pod event, got %#v", got) + } +} + +func TestUntilMultipleConditionsFail(t *testing.T) { + fw := watch.NewFake() + go func() { + var obj *fakePod + fw.Add(obj) + }() + conditions := []ConditionFunc{ + func(event watch.Event) (bool, error) { return event.Type == watch.Added, nil }, + func(event watch.Event) (bool, error) { return event.Type == watch.Added, nil }, + func(event watch.Event) (bool, error) { return event.Type == watch.Deleted, nil }, + } + + ctx, _ := context.WithTimeout(context.Background(), 10*time.Second) + lastEvent, err := UntilWithoutRetry(ctx, fw, conditions...) + if err != wait.ErrWaitTimeout { + t.Fatalf("expected ErrWaitTimeout error, got %#v", err) + } + if lastEvent == nil { + t.Fatal("expected an event") + } + if lastEvent.Type != watch.Added { + t.Fatalf("expected ADDED event type, got %v", lastEvent.Type) + } + if got, isPod := lastEvent.Object.(*fakePod); !isPod { + t.Fatalf("expected a pod event, got %#v", got) + } +} + +func TestUntilTimeout(t *testing.T) { + fw := watch.NewFake() + go func() { + var obj *fakePod + fw.Add(obj) + fw.Modify(obj) + }() + conditions := []ConditionFunc{ + func(event watch.Event) (bool, error) { + return event.Type == watch.Added, nil + }, + func(event watch.Event) (bool, error) { + return event.Type == watch.Modified, nil + }, + } + + lastEvent, err := UntilWithoutRetry(context.Background(), fw, conditions...) + if err != nil { + t.Fatalf("expected nil error, got %#v", err) + } + if lastEvent == nil { + t.Fatal("expected an event") + } + if lastEvent.Type != watch.Modified { + t.Fatalf("expected MODIFIED event type, got %v", lastEvent.Type) + } + if got, isPod := lastEvent.Object.(*fakePod); !isPod { + t.Fatalf("expected a pod event, got %#v", got) + } +} + +func TestUntilErrorCondition(t *testing.T) { + fw := watch.NewFake() + go func() { + var obj *fakePod + fw.Add(obj) + }() + expected := "something bad" + conditions := []ConditionFunc{ + func(event watch.Event) (bool, error) { return event.Type == watch.Added, nil }, + func(event watch.Event) (bool, error) { return false, errors.New(expected) }, + } + + ctx, cancel := context.WithTimeout(context.Background(), time.Minute) + defer cancel() + _, err := UntilWithoutRetry(ctx, fw, conditions...) + if err == nil { + t.Fatal("expected an error") + } + if !strings.Contains(err.Error(), expected) { + t.Fatalf("expected %q in error string, got %q", expected, err.Error()) + } +} + +func TestUntilWithSync(t *testing.T) { + // FIXME: test preconditions + tt := []struct { + name string + lw *cache.ListWatch + preconditionFunc PreconditionFunc + conditionFunc ConditionFunc + expectedErr error + expectedEvent *watch.Event + }{ + { + name: "doesn't wait for sync with no precondition", + lw: &cache.ListWatch{ + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { + select {} + }, + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { + select {} + }, + }, + preconditionFunc: nil, + conditionFunc: func(e watch.Event) (bool, error) { + return true, nil + }, + expectedErr: errors.New("timed out waiting for the condition"), + expectedEvent: nil, + }, + { + name: "waits indefinitely with precondition if it can't sync", + lw: &cache.ListWatch{ + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { + select {} + }, + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { + select {} + }, + }, + preconditionFunc: func(store cache.Store) (bool, error) { + return true, nil + }, + conditionFunc: func(e watch.Event) (bool, error) { + return true, nil + }, + expectedErr: errors.New("UntilWithSync: unable to sync caches: context deadline exceeded"), + expectedEvent: nil, + }, + { + name: "precondition can stop the loop", + lw: func() *cache.ListWatch { + fakeclient := fakeclient.NewSimpleClientset(&corev1.Secret{ObjectMeta: metav1.ObjectMeta{Name: "first"}}) + + return &cache.ListWatch{ + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { + return fakeclient.CoreV1().Secrets("").List(options) + }, + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { + return fakeclient.CoreV1().Secrets("").Watch(options) + }, + } + }(), + preconditionFunc: func(store cache.Store) (bool, error) { + _, exists, err := store.Get(&metav1.ObjectMeta{Namespace: "", Name: "first"}) + if err != nil { + return true, err + } + if exists { + return true, nil + } + return false, nil + }, + conditionFunc: func(e watch.Event) (bool, error) { + return true, errors.New("should never reach this") + }, + expectedErr: nil, + expectedEvent: nil, + }, + { + name: "precondition lets it proceed to regular condition", + lw: func() *cache.ListWatch { + fakeclient := fakeclient.NewSimpleClientset(&corev1.Secret{ObjectMeta: metav1.ObjectMeta{Name: "first"}}) + + return &cache.ListWatch{ + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { + return fakeclient.CoreV1().Secrets("").List(options) + }, + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { + return fakeclient.CoreV1().Secrets("").Watch(options) + }, + } + }(), + preconditionFunc: func(store cache.Store) (bool, error) { + return false, nil + }, + conditionFunc: func(e watch.Event) (bool, error) { + if e.Type == watch.Added { + return true, nil + } + panic("no other events are expected") + }, + expectedErr: nil, + expectedEvent: &watch.Event{Type: watch.Added, Object: &corev1.Secret{ObjectMeta: metav1.ObjectMeta{Name: "first"}}}, + }, + } + + for _, tc := range tt { + t.Run(tc.name, func(t *testing.T) { + // Informer waits for caches to sync by polling in 100ms intervals, + // timeout needs to be reasonably higher + ctx, cancel := context.WithTimeout(context.Background(), 500*time.Millisecond) + defer cancel() + + event, err := UntilWithSync(ctx, tc.lw, &corev1.Secret{}, tc.preconditionFunc, tc.conditionFunc) + + if !reflect.DeepEqual(err, tc.expectedErr) { + t.Errorf("expected error %#v, got %#v", tc.expectedErr, err) + } + + if !reflect.DeepEqual(event, tc.expectedEvent) { + t.Errorf("expected event %#v, got %#v", tc.expectedEvent, event) + } + }) + } +} diff --git a/vendor/k8s.io/client-go/transport/BUILD b/vendor/k8s.io/client-go/transport/BUILD deleted file mode 100644 index 71494544a..000000000 --- a/vendor/k8s.io/client-go/transport/BUILD +++ /dev/null @@ -1,48 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_test( - name = "go_default_test", - srcs = [ - "cache_test.go", - "round_trippers_test.go", - "transport_test.go", - ], - embed = [":go_default_library"], -) - -go_library( - name = "go_default_library", - srcs = [ - "cache.go", - "config.go", - "round_trippers.go", - "transport.go", - ], - importpath = "k8s.io/client-go/transport", - deps = [ - "//vendor/github.com/golang/glog:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/net:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/transport/spdy:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/transport/cache.go b/vendor/k8s.io/client-go/transport/cache.go index 7c40848c7..7cffe2a5f 100644 --- a/vendor/k8s.io/client-go/transport/cache.go +++ b/vendor/k8s.io/client-go/transport/cache.go @@ -43,7 +43,9 @@ type tlsCacheKey struct { caData string certData string keyData string + getCert string serverName string + dial string } func (t tlsCacheKey) String() string { @@ -51,7 +53,7 @@ func (t tlsCacheKey) String() string { if len(t.keyData) > 0 { keyText = "" } - return fmt.Sprintf("insecure:%v, caData:%#v, certData:%#v, keyData:%s, serverName:%s", t.insecure, t.caData, t.certData, keyText, t.serverName) + return fmt.Sprintf("insecure:%v, caData:%#v, certData:%#v, keyData:%s, getCert: %s, serverName:%s, dial:%s", t.insecure, t.caData, t.certData, keyText, t.getCert, t.serverName, t.dial) } func (c *tlsTransportCache) get(config *Config) (http.RoundTripper, error) { @@ -75,7 +77,7 @@ func (c *tlsTransportCache) get(config *Config) (http.RoundTripper, error) { return nil, err } // The options didn't require a custom TLS config - if tlsConfig == nil { + if tlsConfig == nil && config.Dial == nil { return http.DefaultTransport, nil } @@ -84,7 +86,7 @@ func (c *tlsTransportCache) get(config *Config) (http.RoundTripper, error) { dial = (&net.Dialer{ Timeout: 30 * time.Second, KeepAlive: 30 * time.Second, - }).Dial + }).DialContext } // Cache a single transport for these options c.transports[key] = utilnet.SetTransportDefaults(&http.Transport{ @@ -92,7 +94,7 @@ func (c *tlsTransportCache) get(config *Config) (http.RoundTripper, error) { TLSHandshakeTimeout: 10 * time.Second, TLSClientConfig: tlsConfig, MaxIdleConnsPerHost: idleConnsPerHost, - Dial: dial, + DialContext: dial, }) return c.transports[key], nil } @@ -108,6 +110,8 @@ func tlsConfigKey(c *Config) (tlsCacheKey, error) { caData: string(c.TLS.CAData), certData: string(c.TLS.CertData), keyData: string(c.TLS.KeyData), + getCert: fmt.Sprintf("%p", c.TLS.GetCert), serverName: c.TLS.ServerName, + dial: fmt.Sprintf("%p", c.Dial), }, nil } diff --git a/vendor/k8s.io/client-go/transport/cache_test.go b/vendor/k8s.io/client-go/transport/cache_test.go index 81f428de0..9b740cdec 100644 --- a/vendor/k8s.io/client-go/transport/cache_test.go +++ b/vendor/k8s.io/client-go/transport/cache_test.go @@ -17,6 +17,9 @@ limitations under the License. package transport import ( + "context" + "crypto/tls" + "net" "net/http" "testing" ) @@ -51,8 +54,12 @@ func TestTLSConfigKey(t *testing.T) { } // Make sure config fields that affect the tls config affect the cache key + dialer := net.Dialer{} + getCert := func() (*tls.Certificate, error) { return nil, nil } uniqueConfigurations := map[string]*Config{ "no tls": {}, + "dialer": {Dial: dialer.DialContext}, + "dialer2": {Dial: func(ctx context.Context, network, address string) (net.Conn, error) { return nil, nil }}, "insecure": {TLS: TLSConfig{Insecure: true}}, "cadata 1": {TLS: TLSConfig{CAData: []byte{1}}}, "cadata 2": {TLS: TLSConfig{CAData: []byte{2}}}, @@ -101,14 +108,27 @@ func TestTLSConfigKey(t *testing.T) { KeyData: []byte{1}, }, }, + "getCert1": { + TLS: TLSConfig{ + KeyData: []byte{1}, + GetCert: getCert, + }, + }, + "getCert2": { + TLS: TLSConfig{ + KeyData: []byte{1}, + GetCert: func() (*tls.Certificate, error) { return nil, nil }, + }, + }, + "getCert1, key 2": { + TLS: TLSConfig{ + KeyData: []byte{2}, + GetCert: getCert, + }, + }, } for nameA, valueA := range uniqueConfigurations { for nameB, valueB := range uniqueConfigurations { - // Don't compare to ourselves - if nameA == nameB { - continue - } - keyA, err := tlsConfigKey(valueA) if err != nil { t.Errorf("Unexpected error for %q: %v", nameA, err) @@ -119,6 +139,15 @@ func TestTLSConfigKey(t *testing.T) { t.Errorf("Unexpected error for %q: %v", nameB, err) continue } + + // Make sure we get the same key on the same config + if nameA == nameB { + if keyA != keyB { + t.Errorf("Expected identical cache keys for %q and %q, got:\n\t%s\n\t%s", nameA, nameB, keyA, keyB) + } + continue + } + if keyA == keyB { t.Errorf("Expected unique cache keys for %q and %q, got:\n\t%s\n\t%s", nameA, nameB, keyA, keyB) continue diff --git a/vendor/k8s.io/client-go/transport/config.go b/vendor/k8s.io/client-go/transport/config.go index af347dafe..4081c23e7 100644 --- a/vendor/k8s.io/client-go/transport/config.go +++ b/vendor/k8s.io/client-go/transport/config.go @@ -17,6 +17,8 @@ limitations under the License. package transport import ( + "context" + "crypto/tls" "net" "net/http" ) @@ -53,7 +55,7 @@ type Config struct { WrapTransport func(rt http.RoundTripper) http.RoundTripper // Dial specifies the dial function for creating unencrypted TCP connections. - Dial func(network, addr string) (net.Conn, error) + Dial func(ctx context.Context, network, address string) (net.Conn, error) } // ImpersonationConfig has all the available impersonation options @@ -83,7 +85,12 @@ func (c *Config) HasTokenAuth() bool { // HasCertAuth returns whether the configuration has certificate authentication or not. func (c *Config) HasCertAuth() bool { - return len(c.TLS.CertData) != 0 || len(c.TLS.CertFile) != 0 + return (len(c.TLS.CertData) != 0 || len(c.TLS.CertFile) != 0) && (len(c.TLS.KeyData) != 0 || len(c.TLS.KeyFile) != 0) +} + +// HasCertCallbacks returns whether the configuration has certificate callback or not. +func (c *Config) HasCertCallback() bool { + return c.TLS.GetCert != nil } // TLSConfig holds the information needed to set up a TLS transport. @@ -98,4 +105,6 @@ type TLSConfig struct { CAData []byte // Bytes of the PEM-encoded server trusted root certificates. Supercedes CAFile. CertData []byte // Bytes of the PEM-encoded client certificate. Supercedes CertFile. KeyData []byte // Bytes of the PEM-encoded client key. Supercedes KeyFile. + + GetCert func() (*tls.Certificate, error) // Callback that returns a TLS client certificate. CertData, CertFile, KeyData and KeyFile supercede this field. } diff --git a/vendor/k8s.io/client-go/transport/round_trippers.go b/vendor/k8s.io/client-go/transport/round_trippers.go index c728b1877..da417cf96 100644 --- a/vendor/k8s.io/client-go/transport/round_trippers.go +++ b/vendor/k8s.io/client-go/transport/round_trippers.go @@ -22,7 +22,7 @@ import ( "strings" "time" - "github.com/golang/glog" + "k8s.io/klog" utilnet "k8s.io/apimachinery/pkg/util/net" ) @@ -62,13 +62,13 @@ func HTTPWrappersForConfig(config *Config, rt http.RoundTripper) (http.RoundTrip // DebugWrappers wraps a round tripper and logs based on the current log level. func DebugWrappers(rt http.RoundTripper) http.RoundTripper { switch { - case bool(glog.V(9)): + case bool(klog.V(9)): rt = newDebuggingRoundTripper(rt, debugCurlCommand, debugURLTiming, debugResponseHeaders) - case bool(glog.V(8)): + case bool(klog.V(8)): rt = newDebuggingRoundTripper(rt, debugJustURL, debugRequestHeaders, debugResponseStatus, debugResponseHeaders) - case bool(glog.V(7)): + case bool(klog.V(7)): rt = newDebuggingRoundTripper(rt, debugJustURL, debugRequestHeaders, debugResponseStatus) - case bool(glog.V(6)): + case bool(klog.V(6)): rt = newDebuggingRoundTripper(rt, debugURLTiming) } @@ -129,7 +129,7 @@ func SetAuthProxyHeaders(req *http.Request, username string, groups []string, ex } for key, values := range extra { for _, value := range values { - req.Header.Add("X-Remote-Extra-"+key, value) + req.Header.Add("X-Remote-Extra-"+headerKeyEscape(key), value) } } } @@ -138,7 +138,7 @@ func (rt *authProxyRoundTripper) CancelRequest(req *http.Request) { if canceler, ok := rt.rt.(requestCanceler); ok { canceler.CancelRequest(req) } else { - glog.Errorf("CancelRequest not implemented") + klog.Errorf("CancelRequest not implemented by %T", rt.rt) } } @@ -166,7 +166,7 @@ func (rt *userAgentRoundTripper) CancelRequest(req *http.Request) { if canceler, ok := rt.rt.(requestCanceler); ok { canceler.CancelRequest(req) } else { - glog.Errorf("CancelRequest not implemented") + klog.Errorf("CancelRequest not implemented by %T", rt.rt) } } @@ -197,7 +197,7 @@ func (rt *basicAuthRoundTripper) CancelRequest(req *http.Request) { if canceler, ok := rt.rt.(requestCanceler); ok { canceler.CancelRequest(req) } else { - glog.Errorf("CancelRequest not implemented") + klog.Errorf("CancelRequest not implemented by %T", rt.rt) } } @@ -246,7 +246,7 @@ func (rt *impersonatingRoundTripper) RoundTrip(req *http.Request) (*http.Respons } for k, vv := range rt.impersonate.Extra { for _, v := range vv { - req.Header.Add(ImpersonateUserExtraHeaderPrefix+k, v) + req.Header.Add(ImpersonateUserExtraHeaderPrefix+headerKeyEscape(k), v) } } @@ -257,7 +257,7 @@ func (rt *impersonatingRoundTripper) CancelRequest(req *http.Request) { if canceler, ok := rt.delegate.(requestCanceler); ok { canceler.CancelRequest(req) } else { - glog.Errorf("CancelRequest not implemented") + klog.Errorf("CancelRequest not implemented by %T", rt.delegate) } } @@ -288,7 +288,7 @@ func (rt *bearerAuthRoundTripper) CancelRequest(req *http.Request) { if canceler, ok := rt.rt.(requestCanceler); ok { canceler.CancelRequest(req) } else { - glog.Errorf("CancelRequest not implemented") + klog.Errorf("CancelRequest not implemented by %T", rt.rt) } } @@ -335,7 +335,7 @@ func (r *requestInfo) toCurl() string { } } - return fmt.Sprintf("curl -k -v -X%s %s %s", r.RequestVerb, headers, r.RequestURL) + return fmt.Sprintf("curl -k -v -X%s %s '%s'", r.RequestVerb, headers, r.RequestURL) } // debuggingRoundTripper will display information about the requests passing @@ -372,7 +372,7 @@ func (rt *debuggingRoundTripper) CancelRequest(req *http.Request) { if canceler, ok := rt.delegatedRoundTripper.(requestCanceler); ok { canceler.CancelRequest(req) } else { - glog.Errorf("CancelRequest not implemented") + klog.Errorf("CancelRequest not implemented by %T", rt.delegatedRoundTripper) } } @@ -380,17 +380,17 @@ func (rt *debuggingRoundTripper) RoundTrip(req *http.Request) (*http.Response, e reqInfo := newRequestInfo(req) if rt.levels[debugJustURL] { - glog.Infof("%s %s", reqInfo.RequestVerb, reqInfo.RequestURL) + klog.Infof("%s %s", reqInfo.RequestVerb, reqInfo.RequestURL) } if rt.levels[debugCurlCommand] { - glog.Infof("%s", reqInfo.toCurl()) + klog.Infof("%s", reqInfo.toCurl()) } if rt.levels[debugRequestHeaders] { - glog.Infof("Request Headers:") + klog.Infof("Request Headers:") for key, values := range reqInfo.RequestHeaders { for _, value := range values { - glog.Infof(" %s: %s", key, value) + klog.Infof(" %s: %s", key, value) } } } @@ -402,16 +402,16 @@ func (rt *debuggingRoundTripper) RoundTrip(req *http.Request) (*http.Response, e reqInfo.complete(response, err) if rt.levels[debugURLTiming] { - glog.Infof("%s %s %s in %d milliseconds", reqInfo.RequestVerb, reqInfo.RequestURL, reqInfo.ResponseStatus, reqInfo.Duration.Nanoseconds()/int64(time.Millisecond)) + klog.Infof("%s %s %s in %d milliseconds", reqInfo.RequestVerb, reqInfo.RequestURL, reqInfo.ResponseStatus, reqInfo.Duration.Nanoseconds()/int64(time.Millisecond)) } if rt.levels[debugResponseStatus] { - glog.Infof("Response Status: %s in %d milliseconds", reqInfo.ResponseStatus, reqInfo.Duration.Nanoseconds()/int64(time.Millisecond)) + klog.Infof("Response Status: %s in %d milliseconds", reqInfo.ResponseStatus, reqInfo.Duration.Nanoseconds()/int64(time.Millisecond)) } if rt.levels[debugResponseHeaders] { - glog.Infof("Response Headers:") + klog.Infof("Response Headers:") for key, values := range reqInfo.ResponseHeaders { for _, value := range values { - glog.Infof(" %s: %s", key, value) + klog.Infof(" %s: %s", key, value) } } } @@ -422,3 +422,110 @@ func (rt *debuggingRoundTripper) RoundTrip(req *http.Request) (*http.Response, e func (rt *debuggingRoundTripper) WrappedRoundTripper() http.RoundTripper { return rt.delegatedRoundTripper } + +func legalHeaderByte(b byte) bool { + return int(b) < len(legalHeaderKeyBytes) && legalHeaderKeyBytes[b] +} + +func shouldEscape(b byte) bool { + // url.PathUnescape() returns an error if any '%' is not followed by two + // hexadecimal digits, so we'll intentionally encode it. + return !legalHeaderByte(b) || b == '%' +} + +func headerKeyEscape(key string) string { + buf := strings.Builder{} + for i := 0; i < len(key); i++ { + b := key[i] + if shouldEscape(b) { + // %-encode bytes that should be escaped: + // https://tools.ietf.org/html/rfc3986#section-2.1 + fmt.Fprintf(&buf, "%%%02X", b) + continue + } + buf.WriteByte(b) + } + return buf.String() +} + +// legalHeaderKeyBytes was copied from net/http/lex.go's isTokenTable. +// See https://httpwg.github.io/specs/rfc7230.html#rule.token.separators +var legalHeaderKeyBytes = [127]bool{ + '%': true, + '!': true, + '#': true, + '$': true, + '&': true, + '\'': true, + '*': true, + '+': true, + '-': true, + '.': true, + '0': true, + '1': true, + '2': true, + '3': true, + '4': true, + '5': true, + '6': true, + '7': true, + '8': true, + '9': true, + 'A': true, + 'B': true, + 'C': true, + 'D': true, + 'E': true, + 'F': true, + 'G': true, + 'H': true, + 'I': true, + 'J': true, + 'K': true, + 'L': true, + 'M': true, + 'N': true, + 'O': true, + 'P': true, + 'Q': true, + 'R': true, + 'S': true, + 'T': true, + 'U': true, + 'W': true, + 'V': true, + 'X': true, + 'Y': true, + 'Z': true, + '^': true, + '_': true, + '`': true, + 'a': true, + 'b': true, + 'c': true, + 'd': true, + 'e': true, + 'f': true, + 'g': true, + 'h': true, + 'i': true, + 'j': true, + 'k': true, + 'l': true, + 'm': true, + 'n': true, + 'o': true, + 'p': true, + 'q': true, + 'r': true, + 's': true, + 't': true, + 'u': true, + 'v': true, + 'w': true, + 'x': true, + 'y': true, + 'z': true, + '|': true, + '~': true, +} diff --git a/vendor/k8s.io/client-go/transport/round_trippers_test.go b/vendor/k8s.io/client-go/transport/round_trippers_test.go index d5ffc6bde..abe5ab53d 100644 --- a/vendor/k8s.io/client-go/transport/round_trippers_test.go +++ b/vendor/k8s.io/client-go/transport/round_trippers_test.go @@ -18,6 +18,7 @@ package transport import ( "net/http" + "net/url" "reflect" "strings" "testing" @@ -125,6 +126,32 @@ func TestImpersonationRoundTripper(t *testing.T) { ImpersonateUserExtraHeaderPrefix + "Second": {"B", "b"}, }, }, + { + name: "escape handling", + impersonationConfig: ImpersonationConfig{ + UserName: "user", + Extra: map[string][]string{ + "test.example.com/thing.thing": {"A", "a"}, + }, + }, + expected: map[string][]string{ + ImpersonateUserHeader: {"user"}, + ImpersonateUserExtraHeaderPrefix + `Test.example.com%2fthing.thing`: {"A", "a"}, + }, + }, + { + name: "double escape handling", + impersonationConfig: ImpersonationConfig{ + UserName: "user", + Extra: map[string][]string{ + "test.example.com/thing.thing%20another.thing": {"A", "a"}, + }, + }, + expected: map[string][]string{ + ImpersonateUserHeader: {"user"}, + ImpersonateUserExtraHeaderPrefix + `Test.example.com%2fthing.thing%2520another.thing`: {"A", "a"}, + }, + }, } for _, tc := range tcs { @@ -159,9 +186,10 @@ func TestImpersonationRoundTripper(t *testing.T) { func TestAuthProxyRoundTripper(t *testing.T) { for n, tc := range map[string]struct { - username string - groups []string - extra map[string][]string + username string + groups []string + extra map[string][]string + expectedExtra map[string][]string }{ "allfields": { username: "user", @@ -170,6 +198,34 @@ func TestAuthProxyRoundTripper(t *testing.T) { "one": {"alpha", "bravo"}, "two": {"charlie", "delta"}, }, + expectedExtra: map[string][]string{ + "one": {"alpha", "bravo"}, + "two": {"charlie", "delta"}, + }, + }, + "escaped extra": { + username: "user", + groups: []string{"groupA", "groupB"}, + extra: map[string][]string{ + "one": {"alpha", "bravo"}, + "example.com/two": {"charlie", "delta"}, + }, + expectedExtra: map[string][]string{ + "one": {"alpha", "bravo"}, + "example.com%2ftwo": {"charlie", "delta"}, + }, + }, + "double escaped extra": { + username: "user", + groups: []string{"groupA", "groupB"}, + extra: map[string][]string{ + "one": {"alpha", "bravo"}, + "example.com/two%20three": {"charlie", "delta"}, + }, + expectedExtra: map[string][]string{ + "one": {"alpha", "bravo"}, + "example.com%2ftwo%2520three": {"charlie", "delta"}, + }, }, } { rt := &testRoundTripper{} @@ -210,9 +266,64 @@ func TestAuthProxyRoundTripper(t *testing.T) { actualExtra[extraKey] = append(actualExtra[key], values...) } } - if e, a := tc.extra, actualExtra; !reflect.DeepEqual(e, a) { + if e, a := tc.expectedExtra, actualExtra; !reflect.DeepEqual(e, a) { t.Errorf("%s expected %v, got %v", n, e, a) continue } } } + +// TestHeaderEscapeRoundTrip tests to see if foo == url.PathUnescape(headerEscape(foo)) +// This behavior is important for client -> API server transmission of extra values. +func TestHeaderEscapeRoundTrip(t *testing.T) { + t.Parallel() + testCases := []struct { + name string + key string + }{ + { + name: "alpha", + key: "alphabetical", + }, + { + name: "alphanumeric", + key: "alph4num3r1c", + }, + { + name: "percent encoded", + key: "percent%20encoded", + }, + { + name: "almost percent encoded", + key: "almost%zzpercent%xxencoded", + }, + { + name: "illegal char & percent encoding", + key: "example.com/percent%20encoded", + }, + { + name: "weird unicode stuff", + key: "example.com/ᛒᚥá›á›–ᚥᚢã¨ãƒ­ãƒ“ン", + }, + { + name: "header legal chars", + key: "abc123!#$+.-_*\\^`~|'", + }, + { + name: "legal path, illegal header", + key: "@=:", + }, + } + for _, tc := range testCases { + t.Run(tc.name, func(t *testing.T) { + escaped := headerKeyEscape(tc.key) + unescaped, err := url.PathUnescape(escaped) + if err != nil { + t.Fatalf("url.PathUnescape(%q) returned error: %v", escaped, err) + } + if tc.key != unescaped { + t.Errorf("url.PathUnescape(headerKeyEscape(%q)) returned %q, wanted %q", tc.key, unescaped, tc.key) + } + }) + } +} diff --git a/vendor/k8s.io/client-go/transport/spdy/BUILD b/vendor/k8s.io/client-go/transport/spdy/BUILD deleted file mode 100644 index bf90084b6..000000000 --- a/vendor/k8s.io/client-go/transport/spdy/BUILD +++ /dev/null @@ -1,30 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = ["spdy.go"], - importpath = "k8s.io/client-go/transport/spdy", - deps = [ - "//vendor/k8s.io/apimachinery/pkg/util/httpstream:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/httpstream/spdy:go_default_library", - "//vendor/k8s.io/client-go/rest:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/transport/spdy/spdy.go b/vendor/k8s.io/client-go/transport/spdy/spdy.go index e0eb468ba..53cc7ee18 100644 --- a/vendor/k8s.io/client-go/transport/spdy/spdy.go +++ b/vendor/k8s.io/client-go/transport/spdy/spdy.go @@ -38,7 +38,7 @@ func RoundTripperFor(config *restclient.Config) (http.RoundTripper, Upgrader, er if err != nil { return nil, nil, err } - upgradeRoundTripper := spdy.NewRoundTripper(tlsConfig, true) + upgradeRoundTripper := spdy.NewRoundTripper(tlsConfig, true, false) wrapper, err := restclient.HTTPWrappersForConfig(config, upgradeRoundTripper) if err != nil { return nil, nil, err diff --git a/vendor/k8s.io/client-go/transport/transport.go b/vendor/k8s.io/client-go/transport/transport.go index 15be0a3e6..c19739fdf 100644 --- a/vendor/k8s.io/client-go/transport/transport.go +++ b/vendor/k8s.io/client-go/transport/transport.go @@ -28,7 +28,7 @@ import ( // or transport level security defined by the provided Config. func New(config *Config) (http.RoundTripper, error) { // Set transport level security - if config.Transport != nil && (config.HasCA() || config.HasCertAuth() || config.TLS.Insecure) { + if config.Transport != nil && (config.HasCA() || config.HasCertAuth() || config.HasCertCallback() || config.TLS.Insecure) { return nil, fmt.Errorf("using a custom transport with TLS certificate options or the insecure flag is not allowed") } @@ -52,7 +52,7 @@ func New(config *Config) (http.RoundTripper, error) { // TLSConfigFor returns a tls.Config that will provide the transport level security defined // by the provided Config. Will return nil if no transport level security is requested. func TLSConfigFor(c *Config) (*tls.Config, error) { - if !(c.HasCA() || c.HasCertAuth() || c.TLS.Insecure) { + if !(c.HasCA() || c.HasCertAuth() || c.HasCertCallback() || c.TLS.Insecure || len(c.TLS.ServerName) > 0) { return nil, nil } if c.HasCA() && c.TLS.Insecure { @@ -75,12 +75,40 @@ func TLSConfigFor(c *Config) (*tls.Config, error) { tlsConfig.RootCAs = rootCertPool(c.TLS.CAData) } + var staticCert *tls.Certificate if c.HasCertAuth() { + // If key/cert were provided, verify them before setting up + // tlsConfig.GetClientCertificate. cert, err := tls.X509KeyPair(c.TLS.CertData, c.TLS.KeyData) if err != nil { return nil, err } - tlsConfig.Certificates = []tls.Certificate{cert} + staticCert = &cert + } + + if c.HasCertAuth() || c.HasCertCallback() { + tlsConfig.GetClientCertificate = func(*tls.CertificateRequestInfo) (*tls.Certificate, error) { + // Note: static key/cert data always take precedence over cert + // callback. + if staticCert != nil { + return staticCert, nil + } + if c.HasCertCallback() { + cert, err := c.TLS.GetCert() + if err != nil { + return nil, err + } + // GetCert may return empty value, meaning no cert. + if cert != nil { + return cert, nil + } + } + + // Both c.TLS.CertData/KeyData were unset and GetCert didn't return + // anything. Return an empty tls.Certificate, no client cert will + // be sent to the server. + return &tls.Certificate{}, nil + } } return tlsConfig, nil diff --git a/vendor/k8s.io/client-go/transport/transport_test.go b/vendor/k8s.io/client-go/transport/transport_test.go index 4d2d78f86..eead38aac 100644 --- a/vendor/k8s.io/client-go/transport/transport_test.go +++ b/vendor/k8s.io/client-go/transport/transport_test.go @@ -17,6 +17,8 @@ limitations under the License. package transport import ( + "crypto/tls" + "errors" "net/http" "testing" ) @@ -91,16 +93,37 @@ stR0Yiw0buV6DL/moUO0HIM9Bjh96HJp+LxiIS6UCdIhMPp5HoQa func TestNew(t *testing.T) { testCases := map[string]struct { - Config *Config - Err bool - TLS bool - Default bool + Config *Config + Err bool + TLS bool + TLSCert bool + TLSErr bool + Default bool + Insecure bool + DefaultRoots bool }{ "default transport": { Default: true, Config: &Config{}, }, + "insecure": { + TLS: true, + Insecure: true, + DefaultRoots: true, + Config: &Config{TLS: TLSConfig{ + Insecure: true, + }}, + }, + + "server name": { + TLS: true, + DefaultRoots: true, + Config: &Config{TLS: TLSConfig{ + ServerName: "foo", + }}, + }, + "ca transport": { TLS: true, Config: &Config{ @@ -128,7 +151,8 @@ func TestNew(t *testing.T) { }, "cert transport": { - TLS: true, + TLS: true, + TLSCert: true, Config: &Config{ TLS: TLSConfig{ CAData: []byte(rootCACert), @@ -158,7 +182,8 @@ func TestNew(t *testing.T) { }, }, "key data overriding bad file cert transport": { - TLS: true, + TLS: true, + TLSCert: true, Config: &Config{ TLS: TLSConfig{ CAData: []byte(rootCACert), @@ -168,37 +193,120 @@ func TestNew(t *testing.T) { }, }, }, + "callback cert and key": { + TLS: true, + TLSCert: true, + Config: &Config{ + TLS: TLSConfig{ + CAData: []byte(rootCACert), + GetCert: func() (*tls.Certificate, error) { + crt, err := tls.X509KeyPair([]byte(certData), []byte(keyData)) + return &crt, err + }, + }, + }, + }, + "cert callback error": { + TLS: true, + TLSCert: true, + TLSErr: true, + Config: &Config{ + TLS: TLSConfig{ + CAData: []byte(rootCACert), + GetCert: func() (*tls.Certificate, error) { + return nil, errors.New("GetCert failure") + }, + }, + }, + }, + "cert data overrides empty callback result": { + TLS: true, + TLSCert: true, + Config: &Config{ + TLS: TLSConfig{ + CAData: []byte(rootCACert), + GetCert: func() (*tls.Certificate, error) { + return nil, nil + }, + CertData: []byte(certData), + KeyData: []byte(keyData), + }, + }, + }, + "callback returns nothing": { + TLS: true, + TLSCert: true, + Config: &Config{ + TLS: TLSConfig{ + CAData: []byte(rootCACert), + GetCert: func() (*tls.Certificate, error) { + return nil, nil + }, + }, + }, + }, } for k, testCase := range testCases { - transport, err := New(testCase.Config) - switch { - case testCase.Err && err == nil: - t.Errorf("%s: unexpected non-error", k) - continue - case !testCase.Err && err != nil: - t.Errorf("%s: unexpected error: %v", k, err) - continue - } + t.Run(k, func(t *testing.T) { + rt, err := New(testCase.Config) + switch { + case testCase.Err && err == nil: + t.Fatal("unexpected non-error") + case !testCase.Err && err != nil: + t.Fatalf("unexpected error: %v", err) + } + if testCase.Err { + return + } - switch { - case testCase.Default && transport != http.DefaultTransport: - t.Errorf("%s: expected the default transport, got %#v", k, transport) - continue - case !testCase.Default && transport == http.DefaultTransport: - t.Errorf("%s: expected non-default transport, got %#v", k, transport) - continue - } + switch { + case testCase.Default && rt != http.DefaultTransport: + t.Fatalf("got %#v, expected the default transport", rt) + case !testCase.Default && rt == http.DefaultTransport: + t.Fatalf("got %#v, expected non-default transport", rt) + } - // We only know how to check TLSConfig on http.Transports - if transport, ok := transport.(*http.Transport); ok { + // We only know how to check TLSConfig on http.Transports + transport := rt.(*http.Transport) switch { case testCase.TLS && transport.TLSClientConfig == nil: - t.Errorf("%s: expected TLSClientConfig, got %#v", k, transport) - continue + t.Fatalf("got %#v, expected TLSClientConfig", transport) case !testCase.TLS && transport.TLSClientConfig != nil: - t.Errorf("%s: expected no TLSClientConfig, got %#v", k, transport) - continue + t.Fatalf("got %#v, expected no TLSClientConfig", transport) } - } + if !testCase.TLS { + return + } + + switch { + case testCase.DefaultRoots && transport.TLSClientConfig.RootCAs != nil: + t.Fatalf("got %#v, expected nil root CAs", transport.TLSClientConfig.RootCAs) + case !testCase.DefaultRoots && transport.TLSClientConfig.RootCAs == nil: + t.Fatalf("got %#v, expected non-nil root CAs", transport.TLSClientConfig.RootCAs) + } + + switch { + case testCase.Insecure != transport.TLSClientConfig.InsecureSkipVerify: + t.Fatalf("got %#v, expected %#v", transport.TLSClientConfig.InsecureSkipVerify, testCase.Insecure) + } + + switch { + case testCase.TLSCert && transport.TLSClientConfig.GetClientCertificate == nil: + t.Fatalf("got %#v, expected TLSClientConfig.GetClientCertificate", transport.TLSClientConfig) + case !testCase.TLSCert && transport.TLSClientConfig.GetClientCertificate != nil: + t.Fatalf("got %#v, expected no TLSClientConfig.GetClientCertificate", transport.TLSClientConfig) + } + if !testCase.TLSCert { + return + } + + _, err = transport.TLSClientConfig.GetClientCertificate(nil) + switch { + case testCase.TLSErr && err == nil: + t.Error("got nil error from GetClientCertificate, expected non-nil") + case !testCase.TLSErr && err != nil: + t.Errorf("got error from GetClientCertificate: %q, expected nil", err) + } + }) } } diff --git a/vendor/k8s.io/client-go/util/buffer/BUILD b/vendor/k8s.io/client-go/util/buffer/BUILD deleted file mode 100644 index d3b2652ce..000000000 --- a/vendor/k8s.io/client-go/util/buffer/BUILD +++ /dev/null @@ -1,29 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") - -go_library( - name = "go_default_library", - srcs = ["ring_growing.go"], - importpath = "k8s.io/client-go/util/buffer", - visibility = ["//visibility:public"], -) - -go_test( - name = "go_default_test", - srcs = ["ring_growing_test.go"], - embed = [":go_default_library"], - deps = ["//vendor/github.com/stretchr/testify/assert:go_default_library"], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/client-go/util/buffer/ring_growing_test.go b/vendor/k8s.io/client-go/util/buffer/ring_growing_test.go index 231b836c0..31a4c079d 100644 --- a/vendor/k8s.io/client-go/util/buffer/ring_growing_test.go +++ b/vendor/k8s.io/client-go/util/buffer/ring_growing_test.go @@ -39,7 +39,7 @@ func TestGrowth(t *testing.T) { } assert.Equalf(t, x, read, "expected to have read %d items: %d", x, read) assert.Zerof(t, g.readable, "expected readable to be zero: %d", g.readable) - assert.Equalf(t, g.n, 16, "expected N to be 16: %d", g.n) + assert.Equalf(t, 16, g.n, "expected N to be 16: %d", g.n) } func TestEmpty(t *testing.T) { diff --git a/vendor/k8s.io/client-go/util/cert/BUILD b/vendor/k8s.io/client-go/util/cert/BUILD deleted file mode 100644 index 799979d46..000000000 --- a/vendor/k8s.io/client-go/util/cert/BUILD +++ /dev/null @@ -1,47 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_test( - name = "go_default_test", - srcs = [ - "csr_test.go", - "pem_test.go", - ], - data = glob(["testdata/**"]), - embed = [":go_default_library"], -) - -go_library( - name = "go_default_library", - srcs = [ - "cert.go", - "csr.go", - "io.go", - "pem.go", - ], - data = [ - "testdata/dontUseThisKey.pem", - ], - importpath = "k8s.io/client-go/util/cert", -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/util/cert/triple:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/util/cert/OWNERS b/vendor/k8s.io/client-go/util/cert/OWNERS new file mode 100644 index 000000000..470b7a1c9 --- /dev/null +++ b/vendor/k8s.io/client-go/util/cert/OWNERS @@ -0,0 +1,7 @@ +approvers: +- sig-auth-certificates-approvers +reviewers: +- sig-auth-certificates-reviewers +labels: +- sig/auth + diff --git a/vendor/k8s.io/client-go/util/cert/cert.go b/vendor/k8s.io/client-go/util/cert/cert.go index fb7f5facc..3429c82cd 100644 --- a/vendor/k8s.io/client-go/util/cert/cert.go +++ b/vendor/k8s.io/client-go/util/cert/cert.go @@ -18,8 +18,10 @@ package cert import ( "bytes" + "crypto" "crypto/ecdsa" "crypto/elliptic" + "crypto/rand" cryptorand "crypto/rand" "crypto/rsa" "crypto/x509" @@ -27,9 +29,12 @@ import ( "encoding/pem" "errors" "fmt" + "io/ioutil" "math" "math/big" "net" + "path" + "strings" "time" ) @@ -60,7 +65,7 @@ func NewPrivateKey() (*rsa.PrivateKey, error) { } // NewSelfSignedCACert creates a CA certificate -func NewSelfSignedCACert(cfg Config, key *rsa.PrivateKey) (*x509.Certificate, error) { +func NewSelfSignedCACert(cfg Config, key crypto.Signer) (*x509.Certificate, error) { now := time.Now() tmpl := x509.Certificate{ SerialNumber: new(big.Int).SetInt64(0), @@ -72,7 +77,7 @@ func NewSelfSignedCACert(cfg Config, key *rsa.PrivateKey) (*x509.Certificate, er NotAfter: now.Add(duration365d * 10).UTC(), KeyUsage: x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature | x509.KeyUsageCertSign, BasicConstraintsValid: true, - IsCA: true, + IsCA: true, } certDERBytes, err := x509.CreateCertificate(cryptorand.Reader, &tmpl, &tmpl, key.Public(), key) @@ -83,8 +88,8 @@ func NewSelfSignedCACert(cfg Config, key *rsa.PrivateKey) (*x509.Certificate, er } // NewSignedCert creates a signed certificate using the given CA certificate and key -func NewSignedCert(cfg Config, key *rsa.PrivateKey, caCert *x509.Certificate, caKey *rsa.PrivateKey) (*x509.Certificate, error) { - serial, err := cryptorand.Int(cryptorand.Reader, new(big.Int).SetInt64(math.MaxInt64)) +func NewSignedCert(cfg Config, key crypto.Signer, caCert *x509.Certificate, caKey crypto.Signer) (*x509.Certificate, error) { + serial, err := rand.Int(rand.Reader, new(big.Int).SetInt64(math.MaxInt64)) if err != nil { return nil, err } @@ -136,8 +141,38 @@ func MakeEllipticPrivateKeyPEM() ([]byte, error) { // GenerateSelfSignedCertKey creates a self-signed certificate and key for the given host. // Host may be an IP or a DNS name -// You may also specify additional subject alt names (either ip or dns names) for the certificate +// You may also specify additional subject alt names (either ip or dns names) for the certificate. func GenerateSelfSignedCertKey(host string, alternateIPs []net.IP, alternateDNS []string) ([]byte, []byte, error) { + return GenerateSelfSignedCertKeyWithFixtures(host, alternateIPs, alternateDNS, "") +} + +// GenerateSelfSignedCertKeyWithFixtures creates a self-signed certificate and key for the given host. +// Host may be an IP or a DNS name. You may also specify additional subject alt names (either ip or dns names) +// for the certificate. +// +// If fixtureDirectory is non-empty, it is a directory path which can contain pre-generated certs. The format is: +// _-_-.crt +// _-_-.key +// Certs/keys not existing in that directory are created. +func GenerateSelfSignedCertKeyWithFixtures(host string, alternateIPs []net.IP, alternateDNS []string, fixtureDirectory string) ([]byte, []byte, error) { + validFrom := time.Now().Add(-time.Hour) // valid an hour earlier to avoid flakes due to clock skew + maxAge := time.Hour * 24 * 365 // one year self-signed certs + + baseName := fmt.Sprintf("%s_%s_%s", host, strings.Join(ipsToStrings(alternateIPs), "-"), strings.Join(alternateDNS, "-")) + certFixturePath := path.Join(fixtureDirectory, baseName+".crt") + keyFixturePath := path.Join(fixtureDirectory, baseName+".key") + if len(fixtureDirectory) > 0 { + cert, err := ioutil.ReadFile(certFixturePath) + if err == nil { + key, err := ioutil.ReadFile(keyFixturePath) + if err == nil { + return cert, key, nil + } + return nil, nil, fmt.Errorf("cert %s can be read, but key %s cannot: %v", certFixturePath, keyFixturePath, err) + } + maxAge = 100 * time.Hour * 24 * 365 // 100 years fixtures + } + caKey, err := rsa.GenerateKey(cryptorand.Reader, 2048) if err != nil { return nil, nil, err @@ -148,12 +183,12 @@ func GenerateSelfSignedCertKey(host string, alternateIPs []net.IP, alternateDNS Subject: pkix.Name{ CommonName: fmt.Sprintf("%s-ca@%d", host, time.Now().Unix()), }, - NotBefore: time.Now(), - NotAfter: time.Now().Add(time.Hour * 24 * 365), + NotBefore: validFrom, + NotAfter: validFrom.Add(maxAge), KeyUsage: x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature | x509.KeyUsageCertSign, BasicConstraintsValid: true, - IsCA: true, + IsCA: true, } caDERBytes, err := x509.CreateCertificate(cryptorand.Reader, &caTemplate, &caTemplate, &caKey.PublicKey, caKey) @@ -176,8 +211,8 @@ func GenerateSelfSignedCertKey(host string, alternateIPs []net.IP, alternateDNS Subject: pkix.Name{ CommonName: fmt.Sprintf("%s@%d", host, time.Now().Unix()), }, - NotBefore: time.Now(), - NotAfter: time.Now().Add(time.Hour * 24 * 365), + NotBefore: validFrom, + NotAfter: validFrom.Add(maxAge), KeyUsage: x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature, ExtKeyUsage: []x509.ExtKeyUsage{x509.ExtKeyUsageServerAuth}, @@ -213,33 +248,22 @@ func GenerateSelfSignedCertKey(host string, alternateIPs []net.IP, alternateDNS return nil, nil, err } + if len(fixtureDirectory) > 0 { + if err := ioutil.WriteFile(certFixturePath, certBuffer.Bytes(), 0644); err != nil { + return nil, nil, fmt.Errorf("failed to write cert fixture to %s: %v", certFixturePath, err) + } + if err := ioutil.WriteFile(keyFixturePath, keyBuffer.Bytes(), 0644); err != nil { + return nil, nil, fmt.Errorf("failed to write key fixture to %s: %v", certFixturePath, err) + } + } + return certBuffer.Bytes(), keyBuffer.Bytes(), nil } -// FormatBytesCert receives byte array certificate and formats in human-readable format -func FormatBytesCert(cert []byte) (string, error) { - block, _ := pem.Decode(cert) - c, err := x509.ParseCertificate(block.Bytes) - if err != nil { - return "", fmt.Errorf("failed to parse certificate [%v]", err) +func ipsToStrings(ips []net.IP) []string { + ss := make([]string, 0, len(ips)) + for _, ip := range ips { + ss = append(ss, ip.String()) } - return FormatCert(c), nil -} - -// FormatCert receives certificate and formats in human-readable format -func FormatCert(c *x509.Certificate) string { - var ips []string - for _, ip := range c.IPAddresses { - ips = append(ips, ip.String()) - } - altNames := append(ips, c.DNSNames...) - res := fmt.Sprintf( - "Issuer: CN=%s | Subject: CN=%s | CA: %t\n", - c.Issuer.CommonName, c.Subject.CommonName, c.IsCA, - ) - res += fmt.Sprintf("Not before: %s Not After: %s", c.NotBefore, c.NotAfter) - if len(altNames) > 0 { - res += fmt.Sprintf("\nAlternate Names: %v", altNames) - } - return res + return ss } diff --git a/vendor/k8s.io/client-go/util/cert/io.go b/vendor/k8s.io/client-go/util/cert/io.go index a41f8054a..a57bf09d5 100644 --- a/vendor/k8s.io/client-go/util/cert/io.go +++ b/vendor/k8s.io/client-go/util/cert/io.go @@ -17,7 +17,11 @@ limitations under the License. package cert import ( + "crypto" + "crypto/ecdsa" + "crypto/rsa" "crypto/x509" + "encoding/pem" "fmt" "io/ioutil" "os" @@ -84,7 +88,8 @@ func WriteKey(keyPath string, data []byte) error { // can't find one, it will generate a new key and store it there. func LoadOrGenerateKeyFile(keyPath string) (data []byte, wasGenerated bool, err error) { loadedData, err := ioutil.ReadFile(keyPath) - if err == nil { + // Call verifyKeyData to ensure the file wasn't empty/corrupt. + if err == nil && verifyKeyData(loadedData) { return loadedData, false, err } if !os.IsNotExist(err) { @@ -101,6 +106,27 @@ func LoadOrGenerateKeyFile(keyPath string) (data []byte, wasGenerated bool, err return generatedData, true, nil } +// MarshalPrivateKeyToPEM converts a known private key type of RSA or ECDSA to +// a PEM encoded block or returns an error. +func MarshalPrivateKeyToPEM(privateKey crypto.PrivateKey) ([]byte, error) { + switch t := privateKey.(type) { + case *ecdsa.PrivateKey: + derBytes, err := x509.MarshalECPrivateKey(t) + if err != nil { + return nil, err + } + privateKeyPemBlock := &pem.Block{ + Type: ECPrivateKeyBlockType, + Bytes: derBytes, + } + return pem.EncodeToMemory(privateKeyPemBlock), nil + case *rsa.PrivateKey: + return EncodePrivateKeyPEM(t), nil + default: + return nil, fmt.Errorf("private key is not a recognized type: %T", privateKey) + } +} + // NewPool returns an x509.CertPool containing the certificates in the given PEM-encoded file. // Returns an error if the file could not be read, a certificate could not be parsed, or if the file does not contain any certificates func NewPool(filename string) (*x509.CertPool, error) { @@ -156,3 +182,12 @@ func PublicKeysFromFile(file string) ([]interface{}, error) { } return keys, nil } + +// verifyKeyData returns true if the provided data appears to be a valid private key. +func verifyKeyData(data []byte) bool { + if len(data) == 0 { + return false + } + _, err := ParsePrivateKeyPEM(data) + return err == nil +} diff --git a/vendor/k8s.io/client-go/util/cert/triple/BUILD b/vendor/k8s.io/client-go/util/cert/triple/BUILD deleted file mode 100644 index 6399d0e95..000000000 --- a/vendor/k8s.io/client-go/util/cert/triple/BUILD +++ /dev/null @@ -1,26 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = ["triple.go"], - importpath = "k8s.io/client-go/util/cert/triple", - deps = ["//vendor/k8s.io/client-go/util/cert:go_default_library"], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/util/cert/triple/triple.go b/vendor/k8s.io/client-go/util/cert/triple/triple.go deleted file mode 100644 index b89ef7240..000000000 --- a/vendor/k8s.io/client-go/util/cert/triple/triple.go +++ /dev/null @@ -1,116 +0,0 @@ -/* -Copyright 2016 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Package triple generates key-certificate pairs for the -// triple (CA, Server, Client). -package triple - -import ( - "crypto/rsa" - "crypto/x509" - "fmt" - "net" - - certutil "k8s.io/client-go/util/cert" -) - -type KeyPair struct { - Key *rsa.PrivateKey - Cert *x509.Certificate -} - -func NewCA(name string) (*KeyPair, error) { - key, err := certutil.NewPrivateKey() - if err != nil { - return nil, fmt.Errorf("unable to create a private key for a new CA: %v", err) - } - - config := certutil.Config{ - CommonName: name, - } - - cert, err := certutil.NewSelfSignedCACert(config, key) - if err != nil { - return nil, fmt.Errorf("unable to create a self-signed certificate for a new CA: %v", err) - } - - return &KeyPair{ - Key: key, - Cert: cert, - }, nil -} - -func NewServerKeyPair(ca *KeyPair, commonName, svcName, svcNamespace, dnsDomain string, ips, hostnames []string) (*KeyPair, error) { - key, err := certutil.NewPrivateKey() - if err != nil { - return nil, fmt.Errorf("unable to create a server private key: %v", err) - } - - namespacedName := fmt.Sprintf("%s.%s", svcName, svcNamespace) - internalAPIServerFQDN := []string{ - svcName, - namespacedName, - fmt.Sprintf("%s.svc", namespacedName), - fmt.Sprintf("%s.svc.%s", namespacedName, dnsDomain), - } - - altNames := certutil.AltNames{} - for _, ipStr := range ips { - ip := net.ParseIP(ipStr) - if ip != nil { - altNames.IPs = append(altNames.IPs, ip) - } - } - altNames.DNSNames = append(altNames.DNSNames, hostnames...) - altNames.DNSNames = append(altNames.DNSNames, internalAPIServerFQDN...) - - config := certutil.Config{ - CommonName: commonName, - AltNames: altNames, - Usages: []x509.ExtKeyUsage{x509.ExtKeyUsageServerAuth}, - } - cert, err := certutil.NewSignedCert(config, key, ca.Cert, ca.Key) - if err != nil { - return nil, fmt.Errorf("unable to sign the server certificate: %v", err) - } - - return &KeyPair{ - Key: key, - Cert: cert, - }, nil -} - -func NewClientKeyPair(ca *KeyPair, commonName string, organizations []string) (*KeyPair, error) { - key, err := certutil.NewPrivateKey() - if err != nil { - return nil, fmt.Errorf("unable to create a client private key: %v", err) - } - - config := certutil.Config{ - CommonName: commonName, - Organization: organizations, - Usages: []x509.ExtKeyUsage{x509.ExtKeyUsageClientAuth}, - } - cert, err := certutil.NewSignedCert(config, key, ca.Cert, ca.Key) - if err != nil { - return nil, fmt.Errorf("unable to sign the client certificate: %v", err) - } - - return &KeyPair{ - Key: key, - Cert: cert, - }, nil -} diff --git a/vendor/k8s.io/client-go/util/certificate/BUILD b/vendor/k8s.io/client-go/util/certificate/BUILD deleted file mode 100644 index dfc5c3933..000000000 --- a/vendor/k8s.io/client-go/util/certificate/BUILD +++ /dev/null @@ -1,66 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -licenses(["notice"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_test( - name = "go_default_test", - srcs = [ - "certificate_manager_test.go", - "certificate_store_test.go", - ], - embed = [":go_default_library"], - tags = ["automanaged"], - deps = [ - "//vendor/k8s.io/api/certificates/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/util/cert:go_default_library", - ], -) - -go_library( - name = "go_default_library", - srcs = [ - "certificate_manager.go", - "certificate_store.go", - ], - importpath = "k8s.io/client-go/util/certificate", - tags = ["automanaged"], - deps = [ - "//vendor/github.com/golang/glog:go_default_library", - "//vendor/k8s.io/api/certificates/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/util/cert:go_default_library", - "//vendor/k8s.io/client-go/util/certificate/csr:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/client-go/util/certificate/csr:all-srcs", - ], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/client-go/util/certificate/OWNERS b/vendor/k8s.io/client-go/util/certificate/OWNERS index 2dce803b3..470b7a1c9 100644 --- a/vendor/k8s.io/client-go/util/certificate/OWNERS +++ b/vendor/k8s.io/client-go/util/certificate/OWNERS @@ -1,8 +1,7 @@ -reviewers: -- mikedanese -- liggit -- smarterclayton approvers: -- mikedanese -- liggit -- smarterclayton +- sig-auth-certificates-approvers +reviewers: +- sig-auth-certificates-reviewers +labels: +- sig/auth + diff --git a/vendor/k8s.io/client-go/util/certificate/certificate_manager.go b/vendor/k8s.io/client-go/util/certificate/certificate_manager.go index e189c8479..ed74559e2 100644 --- a/vendor/k8s.io/client-go/util/certificate/certificate_manager.go +++ b/vendor/k8s.io/client-go/util/certificate/certificate_manager.go @@ -24,14 +24,16 @@ import ( "crypto/x509" "encoding/pem" "fmt" + "reflect" "sync" "time" - "github.com/golang/glog" + "k8s.io/klog" certificates "k8s.io/api/certificates/v1beta1" "k8s.io/apimachinery/pkg/api/errors" utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/wait" certificatesclient "k8s.io/client-go/kubernetes/typed/certificates/v1beta1" "k8s.io/client-go/util/cert" @@ -75,6 +77,13 @@ type Config struct { // part of rotation. It follows the same rules as the template parameter of // crypto.x509.CreateCertificateRequest in the Go standard libraries. Template *x509.CertificateRequest + // GetTemplate returns the CertificateRequest that will be used as a template for + // generating certificate signing requests for all new keys generated as + // part of rotation. It follows the same rules as the template parameter of + // crypto.x509.CreateCertificateRequest in the Go standard libraries. + // If no template is available, nil may be returned, and no certificate will be requested. + // If specified, takes precedence over Template. + GetTemplate func() *x509.CertificateRequest // Usages is the types of usages that certificates generated by the manager // can be used for. Usages []certificates.KeyUsage @@ -136,7 +145,10 @@ func (e *NoCertKeyError) Error() string { return string(*e) } type manager struct { certSigningRequestClient certificatesclient.CertificateSigningRequestInterface - template *x509.CertificateRequest + getTemplate func() *x509.CertificateRequest + lastRequestLock sync.Mutex + lastRequest *x509.CertificateRequest + dynamicTemplate bool usages []certificates.KeyUsage certStore Store certAccessLock sync.RWMutex @@ -158,9 +170,15 @@ func NewManager(config *Config) (Manager, error) { return nil, err } + getTemplate := config.GetTemplate + if getTemplate == nil { + getTemplate = func() *x509.CertificateRequest { return config.Template } + } + m := manager{ certSigningRequestClient: config.CertificateSigningRequestClient, - template: config.Template, + getTemplate: getTemplate, + dynamicTemplate: config.GetTemplate != nil, usages: config.Usages, certStore: config.CertificateStore, cert: cert, @@ -209,18 +227,38 @@ func (m *manager) Start() { // signing API, so don't start the certificate manager if we don't have a // client. if m.certSigningRequestClient == nil { - glog.V(2).Infof("Certificate rotation is not enabled, no connection to the apiserver.") + klog.V(2).Infof("Certificate rotation is not enabled, no connection to the apiserver.") return } - glog.V(2).Infof("Certificate rotation is enabled.") + klog.V(2).Infof("Certificate rotation is enabled.") + templateChanged := make(chan struct{}) go wait.Forever(func() { deadline := m.nextRotationDeadline() if sleepInterval := deadline.Sub(time.Now()); sleepInterval > 0 { - glog.V(2).Infof("Waiting %v for next certificate rotation", sleepInterval) - time.Sleep(sleepInterval) + klog.V(2).Infof("Waiting %v for next certificate rotation", sleepInterval) + + timer := time.NewTimer(sleepInterval) + defer timer.Stop() + + select { + case <-timer.C: + // unblock when deadline expires + case <-templateChanged: + if reflect.DeepEqual(m.getLastRequest(), m.getTemplate()) { + // if the template now matches what we last requested, restart the rotation deadline loop + return + } + klog.V(2).Infof("Certificate template changed, rotating") + } } + + // Don't enter rotateCerts and trigger backoff if we don't even have a template to request yet + if m.getTemplate() == nil { + return + } + backoff := wait.Backoff{ Duration: 2 * time.Second, Factor: 2, @@ -231,7 +269,18 @@ func (m *manager) Start() { utilruntime.HandleError(fmt.Errorf("Reached backoff limit, still unable to rotate certs: %v", err)) wait.PollInfinite(32*time.Second, m.rotateCerts) } - }, 0) + }, time.Second) + + if m.dynamicTemplate { + go wait.Forever(func() { + // check if the current template matches what we last requested + if !m.certSatisfiesTemplate() && !reflect.DeepEqual(m.getLastRequest(), m.getTemplate()) { + // if the template is different, queue up an interrupt of the rotation deadline loop. + // if we've requested a CSR that matches the new template by the time the interrupt is handled, the interrupt is disregarded. + templateChanged <- struct{}{} + } + }, time.Second) + } } func getCurrentCertificateOrBootstrap( @@ -272,7 +321,7 @@ func getCurrentCertificateOrBootstrap( if _, err := store.Update(bootstrapCertificatePEM, bootstrapKeyPEM); err != nil { utilruntime.HandleError(fmt.Errorf("Unable to set the cert/key pair to the bootstrap certificate: %v", err)) } else { - glog.V(4).Infof("Updated the store to contain the initial bootstrap certificate") + klog.V(4).Infof("Updated the store to contain the initial bootstrap certificate") } return &bootstrapCert, true, nil @@ -284,9 +333,9 @@ func getCurrentCertificateOrBootstrap( // This method also keeps track of "server health" by interpreting the responses it gets // from the server on the various calls it makes. func (m *manager) rotateCerts() (bool, error) { - glog.V(2).Infof("Rotating certificates") + klog.V(2).Infof("Rotating certificates") - csrPEM, keyPEM, privateKey, err := m.generateCSR() + template, csrPEM, keyPEM, privateKey, err := m.generateCSR() if err != nil { utilruntime.HandleError(fmt.Errorf("Unable to generate a certificate signing request: %v", err)) return false, nil @@ -300,6 +349,9 @@ func (m *manager) rotateCerts() (bool, error) { return false, m.updateServerError(err) } + // Once we've successfully submitted a CSR for this template, record that we did so + m.setLastRequest(template) + // Wait for the certificate to be signed. Instead of one long watch, we retry with slightly longer // intervals each time in order to tolerate failures from the server AND to preserve the liveliness // of the cert manager loop. This creates slightly more traffic against the API server in return @@ -337,6 +389,64 @@ func (m *manager) rotateCerts() (bool, error) { return true, nil } +// Check that the current certificate on disk satisfies the requests from the +// current template. +// +// Note that extra items in the certificate's SAN or orgs that don't exist in +// the template will not trigger a renewal. +// +// Requires certAccessLock to be locked. +func (m *manager) certSatisfiesTemplateLocked() bool { + if m.cert == nil { + return false + } + + if template := m.getTemplate(); template != nil { + if template.Subject.CommonName != m.cert.Leaf.Subject.CommonName { + klog.V(2).Infof("Current certificate CN (%s) does not match requested CN (%s)", m.cert.Leaf.Subject.CommonName, template.Subject.CommonName) + return false + } + + currentDNSNames := sets.NewString(m.cert.Leaf.DNSNames...) + desiredDNSNames := sets.NewString(template.DNSNames...) + missingDNSNames := desiredDNSNames.Difference(currentDNSNames) + if len(missingDNSNames) > 0 { + klog.V(2).Infof("Current certificate is missing requested DNS names %v", missingDNSNames.List()) + return false + } + + currentIPs := sets.NewString() + for _, ip := range m.cert.Leaf.IPAddresses { + currentIPs.Insert(ip.String()) + } + desiredIPs := sets.NewString() + for _, ip := range template.IPAddresses { + desiredIPs.Insert(ip.String()) + } + missingIPs := desiredIPs.Difference(currentIPs) + if len(missingIPs) > 0 { + klog.V(2).Infof("Current certificate is missing requested IP addresses %v", missingIPs.List()) + return false + } + + currentOrgs := sets.NewString(m.cert.Leaf.Subject.Organization...) + desiredOrgs := sets.NewString(template.Subject.Organization...) + missingOrgs := desiredOrgs.Difference(currentOrgs) + if len(missingOrgs) > 0 { + klog.V(2).Infof("Current certificate is missing requested orgs %v", missingOrgs.List()) + return false + } + } + + return true +} + +func (m *manager) certSatisfiesTemplate() bool { + m.certAccessLock.RLock() + defer m.certAccessLock.RUnlock() + return m.certSatisfiesTemplateLocked() +} + // nextRotationDeadline returns a value for the threshold at which the // current certificate should be rotated, 80%+/-10% of the expiration of the // certificate. @@ -349,7 +459,8 @@ func (m *manager) nextRotationDeadline() time.Time { m.certAccessLock.RLock() defer m.certAccessLock.RUnlock() - if m.cert == nil { + + if !m.certSatisfiesTemplateLocked() { return time.Now() } @@ -357,7 +468,7 @@ func (m *manager) nextRotationDeadline() time.Time { totalDuration := float64(notAfter.Sub(m.cert.Leaf.NotBefore)) deadline := m.cert.Leaf.NotBefore.Add(jitteryDuration(totalDuration)) - glog.V(2).Infof("Certificate expiration is %v, rotation deadline is %v", notAfter, deadline) + klog.V(2).Infof("Certificate expiration is %v, rotation deadline is %v", notAfter, deadline) if m.certificateExpiration != nil { m.certificateExpiration.Set(float64(notAfter.Unix())) } @@ -408,22 +519,38 @@ func (m *manager) updateServerError(err error) error { return nil } -func (m *manager) generateCSR() (csrPEM []byte, keyPEM []byte, key interface{}, err error) { +func (m *manager) generateCSR() (template *x509.CertificateRequest, csrPEM []byte, keyPEM []byte, key interface{}, err error) { // Generate a new private key. privateKey, err := ecdsa.GenerateKey(elliptic.P256(), cryptorand.Reader) if err != nil { - return nil, nil, nil, fmt.Errorf("unable to generate a new private key: %v", err) + return nil, nil, nil, nil, fmt.Errorf("unable to generate a new private key: %v", err) } der, err := x509.MarshalECPrivateKey(privateKey) if err != nil { - return nil, nil, nil, fmt.Errorf("unable to marshal the new key to DER: %v", err) + return nil, nil, nil, nil, fmt.Errorf("unable to marshal the new key to DER: %v", err) } keyPEM = pem.EncodeToMemory(&pem.Block{Type: cert.ECPrivateKeyBlockType, Bytes: der}) - csrPEM, err = cert.MakeCSRFromTemplate(privateKey, m.template) - if err != nil { - return nil, nil, nil, fmt.Errorf("unable to create a csr from the private key: %v", err) + template = m.getTemplate() + if template == nil { + return nil, nil, nil, nil, fmt.Errorf("unable to create a csr, no template available") } - return csrPEM, keyPEM, privateKey, nil + csrPEM, err = cert.MakeCSRFromTemplate(privateKey, template) + if err != nil { + return nil, nil, nil, nil, fmt.Errorf("unable to create a csr from the private key: %v", err) + } + return template, csrPEM, keyPEM, privateKey, nil +} + +func (m *manager) getLastRequest() *x509.CertificateRequest { + m.lastRequestLock.Lock() + defer m.lastRequestLock.Unlock() + return m.lastRequest +} + +func (m *manager) setLastRequest(r *x509.CertificateRequest) { + m.lastRequestLock.Lock() + defer m.lastRequestLock.Unlock() + m.lastRequest = r } diff --git a/vendor/k8s.io/client-go/util/certificate/certificate_manager_test.go b/vendor/k8s.io/client-go/util/certificate/certificate_manager_test.go index 6a23f0426..545097ea4 100644 --- a/vendor/k8s.io/client-go/util/certificate/certificate_manager_test.go +++ b/vendor/k8s.io/client-go/util/certificate/certificate_manager_test.go @@ -22,6 +22,7 @@ import ( "crypto/x509" "crypto/x509/pkix" "fmt" + "net" "strings" "testing" "time" @@ -186,7 +187,7 @@ func TestSetRotationDeadline(t *testing.T) { NotAfter: tc.notAfter, }, }, - template: &x509.CertificateRequest{}, + getTemplate: func() *x509.CertificateRequest { return &x509.CertificateRequest{} }, usages: []certificates.KeyUsage{}, certificateExpiration: &g, } @@ -212,6 +213,170 @@ func TestSetRotationDeadline(t *testing.T) { } } +func TestCertSatisfiesTemplate(t *testing.T) { + testCases := []struct { + name string + cert *x509.Certificate + template *x509.CertificateRequest + shouldSatisfy bool + }{ + { + name: "No certificate, no template", + cert: nil, + template: nil, + shouldSatisfy: false, + }, + { + name: "No certificate", + cert: nil, + template: &x509.CertificateRequest{}, + shouldSatisfy: false, + }, + { + name: "No template", + cert: &x509.Certificate{ + Subject: pkix.Name{ + CommonName: "system:node:fake-node-name", + }, + }, + template: nil, + shouldSatisfy: true, + }, + { + name: "Mismatched common name", + cert: &x509.Certificate{ + Subject: pkix.Name{ + CommonName: "system:node:fake-node-name-2", + }, + }, + template: &x509.CertificateRequest{ + Subject: pkix.Name{ + CommonName: "system:node:fake-node-name", + }, + }, + shouldSatisfy: false, + }, + { + name: "Missing orgs in certificate", + cert: &x509.Certificate{ + Subject: pkix.Name{ + Organization: []string{"system:nodes"}, + }, + }, + template: &x509.CertificateRequest{ + Subject: pkix.Name{ + Organization: []string{"system:nodes", "foobar"}, + }, + }, + shouldSatisfy: false, + }, + { + name: "Extra orgs in certificate", + cert: &x509.Certificate{ + Subject: pkix.Name{ + Organization: []string{"system:nodes", "foobar"}, + }, + }, + template: &x509.CertificateRequest{ + Subject: pkix.Name{ + Organization: []string{"system:nodes"}, + }, + }, + shouldSatisfy: true, + }, + { + name: "Missing DNS names in certificate", + cert: &x509.Certificate{ + Subject: pkix.Name{}, + DNSNames: []string{"foo.example.com"}, + }, + template: &x509.CertificateRequest{ + Subject: pkix.Name{}, + DNSNames: []string{"foo.example.com", "bar.example.com"}, + }, + shouldSatisfy: false, + }, + { + name: "Extra DNS names in certificate", + cert: &x509.Certificate{ + Subject: pkix.Name{}, + DNSNames: []string{"foo.example.com", "bar.example.com"}, + }, + template: &x509.CertificateRequest{ + Subject: pkix.Name{}, + DNSNames: []string{"foo.example.com"}, + }, + shouldSatisfy: true, + }, + { + name: "Missing IP addresses in certificate", + cert: &x509.Certificate{ + Subject: pkix.Name{}, + IPAddresses: []net.IP{net.ParseIP("192.168.1.1")}, + }, + template: &x509.CertificateRequest{ + Subject: pkix.Name{}, + IPAddresses: []net.IP{net.ParseIP("192.168.1.1"), net.ParseIP("192.168.1.2")}, + }, + shouldSatisfy: false, + }, + { + name: "Extra IP addresses in certificate", + cert: &x509.Certificate{ + Subject: pkix.Name{}, + IPAddresses: []net.IP{net.ParseIP("192.168.1.1"), net.ParseIP("192.168.1.2")}, + }, + template: &x509.CertificateRequest{ + Subject: pkix.Name{}, + IPAddresses: []net.IP{net.ParseIP("192.168.1.1")}, + }, + shouldSatisfy: true, + }, + { + name: "Matching certificate", + cert: &x509.Certificate{ + Subject: pkix.Name{ + CommonName: "system:node:fake-node-name", + Organization: []string{"system:nodes"}, + }, + DNSNames: []string{"foo.example.com"}, + IPAddresses: []net.IP{net.ParseIP("192.168.1.1")}, + }, + template: &x509.CertificateRequest{ + Subject: pkix.Name{ + CommonName: "system:node:fake-node-name", + Organization: []string{"system:nodes"}, + }, + DNSNames: []string{"foo.example.com"}, + IPAddresses: []net.IP{net.ParseIP("192.168.1.1")}, + }, + shouldSatisfy: true, + }, + } + + for _, tc := range testCases { + t.Run(tc.name, func(t *testing.T) { + var tlsCert *tls.Certificate + + if tc.cert != nil { + tlsCert = &tls.Certificate{ + Leaf: tc.cert, + } + } + + m := manager{ + cert: tlsCert, + getTemplate: func() *x509.CertificateRequest { return tc.template }, + } + + result := m.certSatisfiesTemplate() + if result != tc.shouldSatisfy { + t.Errorf("cert: %+v, template: %+v, certSatisfiesTemplate returned %v, want %v", m.cert, tc.template, result, tc.shouldSatisfy) + } + }) + } +} + func TestRotateCertCreateCSRError(t *testing.T) { now := time.Now() m := manager{ @@ -221,8 +386,8 @@ func TestRotateCertCreateCSRError(t *testing.T) { NotAfter: now.Add(-1 * time.Hour), }, }, - template: &x509.CertificateRequest{}, - usages: []certificates.KeyUsage{}, + getTemplate: func() *x509.CertificateRequest { return &x509.CertificateRequest{} }, + usages: []certificates.KeyUsage{}, certSigningRequestClient: fakeClient{ failureType: createError, }, @@ -244,8 +409,8 @@ func TestRotateCertWaitingForResultError(t *testing.T) { NotAfter: now.Add(-1 * time.Hour), }, }, - template: &x509.CertificateRequest{}, - usages: []certificates.KeyUsage{}, + getTemplate: func() *x509.CertificateRequest { return &x509.CertificateRequest{} }, + usages: []certificates.KeyUsage{}, certSigningRequestClient: fakeClient{ failureType: watchError, }, diff --git a/vendor/k8s.io/client-go/util/certificate/certificate_store.go b/vendor/k8s.io/client-go/util/certificate/certificate_store.go index 42a40dcdf..d26666154 100644 --- a/vendor/k8s.io/client-go/util/certificate/certificate_store.go +++ b/vendor/k8s.io/client-go/util/certificate/certificate_store.go @@ -21,13 +21,12 @@ import ( "crypto/x509" "encoding/pem" "fmt" - "io/ioutil" "os" "path/filepath" "strings" "time" - "github.com/golang/glog" + "k8s.io/klog" ) const ( @@ -46,6 +45,15 @@ type fileStore struct { keyFile string } +// FileStore is a store that provides certificate retrieval as well as +// the path on disk of the current PEM. +type FileStore interface { + Store + // CurrentPath returns the path on disk of the current certificate/key + // pair encoded as PEM files. + CurrentPath() string +} + // NewFileStore returns a concrete implementation of a Store that is based on // storing the cert/key pairs in a single file per pair on disk in the // designated directory. When starting up it will look for the currently @@ -64,7 +72,7 @@ func NewFileStore( certDirectory string, keyDirectory string, certFile string, - keyFile string) (Store, error) { + keyFile string) (FileStore, error) { s := fileStore{ pairNamePrefix: pairNamePrefix, @@ -79,6 +87,11 @@ func NewFileStore( return &s, nil } +// CurrentPath returns the path to the current version of these certificates. +func (s *fileStore) CurrentPath() string { + return filepath.Join(s.certDirectory, s.filename(currentPair)) +} + // recover checks if there is a certificate rotation that was interrupted while // progress, and if so, attempts to recover to a good state. func (s *fileStore) recover() error { @@ -114,7 +127,7 @@ func (s *fileStore) Current() (*tls.Certificate, error) { if pairFileExists, err := fileExists(pairFile); err != nil { return nil, err } else if pairFileExists { - glog.Infof("Loading cert/key pair from %q.", pairFile) + klog.Infof("Loading cert/key pair from %q.", pairFile) return loadFile(pairFile) } @@ -127,7 +140,7 @@ func (s *fileStore) Current() (*tls.Certificate, error) { return nil, err } if certFileExists && keyFileExists { - glog.Infof("Loading cert/key pair from (%q, %q).", s.certFile, s.keyFile) + klog.Infof("Loading cert/key pair from (%q, %q).", s.certFile, s.keyFile) return loadX509KeyPair(s.certFile, s.keyFile) } @@ -142,7 +155,7 @@ func (s *fileStore) Current() (*tls.Certificate, error) { return nil, err } if certFileExists && keyFileExists { - glog.Infof("Loading cert/key pair from (%q, %q).", c, k) + klog.Infof("Loading cert/key pair from (%q, %q).", c, k) return loadX509KeyPair(c, k) } @@ -157,11 +170,9 @@ func (s *fileStore) Current() (*tls.Certificate, error) { } func loadFile(pairFile string) (*tls.Certificate, error) { - certBlock, keyBlock, err := loadCertKeyBlocks(pairFile) - if err != nil { - return nil, err - } - cert, err := tls.X509KeyPair(pem.EncodeToMemory(certBlock), pem.EncodeToMemory(keyBlock)) + // LoadX509KeyPair knows how to parse combined cert and private key from + // the same file. + cert, err := tls.LoadX509KeyPair(pairFile, pairFile) if err != nil { return nil, fmt.Errorf("could not convert data from %q into cert/key pair: %v", pairFile, err) } @@ -173,22 +184,6 @@ func loadFile(pairFile string) (*tls.Certificate, error) { return &cert, nil } -func loadCertKeyBlocks(pairFile string) (cert *pem.Block, key *pem.Block, err error) { - data, err := ioutil.ReadFile(pairFile) - if err != nil { - return nil, nil, fmt.Errorf("could not load cert/key pair from %q: %v", pairFile, err) - } - certBlock, rest := pem.Decode(data) - if certBlock == nil { - return nil, nil, fmt.Errorf("could not decode the first block from %q from expected PEM format", pairFile) - } - keyBlock, _ := pem.Decode(rest) - if keyBlock == nil { - return nil, nil, fmt.Errorf("could not decode the second block from %q from expected PEM format", pairFile) - } - return certBlock, keyBlock, nil -} - func (s *fileStore) Update(certData, keyData []byte) (*tls.Certificate, error) { ts := time.Now().Format("2006-01-02-15-04-05") pemFilename := s.filename(ts) diff --git a/vendor/k8s.io/client-go/util/certificate/certificate_store_test.go b/vendor/k8s.io/client-go/util/certificate/certificate_store_test.go index 5d4d860d0..f18a6da58 100644 --- a/vendor/k8s.io/client-go/util/certificate/certificate_store_test.go +++ b/vendor/k8s.io/client-go/util/certificate/certificate_store_test.go @@ -17,12 +17,11 @@ limitations under the License. package certificate import ( + "bytes" "io/ioutil" "os" "path/filepath" "testing" - - "k8s.io/client-go/util/cert" ) func TestUpdateSymlinkExistingFileError(t *testing.T) { @@ -69,16 +68,16 @@ func TestUpdateSymlinkNewFileNotExist(t *testing.T) { pairNamePrefix: "kubelet", } if err := s.updateSymlink(oldPairFile); err != nil { - t.Errorf("Got %v, wanted successful update of the symlink to point to %q", err, oldPairFile) + t.Errorf("Got error %v, wanted successful update of the symlink to point to %q", err, oldPairFile) } if _, err := os.Stat(oldPairFile); err != nil { - t.Errorf("Got %v, wanted file %q to be there.", oldPairFile, err) + t.Errorf("Got error %v, wanted file %q to be there.", err, oldPairFile) } currentPairFile := filepath.Join(dir, "kubelet-current.pem") if fi, err := os.Lstat(currentPairFile); err != nil { - t.Errorf("Got %v, wanted file %q to be there", currentPairFile, err) + t.Errorf("Got error %v, wanted file %q to be there", err, currentPairFile) } else if fi.Mode()&os.ModeSymlink != os.ModeSymlink { t.Errorf("Got %q not a symlink.", currentPairFile) } @@ -113,7 +112,7 @@ func TestUpdateSymlinkNoSymlink(t *testing.T) { } if _, err := os.Stat(pairFile); err != nil { - t.Errorf("Got error %v, wanted file %q to be there", pairFile, err) + t.Errorf("Got error %v, wanted file %q to be there", err, pairFile) } currentPairFile := filepath.Join(dir, "kubelet-current.pem") if fi, err := os.Lstat(currentPairFile); err != nil { @@ -178,96 +177,6 @@ func TestUpdateSymlinkReplaceExistingSymlink(t *testing.T) { } } -func TestLoadCertKeyBlocksNoFile(t *testing.T) { - dir, err := ioutil.TempDir("", "k8s-test-load-cert-key-blocks") - if err != nil { - t.Fatalf("Unable to create the test directory %q: %v", dir, err) - } - defer func() { - if err := os.RemoveAll(dir); err != nil { - t.Errorf("Unable to clean up test directory %q: %v", dir, err) - } - }() - - pairFile := filepath.Join(dir, "kubelet-pair.pem") - - if _, _, err := loadCertKeyBlocks(pairFile); err == nil { - t.Errorf("Got no error, but expected %q not found.", pairFile) - } -} - -func TestLoadCertKeyBlocksEmptyFile(t *testing.T) { - dir, err := ioutil.TempDir("", "k8s-test-load-cert-key-blocks") - if err != nil { - t.Fatalf("Unable to create the test directory %q: %v", dir, err) - } - defer func() { - if err := os.RemoveAll(dir); err != nil { - t.Errorf("Unable to clean up test directory %q: %v", dir, err) - } - }() - - pairFile := filepath.Join(dir, "kubelet-pair.pem") - if err := ioutil.WriteFile(pairFile, nil, 0600); err != nil { - t.Fatalf("Unable to create the file %q: %v", pairFile, err) - } - - if _, _, err := loadCertKeyBlocks(pairFile); err == nil { - t.Errorf("Got no error, but expected %q not found.", pairFile) - } -} - -func TestLoadCertKeyBlocksPartialFile(t *testing.T) { - dir, err := ioutil.TempDir("", "k8s-test-load-cert-key-blocks") - if err != nil { - t.Fatalf("Unable to create the test directory %q: %v", dir, err) - } - defer func() { - if err := os.RemoveAll(dir); err != nil { - t.Errorf("Unable to clean up test directory %q: %v", dir, err) - } - }() - - pairFile := filepath.Join(dir, "kubelet-pair.pem") - if err := ioutil.WriteFile(pairFile, storeCertData.certificatePEM, 0600); err != nil { - t.Fatalf("Unable to create the file %q: %v", pairFile, err) - } - - if _, _, err := loadCertKeyBlocks(pairFile); err == nil { - t.Errorf("Got no error, but expected %q invalid.", pairFile) - } -} - -func TestLoadCertKeyBlocks(t *testing.T) { - dir, err := ioutil.TempDir("", "k8s-test-load-cert-key-blocks") - if err != nil { - t.Fatalf("Unable to create the test directory %q: %v", dir, err) - } - defer func() { - if err := os.RemoveAll(dir); err != nil { - t.Errorf("Unable to clean up test directory %q: %v", dir, err) - } - }() - - pairFile := filepath.Join(dir, "kubelet-pair.pem") - data := append(storeCertData.certificatePEM, []byte("\n")...) - data = append(data, storeCertData.keyPEM...) - if err := ioutil.WriteFile(pairFile, data, 0600); err != nil { - t.Fatalf("Unable to create the file %q: %v", pairFile, err) - } - - certBlock, keyBlock, err := loadCertKeyBlocks(pairFile) - if err != nil { - t.Errorf("Got %v, but expected no error.", pairFile) - } - if certBlock.Type != cert.CertificateBlockType { - t.Errorf("Got %q loaded from the pair file, expected a %q.", certBlock.Type, cert.CertificateBlockType) - } - if keyBlock.Type != cert.RSAPrivateKeyBlockType { - t.Errorf("Got %q loaded from the pair file, expected a %q.", keyBlock.Type, cert.RSAPrivateKeyBlockType) - } -} - func TestLoadFile(t *testing.T) { dir, err := ioutil.TempDir("", "k8s-test-load-cert-key-blocks") if err != nil { @@ -280,21 +189,30 @@ func TestLoadFile(t *testing.T) { }() pairFile := filepath.Join(dir, "kubelet-pair.pem") - data := append(storeCertData.certificatePEM, []byte("\n")...) - data = append(data, storeCertData.keyPEM...) - if err := ioutil.WriteFile(pairFile, data, 0600); err != nil { - t.Fatalf("Unable to create the file %q: %v", pairFile, err) - } - cert, err := loadFile(pairFile) - if err != nil { - t.Fatalf("Could not load certificate from disk: %v", err) + tests := []struct { + desc string + data []byte + }{ + {desc: "cert and key", data: bytes.Join([][]byte{storeCertData.certificatePEM, storeCertData.keyPEM}, []byte("\n"))}, + {desc: "key and cert", data: bytes.Join([][]byte{storeCertData.keyPEM, storeCertData.certificatePEM}, []byte("\n"))}, } - if cert == nil { - t.Fatalf("There was no error, but no certificate data was returned.") - } - if cert.Leaf == nil { - t.Fatalf("Got an empty leaf, expected private data.") + for _, tt := range tests { + t.Run(tt.desc, func(t *testing.T) { + if err := ioutil.WriteFile(pairFile, tt.data, 0600); err != nil { + t.Fatalf("Unable to create the file %q: %v", pairFile, err) + } + cert, err := loadFile(pairFile) + if err != nil { + t.Fatalf("Could not load certificate from disk: %v", err) + } + if cert == nil { + t.Fatalf("There was no error, but no certificate data was returned.") + } + if cert.Leaf == nil { + t.Fatalf("Got an empty leaf, expected private data.") + } + }) } } diff --git a/vendor/k8s.io/client-go/util/certificate/csr/BUILD b/vendor/k8s.io/client-go/util/certificate/csr/BUILD deleted file mode 100644 index c1bcd9578..000000000 --- a/vendor/k8s.io/client-go/util/certificate/csr/BUILD +++ /dev/null @@ -1,53 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_library( - name = "go_default_library", - srcs = ["csr.go"], - importpath = "k8s.io/client-go/util/certificate/csr", - deps = [ - "//vendor/github.com/golang/glog:go_default_library", - "//vendor/k8s.io/api/certificates/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - "//vendor/k8s.io/client-go/util/cert:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) - -go_test( - name = "go_default_test", - srcs = ["csr_test.go"], - embed = [":go_default_library"], - deps = [ - "//vendor/k8s.io/api/certificates/v1beta1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1:go_default_library", - "//vendor/k8s.io/client-go/util/cert:go_default_library", - ], -) diff --git a/vendor/k8s.io/client-go/util/certificate/csr/csr.go b/vendor/k8s.io/client-go/util/certificate/csr/csr.go index 22112a5b5..6338eef93 100644 --- a/vendor/k8s.io/client-go/util/certificate/csr/csr.go +++ b/vendor/k8s.io/client-go/util/certificate/csr/csr.go @@ -18,64 +18,27 @@ package csr import ( "crypto" - "crypto/sha512" "crypto/x509" - "crypto/x509/pkix" - "encoding/base64" "encoding/pem" "fmt" - "github.com/golang/glog" "reflect" "time" + "k8s.io/klog" + certificates "k8s.io/api/certificates/v1beta1" "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/fields" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/wait" "k8s.io/apimachinery/pkg/watch" certificatesclient "k8s.io/client-go/kubernetes/typed/certificates/v1beta1" "k8s.io/client-go/tools/cache" + watchtools "k8s.io/client-go/tools/watch" certutil "k8s.io/client-go/util/cert" ) -// RequestNodeCertificate will create a certificate signing request for a node -// (Organization and CommonName for the CSR will be set as expected for node -// certificates) and send it to API server, then it will watch the object's -// status, once approved by API server, it will return the API server's issued -// certificate (pem-encoded). If there is any errors, or the watch timeouts, it -// will return an error. This is intended for use on nodes (kubelet and -// kubeadm). -func RequestNodeCertificate(client certificatesclient.CertificateSigningRequestInterface, privateKeyData []byte, nodeName types.NodeName) (certData []byte, err error) { - subject := &pkix.Name{ - Organization: []string{"system:nodes"}, - CommonName: "system:node:" + string(nodeName), - } - - privateKey, err := certutil.ParsePrivateKeyPEM(privateKeyData) - if err != nil { - return nil, fmt.Errorf("invalid private key for certificate request: %v", err) - } - csrData, err := certutil.MakeCSR(privateKey, subject, nil, nil) - if err != nil { - return nil, fmt.Errorf("unable to generate certificate request: %v", err) - } - - usages := []certificates.KeyUsage{ - certificates.UsageDigitalSignature, - certificates.UsageKeyEncipherment, - certificates.UsageClientAuth, - } - name := digestedName(privateKeyData, subject, usages) - req, err := RequestCertificate(client, csrData, name, usages, privateKey) - if err != nil { - return nil, err - } - return WaitForCertificate(client, req, 3600*time.Second) -} - // RequestCertificate will either use an existing (if this process has run // before but not to completion) or create a certificate signing request using the // PEM encoded CSR and send it to API server, then it will watch the object's @@ -102,7 +65,7 @@ func RequestCertificate(client certificatesclient.CertificateSigningRequestInter switch { case err == nil: case errors.IsAlreadyExists(err) && len(name) > 0: - glog.Infof("csr for this node already exists, reusing") + klog.Infof("csr for this node already exists, reusing") req, err = client.Get(name, metav1.GetOptions{}) if err != nil { return nil, formatError("cannot retrieve certificate signing request: %v", err) @@ -110,7 +73,7 @@ func RequestCertificate(client certificatesclient.CertificateSigningRequestInter if err := ensureCompatible(req, csr, privateKey); err != nil { return nil, fmt.Errorf("retrieved csr is not compatible: %v", err) } - glog.Infof("csr for this node is still valid") + klog.Infof("csr for this node is still valid") default: return nil, formatError("cannot create certificate signing request: %v", err) } @@ -121,7 +84,7 @@ func RequestCertificate(client certificatesclient.CertificateSigningRequestInter func WaitForCertificate(client certificatesclient.CertificateSigningRequestInterface, req *certificates.CertificateSigningRequest, timeout time.Duration) (certData []byte, err error) { fieldSelector := fields.OneTermEqualSelector("metadata.name", req.Name).String() - event, err := cache.ListWatchUntil( + event, err := watchtools.ListWatchUntil( timeout, &cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { @@ -166,57 +129,25 @@ func WaitForCertificate(client certificatesclient.CertificateSigningRequestInter return event.Object.(*certificates.CertificateSigningRequest).Status.Certificate, nil } -// This digest should include all the relevant pieces of the CSR we care about. -// We can't direcly hash the serialized CSR because of random padding that we -// regenerate every loop and we include usages which are not contained in the -// CSR. This needs to be kept up to date as we add new fields to the node -// certificates and with ensureCompatible. -func digestedName(privateKeyData []byte, subject *pkix.Name, usages []certificates.KeyUsage) string { - hash := sha512.New512_256() - - // Here we make sure two different inputs can't write the same stream - // to the hash. This delimiter is not in the base64.URLEncoding - // alphabet so there is no way to have spill over collisions. Without - // it 'CN:foo,ORG:bar' hashes to the same value as 'CN:foob,ORG:ar' - const delimiter = '|' - encode := base64.RawURLEncoding.EncodeToString - - write := func(data []byte) { - hash.Write([]byte(encode(data))) - hash.Write([]byte{delimiter}) - } - - write(privateKeyData) - write([]byte(subject.CommonName)) - for _, v := range subject.Organization { - write([]byte(v)) - } - for _, v := range usages { - write([]byte(v)) - } - - return "node-csr-" + encode(hash.Sum(nil)) -} - // ensureCompatible ensures that a CSR object is compatible with an original CSR func ensureCompatible(new, orig *certificates.CertificateSigningRequest, privateKey interface{}) error { - newCsr, err := ParseCSR(new) + newCSR, err := parseCSR(new) if err != nil { return fmt.Errorf("unable to parse new csr: %v", err) } - origCsr, err := ParseCSR(orig) + origCSR, err := parseCSR(orig) if err != nil { return fmt.Errorf("unable to parse original csr: %v", err) } - if !reflect.DeepEqual(newCsr.Subject, origCsr.Subject) { - return fmt.Errorf("csr subjects differ: new: %#v, orig: %#v", newCsr.Subject, origCsr.Subject) + if !reflect.DeepEqual(newCSR.Subject, origCSR.Subject) { + return fmt.Errorf("csr subjects differ: new: %#v, orig: %#v", newCSR.Subject, origCSR.Subject) } signer, ok := privateKey.(crypto.Signer) if !ok { return fmt.Errorf("privateKey is not a signer") } - newCsr.PublicKey = signer.Public() - if err := newCsr.CheckSignature(); err != nil { + newCSR.PublicKey = signer.Public() + if err := newCSR.CheckSignature(); err != nil { return fmt.Errorf("error validating signature new CSR against old key: %v", err) } if len(new.Status.Certificate) > 0 { @@ -245,17 +176,12 @@ func formatError(format string, err error) error { return fmt.Errorf(format, err) } -// ParseCSR extracts the CSR from the API object and decodes it. -func ParseCSR(obj *certificates.CertificateSigningRequest) (*x509.CertificateRequest, error) { +// parseCSR extracts the CSR from the API object and decodes it. +func parseCSR(obj *certificates.CertificateSigningRequest) (*x509.CertificateRequest, error) { // extract PEM from request object - pemBytes := obj.Spec.Request - block, _ := pem.Decode(pemBytes) + block, _ := pem.Decode(obj.Spec.Request) if block == nil || block.Type != "CERTIFICATE REQUEST" { return nil, fmt.Errorf("PEM block type must be CERTIFICATE REQUEST") } - csr, err := x509.ParseCertificateRequest(block.Bytes) - if err != nil { - return nil, err - } - return csr, nil + return x509.ParseCertificateRequest(block.Bytes) } diff --git a/vendor/k8s.io/client-go/util/certificate/csr/csr_test.go b/vendor/k8s.io/client-go/util/certificate/csr/csr_test.go deleted file mode 100644 index d0182abe9..000000000 --- a/vendor/k8s.io/client-go/util/certificate/csr/csr_test.go +++ /dev/null @@ -1,135 +0,0 @@ -/* -Copyright 2017 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package csr - -import ( - "fmt" - "testing" - - certificates "k8s.io/api/certificates/v1beta1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - watch "k8s.io/apimachinery/pkg/watch" - certificatesclient "k8s.io/client-go/kubernetes/typed/certificates/v1beta1" - certutil "k8s.io/client-go/util/cert" -) - -func TestRequestNodeCertificateNoKeyData(t *testing.T) { - certData, err := RequestNodeCertificate(&fakeClient{}, []byte{}, "fake-node-name") - if err == nil { - t.Errorf("Got no error, wanted error an error because there was an empty private key passed in.") - } - if certData != nil { - t.Errorf("Got cert data, wanted nothing as there should have been an error.") - } -} - -func TestRequestNodeCertificateErrorCreatingCSR(t *testing.T) { - client := &fakeClient{ - failureType: createError, - } - privateKeyData, err := certutil.MakeEllipticPrivateKeyPEM() - if err != nil { - t.Fatalf("Unable to generate a new private key: %v", err) - } - - certData, err := RequestNodeCertificate(client, privateKeyData, "fake-node-name") - if err == nil { - t.Errorf("Got no error, wanted error an error because client.Create failed.") - } - if certData != nil { - t.Errorf("Got cert data, wanted nothing as there should have been an error.") - } -} - -func TestRequestNodeCertificate(t *testing.T) { - privateKeyData, err := certutil.MakeEllipticPrivateKeyPEM() - if err != nil { - t.Fatalf("Unable to generate a new private key: %v", err) - } - - certData, err := RequestNodeCertificate(&fakeClient{}, privateKeyData, "fake-node-name") - if err != nil { - t.Errorf("Got %v, wanted no error.", err) - } - if certData == nil { - t.Errorf("Got nothing, expected a CSR.") - } -} - -type FailureType int - -const ( - noError FailureType = iota - createError - certificateSigningRequestDenied -) - -type fakeClient struct { - certificatesclient.CertificateSigningRequestInterface - watch *watch.FakeWatcher - failureType FailureType -} - -func (c *fakeClient) Create(*certificates.CertificateSigningRequest) (*certificates.CertificateSigningRequest, error) { - if c.failureType == createError { - return nil, fmt.Errorf("fakeClient failed creating request") - } - csr := certificates.CertificateSigningRequest{ - ObjectMeta: metav1.ObjectMeta{ - UID: "fake-uid", - Name: "fake-certificate-signing-request-name", - }, - } - return &csr, nil -} - -func (c *fakeClient) List(opts metav1.ListOptions) (*certificates.CertificateSigningRequestList, error) { - return &certificates.CertificateSigningRequestList{}, nil -} - -func (c *fakeClient) Watch(opts metav1.ListOptions) (watch.Interface, error) { - c.watch = watch.NewFakeWithChanSize(1, false) - c.watch.Add(c.generateCSR()) - c.watch.Stop() - return c.watch, nil -} - -func (c *fakeClient) generateCSR() *certificates.CertificateSigningRequest { - var condition certificates.CertificateSigningRequestCondition - if c.failureType == certificateSigningRequestDenied { - condition = certificates.CertificateSigningRequestCondition{ - Type: certificates.CertificateDenied, - } - } else { - condition = certificates.CertificateSigningRequestCondition{ - Type: certificates.CertificateApproved, - } - } - - csr := certificates.CertificateSigningRequest{ - ObjectMeta: metav1.ObjectMeta{ - UID: "fake-uid", - }, - Status: certificates.CertificateSigningRequestStatus{ - Conditions: []certificates.CertificateSigningRequestCondition{ - condition, - }, - Certificate: []byte{}, - }, - } - return &csr -} diff --git a/vendor/k8s.io/client-go/util/connrotation/connrotation.go b/vendor/k8s.io/client-go/util/connrotation/connrotation.go new file mode 100644 index 000000000..235a9e019 --- /dev/null +++ b/vendor/k8s.io/client-go/util/connrotation/connrotation.go @@ -0,0 +1,105 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Package connrotation implements a connection dialer that tracks and can close +// all created connections. +// +// This is used for credential rotation of long-lived connections, when there's +// no way to re-authenticate on a live connection. +package connrotation + +import ( + "context" + "net" + "sync" +) + +// DialFunc is a shorthand for signature of net.DialContext. +type DialFunc func(ctx context.Context, network, address string) (net.Conn, error) + +// Dialer opens connections through Dial and tracks them. +type Dialer struct { + dial DialFunc + + mu sync.Mutex + conns map[*closableConn]struct{} +} + +// NewDialer creates a new Dialer instance. +// +// If dial is not nil, it will be used to create new underlying connections. +// Otherwise net.DialContext is used. +func NewDialer(dial DialFunc) *Dialer { + return &Dialer{ + dial: dial, + conns: make(map[*closableConn]struct{}), + } +} + +// CloseAll forcibly closes all tracked connections. +// +// Note: new connections may get created before CloseAll returns. +func (d *Dialer) CloseAll() { + d.mu.Lock() + conns := d.conns + d.conns = make(map[*closableConn]struct{}) + d.mu.Unlock() + + for conn := range conns { + conn.Close() + } +} + +// Dial creates a new tracked connection. +func (d *Dialer) Dial(network, address string) (net.Conn, error) { + return d.DialContext(context.Background(), network, address) +} + +// DialContext creates a new tracked connection. +func (d *Dialer) DialContext(ctx context.Context, network, address string) (net.Conn, error) { + conn, err := d.dial(ctx, network, address) + if err != nil { + return nil, err + } + + closable := &closableConn{Conn: conn} + + // Start tracking the connection + d.mu.Lock() + d.conns[closable] = struct{}{} + d.mu.Unlock() + + // When the connection is closed, remove it from the map. This will + // be no-op if the connection isn't in the map, e.g. if CloseAll() + // is called. + closable.onClose = func() { + d.mu.Lock() + delete(d.conns, closable) + d.mu.Unlock() + } + + return closable, nil +} + +type closableConn struct { + onClose func() + net.Conn +} + +func (c *closableConn) Close() error { + go c.onClose() + return c.Conn.Close() +} diff --git a/vendor/k8s.io/client-go/util/connrotation/connrotation_test.go b/vendor/k8s.io/client-go/util/connrotation/connrotation_test.go new file mode 100644 index 000000000..a618f2961 --- /dev/null +++ b/vendor/k8s.io/client-go/util/connrotation/connrotation_test.go @@ -0,0 +1,61 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package connrotation + +import ( + "context" + "net" + "testing" + "time" +) + +func TestCloseAll(t *testing.T) { + closed := make(chan struct{}) + dialFn := func(ctx context.Context, network, address string) (net.Conn, error) { + return closeOnlyConn{onClose: func() { closed <- struct{}{} }}, nil + } + dialer := NewDialer(dialFn) + + const numConns = 10 + + // Outer loop to ensure Dialer is re-usable after CloseAll. + for i := 0; i < 5; i++ { + for j := 0; j < numConns; j++ { + if _, err := dialer.Dial("", ""); err != nil { + t.Fatal(err) + } + } + dialer.CloseAll() + for j := 0; j < numConns; j++ { + select { + case <-closed: + case <-time.After(time.Second): + t.Fatalf("iteration %d: 1s after CloseAll only %d/%d connections closed", i, j, numConns) + } + } + } +} + +type closeOnlyConn struct { + net.Conn + onClose func() +} + +func (c closeOnlyConn) Close() error { + go c.onClose() + return nil +} diff --git a/vendor/k8s.io/client-go/util/exec/BUILD b/vendor/k8s.io/client-go/util/exec/BUILD deleted file mode 100644 index 57b58e5cc..000000000 --- a/vendor/k8s.io/client-go/util/exec/BUILD +++ /dev/null @@ -1,25 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = ["exec.go"], - importpath = "k8s.io/client-go/util/exec", -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/util/flowcontrol/BUILD b/vendor/k8s.io/client-go/util/flowcontrol/BUILD deleted file mode 100644 index 819bb7ef3..000000000 --- a/vendor/k8s.io/client-go/util/flowcontrol/BUILD +++ /dev/null @@ -1,44 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_test( - name = "go_default_test", - srcs = [ - "backoff_test.go", - "throttle_test.go", - ], - embed = [":go_default_library"], - deps = ["//vendor/k8s.io/apimachinery/pkg/util/clock:go_default_library"], -) - -go_library( - name = "go_default_library", - srcs = [ - "backoff.go", - "throttle.go", - ], - importpath = "k8s.io/client-go/util/flowcontrol", - deps = [ - "//vendor/golang.org/x/time/rate:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/clock:go_default_library", - "//vendor/k8s.io/client-go/util/integer:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/util/flowcontrol/backoff_test.go b/vendor/k8s.io/client-go/util/flowcontrol/backoff_test.go index 23a6cbfa3..b14ab341b 100644 --- a/vendor/k8s.io/client-go/util/flowcontrol/backoff_test.go +++ b/vendor/k8s.io/client-go/util/flowcontrol/backoff_test.go @@ -75,7 +75,7 @@ func TestBackoffReset(t *testing.T) { } } -func TestBackoffHightWaterMark(t *testing.T) { +func TestBackoffHighWaterMark(t *testing.T) { id := "_idHiWaterMark" tc := clock.NewFakeClock(time.Now()) step := time.Second diff --git a/vendor/k8s.io/client-go/util/homedir/BUILD b/vendor/k8s.io/client-go/util/homedir/BUILD deleted file mode 100644 index 21a1952cf..000000000 --- a/vendor/k8s.io/client-go/util/homedir/BUILD +++ /dev/null @@ -1,25 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = ["homedir.go"], - importpath = "k8s.io/client-go/util/homedir", -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/util/integer/BUILD b/vendor/k8s.io/client-go/util/integer/BUILD deleted file mode 100644 index 8a2105e46..000000000 --- a/vendor/k8s.io/client-go/util/integer/BUILD +++ /dev/null @@ -1,32 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_test( - name = "go_default_test", - srcs = ["integer_test.go"], - embed = [":go_default_library"], -) - -go_library( - name = "go_default_library", - srcs = ["integer.go"], - importpath = "k8s.io/client-go/util/integer", -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/util/jsonpath/BUILD b/vendor/k8s.io/client-go/util/jsonpath/BUILD deleted file mode 100644 index ab43accd6..000000000 --- a/vendor/k8s.io/client-go/util/jsonpath/BUILD +++ /dev/null @@ -1,41 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_test( - name = "go_default_test", - srcs = [ - "jsonpath_test.go", - "parser_test.go", - ], - embed = [":go_default_library"], -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "jsonpath.go", - "node.go", - "parser.go", - ], - importpath = "k8s.io/client-go/util/jsonpath", - deps = ["//vendor/k8s.io/client-go/third_party/forked/golang/template:go_default_library"], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/util/jsonpath/node.go b/vendor/k8s.io/client-go/util/jsonpath/node.go index bc763357c..2f612b188 100644 --- a/vendor/k8s.io/client-go/util/jsonpath/node.go +++ b/vendor/k8s.io/client-go/util/jsonpath/node.go @@ -80,7 +80,7 @@ func (l *ListNode) append(n Node) { } func (l *ListNode) String() string { - return fmt.Sprintf("%s", l.Type()) + return l.Type().String() } // TextNode holds plain text. @@ -210,7 +210,7 @@ func newWildcard() *WildcardNode { } func (i *WildcardNode) String() string { - return fmt.Sprintf("%s", i.Type()) + return i.Type().String() } // RecursiveNode means a recursive descent operator @@ -223,7 +223,7 @@ func newRecursive() *RecursiveNode { } func (r *RecursiveNode) String() string { - return fmt.Sprintf("%s", r.Type()) + return r.Type().String() } // UnionNode is union of ListNode @@ -237,7 +237,7 @@ func newUnion(nodes []*ListNode) *UnionNode { } func (u *UnionNode) String() string { - return fmt.Sprintf("%s", u.Type()) + return u.Type().String() } // BoolNode holds bool value diff --git a/vendor/k8s.io/client-go/util/jsonpath/parser.go b/vendor/k8s.io/client-go/util/jsonpath/parser.go index ef0f9213a..99b45849c 100644 --- a/vendor/k8s.io/client-go/util/jsonpath/parser.go +++ b/vendor/k8s.io/client-go/util/jsonpath/parser.go @@ -94,7 +94,7 @@ func (p *Parser) consumeText() string { // next returns the next rune in the input. func (p *Parser) next() rune { - if int(p.pos) >= len(p.input) { + if p.pos >= len(p.input) { p.width = 0 return eof } @@ -266,7 +266,7 @@ Loop: } } text := p.consumeText() - text = string(text[1 : len(text)-1]) + text = text[1 : len(text)-1] if text == "*" { text = ":" } @@ -373,7 +373,7 @@ Loop: } reg := regexp.MustCompile(`^([^!<>=]+)([!<>=]+)(.+?)$`) text := p.consumeText() - text = string(text[:len(text)-2]) + text = text[:len(text)-2] value := reg.FindStringSubmatch(text) if value == nil { parser, err := parseAction("text", text) diff --git a/vendor/k8s.io/client-go/util/retry/BUILD b/vendor/k8s.io/client-go/util/retry/BUILD deleted file mode 100644 index d74581310..000000000 --- a/vendor/k8s.io/client-go/util/retry/BUILD +++ /dev/null @@ -1,41 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_library( - name = "go_default_library", - srcs = ["util.go"], - importpath = "k8s.io/client-go/util/retry", - deps = [ - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", - ], -) - -go_test( - name = "go_default_test", - srcs = ["util_test.go"], - embed = [":go_default_library"], - deps = [ - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/util/testing/BUILD b/vendor/k8s.io/client-go/util/testing/BUILD deleted file mode 100644 index 726a30f92..000000000 --- a/vendor/k8s.io/client-go/util/testing/BUILD +++ /dev/null @@ -1,35 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_test( - name = "go_default_test", - srcs = ["fake_handler_test.go"], - embed = [":go_default_library"], -) - -go_library( - name = "go_default_library", - srcs = [ - "fake_handler.go", - "tmpdir.go", - ], - importpath = "k8s.io/client-go/util/testing", -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/util/workqueue/BUILD b/vendor/k8s.io/client-go/util/workqueue/BUILD deleted file mode 100644 index 7fb9fba48..000000000 --- a/vendor/k8s.io/client-go/util/workqueue/BUILD +++ /dev/null @@ -1,59 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_test( - name = "go_default_test", - srcs = [ - "default_rate_limiters_test.go", - "delaying_queue_test.go", - "rate_limitting_queue_test.go", - ], - embed = [":go_default_library"], - deps = [ - "//vendor/k8s.io/apimachinery/pkg/util/clock:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", - ], -) - -go_library( - name = "go_default_library", - srcs = [ - "default_rate_limiters.go", - "delaying_queue.go", - "doc.go", - "metrics.go", - "parallelizer.go", - "queue.go", - "rate_limitting_queue.go", - ], - importpath = "k8s.io/client-go/util/workqueue", - deps = [ - "//vendor/golang.org/x/time/rate:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/clock:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library", - ], -) - -go_test( - name = "go_default_xtest", - srcs = ["queue_test.go"], - deps = ["//vendor/k8s.io/client-go/util/workqueue:go_default_library"], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/k8s.io/client-go/util/workqueue/delaying_queue.go b/vendor/k8s.io/client-go/util/workqueue/delaying_queue.go index c62ed32ef..a37177425 100644 --- a/vendor/k8s.io/client-go/util/workqueue/delaying_queue.go +++ b/vendor/k8s.io/client-go/util/workqueue/delaying_queue.go @@ -45,7 +45,7 @@ func newDelayingQueue(clock clock.Clock, name string) DelayingInterface { ret := &delayingType{ Interface: NewNamed(name), clock: clock, - heartbeat: clock.Tick(maxWait), + heartbeat: clock.NewTicker(maxWait), stopCh: make(chan struct{}), waitingForAddCh: make(chan *waitFor, 1000), metrics: newRetryMetrics(name), @@ -67,10 +67,7 @@ type delayingType struct { stopCh chan struct{} // heartbeat ensures we wait no more than maxWait before firing - // - // TODO: replace with Ticker (and add to clock) so this can be cleaned up. - // clock.Tick will leak. - heartbeat <-chan time.Time + heartbeat clock.Ticker // waitingForAddCh is a buffered channel that feeds waitingForAdd waitingForAddCh chan *waitFor @@ -138,6 +135,7 @@ func (pq waitForPriorityQueue) Peek() interface{} { func (q *delayingType) ShutDown() { q.Interface.ShutDown() close(q.stopCh) + q.heartbeat.Stop() } // AddAfter adds the given item to the work queue after the given delay @@ -209,7 +207,7 @@ func (q *delayingType) waitingLoop() { case <-q.stopCh: return - case <-q.heartbeat: + case <-q.heartbeat.C(): // continue the loop, which will add ready items case <-nextReadyAt: diff --git a/vendor/k8s.io/client-go/util/workqueue/metrics.go b/vendor/k8s.io/client-go/util/workqueue/metrics.go index a481bdfb2..d4c03d837 100644 --- a/vendor/k8s.io/client-go/util/workqueue/metrics.go +++ b/vendor/k8s.io/client-go/util/workqueue/metrics.go @@ -19,6 +19,8 @@ package workqueue import ( "sync" "time" + + "k8s.io/apimachinery/pkg/util/clock" ) // This file provides abstractions for setting the provider (e.g., prometheus) @@ -28,6 +30,7 @@ type queueMetrics interface { add(item t) get(item t) done(item t) + updateUnfinishedWork() } // GaugeMetric represents a single numerical value that can arbitrarily go up @@ -37,6 +40,12 @@ type GaugeMetric interface { Dec() } +// SettableGaugeMetric represents a single numerical value that can arbitrarily go up +// and down. (Separate from GaugeMetric to preserve backwards compatibility.) +type SettableGaugeMetric interface { + Set(float64) +} + // CounterMetric represents a single numerical value that only ever // goes up. type CounterMetric interface { @@ -52,9 +61,13 @@ type noopMetric struct{} func (noopMetric) Inc() {} func (noopMetric) Dec() {} +func (noopMetric) Set(float64) {} func (noopMetric) Observe(float64) {} +// defaultQueueMetrics expects the caller to lock before setting any metrics. type defaultQueueMetrics struct { + clock clock.Clock + // current depth of a workqueue depth GaugeMetric // total number of adds handled by a workqueue @@ -65,6 +78,10 @@ type defaultQueueMetrics struct { workDuration SummaryMetric addTimes map[t]time.Time processingStartTimes map[t]time.Time + + // how long have current threads been working? + unfinishedWorkSeconds SettableGaugeMetric + longestRunningProcessor SettableGaugeMetric } func (m *defaultQueueMetrics) add(item t) { @@ -75,7 +92,7 @@ func (m *defaultQueueMetrics) add(item t) { m.adds.Inc() m.depth.Inc() if _, exists := m.addTimes[item]; !exists { - m.addTimes[item] = time.Now() + m.addTimes[item] = m.clock.Now() } } @@ -85,9 +102,9 @@ func (m *defaultQueueMetrics) get(item t) { } m.depth.Dec() - m.processingStartTimes[item] = time.Now() + m.processingStartTimes[item] = m.clock.Now() if startTime, exists := m.addTimes[item]; exists { - m.latency.Observe(sinceInMicroseconds(startTime)) + m.latency.Observe(m.sinceInMicroseconds(startTime)) delete(m.addTimes, item) } } @@ -98,14 +115,39 @@ func (m *defaultQueueMetrics) done(item t) { } if startTime, exists := m.processingStartTimes[item]; exists { - m.workDuration.Observe(sinceInMicroseconds(startTime)) + m.workDuration.Observe(m.sinceInMicroseconds(startTime)) delete(m.processingStartTimes, item) } } +func (m *defaultQueueMetrics) updateUnfinishedWork() { + // Note that a summary metric would be better for this, but prometheus + // doesn't seem to have non-hacky ways to reset the summary metrics. + var total float64 + var oldest float64 + for _, t := range m.processingStartTimes { + age := m.sinceInMicroseconds(t) + total += age + if age > oldest { + oldest = age + } + } + // Convert to seconds; microseconds is unhelpfully granular for this. + total /= 1000000 + m.unfinishedWorkSeconds.Set(total) + m.longestRunningProcessor.Set(oldest) // in microseconds. +} + +type noMetrics struct{} + +func (noMetrics) add(item t) {} +func (noMetrics) get(item t) {} +func (noMetrics) done(item t) {} +func (noMetrics) updateUnfinishedWork() {} + // Gets the time since the specified start in microseconds. -func sinceInMicroseconds(start time.Time) float64 { - return float64(time.Since(start).Nanoseconds() / time.Microsecond.Nanoseconds()) +func (m *defaultQueueMetrics) sinceInMicroseconds(start time.Time) float64 { + return float64(m.clock.Since(start).Nanoseconds() / time.Microsecond.Nanoseconds()) } type retryMetrics interface { @@ -130,6 +172,8 @@ type MetricsProvider interface { NewAddsMetric(name string) CounterMetric NewLatencyMetric(name string) SummaryMetric NewWorkDurationMetric(name string) SummaryMetric + NewUnfinishedWorkSecondsMetric(name string) SettableGaugeMetric + NewLongestRunningProcessorMicrosecondsMetric(name string) SettableGaugeMetric NewRetriesMetric(name string) CounterMetric } @@ -151,29 +195,49 @@ func (_ noopMetricsProvider) NewWorkDurationMetric(name string) SummaryMetric { return noopMetric{} } +func (_ noopMetricsProvider) NewUnfinishedWorkSecondsMetric(name string) SettableGaugeMetric { + return noopMetric{} +} + +func (_ noopMetricsProvider) NewLongestRunningProcessorMicrosecondsMetric(name string) SettableGaugeMetric { + return noopMetric{} +} + func (_ noopMetricsProvider) NewRetriesMetric(name string) CounterMetric { return noopMetric{} } -var metricsFactory = struct { - metricsProvider MetricsProvider - setProviders sync.Once -}{ +var globalMetricsFactory = queueMetricsFactory{ metricsProvider: noopMetricsProvider{}, } -func newQueueMetrics(name string) queueMetrics { - var ret *defaultQueueMetrics - if len(name) == 0 { - return ret +type queueMetricsFactory struct { + metricsProvider MetricsProvider + + onlyOnce sync.Once +} + +func (f *queueMetricsFactory) setProvider(mp MetricsProvider) { + f.onlyOnce.Do(func() { + f.metricsProvider = mp + }) +} + +func (f *queueMetricsFactory) newQueueMetrics(name string, clock clock.Clock) queueMetrics { + mp := f.metricsProvider + if len(name) == 0 || mp == (noopMetricsProvider{}) { + return noMetrics{} } return &defaultQueueMetrics{ - depth: metricsFactory.metricsProvider.NewDepthMetric(name), - adds: metricsFactory.metricsProvider.NewAddsMetric(name), - latency: metricsFactory.metricsProvider.NewLatencyMetric(name), - workDuration: metricsFactory.metricsProvider.NewWorkDurationMetric(name), - addTimes: map[t]time.Time{}, - processingStartTimes: map[t]time.Time{}, + clock: clock, + depth: mp.NewDepthMetric(name), + adds: mp.NewAddsMetric(name), + latency: mp.NewLatencyMetric(name), + workDuration: mp.NewWorkDurationMetric(name), + unfinishedWorkSeconds: mp.NewUnfinishedWorkSecondsMetric(name), + longestRunningProcessor: mp.NewLongestRunningProcessorMicrosecondsMetric(name), + addTimes: map[t]time.Time{}, + processingStartTimes: map[t]time.Time{}, } } @@ -183,13 +247,12 @@ func newRetryMetrics(name string) retryMetrics { return ret } return &defaultRetryMetrics{ - retries: metricsFactory.metricsProvider.NewRetriesMetric(name), + retries: globalMetricsFactory.metricsProvider.NewRetriesMetric(name), } } -// SetProvider sets the metrics provider of the metricsFactory. +// SetProvider sets the metrics provider for all subsequently created work +// queues. Only the first call has an effect. func SetProvider(metricsProvider MetricsProvider) { - metricsFactory.setProviders.Do(func() { - metricsFactory.metricsProvider = metricsProvider - }) + globalMetricsFactory.setProvider(metricsProvider) } diff --git a/vendor/k8s.io/client-go/util/workqueue/metrics_test.go b/vendor/k8s.io/client-go/util/workqueue/metrics_test.go new file mode 100644 index 000000000..117f90801 --- /dev/null +++ b/vendor/k8s.io/client-go/util/workqueue/metrics_test.go @@ -0,0 +1,293 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package workqueue + +import ( + "sync" + "testing" + "time" + + "k8s.io/apimachinery/pkg/util/clock" +) + +type testMetrics struct { + added, gotten, finished int64 + + updateCalled chan<- struct{} +} + +func (m *testMetrics) add(item t) { m.added++ } +func (m *testMetrics) get(item t) { m.gotten++ } +func (m *testMetrics) done(item t) { m.finished++ } +func (m *testMetrics) updateUnfinishedWork() { m.updateCalled <- struct{}{} } + +func TestMetricShutdown(t *testing.T) { + ch := make(chan struct{}) + m := &testMetrics{ + updateCalled: ch, + } + c := clock.NewFakeClock(time.Now()) + q := newQueue(c, m, time.Millisecond) + for !c.HasWaiters() { + // Wait for the go routine to call NewTicker() + time.Sleep(time.Millisecond) + } + + c.Step(time.Millisecond) + <-ch + q.ShutDown() + + c.Step(time.Hour) + select { + default: + return + case <-ch: + t.Errorf("Unexpected update after shutdown was called.") + } +} + +type testMetric struct { + inc int64 + dec int64 + set float64 + + observedValue float64 + observedCount int + + notifyCh chan<- struct{} + + lock sync.Mutex +} + +func (m *testMetric) Inc() { + m.lock.Lock() + defer m.lock.Unlock() + m.inc++ + m.notify() +} + +func (m *testMetric) Dec() { + m.lock.Lock() + defer m.lock.Unlock() + m.dec++ + m.notify() +} + +func (m *testMetric) Set(f float64) { + m.lock.Lock() + defer m.lock.Unlock() + m.set = f + m.notify() +} + +func (m *testMetric) Observe(f float64) { + m.lock.Lock() + defer m.lock.Unlock() + m.observedValue = f + m.observedCount++ + m.notify() +} + +func (m *testMetric) gaugeValue() float64 { + m.lock.Lock() + defer m.lock.Unlock() + if m.set != 0 { + return m.set + } + return float64(m.inc - m.dec) +} + +func (m *testMetric) observationValue() float64 { + m.lock.Lock() + defer m.lock.Unlock() + return m.observedValue +} + +func (m *testMetric) observationCount() int { + m.lock.Lock() + defer m.lock.Unlock() + return m.observedCount +} + +func (m *testMetric) notify() { + if m.notifyCh != nil { + m.notifyCh <- struct{}{} + } +} + +type testMetricsProvider struct { + depth testMetric + adds testMetric + latency testMetric + duration testMetric + unfinished testMetric + longest testMetric + retries testMetric +} + +func (m *testMetricsProvider) NewDepthMetric(name string) GaugeMetric { + return &m.depth +} + +func (m *testMetricsProvider) NewAddsMetric(name string) CounterMetric { + return &m.adds +} + +func (m *testMetricsProvider) NewLatencyMetric(name string) SummaryMetric { + return &m.latency +} + +func (m *testMetricsProvider) NewWorkDurationMetric(name string) SummaryMetric { + return &m.duration +} + +func (m *testMetricsProvider) NewUnfinishedWorkSecondsMetric(name string) SettableGaugeMetric { + return &m.unfinished +} + +func (m *testMetricsProvider) NewLongestRunningProcessorMicrosecondsMetric(name string) SettableGaugeMetric { + return &m.longest +} + +func (m *testMetricsProvider) NewRetriesMetric(name string) CounterMetric { + return &m.retries +} + +func TestSinceInMicroseconds(t *testing.T) { + mp := testMetricsProvider{} + c := clock.NewFakeClock(time.Now()) + mf := queueMetricsFactory{metricsProvider: &mp} + m := mf.newQueueMetrics("test", c) + dqm := m.(*defaultQueueMetrics) + + for _, i := range []int{1, 50, 100, 500, 1000, 10000, 100000, 1000000} { + n := c.Now() + c.Step(time.Duration(i) * time.Microsecond) + if e, a := float64(i), dqm.sinceInMicroseconds(n); e != a { + t.Errorf("Expected %v, got %v", e, a) + } + } +} + +func TestMetrics(t *testing.T) { + mp := testMetricsProvider{} + t0 := time.Unix(0, 0) + c := clock.NewFakeClock(t0) + mf := queueMetricsFactory{metricsProvider: &mp} + m := mf.newQueueMetrics("test", c) + q := newQueue(c, m, time.Millisecond) + defer q.ShutDown() + for !c.HasWaiters() { + // Wait for the go routine to call NewTicker() + time.Sleep(time.Millisecond) + } + + q.Add("foo") + if e, a := 1.0, mp.adds.gaugeValue(); e != a { + t.Errorf("expected %v, got %v", e, a) + } + + if e, a := 1.0, mp.depth.gaugeValue(); e != a { + t.Errorf("expected %v, got %v", e, a) + } + + c.Step(50 * time.Microsecond) + + // Start processing + i, _ := q.Get() + if i != "foo" { + t.Errorf("Expected %v, got %v", "foo", i) + } + + if e, a := 50.0, mp.latency.observationValue(); e != a { + t.Errorf("expected %v, got %v", e, a) + } + if e, a := 1, mp.latency.observationCount(); e != a { + t.Errorf("expected %v, got %v", e, a) + } + if e, a := 0.0, mp.depth.gaugeValue(); e != a { + t.Errorf("expected %v, got %v", e, a) + } + + // Add it back while processing; multiple adds of the same item are + // de-duped. + q.Add(i) + q.Add(i) + q.Add(i) + q.Add(i) + q.Add(i) + if e, a := 2.0, mp.adds.gaugeValue(); e != a { + t.Errorf("expected %v, got %v", e, a) + } + // One thing remains in the queue + if e, a := 1.0, mp.depth.gaugeValue(); e != a { + t.Errorf("expected %v, got %v", e, a) + } + + c.Step(25 * time.Microsecond) + + // Finish it up + q.Done(i) + + if e, a := 25.0, mp.duration.observationValue(); e != a { + t.Errorf("expected %v, got %v", e, a) + } + if e, a := 1, mp.duration.observationCount(); e != a { + t.Errorf("expected %v, got %v", e, a) + } + + // One thing remains in the queue + if e, a := 1.0, mp.depth.gaugeValue(); e != a { + t.Errorf("expected %v, got %v", e, a) + } + + // It should be back on the queue + i, _ = q.Get() + if i != "foo" { + t.Errorf("Expected %v, got %v", "foo", i) + } + + if e, a := 25.0, mp.latency.observationValue(); e != a { + t.Errorf("expected %v, got %v", e, a) + } + if e, a := 2, mp.latency.observationCount(); e != a { + t.Errorf("expected %v, got %v", e, a) + } + + // use a channel to ensure we don't look at the metric before it's + // been set. + ch := make(chan struct{}, 1) + mp.unfinished.notifyCh = ch + c.Step(time.Millisecond) + <-ch + mp.unfinished.notifyCh = nil + if e, a := .001, mp.unfinished.gaugeValue(); e != a { + t.Errorf("expected %v, got %v", e, a) + } + if e, a := 1000.0, mp.longest.gaugeValue(); e != a { + t.Errorf("expected %v, got %v", e, a) + } + + // Finish that one up + q.Done(i) + if e, a := 1000.0, mp.duration.observationValue(); e != a { + t.Errorf("expected %v, got %v", e, a) + } + if e, a := 2, mp.duration.observationCount(); e != a { + t.Errorf("expected %v, got %v", e, a) + } +} diff --git a/vendor/k8s.io/client-go/util/workqueue/parallelizer.go b/vendor/k8s.io/client-go/util/workqueue/parallelizer.go index be668c423..ad2535018 100644 --- a/vendor/k8s.io/client-go/util/workqueue/parallelizer.go +++ b/vendor/k8s.io/client-go/util/workqueue/parallelizer.go @@ -17,6 +17,7 @@ limitations under the License. package workqueue import ( + "context" "sync" utilruntime "k8s.io/apimachinery/pkg/util/runtime" @@ -24,9 +25,22 @@ import ( type DoWorkPieceFunc func(piece int) -// Parallelize is a very simple framework that allow for parallelizing +// Parallelize is a very simple framework that allows for parallelizing // N independent pieces of work. +// +// Deprecated: Use ParallelizeUntil instead. func Parallelize(workers, pieces int, doWorkPiece DoWorkPieceFunc) { + ParallelizeUntil(nil, workers, pieces, doWorkPiece) +} + +// ParallelizeUntil is a framework that allows for parallelizing N +// independent pieces of work until done or the context is canceled. +func ParallelizeUntil(ctx context.Context, workers, pieces int, doWorkPiece DoWorkPieceFunc) { + var stop <-chan struct{} + if ctx != nil { + stop = ctx.Done() + } + toProcess := make(chan int, pieces) for i := 0; i < pieces; i++ { toProcess <- i @@ -44,7 +58,12 @@ func Parallelize(workers, pieces int, doWorkPiece DoWorkPieceFunc) { defer utilruntime.HandleCrash() defer wg.Done() for piece := range toProcess { - doWorkPiece(piece) + select { + case <-stop: + return + default: + doWorkPiece(piece) + } } }() } diff --git a/vendor/k8s.io/client-go/util/workqueue/queue.go b/vendor/k8s.io/client-go/util/workqueue/queue.go index dc9a7cc7b..39009b8e7 100644 --- a/vendor/k8s.io/client-go/util/workqueue/queue.go +++ b/vendor/k8s.io/client-go/util/workqueue/queue.go @@ -18,6 +18,9 @@ package workqueue import ( "sync" + "time" + + "k8s.io/apimachinery/pkg/util/clock" ) type Interface interface { @@ -35,14 +38,29 @@ func New() *Type { } func NewNamed(name string) *Type { - return &Type{ - dirty: set{}, - processing: set{}, - cond: sync.NewCond(&sync.Mutex{}), - metrics: newQueueMetrics(name), - } + rc := clock.RealClock{} + return newQueue( + rc, + globalMetricsFactory.newQueueMetrics(name, rc), + defaultUnfinishedWorkUpdatePeriod, + ) } +func newQueue(c clock.Clock, metrics queueMetrics, updatePeriod time.Duration) *Type { + t := &Type{ + clock: c, + dirty: set{}, + processing: set{}, + cond: sync.NewCond(&sync.Mutex{}), + metrics: metrics, + unfinishedWorkUpdatePeriod: updatePeriod, + } + go t.updateUnfinishedWorkLoop() + return t +} + +const defaultUnfinishedWorkUpdatePeriod = 500 * time.Millisecond + // Type is a work queue (see the package comment). type Type struct { // queue defines the order in which we will work on items. Every @@ -64,6 +82,9 @@ type Type struct { shuttingDown bool metrics queueMetrics + + unfinishedWorkUpdatePeriod time.Duration + clock clock.Clock } type empty struct{} @@ -170,3 +191,22 @@ func (q *Type) ShuttingDown() bool { return q.shuttingDown } + +func (q *Type) updateUnfinishedWorkLoop() { + t := q.clock.NewTicker(q.unfinishedWorkUpdatePeriod) + defer t.Stop() + for range t.C() { + if !func() bool { + q.cond.L.Lock() + defer q.cond.L.Unlock() + if !q.shuttingDown { + q.metrics.updateUnfinishedWork() + return true + } + return false + + }() { + return + } + } +} diff --git a/vendor/k8s.io/client-go/util/workqueue/rate_limitting_queue.go b/vendor/k8s.io/client-go/util/workqueue/rate_limitting_queue.go index 417ac001b..8321876ac 100644 --- a/vendor/k8s.io/client-go/util/workqueue/rate_limitting_queue.go +++ b/vendor/k8s.io/client-go/util/workqueue/rate_limitting_queue.go @@ -20,10 +20,10 @@ package workqueue type RateLimitingInterface interface { DelayingInterface - // AddRateLimited adds an item to the workqueue after the rate limiter says its ok + // AddRateLimited adds an item to the workqueue after the rate limiter says it's ok AddRateLimited(item interface{}) - // Forget indicates that an item is finished being retried. Doesn't matter whether its for perm failing + // Forget indicates that an item is finished being retried. Doesn't matter whether it's for perm failing // or for success, we'll stop the rate limiter from tracking it. This only clears the `rateLimiter`, you // still have to call `Done` on the queue. Forget(item interface{}) @@ -55,7 +55,7 @@ type rateLimitingType struct { rateLimiter RateLimiter } -// AddRateLimited AddAfter's the item based on the time when the rate limiter says its ok +// AddRateLimited AddAfter's the item based on the time when the rate limiter says it's ok func (q *rateLimitingType) AddRateLimited(item interface{}) { q.DelayingInterface.AddAfter(item, q.rateLimiter.When(item)) } diff --git a/vendor/k8s.io/client-go/util/workqueue/rate_limitting_queue_test.go b/vendor/k8s.io/client-go/util/workqueue/rate_limitting_queue_test.go index 32d7fc906..3fbe07d0d 100644 --- a/vendor/k8s.io/client-go/util/workqueue/rate_limitting_queue_test.go +++ b/vendor/k8s.io/client-go/util/workqueue/rate_limitting_queue_test.go @@ -30,7 +30,7 @@ func TestRateLimitingQueue(t *testing.T) { delayingQueue := &delayingType{ Interface: New(), clock: fakeClock, - heartbeat: fakeClock.Tick(maxWait), + heartbeat: fakeClock.NewTicker(maxWait), stopCh: make(chan struct{}), waitingForAddCh: make(chan *waitFor, 1000), metrics: newRetryMetrics(""), diff --git a/vendor/k8s.io/kubernetes/CHANGELOG-1.13.md b/vendor/k8s.io/kubernetes/CHANGELOG-1.13.md index 4102837d7..900c86e40 100644 --- a/vendor/k8s.io/kubernetes/CHANGELOG-1.13.md +++ b/vendor/k8s.io/kubernetes/CHANGELOG-1.13.md @@ -1,60 +1,700 @@ -- [v1.13.0-rc.2](#v1130-rc2) - - [Downloads for v1.13.0-rc.2](#downloads-for-v1130-rc2) +- [v1.13.1](#v1131) + - [Downloads for v1.13.1](#downloads-for-v1131) - [Client Binaries](#client-binaries) - [Server Binaries](#server-binaries) - [Node Binaries](#node-binaries) - - [Changelog since v1.13.0-rc.1](#changelog-since-v1130-rc1) + - [Changelog since v1.13.0](#changelog-since-v1130) - [Other notable changes](#other-notable-changes) -- [v1.13.0-rc.1](#v1130-rc1) - - [Downloads for v1.13.0-rc.1](#downloads-for-v1130-rc1) +- [v1.13.0](#v1130) + - [Downloads for v1.13.0](#downloads-for-v1130) - [Client Binaries](#client-binaries-1) - [Server Binaries](#server-binaries-1) - [Node Binaries](#node-binaries-1) - - [Changelog since v1.13.0-beta.2](#changelog-since-v1130-beta2) - - [Other notable changes](#other-notable-changes-1) -- [v1.13.0-beta.2](#v1130-beta2) - - [Downloads for v1.13.0-beta.2](#downloads-for-v1130-beta2) +- [Kubernetes 1.13 Release Notes](#kubernetes-113-release-notes) + - [Security Content](#security-content) + - [Urgent Upgrade Notes](#urgent-upgrade-notes) + - [(No, really, you MUST do this before you upgrade)](#no-really-you-must-do-this-before-you-upgrade) + - [Known Issues](#known-issues) + - [Deprecations](#deprecations) + - [Major Themes](#major-themes) + - [SIG API Machinery](#sig-api-machinery) + - [SIG Auth](#sig-auth) + - [SIG AWS](#sig-aws) + - [SIG Azure](#sig-azure) + - [SIG Big Data](#sig-big-data) + - [SIG CLI](#sig-cli) + - [SIG Cloud Provider](#sig-cloud-provider) + - [SIG Cluster Lifecycle](#sig-cluster-lifecycle) + - [SIG IBM Cloud](#sig-ibm-cloud) + - [SIG Multicluster](#sig-multicluster) + - [SIG Network](#sig-network) + - [SIG Node](#sig-node) + - [SIG Openstack](#sig-openstack) + - [SIG Scalability](#sig-scalability) + - [SIG Scheduling](#sig-scheduling) + - [SIG Service Catalog](#sig-service-catalog) + - [SIG Storage](#sig-storage) + - [SIG UI](#sig-ui) + - [SIG VMWare](#sig-vmware) + - [SIG Windows](#sig-windows) + - [New Features](#new-features) + - [Release Notes From SIGs](#release-notes-from-sigs) + - [SIG API Machinery](#sig-api-machinery-1) + - [SIG Auth](#sig-auth-1) + - [SIG Autoscaling](#sig-autoscaling) + - [SIG AWS](#sig-aws-1) + - [SIG Azure](#sig-azure-1) + - [SIG CLI](#sig-cli-1) + - [SIG Cloud Provider](#sig-cloud-provider-1) + - [SIG Cluster Lifecycle](#sig-cluster-lifecycle-1) + - [SIG GCP](#sig-gcp) + - [SIG Network](#sig-network-1) + - [SIG Node](#sig-node-1) + - [SIG OpenStack](#sig-openstack-1) + - [SIG Release](#sig-release) + - [SIG Scheduling](#sig-scheduling-1) + - [SIG Storage](#sig-storage-1) + - [SIG Windows](#sig-windows-1) + - [External Dependencies](#external-dependencies) +- [v1.13.0-rc.2](#v1130-rc2) + - [Downloads for v1.13.0-rc.2](#downloads-for-v1130-rc2) - [Client Binaries](#client-binaries-2) - [Server Binaries](#server-binaries-2) - [Node Binaries](#node-binaries-2) - - [Changelog since v1.13.0-beta.1](#changelog-since-v1130-beta1) - - [Other notable changes](#other-notable-changes-2) -- [v1.13.0-beta.1](#v1130-beta1) - - [Downloads for v1.13.0-beta.1](#downloads-for-v1130-beta1) + - [Changelog since v1.13.0-rc.1](#changelog-since-v1130-rc1) + - [Other notable changes](#other-notable-changes-1) +- [v1.13.0-rc.1](#v1130-rc1) + - [Downloads for v1.13.0-rc.1](#downloads-for-v1130-rc1) - [Client Binaries](#client-binaries-3) - [Server Binaries](#server-binaries-3) - [Node Binaries](#node-binaries-3) - - [Changelog since v1.13.0-alpha.3](#changelog-since-v1130-alpha3) - - [Action Required](#action-required) - - [Other notable changes](#other-notable-changes-3) -- [v1.13.0-alpha.3](#v1130-alpha3) - - [Downloads for v1.13.0-alpha.3](#downloads-for-v1130-alpha3) + - [Changelog since v1.13.0-beta.2](#changelog-since-v1130-beta2) + - [Other notable changes](#other-notable-changes-2) +- [v1.13.0-beta.2](#v1130-beta2) + - [Downloads for v1.13.0-beta.2](#downloads-for-v1130-beta2) - [Client Binaries](#client-binaries-4) - [Server Binaries](#server-binaries-4) - [Node Binaries](#node-binaries-4) - - [Changelog since v1.13.0-alpha.2](#changelog-since-v1130-alpha2) - - [Other notable changes](#other-notable-changes-4) -- [v1.13.0-alpha.2](#v1130-alpha2) - - [Downloads for v1.13.0-alpha.2](#downloads-for-v1130-alpha2) + - [Changelog since v1.13.0-beta.1](#changelog-since-v1130-beta1) + - [Other notable changes](#other-notable-changes-3) +- [v1.13.0-beta.1](#v1130-beta1) + - [Downloads for v1.13.0-beta.1](#downloads-for-v1130-beta1) - [Client Binaries](#client-binaries-5) - [Server Binaries](#server-binaries-5) - [Node Binaries](#node-binaries-5) - - [Changelog since v1.13.0-alpha.1](#changelog-since-v1130-alpha1) - - [Other notable changes](#other-notable-changes-5) -- [v1.13.0-alpha.1](#v1130-alpha1) - - [Downloads for v1.13.0-alpha.1](#downloads-for-v1130-alpha1) + - [Changelog since v1.13.0-alpha.3](#changelog-since-v1130-alpha3) + - [Action Required](#action-required) + - [Other notable changes](#other-notable-changes-4) +- [v1.13.0-alpha.3](#v1130-alpha3) + - [Downloads for v1.13.0-alpha.3](#downloads-for-v1130-alpha3) - [Client Binaries](#client-binaries-6) - [Server Binaries](#server-binaries-6) - [Node Binaries](#node-binaries-6) + - [Changelog since v1.13.0-alpha.2](#changelog-since-v1130-alpha2) + - [Other notable changes](#other-notable-changes-5) +- [v1.13.0-alpha.2](#v1130-alpha2) + - [Downloads for v1.13.0-alpha.2](#downloads-for-v1130-alpha2) + - [Client Binaries](#client-binaries-7) + - [Server Binaries](#server-binaries-7) + - [Node Binaries](#node-binaries-7) + - [Changelog since v1.13.0-alpha.1](#changelog-since-v1130-alpha1) + - [Other notable changes](#other-notable-changes-6) +- [v1.13.0-alpha.1](#v1130-alpha1) + - [Downloads for v1.13.0-alpha.1](#downloads-for-v1130-alpha1) + - [Client Binaries](#client-binaries-8) + - [Server Binaries](#server-binaries-8) + - [Node Binaries](#node-binaries-8) - [Changelog since v1.12.0](#changelog-since-v1120) - [Action Required](#action-required-1) - - [Other notable changes](#other-notable-changes-6) + - [Other notable changes](#other-notable-changes-7) +# v1.13.1 + +[Documentation](https://docs.k8s.io) + +## Downloads for v1.13.1 + + +filename | sha512 hash +-------- | ----------- +[kubernetes.tar.gz](https://dl.k8s.io/v1.13.1/kubernetes.tar.gz) | `de3858357b2b4444bccc0599c7d0edd3e6ec1a80267ef96883ebcfb06c518ce467dd8720b48084644677a42b8e3ffad9a7d4745b40170ce9dfe5b43310979be1` +[kubernetes-src.tar.gz](https://dl.k8s.io/v1.13.1/kubernetes-src.tar.gz) | `7f0a8dbd3c7397cc5a5bc0297eb24b8e734c3c7b78e48fc794c525377c3895f4fd84fd0a2fa70c5513cc47ee5a174c22bab54796abc5a8f2b30687642c819a68` + +### Client Binaries + +filename | sha512 hash +-------- | ----------- +[kubernetes-client-darwin-386.tar.gz](https://dl.k8s.io/v1.13.1/kubernetes-client-darwin-386.tar.gz) | `371028dba7a28ec3c8f10b861448cb1574dce25d32d847af254b76b7f158aa4fcda695972e2a08440faa4e16077f8021b07115d0da897bef79c33e702f3be95e` +[kubernetes-client-darwin-amd64.tar.gz](https://dl.k8s.io/v1.13.1/kubernetes-client-darwin-amd64.tar.gz) | `6aa7025308e9fb1eb4415e504e8aa9c7a0a20b09c500cb48df82bbd04443101664b2614fb284875b9670d4bb11e8f1a10190eaf1d54f81f3a9526053958b0802` +[kubernetes-client-linux-386.tar.gz](https://dl.k8s.io/v1.13.1/kubernetes-client-linux-386.tar.gz) | `6453670bb61b4f5f7fe8ae78804864ecd52682b32592f6956faf3d2220884a64fb22ae2e668b63f28ea8fd354c50aa90ce61c60be327fb0b5fcfe2c7835ef559` +[kubernetes-client-linux-amd64.tar.gz](https://dl.k8s.io/v1.13.1/kubernetes-client-linux-amd64.tar.gz) | `ca00442f50b5d5627357dce97c90c17cb0126d746b887afdab2d4db9e0826532469fd1ee62f40eb6923761618f46752d10993578ca19c8b92c3a2aeb5102a318` +[kubernetes-client-linux-arm.tar.gz](https://dl.k8s.io/v1.13.1/kubernetes-client-linux-arm.tar.gz) | `5fa170cbe56b8f5d103f520e2493f911c5eb59b51a6afdbaa9c08196943f1235e533f0384ce7c01c73a020c6889cf8f03cc3642912d0953c74d1098e4b21f3a0` +[kubernetes-client-linux-arm64.tar.gz](https://dl.k8s.io/v1.13.1/kubernetes-client-linux-arm64.tar.gz) | `710343ad067f0d642c43cd26871828275645b08b4f4c86bd555865318d8fe08b7f0a720174c04d58acffcb26faf563636dc13eef66a2813eac68bb8b994908f4` +[kubernetes-client-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.13.1/kubernetes-client-linux-ppc64le.tar.gz) | `0fa7ab255f0cba3adc754337c6184e6ec464aa5a4d6dd4d38aad8a0e2430a0044f4ed1ffcd7cc7c863190d3cda6b84abd12ca7536139d665ad61fe7704e63d30` +[kubernetes-client-linux-s390x.tar.gz](https://dl.k8s.io/v1.13.1/kubernetes-client-linux-s390x.tar.gz) | `749a8dce5b81e2edbd315841acac64a0e5d17bb1ead8173560b6a4ccc28604bc8254051297ab51cb5df845495bd75a45137827b3386e3962295fec8601563eaa` +[kubernetes-client-windows-386.tar.gz](https://dl.k8s.io/v1.13.1/kubernetes-client-windows-386.tar.gz) | `cd4732fbe569009c426f963318d05ddcc7c63dc27ec9d2bf9c60d716195e3676aa5b0e6ccbde6298f621450d365d41a910ce3ced89bf2ae6d3e81ee2fed0bb16` +[kubernetes-client-windows-amd64.tar.gz](https://dl.k8s.io/v1.13.1/kubernetes-client-windows-amd64.tar.gz) | `40f5b5d221b3a611511690d316539dc8fb3f4513e4f9eb141bffa17c9ddeee875a462f5bd45e62ce7c7535310fc3e48e3441614700ee9877584c5948ddbef19f` + +### Server Binaries + +filename | sha512 hash +-------- | ----------- +[kubernetes-server-linux-amd64.tar.gz](https://dl.k8s.io/v1.13.1/kubernetes-server-linux-amd64.tar.gz) | `e0e48825c5fe33a3f82b1b74847d9bfb8c5716c4313c5e4e6f46be0580e20a1e396a669b8ca446cfa581e3eb75698813249bbfcfc79c8a90793880eb5c177921` +[kubernetes-server-linux-arm.tar.gz](https://dl.k8s.io/v1.13.1/kubernetes-server-linux-arm.tar.gz) | `7ff4856e7959cf14eba0e1ab274c0bf0d3193391e7034a936697f0c4813e81d8dda4a019d3185677bee9d1345a6433db3fd6e55f644a0f73d076e0b2014ed172` +[kubernetes-server-linux-arm64.tar.gz](https://dl.k8s.io/v1.13.1/kubernetes-server-linux-arm64.tar.gz) | `b8c2356002e675bd3de5ee9c2337a12e2a1bbfa2478f8e3b91065a578dfa8d50f596fd606d9f0232b06b8263867a7ca5cc7c04150718b8e40b49ae7d46001c30` +[kubernetes-server-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.13.1/kubernetes-server-linux-ppc64le.tar.gz) | `5d3a15b1241d849d8954894aa7f3fb12606f9966f73fc36aa15152038fc385153b0f0e967cc0bf410a5d5894d0269e54eac581d8e79003904d7bc29b33e98684` +[kubernetes-server-linux-s390x.tar.gz](https://dl.k8s.io/v1.13.1/kubernetes-server-linux-s390x.tar.gz) | `78a9cccaf9d737b519db0866c2e80c472c7136bc723910d08649ece1c420ae7f6e56e610d65c436c56ccef8360c4da0f70e75d0cf47c0c8e739f5138cdc7b0d2` + +### Node Binaries + +filename | sha512 hash +-------- | ----------- +[kubernetes-node-linux-amd64.tar.gz](https://dl.k8s.io/v1.13.1/kubernetes-node-linux-amd64.tar.gz) | `3a7881a52885bebe5958f02dc54194cc8c330576b7cf5935189df4f0b754b958917b104e1d3358c0bc9277f13a8eef2176284548d664f27a36baa389fbcc7bea` +[kubernetes-node-linux-arm.tar.gz](https://dl.k8s.io/v1.13.1/kubernetes-node-linux-arm.tar.gz) | `d0bfcff3ef7c0aa36005e7b111685438ebd0ea61d48dc68a7bd06eea3782b6eb224f9b651d80c955afa162f766c8b682976db43238562c293d6552cdadf9e934` +[kubernetes-node-linux-arm64.tar.gz](https://dl.k8s.io/v1.13.1/kubernetes-node-linux-arm64.tar.gz) | `2e23bd00661aceb30fa37e24ab71315755bd93dfcc5ff361d78445a8e9ff99e7b3a56641112af3184e8b107545fba6573a6368a82bd0ce475c81cb53fd44da3b` +[kubernetes-node-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.13.1/kubernetes-node-linux-ppc64le.tar.gz) | `8d0fdb743c700d662886636fe67b52202cf9e6e57c2d7de5961b8189d8c03c91fda1d68c47033286efcc582e78be40846e2b1f5c589a0b94794fa2ce3c1ebfee` +[kubernetes-node-linux-s390x.tar.gz](https://dl.k8s.io/v1.13.1/kubernetes-node-linux-s390x.tar.gz) | `70445038b4db62c3fc99540f5ddbb881387018244242f182332b8eaa7159ce1aa8929145010ab2befd4e101d39c24c61e430928235434c7d7eb54f113860a83a` +[kubernetes-node-windows-amd64.tar.gz](https://dl.k8s.io/v1.13.1/kubernetes-node-windows-amd64.tar.gz) | `a87ad43f5a6b8f66d1bbd64f9c91e8bcbdf4adc8de0ec3cd559adaa8c14a6fe078ffdf090e52627c0522b79209fcc37bf822b323895dd47b18c20026cb25e9f5` + +## Changelog since v1.13.0 + +### Other notable changes + +* Fix overlapping filenames in diff if multiple resources have the same name. ([#71923](https://github.com/kubernetes/kubernetes/pull/71923), [@apelisse](https://github.com/apelisse)) +* Disable proxy to loopback and linklocal ([#71980](https://github.com/kubernetes/kubernetes/pull/71980), [@micahhausler](https://github.com/micahhausler)) +* kube-scheduler: restores ability to run without authentication configuration lookup permissions ([#71755](https://github.com/kubernetes/kubernetes/pull/71755), [@liggitt](https://github.com/liggitt)) +* client-go: restores behavior of populating the BearerToken field in rest.Config objects constructed from kubeconfig files containing tokenFile config, or from in-cluster configuration. An additional BearerTokenFile field is now populated to enable constructed clients to periodically refresh tokens. ([#71713](https://github.com/kubernetes/kubernetes/pull/71713), [@liggitt](https://github.com/liggitt)) +* apply: fix detection of non-dry-run enabled servers ([#71854](https://github.com/kubernetes/kubernetes/pull/71854), [@apelisse](https://github.com/apelisse)) +* Scheduler only activates unschedulable pods if node's scheduling related properties change. ([#71551](https://github.com/kubernetes/kubernetes/pull/71551), [@mlmhl](https://github.com/mlmhl)) +* Fixes pod deletion when cleaning old cronjobs ([#71802](https://github.com/kubernetes/kubernetes/pull/71802), [@soltysh](https://github.com/soltysh)) +* fix issue: vm sku restriction policy does not work in azure disk attach/detach ([#71941](https://github.com/kubernetes/kubernetes/pull/71941), [@andyzhangx](https://github.com/andyzhangx)) +* Include CRD for BGPConfigurations, needed for calico 2.x to 3.x upgrade. ([#71868](https://github.com/kubernetes/kubernetes/pull/71868), [@satyasm](https://github.com/satyasm)) +* UDP connections now support graceful termination in IPVS mode ([#71515](https://github.com/kubernetes/kubernetes/pull/71515), [@lbernail](https://github.com/lbernail)) +* kubeadm: use kubeconfig flag instead of kubeconfig-dir on init phase bootstrap-token ([#71803](https://github.com/kubernetes/kubernetes/pull/71803), [@yagonobre](https://github.com/yagonobre)) +* On GCI, NPD starts to monitor kubelet, docker, containerd crashlooping, read-only filesystem and corrupt docker overlay2 issues. ([#71522](https://github.com/kubernetes/kubernetes/pull/71522), [@wangzhen127](https://github.com/wangzhen127)) +* Fixes an issue where Portworx volumes cannot be mounted if 9001 port is already in use on the host and users remap 9001 to another port. ([#70392](https://github.com/kubernetes/kubernetes/pull/70392), [@harsh-px](https://github.com/harsh-px)) +* Only use the first IP address got from instance metadata. This is because Azure CNI would set up a list of IP addresses in instance metadata, while only the first one is the Node's IP. ([#71736](https://github.com/kubernetes/kubernetes/pull/71736), [@feiskyer](https://github.com/feiskyer)) +* kube-controller-manager: fixed issue display help for the deprecated insecure --port flag ([#71601](https://github.com/kubernetes/kubernetes/pull/71601), [@liggitt](https://github.com/liggitt)) +* Update Cluster Autoscaler version in gce manifests to 1.13.1 (https://github.com/kubernetes/autoscaler/releases/tag/cluster-autoscaler-1.13.1) ([#71842](https://github.com/kubernetes/kubernetes/pull/71842), [@losipiuk](https://github.com/losipiuk)) +* kubectl: fixes regression in --sort-by behavior ([#71805](https://github.com/kubernetes/kubernetes/pull/71805), [@liggitt](https://github.com/liggitt)) +* Fixes apiserver nil pointer panics when requesting v2beta1 autoscaling object metrics ([#71744](https://github.com/kubernetes/kubernetes/pull/71744), [@yue9944882](https://github.com/yue9944882)) +* Fix scheduling starvation of pods in cluster with large number of unschedulable pods. ([#71488](https://github.com/kubernetes/kubernetes/pull/71488), [@bsalamat](https://github.com/bsalamat)) + + + +# v1.13.0 + +[Documentation](https://docs.k8s.io) + +## Downloads for v1.13.0 + + +filename | sha512 hash +-------- | ----------- +[kubernetes.tar.gz](https://dl.k8s.io/v1.13.0/kubernetes.tar.gz) | `7b6a81c9f1b852b1e889c1b62281569a4b8853c79e5675b0910d941dfa7863c97f244f6d607aae3faf60bccd596dedb9d136b7fffeae199876e780904fd9f31e` +[kubernetes-src.tar.gz](https://dl.k8s.io/v1.13.0/kubernetes-src.tar.gz) | `844b9fbba21374dd190c8f12dd0e5b3303dd2cd7ad25f241d6f7e46f74adf6987afad021553521d4f479c19d87aa8d4d5be77ac7a6715d31a9187a5bab3b397b` + +### Client Binaries + +filename | sha512 hash +-------- | ----------- +[kubernetes-client-darwin-386.tar.gz](https://dl.k8s.io/v1.13.0/kubernetes-client-darwin-386.tar.gz) | `0c010351acb660a75122feb876c9887d46ec2cb466872dd073b7f5b26fdadd96888a350e01606f2ae43606a5a4ab2d9309441f4357cee924b19688f9b02c55dc` +[kubernetes-client-darwin-amd64.tar.gz](https://dl.k8s.io/v1.13.0/kubernetes-client-darwin-amd64.tar.gz) | `c2c40bd202900124f4e9458b067a1e1fc040030dc84ce9bcc6a5beb263de05892c16f3bdafb8d854e343e71f086207f390fd0b60f6e32e770c73294b053da6e4` +[kubernetes-client-linux-386.tar.gz](https://dl.k8s.io/v1.13.0/kubernetes-client-linux-386.tar.gz) | `5f5449be103b103d72a4e2b1028ab014cf7f74781166327f2ae284e4f5ecb539f6b60f36b8f7c7be0ae43dfb30661b2672dd93a1fa7e26d6c67498672674bf12` +[kubernetes-client-linux-amd64.tar.gz](https://dl.k8s.io/v1.13.0/kubernetes-client-linux-amd64.tar.gz) | `61a6cd3b1fb34507e0b762a45da09d88e34921985970a2ba594e0e5af737d94c966434b4e9f8e84fb73a0aeb5fa3e557344cd2eb902bf73c67d4b4bff33c6831` +[kubernetes-client-linux-arm.tar.gz](https://dl.k8s.io/v1.13.0/kubernetes-client-linux-arm.tar.gz) | `dd5591e2b88c347759a138c4d2436a0f5252341d0e8c9fbab16b8f151e2744cbdd0c8583555a451425bc471f11b688ce568d9245caf8a278cbac2b343fdead89` +[kubernetes-client-linux-arm64.tar.gz](https://dl.k8s.io/v1.13.0/kubernetes-client-linux-arm64.tar.gz) | `894ed30261598ebf3485f3575e95f85e3c353f4d834bf9a6ea53b265427704b43fba5403fbc4d522b3f02afb08e6afaae200af1fe57996291a7c74398ec2fe17` +[kubernetes-client-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.13.0/kubernetes-client-linux-ppc64le.tar.gz) | `6c26c807fc730ea736fda75dc57ac73395ba78bb828fffeee18b385be550d8f3ba2bbc27a52a8f15bcbbe68218c7945d9fb725e6759c117422bc0a632c110670` +[kubernetes-client-linux-s390x.tar.gz](https://dl.k8s.io/v1.13.0/kubernetes-client-linux-s390x.tar.gz) | `41e6e972de77c0bde22fdd779ea64e731b60f32e97e78a024f33fc3e33a3b364b7f77ece7d3c64ad85b7f8fe7c8fc6d6892098a3362d1fe01ebf3d551fe2bf37` +[kubernetes-client-windows-386.tar.gz](https://dl.k8s.io/v1.13.0/kubernetes-client-windows-386.tar.gz) | `442229e5030452901b924a94e7a879d4085597a4f201a5b3fc5ac9806cab5830c836cfa7a33e8f1693fe2e8badc4047bf227d7fb00c537fb1fb4cb7639de5455` +[kubernetes-client-windows-amd64.tar.gz](https://dl.k8s.io/v1.13.0/kubernetes-client-windows-amd64.tar.gz) | `a11a8e8e732e7292781b9cb1de6e3e41683f95fb3fefc2b1a7b5fb1f064a0d80c0833876d931675135778457d81de9ed2e81caee4b3eb27d9f23c7b722b17442` + +### Server Binaries + +filename | sha512 hash +-------- | ----------- +[kubernetes-server-linux-amd64.tar.gz](https://dl.k8s.io/v1.13.0/kubernetes-server-linux-amd64.tar.gz) | `a8e3d457e5bcc1c09eeb66111e8dd049d6ba048c3c0fa90a61814291afdcde93f1c6dbb07beef090d1d8a9958402ff843e9af23ae9f069c17c0a7c6ce4034686` +[kubernetes-server-linux-arm.tar.gz](https://dl.k8s.io/v1.13.0/kubernetes-server-linux-arm.tar.gz) | `4e17494767000256775e4dd33c0a9b2d152bd4b5fba9f343b6dfeb5746ff34e400a8e0aaf2153476453225ef57e4bb1ae3635416ab18f9e4dabf4e5cc82f8aaa` +[kubernetes-server-linux-arm64.tar.gz](https://dl.k8s.io/v1.13.0/kubernetes-server-linux-arm64.tar.gz) | `0ddd0cf0ff56cebfa89efb1972cc2bc6916e824c2af56cfd330ac5638c8918eaf3c60d05714b220dbf4f896160eded123beeba42f5be55fe434a43d04508d86a` +[kubernetes-server-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.13.0/kubernetes-server-linux-ppc64le.tar.gz) | `b93828560224e812ed21b57fea5458fa8560745cfec96fc1677b258393c00e208ad9b99467b575e74e01699ffd75f03f5793675032e7306cba7208c1afb53c8d` +[kubernetes-server-linux-s390x.tar.gz](https://dl.k8s.io/v1.13.0/kubernetes-server-linux-s390x.tar.gz) | `154d565329d5ba52cdb7c3d43d8854b7a9b8e34803c4df6b3e6ae74c1a6e255c78e6559b7546b9158df0e3f7931bbdaf43407d95cd875c79f5cce960bb9882dd` + +### Node Binaries + +filename | sha512 hash +-------- | ----------- +[kubernetes-node-linux-amd64.tar.gz](https://dl.k8s.io/v1.13.0/kubernetes-node-linux-amd64.tar.gz) | `9d18ba5f0c3b09edcf29397a496a1e908f4906087be3792989285630d7bcbaf6cd3bdd7b07dace439823885acc808637190f5eaa240b7b4580acf277b67bb553` +[kubernetes-node-linux-arm.tar.gz](https://dl.k8s.io/v1.13.0/kubernetes-node-linux-arm.tar.gz) | `959b04ff7b8690413e01bffeabaab2119794dedf06b7aae1743e49988f797cb7e6ff12e1a91af2d4c5f664414f3aa4bd9020521c6a21c1196c194d12a6f7fe08` +[kubernetes-node-linux-arm64.tar.gz](https://dl.k8s.io/v1.13.0/kubernetes-node-linux-arm64.tar.gz) | `b5c18e8c9e28cf276067c871446720d86b6f162e22c3a5e9343cdbc6857baa6961d09a6908b6acd1bbd132c2e2e526377676babf77b8d3bfb36f8711827c105a` +[kubernetes-node-linux-ppc64le.tar.gz](https://dl.k8s.io/v1.13.0/kubernetes-node-linux-ppc64le.tar.gz) | `63e3504d3b115fdf3396968afafd1107b98e5a1a15b7c042a87f5a9cffbdc274f7b06b07ce90eb51876cfffd57cf7f20180bad7e9f9762af577e51f4f13d2f7a` +[kubernetes-node-linux-s390x.tar.gz](https://dl.k8s.io/v1.13.0/kubernetes-node-linux-s390x.tar.gz) | `21c5c2721febf7fddeada9569f3ecbd059267e5d2cc325d98fb74faf1ae9e9e15899750225a1fc7c25feef96e7705b1456cb489f4882b9eb10e78bd0f590d019` +[kubernetes-node-windows-amd64.tar.gz](https://dl.k8s.io/v1.13.0/kubernetes-node-windows-amd64.tar.gz) | `3e73d3ecff14b4c85a71bb6cf91b1ab7d9c3075c64bd5ce6863562ab17bf808b0cbc33ddd25346d25040649c1ad89745796afd218190886b54f1d8acc17896e4` + +# Kubernetes 1.13 Release Notes + +## Security Content + +- CVE-2018-1002105, a critical security issue in the Kubernetes API Server, is resolved in v1.13.0 (and in [v1.10.11](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.10.md/#v11011), [v1.11.5](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.11.md/#v1115), and [v1.12.3](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.12.md/#v1123)). We recommend all clusters running previous versions update to one of these releases immediately. See issue [#71411](https://github.com/kubernetes/kubernetes/issues/71411) for details. + +## Urgent Upgrade Notes + +### (No, really, you MUST do this before you upgrade) + +Before upgrading to Kubernetes 1.13, you must keep the following in mind: + +- kube-apiserver + - The deprecated `etcd2` storage backend has been removed. Before upgrading a kube-apiserver using `--storage-backend=etcd2`, etcd v2 data must be migrated to the v3 storage backend, and kube-apiserver invocations changed to use `--storage-backend=etcd3`. Please consult the installation procedure used to set up etcd for specific migration instructions. Backups prior to upgrade are always a good practice, but since the etcd2 to etcd3 migration is not reversible, an etcd backup prior to migration is essential. + - The deprecated `--etcd-quorum-read` flag has been removed. Quorum reads are now always enabled when fetching data from etcd. Remove the `--etcd-quorum-read` flag from kube-apiserver invocations before upgrading. +- kube-controller-manager + - The deprecated `--insecure-experimental-approve-all-kubelet-csrs-for-group` flag has been removed. +- kubelet + - The deprecated `--google-json-key` flag has been removed. Remove the `--google-json-key` flag from kubelet invocations before upgrading. ([#69354](https://github.com/kubernetes/kubernetes/pull/69354), [@yujuhong](https://github.com/yujuhong)) + - DaemonSet pods now make use of scheduling features that require kubelets to be at 1.11 or above. Ensure all kubelets in the cluster are at 1.11 or above before upgrading kube-controller-manager to 1.13. + - The schema for the alpha `CSINodeInfo` CRD has been split into `spec` and `status` fields, and new fields `status.available` and `status.volumePluginMechanism` added. Clusters using the previous alpha schema must delete and recreate the CRD using the new schema. ([#70515](https://github.com/kubernetes/kubernetes/pull/70515), [@davidz627](https://github.com/davidz627)) +- kube-scheduler dropped support for configuration files with apiVersion `componentconfig/v1alpha1`. Ensure kube-scheduler is configured using command-line flags or a configuration file with apiVersion `kubescheduler.config.k8s.io/v1alpha1` before upgrading to 1.13. +- kubectl + - The deprecated command `run-container` has been removed. Invocations should use `kubectl run` instead ([#70728](https://github.com/kubernetes/kubernetes/pull/70728), [@Pingan2017](https://github.com/Pingan2017)) +- client-go releases will no longer have bootstrap (k8s.io/client-go/tools/bootstrap) related code. Any reference to it will break. Please redirect all references to k8s.io/bootstrap instead. ([#67356](https://github.com/kubernetes/kubernetes/pull/67356), [@yliaog](https://github.com/yliaog)) +- Kubernetes cannot distinguish between GCE Zonal PDs and Regional PDs with the same name. To workaround this issue, precreate PDs with unique names. PDs that are dynamically provisioned do not encounter this issue. ([#70716](https://github.com/kubernetes/kubernetes/pull/70716), [@msau42](https://github.com/msau42)) + +## Known Issues + +- If kubelet plugin registration for a driver fails, kubelet will not retry. The driver must delete and recreate the driver registration socket in order to force kubelet to attempt registration again. Restarting only the driver container may not be sufficient to trigger recreation of the socket, instead a pod restart may be required. ([#71487](https://github.com/kubernetes/kubernetes/issues/71487)) +- In some cases, a Flex volume resize may leave a PVC with erroneous Resizing condition even after volume has been successfully expanded. Users may choose to delete the condition, but it is not required. ([#71470](https://github.com/kubernetes/kubernetes/issues/71470)) +- The CSI driver-registrar external sidecar container v1.0.0-rc2 is known to take up to 1 minute to start in some cases. We expect this issue to be resolved in a future release of the sidecar container. For verification, please see the release notes of future releases of the external sidecar container. ([#76](https://github.com/kubernetes-csi/driver-registrar/issues/76)) +- When using IPV6-only, be sure to use `proxy-mode=iptables` as `proxy-mode=ipvs` is known to not work. ([#68437](https://github.com/kubernetes/kubernetes/issues/68437)) + +## Deprecations + +- kube-apiserver + - The `--service-account-api-audiences` flag is deprecated in favor of `--api-audiences`. The old flag is accepted with a warning but will be removed in a future release. ([#70105](https://github.com/kubernetes/kubernetes/pull/70105), [@mikedanese](https://github.com/mikedanese)) + - The `--experimental-encryption-provider-config` flag is deprecated in favor of `--encryption-provider-config`. The old flag is accepted with a warning but will be removed in 1.14. ([#71206](https://github.com/kubernetes/kubernetes/pull/71206), [@stlaz](https://github.com/stlaz)) + - As part of graduating the etcd encryption feature to beta, the configuration file referenced by `--encryption-provider-config` now uses `kind: EncryptionConfiguration` and `apiVersion: apiserver.config.k8s.io/v1`. Support for `kind: EncryptionConfig` and `apiVersion: v1` is deprecated and will be removed in a future release. ([#67383](https://github.com/kubernetes/kubernetes/pull/67383), [@stlaz](https://github.com/stlaz)) + - The `--deserialization-cache-size` flag is deprecated, and will be removed in a future release. The flag is inactive since the etcd2 storage backend was removed. ([#69842](https://github.com/kubernetes/kubernetes/pull/69842), [@liggitt](https://github.com/liggitt)) + - The `Node` authorization mode no longer allows kubelets to delete their Node API objects (prior to 1.11, in rare circumstances related to cloudprovider node ID changes, kubelets would attempt to delete/recreate their Node object at startup) ([#71021](https://github.com/kubernetes/kubernetes/pull/71021), [@liggitt](https://github.com/liggitt)) + - The built-in `system:csi-external-provisioner` and `system:csi-external-attacher` cluster roles are deprecated and will not be auto-created in a future release. CSI deployments should provide their own RBAC role definitions with required permissions. ([#69868](https://github.com/kubernetes/kubernetes/pull/69868), [@pohly]( https://github.com/pohly)) + - The built-in `system:aws-cloud-provider` cluster role is deprecated and will not be auto-created in a future release. Deployments using the AWS cloud provider should grant required permissions to the `aws-cloud-provider` service account in the `kube-system` namespace as part of deployment. ([#66635](https://github.com/kubernetes/kubernetes/pull/66635), [@wgliang](https://github.com/wgliang)) +- kubelet + - Use of the beta plugin registration directory `{kubelet_root_dir}/plugins/` for registration of external drivers via the kubelet plugin registration protocol is deprecated in favor of `{kubelet_root_dir}/plugins_registry/`. Support for the old directory is planned to be removed in v1.15. Device plugin and CSI storage drivers should switch to the new directory prior to v1.15. Only CSI storage drivers that support 0.x versions of the CSI API are allowed in the old directory. ([#70494](https://github.com/kubernetes/kubernetes/pull/70494) by [@RenaudWasTaken](https://github.com/RenaudWasTaken) and [#71314](https://github.com/kubernetes/kubernetes/pull/71314) by [@saad-ali](https://github.com/saad-ali)) + - With the release of the CSI 1.0 API, support for CSI drivers using 0.3 and older releases of the CSI API is deprecated, and is planned to be removed in Kubernetes v1.15. CSI drivers should be updated to support the CSI 1.0 API, and deployed in the new kubelet plugin registration directory (`{kubelet_root_dir}/plugins_registry/`) once all nodes in the cluster are at 1.13 or higher ([#71020](https://github.com/kubernetes/kubernetes/pull/71020) and [#71314](https://github.com/kubernetes/kubernetes/pull/71314), both by [@saad-ali](https://github.com/saad-ali)) + - Use of the `--node-labels` flag to set labels under the `kubernetes.io/` and `k8s.io/` prefix will be subject to restriction by the `NodeRestriction` admission plugin in future releases. [See admission plugin documentation](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#noderestriction) for allowed labels. ([#68267](https://github.com/kubernetes/kubernetes/pull/68267), [@liggitt](https://github.com/liggitt)) +- kube-scheduler + - The alpha critical pod annotation (`scheduler.alpha.kubernetes.io/critical-pod`) is deprecated. Pod priority should be used instead to mark pods as critical. ([#70298](https://github.com/kubernetes/kubernetes/pull/70298), [@bsalamat](https://github.com/bsalamat)) +- The following features are now GA, and the associated feature gates are deprecated and will be removed in a future release: + - CSIPersistentVolume + - GCERegionalPersistentDisk + - KubeletPluginsWatcher + - VolumeScheduling +- kubeadm + - The DynamicKubeletConfig feature gate is deprecated. The functionality is still accessible by using the kubeadm alpha kubelet enable-dynamic command. + - The command `kubeadm config print-defaults` is deprecated in favor of `kubeadm config print init-defaults` and `kubeadm config print join-defaults` ([#69617](https://github.com/kubernetes/kubernetes/pull/69617), [@rosti](https://github.com/rosti)) + - support for the `v1alpha3` configuration file format is deprecated and will be removed in 1.14. Use `kubeadm config migrate` to migrate `v1alpha3` configuration files to `v1beta1`, which provides improvements in image repository management, addons configuration, and other areas. The documentation for `v1beta1` can be found here: https://godoc.org/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta1 +- The `node.status.volumes.attached.devicePath` field is deprecated for CSI volumes and will not be set in future releases ([#71095](https://github.com/kubernetes/kubernetes/pull/71095), [@msau42](https://github.com/msau42)) +- kubectl + - The `kubectl convert` command is deprecated and will be removed in a future release ([#70820](https://github.com/kubernetes/kubernetes/pull/70820), [@seans3](https://github.com/seans3)) +- Support for passing unknown provider names to the E2E test binaries is deprecated and will be removed in a future release. Use `--provider=skeleton` (no ssh access) or `--provider=local` (local cluster with ssh) instead. ([#70141](https://github.com/kubernetes/kubernetes/pull/70141), [@pohly](https://github.com/pohly)) + +## Major Themes + +### SIG API Machinery + +For the 1.13 release, SIG API Machinery is happy to announce that the [dry-run functionality](https://kubernetes.io/docs/reference/using-api/api-concepts/#dry-run) is now beta. + +### SIG Auth + +With this release we've made several important enhancements to core SIG Auth areas. In the authorization category, we've further reduced Kubelet privileges by [restricting node self-updates of labels to a whitelisted selection and by disallowing kubelets from deleting their Node API object](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#noderestriction). In authentication, we added alpha-level support for automounting improved service account tokens through projected volumes. We also enabled [audience validation in TokenReview](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.13/#tokenreview-v1-authentication-k8s-io) for the new tokens for improved scoping. Under audit logging, the new alpha-level "dynamic audit configuration" adds support for [dynamically registering webhooks to receive a stream of audit events](https://kubernetes.io/docs/tasks/debug-application-cluster/audit/#dynamic-backend). Finally, we've enhanced secrets protection by graduating [etcd encryption](https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/) out of experimental. + +### SIG AWS + +In v1.13 we worked on tighter integrations of Kubernetes API objects with AWS services. These include three out-of-tree alpha feature releases: + +1) Alpha for AWS ALB (Application Load Balancer) integration to Kubernetes Ingress resources. +2) Alpha for CSI specification 0.3 integration to AWS EBS (Elastic Block Store) +3) Alpha for the cloudprovider-aws cloud controller manager binary. Additionally we added [aws-k8s-tester](https://github.com/kubernetes/test-infra/issues/9814), deployer interface for kubetest, to the test-infra repository. This plugin allowed us to integrate Prow to the 3 subprojects defined above in order to provide CI signal for all 3 features. The CI signal is visible [here](https://testgrid.k8s.io/) under SIG-AWS. + +For detailed release notes on the three alpha features from SIG AWS, please refer to the following Changelogs: + +- [aws-alb-ingress-controller v1.0.0](https://github.com/kubernetes-sigs/aws-alb-ingress-controller/releases/tag/v1.0.0) +- [aws-ebs-csi-driver v0.1](https://github.com/kubernetes-sigs/aws-ebs-csi-driver/blob/master/CHANGELOG-0.1.md) +- [cloudprovider-aws external v0.1.0](https://github.com/kubernetes/cloud-provider-aws/blob/master/changelogs/CHANGELOG-0.1.md) + +### SIG Azure + +For 1.13 SIG Azure was focused on adding additional Azure Disk support for Ultra SSD, Standard SSD, and Premium Azure Files. Azure Availability Zones and cross resource group nodes were also moved from Alpha to Beta in 1.13. + +### SIG Big Data + +During the 1.13 release cycle, SIG Big Data has been focused on community engagements relating to 3rd-party project integrations with Kubernetes. There have been no impacts on the 1.13 release. + +### SIG CLI + +Over the course of 1.13 release SIG CLI mostly focused on stabilizing the items we’ve been working on over the past releases such as server-side printing and its support in kubectl, as well as finishing [kubectl diff which is based on server-side dry-run feature](https://kubernetes.io/docs/concepts/overview/object-management-kubectl/#how-to-create-objects). We’ve continued separating kubectl code to prepare for extraction out of main repository. Finally, thanks to the awesome support and feedback from community we’ve managed to promote the new [plugin mechanism to Beta](https://kubernetes.io/docs/tasks/extend-kubectl/kubectl-plugins/). + +### SIG Cloud Provider + +For v1.13, SIG Cloud Provider has been focused on stabilizing the common APIs and interfaces consumed by cloud providers today. This involved auditing the cloud provider APIs for anything that should be deprecated as well as adding changes where necessary. In addition, SIG Cloud Provider has begun exploratory work around having a “cloud provider†e2e test suite which can be used to test common cloud provider functionalities with resources such as nodes and load balancers. + +We are also continuing our long running effort to extract all the existing cloud providers that live in k8s.io/kubernetes into their own respective repos. Along with this migration, we are slowly transitioning users to use the cloud-controller-manager for any cloud provider features instead of the kube-controller-manager. + +### SIG Cluster Lifecycle + +For 1.13 SIG Cluster Lifecycle is pleased to announce the long awaited promotion of kubeadm to stable GA, and the promotion of kubeadm’s configuration API to `v1beta1`. +In this release the SIG again focused on further improving the user experience on cluster creation and also fixing a number of bugs and other assorted improvements. + +Some notable changes in kubeadm since Kubernetes 1.12: + +- kubeadm’s configuration API is now `v1beta1`. The new configuration format provides improvements in - image repository management, addons configuration, and other areas. We encourage `v1alpha3` users to migrate to this configuration API using `kubeadm config migrate`, as `v1alpha3` will be removed in 1.14. The documentation for `v1beta1` can be found here: https://godoc.org/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta1 +- kubeadm has graduated `kubeadm alpha phase` commands to `kubeadm init phase`. This means that the phases of creating a control-plane node are now tightly integrated as part of the `init` command. Alpha features, not yet ready for GA are still kept under `kubeadm alpha` and we appreciate feedback on them. +- `kubeadm init` and `kubeadm init phase` now have a `--image-repository` flag, improving support for environments with limited access to official kubernetes repository. +- The DynamicKubeletConfig and SelfHosting functionality was moved outside of `kubeadm init` and feature gates and is now exposed under `kubeadm alpha`. +- Kubeadm init phase certs now support the `--csr-only` option, simplifying custom CA creation. +- `kubeadm join --experimental-control-plane` now automatically adds a new etcd member for `local etcd` mode, further simplifying required tasks for HA clusters setup. +- Improvements were made to `kubeadm reset` related to cleaning etcd and notifying the user about the state of iptables. +- kubeadm commands now print warnings if input YAML documents contain unknown or duplicate fields. +- kubeadm now properly recognizes Docker 18.09.0 and newer, but still treats 18.06 as the default supported version. +- kubeadm now automatically sets the `--pod-infra-container-image` flag when starting the kubelet. + +### SIG IBM Cloud + +The IBM Cloud SIG was focused on defining its charter and working towards moving its cloud provider code to an external repository with a goal to have this work done by the end of Kubernetes 1.14 release cycle. In the SIG meetings, we also made sure to share updates on the latest Kubernetes developments in the IBM Cloud like the availability of Kubernetes v1.12.2 in the IBM Cloud Kubernetes Service (IKS). The SIG updates were provided in the Kubernetes community weekly call and at the KubeCon China 2018. + +### SIG Multicluster + +Moving Federation v2 from Alpha towards Beta has been the focus of our effort over the past quarter. To this end we engaged with end users, and successfully enlisted additional contributors from companies including IBM, Amadeus, Cisco and others. Federation v2 provides a suite of decoupled API’s and re-usable components for building multi-cluster control planes. We plan to start releasing Beta components in late 2018. In addition, more minor updates were made to our cluster-registry and multi-cluster ingress sub-projects. + +### SIG Network + +For 1.13, the areas of focus were in IPv6, DNS improvements and some smaller items: +CoreDNS is now the default cluster DNS passing all of the scale/resource usage tests +Node-local DNS cache feature is available in Alpha. This feature deploys a lightweight DNS caching Daemonset that avoids the conntrack and converts queries from UDP to more reliable TCP. +PodReady++ feature now has `kubectl` CLI support. + +Progress was made towards finalizing the IPv6 dual stack support KEP and support for topological routing of services. + +### SIG Node + +SIG Node focused on stability and performance improvements in the 1.13 release. A new alpha feature is introduced to improve the mechanism that nodes heartbeat back to the control plane. The `NodeLease` feature results in the node using a `Lease` resource in the `kube-node-lease` namespace that is renewed periodically. The `NodeStatus` that was used previously to heartbeat back to the control plane is only updated when it changes. This reduces load on the control plane for large clusters. The Kubelet plugin registration mechanism, which enables automatic discovery of external plugins (including CSI and device plugins) has been promoted to stable in this release (introduced as alpha in 1.11 and promoted to beta in 1.12). + +### SIG Openstack + +The major theme for the SIG OpenStack release is the work-in-progress for removing the in-tree provider. This work, being done in conjunction with SIG Cloud Provider, is focusing on moving internal APIs that the OpenStack (and other providers) depends upon to staging to guarantee API stability. This work also included abstracting the in-tree Cinder API and refactoring code to the external Cinder provider to remove additional Cinder volume provider code. + +Additional work was also done to implement an OpenStack driver for the Cluster API effort lead by SIG Cluster Lifecycle. For the external Cloud-Provider-OpenStack code, the SIG largely focused on bug fixes and updates to match K8s 1.13 development. + +### SIG Scalability + +SIG Scalability has mostly focused on stability and deflaking our tests, investing into framework for writing scalability tests (ClusterLoader v2) with a goal to migrate all tests to it by the end of 2018 and on the work towards extending definition of Kubernetes scalability by providing more/better user-friendly SLIs/SLOs. + +### SIG Scheduling + +SIG Scheduling has mostly focused on stability in 1.13 and has postponed some of the major features to the next versions. There are still two notable changes: 1. TaintBasedEviction is moved to Beta and will be enabled by default. With this feature enabled, condition taints are automatically added to the nodes and pods can add tolerations for them if needed. 2. Pod critical annotation is deprecated. Pods should use pod priority instead of the annotation. + +It is worth noting again that kube-scheduler will use apiVersion `kubescheduler.config.k8s.io/v1alpha1` instead of `componentconfig/v1alpha1` in its configuration files in 1.13. + +### SIG Service Catalog + +The Service Plan Defaults feature is still under active development. +We continue to improve the UX for the svcat CLI, specifically filling in gaps for the new Namespaced Service Broker feature. + +### SIG Storage + +Over the last year, SIG Storage has been focused on adding support for the Container Storage Interface (CSI) to Kubernetes. The specification recently moved to 1.0, and on the heels of this achievement, Kubernetes v1.13 moves CSI support for PersistentVolumes to GA. + +With CSI the Kubernetes volume layer becomes truly extensible, allowing third party storage developers to write drivers making their storage systems available in Kubernetes without having to touch the core code. + +CSI was first introduction as alpha in Kubernetes v1.9 and moved to beta in Kubernetes v1.10. + +You can find a list of sample and production drivers in the [CSI Documentation](https://kubernetes.io/docs/concepts/storage/volumes/#csi). + +SIG Storage also moves support for Block Volumes to beta (introduced as alpha in v1.9) and support for Topology Aware Volume Scheduling to stable (introduced as alpha in v1.9 and promoted to beta in 1.10). + +### SIG UI + +The migration to the newest version of Angular is still under active development as it is most important thing on the roadmap at the moment. We are getting closer to to the new release. We continue fixing bugs and adding other improvements. + +### SIG VMWare + +Major focus for SIG VMware for this release is the work on moving internal APIs that the vSphere provider depends upon to staging to guarantee API stability. This work is being done in conjunction with SIG Cloud Provider and includes the creation of a brand new vsphere-csi plugin to replace the current volume functionalities in-tree. + +Additional work was also done to implement a vSphere provider for the Cluster API effort lead by SIG Cluster Lifecycle. For the out-of-tree vSphere cloud provider, the SIG largely focused on bug fixes and updates to match K8s 1.13 development. + +### SIG Windows + +SIG Windows focused on improving reliability for Windows and Kubernetes support + +## New Features + +- kubelet: When node lease feature is enabled, kubelet reports node status to api server only if there is some change or it didn't report over last report interval. ([#69753](https://github.com/kubernetes/kubernetes/pull/69753), [@wangzhen127](https://github.com/wangzhen127)) +- vSphereVolume implements Raw Block Volume Support ([#68761](https://github.com/kubernetes/kubernetes/pull/68761), [@fanzhangio](https://github.com/fanzhangio)) +- CRD supports multi-version Schema, Subresources and AdditionalPrintColumns (NOTE that CRDs created prior to 1.13 populated the top-level additionalPrinterColumns field by default. To apply an updated that changes to per-version additionalPrinterColumns, the top-level additionalPrinterColumns field must be explicitly set to null). ([#70211](https://github.com/kubernetes/kubernetes/pull/70211), [@roycaihw](https://github.com/roycaihw)) +- New addon in addon manager that automatically installs CSI CRDs if CSIDriverRegistry or CSINodeInfo feature gates are true. ([#70193](https://github.com/kubernetes/kubernetes/pull/70193), [@saad-ali](https://github.com/saad-ali)) +- Delegated authorization can now allow unrestricted access for `system:masters` like the main kube-apiserver ([#70671](https://github.com/kubernetes/kubernetes/pull/70671), [@deads2k](https://github.com/deads2k)) +- Added dns capabilities for Windows CNI plugins: ([#67435](https://github.com/kubernetes/kubernetes/pull/67435), [@feiskyer](https://github.com/feiskyer)) +- kube-apiserver: `--audit-webhook-version` and `--audit-log-version` now default to `audit.k8s.io/v1` if unspecified ([#70476](https://github.com/kubernetes/kubernetes/pull/70476), [@charrywanganthony](https://github.com/charrywanganthony)) +- kubeadm: timeoutForControlPlane is introduced as part of the API Server config, that controls the timeout for the wait for control plane to be up. Default value is 4 minutes. ([#70480](https://github.com/kubernetes/kubernetes/pull/70480), [@rosti](https://github.com/rosti)) +- `--api-audiences` now defaults to the `--service-account-issuer` if the issuer is provided but the API audience is not. ([#70308](https://github.com/kubernetes/kubernetes/pull/70308), [@mikedanese](https://github.com/mikedanese)) +- Added support for projected volume in describe function ([#70158](https://github.com/kubernetes/kubernetes/pull/70158), [@WanLinghao](https://github.com/WanLinghao)) +- kubeadm now automatically creates a new stacked etcd member when joining a new control plane node (does not applies to external etcd) ([#69486](https://github.com/kubernetes/kubernetes/pull/69486), [@fabriziopandini](https://github.com/fabriziopandini)) +- Display the usage of ephemeral-storage when using `kubectl describe node` ([#70268](https://github.com/kubernetes/kubernetes/pull/70268), [@Pingan2017](https://github.com/Pingan2017)) +- Added functionality to enable br_netfilter and ip_forward for debian packages to improve kubeadm support for CRI runtime besides Docker. ([#70152](https://github.com/kubernetes/kubernetes/pull/70152), [@ashwanikhemani](https://github.com/ashwanikhemani)) +- Added regions ap-northeast-3 and eu-west-3 to the list of well known AWS regions. ([#70252](https://github.com/kubernetes/kubernetes/pull/70252), [@nckturner](https://github.com/nckturner)) +- kubeadm: Implemented preflight check to ensure that number of CPUs ([#70048](https://github.com/kubernetes/kubernetes/pull/70048), [@bart0sh](https://github.com/bart0sh)) +- CoreDNS is now the default DNS server in kube-up deployments. ([#69883](https://github.com/kubernetes/kubernetes/pull/69883), [@chrisohaver](https://github.com/chrisohaver)) +- Opt out of chowning and chmoding from kubectl cp. ([#69573](https://github.com/kubernetes/kubernetes/pull/69573), [@bjhaid](https://github.com/bjhaid)) +- Failed to provision volume with StorageClass "azurefile-premium": failed to create share andy-mg1121-dynamic-pvc-1a7b2813-d1b7-11e8-9e96-000d3a03e16b in account f7228f99bcde411e8ba4900: failed to create file share, err: storage: service returned error: StatusCode=400, ErrorCode=InvalidHeaderValue, ErrorMessage=The value for one of the HTTP headers is not in the correct format. ([#69718](https://github.com/kubernetes/kubernetes/pull/69718), [@andyzhangx](https://github.com/andyzhangx)) +- `TaintBasedEvictions` feature is promoted to beta. ([#69824](https://github.com/kubernetes/kubernetes/pull/69824), [@Huang-Wei](https://github.com/Huang-Wei)) +- Fixed https://github.com/kubernetes/client-go/issues/478 by adding support for JSON Patch in client-go/dynamic/fake ([#69330](https://github.com/kubernetes/kubernetes/pull/69330), [@vaikas-google](https://github.com/vaikas-google)) +- Dry-run is promoted to Beta and will be enabled by default. ([#69644](https://github.com/kubernetes/kubernetes/pull/69644), [@apelisse](https://github.com/apelisse)) +- `kubectl get priorityclass` now prints value column by default. ([#69431](https://github.com/kubernetes/kubernetes/pull/69431), [@Huang-Wei](https://github.com/Huang-Wei)) +- Added a new container based image for running e2e tests ([#69368](https://github.com/kubernetes/kubernetes/pull/69368), [@dims](https://github.com/dims)) +- The `LC_ALL` and `LC_MESSAGES` env vars can now be used to set desired locale for `kubectl` while keeping `LANG` unchanged. ([#69500](https://github.com/kubernetes/kubernetes/pull/69500), [@m1kola](https://github.com/m1kola)) +- NodeLifecycleController: Now node lease renewal is treated as the heartbeat signal from the node, in addition to NodeStatus Update. ([#69241](https://github.com/kubernetes/kubernetes/pull/69241), [@wangzhen127](https://github.com/wangzhen127)) +- Added dynamic shared informers to write generic, non-generated controllers ([#69308](https://github.com/kubernetes/kubernetes/pull/69308), [@p0lyn0mial](https://github.com/p0lyn0mial)) +- Upgraded to etcd 3.3 client ([#69322](https://github.com/kubernetes/kubernetes/pull/69322), [@jpbetz](https://github.com/jpbetz)) +- It is now possible to use named ports in the `kubectl port-forward` command ([#69477](https://github.com/kubernetes/kubernetes/pull/69477), [@m1kola](https://github.com/m1kola)) +- `kubectl wait` now supports condition value checks other than true using `--for condition=available=false` ([#69295](https://github.com/kubernetes/kubernetes/pull/69295), [@deads2k](https://github.com/deads2k)) +- Updated defaultbackend image to 1.5. Users should concentrate on updating scripts to the new version. ([#69120](https://github.com/kubernetes/kubernetes/pull/69120), [@aledbf](https://github.com/aledbf)) +- Bumped Dashboard version to v1.10.0 ([#68450](https://github.com/kubernetes/kubernetes/pull/68450), [@jeefy](https://github.com/jeefy)) +- Added env variables to control CPU requests of kube-controller-manager and kube-scheduler. ([#68823](https://github.com/kubernetes/kubernetes/pull/68823), [@loburm](https://github.com/loburm)) +- PodSecurityPolicy objects now support a `MayRunAs` rule for `fsGroup` and `supplementalGroups` options. This allows specifying ranges of allowed GIDs for pods/containers without forcing a default GID the way `MustRunAs` does. This means that a container to which such a policy applies to won't use any fsGroup/supplementalGroup GID if not explicitly specified, yet a specified GID must still fall in the GID range according to the policy. ([#65135](https://github.com/kubernetes/kubernetes/pull/65135), [@stlaz](https://github.com/stlaz)) +- Upgrade Stackdriver Logging Agent addon image to 0.6-1.6.0-1 to use Fluentd v1.2. This provides nanoseconds timestamp granularity for logs. ([#70954](https://github.com/kubernetes/kubernetes/pull/70954), [@qingling128](https://github.com/qingling128)) +- When the BoundServiceAccountTokenVolumes Alpha feature is enabled, ServiceAccount volumes now use a projected volume source and their names have the prefix "kube-api-access". ([#69848](https://github.com/kubernetes/kubernetes/pull/69848), [@mikedanese](https://github.com/mikedanese)) +- Raw block volume support is promoted to beta, and enabled by default. This is accessible via the `volumeDevices` container field in pod specs, and the `volumeMode` field in persistent volume and persistent volume claims definitions. ([#71167](https://github.com/kubernetes/kubernetes/pull/71167), [@msau42](https://github.com/msau42)) +- TokenReview now supports audience validation of tokens with audiences other than the kube-apiserver. ([#62692](https://github.com/kubernetes/kubernetes/pull/62692), [@mikedanese](https://github.com/mikedanese)) +- StatefulSet is supported in `kubectl autoscale` command ([#71103](https://github.com/kubernetes/kubernetes/pull/71103), [@Pingan2017](https://github.com/Pingan2017)) +- Kubernetes v1.13 moves support for Container Storage Interface to GA. As part of this move Kubernetes now supports CSI v1.0.0 and deprecates support for CSI 0.3 and older releases. Older CSI drivers must be updated to CSI 1.0 and moved to the new kubelet plugin registration directory in order to work with Kubernetes 1.15+. ([#71020](https://github.com/kubernetes/kubernetes/pull/71020), [@saad-ali](https://github.com/saad-ali)) +- Added option to create CSRs instead of certificates for kubeadm init phase certs and kubeadm alpha certs renew ([#70809](https://github.com/kubernetes/kubernetes/pull/70809), [@liztio](https://github.com/liztio)) +- Added a kubelet socket which serves an grpc service containing the devices used by containers on the node. ([#70508](https://github.com/kubernetes/kubernetes/pull/70508), [@dashpole](https://github.com/dashpole)) +- Added DynamicAuditing feature which allows for the configuration of audit webhooks through the use of an AuditSink API object. ([#67257](https://github.com/kubernetes/kubernetes/pull/67257), [@pbarker](https://github.com/pbarker)) +- The kube-apiserver's healthz now takes in an optional query parameter which allows you to disable health checks from causing healthz failures. ([#70676](https://github.com/kubernetes/kubernetes/pull/70676), [@logicalhan](https://github.com/logicalhan)) +- Introduced support for running a nodelocal dns cache. It is disabled by default, can be enabled by setting KUBE_ENABLE_NODELOCAL_DNS=true ([#70555](https://github.com/kubernetes/kubernetes/pull/70555), [@prameshj](https://github.com/prameshj)) +- Added readiness gates in extended output for pods ([#70775](https://github.com/kubernetes/kubernetes/pull/70775), [@freehan](https://github.com/freehan)) +- Added `Ready` column and improve human-readable output of Deployments and StatefulSets ([#70466](https://github.com/kubernetes/kubernetes/pull/70466), [@Pingan2017](https://github.com/Pingan2017)) +- Added `kubelet_container_log_size_bytes` metric representing the log file size of a container. ([#70749](https://github.com/kubernetes/kubernetes/pull/70749), [@brancz](https://github.com/brancz)) +- NodeLifecycleController: When node lease feature is enabled, node lease will be deleted when the corresponding node is deleted. ([#70034](https://github.com/kubernetes/kubernetes/pull/70034), [@wangzhen127](https://github.com/wangzhen127)) +- GCERegionalPersistentDisk feature is GA now! ([#70716](https://github.com/kubernetes/kubernetes/pull/70716), [@jingxu97](https://github.com/jingxu97)) +- Added secure port 10259 to the kube-scheduler (enabled by default) and deprecate old insecure port 10251. Without further flags self-signed certs are created on startup in memory. ([#69663](https://github.com/kubernetes/kubernetes/pull/69663), [@sttts](https://github.com/sttts)) + +## Release Notes From SIGs + +### SIG API Machinery + +- The OwnerReferencesPermissionEnforcement admission plugin now checks authorization for the correct scope (namespaced or cluster-scoped) of the owner resource type. Previously, it always checked permissions at the same scope as the child resource. ([#70389](https://github.com/kubernetes/kubernetes/pull/70389), [@caesarxuchao](https://github.com/caesarxuchao)) +- OpenAPI spec now correctly marks delete request's body parameter as optional ([#70032](https://github.com/kubernetes/kubernetes/pull/70032), [@iamneha](https://github.com/iamneha)) +- The rules for incrementing `metadata.generation` of custom resources changed: ([#69059](https://github.com/kubernetes/kubernetes/pull/69059), [@caesarxuchao](https://github.com/caesarxuchao)) + - If the custom resource participates the spec/status convention, the metadata.generation of the CR increments when there is any change, except for the changes to the metadata or the changes to the status. + - If the custom resource does not participate the spec/status convention, the metadata.generation of the CR increments when there is any change to the CR, except for changes to the metadata. + - A custom resource is considered to participate the spec/status convention if and only if the "CustomResourceSubresources" feature gate is turned on and the CRD has `.spec.subresources.status={}`. +- Fixed patch/update operations on multi-version custom resources ([#70087](https://github.com/kubernetes/kubernetes/pull/70087), [@liggitt](https://github.com/liggitt)) +- Reduced memory utilization of admission webhook metrics by removing resource related labels. ([#69895](https://github.com/kubernetes/kubernetes/pull/69895), [@jpbetz](https://github.com/jpbetz)) +- Kubelet can now parse PEM file containing both TLS certificate and key in arbitrary order. Previously key was always required to be first. ([#69536](https://github.com/kubernetes/kubernetes/pull/69536), [@awly](https://github.com/awly)) +- Code-gen: Removed lowercasing for project imports ([#68484](https://github.com/kubernetes/kubernetes/pull/68484), [@jsturtevant](https://github.com/jsturtevant)) +- Fixed client cert setup in delegating authentication logic ([#69430](https://github.com/kubernetes/kubernetes/pull/69430), [@DirectXMan12](https://github.com/DirectXMan12)) +- OpenAPI spec and API reference now reflect dryRun query parameter for POST/PUT/PATCH operations ([#69359](https://github.com/kubernetes/kubernetes/pull/69359), [@roycaihw](https://github.com/roycaihw)) +- Fixed the sample-apiserver so that its BanFlunder admission plugin can be used. ([#68417](https://github.com/kubernetes/kubernetes/pull/68417), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) +- APIService availability related to networking glitches are corrected faster ([#68678](https://github.com/kubernetes/kubernetes/pull/68678), [@deads2k](https://github.com/deads2k)) +- Fixed an issue with stuck connections handling error responses ([#71412](https://github.com/kubernetes/kubernetes/pull/71412), [@liggitt](https://github.com/liggitt)) +- apiserver: fixed handling and logging of panics in REST handlers ([#71076](https://github.com/kubernetes/kubernetes/pull/71076), [@liggitt](https://github.com/liggitt)) +- kube-controller-manager no longer removes ownerReferences from ResourceQuota objects ([#70035](https://github.com/kubernetes/kubernetes/pull/70035), [@liggitt](https://github.com/liggitt)) +- "unfinished_work_microseconds" is added to the workqueue metrics; it can be used to detect stuck worker threads. (kube-controller-manager runs many workqueues.) ([#70884](https://github.com/kubernetes/kubernetes/pull/70884), [@lavalamp](https://github.com/lavalamp)) +- Timeouts set in ListOptions for clients are also be respected locally ([#70998](https://github.com/kubernetes/kubernetes/pull/70998), [@deads2k](https://github.com/deads2k)) +- Added support for CRD conversion webhook ([#67006](https://github.com/kubernetes/kubernetes/pull/67006), [@mbohlool](https://github.com/mbohlool)) +- client-go: fixed sending oversized data frames to spdystreams in remotecommand.NewSPDYExecutor ([#70999](https://github.com/kubernetes/kubernetes/pull/70999), [@liggitt](https://github.com/liggitt)) +- Fixed missing flags in `-controller-manager --help`. ([#71298](https://github.com/kubernetes/kubernetes/pull/71298), [@stewart-yu](https://github.com/stewart-yu)) +- Fixed missing flags in `kube-apiserver --help`. ([#70204](https://github.com/kubernetes/kubernetes/pull/70204), [@imjching](https://github.com/imjching)) +- The caBundle and service fields in admission webhook API objects now correctly indicate they are optional ([#70138](https://github.com/kubernetes/kubernetes/pull/70138), [@liggitt](https://github.com/liggitt)) +- Fixed an issue with stuck connections handling error responses ([#71419](https://github.com/kubernetes/kubernetes/pull/71419), [@liggitt](https://github.com/liggitt)) +- kube-controller-manager and cloud-controller-manager now hold generated serving certificates in-memory unless a writeable location is specified with --cert-dir ([#69884](https://github.com/kubernetes/kubernetes/pull/69884), [@liggitt](https://github.com/liggitt)) +- CCM server will not listen insecurely if secure port is specified ([#68982](https://github.com/kubernetes/kubernetes/pull/68982), [@aruneli](https://github.com/aruneli)) +- List operations against the API now return internal server errors instead of partially complete lists when a value cannot be transformed from storage. The updated behavior is consistent with all other operations that require transforming data from storage such as watch and get. ([#69399](https://github.com/kubernetes/kubernetes/pull/69399), [@mikedanese](https://github.com/mikedanese)) + +### SIG Auth + +- API Server can be configured to reject requests that cannot be audit-logged. ([#65763](https://github.com/kubernetes/kubernetes/pull/65763), [@x13n](https://github.com/x13n)) +- Go clients created from a kubeconfig that specifies a TokenFile now periodically reload the token from the specified file. ([#70606](https://github.com/kubernetes/kubernetes/pull/70606), [@mikedanese](https://github.com/mikedanese)) +- When `--rotate-server-certificates` is enabled, kubelet will no longer request a new certificate on startup if the current certificate on disk is satisfactory. ([#69991](https://github.com/kubernetes/kubernetes/pull/69991), [@agunnerson-ibm](https://github.com/agunnerson-ibm)) +- Added dynamic audit configuration api ([#67547](https://github.com/kubernetes/kubernetes/pull/67547), [@pbarker](https://github.com/pbarker)) +- Added ability to control primary GID of containers through Pod Spec and PodSecurityPolicy ([#67802](https://github.com/kubernetes/kubernetes/pull/67802), [@krmayankk](https://github.com/krmayankk)) +- kube-apiserver: the `NodeRestriction` admission plugin now prevents kubelets from modifying `Node` labels prefixed with `node-restriction.kubernetes.io/`. The `node-restriction.kubernetes.io/` label prefix is reserved for cluster administrators to use for labeling `Node` objects to target workloads to nodes in a way that kubelets cannot modify or spoof. ([#68267](https://github.com/kubernetes/kubernetes/pull/68267), [@liggitt](https://github.com/liggitt)) + +### SIG Autoscaling + +- Updated Cluster Autoscaler version to 1.13.0. See the [Release Notes](https://github.com/kubernetes/autoscaler/releases/tag/cluster-autoscaler-1.13.0) for more information. ([#71513](https://github.com/kubernetes/kubernetes/pull/71513), [@losipiuk](https://github.com/losipiuk)) + +### SIG AWS + +- `service.beta.kubernetes.io/aws-load-balancer-internal` now supports true and false values, previously it only supported non-empty strings ([#69436](https://github.com/kubernetes/kubernetes/pull/69436), [@mcrute](https://github.com/mcrute)) +- Added `service.beta.kubernetes.io/aws-load-balancer-security-groups` annotation to set the security groups to the AWS ELB to be the only ones specified in the annotation in case this is present (does not add `0.0.0.0/0`). ([#62774](https://github.com/kubernetes/kubernetes/pull/62774), [@Raffo](https://github.com/Raffo)) + +### SIG Azure + +- Ensured orphan public IPs on Azure deleted when service recreated with the same name. ([#70463](https://github.com/kubernetes/kubernetes/pull/70463), [@feiskyer](https://github.com/feiskyer)) +- Improved Azure instance metadata handling by adding caches. ([#70353](https://github.com/kubernetes/kubernetes/pull/70353), [@feiskyer](https://github.com/feiskyer)) +- Corrected check for non-Azure managed nodes with the Azure cloud provider ([#70135](https://github.com/kubernetes/kubernetes/pull/70135), [@marc-sensenich](https://github.com/marc-sensenich)) +- Fixed azure disk attach/detach failed forever issue ([#71377](https://github.com/kubernetes/kubernetes/pull/71377), [@andyzhangx](https://github.com/andyzhangx)) +- DisksAreAttached --> getNodeDataDisks--> GetDataDisks --> getVirtualMachine --> vmCache.Get ([#71495](https://github.com/kubernetes/kubernetes/pull/71495), [@andyzhangx](https://github.com/andyzhangx)) + +### SIG CLI + +- `kubectl apply` can now change a deployment strategy from rollout to recreate without explicitly clearing the rollout-related fields ([#70436](https://github.com/kubernetes/kubernetes/pull/70436), [@liggitt](https://github.com/liggitt)) +- The `kubectl plugin list` command now displays discovered plugin paths in the same order as they are found in a user's PATH variable. ([#70443](https://github.com/kubernetes/kubernetes/pull/70443), [@juanvallejo](https://github.com/juanvallejo)) +- `kubectl get` no longer exits before printing all of its results if an error is found ([#70311](https://github.com/kubernetes/kubernetes/pull/70311), [@juanvallejo](https://github.com/juanvallejo)) +- Fixed a runtime error occuring when sorting the output of `kubectl get` with empty results ([#70740](https://github.com/kubernetes/kubernetes/pull/70740), [@mfpierre](https://github.com/mfpierre)) +- kubectl: support multiple arguments for cordon/uncordon and drain ([#68655](https://github.com/kubernetes/kubernetes/pull/68655), [@goodluckbot](https://github.com/goodluckbot)) +- Fixed ability for admin/edit/view users to see controller revisions, needed for kubectl rollout commands ([#70699](https://github.com/kubernetes/kubernetes/pull/70699), [@liggitt](https://github.com/liggitt)) +- `kubectl rollout undo` now returns errors when attempting to rollback a deployment to a non-existent revision ([#70039](https://github.com/kubernetes/kubernetes/pull/70039), [@liggitt](https://github.com/liggitt)) +- kubectl run now generates apps/v1 deployments by default ([#71006](https://github.com/kubernetes/kubernetes/pull/71006), [@liggitt](https://github.com/liggitt)) +- The "kubectl cp" command now supports path shortcuts (../) in remote paths. ([#65189](https://github.com/kubernetes/kubernetes/pull/65189), [@juanvallejo](https://github.com/juanvallejo)) +- Fixed dry-run output in kubectl apply --prune ([#69344](https://github.com/kubernetes/kubernetes/pull/69344), [@zegl](https://github.com/zegl)) +- The kubectl wait command must handle when a watch returns an error vs closing by printing out the error and retrying the watch. ([#69389](https://github.com/kubernetes/kubernetes/pull/69389), [@smarterclayton](https://github.com/smarterclayton)) +- kubectl: support multiple arguments for cordon/uncordon and drain ([#68655](https://github.com/kubernetes/kubernetes/pull/68655), [@goodluckbot](https://github.com/goodluckbot)) + +### SIG Cloud Provider + +- Added deprecation warning for all cloud providers ([#69171](https://github.com/kubernetes/kubernetes/pull/69171), [@andrewsykim](https://github.com/andrewsykim)) + +### SIG Cluster Lifecycle + +- kubeadm: Updates version of CoreDNS to 1.2.6 ([#70796](https://github.com/kubernetes/kubernetes/pull/70796), [@detiber](https://github.com/detiber)) +- kubeadm: Validate kubeconfig files in case of external CA mode. ([#70537](https://github.com/kubernetes/kubernetes/pull/70537), [@yagonobre](https://github.com/yagonobre)) +- kubeadm: The writable config file option for extra volumes is renamed to readOnly with a reversed meaning. With readOnly defaulted to false (as in pod specs). ([#70495](https://github.com/kubernetes/kubernetes/pull/70495), [@rosti](https://github.com/rosti)) +- kubeadm: Multiple API server endpoints support upon join is removed as it is now redundant. ([#69812](https://github.com/kubernetes/kubernetes/pull/69812), [@rosti](https://github.com/rosti)) +- `kubeadm reset` now cleans up custom etcd data path ([#70003](https://github.com/kubernetes/kubernetes/pull/70003), [@yagonobre](https://github.com/yagonobre)) +- kubeadm: Fixed unnecessary upgrades caused by undefined order of Volumes and VolumeMounts in manifests ([#70027](https://github.com/kubernetes/kubernetes/pull/70027), [@bart0sh](https://github.com/bart0sh)) +- kubeadm: Fixed node join taints. ([#69846](https://github.com/kubernetes/kubernetes/pull/69846), [@andrewrynhard](https://github.com/andrewrynhard)) +- Fixed cluster autoscaler addon permissions so it can access batch/job. ([#69858](https://github.com/kubernetes/kubernetes/pull/69858), [@losipiuk](https://github.com/losipiuk)) +- kubeadm: JoinConfiguration now houses the discovery options in a nested Discovery structure, which in turn has a couple of other nested structures to house more specific options (BootstrapTokenDiscovery and FileDiscovery) ([#67763](https://github.com/kubernetes/kubernetes/pull/67763), [@rosti](https://github.com/rosti)) +- kubeadm: Fixed a possible scenario where kubeadm can pull much newer control-plane images ([#69301](https://github.com/kubernetes/kubernetes/pull/69301), [@neolit123](https://github.com/neolit123)) +- kubeadm now allows mixing of init/cluster and join configuration in a single YAML file (although a warning gets printed in this case). ([#69426](https://github.com/kubernetes/kubernetes/pull/69426), [@rosti](https://github.com/rosti)) +- kubeadm: Added a `v1beta1` API. ([#69289](https://github.com/kubernetes/kubernetes/pull/69289), [@fabriziopandini](https://github.com/fabriziopandini)) +- kubeadm init correctly uses `--node-name` and `--cri-socket` when `--config` option is also used ([#71323](https://github.com/kubernetes/kubernetes/pull/71323), [@bart0sh](https://github.com/bart0sh)) +- kubeadm: Always pass spec.nodeName as `--hostname-override` for kube-proxy ([#71283](https://github.com/kubernetes/kubernetes/pull/71283), [@Klaven](https://github.com/Klaven)) +- `kubeadm join` correctly uses `--node-name` and `--cri-socket` when `--config` option is also used ([#71270](https://github.com/kubernetes/kubernetes/pull/71270), [@bart0sh](https://github.com/bart0sh)) +- kubeadm now supports the `--image-repository` flag for customizing what registry to pull images from ([#71135](https://github.com/kubernetes/kubernetes/pull/71135), [@luxas](https://github.com/luxas)) +- kubeadm: The writable config file option for extra volumes is renamed to readOnly with a reversed meaning. With readOnly defaulted to false (as in pod specs). ([#70495](https://github.com/kubernetes/kubernetes/pull/70495), [@rosti](https://github.com/rosti)) +- kubeadm: Multiple API server endpoints support upon join is removed as it is now redundant. ([#69812](https://github.com/kubernetes/kubernetes/pull/69812), [@rosti](https://github.com/rosti)) +- kubeadm: JoinConfiguration now houses the discovery options in a nested Discovery structure, which in turn has a couple of other nested structures to house more specific options (BootstrapTokenDiscovery and FileDiscovery) ([#67763](https://github.com/kubernetes/kubernetes/pull/67763), [@rosti](https://github.com/rosti)) +- kubeadm: Added a `v1beta1` API. ([#69289](https://github.com/kubernetes/kubernetes/pull/69289), [@fabriziopandini](https://github.com/fabriziopandini)) +- kubeadm: Use `advertise-client-urls` instead of `listen-client-urls` as and `etcd-servers` options for apiserver. ([#69827](https://github.com/kubernetes/kubernetes/pull/69827), [@tomkukral](https://github.com/tomkukral)) +- Kubeadm now respects the custom image registry configuration across joins and upgrades. Kubeadm passes the custom registry to the kubelet for a custom pause container. ([#70603](https://github.com/kubernetes/kubernetes/pull/70603), [@chuckha](https://github.com/chuckha)) +- `kubeadm reset` now outputs instructions about manual iptables rules cleanup. ([#70874](https://github.com/kubernetes/kubernetes/pull/70874), [@rdodev](https://github.com/rdodev)) +- kubeadm: remove the AuditPolicyConfiguration feature gate ([#70807](https://github.com/kubernetes/kubernetes/pull/70807), [@Klaven](https://github.com/Klaven)) +- kubeadm pre-pulls Etcd image only if external Etcd is not used and ([#70743](https://github.com/kubernetes/kubernetes/pull/70743), [@bart0sh](https://github.com/bart0sh)) +- kubeadm: UnifiedControlPlaneImage is replaced by UseHyperKubeImage boolean value. ([#70793](https://github.com/kubernetes/kubernetes/pull/70793), [@rosti](https://github.com/rosti)) +- For kube-up and derived configurations, CoreDNS will honor master taints, for consistency with kube-dns behavior. ([#70868](https://github.com/kubernetes/kubernetes/pull/70868), [@justinsb](https://github.com/justinsb)) +- Recognize newer docker versions without -ce/-ee suffix: 18.09.0 ([#71001](https://github.com/kubernetes/kubernetes/pull/71001), [@thomas-riccardi](https://github.com/thomas-riccardi)) +- Any external provider should be aware the cloud-provider interface should be imported from :- ([#68310](https://github.com/kubernetes/kubernetes/pull/68310), [@cheftako](https://github.com/cheftako)) +- Fixed 'kubeadm upgrade' infinite loop waiting for pod restart ([#69886](https://github.com/kubernetes/kubernetes/pull/69886), [@bart0sh](https://github.com/bart0sh)) +- Bumped addon-manager to v8.8 ([#69337](https://github.com/kubernetes/kubernetes/pull/69337), [@MrHohn](https://github.com/MrHohn)) +- GCE: Filter out spammy audit logs from cluster autoscaler. ([#70696](https://github.com/kubernetes/kubernetes/pull/70696), [@loburm](https://github.com/loburm)) +- GCE: Enable by default audit logging truncating backend. ([#68288](https://github.com/kubernetes/kubernetes/pull/68288), [@loburm](https://github.com/loburm)) +- Bumped cluster-proportional-autoscaler to 1.3.0 ([#69338](https://github.com/kubernetes/kubernetes/pull/69338), [@MrHohn](https://github.com/MrHohn)) +- Updated defaultbackend to v1.5 ([#69334](https://github.com/kubernetes/kubernetes/pull/69334), [@bowei](https://github.com/bowei)) + +### SIG GCP + +- Added tolerations for Stackdriver Logging and Metadata Agents. ([#69737](https://github.com/kubernetes/kubernetes/pull/69737), [@qingling128](https://github.com/qingling128)) +- Enabled insertId generation, and updated Stackdriver Logging Agent image to 0.5-1.5.36-1-k8s. This help reduce log duplication and guarantee log order. ([#68920](https://github.com/kubernetes/kubernetes/pull/68920), [@qingling128](https://github.com/qingling128)) +- Updated crictl to v1.12.0 ([#69033](https://github.com/kubernetes/kubernetes/pull/69033), [@feiskyer](https://github.com/feiskyer)) + +### SIG Network + +- Corrected family type (inet6) for ipsets in ipv6-only clusters ([#68436](https://github.com/kubernetes/kubernetes/pull/68436), [@uablrek](https://github.com/uablrek)) +- kube-proxy argument `hostname-override` can be used to override hostname defined in the configuration file ([#69340](https://github.com/kubernetes/kubernetes/pull/69340), [@stevesloka](https://github.com/stevesloka)) +- CoreDNS correctly implements DNS spec for Services with externalNames that look like IP addresses. Kube-dns does not follow the spec for the same case, resulting in a behavior change when moving from Kube-dns to CoreDNS. See: [coredns/coredns#2324](https://github.com/coredns/coredns/issues/2324) +- IPVS proxier now set net/ipv4/vs/conn_reuse_mode to 0 by default, which will highly improve IPVS proxier performance. ([#71114](https://github.com/kubernetes/kubernetes/pull/71114), [@Lion-Wei](https://github.com/Lion-Wei)) +- CoreDNS is now version 1.2.6 ([#70799](https://github.com/kubernetes/kubernetes/pull/70799), [@rajansandeep](https://github.com/rajansandeep)) +- Addon configuration is introduced in the kubeadm config API, while feature flag CoreDNS is now deprecated. ([#70024](https://github.com/kubernetes/kubernetes/pull/70024), [@fabriziopandini](https://github.com/fabriziopandini)) + +### SIG Node + +- Fixed a bug in previous releases where a pod could be placed inside another pod's cgroup when specifying --cgroup-root ([#70678](https://github.com/kubernetes/kubernetes/pull/70678), [@dashpole](https://github.com/dashpole)) +- Optimized calculating stats when only CPU and Memory stats are returned from Kubelet stats/summary http endpoint. ([#68841](https://github.com/kubernetes/kubernetes/pull/68841), [@krzysztof-jastrzebski](https://github.com/krzysztof-jastrzebski)) +- kubelet now supports `log-file` option to write logs directly to a specific file ([#70917](https://github.com/kubernetes/kubernetes/pull/70917), [@dims](https://github.com/dims)) +- Do not detach volume if mount in progress ([#71145](https://github.com/kubernetes/kubernetes/pull/71145), [@gnufied](https://github.com/gnufied)) +- The runtimeHandler field on the RuntimeClass resource now accepts the empty string. ([#69550](https://github.com/kubernetes/kubernetes/pull/69550), [@tallclair](https://github.com/tallclair)) +- kube-apiserver: fixes `procMount` field incorrectly being marked as required in openapi schema ([#69694](https://github.com/kubernetes/kubernetes/pull/69694), [@jessfraz](https://github.com/jessfraz)) + +### SIG OpenStack + +- Fixed cloud-controller-manager crash when using OpenStack provider and PersistentVolume initializing controller ([#70459](https://github.com/kubernetes/kubernetes/pull/70459), [@mvladev](https://github.com/mvladev)) + +### SIG Release + +- Use debian-base instead of busybox as base image for server images ([#70245](https://github.com/kubernetes/kubernetes/pull/70245), [@ixdy](https://github.com/ixdy)) +- Images for cloud-controller-manager, kube-apiserver, kube-controller-manager, and kube-scheduler now contain a minimal /etc/nsswitch.conf and should respect /etc/hosts for lookups ([#69238](https://github.com/kubernetes/kubernetes/pull/69238), [@BenTheElder](https://github.com/BenTheElder)) + +### SIG Scheduling + +- Added metrics for volume scheduling operations ([#59529](https://github.com/kubernetes/kubernetes/pull/59529), [@wackxu](https://github.com/wackxu)) +- Improved memory use and performance when processing large numbers of pods containing tolerations ([#65350](https://github.com/kubernetes/kubernetes/pull/65350), [@liggitt](https://github.com/liggitt)) +- Fixed a bug in the scheduler that could cause the scheduler to go to an infinite loop when all nodes in a zone are removed. ([#69758](https://github.com/kubernetes/kubernetes/pull/69758), [@bsalamat](https://github.com/bsalamat)) +- Clear pod binding cache on bind error to make sure stale pod binding cache will not be used. ([#71212](https://github.com/kubernetes/kubernetes/pull/71212), [@cofyc](https://github.com/cofyc)) +- Fixed a scheduler panic due to internal cache inconsistency ([#71063](https://github.com/kubernetes/kubernetes/pull/71063), [@Huang-Wei](https://github.com/Huang-Wei)) +- Report kube-scheduler unhealthy if leader election is deadlocked. ([#71085](https://github.com/kubernetes/kubernetes/pull/71085), [@bsalamat](https://github.com/bsalamat)) +- Fixed a potential bug that scheduler preempts unnecessary pods. ([#70898](https://github.com/kubernetes/kubernetes/pull/70898), [@Huang-Wei](https://github.com/Huang-Wei)) + +### SIG Storage + +- Fixed CSI volume limits not showing up in node's capacity and allocatable ([#70540](https://github.com/kubernetes/kubernetes/pull/70540), [@gnufied](https://github.com/gnufied)) +- CSI drivers now have access to mountOptions defined on the storage class when attaching volumes. ([#67898](https://github.com/kubernetes/kubernetes/pull/67898), [@bswartz](https://github.com/bswartz)) +- change default azure file mount permission to 0777 ([#69854](https://github.com/kubernetes/kubernetes/pull/69854), [@andyzhangx](https://github.com/andyzhangx)) +- Fixed subpath in containerized kubelet. ([#69565](https://github.com/kubernetes/kubernetes/pull/69565), [@jsafrane](https://github.com/jsafrane)) +- Fixed panic on iSCSI volume tear down. ([#69140](https://github.com/kubernetes/kubernetes/pull/69140), [@jsafrane](https://github.com/jsafrane)) +- CSIPersistentVolume feature, i.e. PersistentVolumes with CSIPersistentVolumeSource, is GA. ([#69929](https://github.com/kubernetes/kubernetes/pull/69929), [@jsafrane](https://github.com/jsafrane)) +- Fixed CSIDriver API object to allow missing fields. ([#69331](https://github.com/kubernetes/kubernetes/pull/69331), [@jsafrane](https://github.com/jsafrane)) +- Flex volume plugins now support expandvolume (to increase underlying volume capacity) and expanfs (resize filesystem) commands that Flex plugin authors can implement to support expanding in use Flex PersistentVolumes ([#67851](https://github.com/kubernetes/kubernetes/pull/67851), [@aniket-s-kulkarni](https://github.com/aniket-s-kulkarni)) +- Enabled AttachVolumeLimit feature ([#69225](https://github.com/kubernetes/kubernetes/pull/69225), [@gnufied](https://github.com/gnufied)) +- The default storage class annotation for the storage addons has been changed to use the GA variant ([#68345](https://github.com/kubernetes/kubernetes/pull/68345), [@smelchior](https://github.com/smelchior)) +- GlusterFS PersistentVolumes sources can now reference endpoints in any namespace using the `spec.glusterfs.endpointsNamespace` field. Ensure all kubelets are upgraded to 1.13+ before using this capability. ([#60195](https://github.com/kubernetes/kubernetes/pull/60195), [@humblec](https://github.com/humblec)) +- Fixed GetVolumeLimits log flushing issue ([#69558](https://github.com/kubernetes/kubernetes/pull/69558), [@andyzhangx](https://github.com/andyzhangx)) +- The `MountPropagation` feature is unconditionally enabled in v1.13, and can no longer be disabled. ([#68230](https://github.com/kubernetes/kubernetes/pull/68230), [@bertinatto](https://github.com/bertinatto)) + +### SIG Windows + +- `kubelet --system-reserved` and `--kube-reserved` are supported now on Windows nodes ([#69960](https://github.com/kubernetes/kubernetes/pull/69960), [@feiskyer](https://github.com/feiskyer)) +- Windows runtime endpoints is now switched to `npipe:////./pipe/dockershim` from `tcp://localhost:3735`. ([#69516](https://github.com/kubernetes/kubernetes/pull/69516), [@feiskyer](https://github.com/feiskyer)) +- Fixed service issues with named targetPort for Windows ([#70076](https://github.com/kubernetes/kubernetes/pull/70076), [@feiskyer](https://github.com/feiskyer)) +- Handle Windows named pipes in host mounts. ([#69484](https://github.com/kubernetes/kubernetes/pull/69484), [@ddebroy](https://github.com/ddebroy)) +- Fixed inconsistency in windows kernel proxy when updating HNS policy. ([#68923](https://github.com/kubernetes/kubernetes/pull/68923), [@delulu](https://github.com/delulu)) + +## External Dependencies + +- Default etcd server is unchanged at v3.2.24 since Kubernetes 1.12. ([#68318](https://github.com/kubernetes/kubernetes/pull/68318)) +- The list of validated docker versions remain unchanged at 1.11.1, 1.12.1, 1.13.1, 17.03, 17.06, 17.09, 18.06 since Kubernetes 1.12. ([#68495](https://github.com/kubernetes/kubernetes/pull/68495)) +- The default Go version was updated to 1.11.2. ([#70665](https://github.com/kubernetes/kubernetes/pull/70665)) +- The minimum supported Go version was updated to 1.11.2 ([#69386](https://github.com/kubernetes/kubernetes/pull/69386)) +- CNI is unchanged at v0.6.0 since Kubernetes 1.10 ([#51250](https://github.com/kubernetes/kubernetes/pull/51250)) +- CSI is updated to 1.0.0. Pre-1.0.0 API support is now deprecated. ([#71020](https://github.com/kubernetes/kubernetes/pull/71020)]) +- The dashboard add-on has been updated to v1.10.0. ([#68450](https://github.com/kubernetes/kubernetes/pull/68450)) +- Heapster remains at v1.6.0-beta, but is now retired in Kubernetes 1.13 ([#67074](https://github.com/kubernetes/kubernetes/pull/67074)) +- Cluster Autoscaler has been upgraded to v1.13.0 ([#71513](https://github.com/kubernetes/kubernetes/pull/71513)) +- kube-dns is unchanged at v1.14.13 since Kubernetes 1.12 ([#68900](https://github.com/kubernetes/kubernetes/pull/68900)) +- Influxdb is unchanged at v1.3.3 since Kubernetes 1.10 ([#53319](https://github.com/kubernetes/kubernetes/pull/53319)) +- Grafana is unchanged at v4.4.3 since Kubernetes 1.10 ([#53319](https://github.com/kubernetes/kubernetes/pull/53319)) +- Kibana has been upgraded to v6.3.2. ([#67582](https://github.com/kubernetes/kubernetes/pull/67582)) +- CAdvisor has been updated to v0.32.0 ([#70964](https://github.com/kubernetes/kubernetes/pull/70964)) +- fluentd-gcp-scaler has been updated to v0.5.0 ([#68837](https://github.com/kubernetes/kubernetes/pull/68837)) +- Fluentd in fluentd-elasticsearch is unchanged at v1.2.4 since Kubernetes 1.11 ([#67434](https://github.com/kubernetes/kubernetes/pull/67434)) +- fluentd-elasticsearch has been updated to v2.2.1 ([#68012](https://github.com/kubernetes/kubernetes/pull/68012)) +- The fluent-plugin-kubernetes_metadata_filter plugin in fluentd-elasticsearch is unchanged at 2.0.0 since Kubernetes 1.12 ([#67544](https://github.com/kubernetes/kubernetes/pull/67544)) +- fluentd-gcp has been updated to v3.2.0 ([#70954](https://github.com/kubernetes/kubernetes/pull/70954)) +- OIDC authentication is unchanged at coreos/go-oidc v2 since Kubernetes 1.10 ([#58544](https://github.com/kubernetes/kubernetes/pull/58544)) +- Calico was updated to v3.3.1 ([#70932](https://github.com/kubernetes/kubernetes/pull/70932)) +- Upgraded crictl on GCE to v1.12.0 ([#69033](https://github.com/kubernetes/kubernetes/pull/69033)) +- CoreDNS has been updated to v1.2.6 ([#70799](https://github.com/kubernetes/kubernetes/pull/70799)) +- event-exporter has been updated to v0.2.3 ([#67691](https://github.com/kubernetes/kubernetes/pull/67691)) +- Es-image remains unchanged at Elasticsearch 6.3.2 since Kubernetes 1.12 ([#67484](https://github.com/kubernetes/kubernetes/pull/67484)) +- metrics-server remains unchanged at v0.3.1 since Kubernetes 1.12 ([#68746](https://github.com/kubernetes/kubernetes/pull/68746)) +- GLBC remains unchanged at v1.2.3 since Kubernetes 1.12 ([#66793](https://github.com/kubernetes/kubernetes/pull/66793)) +- Ingress-gce remains unchanged at v1.2.3 since Kubernetes 1.12 ([#66793](https://github.com/kubernetes/kubernetes/pull/66793)) +- ip-masq-agen remains unchanged at v2.1.1 since Kubernetes 1.12 ([#67916](https://github.com/kubernetes/kubernetes/pull/67916)) + # v1.13.0-rc.2 [Documentation](https://docs.k8s.io) @@ -164,9 +804,8 @@ filename | sha512 hash ### Other notable changes +* CVE-2018-1002105: Fix critical security issue in kube-apiserver upgrade request proxy handler ([#71411](https://github.com/kubernetes/kubernetes/issues/71411), [@liggitt](https://github.com/liggitt)) * Update Cluster Autoscaler version to 1.13.0-rc.2. Release notes: https://github.com/kubernetes/autoscaler/releases/tag/cluster-autoscaler-1.13.0-rc.2 ([#71452](https://github.com/kubernetes/kubernetes/pull/71452), [@losipiuk](https://github.com/losipiuk)) -* Fixes an issue with stuck connections handling error responses ([#71419](https://github.com/kubernetes/kubernetes/pull/71419), [@liggitt](https://github.com/liggitt)) -* Fixes an issue with stuck connections handling error responses ([#71412](https://github.com/kubernetes/kubernetes/pull/71412), [@liggitt](https://github.com/liggitt)) * Upgrade Stackdriver Logging Agent addon image to 0.6-1.6.0-1 to use Fluentd v1.2. This provides nanoseconds timestamp granularity for logs. ([#70954](https://github.com/kubernetes/kubernetes/pull/70954), [@qingling128](https://github.com/qingling128)) * fixes a runtime error occuring when sorting the output of `kubectl get` with empty results ([#70740](https://github.com/kubernetes/kubernetes/pull/70740), [@mfpierre](https://github.com/mfpierre)) * fix azure disk attach/detach failed forever issue ([#71377](https://github.com/kubernetes/kubernetes/pull/71377), [@andyzhangx](https://github.com/andyzhangx)) diff --git a/vendor/k8s.io/kubernetes/Godeps/Godeps.json b/vendor/k8s.io/kubernetes/Godeps/Godeps.json index e4049eea2..bca1c33a1 100644 --- a/vendor/k8s.io/kubernetes/Godeps/Godeps.json +++ b/vendor/k8s.io/kubernetes/Godeps/Godeps.json @@ -11,6 +11,7 @@ "github.com/bazelbuild/bazel-gazelle/cmd/gazelle", "github.com/kubernetes/repo-infra/kazel", "k8s.io/kube-openapi/cmd/openapi-gen", + "golang.org/x/lint/golint", "./..." ], "Deps": [ @@ -1601,12 +1602,12 @@ }, { "ImportPath": "github.com/go-openapi/jsonpointer", - "Comment": "v0.17.2", + "Comment": "v0.18.0", "Rev": "ef5f0afec364d3b9396b7b77b43dbe26bf1f8004" }, { "ImportPath": "github.com/go-openapi/jsonreference", - "Comment": "v0.17.2", + "Comment": "v0.18.0", "Rev": "8483a886a90412cd6858df4ea3483dce9c8e35a3" }, { @@ -1636,7 +1637,7 @@ }, { "ImportPath": "github.com/go-openapi/validate", - "Comment": "v0.17.2", + "Comment": "v0.18.0", "Rev": "d2eab7d93009e9215fc85b2faa2c2f2a98c2af48" }, { @@ -3422,6 +3423,14 @@ "ImportPath": "golang.org/x/crypto/ssh/terminal", "Rev": "de0752318171da717af4ce24d0a2e8626afaeb11" }, + { + "ImportPath": "golang.org/x/lint", + "Rev": "8f45f776aaf18cebc8d65861cc70c33c60471952" + }, + { + "ImportPath": "golang.org/x/lint/golint", + "Rev": "8f45f776aaf18cebc8d65861cc70c33c60471952" + }, { "ImportPath": "golang.org/x/net/context", "Rev": "0ed95abb35c445290478a5348a7b38bb154135fd" @@ -3586,6 +3595,14 @@ "ImportPath": "golang.org/x/tools/go/ast/astutil", "Rev": "2382e3994d48b1d22acc2c86bcad0a2aff028e32" }, + { + "ImportPath": "golang.org/x/tools/go/gcexportdata", + "Rev": "2382e3994d48b1d22acc2c86bcad0a2aff028e32" + }, + { + "ImportPath": "golang.org/x/tools/go/gcimporter15", + "Rev": "2382e3994d48b1d22acc2c86bcad0a2aff028e32" + }, { "ImportPath": "golang.org/x/tools/go/vcs", "Rev": "2382e3994d48b1d22acc2c86bcad0a2aff028e32" diff --git a/vendor/k8s.io/kubernetes/Godeps/LICENSES b/vendor/k8s.io/kubernetes/Godeps/LICENSES index 81c910773..ce4c2e74d 100644 --- a/vendor/k8s.io/kubernetes/Godeps/LICENSES +++ b/vendor/k8s.io/kubernetes/Godeps/LICENSES @@ -98293,6 +98293,76 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================================================ +================================================================================ += vendor/golang.org/x/lint licensed under: = + +Copyright (c) 2013 The Go Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + += vendor/golang.org/x/lint/LICENSE 4c728948788b1a02f33ae4e906546eef +================================================================================ + + +================================================================================ += vendor/golang.org/x/lint/golint licensed under: = + +Copyright (c) 2013 The Go Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + += vendor/golang.org/x/lint/LICENSE 4c728948788b1a02f33ae4e906546eef +================================================================================ + + ================================================================================ = vendor/golang.org/x/net/context licensed under: = @@ -99728,6 +99798,76 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================================================ +================================================================================ += vendor/golang.org/x/tools/go/gcexportdata licensed under: = + +Copyright (c) 2009 The Go Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + += vendor/golang.org/x/tools/LICENSE 5d4950ecb7b26d2c5e4e7b4e0dd74707 +================================================================================ + + +================================================================================ += vendor/golang.org/x/tools/go/gcimporter15 licensed under: = + +Copyright (c) 2009 The Go Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + += vendor/golang.org/x/tools/LICENSE 5d4950ecb7b26d2c5e4e7b4e0dd74707 +================================================================================ + + ================================================================================ = vendor/golang.org/x/tools/go/vcs licensed under: = diff --git a/vendor/k8s.io/kubernetes/api/openapi-spec/swagger.json b/vendor/k8s.io/kubernetes/api/openapi-spec/swagger.json index d01d25a70..23e1a7db9 100644 --- a/vendor/k8s.io/kubernetes/api/openapi-spec/swagger.json +++ b/vendor/k8s.io/kubernetes/api/openapi-spec/swagger.json @@ -2,7 +2,7 @@ "swagger": "2.0", "info": { "title": "Kubernetes", - "version": "v1.13.0" + "version": "v1.13.2" }, "paths": { "/api/": { diff --git a/vendor/k8s.io/kubernetes/build/build-image/cross/Dockerfile b/vendor/k8s.io/kubernetes/build/build-image/cross/Dockerfile index 8e4bc0f88..2c1dcf206 100644 --- a/vendor/k8s.io/kubernetes/build/build-image/cross/Dockerfile +++ b/vendor/k8s.io/kubernetes/build/build-image/cross/Dockerfile @@ -15,7 +15,7 @@ # This file creates a standard build environment for building cross # platform go binary for the architecture kubernetes cares about. -FROM golang:1.11.2 +FROM golang:1.11.4 ENV GOARM 7 ENV KUBE_DYNAMIC_CROSSPLATFORMS \ @@ -44,7 +44,7 @@ RUN apt-get update \ # Use dynamic cgo linking for architectures other than amd64 for the server platforms # To install crossbuild essential for other architectures add the following repository. RUN echo "deb http://archive.ubuntu.com/ubuntu xenial main universe" > /etc/apt/sources.list.d/cgocrosscompiling.list \ - && apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5 3B4FE6ACC0B21F32 \ + && apt-key adv --no-tty --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5 3B4FE6ACC0B21F32 \ && apt-get update \ && apt-get install -y build-essential \ && for platform in ${KUBE_DYNAMIC_CROSSPLATFORMS}; do apt-get install -y crossbuild-essential-${platform}; done \ diff --git a/vendor/k8s.io/kubernetes/build/build-image/cross/VERSION b/vendor/k8s.io/kubernetes/build/build-image/cross/VERSION index 19abf8ebb..2f1c98bfe 100644 --- a/vendor/k8s.io/kubernetes/build/build-image/cross/VERSION +++ b/vendor/k8s.io/kubernetes/build/build-image/cross/VERSION @@ -1 +1 @@ -v1.11.2-1 +v1.11.4-1 diff --git a/vendor/k8s.io/kubernetes/build/root/WORKSPACE b/vendor/k8s.io/kubernetes/build/root/WORKSPACE index cee896220..c7147dfcb 100644 --- a/vendor/k8s.io/kubernetes/build/root/WORKSPACE +++ b/vendor/k8s.io/kubernetes/build/root/WORKSPACE @@ -4,8 +4,8 @@ load("//build:workspace.bzl", "CRI_TOOLS_VERSION") http_archive( name = "io_bazel_rules_go", - sha256 = "f87fa87475ea107b3c69196f39c82b7bbf58fe27c62a338684c20ca17d1d8613", - urls = mirror("https://github.com/bazelbuild/rules_go/releases/download/0.16.2/rules_go-0.16.2.tar.gz"), + sha256 = "7be7dc01f1e0afdba6c8eb2b43d2fa01c743be1b9273ab1eaf6c233df078d705", + urls = mirror("https://github.com/bazelbuild/rules_go/releases/download/0.16.5/rules_go-0.16.5.tar.gz"), ) http_archive( @@ -49,7 +49,7 @@ load("@io_bazel_rules_docker//docker:docker.bzl", "docker_pull", "docker_reposit go_rules_dependencies() go_register_toolchains( - go_version = "1.11.2", + go_version = "1.11.4", ) docker_repositories() diff --git a/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/bgpconfigurations-crd.yaml b/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/bgpconfigurations-crd.yaml new file mode 100644 index 000000000..9916794c4 --- /dev/null +++ b/vendor/k8s.io/kubernetes/cluster/addons/calico-policy-controller/bgpconfigurations-crd.yaml @@ -0,0 +1,15 @@ +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: bgpconfigurations.crd.projectcalico.org + labels: + kubernetes.io/cluster-service: "true" + addonmanager.kubernetes.io/mode: Reconcile +spec: + scope: Cluster + group: crd.projectcalico.org + version: v1 + names: + kind: BGPConfiguration + plural: bgpconfigurations + singular: bgpconfiguration diff --git a/vendor/k8s.io/kubernetes/cluster/addons/dashboard/dashboard-controller.yaml b/vendor/k8s.io/kubernetes/cluster/addons/dashboard/dashboard-controller.yaml index 0c802a07b..1d9d3aa39 100644 --- a/vendor/k8s.io/kubernetes/cluster/addons/dashboard/dashboard-controller.yaml +++ b/vendor/k8s.io/kubernetes/cluster/addons/dashboard/dashboard-controller.yaml @@ -31,7 +31,7 @@ spec: priorityClassName: system-cluster-critical containers: - name: kubernetes-dashboard - image: k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.0 + image: k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1 resources: limits: cpu: 100m diff --git a/vendor/k8s.io/kubernetes/cluster/gce/gci/configure-helper.sh b/vendor/k8s.io/kubernetes/cluster/gce/gci/configure-helper.sh index 8427fc35e..d6550212e 100644 --- a/vendor/k8s.io/kubernetes/cluster/gce/gci/configure-helper.sh +++ b/vendor/k8s.io/kubernetes/cluster/gce/gci/configure-helper.sh @@ -1089,6 +1089,11 @@ EOF } function create-node-problem-detector-kubeconfig { + local apiserver_address="${1}" + if [[ -z "${apiserver_address}" ]]; then + echo "Must provide API server address to create node-problem-detector kubeconfig file!" + exit 1 + fi echo "Creating node-problem-detector kubeconfig file" mkdir -p /var/lib/node-problem-detector cat </var/lib/node-problem-detector/kubeconfig @@ -1101,6 +1106,7 @@ users: clusters: - name: local cluster: + server: https://${apiserver_address} certificate-authority-data: ${CA_CERT} contexts: - context: @@ -1230,7 +1236,7 @@ function start-node-problem-detector { local -r km_config="${KUBE_HOME}/node-problem-detector/config/kernel-monitor.json" # TODO(random-liu): Handle this for alternative container runtime. local -r dm_config="${KUBE_HOME}/node-problem-detector/config/docker-monitor.json" - local -r custom_km_config="${KUBE_HOME}/node-problem-detector/config/kernel-monitor-counter.json" + local -r custom_km_config="${KUBE_HOME}/node-problem-detector/config/kernel-monitor-counter.json,${KUBE_HOME}/node-problem-detector/config/systemd-monitor-counter.json,${KUBE_HOME}/node-problem-detector/config/docker-monitor-counter.json" echo "Using node problem detector binary at ${npd_bin}" local flags="${NPD_TEST_LOG_LEVEL:-"--v=2"} ${NPD_TEST_ARGS:-}" flags+=" --logtostderr" @@ -2622,7 +2628,7 @@ function setup-node-termination-handler-manifest { local -r nth_manifest="/etc/kubernetes/$1/$2/daemonset.yaml" if [[ -n "${NODE_TERMINATION_HANDLER_IMAGE}" ]]; then sed -i "s|image:.*|image: ${NODE_TERMINATION_HANDLER_IMAGE}|" "${nth_manifest}" - fi + fi } # Setups manifests for ingress controller and gce-specific policies for service controller. @@ -2826,7 +2832,7 @@ function main() { create-kubeproxy-user-kubeconfig fi if [[ "${ENABLE_NODE_PROBLEM_DETECTOR:-}" == "standalone" ]]; then - create-node-problem-detector-kubeconfig + create-node-problem-detector-kubeconfig ${KUBERNETES_MASTER_NAME} fi fi diff --git a/vendor/k8s.io/kubernetes/cluster/gce/gci/configure.sh b/vendor/k8s.io/kubernetes/cluster/gce/gci/configure.sh index 80bb0608f..3050e9d57 100644 --- a/vendor/k8s.io/kubernetes/cluster/gce/gci/configure.sh +++ b/vendor/k8s.io/kubernetes/cluster/gce/gci/configure.sh @@ -26,8 +26,8 @@ set -o pipefail ### Hardcoded constants DEFAULT_CNI_VERSION="v0.6.0" DEFAULT_CNI_SHA1="d595d3ded6499a64e8dac02466e2f5f2ce257c9f" -DEFAULT_NPD_VERSION="v0.5.0" -DEFAULT_NPD_SHA1="650ecfb2ae495175ee43706d0bd862a1ea7f1395" +DEFAULT_NPD_VERSION="v0.6.0" +DEFAULT_NPD_SHA1="a28e960a21bb74bc0ae09c267b6a340f30e5b3a6" DEFAULT_CRICTL_VERSION="v1.12.0" DEFAULT_CRICTL_SHA1="82ef8b44849f9da0589c87e9865d4716573eec7f" DEFAULT_MOUNTER_TAR_SHA="8003b798cf33c7f91320cd6ee5cec4fa22244571" diff --git a/vendor/k8s.io/kubernetes/cluster/gce/manifests/cluster-autoscaler.manifest b/vendor/k8s.io/kubernetes/cluster/gce/manifests/cluster-autoscaler.manifest index 049f52020..8ae8a5a71 100644 --- a/vendor/k8s.io/kubernetes/cluster/gce/manifests/cluster-autoscaler.manifest +++ b/vendor/k8s.io/kubernetes/cluster/gce/manifests/cluster-autoscaler.manifest @@ -17,7 +17,7 @@ "containers": [ { "name": "cluster-autoscaler", - "image": "k8s.gcr.io/cluster-autoscaler:v1.13.0", + "image": "k8s.gcr.io/cluster-autoscaler:v1.13.1", "livenessProbe": { "httpGet": { "path": "/health-check", diff --git a/vendor/k8s.io/kubernetes/cmd/kube-scheduler/app/options/options.go b/vendor/k8s.io/kubernetes/cmd/kube-scheduler/app/options/options.go index 15c79acd7..c4162d40d 100644 --- a/vendor/k8s.io/kubernetes/cmd/kube-scheduler/app/options/options.go +++ b/vendor/k8s.io/kubernetes/cmd/kube-scheduler/app/options/options.go @@ -104,6 +104,7 @@ func NewOptions() (*Options, error) { }, } + o.Authentication.TolerateInClusterLookupFailure = true o.Authentication.RemoteKubeConfigFileOptional = true o.Authorization.RemoteKubeConfigFileOptional = true o.Authorization.AlwaysAllowPaths = []string{"/healthz"} diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/join.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/join.go index 6ae7eabf9..b80fe5088 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/join.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/join.go @@ -316,7 +316,7 @@ func NewJoin(cfgPath string, defaultcfg *kubeadmapiv1beta1.JoinConfiguration, ig internalCfg.NodeRegistration.CRISocket = defaultcfg.NodeRegistration.CRISocket } - if defaultcfg.ControlPlane != nil { + if internalCfg.ControlPlane != nil { if err := configutil.VerifyAPIServerBindAddress(internalCfg.ControlPlane.LocalAPIEndpoint.AdvertiseAddress); err != nil { return nil, err } @@ -586,10 +586,12 @@ func (j *Join) PostInstallControlPlane(initConfiguration *kubeadmapi.InitConfigu func waitForTLSBootstrappedClient() error { fmt.Println("[tlsbootstrap] Waiting for the kubelet to perform the TLS Bootstrap...") - kubeletKubeConfig := filepath.Join(kubeadmconstants.KubernetesDir, kubeadmconstants.KubeletKubeConfigFileName) // Loop on every falsy return. Return with an error if raised. Exit successfully if true is returned. return wait.PollImmediate(kubeadmconstants.APICallRetryInterval, kubeadmconstants.TLSBootstrapTimeout, func() (bool, error) { - _, err := os.Stat(kubeletKubeConfig) + // Check that we can create a client set out of the kubelet kubeconfig. This ensures not + // only that the kubeconfig file exists, but that other files required by it also exist (like + // client certificate and key) + _, err := kubeconfigutil.ClientSetFromFile(kubeadmconstants.GetKubeletKubeConfigPath()) return (err == nil), nil }) } diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/bootstraptoken.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/bootstraptoken.go index b6492960f..4bbbb96bd 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/bootstraptoken.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/bootstraptoken.go @@ -18,7 +18,6 @@ package phases import ( "fmt" - "path/filepath" "github.com/pkg/errors" @@ -26,7 +25,6 @@ import ( kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" "k8s.io/kubernetes/cmd/kubeadm/app/cmd/options" "k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow" - kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" clusterinfophase "k8s.io/kubernetes/cmd/kubeadm/app/phases/bootstraptoken/clusterinfo" nodebootstraptokenphase "k8s.io/kubernetes/cmd/kubeadm/app/phases/bootstraptoken/node" "k8s.io/kubernetes/pkg/util/normalizer" @@ -51,7 +49,7 @@ var ( type bootstrapTokenData interface { Cfg() *kubeadmapi.InitConfiguration Client() (clientset.Interface, error) - KubeConfigDir() string + KubeConfigPath() string SkipTokenPrint() bool Tokens() []string } @@ -66,7 +64,7 @@ func NewBootstrapTokenPhase() workflow.Phase { Long: bootstrapTokenLongDesc, InheritFlags: []string{ options.CfgPath, - options.KubeconfigDir, + options.KubeconfigPath, options.SkipTokenPrint, }, Run: runBoostrapToken, @@ -113,8 +111,7 @@ func runBoostrapToken(c workflow.RunData) error { } // Create the cluster-info ConfigMap with the associated RBAC rules - adminKubeConfigPath := filepath.Join(data.KubeConfigDir(), kubeadmconstants.AdminKubeConfigFileName) - if err := clusterinfophase.CreateBootstrapConfigMapIfNotExists(client, adminKubeConfigPath); err != nil { + if err := clusterinfophase.CreateBootstrapConfigMapIfNotExists(client, data.KubeConfigPath()); err != nil { return errors.Wrap(err, "error creating bootstrap ConfigMap") } if err := clusterinfophase.CreateClusterInfoRBACRules(client); err != nil { diff --git a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/etcd/etcd.go b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/etcd/etcd.go index 5fccce82a..8b2e38e73 100644 --- a/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/etcd/etcd.go +++ b/vendor/k8s.io/kubernetes/cmd/kubeadm/app/util/etcd/etcd.go @@ -196,12 +196,13 @@ func NewFromCluster(client clientset.Interface, certificatesDir string) (*Client if err != nil { return nil, errors.Wrap(err, "error syncing endpoints with etc") } + klog.V(1).Infof("update etcd endpoints: %s", strings.Join(etcdClient.Endpoints, ",")) return etcdClient, nil } // Sync synchronizes client's endpoints with the known endpoints from the etcd membership. -func (c Client) Sync() error { +func (c *Client) Sync() error { cli, err := clientv3.New(clientv3.Config{ Endpoints: c.Endpoints, DialTimeout: 20 * time.Second, diff --git a/vendor/k8s.io/kubernetes/hack/godep-save.sh b/vendor/k8s.io/kubernetes/hack/godep-save.sh index 4b30e5d0b..e278072d0 100755 --- a/vendor/k8s.io/kubernetes/hack/godep-save.sh +++ b/vendor/k8s.io/kubernetes/hack/godep-save.sh @@ -63,6 +63,7 @@ REQUIRED_BINS=( "github.com/bazelbuild/bazel-gazelle/cmd/gazelle" "github.com/kubernetes/repo-infra/kazel" "k8s.io/kube-openapi/cmd/openapi-gen" + "golang.org/x/lint/golint" "./..." ) diff --git a/vendor/k8s.io/kubernetes/hack/jenkins/benchmark-dockerized.sh b/vendor/k8s.io/kubernetes/hack/jenkins/benchmark-dockerized.sh index 4171cf651..1b86e6521 100755 --- a/vendor/k8s.io/kubernetes/hack/jenkins/benchmark-dockerized.sh +++ b/vendor/k8s.io/kubernetes/hack/jenkins/benchmark-dockerized.sh @@ -39,9 +39,9 @@ retry go get github.com/cespare/prettybench export KUBE_RACE=" " # Disable coverage report export KUBE_COVER="n" -export ARTIFACTS_DIR=${WORKSPACE}/_artifacts +export ARTIFACTS=${ARTIFACTS:-"${WORKSPACE}/artifacts"} -mkdir -p "${ARTIFACTS_DIR}" +mkdir -p "${ARTIFACTS}" cd /go/src/k8s.io/kubernetes ./hack/install-etcd.sh @@ -49,5 +49,5 @@ cd /go/src/k8s.io/kubernetes # Run the benchmark tests and pretty-print the results into a separate file. make test-integration WHAT="$*" KUBE_TEST_ARGS="-run='XXX' -bench=. -benchmem" \ | tee \ - >(prettybench -no-passthrough > ${ARTIFACTS_DIR}/BenchmarkResults.txt) \ - >(go run test/integration/benchmark/jsonify/main.go ${ARTIFACTS_DIR}/BenchmarkResults_benchmark_$(date -u +%Y-%m-%dT%H:%M:%SZ).json || cat > /dev/null) + >(prettybench -no-passthrough > ${ARTIFACTS}/BenchmarkResults.txt) \ + >(go run test/integration/benchmark/jsonify/main.go ${ARTIFACTS}/BenchmarkResults_benchmark_$(date -u +%Y-%m-%dT%H:%M:%SZ).json || cat > /dev/null) diff --git a/vendor/k8s.io/kubernetes/hack/jenkins/gotest.sh b/vendor/k8s.io/kubernetes/hack/jenkins/gotest.sh index cc298ccaa..7b6778290 100755 --- a/vendor/k8s.io/kubernetes/hack/jenkins/gotest.sh +++ b/vendor/k8s.io/kubernetes/hack/jenkins/gotest.sh @@ -36,8 +36,10 @@ go get -u github.com/jstemmer/go-junit-report # Enable the Go race detector. export KUBE_RACE=-race -# Produce a JUnit-style XML test report for Jenkins. -export KUBE_JUNIT_REPORT_DIR=${WORKSPACE}/_artifacts +# Set artifacts directory +export ARTIFACTS=${ARTIFACTS:-"${WORKSPACE}/artifacts"} +# Produce a JUnit-style XML test report +export KUBE_JUNIT_REPORT_DIR="${ARTIFACTS}" # Save the verbose stdout as well. export KUBE_KEEP_VERBOSE_TEST_OUTPUT=y diff --git a/vendor/k8s.io/kubernetes/hack/jenkins/test-dockerized.sh b/vendor/k8s.io/kubernetes/hack/jenkins/test-dockerized.sh index 48f8306ce..df29a6f69 100755 --- a/vendor/k8s.io/kubernetes/hack/jenkins/test-dockerized.sh +++ b/vendor/k8s.io/kubernetes/hack/jenkins/test-dockerized.sh @@ -39,15 +39,16 @@ retry go get github.com/jstemmer/go-junit-report export KUBE_RACE=-race # Disable coverage report export KUBE_COVER="n" -# Produce a JUnit-style XML test report for Jenkins. -export KUBE_JUNIT_REPORT_DIR=${WORKSPACE}/artifacts -export ARTIFACTS_DIR=${WORKSPACE}/artifacts +# Set artifacts directory +export ARTIFACTS=${ARTIFACTS:-"${WORKSPACE}/artifacts"} +# Produce a JUnit-style XML test report +export KUBE_JUNIT_REPORT_DIR="${ARTIFACTS}" # Save the verbose stdout as well. export KUBE_KEEP_VERBOSE_TEST_OUTPUT=y export KUBE_INTEGRATION_TEST_MAX_CONCURRENCY=4 export LOG_LEVEL=4 -cd /go/src/k8s.io/kubernetes +cd "${GOPATH}/src/k8s.io/kubernetes" make generated_files go install ./cmd/... diff --git a/vendor/k8s.io/kubernetes/hack/jenkins/verify-dockerized.sh b/vendor/k8s.io/kubernetes/hack/jenkins/verify-dockerized.sh index a15c811aa..4182d85aa 100755 --- a/vendor/k8s.io/kubernetes/hack/jenkins/verify-dockerized.sh +++ b/vendor/k8s.io/kubernetes/hack/jenkins/verify-dockerized.sh @@ -31,13 +31,13 @@ retry() { export PATH=${GOPATH}/bin:${PWD}/third_party/etcd:/usr/local/go/bin:${PATH} -# Produce a JUnit-style XML test report -export KUBE_JUNIT_REPORT_DIR=${WORKSPACE}/artifacts # Set artifacts directory -export ARTIFACTS_DIR=${WORKSPACE}/artifacts +export ARTIFACTS=${ARTIFACTS:-"${WORKSPACE}/artifacts"} +# Produce a JUnit-style XML test report +export KUBE_JUNIT_REPORT_DIR="${ARTIFACTS}" export LOG_LEVEL=4 -cd /go/src/k8s.io/kubernetes +cd "${GOPATH}/src/k8s.io/kubernetes" make verify diff --git a/vendor/k8s.io/kubernetes/hack/lib/etcd.sh b/vendor/k8s.io/kubernetes/hack/lib/etcd.sh index 33d8e07a9..30545cc30 100755 --- a/vendor/k8s.io/kubernetes/hack/lib/etcd.sh +++ b/vendor/k8s.io/kubernetes/hack/lib/etcd.sh @@ -70,8 +70,8 @@ kube::etcd::start() { # Start etcd ETCD_DIR=${ETCD_DIR:-$(mktemp -d 2>/dev/null || mktemp -d -t test-etcd.XXXXXX)} - if [[ -d "${ARTIFACTS_DIR:-}" ]]; then - ETCD_LOGFILE="${ARTIFACTS_DIR}/etcd.$(uname -n).$(id -un).log.DEBUG.$(date +%Y%m%d-%H%M%S).$$" + if [[ -d "${ARTIFACTS:-}" ]]; then + ETCD_LOGFILE="${ARTIFACTS}/etcd.$(uname -n).$(id -un).log.DEBUG.$(date +%Y%m%d-%H%M%S).$$" else ETCD_LOGFILE=${ETCD_LOGFILE:-"/dev/null"} fi diff --git a/vendor/k8s.io/kubernetes/hack/make-rules/test.sh b/vendor/k8s.io/kubernetes/hack/make-rules/test.sh index 3a64cdb40..5aa1ad45a 100755 --- a/vendor/k8s.io/kubernetes/hack/make-rules/test.sh +++ b/vendor/k8s.io/kubernetes/hack/make-rules/test.sh @@ -120,6 +120,10 @@ KUBE_TEST_API_VERSIONS="${KUBE_TEST_API_VERSIONS:-${ALL_VERSIONS_CSV}}" # once we have multiple group supports # Create a junit-style XML test report in this directory if set. KUBE_JUNIT_REPORT_DIR=${KUBE_JUNIT_REPORT_DIR:-} +# If KUBE_JUNIT_REPORT_DIR is unset, and ARTIFACTS is set, then have them match. +if [[ -z "${KUBE_JUNIT_REPORT_DIR:-}" && -n "${ARTIFACTS:-}" ]]; then + export KUBE_JUNIT_REPORT_DIR="${ARTIFACTS}" +fi # Set to 'y' to keep the verbose stdout from tests when KUBE_JUNIT_REPORT_DIR is # set. KUBE_KEEP_VERBOSE_TEST_OUTPUT=${KUBE_KEEP_VERBOSE_TEST_OUTPUT:-n} diff --git a/vendor/k8s.io/kubernetes/hack/make-rules/verify.sh b/vendor/k8s.io/kubernetes/hack/make-rules/verify.sh index 93df92c47..90848dfe8 100755 --- a/vendor/k8s.io/kubernetes/hack/make-rules/verify.sh +++ b/vendor/k8s.io/kubernetes/hack/make-rules/verify.sh @@ -21,6 +21,11 @@ set -o pipefail KUBE_ROOT=$(dirname "${BASH_SOURCE}")/../.. source "${KUBE_ROOT}/hack/lib/util.sh" +# If KUBE_JUNIT_REPORT_DIR is unset, and ARTIFACTS is set, then have them match. +if [[ -z "${KUBE_JUNIT_REPORT_DIR:-}" && -n "${ARTIFACTS:-}" ]]; then + export KUBE_JUNIT_REPORT_DIR="${ARTIFACTS}" +fi + # include shell2junit library source "${KUBE_ROOT}/third_party/forked/shell2junit/sh2ju.sh" diff --git a/vendor/k8s.io/kubernetes/hack/testdata/diff/configmap.yaml b/vendor/k8s.io/kubernetes/hack/testdata/diff/configmap.yaml new file mode 100644 index 000000000..be550449e --- /dev/null +++ b/vendor/k8s.io/kubernetes/hack/testdata/diff/configmap.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: test diff --git a/vendor/k8s.io/kubernetes/hack/testdata/diff/deployment.yaml b/vendor/k8s.io/kubernetes/hack/testdata/diff/deployment.yaml new file mode 100644 index 000000000..0661df1be --- /dev/null +++ b/vendor/k8s.io/kubernetes/hack/testdata/diff/deployment.yaml @@ -0,0 +1,17 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: test +spec: + replicas: 3 + selector: + matchLabels: + name: test + template: + metadata: + labels: + name: test + spec: + containers: + - name: nginx + image: nginx diff --git a/vendor/k8s.io/kubernetes/hack/testdata/diff/pod.yaml b/vendor/k8s.io/kubernetes/hack/testdata/diff/pod.yaml new file mode 100644 index 000000000..510ff2329 --- /dev/null +++ b/vendor/k8s.io/kubernetes/hack/testdata/diff/pod.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: Pod +metadata: + name: test +spec: + containers: + - name: nginx + image: nginx diff --git a/vendor/k8s.io/kubernetes/hack/testdata/diff/secret.yaml b/vendor/k8s.io/kubernetes/hack/testdata/diff/secret.yaml new file mode 100644 index 000000000..1c7de1855 --- /dev/null +++ b/vendor/k8s.io/kubernetes/hack/testdata/diff/secret.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Secret +metadata: + name: test diff --git a/vendor/k8s.io/kubernetes/hack/verify-godeps.sh b/vendor/k8s.io/kubernetes/hack/verify-godeps.sh index 2de2e6022..8fda624ca 100755 --- a/vendor/k8s.io/kubernetes/hack/verify-godeps.sh +++ b/vendor/k8s.io/kubernetes/hack/verify-godeps.sh @@ -94,9 +94,9 @@ pushd "${KUBE_ROOT}" > /dev/null 2>&1 echo "(The above output can be saved as godepdiff.patch if you're not running this locally)" >&2 echo "(The patch file should also be exported as a build artifact if run through CI)" >&2 KEEP_TMP=true - if [[ -f godepdiff.patch && -d "${ARTIFACTS_DIR:-}" ]]; then + if [[ -f godepdiff.patch && -d "${ARTIFACTS:-}" ]]; then echo "Copying patch to artifacts.." - cp godepdiff.patch "${ARTIFACTS_DIR:-}/" + cp godepdiff.patch "${ARTIFACTS:-}/" fi ret=1 fi @@ -111,9 +111,9 @@ pushd "${KUBE_ROOT}" > /dev/null 2>&1 echo "(The above output can be saved as godepdiff.patch if you're not running this locally)" >&2 echo "(The patch file should also be exported as a build artifact if run through CI)" >&2 KEEP_TMP=true - if [[ -f vendordiff.patch && -d "${ARTIFACTS_DIR:-}" ]]; then + if [[ -f vendordiff.patch && -d "${ARTIFACTS:-}" ]]; then echo "Copying patch to artifacts.." - cp vendordiff.patch "${ARTIFACTS_DIR:-}/" + cp vendordiff.patch "${ARTIFACTS:-}/" fi ret=1 fi diff --git a/vendor/k8s.io/kubernetes/hack/verify-golint.sh b/vendor/k8s.io/kubernetes/hack/verify-golint.sh index 3e0c579f4..d8c981f85 100755 --- a/vendor/k8s.io/kubernetes/hack/verify-golint.sh +++ b/vendor/k8s.io/kubernetes/hack/verify-golint.sh @@ -23,11 +23,15 @@ source "${KUBE_ROOT}/hack/lib/init.sh" kube::golang::verify_go_version -if ! which golint > /dev/null; then - echo 'Can not find golint, install with:' - echo 'go get -u golang.org/x/lint/golint' - exit 1 -fi + +# Ensure that we find the binaries we build before anything else. +export GOBIN="${KUBE_OUTPUT_BINPATH}" +PATH="${GOBIN}:${PATH}" + +# Install golint from vendor +echo 'installing golint from vendor' +go install k8s.io/kubernetes/vendor/golang.org/x/lint/golint + cd "${KUBE_ROOT}" diff --git a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v2beta1/BUILD b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v2beta1/BUILD index 47d21ddb9..5fbc372b4 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v2beta1/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v2beta1/BUILD @@ -26,7 +26,10 @@ go_library( go_test( name = "go_default_test", - srcs = ["defaults_test.go"], + srcs = [ + "conversion_test.go", + "defaults_test.go", + ], embed = [":go_default_library"], deps = [ "//pkg/api/legacyscheme:go_default_library", @@ -37,6 +40,7 @@ go_test( "//staging/src/k8s.io/api/core/v1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/api/equality:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/github.com/stretchr/testify/assert:go_default_library", "//vendor/k8s.io/utils/pointer:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v2beta1/conversion.go b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v2beta1/conversion.go index eebc10430..142cf7264 100644 --- a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v2beta1/conversion.go +++ b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v2beta1/conversion.go @@ -185,8 +185,10 @@ func Convert_v2beta1_ObjectMetricSource_To_autoscaling_ObjectMetricSource(in *au } func Convert_autoscaling_PodsMetricSource_To_v2beta1_PodsMetricSource(in *autoscaling.PodsMetricSource, out *autoscalingv2beta1.PodsMetricSource, s conversion.Scope) error { - targetAverageValue := *in.Target.AverageValue - out.TargetAverageValue = targetAverageValue + if in.Target.AverageValue != nil { + targetAverageValue := *in.Target.AverageValue + out.TargetAverageValue = targetAverageValue + } out.MetricName = in.Metric.Name out.Selector = in.Metric.Selector @@ -247,8 +249,10 @@ func Convert_autoscaling_ObjectMetricStatus_To_v2beta1_ObjectMetricStatus(in *au } out.MetricName = in.Metric.Name out.Selector = in.Metric.Selector - currentAverageValue := *in.Current.AverageValue - out.AverageValue = ¤tAverageValue + if in.Current.AverageValue != nil { + currentAverageValue := *in.Current.AverageValue + out.AverageValue = ¤tAverageValue + } return nil } diff --git a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v2beta1/conversion_test.go b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v2beta1/conversion_test.go new file mode 100644 index 000000000..4a1db1a15 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/v2beta1/conversion_test.go @@ -0,0 +1,84 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package v2beta1 + +import ( + "testing" + + "github.com/stretchr/testify/assert" + + "k8s.io/api/autoscaling/v2beta1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/kubernetes/pkg/apis/autoscaling" +) + +// Testing nil pointer panic uncovered by #70806 +// TODO(yue9944882): Test nil/empty conversion across all resource types +func TestNilOrEmptyConversion(t *testing.T) { + scheme := runtime.NewScheme() + assert.NoError(t, addConversionFuncs(scheme)) + + testCases := []struct { + obj1 interface{} + obj2 interface{} + }{ + { + obj1: &autoscaling.ExternalMetricSource{}, + obj2: &v2beta1.ExternalMetricSource{}, + }, + { + obj1: &autoscaling.ExternalMetricStatus{}, + obj2: &v2beta1.ExternalMetricStatus{}, + }, + { + obj1: &autoscaling.PodsMetricSource{}, + obj2: &v2beta1.PodsMetricSource{}, + }, + { + obj1: &autoscaling.PodsMetricStatus{}, + obj2: &v2beta1.PodsMetricStatus{}, + }, + { + obj1: &autoscaling.ObjectMetricSource{}, + obj2: &v2beta1.ObjectMetricSource{}, + }, + { + obj1: &autoscaling.ObjectMetricStatus{}, + obj2: &v2beta1.ObjectMetricStatus{}, + }, + { + obj1: &autoscaling.ResourceMetricSource{}, + obj2: &v2beta1.ResourceMetricSource{}, + }, + { + obj1: &autoscaling.ResourceMetricStatus{}, + obj2: &v2beta1.ResourceMetricStatus{}, + }, + { + obj1: &autoscaling.HorizontalPodAutoscaler{}, + obj2: &v2beta1.HorizontalPodAutoscaler{}, + }, + { + obj1: &autoscaling.MetricTarget{}, + obj2: &v2beta1.CrossVersionObjectReference{}, + }, + } + for _, testCase := range testCases { + assert.NoError(t, scheme.Convert(testCase.obj1, testCase.obj2, nil)) + assert.NoError(t, scheme.Convert(testCase.obj2, testCase.obj1, nil)) + } +} diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/azure/azure_controller_standard.go b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/azure/azure_controller_standard.go index 540314ece..f600209e2 100644 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/azure/azure_controller_standard.go +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/azure/azure_controller_standard.go @@ -68,6 +68,7 @@ func (as *availabilitySet) AttachDisk(isManagedDisk bool, diskName, diskURI stri newVM := compute.VirtualMachine{ Location: vm.Location, VirtualMachineProperties: &compute.VirtualMachineProperties{ + HardwareProfile: vm.HardwareProfile, StorageProfile: &compute.StorageProfile{ DataDisks: &disks, }, @@ -132,6 +133,7 @@ func (as *availabilitySet) DetachDiskByName(diskName, diskURI string, nodeName t newVM := compute.VirtualMachine{ Location: vm.Location, VirtualMachineProperties: &compute.VirtualMachineProperties{ + HardwareProfile: vm.HardwareProfile, StorageProfile: &compute.StorageProfile{ DataDisks: &disks, }, diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/azure/azure_controller_vmss.go b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/azure/azure_controller_vmss.go index b6daa7737..80a27bf03 100644 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/azure/azure_controller_vmss.go +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/azure/azure_controller_vmss.go @@ -67,7 +67,17 @@ func (ss *scaleSet) AttachDisk(isManagedDisk bool, diskName, diskURI string, nod CreateOption: "attach", }) } - vm.StorageProfile.DataDisks = &disks + newVM := compute.VirtualMachineScaleSetVM{ + Sku: vm.Sku, + Location: vm.Location, + VirtualMachineScaleSetVMProperties: &compute.VirtualMachineScaleSetVMProperties{ + HardwareProfile: vm.HardwareProfile, + StorageProfile: &compute.StorageProfile{ + OsDisk: vm.StorageProfile.OsDisk, + DataDisks: &disks, + }, + }, + } ctx, cancel := getContextWithCancel() defer cancel() @@ -77,7 +87,7 @@ func (ss *scaleSet) AttachDisk(isManagedDisk bool, diskName, diskURI string, nod defer ss.vmssVMCache.Delete(key) klog.V(2).Infof("azureDisk - update(%s): vm(%s) - attach disk(%s)", nodeResourceGroup, nodeName, diskName) - _, err = ss.VirtualMachineScaleSetVMsClient.Update(ctx, nodeResourceGroup, ssName, instanceID, vm) + _, err = ss.VirtualMachineScaleSetVMsClient.Update(ctx, nodeResourceGroup, ssName, instanceID, newVM) if err != nil { detail := err.Error() if strings.Contains(detail, errLeaseFailed) || strings.Contains(detail, errDiskBlobNotFound) { @@ -126,7 +136,18 @@ func (ss *scaleSet) DetachDiskByName(diskName, diskURI string, nodeName types.No return fmt.Errorf("detach azure disk failure, disk %s not found, diskURI: %s", diskName, diskURI) } - vm.StorageProfile.DataDisks = &disks + newVM := compute.VirtualMachineScaleSetVM{ + Sku: vm.Sku, + Location: vm.Location, + VirtualMachineScaleSetVMProperties: &compute.VirtualMachineScaleSetVMProperties{ + HardwareProfile: vm.HardwareProfile, + StorageProfile: &compute.StorageProfile{ + OsDisk: vm.StorageProfile.OsDisk, + DataDisks: &disks, + }, + }, + } + ctx, cancel := getContextWithCancel() defer cancel() @@ -135,7 +156,7 @@ func (ss *scaleSet) DetachDiskByName(diskName, diskURI string, nodeName types.No defer ss.vmssVMCache.Delete(key) klog.V(2).Infof("azureDisk - update(%s): vm(%s) - detach disk(%s)", nodeResourceGroup, nodeName, diskName) - _, err = ss.VirtualMachineScaleSetVMsClient.Update(ctx, nodeResourceGroup, ssName, instanceID, vm) + _, err = ss.VirtualMachineScaleSetVMsClient.Update(ctx, nodeResourceGroup, ssName, instanceID, newVM) if err != nil { klog.Errorf("azureDisk - detach disk(%s) from %s failed, err: %v", diskName, nodeName, err) } else { diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/azure/azure_instances.go b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/azure/azure_instances.go index 158ffb976..abfaf3311 100644 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/azure/azure_instances.go +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/azure/azure_instances.go @@ -96,7 +96,8 @@ func (az *Cloud) NodeAddresses(ctx context.Context, name types.NodeName) ([]v1.N addresses := []v1.NodeAddress{ {Type: v1.NodeHostName, Address: string(name)}, } - for _, address := range ipAddress.IPV4.IPAddress { + if len(ipAddress.IPV4.IPAddress) > 0 && len(ipAddress.IPV4.IPAddress[0].PrivateIP) > 0 { + address := ipAddress.IPV4.IPAddress[0] addresses = append(addresses, v1.NodeAddress{ Type: v1.NodeInternalIP, Address: address.PrivateIP, @@ -108,7 +109,8 @@ func (az *Cloud) NodeAddresses(ctx context.Context, name types.NodeName) ([]v1.N }) } } - for _, address := range ipAddress.IPV6.IPAddress { + if len(ipAddress.IPV6.IPAddress) > 0 && len(ipAddress.IPV6.IPAddress[0].PrivateIP) > 0 { + address := ipAddress.IPV6.IPAddress[0] addresses = append(addresses, v1.NodeAddress{ Type: v1.NodeInternalIP, Address: address.PrivateIP, @@ -120,6 +122,13 @@ func (az *Cloud) NodeAddresses(ctx context.Context, name types.NodeName) ([]v1.N }) } } + + if len(addresses) == 1 { + // No IP addresses is got from instance metadata service, clean up cache and report errors. + az.metadata.imsCache.Delete(metadataCacheKey) + return nil, fmt.Errorf("get empty IP addresses from instance metadata service") + } + return addresses, nil } diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/azure/azure_instances_test.go b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/azure/azure_instances_test.go index 3ae39917c..40c92beb9 100644 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/azure/azure_instances_test.go +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/azure/azure_instances_test.go @@ -21,10 +21,12 @@ import ( "fmt" "net" "net/http" + "reflect" "testing" "github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2018-10-01/compute" "github.com/Azure/go-autorest/autorest/to" + "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/types" ) @@ -216,3 +218,122 @@ func TestInstanceShutdownByProviderID(t *testing.T) { } } } + +func TestNodeAddresses(t *testing.T) { + cloud := getTestCloud() + cloud.Config.UseInstanceMetadata = true + metadataTemplate := `{"compute":{"name":"%s"},"network":{"interface":[{"ipv4":{"ipAddress":[{"privateIpAddress":"%s","publicIpAddress":"%s"}]},"ipv6":{"ipAddress":[{"privateIpAddress":"%s","publicIpAddress":"%s"}]}}]}}` + + testcases := []struct { + name string + nodeName string + ipV4 string + ipV6 string + ipV4Public string + ipV6Public string + expected []v1.NodeAddress + expectError bool + }{ + { + name: "NodeAddresses should get both ipV4 and ipV6 private addresses", + nodeName: "vm1", + ipV4: "10.240.0.1", + ipV6: "1111:11111:00:00:1111:1111:000:111", + expected: []v1.NodeAddress{ + { + Type: v1.NodeHostName, + Address: "vm1", + }, + { + Type: v1.NodeInternalIP, + Address: "10.240.0.1", + }, + { + Type: v1.NodeInternalIP, + Address: "1111:11111:00:00:1111:1111:000:111", + }, + }, + }, + { + name: "NodeAddresses should report error when IPs are empty", + nodeName: "vm1", + expectError: true, + }, + { + name: "NodeAddresses should get ipV4 private and public addresses", + nodeName: "vm1", + ipV4: "10.240.0.1", + ipV4Public: "9.9.9.9", + expected: []v1.NodeAddress{ + { + Type: v1.NodeHostName, + Address: "vm1", + }, + { + Type: v1.NodeInternalIP, + Address: "10.240.0.1", + }, + { + Type: v1.NodeExternalIP, + Address: "9.9.9.9", + }, + }, + }, + { + name: "NodeAddresses should get ipV6 private and public addresses", + nodeName: "vm1", + ipV6: "1111:11111:00:00:1111:1111:000:111", + ipV6Public: "2222:22221:00:00:2222:2222:000:111", + expected: []v1.NodeAddress{ + { + Type: v1.NodeHostName, + Address: "vm1", + }, + { + Type: v1.NodeInternalIP, + Address: "1111:11111:00:00:1111:1111:000:111", + }, + { + Type: v1.NodeExternalIP, + Address: "2222:22221:00:00:2222:2222:000:111", + }, + }, + }, + } + + for _, test := range testcases { + listener, err := net.Listen("tcp", "127.0.0.1:0") + if err != nil { + t.Errorf("Test [%s] unexpected error: %v", test.name, err) + } + + mux := http.NewServeMux() + mux.Handle("/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + fmt.Fprintf(w, fmt.Sprintf(metadataTemplate, test.nodeName, test.ipV4, test.ipV4Public, test.ipV6, test.ipV6Public)) + })) + go func() { + http.Serve(listener, mux) + }() + defer listener.Close() + + cloud.metadata, err = NewInstanceMetadataService("http://" + listener.Addr().String() + "/") + if err != nil { + t.Errorf("Test [%s] unexpected error: %v", test.name, err) + } + + ipAddresses, err := cloud.NodeAddresses(context.Background(), types.NodeName(test.nodeName)) + if test.expectError { + if err == nil { + t.Errorf("Test [%s] unexpected nil err", test.name) + } + } else { + if err != nil { + t.Errorf("Test [%s] unexpected error: %v", test.name, err) + } + } + + if !reflect.DeepEqual(ipAddresses, test.expected) { + t.Errorf("Test [%s] unexpected ipAddresses: %s, expected %q", test.name, ipAddresses, test.expected) + } + } +} diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/gen.go b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/gen.go index a3e7cd2c6..f51ec77f0 100644 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/gen.go +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/gen.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright 2019 The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/gen_test.go b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/gen_test.go index 902b4ee78..51a3f44df 100644 --- a/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/gen_test.go +++ b/vendor/k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/gen_test.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright 2019 The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/vendor/k8s.io/kubernetes/pkg/controller/cronjob/injection.go b/vendor/k8s.io/kubernetes/pkg/controller/cronjob/injection.go index 7108879a8..14831fe1f 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/cronjob/injection.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/cronjob/injection.go @@ -118,7 +118,8 @@ func (r realJobControl) CreateJob(namespace string, job *batchv1.Job) (*batchv1. } func (r realJobControl) DeleteJob(namespace string, name string) error { - return r.KubeClient.BatchV1().Jobs(namespace).Delete(name, nil) + background := metav1.DeletePropagationBackground + return r.KubeClient.BatchV1().Jobs(namespace).Delete(name, &metav1.DeleteOptions{PropagationPolicy: &background}) } type fakeJobControl struct { diff --git a/vendor/k8s.io/kubernetes/pkg/controller/podautoscaler/horizontal.go b/vendor/k8s.io/kubernetes/pkg/controller/podautoscaler/horizontal.go index b043564ab..db4ce6749 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/podautoscaler/horizontal.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/podautoscaler/horizontal.go @@ -207,14 +207,18 @@ func (a *HorizontalController) processNextWorkItem() bool { } defer a.queue.Done(key) - err := a.reconcileKey(key.(string)) - if err == nil { - // don't "forget" here because we want to only process a given HPA once per resync interval - return true + deleted, err := a.reconcileKey(key.(string)) + if err != nil { + utilruntime.HandleError(err) + } + // Add request processing HPA after resync interval just in case last resync didn't insert + // request into the queue. Request is not inserted into queue by resync if previous one wasn't processed yet. + // This happens quite often because requests from previous resync are removed from the queue at the same moment + // as next resync inserts new requests. + if !deleted { + a.queue.AddRateLimited(key) } - a.queue.AddRateLimited(key) - utilruntime.HandleError(err) return true } @@ -298,20 +302,20 @@ func (a *HorizontalController) computeReplicasForMetrics(hpa *autoscalingv2.Hori return replicas, metric, statuses, timestamp, nil } -func (a *HorizontalController) reconcileKey(key string) error { +func (a *HorizontalController) reconcileKey(key string) (deleted bool, err error) { namespace, name, err := cache.SplitMetaNamespaceKey(key) if err != nil { - return err + return true, err } hpa, err := a.hpaLister.HorizontalPodAutoscalers(namespace).Get(name) if errors.IsNotFound(err) { klog.Infof("Horizontal Pod Autoscaler %s has been deleted in %s", name, namespace) delete(a.recommendations, key) - return nil + return true, nil } - return a.reconcileAutoscaler(hpa, key) + return false, a.reconcileAutoscaler(hpa, key) } // computeStatusForObjectMetric computes the desired number of replicas for the specified metric of type ObjectMetricSourceType. diff --git a/vendor/k8s.io/kubernetes/pkg/controller/podautoscaler/horizontal_test.go b/vendor/k8s.io/kubernetes/pkg/controller/podautoscaler/horizontal_test.go index 0cc892283..997af09a7 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/podautoscaler/horizontal_test.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/podautoscaler/horizontal_test.go @@ -2176,7 +2176,7 @@ func TestComputedToleranceAlgImplementation(t *testing.T) { finalPods := int32(math.Ceil(resourcesUsedRatio * float64(startPods))) // To breach tolerance we will create a utilization ratio difference of tolerance to usageRatioToleranceValue) - tc := testCase{ + tc1 := testCase{ minReplicas: 0, maxReplicas: 1000, initialReplicas: startPods, @@ -2209,22 +2209,49 @@ func TestComputedToleranceAlgImplementation(t *testing.T) { useMetricsAPI: true, recommendations: []timestampedRecommendation{}, } + tc1.runTest(t) - tc.runTest(t) - - // Reuse the data structure above, now testing "unscaling". - // Now, we test that no scaling happens if we are in a very close margin to the tolerance target = math.Abs(1/(requestedToUsed*(1-defaultTestingTolerance))) + .004 finalCPUPercentTarget = int32(target * 100) - tc.CPUTarget = finalCPUPercentTarget - tc.initialReplicas = startPods - tc.expectedDesiredReplicas = startPods - tc.expectedConditions = statusOkWithOverrides(autoscalingv2.HorizontalPodAutoscalerCondition{ - Type: autoscalingv2.AbleToScale, - Status: v1.ConditionTrue, - Reason: "ReadyForNewScale", - }) - tc.runTest(t) + tc2 := testCase{ + minReplicas: 0, + maxReplicas: 1000, + initialReplicas: startPods, + expectedDesiredReplicas: startPods, + CPUTarget: finalCPUPercentTarget, + reportedLevels: []uint64{ + totalUsedCPUOfAllPods / 10, + totalUsedCPUOfAllPods / 10, + totalUsedCPUOfAllPods / 10, + totalUsedCPUOfAllPods / 10, + totalUsedCPUOfAllPods / 10, + totalUsedCPUOfAllPods / 10, + totalUsedCPUOfAllPods / 10, + totalUsedCPUOfAllPods / 10, + totalUsedCPUOfAllPods / 10, + totalUsedCPUOfAllPods / 10, + }, + reportedCPURequests: []resource.Quantity{ + resource.MustParse(fmt.Sprint(perPodRequested+100) + "m"), + resource.MustParse(fmt.Sprint(perPodRequested-100) + "m"), + resource.MustParse(fmt.Sprint(perPodRequested+10) + "m"), + resource.MustParse(fmt.Sprint(perPodRequested-10) + "m"), + resource.MustParse(fmt.Sprint(perPodRequested+2) + "m"), + resource.MustParse(fmt.Sprint(perPodRequested-2) + "m"), + resource.MustParse(fmt.Sprint(perPodRequested+1) + "m"), + resource.MustParse(fmt.Sprint(perPodRequested-1) + "m"), + resource.MustParse(fmt.Sprint(perPodRequested) + "m"), + resource.MustParse(fmt.Sprint(perPodRequested) + "m"), + }, + useMetricsAPI: true, + recommendations: []timestampedRecommendation{}, + expectedConditions: statusOkWithOverrides(autoscalingv2.HorizontalPodAutoscalerCondition{ + Type: autoscalingv2.AbleToScale, + Status: v1.ConditionTrue, + Reason: "ReadyForNewScale", + }), + } + tc2.runTest(t) } func TestScaleUpRCImmediately(t *testing.T) { diff --git a/vendor/k8s.io/kubernetes/pkg/controller/podautoscaler/legacy_horizontal_test.go b/vendor/k8s.io/kubernetes/pkg/controller/podautoscaler/legacy_horizontal_test.go index 6d0bf6cdc..7e7accd37 100644 --- a/vendor/k8s.io/kubernetes/pkg/controller/podautoscaler/legacy_horizontal_test.go +++ b/vendor/k8s.io/kubernetes/pkg/controller/podautoscaler/legacy_horizontal_test.go @@ -100,6 +100,8 @@ type legacyTestCase struct { // Last scale time lastScaleTime *metav1.Time recommendations []timestampedRecommendation + + finished bool } // Needs to be called under a lock. @@ -462,12 +464,14 @@ func (tc *legacyTestCase) verifyResults(t *testing.T) { func (tc *legacyTestCase) runTest(t *testing.T) { testClient, testScaleClient := tc.prepareTestClient(t) metricsClient := metrics.NewHeapsterMetricsClient(testClient, metrics.DefaultHeapsterNamespace, metrics.DefaultHeapsterScheme, metrics.DefaultHeapsterService, metrics.DefaultHeapsterPort) - eventClient := &fake.Clientset{} eventClient.AddReactor("*", "events", func(action core.Action) (handled bool, ret runtime.Object, err error) { tc.Lock() defer tc.Unlock() + if tc.finished { + return true, &v1.Event{}, nil + } obj := action.(core.CreateAction).GetObject().(*v1.Event) if tc.verifyEvents { switch obj.Reason { @@ -514,7 +518,10 @@ func (tc *legacyTestCase) runTest(t *testing.T) { informerFactory.Start(stop) go hpaController.Run(stop) + // Wait for HPA to be processed. + <-tc.processed tc.Lock() + tc.finished = true if tc.verifyEvents { tc.Unlock() // We need to wait for events to be broadcasted (sleep for longer than record.sleepDuration). @@ -522,9 +529,8 @@ func (tc *legacyTestCase) runTest(t *testing.T) { } else { tc.Unlock() } - // Wait for HPA to be processed. - <-tc.processed tc.verifyResults(t) + } func TestLegacyScaleUp(t *testing.T) { diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/apply/apply.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/apply/apply.go index a0fb2dd4e..07f8b9c75 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/apply/apply.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/apply/apply.go @@ -343,6 +343,13 @@ func (o *ApplyOptions) Run() error { return err } + // If server-dry-run is requested but the type doesn't support it, fail right away. + if o.ServerDryRun { + if err := dryRunVerifier.HasSupport(info.Mapping.GroupVersionKind); err != nil { + return err + } + } + if info.Namespaced() { visitedNamespaces.Insert(info.Namespace) } @@ -366,12 +373,6 @@ func (o *ApplyOptions) Run() error { if !errors.IsNotFound(err) { return cmdutil.AddSourceToErr(fmt.Sprintf("retrieving current configuration of:\n%s\nfrom server for:", info.String()), info.Source, err) } - // If server-dry-run is requested but the type doesn't support it, fail right away. - if o.ServerDryRun { - if err := dryRunVerifier.HasSupport(info.Mapping.GroupVersionKind); err != nil { - return err - } - } // Create the resource if it doesn't exist // First, update the annotation used by kubectl apply diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/diff/diff.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/diff/diff.go index 89ee7f360..1956cf1bb 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/diff/diff.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/diff/diff.go @@ -289,7 +289,17 @@ func (obj InfoObject) Merged() (runtime.Object, error) { } func (obj InfoObject) Name() string { - return obj.Info.Name + group := "" + if obj.Info.Mapping.GroupVersionKind.Group != "" { + group = fmt.Sprintf("%v.", obj.Info.Mapping.GroupVersionKind.Group) + } + return group + fmt.Sprintf( + "%v.%v.%v.%v", + obj.Info.Mapping.GroupVersionKind.Version, + obj.Info.Mapping.GroupVersionKind.Kind, + obj.Info.Namespace, + obj.Info.Name, + ) } // Differ creates two DiffVersion and diffs them. diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/get/get.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/get/get.go index 82a3d2f97..5708a6775 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/get/get.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/get/get.go @@ -334,8 +334,10 @@ func (r *RuntimeSorter) Sort() error { case *metav1beta1.Table: includesTable = true - if err := NewTableSorter(t, r.field).Sort(); err != nil { - continue + if sorter, err := NewTableSorter(t, r.field); err != nil { + return err + } else if err := sorter.Sort(); err != nil { + return err } default: includesRuntimeObjs = true diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/get/sorter.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/get/sorter.go index cd8bb28b8..d806decd1 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/get/sorter.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/get/sorter.go @@ -318,13 +318,18 @@ func (t *TableSorter) Len() int { func (t *TableSorter) Swap(i, j int) { t.obj.Rows[i], t.obj.Rows[j] = t.obj.Rows[j], t.obj.Rows[i] + t.parsedRows[i], t.parsedRows[j] = t.parsedRows[j], t.parsedRows[i] } func (t *TableSorter) Less(i, j int) bool { iValues := t.parsedRows[i] jValues := t.parsedRows[j] - if len(iValues) == 0 || len(iValues[0]) == 0 || len(jValues) == 0 || len(jValues[0]) == 0 { - klog.Fatalf("couldn't find any field with path %q in the list of objects", t.field) + + if len(iValues) == 0 || len(iValues[0]) == 0 { + return true + } + if len(jValues) == 0 || len(jValues[0]) == 0 { + return false } iField := iValues[0][0] @@ -342,28 +347,36 @@ func (t *TableSorter) Sort() error { return nil } -func NewTableSorter(table *metav1beta1.Table, field string) *TableSorter { +func NewTableSorter(table *metav1beta1.Table, field string) (*TableSorter, error) { var parsedRows [][][]reflect.Value parser := jsonpath.New("sorting").AllowMissingKeys(true) err := parser.Parse(field) if err != nil { - klog.Fatalf("sorting error: %v\n", err) + return nil, fmt.Errorf("sorting error: %v", err) } + fieldFoundOnce := false for i := range table.Rows { parsedRow, err := findJSONPathResults(parser, table.Rows[i].Object.Object) if err != nil { - klog.Fatalf("Failed to get values for %#v using %s (%#v)", parsedRow, field, err) + return nil, fmt.Errorf("Failed to get values for %#v using %s (%#v)", parsedRow, field, err) } parsedRows = append(parsedRows, parsedRow) + if len(parsedRow) > 0 && len(parsedRow[0]) > 0 { + fieldFoundOnce = true + } + } + + if len(table.Rows) > 0 && !fieldFoundOnce { + return nil, fmt.Errorf("couldn't find any field with path %q in the list of objects", field) } return &TableSorter{ obj: table, field: field, parsedRows: parsedRows, - } + }, nil } func findJSONPathResults(parser *jsonpath.JSONPath, from runtime.Object) ([][]reflect.Value, error) { if unstructuredObj, ok := from.(*unstructured.Unstructured); ok { diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/get/sorter_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/get/sorter_test.go index c85d5d1bf..be2abd57f 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/get/sorter_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/cmd/get/sorter_test.go @@ -17,6 +17,7 @@ limitations under the License. package get import ( + "encoding/json" "reflect" "strings" "testing" @@ -25,10 +26,20 @@ import ( "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + metav1beta1 "k8s.io/apimachinery/pkg/apis/meta/v1beta1" "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/diff" "k8s.io/kubernetes/pkg/kubectl/scheme" ) +func toUnstructuredOrDie(data []byte) *unstructured.Unstructured { + unstrBody := map[string]interface{}{} + err := json.Unmarshal(data, &unstrBody) + if err != nil { + panic(err) + } + return &unstructured.Unstructured{Object: unstrBody} +} func encodeOrDie(obj runtime.Object) []byte { data, err := runtime.Encode(scheme.Codecs.LegacyCodec(corev1.SchemeGroupVersion), obj) if err != nil { @@ -65,6 +76,16 @@ func TestSortingPrinter(t *testing.T) { name string expectedErr string }{ + { + name: "empty", + obj: &corev1.PodList{ + Items: []corev1.Pod{}, + }, + sort: &corev1.PodList{ + Items: []corev1.Pod{}, + }, + field: "{.metadata.name}", + }, { name: "in-order-already", obj: &corev1.PodList{ @@ -237,16 +258,16 @@ func TestSortingPrinter(t *testing.T) { name: "v1.List in order", obj: &corev1.List{ Items: []runtime.RawExtension{ - {Raw: encodeOrDie(a)}, - {Raw: encodeOrDie(b)}, - {Raw: encodeOrDie(c)}, + {Object: a, Raw: encodeOrDie(a)}, + {Object: b, Raw: encodeOrDie(b)}, + {Object: c, Raw: encodeOrDie(c)}, }, }, sort: &corev1.List{ Items: []runtime.RawExtension{ - {Raw: encodeOrDie(a)}, - {Raw: encodeOrDie(b)}, - {Raw: encodeOrDie(c)}, + {Object: a, Raw: encodeOrDie(a)}, + {Object: b, Raw: encodeOrDie(b)}, + {Object: c, Raw: encodeOrDie(c)}, }, }, field: "{.metadata.name}", @@ -255,16 +276,16 @@ func TestSortingPrinter(t *testing.T) { name: "v1.List in reverse", obj: &corev1.List{ Items: []runtime.RawExtension{ - {Raw: encodeOrDie(c)}, - {Raw: encodeOrDie(b)}, - {Raw: encodeOrDie(a)}, + {Object: c, Raw: encodeOrDie(c)}, + {Object: b, Raw: encodeOrDie(b)}, + {Object: a, Raw: encodeOrDie(a)}, }, }, sort: &corev1.List{ Items: []runtime.RawExtension{ - {Raw: encodeOrDie(a)}, - {Raw: encodeOrDie(b)}, - {Raw: encodeOrDie(c)}, + {Object: a, Raw: encodeOrDie(a)}, + {Object: b, Raw: encodeOrDie(b)}, + {Object: c, Raw: encodeOrDie(c)}, }, }, field: "{.metadata.name}", @@ -390,6 +411,43 @@ func TestSortingPrinter(t *testing.T) { }, } for _, tt := range tests { + t.Run(tt.name+" table", func(t *testing.T) { + table := &metav1beta1.Table{} + meta.EachListItem(tt.obj, func(item runtime.Object) error { + table.Rows = append(table.Rows, metav1beta1.TableRow{ + Object: runtime.RawExtension{Object: toUnstructuredOrDie(encodeOrDie(item))}, + }) + return nil + }) + + expectedTable := &metav1beta1.Table{} + meta.EachListItem(tt.sort, func(item runtime.Object) error { + expectedTable.Rows = append(expectedTable.Rows, metav1beta1.TableRow{ + Object: runtime.RawExtension{Object: toUnstructuredOrDie(encodeOrDie(item))}, + }) + return nil + }) + + sorter, err := NewTableSorter(table, tt.field) + if err == nil { + err = sorter.Sort() + } + if err != nil { + if len(tt.expectedErr) > 0 { + if strings.Contains(err.Error(), tt.expectedErr) { + return + } + t.Fatalf("%s: expected error containing: %q, got: \"%v\"", tt.name, tt.expectedErr, err) + } + t.Fatalf("%s: unexpected error: %v", tt.name, err) + } + if len(tt.expectedErr) > 0 { + t.Fatalf("%s: expected error containing: %q, got none", tt.name, tt.expectedErr) + } + if !reflect.DeepEqual(table, expectedTable) { + t.Errorf("[%s]\nexpected/saw:\n%s", tt.name, diff.ObjectReflectDiff(expectedTable, table)) + } + }) t.Run(tt.name, func(t *testing.T) { sort := &SortingPrinter{SortField: tt.field, Decoder: scheme.Codecs.UniversalDecoder()} err := sort.sortObj(tt.obj) diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/generate/versioned/secret_for_docker_registry.go b/vendor/k8s.io/kubernetes/pkg/kubectl/generate/versioned/secret_for_docker_registry.go index db9d38448..bae9f05aa 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/generate/versioned/secret_for_docker_registry.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/generate/versioned/secret_for_docker_registry.go @@ -17,6 +17,7 @@ limitations under the License. package versioned import ( + "encoding/base64" "encoding/json" "fmt" @@ -152,6 +153,7 @@ func handleDockerCfgJSONContent(username, password, email, server string) ([]byt Username: username, Password: password, Email: email, + Auth: encodeDockerConfigFieldAuth(username, password), } dockerCfgJSON := DockerConfigJSON{ @@ -161,6 +163,11 @@ func handleDockerCfgJSONContent(username, password, email, server string) ([]byt return json.Marshal(dockerCfgJSON) } +func encodeDockerConfigFieldAuth(username, password string) string { + fieldValue := username + ":" + password + return base64.StdEncoding.EncodeToString([]byte(fieldValue)) +} + // DockerConfigJSON represents a local docker auth config file // for pulling images. type DockerConfigJSON struct { @@ -175,7 +182,8 @@ type DockerConfigJSON struct { type DockerConfig map[string]DockerConfigEntry type DockerConfigEntry struct { - Username string - Password string - Email string + Username string `json:"username,omitempty"` + Password string `json:"password,omitempty"` + Email string `json:"email,omitempty"` + Auth string `json:"auth,omitempty"` } diff --git a/vendor/k8s.io/kubernetes/pkg/kubectl/generate/versioned/secret_for_docker_registry_test.go b/vendor/k8s.io/kubernetes/pkg/kubectl/generate/versioned/secret_for_docker_registry_test.go index 2b90e186e..304cf400b 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubectl/generate/versioned/secret_for_docker_registry_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubectl/generate/versioned/secret_for_docker_registry_test.go @@ -73,7 +73,7 @@ func TestSecretForDockerRegistryGenerate(t *testing.T) { }, expected: &v1.Secret{ ObjectMeta: metav1.ObjectMeta{ - Name: "foo-7566tc6mgc", + Name: "foo-548cm7fgdh", }, Data: map[string][]byte{ v1.DockerConfigJsonKey: secretData, diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/BUILD index fd5e6391c..cdd40d9a9 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/BUILD @@ -165,6 +165,7 @@ go_test( "kubelet_pods_windows_test.go", "kubelet_resources_test.go", "kubelet_test.go", + "kubelet_volumes_linux_test.go", "kubelet_volumes_test.go", "main_test.go", "oom_watcher_test.go", diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/config/defaults.go b/vendor/k8s.io/kubernetes/pkg/kubelet/config/defaults.go index 96ab9ceba..43f7162bf 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/config/defaults.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/config/defaults.go @@ -19,6 +19,7 @@ package config const ( DefaultKubeletPodsDirName = "pods" DefaultKubeletVolumesDirName = "volumes" + DefaultKubeletVolumeSubpathsDirName = "volume-subpaths" DefaultKubeletVolumeDevicesDirName = "volumeDevices" DefaultKubeletPluginsDirName = "plugins" DefaultKubeletPluginsRegistrationDirName = "plugins_registry" diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_getters.go b/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_getters.go index eb05a578c..a577a6bfa 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_getters.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_getters.go @@ -25,7 +25,7 @@ import ( cadvisorapiv1 "github.com/google/cadvisor/info/v1" "k8s.io/klog" - "k8s.io/api/core/v1" + v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/kubernetes/pkg/kubelet/cm" "k8s.io/kubernetes/pkg/kubelet/config" @@ -99,6 +99,13 @@ func (kl *Kubelet) getPodDir(podUID types.UID) string { return filepath.Join(kl.getPodsDir(), string(podUID)) } +// getPodVolumesSubpathsDir returns the full path to the per-pod subpaths directory under +// which subpath volumes are created for the specified pod. This directory may not +// exist if the pod does not exist or subpaths are not specified. +func (kl *Kubelet) getPodVolumeSubpathsDir(podUID types.UID) string { + return filepath.Join(kl.getPodDir(podUID), config.DefaultKubeletVolumeSubpathsDirName) +} + // getPodVolumesDir returns the full path to the per-pod data directory under // which volumes are created for the specified pod. This directory may not // exist if the pod does not exist. @@ -315,6 +322,19 @@ func (kl *Kubelet) getMountedVolumePathListFromDisk(podUID types.UID) ([]string, return mountedVolumes, nil } +// podVolumesSubpathsDirExists returns true if the pod volume-subpaths directory for +// a given pod exists +func (kl *Kubelet) podVolumeSubpathsDirExists(podUID types.UID) (bool, error) { + podVolDir := kl.getPodVolumeSubpathsDir(podUID) + + if pathExists, pathErr := volumeutil.PathExists(podVolDir); pathErr != nil { + return true, fmt.Errorf("Error checking if path %q exists: %v", podVolDir, pathErr) + } else if !pathExists { + return false, nil + } + return true, nil +} + // GetVersionInfo returns information about the version of cAdvisor in use. func (kl *Kubelet) GetVersionInfo() (*cadvisorapiv1.VersionInfo, error) { return kl.cadvisor.VersionInfo() diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_volumes.go b/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_volumes.go index 7681ee652..88b34c5ef 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_volumes.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_volumes.go @@ -19,7 +19,7 @@ package kubelet import ( "fmt" - "k8s.io/api/core/v1" + v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/types" utilerrors "k8s.io/apimachinery/pkg/util/errors" "k8s.io/apimachinery/pkg/util/sets" @@ -114,6 +114,8 @@ func (kl *Kubelet) cleanupOrphanedPodDirs(pods []*v1.Pod, runningPods []*kubecon } // If volumes have not been unmounted/detached, do not delete directory. // Doing so may result in corruption of data. + // TODO: getMountedVolumePathListFromDisk() call may be redundant with + // kl.getPodVolumePathListFromDisk(). Can this be cleaned up? if podVolumesExist := kl.podVolumesExist(uid); podVolumesExist { klog.V(3).Infof("Orphaned pod %q found, but volumes are not cleaned up", uid) continue @@ -128,6 +130,18 @@ func (kl *Kubelet) cleanupOrphanedPodDirs(pods []*v1.Pod, runningPods []*kubecon orphanVolumeErrors = append(orphanVolumeErrors, fmt.Errorf("Orphaned pod %q found, but volume paths are still present on disk", uid)) continue } + + // If there are any volume-subpaths, do not cleanup directories + volumeSubpathExists, err := kl.podVolumeSubpathsDirExists(uid) + if err != nil { + orphanVolumeErrors = append(orphanVolumeErrors, fmt.Errorf("Orphaned pod %q found, but error %v occurred during reading of volume-subpaths dir from disk", uid, err)) + continue + } + if volumeSubpathExists { + orphanVolumeErrors = append(orphanVolumeErrors, fmt.Errorf("Orphaned pod %q found, but volume subpaths are still present on disk", uid)) + continue + } + klog.V(3).Infof("Orphaned pod %q found, removing", uid) if err := removeall.RemoveAllOneFilesystem(kl.mounter, kl.getPodDir(uid)); err != nil { klog.Errorf("Failed to remove orphaned pod %q dir; err: %v", uid, err) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_volumes_linux_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_volumes_linux_test.go new file mode 100644 index 000000000..7f08ff4d5 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_volumes_linux_test.go @@ -0,0 +1,156 @@ +// +build linux + +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package kubelet + +import ( + "fmt" + "io/ioutil" + "os" + "path/filepath" + "testing" + + v1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + + _ "k8s.io/kubernetes/pkg/apis/core/install" +) + +func validateDirExists(dir string) error { + _, err := ioutil.ReadDir(dir) + if err != nil { + return err + } + return nil +} + +func validateDirNotExists(dir string) error { + _, err := ioutil.ReadDir(dir) + if os.IsNotExist(err) { + return nil + } + if err != nil { + return err + } + return fmt.Errorf("dir %q still exists", dir) +} + +func TestCleanupOrphanedPodDirs(t *testing.T) { + testCases := map[string]struct { + pods []*v1.Pod + prepareFunc func(kubelet *Kubelet) error + validateFunc func(kubelet *Kubelet) error + expectErr bool + }{ + "nothing-to-do": {}, + "pods-dir-not-found": { + prepareFunc: func(kubelet *Kubelet) error { + return os.Remove(kubelet.getPodsDir()) + }, + expectErr: true, + }, + "pod-doesnot-exist-novolume": { + prepareFunc: func(kubelet *Kubelet) error { + podDir := kubelet.getPodDir("pod1uid") + return os.MkdirAll(filepath.Join(podDir, "not/a/volume"), 0750) + }, + validateFunc: func(kubelet *Kubelet) error { + podDir := kubelet.getPodDir("pod1uid") + return validateDirNotExists(filepath.Join(podDir, "not")) + }, + }, + "pod-exists-with-volume": { + pods: []*v1.Pod{ + { + ObjectMeta: metav1.ObjectMeta{ + Name: "pod1", + UID: "pod1uid", + }, + }, + }, + prepareFunc: func(kubelet *Kubelet) error { + podDir := kubelet.getPodDir("pod1uid") + return os.MkdirAll(filepath.Join(podDir, "volumes/plugin/name"), 0750) + }, + validateFunc: func(kubelet *Kubelet) error { + podDir := kubelet.getPodDir("pod1uid") + return validateDirExists(filepath.Join(podDir, "volumes/plugin/name")) + }, + }, + "pod-doesnot-exist-with-volume": { + prepareFunc: func(kubelet *Kubelet) error { + podDir := kubelet.getPodDir("pod1uid") + return os.MkdirAll(filepath.Join(podDir, "volumes/plugin/name"), 0750) + }, + validateFunc: func(kubelet *Kubelet) error { + podDir := kubelet.getPodDir("pod1uid") + return validateDirExists(filepath.Join(podDir, "volumes/plugin/name")) + }, + }, + "pod-doesnot-exist-with-subpath": { + prepareFunc: func(kubelet *Kubelet) error { + podDir := kubelet.getPodDir("pod1uid") + return os.MkdirAll(filepath.Join(podDir, "volume-subpaths/volume/container/index"), 0750) + }, + validateFunc: func(kubelet *Kubelet) error { + podDir := kubelet.getPodDir("pod1uid") + return validateDirExists(filepath.Join(podDir, "volume-subpaths/volume/container/index")) + }, + }, + "pod-doesnot-exist-with-subpath-top": { + prepareFunc: func(kubelet *Kubelet) error { + podDir := kubelet.getPodDir("pod1uid") + return os.MkdirAll(filepath.Join(podDir, "volume-subpaths"), 0750) + }, + validateFunc: func(kubelet *Kubelet) error { + podDir := kubelet.getPodDir("pod1uid") + return validateDirExists(filepath.Join(podDir, "volume-subpaths")) + }, + }, + // TODO: test volume in volume-manager + } + + for name, tc := range testCases { + t.Run(name, func(t *testing.T) { + testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */) + defer testKubelet.Cleanup() + kubelet := testKubelet.kubelet + + if tc.prepareFunc != nil { + if err := tc.prepareFunc(kubelet); err != nil { + t.Fatalf("%s failed preparation: %v", name, err) + } + } + + err := kubelet.cleanupOrphanedPodDirs(tc.pods, nil) + if tc.expectErr && err == nil { + t.Errorf("%s failed: expected error, got success", name) + } + if !tc.expectErr && err != nil { + t.Errorf("%s failed: got error %v", name, err) + } + + if tc.validateFunc != nil { + if err := tc.validateFunc(kubelet); err != nil { + t.Errorf("%s failed validation: %v", name, err) + } + } + + }) + } +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/kuberuntime_sandbox.go b/vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/kuberuntime_sandbox.go index dd51bda32..cf0db44db 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/kuberuntime_sandbox.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/kuberuntime_sandbox.go @@ -57,6 +57,9 @@ func (m *kubeGenericRuntimeManager) createPodSandbox(pod *v1.Pod, attempt uint32 message := fmt.Sprintf("CreatePodSandbox for pod %q failed: %v", format.Pod(pod), err) return "", message, err } + if runtimeHandler != "" { + klog.V(2).Infof("Running pod %s with RuntimeHandler %q", format.Pod(pod), runtimeHandler) + } } podSandBoxID, err := m.runtimeService.RunPodSandbox(podSandboxConfig, runtimeHandler) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/server/stats/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/server/stats/BUILD index 6fec6f2eb..dde9b3cbc 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/server/stats/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/server/stats/BUILD @@ -18,6 +18,7 @@ go_library( "//pkg/kubelet/apis/stats/v1alpha1:go_default_library", "//pkg/kubelet/cm:go_default_library", "//pkg/kubelet/container:go_default_library", + "//pkg/kubelet/util:go_default_library", "//pkg/kubelet/util/format:go_default_library", "//pkg/volume:go_default_library", "//staging/src/k8s.io/api/core/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/server/stats/summary.go b/vendor/k8s.io/kubernetes/pkg/kubelet/server/stats/summary.go index fb646c5d2..93aef69ed 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/server/stats/summary.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/server/stats/summary.go @@ -19,7 +19,11 @@ package stats import ( "fmt" + "k8s.io/klog" + + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" statsapi "k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1" + "k8s.io/kubernetes/pkg/kubelet/util" ) type SummaryProvider interface { @@ -32,6 +36,11 @@ type SummaryProvider interface { // summaryProviderImpl implements the SummaryProvider interface. type summaryProviderImpl struct { + // kubeletCreationTime is the time at which the summaryProvider was created. + kubeletCreationTime metav1.Time + // systemBootTime is the time at which the system was started + systemBootTime metav1.Time + provider StatsProvider } @@ -40,7 +49,18 @@ var _ SummaryProvider = &summaryProviderImpl{} // NewSummaryProvider returns a SummaryProvider using the stats provided by the // specified statsProvider. func NewSummaryProvider(statsProvider StatsProvider) SummaryProvider { - return &summaryProviderImpl{statsProvider} + kubeletCreationTime := metav1.Now() + bootTime, err := util.GetBootTime() + if err != nil { + // bootTime will be zero if we encounter an error getting the boot time. + klog.Warningf("Error getting system boot time. Node metrics will have an incorrect start time: %v", err) + } + + return &summaryProviderImpl{ + kubeletCreationTime: kubeletCreationTime, + systemBootTime: metav1.NewTime(bootTime), + provider: statsProvider, + } } func (sp *summaryProviderImpl) Get(updateStats bool) (*statsapi.Summary, error) { @@ -77,7 +97,7 @@ func (sp *summaryProviderImpl) Get(updateStats bool) (*statsapi.Summary, error) CPU: rootStats.CPU, Memory: rootStats.Memory, Network: networkStats, - StartTime: rootStats.StartTime, + StartTime: sp.systemBootTime, Fs: rootFsStats, Runtime: &statsapi.RuntimeStats{ImageFs: imageFsStats}, Rlimit: rlimit, diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/server/stats/summary_sys_containers.go b/vendor/k8s.io/kubernetes/pkg/kubelet/server/stats/summary_sys_containers.go index baaff0ab1..4526f2a76 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/server/stats/summary_sys_containers.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/server/stats/summary_sys_containers.go @@ -21,6 +21,7 @@ package stats import ( "k8s.io/klog" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" statsapi "k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1" "k8s.io/kubernetes/pkg/kubelet/cm" ) @@ -29,11 +30,12 @@ func (sp *summaryProviderImpl) GetSystemContainersStats(nodeConfig cm.NodeConfig systemContainers := map[string]struct { name string forceStatsUpdate bool + startTime metav1.Time }{ - statsapi.SystemContainerKubelet: {nodeConfig.KubeletCgroupsName, false}, - statsapi.SystemContainerRuntime: {nodeConfig.RuntimeCgroupsName, false}, - statsapi.SystemContainerMisc: {nodeConfig.SystemCgroupsName, false}, - statsapi.SystemContainerPods: {sp.provider.GetPodCgroupRoot(), updateStats}, + statsapi.SystemContainerKubelet: {name: nodeConfig.KubeletCgroupsName, forceStatsUpdate: false, startTime: sp.kubeletCreationTime}, + statsapi.SystemContainerRuntime: {name: nodeConfig.RuntimeCgroupsName, forceStatsUpdate: false}, + statsapi.SystemContainerMisc: {name: nodeConfig.SystemCgroupsName, forceStatsUpdate: false}, + statsapi.SystemContainerPods: {name: sp.provider.GetPodCgroupRoot(), forceStatsUpdate: updateStats}, } for sys, cont := range systemContainers { // skip if cgroup name is undefined (not all system containers are required) @@ -48,6 +50,11 @@ func (sp *summaryProviderImpl) GetSystemContainersStats(nodeConfig cm.NodeConfig // System containers don't have a filesystem associated with them. s.Logs, s.Rootfs = nil, nil s.Name = sys + + // if we know the start time of a system container, use that instead of the start time provided by cAdvisor + if !cont.startTime.IsZero() { + s.StartTime = cont.startTime + } stats = append(stats, *s) } @@ -58,11 +65,12 @@ func (sp *summaryProviderImpl) GetSystemContainersCPUAndMemoryStats(nodeConfig c systemContainers := map[string]struct { name string forceStatsUpdate bool + startTime metav1.Time }{ - statsapi.SystemContainerKubelet: {nodeConfig.KubeletCgroupsName, false}, - statsapi.SystemContainerRuntime: {nodeConfig.RuntimeCgroupsName, false}, - statsapi.SystemContainerMisc: {nodeConfig.SystemCgroupsName, false}, - statsapi.SystemContainerPods: {sp.provider.GetPodCgroupRoot(), updateStats}, + statsapi.SystemContainerKubelet: {name: nodeConfig.KubeletCgroupsName, forceStatsUpdate: false, startTime: sp.kubeletCreationTime}, + statsapi.SystemContainerRuntime: {name: nodeConfig.RuntimeCgroupsName, forceStatsUpdate: false}, + statsapi.SystemContainerMisc: {name: nodeConfig.SystemCgroupsName, forceStatsUpdate: false}, + statsapi.SystemContainerPods: {name: sp.provider.GetPodCgroupRoot(), forceStatsUpdate: updateStats}, } for sys, cont := range systemContainers { // skip if cgroup name is undefined (not all system containers are required) @@ -75,6 +83,11 @@ func (sp *summaryProviderImpl) GetSystemContainersCPUAndMemoryStats(nodeConfig c continue } s.Name = sys + + // if we know the start time of a system container, use that instead of the start time provided by cAdvisor + if !cont.startTime.IsZero() { + s.StartTime = cont.startTime + } stats = append(stats, *s) } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/server/stats/summary_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/server/stats/summary_test.go index d210298f5..081036855 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/server/stats/summary_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/server/stats/summary_test.go @@ -83,12 +83,14 @@ func TestSummaryProviderGetStats(t *testing.T) { On("GetCgroupStats", "/kubelet", false).Return(cgroupStatsMap["/kubelet"].cs, cgroupStatsMap["/kubelet"].ns, nil). On("GetCgroupStats", "/kubepods", true).Return(cgroupStatsMap["/pods"].cs, cgroupStatsMap["/pods"].ns, nil) - provider := NewSummaryProvider(mockStatsProvider) + kubeletCreationTime := metav1.Now() + systemBootTime := metav1.Now() + provider := summaryProviderImpl{kubeletCreationTime: kubeletCreationTime, systemBootTime: systemBootTime, provider: mockStatsProvider} summary, err := provider.Get(true) assert.NoError(err) assert.Equal(summary.Node.NodeName, "test-node") - assert.Equal(summary.Node.StartTime, cgroupStatsMap["/"].cs.StartTime) + assert.Equal(summary.Node.StartTime, systemBootTime) assert.Equal(summary.Node.CPU, cgroupStatsMap["/"].cs.CPU) assert.Equal(summary.Node.Memory, cgroupStatsMap["/"].cs.Memory) assert.Equal(summary.Node.Network, cgroupStatsMap["/"].ns) @@ -98,7 +100,7 @@ func TestSummaryProviderGetStats(t *testing.T) { assert.Equal(len(summary.Node.SystemContainers), 4) assert.Contains(summary.Node.SystemContainers, statsapi.ContainerStats{ Name: "kubelet", - StartTime: cgroupStatsMap["/kubelet"].cs.StartTime, + StartTime: kubeletCreationTime, CPU: cgroupStatsMap["/kubelet"].cs.CPU, Memory: cgroupStatsMap["/kubelet"].cs.Memory, Accelerators: cgroupStatsMap["/kubelet"].cs.Accelerators, diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/util/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/util/BUILD index 4165864e0..7b5900248 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/util/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/util/BUILD @@ -34,6 +34,8 @@ go_test( go_library( name = "go_default_library", srcs = [ + "boottime_util_darwin.go", + "boottime_util_linux.go", "doc.go", "util.go", "util_unix.go", diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/util/boottime_util_darwin.go b/vendor/k8s.io/kubernetes/pkg/kubelet/util/boottime_util_darwin.go new file mode 100644 index 000000000..09d3b8865 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/util/boottime_util_darwin.go @@ -0,0 +1,44 @@ +// +build darwin + +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package util + +import ( + "fmt" + "syscall" + "time" + "unsafe" + + "golang.org/x/sys/unix" +) + +// GetBootTime returns the time at which the machine was started, truncated to the nearest second +func GetBootTime() (time.Time, error) { + output, err := unix.SysctlRaw("kern.boottime") + if err != nil { + return time.Time{}, err + } + var timeval syscall.Timeval + if len(output) != int(unsafe.Sizeof(timeval)) { + return time.Time{}, fmt.Errorf("unexpected output when calling syscall kern.bootime. Expected len(output) to be %v, but got %v", + int(unsafe.Sizeof(timeval)), len(output)) + } + timeval = *(*syscall.Timeval)(unsafe.Pointer(&output[0])) + sec, nsec := timeval.Unix() + return time.Unix(sec, nsec).Truncate(time.Second), nil +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/util/boottime_util_linux.go b/vendor/k8s.io/kubernetes/pkg/kubelet/util/boottime_util_linux.go new file mode 100644 index 000000000..f00e7c06b --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/util/boottime_util_linux.go @@ -0,0 +1,36 @@ +// +build freebsd linux + +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package util + +import ( + "fmt" + "time" + + "golang.org/x/sys/unix" +) + +// GetBootTime returns the time at which the machine was started, truncated to the nearest second +func GetBootTime() (time.Time, error) { + currentTime := time.Now() + var info unix.Sysinfo_t + if err := unix.Sysinfo(&info); err != nil { + return time.Time{}, fmt.Errorf("error getting system uptime: %s", err) + } + return currentTime.Add(-time.Duration(info.Uptime) * time.Second).Truncate(time.Second), nil +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/util/util_unsupported.go b/vendor/k8s.io/kubernetes/pkg/kubelet/util/util_unsupported.go index 6661678ac..68a2bdf01 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/util/util_unsupported.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/util/util_unsupported.go @@ -45,3 +45,8 @@ func UnlockPath(fileHandles []uintptr) { func LocalEndpoint(path, file string) string { return "" } + +// GetBootTime empty implementation +func GetBootTime() (time.Time, error) { + return time.Time{}, fmt.Errorf("GetBootTime is unsupported in this build") +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/util/util_windows.go b/vendor/k8s.io/kubernetes/pkg/kubelet/util/util_windows.go index 7123728ff..92accc55e 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/util/util_windows.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/util/util_windows.go @@ -23,6 +23,7 @@ import ( "net" "net/url" "strings" + "syscall" "time" "github.com/Microsoft/go-winio" @@ -112,3 +113,15 @@ func LocalEndpoint(path, file string) string { } return u.String() + "//./pipe/" + file } + +var tickCount = syscall.NewLazyDLL("kernel32.dll").NewProc("GetTickCount64") + +// GetBootTime returns the time at which the machine was started, truncated to the nearest second +func GetBootTime() (time.Time, error) { + currentTime := time.Now() + output, _, err := tickCount.Call() + if errno, ok := err.(syscall.Errno); !ok || errno != 0 { + return time.Time{}, err + } + return currentTime.Add(-time.Duration(output) * time.Millisecond).Truncate(time.Second), nil +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/volumemanager/cache/desired_state_of_world.go b/vendor/k8s.io/kubernetes/pkg/kubelet/volumemanager/cache/desired_state_of_world.go index d4745ee0b..1c748505a 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/volumemanager/cache/desired_state_of_world.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/volumemanager/cache/desired_state_of_world.go @@ -203,11 +203,12 @@ func (dsw *desiredStateOfWorld) AddPodToVolume( var volumeName v1.UniqueVolumeName - // The unique volume name used depends on whether the volume is attachable + // The unique volume name used depends on whether the volume is attachable/device-mountable // or not. attachable := dsw.isAttachableVolume(volumeSpec) - if attachable { - // For attachable volumes, use the unique volume name as reported by + deviceMountable := dsw.isDeviceMountableVolume(volumeSpec) + if attachable || deviceMountable { + // For attachable/device-mountable volumes, use the unique volume name as reported by // the plugin. volumeName, err = util.GetUniqueVolumeNameFromSpec(volumePlugin, volumeSpec) @@ -219,13 +220,11 @@ func (dsw *desiredStateOfWorld) AddPodToVolume( err) } } else { - // For non-attachable volumes, generate a unique name based on the pod + // For non-attachable and non-device-mountable volumes, generate a unique name based on the pod // namespace and name and the name of the volume within the pod. - volumeName = util.GetUniqueVolumeNameForNonAttachableVolume(podName, volumePlugin, volumeSpec) + volumeName = util.GetUniqueVolumeNameFromSpecWithPod(podName, volumePlugin, volumeSpec) } - deviceMountable := dsw.isDeviceMountableVolume(volumeSpec) - if _, volumeExists := dsw.volumesToMount[volumeName]; !volumeExists { dsw.volumesToMount[volumeName] = volumeToMount{ volumeName: volumeName, diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/volumemanager/cache/desired_state_of_world_test.go b/vendor/k8s.io/kubernetes/pkg/kubelet/volumemanager/cache/desired_state_of_world_test.go index 42707169d..b7df00631 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/volumemanager/cache/desired_state_of_world_test.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/volumemanager/cache/desired_state_of_world_test.go @@ -117,6 +117,168 @@ func Test_AddPodToVolume_Positive_ExistingPodExistingVolume(t *testing.T) { verifyVolumeExistsWithSpecNameInVolumeDsw(t, podName, volumeSpec.Name(), dsw) } +// Call AddPodToVolume() on different pods for different kinds of volumes +// Verities generated names are same for different pods if volume is device mountable or attachable +// Verities generated names are different for different pods if volume is not device mountble and attachable +func Test_AddPodToVolume_Positive_NamesForDifferentPodsAndDifferentVolumes(t *testing.T) { + // Arrange + fakeVolumeHost := volumetesting.NewFakeVolumeHost( + "", /* rootDir */ + nil, /* kubeClient */ + nil, /* plugins */ + ) + plugins := []volume.VolumePlugin{ + &volumetesting.FakeBasicVolumePlugin{ + Plugin: volumetesting.FakeVolumePlugin{ + PluginName: "basic", + }, + }, + &volumetesting.FakeDeviceMountableVolumePlugin{ + FakeBasicVolumePlugin: volumetesting.FakeBasicVolumePlugin{ + Plugin: volumetesting.FakeVolumePlugin{ + PluginName: "device-mountable", + }, + }, + }, + &volumetesting.FakeAttachableVolumePlugin{ + FakeDeviceMountableVolumePlugin: volumetesting.FakeDeviceMountableVolumePlugin{ + FakeBasicVolumePlugin: volumetesting.FakeBasicVolumePlugin{ + Plugin: volumetesting.FakeVolumePlugin{ + PluginName: "attachable", + }, + }, + }, + }, + } + volumePluginMgr := volume.VolumePluginMgr{} + volumePluginMgr.InitPlugins(plugins, nil /* prober */, fakeVolumeHost) + dsw := NewDesiredStateOfWorld(&volumePluginMgr) + + testcases := map[string]struct { + pod1 *v1.Pod + pod2 *v1.Pod + same bool + }{ + "basic": { + &v1.Pod{ + ObjectMeta: metav1.ObjectMeta{ + Name: "pod1", + UID: "pod1uid", + }, + Spec: v1.PodSpec{ + Volumes: []v1.Volume{ + { + Name: "basic", + VolumeSource: v1.VolumeSource{}, + }, + }, + }, + }, + &v1.Pod{ + ObjectMeta: metav1.ObjectMeta{ + Name: "pod2", + UID: "pod2uid", + }, + Spec: v1.PodSpec{ + Volumes: []v1.Volume{ + { + Name: "basic", + VolumeSource: v1.VolumeSource{}, + }, + }, + }, + }, + false, + }, + "device-mountable": { + &v1.Pod{ + ObjectMeta: metav1.ObjectMeta{ + Name: "pod1", + UID: "pod1uid", + }, + Spec: v1.PodSpec{ + Volumes: []v1.Volume{ + { + Name: "device-mountable", + VolumeSource: v1.VolumeSource{}, + }, + }, + }, + }, + &v1.Pod{ + ObjectMeta: metav1.ObjectMeta{ + Name: "pod2", + UID: "pod2uid", + }, + Spec: v1.PodSpec{ + Volumes: []v1.Volume{ + { + Name: "device-mountable", + VolumeSource: v1.VolumeSource{}, + }, + }, + }, + }, + true, + }, + "attachable": { + &v1.Pod{ + ObjectMeta: metav1.ObjectMeta{ + Name: "pod1", + UID: "pod1uid", + }, + Spec: v1.PodSpec{ + Volumes: []v1.Volume{ + { + Name: "attachable", + VolumeSource: v1.VolumeSource{}, + }, + }, + }, + }, + &v1.Pod{ + ObjectMeta: metav1.ObjectMeta{ + Name: "pod2", + UID: "pod2uid", + }, + Spec: v1.PodSpec{ + Volumes: []v1.Volume{ + { + Name: "attachable", + VolumeSource: v1.VolumeSource{}, + }, + }, + }, + }, + true, + }, + } + + // Act & Assert + for name, v := range testcases { + volumeSpec1 := &volume.Spec{Volume: &v.pod1.Spec.Volumes[0]} + volumeSpec2 := &volume.Spec{Volume: &v.pod2.Spec.Volumes[0]} + generatedVolumeName1, err1 := dsw.AddPodToVolume(util.GetUniquePodName(v.pod1), v.pod1, volumeSpec1, volumeSpec1.Name(), "") + generatedVolumeName2, err2 := dsw.AddPodToVolume(util.GetUniquePodName(v.pod2), v.pod2, volumeSpec2, volumeSpec2.Name(), "") + if err1 != nil { + t.Fatalf("test %q: AddPodToVolume failed. Expected: Actual: <%v>", name, err1) + } + if err2 != nil { + t.Fatalf("test %q: AddPodToVolume failed. Expected: Actual: <%v>", name, err2) + } + if v.same { + if generatedVolumeName1 != generatedVolumeName2 { + t.Fatalf("test %q: AddPodToVolume should generate same names, but got %q != %q", name, generatedVolumeName1, generatedVolumeName2) + } + } else { + if generatedVolumeName1 == generatedVolumeName2 { + t.Fatalf("test %q: AddPodToVolume should generate different names, but got %q == %q", name, generatedVolumeName1, generatedVolumeName2) + } + } + } + +} + // Populates data struct with a new volume/pod // Calls DeletePodFromVolume() to removes the pod // Verifies newly added pod/volume are deleted diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/volumemanager/reconciler/reconciler.go b/vendor/k8s.io/kubernetes/pkg/kubelet/volumemanager/reconciler/reconciler.go index 1b6bbbfbe..f57d6bf26 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/volumemanager/reconciler/reconciler.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/volumemanager/reconciler/reconciler.go @@ -455,6 +455,10 @@ func (rc *reconciler) reconstructVolume(volume podVolume) (*reconstructedVolume, if err != nil { return nil, err } + deviceMountablePlugin, err := rc.volumePluginMgr.FindDeviceMountablePluginByName(volume.pluginName) + if err != nil { + return nil, err + } // Create pod object pod := &v1.Pod{ @@ -480,13 +484,13 @@ func (rc *reconciler) reconstructVolume(volume podVolume) (*reconstructedVolume, } var uniqueVolumeName v1.UniqueVolumeName - if attachablePlugin != nil { + if attachablePlugin != nil || deviceMountablePlugin != nil { uniqueVolumeName, err = util.GetUniqueVolumeNameFromSpec(plugin, volumeSpec) if err != nil { return nil, err } } else { - uniqueVolumeName = util.GetUniqueVolumeNameForNonAttachableVolume(volume.podName, plugin, volumeSpec) + uniqueVolumeName = util.GetUniqueVolumeNameFromSpecWithPod(volume.podName, plugin, volumeSpec) } // Check existence of mount point for filesystem volume or symbolic link for block volume isExist, checkErr := rc.operationExecutor.CheckVolumeExistenceOperation(volumeSpec, volume.mountPath, volumeSpec.Name(), rc.mounter, uniqueVolumeName, volume.podName, pod.UID, attachablePlugin) diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/graceful_termination.go b/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/graceful_termination.go index d9357d2c6..4d53d4ee7 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/graceful_termination.go +++ b/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/graceful_termination.go @@ -75,10 +75,10 @@ func (q *graceTerminateRSList) remove(rs *listItem) bool { uniqueRS := rs.String() if _, ok := q.list[uniqueRS]; ok { - return false + delete(q.list, uniqueRS) + return true } - delete(q.list, uniqueRS) - return true + return false } func (q *graceTerminateRSList) flushList(handler func(rsToDelete *listItem) (bool, error)) bool { @@ -164,7 +164,11 @@ func (m *GracefulTerminationManager) deleteRsFunc(rsToDelete *listItem) (bool, e } for _, rs := range rss { if rsToDelete.RealServer.Equal(rs) { - if rs.ActiveConn != 0 { + // Delete RS with no connections + // For UDP, ActiveConn is always 0 + // For TCP, InactiveConn are connections not in ESTABLISHED state + if rs.ActiveConn+rs.InactiveConn != 0 { + klog.Infof("Not deleting, RS %v: %v ActiveConn, %v InactiveConn", rsToDelete.String(), rs.ActiveConn, rs.InactiveConn) return false, nil } klog.Infof("Deleting rs: %s", rsToDelete.String()) diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/proxier.go b/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/proxier.go index 242a6025c..9ca7e059d 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/proxier.go +++ b/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/proxier.go @@ -162,6 +162,8 @@ const sysctlRouteLocalnet = "net/ipv4/conf/all/route_localnet" const sysctlBridgeCallIPTables = "net/bridge/bridge-nf-call-iptables" const sysctlVSConnTrack = "net/ipv4/vs/conntrack" const sysctlConnReuse = "net/ipv4/vs/conn_reuse_mode" +const sysctlExpireNoDestConn = "net/ipv4/vs/expire_nodest_conn" +const sysctlExpireQuiescentTemplate = "net/ipv4/vs/expire_quiescent_template" const sysctlForward = "net/ipv4/ip_forward" const sysctlArpIgnore = "net/ipv4/conf/all/arp_ignore" const sysctlArpAnnounce = "net/ipv4/conf/all/arp_announce" @@ -321,6 +323,20 @@ func NewProxier(ipt utiliptables.Interface, } } + // Set the expire_nodest_conn sysctl we need for + if val, _ := sysctl.GetSysctl(sysctlExpireNoDestConn); val != 1 { + if err := sysctl.SetSysctl(sysctlExpireNoDestConn, 1); err != nil { + return nil, fmt.Errorf("can't set sysctl %s: %v", sysctlExpireNoDestConn, err) + } + } + + // Set the expire_quiescent_template sysctl we need for + if val, _ := sysctl.GetSysctl(sysctlExpireQuiescentTemplate); val != 1 { + if err := sysctl.SetSysctl(sysctlExpireQuiescentTemplate, 1); err != nil { + return nil, fmt.Errorf("can't set sysctl %s: %v", sysctlExpireQuiescentTemplate, err) + } + } + // Set the ip_forward sysctl we need for if val, _ := sysctl.GetSysctl(sysctlForward); val != 1 { if err := sysctl.SetSysctl(sysctlForward, 1); err != nil { @@ -1190,7 +1206,15 @@ func (proxier *Proxier) syncProxyRules() { } proxier.portsMap = replacementPortsMap - // Clean up legacy IPVS services + // Get legacy bind address + // currentBindAddrs represents ip addresses bind to DefaultDummyDevice from the system + currentBindAddrs, err := proxier.netlinkHandle.ListBindAddress(DefaultDummyDevice) + if err != nil { + klog.Errorf("Failed to get bind address, err: %v", err) + } + legacyBindAddrs := proxier.getLegacyBindAddr(activeBindAddrs, currentBindAddrs) + + // Clean up legacy IPVS services and unbind addresses appliedSvcs, err := proxier.ipvs.GetVirtualServers() if err == nil { for _, appliedSvc := range appliedSvcs { @@ -1199,15 +1223,7 @@ func (proxier *Proxier) syncProxyRules() { } else { klog.Errorf("Failed to get ipvs service, err: %v", err) } - proxier.cleanLegacyService(activeIPVSServices, currentIPVSServices) - - // Clean up legacy bind address - // currentBindAddrs represents ip addresses bind to DefaultDummyDevice from the system - currentBindAddrs, err := proxier.netlinkHandle.ListBindAddress(DefaultDummyDevice) - if err != nil { - klog.Errorf("Failed to get bind address, err: %v", err) - } - proxier.cleanLegacyBindAddr(activeBindAddrs, currentBindAddrs) + proxier.cleanLegacyService(activeIPVSServices, currentIPVSServices, legacyBindAddrs) // Update healthz timestamp if proxier.healthzServer != nil { @@ -1602,32 +1618,41 @@ func (proxier *Proxier) syncEndpoint(svcPortName proxy.ServicePortName, onlyNode Port: uint16(portNum), } - klog.V(5).Infof("Using graceful delete to delete: %v", delDest) + klog.V(5).Infof("Using graceful delete to delete: %v", uniqueRS) err = proxier.gracefuldeleteManager.GracefulDeleteRS(appliedVirtualServer, delDest) if err != nil { - klog.Errorf("Failed to delete destination: %v, error: %v", delDest, err) + klog.Errorf("Failed to delete destination: %v, error: %v", uniqueRS, err) continue } } return nil } -func (proxier *Proxier) cleanLegacyService(activeServices map[string]bool, currentServices map[string]*utilipvs.VirtualServer) { +func (proxier *Proxier) cleanLegacyService(activeServices map[string]bool, currentServices map[string]*utilipvs.VirtualServer, legacyBindAddrs map[string]bool) { for cs := range currentServices { svc := currentServices[cs] if _, ok := activeServices[cs]; !ok { // This service was not processed in the latest sync loop so before deleting it, - // make sure it does not fall within an excluded CIDR range. okayToDelete := true rsList, _ := proxier.ipvs.GetRealServers(svc) + + // If we still have real servers graceful termination is not done + if len(rsList) > 0 { + okayToDelete = false + } + // Applying graceful termination to all real servers for _, rs := range rsList { uniqueRS := GetUniqueRSName(svc, rs) - // if there are in terminating real server in this service, then handle it later + // If RS is already in the graceful termination list, no need to add it again if proxier.gracefuldeleteManager.InTerminationList(uniqueRS) { - okayToDelete = false - break + continue + } + klog.V(5).Infof("Using graceful delete to delete: %v", uniqueRS) + if err := proxier.gracefuldeleteManager.GracefulDeleteRS(svc, rs); err != nil { + klog.Errorf("Failed to delete destination: %v, error: %v", uniqueRS, err) } } + // make sure it does not fall within an excluded CIDR range. for _, excludedCIDR := range proxier.excludeCIDRs { // Any validation of this CIDR already should have occurred. _, n, _ := net.ParseCIDR(excludedCIDR) @@ -1637,26 +1662,33 @@ func (proxier *Proxier) cleanLegacyService(activeServices map[string]bool, curre } } if okayToDelete { + klog.V(4).Infof("Delete service %s", svc.String()) if err := proxier.ipvs.DeleteVirtualServer(svc); err != nil { - klog.Errorf("Failed to delete service, error: %v", err) + klog.Errorf("Failed to delete service %s, error: %v", svc.String(), err) + } + addr := svc.Address.String() + if _, ok := legacyBindAddrs[addr]; ok { + klog.V(4).Infof("Unbinding address %s", addr) + if err := proxier.netlinkHandle.UnbindAddress(addr, DefaultDummyDevice); err != nil { + klog.Errorf("Failed to unbind service addr %s from dummy interface %s: %v", addr, DefaultDummyDevice, err) + } else { + // In case we delete a multi-port service, avoid trying to unbind multiple times + delete(legacyBindAddrs, addr) + } } } } } } -func (proxier *Proxier) cleanLegacyBindAddr(activeBindAddrs map[string]bool, currentBindAddrs []string) { +func (proxier *Proxier) getLegacyBindAddr(activeBindAddrs map[string]bool, currentBindAddrs []string) map[string]bool { + legacyAddrs := make(map[string]bool) for _, addr := range currentBindAddrs { if _, ok := activeBindAddrs[addr]; !ok { - // This address was not processed in the latest sync loop - klog.V(4).Infof("Unbind addr %s", addr) - err := proxier.netlinkHandle.UnbindAddress(addr, DefaultDummyDevice) - // Ignore no such address error when try to unbind address - if err != nil { - klog.Errorf("Failed to unbind service addr %s from dummy interface %s: %v", addr, DefaultDummyDevice, err) - } + legacyAddrs[addr] = true } } + return legacyAddrs } // Join all words with spaces, terminate with newline and write to buff. diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/proxier_test.go b/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/proxier_test.go index 921ff01f0..0b95a4e52 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/proxier_test.go +++ b/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/proxier_test.go @@ -23,7 +23,6 @@ import ( "reflect" "strings" "testing" - "time" "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -126,7 +125,7 @@ func (fakeSysctl *FakeSysctl) SetSysctl(sysctl string, newVal int) error { return nil } -func NewFakeProxier(ipt utiliptables.Interface, ipvs utilipvs.Interface, ipset utilipset.Interface, nodeIPs []net.IP) *Proxier { +func NewFakeProxier(ipt utiliptables.Interface, ipvs utilipvs.Interface, ipset utilipset.Interface, nodeIPs []net.IP, excludeCIDRs []string) *Proxier { fcmd := fakeexec.FakeCmd{ CombinedOutputScript: []fakeexec.FakeCombinedOutputAction{ func() ([]byte, error) { return []byte("dummy device have been created"), nil }, @@ -151,7 +150,7 @@ func NewFakeProxier(ipt utiliptables.Interface, ipvs utilipvs.Interface, ipset u serviceChanges: proxy.NewServiceChangeTracker(newServiceInfo, nil, nil), endpointsMap: make(proxy.EndpointsMap), endpointsChanges: proxy.NewEndpointChangeTracker(testHostname, nil, nil, nil), - excludeCIDRs: make([]string, 0), + excludeCIDRs: excludeCIDRs, iptables: ipt, ipvs: ipvs, ipset: ipset, @@ -228,7 +227,7 @@ func TestCleanupLeftovers(t *testing.T) { ipt := iptablestest.NewFake() ipvs := ipvstest.NewFake() ipset := ipsettest.NewFake(testIPSetVersion) - fp := NewFakeProxier(ipt, ipvs, ipset, nil) + fp := NewFakeProxier(ipt, ipvs, ipset, nil, nil) svcIP := "10.20.30.41" svcPort := 80 svcNodePort := 3001 @@ -418,7 +417,7 @@ func TestNodePortUDP(t *testing.T) { ipt := iptablestest.NewFake() ipvs := ipvstest.NewFake() ipset := ipsettest.NewFake(testIPSetVersion) - fp := NewFakeProxier(ipt, ipvs, ipset, []net.IP{nodeIP}) + fp := NewFakeProxier(ipt, ipvs, ipset, []net.IP{nodeIP}, nil) svcIP := "10.20.30.41" svcPort := 80 @@ -495,7 +494,7 @@ func TestNodePort(t *testing.T) { nodeIPv4 := net.ParseIP("100.101.102.103") nodeIPv6 := net.ParseIP("2001:db8::1:1") nodeIPs := sets.NewString(nodeIPv4.String(), nodeIPv6.String()) - fp := NewFakeProxier(ipt, ipvs, ipset, []net.IP{nodeIPv4, nodeIPv6}) + fp := NewFakeProxier(ipt, ipvs, ipset, []net.IP{nodeIPv4, nodeIPv6}, nil) svcIP := "10.20.30.41" svcPort := 80 svcNodePort := 3001 @@ -573,7 +572,7 @@ func TestNodePortNoEndpoint(t *testing.T) { ipvs := ipvstest.NewFake() ipset := ipsettest.NewFake(testIPSetVersion) nodeIP := net.ParseIP("100.101.102.103") - fp := NewFakeProxier(ipt, ipvs, ipset, []net.IP{nodeIP}) + fp := NewFakeProxier(ipt, ipvs, ipset, []net.IP{nodeIP}, nil) svcIP := "10.20.30.41" svcPort := 80 svcNodePort := 3001 @@ -628,7 +627,7 @@ func TestClusterIPNoEndpoint(t *testing.T) { ipt := iptablestest.NewFake() ipvs := ipvstest.NewFake() ipset := ipsettest.NewFake(testIPSetVersion) - fp := NewFakeProxier(ipt, ipvs, ipset, nil) + fp := NewFakeProxier(ipt, ipvs, ipset, nil, nil) svcIP := "10.20.30.41" svcPort := 80 svcPortName := proxy.ServicePortName{ @@ -672,7 +671,7 @@ func TestClusterIP(t *testing.T) { ipt := iptablestest.NewFake() ipvs := ipvstest.NewFake() ipset := ipsettest.NewFake(testIPSetVersion) - fp := NewFakeProxier(ipt, ipvs, ipset, nil) + fp := NewFakeProxier(ipt, ipvs, ipset, nil, nil) svcIPv4 := "10.20.30.41" svcPortV4 := 80 @@ -779,7 +778,7 @@ func TestExternalIPsNoEndpoint(t *testing.T) { ipt := iptablestest.NewFake() ipvs := ipvstest.NewFake() ipset := ipsettest.NewFake(testIPSetVersion) - fp := NewFakeProxier(ipt, ipvs, ipset, nil) + fp := NewFakeProxier(ipt, ipvs, ipset, nil, nil) svcIP := "10.20.30.41" svcPort := 80 svcExternalIPs := "50.60.70.81" @@ -834,7 +833,7 @@ func TestExternalIPs(t *testing.T) { ipt := iptablestest.NewFake() ipvs := ipvstest.NewFake() ipset := ipsettest.NewFake(testIPSetVersion) - fp := NewFakeProxier(ipt, ipvs, ipset, nil) + fp := NewFakeProxier(ipt, ipvs, ipset, nil, nil) svcIP := "10.20.30.41" svcPort := 80 svcExternalIPs := sets.NewString("50.60.70.81", "2012::51", "127.0.0.1") @@ -1338,7 +1337,7 @@ func TestBuildServiceMapAddRemove(t *testing.T) { ipt := iptablestest.NewFake() ipvs := ipvstest.NewFake() ipset := ipsettest.NewFake(testIPSetVersion) - fp := NewFakeProxier(ipt, ipvs, ipset, nil) + fp := NewFakeProxier(ipt, ipvs, ipset, nil, nil) services := []*v1.Service{ makeTestService("somewhere-else", "cluster-ip", func(svc *v1.Service) { @@ -1448,7 +1447,7 @@ func TestBuildServiceMapServiceHeadless(t *testing.T) { ipt := iptablestest.NewFake() ipvs := ipvstest.NewFake() ipset := ipsettest.NewFake(testIPSetVersion) - fp := NewFakeProxier(ipt, ipvs, ipset, nil) + fp := NewFakeProxier(ipt, ipvs, ipset, nil, nil) makeServiceMap(fp, makeTestService("somewhere-else", "headless", func(svc *v1.Service) { @@ -1487,7 +1486,7 @@ func TestBuildServiceMapServiceTypeExternalName(t *testing.T) { ipt := iptablestest.NewFake() ipvs := ipvstest.NewFake() ipset := ipsettest.NewFake(testIPSetVersion) - fp := NewFakeProxier(ipt, ipvs, ipset, nil) + fp := NewFakeProxier(ipt, ipvs, ipset, nil, nil) makeServiceMap(fp, makeTestService("somewhere-else", "external-name", func(svc *v1.Service) { @@ -1515,7 +1514,7 @@ func TestBuildServiceMapServiceUpdate(t *testing.T) { ipt := iptablestest.NewFake() ipvs := ipvstest.NewFake() ipset := ipsettest.NewFake(testIPSetVersion) - fp := NewFakeProxier(ipt, ipvs, ipset, nil) + fp := NewFakeProxier(ipt, ipvs, ipset, nil, nil) servicev1 := makeTestService("somewhere", "some-service", func(svc *v1.Service) { svc.Spec.Type = v1.ServiceTypeClusterIP @@ -1599,7 +1598,7 @@ func TestSessionAffinity(t *testing.T) { ipvs := ipvstest.NewFake() ipset := ipsettest.NewFake(testIPSetVersion) nodeIP := net.ParseIP("100.101.102.103") - fp := NewFakeProxier(ipt, ipvs, ipset, []net.IP{nodeIP}) + fp := NewFakeProxier(ipt, ipvs, ipset, []net.IP{nodeIP}, nil) svcIP := "10.20.30.41" svcPort := 80 svcNodePort := 3001 @@ -2462,7 +2461,7 @@ func Test_updateEndpointsMap(t *testing.T) { ipt := iptablestest.NewFake() ipvs := ipvstest.NewFake() ipset := ipsettest.NewFake(testIPSetVersion) - fp := NewFakeProxier(ipt, ipvs, ipset, nil) + fp := NewFakeProxier(ipt, ipvs, ipset, nil, nil) fp.hostname = nodeName // First check that after adding all previous versions of endpoints, @@ -2706,7 +2705,7 @@ func Test_syncService(t *testing.T) { ipt := iptablestest.NewFake() ipvs := ipvstest.NewFake() ipset := ipsettest.NewFake(testIPSetVersion) - proxier := NewFakeProxier(ipt, ipvs, ipset, nil) + proxier := NewFakeProxier(ipt, ipvs, ipset, nil, nil) proxier.netlinkHandle.EnsureDummyDevice(DefaultDummyDevice) if testCases[i].oldVirtualServer != nil { @@ -2736,7 +2735,7 @@ func buildFakeProxier() (*iptablestest.FakeIPTables, *Proxier) { ipt := iptablestest.NewFake() ipvs := ipvstest.NewFake() ipset := ipsettest.NewFake(testIPSetVersion) - return ipt, NewFakeProxier(ipt, ipvs, ipset, nil) + return ipt, NewFakeProxier(ipt, ipvs, ipset, nil, nil) } func hasJump(rules []iptablestest.Rule, destChain, ipSet string) bool { @@ -2806,33 +2805,10 @@ func checkIPVS(t *testing.T, fp *Proxier, vs *netlinktest.ExpectedVirtualServer) } func TestCleanLegacyService(t *testing.T) { - execer := exec.New() ipt := iptablestest.NewFake() ipvs := ipvstest.NewFake() ipset := ipsettest.NewFake(testIPSetVersion) - excludeCIDRs := []string{"3.3.3.0/24", "4.4.4.0/24"} - proxier, err := NewProxier( - ipt, - ipvs, - ipset, - NewFakeSysctl(), - execer, - 250*time.Millisecond, - 100*time.Millisecond, - excludeCIDRs, - false, - 0, - "10.0.0.0/24", - testHostname, - net.ParseIP("127.0.0.1"), - nil, - nil, - DefaultScheduler, - make([]string, 0), - ) - if err != nil { - t.Errorf("Unexpected error: %v", err) - } + fp := NewFakeProxier(ipt, ipvs, ipset, nil, []string{"3.3.3.0/24", "4.4.4.0/24"}) // All ipvs services that were processed in the latest sync loop. activeServices := map[string]bool{"ipvs0": true, "ipvs1": true} @@ -2888,15 +2864,22 @@ func TestCleanLegacyService(t *testing.T) { }, } for v := range currentServices { - proxier.ipvs.AddVirtualServer(currentServices[v]) + fp.ipvs.AddVirtualServer(currentServices[v]) } - proxier.cleanLegacyService(activeServices, currentServices) + + fp.netlinkHandle.EnsureDummyDevice(DefaultDummyDevice) + activeBindAddrs := map[string]bool{"1.1.1.1": true, "2.2.2.2": true, "3.3.3.3": true, "4.4.4.4": true} + currentBindAddrs := []string{"1.1.1.1", "2.2.2.2", "3.3.3.3", "4.4.4.4", "5.5.5.5", "6.6.6.6"} + for i := range currentBindAddrs { + fp.netlinkHandle.EnsureAddressBind(currentBindAddrs[i], DefaultDummyDevice) + } + + fp.cleanLegacyService(activeServices, currentServices, map[string]bool{"5.5.5.5": true, "6.6.6.6": true}) // ipvs4 and ipvs5 should have been cleaned. - remainingVirtualServers, _ := proxier.ipvs.GetVirtualServers() + remainingVirtualServers, _ := fp.ipvs.GetVirtualServers() if len(remainingVirtualServers) != 4 { t.Errorf("Expected number of remaining IPVS services after cleanup to be %v. Got %v", 4, len(remainingVirtualServers)) } - for _, vs := range remainingVirtualServers { // Checking that ipvs4 and ipvs5 were removed. if vs.Port == 57 { @@ -2906,33 +2889,13 @@ func TestCleanLegacyService(t *testing.T) { t.Errorf("Expected ipvs5 to be removed after cleanup. It still remains") } } -} - -func TestCleanLegacyBindAddr(t *testing.T) { - ipt := iptablestest.NewFake() - ipvs := ipvstest.NewFake() - ipset := ipsettest.NewFake(testIPSetVersion) - fp := NewFakeProxier(ipt, ipvs, ipset, nil) - - // All ipvs service addresses that were bound to ipvs0 in the latest sync loop. - activeBindAddrs := map[string]bool{"1.2.3.4": true, "1002:ab8::2:1": true} - // All service addresses that were bound to ipvs0 in system - currentBindAddrs := []string{"1.2.3.4", "1.2.3.5", "1.2.3.6", "1002:ab8::2:1", "1002:ab8::2:2"} - - fp.netlinkHandle.EnsureDummyDevice(DefaultDummyDevice) - - for i := range currentBindAddrs { - fp.netlinkHandle.EnsureAddressBind(currentBindAddrs[i], DefaultDummyDevice) - } - fp.cleanLegacyBindAddr(activeBindAddrs, currentBindAddrs) + // Addresses 5.5.5.5 and 6.6.6.6 should not be bound any more remainingAddrs, _ := fp.netlinkHandle.ListBindAddress(DefaultDummyDevice) - // should only remain "1.2.3.4" and "1002:ab8::2:1" - if len(remainingAddrs) != 2 { - t.Errorf("Expected number of remaining bound addrs after cleanup to be %v. Got %v", 2, len(remainingAddrs)) + if len(remainingAddrs) != 4 { + t.Errorf("Expected number of remaining bound addrs after cleanup to be %v. Got %v", 4, len(remainingAddrs)) } - - // check that address "1.2.3.4" and "1002:ab8::2:1" remain + // check that address "1.1.1.1", "2.2.2.2", "3.3.3.3", "4.4.4.4" are still bound remainingAddrsMap := make(map[string]bool) for i := range remainingAddrs { remainingAddrsMap[remainingAddrs[i]] = true @@ -2940,13 +2903,14 @@ func TestCleanLegacyBindAddr(t *testing.T) { if !reflect.DeepEqual(activeBindAddrs, remainingAddrsMap) { t.Errorf("Expected remainingAddrsMap %v, got %v", activeBindAddrs, remainingAddrsMap) } + } func TestMultiPortServiceBindAddr(t *testing.T) { ipt := iptablestest.NewFake() ipvs := ipvstest.NewFake() ipset := ipsettest.NewFake(testIPSetVersion) - fp := NewFakeProxier(ipt, ipvs, ipset, nil) + fp := NewFakeProxier(ipt, ipvs, ipset, nil, nil) service1 := makeTestService("ns1", "svc1", func(svc *v1.Service) { svc.Spec.Type = v1.ServiceTypeClusterIP diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/util/utils.go b/vendor/k8s.io/kubernetes/pkg/proxy/util/utils.go index f1db309a9..2c1408da4 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/util/utils.go +++ b/vendor/k8s.io/kubernetes/pkg/proxy/util/utils.go @@ -17,6 +17,8 @@ limitations under the License. package util import ( + "context" + "errors" "fmt" "net" @@ -35,6 +37,11 @@ const ( IPv6ZeroCIDR = "::/0" ) +var ( + ErrAddressNotAllowed = errors.New("address not allowed") + ErrNoAddresses = errors.New("No addresses for hostname") +) + func IsZeroCIDR(cidr string) bool { if cidr == IPv4ZeroCIDR || cidr == IPv6ZeroCIDR { return true @@ -42,6 +49,46 @@ func IsZeroCIDR(cidr string) bool { return false } +// IsProxyableIP checks if a given IP address is permitted to be proxied +func IsProxyableIP(ip string) error { + netIP := net.ParseIP(ip) + if netIP == nil { + return ErrAddressNotAllowed + } + return isProxyableIP(netIP) +} + +func isProxyableIP(ip net.IP) error { + if ip.IsLoopback() || ip.IsLinkLocalUnicast() || ip.IsLinkLocalMulticast() || ip.IsInterfaceLocalMulticast() { + return ErrAddressNotAllowed + } + return nil +} + +// Resolver is an interface for net.Resolver +type Resolver interface { + LookupIPAddr(ctx context.Context, host string) ([]net.IPAddr, error) +} + +// IsProxyableHostname checks if the IP addresses for a given hostname are permitted to be proxied +func IsProxyableHostname(ctx context.Context, resolv Resolver, hostname string) error { + resp, err := resolv.LookupIPAddr(ctx, hostname) + if err != nil { + return err + } + + if len(resp) == 0 { + return ErrNoAddresses + } + + for _, host := range resp { + if err := isProxyableIP(host.IP); err != nil { + return err + } + } + return nil +} + func IsLocalIP(ip string) (bool, error) { addrs, err := net.InterfaceAddrs() if err != nil { diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/util/utils_test.go b/vendor/k8s.io/kubernetes/pkg/proxy/util/utils_test.go index 0f4c19f2e..891a3520f 100644 --- a/vendor/k8s.io/kubernetes/pkg/proxy/util/utils_test.go +++ b/vendor/k8s.io/kubernetes/pkg/proxy/util/utils_test.go @@ -17,6 +17,7 @@ limitations under the License. package util import ( + "context" "net" "testing" @@ -27,6 +28,74 @@ import ( fake "k8s.io/kubernetes/pkg/proxy/util/testing" ) +func TestIsProxyableIP(t *testing.T) { + testCases := []struct { + ip string + want error + }{ + {"127.0.0.1", ErrAddressNotAllowed}, + {"127.0.0.2", ErrAddressNotAllowed}, + {"169.254.169.254", ErrAddressNotAllowed}, + {"169.254.1.1", ErrAddressNotAllowed}, + {"224.0.0.0", ErrAddressNotAllowed}, + {"10.0.0.1", nil}, + {"192.168.0.1", nil}, + {"172.16.0.1", nil}, + {"8.8.8.8", nil}, + {"::1", ErrAddressNotAllowed}, + {"fe80::", ErrAddressNotAllowed}, + {"ff02::", ErrAddressNotAllowed}, + {"ff01::", ErrAddressNotAllowed}, + {"2600::", nil}, + {"1", ErrAddressNotAllowed}, + {"", ErrAddressNotAllowed}, + } + + for i := range testCases { + got := IsProxyableIP(testCases[i].ip) + if testCases[i].want != got { + t.Errorf("case %d: expected %v, got %v", i, testCases[i].want, got) + } + } +} + +type dummyResolver struct { + ips []string + err error +} + +func (r *dummyResolver) LookupIPAddr(ctx context.Context, host string) ([]net.IPAddr, error) { + if r.err != nil { + return nil, r.err + } + resp := []net.IPAddr{} + for _, ipString := range r.ips { + resp = append(resp, net.IPAddr{IP: net.ParseIP(ipString)}) + } + return resp, nil +} + +func TestIsProxyableHostname(t *testing.T) { + testCases := []struct { + hostname string + ips []string + want error + }{ + {"k8s.io", []string{}, ErrNoAddresses}, + {"k8s.io", []string{"8.8.8.8"}, nil}, + {"k8s.io", []string{"169.254.169.254"}, ErrAddressNotAllowed}, + {"k8s.io", []string{"127.0.0.1", "8.8.8.8"}, ErrAddressNotAllowed}, + } + + for i := range testCases { + resolv := dummyResolver{ips: testCases[i].ips} + got := IsProxyableHostname(context.Background(), &resolv, testCases[i].hostname) + if testCases[i].want != got { + t.Errorf("case %d: expected %v, got %v", i, testCases[i].want, got) + } + } +} + func TestShouldSkipService(t *testing.T) { testCases := []struct { service *v1.Service diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/node/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/core/node/BUILD index e026fe00b..0819655b3 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/node/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/node/BUILD @@ -19,6 +19,7 @@ go_library( "//pkg/apis/core/validation:go_default_library", "//pkg/features:go_default_library", "//pkg/kubelet/client:go_default_library", + "//pkg/proxy/util:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/fields:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/node/strategy.go b/vendor/k8s.io/kubernetes/pkg/registry/core/node/strategy.go index 72828b489..1287f93de 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/node/strategy.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/node/strategy.go @@ -40,6 +40,7 @@ import ( "k8s.io/kubernetes/pkg/apis/core/validation" "k8s.io/kubernetes/pkg/features" "k8s.io/kubernetes/pkg/kubelet/client" + proxyutil "k8s.io/kubernetes/pkg/proxy/util" ) // nodeStrategy implements behavior for nodes @@ -217,6 +218,10 @@ func ResourceLocation(getter ResourceGetter, connection client.ConnectionInfoGet nil } + if err := proxyutil.IsProxyableHostname(ctx, &net.Resolver{}, info.Hostname); err != nil { + return nil, nil, errors.NewBadRequest(err.Error()) + } + // Otherwise, return the requested scheme and port, and the proxy transport return &url.URL{Scheme: schemeReq, Host: net.JoinHostPort(info.Hostname, portReq)}, proxyTransport, nil } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/pod/BUILD b/vendor/k8s.io/kubernetes/pkg/registry/core/pod/BUILD index e7386dfa1..ddf8fcb5d 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/pod/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/pod/BUILD @@ -20,6 +20,7 @@ go_library( "//pkg/apis/core/helper/qos:go_default_library", "//pkg/apis/core/validation:go_default_library", "//pkg/kubelet/client:go_default_library", + "//pkg/proxy/util:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/api/meta:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/pod/strategy.go b/vendor/k8s.io/kubernetes/pkg/registry/core/pod/strategy.go index 69e77c5a6..4c2ab6bec 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/core/pod/strategy.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/pod/strategy.go @@ -47,6 +47,7 @@ import ( "k8s.io/kubernetes/pkg/apis/core/helper/qos" "k8s.io/kubernetes/pkg/apis/core/validation" "k8s.io/kubernetes/pkg/kubelet/client" + proxyutil "k8s.io/kubernetes/pkg/proxy/util" ) // podStrategy implements behavior for Pods @@ -290,6 +291,10 @@ func ResourceLocation(getter ResourceGetter, rt http.RoundTripper, ctx context.C } } + if err := proxyutil.IsProxyableIP(pod.Status.PodIP); err != nil { + return nil, nil, errors.NewBadRequest(err.Error()) + } + loc := &url.URL{ Scheme: scheme, } diff --git a/vendor/k8s.io/kubernetes/pkg/registry/scheduling/rest/storage_scheduling.go b/vendor/k8s.io/kubernetes/pkg/registry/scheduling/rest/storage_scheduling.go index ed291b32c..cdbfb9e2b 100644 --- a/vendor/k8s.io/kubernetes/pkg/registry/scheduling/rest/storage_scheduling.go +++ b/vendor/k8s.io/kubernetes/pkg/registry/scheduling/rest/storage_scheduling.go @@ -93,7 +93,7 @@ func AddSystemPriorityClasses() genericapiserver.PostStartHookFunc { } else { // Unable to get the priority class for reasons other than "not found". klog.Warningf("unable to get PriorityClass %v: %v. Retrying...", pc.Name, err) - return false, err + return false, nil } } } diff --git a/vendor/k8s.io/kubernetes/pkg/scheduler/algorithm/BUILD b/vendor/k8s.io/kubernetes/pkg/scheduler/algorithm/BUILD index 0b19967ba..da4b77ede 100644 --- a/vendor/k8s.io/kubernetes/pkg/scheduler/algorithm/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/scheduler/algorithm/BUILD @@ -17,7 +17,6 @@ go_library( deps = [ "//pkg/scheduler/api:go_default_library", "//pkg/scheduler/cache:go_default_library", - "//pkg/scheduler/internal/cache:go_default_library", "//staging/src/k8s.io/api/apps/v1:go_default_library", "//staging/src/k8s.io/api/core/v1:go_default_library", "//staging/src/k8s.io/api/policy/v1beta1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/scheduler/algorithm/types.go b/vendor/k8s.io/kubernetes/pkg/scheduler/algorithm/types.go index 835a5a0bf..f7b54e2d7 100644 --- a/vendor/k8s.io/kubernetes/pkg/scheduler/algorithm/types.go +++ b/vendor/k8s.io/kubernetes/pkg/scheduler/algorithm/types.go @@ -23,7 +23,6 @@ import ( "k8s.io/apimachinery/pkg/labels" schedulerapi "k8s.io/kubernetes/pkg/scheduler/api" schedulercache "k8s.io/kubernetes/pkg/scheduler/cache" - schedulerinternalcache "k8s.io/kubernetes/pkg/scheduler/internal/cache" ) // NodeFieldSelectorKeys is a map that: the key are node field selector keys; the values are @@ -92,6 +91,9 @@ type NodeLister interface { List() ([]*v1.Node, error) } +// PodFilter is a function to filter a pod. If pod passed return true else return false. +type PodFilter func(*v1.Pod) bool + // PodLister interface represents anything that can list pods for a scheduler. type PodLister interface { // We explicitly return []*v1.Pod, instead of v1.PodList, to avoid @@ -99,7 +101,7 @@ type PodLister interface { List(labels.Selector) ([]*v1.Pod, error) // This is similar to "List()", but the returned slice does not // contain pods that don't pass `podFilter`. - FilteredList(podFilter schedulerinternalcache.PodFilter, selector labels.Selector) ([]*v1.Pod, error) + FilteredList(podFilter PodFilter, selector labels.Selector) ([]*v1.Pod, error) } // ServiceLister interface represents anything that can produce a list of services; the list is consumed by a scheduler. diff --git a/vendor/k8s.io/kubernetes/pkg/scheduler/core/generic_scheduler.go b/vendor/k8s.io/kubernetes/pkg/scheduler/core/generic_scheduler.go index 5f163889c..e6740d566 100644 --- a/vendor/k8s.io/kubernetes/pkg/scheduler/core/generic_scheduler.go +++ b/vendor/k8s.io/kubernetes/pkg/scheduler/core/generic_scheduler.go @@ -351,7 +351,7 @@ func (g *genericScheduler) processPreemptionWithExtenders( // worth the complexity, especially because we generally expect to have a very // small number of nominated pods per node. func (g *genericScheduler) getLowerPriorityNominatedPods(pod *v1.Pod, nodeName string) []*v1.Pod { - pods := g.schedulingQueue.WaitingPodsForNode(nodeName) + pods := g.schedulingQueue.NominatedPodsForNode(nodeName) if len(pods) == 0 { return nil @@ -501,7 +501,7 @@ func addNominatedPods(pod *v1.Pod, meta algorithm.PredicateMetadata, // This may happen only in tests. return false, meta, nodeInfo } - nominatedPods := queue.WaitingPodsForNode(nodeInfo.Node().Name) + nominatedPods := queue.NominatedPodsForNode(nodeInfo.Node().Name) if nominatedPods == nil || len(nominatedPods) == 0 { return false, meta, nodeInfo } @@ -655,24 +655,26 @@ func PrioritizeNodes( // DEPRECATED: we can remove this when all priorityConfigs implement the // Map-Reduce pattern. - workqueue.ParallelizeUntil(context.TODO(), 16, len(priorityConfigs), func(i int) { - priorityConfig := priorityConfigs[i] - if priorityConfig.Function == nil { + for i := range priorityConfigs { + if priorityConfigs[i].Function != nil { + wg.Add(1) + go func(index int) { + defer wg.Done() + var err error + results[index], err = priorityConfigs[index].Function(pod, nodeNameToInfo, nodes) + if err != nil { + appendError(err) + } + }(i) + } else { results[i] = make(schedulerapi.HostPriorityList, len(nodes)) - return } - - var err error - results[i], err = priorityConfig.Function(pod, nodeNameToInfo, nodes) - if err != nil { - appendError(err) - } - }) + } workqueue.ParallelizeUntil(context.TODO(), 16, len(nodes), func(index int) { nodeInfo := nodeNameToInfo[nodes[index].Name] - for i, priorityConfig := range priorityConfigs { - if priorityConfig.Function != nil { + for i := range priorityConfigs { + if priorityConfigs[i].Function != nil { continue } @@ -685,22 +687,22 @@ func PrioritizeNodes( } }) - for i, priorityConfig := range priorityConfigs { - if priorityConfig.Reduce == nil { + for i := range priorityConfigs { + if priorityConfigs[i].Reduce == nil { continue } wg.Add(1) - go func(index int, config algorithm.PriorityConfig) { + go func(index int) { defer wg.Done() - if err := config.Reduce(pod, meta, nodeNameToInfo, results[index]); err != nil { + if err := priorityConfigs[index].Reduce(pod, meta, nodeNameToInfo, results[index]); err != nil { appendError(err) } if klog.V(10) { for _, hostPriority := range results[index] { - klog.Infof("%v -> %v: %v, Score: (%d)", util.GetPodFullName(pod), hostPriority.Host, config.Name, hostPriority.Score) + klog.Infof("%v -> %v: %v, Score: (%d)", util.GetPodFullName(pod), hostPriority.Host, priorityConfigs[index].Name, hostPriority.Score) } } - }(i, priorityConfig) + }(i) } // Wait for all computations to be finished. wg.Wait() @@ -720,14 +722,14 @@ func PrioritizeNodes( if len(extenders) != 0 && nodes != nil { combinedScores := make(map[string]int, len(nodeNameToInfo)) - for _, extender := range extenders { - if !extender.IsInterested(pod) { + for i := range extenders { + if !extenders[i].IsInterested(pod) { continue } wg.Add(1) - go func(ext algorithm.SchedulerExtender) { + go func(extIndex int) { defer wg.Done() - prioritizedList, weight, err := ext.Prioritize(pod, nodes) + prioritizedList, weight, err := extenders[extIndex].Prioritize(pod, nodes) if err != nil { // Prioritization errors from extender can be ignored, let k8s/other extenders determine the priorities return @@ -736,12 +738,12 @@ func PrioritizeNodes( for i := range *prioritizedList { host, score := (*prioritizedList)[i].Host, (*prioritizedList)[i].Score if klog.V(10) { - klog.Infof("%v -> %v: %v, Score: (%d)", util.GetPodFullName(pod), host, ext.Name(), score) + klog.Infof("%v -> %v: %v, Score: (%d)", util.GetPodFullName(pod), host, extenders[extIndex].Name(), score) } combinedScores[host] += score * weight } mu.Unlock() - }(extender) + }(i) } // wait for all go routines to finish wg.Wait() diff --git a/vendor/k8s.io/kubernetes/pkg/scheduler/factory/BUILD b/vendor/k8s.io/kubernetes/pkg/scheduler/factory/BUILD index 7be893b06..f7332ccdc 100644 --- a/vendor/k8s.io/kubernetes/pkg/scheduler/factory/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/scheduler/factory/BUILD @@ -73,6 +73,7 @@ go_test( "//pkg/scheduler/testing:go_default_library", "//pkg/scheduler/util:go_default_library", "//staging/src/k8s.io/api/core/v1:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/scheduler/factory/factory.go b/vendor/k8s.io/kubernetes/pkg/scheduler/factory/factory.go index aa420bcb1..6242f3b48 100644 --- a/vendor/k8s.io/kubernetes/pkg/scheduler/factory/factory.go +++ b/vendor/k8s.io/kubernetes/pkg/scheduler/factory/factory.go @@ -992,7 +992,14 @@ func (c *configFactory) updateNodeInCache(oldObj, newObj interface{}) { } c.invalidateCachedPredicatesOnNodeUpdate(newNode, oldNode) - c.podQueue.MoveAllToActiveQueue() + // Only activate unschedulable pods if the node became more schedulable. + // We skip the node property comparison when there is no unschedulable pods in the queue + // to save processing cycles. We still trigger a move to active queue to cover the case + // that a pod being processed by the scheduler is determined unschedulable. We want this + // pod to be reevaluated when a change in the cluster happens. + if c.podQueue.NumUnschedulablePods() == 0 || nodeSchedulingPropertiesChanged(newNode, oldNode) { + c.podQueue.MoveAllToActiveQueue() + } } func (c *configFactory) invalidateCachedPredicatesOnNodeUpdate(newNode *v1.Node, oldNode *v1.Node) { @@ -1064,6 +1071,53 @@ func (c *configFactory) invalidateCachedPredicatesOnNodeUpdate(newNode *v1.Node, } } +func nodeSchedulingPropertiesChanged(newNode *v1.Node, oldNode *v1.Node) bool { + if nodeSpecUnschedulableChanged(newNode, oldNode) { + return true + } + if nodeAllocatableChanged(newNode, oldNode) { + return true + } + if nodeLabelsChanged(newNode, oldNode) { + return true + } + if nodeTaintsChanged(newNode, oldNode) { + return true + } + if nodeConditionsChanged(newNode, oldNode) { + return true + } + + return false +} + +func nodeAllocatableChanged(newNode *v1.Node, oldNode *v1.Node) bool { + return !reflect.DeepEqual(oldNode.Status.Allocatable, newNode.Status.Allocatable) +} + +func nodeLabelsChanged(newNode *v1.Node, oldNode *v1.Node) bool { + return !reflect.DeepEqual(oldNode.GetLabels(), newNode.GetLabels()) +} + +func nodeTaintsChanged(newNode *v1.Node, oldNode *v1.Node) bool { + return !reflect.DeepEqual(newNode.Spec.Taints, oldNode.Spec.Taints) +} + +func nodeConditionsChanged(newNode *v1.Node, oldNode *v1.Node) bool { + strip := func(conditions []v1.NodeCondition) map[v1.NodeConditionType]v1.ConditionStatus { + conditionStatuses := make(map[v1.NodeConditionType]v1.ConditionStatus, len(conditions)) + for i := range conditions { + conditionStatuses[conditions[i].Type] = conditions[i].Status + } + return conditionStatuses + } + return !reflect.DeepEqual(strip(oldNode.Status.Conditions), strip(newNode.Status.Conditions)) +} + +func nodeSpecUnschedulableChanged(newNode *v1.Node, oldNode *v1.Node) bool { + return newNode.Spec.Unschedulable != oldNode.Spec.Unschedulable && newNode.Spec.Unschedulable == false +} + func (c *configFactory) deleteNodeFromCache(obj interface{}) { var node *v1.Node switch t := obj.(type) { diff --git a/vendor/k8s.io/kubernetes/pkg/scheduler/factory/factory_test.go b/vendor/k8s.io/kubernetes/pkg/scheduler/factory/factory_test.go index aa68c716f..080930e22 100644 --- a/vendor/k8s.io/kubernetes/pkg/scheduler/factory/factory_test.go +++ b/vendor/k8s.io/kubernetes/pkg/scheduler/factory/factory_test.go @@ -24,6 +24,7 @@ import ( "time" "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/sets" @@ -657,3 +658,146 @@ func testGetBinderFunc(expectedBinderType, podName string, extenders []algorithm t.Errorf("Expected binder %q but got %q", expectedBinderType, binderType) } } + +func TestNodeAllocatableChanged(t *testing.T) { + newQuantity := func(value int64) resource.Quantity { + return *resource.NewQuantity(value, resource.BinarySI) + } + for _, c := range []struct { + Name string + Changed bool + OldAllocatable v1.ResourceList + NewAllocatable v1.ResourceList + }{ + { + Name: "no allocatable resources changed", + Changed: false, + OldAllocatable: v1.ResourceList{v1.ResourceMemory: newQuantity(1024)}, + NewAllocatable: v1.ResourceList{v1.ResourceMemory: newQuantity(1024)}, + }, + { + Name: "new node has more allocatable resources", + Changed: true, + OldAllocatable: v1.ResourceList{v1.ResourceMemory: newQuantity(1024)}, + NewAllocatable: v1.ResourceList{v1.ResourceMemory: newQuantity(1024), v1.ResourceStorage: newQuantity(1024)}, + }, + } { + oldNode := &v1.Node{Status: v1.NodeStatus{Allocatable: c.OldAllocatable}} + newNode := &v1.Node{Status: v1.NodeStatus{Allocatable: c.NewAllocatable}} + changed := nodeAllocatableChanged(newNode, oldNode) + if changed != c.Changed { + t.Errorf("nodeAllocatableChanged should be %t, got %t", c.Changed, changed) + } + } +} + +func TestNodeLabelsChanged(t *testing.T) { + for _, c := range []struct { + Name string + Changed bool + OldLabels map[string]string + NewLabels map[string]string + }{ + { + Name: "no labels changed", + Changed: false, + OldLabels: map[string]string{"foo": "bar"}, + NewLabels: map[string]string{"foo": "bar"}, + }, + // Labels changed. + { + Name: "new node has more labels", + Changed: true, + OldLabels: map[string]string{"foo": "bar"}, + NewLabels: map[string]string{"foo": "bar", "test": "value"}, + }, + } { + oldNode := &v1.Node{ObjectMeta: metav1.ObjectMeta{Labels: c.OldLabels}} + newNode := &v1.Node{ObjectMeta: metav1.ObjectMeta{Labels: c.NewLabels}} + changed := nodeLabelsChanged(newNode, oldNode) + if changed != c.Changed { + t.Errorf("Test case %q failed: should be %t, got %t", c.Name, c.Changed, changed) + } + } +} + +func TestNodeTaintsChanged(t *testing.T) { + for _, c := range []struct { + Name string + Changed bool + OldTaints []v1.Taint + NewTaints []v1.Taint + }{ + { + Name: "no taint changed", + Changed: false, + OldTaints: []v1.Taint{{Key: "key", Value: "value"}}, + NewTaints: []v1.Taint{{Key: "key", Value: "value"}}, + }, + { + Name: "taint value changed", + Changed: true, + OldTaints: []v1.Taint{{Key: "key", Value: "value1"}}, + NewTaints: []v1.Taint{{Key: "key", Value: "value2"}}, + }, + } { + oldNode := &v1.Node{Spec: v1.NodeSpec{Taints: c.OldTaints}} + newNode := &v1.Node{Spec: v1.NodeSpec{Taints: c.NewTaints}} + changed := nodeTaintsChanged(newNode, oldNode) + if changed != c.Changed { + t.Errorf("Test case %q failed: should be %t, not %t", c.Name, c.Changed, changed) + } + } +} + +func TestNodeConditionsChanged(t *testing.T) { + nodeConditionType := reflect.TypeOf(v1.NodeCondition{}) + if nodeConditionType.NumField() != 6 { + t.Errorf("NodeCondition type has changed. The nodeConditionsChanged() function must be reevaluated.") + } + + for _, c := range []struct { + Name string + Changed bool + OldConditions []v1.NodeCondition + NewConditions []v1.NodeCondition + }{ + { + Name: "no condition changed", + Changed: false, + OldConditions: []v1.NodeCondition{{Type: v1.NodeOutOfDisk, Status: v1.ConditionTrue}}, + NewConditions: []v1.NodeCondition{{Type: v1.NodeOutOfDisk, Status: v1.ConditionTrue}}, + }, + { + Name: "only LastHeartbeatTime changed", + Changed: false, + OldConditions: []v1.NodeCondition{{Type: v1.NodeOutOfDisk, Status: v1.ConditionTrue, LastHeartbeatTime: metav1.Unix(1, 0)}}, + NewConditions: []v1.NodeCondition{{Type: v1.NodeOutOfDisk, Status: v1.ConditionTrue, LastHeartbeatTime: metav1.Unix(2, 0)}}, + }, + { + Name: "new node has more healthy conditions", + Changed: true, + OldConditions: []v1.NodeCondition{}, + NewConditions: []v1.NodeCondition{{Type: v1.NodeReady, Status: v1.ConditionTrue}}, + }, + { + Name: "new node has less unhealthy conditions", + Changed: true, + OldConditions: []v1.NodeCondition{{Type: v1.NodeOutOfDisk, Status: v1.ConditionTrue}}, + NewConditions: []v1.NodeCondition{}, + }, + { + Name: "condition status changed", + Changed: true, + OldConditions: []v1.NodeCondition{{Type: v1.NodeReady, Status: v1.ConditionFalse}}, + NewConditions: []v1.NodeCondition{{Type: v1.NodeReady, Status: v1.ConditionTrue}}, + }, + } { + oldNode := &v1.Node{Status: v1.NodeStatus{Conditions: c.OldConditions}} + newNode := &v1.Node{Status: v1.NodeStatus{Conditions: c.NewConditions}} + changed := nodeConditionsChanged(newNode, oldNode) + if changed != c.Changed { + t.Errorf("Test case %q failed: should be %t, got %t", c.Name, c.Changed, changed) + } + } +} diff --git a/vendor/k8s.io/kubernetes/pkg/scheduler/internal/cache/BUILD b/vendor/k8s.io/kubernetes/pkg/scheduler/internal/cache/BUILD index 61202c8c2..5b505704e 100644 --- a/vendor/k8s.io/kubernetes/pkg/scheduler/internal/cache/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/scheduler/internal/cache/BUILD @@ -11,6 +11,7 @@ go_library( visibility = ["//visibility:public"], deps = [ "//pkg/features:go_default_library", + "//pkg/scheduler/algorithm:go_default_library", "//pkg/scheduler/cache:go_default_library", "//pkg/util/node:go_default_library", "//staging/src/k8s.io/api/core/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/scheduler/internal/cache/cache.go b/vendor/k8s.io/kubernetes/pkg/scheduler/internal/cache/cache.go index 535236e5c..3956fb28e 100644 --- a/vendor/k8s.io/kubernetes/pkg/scheduler/internal/cache/cache.go +++ b/vendor/k8s.io/kubernetes/pkg/scheduler/internal/cache/cache.go @@ -27,6 +27,7 @@ import ( "k8s.io/apimachinery/pkg/util/wait" utilfeature "k8s.io/apiserver/pkg/util/feature" "k8s.io/kubernetes/pkg/features" + "k8s.io/kubernetes/pkg/scheduler/algorithm" schedulercache "k8s.io/kubernetes/pkg/scheduler/cache" "k8s.io/klog" @@ -149,7 +150,7 @@ func (cache *schedulerCache) List(selector labels.Selector) ([]*v1.Pod, error) { return cache.FilteredList(alwaysTrue, selector) } -func (cache *schedulerCache) FilteredList(podFilter PodFilter, selector labels.Selector) ([]*v1.Pod, error) { +func (cache *schedulerCache) FilteredList(podFilter algorithm.PodFilter, selector labels.Selector) ([]*v1.Pod, error) { cache.mu.RLock() defer cache.mu.RUnlock() // podFilter is expected to return true for most or all of the pods. We diff --git a/vendor/k8s.io/kubernetes/pkg/scheduler/internal/cache/fake/BUILD b/vendor/k8s.io/kubernetes/pkg/scheduler/internal/cache/fake/BUILD index ba642f5ea..27452ef43 100644 --- a/vendor/k8s.io/kubernetes/pkg/scheduler/internal/cache/fake/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/scheduler/internal/cache/fake/BUILD @@ -6,6 +6,7 @@ go_library( importpath = "k8s.io/kubernetes/pkg/scheduler/internal/cache/fake", visibility = ["//pkg/scheduler:__subpackages__"], deps = [ + "//pkg/scheduler/algorithm:go_default_library", "//pkg/scheduler/cache:go_default_library", "//pkg/scheduler/internal/cache:go_default_library", "//staging/src/k8s.io/api/core/v1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/scheduler/internal/cache/fake/fake_cache.go b/vendor/k8s.io/kubernetes/pkg/scheduler/internal/cache/fake/fake_cache.go index 82419e960..aa4f39e08 100644 --- a/vendor/k8s.io/kubernetes/pkg/scheduler/internal/cache/fake/fake_cache.go +++ b/vendor/k8s.io/kubernetes/pkg/scheduler/internal/cache/fake/fake_cache.go @@ -19,6 +19,7 @@ package fake import ( "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/labels" + "k8s.io/kubernetes/pkg/scheduler/algorithm" schedulercache "k8s.io/kubernetes/pkg/scheduler/cache" schedulerinternalcache "k8s.io/kubernetes/pkg/scheduler/internal/cache" ) @@ -83,7 +84,7 @@ func (c *Cache) UpdateNodeNameToInfoMap(infoMap map[string]*schedulercache.NodeI func (c *Cache) List(s labels.Selector) ([]*v1.Pod, error) { return nil, nil } // FilteredList is a fake method for testing. -func (c *Cache) FilteredList(filter schedulerinternalcache.PodFilter, selector labels.Selector) ([]*v1.Pod, error) { +func (c *Cache) FilteredList(filter algorithm.PodFilter, selector labels.Selector) ([]*v1.Pod, error) { return nil, nil } diff --git a/vendor/k8s.io/kubernetes/pkg/scheduler/internal/cache/interface.go b/vendor/k8s.io/kubernetes/pkg/scheduler/internal/cache/interface.go index 878c2aa07..4de292cea 100644 --- a/vendor/k8s.io/kubernetes/pkg/scheduler/internal/cache/interface.go +++ b/vendor/k8s.io/kubernetes/pkg/scheduler/internal/cache/interface.go @@ -19,12 +19,10 @@ package cache import ( "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/labels" + "k8s.io/kubernetes/pkg/scheduler/algorithm" schedulercache "k8s.io/kubernetes/pkg/scheduler/cache" ) -// PodFilter is a function to filter a pod. If pod passed return true else return false. -type PodFilter func(*v1.Pod) bool - // Cache collects pods' information and provides node-level aggregated information. // It's intended for generic scheduler to do efficient lookup. // Cache's operations are pod centric. It does incremental updates based on pod events. @@ -106,7 +104,7 @@ type Cache interface { List(labels.Selector) ([]*v1.Pod, error) // FilteredList returns all cached pods that pass the filter. - FilteredList(filter PodFilter, selector labels.Selector) ([]*v1.Pod, error) + FilteredList(filter algorithm.PodFilter, selector labels.Selector) ([]*v1.Pod, error) // Snapshot takes a snapshot on current cache Snapshot() *Snapshot diff --git a/vendor/k8s.io/kubernetes/pkg/scheduler/internal/queue/BUILD b/vendor/k8s.io/kubernetes/pkg/scheduler/internal/queue/BUILD index c675f8592..454c6ac67 100644 --- a/vendor/k8s.io/kubernetes/pkg/scheduler/internal/queue/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/scheduler/internal/queue/BUILD @@ -12,6 +12,7 @@ go_library( "//pkg/scheduler/util:go_default_library", "//staging/src/k8s.io/api/core/v1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library", "//staging/src/k8s.io/client-go/tools/cache:go_default_library", "//vendor/k8s.io/klog:go_default_library", ], @@ -22,9 +23,11 @@ go_test( srcs = ["scheduling_queue_test.go"], embed = [":go_default_library"], deps = [ + "//pkg/api/v1/pod:go_default_library", "//pkg/scheduler/util:go_default_library", "//staging/src/k8s.io/api/core/v1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/pkg/scheduler/internal/queue/scheduling_queue.go b/vendor/k8s.io/kubernetes/pkg/scheduler/internal/queue/scheduling_queue.go index 6f5aa682c..48f56ce77 100644 --- a/vendor/k8s.io/kubernetes/pkg/scheduler/internal/queue/scheduling_queue.go +++ b/vendor/k8s.io/kubernetes/pkg/scheduler/internal/queue/scheduling_queue.go @@ -36,6 +36,7 @@ import ( "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + ktypes "k8s.io/apimachinery/pkg/types" "k8s.io/client-go/tools/cache" podutil "k8s.io/kubernetes/pkg/api/v1/pod" "k8s.io/kubernetes/pkg/scheduler/algorithm/predicates" @@ -62,13 +63,18 @@ type SchedulingQueue interface { MoveAllToActiveQueue() AssignedPodAdded(pod *v1.Pod) AssignedPodUpdated(pod *v1.Pod) - WaitingPodsForNode(nodeName string) []*v1.Pod + NominatedPodsForNode(nodeName string) []*v1.Pod WaitingPods() []*v1.Pod // Close closes the SchedulingQueue so that the goroutine which is // waiting to pop items can exit gracefully. Close() + // UpdateNominatedPodForNode adds the given pod to the nominated pod map or + // updates it if it already exists. + UpdateNominatedPodForNode(pod *v1.Pod, nodeName string) // DeleteNominatedPodIfExists deletes nominatedPod from internal cache DeleteNominatedPodIfExists(pod *v1.Pod) + // NumUnschedulablePods returns the number of unschedulable pods exist in the SchedulingQueue. + NumUnschedulablePods() int } // NewSchedulingQueue initializes a new scheduling queue. If pod priority is @@ -148,9 +154,9 @@ func (f *FIFO) AssignedPodUpdated(pod *v1.Pod) {} // MoveAllToActiveQueue does nothing in FIFO as all pods are always in the active queue. func (f *FIFO) MoveAllToActiveQueue() {} -// WaitingPodsForNode returns pods that are nominated to run on the given node, +// NominatedPodsForNode returns pods that are nominated to run on the given node, // but FIFO does not support it. -func (f *FIFO) WaitingPodsForNode(nodeName string) []*v1.Pod { +func (f *FIFO) NominatedPodsForNode(nodeName string) []*v1.Pod { return nil } @@ -162,6 +168,14 @@ func (f *FIFO) Close() { // DeleteNominatedPodIfExists does nothing in FIFO. func (f *FIFO) DeleteNominatedPodIfExists(pod *v1.Pod) {} +// UpdateNominatedPodForNode does nothing in FIFO. +func (f *FIFO) UpdateNominatedPodForNode(pod *v1.Pod, nodeName string) {} + +// NumUnschedulablePods returns the number of unschedulable pods exist in the SchedulingQueue. +func (f *FIFO) NumUnschedulablePods() int { + return 0 +} + // NewFIFO creates a FIFO object. func NewFIFO() *FIFO { return &FIFO{FIFO: cache.NewFIFO(cache.MetaNamespaceKeyFunc)} @@ -187,10 +201,9 @@ type PriorityQueue struct { activeQ *Heap // unschedulableQ holds pods that have been tried and determined unschedulable. unschedulableQ *UnschedulablePodsMap - // nominatedPods is a map keyed by a node name and the value is a list of - // pods which are nominated to run on the node. These are pods which can be in - // the activeQ or unschedulableQ. - nominatedPods map[string][]*v1.Pod + // nominatedPods is a structures that stores pods which are nominated to run + // on nodes. + nominatedPods *nominatedPodMap // receivedMoveRequest is set to true whenever we receive a request to move a // pod from the unschedulableQ to the activeQ, and is set to false, when we pop // a pod from the activeQ. It indicates if we received a move request when a @@ -206,57 +219,38 @@ type PriorityQueue struct { // Making sure that PriorityQueue implements SchedulingQueue. var _ = SchedulingQueue(&PriorityQueue{}) +// podTimeStamp returns pod's last schedule time or its creation time if the +// scheduler has never tried scheduling it. +func podTimestamp(pod *v1.Pod) *metav1.Time { + _, condition := podutil.GetPodCondition(&pod.Status, v1.PodScheduled) + if condition == nil { + return &pod.CreationTimestamp + } + return &condition.LastTransitionTime +} + +// activeQComp is the function used by the activeQ heap algorithm to sort pods. +// It sorts pods based on their priority. When priorities are equal, it uses +// podTimestamp. +func activeQComp(pod1, pod2 interface{}) bool { + p1 := pod1.(*v1.Pod) + p2 := pod2.(*v1.Pod) + prio1 := util.GetPodPriority(p1) + prio2 := util.GetPodPriority(p2) + return (prio1 > prio2) || (prio1 == prio2 && podTimestamp(p1).Before(podTimestamp(p2))) +} + // NewPriorityQueue creates a PriorityQueue object. func NewPriorityQueue() *PriorityQueue { pq := &PriorityQueue{ - activeQ: newHeap(cache.MetaNamespaceKeyFunc, util.HigherPriorityPod), + activeQ: newHeap(cache.MetaNamespaceKeyFunc, activeQComp), unschedulableQ: newUnschedulablePodsMap(), - nominatedPods: map[string][]*v1.Pod{}, + nominatedPods: newNominatedPodMap(), } pq.cond.L = &pq.lock return pq } -// addNominatedPodIfNeeded adds a pod to nominatedPods if it has a NominatedNodeName and it does not -// already exist in the map. Adding an existing pod is not going to update the pod. -func (p *PriorityQueue) addNominatedPodIfNeeded(pod *v1.Pod) { - nnn := NominatedNodeName(pod) - if len(nnn) > 0 { - for _, np := range p.nominatedPods[nnn] { - if np.UID == pod.UID { - klog.V(4).Infof("Pod %v/%v already exists in the nominated map!", pod.Namespace, pod.Name) - return - } - } - p.nominatedPods[nnn] = append(p.nominatedPods[nnn], pod) - } -} - -// deleteNominatedPodIfExists deletes a pod from the nominatedPods. -// NOTE: this function assumes lock has been acquired in caller. -func (p *PriorityQueue) deleteNominatedPodIfExists(pod *v1.Pod) { - nnn := NominatedNodeName(pod) - if len(nnn) > 0 { - for i, np := range p.nominatedPods[nnn] { - if np.UID == pod.UID { - p.nominatedPods[nnn] = append(p.nominatedPods[nnn][:i], p.nominatedPods[nnn][i+1:]...) - if len(p.nominatedPods[nnn]) == 0 { - delete(p.nominatedPods, nnn) - } - break - } - } - } -} - -// updateNominatedPod updates a pod in the nominatedPods. -func (p *PriorityQueue) updateNominatedPod(oldPod, newPod *v1.Pod) { - // Even if the nominated node name of the Pod is not changed, we must delete and add it again - // to ensure that its pointer is updated. - p.deleteNominatedPodIfExists(oldPod) - p.addNominatedPodIfNeeded(newPod) -} - // Add adds a pod to the active queue. It should be called only when a new pod // is added so there is no chance the pod is already in either queue. func (p *PriorityQueue) Add(pod *v1.Pod) error { @@ -268,10 +262,9 @@ func (p *PriorityQueue) Add(pod *v1.Pod) error { } else { if p.unschedulableQ.get(pod) != nil { klog.Errorf("Error: pod %v/%v is already in the unschedulable queue.", pod.Namespace, pod.Name) - p.deleteNominatedPodIfExists(pod) p.unschedulableQ.delete(pod) } - p.addNominatedPodIfNeeded(pod) + p.nominatedPods.add(pod, "") p.cond.Broadcast() } return err @@ -292,7 +285,7 @@ func (p *PriorityQueue) AddIfNotPresent(pod *v1.Pod) error { if err != nil { klog.Errorf("Error adding pod %v/%v to the scheduling queue: %v", pod.Namespace, pod.Name, err) } else { - p.addNominatedPodIfNeeded(pod) + p.nominatedPods.add(pod, "") p.cond.Broadcast() } return err @@ -317,12 +310,12 @@ func (p *PriorityQueue) AddUnschedulableIfNotPresent(pod *v1.Pod) error { } if !p.receivedMoveRequest && isPodUnschedulable(pod) { p.unschedulableQ.addOrUpdate(pod) - p.addNominatedPodIfNeeded(pod) + p.nominatedPods.add(pod, "") return nil } err := p.activeQ.Add(pod) if err == nil { - p.addNominatedPodIfNeeded(pod) + p.nominatedPods.add(pod, "") p.cond.Broadcast() } return err @@ -373,13 +366,13 @@ func (p *PriorityQueue) Update(oldPod, newPod *v1.Pod) error { defer p.lock.Unlock() // If the pod is already in the active queue, just update it there. if _, exists, _ := p.activeQ.Get(newPod); exists { - p.updateNominatedPod(oldPod, newPod) + p.nominatedPods.update(oldPod, newPod) err := p.activeQ.Update(newPod) return err } // If the pod is in the unschedulable queue, updating it may make it schedulable. if usPod := p.unschedulableQ.get(newPod); usPod != nil { - p.updateNominatedPod(oldPod, newPod) + p.nominatedPods.update(oldPod, newPod) if isPodUpdated(oldPod, newPod) { p.unschedulableQ.delete(usPod) err := p.activeQ.Add(newPod) @@ -394,7 +387,7 @@ func (p *PriorityQueue) Update(oldPod, newPod *v1.Pod) error { // If pod is not in any of the two queue, we put it in the active queue. err := p.activeQ.Add(newPod) if err == nil { - p.addNominatedPodIfNeeded(newPod) + p.nominatedPods.add(newPod, "") p.cond.Broadcast() } return err @@ -405,7 +398,7 @@ func (p *PriorityQueue) Update(oldPod, newPod *v1.Pod) error { func (p *PriorityQueue) Delete(pod *v1.Pod) error { p.lock.Lock() defer p.lock.Unlock() - p.deleteNominatedPodIfExists(pod) + p.nominatedPods.delete(pod) err := p.activeQ.Delete(pod) if err != nil { // The item was probably not found in the activeQ. p.unschedulableQ.delete(pod) @@ -488,16 +481,13 @@ func (p *PriorityQueue) getUnschedulablePodsWithMatchingAffinityTerm(pod *v1.Pod return podsToMove } -// WaitingPodsForNode returns pods that are nominated to run on the given node, +// NominatedPodsForNode returns pods that are nominated to run on the given node, // but they are waiting for other pods to be removed from the node before they // can be actually scheduled. -func (p *PriorityQueue) WaitingPodsForNode(nodeName string) []*v1.Pod { +func (p *PriorityQueue) NominatedPodsForNode(nodeName string) []*v1.Pod { p.lock.RLock() defer p.lock.RUnlock() - if list, ok := p.nominatedPods[nodeName]; ok { - return list - } - return nil + return p.nominatedPods.podsForNode(nodeName) } // WaitingPods returns all the waiting pods in the queue. @@ -523,13 +513,30 @@ func (p *PriorityQueue) Close() { p.cond.Broadcast() } -// DeleteNominatedPodIfExists deletes pod from internal cache if it's a nominatedPod +// DeleteNominatedPodIfExists deletes pod nominatedPods. func (p *PriorityQueue) DeleteNominatedPodIfExists(pod *v1.Pod) { p.lock.Lock() - p.deleteNominatedPodIfExists(pod) + p.nominatedPods.delete(pod) p.lock.Unlock() } +// UpdateNominatedPodForNode adds a pod to the nominated pods of the given node. +// This is called during the preemption process after a node is nominated to run +// the pod. We update the structure before sending a request to update the pod +// object to avoid races with the following scheduling cycles. +func (p *PriorityQueue) UpdateNominatedPodForNode(pod *v1.Pod, nodeName string) { + p.lock.Lock() + p.nominatedPods.add(pod, nodeName) + p.lock.Unlock() +} + +// NumUnschedulablePods returns the number of unschedulable pods exist in the SchedulingQueue. +func (p *PriorityQueue) NumUnschedulablePods() int { + p.lock.RLock() + defer p.lock.RUnlock() + return len(p.unschedulableQ.pods) +} + // UnschedulablePodsMap holds pods that cannot be scheduled. This data structure // is used to implement unschedulableQ. type UnschedulablePodsMap struct { @@ -767,3 +774,77 @@ func newHeap(keyFn KeyFunc, lessFn LessFunc) *Heap { }, } } + +// nominatedPodMap is a structure that stores pods nominated to run on nodes. +// It exists because nominatedNodeName of pod objects stored in the structure +// may be different than what scheduler has here. We should be able to find pods +// by their UID and update/delete them. +type nominatedPodMap struct { + // nominatedPods is a map keyed by a node name and the value is a list of + // pods which are nominated to run on the node. These are pods which can be in + // the activeQ or unschedulableQ. + nominatedPods map[string][]*v1.Pod + // nominatedPodToNode is map keyed by a Pod UID to the node name where it is + // nominated. + nominatedPodToNode map[ktypes.UID]string +} + +func (npm *nominatedPodMap) add(p *v1.Pod, nodeName string) { + // always delete the pod if it already exist, to ensure we never store more than + // one instance of the pod. + npm.delete(p) + + nnn := nodeName + if len(nnn) == 0 { + nnn = NominatedNodeName(p) + if len(nnn) == 0 { + return + } + } + npm.nominatedPodToNode[p.UID] = nnn + for _, np := range npm.nominatedPods[nnn] { + if np.UID == p.UID { + klog.V(4).Infof("Pod %v/%v already exists in the nominated map!", p.Namespace, p.Name) + return + } + } + npm.nominatedPods[nnn] = append(npm.nominatedPods[nnn], p) +} + +func (npm *nominatedPodMap) delete(p *v1.Pod) { + nnn, ok := npm.nominatedPodToNode[p.UID] + if !ok { + return + } + for i, np := range npm.nominatedPods[nnn] { + if np.UID == p.UID { + npm.nominatedPods[nnn] = append(npm.nominatedPods[nnn][:i], npm.nominatedPods[nnn][i+1:]...) + if len(npm.nominatedPods[nnn]) == 0 { + delete(npm.nominatedPods, nnn) + } + break + } + } + delete(npm.nominatedPodToNode, p.UID) +} + +func (npm *nominatedPodMap) update(oldPod, newPod *v1.Pod) { + // We update irrespective of the nominatedNodeName changed or not, to ensure + // that pod pointer is updated. + npm.delete(oldPod) + npm.add(newPod, "") +} + +func (npm *nominatedPodMap) podsForNode(nodeName string) []*v1.Pod { + if list, ok := npm.nominatedPods[nodeName]; ok { + return list + } + return nil +} + +func newNominatedPodMap() *nominatedPodMap { + return &nominatedPodMap{ + nominatedPods: make(map[string][]*v1.Pod), + nominatedPodToNode: make(map[ktypes.UID]string), + } +} diff --git a/vendor/k8s.io/kubernetes/pkg/scheduler/internal/queue/scheduling_queue_test.go b/vendor/k8s.io/kubernetes/pkg/scheduler/internal/queue/scheduling_queue_test.go index ca0e33696..e9a50e213 100644 --- a/vendor/k8s.io/kubernetes/pkg/scheduler/internal/queue/scheduling_queue_test.go +++ b/vendor/k8s.io/kubernetes/pkg/scheduler/internal/queue/scheduling_queue_test.go @@ -24,6 +24,8 @@ import ( "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/types" + podutil "k8s.io/kubernetes/pkg/api/v1/pod" "k8s.io/kubernetes/pkg/scheduler/util" ) @@ -97,8 +99,14 @@ func TestPriorityQueue_Add(t *testing.T) { q.Add(&medPriorityPod) q.Add(&unschedulablePod) q.Add(&highPriorityPod) - expectedNominatedPods := map[string][]*v1.Pod{ - "node1": {&medPriorityPod, &unschedulablePod}, + expectedNominatedPods := &nominatedPodMap{ + nominatedPodToNode: map[types.UID]string{ + medPriorityPod.UID: "node1", + unschedulablePod.UID: "node1", + }, + nominatedPods: map[string][]*v1.Pod{ + "node1": {&medPriorityPod, &unschedulablePod}, + }, } if !reflect.DeepEqual(q.nominatedPods, expectedNominatedPods) { t.Errorf("Unexpected nominated map after adding pods. Expected: %v, got: %v", expectedNominatedPods, q.nominatedPods) @@ -112,8 +120,8 @@ func TestPriorityQueue_Add(t *testing.T) { if p, err := q.Pop(); err != nil || p != &unschedulablePod { t.Errorf("Expected: %v after Pop, but got: %v", unschedulablePod.Name, p.Name) } - if len(q.nominatedPods["node1"]) != 2 { - t.Errorf("Expected medPriorityPod and unschedulablePod to be still present in nomindatePods: %v", q.nominatedPods["node1"]) + if len(q.nominatedPods.nominatedPods["node1"]) != 2 { + t.Errorf("Expected medPriorityPod and unschedulablePod to be still present in nomindatePods: %v", q.nominatedPods.nominatedPods["node1"]) } } @@ -123,8 +131,14 @@ func TestPriorityQueue_AddIfNotPresent(t *testing.T) { q.AddIfNotPresent(&highPriNominatedPod) // Must not add anything. q.AddIfNotPresent(&medPriorityPod) q.AddIfNotPresent(&unschedulablePod) - expectedNominatedPods := map[string][]*v1.Pod{ - "node1": {&medPriorityPod, &unschedulablePod}, + expectedNominatedPods := &nominatedPodMap{ + nominatedPodToNode: map[types.UID]string{ + medPriorityPod.UID: "node1", + unschedulablePod.UID: "node1", + }, + nominatedPods: map[string][]*v1.Pod{ + "node1": {&medPriorityPod, &unschedulablePod}, + }, } if !reflect.DeepEqual(q.nominatedPods, expectedNominatedPods) { t.Errorf("Unexpected nominated map after adding pods. Expected: %v, got: %v", expectedNominatedPods, q.nominatedPods) @@ -135,8 +149,8 @@ func TestPriorityQueue_AddIfNotPresent(t *testing.T) { if p, err := q.Pop(); err != nil || p != &unschedulablePod { t.Errorf("Expected: %v after Pop, but got: %v", unschedulablePod.Name, p.Name) } - if len(q.nominatedPods["node1"]) != 2 { - t.Errorf("Expected medPriorityPod and unschedulablePod to be still present in nomindatePods: %v", q.nominatedPods["node1"]) + if len(q.nominatedPods.nominatedPods["node1"]) != 2 { + t.Errorf("Expected medPriorityPod and unschedulablePod to be still present in nomindatePods: %v", q.nominatedPods.nominatedPods["node1"]) } if q.unschedulableQ.get(&highPriNominatedPod) != &highPriNominatedPod { t.Errorf("Pod %v was not found in the unschedulableQ.", highPriNominatedPod.Name) @@ -149,8 +163,15 @@ func TestPriorityQueue_AddUnschedulableIfNotPresent(t *testing.T) { q.AddUnschedulableIfNotPresent(&highPriNominatedPod) // Must not add anything. q.AddUnschedulableIfNotPresent(&medPriorityPod) // This should go to activeQ. q.AddUnschedulableIfNotPresent(&unschedulablePod) - expectedNominatedPods := map[string][]*v1.Pod{ - "node1": {&highPriNominatedPod, &medPriorityPod, &unschedulablePod}, + expectedNominatedPods := &nominatedPodMap{ + nominatedPodToNode: map[types.UID]string{ + medPriorityPod.UID: "node1", + unschedulablePod.UID: "node1", + highPriNominatedPod.UID: "node1", + }, + nominatedPods: map[string][]*v1.Pod{ + "node1": {&highPriNominatedPod, &medPriorityPod, &unschedulablePod}, + }, } if !reflect.DeepEqual(q.nominatedPods, expectedNominatedPods) { t.Errorf("Unexpected nominated map after adding pods. Expected: %v, got: %v", expectedNominatedPods, q.nominatedPods) @@ -161,7 +182,7 @@ func TestPriorityQueue_AddUnschedulableIfNotPresent(t *testing.T) { if p, err := q.Pop(); err != nil || p != &medPriorityPod { t.Errorf("Expected: %v after Pop, but got: %v", medPriorityPod.Name, p.Name) } - if len(q.nominatedPods) != 1 { + if len(q.nominatedPods.nominatedPods) != 1 { t.Errorf("Expected nomindatePods to have one element: %v", q.nominatedPods) } if q.unschedulableQ.get(&unschedulablePod) != &unschedulablePod { @@ -178,8 +199,8 @@ func TestPriorityQueue_Pop(t *testing.T) { if p, err := q.Pop(); err != nil || p != &medPriorityPod { t.Errorf("Expected: %v after Pop, but got: %v", medPriorityPod.Name, p.Name) } - if len(q.nominatedPods["node1"]) != 1 { - t.Errorf("Expected medPriorityPod to be present in nomindatePods: %v", q.nominatedPods["node1"]) + if len(q.nominatedPods.nominatedPods["node1"]) != 1 { + t.Errorf("Expected medPriorityPod to be present in nomindatePods: %v", q.nominatedPods.nominatedPods["node1"]) } }() q.Add(&medPriorityPod) @@ -192,7 +213,7 @@ func TestPriorityQueue_Update(t *testing.T) { if _, exists, _ := q.activeQ.Get(&highPriorityPod); !exists { t.Errorf("Expected %v to be added to activeQ.", highPriorityPod.Name) } - if len(q.nominatedPods) != 0 { + if len(q.nominatedPods.nominatedPods) != 0 { t.Errorf("Expected nomindatePods to be empty: %v", q.nominatedPods) } // Update highPriorityPod and add a nominatedNodeName to it. @@ -200,7 +221,7 @@ func TestPriorityQueue_Update(t *testing.T) { if q.activeQ.data.Len() != 1 { t.Error("Expected only one item in activeQ.") } - if len(q.nominatedPods) != 1 { + if len(q.nominatedPods.nominatedPods) != 1 { t.Errorf("Expected one item in nomindatePods map: %v", q.nominatedPods) } // Updating an unschedulable pod which is not in any of the two queues, should @@ -233,11 +254,13 @@ func TestPriorityQueue_Delete(t *testing.T) { if _, exists, _ := q.activeQ.Get(&highPriNominatedPod); exists { t.Errorf("Didn't expect %v to be in activeQ.", highPriorityPod.Name) } - if len(q.nominatedPods) != 1 { - t.Errorf("Expected nomindatePods to have only 'unschedulablePod': %v", q.nominatedPods) + if len(q.nominatedPods.nominatedPods) != 1 { + t.Errorf("Expected nomindatePods to have only 'unschedulablePod': %v", q.nominatedPods.nominatedPods) } - q.Delete(&unschedulablePod) - if len(q.nominatedPods) != 0 { + if err := q.Delete(&unschedulablePod); err != nil { + t.Errorf("delete failed: %v", err) + } + if len(q.nominatedPods.nominatedPods) != 0 { t.Errorf("Expected nomindatePods to be empty: %v", q.nominatedPods) } } @@ -309,7 +332,7 @@ func TestPriorityQueue_AssignedPodAdded(t *testing.T) { } } -func TestPriorityQueue_WaitingPodsForNode(t *testing.T) { +func TestPriorityQueue_NominatedPodsForNode(t *testing.T) { q := NewPriorityQueue() q.Add(&medPriorityPod) q.Add(&unschedulablePod) @@ -318,14 +341,83 @@ func TestPriorityQueue_WaitingPodsForNode(t *testing.T) { t.Errorf("Expected: %v after Pop, but got: %v", highPriorityPod.Name, p.Name) } expectedList := []*v1.Pod{&medPriorityPod, &unschedulablePod} - if !reflect.DeepEqual(expectedList, q.WaitingPodsForNode("node1")) { + if !reflect.DeepEqual(expectedList, q.NominatedPodsForNode("node1")) { t.Error("Unexpected list of nominated Pods for node.") } - if q.WaitingPodsForNode("node2") != nil { + if q.NominatedPodsForNode("node2") != nil { t.Error("Expected list of nominated Pods for node2 to be empty.") } } +func TestPriorityQueue_UpdateNominatedPodForNode(t *testing.T) { + q := NewPriorityQueue() + if err := q.Add(&medPriorityPod); err != nil { + t.Errorf("add failed: %v", err) + } + // Update unschedulablePod on a different node than specified in the pod. + q.UpdateNominatedPodForNode(&unschedulablePod, "node5") + + // Update nominated node name of a pod on a node that is not specified in the pod object. + q.UpdateNominatedPodForNode(&highPriorityPod, "node2") + expectedNominatedPods := &nominatedPodMap{ + nominatedPodToNode: map[types.UID]string{ + medPriorityPod.UID: "node1", + highPriorityPod.UID: "node2", + unschedulablePod.UID: "node5", + }, + nominatedPods: map[string][]*v1.Pod{ + "node1": {&medPriorityPod}, + "node2": {&highPriorityPod}, + "node5": {&unschedulablePod}, + }, + } + if !reflect.DeepEqual(q.nominatedPods, expectedNominatedPods) { + t.Errorf("Unexpected nominated map after adding pods. Expected: %v, got: %v", expectedNominatedPods, q.nominatedPods) + } + if p, err := q.Pop(); err != nil || p != &medPriorityPod { + t.Errorf("Expected: %v after Pop, but got: %v", medPriorityPod.Name, p.Name) + } + // List of nominated pods shouldn't change after popping them from the queue. + if !reflect.DeepEqual(q.nominatedPods, expectedNominatedPods) { + t.Errorf("Unexpected nominated map after popping pods. Expected: %v, got: %v", expectedNominatedPods, q.nominatedPods) + } + // Update one of the nominated pods that doesn't have nominatedNodeName in the + // pod object. It should be updated correctly. + q.UpdateNominatedPodForNode(&highPriorityPod, "node4") + expectedNominatedPods = &nominatedPodMap{ + nominatedPodToNode: map[types.UID]string{ + medPriorityPod.UID: "node1", + highPriorityPod.UID: "node4", + unschedulablePod.UID: "node5", + }, + nominatedPods: map[string][]*v1.Pod{ + "node1": {&medPriorityPod}, + "node4": {&highPriorityPod}, + "node5": {&unschedulablePod}, + }, + } + if !reflect.DeepEqual(q.nominatedPods, expectedNominatedPods) { + t.Errorf("Unexpected nominated map after updating pods. Expected: %v, got: %v", expectedNominatedPods, q.nominatedPods) + } + + // Delete a nominated pod that doesn't have nominatedNodeName in the pod + // object. It should be deleted. + q.DeleteNominatedPodIfExists(&highPriorityPod) + expectedNominatedPods = &nominatedPodMap{ + nominatedPodToNode: map[types.UID]string{ + medPriorityPod.UID: "node1", + unschedulablePod.UID: "node5", + }, + nominatedPods: map[string][]*v1.Pod{ + "node1": {&medPriorityPod}, + "node5": {&unschedulablePod}, + }, + } + if !reflect.DeepEqual(q.nominatedPods, expectedNominatedPods) { + t.Errorf("Unexpected nominated map after deleting pods. Expected: %v, got: %v", expectedNominatedPods, q.nominatedPods) + } +} + func TestUnschedulablePodsMap(t *testing.T) { var pods = []*v1.Pod{ { @@ -512,3 +604,56 @@ func TestSchedulingQueue_Close(t *testing.T) { }) } } + +// TestRecentlyTriedPodsGoBack tests that pods which are recently tried and are +// unschedulable go behind other pods with the same priority. This behavior +// ensures that an unschedulable pod does not block head of the queue when there +// are frequent events that move pods to the active queue. +func TestRecentlyTriedPodsGoBack(t *testing.T) { + q := NewPriorityQueue() + // Add a few pods to priority queue. + for i := 0; i < 5; i++ { + p := v1.Pod{ + ObjectMeta: metav1.ObjectMeta{ + Name: fmt.Sprintf("test-pod-%v", i), + Namespace: "ns1", + UID: types.UID(fmt.Sprintf("tp00%v", i)), + }, + Spec: v1.PodSpec{ + Priority: &highPriority, + }, + Status: v1.PodStatus{ + NominatedNodeName: "node1", + }, + } + q.Add(&p) + } + // Simulate a pod being popped by the scheduler, determined unschedulable, and + // then moved back to the active queue. + p1, err := q.Pop() + if err != nil { + t.Errorf("Error while popping the head of the queue: %v", err) + } + // Update pod condition to unschedulable. + podutil.UpdatePodCondition(&p1.Status, &v1.PodCondition{ + Type: v1.PodScheduled, + Status: v1.ConditionFalse, + Reason: v1.PodReasonUnschedulable, + Message: "fake scheduling failure", + }) + // Put in the unschedulable queue. + q.AddUnschedulableIfNotPresent(p1) + // Move all unschedulable pods to the active queue. + q.MoveAllToActiveQueue() + // Simulation is over. Now let's pop all pods. The pod popped first should be + // the last one we pop here. + for i := 0; i < 5; i++ { + p, err := q.Pop() + if err != nil { + t.Errorf("Error while popping pods from the queue: %v", err) + } + if (i == 4) != (p1 == p) { + t.Errorf("A pod tried before is not the last pod popped: i: %v, pod name: %v", i, p.Name) + } + } +} diff --git a/vendor/k8s.io/kubernetes/pkg/scheduler/scheduler.go b/vendor/k8s.io/kubernetes/pkg/scheduler/scheduler.go index 0237036b1..0fdcf1924 100644 --- a/vendor/k8s.io/kubernetes/pkg/scheduler/scheduler.go +++ b/vendor/k8s.io/kubernetes/pkg/scheduler/scheduler.go @@ -328,11 +328,19 @@ func (sched *Scheduler) preempt(preemptor *v1.Pod, scheduleErr error) (string, e var nodeName = "" if node != nil { nodeName = node.Name + // Update the scheduling queue with the nominated pod information. Without + // this, there would be a race condition between the next scheduling cycle + // and the time the scheduler receives a Pod Update for the nominated pod. + sched.config.SchedulingQueue.UpdateNominatedPodForNode(preemptor, nodeName) + + // Make a call to update nominated node name of the pod on the API server. err = sched.config.PodPreemptor.SetNominatedNodeName(preemptor, nodeName) if err != nil { klog.Errorf("Error in preemption process. Cannot update pod %v/%v annotations: %v", preemptor.Namespace, preemptor.Name, err) + sched.config.SchedulingQueue.DeleteNominatedPodIfExists(preemptor) return "", err } + for _, victim := range victims { if err := sched.config.PodPreemptor.DeletePod(victim); err != nil { klog.Errorf("Error preempting pod %v/%v: %v", victim.Namespace, victim.Name, err) diff --git a/vendor/k8s.io/kubernetes/pkg/scheduler/testing/BUILD b/vendor/k8s.io/kubernetes/pkg/scheduler/testing/BUILD index 91acca08c..3b1f8c881 100644 --- a/vendor/k8s.io/kubernetes/pkg/scheduler/testing/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/scheduler/testing/BUILD @@ -18,7 +18,6 @@ go_library( "//pkg/apis/core:go_default_library", "//pkg/apis/core/install:go_default_library", "//pkg/scheduler/algorithm:go_default_library", - "//pkg/scheduler/internal/cache:go_default_library", "//staging/src/k8s.io/api/apps/v1:go_default_library", "//staging/src/k8s.io/api/core/v1:go_default_library", "//staging/src/k8s.io/api/policy/v1beta1:go_default_library", diff --git a/vendor/k8s.io/kubernetes/pkg/scheduler/testing/fake_lister.go b/vendor/k8s.io/kubernetes/pkg/scheduler/testing/fake_lister.go index 5fb365259..343800a38 100644 --- a/vendor/k8s.io/kubernetes/pkg/scheduler/testing/fake_lister.go +++ b/vendor/k8s.io/kubernetes/pkg/scheduler/testing/fake_lister.go @@ -26,7 +26,6 @@ import ( "k8s.io/apimachinery/pkg/labels" corelisters "k8s.io/client-go/listers/core/v1" "k8s.io/kubernetes/pkg/scheduler/algorithm" - schedulerinternalcache "k8s.io/kubernetes/pkg/scheduler/internal/cache" ) var _ algorithm.NodeLister = &FakeNodeLister{} @@ -55,7 +54,7 @@ func (f FakePodLister) List(s labels.Selector) (selected []*v1.Pod, err error) { } // FilteredList returns pods matching a pod filter and a label selector. -func (f FakePodLister) FilteredList(podFilter schedulerinternalcache.PodFilter, s labels.Selector) (selected []*v1.Pod, err error) { +func (f FakePodLister) FilteredList(podFilter algorithm.PodFilter, s labels.Selector) (selected []*v1.Pod, err error) { for _, pod := range f { if podFilter(pod) && s.Matches(labels.Set(pod.Labels)) { selected = append(selected, pod) diff --git a/vendor/k8s.io/kubernetes/pkg/util/ipvs/ipvs_linux.go b/vendor/k8s.io/kubernetes/pkg/util/ipvs/ipvs_linux.go index b4f53be6f..54dac2942 100644 --- a/vendor/k8s.io/kubernetes/pkg/util/ipvs/ipvs_linux.go +++ b/vendor/k8s.io/kubernetes/pkg/util/ipvs/ipvs_linux.go @@ -23,6 +23,7 @@ import ( "fmt" "net" "strings" + "sync" "syscall" libipvs "github.com/docker/libnetwork/ipvs" @@ -34,6 +35,7 @@ import ( type runner struct { exec utilexec.Interface ipvsHandle *libipvs.Handle + mu sync.Mutex // Protect Netlink calls } // Protocol is the IPVS service protocol type @@ -58,6 +60,8 @@ func (runner *runner) AddVirtualServer(vs *VirtualServer) error { if err != nil { return err } + runner.mu.Lock() + defer runner.mu.Unlock() return runner.ipvsHandle.NewService(svc) } @@ -67,6 +71,8 @@ func (runner *runner) UpdateVirtualServer(vs *VirtualServer) error { if err != nil { return err } + runner.mu.Lock() + defer runner.mu.Unlock() return runner.ipvsHandle.UpdateService(svc) } @@ -76,6 +82,8 @@ func (runner *runner) DeleteVirtualServer(vs *VirtualServer) error { if err != nil { return err } + runner.mu.Lock() + defer runner.mu.Unlock() return runner.ipvsHandle.DelService(svc) } @@ -85,7 +93,10 @@ func (runner *runner) GetVirtualServer(vs *VirtualServer) (*VirtualServer, error if err != nil { return nil, err } + runner.mu.Lock() ipvsSvc, err := runner.ipvsHandle.GetService(svc) + runner.mu.Unlock() + if err != nil { return nil, err } @@ -98,7 +109,9 @@ func (runner *runner) GetVirtualServer(vs *VirtualServer) (*VirtualServer, error // GetVirtualServers is part of ipvs.Interface. func (runner *runner) GetVirtualServers() ([]*VirtualServer, error) { + runner.mu.Lock() ipvsSvcs, err := runner.ipvsHandle.GetServices() + runner.mu.Unlock() if err != nil { return nil, err } @@ -115,6 +128,8 @@ func (runner *runner) GetVirtualServers() ([]*VirtualServer, error) { // Flush is part of ipvs.Interface. Currently we delete IPVS services one by one func (runner *runner) Flush() error { + runner.mu.Lock() + defer runner.mu.Unlock() return runner.ipvsHandle.Flush() } @@ -128,6 +143,8 @@ func (runner *runner) AddRealServer(vs *VirtualServer, rs *RealServer) error { if err != nil { return err } + runner.mu.Lock() + defer runner.mu.Unlock() return runner.ipvsHandle.NewDestination(svc, dst) } @@ -141,6 +158,8 @@ func (runner *runner) DeleteRealServer(vs *VirtualServer, rs *RealServer) error if err != nil { return err } + runner.mu.Lock() + defer runner.mu.Unlock() return runner.ipvsHandle.DelDestination(svc, dst) } @@ -153,6 +172,8 @@ func (runner *runner) UpdateRealServer(vs *VirtualServer, rs *RealServer) error if err != nil { return err } + runner.mu.Lock() + defer runner.mu.Unlock() return runner.ipvsHandle.UpdateDestination(svc, dst) } @@ -162,7 +183,9 @@ func (runner *runner) GetRealServers(vs *VirtualServer) ([]*RealServer, error) { if err != nil { return nil, err } + runner.mu.Lock() dsts, err := runner.ipvsHandle.GetDestinations(svc) + runner.mu.Unlock() if err != nil { return nil, err } diff --git a/vendor/k8s.io/kubernetes/pkg/util/mount/BUILD b/vendor/k8s.io/kubernetes/pkg/util/mount/BUILD index 221afb7a9..c9b9ce8a4 100644 --- a/vendor/k8s.io/kubernetes/pkg/util/mount/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/util/mount/BUILD @@ -9,6 +9,7 @@ go_library( "exec_mount_unsupported.go", "fake.go", "mount.go", + "mount_helper.go", "mount_linux.go", "mount_unsupported.go", "mount_windows.go", @@ -67,6 +68,7 @@ go_test( name = "go_default_test", srcs = [ "exec_mount_test.go", + "mount_helper_test.go", "mount_linux_test.go", "mount_test.go", "mount_windows_test.go", diff --git a/vendor/k8s.io/kubernetes/pkg/util/mount/fake.go b/vendor/k8s.io/kubernetes/pkg/util/mount/fake.go index 06e0fcccd..0e2952f3e 100644 --- a/vendor/k8s.io/kubernetes/pkg/util/mount/fake.go +++ b/vendor/k8s.io/kubernetes/pkg/util/mount/fake.go @@ -30,6 +30,8 @@ type FakeMounter struct { MountPoints []MountPoint Log []FakeAction Filesystem map[string]FileType + // Error to return for a path when calling IsLikelyNotMountPoint + MountCheckErrors map[string]error // Some tests run things in parallel, make sure the mounter does not produce // any golang's DATA RACE warnings. mutex sync.Mutex @@ -119,6 +121,7 @@ func (f *FakeMounter) Unmount(target string) error { } f.MountPoints = newMountpoints f.Log = append(f.Log, FakeAction{Action: FakeActionUnmount, Target: absTarget}) + delete(f.MountCheckErrors, target) return nil } @@ -141,7 +144,12 @@ func (f *FakeMounter) IsLikelyNotMountPoint(file string) (bool, error) { f.mutex.Lock() defer f.mutex.Unlock() - _, err := os.Stat(file) + err := f.MountCheckErrors[file] + if err != nil { + return false, err + } + + _, err = os.Stat(file) if err != nil { return true, err } diff --git a/vendor/k8s.io/kubernetes/pkg/util/mount/mount_helper.go b/vendor/k8s.io/kubernetes/pkg/util/mount/mount_helper.go new file mode 100644 index 000000000..a06871e47 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/util/mount/mount_helper.go @@ -0,0 +1,124 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package mount + +import ( + "fmt" + "os" + "syscall" + + "k8s.io/klog" +) + +// CleanupMountPoint unmounts the given path and +// deletes the remaining directory if successful. +// if extensiveMountPointCheck is true +// IsNotMountPoint will be called instead of IsLikelyNotMountPoint. +// IsNotMountPoint is more expensive but properly handles bind mounts within the same fs. +func CleanupMountPoint(mountPath string, mounter Interface, extensiveMountPointCheck bool) error { + // mounter.ExistsPath cannot be used because for containerized kubelet, we need to check + // the path in the kubelet container, not on the host. + pathExists, pathErr := PathExists(mountPath) + if !pathExists { + klog.Warningf("Warning: Unmount skipped because path does not exist: %v", mountPath) + return nil + } + corruptedMnt := IsCorruptedMnt(pathErr) + if pathErr != nil && !corruptedMnt { + return fmt.Errorf("Error checking path: %v", pathErr) + } + return doCleanupMountPoint(mountPath, mounter, extensiveMountPointCheck, corruptedMnt) +} + +// doCleanupMountPoint unmounts the given path and +// deletes the remaining directory if successful. +// if extensiveMountPointCheck is true +// IsNotMountPoint will be called instead of IsLikelyNotMountPoint. +// IsNotMountPoint is more expensive but properly handles bind mounts within the same fs. +// if corruptedMnt is true, it means that the mountPath is a corrupted mountpoint, and the mount point check +// will be skipped +func doCleanupMountPoint(mountPath string, mounter Interface, extensiveMountPointCheck bool, corruptedMnt bool) error { + if !corruptedMnt { + var notMnt bool + var err error + if extensiveMountPointCheck { + notMnt, err = IsNotMountPoint(mounter, mountPath) + } else { + notMnt, err = mounter.IsLikelyNotMountPoint(mountPath) + } + + if err != nil { + return err + } + + if notMnt { + klog.Warningf("Warning: %q is not a mountpoint, deleting", mountPath) + return os.Remove(mountPath) + } + } + + // Unmount the mount path + klog.V(4).Infof("%q is a mountpoint, unmounting", mountPath) + if err := mounter.Unmount(mountPath); err != nil { + return err + } + + notMnt, mntErr := mounter.IsLikelyNotMountPoint(mountPath) + if mntErr != nil { + return mntErr + } + if notMnt { + klog.V(4).Infof("%q is unmounted, deleting the directory", mountPath) + return os.Remove(mountPath) + } + return fmt.Errorf("Failed to unmount path %v", mountPath) +} + +// TODO: clean this up to use pkg/util/file/FileExists +// PathExists returns true if the specified path exists. +func PathExists(path string) (bool, error) { + _, err := os.Stat(path) + if err == nil { + return true, nil + } else if os.IsNotExist(err) { + return false, nil + } else if IsCorruptedMnt(err) { + return true, err + } else { + return false, err + } +} + +// IsCorruptedMnt return true if err is about corrupted mount point +func IsCorruptedMnt(err error) bool { + if err == nil { + return false + } + var underlyingError error + switch pe := err.(type) { + case nil: + return false + case *os.PathError: + underlyingError = pe.Err + case *os.LinkError: + underlyingError = pe.Err + case *os.SyscallError: + underlyingError = pe.Err + } + + return underlyingError == syscall.ENOTCONN || underlyingError == syscall.ESTALE || underlyingError == syscall.EIO +} diff --git a/vendor/k8s.io/kubernetes/pkg/util/mount/mount_helper_test.go b/vendor/k8s.io/kubernetes/pkg/util/mount/mount_helper_test.go new file mode 100644 index 000000000..3afcca379 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/util/mount/mount_helper_test.go @@ -0,0 +1,152 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package mount + +import ( + "fmt" + "io/ioutil" + "os" + "path/filepath" + "syscall" + "testing" +) + +func TestDoCleanupMountPoint(t *testing.T) { + const testMount = "test-mount" + const defaultPerm = 0750 + + tests := map[string]struct { + corruptedMnt bool + // Function that prepares the directory structure for the test under + // the given base directory. + // Returns a fake MountPoint, a fake error for the mount point, + // and error if the prepare function encountered a fatal error. + prepare func(base string) (MountPoint, error, error) + expectErr bool + }{ + "mount-ok": { + prepare: func(base string) (MountPoint, error, error) { + path := filepath.Join(base, testMount) + if err := os.MkdirAll(path, defaultPerm); err != nil { + return MountPoint{}, nil, err + } + return MountPoint{Device: "/dev/sdb", Path: path}, nil, nil + }, + }, + "mount-corrupted": { + prepare: func(base string) (MountPoint, error, error) { + path := filepath.Join(base, testMount) + if err := os.MkdirAll(path, defaultPerm); err != nil { + return MountPoint{}, nil, err + } + return MountPoint{Device: "/dev/sdb", Path: path}, os.NewSyscallError("fake", syscall.ESTALE), nil + }, + corruptedMnt: true, + }, + "mount-err-not-corrupted": { + prepare: func(base string) (MountPoint, error, error) { + path := filepath.Join(base, testMount) + if err := os.MkdirAll(path, defaultPerm); err != nil { + return MountPoint{}, nil, err + } + return MountPoint{Device: "/dev/sdb", Path: path}, os.NewSyscallError("fake", syscall.ETIMEDOUT), nil + }, + expectErr: true, + }, + } + + for name, tt := range tests { + t.Run(name, func(t *testing.T) { + + tmpDir, err := ioutil.TempDir("", "unmount-mount-point-test") + if err != nil { + t.Fatalf("failed to create tmpdir: %v", err) + } + defer os.RemoveAll(tmpDir) + + if tt.prepare == nil { + t.Fatalf("prepare function required") + } + + mountPoint, mountError, err := tt.prepare(tmpDir) + if err != nil { + t.Fatalf("failed to prepare test: %v", err) + } + + fake := &FakeMounter{ + MountPoints: []MountPoint{mountPoint}, + MountCheckErrors: map[string]error{mountPoint.Path: mountError}, + } + + err = doCleanupMountPoint(mountPoint.Path, fake, true, tt.corruptedMnt) + if tt.expectErr { + if err == nil { + t.Errorf("test %s failed, expected error, got none", name) + } + if err := validateDirExists(mountPoint.Path); err != nil { + t.Errorf("test %s failed, mount path doesn't exist: %v", name, err) + } + } + if !tt.expectErr { + if err != nil { + t.Errorf("test %s failed: %v", name, err) + } + if err := validateDirNotExists(mountPoint.Path); err != nil { + t.Errorf("test %s failed, mount path still exists: %v", name, err) + } + } + }) + } +} + +func validateDirEmpty(dir string) error { + files, err := ioutil.ReadDir(dir) + if err != nil { + return err + } + + if len(files) != 0 { + return fmt.Errorf("Directory %q is not empty", dir) + } + return nil +} + +func validateDirExists(dir string) error { + _, err := ioutil.ReadDir(dir) + if err != nil { + return err + } + return nil +} + +func validateDirNotExists(dir string) error { + _, err := ioutil.ReadDir(dir) + if os.IsNotExist(err) { + return nil + } + if err != nil { + return err + } + return fmt.Errorf("dir %q still exists", dir) +} + +func validateFileExists(file string) error { + if _, err := os.Stat(file); err != nil { + return err + } + return nil +} diff --git a/vendor/k8s.io/kubernetes/pkg/util/mount/mount_linux.go b/vendor/k8s.io/kubernetes/pkg/util/mount/mount_linux.go index 6ebeff053..85a901696 100644 --- a/vendor/k8s.io/kubernetes/pkg/util/mount/mount_linux.go +++ b/vendor/k8s.io/kubernetes/pkg/util/mount/mount_linux.go @@ -55,6 +55,7 @@ const ( fsckErrorsUncorrected = 4 // place for subpath mounts + // TODO: pass in directory using kubelet_getters instead containerSubPathDirectoryName = "volume-subpaths" // syscall.Openat flags used to traverse directories not following symlinks nofollowFlags = unix.O_RDONLY | unix.O_NOFOLLOW @@ -890,15 +891,22 @@ func doCleanSubPaths(mounter Interface, podDir string, volumeName string) error // scan /var/lib/kubelet/pods//volume-subpaths///* fullContainerDirPath := filepath.Join(subPathDir, containerDir.Name()) - subPaths, err := ioutil.ReadDir(fullContainerDirPath) - if err != nil { - return fmt.Errorf("error reading %s: %s", fullContainerDirPath, err) - } - for _, subPath := range subPaths { - if err = doCleanSubPath(mounter, fullContainerDirPath, subPath.Name()); err != nil { + err = filepath.Walk(fullContainerDirPath, func(path string, info os.FileInfo, err error) error { + if path == fullContainerDirPath { + // Skip top level directory + return nil + } + + // pass through errors and let doCleanSubPath handle them + if err = doCleanSubPath(mounter, fullContainerDirPath, filepath.Base(path)); err != nil { return err } + return nil + }) + if err != nil { + return fmt.Errorf("error processing %s: %s", fullContainerDirPath, err) } + // Whole container has been processed, remove its directory. if err := os.Remove(fullContainerDirPath); err != nil { return fmt.Errorf("error deleting %s: %s", fullContainerDirPath, err) @@ -925,22 +933,12 @@ func doCleanSubPath(mounter Interface, fullContainerDirPath, subPathIndex string // process /var/lib/kubelet/pods//volume-subpaths/// klog.V(4).Infof("Cleaning up subpath mounts for subpath %v", subPathIndex) fullSubPath := filepath.Join(fullContainerDirPath, subPathIndex) - notMnt, err := IsNotMountPoint(mounter, fullSubPath) - if err != nil { - return fmt.Errorf("error checking %s for mount: %s", fullSubPath, err) + + if err := CleanupMountPoint(fullSubPath, mounter, true); err != nil { + return fmt.Errorf("error cleaning subpath mount %s: %s", fullSubPath, err) } - // Unmount it - if !notMnt { - if err = mounter.Unmount(fullSubPath); err != nil { - return fmt.Errorf("error unmounting %s: %s", fullSubPath, err) - } - klog.V(5).Infof("Unmounted %s", fullSubPath) - } - // Remove it *non*-recursively, just in case there were some hiccups. - if err = os.Remove(fullSubPath); err != nil { - return fmt.Errorf("error deleting %s: %s", fullSubPath, err) - } - klog.V(5).Infof("Removed %s", fullSubPath) + + klog.V(4).Infof("Successfully cleaned subpath directory %s", fullSubPath) return nil } diff --git a/vendor/k8s.io/kubernetes/pkg/util/mount/mount_linux_test.go b/vendor/k8s.io/kubernetes/pkg/util/mount/mount_linux_test.go index 89dbfdf04..cbd027632 100644 --- a/vendor/k8s.io/kubernetes/pkg/util/mount/mount_linux_test.go +++ b/vendor/k8s.io/kubernetes/pkg/util/mount/mount_linux_test.go @@ -666,44 +666,6 @@ func TestSafeMakeDir(t *testing.T) { } } -func validateDirEmpty(dir string) error { - files, err := ioutil.ReadDir(dir) - if err != nil { - return err - } - - if len(files) != 0 { - return fmt.Errorf("Directory %q is not empty", dir) - } - return nil -} - -func validateDirExists(dir string) error { - _, err := ioutil.ReadDir(dir) - if err != nil { - return err - } - return nil -} - -func validateDirNotExists(dir string) error { - _, err := ioutil.ReadDir(dir) - if os.IsNotExist(err) { - return nil - } - if err != nil { - return err - } - return fmt.Errorf("dir %q still exists", dir) -} - -func validateFileExists(file string) error { - if _, err := os.Stat(file); err != nil { - return err - } - return nil -} - func TestRemoveEmptyDirs(t *testing.T) { defaultPerm := os.FileMode(0750) tests := []struct { diff --git a/vendor/k8s.io/kubernetes/pkg/volume/azure_dd/azure_common.go b/vendor/k8s.io/kubernetes/pkg/volume/azure_dd/azure_common.go index 9de53fe33..174510c5d 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/azure_dd/azure_common.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/azure_dd/azure_common.go @@ -40,7 +40,7 @@ import ( const ( defaultStorageAccountType = compute.StandardLRS defaultAzureDiskKind = v1.AzureManagedDisk - defaultAzureDataDiskCachingMode = v1.AzureDataDiskCachingNone + defaultAzureDataDiskCachingMode = v1.AzureDataDiskCachingReadOnly ) type dataDisk struct { diff --git a/vendor/k8s.io/kubernetes/pkg/volume/azure_dd/azure_dd.go b/vendor/k8s.io/kubernetes/pkg/volume/azure_dd/azure_dd.go index 961d5a357..4a082addf 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/azure_dd/azure_dd.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/azure_dd/azure_dd.go @@ -187,7 +187,7 @@ func getMaxDataDiskCount(instanceType string, sizeList *[]compute.VirtualMachine continue } if strings.ToUpper(*size.Name) == vmsize { - klog.V(2).Infof("got a matching size in getMaxDataDiskCount, Name: %s, MaxDataDiskCount: %d", *size.Name, *size.MaxDataDiskCount) + klog.V(12).Infof("got a matching size in getMaxDataDiskCount, Name: %s, MaxDataDiskCount: %d", *size.Name, *size.MaxDataDiskCount) return int64(*size.MaxDataDiskCount) } } diff --git a/vendor/k8s.io/kubernetes/pkg/volume/portworx/portworx.go b/vendor/k8s.io/kubernetes/pkg/volume/portworx/portworx.go index 212a4c23d..e2cb89829 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/portworx/portworx.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/portworx/portworx.go @@ -20,6 +20,7 @@ import ( "fmt" "os" + volumeclient "github.com/libopenstorage/openstorage/api/client/volume" "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -43,7 +44,7 @@ func ProbeVolumePlugins() []volume.VolumePlugin { type portworxVolumePlugin struct { host volume.VolumeHost - util *PortworxVolumeUtil + util *portworxVolumeUtil } var _ volume.VolumePlugin = &portworxVolumePlugin{} @@ -61,8 +62,18 @@ func getPath(uid types.UID, volName string, host volume.VolumeHost) string { } func (plugin *portworxVolumePlugin) Init(host volume.VolumeHost) error { + client, err := volumeclient.NewDriverClient( + fmt.Sprintf("http://%s:%d", host.GetHostName(), osdMgmtDefaultPort), + pxdDriverName, osdDriverVersion, pxDriverName) + if err != nil { + return err + } + plugin.host = host - plugin.util = &PortworxVolumeUtil{} + plugin.util = &portworxVolumeUtil{ + portworxClient: client, + } + return nil } diff --git a/vendor/k8s.io/kubernetes/pkg/volume/portworx/portworx_util.go b/vendor/k8s.io/kubernetes/pkg/volume/portworx/portworx_util.go index 62b3e3f4d..7ac5522da 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/portworx/portworx_util.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/portworx/portworx_util.go @@ -34,22 +34,22 @@ import ( ) const ( - osdMgmtPort = "9001" - osdDriverVersion = "v1" - pxdDriverName = "pxd" - pvcClaimLabel = "pvc" - pvcNamespaceLabel = "namespace" - pxServiceName = "portworx-service" - pxDriverName = "pxd-sched" + osdMgmtDefaultPort = 9001 + osdDriverVersion = "v1" + pxdDriverName = "pxd" + pvcClaimLabel = "pvc" + pvcNamespaceLabel = "namespace" + pxServiceName = "portworx-service" + pxDriverName = "pxd-sched" ) -type PortworxVolumeUtil struct { +type portworxVolumeUtil struct { portworxClient *osdclient.Client } // CreateVolume creates a Portworx volume. -func (util *PortworxVolumeUtil) CreateVolume(p *portworxVolumeProvisioner) (string, int64, map[string]string, error) { - driver, err := util.getPortworxDriver(p.plugin.host, false /*localOnly*/) +func (util *portworxVolumeUtil) CreateVolume(p *portworxVolumeProvisioner) (string, int64, map[string]string, error) { + driver, err := util.getPortworxDriver(p.plugin.host) if err != nil || driver == nil { klog.Errorf("Failed to get portworx driver. Err: %v", err) return "", 0, nil, err @@ -112,8 +112,8 @@ func (util *PortworxVolumeUtil) CreateVolume(p *portworxVolumeProvisioner) (stri } // DeleteVolume deletes a Portworx volume -func (util *PortworxVolumeUtil) DeleteVolume(d *portworxVolumeDeleter) error { - driver, err := util.getPortworxDriver(d.plugin.host, false /*localOnly*/) +func (util *portworxVolumeUtil) DeleteVolume(d *portworxVolumeDeleter) error { + driver, err := util.getPortworxDriver(d.plugin.host) if err != nil || driver == nil { klog.Errorf("Failed to get portworx driver. Err: %v", err) return err @@ -128,8 +128,8 @@ func (util *PortworxVolumeUtil) DeleteVolume(d *portworxVolumeDeleter) error { } // AttachVolume attaches a Portworx Volume -func (util *PortworxVolumeUtil) AttachVolume(m *portworxVolumeMounter, attachOptions map[string]string) (string, error) { - driver, err := util.getPortworxDriver(m.plugin.host, true /*localOnly*/) +func (util *portworxVolumeUtil) AttachVolume(m *portworxVolumeMounter, attachOptions map[string]string) (string, error) { + driver, err := util.getLocalPortworxDriver(m.plugin.host) if err != nil || driver == nil { klog.Errorf("Failed to get portworx driver. Err: %v", err) return "", err @@ -144,8 +144,8 @@ func (util *PortworxVolumeUtil) AttachVolume(m *portworxVolumeMounter, attachOpt } // DetachVolume detaches a Portworx Volume -func (util *PortworxVolumeUtil) DetachVolume(u *portworxVolumeUnmounter) error { - driver, err := util.getPortworxDriver(u.plugin.host, true /*localOnly*/) +func (util *portworxVolumeUtil) DetachVolume(u *portworxVolumeUnmounter) error { + driver, err := util.getLocalPortworxDriver(u.plugin.host) if err != nil || driver == nil { klog.Errorf("Failed to get portworx driver. Err: %v", err) return err @@ -160,8 +160,8 @@ func (util *PortworxVolumeUtil) DetachVolume(u *portworxVolumeUnmounter) error { } // MountVolume mounts a Portworx Volume on the specified mountPath -func (util *PortworxVolumeUtil) MountVolume(m *portworxVolumeMounter, mountPath string) error { - driver, err := util.getPortworxDriver(m.plugin.host, true /*localOnly*/) +func (util *portworxVolumeUtil) MountVolume(m *portworxVolumeMounter, mountPath string) error { + driver, err := util.getLocalPortworxDriver(m.plugin.host) if err != nil || driver == nil { klog.Errorf("Failed to get portworx driver. Err: %v", err) return err @@ -176,8 +176,8 @@ func (util *PortworxVolumeUtil) MountVolume(m *portworxVolumeMounter, mountPath } // UnmountVolume unmounts a Portworx Volume -func (util *PortworxVolumeUtil) UnmountVolume(u *portworxVolumeUnmounter, mountPath string) error { - driver, err := util.getPortworxDriver(u.plugin.host, true /*localOnly*/) +func (util *portworxVolumeUtil) UnmountVolume(u *portworxVolumeUnmounter, mountPath string) error { + driver, err := util.getLocalPortworxDriver(u.plugin.host) if err != nil || driver == nil { klog.Errorf("Failed to get portworx driver. Err: %v", err) return err @@ -191,8 +191,8 @@ func (util *PortworxVolumeUtil) UnmountVolume(u *portworxVolumeUnmounter, mountP return nil } -func (util *PortworxVolumeUtil) ResizeVolume(spec *volume.Spec, newSize resource.Quantity, volumeHost volume.VolumeHost) error { - driver, err := util.getPortworxDriver(volumeHost, false /*localOnly*/) +func (util *portworxVolumeUtil) ResizeVolume(spec *volume.Spec, newSize resource.Quantity, volumeHost volume.VolumeHost) error { + driver, err := util.getPortworxDriver(volumeHost) if err != nil || driver == nil { klog.Errorf("Failed to get portworx driver. Err: %v", err) return err @@ -254,8 +254,8 @@ func isClientValid(client *osdclient.Client) (bool, error) { return true, nil } -func createDriverClient(hostname string) (*osdclient.Client, error) { - client, err := volumeclient.NewDriverClient("http://"+hostname+":"+osdMgmtPort, +func createDriverClient(hostname string, port int32) (*osdclient.Client, error) { + client, err := volumeclient.NewDriverClient(fmt.Sprintf("http://%s:%d", hostname, port), pxdDriverName, osdDriverVersion, pxDriverName) if err != nil { return nil, err @@ -268,65 +268,105 @@ func createDriverClient(hostname string) (*osdclient.Client, error) { } } -// getPortworxDriver() returns a Portworx volume driver which can be used for volume operations -// localOnly: If true, the returned driver will be connected to Portworx API server on volume host. -// If false, driver will be connected to API server on volume host or Portworx k8s service cluster IP -// This flag is required to explicitly force certain operations (mount, unmount, detach, attach) to -// go to the volume host instead of the k8s service which might route it to any host. This pertains to how -// Portworx mounts and attaches a volume to the running container. The node getting these requests needs to -// see the pod container mounts (specifically /var/lib/kubelet/pods/) -// Operations like create and delete volume don't need to be restricted to local volume host since -// any node in the Portworx cluster can co-ordinate the create/delete request and forward the operations to -// the Portworx node that will own/owns the data. -func (util *PortworxVolumeUtil) getPortworxDriver(volumeHost volume.VolumeHost, localOnly bool) (volumeapi.VolumeDriver, error) { - var err error - if localOnly { - util.portworxClient, err = createDriverClient(volumeHost.GetHostName()) - if err != nil { - return nil, err - } else { - klog.V(4).Infof("Using portworx local service at: %v as api endpoint", volumeHost.GetHostName()) - return volumeclient.VolumeDriver(util.portworxClient), nil - } - } - +// getPortworxDriver returns a Portworx volume driver which can be used for cluster wide operations. +// Operations like create and delete volume don't need to be restricted to local volume host since +// any node in the Portworx cluster can co-ordinate the create/delete request and forward the operations to +// the Portworx node that will own/owns the data. +func (util *portworxVolumeUtil) getPortworxDriver(volumeHost volume.VolumeHost) (volumeapi.VolumeDriver, error) { // check if existing saved client is valid if isValid, _ := isClientValid(util.portworxClient); isValid { return volumeclient.VolumeDriver(util.portworxClient), nil } // create new client - util.portworxClient, err = createDriverClient(volumeHost.GetHostName()) // for backward compatibility + var err error + util.portworxClient, err = createDriverClient(volumeHost.GetHostName(), osdMgmtDefaultPort) // for backward compatibility if err != nil || util.portworxClient == nil { - // Create client from portworx service - kubeClient := volumeHost.GetKubeClient() - if kubeClient == nil { - klog.Error("Failed to get kubeclient when creating portworx client") - return nil, nil - } - - opts := metav1.GetOptions{} - svc, err := kubeClient.CoreV1().Services(api.NamespaceSystem).Get(pxServiceName, opts) + // Create client from portworx k8s service. + svc, err := getPortworxService(volumeHost) if err != nil { - klog.Errorf("Failed to get service. Err: %v", err) return nil, err } - if svc == nil { - klog.Errorf("Service: %v not found. Consult Portworx docs to deploy it.", pxServiceName) - return nil, err - } - - util.portworxClient, err = createDriverClient(svc.Spec.ClusterIP) + // The port here is always the default one since it's the service port + util.portworxClient, err = createDriverClient(svc.Spec.ClusterIP, osdMgmtDefaultPort) if err != nil || util.portworxClient == nil { klog.Errorf("Failed to connect to portworx service. Err: %v", err) return nil, err } - klog.Infof("Using portworx cluster service at: %v as api endpoint", svc.Spec.ClusterIP) + klog.Infof("Using portworx cluster service at: %v:%d as api endpoint", + svc.Spec.ClusterIP, osdMgmtDefaultPort) } else { - klog.Infof("Using portworx service at: %v as api endpoint", volumeHost.GetHostName()) + klog.Infof("Using portworx service at: %v:%d as api endpoint", + volumeHost.GetHostName(), osdMgmtDefaultPort) } return volumeclient.VolumeDriver(util.portworxClient), nil } + +// getLocalPortworxDriver returns driver connected to Portworx API server on volume host. +// This is required to force certain operations (mount, unmount, detach, attach) to +// go to the volume host instead of the k8s service which might route it to any host. This pertains to how +// Portworx mounts and attaches a volume to the running container. The node getting these requests needs to +// see the pod container mounts (specifically /var/lib/kubelet/pods/) +func (util *portworxVolumeUtil) getLocalPortworxDriver(volumeHost volume.VolumeHost) (volumeapi.VolumeDriver, error) { + if util.portworxClient != nil { + // check if existing saved client is valid + if isValid, _ := isClientValid(util.portworxClient); isValid { + return volumeclient.VolumeDriver(util.portworxClient), nil + } + } + + // Lookup port + svc, err := getPortworxService(volumeHost) + if err != nil { + return nil, err + } + + osgMgmtPort := lookupPXAPIPortFromService(svc) + util.portworxClient, err = createDriverClient(volumeHost.GetHostName(), osgMgmtPort) + if err != nil { + return nil, err + } + + klog.Infof("Using portworx local service at: %v:%d as api endpoint", + volumeHost.GetHostName(), osgMgmtPort) + return volumeclient.VolumeDriver(util.portworxClient), nil +} + +// lookupPXAPIPortFromService goes over all the ports in the given service and returns the target +// port for osdMgmtDefaultPort +func lookupPXAPIPortFromService(svc *v1.Service) int32 { + for _, p := range svc.Spec.Ports { + if p.Port == osdMgmtDefaultPort { + return p.TargetPort.IntVal + } + } + return osdMgmtDefaultPort // default +} + +// getPortworxService returns the portworx cluster service from the API server +func getPortworxService(host volume.VolumeHost) (*v1.Service, error) { + kubeClient := host.GetKubeClient() + if kubeClient == nil { + err := fmt.Errorf("Failed to get kubeclient when creating portworx client") + klog.Errorf(err.Error()) + return nil, err + } + + opts := metav1.GetOptions{} + svc, err := kubeClient.CoreV1().Services(api.NamespaceSystem).Get(pxServiceName, opts) + if err != nil { + klog.Errorf("Failed to get service. Err: %v", err) + return nil, err + } + + if svc == nil { + err = fmt.Errorf("Service: %v not found. Consult Portworx docs to deploy it.", pxServiceName) + klog.Errorf(err.Error()) + return nil, err + } + + return svc, nil +} diff --git a/vendor/k8s.io/kubernetes/pkg/volume/testing/testing.go b/vendor/k8s.io/kubernetes/pkg/volume/testing/testing.go index 4c116aa59..2791d9bd9 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/testing/testing.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/testing/testing.go @@ -504,6 +504,94 @@ func (plugin *FakeVolumePlugin) VolumeLimitKey(spec *Spec) string { return plugin.LimitKey } +// FakeBasicVolumePlugin implements a basic volume plugin. It wrappers on +// FakeVolumePlugin but implements VolumePlugin interface only. +// It is useful to test logic involving plugin interfaces. +type FakeBasicVolumePlugin struct { + Plugin FakeVolumePlugin +} + +func (f *FakeBasicVolumePlugin) GetPluginName() string { + return f.Plugin.GetPluginName() +} + +func (f *FakeBasicVolumePlugin) GetVolumeName(spec *Spec) (string, error) { + return f.Plugin.GetVolumeName(spec) +} + +// CanSupport tests whether the plugin supports a given volume specification by +// testing volume spec name begins with plugin name or not. +// This is useful to choose plugin by volume in testing. +func (f *FakeBasicVolumePlugin) CanSupport(spec *Spec) bool { + return strings.HasPrefix(spec.Name(), f.GetPluginName()) +} + +func (f *FakeBasicVolumePlugin) ConstructVolumeSpec(ame, mountPath string) (*Spec, error) { + return f.Plugin.ConstructVolumeSpec(ame, mountPath) +} + +func (f *FakeBasicVolumePlugin) Init(ost VolumeHost) error { + return f.Plugin.Init(ost) +} + +func (f *FakeBasicVolumePlugin) NewMounter(spec *Spec, pod *v1.Pod, opts VolumeOptions) (Mounter, error) { + return f.Plugin.NewMounter(spec, pod, opts) +} + +func (f *FakeBasicVolumePlugin) NewUnmounter(volName string, podUID types.UID) (Unmounter, error) { + return f.Plugin.NewUnmounter(volName, podUID) +} + +func (f *FakeBasicVolumePlugin) RequiresRemount() bool { + return f.Plugin.RequiresRemount() +} + +func (f *FakeBasicVolumePlugin) SupportsBulkVolumeVerification() bool { + return f.Plugin.SupportsBulkVolumeVerification() +} + +func (f *FakeBasicVolumePlugin) SupportsMountOption() bool { + return f.Plugin.SupportsMountOption() +} + +var _ VolumePlugin = &FakeBasicVolumePlugin{} + +// FakeDeviceMountableVolumePlugin implements an device mountable plugin based on FakeBasicVolumePlugin. +type FakeDeviceMountableVolumePlugin struct { + FakeBasicVolumePlugin +} + +func (f *FakeDeviceMountableVolumePlugin) NewDeviceMounter() (DeviceMounter, error) { + return f.Plugin.NewDeviceMounter() +} + +func (f *FakeDeviceMountableVolumePlugin) NewDeviceUnmounter() (DeviceUnmounter, error) { + return f.Plugin.NewDeviceUnmounter() +} + +func (f *FakeDeviceMountableVolumePlugin) GetDeviceMountRefs(deviceMountPath string) ([]string, error) { + return f.Plugin.GetDeviceMountRefs(deviceMountPath) +} + +var _ VolumePlugin = &FakeDeviceMountableVolumePlugin{} +var _ DeviceMountableVolumePlugin = &FakeDeviceMountableVolumePlugin{} + +// FakeAttachableVolumePlugin implements an attachable plugin based on FakeDeviceMountableVolumePlugin. +type FakeAttachableVolumePlugin struct { + FakeDeviceMountableVolumePlugin +} + +func (f *FakeAttachableVolumePlugin) NewAttacher() (Attacher, error) { + return f.Plugin.NewAttacher() +} + +func (f *FakeAttachableVolumePlugin) NewDetacher() (Detacher, error) { + return f.Plugin.NewDetacher() +} + +var _ VolumePlugin = &FakeAttachableVolumePlugin{} +var _ AttachableVolumePlugin = &FakeAttachableVolumePlugin{} + type FakeFileVolumePlugin struct { } diff --git a/vendor/k8s.io/kubernetes/pkg/volume/util/BUILD b/vendor/k8s.io/kubernetes/pkg/volume/util/BUILD index 64eac778d..8ccd019eb 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/util/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/volume/util/BUILD @@ -63,7 +63,6 @@ go_test( "//pkg/apis/core/v1/helper:go_default_library", "//pkg/features:go_default_library", "//pkg/kubelet/apis:go_default_library", - "//pkg/util/mount:go_default_library", "//pkg/util/slice:go_default_library", "//pkg/volume:go_default_library", "//staging/src/k8s.io/api/core/v1:go_default_library", @@ -73,8 +72,12 @@ go_test( "//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library", "//staging/src/k8s.io/apiserver/pkg/util/feature/testing:go_default_library", - "//staging/src/k8s.io/client-go/util/testing:go_default_library", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux": [ + "//staging/src/k8s.io/client-go/util/testing:go_default_library", + ], + "//conditions:default": [], + }), ) filegroup( diff --git a/vendor/k8s.io/kubernetes/pkg/volume/util/operationexecutor/operation_executor.go b/vendor/k8s.io/kubernetes/pkg/volume/util/operationexecutor/operation_executor.go index 745910dc2..cfcc249f8 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/util/operationexecutor/operation_executor.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/util/operationexecutor/operation_executor.go @@ -725,7 +725,7 @@ func (oe *operationExecutor) MountVolume( if fsVolume { // Filesystem volume case // Mount/remount a volume when a volume is attached - generatedOperations, err = oe.operationGenerator.GenerateMountVolumeFunc( + generatedOperations = oe.operationGenerator.GenerateMountVolumeFunc( waitForAttachTimeout, volumeToMount, actualStateOfWorld, isRemount) } else { diff --git a/vendor/k8s.io/kubernetes/pkg/volume/util/operationexecutor/operation_executor_test.go b/vendor/k8s.io/kubernetes/pkg/volume/util/operationexecutor/operation_executor_test.go index c7d0c9c80..00816341c 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/util/operationexecutor/operation_executor_test.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/util/operationexecutor/operation_executor_test.go @@ -389,14 +389,14 @@ func newFakeOperationGenerator(ch chan interface{}, quit chan interface{}) Opera } } -func (fopg *fakeOperationGenerator) GenerateMountVolumeFunc(waitForAttachTimeout time.Duration, volumeToMount VolumeToMount, actualStateOfWorldMounterUpdater ActualStateOfWorldMounterUpdater, isRemount bool) (volumetypes.GeneratedOperations, error) { +func (fopg *fakeOperationGenerator) GenerateMountVolumeFunc(waitForAttachTimeout time.Duration, volumeToMount VolumeToMount, actualStateOfWorldMounterUpdater ActualStateOfWorldMounterUpdater, isRemount bool) volumetypes.GeneratedOperations { opFunc := func() (error, error) { startOperationAndBlock(fopg.ch, fopg.quit) return nil, nil } return volumetypes.GeneratedOperations{ OperationFunc: opFunc, - }, nil + } } func (fopg *fakeOperationGenerator) GenerateUnmountVolumeFunc(volumeToUnmount MountedVolume, actualStateOfWorld ActualStateOfWorldMounterUpdater, podsDir string) (volumetypes.GeneratedOperations, error) { opFunc := func() (error, error) { diff --git a/vendor/k8s.io/kubernetes/pkg/volume/util/operationexecutor/operation_generator.go b/vendor/k8s.io/kubernetes/pkg/volume/util/operationexecutor/operation_generator.go index 36c10b677..e0123d561 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/util/operationexecutor/operation_generator.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/util/operationexecutor/operation_generator.go @@ -40,6 +40,10 @@ import ( "k8s.io/kubernetes/pkg/volume/util/volumepathhandler" ) +const ( + unknownVolumePlugin string = "UnknownVolumePlugin" +) + var _ OperationGenerator = &operationGenerator{} type operationGenerator struct { @@ -82,7 +86,7 @@ func NewOperationGenerator(kubeClient clientset.Interface, // OperationGenerator interface that extracts out the functions from operation_executor to make it dependency injectable type OperationGenerator interface { // Generates the MountVolume function needed to perform the mount of a volume plugin - GenerateMountVolumeFunc(waitForAttachTimeout time.Duration, volumeToMount VolumeToMount, actualStateOfWorldMounterUpdater ActualStateOfWorldMounterUpdater, isRemount bool) (volumetypes.GeneratedOperations, error) + GenerateMountVolumeFunc(waitForAttachTimeout time.Duration, volumeToMount VolumeToMount, actualStateOfWorldMounterUpdater ActualStateOfWorldMounterUpdater, isRemount bool) volumetypes.GeneratedOperations // Generates the UnmountVolume function needed to perform the unmount of a volume plugin GenerateUnmountVolumeFunc(volumeToUnmount MountedVolume, actualStateOfWorld ActualStateOfWorldMounterUpdater, podsDir string) (volumetypes.GeneratedOperations, error) @@ -436,61 +440,61 @@ func (og *operationGenerator) GenerateMountVolumeFunc( waitForAttachTimeout time.Duration, volumeToMount VolumeToMount, actualStateOfWorld ActualStateOfWorldMounterUpdater, - isRemount bool) (volumetypes.GeneratedOperations, error) { + isRemount bool) volumetypes.GeneratedOperations { // Get mounter plugin + volumePluginName := unknownVolumePlugin volumePlugin, err := og.volumePluginMgr.FindPluginBySpec(volumeToMount.VolumeSpec) - if err != nil || volumePlugin == nil { - return volumetypes.GeneratedOperations{}, volumeToMount.GenerateErrorDetailed("MountVolume.FindPluginBySpec failed", err) - } - - affinityErr := checkNodeAffinity(og, volumeToMount, volumePlugin) - if affinityErr != nil { - eventErr, detailedErr := volumeToMount.GenerateError("MountVolume.NodeAffinity check failed", affinityErr) - og.recorder.Eventf(volumeToMount.Pod, v1.EventTypeWarning, kevents.FailedMountVolume, eventErr.Error()) - return volumetypes.GeneratedOperations{}, detailedErr - } - - volumeMounter, newMounterErr := volumePlugin.NewMounter( - volumeToMount.VolumeSpec, - volumeToMount.Pod, - volume.VolumeOptions{}) - if newMounterErr != nil { - eventErr, detailedErr := volumeToMount.GenerateError("MountVolume.NewMounter initialization failed", newMounterErr) - og.recorder.Eventf(volumeToMount.Pod, v1.EventTypeWarning, kevents.FailedMountVolume, eventErr.Error()) - return volumetypes.GeneratedOperations{}, detailedErr - } - - mountCheckError := checkMountOptionSupport(og, volumeToMount, volumePlugin) - - if mountCheckError != nil { - eventErr, detailedErr := volumeToMount.GenerateError("MountVolume.MountOptionSupport check failed", mountCheckError) - og.recorder.Eventf(volumeToMount.Pod, v1.EventTypeWarning, kevents.UnsupportedMountOption, eventErr.Error()) - return volumetypes.GeneratedOperations{}, detailedErr - } - - // Get attacher, if possible - attachableVolumePlugin, _ := - og.volumePluginMgr.FindAttachablePluginBySpec(volumeToMount.VolumeSpec) - var volumeAttacher volume.Attacher - if attachableVolumePlugin != nil { - volumeAttacher, _ = attachableVolumePlugin.NewAttacher() - } - - // get deviceMounter, if possible - deviceMountableVolumePlugin, _ := og.volumePluginMgr.FindDeviceMountablePluginBySpec(volumeToMount.VolumeSpec) - var volumeDeviceMounter volume.DeviceMounter - if deviceMountableVolumePlugin != nil { - volumeDeviceMounter, _ = deviceMountableVolumePlugin.NewDeviceMounter() - } - - var fsGroup *int64 - if volumeToMount.Pod.Spec.SecurityContext != nil && - volumeToMount.Pod.Spec.SecurityContext.FSGroup != nil { - fsGroup = volumeToMount.Pod.Spec.SecurityContext.FSGroup + if err == nil && volumePlugin != nil { + volumePluginName = volumePlugin.GetPluginName() } mountVolumeFunc := func() (error, error) { + if err != nil || volumePlugin == nil { + return volumeToMount.GenerateError("MountVolume.FindPluginBySpec failed", err) + } + + affinityErr := checkNodeAffinity(og, volumeToMount, volumePlugin) + if affinityErr != nil { + return volumeToMount.GenerateError("MountVolume.NodeAffinity check failed", affinityErr) + } + + volumeMounter, newMounterErr := volumePlugin.NewMounter( + volumeToMount.VolumeSpec, + volumeToMount.Pod, + volume.VolumeOptions{}) + if newMounterErr != nil { + return volumeToMount.GenerateError("MountVolume.NewMounter initialization failed", newMounterErr) + + } + + mountCheckError := checkMountOptionSupport(og, volumeToMount, volumePlugin) + + if mountCheckError != nil { + return volumeToMount.GenerateError("MountVolume.MountOptionSupport check failed", mountCheckError) + } + + // Get attacher, if possible + attachableVolumePlugin, _ := + og.volumePluginMgr.FindAttachablePluginBySpec(volumeToMount.VolumeSpec) + var volumeAttacher volume.Attacher + if attachableVolumePlugin != nil { + volumeAttacher, _ = attachableVolumePlugin.NewAttacher() + } + + // get deviceMounter, if possible + deviceMountableVolumePlugin, _ := og.volumePluginMgr.FindDeviceMountablePluginBySpec(volumeToMount.VolumeSpec) + var volumeDeviceMounter volume.DeviceMounter + if deviceMountableVolumePlugin != nil { + volumeDeviceMounter, _ = deviceMountableVolumePlugin.NewDeviceMounter() + } + + var fsGroup *int64 + if volumeToMount.Pod.Spec.SecurityContext != nil && + volumeToMount.Pod.Spec.SecurityContext.FSGroup != nil { + fsGroup = volumeToMount.Pod.Spec.SecurityContext.FSGroup + } + devicePath := volumeToMount.DevicePath if volumeAttacher != nil { // Wait for attachable volumes to finish attaching @@ -536,7 +540,7 @@ func (og *operationGenerator) GenerateMountVolumeFunc( // resizeFileSystem will resize the file system if user has requested a resize of // underlying persistent volume and is allowed to do so. - resizeSimpleError, resizeDetailedError := og.resizeFileSystem(volumeToMount, devicePath, deviceMountPath, volumePlugin.GetPluginName()) + resizeSimpleError, resizeDetailedError := og.resizeFileSystem(volumeToMount, devicePath, deviceMountPath, volumePluginName) if resizeSimpleError != nil || resizeDetailedError != nil { return resizeSimpleError, resizeDetailedError @@ -593,8 +597,8 @@ func (og *operationGenerator) GenerateMountVolumeFunc( return volumetypes.GeneratedOperations{ OperationFunc: mountVolumeFunc, EventRecorderFunc: eventRecorderFunc, - CompleteFunc: util.OperationCompleteHook(util.GetFullQualifiedPluginNameForVolume(volumePlugin.GetPluginName(), volumeToMount.VolumeSpec), "volume_mount"), - }, nil + CompleteFunc: util.OperationCompleteHook(util.GetFullQualifiedPluginNameForVolume(volumePluginName, volumeToMount.VolumeSpec), "volume_mount"), + } } func (og *operationGenerator) resizeFileSystem(volumeToMount VolumeToMount, devicePath, deviceMountPath, pluginName string) (simpleErr, detailedErr error) { diff --git a/vendor/k8s.io/kubernetes/pkg/volume/util/util.go b/vendor/k8s.io/kubernetes/pkg/volume/util/util.go index 070961c28..18e24d69f 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/util/util.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/util/util.go @@ -23,9 +23,8 @@ import ( "path" "path/filepath" "strings" - "syscall" - "k8s.io/api/core/v1" + v1 "k8s.io/api/core/v1" storage "k8s.io/api/storage/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" @@ -128,8 +127,9 @@ func SetReady(dir string) { // UnmountPath is a common unmount routine that unmounts the given path and // deletes the remaining directory if successful. +// TODO: Remove this function and change callers to call mount pkg directly func UnmountPath(mountPath string, mounter mount.Interface) error { - return UnmountMountPoint(mountPath, mounter, false /* extensiveMountPointCheck */) + return mount.CleanupMountPoint(mountPath, mounter, false /* extensiveMountPointCheck */) } // UnmountMountPoint is a common unmount routine that unmounts the given path and @@ -137,93 +137,21 @@ func UnmountPath(mountPath string, mounter mount.Interface) error { // if extensiveMountPointCheck is true // IsNotMountPoint will be called instead of IsLikelyNotMountPoint. // IsNotMountPoint is more expensive but properly handles bind mounts. +// TODO: Change callers to call mount pkg directly func UnmountMountPoint(mountPath string, mounter mount.Interface, extensiveMountPointCheck bool) error { - pathExists, pathErr := PathExists(mountPath) - if !pathExists { - klog.Warningf("Warning: Unmount skipped because path does not exist: %v", mountPath) - return nil - } - corruptedMnt := IsCorruptedMnt(pathErr) - if pathErr != nil && !corruptedMnt { - return fmt.Errorf("Error checking path: %v", pathErr) - } - return doUnmountMountPoint(mountPath, mounter, extensiveMountPointCheck, corruptedMnt) -} - -// doUnmountMountPoint is a common unmount routine that unmounts the given path and -// deletes the remaining directory if successful. -// if extensiveMountPointCheck is true -// IsNotMountPoint will be called instead of IsLikelyNotMountPoint. -// IsNotMountPoint is more expensive but properly handles bind mounts. -// if corruptedMnt is true, it means that the mountPath is a corrupted mountpoint, Take it as an argument for convenience of testing -func doUnmountMountPoint(mountPath string, mounter mount.Interface, extensiveMountPointCheck bool, corruptedMnt bool) error { - if !corruptedMnt { - var notMnt bool - var err error - if extensiveMountPointCheck { - notMnt, err = mount.IsNotMountPoint(mounter, mountPath) - } else { - notMnt, err = mounter.IsLikelyNotMountPoint(mountPath) - } - - if err != nil { - return err - } - - if notMnt { - klog.Warningf("Warning: %q is not a mountpoint, deleting", mountPath) - return os.Remove(mountPath) - } - } - - // Unmount the mount path - klog.V(4).Infof("%q is a mountpoint, unmounting", mountPath) - if err := mounter.Unmount(mountPath); err != nil { - return err - } - notMnt, mntErr := mounter.IsLikelyNotMountPoint(mountPath) - if mntErr != nil { - return mntErr - } - if notMnt { - klog.V(4).Infof("%q is unmounted, deleting the directory", mountPath) - return os.Remove(mountPath) - } - return fmt.Errorf("Failed to unmount path %v", mountPath) + return mount.CleanupMountPoint(mountPath, mounter, extensiveMountPointCheck) } // PathExists returns true if the specified path exists. +// TODO: Change callers to call mount pkg directly func PathExists(path string) (bool, error) { - _, err := os.Stat(path) - if err == nil { - return true, nil - } else if os.IsNotExist(err) { - return false, nil - } else if IsCorruptedMnt(err) { - return true, err - } else { - return false, err - } + return mount.PathExists(path) } // IsCorruptedMnt return true if err is about corrupted mount point +// TODO: Change callers to call mount pkg directly func IsCorruptedMnt(err error) bool { - if err == nil { - return false - } - var underlyingError error - switch pe := err.(type) { - case nil: - return false - case *os.PathError: - underlyingError = pe.Err - case *os.LinkError: - underlyingError = pe.Err - case *os.SyscallError: - underlyingError = pe.Err - } - - return underlyingError == syscall.ENOTCONN || underlyingError == syscall.ESTALE || underlyingError == syscall.EIO + return mount.IsCorruptedMnt(err) } // GetSecretForPod locates secret by name in the pod's namespace and returns secret map @@ -825,9 +753,10 @@ func GetUniqueVolumeName(pluginName, volumeName string) v1.UniqueVolumeName { return v1.UniqueVolumeName(fmt.Sprintf("%s/%s", pluginName, volumeName)) } -// GetUniqueVolumeNameForNonAttachableVolume returns the unique volume name -// for a non-attachable volume. -func GetUniqueVolumeNameForNonAttachableVolume( +// GetUniqueVolumeNameFromSpecWithPod returns a unique volume name with pod +// name included. This is useful to generate different names for different pods +// on same volume. +func GetUniqueVolumeNameFromSpecWithPod( podName types.UniquePodName, volumePlugin volume.VolumePlugin, volumeSpec *volume.Spec) v1.UniqueVolumeName { return v1.UniqueVolumeName( fmt.Sprintf("%s/%v-%s", volumePlugin.GetPluginName(), podName, volumeSpec.Name())) diff --git a/vendor/k8s.io/kubernetes/pkg/volume/util/util_test.go b/vendor/k8s.io/kubernetes/pkg/volume/util/util_test.go index 8f376a3ad..a60290323 100644 --- a/vendor/k8s.io/kubernetes/pkg/volume/util/util_test.go +++ b/vendor/k8s.io/kubernetes/pkg/volume/util/util_test.go @@ -22,10 +22,9 @@ import ( "runtime" "testing" - "k8s.io/api/core/v1" + v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/util/sets" utilfeaturetesting "k8s.io/apiserver/pkg/util/feature/testing" - utiltesting "k8s.io/client-go/util/testing" // util.go uses api.Codecs.LegacyCodec so import this package to do some // resource initialization. @@ -33,7 +32,6 @@ import ( _ "k8s.io/kubernetes/pkg/apis/core/install" "k8s.io/kubernetes/pkg/features" - "k8s.io/kubernetes/pkg/util/mount" "reflect" "strings" @@ -357,45 +355,6 @@ func TestZonesToSet(t *testing.T) { } } -func TestDoUnmountMountPoint(t *testing.T) { - - tmpDir1, err1 := utiltesting.MkTmpdir("umount_test1") - if err1 != nil { - t.Fatalf("error creating temp dir: %v", err1) - } - defer os.RemoveAll(tmpDir1) - - tmpDir2, err2 := utiltesting.MkTmpdir("umount_test2") - if err2 != nil { - t.Fatalf("error creating temp dir: %v", err2) - } - defer os.RemoveAll(tmpDir2) - - // Second part: want no error - tests := []struct { - mountPath string - corruptedMnt bool - }{ - { - mountPath: tmpDir1, - corruptedMnt: true, - }, - { - mountPath: tmpDir2, - corruptedMnt: false, - }, - } - - fake := &mount.FakeMounter{} - - for _, tt := range tests { - err := doUnmountMountPoint(tt.mountPath, fake, false, tt.corruptedMnt) - if err != nil { - t.Errorf("err Expected nil, but got: %v", err) - } - } -} - func TestCalculateTimeoutForVolume(t *testing.T) { pv := &v1.PersistentVolume{ Spec: v1.PersistentVolumeSpec{ diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/options/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/options/BUILD index 87318a1f0..79c96a139 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/options/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/options/BUILD @@ -123,6 +123,7 @@ go_test( "//vendor/github.com/spf13/pflag:go_default_library", "//vendor/github.com/stretchr/testify/assert:go_default_library", "//vendor/github.com/stretchr/testify/require:go_default_library", + "//vendor/k8s.io/kube-openapi/pkg/common:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/options/authentication.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/options/authentication.go index 04331794e..877dc9133 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/options/authentication.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/options/authentication.go @@ -117,7 +117,12 @@ type DelegatingAuthenticationOptions struct { ClientCert ClientCertAuthenticationOptions RequestHeader RequestHeaderAuthenticationOptions + // SkipInClusterLookup indicates missing authentication configuration should not be retrieved from the cluster configmap SkipInClusterLookup bool + + // TolerateInClusterLookupFailure indicates failures to look up authentication configuration from the cluster configmap should not be fatal. + // Setting this can result in an authenticator that will reject all requests. + TolerateInClusterLookupFailure bool } func NewDelegatingAuthenticationOptions() *DelegatingAuthenticationOptions { @@ -160,6 +165,9 @@ func (s *DelegatingAuthenticationOptions) AddFlags(fs *pflag.FlagSet) { fs.BoolVar(&s.SkipInClusterLookup, "authentication-skip-lookup", s.SkipInClusterLookup, ""+ "If false, the authentication-kubeconfig will be used to lookup missing authentication "+ "configuration from the cluster.") + fs.BoolVar(&s.TolerateInClusterLookupFailure, "authentication-tolerate-lookup-failure", s.TolerateInClusterLookupFailure, ""+ + "If true, failures to look up missing authentication configuration from the cluster are not considered fatal. "+ + "Note that this can result in authentication that treats all requests as anonymous.") } func (s *DelegatingAuthenticationOptions) ApplyTo(c *server.AuthenticationInfo, servingInfo *server.SecureServingInfo, openAPIConfig *openapicommon.Config) error { @@ -187,7 +195,13 @@ func (s *DelegatingAuthenticationOptions) ApplyTo(c *server.AuthenticationInfo, if !s.SkipInClusterLookup { err := s.lookupMissingConfigInCluster(client) if err != nil { - return err + if s.TolerateInClusterLookupFailure { + klog.Warningf("Error looking up in-cluster authentication configuration: %v", err) + klog.Warningf("Continuing without authentication configuration. This may treat all requests as anonymous.") + klog.Warningf("To require authentication configuration lookup to succeed, set --authentication-tolerate-lookup-failure=false") + } else { + return err + } } } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/options/authentication_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/options/authentication_test.go index 3b2a581f2..a196b1c76 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/options/authentication_test.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/options/authentication_test.go @@ -17,10 +17,15 @@ limitations under the License. package options import ( + "io/ioutil" + "net/http" + "os" "reflect" "testing" "k8s.io/apiserver/pkg/authentication/authenticatorfactory" + "k8s.io/apiserver/pkg/server" + openapicommon "k8s.io/kube-openapi/pkg/common" ) func TestToAuthenticationRequestHeaderConfig(t *testing.T) { @@ -66,3 +71,131 @@ func TestToAuthenticationRequestHeaderConfig(t *testing.T) { }) } } + +func TestApplyToFallback(t *testing.T) { + + f, err := ioutil.TempFile("", "authkubeconfig") + if err != nil { + t.Fatal(err) + } + defer os.Remove(f.Name()) + + if err := ioutil.WriteFile(f.Name(), []byte(` +apiVersion: v1 +kind: Config +clusters: +- cluster: + server: http://localhost:56789 + name: cluster +contexts: +- context: + cluster: cluster + name: cluster +current-context: cluster +`), os.FileMode(0755)); err != nil { + t.Fatal(err) + } + remoteKubeconfig := f.Name() + + testcases := []struct { + name string + options *DelegatingAuthenticationOptions + expectError bool + expectAuthenticator bool + expectTokenAnonymous bool + expectTokenErrors bool + }{ + { + name: "empty", + options: nil, + expectError: false, + expectAuthenticator: false, + }, + { + name: "default", + options: NewDelegatingAuthenticationOptions(), + expectError: true, // in-cluster client building fails, no kubeconfig provided + expectAuthenticator: false, + }, + { + name: "optional kubeconfig", + options: func() *DelegatingAuthenticationOptions { + opts := NewDelegatingAuthenticationOptions() + opts.RemoteKubeConfigFileOptional = true + return opts + }(), + expectError: false, // in-cluster client building fails, no kubeconfig required + expectAuthenticator: true, + expectTokenAnonymous: true, // no token validator available + }, + { + name: "valid client, failed cluster info lookup", + options: func() *DelegatingAuthenticationOptions { + opts := NewDelegatingAuthenticationOptions() + opts.RemoteKubeConfigFile = remoteKubeconfig + return opts + }(), + expectError: true, // client building is valid, remote config lookup fails + expectAuthenticator: false, + }, + { + name: "valid client, skip cluster info lookup", + options: func() *DelegatingAuthenticationOptions { + opts := NewDelegatingAuthenticationOptions() + opts.RemoteKubeConfigFile = remoteKubeconfig + opts.SkipInClusterLookup = true + return opts + }(), + expectError: false, // client building is valid, skipped cluster lookup + expectAuthenticator: true, + expectTokenErrors: true, // client fails making tokenreview calls + }, + { + name: "valid client, tolerate failed cluster info lookup", + options: func() *DelegatingAuthenticationOptions { + opts := NewDelegatingAuthenticationOptions() + opts.RemoteKubeConfigFile = remoteKubeconfig + opts.TolerateInClusterLookupFailure = true + return opts + }(), + expectError: false, // client is valid, skipped cluster lookup + expectAuthenticator: true, // anonymous auth + expectTokenErrors: true, // client fails making tokenreview calls + }, + } + + for _, tc := range testcases { + t.Run(tc.name, func(t *testing.T) { + c := &server.AuthenticationInfo{} + servingInfo := &server.SecureServingInfo{} + openAPIConfig := &openapicommon.Config{} + + err := tc.options.ApplyTo(c, servingInfo, openAPIConfig) + if (err != nil) != tc.expectError { + t.Errorf("expected error=%v, got %v", tc.expectError, err) + } + if (c.Authenticator != nil) != tc.expectAuthenticator { + t.Errorf("expected authenticator=%v, got %#v", tc.expectError, c.Authenticator) + } + if c.Authenticator != nil { + { + result, ok, err := c.Authenticator.AuthenticateRequest(&http.Request{}) + if err != nil || !ok || result == nil || result.User.GetName() != "system:anonymous" { + t.Errorf("expected anonymous, got %#v, %#v, %#v", result, ok, err) + } + } + { + result, ok, err := c.Authenticator.AuthenticateRequest(&http.Request{Header: http.Header{"Authorization": []string{"Bearer foo"}}}) + if tc.expectTokenAnonymous { + if err != nil || !ok || result == nil || result.User.GetName() != "system:anonymous" { + t.Errorf("expected anonymous, got %#v, %#v, %#v", result, ok, err) + } + } + if tc.expectTokenErrors != (err != nil) { + t.Errorf("expected error=%v, got %#v, %#v, %#v", tc.expectTokenErrors, result, ok, err) + } + } + } + }) + } +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/options/deprecated_insecure_serving.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/options/deprecated_insecure_serving.go index f1cc4430b..804f04bca 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/options/deprecated_insecure_serving.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/server/options/deprecated_insecure_serving.go @@ -85,11 +85,13 @@ func (s *DeprecatedInsecureServingOptions) AddUnqualifiedFlags(fs *pflag.FlagSet } fs.IPVar(&s.BindAddress, "address", s.BindAddress, - "DEPRECATED: see --bind-address instead.") + "The IP address on which to serve the insecure --port (set to 0.0.0.0 for all IPv4 interfaces and :: for all IPv6 interfaces).") fs.MarkDeprecated("address", "see --bind-address instead.") + fs.Lookup("address").Hidden = false - fs.IntVar(&s.BindPort, "port", s.BindPort, "DEPRECATED: see --secure-port instead.") + fs.IntVar(&s.BindPort, "port", s.BindPort, "The port on which to serve unsecured, unauthenticated access. Set to 0 to disable.") fs.MarkDeprecated("port", "see --secure-port instead.") + fs.Lookup("port").Hidden = false } // ApplyTo adds DeprecatedInsecureServingOptions to the insecureserverinfo amd kube-controller manager configuration. diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/util/webhook/authentication.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/util/webhook/authentication.go index 1d1c0ad3b..dd0f4e5e6 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/util/webhook/authentication.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/apiserver/pkg/util/webhook/authentication.go @@ -177,6 +177,7 @@ func restConfigFromKubeconfig(configAuthInfo *clientcmdapi.AuthInfo) (*rest.Conf return nil, err } config.BearerToken = string(tokenBytes) + config.BearerTokenFile = configAuthInfo.TokenFile } if len(configAuthInfo.Impersonate) > 0 { config.Impersonate = rest.ImpersonationConfig{ diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/BUILD index 70920303e..9f00aac95 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/BUILD @@ -13,7 +13,6 @@ go_test( "config_test.go", "plugin_test.go", "request_test.go", - "token_source_test.go", "url_utils_test.go", "urlbackoff_test.go", ], @@ -41,7 +40,6 @@ go_test( "//staging/src/k8s.io/client-go/util/testing:go_default_library", "//vendor/github.com/google/gofuzz:go_default_library", "//vendor/github.com/stretchr/testify/assert:go_default_library", - "//vendor/golang.org/x/oauth2:go_default_library", "//vendor/k8s.io/klog:go_default_library", ], ) @@ -53,7 +51,6 @@ go_library( "config.go", "plugin.go", "request.go", - "token_source.go", "transport.go", "url_utils.go", "urlbackoff.go", @@ -80,7 +77,6 @@ go_library( "//staging/src/k8s.io/client-go/util/cert:go_default_library", "//staging/src/k8s.io/client-go/util/flowcontrol:go_default_library", "//vendor/golang.org/x/net/http2:go_default_library", - "//vendor/golang.org/x/oauth2:go_default_library", "//vendor/k8s.io/klog:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/config.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/config.go index 438eb3bed..072e7392b 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/config.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/config.go @@ -70,6 +70,11 @@ type Config struct { // TODO: demonstrate an OAuth2 compatible client. BearerToken string + // Path to a file containing a BearerToken. + // If set, the contents are periodically read. + // The last successfully read value takes precedence over BearerToken. + BearerTokenFile string + // Impersonate is the configuration that RESTClient will use for impersonation. Impersonate ImpersonationConfig @@ -322,9 +327,8 @@ func InClusterConfig() (*Config, error) { return nil, ErrNotInCluster } - ts := NewCachedFileTokenSource(tokenFile) - - if _, err := ts.Token(); err != nil { + token, err := ioutil.ReadFile(tokenFile) + if err != nil { return nil, err } @@ -340,7 +344,8 @@ func InClusterConfig() (*Config, error) { // TODO: switch to using cluster DNS. Host: "https://" + net.JoinHostPort(host, port), TLSClientConfig: tlsClientConfig, - WrapTransport: TokenSourceWrapTransport(ts), + BearerToken: string(token), + BearerTokenFile: tokenFile, }, nil } @@ -430,12 +435,13 @@ func AnonymousClientConfig(config *Config) *Config { // CopyConfig returns a copy of the given config func CopyConfig(config *Config) *Config { return &Config{ - Host: config.Host, - APIPath: config.APIPath, - ContentConfig: config.ContentConfig, - Username: config.Username, - Password: config.Password, - BearerToken: config.BearerToken, + Host: config.Host, + APIPath: config.APIPath, + ContentConfig: config.ContentConfig, + Username: config.Username, + Password: config.Password, + BearerToken: config.BearerToken, + BearerTokenFile: config.BearerTokenFile, Impersonate: ImpersonationConfig{ Groups: config.Impersonate.Groups, Extra: config.Impersonate.Extra, diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/config_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/config_test.go index 347864285..22c18d77e 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/config_test.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/rest/config_test.go @@ -264,6 +264,7 @@ func TestAnonymousConfig(t *testing.T) { // is added to Config, update AnonymousClientConfig to preserve the field otherwise. expected.Impersonate = ImpersonationConfig{} expected.BearerToken = "" + expected.BearerTokenFile = "" expected.Username = "" expected.Password = "" expected.AuthProvider = nil diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/tools/clientcmd/client_config.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/tools/clientcmd/client_config.go index dea229c91..a7b8c1c6e 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/tools/clientcmd/client_config.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/tools/clientcmd/client_config.go @@ -229,11 +229,12 @@ func (config *DirectClientConfig) getUserIdentificationPartialConfig(configAuthI if len(configAuthInfo.Token) > 0 { mergedConfig.BearerToken = configAuthInfo.Token } else if len(configAuthInfo.TokenFile) > 0 { - ts := restclient.NewCachedFileTokenSource(configAuthInfo.TokenFile) - if _, err := ts.Token(); err != nil { + tokenBytes, err := ioutil.ReadFile(configAuthInfo.TokenFile) + if err != nil { return nil, err } - mergedConfig.WrapTransport = restclient.TokenSourceWrapTransport(ts) + mergedConfig.BearerToken = string(tokenBytes) + mergedConfig.BearerTokenFile = configAuthInfo.TokenFile } if len(configAuthInfo.Impersonate) > 0 { mergedConfig.Impersonate = restclient.ImpersonationConfig{ diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/tools/clientcmd/client_config_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/tools/clientcmd/client_config_test.go index 6da850ed4..a13f08ae7 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/tools/clientcmd/client_config_test.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/tools/clientcmd/client_config_test.go @@ -18,7 +18,6 @@ package clientcmd import ( "io/ioutil" - "net/http" "os" "reflect" "strings" @@ -334,19 +333,7 @@ func TestBasicTokenFile(t *testing.T) { t.Fatalf("Unexpected error: %v", err) } - var out *http.Request - clientConfig.WrapTransport(fakeTransport(func(req *http.Request) (*http.Response, error) { - out = req - return &http.Response{}, nil - })).RoundTrip(&http.Request{}) - - matchStringArg(token, strings.TrimPrefix(out.Header.Get("Authorization"), "Bearer "), t) -} - -type fakeTransport func(*http.Request) (*http.Response, error) - -func (ft fakeTransport) RoundTrip(req *http.Request) (*http.Response, error) { - return ft(req) + matchStringArg(token, clientConfig.BearerToken, t) } func TestPrecedenceTokenFile(t *testing.T) { diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/transport/BUILD b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/transport/BUILD index dc1800681..643750e25 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/transport/BUILD +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/transport/BUILD @@ -11,9 +11,11 @@ go_test( srcs = [ "cache_test.go", "round_trippers_test.go", + "token_source_test.go", "transport_test.go", ], embed = [":go_default_library"], + deps = ["//vendor/golang.org/x/oauth2:go_default_library"], ) go_library( @@ -22,12 +24,14 @@ go_library( "cache.go", "config.go", "round_trippers.go", + "token_source.go", "transport.go", ], importmap = "k8s.io/kubernetes/vendor/k8s.io/client-go/transport", importpath = "k8s.io/client-go/transport", deps = [ "//staging/src/k8s.io/apimachinery/pkg/util/net:go_default_library", + "//vendor/golang.org/x/oauth2:go_default_library", "//vendor/k8s.io/klog:go_default_library", ], ) diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/transport/config.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/transport/config.go index 4081c23e7..acb126d8b 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/transport/config.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/transport/config.go @@ -39,6 +39,11 @@ type Config struct { // Bearer token for authentication BearerToken string + // Path to a file containing a BearerToken. + // If set, the contents are periodically read. + // The last successfully read value takes precedence over BearerToken. + BearerTokenFile string + // Impersonate is the config that this Config will impersonate using Impersonate ImpersonationConfig @@ -80,7 +85,7 @@ func (c *Config) HasBasicAuth() bool { // HasTokenAuth returns whether the configuration has token authentication or not. func (c *Config) HasTokenAuth() bool { - return len(c.BearerToken) != 0 + return len(c.BearerToken) != 0 || len(c.BearerTokenFile) != 0 } // HasCertAuth returns whether the configuration has certificate authentication or not. diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/transport/round_trippers.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/transport/round_trippers.go index da417cf96..117a9c8c4 100644 --- a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/transport/round_trippers.go +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/transport/round_trippers.go @@ -22,6 +22,7 @@ import ( "strings" "time" + "golang.org/x/oauth2" "k8s.io/klog" utilnet "k8s.io/apimachinery/pkg/util/net" @@ -44,7 +45,11 @@ func HTTPWrappersForConfig(config *Config, rt http.RoundTripper) (http.RoundTrip case config.HasBasicAuth() && config.HasTokenAuth(): return nil, fmt.Errorf("username/password or bearer token may be set, but not both") case config.HasTokenAuth(): - rt = NewBearerAuthRoundTripper(config.BearerToken, rt) + var err error + rt, err = NewBearerAuthWithRefreshRoundTripper(config.BearerToken, config.BearerTokenFile, rt) + if err != nil { + return nil, err + } case config.HasBasicAuth(): rt = NewBasicAuthRoundTripper(config.Username, config.Password, rt) } @@ -265,13 +270,35 @@ func (rt *impersonatingRoundTripper) WrappedRoundTripper() http.RoundTripper { r type bearerAuthRoundTripper struct { bearer string + source oauth2.TokenSource rt http.RoundTripper } // NewBearerAuthRoundTripper adds the provided bearer token to a request // unless the authorization header has already been set. func NewBearerAuthRoundTripper(bearer string, rt http.RoundTripper) http.RoundTripper { - return &bearerAuthRoundTripper{bearer, rt} + return &bearerAuthRoundTripper{bearer, nil, rt} +} + +// NewBearerAuthRoundTripper adds the provided bearer token to a request +// unless the authorization header has already been set. +// If tokenFile is non-empty, it is periodically read, +// and the last successfully read content is used as the bearer token. +// If tokenFile is non-empty and bearer is empty, the tokenFile is read +// immediately to populate the initial bearer token. +func NewBearerAuthWithRefreshRoundTripper(bearer string, tokenFile string, rt http.RoundTripper) (http.RoundTripper, error) { + if len(tokenFile) == 0 { + return &bearerAuthRoundTripper{bearer, nil, rt}, nil + } + source := NewCachedFileTokenSource(tokenFile) + if len(bearer) == 0 { + token, err := source.Token() + if err != nil { + return nil, err + } + bearer = token.AccessToken + } + return &bearerAuthRoundTripper{bearer, source, rt}, nil } func (rt *bearerAuthRoundTripper) RoundTrip(req *http.Request) (*http.Response, error) { @@ -280,7 +307,13 @@ func (rt *bearerAuthRoundTripper) RoundTrip(req *http.Request) (*http.Response, } req = utilnet.CloneRequest(req) - req.Header.Set("Authorization", fmt.Sprintf("Bearer %s", rt.bearer)) + token := rt.bearer + if rt.source != nil { + if refreshedToken, err := rt.source.Token(); err == nil { + token = refreshedToken.AccessToken + } + } + req.Header.Set("Authorization", fmt.Sprintf("Bearer %s", token)) return rt.rt.RoundTrip(req) } diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/transport/token_source.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/transport/token_source.go new file mode 100644 index 000000000..8595df271 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/transport/token_source.go @@ -0,0 +1,140 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package transport + +import ( + "fmt" + "io/ioutil" + "net/http" + "strings" + "sync" + "time" + + "golang.org/x/oauth2" + "k8s.io/klog" +) + +// TokenSourceWrapTransport returns a WrapTransport that injects bearer tokens +// authentication from an oauth2.TokenSource. +func TokenSourceWrapTransport(ts oauth2.TokenSource) func(http.RoundTripper) http.RoundTripper { + return func(rt http.RoundTripper) http.RoundTripper { + return &tokenSourceTransport{ + base: rt, + ort: &oauth2.Transport{ + Source: ts, + Base: rt, + }, + } + } +} + +// NewCachedFileTokenSource returns a oauth2.TokenSource reads a token from a +// file at a specified path and periodically reloads it. +func NewCachedFileTokenSource(path string) oauth2.TokenSource { + return &cachingTokenSource{ + now: time.Now, + leeway: 10 * time.Second, + base: &fileTokenSource{ + path: path, + // This period was picked because it is half of the duration between when the kubelet + // refreshes a projected service account token and when the original token expires. + // Default token lifetime is 10 minutes, and the kubelet starts refreshing at 80% of lifetime. + // This should induce re-reading at a frequency that works with the token volume source. + period: time.Minute, + }, + } +} + +type tokenSourceTransport struct { + base http.RoundTripper + ort http.RoundTripper +} + +func (tst *tokenSourceTransport) RoundTrip(req *http.Request) (*http.Response, error) { + // This is to allow --token to override other bearer token providers. + if req.Header.Get("Authorization") != "" { + return tst.base.RoundTrip(req) + } + return tst.ort.RoundTrip(req) +} + +type fileTokenSource struct { + path string + period time.Duration +} + +var _ = oauth2.TokenSource(&fileTokenSource{}) + +func (ts *fileTokenSource) Token() (*oauth2.Token, error) { + tokb, err := ioutil.ReadFile(ts.path) + if err != nil { + return nil, fmt.Errorf("failed to read token file %q: %v", ts.path, err) + } + tok := strings.TrimSpace(string(tokb)) + if len(tok) == 0 { + return nil, fmt.Errorf("read empty token from file %q", ts.path) + } + + return &oauth2.Token{ + AccessToken: tok, + Expiry: time.Now().Add(ts.period), + }, nil +} + +type cachingTokenSource struct { + base oauth2.TokenSource + leeway time.Duration + + sync.RWMutex + tok *oauth2.Token + + // for testing + now func() time.Time +} + +var _ = oauth2.TokenSource(&cachingTokenSource{}) + +func (ts *cachingTokenSource) Token() (*oauth2.Token, error) { + now := ts.now() + // fast path + ts.RLock() + tok := ts.tok + ts.RUnlock() + + if tok != nil && tok.Expiry.Add(-1*ts.leeway).After(now) { + return tok, nil + } + + // slow path + ts.Lock() + defer ts.Unlock() + if tok := ts.tok; tok != nil && tok.Expiry.Add(-1*ts.leeway).After(now) { + return tok, nil + } + + tok, err := ts.base.Token() + if err != nil { + if ts.tok == nil { + return nil, err + } + klog.Errorf("Unable to rotate token: %v", err) + return ts.tok, nil + } + + ts.tok = tok + return tok, nil +} diff --git a/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/transport/token_source_test.go b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/transport/token_source_test.go new file mode 100644 index 000000000..a222495b9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/staging/src/k8s.io/client-go/transport/token_source_test.go @@ -0,0 +1,156 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package transport + +import ( + "fmt" + "reflect" + "sync" + "testing" + "time" + + "golang.org/x/oauth2" +) + +type testTokenSource struct { + calls int + tok *oauth2.Token + err error +} + +func (ts *testTokenSource) Token() (*oauth2.Token, error) { + ts.calls++ + return ts.tok, ts.err +} + +func TestCachingTokenSource(t *testing.T) { + start := time.Now() + tokA := &oauth2.Token{ + AccessToken: "a", + Expiry: start.Add(10 * time.Minute), + } + tokB := &oauth2.Token{ + AccessToken: "b", + Expiry: start.Add(20 * time.Minute), + } + tests := []struct { + name string + + tok *oauth2.Token + tsTok *oauth2.Token + tsErr error + wait time.Duration + + wantTok *oauth2.Token + wantErr bool + wantTSCalls int + }{ + { + name: "valid token returned from cache", + tok: tokA, + wantTok: tokA, + }, + { + name: "valid token returned from cache 1 minute before scheduled refresh", + tok: tokA, + wait: 8 * time.Minute, + wantTok: tokA, + }, + { + name: "new token created when cache is empty", + tsTok: tokA, + wantTok: tokA, + wantTSCalls: 1, + }, + { + name: "new token created 1 minute after scheduled refresh", + tok: tokA, + tsTok: tokB, + wait: 10 * time.Minute, + wantTok: tokB, + wantTSCalls: 1, + }, + { + name: "error on create token returns error", + tsErr: fmt.Errorf("error"), + wantErr: true, + wantTSCalls: 1, + }, + } + for _, c := range tests { + t.Run(c.name, func(t *testing.T) { + tts := &testTokenSource{ + tok: c.tsTok, + err: c.tsErr, + } + + ts := &cachingTokenSource{ + base: tts, + tok: c.tok, + leeway: 1 * time.Minute, + now: func() time.Time { return start.Add(c.wait) }, + } + + gotTok, gotErr := ts.Token() + if got, want := gotTok, c.wantTok; !reflect.DeepEqual(got, want) { + t.Errorf("unexpected token:\n\tgot:\t%#v\n\twant:\t%#v", got, want) + } + if got, want := tts.calls, c.wantTSCalls; got != want { + t.Errorf("unexpected number of Token() calls: got %d, want %d", got, want) + } + if gotErr == nil && c.wantErr { + t.Errorf("wanted error but got none") + } + if gotErr != nil && !c.wantErr { + t.Errorf("unexpected error: %v", gotErr) + } + }) + } +} + +func TestCachingTokenSourceRace(t *testing.T) { + for i := 0; i < 100; i++ { + tts := &testTokenSource{ + tok: &oauth2.Token{ + AccessToken: "a", + Expiry: time.Now().Add(1000 * time.Hour), + }, + } + + ts := &cachingTokenSource{ + now: time.Now, + base: tts, + leeway: 1 * time.Minute, + } + + var wg sync.WaitGroup + wg.Add(100) + + for i := 0; i < 100; i++ { + go func() { + defer wg.Done() + if _, err := ts.Token(); err != nil { + t.Fatalf("err: %v", err) + } + }() + } + wg.Wait() + if tts.calls != 1 { + t.Errorf("expected one call to Token() but saw: %d", tts.calls) + } + } +} diff --git a/vendor/k8s.io/kubernetes/test/cmd/core.sh b/vendor/k8s.io/kubernetes/test/cmd/core.sh index 656ef330f..5f645c2d5 100755 --- a/vendor/k8s.io/kubernetes/test/cmd/core.sh +++ b/vendor/k8s.io/kubernetes/test/cmd/core.sh @@ -739,7 +739,7 @@ run_secrets_test() { # Post-condition: secret exists and has expected values kube::test::get_object_assert 'secret/test-secret --namespace=test-secrets' "{{$id_field}}" 'test-secret' kube::test::get_object_assert 'secret/test-secret --namespace=test-secrets' "{{$secret_type}}" 'kubernetes.io/dockerconfigjson' - [[ "$(kubectl get secret/test-secret --namespace=test-secrets -o yaml "${kube_flags[@]}" | grep '.dockerconfigjson:')" ]] + [[ "$(kubectl get secret/test-secret --namespace=test-secrets -o yaml "${kube_flags[@]}" | grep '.dockerconfigjson: eyJhdXRocyI6eyJodHRwczovL2luZGV4LmRvY2tlci5pby92MS8iOnsidXNlcm5hbWUiOiJ0ZXN0LXVzZXIiLCJwYXNzd29yZCI6InRlc3QtcGFzc3dvcmQiLCJlbWFpbCI6InRlc3QtdXNlckB0ZXN0LmNvbSIsImF1dGgiOiJkR1Z6ZEMxMWMyVnlPblJsYzNRdGNHRnpjM2R2Y21RPSJ9fX0=')" ]] # Clean-up kubectl delete secret test-secret --namespace=test-secrets diff --git a/vendor/k8s.io/kubernetes/test/cmd/diff.sh b/vendor/k8s.io/kubernetes/test/cmd/diff.sh index 6d0d5a127..1441f7c4f 100755 --- a/vendor/k8s.io/kubernetes/test/cmd/diff.sh +++ b/vendor/k8s.io/kubernetes/test/cmd/diff.sh @@ -40,3 +40,20 @@ run_kubectl_diff_tests() { set +o nounset set +o errexit } + +run_kubectl_diff_same_names() { + set -o nounset + set -o errexit + + create_and_use_new_namespace + kube::log::status "Test kubectl diff with multiple resources with the same name" + + output_message=$(KUBECTL_EXTERNAL_DIFF=find kubectl diff -Rf hack/testdata/diff/) + kube::test::if_has_string "${output_message}" 'v1\.Pod\..*\.test' + kube::test::if_has_string "${output_message}" 'apps\.v1\.Deployment\..*\.test' + kube::test::if_has_string "${output_message}" 'v1\.ConfigMap\..*\.test' + kube::test::if_has_string "${output_message}" 'v1\.Secret\..*\.test' + + set +o nounset + set +o errexit +} diff --git a/vendor/k8s.io/kubernetes/test/cmd/legacy-script.sh b/vendor/k8s.io/kubernetes/test/cmd/legacy-script.sh index 49c849e8b..c838ee4d9 100755 --- a/vendor/k8s.io/kubernetes/test/cmd/legacy-script.sh +++ b/vendor/k8s.io/kubernetes/test/cmd/legacy-script.sh @@ -473,6 +473,7 @@ runTests() { # Kubectl diff # ################ record_command run_kubectl_diff_tests + record_command run_kubectl_diff_same_names ############### # Kubectl get # diff --git a/vendor/k8s.io/kubernetes/test/e2e/apps/cronjob.go b/vendor/k8s.io/kubernetes/test/e2e/apps/cronjob.go index ec2b10a14..d63f046db 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/apps/cronjob.go +++ b/vendor/k8s.io/kubernetes/test/e2e/apps/cronjob.go @@ -250,8 +250,10 @@ var _ = SIGDescribe("CronJob", func() { Expect(len(finishedJobs) == 1).To(BeTrue()) // Job should get deleted when the next job finishes the next minute - By("Ensuring this job does not exist anymore") - err = waitForJobNotExist(f.ClientSet, f.Namespace.Name, finishedJobs[0]) + By("Ensuring this job and its pods does not exist anymore") + err = waitForJobToDisappear(f.ClientSet, f.Namespace.Name, finishedJobs[0]) + Expect(err).NotTo(HaveOccurred()) + err = waitForJobsPodToDisappear(f.ClientSet, f.Namespace.Name, finishedJobs[0]) Expect(err).NotTo(HaveOccurred()) By("Ensuring there is 1 finished job by listing jobs explicitly") @@ -380,8 +382,8 @@ func waitForJobNotActive(c clientset.Interface, ns, cronJobName, jobName string) }) } -// Wait for a job to not exist by listing jobs explicitly. -func waitForJobNotExist(c clientset.Interface, ns string, targetJob *batchv1.Job) error { +// Wait for a job to disappear by listing them explicitly. +func waitForJobToDisappear(c clientset.Interface, ns string, targetJob *batchv1.Job) error { return wait.Poll(framework.Poll, cronJobTimeout, func() (bool, error) { jobs, err := c.BatchV1().Jobs(ns).List(metav1.ListOptions{}) if err != nil { @@ -397,6 +399,18 @@ func waitForJobNotExist(c clientset.Interface, ns string, targetJob *batchv1.Job }) } +// Wait for a pod to disappear by listing them explicitly. +func waitForJobsPodToDisappear(c clientset.Interface, ns string, targetJob *batchv1.Job) error { + return wait.Poll(framework.Poll, cronJobTimeout, func() (bool, error) { + options := metav1.ListOptions{LabelSelector: fmt.Sprintf("controller-uid=%s", targetJob.UID)} + pods, err := c.CoreV1().Pods(ns).List(options) + if err != nil { + return false, err + } + return len(pods.Items) == 0, nil + }) +} + // Wait for a job to be replaced with a new one. func waitForJobReplaced(c clientset.Interface, ns, previousJobName string) error { return wait.Poll(framework.Poll, cronJobTimeout, func() (bool, error) { diff --git a/vendor/k8s.io/kubernetes/test/e2e/framework/test_context.go b/vendor/k8s.io/kubernetes/test/e2e/framework/test_context.go index 7ac659465..0af35eae3 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/framework/test_context.go +++ b/vendor/k8s.io/kubernetes/test/e2e/framework/test_context.go @@ -315,7 +315,8 @@ func createKubeConfig(clientCfg *restclient.Config) *clientcmdapi.Config { config := clientcmdapi.NewConfig() credentials := clientcmdapi.NewAuthInfo() - credentials.TokenFile = "/var/run/secrets/kubernetes.io/serviceaccount/token" + credentials.Token = clientCfg.BearerToken + credentials.TokenFile = clientCfg.BearerTokenFile credentials.ClientCertificate = clientCfg.TLSClientConfig.CertFile if len(credentials.ClientCertificate) == 0 { credentials.ClientCertificateData = clientCfg.TLSClientConfig.CertData diff --git a/vendor/k8s.io/kubernetes/test/e2e/storage/drivers/base.go b/vendor/k8s.io/kubernetes/test/e2e/storage/drivers/base.go index ae8f3ab83..95d6b263c 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/storage/drivers/base.go +++ b/vendor/k8s.io/kubernetes/test/e2e/storage/drivers/base.go @@ -76,18 +76,26 @@ type DynamicPVTestDriver interface { GetDynamicProvisionStorageClass(fsType string) *storagev1.StorageClass } +// Capability represents a feature that a volume plugin supports +type Capability string + +const ( + CapPersistence Capability = "persistence" // data is persisted across pod restarts + CapBlock Capability = "block" // raw block mode + CapFsGroup Capability = "fsGroup" // volume ownership via fsGroup + CapExec Capability = "exec" // exec a file in the volume +) + // DriverInfo represents a combination of parameters to be used in implementation of TestDriver type DriverInfo struct { Name string // Name of the driver FeatureTag string // FeatureTag for the driver - MaxFileSize int64 // Max file size to be tested for this driver - SupportedFsType sets.String // Map of string for supported fs type - SupportedMountOption sets.String // Map of string for supported mount option - RequiredMountOption sets.String // Map of string for required mount option (Optional) - IsPersistent bool // Flag to represent whether it provides persistency - IsFsGroupSupported bool // Flag to represent whether it supports fsGroup - IsBlockSupported bool // Flag to represent whether it supports Block Volume + MaxFileSize int64 // Max file size to be tested for this driver + SupportedFsType sets.String // Map of string for supported fs type + SupportedMountOption sets.String // Map of string for supported mount option + RequiredMountOption sets.String // Map of string for required mount option (Optional) + Capabilities map[Capability]bool // Map that represents plugin capabilities // Parameters below will be set inside test loop by using SetCommonDriverParameters. // Drivers that implement TestDriver is required to set all the above parameters diff --git a/vendor/k8s.io/kubernetes/test/e2e/storage/drivers/csi.go b/vendor/k8s.io/kubernetes/test/e2e/storage/drivers/csi.go index 9ede2863f..4e4473891 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/storage/drivers/csi.go +++ b/vendor/k8s.io/kubernetes/test/e2e/storage/drivers/csi.go @@ -67,9 +67,9 @@ func InitHostPathCSIDriver() TestDriver { SupportedFsType: sets.NewString( "", // Default fsType ), - IsPersistent: true, - IsFsGroupSupported: false, - IsBlockSupported: false, + Capabilities: map[Capability]bool{ + CapPersistence: true, + }, }, } } @@ -153,9 +153,9 @@ func InitHostV0PathCSIDriver() TestDriver { SupportedFsType: sets.NewString( "", // Default fsType ), - IsPersistent: true, - IsFsGroupSupported: false, - IsBlockSupported: false, + Capabilities: map[Capability]bool{ + CapPersistence: true, + }, }, } } @@ -243,9 +243,11 @@ func InitGcePDCSIDriver() TestDriver { "ext4", "xfs", ), - IsPersistent: true, - IsFsGroupSupported: true, - IsBlockSupported: false, + Capabilities: map[Capability]bool{ + CapPersistence: true, + CapFsGroup: true, + CapExec: true, + }, }, } } @@ -334,9 +336,11 @@ func InitGcePDExternalCSIDriver() TestDriver { "ext4", "xfs", ), - IsPersistent: true, - IsFsGroupSupported: true, - IsBlockSupported: false, + Capabilities: map[Capability]bool{ + CapPersistence: true, + CapFsGroup: true, + CapExec: true, + }, }, } } diff --git a/vendor/k8s.io/kubernetes/test/e2e/storage/drivers/in_tree.go b/vendor/k8s.io/kubernetes/test/e2e/storage/drivers/in_tree.go index c69ae3f42..cc73bd81a 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/storage/drivers/in_tree.go +++ b/vendor/k8s.io/kubernetes/test/e2e/storage/drivers/in_tree.go @@ -90,9 +90,10 @@ func InitNFSDriver() TestDriver { ), SupportedMountOption: sets.NewString("proto=tcp", "relatime"), RequiredMountOption: sets.NewString("vers=4.1"), - IsPersistent: true, - IsFsGroupSupported: false, - IsBlockSupported: false, + Capabilities: map[Capability]bool{ + CapPersistence: true, + CapExec: true, + }, }, } } @@ -235,9 +236,10 @@ func InitGlusterFSDriver() TestDriver { SupportedFsType: sets.NewString( "", // Default fsType ), - IsPersistent: true, - IsFsGroupSupported: false, - IsBlockSupported: false, + Capabilities: map[Capability]bool{ + CapPersistence: true, + CapExec: true, + }, }, } } @@ -356,9 +358,12 @@ func InitISCSIDriver() TestDriver { //"ext3", "ext4", ), - IsPersistent: true, - IsFsGroupSupported: true, - IsBlockSupported: true, + Capabilities: map[Capability]bool{ + CapPersistence: true, + CapFsGroup: true, + CapBlock: true, + CapExec: true, + }, }, } } @@ -465,9 +470,13 @@ func InitRbdDriver() TestDriver { //"ext3", "ext4", ), - IsPersistent: true, - IsFsGroupSupported: true, - IsBlockSupported: true}, + Capabilities: map[Capability]bool{ + CapPersistence: true, + CapFsGroup: true, + CapBlock: true, + CapExec: true, + }, + }, } } @@ -585,9 +594,10 @@ func InitCephFSDriver() TestDriver { SupportedFsType: sets.NewString( "", // Default fsType ), - IsPersistent: true, - IsFsGroupSupported: false, - IsBlockSupported: false, + Capabilities: map[Capability]bool{ + CapPersistence: true, + CapExec: true, + }, }, } } @@ -684,9 +694,9 @@ func InitHostPathDriver() TestDriver { SupportedFsType: sets.NewString( "", // Default fsType ), - IsPersistent: true, - IsFsGroupSupported: false, - IsBlockSupported: false, + Capabilities: map[Capability]bool{ + CapPersistence: true, + }, }, } } @@ -756,9 +766,9 @@ func InitHostPathSymlinkDriver() TestDriver { SupportedFsType: sets.NewString( "", // Default fsType ), - IsPersistent: true, - IsFsGroupSupported: false, - IsBlockSupported: false, + Capabilities: map[Capability]bool{ + CapPersistence: true, + }, }, } } @@ -896,9 +906,9 @@ func InitEmptydirDriver() TestDriver { SupportedFsType: sets.NewString( "", // Default fsType ), - IsPersistent: false, - IsFsGroupSupported: false, - IsBlockSupported: false, + Capabilities: map[Capability]bool{ + CapExec: true, + }, }, } } @@ -963,9 +973,11 @@ func InitCinderDriver() TestDriver { "", // Default fsType "ext3", ), - IsPersistent: true, - IsFsGroupSupported: true, - IsBlockSupported: false, + Capabilities: map[Capability]bool{ + CapPersistence: true, + CapFsGroup: true, + CapExec: true, + }, }, } } @@ -1121,9 +1133,12 @@ func InitGcePdDriver() TestDriver { "xfs", ), SupportedMountOption: sets.NewString("debug", "nouid32"), - IsPersistent: true, - IsFsGroupSupported: true, - IsBlockSupported: true, + Capabilities: map[Capability]bool{ + CapPersistence: true, + CapFsGroup: true, + CapBlock: true, + CapExec: true, + }, }, } } @@ -1235,9 +1250,11 @@ func InitVSphereDriver() TestDriver { "", // Default fsType "ext4", ), - IsPersistent: true, - IsFsGroupSupported: true, - IsBlockSupported: false, + Capabilities: map[Capability]bool{ + CapPersistence: true, + CapFsGroup: true, + CapExec: true, + }, }, } } @@ -1351,9 +1368,12 @@ func InitAzureDriver() TestDriver { "", // Default fsType "ext4", ), - IsPersistent: true, - IsFsGroupSupported: true, - IsBlockSupported: true, + Capabilities: map[Capability]bool{ + CapPersistence: true, + CapFsGroup: true, + CapBlock: true, + CapExec: true, + }, }, } } @@ -1464,9 +1484,12 @@ func InitAwsDriver() TestDriver { "ext3", ), SupportedMountOption: sets.NewString("debug", "nouid32"), - IsPersistent: true, - IsFsGroupSupported: true, - IsBlockSupported: true, + Capabilities: map[Capability]bool{ + CapPersistence: true, + CapFsGroup: true, + CapBlock: true, + CapExec: true, + }, }, } } diff --git a/vendor/k8s.io/kubernetes/test/e2e/storage/testsuites/BUILD b/vendor/k8s.io/kubernetes/test/e2e/storage/testsuites/BUILD index 1987fb2cf..800a19f60 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/storage/testsuites/BUILD +++ b/vendor/k8s.io/kubernetes/test/e2e/storage/testsuites/BUILD @@ -18,7 +18,6 @@ go_library( "//staging/src/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/fields:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/errors:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/rand:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/wait:go_default_library", diff --git a/vendor/k8s.io/kubernetes/test/e2e/storage/testsuites/provisioning.go b/vendor/k8s.io/kubernetes/test/e2e/storage/testsuites/provisioning.go index 70c3ad0e3..ba9f8d025 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/storage/testsuites/provisioning.go +++ b/vendor/k8s.io/kubernetes/test/e2e/storage/testsuites/provisioning.go @@ -187,7 +187,7 @@ func testProvisioning(input *provisioningTestInput) { }) It("should create and delete block persistent volumes", func() { - if !input.dInfo.IsBlockSupported { + if !input.dInfo.Capabilities[drivers.CapBlock] { framework.Skipf("Driver %q does not support BlockVolume - skipping", input.dInfo.Name) } block := v1.PersistentVolumeBlock diff --git a/vendor/k8s.io/kubernetes/test/e2e/storage/testsuites/subpath.go b/vendor/k8s.io/kubernetes/test/e2e/storage/testsuites/subpath.go index e97ed7d1a..3a361bd85 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/storage/testsuites/subpath.go +++ b/vendor/k8s.io/kubernetes/test/e2e/storage/testsuites/subpath.go @@ -22,9 +22,8 @@ import ( "regexp" "strings" - "k8s.io/api/core/v1" + v1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/fields" "k8s.io/apimachinery/pkg/util/rand" "k8s.io/apimachinery/pkg/util/wait" "k8s.io/kubernetes/test/e2e/framework" @@ -362,6 +361,31 @@ func testSubPath(input *subPathTestInput) { testReadFile(input.f, input.filePathInSubpath, input.pod, 0) }) + It("should be able to unmount after the subpath directory is deleted", func() { + // Change volume container to busybox so we can exec later + input.pod.Spec.Containers[1].Image = imageutils.GetE2EImage(imageutils.BusyBox) + input.pod.Spec.Containers[1].Command = []string{"/bin/sh", "-ec", "sleep 100000"} + + By(fmt.Sprintf("Creating pod %s", input.pod.Name)) + pod, err := input.f.ClientSet.CoreV1().Pods(input.f.Namespace.Name).Create(input.pod) + Expect(err).ToNot(HaveOccurred(), "while creating pod") + defer func() { + By(fmt.Sprintf("Deleting pod %s", pod.Name)) + framework.DeletePodWithWait(input.f, input.f.ClientSet, pod) + }() + + // Wait for pod to be running + err = framework.WaitForPodRunningInNamespace(input.f.ClientSet, pod) + Expect(err).ToNot(HaveOccurred(), "while waiting for pod to be running") + + // Exec into container that mounted the volume, delete subpath directory + rmCmd := fmt.Sprintf("rm -rf %s", input.subPathDir) + _, err = podContainerExec(pod, 1, rmCmd) + Expect(err).ToNot(HaveOccurred(), "while removing subpath directory") + + // Delete pod (from defer) and wait for it to be successfully deleted + }) + // TODO: add a test case for the same disk with two partitions } @@ -587,16 +611,54 @@ func testPodFailSubpathError(f *framework.Framework, pod *v1.Pod, errorMsg strin defer func() { framework.DeletePodWithWait(f, f.ClientSet, pod) }() + By("Checking for subpath error in container status") + err = waitForPodSubpathError(f, pod) + Expect(err).NotTo(HaveOccurred(), "while waiting for subpath failure") +} - By("Checking for subpath error event") - selector := fields.Set{ - "involvedObject.kind": "Pod", - "involvedObject.name": pod.Name, - "involvedObject.namespace": f.Namespace.Name, - "reason": "Failed", - }.AsSelector().String() - err = framework.WaitTimeoutForPodEvent(f.ClientSet, pod.Name, f.Namespace.Name, selector, errorMsg, framework.PodStartTimeout) - Expect(err).NotTo(HaveOccurred(), "while waiting for failed event to occur") +func findSubpathContainerName(pod *v1.Pod) string { + for _, container := range pod.Spec.Containers { + for _, mount := range container.VolumeMounts { + if mount.SubPath != "" { + return container.Name + } + } + } + return "" +} + +func waitForPodSubpathError(f *framework.Framework, pod *v1.Pod) error { + subpathContainerName := findSubpathContainerName(pod) + if subpathContainerName == "" { + return fmt.Errorf("failed to find container that uses subpath") + } + + return wait.PollImmediate(framework.Poll, framework.PodStartTimeout, func() (bool, error) { + pod, err := f.ClientSet.CoreV1().Pods(pod.Namespace).Get(pod.Name, metav1.GetOptions{}) + if err != nil { + return false, err + } + for _, status := range pod.Status.ContainerStatuses { + // 0 is the container that uses subpath + if status.Name == subpathContainerName { + switch { + case status.State.Running != nil: + return false, fmt.Errorf("subpath container unexpectedly became running") + case status.State.Terminated != nil: + return false, fmt.Errorf("subpath container unexpectedly terminated") + case status.State.Waiting != nil: + if status.State.Waiting.Reason == "CreateContainerConfigError" && + strings.Contains(status.State.Waiting.Message, "subPath") { + return true, nil + } + return false, nil + default: + return false, nil + } + } + } + return false, nil + }) } // Tests that the existing subpath mount is detected when a container restarts diff --git a/vendor/k8s.io/kubernetes/test/e2e/storage/testsuites/volume_io.go b/vendor/k8s.io/kubernetes/test/e2e/storage/testsuites/volume_io.go index 8a0972251..3b2915177 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/storage/testsuites/volume_io.go +++ b/vendor/k8s.io/kubernetes/test/e2e/storage/testsuites/volume_io.go @@ -90,7 +90,7 @@ func createVolumeIOTestInput(pattern testpatterns.TestPattern, resource genericV framework.Skipf("Driver %q does not define volumeSource - skipping", dInfo.Name) } - if dInfo.IsFsGroupSupported { + if dInfo.Capabilities[drivers.CapFsGroup] { fsGroupVal := int64(1234) fsGroup = &fsGroupVal } diff --git a/vendor/k8s.io/kubernetes/test/e2e/storage/testsuites/volumemode.go b/vendor/k8s.io/kubernetes/test/e2e/storage/testsuites/volumemode.go index 03468f933..94bef7508 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/storage/testsuites/volumemode.go +++ b/vendor/k8s.io/kubernetes/test/e2e/storage/testsuites/volumemode.go @@ -78,13 +78,13 @@ func createVolumeModeTestInput(pattern testpatterns.TestPattern, resource volume testVolType: pattern.VolType, nodeName: dInfo.Config.ClientNodeName, volMode: pattern.VolMode, - isBlockSupported: dInfo.IsBlockSupported, + isBlockSupported: dInfo.Capabilities[drivers.CapBlock], } } func getVolumeModeTestFunc(pattern testpatterns.TestPattern, driver drivers.TestDriver) func(*volumeModeTestInput) { dInfo := driver.GetDriverInfo() - isBlockSupported := dInfo.IsBlockSupported + isBlockSupported := dInfo.Capabilities[drivers.CapBlock] volMode := pattern.VolMode volType := pattern.VolType diff --git a/vendor/k8s.io/kubernetes/test/e2e/storage/testsuites/volumes.go b/vendor/k8s.io/kubernetes/test/e2e/storage/testsuites/volumes.go index ce8e2093e..e8bd845bc 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/storage/testsuites/volumes.go +++ b/vendor/k8s.io/kubernetes/test/e2e/storage/testsuites/volumes.go @@ -23,11 +23,17 @@ package testsuites import ( "fmt" + "path/filepath" . "github.com/onsi/ginkgo" + . "github.com/onsi/gomega" + + "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/storage/drivers" "k8s.io/kubernetes/test/e2e/storage/testpatterns" + imageutils "k8s.io/kubernetes/test/utils/image" ) type volumesTestSuite struct { @@ -68,12 +74,22 @@ func (t *volumesTestSuite) getTestSuiteInfo() TestSuiteInfo { } func (t *volumesTestSuite) skipUnsupportedTest(pattern testpatterns.TestPattern, driver drivers.TestDriver) { +} + +func skipPersistenceTest(driver drivers.TestDriver) { dInfo := driver.GetDriverInfo() - if !dInfo.IsPersistent { + if !dInfo.Capabilities[drivers.CapPersistence] { framework.Skipf("Driver %q does not provide persistency - skipping", dInfo.Name) } } +func skipExecTest(driver drivers.TestDriver) { + dInfo := driver.GetDriverInfo() + if !dInfo.Capabilities[drivers.CapExec] { + framework.Skipf("Driver %q does not support exec - skipping", dInfo.Name) + } +} + func createVolumesTestInput(pattern testpatterns.TestPattern, resource genericVolumeTestResource) volumesTestInput { var fsGroup *int64 driver := resource.driver @@ -85,16 +101,17 @@ func createVolumesTestInput(pattern testpatterns.TestPattern, resource genericVo framework.Skipf("Driver %q does not define volumeSource - skipping", dInfo.Name) } - if dInfo.IsFsGroupSupported { + if dInfo.Capabilities[drivers.CapFsGroup] { fsGroupVal := int64(1234) fsGroup = &fsGroupVal } return volumesTestInput{ - f: f, - name: dInfo.Name, - config: dInfo.Config, - fsGroup: fsGroup, + f: f, + name: dInfo.Name, + config: dInfo.Config, + fsGroup: fsGroup, + resource: resource, tests: []framework.VolumeTest{ { Volume: *volSource, @@ -140,11 +157,12 @@ func (t *volumesTestSuite) execTest(driver drivers.TestDriver, pattern testpatte } type volumesTestInput struct { - f *framework.Framework - name string - config framework.VolumeTestConfig - fsGroup *int64 - tests []framework.VolumeTest + f *framework.Framework + name string + config framework.VolumeTestConfig + fsGroup *int64 + tests []framework.VolumeTest + resource genericVolumeTestResource } func testVolumes(input *volumesTestInput) { @@ -153,8 +171,68 @@ func testVolumes(input *volumesTestInput) { cs := f.ClientSet defer framework.VolumeTestCleanup(f, input.config) + skipPersistenceTest(input.resource.driver) + volumeTest := input.tests framework.InjectHtml(cs, input.config, volumeTest[0].Volume, volumeTest[0].ExpectedContent) framework.TestVolumeClient(cs, input.config, input.fsGroup, input.tests) }) + It("should allow exec of files on the volume", func() { + f := input.f + skipExecTest(input.resource.driver) + + testScriptInPod(f, input.resource.volType, input.resource.volSource, input.config.NodeSelector) + }) +} + +func testScriptInPod( + f *framework.Framework, + volumeType string, + source *v1.VolumeSource, + nodeSelector map[string]string) { + + const ( + volPath = "/vol1" + volName = "vol1" + ) + suffix := generateSuffixForPodName(volumeType) + scriptName := fmt.Sprintf("test-%s.sh", suffix) + fullPath := filepath.Join(volPath, scriptName) + cmd := fmt.Sprintf("echo \"ls %s\" > %s; chmod u+x %s; %s", volPath, fullPath, fullPath, fullPath) + + pod := &v1.Pod{ + ObjectMeta: metav1.ObjectMeta{ + Name: fmt.Sprintf("exec-volume-test-%s", suffix), + Namespace: f.Namespace.Name, + }, + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: fmt.Sprintf("exec-container-%s", suffix), + Image: imageutils.GetE2EImage(imageutils.Nginx), + Command: []string{"/bin/sh", "-ec", cmd}, + VolumeMounts: []v1.VolumeMount{ + { + Name: volName, + MountPath: volPath, + }, + }, + }, + }, + Volumes: []v1.Volume{ + { + Name: volName, + VolumeSource: *source, + }, + }, + RestartPolicy: v1.RestartPolicyNever, + NodeSelector: nodeSelector, + }, + } + By(fmt.Sprintf("Creating pod %s", pod.Name)) + f.TestContainerOutput("exec-volume-test", pod, 0, []string{scriptName}) + + By(fmt.Sprintf("Deleting pod %s", pod.Name)) + err := framework.DeletePodWithWait(f, f.ClientSet, pod) + Expect(err).NotTo(HaveOccurred(), "while deleting pod") } diff --git a/vendor/k8s.io/kubernetes/test/e2e_node/node_problem_detector_linux.go b/vendor/k8s.io/kubernetes/test/e2e_node/node_problem_detector_linux.go index 64aa7ac72..36a63193c 100644 --- a/vendor/k8s.io/kubernetes/test/e2e_node/node_problem_detector_linux.go +++ b/vendor/k8s.io/kubernetes/test/e2e_node/node_problem_detector_linux.go @@ -22,7 +22,6 @@ import ( "fmt" "os" "path" - "syscall" "time" "k8s.io/api/core/v1" @@ -34,6 +33,7 @@ import ( clientset "k8s.io/client-go/kubernetes" coreclientset "k8s.io/client-go/kubernetes/typed/core/v1" nodeutil "k8s.io/kubernetes/pkg/api/v1/node" + "k8s.io/kubernetes/pkg/kubelet/util" "k8s.io/kubernetes/test/e2e/framework" . "github.com/onsi/ginkgo" @@ -97,8 +97,11 @@ var _ = framework.KubeDescribe("NodeProblemDetector [NodeFeature:NodeProblemDete BeforeEach(func() { By("Calculate Lookback duration") var err error - nodeTime, bootTime, err = getNodeTime() + + nodeTime = time.Now() + bootTime, err = util.GetBootTime() Expect(err).To(BeNil()) + // Set lookback duration longer than node up time. // Assume the test won't take more than 1 hour, in fact it usually only takes 90 seconds. lookback = nodeTime.Sub(bootTime) + time.Hour @@ -387,24 +390,6 @@ func injectLog(file string, timestamp time.Time, log string, num int) error { return nil } -// getNodeTime gets node boot time and current time. -func getNodeTime() (time.Time, time.Time, error) { - // Get node current time. - nodeTime := time.Now() - - // Get system uptime. - var info syscall.Sysinfo_t - if err := syscall.Sysinfo(&info); err != nil { - return time.Time{}, time.Time{}, err - } - // Get node boot time. NOTE that because we get node current time before uptime, the boot time - // calculated will be a little earlier than the real boot time. This won't affect the correctness - // of the test result. - bootTime := nodeTime.Add(-time.Duration(info.Uptime) * time.Second) - - return nodeTime, bootTime, nil -} - // verifyEvents verifies there are num specific events generated func verifyEvents(e coreclientset.EventInterface, options metav1.ListOptions, num int, reason, message string) error { events, err := e.List(options) diff --git a/vendor/k8s.io/kubernetes/test/images/Makefile b/vendor/k8s.io/kubernetes/test/images/Makefile index 089c2696d..977889533 100644 --- a/vendor/k8s.io/kubernetes/test/images/Makefile +++ b/vendor/k8s.io/kubernetes/test/images/Makefile @@ -17,7 +17,7 @@ include ../../hack/make-rules/Makefile.manifest REGISTRY ?= gcr.io/kubernetes-e2e-test-images GOARM=7 QEMUVERSION=v2.9.1 -GOLANG_VERSION=1.11.2 +GOLANG_VERSION=1.11.4 export ifndef WHAT diff --git a/vendor/k8s.io/kubernetes/test/integration/scheduler/BUILD b/vendor/k8s.io/kubernetes/test/integration/scheduler/BUILD index 4ef611c99..39293d1ef 100644 --- a/vendor/k8s.io/kubernetes/test/integration/scheduler/BUILD +++ b/vendor/k8s.io/kubernetes/test/integration/scheduler/BUILD @@ -25,6 +25,7 @@ go_test( "//cmd/kube-scheduler/app:go_default_library", "//cmd/kube-scheduler/app/config:go_default_library", "//pkg/api/legacyscheme:go_default_library", + "//pkg/api/v1/pod:go_default_library", "//pkg/controller/nodelifecycle:go_default_library", "//pkg/controller/volume/persistentvolume:go_default_library", "//pkg/controller/volume/persistentvolume/options:go_default_library", diff --git a/vendor/k8s.io/kubernetes/test/integration/scheduler/preemption_test.go b/vendor/k8s.io/kubernetes/test/integration/scheduler/preemption_test.go index a1fc044a7..918404f41 100644 --- a/vendor/k8s.io/kubernetes/test/integration/scheduler/preemption_test.go +++ b/vendor/k8s.io/kubernetes/test/integration/scheduler/preemption_test.go @@ -32,6 +32,7 @@ import ( "k8s.io/apimachinery/pkg/util/wait" utilfeature "k8s.io/apiserver/pkg/util/feature" clientset "k8s.io/client-go/kubernetes" + podutil "k8s.io/kubernetes/pkg/api/v1/pod" "k8s.io/kubernetes/pkg/features" _ "k8s.io/kubernetes/pkg/scheduler/algorithmprovider" testutils "k8s.io/kubernetes/test/utils" @@ -72,7 +73,7 @@ func TestPreemption(t *testing.T) { defaultPodRes := &v1.ResourceRequirements{Requests: v1.ResourceList{ v1.ResourceCPU: *resource.NewMilliQuantity(100, resource.DecimalSI), - v1.ResourceMemory: *resource.NewQuantity(100, resource.BinarySI)}, + v1.ResourceMemory: *resource.NewQuantity(100, resource.DecimalSI)}, } tests := []struct { @@ -90,7 +91,7 @@ func TestPreemption(t *testing.T) { Priority: &lowPriority, Resources: &v1.ResourceRequirements{Requests: v1.ResourceList{ v1.ResourceCPU: *resource.NewMilliQuantity(400, resource.DecimalSI), - v1.ResourceMemory: *resource.NewQuantity(200, resource.BinarySI)}, + v1.ResourceMemory: *resource.NewQuantity(200, resource.DecimalSI)}, }, }), }, @@ -100,7 +101,7 @@ func TestPreemption(t *testing.T) { Priority: &highPriority, Resources: &v1.ResourceRequirements{Requests: v1.ResourceList{ v1.ResourceCPU: *resource.NewMilliQuantity(300, resource.DecimalSI), - v1.ResourceMemory: *resource.NewQuantity(200, resource.BinarySI)}, + v1.ResourceMemory: *resource.NewQuantity(200, resource.DecimalSI)}, }, }), preemptedPodIndexes: map[int]struct{}{0: {}}, @@ -236,7 +237,7 @@ func TestPreemption(t *testing.T) { nodeRes := &v1.ResourceList{ v1.ResourcePods: *resource.NewQuantity(32, resource.DecimalSI), v1.ResourceCPU: *resource.NewMilliQuantity(500, resource.DecimalSI), - v1.ResourceMemory: *resource.NewQuantity(500, resource.BinarySI), + v1.ResourceMemory: *resource.NewQuantity(500, resource.DecimalSI), } node, err := createNode(context.clientSet, "node1", nodeRes) if err != nil { @@ -312,7 +313,7 @@ func TestDisablePreemption(t *testing.T) { Priority: &lowPriority, Resources: &v1.ResourceRequirements{Requests: v1.ResourceList{ v1.ResourceCPU: *resource.NewMilliQuantity(400, resource.DecimalSI), - v1.ResourceMemory: *resource.NewQuantity(200, resource.BinarySI)}, + v1.ResourceMemory: *resource.NewQuantity(200, resource.DecimalSI)}, }, }), }, @@ -322,7 +323,7 @@ func TestDisablePreemption(t *testing.T) { Priority: &highPriority, Resources: &v1.ResourceRequirements{Requests: v1.ResourceList{ v1.ResourceCPU: *resource.NewMilliQuantity(300, resource.DecimalSI), - v1.ResourceMemory: *resource.NewQuantity(200, resource.BinarySI)}, + v1.ResourceMemory: *resource.NewQuantity(200, resource.DecimalSI)}, }, }), }, @@ -332,7 +333,7 @@ func TestDisablePreemption(t *testing.T) { nodeRes := &v1.ResourceList{ v1.ResourcePods: *resource.NewQuantity(32, resource.DecimalSI), v1.ResourceCPU: *resource.NewMilliQuantity(500, resource.DecimalSI), - v1.ResourceMemory: *resource.NewQuantity(500, resource.BinarySI), + v1.ResourceMemory: *resource.NewQuantity(500, resource.DecimalSI), } _, err := createNode(context.clientSet, "node1", nodeRes) if err != nil { @@ -374,7 +375,7 @@ func TestDisablePreemption(t *testing.T) { func mkPriorityPodWithGrace(tc *TestContext, name string, priority int32, grace int64) *v1.Pod { defaultPodRes := &v1.ResourceRequirements{Requests: v1.ResourceList{ v1.ResourceCPU: *resource.NewMilliQuantity(100, resource.DecimalSI), - v1.ResourceMemory: *resource.NewQuantity(100, resource.BinarySI)}, + v1.ResourceMemory: *resource.NewQuantity(100, resource.DecimalSI)}, } pod := initPausePod(tc.clientSet, &pausePodConfig{ Name: name, @@ -419,7 +420,7 @@ func TestPreemptionStarvation(t *testing.T) { Priority: &highPriority, Resources: &v1.ResourceRequirements{Requests: v1.ResourceList{ v1.ResourceCPU: *resource.NewMilliQuantity(300, resource.DecimalSI), - v1.ResourceMemory: *resource.NewQuantity(200, resource.BinarySI)}, + v1.ResourceMemory: *resource.NewQuantity(200, resource.DecimalSI)}, }, }), }, @@ -429,7 +430,7 @@ func TestPreemptionStarvation(t *testing.T) { nodeRes := &v1.ResourceList{ v1.ResourcePods: *resource.NewQuantity(32, resource.DecimalSI), v1.ResourceCPU: *resource.NewMilliQuantity(500, resource.DecimalSI), - v1.ResourceMemory: *resource.NewQuantity(500, resource.BinarySI), + v1.ResourceMemory: *resource.NewQuantity(500, resource.DecimalSI), } _, err := createNode(context.clientSet, "node1", nodeRes) if err != nil { @@ -489,6 +490,119 @@ func TestPreemptionStarvation(t *testing.T) { } } +// TestPreemptionRaces tests that other scheduling events and operations do not +// race with the preemption process. +func TestPreemptionRaces(t *testing.T) { + // Initialize scheduler. + context := initTest(t, "preemption-race") + defer cleanupTest(t, context) + cs := context.clientSet + + tests := []struct { + description string + numInitialPods int // Pods created and executed before running preemptor + numAdditionalPods int // Pods created after creating the preemptor + numRepetitions int // Repeat the tests to check races + preemptor *v1.Pod + }{ + { + // This test ensures that while the preempting pod is waiting for the victims + // terminate, other lower priority pods are not scheduled in the room created + // after preemption and while the higher priority pods is not scheduled yet. + description: "ensures that other pods are not scheduled while preemptor is being marked as nominated (issue #72124)", + numInitialPods: 2, + numAdditionalPods: 50, + numRepetitions: 10, + preemptor: initPausePod(cs, &pausePodConfig{ + Name: "preemptor-pod", + Namespace: context.ns.Name, + Priority: &highPriority, + Resources: &v1.ResourceRequirements{Requests: v1.ResourceList{ + v1.ResourceCPU: *resource.NewMilliQuantity(4900, resource.DecimalSI), + v1.ResourceMemory: *resource.NewQuantity(4900, resource.DecimalSI)}, + }, + }), + }, + } + + // Create a node with some resources and a label. + nodeRes := &v1.ResourceList{ + v1.ResourcePods: *resource.NewQuantity(100, resource.DecimalSI), + v1.ResourceCPU: *resource.NewMilliQuantity(5000, resource.DecimalSI), + v1.ResourceMemory: *resource.NewQuantity(5000, resource.DecimalSI), + } + _, err := createNode(context.clientSet, "node1", nodeRes) + if err != nil { + t.Fatalf("Error creating nodes: %v", err) + } + + for _, test := range tests { + if test.numRepetitions <= 0 { + test.numRepetitions = 1 + } + for n := 0; n < test.numRepetitions; n++ { + initialPods := make([]*v1.Pod, test.numInitialPods) + additionalPods := make([]*v1.Pod, test.numAdditionalPods) + // Create and run existingPods. + for i := 0; i < test.numInitialPods; i++ { + initialPods[i], err = createPausePod(cs, mkPriorityPodWithGrace(context, fmt.Sprintf("rpod-%v", i), mediumPriority, 0)) + if err != nil { + t.Fatalf("Test [%v]: Error creating pause pod: %v", test.description, err) + } + } + // make sure that initial Pods are all scheduled. + for _, p := range initialPods { + if err := waitForPodToSchedule(cs, p); err != nil { + t.Fatalf("Pod %v/%v didn't get scheduled: %v", p.Namespace, p.Name, err) + } + } + // Create the preemptor. + klog.Info("Creating the preemptor pod...") + preemptor, err := createPausePod(cs, test.preemptor) + if err != nil { + t.Errorf("Error while creating the preempting pod: %v", err) + } + + klog.Info("Creating additional pods...") + for i := 0; i < test.numAdditionalPods; i++ { + additionalPods[i], err = createPausePod(cs, mkPriorityPodWithGrace(context, fmt.Sprintf("ppod-%v", i), mediumPriority, 0)) + if err != nil { + t.Fatalf("Test [%v]: Error creating pending pod: %v", test.description, err) + } + } + // Check that the preemptor pod gets nominated node name. + if err := waitForNominatedNodeName(cs, preemptor); err != nil { + t.Errorf("Test [%v]: NominatedNodeName annotation was not set for pod %v/%v: %v", test.description, preemptor.Namespace, preemptor.Name, err) + } + // Make sure that preemptor is scheduled after preemptions. + if err := waitForPodToScheduleWithTimeout(cs, preemptor, 60*time.Second); err != nil { + t.Errorf("Preemptor pod %v didn't get scheduled: %v", preemptor.Name, err) + } + + klog.Info("Check unschedulable pods still exists and were never scheduled...") + for _, p := range additionalPods { + pod, err := cs.CoreV1().Pods(p.Namespace).Get(p.Name, metav1.GetOptions{}) + if err != nil { + t.Errorf("Error in getting Pod %v/%v info: %v", p.Namespace, p.Name, err) + } + if len(pod.Spec.NodeName) > 0 { + t.Errorf("Pod %v/%v is already scheduled", p.Namespace, p.Name) + } + _, cond := podutil.GetPodCondition(&pod.Status, v1.PodScheduled) + if cond != nil && cond.Status != v1.ConditionFalse { + t.Errorf("Pod %v/%v is no longer unschedulable: %v", p.Namespace, p.Name, err) + } + } + // Cleanup + klog.Info("Cleaning up all pods...") + allPods := additionalPods + allPods = append(allPods, initialPods...) + allPods = append(allPods, preemptor) + cleanupPods(cs, t, allPods) + } + } +} + // TestNominatedNodeCleanUp checks that when there are nominated pods on a // node and a higher priority pod is nominated to run on the node, the nominated // node name of the lower priority pods is cleared. @@ -514,7 +628,7 @@ func TestNominatedNodeCleanUp(t *testing.T) { nodeRes := &v1.ResourceList{ v1.ResourcePods: *resource.NewQuantity(32, resource.DecimalSI), v1.ResourceCPU: *resource.NewMilliQuantity(500, resource.DecimalSI), - v1.ResourceMemory: *resource.NewQuantity(500, resource.BinarySI), + v1.ResourceMemory: *resource.NewQuantity(500, resource.DecimalSI), } _, err := createNode(context.clientSet, "node1", nodeRes) if err != nil { @@ -542,7 +656,7 @@ func TestNominatedNodeCleanUp(t *testing.T) { Priority: &mediumPriority, Resources: &v1.ResourceRequirements{Requests: v1.ResourceList{ v1.ResourceCPU: *resource.NewMilliQuantity(400, resource.DecimalSI), - v1.ResourceMemory: *resource.NewQuantity(400, resource.BinarySI)}, + v1.ResourceMemory: *resource.NewQuantity(400, resource.DecimalSI)}, }, }) medPriPod, err := createPausePod(cs, podConf) @@ -560,7 +674,7 @@ func TestNominatedNodeCleanUp(t *testing.T) { Priority: &highPriority, Resources: &v1.ResourceRequirements{Requests: v1.ResourceList{ v1.ResourceCPU: *resource.NewMilliQuantity(300, resource.DecimalSI), - v1.ResourceMemory: *resource.NewQuantity(200, resource.BinarySI)}, + v1.ResourceMemory: *resource.NewQuantity(200, resource.DecimalSI)}, }, }) highPriPod, err := createPausePod(cs, podConf) @@ -625,12 +739,12 @@ func TestPDBInPreemption(t *testing.T) { defaultPodRes := &v1.ResourceRequirements{Requests: v1.ResourceList{ v1.ResourceCPU: *resource.NewMilliQuantity(100, resource.DecimalSI), - v1.ResourceMemory: *resource.NewQuantity(100, resource.BinarySI)}, + v1.ResourceMemory: *resource.NewQuantity(100, resource.DecimalSI)}, } defaultNodeRes := &v1.ResourceList{ v1.ResourcePods: *resource.NewQuantity(32, resource.DecimalSI), v1.ResourceCPU: *resource.NewMilliQuantity(500, resource.DecimalSI), - v1.ResourceMemory: *resource.NewQuantity(500, resource.BinarySI), + v1.ResourceMemory: *resource.NewQuantity(500, resource.DecimalSI), } type nodeConfig struct { @@ -682,7 +796,7 @@ func TestPDBInPreemption(t *testing.T) { Priority: &highPriority, Resources: &v1.ResourceRequirements{Requests: v1.ResourceList{ v1.ResourceCPU: *resource.NewMilliQuantity(300, resource.DecimalSI), - v1.ResourceMemory: *resource.NewQuantity(200, resource.BinarySI)}, + v1.ResourceMemory: *resource.NewQuantity(200, resource.DecimalSI)}, }, }), preemptedPodIndexes: map[int]struct{}{2: {}}, @@ -720,7 +834,7 @@ func TestPDBInPreemption(t *testing.T) { Priority: &highPriority, Resources: &v1.ResourceRequirements{Requests: v1.ResourceList{ v1.ResourceCPU: *resource.NewMilliQuantity(500, resource.DecimalSI), - v1.ResourceMemory: *resource.NewQuantity(200, resource.BinarySI)}, + v1.ResourceMemory: *resource.NewQuantity(200, resource.DecimalSI)}, }, }), preemptedPodIndexes: map[int]struct{}{1: {}}, @@ -800,7 +914,7 @@ func TestPDBInPreemption(t *testing.T) { Priority: &highPriority, Resources: &v1.ResourceRequirements{Requests: v1.ResourceList{ v1.ResourceCPU: *resource.NewMilliQuantity(500, resource.DecimalSI), - v1.ResourceMemory: *resource.NewQuantity(400, resource.BinarySI)}, + v1.ResourceMemory: *resource.NewQuantity(400, resource.DecimalSI)}, }, }), // The third node is chosen because PDB is not violated for node 3 and the victims have lower priority than node-2. diff --git a/vendor/k8s.io/kubernetes/test/integration/scheduler/util.go b/vendor/k8s.io/kubernetes/test/integration/scheduler/util.go index 71875405e..3483c2928 100644 --- a/vendor/k8s.io/kubernetes/test/integration/scheduler/util.go +++ b/vendor/k8s.io/kubernetes/test/integration/scheduler/util.go @@ -587,6 +587,17 @@ func podScheduled(c clientset.Interface, podNamespace, podName string) wait.Cond } } +// podUnschedulable returns a condition function that returns true if the given pod +// gets unschedulable status. +func podSchedulableCondition(c clientset.Interface, podNamespace, podName string) (*v1.PodCondition, error) { + pod, err := c.CoreV1().Pods(podNamespace).Get(podName, metav1.GetOptions{}) + if err != nil { + return nil, err + } + _, cond := podutil.GetPodCondition(&pod.Status, v1.PodScheduled) + return cond, nil +} + // podUnschedulable returns a condition function that returns true if the given pod // gets unschedulable status. func podUnschedulable(c clientset.Interface, podNamespace, podName string) wait.ConditionFunc { @@ -696,7 +707,7 @@ func cleanupPods(cs clientset.Interface, t *testing.T, pods []*v1.Pod) { } } for _, p := range pods { - if err := wait.Poll(time.Second, wait.ForeverTestTimeout, + if err := wait.Poll(time.Millisecond, wait.ForeverTestTimeout, podDeleted(cs, p.Namespace, p.Name)); err != nil { t.Errorf("error while waiting for pod %v/%v to get deleted: %v", p.Namespace, p.Name, err) } diff --git a/vendor/k8s.io/utils/SECURITY_CONTACTS b/vendor/k8s.io/utils/SECURITY_CONTACTS new file mode 100644 index 000000000..d34d00812 --- /dev/null +++ b/vendor/k8s.io/utils/SECURITY_CONTACTS @@ -0,0 +1,13 @@ +# Defined below are the security contacts for this repo. +# +# They are the contact point for the Product Security Team to reach out +# to for triaging and handling of incoming issues. +# +# The below names agree to abide by the +# [Embargo Policy](https://github.com/kubernetes/sig-release/blob/master/security-release-process-documentation/security-release-process.md#embargo-policy) +# and will be removed and replaced if they violate that agreement. +# +# DO NOT REPORT SECURITY VULNERABILITIES DIRECTLY TO THESE NAMES, FOLLOW THE +# INSTRUCTIONS AT https://kubernetes.io/security/ + +liggitt diff --git a/vendor/github.com/ghodss/yaml/.gitignore b/vendor/sigs.k8s.io/yaml/.gitignore similarity index 100% rename from vendor/github.com/ghodss/yaml/.gitignore rename to vendor/sigs.k8s.io/yaml/.gitignore diff --git a/vendor/sigs.k8s.io/yaml/.travis.yml b/vendor/sigs.k8s.io/yaml/.travis.yml new file mode 100644 index 000000000..03ddc7318 --- /dev/null +++ b/vendor/sigs.k8s.io/yaml/.travis.yml @@ -0,0 +1,14 @@ +language: go +dist: xenial +go: + - 1.9.x + - 1.10.x + - 1.11.x +script: + - go get -t -v ./... + - diff -u <(echo -n) <(gofmt -d .) + - diff -u <(echo -n) <(golint $(go list -e ./...) | grep -v YAMLToJSON) + - go tool vet . + - go test -v -race ./... +install: + - go get golang.org/x/lint/golint diff --git a/vendor/sigs.k8s.io/yaml/CONTRIBUTING.md b/vendor/sigs.k8s.io/yaml/CONTRIBUTING.md new file mode 100644 index 000000000..de4711513 --- /dev/null +++ b/vendor/sigs.k8s.io/yaml/CONTRIBUTING.md @@ -0,0 +1,31 @@ +# Contributing Guidelines + +Welcome to Kubernetes. We are excited about the prospect of you joining our [community](https://github.com/kubernetes/community)! The Kubernetes community abides by the CNCF [code of conduct](code-of-conduct.md). Here is an excerpt: + +_As contributors and maintainers of this project, and in the interest of fostering an open and welcoming community, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities._ + +## Getting Started + +We have full documentation on how to get started contributing here: + + + +- [Contributor License Agreement](https://git.k8s.io/community/CLA.md) Kubernetes projects require that you sign a Contributor License Agreement (CLA) before we can accept your pull requests +- [Kubernetes Contributor Guide](http://git.k8s.io/community/contributors/guide) - Main contributor documentation, or you can just jump directly to the [contributing section](http://git.k8s.io/community/contributors/guide#contributing) +- [Contributor Cheat Sheet](https://git.k8s.io/community/contributors/guide/contributor-cheatsheet.md) - Common resources for existing developers + +## Mentorship + +- [Mentoring Initiatives](https://git.k8s.io/community/mentoring) - We have a diverse set of mentorship programs available that are always looking for volunteers! + + diff --git a/vendor/github.com/ghodss/yaml/LICENSE b/vendor/sigs.k8s.io/yaml/LICENSE similarity index 100% rename from vendor/github.com/ghodss/yaml/LICENSE rename to vendor/sigs.k8s.io/yaml/LICENSE diff --git a/vendor/sigs.k8s.io/yaml/OWNERS b/vendor/sigs.k8s.io/yaml/OWNERS new file mode 100644 index 000000000..11ad7ce1a --- /dev/null +++ b/vendor/sigs.k8s.io/yaml/OWNERS @@ -0,0 +1,25 @@ +approvers: +- dims +- lavalamp +- smarterclayton +- deads2k +- sttts +- liggitt +- caesarxuchao +reviewers: +- dims +- thockin +- lavalamp +- smarterclayton +- wojtek-t +- deads2k +- derekwaynecarr +- caesarxuchao +- mikedanese +- liggitt +- gmarek +- sttts +- ncdc +- tallclair +labels: +- sig/api-machinery diff --git a/vendor/github.com/ghodss/yaml/README.md b/vendor/sigs.k8s.io/yaml/README.md similarity index 100% rename from vendor/github.com/ghodss/yaml/README.md rename to vendor/sigs.k8s.io/yaml/README.md diff --git a/vendor/sigs.k8s.io/yaml/RELEASE.md b/vendor/sigs.k8s.io/yaml/RELEASE.md new file mode 100644 index 000000000..6b642464e --- /dev/null +++ b/vendor/sigs.k8s.io/yaml/RELEASE.md @@ -0,0 +1,9 @@ +# Release Process + +The `yaml` Project is released on an as-needed basis. The process is as follows: + +1. An issue is proposing a new release with a changelog since the last release +1. All [OWNERS](OWNERS) must LGTM this release +1. An OWNER runs `git tag -s $VERSION` and inserts the changelog and pushes the tag with `git push $VERSION` +1. The release issue is closed +1. An announcement email is sent to `kubernetes-dev@googlegroups.com` with the subject `[ANNOUNCE] kubernetes-template-project $VERSION is released` diff --git a/vendor/sigs.k8s.io/yaml/SECURITY_CONTACTS b/vendor/sigs.k8s.io/yaml/SECURITY_CONTACTS new file mode 100644 index 000000000..0648a8ebf --- /dev/null +++ b/vendor/sigs.k8s.io/yaml/SECURITY_CONTACTS @@ -0,0 +1,17 @@ +# Defined below are the security contacts for this repo. +# +# They are the contact point for the Product Security Team to reach out +# to for triaging and handling of incoming issues. +# +# The below names agree to abide by the +# [Embargo Policy](https://github.com/kubernetes/sig-release/blob/master/security-release-process-documentation/security-release-process.md#embargo-policy) +# and will be removed and replaced if they violate that agreement. +# +# DO NOT REPORT SECURITY VULNERABILITIES DIRECTLY TO THESE NAMES, FOLLOW THE +# INSTRUCTIONS AT https://kubernetes.io/security/ + +cjcullen +jessfraz +liggitt +philips +tallclair diff --git a/vendor/sigs.k8s.io/yaml/code-of-conduct.md b/vendor/sigs.k8s.io/yaml/code-of-conduct.md new file mode 100644 index 000000000..0d15c00cf --- /dev/null +++ b/vendor/sigs.k8s.io/yaml/code-of-conduct.md @@ -0,0 +1,3 @@ +# Kubernetes Community Code of Conduct + +Please refer to our [Kubernetes Community Code of Conduct](https://git.k8s.io/community/code-of-conduct.md) diff --git a/vendor/github.com/ghodss/yaml/fields.go b/vendor/sigs.k8s.io/yaml/fields.go similarity index 99% rename from vendor/github.com/ghodss/yaml/fields.go rename to vendor/sigs.k8s.io/yaml/fields.go index 586007402..235b7f2cf 100644 --- a/vendor/github.com/ghodss/yaml/fields.go +++ b/vendor/sigs.k8s.io/yaml/fields.go @@ -1,6 +1,7 @@ // Copyright 2013 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 yaml import ( diff --git a/vendor/github.com/ghodss/yaml/yaml.go b/vendor/sigs.k8s.io/yaml/yaml.go similarity index 77% rename from vendor/github.com/ghodss/yaml/yaml.go rename to vendor/sigs.k8s.io/yaml/yaml.go index 4fb4054a8..024596112 100644 --- a/vendor/github.com/ghodss/yaml/yaml.go +++ b/vendor/sigs.k8s.io/yaml/yaml.go @@ -4,13 +4,14 @@ import ( "bytes" "encoding/json" "fmt" + "io" "reflect" "strconv" "gopkg.in/yaml.v2" ) -// Marshals the object into JSON then converts JSON to YAML and returns the +// Marshal marshals the object into JSON then converts JSON to YAML and returns the // YAML. func Marshal(o interface{}) ([]byte, error) { j, err := json.Marshal(o) @@ -26,15 +27,35 @@ func Marshal(o interface{}) ([]byte, error) { return y, nil } -// Converts YAML to JSON then uses JSON to unmarshal into an object. -func Unmarshal(y []byte, o interface{}) error { +// JSONOpt is a decoding option for decoding from JSON format. +type JSONOpt func(*json.Decoder) *json.Decoder + +// Unmarshal converts YAML to JSON then uses JSON to unmarshal into an object, +// optionally configuring the behavior of the JSON unmarshal. +func Unmarshal(y []byte, o interface{}, opts ...JSONOpt) error { + return yamlUnmarshal(y, o, false, opts...) +} + +// UnmarshalStrict strictly converts YAML to JSON then uses JSON to unmarshal +// into an object, optionally configuring the behavior of the JSON unmarshal. +func UnmarshalStrict(y []byte, o interface{}, opts ...JSONOpt) error { + return yamlUnmarshal(y, o, true, append(opts, DisallowUnknownFields)...) +} + +// yamlUnmarshal unmarshals the given YAML byte stream into the given interface, +// optionally performing the unmarshalling strictly +func yamlUnmarshal(y []byte, o interface{}, strict bool, opts ...JSONOpt) error { vo := reflect.ValueOf(o) - j, err := yamlToJSON(y, &vo) + unmarshalFn := yaml.Unmarshal + if strict { + unmarshalFn = yaml.UnmarshalStrict + } + j, err := yamlToJSON(y, &vo, unmarshalFn) if err != nil { return fmt.Errorf("error converting YAML to JSON: %v", err) } - err = json.Unmarshal(j, o) + err = jsonUnmarshal(bytes.NewReader(j), o, opts...) if err != nil { return fmt.Errorf("error unmarshaling JSON: %v", err) } @@ -42,7 +63,22 @@ func Unmarshal(y []byte, o interface{}) error { return nil } -// Convert JSON to YAML. +// jsonUnmarshal unmarshals the JSON byte stream from the given reader into the +// object, optionally applying decoder options prior to decoding. We are not +// using json.Unmarshal directly as we want the chance to pass in non-default +// options. +func jsonUnmarshal(r io.Reader, o interface{}, opts ...JSONOpt) error { + d := json.NewDecoder(r) + for _, opt := range opts { + d = opt(d) + } + if err := d.Decode(&o); err != nil { + return fmt.Errorf("while decoding JSON: %v", err) + } + return nil +} + +// JSONToYAML Converts JSON to YAML. func JSONToYAML(j []byte) ([]byte, error) { // Convert the JSON to an object. var jsonObj interface{} @@ -60,8 +96,8 @@ func JSONToYAML(j []byte) ([]byte, error) { return yaml.Marshal(jsonObj) } -// Convert YAML to JSON. Since JSON is a subset of YAML, passing JSON through -// this method should be a no-op. +// YAMLToJSON converts YAML to JSON. Since JSON is a subset of YAML, +// passing JSON through this method should be a no-op. // // Things YAML can do that are not supported by JSON: // * In YAML you can have binary and null keys in your maps. These are invalid @@ -70,14 +106,22 @@ func JSONToYAML(j []byte) ([]byte, error) { // use binary data with this library, encode the data as base64 as usual but do // not use the !!binary tag in your YAML. This will ensure the original base64 // encoded data makes it all the way through to the JSON. +// +// For strict decoding of YAML, use YAMLToJSONStrict. func YAMLToJSON(y []byte) ([]byte, error) { - return yamlToJSON(y, nil) + return yamlToJSON(y, nil, yaml.Unmarshal) } -func yamlToJSON(y []byte, jsonTarget *reflect.Value) ([]byte, error) { +// YAMLToJSONStrict is like YAMLToJSON but enables strict YAML decoding, +// returning an error on any duplicate field names. +func YAMLToJSONStrict(y []byte) ([]byte, error) { + return yamlToJSON(y, nil, yaml.UnmarshalStrict) +} + +func yamlToJSON(y []byte, jsonTarget *reflect.Value, yamlUnmarshal func([]byte, interface{}) error) ([]byte, error) { // Convert the YAML to an object. var yamlObj interface{} - err := yaml.Unmarshal(y, &yamlObj) + err := yamlUnmarshal(y, &yamlObj) if err != nil { return nil, err } @@ -272,6 +316,4 @@ func convertToJSONableObject(yamlObj interface{}, jsonTarget *reflect.Value) (in } return yamlObj, nil } - - return nil, nil } diff --git a/vendor/sigs.k8s.io/yaml/yaml_go110.go b/vendor/sigs.k8s.io/yaml/yaml_go110.go new file mode 100644 index 000000000..ab3e06a22 --- /dev/null +++ b/vendor/sigs.k8s.io/yaml/yaml_go110.go @@ -0,0 +1,14 @@ +// This file contains changes that are only compatible with go 1.10 and onwards. + +// +build go1.10 + +package yaml + +import "encoding/json" + +// DisallowUnknownFields configures the JSON decoder to error out if unknown +// fields come along, instead of dropping them by default. +func DisallowUnknownFields(d *json.Decoder) *json.Decoder { + d.DisallowUnknownFields() + return d +} diff --git a/vendor/sigs.k8s.io/yaml/yaml_go110_test.go b/vendor/sigs.k8s.io/yaml/yaml_go110_test.go new file mode 100644 index 000000000..e4707e8ab --- /dev/null +++ b/vendor/sigs.k8s.io/yaml/yaml_go110_test.go @@ -0,0 +1,46 @@ +// +build go1.10 + +package yaml + +import ( + "fmt" + "testing" +) + +func TestUnmarshalWithTags(t *testing.T) { + type WithTaggedField struct { + Field string `json:"field"` + } + + t.Run("Known tagged field", func(t *testing.T) { + y := []byte(`field: "hello"`) + v := WithTaggedField{} + if err := Unmarshal(y, &v, DisallowUnknownFields); err != nil { + t.Errorf("unexpected error: %v", err) + } + if v.Field != "hello" { + t.Errorf("v.Field=%v, want 'hello'", v.Field) + } + + }) + t.Run("With unknown tagged field", func(t *testing.T) { + y := []byte(`unknown: "hello"`) + v := WithTaggedField{} + err := Unmarshal(y, &v, DisallowUnknownFields) + if err == nil { + t.Errorf("want error because of unknown field, got : v=%#v", v) + } + }) + +} + +func exampleUnknown() { + type WithTaggedField struct { + Field string `json:"field"` + } + y := []byte(`unknown: "hello"`) + v := WithTaggedField{} + fmt.Printf("%v\n", Unmarshal(y, &v, DisallowUnknownFields)) + // Ouptut: + // unmarshaling JSON: while decoding JSON: json: unknown field "unknown" +} diff --git a/vendor/github.com/ghodss/yaml/yaml_test.go b/vendor/sigs.k8s.io/yaml/yaml_test.go similarity index 62% rename from vendor/github.com/ghodss/yaml/yaml_test.go rename to vendor/sigs.k8s.io/yaml/yaml_test.go index 505af4530..42a231567 100644 --- a/vendor/github.com/ghodss/yaml/yaml_test.go +++ b/vendor/sigs.k8s.io/yaml/yaml_test.go @@ -106,8 +106,8 @@ b: unmarshal(t, y, &s5, &e5) } -func unmarshal(t *testing.T, y []byte, s, e interface{}) { - err := Unmarshal(y, s) +func unmarshal(t *testing.T, y []byte, s, e interface{}, opts ...JSONOpt) { + err := Unmarshal(y, s, opts...) if err != nil { t.Errorf("error unmarshaling YAML: %v", err) } @@ -118,6 +118,129 @@ func unmarshal(t *testing.T, y []byte, s, e interface{}) { } } +func TestUnmarshalStrict(t *testing.T) { + y := []byte("a: 1") + s1 := UnmarshalString{} + e1 := UnmarshalString{A: "1"} + unmarshalStrict(t, y, &s1, &e1) + + y = []byte("a: true") + s1 = UnmarshalString{} + e1 = UnmarshalString{A: "true"} + unmarshalStrict(t, y, &s1, &e1) + + y = []byte("true: 1") + s1 = UnmarshalString{} + e1 = UnmarshalString{True: "1"} + unmarshalStrict(t, y, &s1, &e1) + + y = []byte("a:\n a: 1") + s2 := UnmarshalNestedString{} + e2 := UnmarshalNestedString{NestedString{"1"}} + unmarshalStrict(t, y, &s2, &e2) + + y = []byte("a:\n - b: abc\n c: def\n - b: 123\n c: 456\n") + s3 := UnmarshalSlice{} + e3 := UnmarshalSlice{[]NestedSlice{NestedSlice{"abc", strPtr("def")}, NestedSlice{"123", strPtr("456")}}} + unmarshalStrict(t, y, &s3, &e3) + + y = []byte("a:\n b: 1") + s4 := UnmarshalStringMap{} + e4 := UnmarshalStringMap{map[string]string{"b": "1"}} + unmarshalStrict(t, y, &s4, &e4) + + y = []byte(` +a: + name: TestA +b: + name: TestB +`) + type NamedThing struct { + Name string `json:"name"` + } + s5 := map[string]*NamedThing{} + e5 := map[string]*NamedThing{ + "a": &NamedThing{Name: "TestA"}, + "b": &NamedThing{Name: "TestB"}, + } + unmarshal(t, y, &s5, &e5) + + // When using not-so-strict unmarshal, we should + // be picking up the ID-1 as the value in the "id" field + y = []byte(` +a: + name: TestA + id: ID-A + id: ID-1 +`) + type NamedThing2 struct { + Name string `json:"name"` + ID string `json:"id"` + } + s6 := map[string]*NamedThing2{} + e6 := map[string]*NamedThing2{ + "a": {Name: "TestA", ID: "ID-1"}, + } + unmarshal(t, y, &s6, &e6) +} + +func TestUnmarshalStrictFails(t *testing.T) { + y := []byte("a: true\na: false") + s1 := UnmarshalString{} + unmarshalStrictFail(t, y, &s1) + + y = []byte("a:\n - b: abc\n c: 32\n b: 123") + s2 := UnmarshalSlice{} + unmarshalStrictFail(t, y, &s2) + + y = []byte("a:\n b: 1\n c: 3") + s3 := UnmarshalStringMap{} + unmarshalStrictFail(t, y, &s3) + + type NamedThing struct { + Name string `json:"name"` + ID string `json:"id"` + } + // When using strict unmarshal, we should see + // the unmarshal fail if there are multiple keys + y = []byte(` +a: + name: TestA + id: ID-A + id: ID-1 +`) + s4 := NamedThing{} + unmarshalStrictFail(t, y, &s4) + + // Strict unmarshal should fail for unknown fields + y = []byte(` +name: TestB +id: ID-B +unknown: Some-Value +`) + s5 := NamedThing{} + unmarshalStrictFail(t, y, &s5) +} + +func unmarshalStrict(t *testing.T, y []byte, s, e interface{}, opts ...JSONOpt) { + err := UnmarshalStrict(y, s, opts...) + if err != nil { + t.Errorf("error unmarshaling YAML: %v", err) + } + + if !reflect.DeepEqual(s, e) { + t.Errorf("unmarshal YAML was unsuccessful, expected: %+#v, got: %+#v", + e, s) + } +} + +func unmarshalStrictFail(t *testing.T, y []byte, s interface{}, opts ...JSONOpt) { + err := UnmarshalStrict(y, s, opts...) + if err == nil { + t.Errorf("error unmarshaling YAML: %v", err) + } +} + type Case struct { input string output string @@ -285,3 +408,16 @@ func runCases(t *testing.T, runType RunType, cases []Case) { func strPtr(s string) *string { return &s } + +func TestYAMLToJSONStrict(t *testing.T) { + const data = ` +foo: bar +foo: baz +` + if _, err := YAMLToJSON([]byte(data)); err != nil { + t.Error("expected YAMLtoJSON to pass on duplicate field names") + } + if _, err := YAMLToJSONStrict([]byte(data)); err == nil { + t.Error("expected YAMLtoJSONStrict to fail on duplicate field names") + } +}